Java Reference
In-Depth Information
shown in Figure 21.10. The interfaces that are defined by the standard
are divided into two packages,
WorkflowModel
and
WfBase
. The package
WfEngine
contains the implementation of the standard interfaces; this
package makes use of the
ProcessDefinition
package that was developed in the
previous prototype.
The standard
JFlow
interfaces have a well-defined structure (shown in
Figure 21.3) that constrains the development of the
WfEngine
package.
Decision point
How do we implement the standard
JFlow
interfaces?
The problem is how closely we follow the structure of the
JFlow
interfaces
in the
WfEngine
package. If we want to have more freedom in the develop-
ment of the engine we can adopt a structure that is loosely related to that of
JFlow
; this solution requires a set of classes that provide an adaptation layer
between the engine and the standard interface. As a result, more freedom
requires more effort. On the other hand, if we adopt a structure that is
homologous to that of
JFlow
we are more constrained in the development but
we do not need any sort of adaptation. In addition, since the workflow
conceptual model is similar to the
JFlow
structure it is not difficult to
conform to both at once.
The structure of the
WfEngine
package together with the relationships to
the
ProcessDefinition
and
WorkflowModel
packages are sketched in Figure
21.11. Here only the main classes are shown. In fact there is an implemen-
tation class for each
JFlow
interface, plus the interfaces in the
fBase
package.
The
Catalog
class is a singleton that is the access point to select the
processes to enact. The process definitions are represented by the class
WfProcessMgrImpl
that implements the
WfProcessMgr
interface defined in
the
WorkflowModel
package. A process that is in course of enactment is
use
WorkflowModel
WfBase
implements
implements
use
WfEngine
ProcessDefinition
Figure 21.10
Workflow package structure