Wednesday, September 16, 2009

A work item list of a particular user contains items, each of which representsan activity (more precisely, an activity instance) that is enabled andthat can be executed by that user. Whenever a transition with a user triggerenters the enabled state, a work item representing this activity is sent to thework item lists of the users who can perform it. Role information is used todetermine the knowledge workers. When a user selects a particular work item,the activity is started and the work items reflecting it can be deleted from thework item list.Modelling organizational aspects like users or roles is not supported byworkflow nets. A transition marked with a user trigger indicates that theactivity represented by that transition requires a human to start it. Organizationalaspects need to be covered by tools that employ workflow nets forprocess modelling and other techniques for modelling organizations. The sameapplies for representing data, which is also not covered by workflow nets.An external trigger is the main instrument for reacting to external eventslike an incoming message. When the transition that carries an external triggerenters the enabled state, it listens for this event. When the event occurs, forinstance, when an order arrives, the transition fires and the activity startsexecution. Time triggers are used to specify situations where the start of an activitydepends on temporal aspects. Time triggers can be assigned a time-out value.The timer is started when the transition enters the enabled state. When thetimer runs out, the enabled transition fires. If the transition is no longerenabled, the timer is stopped. In thisprocess, a request is sent, represented by the Send Request transition. Theworkflow net implements an implicit exclusive or split that concurrently enables(transitions that represent) activities to collect the response to the requestand to send a reminder.The Collect Response activity is marked by an external trigger, so thatit is started once the response comes in. A reminder should be sent if aftera defined time interval, for instance, 14 days, no response is received. Thisbusiness logic can be implemented in a workflow net by attaching a timertrigger to the Send Reminder transition.The timer is started when the transition enters the enabled state, i.e.,after the request is sent. If the response is received within the timer interval,then the Collect Response transition fires. In this case, the Send Remindertransition is no longer enabled, so that the timer can be stopped. In an explicit exclusive or split (a), the decision on which branch to activateis made by a decision transition, so that either transition A or transition Bis enabled. In this setting, the desired functionality is not realized, because ifA is enabled, the timer will not be started, and if B is activated, there is noway for the user to start working on activity A.The timer is started, and the user trigger is available. If the user starts the activity on time, i.e., before thetimer expires, then the timer is stopped. If the user fails to start the activityon time, activity B is started to cater to this situation. Trigger activities can formally be represented by places with an arc to therespective transition. For instance, a user trigger of a transition A is representedby a place p such that p 2 P and (p,A) 2 F, as shown in Figure 4.51.The behaviour of the user is represented as follows. If and when the user selectsthis activity, a token is put in place p, enabeling transition A. In thiscase, A can fire, representing the execution of that activity.While the behaviour of the user trigger is specified well using the additionalplace and the additional arc, there is an issue to cope with: the Petri netresulting from expanding the user trigger by a place and an arc is no longer aWorkflow net! This is due to the fact that p is not on a path from the initialplace i to the final place o. In the context of business processes involvingmultiple parties, however, these trigger places are very useful to interconnectthe processes involved. The diagram shows a business process involving a customer and a bookstore, and it containsactivities for the ordering of books by the customer and the processing of theorder by the bookstore.All activities in this scenario are represented by transitions of one workflownet. In order to satisfy the structural properties of workflow nets, the processstarts in the initial place i at the customer, and it ends in the final place o atthe customer. Later, in the context of business process choreographies, moreelaborate techniques will be introduced that separate an externally observablebehaviour of a business process from its internal realization. However, in thecurrent example, the workflow spans multiple parties.The process starts with the customer browsing the online catalogue of abookstore and selecting books. If books are found, an order is assembled andsent, represented by the send order transition. This transition spawns off twoconcurrent threads, as shown by the and split symbol.In one thread, the message is sent to the bookstore. The sending of theorder is represented by a token in the input place of the receive order transition.When the order is received in the bookstore, the order is processed.If the order is okay, the books are sent; otherwise, a message is sent to thecustomer that informs him that not all books are available.This means that the bookstore sends one of two possible messages for eachcase. On the customer side, this situation is handled by an implicit exclusiveor split. In this split, two transitions can be enabled at the same time. If thebookstore sends the books, the receive books transition of the customer isenabled and will fire.If on the other hand the information message is sent, the respective transitionon the customer side is enabled. Observe that the alternative branchesin the bookstore need to be joined, and the join transition is connected tothe customer side. This is required in workflow nets, because otherwise therewould be places in the workflow net (send books and send not available) thatare not on a path from the initial place to the final place.