IBM BPM, V8.0.1, All platforms > Programming IBM BPM > Developing client applications for BPEL processes and tasks
Comparison of the programming interfaces for interacting with BPEL processes and human tasks
Enterprise JavaBeans (EJB), web service, Java Message Service (JMS), and Representational State Transfer Services (REST) generic programming interfaces are available for building client applications that interact with BPEL processes and human tasks. Each of these interfaces has different characteristics.
The programming interface that you choose depends on several factors, including the functionality that your client application must provide, whether you have an existing end-user client infrastructure, or whether you want to handle human workflows. To help you decide which interface to use, the following table compares the characteristics of the EJB, web service, JMS, and REST programming interfaces.
Attention: The Business Process Choreographer JMS API is deprecated. To develop JMS-based client applications, use the Business Process Choreographer web services API with the SOAP/JMS transport protocol.
EJB interface Web service interface JMS message interface
(Deprecated)REST interface Functionality This interface is available for both BPEL processes and human tasks. Use this interface to build clients that work generically with processes and tasks. This interface is available for both BPEL processes and human tasks. Use this interface to build clients for a known set of processes and tasks. For the JMS transport layer, this interface is available for BPEL processes only.
This interface is available for BPEL processes only. This interface is available for both BPEL processes and human tasks. Use this interface to build web 2.0-style clients for a known set of processes and tasks. Data handling Supports remote artifact loading of schemas for accessing business object metadata. If the EJB client application is running in the same cell as the Process Server that it connects to, the schemas that are needed for the business objects of the processes and tasks do not have to be available on the client, they can be loaded from the server using the remote artifact loader (RAL).
RAL can also be used cross-cell if the client application runs in a full Process Server server installation. However, RAL cannot be used in a cross-cell setup where the client application runs in a Process Server client installation.
Schema artifacts for input data, output data, and variables, must be available in an appropriate format on the client. Schema artifacts for input data, output data, and variables, must be available in an appropriate format on the client. Schema artifacts for input data, output data, and variables, must be available in an appropriate format on the client. Client environment A Process Server server installation or a Process Server client installation. Any runtime environment that supports web service calls, including Microsoft .NET environments. Any runtime environment that supports JMS clients, including SCA modules that use SCA JMS imports. Any runtime environment that supports REST clients. Security Java™ Platform, Enterprise Edition (Java EE) security. Web services security. Java Platform, Enterprise Edition (Java EE) security for the Process Server installation. You can also secure the queues where the JMS client application puts the API messages, for example, using WebSphere MQ security mechanisms.
Client application that call the REST methods must use an appropriate HTTP authentication mechanism. An operation can be exposed by multiple protocols. Observe the following general considerations if you use the same operation in different protocols.
- In web service and REST interfaces, all object identifiers, such as PIID, AIID, and TKIID are represented by a string type. Only the EJB API interface expects a type-safe object ID.
- Operation overloading is only used for EJB methods and not for WSDL operations. In some cases, multiple WSDL operations exist, in other cases, only one WSDL operation exists that allows all of the parameter variations either by omission ( minOccurs="0"), or null values ( nillable="true").
- In some EJB methods, XML namespaces and local names are passed as separate parameters. Most WSDL operations use the QName XML schema type to pass these parameters.
- The EJB interface returns a set of API objects, which expose getter and setter methods for the contained fields. web service and REST interfaces return complex-typed (XML or JSON) documents to the client.
- Some Human Task Manager services operating on human tasks are also available as Business Flow Manager services operating on activities that call a human task.
- Business Flow Manager API comparison
The Busness Flow Manager API provides EJB, Web service, JMS, and REST generic programming interfaces. Each of these interface supports different API operations.- Human Task Manager API comparison
The Human Task Manager API provides EJB, Web service, and REST generic programming interfaces. Each of these interface supports different API operations.- Business Process Archive Manager EJB API support
Only a subset of the Business Process Choreographer EJB API operations can be used on a Business Process Archive Manager configuration. Custom clients that already access the EJB API of Business Process Choreographer can be redirected to a Business Archive Manager configuration to read or delete BPEL process and task data that has been moved to the archive.
Developing client applications for BPEL processes and tasks
Related tasks:
Developing EJB client applications
Developing Web service API client applications
Developing JMS client applications