transformation strategies between block-oriented and graph-oriented process modeling languages
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 PresentationTRANSCRIPT
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)
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.
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
Folie 4
Agenda
Graph-oriented versus Block-oriented Process Modeling
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>
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>
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
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
Folie 9
Agenda
Strategies for BPEL to Process Graph Transformation
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
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
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
Folie 13
Agenda
Strategies for Process Graph to BPEL Transformation
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
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
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
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
Folie 18
Agenda
Conclusion
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
Folie 20
Agenda
Thank you