Page 333 -
P. 333
12 The Declare Service 329
start task
S completed task D
YAWL Engine interface B instance custom YAWL Engine DECLARE
YAWL
start
service
completed Y *
instance
(a) Custom Service interface (b) DECLARE as a service
Fig. 12.2 DECLARE as a YAWL Custom Service
DECLARE Designer
DECLARE Framework Worklist
Service TCP/IP
interface B
YAWL
Engine
YAWL
Worklist
Fig. 12.3 Interface between YAWL, Declare Service, and DECLARE
another Custom Service, then this must be explicitly specified in the model. The
Declare Service enables arbitrary decompositions of DECLARE and models in two
ways, as shown in Fig. 12.2b. First, it is possible that a YAWL task triggers the exe-
cution of a DECLARE instance: when the YAWL task D becomes enabled, DECLARE
will initiate the required constraint model. YAWL will consider the completion of
the launched DECLARE instance as a completion of its task. Second, DECLARE task
Y can trigger the execution of a YAWL instance.
As Fig. 12.3 shows, DECLARE consists of three components; the Designer,the
Framework,and the Worklist.The Designer component is used for creating con-
straint templates, constraint models, and by verification of constraint models. For
example, Fig. 12.1 shows the Designer component containing the Carrier Appoint-
ment model. The Framework component facilitates instance creation and change
of constraint models. Finally, the Worklist component offers users access to active
instances of constraint models. Also, users can execute tasks of active instances in
their Worklist. The Declare Service acts as a bridge between the YAWL Engine and
the DECLARE Framework, as shown in Fig. 12.3. Note that users execute “normal”
tasks (i.e., tasks that are not decomposed or subcontracted to another system or pro-
cess) of DECLARE and YAWL instances in a default manner by using the respective
worklists.
After presenting the architecture of DECLARE and the way it is embedded into
the YAWL environment, we now focus on the functionality provided by DECLARE.
In the remainder, we show the following capabilities:
The possibility to define constraint templates. DECLARE is multilingual and can
support multiple constraint languages at the same time. Moreover, it is possible
to define new languages using constraint templates.

