Jumpstart for Oracle Service Bus Development

Moving from Oracle Enterprise Service Bus to Oracle Service Bus
by Ronald van Luttikhuizen and Eric Elzinga
Published October 2009

Architect: SOA

Abstract

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.

Introduction

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:

  • You only need bus-like functionality. Choose OSB since it is the better product compared to OESB and it is strategic to Oracle. You will need to migrate OESB flows to OSB projects.
  • You need a complete SOA-stack including service orchestration capabilities and possibly business rules, support for human activities, and so on. The best choice in this case is moving to SCA. Existing OESB flows providing routing and transformation capabilities migrate to Mediator components within a SCA composite — which can be done automatically by opening ESB projects in JDeveloper 11g — while OESB flows that connect your environment to the outside world should be migrated to OSB.

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.

Installation and Configuration

Perform the steps from the  Installation and Configuration Guide to setup your environment.

Case

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.

Tutorial 1: First spin - getting to know Oracle Service Bus by exposing a simple service

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.

Goal

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.

Tutorial 2: New adapters

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.

Goal

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.

Tutorial 3: Data enrichment

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.

Goal

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.

Install Oracle Service Bus

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

Create domain

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.

  1. Start the "Configuration Wizard" to create the new domain. The Configuration Wizard is located in <OSB_HOME>/wlserver_10.3/common/bin. Run config.exe (Windows) or config.sh (Unix).
  2. Select "Create a new WebLogic Domain" in the first step of the wizard and click "Next".
  3. Select the "Oracle Service Bus" option in the "Select Domain Source" window and keep all other defaults. Click "Next".

    Figure 2: Oracle WebLogic Configuration Wizard - Select Domain Source

  4. Enter "weblogic" as username and provide its password. Click "Next".
  5. Keep the default settings for development mode and JDK. Click "Next". 
  6. Keep the default settings in the "Customize Environment and Services Settings" and click "Next". 
  7. Enter "waai" as the domain name and select "Create".

    Figure 3: Oracle WebLogic Configuration Wizard - Create WebLogic Domain

    The domain "waai" will now be created.

    Figure 4: Oracle WebLogic Configuration Wizard - Creating Domain

  8. Start the newly created domain by running 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.

Oracle Workshop for WebLogic

Time to start Oracle Workshop.

  1. Choose a workspace location to store the Oracle Service Bus projects we will create in the tutorials. Click "Workbench" to open 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. 

  2. Unzip the Resources Archive to your workspace directory. Import the projects by selecting File → Import... → General → Existing Projects into Workspace from the menu. Browse to the workspace directory where you unzipped the resources archive. Keep all other defaults and click "Next". The following projects should be shown in the dialog: KlantWebService, KlantWebServiceEAR, MailClient, OrderWebService, and OrderWebServiceEAR.

    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.

  1. Select File → New → Other... from the menu. Select Server → Server from the dialog and click "Next". This will open the "New Server" dialog.

    Figure 8: Defining a new server connection in Oracle Workshop

  2. Enter a name for the server connection. Keep the defaults -Oracle WebLogic Server v10.3- and click "Next". 
  3. 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

  4. Deploy the required Web Services to the "waai" domain by right-clicking the KlantWebServiceEAR project in the "Project Explorer" and selecting Run As → Run on Server . In the "Run on Server" dialog select the server connection that we just created and click "Finish". Repeat these steps for the OrderWebServiceEAR project.

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.

  1. Select File → New → Other... from the menu. Select Oracle Service Bus ? Oracle Service Bus Configuration Project. Click "Next". Enter "OSB Configuration" as name and click "Finish".

    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.

Mail server

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!