WEB开发网
开发学院软件开发Python 异步操作和 Web 服务,第 3 部分: 向 Web 服务添加... 阅读

异步操作和 Web 服务,第 3 部分: 向 Web 服务添加业务语义

 2010-03-23 00:00:00 来源:WEB开发网   
核心提示: 这些机制使 IT 设计师和业务分析师可以满足我在本文开头处列出的异步操作的第 2 和第 4 条要求,利用相关器大多数情况下,异步操作和 Web 服务,第 3 部分: 向 Web 服务添加业务语义(8),一个服务将被回调机制的每个参与伙伴使用,因此,从本质上来说,这是在消息内定义了一些字段,需要把

这些机制使 IT 设计师和业务分析师可以满足我在本文开头处列出的异步操作的第 2 和第 4 条要求。

利用相关器

大多数情况下,一个服务将被回调机制的每个参与伙伴使用,因此,需要把相关器的使用定义为业务流程定义的一部分。通常情况下,业务协议信息,比如客户标识、订单号、供应商标识和发票号将被用于把请求与响应关联起来;当几个交互需要互相关联起来时,有时必须把各个相关器结合起来。最初的交互可能使用客户标识和订单号相关器的组合,而响应和后续的交互可能也包含一个发票号相关器。

由于业务协议数据在实际交互中被用于把业务任务关联在一起,因此,自然也是使用这种数据把 Web 服务请求和响应关联起来。为把业务协议数据作为相关器使用,您需要使用流程定义把消息属性定义为已命名的数据类型,这样您就可以给现有类型赋予更密切相关的意思(例如,把 OrderNumber 属性定义为 integer 类型或者把 VendorID 属性定义为 String 类型)。一旦定义了一个属性,您就可以指定一个 propertyAlias 来根据消息的结构(例如,通过标识 WSDL 的 <message> 和 <part> 元素)和 XPATH 查询字符串标识出特定的业务协议数据位于应用程序消息的何处。从本质上来说,这是在消息内定义了一些字段,在这些字段中可以找到相关器的值。

清单 3. property 和 propertyAlias 示例

targetNamespace="http://example.com/supplyCorrelation.wsdl" 
xmlns:tns="http://example.com/supplyMessages.wsdl" 
xmlns:bpws=http://schemas.xmlsoap.org/ws/2002/07/business-process/ 
<!-- define correlation properties --> 
<bpws:property name="customerID" type="xsd:string"/> 
<bpws:property name="orderNumber" type="xsd:int"/> 
<bpws:property name="vendorID" type="xsd:string"/> 
<bpws:property name="invoiceNumber" type="xsd:int"/> 
<bpws:propertyAlias propertyName="customerID" 
messageType="tns:POMessage" part="PO" 
query="/CID"/> 
<bpws:propertyAlias propertyName="orderNumber" 
messageType="tns:POMessage" part="PO" 
query="/Order"/> 
<bpws:propertyAlias propertyName="vendorID" 
messageType="tns:InvMessage" part="IVC" 
query="/VID"/> 
<bpws:propertyAlias propertyName="invoiceNumber" 
messageType="tns:InvMessage" part="IVC" 
query="/InvNum"/> 

上一页  3 4 5 6 7 8 9 10  下一页

Tags:异步 操作 Web

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接