异步操作和 Web 服务,第 3 部分: 向 Web 服务添加业务语义
2010-03-23 00:00:00 来源:WEB开发网管理请求的接收、把请求路由到适当的流程实例、执行完成一个或多个任务的流程逻辑、确保流相关性得到满足并且在所有的处理完成后立即生成响应 ― 所有这些都可以很容易地用 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>
- ››web安全之信息刺探防范1
- ››webqq 最新加密算法
- ››webdriver 数据库验证方法
- ››WebSphere Application Server 7.0 XML Feature P...
- ››Web2.0网络时代基于社会影响力的声望值
- ››Web服务器搭建:配置Linux+Apache+Mysql+PHP(或Pe...
- ››操作系统资源不足两种方案解决办法
- ››WebLogic调整Java虚拟机性能优化参数
- ››webqq2.0协议研究(3)-ClientId生成
- ››Web.config配置文件
- ››WebBrowser组件的execWB方法——Delphi控制浏览器...
- ››Web前端设计模式--制作漂亮的弹出层
更多精彩
赞助商链接