Figure 21.2 WfMS use case
The process definition is covered by a proposal (WfMC 1999). This docu-
ment proposes a reference model and a grammar for a Workflow Process
Definition Language (WPDL). The language is very complex, since it covers
all the possible features of a workflow process, thus it is not easy to parse.
The standard Joint Workflow Management Facility - JFlow (OMG 1998)
WfMC. JFlow defines the interfaces required at run time for:
■ enactment of processes; and
■ control of processes.
The standard confronts the issues posed by WfMS and defines a set of
CORBA interfaces using the standard IDL language. Such interfaces can be
easily converted into classes of any object-oriented programming language
(e.g. Java) either manually or with tools (e.g. idlj).
The Java version of the standard interfaces is presented together with
their relationships in Figure 21.3.
There are two main enactment interfaces: WfProcess and WfActivity ; they
represent entities that must perform the common operations defined in
the WfExecutionObject interface: state handling (see Figure 21.1), context
management and history recording.
A process is created through a WfProcessMgr that encapsulates a process
definition. When a process is created it is linked to an object implementing
the WfRequester interface, which will receive notifications of the events
occurring during the enactment of the process.
A process is made up of steps, i.e. activities, which can either be assigned
to a resource that will perform it, or act as a requester and start a sub-
process. The resources are required to implement the WfResource interface.
Each resource performs the set of assigned activities; the assignments are
represented by the interface WfAssignment .
The evolution of the process and its activities is recorded during the
enactment and forms the history of the excution objects. The information
contained in these records can be accessed through the WfEventAudit .