Service Referrals in BPEL-based Choreographies1. Second Young Researchers’ Workshop on Service Oriented Computing
YR-SOC 2007 – http://www.yrsoc.org
Service Referrals in
BPEL-based Choreographies
Gero Decker1, Oliver Kopp2, Frank Puhlmann1
2. Agenda
Choreographies
BPEL-based Choreographies
Service Referrals in BPEL4Chor
Presented by Oliver Kopp 2
© Gero Decker, Oliver Kopp, Frank Puhlmann
3. The Reseller Choreography
Interconnection model Interaction model
Presented by Oliver Kopp 3
© Gero Decker, Oliver Kopp, Frank Puhlmann
4. How to derive the orchestration?
Choreography Orchestration
Customer Reseller
Choose
manufacturer
Place Place pro-
invoice req. duct req.
Payment Org. Manufacturer
Presented by Oliver Kopp 4
© Gero Decker, Oliver Kopp, Frank Puhlmann
5. Reseller Choreography in BPEL4Chor
Resellers's behavior:
Customer Reseller
<receive
name=quot;getOrderquot; />
Send
order
<flow>
Place Place pro-
invoice req. duct req.
<invoke
name=quot;PlaceInvoiceReqquot; />
<invoke
name=quot;PlaceProductReqquot; />
Receive
invoice
</flow>
Receive
Send Send
product
Behavior of the other
invoice product
participants specified
analogous
Payment Org. Manufacturer
Presented by Oliver Kopp 5
© Gero Decker, Oliver Kopp, Frank Puhlmann
6. The interconnections
The interconnection is formed
Customer Reseller
by links:
<messageLink
Send
order
name=quot;productRequestLinkquot;
Place Place pro-
invoice req. duct req.
sender=quot;resellerquot;
sendActivity=
quot;PlaceProductRequestquot;
receiver=quot;manufacturerquot;
Receive
invoice
receiveActivity=quot;getReqquot;
messageName=quot;productReqquot;
Receive
Send Send
product
invoice product
participantRefs=quot;customerquot;
/>
Payment Org. Manufacturer
Presented by Oliver Kopp 6
© Gero Decker, Oliver Kopp, Frank Puhlmann
7. The execution
Mapping message links to porttypes / operations
quot;Groundingquot;
<messageLink
Customer Reseller
name=quot;productRequestLinkquot;
portType=quot;man:manufacturerPTquot;
Send
operation=quot;placeProductRequestquot;
order
Place Place pro-
/>
invoice req. duct req.
<participantRef name=quot;customerquot;
WSDLproperty=
quot;msgs:customerPropertyquot; />
Receive
invoice
Receive
Send Send
product
invoice product
Payment Org. Manufacturer
Presented by Oliver Kopp 7
© Gero Decker, Oliver Kopp, Frank Puhlmann
8. The complete picture of BPEL4Chor
Presented by Oliver Kopp 8
© Gero Decker, Oliver Kopp, Frank Puhlmann
9. Reseller Choreography in Pi-Calculus
Pi-Calculus because of link-passing mobility
The complete system consists of the four
participants executing in parallel
def
SY S = (C j R j P j M )
Presented by Oliver Kopp 9
© Gero Decker, Oliver Kopp, Frank Puhlmann
10. The Customer
Customer creates
Customer Reseller
oc order and callback-
channels ( )
Send
order
Uses public order
Place Place pro-
invoice req. duct req.
channel “oc ”
def
C = (ºorder ; ic; pc)
ic
Receive
ochorder; ic; pci:
invoice
(ic(invoice) j
Receive
Send Send
product
pc(product))
invoice product
pc
Payment Org. Manufacturer
Presented by Oliver Kopp 10
© Gero Decker, Oliver Kopp, Frank Puhlmann
11. The Reseller
Reseller sends
Customer Reseller
customer’s callback-
oc
channels
Send
order
Uses public invoice and
Place Place pro-
invoice req. duct req.
payment request
channels
prc
irc
Receive def
R = (ºinvoiceReq; productReq)
invoice
oc(order ; ic; pc):
Receive
(irchinvoiceReq; ici j
Send Send
product
invoice product
prchproductReq; pci )
Payment Org. Manufacturer
Presented by Oliver Kopp 11
© Gero Decker, Oliver Kopp, Frank Puhlmann
12. The Manufacturer and the Payment Organization
Receive the callback-
Customer Reseller
channel via public channel
Create invoice/product
Send
Use the callback-channel to
order
Place Place pro-
invoice req. duct req.
send invoice/product
def
P = (ºinvoice)
prc
irc
irc(invoiceReq; ic):
ic
Receive
ichinvoicei
invoice
Receive
def
Send Send
product
M = (ºproduct)
invoice product
prc(productReq; pc):
pc
pchproducti
Payment Org. Manufacturer
Presented by Oliver Kopp 12
© Gero Decker, Oliver Kopp, Frank Puhlmann
13. Summary
BPEL4Chor as interconnection model
Link passing mobility as first-class citizen
Pi-Calculus as formalism
Ongoing work
Complete mapping: BPEL4Chor to pi-calculus
Interaction models vs. interconnection models
Conformance
Presented by Oliver Kopp 13
© Gero Decker, Oliver Kopp, Frank Puhlmann