BPEL 简明开发手册(5)

2018-12-21 13:54

化。缺省值为no。

当调用的操作是同步的请求/响应时,一个 pattern 属性被用来指出相关性是应用到出站的(请求)消息(pattern=“out”)还是应用到入站的(响应)消息(pattern=“in”)还是应用到两者(pattern=“out-in”)。

3. catch动作

* Activity

被定义的每个 catch 动作都能拦截某种故障(由全局唯一的故障 QName 和有与该故障关联的数据的变量来定义)。如果没有故障名,那么 catch 将拦截全部有适合类型的故障数据变量的故障。故障变量是可选的,这是因为故障可能没有与之关联的额外数据。如果只有故障QName,那么 catch动作将拦截全部有适合类型的故障QName的故障。

Activity,catch子句下的活动,这个是唯一的,但是activity里面是可以嵌套的。

4. catchall动作

?

activity

catchAll 子句可被用来捕获所有未被特定的 catch 处理程序捕获的故障,可有可无。 Activity,catchAll子句下的活动,这个是唯一的,但是activity里面是可以嵌套的。

5. compensationHandler动作

? activity

补偿处理程序,在目前的 BPEL4WSv1.1 版本中,补偿处理程序仅仅是补偿活动的包装,即补偿处理程序里的activity就是补偿活动,补偿处理程序(一旦被安装后)可被看作完全独立的操作,业务流程实例的全局状态既不影响它也不受它的影响。它只影响外部的实体。

Activity,compensationHandler子句下的活动,这个是唯一的,但是activity里面是可以嵌套的。 5.1.2

语言结构:

receive:主要用于(接收请求)等待客户端通过发送消息调用业务流程。 除了活动的标准属性(见A)和标准元素(见B)之外,receive活动还包含:

Page 22 项目名称: 版本:<0.1> 文档名称:BPEL 简明开发手册 日期:<2006/11/25> 文档创建者:Sika Team 公司机密文件,请勿外漏

1. 基本属性如下:

A. createInstance 流程实例创建与否,值为yes时,创建流程实例,值为no时不创建,缺省

值为no;

B. partnerLink=\描述两个web services之间的接口关系; C. portType=\端口类型; D. operation=\调用操作; E. variable=\变量;

2. 相关集

?

相关集属性组:correlation:单个相关集;set=“ncname”:相关集集合名称;initiation:是否实例化该相关集,值为yes时,相关集被实例化,为no时,不实例化。缺省值为no。 业务流程通过 receive 活动和相应的 reply 活动把服务提供给它的伙伴。receive 活动指定了它期望从哪个伙伴那里接收,还指定了它期望伙伴调用的端口类型和操作。receive活动可以用来实例化一个流程,即把 createInstance 属性设置为 \,该属性的缺省值是no。一个业务流程实例绝不可以为相同的伙伴、portType 和操作同时启用两个 receive 活动,如果执行该操作则抛出标准故障

bpws:conflictingReceive。receive 是阻塞操作,其含义是它的执行在流程实例接收到匹配的消息后才完成。

5.1.3

语言结构:

reply:主要用于生成同步操作的响应。

除了活动的标准属性(见3.1.5)和标准元素(见3.1.6)之外,reply活动还包含: 1. 基本属性如下:

A. partnerLink=\描述两个web services之间的接口关系; B. portType=\端口类型; C. operation=\调用操作; D. variable=\变量;

E. faultName=\,暗含的一个相应错误名称;

2. 相关集.

?

Page 23 项目名称: 版本:<0.1> 文档名称:BPEL 简明开发手册 日期:<2006/11/25> 文档创建者:Sika Team 公司机密文件,请勿外漏

相关集属性组:correlation:单个相关集;set=“ncname”:相关集集合名称;initiation:是否实例化该相关集,值为yes时,相关集被实例化,为no时,不实例化。缺省值为no。

reply 活动被用来发送对先前通过 receive 活动被接受的请求的响应。这种响应一般只对同步交互有意义。异步响应的发送方式基本是调用伙伴的服务上的相应的单向操作。在流程中可以定义多个 reply 活动来回答该伙伴的调用;但是,一次只可能有一个匹配的 成为激活的。适当的 reply 活动的匹配是在运行时进行的,此时流程寻找这样一个活动 — 准备运行并拥有和 相同的

portType、操作和伙伴。如果出现该规范错误,则抛出标准故障 bpws:conflictingRequest。如果响应正常,则faultName属性不会被使用,变量variable响应一个正常的消息类型。反之,如果隐含一个错误的响应,则faultName属性有用,变量variable暗含一个错误的消息类型。

5.1.4

语言结构:

assign:主要用于操作数据变量。

除了活动的标准属性(见3.1.5)和标准元素(见3.1.6)之外,assign活动还包含: 1. copy +把数据从一个变量复制到另外一个变量

A. from-spec 赋值数据的源,是以下形式中的一种:

I.

II. ... literal value ...

B. to-spec 赋值数据的目的地,是以下形式中的一种:

I.

III.

在各种形式中,variable属性提供变量名;part属性提供该变量中的一部分的名称;query 的属性值是用于识别

源变量部分或目标变量部分中的单个值的查询字符串(在抽象流程中禁止使用query),BPEL4WS 为用于这些查询的语言提供了可扩展的机制。该语言由 元素的“queryLanguage”属性来指定。partnerLink属性合作伙伴链接名称。endpointReference属性是对角色的引用。expr允许流程对属性和变量进行简单的计算。允许把给出的文字值作为源值赋给目的地。

from和to的匹配,应该注意:

1. from的关联类型和to的关联类型要相同;

2. from和to都是变量时,两个变量必须属于相同的消息类型; 3. from和to中,不允许一个是变量,另外一个不是变量;

Page 24 项目名称: 版本:<0.1> 文档名称:BPEL 简明开发手册 日期:<2006/11/25> 文档创建者:Sika Team 公司机密文件,请勿外漏

如果上述几种方式不匹配,抛出标准故障 bpws:mismatchedAssignmentFailure。

Assign 活动可以把数据从一个变量复制到另一个变量,也可使用表达式来构造和插入新数据。使用表达式的主

要动机是为了进行简单的计算(例如递增序列号)以用于描述业务协议行为。表达式对消息选择、属性和文字常数进行运算以产生变量属性或选择新的值。最后,这个活动还可把服务引用复制到伙伴链接,或把伙伴链接复制到服务引用。

throw:主要用于抛出相关的故障和异常。

除了活动的标准属性(见3.1.5)和标准元素(见3.1.6)之外,throw活动还包含: 1. faultName =\每个故障的一个全局唯一的 QName,故障名称;

2. faultVariable =\可选的数据变量,包含有关故障的更多信息;

当业务流程需要显式地发出内部故障信号时可以使用 throw 活动,每个故障需要有一个全局唯一的QName,throw

活动必须提供故障这样的名称(faultName),还可以提供可选的数据变量(faultVariable),数据变量包含有关故障的更多信息。故障处理程序可以使用这种数据,以分析和处理该故障,并植入需被发送到其它服务的所有故障消息。 5.1.5

语言结构:

throw:主要用于抛出相关的故障和异常。

除了活动的标准属性(见3.1.5)和标准元素(见3.1.6)之外,throw活动还包含: 1. faultName =\每个故障的一个全局唯一的 QName,故障名称;

2. faultVariable =\可选的数据变量,包含有关故障的更多信息;

当业务流程需要显式地发出内部故障信号时可以使用 throw 活动,每个故障需要有一个全局唯一的QName,throw

活动必须提供故障这样的名称(faultName),还可以提供可选的数据变量(faultVariable),数据变量包含有关故障的更多信息。故障处理程序可以使用这种数据,以分析和处理该故障,并植入需被发送到其它服务的所有故障消息。 5.1.6

语言结构:

wait:主要用于等待一段时间。

除了活动的标准属性(见3.1.5)和标准元素(见3.1.6)之外,wait活动还包含: 1. for=\: 等待的时间长度,是一个长度表达式; 2. until=\: 等待时间截止期限;

wait活动使流程能够等待一段特定的时间间隔;或者一直等到某个截止期限为止。 5.1.7

语言结构:

Page 25 项目名称: 版本:<0.1> 文档名称:BPEL 简明开发手册 日期:<2006/11/25> 文档创建者:Sika Team 公司机密文件,请勿外漏

empty:不做任何事情。

empty活动只有活动的标准属性(见3.1.5)和标准元素(见3.1.6)。 empty活动不会执行任何动作,是个空活动,目的是为了结构的完整性。如果为了捕获一个异常并抑制它,就可以使用这个活动。

5.1.8

语言结构:

terminate:主要用于终止整个流程。

terminate活动只有活动的标准属性(见3.1.5)和标准元素(见3.1.6)。

活动可以用于立即放弃执行着该终止活动的业务流程实例中的所有执行。即所有的当前运行的活动必须尽可能快地被终止而不出现任何故障处理和补偿行为。 5.1.9

语言结构:

compensate:主要用于构造被用来在已正常完成执行的内层作用域上调用补偿。

除了活动的标准属性(见3.1.5)和标准元素(见3.1.6)之外,compensate活动还包括: 1. scope=\?:用于compensate活动的scope名称。

活动被用来在已正常完成执行的内层作用域上调用补偿。只能从故障处理程序或另一个补偿处理程序中调用这个活动。仅当作用域正常完成执行后该作用域的补偿处理程序才可被调用。调用未被安装的补偿处理程序等同于 empty 活动(它是 no-op)—— 这就确保了故障处理程序不必依赖于状态来决定哪个嵌套的作用域已成功地完成。补偿处理程序只能被调用一次,如果一个已被安装的补偿处理程序被调用的次数超过一次,那么就会抛出标准故障 bpws:repeatedCompensation。

Page 26 项目名称: 版本:<0.1> 文档名称:BPEL 简明开发手册 日期:<2006/11/25> 文档创建者:Sika Team 公司机密文件,请勿外漏 Page 27 5.2


BPEL 简明开发手册(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:新型自动站观测仪器的管理和维护

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: