Transformation Strategies between Block-Oriented and Graph-Oriented Process Modeling Languages

20
Transformation Strategies between Block-Oriented and Graph-Oriented Process Modeling Languages Jan Mendling Vienna University of Economics (WU Wien) Kristian Bisgaard Lassen University of Aarhus Uwe Zdun Vienna University of Economics (WU Wien)

description

Transformation Strategies between Block-Oriented and Graph-Oriented Process Modeling Languages. Jan Mendling Vienna University of Economics (WU Wien) Kristian Bisgaard LassenUniversity of Aarhus Uwe ZdunVienna University of Economics (WU Wien). Recent Papers. X to BPEL: - PowerPoint PPT Presentation

Transcript of Transformation Strategies between Block-Oriented and Graph-Oriented Process Modeling Languages

Page 1: Transformation Strategies between  Block-Oriented and Graph-Oriented  Process Modeling Languages

Transformation Strategies between Block-Oriented and Graph-Oriented Process Modeling Languages

Jan Mendling Vienna University of Economics (WU Wien)

Kristian Bisgaard Lassen University of Aarhus

Uwe Zdun Vienna University of Economics (WU Wien)

Page 2: Transformation Strategies between  Block-Oriented and Graph-Oriented  Process Modeling Languages

Folie 2

Recent Papers

• X to BPEL:• Baina et al.: Model-Driven Web Service Development. In CAiSE 2004.

• Gardner. UML Modelling of Automated Business Processes with a Mapping to BPEL4WS. In

First European Workshop on Object Orientation and Web Services at ECOOP 2003.

• Hofreiter and Huemer. Transforming UMM Business Collaboration Models to BPEL. OTM Workshops 2004.

• Mendling and Hafner. From Inter-Organizational Workflows to Process Execution: Generating BPEL from WS-CDL. OTM Workshops 2005.

• Moon et al. Transformation Algorithms between BPEL4WS and BPML for the Executable Business Process. In WETICE 2004.

• van der Aalst, Jørgensen and Lassen. Let’s Go All the Way: From Requirements via Colored Workflow Nets to a BPEL Implementation of

a New Bank System. In CoopIS 2005.

• White. Business Process Modeling Notation (BPMN). Specification, BPMI.org, 2004.

• Mendling, J. Ziemann: Transformation of BPEL Processes to EPCs. In EPK 2005.

• Koschmider, von Mevius: A Petri Net Based Approach for Process Model Driven Deduction of BPEL Code. OTM Workshops 2005.

• BPEL to Y:• Hinz, Schmidt, and Stahl. Transforming BPEL to Petri Nets. In BPM 2005.

• Mendling and Ziemann. EPK-Visualisierung von BPEL4WS Prozessdefinitionen. In Workshop on Software Reengineering, 2005.

Page 3: Transformation Strategies between  Block-Oriented and Graph-Oriented  Process Modeling Languages

Folie 3

Agenda

1. Graph-oriented versus Block-oriented Process Modeling

2. Strategies for BPEL to Process Graph Transformation

3. Strategies for Process Graph to BPEL Transformation

4. Conclusion

Page 4: Transformation Strategies between  Block-Oriented and Graph-Oriented  Process Modeling Languages

Folie 4

Agenda

Graph-oriented versus Block-oriented Process Modeling

Page 5: Transformation Strategies between  Block-Oriented and Graph-Oriented  Process Modeling Languages

Folie 5

A BPEL Process

001 <process name="purchaseOrderProcess"002 targetNamespace="..."003 xmlns="..."004 xmlns:lns="...">...044 <sequence>045 <receive partnerLink="purchasing"046 portType="lns:purchaseOrderPT"047 operation="sendPurchaseOrder"048 variable="PO">049 </receive>050 <flow>051 <links>052 <link name="ship-to-invoice"/>053 <link name="ship-to-scheduling"/>054 </links>055 <sequence>056 <assign>057 <copy>058 <from variable="PO" part="customerInfo"/>059 <to variable="shippingRequest"060 part="customerInfo"/>061 </copy>062 </assign>063 <invoke partnerLink="shipping"064 portType="lns:shippingPT"065 operation="requestShipping"066 inputVariable="shippingRequest"067 outputVariable="shippingInfo">068 <source linkName="ship-to-invoice"/>069 </invoke>070 <receive partnerLink="shipping"071 portType="lns:shippingCallbackPT"072 operation="sendSchedule"073 variable="shippingSchedule">074 <source linkName="ship-to-scheduling"/>075 </receive>076 </sequence>

077 <sequence>078 <invoke partnerLink="invoicing"079 portType="lns:computePricePT"080 operation="initiatePriceCalculation"081 inputVariable="PO">082 </invoke>083 <invoke partnerLink="invoicing"084 portType="lns:computePricePT"085 operation="sendShippingPrice"086 inputVariable="shippingInfo">087 <target linkName="ship-to-invoice"/>088 </invoke>089 <receive partnerLink="invoicing"090 portType="lns:invoiceCallbackPT"091 operation="sendInvoice"092 variable="Invoice"/>093 </sequence>094 <sequence>095 <invoke partnerLink="scheduling"096 portType="lns:schedulingPT"097 operation="requestProductionScheduling"098 inputVariable="PO">099 </invoke>100 <invoke partnerLink="scheduling"101 portType="lns:schedulingPT"102 operation="sendShippingSchedule"103 inputVariable="shippingSchedule">104 <target linkName="ship-to-scheduling"/>105 </invoke>106 </sequence>107 </flow>108 <reply partnerLink="purchasing"109 portType="lns:purchaseOrderPT"110 operation="sendPurchaseOrder"111 variable="Invoice"/>112 </sequence>113 </process>

Page 6: Transformation Strategies between  Block-Oriented and Graph-Oriented  Process Modeling Languages

Folie 6

A BPEL Process: Structured Activities

001 <process name="purchaseOrderProcess"002 targetNamespace="..."003 xmlns="..."004 xmlns:lns="...">...044 <sequence>045 <receive partnerLink="purchasing"046 portType="lns:purchaseOrderPT"047 operation="sendPurchaseOrder"048 variable="PO">049 </receive>050 <flow>051 <links>052 <link name="ship-to-invoice"/>053 <link name="ship-to-scheduling"/>054 </links>055 <sequence>056 <assign>057 <copy>058 <from variable="PO" part="customerInfo"/>059 <to variable="shippingRequest"060 part="customerInfo"/>061 </copy>062 </assign>063 <invoke partnerLink="shipping"064 portType="lns:shippingPT"065 operation="requestShipping"066 inputVariable="shippingRequest"067 outputVariable="shippingInfo">068 <source linkName="ship-to-invoice"/>069 </invoke>070 <receive partnerLink="shipping"071 portType="lns:shippingCallbackPT"072 operation="sendSchedule"073 variable="shippingSchedule">074 <source linkName="ship-to-scheduling"/>075 </receive>076 </sequence>

077 <sequence>078 <invoke partnerLink="invoicing"079 portType="lns:computePricePT"080 operation="initiatePriceCalculation"081 inputVariable="PO">082 </invoke>083 <invoke partnerLink="invoicing"084 portType="lns:computePricePT"085 operation="sendShippingPrice"086 inputVariable="shippingInfo">087 <target linkName="ship-to-invoice"/>088 </invoke>089 <receive partnerLink="invoicing"090 portType="lns:invoiceCallbackPT"091 operation="sendInvoice"092 variable="Invoice"/>093 </sequence>094 <sequence>095 <invoke partnerLink="scheduling"096 portType="lns:schedulingPT"097 operation="requestProductionScheduling"098 inputVariable="PO">099 </invoke>100 <invoke partnerLink="scheduling"101 portType="lns:schedulingPT"102 operation="sendShippingSchedule"103 inputVariable="shippingSchedule">104 <target linkName="ship-to-scheduling"/>105 </invoke>106 </sequence>107 </flow>108 <reply partnerLink="purchasing"109 portType="lns:purchaseOrderPT"110 operation="sendPurchaseOrder"111 variable="Invoice"/>112 </sequence>113 </process>

Page 7: Transformation Strategies between  Block-Oriented and Graph-Oriented  Process Modeling Languages

Folie 7

Process Graph vs. BPEL control flow

Start

A

Start

B C D

E

F

G

H

I J

End End

Pick

empty empty

Switch

empty

Flow

A

Flow

C D

Sequence

B E

F

G

While

H

Flow

I J

termi-nate

termi-nate

Sequence

Page 8: Transformation Strategies between  Block-Oriented and Graph-Oriented  Process Modeling Languages

Folie 8

Important Properties

• Structured Process Graph

• Acyclic Process Graph

• Structured BPEL control flow

A

B

Sequence

F

c

BA

c

F

Connector Pairs

x

B

x

F

Simple Loop

Page 9: Transformation Strategies between  Block-Oriented and Graph-Oriented  Process Modeling Languages

Folie 9

Agenda

Strategies for BPEL to Process Graph Transformation

Page 10: Transformation Strategies between  Block-Oriented and Graph-Oriented  Process Modeling Languages

Folie 10

1. Flattening Strategy

sequence

while

switch

flow

invoke

invoke

invoke

invoke

invoke

invoke

link

x

x

x

x

Start

End

source

target

Structured BPEL

any BPEL

Page 11: Transformation Strategies between  Block-Oriented and Graph-Oriented  Process Modeling Languages

Folie 11

2. Hierarchy-Preservation Strategy

sequence

while

switch

flow

invoke

invoke

invoke

invoke

invoke

invoke

link

x

x

End

source

target

Structured BPEL

any BPEL

x

x

Start

End

Start

End

Start

StartEnd

Page 12: Transformation Strategies between  Block-Oriented and Graph-Oriented  Process Modeling Languages

Folie 12

3. Hierarchy-Maximization Strategy

End

Start

sequence

while

switch

flow

invoke

invoke

invoke

invoke

invoke

invoke

link

x

x

source

target

Structured BPEL

any BPEL

x

x

Start

End

Start

End

Start

End

Page 13: Transformation Strategies between  Block-Oriented and Graph-Oriented  Process Modeling Languages

Folie 13

Agenda

Strategies for Process Graph to BPEL Transformation

Page 14: Transformation Strategies between  Block-Oriented and Graph-Oriented  Process Modeling Languages

Folie 14

1. Element-Preservation Strategy

flow

link

link

empty

empty

invoke

invoke

x

x

x

x

Start

End

Structured P-Graph

Acyclic P-Graph

any P-Graph

Page 15: Transformation Strategies between  Block-Oriented and Graph-Oriented  Process Modeling Languages

Folie 15

2. Element-Minimization Strategy

flow

link

link

invoke

invoke

invoke

invoke

x

x

x

x

Start

End

Structured P-Graph

Acyclic P-Graph

any P-Graph

Page 16: Transformation Strategies between  Block-Oriented and Graph-Oriented  Process Modeling Languages

Folie 16

3. Structure-Identification Strategy

sequence

while

switch

flow

invoke

invoke

invoke

invoke

invoke

invoke

x

x

x

x

Start

End

Structured P-Graph

Acyclic P-Graph

any P-Graph

Page 17: Transformation Strategies between  Block-Oriented and Graph-Oriented  Process Modeling Languages

Folie 17

4. Structure-Maximization Strategy

sequence

while

switch

flow

invoke

invoke

invoke

invoke

invoke

invoke

link

x

x

x

x

Start

End

source

target

Structured P-Graph

Acyclic P-Graph

any P-Graph

Page 18: Transformation Strategies between  Block-Oriented and Graph-Oriented  Process Modeling Languages

Folie 18

Agenda

Conclusion

Page 19: Transformation Strategies between  Block-Oriented and Graph-Oriented  Process Modeling Languages

Folie 19

Conclusion

BPEL to Process Graph

1. Flattening Structured BPEL any BPEL

2. Hierarchy-Preservation

3. Hierarchy-Maximization

Structured BPEL any BPEL

Structured BPEL any BPEL

Process GraphTo BPEL

1. Element-Preservation

2. Element-Minimization

3. Structure-Identification

4. Structure-Maximization

Structured P-Graph Acyclic P-Graph any P-Graph

Structured P-Graph Acyclic P-Graph any P-Graph

Structured P-Graph Acyclic P-Graph any P-Graph

Structured P-Graph Acyclic P-Graph any P-Graph

Page 20: Transformation Strategies between  Block-Oriented and Graph-Oriented  Process Modeling Languages

Folie 20

Agenda

Thank you