This article describes the design blueprint for implementing a http://www.aliyun.com/zixun/aggregation/7921.html lightweight "> Enterprise service Bus (ESB) that leverages the common integrated development environment (IDE) and middleware. The scenarios in this article use the Ibm®websphere®application Server V8 (a robust deployment environment for Java EE applications) and IBM Rational®software Architect, which provides tools to design, develop, Test and package Java EE applications to deploy to the application server.
Business Scenario
Challenges
To meet business requirements, a service provider needs to provide multiple versions of its applications within a year. Each version needs to update the existing service agreement and deploy a new version of the Web service to a production environment.
The most cost-effective solution is often to deploy a single service instance in a production environment to reduce maintenance costs. However, because of budget constraints or maintenance plans, service users do not always use it as soon as the new version is released. This scenario forces a service provider to host multiple service versions to support customer requirements.
Solution
Both the WebSphere Enterprise service bus (WebSphere ESB) and the WebSphere Datapower®appliances provide robust ESB capabilities that enable dynamic routing and transformation requests between service users and providers. These capabilities enable the service user to detach from the service instance that handles the request. By leveraging an ESB, a service provider can sign multiple service agreements without having to host multiple instances of the service in a production environment.
When only a subset of the functionality provided in the WebSphere ESB and WebSphere DataPower is required, customers can choose to build lightweight ESB capabilities into their Java EE applications to meet their project-specific requirements.
Blueprint for implementing Lightweight ESB
The blueprint for implementing a lightweight ESB should contain multiple layers to handle the different functions required to receive, route, transform, and respond to customer requests. The blueprint given in this article contains the following 4 layers:
Routing Layer--a Java API for RESTful Web Services (JAX) RESTful endpoint for URL pattern matching and request routing. Mediation Layer-the mediation and mapping module that manages requests between clients and specific service versions at the data content level. Service call Layer-the manager of the service agreement, used to build the requested request, call a physical service endpoint, and return the content in response. Multi-Protocol listener layer-a listener service, such as WebSphere MQ, Java message Service (JMS), or another service that adds a lightweight ESB to a Jax client application.
Figure 1 shows the advanced design and interface of this lightweight ESB blueprint at 4 levels:
Figure 1. Design and interface of lightweight ESB blueprint
Apply this lightweight ESB blueprint in real-world examples
The following example shows a true usage scenario for the blueprint:
A service provider updates the current product instance of its myservice from version A to version B. The installation of MyService version B will cause MyService version A to be eliminated, so the service provider supports only one instance of MyService version B. Service providers work with the ESB design team to define the necessary routing, mediation, and service invocation logic to provide ongoing support to new and existing customers. The ESB design team uses this blueprint to implement a client-side solution that supports two myservice versions.