You are on page 1of 10

TriGSflow

Active Object-Oriented Workflow Management


G. Kappel, B. Pröll, S. Rausch-Schott, W. Retschitzegger
Institute of Computer Science, Department of Information Systems
University of Linz, AUSTRIA
email: {gerti, birgit, stefan, werner}@ifs.uni-linz.ac.at

Abstract (1) Object-oriented Paradigm: The object-oriented para-


digm supports among others the modeling of structure and
We present the multi-paradigm architecture TriGSflow behavior of problem domain objects which may be reused
for a workflow management system. TriGSflow is based on for building different workflow systems [Enge94]. Prob-
an active extension of the commercial object-oriented lem domain objects represent real world objects and con-
database system GemStoneTM. TriGSflow takes full advan- cepts of a problem domain, such as student and
tage of the capabilities of the underlying database system scholarship of a scholarship application system. Besides
such as reliability, recovery, transaction management, and the issue of reusability the object-oriented paradigm pro-
authorization. At the current stage of implementation the vides an open environment necessary to adapt to changing
novel features of TriGSflow are the seamless integration of requirements of the application domain [Kapp91].
ECA rules into an object-oriented model, the flexibility of (2) Rule-based Paradigm: The rule-based paradigm
workflow specification due to rule modeling, and the inte- allows to specify certain system behavior in addition to
gration of external applications as part of workflow pro- local object behavior. Whereas the latter is expressed in
cessing. terms of methods invoked on single objects the former is
specified in terms of Event/Condition/Action triplets
Keywords: workflow model based on ECA rules, active (ECA rules) [Daya88]. These so-called active concepts
object-oriented database allow the system to monitor the situation represented by
an event and by one or more conditions and to execute the
corresponding actions when the event occurs and the con-
1. Introduction ditions evaluate to true [Beer91]. This system behavior is
especially useful in the area of complex business pro-
A workflow management system (WFMS) supports the cesses in order to express an event-driven and constraint-
design, execution and monitoring of in general long-last- driven system environment [Yang89]. By incorporating
ing business processes that typically involve multiple rules the flexibility of a WFMS is increased. For example,
activities and multiple collaborating persons in a distrib- which person should perform a certain activity does not
uted environement. WFMSs originate from the office have to be hard-coded but is defined in terms of a rule
which is dynamically evaluated.
automation efforts in the late 1970s and early 1980s, and
from the imaging-based systems in the 1980s, both of (3) Transaction Paradigm: Business processes need cor-
which aimed at automating office paper processing rectness, reliability, and failure criteria to be enforced sim-
[Hsu93]. Today, WFMSs are becoming increasingly visi- ilar to transaction systems. They consist of interrelated
activities with data flow constraints and control flow con-
ble as a means for improving the productivity and compet-
straints, again similar to transaction systems. However,
itive edge of an organization via reengineering and
due to their long-lasting asynchronous nature business
automation of business processes. Due to the complex processes require extended transaction models incorporat-
nature of WFMSs we suggest a multi-paradigm approach ing long transactions and multi-level transactions [Geor93,
for implementing a WFMS consisting of the following Shet93]. Concerning the latter, multi-level transactions are
basic concepts: necessary since there are at least three levels of dependen-
cies which have to be distinguished in a full-fledged
TM GemStone is a registered trademark of Servio Corporation WFMS. These three levels are:
• Intra-Activity: A workflow consists of a series of activ- base system GemStone [Kapp94a, Butt91].
ities, each activity being a transaction. Some activity The paper is organized as follows: Section 2 introduces
may need cooperative multi-user interaction, thus, tra- the object-oriented workflow model as well as integration
ditional transaction models have to be extended to sup- aspects. Section 3 incorporates rule modeling and Section
port these needs. 4 points to ongoing research.
• Inter-Activity Intra-Workflow: There exist several
dependencies between activities such as temporal
dependencies, data dependencies, and termination
2. Object-oriented workflow model
dependencies. The traditional correctness criterion for In the following we describe our workflow model
transaction systems, serializability, is not sufficient to which is based on the object-oriented paradigm. The
cope with these inter-transaction dependencies. A feasi- workflow model is generic in the sense that different kinds
ble approach will be to start with the nested transaction of business processes such as application for scholarship,
model and extend the correctness model on the basis of reimbursement of business trips, and reordering of goods
the above mentioned dependencies. are modeled as instances of the corresponding classes of
• Inter-Workflow: Similar to the previous point there the workflow model. The class hierarchy and the class
exist several dependencies between workflows of the composition hierarchy of the workflow model are illus-
same or of different kinds within a multiworkflow man- trated in Figure 1. The class hierarchy represents the inher-
agement system. These dependencies have to be itance (is-a) relationship between an object class called
addressed within an advanced transaction model for subclass and another object class called superclass. The
workflow systems, too. class composition hierarchy represents the has-component
relationship between an object class called complex object
In addition to the above mentioned transaction require-
class and another object class called component object
ments execution correctness requirements such as failure
class.
atomicity and execution atomicity also have to be
addressed. [Daya90, Garc94, McCa93].
2.1 Agents and activities
(4) Distribution Paradigm: The distribution paradigm
comes up with the need to access distributed information A workflow type represents a certain kind of business
sources [Rein93]. These information sources will not only process, e.g., an application for scholarship (cf. class
supply passive data but also applications and potentially BusinessProcess and its instance WF_Type in Fig-
other WFMSs which have to interoperate. Since these dis- ure 1). It is defined by a number of various activities
tributed information sources have to comply with a com- (Activity) representing subtasks of the business pro-
mon protocol OMGs CORBA protocol [Desh93] will cess. An Agent (Agent) is able to perform different activ-
become very important. ities, and a specific activity can be performed by different
agents called relevant agents. Consequently, one or more
(5) Integration Paradigm: Business processes have to
appropriate agents called actual agents, which actually
integrate external isolated applications with new applica-
perform the activity, have to be selected at runtime. This
tions already built into the system. A convenient approach
selection process can be done on basis of a specific syn-
of doing this is in terms of wrapper objects, which provide
chronization policy [Bußl94], e.g., agents on holidays are
a homogeneous interface to heterogeneous external appli-
not allowed to be selected. For sake of simplicity the dis-
cations. In addition, wrapper objects backed by database
cussion in this paper is focused on a single actual agent.
systems provide transaction capabilities to otherwise
Thus, the selection process based on a set of relevant
transaction-less applications.
agents always returns a single actual agent. Agents are
The main contribution of this paper is to devise a work- autonomous. They are modeled by autonomous objects
flow model incorporating object-oriented, active and inte- which are implemented as independent processes commu-
gration concepts. The model is based on existing work in nicating via message passing. Agents are classified into
this area [Rein93, Bußl94, Jasp94] yet incorporates exten- automatic agents (AutoAgent), e.g., a machine, and
sions based on the object-oriented paradigm and the flexi- human agents (HumanAgent). The latter ones represent
ble integration of the object-oriented and the rule-based users belonging to the organizational structure of an enter-
paradigm. The transaction paradigm and the distribution prise. In case of a human agent, the activity prints some
paradigm are not dealt with in this paper but are subject of instruction on the screen and waits until the user signals
ongoing research. A first prototype of the workflow model that the job has been finished. The activity may be exe-
has been implemented on top of TriGS, an active exten- cuted either without any computer support, or it may be
sion of the commercially available object-oriented data- executed by an application, e.g, a text processing system,
in interaction with the human agent. In the latter case, the Petri nets [Pete81] in the sense that inclusive OR forking
human agent is responsible for starting the application. In and inclusive OR joining are also explicitly supported in
contrast to human agents, automatic agents are able to per- TriGSflow.
form their activities without user interaction. Conse-
quently, these activities can be triggered automatically. For We distinguish three different kinds of branching,
an in-depth discussion of the execution of activities by namely, exOR-Alternative (cf. Figure 2c), i.e., only one of
automatic agents we refer to Section 2.4. the specified successor activities may be triggered by the
predecessor activity, concurrency (cf. Figure 2b), i.e., all
Agents cooperate with each other in order to realize the of the specified successors are triggered, and inOR-Alter-
business process. This cooperation is achieved by specify- native (cf. Figure 2a), i.e,. a subset of the specified succes-
ing both a certain control flow between activities on the sors is chosen. If two or more parallel branches have the
basis of an activity net (cf. Section 2.2), and a workflow on same successor activity a joining activity has to be sup-
the basis of orders (cf. Section 2.3). plied. An AND-Join specifies that the common successor
cannot be performed until all predecessor activities have
2.2 Control flow been finished. In contrast, an exOR-Join specifies that the
successor activity can be performed as soon as one of the
The execution order of activities is determined by their predecessors has been finished. Last but not least, an
relationships within an activity net. These relationships inOR-Join specifies that a subset of the predecessor activi-
comprise basic control structures, namely sequencing, ties has to be finished before the successor activity is
branching, and joining (cf. Figure 2) [DeAn81, Sche94]. enabled. Note, that in case of inOR-join and exOR-join it
The semantics of these control structures extend those of might be necessary to garbage collect folders (for a discus-

BusinessProcess
•name
•folders
•initAgent
•startActivity
•stateOfWF AgentSpec
•name
Folder
Order •bp
WF_Type Activity •folder •data
•name Worklist •activity
•relevantAgents •orders
•actualAgents

Agent InternalAppClass
•worklist •className
•methodSignature

HumanAgent AutoAgent
•userID
•passwd
ExternalApp InternalAppObject
•startingCommand •objectID

Legend: ... has-component (single-valued) ... instance-of


... has-components (multi-valued) ... object class
... is-a ... instance of an object class

Figure 1. Class hierarchy and class composition hierarchy of TriGSflow


sion of folders see section 2.3) which are still residing in (cf. instance variable startActivity in Figure 1) - a
one or several of the parallel branches but will not be used new folder is created. The flow of this folder from one
any more for further processing. agent‘s worklist to another‘s which is controlled by the
activity net is called a workflow and represents the execu-
(1) Sequence: tion of a certain workflow type. In case of alternative
branching, the decision which activities to actually per-
form is made on the basis of folder contents and further
activity 1 activity 2
information concerning the workflow up to that point, e.g.,
which agent(s) performed former activities. If more than
one successor activity is performed concurrently a refer-
(2a) inOR-Alternative: (3a) inOR-Join: ence to the folder is transferred to each responsible agent.
Concurrent folder access of concurrently working agents
activity 2 activity 4 is handled by the transaction mechanism of the underlying
∨ ∨ object-oriented database system. Note, that duplicating
activity 1 activity 6
folders for concurrent access might also be useful in some
activity 3 activity 5 cases. However, duplication of folders involves version
management which will not be treated in this paper.

(2b) Concurrency: (3b) AND-Join: 2.4 Integration aspects

activity 4 TriGSflow allows to integrate both internal applications



activity 2
∧ implemented within the same object-oriented environment
activity 1 activity 6 as the workflow model and external applications such as a
spreadsheet application. Sometimes different applications
activity 3 activity 5
are able to realize an activity. For example, the activity
”send order“ (cf. Figure 6) can be realized by the external
(2c) exOR-Alternative: (3c) exOR-Join: applications “faxApp <fax-no> <order form>“
or ”mail <email-adr> <subject> <order
form>“. External applications are started by a shell com-
activity 4 mand of the underlying operating system. In our model for
x
activity 2 x
each external application which should perform an activity
activity 6
activity 1 in some workflow an instance of class ExternalApp is
activity 3
activity 5 created and initialized with the starting command of the
application. When performing an activity which is realized
via an external application, i.e., when sending the message
Figure 2. Basic Control Structures
perform to a respective instance of class Activity, a
More complex control structures, e.g., iteration can be wrapper method of class ExternalApp starts the exter-
built by combining these basic control structures. nal application by sending the starting command to the
operating system shell. In addition, it coordinates data
2.3 Workflow flow to and from the external application according to its
requirements, e.g., get fax-no of desired supplier, and
Besides the specification of the execution order, data waits until the application has finished. Occasionally,
exchange between agents is necessary for realizing coop- resulting data has to be transfered back in order to be
eration. Agents constitute separate processes and commu- accessed by the successor activities.
nicate asynchronously in order to exchange data. In our
The integration of internal object-oriented applications
model asynchronous communication between agents is
promotes the reusability of classes of the problem domain
realized by worklists (Worklist) associated with agents.
to which the business process belongs. In object-oriented
If an agent is requested to perform one of the activities an
applications behavior is realized by methods associated to
order (Order) is inserted into its worklist specifying the
classes. In TriGSflow these methods are reused for the
requested activity and including the data (within a folder -
implementation of activities. Analogous to external appli-
Folder) necessary for performing the activity.
cations, for each class-method combination which is used
On every start of a business process - which can be to realize one or more activities an instance of class
done by any agent capable of performing the start activity InternalAppClass is created and initialized with the
class name and the method signature. At runtime, as soon the commercial object-oriented database system Gem-
as an instance of the specified class is selected the first Stone and has been developed as part of a larger EC
time in order to perform some activity (cf. Section 3.2 on ESPRIT project aiming at the development of next-gener-
agent selection), a corresponding instance of class ation production scheduling and control systems. TriGS is
InternalAppObject is created and initialized with a based on the ECA paradigm [Daya88]. An Event-Condi-
reference to the selected agent object. tion-Action triplet is denoted as rule. The event part of a
rule is represented by a rule event selector determining the
WFMS event(s) which is (are) able to trigger the rule. Events rep-
resent real-world situations (e.g. a machine breakdown)
that form the basis for subsequent rule execution. TriGS

activity 2
∨ supports message events, that is any message sent to an
activity 1 activity 4
object may be associated with a message event, and time
activity 3 events (e.g., every day or at 9 p.m.) as proposed in
SAMOS [Gatz92]. The condition part of a rule is specified
Class A by a condition event selector, which defines when to eval-
•m1 uate the condition, and a Boolean expression (e.g., is the
•m2
machine available?), possibly based on the result of a data-
Class B Class C base query (e.g., select all orders that are scheduled on the
•m3 •m5
damaged machine). The action part (e.g., schedule the
•m4 External
next operation) is specified by an action event selector,
Internal Application
which defines when to execute the action, and a sequence
Application of arbitrary messages. Figure 4 defines the syntax of a rule
specification (note that only the major parts are specified)
using the Backus-Naur Form (BNF). The symbols ::= |
ooDBS [ ] { } * are meta symbols belonging to the BNF for-
malism.
Figure 3. Integration of internal and external applications
The specification of a rule responsible for fetching the
When executing a certain workflow every agent object next operation from a machine's buffer and scheduling it
corresponds to a single process. Since TriGSflow is based each time this machine becomes available is shown in the
on a database system, integration on data level is simply following example:
done by shared database objects. Note, that the class
AgentSpec is abstract, i.e., no instances of this class DEFINE RULE MachineRule_1
may be created. Figure 3 illustrates the integration of the ON POST (Machine, changeState: newState) DO
internal methods m1 and m2 of class A, which are used to ON POST (rule_trgO, changeState: newState)
perform activity1 and activity2, respectively, and IF newState = 'available' THEN
of method m5 of class C, which realizes activity3. In ON POST (rule_trgO, changeState: newState)
addition, the external application printtool is used to EXECUTE rule_trgO schedule: (rule_trgO
perform activity4. getBuffer nextOperation).
Note that at present our model of integrating internal The rule is triggered after execution (cf. keyword
applications and external applications does support the POST) of the method changeState of class Machine.
integration of legacy systems to the extent that wrapper Both, condition evaluation and action execution are done
objects hide the peculiarities of those systems and provide immediately after triggering the rule since they are trig-
the necessary transformation to and from those systems. gered after executing the same method on the same object
Real interoperability between TriGSflow and other (legacy) (cf. keyword rule_trgO which stands for rule trigger-
systems, e.g., in terms of multiworkflow models, is subject ing object).
to ongoing research.
To obtain tight integration with the underlying data
model as well as for the purpose of dynamic rule definition
3. Rule model of TriGSflow and manipulation, the three components of the rule as well
as the rule itself are first class objects. That is, new rules
3.1 Basic concepts of TriGS are defined by creating new instances of predefined object
classes representing the rule and its components and
TriGS [Kapp94a, Kapp94b] is an active extension to equipping them with appropriate values.
<rule_definition> ::= DEFINE [VARIANT | INVARIANT] RULE <rule_name>
ON <rule_event_selector> DO /*event part*/
ON <cond_event_selector>
IF <boolean_expr> THEN /*condition part*/
ON <act_event_selector>
EXECUTE <action> /*action part*/
[WITH PRIORITY <number>]
[ACTIVATED [FOR <set_of_instances>] |
DEACTIVATED [FOR <set_of_instances>] ]
[TRANSACTION (<transaction_mode>,<transaction_mode>)].
<rule_event_selector> ::= <time_event> |
{PRE|POST} ([<class_name>,]
[CLASS_METHOD|INSTANCE_METHOD] <method_signature>)
<cond_event_selector> ::= <rule_event_selector> |
{PRE|POST} (rule_trgO[.<path_expr>],<method_signature>)
<act_event_selector> ::= <cond_event_selector> |
{PRE|POST} (cond_trgO[.<path_expr>],<method_signature>)
<path_expr> ::= <instance_var>{.<path_expr>}*
<set_of_instances> ::= ({<instance_ref>|<expr>} {,<instance_ref>|<expr>}*)
<transaction_mode> ::= SERIAL | PARALLEL

Figure 4. BNF of rule specification

Considering rules in the context of the class hierarchy may be (de-)activated at different levels of granularity
of an object-oriented database schema they may be ranging from object level to class level (cf. keywords
attached to a specific class or defined apart from any class. ACTIVATED and DEACTIVATED in Figure 4). Class
According to this distinction TriGS supports two catego- level granularity implies (de-)activating a rule for all
ries of rules, called local rules and global rules. A local instances within its scope. Object level granularity allows
rule allows to monitor specific behavior of certain classes. (de-)activating a rule for specific instances thus supporting
Thus the event selector of a local rule consists of a trigger- a powerful exception handling mechanism.
ing class in addition to a triggering method. The triggering
class denotes the class which the rule is attached to. The
triggering method denotes, in terms of GemStone, a class 3.2 Incorporating rules into the object-oriented
method or an instance method (default) which raises the workflow model
event before or after its execution (cf. keywords
CLASS_METHOD/INSTANCE_METHOD and PRE/POST In our workflow model TriGSflow ECA rules are
in Figure 4). Since a local rule is attached to a specific applied in three different areas, which are illustrated in
class it is subject to inheritance. This implies that a local Figure 5, namely activity ordering, agent selection, and
rule is triggered not only by invoking the triggering worklist management. The different kinds of rules are
method on any object of the triggering class but also by orthogonal to each other. In the following we discuss the
invoking this method on any object of its subclasses. Fur- use of ECA rules for TriGSflow in detail. All examples
thermore, TriGS allows to override inherited rules in sub- given are taken from a simple reordering system. Part of
classes [Kapp94a]. the activity net of the reordering system is depicted in Fig-
In contrast to a local rule, a global rule allows to moni- ure 6. The workflow is started every time the need to reor-
tor specific behavior of arbitrary classes. Thus the event der a certain item is indicated. In most examples, the
selector of a global rule consists of a triggering method coupling modes between event and condition as well as
only. Consequently, a global rule monitors all classes between condition and action are immediate according to
which know the triggering method. Since a global rule is the notion in [Kapp94b] resulting in identical event selec-
attached to a specific method only, it is neither subject to tors. To increase readability condition event selectors and/
inheritance nor overriding. Both local and global rules or action event selectors are omitted in those cases.
ECA rules for Worklist Management

Worklist Agent Worklist Agent Worklist Agent Worklist Agent Worklist Agent Worklist Agent

ECA rules for


Agent Selection

Activity 3 Activity 5
∧ ∧
Activity 1 Activity 2 Activity 7

ECA rules for


Activity Ordering Activity 4 Activity 6

Figure 5. Application areas for ECA rules

Activity ordering: The relationships between activities, would be executed. Exception handling will not be treated
i.e., the activity net, can be realized by using ECA rules, further in this paper. The action of an activity ordering rule
thus specifying a certain workflow type. Concerning the has to notify the agent responsible for performing the suc-
mapping of relationships to rules we can identify six cases ceeding activity. The method notifyAgent puts a cor-
according to the basic control structures: responding order for the successor activity into the
• a relationship representing a sequence is mapped to a worklist of the agent chosen to perform this activity (for
single rule selecting agents see next section). The method perform
starts the execution of the activity no matter whether a
• each relationship taking part in an OR-Alternative human agent or an automatic agent is engaged. In case of a
(exclusive OR or inclusive OR) is mapped to a single human agent it waits until the human agent signals the end
rule of the execution. Every rule responsible for activity order-
• all relationships taking part in a concurrent fork are ing contains the methods perform and notifyAgent
mapped to a single rule in its event part and action part, respectively.
• each relationship taking part in an exOR-Join is Consider the activity net in Figure 6. Furthermore, con-
mapped to a single rule sider the following rules realizing an exOR-Alternative
between executing the activity “get offers“ and executing
• all relationships taking part in an inOR-Join are
no activity at all, and equivalently realizing an exOR-Join
mapped to one or more rules depending on the desired
between the activity “get offers“ and no activity. This par-
semantics
ticular situation of exOR-joining with “no activity” is han-
• all relationships taking part in an AND-Join are dled in such a way that the activity “create order form”
mapped to a single rule triggers either “get offers” or “select supplier”.
The event of an activity ordering rule always consti-
tutes the end of the preceding activity or - in case of an
get
AND-Join or of an inOR-Join - of all participating preced- offers
ing activities, respectively. The condition checks whether
x x ...
the succeeding activity has to be performed or not. This is
done by evaluating queries against the actual folder and/or create select send
order form supplier order
other data concerning the actual workflow, e.g., if a certain
date is expired the activity is not performed. In case of an Figure 6. Part of an Activity Net
inOR-Alternative the result sets of the conditions may The first two rules named R_GetOffers and
overlap, whereas an exOR-Alternative is reflected by R_SelectSupplier1 are activated for the same
mutual exclusive conditions. Note, that an exception han- instance of class Activity, namely
dling mechanism [Aura89] has to handle the case that all a_create_order_form. That is, after the method
conditions evaluate to false, i.e., no succeeding activity perform has been executed on that instance (denoted by
the keyword POST), both rules are triggered. The condi- where the method has been originally defined and all
tion of the rule named R_GetOffers checks if offers are direct or indirect subclasses of those classes.
needed that are missing or that are no longer up-to-date. If (2) Explicit definition of relevant agents: At definition
the condition evaluates to true the action is executed by time it is useful to reduce the set of possible agents to
sending the message notifyAgent to the instance agents which are relevant for the particular workflow
a_get_offers of class Activity representing one of type, thus incorporating more semantics into the
the mutual exclusive successors of the activity model. This can be done by collecting the set of rele-
a_create_order_form within the activity net (cf. vant agents as instances of class InternalApp-
Figure 6). class (cf. Figure 1). The relevant agents of a specific
DEFINE RULE R_GetOffers activity are referenced via its instance variable rel-
ON POST (Activity, perform) DO evantAgents.
IF Offers notUpToDateFor: ((rule_trgO (3) Selection of actual agents: For a specific workflow the
getFolder at:’Order’)
set of relevant agents may be again reduced to a set of
positions) THEN
actual agents on the basis of actual data by using ECA
EXECUTE a_get_offers notifyAgent
rules. In contrast to the first two steps where agent
ACTIVATED FOR (a_create_order_form).
selection is done at class level, the selection of actual
The condition of the rule named agents is done at instance level. Applying rules for
R_SelectSupplier1 is complementary to the condi- actual agent selection provides the possibility to react
tion of R_GetOffers. If it evaluates to true no more immediately to state changes of some relevant agent,
offers are required and therefore the supplier can be e.g., a machine breakdown. Furthermore, it is possible
selected immediately by sending the message notify- to implement different selection policies and to switch
Agent to the instance a_select_supplier of class between them dynamically by simply activating and
Activity representing the other successor of the activ- deactivating the corresponding rule at activity instance
ity a_create_order_form. level. Note, only one specific selection rule can be
DEFINE RULE R_SelectSupplier1 active for a certain activity at one point in time. Con-
ON POST (Activity, perform) DO cerning the integration of internal application classes,
IF Offers areUpToDateFor: ((rule_trgO if an instance of an internal application class is
getFolder at: ’Order’) selected as actual agent a corresponding instance of
positions) THEN class InternalAppObject is created if it does not
EXECUTE a_select_supplier notifyAgent already exist.
ACTIVATED FOR (a_create_order_form).
The following rule named R_MinWorkload realizes
The third rule named R_SelectSupplier2 is acti- the selection of actual agents on the basis of a minimal
vated for the instance a_get_offers of class Activ- workload policy.
ity. The condition is set to be always true denoting that
DEFINE RULE R_MinWorkload
all offers are available now and that the action which noti-
ON PRE (Activity, notifyAgent) DO
fies the agent(s) responsible for selecting a supplier is exe-
IF (rule_trgO relevantAgents)
cuted in any case.
selMinWorkload THEN
DEFINE RULE R_SelectSupplier2 EXECUTE (rule_trgO actualAgents)
ON POST (Activity, perform) DO removeAll; add: QUERY_RESULT
IF true THEN ACTIVATED FOR (a_select_supplier).
EXECUTE a_select_supplier notifyAgent The event is signaled before the method notify-
ACTIVATED FOR (a_get_offers). Agent of class Activity is executed (denoted by the
keyword PRE). The condition determines the set of actual
Agent selection: The process of selecting one or more agents according to a specific selection policy, e.g., select-
agents performing a certain activity consists of three steps. ing the agent with the lowest workload (selMinWork-
Below, these steps are explained for internal application load). Analogous to the condition of activity ordering
agents. They apply equally for external application agents rules this is done by means of queries against the actual
and human agents. folder and/or other data concerning the actual workflow.
(1) Implicit definition of possible agents: By mapping an The selected agent is passed to the action of the rule (cf.
activity to a certain method of an internal application, keyword QUERY_RESULT). The action of the rule assigns
the set of classes able to respond to the corresponding the query result to the instance variable actualAgents
message is implicitly defined. It comprises all classes of the triggering object.
Worklist management: ECA rules are also applied to petence hierarchy, also called role hierarchy in the work-
coordinate the processing of orders waiting inside the flow literature, has to be incorporated into our agent
worklist of a specific agent. They monitor the worklists of selection strategy. A multi-level transaction model includ-
automatic agents and start processing the next order every ing intra-workflow transactions and inter-workflow trans-
time an automatic agent becomes inactive. This state is actions will be defined to provide for flexible yet stable
indicated after an order is removed from the worklist. The workflow management. TriGSflow has been applied to tra-
following rule named R_StartOnRemove is triggered ditional office automation environments so far. However,
every time the message remove is sent to an instance of if workflow systems want to gain leverage on a broader
class Worklist that belongs to an automatic agent (cf. scope they have to support the whole production process
ACTIVATED FOR clause). The condition checks in addition to administrative processes. The applicability
whether there are remaining orders to be processed. If the of TriGSflow for implementing a production planning and
worklist is not empty, i.e., there are remaining orders, the control system is currently evaluated in a case study. Last
action selects the next order in turn (method nex- but not least, tools for designing workflow applications
tOrder) and sends the message perform to the corre- based on active object-oriented database systems are still
sponding activity. missing. There is a growing awareness of the problem of
designing active object-oriented database applications
DEFINE RULE R_StartOnRemove
ON POST (Worklist, remove) DO
[Bich94], and there are several graphical workflow model-
IF rule_trgO isEmpty isFalse THEN ing tools on the market. However, the integration of these
EXECUTE ((rule_trgO nextOrder) two vivid research areas taking into account the ideosyn-
activity) perform cracies of a high-level design environment for workflow
ACTIVATED FOR (AutoAgent collect: applications incorporating rules has to be further explored.
[:x|x worklist]).
The execution of an order which is inserted into an
Acknowledgement:
empty worklist is triggered by another rule, named
R_StartOnInsert, where the event part is defined on The authors are grateful to P. Lang for his valuable help in
the insertion of that order. Note that condition event selec- implementing the TriGSflow prototype.
tor and action event selector are different. Thus, before the
message insert is sent to an instance of class
Worklist, the rule is triggered and its condition is References
checked immediately. If the actual worklist is empty
before the insert operation takes place the action of this [Aura89] E. Auramäki, M. Leppänen, Exceptions and
rule, which is executed after the insert operation, starts Office Information Systems, Office Information
processing of the next order analogous to rule Systems: The Design Process, B. Pernici and
R_StartOnRemove. A.A. Verrijn-Stuart (eds.), North Holland, 1989

DEFINE RULE R_StartOnInsert [Bich94] P. Bichler, M. Schrefl, Active Object-Oriented


ON PRE (Worklist, insert) DO Database Design Using Active Object/Behavior
IF rule_trgO isEmpty THEN Diagrams, Proc. of the IEEE Fourth Int. Work-
ON POST (ruleTrgO, insert) shop on Research Issues in Data Engineering
EXECUTE ((rule_trgO nextOrder) (RIDE), Houston, 1994
activity) perform
ACTIVATED FOR (AutoAgent collect: [Beer91] C. Beeri, T. Milo, A Model for Active Object
[:x|x worklist]). Oriented Database, Proc. of the 17th Int. Confer-
ence on VLDB, Barcelona, 1991

4. Ongoing research [Bußl94] C. Bußler, S. Jablonski, Implementing Agent


Coordination for Workflow Management Sys-
A first prototype of TriGSflow implementing activity tems Using Active Database Systems, Proc. of
ordering and agent selection is operational. Ongoing the IEEE Fourth Int. Workshop on Research
research comprises the following issues. Detailed seman- Issues in Data Engineering (RIDE), Houston,
1994
tics of the various control structure primitives including
iteration in terms of ECA rules have to be defined. The [Butt91] P. Butterworth, A. Otis, J. Stein, The GemStone
integration of external applications is already possible, Object Database Management System, Commu-
however detailed synchronization mechanisms are still nications of the ACM, Vol. 34, No. 10, pp. 64-
missing. The organization hierarchy together with a com- 77, October 1991
[Daya88] U. Dayal, Active Database Management Sys- [Jasp94] H. Jasper, Active Databases for Active Reposito-
tems, Proc. of the 3rd Int. Conference on Data ries, Proc. of the IEEE 10th Int. Conf. on Data
and Knowledge Bases, Jerusalem, 1988 Engineering, Houston, 1994

[Daya90] U. Dayal, M. Hsu, R. Ladin, Organizing Long- [Kapp91] G. Kappel. Reorganizing Object Behavior by
Running Activities with Triggers and Transac- Behavior Composition - Coping with Evolving
tions, Proc. of the 1990 ACM SIGMOD Int. Requirements in Office Systems, Datenbanksys-
Conference on Management of Data , Atlantic teme in Büro, Technik und Wissenschaft (BTW),
City, NJ, 1990 H.-J. Appelrath (ed.), Springer, 1991

[DeAn81] V. De Antonellis V., B. Zonta, Modelling Events [Kapp94a] G. Kappel, S. Rausch-Schott, W. Retschitzegger,
in Data Base Applications Design, Proc. VLDB S. Vieweg, TriGS - Making a Passive Object-
1981. Oriented Database System Active, Journal of
Object-Oriented Programming (JOOP), July-
[Desh93] S. Deshpande, Developing Distributed Object- August, 1994
Oriented Applications Using the CORBA, The
Seventh European Conference on Object-Ori- [Kapp94b] G. Kappel, S. Rausch-Schott, W. Retschitzegger,
ented Programming (ECOOP‘93), Tutorial Beyond Coupling Modes - Implementing Active
Notes, Kaiserslautern, July 1993 Concepts on Top of a Commercial ooDBMS, Int.
Symposium on Object-Oriented Methodologies
[Enge94] G. Engels, G. Kappel, Object-Oriented Systems and Systems (ISOOMS), Palermo, September
Development: Will the New Approach Solve Old 1994
Problems?, Proceedings of the IFIP94 World
Congress, Vol.III, K. Duncan and K. Krueger
[McCa93] D. R. McCarthy, S. K. Sarin, Workflow and
(eds.), North-Holland, September 1994 Transactions in InConcert, IEEE Bulletin of the
Technical Committee on Data Engineering, Vol.
[Gatz92] S. Gatziu, K.R. Dittrich, SAMOS: an Active 16, No. 2, June, 1993
Object-Oriented Database System, IEEE Bulle-
[Pete81] J. L. Peterson, Petri net theory and the modelling
tin of the Technical Commitee on Data
of systems, Prentice Hall, 1981
Enginieering, Vol. 15, No. 1-4, December 1992
[Rein93] B. Reinwald, Workflow Management in Distrib-
[Garc94] H. Garcia-Molina, K. Salem, Services for a
uted Systems, Teubner, Stuttgart-Leipzig, 1993
Workflow Management System, IEEE Bulletin of (in german)
the Technical Committee on Data Engineering,
Vol. 17, No. 1, March, 1994 [Sche94] A.-W. Scheer, Wirtschaftsinformatik - Referenz-
modelle für industrielle Geschäftsprozesse, 4.
[Geor93] D. Georgakopoulos, et al., An Extended Transac- Auflage, Springer, 1994 (in german)
tion Environment for Workflows in Distributed
Object Computing, IEEE Bulletin of the Techni- [Shet93] A. Sheth, M. Rusinkiewicz, On Transactional
cal Committee on Data Engineering, Vol. 16, Workflows, IEEE Bulletin of the Technical Com-
No. 2, June, 1993 mittee on Data Engineering, Vol. 16, No. 2,
June, 1993
[Hsu93] M. Hsu, R. Obermarck, R. Vuurboom, Integra-
tion and Interoperability of a Multimedia Work- [Yang89] J. Yang, A Proposal For Incorporating Rules In
flow Model and Execution, IEEE Bulletin of the ODA-Documents, Office Information Systems:
Technical Committee on Data Engineering, Vol. The Design Process, B. Pernici and A.A. Verrijn-
16, No. 2, June, 1993 Stuart (eds.), North Holland, 1989

You might also like