Service Oriented Computing Burr Watters Tasha Wells April 5, 2004
30 Slides199.00 KB
Service Oriented Computing Burr Watters Tasha Wells April 5, 2004
Overview What Service Oriented Computing? Service Oriented Architecture Web Service Componentization Service Composition BPEL4WS Coordination Contracts and Port Types Web Service Transactions
What is Service Oriented Computing? It is the paradigm for distributed computing to enable application networks to be built using services as fundamental elements for developing applications.
Service Oriented Architecture
Management Level Operations Management: Support critical applications that require organizations to manage the service platform, the applications and the deployment of services. The organization responsible for these functions is known as the service operator. Market Management: Administration of the marketplace and maintenance to guarantee the administration is open for business. The creator/maintainer of a marketplace is known as the market-maker.
Composition Level Allows consolidation of multiple services into a single composite service using the following functionality: Coordination: Controls the execution of component services and manages the dataflow between them. Monitoring: Monitors events or information produced by component services. Conformance: Ensures consistency of composite services by matching parameter types with parameters of component services imposes constraints on component services to enforce business rules. Quality of Service (QoS) composition: Combines the component’s QoS to determine the composite QoS such as overall cost, performance and security.
Description/Integration Level Creation of composite service through the following functions: Service description: Service discovery: Locates appropriate services using requirements and selection criteria. Service delivery: Communicates the service’s capabilities/functionalities, interface, behavior, cost and quality of service. Invocation – request for specified service according to agreed terms and conditions. Provision – the agreed-upon service is supplied within the period agreed to in the contract. Suspension – establish point where the service will no longer be needed. Service composition: Composes service from lower-level services in which the previous three functions are known.
Description/Integration Level Service Simple Object Access Protocol (SOAP) Provides a format for communicating between web services. Web Services Description Language (WSDL) Protocols Provides the definition interface for web components to communicate. Universal Description, Discovery, and Integration (UDDI) Provides a directory that can be used to locate available services and learn their details.
Web Service Componentization
Web Service Componentization
Service Composition Componentized model becomes a natural architecture Services become the building blocks of an application. Service compositions become the “glue” which binds the services. Web services must provide standards on: An interoperability communication protocol, Mechanisms for service description, discovery, and communication, and Quality of Service
The Web Services Stack
Business Process Execution Language for Web Services (BPEL4WS) BPEL (for short) Standardized by the Organization for the Advancement of Structured Information Standards (OASIS). Provides a mechanism for defining service compositions in the form of choreographies of Web services. A choreography consists of the aggregation of services to certain business rules.
BPEL Interactions BPEL composition are called processes. Services that interact with each other are partners.
Business Protocols in BPEL BPEL composition defines the message exchange between partners. Partnerships are declared through the WSDL interfaces that are specified in the BPEL process. WSDL provides the abstraction between service description and service deployment. Provides multi-protocol access to services.
Business Protocols in BPEL Facilities the message exchange between the process and its partners. Complex algorithm are created using Primitive Activities Signaling faults, Terminating process execution, Manipulating data Structured Activities Sequence, Switch, While, Pick, Flow Message Correlation Tracks messages received from one partner to another in a particular conversation.
Fault Handling and Compensation in BPEL Provides a fault handling to deal with errors that may occur in an application. Similar to a “try-catch” block. Compensation is the process of rolling back actions that have been completed before a fault occurred. Scopes determine how fault handling / compensation are resolved in a process. Closed tied to WS-Transactions.
WS-Coordination Framework for pluggable coordination models. Allows a set of independently distributed services to reach a consistent and defined outcome. Elements of WS-Coordination CoordinationContext – extensible context representing the coordination that is propagated to the distributed participants. Activiation – used by clients to create a coordination context. Registration – used by participants to register resources for inclusion in specific coordination protocols.
Coordinating BPEL Web Services
Behavioral Aspects of Service Connectivity is great, but most of the complexity comes with interoperating services. Web services have the autonomy to run independently of each other. The heterogeneity of the web causes processes to be written in any language under any assumptions.
Port Types A service can send any message to a port a process may be running on and expect a response. The port must be able to understand the message. Thus, port types describes to the requesting service what messages the port will respond to. Convenient because programmers do not have to code for erroneous messages.
Contracts Port types do not describe: Quality of Service Timeliness Execute Order These are prescribed in a contract Sets the communication protocol for using the port. Disciplines the channels of communication between service and port. Allows the service to eliminate ports whose service agreements do not conform to its needs.
WS-Transaction Specifies two types of coordination activities. Atomic Transaction Short-running transactions. Allows the transaction to hold the resources being used by the service operations. All resources must be committed before transaction succeeds. Similar to the two-phase commit protocol. Business Activity Long-running business transactions. Resources are not held; business logic provides error handling. Allows for participants to register and leave the activity at will. Participants can declare its outcome before being asked.
Web Service Transactions Example of Two-Phase Commit Protocol Are ACID transactions too strong? Could hold a service until the transaction is completed. Thus, making it available to other services.
Web Service Transactions Long running activities vs. “Logical” long running activities Each transaction is confirmed and release when done. In the event of a rollback, certain compensation activities must may be necessary to get the system back to a consistent state.
Business Transaction Protocol (BTP) Developed by Oasis Gives the appearance of a two-phase commit protocol without have ACID characteristics Closed-top commit protocol Executes entire two-phase commit protocol before returning an outcome Verbs: begin, commit, and rollback Open-to commit protocol Allows the application to control the time between the twophase commit protocol Verbs: prepare, confirm, and cancel
Business Transaction Protocol (BTP) BTP introduced two types of extended transactions Atom Transactions Traditional method of performing transactions. All participants see the same outcome. Cohesion Transactions Allows business logic to confirm/cancel transaction. Sets a “cohesion” scope for entire transaction. Creates Atom scopes for services to “enroll” in. These Atom scopes come with caveat. That it may be “canceled” or “prepared”. That it could take some time before arriving at its “confirm-set”. Once the “confirm-set” has been reached, then the cohesion collapses to a atom and the participates see the resulting outcome.
Summary Service Oriented Architecture Web Service Componentization Service Composition BPEL4WS Management, Composition, and Description/Integration Level Interactions, Protocols, Fault Handling and Compensation Coordination Contracts and Port Types Transactions Web Service Transactions and BTP
Resources Papazoglou, M. & Georgakopoulos, D. Service Oriented Computing. Communications of the ACM. October 2003. p 25. Curbera, F., Khalaf, R., Mukhi, N., Tai, S., & Weerawarana, S. The Next Step in Web Services. Communications of the ACM. October 2003. p 29. Yang, J. Web Service Componentization. Communications of the ACM. October 2003. p 35. Meredith L. & Bjorg, S. Contracts and Types. Communications of the ACM. October 2003. p 41. Little, M. Transactions and Web Services. Communications of the ACM. October 2003. p 49. Tuner, M., Budgen, D., & Brereton, P. Turning Software into a Service. IEEE Computer. October 2003. p 38. Curbera, F., Duftler, M., Khalaf, R., Nagy, W., Mukhi, N., & Weerawarana, S. Unraveling the Web Services Web: An Introduction of SOAP, WSDL, and UDDI. IEEE Internet Computing. March/April 2003. p 86.
Questions? Thank you!