1.Receive(接收)/ Reply(回答)
<receive>活动从流程的外部伙伴那获取数据,并将其保存到流程变量。通常一个Receive是一个流程的初始点,它会阻塞执行直到匹配的消息的到达。
<reply>活动发送消息给伙伴来应答通过receive活动所接收到的消息。receive和reply的组合对应着WSDL portType上定义的一个请求-响应操作。如果receive活动对应着一个单向(one-way)操作,则不能在流程中定义对应的reply活动。
<bpws:receive createInstance="yes" name="Receive" operation="buy" partnerLink ="StockService" portType="ns0:StockService" />
…
<bpws:reply name="Reply" operation="buy" partnerLink="StockService" portType=" ns0:StockService" />
|
上面就是BPEL中包含receive和reply活动的片段。值得注意的是,receive和reply活动中都是通过“partnerLink”来引用预定义伙伴关系的,而且需要设置“portType”和“operation”属性来声明流程实现的WSDL portType和操作。此外,如果将receive活动作为流程的起始点,则需要将receive活动的createInstance属性设置为“yes”,它指明了当流程接收到匹配的消息时会创建新的流程实例来处理该请求。在BPEL流程中我们还可以定义更为复杂的消息响应机制,可以将特定的消息关联到相应的流程实例中。CorrelationSet(关联集合)就是为了解决上述问题而出现的。
2.Invoke请求
<invoke>活动允许业务流程同步或异步调用由合作伙伴提供的服务,服务实现可以是单向或请求-响应操作。Invoke活动使用“partnerLink”来引用伙伴服务。同过“portType”和“operation”指定相应的WSDL接口和操作:
<bpws:invoke name="GetStockQuote" operation="getQuote" partnerLink="StockQuote" portType="ns2:net.xmethods.services.stockquote.StockQuotePortType" >
</bpws:invoke>
|
如果在请求服务的过程中发生异常,则可以通过错误响应和补偿机制来加以处理,这对业务流程,特别是长时间运行的流程是非常重要的,我们将在后面的章节进行讲解。
3.Assign赋值
<assign>活动的作用是用新的数据来更新变量的值。Assign活动可以包括任意数量的基本复制操作:
<bpws:assign name="Assign">
<bpws:copy>
<bpws:from> China</bpws:from>
<bpws:to variable="country"/>
</bpws:copy>
</bpws:assign>
|
assign活动还可把端点引用复制到合作伙伴链接,或把合作伙伴链接复制到端点引用,以实现服务的动态绑定。
4.Wait等待
<wait>活动会暂停流程执行,等待一段给定的时间或等到某一时刻才继续运行。在WebSphere Process Server 6.0中,开发者可以非常灵活地指定wait中的到期条件,比如等待多少秒,等到特定的一个日期,或是使用内置的日期表现法。也可以使用Java代码来动态指定等待时间。
BPEL也提供了丰富的结构化活动,可以灵活地控制流程执行。
5.Sequence顺序
<sequence>活动定义一组按顺序先后执行的活动。执行顺序是sequence活动中嵌套活动的先后顺序。当sequence中的最后一个活动完成后,该sequence活动也就完成了。
6.Flow流程
<flow>活动可以描述更为复杂的活动执行顺序。我们可以利用flow指定一个或多个并行执行的活动。为了定义任意的控制结构,可以在并行的活动中使用链接。
flow能进一步表达直接或间接嵌套在其中的活动之间的同步相关性,link(链接)用来表达这种同步相关性。
flow活动出现的所有link必须在flow活动中分开定义,并通过名称进行标识。flow活动中嵌套的活动需要通过source或target属性来标明该活动为哪个链接的源或目标活动。在flow活动中,对于每一个link必须有且仅有一个活动作为它的源活动,同样有且仅有一个活动作为它的目标活动。目标活动会在源活动完成之后执行。这样flow内部的活动就可以通过活动构成一个有向图。
我们还可以在link的源上定义transition(变迁)条件,当源活动完成之后,BPEL引擎会检查变迁条件是否满足,如果link的转移条件满足目标活动就会执行。
7.Switch分支
<switch>活动与传统的结构化语言的功能类似,从一组分支情况中选择一个特定的活动分支加以执行。switch由case元素定义的一个或多个条件分支的有序列表组成,后面可跟也可以不跟一个otherwise分支。以case分支的出现顺序检查,第一个条件是true的分支被选择并被作为被执行的活动。如果有条件的分支都未被选择,那么otherwise分支将被选择,如图1所示。
在IBM的WPS中,用户可以使用Java代码,内置的数据(true或false等)等定义条件表达式。
8.While——While循环
<while>活动也继承于传统的结构化编程思想,提供了while-do循环结构的支持。它可以包含一个或多个活动。它指定反复执行其内部活动,直到成功条件不被满足为止。在WPS中允许其使用Java代码来描述条件表达式。
9.Pick 选取(在WPS中被称为Receive Choice)
<pick> 活动会等待一组相互排斥事件中的一个事件的发生,然后执行与发生的事件相关联的活动。它会阻塞业务流程执行,以等待某一特定的事件发生,比如接收到一个合适的消息或超时警报响起。当其中任何一个事件被触发后,业务流程就会继续执行,pick也随即完成了,不会再等待其他事件的发生。
每个pick活动必须至少包括一个onMessage事件。onMessage事件的语义等同于有关变量属性的可选类型的receive活动。pick活动还可以定义onAlarm事件用于指定超时警报。
如图2所示描述了一个订单业务流程,它会利用pick活动来等待客户明确地确认或取消订单,并进行下一步处理,如果客户在指定的时间内没有响应,则会触发onAlarm事件并通知客户。
pick活动也可以作为业务流程的起始点,指定流程可以接收多种不同的消息,并让流程在接收到特定消息后创建新的流程实例来处理消息。这里与receive活动类似,我们需要将pick活动的createInstance属性设置为“yes”。当然这时候就不应该定义onAlarm超时事件。这是一个非常方便的特性,比如用户希望能够分别接收并处理来自网页、电子邮件或即时消息发送的请求,就可以通过pick活动非常自然地描述业务流程。
本文转自:http://www.webjx.com/program/zonghe-1972.html
分享到:
相关推荐
- 流程主体由基本活动和结构活动组成,包括接收、调用、回复等与外界交互的基础活动,赋值活动(assign)用于数据传输,throw活动抛出故障,terminate活动终止流程。 BPEL作为服务导向架构(SOA)的关键组成部分,...
1. **BPEL基础知识**:理解BPEL的基本概念,如活动(Activities)、流程(Processes)、变量(Variables)、事件(Events)和合作伙伴链接(Partner Links)。BPEL流程由一系列操作顺序组成,这些操作可以是服务调用...
活动是BPEL流程的基本构建块,它们可以是简单的动作,如发送消息或接收响应,也可以是更复杂的子流程。流程是由一系列活动组成的,定义了业务逻辑的执行顺序。变量则用于在流程内部存储数据,而服务接口则是流程与...
- **基本活动(Basic Activities)** - **Activity-invoke**: 用于调用另一个Web服务。 - **Activity-receive**: 接收来自外部的Web服务消息。 - **Activity-reply**: 向发送方返回消息。 - **Activity-assign**: ...
本文将详细介绍如何在Eclipse集成开发环境中安装并使用BPEL(Business Process Execution Language)插件,以便于离线环境下进行业务流程开发。BPEL是一种用于构建企业服务总线(ESB)中的业务流程的XML规范,它允许...
1. **BPEL基础概念**:讲解BPEL的基本概念,如活动(Activities)、流程(Processes)、变量(Variables)和事件(Events),以及它们在业务流程中的作用。 2. **BPEL语法**:介绍BPEL的XML语法结构,包括流程定义...
### Oracle BPEL Process Manager 快速入门指南 ...通过本文介绍的基本概念、快速入门指导以及高级特性的探讨,希望读者能够对Oracle BPEL Process Manager有一个全面而深入的理解,并能够在实际工作中熟练应用。
该初级版文档不仅介绍了WS-BPEL的基本概念,还通过实例和参考资料来帮助读者理解其核心特性。例如,文档详细解释了BPEL程序的架构,它由多个活动(activities)组成,这些活动可以是顺序执行,也可以根据条件分支或...
本文旨在介绍如何利用IBM WebSphere产品套件中的工具,如WebSphere Business Modeler、WebSphere Integration Developer以及WebSphere Process Server,来构建一个完整的BPEL应用程序。这一过程将涵盖业务模型的定义...
1. **BPEL基本结构**:BPEL流程通常由一系列活动(Activities)组成,如Receive、Invoke、Assign、If、While等,这些活动定义了流程的逻辑顺序和控制流。 2. **服务交互**:BPEL流程可以调用Web服务,接收来自外部...
BPEL4WS设计时考虑到了灵活性和可扩展性,允许开发者添加自定义活动和函数库。这意味着除了标准的BPEL4WS操作之外,还可以通过扩展机制来实现更为复杂的功能。 ##### 4.4 业务流程的生命周期 文档还介绍了业务流程...
White撰写的论文,旨在介绍如何利用业务流程建模符号(BPMN)来创建易于理解的业务流程图形表示,并进一步将其转换为可执行的业务流程执行语言(BPEL)流程。 #### 业务流程建模符号(BPMN) BPMN是一种用于描述...
- **活动**: BPEL中的基本处理单元,可以是简单的任务或复杂的流程。 - **活动排序、并行性和同步**: 定义了活动之间的执行顺序以及它们是否同时运行。 - **消息交换**: 描述了两个或多个参与者之间的通信。 - **...
《BPEL4WS 2.0》(Web Services Business Process Execution Language Version 2.0)是一份由OASIS(组织为开放标准)发布的规范文档,主要介绍了如何利用BPEL 2.0语言来描述业务流程和服务交互协议。该文档旨在为...
针对这些问题,本文提出了一种新的BPEL流程解析方法,即基于与服务直接相关的活动将流程划分为若干基本单元,并通过递归算法将其他活动归类到相关单元,产生多个子流程,实现原有流程的分割,使得业务流程可分布式...