Elements of Web Service Choreography
description
Transcript of Elements of Web Service Choreography
![Page 1: Elements of Web Service Choreography](https://reader033.fdocuments.net/reader033/viewer/2022061300/54c7667e4a7959b9608b457b/html5/thumbnails/1.jpg)
Elements of Web Services Choreography
Jean-Jacques Dubray
WS-CHOR f2f 3/13/03
Redwood Shores, CA
![Page 2: Elements of Web Service Choreography](https://reader033.fdocuments.net/reader033/viewer/2022061300/54c7667e4a7959b9608b457b/html5/thumbnails/2.jpg)
Bio
• Got interested by B2B, BPM and XML in 1998 at NEC System Laboratories
• 1999 - eXcelon to develop a B2B Integration Server based on a Business Process Engine
• 2001 - Eigner (PLM vendor) to design next generation architecture
• Contributor to OAG (IF), ebXML (BPSS), and BPML (ebXML binding)
• Represent no particular interest, just want to learn, share ideas and experiences
![Page 3: Elements of Web Service Choreography](https://reader033.fdocuments.net/reader033/viewer/2022061300/54c7667e4a7959b9608b457b/html5/thumbnails/3.jpg)
Outline
• Introduction• Paradigm Shifts• WS-Choreography and SOA• Collaboration, Choreography and Orchestration• Elements of WS-Choreography
– Message Exchange Patterns– Choreography protocol– Transactional behavior– Message content– Control flow– Technical Binding
• Conclusions
![Page 4: Elements of Web Service Choreography](https://reader033.fdocuments.net/reader033/viewer/2022061300/54c7667e4a7959b9608b457b/html5/thumbnails/4.jpg)
Introduction
• XML, Web Service and BPM will revolutionize the way we built applications
• Applications as we know it will disappear– 1990-1999 looking for a better way to build
applications (CORBA/DCOM, J2EE, but also EDOC, BOCA, …)
– 2000-2010 found the better way
• Towards a new “component model”: SOA
![Page 5: Elements of Web Service Choreography](https://reader033.fdocuments.net/reader033/viewer/2022061300/54c7667e4a7959b9608b457b/html5/thumbnails/5.jpg)
Paradigm Shifts
• Can the web do for applications what it had done for humans?– From a given application access any service (data,
transaction, computation) regardless of its location• Can the web give us hints on a better application
model?– Loosely coupled, plug & play, Message based– REST?
• Meta, Meta, Meta– Current programming languages show lots of
limitations when developing business applications (e.g Java/J2EE, C#/.NET)
![Page 6: Elements of Web Service Choreography](https://reader033.fdocuments.net/reader033/viewer/2022061300/54c7667e4a7959b9608b457b/html5/thumbnails/6.jpg)
WS-Choreography is at the convergence of
• B2B
• EAI
• Distributed computing model
• Applications models (s.a. J2ee and .NET)
![Page 7: Elements of Web Service Choreography](https://reader033.fdocuments.net/reader033/viewer/2022061300/54c7667e4a7959b9608b457b/html5/thumbnails/7.jpg)
WS-Choreography and SOA
Request
Web ServicesProviderResponse
InternetWeb ServicesProvider
J2EE™AppServer .NET
SOAP Messages
This is the WRONGPicture for SOA
This is the WRONGPicture for SOA
![Page 8: Elements of Web Service Choreography](https://reader033.fdocuments.net/reader033/viewer/2022061300/54c7667e4a7959b9608b457b/html5/thumbnails/8.jpg)
What is a Service?
General Ledger
OrderManagement
ReceivingInventory
HumanResources
CustomerService
AccountsReceivable
AccountsPayable
Production
SyncPersonnel
Load Receivable
Load Payable
Sync EmployeeWorkSchedule
Add SalesOrder
Sync SalesOrder
Sync Party
Sync I
temMas
ter
IssueInv
entor
yMov
emen
tCreate
ProductionOrderPost JournalEntry
Sync ChartOfAccounts
Sync ExchangeRateGet PickList
Update PickList
Show PickList
Update SalesOrder
Sync ItemMaster
Receive
Inven
toryM
ovem
ent
OAGIS 8.0 Scenario 41
This is A
Service
This is A
Service
![Page 9: Elements of Web Service Choreography](https://reader033.fdocuments.net/reader033/viewer/2022061300/54c7667e4a7959b9608b457b/html5/thumbnails/9.jpg)
ERP
ManufacturingCapacity Analysis
Manufacturing Execution (MES)
Manufacturing/Production
Planning
Sync DispatchList
Get DispatchList
Show DispatchList
Sync ItemMaster
Sync ProductionOrder
Sync Routing
Sync BillOfMaterial
Sync ItemMaster
Sync ProductionOrder
Sync Routing
Sync BillOfMaterialS
ync Item
Syn
c Pro
dord
er
Syn
c Rou
ting
Syn
c BO
M
Co
nfirm
Invento
ryIssue
Up
date
WIP
Con
firm
Up
date
WIP
Con
firm
Co
nfirm
Invento
ryIssue
SOA’s Foundation is “Peer-to-Peer”
OAGIS 8.x Scenario 50
No ApplicationOr Corporation
Boundaries
![Page 10: Elements of Web Service Choreography](https://reader033.fdocuments.net/reader033/viewer/2022061300/54c7667e4a7959b9608b457b/html5/thumbnails/10.jpg)
Intra / Inter CompanyMessage Exchange
• Message exchange between corporation boundaries is sufficiently different to justify special treatments:– State alignment (no shared “memory”)– Legal aspects (non-repudiation)
![Page 11: Elements of Web Service Choreography](https://reader033.fdocuments.net/reader033/viewer/2022061300/54c7667e4a7959b9608b457b/html5/thumbnails/11.jpg)
SOA as an Application Model (MVC Revisited)
ERPModel
PLM1Model
PLM2Model
Process EngineProcess Engine
Task EngineTask Engine
ThinFat
Other
ThinFat
OtherFirewall
Process & DataFederation
Process & DataFederation
![Page 12: Elements of Web Service Choreography](https://reader033.fdocuments.net/reader033/viewer/2022061300/54c7667e4a7959b9608b457b/html5/thumbnails/12.jpg)
Key Takeaway
• Ws-chor is a major enabler of SOA
• Ws-chor foundation is peer-to-peer
![Page 13: Elements of Web Service Choreography](https://reader033.fdocuments.net/reader033/viewer/2022061300/54c7667e4a7959b9608b457b/html5/thumbnails/13.jpg)
Collaboration, Executable Business Processes and Services
Buyer Supplier(Self)
Order Entry
POAckPO
BTA1
OpA1
POAckPO
Manager
OpA2
Salesorder
Start
Wit1
POPO
BillingROLEROLE
Executable Business Process
MessageExchangeMessageExchange
B2BCollaboration
B2BCollaboration
![Page 14: Elements of Web Service Choreography](https://reader033.fdocuments.net/reader033/viewer/2022061300/54c7667e4a7959b9608b457b/html5/thumbnails/14.jpg)
Collaboration And Executable Business Process
• Both are state machine
• A collaboration has no engine associated with it (nothing is in the middle)– It is merely the execution of activities of the
executable business processes in each party that advances the state of the collaboration
![Page 15: Elements of Web Service Choreography](https://reader033.fdocuments.net/reader033/viewer/2022061300/54c7667e4a7959b9608b457b/html5/thumbnails/15.jpg)
Collaboration And Executable Business Processes
• The Process Engine is responsible for:– Mapping (many-to-one-one-to-many)– Decoupling services via message routing
• sequence, flow, switch, while
– Monitoring (coupled) interaction between services to advance the state of the process instance
• A Collaboration “service” is responsible for ensuring that an incoming/outgoing message is expected at this point in time– No mapping, no routing, no “advancement”
![Page 16: Elements of Web Service Choreography](https://reader033.fdocuments.net/reader033/viewer/2022061300/54c7667e4a7959b9608b457b/html5/thumbnails/16.jpg)
(Business) Components a.k.a. Services
Buyer Supplier(Self)
Order Entry
POAckPO
BTA1
OpA1
POAckPO
Manager
OpA2
Salesorder
Start
Wit1
POPO
Billing
ProcessPO
ProcessPO
ReviewPO
Task
ReviewPO
Task
ProcessSalesOrder
ProcessSalesOrder
OrchestrationOrchestration
MapRouteMap
Route
![Page 17: Elements of Web Service Choreography](https://reader033.fdocuments.net/reader033/viewer/2022061300/54c7667e4a7959b9608b457b/html5/thumbnails/17.jpg)
Choreography and Orchestration
• Business component can exhibit a long running behavior and looking from the perspective of such component, the flow of messages between itself and other components can also be expressed using a meta language.– This is orchestration
• The confusion is that Components are typically very coarse and can directly be exposed to partners. The long-running behavior might also be complete.
![Page 18: Elements of Web Service Choreography](https://reader033.fdocuments.net/reader033/viewer/2022061300/54c7667e4a7959b9608b457b/html5/thumbnails/18.jpg)
Choreography and Orchestration
Eigner PLM SAPBPM
SyncBOM
Sync Item
Sync BOM
TransformRoute
exists?
Create BOM
Update BOM
noyes
Create History
[any error]
[for each]
SuccessFailure
![Page 19: Elements of Web Service Choreography](https://reader033.fdocuments.net/reader033/viewer/2022061300/54c7667e4a7959b9608b457b/html5/thumbnails/19.jpg)
Key Takeaway
• ws-chor applies to Collaboration and executable business processes
• Orchestration might be different
![Page 20: Elements of Web Service Choreography](https://reader033.fdocuments.net/reader033/viewer/2022061300/54c7667e4a7959b9608b457b/html5/thumbnails/20.jpg)
Elements of WS-Choreography
• What do we choreograph, how?
• What is a message content?
• Choreography between who/what?
• Choreography technical binding
![Page 21: Elements of Web Service Choreography](https://reader033.fdocuments.net/reader033/viewer/2022061300/54c7667e4a7959b9608b457b/html5/thumbnails/21.jpg)
Choreograph Messages or Message Exchange Patterns?
One way
Notification
RequestResponse
SolicitResponse
![Page 22: Elements of Web Service Choreography](https://reader033.fdocuments.net/reader033/viewer/2022061300/54c7667e4a7959b9608b457b/html5/thumbnails/22.jpg)
Message Exchange Pattern Choreography
Buyer Seller
PO
AckPO
Invoice
Payment
This is far easier than trying to choreograph
Notifications and One ways
ChangePO
AckPO
ChangePO
AckPO
![Page 23: Elements of Web Service Choreography](https://reader033.fdocuments.net/reader033/viewer/2022061300/54c7667e4a7959b9608b457b/html5/thumbnails/23.jpg)
Choreography Protocol
• There is a need, specially in B2B scenario to exchange signals in addition to messages
• Signals feature typically a fixed format and carry special meaning– Message structure and content is valid– Message was successfully processed by the receiving
application• Signals are typically part of the Message
Exchange Pattern• Exception associated to signal content:
business, technical exception
![Page 24: Elements of Web Service Choreography](https://reader033.fdocuments.net/reader033/viewer/2022061300/54c7667e4a7959b9608b457b/html5/thumbnails/24.jpg)
Choreograph Exceptions
Buyer Supplier (Self)
Order Entry
PO
BTA1
OpA1
OpA2
BTA2
PO
Invoice
Invoice
Billing
Success Failure
[Success]
[TechnicalFailure]
[BusinessFailure]
[AnyFailure]
[AnyFailure]
![Page 25: Elements of Web Service Choreography](https://reader033.fdocuments.net/reader033/viewer/2022061300/54c7667e4a7959b9608b457b/html5/thumbnails/25.jpg)
Transactional Behavior
• WSCI, BPEL4WS features transaction specifications as part of the choreography– BPEL4WS scopes
• BPSS doesn’t, all compensating transactions must be explicit
• Transactional behavior sounds reasonable to be within the scope of WS-Chor
• First step is expressing meaningful exceptions: timeout, technical, business,…
![Page 26: Elements of Web Service Choreography](https://reader033.fdocuments.net/reader033/viewer/2022061300/54c7667e4a7959b9608b457b/html5/thumbnails/26.jpg)
Message Content
• Any number of XML or Binary documents
• XML document type or content might be used to specify condition expressions in the control flow
![Page 27: Elements of Web Service Choreography](https://reader033.fdocuments.net/reader033/viewer/2022061300/54c7667e4a7959b9608b457b/html5/thumbnails/27.jpg)
Control Flow Specification
• Prof. van der Aalst patterns• BPEL4WS• WSCI• BPSS • Receive / Reply issue
– BPML spawns a new sub process altogether– BPSS has an onInitiation condition– BPEL correlates a reply with a receive. The reply can
be located anywhere in the choreography• Should consolidate to one control flow, no need
for half-baked overlapping specification there.
![Page 28: Elements of Web Service Choreography](https://reader033.fdocuments.net/reader033/viewer/2022061300/54c7667e4a7959b9608b457b/html5/thumbnails/28.jpg)
Control Flow Specification
Buyer Supplier(Self)
Order Entry
POAckPO
BTA1
OpA1
POAckPO
Manager
OpA2
Salesorder
Start
Wit1
POPO
Billing
Failure Success
[BusinessFailure] [Success]
Collaboration Control Flow Semantics are different from
the semantics of an executable business process
![Page 29: Elements of Web Service Choreography](https://reader033.fdocuments.net/reader033/viewer/2022061300/54c7667e4a7959b9608b457b/html5/thumbnails/29.jpg)
Technical Binding
• Two approaches– Start with WSDL specification and express a
choreography of these services– I suggest an alternative approach which I
think will work better• Specify the choreography in terms of roles and
usage of message exchange pattern types• Then generate the corresponding WSDL
automatically
![Page 30: Elements of Web Service Choreography](https://reader033.fdocuments.net/reader033/viewer/2022061300/54c7667e4a7959b9608b457b/html5/thumbnails/30.jpg)
Beyond Choreography
• UMM• Business Collaboration Patterns &
Monitored Commitments, e.g. from COOL:– Negotiation: Offer and Counter-offer– Offer and Acceptance– Commitment and Fulfillment– Deliver the goods and Pay for them
• REA – http://homepage.interaccess.com/~linkage/REA4SCM.htm
• Business Entities– http://www.collaborativedomain.com/standards/
![Page 31: Elements of Web Service Choreography](https://reader033.fdocuments.net/reader033/viewer/2022061300/54c7667e4a7959b9608b457b/html5/thumbnails/31.jpg)
Conclusion
• SOA appears as a valid application model moving forward– No more application or corporation boundary– Process and Data federation– Decoupled services?
• SOA is at the convergence of traditional application models, EAI and B2B
• Service Choreography is essential to SOA
![Page 32: Elements of Web Service Choreography](https://reader033.fdocuments.net/reader033/viewer/2022061300/54c7667e4a7959b9608b457b/html5/thumbnails/32.jpg)
Conclusion
• Service Choreography MUST be peer-to-peer• Scope is everything that is pure message
exchange: Collaboration and EBP• Message Exchange Patterns are the units of
what is being choreographed• B2B is different than EAI / Business Process
Execution• More metadata is good by beware of metadata
hell and poorly articulated layers