基本活动:
基本活动是与外界进行交互最简单的形式,它们是无序的个别步骤,与服务器进行交互,操作数据传输或者处理异常.
Web 服务交互活动:
流程的伙伴之间通过使用这三种活动发生交互:<invoke>,<reply>,<receive>
通过指定portType,操作以及伙伴,这些活动中的每一种活动标识出它所属于的web服务调用.
<invoke>活动调用伙伴提供的web服务.
业务流程通过一对<reveive>和<reply>活动为它的伙伴提供服务.
receive表示流程提供的WSDL操作的输入.
流程生命周期
只有当一条消息被发送给特别标记的 <receive> 活动或 <pick> 活动时,才可能创建一个业务流程实例。
操作数据: <assign> 活动
<assign> 活动可以用于将数据从一个容器复制到另一个容器,也可以用于通过使用表达式构造和插入新数据。
其他基本活动
<throw> 活动发出故障信号
<terminate> 活动可以用于立即放弃执行着该终止活动的业务流程实例中的所有执行。
<wait> 活动使流程能够等待一段特定的时间间隔,或者一直等到某个截止期限为止。
<empty> 活动什么都不做。如果您需要捕获一个故障并抑制它,您可以使用这个活动
结构化活动
结构化活动规定了一组活动发生的顺序。结构化活动通过将业务流程执行的基本活动整合到结构中来描述业务流程是如何被创建的,这些结构表达了业务协议中所涉及的控制模式、数据流、故障和外部事件的处理以及在流程实例之间进行消息交换的协调。
<sequence> 活动包含一个或多个顺序执行的活动。
<switch> 活动起的作用与许多传统编程语言中出现的 switch 构造很相似。
<while> 活动重复执行它的子活动,直到对指定的布尔条件求得的值不再为真。
<pick> 活动包含一组事件处理程序。(基本活动中也包含它)
<scope> 活动为嵌套在其中的活动提供故障处理功能和补偿处理功能。
<flow> 构造提供了以并行方式运行活动的能力,还提供了定义防护性链接的能力。
partener的定义和serviceLinkType的定义是相关的。
<partner name="customer" serviceLinkType="lns:purchaseLT" myRole="purchaseService"/>
partner元素中的serviceLinkType 对应了上述WSDL中的一个serviceLinkType; 表示当前的这个“伙伴”是用于哪个链接之中的;
partner元素中的myRole对应serviceLinkType中的<slnk:role name>表示当前服务是一个什么脚色。
实际上,Partner就对应了一个portType,这个查找关系是:
先从partener的定义中找到servicelinktype的名字和它在这个link中的角色名称,然后根据这两个属性值从WSDL中找到对应的serviceLinkType的定义,从这个定义中找到这个角色所对应的portType,就能找到对应的抽象服务。