analyzing interacting bpel processes - an overview of the chair’s work
DESCRIPTION
Workshop presentation given by Niels Lohmann on August 30, 2006 in Eindhoven, The Netherlands at the Berlin-Eindhoven Service Technology Colloquium 2006.TRANSCRIPT
30.08.2006
Analyzing InteractingBPEL Processes
An Overview of the Chair’s Work
B!E!S!T Colloquium, Eindhoven
Niels Lohmann
[email protected]://www.informatik.hu-berlin.de/~nlohmann
B!E!S!T Colloquium
, Eindhoven
2
Analyzing Interacting BPEL Processes
B!E!S!T Colloquium
, Eindhoven
2
Analyzing Interacting BPEL Processes
! choreography of BPEL processes may cause nontrivial communication
! arising question:Do the involved processes interact properly?
B!E!S!T Colloquium
, Eindhoven
3
Examples for ill-designed Interaction
! a sent message may not be received:
B!E!S!T Colloquium
, Eindhoven
3
Examples for ill-designed Interaction
! a sent message may not be received:
! processes run into a deadlock:
B!E!S!T Colloquium
, Eindhoven
3
Examples for ill-designed Interaction
! a sent message may not be received:
! processes run into a deadlock:
B!E!S!T Colloquium
, Eindhoven
4
Translating BPEL to open Workflow Nets
!"#$#%&#''()"*+#",%+-./$01*23#"/''(2"*45(#./$01*23#"64/''2(#")*%2+./728%+/''&)"%)97#./&)"/:!;"#$#%&#:
B!E!S!T Colloquium
, Eindhoven
4
Translating BPEL to open Workflow Nets
! pattern-based translation:BPEL activity ! Petri net pattern
init
final
?login
stop
stoppedlogin
(customer)
!"#$#%&#''()"*+#",%+-./$01*23#"/''(2"*45(#./$01*23#"64/''2(#")*%2+./728%+/''&)"%)97#./&)"/:!;"#$#%&#:
B!E!S!T Colloquium
, Eindhoven
4
Translating BPEL to open Workflow Nets
! pattern-based translation:BPEL activity ! Petri net pattern
! optimized translation is implemented in tool BPEL2oWFN
init
final
?login
stop
stoppedlogin
(customer)
!"#$#%&#''()"*+#",%+-./$01*23#"/''(2"*45(#./$01*23#"64/''2(#")*%2+./728%+/''&)"%)97#./&)"/:!;"#$#%&#:
B!E!S!T Colloquium
, Eindhoven
5
Open Workflow Net: An Example
p0
?login
?order ?terms
!confirm !invoice
p6 p7
! Petri net
B!E!S!T Colloquium
, Eindhoven
5
Open Workflow Net: An Example
p0
?login
?order
login
?terms
!confirm !invoice
order
p6 p7
terms
confirm
invoice
! Petri net
B!E!S!T Colloquium
, Eindhoven
5
Open Workflow Net: An Example
p0
?login
?order
login
?terms
!confirm !invoice
order
p6 p7
terms
confirm
invoice
! Petri net
! enhanced with interface
B!E!S!T Colloquium
, Eindhoven
5
Open Workflow Net: An Example
p0
?login
?order
login
?terms
!confirm !invoice
order
p6 p7
terms
confirm
invoice
! Petri net
! enhanced with interface
! initial markinghere: [p0]
B!E!S!T Colloquium
, Eindhoven
5
Open Workflow Net: An Example
p0
?login
?order
login
?terms
!confirm !invoice
order
p6 p7
terms
confirm
invoice
! Petri net
! enhanced with interface
! initial markinghere: [p0]
! final markinghere: [p6, p7]
B!E!S!T Colloquium
, Eindhoven
5
Open Workflow Net: An Example
p0
?login
?order
login
?terms
!confirm !invoice
order
p6 p7
terms
confirm
invoice
! Petri net
! enhanced with interface
! initial markinghere: [p0]
! final markinghere: [p6, p7]
B!E!S!T Colloquium
, Eindhoven
6
Controllability
! interaction steps to reach final marking
p0
?login
?order
login
?terms
!confirm !invoice
order
p6 p7
terms
confirm
invoice
!login
!terms
!order
?confirm
?invoice
B!E!S!T Colloquium
, Eindhoven
6
Controllability
! interaction steps to reach final marking
p0
?login
?order
login
?terms
!confirm !invoice
order
p6 p7
terms
confirm
invoice
!login
!terms
!order
?confirm
?invoice
B!E!S!T Colloquium
, Eindhoven
6
Controllability
! interaction steps to reach final marking
p0
?login
?order
login
?terms
!confirm !invoice
order
p6 p7
terms
confirm
invoice
!login
!terms
!order
?confirm
?invoice
B!E!S!T Colloquium
, Eindhoven
6
Controllability
! interaction steps to reach final marking
p0
?login
?order
login
?terms
!confirm !invoice
order
p6 p7
terms
confirm
invoice
!login
!terms
!order
?confirm
?invoice
B!E!S!T Colloquium
, Eindhoven
6
Controllability
! interaction steps to reach final marking
p0
?login
?order
login
?terms
!confirm !invoice
order
p6 p7
terms
confirm
invoice
!login
!terms
!order
?confirm
?invoice
B!E!S!T Colloquium
, Eindhoven
6
Controllability
! interaction steps to reach final marking
p0
?login
?order
login
?terms
!confirm !invoice
order
p6 p7
terms
confirm
invoice
!login
!terms
!order
?confirm
?invoice
B!E!S!T Colloquium
, Eindhoven
6
Controllability
! interaction steps to reach final marking
p0
?login
?order
login
?terms
!confirm !invoice
order
p6 p7
terms
confirm
invoice
!login
!terms
!order
?confirm
?invoice
B!E!S!T Colloquium
, Eindhoven
6
Controllability
! interaction steps to reach final marking
p0
?login
?order
login
?terms
!confirm !invoice
order
p6 p7
terms
confirm
invoice
!login
!terms
!order
?confirm
?invoice
net is controllable
B!E!S!T Colloquium
, Eindhoven
7
Interaction Graph (IG)
choice
IG
B!E!S!T Colloquium
, Eindhoven
7
Interaction Graph (IG)
! a canonically generated partner choice
IG
B!E!S!T Colloquium
, Eindhoven
7
Interaction Graph (IG)
! a canonically generated partner choice
IG
B!E!S!T Colloquium
, Eindhoven
7
Interaction Graph (IG)
! a canonically generated partner
! empty if none exists
choice
IG
B!E!S!T Colloquium
, Eindhoven
7
Interaction Graph (IG)
! a canonically generated partner
! empty if none exists
! IG can be automatically generated with tool Fiona
choice
IG
B!E!S!T Colloquium
, Eindhoven
7
Interaction Graph (IG)
! a canonically generated partner
! empty if none exists
! IG can be automatically generated with tool Fiona
choice
IG
B!E!S!T Colloquium
, Eindhoven
8
Operating Guideline (OG)
! represents all partners of a service
OG
B!E!S!T Colloquium
, Eindhoven
8
Operating Guideline (OG)
! represents all partners of a service
OG
B!E!S!T Colloquium
, Eindhoven
8
Operating Guideline (OG)
! represents all partners of a service
OG
B!E!S!T Colloquium
, Eindhoven
8
Operating Guideline (OG)
! represents all partners of a service
OG
B!E!S!T Colloquium
, Eindhoven
8
Operating Guideline (OG)
! represents all partners of a service
! nodes are annotated
OG
B!E!S!T Colloquium
, Eindhoven
8
Operating Guideline (OG)
! represents all partners of a service
! nodes are annotated
! partner = subgraph with fulfilling annotations
OG
B!E!S!T Colloquium
, Eindhoven
8
Operating Guideline (OG)
! represents all partners of a service
! nodes are annotated
! partner = subgraph with fulfilling annotations
! OG can be automatically generated with tool Fiona
OG
B!E!S!T Colloquium
, Eindhoven
8
Operating Guideline (OG)
! represents all partners of a service
! nodes are annotated
! partner = subgraph with fulfilling annotations
! OG can be automatically generated with tool Fiona
OG
B!E!S!T Colloquium
, Eindhoven
9
Example
B!E!S!T Colloquium
, Eindhoven
10
Online Shop
yes no
B!E!S!T Colloquium
, Eindhoven
10
Online Shop
yes no
B!E!S!T Colloquium
, Eindhoven
10
Online Shop
yes no
B!E!S!T Colloquium
, Eindhoven
10
Online Shop
yes no
B!E!S!T Colloquium
, Eindhoven
10
Online Shop
yes no
B!E!S!T Colloquium
, Eindhoven
10
Online Shop
yes no
B!E!S!T Colloquium
, Eindhoven
10
Online Shop
yes no
B!E!S!T Colloquium
, Eindhoven
10
Online Shop
yes no
B!E!S!T Colloquium
, Eindhoven
10
Online Shop
yes no
B!E!S!T Colloquium
, Eindhoven
10
Online Shop
yes no
B!E!S!T Colloquium
, Eindhoven
11
Generated oWFN
! generated by BPEL2oWFN
! 64 places! 4 input places! 3 output places
! 74 transitions
! 226 arcs
B!E!S!T Colloquium
, Eindhoven
11
Generated oWFN
! generated by BPEL2oWFN
! 64 places! 4 input places! 3 output places
! 74 transitions
! 226 arcs
B!E!S!T Colloquium
, Eindhoven
12
! IG not empty:Online Shop is controllable
IG and OG of Online Shop
IG
B!E!S!T Colloquium
, Eindhoven
12
! IG not empty:Online Shop is controllable
IG and OG of Online Shop
IG
B!E!S!T Colloquium
, Eindhoven
12
! IG not empty:Online Shop is controllable
! generated partner behaves as expected
IG and OG of Online Shop
IG
B!E!S!T Colloquium
, Eindhoven
12
! generated partner behaves as expected
IG and OG of Online Shop
IG
B!E!S!T Colloquium
, Eindhoven
12
! generated partner behaves as expected
IG and OG of Online Shop
IG
B!E!S!T Colloquium
, Eindhoven
12
IG and OG of Online Shop
IG OG
B!E!S!T Colloquium
, Eindhoven
13
Modified Shop
yes no
B!E!S!T Colloquium
, Eindhoven
13
Modified Shop
yes no
B!E!S!T Colloquium
, Eindhoven
14
IG and OG of Modified Shop
! Modified Shop is still controllable
IG
B!E!S!T Colloquium
, Eindhoven
14
IG and OG of Modified Shop
! Modified Shop is still controllable
! generated partner eventually aborts
IG
B!E!S!T Colloquium
, Eindhoven
14
IG and OG of Modified Shop
! Modified Shop is still controllable
! generated partner eventually aborts
IG
B!E!S!T Colloquium
, Eindhoven
14
IG and OG of Modified Shop
! Modified Shop is still controllable
! generated partner eventually aborts
! Do all partners behave in this way?
IG
B!E!S!T Colloquium
, Eindhoven
14
IG and OG of Modified Shop
!all partners will eventually send an abort message
IG OG
B!E!S!T Colloquium
, Eindhoven
14
IG and OG of Modified Shop
!all partners will eventually send an abort message
!no partner will ever receive an invoice
IG OG
B!E!S!T Colloquium
, Eindhoven
14
IG and OG of Modified Shop
!all partners will eventually send an abort message
!no partner will ever receive an invoice
!modified shop is useless! But why..?
IG OG
B!E!S!T Colloquium
, Eindhoven
15
Modified Shop
yes no
decision notcommunicated!
B!E!S!T Colloquium
, Eindhoven
15
Modified Shop
yes no
decision notcommunicated!
B!E!S!T Colloquium
, Eindhoven
15
Modified Shop
yes no
decision notcommunicated!
B!E!S!T Colloquium
, Eindhoven
16
Conclusion
! small changes can make BPEL processes useless
! finding these bugs is nontrivial
! tool chain BPEL2oWFN ! Fiona automates verification
B!E!S!T Colloquium
, Eindhoven
17
Open Tasks
! map counterexamples back to BPEL
B!E!S!T Colloquium
, Eindhoven
17
Open Tasks
! map counterexamples back to BPEL
! add data aspects to model
B!E!S!T Colloquium
, Eindhoven
17
Open Tasks
! map counterexamples back to BPEL
! add data aspects to model
! implementation of existing results for cyclic processes
B!E!S!T Colloquium
, Eindhoven
17
Open Tasks
! map counterexamples back to BPEL
! add data aspects to model
! implementation of existing results for cyclic processes
Thank you very much!