WS Orchestration http://tmitwww.tm.tue.nl/staff/wvdaalst/Publications/p176.pdf http://www-106.ibm.com/developerworks/webservices/library/ws-bpelcol2/ http://devresource.hp.com/drc/technical_white_papers/WSOrch/WSOrchestration.pdf Eyal Oren DERI 2004/04/07 Survey of WS orchestration • definitions & requirements • survey of standards – BPEL4WS – BPML – WSCI • survey of vendors Eyal Oren 2 Definitions • orchestration – – – – executable process (that interacts with other web services) control from the perspective of one business partner for implementation workflow • choreography – – – – this is the private process, our orchestration is subset of this this is like our choreography sequence of messages public message exchanges for collaboration protocols Eyal Oren 3 Requirements • a-synchronicity we need to have this – need message correlation: identifying returning calls • exception management we need to have this – services (operations) throw & catch exceptions • compensating transactions we need to have this – resource locking not feasible • reusable composition: – separation process logic – used web services goal – capability separation – don’t understand, looking for hierarchy? web service – capability separation Eyal Oren 4 Standards overview • BPEL4WS – – – – describes (control logic for) coordination of web services Microsoft, IBM, BEA (XLANG & WSFL) execution environment (BPWS4J) not considered by W3C : not royalty-free • BPML – describes executable business processes – Intalio, Sun, …, bpmi.org/members.esp • WSCI – describes messages between collaborating web services – Sun, SAP, BEA, Intalio Eyal Oren 5 Standards relation Eyal Oren 6 BPEL4WS (1) • (control logic for) coordination of web services • abstract processes: – choreography – public message exchange • executable processes: – orchestration – private workflow • on top of WSDL Eyal Oren 7 BPEL4WS (2) • primitive activity (input & input-output operations) – – – – – – – – invoke receive reply wait assign throw terminate empty (an operation on a web service) (waiting for invocation) (responding, in input/output operation) (for … time) (copy & compute data to variables) (exception) (stop service instance) • structure activity (control flow) – combines primitives using: sequence, branch, loop, pick, flow – need more time to investigate possibilities Eyal Oren 8 BPEL4WS (3) (WSDL defines messages, operations, porttypes) • link – – – – describes conversation between two roles (specifies porttype of service, to receive messages) multiple messages can be exchanged during conversition we need this too partner: web service with role in linktype (as Axel said on wsmo-d) • business process: list of activities (with partners) • actual web service grounding can be dynamic – unclear yet (WS-Adressing) – BPWS4J uses hard-wired at deploy Eyal Oren 9 BPML • language for describing business processes • simple activity – action, assign, call, compensate, delay, fault, synch • complex activity – all, choice, foreach, sequence, switch, until, while • transaction support (compensation, nesting) • exception handling (throw, timeout) Eyal Oren 10 WSCI • language for describing web services collaboration • message correlation • sequencing rules – basic: call, delay, empty, fault, spawn, join – complex: all, choice, foreach, sequence, switch, until, while is this really only public – but cannot specify input/output message exchange then? • exception handling • transactions Eyal Oren 11 Comparison • • • • BPEL4WS – BPML+WSCI intentions are the same no comparison in the article, no thorough search vd Aalst: pattern-based comparison: – WSCI – BPML • offer same functionality • too much overlap to justify separation • WSCI can be used to model – BPEL4WS – BPML • little more expressive • no semantics • too many overlapping constructs Eyal Oren 12 Useful for WSMO • either: borrow requirements – – – – – asynchronicity exception management compensation message correlation control flow construct (workflow patterns, vd Aalst) • or: use a standard Eyal Oren 13