210 likes | 337 Views
Models and Languages for Coordination and Orchestration IMT- Institutions Markets Technologies - Alti Studi Lucca . WS Technologies I II BPEL4WS. Roberto Bruni Dipartimento di Informatica Università di Pisa. Contents. Orchestration and Choreography WSFL Transactions and Compensations
E N D
Models and Languages for Coordination and Orchestration IMT- Institutions Markets Technologies - Alti Studi Lucca WS Technologies III BPEL4WS Roberto Bruni Dipartimento di Informatica Università di Pisa
Contents • Orchestration and Choreography • WSFL • Transactions and Compensations • BPEL4WS Models and Languages for Coordination and Orchestration
WS Composition and Transactions: Early Work • eCo framework • vague notion of orchestration • created by CommerceNet to demonstrate the value of integrating e-commerce services • focus on the document exchanges required for B2B integration • WSCL (Web Services Conversation Language) • somewhat analogous to web services choreography • outlined a simple conversation language standard, • focused on modeling the sequencing of interaction between web services Models and Languages for Coordination and Orchestration
WS Composition and Transactions: Early Work • WSFL • IBM proposal • flow model for orchestration, global model for choreography • allowed for recursive (de)composition • supported handling of exceptions • had no direct support for transactions • XLANG • developed by Microsoft for the Microsoft BizTalk Server • provided block-structured support for sequential, parallel, and conditional process control flow • included a robust exception handling facility • had support for long-running transactions through compensation Models and Languages for Coordination and Orchestration
WS Composition and Transactions: WSCI • Web Services Choreography Interface • pronounced “Whiskey” • proposed by Sun, SAP, BEA, and Intalio • XML-based choreography language for WS collaboration • abstract processes, not executable processes • supports message correlation, sequencing rules, dynamic collaboration, exception handling and transactions • only describes the observable behavior between WS • each partner needs a single WSCI document • a WSCI choreography includes a set of WSCI documents Models and Languages for Coordination and Orchestration
WS Composition and Transactions: BPML • Business Process Management Language • developed by Business Process Management Initiative (BPMI.org), chartered by Intalio, Sterling Commerce, Sun, CSC, and others • initially designed to support executable business processes (over a BPMS), but the first draft also incorporated the WSCI protocol • basic activities for sending, receiving, and invoking services • structured activities that handle conditional choices, sequential and parallel activities, joins, looping, and scheduling of tasks at specific times • other features include persistence, roles, instance correlation, and recursive decomposition Models and Languages for Coordination and Orchestration
WS Composition and Transactions: BPEL4WS • Business Process Execution Language for Web Services • promoted by IBM, Microsoft, and BEA • supersedes XLANG and WSFL (but is far more complex) • XML-based grammar, leveraging WSDL for describing the control logic • abstract processes (called business protocols) • executable processes (over an orchestration engine) • includes support for both basic and structured activities • mechanism for catching and handling faults (like Java) • compensatory activities via compensation handler Models and Languages for Coordination and Orchestration
WS Composition and Transactions Models and Languages for Coordination and Orchestration
WS Composition and Transactions • BTP (Business Transactions Protocol) • emerging proposal by OASIS (Organization for Advance Structured Information Systems), involving HP, Oracle, BEA • aimed to B2B transactions in loosely coupled domains (not specifically for WS) • WS-Coordination by W3C • describes how services can make use of pre-defined coordination contexts to subscribe to a particular role in a collaborative activity • WS-Transaction by W3C • provides a framework for incorporating transactional semantics into coordinated activities. Models and Languages for Coordination and Orchestration
Business Process Execution Language for Web Services • BPEL4WS v1.1 (5 May 2003) • released along with two others specifications: • WS-Coordination and WS-Transaction • block-structured language (like XLANG), • allowing recursive blocks but restricting definitions and declarations to the top level • activities as the basic components • structured activities for sequential control include sequence, switch, and while • also nondeterministic choice based on external events (pick) • concurrency and synchronization between activities is provided by flow (like WSFL) Models and Languages for Coordination and Orchestration
BPEL4WS: Terminology • Partners (service providers) • a subset ofthe partner links of the process • Partner links • the services with which a business process interacts • each partner link is characterized by a partnerLinkType • Partner link type • characterizes the conversational relationship between two services • by defining the "roles" played by each of the services in the conversation • and specifying the portType provided by each service to receive messages within the context of the conversation Models and Languages for Coordination and Orchestration
BPEL4WS: Terminology • Variables • provide the means for holding messages that constitute the state of a business process • variables can also hold data that are needed for holding state related to the process and never exchanged with partners • the type of each variable may be a WSDL message type, an XML Schema simple type or an XML Schema element Models and Languages for Coordination and Orchestration
BPEL4WS: Activities • <receive> • blocking wait for a matching message to arrive • <reply> • to send a message in reply to a message that was received through a <receive> • the combination of a <receive> and a <reply> forms a request-response operation on the WSDL portType • <invoke> • to invoke a one-way or request-response operation on a portType offered by a partner Models and Languages for Coordination and Orchestration
BPEL4WS: Activities • <assign> • to update the values of variables with new data • copying data from one variable to another is a common task within a business process • a single <assign> construct can contain any number of elementary assignments • this activity can also be used to copy endpoint references to and from partner links Models and Languages for Coordination and Orchestration
BPEL4WS: Activities • <throw> • to generate a fault from inside the business process • <wait> • to wait for a given time period or until a certain time has passed • <empty> • nil activity (useful for synchronization of concurrent activities) Models and Languages for Coordination and Orchestration
BPEL4WS: Activities • <sequence> • to define a collection of activities to be performed sequentially in lexical order • <switch> • to select exactly one branch from a set of choices • <while> • to indicate that an activity is to be repeated until a certain success criteria has been met Models and Languages for Coordination and Orchestration
BPEL4WS: Activities • <pick> • to block and wait for a suitable message to arrive • or for a time-out alarm to go off • when one of these triggers occurs, the associated activity is performed and the pick completes • <flow> • to specify one or more activities to be performed concurrently • links can be used within concurrent activities to define arbitrary control structures, but with great care • ex. a link MUST NOT cross the boundary of a while activity, a serializable scope, an event handler or a compensation handler Models and Languages for Coordination and Orchestration
BPEL4WS: Activities • <scope> • to define a nested activity with its own associated variables, fault handlers, and compensation handler • <compensate> • to invoke compensation on an inner scope that has already completed normally • can be invoked only from within a fault handler or another compensation handler Models and Languages for Coordination and Orchestration
BPEL4WS: Other Features • Message correlation (like WSCI) • Transition and join conditions • dead path elimination • Fault handlers • Compensation handlers • Event Handlers • Serializable scopes • ... Models and Languages for Coordination and Orchestration
It’s Not a Stack, It’s a Web of Dependencies BPEL 1.1 WS-ReliableMessaging WS-Coordination WS-Transaction WS-Addressing Xpath 1.0 WS-Security WS-Trust WSDL 1.1 WS-Policy WS-SecurityAddendum SOAP 1.2 WS-PolicyAssertions WS-SecurityPolicy WS-PolicyAttachments WS-Routing XML Schema 1.0 A Partial View ( Gartner) WS-SecureConversation XML Signature XML Encryption X.509 XML 1.0 XML Namespaces XML Infoset Models and Languages for Coordination and Orchestration
Vendor Landscape • BEA WebLogic Workshop • while BEA contributed to both the BPEL4WS and WSCI initiatives, it does not provide native support for either standard • Collaxa Orchestration Server • supports BPEL4WS, WS-Coordination, WS-Transaction • IBM BPWS4J • Java runtime platform for BPEL + editor • Sun WSCI Editor • supports WSCI (in pat), not BPEL Models and Languages for Coordination and Orchestration