Page 186 -
P. 186

6  Declarative Workflow                                          177


                                 A                   B                        Z
                                                                     ...







                           Fig. 6.2 Decomposing processes using various modeling languages


                           in procedural and declarative languages should be possible. These decompositions
                           can be achieved by the seamless integration of different process engines based on
                           different paradigms. Figure 6.2 illustrates how various processes can be combined
                           in arbitrary decompositions. Instead of being executed as a simple (manual or auto-
                           matic) unit of work, a task can be decomposed into a process modeled in an arbitrary
                           language. The declarative language based on constraints presented in this chapter
                           can be seen as one of the modeling languages in Fig. 6.2, while the YAWL nets, and
                           worklets (cf. Chap.11) can be seen as another alternative.
                              The basic language used by YAWL provides excellent support for procedural
                           workflow modeling as it supports most of the workflow patterns (cf. Chap. 2). How-
                           ever, in this chapter we focus on adding flexibility to workflow models. A workflow
                           model specifies the order in which tasks can be executed, that is, possible execution
                           alternatives. An execution alternative is a unique ordering of tasks. More execution
                           alternatives mean more flexibility. There are several ways to increase the flexibility
                           of workflow management systems:
                           1. Flexibility by design is the ability to specify alternative execution alternatives
                              (task orderings) in the workflow model, such that users can select the most
                              appropriate alternative at runtime for each workflow instance.
                           2. Flexibility by underspecification is the ability to leave parts of a workflow model
                              unspecified. These parts are later specified during the execution of workflow
                              instances. In this way, parts of the execution alternatives are left unspecified in
                              the workflow model, and are specified later during the execution.
                           3. Flexibility by change is the ability to modify a workflow model at runtime, such
                              that one or several of the currently running workflow instances are migrated to
                              the new model. Change enables adding one or more execution alternatives during
                              execution of workflow instances.
                           4. Flexibility by deviation is the ability to deviate at runtime from the execution
                              alternatives specified in the workflow model, without changing the workflow
                              model. Deviation enables users to “ignore” execution alternatives prescribed by
                              the workflow model by executing an alternative not prescribed in the model.
                           Flexibility of workflow management systems can be increased by using declara-
                           tive languages for workflow specification. This chapter describes how an optimal
                           balance between flexibility and support can be achieved with declarative workflow
                           management systems that use constraint workflow models. This chapter shows how
   181   182   183   184   185   186   187   188   189   190   191