5 WebServices.ppt [兼容模式]idc.hust.edu.cn/~rxli/teaching/ds/5 WebServices.pdf · “l”...

51
2014/11/24 1 Web 服务 Web Services 辜希武,李瑞轩 华中科技大学计算机学院 内容概要 bS 概述 1. Web Services概述 2. Web Services模型 3. SOAP 4. WSDL 2014/11/24 2 5. UDDI 6. Web服务组合

Transcript of 5 WebServices.ppt [兼容模式]idc.hust.edu.cn/~rxli/teaching/ds/5 WebServices.pdf · “l”...

Page 1: 5 WebServices.ppt [兼容模式]idc.hust.edu.cn/~rxli/teaching/ds/5 WebServices.pdf · “l” ltithHd dBd“envelope”, complete with a Header and Body SOAP Envelope SOAP Header

2014/11/24

1

Web 服务

Web Services

辜希武,李瑞轩

华中科技大学计算机学院

内容概要

b S 概述1. Web Services概述

2. Web Services模型

3. SOAP4. WSDL

2014/11/24 2

5. UDDI 6. Web服务组合

Page 2: 5 WebServices.ppt [兼容模式]idc.hust.edu.cn/~rxli/teaching/ds/5 WebServices.pdf · “l” ltithHd dBd“envelope”, complete with a Header and Body SOAP Envelope SOAP Header

2014/11/24

2

1. Web Services概述

Web Services是由服务组件通过某些网 Web Services是由服务组件通过某些网络协议提供的远程调用接口。

通常使用SOAP协议,而SOAP 本身是一种基于XML的高层协议,它需要绑定到某种底层网络通信协议。

2014/11/24 3

Web Services 的定义

Web Services 是操作(operation)集合的接口 Web Services 是操作(operation)集合的接口,它可以通过标准的XML消息机制在网络中存取。

Web Services 使用标准的XML形式来描述,称为业务描述。业务描述提供了与Web 服务进行交互的所有必要信息,包括消息格式、传输协议和位置等。

2014/11/24 4

议和位置等。

Page 3: 5 WebServices.ppt [兼容模式]idc.hust.edu.cn/~rxli/teaching/ds/5 WebServices.pdf · “l” ltithHd dBd“envelope”, complete with a Header and Body SOAP Envelope SOAP Header

2014/11/24

3

Web Services 的特点

Web Services 可以位于任何网络中 不仅是外 Web Services 可以位于任何网络中,不仅是外部的Internet 网络,还可以是内联网,甚至可以在相同的操作系统进程中。

Web Services 不在意其用户界面和表现形式的种类。

除此以外,Web Services 还要求以下特性:

2014/11/24 5

Web Services 应该是自描述的

Web Services 应该是可查找的

Web Services 应该是可以互操作

2. Web Services 模型

3 种角色: 3 种角色: Web 服务提供者

Web 服务请求者

Web 服务注册代理

3 种操作:发布操作

2014/11/24 6

发布操作

查找操作

绑定操作

Page 4: 5 WebServices.ppt [兼容模式]idc.hust.edu.cn/~rxli/teaching/ds/5 WebServices.pdf · “l” ltithHd dBd“envelope”, complete with a Header and Body SOAP Envelope SOAP Header

2014/11/24

4

Web Services 模型(续)

2014/11/24 7

服务与服务描述

Web Services 是由服务描述所表达的接 Web Services 是由服务描述所表达的接口,其实现即为服务。

Web Services 体系架构需要对服务接口和实现的细节进行描述,即为服务描述。

服务描述包括数据结构、操作、绑定信息和网络位置等信息 还包括分类和其

2014/11/24 8

息和网络位置等信息,还包括分类和其他的元数据,这些信息用来实现服务请求者的检索和服务调用。

Page 5: 5 WebServices.ppt [兼容模式]idc.hust.edu.cn/~rxli/teaching/ds/5 WebServices.pdf · “l” ltithHd dBd“envelope”, complete with a Header and Body SOAP Envelope SOAP Header

2014/11/24

5

服务描述的特点

服务描述应声明服务提供者的语义特征 服务描述应声明服务提供者的语义特征

服务描述应声明接口特征,以提供对特定服务的访问。

服务描述还应声明各种非功能特征,如安全要求、事务要求、服务使用价格等。

2014/11/24 9

安全要求、事务要求、服务使用价格等。

Web Services 的开发生命周期

服务提供者设计并实现Web服务 服务提供者设计并实现Web服务

服务提供者将所实现的Web服务通过服务注册代理者进行发布

服务请求者向服务注册代理请求特定的服务

服务注册代理根据请求内容查询UDDI注册中心,为请求者查找特定的服务

2014/11/24 10

为请求者查找特定的服务

服务请求者利用从服务注册代理返回的描述信息产生相应的消息

服务提供者接受到消息后执行相应的Web服务,并将结果返回给服务请求者,完成一次Web 服务。

Page 6: 5 WebServices.ppt [兼容模式]idc.hust.edu.cn/~rxli/teaching/ds/5 WebServices.pdf · “l” ltithHd dBd“envelope”, complete with a Header and Body SOAP Envelope SOAP Header

2014/11/24

6

Web Service 协议栈

2014/11/24 11

Web Service 协议栈 (续) SOAP SOAP

Simple Object Access Protocol

UDDI Universal Description, Discovery and Integration

WSDLW b S i D fi iti L

2014/11/24 12

Web Service Definition Language

WSFL Web Services Flow Language (IBM)

Page 7: 5 WebServices.ppt [兼容模式]idc.hust.edu.cn/~rxli/teaching/ds/5 WebServices.pdf · “l” ltithHd dBd“envelope”, complete with a Header and Body SOAP Envelope SOAP Header

2014/11/24

7

3. SOAP SOAP 是在分布式环境中通过XML 编码进行通 SOAP 是在分布式环境中通过XML 编码进行通信的一种简单的网络协议。

SOAP 协议从本质来说,也是一种应用层协议,它往往是基于某些应用层协议来实现。它可以基于HTTP 协议,可以基于SMTP协议。

SOAP 以XML 形式提供了一个简单的 轻量级

2014/11/24 13

SOAP 以XML 形式提供了一个简单的、轻量级的可以在分散的环境,或者是分布式的环境中点对点地交换结构化和类型化信息的一种机制。

SOAP 组成

SOAP envelope 定义了一个整体的表示框架 SOAP envelope, 定义了 个整体的表示框架。

SOAP encoding rules, 定义了一个编码机制用于交换应用程序定义的数据类型的实例。

SOAP RPC representation, 定义了一个用于表示远端过程调用和响应的约定。

SOAP bi di 定义了 个使用底层传输协议

2014/11/24 14

SOAP binding, 定义了一个使用底层传输协议来完成在节点间交换SOAP 包的约定。

Page 8: 5 WebServices.ppt [兼容模式]idc.hust.edu.cn/~rxli/teaching/ds/5 WebServices.pdf · “l” ltithHd dBd“envelope”, complete with a Header and Body SOAP Envelope SOAP Header

2014/11/24

8

SOAP 消息

SOAP Envelope SOAP Envelope SOAP Header(可选)

SOAP Body

2014/11/24 15

SOAP Message A SOAP message is contained within an XML

“ l ” l t ith H d d B d“envelope”, complete with a Header and Body

SOAP Envelope

SOAP Header(optional)

Web Services: SOAP

16

SOAP Body“payload”

Page 9: 5 WebServices.ppt [兼容模式]idc.hust.edu.cn/~rxli/teaching/ds/5 WebServices.pdf · “l” ltithHd dBd“envelope”, complete with a Header and Body SOAP Envelope SOAP Header

2014/11/24

9

SOAP Message with Binary AttachmentsMIME Header

MIME Boundary

A SOAP message can also contain binary attachments using MIME encoding

SOAP EnvelopeSOAP Header

(optional)

SOAP Body“payload”

Root Body PartMIME Boundary

Web Services: SOAP 17

payload

Body PartMIME Boundary

Attachment

SOAP Structure Envelope contains

Header Body

Header is optional information such as…

Authentication information Message routes

Logging

SOAP Envelope

SOAP HeaderHeader Block

Header Block. . .

Web Services: SOAP 18

Logging Transaction flow

Body contains XML body of RPC callSOAP BodyBody Block

Body Block. . .

Page 10: 5 WebServices.ppt [兼容模式]idc.hust.edu.cn/~rxli/teaching/ds/5 WebServices.pdf · “l” ltithHd dBd“envelope”, complete with a Header and Body SOAP Envelope SOAP Header

2014/11/24

10

SOAP over HTTP Request examplePOST /Temperature HTTP/1.1Host: www.weather.comContent-Type: text/xmlContent-Length: <whatever>SOAPAction: “urn:StockQuote#GetQuote”<s:Envelope

l “htt // 3 /2001/06/

HTTP Header

Soap Extensions

Request example

Web Services: SOAP 19

xmlns:s=“http://www.w3.org/2001/06/soap-envelope"><s:Body>

… …</s:Body>

</s:Envelope>

XML Payload(SOAP request)

XML Messaging in SOAPEDI: Electronic Document Interchange EDI: Electronic Document Interchange SOAP with EDI: XML documents

“Document style SOAP”

RPC: distributed computing, web

Web Services: SOAP 20

RPC: distributed computing, web services “RPC-style” SOAP: parameters and return

values

Page 11: 5 WebServices.ppt [兼容模式]idc.hust.edu.cn/~rxli/teaching/ds/5 WebServices.pdf · “l” ltithHd dBd“envelope”, complete with a Header and Body SOAP Envelope SOAP Header

2014/11/24

11

RPC Messages Typically two messagesyp y g

SOAP Client SOAP Server

Request Message

R M

Web Services: SOAP 21

Response Message

An RPC-style SOAP Messagepublic Float getQuote (String symbol);public Float getQuote (String symbol);

<s:Envelope xmlns:s=“http://www.w3.org/2001/06/soap-envelope”><s:Header>

<m:transaction xmlns:m=“soap-transaction”s:mustUnderstand=“true”>

<transactionID>1234</transactionID></m:transaction>

</s:Header><s:Body>

Web Services: SOAP 22

<s:Body><n:getQuote xmlns:n=“urn:QuoteService”>

<symbol xsi:type=“xsd:string”>IBM

</symbol></n:getQuote>

</s:Body></s:Envelope>

Page 12: 5 WebServices.ppt [兼容模式]idc.hust.edu.cn/~rxli/teaching/ds/5 WebServices.pdf · “l” ltithHd dBd“envelope”, complete with a Header and Body SOAP Envelope SOAP Header

2014/11/24

12

SOAP Response

<s:Envelope xmlns:s=http://www.w3.org/2001/06/soap-envelope>

<s:Body><n:getQuoteResponse xmnls:n=“urn:QuoteService”>

<value xsi:type=“xsd:float”>98.06

</value>/ tQ t R

Web Services: SOAP 23

</n:getQuoteResponse></s:Body>

</s:Envelope>

SOAP over HTTP Response example

HTTP/1.1 200 OKContent-Type: text/xmlContent-Length: <whatever>

<s:Envelope xmlns:s=“http://www.w3.org/2001/06/soap-envelope">< B d >

Response example

HTTP Header

Web Services: SOAP 24

<s:Body>… …

</s:Body></s:Envelope>

XML Payload(SOAP response)

Page 13: 5 WebServices.ppt [兼容模式]idc.hust.edu.cn/~rxli/teaching/ds/5 WebServices.pdf · “l” ltithHd dBd“envelope”, complete with a Header and Body SOAP Envelope SOAP Header

2014/11/24

13

SOAP Example: Request<soap:Envelope>soap:Envelope

<soap:Body><xmlns:m= "http://www.amzn.org/books" /> <m:GetBookPrice>

<m:BookName>FastFoodNation</m:BookName> </m:GetBookPrice>

</soap:Body>

Web Services: SOAP 25

/soap:Body </soap:Envelope>

SOAP Example: Response<soap:Envelope><soap:Envelope>

<soap:Body><xmlns:m="http://www.amzn.org/books"

/><m:GetBookPriceResponse><m:Price>34.5</m:Price>

Web Services: SOAP 26

m:Price 34.5 /m:Price</m:GetBookPriceResponse>

</soap:Body> </soap:Envelope>

Page 14: 5 WebServices.ppt [兼容模式]idc.hust.edu.cn/~rxli/teaching/ds/5 WebServices.pdf · “l” ltithHd dBd“envelope”, complete with a Header and Body SOAP Envelope SOAP Header

2014/11/24

14

SOAP 消息(续) SOAP Envelope SOAP Envelope

在SOAP 消息中必须出现。可以包含名域声明和附加属性。如果包含附加属性,这些属性必须限定名域。类似的,"Envelope"可以包含附加子元素,这些也必须限定名域且跟在SOAP 体元素之后。

SOAP Header 在SOAP 消息中可能出现。如果出现的话,必须是SOAP 封装元素的

第一个直接子元素。SOAP 头可以包含多个条目,每个都是SOAP 头元素的直接子元素 所有 头的直接子元素都必须限定名域

2014/11/24 27

元素的直接子元素。所有SOAP 头的直接子元素都必须限定名域。

SOAP Body 在SOAP 消息中必须出现且必须是SOAP 封装元素的直接子元素。它

必须直接跟在SOAP 头元素(如果有的话)之后。否则它必须是SOAP 封装元素的第一个直接子元素。

SOAP Data Encoding One possible method of serializing data One possible method of serializing data

and encode them into XML Section 5 of the SOAP standard General rules

Web Services: SOAP 28

Page 15: 5 WebServices.ppt [兼容模式]idc.hust.edu.cn/~rxli/teaching/ds/5 WebServices.pdf · “l” ltithHd dBd“envelope”, complete with a Header and Body SOAP Envelope SOAP Header

2014/11/24

15

Compound Values A compound value represents a combination of two or more A compound value represents a combination of two or more

accessors grouped as children of a single accessor

<name><firstname>Joe</firstname><lastname>Smith</lastname>

/

Web Services: SOAP 29

Each accessor has a different name (structs)

</name>

ArraysAn array is a compound value in which An array is a compound value in which the accessors have the same name

<people><person name=‘joe smith’ /><person name=‘john doe’ />

Web Services: SOAP 30

</people>

Page 16: 5 WebServices.ppt [兼容模式]idc.hust.edu.cn/~rxli/teaching/ds/5 WebServices.pdf · “l” ltithHd dBd“envelope”, complete with a Header and Body SOAP Envelope SOAP Header

2014/11/24

16

Multi-Referenced Accessor<people>people

<person name=‘joe smith’><address href=‘#address-1’>

</person><person name=‘john doe’>

<address href=‘#address-1’></person>

</people>

Web Services: SOAP 31

/people<address id=‘address-1’>

<street>111 First Street</street><city>New York</city><state>New York</state>

</address>

Express the Data Type of an Accessor Use the xsi:type attribute on each accessor, explicitly

referencing the data type according to the XML Schemareferencing the data type according to the XML Schema specification:<person><name xsi:type=“xsd:string”>John Doe</name> </person>

Reference an XML Schema document that defines the exact data type of a particular element within its definition:

<person xmlns=“personschema xsd”>

Web Services: SOAP 32

<person xmlns personschema.xsd ><name>John Doe</name> </person>

Reference some other namespace that defines the data type of a particular element within its definition:<person xmlns=“urn:some_namespace”><name>John Doe</name> </person>

Page 17: 5 WebServices.ppt [兼容模式]idc.hust.edu.cn/~rxli/teaching/ds/5 WebServices.pdf · “l” ltithHd dBd“envelope”, complete with a Header and Body SOAP Envelope SOAP Header

2014/11/24

17

Summary SOAP protocol: an XML encoding scheme to SOAP protocol: an XML encoding scheme to

exchange information between web processes: Document style: XML documents RPC style: packing parameters in XML format

Typically SOAP/HTTP, others are possible

Web Services: SOAP 33

4. WSDL WSDL是定义如何用XML语法描述Web服务的 WSDL是定义如何用XML语法描述Web服务的规范。

在服务提供者和服务请求者之间交换的一组消息称为一个操作(Operation)(一个方法调用)。

一系列操作的集合称为端口类型(PortType)。

2014/11/24 34

系列操作的集合称为端 类型 yp 一个服务(Service)包含一系列的端口(Port),每个端口是一个端口类型的具体实现。

Page 18: 5 WebServices.ppt [兼容模式]idc.hust.edu.cn/~rxli/teaching/ds/5 WebServices.pdf · “l” ltithHd dBd“envelope”, complete with a Header and Body SOAP Envelope SOAP Header

2014/11/24

18

Web Service Definition Language (WSDL)

What is a web service? What is a web service?[F. Leymann 2003]

A piece of code that can communicate with other pieces of code via the Internet

WSDL defines What the service is – interface Access specification – how

Location of the service where

Web Services: WSDL 35

Location of the service – where

Ingredients of WSDL

Web Services: WSDL 36

Page 19: 5 WebServices.ppt [兼容模式]idc.hust.edu.cn/~rxli/teaching/ds/5 WebServices.pdf · “l” ltithHd dBd“envelope”, complete with a Header and Body SOAP Envelope SOAP Header

2014/11/24

19

Traditional I/O signaturesP t b i t li t

Web Services Definition Language (WSDL)

Peer-to-peer: web service can act as client or server Proactive : send request

send request, block till response Reactive : receive request

receive request, send responseorder bill order bill_payment

out: bill

Web Services: WSDL 37

receipt payment receipt

out: billin: payment

Port: mechanism to cluster operationsPort as unit of interoperation between services

Supplier Supplier’

Main Structure of WSDL

<definitions namespace = “http://… ”><types> XML schema types </type><message> definition of a message </message><portType> a set of operations </portType><binding> communication protocols </binding><service> a list of binding and ports </service>

Web Services: WSDL 38

g p /</definitions>

Page 20: 5 WebServices.ppt [兼容模式]idc.hust.edu.cn/~rxli/teaching/ds/5 WebServices.pdf · “l” ltithHd dBd“envelope”, complete with a Header and Body SOAP Envelope SOAP Header

2014/11/24

20

Types<types> define data types used in <types> define data types used in defining messages

XML Schema, DTD, and etc. XML Schema must be supported by any

vendor of WSDL conformant products

Web Services: WSDL 39

vendor of WSDL conformant products

Type Examples<types>

<schema targetNamespace=“http://example com/stockquote xsd”<schema targetNamespace= http://example.com/stockquote.xsdxmlns=“http://www.w3.org/2000/10/XMLSchema”>

<element name=“TradePriceRequest”> <complexType>

<all> <element name=“tickerSymbol” type=“string“

minOccur = “1” maxOccur=“10”/> <element name = “payment”>

<complexType><choice>

<element name = “account” type=“string” />

Web Services: WSDL 40

yp g /<element name = “creditcard” type=“string” />

</choice></complexType>

</element></all>

</complexType> </element>

</schema> </types>

Page 21: 5 WebServices.ppt [兼容模式]idc.hust.edu.cn/~rxli/teaching/ds/5 WebServices.pdf · “l” ltithHd dBd“envelope”, complete with a Header and Body SOAP Envelope SOAP Header

2014/11/24

21

WSDL MessagesA <message> element defines the data A <message> element defines the data elements of an operation

Each message can be the input or output of an operation, and may consist of one or more parts

Web Services: WSDL 41

p A part resembles a parameter of a

function

Message Examples

<message name=“GetLastTradePriceInput”> <part name=“body” element="TradePriceRequest"/>

</message>

Web Services: WSDL 42

<message name=“GetLastTradePriceOutput”> <part name=“body” element=“TradePrice” />

</message>

Page 22: 5 WebServices.ppt [兼容模式]idc.hust.edu.cn/~rxli/teaching/ds/5 WebServices.pdf · “l” ltithHd dBd“envelope”, complete with a Header and Body SOAP Envelope SOAP Header

2014/11/24

22

WSDL Ports The <portType> element is the most important WSDL element: The portType element is the most important WSDL element:

it defines a web service the operations that can be performed, and the messages that are involved

The <port> defines the connection point to a web service, an instance of <portType>

I b d f i lib ( d l

Web Services: WSDL 43

It can be compared to a function library (or a module, or a class) in a traditional programming language

Each operation can be compared to a function in a traditional programming language

<portType name=“StockQuotePortType”> <operation name=“GetLastTradePrice”>

<input message=“tns:GetLastTradePriceInput” />

<output message=“tns:GetLastTradePriceOutput”

Web Services: WSDL 44

<output message= tns:GetLastTradePriceOutput />

</operation> </portType>

Page 23: 5 WebServices.ppt [兼容模式]idc.hust.edu.cn/~rxli/teaching/ds/5 WebServices.pdf · “l” ltithHd dBd“envelope”, complete with a Header and Body SOAP Envelope SOAP Header

2014/11/24

23

Operation Types The request-response type is the most common operation type, The request response type is the most common operation type,

but WSDL defines four types: One-way: The operation can receive a message but will not

return a response Request-response: The operation can receive a request and

will return a response Solicit-response: The operation can send a request and will

wait for a response

Web Services: WSDL 45

wait for a response Notification: The operation can send a message but will not

wait for a response

WSDL 1.2 adds: request – multiple response

One-Way Operation“ T V l ”<message name=“newTermValues”>

<part name=“term” type=“xs:string” /><part name=“value” type=“xs:string” />

</message>

<portType name=“glossaryTerms”><operation name=“setTerm”>

Web Services: WSDL 46

p<input name=“newTerm”

message=“newTermValues” /></operation>

</portType >

Page 24: 5 WebServices.ppt [兼容模式]idc.hust.edu.cn/~rxli/teaching/ds/5 WebServices.pdf · “l” ltithHd dBd“envelope”, complete with a Header and Body SOAP Envelope SOAP Header

2014/11/24

24

Request-Response Operation<message name="getTermRequest"><message name= getTermRequest >

<part name="term" type="xs:string"/></message>

<message name="getTermResponse"><part name="value" type="xs:string"/>

</message>

<portType name="glossaryTerms">

Web Services: WSDL 47

<portType name= glossaryTerms ><operation name="getTerm">

<input message="getTermRequest"/><output message="getTermResponse"/>

</operation></portType>

<portType name=“RegisterPort">

One-way and Notification Example

<operation name=“register"><input name=“customerInfo“

message=“RegInfo"/></operation>

<operation name = “register Response”>t t “ ”

Web Services: WSDL 48

<output name = “response”message=“ResponseInfo”/>

</operation></portType >

Page 25: 5 WebServices.ppt [兼容模式]idc.hust.edu.cn/~rxli/teaching/ds/5 WebServices.pdf · “l” ltithHd dBd“envelope”, complete with a Header and Body SOAP Envelope SOAP Header

2014/11/24

25

Binding defines how message are transmitted and

Binding Binding defines how message are transmitted, and

the location of the service <binding> element has two attributes:

type: the port type name: name of the binding

<soap:binding> has two attributes:

Web Services: WSDL 49

style: either “document” or “rpc” transport: protocol to use, e.g., “http”

Binding Example

<binding name="StockQuoteBinding“<binding name StockQuoteBindingtype="tns:StockQuotePortType">

<soap:binding style=“document” transport=“http://schemas.xmlsoap.org/soap/http” />

<operation name="GetLastTradePrice"> <soap:operation

soapAction=“http://example.com/GetLastTradePrice” /> <input>

Web Services: WSDL 50

<soap:body use=“literal” /> </input> <output>

<soap:body use=“literal” /> </output>

</operation> </binding>

Page 26: 5 WebServices.ppt [兼容模式]idc.hust.edu.cn/~rxli/teaching/ds/5 WebServices.pdf · “l” ltithHd dBd“envelope”, complete with a Header and Body SOAP Envelope SOAP Header

2014/11/24

26

<binding name="StockQuoteBinding“type="tns:StockQuotePortType">

<soap:binding style="document“transport="http://schemas.xmlsoap.org/soap/http"/>

<operation name="GetLastTradePrice"><input>

<soap:body use=“encoded”encodingStyle=“http://schemas.xmlsoap.org/

soap/encoding/” />

Web Services: WSDL 51

soap/encoding/ /></input><output>…</output>

</operation></binding>

<service name=“StockQuoteService”>

Services<service name StockQuoteService >

<documentation>My first service

</documentation> <port name=“StockQuotePort”

binding=“tns:StockQuoteBinding”> <soap:address

Web Services: WSDL 52

location=“http://example.com/stockquote” /> </port>

</service>

Page 27: 5 WebServices.ppt [兼容模式]idc.hust.edu.cn/~rxli/teaching/ds/5 WebServices.pdf · “l” ltithHd dBd“envelope”, complete with a Header and Body SOAP Envelope SOAP Header

2014/11/24

27

WDSL 举例

2014/11/24 53

WDSL 举例 (续)

2014/11/24 54

Page 28: 5 WebServices.ppt [兼容模式]idc.hust.edu.cn/~rxli/teaching/ds/5 WebServices.pdf · “l” ltithHd dBd“envelope”, complete with a Header and Body SOAP Envelope SOAP Header

2014/11/24

28

WDSL 举例 (续)

2014/11/24 55

WSDL 总结

definitions WSDL 文件的根元素 定义服务 definitions:WSDL 文件的根元素。定义服务的名称,声明所要用到的名称空间。

types:描述用户和服务器之间使用的数据类型。

message:代表待传输数据的抽象定义。一条message(消息)由逻辑上的消息构件(part)组成 每一个构件(part)使用某种类型系统

2014/11/24 56

组成,每一个构件(part)使用某种类型系统来定义。

Page 29: 5 WebServices.ppt [兼容模式]idc.hust.edu.cn/~rxli/teaching/ds/5 WebServices.pdf · “l” ltithHd dBd“envelope”, complete with a Header and Body SOAP Envelope SOAP Header

2014/11/24

29

WSDL 总结(续) portType 是一个抽象的操作(operation)的集 portType:是 个抽象的操作(operation)的集合。每一个operation指向一条输入消息(message)和输出消息(message).

binding:它表述operation 和message 的具体的协议和数据格式规范。如前所述,operation 和message 由porttype 定义。

2014/11/24 57

和message 由porttype 定义。

service:定义调用具体服务的地址,通常包含一个调用SOAP 服务的URL

Summary WSDL provides a practical framework for defining WSDL provides a practical framework for defining

Services: functions and input/output Bindings using SOAP (document style or PRC

style) Service entry points

Many WSDL services exist (www.xmethods.com),

Web Services: WSDL 58

e.g., http://soap.achchex.com/exec/btrnsoap.dll/wsdl/IBTRN

SOAP

Page 30: 5 WebServices.ppt [兼容模式]idc.hust.edu.cn/~rxli/teaching/ds/5 WebServices.pdf · “l” ltithHd dBd“envelope”, complete with a Header and Body SOAP Envelope SOAP Header

2014/11/24

30

5. UDDIUDDI(Universal Description Discovery and Integration)UDDI(Universal, Description, Discovery and Integration) UDDI是用来描述、发现并集成Web服务的一系列技术

规范。

借助UDDI,企业能够发布并搜索Web服务,从而大大降低发布信息和寻找业务伙伴的成本,提高企业运营效率。

UDDI 的目的在于改进设计阶段和动态运行阶段中的

2014/11/24 59

UDDI 的目的在于改进设计阶段和动态运行阶段中的服务发现,所以UDDI项目开通了一个公共的在线企业注册中心。

UDDI 不仅仅是一个企业和服务的注册中心,它还定义了一套数据结构及API 规范。

UDDI 基本概念

UDDI 规范 UDDI 规范

规定了数据结构、UDDI 编程API 等

UDDI 注册中心(UDDI Registry) 公共注册中心:面向全球提供注册服务

私有注册中心:独立运行的企业或组织内使用

2014/11/24 60

Page 31: 5 WebServices.ppt [兼容模式]idc.hust.edu.cn/~rxli/teaching/ds/5 WebServices.pdf · “l” ltithHd dBd“envelope”, complete with a Header and Body SOAP Envelope SOAP Header

2014/11/24

31

BPEL4WS

BPEL的基本结构 BPEL的基本结构

BPEL的主要元素

BPEL基本活动

BPEL结构化活动

2014/11/24 61

BPEL简介

商业流程执行语言BPEL4WS(Business Process Execution L F W b S i )是专为整合W b S i 而制定Language For Web Services)是专为整合Web Services而制定的一项规范标准。

描述商业活动的抽象高级语言 BPEL描述流程

可执行工作流—描述业务交互中参与者的实际行为; 抽象流程—描述各方参与者对外可见的消息交换。

BPEL的作用是将一组现有的服务组合起来,从而定义一个新

2014/11/24 62

BPEL的作用是将 组现有的服务组合起来,从而定义 个新的Web服务。因此,BPEL基本上是一种实现此种组合的语言

Page 32: 5 WebServices.ppt [兼容模式]idc.hust.edu.cn/~rxli/teaching/ds/5 WebServices.pdf · “l” ltithHd dBd“envelope”, complete with a Header and Body SOAP Envelope SOAP Header

2014/11/24

32

BPEL Composition of Web Services

Process

Component AComponent B

WSDL

Web Services: BPEL 63

A’s WSDLB’s WSDL

BPEL

BPEL的基本结构、主要属性、主要元素 BPEL的基本结构、主要属性、主要元素

BPEL的活动

2014/11/24 64

Page 33: 5 WebServices.ppt [兼容模式]idc.hust.edu.cn/~rxli/teaching/ds/5 WebServices.pdf · “l” ltithHd dBd“envelope”, complete with a Header and Body SOAP Envelope SOAP Header

2014/11/24

33

BPEL的基本结构

<process name="ncname" targetNamespace="uri" queryLanguage="anyURI"?queryLanguage anyURI ?expressionLanguage="anyURI"?suppressJoinFailure="yes|no"?enableInstanceCompensation="yes|no"?abstractProcess="yes|no"?>

<partnerLinks>? ... </partnerLinks><partners>? ... </partners><variables>? ... </variables><correlationSets>? ... </correlationSets><faultHandlers>? </faultHandlers>

2014/11/24 65

<faultHandlers>? ... </faultHandlers><compensationHandlers>? ... </compensationHandlers><eventHandlers>? ... </eventHandlers>activity

</process>

BPEL的主要元素

partnerLinks:合作伙伴链接 partnerLinks:合作伙伴链接

partners:合作伙伴

variables:变量定义

correlationSets:相关集定义

faultHandlers:故障处理程序

2014/11/24 66

compensationHandlers:补偿处理程序

eventHandlers:事件处理程序

Page 34: 5 WebServices.ppt [兼容模式]idc.hust.edu.cn/~rxli/teaching/ds/5 WebServices.pdf · “l” ltithHd dBd“envelope”, complete with a Header and Body SOAP Envelope SOAP Header

2014/11/24

34

伙伴链接类型( partnerLinkTYPE)

<definitions name="ncname" targetNamespace="uri" <definitions name= ncname targetNamespace= uri xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/">

... <plnk:partnerLinkType name="ncname"> <plnk:role name="ncname"> <plnk:portType name="qname"/> </plnk:role> <plnk:role name="ncname">?

< l k tT " "/>

2014/11/24 67

<plnk:portType name="qname"/> </plnk:role> </plnk:partnerLinkType> ... </definitions>

伙伴链接类型

为了描述两个服务之间的会话关系,伙伴链接类型定义了会话中每个服务所扮演的“角色”,并且指定了每个服务所提供的portType,以便接收会话的上下文中的消息。

每个角色的portType可以产生于不同的名称空间,也在产生于相同的名称空间。根据portType来定义合作伙伴链接类型的两个角色。

2014/11/24 68

Page 35: 5 WebServices.ppt [兼容模式]idc.hust.edu.cn/~rxli/teaching/ds/5 WebServices.pdf · “l” ltithHd dBd“envelope”, complete with a Header and Body SOAP Envelope SOAP Header

2014/11/24

35

Partner Links

Partner links are used to represent interactions between a service and each of the parties with which it interacts

Partner links define the messages and port t d i th i t ti i b th

Web Services: BPEL 69

types used in the interactions in both directions, along with role names

Partner B

BPEL and WSDL Partners

Partner APartner B

Web Services: BPEL 70

WSDL A

Partner Link Type

Page 36: 5 WebServices.ppt [兼容模式]idc.hust.edu.cn/~rxli/teaching/ds/5 WebServices.pdf · “l” ltithHd dBd“envelope”, complete with a Header and Body SOAP Envelope SOAP Header

2014/11/24

36

伙伴链接-PartnerLinks 业务流程交互的服务被描述成伙伴链。每个伙伴链的类型由

i k 来描述partnerLinkType来描述。 每个伙伴链都被命名。通过该伙伴链的所有服务交互。 属性myRole指出了业务流程本身的角色,而属性partnerRole指出

了伙伴的角色。如果partnerLinkType仅有一个角色,那么将根据

需要省略其中一个属性。

<partnerLinks>

<partnerLink name="ncname" partnerLinkType="qname"

2014/11/24 71

partnerLink name ncname partnerLinkType qname myRole="ncname"? partnerRole="ncname"?>+

</partnerLink>

</partnerLinks>

业务伙伴-partners

伙伴链表示两个合作伙伴流程之间会话关系。

伙伴partner元素被定义为流程的伙伴链一部分。

伙伴定义是可选的,并且不需要包含流程中定义的所有伙伴链。

伙伴链绝不可以出现在多个伙伴定义中。

<partners>

<partner name="ncname">+

2014/11/24 72

<partnerLink name="ncname"/>+

</partner>

</partners>

Page 37: 5 WebServices.ppt [兼容模式]idc.hust.edu.cn/~rxli/teaching/ds/5 WebServices.pdf · “l” ltithHd dBd“envelope”, complete with a Header and Body SOAP Envelope SOAP Header

2014/11/24

37

“Invoicing” partner link

“Scheduling” partner link

Partner Links

partner link p“Purchasing” partner link

<partnerLink name="scheduling" partnerLinkType="lns:schedulingLT"

Web Services: BPEL 73

“Shipping” partner link

partnerRole="schedulingService"/>

<plnk:partnerLinkType name="schedulingLT"> <plnk:role name="schedulingService">

<plnk:portType name="pos:schedulingPT"/> </plnk:role>

</plnk:partnerLinkType>

The portType used in the partner link

变量

业务流程指定了涉及伙伴之间消息交换的有状态交互。业务流程的状态不仅包括被交换的消息 而且还包括用于业务逻辑和构造发送状态不仅包括被交换的消息,而且还包括用于业务逻辑和构造发送给伙伴的消息的中间数据。

每个变量的类型可以是WSDL消息类型、XML Schema简单类型或XML Schema元素。

属于全局流程作用域的变量称为全局变量;属于流程作用域的变量称为局部变量;

每个变量只有在定义它的作用域和嵌套在它所属于的作用域内才是可见的

2014/11/24 74

<variables>

<variable name="ncname" messageType="qname"?

type="qname"? element="qname"?/>+

</variables>

Page 38: 5 WebServices.ppt [兼容模式]idc.hust.edu.cn/~rxli/teaching/ds/5 WebServices.pdf · “l” ltithHd dBd“envelope”, complete with a Header and Body SOAP Envelope SOAP Header

2014/11/24

38

相关集

消息相关性是允许流程参与有状态会话的 BPEL4WS 机制 消息相 消息相关性是允许流程参与有状态会话的 BPEL4WS 机制。消息相关性有多种用途,例如,维持会话状态。当针对某一项用 BPEL 实现的 Web 服务的的消息抵达时,必须将该消息传送到适当的地方-不是传送到流程的新实例,就是传送到现有实例。消息相关性所要解决的问题是确定一条消息属于哪个对话。

相关集的名称用在invoke、receive和reply活动中,也用在pick活动的onMessage分支中,同时还用在事件处理程序的onMessage形式中。

2014/11/24 75

<correlationSets>? <correlationSet name="ncname"

properties="qname-list"/>+ </correlationSets></correlationSets>

故障处理程序

故障处理程序提供了定义一组自定义的故障处理活动的方法,句法上定 故障处理程序提供了定义 组自定义的故障处理活动的方法,句法上定义为catch活动。定义的每个catch活动能拦截某种特定的故障(由全局惟一的故障QName和有与该故障相关联的数据的变量来定义)。如果没有故障名,那么catch将拦截全部有适合类型的故障数据的故障。使用catch处理程序中的faultVariable属性来指定故障变量。

<faultHandlers>? <catch faultName="qname"? faultVariable="ncname"?>*

activity </catch>

2014/11/24 76

<catchAll>? activity

</catchAll> </faultHandlers>

Page 39: 5 WebServices.ppt [兼容模式]idc.hust.edu.cn/~rxli/teaching/ds/5 WebServices.pdf · “l” ltithHd dBd“envelope”, complete with a Header and Body SOAP Envelope SOAP Header

2014/11/24

39

补偿处理程序

通过补偿处理程序 可以执行可撤销的行为(事务回滚) 通过补偿处理程序,可以执行可撤销的行为(事务回滚)。

补偿处理程序仅仅是补偿活动的包装。在许多情况下,补偿处理程序需要接收当前状态的数据并返回关于补偿结果的数据。

补偿处理程序的调用方法是使用compensate activity。<compensationHandler>?

activity</compensationHandler>

2014/11/24 77

/compensationHandler

事件处理程序

整个流程可以与一组在相应的事件发生时并发 整个流程可以与 组在相应的事件发生时并发调用事件处理程序相关联。

在事件处理程序中进行任何类型的活动,但是不允许使用<compensate/>调用补偿处理程序。

有两种类型的事件: 与WSDL中请求/响应或单向操作对应的传入消息

2014/11/24 78

/消息;

用户设置的时间过后发出的警报。

Page 40: 5 WebServices.ppt [兼容模式]idc.hust.edu.cn/~rxli/teaching/ds/5 WebServices.pdf · “l” ltithHd dBd“envelope”, complete with a Header and Body SOAP Envelope SOAP Header

2014/11/24

40

事件处理程序<eventHandlers>?

<onMessage partnerLink="ncname" portType="qname" operation="ncname" variable="ncname"?>* <correlations>?

<correlation set="ncname" initiate="yes|no">+ </correlations> activity

</onMessage> <onAlarm for="duration-expr"? until="deadline-expr"?>*

activity

2014/11/24 79

activity </onAlarm>

</eventHandlers>

事件处理程序

onMessage标志表示指定的事件是一个等待消息到达的事件。

这个标记及其属性的解释类似于receive活动。partnerLink属性定义请求将到达的合作伙伴链接。portType和operation属性是合作伙伴为引发事件而调用的适当端口类型和操作。变量属性标识包含从合作伙伴接收到的消息的变量。

onAlarm标志标记超时事件。

for属性指定该事件发生之前的持续时间。计算持续时间的计时在

2014/11/24 80

相关的作用域的执行开始的时刻响起。

until属性指定发出警报的特定时刻。这两个属性中仅有一个必须出现在任何onAlarm事件中。

Page 41: 5 WebServices.ppt [兼容模式]idc.hust.edu.cn/~rxli/teaching/ds/5 WebServices.pdf · “l” ltithHd dBd“envelope”, complete with a Header and Body SOAP Envelope SOAP Header

2014/11/24

41

内容大纲

BPEL的基本结构 主要属性 主要元素 BPEL的基本结构、主要属性、主要元素

BPEL的活动

2014/11/24 81

BPEL的活动

基本活动 结构化活动基本活动

<receive> <reply> <invoke> <assign>

结构化活动

<sequence>

<switch>

<while>

2014/11/24 82

<throw> <terminate> <wait> <empty>

<pick>

<flow>

<scope>

<compensate>

Page 42: 5 WebServices.ppt [兼容模式]idc.hust.edu.cn/~rxli/teaching/ds/5 WebServices.pdf · “l” ltithHd dBd“envelope”, complete with a Header and Body SOAP Envelope SOAP Header

2014/11/24

42

receive

<receive>构造业务流程阻塞等待匹配消息的到达 <receive>构造业务流程阻塞等待匹配消息的到达

实例化业务流程的惟一方法是注解receive活动,把 createInstance

属性设置为“yes” 。该属性的缺省值是“no”。

<receive partnerLink="ncname" portType="qname" operation="ncname"variable="ncname"? createInstance="yes|no"?standard attributes>

2014/11/24 83

standard-attributes>standard-elements<correlations>?<correlation set="ncname" initiate="yes|no"?>+

</correlations></receive>

reply

<reply>构造业务流程发送消息以应答通过<receive>接收到的消息。

receive和reply的组合为流程构成了在WSDL portType上的请求-

响应操作。<reply partnerLink="ncname" portType="qname"

operation="ncname"

variable="ncname"? faultName="qname"? standard-attributes>

2014/11/24 84

standard-elements

<correlations>?

<correlation set="ncname" initiate="yes|no"?>+

</correlations>

</reply>

Page 43: 5 WebServices.ppt [兼容模式]idc.hust.edu.cn/~rxli/teaching/ds/5 WebServices.pdf · “l” ltithHd dBd“envelope”, complete with a Header and Body SOAP Envelope SOAP Header

2014/11/24

43

invoke

<invoke>构造允许业务流程调用由合作 <invoke>构造允许业务流程调用由合作伙伴在portType上提供的单向或请求-响应操作。

分异步和同步调用。异步调用仅需要操作的输入变量;同步调用既需要输入变

2014/11/24 85

输 步 输量,又需要输出变量。

invoke

<invoke partnerLink="ncname" portType="qname"<invoke partnerLink ncname portType qname

operation="ncname"

inputVariable="ncname"?

outputVariable="ncname"?

standard-attributes>

standard-elements

<correlations>?

<correlation set="ncname" initiate="yes|no"? pattern="in|out|out-in"/>+

2014/11/24 86

<correlation set= ncname initiate= yes|no ? pattern= in|out|out-in />+

</correlations>

<compensationHandler>?

activity

</compensationHandler>

</invoke>

Page 44: 5 WebServices.ppt [兼容模式]idc.hust.edu.cn/~rxli/teaching/ds/5 WebServices.pdf · “l” ltithHd dBd“envelope”, complete with a Header and Body SOAP Envelope SOAP Header

2014/11/24

44

assign

<assign>构造的作用是用新的数据来更新变量的值 <assign>构造的作用是用新的数据来更新变量的值。

assign可以包括任意数量的基本赋值。

<assign standard-attributes>

standard-elements

<copy>+

f

2014/11/24 87

from-spec

to-spec

</copy>

</assign>

throw

<throw>构造从业务流程中生成故障。throw 构造从业务流程中生成故障。

使用throw发出内部故障。每个故障需要有一个全局惟一的QName,还可选提供数据的变量。故障处理程序可以使用这种数据,来分析和处理该故障并植入需被发送到其他服务的所有故障消息。

<throw faultName="qname" faultVariable="ncname"? standard-attributes>

standard-elements

2014/11/24 88

</throw>

Page 45: 5 WebServices.ppt [兼容模式]idc.hust.edu.cn/~rxli/teaching/ds/5 WebServices.pdf · “l” ltithHd dBd“envelope”, complete with a Header and Body SOAP Envelope SOAP Header

2014/11/24

45

terminate

<terminate>可以用于立即终止该terminate活动在其中运行的业务流程实例。

所有当前正在运行的活动必须尽可能快地终止,而没有任何故障处理或补偿行为。

<terminate standard-attributes>

standard-elements

2014/11/24 89

</terminate>

wait <wait>构造允许等待一段给定的时间或等到某一时刻。 <wait>构造允许等待 段给定的时间或等到某 时刻。

必须确切地指定wait中一个到期条件。

<wait (for="duration-expr" | until="deadline-expr") standard-attributes>

standard-elements

</wait>

2014/11/24 90

Page 46: 5 WebServices.ppt [兼容模式]idc.hust.edu.cn/~rxli/teaching/ds/5 WebServices.pdf · “l” ltithHd dBd“envelope”, complete with a Header and Body SOAP Envelope SOAP Header

2014/11/24

46

empty

<empty>构造允许在业务流程中插入“no op”指令 <empty>构造允许在业务流程中插入 no-op 指令。

empty可用于并行活动的同步。

<empty standard-attributes>

standard-elements

/

2014/11/24 91

</empty>

结构化活动

结构化的活动规定了一组活动发生的顺序,描述了创建业务流程 结构化的活动规定了 组活动发生的顺序,描述了创建业务流程的基本活动组成的结构,这些结构表达了涉及业务协议的流程实例间的控制形式、数据流程、故障和外部事件的处理以及消息交换的协调。

BPEL的结构化活动包括:

顺序控制由sequence、switch和while组成;

活动之间的并发和同步由flow组成;

基于外部事件的不确定的选择由pick组成

2014/11/24 92

基于外部事件的不确定的选择由pick组成。

递归地使用结构化的活动。

Page 47: 5 WebServices.ppt [兼容模式]idc.hust.edu.cn/~rxli/teaching/ds/5 WebServices.pdf · “l” ltithHd dBd“envelope”, complete with a Header and Body SOAP Envelope SOAP Header

2014/11/24

47

sequence

<sequence>构造定义一组按顺序先后执行的活动。 <sequence>构造定义 组按顺序先后执行的活动。

执行顺序是sequence元素中被列出活动的先后顺序。

当sequence中的最后一个活动完成后,该sequence活动也就完成了。

<sequence standard-attributes>

standard-elements

ti it +

2014/11/24 93

activity+

</sequence>

switch

< it h>构造允许从 组分支中 <switch standard-attributes> <switch>构造允许从一组分支中只选择一个活动分支。

switch由case元素定义的一个或多个条件分支的有序列表组成,后面可跟也可以不跟一个otherwise分支。

以case分支的出现顺序检查,第一个条件是true的分支被选择并被作

<switch standard-attributes>

standard-elements

<case condition="bool-expr">+

activity

</case>

<otherwise>?

activity

2014/11/24 94

个条件是true的分支被选择并被作为被执行的活动。如果有条件的分支都未被选择,那么otherwise分支将被选择。

y

</otherwise>

</switch>

Page 48: 5 WebServices.ppt [兼容模式]idc.hust.edu.cn/~rxli/teaching/ds/5 WebServices.pdf · “l” ltithHd dBd“envelope”, complete with a Header and Body SOAP Envelope SOAP Header

2014/11/24

48

while

<while>构造允许指定反复执行一个活动 直到某个成功条件被满足<while>构造允许指定反复执行 个活动,直到某个成功条件被满足

为止。

<while condition="bool-expr" standard-attributes>

standard-elements

activity

</while>

2014/11/24 95

</while>

pick

<pick>构造允许阻塞并等待某一个合适的消息的到达或超时警报 <pick>构造允许阻塞并等待某 个合适的消息的到达或超时警报响起。当其中一个触发器触发后,相关的活动就被执行,pick也随即完成了。

pick活动等待一组相互排斥事件中的一个事件的发生,然后执行与发生的事件相关联的活动。

如果多个事件发生,那么按照时间发生先后或选择原则确定发生事件。

当业务流程的实例的创建是由于接收到一组可能的消息中的一个

2014/11/24 96

当业务流程的实例的创建是由于接收到 组可能的消息中的 个消息而发生的时,可以使用pick的特殊形式。

每个pick活动必须至少包括一个onMessage事件。onMessage事件的语义等同于有关变量属性的可选类型的receive活动。

Page 49: 5 WebServices.ppt [兼容模式]idc.hust.edu.cn/~rxli/teaching/ds/5 WebServices.pdf · “l” ltithHd dBd“envelope”, complete with a Header and Body SOAP Envelope SOAP Header

2014/11/24

49

pick

<pick createInstance="yes|no"? standard-attributes>

standard-elements

<onMessage partnerLink="ncname" portType="qname"

operation="ncname" variable="ncname"?>+

<correlations>?

<correlation set="ncname" initiate="yes|no"?>+

</correlations>

2014/11/24 97

activity

</onMessage>

<onAlarm (for="duration-expr" | until="deadline-expr")>*

activity

</onAlarm>

</pick>

flow

fl 构造指定 个或多个并行地执行的活动 <flow>构造指定一个或多个并行地执行的活动。

<flow standard-attributes>

standard-elements

activity+

</flow>

2014/11/24 98

Page 50: 5 WebServices.ppt [兼容模式]idc.hust.edu.cn/~rxli/teaching/ds/5 WebServices.pdf · “l” ltithHd dBd“envelope”, complete with a Header and Body SOAP Envelope SOAP Header

2014/11/24

50

Seq<sequence>

<receive />

Nesting Structured Activities: Example

FlowSeq Seq

Seq

While

<receive .../><flow>

<sequence><invoke ... /><while ... >

<assign> ... </assign></while>

</sequence>

Web Services: BPEL 99

/ q<sequence>

<receive ... /><invoke ... />

</sequence></flow><reply ... />

</sequence>

案例

Customer Travel

Air

air

order

ack

airresp

hotelresp

2014/11/24 100

Hotel

hotel

hotelresp

Page 51: 5 WebServices.ppt [兼容模式]idc.hust.edu.cn/~rxli/teaching/ds/5 WebServices.pdf · “l” ltithHd dBd“envelope”, complete with a Header and Body SOAP Envelope SOAP Header

2014/11/24

51

案例用BPEL4WS描述的Travel服务如下所示:<process name="Travel" …>p<sequence>

<receive partnerLink="order" variable="ack" …/><receive partnerLink="order" variable="orderreq" …/><flow><sequence>

<invoke partnerLink="air" outputVariable="resulta“ inputVariable="orderreq"…/><reply partnerLink="order" variable="resulta" …/>

</sequence><sequence>

i k Li k "h l" V i bl " l h" i V i bl " d " /

2014/11/24 101

<invoke partnerLink="hotel" outputVariable="resulth" inputVariable="orderreq"…/><reply partnerLink="order" variable="resulth" …/></sequence>

</flow><sequence/>

</process>