在BPEL中,几个基本元素之间的关系主要通过以下几个关键的标签定义
<partnerLink>
<partnerLinkType>
<portType>
其中<partnerLink>和<partnerLinkType>是BPEL的扩展标签,在BPEL的哲学中,一个业务是一组服务[1,2]的集合,业务包括两个部分,一部分是本身具有的,可被外界调用的服务,另一部分是本身不具有,应该去调用外部的服务。因此,业务至多有两个规则,至少有一个,这里的规则在BPEL中定义为<partnerLink>的两个属性,myRole以及partnerRole,这里的Role对应于一个具体的WebService服务。
另一方面,webService服务并不是直接和partLink进行关联的,这其中又增加了一层,这一层也就是<partnerLinkTypes>,这个部分在<partnerLink>中使用属性,partnerLinkType进行关联。每一个<partnerLinkType>是一组普通规则的集合,通过规则将Webservice定义的服务接口和partnerLinkType进行关联,每一个WebService可以对应多个Role.
这种设计,使的可以非常灵活的对业务流程进行配置,对于相同的WS服务,在不同的业务中进行组合,通过将Role转变为myRole或者partnerRole定义服务在业务中所处的地位,同时也可以看到,BPEL的设计中认为业务本身的完成无非是自己提供给别人的服务调用和调用其他服务两种,而且对于这样的服务在一个BPEL业务中只能存在两个方向,这也就是说BPEL的业务中是对两个且最多只有两个WS服务的整和,再由这些成对的小BPEL业务组织成整个完整的业务流程。
<partnerLink>
<partnerLinkType>
<portType>
其中<partnerLink>和<partnerLinkType>是BPEL的扩展标签,在BPEL的哲学中,一个业务是一组服务[1,2]的集合,业务包括两个部分,一部分是本身具有的,可被外界调用的服务,另一部分是本身不具有,应该去调用外部的服务。因此,业务至多有两个规则,至少有一个,这里的规则在BPEL中定义为<partnerLink>的两个属性,myRole以及partnerRole,这里的Role对应于一个具体的WebService服务。
另一方面,webService服务并不是直接和partLink进行关联的,这其中又增加了一层,这一层也就是<partnerLinkTypes>,这个部分在<partnerLink>中使用属性,partnerLinkType进行关联。每一个<partnerLinkType>是一组普通规则的集合,通过规则将Webservice定义的服务接口和partnerLinkType进行关联,每一个WebService可以对应多个Role.
这种设计,使的可以非常灵活的对业务流程进行配置,对于相同的WS服务,在不同的业务中进行组合,通过将Role转变为myRole或者partnerRole定义服务在业务中所处的地位,同时也可以看到,BPEL的设计中认为业务本身的完成无非是自己提供给别人的服务调用和调用其他服务两种,而且对于这样的服务在一个BPEL业务中只能存在两个方向,这也就是说BPEL的业务中是对两个且最多只有两个WS服务的整和,再由这些成对的小BPEL业务组织成整个完整的业务流程。