Orchestration, Choreography and Collaboration in Web Services and ebXML
Ron Ten-Hove Staff Software Engineer Sun Microsystems
Orchestration, Choreography and Collaboration in Web Services and - - PowerPoint PPT Presentation
Orchestration, Choreography and Collaboration in Web Services and ebXML Ron Ten-Hove Staff Software Engineer Sun Microsystems | JavaOne 2003 | Session 3176 Goals Examine message sequencing in Web Services and Business Web Services 2
Orchestration, Choreography and Collaboration in Web Services and ebXML
Ron Ten-Hove Staff Software Engineer Sun Microsystems
Goals
Examine message sequencing in Web Services and Business Web Services
Ron Ten-Hove
Business Integration Product Development
─ Developed EAI Products for Forté Software (now part of Sun Microsystems) ─ EAI Web Services ─ ebXML BPSS ─ WSCI ─ JSR 208
The next important area of development
Many new concepts and specifications are emerging.
Agenda
Service-Oriented Architecture (SOA)
─ Use Services ─ Provide Services
Some Terminology (WS Flavored)
─ Two or more peers ─ Business-oriented goals
─ Running business processes
─ Sequencing “interface” ─ Client/Server
Definitions (Cont.)
Trading Partner’s Service Service Service Service Service
Firewall
Process Engine
Definitions (Cont.)
Collaboration Service Service Service Service
Firewall
Process Engine Trading Partner’s Service
Definitions (Cont.)
Collaboration Orchestration Service Service Service Service
Firewall
Process Engine Trading Partner’s Service
Definitions (Cont.)
Collaboration Orchestration Choreography Service Service Service Service
Firewall
Process Engine Trading Partner’s Service
Choreography
─ Observable messages
Orchestration
─ Invokes Services ─ Offers Services ─ Stateful ─ Complex rules:
Service used
Collaboration
─ Uses Internet ─ Trading Partner Agreement ─ Business Semantics
Abstract Models
─ Influence Specifications ─ Model Checking ─ Emphasize certain aspects
π-Calculus
x _ y y _ z z _ u _ z _ u <foo> <C> B C A
Petri Nets
─ Places ─ Transitions ─ Directed arcs connecting transitions and places
─ Collaboration ─ Orchestration
Petri Nets
State Machine
─ Simple orchestration ─ Most choreographies
Grafcet, etc.
State Diagram
Place Order Arrange Insurance Book Shipping
Activity Diagrams
─ Collaboration ─ Orchestration (optionally)
Activity Diagrams
Buyer Seller et cetera...
Send Quote Request Accept Receipt Accept Receipt Send Receipt
Web Services
─ RPC ─ Message exchange
─ Description of service ─ Bind service to SOAP
Application SOAP HTTP TCP IP Datalink Physical
The Problem With Web Services
─ Operations, Operations Everywhere ─ Services modeled as message exchanges ─ Unordered
─ Paired services pattern
WSDL Structure
Adapted from: Microsoft MSDN
Part Part Part Part Operation Binding Service ... ... ...
Message Message Port Type Port ...
WSDL Structure
Adapted from: Microsoft MSDN
Part Part Part Part Operation Binding Service ... ... ...
Message Message Port Type Port ...
Abstract Endpoint Type
WSDL Structure
Adapted from: Microsoft MSDN
Part Part Part Part Operation Binding Service ... ... ...
Message Message Port Type Port ...
Abstract Endpoint Type Concrete Endpoint
WSDL Structure
Adapted from: Microsoft MSDN
Part Part Part Part Operation Binding Service ... ... ...
Message Message Port Type Port ...
Abstract Endpoint Type Concrete Endpoint Endpoint Instance
WSDL Structure
Adapted from: Microsoft MSDN
Part Part Part Part Operation Binding Service ... ... ...
Message Message Port Type Port ...
Abstract Endpoint Type Concrete Endpoint Endpoint Instance
Web Service Choreography
─ Reuse
Open for Read Idle Open for Update
Choreography Example
L
i n A d m i n ( ) L
i n U s e r ( )
Update() Read()
LogOff()
LogOff()
Read()
Simple Choreography Isn’t Enough
─ Only one initiator ─ Synchronous Messaging
Specifications to the Rescue
─ Basic choreography language ─ Layered directly atop WSDL 1.1
─ Rich choreography language ─ Layered directly atop WSDL 1.1
─ Broad orchestration language ─ Choreography support ─ Layered directly atop WSDL 1.1
Added Features
Correlation
─ How to correlate to request?
─ Unique message IDs ─ Ref-to message ID
─ E.g., purchase order number
Send Purchase Order Send Invoice Ship Goods Send Payment Accept Invoice Accept PO
Correlation Example
Buyer Seller
/po/head@no /inv/ref/po /inv/id/num /pay/ref/inv
Transactions
a single one
─ ACID—Atomic
─ Nested (Open)
Exceptions
─ “Happy path” ─ Error paths
– Multiple types
─ Retry ─ Complain ─ Clean up
Compensation
─ Needed in open transaction model ─ Distinct from rollback
─ Sequence of operations to achieve “undo”
Roles
─ E.g., Buyer, Seller ─ Links port types directly
Dynamic Participation
─ Message contents ─ Previous message contents
─ Service address is a channel ─ Port type is channel type
Business Web Services
Firewall
Trading Partner’s Services Service Service Service Service Process Engine Business Services Interfaces Business Services Interfaces
Business Web Services
─ Reliability ─ Security ─ Direct support for business semantics
─ Electronic business documents ─ Many data formats ─ Value Added Network—VAN ─ Expensive
Business Web Services
─ State management ─ Business semantics, rules, constraints
─ Business processes ─ Applications
Business Web Services Are Different
─ Coarse-grained
─ Have economic and legal consequences ─ No shared infrastructure
─ Insecure ─ Unreliable ─ Ubiquitous, cheap
ebXML for Business Web Services
─ Internet protocols
─ XML for data ─ Standard business documents:
─ Standards based, interoperable
ebXML for Business Web Services
─ CPP/CPA
─ Message Handler
for each transaction
─ BPSS
─ Core Components, UBL
CPP/CPA
─ Roles assigned to partners ─ All messages described ─ Endpoints defined ─ All message exchanges defined
– Security – Reliability
Message Handler
─ Security
─ Reliability
─ Many implementations available
BPSS
Business Process Specification Schema
─ Collaborative business process definition
─ Defined atop abstract model of MSH ─ Shared view of process state
– business signal protocol
─ Rich set of business-oriented features
BPSS
Diagrams
─ Stereotyped activity “Business Transaction”
– Multiple document exchanges – Time outs
– Succeeded, – Failed for technical reasons, failed for business reasons, etc.
─ Roles mapped to swim lanes ─ Concurrent activities
BPSS Example
Buyer Seller
Get Quote Let Purchase Order
Send Payment Send Shipment Data
Issue Invoice Send Ship Notice Success
Quality of Service: Security, Reliability
Quote Request Receipt Acceptance Quote Receipt Acceptance
Business Transaction Activity: Get Quote
Buyer Seller
Business Web Service Interface Business Web Service Interface Message Handler Message Handler
Summary
Service Service Service Service
Firewall
Process Engine
Trading Partner’s Services
Summary
WSCI WSCL Service Service Service Service
Firewall
Process Engine
Trading Partner’s Services
Summary
ebXML WSCI WSCL Service Service Service Service
Firewall
Process Engine
Trading Partner’s Services
Summary
ebXML BPEL4WS BPML WSCI WSCL Service Service Service Service
Firewall
Process Engine
Trading Partner’s Services
Summary
─ Collaboration ─ Orchestration ─ Choreography
─ Help understand specifications ─ Help drive specifications
Summary
─ Service-oriented architecture ─ WSDL
─ Expanding Orchestration/Choreography features:
Summary
─ Different from Web Services ─ EDI by Internet ─ ebXML provides
If You Only Remember One Thing…
We don’t have a Web Services silver bullet. Different solutions are needed in different parts of an enterprise’s EAI and B2B structures.