Workflows

Objective

If models are to be put under a common roof, from requirements to design, some bridge has to be built between the description of business processes and UML activity and state models. Yet, if there is a broad consensus on basic artifacts, the focus is usually put on notations, which entails too many features hiding functional archetypes. The objective is to look beyond notation in order to identify workflow patterns depending on their impact on functional architecture.

Workflow Pattern (M.C. Escher)

Activities vs Processes

The objective here is to consolidate a description of patterns based upon architecture dependencies, namely functional scope and identification.  And that should be done not only between activities and processes, but also between objects and behaviors.

Regarding behaviors, two kinds of dependencies must be considered: flow dependencies are logical and set by the targeted objects and the nature of operations; execution dependencies combine flow dependencies and operational constraints.

Symbolic description of activities can be stereotyped as:

  • Rules regarding the processing of actual objects.
  • Rules regarding the processing of symbolic representations.
  • Rules regarding the processing of interactions.
  • Rules regarding the processing of events.
  • Rules regarding symbolic computations.
  • Rules regarding the control of actual processes.

Stereotyped activities applied to actual and symbolic objects, interactions, embedded computation, symbolic processing, control of actual processing.

The same classification is applied to actual states depending on:

  • Processing of actual objects.
  • Processing of symbolic representations.
  • Agent’s expectations (“state of mind”).
  • Events processing.
  • Execution of symbolic computation.
  • Control of actual processes.

Stereotyped states for actual and symbolic objects, dialog, embedded computation, execution of symbolic computation, control of actual processing.

Control Level

From an architecture point of view, the first concern is to identify the level under considerations: local control is supported by structural links between whole and parts, global control is supported by functional connectors between independent activities.  Depending on control level, the semantics of strong coupling will be different: for local activities it means instant (or real-time) synchronization, for independently run activities “real-time” only means that targeted objects must be protected from outside interference until the completion of the associated activity.

Since the objective of representation patterns is to extract architectural constraints from business requirements, responsibilities on functional domains and process controls must be established on purely organizational criteria:

  • Who’s is responsible for defining business objects and setting business rules.
  • How is the execution of business processes to be controlled, centrally or through collaboration.

For instance, putting invoice preparation and notification within the same structure means that all resources are managed by the same organizational unit and that activities can be synchronized under a single clock. But if notification is to be outsourced, some explicit representation must be included for messages and elapsed time.

Process control: Local (structure) vs functional (connectors)

Hence, the two solutions are explicitly represented:

  • Structures are used when all activities are meant to be executed under a centralized control, which also implies a single location and a time capsule excluding interfering events.
  • Functional connectors are used between activities are run independently. In that case there is no time capsule to isolate from external events and control must be explicitly modelled along execution paths.

Sequence

A logical sequence is used when the output of an activity is a necessary input of another one. It is adorned by an identifying qualifier when some synchronization is required. As noted above, sequencing can be used between local activities or independent ones.

Structural and functional sequences: agreement must be followed by deposit, repair can begin at will.

Parallel Split

A parallel split means that the execution of several activities must follow a single event, usually the end of an initial activity whose output is used as input to the triggered ones. Parallel splits are said to be synchronized if the subsequent activities are instantly and simultaneously executed.

Structural and functional split: notification and invoicing are not synchronized, invoice and payments are.

Multiplicity can be used if some paths are optional or can be repeated.

Synchronization

Workflow patterns are based upon stereotypes of activities synchronization, symbolic and/or actual levels:

  • Symbolic synchronization means joining different activities which are processing the same object. It is described with symbolic activities.
  • Actual synchronization means matching the timing of different activities. It is described with actual activities.

Symbolic synchronization on customer request, actual synchronization on activity completion.

Timing

Synchronization uses events to initiate timing and time clocks to manage it. Descriptions of symbolic and actual timing use logical or physical clocks, respectively.

Merge and Join

Whereas split and merge are apparently symmetric, they nonetheless differ in the way actual activities are to be controlled:

  • Splits are primarily activity-driven patterns since control can be supported by the source activity.
  • Merges are primarily event-driven patterns since execution status or outcome from different or alternative sources must be considered in order to control the targeted activity.

Hence, even if events can be introduced in order to implement splits through event-driven mechanisms, or a controlling  activity may be created to control merges, at the root, splits and merges clearly entails different constraints on control architecture, and therefore calls for different patterns. For instance, assembling an equipage following a customer request can be driven by:

  • Activity:  meters along a canal can be read occasionally duly timestamped for the readings being consolidated later.
  • Event: readings are triggered by a scheduler and consolidated before further action to be taken if required.

Activity vs event driven control policy

As illustrated by the example, event-driven activities don’t necessarily require actual states modelling. Symbolic activities and flows (data and control) will suffice if control doesn’t use execution states.

Alternative (exclusive choice)

Alternatives are first introduced through partitions, and this pattern is used when one and only one path is to be executed (exclusive partition). Structural alternatives can be controlled locally, functional ones entail collaborations; depending on execution constraints, control policy can be activity-driven or must be event-driven.

Mechanics: centralized & activity-driven, decentralized & event-driven.

Multiplicity

Structural and functional connectors between activities can be associated with tokens used to control activities. Since they refer to the number of runs that may or must occur, they are the equivalent of the multiplicity associated with object connectors, which indicate how many instances may or must be supported by a relationship.

Multiplicity: orders are prepared individually and delivered by batches of ten.

Multiple Choices & Merges

Multiplicity can be used to describe overlapping options (multiple choices) .

Merges can be needed to regroup what has been set apart by a split or a branch, or be applied to previously unrelated activities.

External references

http://www.workflowpatterns.com/patterns/control/index.php
http://www.bpmn.org/Documents/​Notations_and_​Workflow_ ​Patterns.pdf

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


Follow

Get every new post delivered to your Inbox.

Join 301 other followers

%d bloggers like this: