Web Service Composition

advertisement
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
wsdl
orderReceived
wsdl
wsdl
shipOrder
Supplier 1
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)
XYZ CORP
Supplier 1
Supplier 2
wsdl
wsdl
Supplier 3
wsdl
wsdl orderFromSupplier wsdl
Supplier 1
wsdl checkInventory wsdl
XYZ CORP
wsdl
wsdl
orderReceived
orderReceived
wsdl
wsdl
wsdl
wsdl
wsdl orderFromSupplier wsdl
shipOrder
wsdl
checkInventory
wsdl wsdlwsdl
wsdl
replyCustomer
Supplier 2
wsdl
shipOrder
wsdl
wsdl replyCustomer wsdl
UDDI
Supplier 3
ECE 1770 –Web Service Composition
Basic Requirements

Ability to invoke services in a asynchronous manner


Manage exception and transactional integrity


Achieve reliability, scalability, and adaptability required by
Today’s IT environment
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


WSCI – Web Services Choreography Interface


IBM and Microsoft
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
Abstract

Business protocols in BPEL, specify the public
message exchanges between parties
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
Partners

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>
<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
proposal
order
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
partner’s 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


Microsoft
 BizTalk Server


$5014 for a 12-month license
Standard Ed. for $8499 USD and Enterprise Ed. for $29999 USD
 http://www.microsoft.com/biztalk/howtobuy/default.mspx
Open Source
 Twister


$0
Eclipse - SOA Tools Platform

$0
ECE 1770 –Web Service Composition
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
Download