<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6370083083090361965</id><updated>2012-02-17T08:26:02.715+05:30</updated><title type='text'>BUSINESS PROCESS MANAGEMENT -- Solutions To Business Processing By Experienced Authors</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>80</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-4498924166298723015</id><published>2010-03-20T15:20:00.000+05:30</published><updated>2010-03-20T15:21:37.174+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter VI Properties Of Business Processes ] ) Sec D -- By Mathias Weske</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Soundness Theorem&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;            Reachability analysis based on reachability graphs is a simple method to characterize&lt;br /&gt;the cases that comply with a given workflow net. However, reachability&lt;br /&gt;analysis only works well for small examples. The reachability graphs of&lt;br /&gt;real world business processes involving dozens of activities suffer from state&lt;br /&gt;explosion, which renders reachability graph analysis inappropriate in these&lt;br /&gt;settings.&lt;br /&gt;Besides manually creating a reachability graph and checking for the&lt;br /&gt;three properties of workflow nets that collectively define soundness, there&lt;br /&gt;are computer-supported ways to determine soundness. The first class of approaches&lt;br /&gt;creates the reachability graph automatically and checks the soundness&lt;br /&gt;property. Due to the state explosion problem, this approach suffers from&lt;br /&gt;exponential run time behaviour. As a result, the creation of the reachability&lt;br /&gt;graph might not be feasible for real-world applications.&lt;br /&gt;But there are other options that take advantage of the rich set of tools&lt;br /&gt;that have been developed by the Petri net community. In the reminder of this&lt;br /&gt;section, one of these approaches is discussed. It is based on a theorem that boundedness.&lt;br /&gt;The general idea is deriving a Petri net from the workflow net to be checked&lt;br /&gt;for soundness, as sketched in Figure 6.10: By adding a transition t  to a&lt;br /&gt;workflow net PN, and linking the final place o to t  and t  to the initial place&lt;br /&gt;i, a Petri net PN0 is created.&lt;br /&gt;We can show that PN0 is live and bounded if and only if PN is sound. As&lt;br /&gt;a consequence, existing techniques to analyze liveness and boundedness for&lt;br /&gt;Petri nets can be used to check a workflow net for the soundness property.&lt;br /&gt;For an important subclass of Petri nets, there are efficient analysis techniques&lt;br /&gt;for liveness and boundedness. This renders the check for soundness of&lt;br /&gt;workflow nets an efficient task, even for large workflow nets, which can be&lt;br /&gt;found in real-world scenarios.&lt;br /&gt;Theorem 6.1 A Workflow net PN = (P, T, F) is sound if and only if&lt;br /&gt;(PN0, i), such that PN0 = (P0, T0, F0), P0 = P, T0 = T [ {t }, and&lt;br /&gt;F0 = F [ {(o, t ), (t , i)}, is live and bounded.  &lt;br /&gt;To prove this theorem, we first show that if PN0 is live and bounded, then PN&lt;br /&gt;is a sound workflow net. Then, it is shown that from the soundness property&lt;br /&gt;of the workflow net, liveness and boundedness properties of the Petri net PN0&lt;br /&gt;follow. The proof is illustrated in Figure 6.10.&lt;br /&gt;Since PN0 is live, for each transition there is a firing sequence starting&lt;br /&gt;in the initial state i that activates it. This is especially true for the added&lt;br /&gt;transition t . Since o is the only input place of t , we can conclude that there&lt;br /&gt;is a state M reachable from i with at least one token in o, i.e., M   o.&lt;br /&gt;When t  fires, a token is put on the initial place i. Again, there is a firing&lt;br /&gt;sequence that leads to a state in which there is a token in o. Since PN0 is&lt;br /&gt;bounded, M = o, because otherwise tokens would aggregate in a place of the&lt;br /&gt;Petri net.&lt;br /&gt;Now we show that if PN is sound, PN0 is bounded. This is shown by&lt;br /&gt;contradiction. Assume that PN is sound, but that PN0 is unbounded. Since&lt;br /&gt;PN is sound and (by assumption) PN0 is unbounded, there exist states M,M0&lt;br /&gt;such that i  ! M  ! M0 and M0   M, allowing the aggregation of tokens in&lt;br /&gt;a place of PN0.&lt;br /&gt;Since PN is a sound workflow net, there exists a firing sequence   such&lt;br /&gt;that i  ! M  ! o. Applying the same firing sequence   to state M0 leads to&lt;br /&gt;a state M00 &gt; o. This means that in M00 there is a token in o; but there is&lt;br /&gt;at least one additional token in the net! This is a violation of the soundness&lt;br /&gt;property of PN and shows the contradiction.&lt;br /&gt;Finally, we have to show that if PN is sound then PN0 is live. Soundness&lt;br /&gt;implies that each transition can participate in a firing sequence leading from&lt;br /&gt;the initial state i to the final state o. By firing t , the initial state i can be&lt;br /&gt;reached, so that liveness of PN0 follows.   For arbitrary Petri nets, liveness and boundedness are still complex to&lt;br /&gt;compute, so that exponential run time behaviour can be expected. However, for an important subclass of Petri nets, liveness and boundedness can be&lt;br /&gt;computed in polynomial time. This subclass is free choice nets. Free choice&lt;br /&gt;nets have the property that the sets of input places of two transitions are&lt;br /&gt;either disjoint or identical.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-4498924166298723015?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/4498924166298723015/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2010/03/business-process-management-part-2_7284.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/4498924166298723015'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/4498924166298723015'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2010/03/business-process-management-part-2_7284.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter VI Properties Of Business Processes ] ) Sec D -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-4577398296095006403</id><published>2010-03-20T15:19:00.001+05:30</published><updated>2010-03-20T15:20:49.018+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter VI Properties Of Business Processes ] ) Sec C -- By Mathias Weske</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Soundness&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;            The first soundness criterion for business processes was developed by Wil van&lt;br /&gt;der Aalst in the context of workflow nets; but this criterion is also applicable to&lt;br /&gt;other process modelling notations. For this, the execution semantics of these&lt;br /&gt;languages have to be taken into account. If formal proofs are required, then&lt;br /&gt;process languages with a formal execution semantics, such as workflow nets&lt;br /&gt;are needed.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;            Motivation of Soundness&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                        In order to motivate the soundness criterion, a number of workflow nets with&lt;br /&gt;errors are discussed. Figure 6.4 shows a workflow net with two transitions&lt;br /&gt;which exhibit an exclusive or split behaviour and an and join behaviour.&lt;br /&gt;The exclusive or split transition t1 puts a token either in the upper input&lt;br /&gt;place of t2 or in the lower input place of t2, but not in both places. As a&lt;br /&gt;consequence, the and join transition t2 can never be enabled, because not all&lt;br /&gt;input places have tokens. Therefore, cases based on the workflow net shown&lt;br /&gt;will suffer from deadlock—no case will ever terminate.&lt;br /&gt;&lt;br /&gt;            While in a deadlock the activities involved can never be executed, in a&lt;br /&gt;livelock situation a set of activities are trapped in an infinite loop. Livelock&lt;br /&gt;can be the consequence of different types of errors in process models. If a&lt;br /&gt;condition to enter a loop is always evaluated to true, then the loop is never&lt;br /&gt;left. This type of error cannot be detected on the basis of process models.&lt;br /&gt;Not only can erroneous conditions in decision nodes lead to livelock, but&lt;br /&gt;also erroneous process structures, as shown in Figure 6.5. This workflow net&lt;br /&gt;suffers from the fact that the loop is entered by an and split transition and not&lt;br /&gt;by an exclusive or split transition. Therefore, the loop is repeatedly iterated,&lt;br /&gt;realizing a livelock situation.&lt;br /&gt;In addition to the livelock, this workflow net also suffers from the fact that&lt;br /&gt;each time the loop is iterated, one token is put in the output place. Therefore,&lt;br /&gt;a token in the output place no longer indicates the completion of the process.&lt;br /&gt;A workflow net that suffers from different problems is shown in Figure 6.6.&lt;br /&gt;Depending on the decision made by the exclusive or split transition t1, either&lt;br /&gt;a deadlock or an improper termination occurs. If t2 puts a token on p1, then the and join transition t3 cannot be enabled, since there will not be a token&lt;br /&gt;at place p3. As a consequence, a deadlock situation will occur.&lt;br /&gt;If, however, t1 puts a token in p2, then t2 can fire, putting a token in&lt;br /&gt;the output condition o. At this point, there is still a token in p3, showing a&lt;br /&gt;situation similar to that in the previous case: the process instance does not&lt;br /&gt;terminate properly because the process runs even after a token is put in the&lt;br /&gt;final place.6.3.2 Definition&lt;br /&gt;Based on these observations, soundness in workflow nets is defined. The idea&lt;br /&gt;of the soundness criterion is to make sure that all tasks can participate in&lt;br /&gt;a process instance; each process instance eventually terminates, and when it&lt;br /&gt;terminates there is exactly one token in the final place.&lt;br /&gt;In order to formally specify sound workflow nets, the following definition&lt;br /&gt;on the states of a workflow net is useful.&lt;br /&gt;Definition 6.2 Let PN = (P, T, F) be a workflow net, i 2 P be its initial&lt;br /&gt;place, o 2 P its final place, and M,M0 markings.&lt;br /&gt;• i is the state in which there is exactly one token in place i 2 P and no&lt;br /&gt;token in any other place of the workflow net&lt;br /&gt;• o is the state in which there is exactly one token in place o 2 P and no&lt;br /&gt;token in any other place of the workflow net&lt;br /&gt;• M   M0 if and only if M(p)   M0(p), 8p 2 P&lt;br /&gt;• M &gt; M0 if and only if M   M0 ^ 9p 2 P : M(p) &gt; M0(p)&lt;br /&gt; &lt;br /&gt;Using these definitions, the soundness criterion can be specified in a formal&lt;br /&gt;way.Definition 6.3 A workflow system (PN, i) with a workflow net PN =&lt;br /&gt;(P, T, F) is sound if and only if&lt;br /&gt;• For every state M reachable from state i there exists a firing sequence&lt;br /&gt;leading from M to o, i.e.,&lt;br /&gt;8M(i  ! M) =) (M  ! o)&lt;br /&gt;• State o is the only state reachable from state i with at least one token in&lt;br /&gt;place o, i.e.,&lt;br /&gt;8M(i  ! M ^M   o) =) (M = o)&lt;br /&gt;• There are no dead transitions in the workflow net in state i, i.e.,&lt;br /&gt;(8t 2 T) 9M,M0 : i  ! M t! M0&lt;br /&gt; &lt;br /&gt;Reachability analysis can be used to decide whether a given workflow net&lt;br /&gt;is sound. The idea of reachability analysis is that the states and the state&lt;br /&gt;changes of process instances are represented explicitly. Reachability graphs&lt;br /&gt;are used to represent the different states that a process instance can take.&lt;br /&gt;A reachability graph consists of nodes and labelled edges, where the nodes&lt;br /&gt;correspond to states of the workflow net and the edges represent state transitions.&lt;br /&gt;State transitions occur by firing transitions. Therefore, each state transition&lt;br /&gt;is labelled with the transition that realized this state transition.&lt;br /&gt;Definition 6.4 A directed graph G = (V,E, l) is called a reachability graph&lt;br /&gt;of a workflow net PN if V corresponds to the set of reachable states of the&lt;br /&gt;workflow net and E   V × V corresponds to state transitions. The mapping&lt;br /&gt;l : E 7! P(T) assigns to each edge a set of transitions, such that (M,M0) 2&lt;br /&gt;E , M t! M0 for each t 2 l(E).  &lt;br /&gt;This definition is illustrated by the example shown in Figure 6.7. The workflow&lt;br /&gt;net shown represents a business process for handling claims. The initial&lt;br /&gt;place of that workflow net is called claim, and ready is the final place. The&lt;br /&gt;initial state is (1, 0, 0), where the tuple contains the number of tokens at the&lt;br /&gt;(claim, record, ready) places, in that order.&lt;br /&gt;Note that the state transitions involving the under consideration and ready&lt;br /&gt;places can be achieved by firing either the pay transition or the send letter&lt;br /&gt;transition. Hence l((0, 1, 0), (0, 0, 1)) = {pay, send letter}.&lt;br /&gt;A workflow net with a loop is shown in Figure 6.8. The exclusive or split&lt;br /&gt;transition B is used to decide whether or not to iterate the loop. Figure 6.9&lt;br /&gt;shows the corresponding reachability graph. In this case, the loop in the workflow&lt;br /&gt;net is reflected by a loop in the reachability graph.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-4577398296095006403?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/4577398296095006403/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2010/03/business-process-management-part-2_8912.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/4577398296095006403'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/4577398296095006403'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2010/03/business-process-management-part-2_8912.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter VI Properties Of Business Processes ] ) Sec C -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-6275866946307236531</id><published>2010-03-20T15:17:00.001+05:30</published><updated>2010-03-20T15:19:03.637+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter VI Properties Of Business Processes ] ) Sec B -- By Mathias Weske</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Structural Soundness&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;        In this section, the structure of business process models is investigated, and&lt;br /&gt;an initial soundness criterion is introduced. While the considerations in this&lt;br /&gt;section hold for process models represented in any of the process orchestration&lt;br /&gt;languages introduced above, this section uses Petri nets, in most cases,&lt;br /&gt;workflow nets, to represent these structural errors. The reasons are not only of&lt;br /&gt;historical nature—workflow nets were the first approach for which soundness&lt;br /&gt;was investigated—but also practical: the formal foundation of workflow nets&lt;br /&gt;allows to formally specify and reason about soundness properties.&lt;br /&gt;The type of structural error discussed in this section can be characterized&lt;br /&gt;by dangling transitions or places, i.e., transitions without input places or output&lt;br /&gt;places. Petri net with dangling places and transitions.&lt;br /&gt;Notice that this Petri net is not a workflow net, since there are multiple places&lt;br /&gt;without incoming edges and not all nodes, for instance, t5, are on a path from&lt;br /&gt;i to o.&lt;br /&gt;When a token enters the Petri net in place i, transition t1 is enabled. Note&lt;br /&gt;that there is no way that t4 can ever be enabled. When t2 fires, t5 and t3&lt;br /&gt;are enabled. When t3 terminates, the output place o is reached, signalling&lt;br /&gt;the completion of the case. However, at this point in time, t5 could still be&lt;br /&gt;running! As a consequence, the token at the output place o does not signal the&lt;br /&gt;completion of the case. These types of errors are ruled out by the definition&lt;br /&gt;of workflow nets.&lt;br /&gt;This example motivates the development of correctness criteria for process&lt;br /&gt;models to prevent the modelling errors discussed. The simplest correctness criterion uses the structure of business process models. It is inspired by the&lt;br /&gt;definition of workflow nets and takes advantage of the definition of workflow&lt;br /&gt;nets.&lt;br /&gt;Definition 6.1 A process model is structurally sound if the following conditions&lt;br /&gt;hold:&lt;br /&gt;• There is exactly one initial node, which is the only node without any&lt;br /&gt;incoming edges.&lt;br /&gt;• There is exactly one final node, which is the only node without any outgoing&lt;br /&gt;edges.&lt;br /&gt;• Each node in the process model is on a path from the initial node to the&lt;br /&gt;final node.&lt;br /&gt; &lt;br /&gt;Structural soundness also goes well with the definition of business process&lt;br /&gt;models, which states that business process models consist of related activities.&lt;br /&gt;Structural soundness makes this relationship concrete by defining that each&lt;br /&gt;activity is embedded in the context of the process and that no activities are&lt;br /&gt;independent of other activities of the same business process.&lt;br /&gt;Many business process languages enforce structural soundness, for instance,&lt;br /&gt;event-driven process chains and business process diagrams expressed&lt;br /&gt;in the Business Process Modeling Notation. However, the process designer has&lt;br /&gt;the freedom to use these process languages to design process models that are&lt;br /&gt;structurally sound.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-6275866946307236531?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/6275866946307236531/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2010/03/business-process-management-part-2_20.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/6275866946307236531'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/6275866946307236531'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2010/03/business-process-management-part-2_20.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter VI Properties Of Business Processes ] ) Sec B -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-8943350086048844710</id><published>2010-03-20T15:14:00.002+05:30</published><updated>2010-03-20T15:17:52.175+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter VI Properties Of Business Processes ] ) Sec A -- By Mathias Weske</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Data Dependencies&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;            Application data are an integral part of business processes. Data can be created,&lt;br /&gt;modified, and deleted during the execution of business processes. Since&lt;br /&gt;business processes consist of a set of activities that are related, these activities&lt;br /&gt;operate on an integrated set of application data.&lt;br /&gt;Data in business process models has two aspects, both of which need to&lt;br /&gt;be covered:&lt;br /&gt;• Data that activity instances manipulate by invoking applications or services.&lt;br /&gt;• Data dependencies between process activities.&lt;br /&gt;The former issue is dealt with in the operations subdomain. In service-oriented&lt;br /&gt;systems architectures, for instance, the parameters of service invocations are&lt;br /&gt;specified, so that data can be communicated correctly with software systems&lt;br /&gt;at run time.&lt;br /&gt;At the process level, data dependencies between process activities is typically&lt;br /&gt;described by data flow. An example of data flow in a business process in&lt;br /&gt;the financial sector is given. A credit approval business process contains activities&lt;br /&gt;to enter a credit request, to assess the risks of granting the credit, and&lt;br /&gt;to inform the customer about the decision made by the financial institution.&lt;br /&gt;&lt;br /&gt;        The activities of this process model operate on case data, in particular,&lt;br /&gt;the credit request. The credit request can be represented by a record data&lt;br /&gt;type with fields for the name and address of the credit requester, the amount&lt;br /&gt;requested, and other information, such as the risk related to granting the&lt;br /&gt;credit.&lt;br /&gt;There are data dependencies between the activities mentioned. The Collect&lt;br /&gt;Credit Info activity is the first activity performed. Only when this data&lt;br /&gt;is available, can the risk be assessed in the Assess Risk activity, the final&lt;br /&gt;decision be made(Decide), and the requestor be notified (Notify). Therefore,&lt;br /&gt;the ordering of the activities in the business process is strongly related to the&lt;br /&gt;data dependencies of the activities.&lt;br /&gt;The process model is illustrated , using a graph-based process&lt;br /&gt;language that explicitly represents input and output parameters of activities and data dependencies. Observe that the actual data transfer can be performed&lt;br /&gt;by passing references to data objects or values of data objects, as&lt;br /&gt;described the context of workflow data patterns.&lt;br /&gt;This diagram shows that data dependencies have implications on the ordering&lt;br /&gt;of activities in the process: the Assess Risk activity can be started only&lt;br /&gt;when the credit information is available. Since this data object is provided as&lt;br /&gt;output parameter CreditInfo of the Collect Credit Info activity, this activity&lt;br /&gt;needs to complete before the risk can be assessed, implying an ordering&lt;br /&gt;between these activities.&lt;br /&gt;This example shows that data dependencies between process activities are&lt;br /&gt;reflected by data flow. A data flow edge between an output parameter of one&lt;br /&gt;activity and an input parameter of another activity represents the fact that&lt;br /&gt;the latter activity requires a data value that the former generates. In the&lt;br /&gt;example, the Collect Credit Request activity generates an output parameter&lt;br /&gt;CreditInfo that the Assess Risk activity requires for its start.&lt;br /&gt;If, as assumed so far, output parameter values are only available when the&lt;br /&gt;respective activity terminates, there is a direct implication of data flow on&lt;br /&gt;control flow. This property is known as control flow follows data flow, and it&lt;br /&gt;is explained as follows.&lt;br /&gt;Control flow needs to follow data flow, since otherwise the process instance&lt;br /&gt;would come to halt. This observation is illustrated in an example&lt;br /&gt; where a data dependency from the Assess Risk activity to the&lt;br /&gt;Decide activity is shown, while the control flow constraint exists, for some&lt;br /&gt;reason, in the opposite direction.&lt;br /&gt;As a result, neither of these activities can be started, because control flow&lt;br /&gt;defines that Assess Risk can only start after Decide has completed, and Decide&lt;br /&gt;can only start after Assess Risk has generated the risk factor data value.&lt;br /&gt;Because the risk factor value is only available when the activity terminates,&lt;br /&gt;both activities are stuck in a permanent waiting condition, and a deadlock&lt;br /&gt;situation has occurred. The process model  results from a&lt;br /&gt;modelling mistake, and the control flow follows data flow rule can be used to&lt;br /&gt;detect these kinds of modelling mistakes.&lt;br /&gt;&lt;br /&gt;    These considerations hold only if it is assumed that an activity instance&lt;br /&gt;requires its input parameters at the start. If this constraint is relaxed and&lt;br /&gt;input parameters can be consumed after an activity instance has started,&lt;br /&gt;then in a process with a data flow A ! B, B can actually start before A&lt;br /&gt;terminates. At some point—when the input values are required—B needs to&lt;br /&gt;wait for A to deliver the required data.&lt;br /&gt;This assumption can also be relaxed at the producer side of data. If we&lt;br /&gt;allow activities to generate data while they are running, then the generated&lt;br /&gt;data can be taken by the follow-up activity, so that activities can execute&lt;br /&gt;concurrently, realizing a data value stream between them.&lt;br /&gt;While most workflow management systems assume that input data is available&lt;br /&gt;up front and that only on completion, does an activity instance write&lt;br /&gt;output data values, some approaches, for instance, the BPMN, relax this assumption.&lt;br /&gt;The use of data dependencies for process enactment control will be discussed&lt;br /&gt;in more detail in the context of case handling , where&lt;br /&gt;data dependencies—and not the proce&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-8943350086048844710?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/8943350086048844710/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2010/03/business-process-management-part-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/8943350086048844710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/8943350086048844710'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2010/03/business-process-management-part-2.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter VI Properties Of Business Processes ] ) Sec A -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-7682792768801241659</id><published>2009-12-20T17:28:00.001+05:30</published><updated>2009-12-20T17:30:22.561+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter V Process Choreographies ] ) Sec N -- By Mathias Weske</title><content type='html'>&lt;span style="font-weight: bold;"&gt;    Advanced Control Flow Relating Interactions&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;            In addition to the basic control flow constructs, there are advanced control&lt;br /&gt;flow constructs in Let’s Dance. Several interactions can belong to a composite&lt;br /&gt;interaction. None of the contained interaction instances can become enabled&lt;br /&gt;before the enclosing composite interaction instance has become enabled, and&lt;br /&gt;the composite interaction instance can only complete after all contained interaction&lt;br /&gt;instances have completed or been skipped.&lt;br /&gt;        Interactions can also be guarded, meaning that at the moment an interaction&lt;br /&gt;instance could become enabled, a guard condition must be fulfilled. If this&lt;br /&gt;condition is not fulfilled, the instance is skipped. Finally, repetitions and parallel&lt;br /&gt;branching with an unbounded number of branches are modelled through&lt;br /&gt;repeated interactions. There are four types of repeated interactions, similar&lt;br /&gt;to those in programming languages: while, repeat, for each (sequential), and&lt;br /&gt;for each (concurrent).&lt;br /&gt;“For each” repetitions have an expression attached that determines a collection&lt;br /&gt;over which the repetition is performed. The knowledge about how&lt;br /&gt;many instances are to be created for this interaction might be available at&lt;br /&gt;design time or might be known only at run time.&lt;br /&gt;Repetitions can have stop conditions attached to them. For instance, a&lt;br /&gt;repeated receive interaction should be stopped as soon as answers from ten&lt;br /&gt;participants have arrived.&lt;br /&gt;The expressions attached to guarded and repeated interactions can be&lt;br /&gt;written in plain English, as Let’s Dance is not tied to any specific expression&lt;br /&gt;language. However, it must be defined which actor is going to check whether&lt;br /&gt;a condition evaluates to true or which collection results from a repetition&lt;br /&gt;expression.&lt;br /&gt;        After a buyer has submitted her order to a supplier, the supplier&lt;br /&gt;sends back an order response for every item in the order. After all responses&lt;br /&gt;have been sent, the order cannot be cancelled by the buyer.&lt;br /&gt;This desired semantics of the process choreography is expressed through&lt;br /&gt;the inhibits relationship from the Order Response interaction to the Cancel Order interaction. If a cancellation is issued by the buyer on time, the supplier&lt;br /&gt;can decide whether it can still be cancelled or not.&lt;br /&gt;If cancellation is still possible, the remaining order responses are skipped&lt;br /&gt;and the buyer does not need to pay. In the case where cancellation is not&lt;br /&gt;possible, a corresponding rejection notice is sent to the buyer and the buyer&lt;br /&gt;has to pay for the order. The buyer notifies the supplier through a payment&lt;br /&gt;notice.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-7682792768801241659?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/7682792768801241659/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/12/business-process-management-part-2_6674.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/7682792768801241659'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/7682792768801241659'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/12/business-process-management-part-2_6674.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter V Process Choreographies ] ) Sec N -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-6041349342143445544</id><published>2009-12-20T17:25:00.002+05:30</published><updated>2009-12-20T17:27:55.498+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter V Process Choreographies ] ) Sec M -- By Mathias Weske</title><content type='html'>&lt;span style="font-weight: bold;"&gt;    Basic Control Flow Relating Interactions    &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;            As seen in the milestone example, a precedes relationship between two&lt;br /&gt;interactions means that an instance of the target interaction can occur only&lt;br /&gt;if the instance of the source interaction has already occurred. If in a logistics&lt;br /&gt;environment a delivery acknowledgment message should be sent only after a&lt;br /&gt;delivery notification has been received, a precedes relationship between the&lt;br /&gt;respective elementary interactions can be used to represent this business rule.&lt;br /&gt;        An inhibits relationship indicates that an instance of the target interaction&lt;br /&gt;can occur only if no instance of the source interaction has occurred yet. In&lt;br /&gt;an example involving an order process, an invoice should not be sent after an&lt;br /&gt;order cancellation by the buyer has been received.&lt;br /&gt;        Also, scenarios where two interactions inhibit each other, i.e., an instance&lt;br /&gt;where either one or the other interaction can complete, are very common.&lt;br /&gt;Consider, for instance, a travel agency that either receives a confirmation&lt;br /&gt;message from the customer or a cancellation message from the airline. To&lt;br /&gt;cater to these situations, a specific notational element for vice-versa-inhibits&lt;br /&gt;is introduced.&lt;br /&gt;A weak precedes relationship means that an instance of the target interaction&lt;br /&gt;can occur only after the instance of the source interaction has already&lt;br /&gt;completed or was skipped. Imagine a project management scenario where the&lt;br /&gt;project leader expects status updates from a subcontractor that are merged&lt;br /&gt;into a status report for the employer. However, in special cases the project&lt;br /&gt;leader and the subcontractors can agree that no status update is needed.&lt;br /&gt;    Interaction&lt;br /&gt;instances can be in the states initialized, enabled, completed, and skipped. An&lt;br /&gt;interaction instance becomes skipped if any of the inhibiting instances has&lt;br /&gt;completed.&lt;br /&gt;An interaction instance becomes enabled if there are no precedes or weak&lt;br /&gt;precedes relationships targeting the corresponding interaction or all preceding&lt;br /&gt;instances are completed and all weakly preceding instances have been&lt;br /&gt;completed or were skipped.&lt;br /&gt;An instance must execute, i.e., the actual message exchange occurs, only&lt;br /&gt;if it is enabled. After the message exchange, the instance is in the completed&lt;br /&gt;state&lt;br /&gt;    The conversation starts with the Seller sending an Auction creation request&lt;br /&gt;message to the Auctioning service. The precedes relationship defines that, if&lt;br /&gt;this message arrived, an Account creation request message can be sent to the&lt;br /&gt;Seller. Then, the Seller sends a Registration info message to the Auctioning&lt;br /&gt;service, which responds with an Registration confirmation message.&lt;br /&gt;The weak precedes relationship connecting the last elementary interactions&lt;br /&gt;defines that the Auctioning service can send an Auction creation confirmation&lt;br /&gt;to the Seller if it has either sent a Registration confirmation message before or if the sending of that message was skipped. The latter is used to cater to&lt;br /&gt;situations in which a Seller is already registered at the Auctioning service.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-6041349342143445544?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/6041349342143445544/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/12/business-process-management-part-2_1547.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/6041349342143445544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/6041349342143445544'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/12/business-process-management-part-2_1547.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter V Process Choreographies ] ) Sec M -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-6400623834933040426</id><published>2009-12-20T17:24:00.000+05:30</published><updated>2009-12-20T17:25:11.536+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter V Process Choreographies ] ) Sec L -- By Mathias Weske</title><content type='html'>&lt;span style="font-weight: bold;"&gt;    Modelling Interactions&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                The main focus of Let’s Dance is to capture interactions and their behavioural&lt;br /&gt;dependencies. Elementary interactions are the building blocks by which complex&lt;br /&gt;interaction rules can be defined.&lt;br /&gt;An elementary interaction is a combination of a send activity model and&lt;br /&gt;a receive activity model. An actor reference belonging to a role is given for&lt;br /&gt;every activity model. This reference indicates which activity instances must&lt;br /&gt;be performed by the same participant. Typically, there is only one participant&lt;br /&gt;per role involved in a conversation. In these cases, the actor reference can be&lt;br /&gt;omitted in the diagrams.&lt;br /&gt;            It defines an interaction&lt;br /&gt;between a participant of role Seller and a participant of role Auctioning&lt;br /&gt;Service. It also states that a message of type Auction creation request is sent&lt;br /&gt;during the interaction.&lt;br /&gt;        At the right-hand side in that figure, a conditional elementary interaction&lt;br /&gt;is shown. Conditional elementary interactions are valid only if the condition is&lt;br /&gt;met. In the example shown, the Auctioning Service sends an Account creation&lt;br /&gt;request message to the seller only if the seller is not registered.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-6400623834933040426?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/6400623834933040426/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/12/business-process-management-part-2_3949.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/6400623834933040426'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/6400623834933040426'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/12/business-process-management-part-2_3949.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter V Process Choreographies ] ) Sec L -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-2591748891326176211</id><published>2009-12-20T17:22:00.001+05:30</published><updated>2009-12-20T17:24:08.102+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter V Process Choreographies ] ) Sec K -- By Mathias Weske</title><content type='html'>&lt;span style="font-weight: bold;"&gt;    High-level Choreographies&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;            In the design of high-level choreographies, a structural, role-based view and a&lt;br /&gt;behavioural milestone view can be distinguished. Let’s Dance supports both&lt;br /&gt;views. At the centre of attention are roles that describe the participants of a&lt;br /&gt;process choreography; these roles are depicted as boxes. Typically, there is&lt;br /&gt;at most one participant per role involved in a choreography. If potentially&lt;br /&gt;multiple organizations of the same role participate, overlaid boxes are used to&lt;br /&gt;represent such multiplicity, as shown for role B . Channels represent interaction dependencies between roles; they are depicted&lt;br /&gt;as small circles on lines connecting the roles. In the figure, a channel&lt;br /&gt;between roles A and B is shown. The meaning of such a channel is that participants&lt;br /&gt;of roles that are connected through channels might interact. If on the other hand there is no channel between roles, then the participants cannot&lt;br /&gt;interact • Part-of Relationship: One role is part of the other role. In this case, a&lt;br /&gt;participant of the subrole is part of the participant of the super-role.&lt;br /&gt;For instance, a car manufacturing company can be decomposed into a&lt;br /&gt;number of production sites, warehouses, and management facilities. In&lt;br /&gt;terms of interaction behaviour, interaction models assigned to the superrole&lt;br /&gt;are assigned to one or several of the subroles in a refinement step. For&lt;br /&gt;instance, a second company interacting with the car manufacturer might&lt;br /&gt;in fact only be able to interact with the management division of the car&lt;br /&gt;manufacturer.&lt;br /&gt;• Specialization: A subrole can also be a specialization of the super-role. The&lt;br /&gt;subroles therefore inherit the interaction behaviour of the super-role. If an&lt;br /&gt;interaction is possible with a participant of the super-role, then such an&lt;br /&gt;interaction must also be possible with the participants of all subroles.&lt;br /&gt;As an example of role specialization, consider a super-role “Carrier” and&lt;br /&gt;its specializations “Land Carrier” and “Air Carrier.”&lt;br /&gt;Channels can be refined into message links. While channels are not directed,&lt;br /&gt;message links are directed, because they describe the flow of a message&lt;br /&gt;from a sender to a receiver. Message names need to be specified for every link,&lt;br /&gt;    A channel can be used to represent that a seller interacts with an auctioning&lt;br /&gt;service. Different message links could then refine this channel. In this way,&lt;br /&gt;it could be specified that an auction creation request link from the seller to the&lt;br /&gt;auctioning service is available, as is a creation confirmation link in opposite&lt;br /&gt;direction. The three roles Seller, Bidder, and Auctioning Service are interconnected&lt;br /&gt;through channels. Furthermore, at most one seller, at most one auctioning&lt;br /&gt;service, and potentially many bidders participate in a choreography instance Milestones represent goals and subgoals to be reached during the choreography,&lt;br /&gt;and at the same time serve as synchronization points in the choreography.&lt;br /&gt;Milestones in Let’s Dance are depicted by filled diamonds. For each&lt;br /&gt;milestone, it can be specified which participants should be synchronized when&lt;br /&gt;the milestone is reached.&lt;br /&gt;Different control flow constructs are available to represent the dependencies&lt;br /&gt;between milestones. At this point, we will only explain the semantics of&lt;br /&gt;precedes relationships. The other relationship types will be introduced shortly.&lt;br /&gt;If a milestone m1 precedes a milestone m2, then m1 has to be reached before&lt;br /&gt;m2 can be reached. However, there is no guarantee that m2 will eventually be&lt;br /&gt;reached once m1 has been reached.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-2591748891326176211?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/2591748891326176211/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/12/business-process-management-part-2_2436.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/2591748891326176211'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/2591748891326176211'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/12/business-process-management-part-2_2436.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter V Process Choreographies ] ) Sec K -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-5121973673553608626</id><published>2009-12-20T17:20:00.001+05:30</published><updated>2009-12-20T17:22:07.721+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter V Process Choreographies ] ) Sec J -- By Mathias Weske</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Let’s Dance&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;            Petri nets were used to express process choreographies.&lt;br /&gt;The main idea was to show the behavioural interfaces for the participants&lt;br /&gt;of a process choreography and their interconnection using message flow. As&lt;br /&gt;an alternative to modelling behavioural interfaces, languages for expressing&lt;br /&gt;interaction models directly have been designed. The main difference to modelling&lt;br /&gt;connected behavioural interfaces is that interactions are used as basic&lt;br /&gt;building blocks for choreographies, and behavioural dependencies are defined&lt;br /&gt;between these interactions.&lt;br /&gt;Let’s Dance is a choreography language following this interaction-centric&lt;br /&gt;approach. It is based on control flow patterns and service interaction patterns.&lt;br /&gt;Control flow specification is the main focus, so the language abstracts&lt;br /&gt;from concrete message formats. Let’s Dance comes with two different diagram&lt;br /&gt;types for supporting high-level modelling of process choreographies through&lt;br /&gt;milestones and for modelling detailed collaboration scenarios.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-5121973673553608626?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/5121973673553608626/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/12/business-process-management-part-2_20.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/5121973673553608626'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/5121973673553608626'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/12/business-process-management-part-2_20.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter V Process Choreographies ] ) Sec J -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-2650936537089647539</id><published>2009-12-20T17:18:00.001+05:30</published><updated>2009-12-20T17:20:53.750+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter V Process Choreographies ] ) Sec I -- By Mathias Weske</title><content type='html'>&lt;span style="font-weight: bold;"&gt;    Contingent Requests&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;            In the contingent requests pattern, a participant sends a request to another&lt;br /&gt;participant. If this participant does not answer within a given time, the request&lt;br /&gt;is sent to a second participant. Again, if no response comes back, a third&lt;br /&gt;participant is contacted, and so on. Delayed responses, i.e., responses arriving&lt;br /&gt;after the time-out has already occurred, might or might not be discarded. If this employee does not accept the task on time, it is delegated&lt;br /&gt;to another employee, and so on.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    Atomic Multicast Notification&lt;/span&gt;&lt;br /&gt;       &lt;br /&gt;            The atomic multicast notification pattern is explained as follows. A participant&lt;br /&gt;sends out notifications to several other participants who have to accept the&lt;br /&gt;notification. In specific cases, only one participant is required to accept it;&lt;br /&gt;in other cases, a subset of the participants or all participants are required to&lt;br /&gt;accept it.&lt;br /&gt;Imagine a production scenario with just-in-time delivery of some of the&lt;br /&gt;components while the remaining components are kept in stock. Sometimes,&lt;br /&gt;some of the components are not delivered on time.&lt;br /&gt;In order to avoid getting components out of different warehouses and piling&lt;br /&gt;them in front of the production facilities, the availability of all needed&lt;br /&gt;components is checked. Only if all of them are available are the components&lt;br /&gt;ordered to the production facilities.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    Request With Referral&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;            The request with referral pattern is especially important in service-oriented&lt;br /&gt;environments where a registry is in place that allows binding to services at run&lt;br /&gt;time. But also simple types of dynamic behaviour can be represented by this&lt;br /&gt;pattern, for instance, the transmission of a new collaboration partner during&lt;br /&gt;an interaction. In particular, the request with referral pattern can be used if a participant&lt;br /&gt;A sends a message to another participant B containing a reference to participant&lt;br /&gt;C. Although B does not need to know C in advance, B can now interact&lt;br /&gt;with C. This pattern describes the concept of link passing mobility. As an example of this pattern, consider a customer who buys a set of books&lt;br /&gt;online. The bookstore redirects the customer’s Web browser to the Web page&lt;br /&gt;of an external payment service. Conceptually, this means that the bookstore&lt;br /&gt;refers the payment service to the customer, who can then use the service,&lt;br /&gt;although the customer was not aware about this service beforehand.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    Relayed Request&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;            The relayed request pattern is common in emailing collaboration scenarios.&lt;br /&gt;A participant A sends a request to another participant B who forwards it to&lt;br /&gt;a third participant C who will actually interact with A. However, B always&lt;br /&gt;gets copies of the messages exchanged in order to be able to observe the&lt;br /&gt;conversation. As part of&lt;br /&gt;a quality management program in the company and for legal reasons, all interactions&lt;br /&gt;between the payroll services provider and the employees are being&lt;br /&gt;tracked.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-2650936537089647539?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/2650936537089647539/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/12/business-process-management-part-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/2650936537089647539'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/2650936537089647539'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/12/business-process-management-part-2.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter V Process Choreographies ] ) Sec I -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-1792753545657085187</id><published>2009-11-19T22:19:00.002+05:30</published><updated>2009-11-19T22:27:57.822+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter V Process Choreographies ] ) Sec H -- By Mathias Weske</title><content type='html'>&lt;span style="font-weight: bold;"&gt;    Send&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;            The send pattern represents a one-way interaction between two participants&lt;br /&gt;seen from the perspective of the sender. There are different flavours of this&lt;br /&gt;pattern, considering, for instance, the moment when the sender selects the&lt;br /&gt;receiver: The receiver is known either at design time of the choreography or&lt;br /&gt;only during the execution of a conversation.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    Receive&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;            The receive pattern also describes a one-way interaction between two participants,&lt;br /&gt;but this time seen from the perspective of the receiver. In terms of&lt;br /&gt;message buffering behaviour of the receiver, two cases can be distinguished.&lt;br /&gt;Messages that are not expected are either discarded or stored until a later&lt;br /&gt;point in time, when they can be consumed.The receipt of the message is represented by a start&lt;br /&gt;message event. On occurrence of this event, a process orchestration is started&lt;br /&gt;in the facility management that checks the heating system and tries to find&lt;br /&gt;the source of the problem.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    Send/Receive&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;            In the send/receive pattern, a participant sends a request to another participant&lt;br /&gt;who then returns a response message. Both messages belong to the same conversation. Since there could be several send/receive interaction instances&lt;br /&gt;happening in parallel, corresponding requests and responses need to&lt;br /&gt;be correlated.If, for instance, a procurement department requests quotes for different&lt;br /&gt;items from different suppliers, the different request/response pairs belong to&lt;br /&gt;different conversations. In this situation the procurement department must be&lt;br /&gt;able to tell which quote belongs to which request.&lt;br /&gt;Therefore, correlation information must be placed inside the messages.&lt;br /&gt;For instance, the request could carry a request identifier which is then also&lt;br /&gt;contained inside the response message.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    Racing Incoming Messages&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                Racing incoming messages are common in business-to-business scenarios; this&lt;br /&gt;pattern is described as follows: a participant is waiting for a message to arrive,&lt;br /&gt;but other participants have the chance to send a message. These messages by&lt;br /&gt;different participants “race” with each other. Only the first message arriving&lt;br /&gt;will be processed.&lt;br /&gt;The type of the message sent or the category the sending participant belongs&lt;br /&gt;to can be used to determine how the receiver processes the message.&lt;br /&gt;The remaining messages may be discarded or kept for later consumption.&lt;br /&gt;This aspect is not covered by the racing incoming messages pattern.&lt;br /&gt;&lt;br /&gt;    &lt;span style="font-weight: bold;"&gt;One-To-Many Send&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;            A participant sends out several messages to other participants in parallel. It&lt;br /&gt;might be the case that the list of recipients is already known at design-time of&lt;br /&gt;the choreography or, alternatively, the selection of the recipients takes place&lt;br /&gt;in the course of the conversation&lt;br /&gt;        In the BPMN, this pattern is represented by a multiple instances task&lt;br /&gt;that sends election notices to all voting citizens. In this case, each citizen is&lt;br /&gt;represented by an individual pool.&lt;br /&gt;However, we could have used a single pool and assigned the role citizen to&lt;br /&gt;this pool. In this case, the sending of election notices would be a single send&lt;br /&gt;activity, and the multiplicity would only be introduced by multiple citizen&lt;br /&gt;roles. Since the first alternative captures the one-to-many send pattern more&lt;br /&gt;appropriately, we have chosen this illustration alternative.&lt;br /&gt;   &lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    One-From-Many Receive&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                In the one-from-many receive pattern, messages can be received from many&lt;br /&gt;participants. In particular, one participant waits for messages to arrive from&lt;br /&gt;other participants, and each of these participants can send exactly one message.&lt;br /&gt;Typically, the receiver does not know the number of messages that will&lt;br /&gt;arrive, and stops waiting as soon as a certain number of messages have arrived&lt;br /&gt;or a time-out occurs.&lt;br /&gt;Imagine an auctioning scenario in which the bidders bid by sending a&lt;br /&gt;message directly to the seller. Each bidder can send exactly one message. The&lt;br /&gt;seller accepts these messages until the auction is over, and then decides on&lt;br /&gt;the highest bid.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;        One-To-Many Send/Receive&lt;/span&gt;&lt;br /&gt;   &lt;br /&gt;                    In the one-to-many send/receive pattern, a participant sends out several requests&lt;br /&gt;to different other participants and waits for responses. Typically, not all responses need to be waited for. The requester rather waits for a certain&lt;br /&gt;amount of time or stops waiting as soon as enough responses have arrived.&lt;br /&gt;A travel agency looks for the best offer for a flight on a certain route. The&lt;br /&gt;agent therefore initiates requests and the airlines give their prices and current availability.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;    Multi-Responses&lt;br /&gt;            &lt;/span&gt;&lt;br /&gt;                    In the multiple responses pattern, a participant sends a request to another&lt;br /&gt;participant who sends back multiple messages. An important question in this&lt;br /&gt;scenario is how the requester knows that there are no more messages to be&lt;br /&gt;expected.&lt;br /&gt;One option would be that the messages contain information about whether&lt;br /&gt;there will be more messages or not. Another option could be that the last&lt;br /&gt;message is of a special type. Finally, also a time-out could be used to stop&lt;br /&gt;waiting for further messages.&lt;br /&gt;In a logistics scenario, the shipper sends status messages about the delivery&lt;br /&gt;to the owner of the goods at the end of every day. As soon as the goods have&lt;br /&gt;arrived at their destination a delivery notification is sent.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-1792753545657085187?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/1792753545657085187/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/11/business-process-management-part-2_6071.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/1792753545657085187'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/1792753545657085187'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/11/business-process-management-part-2_6071.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter V Process Choreographies ] ) Sec H -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-5089495519219231416</id><published>2009-11-19T22:17:00.001+05:30</published><updated>2009-11-19T22:19:37.994+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter V Process Choreographies ] ) Sec G -- By Mathias Weske</title><content type='html'>&lt;span style="font-weight: bold;"&gt;    Service Interaction Patterns&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                However, there are several differences between&lt;br /&gt;process orchestrations and process choreographies that need specific consideration:&lt;br /&gt;choreographies are based on message exchange, and potentially many&lt;br /&gt;participants interact in a choreography, while orchestrations are based on&lt;br /&gt;control flow between the activities of a single process performed by a single&lt;br /&gt;organization.&lt;br /&gt;Service interaction patterns aim at filling this gap by proposing small granular&lt;br /&gt;types of interactions that can be combined to process choreographies. As&lt;br /&gt;with control flow patterns for process orchestrations, service interaction patterns&lt;br /&gt;can also be used to benchmark languages for their ability to express&lt;br /&gt;advanced conversations. Service interaction patterns can be classified according&lt;br /&gt;to the following schemes.&lt;br /&gt;• Number of participants involved: Bilateral interactions involve two participants,&lt;br /&gt;whereas multilateral interactions involve more than two participants.&lt;br /&gt;• Number of messages exchanged: Single transmission versus multi-transmission&lt;br /&gt;interactions.&lt;br /&gt;• Variations in message receiver : In case of two-way interactions, round-trip&lt;br /&gt;interaction means that the receiver of the message is necessarily the same&lt;br /&gt;as the sender, whereas routed interaction means that the receiver of the&lt;br /&gt;message in general differs from the sender.&lt;br /&gt;The Business Process Modeling Notation is used to provide graphical representations&lt;br /&gt;of service interaction patterns. Since this notation is not specifically&lt;br /&gt;tailored to the needs of service interaction patterns, the graphical representations&lt;br /&gt;of the patterns are not complete. Together with the textual representation&lt;br /&gt;of the patterns, the service interaction patterns are described properly.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-5089495519219231416?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/5089495519219231416/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/11/business-process-management-part-2_2594.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/5089495519219231416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/5089495519219231416'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/11/business-process-management-part-2_2594.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter V Process Choreographies ] ) Sec G -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-3390292248392259406</id><published>2009-11-19T22:15:00.001+05:30</published><updated>2009-11-19T22:17:24.936+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter V Process Choreographies ] ) Sec F -- By Mathias Weske</title><content type='html'>&lt;span style="font-weight: bold;"&gt;    Process Choreography Implementation&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                After discussing the design of process choreographies, this section looks at the&lt;br /&gt;implementation of choreographies. Behavioural interfaces serve as blueprints&lt;br /&gt;for the internal realization of process orchestrations, because each process orchestration&lt;br /&gt;needs to expose an externally visible behaviour that was specified&lt;br /&gt;as the behavioural interface of the respective participant.&lt;br /&gt;Assume that there is a set of behavioural interfaces compatible with each&lt;br /&gt;other. These interfaces can now be refined to local process orchestrations. In&lt;br /&gt;local process orchestrations, activities can be added or, in some cases, even&lt;br /&gt;reordered, while the observable behaviour has to be preserved.&lt;br /&gt;The relationship between the behavioural interface and the local process&lt;br /&gt;orchestration needs to be investigated, so that the correctness of the overall&lt;br /&gt;collaboration can be achieved. Each local process orchestration needs to be&lt;br /&gt;consistent with the respective behavioural interface definition. This section&lt;br /&gt;will introduce consistency criteria using a business-to-business collaboration&lt;br /&gt;scenario.&lt;br /&gt;Figure 5.16 provides an overview of the participants in that scenario: a&lt;br /&gt;Buyer—for instance, a car manufacturer—uses reverse auctioning for procuring&lt;br /&gt;specific components. To ease the selection of an appropriate Supplier and&lt;br /&gt;to manage the auction, the buyer outsources these activities to a dedicated&lt;br /&gt;Auctioning Service. A Shipper is selected to transport the ordered goods from&lt;br /&gt;the supplier to the buyer.&lt;br /&gt;As in the example discussed above, the auction is not public, so that&lt;br /&gt;only registered parties can participate. Therefore, suppliers need to request&lt;br /&gt;permission to participate in the auction beforehand. Once the auction has&lt;br /&gt;started, suppliers can place their bids. When the auction completes, the buyer&lt;br /&gt;selects a supplier according to the lowest bid or according to some other&lt;br /&gt;evaluation criterion. Finally, the goods are shipped and payment is processed.&lt;br /&gt;In this sample scenario, there are two alternatives for selecting a shipper:&lt;br /&gt;either the selected supplier determines the shipper that would deliver the&lt;br /&gt;goods to the buyer, or the supplier provides a list of shippers with different&lt;br /&gt;transportation costs and quality levels, from which the buyer can choose a&lt;br /&gt;shipper.&lt;br /&gt;    There can be several suppliers, shippers and—in&lt;br /&gt;a generic setting—multiple buyers and auctioning services. In this figure, each&lt;br /&gt;participant role is specified by a set of its behavioural interfaces, as discussed&lt;br /&gt;in the previous section. These interfaces need to be compatible with each&lt;br /&gt;other, so that the collaboration will be successful.&lt;br /&gt;&lt;br /&gt;        Each participant role can be potentially played by several process participants.&lt;br /&gt;Each of these process participants develops a process orchestration.&lt;br /&gt;These process orchestrations need to be consistent with the behavioural interface&lt;br /&gt;of the participant role. For instance, the process orchestration of supplier&lt;br /&gt;Su1 needs to be consistent with the behavioural interface (or with the behavioural&lt;br /&gt;interfaces) of the Supplier role.&lt;br /&gt;Using consistency rules, each participant can check locally whether its local&lt;br /&gt;business process orchestration fits its behavioural interface. If the behavioural&lt;br /&gt;interfaces are compatible with each other and if, in addition, for each&lt;br /&gt;participant, the internal business process orchestration is consistent with its&lt;br /&gt;behavioural interface, then a successful collaboration between the process participants&lt;br /&gt;is realized—additional checks involving the internal business process&lt;br /&gt;orchestrations of the participants are then not required.&lt;br /&gt;The behavioural interface of a participant role leaves room for multiple&lt;br /&gt;process orchestrations, i.e., there are multiple process orchestrations consistent&lt;br /&gt;with a given behavioural interface.&lt;br /&gt;In order to illustrate this, Figure presents three process orchestrations&lt;br /&gt;for the buyer role in the reverse auctioning example, namely B1, B2, and B3.&lt;br /&gt;While the structure of the process orchestrations is at first sight similar to the&lt;br /&gt;behavioural interface, there are subtle differences between them.&lt;br /&gt;First of all, the process orchestrations for participants B1 and B3 contain&lt;br /&gt;additional internal activities. In B1, the buyer maintains a blacklist, consisting&lt;br /&gt;of suppliers that have not been recommended for acceptance by an auctioning&lt;br /&gt;service.&lt;br /&gt;In B3, the received recommendation is stored in any case, represented by&lt;br /&gt;the Store recommendation transition. Before the buyer decides whether to accept a supplier, the historical data is consulted, represented by the Look up&lt;br /&gt;historical data transition.&lt;br /&gt;Buyer B1 has the same set of communication places as the behavioural&lt;br /&gt;interface of the Buyer role in Figure  but different control flow. B2 and&lt;br /&gt;B3 have different communication places than the behavioural interface. The&lt;br /&gt;question now is whether any of these implementations is consistent with the&lt;br /&gt;behavioural interface of the Buyer role.&lt;br /&gt;The answer to this question depends on the consistency notion in place.&lt;br /&gt;By common sense we can argue that all three local process orchestrations&lt;br /&gt;are consistent with the behavioural interface of the buyer: B1 stores negative&lt;br /&gt;recommendations in a blacklist, and it always follows the received recommendations&lt;br /&gt;sent by the auctioning service. This realizes a behaviour that is&lt;br /&gt;consistent with the interface, although not all possibilities of the buyer interface&lt;br /&gt;are realized: B1 does not decide about accepting a seller on its own but&lt;br /&gt;always follows the recommendation received.&lt;br /&gt;        Buyer B2 accepts every seller, so that the recommendations received are&lt;br /&gt;discarded. We can argue that the behaviour of B2 is consistent with the buyer&lt;br /&gt;interface, although not all behaviours are possible, i.e., B2 cannot reject a&lt;br /&gt;seller.&lt;br /&gt;B3 stores the recommendation received and makes an independent decision&lt;br /&gt;about accepting a seller. We can argue that this behaviour is also consistent&lt;br /&gt;with the buyer interface, because B3 can communicate as specified, at least&lt;br /&gt;regarding recommendation and decision messages. However, B3 is not able to&lt;br /&gt;receive a notification message. If we assume that this message is not essential&lt;br /&gt;then also B3 is a valid implementation of the buyer interface.&lt;br /&gt;This discussion shows that the decision on whether an implementation is&lt;br /&gt;consistent with a behavioural interface is subject to consistency criteria. For&lt;br /&gt;details on consistency in process choreographies, the reader is referred to the&lt;br /&gt;bibliographical notes of this chapter.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-3390292248392259406?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/3390292248392259406/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/11/business-process-management-part-2_325.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/3390292248392259406'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/3390292248392259406'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/11/business-process-management-part-2_325.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter V Process Choreographies ] ) Sec F -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-2360681794658129304</id><published>2009-11-19T22:13:00.000+05:30</published><updated>2009-11-19T22:15:41.616+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter V Process Choreographies ] ) Sec E -- By Mathias Weske</title><content type='html'>&lt;span style="font-weight: bold;"&gt;    Compatibility&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                Process choreography design needs to ensure that the process orchestrations of&lt;br /&gt;the participants play together well in the overall collaboration. Compatibility&lt;br /&gt;is the ability of a set of participants to interact successfully according to a&lt;br /&gt;given process choreography.&lt;br /&gt;Unsuccessful interaction behaviour could arise, if, for instance, different&lt;br /&gt;message formats were used in a collaboration and one participant does not&lt;br /&gt;understand the content of a message sent by another participant.&lt;br /&gt;Another source of incompatibility—which this section will focus on—is due&lt;br /&gt;to wrong and misaligned interactions. If, for instance, a participant expects&lt;br /&gt;a notification at some point in its process before it can proceed, and none&lt;br /&gt;of the other participants sends such a notification message, then the process&lt;br /&gt;cannot continue, so a deadlock situation emerges. Compatibility of interacting&lt;br /&gt;processes aims at avoiding this type of undesired behaviour due to erroneous&lt;br /&gt;interactions between process orchestrations.&lt;br /&gt;        The bidding example illustrates the different aspects of compatibility introduced&lt;br /&gt;in this section. Figure shows an auctioning scenario with three&lt;br /&gt;participants involved. A potential bidder must be accepted for participation&lt;br /&gt;before she can place her bid. Therefore, the bidder first needs to send a Participation&lt;br /&gt;request to the auctioning service.&lt;br /&gt;As a response, the auctioning service can send an Acceptance notification&lt;br /&gt;or a Rejection notification. In some cases, the seller is requested to make the&lt;br /&gt;final decision on whether a bidder can be accepted. In order to perform this interaction, the auctioning service forwards the request of the bidder to the&lt;br /&gt;seller. It might also give a recommendation for accepting the bidder. The seller&lt;br /&gt;can send a notification about his decision back to the auctioning service.&lt;br /&gt;The auctioning scenario depicted in Figure 5.10 represents the participants&lt;br /&gt;by pools that interact by sending and receiving messages. However, the figure&lt;br /&gt;does not show any behavioural dependencies between the different message&lt;br /&gt;exchanges. Nevertheless, compatibility can be investigated based on this highlevel&lt;br /&gt;representation of the scenario.&lt;br /&gt;Different types of structural compatibility are introduced to describe structural&lt;br /&gt;properties of process choreographies. A process choreography is structurally&lt;br /&gt;compatible if messages that can be sent by a participant correspond to&lt;br /&gt;messages that other participants can receive. This property makes sure that&lt;br /&gt;all messages that are sent can actually be received by participants. However,&lt;br /&gt;it does not rule out that participants can receive additional messages that&lt;br /&gt;none of the partners can send.&lt;br /&gt;Strong structural compatibility of a process choreography is given if, for&lt;br /&gt;every message that can be sent there is a participant who can receive it, and&lt;br /&gt;if for every message that can be received, there is a participant who can send&lt;br /&gt;it. Because each message flow connects exactly two participants&lt;br /&gt;strong structural compatibility is satisfied in this example.&lt;br /&gt;        Weak structural compatibility is given if all messages sent by participants&lt;br /&gt;can be received by other participants. However, it is not required that all&lt;br /&gt;messages that participants can ever receive will actually be sent by other&lt;br /&gt;participants.&lt;br /&gt;Since the individual process orchestrations have in most cases been developed&lt;br /&gt;independently of each other, a complete structural match between&lt;br /&gt;participants cannot always be achieved. The occurrence of weak structural&lt;br /&gt;compatibility is more likely. In this case, all messages sent can be received,&lt;br /&gt;but it is not required that for every message that can be received there be a&lt;br /&gt;participant who can actually send such a message.&lt;br /&gt;        The rationale behind this definition is that the interaction can take place,&lt;br /&gt;even though some participants are able to receive additional messages. It is&lt;br /&gt;assumed that these messages are not essential for the overall process choreography.&lt;br /&gt;This will be discussed in more detail below.&lt;br /&gt;In an alternative setting, a new auctioning service, for example, always&lt;br /&gt;forwards the request by the bidder to the seller without providing recommendations.&lt;br /&gt;In this case the seller will never receive any recommendation.&lt;br /&gt;However, if these recommendations are not essential for the seller process orchestration,&lt;br /&gt;as the example indicates, the cooperation can still be successful.&lt;br /&gt;This example is shown in Figure 5.11, disregarding the bidder, who remains&lt;br /&gt;unchanged.&lt;br /&gt;Unlike structural compatibility, behavioural compatibility considers behavioural&lt;br /&gt;dependencies, i.e., control flow between interaction instances of a&lt;br /&gt;conversation. Therefore, the process orchestrations of the interacting partners&lt;br /&gt;are interconnected, and the resulting process structure is analyzed. Such&lt;br /&gt;analysis requires a formal, unambiguous representation.&lt;br /&gt;In an approach for checking behavioural compatibility by Martens (2003c),&lt;br /&gt;process orchestrations are represented by a specific class of Petri nets, namely&lt;br /&gt;workflow modules. Workflow modules are basically workflow nets with additional&lt;br /&gt;communication places that are used to represent message flow between&lt;br /&gt;participants.&lt;br /&gt;Whenever a participant sends a message, the process orchestration of that&lt;br /&gt;partner features a transition with an output communication place that can&lt;br /&gt;hold messages sent. At the receiver side, the workflow module requires a&lt;br /&gt;matching input communication place. This place is an input place of the&lt;br /&gt;transition that receives the message.&lt;br /&gt;Each process orchestration is represented by a workflow module that defines&lt;br /&gt;its internal behaviour and its external communication behaviour. Workflow&lt;br /&gt;modules are defined as follows:&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-2360681794658129304?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/2360681794658129304/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/11/business-process-management-part-2_4520.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/2360681794658129304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/2360681794658129304'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/11/business-process-management-part-2_4520.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter V Process Choreographies ] ) Sec E -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-1988708036878402894</id><published>2009-11-19T22:12:00.001+05:30</published><updated>2009-11-19T22:13:36.103+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter V Process Choreographies ] ) Sec D -- By Mathias Weske</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Collaboration Scenarios&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                Having identified the collaboration milestones, collaboration scenarios can be&lt;br /&gt;addressed, as part of the choreography definition phase. In this phase, the&lt;br /&gt;interactions needed to proceed from one milestone to another are specified.&lt;br /&gt;One or several collaboration scenarios show the interactions and their dependencies&lt;br /&gt;that need to occur between two milestones. To this end, interactions&lt;br /&gt;between process participants serve as the building blocks for the resulting&lt;br /&gt;collaboration scenarios.&lt;br /&gt;        Scenarios should be kept small, as it is easier to reach agreement on less&lt;br /&gt;complex interaction behaviour. Additional scenario models might be introduced&lt;br /&gt;to deal with special cases and exceptions.&lt;br /&gt;        An Auction creation&lt;br /&gt;request initiates the conversation and, if not registered with the auctioning&lt;br /&gt;service yet, the seller needs to be registered. Once the Auction creation confirmation&lt;br /&gt;message is received by the seller, the Auction is set up milestone is&lt;br /&gt;reached.&lt;br /&gt;Notice that the Auction is set up milestone is the final milestone in this collaboration&lt;br /&gt;scenario. Therefore, it is drawn in bold in Figure 5.8. However, this&lt;br /&gt;milestone is an intermediate milestone in the high-level behavioural model, so&lt;br /&gt;that it is drawn with a double border in Figure 5.6.&lt;br /&gt;This example uses control flow patterns to express the relationships between&lt;br /&gt;the interaction models. To this end, the interaction models between&lt;br /&gt;participants can be represented as a specific kind of process, in which the&lt;br /&gt;building blocks are interaction models, rather than business process activities,&lt;br /&gt;as in process orchestrations.&lt;br /&gt;Although scenario models define control flow between interactions, the&lt;br /&gt;concrete message structures have not been addressed yet. Data interoperability&lt;br /&gt;is an important aspect in process choreography projects. Therefore, data&lt;br /&gt;models including possible data transformation rules need to be added. Once&lt;br /&gt;these aspects are defined in sufficient detail, all artefacts are aggregated in&lt;br /&gt;the final process choreography.&lt;br /&gt;While the collaboration scenario depicted in Figure shows the milestones&lt;br /&gt;and the resulting interactions, as well as their dependencies, the interfaces&lt;br /&gt;of the individual participants need to be specified; these specifications&lt;br /&gt;are called behavioural interfaces. A behavioural interface covers the individual&lt;br /&gt;view of one specific participant in the process choreography; the internal&lt;br /&gt;aspects of the own process orchestration, as well as the interactions involving&lt;br /&gt;only other participants, are disregarded.&lt;br /&gt;        Behavioural interfaces consider parts of process orchestrations that exhibit externally visible behaviour, for instance, communication activities&lt;br /&gt;and events that represent the sending or receiving of a message.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-1988708036878402894?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/1988708036878402894/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/11/business-process-management-part-2_19.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/1988708036878402894'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/1988708036878402894'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/11/business-process-management-part-2_19.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter V Process Choreographies ] ) Sec D -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-8955366646752115046</id><published>2009-11-19T22:10:00.002+05:30</published><updated>2009-11-19T22:12:23.268+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter V Process Choreographies ] ) Sec C -- By Mathias Weske</title><content type='html'>&lt;span style="font-weight: bold;"&gt;    Process Choreography Design&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;               The design of process choreographies involves a series of activities. In each&lt;br /&gt;of these activities, artefacts are developed. These activities are described as&lt;br /&gt;follows:&lt;br /&gt;1. High-level Structure Design: In high-level choreography design, the participant&lt;br /&gt;roles as well as their communication structures are identified. High level structure design is conducted during the Participant identification&lt;br /&gt;phase.&lt;br /&gt;2. High-level Behavioural Design: High-level behavioural models specify the&lt;br /&gt;milestones of the collaboration and the order in which the milestones&lt;br /&gt;are reached. High-level behavioural design is done during the milestone&lt;br /&gt;definition phase.&lt;br /&gt;3. Collaboration Scenarios: High-level choreographies are refined by introducing&lt;br /&gt;dedicated collaboration scenarios that relate the reaching of milestones&lt;br /&gt;to the communication between process participants. Collaboration&lt;br /&gt;scenarios are developed during the choreography definition phase, based&lt;br /&gt;on the scenarios informally specified during scenario modelling.&lt;br /&gt;4. Behavioural Interfaces: From these collaboration scenarios, for each participant&lt;br /&gt;role, a behavioural interface is derived.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    High-Level Design&lt;/span&gt;&lt;br /&gt;     &lt;br /&gt;           High-level process choreography design involves structure design and behaviour&lt;br /&gt;design. In high-level structure design, participant roles of the choreography&lt;br /&gt;are defined, as part of the participant identification phase. Figure 5.5&lt;br /&gt;shows a high-level structure diagram for participants involved in a bidding&lt;br /&gt;scenario. This diagram identifies a seller, an auctioning service, and multiple&lt;br /&gt;bidders as participants. It also shows that these participants are pairwise interconnected.&lt;br /&gt;Therefore, any participant can interact directly with any other.&lt;br /&gt;       High-level behaviour design uses milestones that are achieved during the&lt;br /&gt;collaboration; it is therefore part of the milestone definition phase. Each milestone&lt;br /&gt;represents a state in the overall collaboration that has a business meaning,&lt;br /&gt;represented by some business value. Milestones correspond to subgoals&lt;br /&gt;reached during the collaboration on the way to reaching its ultimate goal.&lt;br /&gt;For instance, the ultimate goal in the bidding scenario is that the offered&lt;br /&gt;goods are sold, paid for, and delivered to the bidder with the highest bid. Several&lt;br /&gt;intermediate steps can be distinguished: the initial setup of the auction,&lt;br /&gt;the entry of potential bidders into the auction, the actual bidding process,&lt;br /&gt;and the delivery and payment.&lt;br /&gt;       Each milestone can be identified by an expression that describes the state&lt;br /&gt;reached in that milestone. The milestones of (a part of) the bidding scenario&lt;br /&gt;are depicted in Figure 5.6, where expressions like Auction is set up and&lt;br /&gt;Bidding phase is over are used. These expressions indicate states during the&lt;br /&gt;collaboration that have a business meaning.&lt;br /&gt;In that figure, milestones are defined by circles, where the initial milestone&lt;br /&gt;has a single border, the intermediate milestones have double borders, and the&lt;br /&gt;ultimate goal milestone has a bold border. This notation follows the BPMN,&lt;br /&gt;where start events, intermediate events, and end events are drawn in the same&lt;br /&gt;manner. Mapping milestones to events is valid, because reaching a milestone&lt;br /&gt;effectively realizes an event. For instance, the completion of the bidding phase&lt;br /&gt;can be represented by an event Bidding phase is over.&lt;br /&gt;        Milestones have dependencies with respect to other milestones. For instance,&lt;br /&gt;the auction has to be set up before the bidding process can be finished.&lt;br /&gt;During the bidding scenario, first the auction is set up, defining the&lt;br /&gt;first milestone, Auction is set up. The next milestone, Bidding phase is over, is&lt;br /&gt;reached when the bidding phase completes. Then there is an and split gateway,&lt;br /&gt;so that the next milestones Goods are delivered and Payment is completed,&lt;br /&gt;can be reached concurrently. If both milestones are reached, the auction can&lt;br /&gt;complete, reaching the final milestone, Auction has finished successfully.&lt;br /&gt;It might also happen that a milestone is not reached in a certain conversation.&lt;br /&gt;This situation occurs in the bidding scenario, for instance, if no single&lt;br /&gt;bid is placed during the auction. In this case, delivery and payment cannot&lt;br /&gt;occur, and the conversation ends without the final goal being reached. This&lt;br /&gt;negative outcome can be modelled by introducing new milestones, reflecting&lt;br /&gt;the positive and negative outcome of the bidding phase, respectively.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-8955366646752115046?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/8955366646752115046/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/11/business-process-management-part-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/8955366646752115046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/8955366646752115046'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/11/business-process-management-part-2.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter V Process Choreographies ] ) Sec C -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-2406939574815385755</id><published>2009-10-22T21:55:00.001+05:30</published><updated>2009-10-22T21:57:18.785+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter V Process Choreographies ] ) Sec B -- By Mathias Weske</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Development Phases&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                    This section introduces the development of process choreographies, guided by&lt;br /&gt;phases. The main goal of this section is to provide an understanding of the&lt;br /&gt;concepts and artefacts involved in the design of process choreographies, rather&lt;br /&gt;than on providing a reference methodology for choreography design These phases are organized into design phases and&lt;br /&gt;implementation phases, shown in the upper and lower part of that figure,&lt;br /&gt;respectively. There are three associated roles that represent the stakeholders&lt;br /&gt;involved in choreography design and implementation. Based on the discussion&lt;br /&gt;of these roles in Section 1.2, their specific responsibilities in the context of&lt;br /&gt;process choreographies are highlighted.&lt;br /&gt;Business engineers are mainly involved in the choreography design phases,&lt;br /&gt;including scenario modelling, domain scoping, milestone definition, and participant&lt;br /&gt;identification. Business engineers are responsible for business-related&lt;br /&gt;aspects of the process choreography; they need to make sure that the collaboration&lt;br /&gt;contributes to the goals of the enterprise, similarly to organizational&lt;br /&gt;business processes.&lt;br /&gt;        System architects are responsible for the architectural aspects of the implemented&lt;br /&gt;process choreography. This means that they are&lt;br /&gt;involved in the design of process choreographies as well as in their implementation.&lt;br /&gt;In particular, they are involved in the specification of the behavioural&lt;br /&gt;interfaces, discussed later in this chapter.&lt;br /&gt;Once the process choreography design is completed, developers are responsible&lt;br /&gt;for realizing the process orchestrations in a way that the overall&lt;br /&gt;business-to-business collaboration as specified in the process choreography is&lt;br /&gt;realized. Behavioural interfaces are important artefacts for designing the individual&lt;br /&gt;process orchestrations.&lt;br /&gt;        Based on this discussion of the stakeholders in process choreography design&lt;br /&gt;and implementation, the phases are sketched.&lt;br /&gt;Scenario modelling is at the heart of choreography design: scenarios describe&lt;br /&gt;the overall setting and goals of the process choreography. They are also&lt;br /&gt;useful for integrating the results of the other design phases. To model a particular&lt;br /&gt;scenario, a domain in which the cooperation will take place needs to&lt;br /&gt;be specified. This is performed during the domain scoping phase by business&lt;br /&gt;engineers.&lt;br /&gt;Formal notations are not required in scenario modelling and domain scoping,&lt;br /&gt;so that the scenario and the domain can be described in a language that&lt;br /&gt;allows expressing the relevant concepts. Depending on the specific setting of&lt;br /&gt;the project, plain English text enriched with informally specified graphical&lt;br /&gt;diagrams can be used.&lt;br /&gt;        The participant identification phase is devoted to defining different roles&lt;br /&gt;of choreography participants. There are two options for doing this. These&lt;br /&gt;roles are specified in a way that allows for the selecting of concrete process&lt;br /&gt;participants on the basis of their properties as laid out in the participant roles.&lt;br /&gt;In the context of process choreographies, the term process participant&lt;br /&gt;refers to an organization, rather than to an individual. For instance, the role shipper can be played by multiple shipping companies, all of which are appropriate&lt;br /&gt;for participation in the process choreography.&lt;br /&gt;In the milestone definition phase, the participants define certain states of&lt;br /&gt;the choreography in which the cooperation has achieved certain results, typically&lt;br /&gt;characterized by intermediate products. These states are called milestones.&lt;br /&gt;Milestones and their ordering describe behavioural aspects of the&lt;br /&gt;choreography from a high level of abstraction.&lt;br /&gt;In the message identification phase, the interactions in the scenario are&lt;br /&gt;used to identify and design messages that realize the various interactions. This&lt;br /&gt;phase has business aspects as well as technical aspects; it is therefore located&lt;br /&gt;on the border of the design and implementation of process choreographies.&lt;br /&gt;The design aspects include the business content of the messages, while the&lt;br /&gt;implementation aspects include the technical realization of these messages&lt;br /&gt;and concrete message formats.&lt;br /&gt;Finally, the choreography definition phase combines the message identification&lt;br /&gt;and the milestone definition phases of the modelled scenario. The&lt;br /&gt;result of this phase is a detailed specification of the interactions between the&lt;br /&gt;participants, the messages to realize the interactions, and the milestones that&lt;br /&gt;are reached during the resulting conversation in the instance layer.&lt;br /&gt;The choreography definition phase, just like the message identification&lt;br /&gt;phase, includes business aspects as well as technical aspects. Unsuccessful&lt;br /&gt;interaction behaviour would arise if, for instance, message formats were used&lt;br /&gt;that one or more participants would not understand. To avoid this problem,&lt;br /&gt;it is assumed that message formats as well as the semantics of the messages&lt;br /&gt;are agreed upon by the participants.&lt;br /&gt;Domain standards, like the ones mentioned above, are in place to provide&lt;br /&gt;a common terminology, and, thereby, an understanding of the concepts&lt;br /&gt;used. These standards are enhanced with technical information, so that data&lt;br /&gt;structures and message formats are available. Business engineers, system architects,&lt;br /&gt;and developers participate in choreography definition and message&lt;br /&gt;identification.&lt;br /&gt;In the lower part of Figure 5.4, the phases during implementation of&lt;br /&gt;process choreographies are shown. Based on the choreography definition, behavioural&lt;br /&gt;interfaces of all roles in the process choreography are defined. Behavioural&lt;br /&gt;interfaces serve as blueprints for the design of the individual process&lt;br /&gt;orchestrations realized by the participants of the process choreography.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-2406939574815385755?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/2406939574815385755/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/10/business-process-management-part-2_4068.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/2406939574815385755'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/2406939574815385755'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/10/business-process-management-part-2_4068.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter V Process Choreographies ] ) Sec B -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-8696652789200976632</id><published>2009-10-22T21:53:00.001+05:30</published><updated>2009-10-22T21:55:47.596+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter V Process Choreographies ] ) Sec A -- By Mathias Weske</title><content type='html'>&lt;span style="font-weight: bold;"&gt;    Motivation and Terminology&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                    In today’s business scenarios, companies increasingly join forces to combine&lt;br /&gt;their services and products to provide added-value products to the market.&lt;br /&gt;These products are typically realized by business processes, which in many&lt;br /&gt;cases take advantage of the existing software infrastructures of the participating&lt;br /&gt;companies.&lt;br /&gt;Because business-to-business collaborations are quite complex, and any&lt;br /&gt;failure in the collaboration might have an immediate effect on the operational&lt;br /&gt;business of the company, the cooperation between companies should be designed&lt;br /&gt;very carefully. Process choreographies can be used for this endeavour.&lt;br /&gt;The requirements of process choreography development depend on the&lt;br /&gt;number of interacting partners and the desired level of automation. In business&lt;br /&gt;environments, where the cooperation of business partners is realized through&lt;br /&gt;traditional means like fax messages being sent and read and understood by&lt;br /&gt;humans, where humans can pick up the phone and settle any ambiguities,&lt;br /&gt;detailed and formal process choreographies are not essential.&lt;br /&gt;However, if the cooperation is to be realized—at least in part—by information&lt;br /&gt;systems, so that a high level of automation is achieved, there need&lt;br /&gt;to be unambiguous models that specify in detail the nature of the collaboration&lt;br /&gt;of business partners in the context of a process choreography. These&lt;br /&gt;considerations are illustrated by an example.&lt;br /&gt;Consider a bidding scenario in which the owner of a car uses an auctioning&lt;br /&gt;service to sell his car to the highest bidder. Potentially, thousands of people&lt;br /&gt;can participate in the auction and place their bids. Such scenarios require&lt;br /&gt;agreement on how the participants need to interact with each other in order&lt;br /&gt;to avoid problems that could appear as the result of wrong interaction.&lt;br /&gt;To illustrate the problems that could arise from erroneous interaction,&lt;br /&gt;consider a collaboration involving process orchestrations run by two companies.&lt;br /&gt;        The first activity to be performed by Company 1 is receive activity A1.&lt;br /&gt;This activity waits to receive a message sent by activity B2. Assuming that&lt;br /&gt;communication is synchronous, i.e., the receive activity A1 is blocking, the&lt;br /&gt;process orchestration run by Company 1 cannot proceed.&lt;br /&gt;        Analogously, Company 2 waits in activity A2 to receive a message from&lt;br /&gt;activity C1 to be sent by Company 1. As a result, both process orchestrations&lt;br /&gt;cannot proceed: they are stuck in a permanent deadlock situation. To avoid&lt;br /&gt;these kinds of problems, the partners involved in a process choreography need&lt;br /&gt;to agree on the process choreography.&lt;br /&gt;        The behaviours are valid because each&lt;br /&gt;process instance will perform a set of activity instances before it completes.&lt;br /&gt;Deadlock situations, infinite loops, and other types of undesired behaviour&lt;br /&gt;cannot appear.&lt;br /&gt;        The problem encountered is due to links between send and receive activities&lt;br /&gt;in the process orchestrations. As the example illustrates, the viewpoint of&lt;br /&gt;an individual process orchestration does not suffice for reasoning about the&lt;br /&gt;interaction between process orchestrations; a global view on the interactions&lt;br /&gt;between process orchestrations is required.&lt;br /&gt;        At the metamodel level, the Process Choreography Metamodel is&lt;br /&gt;shown which provides the concepts to express Process Choreographies at the&lt;br /&gt;model level.&lt;br /&gt;Concrete instances of process choreographies are called Process Conversations,&lt;br /&gt;which appear at the instance level. A Process Choreography Language&lt;br /&gt;provides constructs to express process choreographies based on a process&lt;br /&gt;choreography metamodel.&lt;br /&gt;        Each interaction model is associated with two objects of the class Communication&lt;br /&gt;Activity Model. Communication activity models are activity models&lt;br /&gt;in process orchestrations that exhibit a communication behaviour by sending or receiving messages. For the time being we focus on simple interactions&lt;br /&gt;involving two activities.&lt;br /&gt;As with process orchestrations, we can distinguish between models and&lt;br /&gt;instances. The term Process Conversation refers to the concrete messages that are exchanged&lt;br /&gt;as specified in a given process choreography. Therefore, process choreographies&lt;br /&gt;serve as conversation models. Each process conversation consists of&lt;br /&gt;a set of Interaction Instances, each of which is the concrete realization of a&lt;br /&gt;message exchange as specified by the associated interaction model. Each interaction&lt;br /&gt;instance is associated with Communication Activity Instances, which&lt;br /&gt;are the concrete activity instances that send and receive messages.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-8696652789200976632?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/8696652789200976632/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/10/business-process-management-part-2_22.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/8696652789200976632'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/8696652789200976632'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/10/business-process-management-part-2_22.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter V Process Choreographies ] ) Sec A -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-3714720772434561182</id><published>2009-10-15T17:29:00.002+05:30</published><updated>2009-10-15T17:33:02.560+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter IV Process Orchestrations ] ) Sec Z -- By Mathias Weske</title><content type='html'>&lt;span style="font-weight: bold;"&gt;            Business Process Diagrams&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                 The notational elements in business process diagrams are divided into four&lt;br /&gt;basic categories, each of which consists of a set of elements.&lt;br /&gt;Flow objects are the building blocks of business processes; they include&lt;br /&gt;events, activities, and gateways. The occurrence of states in the real world that are relevant for business processes are represented by events. Activities&lt;br /&gt;represent work performed during business processes. Gateways are used to&lt;br /&gt;represent the split and join behaviour of the flow of control between activities,&lt;br /&gt;events, and gateways.&lt;br /&gt;Organizational aspects are represented in business process diagrams by&lt;br /&gt;swimlanes. Swimlanes are restricted to a two-level hierarchy: pools and lanes.&lt;br /&gt;Pools represent organizations that participate in the interaction of multiple&lt;br /&gt;business processes, each of which is enacted by one organization. Lanes represent&lt;br /&gt;organizational entities such as departments within a participating organization.&lt;br /&gt;By drawing flow objects in swimlanes, the organizational entity&lt;br /&gt;responsible for performing the specific objects can be represented graphically.&lt;br /&gt;Artefacts are used to show additional information about a business process&lt;br /&gt;that is “not directly relevant for sequence flow or message flow of the process”,&lt;br /&gt;as the standard mentions. Data objects, groups, and annotations are supported&lt;br /&gt;as artefacts. Each artefact can be associated with flow elements. Artefacts&lt;br /&gt;serve only information purposes. The process flow is not influenced by&lt;br /&gt;artefacts.&lt;br /&gt;Data objects are represented simply by a name. The main purpose of data&lt;br /&gt;object artefacts is documentation of the process. Using directed association&lt;br /&gt;arcs, the modeller can represent the fact that a data object is used (or created/&lt;br /&gt;modified) by an activity in the process. Paper documents and electronic&lt;br /&gt;documents, as well as information on any type of medium; can be represented&lt;br /&gt;by data objects.&lt;br /&gt;Text annotations are used to document certain aspects of the business&lt;br /&gt;process in textual form. The text is graphically associated with the object&lt;br /&gt;in the business process diagram that the text explains. Group objects are&lt;br /&gt;artefacts that are used to group elements of a process. Groups do not have a&lt;br /&gt;formal meaning; they just serve documentation purposes. Groups may span&lt;br /&gt;lanes and even pools.&lt;br /&gt;Connecting objects connect flow objects, swimlanes, or artefacts. Sequence&lt;br /&gt;flow is used to specify the ordering of flow objects, while message flow describes&lt;br /&gt;the flow of messages between business partners represented by pools. Association&lt;br /&gt;is a specific type of connecting object that is used to link artefacts to&lt;br /&gt;elements in business process diagrams. The categories of notational elements&lt;br /&gt;are shown Figure 4.78.&lt;br /&gt;The core element set provides a small set of concepts and their graphical&lt;br /&gt;representation for modelling business processes. The idea is to provide an&lt;br /&gt;easy-to-use notation by concentrating on the main aspects of business process&lt;br /&gt;modelling, without introducing complexity that might not be relevant.&lt;br /&gt;The business process diagram shown represents a review&lt;br /&gt;process for a scientific conference. The program committee chairperson is the&lt;br /&gt;central role in the process; this role is represented by the PC Chair pool. There&lt;br /&gt;are two additional roles involved, namely authors who submit their research&lt;br /&gt;papers and reviewers who perform peer reviews for the submitted papers. Since the goal of this example is to introduce the core elements, simplifications&lt;br /&gt;are in place: the business process model provides a simplified view of how&lt;br /&gt;review processes are actually conducted. In addition, there are many authors&lt;br /&gt;and there are also many reviewers. For convenience, just one author and one&lt;br /&gt;reviewer are shown. As will be discussed below, situations in which multiple&lt;br /&gt;participants are involved in the same role cannot be covered conveniently.&lt;br /&gt;The pools in this example represent roles and not concrete participants in a&lt;br /&gt;business process. Each role at run time has multiple concrete participants who&lt;br /&gt;are actually involved in the business process instance. The BPMN standard&lt;br /&gt;indicates that “a pool represents a participant in a process. It is also acts as a&lt;br /&gt;“swimlane” and a graphical container for partitioning a set of activities from&lt;br /&gt;other pools, usually in the context of B2B situations.”&lt;br /&gt;The process starts when the PC Chair is asked to organize the scientific&lt;br /&gt;program of a conference. This is reflected by the start event of the process at&lt;br /&gt;the PC Chair. An event is something that ‘happens’ during the course of a&lt;br /&gt;business process. These events affect the flow of the process and usually have&lt;br /&gt;a cause (trigger) or an impact (result). Events are circles with open centres&lt;br /&gt;to allow internal markers to differentiate different triggers or results.”&lt;br /&gt;The activity enacted first is the publication of a call for papers with detailed&lt;br /&gt;information on the conference, such as name and location, and also&lt;br /&gt;information regarding the topics addressed by the conference. The receipt of&lt;br /&gt;a message can be an event that is relevant for the process. This concept is&lt;br /&gt;used in the sample process when the published call for papers activity sends&lt;br /&gt;a message that the author receives. Receiving this message is represented by&lt;br /&gt;the start event of the author process. The cause of this event is receiving the message and the effect is spawning the process. The same concept is used to&lt;br /&gt;start the reviewer process in a later phase of the overall process.&lt;br /&gt;Activities represent units of work that are actually conducted during the&lt;br /&gt;course of the business process. The sample process contains, in the PC Chair&lt;br /&gt;process, a set of activities that are enacted in sequence. The standard states&lt;br /&gt;that “an activity is a generic term for work that a company performs. An&lt;br /&gt;activity can be atomic or non-atomic (compound). The types of activities&lt;br /&gt;that are a part of a process model are: process, subprocess, and task. Tasks&lt;br /&gt;and subprocesses are rounded rectangles. Processes are either unbounded or&lt;br /&gt;contained within a Pool.”&lt;br /&gt;Business processes contain execution constraints between activities. The&lt;br /&gt;simplest form of execution constraint is execution order. “A Sequence Flow is&lt;br /&gt;used to show the order that activities will be performed in a process.”&lt;br /&gt;More complex execution constraints are splits and joins of branches, where&lt;br /&gt;different types of splits and joins are available. These structures are represented&lt;br /&gt;by gateways. A gateway is graphically represented by a diamond. Split&lt;br /&gt;nodes have multiple outgoing edges and join nodes have multiple incoming&lt;br /&gt;edges. The notation for a gateway is identical to that for split and join nodes.&lt;br /&gt;The split and join behaviour is represented only by the edges attached to&lt;br /&gt;a gateway symbol. “A Gateway is used to control the divergence and convergence&lt;br /&gt;of Sequence Flow. Thus, it will determine branching, forking, merging,&lt;br /&gt;and joining of paths. Internal markers will indicate the type of behaviour&lt;br /&gt;control.”&lt;br /&gt;In the sample business process, the author pool contains a split gateway&lt;br /&gt;and a join gateway. The split gateway evaluates the received notification information&lt;br /&gt;and—in case the paper is accepted—triggers the preparation of the final version of the paper that will be printed in the conference proceedings.&lt;br /&gt;In case the paper is rejected, the join gateway is triggered. To clarify the behaviour&lt;br /&gt;of the split gateway, the outgoing sequence flows are associated with&lt;br /&gt;the respective annotations.&lt;br /&gt;The participants that cooperate in the context of a business process communicate&lt;br /&gt;by sending and receiving messages. In business process diagrams,&lt;br /&gt;messages are represented by message flow. Typically a message flow connects&lt;br /&gt;an activity of one participant to an activity or an event of another participant.&lt;br /&gt;Depending on the kind of business process diagram (abstract or global),&lt;br /&gt;message flows can link pairs of flow objects, pools, and events. Detailed rules&lt;br /&gt;on message flow connections are discussed below. “A Message Flow is used to&lt;br /&gt;show the flow of messages between two participants that are prepared to send&lt;br /&gt;and receive them. In BPMN, two separate Pools in the Diagram will represent&lt;br /&gt;the two participants (e.g., business entities or business roles).”&lt;br /&gt;The notational elements of the BPMN regarding transactional behaviour of&lt;br /&gt;business processes (transaction groups, compensation flow, and cancellation)&lt;br /&gt;will not be covered, because their semantics is not laid out in sufficient detail&lt;br /&gt;and precision.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-3714720772434561182?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/3714720772434561182/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/10/business-process-management-part-2_7234.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/3714720772434561182'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/3714720772434561182'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/10/business-process-management-part-2_7234.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter IV Process Orchestrations ] ) Sec Z -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-2199849242640481040</id><published>2009-10-15T17:27:00.002+05:30</published><updated>2009-10-15T17:29:51.757+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter IV Process Orchestrations ] ) Sec Y -- By Mathias Weske</title><content type='html'>&lt;span style="font-weight: bold;"&gt;        Process Instances&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                Dead path elimination is used to describe the execution semantics of process instances that are represented in graph-based languages.In this example, the Accept Credit activity can only be enabled after request approval has signalled its outgoing edge. If Request Approval is executed, then the signalling is true; otherwise, the edge is signalled false. Therefore,&lt;br /&gt;after the Assess Risk activity has provided a high risk factor as output value,&lt;br /&gt;Accept Credit cannot be started, at least not immediately after Assess Risk&lt;br /&gt;terminates.&lt;br /&gt;Since the risk is assessed to be high, the start condition of the Request&lt;br /&gt;Approval activity is evaluated to true. This activity is started and approves&lt;br /&gt;the credit request; this approval is represented by changing the value of the&lt;br /&gt;risk factor from high to low. When the edge to the Accept Credit activity is&lt;br /&gt;signalled, the start condition of that activity is evaluated to true, and the&lt;br /&gt;credit is granted In this process instance,&lt;br /&gt;Assess Risk determines a low risk factor, so Request Approval is not required.&lt;br /&gt;In this case, the edge from Assess Risk to Request Approval is signalled false,&lt;br /&gt;indicating that request approval is not required.&lt;br /&gt;On receiving this signal, Request Approval immediately relays a false signal&lt;br /&gt;to its outgoing edge, in this case, to the Accept Credit activity. Now all incoming&lt;br /&gt;edges of the Accept Credit activity have been signalled, so that the start&lt;br /&gt;condition can be evaluated. Since the risk factor is low, the start condition is&lt;br /&gt;evaluated to true, so that the credit can be granted.&lt;br /&gt;   &lt;br /&gt;    &lt;span style="font-weight: bold;"&gt;Discussion&lt;/span&gt;&lt;br /&gt;Graph-based workflow languages are useful for implementing business processes,&lt;br /&gt; in which process activities are realized by software systems. Just as procedures realized by software systems read input parameters on their start&lt;br /&gt;and write output parameters on their termination, so do process activities in&lt;br /&gt;graph-based workflow languages.&lt;br /&gt;Data flow can be expressed well by relating output parameters of process&lt;br /&gt;activities to input parameters of follow-up activities. Since control flow is&lt;br /&gt;defined by edges between activities and start conditions of activities, basic&lt;br /&gt;control flow patterns, such as sequence, splits, and joins can be expressed.&lt;br /&gt;Graph-based workflow languages do not support arbitrary cycles, because&lt;br /&gt;in cyclic process models, dead path elimination causes problems. Advanced&lt;br /&gt;control flow patterns, such as multiple instances patterns or discriminator&lt;br /&gt;pattern, are also not supported by graph-based workflow languages.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    Business Process Modeling Notation&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                In this section, the Business Process Modeling Notation (BPMN), developed&lt;br /&gt;under the coordination of the Object Management Group, is introduced. The&lt;br /&gt;focus of this section is not a complete presentation of the standard, but a&lt;br /&gt;discussion of the main concepts of business process diagrams expressed in the&lt;br /&gt;Business Process Modeling Notation.&lt;br /&gt;The intent of the Business Process Modeling Notation in business process&lt;br /&gt;modelling is very similar to the intent of the Unified Modeling Language for&lt;br /&gt;object-oriented design and analysis. To identify the best practices of existing&lt;br /&gt;approaches and to combine them into a new, generally accepted language. The set of ancestors of BPMN include not only graph-based and Petri-netbased&lt;br /&gt;process modelling languages, but also UML activity diagrams and eventdriven&lt;br /&gt;process chains.&lt;br /&gt;While these modelling languages focus on different levels of abstraction,&lt;br /&gt;ranging from a business level to a more technical level, the Business Process&lt;br /&gt;Modeling Notation aims at supporting the complete range of abstraction levels,&lt;br /&gt;including business levels and software technology levels. This goal is also&lt;br /&gt;laid out in the standards document, which states, “The primary goal of BPMN&lt;br /&gt;is to provide a notation that is readily understandable by all business users,&lt;br /&gt;from the business analysts that create the initial drafts of the processes, to&lt;br /&gt;the technical developers responsible for implementing the technology that will&lt;br /&gt;perform those processes, and finally, to the business people who will manage&lt;br /&gt;and monitor those processes.”&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-2199849242640481040?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/2199849242640481040/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/10/business-process-management-part-2_15.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/2199849242640481040'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/2199849242640481040'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/10/business-process-management-part-2_15.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter IV Process Orchestrations ] ) Sec Y -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-3829457017475261084</id><published>2009-10-04T18:54:00.001+05:30</published><updated>2009-10-04T18:56:14.319+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter IV Process Orchestrations ] ) Sec X -- By Mathias Weske</title><content type='html'>&lt;span style="font-weight: bold;"&gt;    Graph-Based Workflow Languag&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;            In this section, a graph-based workflow language is introduced. This language&lt;br /&gt;was developed in the context of a commercial workflow management system.&lt;br /&gt;It exhibits a series of interesting concepts that are not addressed by the other&lt;br /&gt;process languages discussed in this chapter. Explicit representation of data&lt;br /&gt;dependencies between activities and dead path elimination as a technique to&lt;br /&gt;describe the execution semantics of business processes.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;        Process Metamodel&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                    To illustrate this modelling language, an example of a credit request process&lt;br /&gt;is shown in Figure 4.72. The activities are shown as nodes of the graph,&lt;br /&gt;control flow is represented by solid arcs, and dotted arrows indicate data flow.&lt;br /&gt;Data flow, for instance, between activities Collect CreditInfo and Assess Risk&lt;br /&gt;indicates that Assess Risk requires data that has been created or modified by&lt;br /&gt;Collect CreditInfo.&lt;br /&gt;    The process starts with collecting credit information, followed by an assessment&lt;br /&gt;of the credit risk. Then, either the credit is accepted or a request approval activity is started. The request approval activity determines the final&lt;br /&gt;decision on the credit request; it either approves the credit or rejects it. In&lt;br /&gt;any case, the requestor is informed by a notification message.&lt;br /&gt;Data is covered by parameters of activities; each parameter has an associated&lt;br /&gt;data type. Each activity has a set of input parameters and a set of&lt;br /&gt;output parameters (might be empty). Whenever the output parameter of one&lt;br /&gt;activity is used as an input parameter of another activity, a data flow occurs.&lt;br /&gt;Transitive data flow is often not shown in process models.&lt;br /&gt;Each control flow edge has an associated condition. This condition is evaluated&lt;br /&gt;after the activity from which the control flow originates has terminated.&lt;br /&gt;If the condition is evaluated to true, the edge is signalled, and the follow-up&lt;br /&gt;activity can be started.&lt;br /&gt;The execution semantics of process graphs is based on the signalling of&lt;br /&gt;edges. There are two ways of signalling: true signalling and false signalling.&lt;br /&gt;When an activity terminates, the conditions of its outgoing edges are evaluated.&lt;br /&gt;For each edge that evaluates to true, the follow-up activity is signalled&lt;br /&gt;true. For each edge that evaluates to false, the edge is signalled false.&lt;br /&gt;    When all incoming edges of an activity are signalled—i.e., each edge is&lt;br /&gt;signalled true or false—the start condition of that activity is evaluated. The&lt;br /&gt;start condition realizes the join behaviour of that node. If the start condition&lt;br /&gt;of an activity evaluates to true, it is enabled. If it evaluates to false, the activity&lt;br /&gt;is not enabled. In this case, all outgoing edges of this activity are signalled&lt;br /&gt;false.&lt;br /&gt;By using true and false signalling, the or join problem is solved, because&lt;br /&gt;each incoming edge will be signalled eventually. This technique is called dead path elimination, because paths not taken in the execution of a process are&lt;br /&gt;marked with the false signal; they are therefore somehow eliminated. Unfortunately,&lt;br /&gt;dead path elimination only works in the absence of loops in process&lt;br /&gt;models, but the iteration of activities guided by an exit condition is supported.&lt;br /&gt;Each activity is associated with a start condition. This start condition is&lt;br /&gt;evaluated if all incoming control flow edges have been signalled (either true or&lt;br /&gt;false). The start condition uses this information as well as input parameters&lt;br /&gt;received from previous activities to decide on the state transition. If the start&lt;br /&gt;condition is evaluated to true. then the activity is enabled. If it is evaluated to&lt;br /&gt;false, the activity is skipped and false signals are sent to each of its outgoing&lt;br /&gt;edges, regardless of the conditions attached to these edges.&lt;br /&gt;To illustrate these concepts, Figure 4.73 shows a refined version of the&lt;br /&gt;process model shown above, which includes parameters, start conditions, and&lt;br /&gt;data flow between process activities.&lt;br /&gt;The Collect CreditInfo activity is responsible for providing information&lt;br /&gt;about the credit, including customer information and the amount requested.&lt;br /&gt;This information is stored in the output parameter CreditInfo of the Collect&lt;br /&gt;CreditInfo activity. The Assess Risk activity takes the credit information as&lt;br /&gt;input parameter and assesses the risk of granting the credit. The result of this&lt;br /&gt;activity is stored in an output parameter RiskFactor that is made available&lt;br /&gt;to the follow-up activities Accept Credit and Request Approval.&lt;br /&gt;The use of start conditions can be illustrated in this example: the Request&lt;br /&gt;Approval activity can be started if the credit amount is at least 10000 euros&lt;br /&gt;and the risk factor is high. This start condition takes as input the risk factor&lt;br /&gt;and the credit amount, values for both of which are provided to the Request&lt;br /&gt;Approval activity by the output parameters of the Assess Risk activity.&lt;br /&gt;The start condition of the AcceptCredit activity makes sure that it can&lt;br /&gt;only be started if the credit amount is below 10000 euros or the risk factor&lt;br /&gt;is low. The credit can also be accepted if the credit was approved by the&lt;br /&gt;Request Approval activity. This information is made available to the Accept&lt;br /&gt;Credit activity by the output parameter RiskFactor of Request Approval.&lt;br /&gt;Depending on the particular implementation used to enact this process,&lt;br /&gt;either data can be transferred between activities by the business process management&lt;br /&gt;system, or references to data objects can be subject to data flow, so&lt;br /&gt;that the system is not burdened with large amounts of data if complex data&lt;br /&gt;needs to be transferred between process activities.&lt;br /&gt;To organize these concepts, a workflow metamodel is shown in Figure 4.74.&lt;br /&gt;The workflow class is the central class in the metamodel; it contains workflow&lt;br /&gt;objects that can be either atomic or complex, and atomic workflows can&lt;br /&gt;be executed either automatically or manually. This property of workflows is reflected&lt;br /&gt;in the metamodel by complex and atomic as subclasses of the workflow&lt;br /&gt;class. The workflow hierarchy is represented by the nesting class, an association&lt;br /&gt;class that defines the relationship between a complex workflow and a&lt;br /&gt;workflow, which can be complex or atomic. Atomic workflows are also called&lt;br /&gt;activities.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-3829457017475261084?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/3829457017475261084/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/10/business-process-management-part-2_7822.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/3829457017475261084'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/3829457017475261084'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/10/business-process-management-part-2_7822.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter IV Process Orchestrations ] ) Sec X -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-1627878903060304423</id><published>2009-10-04T18:53:00.000+05:30</published><updated>2009-10-04T18:54:41.675+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter IV Process Orchestrations ] ) Sec W -- By Mathias Weske</title><content type='html'>&lt;span style="font-weight: bold;"&gt;    N-out-of-M Join&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                The N-out-of-M join has M incoming branches, and the follow-up activity&lt;br /&gt;is triggered once N branches have completed. This behaviour can in part be&lt;br /&gt;expressed in YAWL by multiple instances, as shown in Figure 4.67. The idea&lt;br /&gt;is to start M instances and to define a threshold of N instances, so once N&lt;br /&gt;instances have completed, the multiple instances task completes.&lt;br /&gt;While multiple instances can be used to represent an N-out-of-M join&lt;br /&gt;with identical activities, this approach falls short of representing concurrent&lt;br /&gt;branches comprised of different activities. Therefore, only a very specific type&lt;br /&gt;of N-out-of-M join can be realized in YAWL using multiple instances. Hence,&lt;br /&gt;the N-out-of-M join is not completely expressed, since it should be able to&lt;br /&gt;synchronize different branches of a process and not only multiple instances of&lt;br /&gt;a given task.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;        Multiple Instances Tasks&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                    Yet Another Workflow Language is tailored towards supporting multiple instances&lt;br /&gt;patterns. The multiple instances without synchronization pattern is&lt;br /&gt;shown in Figure 4.68. In this example, A spawns two concurrent branches,&lt;br /&gt;consisting of multiple instances of task B and a single instance of task C.&lt;br /&gt;The multiple instances of task B are not synchronized, which means that&lt;br /&gt;B cannot have outgoing edges, because outgoing edges would indicate that&lt;br /&gt;the follow-up activity can only be started if the task instances of task B have&lt;br /&gt;completed.&lt;br /&gt;The multiple instances with design time knowledge is shown in Figure 4.69.&lt;br /&gt;In this pattern, the number of instances of task B is known at design time.&lt;br /&gt;Therefore, the multiple instances attributes of task B can be set accordingly.&lt;br /&gt;By setting the minimum number of instances, the maximum number of&lt;br /&gt;instances, and the threshold to n, where n is the number of required instances&lt;br /&gt;of task B, this pattern can be realized. The control flow edge from B to C&lt;br /&gt;indicates that C can only start when all instances of task B have completed.&lt;br /&gt;If the number of instances is known only at run time, but before the first instance&lt;br /&gt;of B starts, a function is required to determine the number of instances&lt;br /&gt;of B, as shown in Figure 4.70. This difference with the previous pattern is reflected&lt;br /&gt;by using q for the number of instances, where q is determined at run time of the process instance, but before the start of multiple instances task&lt;br /&gt;B. For example, the number of line items in an order can be determined at&lt;br /&gt;run time. In the example, q reflects this number, so that exactly q instances&lt;br /&gt;of task B are performed.&lt;br /&gt;Figure 4.71 shows multiple instances without a priori run time knowledge.&lt;br /&gt;In this pattern, the number of instances of B becomes available only while&lt;br /&gt;instances of task B run. This means that new instances of B need to be&lt;br /&gt;created dynamically. Parameters q1 and q2, and also the threshold value, can&lt;br /&gt;be subject to change while task instances run, providing maximum flexibility&lt;br /&gt;in determining the number of instances of a multiple instances task.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    Discussion&lt;/span&gt;&lt;br /&gt;                Yet Another Workflow Language has a number of advantages, but also some&lt;br /&gt;drawbacks. The graphical representation of process models is closely related to workflow nets, so that people familiar with workflow nets can use YAWL&lt;br /&gt;immediately.&lt;br /&gt;The execution semantics of YAWL is well-specified by state transition&lt;br /&gt;systems. The representation of executing tasks by state transition systems&lt;br /&gt;combines state transition diagrams—to describe the dynamic behaviour of&lt;br /&gt;process activities, as shown in Figure 3.10—with Petri net markings.&lt;br /&gt;One of the conceptual issues when representing business process activities&lt;br /&gt;by Petri nets is the timeliness of the transition firing. Business process activities&lt;br /&gt;take time, they have a start, they are active for a time interval, before&lt;br /&gt;they complete. In contrast to Petri nets, the durations of process activities&lt;br /&gt;are well captured by state transition systems in YAWL. At the same time,&lt;br /&gt;process instances are represented by tokens, similar to markings in Petri nets.&lt;br /&gt;YAWL has excellent support for multiple instances patterns. The specification&lt;br /&gt;of multiple instances actually goes one step ahead of the control flow&lt;br /&gt;patterns in that it allows us to define a threshold of completed task instances.&lt;br /&gt;The construct to model multiple instances tasks in YAWL is very useful and&lt;br /&gt;has many applications in real-world business processes.&lt;br /&gt;The semantics of multiple instances tasks is handled very well by state&lt;br /&gt;transition systems in YAWL. The add transition allows the dynamic creation&lt;br /&gt;of new task instances while task instances are active; the exit transition can&lt;br /&gt;realize the threshold semantics by cancelling all remaining task instances when&lt;br /&gt;the threshold number of completed instances has been reached.&lt;br /&gt;The state transition systems also capture in a very elegant way composite&lt;br /&gt;tasks. By recursively applying the concept, subprocesses can easily be attached&lt;br /&gt;to composite tasks. The multiple-instances property is orthogonal to&lt;br /&gt;tasks being composite, so that any composite task can at the same time have&lt;br /&gt;multiple instances.&lt;br /&gt;The remove function rem associated to tasks allows us defining regions&lt;br /&gt;of the workflow specification from where to withdraw tokens when the task&lt;br /&gt;completes. Conceptually it is rather simple to “remove tokens” from process&lt;br /&gt;instances to cancel tasks. It becomes much harder, however, when we look at&lt;br /&gt;the concrete realization of these tasks.&lt;br /&gt;In real-world business processes, many tasks are realized by software systems.&lt;br /&gt;Removing a token from a task means to cancel the invocation of the&lt;br /&gt;system. If the software system has transactional capabilities then the transaction&lt;br /&gt;can be aborted, rolling back the software system to a consistent state.&lt;br /&gt;Not all software systems used in business processes are, however, are transactional. In this case, the software might have already performed its work&lt;br /&gt;partially at the time, the token is removed. In such situations, it is unclear,&lt;br /&gt;how the business process management system should behave. In many cases,&lt;br /&gt;human involvement is required to solve the resulting problems manually.&lt;br /&gt;We have already discussed in some detail the weaknesses of YAWL in&lt;br /&gt;representing some advanced control flow patterns, including the discriminator&lt;br /&gt;and the M-out-of-N join. Despite these drawbacks, YAWL is a well-designed&lt;br /&gt;process modelling language that also comes with prototypical implementations&lt;br /&gt;for modelling and enactment, as referenced in the bibliographical notes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-1627878903060304423?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/1627878903060304423/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/10/business-process-management-part-2_7845.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/1627878903060304423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/1627878903060304423'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/10/business-process-management-part-2_7845.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter IV Process Orchestrations ] ) Sec W -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-7172984677619889680</id><published>2009-10-04T18:50:00.001+05:30</published><updated>2009-10-04T18:52:36.318+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter IV Process Orchestrations ] ) Sec V -- By Mathias Weske</title><content type='html'>&lt;span style="font-weight: bold;"&gt;    Nested Processes&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                    The approach of defining the execution semantics of process instances by&lt;br /&gt;state transition diagrams can be extended conveniently to nested processes.&lt;br /&gt;Figure 4.64 shows the extended state transition diagrams for composite tasks.&lt;br /&gt;When an instance of a composite task is started, one token is put on the&lt;br /&gt;exec state, indicating that the task instance is now running. The detailed&lt;br /&gt;status of the subprocess is shown in the lower part of Figure 4.64. Starting&lt;br /&gt;the task also puts a token in the initial condition of the subprocess, marked&lt;br /&gt;by imap.&lt;br /&gt;The ellipsis summarizes the state transition diagram of the subprocess&lt;br /&gt;(without the initial and the final condition, of course). When the subprocess&lt;br /&gt;terminates, the condition omap is reached, and the complete transition can&lt;br /&gt;fire, completing an instance of the subprocess.&lt;br /&gt;The extension of the state transition diagram to composite tasks is orthogonal&lt;br /&gt;to multiple instances tasks, so that by adding an add transition,&lt;br /&gt;multiple instances of composite tasks, and therefore also multiple instances of&lt;br /&gt;subprocesses, can be represented properly.&lt;br /&gt;            The example discussed above is used to investigate the execution of composite&lt;br /&gt;task F realized by the extended workflow net W2, shown in Figure 4.62.&lt;br /&gt;A partial state transition diagram focusing on the state of the composite task&lt;br /&gt;is shown in Figure 4.65.&lt;br /&gt;            When an instance of the composite task F is executed, a token is put on&lt;br /&gt;the exec state of the state transition diagram of that task. In addition, the&lt;br /&gt;subprocess needs to be started, represented by a token in the start condition&lt;br /&gt;of the extended workflow net that F maps to; since map(F) = W2, a token is&lt;br /&gt;put on i2, the start condition of W2.&lt;br /&gt;            The token at i2 enables the subprocess. The first task to execute is H.&lt;br /&gt;The lower part of Figure 4.65 shows the state during the execution of the&lt;br /&gt;subprocess where task H is currently executing. When H terminates, a token&lt;br /&gt;is put on state cHI , so that the execution of the subprocess can continue with the multiple instances task I. This example shows quite well the recursive&lt;br /&gt;application of state transition diagrams for composite tasks.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;        Advanced Control Flow Patterns&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                Having discussed how the execution semantics is specified, we can investigate&lt;br /&gt;advanced control flow patterns.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    Discriminator&lt;/span&gt;&lt;br /&gt;                    The discriminator is a specific type of join node that uses the first signal it&lt;br /&gt;receives for triggering the outgoing task. The other signals are ignored. When&lt;br /&gt;signals have been received from all incoming branches, the discriminator resets&lt;br /&gt;itself. The authors of Yet AnotherWorkflow Language propose to simulate this&lt;br /&gt;behaviour of the discriminator pattern by an exclusive or join in combination&lt;br /&gt;with a cancellation region in the way shown in Figure 4.66.&lt;br /&gt;                In this example, assume that tasks B, C, and D are active concurrently,&lt;br /&gt;following the and split task A. Assuming that B completes first, the discriminator&lt;br /&gt;fires, and E is triggered. Since E is an exclusive or join task, it can&lt;br /&gt;be executed. Since a cancellation region is defined for E, E deletes all tokens&lt;br /&gt;from the region. In this case, tokens are withdrawn from tasks C and D.&lt;br /&gt;This simulation of the discriminator pattern with exclusive or join and&lt;br /&gt;cancellation region is now evaluated with respect to the semantics of the&lt;br /&gt;discriminator. The simulation exhibits significant semantic differences with&lt;br /&gt;the specification of the discriminator. First of all, the discriminator does not&lt;br /&gt;cancel running activities.&lt;br /&gt;All activities on the incoming branches of the discriminator can complete&lt;br /&gt;without disturbances; only their termination will be ignored. Secondly, the&lt;br /&gt;cancellation of the activities takes place on the termination of the task instance&lt;br /&gt;E. So the activities are cancelled not before E starts, but after E terminates.&lt;br /&gt;As a result, the proposed representation of the discriminator pattern in YAWL&lt;br /&gt;is not completely satisfying.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-7172984677619889680?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/7172984677619889680/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/10/business-process-management-part-2_8544.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/7172984677619889680'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/7172984677619889680'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/10/business-process-management-part-2_8544.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter IV Process Orchestrations ] ) Sec V -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-7552565115111263980</id><published>2009-10-04T18:48:00.001+05:30</published><updated>2009-10-04T18:50:10.071+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter IV Process Orchestrations ] ) Sec U -- By Mathias Weske</title><content type='html'>&lt;span style="font-weight: bold;"&gt;        Process Instances&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                    The discussion of state transition diagrams is extended from a localized view&lt;br /&gt;of individual tasks to a process view. In order to do this, a number of definitions&lt;br /&gt;are required. The first definition extends the compact representation&lt;br /&gt;of extended workflow nets in a way that it syntactically complies with the&lt;br /&gt;workflow net definition: wherever there is an arc connecting two tasks in an&lt;br /&gt;extended workflow net, a new condition is added and the arcs are modified&lt;br /&gt;accordingly.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;        Definition&lt;/span&gt;&lt;br /&gt;                        Let N = (C, i, o, T, F, split, join, rem, nofi) be an extended&lt;br /&gt;workflow net.&lt;br /&gt;• Cext&lt;br /&gt;N is an extended condition set, such that&lt;br /&gt;        Cext&lt;br /&gt;= C [ {cij |(ti, tj) 2 F \ T × T}&lt;br /&gt;&lt;br /&gt;            The extended condition set and the extended flow relation are shown in&lt;br /&gt;Figure 4.62. Observe that for each direct connection between tasks in the&lt;br /&gt;original extended workflow net, one condition and the respective arcs are&lt;br /&gt;added: Cext&lt;br /&gt;1 = {i1, cAB, cBC, cCD, cCE, cCF , cDG, cEG, cFG, o1}.&lt;br /&gt;The extended flow relation Fext&lt;br /&gt;1 is given by the arrows in Figure 4.62. Analogously,&lt;br /&gt;the extended condition set and the extended flow relation for W2 are&lt;br /&gt;given by Cext&lt;br /&gt;2 = {i2, cHI , o2} and Fext = {(i2,H), (H, cHI ), (cHI , I), (I, o2)}.&lt;br /&gt;    Since there are multiple process instances for which tasks are being executed,&lt;br /&gt;the identity of these cases needs to be taken into account when describing&lt;br /&gt;the state of tasks and their task instances. Therefore, the following&lt;br /&gt;assumptions concerning process identifiers are made.&lt;br /&gt;Each process instance has a unique case identifier.&lt;br /&gt;Each task instance has a unique task instance identifier.&lt;br /&gt;Identifiers are structured to allow for child/parent relationships. This&lt;br /&gt;means that each task instance identifier can be associated with its process&lt;br /&gt;instance or case.&lt;br /&gt;I denotes the set of identifiers.&lt;br /&gt;Based on case identifiers and the state transition system discussed above, a&lt;br /&gt;workflow state can be characterized as a bag of tokens, where each token has&lt;br /&gt;condition and a case identifier.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-7552565115111263980?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/7552565115111263980/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/10/business-process-management-part-2_2908.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/7552565115111263980'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/7552565115111263980'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/10/business-process-management-part-2_2908.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter IV Process Orchestrations ] ) Sec U -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-7355279576942304621</id><published>2009-10-04T18:45:00.001+05:30</published><updated>2009-10-04T18:48:33.121+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter IV Process Orchestrations ] ) Sec T -- By Mathias Weske</title><content type='html'>&lt;span style="font-weight: bold;"&gt;        Simple Control Flow Patterns&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;                    We now discuss how YAWL supports control flow patterns. It is obvious that&lt;br /&gt;the basic control flow patterns are directly supported. The sequence pattern&lt;br /&gt;is shown in Figure 4.55, where two alternative representations are shown: in&lt;br /&gt;extended workflow nets, the control flow edge can directly connect A and B, so&lt;br /&gt;that the condition place can be dropped. Notice that these two representations&lt;br /&gt;are equivalent, i.e., any extended workflow net with conditions connecting two&lt;br /&gt;tasks can be transformed to an equivalent extended workflow net with direct&lt;br /&gt;connections, and vice versa.&lt;br /&gt;                        And split and and join patterns are shown in part (a) of Figure 4.56.&lt;br /&gt;On completion of the split task A (split(A) = and), tasks B, C, and D are enabled, and the three tasks can be executed concurrently. The join task&lt;br /&gt;E (join(E) = and) is enabled only if B, C, and D have been completed.&lt;br /&gt;The exclusive or split shown in part (b) of that figure selects exactly one&lt;br /&gt;alternative, so that E can start if exactly one branch is completed. In this&lt;br /&gt;case, split(A)= join(E) = Xor.&lt;br /&gt;                        Workflow specifications require additional information that allows evaluating&lt;br /&gt;conditions to decide, for instance, which path in an exclusive or split&lt;br /&gt;to take. These conditions, however, are not part of the formal specification of&lt;br /&gt;workflow specifications in YAWL.&lt;br /&gt;Figure 4.57 shows the inclusive or split. From a notation point of view,&lt;br /&gt;the or split and the or join can be defined similarly to the other control flow&lt;br /&gt;structures. However, the decision on when the or join is activated is complex.&lt;br /&gt;These aspects will be discussed in more detail when the execution semantics&lt;br /&gt;of YAWL is investigated.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;        Execution Semantics&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                        The execution semantics in YAWL is defined by state transition systems.&lt;br /&gt;Each workflow specification has a corresponding state transition system that describes the execution semantics of process instances based on that workflow&lt;br /&gt;specification. The rules implemented in this state transition system are of&lt;br /&gt;a generic nature, so that they can be applied to any workflow specification&lt;br /&gt;expressed in YAWL.&lt;br /&gt;The overall idea for expressing the execution semantics is that each task&lt;br /&gt;is represented by an individual state transition diagram. A state transition&lt;br /&gt;diagram of a task specifies its current state. The state of the process instance&lt;br /&gt;is then represented by the combined state of all tasks involved in the process&lt;br /&gt;instance plus conditions that are currently met at the process level.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;            Task Instances&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                            State transition diagrams consist of conditions represented by circles and transitions&lt;br /&gt;represented by rectangles. Since multiple instances tasks can take more&lt;br /&gt;states than single instance tasks, single instance tasks are investigated first.&lt;br /&gt;The state transition diagram for single instance tasks is shown in Figure 4.58.&lt;br /&gt;In this section, task instances are investigated before state transition diagrams&lt;br /&gt;at the process level are investigated. To stay in line with terminology&lt;br /&gt;in YAWL, this section uses the term task instance, which describes the same&lt;br /&gt;concept as the term activity instance this book has used so far.&lt;br /&gt;                        The following conditions are available for a task instance:&lt;br /&gt;enabled: Task instance is enabled, but not yet executing&lt;br /&gt;exec: Task instance is currently executing&lt;br /&gt;completed: Task instance is completed&lt;br /&gt;active: Task instance is currently active&lt;br /&gt;The execution semantics of a task instance is specified by the state transition&lt;br /&gt;diagram shown in Figure 4.58. Despite the fact that transitions do not use Petri net transition semantics, it is appropriate to discuss the basic operation&lt;br /&gt;of state transition diagrams with Petri net terminology.&lt;br /&gt;When the task instance is entered, a token is put on the active and enabled&lt;br /&gt;conditions. An enabled task instance can start. Once the start transition fires,&lt;br /&gt;the task instance enters the exec condition.When the task instance completes,&lt;br /&gt;it enters the completed condition; finally, the task instance is terminated by&lt;br /&gt;firing the exit transition. Note that the active condition and the exit transition&lt;br /&gt;are somewhat artificial for single instance tasks; their role will become clear&lt;br /&gt;when multiple instances tasks are addressed.&lt;br /&gt;To summarize, the state transitions for a task t have the following semantics.&lt;br /&gt;The state transition enable checks the join condition of t; t might be&lt;br /&gt;a join node of type And, Xor, or Or, as specified by join(t). When the enable&lt;br /&gt;transition occurs, the input tokens as defined by the join condition are&lt;br /&gt;removed from the input conditions of the task.&lt;br /&gt;In case of a single instance task, one token is put in the active condition and&lt;br /&gt;one token is put in the enabled condition. When the start transition occurs,&lt;br /&gt;one token is removed from the enabled condition and one token is added to&lt;br /&gt;the exec condition. The task instance is now executing. The termination of a&lt;br /&gt;task instance is represented by the completed transition in the state transition&lt;br /&gt;diagram. In this case, one token is removed from the exec condition and one&lt;br /&gt;token is added to the completed condition.&lt;br /&gt;The exit transition is specifically relevant for multiple instances tasks,&lt;br /&gt;because it fires if the termination condition of a multiple instances task is met.&lt;br /&gt;In case there is a cancellation region defined for task t, the exit transition also&lt;br /&gt;removes tokens from the cancellation region of the workflow specification, as&lt;br /&gt;defined by rem(t). Finally, the exit state transition generates tokens depending&lt;br /&gt;on its split behaviour, defined by split(t) The state transition diagram for multiple instances tasks is shown in Figure&lt;br /&gt;4.59. There is an additional state transition, add, that spawns new task&lt;br /&gt;instances. Arcs drawn in bold indicate that multiple tokens can flow along&lt;br /&gt;these arcs.&lt;br /&gt;To discuss the execution semantics of a multiple instances task, the static&lt;br /&gt;case is considered first. In this case, all task instances are created up front,&lt;br /&gt;and no task instances can be added while instances of the task run. Consider&lt;br /&gt;a multiple instances task with [4, 6, 4, s]: four to six task instances are created,&lt;br /&gt;and the multiple instances task terminates when the threshold of four&lt;br /&gt;instances that have completed is reached.&lt;br /&gt;Consider a process instance in which the enable transition creates five&lt;br /&gt;task instances by putting five tokens in the active condition and five tokens&lt;br /&gt;in the enabled condition. For each token in the enabled condition, the start&lt;br /&gt;transition can fire.&lt;br /&gt;The termination of the overall task (completion of the required task instances)&lt;br /&gt;is realized by the exit transition. Exit can fire if the threshold number&lt;br /&gt;of tokens are in the completed condition, indicating the completion of a&lt;br /&gt;sufficient number of task instances. Assuming four task instances have been&lt;br /&gt;completed, the threshold value is reached, and the exit transition removes&lt;br /&gt;four tokens from the completed condition and four tokens from the active&lt;br /&gt;condition.&lt;br /&gt;However, since five task instances have been started, there is one additional&lt;br /&gt;task instance present. This task instance is represented by one token in the&lt;br /&gt;active condition and one token in either the enabled or the exec condition.&lt;br /&gt;This task instance might also have already entered the completed condition.&lt;br /&gt;In the example shown in Figure 4.60, the task instance is still executing To implement a proper completion of the task, the exit transition needs&lt;br /&gt;to delete all remaining tokens from the state transition system of the task. In&lt;br /&gt;this case, two tokens that collectively represent the fifth (and not required)&lt;br /&gt;task instance are removed, completing the task and all its task instances, of&lt;br /&gt;which four have been performed completely.&lt;br /&gt;In the example discussed, the number of task instances was statically defined,&lt;br /&gt;so that the dynamic creation of new task instances was not possible. In&lt;br /&gt;the following example, additional task instances can be created at run time.&lt;br /&gt;Let [3, 10, 8, d] define the multiple instances property of the task. This means&lt;br /&gt;that there are at least three instances, at most ten instances, and the threshold&lt;br /&gt;is eight completed task instances.&lt;br /&gt;Assume that three task instances are started up front. In this case, the&lt;br /&gt;enable transition puts three tokens in the active condition and three tokens&lt;br /&gt;in the enabled condition. The enabled task instances can start.&lt;br /&gt;The dynamic creation of new task instances is represented by the state&lt;br /&gt;transition add. As soon as there is one task instance in the active condition,&lt;br /&gt;the add transition can fire. When it fires, an additional token is put in the&lt;br /&gt;enabled and active conditions, representing the creation of a new task instance&lt;br /&gt;at run time. In this way add realizes the dynamic creation of task instances at&lt;br /&gt;run time. Using this feature, YAWL directly supports the multiple instances&lt;br /&gt;without a priori run time knowledge control flow pattern, introduced in Section&lt;br /&gt;4.1.&lt;br /&gt;The other parts of the state transition system remain unchanged, so that&lt;br /&gt;the originally created task instances and the dynamically created task instances&lt;br /&gt;are handled equivalently: the exit transition can fire if there are a&lt;br /&gt;sufficient number of completed task instances available, in this case, eight.&lt;br /&gt;The actual trigger for creating new task instances is not in the scope of&lt;br /&gt;the state transition system. It is assumed that the user or a software system&lt;br /&gt;spawns new task instances as desired. The state transition system is capable&lt;br /&gt;of monitoring the state of a task, including the states of its task instances.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-7355279576942304621?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/7355279576942304621/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/10/business-process-management-part-2_04.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/7355279576942304621'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/7355279576942304621'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/10/business-process-management-part-2_04.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter IV Process Orchestrations ] ) Sec T -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-2797987778683639048</id><published>2009-10-04T18:44:00.001+05:30</published><updated>2009-10-04T18:45:35.551+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter IV Process Orchestrations ] ) Sec S -- By Mathias Weske</title><content type='html'>&lt;span style="font-weight: bold;"&gt;        Temporal Aspects&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                        Activities in workflow nets are represented by transitions. When a transition&lt;br /&gt;fires, it withdraws tokens from its input places and puts tokens in its&lt;br /&gt;output places, depending on the decision made by the transition. These steps&lt;br /&gt;(withdrawing tokens, determining where to put tokens, and finally putting the&lt;br /&gt;tokens) in Petri nets are represented by the firing of the transition, which does&lt;br /&gt;not consume time. This assumption is in contradiction with activity instances,&lt;br /&gt;which do take time. The processing of an insurance claim, the preparation of&lt;br /&gt;a quote, and the checking of a warehouse inventory are activities that take&lt;br /&gt;time.&lt;br /&gt;The fact that activities take time is also reflected by the state transition diagram&lt;br /&gt;of activities. In state transition diagrams, state transitions are triggered&lt;br /&gt;by events. For instance, the completion of an enter customer order activity&lt;br /&gt;enables a check inventory activity. This means that activity instances have&lt;br /&gt;lifecycles that consist of a number of steps, from their instantiation, their enabling,&lt;br /&gt;and their execution to their termination. In workflow nets, these steps&lt;br /&gt;are not represented, because firing puts an activity from the enabled state&lt;br /&gt;immediately into the terminated state.&lt;br /&gt;This contradiction is partly solved in workflow management systems using&lt;br /&gt;Petri nets. Assume that a business activity represented by a transition is&lt;br /&gt;realized by invoking a piece of software. The invocation of the software is&lt;br /&gt;often represented by the firing of the transition. However, software procedures&lt;br /&gt;also take time. In addition, the follow-up activities should not be enabled&lt;br /&gt;when the previous activity is started, but when it completes. If an activity is&lt;br /&gt;implemented in software, then the follow-up activities should not be enabled&lt;br /&gt;when the software is invoked, but after it has completed.&lt;br /&gt;            The timeliness of activity instances represented by workflow nets also implies&lt;br /&gt;that no events can occur during an activity instance. In real-world business&lt;br /&gt;processes, however, this is not true. Many things do happen during the&lt;br /&gt;execution of a business process activity. For instance, while an inventory is being&lt;br /&gt;checked, new items may enter the warehouse. These issues are not covered&lt;br /&gt;by workflow nets; it is the responsibility of business process management tools&lt;br /&gt;to solve issues that might result from these abstractions in workflow nets.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;        Yet Another Workflow Language&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                    The motivation for the development of Yet Another Workflow Language&lt;br /&gt;(YAWL) was the lack of a process language that directly supported all control&lt;br /&gt;flow patterns. While it uses workflow nets as a major ingredient, the execution&lt;br /&gt;semantics of process instances is specified by state transition systems and not&lt;br /&gt;by Petri nets. In this section, YAWL and its support for control flow patterns,&lt;br /&gt;as well as its execution semantics, are investigated.&lt;br /&gt;While Petri nets provide a sound formalism for expressing most control&lt;br /&gt;flow patterns, the following deficiencies have been identified that hamper the&lt;br /&gt;expression of the full set of control flow patterns.&lt;br /&gt;• Multiple Instances: Multiple instances patterns describe business processes&lt;br /&gt;with multiple instances of specific activities. The number of activity instances&lt;br /&gt;of one particular activity model might not be known at design time.&lt;br /&gt;Petri nets do not provide adequate means to describe multiple instances&lt;br /&gt;tasks.&lt;br /&gt;• Advanced Synchronization Patterns: Petri nets can directly express and&lt;br /&gt;split/join and exclusive or split/join using places, transitions and firing&lt;br /&gt;rules of traditional Petri nets. Advanced synchronization patterns such as,&lt;br /&gt;for instance, or split and or join and discriminator patterns, however,&lt;br /&gt;cannot be conveniently expressed in Petri nets.&lt;br /&gt;• Nonlocal Firing Behaviour: The enabling of activities in a business process&lt;br /&gt;is based onlocal knowledge only. In the context of Petri nets, the presence&lt;br /&gt;of tokens in the input places of a transition indicates activation of that&lt;br /&gt;transition. In business processes, there are situations in which nonlocal&lt;br /&gt;parts of the process are affected by a decision. For instance, the cancellation&lt;br /&gt;pattern somehow vacuum-cleans defined parts of the Petri net when being&lt;br /&gt;activated. If used to cancel a customer order, different activities in different&lt;br /&gt;parts of the Petri net need to be cancelled in order to cancel the overall&lt;br /&gt;customer order.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-2797987778683639048?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/2797987778683639048/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/10/business-process-management-part-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/2797987778683639048'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/2797987778683639048'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/10/business-process-management-part-2.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter IV Process Orchestrations ] ) Sec S -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-1089824715176956398</id><published>2009-09-16T19:16:00.001+05:30</published><updated>2009-09-16T19:18:15.851+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter IV Process Orchestrations ] ) Sec R -- By Mathias Weske</title><content type='html'>&lt;span style="font-weight: bold;"&gt;        Representing Process Instances&lt;br /&gt;                   &lt;br /&gt;                        &lt;/span&gt;Workflow nets cover the model level in process modelling and—by tokens—&lt;br /&gt;the process instance level as well. This means that for each business process&lt;br /&gt;model represented by a workflow net there can be multiple process instances&lt;br /&gt;following this model. Each process instance is represented by a set of tokens&lt;br /&gt;in the workflow net.&lt;br /&gt;                            The workflow net represents a business&lt;br /&gt;process in which claims are processed; the details of this process are not relevant&lt;br /&gt;to introducing how process instances are represented in workflow nets.&lt;br /&gt;The tokens are coloured; they contain values. If we abstract from any application&lt;br /&gt;data that might be represented by tokens, each token carries at least&lt;br /&gt;a process instance identifier.&lt;br /&gt;                                Case 5 is in the initial place; it is&lt;br /&gt;not yet started. Case 4 is reflected by two tokens, because it is currently on a&lt;br /&gt;parallel branch. The same holds for case 3, but for case 3 the Contact Client&lt;br /&gt;transition has already been conducted.&lt;br /&gt;       &lt;br /&gt;&lt;span style="font-weight: bold;"&gt;        Discussion&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                            Workflow nets are a well-known technique to model business processes in an&lt;br /&gt;abstract and formal way. In order to provide a formal background, especially&lt;br /&gt;in the context of soundness properties which will be investigated in Chapter&lt;br /&gt;6, several restrictions were introduced. Without these restrictions, formal&lt;br /&gt;analysis of workflow nets would not be feasible.&lt;br /&gt;   &lt;br /&gt;&lt;span style="font-weight: bold;"&gt;        Data and Conditions&lt;/span&gt;&lt;br /&gt;                    Data is not explicitly represented in workflow nets. Data is only handled in&lt;br /&gt;an abstract way, by denoting that tokens can be coloured, but the usage of&lt;br /&gt;these data structures in the process is not investigated.&lt;br /&gt;While the workflow net represents the structure of a set of similar process&lt;br /&gt;instances (i.e., the process model), the individual cases are represented by tokens.&lt;br /&gt;Each case is represented by at least one token. In general, when the case&lt;br /&gt;starts, there is one token in the source place i, and when the case completes,&lt;br /&gt;there is one token in the sink place o.&lt;br /&gt;The workflow management system that controls the enactment of cases&lt;br /&gt;requires differentiating between the tokens that belong to different cases. A&lt;br /&gt;transition t with incoming edges from places p and p0 realizes an and join.&lt;br /&gt;This means that t can only be enabled when there are tokens in p and p0, and&lt;br /&gt;these tokens need to belong to the same case.&lt;br /&gt;Therefore, tokens need to be typed. Tokens need (at least) to include a&lt;br /&gt;process instance identifier, so that t can synchronize the branches represented by p and p0 only, if these places have tokens that belong to the same case. As&lt;br /&gt;a simplification often made in the context of workflow nets, each workflow net&lt;br /&gt;contains tokens that belong to a single case. In this case, the tokens do not&lt;br /&gt;need to be typed.&lt;br /&gt;Decision transitions that realize or splits and exclusive or splits require&lt;br /&gt;expressions that are evaluated for each process instance to decide which branch&lt;br /&gt;to take. These decision expressions are also disregarded in workflow nets.&lt;br /&gt;Decisions are abstracted from in the following way: wherever there is a&lt;br /&gt;decision transition, each of the alternative branches will be taken eventually.&lt;br /&gt;This assumption mirrors the non-determination of firing in traditional Petri&lt;br /&gt;nets: multiple enabled transitions that share a common input place will fire&lt;br /&gt;in a non deterministic fashion.&lt;br /&gt;The same assumption is now in place for decision nodes in workflow nets:&lt;br /&gt;each expression in a decision transition will eventually evaluate to true. When&lt;br /&gt;analyzing workflow nets, this assumption is in place to detect structural errors&lt;br /&gt;in workflow nets. Errors that result from erroneous conditions associated with&lt;br /&gt;decision transitions, however, are not considered.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-1089824715176956398?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/1089824715176956398/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/09/business-process-management-part-2_4765.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/1089824715176956398'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/1089824715176956398'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/09/business-process-management-part-2_4765.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter IV Process Orchestrations ] ) Sec R -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-961494760139328833</id><published>2009-09-16T19:13:00.001+05:30</published><updated>2009-09-16T19:16:08.397+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter IV Process Orchestrations ] ) Sec Q -- By Mathias Weske</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Control Flow In Workflow Nets&lt;br /&gt;&lt;br /&gt;            &lt;/span&gt;A work item list of a particular user contains items, each of which represents&lt;br /&gt;an activity (more precisely, an activity instance) that is enabled and&lt;br /&gt;that can be executed by that user. Whenever a transition with a user trigger&lt;br /&gt;enters the enabled state, a work item representing this activity is sent to the&lt;br /&gt;work item lists of the users who can perform it. Role information is used to&lt;br /&gt;determine the knowledge workers. When a user selects a particular work item,&lt;br /&gt;the activity is started and the work items reflecting it can be deleted from the&lt;br /&gt;work item list.&lt;br /&gt;Modelling organizational aspects like users or roles is not supported by&lt;br /&gt;workflow nets. A transition marked with a user trigger indicates that the&lt;br /&gt;activity represented by that transition requires a human to start it. Organizational&lt;br /&gt;aspects need to be covered by tools that employ workflow nets for&lt;br /&gt;process modelling and other techniques for modelling organizations. The same&lt;br /&gt;applies for representing data, which is also not covered by workflow nets.&lt;br /&gt;An external trigger is the main instrument for reacting to external events&lt;br /&gt;like an incoming message. When the transition that carries an external trigger&lt;br /&gt;enters the enabled state, it listens for this event. When the event occurs, for&lt;br /&gt;instance, when an order arrives, the transition fires and the activity starts&lt;br /&gt;execution.&lt;br /&gt;        Time triggers are used to specify situations where the start of an activity&lt;br /&gt;depends on temporal aspects. Time triggers can be assigned a time-out value.&lt;br /&gt;The timer is started when the transition enters the enabled state. When the&lt;br /&gt;timer runs out, the enabled transition fires. If the transition is no longer&lt;br /&gt;enabled, the timer is stopped.&lt;br /&gt;        In this&lt;br /&gt;process, a request is sent, represented by the Send Request transition. The&lt;br /&gt;workflow net implements an implicit exclusive or split that concurrently enables&lt;br /&gt;(transitions that represent) activities to collect the response to the request&lt;br /&gt;and to send a reminder.&lt;br /&gt;The Collect Response activity is marked by an external trigger, so that&lt;br /&gt;it is started once the response comes in. A reminder should be sent if after&lt;br /&gt;a defined time interval, for instance, 14 days, no response is received. This&lt;br /&gt;business logic can be implemented in a workflow net by attaching a timer&lt;br /&gt;trigger to the Send Reminder transition.&lt;br /&gt;The timer is started when the transition enters the enabled state, i.e.,&lt;br /&gt;after the request is sent. If the response is received within the timer interval,&lt;br /&gt;then the Collect Response transition fires. In this case, the Send Reminder&lt;br /&gt;transition is no longer enabled, so that the timer can be stopped.&lt;br /&gt;        In an explicit exclusive or split (a), the decision on which branch to activate&lt;br /&gt;is made by a decision transition, so that either transition A or transition B&lt;br /&gt;is enabled. In this setting, the desired functionality is not realized, because if&lt;br /&gt;A is enabled, the timer will not be started, and if B is activated, there is no&lt;br /&gt;way for the user to start working on activity A.&lt;br /&gt;The timer is started, and the user trigger is available. If the user starts the activity on time, i.e., before the&lt;br /&gt;timer expires, then the timer is stopped. If the user fails to start the activity&lt;br /&gt;on time, activity B is started to cater to this situation.&lt;br /&gt;        Trigger activities can formally be represented by places with an arc to the&lt;br /&gt;respective transition. For instance, a user trigger of a transition A is represented&lt;br /&gt;by a place p such that p 2 P and (p,A) 2 F, as shown in Figure 4.51.&lt;br /&gt;The behaviour of the user is represented as follows. If and when the user selects&lt;br /&gt;this activity, a token is put in place p, enabeling transition A. In this&lt;br /&gt;case, A can fire, representing the execution of that activity.&lt;br /&gt;While the behaviour of the user trigger is specified well using the additional&lt;br /&gt;place and the additional arc, there is an issue to cope with: the Petri net&lt;br /&gt;resulting from expanding the user trigger by a place and an arc is no longer a&lt;br /&gt;Workflow net! This is due to the fact that p is not on a path from the initial&lt;br /&gt;place i to the final place o. In the context of business processes involving&lt;br /&gt;multiple parties, however, these trigger places are very useful to interconnect&lt;br /&gt;the processes involved.&lt;br /&gt;        The diagram shows a business process involving a customer and a bookstore, and it contains&lt;br /&gt;activities for the ordering of books by the customer and the processing of the&lt;br /&gt;order by the bookstore.&lt;br /&gt;All activities in this scenario are represented by transitions of one workflow&lt;br /&gt;net. In order to satisfy the structural properties of workflow nets, the process&lt;br /&gt;starts in the initial place i at the customer, and it ends in the final place o at&lt;br /&gt;the customer. Later, in the context of business process choreographies, more&lt;br /&gt;elaborate techniques will be introduced that separate an externally observable&lt;br /&gt;behaviour of a business process from its internal realization. However, in the&lt;br /&gt;current example, the workflow spans multiple parties.&lt;br /&gt;The process starts with the customer browsing the online catalogue of a&lt;br /&gt;bookstore and selecting books. If books are found, an order is assembled and&lt;br /&gt;sent, represented by the send order transition. This transition spawns off two&lt;br /&gt;concurrent threads, as shown by the and split symbol.&lt;br /&gt;In one thread, the message is sent to the bookstore. The sending of the&lt;br /&gt;order is represented by a token in the input place of the receive order transition.&lt;br /&gt;When the order is received in the bookstore, the order is processed.&lt;br /&gt;If the order is okay, the books are sent; otherwise, a message is sent to the&lt;br /&gt;customer that informs him that not all books are available.&lt;br /&gt;This means that the bookstore sends one of two possible messages for each&lt;br /&gt;case. On the customer side, this situation is handled by an implicit exclusive&lt;br /&gt;or split. In this split, two transitions can be enabled at the same time. If the&lt;br /&gt;bookstore sends the books, the receive books transition of the customer is&lt;br /&gt;enabled and will fire.&lt;br /&gt;If on the other hand the information message is sent, the respective transition&lt;br /&gt;on the customer side is enabled. Observe that the alternative branches&lt;br /&gt;in the bookstore need to be joined, and the join transition is connected to&lt;br /&gt;the customer side. This is required in workflow nets, because otherwise there&lt;br /&gt;would be places in the workflow net (send books and send not available) that&lt;br /&gt;are not on a path from the initial place to the final place.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-961494760139328833?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/961494760139328833/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/09/business-process-management-part-2_16.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/961494760139328833'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/961494760139328833'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/09/business-process-management-part-2_16.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter IV Process Orchestrations ] ) Sec Q -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-4537243280293858007</id><published>2009-09-08T14:29:00.002+05:30</published><updated>2009-09-08T14:32:30.912+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter IV Process Orchestrations ] ) Sec P -- By Mathias Weske</title><content type='html'>&lt;span style="font-weight: bold;"&gt;    Control Flow in Workflow Nets&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                                The ability to represent control flow structures in workflow nets is investigated.&lt;br /&gt;As with any other process modelling language, the sequence control&lt;br /&gt;construct can easily be expressed in workflow nets.&lt;br /&gt;&lt;br /&gt;                                The firing rule of Petri nets makes sure that A puts a token on p only&lt;br /&gt;after its termination. Hence, B is enabled only after there is a token in p.&lt;br /&gt;Since only enabled transitions can fire, we have the following sequence of&lt;br /&gt;events: A fires and puts a token in p enabling B, which can now start its&lt;br /&gt;execution. Therefore, by transitivity of the ordering relation, B can only start&lt;br /&gt;after A has terminated.&lt;br /&gt;Observe that colouring information is not regarded when discussing control&lt;br /&gt;flow in workflow nets. For the sequence pattern, the colouring of the tokens&lt;br /&gt;can be disregarded. However, if transitions need to make decisions when they&lt;br /&gt;fire, the colouring of the tokens needs to be taken into account; this will be&lt;br /&gt;discussed in more detail below.&lt;br /&gt;                                And split and and join control flow constructs can also be expressed in&lt;br /&gt;workflow nets conveniently. Again, standard Petri net firing behaviour suffices.&lt;br /&gt;A workflow net in which there is a transition A that puts&lt;br /&gt;tokens in its output places p1 and p2, enabling B and C, respectively. As&lt;br /&gt;a result, transition A realizes an and split. After B and C have terminated,&lt;br /&gt;there are tokens in p3 and p4, enabling the and join transition D.&lt;br /&gt;                                    The exclusive or split and exclusive or join patterns can also be expressed&lt;br /&gt;in standard Petri nets.These transitions are enabled at the same time. This type of exclusive&lt;br /&gt;or split is called implicit exclusive split, because its behaviour depends on the&lt;br /&gt;behaviour of the transitions involved, in this case, A and B.&lt;br /&gt;                                Although both transitions are enabled—in the example, A and B—only&lt;br /&gt;one transition can fire, withdrawing the token from p1 and adding a token&lt;br /&gt;to p2. The exclusive or join is realized by a place that receives a token from&lt;br /&gt;either A or B.&lt;br /&gt;                              The transitions involved decide by&lt;br /&gt;their firing behaviour about the branch of the workflow net that the process&lt;br /&gt;instance takes. Since the decision is deferred to the latest point in time, this&lt;br /&gt;pattern is also called deferred choice.&lt;br /&gt;There is a second type of exclusive or split in workflow nets, in which the&lt;br /&gt;decision on which path to take is made explicitly by a transition. This feature&lt;br /&gt;takes advantage of coloured Petri nets, in which transitions can implement&lt;br /&gt;decision rules, which are evaluated at run time to decide which of its output&lt;br /&gt;places to put tokens on.&lt;br /&gt;This also means that the behaviour of classical Petri nets is no longer valid&lt;br /&gt;for workflow nets. As a consequence, as in coloured Petri nets, the graphical&lt;br /&gt;representation of the workflow net does not fully specify the behaviour of the&lt;br /&gt;process instance controlled by the workflow net.&lt;br /&gt;            Transition&lt;br /&gt;A implements a decision rule by associating conditions with each of its&lt;br /&gt;outgoing edges. An exclusive or semantics of this decision can be realized in&lt;br /&gt;different ways (workflow nets do not prescribe any of them).&lt;br /&gt;The first way to realize an exclusive or semantics is to make sure that&lt;br /&gt;the conditions are chosen in a way that always one and only one condition&lt;br /&gt;evaluates to true. The second way is to evaluate conditions of outgoing edges&lt;br /&gt;in order. As soon as one condition evaluates to true, the respective edge is&lt;br /&gt;chosen, and the token is put on the respective place.&lt;br /&gt;The problem with this strategy is that there might be situations in which&lt;br /&gt;no condition evaluates to true. If no additional measures are taken, then the&lt;br /&gt;case gets stuck at this point. This problem can be tackled by defining a default&lt;br /&gt;branch which is taken if none of the (expressions of the) other branches&lt;br /&gt;evaluates to true.&lt;br /&gt;To express the particular split and join behaviour of transitions in workflow&lt;br /&gt;nets, the transitions are labelled with specific symbols.&lt;br /&gt;                    It is the responsibility of the modeller of the workflow net to make sure&lt;br /&gt;that the decisions associated with the transitions match their symbols. The&lt;br /&gt;and split and and join markers indicate that the traditional Petri net firing&lt;br /&gt;behaviour of transitions is in place.&lt;br /&gt;If a transition is marked with an and split symbol, the reader of the workflow&lt;br /&gt;net knows that the transition puts a token on all its output places. Split&lt;br /&gt;transitions and join transitions that are based on an explicit decision are&lt;br /&gt;marked accordingly to show that complex splitting behaviour can be expected.&lt;br /&gt;Workflow nets represent business processes, focusing on activities and their&lt;br /&gt;execution constraints. To enhance the representation of business processes&lt;br /&gt;and to provide a means to represent in more detail the environment in which&lt;br /&gt;these processes are enacted, triggers have been introduced. In the context of&lt;br /&gt;workflow nets, triggers are annotations to transitions that provide information&lt;br /&gt;on who or what is responsible for an enabled transition to fire.&lt;br /&gt;Situations in real-world business processes that can be represented by triggers&lt;br /&gt;are the receipt of an electronic message or a time-out of a timer to remind&lt;br /&gt;an employee of an upcoming deadline. Generally, a business process management&lt;br /&gt;system is a reactive system. It reacts to events in its environment by&lt;br /&gt;enabling an activity. Triggers play an important role in informing the system&lt;br /&gt;about events in the process environment that are relevant for the process.&lt;br /&gt;Figure 4.48 shows the types of triggers used in workflow nets. Transitions&lt;br /&gt;that can fire immediately after they have been enabled are not marked with a&lt;br /&gt;trigger; triggering is therefore automatic. For example, automatic triggers are&lt;br /&gt;used for transitions that are realized by invoking a software system, where no&lt;br /&gt;user interaction is required.&lt;br /&gt;A user trigger is attached to transitions that require human interaction.&lt;br /&gt;By marking a transition with a user trigger, the process modeller expresses the&lt;br /&gt;fact that a human user takes the initiative to start the activity represented by&lt;br /&gt;the transition. This trigger is relevant in human interaction workflows, where&lt;br /&gt;work items are used to communicate with human users.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-4537243280293858007?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/4537243280293858007/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/09/business-process-management-part-2_3097.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/4537243280293858007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/4537243280293858007'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/09/business-process-management-part-2_3097.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter IV Process Orchestrations ] ) Sec P -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-8933212113817535445</id><published>2009-09-08T14:25:00.002+05:30</published><updated>2009-09-08T14:29:22.339+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter IV Process Orchestrations ] ) Sec O -- By Mathias Weske</title><content type='html'>&lt;span style="font-weight: bold;"&gt;        Workflow Nets&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                        Event-driven process chains provide an informal notation for representing&lt;br /&gt;business processes and their environment. To precisely specify and reason&lt;br /&gt;about business processes, more formal approaches need to be investigated,&lt;br /&gt;such as, Petri nets.&lt;br /&gt;While Petri nets are very useful for representing simple types of processes,&lt;br /&gt;complex processes such as business processes require advanced modelling&lt;br /&gt;mechanisms. In particular, tokens need to carry information at least about&lt;br /&gt;the process instance they belong to.&lt;br /&gt;Workflow nets are an approach to enhance traditional Petri nets with&lt;br /&gt;concepts and notations that ease the representation of business processes.&lt;br /&gt;At the same time, workflow nets introduce structural restrictions that prove&lt;br /&gt;useful for business processes.&lt;br /&gt;The reasons for using Petri nets in general and workflow nets in particular&lt;br /&gt;for business process modelling are as follows.&lt;br /&gt;• Formal Semantics: Business processes can be defined in a formal manner.&lt;br /&gt;This observation holds in particular for the control flow aspect of Petri&lt;br /&gt;nets.&lt;br /&gt;• Graphical Representation: Activities in a business process and their execution&lt;br /&gt;constraints are expressed graphically in a Petri net, which eases&lt;br /&gt;communication about business processes with the different stakeholders&lt;br /&gt;involved (although some stakeholders prefer semiformal techniques like&lt;br /&gt;event-driven process chains).&lt;br /&gt;• Analysis of Process Properties: The formal semantics of business processes&lt;br /&gt;expressed in Petri nets allows for the analysis of process properties.&lt;br /&gt;• Tool Independence: Although several business process management tools&lt;br /&gt;are based on Petri nets, the formalism itself is vendor independent.&lt;br /&gt;   &lt;br /&gt;&lt;span style="font-weight: bold;"&gt;                    Definitions&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                            Like Petri nets, workflow nets focus on the control flow behaviour of a process. Places represent conditions and tokens represent process instances. Activities of a&lt;br /&gt;business process are represented by transitions in the workflow net.&lt;br /&gt;                             Because tokens represent business process instances, tokens hold application&lt;br /&gt;data including process instance identifiers, i.e., the tokens are coloured.&lt;br /&gt;However, in workflow nets, the colouring of tokens is not represented explicitly,&lt;br /&gt;as will be discussed in more detail below.Workflow nets can be hierarchically structured.The internal structure of a complex&lt;br /&gt;activity is realized by another dedicated workflow net. Hierarchical structuring&lt;br /&gt;of workflow nets is not investigated in detail; in the context of the YAWL&lt;br /&gt;process language, hierarchical structuring based on extended workflow nets is&lt;br /&gt;studied.&lt;br /&gt;Based on these considerations, workflow nets can be defined as Petri nets&lt;br /&gt;with specific structural restrictions.&lt;br /&gt;Definition 4.8 A Petri net PN = (P, T, F) is called workflow net if and only&lt;br /&gt;if the following conditions hold.&lt;br /&gt;• There is a distinguished place i 2 P (called initial place) that has no&lt;br /&gt;incoming edge, i.e., •i = ;.&lt;br /&gt;• There is a distinguished place o 2 P (called final place) that has no outgoing&lt;br /&gt;edge, i.e., o• = ;.&lt;br /&gt;• Every place and every transition is located on a path from the initial place&lt;br /&gt;to the final place.&lt;br /&gt;The rationale of this definition is as follows: a token in the initial place i&lt;br /&gt;represents a process instance that has not yet started; a token in place o&lt;br /&gt;represents a finished process instance. Each place and each transition in a&lt;br /&gt;workflow net can participate in a process instance; therefore, each place and&lt;br /&gt;each transition needs to be located on a path from i to o.&lt;br /&gt;As a consequence of these structural properties of workflow nets, the initial&lt;br /&gt;place i is the only place without incoming edges, and the final place is the&lt;br /&gt;only place without any outgoing edges.&lt;br /&gt;If there were another place i0 6= i 2 P without incoming edges, then i0&lt;br /&gt;could not be located on a path from i to o, contradicting the definition of&lt;br /&gt;workflow net. And if there were a place o0 6= o 2 P without outgoing edges,&lt;br /&gt;then o0 could not be on a path from i to o. Therefore, places with the properties&lt;br /&gt;of i0 and o0 cannot exist in workflow nets.&lt;br /&gt;        It represents a simple&lt;br /&gt;claim management process in which, initially, the claim is recorded and, concurrently,&lt;br /&gt;a witness report is created and the client status is checked. After&lt;br /&gt;the results have been gathered, an assessment of the claim is performed. In&lt;br /&gt;the case of a positive assessment, the damage is compensated. In the case of&lt;br /&gt;a negative assessment, the claim is rejected. Finally the claim is filed and the&lt;br /&gt;process completes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-8933212113817535445?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/8933212113817535445/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/09/business-process-management-part-2_08.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/8933212113817535445'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/8933212113817535445'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/09/business-process-management-part-2_08.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter IV Process Orchestrations ] ) Sec O -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-4783498615834167739</id><published>2009-09-07T19:19:00.002+05:30</published><updated>2009-09-07T19:24:35.347+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter IV Process Orchestrations ] ) Sec  N -- By Mathias Weske</title><content type='html'>&lt;span style="font-weight: bold;"&gt;    Event-driven Process Chains Definition&lt;br /&gt;&lt;br /&gt;                &lt;/span&gt;A tuple A = (E, F, V, m,C) is an event-driven process chain,&lt;br /&gt;if&lt;br /&gt;• E is a nonempty set of events&lt;br /&gt;• F is a nonempty set of functions&lt;br /&gt;• V is a set of connectors&lt;br /&gt;• m : V 7! {and, or, xor} is a mapping that assigns to each connector a&lt;br /&gt;connector type, representing and, or, and exclusive or semantics.&lt;br /&gt;• Let K = E [ F [ V . C  K × K is a set of edges connecting events,&lt;br /&gt;functions, and connectors such that the following conditions hold:&lt;br /&gt;– (K,C) is a connected graph&lt;br /&gt;– Each function has exactly one incoming edge and exactly one outgoing&lt;br /&gt;edge.&lt;br /&gt;– There is at least one start event and at least one end event. Each start&lt;br /&gt;event has exactly one outgoing edge and no incoming edge. Each end&lt;br /&gt;event has exactly one incoming edge and no outgoing edge. There is at&lt;br /&gt;least one start event and one end event. All other events have exactly&lt;br /&gt;one incoming edge and one outgoing edge.&lt;br /&gt;– Each event can only be followed (possibly via connectors) by functions,&lt;br /&gt;and each function can only be followed (possibly via connectors) by&lt;br /&gt;events.&lt;br /&gt;– There is no cycle in an event-driven process chain that consists of&lt;br /&gt;connectors only.&lt;br /&gt;– No event is followed by a decision node, i.e., an or split node or an&lt;br /&gt;exclusive or split node.&lt;br /&gt;&lt;br /&gt;            Depending on the connector used, the occurrence of one event (exclusive&lt;br /&gt;or join connector), the occurrence of two events (and join connector), or the&lt;br /&gt;occurrence of any nonempty subset of events (or join connector) triggers a&lt;br /&gt;function F. There is no surprise with respect to the semantics of the connectors:&lt;br /&gt;an exclusive or connector triggers F after either E1 or E2 has occurred;&lt;br /&gt;for the and connector to trigger the function, both events must occur, and&lt;br /&gt;the or connector triggers F after any nonempty subset of events E1 and E2&lt;br /&gt;has occurred.&lt;br /&gt;        The execution semantics of the split connectors follows the traditional way: an exclusive or split connector represents the business logic that after F,&lt;br /&gt;either event E1 or event E2 occurs. The decision about which event actually&lt;br /&gt;occurs during a particular process instance is made by function F. Analogous&lt;br /&gt;considerations hold for the or split connector, where any nonempty subset of&lt;br /&gt;events {E1,E2} can occur after F. The and split connector determines that&lt;br /&gt;after function F, both events E1 and E2 occur.&lt;br /&gt;        Event-driven&lt;br /&gt;process chains start with events (never with functions), since a function is always a consequence of an event and cannot therefore be performed without&lt;br /&gt;the state change represented by the event.&lt;br /&gt;When an order is received, it is analyzed and either accepted or rejected.&lt;br /&gt;When it is accepted, the stock is checked for availability of the ordered products.&lt;br /&gt;If all products are in stock, then the products are shipped and the bill&lt;br /&gt;is sent. In case there are additional bills open, the payment will need to include&lt;br /&gt;these open bills. The other parts of the event-driven process chains deal&lt;br /&gt;with the manufacturing of products if the ordered products are not in stock.&lt;br /&gt;While most constructs of event-driven process chains can be explained in this&lt;br /&gt;example, the process is a severe simplification of real-world ordering processes.&lt;br /&gt;While the process aspect in terms of the functions and events that occur in&lt;br /&gt;business processes is well captured by event-driven process chains, there are&lt;br /&gt;other types of diagrams that abstract from the relatively fine-granular level&lt;br /&gt;of event-driven process chains.&lt;br /&gt;Interaction flow diagrams provide a high-level view on the organizational&lt;br /&gt;entities that participate in a business process, as well as their interactions.&lt;br /&gt;An interaction flow diagram is a directed graph, whose nodes correspond to&lt;br /&gt;organizational entities and whose edges represent interactions between the&lt;br /&gt;organizations.&lt;br /&gt;        The interaction flow diagram shown describes at a high level of abstraction&lt;br /&gt;a business process in which a customer sends an order to the marketing and&lt;br /&gt;sales department, which triggers the purchase of raw material, before operations manufactures the products and finally ships them to the customer, who&lt;br /&gt;pays for ordered products.&lt;br /&gt;While the overall interactions are properly represented in interaction flow&lt;br /&gt;diagrams, the ordering in which these interactions actually occur is not in the&lt;br /&gt;scope of interaction flow diagrams. For instance, the two interactions between&lt;br /&gt;customer and sales are not ordered in the diagram.&lt;br /&gt;        However, the reader of an interaction diagram might be able to deduce&lt;br /&gt;the ordering of interactions by common sense. For instance, placing an order&lt;br /&gt;is done before paying for the ordered item. The diagram itself abstracts from&lt;br /&gt;these ordering relationships and, therefore, provides an abstract, high-level&lt;br /&gt;representation of the organizational entities involved in a business process&lt;br /&gt;and their relationships through interactions.&lt;br /&gt;        Function flow diagrams are a refinement of interaction flow diagrams in&lt;br /&gt;the sense that they (i) represent the ordering of interactions and (ii) provide&lt;br /&gt;coarse-grained functions for representing these interactions.The latter includes functions and&lt;br /&gt;an ordering relationship between these functions, indicating that the entering&lt;br /&gt;of the order precedes the processing of the order by the marketing and sales&lt;br /&gt;department.&lt;br /&gt;        In addition to the functions and their ordering, split and branch ing nodes are introduced. Function flow diagrams provide information on the&lt;br /&gt;coarse grained functions involved in a business process, as well as the organizational&lt;br /&gt;entities that perform them. In addition, the ordering of these functions&lt;br /&gt;is also represented in function flow diagrams.&lt;br /&gt;In the sample function flow diagram it is clarified that planning the manufacturing&lt;br /&gt;and purchasing of material are performed concurrently, but the item&lt;br /&gt;is only manufactured after the supplier has processed the order and manufacturing&lt;br /&gt;has received the material. The function flow diagram also models&lt;br /&gt;the fact that payment of the received material is performed concurrently to&lt;br /&gt;manufacturing the item.&lt;br /&gt;        To summarize, function flow diagrams provide high-level information on&lt;br /&gt;the functions in a business process and on the organizational entities that perform&lt;br /&gt;them and their ordering. Events of the business process are not covered&lt;br /&gt;by function flow diagrams.&lt;br /&gt;Additional views are represented by enhancing event-driven process chains&lt;br /&gt;with notational symbols for data involved as well as for process paths and&lt;br /&gt;process groups. Data and material are represented by rectangles, associated&lt;br /&gt;with functions by solid arrows. The direction of the arrows indicates whether&lt;br /&gt;the data is used for input or output (or both). Process groups hold a collection&lt;br /&gt;of processes, and process paths indicate where the process continues.This part consists of a single function to analzye an order and its environment.&lt;br /&gt;When the order arrives, the function is triggered, represented by the respective&lt;br /&gt;event. In order to check the order, the order document and the stock status&lt;br /&gt;are used as input data.&lt;br /&gt;We assume the function is performed by the operations department. When&lt;br /&gt;the function completes, the result is recorded in the check result data object.&lt;br /&gt;The function is also responsible for creating the respective event: either the&lt;br /&gt;products are in stock or the products are not in stock and need to be manufactured.&lt;br /&gt;            Event-driven process chains allow us to model business processes from a&lt;br /&gt;business perspective. The explicit representation of the occurrence of relevant&lt;br /&gt;situations by events and the bipartite structure, in which events and functions&lt;br /&gt;alternate, lead to verbose and often actually quite complex process representations.&lt;br /&gt;Due to their semiformal nature, business engineers and process designers&lt;br /&gt;enjoy a fair degree of freedom when expressing business processes. When&lt;br /&gt;it comes to implemented business processes, process designers and systems&lt;br /&gt;engineers need to make explicit what was intended by the EPC.&lt;br /&gt;The or join is an important control flow construct in EPCs, which is used&lt;br /&gt;quite often, because it allows us to represent any type of join behaviour.&lt;br /&gt;            Due to the nonlocal semantics, the decision on when the join needs to be&lt;br /&gt;performed cannot be taken without nonlocal knowledge.&lt;br /&gt;Since event-driven process chains are primarily used to model business&lt;br /&gt;processes at a business level, typically humans interpret event-driven process&lt;br /&gt;chains. Since humans, when assessing an EPC, have nonlocal knowledge, the&lt;br /&gt;semantics of the or join is clear to them.&lt;br /&gt;The problems start when an EPC needs to be translated into an executabe&lt;br /&gt;format, for instance, to serve as input for a workflow management system to&lt;br /&gt;control the enactment of business processes. There are approaches in handling&lt;br /&gt;the or join semantics, based on global state transition systems; for details,&lt;br /&gt;the reader is referred to the bibliographical notes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-4783498615834167739?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/4783498615834167739/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/09/business-process-management-part-2_9404.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/4783498615834167739'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/4783498615834167739'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/09/business-process-management-part-2_9404.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter IV Process Orchestrations ] ) Sec  N -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-5573671299443829097</id><published>2009-09-07T19:17:00.002+05:30</published><updated>2009-09-07T19:19:46.046+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter IV Process Orchestrations ] ) Sec  M -- By Mathias Weske</title><content type='html'>&lt;span style="font-weight: bold;"&gt;        Event-driven Process Chains&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                    Event-driven process chains are an important notation to model the domain&lt;br /&gt;aspects of business processes. The main focus of this rather informal notation&lt;br /&gt;is on representing domain concepts and processes rather than their formal&lt;br /&gt;aspects or their technical realization. Event-driven process chains are part&lt;br /&gt;of a holistic modelling approach, called the ARIS framework; ARIS stands for Architecture of Integrated Information Systems, and it was developed by&lt;br /&gt;August-Wilhelm Scheer.&lt;br /&gt;                The pillars reflect data, control and function,&lt;br /&gt;while the roof reflects the overall organization. In each area, three levels of&lt;br /&gt;abstraction are identified: a concept level, an architecture level, and an implementation&lt;br /&gt;level, characterized by the terms Requirements Definition, Design&lt;br /&gt;Specification, and Implementation Description, respectively.&lt;br /&gt;The concept level is the highest level of abstraction in which data, control&lt;br /&gt;and function are modelled. This level looks at nontechnical requirements of&lt;br /&gt;business processes and their execution environment. Business goals and functions&lt;br /&gt;are typical artefacts in the function view at this level. The data view is&lt;br /&gt;expressed by data modelling techniques using Entity Relationship diagrams.&lt;br /&gt;                In the control view, business processes are described by event-driven&lt;br /&gt;process chains, which are also used to integrate the different views. The organizational&lt;br /&gt;view at the concept level deals with the organizational structures&lt;br /&gt;of a company, described by organizational diagrams. The architecture level is&lt;br /&gt;the intermediate level, and it aims at bridging the gap between the concept&lt;br /&gt;level and the implementation level. At the implementation level, steps towards&lt;br /&gt;concrete realization of the business process are addressed.&lt;br /&gt;                This framework is specified by a set of metamodels that describe various&lt;br /&gt;views, similar to the business process perspectives introduced in Chapter 3.&lt;br /&gt;The main views are as follows.&lt;br /&gt;• Functional View: The functional view represents the goals and subgoals of&lt;br /&gt;the enterprise and their relationships. In general, one subgoal might contribute&lt;br /&gt;to a number of goals at the higher level. For instance, the subgoal&lt;br /&gt;“reduce business process execution time” contributes to the goals “increase&lt;br /&gt;customer satisfaction” and “reduce overall cost.”&lt;br /&gt;At a lower level of abstraction, each subgoal is associated with a set of&lt;br /&gt;functions that contribute to goals and subgoals. Functions are then hierarchically&lt;br /&gt;decomposed until the desired granularity of functions is achieved,&lt;br /&gt;similarly to functional decomposition in value chains.&lt;br /&gt;• Organizational View: The organizational view describes the organizational&lt;br /&gt;structure of an enterprise at a type level and at an instance level. There&lt;br /&gt;are detailed specifications of organizational entities, including their relationships&lt;br /&gt;and positions, roles, skills, and individuals associated with them.&lt;br /&gt;Administration information such as the address of an organizational entity&lt;br /&gt;can be represented. The organizational view also includes organizational&lt;br /&gt;aspects of information technology of the enterprise, including its main&lt;br /&gt;operational information systems, its storage facilities, and its network infrastructure.&lt;br /&gt;• Data View: The data view characterizes business relevant data objects that&lt;br /&gt;are manipulated by functions during business process execution. Entity&lt;br /&gt;Relationship diagrams are used for data modelling.&lt;br /&gt;• Business Value View or Output View: The business value view describes&lt;br /&gt;the outcome of business processes, i.e., the products and services the enterprise&lt;br /&gt;generates. These can be physical goods like automobiles or electronic&lt;br /&gt;devices, as well as intangible goods, such as a processed order or a flight&lt;br /&gt;booking.&lt;br /&gt;These views are integrated in a control view. This control view provides linkage&lt;br /&gt;between the artefacts in the different views. Functions, for instance, are&lt;br /&gt;associated with the organizations that are responsible for conducting these&lt;br /&gt;functions. Analogously, data and business value artefacts are associated with&lt;br /&gt;functions, data, and organization, providing an integrated view of the business&lt;br /&gt;processes of an enterprise.&lt;br /&gt;Process modelling uses event-driven process chains. The main building&lt;br /&gt;blocks of event-driven process chains are events, functions, connectors, and&lt;br /&gt;control flow edges, as shown in Figure 4.33.&lt;br /&gt;The entering of a business-relevant state is represented by an event in an&lt;br /&gt;event-driven process chain. Examples of events are the receipt of an order, the&lt;br /&gt;completion of processing an order, and the completion of shipping a product.&lt;br /&gt;In event-driven process chains, events are represented by hexagons. Events&lt;br /&gt;are marked by a string, often of the type order is received, indicating a business&lt;br /&gt;relevant object (order) and the state change that has occurred to this object (is received). Events trigger functions, and functions are triggered by events.&lt;br /&gt;Events are passive elements in the sense that they do not provide decisions.&lt;br /&gt;Functions represent units of work. The granularity of these functions depends&lt;br /&gt;on the modelling purpose. In general, functions in event-driven process&lt;br /&gt;chains are at a rather low level of granularity; their contribution to functions&lt;br /&gt;at higher levels of granularity or to business goals is specified in the functional&lt;br /&gt;view.&lt;br /&gt;Unlike events, functions are active elements that take input and transform&lt;br /&gt;it to output. Input and output can be information products or physical products.&lt;br /&gt;Functions can also make decisions that influence the behaviour of the&lt;br /&gt;process through connector nodes associated with the function. Functions are&lt;br /&gt;triggered by events, and on the completion of a function, an event occurs. In&lt;br /&gt;event-driven process chains, functions are represented by rounded rectangles.&lt;br /&gt;Connectors are used to model causal ordering relations, i.e., to represent&lt;br /&gt;the process logic. There are three types of connectors, for logical and, or, and&lt;br /&gt;exclusive or (xor). These connectors serve both as split nodes and as join&lt;br /&gt;nodes. Depending on the number of incoming edges, it can be determined if&lt;br /&gt;a connector is a split connector or a join connector.&lt;br /&gt;It is also possible that connectors serve at the same time as split connector&lt;br /&gt;and join connector. In case split and join realize the same semantics (for&lt;br /&gt;instance, both have and semantics), a connector with an and symbol suffices.&lt;br /&gt;In case the split and join have different semantics, the connector can be divided&lt;br /&gt;into an upper and a lower part, each of which holds a notational symbol. Other combinations&lt;br /&gt; are also possible. Edges are used to provide the glue between events, functions,&lt;br /&gt;and connectors. Event-driven process chains are defined as follows.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-5573671299443829097?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/5573671299443829097/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/09/business-process-management-part-2_07.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/5573671299443829097'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/5573671299443829097'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/09/business-process-management-part-2_07.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter IV Process Orchestrations ] ) Sec  M -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-294935200086592918</id><published>2009-09-06T22:05:00.000+05:30</published><updated>2009-09-06T22:07:14.137+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter IV Process Orchestrations ] ) Sec  L -- By Mathias Weske</title><content type='html'>&lt;span style="font-weight: bold;"&gt;         Coloured Petri Nets&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                    In event condition nets and place transition nets it is impossible to distinguish&lt;br /&gt;tokens from one another. This shortcoming in simple types of Petri nets is&lt;br /&gt;addressed by the colour feature, which allows tokens to have values.&lt;br /&gt;Like variables in programming languages, tokens have typed values. The&lt;br /&gt;data type of a token defines the domain of values and the operations that are valid on the data. In the context of coloured Petri nets, data types are&lt;br /&gt;also called colour sets, with the understanding that a colour set of a token&lt;br /&gt;represents the set of values that the token can possibly have.&lt;br /&gt;In coloured Petri nets, the enabling of a transition is determined the not&lt;br /&gt;by only number of tokens in the input places of the transition, but also by&lt;br /&gt;the values of these tokens. Whether the precondition of a transition is met or&lt;br /&gt;not depends on the presence and values of the tokens to be consumed. This&lt;br /&gt;behaviour is realized by attaching expressions to transitions that are evaluated&lt;br /&gt;to decide whether a transition is enabled.&lt;br /&gt;Similarly, the values of the tokens produced by a transition firing may&lt;br /&gt;depend on values of the tokens consumed. This also means that not all of&lt;br /&gt;the output places receive tokens upon the firing of a transition, realizing a&lt;br /&gt;choice of branches of the net based on the values of the token consumed and&lt;br /&gt;the conditions attached to the transition. The specific firing behaviour of a&lt;br /&gt;transition is specified in the postcondition of the transition.&lt;br /&gt;As a result, the graphical representation of coloured Petri nets is not complete,&lt;br /&gt;since expressions that denote preconditions and postconditions, as well&lt;br /&gt;as values of tokens, are not shown.&lt;br /&gt;While there are several variants of coloured Petri nets, the reminder of&lt;br /&gt;this section introduces them as developed by Kurt Jensen. The behaviour&lt;br /&gt;of transitions is guided by tokens in the input places, in guards attached to&lt;br /&gt;transitions, and in expressions attached to arcs, the arc expressions.&lt;br /&gt;Arc expressions are used to determine whether a transition is enabled.&lt;br /&gt;Arc expressions evaluate to multi-sets, where multi-sets can contain multiple&lt;br /&gt;identical elements. These multi-sets determine the tokens removed from the&lt;br /&gt;input places and added to the output places of a transition when it fires.&lt;br /&gt;Definition 4.6 A coloured Petri net is a tuple (, P, T, A,N,C, G,E, I) such&lt;br /&gt;that&lt;br /&gt;•  is a finite set of nonempty types, called colour sets&lt;br /&gt;• P is a finite set of places&lt;br /&gt;• T is a finite set of transitions&lt;br /&gt;• A is a finite set of arc identifiers, such that P \ T = P \ A = T \ A = ;&lt;br /&gt;• N : A ! (P ×T)[(T ×P) is a node function that maps each arc identifier&lt;br /&gt;to a pair (start node, end node) of the arc&lt;br /&gt;• C : P !  is a colour function that associates each place with a colour&lt;br /&gt;set&lt;br /&gt;• G : T ! BooleanExpr is a guard function that maps each transition to a&lt;br /&gt;predicate&lt;br /&gt;• E : A ! Expr is an arc expression that evaluates to a multi-set over the&lt;br /&gt;colour set of the place&lt;br /&gt;• I is an initial marking of the coloured Petri net&lt;br /&gt;            Bindings are used to associate data values to variables, i.e., colours to tokens.&lt;br /&gt;For instance, the value “Paula” can be bound to a variable “name.” In coloured&lt;br /&gt;Petri nets, the enabling of a transition depends on a binding. A transition t&lt;br /&gt;is enabled in a binding b if its input places contain tokens that satisfy the&lt;br /&gt;arc expressions under binding b and if in addition, the guard function of the&lt;br /&gt;transition evaluates to true.&lt;br /&gt;If a transition is enabled, it can fire. Depending on the evaluation of the arc&lt;br /&gt;expressions, the respective tokens are removed from the input places. Guided&lt;br /&gt;by the arc expressions of the outgoing edges, the respective tokens are added&lt;br /&gt;to the output places. For a formal treatment of coloured Petri nets, the reader&lt;br /&gt;is referred to the bibliographical notes at the end of this chapter.&lt;br /&gt;        The coloured Petri net has associated a colour set consisting of [Customer,&lt;br /&gt;Amount] pairs of values, where Customer is a string and Amount is an integer&lt;br /&gt;value. Coloured tokens represent specific [Customer, Amount] value pairs.&lt;br /&gt;Initially, there are three tokens in the Credit Request place p1, representing&lt;br /&gt;the credit requests by Paula, Mary, and Peter and their respective credit&lt;br /&gt;amounts. The AssessRisk transition is enabled, because there is a token in&lt;br /&gt;its input place and there is no additional guard function associated with that&lt;br /&gt;transition.&lt;br /&gt;The AssessRisk transition is enabled under binding c = Paula, and a =&lt;br /&gt;15000, because there is a token [Paula,15000 ] at p1 that satisfies the arc&lt;br /&gt;expression. Since there is no additional guard expression associated with that&lt;br /&gt;transition, it is enabled, and it can fire.&lt;br /&gt;The assess risk transition decides on which of its output places a token&lt;br /&gt;should be put when it fires. The respective arcs are labelled postcon ditions that define the firing behaviour. Assuming a token carrying the value&lt;br /&gt;[Paula,15000 ] is consumed, so that amount is below 20000, the AssessRisk&lt;br /&gt;transition puts a token on p3 and not on p2, enabling the SimpleRiskAssessment&lt;br /&gt;transition.&lt;br /&gt;This behaviour of the coloured Petri net is due to the arc expressions&lt;br /&gt;associated with the outgoing edges of the transition. When the transition fires,&lt;br /&gt;the arc expressions of both outgoing edges are evaluated. Since the requested&lt;br /&gt;amount is below 20000, only the arc expression if a &lt;=20000 (c,a) is evaluated&lt;br /&gt;to true, so that a token is put on p3, and no token is put on p2.&lt;br /&gt;When the SimpleRiskAssessment transition fires, a token is put on p4.&lt;br /&gt;The token also includes a value assessing the risk of the credit requested,&lt;br /&gt;indicated by the arc expression (c, a, r), where r stands for a variable that&lt;br /&gt;carries the assessed risk. Assuming there are two risk levels—represented by&lt;br /&gt;values l for low and h for high—and Paula gets a low risk assessment, the&lt;br /&gt;token [Paula, 15000, l] is put on p4.&lt;br /&gt;Depending on the first letter of the credit requester’s name, the respective&lt;br /&gt;inform customer transition is enabled. This decision is ruled by guard functions,&lt;br /&gt;which are represented by functions placed on top of transitions. In the&lt;br /&gt;example, the BeginsWith(name, interval) returns true if and only if name&lt;br /&gt;begins with a letter in interval. Since the token for Paula is in p4, the transition&lt;br /&gt;Inform Customer I-Z is enabled. After the customer is informed, the&lt;br /&gt;process completes.&lt;br /&gt;To summarize, the behaviour of a transition in a coloured Petri net is&lt;br /&gt;defined by a guard function, by the tokens that reside in its input places, and&lt;br /&gt;by arc expressions. Hence, transition firing in coloured Petri nets exhibits a&lt;br /&gt;complex and highly customizable behaviour.&lt;br /&gt;Therefore, it is valid to say that each transition in a coloured Petri net&lt;br /&gt;has its own transition behaviour, which provides a high expressive power for&lt;br /&gt;this class of Petri nets. At the same time, the graphical representation is no&lt;br /&gt;longer sufficient to capture and understand the semantics of the Petri net.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-294935200086592918?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/294935200086592918/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/09/business-process-management-part-2_3645.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/294935200086592918'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/294935200086592918'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/09/business-process-management-part-2_3645.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter IV Process Orchestrations ] ) Sec  L -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-3006516578402947175</id><published>2009-09-06T22:02:00.002+05:30</published><updated>2009-09-06T22:05:49.424+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter IV Process Orchestrations ] ) Sec  K -- By Mathias Weske</title><content type='html'>&lt;span style="font-weight: bold;"&gt;            Condition Event Nets&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                    Condition event nets are the fundamental class of Petri nets. In condition event&lt;br /&gt;nets, at each point in time, each place can have at most one token. Tokens are&lt;br /&gt;unstructured; they have no identity and can therefore not be distinguished&lt;br /&gt;from one another. The rationale for the denomination of this Petri net class&lt;br /&gt;is as follows. If a token is on a place p, then the condition p is met. When a&lt;br /&gt;transition fires, an event occurs and changes the state of the condition event&lt;br /&gt;net.&lt;br /&gt;Definition 4.4 A Petri net (P, T, F) is a condition event net if M(p)  1 for&lt;br /&gt;all places p 2 P and for all states M.&lt;br /&gt;• A transition t is enabled in a state M if M(p) = 1 for all input places p&lt;br /&gt;of t and M(q) = 0 for all output places q of t that are not input places at&lt;br /&gt;the same time.&lt;br /&gt;• The firing of a transition t in a state M results in state M0, where&lt;br /&gt;(8p 2 •t)M0(p) = M(p) − 1 ^ (8p 2 t•)M0(p) = M(p) + 1.&lt;br /&gt;&lt;br /&gt;    Since, by definition, M(p) = 1 for all input places p of t and M(q) = 0 for all&lt;br /&gt;output places q of t, it follows for the state M0 reached by this firing (assuming&lt;br /&gt;output places and input places are disjoint),&lt;br /&gt;(8p 2 •t)M0(p) = 0 ^ (8p 2 t•)M0(p) = 1.&lt;br /&gt;Transition&lt;br /&gt;t1 is enabled if and only if all input places have one token and all output places&lt;br /&gt;have no tokens (a). This means that the conditions represented by the input&lt;br /&gt;places of the transition are met and the conditions reflected by the output&lt;br /&gt;places of the transition are not met.&lt;br /&gt;The firing of t1 withdraws a token from each input place and puts a token&lt;br /&gt;on each output place (b). Transition t1 is not enabled if there is a token in&lt;br /&gt;one of its output places (c) or if not all input places of t1 have a token (d).&lt;br /&gt;Since tokens in condition event nets are un-typed and cannot be distinguished&lt;br /&gt;from each other, and due to the fact that the number of tokens are&lt;br /&gt;limited to one in each place, condition event nets are not well suited to modelling&lt;br /&gt;business processes. The reason for this is discussed in the context of&lt;br /&gt;place transition nets that face the same problem.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;        Place Transition Nets&lt;br /&gt;&lt;br /&gt;                    &lt;/span&gt;Place transition nets are an extension of condition event nets, because in any&lt;br /&gt;state of the Petri net an arbitrary number of tokens can reside in any place.&lt;br /&gt;Therefore, places can, for instance, serve as counters. However, tokens are still&lt;br /&gt;unstructured objects that can not be distinguished from one another.&lt;br /&gt;To account for multiple tokens in each place, transition enabling needs to&lt;br /&gt;be reconsidered. In addition, multiple tokens can be consumed and withdrawn&lt;br /&gt;from an input place when a transition fires, and multiple tokens can be produced&lt;br /&gt;when a transition fires, according to the weights associated with the&lt;br /&gt;arcs connected to the transition. This extension can be represented graphically&lt;br /&gt;by multiple arcs from an input place to a transition or by arcs labelled&lt;br /&gt;with natural numbers marking their weight.&lt;br /&gt;Definition 4.5 (P, T, F, !) is a place transition net if (P, T, F) is a Petri net&lt;br /&gt;and ! : F ! N is a weighting function that assigns a natural number to each&lt;br /&gt;arc, the weight of the arc.&lt;br /&gt;The dynamic behaviour of place transition is defined as follows:&lt;br /&gt;• A transition t of a place transition net is enabled if each input place p&lt;br /&gt;of t contains at least the number of tokens defined as the weight of the&lt;br /&gt;connecting arc, i.e., if M(p)  !((p, t)).&lt;br /&gt;• When a transition t fires, the number of tokens withdrawn from its input&lt;br /&gt;places and the number of tokens added to its output places are determined&lt;br /&gt;by the weights of the respective arcs. From each input place p of t, !((p, t))&lt;br /&gt;tokens are withdrawn, and !((t, q)) tokens are added to each output place&lt;br /&gt;q of t.&lt;br /&gt;• The firing of a transition t in a state M results in a state M0, where&lt;br /&gt;(8p 2 •t)M0(p) = M(p) − !((p, t)) ^ (8p 2 t•)M0(p) = M(p) + !((t, p))&lt;br /&gt;&lt;br /&gt;The firing of t1 consumes the token from&lt;br /&gt;p1 and adds a token to p2, so that two tokens reside in p2. Notice, however,&lt;br /&gt;that t5 is not enabled, since p5 does not contain a token. In the example, each&lt;br /&gt;arc has weight one.&lt;br /&gt;While place transition nets allow multiple tokens in each place, they are&lt;br /&gt;still not very useful for representing business processes, since the tokens cannot&lt;br /&gt;be distinguished from each other. By closely looking&lt;br /&gt;at the Petri net and its token distribution, one can detect which tokens&lt;br /&gt;belong to which process instances.&lt;br /&gt;        There are three process instances active. One process instance is represented&lt;br /&gt;by a token in place p1, while the second process instance has already&lt;br /&gt;performed the receive order activity and is therefore represented by the token&lt;br /&gt;in p2. The process order activity spawns two concurrent threads. Therefore,&lt;br /&gt;the tokens in p3 and p6 must belong to the same process instance. When the&lt;br /&gt;send order activity has been completed, a token is put in p5, and the complete&lt;br /&gt;order activity can be performed, completing the third process instance.&lt;br /&gt;    In this case it is far from clear which tokens belong to the specific process&lt;br /&gt;instance. The firing rule of place transition nets defines that the complete&lt;br /&gt;order transition can fire as soon as there is a token in place p5 and a token in&lt;br /&gt;place p6.&lt;br /&gt;This is a severe problem, because the complete order activity could potentially&lt;br /&gt;be conducted for two different process instances! If the first process&lt;br /&gt;instance orders books A and B while the second process instance orders books&lt;br /&gt;C and D, then a situation could occur in which the sending of books A and&lt;br /&gt;B and the update of the inventory for books C and D could be joined, clearly&lt;br /&gt;an unacceptable behaviour.&lt;br /&gt;Therefore, the tokens need to carry values, so that in each state of the Petri&lt;br /&gt;net it is clear which token belong to which process instance. This limitation&lt;br /&gt;of condition event nets and of place transition nets will be lifted by coloured&lt;br /&gt;Petri nets, discussed next.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-3006516578402947175?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/3006516578402947175/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/09/business-process-management-part-2_06.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/3006516578402947175'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/3006516578402947175'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/09/business-process-management-part-2_06.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter IV Process Orchestrations ] ) Sec  K -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-3668891605464790761</id><published>2009-09-02T21:35:00.001+05:30</published><updated>2009-09-02T21:37:19.943+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter IV Process Orchestrations ] ) Sec  J -- By Mathias Weske</title><content type='html'>&lt;span style="font-weight: bold;"&gt;        Petri Nets&lt;br /&gt;&lt;br /&gt;                    &lt;/span&gt;Petri nets are one of the best known techniques for specifying business processes&lt;br /&gt;in a formal and abstract way and, as such, Petri nets are an important&lt;br /&gt;basis for process languages. “Formal” means that the semantics of process&lt;br /&gt;instances resulting from process models specified in Petri nets is well defined&lt;br /&gt;and not ambiguous. Petri nets are “abstract”, because they disregard the execution&lt;br /&gt;environment of a business process, so that all aspects other than the&lt;br /&gt;functional and process perspectives are not covered. The functional perspective&lt;br /&gt;in itself is treated in an abstract way, as will be explained below.&lt;br /&gt;In this section, Petri nets are introduced in a pragmatic manner. A large&lt;br /&gt;body of literature is available in the Petri net area; the main references relevant&lt;br /&gt;to business process management are discussed in the bibliographical notes.&lt;br /&gt;In his Ph.D. thesis, Carl Adam Petri generalizes automata theory by concurrency.&lt;br /&gt;He introduces a new modelling approach that has a graphical representation&lt;br /&gt;as well as an equivalent mathematical formalization. Petri nets can&lt;br /&gt;be used to model dynamic systems with a static structure. The static structure&lt;br /&gt;is represented by a Petri net, and the dynamic behaviour is captured by&lt;br /&gt;the token play of the Petri net.&lt;br /&gt;Petri nets consist of places, transitions, and directed arcs connecting places&lt;br /&gt;and transitions. They are bipartite graphs, so that arcs never connect two&lt;br /&gt;places or two transitions. In graphical notations, places are represented by&lt;br /&gt;circles, transitions by rectangles, and connectors by directed arcs. Transitions&lt;br /&gt;have input and output places. The input places of a transition are the places&lt;br /&gt;at the sources of its incoming arcs. Accordingly, a transition’s output places&lt;br /&gt;are located at the end of its outgoing arcs.&lt;br /&gt;The dynamics of the system represented by a Petri net is modelled by&lt;br /&gt;tokens that reside on places. While the structure of Petri nets is fixed, the&lt;br /&gt;tokens may change their position according to firing rules. The current distribution&lt;br /&gt;of the tokens among the places determines the state of the Petri net&lt;br /&gt;and, thus, of the system modelled by it.&lt;br /&gt;A transition may fire if it is enabled. A transition is enabled if there is a&lt;br /&gt;token in each of its input places. If the transitions fires, one token is removed&lt;br /&gt;from each input place and one token is added to each output place. Different&lt;br /&gt;classes of Petri nets exhibit different restrictions on the tokens in a Petri net;&lt;br /&gt;this will be discussed later in this section.&lt;br /&gt;The movement of the tokens in the Petri net according to firing rules is&lt;br /&gt;called token play. The token play is often considered to be a flow of tokens, although this is not exactly true, since tokens are removed from input places&lt;br /&gt;and added to output places; they do not flow from input places to output&lt;br /&gt;places.&lt;br /&gt;Because transitions can change the state of a Petri net, they are considered&lt;br /&gt;active components, which typically represent events, operations, transformations,&lt;br /&gt;or transportations. A place is a passive component, that stands for a&lt;br /&gt;medium, a buffer, a state, or a condition. Tokens are used to represent physical&lt;br /&gt;objects or information objects. In the context of business processes, transitions&lt;br /&gt;represent activities and places containing tokens represent states of the&lt;br /&gt;process instances.&lt;br /&gt;Since Petri nets describe the structure of a system, a Petri net represents&lt;br /&gt;a business process model, and its transitions represent activity models. The&lt;br /&gt;instance level is captured by tokens. This means that the firing of a transition&lt;br /&gt;represents an activity instance. Each process instance is represented by at least&lt;br /&gt;one token; due to split and join nodes, the number of tokens that collectively&lt;br /&gt;characterize one process instance may vary during the lifetime of the process&lt;br /&gt;instance.&lt;br /&gt;Since there can be multiple process instances of one process model, the&lt;br /&gt;tokens in a Petri net may belong to different process instances. This will be&lt;br /&gt;discussed in more detail in Section 4.4, where workflow nets, a Petri net class&lt;br /&gt;specifically tailored towards representing business processes, are discussed.&lt;br /&gt;    A Petri net characterizing a business process model is shown in Figure 4.27.&lt;br /&gt;The transitions in this Petri net correspond to activity instances, while the&lt;br /&gt;places and the arcs characterize the execution constraints of the activity instances.&lt;br /&gt;The process starts when a token is put on place p1. The token is&lt;br /&gt;represented by a black dot in that place. Since there is a token on all input&lt;br /&gt;places of the receive order transition, this transition is enabled, and it can&lt;br /&gt;fire.&lt;br /&gt;Once the receive order transition fires, a token is removed from p1 and&lt;br /&gt;a token is put on p2, representing the execution of the receive order activity&lt;br /&gt;instance. The execution time of this activity instance is not represented; in&lt;br /&gt;Petri nets, transitions fire instantly without consuming time.&lt;br /&gt;After the process order transition has fired, concurrent branches are&lt;br /&gt;opened, since the firing of the process order transition puts tokens on both p3 and p4, enabling the send order and update inventory transitions. The&lt;br /&gt;complete order transition is enabled only when both of these transitions have&lt;br /&gt;fired. When the process completes there is one token in p7.&lt;br /&gt;To summarize, the Petri net represents the process model, while the tokens&lt;br /&gt;represent process instances. Since tokens in classical Petri nets cannot&lt;br /&gt;be distinguished from each other, classical Petri nets can only host a single&lt;br /&gt;process instance.&lt;br /&gt;After informally discussing the basic structure of Petri nets and the dynamic&lt;br /&gt;behaviour of the systems represented, we give a formal definition:&lt;br /&gt;Definition 4.1 A Petri net is a tuple (P, T, F) with&lt;br /&gt;• a finite set P of places,&lt;br /&gt;• a finite set T of transitions such that T \ P = ;, and&lt;br /&gt;• a flow relation F  (P × T) [ (T × P).&lt;br /&gt;• A place p 2 P is an input place of a transition t 2 T if and only if there&lt;br /&gt;exists a directed arc from p to t, i.e., if and only if (p, t) 2 F. The set of&lt;br /&gt;input places for a transition t is denoted •t.&lt;br /&gt;• A place p is an output place of a transition t if and only if there exists a&lt;br /&gt;directed arc from t to p, i.e., if and only if (t, p) 2 F. The set of output&lt;br /&gt;places for a transition t is denoted t•.&lt;br /&gt;• p• and •p denote the sets of transitions that share p as input places and&lt;br /&gt;output places, respectively.&lt;br /&gt;&lt;br /&gt;Graphical representations of Petri nets can be mapped onto a tuple (P, T, F),&lt;br /&gt;and vice versa. For instance, the Petri net shown in Figure 4.27 can be represented&lt;br /&gt;by (P, T, F) such that&lt;br /&gt;• P = {p1, p2, p3, p4, p5, p6, p7},&lt;br /&gt;• T = {t1, t2, t3, t4, t5},&lt;br /&gt;• F = {(p1, t1), (t1, p2), (p2, t2), (t2, p3), (t2, p4), (p3, t3), (p4, t4), (t3, p5),&lt;br /&gt;(t4, p6), (p5, t5), (p6, t5), (t5, p7)}.&lt;br /&gt;The state of the Petri net is characterized by the distribution of tokens on&lt;br /&gt;the places of the net. The dynamic behaviour of a system is represented by&lt;br /&gt;state changes, which are subject to firing rules. As detailed below, there are&lt;br /&gt;different firing rules for different classes of Petri nets.&lt;br /&gt;Definition 4.2 The marking (or state) of a Petri (P, T, F) net is defined by&lt;br /&gt;a function M : P ! N mapping the set of places onto the natural numbers,&lt;br /&gt;where N is the set of natural numbers including 0. &lt;br /&gt;The marking of a Petri net represents its state. The state of the Petri net&lt;br /&gt;shown in Figure 4.28 is represented by M(p1) = M(p3) = M(p6) = 1 and&lt;br /&gt;M(p2) = M(p4) = M(p5) = M(p7) = 0. If the places are totally ordered&lt;br /&gt;by their identifier (as, for instance, in p1, p2, . . . , p7), the marking can be&lt;br /&gt;expressed by an array. In the example, M = [1, 0, 1, 0, 0, 1, 0].&lt;br /&gt;After having discussed the structure of a Petri net and its state, the dynamic&lt;br /&gt;behaviour of a Petri net is addressed.&lt;br /&gt;Definition 4.3 Let (P, T, F) be a Petri net and M a marking. The firing of&lt;br /&gt;a transition is represented by a state change of the Petri net.&lt;br /&gt;• M t! M0 indicates that by firing t, the state of the Petri net changes from&lt;br /&gt;M to M0.&lt;br /&gt;• M ! M0 indicates that there is a transition t such that M t! M0.&lt;br /&gt;• M1 ! Mn means that there is a sequence of transitions t1, t2, . . . tn−1 such&lt;br /&gt;that Mi&lt;br /&gt;ti! Mi+1, for 1  i &lt; n.&lt;br /&gt;• A state M0 is reachable from a state M if and only if M ! M0.&lt;br /&gt;&lt;br /&gt;Based on these fundamental definitions, a number of Petri net classes are&lt;br /&gt;introduced that differ with respect to their firing behaviour and the structure&lt;br /&gt;of their tokens.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-3668891605464790761?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/3668891605464790761/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/09/business-process-management-part-2_02.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/3668891605464790761'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/3668891605464790761'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/09/business-process-management-part-2_02.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter IV Process Orchestrations ] ) Sec  J -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-413732792202370483</id><published>2009-09-02T21:33:00.001+05:30</published><updated>2009-09-02T21:35:38.554+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter IV Process Orchestrations ] ) Sec  I -- By Mathias Weske</title><content type='html'>&lt;span style="font-weight: bold;"&gt;    Milestone&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                    The milestone pattern can be used to define that an activity is only enabled&lt;br /&gt;if a certain milestone has been reached that has not expired yet.&lt;br /&gt;This pattern is illustrated by an example. Consider a process model with&lt;br /&gt;activity models A,B, and C. With a milestone pattern, the process designer&lt;br /&gt;can determine that activity instance a is enabled only if b has been executed&lt;br /&gt;and c has not been completed. As a result a is not enabled before the execution&lt;br /&gt;of b and after the execution of c.&lt;br /&gt;                Since the informal process modelling&lt;br /&gt;notation that served well in presenting the patterns so far does not&lt;br /&gt;provide an explicit notation for state, Petri nets are used to express the milestone&lt;br /&gt;pattern (Petri nets will be introduced in the next section in detail).&lt;br /&gt;The milestone indicates that the execution of an activity a is possible only&lt;br /&gt;after activity b is executed and before activity c is started. There can also be&lt;br /&gt;multiple instances a1, a2, . . . of activity model A, as long as c has not started.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;        Run Time Patterns&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                In addition to the patterns introduced above, there are run time patterns&lt;br /&gt;defined that are—strictly speaking—not part of a process model. They, rather,&lt;br /&gt;characterize the functionality provided by a business process management&lt;br /&gt;system.&lt;br /&gt;The first of these patterns is the cancel activity pattern. When an activity&lt;br /&gt;instance is cancelled, it enters the cancelled state.&lt;br /&gt;    The second run time pattern is the cancel case pattern, in which all activity&lt;br /&gt;instances of a process instance are cancelled so that the process instance&lt;br /&gt;comes to a halt. To cancel an activity instance, there are different options that&lt;br /&gt;depend on the environment in which the activity instance is being executed.&lt;br /&gt;    If it is a manual activity, then the knowledge worker needs to be informed&lt;br /&gt;about the cancellation, so that the person ceases working on the case. She&lt;br /&gt;could also perform some cleanup activities, if need be.&lt;br /&gt;If the functionality to execute the activity instance is provided by an information&lt;br /&gt;system, then the realization of the cancel activity pattern depends&lt;br /&gt;on the type of information system used. If the information system is realized&lt;br /&gt;by a database application, then terminating the application is a valid option.&lt;br /&gt;If the database application runs—at least the parts that realize the activity&lt;br /&gt;instance to be cancelled—in a single database transaction, then cancellation&lt;br /&gt;can be realized by aborting the transaction. The database management system&lt;br /&gt;guarantees that the database is restored to the state before the execution of&lt;br /&gt;the activity instance.&lt;br /&gt;If on the other hand the information system is not based on a transactional&lt;br /&gt;information system, cancelling an activity can be much harder. There might&lt;br /&gt;be certain parts that are already stored in some kind of non-transactional&lt;br /&gt;data store. Identifying these parts and manually undoing the effects of the&lt;br /&gt;partial activity instance is a cumbersome and in some cases infeasible task.&lt;br /&gt;Also in manual activities, actions might already have been performed that&lt;br /&gt;cannot be undone easily, such as sending an email message. In this case, the cancellation of an activity instance involves manual activities, such as sending&lt;br /&gt;another email message withdrawing the former, or making a phone call.&lt;br /&gt;To summarize, it is easy to indicate the behaviour of the cancel activity&lt;br /&gt;and cancel case patterns; however, the realization of these patterns in realworld&lt;br /&gt;business process management systems is far from that.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-413732792202370483?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/413732792202370483/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/09/business-process-management-part-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/413732792202370483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/413732792202370483'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/09/business-process-management-part-2.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter IV Process Orchestrations ] ) Sec  I -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-6394513058687757613</id><published>2009-08-29T20:58:00.001+05:30</published><updated>2009-08-29T21:00:11.570+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter IV Process Orchestrations ] ) Sec  H -- By Mathias Weske</title><content type='html'>&lt;span style="font-weight: bold;"&gt;    Deferred Choice&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;            Deferred choice is a state-based pattern. State-based patterns capture the implicit&lt;br /&gt;behaviour of processes that is based not on the current case but rather on&lt;br /&gt;the environment or other parts of the process. Some of the following patterns&lt;br /&gt;require the existence of an external process that represents the environment.&lt;br /&gt;This process is used as a source for external events.&lt;br /&gt;A deferred choice is a point in a process model where one of several&lt;br /&gt;branches is chosen. In contrast to the exclusive or split, the choice is not&lt;br /&gt;made explicitly—for example, based on data values or a user decision—but&lt;br /&gt;several alternatives are offered to the environment.&lt;br /&gt;The environment activates one of the alternatives, and the other branches&lt;br /&gt;are then withdrawn. Because the choice is delayed until one of the alternative&lt;br /&gt;branches has actually been started, the moment of choice is deferred to a point&lt;br /&gt;in time that is as late as possible.&lt;br /&gt;Regarding the states of activity instances, each of the alternative branches&lt;br /&gt;is represented by one activity instance in the init state. The state transition&lt;br /&gt;from init to enabled is triggered by the environment, for instance, by sending&lt;br /&gt;a message. After the state transition has occurred, the activity instances that&lt;br /&gt;were not chosen enter the skipped state.&lt;br /&gt;    In that example, after a terminates, activity instances b, c, and d are created. Assuming that b is selected by receiving a message, b enters the enabled state, while c and d are&lt;br /&gt;no longer required. Therefore, these activity instances are skipped.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;        Sequential Execution without A Priori Design Time Knowledge&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                The sequential execution without a prior design time knowledge pattern is&lt;br /&gt;described as follows: a set of activity instances is executed sequentially in an&lt;br /&gt;order that is decided at run time. No two activity instances of this set are&lt;br /&gt;active at the same point in time.&lt;br /&gt;Originally this pattern was called interleaved parallel routing; however,&lt;br /&gt;this was somewhat misleading: The activity instances do not interleave, and&lt;br /&gt;they are not executed in parallel. They are executed sequentially in an order&lt;br /&gt;that is defined while the process instance runs. Therefore, in this book the&lt;br /&gt;term sequential execution without a prior design time knowledge refers to this&lt;br /&gt;pattern.&lt;br /&gt;        Activity models B,C,&lt;br /&gt;and D are part of this pattern, so any sequential execution of activity instances&lt;br /&gt;b, c and d are valid. This pattern is very useful in situations in which several&lt;br /&gt;activities need to be executed sequentially and in any order. Since for any n&lt;br /&gt;elements there are n! permutations, each of which corresponds to a sequential&lt;br /&gt;execution ordering of n activity instances, modelling these explicitly is not&lt;br /&gt;feasible.&lt;br /&gt;The pattern can even be extended so that the execution ordering is not defined&lt;br /&gt;before the first activity instance of the pattern has started. The sequence&lt;br /&gt;can be defined also during the execution of the activity instances. A concrete&lt;br /&gt;example is as follows: three persons need to work on a file, and each person&lt;br /&gt;works on a separate part, so that the order in which the work is conducted is&lt;br /&gt;not relevant. In this setting, after completing the first activity instance, one&lt;br /&gt;person selects the next person to do his or her work.&lt;br /&gt;The sequential execution in this case is induced by the single resource—&lt;br /&gt;the file—that cannot be shared by the persons. Therefore, current allocation&lt;br /&gt;of work to persons can be taken into account when deciding at run time on&lt;br /&gt;the actual sequence in which the activities are executed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-6394513058687757613?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/6394513058687757613/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/08/business-process-management-part-2_4741.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/6394513058687757613'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/6394513058687757613'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/08/business-process-management-part-2_4741.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter IV Process Orchestrations ] ) Sec  H -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-7717719105752763282</id><published>2009-08-29T20:53:00.002+05:30</published><updated>2009-08-29T20:58:31.008+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter IV Process Orchestrations ] ) Sec  G -- By Mathias Weske</title><content type='html'>&lt;span style="font-weight: bold;"&gt;    Multiple Instances With A Priori Design Time Knowledge&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;            In the multiple instances with a priori design time knowledge pattern, the&lt;br /&gt;number of activity instances of an activity model is known at design time.&lt;br /&gt;These activity instances are synchronized, so that once all activity instances&lt;br /&gt;have completed, the follow-up activity is enabled.&lt;br /&gt;            The follow-up activity c can only be enabled after the last activity instance&lt;br /&gt;of B has completed, in this case b1. This property is shared by all multiple&lt;br /&gt;instances patterns that are “synchronized.”&lt;br /&gt;The specific property of the pattern at hand is that the number n = 2 of&lt;br /&gt;activity instances of B is defined at design time, i.e., as part of the process&lt;br /&gt;model. Depending on the process language used, there can be an attribute of&lt;br /&gt;the activity model B that states, for instance, NrOfInstances = 2;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    Multiple Instances With A Priori Run Time Knowledge&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                In the multiple instances with a priori run time knowledge pattern, the number&lt;br /&gt;of instances of a given activity model depends on the characteristics of the&lt;br /&gt;case or the availability of resources. Therefore, it is only known at some stage&lt;br /&gt;during run time of the process instance, but before the instances of the multiple&lt;br /&gt;instances activity are created. This pattern also assumes synchronization&lt;br /&gt;of the activity instances before the next activities can be enabled.&lt;br /&gt;            Rather than specifying the number of activity instances directly, we define&lt;br /&gt;an expression. This expression is evaluated during run time to compute the number of activity instances for a specific process instance. This computation&lt;br /&gt;occurs before the activity instances of the multiple instances activity are&lt;br /&gt;created.&lt;br /&gt;A process language might provide a functional representation of the number&lt;br /&gt;of instances to create, so that, for instance,&lt;br /&gt;NrOfInstances = GetNoOfLineitems(order);&lt;br /&gt;might be a valid term. Here, the number of activity instances is computed by&lt;br /&gt;a function that takes the current order and returns the number of line items&lt;br /&gt;in it. An individual activity instance is then performed for each line item.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    Multiple Instances Without A Priori Run Time Knowledge&lt;/span&gt;&lt;br /&gt;       &lt;br /&gt;            In the multiple instances without a priori run time knowledge pattern, the&lt;br /&gt;number of instances of a given activity is not known during design time; nor&lt;br /&gt;is it known at any stage during run time before the instances of that activity&lt;br /&gt;are enabled.&lt;br /&gt;The difference with the previous pattern is that even while some of the&lt;br /&gt;instances are being executed or have already completed, new activity instances&lt;br /&gt;can still be created. During the&lt;br /&gt;execution of these activity instances, new activity instances are created.When&lt;br /&gt;all instances of B have terminated—in the example, b5 is the last activity&lt;br /&gt;instance to complete—the next activity instance in the process can be enabled.&lt;br /&gt;In order to realize this pattern in a process language and in a process&lt;br /&gt;engine, there need to be additional assumptions in place. The main question in this context is, until what point in time is it possible to create new activity&lt;br /&gt;instances of B?&lt;br /&gt;One choice would be to indicate that while bs are running, new instances&lt;br /&gt;of the multiple instances activity can be created. While this is a valid choice,&lt;br /&gt;realization of this might not be practical, because it would assume that the&lt;br /&gt;activity instances would include the creation of new instances, thereby intertwining&lt;br /&gt;process management tasks (start new process instance) and doing the&lt;br /&gt;actual work.&lt;br /&gt;An alternative solution is to install a management activity related to the&lt;br /&gt;multiple instances activity. This management activity explicitly defines the&lt;br /&gt;end of the multiple instances activity. It is also responsible for creating new&lt;br /&gt;instances of the multiple instances activity. It can even create new instances&lt;br /&gt;after all instances have terminated. This is a valid approach, since in dynamic&lt;br /&gt;settings, there might be an explicit decision about whether additional activity&lt;br /&gt;instances are required to achieve the business goal related to the multiple&lt;br /&gt;instances activity.&lt;br /&gt;In the first alternative—if the follow-up activity is automatically enabled&lt;br /&gt;after the current instances of the multiple instances activity have completed—&lt;br /&gt;there are no options to create new instances of the multiple activity task once&lt;br /&gt;all instances have completed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-7717719105752763282?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/7717719105752763282/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/08/business-process-management-part-2_29.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/7717719105752763282'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/7717719105752763282'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/08/business-process-management-part-2_29.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter IV Process Orchestrations ] ) Sec  G -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-2189565575920434899</id><published>2009-08-26T19:55:00.001+05:30</published><updated>2009-08-26T19:57:14.352+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter IV Process Orchestrations ] ) Sec  F -- By Mathias Weske</title><content type='html'>&lt;span style="font-weight: bold;"&gt;    Implicit Termination&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                            The implicit termination pattern is defined as follows: a given process instance&lt;br /&gt;should be terminated when there is nothing else to be done. This means, there&lt;br /&gt;is no activity instance in the process instance in the init, ready, or running&lt;br /&gt;state and—as a result—no activity instance can be become enabled.&lt;br /&gt;While implicit termination is defined as one of the control flow patterns,&lt;br /&gt;its role differs with respect to the other patterns. It does not relate activity&lt;br /&gt;instances with each other, such as, for instance, the sequence pattern or the&lt;br /&gt;split and join patterns discussed. It represents a termination condition of an&lt;br /&gt;overall process.&lt;br /&gt;In several process languages, termination is explicit, because there is exactly&lt;br /&gt;one state in the process that marks its termination. If there are many&lt;br /&gt;states in which the process can terminate, then termination is implicit.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    Multiple Instances Without Synchronization&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                    More important than implicit termination are the patterns involving multiple&lt;br /&gt;activity instances. These activity instances are based on a single activity model&lt;br /&gt;in the context of a business process.&lt;br /&gt;There are many situations that can be expressed properly by multiple&lt;br /&gt;instances patterns. For instance, assume an order process in which an incoming&lt;br /&gt;order contains a number of order lines. For each of these order lines, a check&lt;br /&gt;activity needs to be executed. This means that only at run time can the&lt;br /&gt;business process management system decide how many activities actually need&lt;br /&gt;to be instantiated in order to perform the required checking activities.&lt;br /&gt;The multiple instances without synchronization pattern is defined as follows.&lt;br /&gt;In the context of a single process instance, multiple activity instances&lt;br /&gt;of one activity model can be created. No synchronization of these activity&lt;br /&gt;instances takes place.&lt;br /&gt;     In the process model shown, activity model B uses&lt;br /&gt;the pattern. After the termination of activity instance a, a number of activity&lt;br /&gt;instances are initiated and enabled for activity model B. In the event diagram,&lt;br /&gt; activity instances b1, b2, and b3 are shown. These instances are enabled and&lt;br /&gt;can be started.&lt;br /&gt;The term “without synchronization” in the context of this example means&lt;br /&gt;that the follow-up activity instance c can be enabled immediately after the&lt;br /&gt;instances for B have been enabled. Since there are no assumptions on the&lt;br /&gt;execution times of activity instances, c can terminate while activity instances&lt;br /&gt;of the multiple instances activity are still running. In the event diagram shown,&lt;br /&gt;b1 and b2 are still running when c has already completed.&lt;br /&gt;This behaviour of the pattern has some consequences. First of all the control&lt;br /&gt;flow between activity models B and C does not—strictly speaking—have&lt;br /&gt;the semantics of a sequence pattern, since an instance of C can be enabled&lt;br /&gt;while instances of B are still active. As a result, the sequence pattern is somehow&lt;br /&gt;violated by the multiple instances without synchronization pattern.&lt;br /&gt;This pattern causes problems not only with the sequence flow, but also&lt;br /&gt;with the termination of the overall process. Since the activity instances are&lt;br /&gt;not synchronized, it cannot be guaranteed that these activity instances have&lt;br /&gt;terminated when the end of the process is reached. This means that certain&lt;br /&gt;execution guarantees related to soundness properties (which will be discussed&lt;br /&gt;in Chapter 6) cannot be satisfied.&lt;br /&gt;Multiple instances patterns can be distinguished for the point in time&lt;br /&gt;when the actual number of instances is determined. The multiple instances&lt;br /&gt;without synchronization pattern does not make any assumptions on whether&lt;br /&gt;the number of instances is defined at design time or at run time. This is&lt;br /&gt;subject of the control flow patterns discussed next.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-2189565575920434899?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/2189565575920434899/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/08/business-process-management-part-2_860.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/2189565575920434899'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/2189565575920434899'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/08/business-process-management-part-2_860.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter IV Process Orchestrations ] ) Sec  F -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-3141123028021312132</id><published>2009-08-26T19:53:00.001+05:30</published><updated>2009-08-26T19:55:26.757+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter IV Process Orchestrations ] ) Sec  E -- By Mathias Weske</title><content type='html'>&lt;span style="font-weight: bold;"&gt;    N-out-of-M Join&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                            The N-out-of-M join is a generalization of the discriminator. It is a point in&lt;br /&gt;a process model where M parallel paths converge into one. The subsequent&lt;br /&gt;activity is initiated after N  M paths have completed and the respective&lt;br /&gt;termination events have occurred. Completion of all remaining paths is ignored.&lt;br /&gt;As with the discriminator, once all incoming branches have fired, the&lt;br /&gt;join resets itself so that it can be performed again. The N-out-of-M join is&lt;br /&gt;illustrated in Figure 4.16.&lt;br /&gt;A concrete example of the N-out-of-M join is a request for quotation&lt;br /&gt;process, in which quotations are invited from five companies, although the&lt;br /&gt;process can continue after receiving three quotations. Without a dedicated Nout-&lt;br /&gt;of-M join, this business rule would be complex to model, because at design time it is not known which of the companies will respond to the request in&lt;br /&gt;time.&lt;br /&gt;There are variations on this control flow pattern with respect to the time&lt;br /&gt;when the number N of sufficient threads is determined: it can be determined&lt;br /&gt;at design time or at run time. The run time specification of N needs to be&lt;br /&gt;done in an activity instance that is executed before the join.&lt;br /&gt;There might be additional variations in the design time specification of the&lt;br /&gt;N-out-of-M join if it is part of a loop. Design time specification of N could&lt;br /&gt;therefore be taken within the loop, so that different iterations of the loop use&lt;br /&gt;different values N for the number of sufficient threads to complete.&lt;br /&gt;The N-out-of-M join degenerates to an and join if N = M. For N = 1,&lt;br /&gt;however, it does not realize an exclusive or join, because the assumption of&lt;br /&gt;the exclusive or join is not met (only one thread will be activated).&lt;br /&gt;Nor does it realize a multi-merge, because in the multi-merge the completion&lt;br /&gt;of the second and following threads would enable additional instances of&lt;br /&gt;follow-up activities, while the 1-out-of-M join ignores them. The 1-out-of-M&lt;br /&gt;join, however, realizes the discriminator pattern.&lt;br /&gt;       &lt;br /&gt;&lt;span style="font-weight: bold;"&gt;            Arbitrary Cycles&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                                    An arbitrary cycle is a point in a process model where one or more activities&lt;br /&gt;can be executed repeatedly. An arbitrary cycle is graphically depicted in Figure 4.17. In this example,&lt;br /&gt;a sequence consisting of activity models A, B, and C is iterated. The iteration&lt;br /&gt;is represented by an exclusive or split that decides whether to iterate the cycle&lt;br /&gt;or whether to leave it and continue with activity instance d, associated with&lt;br /&gt;activity model D. In case the loop is iterated, the exclusive or join triggers&lt;br /&gt;another instance associated with activity model A.&lt;br /&gt;As this example shows, arbitrary cycles are expressed with other control&lt;br /&gt;flow patterns, for instance, exclusive or split and exclusive or join. Since these&lt;br /&gt;control flow patterns have been specified already, no additional definitions are&lt;br /&gt;required in order to define the arbitrary cycles pattern.&lt;br /&gt;                The problem in this example is that the cycle enters&lt;br /&gt;one of two concurrent branches of an and split whose branches are joined by&lt;br /&gt;a multi-merge.&lt;br /&gt;The process starts by activitiy instance a, followed by the concurrent execution&lt;br /&gt;of b1 and c1. When c1 completes, the first firing of the multi-merge&lt;br /&gt;spawns off d2. We assume that the loop is not taken, so that e2 is started.&lt;br /&gt;While d2 is still active, b1 terminates, so that the multi-merge creates&lt;br /&gt;another instance of activity model D, namely d3. If the loop is iterated, the&lt;br /&gt;second instance of activity model B is created, i.e., b3 (it holds the same&lt;br /&gt;thread identifier than the previous activity instance).&lt;br /&gt;When b3 terminates, d4 is started, and the loop can be entered again by&lt;br /&gt;spawning off b4. To reset itself, the multi-merge waits for c3. Since the loop&lt;br /&gt;was entered only in one of the concurrent branches, however, c3 does not exist!&lt;br /&gt;Therefore, the multi-merge will not enable new instances of activity model D&lt;br /&gt;when additional instances of activity model B complete.&lt;br /&gt;In this example, after b4 terminates, the process instance will enter a&lt;br /&gt;deadlock, because the multi-merge does not enable a new instance d5. An&lt;br /&gt;event diagram of this execution is depicted in Figure 4.19.&lt;br /&gt;This example shows that the combination of the multi-merge pattern with&lt;br /&gt;loops might cause problematic process behaviour that process designers need&lt;br /&gt;to be aware of to avoid erroneous processes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-3141123028021312132?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/3141123028021312132/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/08/business-process-management-part-2_26.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/3141123028021312132'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/3141123028021312132'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/08/business-process-management-part-2_26.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter IV Process Orchestrations ] ) Sec  E -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-6503164439621162821</id><published>2009-08-23T16:38:00.000+05:30</published><updated>2009-08-23T16:41:05.019+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter IV Process Orchestrations ] ) Sec  D -- By Mathias Weske</title><content type='html'>&lt;span style="font-weight: bold;"&gt;    Discriminator&lt;/span&gt;&lt;br /&gt;                                        The discriminator is a point in a process model that waits for one of the&lt;br /&gt;incoming branches to complete before activating the subsequent activity. From&lt;br /&gt;that moment on it waits for all remaining branches to complete and “ignores”&lt;br /&gt;them. Once all incoming branches have been triggered, it resets itself so that&lt;br /&gt;it can be triggered again. This allows a discriminator to be used in the context&lt;br /&gt;of a loop.&lt;br /&gt;                                        If gathering the ignored branches were not part of the functional behaviour&lt;br /&gt;of the discriminator pattern, there would be no way to distinguish a second&lt;br /&gt;iteration of a loop from a late branch of its first iteration.&lt;br /&gt;                                        A process model with activity models B, C, and D, and a gateway G such&lt;br /&gt;that E  {(B,G), (C,G), (G,D)} and type(G) = Discriminator.To discuss the execution semantics of the discriminator, assume&lt;br /&gt;that activity instance b terminates while c is still active. If this is the case, d&lt;br /&gt;is triggered, and the discriminator continues to wait for the termination of c.&lt;br /&gt;When c terminates, the discriminator is again ready for the next thread.&lt;br /&gt;            The process starts with activity instance a before an and split occurs that&lt;br /&gt;spawns activity instances b1 and c1. Assuming b1 terminates first, the discriminator&lt;br /&gt;fires and enables d1. When d1 terminates, assuming a new iteration of&lt;br /&gt;the loop is required, new activity instances based on B and C are created. These activity instances are b2 and c2. What is remarkable in this example is&lt;br /&gt;that there are two instances of activity model C active concurrently, assuming&lt;br /&gt;c1 has not yet terminated.&lt;br /&gt;Even if c2 terminates before c1, the semantics of the discriminator makes&lt;br /&gt;sure that it can only fire and enable d2 after the first iteration has completed,&lt;br /&gt;i.e., only after the remaining activity instance c1 has terminated. If this is&lt;br /&gt;the case, the discriminator can fire a second time, to enable d2. Formally, for each enable event of d there are termination events of b and&lt;br /&gt;c, and (at least) one of these termination events occurs prior to the enabling&lt;br /&gt;event of d, i.e., 8ed 9tb, tc 2 Ep, such that tb &lt; bd _ tc &lt; bd.&lt;br /&gt;In addition, the discriminator can become active only after the termination&lt;br /&gt;events of all incoming edges that belong to the thread that has spawned the&lt;br /&gt;current activities have occurred. In the example, d2 can only be enabled after&lt;br /&gt;the termination operation of c1 has occurred.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-6503164439621162821?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/6503164439621162821/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/08/business-process-management-part-2_4543.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/6503164439621162821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/6503164439621162821'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/08/business-process-management-part-2_4543.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter IV Process Orchestrations ] ) Sec  D -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-4507846690970072380</id><published>2009-08-23T16:36:00.000+05:30</published><updated>2009-08-23T16:38:52.210+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter IV Process Orchestrations ] ) Sec  C -- By Mathias Weske</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Multiple Merge&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                                        A multiple merge or multi-merge is a point in a process model where two or&lt;br /&gt;more concurrent threads join without synchronization. The activity following&lt;br /&gt;the merge is started for every activation of every incoming branch.&lt;br /&gt;The multi-merge is functionally equivalent with the exclusive or join; the&lt;br /&gt;only difference is that the latter assumes that only one of its incoming branches&lt;br /&gt;gets activated. This assumption is not in place for the multi-merge pattern.&lt;br /&gt;                                    A process model with activity models B, C, and D, and a gateway G&lt;br /&gt;such that E  {(B,G), (C,G), (G,D)} and type(G) = MultiMerge.&lt;br /&gt;For each terminating activity instance b and c, one activity&lt;br /&gt;instance associated with activity model D is started. This means that for each&lt;br /&gt;termination event ti 2 Ep, where i 2 {b, c}, there is an enable event ed that&lt;br /&gt;occurs after the respective termination event, i.e., ti &lt; ed, i 2 {b, c}.&lt;br /&gt;The multiple merge pattern spawns off new threads of control. These&lt;br /&gt;threads need to be identified so that future joins can be realized properly.&lt;br /&gt;These aspects are illustrated in an example shown in Figure 4.11, where a&lt;br /&gt;process model with an and split followed by a multi-merge is shown. As a&lt;br /&gt;result, any of the threads induced by the and split will survive the multiple&lt;br /&gt;merge and spawn a new instance for activity model D and of the activity&lt;br /&gt;models following D in the process model.&lt;br /&gt;Each of the threads of control spawned off by the multi-merge is subject&lt;br /&gt;to the and split/and join shown in the process model. The and join requires&lt;br /&gt;information on the identity of the threads that come in; otherwise, situations&lt;br /&gt;could arise in which activity instances that belong to different threads of&lt;br /&gt;control are synchronized. These issues can be illustrated by the event diagram This diagram can be considered an abstract form of an&lt;br /&gt;event diagram in which the lifetime of each activity instance is shown as a line&lt;br /&gt;with borders marking the enabling and terminating of the activity instance.&lt;br /&gt;The process starts with activity instance a, followed by the concurrent&lt;br /&gt;execution of b and c. Assuming b terminates before c does, the multi-merge&lt;br /&gt;spawns off a new thread of control, called thread The first&lt;br /&gt;activity instance of this thread is d1.&lt;br /&gt;While d1 is still running, c terminates, and the multi-merge spawns off&lt;br /&gt;thread 2, starting with d2. When d1 completes, the and split occurs, and&lt;br /&gt;concurrent threads are created, realized by activity instances e1 and f1.&lt;br /&gt;After d2 terminates, e2 and f2 are created. Assuming that f1 and e2 terminate,&lt;br /&gt;the and join faces a situation in which there are termination events of&lt;br /&gt;activity instances on its incoming edges. Knowing that these belong to different&lt;br /&gt;threads of control (f1 belongs to thread 1, while e2 belongs to thread 2),&lt;br /&gt;the and join can “decide” that these threads cannot be synchronized, although&lt;br /&gt;they belong to the same process instances.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-4507846690970072380?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/4507846690970072380/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/08/business-process-management-part-2_23.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/4507846690970072380'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/4507846690970072380'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/08/business-process-management-part-2_23.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter IV Process Orchestrations ] ) Sec  C -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-5670556865986874965</id><published>2009-08-16T14:39:00.002+05:30</published><updated>2009-08-16T14:44:37.013+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter IV Process Orchestrations ] ) Sec  B -- By Mathias Weske</title><content type='html'>&lt;span style="font-weight: bold;"&gt;    And Split&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                    An and split or parallel split is a point in a process model where a single&lt;br /&gt;thread of control splits into multiple threads of control which are executed concurrently. Consider a process model with activity models A, B, and C and&lt;br /&gt;a gateway G such that E  {(A,G), (G,B), (G,C)} and type(G) = AndSplit.&lt;br /&gt;Since thereby the process model P = (N,E, type) is well defined, we refrain&lt;br /&gt;from providing the formal definition of P with the subsets of N. An and split determines that for each termination of an activity instance&lt;br /&gt;a there are enable events of activity instances b and c, and these events occur&lt;br /&gt;after the termination event of a. Therefore, for each ta 2 Ep there exist eb, ec 2&lt;br /&gt;Ep such that ta &lt; eb ^ ta &lt; ec.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    And Join&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                    An and join is a point in a process model where multiple concurrent threads&lt;br /&gt;converge into one single thread of control. It is an assumption of this pattern&lt;br /&gt;that each incoming branch is executed exactly once.&lt;br /&gt;Consider a process model with activity models B, C, and D, and a gateway&lt;br /&gt;G such that E  {(B,G), (C,G), (G,D)} and type(G) = AndJoin. For each enable event of an activity instance d, there are termination events of activity&lt;br /&gt;instances b and c, such that the termination events occur before the enable&lt;br /&gt;event. Therefore, for each ed 2 Ep 9tb, tc 2 Ep such that tb &lt; ed ^ tc &lt; ed.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;        Xor Split&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                       An xor split or exclusive or split is a point in a process model where one of&lt;br /&gt;several branches is chosen. A process model with activity models A, B, and&lt;br /&gt;C and a gateway G such that E  {(A,G), (G,B), (G,C)} and type(G) =&lt;br /&gt;XorSplit The execution semantics of an exclusive or split determines that for each&lt;br /&gt;termination of an activity instance a associated with activity model A there is&lt;br /&gt;either an enable event of activity instance b or an enable event of an activity&lt;br /&gt;instance c, but not both: for each ta 2 Ep: eb 2 Ep , ec /2 Ep, such that either&lt;br /&gt;ta &lt; eb or ta &lt; ec.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;        Xor Join&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                        An xor join or exclusive or join is a point in a process model where two&lt;br /&gt;or more alternative threads come together without synchronization. It is an&lt;br /&gt;assumption of this pattern that exactly one of the alternative branches is&lt;br /&gt;executed.&lt;br /&gt;Consider a process model with activity models B, C, and D, and a gateway&lt;br /&gt;G such that E  {(B,G), (C,G), (G,D)} and type(G) = XorJoin.&lt;br /&gt;For each termination event of an activity instance b or c there is one and&lt;br /&gt;only one enable event of an activity instance d. Therefore, for each ti 2 Ep,&lt;br /&gt;such that i 2 {b, c} there is an event ed 2 Ep such that ti &lt; ed.&lt;br /&gt;While it is an assumption of this pattern that the branches are alternative&lt;br /&gt;and none of them are ever executed in parallel, the branches can be part of&lt;br /&gt;a loop. But even in this case, for each iteration of a loop, the branches are&lt;br /&gt;alternative and have exclusive or semantics.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;            Or Split&lt;/span&gt;&lt;br /&gt;   &lt;br /&gt;                            An or split is a point in a process model where a number of branches are&lt;br /&gt;chosen. Selection of any nonempty subset of branches is a proper behaviour of&lt;br /&gt;an or split. Figure 4.8 shows a process model with activity models A, B, and&lt;br /&gt;C and a gateway G such that E  {(A,G), (G,B), (G,C)} and type(G) =&lt;br /&gt;OrSplit.&lt;br /&gt;An or split restricts the events of related activity instances as follows: for&lt;br /&gt;each termination event of a there is a subset of enable events of b and c. In&lt;br /&gt;general, for each termination event of a there can be enable events for any&lt;br /&gt;subset of activity instances on the outgoing branches of the split.&lt;br /&gt;In the example, the respective enable events are eb, ec 2 Ep, and any subset&lt;br /&gt;of this event set reflects an acceptable behaviour of the or split, as long as&lt;br /&gt;ta &lt; eb and ta &lt; ec are satisfied (if both branches are selected). In the general case where the or split has n&lt;br /&gt;outgoing edges, 2n −1 options are possible: all nonempty subsets that can be&lt;br /&gt;created out of n activities.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;        Or Join&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                            An or join is a point in a process model where multiple threads of control&lt;br /&gt;converge into one single thread. It is an assumption of this pattern that a&lt;br /&gt;branch that has already been activated cannot be activated again while the&lt;br /&gt;merge is still waiting for other branches to complete.&lt;br /&gt;A process model with activity models B, C, and D, and a gateway G such&lt;br /&gt;that E  {(B,G), (C,G), (G,D)} and type(G) = OrJoin . Once all active branching paths are completed and the respective end events of the final activities in these paths have occurred, the synchronization takes place.&lt;br /&gt;            Either only&lt;br /&gt;the upper thread is taken and only activity instance b is enabled, or only the&lt;br /&gt;lower thread is taken and c is enabled, or both threads are performed and b&lt;br /&gt;and c both are enabled. In general, any nonempty subset of the threads are&lt;br /&gt;valid options, so that 2n − 1 options are allowed for n incoming edges of the&lt;br /&gt;or join.&lt;br /&gt;The or join is a problematic control flow pattern. The problem is that&lt;br /&gt;the join cannot locally decide how long to wait for its activation. Even from&lt;br /&gt;the simple process model fragment shown in Figure 4.9, this problem can be&lt;br /&gt;explained: once one incoming branch is triggered, for instance, by termination&lt;br /&gt;of b, how should the or join react? There are two options:&lt;br /&gt;• Wait: The or join waits before the activity instance d is triggered, because&lt;br /&gt;the other incoming path—which completes in activity instance c—can still&lt;br /&gt;be executed.&lt;br /&gt;• Trigger : The or join triggers d immediately after the termination of b.&lt;br /&gt;The problem is that we cannot decide which of these alternatives the correct&lt;br /&gt;one is. After the first incoming branch has terminated, how long should the&lt;br /&gt;or join wait for the other branch to complete?&lt;br /&gt;If no additional knowledge is available, there is no way of deciding whether&lt;br /&gt;c will eventually terminate for the particular process instance. Since there is no upper bound on the waiting time, realizing the waiting alternative leads&lt;br /&gt;to a deadlock situation if the second thread is never activated.&lt;br /&gt;If the or join triggers d after one incoming branch is activated, a situation&lt;br /&gt;might occur in which c terminates after d has already started! This behaviour&lt;br /&gt;contradicts the semantics of the or join, since in this case it has to wait until&lt;br /&gt;both branches complete.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-5670556865986874965?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/5670556865986874965/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/08/business-process-management-part-2_1713.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/5670556865986874965'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/5670556865986874965'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/08/business-process-management-part-2_1713.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter IV Process Orchestrations ] ) Sec  B -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-4693933234377451540</id><published>2009-08-16T14:36:00.003+05:30</published><updated>2009-08-16T14:39:27.990+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter IV Process Orchestrations ] ) Sec  A -- By Mathias Weske</title><content type='html'>&lt;span style="font-weight: bold;"&gt;        Control Flow Patterns&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                                        Control flow patterns provide a yardstick for expressing process orchestrations.&lt;br /&gt;Control flow patterns are independent of concrete process languages, so that&lt;br /&gt;each pattern can be expressed in different process languages. Control flow&lt;br /&gt;patterns can also be used to compare the expressiveness of process languages.&lt;br /&gt;Basic control flow patterns include sequence, and split, and and join, as&lt;br /&gt;well as exclusive or split and exclusive or join. These control flow patterns&lt;br /&gt;are supported by virtually any process metamodel. Control flow patterns are&lt;br /&gt;defined at the process model level. Their execution semantics, however, applies&lt;br /&gt;to process instances.&lt;br /&gt;In this section, the semantics of control flow patterns will be investigated&lt;br /&gt;on the basis of the events and event orderings they imply on process instances.&lt;br /&gt;Due to its simplicity, the sequence pattern is well suited to explaining the&lt;br /&gt;general approach.&lt;br /&gt;Consider a process model P = (N,E, type) according to Definition 3.3&lt;br /&gt;with activity models A and B and a sequence flow A ! B. This process&lt;br /&gt;model defines an ordering on the activity instances associated with A and&lt;br /&gt;B in the context of a single process instance: for each process instance, the&lt;br /&gt;activity instance associated with B can only start after the activity instance&lt;br /&gt;associated with A has terminated.&lt;br /&gt;As a result, the process model restricts the ordering of events that occur&lt;br /&gt;during process instances. In the example, the termination event of the activity&lt;br /&gt;instance associated with activity model A must occur before the begin event&lt;br /&gt;of the activity instance associated with activity model B.&lt;br /&gt;Each control flow construct is represented in the process model by a gateway.&lt;br /&gt;As with activity instances, there are instances for gateways, e.g., an&lt;br /&gt;instance of a sequence flow ordering the execution of two activity instances.&lt;br /&gt;Each gateway instance has a begin event and a termination event. For a uniform&lt;br /&gt;treatment of control flow structures, sequences are also considered as&lt;br /&gt;gateways, as discussed above.&lt;br /&gt;Activity models are denoted by capital letters, A,B,C, . . ., while the associated&lt;br /&gt;activity instances are denoted by a, b, c, . . .. In case multiple activity&lt;br /&gt;instances are associated with an activity model in the context of a given&lt;br /&gt;process model, subscripts are used, for instance, a1, a2, . . .. Gateways are typically&lt;br /&gt;denoted by G, and g is an instance of a gateway. Let P be a process&lt;br /&gt;model and p a process instance based on this model with an event set Ep.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;        Sequence&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                            The sequence pattern defines that an activity instance b in a process instance p&lt;br /&gt;is enabled after the completion of activity instance a in p, with process model P = (N,E, type) containing activity models A, B, and a gateway model&lt;br /&gt;G such that A,B 2 NA, G 2 NG, E  {(A,G), (G,B)}, and type(G) =&lt;br /&gt;Sequence.&lt;br /&gt;The application of the sequence pattern in A ! B induces an event ordering&lt;br /&gt;between the termination event of a (and the activity instance of activity&lt;br /&gt;model A) and b, such that b can only be enabled after a has terminated. This&lt;br /&gt;approach relates the control flow patterns directly to the state transitions of&lt;br /&gt;activity instances.&lt;br /&gt;In particular, the state transition from init to enabled of an activity instance&lt;br /&gt;b can only be done after the state transition from running of a to&lt;br /&gt;terminated of a has occurred. In process instance p, for a termination event ta 2 Ep of an activity instance a, there is an enable event bb 2 Ep of an activity instance b, such that ta &lt; eb.&lt;br /&gt;        The discussion captures well the case of a single activity instance per&lt;br /&gt;activity model. However, if the activity models are part of a loop, then there&lt;br /&gt;might be multiple activity instances based on activity models A and B.&lt;br /&gt;Therefore, the execution semantics of the sequence control flow pattern&lt;br /&gt;needs to be refined so that eventually for each termination event of some&lt;br /&gt;activity instance a1, a2, . . . there is an enable event of an activity instance&lt;br /&gt;b1, b2, . . ..&lt;br /&gt;        A fragment of a process model where A and B are part of a loop is shown&lt;br /&gt;in Figure 4.3; to realize this loop, an exclusive split gateway, an exclusive or&lt;br /&gt;join gateway, and a set of sequence flows are added.&lt;br /&gt;A process instance based on this process model is shown in the lower part&lt;br /&gt;of that figure. The loop is iterated three times, resulting in activity instances&lt;br /&gt;a1, b1, . . . , a3, b3. Rather than showing all events of these activity instances,&lt;br /&gt;just the enable and termination events are displayed. As can be seen in the&lt;br /&gt;event diagram, in each iteration of the loop, the activity instance ai terminates&lt;br /&gt;before bi can start, for i 2 {1, 2, 3}.&lt;br /&gt;However, the ordering “first a then b” can be violated if a and b belong to&lt;br /&gt;different iterations of the loop. For instance, the termination event of b1 occurs&lt;br /&gt;before the start event of a2. In order to capture loops properly, it is necessary&lt;br /&gt;to define that for each termination event of a there is an enable event of b such&lt;br /&gt;that ta &lt; bb. This condition is satisfied by the process instance: for ta1 &lt; eb1,&lt;br /&gt;ta2 &lt; eb2, and ta3 &lt; eb3.&lt;br /&gt;These event orderings relate termination events to enable events and not&lt;br /&gt;direcly to begin events. Since begin events can only occur after the respective&lt;br /&gt;enable events have occurred, it is guaranteed that the termination event of ai&lt;br /&gt;occurs before the begin event of bi.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-4693933234377451540?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/4693933234377451540/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/08/business-process-management-part-2_16.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/4693933234377451540'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/4693933234377451540'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/08/business-process-management-part-2_16.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter IV Process Orchestrations ] ) Sec  A -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-4615090746595446697</id><published>2009-08-14T19:32:00.002+05:30</published><updated>2009-08-14T19:35:21.437+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter III Business Process Modelling Foundation ] ) Sec  Q -- By Mathias Weske</title><content type='html'>&lt;span style="font-weight: bold;"&gt;    Architecture of Process Execution Environments&lt;br /&gt;&lt;br /&gt;                &lt;/span&gt;So far, this chapter has discussed the modelling of different aspects of a business&lt;br /&gt;process. This section looks into the representation of a business process&lt;br /&gt;management system capable of controlling the enactment of business processes&lt;br /&gt;based on business process models.&lt;br /&gt;                    The architecture&lt;br /&gt;model contains the Business Process Environment, a Business Process Modelling&lt;br /&gt;subsystem, a Business Process Model Repository, a Process Engine, and&lt;br /&gt;a set of Service Providers. The roles of these constituents of the architecture&lt;br /&gt;model are characterized as follows.&lt;br /&gt;• Business Process Modelling: The business process modelling subsystem&lt;br /&gt;is used for creating business process models, containing information on&lt;br /&gt;activities, their operations, and the structure of the business process. This&lt;br /&gt;architecture subsystem can be realized by business process modelling tools.&lt;br /&gt;• Business Process Environment: The business process environment triggers&lt;br /&gt;the instantiation and enactment of process instances based on process&lt;br /&gt;models.&lt;br /&gt;• Business Process Model Repository: The business process model repository&lt;br /&gt;holds business process models that are created by the business process&lt;br /&gt;modelling component.&lt;br /&gt;• Process Engine: The process engine is responsible for instantiating and&lt;br /&gt;controlling the execution of business processes. It is the core component&lt;br /&gt;of a business process management system. This component is triggered by&lt;br /&gt;the business process environment. It uses process models to instantiate and&lt;br /&gt;control the enactment of process instances. To execute a particular activity&lt;br /&gt;instance, it calls entities that act as providers of the required functionality.&lt;br /&gt;In a service-oriented architecture, service providers are called to execute&lt;br /&gt;individual services that realize business process activities.&lt;br /&gt;• Service Providers: Service providers host application services that realize&lt;br /&gt;business process activities. In the architecture model, service providers&lt;br /&gt;represent an abstract entity that subsumes not only Web service providers&lt;br /&gt;but also knowledge workers that realize particular activities in business&lt;br /&gt;processes. The organizational and technical information that the process&lt;br /&gt;engine needs in order to determine and access the service provider is also&lt;br /&gt;stored in the business process model repository.&lt;br /&gt;These components of the architectural model control the enactment of process&lt;br /&gt;instances. To capture the distributed nature of business process executions,&lt;br /&gt;the components and the service providers are represented by agents that communicate&lt;br /&gt;by sending and receiving messages, i.e., the agents do not share&lt;br /&gt;memory, but are distributed.&lt;br /&gt;        Gateways are nodes in a process model that are used to guide the process&lt;br /&gt;flow. Therefore, for each gateway node the process engine needs to perform&lt;br /&gt;some action. This work that the process engine conducts is represented by&lt;br /&gt;a gateway instance, just as the work defined by an activity model is represented&lt;br /&gt;by an activity instance. A property of gateway instances is that the&lt;br /&gt;process engine executes them, whereas activity instances are executed by service&lt;br /&gt;providers, requiring nonlocal communication.&lt;br /&gt;                The first event that occurs represents&lt;br /&gt;the occurrence of the initial event in the process model. Let e1 be this&lt;br /&gt;event.&lt;br /&gt;The process engine detects that there is a process model defined for this&lt;br /&gt;event. Therefore, a process instance is instantiated. For each activity model in&lt;br /&gt;the process model, an activity instance is instantiated; for each gateway node,&lt;br /&gt;a gateway instance is created, represented by events i2 through i6. When the&lt;br /&gt;instances are initiated, the AnalyzeOrder activity instance can be started,&lt;br /&gt;resulting in event b2. After the termination of this activity instance in event&lt;br /&gt;t2, the gateway instance is started, represented by event b3.&lt;br /&gt;After the gateway instance terminates in event t3, the process engine can&lt;br /&gt;decide which path to take. In the process instance shown, the advanced check&lt;br /&gt;activity instance is disregarded and the simple check path is taken. Therefore,&lt;br /&gt;the AdvCheck activity instance is skipped, represented by event s5. The SimpleCheck&lt;br /&gt;activity instance is started (event b4) and later terminates in event&lt;br /&gt;t4. Finally, the execution of the gateway instance and the occurrence of the&lt;br /&gt;final event n7 terminate the process instance.&lt;br /&gt;The event diagrams introduced are extended to capture agents involved&lt;br /&gt;in the enactment of process instances. Each agent is represented by a horizontal&lt;br /&gt;line, on which the events that occur in this agent are drawn. Time&lt;br /&gt;proceeds from left to right. In addition to the events directly associated with&lt;br /&gt;the execution of activity instances, the begin and end of a computation and&lt;br /&gt;the sending and receipt of a message are also represented by events. Message events of agents represented by directed arcs connecting the send event with&lt;br /&gt;the corresponding receive event.&lt;br /&gt;                    The business process environment, the process engine, and two service&lt;br /&gt;providers are the agents represented in the event diagram. Since the operation&lt;br /&gt;of the business process modelling component is not the focus of attention,&lt;br /&gt;these components of the architecture model are not represented as agents in&lt;br /&gt;the event diagram.&lt;br /&gt;                    When the initial event of the process model occurs in the business process&lt;br /&gt;environment, the process engine instantiates a process instance, including its&lt;br /&gt;activity instances. Then, the process engine determines the first activity instance&lt;br /&gt;to be executed. A service provider is determined for executing this&lt;br /&gt;activity, in the example, Service Provider 1.&lt;br /&gt;The service provider receives this message and starts an AnalyzeOrder&lt;br /&gt;activity instance, marked by event b2. Once that activity instance is completed&lt;br /&gt;(t2), the service provider returns a message to the process engine. This message&lt;br /&gt;typically contains the return value of that invocation. Using this information&lt;br /&gt;and possibly other information, the process engine can evaluate the condition&lt;br /&gt;associated with the gateway node. Based on the decision made by the process&lt;br /&gt;engine on behalf of the gateway, the AdvCheck activity instance is skipped&lt;br /&gt;(skip event s5) and the SimpleCheck activity is started.&lt;br /&gt;In order to realize this process instance, the process engine sends an invocation&lt;br /&gt;message to the service provider responsible for executing the simple&lt;br /&gt;check service. Service Provider 2 receives this message and starts the SimpleCheck&lt;br /&gt;activity, marked by event b4.&lt;br /&gt;Once this activity instance completes in event t4, the service provider&lt;br /&gt;returns a message to the process engine, which then executes the join gateway&lt;br /&gt;node (events omitted). The process instance completes with the final event and by sending the respective message to the business process environment,&lt;br /&gt;informing it about the termination of the process instance.&lt;br /&gt;As will be detailed in the next chapter for more complex workflow patterns,&lt;br /&gt;control flow patterns restrict the ordering of execution events for activities&lt;br /&gt;involved in a business process. For instance, an AnalyzeOrder activity can&lt;br /&gt;only be started after the initial event has occurred, and a SimpleCheck activity&lt;br /&gt;can only be started after the exclusive or gateway has completed, and so on.&lt;br /&gt;The execution semantics of a process instance based on a process model is&lt;br /&gt;described by restrictions on the events and their ordering during the execution&lt;br /&gt;of process instances.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-4615090746595446697?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/4615090746595446697/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/08/business-process-management-part-2_4923.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/4615090746595446697'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/4615090746595446697'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/08/business-process-management-part-2_4923.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter III Business Process Modelling Foundation ] ) Sec  Q -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-8722017682969360398</id><published>2009-08-14T19:30:00.001+05:30</published><updated>2009-08-14T19:32:25.845+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter III Business Process Modelling Foundation ] ) Sec  P -- By Mathias Weske</title><content type='html'>&lt;span style="font-weight: bold;"&gt;    Selection of Business Partners in Process Choreographies&lt;/span&gt;The modelling of organizational aspects in business process management&lt;br /&gt;can be extended to business partners, which is important in the context of&lt;br /&gt;business-to-business processes.&lt;br /&gt;Consider a business process choreography with multiple business partners,&lt;br /&gt;each of which plays a specific role in the choreography. If there is a role Shipper&lt;br /&gt;specified according to the requirements for shipping goods, it can be bound to&lt;br /&gt;specific enterprises that can perform the work. Additional flexibility is gained&lt;br /&gt;because the organizations participating in a choreography are not hardwired,&lt;br /&gt;but represented at the model level.&lt;br /&gt;There are different options for selecting a particular shipper. The selection&lt;br /&gt;can be done before a particular process instance starts. This alternative is&lt;br /&gt;useful if sufficient information on the goods to be shipped is available before&lt;br /&gt;the process starts.&lt;br /&gt;In scenarios where only during run time of the process instance are the&lt;br /&gt;goods and the sender and receiver determined, the dynamic selection of a&lt;br /&gt;shipper is useful. Based on the information on the shipment and on its additional&lt;br /&gt;properties—such as dangerous goods—an appropriate shipper can be&lt;br /&gt;selected at run time.&lt;br /&gt;            Before the process choreography can be realized, the broker requires information&lt;br /&gt;on the suppliers available. This information is gathered by the broker in a&lt;br /&gt;separate process choreography, whose message flow is not shown in the figure.&lt;br /&gt;The process choreography starts with the creating of an order by the customer.&lt;br /&gt;Then, the customer sends a Request Supplier Info message to the broker.&lt;br /&gt;The broker receives this message and uses local information to find the&lt;br /&gt;supplier most suitable for fulfilling the order. In the Send Supplier Info message,&lt;br /&gt;the broker informs the customer about this supplier.&lt;br /&gt;The customer receives this message and uses the information received to&lt;br /&gt;send an order to the selected supplier, Supplier-A in this case. When the&lt;br /&gt;supplier has processed the order, the supplier sends the goods to the customer,&lt;br /&gt;and the process completes.&lt;br /&gt;In the example shown, the selection is performed using a third party, the&lt;br /&gt;broker. While this is a valid option in scenarios where a broker has rich information&lt;br /&gt;on a set of business partners, the selection can also be done locally,&lt;br /&gt;i.e., without the involvement of a third party.&lt;br /&gt;In this case, the actual selection can be performed as a manual activity,&lt;br /&gt;using information on suppliers available and capable of fulfilling the order.&lt;br /&gt;Role resolution in this case is not performed by the business process management&lt;br /&gt;system, but by a knowledge worker. This task also matches the&lt;br /&gt;service-oriented approach, where a service requestor (the knowledge worker)&lt;br /&gt;uses the broker to select from among a set of services (supplier services) the&lt;br /&gt;one that is suited best for the task at hand.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;        Standardized Software Interfaces&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                            Standardized interfaces to existing software systems are another means of&lt;br /&gt;flexibility in business process management. A variety of techniques to specify&lt;br /&gt;software interfaces are known from software engineering and software architectures.&lt;br /&gt;It is a key concept to decouple the use of a software component from its&lt;br /&gt;implementation, i.e., to hide implementation details from usage information,&lt;br /&gt;following the information hiding principle.&lt;br /&gt;In the context of business process management, standardized software interfaces&lt;br /&gt;are of crucial importance in system workflows, and also in human&lt;br /&gt;interaction workflows, since the overall process structure can be decoupled&lt;br /&gt;from the implementation of particular activities realized by software components.&lt;br /&gt;A flexible association of process activities with software systems allows us&lt;br /&gt;to change the implementation of specific process activities without changing&lt;br /&gt;the overall business process. There are two variations: the software system&lt;br /&gt;realizing a particular activity can be defined at design time of the process or at&lt;br /&gt;run time of the process instances.&lt;br /&gt;            We assume that an ERP system is deployed to provide the functionality&lt;br /&gt;of the order management system and of the inventory management system in&lt;br /&gt;an integrated, robust, and scalable manner.&lt;br /&gt;By standardized software interfaces, the business process activities can use&lt;br /&gt;the functionality of the new system without changing the business process.&lt;br /&gt;This enhances the flexibility of the business process implementation, because&lt;br /&gt;the realization of particular process activities can be changed without modifying&lt;br /&gt;the business process.&lt;br /&gt;This discussion describes an ideal setting, in which activity realizations&lt;br /&gt;can easily be exchanged. However, specific properties of legacy systems make&lt;br /&gt;the definition of clean, standardized interfaces cumbersome, because legacy&lt;br /&gt;systems offer their functionality typically by proprietary and often not well&lt;br /&gt;documented interfaces.&lt;br /&gt;            In addition, the granularity with which legacy systems provide functionality&lt;br /&gt;often does not match the granularity required by the business process. In&lt;br /&gt;particular, legacy systems often realize complex subprocesses rather than individual&lt;br /&gt;activities in a business process. Sometimes, the processes realized by&lt;br /&gt;legacy systems and the modelled business processes are not immediately comparable.&lt;br /&gt;These issues have to be taken into account when software interfaces&lt;br /&gt;to existing information systems are developed.&lt;br /&gt;One option to solving this problem is developing software interfaces that&lt;br /&gt;make available the functionality provided by legacy systems with a granularity&lt;br /&gt;that allows reuse of functionality at a finer level of granularity. The granularity&lt;br /&gt;should match the granularity required at the business process level.&lt;br /&gt;Depending on the legacy system, its complexity, software architecture,&lt;br /&gt;and documentation, as well as the availability of knowledgeable personnel,&lt;br /&gt;the required effort can be very high. If the need for finer-grained granularity&lt;br /&gt;and efficient reuse of functionality is sufficiently high, then partial or complete&lt;br /&gt;reimplementation can be an option.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-8722017682969360398?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/8722017682969360398/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/08/business-process-management-part-2_14.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/8722017682969360398'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/8722017682969360398'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/08/business-process-management-part-2_14.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter III Business Process Modelling Foundation ] ) Sec  P -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-8801463182776152483</id><published>2009-08-09T14:09:00.001+05:30</published><updated>2009-08-09T14:11:54.734+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter III Business Process Modelling Foundation ] ) Sec  O -- By Mathias Weske</title><content type='html'>&lt;span style="font-weight: bold;"&gt;            Organizational Modelling&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                                            The modelling of organizational aspects also provides flexibility in business&lt;br /&gt;process management. In this section, role resolution in an intra-company setting&lt;br /&gt;is discussed, in which different approaches are investigated to associate&lt;br /&gt;knowledge workers with business process activities .&lt;br /&gt;                                            In the case of human interaction workflows, the enactment environment of&lt;br /&gt;the business process has to take into account the organizational structure of&lt;br /&gt;the company that runs the business process. Flexibility in organizational modelling&lt;br /&gt;is achieved by assigning roles to process activities, and not to specific&lt;br /&gt;individuals.&lt;br /&gt;By associating roles with activity models at design time and mapping roles&lt;br /&gt;to personnel that is skilled, competent, and available to perform the activity&lt;br /&gt;at run time, flexibility is improved, because changes in the personnel structure&lt;br /&gt;of the organization do not affect the business processes.&lt;br /&gt;For instance, absent knowledge workers are not with associated with specific&lt;br /&gt;activity instances, as are persons who are currently available. Thereby, the dynamic aspect in the organization—knowledge workers might be temporarily&lt;br /&gt;absent or there might be changes in the work force—can be represented&lt;br /&gt;at the model level. Consequently, changes in the personnel are hidden from&lt;br /&gt;the process, as long as the roles defined in the model can actually be filled by&lt;br /&gt;persons in the organization.&lt;br /&gt;        Consider a business process with a set of activities that need to be executed&lt;br /&gt;sequentially.These activities involve entering a credit request&lt;br /&gt;(Enter Credit Request), gathering information on the financial situation of&lt;br /&gt;the client (Analzye client), proposing a decision on the credit request, and&lt;br /&gt;reviewing and submitting the decision.&lt;br /&gt;        A subset of these activities is assigned the same role. In the example,&lt;br /&gt;a clerk is responsible for the first three activities, whereas the clerk’s boss&lt;br /&gt;finally decides and submits the decision. This situation can be represented in&lt;br /&gt;a business process model by associating the role Clerk and the role Boss with&lt;br /&gt;their respective activities.&lt;br /&gt;For each process instance by role resolution, the system offers these activities&lt;br /&gt;to knowledge workers who can fulfil the respective role. Figure 3.35 shows&lt;br /&gt;a situation in which three different knowledge workers with the role Clerk are&lt;br /&gt;associated with the activity instances of that role.&lt;br /&gt;While this role resolution is correct from a formal point of view, this situation&lt;br /&gt;is undesirable in most cases because each clerk needs to understand the&lt;br /&gt;context of the case, which leads to longer process durations and potentially&lt;br /&gt;incorrect decisions.&lt;br /&gt;In the example, the handover of work from Peter to Charles and from&lt;br /&gt;Charles to Anne leads to delays in process executions and should therefore&lt;br /&gt;be avoided. In addition, Charles needs to get familiar with the case entered&lt;br /&gt;by Peter, and Anne needs to get familiar with the case that Charles analyzed&lt;br /&gt;beforehand.&lt;br /&gt;This figure also shows that at the business process instance level, knowledge&lt;br /&gt;workers are associated with activity instances, while at the business&lt;br /&gt;process model level, roles are associated with activity models.&lt;br /&gt;To provide adequate support through role resolution, the business process&lt;br /&gt;model needs to contain the information that whoever conducted the first clerk activity also has to conduct the other two clerk activities. In this case, all&lt;br /&gt;clerk activities are associated with Charles, who then can perform them much&lt;br /&gt;quicker than the three persons in the previous setting.&lt;br /&gt;                    This advanced role resolution works well if the same knowledge worker&lt;br /&gt;is available during the whole business process instance—or at least during&lt;br /&gt;the steps that the person conducts. But there are cases where a person has&lt;br /&gt;started on a process instance by conducting the first activity, but then becomes&lt;br /&gt;unavailable.&lt;br /&gt;In this case, a decision needs to be made: either the process is delayed&lt;br /&gt;until the person returns to work or the case is transferred to another clerk.&lt;br /&gt;This clerk needs to understand the overall context of the case before he can&lt;br /&gt;start processing the activity. This decision is influenced by multiple factors,&lt;br /&gt;such as the type of business process, the expected delay, and the effect of the&lt;br /&gt;delay, and therefore cannot be performed automatically in general.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-8801463182776152483?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/8801463182776152483/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/08/business-process-management-part-2_7784.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/8801463182776152483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/8801463182776152483'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/08/business-process-management-part-2_7784.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter III Business Process Modelling Foundation ] ) Sec  O -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-8835045836490862997</id><published>2009-08-09T14:06:00.002+05:30</published><updated>2009-08-09T14:09:41.852+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter III Business Process Modelling Foundation ] ) Sec  N -- By Mathias Weske</title><content type='html'>&lt;span style="font-weight: bold;"&gt;            Business Process Flexibility&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;                                            The quest for flexibility can be regarded as the main driving force behind&lt;br /&gt;business process management, both at an organizational level, where strategic&lt;br /&gt;business processes are investigated, and at an operational level, where&lt;br /&gt;human interaction workflows and system workflows are important concepts&lt;br /&gt;for realizing business processes.&lt;br /&gt;                                            According to Wikipedia, flexibility refers to the “ability to easily bend an&lt;br /&gt;object or the ability to adapt to different circumstances.”&lt;br /&gt;In todays dynamic market environments, “different circumstances” are&lt;br /&gt;induced by changes in the market environment of the company. Business processes&lt;br /&gt;are objects that need to adapt easily to changes. Since products that&lt;br /&gt;companies provide to the market are generated by business processes, flexible&lt;br /&gt;business processes are an important asset for coping with market changes in&lt;br /&gt;an effective manner.&lt;br /&gt;Different aspects have to be taken into account when considering flexibility.&lt;br /&gt;First of all, flexibility is provided by explicit representation of business&lt;br /&gt;processes, because adaptations of explicit, graphically specified business processes&lt;br /&gt;is much easier than adaptation of written organizational procedures or&lt;br /&gt;business policies buried in software code.&lt;br /&gt;                    Enactment platforms, such as workflow management systems, provide&lt;br /&gt;powerful mechanisms for enacting business processes in diverse technical and&lt;br /&gt;organizational environments. One area specific to human interaction workflows&lt;br /&gt;is the assignment of knowledge workers to process activities.&lt;br /&gt;                    In typical workflow environments, such as system workflows and human&lt;br /&gt;interaction workflows, information systems are required for enacting workflow&lt;br /&gt;activities. The interfaces to these systems might be hardcoded in the adapters&lt;br /&gt;of the workflow management system. In dynamic software landscapes, where&lt;br /&gt;functionality is provided through standardized interfaces, the ability to change&lt;br /&gt;the binding of particular software to workflow activities is another source of&lt;br /&gt;flexibility.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;                            Explicit Process Representations&lt;/span&gt;&lt;br /&gt;                                                Business process management systems are created to narrow the gap between business goals and their realization by means of information technology. The&lt;br /&gt;main way to provide this flexibility is based on explicit representations of&lt;br /&gt;business processes at different levels. While organizational business processes&lt;br /&gt;have a coarse-grained structure and are typically specified textually by forms,&lt;br /&gt;operational business processes consist of process activities, and execution constraints&lt;br /&gt;that relate them.&lt;br /&gt;                                        Explicit process representations provide flexibility, since changes to the&lt;br /&gt;current process can be discussed and agreed upon by the different stakeholders&lt;br /&gt;involved in the design of the business process. In this context, flexibility is achieved by changes at the business process model level that are immediately&lt;br /&gt;translated to actual business process instances.&lt;br /&gt;                                        This process features a sequence of activities, where the first activity&lt;br /&gt;to store the order is preceded by a start event. After the order is stored,&lt;br /&gt;the inventory is checked. This version of the business process rules that the&lt;br /&gt;shipment is prepared only after the invoice is sent and the funds are received.&lt;br /&gt;Finally, the goods are shipped and the process terminates.&lt;br /&gt;Due to the somewhat cautious policy realized by the business process—&lt;br /&gt;prepare shipment only after receiving the funds—business process instances&lt;br /&gt;based on this process model might suffer from long processing times, resulting&lt;br /&gt;in insufficient customer satisfaction.&lt;br /&gt;In order to solve this problem, the process owner starts a review of this&lt;br /&gt;business process by inviting process participants and process consultants to&lt;br /&gt;a joint workshop. The business process model is used as a communication&lt;br /&gt;platform for these stakeholders at this workshop.&lt;br /&gt;Discussing the problem of the process instances, the stakeholders find out&lt;br /&gt;that concurrency can be exploited within the process. If activities can be&lt;br /&gt;executed concurrently, their order of execution is irrelevant. For instance, the&lt;br /&gt;preparation of the invoice can be started before the shipment is handled. The&lt;br /&gt;new and improved version of the business process is shown in Figure 3.33.&lt;br /&gt;Although in this example the deficits of the business process are obvious,&lt;br /&gt;the improvement of the process by introducing concurrency shows quite well&lt;br /&gt;how an explicit process model can foster response to change.&lt;br /&gt;The translation of the business process model to the actual operational&lt;br /&gt;environment can be realized in different ways. If the business process is realized&lt;br /&gt;by a human interaction workflow, then the modified business process&lt;br /&gt;model needs to be deployed in the workflow management system. Deployment&lt;br /&gt;typically includes enrichment of the business process model with information&lt;br /&gt;to make the process executable.&lt;br /&gt;In particular, there needs to be a translation from the graphical model to&lt;br /&gt;an executable format that is specified in a particular workflow language or—&lt;br /&gt;in case the system workflow is realized in a service-oriented environment in a service composition language. In any of these realizations, the explicit&lt;br /&gt;representation of business process models provides the flexibility to change&lt;br /&gt;the process and to finally enact the modified process.&lt;br /&gt;                    New process instances would then follow the new, improved business&lt;br /&gt;process model. If, on the other hand, business processes are enacted without&lt;br /&gt;any system support, then the business process model is translated manually&lt;br /&gt;to a consistent set of procedures and policies that the knowledge workers need&lt;br /&gt;to follow.&lt;br /&gt;The flexibility resulting from the explicit modelling of business processes&lt;br /&gt;is fundamental to business process management applications.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;                                   &lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-8835045836490862997?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/8835045836490862997/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/08/business-process-management-part-2_09.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/8835045836490862997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/8835045836490862997'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/08/business-process-management-part-2_09.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter III Business Process Modelling Foundation ] ) Sec  N -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-8523494401352402345</id><published>2009-08-07T13:58:00.001+05:30</published><updated>2009-08-07T14:00:02.545+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter III Business Process Modelling Foundation ] ) Sec  M -- By Mathias Weske</title><content type='html'>&lt;span style="font-weight: bold;"&gt;                Modelling Operation&lt;br /&gt;&lt;br /&gt;                                                &lt;/span&gt;While business process management organizes the work that a company performs&lt;br /&gt;by focusing on organizational and functional aspects, the realization&lt;br /&gt;of business process activities also needs to be taken into account. Activities&lt;br /&gt;can be distinguished depending on the level of software system support. The&lt;br /&gt;terms system workflows and human interaction workflows were introduced to&lt;br /&gt;characterize the different kinds of business process enactment.&lt;br /&gt;A classification of activities in business processes was introduced in Figure&lt;br /&gt;3.1, consisting of system activities, user interaction activities, and manual&lt;br /&gt;activities. To recapitulate, system activities are performed by software systems&lt;br /&gt;without user interaction, user interaction activities require the involvement of&lt;br /&gt;human users and manual activities do not involve the use of information systems.&lt;br /&gt;During the enactment of human interaction workflows, knowledge workers&lt;br /&gt;perform activity instances. When a knowledge worker starts working on a specific activity, the respective application program is started, and the input&lt;br /&gt;data as specified in the process model is transferred to that application program.&lt;br /&gt;When the knowledge worker completes that activity, the output data&lt;br /&gt;generated is collected in the output parameters. These parameter values can&lt;br /&gt;then be stored in the application program. They can also be transferred by&lt;br /&gt;the business process management system to the next activity, as specified in&lt;br /&gt;the business process model.&lt;br /&gt;Business process modelling aims at mapping high-level and domain-specific&lt;br /&gt;features of the application process; the technical details—the main components&lt;br /&gt;of the operational perspective—are taken into account in the configuration&lt;br /&gt;phase of the business process management lifecycle. The heterogeneous&lt;br /&gt;nature of information technology landscapes led to various kinds of interface&lt;br /&gt;definitions, most of which did not prove to be compatible. With the advent of&lt;br /&gt;service-oriented computing, the operational aspects of business processes are&lt;br /&gt;represented by services, providing the required uniformity.&lt;br /&gt;This section discusses how activities realized by software functionality can&lt;br /&gt;be modelled. Conceptually, the same levels of abstraction apply to modelling&lt;br /&gt;the operational perspective as to modelling the other perspectives: at the&lt;br /&gt;metamodel level, interface definition languages reside. They describe specific&lt;br /&gt;interface definitions at the model level. At the instance level executing software&lt;br /&gt;code is categorized.&lt;br /&gt;This approach fits the modelling of activity instances (and, therefore, also&lt;br /&gt;to process instances) well, because activity instances can be realized by executing&lt;br /&gt;software code. It also fits the organizational perspective in which persons&lt;br /&gt;reside at the instance level. Persons are—at least in human interaction&lt;br /&gt;workflows—responsible for performing activity instances.&lt;br /&gt;In order to automatically invoke this software functionality, business&lt;br /&gt;process management systems require concepts and technology to access these&lt;br /&gt;systems. The operational perspective of business process modelling provides&lt;br /&gt;the information that equips a business process management system with information&lt;br /&gt;required to invoke the functionality of external application systems.&lt;br /&gt;The operational perspective includes the invocation environment of application&lt;br /&gt;programs, the definition of the input and output parameters of the&lt;br /&gt;application program, and their mapping to input and output parameters of&lt;br /&gt;business process activities. Therefore, functional requirements need to be detailed&lt;br /&gt;in order for us to evaluate whether a certain software system provides&lt;br /&gt;the required functionality in the context of a business process.&lt;br /&gt;This perspective is not limited to functional requirements. Non-functional&lt;br /&gt;requirements also need to be represented, for instance, security properties&lt;br /&gt;and quality of service properties of the invoked applications or services, such&lt;br /&gt;as execution time and uptime constraints. In service-oriented architectures,&lt;br /&gt;these properties are typically specified in service-level agreements between&lt;br /&gt;collaborating business partners. These service-level agreements are part of a&lt;br /&gt;legal contract that the parties sign.&lt;br /&gt;        Interface definition languages are used to specify the usage of procedures&lt;br /&gt;and functions, implemented by software system. They are also essential to&lt;br /&gt;connect software systems that have been developed independently from each&lt;br /&gt;other. Therefore, they are essential for middleware systems. Middleware based&lt;br /&gt;on service-oriented architectures play an increasingly important part as realization&lt;br /&gt;platforms for enacting business processes. The reminder of this section&lt;br /&gt;discusses aspects of service-oriented architectures that are relevant for business&lt;br /&gt;process management.&lt;br /&gt;The creation of service wrappers that encapsulate business-relevant functionality&lt;br /&gt;of existing information systems is called service-enabling. While there&lt;br /&gt;are environments in which one service is realized by one information system,&lt;br /&gt;the typical case is where business functionality is realized by the interplay of&lt;br /&gt;multiple existing application systems, making service-enabling a costly and&lt;br /&gt;complex matter.&lt;br /&gt;Service-enabling closes the gap between business process activities and&lt;br /&gt;the technical infrastructure for realizing them.&lt;br /&gt;                AnalyzeOrder is realized by a&lt;br /&gt;service called Analyze Order Service which combines the functionality of three&lt;br /&gt;underlying software systems that run on a technical infrastructure. While&lt;br /&gt;the definition and realization of the Analyze Order Service is a complex and&lt;br /&gt;challenging task, this book assumes that dedicated business functionality is&lt;br /&gt;available and can be used to realize activities in business processes.&lt;br /&gt;Service-oriented computing also facilitates the dynamic binding of services&lt;br /&gt;to particular business process activities. This situation is represented in the&lt;br /&gt;conceptual model of these layers by a many-to-many relationship between&lt;br /&gt;activity and service. This means that a given activity can be realized by multiple&lt;br /&gt;services. Advanced concepts in service engineering facilitate the dynamic&lt;br /&gt;binding of a business process activity to a service at run time, providing the potential to increase fault tolerance by selecting from a set of possible services&lt;br /&gt;a service that is currently operational.&lt;br /&gt;A more detailed picture is provided in Figure 3.31, where enterprise application&lt;br /&gt;integration middleware is explicitly shown. Two legacy systems provide&lt;br /&gt;their functionality via enterprise application integration middleware. For each&lt;br /&gt;of these systems, an adapter is realized that hides the heterogeneity of the&lt;br /&gt;legacy systems from higher levels. But there can also be existing software&lt;br /&gt;systems that do not require the enterprise application integration middleware&lt;br /&gt;layer.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-8523494401352402345?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/8523494401352402345/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/08/business-process-management-part-2_6023.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/8523494401352402345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/8523494401352402345'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/08/business-process-management-part-2_6023.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter III Business Process Modelling Foundation ] ) Sec  M -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-4116531811357584628</id><published>2009-08-07T13:54:00.003+05:30</published><updated>2009-08-07T13:58:14.807+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter III Business Process Modelling Foundation ] ) Sec  L -- By Mathias Weske</title><content type='html'>&lt;span style="font-weight: bold;"&gt;    Deferred Allocation&lt;/span&gt;&lt;br /&gt;     &lt;br /&gt;                       In deferred allocation, the decision about who performs an activity instance&lt;br /&gt;is only made at run time of the business process. To this end, there is no&lt;br /&gt;distinction between deferred allocation and role-based allocation. However,&lt;br /&gt;in deferred allocation, rather than using the role information defined during&lt;br /&gt;design time, the allocation is performed as an explicit step in the business&lt;br /&gt;process, and not influenced by role information&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;        Authorization&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;                       Authorization allocates persons to activity instances based on their positions.&lt;br /&gt;So, a list of positions is enumerated that specifies the persons who can perform&lt;br /&gt;the activity instance. This could also be achieved by adding a new role&lt;br /&gt;that captures the authorization. A specific type of authorization that uses&lt;br /&gt;capabilities of the knowledge worker to perform allocation is also possible.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;           Separation of Duties&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;                               The separation of duties allocation scheme relates different allocations within&lt;br /&gt;one business process. For instance, a document needs to be signed and countersigned&lt;br /&gt;by two employees with a common role. In role-based allocation, these&lt;br /&gt;activities could be performed by the same employee. Separation of duties allows&lt;br /&gt;relating allocations in a way that this is ruled out, so that each document&lt;br /&gt;is signed by two different employees.&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;        Case Handling&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;                                   In the case handling allocation scheme, certain activities in a business process&lt;br /&gt;require an understanding of the overall case. In these environments, it is useful&lt;br /&gt;that the same knowledge worker deals with all activities of one business&lt;br /&gt;process instance. This avoids errors and reduces processing time, because the&lt;br /&gt;knowledge worker already knows the case, and so can solve the issues at hand&lt;br /&gt;more efficiently than a colleague to whom the case is not known “retain familiar” allocation scheme is very similar to case handling; however,&lt;br /&gt;not all activity instances of a case are allocated to one specific knowledge&lt;br /&gt;worker, but rather only a subset of them.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;        History-Based Allocation&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                                           The idea of history-based allocation is that a person is allocated to an activity&lt;br /&gt;instance based on what this person worked on previously, i.e., on the history&lt;br /&gt;of the activity instance that he or she completed. This includes other business&lt;br /&gt;process instances. The goal is to allocate work to persons according to their&lt;br /&gt;personal experiences and expertise that is not represented in the role information.&lt;br /&gt;While this is not part of a role specification, this information needs&lt;br /&gt;to be represented in the business process management system so that it can&lt;br /&gt;decide on the allocation based on the history and personal experiences. This&lt;br /&gt;allocation scheme is useful for realizing a “one face to the customer” strategy,&lt;br /&gt;in which for each customer there is a dedicated individual responsible for all&lt;br /&gt;aspects of communication with it.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;            Organizational Allocation&lt;br /&gt;&lt;br /&gt;                               &lt;/span&gt;&lt;span&gt;If organizational allocation is used, not roles but the positions within the&lt;br /&gt;overall organization are used to allocate activity instances. For instance, to&lt;br /&gt;authorize expenditure, the manager of the organizational unit that requested&lt;br /&gt;the expenditure needs to approve. Depending on the particular language used&lt;br /&gt;to express organizational allocation, complex allocation rules can be realized,&lt;br /&gt;all of which take advantage of the organizational structure of the company.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-4116531811357584628?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/4116531811357584628/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/08/business-process-management-part-2_07.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/4116531811357584628'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/4116531811357584628'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/08/business-process-management-part-2_07.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter III Business Process Modelling Foundation ] ) Sec  L -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-8748981075791783160</id><published>2009-08-05T14:20:00.001+05:30</published><updated>2009-08-05T14:21:43.039+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter III Business Process Modelling Foundation ] ) Sec  K -- By Mathias Weske</title><content type='html'>&lt;span style="font-weight: bold;"&gt;            Direct Allocation&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                                        In direct allocation, an individual person, rather than a position in an organization,&lt;br /&gt;is allocated to all activity instances of a particular activity model. This&lt;br /&gt;resource allocation is useful in cases where there is exactly one person who is&lt;br /&gt;suitable for performing these activities, such as the chairperson of a company,&lt;br /&gt;who has to finally decide on investments exceeding a certain threshold.&lt;br /&gt;                                        Direct allocation can always be simulated by role-based allocation, discussed&lt;br /&gt;next, simply by providing a role with one member, in our example&lt;br /&gt;the company owner. However, if this property of the organization will remain&lt;br /&gt;stable over a long period of time, introducing a separate role (owner) is not&lt;br /&gt;required, so direct allocation can be used. The limitations of direct allocation&lt;br /&gt;will be discussed in the context of role-based allocation.&lt;br /&gt;   &lt;br /&gt;&lt;span style="font-weight: bold;"&gt;                    Role-Based Allocation&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                                        Role-based allocation is the standard way of allocating work to the members of&lt;br /&gt;organizations. It is based on the understanding that all members of a certain&lt;br /&gt;role are somehow functionally equivalent, so that any member of the role can&lt;br /&gt;perform a given unit of work.&lt;br /&gt;To each activity model in a business process model, a is role assigned,&lt;br /&gt;indicating that all members of the role are capable of performing the respective&lt;br /&gt;activity instances. The mapping of role information to specific knowledge&lt;br /&gt;workers is called role resolution. Current information on the availability of the&lt;br /&gt;knowledge worker is used during role resolution.&lt;br /&gt;There are two ways of realizing role-based allocation. In the first way, when&lt;br /&gt;an activity instance enters the ready state, the work item is communicated&lt;br /&gt;to the members of the group. Once one member of the group selects a work&lt;br /&gt;item, the work items associated with the other group members are deleted. In&lt;br /&gt;the second way, only one person is selected to perform the activity instance,&lt;br /&gt;so only one work item is created.&lt;br /&gt;Role-based allocation provides a set of interesting advantages with respect&lt;br /&gt;to direct allocation, all of which are related to enhancing the flexibility of&lt;br /&gt;business processes. Firstly, the business process model does not need to be&lt;br /&gt;changed when there are changes in the personnel, i.e., employees retire and&lt;br /&gt;new employees are hired. When using direct allocation, any change in the personnel related to the directly allocated persons would result in a change in&lt;br /&gt;the business process model.&lt;br /&gt;Secondly, by role resolution at run time of the business process, only available&lt;br /&gt;persons are selected to perform activities. This approach avoids situations&lt;br /&gt;in which persons are selected to perform activity instances that are currently&lt;br /&gt;not available, for instance, due to meetings or absence. In direct role resolution,&lt;br /&gt;when the person is not available, there is no way of continuing the&lt;br /&gt;business process.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-8748981075791783160?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/8748981075791783160/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/08/business-process-management-part-2_5066.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/8748981075791783160'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/8748981075791783160'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/08/business-process-management-part-2_5066.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter III Business Process Modelling Foundation ] ) Sec  K -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-4455951100662617297</id><published>2009-08-05T14:17:00.001+05:30</published><updated>2009-08-05T14:20:16.716+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter III Business Process Modelling Foundation ] ) Sec  J -- By Mathias Weske</title><content type='html'>&lt;span style="font-weight: bold;"&gt;                    Modelling Organization&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;                                        An important task of a business process management system is the coordination&lt;br /&gt;of work among the personnel of an enterprise. To fulfil this, the system&lt;br /&gt;has to be provided with information on the organizational structures in which&lt;br /&gt;the business process will execute.&lt;br /&gt;                                        As in process modelling and data modelling, the metamodel level&lt;br /&gt;provides the means to express models, in this case organizational models.&lt;br /&gt;Concepts at this level are positions, roles, teams, and relationships between&lt;br /&gt;positions like supervisor. In organization modelling, there are a few formal&lt;br /&gt;rules on how to express organizational structures, as well as notations to express&lt;br /&gt;them.&lt;br /&gt;The general principle behind organization modelling is the resource, an entity&lt;br /&gt;that can perform work for the enterprise. The general concept of resource&lt;br /&gt;subsumes humans and other resources, such as trucks, warehouses, and other&lt;br /&gt;equipment a company requires to fulfil its goals.&lt;br /&gt;Persons are part of an organization, typically a business organization. The&lt;br /&gt;persons in these organizations work to fulfil the business goals of the enterprise.&lt;br /&gt;Each person typically occupies some position, and the duties and&lt;br /&gt;privileges of that person come with the position, not with the person. This allows filling positions according to an overall organizational plan. In addition,&lt;br /&gt;the company can cope better with changes in personnel. Organizational units&lt;br /&gt;are permanent groupings of persons based on their positions. Organizational&lt;br /&gt;teams or project teams are specific organizational units without a permanent&lt;br /&gt;nature.&lt;br /&gt;                            In order for us to not overload that figure, it contains positions only at the top&lt;br /&gt;levels, the chief executive level and the department level. Departments are&lt;br /&gt;organizational units with a set of member positions.&lt;br /&gt;The link between the organizational structure of an enterprise and the&lt;br /&gt;business processes is accomplished by work items. Work items represent activity&lt;br /&gt;instances to be performed, and work items are associated with knowledge&lt;br /&gt;workers to facilitate their selection by knowledge workers. In particular, when the business process management system determines that a certain activity&lt;br /&gt;instance enters the ready state, a work item is offered to a set of knowledge&lt;br /&gt;workers.&lt;br /&gt;Each work item is associated with exactly one activity instance. The selection&lt;br /&gt;of the process participants is subject to resource allocation mechanisms,&lt;br /&gt;which will be discussed below. When a knowledge worker completes the activity&lt;br /&gt;instance, the business process management system is informed, so that&lt;br /&gt;the process instance can be continued accordingly.&lt;br /&gt;In order to discuss the resource allocation principles, a state transition&lt;br /&gt;diagram of work items is considered, and a relationship of activity instances&lt;br /&gt;to the respective state transitions is provided.&lt;br /&gt;                The assignment of process participants to activities in a business process&lt;br /&gt;can be classified by resource patterns. A rich set of resource patterns have&lt;br /&gt;recently been introduced; in this book, the most relevant resource patterns&lt;br /&gt;are discussed.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-4455951100662617297?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/4455951100662617297/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/08/business-process-management-part-2_05.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/4455951100662617297'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/4455951100662617297'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/08/business-process-management-part-2_05.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter III Business Process Modelling Foundation ] ) Sec  J -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-5254103525292360360</id><published>2009-08-02T22:01:00.001+05:30</published><updated>2009-08-02T22:03:36.042+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter III Business Process Modelling Foundation ] ) Sec  I -- By Mathias Weske</title><content type='html'>&lt;span style="font-weight: bold;"&gt;                    Workflow Data Patterns&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;                                                            To organize data-related issues in business process management, workflow&lt;br /&gt;data patterns have been introduced. Workflow data patterns formulate characteristics&lt;br /&gt;on how to handle data in business processes. They are organized&lt;br /&gt;according to the dimensions data visibility, data interaction, data transfer,&lt;br /&gt;and data-based routing.&lt;br /&gt;Data visibility is very similar to the concept of scope in programming&lt;br /&gt;languages because it characterizes the area in which a certain data object is&lt;br /&gt;available for access. The most important workflow data patterns regarding&lt;br /&gt;data visibility are as follows.&lt;br /&gt;• Task data: The data object is local to a particular activity; it is not visible&lt;br /&gt;to other activities of the same process or other processes.&lt;br /&gt;• Block data: The data object is visible to all activities of a given subprocess.&lt;br /&gt;• Workflow data: The data object is visible to all activities of a given business&lt;br /&gt;process, but access is restricted by the business process management&lt;br /&gt;system, as defined in the business process model.&lt;br /&gt;• Environment data: The data object is part of the business process execution&lt;br /&gt;environment; it can be accessed by process activities during process&lt;br /&gt;enactment.&lt;br /&gt;Data interaction patterns describe how data objects can be passed between&lt;br /&gt;activities and processes. Data objects can be communicated between activities&lt;br /&gt;of the same business process, between activities and subprocesses of the same&lt;br /&gt;business process, and also between activities of different business processes.&lt;br /&gt;Data can also be communicated between the business process and the business&lt;br /&gt;process management system.&lt;br /&gt;Data transfer is the next dimension to consider. Data transfer can be&lt;br /&gt;performed by passing values of data objects and by passing references to data&lt;br /&gt;objects. These data transfer patterns are very similar to call-by-value and callby-&lt;br /&gt;reference, concepts used in programming languages to invoke procedures&lt;br /&gt;and functions.&lt;br /&gt;In data-based routing, data can have different implications on process&lt;br /&gt;enactment. In the simplest case, the presence of a data object can enable&lt;br /&gt;a process activity. Data objects can also be used to evaluate conditions in&lt;br /&gt;business process models, for instance, to decide on the particular branch to&lt;br /&gt;take in a split node.&lt;br /&gt;Workflow data patterns are an appropriate means to organize aspects of&lt;br /&gt;business processes related to the handling of data.&lt;br /&gt;                   &lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-5254103525292360360?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/5254103525292360360/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/08/business-process-management-part-2_02.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/5254103525292360360'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/5254103525292360360'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/08/business-process-management-part-2_02.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter III Business Process Modelling Foundation ] ) Sec  I -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-6574788213636839374</id><published>2009-08-02T21:57:00.002+05:30</published><updated>2009-08-02T22:00:53.333+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter III Business Process Modelling Foundation ] ) Sec  H -- By Mathias Weske</title><content type='html'>&lt;span style="font-weight: bold;"&gt;                    Modelling Process Data&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;                                                        &lt;/span&gt;&lt;span&gt;Business processes operate on data. Explicitly representing data, data types, &lt;/span&gt;&lt;span&gt;and data dependencies between activities of a business process puts a business&lt;/span&gt;&lt;br /&gt;&lt;span&gt;process management system in a position to control the transfer of relevant&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span&gt;data as generated and processed during processes enactment.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;                                Modelling Data&lt;br /&gt;&lt;br /&gt;                                                        &lt;/span&gt;Data modelling is at the core of database design. The Entity Relationship&lt;br /&gt;approach is used to classify and organize data in a given application domain.&lt;br /&gt;                                    The Entity Relationship modelling approach belongs to the metamodel level. it provides the required concepts to express&lt;br /&gt;data models. Data modelling will be illustrated by a sample application&lt;br /&gt;domain, namely by order management.&lt;br /&gt;In a modelling effort, the most important entities are identified and classified.&lt;br /&gt;Entities are identifiable things or concepts in the real world that are&lt;br /&gt;important to the modelling goal. In the sample scenario, orders, customers,&lt;br /&gt;and products are among the entities of the real world that need to be represented&lt;br /&gt;in the data model.&lt;br /&gt;Entities are classified as entity types if they have the same or similar&lt;br /&gt;properties. Therefore, orders are classified by an entity type called Orders.&lt;br /&gt;Since each order has an order number, a date, a quantity, and an amount, all&lt;br /&gt;order entities can be represented by this entity type. Properties of entities are&lt;br /&gt;represented by attributes of the respective entity types.&lt;br /&gt;The entities classified in an entity type need to have similar, but not identical&lt;br /&gt;structure, because attributes can be optional. If the application domain&lt;br /&gt;allows, for instance, for an order to have or not to have a discount, then the&lt;br /&gt;amount attribute is optional. This means that two orders are classified in&lt;br /&gt;entity type order even if one has a discount attribute while another does not.&lt;br /&gt;Entity types in the Entity Relationship metamodel need to be represented&lt;br /&gt;in a notation by a particular symbol. While there are variants of Entity Relationship&lt;br /&gt;notations, entity types are often represented by rectangles, marked&lt;br /&gt;with the name of the entity type. Other entity types in the sample application domain&lt;br /&gt;are customers and products. The attributes are represented as ellipsoids&lt;br /&gt;attached to entity types.&lt;br /&gt;Entities are associated with each other by relationships. For instance, a&lt;br /&gt;customer “Miller” requests an order with the order number 42. These types of&lt;br /&gt;links between entities are called relationships. Just as there are many customer entities and many order entities, there are many customer-order relationships.&lt;br /&gt;To represent these relationships, a relationship type requests classifies them&lt;br /&gt;all. In Entity Relationship diagrams, relationship types are typically represented&lt;br /&gt;by diamond symbols, connected to the respective entity types by edges.&lt;br /&gt;The complex nature of data in a given application domain can be well&lt;br /&gt;represented by Entity Relationship Diagrams. These diagrams can be used to&lt;br /&gt;create relational database tables, using transformation rules. Once the respective&lt;br /&gt;database tables have been created in a relational database, application&lt;br /&gt;data can be stored persistently. The data can be retrieved efficiently using&lt;br /&gt;declarative query languages, for instance Structured Query Language.&lt;br /&gt;While this discussion focuses on data modelling in the context of database&lt;br /&gt;applications, the same data modelling method can be used to represent data&lt;br /&gt;structures in business process management. Based on these data structures,&lt;br /&gt;data dependencies between activities in business processes can be captured&lt;br /&gt;precisely.&lt;br /&gt;Data modelling is also the basis for the integration of heterogeneous data.&lt;br /&gt;In the enterprise application integration scenarios discussed above, one of the&lt;br /&gt;main issues was the integration of data from heterogeneous data sources. Once&lt;br /&gt;data models are available for these data sources, the data integration problem&lt;br /&gt;can be addressed. There are advanced data integration techniques that also&lt;br /&gt;take into account data at the instance level, but explicit data models in general&lt;br /&gt;are essential to addressing data integration.&lt;br /&gt;Data integration can then be realized by a mapping between the data&lt;br /&gt;types. For instance, there might be applications on top of database systems A&lt;br /&gt;and B, such that these systems have tables CustomerA and CustomerB, respectively,&lt;br /&gt;that differ. For instance, while CName is the attribute of the CustomerA&lt;br /&gt;table, referring to the name of the customer, CustN might be the respective&lt;br /&gt;attribute in the CustomerB table. In order to integrate both tables, the attributes&lt;br /&gt;need to be mapped. In this case, CustomerA.CName is mapped to&lt;br /&gt;CustomerB.CustN.&lt;br /&gt;                            In data integration projects, complex integration problems are likely to&lt;br /&gt;emerge. There might be attributes that cannot be mapped, but there might&lt;br /&gt;also be attributes that need to be mapped to different tables, often by our&lt;br /&gt;using transformation rules. The hardest set of problems, however, stem from&lt;br /&gt;semantic heterogeneity. There are assumptions on the data that are not explicit&lt;br /&gt;in the data model or in the actual data stored in the database. These&lt;br /&gt;semantic differences can only be taken into account when investigating the&lt;br /&gt;meaning of the attributes in detail, often during interviews with the persons&lt;br /&gt;involved in the data modelling and database design of the systems to integrate.&lt;br /&gt;Semantic specification of data can be used to solve these data integration&lt;br /&gt;problems. However, complete semantic specification of data requires considerable&lt;br /&gt;resources, and the completeness of the semantic specification cannot be&lt;br /&gt;proven automatically. Therefore, further research is required to evaluate the&lt;br /&gt;possibilities of semantics-based data integration.&lt;br /&gt;In graph-based approaches to business process modelling, data dependencies&lt;br /&gt;are represented by data flow between activities. Each process activity is&lt;br /&gt;assigned a set of input and a set of output parameters. Upon its start, an&lt;br /&gt;activity reads its input parameters, and upon its termination it writes data it&lt;br /&gt;generated to its output parameters. These parameters can be used by followup&lt;br /&gt;activities in the business process.&lt;br /&gt;The transfer of data between activities is known as data flow. By providing&lt;br /&gt;graphical constructs to represent data flow between activities, the data&lt;br /&gt;perspective can be visualized and used to validate and optimize business processes.&lt;br /&gt;&lt;br /&gt;       &lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-6574788213636839374?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/6574788213636839374/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/08/business-process-management-part-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/6574788213636839374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/6574788213636839374'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/08/business-process-management-part-2.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter III Business Process Modelling Foundation ] ) Sec  H -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-8414201780616548173</id><published>2009-07-31T21:17:00.003+05:30</published><updated>2009-08-02T21:50:45.951+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter III Business Process Modelling Foundation ] ) Sec  G -- By Mathias Weske</title><content type='html'>&lt;html&gt;&lt;br /&gt;&lt;head&gt;&lt;br /&gt;&lt;meta name="verify-v1" content="UB25GDtdPyt8SKTbGf821yYXQ0OCJeni9gg5akUA4rE=" /&gt;&lt;br /&gt;&lt;/head&gt;&lt;br /&gt;&lt;body&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;    Process Interactions&lt;br /&gt;&lt;br /&gt;   &lt;/span&gt;            Business processes reside in single organizations. Since enterprises cooperate&lt;br /&gt;with each other, it is essential to consider the interaction between enterprises.&lt;br /&gt;Since all activities that an enterprise conducts are part of some business process, the interaction between enterprises can be described by the interaction&lt;br /&gt;of business processes of these enterprises. These interactions typically&lt;br /&gt;occur in a peer-to-peer style, following an agreed-upon process choreography.&lt;br /&gt;               These enterprises are reflected by the&lt;br /&gt;respective value chains. Within these value chains are the business functions&lt;br /&gt;realized by the business processes.&lt;br /&gt;The buyer value chain contains an order product business function, and&lt;br /&gt;the reseller value chain contains an order management business function. The&lt;br /&gt;business process models that realize this interaction are shown in Figure 3.21.&lt;br /&gt;The order product business function of the buyer starts by his placing&lt;br /&gt;an order. This placing of an order is realized by a message to the reseller;&lt;br /&gt;the task place order is responsible for sending this message. On the reseller&lt;br /&gt;side, this message is received by a receive order activity. The processes continue&lt;br /&gt;as specified. Since the message flow occurs between multiple activities&lt;br /&gt;in both directions, the value chain level representation of the interacting business&lt;br /&gt;processes—from buyer to reseller—is not complete in the sense that it&lt;br /&gt;does not hold all possible orders of interaction.&lt;br /&gt;                   Interacting process instances can be visualized adequately by event diagrams.&lt;br /&gt;The distributed nature of interacting processes is represented by introducing&lt;br /&gt;a horizontal line for each participant, on which the events of that&lt;br /&gt;participant appear in an ordered fashion. Participants communicate by send ing and receiving messages. In event diagrams, a one-way message interaction&lt;br /&gt;is represented by a send event, a corresponding receive event, and an arc connecting&lt;br /&gt;the two events. Participants can communicate only by sending and&lt;br /&gt;receiving messages.&lt;br /&gt;                   It abstracts&lt;br /&gt;from events regarding the initiating, enabling, starting, and terminating of&lt;br /&gt;activities. Instead, it concentrates on message events. Each message send event&lt;br /&gt;is marked by the activity instance during which the send occurs, and each&lt;br /&gt;receive event is marked by the activity instance during which the receive&lt;br /&gt;occurs. It is valid to assume that messages are sent on termination of the&lt;br /&gt;respective activity instance and an arrival of a message triggers the enable&lt;br /&gt;event for the receiving activity instance.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/body&gt;&lt;br /&gt;&lt;/html&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-8414201780616548173?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/8414201780616548173/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/07/business-process-management-part-2_4374.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/8414201780616548173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/8414201780616548173'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/07/business-process-management-part-2_4374.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter III Business Process Modelling Foundation ] ) Sec  G -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-8740871571909357961</id><published>2009-07-31T21:14:00.001+05:30</published><updated>2009-07-31T21:17:40.861+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter III Business Process Modelling Foundation ] ) Sec  F -- By Mathias Weske</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;            Process Instances&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                        &lt;/span&gt;Process models define restrictions on process instances that belong to the&lt;br /&gt;process model. Therefore, it is essential to properly define not only process&lt;br /&gt;models but also process instances. Modelling process instances is not an easy&lt;br /&gt;task, because of their intangible nature. A process instance is started, and it&lt;br /&gt;lives for a limited time period before it ceases to exist, similarly to activity&lt;br /&gt;instances.&lt;br /&gt;A process instance consists of a number of activity instances as well as&lt;br /&gt;event and gateway instances. The ordering relationships of activity instances&lt;br /&gt;in a process instance is defined by the relationships of the activity models in&lt;br /&gt;the process model.&lt;br /&gt;For instance, if a process model defines an execution ordering constraint&lt;br /&gt;between activity models A and B, then for each particular process instance,&lt;br /&gt;the activity instance that belongs to activity model A must have terminated&lt;br /&gt;before the activity instance for B can be started.&lt;br /&gt;An extension of the process metamodel discussed above is presented in Figure&lt;br /&gt;3.17. There are additional classes for process instances and node instances&lt;br /&gt;that are a generalization of activity instances, events, and gateway instances.&lt;br /&gt;There are one-to-many relationships between the respective concepts at the&lt;br /&gt;model level and at the instance level, as shown in the metamodel.&lt;br /&gt;Each process instance is associated with exactly one process model, and&lt;br /&gt;each process model is associated with an arbitrary number of process instances.&lt;br /&gt;Each process instance is composed of an arbitrary number of activity&lt;br /&gt;instances. Each activity instance is associated with exactly one activity model.&lt;br /&gt;The same holds for events and gateways.&lt;br /&gt;Note that each activity model is associated with an arbitrary number of&lt;br /&gt;activity instances. In the case of loops, an activity model is associated with&lt;br /&gt;multiple activity instances. An activity model that lies on a branch that is&lt;br /&gt;not taken during a particular process instance is not associated with any&lt;br /&gt;activity instance, explaining the cardinality of the association * that allows&lt;br /&gt;zero occurrences of the association, i.e., there might be activity models in a&lt;br /&gt;process model for which no activity instances are required for a particular&lt;br /&gt;process instance.&lt;br /&gt;After introducing events and event orderings to represent activity instances,&lt;br /&gt;this section looks at events and event orderings that occur during&lt;br /&gt;the enactment of process instances. Process models restrict for a process instance&lt;br /&gt;the events and event orderings of its activity instances by imposing&lt;br /&gt;execution constraints, such as sequential execution of activity instances. Execution&lt;br /&gt;constraints need to be satisfied by all process instances based on a&lt;br /&gt;particular process model.&lt;br /&gt;        The execution constraints can be precisely specified by events and their&lt;br /&gt;ordering. For example, the execution constraint A ! B dictates that the start&lt;br /&gt;event of the activity instance corresponding to B can only happen after the&lt;br /&gt;termination event of the activity instance corresponding to A. This is the&lt;br /&gt;basic idea of characterizing the execution semantics of process instances.&lt;br /&gt;To illustrate these concepts, a process instance based on the process model&lt;br /&gt;shown in Figure 3.15 on page 91 is investigated. Each process instance based&lt;br /&gt;on this process model starts with an analyze order activity. Depending on&lt;br /&gt;a decision, either the simple check activity or the advanced check activity&lt;br /&gt;is enacted. This process model makes room for different process instances.&lt;br /&gt;Depending on the decision made at the gateway node, either the simple check&lt;br /&gt;activity instance or the advanced check activity is executed.&lt;br /&gt;Event diagrams are also useful for capturing process instances. The event&lt;br /&gt;diagram of a particular process instance is shown in Figure 3.18, where a&lt;br /&gt;process instance is shown during which the simple check activity instance is&lt;br /&gt;selected.&lt;br /&gt;When the process starts, activity instances for all three activity models&lt;br /&gt;are generated. In event diagrams, the subscripts of the init, enable, terminate, and skip events can be omitted, if the activity instance to which the event&lt;br /&gt;belongs is clear.&lt;br /&gt;The start event is represented by the event node N1 in the process model.&lt;br /&gt;The occurrence of this event is represented in the event diagram by event n1.&lt;br /&gt;Once this event has occurred, the AnalyzeOrder activity instance can start,&lt;br /&gt;i.e., it can enter the ready state, represented by an enable event.&lt;br /&gt;When the AnalyzeOrder activity instance terminates, (1) the AdvCheck&lt;br /&gt;activity instance is no longer required, so that a skip event occurs for this&lt;br /&gt;activity instance, and (2) the SimpleCheck activity instance is enabled, so&lt;br /&gt;that it can start. When this activity completes, the final event n7 of the&lt;br /&gt;process instance occurs.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-8740871571909357961?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/8740871571909357961/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/07/business-process-management-part-2_31.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/8740871571909357961'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/8740871571909357961'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/07/business-process-management-part-2_31.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter III Business Process Modelling Foundation ] ) Sec  F -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-3767512748296535038</id><published>2009-07-27T17:54:00.002+05:30</published><updated>2009-07-27T17:57:19.262+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter III Business Process Modelling Foundation ] ) Sec  E -- By Mathias Weske</title><content type='html'>&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;b&gt;Process Models and Process Instances&lt;/b&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;Business processes consist of a set of related activities whose coordinated execution contributes to the realization of a business function in a technical and organizational environment. Business processes are represented by business process models. Since this section concentrates on the execution ordering of activities, disregarding the technical and organizational environment of business processes, the term process model is used.&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;Object Facility for the process subdomain. In the M0 layer there are process instances that reflect the actual occurrences of a business process. Each process instance is an instance of a process model in the model layer M1. Process models are described by process metamodels, building the M2 layer. In order to express process models, there needs to be a notation in place that provides notational elements for the conceptual elements of process metamodels. For instance, if the process metamodel has a concept called activity model, then there needs to be a notational element for expressing activity models.&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;A process notation is associated with the process metamodel level and with the process model level; each process model is expressed in a process notation associated with the process metamodel that describes the process model.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;b&gt;Process Models&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;In this section, a simple process metamodel is introduced. Rather than being on completeness of modelling constructs, the focus of this section is on providing a well-described process metamodel that can be used to illustrate the core components of any process metamodel. Chapter 4 will look at process metamodels of higher complexity. Any modelling effort starts with identifying the main concepts that need to be represented. In metamodelling, the concepts to be represented are models. The following models are identified as concepts in the metamodel. • Process Model : A process model represents a blue print for a set of process instances with a similar structure. Process models have a two-level hierarchy, so that each process model consists of a set of activity models. Nesting of process models within process models is not represented, because it would introduce complexity that is not required. Each process model consists of nodes and directed edges. • Edge: Directed edges are used to express the relationships between nodes in a process model. • Node: A node in a process model can represent an activity model, an event model, or a gateway model. – Activity Models: Activity models describe units of work conducted in a business process. Each activity model can appear at most once in a process model. No activity model can appear in multiple process models. This stipulation can be relaxed by qualifying activity model identifiers with process model identifiers; to keep the process metamodel simple, this extension is not covered. Activity model nodes do not act as split or join nodes, i.e., each activity model has exactly one incoming edge and exactly one outgoing edge. – Event models: Event models capture the occurrence of states relevant for a business process. Process instances start and end with events, so process models start and end with event models. – Gateway Models: Gateways are used to express control flow constructs, including sequences, as well as split and join nodes.&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;Each process model contains elements at the model level, for instance, activity models. Process instances consist of activity instances. The model level and the instance level do not hold only for activities, but also for events and gateways. For instance, the start event model in a process model rules that each process instance begins with a start event instance. Since events are by definition singular entities, event instances are also called events.&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;Control flow in process models is represented by gateway models. As with activities and events, gateways are represented in process models by gateway models. This explicit representation allows our considering gateway instances for process instances. This is very useful, since each gateway model can be used multiple times in a given process instance, for instance, if it is part of a loop. The different occurrences of a given gateway can have different properties. For instance, an exclusive or gateway can in one instance select branch 1 while in the next iteration it can use branch 2. This situation can be represented properly if there are multiple gateway instances for a given gateway model in the context of a given process model. In the example discussed, the first gateway instance would select branch 1, while the second gateway instance would select branch 2.&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;The next step in modelling concerns the identification and formalization of the relationships between these concepts. Figure 3.14 provides a representation of the concepts and their relationships by a structure diagram, defining a process metamodel. Each process model consists of nodes and edges. The nodes represent activity models, event models and gateway models, while the edges represent control flow between nodes. Each edge is associated with exactly two nodes, relating them in a particular order. Each node is associated with at least one edge. The different types of nodes are represented by the generalization relation. Activity models reflect the work units to be performed, event models represent the occurrence of states relevant for the business process, and gateway models represent execution constraints&lt;/div&gt;&lt;div&gt;of activities, such as split and join nodes.&lt;/div&gt;&lt;div&gt;While the association between nodes and edges are defined at the node&lt;/div&gt;&lt;div&gt;level, the cardinality of the association between special types of nodes (activity&lt;/div&gt;&lt;div&gt;models, event models, and gateway models) differs. Each activity model has&lt;/div&gt;&lt;div&gt;exactly one incoming and one outgoing edge.&lt;/div&gt;&lt;div&gt;Each process starts with exactly one event, the initial event, and ends&lt;/div&gt;&lt;div&gt;with exactly one event, the final event. Therefore, certain events can have&lt;/div&gt;&lt;div&gt;no incoming edges (initial event) or no outgoing edges (final event). Gateway&lt;/div&gt;&lt;div&gt;models represent control flow. Therefore, they can act as either split nodes&lt;/div&gt;&lt;div&gt;or join nodes, but not both. Hence, each gateway model can have multiple&lt;/div&gt;&lt;div&gt;outgoing edges (split gateway node) or multiple incoming edges (join gateway&lt;/div&gt;&lt;div&gt;node).&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-3767512748296535038?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/3767512748296535038/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/07/business-process-management-part-2_4970.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/3767512748296535038'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/3767512748296535038'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/07/business-process-management-part-2_4970.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter III Business Process Modelling Foundation ] ) Sec  E -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-2089469475452213044</id><published>2009-07-27T17:48:00.004+05:30</published><updated>2009-07-27T17:54:42.414+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter III Business Process Modelling Foundation ] ) Sec  D -- By Mathias Weske</title><content type='html'>&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Activity Models and Activity Instances&lt;/span&gt;&lt;/b&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" ;font-size:48px;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Business functions provide a high-level, coarse-grained representation of the work conducted by enterprises. Activities can be found in the leaves of the functional decomposition. This section investigates how activities can be described. In addition, the actual work conducted during business processes has to be characterized, i.e., activity instances have to be characterized. Note that activity models represent the M1 layer of the Meta Object Facility, while the activity instance layer corresponds to M0.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;An activity model describes a set of similar activity instances, analogously to a process model describing a set of process instances with the same structure. While process models are typically expressed in graph-like notations (to&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;be investigated in detail in the next chapter), activity models can be expressed&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;in different forms, for instance, by plain text or by some formal specification&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;or references to software components that implement them.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Activity instances represent the actual work conducted during business&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;processes, the actual units of work. To make this discussion more concrete,&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;assume a process instance that represents the processing of an insurance claim&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;by Clara Smith on the damage amount of US $2000, submitted November 11,&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;2006. Let EnterClaim(Clara Smith, 2000, 11-11-2006) represent the activity&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;instance responsible for entering the claim in the software systems of the insurance&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;company. When the company receives the claim, a process instance is&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;started. Within this process instance, the activity instance EnterClaim(Clara&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Smith, 2000, 11-11-2006) is started. When the claim is entered in the system,&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;this activity instance terminates.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Each activity instance during its lifetime is in different states. These states&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;and the respective state transitions can be represented by a state transition&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;diagram. The states&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;that an activity instance adopts during its lifetime are described as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;when it is created it enters the init state. By the enabled state transition the&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;activity instance can enter the ready state.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;If a particular activity instance is not required, then the activity instance&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;can be skipped, represented by a skip state transition from the not started&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;state to the skipped state. From the ready state, the activity instance can&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;use the begin state transition to enter the running state. When the activity&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;instance has completed its work, the terminate state transition transfers it to  the terminated state. When an activity instance is in the terminated or the&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;skipped state, then it is closed.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;The state transition diagram representing the complex behaviour of activity instances is a refinement of the state transition diagram representing their simple behaviour. All state transitions possible in the simple diagram are also possible in the complex state transition diagram. The activity instance is initiated, and it enters the ready state before entering the running state. Finally, the activity instance terminates. However, the substates of the termination state are not represented. The simple diagram does not provide different states for successful and unsuccessful termination. When an activity instance can be started, it enters the ready state. If during the execution of a process instance certain activity instances are currently not available for execution, they can be disabled. Activity instances that are initialized, disabled, or enabled are in the not started state. Once an activity instance is ready, it can be started, entering the running state. Running activities can be temporarily suspended, to be resumed later. An activity instance can terminate either successfully or in failure. Terminated activity instances can be undone, using compensation or transactional recovery techniques. Based on the description of the behaviour of an activity instance, the question now arises on how to capture the actual behaviour of a concrete activity instance, i.e., on how to specify the trace of states and state transitions that the activity instance went through. In this section, events and event orderings are introduced to properly represent the essence of activity instances. The basic idea of using events for representing activity instances is quite simple: each state transition of an activity instance is represented by an event.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;These events have a temporal ordering. Based on the state transition diagram for activity instances, each activity instance can be represented by a totally ordered set of events.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;The causal ordering of events indicated by this definition can be graphically represented by event diagrams. In event diagrams, time proceeds from left to right, and events are shown as bullets. The causal relationships of events are represented by directed arcs. Due to the nature of event diagrams, they form directed acyclic graphs, where the nodes are events and the edges reflect causal ordering between events.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;In the event diagram shown in part (a) of that figure, an activity instance that is properly executed is shown, while (b) shows the events of a skipped activity instance. To illustrate the relationship between state transition diagrams and event diagrams, each state transition ito the state transition diagram is associated with an event in the respective event diagram. The activity instance starts with a state transition to the init state. This state transition is represented by an initialize event in the event diagram. An enable state transition brings the activity instance in the ready state; this state transition is represented by an enable event. An activity instance in the ready state can be started, represented by the begin state transition. Finally, the terminate state transition completes the activity instance. Events are points in time, i.e., events do not take time. The time interval in which an activity instance is in one state is delimited by two events, the event representing the state transition to enter the state and the event representing the state transition to leave the state. For example, the time interval in which&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;the activity instance is in the running state is delimited by the begin and&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;terminate events.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:180%;"&gt;&lt;span class="Apple-style-span"  style=" ;font-size:18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-2089469475452213044?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/2089469475452213044/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/07/business-process-management-part-2_27.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/2089469475452213044'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/2089469475452213044'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/07/business-process-management-part-2_27.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter III Business Process Modelling Foundation ] ) Sec  D -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-4527191691187783471</id><published>2009-07-24T20:16:00.002+05:30</published><updated>2009-07-24T20:19:24.899+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter III Business Process Modelling Foundation ] ) Sec  C -- By Mathias Weske</title><content type='html'>&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;b&gt;Vertical Abstraction&lt;/b&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Vertical abstraction in business process modelling is depicted in Figure 3.3, where distinct modelling subdomains are identified. As depicted, process modelling is at the centre of the modelling effort, because it also integrates the modelling efforts that are conducted in the other subdomains.&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;Function modelling, data modelling, organization modelling, and modelling of the operational information technology landscape are required to provide a complete picture of a business process. While these subdomains are the most important ones, additional subdomains can be defined if they are relevant. The functional model investigates the units of work that are being enacted in the context of business processes. The specification of the work can be done at different aggregation levels, from coarse-grained business functions to finegranular functions at the operational level that are realized by knowledge workers and information systems.&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;The specification of these functions can be informal, using English text or formal, using syntactic or semantic specifications of functions. While informal descriptions are mostly done at the coarse business level, more precise speci- fications are required in the software layer when it comes to implementation of certain functions using information systems. The investigation and proper representation of data in business processes is important, because decisions made during a business process depend on particular data values. Also data dependencies between activities need to be taken into account in process design, to avoid situations in which a function requires certain data not available at that time. The proper representation of the organizational structure of a company is an important requirement. Activities in the business process can then be associated with particular roles or departments in the organization. Many activities in a business process are performed by or with the assistance of information systems. The operational information technology landscape, i.e., the information systems, their relationships, and their programming interfaces, needs to be represented to use the functionality provided by the information systems. Process modelling defines the glue between the subdomains. A process model relates functions of a business process with execution constraints, so that, for instance, the ordering and conditional execution of functions can be specified. Data aspects are covered because particular process instances may depend on the structure and value of data involved in a particular business process. For example, in a credit approval business process, the type of approval depends on the credit amount requested. In addition, data dependencies between activities need to be taken into account in process model design.&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;b&gt;  &lt;/b&gt;&lt;/span&gt;&lt;b&gt;From Business Functions to Business Processes&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;Value chains provide a high-level organization of the functions that an enterprise performs. To provide a more detailed view, these top-level business functions are broken down to functions of smaller granularity and, ultimately, to activities of operational business processes. Functional decomposition is the technique of choice. A partial functional decomposition of a value chain is shown in Figure 3.4, where a value system represents the highest level of aggregation.&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;The ordering of the value chains in the value system is not represented in this structure diagram because it does not have any formal meaning. There are complex interactions between these companies, so that, obviously, not all activities in the supplier value chain occur before all activities conducted by enterprise E.&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;The functional decomposition of the value chain of enterprise E is exemplified for one particular path of functions in the marketing and sales top-level business function. Among many other functions, marketing and sales includes a business function, OrderManagement, that contains functions related to the management of incoming orders. Order management is decomposed further into business functions for getting and checking orders. To check orders, they need to be analyzed, and there are functions for simple and advanced checking of orders. There are different symbols for business functions and for functions of the finest granularity: business functions are represented by rectangles, while functions of the finest granularity are represented by rectangles with rounded corners. Functions at the leaf level of the functional decomposition are also called activities. Traditionally, functional decomposition was used to describe enterprises based on the functions they perform. As discussed in Chapter 1, concentrating on the functions an enterprise performs and neglecting their interplay falls short of properly representing how enterprises work. Therefore, functional decomposition is used as first step in the representation of enterprises based on business processes.&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;Operational business processes relate activities to each other by introducing execution constraints between them. In principle, relating functions to business processes can be applied for different granularities of business functions. In case high-level business functions are considered, a textual specification of the process is used, since concrete execution constraints between their constituents are not relevant in coarse-grained business functions. Consider, for instance, the business functions incoming logistics and operations. At this very coarse level of functionality, no ordering of these business functions is feasible: both business functions are performed concurrently, and only at a lower level of granularity does a concrete ordering make sense. For instance, when the operations business function orders additional material, then there are concrete activities that have a concrete ordering. Within operations, an internal order is created and sent to incoming logistics. On arrival of this order, raw material is provided to operations. In case no raw material is available at the manufacturing company, an external order is created and sent to a supplier of the raw material. Therefore, business processes relate fine-grained business functions, typically the leaves of the business function decomposition tree. &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;The sample business process starts with analyzing the order, and then conducting either a simple check or an advanced check depending on the decision made during process execution. This process has a dedicated start event and a dedicated end event. The business process is started once the start event occurs; when it completes, an end event occurs. Events play a crucial role when interrelationships between business processes are expressed. A particular business function of higher granularity (CheckOrder) consists of fine-grained activities, which are related by execution constraints. However, the check order business function (and the business process that realizes it) is related to other business functions and their respective business processes. An example showing this situation is displayed in Figure 3.6, where a part of the value chain is shown, in particular, the business functions Receive Request, Request Analysis, and Quota Management are shown. Since there is a strict ordering between these business functions, an execution ordering relation is represented.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-4527191691187783471?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/4527191691187783471/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/07/business-process-management-part-2_3110.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/4527191691187783471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/4527191691187783471'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/07/business-process-management-part-2_3110.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter III Business Process Modelling Foundation ] ) Sec  C -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-4099870567991292280</id><published>2009-07-24T20:14:00.002+05:30</published><updated>2009-07-24T20:16:14.181+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter III Business Process Modelling Foundation ] ) Sec  B -- By Mathias Weske</title><content type='html'>&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Abstraction Concepts&lt;/span&gt;&lt;/b&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:180%;"&gt;&lt;span class="Apple-style-span" style="font-size: 18px;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:180%;"&gt;&lt;span class="Apple-style-span" style="font-size: 18px;"&gt;&lt;b&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium; font-weight: normal;"&gt;To capture the complexity in business process management, different abstraction concepts are introduced. A traditional abstraction concept in computer science is the separation of modelling levels, from instance level to model level to metamodel level, denoted by horizontal abstraction. Horizontal abstraction concepts in business process management are discussed in Section 3.2.1. Even when using horizontal abstraction, separate subdomains need to be investigated. In order to follow the divide-and-conquer approach, these subdomains need to be represented separately. This abstraction mechanism is called vertical abstraction, and is discussed in Section 3.2.2. Aggregation can also be used to cope with complexity, motivating another type of abstraction. At a higher level of abstraction, multiple elements of a lower level of abstraction can be grouped and represented by a single artefact. For example, a set of functional activities of small granularity can contribute to a particular business function at a higher level of granularity: a coarse-grained business function “order management” might aggregate many smaller-grained activities, like receiving an incoming order, checking the inventory, and con- firming the order. This type of abstraction is called aggregation abstraction, because the coarse-grained business function aggregates activities of smaller granularity. Aggregation abstraction is different from horizontal abstraction, because all activities (the small-grained and the coarse-grained) are at one horizontal level of abstraction, e.g., the instance level. Aggregation abstraction is primarily used in the functional subdomain, where functions of smaller granularity are combined to create functions of larger granularity.&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;b&gt;  &lt;/b&gt;&lt;/span&gt;&lt;b&gt;Horizontal Abstraction&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;Along the lines of the levels of abstraction identified by the Object Management Group, the metamodel level, the model level, and the instance level play important roles in the design and analysis of complex systems in general and software systems in particular. It is instructive to explain these levels in a bottom-up order, starting with the instance level. The instance level reflects the concrete entities that are involved in business processes. Executed activities, concrete data values, and resources and persons are represented at the instance level. To organize the complexity of business process scenarios, a set of similar entities at the instance level are identified and classified at the model level.&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;For instance, a set of similar business process instances are classified and represented by a business process model. In object modelling, a set of similar entities is represented by a class, and in data modelling using the Entity Relationship approach, a set of similar entities is represented by an entity type, and similar relationships between entity types are represented by a relationship type.&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;Models are expressed in metamodels that are associated with notations, often of a graphical nature. For instance, the Petri net metamodel defines Petri nets to consist of places and transitions that form a directed bipartite graph. The traditional Petri net notation associates graphical symbols with metamodel elements. For instance, places are represented by circles, transitions by rectangles, and the graph structure by directed edges. In data modelling, the Entity Relationship metamodel defines entity types, relationship types, and connections between them. Typical graphical notations of the Entity Relationship metamodel are rectangles for entity types and diamonds for relationship types, connected by lines. While often there is one graphical notation for one approach, a one-to-one correspondence between notation and metamodel is not mandatory. In a Petri net, the concept of a transition could also be represented by another symbol in a graphical notation. There are different notations for representing Petrinets, which differ in the graphical representation of transitions. While some&lt;/div&gt;&lt;div&gt;use rectangles, others use solid bars.&lt;/div&gt;&lt;div&gt;Therefore, it is important to distinguish between the concepts of a modelling&lt;/div&gt;&lt;div&gt;approach and the graphical notation used to represent these concepts.&lt;/div&gt;&lt;div&gt;The complete set of concepts and associations between concepts is called metamodel.&lt;/div&gt;&lt;div&gt;A metamodel becomes useful if there is a notation for this metamodel&lt;/div&gt;&lt;div&gt;that allows expressing models in a convenient way that allows communication&lt;/div&gt;&lt;div&gt;between stakeholders in the modelled real-world situation.&lt;/div&gt;&lt;div&gt;The different levels of abstraction and their relationships are shown in&lt;/div&gt;&lt;div&gt;Figure 3.2. A notation associated with a metamodel allows expressing the&lt;/div&gt;&lt;div&gt;concepts of that particular metamodel. Each model is described by a metamodel,&lt;/div&gt;&lt;div&gt;and is expressed in a notation associated with the metamodel.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-4099870567991292280?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/4099870567991292280/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/07/business-process-management-part-2_24.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/4099870567991292280'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/4099870567991292280'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/07/business-process-management-part-2_24.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter III Business Process Modelling Foundation ] ) Sec  B -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-464881717489000112</id><published>2009-07-22T19:54:00.002+05:30</published><updated>2009-07-22T19:57:59.955+05:30</updated><title type='text'>Business Process Management (Part-2 Business Process Modelling[Chapter III Business Process Modelling Foundation ] ) Sec  A -- By Mathias Weske</title><content type='html'>&lt;strong&gt;&lt;span style="font-size:130%;"&gt;Conceptual Model and Terminology&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt; While the terms mentioned have been used in the previous chapters informally, the concepts behind these terms and their relationships will now be discussed in more detail, using conceptual&lt;br /&gt;models. These models are expressed in the Unified Modeling Language, an&lt;br /&gt;object-oriented modelling and design language.&lt;br /&gt;Business processes consist of activities whose coordinated execution realizes&lt;br /&gt;some business goal. These activities can be system activities, user interaction&lt;br /&gt;activities, or manual activities. Manual activities are not supported by&lt;br /&gt;information systems. An example of a manual activity is sending a parcel to&lt;br /&gt;a business partner.&lt;br /&gt;User interaction activities go a step further: these are activities that knowledge&lt;br /&gt;workers perform, using information systems. There is no physical activity&lt;br /&gt;involved. An example of a human interaction activity is entering data on an&lt;br /&gt;insurance claim in a call centre environment. Since humans use information&lt;br /&gt;systems to perform these activities, applications with appropriate user interfaces&lt;br /&gt;need to be in place to allow effective work. These applications need to&lt;br /&gt;be connected to back-end application systems that store the entered data and&lt;br /&gt;make it available for future use.&lt;br /&gt;Some activities that are conducted during the enactment of a business&lt;br /&gt;process are of manual nature, but state changes are entered in a business&lt;br /&gt;process management system by means of user interaction activities. For instance,&lt;br /&gt;the delivery of a parcel can be monitored by an information system.&lt;br /&gt;Typically, the actual delivery of a parcel is acknowledged by the recipient&lt;br /&gt;with her signature. The actual delivery is important information in logistics&lt;br /&gt;business processes that needs to be represented properly by information systems.&lt;br /&gt;There are several types of events during a logistics process. These events&lt;br /&gt;are often available to the user as tracking information. While the activities&lt;br /&gt;are of manual nature, an information system—the tracking system—receives&lt;br /&gt;information on the current status of the process.&lt;br /&gt;   &lt;br /&gt;System activities do not involve a human user; they are executed by information&lt;br /&gt;systems. An example of a system activity is retrieving stock information&lt;br /&gt;from a stock broker application or checking the balance of a bank&lt;br /&gt;account. It is assumed that the actual parameters required for the invocation&lt;br /&gt;are available. If a human user provides this information, then it is a user&lt;br /&gt;interaction activity. Both types of activities require access to the respective&lt;br /&gt;software systems.&lt;br /&gt;Certain parts of a business process can be enacted by workflow technology.&lt;br /&gt;A workflow management system can make sure that the activities of a business&lt;br /&gt;process are performed in the order specified, and that the information systems&lt;br /&gt;are invoked to realize the business functionality. This relationship between&lt;br /&gt;business processes and workflows is represented by an association between&lt;br /&gt;the respective classes. We argue that workflow is not a subclass of business&lt;br /&gt;process, since a workflow realizes a part of a business process, so a workflow&lt;br /&gt;is not in an “is-a” relationship with a business process, but is an association.&lt;br /&gt;With regard to the types of activities mentioned, system activities are associated&lt;br /&gt;with workflows, since system activities can participate in any kind&lt;br /&gt;of workflow, system workflow or human interaction workflow. User interaction&lt;br /&gt;activities and manual activities, however, can only participate in human&lt;br /&gt;interaction workflows.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-464881717489000112?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/464881717489000112/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/07/business-process-management-part-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/464881717489000112'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/464881717489000112'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/07/business-process-management-part-2.html' title='Business Process Management (Part-2 Business Process Modelling[Chapter III Business Process Modelling Foundation ] ) Sec  A -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-5105573866056834704</id><published>2009-07-22T19:49:00.003+05:30</published><updated>2009-07-22T19:53:58.374+05:30</updated><title type='text'>Business Process Management (Part-1 Foundation[Chapter II Evolution of Enterprise Systems Architectures ] ) Sec  M -- By Mathias Weske</title><content type='html'>&lt;strong&gt;&lt;span style="font-size:130%;"&gt;Enterprise Services and Service-Oriented Architectures&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The roles in service-oriented architectures as discussed above are not completely&lt;br /&gt;filled in typical enterprise scenarios. The specification of services is&lt;br /&gt;typically done by the provider of the service, i.e., by the system architects&lt;br /&gt;responsible for service-enabling the particular application.&lt;br /&gt;The service registry is installed locally, and its access by other companies&lt;br /&gt;is usually disallowed. The most striking difference to service-oriented architectures&lt;br /&gt;as defined by Burbeck is the absence of dynamic matchmaking. As&lt;br /&gt;enterprise services are developed, they are specified and registered in a local&lt;br /&gt;registry. When a new composite application is developed, the designers consult&lt;br /&gt;the registry to find suitable services that can be used to perform certain&lt;br /&gt;tasks in the composite application. This search is a manual process, which in&lt;br /&gt;some cases is assisted by a taxonomy and a textual description of the services.&lt;br /&gt;There are a number of hard problems in this context that are unsolved&lt;br /&gt;today. One of the main problems regards the scoping of services: the functionality&lt;br /&gt;provided by one or more application systems that is suitable for an&lt;br /&gt;enterprise service. If the granularity is small, then the level of reuse is small&lt;br /&gt;too, because many enterprise services need to be composed to achieve the&lt;br /&gt;desired functionality.&lt;br /&gt;If on the other hand the granularity is large, then there might be only&lt;br /&gt;few scenarios where the enterprise service fits well and where using it makes&lt;br /&gt;sense. Tailoring of services of large granularity is also not a valid option, since&lt;br /&gt;extensive tailoring hampers reuse. As in many related cases, there is no general&lt;br /&gt;answer to this question. The choice of a suitable service granularity depends on&lt;br /&gt;the particular usage scenario and on the properties of the application systems&lt;br /&gt;to integrate and the composite applications to develop.&lt;br /&gt;In enterprise services architectures, each enterprise service is typically associated&lt;br /&gt;with exactly one application system. This is a limitation, since building&lt;br /&gt;an enterprise service on top of a number of related back-end application&lt;br /&gt;systems involves system integration, so that reuse is simplified.&lt;br /&gt;To illustrate this concept, an example is introduced. Consider a purchase&lt;br /&gt;order enterprise service in which an incoming purchase order needs to be stored&lt;br /&gt;in multiple back-end application systems. In this case, the enterprise service&lt;br /&gt;can be used with ease, since it is invoked once by a composite application and&lt;br /&gt;it automatically provides the integration of the back-end system by storing&lt;br /&gt;the purchase order—with the relevant data mappings to cater to data type&lt;br /&gt;heterogeneity—in the respective back-end application systems.&lt;br /&gt;An integration of legacy systems can be realized within an enterprise service.&lt;br /&gt;This allows using enterprise services at a higher level of granularity, so&lt;br /&gt;that integration work can actually be reused in multiple composite applications.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Enterprise Services Bus&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In a recent development, enterprise application integration middleware provides&lt;br /&gt;standardized software interfaces to the enterprise applications that it&lt;br /&gt;integrates. As the term enterprise service bus indicates, each of these enterprise applications is then attached to this bus, which acts as a centralized component to integrate these applications&lt;br /&gt;An enterprise service bus hides the heterogeneity of the enterprise applications&lt;br /&gt;by introducing service interfaces. To realize these service interfaces,&lt;br /&gt;traditional enterprise application integration adapter technology is typically&lt;br /&gt;used that is also in place in traditional enterprise application integration middleware,&lt;br /&gt;as discussed in Section 2.2.2.&lt;br /&gt;By introducing standardized interfaces to the outside world using services,&lt;br /&gt;however, an enterprise service bus goes one step beyond traditional enterprise&lt;br /&gt;application integration middleware. It must not be overlooked, however, that&lt;br /&gt;the term enterprise service bus is also used by software vendors to rebrand&lt;br /&gt;existing technologies for marketing reasons.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Service Composition&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;To realize composite applications in service-oriented enterprise computing environments,&lt;br /&gt;service composition techniques are appropriate. The general principle&lt;br /&gt;of service composition is depicted in Figure 2.25, where application systems&lt;br /&gt;in the lower part of the figure represent services that can be used to&lt;br /&gt;realize composite applications.&lt;br /&gt;The composite application shown uses functionality provided by a CRM&lt;br /&gt;system, an SCM system, and an ERP system. The application logic realized&lt;br /&gt;in the composite application defines a process consisting of three activities.&lt;br /&gt;The ordering of these activities can be specified in a process model.&lt;br /&gt;Since the business process is realized by a composition of services, processes&lt;br /&gt;of this kind are also called service compositions.&lt;br /&gt;Enterprise application integration middleware in general and enterprise&lt;br /&gt;service bus middleware in particular provide a good technical basis to realize&lt;br /&gt;service compositions, because they provide standardized services interfaces&lt;br /&gt;that can be used in service compositions. Typical enterprise application integration&lt;br /&gt;middleware features a system workflow component that uses either a&lt;br /&gt;proprietary format for system workflows or, if it is based on services, the Business&lt;br /&gt;Process Execution Language for Web services.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-5105573866056834704?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/5105573866056834704/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/07/business-process-management-part-1_22.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/5105573866056834704'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/5105573866056834704'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/07/business-process-management-part-1_22.html' title='Business Process Management (Part-1 Foundation[Chapter II Evolution of Enterprise Systems Architectures ] ) Sec  M -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-5842348324818650931</id><published>2009-07-20T20:46:00.001+05:30</published><updated>2009-07-20T20:49:16.110+05:30</updated><title type='text'>Business Process Management (Part-1 Foundation[Chapter II Evolution of Enterprise Systems Architectures ] ) Sec  L -- By Mathias Weske</title><content type='html'>&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;b&gt;  &lt;/b&gt;&lt;/span&gt;&lt;b&gt;Enterprise Services&lt;/b&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;In enterprise computing environments, the functionality of application systems can be described and provided by services. Figure 2.22 visualizes a serviceenabled application system. The functionality of the application system is provided through services, depicted by semicircles on top of the application system. Services need to be specified in a way that the specification of services is decoupled from their implementation. Detailed specification of services facilitates&lt;/div&gt;&lt;div&gt;the flexible configuration of services by composing services to achieve&lt;/div&gt;&lt;div&gt;complex functionality.&lt;/div&gt;&lt;div&gt;In an existing application built with several services provided by different&lt;/div&gt;&lt;div&gt;business partners, the partners can modify the realization of their services, as&lt;/div&gt;&lt;div&gt;long as the service specification does not change. Based on the service specification,&lt;/div&gt;&lt;div&gt;an improved service implementation can be integrated seamlessly in&lt;/div&gt;&lt;div&gt;a service-based application. New potential business partners can use publicly&lt;/div&gt;&lt;div&gt;available service specifications to offer their own implementations of the services.&lt;/div&gt;&lt;div&gt;As a result, individual parts of a complex service-based application can&lt;/div&gt;&lt;div&gt;be exchanged without redesigning the application.&lt;/div&gt;&lt;div&gt;Service orientation is also one of the main influencing factors for enterprise&lt;/div&gt;&lt;div&gt;application integration. Enterprise services architecture characterizes the development&lt;/div&gt;&lt;div&gt;of added-value applications that take advantage of existing functionality&lt;/div&gt;&lt;div&gt;provided through standardized interfaces.&lt;/div&gt;&lt;div&gt;Enterprise services architecture is based on the understanding that complex&lt;/div&gt;&lt;div&gt;applications will be increasingly built on top of existing functionality.&lt;/div&gt;&lt;div&gt;This functionality is provided by legacy systems, which are an important asset&lt;/div&gt;&lt;div&gt;of companies. Making this functionality reusable is a challenging task. The&lt;/div&gt;&lt;div&gt;idea is to encapsulate the functionality of existing software systems in a service,&lt;/div&gt;&lt;div&gt;realizing enterprise services. Enterprise services can be used to realize&lt;/div&gt;&lt;div&gt;enterprise application integration scenarios.&lt;/div&gt;&lt;div&gt;As pointed out by Woods, there are a number of business drivers that&lt;/div&gt;&lt;div&gt;foster the development of enterprise services. The main driver is change: the&lt;/div&gt;&lt;div&gt;ability to change the enterprise application system infrastructure is a competitive&lt;/div&gt;&lt;div&gt;advantage for an enterprise. There are a number of current trends that&lt;/div&gt;&lt;div&gt;motivate the development of enterprise services:&lt;/div&gt;&lt;div&gt;• Rise in the power of the customer: Value-added services are essential, because&lt;/div&gt;&lt;div&gt;customers can change suppliers easily, without much effort. Positive&lt;/div&gt;&lt;div&gt;user experience is important, as the success of online auctioning sites and&lt;/div&gt;&lt;div&gt;online shops with community building indicates.&lt;/div&gt;&lt;div&gt;&lt;div&gt;• Systems transparency: The Internet has brought customers and suppliers&lt;/div&gt;&lt;div&gt;inside a company’s IT infrastructure. Weak or missing integration of enterprise&lt;/div&gt;&lt;div&gt;application systems will be immediately exposed to the customer.&lt;/div&gt;&lt;div&gt;• Rise in computer mediated interaction with customers and suppliers: Companies&lt;/div&gt;&lt;div&gt;differentiate themselves on their service to their customers. Dan&lt;/div&gt;&lt;div&gt;Woods indicates that “Outsiders can now peer into the glass house of the&lt;/div&gt;&lt;div&gt;data centre and see if it is a mess.” An example of a messy situation is&lt;/div&gt;&lt;div&gt;one where a customer cannot be serviced well, because the client interface&lt;/div&gt;&lt;div&gt;provides information only about one aspect of the customer, and the&lt;/div&gt;&lt;div&gt;other aspects are hidden in application systems that are not accessible.&lt;/div&gt;&lt;div&gt;Due to lack of integration, this valuable information is not available, so&lt;/div&gt;&lt;div&gt;the customer does not feel well cared for.&lt;/div&gt;&lt;div&gt;• Products as services: Corporations are increasingly perceived by the set&lt;/div&gt;&lt;div&gt;of services they provide. These services exposed to the market can be&lt;/div&gt;&lt;div&gt;realized by enterprise services, which provided by the back end application&lt;/div&gt;&lt;div&gt;systems of the enterprise. But also services provided by third parties can&lt;/div&gt;&lt;div&gt;be integrated, so that better applications and end user services can be&lt;/div&gt;&lt;div&gt;provided to the customer.&lt;/div&gt;&lt;div&gt;• Multi-tier applications: There is also a trend towards multi-tier applications,&lt;/div&gt;&lt;div&gt;where each tier is provided by a different enterprise. This means that&lt;/div&gt;&lt;div&gt;the tier 1 company provides value-added services directly to a customer,&lt;/div&gt;&lt;div&gt;using the tier 2 services from a set of business partner companies. These&lt;/div&gt;&lt;div&gt;companies might use tier 3 services provided by other companies. By flexible&lt;/div&gt;&lt;div&gt;integration based on the service paradigm, many new applications and&lt;/div&gt;&lt;div&gt;services can be realized.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;b&gt;  &lt;/b&gt;&lt;/span&gt;&lt;b&gt;Composite Service-Based Applications&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;With this background in enterprise services architectures, an intra-company scenario is sketched, where new applications should be built on top of an existing customer relationship management system, a supply chain management system, and an enterprise resource planning system. These systems expose enterprise services via standardized interfaces. The applications built on top are known as composite applications, as shown in Figure 2.23. Composite applications invoke enterprise services that provide the functionality of the underlying back-end systems. User interaction is realized by dedicated graphical user interfaces that sit on top of composite applications. Technological advance has paved the way for enterprise services. The main cornerstones of these developments are the full suites of enterprise applications that are available off-the-shelf today. There are rich middleware and enterprise application integration products that can be used for technical integration, most of which host a dedicated workflow component for process enactment. To integrate multiple application systems, data transformation is essential. With the advent of the extensible markup language (XML), there is an industry standard for data and message format specifications. While this base technology is in place, the integration logic still needs to be defined and&lt;/div&gt;&lt;div&gt;implemented in each integration project.&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Processes are a key factor in realizing composite applications, because they provide a link from high-level business processes to the information technology layer. The structure of composite applications can in many cases be expressed as a business process. The activities of these processes are implemented by invoking enterprise services. Additional execution constraints like conditional execution can be represented by business process models; these can be realized by process orchestrations. Enterprise services can also be used to realize business interactions of multiple enterprises. In multi-tier scenarios for realizing innovative applications, interactions between the software systems of the business partners involved are required. These interactions are governed by a process choreography. Process choreographies have been defined informally above; they are subject of further investigation in Chapter 5. While the vision for enterprise services includes business-to-business processes, most enterprise services today are used in an intra-company setting, where the goal is to develop composite applications on top of well-specified business functionality represented by enterprise services.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-5842348324818650931?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/5842348324818650931/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/07/business-process-management-part-1_6923.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/5842348324818650931'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/5842348324818650931'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/07/business-process-management-part-1_6923.html' title='Business Process Management (Part-1 Foundation[Chapter II Evolution of Enterprise Systems Architectures ] ) Sec  L -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-7950216353985998552</id><published>2009-07-20T20:44:00.001+05:30</published><updated>2009-07-20T20:46:56.785+05:30</updated><title type='text'>Business Process Management (Part-1 Foundation[Chapter II Evolution of Enterprise Systems Architectures ] ) Sec  K -- By Mathias Weske</title><content type='html'>&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;  &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Enterprise Services Computing&lt;/span&gt;&lt;/b&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:180%;"&gt;&lt;span class="Apple-style-span"  style="font-size:18px;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:180%;"&gt;&lt;span class="Apple-style-span"  style="font-size:18px;"&gt;&lt;b&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Service-oriented computing is one of the major trends both in business engineering and software technology. The main idea of service orientation is to capture business relevant functionality as a service and provide sufficiently detailed information so that customers can use it. This definition of service orientation goes well beyond services that are realized by software systems. Consider a real-world service, for example, one to fix a car. The service the garage provides needs to be specified in a way that the customer can find and use. Once the car is fixed, the customer pays the bill and the service is completed. There are specific registries for finding real-world services, for instance, yellow page directories. This general idea of service orientation is applied to services provided by software systems. The requirements that apply to real-world services also need to be satisfied for services realized by software systems. Service-oriented computing uses well-specified service interfaces that rely on common interface definition languages to combine several services to new service-oriented applications. If service-oriented computing is used in largescale environments, an organizing principle is useful; this principle is introduced by service-oriented architectures, discussed next.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;b&gt;  &lt;/b&gt;&lt;/span&gt;&lt;b&gt;Service-Oriented Architectures&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Steve Burbeck, one of the early advocates of service-oriented architectures, defines service-orientation as follows. Services are loosely-coupled computing tasks communicating over the internet that play a growing part in business-to-business interactions. [...] We reserve the term service-oriented for architectures that focus on how services are described and organized to support their dynamic, automated discovery and use. We do not address systems based on manually hardwired interactions, such as those used in EDI systems. In this definition, services communicate over the Internet. This means that services are expected to be used in business-to-business scenarios, where the participants are connected by the Internet. Although not explicitly ruled out, services that are provided and used within a company do not fully qualify in Burbeck’s definition. The second interesting aspect of this definition is the high degree of flexibility provided by late, run time finding and binding of services. Matching a service request to a set of service specifications in a service registry is a complex task, especially if automated discovery and use are sought, as implied by the definition. Burbeck’s definition mirrors the long-term vision of service-oriented architectures. But this architectural style is not only useful in Internet settings, where the services are provided by different organizations in businessto- business scenarios, but also in intracompany settings. Therefore this book adopts the following definitions. Definition 2.7 A service captures functionality with a business value that is ready to be used. Services are made available by service providers. A service requires a service description that can be accessed and understood by potential service requestors. Software services are services that are realized by software systems. Service-oriented architectures are software architectures that provide an environment for describing and finding software services, and for binding to services. Descriptions of software services provide a level of detail that facilitates service requestors to bind to and invoke them.  Service-oriented architectures are especially important in environments where many services are available and where the set of available services changes over time. Burbeck investigates this aspect in more detail and states as follows. To work easily, flexibly, and well together, services must be based on shared organizing principles that constitute a service-oriented architecture.&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;In a service-oriented architecture, organizations may use services offered by other companies, and companies may provide services to a growing services market. The vision is for information systems to use business functionality of service providers, so that reuse of functionality is realized at a level of coarse granularity. New applications can be built with less effort and existing applications can be efficiently adapted to changing requirements, reducing maintenance and development cost.&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;To enable service requestors to find and use them, they are specified, and their descriptions are stored in a service registry. The interactions between the three primary roles in service-oriented architecture are publish, request/reply, and bind. The service provider publishes service specifications in a service registry, and the service requestor searches the service registry and finds suitable services. The service registry provides the service requestor with information that allows the service requestor to bind to the service and, eventually, invoke it.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-7950216353985998552?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/7950216353985998552/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/07/business-process-management-part-1_20.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/7950216353985998552'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/7950216353985998552'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/07/business-process-management-part-1_20.html' title='Business Process Management (Part-1 Foundation[Chapter II Evolution of Enterprise Systems Architectures ] ) Sec  K -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-5681350148598574666</id><published>2009-07-19T09:37:00.001+05:30</published><updated>2009-07-19T09:39:10.864+05:30</updated><title type='text'>Business Process Management (Part-1 Foundation[Chapter II Evolution of Enterprise Systems Architectures ] ) Sec  J -- By Mathias Weske</title><content type='html'>&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Challenges for Workflow Management&lt;/span&gt;&lt;/b&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:180%;"&gt;&lt;span class="Apple-style-span" style="font-size: 18px;"&gt;&lt;b&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:180%;"&gt;&lt;span class="Apple-style-span" style="font-size: 18px;"&gt;&lt;b&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;As discussed in the previous sections, workflow management has considerable benefits due to explicit process representation and process enactment control. However, workflow management has also spawned criticism that has led to a broader perspective in business process modelling, organization, and control realized by business process management.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;b&gt;  &lt;/b&gt;&lt;/span&gt;&lt;b&gt;Lack of Adequate Support for Knowledge Workers&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;In contrast to many developments in software architecture and technology, workflow management systems have massive effects on the daily work for their users. The method of data storage and whether the program was developed with a procedural programming language or an object oriented programming language are relevant only for system designers and developers; these implementation aspects do not matter for the users of these systems. Therefore, special care has to be taken in the rollout of workflow applications; early participation of users in the design of these systems is important to avoid user acceptance issues. Workflow management systems represent not only processes but also the organizational environment in which these processes are executed. This means that persons are represented by their skills, competences, and organizational positioning. This information is used to select persons to perform certain activities. The active selection of persons by the workflow management system has not been considered appropriate, since human workers felt that a machine burdened them with additional work. This feeling might also be due to crude interfaces of early workflow management systems. The role of knowledge workers is another area where traditional workflow management systems scored low. Workflow models prescribe the process flow, and a workflow management system makes sure that the workflow is performed just as it is described. This also means that there is little room for creativity for the knowledge worker. Any process instance that has not been envisioned by the process designer cannot be realized. This might lead to situations where certain parts of the overall business process are not handled by the workflow management system. Sometimes, even paper-based solutions were used by the knowledge workers, leading to inconsistent states in the overall process. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;b&gt;  &lt;/b&gt;&lt;/span&gt;&lt;b&gt;Technical Integration Challenges&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;While system workflows are well equipped to support the process aspect of enterprise application integration scenarios, the same technical integration problems need to be solved in system workflow projects as those in traditional enterprise application integration projects. Application systems that need to be integrated are typically not equipped with well-documented interfaces that can be used to get hold of the required functionality. Functionality of application systems might also be implemented in the graphical user interfaces, so that low-level implementation work is required to access the application system functionality. Another important source of trouble is relationships between different applications at the code level. Direct invocation between software systems is an example of these relationships, so that an invocation of an application system automatically spawns off an invocation of another application system. In these settings, the overall process flow is in part realized at the application code level, so that the workflow management system is capable of controlling only parts of the actual process flow, but not the complete process. The granularity of the workflow activities and the granularity of the functionality provided by the underlying application systems might be different. Fine-granular business activities might have been designed in the process model that cannot be realized, because the underlying application system only provides coarse-grained functionality. In some cases, the interface to the application can be modified so that fine-grained functionality is available. This alternative is likely to incur considerable cost, or it might be impossible for some applications. Another alternative is changing the granularity of the business activities. In this case, certain properties of the process might not be realizable—for instance, the concurrent execution of two fine-granular activities. As a result, the run time of the workflow will not be optimal. Service-oriented architectures and service-enabling of legacy applications are important concepts currently being investigated to address these technical problems.&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;b&gt;   &lt;/b&gt;&lt;/span&gt;&lt;b&gt;Process Support Without Workflow Systems&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;Not all environments ask for a workflow management system. In cases where no changes to the process structure are envisioned, a coding of the process flow can be an attractive and adequate choice. In database administration there are predefined procedures that are enacted following a process model. Similar developments can be found in publishing environments where print workflow is a common tool to describe and perform the steps that lead to publishable results. Most enterprise resource planning systems feature a dedicated workflow component that allows us to model new processes and enact them in the system environment. Due to their close link to particular applications, these systems are also called embedded&lt;/div&gt;&lt;div&gt;workflow management systems.&lt;/div&gt;&lt;div&gt;Business processes are also realized in online shops, such as train reservation&lt;/div&gt;&lt;div&gt;systems or electronic book stores, where steps of an interaction process&lt;/div&gt;&lt;div&gt;are depicted in graphical form. This graphical representation guides the user&lt;/div&gt;&lt;div&gt;in his interaction with the Web site. In a train reservation online shop, for&lt;/div&gt;&lt;div&gt;instance, there are interaction steps for querying train connections, for getting&lt;/div&gt;&lt;div&gt;detailed information on the connections, for selecting connections, for&lt;/div&gt;&lt;div&gt;providing payment information, and for booking and printing the train ticket.&lt;/div&gt;&lt;div&gt;Since this type of interaction process can easily be realized using traditional&lt;/div&gt;&lt;div&gt;Web page design, workflow management systems are not required. However,&lt;/div&gt;&lt;div&gt;these examples show that the business process paradigm is helpful also in&lt;/div&gt;&lt;div&gt;application scenarios that do not require dedicated workflow support.&lt;/div&gt;&lt;div&gt;Enterprise application systems, such as enterprise resource planning systems,&lt;/div&gt;&lt;div&gt;realize literally thousands of business processes. These processes can be&lt;/div&gt;&lt;div&gt;customized to fit the particular needs of the company that runs the system. In&lt;/div&gt;&lt;div&gt;most cases, the business processes are realized within the system, so no integration&lt;/div&gt;&lt;div&gt;issues emerge. If the predefined business processes cannot be tailored&lt;/div&gt;&lt;div&gt;in a way that fits the needs of the company, then integrated process modelling&lt;/div&gt;&lt;div&gt;functionality can be used to model new processes&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-5681350148598574666?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/5681350148598574666/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/07/business-process-management-part-1_129.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/5681350148598574666'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/5681350148598574666'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/07/business-process-management-part-1_129.html' title='Business Process Management (Part-1 Foundation[Chapter II Evolution of Enterprise Systems Architectures ] ) Sec  J -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-2509182197650746219</id><published>2009-07-19T09:34:00.001+05:30</published><updated>2009-07-19T09:36:58.860+05:30</updated><title type='text'>Business Process Management (Part-1 Foundation[Chapter II Evolution of Enterprise Systems Architectures ] ) Sec  i -- By Mathias Weske</title><content type='html'>&lt;span class="Apple-style-span"   style="font-family:Arial;font-size:100%;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; white-space: pre;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Human Interaction Workflows&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;     &lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:Arial;font-size:100%;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; white-space: pre;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:Arial;font-size:100%;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; white-space: pre;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;In order to introduce human interaction workflows, it is useful to discuss its development. An early predecessor of human interaction workflow management systems is the office automation system, developed in the early 1980s. The goal of these systems was supporting the organization and the collaboration of work involving multiple persons. Until then, supporting office work of individuals was at the centre of attention. It turned out that it is not sufficient to equip workers with adequate software for their individual workplace, but also to consider the relationship of the work activities that are performed by different workers and provide support for their collaboration. By shared, consolidated data repositories and by improving the handover of work between employees, a considerable speed-up in office procedures could be realized. However, the scope of office automation was still quite narrow: workers of a given organization process information objects, primarily using forms-based applications. Today, human interaction workflows typically realize parts of a larger business process that has automated as well as nonautomated parts. The goal of human interaction workflows is to effectively support the automated parts of business processes by actively controlling the activities performed according to process models. Definition 2.6 Workflows in which humans are actively involved and interact with information systems are called human interaction workflows.  Workflow management systems also take into account the organization in which the process runs. In particular, for each step in a workflow process, the role responsible for executing is defined. Roles are groups of employees that qualify for this responsibility. The role concept introduces an additional type of flexibility, because at run time of the workflow, a person currently available can be offered to work on the respective activity, and one of the persons can select the activity to&lt;b&gt; &lt;span class="Apple-style-span" style="font-weight: normal;"&gt;actually start working on it.&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:Arial;font-size:100%;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; white-space: pre;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Goals attributed to human interaction workflows are reduction of idle periods, avoiding redundant work such as the entering of data multiple times by different knowledge workers, and improved integration of human work with underlying information systems. In addition to the activities and their logical ordering in a process model, the information system required to enact the workflow for each activity is represented. This information is required, since the workflow management system at run time will invoke these applications and will feed the required process data to these applications. In the workflow at hand, first an order is stored in an order management system. Then the inventory is checked to find out whether the order can be fulfilled. To keep the process simple, the process design assumes that the order can be fulfilled, i.e., there is no alternative modelled if this is not the case. Then, concurrently, the shipment is prepared, the parcel is handed to the shipper, and the invoice is prepared and sent. The fulfilled order is archived, completing the human interaction workflow. Human interaction workflows require particular graphical user interface concepts. The main concept is the work item list. Knowledge workers interact with the system using work item lists, which are also called in-baskets. Whenever a knowledge worker can perform a process activity, he or she is informed by an item in his or her work item list. When the item is selected, the respective application is started, and the input data is provided. When the activity is completed, the knowledge worker informs the workflow application. The workflow management system then computes the current state and determines the activities next due.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-2509182197650746219?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/2509182197650746219/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/07/business-process-management-part-1_19.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/2509182197650746219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/2509182197650746219'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/07/business-process-management-part-1_19.html' title='Business Process Management (Part-1 Foundation[Chapter II Evolution of Enterprise Systems Architectures ] ) Sec  i -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-1580414389436053685</id><published>2009-07-17T20:16:00.002+05:30</published><updated>2009-07-17T20:18:20.861+05:30</updated><title type='text'>Business Process Management (Part-1 Foundation[Chapter II Evolution of Enterprise Systems Architectures ] ) Sec  H -- By Mathias Weske</title><content type='html'>&lt;span style="font-weight: bold;"&gt;        Workflows and Applications&lt;br /&gt;       &lt;br /&gt;                    &lt;/span&gt;Traditionally, application systems are designed and implemented not only&lt;br /&gt;by coding functions that the application carries out, but also by coding the&lt;br /&gt;ordering of these functions, i.e., the process logic realized by the application.&lt;br /&gt;With growing complexity of the application systems and increasing demand&lt;br /&gt;for adapting application systems to new requirements, the coding of&lt;br /&gt;process logic in applications has a severe drawback: any modification of the&lt;br /&gt;process realized by the application requires a modification of the programming&lt;br /&gt;code. The code not only needs to be modified, but also tested and maintained,&lt;br /&gt;so that each modification consumes considerable resources.&lt;br /&gt;Workflow management technology can be used to ease the modification of&lt;br /&gt;the process logic realized by applications. The functions of an application system&lt;br /&gt;are the steps in the workflow, and a workflow component uses a workflow&lt;br /&gt;model to enact the functions. By modification of the process logic specified&lt;br /&gt;in workflow models, the behaviour of the application system can be modified&lt;br /&gt;without coding.&lt;br /&gt;Today, most enterprise application systems, such as enterprise resource&lt;br /&gt;planning systems, host a workflow component that facilitates the flexible customization&lt;br /&gt;of business processes within these systems. Observe that instead of&lt;br /&gt;the term workflow management system the term workflow component is used,&lt;br /&gt;because a workflow component is not a stand-alone software system; rather,&lt;br /&gt;it is embedded in the application.&lt;br /&gt;Definition 2.4 A single-application workflow consists of activities and their&lt;br /&gt;causal and temporal ordering that are realized by one common application&lt;br /&gt;system. Multiple-application workflows contain activities that are realized by&lt;br /&gt;multiple application systems, providing an integration of these systems.&lt;br /&gt;            There is a dedicated workflow component that is fed with workflow&lt;br /&gt;models that capture the process logic as well as technical execution information.&lt;br /&gt;The workflow component uses functions realized by the application and&lt;br /&gt;provides processes to the higher level, the graphical user interface.&lt;br /&gt;In the case of multiple-application workflows, a dedicated workflow management&lt;br /&gt;system makes sure that the application systems are invoked as specified&lt;br /&gt;in the process model. In addition, data transfer between application&lt;br /&gt;systems is also taken care of by the workflow management system.&lt;br /&gt;The relationships of the subsystems involved in a workflow application&lt;br /&gt;are shown in Figure 2.18. The integration of the application systems is performed&lt;br /&gt;by the workflow management system, using adapters similar to those&lt;br /&gt;used in traditional enterprise application integration scenarios.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;            System Workflows&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;                    In system workflows, the workflow activities are performed automatically by&lt;br /&gt;software systems. Therefore, knowledge workers do not interact with the application, and graphical user interfaces in general and work item lists in particular&lt;br /&gt;are not required. The execution constraints are specified in a process&lt;br /&gt;model, and the workflow management system makes sure that the ordering of&lt;br /&gt;calls to the software systems is in line with the process model.&lt;br /&gt;Figure 2.19 shows a scenario of a system workflow, with a dedicated workflow&lt;br /&gt;management system that invokes for each activity a defined application&lt;br /&gt;system. Each of these software systems provides an interface that the workflow&lt;br /&gt;management system can use, similar to the adapter in the enterprise&lt;br /&gt;application integration scenario sketched above. The workflow management&lt;br /&gt;system behaves like a centralized hub in an enterprise application integration&lt;br /&gt;scenario, but with explicit process representation and enactment control.&lt;br /&gt;Definition 2.5 A system workflow consists of activities that are implemented&lt;br /&gt;by software systems without any user involvement. &lt;br /&gt;Enterprise application integration scenarios are typical candidates for system&lt;br /&gt;workflows. The design and implementation of system workflows can be&lt;br /&gt;regarded as a type of high-level programming, where functionality provided&lt;br /&gt;by application systems characterize the building blocks that are organized&lt;br /&gt;within a system workflow.&lt;br /&gt;            In enterprise application integration platforms without a dedicated process&lt;br /&gt;component, the interaction between the application systems is represented by&lt;br /&gt;rules, which are used to forward messages based on their type or content.&lt;br /&gt;From these rules, the overall process structure cannot be derived easily, and realizing change is cumbersome, because rules might trigger other rules, so&lt;br /&gt;that undesired side effects can occur.&lt;br /&gt;Process modelling techniques can be used to provide an explicit representation&lt;br /&gt;of the relationships between enterprise applications. Process models&lt;br /&gt;provide the conceptual basis for defining when and under which conditions&lt;br /&gt;enterprise applications are actually invoked in the context of an integration&lt;br /&gt;scenario.&lt;br /&gt;Therefore, a dedicated process component responsible for modelling and&lt;br /&gt;enacting processes in enterprise application integration scenarios is adequate.&lt;br /&gt;Workflow management systems are well equipped to act as this component.&lt;br /&gt;Today, most enterprise application integration middleware systems host a dedicated&lt;br /&gt;workflow component.&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-1580414389436053685?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/1580414389436053685/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/07/business-process-management-part-1_744.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/1580414389436053685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/1580414389436053685'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/07/business-process-management-part-1_744.html' title='Business Process Management (Part-1 Foundation[Chapter II Evolution of Enterprise Systems Architectures ] ) Sec  H -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-6538779207241848382</id><published>2009-07-17T20:14:00.002+05:30</published><updated>2009-07-17T20:16:02.411+05:30</updated><title type='text'>Business Process Management (Part-1 Foundation[Chapter II Evolution of Enterprise Systems Architectures ] ) Sec  G -- By Mathias Weske</title><content type='html'>&lt;span style="font-weight: bold;"&gt;        Business-to-Business Processes&lt;br /&gt;&lt;br /&gt;                &lt;/span&gt;The business motivation behind interacting business processes stems from&lt;br /&gt;value systems, which represent collaborations between the value chains of&lt;br /&gt;multiple companies. These high-level collaborations are realized by interacting&lt;br /&gt;business processes, each of which is run by one company in a business to&lt;br /&gt;business process scenario. This section studies interactions between business&lt;br /&gt;processes performed by different companies.&lt;br /&gt;For the sake of concreteness, this section uses an example from the area of&lt;br /&gt;order processing, described as follows. A buyer orders goods from a reseller,&lt;br /&gt;who acts as an intermediary. The reseller sends a respective product request to&lt;br /&gt;a manufacturer, who delivers to product to the buyer. In addition, the reseller&lt;br /&gt;asks a payment organization to take care of the billing.&lt;br /&gt;            There are many interesting issues to study: how do we make sure that the&lt;br /&gt;business-to-business process created by putting together a set of existing business&lt;br /&gt;processes really fulfils its requirements? Structural criteria, for instance,&lt;br /&gt;absence from deadlock, need to be valid for these processes.&lt;br /&gt;The problem is aggravated by the fact that internal business processes are&lt;br /&gt;an important asset of enterprises. Therefore, few enterprises like to expose&lt;br /&gt;their internal processes to the outside world. This means that the properties of the overall business-to-business collaboration cannot be based on the actual&lt;br /&gt;detailed local processes run by the enterprises, but rather on the externally&lt;br /&gt;visible behaviour and the associated models to represent it.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;        Workflow Management&lt;br /&gt;&lt;br /&gt;                &lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-size:100%;"&gt;The developments in enterprise software architectures and in organizationlevel&lt;br /&gt;business process management laid out in the previous sections led to&lt;br /&gt;workflow management. The important achievement of workflow management&lt;br /&gt;is the explicit representation of process structures in process models and the&lt;br /&gt;controlled enactment of business processes according to these models.&lt;br /&gt;The model-driven approach facilitates a high degree of flexibility, because&lt;br /&gt;process models can be adapted to fulfil new requirements, and the modified&lt;br /&gt;process models can immediately be used to enact business processes.&lt;br /&gt;In the 1990s, the Workflow Management Coalition (WfMC) was founded&lt;br /&gt;to bundle workflow related activities by vendors, users, and academia. The Workflow Management Coalition defines workflows and workflow management&lt;br /&gt;systems as follows.&lt;br /&gt;Definition 2.2 Workflow is the automation of a business process, in whole&lt;br /&gt;or in part, during which documents, information, or tasks are passed from one&lt;br /&gt;participant to another for action, according to a set of procedural rules. &lt;br /&gt;Definition 2.3 A workflow management system is a software system that&lt;br /&gt;defines, creates, and manages the execution of workflows through the use of&lt;br /&gt;software, running on one or more workflow engines, which is able to interpret&lt;br /&gt;the process definition, interact with workflow participants, and, where&lt;br /&gt;required, invoke the use of IT tools and applications. &lt;br /&gt;Workflow technology is capable of supporting business processes within a&lt;br /&gt;given application system or between a set of application systems, effectively&lt;br /&gt;integrating these systems. But workflow technology can also be used to enact&lt;br /&gt;business processes in which humans are actively involved, thus improving the&lt;br /&gt;collaboration between knowledge workers.&lt;br /&gt;           &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6370083083090361965-6538779207241848382?l=riatra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riatra.blogspot.com/feeds/6538779207241848382/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riatra.blogspot.com/2009/07/business-process-management-part-1_17.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/6538779207241848382'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6370083083090361965/posts/default/6538779207241848382'/><link rel='alternate' type='text/html' href='http://riatra.blogspot.com/2009/07/business-process-management-part-1_17.html' title='Business Process Management (Part-1 Foundation[Chapter II Evolution of Enterprise Systems Architectures ] ) Sec  G -- By Mathias Weske'/><author><name>Sabina Banu</name><uri>http://www.blogger.com/profile/06700066802762232590</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6370083083090361965.post-6359262247042619950</id><published>2009-07-16T20:28:00.001+05:30</published><updated>2009-07-16T20:30:52.180+05:30</updated><title type='text'>Business Process Management (Part-1 Foundation[Chapter II Evolution of Enterprise Systems Architectures ] ) Sec  F -- By Mathias Weske</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Organizational Business Processes&lt;br /&gt;&lt;br /&gt;                &lt;/span&gt;The early 1990s saw process orientation as a strong development not only to&lt;br /&gt;capture the activities a company performs, but also to study and improve the&lt;br /&gt;relationships between these activities.&lt;br /&gt;The book Reengineering the Corporation, which was briefly discussed in&lt;br /&gt;Section 1.1, proved instrumental in this development. The general approach&lt;br /&gt;of business process reengineering is a holistic view on an enterprise where&lt;br /&gt;business processes are the main instrument for organizing the operations of&lt;br /&gt;an enterprise. Business process reengineering is based on the understanding that the products and services a company offers to the market are provided&lt;br /&gt;through business processes, and a radical redesign of these processes is the&lt;br /&gt;road to success.&lt;br /&gt;Process orientation is based on a critical analysis of Taylorism as a concept&lt;br /&gt;to organize work, originally introduced by Frederick Taylor to improve industrial&lt;br /&gt;efficiency. This approach uses functional breakdown of complex work to&lt;br /&gt;small granularities, so that a highly specialized work force can efficiently conduct&lt;br /&gt;these work units of small granularity. Taylorism has been very successful&lt;br /&gt;in manufacturing and has, as such, fuelled the industrial revolution in the late&lt;br /&gt;eighteenth and early nineteenth century considerably.&lt;br /&gt;Small-grained activities conducted by highly specialized personnel require&lt;br /&gt;many handovers of work in order to process a given task. In early manufacturing&lt;br /&gt;in the late eighteenth and early nineteenth century the products&lt;br /&gt;were typically assembled in a few steps only, so that handovers of work did&lt;br /&gt;not introduce delays. In addition, the task were of a rather simple nature, so&lt;br /&gt;that no context information on previously conducted steps was required for a&lt;br /&gt;particular worker.&lt;br /&gt;Using Taylorism to organize work in modern organizations proved inefficient,&lt;br /&gt;because the steps during a business process are often related to&lt;br /&gt;each other. Context information on the complete case is required during the&lt;br /&gt;process. The handovers of work cause a major problem, since each worker&lt;br /&gt;involved requires knowledge on the overall case. For this reason, the functional&lt;br /&gt;breakdown of work in fine-granular pieces that proved effective in early&lt;br /&gt;manufacturing proves inefficient in modern business organizations that mainly&lt;br /&gt;process information.&lt;br /&gt;From a process perspective, it is instrumental to combining multiple units&lt;br /&gt;of work of small granularity into work units of larger granularity. Thereby, the&lt;br /&gt;handover of work can be reduced. But this approach requires workers to have&lt;br /&gt;broad skills and competencies, i.e., it requires knowledge workers who have a&lt;br /&gt;broad understanding of the ultimate goals of their work.&lt;br /&gt;At an organizational level, process orientation has led to the characterization&lt;br /&gt;of the operations of an enterprise using business processes. While there&lt;br /&gt;are different approaches, they have in common the fact that the top-level business&lt;br /&gt;processes are expressed in an informal way, often even in plain English&lt;br /&gt;text. Also each enterprise should not have more than about a dozen organisational&lt;br /&gt;business processes. These processes are often described by the same&lt;br /&gt;symbols as those used for value systems, but the reader should be aware of&lt;br /&gt;the fact that different levels of abstraction are in place.&lt;br /&gt;The structure of organization-level business process management is shown&lt;br /&gt;in Figure 2.12. The business process management space is influenced by the&lt;br /&gt;business strategy of the enterprise, i.e., by the target markets, by business&lt;br /
