Figure 21.11 Engine implementation main classes
represented by the WfProcessImpl class that implements the WfProcess inter-
face. The activities of the process are described by the WfActivityImpl , which
implements the WfActivity and is driven by a WfActivityDefinition .
The users of the WfMS interact with the system either by starting a pro-
cess or by performing an activity. The classes involved in starting a process
are those presented above; the main classes involved in the execution of the
activities are presented in Figure 21.12.
The execution of activities requires two main operations: the assignment
of an activity to a user and the performance of the activity by the user.
The users of the WfMS are represented by the Actor class and they are
contained by the class Organization . The actors implement the interface
WfRequester in order to start a process, and they are related to the process
instances that are the performers of the required processes. In addition the
actors implement the WfResource interface so they can become the assignee
of activities, therefore they have a work list made up of work items that
consist of assignments to activities.
The navigation of the data structure is based on the iterator pattern as
shown in the Figure 21.13. The JFlow standard defines a BaseIterator in the
WfBase package that is the base of the specific iterators (e.g. WfProcess Iterator ,
WfActivityIterator ) defined in the WorkflowModel package. The WfEngine
package provides the implementation of all the iterators; the structure of the
implementation maintains the same structure as that of the JFlow standard.