Solution for the lack of Fork/Join problem in WBI Server Express
Original Publication Date: 2005-Dec-05
Included in the Prior Art Database: 2005-Dec-05
The solution allows the WebSphere Business Integration (WBI) Server Express (SE) (a.k.a InterChange Server) to support the Fork/Join workflow pattern by providing an architecture, a software pattern, and an implementation for allowing the concurrent execution of workflow activities.
Solution for the lack of Fork /Join problem in WBI Server Express
The solution presented herein allows the WebSphere* Business Integration(WBI) Server Express (SE) (a.k.a InterChange Server) to support the Fork/Join workflow pattern. The Fork/Join pattern allows parallel execution of workflow activities. WBI SE uses Collaboration template to describe work flows. WBI SE executes Collaboration's workflow sequentially and has no native support for parallel execution. This solution solves this problem by providing an architecture, a software pattern, and an implementation for allowing the concurrent execution of workflow activities. There is no known solution for this problem on the WBI SE platform. Other Business Integration platforms (Say Microsoft BizTalk**) have native support for the Fork/Join pattern WBI Collaboration has no native suport for the Fork/Join pattern. However, by splitting the workflow into multiple collaborations and adapters and by utilizing the parallel execution environment provided by the WBI Server Express for triggering events, the Fork/Join pattern can be implemented.
The following figure summarizes the generic Fork/Join solution based on existing WBI components.
There is currently no known pattern, generic architecture, and implementation that support the parallel execution of workflow activities within the WBI SE.
The following section summarizes the basic components of this solution:
Input business object
The business object that triggers the Fork process and contains the input data for the forked processes.
Process Collaboration 1 Process Collaboration N
Join Collaboration (AND/OR)
Result business object
The business object that is the result of the processing done by the forked processes. We assume in this document that the Result business object is from the same type as the Input business object.
Wrapper business object
The business object that wraps the Input business object and the Result business objects. It contains information that is needed for the execution of the Fork process.
The id attribute is the unique identifier of the fork process.
The process_id attribute is the unique identifier of the forked process.
The input attribute is the Input business object.
The result attribute is an array of size NUM_OF_PROCESSES of business objects from the same type as the Result business object. This attribute enables to save the results of each forked process.
Collaboration Templates ForkCollaboration
The collaboration that handles the fork process.
The following properties are defined for the collaboration template: NUM_OF_PROCESSES - The number of forked processes.
Two ports are defined for the collaboration template: The From port: the port that is connected to the originator...