Change Propagation in Collaborative Processes Scenarios Walid Fdhila, Stefanie Rinderle-Ma University of Vienna, Austria, Faculty of Computer Science {walid.fdhila, stefanie.rinderle-ma}@univie.ac.at
Abstract—Process flexibility and change constitute major challenges for process-aware information systems. This does not only hold for centralized process scenarios, but also for collaborative ones involving multiple distributed and autonomous partners. If one partner adapts its private process, the applied change might affect the processes of the other partners as well. Hence the change must be propagated to concerned partners in a transitive way. A fundamental challenge is then to find ways of propagating the changes in a decentralized manner. Existing approaches dealing with changes of collaborative processes are limited with respect to the change operations considered and their dependency on certain process specification languages. By contrast, this paper presents a generic change propagation approach based on the Refined Process Structure Tree. Our approach is applicable independently of a particular process specification language. Further, it considers a comprehensive set of change patterns. Finally, it is shown that the provided change propagation algorithms preserve structural dependencies for any change pattern.
I. I NTRODUCTION Process flexibility and change have been identified as major challenges in process management research for more than a decade [1], [2], [3]. Driving forces necessitating the adaptation and evolution of implemented processes include, for example, changes in law, exceptional situations, and process optimization. Change support is not only crucial for centralized processes (i.e., processes running entirely within one organization), but also for collaborative process scenarios involving multiple partners [4]. Typically, these partners run their own private processes and provide public views on them (i.e., local choreography models) to partners. Based on these public views, a global choreography can be formed by exchanging messages in a controlled manner in order achieve some common goal. A characteristic example of a collaborative processes is a supply chain consisting of the three partners customer, producer, and supplier [4]. Based on their internal or private processes, these partners provide local choreography models to the outside communicating through interactions. Centralized processes pose many challenges when changes have to be applied to them. Existing approaches have focused on aspects such as correctness of change [2], change reuse The work presented in this paper has been conducted within the project I743 funded by the Austrian Science Fund (FWF) and by the Deutsche Forschungsgemeinschaft (DFG).
Manfred Reichert University of Ulm, Germany, Institute of Databases and Information Systems
[email protected]
[5], and performance [6]. The same challenges hold for collaborative process scenarios. In fact, changes of collaborative processes are by far more difficult to handle due to the non-availability of the information required to perform, for example, correctness checks. Specifically due to the absence of a central coordinator, such as assumed in previous work [7], information on the partners’ private processes is not available to others aggravating the correct application of process changes. For example, assume a collaborative supply chain scenario as outlined above. Let further a change become necessary at the supplier’s side due an emerging internal policy and assume that an additional notification message is required from the producer and - in the sequel - from the customer. This change would be first applied to the supplier’s internal process. However, since the change affects both partners, it has to be propagated to the respective partner processes as well. In turn, this change propagation raises challenging issues: (a) Which information must be propagated to partners? (b) How to adapt the local choreographies in order to comply with the change? (c) How to adapt the partners’ private processes? (d) How to maintain correctness and consistency of the global choreography as well as compatibility of the local choreography models among each other? So far, only few approaches have addressed these challenges [4]. All these approaches are restricted with respect to the formal specification language used and the set of change operations considered. Furthermore, only the effects on direct partners have been investigated so far, factoring out issues such as transitive changes as well as issues related to the compatibility of the local choreography models as well as the consistency of the global choreography after change propagation. In this paper, we tackle change propagation in collaborative process scenarios in a more holistic way. First of all, we base our considerations on the Refined Process Structure Tree (RPST) [9]. RPST provides a process representation that is independent of any specific process specification language on the one side and enables us to formally specify and propagate changes on the other side. Regarding process changes, we investigated wellknown process change patterns [10] and provide propagation algorithms for the most common change operations such as insert, delete or replace process fragments, and – at a more semantic level – update of, for example, input/output parameters. All considered change patterns operate on process
Book Trip Operation.bpmn
Acquirer
TravelAgency
TravelAgency failure not ificat ion
credit card not approved
TravelAgency
Traveler
Fail
n
Traveler
Acquirer
Airline
Airline failure not ificat ion
t icket purshase cancelled
Airline
Traveler
TravelAgency Airline
book reserve
Acq u i r er
Tr avel Ag en cy
check and cash
n o t i f i cat e f ai l u r e
cr ed i t car d n o t ap p r o ved
Tr avel Ag en cy
Tr avel er
TravelAgency
Acquirer
Acq u i r er
Book Trip Operation Fai l
b o o k r eser ve
ch eck an d cash
Tr avel Ag en cy
Acq u i r er
Airline Operation.bpmn
Airline
Tr avel Ag en cy Ai r l i n e
Tr avel er
Tr avel Ag en cy f ai l u r e n o t i f i cat i o n
Tr avel Ag en cy
paym ent ok
Ai r l i n e t i ck et p u r sh ase Book Trip can cel l ed
n o t i f i cat i o n f ai l u r e
Acq u i r er
Tr avel er
t icket TravelAgency
Acquirer
Ok
cr ed i t car d n o t ap p r o ved
Tr avel Ag en cy
Tr avel Ag en cy
cr ed i t carTravelAgency d not ap p r o ved
n o t i f i cat e f ai l u r e
Tr avel er
Ai r l i n e Tr avel Ag en cy
t i ck et Ok
Acq u i r er
Tr avel Ag enu cy Acq i r er
Ai r l i n e
t ot al value
Tr avel er
Acquirer
Traveler
Ai r l i n e
Acq u i r er
Ai r l i n e f ai l u r ep aym en t o k n o t i f i cat i o n
Fai l
TravelAgency
Purchase confirm at ion
Acq u i r er
approval
Tr avel Ag en cy cr ed i t car d n ot ap p r oved
Tr avel Ag en cy
Tr avel er
Ai r l i n e
t i ck et p u r sh ase Fai can l cel l ed
n o t i f i cat i o n f ai l u r e
t i ck et p u r sh ase can cel l ed
Tr avel er
Ai r l i n e
Tr avel er
Ai r l i n e
Acq u i r er Tr avel Ag en cy f ai l u r e n ot i f i cat i on
TravelAgency
interaction
Ai r l i n e
Tr avel Ag en cy
ch eck an d cash
Tr avel er
Tr avel Ag en cy
b o o k r eser ve
ch eck an d cash
Tr avel Ag en cy
Acq u i r er
Tr avel Ag en cy
AND-split/join
Pu r ch ase co n f i r m at i o n
Ai r l i n e
XOR-split/join
Fig. 1.
p aym en t o k
Interaction
Ai r l i n e
Ai r l i n e f ai l u r e n ot i f i cat i on
t i ck et p u r sh ase can cel l ed
Ai r l i n e
Recei ver
Tr avel er
Tr avel Ag en cy
Tr avel Ag en cy
Acq u i r er
Ai r l i n e
Global Choreography: Book Trip Operation [8] p aym en t o k
ap p r o val
Ai r l i n e
b ook r eser ve
ch eck an d cash
Tr avel Ag en cy
Acq u i r er
t i ck et
Ai r l i n e
Tr avel Ag en cy
Ai r l i n e
Fai l
Ch o r eo g r ap h y t ask
Tr avel er
t i ck et
Tr avel er
Acq u i r er
Sen d er
t ot al val ue Message sent
Tr avel Ag en cy Ok
Tr avel Ag en cy
Acq u i r er
Ai r l i n e
t i ck et
Acq u i r er Ok
Message received
Acq u i r er
Tr avel AgOk en cy
Ai r l i n e
Tr avel Ag en cy
Acq u i r er
Pu r ch ase co n f i r m at i o n t o t al val u e
Pu r ch ase co n f i r m at i o n Trip Operation [] Global Choreography: Book Tr avel Ag en cy
Tr avel Ag en cy
ap p r o val
1 of 1
Fig. 2.
1 of 1
Airline
t i ck et p u r sh ase can cel l ed
cr ed i t car d not ap p r o ved
1 of 1
Traveler
walidus fd
t i ck et p u r sh ase can cel l ed
1 of 1
n o t i f i cat i o n f ai l u r e
book r eser ve
t o t al cr ed i t car dval u e
n o t ap p r o ved
walid fdhila
ch eck an d cash
t i ck et
n o t i f i cat i o n f ai l u r e
book r eser ve
cr ed i t car d n o t ap p r o ved
t ot al val u e
ch eck an d cash
t i ck et
ch eck an d cash
Acquirer
Travel Agency
Pu r sh ase co n f i r m at i o n
ap p r o val Pu r sh ase co n f i r m at i o n
ap p r o val
We illustrate change propagation issues along the booking Fig. 3. Book Trip Operation: Local Views trip choreography example depicted in Figure 1. This example is part of the choreography model described in [8]. It is modeled in BPMN 2.0 and describes a collaboration between four partners, i.e., traveler, travel agency, acquirer, and airline. The traveler sends booking information to the travel agency which, in turn, contacts the acquirer to request a credit check. If the traveler has not enough credit, failure notifications are sent to the travel agency and the airline partners which inform the traveler about the reservation failure and the purchase cancellation respectively. Otherwise, an approval is sent to the travel agency and the airline is triggered to send the ticket and the purchase confirmation. Figure 2 depicts the public views (i.e., local choreography models) of all participants involved in the choreography. Each partner view includes only the interactions in which this partner is involved as well as the control flow between them. Figure 2 does not show the private view (i.e., orchestration) of each partner that includes the internal activities. These local views merged together lead to the global choreography model. Now assume that partner acquirer wants to change the logic of its private process. For instance, instead of sending two failure notifications to airline and travel agency respectively, he notifies only one of them. In Figure 2, fragment F is replaced by fragment F 0 (XOR instead of AND). Then, for
07.05.2012
t i ck et
n o t i f i cat i o n f ai l u r e
p aym en t ok
t i ck et p u r ch ase can cel l ed
07.05.2012
walid fdhila
1 of 1
Pu r sh ase co n f i r m at i o n
t i ck et
07.08.2012
p aym en t ok
1 of 1
Pu r sh ase co n f i r m at i o n
n o t i f i cat i o n f ai l u r e
n o t i f i cat i o n f ai l u r e
n o t i f i cat i o n f ai l u r e
ch eck an d cash
ap p r o val
n o t i f i cat i o n f ai l u r e
p aym en t ok
ap p r o val
Book Trip Operation: Local Views
1 of 1
walidus fd
ap p r oval
Tr avel Ag en cy
t i ck et p u r ch ase can cel l ed
n o t i f i cat i o n f ai l u r e
Acquirer
II. M OTIVATION AND C HALLENGES
Fig. 3.
Tr avel Ag en cy
Acq u i r er
p aym en t ok
t o t al val u e
1 of 1
Ai r l i n e
Pu r ch ase con f i r m at i on
07.08.2012
Global Choreography: Book Trip Operation []
cr ed i t car d not ap p r o ved
collaboration
book r eser ve
Ai r l i n e
ap p r o val
Tr avel Ag en cy
Tr avel Ag en cy
t ot al val u e
Tr avel er
Acq u i r er
Tr avel er
Acq u i r er
walid fdhila
book r eser ve
p aym en t ok
Tr avel Ag en cy
some process instances, partner airline would wait indefinitely for a failure notification if the acquirer chooses to send a notification only to the travel agency. In this case, the acquirer process instance would be blocked in this state and not terminate. Hence, the described change affects the soundness of the choreography model in terms of compatibility between the distributed public views. To overcome this problem, the effects of this local change in the acquirer process model should be propagated to the concerned partners and the interactions should be restructured consequently. Generally, the challenges are as follows: How to compute the impacts of this local change on the other partners and the global choreography? How to propagate the effects of the local change while preserving the soundness of the collaboration in terms of consistency and compatibility [11]? How to deal with transitive effects of changes? What if changes are made dynamically, i.e. during the execution of choreography instances? How to manage the different versions of the choreography model (used in monitoring) and the participants’ processes at runtime?
t o t al val u e
Airline
Fig. 2.
fragments. The associated propagation algorithms are formally defined and illustrated based on a use case. Furthermore, we show that the change propagation results in compatible local choreography models as well as a consistent global choreography. Finally, we sketch the transition from the structural considerations provided in this paper to semantic issues and future challenges. In Sect. 2 the problem space is introduced, followed by fundamental definitions in Section 3. Section 4 provides the change propagation algorithms. Our approach is evaluated in Section 5. In Section 6 we discuss related work and Section 7 summarizes the paper.
08.05.2012
08.05.2012
III. P RELIMINARIES As emphasized, this paper deals with change propagation in collaborative processes. In practice, there are three different, but overlapping viewpoints in a collaboration: orchestration, behavioral interface, and choreography [12]. An orchestration describes the internal business logic of private processes as well as the communication actions in which a particular partner engages. The behavioral interface (also called public view or local choreography model) sketches the message exchanges from the perspective of a single partner as well as the sequencing between them. In other words, it represents an abstraction of an orchestration’s internal actions. The choreography (also called global model) gives a global view of all interactions in the collaboration. It captures the interactions in which the participating partners engage to achieve a goal as well as the dependencies between these interactions. In order to precisely define the notions of orchestration, behavioral interface and choreography, we
collaboration
Airline not if icat ion f ailure
t icket purshase cancelled
book reserve
Airline
Traveler
credit card not approved
Message ex change
t icket purchase cancelled
t icket
t ot al value
paym ent ok
Purshase conf irm at ion
TravelAgency not if icat ion f ailure
credit card not approved
Travel Agency
Fragm ent F book reserve
check and cash t icket
Airline not if icat ion f ailure
t ot al value
Acquirer
Purshase conf irm at ion
approval
TravelAgency not if icat ion f ailure
check and cash
paym ent ok
approval Airline not if icat ion f ailure
St ruct ural change REPLACE(F,F'): AND pat t ern replaced by XOR pat t ern TravelAgency not if icat ion f ailure
Fig. 2.
Fragm ent F'
Book Trip Operation: Local Views
walidus fd
1 of 1
need to adopt a model for representing control-flow relations between activities and interactions. In this paper, we adopt a structured representation of process models. In essence, a process model is represented as a tree whose leaves represent activities or interactions and whose internal nodes represent either sequence (SEQ), parallel (PAR), choice (CHC), or repeat loop (RPT) constructs. Structured process models are very close to BPEL. As an advantage they are simpler to analyze and easier to comprehend. Although it is possible to express unstructured models both when using BPEL and BPMN, recent work has shown that most unstructured process models can be automatically translated into structured ones [13]. Definition 1: [(Structured) Process Model] A process model
πp of partner p (private view) is a tree with the following structure (we use the type definition syntax of the ML language [14]): P rocess N ode Activity InteractionActivity
::= ::= ::= ::=
ControlN ode
::=
Event
::=
Node Activity|ControlNode|Event InternalActivity|InteractionActivity Send (Message, Destination) |Receive(Message, Sender ) SEQ([Node])|CHC ({Node}) |PAR({Node})|RPT (Node) Start |End
In this structuring of a process model, we consider an interaction activity one-to-many-send (respectively one-frommany-receive) as several interaction activities of type send (respectively receive) executed in parallel. We define a fragment as a non-empty subgraph of a process model with a single entry and a single exit edge. In Definitions 2 and 3, we
23.05.2012
refer to the same control nodes and events as in Definition 1. Definition 2: [Local Choreography Model] A local choreography model Lp of partner p states the external behavior of p and is also denoted public view. It includes the interactions with other partners as well as the constraints between them from the view point of this partner: LocalM odel N ode
::= Node ::= Send (Message, Destination) |Receive(Message, Sender ) |ControlNode|Event
Definition 3: [Global Choreography Model] The global choreography model G represents a global view of the interactions between collaborating partners. GlobalM odel N ode
::= Node ::= I (Source, Destination, Message) |ControlNode|Event
where I corresponds to interaction between the partners source and destination. We consider P as the set of all partners participating in the choreography, Π as the set of their process models, and L as the set of their local models. Figure 3 depicts the RPST model of the book trip operation’s global choreography model as presented in Figure 1. Leaves represent interactions and internal nodes represent the control flow patterns used. In order to support changes of collaborative processes, we consider basic change operations since more complex change patterns can be expressed by combining of these operations.
Acquirer
TravelAgency
Book Trip Operation Book Trip Operation not ificat e failure
Book Trip Operation Book Trip Operation
credit card not approved
TravelAgency
Traveler
Acquirer TravelAgency
Acquirer
TravelAgency credit card not
Acquirer Fail
notnot ificat e failure credit card approved Acquirer TravelAgency Acquirer TravelAgency Acquirer notificate failure TravelAgency TravelAgency approved
Acquirer
Airline
approved
cancelled
TravelAgency
TravelAgency
Book Trip Operation Airline
TravelAgency credit card notnot if icat e not fTraveler ailure ificat e failure approved
notcredit if icat ecard f ailure not TravelAgency
not ificat e failure t icket purshase
not ificat ion failure
Acquirer Acquirer
Traveler
TravelAgency
book reserve
check and cash
TravelAgency
Acquirer
Acquirer
seq
Fail
F1
book reserve TravelAgency
Ok
Book Trip Operation
Acquirer
Acquirer
Acquirer
F111
not ificat e failure TravelAgency
TravelAgency
Airline
1 of 1
credit card TravelAgency not approved
credit card
t icket purshase cancelled
not walidus fd
Airline walidus fd
t icket
approved Airline
walidus
book reserve
walidus fd
Traveler
Fig. 3.
Fig. 2.
Traveler
not if icat ion f ailure
cancelled
1 of 1
t ot al value
Book Trip Operation: Refined Process Structure Tree
approval TravelAgency
Change operations are defined as follows. not ificat ion failure
not if icat ion f ailure
credit card not approved
TravelAgency credit card not approved
credit card not approved
not if icat ion f ailure
walidus fd
Traveler
check and cash
Travel Agency
Travel Agency
book reserve
credit card check not andnot cash ificat ionapproved
book reserve
failure
credit card notification not approved t icket credit card failure book check not bookcash reserve and approved
credit card t icket not approved purshase cancelled 1 of 1
not ificat ion failure
Purshase paym ent okconf irm at ion
not ificat ion failure
Purshase confirm at ion
Purshase confirm ation
tPurshase icket purchase confirm at ion cancelled
not ificat ion failure
1 of 1
credit card not approved
t icket purchase not if icat ion cancelled f ailure ticket notification purchase failure cancelled
not ificat ion failure
credit card not approved
Airline
not if icat ion f ailure
Acquirer
paym ent ok
check and cash
Purshase confirmation
approval check and cash
not ificat ion failure
Purshase confirm at ion
Purshase confirm at ion
not ificat ion failure total value approval
approval
not ificat ion failure
paym ent ok
approval
not ificat ion failure
t ot al value
approval
notification failure
not ificat ion failure
check and cash
not ificat ion failure
check and cash
notification failure
paym ent ok
check and cash
not ificat ion failure
paym ent ok
08.05.2012
payment ok
not ificat ion failure
paym ent ok
08.05.2012
approval
t ot al value
approval
not ificat ion failure
approval
not ificat ion failure
paym ent ok
approval
t icket
paym ent ok
Acquirer
credit card not approved
paym ent ok
paym ent ok
approval
credit card not approved
Acquirer
not ificat ion failure
t ot al value
not ificat ion failure
Purshase confirm at ion
approval
ticket
t icket
not ificat ion failure paym ent ok
check notification and cash failure
Purshase confirmation approval
Acquirer
Purshase confirm at ion
and cash
07.05.2012
not ificat ion failure
not if icat ion f ailure
ticket check paym ent and cash ok
Acquirer
Airline
Airline
Acquirer
credit card not approved
paym ent ok
notification failure
t icket purchase payment cancelled ok Purshase confirm at ion check
Purshase confirm at ion
Purshase confirm at ion
t icket
check and cash
paym ent
check ok and cash
not ificat ion failure approval
not if icat ion f ailure
and cash
paym ent ok nottificat ot al ion failure not ificat ion value failure
value
t icket
approval
check and cash
approval
not ificat ion t ot al failure
Acquirer
approval
not ificat ion check failure
Airline
Travel Travel Agency Agency
Acquirer
notification check failure and cash
Acquirer
Travel Agency
Traveler
t icket
check confirm at ion and cashtotal approval value Purshase t icket confirm at ion
approval
t ot al value
t ot al value
Acquirer
book reserve
conf irm at ion
t icket
t icket check Purshase and cash confirm at ion
Acquirer
Travel Agency
book reserve
credit card not approved
book reserve
not ificat ion failure
t icket purchaset icket
t ot alcancelled value Purshase
approval
Acquirer
approval
paym ent
t ot al value paym ent check ok and cash
t icket
Purshase
Purshase
total confirm ation value
approvalok
t ot al value
Acquirer
Purshase confirm at ion
t icket purchase cancelled
Travel Agency
Travel Agency
t icket
Purshase confirm at ion
check and cash ticket
purshase cancelled approval
t ot al value
not ificat ion failure t icket
book credit card reserve not approved
check t ot alion and cash not ificat value failure
book reserve ticket
t icket purshase cancelled
credit card not approved
t icket
book reserve t ot al value
credit card Purshase notconfirm at ion approved not ificat ion failure
Travel Agency
Travel Agency
check and cash
check and cash
t value
Airline
book reserve
not ificat ion failure
book reserve
book
approval
t ot al value
not ificat ion failure
reserve
Purshase reserve conf irm at ion
t icket check book reserve purshase and cash t icket cancelled ot al
Airline
approval
t icket purshase cancelled
book reserve
Travel Agency
Traveler
Travel Agency
confirm at ion
t ot al value
book reserve
t icket
check and cash book reserve Purshase
t icket purshase cancelled
book reserve
credit card not approved
book reserve
Traveler
Traveler
07.05.2012 between the considerations provided in thiscollaboration paperwalidus to fdsemantic issues and 1 of 1the choreography model in terms of compatibility walidus fd 10.05.2012 walidus fd 1 of 1 • send(message, p0)= receive(message, p).07.05.2012 ChangeP attern ::= Structural | Semantical distributed public views. To overcome this problem, the effects future challenges. as well walidus as afd consistent global chore- process instance would be blocked in this state and not ter1 of 1 07.05.2012 of this newFragment) local change thesoundness process model should 2 the Structural problem is introduced, bydescribed •acquirer receive(message, p0)= send(message, p). sketch IntheSect. transition from the space structural minate. followed Hence, the change affectsinthe of ::= REPLACE (oldFragment, beinpropagated to the concerned partners and the interactions in issues Sectionand 3. 1Section 4 provides the the choreography model terms of compatibility between the ed infundamental this paper definitions to semantic of |DELETE 1 10.05.2012 (fragment) If F is a fragment that solely includes07.05.2012 interaction activities, 1 ofconsequently. 1 be restructured change propagation algorithms.walidus Ourfd1 ofapproach is evaluated in should 1 07.05.2012the effects distributed public views. To overcome this problem, F corresponds to a fragment with same structure where each |INSERT (fragment, how , in, out) Section 5. In Section 6 we discuss related work and Sections Generally, the challenges are as follows: How to compute blem space is introduced, followed by of this local change in the acquirer process model should activity is replaced by and its complement. summarizes the paper. the impactspartners of this local on the other partners the how ::= | Choice Sequence bearallel propagated to the |concerned and change the interactions ns in7 Section 3. Section 4 provides the P Fig. 3. Book Trip Operation: Local Views choreography? How to propagate the effects of the local should be restructured global consequently. lgorithms. Our approach is evaluated in UPDATE newValue) Fig. 3. Book Trip Operation: Local Views II. Semantical M OTIVATION AND::= C HALLENGES (activity, attribute, changeare while preserving the soundness of the collaboration in Fig. 3.challenges Book Trip Operation: Local Views How Lemma 6 we discuss related work and Sections Generally, the as follows: to compute 1: abstr ∈Local L =⇒ abstrp0 (F) ∈ p0 (F) p attribute ::=issues partner |the role|Input|Output Fig. 3. How Book Trip Operation: Views terms of consistency and compatibility [11]? to deal with We illustrate change propagation along booking Fig. 3. Book Trip Operation: Local Views and the er. the impacts of this local change on the other Fig. partners 3. Book Trip Operation: Local Views abstr (L ) p p0 transitive effects of changes? What if changes are made dytrip choreography depicted inwalidus Figure The latter is Howwith fd 1 of 1 08.05.2012 global choreography? to propagate the effects of the local Fig. 3. Book Trip Operation: Local Views whereexample REPLACE replaces an 1.existing fragment a new one, The complement of the abstraction of a participant fragment namically, i.e. during the the execution of choreography instances? part of theCDELETE choreography in [8]. It iswalidus modVATION AND HALLENGES example described fd 1 of 1 change while preserving the soundness removes an existing fragment, INSERT adds a of new collaboration in How1 ofto1 manage the different of the choreography eled in BPMN 2.0 andinto describes a collaboration between four F to∈versions Lpwith according to participant p0 is a fragment of the fd 08.05.2012 terms of consistency andout, compatibility [11]? How deal fragment thebooking process model between in and and UPDATE e propagation walidus issues along the walidus fd 1 of 1 model (used in monitoring) and the participants’ processes at to p. 08.05.2012 walidus fd 1 of 1 partners, i.e., traveler, travel agency, acquirer, and airline. The of Lp0 according transitive effects of changes? What if changes abstraction are made 1dyactivity. walidus fd of 1 08.05.2012 mple depicted modifies in Figure an 1. attribute The latterofis a single runtime? fd 1 of 1 traveler sends booking information to the travel agency which, walidus phy example described in [8]. It is mod- namically, i.e. during the execution of choreography instances? in turn, contacts the acquirer to request a credit check. If the 3. Book Trip Operation: Local Views to manageA the different versions choreography Fig. 3. of Book Trip Operation: Local Views d describes a collaboration between four How P RELIMINARIES Definition 5: [Change Operation] a the Proof: Fig.The proof of this lemma can be based on the traveler has not enough credit, failure notifications are sentchange operation isIII. Fig. 3.processes Book Trip Operation: Local Views model (used in monitoring) and the participants’ at travel agency, tuple acquirer, and airline. The (δ,Σ) δ ispartners the change pattern andLocal Σemphasized, is either this the paper following properties of the collaboration [11]. to the travel agency and where the airline which inform deals withcompatibility change propagation in Fig. 3. Book Trip Operation:As Views runtime? g information to the travel agency which, the traveler about the reservation failure purchase collaborative processes. there are three different, process model, or the localandorthe global choreography model to In practice, • If a ∈ L is an activity that interacts with partner p0, p cquirer to request a credit check. If thean approval is sent to the but overlapping viewpoints in a collaboration: cancellation respectively. Otherwise, orchestration, walidus fd 1 of 1 08.05.2012 III.fd P RELIMINARIES be changed. walidus 1 of 1 gh travel credit, agency failure notifications are sent then: ∃b ∈ L with b = a. Fig. interface, 3. Book Trip and Operation: Local Views1 of 1[12]. An p0 08.05.2012 3. Book Operation: Local Views walidus and the Fig. airline is Trip triggered to send the fdticket behavioral choreography orchestration Definition 6: inform [Abstraction function] 1this Abstraction function andand thethe airline partners which As emphasized, paper deals change propagation walidus fd of 1 • logic If ai ,ofinaprivate purchase confirmation. describes thewith internal business processes as activities that interact with the j ∈ L08.05.2012 p are two e reservation failure the processes. In practice, there are threeactions different, (π) is purchase a views projection of choreography a process model according well asπ the communication which p0 a particular Figure 2 abstr depictsλand the public (i.e.,collaborative local same inpartner and β(ai , aj ) is a function that returns ely. Otherwise, an approval is sent to the but overlapping viewpoints in a collaboration: orchestration, criterion λ. It transforms the source π The intobehavioralthe models) of to all participants involved in the choreography. Eachprocess partnermodel engages. interface (alsoprecedence called public relation between a and a (after minimal i j walidus fd1 of 1 1 of 1 08.05.2012 08.05.2012 e airline triggered to send interface, and choreography [12]. An orchestration 0 interactions view or localsatisfychoreography model) sketches the message partneris view includes onlythethe which this a target model πticket wherebehavioral π 0 inincludes only activities reduction), then: ∃b , b ∈ L with b = a , b = aj and i j i j p0 i firmation. describes the internal business logic of private processes as exchanges from the perspective of a single partner as well as partner is involved as well the as thelocal control flow between them. ing λ (e.g., choreography model is an abstraction β(a , a )= β(b , b ) (bi-simulation property [11], [13]) . wellorchestration) as the communication actions between in which a particular e public (i.e., i jwords, iti represents j them. In other Figureviews 2 does not local show choreography the private view (i.e., of the sequencing ofthat respective process model according interaction antseach involved in theitschoreography. Each partner engages. The behavioral interface called public an to abstraction of an(also orchestration’s internal actions. The partner includes the internal activities. These local activities). Atoreduction function may be applied to eliminate view or local choreography model) sketches message s only interactions this choreography choreography (also called the global model) gives a global viewsthe merged together in leadwhich the global model. Definition function] Let π be a process model and F exchanges the perspective aparallel single partner well as 8: [α wellNow as the control between them. assume thatflow partner acquirer wants to change the logic view(e.g., of allof in theascollaboration. It captures the unnecessary control patterns afterfrom abstraction a interactions be a fragment with: ∀o ∈ Fto =⇒ o ∈ π, where o denotes an the sequencing between them. In in other words, represents partners engage w theofprivate view (i.e., orchestration) interactions which the it participating its private process. For instance, instead of sending two pattern between an of activity and an empty transition may be abstraction of an achieve orchestration’s actions. The udesfailure the internal activities. Theseandlocal of type activity or these control node. Then: Function απ (F) a goal asinternal well asobject the dependencies between notifications to airline travel an agency respectively, reduced to sequence) [15],2,[16]. For instance, depending on a interactions. order to precisely define the fragment notions of in the process structure tree of π hetonotifies onlychoreography one of them.model. In Figure fragment F is called choreography (also globalInmodel) gives a global r lead the global returns the smallest certain condition, a different value of afordataorchestration, element d is sent It interface behavioral and choreography, we fragment F 0 (XOR instead of AND). tner replaced acquirerby wants to change the logic view of allThen, interactions in the collaboration. captures the all that contains elements of F. This function is also used to to the same partner p. In the local view, this is reduced to only adopt a model for representing some processinstead instances, wait indefinitely interactions in which need the to participating partners engage tocontrol-flow relations . For instance, of partner sendingairline two would identify a fragment local or global choreography model. for a and failure notification if the acquirer choosesa togoal send between activities In this paper,inwea adopt achieve as a well as theof dependencies between these o airline travel agency respectively, one interaction which corresponds to the sending data d.and interactions. a structured representation of process models. In essence, a notification only to the travel agency. In this case, the acquirer In order fragments to preciselyas define of them. In Figure 2, we fragment F Definition is interactions. Next, extend 6 to consider well the notions of IV. C HANGE P ROPAGATION orchestration, behavioral interface and choreography, we F 0 (XOR instead of AND). Then, for as local and global choreography models. We also assume that s, partner airline would wait indefinitely need to adopt a model for representing control-flow relations section introduces a global view of the proposed λ = p0chooses meanstothe interactions p0. Hence, abstrp0 (LInp )this is paper,This ion if the acquirer send a betweenwith activities and interactions. we adopt 0 approach the abstraction of L according to the interactions with p . p a structured representation of process models. In essence,and a details the different steps to propagate changes e travel agency. In this case, the acquirer credit card not approved
07.05.20
t icket
ok
paym ent ok
Purshase confirm at ion
credit card not approved
07.05.2012
t icket
ticket paym ent
paym ent ok
Definition 7: [Complement function] If a ∈ p is an interFig. 2.instance Global Choreography: Book Trip Operation [] choreography models well as a consistent global choreprocess would be blocked in this state not ter- p0, the complement of a called action activity withand a partner Fig. Fig. 1. 2.as Global Choreography: Book Trip Operation [8] Global Choreography: Book Trip Operation [] ography. Finally, we sketch4:the[Change transition Patterns] from the structural minate. Hence, the described the soundness Definition a ∈change p0 is affects the opposite of a of as follows. collaboration
TravelAgency
collaboration
07.05.2012
t icket
Purshase conf irm at ion
Purshase confirm at ion paym ent ok
t ot al approval value
t icket purchase cancelled
07.05.2012
07.05.2012
t icket
paym ent Traveler ok
Acquirer
t ot al value
total
failure
cancelled
1 of 1
Global Choreography: Book Trip Operation [] cancelled ok t ot al value Fig. 2. Global Choreography: Book Trip Operation [] t icket
Acquirer
t icket purchase 07.05.2012 cancelled t icket not ificat ion purchase failure not ificat ion cancelled
not if icat ion f ailure
purchase cancelledTravelAgency
failure approval
t icket purshase TravelAgency t icket cancelled paym ent purshase
t ot al Fig. 2. Global Choreography: Book Trip Operationvalue [] approval value
total value
t icket purchase Traveler
cancelled 07.05.2012
Acquirer ticket notification Global Choreography: Book Trip Operation [] 1 of 1 t icket purchase not ificat ion failure
Purchase confirm at iont icket TravelAgency
Fig. 1. AcquirerGlobal Choreography: Book Trip Operation [8] collaboration
Fig. 2.
Airline TravelAgency
1 of 1
t icket 1 of 1 purshase
approval
t otapproval al value TravelAgency
TravelAgency
TravelAgency
t ot al value Acquirer
approved
Traveler
Purchase confirmation
TravelAgency t icket purchase cancelled
credit card1 ofTraveler 1 credit not card not Traveler approval approved
Airline
Acquirer t icket purshase fdcancelled TravelAgency Acquirer
TravelAgency book purchase conf irm at ion reserve t ot al value approval Purchase confirm at ion TravelAgency ticket otal al value t icket t ot al tt ot book TravelAgency purshase book purshase value value reserve Traveler book book TravelAgency cancelled collaboration TravelAgency reserve cancelled reserve reserve Traveler
Traveler
not ificat ion TravelAgency failure TravelAgency t ot al value
credit card Ok Acquirer purchase conf irm at ion not credit card approved Purchase confirm at ion paym ent ok not TravelAgency approved
t ot al value
TravelAgency Acquirer
TravelAgency
Airline
t ick et
TravelAgency
Airline
AirlinePurchase confirm at ion
Airline Airline Airline Acquirer
Traveler
Airline
Airline
paym ent ok check and cash collaboration collaboration
TravelAgency TravelAgency
walidus fd
Traveler Traveler
TravelAgency
Airline
collaboration paym ent ok
walidus fd
Airline Airline
Airline
TravelAgency
TravelAgency
Traveler payment ok
Airline
book reserve
t icket
Acquirer
Acquirer TravelAgency
Airline
t icket
Airline
Traveler
paym ent ok paym ent ok
Fig. 2.
Airline
walidus fd
t ot al value t ot al value t ot al value
seq
F1211
Airline
Acquirer Acquirer
TravelAgency TravelAgency TravelAgency
Global Choreography: Book Trip Operation [] Fig. 2. Global Choreography: Book Trip Operation [] Acquirer Ok Acquirer t icket purshase ticket Purchase confirm at ion[] Fail not ificat ion failure Fig. 2. Global Choreography: Trip Operation []BookBook TravelAgency Fig. 2.Book Global Choreography: Operation Airline cancelled Fig. 2. Global Choreography: Trip Trip Operation [] Airline F12111 Ok Acquirer Global Choreography: Book Operation [] paym entTrip ok
Traveler Traveler
Ok
Traveler Airline
Airline TravelAgency TravelAgency Airline
Purchase confirm at ion Purchase conf tirm ion ot alatvalue total value Purchase confirm at ion
TravelAgency
Fail TravelAgency
Traveler
Ok
Ok Traveler Traveler Ok Traveler
Airline TravelAgency credit card not approved t icket
Acquirer Acquirer
TravelAgency
Traveler approval
TravelAgency
AirlineAirline
bookcollaboration reserve
collaboration
check and cash check and cash
ravelAgency ravelAgency
t icket
t icket purshase cancelled
seq
Airline
TravelAgency TravelAgency
book reserve book reserve
t icket
TravelAgency Airline TravelAgency
Traveler
Global Choreography: Book Trip Operation []
ick et purshase t icket tpurshase cancelled cancelled
Traveler
Traveler Traveler
F121
Airline
Acquirer Acquirer check and cash check and cash airline not if icat ion not ificatAcquirer ionf ailure failure Acquirer Airline Airline collaboration
book reserve
ticket Acquirer
Fig. 2.
TravelAgency TravelAgency
book reserve FailFail TravelAgency TravelAgency
credit card not approved Airline Traveler Airline t icket
Airline
Airline TravelAgency TravelAgency Traveler t ot al value TravelAgency Airline TravelAgency Traveler Airline t icket purshase TravelAgency Acquirer not ificat ion failure Acquirer cancelled Traveler t icket Acquirer TravelAgency Acquirer ticket purshase TravelAgency Acquirer Fail notification failure Acquirer Acquirer cancelled Ok Acquirer Airline Traveler TravelAgency TravelAgency credit card not approval Acquirer Airline Acquirer Acquirer Airline not ificat e failure TravelAgency approved Acquirer approval Airline Traveler approval card not credit credit card not approval t icket purshase not if icat ion t icket purshase paym ent ok Traveler notairline TravelAgency FailFailapproved ificat ion failure approval approved TravelAgency Traveler TravelAgency cancelled f ailure cancelled approval TravelAgency Traveler TravelAgency book reserve TravelAgency TravelAgency Traveler Traveler Airline check and cash Traveler Airline Airline Airline Traveler TravelAgency TravelAgency book reserve check and cash TravelAgency Acquirer Airline Airline Acquirer Airline t icket
Fig. 2.
TravelAgency TravelAgency
t icket
Ok
Purchase confirm at ion Acquirer check and cash
approved book reserve
TravelAgency
TravelAgency not icat e f ailure not not ificat failure ifife icat ion f ailure
Airline
Airline TravelAgency
Purchase conf irm at ion Airline TravelAgency Traveler TravelAgency TravelAgency Purchase confirm ation
Traveler F112
TravelAgency
Acquirer Acquirer
TravelAgency
TravelAgency
credit card not Acquirer credit card not approved
not if icat e f ailure not if icat ion f ailure
Traveler TravelAgency Traveler
not ificat e failure
F12
TravelAgency
TravelAgency
seq
t icket purshase t icket purshase cancelled cancelledTraveler
Acquirer TravelAgency Acquirer Ok TravelAgency Acquirer TravelAgency paym ent ok TravelAgency paym ent ok Fail notok ificat ion failure paym ent t ot al value TravelAgency Acquirer credit card not Airline Airline approved Airline Airline creditAirline card not Airline notificate failure Traveler approvedAirline Traveler
not ificat e failure
Airline
Book Trip Operation
Airline t icket purshase Airline Airline cancelled
paym ent ok paym ent ok Acquirer TravelAgency
Purchase confirm at ion paym ent ok Airline
F11
seq
Airline
not if icat ion f ailure Fail cancelled not ificat ion Airline failure Traveler Traveler Airline Acquirer Airline
Airline
Airline
Book Trip Operation
collaboration
t icket purshase cancelled
Airlinet icket Traveler Traveler TravelAgency Traveler TravelAgency Ok Acquirer Traveler TravelAgency Traveler TravelAgency Traveler TravelAgency book reserve check and cash TravelAgency TravelAgency book reserve check and cash book reserve check and cash check and cash paym ent ok book reserve book reserve check Acquirer and cash TravelAgency check cash TravelAgency Book Trip and Operation Acquirer Airline TravelAgency Acquirer TravelAgency Acquirer Airline TravelAgency Acquirer Acquirer Ok Acquirer Ok Acquirer t icket Ok Airline
Traveler Book Trip Operation
Traveler Traveler
not if icat ion f ailure Fail
not ificat ion Airline failure
Fail
TravelerTraveler
Acquirer
Airline Acquirer not ificat ion failure Fail Acquirer ticket purshase notification failure cancelled t icket purshase
Airline
Fail
credit card notcard Traveler credit not approved approved
Traveler TravelAgency TravelAgency
Traveler
Traveler
check and cash
not ificat ion failure
approval
08.05.201
paym ent ok
approval
in collaborative processes.
08.05.2012
Infer interaction changes
Specify change
Start
Variant?
Compute affected partners
Yes
No
Propagate changes public2private
Do
Update local change
Update global choreography model
Select an affected partner Find another alternative
Succeed Succeed
Update local choreography models
End
No Fail
Yes
Compute changes to propagate to this partner
abandon?
Fail
Yes
ok?
No
No Check compatibility and consitency
Fig. 4.
Compute public2private changes
Yes
negociations succeed?
Negotiate changes
Yes
last partner?
No
Change Propagation - Major Steps
A. Overview As afore mentioned, our objective is to support change propagation in choreographies with multiple interacting partner processes. Our approach relies on four major steps: (i) identifying interactions affected by the change as well as the partners involved, (ii) translating the initial change operation into several change operations each related to a particular partner, (iii) negotiating with the affected partners, and (iv) checking consistency and compatibility of the changed choreography. Figure 4 details the previous steps and outlines the different actions to achieve a sound propagation. Given a change operation on one partner orchestration, we extract all interaction activities concerned by the change. Interaction activities are communication actions with other partners (i.e., sending and receiving requests). If the list is empty (i.e., if the local change is restricted to the internal behavior), the other business partners are not affected by the change and there is no need for a new agreement on the global choreography. Otherwise, the list of affected interactions is analyzed to identify all partners involved. For each of these partners, a relative change computation is undertaken to gather the changes to be propagated. The latter are computed according to the change operation type. Then, a negotiation phase is launched with each affected partner. If all negotiations succeed, we apply consistency and compatibility checks to ensure the soundness of the obtained models. If these models are sound, we update the local and the global choreography models affected by the change and, if necessary, adapt concerned orchestrations to their new behavioral interfaces. Section IV-B is structured according to the mentioned steps. It sketches the different algorithms needed for propagating changes. Note that this propagation strongly depends on the change operation type (i.e., INSERT, DELETE, REPLACE and UPDATE). B. Algorithms Enabling Change Propagation Consider a change operation δ on a process model πp . To start, we abstract the changed fragment according to its interaction activities; i.e., we look for the structural or semantical changes that affect the interactions with the
other partners. According to the change operation type, a particular procedure for decomposition is performed. This decomposition transforms the initial change operation into several change actions to be propagated to each affected partner. Due to lack of space, here, we only consider the UPDATE and the REPLACE change patterns. Note that REPLACE can cover patterns INSERT and DELETE. 1) REPLACE Decomposition: Assume we want to replace a fragment F by a new fragment F 0 with a different structure (e.g., in the book trip example depicted in Figure 1; REP LACE(P AR(Airline notif ication f ailure, T ravelAgency notif ication f ailure),CHC(Airline no− tif ication f ailure , T ravelAgency notif ication f ailure) ), πacquirer )). As described in Algorithm 1, the first step computes all partners involved in F and F 0 (e.g., Airline and T ravelAgency) and for each partner p0 we abstract from, the respective interaction activities (abstrp0 (F) and abstrp0 (F 0 )) (e.g., in the example, F and F 0 already include interactions activities only). At this level, for a particular partner, three possible scenarios can be identified: (i) a partner involved in the original fragment F is no longer present in the new fragment F 0 (deletion of the interaction with this partner), (ii) a partner involved in F 0 was not present in F (adding a new interaction), and finally (iii) a partner present in both fragments F and F 0 , but with different structure (updating the conversation with a partner). As a consequence of these scenarios, the REPLACE pattern is translated into a concatenation ∆ of change patterns to propagate to the affected partners. (i) Deletion scenario: If a particular partner p0 interacts with the partner p in fragment F and is not engaged in any conversation with p in the new fragment F 0 , we delete the respective interactions from their local choreography models. To achieve this, we consider each interaction activity a with p0 to be deleted in F. Further, we search for the matching activity a in p0 and derive the change pattern DELETE(a, Lp0 ). Note that this operation is not applied directly since there is a
negotiation phase. Besides, this deletion could have subsequent effects on p0 . Indeed, it is possible that other interactions in p0 semantically depend on the deleted interaction (e.g., supply chains scenarios). This is called transitivity effect and it does not constitute a structural problem, but a semantical one. In this section, we focus only on structural changes, but resolve the transitivity effects separately in Section IV-C. So, if activities to delete are synchronous (e.g., waiting for a response or replying to a request), then we delete the corresponding activities. For example, consider a buyer that invokes a seller for a price request (i.e., send(seller, price request), receive(buyer, price request)). If we delete this interaction, we must delete the corresponding response to the buyer as well (i.e., send(buyer, price response), receive(seller, price response)). This could be achieved using the correlations between activities (e.g., correlation sets known from BPEL). Algorithm 1: Decomposition REP LACEπ (F, F 0 ) 1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
of
Change
Pattern
Input: - Set of all local choreography models L = {Lp |p ∈ P} - Global choreography model G begin ∆ ← ∅ //decomposition result P∆ ← List of all business partners involved in F ∪ F 0 for (each partner p∈P∆ ) do FG ← αG (F ) {smallest fragment including F in G} if abstrp (F ) 6= abstrp (F 0 ) then if abstrp (F ) = ∅ then in = T presetp (FG , G) out = T postsetp (FG , G) if (∃a ∈ Lp between in and out) then ∆←∆∧ IN SERTp (abstrp (F 0 ), P arallel, Lp .in, Lp .out) else ∆←∆∧ IN SERTp (abstrp (F 0 ), Sequence, Lp .in, Lp .out) end else if abstrp (F 0 ) = ∅ then for (each a ∈ abstrp (F )) do ∆ ← ∆ ∧ DELET Ep (a) {reduction rules may apply when executing the changes} if (a is synchronous) then ∆← ∆∧DELET Eπ (a0 )∧DELET Ep (a0 ) {a0 and a0 are the relative responses or requests of a and a } end end else ∆←∆∧ REP LACEp (αp (abstrp (F )), γ(abstrp (F 0 ), αp (abstrp (F )))) {γ is the merge function} for each a ∈ F st a ∈ / F 0 do ∆ ← ∆ ∧ DELET Ep (a) {if synchronous we do the same procedure as before} end end end end end Output ∆ ;
end
(ii) Insertion scenario: If a particular partner p0 has no interactions with p in the old fragment F, but interacts with p
in the new fragment F 0 , we have to insert the new interactions in the local choreography model of p0 (Lp0 ). For this purpose, we abstract F 0 according to partner p0 , compute abstrp0 (F 0 ) and lookup for the exact insertion position of the latter in Lp0 . In order to compute this position, while preserving structural dependencies, we make use of the global choreography model. Indeed, partner p0 may have other interactions with p outside the changed fragment F or with other partners outside or inside αG (F) in the global model G (where αG (F) is the smallest fragment that encapsulates F in the RPST of G). Note that FG includes all interactions of p which appear in F merged with other interactions of different partners. For example, consider the change scenario introduced in Section II, where fragment F is replaced by F 0 . The smallest fragment containing the two activities of F (i.e., airline and travel agency failure notifications) in the RPST of the book trip global choreography model is F11 (cf. Figure 3). The latter includes other interactions concerning the airline and travel agency partners (i.e., credit card not approved and ticket purchase cancelled). Algorithm 2: Transitive Preset and Postset Computation: T presetp (F, π) T postsetp (F, π) 1 Init: - T preset = start 2 - T postset = end 3 begin 4 predecessor = F .F irstElement 5 repeat 6 predecessor ← predecessor.parent 7 if predecessor = sequence then 8 repeat 9 childlef t ← predecessor.Child.lef t.next {parse from right to left} 10 childright ← predecessor.Child.right.next {parse from left to right} 11 if ∃F 0 ∈ childlef t st ∃ai ∈ F 0 which invokes p then 12 T preset = abstrp (child) 13 preset path = path between F and T preset 14 end 15 if ∃F 0 ∈ childright st ∃ai ∈ F 0 which invokes p then 16 T postset = abstrp (child) 17 postset path = path between F and T postset 18 end 19 until ; 20 end 21 until ((T preset 6= start ∧ T postset 6= end) ∨ predecessor = rootElement) ; 22 end 23 Output: T postset, T preset ;
Once αG (F) is identified, we compute the transitive preset and postset of αG (F) according to p0 . The transitive postset T postsetp0 (αG (F), G) (preset T presetp0 (αG (F), G)) represents the smallest fragment of G containing interactions of p0 that could be executed just before (just after) αG (F). These two variables are used to identify the insertion position of abstrp0 (F 0 ) in Lp0 . To compute these values we refer to Algorithm 2. Given a fragment F, a process model π, and a partner p, T presetp (F) is calculated as follows: Algorithm 2 first parses the RPST from F to the root element, and for each sequence element found, it parses the child elements from the right to the left and checks whether a child contains activities or interactions with p. If this applies, abstr(child) represents the transitive preset. If no child element contains
ChangePropagation ChangePropagation
Transitive effects: Transitive effects: ticket_purschase_cancelled is notticket_purschase_cancelled always sent to Traveler is not always sent to Traveler
Semantic violation if ticket_purchase Semantic depends violation semantically if ticket_purchase _cancelled of _cancelled depends semantically of Airline_notification_failure Airline_notification_failure
Airline Airline notification notification failure failure ticket ticket purchase purchase cancelled cancelled
(a) first scenario Fig. 5.
ticket ticket purchase purchase cancelled cancelled
Air line Airline
Airline Airline notification notification failure failure
Air line Airline
interaction activities with p, we try to discover the upper level in the tree and repeat the same procedure. The postset is computed the same way except that we discover the right part of the process tree. The transitive preset and postset (in =T presetp0 ( αG (F), G) and out =T postsetp0 ( αG (F), G)) represent the insertion position of the fragment abstrp0 (F 0 ) in Lp0 . If there are no activities between in and out in the initial model, we insert abstrp0 (F 0 ) in sequence. Otherwise, we insert it in parallel.
(b) second scenario Airline: Change Propagation
(iii) Replacement scenario: Finally, the last scenario is when both fragments F and F 0 contain interactions with corresponding activity to a (i.e., reply to a request or receive a partner p0 , but with different structures (control flow). a response) correlating inputs and outputs. We also update This means that the dependencies between interactions have the corresponding activity to a in Lp with the new partner changed and therefore the local view of p0 should be updated p00 . Then, we check whether or not p00 already exists in the to conserve compatibility between the behavioral interfaces. list of partners. In the latter case, we create a new public For instance, in the change operation example from Figure 2, view for p00 containing a and the corresponding activity a00 if F 0 contains the same interaction with airline for sending the the communication is synchronous. If the partner p00 already failure notification, but with different structure (the latter couldwalidus fd exists, we check where to insert a and possibly a0 in Lp00 . 1 of 1 walidus fd 1 of 1 be sent or not depending on the running instance). So, the For this purpose, we use the global choreography model G idea is to abstract the interactions with p0 in F (abstrp0 (F)), and compute the transitive preset and postset of a (in and identify abstrp0 (F) in Lp0 , and replace it with abstrp0 (F 0 ). out) and a0 (in0 and out0 ) according to p00 . If there are other However, this is not possible if the smallest fragment in Lp0 , interactions with p00 between in and out, we compute their which contains the activities of abstrp (F 0 ), includes other dependencies with a and insert the latter in Lp0 accordingly. interactions with different partners. For this purpose, we adopt The same holds for a0 if the communication is synchronous. a merge algorithm to merge abstrp (F) with αp (abstrp (F 0 ). Indeed, merging process models has been widely studied and Algorithm 3: Decomposition of Change Pattern many works were proposed [17], [18]. The key idea is to U P DAT Eπ (a, attribute, newV alue) merge different (and overlapping) process models into a single 1 Input: -Set of all business partners P model without restricting the behavior that was possible in 2 - Set of all local choreography models L = {Li , i ∈ P} the original models. So, if we consider γ as a merge function 34 begin - Global choreography model G then the problem could be solved by deleting the activities of 5 if (attribute = partner) then p0 ← a.partner {oldpartner} abstrp (F) from αp (abstrp (F)) and then merging abstrp (F 0 ) 67 p00 ← value {newpartner} with the rest of activities in αp (abstrp (F)). The merge could 8 if p00 ∈ / P then Create(lp00 ) {new local view} 9 also lead to a semantic violation. For instance, if we refer Add(lp00 , L) and Add(p00 , P) 10 to our change scenario for the book trip operation, the change 11 end ∆ ← ∆ ∧ DELET Ep0 (a) propagation to the airline partner is depicted in Figure 5. Two 12 ∆ ← ∆ ∧ IN SERTp00 (a, P arallel|Sequence, in, out) {in 13 scenarios are possible: the modified fragment is inserted before and out are computed as in previous algorithms} if Synchronous then activity ticket purchase order or it is merged with it. The 14 15 a0 = Response(a) first case is structurally correct in terms of dependencies, and 16 ∆ ← ∆ ∧ DELET Ep0 (a) ∆ ← ∆∧IN SERTp00 (a0 , P arallel|Sequence, in0 , out0 ) it conserves the compatibility between the interfaces. How- 17 {in0 and out0 are computed as in previous algorithms} ever, in case ticket purchase order semantically depends of 18 if p0 = ∅ then remove(p0 , P) and remove(lp0 , L) some parameters of activity airline notif ication f ailure, 19 20 end the second scenario is considered to be more correct. This is 21 end else a semantic issue and should be validated by the target partner 22 end affected. The latter should validate the proposed scenario 23 24 end which goes with its semantics. 25 Output ∆ ; 2) UPDATE Decomposition: As afore mentioned, the UPDATE pattern is used to update the attributes of a single activity. This paper considers the update of attribute partner, but this can be easily be generalized to consider other attributes as well (e.g., input, output, etc.). For instance, we assume that an interaction activity a of πp should be updated to interact with p00 instead of p0 . In this case, we look at a in Lp0 and delete it. If the interaction is synchronous, we delete the
C. Delete pattern: dealing with transitivity We now present a non-exhaustive list of use cases showing the transitivity effects of the DELETE change pattern and the solutions to cope with them. Note that this is a semantic issue and can not be resolved using the propagation algorithms presented so far and focusing on structural propagation.
23.05.2012 23.05.2012
For example, consider three partners p1 , p2 and p3 with p1 invoking p2 , which in turn, invokes p3 . The latter returns the intermediary result to p2 , which applies data transformations and sends the final result to p1 . So, if p1 decides to delete its interaction with p2 , we also must delete the subsequent interaction between p2 and p3 which is just used to deliver the final result. If a partner deletes an interaction, Semantically this means that he is not able to afford this service anymore, or he does not need the data anymore. The challenge is to determine if an interaction is transitive according to another one, to identify the transitivity effects, and to resolve them. Case 1: If partner p is the final consumer of a data element; he launches a communication in which he requires a response. p includes correlated send and receive patterns S/R (non-blocking S/R pattern). •
•
•
p deletes the send/receive patterns. This means that p does not need the data anymore (since p is the final consumer). We delete send and receive. In case where all subsequent interactions with other partners are just used to deliver this data, we delete them (e.g. supply chain scenarios). It is possible that only a subset of the subsequent interactions are used to deliver this data. These are deleted only if they don’t have any other role in the choreography. Example: two concurrent request from A and B to the same partner C. The latter does subsequent interactions and then reply to both of them. If A deletes his interaction, we should not delete the subsequent interactions of C since they are still used to reply to B. p deletes only the send pattern. Two scenarios: (i) Another partner starts the communication instead of him and then we just Update the correspondent send with the new partner, or (ii) p is not responsible anymore for informing the other partner to start the processing of the response (the response starts automatically or under other constraints) and then we Delete the corresponding send. p deletes only the receive pattern. This means either he does not need the data anymore or the data is transferred to another partner. In the first case, we just delete the corresponding receive and look for other interactions correlated with this response (just used for delivering the response). In the second case, we update the corresponding receive with the new partner.
Case 2: Partner p is the final consumer of the data but is not responsible for launching the first interaction (p has only the receive). Then, if p deletes the receive (does not need the data anymore), we delete the corresponding receive as well as all subsequent interactions used only to deliver this data. All interactions that participate in delivering this data but have another role in the choreography, are kept. Case 3: p is the starting point, responsible for starting a communication resulting in a response to another partner (p has the send). Either (i) another partner is responsible for starting this communication; then, we update the send with the
new partner, or (ii) the communication starts automatically or under other constraints on the target partner; then we delete the corresponding send. Subsequent interactions are not deleted since we still need the final data to be delivered to the final consumer. Case 4: p is an intermediary partner in the conversation. • p has correlated receive and send in sequence. p receives a request, starts a subsequent interactions necessary for delivering the final response to the requester. – If p deletes the send and the receive patterns, this means that p is not able to afford the service anymore, but we still need the final response to the requester. In this case, we have two choices: (i) looking for another partner who can do the work of p to deliver this response; in this case, we update the subsequent interactions as well as the interactions of the root partner (the one who invoked p and the one yo which p should send the result) with this new partner, (ii) deleting send and receive as well as all subsequent interactions used only in the context of this intermediary data and looking for another partner or set of partner who fulfill this intermediary task. Then we update the communications with the root partners or p. – If p deletes only the send pattern, this means another partner is responsible for starting this intermediary communication or the subsequent interactions start automatically or under other constraints. In the first case, we update the corresponding receive with the new partner, otherwise we just delete the receive. – If p deletes only the receive pattern, this means that p can not or do not want to do anymore the operations just after the receive and related to the delivery of the final data. (i) If no related operations are necessary to deliver the intermediate data, we update the receive to link it directly with root partner (ii) If related operations are necessary, we look for another partner which can fulfill the same tasks. V. E VALUATION In this paper, we assume that the initial public views of the collaborative processes are compatible with each others and that each private view is consistent with the respective behavioral interface definition (i.e., the local choreography model). We further assume the well-behavedness of the change operation in terms of structure and semantics. In [11], the authors distinguish between structural and behavioral compatibility. • Structural compatibility requires that for every message that may be sent, the corresponding interaction partner is able to receive it. In turn, for every message that can be received, the corresponding partner must be able to send such a message • Behavioral compatibility considers behavioral dependencies (i.e., control flow) between different message exchanges within one conversation.
In our propagation mechanism, structural compatibility is preserved. Indeed, according to the change operation type, for each affected partner we add, update, or remove the complement of what has been changed in the modified process (cf. Lemma 1). This means that for each send pattern in one source partner there is the corresponding receive pattern with the expected attributes in the process of the target partner. Now, consider (δ, πp ) being the change operation to be applied to process model πp and (δ, Lp ) the inferred change to be applied to the local view of p. ∆ is the set of inferred changes from (δ, Lp ) to be propagated to its directly affected partners. For each affected partner pi , (δi , Li ) represents the inferred change operation to be propagated to its public view (∆ = ∧i=1..n (δi , Li ), where n is the number of affected partners). Note that the number of inferred structural changes is finite since we only consider propagations to direct partners. In turn, changes that might have structural effects on other partners (transitive relations) are propagated to them by their direct partners. If (δ, Lp ) is invariant, i.e., it does not affect the behavioral interface of p, consistency and compatibility are preserved over the collaborative processes. In addition, since processes as well as the changed fragments are structured, consistency and compatibility relations are reduced to those between the fragments affected by the change. •
•
The INSERT pattern augments the process models of the partners affected by the change with new activities. Further, it does not affect the structural or behavioral relations between the existing activities. However, some direct precedence relations may be transformed into transitive ones. The decomposition of the INSERT pattern results only in INSERT patterns in the public views of the affected partners. According to one partner, the insertion is done with respect to the direct and transitive dependencies with the activities of the same partner. As explained in Section IV, if F represents the fragment to be inserted in Lp , abstri (F) is the fragment to be inserted in Li . The latter has the same behavior as abstri (F) in terms of control flow. Besides, the insertion position is computed according to the transitive preset and postset of Fi with respect to partner i. This conserves the order between the fragments and ensures the behavioral compatibility after the propagation of the INSERT operation. The DELETE pattern reduces the process models of the affected by the change. The reduction is done in a symmetric way on both sides: p and the partners affected. The deletion of an activity on one side results in the deletion of the corresponding a on the other side. Structural and behavioral compatibilities are kept. However, this might result in some issues, i.e., an activity might wait for a data that would never arrive or send a message that might not be used. The solution proposed in Section IV treats a set of use cases where the correlated interactions are updated or deleted accordingly. This does not affect structural and behavioral compatibility of the propagation.
•
As described, the propagation of the REPLACE pattern results in three scenarios; insert, delete, or merge. The merge may reduce or augment the target models of the affected partners. Assume that the merge function γ is correct and idempotent and that it conserves the behavior of the merged fragments. We consider Fi and Fi0 as the fragments to be merged. Then, the behavior of Fi is included in the merge result γ(Fi , Fi0 ), which is also compatible with the behavior of p (changed process) since we merge the abstraction of the changed fragment (cf. Lemma 1).
The consistency between the public views and the private ones of the processes of the affected partners is checked if the negotiations succeed. Each affected partner must adapt its private process with respect to its modified public view. Using consistency rules, each partner can then check locally whether its local process model is consistent with its behavioral interface. More details about consistency checking and validation in choreographies can be found in [1], [8]. VI. R ELATED W ORK [19] proposes four transfer rules to deal with dynamic changes of distributed business processes. These rules use projection/protocol and lifecycle inheritance relations and check whether a changed process is a subclass of the original one. The suggested method only allows for changes that preserve inheritance transformation rules, i.e., changes having internal effects. Therefore, there is neither a need for change propagation nor new agreement on the global protocols since only inheritance-conforming changes are allowed. By contrast, our method supports changes that affect the external behavior of a process, and computes and propagates the respective changes to the affected partners according to a negotiation phase. In [7], the authors consider change propagation in decentralized orchestrations where a centralized process model is split into several distributed partitions. They mainly propagate change operations made on the centralized model to the respective derived decentralized partitions. They use the decentralization function to compute the affected partitions and infer the respective changes to the private and public views. One organization controls the centralized and decentralized models. Hence, it is easier to exactly compute the affected regions and the changes to be applied. This is different from the current work since changes are made by one partner participating in the choreography and then propagated to the other partners. In this work, we consider fully distributed processes where no partner holds informations about another partner’s private view (no centralized process model). Each partner can only see the public parts of the other partners. This leads to a negotiation phase between the affected partners and could have transitive structural and semantical effects. In contrast with the cited paper, in this work we take into consideration the semantic issues (transitivity). This problem is not considered when we propagate from a centralized to its decentralized partitions since the changes are made on the
centralized model and considered to be correct. An approach similar to [7] is also presented in [20]. In [4], the authors present DYCHOR, a framework addressing the challenge of change propagation in choreographies. Changes are classified into additive and subtractive, and may have variant or invariant impact on the interactions. DYCHOR uses annotated finite state automata to model choreographies and employs a set of operators to compute the changes to be propagated. In our work, we propose four change patterns which deal with more complex fragments instead of single activities only. This leads to new challenges concerning semantical or structural transitivity effects as well as negotiations with the partners affected by the change. We sketched several semantic transitive effects as well as the solutions to deal with them. The model adopted in this paper makes change propagation more easier since process models are structured and only changed regions are affected. Hence, there is no need for re-computing the whole public views of the processes of affected partners, instead only the affected regions are modified. In [21], the authors address the problem of dynamic changes and particularly version management of process models. In the same context in [22], the authors propose an ontology based framework for decentralized workflow change management and define migration rules to adapt to changes in a dynamic way. In [23], the authors deal with change propagation between semantically overlapping process models for which elementary and complex correspondences have been identified. All these approaches are different but complementary to our work. VII. C ONCLUSION , D ISCUSSION , AND O UTLOOK This paper provides algorithms for propagating process changes in collaborative scenarios involving multiple partners. To stay independent of a particular process specification language, RPST is used to define local and global choreography models. The proposed propagation algorithms consider typical process change patterns such as INSERT, DELETE, REPLACE, and UPDATE, and are evaluated based on their structural and behavioral compatibility. Certain assumptions are made in this paper. First, the proposed algorithms consider the application of one change pattern at a time. However, in practical scenarios, several change patterns might be applied in a combined manner within a change transaction. To incorporate such complex changes, optimizations on the change transactions as suggested in [24] can be utilized to calculate the actual effects of the change transaction. Second, change propagation might become necessary in a transitive way, i.e., several partners might be affected. This can be handled by applying the change propagation procedure depicted in Fig. 4 in an iterative way. However, it must be considered whether the transitive propagation becomes cyclic. In this case, mechanisms such as upper bounds on the number of iterations of propagating changes including rollback mechanisms are conceivable.
Currently, we are integrating change propagation algorithms into our cloud-based process execution engine CPEE (cpee. org). We aim at testing and applying the proposed algorithms in case studies, for example, within the automotive domain. R EFERENCES [1] F. Casati, S. Ceri, B. Pernici, and G. Pozzi, “Workflow evolution,” Data and Knowledge Engineering, vol. 24, no. 3, pp. 211–238, 1998. [2] S. Rinderle, M. Reichert, and P. Dadam, “Correctness criteria for dynamic changes in workflow systems: a survey.” Data and Knowledge Engineering, vol. 50, no. 1, pp. 9–34, 2004. [3] M. Reichert and B. Weber, Enabling Flexibility in Process-Aware Information Systems - Challenges, Methods, Technologies. Springer, 2012. [4] S. Rinderle, A. Wombacher, and M. Reichert, “Evolution of process choreographies in DYCHOR,” in CoopIS’06. LNCS, 2006, pp. 273–290. [5] S. Rinderle, B. Weber, M. Reichert, and W. Wild, “Integrating process learning and process evolution - a semantics based approach,” in Int’l Conference Business Process Management, 2005, pp. 252–267. [6] S. Rinderle, M. Reichert, and P. Dadam, “Flexible support of team processes by adaptive workflow systems.” Distributed and Parallel Databases, vol. 16, no. 1, pp. 91–116, 2004. [7] W. Fdhila, A. Baouab, K. Dahman, C. Godart, O. Perrin, and F. Charoy, “Change propagation in decentralized composite web services,” in CollaborateCom, 2011, pp. 508–511. [8] F. M. Besson, P. M. Leal, and F. Kon, “Towards verification and validation of choreographies,” Department of Computer Science - University of So Paulo, technical research report, 2011. [9] J. Vanhatalo, H. Vlzer, and J. Koehler, “The refined process structure tree,” in Business Process Management, vol. 5240, 2008, pp. 100–115. [10] B. Weber, M. Reichert, and S. Rinderle-Ma, “Change patterns and change support features - enhancing flexibility in process-aware information systems.” Data and Knowledge Engineering, vol. 66, no. 3, pp. 438–466, 2008. [11] G. Decker and M. Weske, “Behavioral consistency for B2B process integration,” in CAiSE. Springer, 2007, pp. 81–95. [12] A. Barros, M. Dumas, and P. Oaks, “Standards for web service choreography and orchestration: Status and perspectives,” in Business Process Management Workshops. Springer. LNCS, 2006, vol. 3812, pp. 61–74. [13] A. Polyvyanyy, L. Garcia-Banuelos, and M. Dumas, “Structuring acyclic process models,” Information Systems, vol. 37, no. 6, pp. 518–538, 2012. [14] R. Milner, M. Tofte, and D. Macqueen, The Definition of Standard ML. Cambridge, MA, USA: MIT Press, 1997. [15] B. F. van Dongen, W. M. P. van der Aalst, and H. M. W. Verbeek, “Verification of EPCs: Using reduction rules and petri nets,” in CAiSE. Springer, 2005, pp. 372–386. [16] R. Dijkman, “Diagnosing Differences between Business Process Models,” in Proceedings of the 6th Int’l Conference on Business Process Management (BPM 2008). Springer, LNCS, 2008, pp. 261–277. [17] M. L. Rosa, M. Dumas, R. Uba, and R. M. Dijkman, “Business process model merging : An approach to business process consolidation,” ACM Transactions on Software Engineering and Methodology, 2012. [18] F. Gottschalk, W. M. Aalst, and M. H. Jansen-Vullers, “Merging eventdriven process chains,” in OTM ’08. Springer, 2008, pp. 418–426. [19] W. M. P. van der Aalst and T. Basten, “Inheritance of workflows: an approach to tackling problems related to change,” Theor. Comput. Sci., vol. 270, no. 1-2, pp. 125–203, 2002. [20] M. Reichert and T. Bauer, “Supporting ad-hoc changes in distributed workflow management systems.” in CoopIS’07, vol. 4803. Springer, 2007, pp. 150–168. [21] J. M. K¨uster, C. Gerth, and G. Engels, “Dynamic computation of change operations in version management of business process models,” in ECMFA’10. Springer, 2010, pp. 201–216. [22] V. Atluri and S. A. Chun, “Handling dynamic changes in decentralized workflow execution environments,” in DEXA’03, 2003, pp. 813–825. [23] M. Weidlich, J. Mendling, and M. Weske, “Propagating changes between aligned process models,” Journal of Systems and Software, vol. 85, no. 8, pp. 1885 – 1898, 2012. [24] S. Rinderle, M. Reichert, M. Jurisch, and U. Kreher, “On representing, purging, and utilizing change logs in process management systems,” in Business Process Management, 2006, pp. 241–256.