You are on page 1of 25

Web Service Composition

Prepared by Robert Ma
February 5, 2007

Web Services

Consider the following set of web services


XYZ CORP

wsdl orderFromSupplier wsdl wsdl checkInventory wsdl

wsdl

orderReceived

wsdl

wsdl

shipOrder

wsdl

wsdl replyCustomer wsdl UDDI

ECE 1770 Web Service Composition

Web Services (2)

What about between organizations?


XYZ CORP

wsdl orderFromSupplier wsdl wsdl checkInventory wsdl

Supplier 1

wsdl

orderReceived

wsdl

wsdl

shipOrder

wsdl

Supplier 2

wsdl replyCustomer wsdl UDDI

Supplier 3

ECE 1770 Web Service Composition

Overview

Businesses today requires to quickly adapt to customer needs and market conditions

EAI and B2B interactions (through web services)

Needs to be flexible internally and externally

Without a common set of standard, each organization is left to build their own set of proprietary business protocols

Leaving little flexibility for true web services collaboration

ECE 1770 Web Service Composition

Web Service Composition

Definition:

Provides an open, standards-based approach for connecting web services together to create higher-level business processes.
Standards are designed to reduce the complexity required to compose web services, hence reducing time and costs, and increase overall efficiency in businesses

ECE 1770 Web Service Composition

Web Service Composition (2)

Supplier 1

Supplier 2 wsdl

Supplier 3 wsdl

XYZ CORP

wsdl

wsdl orderFromSupplier wsdl wsdl checkInventory wsdl

Supplier 1

XYZ CORP
wsdl orderReceived wsdl wsdl shipOrder

wsdl
wsdl wsdl orderFromSupplier wsdl

Supplier 2

wsdl

orderReceived

wsdl checkInventory wsdl wsdlwsdl wsdl replyCustomer


UDDI

wsdl

shipOrder

wsdl

wsdl replyCustomer wsdl

Supplier 3

ECE 1770 Web Service Composition

Basic Requirements

Ability to invoke services in a asynchronous manner

Achieve reliability, scalability, and adaptability required by Todays IT environment

Manage exception and transactional integrity

Studies shown nearly 80% of the time spent in building business processes are spent in exception management

Provide dynamic, flexible, and adaptable framework


Provide a clear separation between the process logic and the web services used Able to compose higher-level services from existing processes
ECE 1770 Web Service Composition

Standards

BPEL4WS (a.k.a. BPEL) Business Process Execution Language for Web Services

IBM and Microsoft

WSCI Web Services Choreography Interface

Sun, SAP, BEA, and Intalio

BPML Business Process Management Language

BPMI.org (chartered by Intarlio, Sterling Commerce, Sun, CSC, and others)


ECE 1770 Web Service Composition

BPEL4WS

XML-Based language It describes the control logic for web services coordination in a business process Interpreted and executed by a BPEL engine

ECE 1770 Web Service Composition

BPEL - Overview

Use Web Services Standard as a base


1.

2.

3.

Every BPEL is exposed as a web service using WSDL. And the WSDL describes the public entry and exit points of the process Interacts through WSDL interfaces with external web services WSDL data types are used to describe information flow within the BPEL process

ECE 1770 Web Service Composition

BPEL - Process Overview

ECE 1770 Web Service Composition

BPEL - Process Models

Provides support for two business process models

Executable

Models the behavior of participants in a specific business interaction, a private workflow Business protocols in BPEL, specify the public message exchanges between parties

Abstract

ECE 1770 Web Service Composition

BPEL - Activities

Basic Activities:

Interacts with external services

<invoke>, <receive>, and <reply>

Structured Activities:

Internal process control flow

sequential flow, conditional branching, looping, and etc.

ECE 1770 Web Service Composition

BPEL - Containers and Partners

Containers

Data exchanges in the message flow e.g. WSDL messageType Any services that the process invokes OR any services that the invokes the process
<partners> <partner name=buyer myRole=agent/> <partner name=supplier myRole=requestor partnerRole=supplier/>

Partners

</partners> <containers> <container name=request messageType=tns:orderRequest/> <container name=response messageType=tns:orderResponse/> </containers>


ECE 1770 Web Service Composition

BPEL - Code

A sequence
<sequence>

<receive partner=buyer operation=sendOrder container=request/> <invoke partner=supplier operation=request container=order/> <reply partner=buyer operation=response container=proposal/> </sequence>
request sendOrder

request

order

proposal

response

ECE 1770 Web Service Composition

BPEL - Others

Transactions and Exceptions

Building on top of WS-Coordination and WS-Transaction specifications Transaction A set of activities can be grouped in a single transaction through the <scope> tag

Can specify compensation handlers (rollback) if there is an error

Exception Handling Through the use of throw and catch (similar to Java)
ECE 1770 Web Service Composition

BPEL Example Process

ECE 1770 Web Service Composition

WSCI

XML-based language Defines the choreography describing the messages between web services that participate in a collaborative exchange Only describes the observable behavior between web services

No single controlling process managing the interaction

ECE 1770 Web Service Composition

WSCI - Actions

Actions <action> represents a unit of work and would typically map to a specific WSDL operation WSDL describes the entry points of each service WSCI describes the interactions among these operations External services are invoked through <call> tag

Supports transaction and exception handling


ECE 1770 Web Service Composition

WSCI - Snippet
<process name=Purchase instantiation=message> <sequence> <action name=ReceiveOrder role=Agent operation=tns:Order> </action> <action name=Confirm role=Agent operation=tns:Confirm> <correlate correlation=tns:ordered/> <call process=tns:Purchase/> </action> </sequence> </process>

Note: this WSCI is from the perspective of the Agent, there would also be WSCI file for other parties in the process

ECE 1770 Web Service Composition

BPML

XML-based language Incorporates WSCI into the standard


WSCI used to describe public interactions BPML used to develop private logic implementations

Provides similar process flow constructs and activities as BPEL Transactional support and exception handling
ECE 1770 Web Service Composition

Summary

BPEL and BPML focuses on creation of business processes

Describe an executable process from the partners perspective

WSCI focuses on public message exchanges between web services

Each participant in message exchange defines a WSCI interface

ECE 1770 Web Service Composition

Summary

ECE 1770 Web Service Composition

Some Open/Closed Source Engines

BPEL

IBM WebSphere Process Server + WebSphere Integration Developer

$5014 for a 12-month license

Microsoft BizTalk Server

Standard Ed. for $8499 USD and Enterprise Ed. for $29999 USD http://www.microsoft.com/biztalk/howtobuy/default.mspx

Open Source Twister

$0 $0
ECE 1770 Web Service Composition

Eclipse - SOA Tools Platform

Discussion

Security in Web Service Composition and Web Service in general

A number of standards like XML Digital Signatures and Encryption, WS-Security Provide authentication and authorization of users, and for securing the XML message itself But composition standards do not offer direct support for security! In BPEL, how do the roles defined for each partner relate the existing authentication standards?

ECE 1770 Web Service Composition

You might also like