Title: Tecnologie per servizi web: WSDL, WSFL
1Models 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
2Contents
- Orchestration and Choreography
- WSFL
- Transactions and Compensations
- BPEL4WS
3WS 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
4WS 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
5WS 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
6WS 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
7WS 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
8WS Composition and Transactions
9WS 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.
10Business 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)
11BPEL4WS Terminology
- Partners (service providers)
- a subset of the 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
12BPEL4WS 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
13BPEL4WS Activities
- ltreceivegt
- blocking wait for a matching message to arrive
- ltreplygt
- to send a message in reply to a message that was
received through a ltreceivegt - the combination of a ltreceivegt and a ltreplygt
forms a request-response operation on the WSDL
portType - ltinvokegt
- to invoke a one-way or request-response operation
on a portType offered by a partner
14BPEL4WS Activities
- ltassigngt
- 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 ltassigngt construct can contain any
number of elementary assignments - this activity can also be used to copy endpoint
references to and from partner links
15BPEL4WS Activities
- ltthrowgt
- to generate a fault from inside the business
process - ltwaitgt
- to wait for a given time period or until a
certain time has passed - ltemptygt
- nil activity (useful for synchronization of
concurrent activities)
16BPEL4WS Activities
- ltsequencegt
- to define a collection of activities to be
performed sequentially in lexical order - ltswitchgt
- to select exactly one branch from a set of
choices - ltwhilegt
- to indicate that an activity is to be repeated
until a certain success criteria has been met
17BPEL4WS Activities
- ltpickgt
- 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 - ltflowgt
- 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
18BPEL4WS Activities
- ltscopegt
- to define a nested activity with its own
associated variables, fault handlers, and
compensation handler - ltcompensategt
- 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
19BPEL4WS Other Features
- Message correlation (like WSCI)
- Transition and join conditions
- dead path elimination
- Fault handlers
- Compensation handlers
- Event Handlers
- Serializable scopes
- ...
20Its Not a Stack, Its 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-Routing
WS-PolicyAttachments
XML Schema 1.0
A Partial View (? Gartner)
WS-SecureConversation
XML Signature
XML Encryption
X.509
XML 1.0
XML Infoset
XML Namespaces
21Vendor 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