(计算机应用技术专业论文)并发流程的bpel表示与实现.pdf_第1页
(计算机应用技术专业论文)并发流程的bpel表示与实现.pdf_第2页
(计算机应用技术专业论文)并发流程的bpel表示与实现.pdf_第3页
(计算机应用技术专业论文)并发流程的bpel表示与实现.pdf_第4页
(计算机应用技术专业论文)并发流程的bpel表示与实现.pdf_第5页
已阅读5页,还剩67页未读 继续免费阅读

(计算机应用技术专业论文)并发流程的bpel表示与实现.pdf.pdf 免费下载

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

文档简介

南京邮电大学硕上研究生学位论文摘要 摘要 当今越来越多的信息、服务都被发布在互联网上,信息搜索、服务集成技术已经成为 i t 行业关注的焦点。电信服务作为一种传统的通信服务,也顺应这种趋势,越来越多地被 运营商以w e b 服务的方式提供给客户,同样面临服务的组合或重用问题。s o a 作为一种 架构思想,能够通过服务的组合或集成,迅速适应业务要求,同时,有效地降低了系统、 服务之间的耦合性,提高了业务实现技术的灵活性。s o a 是在w e b 服务的基础上发展起 来的,主要目的是实现组件的集成,而w e b 服务本质上就是一个服务组件,它能够实现松 散耦合的服务和粗粒度的服务。b p e l 作为s o a 的重要组成部分,它的出现,很好地支持 了不同w e b 服务的集成,满足了流程对服务组合和重用的要求,同时为业务流程的实现提 供技术和服务方面的保障,从而能够组合出新的服务来顺应不断变化的业务需求。 本文结合电信运营支撑系统的发展趋势,以实验室过去基于p e t r i 网的并发机制、规则 应用等研究为基础,将b p e l 作为描述具体业务流程的方式,着重研究它对流程的并发、 协同的表示方法和相关机制,同时建立一种算法将b p e l 流程映射成p e t r i 网模型,从而可 以根据不同的技术需求实现两者的转换。传统的p e t r i 网在描述工作流上有其局限性,多维、 染色概念的提出能很好地解决了这个不足,成为扩展p e t r i 网的重要方面,多维染色t o k e n 的调度机制以及和b p e l 并发流程的内在联系也是本文研究的重要方面。文章首先简要介 绍了w e b 服务组合技术和p e t r i 网等相关知识,然后针对b p e l 规范中的各个概念进行深 入理解,尤其是它的并发协同机制,以及和p e t r i 网的互映射问题。接下来通过一个实例来 详细说明本文提出的b p e l 到p e t r i 网的映射算法。最后,给出映射过程中的相关设计和实 现方法。 关键字:s o a ,w e b 服务,b p e l ,并发,多维染色p e t r i 网 南京邮电大学硕士研究生学位论文a b s t r a c t a b s t r a c t w i t hi n f o r m a t i o na n ds e r v i c e ss p r e a do i lt h ei n t e r n e tw i d e l y , i ti n d u s t r yp a y sm o r ea n d m o r ea t t e n t i o no nt h et e c h n o l o g i e so fi n f o r m a t i o ns e a r c ha n ds e r v i c e sc o m p o s i t i o n a sa t r a d i t i o n a lc o m m u n i c a t i o ns e r v i c ep r o v i d e r , t h et e l e c o m m u n i c a t i o ni n d u s t r yi sa l s og r a d u a l l y c h a n g e d t h e yp r o v i d e dc u s t o m e r sw i t hm a n ys e r v i c e so nt h ei n t e r a c t ,a n ds o m eo ft h e s e s e r v i c e sa r ep r o v i d e d 笛w e bs e r v i c e s i nt h i ss i t u a t i o n ,t h ei m p o r t a n c eo fs e r v i c e sr e u s ea n d c o m p o s i t i o ne m e r g e s a sas y s t e ma r c h i t e c t u r em e t h o d o l o g y , s o a ,d e v e l o p e do nt h eb a s i so f w e bs e r v i c e ,m a k e sb u s i n e s sa g i l eb ys e r v i c e sc o m p o s i t i o n a sa ni m p o r t a n tp a r to fs o a ,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 ) p r o v i d e sag o o ds o l u t i o nt oc o m p o s i t ea n do r c h e s t r a t e w e bs e r v i c e s s u p p o r t e db yb p e l ,c o m p o s i t ew e bs e r v i c e sa n db u s i n e s sa p p l i c a t i o n sc a nb e q u i c k l yi m p l e m e n t e d ,w h i c hc a l lw e l lr e s p o n dt oc h a n g i n gb u s i n e s sn e e d s s t u d i e dt h et r e n d so fl a r g es c a l ea p p l i c a t i o ns o f t w a r es y s t e m ss u c ha st e l e c o mo s s b s s a n db a s e do nr e l e v a n tr e s e a r c hi nt h ef i e l do fp e t r i - n e t , t h i sp a p e rm a i n l yf o c u s e so nh o wt o d e s c r i b e b u s i n e s s p r o c e s s e su s i n gb p e l ,e s p e c i a l l yt h e i r c o n c u r r e n ta n dc o l l a b o r a t i v e m e c h a n i s m si nt h eb u s i n e s sp r o c e s s ,e x p l o r e st h ed i f f e r e n c e sa n ds i m i l a r i t i e sb e t w e e nb p e la n d p e t r i - n e t , a n dd e s i g n sam a p p i n ga l g o r i t h mf r o mb p e lt op e t r i - n e t t h et r a d i t i o n a lp e t r i n e th a s l i m i t a t i o n si nd e s c r i b i n gw o r kf l o w , b u tm u l t i d i m e n s i o n a lc o l o r e dp e t r i n e tp r o v i d e sr e m e d i e s t h e r e f o r e ,t h ei n t e r n a lc o n n e c t i o nb e t w e e nm u l t i d i m e n s i o n a lc o l o r e dt o k e na n db p e l i sa n o t h e r r e s e a r c hf o c u s f i r s t l y , t h i sp a p e rb r i e f l yi n t r o d u c e st h ec o n c e p t i o no fw e bs e r v i c e sc o m p o s i t e t e c h n o l o g ya n dp e t r i - n e t t h e n ,i ta n a l y s e st h ek e yp o i n t so fb p e ls p e c i f i c a t i o n , e s p e c i a l l y c o n c u r r e n tc o l l a b o r a t i v em e c h a n i s m sa n dm a p p i n g 丽n lp e t r i - n e t t h r o u g has p e c i f i ce x a m p l e ,a m a p p i n ga l g o r i t h mf r o mb p e l t op e t r i - n e ti sd e s c r i b e di nd e t a i l f i n a l l y , t h er e l e v a n td e s i g n a n di m p l e m e n t a t i o nm e t h o d sa r eg i v e n k e y w o r d s :s o a ,w e bs e r v i c e ,b p e l ,c o n c u r r e n t ,m u l t i d i m e n s i o n a la n dc o l o r e d p e t r i n e t 南京邮电大学学位论文原创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得 的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包 含其他人已经发表或撰写过的研究成果,也不包含为获得南京邮电大学或其它 教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的 任何贡献均已在论文中作了明确的说明并表示了谢意。 一饭一 研究生签名: :15 哩 日期: 南京邮电大学学位论文使用授权声明 南京邮电大学、中国科学技术信息研究所、国家图书馆有权保留本人所送 交学位论文的复印件和电子文档,可以采用影印、缩印或其它复制手段保存论 文。本文电子文档的内容和纸质论文的内容相一致。除在保密期内的保密论文 外,允许论文被查阅和借阅,可以公布( 包括刊登) 论文的全部或部分内容。 论文的公布( 包括刊登) 授权南京邮电大学研究生部办理。 研究生签名:i l 嘘 导师签名: 日期:趋乒牡 南京邮电大学硕士研究生学位论文 第一章绪论 1 1 课题的背景和意义 第一章绪论 随着互联网技术广泛的应用和w e b 服务( w e bs e r v i c e ) 技术的日益成熟,各种公司或机 构的业务服务和共享资源已经越来越多地被放在了网络上,成为w e b 服务或其他形式的网 络资源。但有些复杂的业务仅仅通过一个w e b 服务难以完成的,特别是在电信行业,随着 业务的发展和提升,无论在通信服务还是在应用支撑方面,都需要把基于不同标准开发而 成的服务集合起来,共同合作形成一个满足需求的服务或是应用。b p e l ( b u s i n e s sp r o c e s s e x e c u t i o n1 a n g u a g e ) j e 是基于此需要开发出来的流程执行语言,它能在不改变原有w e b 服 务的情况下,方便地把各种已发布的w e b 服务组合起来,而不管这些服务使用的底层技术 是否相同。 业务流程的编制中,我们需要安排各种业务活动发生的顺序和扮演的角色,其中,活 动彼此之间的执行顺序和逻辑关系更是我们需要解决的。一个流程的结构无外乎顺序,选 择,并发和循环,其中最重要的就是并发流程。最大限度地合理利用并发流程来实现业务 需求,不但能够简化整个业务流程,更能提高流程运行的效率。同时,在并发流程中我们 还要合理地协同并发活动的执行顺序才能更好地实现业务需求。因此,研究流程的并发和 协同在w e b 服务组合技术中具有举足轻重的意义。b p e l 和p e t r i 网作为常用的描述工作流 程的工具,已有学者研究两者的映射关系,但大多从结构活动、语义上进行对照,或者说 只将b p e l 中的结构化活动进行了p e t r i 网模型的映射,并没有完整具体地将两者进行转换, 更没有将扩展p e t r i 网的多维、染色等方面在b p e l 规范中进行回溯。本文的研究是对以上 存在问题的改进和创新。此外,本文不仅从理论上探讨了这两种流程描述方式之间的转换 方法,更为基于不同方式表示的工作流程最终可以在同一流程引擎下运行提供了思想启 示。 本实验室基于电信业务,设计一种能够有效实现并发和协同的流程引擎,包括以下几 方面的内容:p e t r i 网的多维染色和触发机制,规则机制,b p e l 到p e t r i 网的全映射。本论 文的研究作为其中的一部分,对整个流程引擎的实现具有重要的意义。 南京邮电大学硕士研究生学位论丈第一章绪论 1 2 本文的工作与创新 本文的内容分两部分:其一,研究如何用b p e l 这种业务流程语言来描述业务流程, 尤其关注b p e l 中流程的并发和协同机制:其二,找出b p e l 和p e t r i 网的关联特性,建立 起b p e l 和p e t r i 网各基本元素的映射关系,并设计一个从b p e l 到p e t d 网的流程映射算 法,即把一个用b p e l 语言描述的业务流程转换成一个p e t r i 网表示的流程,最终利用p e t r i 网流程引擎来执行这个由b p e l 流程转换过来的业务流程。 当然,我们可以通过开发一个b p e l 流程引擎来直接实现用b p e l 流程语言描述的业 务流程,但p e t r i 网中有成熟的数学分析方法对建立的流程进行连通性、可达性、效率等方 面的验证,有很多流程引擎是基于p e t r i 网实现的,因此,研究b p e l 和p e t r i 网的转换方 法是十分有意义的。此外,借助本实验室已经开发的p e t r i 网流程执行引擎来实现b p e l 流 程,也可以省去重新开发一个b p e l 流程引擎的环节,从而极大地缩减了工作量。 因此,本文研究的重点不仅是如何用b p e l 来表示流程的并发和协同,更关注于b p e l 和p e t r i 网的映射关系,利用这种映射关系来实现用b p e l 描述的流程能够在p e t r i 网流程 引擎下执行。同时,本文对刚发布的b p e l 4 p e o p l e 技术也给予了关注。 本文的创新点有: ( 1 ) 提出一种b p e l 到p e t r i 网结构映射的新算法; ( 2 ) 多维染色p e t f i 网和b p e l 的互映射。 1 3 论文内容的结构安排 本文共分六个章节,组织结构如下: 第一章介绍论文研究工作的背景、内容和意义。 第二章首先对w e b 服务技术,尤其是组合技术做了介绍,然后具体讲解b p e l 流程语 言的各个要素,对最近刚发布的b p e lf o rp e o p l e 和人工任务进行了相关研究。 第三章介绍了工作流和p e t r i 网的相关知识。 第四章研究b p e l 对流程的并发协同的表示方法以及和多维染色p e t r i 网的对应关系。 第五章具体建立了b p e l 流程中的各要素和p e t r i 网流程模型的映射关系,在此基础上 提出了b p e l 到p e t r i 网的映射算法。 第六章是基于该映射算法的模型设计和实现。 2 南京邮电大学硕士研究生学位论文第二章w e b 服务和业务流程执行语言的研究 第二章w e b 服务和业务流程执行语言的研究 2 1w e b 服务组合技术 w e b 服务组合技术就是通过技术手段将多个独立部署的w e b 服务根据应用需要进行 合成,从而生成一个新的、功能更强的w e b 服务,或者说提供一些增值的w e b 服纠2 。随 着w e b 技术的日益成熟,各企业已经提供了许多功能各异的w e b 服务,但随着业务的变 化和发展,产生了新的需求,这时就可以充分利用已有的w e b 服务,在不改变它们的基础 上重新组合出满足自己业务需求的新的w e b 服务。而一个合成的w e b 服务是一些独立的、 相互交互的服务的聚集,把它所聚集的w e b 服务作为自己的组件来看待,从而获得比原来 的w e b 服务更强大的功能。从“粒度 意义上讲,w e b 服务组合是对w e b 服务进行更大 规模的封装并把该封装的结果作为一个新的w e b 服务提供给外界;而从“顺序 意义上讲, 组合是定义一系列w e b 服务的调用顺序。从以上描述可以看出,w e b 服务组合应该具有以 下的一些特点 2 1 :( 1 ) 层次性和扩展性:( 2 ) 动态与自适应性;( 3 ) 提高了交易过程的自动 化程度。 w e b 服务组合的方法从技术上大体可分为静态组合和动态组合。所谓静态组合就是在 开发设计过程就定义好了各w e b 服务之间的控制流和数据流如何交互。而动态组合是在系 统运行过程中进行的,它们之间的控制流和数据流是自动产生的。也就是说这两者的区别 是w e b 服务选择组合的时机不同,前者是在设计时确定的,后者则是在运行时确定的。动 态组合以静态组合为基础,且其难度要大于静态组合。至于具体选择哪种方式进行组合, 要根据具体的需要和特点来定。总体上说,静态组合适用于各w e b 服务之间内在关系比较 固定时,动态组合则需要经常根据环境进行动态调整。 3 南京邮电大学硕士研究生学位论文第二章w e b 服务和业务流程执行语言的研究 2 2b p e l 与w e b 服务、w s d l 的关系 2 2 1b p e l 与w e b 服务的关系描述 图2 - 1w e b 服务体系 w e b 服务从大的方面来说,它和c o r b a 、j 2 e e 一样,都是分布式系统的一种体系, 而b p e l 是一种流程编制语言,好像两者相差很远,但它们之间的联系是很紧密的,如图 2 1 所示。 首先,b p e l 的实现需要w e b 服务的支持,w e b 服务的消息机制s o a p 为b p e l 流程 间的交互提供了传输协议,w e b 服务注册与查找机制u d d i 使得b p e l 查找调用已有服务 更加便利和快捷,w e b 服务描述机制w s d l 为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 服务组合起来, 从而能够提供新的、功能更强大的w e b 服务,w e b 服务是它其中的一个构成要素,或者说 是“构件的组成部分【2 】。从这个意义上来说,b p e l 就从一种流程语言演变成了一种广义 编程语言。 2 2 2b p e l 与w s d l 的关系描述 b p e l 流程中使用的服务、接口、消息和操作等,都需要事先在一个w s d l 文件中予 4 南京邮电大学硕上研究生学位论文第二章w e b 服务和业务流程执行语言的研究 以定义以后才可以使用,也就是说,w e b 服务提供的操作、接口、服务等需要在w s d l 文 件中具体定义以后,b p e l 流程才可以调用它们。 b p e l 流程面向w e b 服务的特点在过程元素和w s d l 元素的关系中可以很明确的看出 来。b p e l 中的变量类型是依靠w s d l 的消息类型来定义【5 ,6 1 。只有创建了某个消息,才能 基于这种消息的类型来定义变量。当然,一种类型可以定义多个变量。伙伴关系类型 ( p a r t n e r l i n k t y p e ) 地定义指明了伙伴在服务中的角色( r o l e ) ,引用了端口类型( p o r t t y p e ) 。端 口类型指明这个端口的操作类型,这样就为端口增加了功能性。消息选择匹配什么样的伙 伴关系,执行什么样的操作( 即选择端口类型) ,这样就对应于b p e l 流程中的伙伴关系 ( p a r m e r l i n k ) 元素。在b p e l 中定义活动时,要选择这个活动的变量与所用的伙伴关系。 选择范围 图2 2 流程组成元素与w s d l 元素之间的关系 2 3b p e l 的基本思想和特性 要实现w e b 服务组合,就一定要有一种流程语言能够将这些w e b 服务给串起来,这 种新的业务流程语言就是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 l 4 1 。b p e l 流程需 要在b p e l 的运行环境下执行。一个b p e l 流程一般会创建一个b p e l 流程实例,b p e l 就是定义这个流程如何与合作伙伴( 外部的w e b 服务) 进行交互。b p e l 通过w s d l 给出 p o r t t y p e 接口,而接口操作和输入、输出变量来实现对w 曲服务的操作。 b p e l 是基于x m l 和w e b 服务构建的,它使用一种基于w e b 的语言,该语言支持 w e b 服务技术系列,包括s o a p ,w s d l ,u d d i ,w e b 服务可靠性消息,w e b 服务寻址, w e b 服务协调和w e b 服务事务【们。 在企业内部,b p e l 用于标准化企业应用程序集成以及将此集成扩展到先前孤立的系 南京邮电大学硕士研究生学位论文第二章w e b 服务和业务流程执行语言的研究 统。在企业间,b p e l 使与业务合作伙伴的集成变得更容易,更高效。b p e l 激发企业进 步定义它们的业务流程,不但有利于业务流程的优化,还便于选择最合适的流程,进而实 现了组织的进一步优化。b p e l 中描述的业务流程并不影响现有系统,因此对升级产生了 促进作用。在已经或将要通过w e b 服务公开功能的环境中,b p e l 是项重要的技术。随着 w e b 服务的不断普及,b p e l 的重要性也随之提高。 根据上边的描述可以看到,b p e l 应该具有以下特性【6 】: ( 1 ) 灵活性:服务组合模型应该具有丰富的表现能力,能够描述复杂的交互场景,而 且能够快速地适应变化; ( 2 ) 嵌套组合:一个业务流程可以表现为一个标准的w e b 服务,并被组合到其他流程 或服务中,构成粗力度的服务,提供了服务的可伸缩性和重用性: ( 3 ) 关注点分离:b p e l 只关注与服务组合的业务逻辑;其他关注点,比如服务质量, 事务处理等,可被作为附加扩展,由具体实现平台进行处理; ( 4 ) 会话状态和生命周期管理:与无状态的w r e b 服务不同,一个业务流程通常具有明 确的生命周期模型。b p e l 提供了对长时间运行、有状态交互的支持; ( 5 ) 可恢复性:这对于业务流程,尤其是对长时间运行的流程是非常重要的。b p e l 提 供了内置的失败处理和补偿机制,对于可预测的错误进行必要的处理。 2 4b p e l 的核心概念 2 4 1 活动 活动是指b p e l 流程中的一条语句或者一个步骤的执行。b p e l 流程类似于用来表达 算法的流程图,流程的每一步就称为一个活动。这些活动又分为基本活动和结构化活动, 基本活动描述了流程内的一个具体步骤,它是b p e l 流程中的原子活动,用于完成一个特 定的任务,不能够再分:而结构化活动则规定了一组活动发生的顺序,描述了如何组织和 管理流程的控制流,里边可以内嵌有一个或多个基本活动或者结构化活动【4 j 。 b p e l 中的基本活动包括【5 l : ( 1 ) : 活动( 即请求) 是b p e l 中最重要的活动,其他所有的活动都 是为了辅助这个活动,它会调用合作伙伴的服务,得到返回结果。 允许业务流程 同步或异步调用服务,服务实现可以是单向或者请求响应操作: ( 2 ) : 活动( 即接收) 从流程的外部伙伴那里获取数据,并将其保存 到流程变量。通常,一个 活动是一个流程的初始点,它将会阻塞执行直到匹配的 南京邮电大学硕士研究生学位论文第二章w e b 服务和业务流程执行语言的研究 消息到达: ( 3 ) : 活动( 即回复) 发送消息给伙伴来应答通过 活动所接收 到的消息。这对组合对应着w s d l 中p o r t t y p e 上定义的一个请求、响应操作; ( 4 ) : 活动( 即赋值) 用来创建或修改v a r i a b l e 内的数据。 活 动可以把数据从一个v a r i a b l e 复制到另一个v a r i a b l e ,也可使用表达式来构造和插入新数据; ( 5 ) :空操作。我们经常会用到不做任何事的活动,它的语法是显然的,也是 最简单的: ( 6 ) : 活动( 即等待) 允许业务流程指定延迟时间或某个截止期限; ( 7 ) :当业务流程需要显式地发出故障信号时可以使用抛出异常 活动; ( 8 ) : 活动( 即终止) 可被用来立即放弃执行 活动的 业务流程实例中的其它所有活动。 b p e l 中的结构化活动包括【5 】: ( 1 ) :一个 活动包含一个或多个按顺序执行的活动,执行顺序是 这些活动在 元素中被列出的先后顺序,即词法顺序。当 中的最后一 个活动完成后,该 活动也就完成了; ( 2 ) : 提供并发性和同步性的结构化活动。把一组活动集中在 中的 最基本的语义效果是使它们能并发地执行。当 中的所有活动完成时, 也就完 成了; ( 3 ) :通过允许指定一个或多个条件分支 ( 它们的执行依赖于指定的条 件) 和一个可选的分支 ( 若所有的条件经过测试都失败,则执行该分支) 来支 持附有条件的行为。当被选分支中的活动完成后, 活动也就完成了; ( 4 ) :支持指定的迭代活动的重复执行,一直继续到指定的布尔条件不再为真; ( 5 ) :等待一个或多个事件的发生,事件的发生往往是相互排斥的( 某流程可以 接收到允许消息,也可以接收到拒绝消息,但不可能同时接收到这两个消息) 。如果不止 一个事件发生,那么被执行活动的选择取决于哪个事件先发生: ( 6 ) :每个活动的执行上下文i 妇 作用域来提供。 可提供故障 处理程序、补偿处理程序、数据变量和相关集。 2 4 2 合作伙伴连接 在b p e l 中,把与流程交互的其它服务称为合作伙伴,这种流程与伙伴的合作关系是 通过 p a m l e r l i i 岭元素来定义的。如果在流程的活动中需要指定与特定伙伴的交互,只需 7 南京邮电大学硕士研究生学位论文第二章w e b 服务和业务流程执行语言的研究 要引用p a r t n e r l i n k 的名称即可。而且通过p a r t n e rl i n k s 的抽象,在流程建模时我们不必指 定具体的服务,而将流程与具体服务的绑定推迟到组装或运行时来完成。这种动态的伙伴 关系给流程带来了极大的灵活性,也增强了流程的可复用性。而合作伙伴链接作为b p e l 流程中的服务提供者,又分为两种:一种是b p e l 流程所要调用的外部服务;另一种是b p e l 本身所要提供的服务。 我们知道, 等基本活动是通过服务提供的接口来对实例进行操作的,但是 b p e l 流程是如何知道所调用服务的p o r t t y p e 是哪个,可见图2 3 : + p a r t n e r l i n k p a r m e r l i n k t y p ep o r t t y p e 一一 图2 - 3 定义伙伴时的层次关系 在w s d l 文档中,通过定义p a r t n e r l i n k t y p e 把p o r t t y p e 和p a r t n e r l i n k t y p e 链接起来; 在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 和p a r t n e r l i n k t y p e 链接起来。因此, 我们通过b p e l 中的p a r t n e r l i n k 便可知道具体服务的p o r t t y p e 接口操作。 2 4 3 相关集 相关集用一组特定的数据,来关联和标识一个b p e l 过程实例。其实它就是一个声明 机制,以指定服务实例中相关联的操作组。一组相关集合可定义为相关联的组中所有消息 共享的一组特性。相关集在其语义上类似于延迟绑定的常数。相关集的绑定由特别标记的 消息发送或者接收操作来触发,它在其所属的作用域的生存期中只能初始化一次,在初始 化之后,它的值就可被认为是业务流程实例的标识别名。 2 4 4 变量 b p e l 里边变量的概念和c + + 等其它程序语言所说的变量类似,都是一个保存和传递 数据的地方。不同的是,其他程序语言中的参数可以直接调用,而在b p e l 中是不行的, 因为b p e l 需要集成w s d l 定义的w e b 服务,同一个参数名字在不同的w s d l 中参数是 不一样的。b p e l 中还提供了一些内置的函数来支持变量内容的处理,比如 g e t a b l e p r o p e n y o 为获取变量属性值函数,g e t v 撕a b i e d 北0 为获取变量数据函数 8 南京邮电大学硕上- 研究生学位论文第二章w e b 服务和业务流程执行语言的研究 2 4 5 错误处理与补偿机制 与其它程序语言一样,b p e l 也提供了异常处理机制。当活动执行过程中出现异常后, 能够捕获异常,b p e l 正常执行结束,控制流转入 i 为执行。 而有些情况下,当流程执行发生异常后,往往需要取消之前已经进行的活动,比如一个银 行自助提款业务流程中,在客户取款时发生异常没有操作成功,这就需要取消之前进行的 活动,例如把提款的金额重新加到客户的帐上以及取消相应的提款记录等等,这时就需要 用到补偿机制,以还原到流程执行之前的状态。补偿机制也是要在一定的范围内进行的, 需要先用 定义一个范围。 2 5b p e l 中的人工交互 2 5 1b p e l 4 p e o p l e 规范概述 业务流程的完全自动化虽然非常好,但在实际中却是不可能实现的,因为有些活动要 相关人员做出判断,或要借助人员的专业知识( 例如手动处理异常情况或审批请求等) , 这些活动将始终由人进行。在整个业务流程中,和任何其他任务一样,人工任务是一项服 务,只不过是通过人员活动( 而不是程序) 实现的,由相关人员( 而不是计算机) 执行。 因此,在s o a 编程模型中,人员活动可以作为w e b 服务实现。该服务被调用时,将 通知承担任务的个人进行相关工作,并将输入数据以恰当的形式传递给此人。任务完成后, 将产生相应的结果,服务会返回到其调用方,并将此结果作为输出数据传递给调用方。该 结果实际由相关人员得出,这一事实可能对调用方完全透明。该场景采用异步调用来支持 运行时间长的服务,远程过程调用( r e m o t ep r o c e d u r ec a l l ,r p c ) 样式的同步调用并不适合 处理人工任务( 或任何其他运行时间长的服务) 。将人工任务作为w e b 服务呈现还具有另 一个优势,就是可以将人工实现替换为自动化步骤或自动与人工步骤的组合,而不必对业 务流程剩下的部分进行重新编码。 业务流程的执行经常要涉及人员的参与,从而引出了一些新的概念,如人工交互模式 等。为了支持涉及人员广泛参与的业务流程场景,需要使用b p e l 扩展。b p e l 4 p e o p l e 定 义于b p e l 语言之上,因此其功能可在需要时与b p e l 核心功能进行组合,最新规范由两 部分组成l l q : 第一部分是b p e le x t e n s i o nf o rp e o p l e ,它将人工任务定义为一些可以作为b p e l 流程 定义中第一级组件的活动,以及在w s b p e l 上处理人工交互和任务的层级。这个扩展基 9 南京邮电大学硕士研究生学位论文第二章w e b 服务和业务流程执行语言的研究 于w s h u m a nt a s k 规范。 第二部分是w e bs e r v i c e sh u m a nt a s k ,它定义了独立人工任务,包括任务的属性、行 为和运作,允许将人的任务作为服务引入s o a 的接口,这些接口独立于w s b p e l 。规范 中的各种规定还可以用于b p e l 流程之外的其他基于w ,e b 服务的应用之中【1 9 1 。 2 5 2b p e l 中人工交互的定义方式 在b p e l 中添加人工交互模式需要遵照两份规范来进行,即b p e l 4 p e o p l e 和 h u m a n t a s k ,这两个规范要一起使用。w s b p e l 2 0 里定义了” e x t e n s i o n a c t i v i t y ”,支持对 标准b p e l 进行扩展。b p e l 4 p e o p l e 则定义了一种特殊的e x t e n s i o n a c t i v i t y ,叫做 p e o p l e a e t i v i t y ,如下所示: $ v o t e $ e l e c t i o n r e s u l t v o t e s i 这个 先执行了一个p e o p l e a c t i v i t y ,然后做了个赋值。注意p e o p l e a e t i v i t y 是放在e x t e m i o n a c t i v i t y 里面的,目的是让b p e l 2 0 引擎知道它是一个扩充活动。 b p e l 4 p e o p l e 仅仅定义了p e o p l e a c t i v i t y 的接口,比如输输出变量,和 的功能 差不多,当然还定义了一些a p i 函数用于取得一个p e o p l e a c t i v i t y 的参数,比如可以通过 g e t a c t u a l o w n e r o 得知已经执行完毕的某个p e o p l e a c t i v i t y 究竟是由哪个人做的。 1 0 南京邮电大学硕士研究生学位论文第二章w e b 服务和业务流程执行语言的研究 而一个p e o p l e a c t i v i t y 的主要细节,是通过w s h u m a n t a s k 来定义的,见上面例子中 的 部分。换句话说,b p e l 4 p e o p l e 规范的作用仅仅是连接w s b p e l 2 0 和 w s h u m a n t a s k 。下面是该h u m a n t a s k 的具体内容: $ v o t e r s u s e r s u s e r i 这里只定义了该任务的p o t e n t i a l o w n e r ,即哪些人有权限执行该任务;在 里 还可以定义很多细节,比如过多久之后会超时,超时后要执行什么动作等等。 可以说凡是跟“人”有关的东西,都定义在w s h u m a n t a s k 中。每个b u s i n e s sp r o c e s s 中可能需要定义一些角色和人;这些“角色和“人 也是由w s h u m a n t a s k 定义的, 此外还预定义了几种角色,比如a d m i n i s t r a t o r 和t a s ki n i t i a t o r 。w s h u m a n t a s k 专注于 “人一,与b p e l 规范没有一点关系,甚至连名字都不一样在b p e l 中叫做a c t i v i t y 的东西到了这儿就变成了t a s k ;而b p e l 4 p e o p l e 就是b p e l2 0 和h u m a n t a s k 之间的桥 梁。 2 5 3 人工交互的模式和原理 人员与流程实例的交互之间有很多复杂的交互模式。下面列举了四种经典的人工交互 模式,b p e l 4 p e o p l e 规范对以下四种模式都提供了相应的支持方案【l 耵。 ( 1 ) 四眼原则:四眼原则也称之为职责划分原则,是在两个或两个以上人员独立参与 决策的业务情形中常见的一种业务场景,尤其在银行金融、医疗保险等行业领域中; ( 2 ) 任务升级:任务表示了人员所要执行的工作,它也描述了任务启动或完成所期望 的特定时间范围。如果任务没有按照预期执行,例如执行该任务的人员突然生病不能坚持 工作,那么此时就需要任务升级的机制; ( 3 ) 人员任命:有时候具体由谁执行任务并不明确,这种情形往往表现为任务的监管 人员根据任务的性质、人员的技能等,手动指定任务的执行者。也就是说,人员任命需要 多人共同参与决定: 南京邮电大学硕士研究生学位论文第二章w e b 服务和业务流程执行语言的研究 ( 4 ) 执行链:任务执行链是指同一个人员按照一定顺序步骤执行的流程片断。人员在 执行完每一步任务之后,需要返回到任务列表并刷新,才能发现新的任务项。b p e l 4 p e o p l e 规范提供了一种“短路”的机制,允许客户执行诸如“完成并宣称下一个任务等并发的 动作。 人员活动是一种用于集成人员与b p e l 流程交互的基本活动,图2 - 4 列出了可能的几 种不同的人工交互方式。交互方式( 1 ) 和( 2 ) 都是将人工任务内嵌在b p e l 流程中并作为流 程的一部分。方式( 1 ) 中内嵌人工任务可以被定义为人员活动的一部分,这种情形下,人 工任务的使用局限于包含它的人员活动之中。另外,人工任务还可以构建在b p e l 流程或 范围的上一层中,例如方式( 2 ) 。在这种情形下,同样的任务可以被应用于多个人员活动 中。因此,人工任务在方式( 2 ) 中的应用范围较在方式( 1 ) 中的应用更广泛些。 交互方式( 3 ) 描述了人工任务与人员活动在同一个运行环境中,他们之间的调用特定 于具体的实现,而不是依赖于w e b 服务之间的调用。这种情形类似于交互方式( 2 ) ,。区别 在于方式( 3 ) 中人工任务独立于业务流程。 交互方式( 4 ) 中人工任务与人员活动处于不同的运行环境,与方式( 3 ) 的区别在于人工 任务提供了w e b 服务接口供人员活动调用。 b p e l 流程与任务之间通讯。通过这种机制, ,” b p e l 流程 人员活动 l , ”i 内嵌人r i 工任务i i 另外,w s h u m a n t a s k 的协调协议也用来在 流程活动与任务之间的状态可以保持一致。 b p e l 流程 人员活动 i 上 f 独茬会工i b p e l 流程 , 人员活动 ; r w e b 服务h u m a n t k 接口 协议接口 独立人工任务 方式( 1 )方式( 2 )方式( 3 )方式( 4 ) 图2 - 4b p e l 中人工交互的方式 人员活动的语法如下所示,元素 含在b p e l 扩展元素 e x t e n s i o n a c t i v i t y 中。其中,元素 , 和 分别描 述了上述交互方式( 1 ) 、( 2 ) 或( 3 ) 、( 4 ) 。代码中的“? 表示可选项。 b 4 p :p e o p l e a e t i v i t yi l a m c = ”n c n a m e ”i n p u t v a r i a b l e = n c n a m e ”? o u t p u t v a r i a b l e 。n c n a m e ”? i s s k i p a b l e = ”x s d :b o o l e a n ”? s t a n d a r d e l e m e n t s 1 2 妻室堂皇奎兰堡主堡壅竺学垡论文第二章w e b 服务和业务流程执行语言的研究 一一 :二:= = := := := := = : ( i b 4 p :l o c a l t a s k 二, i i i l 、 ? 1 3 南京邮电大学硕上研究生学位论文第三章工作流和p e t r i 网原理 第三章工作流和p e t r i 网原理 3 1p e t r i 网理论及相关定义 3 1 1p e t r i 网的发展与应用 p e t r i 网最早由c a r la d a mp e t a l 博士于1 9 6 2 年在他的论文中提出,文中首次使用网状 结构模拟通信系统。从7 0 年代末开始,p e t r i 网在世界上尤其是欧洲成为十分活跃的研究 领域,研究方向主要面向消息处理系统。8 0 年代初,由于现代办公自动化的需要,开始了 对p e t r i 网在工作流系统、自动制造系统及其它工程系统的研究。这些系统可以是异步的, 也可能是包括顺序的和并发的操作,并可能涉及冲突、互斥及非确定性1 1 0 1 。 p e t r i 网的主要功能是为各种与并发系统有关的特性和问题提供分析方法。利用p a d 网模型可以研究两类特性:依赖于初始状态和独立于初始状态的特性。前者是指状态行为 特性,后者是指状态结构特性。p e 仃i 网模拟以及数学分析方式己广泛应用于网络协议、人 工智能、形式语义学、操作系统、并行编译、数据管理、神经网络、密码协议等计算机

温馨提示

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

评论

0/150

提交评论