级别: 初级 Nirmal Mukhi (nmukhi@us.ibm.com), 软件工程师, IBM
2002 年 11 月 01 日 本文是创建 BPEL4WS 文档的快速参考指南,其中提供了对每种 BPEL4WS 文档元素的简短描述,这些元素包括相关属性、相关元素等。它是为
BPWS4J 编辑器的用户设计的,但它对任何试图创建 BPEL4WS 文档但并不完全熟悉其语言的人都有用。
结构化活动
Flow
提供并发性和同步性的结构化活动。
更多信息
表 1. Flow 属性
| Name | 活动的名称 | | Join condition | 布尔表达式,指定到达活动的各种平行路径需求 | | Suppress join condition | 如果值为“yes”,就可以在此活动及嵌套活动中抑制连接失败(除非已被嵌套活动覆盖) |
Scope
活动的执行上下文。
更多信息
表 2. Scope 属性
| Name | 活动的名称 | | Join condition | 布尔表达式,指定到达活动的各种平行路径需求 | | Suppress join condition | 如果值为“yes”,则可以在此活动及嵌套活动中抑制连接失败(除非已被嵌套活动覆盖) | | Container access serializable | 如果值为“yes”,则作用域是可连续的并在控制对共享容器的访问方面提供并发性。这样的作用域可以不嵌套,但它必须是个叶作用域 |
While
支持指定的迭代活动的重复执行;执行一直继续到指定的布尔条件不再为真。
更多信息
表 3. While 属性
| Name | 活动的名称 | | Join condition | 布尔表达式,指定到达活动的各种平行路径需求 | | Suppress Join condition | 如果值为“yes”,则可以在此活动及嵌套活动中抑制连接失败(除非已被嵌套活动覆盖) | | Condition | 布尔表达式,每次迭代开始时求该表达式的值以检查 while 的执行应该继续与否
|
Sequence
包含一个或多个活动的结构化活动,依照各活动在此结构化活动中出现的顺序依次执行。
更多信息
表 4. Sequence 属性
| Name | 活动的名称 | | Join condition | 布尔表达式,指定到达活动的各种平行路径需求 | | Suppress join condition | 如果值为“yes”,可以在此此活动及嵌套活动中抑制连接失败(除非已被嵌套活动覆盖) |
Pick
等待一个或多个事件的发生,执行与所发生的事件相关的活动。消息到达或计时器到点构成可能发生的事件。
更多信息
表 5. Pick 属性
| Name | 活动的名称 | | Join condition | 布尔表达式,指定到达活动的各种平行路径需求 | | Suppress Join condition | 如果值为“yes”,则可以在此活动及嵌套活动中抑制连接失败(除非已被嵌套活动覆盖) | | Create instance | 如果值为“yes”,当消息到达时,将创建一个业务流程实例 |
Switch
通过允许指定一个或多个条件分支(它们的执行依赖于指定的条件)和一个可选的其他分支(若所有的条件经过测试都失败,则执行该分支)来支持附有条件的行为。
更多信息
表 6. Switch 属性
| Name | 活动的名称 | | Join condition | 布尔表达式,指定到达活动的各种平行路径需求 | | Suppress Join condition | 如果值为“yes”,则可以在此活动及嵌套活动中抑制连接失败(除非已被嵌套活动覆盖) |
基本活动
Terminate
这项活动的执行迫使业务流程实例停止执行。
更多信息
表 7. Terminate 属性
| Name | 活动的名称 | | Join condition | 布尔表达式,指定到达活动的各种平行路径需求 | | Suppress Join condition | 如果值为“yes”,则可以在此活动及嵌套活动中抑制连接失败(除非已被嵌套活动覆盖) |
Receive
通过调用伙伴执行的指定操作来接收消息。
更多信息
表 8. Receive 属性
| Name | 活动的名称 | | Join condition | 布尔表达式,指定到达活动的各种平行路径需求 | | Suppress Join condition | 如果值为“yes”,则可以在此活动及嵌套活动中抑制连接失败(除非已被嵌套活动覆盖) | | Container | 在消息到达时存储消息的容器的名称 | | Operation | 伙伴将调用的操作的名称 | | Port type | 与操作有关的端口类型的限定名 | | Partner | 发送消息的伙伴的名称 | | Create instance | 如果值为“yes”,则表明消息到达时,将导致一个新业务流程实例被创建 |
Reply
用来发送消息作为先前通过 receive 活动接受的请求的响应。
更多信息
表 9. Reply 属性
| Name | 活动的名称 | | Join condition | 布尔表达式,指定到达活动的各种平行路径需求 | | Suppress Join condition | 如果值为“yes”,则可以在此活动及嵌套活动中抑制连接失败(除非已被嵌套活动覆盖) | | Container | 存储应答消息的容器的名称 | | Fault name | 与该活动相关的错误的名称 | | Operation | 这条应答消息相对应的操作的名称 | | Port type | 与操作有关的端口类型的限定名 | | Partner | 接收消息的伙伴的名称 |
Throw
当进程需要明确发出错误信号时使用。
更多信息
表 10. Throw 属性
| Name | 活动的名称 | | Join condition | 布尔表达式,指定到达活动的各种平行路径需求 | | Suppress Join condition | 如果值为“yes”,可以在此活动及嵌套活动中抑制连接失败(除非已被嵌套活动覆盖) | | Fault name | 被发出的错误的名称 | | Fault container | 存储错误消息的容器的名称 |
Invoke
用来调用伙伴提供的 Web 服务操作。
更多信息
表 11. Invoke 属性
| Name | 活动的名称 | | Join condition | 布尔表达式,指定到达活动的各种平行路径需求 | | Suppress Join condition | 如果值为“yes”,则可以在此活动及嵌套活动中抑制连接失败(除非已被嵌套活动覆盖) | | Input container | 存储被调用操作的输入消息的容器的名称 | | Output container | 存储与调用有关的输出消息的容器的名称 | | Operation | 将被调用的操作的名称 | | Port type | 与操作有关的端口类型的限定名 | | Partner | 被调用的伙伴的名称 |
Empty
这项活动的执行没有任何效果。
更多信息
表 12. Empty 属性
| Name | 活动的名称 | | Join condition | 布尔表达式,指定到达活动的各种平行路径需求 | | Suppress Join condition | 如果值为“yes”,则可以在此活动及嵌套活动中抑制连接失败(除非已被嵌套活动覆盖) |
Assign
用来创建或修改容器内的数据。
更多信息
表 13. Assign 属性
| Name | 活动的名称 | | Join condition | 布尔表达式,指定到达活动的各种平行路径需求 | | Suppress Join condition | 如果值为“yes”,可以在此活动及嵌套活动中抑制连接失败(除非已被嵌套活动覆盖) |
Wait
在处理过程中引入延迟,延迟一个固定的时间周期,或者延迟到某个截止期限。
更多信息
表 14. Wait 属性
| Name | 活动的名称 | | Join condition | 布尔表达式,指定到达活动的各种平行路径需求 | | Suppress Join condition | 如果值为“yes”,则可以在此活动及嵌套活动中抑制连接失败(除非已被嵌套活动覆盖) | | For expression | 持续时间表达式,指明要等多久 | | Until expression | 截止期限表达式,指明要等多久 |
Compensate
这个活动的执行导致指定作用域的补偿处理程序被调用。
更多信息
表 15. Compensate 属性
| Name | 活动的名称 | | Join condition | 布尔表达式,指定到达活动的各种平行路径需求 | | Suppress Join condition | 如果值为“yes”,则可以在此活动及嵌套活动中抑制连接失败(除非已被嵌套活动覆盖) | | Scope | 将被补偿的作用域的名称 |
其它元素
Process
用来定义进程,进程是包含业务流程定义的顶级 BPEL4WS 元素。
更多信息
表 16. Process 属性
| Name | 进程的名称 | | Enable instance compensation | 如果值为“yes”,则表示该流程作为一个整体可以通过特定于平台的方式进行补偿
| | Suppress join faults | 如果值为“yes”,则可以在进程中抑制连接失败(除非已被嵌套活动覆盖) | | Container access serializable | 如果值为“yes”,则进程是可连续的并在控制对共享容器的访问方面提供并发性 | | Abstract process | 如果值为“yes”,就意味着定义的进程是抽象的,而不是可执行的 |
Delete
允许删除已选择的活动或元素。注意:删除活动也会导致其子活动被递归删除。
Link
定义了
流(flow)的链接;流中的活动可作为链接的
源或链接的
目标。
更多信息
Source
标记一个活动作为链接源。
Target
标记一个活动作为链接目标。
Fault handlers
用来处理作用域内发生的错误。
更多信息
-
菜单操作:add catch fault、add catch all、
delete
Compensation handler
用来指定一种活动,这种活动用应用程序定义的方式将作用域的执行倒回,作为一种“撤销”或者“恢复”机制。
更多信息
onMessage
与
pick活动相关的事件之一。指定消息的到达被用来触发相关活动的执行。
更多信息
表 17. onMessage 属性
| Container | 消息将到达的容器的名称 | | Operation | 伙伴将调用的操作的名称 | | Port type | 通过端口类型将操作公开给伙伴 | | Partner | 伙伴的名称 |
onAlarm
与
pick活动相关的事件之一。指定的截止期限或设定的持续时间过完后会触发相关活动的执行。
更多信息
表 18. onAlarm 属性
| For expression | 持续时间值表达式,指明超时时间 | | Until | 截止期限值表达式,指定截止期限条件 |
Case
被用来指定
switch的条件分支。
更多信息
表 19. Case 属性
| Condition | 布尔值表达式,为将被执行的 switch 的这个分支指定需要满足的条件 |
Otherwise
用来指定
switch的缺省分支。
更多信息
Correlation
用来表明
receive、
reply和
invoke活动中,哪些相关性集合在被发送和接收的消息中发生。
更多信息
表 20. Correlation 属性
| Initiation | 如果值为“yes”,则用被发送和接收的消息中出现的属性值初始化指定的相关性集合 | | Set | 相关性集合的名称 | | Pattern | 在
invoke过程中,用在同步的请求 ― 响应操作的上下文中;用来指定是否把相关性应用于出站消息、入站消息或同时应用于这两者
|
Correlation Set
用来定义属性集,这些属性被集体用于把在
receive、
invoke和
reply活动中交换的消息关联起来。
更多信息
表 21. Correlation Set 属性
Partner
用来定义为服务建模的伙伴,该服务与业务流程互相交互。
更多信息
表 22. Partner 属性
| Name | 伙伴的名称 | | My role | 与伙伴进行交互的业务流程的角色;此角色必须是在服务链接类型中定义的角色之一 | | My role | 与伙伴进行交互的伙伴服务的角色;此角色必须是在服务链接类型中定义的角色之一 | | Service link type | 它定义两个相互交互的服务之间的关系,指定每个服务的角色和与每个角色相关的端口类型 |
Container
提供组成业务流程状态的消息的存储方法。
更多信息
表 23. Container 属性
| Name
| 容器的名称 | | Message type | 存储在这个容器中的消息的类型 |
关于作者  | |  | Nirmal K. Mukhi 是 IBM T J Watson Research Laboratory 的 Component Systems Group 的软件工程师。自 2000 年 11 月起,他就在这个小组从事 Web 服务研究。在此之前,他是 Indiana University 的研究员和学生,1999 年 5 月,他在该大学取得了硕士学位。此外,Nirmal 还致力于下列 Web 服务软件项目:WSDL4J、Web 服务调用框架(Web Services Invocation Framework,WSIF)、Web Services Gateway(WSGW)和 BPWS4J。您可以通过
nmukhi@us.ibm.com与他联系。
|
对本文的评价
|