31
Enterprise Service Bus Upul Doluweera

Enterprise service bus

Embed Size (px)

Citation preview

Page 1: Enterprise service bus

Enterprise Service Bus

Upul Doluweera

Page 2: Enterprise service bus

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

Page 3: Enterprise service bus

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

Page 4: Enterprise service bus

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.”

Page 5: Enterprise service bus

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

Page 6: Enterprise service bus

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

Page 7: Enterprise service bus

Service location, transparency & sharing Separate business services from

service implementation.

Page 8: Enterprise service bus

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

Page 9: Enterprise service bus

Routing Ability to channel a request to a particular service

provider Static / Deterministic Content based Policy based Rule based

Page 10: Enterprise service bus

Message transformation Ability to convert the structure or format of message

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

Page 11: Enterprise service bus

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

Page 12: Enterprise service bus

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

Page 13: Enterprise service bus

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

Page 14: Enterprise service bus

Service orchestration Ability to perform complex business processes that

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

Page 15: Enterprise service bus

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

Page 16: Enterprise service bus

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

Page 17: Enterprise service bus

Components Vendor specific.

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

Page 18: Enterprise service bus

Mediator Core component Provides

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

Page 19: Enterprise service bus

UltraESB provides only a mediator

Page 20: Enterprise service bus

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

Page 21: Enterprise service bus

JBI compliant ESB OpenESB Apache ServiceMix Mule

Page 22: Enterprise service bus

Advantages Pluggable architecture

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

Page 23: Enterprise service bus

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

Founder is an original author of WSO2 ESB

Page 24: Enterprise service bus

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

Page 25: Enterprise service bus

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

Page 26: Enterprise service bus

Deployment units One deployment can reloaded with out effecting other

deployments Logical separation of mediation logic into packages

Page 27: Enterprise service bus

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

Page 28: Enterprise service bus

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

Page 29: Enterprise service bus

Installation Running a test service Using Toolbox Code

Page 30: Enterprise service bus

Questions ?

Page 31: Enterprise service bus

Thank You