Moving from Oracle Enterprise Service Bus to Oracle Service Bus
by Ronald van Luttikhuizen and Eric Elzinga
Published October 2009
Architect: SOA
This article is aimed at developers and architects who are familiar with Oracle Enterprise Service Bus (OESB) and are (fairly) new to Oracle Service Bus (OSB). The tutorials in this article highlight differences between these two products. The tutorials are based on a workshop in the WAAI community; a collaboration of Dutch consultancies (Whitehorses, Approach, AMIS, and IT-Eye). The goal of the WAAI collaboration is to share, bundle, and expand knowledge on the recent Fusion Middleware 11g release.
When it comes to choices within Oracle's SOA product portfolio, life seemed to be somewhat easier a few years ago. When you needed service bus functionality, you choose Oracle's Enterprise Service Bus. Two things caused a shift that resulted in a richer and better set of ESB-like products: the acquisition of BEA, including its AquaLogic Service Bus (ALSB) product; and the evolution to Service Component Architecture (SCA) in SOA Suite 11g, which includes the Mediator component. These changes also made the choice for the "right bus" somewhat more difficult.
With the release of the last generation of Fusion Middleware 11g the smoke has somewhat cleared. ALSB has been rebranded as Oracle Service Bus (OSB) and is enriched with some of the functionality from Oracle ESB — JCA as transport protocol, an improved adapter offering including the AQ and Database adapter, and transformation capabilities based on XSLT — thus providing the best of both worlds. In Oracle's go-forward strategy, OSB is the strategic ESB product. The routing and transformation capabilities previously offered by Oracle ESB have been migrated to the Mediator component of SOA Suite 11g. Mediator is one of the many SCA components that can be assembled into service composites.
This new infrastructure based on SCA and OSB is depicted the following picture:
Figure 1: Infrastructure based on Oracle Fusion Middleware 11g
Depending on your needs and environment, there are two options for migration from Oracle ESB to this new Oracle infrastructure:
The tutorials in this article are based on building OSB projects from scratch, not on migration from other or previous products to OSB. Let's move on to the tutorials. First we need to install and configure Oracle Service Bus.
Perform the steps from the Installation and Configuration Guide to setup your environment.
The tutorials in this article gradually introduce the basic features of OSB and more advanced features that are different from Oracle ESB. For illustration purposes we'll use the fictitious global company Foo Inc. that wants to expose and create customer and order services.
The solutions to the tutorials can be found in the Projects Archive. This zip file contains the completed Oracle Workshop workspace and projects.
The multinational Foo Inc. wants to reuse a service of its local Dutch subsidiary that retrieves customer information. The Dutch payload has to be transformed into the English canonical data model.
Getting to know OSB basics such as Business and Proxy Services, and simple routing rules and transformation capabilities based on XQuery. Getting to know Oracle Workshop as IDE. Oracle Workshop is based on Eclipse. OESB uses XSLT for transformation. OESB development is done in JDeveloper.
Jump to Tutorial 1.
Adding self-service capabilities for Foo Inc.'s customers using the service created in the previous tutorial. With this new service customers of Foo Inc. can email their personal information and will automatically be added to the back office systems, so they can make online purchases.
Getting to know the adapter support in OSB such as the e-mail adapter. OESB does not offer an email adapter.
Jump to Tutorial 2.
Combining the customer service from the first tutorial and a basic ordering Web Service to create a composite service that is used when a customer purchases something from Foo Inc.'s website.
Getting to know the more advanced routing and transformation capabilities of OSB. Especially data-enrichment according to the VETO-pattern (Validate Enrich Transform and Operate) that is more difficult to achieve in OESB due to its lack of temporary variables.
Jump to Tutorial 3.
Download and install Oracle Service Bus 10gR3 or later. This will install Oracle WebLogic Server, Oracle Service Bus, and Oracle Workshop for WebLogic. Oracle Service Bus runs on Oracle WebLogic Server. Oracle Workshop is the Eclipse-based IDE for developing OSB artifacts.
Installation instructions can be found at the Oracle Service Bus page on OTN.
Figure 1: Installing Oracle Service Bus
We now continue to create a new domain called "waai". The Oracle Service Bus projects that are created in the tutorials will be deployed to this domain.
<OSB_HOME>/wlserver_10.3/common/bin.
Run config.exe
(Windows) or config.sh
(Unix).
Figure 2: Oracle WebLogic Configuration Wizard - Select Domain Source
Figure 3: Oracle WebLogic Configuration Wizard - Create WebLogic Domain
The domain "waai" will now be created.Figure 4: Oracle WebLogic Configuration Wizard - Creating Domain
startWebLogic.cmd
(Windows) or startWebLogic.sh
(Unix) located in <OSB_Home>/user_projects/domains/waai.
Let's continue by deploying the required resources using Oracle Workshop.
Time to start Oracle Workshop.
Figure 5: Oracle Workshop for WebLogic
The tutorials in this article will use several resources such as Web Services that we first need to import and deploy to the "waai" domain.
Figure 6: Importing existing projects in Oracle Workshop
The MailClient project is a simple Java application used for testing purposes in the second tutorial while the other projects are JAX-WS Web Services that are used as resources in the OSB projects.
Note that "klant" means customer in Dutch. Part of the tutorial is to create an OSB project that exposes the local Dutch service as global service for Foo Inc. and translates its content into the English canonical data model.
Click "Finish". The projects are now listed in the "Project Explorer".
Figure 7: Oracle Workshop after importing the projects
We need to configure a server connection in Oracle Workshop to deploy the imported resources to the "waai" domain.
Figure 8: Defining a new server connection in Oracle Workshop
Enter the domain directory, which should be located in <OSB_Home>/user_projects/domains/waai
- and click "Finish".
Figure 9: Defining a new server connection in Oracle Workshop
The projects are deployed to the server. You should see the projects if you log into Oracle WebLogic Server Console; normally located at http://host:7001/console.
Figure 10: Oracle WebLogic Server Administration Console
The final configuration step in Oracle Workshop is to create a new Oracle Service Bus Configuration Project. Oracle Service Bus projects are associated with an Oracle Service Bus Configuration Project. An OSB Configuration Project is also used to create and contain resources for SMTP, UDDI, and so on that can be accessed by all projects in the configuration project.
Figure 11: Creating a new Oracle Service Bus Configuration Project
The default location of the Oracle Service Bus Administration Console is http://host:7001/sbconsole.
After logging in you'll be able to see all deployed Oracle Service Bus projects.
Figure 12: Oracle Service Bus Administration Console
You have now completed the initial configuration in Oracle Workshop by importing and deploying Web Service projects, configuring a server connection to the "waai" domain, and creating an Oracle Service Bus Configuration Project.
Tutorial 2: New adapters requires access to a mail server. Install and configure a simple mail server such as Java Email Server (JES) if needed, and create the email address "waai@mydomain.com". Installation and configuration instructions for JES can be found here.
You are now ready to start the tutorials!