iPlanet Evaluation Results
Evaluation results for Sun One iPlanet Integration Server version 3.0 against the workflow control-flow patterns
Pattern |
Rating |
Motivation |
Sequence | + | Directly supported by the use of activity routers. |
Parallel Split | + | Supported by multiple outgoing routers from an activity |
Synchronization | + | Supported by specifying a trigger condition for an activity with multiple incoming routers that only fires when all routers are activated. |
Exclusive Choice | + | Supported by using multiple outgoing routers from an activity with disjoint router enabling conditions. |
+ | Supported by specifying a trigger condition for an activity with multiple incoming routers that fires when any incoming router is activated. | |
Multi-Choice | + | Supported by multiple outgoing routers from an activity, each with specific (and possibly overlapping) enabling conditions. |
Structured Synchronizing Merge | - | Not supported. Process models are not necessarily structured. |
Multi-Merge | + | Supported by specifying a trigger condition for an activity with multiple incoming routers that fires when any incoming routers is activated. |
Structured Discriminator | + | Supported through the use of a customised trigger condition for an activity that only fires when the first incoming router is activated. |
Arbitrary Cycles | + | Arbitrary loop structures are able to be represented. |
Implicit Termination | - | There is a designated last activity which causes process termination. |
Multiple Instances without Synchronization | + | Supported via asynchronous subprocess activities. |
Multiple Instances with a Priori Design-Time Knowledge | - | Not supported. No means of designating that multiple instances of an activity are required. |
Multiple Instances with a Priori Run-Time Knowledge | - | Not supported. No means of designating that multiple instances of an activity are required. |
Multiple Instances without a Priori Run-Time Knowledge | - | Not supported. No means of designating that multiple instances of an activity are required. |
Deferred Choice | - | Not supported. No concept of state. |
Interleaved Parallel Routing | - | 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. |
Milestone | - | Not supported. No concept of state. |
Cancel Activity | + | Supported via the AbortActivity method |
Cancel Case | - | Not supported. There is no means of terminating a process instance. |
Structured Loop | + | Supported thorugh the use of process variables in conjunction with routers. |
Recursion | + | Supported via synchronous subprocess activities. |
Transient Trigger | - | No trigger support. |
- | No trigger support. | |
Cancel Region | - | No means of cancelling a region of a process model. |
Cancel Multiple Instance Activity | - | No support for multiple instance activities. |
Complete Multiple Instance Activity | - | No support for multiple instance activities. |
Blocking Discriminator | - | Not supported. No ability to block activity triggerings. |
Cancelling Discriminator | - | Not supported. No ability to cancel portions of a process model. |
Structured N-out-of-M Join | + | Supported through the use of a customised trigger condition for an activity that only fires when the Nth incoming router is activated. |
Blocking N-out-of-M Join | - | Not supported. No ability to block activity triggerings. |
Cancelling N-out-of-M Join | - | Not supported. No ability to cancel portions of a process model. |
Generalised AND-Join | - | Not supported. No ability to buffer activity triggers. |
Static Partial Join for Multiple Instances | - | No support for multiple instance activities. |
Cancelling Partial Join for Multiple Instances | - | No support for multiple instance activities. |
Dynamic Partial Join for Multiple Instances | - | No support for multiple instance activities. |
Acyclic Synchronizing Merge | - | No means of providing information to an OR-join to enable local determination of when it should fire. |
General Synchronizing Merge | - | No ability to assess when an OR-join should fire through analysis of current/future state. |
Critical Section | - | Not supported. Although custom router conditions could be specified that access a mutex variable to determine when an activity can proceed, there is no means of managing concurrent access to the variable. |
Interleaved Routing | - | 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 ability to coalesce threads of control from independent sub-process activities. |
Thread Split | - | No ability to coalesce threads of control from independent sub-process activities. |
Explicit Termination | + | Directly supported. There is a designated last activity which causes process termination. |
Evaluation results for Sun One iPlanet Integration Server version 3.1 against the workflow resource patterns
Pattern |
Rating |
Motivation |
Direct Allocation | + | Directly supported |
Role-Based Allocation | + | Directly supported |
Deferred Allocation | - | Not supported |
Authorisation | - | Not supported |
+ | Directly supported through linked activities | |
Case Handling | - | Not supported |
Retain Familiar | + | Directly supported through linked tasks with common resources |
Capability Based Allocation | + | Directly supported through customised distribution algorithms |
History Based Allocation | + | Achievable through extended user profiles and customised distribution algorithms |
Organisational Allocation | - | Not supported |
Automatic Execution | + | Directly supported |
Distribution by Offer - Single Resource | + | Directly supported for offered work items. |
Distribution by Offer - Multiple Resources | + | Directly supported for offered and queued work items |
Distribution by Allocation - Single Resource | + | Directly supported where a work item is allocated to a single resource in "heads down" mode |
Random Allocation | +/- | Indirectly achievable via customised (external) distribution algorithm |
Round Robin Allocation | +/- | Indirectly achievable via customised (external) distribution algorithm |
Shortest Queue | +/- | Indirectly achievable via customised (external) distribution algorithm |
Early Distribution | - | Not supported |
Distribution on Enablement | + | Standard means of work item distribution |
Late Distribution | - | Not supported |
Resource-Initiated Allocation | - | Not supported |
Resource-Initated Execution - Allocated Work Item | - | Not supported |
Resource-Initiated Execution - Offered Work Item | + | Standard approach to initiating work items |
+ | Work items are ordered by priority by default | |
Resource-Determined Work Queue Content | - | Not supported |
Selection Autonomy | + | Directly supported for offered work items |
Delegation | - | Not supported |
Escalation | +/- | Indirectly supported via timers but the cleanup action for the escalated work item must be specified programmatically |
Deallocation | + | Achieved by changing the status of a work item to READY |
Stateful Reallocation | - | Not supported |
Stateless Reallocation | - | Not supported |
Suspension/Resumption | - | Not supported |
Skip | - | Achieved by changing the status of a work item to COMPLETED where it is in the PENDING state |
Redo | - | Not supported |
Pre-Do | - | Not supported |
Commencement on Creation | - | Not supported |
Commencement on Allocation | - | Not supported |
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 Sun One iPlanet Integration Server version 3.1 against the workflow exception handling patterns
Pattern |
Explanation |
Work Item Failure & Work Item Deadline |
|
OFF-CWC-NIL |
Outgoing router constructs from an activity provide a range of options for dealing with failures and deadline expiration including signalling to subsequent activities that the preceding activity completed successfully or failed, initiating alternative compensation tasks and allowing other activities in the case to continue of forcing them to terminate. |