Websphere Evaluation Results
Evaluation results for Websphere MQ Workflow version 3.4 against the workflow control-flow patterns
Pattern |
Rating |
Motivation |
Sequence | + | Directly supported by arcs connecting process, program and block activities. |
Parallel Split | + | Supported through multiple outgoing arcs from an activity. |
Synchronization | + | Supported by specifying start conditions on an activity. |
Exclusive Choice | + | Supported through the use of exclusive conditions on transitions. |
+ | Supported by specifying start conditions on an activity. | |
Multi-Choice | + | Supported through the use of (non-exclusive) conditions on transitions. |
Structured Synchronizing Merge | + | Supported by specifying start conditions on an activity. |
Multi-Merge | - | Not supported. An activity can only be triggered once, either when one or all of the incoming connectors evaluate to true. |
Structured Discriminator | - | Not supported. The evaluation of start conditions for an activity only occurs when all preceding activities have completed. |
Arbitrary Cycles | - | Not supported. Process models are block-structured. |
Implicit Termination | + | Directly supported. |
Multiple Instances without Synchronization | - | Although it is possible to to replicate an activity by including it in a block activity with an exit condition that is satisfied when all instances have completed, it is not possible for these instances to run concurrently. |
Multiple Instances with a Priori Design-Time Knowledge | - | Not supported. No construct for of designating multiple instances of an activity in the design-time model. |
Multiple Instances with a Priori Run-Time Knowledge | - | Not supported. No means of facilitating multiple instances of an activity at runtime. |
Multiple Instances without a Priori Run-Time Knowledge | - | Not supported. No means of facilitating multiple instances of an activity at runtime. |
Deferred Choice | - | Not supported. There is no means of selecting that one out of a set of possible activities by executed (and the other activities be withdrawn). |
Interleaved Parallel Routing | - | Not supported. There is no way to interleave activities without specifying an order. |
Milestone | - | Not supported. There is no inherent notion of state. |
Cancel Activity | - | Not supported. There is no means of denoting activity cancellation with a process model. |
Cancel Case | - | Not supported. There is no means of cancelling an entire process instance. |
Structured Loop | + | Post-tested loops are supported by the block construct. |
Recursion | + | Directly supported. Recursive definition of process and block activities is possible. |
Transient Trigger | - | Not supported. There is no means of triggering an activity from outside the process instance. |
- | Not supported. There is no means of triggering an activity from outside the process instance. | |
Cancel Region | - | Not supported. A set of activities cannot be cancelled. |
Cancel Multiple Instance Activity | - | Not supported. There is no direct support for multiple instance activities. |
Complete Multiple Instance Activity | - | Not supported. There is no direct support for multiple instance activities. |
Blocking Discriminator | - | Not supported. The evaluation of start conditions for an activity only occurs when all preceding activities have completed. |
Cancelling Discriminator | - | Not supported. There is no support for the discriminator pattern or any ability to cancel a set of (preceding) activities. |
Structured N-out-of-M Join | - | Not supported. There is no direct support for multiple instance activities. |
Blocking N-out-of-M Join | - | Not supported. There is no direct support for multiple instance activities. |
Cancelling N-out-of-M Join | - | Not supported. There is no direct support for multiple instance activities. |
Generalised AND-Join | - | Not supported. Process models are inherently block structured and an activity cannot receive multiple threads of control from the same incoming branch. |
Static Partial Join for Multiple Instances | - | Not supported. There is no direct support for multiple instance activities. |
Cancelling Partial Join for Multiple Instances | - | Not supported. There is no direct support for multiple instance activities. |
Dynamic Partial Join for Multiple Instances | - | Not supported. There is no direct support for multiple instance activities. |
Acyclic Synchronizing Merge | + | Supported through the use of dead path elimination where "true" and "false" tokens are passed down branches that are and are not enabled respectively. This allow the OR-join to determine when it should fire. |
General Synchronizing Merge | - | Not supported. No ability to determine when an OR-join should fire based on an overall assessment of the state of a process instance. |
Critical Section | - | Not supported. Subsequent activities are scheduled immediately thus removing any potential for restricting concurrent execution of activities. |
Interleaved Routing | - | Not supported. There is no way to interleave activities without actually enumerating all possible execution sequences within the process model and selecting one of them at runtime. |
Thread Merge | - | No support. Process models are block structured and safe. |
Thread Split | - | No support. Process models are block structured and safe. |
Explicit Termination | - | Not supported. Process instances terminate when there is no remaining work. |
Evaluation results for Websphere MQ Workflow version 3.4 against the workflow data patterns
Pattern |
Rating |
Motivation |
Task Data | +/- | Indirectly supported by 3GL program implementations |
Block Data | + | Supported via global data containers for a process |
Scope Data | - | Not supported |
Multiple Instance Data | + | Support for distinct data elements in multiply triggered tasks and tasks with shared sub-workflow decompositions |
Case Data | + | Supported through the default data structure |
Folder Data | - | Not supported |
Workflow Data | + | Supported through persistent lists |
Environment Data | +/- | Indirectly accessible via program implementations |
Task to Task | + | Facilitated via data containers passed between tasks on data channels |
Block Task to SubWorkflow Decomposition | + | Facilitated via data containers and source/sink nodes |
SubWorkflow Decomposition to Block Task | + | Facilitated via data containers and source/sink nodes |
To Multiple Instance Task | - | No support for multiple instances. |
From Multiple Instance Task | - | No support for multiple instances. |
Case to Case | +/- | Indirectly achievable by including case communication facilities in program implementations |
Task to Environment - Push-Oriented | +/- | Indirectly achievable by including case communication facilities in program implementations |
Environment to Task - Pull-Oriented | +/- | Indirectly achievable by including case communication facilities in program implementations |
Environment to Task - Push-Oriented | +/- | Indirectly achievable by including case communication facilities in program implementations |
Task to Environment - Pull-Oriented | +/- | Indirectly achievable by including case communication facilities in program implementations |
Case to Environment - Push-Oriented | - | Not supported |
Environment to Case - Pull-Oriented | - | Not supported |
Environment to Case - Push-Oriented | +/- | Parameter values can be specified at the initiation of each case |
Case to Environment - Pull-Oriented | - | Not supported |
+/- | Push data access model provides limited facilities for communicating runtime workflow data to external applications | |
Environment to Workflow - Pull-Oriented | - | Not supported |
Environment to Workflow - Push-Oriented | +/- | Indirect support for manipulation persistent lists via API calls |
Workflow to Environment - Pull-Oriented | + | Directly supported via the Runtime API |
Data Transfer by Value - Incoming | + | All data passing via containers is by value |
Data Transfer by Value - Outgoing | + | All data passing via containers is by value |
Data Transfer - Copy In/Copy Out | - | Not supported |
Data Transfer by Reference - Unlocked | - | Not supported |
Data Transfer by Reference - With Lock | - | Not supported |
Data Transformation - Input | - | Not supported |
Data Transformation - Output | - | Not supported |
Task Precondition - Data Existence | - | Not supported |
Task Precondition - Data Value | - | Not supported |
Task Postcondition - Data Existence | + | Directly supported via exit conditions and the IS NULL function which allow parameter value assignment to be tested. Where exit condition is not met, task automatically repeats |
Task Postconditon - Data Value | + | Directly supported by specifying exit condition based on the required parameter value. Where exit condition is not met, task automatically repeats |
Event-Based Task Trigger | +/- | Activity triggering is supported through various interfaces. Denotation of events needs to be explicitly included in activity implementations using facilities such as the suspend() function |
Data-Based Task Trigger | - | Not supported |
Data-Based Routing | + | Directly supported via transition conditions and start conditions |
Evaluation results for Websphere MQ Workflow version 3.4 against the workflow resource patterns
Pattern |
Rating |
Motivation |
Direct Allocation | + | Directly supported |
Role-Based Allocation | + | Directly supported |
Deferred Allocation | + | Directly supported |
Authorisation | - | Not supported |
+ | Directly supported via task linking between activities in the process model that cannot have the same resource allocation at runtime within a case | |
Case Handling | - | Not supported |
Retain Familiar | + | Common resource allocation can be specified for specific tasks in the process model requiring the same resource allocation at runtime within a case |
Capability Based Allocation | - | Not supported |
History Based Allocation | - | Not supported |
Organisational Allocation | + | Directly supported |
Automatic Execution | - | Not supported |
Distribution by Offer - Single Resource | - | Not supported |
Distribution by Offer - Multiple Resources | + | Work queues combine work item items specifically offered to this resource and those offered to multiple resources |
Distribution by Allocation - Single Resource | + | Directly supported for work items allocated to a single resource |
Random Allocation | - | Not supported |
Round Robin Allocation | - | Not supported |
Shortest Queue | - | Not supported |
Early Distribution | - | Not supported |
Distribution on Enablement | + | Standard mechanism for work item distribution |
Late Distribution | - | Not supported |
Resource-Initiated Allocation | - | Not supported |
Resource-Initated Execution - Allocated Work Item | + | Standard means for a resource to initiate a work item is to select one from those allocated to it |
Resource-Initiated Execution - Offered Work Item | + | Supported for work items distributed via shared work queues |
- | Not supported | |
Resource-Determined Work Queue Content | + | Work queues can be sorted or filtered on any work item attribute at the discretion of individual resources |
Selection Autonomy | + | Resources can select the next item for execution from those on their work queue |
Delegation | + | Work items can be manually redirected by resources |
Escalation | + | Directly supported via reminders |
Deallocation | - | Not supported |
Stateful Reallocation | + | Supported for pending and suspended items |
Stateless Reallocation | - | Not supported |
Suspension/Resumption | +/- | Indirectly supported via case suspension |
Skip | + | Directly supported in the worklist handler |
Redo | - | Not supported |
Pre-Do | - | Not supported |
Commencement on Creation | - | Not supported |
Commencement on Allocation | + | Resources can configure work queues to initiate work items on arrival |
Piled Execution | - | Not supported |
Chained Execution | - | Not supported |
Configurable Unallocated Work Item Visibility | - | Not supported |
Configurable Allocated Work Item Visibility | - | Not supported |
Simultaneous Execution | + | Resources can execute multiple work items simultaneously |
Additional Resources | - | Not supported |
Evaluation results for Websphere MQ Workflow version 3.4 against the workflow exception handling patterns
Pattern |
Explanation |
Work Item Deadline |
|
OCO-CWC-NIL | Notification mechanisms are provided for overdue work items but the default action is only to advise nominated resources of deadline expires. No intervention occurs. |
ACA-CWC-NIL | Notification mechanisms are provided for overdue work items but the default action is only to advise nominated resources of deadline expires. No intervention occurs. |
SCE-CWC-NIL | Notification mechanisms are provided for overdue work items but the default action is only to advise nominated resources of deadline expires. No intervention occurs. |