2008年5月12日星期一

SOA_009:BPEL 交互模式总结 (摘录+整理)

1. One-Way Message
左边调用方的BPEL定义中只有Invoke Activity。
右边被调用方的
BPEL定义中只有Receive Activity。
2. Synchronous Interaction
左边调用方的BPEL定义中只有Invoke Activity。
右边被调用方的
 BPEL定义中使用Receive Activity接收请求,使用Reply Activity发送响应。
被调用方的 BPEL定义是一个同步的BPEL,所以只要看到
Receive +  Reply Activity就知道这是一个同步的BPEL。
3. Asynchronous Interaction
左边调用方的BPEL定义中使用Invoke Activity发送请求,使用Receive Activity接收响应。
右边被调用方的 BPEL定义中使用Receive Activity接收请求,使用Invoke Activity发送响应。
被调用方的 BPEL定义是一个异步的BPEL,所以只要看到 Receive +  Invoke Activity就知道这是一个异步的BPEL。
同时,调用方的BPEL定义让我们知道调用一个异步的BPEL所要用到的Activity
4. Asynchronous Interaction with Timeout
如果调用异步的BPEL,但响应迟迟没有回来怎么办?
这时,我们可以使用Pick Activity + 分支onMessage 和onAlarm。
如果在onAlarm规定的时间内响应回来了,则走onMessage分支;
如果在onAlarm规定的时间内响应依然没有回来,则走onAlarm 分支,放弃等待响应。

5. Asynchronous Interaction with a Notification Timer
如果调用异步的BPEL,响应迟迟没有回来,但由于响应很重要,所以必须要继续等,这时有什么好办法通知管理员?
这时,我们可以使用Scope Activity(其中包括Invoke Activity和Receive Activity)+ onAlarm。
如果在onAlarm规定的时间内响应回来了,则Receive Activity 接收响应;
如果在onAlarm规定的时间内响应依然没有回来,则执行onAlarm 分支,然后继续等待响应。
6. One Request, Multiple Responses

7. One Request, One of Two Possible Responses
8. One Request, a Mandatory Response, and an Optional Response


9. Partial Processing


10. Multiple Application Interactions

没有评论: