|
1. Architecture |
| |
1.1 Process Manager |
1.2 Process Definition Manager |
1.3 Persistence Manager |
1.4 Audit Manager |
1.5 JaWS |
1.6 Trigger Manager |
1.7 Security Connector |
1.8 Utility Activities |
|
1. Architecture |
| |
JawFlow is composed by many interacting modules. Many of these modules are JMX Mbeans and so
they need a JMX Agent to run. To develop, test and run JawFlow we used Jboss AS (www.jboss.org)
but since there are no dependencies in the code related to Jboss it can be installed in any application
server supporting the JMX technology.
We only support here Jboss AS and a detailed installation and configuration procedure is reported in chapter 2
|
|
|
1.1 Process Manager |
|
The ProcessManager is the kernel of JawFlow. It is responsible of process scheduling and enqueueing.
It enquires the JaWS module to follow the work path in order to respect the flow depicted in the process definitions.
|
|
1.2 Process Definition Manager |
|
The Process Manager uses the Process Definition Manager in order to store, retrieve
and delete the process definitions. The process definitions are written in XPDL,
the XML Process Definition Language, a standard language proposed by the WfMC coalition.
The process definition Manager acts in two ways: the first as a persistence manager for process definitions,
the second as a cache manager to avoid the process of loading process definition from the persistence repository.
The process definition manager can be plugged into JawFlow respecting some Mbean interfaces. The actual implementation
uses Hibernate as a persistence mechanism and a JNDI serialization as a cache manager.
|
|
1.3 Persistence Manager |
|
The persistence Manager is in charge of storing and retrieving the Flow status and any change that occurs to it.
It stores any information declared as "Extended Attribute" in the Workflow.
|
|
1.4 Audit Manager |
|
The Audit Manager is notified of any change that occurs to the status of the activities and of the processes.
It is implemented in an asynchronous way using a JMS Queue and a MDB that receives notifications and stores data.
The actual implementation of the storage has been done using Hibernate a
llowing fast coding of the workflow structure db operations.
The Audit Manager is implemented using a chain of delegation pattern, allowing to extend its behaviour by
registering other listeners for the change of status notifications.
|
|
1.5 JaWS |
|
The Java Workflow System is just a decision engine which, invoked by the ProcessManager,
controls the path of the workflow. It is able to recognized decisional structure defined by the WfMC as splits and joins.
|
|
1.6 Trigger Manager |
|
It is possible to register a number of "triggers" that, at the occurrence of particular events,
can instance a defined process and have it started. The Trigger Manager component controls the triggering
subsystem and runs the monitors.
Four types of trigger are present in Jawflow:
File Trigger | Monitors a directory and its subdirs for any file copied into it |
Mail Trigger | Monitors a mailbox for e-mails arriving respecting required conditions |
Time Trigger | It is a sort of "cron" scheduler able to start processes at defined time conditions |
FTP Trigger | Similar to the File trigger but acts remotely |
It is so possible, for instance, to start a particular process when a file is copied into a defined directory or when a mail arrives in a defined mailbox.
|
|
1.7 Security Connector |
|
It provides a secure mechanism of talking in a stateless way with the jawflow server.
A Standard connector has been written for Jboss but since the methods used are all exposed
by the underlying Mbeans it is possible to write your own connector.
|
|
1.8 Utility Activities |
|
A number of utility Java activities have been included in the jawflow distributions. For a complete list, please refer to the related documentation.
|
|
|
|