Processes

In MDW, a process is used to model a business process, which consists of a number of (automated or manual) work items or steps, called activities and they are performed in a designated sequence. A process is a collection of activities and transitions between those activities and is mathematically and graphically represented as a (typically acyclic) directed graph.

The process flows through one or more out-bound transitions to start other activities that depend on the completion of the first. A process can invoke another process through a subprocess activity.

One of the benefits of a defined business process is that it can be applied repeatedly to many data instances. We use the terms process definition vs. process instance to differentiate between the template that describes the process and a particular execution of that process. As an example:

Service Processes

Typically, a process is started asynchronously (fire-and-forget), which means the originator does not wait for the completion of the process. However, it is often desired for applications to create a workflow process to provide services, which return a synchronous response to the requester in real-time. To allow a synchronous process, MDW uses the term Service Process.

The service process is executed in a single thread without using the internal JMS messages. This is to allow the response be captured and sent back to the invoker. A service process is defined and handled pretty much the same way as a regular process, with some limitations incurred by the requirement that they are executed in a single thread.

In MDW, the service process provides the following:

Service process has two exception rules:

Performance Level

The following table describes each of the performance level used in MDW:

Performance Level Description
0 To be determined by a property or process attribute, which will set the level to one of the following (1, 3, 5, 9).
1 All process, activity, transition and variable instances as well as documents are persisted in a database. No in-memory cache is used.
3 All process, activity, transition and variable instances as well as documents are persisted in a database, but variable instances and documents are cached for each engine processing session to speed up the read access.
5 This is for service processes only. All processes, activities and transition instances are persisted in a database; variable instances and documents are created in memory cache only and it's not persisted in a database.
9 All process, activity, transition and variable instances as well as documents are stored in memory cache only. No database persistence is used. For service processes, one memory cache is used for each top level invocation to a service process; for regular processes, a shared memory cache is used for all executions at this performance level.

The performance level of a process instance is typically determined by the performance level attribute configured for its process definition, and when the attribute is not configured (is blank, 0, or null), the default performance levels are used. The following two properties are used to specify default performance levels:

Request Path Registration

A REST request path can be registered to automatically invoke a service process and bind request and response variables. Use the Request configurator tab in MDW Studio or MDWHub to do this.