Enterprise service bus
- 3. 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
- 4. 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.”
- 5. 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
- 6. ESB as a Pattern to SOA
Provides a communication bridge in SOA
Decouples clients form service apps.
- 7. Service location, transparency & sharing
Separate business services from
service implementation.
- 9. Routing
Ability to channel a request to a particular service
provider
Static / Deterministic
Content based
Policy based
Rule based
- 10. Message transformation
Ability to convert the structure or format of message
Incoming service requests to expected backend requests
XML CSV
JSON XML
Object XML
- 11. 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
- 12. 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
- 14. Service orchestration
Ability to perform complex business processes that
requires multiple business service implementations
Similar to Process Choreography - *BPEL
- 15. 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
- 16. 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
- 18. Mediator
Core component
Provides
Routing
Message Processing, enhancement and error handling
Protocol transformation
Service orchestration, transaction management and security
- 20. 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
- 22. Advantages
Pluggable architecture
JBI compliance components
Prevent vendor lock-in
Allows best technologies to be added
Mix open-source and commercial solutions
Highly Customizable
- 23. UltraESB
Launched Jan 2010
Open-sourced August 2010
Has ties to WSO2 ESB
Founder is an original author of WSO2 ESB
- 24. 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
- 25. 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
- 26. Deployment units
One deployment can reloaded with out effecting other
deployments
Logical separation of mediation logic into packages
- 27. 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
- 28. 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