Skip to main content

By clicking Submit, you agree to the developerWorks terms of use.

The first time you sign into developerWorks, a profile is created for you. Select information in your developerWorks profile is displayed to the public, but you may edit the information at any time. Your first name, last name (unless you choose to hide them), and display name will accompany the content that you post.

All information submitted is secure.

  • Close [x]

The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerworks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

By clicking Submit, you agree to the developerWorks terms of use.

All information submitted is secure.

  • Close [x]

What's new in WebSphere Enterprise Service Bus V6

Nay Lin (naylin@us.ibm.com), Senior Software Engineer, IBM Software Services for WebSphere, IBM
Nay Lin is a senior software engineer at the IBM Software Services for WebSphere Business Integration Proof-of-Concept Lab in Burlingame, California. He is an IBM certified IT specialist with extensive experience using WebSphere Business Integration products and developing J2EE and SOA applications using Rational Software Architect and WebSphere Integration Developer. You can contact Nay at naylin@us.ibm.com.

Summary:  An Enterprise Service Bus (ESB) is an architectural pattern that enables common connectivity and virtualization of services as they interact. It provides a foundation for implementing SOA for enterprise information systems. IBM provides several products to implement an ESB, including WebSphere Message Broker and WebSphere DataPower. Recently IBM introduced WebSphere ESB V6 as an ESB product built on Service Component Architecture (SCA). This article gives you an overview of WebSphere ESB and WebSphere Integration Developer, the integrated development environment for developing WebSphere ESB applications.

Date:  10 Jan 2007
Level:  Intermediate
Also available in:   Chinese  Korean  Russian

Activity:  6745 views
Comments:  

Introduction

This article describes key technical features of IBM® WebSphere® ESB V6.0.2 and WebSphere Integration Developer V6.0.2, and provides references to development resources. The article will help architects, service integrators, and developers to use WebSphere ESB to develop enterprise SOA solutions. The following features of WebSphere ESB differentiate it from other ESB products:

  • A default messaging engine based on JMS specifications.
  • WebSphere Application Server code base: a world-class J2EE foundation providing industry-leading levels of availability, scalability, and performance.
  • Support for J2EE, Web services, and interoperability standards to enable flexible integration of services in J2EE and Web services environments.
  • Support for Service Component Architecture (SCA), allowing easy and dynamic assembly and binding of service components at both development time and run time.
  • Included as a default ESB in WebSphere Process Server, which provides advanced business integration and process management. As business needs arise, enterprises can readily extend their SOA solutions by deploying WebSphere Process Server capabilities.
  • Companion WebSphere Integration Developer is based on Eclipse and provides a common integrated environment to develop and assemble services or build business process models.
  • Streamlined installation and configuration procedures, and the same look-and-feel in administration and management user interface as WebSphere Application Server and WebSphere Process Server.

What is WebSphere ESB

Connectivity of services across heterogeneous technologies and systems is one of the foundations in implementing SOA for enterprise information systems. WebSphere ESB provides common connectivity between services via its default messaging engine while supporting various interaction styles, protocols, and Quality of Service (QoS). It mediates messages between service requesters and service providers via mediation modules. WebSphere ESB provides core ESB mediation capabilities, such as message transformations and filtering or routing of messages to different service providers. In addition, it provides functions such as message logging, augmenting messages with data from a database, and error processing that is tailored to your requirements. WebSphere ESB mediations enable the same service to be accessed by service requesters through multiple protocol channels. WebSphere ESB is based on SCA and supports key J2EE and Web services standards. It enables easy integration and deployment of services, and dynamicity in managing mediation services while providing convenient points of configuration and instrumentation for security and monitoring components. WebSphere ESB provides easy connectivity to many enterprise applications, such as SAP, Siebel, and PeopleSoft, through its support for WebSphere Adapters.

In addition, WebSphere ESB provides:

  • IBM Message Service client for C/C++ -- Extends the JMS model for messaging to C and C++ applications
  • IBM Message Service Client for .NET -- Enables .NET applications to participate in JMS-based information flows
  • IBM Web Services Client for C++ -- Enables C and C++ applications to connect to Web services hosted on WebSphere

Mediation modules

WebSphere ESB mediation modules are SCA modules that can mediate messages that are in flight between service requesters and service providers. SCA modules contains SCA components or service components. SCA components are SCA building blocks that can be assembled into composite services. You can create and customize SCA modules and components graphically, using WebSphere Integration Developer. In addition, you can customize some of the properties of mediation modules dynamically, from the WebSphere ESB administrative console, without having to redeploy the module. Typically, mediation modules contain a specific type of SCA component called a mediation flow component. A mediation module can contain, at most, one mediation flow component. A mediation module can also contain:

  • SCA imports of an external service -- Enable a mediation component or an SCA service component in a mediation module to reference and invoke a service external to the module.
  • SCA exports -- Expose an SCA service component or mediation flow component in a module and make it accessible to service requesters external to the mediation module.

Figure 1. WebSphere ESB and mediation modules
WebSphere ESB Mediations

Bindings and protocol conversion

WebSphere ESB can interconnect a variety of different service requesters and providers using the mediation flow component. The inbound and outbound protocols to the mediation component are specified as bindings in the export and the import components of a mediation flow component. WebSphere ESB inherently performs protocol conversions based on these bindings. WebSphere ESB V6.02 supports the following bindings:

  • Web service bindings -- Let you access Web services. They support the SOAP/HTTP and SOAP/JMS protocols.
  • SCA bindings (also called default bindings)-- Connect SCA modules to other SCA modules.
  • Java™ Message Service (JMS) 1.1 bindings -- enable interoperability with the WebSphere Application Server default messaging provider. The JMS protocol can exploit various transport types, including TCP/IP and HTTP(S). The JMS Message class and its five subtypes (Text, Bytes, Object, Stream, and Map) are automatically supported.
  • WebSphere Adapter Bindings -- Enable interaction with Enterprise Information Systems (EIS). IBM provides WebSphere Adapters based on JCA standards for connectivity to EIS applications via other protocols such as SAP, PeopleSoft, and Siebel.
  • WebSphere MQ JMS Bindings** -- Enable interoperability with WebSphere MQ-based JMS providers. The JMS Message class and its five subtypes are automatically supported.
  • WebSphere MQ Bindings** -- Enable interoperability with native WebSphere MQ applications. You can use WebSphere MQ bindings only with remote queue managers via a WebSphere MQ client connection; you cannot use them with local queue managers.

A mediation module does not have to contain a mediation flow component. A mediation module that does not contain a mediation flow component is typically used for protocol conversion between service requesters and providers.

JMS custom bindings

Predefined JMS data bindings provide a mapping between the format used by an external JMS message and the Service Message Object (SMO) representation used by a mediation module. Some of the predefined JMS bindings have specific requirements -- for example, the JMS Text binding requires the message body to be a Business Object (BO) XML description of a message, and the JMS Object binding requires the message body to be a serialized Java Data Object. For JMS message types that are not supported by predefined JMS data bindings, or for custom processing of inbound and outbound JMS messages into SMO messages, you can specify JMS custom bindings for export and import components of a mediation module.

Interaction patterns

WebSphere ESB supports the following messaging interaction models:

  • One-way interactions
  • Request-reply interactions (synchronous or asynchronous)
  • Publish/subscribe

Based on SCA, you can specify preferred interaction styles and various Quality of Service (QoS) and transactional properties on interfaces, references, and bindings.

Mediation flow component

A mediation flow component is used to define mediation flows. A mediation flow component contains:

  • Mediation flows -- perform mediation on request and/or response messages between the service requester and the service provider.
  • Interfaces -- One or more interfaces to be used by service requesters to invoke the mediation component.
  • References -- zero or more references to imports of external services invoked by the mediation component.

A mediation flow component can have a request mediation flow, and a response mediation flow for request-reply interactions:


Figure 2. Details of a mediation flow component
wesb overview

Mediation flows and mediation primitives

A mediation flow is composed of one mediation primitive, and optionally, a number of mediation primitives. Each flow has an input node for each source operation and a callout node for each target operation. You can also promote the Use dynamic endpoint property in the callout node.


Request Flow

Figure 3. Mediation request flow and response flow
Response Flow

Mediation primitives process messages as Service Message Objects (SMOs). An SMO is the logical representation of messages exchanged between services within WebSphere ESB. SMOs are patterned after Service Data Objects (SDOs). An SMO message consists of a header, a body containing a message payload, a context containing data to correlate a response flow and a request flow, and transient data to link primitives across a request or response flow. WebSphere ESB V6.0.2 supports the following mediation primitives:

  • Database Lookup -- Enrich or update a message using information from a specified database.
  • Message Filter -- Selectively route messages based on message content specified via XPath expressions.
  • Message Logger -- Log messages in a database.
  • Stop -- Stop a path in the mediation flow without generating an exception.
  • XSLT -- Use the XSLT mediation primitive to transform messages.
  • Endpoint Lookup** -- Dynamically route messages to appropriate service endpoints. The Endpoint Lookup primitive searches for service endpoint information for Web services, Mediation module exports with Web service bindings, and the default SCA binding from WebSphere Service Registry and Repository (hereafter called the Registry and Repository).
  • Event Emitter** -- Emit Common Base Events from within a mediation flow if an unusual situation (or audit situation) occurs.
  • Fail** -- Stop a mediation flow, and generate an exception.
  • Message Element Setter -- Set the content of messages.
  • Custom** -- Execute custom logic specified in a Java SCA component, or an import of an external service. You can use a custom mediation primitive to interface with external transformation engines such as WebSphere TX, which provide convenient graphical tools to process industry standard data formats such as EDI and SWIFT.

Promoted properties

Mediation primitives have properties, and some of these properties can be made visible to the WebSphere ESB administrator by promoting them.** Promoted properties have an alias name, which is the name displayed on the WebSphere ESB administrative console. Multiple promoted properties can be given the same alias name if they are of the same type in order to be assigned the same value.

** New features in WebSphere ESB V6.0.2

Development environment

WebSphere Integration Developer provides an integrated environment for developing and testing mediation modules and SCA components. It provides graphical editors for SCA programming artifacts, such as the Business Object Editor and the Interface Editor. It provides a graphical UI to specify detail properties of components, bindings, and QoS qualifiers for the service components. Built on Eclipse, you can use it to develop SCA modules and other SCA components to be deployed to WebSphere Process Server.

Visual editors and wizards

WebSphere Integration Developer provides several graphical editors and wizards for discover and import services, rapid development, testing, and deployment of mediation modules.

Mediation Module Assembly Editor

WebSphere Integration Developer includes a Mediation Module Assembly Editor to graphically assemble a mediation flow component with other Java components. It can also import referenced services for invocation. The Editor lets you generate one or more exports of your mediation component with supported bindings for consumption by service requesters via multiple protocol channels:


Figure 4. Mediation module assembly editor
Mediation module assembly editor

Mediation Flow Editor

WebSphere Integration developer also provides a graphical Mediation Flow Editor to build mediation flows between source and target interfaces by graphically stringing together zero or more mediation primitives from the palette of predefined mediation primitives. The Editor makes it easy to specify detail properties of each mediation primitive. For example, for the Endpoint Lookup primitive, you can configure one or more definitions of the Registry and Repository WSRR that may be used under Preferences. For each lookup primitive, you can specify detail properties including the Registry and Repository definition to be used, the Registry and Repository classification of the service, and the user-defined properties of the service to be queried.


Figure 5. Mediation flow editor
Mediation flow editor

The Properties Editor for each mediation primitive also displays a list of promotable properties that you can select to be visible to the WebSphere ESB administrator.


Figure 6. Promoted properties of a mediation primitive
Promoted props

XSL Mapping Editor

For the XSL Transformation primitive, WebSphere Integration Developer provides a graphical editor to map between an individual element or arrays of elements from the source to the target message using drag-and-drop to generate XSL, and to define XSL functions. The editor also gives you an option to specify an existing XSLT file for the transformation. You can use an XPath editor to select the contents of a message to be used by a Filter mediation primitive to specify content-based routing.

Visual Java Snippet Editor

For custom mediation primitives, you can use either the embedded visual Java Snippet Editor or the standard Java Editor to develop Java code for implementation. You can add a custom mediation primitive to the graphical palette of built-in primitives by turning it into an Eclipse plug-in.

Enterprise Service Discovery wizard

WebSphere Integration Developer also provides the Enterprise Service Discovery wizard to discover services in the Registry and Repository or in WebSphere Adapter service artifacts to generate WebSphere Adapter (EIS) bindings.

Testing and debugging

WebSphere Integration Developer provides a component test client to test SCA components including mediation flow components. The test client lets you specify an input to a service manually, or load it from a file. It provides an emulator where you can specify return data to emulate the result of the target service component via manual entry or retrieval from a specified file. Moreover, you can debug mediation flows using an in-place visual debugger where you can add breakpoints, and step into, through, or over areas of interest while inspecting the values of the messages.

WebSphere ESB mediation modules are packaged into Enterprise Application Archive (EAR) files. You can deploy the EAR file containing the mediation application to the WebSphere ESB test server embedded inside the WebSphere Integration Developer test environment. When you deploy the application to the WebSphere ESB test server, any JMS messaging resources required for export and import components with JMS bindings are automatically generated on the default messaging engine used by the server. You can use either command-line scripts or a Web-based administrative console to install and manage these mediation applications to the embedded test server or to an external WebSphere ESB server.

Installation and configuration

Installation and configuration procedures for WebSphere ESB are similar to those for WebSphere Application Server and WebSphere Process Server, thus simplifying installation and configuration if you are familiar with one of those two products. You can install WebSphere ESB using an installation wizard or silently in a non-interactive mode. Once installation is completed, you can create and configure one or more servers in standalone or network deployment mode. Network deployment lets you administer a group of servers centrally from a deployment manager. The configuration is done by creating corresponding profiles. After you create a profile, you can create server instances with it. Here is a sample topology involving WebSphere ESB:


Figure 7. A sample topology involving WebSphere ESB
WESB topology

For scalability and high availability, you can configure WebSphere ESB and its corresponding messaging engine in WebSphere Network Deployment clusters. If you plan to enable event monitoring of SCA components or handle events emitted by the Event Emitter primitive, you can perform post-installation tasks to configure the Common Event Infrastructure. If you plan to use the Registry and Repository, you need to configure one or more definitions of it that can be used for the Endpoint Lookup mediation primitive, using the Web administrative console. You can enable C, C++, or .Net applications to participate in interactions with WebSphere ESB by installing and configuring Message Service clients provided with WebSphere ESB.

Administration and management

Since mediation modules are packaged in an EAR file, they are installed on a WebSphere ESB server as enterprise applications. You can install them using the wsadmin command-line tool or the WebSphere ESB administrative console. You can use the wsadmin tool in different ways -- interactively, as an individual command, or using jacl scripts. WebSphere ESB has commands that let you display SCA modules and their imports and exports. You can also make changes to Web service and SCA import bindings. While scripts are useful for large-scale administrative tasks, the Web administrative console provides a user-friendly interface. Administrative capabilities include:

  • Display details of the application used to deploy a mediation module
  • Display the general configuration properties of a mediation module
  • Display service imports in a mediation module
  • Display exports in a mediation module:

    Figure 8. Displaying details of a mediation module in the WebSphere ESB Administrative console
    Mediation module in admin console

  • If the import binding is a Web service, you can change its endpoint URL If the import uses SCA binding, you can modify it to point to a different SCA module as a target. These changes takes effect immediately (or after synchronization in Network deployment) without having to restart or redeploy the module:

    Figure 9. Changing endpoint URL in the WebSphere ESB Administrative console
    Changing endpoint

  • Display promoted properties of a mediation module. You can change the value of the promoted properties of a mediation module**. These changes takes effect immediately (or after synchronization in network deployment) without having to restart or redeploy the module:

    Figure 10. Changing the promoted properties of a mediation module WebSphere Administrative console
    Promoted Properties

  • Start a mediation module that is not running (has a status of Stopped) or stop a module that is running (has a status of Started). To change the status of a mediation module, start or stop the application used to deploy the module.
  • Manage resources used by mediation modules. When you install a mediation module into WebSphere ESB, JMS destinations and resources required for mediation components, exports, and imports are automatically defined on the WebSphere ESB server. These resources may be viewed and managed, for example to modify their properties for better performance.
  • Create, configure, and display all your Registry and Repository access definitions**.

** New features in WebSphere ESB V6.0.2

WebSphere ESB uses the global security framework provided by the WebSphere Application Server platform. It supports SSL for protocol-level security and WS-Security for message-level security of SOAP Web services. WS-Security is specified in the IBM extensions of Web services bindings of export and import components. WebSphere global security for WebSphere ESB must be enabled to utilize user identities stored in a WebSphere Security registry such as the LDAP user registry.

Conclusion

WebSphere ESB provides key ESB capabilities for connecting disparate services in an SOA. It provides a default JMS messaging engine for common connectivity of services while supporting multiple communication protocols and interaction patterns. It provides mediation between service requesters and providers using predefined and user-defined mediations. It supports connectivity to EIS applications via IBM WebSphere Adapters based on JCA specifications. With its native support for Web services, J2EE, and SCA standards for seamless service integration, WebSphere ESB is a strategic enterprise product for enabling a standards-based SOA.


Resources

About the author

Nay Lin is a senior software engineer at the IBM Software Services for WebSphere Business Integration Proof-of-Concept Lab in Burlingame, California. He is an IBM certified IT specialist with extensive experience using WebSphere Business Integration products and developing J2EE and SOA applications using Rational Software Architect and WebSphere Integration Developer. You can contact Nay at naylin@us.ibm.com.

Report abuse help

Report abuse

Thank you. This entry has been flagged for moderator attention.


Report abuse help

Report abuse

Report abuse submission failed. Please try again later.


developerWorks: Sign in


Need an IBM ID?
Forgot your IBM ID?


Forgot your password?
Change your password

By clicking Submit, you agree to the developerWorks terms of use.

 


The first time you sign into developerWorks, a profile is created for you. Select information in your developerWorks profile is displayed to the public, but you may edit the information at any time. Your first name, last name (unless you choose to hide them), and display name will accompany the content that you post.

Choose your display name

The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerWorks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

(Must be between 3 – 31 characters.)

By clicking Submit, you agree to the developerWorks terms of use.

 


Rate this article

Comments

Help: Update or add to My dW interests

What's this?

This little timesaver lets you update your My developerWorks profile with just one click! The general subject of this content (AIX and UNIX, Information Management, Lotus, Rational, Tivoli, WebSphere, Java, Linux, Open source, SOA and Web services, Web development, or XML) will be added to the interests section of your profile, if it's not there already. You only need to be logged in to My developerWorks.

And what's the point of adding your interests to your profile? That's how you find other users with the same interests as yours, and see what they're reading and contributing to the community. Your interests also help us recommend relevant developerWorks content to you.

View your My developerWorks profile

Return from help

Help: Remove from My dW interests

What's this?

Removing this interest does not alter your profile, but rather removes this piece of content from a list of all content for which you've indicated interest. In a future enhancement to My developerWorks, you'll be able to see a record of that content.

View your My developerWorks profile

Return from help

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=WebSphere, Architecture
ArticleID=187731
ArticleTitle=What's new in WebSphere Enterprise Service Bus V6
publish-date=01102007
author1-email=naylin@us.ibm.com
author1-email-cc=

Next steps from IBM

Rational products offer a complete collaborative lifecycle management set of tools for the IBM i platform for existing and new developers.


Tags

Help
Use the search field to find all types of content in My developerWorks with that tag.

Use the slider bar to see more or fewer tags.

For articles in technology zones (such as Java technology, Linux, Open source, XML), Popular tags shows the top tags for all technology zones. For articles in product zones (such as Info Mgmt, Rational, WebSphere), Popular tags shows the top tags for just that product zone.

For articles in technology zones (such as Java technology, Linux, Open source, XML), My tags shows your tags for all technology zones. For articles in product zones (such as Info Mgmt, Rational, WebSphere), My tags shows your tags for just that product zone.

Use the search field to find all types of content in My developerWorks with that tag. Popular tags shows the top tags for this particular content zone (for example, Java technology, Linux, WebSphere). My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere).

Special offers