一、为什么选择BPEL4WS
-
可以使用行业范围内的规范来广告、发现和调用Web服务
-
开发人员和用户可以通过组合和订购可用的基本服务来解决复杂问题
-
服务组合允许服务重用并加速复杂的服务开发
-
提供一种表示法,用于将Web服务的交互描述为业务流程
-
编写使用Web服务的程序,通过组合一组现有服务来定义新的Web服务
-
编写作为Web服务的程序,组合服务的接口被描述为任何其他Web服务
二、BPEL4WS过程的结构
<process ...>
<partners> ...
</partners> <!--流程与之交互的Web服务-->
<containers> ...
</containers> <!--流程使用的数据-->
<correlationSets> ... <!--用于支持异步交互-->
</correlationSets>
<faultHandlers> ... <!--代替执行路径已处理错误条件-->
</faultHandlers>
<compensationHandler> ... <!--undo动作时执行的代码-->
</compensationHandler>
(activities)* <!--该过程实际是做什么的-->
</process>
三、BPEL的基本元素
-
BPEL流程主要包括对其他服务的调用或从其他服务接收调用
-
Partner:与流程交互的其他服务
-
invoked partner:流程调用的服务,作为其算法的组成部分
-
client partner:调用流程
-
第三方partner:流程调用的服务 和 调用流程
-
-
Partner(Service) Link Type (SLT)
-
表示第三方声明两个(或更多潜在Web服务之间的关系)
-
定义角色集合,其中每个角色都表示<portTypes>的列表
-
当两个服务交互时,伙伴链接类型是它们如何交互的声明
-
定义了角色以及角色需要支持的端口类型
-
<partnerLinkType name=“...”>
<role name=“...">
<portType name=“...” />*
</role>
<role name=“...”>
<portTyp