Upload
upul-doluweera
View
70
Download
6
Tags:
Embed Size (px)
Citation preview
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