Overview

Disclaimer:
Throughout this document - even we have a single process engine with BPM 7.5 - we sometimes use the former product names, features, or capabilities when we talk about the interaction of both engines (WebSphere Lombardi Edition WLE, WebSphere Process Server WPS) for better differentiation understanding for people having worked with the one or other system.


This sample demonstrates inbound and outbound Web Services invocations. In Part 1 is shows how to develop a Business Process Definition (BPD) which subsequently is started via an inbound Web Services call. This call is asynchronous and a reply could be sent to an endpoint provided in form of WS-addressing. However, in this sample, in Part 2, we model and develop an outbound Web Service call to send and correlate a reply to the service requester.

While the focus is on the Web Service integration several other topics are modeled. In this solution a BPD acts as the service provider. A BPEL process is used as the service requester. Therefore we also demonstrate


A major concept used in this sample is the Undercover Agent (UCA). A UCA is started or invoked by an event. Events can either be triggered by a message or on a specific schedule. When a UCA is started, it invokes a BPM service in response to the event.  Incoming messages can originate from a Web Service that you create or from a message that you post to the JMS Listener.

The UCA triggers the Start BPD message event. See Start BPD message event in the figure below. In order to be connected to the start event the UCA must be associated with a General System Service. An event based UCA can be invoked via a Web Service call. For its implementation the UCA is wrapped into an Integration Service. This service acts as a  Web Service Handler associated by itself with a Web Service that exposes its interface to the outside.

UCA
Source: Kolban's Book on IBM Business Process Management, August 2011.


In BPM the invocation of the BPD is in form of an asynchronous, one-way call. An immediate response to acknowledge the start is possible. Often the BPD includes human tasks which aren't executed immediately. Therefore the long-running BPD has to use other means to send a response back to the requester. In this sample we develop and use an outbound web service call to create the reply.

You might also refer to a Procurement Sample where the integration between a BPEL process as service requester and a BPD as service provider is implemented on IBM's Service Component Architecture (SCA).

The development of a solution demonstrating the interaction of two process engines involves the development of processes by two user roles (personas). First, the Business Author or Process Designer named Bob, who uses the IBM Process Designer (IPD). Second, the IT Developer or Integration Specialist named Igor, who uses the IBM Integration Designer (IID). Following this role-based development approach we develop and exchange artefacts like WSDL file via Import / Export or through the common Process Server Repository.

The development steps are described in two parts: the inbound web service integration in 6 and the outbound web service response 3 steps. For details see the Build it yourself section.


Business Scenario

The development steps to build, deploy, test and run the procurement sample is performed for a business scenario of an internal replenishment order process. The process applies to the manufacturing or retail industry. When the stock for any goods falls beneath a given limit an internal order is automatically triggered. The corresponding BPEL process and its activities are shown and explained in the diagram below. As part of the activity Approve Replenishment Order the BPEL process calls a WLE BPD with a human task and coaches to request approval by an authorized user. The approval task needs to be performed in a given time. Otherwise the activity expires, the approval status is set to true, and processing completes.

business scenario