Index Changes

OpenESB / GlassfishESB Introduction Tutorial

This is a set of screencasts showing how to build a simple composite application using OpenESB. It has recently been updated to use GlassfishESB v2. The goal is to build something simple which shows multiple Service Engines and Binding Components to reinforce the concepts of Java Business Integration. Check out OpenESB Introduction Screencast for introductory info on OpenESB and role of JBI from the developer's perspective.

The Demo Project is an over simplified Loan Application Process (there is an unwritten rule that all vendor demos must use a banking applications :). The composite application consists of the following parts:

  • the process orchestration is implemented in BPEL
  • the process should be exposed to Applicants as a WS-I Basic Profile compliant webservice
  • the process invokes a JavaEE EJB to performing the processing of the loan application
  • after processing, the process invokes a ReportMail Service which is running remotely and can only be communicated with through JMS
  • the capability to invoke the Loan Application Process through the file systems (e.g., incoming ftp msg) in addition to a webservice endpoint is added.
  • finally, the tutorial shows how BPEL can be used to persist data in a database - for those times when it makes sense to expose database operations at the service level.

Release Notes:

    • This demo was created using GlassfishESB 1.0 RC
    • Demo was last tested using GlassfishESB v2.1 RC2. May 20 2009.
      • There are issues with JDK 1.6u13/14. Please use an earlier version of the JDK. This has been tested with jdk1.6u7 and jdk1.6u10
      • Part1. A new BPEL project is now created with a default .bpel project included. The earlier builds required the developer to create a New -> BPEL Process explicitly.
      • See workaround for bug in part2.
    • Attached(info) are the completed project files. It includes the necessary XSDs as well as a snapshot of the relevant projects at the beginning of each part of the tutorial and the final version.
    • The videos are annotated with text pop-ups to explain what is happening. These pop-ups are model and you need to click on them to move forward.


Part 1: Implement a Simple BPEL Process with a Web Service Binding.

  • create a simple Request-Repsonse BPEL Service Unit
  • create a Composite Application / Service Assembly
  • use the CASA editor to create a SOAP/HTTP Binding Component Service Unit and "attach" it to the new BPEL process
  • deploy and unit test

Part 2: Calling from BPEL to a JavaEE Service through the NMR (i.e., without making an over the wire webservice call)

  • create an EJB WebService
  • add it to the Composite Application
  • invoke that Service from the BPEL created in Part1
  • deploy and unit test
    • Flash Screencast(info)
    • Since this screencast was created a few things have changed in the tooling. This blog entry shows changes I would now make to this part of the tutorial
      • June 2009: There is currently a bug when imported external XSD documents using the wizard into an EJB project.
        • To workaround the issue, manually copy the XSD documents into the "contract" folder of the EJB instead of using the "New External Schema Document" wizard
      • June 2009: When creating a webservice from WSDL, the video directs you move the WSDL/XSDs to a folder without spaces in the pathname. This bug has been fixed. There is no need to move the WSDL/XSDs now.

Part 3: Using a JMS Binding Component to invoke a Service which is running remotely and listening to a JMS Destination

  • deploy an MDB which is listening to a JMS Queue
  • create a JMS Binding Component Service Unit which makes that Queue appear as a Service to other Services running inside the OpenESB node.
  • invoke that Service from the BPEL process
  • deploy and unit test

Part 4: Using a File to invoke the BPEL process (in addition to its existing webservice endpoint)

  • add a file binding component service unit to the service assembly using CASA
  • modify the properties of that service unit to poll for a known filename in a known location
  • link to the BPEL process
  • deploy and unit test

Part 5: Using the Database Binding Component to provide a database service to persist data from the BPEL process

  • create a new database and table using the Database Explorer in NetBeans
  • create a JDBC resource and connection pool in Glassfish
  • create a Database Binding to expose the JDBC operations on that table as a service
  • invoke the service from BPEL
  • deploy and test

JSPWiki v2.4.100
« Home Index Changes Prefs
This page (revision-30) was last changed on 16-Jun-09 06:02 AM, -0700 by LxinTang