Comments
Richard Davies wrote: The UK has a good crop of technology pioneers in cloud computing - for example ElasticHosts, FlexiScale, Flexiant, OnApp - and also some strong government initiatives such as G-Cloud. We will have to see whether this kind of technical leadership converts into swift mass-market adoption or not.
Cloud Expo on Google News


2008 West
DIAMOND SPONSOR:
Data Direct
SOA, WOA and Cloud Computing: The New Frontier for Data Services
PLATINUM SPONSORS:
Red Hat
The Opening of Virtualization
GOLD SPONSORS:
Appsense
User Environment Management – The Third Layer of the Desktop
Cordys
Cloud Computing for Business Agility
EMC
CMIS: A Multi-Vendor Proposal for a Service-Based Content Management Interoperability Standard
Freedom OSS
Practical SOA” Max Yankelevich
Intel
Architecting an Enterprise Service Router (ESR) – A Cost-Effective Way to Scale SOA Across the Enterprise
Sensedia
Return on Assests: Bringing Visibility to your SOA Strategy
Symantec
Managing Hybrid Endpoint Environments
VMWare
Game-Changing Technology for Enterprise Clouds and Applications
Click For 2008 West
Event Webcasts

2008 West
PLATINUM SPONSORS:
Appcelerator
Get ‘Rich’ Quick: Rapid Prototyping for RIA with ZERO Server Code
Keynote Systems
Designing for and Managing Performance in the New Frontier of Rich Internet Applications
GOLD SPONSORS:
ICEsoft
How Can AJAX Improve Homeland Security?
Isomorphic
Beyond Widgets: What a RIA Platform Should Offer
Oracle
REAs: Rich Enterprise Applications
Click For 2008 Event Webcasts
SYS-CON.TV
Top Links You Must Click On


Building a Powerful, Reliable SOA with JMS and WebSphere ESB
Combining WebSphere ESB V6.0.1 and JMS - Part 1

Service-oriented architecture (SOA) is never established in a vacuum. In any real life situation, an existing IT environment must be taken into consideration, offering functionality -- and data -- that cannot simply be replaced by a set of new services. Hence, a key aspect of building an SOA is to decompose existing applications into smaller blocks (that is, the "services") that communicate over standard protocols and have well-defined interfaces. The advantage of this is that such environments are more flexible, without tight coupling between various parts of the overall system.

This concept of loosely coupled and platform independent services is further advanced by the use of an Enterprise Service Bus (ESB). Among other things, an ESB serves as the "glue" between services that use different data and message formats, network protocols, and programming languages. The ESB serves as a level of indirection between a service consumer and a service provider, enabling the deployment of mediations that apply quality of service to an interaction, or to perform required data transformations, to name just two examples.

In this series of articles, we will look at a concrete example of an ESB serving as such an intermediary. We will leverage the IBM WebSphere Enterprise Service Bus (WebSphere ESB) V6.0.1 product to connect service consumers and service providers, using JMS as the messaging mechanism. In this first article, we will take a brief look at the WebSphere ESB product and its tooling environment, namely WebSphere Integration Developer V6.0.1. Part 2 will describe the actual ESB scenario and explain how we build the service consumer and service provider, and then Part 3 will show how we build the mediation between the consumer and the provider that runs in WebSphere ESB. You will learn how to deploy and run the solution, and we will provide all of the code artifacts needed for you to do so. The Enterprise Service Bus and Java Message ServiceAn SOA consists of service consumers and service providers that communicate with each other. They typically do so through an Enterprise Service Bus. Each service has a service definition that describes, among other things, the messages it accepts from consumers and, unless it is a "one-way" service, the messages it returns to its consumers. Thus, building an ESB has much to do with messaging. The ability to send and receive messages in a robust, fast, and reliable way has been a key requirement of IT systems for a long time, and the advent of the ESB does not change that at all; it just introduces additional requirements towards a solution -- for example, support for standards describing message formats, transactional exchanges between services, and so on.

At the same time, systems based on the Java J2EE platform usually utilize the Java Message Service (JMS) API for their messaging needs. Simply put, the JMS standard describes how to send messages from one application to another, potentially exploiting a transactional quality of service.

Given that many applications already use JMS, and given that the services within an SOA need a way to do messaging, it makes perfect sense to use JMS in the context of an ESB. Each ESB must be capable of receiving messages via JMS from a service consumer and forward them to the appropriate service provider, over JMS, or over a different protocol (like HTTP), and vice versa. Moreover, JMS defines several different types of messages that can be sent. For example, a Text message contains a string representation of a message; an Object message contains a serialized Java object; a Map message contains a map of key/value pairs and so forth. Web services typically use SOAP as their message format, but many applications leverage plain XML. Hence, an ESB must support a wide variety of network and message protocols. Figure 1 shows a number of protocol combinations that service consumers and service providers may support. Notice that the ESB acts as the intermediary between the two, enabling connectivity between any consumer and provider regardless of protocol.

How to set up WebSphere ESB to support these different combinations is exactly what we will discuss in this series. First, though, let us look at the product itself and its main components.

WebSphere ESB V6.0.1
The WebSphere ESB product is part of the IBM SOA Foundation. Even though its version number may suggest that this product has been around for a long time, it was released for the first time at the end of 2005, and shares many components with other already existing members of the WebSphere product family. For example, it uses the J2EE-based IBM WebSphere Application Server as its core runtime. WebSphere Application Server offers a JMS implementation that is reused by WebSphere ESB. It also uses the recently announced Service Component Architecture (SCA) as its basic programming model, and it shares the SCA runtime with WebSphere Process Server.

Figure 2 shows an overview of WebSphere ESB and its base components.

WebSphere ESB supports basic messaging via JMS, and can communicate with WebSphere MQ via the MQLink feature in WebSphere Application Server. Web services utilizing SOAP over HTTP and SOAP over JMS are plugged into the ESB, with support for many Web services standards and a UDDI registry provided through the application server. WebSphere ESB can be used not only from standard J2EE clients, but also offers client support for C/C++ and .Net®. Moreover, it provides connectivity to a large number of legacy environments through WebSphere Adapters.

WebSphere ESB and Service Component Architecture
We mentioned above that the programming model utilized by WebSphere ESB is based on SCA. SCA describes a complete service programming model, across a number of components that can all be described and accessed in the same way, namely as services. Such components can be BPEL processes, business rules, human tasks, or plain Java components, just to name some examples. WebSphere ESB introduces a new component type to the SCA model, namely mediation flow components. From the perspective of SCA, a mediation flow component is no different than any other service component, in that a mediation component:

  • exists in a module (more specifically, it exists in a mediation module, which is how it is deployed into a server runtime).
  • has an interface, described either in Java or in WSDL.
  • is exposed to clients via exports, which can have multiple bindings for different protocols (we'll get back to this).
  • has dependencies to other service components via imports, which also have bindings describing protocol details.
In one respect, the mediation flow programming model is unique; it enables binding-specific information about the service message being processed (typically header-type information) to be accessed and manipulated. For a detailed description of SCA and its programming model, and how to build and deploy components through it, see the Building SOA solutions with the Service Component Architecture article series. (For the remainder of this series, we will assume you have basic knowledge of SCA, simply so that we don't repeat things that have been sufficiently covered elsewhere.)

Mediation flow components provide a new kind of implementation for a service component, namely that of a mediation flow. A mediation flow is normally built using a visual flow editor, and describes how both request and response messages flow through a series of mediation primitives. These primitives can read and change messages, or route ("filter") them to different targets. While you can build your own custom mediation primitives, the product comes with a number of predefined ones for:

  • XSLT transformation
  • Message logging
  • Message filtering
  • Database access.
Figure 3 shows a mediation flow component implementation that uses a number of mediation primitives to implement a response flow.
About Andre Tost
André Tost is a Senior Technical Staff Member in the WebSphere Business Development group where he helps IBM?s Strategic Alliance partners integrate their applications with WebSphere. His special focus is on Web services technology throughout the WebSphere product family. Before his current assignment, he spent ten years in various development and architecture roles in IBM software development, most recently for the WebSphere Business Components product. Originally from Germany, he now lives and works in Rochester, Minnesota.

In order to post a comment you need to be registered and logged in.

Register | Sign-in

Reader Feedback: Page 1 of 1

Service-oriented architecture (SOA) is never established in a vacuum. In any real life situation, an existing IT environment must be taken into consideration, offering functionality -- and data -- that cannot simply be replaced by a set of new services. Hence, a key aspect of building an SOA is to decompose existing applications into smaller blocks (that is, the 'services') that communicate over standard protocols and have well-defined interfaces. The advantage of this is that such environments are more flexible, without tight coupling between various parts of the overall system.

Service-oriented architecture (SOA) is never established in a vacuum. In any real life situation, an existing IT environment must be taken into consideration, offering functionality -- and data -- that cannot simply be replaced by a set of new services. Hence, a key aspect of building an SOA is to decompose existing applications into smaller blocks (that is, the 'services') that communicate over standard protocols and have well-defined interfaces. The advantage of this is that such environments are more flexible, without tight coupling between various parts of the overall system.


Your Feedback
SYS-CON Italy News Desk wrote: Service-oriented architecture (SOA) is never established in a vacuum. In any real life situation, an existing IT environment must be taken into consideration, offering functionality -- and data -- that cannot simply be replaced by a set of new services. Hence, a key aspect of building an SOA is to decompose existing applications into smaller blocks (that is, the 'services') that communicate over standard protocols and have well-defined interfaces. The advantage of this is that such environments are more flexible, without tight coupling between various parts of the overall system.
WebSphere News Desk wrote: Service-oriented architecture (SOA) is never established in a vacuum. In any real life situation, an existing IT environment must be taken into consideration, offering functionality -- and data -- that cannot simply be replaced by a set of new services. Hence, a key aspect of building an SOA is to decompose existing applications into smaller blocks (that is, the 'services') that communicate over standard protocols and have well-defined interfaces. The advantage of this is that such environments are more flexible, without tight coupling between various parts of the overall system.
Enterprise Open Source Magazine Latest Stories . . .
With Cloud Expo 2012 New York (10th Cloud Expo) just four months away, what better time to start introducing you in greater detail to the distinguished individuals in our incredible Speaker Faculty for the technical and strategy sessions at the conference... We have technical and st...
AMD said late Tuesday that its chief sales officer Emilio Ghilardi had left the company and that CEO and president Rory Read is going to do his job while a replacement is sought. AMD didn’t say why Ghilardi left but it’s assumed Read wants his own people. Read is relatively new to th...
During the lifespan of M3 (Monitis Monitor Manager) there has always been something lacking – timers. M3 execution procedure was outlined in this previous article. The execution mentioned in the latter was a one-time-execution, whereas server monitoring requires periodic invocati...
Red Hat is putting its bought-in Gluster scale-out NAS storage technology, acquired in October, on the Amazon cloud. It’s styled Red Hat Virtual Storage Appliance for Amazon Web Services and other clouds are supposed to follow in short order.
A new episode of the screencast series is now available at the OpenNebula YouTube Channel. This screencast demonstrates the new easily-customizable self-service portal for cloud consumers. Its aim is to offer a simplified access to shared infrastructure for non-IT end users. The scree...
C12G Labs has just announced an update release of OpenNebulaPro, the enterprise edition of the OpenNebula Toolkit. OpenNebula 3.2, released two weeks ago, brings important benefits to cloud providers with a new easily-customizable self-service portal for cloud consumers, and builders w...
Subscribe to the World's Most Powerful Newsletters
Subscribe to Our Rss Feeds & Get Your SYS-CON News Live!
Click to Add our RSS Feeds to the Service of Your Choice:
Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET News.com Kinja Digest View Additional SYS-CON Feeds
Publish Your Article! Please send it to editorial(at)sys-con.com!

Advertise on this site! Contact advertising(at)sys-con.com! 201 802-3021


SYS-CON Featured Whitepapers
ADS BY GOOGLE