What is Service Oriented Computing?

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 Protocols

Simple Object Access Protocol (SOAP)


Web Services Description Language (WSDL)


Provides a format for communicating between web
services.
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!