MTU SSE 3200 - Concepts Architecture and Applications

Unformatted text preview:

Web Services - Concepts, Architecture and Applications Part 9: BPEL4WSWhat is BPELBasic elements of BPELPartnersUnderstanding BPEL partnersFinding the partner informationFrom definition to enactmentVariablesCorrelation SetsUnderstanding correlation setsHandlersUnderstanding handlersActivitiesMore on activitiesUnderstanding activitiesWSDL operations in BPELWSDL operations in BPELSome available implementationsWeb Services - Concepts, Architecture and ApplicationsPart 9: BPEL4WSGustavo Alonso, Cesare PautassoComputer Science DepartmentETH Zü[email protected]://www.inf.ethz.ch/~alonso©ETH Zürich Part 9: BPEL 2What is BPEL BPEL4WS = Business Process Execution Language for Web Services The latest version of the specification is 1.1 Currently, it is the dominant specification for defining composite Web services, conversations and business protocols It does not directly deal with implementation of the language but only with the semantics of the primitives it provides. The emphasis is on interoperability between systems rather than portability of specifications Used to define:¾ Abstract processes: conversations and protocols for how to use a given service or between different services¾ Executable processes: essentially workflows extended with Web service capabilities©ETH Zürich Part 9: BPEL 3Elements of BPEL- a brief introduction -©ETH Zürich Part 9: BPEL 4Basic elements of BPELXML documentPROCESSPARTNERS: Web services to be invokedby the process CORRELATION SETS: constructs used to deal with conversationsFAULT HANDLERS: what to do in case of errors (exceptions)COMPENSATION HANDLERS: what needs to be done to undo an activityACTIVITIES: what the process doesEVENT HANDLERS: what to do when an event arrivesVARIABLES: the data used by the processEquivalent to declarations in a normalprogramming language. It definesthe way services are to be called, which data is to be used and which data is to be treated as statefulThese elements establish what the process does, how it reacts under different circumstances (errors, message arrivals, events, etc.), and how data moves from one step to the next©ETH Zürich Part 9: BPEL 5Partners The concept of partners is used to define the Web services that are to be invoked as part of the process. It is based on three elements:¾ Partner Link Type: it contains two PortTypes (see WSDL), one for each of the roles in the partner entry (i.e., one portType is the portType of the process itself, the other one is the portType of the service being invoked).¾ Partner Link: the actual link to the service. This is where the actual assignment to a binding is made (outside the scope of BPEL). Several partner links may share the same partner link type¾ Partners: a group of Partner Links (this is an optional element). A partner link can only appear in one partner. The notion of Partner Link Type reflects a peer-to-peer relation between the process and each one of the services the process calls PROCESS(Web service)portTypePartnerWeb serviceportTypePartner Link Type©ETH Zürich Part 9: BPEL 6Understanding BPEL partners The notion of partner in BPEL is somewhat obscure and has changed from 1.0 to 1.1 In principle, the partner element is used as a vehicle for defining links:¾ Partner Link Type: similar to a class definition in object oriented languages, it is a generic link to a given category of web service (e.g., Bookstore_purchase, Bookstore_search). The partner link type does not really specify the partner but the nature of the link and the roles played by the process and the called Web service¾ Partner Link: the actual instantiation of the link type (i.e., an object of class partner link type). The partner link describes the actual Web service that is going to be called (in an abstract manner since BPEL does not cover binding). Examples: Amazon_purchase (partner link of type Bookstore_purchase) or Barnes&Noble_search (partner link of typeBookstore_search)¾ Partners: this is an optional element that can be used to tie together all the links that correspond to the same physical partner. Example: partner “Amazon” contains partner links “Amazon_purchase” and “Amazon_search”.©ETH Zürich Part 9: BPEL 7Finding the partner information Partner Link Types information can be found in a variety of places:¾ In the WSDL description of the actual service (BPEL specifies how to use WSDL extensibility to define the partner link type as part of the WSDL service description document; the partner link type is part of the abstract service description)¾ In their own WSDL document, independent of the WSDL description of the services involved¾ Partner link types are notincluded in the BPEL description of the process Partner Links and Partners:¾ Are defined in the BPEL document describing the process The original intention for this design is to facilitate reuse of partner link types and to allow services to define their roles in a given interaction (since the role is specified in the partner link type) It is nevertheless unclear which approach will be more feasible in practice (e.g., how to prevent that two different services give themselves the same partner link type name)©ETH Zürich Part 9: BPEL 8From definition to enactment BPEL does not say anything about how a process is to be executed and how to map a process description to an actual running system. This is the reason why partner link types use only the PortTypes of WSDL descriptions (i.e., contain only abstract information) and not the actual ports for those services (i.e., the binding information that allows contact with and usage of those services) The mapping of a partner link to an actual service takes place through the notion of “Endpoint References”. Every partner role in a link is assigned an endpoint reference at deployment time (this can also happen dynamically for an activity in the process). This endpoint reference is what maps to the actual port. Link type Link typeLink Link LinkLinkpartner partnerBPEL process definitionDeployed linkRole1: endpoint referenceRole2: endpoint referenceWSDL PORTWSDL PORT©ETH Zürich Part 9: BPEL 9Variables Variables are used in BPEL to hold data used within the process Variables typically contain two basic forms of data:¾ Entire messages (defined in the WSDL description of a service)¾ Process specific data (counters, state variables, etc.) Variables are defined in the BPEL


View Full Document

MTU SSE 3200 - Concepts Architecture and Applications

Download Concepts Architecture and Applications
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Concepts Architecture and Applications and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Concepts Architecture and Applications 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?