Enterprise service bus

Post on 18-Jul-2015

66 views 6 download

Tags:

transcript

Enterprise Service Bus

Upul Doluweera

Agenda Introduction ESB as a Pattern to SOA Capabilities Components JSR-208 JBI specification UltraESB

Introduction

What is an ESB No clear-cut definition More like a marketing term

A pattern ? A product ? Architectural component ? Hardware component ? Eg : WebSphere DataPower Integration

Appliance XI50 Can perform most of typical ESB tasks

What is an ESB ? Wikipedia definition

“is a software architecture model used for designing and implementing communication between mutually interacting software applications in a service-oriented architecture (SOA)”

“An ESB generally provides an abstraction layer on top of an implementation of an enterprise messaging system.”

Enterprise messaging system (EMS) “set of published enterprise-wide standards that allows

organizations to send semantically precise messages between computer systems.” Part of Enterprise application integration(EAI)

Defines how an enterprise integrate with other systems Promote loosely coupling

ESB as a Pattern to SOA Provides a communication bridge in SOA Decouples clients form service apps.

Service location, transparency & sharing Separate business services from

service implementation.

Capabilities May vary based on the vendor No need all the features

Routing Ability to channel a request to a particular service

provider Static / Deterministic Content based Policy based Rule based

Message transformation Ability to convert the structure or format of message

Incoming service requests to expected backend requests XML CSV JSON XML Object XML

Message Enhancement Ability to add or modify information in messages

Data conversion Date formats / formatting decimals

Supplement information Requests from a mobile client

Decoupling messages from service implementation

Protocol Transformation Ability to accept different type of transports which are

different from the implemented protocol SOAP JMS XML/HTTP JSON/HTTPS SOAP/MQ FTP/SFTP

Message Processing Ability to perform a guaranteed message delivery. Message should not lost upon reaching ESB

Service orchestration Ability to perform complex business processes that

requires multiple business service implementations Similar to Process Choreography - *BPEL

Transaction Management Should provide a good framework for transaction

management Tricky in service orchestration

Transaction propagation difficulties Solutions

WS-coordination JSR-95 Drop aggregation into a separate service

Security Ability to protect from unauthorized access

Individual services become visible to whole enterprise Authentication, Authorization and Auditing Should use a security manager

Should not be a direct responsibility

Components Vendor specific.

Different component may added in future Selection should based on real needs

Mediator Core component Provides

Routing Message Processing, enhancement and error handling Protocol transformation Service orchestration, transaction management and security

UltraESB provides only a mediator

JSR 208 JBI Implementation Java Business Integration

an approach to implementing a service-oriented architecture (SOA) – ESB

 provides a pluggable architecture for a container that hosts service producer and consumer components. 

Focus on how internal service providers and consumers interact Eg : message transformation, transaction security etc

JBI compliant ESB OpenESB Apache ServiceMix Mule

Advantages Pluggable architecture

JBI compliance components Prevent vendor lock-in Allows best technologies to be added Mix open-source and commercial solutions Highly Customizable

UltraESB Launched Jan 2010 Open-sourced August 2010 Has ties to WSO2 ESB

Founder is an original author of WSO2 ESB

Features Spring based

Single XML file Java or JSR 223 language support in mediation

Groovy, Ruby, JavaScript, etc. JMX support IDE support Isolation

Management and monitoring tools runs outside of the core ESB instances

Clustering Apache ZooKeeper

Equal nodes No specific admin nodes

Easy management of clusters Management via any connected node

State replication and content sharing Active-Passive nodes

Pinned services and Service Migration on failure

Deployment units One deployment can reloaded with out effecting other

deployments Logical separation of mediation logic into packages

Supporting Transports HTTP/S JMS - Java Messaging Service AMQP - Advanced Message Queuing Protocol Email TCP - Transmission Control Protocol MLLP/S - Minimal Lower Layer Protocol (used by HL7) /

MLLP-Secure Files FTP/S SFTP

Payloads SOAP - Simple Object Access Protocol REST - Representational State Transfer XML - Extensible Mark-up Language HTML - Hypertext Mark-up Language JSON - JavaScript Object Notation Text Binary Protocol Buffers - Google protocol buffer binary format CSV - Comma-Separated Values EDI - Electronic Data Interchange HL7 - Health Level 7 Hessian AS2 - Applicability Statement 2

Installation Running a test service Using Toolbox Code

Questions ?

Thank You