Enterprise Service Bus Features and Advantages

An Enterprise Service Bus (ESB) is a flexible(SDO) provides the universal model for "business
connectivity infrastructure for integrating applicationsdata". Components run on a SCA enabled run-time,
and services.Java interfaces (j-typed), WSDL port types9w-typed).
The Enterprise Service Bus(ESB) can help youArguments and return are described using SDO's,
achieve the goal of SOA. It is flexible connectivityJava classes, or simple Java types. SCA focus on
infrastructure for integrating applications and services. Itbusiness purpose.
is at the heart of an SOA powering it by reducing theService data Objects and Business Objects
number, size, and complexity of interfaces.As introduced already in the triangle of truth, business
An ESB powers your SOA by reducing the size,objects play an important role in the WebSphere
number and complexity of interface.Process Server v6 SOA solution as the data
An ESB will performs the following things betweenabstraction. This is indeed an important goal of the
requestor and servicebusiness object framework, but in addition to this, the
1) ROUTING the messages between servicesbusiness object framework also provides some other
2) CONVERTING the transport protocols betweenimportant functions. Specifically, the business object
requestor and serviceframework was developed to provide functional
3) TRANSFORMING the message formats betweencapabilities similar to the business object construct
requestor and servicefound in WebSphere Interchange Server(ICS). The set
4) HANDLING the business events from disparateof capabilities that have been adopted to support ICS
sourcesstyle business object functions, are needed to provide
The Enterprise Service Bus allows us focus on oura way to help developers mitigate the complexities
core business.related to developing applications that work with
The following Advantagesfederated and disparate business data as is commonly
1) Add new services fasterthe case with integrated enterprise applications.
2) Change services with minimal impact to existingSCA provides the ability for services to be called
servicessynchronously or asynchronously.
The following two requirements for an EnterpriseAn asynchronous invocation model is also provided
Service BUSa) If all your applications confirm to Webwith the following semantics
Service standards then all you may require is an ESBOne Way -Fire and Forget
focused on standards based service integration.b) IfDeferred Response-In this model the client makes a
not all your applications conform to the web servicesrequest, but does not bloc, but at some later point in
standards then you may require a more advancedtime goes back and asks for the response. In this form
ESB focused on the integration of services withof invocation takes a second parameter which
existing non-services assets.specifies whether the invocation behaves when the
The four points i would like to highlight the productsresponse is not immediately available. (invoke Async()
1) Provides Web services connectivity, JMS Messagingreturns a ticket that identifies the invocation.
and service oriented integration, WebSphere EnterpriseinvokeResponse() passes a ticket back in that is used
Service Bus delivers smart integration to connect yourto get the response that corresponds to the invocation
assets through service oriented interface.identified by the ticket)
2) Ease of use. The tools are easy to use and requireThe semantics of the synchronous vs asynchronous
minimal programming skills. You don't have to knowinvocations differ as summarized here. So
Java in order to use this tool it is integrated, interactivesynchronous invocations are pass-by-reference,
and provides a visual development experience.whereas asynchronous invocations are pass-by-value.
Mediation is simply the term used to describe theNote also that if you want type-safety you've got to
in-flight processing of information. It is simple to develop,be using Java interfaces definitions. However there is
build, test, deploy and manage services components.tooling to allow you to generate Java interfaces from
Easy to understand samples are also included.WSDL definitions. Synchronous calls outside the JVM
3) Improved time to value. This cost effective solutionare pass-by-value invocations. We could use an extra
has support for over hundreds of ISV solution such ascolumn in this chart.
SAP, Siebel, peoplesoft, JD Edwards, and Oracle.Enterprises service bus reference architecture
Save time and development costs by utilizing prebuiltWe are going to introduce all these elements later in
mediations such as XML transformation, contentthe presentation. Lets look at the scope of WSEB and
based routing and message logging.all the things the customer gets in the box. The product
4) Seamless integration with the Websphereis named ESB not Enterprise Service Bus. The naming
platform-unlike some of our competition, we have thereflects the industry mindset. It allows an ESB to be
ability to easily move up the stack to solve morebuilt which brokers service requests and responses. It
complex business problems with process server,is primarily a Web Services focused platform
which is built on WebSphere ESB. So you can easilyspecifically to support the service interactions that take
extend to leverage WebSphere Process Server asplace within a SOA. ESB is built on AS (ND) and
needs dictate. WebSphere Enterprise Service Bus istherefore fundamentally a J2EE platform. It leverages
built on the WebSphere Application Server; A worldand shares technology introduced with WAS V6 and
-class J2EE foundation providing industry -leading levelsWPS. Use of the additional products and capabilities
of availability, scalability and performance.shown ( for example, TAM) are optional.
Provides Web Services connectivity, messaging andIntroduces the concept of "mediations" as a term for
service oriented integrationmessage (broker) processing. Service invocations are
- Improves flexibility through the adaption of serviceService messages within the ESB. A new version of
oriented interfacesWID is released which supports the development of
- Gain support for a variety of messaging protocolsmediation flows. The ESB supports mediation flows
including JMS 1.1 to exploit a variety of transports andand primitives with which to build mediation processing.
interoperate with the WebSphere familySupport for basic ESB processing is supplied. WESB
- Utilize a broad range of interaction models to meetleverages the messaging support delivered in WAS
your requirementsV6 (SIB) using the JMS 1.1 provider and the MQLink to
- Leverage advanced Web service support tointeroperate with an MQ QM. The WS support again
incorporate leading edge capabilitiesleverages base AS support SOAP/HTTP and SOAP
- Take advantage of a comprehensive clientsJMS as protocols and the various WS-* capability.
package to extend your environmentSCA (define) is the programming model which is the
- Leverage UDDI 3.0 for a secure description andtechnology first surfaced, and shared with WPS. It is
description and discovery of web services in an openthe foundation for the composition of mediation and
standards based way.process logic. SDO (define) allows for the logical
- reduce sharing by using WebSphere ESB to handlerepresentation of business data. The SMO (define) is
integration logican extension of an SDO message which is the
- Customized routing -Transport/protocol specificservice message which flows through the ESB. XMS
routing and content based routingclients (C++ and .Net). JAX/RPC client invocations
- Protocol conversation between a variety ofsupported via WS C/C++ client. Connectivity to other
protocols: HTTP, IIOP, JMSendpoints is achieved using the WBI Adapters (either
- Format transformation between standards: XML,the original adapters or the variants which support
SOAP, JMS messages and when used with adapters,JCA 1.5).
many moreIn a loosely coupled SOA architecture, Service
- Supplied mediation function for database interactionrequestors and providers connect with each other
- Allow the flow of business events and add neededthrough an Enterprise Service Bus. Loosely coupled
intelligence to that flowServices provide more flexibility and ability to introduce
- Leverage WebSphere Adapters for capture andmediations and QOS that can then be applied
dissemination of business eventsuniformly to the services connecting through the bus.
Delivering an Enterprise Service Bus that's easy to useMediation services intercept and modify messages
Websphere Integration Developer provides anthat are passed between existing services(providers)
integrated, interactive and visual developmentand clients (requesters) that want to use those
environment for rapid development of integration logic,services. Mediation services are implemented using
simple to develop, build, test, deploy and managemediation modules that contain mediations flows.
services components. Get up and running quickly withWebSphere ESB and Process Server provide the
comprehensive documentation, easy to understandESB capability through the use of Mediation Module
samples. Provides a simplified and visual developmentdeployed in the server. Mediation Module uses the
experience for standards based artifacts like XMLsame Service component architecture (SCA)
schema, WSDL, XSLT, etc. Supports the declarationintroduced in WebSphere Integration Developer V6.0.0
of services and connectivity through a visualand WebSphere Process Server V6.0.0
composition model. Allows easy orchestration ofESB concepts: Medition Module
mediation functions with first-class support for intelligentWebSphere ESB and Process Server introduces a
message routing, enrichment and transformation.new type of module, called Mediation Module, that
Offers a seamless integrated tooling approach tointercept and modify messages between service
connect between service-oriented andrequester and the service provider. Mediation module
messaging-oriented services. True role-based supportprovides the ESB functions of converting protocols,
provides a simplified administration experience.routing, transformation and other custom processing on
WebSphere ESB is designed to be easy to use fromthe messages. Mediation Module is the unit of
both a tools and runtime perspective. Webspheredeployment and runs within the WebSphere ESB or
Integration Developer, the tools that works withProcess Server. Interactions with external service
WebSphere ESB, is built for an integrationrequesters and providers defined by imports and
developer-someone who understands IT systems andexports, whose interfaces is defined using WSDL.
architectures but who is not a Java developer.A new type of module is introduced in WebSphere
Both WESB and WID are designed to help customersESB and Process Server, called Mediation Module,
get up and running quickly and easily, withprovides the ESB functionality by allowing the
comprehensive out of the box documentation and aprocessing the messages between service requestors
simplified and visual development environment. A visualand providers. This enables loosely coupled
composition model allows easy orchestration ofconnectivity and mediation services between different
mediation functions. The fact that tool is role basedservice requestors and provides connecting through
makes administration much easier.the bus. The Mediation module allows converting
WebSphere ESB Improving time to value.protocols, routing, transformation and other custom
Gain a cost effective solution for services integrationprocessing on the messages, tpically needed in an
Leverage your SOA IT investments by quickly buildingESB environment. The WebSphere Process Server
a flexible integration infrastructure to extend the valuesupports business modules used for business
of your existing investments, regardless of vendor.processing and the new mediation modules, whereas
Modular approach supports ability to start small andWebSphere ESB supports mediation modules. Service
grow as fast as the business requires. Extensiverequestors interact with the mediation module in the
business and IT standards support facilities greaterbus via the module exports, and the module interacts
interoperability & portability. Utilize first classwith the service providers via the module imports.
support for hundreds of ISV solutions. ExtensiveThese export and import interfaces are defined using
WebSphere Adapter support, including newthe WSDL.
JCA-based adapters. Support for numerous ISVsMediation Module: Import and Export bindings
within the WebSphere Platform partner ecosystem.Different kinds of requester and provider types of
Save time and development costs by utilizing pre-builtinteractions are made available via different bindings
mediation functions. Mediations operate in messagesfor the imports and exports. WebSphere ESB
events as they are passed between serviceprovides support for JMS bindings- JMS 1.1 provided by
requesters and service providers. Operate on bothWebSphere platform Messaging can exploit a variety
One-Way and Request-Response interactions.of transports TCP/IP, SSL, HTTP(S). Allows interaction
Pre-built mediation functions allow mediations to bewith the WebSphere family WAS, WebSphere MQ,
visually composed and include XML transformation,WebSphere Message Broker. Web Services binding
message logging, message routing, and databaseSOAP/ HTTP, SOAP/JMS, WSDL 1.1, Service
lookup, Customers can augment the function providedRegistry -UDDI 3.0, WS-Security, WS-Automatic
by the supplied primitives by programming their ownTransactions. WebSphere Adapter bindings JCA
'custom primitives'. Dynamically re-configure to meetAdapters -SAP, PeopleSoft, Sibel, Files, JDBC, WBI
changing business needs. WebSphere ESB runtimeAdapters for all the rest. Built-in SCA (Default) binding
provides the administrator with the ability to reconfigureUsed for module to module communication-supports
service interactions. Avoid system downtime by addingboth synschronous and asynchronous communication.
or replacing integration logic dynamically.WebSphere ESB supports update this binding via the
WebSphere ESB Seamless integration with theadmin console allowing module to module connectivity
WebSphere platformto be changed.
Leverages WebSphere qualities of service. Inherits theInteractions with external service requesters and
WebSphere runtime for world class scalability,providers are defined by imports and exports. Import
clustering, and fail-over. Utilizes the commonexport interfaces are defined using the Web Services
WebSphere Administrative Console to enable systemDescription Language (WSDL), which may contain
management across WebSphere Application Server.several service operations. Different kinds of requester
WebSphere ESB, and WebSphere Process Server.and provider are made available via different bindings
Addresses end-to-end security requirements onfor the imports and exports. WebSphere ESB and
authentication, resource access control, data integrity,Process Server v6.0.1 supports JMS binding,
confidentiality, privacy, and secure interoperability.WebServices bindings, WebSphere Adapter bindings
Easily extends to leverage WebSphere Platform asand the default built-in SCA binding. These different
needs dictate. Customers with the right skills can takebindings allows maximum flexibility for the requestors
full advantage of the underlying capabilities ofand providers to use the protocol of their choice. Use
WebSphere Application Server Network Deployment.of different bindings permits easy transformation of
Extend your existing WebSphere MQ messagingprotocols between the service requestors and
foundation to integrate new environments in an open,providers. The import and Export bindings are same as
standards-based way. Common tooling andused for Business modules in WebSphere Process
administration means the move from WebSphere ESBServer.
to WebSphere Process Server is painless.Mediation flow component and Request-Response
Integrates with IBM Tivoli security, directory, andinteraction
systems management offerings. Includes Tivoli AccessMediation module contains a new type of SCA
Manager, for optional use, to deliver a secure, unifiedcomponent, called Mediation Flow Component.
and personalized experience that will help manageMediation Flow Components act as 'service
growth and complexity. Integrates with IBM Tivoliintermediaries' to pass a 9potentially modified) request
Composite Application Manager for SOA for addedfrom a service requester to a service provider, pass a
monitoring and management capabilities(potentially modified) response from a service provider
Service Oriented Architecture: Triangle of Truthto a service requester. Processing of requests is
The triangle of truth is a simple way to look at theseparated from processing of responses in the
important architectural constructs that make up amediation flow component. Request processing within
service oriented architecture. As you begin thinkinga mediation flow component can send a response
about what is needed to build a service orientedback to the requester without necessarily needing to
architecture, the triad that makes up the triangle ofcontact a service provider.
truth quickly emerges. Specifically, there needs to be aMediation Module contain a new SCA component
way to represent the data that is exchanged betweencalled Mediation flow component which acts as a
services, there must be a mechanism for invokingservice intermediary for the processing of the
services, and there should be a way to composemessage. The Mediation flow component provides a
services into a larger integrated business application.standard way of processing the message independent
Today there are many different programming modelsof the binding protocol used by the service requestors
for supporting each construct in the triangle of truth.or providers. It supports one way model where no
This situation presents developers with the challengeresponse is expected or 2 way request and response
of not only needing to solve a particular businessmodel. It supports synchronous or asynchronous
problem, but they are also faced with choosing andinvocation model, similar to other SCA components.
understanding the appropriate implementationWithin the Mediation flow component, the processing
technology. One of the important goals of theof the request message is performed separately from
WebSphere Process Server v6 SOA solution is tothe response message. This allows different
mitigate these complexities by converging the variousprocessing of the request message is performed
programming models used for implementing serviceseparately from the response message. This allows
oriented business applications into a simplifieddifferent processing to occur on the request and the
programming model.response side by having different mediation primitives
This presentation focuses specifically on the Serviceon the request and response flows.
Component Architecture (SCA) introduced inThe mediation application developer may choose to
WebSphere Process Server v6 as the servicecreate and handle the response within the mediation
oriented component model for defining and invokingflow component without actually calling the service
business services. In addition to the important role SCAprovider. The Mediation Module developer will need to
plays in providing an invocation model for the SOAconstruct the response message based on the
solution in WebSphere Process Server v6, you willinterface definition of the module export.
also learn in this presentation that it also plays a role inMediation Module: Contents
composing business services into composite businessMediation Module can have the following: Exports,
applications.defined using WSDL that expose the mediation
SCA Basics:module to external service requesters. Imports, defined
Whenever you are beginning to learn a newusing WSDL, that identify external service providers
technology or programming model, it is often useful toand their interfaces. A new type of SCA component
look at the pieces that compose the overallcalled, Mediation flow component- this provides the
architecture of that technology. This slide lists some ofmediation function on the messages between these
the important features of SCA that you should beservices requestors and the providers. In cases where
aware of as you begin learning about SCA.the only need is to transform the message from one
First, the Service Component Definitioninteraction protocol to another, there may not be any
Language(SCDL) provides the basis of SCA. SCDL isneed for a mediation flow component in the module.
an XML based definition language, and is used toOptional SCA Java components-this is used in
define all SCA artifacts in a project. The WebSphereconjunction with the custom mediation primitive or
Integration Developer V6.0 tools support of SCA takeswhen there is a need to use Java interface.
care of generating the appropriate SCDL definitionsMediation module contain exports, imports, a new type
when building an SCA-based applications, however aof SCA component called the Mediation flow
basic familiarity with SCDL can certainly helpcomponent and optionally other SCA components of
understanding the overall architecture and debuggingtype. Mediation Imports are like normal SCA imports
applications.with all the supported bindings, namely, Default SCA,
The next important part of SCA to understand isJMS, Web Services. Imports are the entry points into
different is the different types of artifacts that can bethe Bus. Similarly, Mediation Exports are like normal
defined using SCDL. The various artifact types thatSCA exports with all the supported bindings, namely
exists in SCA were designed to support some of theDefault SCA, JMS, Web Services. Exports are the exit
basic requirements of this service oriented architecture.point from the Bus. A new type of SCA component,
To start, the most basic building block in SCA is thecalled the Mediation Flow component, contains logic of
service component definition. Once a servicehow the message is processed between the input and
component is defined, it is important to have aoutput of the flow. Functions like message routing,
mechanism for making that service available to clientstransformation, augmentation, logging or any other
inside and outside of the current.custom processing are performed on the message
Service Component Overview:within the Mediation Flow component. Lastly, the
This is a common concept which will be familiar tomodule can optionally contain SCA Java components,
those from a WPS background. SCA was firstused to implement custom mediation primitive. More on
introduced in the concept of WPS V6 as anthis later in the presentation.
architecture and implementation to support theMediation Flow editior is used provide the
enablement of a Service Oriented Architectureimplementation of the mediation components that are
approach to process Integration. SCA underpins theused to process the message flow as it flows from
programming model in WPS and is also fundamental tothe service requestor to the provider through the
WESB. Everything is a Service And a ComponentEnterprise Service bus. The editor contains 3 sections.
And has an interface which describes it.The top one is the Operation Mediation section used to
SCA separates component interface from theirdefine the mapping of the source input operation to
implementation. The implementation of an SCAone or more target output operation. The map is
component may change without affecting thecreated by visually wiring the input operation to the
interface. It is possible for example, to replace theappropriate target out operation. Once the connection
implementation of component, say with a Webis made between a source and target operation, the
Service invocation rather than invocation through anmiddle section called the Mediation Flow section is
adapter. We invoke components, so one can regardused to create the message processing flow.
SCA as perhaps as invocation model as much asMediation Primitives are added here and wired to
anything.create the message flow between input and output
This situation is kind of represented on this next foil -operation. The bottom most section of the editor is the
we can see that a Service Component provides anmediation properties section to view or modify the
invocable Service Instance. In order to provide that, itproperties of the connection, primitives that are
must have an Implementation, an Interface, andhighlighted in the mediation flow section.
Configuration properties. A critical point here is that theMediation flow component design methodologies.
Implementation can be any of the programmingTwo types of design methodology
constructs that we provide in WPS. So it could be aTop- down design
BSM, BPEL Process, Map, Adapter, POJO.Developer creates with Mediation Flow component
Interface can be of two types-Interfaces that thiswith the required interfaces and references.
module exposes for consumption by others, andDevelopers generates an implement (empty) for the
Interfaces exposed by other modules that we want toFlow component This will open the Mediation Flow
consume. This latter type of interface consumption iscomponent editor. Using the Mediation Flow Editor, the
called a reference. We should also note that thedeveloper create mappings from a source operation
interface can be described using either Java interfacesto one or more target operations.
or WSDL. But if there are multiple interfaces specifiedBottom-up design
then you cannot mix WSDL with Java. For referenceUser starts with actual implementation of the flow
type you do not have that restriction.component does not yet have the Mediation Flow
Service Module: Overviewcomponent. The mediation flow component is then
Here we have got our Service Module, which weused to assemble the module. This approach can be
know is the SCA unit of packaging and deployment.used to modify any existing design and then merging
We can see that this particular Module contains 2the implementation of the flow component.
Service Components- each containing anWebSphere ESB provides several built-in mediation
implementation, Interface and references whereprimitives and allows the capability of adding your own
appropriate. This second Service Component does notcustom mediation for cases that are note covered by
contain a reference because it does not invoke anythe built-in mediation primitives. Following built-in
external Service.mediation primitives are provided.
Now in the Service Module we can see that we have1. Message Logger used to log/store message
a number of additional things, which are related toinformation to a database.
incoming and outgoing Interfaces at the Module Level.2. Message Filter to filter messages selectively
Remember that an Interface and reference describeforwarding them on to output terminals, based on
incoming and outgoing interface at the Servicesimple condition expression.
Component level. Well we have a similar notation at3. Database lookup to access information in a
the Service Module level, referred to as imports,database and insert it in the message. The mediation
Exports and Standalone references.primitive is supplied with key id to look for and where in
An Export is how the Service Module exposes itsthe message is the value of the key. Using the two
interface to the outside world for consumption byinformation, the value of the specified column for the
another Service Component within a different Servicematching key is inserted in the specified location within
Module. A Standalone Reference is how the Servicethe message.
Module exposes its interfaces for consumption using a4.XSL Transformation mediation primitive is used to
non-SCA client invocation mechanism. Clients using thistransform messages using XSL transformation. This is
invocation mode are either Other SCA componentsmainly used when the target provider has a different
within the same SCA module, or non SCA clients suchinterface than the incoming message interface. Using
as a JSP. An Import is how a Service Componentthe mapping within the XSLT, one can map the input
invokes an external Service. The relationship orvalues to the appropriate output fields.
potential invocation path between these artefacts is5. Stop mediation primitive used to stop the flow
represented by wires.execution.
SCA Basics and terminology6. Fail mediation primitive used for error conditions,
SCA is a runtime that facilitates the abstraction of awhere the flow execution is stopped and an exception
component's implementationis generated.
SCA separates infrastructure from Business LogicCustom mediation primitive is used to do message
Provide a programming model for invocationprocessing that is not covered by other ediation
Support a variety of the invocation modelsprimitives by executing custom logic. Custom Mediation
Provide the runtime infrastructure suited for applicationPrimitive calls a SCA Java component that you create
consumptionor provide. The SCA Java component must be within
Universal model for Business Services, Publish orthe same Mediation module.
operate on business data. Service Data Objects