Axxerion Workflow
Axxerion Workflow
Martin Waardenburg
Maarten van Emmerik
Web-based systems for workplace and facility automation are rapidly gaining in
popularity because they enable organizations to share data and business processes with
customers, partners and suppliers. Typically data is stored in a relational database and
users can access information via an application server which includes rules and business
processes. Since business processes may change frequently they should not be statically
programmed on the server but instead users should be able to dynamically design and
modify workflows behind these processes. Many workflow management systems are
available today but they often lack true integration with a Web-based environment or do
not support complex workflow patterns. Axxerion is designed to address these limitations
by integrating high-end workflow technology based on Petri Nets with a fully web-based
graphical environment for workflow design and visualization.
The quotation can have 5 states: 'Draft', When the task 'Submit' is executed (i.e. the
'Submitted', 'Rework', 'Approved' and 'Submit' button is pressed), the token from
'Cancelled'. These states correspond to the place 'Draft' is consumed and a new token
5 places in the workflow. There are three is produced in place 'Submitted' (see figure
tasks: 'Submit', 'Review' and 'Cancel'. The 6). Now the task 'Review' is enabled and
task 'Submit' is an or-join task which is assigned to the sales manager. In addition
carried out by the creator of the quotation. the task 'Cancel' is enabled because there is
The 'Review' task is an or-split task, a token in the cancel group.
Implementation
Figure 8. Quotation screen in submitted state.
The Axxerion workflow management
In the task 'Review', the sales manager can module is implemented in Java in a J2EE
decide if the quotation can be approved or environment. The workflows can be
if it needs more work. If it is decided to designed and executed in a web browser,
rework the quotation (the 'Rework' button using html and a Java applet. This enables
is pressed), the token will go to the place dynamic placing and moving of the various
'Rework' and the 'Submit' task will be workflow items. The pictures in this paper
enabled again (see figure 9). Note that the are all generated from this applet, so this is
task 'Cancel' is still enabled because there also what users can see.
still is a token in the cancel group Because the workflow system is very tightly
rectangle. integrated with the rest of the Axxerion
workplace automation system, performance
of the application can be optimized to a
large extent. This is very important,
because the workflow is used for access
rights checking as well. To render a screen
Figure 14. Travel request workflow, showing multi choice and synchronizing merge.
Pattern 9: Discriminator
The discriminator is a point in the workflow
that waits for one of the incoming branches
to complete before activating the
subsequent task. It then ignores all
remaining branches.
Figure 24. Difference explicit and implicit choice. In figure 25, an example of interleaved
parallel routing is shown. In this example,
Figure 24 illustrates the difficulty in the Navy requires every job applicant to
supporting this pattern when the workflow take two tests: a physical test and a mental
language does not support states directly. test. These tests can be conducted in any
The top workflow is made using only tasks, order but not at the same time. To realize
the bottom workflow also has states (the the desired behavior, a mutual exclusion
circles). The workflow is about a document place is added to synchronize tokens. As
approval. The approval can be made by the can be seen in figure 25, initially both tests
manager, or alternatively by two are enabled. After the physical test has
coordinators. In the top workflow, the only started, the mental test is not enabled.
way to make the distinction between the When the physical test has ended, the
branches is make a separate task to decide mental test will be enabled again.
which approval to take. In the bottom
workflow, this decision is made implicitly by Pattern 18: Milestone
executing an approval in one branch. The enabling of a task depends on the case
Since Axxerion has the notion of states, this being in a specified state. The task is only
pattern is straightforward to implement. enabled when a certain milestone has been
Another example can be seen in figure 21. reached, that is in another parallel thread
The choice between time-out or advancing of execution.
when 2 quotations are approved is only The milestone pattern can be implemented
made at the time one of these steps is directly in Axxerion. An example is shown
completed. Such a time-out is difficult to in figure 26. This example is a step further
model when the workflow language does in the execution than what is shown in
not support states. figure 2. The milestone is the state where
the two parallel paths are synchronized.