Processing an Order in a Purchase Order System

Project Overview

The purchase order handling system in this scenario is represented by a web service implemented using Sun Java Application Server with the JBI framework.

Scenario Message Flow

    The message flow of the Purchase Order scenario is as follows:

  1. The web client, using some client-side scripting language such as JavaScript, takes the purchase order information entered into the web form and packages it into a SOAP message. The format of the SOAP message is defined using a WSDL.

  2. The SOAP message is sent to a web service endpoint hosted by the HTTP Binding Component.

  3. The HTTP Binding Component transforms the SOAP message into a Normalized Message. The Normalized Message is sent to the Normalized Message Router.

  4. The Normalized Message Router routes the Normalized Message to the BPEL Service Engine.

  5. The BPEL Service Engine interprets the purchase order information and properly invokes other BPEL processes to fulfill the request.

  6. The BPEL Service Engine creates a response message in the form of a Normalized Message. The Normalized Message is sent to the Normalized Message Router.

  7. The HTTP BC receives the response message and converts it to a SOAP message. The SOAP Message is sent back to the web client as a proper response as defined by the WSDL document.

  8. The web client takes the response and creates a human-readable HTML page to notify the user that the purchase order was either accepted or rejected.

Duke's Book Store uses an automated purchase order system with an open interface through which anyone can make a purchase. To accomplish this they use the Java Business Integration framework. Each process is implemented using the BPEL language. Every interface is exposed as a WSDL, with SOAP over HTTP as the underlying messaging and transport.

Core System Pieces

The system's core pieces are the PurchaseOrder interface and the Inventory interface.