Asynchronous BPEL example
Our first BPEL business process example was synchronous because this was the easiest case. However, in the real world, we will mostly use asynchronous processes. Most business processes are long running. It makes no sense for a client to wait (and be blocked) for the entire duration of the process. A much better alternative is to model the BPEL process as asynchronous. This means that the client invokes the process, and when the process completes, it performs a callback to the client. This has a few consequences:
For the BPEL process to be able to perform a callback to the client, the client must be a service and implement a certain port type (usually defined by the BPEL process WSDL)
The partner link type for the client will have to specify two roles
The BPEL process will not
<reply>
to the client. Rather it will<invoke>
the callback
Let us now focus on our business process and modify it for asynchronous invocation, presented in the next sequence diagram...