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
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.
API functions supported
The Business Process Archive Manager supports a subset of the API functions offered by Business Process Choreographer. They use the same packages, so binary compatibility is ensured. For more information about the Business Process Archive Manager API refer to the JavaDoc for the packages com.ibm.bpe.api and com.ibm.task.api.
Whereas Business Process Choreographer provides several API renderings (EJB, REST, JAX-WS, JAX-RPC, and JMS), the Business Process Archive Manager only offers an EJB version of the APIs.
The following table summarizes which kinds of API operations can be performed on objects in an archive database.
Comparison of API operations supported by Business Process Choreographer and Business Process Archive Manager API operations on Business Process Choreographer Business Process Archive Manager Templates Read, start instance Read BPEL processes Create, read, update, delete Read, delete Human tasks Create, read, update, delete Read, delete Query tables Create, read, update, delete Create, read, update, delete Stored queries Create, read, update, delete Create, read, update, delete Work items Create, read, update, delete None Work baskets Create, read, update, delete Read, delete Business categories Create, read, update, delete Read, delete
Making a custom client work with archived data
If you want to implement a client that can work with completed instances that have been moved to an archive database, consider the following:
- A new method, OperationMode getOperationMode() is provided, which indicates whether the client is connected to a Business Process Choreographer configuration or a Business Process Archive Manager configuration. You can use it to write custom clients that can connect to and operate appropriately on runtime configurations and archive configurations.
- Although the Business Process Archive Explorer can only connect to a single Business Process Archive Manager configuration, it is possible to develop a client application that can connect to, and allow a user to work with multiple Business Process Choreographer and Business Process Archive Manager configurations.
- Plan which users will use the client to access an archive database. By default, authorization is based on Java EE roles, which restricts access to administrators and monitors. Because work items are not stored in the archive database, it is not possible, for example, to give normal users access to just the instances that they started or worked on. If you want normal users to be able to use a custom client to access an archive database, you cannot use the queryAll() API, which requires an administrator or monitor role. If you can accept having no authorization checking, you could use the query table API calls queryEntities() and queryEntityCount() together with either a custom or predefined query table that takes into account that no work item information is available.
- Extending an existing custom client
- If you want to extend an existing client to be able to work with process instances and human tasks that have been moved to the Process Archive Database, you are more likely to want to add a switching mechanism to your client that can redirect existing Business Process Choreographer API calls to the Process Archive Manager API.
For example, this could be retrofitted to an existing client user interface as a new "Search the archive" option.
- Writing a new custom client
- If you are writing a new custom client, you should consider the possibility that completed process instances and human tasks might have been moved to the Process Archive Database.
For example, you could include a layer of transparency that hides from the end-user whether a process instance or human task is stored in the runtime database or the archive database.
Comparison of the programming interfaces for interacting with BPEL processes and human tasks
Related concepts:
Query tables in Business Process Choreographer
Related information: