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. |