IBM BPM, V8.0.1, All platforms > Get started with IBM BPM > Key concepts > Versioning > BPEL processes

Invoking different versions of a BPEL process

Client applications can invoke a specific version of a process (early binding), or dynamically invoke the version of a process that is currently valid (late binding).

A timestamp is used to determine the currently valid version of a BPEL process on the process server. If the BPEL process is deployed from Process Center as part of a process application, the timestamp is the deployment date of the process. For a BPEL process that is deployed by exporting an EAR file from Integration Designer, the timestamp corresponds to the valid-from date that is specified for the process in the BPEL process editor, or it is set when the process is deployed.


Early binding

With early binding, the decision on which version of a process is invoked is made either during modeling, or when the process is deployed. The client always invokes the statically-bound version of a process, even if a newer version of the process exists.

An example of early-binding is an SCA wire. If you wire a stand-alone reference to a BPEL process component, every invocation of the process using this reference is targeted to the specific version of the process component.


Late binding

Late binding has the advantage that clients always use the currently valid version of a process without you having to change the client application. With late binding, the decision on which version of a process is invoked happens dynamically when the client invokes the process. In this case, the version of the process that is currently valid is used. To apply late binding to subprocesses, in Integration Designer in the parent process specify the name of the subprocess template. This template is used at the reference partner to choose the currently valid version of the subprocess.

If a process contains non-initiating receive or pick (receive choice) activities, or event handlers, use late binding instead of early binding when interacting with the corresponding interfaces. For these activities, the process instance that consumes the request is identified by the correlation value that is passed with the request message. Late binding ensures that the request is sent to the correct version of the process instance. In addition, when a process instance with these activities is migrated, the endpoints of these interfaces are changed. Late binding ensures that the client application continues to work seamlessly after process migration.

Attention: If you use early binding instead of late binding with this type of process and the current process instance that is identified by the correlation set value belongs to a process version that is different from the statically bound process version, the behavior of the process instance is undefined.

A BPEL process version is represented by a process template. For late binding, process templates can be categorized as one of the following types:

If the BPEL process is deployed from Process Center as part of a process application, the following additional considerations apply to late binding.

Versioning of BPEL processes


Related reference:
Migrating running process instances to a new version of the BPEL process