Experiences in enhancing existing BPM Toolswith BPEL Import and Export
Jan Mendling Vienna University of Economics
Kristian Bisgaard Lassen University of Aarhus
Uwe Zdun Vienna University of Technology
Folie 2
You have to support BPEL…
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>
2. Enhance…
Export
Import
1. Native BPEL Engine
Store
Load
No arbitrary
cycles
Folie 3
Agenda
1. How to design BPEL import and export?
2. How to apply Transformation Strategies?
3. Beyond transformation strategies
4. Conclusion
Folie 4
Agenda
How to design BPEL import and export?
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+Links
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
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 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
Transformation Strategies for Export
assign
assign
assign
assign
flow
sequence
sequence
link
assign
assign
target
assign
assign
source
Graph
flow
link
assign
assign
link
link
...
empty
target
target
source
...
Structure-Maximization
Element-Preservation
flow
link
link
link
...
assign
target
target
source
Element-Minimization
assign
target
source
source
flow
sequence
sequence
assign
assign
assign
assign
Structure-Identification
Folie 10
Transformation Strategies for Import
flow
sequence
sequence
link
assign
assign
target
assign
assign
sourceassign
assign
assign
assign
assign
assign
assign
assign
assign
assign
assign
assign
BPEL Process Flattening Hierarchy-Preservation Hierarchy-Maximization
Folie 11
Agenda
How to apply Transformation Strategies?
Folie 12
Proprietary Workflow Designer
Element Preservation Strategy
Folie 13
Extra Elements of the Workflow Designer
• Sub-workflows
• Paste the subprocess into a BPEL scope
• Specific predefined step actions
• Abstract step action class as default
• Overridden for specific step actions, e.g., BPELJ for Inline Java
• Additional Step Node attributes
• Annotated to BPEL activities as attributes in a different namespace
Folie 14
Illustration of the export
Folie 15
Agenda
Beyond transformation strategies
Folie 16
Further Approaches for Graph to BPEL
• C. Ouyang, M. Dumas, S. Breutel, and A. H.M. ter Hofstede. Translating Standard
Process Models to BPEL. In Proceedings of the 18th International Conference on
Advanced Information Systems Engineering (CAiSE), LNCS, 2006.
• Idea:
• Calculate precondition sets for every activity
• Send completion message to itself
• Event handlers activate the next activity
• Limitations:
• Re-Import of such BPEL is difficult
Folie 17
Further Approaches for Graph to BPEL II
• Zhao, W., Hauser, R., Bhattacharya, K., Bryant, B. R., and Cao, F. (2006). Compiling
business processes: untangling unstructured loops in irreducible flow graphs. Int.
Journal of Web and Grid Services, 2(1):68-91.
• Idea:
• Transform unstructured to structured models
• Limitations:
• Not always possible if concurrency is in the model
Folie 18
Agenda
Conclusion
Folie 19
Conclusion
• Transformation strategies…
• provide systematic initial approach
• have to be extended and adapted
• BPEL not directly suited for exchanging workflow models
• BPEL extensions like BPEL4People, BPEL-SPE, BPELJ help
• Further information has to be annotated
Folie 20
Agenda
Thank you