已阅读5页,还剩67页未读, 继续免费阅读
(计算机科学与技术专业论文)基于浏览器的bpel4ws开发环境的研究和实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
北京邮电大学硕士学位论文 独创性( 或创新性) 声明 本人声明所呈交的论文是本人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不 包含其他人已经发表或撰写过的研究成果,也不包含为获得北京邮电大学或其他 教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任 何贡献均已在论文中作了明确的说明并表示了谢意。 申请学位论 本人签名: 处,本人承担一切相关责任。 日期:塑叁:主:2z 一 关于论文使用授权的说明 学位论文作者完全了解北京邮电大学有关保留和使用学位论文的规定,即: 研究生在校攻读学位期间论文工作的知识产权单位属北京邮电大学。学校有权保 留并向国家有关部门或机构送交论文的复印件和磁盘,允许学位论文被查阅和借 阅;学校可以公布学位论文的全部或部分内容,可以允许采用影印、缩印或其它 复制手段保存、汇编学位论文。( 保密的学位论文在解密后遵守此规定) 保密论文注释:本学位论文属于保密在年解密后适用本授权书。非保密论 文注释:本学位 本人签名: 导师签名: 适鬣釜盎 日期: 丝! :! :圣z 日期:迎笪:i :蔓2 2 北京邮电大学硕士学位论文 基于浏览器的b p e l 4 w s 开发环境的研究和实现 摘要 b p e l 4 w s ( 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 ef o rw e bs e r v i c e ) 是一种通过服务组合来定义业务流程的新的规范。通过b p e l 4 w s 规 范,可以直接对基于s o a p 的w e b 服务进行编排、组合。随着 s o a ( 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 ) 在企业当中的流行和落地,用于创 建业务流程的b p e l 4 w s 在s o a 中的作用将会越来越重要。 然而,当今流行的b p e l 4 w s 开发环境都是基于桌面应用的程序, 无论是环境的搭建还是部署过程都比较复杂,对于想进行业务流程编 排以实现新业务的用户有着一定的技术门槛。此外,在桌面应用环境 下,开发出来的b p e l 4 w s 流程很难实现真正的共享。 为了解决上面的问题,本文通过利用f l e x 这样的r i a ( r i c hi n t e m e t a p p l i c a t i o n ) 技术,把基于桌面应用的b p e l a w s 开发环境移植到浏览 器当中。采用富客户端开发技术,使得用户通过浏览器直接登录系统 即可进行b p e l 4 w s 流程的开发和编辑,同时还提供和基于桌面应用 相类似的可拖拽操作,提供友好的用户体验。另外,通过在服务器端 集成b p e l 4 w s 引擎和相关流程管理模块,采用w e b 服务向浏览器前 端提供调用接口,使得用户在开发流程之后可以方便地进行流程的部 署发布。整个系统不仅降低b p e l 4 w s 开发和部署的难度,让更多的 非技术背景的业务人员可以更容易地参与到b p e l 4 w s 流程的开发 中,同时允许用户对b p e l 4 w s 流程进行共享,真正实现s o a 提倡 的服务、流程重用。 关键字:b p e l 4 w ss o a 服务组合r i af l e x 北京邮电大学硕士学位论文 r e s e a r c ha n di m p l e m e n t a t i o no fb r o w s e r b a s e db p e l 4 w sd e v e l o p m e n te n r o m e n t 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 ef o r 嘞s e r v i c e s ( b p e l 。 w s - b p e l ,o rb p e i a w s ) i st h en e ws t a n d a r df o rd e f i n i n gb u s i n e s s p r o c e s s e sw i t hc o m p o s i t i o no fs e r v i c e s i ti st h ec o m e r s t o n eo fs 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 敞b a s e dw e bs e r v i c ec a l lb e o r c h e s t r a t e da n d c o m p o s i t e da c c o r d i n g t ob p e l 4 w s a ss 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 ) i sb e c o m i n gm o r ea n dm o r ep o p u l a ri n e n t e r p r i s e ,b p e l 4 w s ,w h i c hi sa s s o c i a t e dw i t hb u s i n e s sp r o c e s s w i l l p l a ya ni m p o r t a n tr o l ei nt h es o a h o w e v e r m o s t o ft h e p o p u l a r b p e l 4 w s d e v e l o p m e n t e n v i r o n m e n t sa r ed e s k t o pb a s e da p p l i c a t i o n i ti sv e r yd i 伍c u l tw h e t h e rt o e s t a b l i s h t h e d e v e l o p m e n te n v r i o n m e n to rt od e p l o yt h eb p e l 4 w s p r o c e s st ot h er u n t i m e ,w h i c hi sav e r yh u g et e c h n i c a lo b s t a c l ef o rn o n t e c hs a v v yb u s i n e s sp e o p l et od e s i g nab p e l 4 w s p r o c e s st oi m p l e m e n t t h en e wb u s i n e s sp r o c e s s b e s i d e s ,i ti sh a r dt os h a r et h ed e v e l o p e d b p e l 4 w s p r o c e s si nt h ed e s k t o pe n v i r o n m e n t t os o l v et h ea b o v ep r o b l e m s ,t h i sp a p e ru t i l i z e s 弛( 础c hi n t e r n e t a p p l i c a t i o n ) t e c h n o l o ys u c h 弱f l e xt od e v e l o p ab r o w s e rb a s e d b p e l 4 w sd e v e l o p m e n te n v i r o n m e n t b yu s i n gr i c hb r o w s e rc l i e n t t e c h n o l o g y , u s e r sc a nd e v e l o pb p e l 4 w si nt h eb r o w s e ra n dt h eb r o w s e r b a s e dc l i e n ti m p l e m e n t st h ed r a ga n dd r o po p e r a t i o n ,w h i c hw i l l g i v e u s e r saf r i e n d l yu s e re x p e r i e n c ei nt h eb r o w s e rb a s e da p p l i c a t i o n b e s i d e s , t h es y s t e mi n t e g r a t e ss e v e r a lm o d u l e si nt h eb a c k e n d ,s u c h 硒b p e l 4 w s e n g i n e ,w h i c hh e l pt h eu s e r sd e p l o ya n dr u nt h eb p e l 4 w s p r o c e s se a s i l y a n d c o n v i n e n t l y t h e w h o l e s y s t e m r e d u c e st h ed i 伍c u l t i e so f d e v e l o p m e n ta n dd e p l o y m e n to ft h eb p e l 4 w :e n g a g i n gm o r en o nt e c h s a v v yb u s i n e s sp e o p l et ot h eb p e l 4 w sd e v e l o p m e n t a n dw i t ht h eh e l p 5 北京邮电大学硕士学位论文 o ft h ea p p l i c a t i o n ,w ec a l lm a k et h es e r v i c er e u s ea n db u s i n e s sp r o c e s s r e u s ear e a l i t y k e y w o r d :b p e l 4 w s ,s o a , s e r v i c ec o m p o s i t i o n ,r i a , f l e x 6 北京邮电大学硕士学位论文 1 1 背景 1 1 1s o a 的发展 第一章绪论 s o a 的概念最初由g a r t n e r 公司提出,由于当时的技术水平和市场环境尚不 具备真正实施s o a 的条件,因此当时s o a 并未引起人们的广泛关注,s o a 在 当时沉寂了一段时间。伴随着互联网的浪潮,越来越多的企业将业务转移到互联 网领域,带动了电子商务的蓬勃发展。为了能够将公司的业务打包成独立的、具 有很强伸缩性的基于互联网的服务,人们提出了w e b 服务的概念,这可以说是 s o a 的发端。【i j w e b 服务开始流行以后,互联网迅速出现了大量的基于不同平台和语言开发 的w e b 服务组件。为了能够有效地对这些为数众多的组件进行管理,人们迫切 需要找到一种新的面向服务的分布式w 曲计算架构。该架构要能够使这些由不 同组织开发的w e b 服务能够相互交互,保障安全以及兼顾复用性和可管理性【2 】。 由此,人们重新找回面向服务的架构( s e r v i c e - o r i e n t e d a r c h i t e c t u r e ,s o a ) ,并 赋予其时代的特征。 与此同时,企业越来越重视业务模型本身的组件化,以支持高度灵活的业务 战略。但是现有的企业软件架构不够灵活,难以适应日益复杂的企业整合,难以 满足随需应变商务的需要,因此与业务对齐、以业务的敏捷应变能力为首要目标、 松散耦合、支持重用的s o a 架构方法得到青梨3 1 。 s o a 架构给企业带来的一个重要观点是业务驱动n ,即r r 和业务更加紧密 地对齐【4 】。以粗粒度的业务服务为基础来对业务建模,会产生更加简洁的业务和 系统视图;以服务为基础来实现的i t 系统更加灵活、更易于重用、更好也更快 地应对变化;以服务为基础,通过显示地定义、描述、实现和管理业务层次的粗 粒度服务( 包括业务流程) ,提供了业务模型和相关n 实现之间更好的“可塑造 性,减小了它们之间的差距,使得业务的变化更容易传递到i t 。 因此,s o a 已经成为企业1 1 r 系统实施的一个时尚,无论是对旧有信息系统 的改造,还是对企业新1 1 r 架构的设计,面向服务的体系架构都往往成为首选的 方案。从s o a 刚开始的理论阶段,到现在s o a 已经开始真正落地到企业的1 1 i 架构当中,可以说s o a 势必成为未来i t 系统的一个重要架构。 9 北京邮电大学硕士学位论文 1 1 2b p e l 4 w s 的提出 从亨利福特开始通过装配生产福特汽车,直到今日,人们一直都在想办法来 更好地、更快地、更可靠、更经济地完成工作。业务流程就是一种非常好的方法。 业务流程可以被定义为一个由各种不同功能的活动相连的一组有相互关系的任 务,它们依照一定的业务逻辑和顺序依次执行。业务流程有起点和终点,而且它 们都是可重复的。业务流程是企业实现商务目标的方法。对于企业而言,业务流 程是企业重要的知识资产,是企业的核心竞争力的体现,一个精心设计和执行的 业务流程能够为企业创造价值并节约成本。 现代业务流程管理系统的历史可以追溯到工作流系统。简单地来讲,工作流 定义了业务流程中的参与者( 、胁o ) 、所执行的工作( w h a t ) 及何时执行( w h e n ) 。 在企业r r 环境中,工作流软件通常与企业应用集成( e n t e r p r i s ea p p l i c a t i o n i n t e g r a t i o n ,e a i ) 系统结合在一起,成为企业应用的“黏合剂 ,实现业务流程 的自动化和流水线化。 传统工作流系统的最大缺陷就是:它们大多采用了专有技术。这使得业务流 程与企业应用的结合变得非常复杂,通常需要很长时间进行部署和实施,而与企 业外部系统进行集成则更加困难,无法适应全球化浪潮和互联网时代对企业灵 活、无缝集成的需求。随着s o a 的发展,w e b 服务标准的日益完善,人们开始 考虑利用w e b 服务的开放性和标准化,来解决业务流程与企业应用之间的互操 作性问题。 正是基于这样的背景下,在2 0 0 2 年7 月,m m 、微软、b e a 提交了b u s i n e s s p r o c e s se x e c u t i o nl a n g u a g ef o rw 曲s e r v i c e s ( b p e l a w s ) 1 o 【5 】的规范。业务 流程执行语言基于x m l 和w e b 服务技术,它融合了早期的i b m 的w e bs e r v i c e s f l o wl a n g u a g e ( w s f l ) 1 6 及微软的x l a n g 规划7 】的很多特点。 随后许多主要软件厂商如s a p 和s i e b e l 等公司陆续加入规范的制定,并催生 了多项修改和改进,并于2 0 0 3 年3 月发布了1 1 版。2 0 0 3 年4 月,b p e l 被提 交结构化信息标准促进组织( o a s i s ) 以实现标准化,并组建了w e b 服务业务 流程执行语言技术委员会( w s b p e lt c ) ,该努力使b p e l 在业界获得更为广 泛的认可。在2 0 0 7 年,该技术委员完成了下一代规范的制定工作,使得b p e l2 0 版本的规范发布于众。 通过b p e l 规范,真正实现了基于w e b 服务的编排机制,使得企业s o a 架 构中那些可以重用的w e b 服务真正得以重用起来,为企业业务敏捷做好技术上 实现的准备。 1 0 北京邮电大学硕士学位论文 1 1 3r i a 技术介绍 在过去的两到三年中,w e b 开发人员一直想构建一种比传统h t m l 更丰富 的客户端:这是一个用户接口,它比用h t m l 能实现的接口更加健壮、反应更 加灵敏和更具有令人感兴趣的可视化特性。而此时,r i a ( r i c hi n t e r n e ta p p l i c a t i o n ) 的出现,正好能解决人们的这个需求,r i a 技术允许我们在因特网上以一种像使 用w e b 一样简单的方式来部署富客户端程序。 r i a 具有的桌面应用程序的特点包括:在消息确认和格式编排方面提供互动 用户界面;在无刷新页面之下提供快捷的界面响应时间;提供通用的用户界面特 性如拖放式操作( d r a ga n dd r o p ) 以及在线和离线操作能力。r i a 具有的w e b 应用程序的特点包括如:立即部署、跨平台、采用逐步下载来检索内容和数据以 及可以充分利用被广泛采纳的互联网标准。r i a 具有通信的特点则包括实时互动 的声音和图像。【9 】 客户机在r l a 中的作用不仅是展示页面,它可以在幕后与用户请求异步地进 行计算、传送和检索数据、显示集成的用户界面和综合使用声音和图像,这一切, 都可以在不依靠客户机连接的服务器或后端的情况下进行。 对于企业来说,部署r i a 的好处在于【l o 】: 1 ) r i a 可以继续使用现有的应用程序模型( 包括j 2 e e 和n e t ) ,因而无需 大规模替换现有的w e b 应用程序。通过砒c hc l i e n t 技术,可以轻松构建更为直 观、易于使用、反应更迅速并且可以脱机使用的应用程序。 2 ) r i a 可以帮助企业提供多元化的重要业务效益,包括产提高销量、提高 品牌忠诚度、延长网站逗留时间、较频繁的重复访问、减少带宽成本、减少支持 求助以及增强客户关系等。 无论将来r i a 是否能够如人们所猜测的那样完全代替h t m l 应用系统,对 于那些采用c s 架构的富客户端技术运行复杂应用系统的机构和采用基于b s 架 构的瘦客户端技术部署w e b 应用系统地机构来说,r l a 确实提供了一种廉价的 选择。 1 2 研究目标和研究意义 1 2 1 研究目标 本文的目标是在研究b p e l 4 w s 规范的基础上,利用富客户端的浏览器开发 技术f l e x ,实现一个一基于浏览器的b p e l 4 w s 的开发环境,该开发环境通过 w e bs e i c e 和后台服务器进行交互,能使得用户通过登录浏览器便可以进行 北京邮电大学硕士学位论文 b p e l 4 w s 流程的创建、编辑以及部署发布等功能。 1 2 2 研究意义 随着s o a 在企业中的进一步落地,s o a 必将成为企业的基础架构,支撑企 业的业务发展。而w e bs e r v i c e 作为s o a 架构中的重要技术,b p e l 4 w s 作为一 种对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 。因此b p e l 4 w s 对以s o a 为基础1 1 r 架构的企业来说是一种“粘合剂 ,通过它,企业的业务流 程的改变,可以迅速反映到i t 架构中,从而使得企业更加敏捷,更好地适应市 场需求的快速变化。 而另一方面,w e b 2 0 的思想对企业的影响也越来越大,基于w e b 2 0 思想的 应用为员工对企业业务的参与提供了更加方便的手段,降低员工对技术理解和使 用的门槛。而浏览器作为w e b 2 0 应用主要的运行环境,使得浏览器在企业日常 运营中的作用越来越明显。 通过本文所实现的基于浏览器的b p e l 4 w s 开发环境,降低了b p e l 4 w s 流 程开发的技术门槛,使得非技术背景的用户也可以进行b p e l 4 w s 流程的开发, 为企业中的业务人员自行进行业务所涉及的1 1 r 架构的调整提供了方便的手段。 此外,用户通过共享b p e l 4 w s 流程,可以真正实现企业的工作流协同,实现企 业业务流程的有效管理。 1 3 主要工作 本人在课题研究和开发期间所作的研究和实践工作包括以下内容: 研究相关文献、资料,进行项目准备工作,包括s o a 中的技术( s o a p ,w s d l , u d d i ,x m ls c h e m a ) ,c i a s i s 组织制定的b p e l 4 w s2 o 规范: 研究a d o b e 公司的浏览器端开发f l e x ,并进行技术上的验证; 进行基于桌面软件的b p e l 4 w s 开发工具的调研,以及项目中需要用到的相 关技术工具的调研; 1 完成系统的需求分析; 2 确定系统实现的技术路线并完成概要设计: 3 完成详细设计和开发; 4 完成系统的测试,并完成系统的集成测试; 1 2 北京邮电大学硕士学位论文 1 4 论文结构 第一章是绪论,首先介绍研究的背景,对课题目标和研究意义进行阐述,接 着总结主要研究工作和实践工作,最后说明了本文结构。 第二章是相关技术介绍,概述b p e l 4 w s 规范中涉及到的相关知识,介绍项 目中需要用到的浏览器端开发技术f l e x ,并且简述其中的所涉及到的编程语言 a c t i o n s c r i p t 和m x m l 。 第三章是本文所涉及系统的分析和概要设计,详细介绍了系统的需求分析与 概要设计,主要内容包括:基于浏览器的b p e l 4 w s 开发环境的功能,系统各部 分的技术路线,总体架构说明,模块设计说明。 第四章是系统的详细设计和实现,详细介绍了系统各个模块的实现原理。 第五章是总结和展望,对全文进行简要总结,并进行项目的前景展望。 1 3 北京邮电大学硕士学位论文 第二章相关技术 本章对课题涉及到的b p e l a w s 规范和f l e x 技术进行相关的介绍。 2 1b p e l 4 w s 介绍 2 1 1b p e l 的来源 从亨利福特开始通过装配生产福特汽车,直到今日,人们一直都在想办法来 更好地、更快地、更可靠地、更经济地完成工作。业务流程就是一种非常好的方 法。业务流程可以被定义为一个由各种不同功能的活动相连的一组有相互关系的 任务,它们依照一定的业务逻辑和顺序依次执行。业务流程有起点和终点,而且 它们都是可重复的。业务流程是企业实现商务目标的方法。对于企业而言,业务 流程是企业重要的知识资产,是企业的核心竞争力的体现,一个精心设计和执行 的业务流程能够为企业创造价值并节约成本。 现代业务流程管理系统的历史可以追溯到工作流系统。简单地来讲,工作流 定义了业务流程中的参与者( 矾o ) 、所执行的工作( w h a t ) 及何时执行( w h e n ) 。 在企业1 1 r 环境中,工作流软件通常与企业应用集成( e n t e r p r i s ea p p l i c a t i o n i n t e g r a t i o n ,e a i ) 系统结合在一起,成为企业应用的“黏合剂”,实现业务流程 的自动化和流水线化。 传统工作流系统的最大缺陷就是:它们大多采用了专有技术。这使得业务流 程与企业应用的结合变得非常复杂,通常需要很长时间进行部署和实施,而与企 业外部系统进行集成则更加困难,无法适应全球化浪潮和互联网时代对企业灵 活、无缝集成的需求。随着s o a 的发展,w e b 服务标准的日益完善,人们开始 考虑利用w e b 服务的开放性和标准化,来解决业务流程与企业应用之间的互操 作性问题。 正是基于这样的背景下,在2 0 0 2 年7 月,i b m 、微软、b e a 提交了b u s i n e s s p r o c e s se x e c u t i o nl a n g u a g ef o rw e bs e r v i c e s ( b p e i a w s ) 1 0 的规范。业务流 程执行语言基于x m l 和w e b 服务技术,它融合了早期的i b m 的w e bs e r v i c e s f l o wl a n g u a g e ( w s f l ) 及微软的x l a n g 规范的很多特点。 随后许多主要供货商如s a p 和s i e b e l 等公司陆续加入规范的制定,并催生了 1 4 北京邮电大学硕士学位论文 多项修改和改进,并于2 0 0 3 年3 月发布了1 1 版。2 0 0 3 年4 月,b p e l 被提交 结构化信息标准促进组织( o a s i s ) 以实现标准化,并组建了w e b 服务业务流 程执行语言技术委员会( w s b p e lt c ) ,该努力使b p e l 在业界获得更为广泛 的认可。在2 0 0 7 年,该技术委员完成了下一代规范的制定工作,使得b p e l2 0 版本的规范发布于众。 虽然除b p e l 之外还有一些业务流程规范,但是到目前为止,b p e l 是最为 成熟和被广泛支持的技术。 2 1 2b p e l 的基本特性 相对于对象组装技术,服务组装更为复杂。人们必须面对s o a 环境中异构 的、松耦合的、自主的服务。它们间的交互关系是动态的、按需发生的,而且缺 少中央控制。因此,b p e l 提供的服务组装模型提供了下列特性。【l l 】【1 2 】 ( 1 ) 灵活性:服务组装模型应该具有丰富的表现能力,能够描述复杂的交 互场景,而且能够快速地适应变化。 ( 2 ) 嵌套组装:一个业务流程可以表现为一个标准的w e b 服务,并被组装 到其他流程或服务中,构成更粗粒度的服务,提高了服务的可伸缩性和重用性。 ( 3 ) 关注点分离:b p e l 只关注与服务组装的业务逻辑:其他关注点,比如 服务质量( q o s ,q u m i t yo fs e r v i c e ) ,事务处理等,可被作为附加扩展,由具 体实现平台进行处理。 ( 4 ) 会话状态和生命周期管理:与无状态的w e b 服务不同,一个业务流程 通常具有明确的生命周期模型。b p e l 提供了对长时间运行的、有状态交互的支 持。 ( 5 ) 可恢复性:这对于业务流程( 尤其对长时间运行的流程) 是非常重要 的。b p e l 提供了内置的失败处理和补偿机制,对于可预测的错误进行必要的处 理。 2 1 3b p e l 模型介绍 b p e l 模型可以帮助我们更好地理解如何使用b p e l 描述的业务流程,如图 2 1 所示。流程( p r o c e s s ) l 主l - - 系列活动( a c t i v i t y ) 组成;流程通过伙伴链接( p a r t n e r l i n k ) 来定义与流程交互的其他服务;服务中可以定义一些变量( v a r i a b l e ) ;流 程可以是有状态的长时间运行过程,流程引擎可以通过关联集合( c o r r e l a t i o ns e t ) 将一条消息关联到特定的流程实例。【1 3 】 1 5 北京邮电大学硕士学位论文 图2 1b p e l 模型示意图 伙伴( p a r t n e r ) 在b p e l 中,一个流程可以调用其他服务,也可以响应来自客户端的请求。 也就是说b e p l 流程实例既可以作为服务的请求者,也可以扮演服务的提供者。 b p e l 把与流程交互的其他服务称为伙伴( p a r t n e r ) 。在异步通信环境中,流程与 伙伴之间的会话可能是双向的,这在复杂的商务流程中非常常见。 在流程与伙伴的通信过程中,它们会扮演不同的角色。比如当订单流程被外 部服务调用的时候,它作为“p u r e h a s e o r d e r p r o c e s s 角色来提供服务,然而当它 请求发货服务的时候,它则扮演“i n v o i c e c l i c n t 角色,如图2 - 2 所示。由于在 流程执行过程中,一个流程可能会调用多个伙伴服务,又可能接收多个伙伴的请 求,因此为了消除在通信过程中的多义性,我们需要明确服务和流程所扮演的角 色。 p i 幽妇0 l i d 瞳h v o i 睫 s e t v i t e s 簋访 c l 啦珏e 霄矗i v 。i 。e 矗霄h v e i o ! 珏珥妇 弘妇p l i c e 曲却珊匝t p f i 瞎 曩圆口曙 图2 2 订单流程示意图 1 6 北京邮电大学硕士学位论文 在b p e l 中,这种流程与伙伴的合作关系是通过 元素来定义的。 这样如果在流程的活动中需要指定与特定伙伴的交互,只需要引用p a r t n c r l i n k 的名称即可。而且通过p a r t n e rl i n k s 的抽象,在流程建模时,我们不必指定具体 的服务端点,而将流程与具体服务的绑定推迟到组装或运行时来完成。这种动态 伙伴关系为流程带来了极大的灵活性,也增强了流程的可复用性。比如,我们在 开发环境中使用的伪服务实现,在生产环境中无需修改流程就可以将服务端点替 换为主机应用。 在 元素中,可以通过“m y r o l e 黟和“p a r t n e r r o l 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 j 通过引用p a r t n e r l i n k t y p e 来定义流程与伙伴服务之间的通信接口 ( 实际上是w s d l 文档中的p o r tt y p e ) 。伙伴链接类型声明了两个( 也可能是 多个) 服务之间的关系。服务链接类型定义了一组角色,其中每个角色指明一组 p o r tt y p e ,即明确了该角色所提供的服务接1 2 1 。p a r t n e r l i n k t y p e 通常被定义在 w s d l 文档中,被b p e l 流程所引用。 下面的代码片段显示了如何利用p a r t n e r l i n k 和p a r t n e r l i n k t y p e 定义流程与 伙伴的合作关系。我们实现了一个股票购买流程,在这个流程中需要通过伙伴 s t o e k q u o t e 获取当前股票信息: b p w s :p a r t n a l i n km y r o l e = ”s t o c k s e r v i c e r o l e 什 n a m e = ”s t o c k s e r v i c e 什 p a r t n e r l i n k t y p e = ”n s :s t o c k s e r v i c e p l t ”胁 变量( v a r i a b l e s ) 在b p e l 中,我们可以使用变量来保存和传递流程的状态信息。变量的数据 类型由w s d l 定义,既可以是x m ls c h e m a 内置的简单类型,又可以是自定义 的复杂数据类型: 上面的代码,展示了如何在b p e l 中使用( v a r i a b l e 元素来定义变量。值得注 意的是,与常见的编程语言类似,b p e l 中的变量是有作用域的;每个变量只有 在定义它的作用域和所包含的作用域内才是可见的。在下面的章节中,我们将介 绍如何使用b p e l 来操纵和传递数据。 此外,w s b p e l 提供了一些内置的函数来支持变量内容的处理: ( 1 ) g e t v a r i a b l e p r o p e r t y ( v a r i a b l e n a m e , p r o p e r t y n a m e ) 为获取变量属性函 数:输入参数为变量名称和属性名称,结果为属性值。 ( 2 ) g e t v 撕a b l e d a t a ( v a r i a b l e n a m e ,p a r t n a m e ,l o e a t i o n p a t h ) 为获取变量 数据函数:输入参数为变量名称、p a r t 名称,以及x p a t h 表达式,其中p a r t n a m e , 和l o c a t i o n p a t h 为可选参数。输出结果为指定变量的全部或部分的数据内容。 活动( a c t i v i t y ) b e p l 流程是由一系列步骤所组成的,它们被称为活动。w s - b p e l 定义了 丰富的活动类型,一般来说可以把它们划分为两大类:基本活动和结构化活动。 基本活动描述了流程内的一个具体步骤,比如接收请求、调用伙伴服务、变量赋 北京邮电大学硕士学位论文 值等。而结构化活动则描述了如何组织和管理流程的控制流。在下面的章节中将 对活动进行详细讲解。 关联集合( c o e l 撕o ns e t ) b p e l 提供了声明性机制,以指定服务实例中相关联的操作组。一组相关标 记可定义为相关联的组中所有消息共享的一组特性。这样的一组特性称为关联集 合。每个关联集都在一个作用域中进行声明并属于该作用域。属于全局流程作用 域的关联集合称为全局关联集合;属于局部作用域的关联集称为局部关联集合。 在流程开始时,全局关联集处于未初始化的状态。在其所属的作用域的执行开始 时,局部关联集处于未初始化的状态。 相关集在其语义上类似于延迟绑定的常数。相关集的绑定由特别标记的消息 发送或接收操作来触发。相关集在其所属的作用域的生存期中只能初始化一次。 在初始化之后,它的值就可被认为是业务流程实例的标识别名。在多方业务协议 中,相关集合非常有用。初始者流程发送启动会话的第一个消息,从而定义了标 记该对话的相关集中的特性值。所有其他参与者通过接收提供相关集中的特性值 的传入消息来绑定会话中的相关集。比如一个旅行社订票流程,当该流程启动之 后,用户需要能够查询该流程状态,并能取消该流程,这就需要相关集的支持来 确保后续的请求消息绑定到相同的流程实例中。 2 1 4b p e l 活动 下面介绍常用的基本活动。 r e c e i v e ( 接收) r e p l y ( 回答) ( r e c e i v e ) 活动从流程的外部伙伴那获取数据,并将其保存到流程变量。通常 一个r e c e i v e 是一个流程的初始点,它会阻塞执行直到匹配的消息的到达。 i n v o k e 请求 活动允许业务流程同步或异步调用由合作伙伴提供的服务,服务实 现可以是单向或请求一响应操作。i n v o k e 活动使用“p a r t n e r l i n k 来引用伙伴服 务。同过“p o r t t y p e 和“o p e r a t i o n ”指定相应的w s d l 接口和操作: 如果在请求服务的过程中发生异常,则可以通过错误响应和补偿机制来加以 处理,这对业务流程,特别是长时间运行的流程是非常重要的。 a s s i g n 赋值 活动的作用是用新的数据来更新变量的值。a s s i g n 活动可以包括任 意数量的基本复制操作: c h i n a w a i t 等待 活动会暂停流程执行,等待一段给定的时间或等到某一时刻才继续运 北京邮电大学硕士学位论文 b p e l 也提供了丰富的结构化活动,可以灵活地控制流程执行。 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 e q u e n c e 活 动也就完成了。 f l o w 流程 活动可以描述更为复杂的活动执行顺序。我们可以利用f l o w 指定一个 或多个并行执行的活动。为了定义任意的控制结构,可以在并行的活动中使用链 接。 f l o w 能进一步表达直接或间接嵌套在其中的活动之间的同步相关性,l i n k ( 链 接) 用来表达这种同步相关性。 f l o w 活动出现的所有l i n k 必须在f l o w 活动中分开定义,并通过名称进行标 识。f l o w 活动中嵌套的活动需要通过咖或t a r g e t 属性来标明该活动为哪个链 接的源或目标活动。在f l o w 活动中,对于每一个l i n k 必须有且仅有一个活动作 为它的源活动,同样有且仅有一个活动作为它的目标活动。目标活动会在源活动 完成之后执行。这样f l o w 内部的活动就可以通过活动构成一个有向图。 我们还可以在l i n k 的源上定义t r a n f i f i o n ( 变迁) 条件,当源活动完成之后, b p e l 引擎会检查变迁条件是否满足,如果l i n k 的转移条件满足目标活动就会执 行。 i f 判断 w h i l e 循环 活动也继承于传统的结构化编程思想,提供了w l l i l c - d o 循环结构的 支持。它可以包含一个或多个活动。它指定反复执行其内部活动,直到成功条件 不被满足为止。 p i c k 选取 活动会等待一组相互排斥事件中的一个事件的发生,然后执行与发生 2 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 活动。p i c k 活动还可以定义o n a l a r m 事 件用于指定超时警报。 如图2 3 所示描述了一个订单业务流程,它会利用p i c k 活动来等待客户明确 地确认或取消订单,并进行下一步处理,如果客户在指定的时间内没有响应,则 会触发o n a l a r m 事件并通知客户。 图2 3 选取活动示例 p i c k 活动也可以作为业务流程的起始点,指定流程可以接收多种不同的消 息,并让流程在接收到特定消息后创建新的流程实例来处理消息。这里与r e c e i v e 活动类似,我们需要将p i c k 活动的c r e a t e l n s t a n c e 属性设置为“y e s ”。当然这时 候就不应该定义o n a l a r m 超时事件。这是一个非常方便的特性,比如用户希望能 够分别接收并处理来自网页、电子邮件或即时消息发送的请求,就可以通过p i c k 活动非常自然地描述业务流程。 f a u l t h a n d l e r 异常处理 活动执行过程中发生异常,业务流程必须对错误进行处理。与j a v a 等语言类 似,b p e l 提供了异常处理机制。用户可以在业务流程中添加f a u l t h a n d l e r 来捕 获并处理相应的异常。f a u l t h a n d l e r 与特定的s c o p e 关联,用于捕获s c o p e 内产 生的异常。当异常发生时,b p e l 正常执行流结束,控制流转入f a u l t h a n d l e r 内 执行。 f a u l t h a n d l e r 类似于t r y - c a c h e 结构,它包含多个c a t c h 元素,每个都提供活 北京邮电大学硕士学位论文 动为特定类型的错误条件进行异常处理。故障会通过接收w s d l 定义的故障消 息来生成,或者它们可以通过使用t h r o w 元素被明确触发。f a u l t h a n d l e r s 结构可 以由c a t c h a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 机械制造工艺师产品工艺流程优化绩效考核表
- 企业安全检查清单及紧急处理指南
- 员工培训与发展模板大全
- 工作人员服务质量承诺书3篇
- 质量控制检查清单工厂生产现场版
- 客户服务电话沟通记录及反馈模板
- 医疗健康行业未来发展趋势报告
- 2025年初中一年级地理下册期中测试试卷(含答案)
- 2025年北京市公务员申论公文写作专项测试试卷(含答案)
- 2025年1月药房业务学习考核试题及答案
- 安徽晟捷新能源科技有限公司10万吨-年N-甲基吡咯烷酮项目环境影响报告书
- 《能力陷阱》读后感【五篇】
- 护士长竞聘上岗理论测试题
- 2023年贵州毕节市直属机关工作委员会下属事业单位考调笔试备考题库及答案解析
- 建筑电气工程施工技术规程
- 上海市2023年基准地价更新成果
- GA 1026-2012机动车驾驶人考试内容和方法
- MBA市场营销课程考试范围(32题及答案)
- 宝钢作业长制详解课件
- 土壤污染及防治课件
- CAR-T细胞治疗参考课件
评论
0/150
提交评论