下图展示了BPEL流程的核心结构,以及如何与外部组件进行交互,包括BPEL流程调用的任何WEB服务(案例中的服务A或者服务B)或者外部客户端将BPEL流程作为WEB服务调用。 从这里我们可以看出BPEL分成两个独立的部分;Partner Links,与描述BPEL和外界之间交互的WSDL相关联;核心BPEL流程本身,描述运行时流程执行。 图一 核心BPEL流程 核心BPEL流程有几步组成或者作为他们在BPEL中调用的活动。这些简单的活动包括: 指派:用来操作变量。
转换:用XML数据从源格式向目标格式映射数据的特殊指派。 等待:用来暂停流程。 置空:它什么也不做。用来分……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
下图展示了BPEL流程的核心结构,以及如何与外部组件进行交互,包括BPEL流程调用的任何WEB服务(案例中的服务A或者服务B)或者外部客户端将BPEL流程作为WEB服务调用。
从这里我们可以看出BPEL分成两个独立的部分;Partner Links,与描述BPEL和外界之间交互的WSDL相关联;核心BPEL流程本身,描述运行时流程执行。
图一
核心BPEL流程
核心BPEL流程有几步组成或者作为他们在BPEL中调用的活动。这些简单的活动包括:
- 指派:用来操作变量。
- 转换:用XML数据从源格式向目标格式映射数据的特殊指派。
- 等待:用来暂停流程。
- 置空:它什么也不做。用来分支流程,活动在语句结构上的需求,但是你不希望执行活动。
活动结构通过流程控制流。这些包括:
- While:用来执行环路。
- Switch:执行假定分支的构成。
- Flow:用来平行执行实施分支。
- FlowN:用执行若干平行动态分支。
还包括消息活动(例如RECEIVE,INVOKE,REPLY和PICK)。
BPEL流程中的活动可以细分成活动逻辑组,使用Scope活动。也为结构和组织你的流程提供一种有用的方式,它也能使你为适用于范围的变量、故障处理和补偿处理定义属性。
变量
另外,每一个BPEL流程也可以定义变量,用来保持流程的状态,通过流程和消息一样发送和接收。他们可以定义流程水平,被认为是全球的和流程所有部分可视的。或者它可以在他们的可视活动包含在Scope之内进行声明。
变量有以下类型:
- 简单类型:可以用XML Schema定义的任何简单数据(例如字符、证书、布尔类型和浮点。)。
- WSDL消息类型:用来保持WSDL消息发送或者从合作伙伴处接收的内容。
- 元素:保持复杂或者XML Schema元素都可以定义WSDL文件或者分离的XML Schema。
变量操作<assign>活动,可以用来从一个变量到另一个变量拷贝数据,也可以用XPathExpressions或者XSLT创建S新数据。
对变量而言,WSDL消息或者复杂元素,我们可通过指定愿意使用的XPathExpressions变量部分,同其子组件水平进行工作。
Partner Links
流程和其他方(或者合作伙伴)的所有交互都是通过与他们匹配的WSDL文件定义的WEB服务。尽管每个服务完全有WSDL描述,它不能定义流程和合作伙伴间的关系,这个合作伙伴是式服务的消费者以及提供者。首先,这个关系可能是含蓄的。尽管,这不是常例,所以BPEL使用Partner Links来明确定义这个关系。
Partner Links用< PartnerLinkType>定义扩展WSDL(用BPEL标准定义)。不论你参照的WEB服务的WSDL是否包含< PartnerLinkType >,JDeveloper都将自动询问你是否想创建一个。假设你回答是,它将作为独立的WSDL文档创建,然后输入原来的WSDL中。
作者
相关推荐
-
保险公司如何能从BPEL中获益
对于保险业整合不同系统是一件寻常的工作。但保险公司经常会面临监管条例改变和应对不同的顾客需求。为了解决这些系统问题,软件专家正在使用一种强大的工具——BPEL。
-
2013年业务流程执行语言(BPEL)现状
在SOA领域中,BPEL拥有属于自己的集成系统和自动化工作流,为协调完全异构系统而提供一致的流程。
-
如何开发BPEL复合应用
大多数软件架构师对应用的组件化、SOA和工作流或者服务总线流程非常熟悉,也对组合应用如何将这些基本元素结合在一起非常熟知。
-
如何在SOA中执行BPEL测试?
几乎所有面向服务架构(SOA)用户都在使用业务流程执行语言(BPEL)。作为编排粗粒度的业务流程流工具,BPEL实际上是行业的标准,但是还是会引起测试问题。