(计算机科学与技术专业论文)企业服务总线esb动态路由技术研究.pdf_第1页
(计算机科学与技术专业论文)企业服务总线esb动态路由技术研究.pdf_第2页
(计算机科学与技术专业论文)企业服务总线esb动态路由技术研究.pdf_第3页
(计算机科学与技术专业论文)企业服务总线esb动态路由技术研究.pdf_第4页
(计算机科学与技术专业论文)企业服务总线esb动态路由技术研究.pdf_第5页
已阅读5页,还剩54页未读 继续免费阅读

(计算机科学与技术专业论文)企业服务总线esb动态路由技术研究.pdf.pdf 免费下载

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

文档简介

摘要 本文重点研究企业服务总线( e s b ) 动态路由技术。随着e s b 中集成的服务越来越多 以及业务流程频繁的发生变化,手动编写业务流程服务执行序列变成一项极其繁杂的任 务。企业服务总线e s b 作为一个企业内部总的服务代理,迫切要求其具有自动组合服 务的能力。即当用户提出一个请求时,e s b 能根据服务库中注册的服务自动的组合出一 个服务序列并执行之,以满足用户的需要。 本文利用着色p e t r i 网( c p n ) 的理论来解决e s b 服务的自动组合问题。对所有的服 务进行精确区分以后,按照各个服务之间的接口匹配关系利用c p n 着色网建模工具c p n t o o l s 建立c p n 模型。在模型中,库所对应服务的参数,变迁对应一个服务。每个库所 对应一种信息,不同于一般的物质资源,信息资源产生以后便一直存在。因此只要在目 标库所中产生t o k e n ,便可以得到用户期望的输出。模型建立以后在可以使用状态空间 分析法和监视器分析法求解复合服务。这两种方法在目前的c p nt o o l s 中都有很好的支 持。 状态空间分析法先求出c p n 模型的状态空间,在状态空间中从初始结点到目标结 点之间寻找到一天路径,该路径是由一系列变迁组成,该路径所表示的服务序列便是最 终的复合服务。 监视器分析法是对c p n 模型仿真,在仿真过程中利用断点监视器和文件写入监视 器记录下从初始状态到目标状态所发生的所有变迁。这些变迁所代表的服务序列便是最 终的复合服务。 本文基于c p n 的理论,提出了e s b 在业务流程层上的服务动态组合方法,使e s b 能够很好的应对业务流程的频繁变化。 关键词:企业服务总线e s b ,动态路由,c p n ,状态空间,监视器 d y n a m i cr o u t i n go fe n t e r p r i s es e r v i c eb u s r e nc h e n g c h a n gf c o m p u t e rs c i e n c e & t e c h n o l o g y ) d i r e c t e db yp r o f e s s o rz h ul i a n z h a n g a b s t r a c t t h i sp a p e rf o c u s e so nd y n a m i cr o u t i n go fe n t e r p r i s es e r v i c eb u s w i t hm o r ea n dm o r e s e r v i c e s b e i n gi n t e g r a t e d i n t oe s ba n db u s i n e s s p r o c e s s i s c h a n g i n go f t e n , m a n u a l p r e p a r a t i o no fb 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 ei sb e c o m i n ga ne x t r e m e l yc o m p l e x t a s k e s bi sas e r v i c ea g e n tf o ra l lt h es e r v i c e si nae n t e r p r i s e s oi ti su r g e n td e m a n df o re s b b e i n ga b l et oc o m p o s es e r v i c e sa u t o w h e nau s e rg i v e sar e q u e s t e r sc a nc o m p o s es e r v i c e s a u t ot og e tas e r v i c es e q u e n c ea n de x e c u t et h es e r v i c es e q u e n c et of u l f i l lu s e r sn e e d i nt h i sp a p e r , c p nt h e o r yi su s e dt os o l v ee s bs e r v i c e sa u t o m a t i cc o m p o s i t i o n f i r s tw e c r e a t ec p nm o d e lb yi n t e r f a c e sm a t c hf o ra l lt h es e r v i c e si n t e g r a t e di nt h ee s b ap l a c e r e p r e s e n t sa k i n do fm e s s a g ea n dat r a n s i t i o nr e p r e s e n t sas e r v i c ea c t i o n m e s s a g er e s o u r c ei s d i f f e r e n tf r o mo t h e rm a t e r i a lr e s o u r c e w h e nm e s s a g er e s o u r c ei sc r e a t e d ,i tw i l ln o td i s a p p e a r o n c et h et a r g e tm e s s a g ei sg o t ,u s e r sn e e di sf u l f i l l e d t h e r ea r et w om e t h o d sf o rs e r v i c ea u t o c o m p o s i t i o n o n ei sb yc p ns t a t es p a c e w h e nt h es e r v i c e s c p nm o d e li sc r e a t e d ,w ec a ng e tt h e s t a t es p a c eo ft h em o d e l w ec a nf i g u r eo u tt h ep a t hb e t w e e nt h ei n i t i a ln o d ea n dt a r g e tn o d e t h es e r v i c e ss e q u e n c er e p r e s e n t e db yt h ep a t hi st h er e s u l t o t h e ri sb yc p nm o n i t o r s d u r i n gt h es i m u l a t i o no fc p nm o d e l ,w ec a ng e ta l lt h e o c c u r r e dt r a n s i t i o n sf r o mi n i t i a ls t a t et ot a r g e ts t a t eb yb r e a k p o i n tm o n i t o ra n dw r i t ei nf i l e m o n i t o r t h es e r v i c e ss e q u e n c er e p r e s e n t e db yt h et r a n s i t i o ns e q u e n c ei st h er e s u l t t h i sp a p e rp r o p o s e se s bs e r v i c e sd y n a m i cc o m p o s i t i o nt e c h n o l o g ya tt h el e v e lo f b u s i n e s sp r o c e s sb yc p n t h e o r y t h i sm e t h o dm a k e se s be a s i l yd e a lw i t l lf r e q u e n tc h a n g eo f b u s i n e s sp r o c e s s k e yw o r d s :e s b ,d y n a m i cr o u t i n g ,c p n ,s t a t es p a c e ,m o n i t o r 关于学位论文的独创性声明 本人郑重声明:所呈交的论文是本人在指导教师指导下独立进行研究工作所取得的 成果,论文中有关资料和数据是实事求是的。尽我所知,除文中已经加以标注和致谢外, 本论文不包含其他人已经发表或撰写的研究成果,也不包含本人或他人为获得中国石油 大学( 华东) 或其它教育机构的学位或学历证书而使用过的材料。与我一同工作的同志 对研究所做的任何贡献均已在论文中做出了明确的说明。 若有不实之处,本人愿意承担相关法律责任。 学位论文作者签名:日期:2o j o 年 月麴日 学位论文使用授权书 本人完全同意中国石油大学( 华东) 有权使用本学位论文( 包括但不限于其印刷版 和电子版) ,使用方式包括但不限于:保留学位论文,按规定向国家有关部门( 机构) 送交学位论文,以学术交流为目的赠送和交换学位论文,允许学位论文被查阅、借阅和 复印,将学位论文的全部或部分内容编入有关数据库进行检索,采用影印、缩印或其他 复制手段保存学位论文。 保密学位论文在解密后的使用授权同上。 学位论文作者签 指导教师签名: 日期:) d i o 年 日期:肋f 汐年 月;d 日 y 月乡d 日 中国石油大学( 华东) 硕士学位论文 1 1 课题目的及意义 第一章绪论 e s b 作为一个服务集成容器,在企业信息系统的集成中发挥的作用越来越重要。随 着计算机技术的不断发展,企业中的信息系统越来越多,业务流程也越来越复杂,e s b 也突显出不够灵活、需要大量的人工干预等缺点。如果e s b 能够具有一些智能,即业 务人员只要把服务组合的需求提交给e s b ,然后由e s b 自动完成服务集成,则可大大 减轻业务人员的工作量。这就需要e s b 具有动态路由的能力。 现在的e s b 规范及产品只支持静态路由。即需要用户明确的指明所访问的服务序 列,e s b 只是起到了一个服务中介的作用。随着e s b 中集成的服务越来越多,e s b 静 态路由的缺陷更加突出。一旦业务流程发生改变,用户需要手动编写新的服务执行序列, 同时用户还需要记住每个服务的访问接口,这给用户带来了极大的不便。如果e s b 具 有动态路由的功能,即服务消费者只给出初始条件和期望的结果,然后把请求提交给 e s b 后,e s b 能够自动组合e s b 中集成的服务形成一个新的服务序列来完成用户的请 求,则可以大大减轻用户的负担。本课题就是在这种背景下提出的。 e s b 的动态路由可以在业务流程层和服务层这两个层面上来实现。业务流程层的动 态路由指的是业务流程的重组。由于业务流程频繁的变化以及e s b 中集成的服务越来 越多等因素,手动组合业务流程变成一个极其繁杂的工作,因此需要e s b 能够具有动 态服务组合的能力,即能够根据用户的需要动态编制服务的执行序列,得到一个服务序 列。服务层的动态路由是指服务的动态绑定。在e s b 中,所有的服务都是基于标准接 口的,一个服务接口可能对应若干个服务实现。在服务路由过程中,如何能够根据系统 实际运行情况和用户的具体偏好,例如最大响应时间、费用最低等条件动态的从若干个 服务实现中找到一个最优的服务,并调用该服务提供者,这便是服务层的动态路由。本 论文把重点是在业务流程层上来实现e s b 的动态路由。 本文借助c p n 的相关理论,重点研究企业服务总线e s b 在业务层的服务动态组合 能力。服务消费者只需给出初始条件和期望的结果,把请求提交给e s b 后,由e s b 自 动组合服务,最后得出正确结果。用户不必手动定义服务执行序列。同时使用c p n 建 模工具c p nt o o l s 建立服务模型,进行复合服务的求解,方法简单易行。c p nt o o l s 中 的状态空间求解工具和监视器都可以直接用来求解服务的合成。通过c p n 的相关理论 第一章绪论 使e s b 具有服务动态组合的能力,实现了服务之间的松散耦合。各个不同的服务只需 要按照e s b 的要求集成到e s b 环境中,他们彼此之间的交互和消息传递都是利用e s b 自动进行的。 1 2 国内外研究现状 关于e s b 动态路由可以在两个方面展开,一个是e s b 中服务的自动组合,即用户 提出请求,e s b 自动组合服务得到一个服务执行序列来满足用户需要。一个是服务的动 态绑定,即从实现同一个服务接口的若干个服务实现中找到一个最优的。 在服务动态绑定方面,c h a n gsh l l j 提出d c h 模型,即服务动态组合处理器,实现 服务的动态绑定。该模型中把e s b 的服务接口分为抽象服务接口和具体实现服务接口。 一个抽象服务接口对应一个或者多个具体实现服务接口。在业务流程执行语言b p e l 中 使用抽象服务接口定义服务序列。在b p e l 流程执行过程中,通过核心部件d c h ,对 每个抽象服务接口描述的服务,根据用户的具体需求和运行环境从实现该抽象服务接口 的具体实现服务接口中挑选出最优的一个。 白晓颖等 2 1 提出了d r e s r 模型。该模型中提出抽象路由路径和具体路由路径的概 念。业务流程采用抽象路由路径描述。当执行一个业务流程的时候,其中的每个抽象路 由路径都要经过路由管理器进行分析,每个抽象路由路径都有若干个候选具体路由路 径。d r e s r 建立了一种评价机制,可以根据用户的具体偏好以及历史数据等对候选具 体路由路径进行评价分析,从而挑选出最合适的一个。 纵观e s b 在服务层的动态绑定方面的研究成果,基本采用的方式都是把服务接口 分为抽象的和具体的两种,在业务流程中采用抽象的服务接口。在运行一个业务流程时 候,对跟同一个抽象服务接口对应的多个具体服务接口进行评价分析,然后得出最合适 的一个服务。 e s b 服务的动态绑定只是解决了如何从同一个服务接口的多个实现中找到最优的 问题,其中的业务流程还是需要用户手动定义。但是随着e s b 中集成的服务越来越多, 以及业务流程频繁的发生变化,人工手动编写业务流程服务执行序列变成一个极其繁杂 的任务。在这种背景下研究如何使e s b 具有服务自动组合的能力变得十分有意义。这 也是本文的研究重点。目前服务的自动组合方法从总体上可以分为两类:接口匹配和行 为匹配。 接口匹配方法是指把每个服务都看成是一个黑盒子,不关心服务的操作,只关注服 2 中国石油大学( 华东) 硕士学位论文 务对外暴露的接口。一般一个用户的请求需要给出输入和期望的输出。在合成过程中把 用户的输入初始状态,用户期望的输出作为目标状态。各个服务之间按照接口是否匹配 进行合成,最终得出用户需要的输出,从而实现服务的自动合成。目前在服务接口匹配 方面的研究成果主要采用图搜索或者智能规划的方式进行的。高曼【3 】提出了基于e p n 的 服务自动组合模型,e p n 中库所t o k e n 取值的真假来对应信息的有无,根据输入输出 库所的匹配进行动态服务组合,但是对p e t r i 网的变迁规则做出了修改,模型无法利用 现有的建模工具求解。门鹏【4 j 提出了提高基于p e t r i 网的w e b 服务合成过程中服务中并 发性的算法,提高合成服务中各个服务的并发度,但是服务动态组合的过程需要回溯。 李景霞【5 1 ,张昭理【6 】对w e b 服务合成的几种结构进行了c p n 建模,但是服务合成过程 都没有利用c p n 自身的理论进行。钱柱中【刀提出了m o a p 模型,该模型描述了面向消息 的基于行为的p e t r i 网模型,该模型中提出了元消息的概念,很好的支持了服务的自动 合成。黄超白【8 】利用p e t r i 网解决服务之间的会话协议,并对服务模型进行评价分析。 付强 9 1 利用c p n 对业务流程执行语言b p e l 中各个元素建模,并利用p e t r i 网的理论对 b p e l 流程进行验证。b e r a r d id 【l o l ,h a m a d ir 1 1 1 】也是利用p e t r i 网来描述服务。这些文献 基本上是根据服务接口之间的数据匹配性和数据流建立p e t r i 网模型,然后根据p e t r i 网 的相关理论对w e b 服务合成以后的复合服务进行相关的分析和评价。但是这些算法中 或者只是对单个w e b 服务建立p e t r i 网模型,或者是对已经组合好的复合服务进行c p n 建模,其关键的复合服务的合成求解过程都是采用图搜索的方式,没有直接在前期建立 好的c p n 模型中求解。为了降低搜索空间,邓水光u2 j 提出了基于回溯树的服务组合方 法,该方法对用户的每个期望的输出都建立一个完备回溯树。在回溯树中搜索每个输出 的有效生成路径,最后合成最终的复合服务。该方法降低了搜索空间,提高了服务组合 的效率,但是为每个输出生成完备回溯树是一个很复杂的过程。在智能规划方面, m c i l r a i t hs 1 3 】利用g o l o g 语言进行复合服务的求解。通过把服务映射为一个高度抽象的过 程,用户的输入和输出作为初始情景和目标情景,继而通过情景演算求解复合服务序列, 实现服务动态组合。 有些服务的执行需要通过一系列的功能调用后才能完成,对于这类服务的合成采用 行为匹配较为合适。行为匹配法指的是首先充分了解每一个服务的内部行为动态后,再 进行相关的服务合成。b e r a r d id 【1 4 】【1 5 】【1 6 1 提出了r o m a n 模型,该模型中把每个服务表述 一个有限状态自动机。在服务合成的过程中,每执行一个行为到达一个状态,然后根据 用户的期望输出选择下一个行为。当用户期望的目标状态出现的时候,服务的合成结束。 3 第一章绪论 目前基于行为匹配的研究成果一般较为复杂,而且这些方法缺乏有效的数据交换,有待 进一步的研究。 邹金安1 7 1 ,夏元友f 1 8 】,b e n b e m o us a l i m 【1 9 1 ,s e o gc h a r to h 2 0 1 等人基本都是采用图的 理论对服务进行合成的。这类方法基本是根据服务之间的接口关系建立一个服务关系 图,然后利用图论或者公理证明的方式进行服务合成。乔彬 2 1 】提出了利用p e t r i 网可达 图验证服务合成的有效性,但是没有说明如何进行服务合成。 本文采用的是接口匹配的方法进行服务组合。根据服务之间的接口匹配性,建立服 务集合之间的c p n 模型,采用状态空间分析法和监视器法进行复合服务的求解。而且 这两种方法,在c p nt o o l s 中都有相应的工具支持,求解较为简单。状态空间求解法可 以在求解之前计算出复合服务是否能够通过组合单个服务来得到。监视器分析法可以很 好的避免状态空间爆炸的问题。 1 3 论文采用的技术路线 e s b 的动态路由可以在业务流程层和服务层这两个层面上来实现。业务流程层指的 是业务流程的重组。由于业务流程频繁的变化以及e s b 中集成的服务越来越多等因素, 手动组合业务流程变成一个极其繁杂的工作,因此需要e s b 能够具有动态服务组合的 能力,即能够根据用户的需要动态定义服务的执行序列,服务执行顺序发生变化。服务 层的动态路由是指服务的动态绑定。在e s b 中,所有的服务都是基于标准接口的,一 个服务接口可能有若干个实现。在服务路由过程中,如何能够根据系统实际运行情况和 用户的具体偏好,例如最大响应时间、费用最低等条件动态的从若干个服务实现中找到 一个最优的服务,并调用该服务提供者,这便是服务层的动态路由。本论文把重点是在 业务流程层上来实现e s b 的动态路由。 本课题的研究目标在于利用c p n 的相关理论进行e s b 中服务的自动组合。实现方 法有两种:状态空间分析法和监视器分析法。首先利用c p nt o o l s 这个工具建立e s b 服务的c p n 模型,各个服务之间是通过接口匹配进行关联的。 状态空间分析法是指求出改模型的状态空间,用户请求的初始条件对应状态空间中 的一个节点,用户期望的结果对应状态空间的另外一个节点,最后在这两个节点之间求 出一条路径,这条路径所表示的复合服务便是满足用户请求的复合服务序列。利用这个 模型自动求出满足用户需求的复合w e b 服务序列,从而使e s b 具有动态路由的能力。 监视器分析法是指通过对e s b 服务c p n 模型的仿真,利用断点监视器和文件写入 4 中国石油大学( 华东) 硕士学位论文 监视器记录下从初始状态到目标状态下所发生的变迁序列。该变迁序列对应的服务序列 就是满足用户需求的复合服务。 为了达到这一目标,论文采用下述技术路线:首先对服务进行抽象,对服务的各个 参数进行精确的区分,按照服务的接口对服务进行分类,只要服务的接口一样,服务便 归于一类。然后在c p nt o o l s 中建立服务集合的c p n 模型。模型建立好以后,可以使 用状态空间分析法和监视器分析法来求解复合服务。同时学习当前e s b 的当前主流规 范j b i 和s c a ,借鉴这两个规范中消息路由的原理。整个过程可以用图1 1 表示。 琴一 1 4 论文的主要创新点 状态空间 分析法求 解 监视器分 析法求解 图1 - 1 论文工作流程图 f i g l - 1f l o wd i a g r a mo f t h e s i sw o r k 得出复合服 务序列 本课题的主要研究工作和创新点包括以下几点: 1 ) 建立了服务的c p n 模型,利用c p n 的理论使企业服务总线e s b 具有自动服务 组合的能力。目前e s b 产品只支持静态业务流程的处理。需要用户手动编写业务流程 服务执行序列。本文通过c p n 的状态空间以及监视器自动求解出满足用户请求的复合 服务序列,从而使e s b 具有服务自动组合的能力。 2 ) 充分利用了c p nt o o l s 自动求解。目前基于c p n 的复合合成算法大多是对已经 组合好的复合服务进行c p n 建模,然后进行相关的评价分析,其最关键的复合服务的求 解过程大多都是采用图搜索的方式,算法较为负责,且不容易实现,无法直接在前期建 立好的c p n 模型中直接求解。本文复合服务的合成过程直接利用c p nt o o l s 进行求解, 求解简单方便。 3 ) 状态空间求解法求解过程较为简单。而且在求解之前事先就能确定能不能通过 5 第一章绪论 组合e s b 中集成的服务来达到用户的要求。 4 ) 监视器求解法可以适用于e s b 中服务数量相对较大的情形。监视器求解法通过 不断的模型仿真,记录下从初始状态到目标状态所有发生的变迁。 1 5 论文的组织结构 本文的组织结构如下: 第一章主要介绍了研究e s b 动态路由的目的和意义。分析了当前国内外对e s b 动 态路由技术的研究现状。指出了e s b 的动态路由可以在两个层次上实现。指出了本文 的关键创新点。 第二章从整体上介绍了e s b 的功能。消息转化和消息路由是e s b 最重要的两个功 能。继而介绍了当前两个e s b 主流规范,j b i 规范和s c a 规范。分别说明了这两种规 范的路由技术。当前e s b 规范都不能支持服务的自动组合。 第三章介绍了p e t r i 网以及c p n 相关理论。阐述了c p n 的四种分析方法。简单说 明了c p n 建模工具c p n t o o l s 。重点介绍了c p nt o o l s 中的状态空间和监视器。这为后 文利用c p n 求解服务自动合成奠定了基础。 第四章是本文的重点,详细介绍了如何利用c p n 的理论进行e s b 服务的自动组合。 我们假设e s b 中所有的服务的参数都是基于内容的。首先根据服务之间的接口匹配性 建立服务的c p n 模型。接下来可以使用状态空间和监视器两种方法进行服务的自动组 合。状态空间法是首先求出服务模型的状态空间,用户的输入和期望输出分别对应状态 空间中的两个结点。在这两个结点之间求出一条路径,该路径所代表的服务序列就是最 后的复合服务。监视器求解法是对模型进行仿真,在仿真过程中利用断点监视器和文件 写入监视器记录下从初始状态到目标状态所发生的所有变迁,这些变迁所表示的服务序 列就是所要求的复合服务。 第五章通过一个案例详细介绍了如何利用c p n 进行e s b 服务的自动合成。 第六章对整个论文做了总结,得出文章的结论,并指出了本文的不足点,指明了下 一步的研究方向。 6 中国石油大学( 华东) 硕士学位论文 2 1s o a 简介 第二章e s b 概述 近年来面向服务的构架( s o a ) 瞄】成为一种新的软件方法。特别是随着w e bs e r v i c e 的兴起,s o a 得到了长足的发展,并逐渐成为当今软件行业的主流。s o a 是一种软件 方法论四】,一种系统架构思想,s o a 不是具体的软件产品。在s o a 中所有的功能单元 都称为服务。这些服务对外部暴露统一标准的接口,给服务消费者指明调用约定。所有 的接口都是平台独立的,与具体通信协议、软硬件环境等都无关。这样各个服务之间便 使用一种统一的方式进行交互,实现了服务之间的松散耦合。 软件方法从面向对象到面向组件,再到面向服务,体现了编程粒度的越来越大。 2 2e s b 简介 面向服务构架s o a 是一种软件方法,而企业服务总线( e s b ) 则是实现s o a 思想的 一种软件产品。e s b 是s o a 的最重要的基础构件。目前e s b 的主要功能是实现异构平 台下不同应用的集成。e s b 中最住要的两个特点是实现了各个服务的访问位置和传输协 议的透明化。e s b 相当于一个服务的中介,服务消费者只需向e s b 发送一个访问服务 提供者的请求,其余的工作便是由e s b 来完成。这包括服务服务消费者和服务提供者 之间消协协议的转化,调用服务提供者等。服务提供者在完成服务后,也是通过e s b 来向服务消费者发送相响应结果的。在e s b 中所有的服务对外暴漏的都是统一标准的 接口,且这些接口都是平台独立的,这样各个服务之间便使用一种统一的方式进行交互。 esb 使用消息机制和标准统一的接口来完成大粒度的应用服务之间的集成。随着企业 软件系统的发展以及工作流程的频繁变化,迫切需要e s b 具有自动调整业务流程的功 能,但是当前主流的e s b 规范和产品,都不具备这个功能。这也是本文的研究中心。 2 2 1e s b 主要功能 e s b 的主要功甜2 4 1 有消息转换、异步通信、服务动态发现、消息路由等。e s b 需 要集成基于不同通信协议的应用,这样的应用相互之间无法直接相互交互。e s b 需要把 一种通信协议下的消息转化为另一种通信协议下的消息。同时e s b 需要支持异步消息 以满足服务之间的异步调用。服务动态发现是指e s b 能够动态的发现更新的或者新增 加服务的能力。服务消费者和服务提供者通过e s b 进行关联,服务消费者只是把要请 7 第二章e s b 概述 求的服务和必要的信息提交给e s b ,由e s b 来完成服务提供者的定位和访问,因此e s b 必须具有路由的能力。其中,e s b 最重要的两个功能是消息转换和消息路由。 e s b 的路由功能可以在两个层次上实现,一个是业务层,一个是服务层。目前e s b 规范不能支持动态路由,路由过程需要用户手动干预。随着企业业务流程频繁的变化, 手动组织业务流程变成一个繁杂的任务,因此迫切需要e s b 具有动态组织业务流程的 能力。同时对于同一个服务可能会有若干个实现,如何从这些实现中找到一个最优的实 现也是通过e s b 来完成的,这需要e s b 具有动态绑定的功能。本文研究的重点放在一 个层次上,即研究如何使e s b 具有服务动态组合的能力。 2 2 2e s b 路由技术 企业服务总线e s b 消息路由主要包括业务层的路由和服务层的路由两部分瞄1 。 一个业务流程需要多个服务相互配合才能完成,各个服务之间的执行顺序便构成了 e s b 的路由线路。各个服务之间的执行关系可能是顺序、分支、聚合等。目前e s b 的 业务流程主要是基于业务流程执行语言b p e l 3 6 】。一般的e s b 产品都内置了b p e l 引擎, 通过执行事先设定好的b p e l 语言来完成一个业务流程。但是由于业务流程频繁的变化 以及e s b 中集成的服务越来越多等因素,手动组合业务流程变成一个极其繁杂的工作, 因此需要e s b 能够具有动态服务组合的能力,即e s b 能够根据用户的需要动态定义服 务的执行序列,自动生成一个b p e l 流程并执行。 e s b 的路由规则是指服务的动态绑定。在e s b 中,所有的服务都是基于标准接口 的,一个服务接口可能有若干个实现。在服务路由过程中,如何能够根据系统实际运行 情况和用户的偏好,例如最大响应时间、费用最低等条件动态的从若干个服务实现中找 到一个最优的服务,从而动态的调用该服务结点,这便是服务层的动态路由。 本论文把重点是在业务流程层上来实现e s b 的动态路由。 8 中国石油大学( 华东) 硕士学位论文 2 3j b i 规范中的路由技术 2 3 1j b i 体系结构 j b ie n v i r o n m e m 图2 - 1j b i 运行环境图】 f i 9 2 1 f f b ir u l ie n v i r o n m e n t t 2 7 1 j b i 规范( j a v ab u s i n e s si n t e g r a t i o n ) 是由s u n 公司提出的e s b 实现规范。j b i 运行环境 是由一系列运行在单个j 越,a 虚拟机中的组件组成的,也称为j b i 容器【2 6 1 。容器外面是j b i 所要集成的各种服务。这些外部服务要与j b i 环境通信,需要通过绑定组件( b i n d i n g c o m p o n e n t ,b c ) 进行协议转换。j b i p 勺部的服务引擎组件( s e r v i c ee n g i n e ,s e ) 完成复杂 业务逻辑以及复杂消息路由等。 j b i 内部结构图如图2 1 所示,下面分别给予介绍。 1 ) 松散耦合体系架构 j b i 是一个松散耦合的体系结构,各种组件以松散耦合的方式组合在一起。j b i 中各 种组件的交互都是通过范化消息路由器( n o r m a l i z e dm e s s a g er o u t e r ,n m r ) 进行的。n m r 完成消息的路由和寻址。服务消费者的服务请求被提交给j b i ,j b i 把请求消息转化为j b i 环境内部的规范化消息n m ( n o r m a lm e s s a g e ) ,然后把消息提交给消息路由器,再由消息 路由器交付给服务提供者,在把消息提交给服务提供者之前,j b i 先要把消息转化为基 于服务提供者通信协议的消息格式,从而实现了服务消费者与提供者之间的通信协议的 解耦。一个外部服务单元要集成至i j b i 环境中,只要按照j b i 规定封装成为一个组件并对 9 第二章e s b 概述 外提供标准接口即可,这实现了组件的插拔式组合。 2 ) 服务引擎和绑定组件 服务引擎:主要用来完成业务逻辑和复杂路由的组件。也是需要用户重点开发的组 件。其中业务流程执行语言b p e l 兰j 擎是一个比较重要的服务引擎,用来执行b p e l 流程, 完成一个业务流程。所有的服务引擎都是可插拔的。 绑定组件:j b i 要集成各种不同的应用,这些应用使用的通信协议各式各样,因此 组件之间不能直接交互。因此j b i 必须具有消息转化的能力,即把基于一种通信协议的 消息格式转化为基于另外一种通信协议的消息格式。j b i 中完成这个功能是绑定组件b c 。 外部服务要集成到j b i 环境当中,首先要经过j b i 的b c 进行消息转换。在j b i 内部使用的 是标准的规范化消息n m 。因此b c 的作用就是在特定通信协议的消息和n m 之间能进行 双向的转换。同时j b i 必须支持各种不同的通信协议,而每种通信协议都对应一个b c , 因此j b i 中有各种各样的b c 。 3 ) 标准消息模型 e s b 集成的服务时给外部的服务消费者使用的,如果e s b 中集成的各种服务的调用 方式各种各样,贝j j e s b 变得毫无意义。因此e s b 必须解决的一个问题就是保证集成的各 个服务在使用方式的统一性,即各个服务对外暴露的接口是一致的。在j b i 中,所有服 务的接口都是采用w s d l 来描述的。服务通过w s d l 对外部服务提供者描述调用约定。 这样便统一了服务之间的访问方式。不同的服务可能采用的技术不同,实现的方式不同, 但是一旦集成至u e s b 中就需要用w s d l 来统一的描述。同时一个w s d l 接口可能对应个 若干个服务实现,如何从这些服务实现中找到一个最合适的服务就是e s b 中动态路由的 动态绑定的研究课题。 4 ) 规范化消息路由器n m r 规范化消息路由器是j b i 中最重要的组件,用来完成消息在各个组件的路由。n m r 维护一个本地的服务库。服务的提供者要集成至i j j b i 中必须首先向服务库注册。不同的 组件可能使用不用的通信协议,因此组件在通过j b i g 艮其他组件交互的时候,j b i 首先把 组件的消息转化成为j b i 内部标准的消息,i i 0 n m 。n r m 正是对n m 进行路由的。在n m 中包含消息目的地。n m r 通过n m 中的消息目的地查找本地服务库,从而找到具体的服 务提供者,然后把n m 发送相应组件。外部消息和n m 之间的转化通过绑定组件b c 来完 成。 5 ) j b i 的管理 1 0 中国石油大学( 华东) 硕士学位论文 主要是j b i 各个组件如何在j b i 容器中安装部署,以及各个组件的生命周期和多个组 件之间的组织方式。 2 3 1j b i 路由 j b i 的路由【2 7 】基于两点,一个是规范化消息( n o m 试i z e dm e s s a g e ,n m ) ,一个是消 息路由器。在j b i 内部使用的标准的规范化消息n m ,n m 经过n m r 的路由到达目的地。 基于不同协议的服务在集成到j b i 后,都要通过j b i 的绑定组件b c 与j b i 连接。b c 的作用 就是把基于不同通信协议的服务所使用的消息转化为规范化消息n m 。n m 中包含路由消 息所需要的元数据和消息负载,其中元数据包含消息目的地等路由信息,消息负载即是 要发送的数据。 图2 - 2e s b 外部请求路由酬2 7 】 f i 9 2 - 2 e x t e r n a lr e q u e s tr o u t i n gp r o c e s s q 如图2 2 所示,一个外部基于特定协议的服务消费者发送一个服务请求到绑定组件 b c ,绑定组件该服务请求消息转化为j b i 内部正规化消息n m 并设定要访问的目标服务。 接下来绑定组件通过传输通道d c 将正规化消息发送给消息路由器n m r ,n m r 根据目标 服务,将消息转发到相应的服务提供者。 上述过程中,是由j b i 夕 - 部的服务消费者请求内部的服务提供者。同时j b i 内部的组 件也可以访问外部的服务提供者,过程如图2 3 所示。 第二章e s b 概述 图2 - 3e s b 内部请求路由图【2 7 1 f i 9 2 - 3i n s i d er e q u e s tr o u t i n gp r o c e s s l 2 7 】 如图2 3 所示,在j b i 内部一个消费者( s e b c ) 构建一个正规化消息n m ,该消息的目 的地址被设定为一个服务端点,该服务端点连接n j b i 夕b 部具体的服务提供者。绑定组 件接收到n m 后将正规化消息转换为基于特定通信协议的消息格式,然后将其转发给j b i 外部的服务提供者。 2 4s c a 规范中的路由技术 2 4 1s c a 简介 s c a 称为面向服务的构架【2 8 1 ,是i b m 等公司提出的s o a 解决方案。s c a 基于这样的 理念:所有的业务功能都是服务,这些服务即可以单独为用户服务,也可以把若干个服 务组合起来形成一个新的服务来满足用户需求。在s c a 组合的服务中即包含创建的新服 务,也包含原有系统的业务功能,还包含通过s c a 组合好的业务逻辑。s c a 就是研究如 何使用一种简单快速统一的方式把各个服务组合起来的个方案。 在s c a 中,所有的功能单元都被称为组件。在s c a 第一个版本中,按照组件粒度 规模的大小,依次是c o m p o n e n t 、c o m p o s i t e 和d o m a i n 。c o m p o n e n t 是最小的功能单元, 一般情况下只完成一个功能,若干个c o m p o n e n t 组合起来形成更复杂的功能逻辑模块, 称为c o m p o s i t e 。要完成一个负责业务流程,可能需要几个c o m p o s i t e 相互配合,把几 个c o m p o s i t e 联合起来形成一个业务流程,称为d o m a i n 。s c a 中辅助性元素有s e r v i c e 、 r e f e r e n c e 、p r o p e r t y 、w i r e 等。这些元素是s c a 组件的重要组成部分,正是通过这些 元素,各个组件之间才能进行相互交互,从而形成功能更加强大的模块。 1 2 中国石油大学( 华东) 硕士学位论文 其中s e r v i c e 描述了组件本身对外提供的服务,r e f e r e n c e 描述了组件对其他组件的引用。 三种不同的组件,分别对应系统实现的三个不同层面【2 9 j :c o m p o n e n t 组件是基本的 功能单元,c o m p o s i t e 组件实现一个业务单元,d o m a i n 实现个业务流程。下面分别介 绍。 1 ) c o m p o n e n t c o m p o n e n t 组件是面向服务构架规范中最基本的组件,往往是一个独立的功能单元。 如图2 - 4 。 i m p l e m e n t a t i o n j a v a b p e l 图2 - 4s c a 组件图【2 8 1 f i 9 2 - 4s c ac o m p o n e n t l 2 8 】 c o m p o n e n t 组件通过s e r v i c e 对外部暴露自己的接口,指明本组件的访问方式,通 过r e f e r e n c e 引用别的功能单元来实现自己的。组件可能还包含一些具体的参数,这些 参数可以通过p r o p e r t y 来设置。同时用i m p l e m e n t a t i o n 指明组件式用何种方式来实现的。 2 ) c o m p o s i t e c o m p o s i t e 构件组是由若干个c o m p o n e n t 组件组合而成的构架级别的大型组件。 c o m p o s i t e 主要描述了各个c o m p o n e n t 是如何相互关联而完成某个特定功能的,也就是 指明了c o m p o s i t e 中包含的各个c o m p o n e n t 之间的路由关系。 图2 5 描述了两个c o m p o n e n t 如何来构成一个c o m p o s i t e 。组件x 通过连线组件y 提供的服务而构成一个复合服务。整个复合服务对外提供的服务通过提升组件x 的服 务得到的,整个复合服务引用的外部服务是通过提升组件y 所需要引用的服务得到的。 1 3 第二章e s b 概述 s c a 的c o m p o s i t e 描述了各个组件之间是如何通过有规律的连接形成更大规模的构 件组的。如图2 5 描述。各个组件之间本身是松散耦合的,但是旦通过服务和引用相 互连接,这些组件之间的路由规则便是定死了,从而形成一个紧密耦合的系统。构件组 相互之间也是这种关系,构件组之间通过服务和引用连接在一起,他们本身各自是松散 耦合的,但是一旦连接就形成一个紧密耦合的系统。 图2 - 5s c a 构件图2 8 】 f i 9 7 5s c ac o m p o s i t e 2 s 3 ) d o m a i n d o m a i n 系统域描述了一个系统的业务流程。由若干个c o m p o s i t e 构成。见图2 - 6 。 1 4 中国石油大学( 华东) 硕士学位论文 s c ad o m a i n 图2 - 6s c a 系统域嘲 f i 9 2 - 6 s c ad o m a i n 2 s 2 4 2s c a 路由 s c a 以组合组件c o m p o n e n t 成为更大组件为目的。s c a 的路由旨在各个组件之间是 如何连接的。每个组件( c o m p o n e n t ) 都有s e r v i c e 接口和r e f e r e n c e 接口。c o m p o n e n t 通过被称为s e r v i c e 的接口对外提供服务,通过被称为r e f e r e n c e 接口引用外部服务。 s c a 的路由规则便是组件如何通过s e r v i c e 接口和r e f e r e n c e 接口跟其他组件进行交互 的。一旦为各个组件指定了组件对外提供的服务以及各个组件所引用的外部组件,那么 组件之间的路由规则便是定死了,同时也由这些组件构成了更大规模的组件。s c a 的 优点就是提

温馨提示

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

最新文档

评论

0/150

提交评论