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

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

 2010-03-23 00:00:00 来源:WEB开发网   
核心提示: 管理请求的接收、把请求路由到适当的流程实例、执行完成一个或多个任务的流程逻辑、确保流相关性得到满足并且在所有的处理完成后立即生成响应 ― 所有这些都可以很容易地用 BPEL 描述出来、用兼容的(compliant)业务流程引擎来处理,而无需 IT 编程人员开发复杂的同步流-控制逻辑,异步操作和

管理请求的接收、把请求路由到适当的流程实例、执行完成一个或多个任务的流程逻辑、确保流相关性得到满足并且在所有的处理完成后立即生成响应 ― 所有这些都可以很容易地用 BPEL 描述出来、用兼容的(compliant)业务流程引擎来处理,而无需 IT 编程人员开发复杂的同步流-控制逻辑,他们也不必管理流程状态数据。

利用相关器,BPEL 使业务流程引擎能够创建新的流程实例来处理入站请求或者根据请求内消息属性的值把入站请求路由到现有的流程实例。在可以并行执行多个活动以优化性能的流程流中,需要使后继的相关活动同步。为标识同步相关性,BPEL 使用活动定义内的 links 来控制活动间的同步。如果一个活动的输出结果需要作为另一个活动的输入(或者换句话说,一个活动必须在另一个活动前执行),那么这个活动将把自身标识为一个链接的 source ,而依赖它的活动将把自己标识为 target 。有了这些信息,业务流程引擎就可以管理流程流的相互依赖性来控制整体输出结果,从而确保与请求客户机相关的响应的生成是一种一致的行为。

清单 5. link、source 和 target 示例

  
<flow> 
<!--Three synchronization links are defined --> 
<links> 
<link name="ReceiveRequest"/> 
<link name="XtoY"/> 
<link name="CtoD"/> 
</links> 
 
<receive partner="RequestingClient"> 
<source linkName="ReceiveRequest"/> 
</receive> 
<sequence name="X"> 
<target linkName="ReceiveRequest"/> 
<source linkName="XtoY"/> 
<invoke name="A" .../> 
<invoke name="B" .../> 
</sequence> 
<!--Sequence Y is dependent on Sequence X completing --> 
<sequence name"Y"> 
<target linkName="XtoY"/> 
<receive name="C"/> 
<source linkName="CtoD"/> 
</receive> 
<invoke name="E" .../> 
</sequence> 
<!--Invoke partner Requesting Client is dependent on Sequence X and Sequence Y completing --> 
<sequence name"D"> 
<target linkName="CtoD"/> 
<invoke partner="RequestingClient"/> 
<invoke name="F" .../> 
</sequence> 
</flow>  

上一页  5 6 7 8 9 10 

Tags:异步 操作 Web

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