Web Service Composition

Post on 29-Dec-2015

10 views 0 download

Tags:

description

fgdfgd

transcript

Web Service Composition

Prepared by

Robert Ma

February 5, 2007

ECE 1770 –Web Service Composition

Web Services

Consider the following set of web services

orderFromSupplier wsdl

orderReceived wsdl

replyCustomer wsdl

checkInventory wsdl

shipOrder wsdl

UDDI

XY Z CORP

wsdl

wsdl

wsdl

wsdl

wsdl

ECE 1770 –Web Service Composition

Web Services (2)

What about between organizations?

orderFromSupplier wsdl

orderReceived wsdl

replyCustomer wsdl

checkInventory wsdl

shipOrder wsdl

UDDI

XY Z CORP

wsdl

wsdl

wsdl

wsdl

wsdl Supplier 1

Supplier 2

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)

orderFromSupplier wsdl

orderReceived wsdl

replyCustomer wsdl

checkInventory wsdl

shipOrder wsdl

UDDI

XY Z CORP

wsdl

wsdl

wsdl

wsdl

wsdl Supplier 1

Supplier 2

Supplier 3

XY Z CORP

Supplier 1 Supplier 2 Supplier 3

replyCustomer wsdlwsdlorderReceived wsdlwsdl

orderFromSupplier wsdlwsdl

checkInventory wsdlwsdl shipOrder wsdlwsdl

wsdl

wsdl wsdl wsdl

ECE 1770 –Web Service Composition

Basic Requirements Ability to invoke services in a asynchronous manner

Achieve reliability, scalability, and adaptability required by Today’s 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 base1. Every BPEL is exposed as a web service using

WSDL. And the WSDL describes the public entry and exit points of the process

2. Interacts through WSDL interfaces with external web services

3. 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>

sendOrder

request

response

request

proposal

order

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 $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 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?