BPEL:异步/同步模式

时间:2011-04-04 20:49:48

标签: web-services asynchronous bpel

我想知道它是否正确。

模式接收 - 回复用于同步Web服务。在这种情况下,可以在wsdl文件中定义单个端口。

实际上,调用模式也用于制作异步Web服务。在这种情况下,在wsdl中定义了两个端口。

所以,我的问题是:是否可以使用回复活动来创建异步调用?

提前谢谢你。

1 个答案:

答案 0 :(得分:2)

我真的不明白你的问题,但我尝试解释BPEL中的同步与异步关系,希望它也能回答你的问题:

a)即使是双向请求 - 响应操作(看起来像是同步操作)也可以绑定到异步传输协议(如SMTP,JMS,XMPP,AMQP ......)

b)您描述的模式对于传入服务调用是正确的,即当客户端调用BPEL流程实例时。如果BPEL流程的WSDL将操作定义为请求 - 响应,则需要将其建模为BPEL中的接收 - 响应对。这可以被视为同步呼叫(但参见a))。如果由于某种原因,此操作不能绑定到异步传输协议,并且由于某种原因(例如,之间长时间运行的处理),调用必须是异步的,您需要将操作拆分为两个单向操作。这意味着该进程现在为原始请求提供一个操作,并且调用者现在必须为原始响应提供一个单向操作。这被建模为BPEL中的receive-invoke对。两者都通过合作伙伴链接互连。这是异步的。

单个回复没有意义,因为回复活动始终连接到接收活动,即它仅负责操作的响应部分,不能用于单向操作。如果要调用外部服务,请使用invoke。通过请求 - 响应操作,调用将直接返回结果。如果调用应该是异步的,请使用一个invoke-receive对,每个提供/调用一个单向操作。

HTH,   Tammo