You can also access this tutorial in German and French.

 

This is the first of four tutorials on flexibility in YAWL. It gives an overview of the worklet service, exception handling using exlets, and Ripple-Down Rules (RDR). 

 

Hello and welcome to another YAWL tutorial! This is the first of a series of tutorials about flexibility in workflows. There's a saying that states that 95 percent of the discussions are about five percent of the cases in software development. And this is about the same thing for Business Process Automation. So it is important to be flexible on the one hand but not to be forced to specify everything when you first develop a workflow. There are two types of flexibility: in workflows the first one is a flexibility at design time. We have already seen that by the separation of concerns of separating control flow, resources, and data and having a graphical editor, we already get a certain degree of flexibility in workflows. Furthermore, you are able to change a specification in a running system and have the old cases that are already running finish with the old specification and start the new cases with a new specification. So already, we have a certain degree of flexibility. What we will discuss in this and the subsequent tutorials, is an enhanced flexibility, where you also have the possibility of extending the behavior of a workflow specification without changing the specification itself.

The second kind of flexibility is concerned about changing something while a case is running. So this is more a dynamic flexibility. And also here we will have some concepts concerning worklets and exlets in YAWL that will cover this. As already said you cannot think of all possibilities when first designing a workflow specification. So in the first category of flexibility, we have concepts in YAWL like worklets that specify a certain behavior and you are able to invoke those worklets using so-called ripple down rules. Ripple down rules are trees, binary trees with conditions and conclusions that you can use to flexibly extend the behavior of a workflow specification as you find new special cases. These are also called cornerstone cases.

The other thing is that we have the problem that for example exceptions when they occur often imply that you terminate a case. But you want to do something before you terminate a case abnormally. If we would try to implement these with ordinary control flow means, we would have lots of arcs going from certain places to the end of the specification. And this would in the end lead to a graph that is more like spaghetti and is not very clear anymore. And so - for this case - we have the possibility to use exlets and define certain pre- or post-conditions in tasks and then somehow to terminate a case with a certain exception handling and not using these arcs that lead to the end. In the second category for dynamic behavior, we can define external triggers in YAWL and we can modify the behavior of a running case by using these external triggers, write worklets that define new behavior, and add that to the system. And so we obtain a learning workflow management system that incorporates new exceptions as time goes on. Last but not least, it is possible to factor out common behavior in workflow specifications using worklets. This doesn't have to do directly with the topic of flexibility but it is another use of worklets. We have already seen in previous videos that you can have complex tasks with sub workflows inside. The problem of these complex tasks is that they are limited to one specification. If we think of a bigger system with many workflows all around the same topic - let's say we need the possibility to factor out common behavior in sub-workflows - and we cannot do that using complex tasks because complex tasks are only existent in one specification and for this purpose we can use worklets as well with a very simple rule that is always true. And then we can invoke the same workflow specification from different parent specifications.

Okay, this is all for the theoretical introduction. And in the following tutorials we will go into the topics and look at them in the YAWL system.