0

我想知道它是否正确。

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

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

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

先感谢您。

4

1 回答 1

2

我不太了解您的问题,但是我尝试解释 BPEL 中的同步与异步关系,希望它也能回答您的问题:

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

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

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

HTH,塔莫

于 2011-04-06T17:13:46.777 回答