(计算机软件与理论专业论文)基于bpel描述的web服务组合回归测试研究.pdf_第1页
(计算机软件与理论专业论文)基于bpel描述的web服务组合回归测试研究.pdf_第2页
(计算机软件与理论专业论文)基于bpel描述的web服务组合回归测试研究.pdf_第3页
(计算机软件与理论专业论文)基于bpel描述的web服务组合回归测试研究.pdf_第4页
(计算机软件与理论专业论文)基于bpel描述的web服务组合回归测试研究.pdf_第5页
已阅读5页,还剩61页未读, 继续免费阅读

(计算机软件与理论专业论文)基于bpel描述的web服务组合回归测试研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

南京邮电大学硕士研究生学位论文 摘要 摘要 商业流程执行语言b p e l b u s i n e s sp r o c e s se x e c u t i o nl a n g u a g e 正在成为w e b 服务组合方面新的标准 越来越多的工作流使用b p e l 来建模 为了保证w e b 服务组合 的质量和安全性 基于b p e l 描述的w e b 服务组合的测试已经越来越重要 目前 关于b p e l 应用测试方面的方法 主要是将b p e l 应用当成普通的w e b 服务 进行功能性的黑盒测试 或者对b p e l 应用进行单元自盒测试 而关于b p e l 回归测试方 面的研究却很少 本文在一些研究的基础上 对b p e l 的回归测试提出了一种解决方案 首先 将新老 两份b p e l 文件转化成b p e l 活动流图b a f g b p e la c t i v i t yf l o wg r a p h 然后将两份 b a f g 图相同路径进行对比 从而找到发生变化的活动 从用例库中选择出经过该活动的 老的测试用例 对w e b 服务组合进行测试 分析测试的结果 如有错误 修正并再次测 试 本文最后以贷款批复为例 对提出的方案可行性进行了验证 关键字 b p e l 回归测试 w e b 服务组合 b p e l 活动流图 南京邮电大学硕士研究生学位论文 摘要 a b s t r a c t b u s i n e s sp r o c e s se x e c u t i o nl a n g u a g e b p e l i sb e c o m i n gt h en e ws t a n d a r do f w e bs e r v i c ec o m p o s i t i o n m o r ea n dm o r ew o r kf l o wa p p l i c a t i o n sa r em o d e l e dw i t hb p e l i no r d e rt om a k es u r eo ft h eq u a l i t ya n ds e c u r i t yo fw e bs e r v i c ec o m p o s i t i o n w e b s e r v i c ec o m p o s i t i o nt e s ti sn od o u b tv e r yi m p o r t a n t c u r r e n t l y ab p e la p p l i c a t i o ni st e s t e da san o r m a lw e bs e r v i c ea n dc h e c k e d b yw a yo fu n i ta n db l a c kb o xt e s tm e t h o d f e wa t t e n t i o n sh a v eb e e np a i e dt ot h e r e g r e s s i o nt e s to fb p e l t h i sp a p e rp r e s e n t sas o l u t i o no fr e g r e s s i o nt e s tf o rb p e la f t e rs t u d y i n g o t h e r s r e c e n tr e s e a r c hr e s u l t si nt h i sf i e l d f i r s tt r a n s l a t et h en e wa n do l d b p e lf i l e sw h i c hd e s c r i b eab u s i n e s sp r o c e s sa st h ew e bs e r v i c ec o m p o s i t i o nt o t w ob a f g b p e la c t i v i t yf l o wg r a p h t h e nc o m p a r et h es a m ep a t h so ft w ob a f gt o f i n dt h ec h a n g e da c t i v i t i e sa n dl o o ku pt h et e s t c a s ed a t a b a s et of i n dt h et e s t d a t a s w h i c hb e l o n gt ot h ec h a n g e da c i t i v i t i e s f i n a l l yu s i n gt h et e s td a t a st ot e s t t h en e ww e bs e r v i c ec o m p o s i t i o n i ft h er e s u l to fr e g r e s s i o nt e s ts h o w st h e r ei s s o m e t h i n gw r o n gi nt h es y s t e m t h em o d i f i c a t i o na n dr e t e s ta r en e e d e d k e y w o r d s b p e l r e g r e s s i o nt e s t i n g w e bs e r v i c ec o m p o s i t i o n b p e l a c t i v i t yh o wg r a p h n 南京邮电大学学位论文独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究 工作及取得的研究成果 尽我所知 除了文中特别加以标注和致谢的 地方外 论文中不包含其他人已经发表或撰写过的研究成果 也不包 含为获得南京邮电大学或其它教育机构的学位或证书而使用过的材 料 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了 明确的说明并表示了谢意 研究生签名 辛盟日期 南京邮电大学学位论文使用授权声明 南京邮电大学 中国科学技术信息研究所 国家图书馆有权保留 本人所送交学位论文的复印件和电子文档 可以采用影印 缩印或其 他复制手段保存论文 本人电子文档的内容和纸质论文的内容相一 致 除在保密期内的保密论文外 允许论文被查阅和借阅 可以公布 包括刊登 论文的全部或部分内容 论文的公布 包括刊登 授权 南京邮电大学研究生部办理 研魁始姐导师张迸丝堑魄 南京邮电大学硕士研究生学位论文 第一章绪论 1 1 研究背景 第一章绪论 在一个公司内部 业务过程需要相互协作和集成 公司之间也一样 因为存在着不同 的技术和功能 集成不同的应用总是一项艰难的任务 应用集成方面的最新进展 来自 s e r v i c eo r i e n t e da r c h i t e c t u r e s o a 和w e b 服务技术 从s o a 的观点来看 不同的应 用系统以w e b 服务的形式来发布它们的业务功能 因此 使用统一的标准方式 通过w e b 服务 来访问遗留系统和新开发应用的功能 这种标准方式很重要 因为通常大多数公司 存在着很多需要集成的应用 如果仅仅是开发w e b 服务并把这些功能发布出来还不够 也 需要一种把这些功能按正确的顺序组合起来的方法 尤其是业务过程通常易于变化 因此 需要很容易地修改这些业务过程 如何组合w e b 服务 有两种方式 o r c h e s t r a t i o n 和c h o r e o g r a p h y 使用 0 r c h e s t r a t i o n 需要一个总控过程来控制涉及到的w e b 服务 并协调w e b 服务不同操作 的执行 所涉及到的w e b 服务并不知道 也不必知道 它们是组合过程的一部分 只有中 央的总控过程知道它们如何组合和协调 相比之下 c h o r e o g r a p h y 并不依赖中央的总控 协调过程 相反 每个涉及其中的w e b 服务都知道何时执行自己的操作 和谁交互 c h o r e o g r a p h y 方式集中在消息的交换 所有的c h o r e o g r a p h y 参与者都需要知道业务流程 要执行的操作 要交互的消息 和交换消息的时机 从组合w e b 服务来执行业务流程的角 度来看 o r c h e s t r a t i o n 比c h o r e o g r a p h y 更灵活 1 知道谁负责执行整个业务流程 2 即使w e b 服务并不知道它们是业务流程的一部分 仍然可以把它们组合起来 3 当错误发生时 可以提供一个备选的s c e n a r i o b p e l n l 遵循o r c h e s t r a t i o n 范式 其他的标准则使用c h o r e o g r a p h y 范式 如w s c i w e b s e r v i c e sc h o r e o g r a p h yi n t e r f a c e 和w s c d l w e bs e r v i c e sc h o r e o g r a p h yd e s c r i p t i o n l a n g u a g e 和b p e l 相比 c h o r e o g r a p h y 没有获得业界的支持 现在利用b p e l 描述的业务流程越来越多 如何保证业务流程所提供服务的质量是一 个值得研究的问题 南京邮电大学硕士研究生学位论文 第一章绪论 1 2 研究现状 当前为了保证w e bs e r v i c e 组合的质量 多采取模型核实和测试的方法 这两种方法 分别在工作流开发的不同阶段 扮演着重要的角色 模型核实方法主要在软件开发的早期被使用 它不涉及代码部分 只是对程序的逻辑 结构进行核对 用来发现死锁 可达性 以减少错误 关于模型核实的方法的研究已经很 多了 典型模型核实主要分为两种 一种是将b p e l 转化为一般p e t r i 网 进而对其进行 分析 在盘埘h 1 中对基于p e t r i 网的b p e l 流程进行了详尽讨论 还有一种是将b p e l 转化 为自动机 在嘲嘲中作者就是利用状态机的模型来核实b p e l 流程的 随着开发的继续 软件测试将会成为检测错误的主要方式 目前的研究主要集中在一 般的测试方法 m 中在阳1 的基础上 对b p e l 的白盒单元测试提出了一种层次化创建测试框 架的办法 嘲中使用x c f g e x t e n dc o n t r o lf l o wg r a p h 来描绘b p e l 程序 利用x c f g 来产 生序列测试路径 然后将它们联和 形成并发测试路径 通过优化 根据测试路径 利用 约束集的方法产生测试用例 还有一类 就是利用先前建立的模型 利用模型产生测试用 例 如n 订中提到基于高阶p e t r i 网 h p n 的b p e l 的测试 n 中提出了一种基于图的搜索遍历的方法 通过对c f g c o n t r o lf l o wg r a p h 进行 扩展 形成b f g 然后采取图的遍历方法 形成测试路径 利用约束集的方法 形成测试 用例 但是 n 们中转换的b f g b p e lf l o wg r a p h 图有它的不足之处 第一点 b f g 的构造方法并不具体 它只是简单地根据映射关系构造b f g 图 对于如 何对b p e l 文件进行词法分析 来构造活动节点并未提出具体的办法 第二点 未考虑到b p e l 的异常处理活动等高级属性 对于一个良好设计的程序而言 一般都有对预期出现异常的处理方式 b p e l 也是如此 异常处理增加了程序控制流的复 杂性 而在构造含有异常处理节点的控制流图时 不能简单地按活动出现的顺序来构造 因此 也增加了构造程序控制流图的难度 但是 对程序的测试而言 对异常处理的测试 又是相当重要的 因此 必须找到恰当的方法构造含有异常处理节点的控制流图 虽然n 们 中构造了b p e l 的控制流图 但对如何构造含有异常活动节点的控制流图并未提出方法 因此 b f g 图是不完善的 目前b p e l 的回归测试 很多还是功能性的黑盒测试 其主要特点是 这些测试只是把 b p e l 描述的流程作为普通的w e b 服务 没有考虑流程的内在逻辑 关于b p e l 白盒回归测试 研究的比较少 在 2 1 中 提到了通过模型核实的方法对系统的描述规范 进行回归测试 这里的规范类似于b p e l 因此 结合前面提到的p e t r i e 等建模和测试理论 可以形成b p e l 2 南京邮电大学硕士研究生学位论文第一章绪论 自盒回归测试的办法 但其过程相对繁琐 1 3 本文研究工作及成果 本文在上述研究的基础上 提出了关于b p e l 回归测试的解决方案 首先将新老两份b p e l 流程描述文件转换成d o m 树结构 然后广度遍历d o m 树 获取活动节点信息 构造类似于控 制流图的b a f g b p e la c t i v i t yf l o wg r a p h 图 在构造的过程中 解决了n 中没有解决 的b p e l 高级属性异常处理的转换 使得最终的b a f g 图中含有异常处理活动节点 在完成 b a f g 的构造后 在r o t h e r m e l h a r r o l d 和d e d h i a 等人提出的基于控制流的回归选择算法的 基础上 考虑b p e l 中f l o w 节点的特殊性 通过将两份b a f g 进行对比 发现改变的节点和边 利用数据库中的跟踪矩阵 找到相应的测试用例 最后 利用找到的测试用例对新的b p e l 流程发起测试 发现缺陷 进而改正 1 4 论文组织结构 本篇论文总共分为七章 第一章绪论 主要介绍论文的研究背景 论文主要工作和论文组织结构 第二章w e b j 畏务 主要介绍w e b 服务的基本知识 第三章b p e l 介绍了流程语言b p e l 的相关概念 第四章回归测试理论 介绍回归测试的基本理论 第五章 w e b f 艮务组合回归测试的研究与设计 该章是本篇论文的重点 详细介绍了 b p e l 描述的w e b 服务组合回归测试的实现方案 包括b a f g 图的构造 b a f g 图的对比 测 试用例包的生成 测试客户端的设计 第六章原型实现 对第五章提出的方案的实现 包括开发工具的使用 总体的类的 设计 主要模块的实现 测试环境的搭建 测试的执行和结果分析 第七章未来工作 分析方案的不足 以及未来的扩展和改进 南京邮电大学硕士研究生学位论文 第二章w e b 服务 第二章w e b 服务 2 1w e b 服务产生的背景 随着分布式计算技术的迅速发展 企业的商务活动和政府的政务活动将越来越多地依 靠因特网 传统的分布式对象模型c o r b a c o m m o no b j e c tr e q u e s tb r o k e ra r c h i t e c t u r e 公共对象请求代理体系结构 d c o m d i s t r i b u t e dc o m p o n e n t c b j e c t m o d e t 分布式组件对 象模型 r m i r e m a t em e t h o di n v o c a t i o n 远程方法调用 不适用于极端异构的i n t e r n e t 环境 这主要是因为 1 它们各自有一套独立的体系结构和私有协议 不同模型的应用系统之间通信十分 不便 2 客户端与服务端必须紧密耦合 一旦服务端的接口或执行方式发生变化 客户端 将无法执行 3 客户与服务器之间有较大的网络通信量与交互信息 w e bs e r v i c e 技术克服了传统分布式模型的缺点 同传统的分布式模型相比 w e b s e r v i c e 技术体系的主要优势在于 1 协议的通用性 w e bs e r v i c e 技术利用标准的i n t e r n e t 协议 如h t t p s m t p 等 解决的是面向 w e b 的分布式计算 而c o r b a d c o m r m i 使用私有的协议 只能解决企业内部 的对等实体间的分布式计算 2 完全的平台独立性 w e bs e r v i c e 技术进行了更高程度的抽象 只要遵守w e b s e r v i c e 技术的接口 即可进行服务的请求与调用 而c o r b a d c o m r m i 等模型要求在对等 体系结构才能进行通信 如c o r b a 需要每个连接点都使用o r b o b j e c tr e q u e s tb r o k e r 对 象请求代理 d c o m 需要每个连接点都使用w i n d o w 平台 r m i 需要每个连接点都使用相同的 语言 否则双方是不能通信 2 2w e b 服务的体系结构 w e bs e r v i c e 技术是一种在i n t e r n e t 环境下让松散耦合的w e b 应用之间相互调用 相互 集成的技术框架 它的体系架构是一种新的体系架构 即面向服务的架构 s e r v i c e o r i e n t e da r c h i t e c t u r e s o a s o a 是在开放的标准下实现的 并证实其可在其它的分布式计算 概念失败之处获得成功 4 南京邮电大学硕士研究生学位论文 第二章w e b 服务 w e bs e r v i c e 体系结构是基于三种角色 服务提供者 服务注册中心和服务请求者 之间 的交互 交互涉及发布 查找和绑定操作 这些角色和操作一起作用于w e b 报务构件 w e b 服务软件模块及其描述 图2 1 显示了这些操作 提供这些操作的组件及它们之间的交互 图2 1w e bs e r v i c e 体系结构 服务提供者 s e r v i c ep r o v i d e r 发布自己的服务于i n t e r n e t 上 并且对使用自身服 务的请求进行响应 从企业的角度来看 服务提供者是w e b 服务的拥有者 而从该体系结 构中来看 服务提供者可以看作是拥有w e b j 艮务的一个站点或者是门户 以及服务本身的 执行环境 提供w s d l n w e bs e r v i c ed e s c r i p t i o nl a n g u a g e 描述此对象中所含功能 使用所需要输入的信息 预期输出结果及提供呼叫的u r l 并使用u d d i u n i v e r s a l d e s c r i p t i o n d i s c o v e r y a n di n t e g r a t i o n 将这些信息公告出去 服务请求者 s e r v i c er e q u e s t o r 服务要求者从服务注册中心搜寻所需要的服务后 直接向服务提供者建立联机 双方通过s o a p n 町 s i m p l eo b j e c ta c c e s sp r o t o c 0 1 的协议 来执行网络服务 服务请求者的角色可以由浏览器来担当 由人或无用户界面的程序 例 如 另外一个w e b 服务 来控制它 服务注册中心 s e r v i c er e g i s t r y 服务注册中心提供了一个注册w e bs e r v i c e 的环境 对其进行分类 并提供搜索服务 服务提供者可以把他们所要提供的服务在注册中心进行 注册 来公布w e bs e r v i c e 的信息 而服务请求者则可以通过服务注册中心搜寻服务 来 发现和绑定服务信息 服务请求者绑定服务信息的方式有两种 静态绑定以及动态绑定 静态绑定是开发者在开发应用程序的时候查询相关的服务信息 并得到服务的接口信息 在这种方式下 服务注册中心是可选项 因为服务请求者可以通过多种方式直接从服务提 供者那里得到相关的w e b 服务信息 典型的服务注册中 b u d d i 是一套基于w e b 的 分布式的 为w e bs e r v i c e 技术提供服务 自京邮电 学碗i 研究生学位论文 第 章靴b m 务 注册中心的实现标准规范 同刚也包含一组企业能将自身提供的w e bs e r v i e e j e 务注册以 便于别的企业能够发现的访问协议的实现标准 所有的u d d i 的访问都通过s o a p 进行 对u d d i 的操作主要分为两种 查询和发布 主要由服务请求者和服务提供者发出 u d o i 开发工具会针对用户的需要发出s o a p 请求 u d d i 接受s o a p 请求并对它处理 最后把结果打 包成s o a p 响应消息返回给请求者 2 3w e bs e r v i c e 协议栈 要以一种互操作的方式执行发布 发现 绑定这三个操作 必须有一个包含每一层标 准的w e bs e r v i c e 协议栈 图22 展示了一个概念性的w e bs e r v i c e 协议栈 上面的几层 建立在下面几层提供的功能的基础上 垂直的条表示在协议栈的每一层中必须满足的需 求 图22w e bs e r v i c e 协议栈 w e bs e r v i c e 协议栈的基础是网络层 w e bs e r v i c e 要被服务请求者调用 就必须通 过网络访问 因特网上可供访问的w e bs e r v i c e 必须使用普遍部署的网络协议 而h t t p 凭借其普遍性 成为因特网可用的w e bs e r v i c e 真正的标准网络协议 w e bs e r v i c e 还支 持其他因特网协议 包括f t p s m t p i l o p 因特网o r b 间协议 上的远程方法调用 r e m o t e m e t h o di n v o c a t i o n r m i e m a i l 等 应使用哪种网络协议和应用程序的具体需求有关 南京邮电大学硕士研究生学位论文 第二章w e b 服务 2 3 1 简单对象访问协议 s o a p 以 l l n 匐形式提供了一个简单 轻量的用于在分散或分布环境中交换结构化和类型 信息的机制 s o a p 本身并没有定义任何应用程序语义 只是通过一个模块化的包装模型和 对模块中特定格式编码的数据的重编码机制来表示应用语义 定义了一个简单的表示应用 程序语义的机制 这使s o a p 能够被用于从消息传递至u r p c 的各种系统 换言之 s o a p 以x m l 作为r p c r o m o t ep r o c e d u r ec a l l 远程过程调用的媒介 为分布式系统提供了一套简单 的信息交换协议 s o a p 消息从内容上主要包括下面四个部分 1 s o a p 封装 e n v e l o p 封装定义了一个描述消息中的内容是什么 是谁发送的 谁应当接受并处理它以及如何处理它们的框架 2 s o a p 编码规则 e n c o d i n gr u l e s 用于表示应用程序需要使用的数据类型的实例 定义了一个数据的编码机制 通过这样一个编码机制来定义应用程序中需要使用的数据类 型 并可用于交换由这些应用程序定义的数据类型所衍生的实例 3 s o a pr p c 表示 r p cr e p r e s e n t a t i o n 定义了一个用于表示远端过程调用和响应 的约定 例如 如何使用h t t p 或s u p 协议与s o a p 绑定 如何传输过程调用 在具体传输协 议的哪个部分传输过程响应 比如可以在h t t p 的响应的时候传递过程响应 4 s o a p 绑定 b i n d i n g 定义了一个使用底层传输协议来完成在节点间交换s o a p 信 封的约定 s o a p 只是定义了消息 而消息的传输依靠底层的传输协议 s o a p 与传输层协议 都能进行绑定 虽然这四部分都作为s o a p 的一部分 作为一个整体定义的 这四部分在功能上是彼此 独立的 特别地 信封和编码规则是被定义在不同的x m l 命名域 n a m e s p a c e 中 这样有利 于通过模块化获得定义和实现的简明性 一个s o a p 消息描述了将要调用的方法和调用需要 的数据 如图2 3 表示一个s o a p 包 7 自目邮电 m i 十研咒 论立 第 w e b 口务 图23s o a p 包结构 s o a p 消息包含一个s o a p 信封e n v e o p e 该信封是一个 l 文档 e n v e l o p e 是x t l l 文档的 顶级元素 它包含了两个子元素 s o a p p j 息头部h e a d e r d s o a p 消息件b o d y s o a p h e a d e r 元素是这个对象模型中的一个可选项 这个信息是用户自定义的 用来承 载与应用关系不大而需底层环境平台处理的信息 例如 公共密钥加密信息 事务处理顺 序标识符 参与处理的各方所需的信息 以及远程s o a p 处理程序在管理远程请求时将会需 要的其它元数据 s o a p b o d y 元素是信封的第二个子元素 对于s o a p 请求来讲 请求体中包括被调用方法 定义的标签 这些标签中包含方法完成其工作所需要的信息 是s o a p 消息的必不可少的部 分 对于s o a p 币j 应文档来讲 s o a p b o d y 元素包含作为消息结果的数据 信封中的消息体 部分总是用于最终接收的消息 而头部项目可以确定执行中间处理的目标节点 附件 二 进制数字及其它项目可以附加到消息体上 2 3 2w e b 服务描述语言 对于使用标准化的消息格式通信协议的w e b 服务 需要以某种结构化的方式 h j x m l 对 w e b 服务的调用通信加以描述 这是w e b h e 务即时装配的基本保证 w s d l 正是这样一种描述 语言tw s d l 定义了一套基于x m l 拘语法 将w e b 服务描述为能够进行消息交换的服务访问点 的集合 从而满足了这种需求 w s 0 l 服务定义为分布式系统提供了可机器识别的s d k 文档 并且可用于描述自动执行应用程序通信中所涉及的细节 w s d l 文档将w e b h 日务定义为服务访问点或端口的集合 在w s d l 6 p 由于服务访问点和消 南京邮电大学硕士研究生学位论文 第二章w 曲服务 息的抽象定义己从具体的服务部署或数据格式绑定中分离出来 因此可以对抽象定义进行 再次使用 消息 指对交换数据的抽象描述 而端口类型指操作的抽象集合 用于特定端 口类型的具体协议和数据格式规范构成了可以再次使用的绑定 将w e b 访问地址与可再次 使用的绑定关联 可以定义一个端口 而端口的集合则定义为服务 从b p e l 规范来讲 基于b p e l 的流程主要是通过v e b 服务接口来调用其它服务的 而 且这个流程本身也以w e b 服务接口对外 即可以通过w e b 服务的方式来调用它 而调用一 个w e b 服务最为主要的一个信息是服务的描述 即w s d l 文件 一个完整的w s d l 文件一般 包含的内容如图2 4 所示 图2 4w s d l 结构图 w s d l 文档在w e b 服务的定义里使用下列七类元素 t y p e s 数据类型定义的容器 包含了所有在消息定义中需要的x m l 元素的类型定义 m e s s a g e 通信消息的数据结构的抽象类型化定义 使用t y p e s 所定义的类型来定义整个 消息的数据结构 o p e r a t i o n 对服务中所支持的操作的抽象描述 一般单个o p e r a t i o n 描述了一个访问入 口的请求响应消息对 p o r tt y p e 对于某个访问入口点类型所支持的操作的抽象集合 这些操作可以由一个 或多个服务访问点来支持 b i n d i n g 特定端口类型的具体协议和数据格式规范的绑定 p o r t 定义为协议数据格式绑定与具体w e b 访问地址组合的单个服务访问点 s e r v i c e 相关服务访问点的集合 9 誊 南京邮电大学硕士研究生学位论文第二章w e b 服务 2 3 3w e b 服务描述发现和集成规范 u d d i 是一套基于分布式的 为w e bs e r v i c e 提供信息注册和查询规范 由a r i b a i b m 和 m i c r o s o f t 共同制订 它连接了服务提供者和服务请求者 起到非常关键的服务注册代理 的作用 程序员可以通过a p i 实现w e bs e r v ic e 在u d d i 注册中心上发布以及搜索符合要求 的w e bs e r v i c e u d d i 的目的是为电子商务建立标准 u d d i 是一套基于w e b 的 分布式的 为w e bs e r v i c e 提供信息注册的实现标准规范 同时也包含一组使企业能将自身提供的w e b s e r v i c e 注册以使别的企业能够发现的访问协议的实现标准 u d d i 目录包含若干种方法 可用于搜索和构建应用程序所需的服务 例如 可以搜索 特定地理位置的服务提供商或者搜索特定的业务类型 之后 u d d i 目录将提供信息 联系 方式 链接和技术数据 以便确定能满足需要的服务 l o 南京邮电大学硕士研究生学位论文 第三章b p e l 3 1b p e l 的概念 第三章bpel b p e l 是早期两个工作流语言 w s f l 和x l a n g 的综合 w s f l 由i b m 设计 基于有向 图的概念 x l a n g 由微软设计 是一种块结构语言 b p e l 综合了两者的特点 为描述业务 流程提供了丰富的语义词汇 b p e l 构建在x m l 和w e b 服务的基础上 它是一个以x m l 为基础的语言 支持w e b 服务 技术的协议群 包括s o a p w s d l u d d i w s r e l i a b l em e s s a g e w s a d d r e s s i n g w s c o o r d i n a t i o n 和w s t r a n s a c t i o n b p e l 流程定义了参与流程的w e b 服务执行的确切 次序 它可以按顺序执行 也可以并行执行 3 2b p e l 结构 一个b p e l 流程描述文件如下所示 f a u l t h a n d l e r s a c t i v i t y 上述b p e l 文件是由三个部分组成 分别是属性 元素及活动 下面分别对b p e l 结构 的三个部分分别进行介绍 需要说明的一点是 这里的b p e l 规范为b p e l l 1 l l 南京邮电大学硕士研究生学位论文第三章b p e l 3 2 1b p e l 的主要属性 q u e r y l a n g u a g e 指定了在赋值 特性定义和其他使用中用于选择节点的x m l 查询语 言 这个属性的缺省值是x p a t h1 0 其代表是x p a t h1 0 规范的u r i e x p r e s s i o n l a n g u a g e 指定了在流程中使用的表达式语言 这个属性的缺省值是 x p a t h 1 0 其代表是x p a t h 1 0 规范的 u r i s u p p r e s s j o i n f a i l u r e 决定是否抑制流程中的所有活动的j o i n f a i l u r e 故障 该属 性在流程级的作用可以被使用该属性的其他值的活动所覆盖 这个属性的缺省值是 n 0 o e n a b l e i n s t a n c e c o m p e n s a t i o n 决定流程实例是否可被作为整体由特定于平台的方式 来补偿 这个属性的缺省值是 n o a b s t r a c t p r o c e s s 指定所定义的流程是抽象的 还是可执行的 这个属性的缺省值 是 n o 3 2 2b p e l 的主要元素 1 p a r t e r l i n k t y p e 合作伙伴链接类型 南京邮电大学硕士研究生学位论文 第三章b p e l 为了描述两个服务之间的会话关系 伙伴链接类型定义了会话中每个服务所扮演的 角色 并且指定了每个服务所提供的p o r t t y p e 以便接收会话的上下文中的消息 每个角色的p o r t t y p e 可以产生于不同的名称空间 也可产生于相同的名称空间 根 据相同名称空间中的p o r t t y p e 来定义合作伙伴链接类型的两个角色 伙伴链接类型定义文档可以是独立于任一个服务的w s d l 文档的单独构件 也可以被 放在定义p o r t t y p e 的w s d l 文档中 这些p o r t t y p e 也被用来定义不同的角色 有些情况下 定义仅包含一个角色的伙伴链接类型是有意义的 在这种伙伴链接情形 中 一个服务可以链接任何其他服务 2 p a r t n e r l i n k s 业务流程交互的服务被描述成伙伴链 每个伙伴链由p a r t n e r l i n k t y p e 来描述 每个伙伴链都被命名 通过该伙伴链的所有 服务交互 属性m y r o l e 指出了业务流程本身的角色 而属性p a r t n e r r o l e 指出了伙伴的角色 如果p a r t n e r l i n k t y p e 仅有一个角色 那么将根据需要省略其中一个属性 3 v a r i a b l e s 变量定义 业务流程指定了涉及伙伴之间消息交换的有状态交互 业务流程的状态不仅包括被交 换的消息 而且还包括用于业务逻辑和构造发送给伙伴的消息的中间数据 每个变量的类型可以是w s d l 消息类型 x m ls c h e m a 简单类型或 m ls c h e m a 元素 属于全局流程作用域的变量称为全局变量 属于流程作用域的变量称为局部变量 每 个变量只有在定义它的作用域和嵌套在它所属于的作用域内的全部作用域中才是可见的 七 4 c o r r e l a t i o n s e t s 相关集定义 在业务流程实例的生存期中 它通常与涉及它的伙伴进行多次会话 相关联的会话涉 南京邮电大学硕士研究生学位论文 第二覃b p e l 及的参与者不止两个 常常有必要提供应用程序级的机制 以使消息和会话被匹配到预定 的业务流程实例 9 5 f a u l t h a n d l e r s 故障处理程序 故障处理是因发生故障而切换到撤销发生故障的作用域中的部分或不成功的工作 故障处理程序提供了定义一组自定义的故障处理活动的方法 句法上定义为c a t c h 活 动 定义的每个c a t c h 活动能拦截某种特定的故障 由全局惟一的故障q n a m e 和有与该故 障相关联的数据的变量来定义 如果没有故障名 那么c a t c h 将拦截全部有适合类型的 故障数据的故障 使用c a t c h 处理程序中的f a u l t v a r i a b l e 属性来指定故障变量 i c a c t i v i t y a c t i v i t y 6 c o m p e n s a t i o n h a n d l e r 补偿处理程序 通过补偿处理程序 作用域可以描述一部分通过应用程序定义的方式可撤销的行为 有补偿处理程序的作用域可不受约束任意深地被嵌套 补偿处理程序仅仅是补偿活动的包装 在许多情况下 补偿处理程序需要接收当前状 态的数据并返回关于补偿结果的数据 补偿处理程序的调用方法是使用c o m p e n s a t e 活动 a c t i v i t y 7 e v e n t h a n d l e r s 事件处理程序 1 4 南京邮电大学硕士研究生学位论文 第三章b p e l 整个流程以及每个作用域可以与一组在相应的事件发生时并发调用事件处理程序相 关联 在事件处理程序中进行任何类型的活动 但是不允许使用 调用补偿 处理程序 事件类型主要有 1 与w s d l 中请求 响应或单向操作对应的传入消息 2 用户设置的时间过后发出的警报 3 2 3 活动 1 基本活动 r e c e i v e 构造业务流程阻塞等待匹配消息的到达 构造业务流程发送消息以应答通过 r e c e i v e 接收到的消息 构造允许业务流程调用由合作伙伴在p o r t t y p e 上提供的单向或请求一响应操 作 异步调用仅需要操作的输入变量 同步调用既需要输入变量 又需要输出变量 构造的作用是用新的数据来更新变量的值 a s s i g n 可以包括任意数量的基本 赋值 a s s i g n 还可把端点引用复制到合作伙伴链接 或把合作伙伴链接复制到端点引用 服务的动态绑定 构造从业务流程中生成故障 使用t h r o w 发出内部故障 每个故障需要有一 个全局惟一的o n a m e 还可选提供数据的变量 故障处理程序可以使用这种数据 来分析 和处理该故障并植入需被发送到其他服务的所有故障消息 t e r m i n a t e 可以用于立即终止该t e r m i n a t e 活动在其中运行的业务流程实例 所有 当前正在运行的活动必须尽可能快地终止 而没有任何故障处理或补偿行为 构造允许等待一段给定的时间或等到某一时刻 必须确切地指定w a i t 中一个 到期条件 e m p t y 构造允许在业务流程中插入 n o o p 指令 e m p t y 可用于并行活动的同步 2 结构化活动 结构化的活动规定了一组活动发生的顺序 描述了创建业务流程的基本活动组成的结 构 这些结构表达了涉及业务协议的流程实例间的控制形式 数据流程 故障和外部事件 的处理以及消息交换的协调 b p e l 的结构化活动包括 顺序控制由s e q u e n c e s w i t c h 和w h i l e 组成 活动之间的并发和同步由f l o w 组成 南京邮电大学硕士研究生学位论文 务车童 坠 递归地使用结构化的活动 构造定义一组按顺序先后执行的活动 执行顺序是s e q u e n c e 元素中被列 出活动的先后顺序 当s e q u e n c e 中的最后一个活动完成后 该s e q u e n c e 活动也就完成 了 s t a n d a r d e e m e n t s a c t y it y 构造允许从一组分支中只选择一个活动分支 s w i t c h 由c a s e 元素定义的一 个或多个条件分支的有序列表组成 后面可跟也可以不跟一个o t h e r w i s e 分支 以c a s e 分支的出现顺序检查 第一个条件是t r u e 的分支被选择并被作为被执行的活动 如果有 条件的分支都未被选择 那么o t h e r w i s e 分支将被选择 s t a n d a r d e e m e n t s a c t f v it y 9 a c t j y it y 构造允许指定反复执行一个活动 直到某个成功条件被满足为止 st a n d a r d e e m e nt s a c r e y it y 构造允许阻塞并等待某一个合适的消息的到达或超时警报响起 当其中一个触 发器触发后 相关的活动就被执行 p i c k 也随即完成了 p i c k 活动等待一组相互排斥事 件中的一个事件的发生 然后执行与发生的事件相关联的活动 如果多个事件发生 那么 按照时间发生先后或选择原则确定发生事件 当业务流程的实例的创建是由于接收到一组 可能的消息中的一个消息而发生的时 可以使用p i c k 的特殊形式 每个p i c k 活动必须至 1 6 南京邮电大学硕士研究生学位论文第三章b p e l 可能的消息中的一个消息而发生的时 可以使用p i c k 的特殊形式 每个p i c k 活动必须至 少包括一个o n m e s s a g e 事件 o n m e s s a g e 事件的语义等同于有关变量属性的可选类型的 r e c e i v e 活动 s t a n d a r d e l e m e n t s a c t i y it y o n a l a r m f o r d u r a t i o n e x p r a c t y v it y iu n t i l d e a d li n e e x p r 木 构造指定一个或多个并行地执行的活动 为了定义任意的控制结构 可以在并 行的活动中使用链接 f l o w 能进一步表达直接或间接嵌套在其中的活动之间的同步相关 性 l i n k 构造用来表达这种同步相关性 一个l i n k 有一个名称 f l o w 活动的所有链必须 在f l o w 活动中分开定义 活动的标准的s o u r c e 和t a r g e t 元素用来链接两个活动 在f l o w 活动中声明的每个l i n k 必须在该f l o w 中恰好有一个活动作为它的源 恰好有一个活动作 为它的目标 st a n d a r d e l e m e nt s a c r e y n p 构造允许定义嵌套活动 这个嵌套活动有和自己关联的变量 故障处理程序 和补偿处理程序 南京邮电大学硕士研究生学位论文 第三章b p e l a c t l v it y 构造已正常完成执行的内层作用域上调用补偿 c o m p e n s a t e 命名了执行 补偿所在的作用域 仅当作用域正常完成执行之后该作用域的补偿处理程序才可被调用 显式地执行c o m p e n s a t e 活动的能力是b p e l 的应用程序控制的错误处理框架的基础所在 该活动只能用于业务流程的以下部分中 在作用域的f a u l t 处理程序中 该作用域直接 包括补偿将被执行的作用域 在作用域的补偿处理程序中 该作用域直接包括补偿将被执 行的作用域 如果按名称显式地补偿的作用域在循环中被执行 那么在后续的迭代中补偿 处理程序的实例将按相反的顺序执行 s t a n d a r d e l e m e n t s 南京邮电大学硕 t 研究生学位论文 第三章b p e l 3 3b p e l 工作引擎 当前 存在了开源的和商业工作流引擎用于开发和部署b p e l 流程 a c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论