消息活动 BPEL定义了三个消息活动<receive>、<reply>和<invoke>。如何使用这些取决于消息交互是同步的还是异步的以及BPEL流程是服务消费者还是服务提供者。 同步消息 同步消息中,调用者将受到阻碍直到收到回复(或者超时);BPEL流程将在转向下个活动之前,等待回复。 正如我们在下图中所看到的一样,流程A使用<invoke>活动调用一个同步WEB服务(例子中的流程B);一旦它发送初始请求,它将阻碍并等待来自流程B的响应回复。
图二 流程B使用<receive>活动接受请求;一旦它已经处理请求,就……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
消息活动
BPEL定义了三个消息活动<receive>、<reply>和<invoke>。如何使用这些取决于消息交互是同步的还是异步的以及BPEL流程是服务消费者还是服务提供者。
同步消息
同步消息中,调用者将受到阻碍直到收到回复(或者超时);BPEL流程将在转向下个活动之前,等待回复。
正如我们在下图中所看到的一样,流程A使用<invoke>活动调用一个同步WEB服务(例子中的流程B);一旦它发送初始请求,它将阻碍并等待来自流程B的响应回复。
图二
流程B使用<receive>活动接受请求;一旦它已经处理请求,就使用<reply>活动发送响应给流程。
理论上,流程B将花费何其希望的回复时间一样长的时间,但是实际上流程A在超时之前,只需等待很短的时间(例如30秒),<invoke>运作在假定已经出错。因此如果流程B在回复之前花费大量时间,你应该模拟异步发送和接受。
异步消息
在异步消息中,关键不同之处是一旦调用者发送请求,发送运行将马上返回,BPEL流程可能继续添加活动直到准备接受回复,在那个点上,流程将阻碍直到接受回复。
如果我们看到下面这个图,你可能会注意到就像同步请求流程A使用<invoke>活动调用异步WEB异步服务。虽然,不同是它不阻碍进行等待响应,而是继续添加流程直到真备好接受流程的响应。然后使用<receive>活动接收。
图三
相反地,流程B使用<receive>活动接受初始请求,使用<invoke>活动发送回复响应。
在逻辑层,在同步和异步消息之间(尤其是如果在流程A中<invoke>和<receive>活动之间没有活动)有一点不同,技术层面上这是个关键的不同之处。
这是因为异步消息,我们有两个<invoke>、<receive>配对,每一次响应单独进行WEB服务运行;一个发送请求,另一个用来回复。
对如如何选择时间长度来让流程B服务请求,异步消息支持更久一点的处理时间。总之,流程B返回相应的时间超过30秒,就该转向异步消息。
单向消息
异步消息的一个变种是单向消息。从调用流程中涉及单一消息发送,无需响应。
通过下图,我们注意到就像异步求求流程A使用<invoke>活动发送消息给流程B。
一旦流程A已经发送消息,它将继续处理直达完成,也就是说从不停下来等待来自来自流程B的响应回复。同样的流程B,在收到消息后,继续处理直到完成,从不发送任何响应给流程A。
图四
作者
相关推荐
-
保险公司如何能从BPEL中获益
对于保险业整合不同系统是一件寻常的工作。但保险公司经常会面临监管条例改变和应对不同的顾客需求。为了解决这些系统问题,软件专家正在使用一种强大的工具——BPEL。
-
2013年业务流程执行语言(BPEL)现状
在SOA领域中,BPEL拥有属于自己的集成系统和自动化工作流,为协调完全异构系统而提供一致的流程。
-
如何开发BPEL复合应用
大多数软件架构师对应用的组件化、SOA和工作流或者服务总线流程非常熟悉,也对组合应用如何将这些基本元素结合在一起非常熟知。
-
如何在SOA中执行BPEL测试?
几乎所有面向服务架构(SOA)用户都在使用业务流程执行语言(BPEL)。作为编排粗粒度的业务流程流工具,BPEL实际上是行业的标准,但是还是会引起测试问题。