(计算机科学与技术专业论文)基于soa动态服务路由机制的研究与实现.pdf_第1页
(计算机科学与技术专业论文)基于soa动态服务路由机制的研究与实现.pdf_第2页
(计算机科学与技术专业论文)基于soa动态服务路由机制的研究与实现.pdf_第3页
(计算机科学与技术专业论文)基于soa动态服务路由机制的研究与实现.pdf_第4页
(计算机科学与技术专业论文)基于soa动态服务路由机制的研究与实现.pdf_第5页
已阅读5页,还剩67页未读 继续免费阅读

(计算机科学与技术专业论文)基于soa动态服务路由机制的研究与实现.pdf.pdf 免费下载

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

文档简介

国防科学技术大学研究生院学位论文 摘要 随着s o a ( 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 架构中服务虚拟化策略的实际应用,理论上将动 态服务路由模型分为反应型( r e a c t i v e ) 和预测型( p r e d i c t i v e ) 两类,典型的m u l e 项 目的反应型动态路由模型和i b m 的预测型动态路由模型都存在不足。本文在分 析上述两类动态服务路由模型的基础上,提出了一种改进的动态服务路由模型, 即预测反应型服务路由模型( p r s r 模型) ,p r s r 模型主要由基于内容的“发 布订阅”( p u b l i s h s u b s c r i b e ) 通信模型和d r o o l s 规则引擎两部分组成。本文围 绕构成p r s r 模型两个关键技术展开了以下研究工作: 1 、基于内容的“发布订阅”通信模式中快速匹配算法的研究。基于内容的 “发布订阅 通信模式是一种基于事件的通信范型,与异步r p c 、分布共享内 存、消息队列等异步通信范型相比,能够使通信的参与者在空间、时间和控制流 上完全解耦,因此能够较好地满足许多大型分布式系统松散耦合通信的需求,近 年来受到广泛关注和深入研究。 2 、d r o o l s 规则引擎分析研究。d r o o l s 规则引擎是基于j s r 9 4 标准和r e t e 算 法的开源框架,p e t e 是唯一的效率与执行规则数无关的决策支持算法,其核心思 想是将分离的匹配项根据内容动态构造匹配树,以达到显著降低计算量的效果。 p r s r 模型使用其进行规则匹配以提高性能。 3 、系统实现方面。基于本文的研究成果,通过g e f 框架和e m f 框架实现 p r s r 模型可视化。性能测试表明,p r s r 模型是高效和可靠的,能够很好的满 足s o a 体系结构,适合大规模分布式应用环境。 综上所述,本文针对p r s r 模型亟待解决的几个关键问题提出了有效的解 决方案,并成功应用于南昌公安政务系统。 关键词g8 0 a ,服务虚拟化,服务路由,发布订阅,d r o o l s 规则引擎 第i 页 国防科学技术大学研究生院学位论文 a b s t r a c t w i t hs o a ( 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 ) t e c h n o l o g yi s d e v e l o p i n gr a p i d l y , d i s t r i b u t e da p p l i c a t i o ns e r v i c e sg r a d u a l l yf r o ms i m p l eb i l a t e r a li n t e r a c t i o ne v o l v e d i n t oc o m p l e xm u l t i l a t e r a li n t e r a c t i o na tlu 1 1 t i m e t om e e tt h i sc h a l l e n g e m o d u l e s p r o v i d ei n t e r m e d i a r ys e r v i c e su s i n gv i r t u a l i z a t i o nm e c h a n i s m a sav i r t u a lm o d u l ew i l l i n t e r m e d i a r ys e r v i c ep r o v i d e r s ,s e r v i c er e q u e s t ss e n tt ot h ei n t e r m e d i a r ym o d u l e s ,a n d m o d u l e sc a nb er o u t i n gr e q u e s t st ot h er e a ls e r v i c ep r o v i d e r s s e r v i c ev i r t u a l i z a t i o n m e c h a n i s mf r o mt h ec o n s u m e rs e r v i c e si n t e r f a c e s ,p r o t o c o l sa n ds e r v i c ep r o v i d e r s s e p a r a t e df r o mt h ei n t e r f a c e ,a c h i e v es e r v i c ec o n s u m e r sa n ds e r v i c ep r o v i d e r s i n t e r c o n n e c t i o nb e t w e e n i n t e l l i g e n t d y n a m i cm u t i n gs e r v i c e sm o d e li ss e r v i c ev i r t u a l i z a t i o ns t r a t e g yf o rt h ep r a c t i c a l a p p l i c a t i o ni ns o aa r c h i t e c t u r e t h e o r e t i c a l l yd y n a m i cs e r v i c er o u t i n gm o d e lc a nb e c a t e g o r i z e da st h ep r e d i c t i v em o d e l sa n dt h er e a c t i v em o d e l s n om a t t e ri st h em u l e p r o j e c tr e a c t i v ed y n a m i cs e r v i c er o u t i n gm o d e l ,o rt h ei b mp r e d i c t i v ed y n a m i c s e r v i c er o u t i n gm o d e la l lh a si n s u f f i c i e n c y 1 k sp a p e rp r o p o s e sa ni m p r o v e dd y n a m i c s e r v i c er o u t i n gm o d e lw h i c hn a m e dp r e d i c t i v e - r e a c t i v es e r v i c er o u t i n gm o d e lf p r s r m o d e l ) b a s e do nt h ea n a l y s i so ft h e s et w oc a t e g o r i e so fd y n a m i cs e r v i c er o u t i n g m o d e l p r s rm o d e lm a i n l yc o m p o s e do ft w op a r t s :c o n t e n t so ft h e ”p u b l i s h s u b s c r i b e ”c o m m u n i c a t i o n sm o d e la n dt h ed r o o l sr u l e se n g i n e 1 r e s e a r c ho nf a s t m a t c h i n ga l g o r i t h m o fc o n t e n t - b a s e d p u b l i s h s u b s c r i b e c o n t e n t b a s e dp u b l i s h s u b s c r i b ei sac o m m u n i c a t i o np a r a d i g m b a s e do ne v e n t c o m p a r e dw i t ha s y n c h r o n o u sr p c ,d i s t r i b u t e ds h a r e dm e m o r ya n d m e s s a g eq u e u i n g ,i tp r o v i d e sc o m p l e t ed e c o u p l i n gi ns p a c e ,t i m ea n dc o n t r o lf l o wf o r p a r t i c i p a n t s s oi tc a ns a t i s f yt h er e q u i r e m e n to fl o o s e l yc o u p l e dc o m m u n i c a t i o n i t h a sg o t t e nb r o a da t t e n t i o na n dd e e pr e s e a r c h 2 a n a l y s i so fd r o o l sr u l e se n g i n e d r o o l sr u l e se n g i n ei sb a s e do nt h ej s r 9 4 s t a n d a r dr e t ea l g o r i t h ma n dt h eo p e n - s o u r c ef r a m e w o r k , i 沁t ei st h eo n l yd e c i s i o n s u p p o r ta l g o r i t h m st h a te f f i c i e n c yh a sn or e l a t i o n s h i pw i t hr u l en u m b e r s ,i no r d e rt o a c h i e v eas i g n i f i c a n tr e d u c t i o ni nt h ea m o u n to fc o m p u t a t i o nr e s u l t s d r o o l sp r o j e c t h a sg o t t e nb r o a da t t e n t i o na n dd e e pr e s e a r c ht o o 3 s y s t e mi m p l e m e n t a t i o n a c h i e v ep r s rm o d e lv i s u a l i z a t i o nt h r o u g hg e f f r a m e w o r ka n de m ff r a m e w o r k p e r f o r m a n c et e s t ss h o wt h a tp r s rm o d e li s e 伍c i e n ta n dr e l i a b l e ,p r s rm o d e lc a nm e e ts o aa r c h i t e c t u r e 。s u i t a b l ef o r l a r g e s c a l ed i s t r i b u t e da p p l i c a t i o ne n v i r o n m e n t i ns u m m a r y ,p - r s rm o d e lh a ss u c c e s s f u l l ya p p l i e dt ot h en a n c h a n gp o l i c y s y s t e m k e yw o r d s :s o a ,s e r v i c ev i r t u a l i z a t i o n ,s e r v i c er o u t i n g ,p u b l i s h s u b s c r i b e ; d r o o l sr u l ee n g i n e 第“页 国防科学技术大学研究生院学位论文 表目录 表4 1 规格化消息的标准属性2 9 表4 2 约束覆盖判定规则4 8 第1 i i 页 国防科学技术大学研究生院学位论文 图目录 图1 1 基于内容的路由器3 图1 2 面向s o a 的服务请求路由中间件3 图1 3 论文组织结构6 图2 1j b i 环境。7 图2 2 面向服务的应用集成框架1 0 图2 3 面向服务的术语1 0 图2 4 面向服务的体系结构。“ 图2 5 面向服务的体系结构中的协作1 2 图2 6 基于g e f 的界面设计工具( v i s u a le d i t o r ,v e ) 的工作界面1 4 图2 7g e f 结构图1 5 图2 8e d i t p a r t 对象1 6 图3 1 预测型动态服务路由模型。1 9 图3 2 “发布订阅”交互模型2 l 图3 3 空间解耦2 1 图3 4 时间解耦。2 1 图3 5 控制流解耦。2 2 图3 6 反应型动态服务路由模型2 2 图3 7 预测反应型动态服务路由模型2 4 图3 8d r o o l s 规则引擎软件结构2 5 图3 9 正向推理2 6 图4 2 规格化消息的结构2 9 图4 3i n o n l ym e p 3l 图4 4r o b u s ti n o n l ym e p 3 2 图4 5i n o u tm e p 3 2 图4 6i no p t i o n a l o u tm e p 3 3 图4 7 通道消息队列的工作示意图3 4 图4 8 直接派发路由的示意图3 6 图4 9 异步轮询模型3 8 图4 1 0 异步回调模型3 9 图4 1 1 使用e p r 的异步交互图4 0 图4 1 2 推拉模型4 2 图4 1 3 观察者模式4 3 图4 1 4 服务端点的发布订阅模型4 4 图4 。1 5 基于路由代理的分布协作模型4 5 第1 v 页 国防科学技术大学研究生院学位论文 图4 1 6 索引计数匹配算法的数据结构4 7 图4 17d r o o l s 基本结构4 9 图5 1 i n f o r s i b 基本架构图51 图5 2i n f o r s i b 可视化界面5 4 图5 3 事件属性个数对算法的影响5 7 图5 4 属性的取值范围对算法的影响5 7 图5 5 订阅数量的算法的影响5 8 图5 6 三种模型的传输效率比较5 8 图5 7p s r 模型的可靠性5 9 第v 页 独创性声明 本人声明所呈交的学位论文是我本人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已 经发表和撰写过的研究成果,也不包含为获得国防科学技术大学或其它教育机构的学 位或证书而使用过的材料与我一同工作的同志对本研究所做的任何贡献均已在论文 中作了明确的说明并表示谢意 学位论文作者签名:兰生鱼: 日期: 学位论文版权使用授权书 1 ,矗a 辽j l i f 本人完全了解国防科学技术大学有关保留、使用学位论文的规定本人授权国 防科学技术大学可以保留并向国家有关部门或机构送交论文的复印件和电子文档,允 许论文被查阅和借阅;可以将学位论文的全部或部分内容编入有关数据库进行检索, 可以采用影印、缩印或扫描等复制手段保存、汇编学位论文 ( 保密学位论文在解密后适用本授权书) 学位论文题目 学位论文作者 作者指导教师 国防科学技术大学研究生院学位论文 第一章绪论 随着i n t e m e t 及相关技术的深入发展,各个企业和组织机构之间的交流和合 作更加频繁。电子商务、电子政务等借助w e b 技术的新型办公模式已逐渐走进 人们的日常生活当中【1 | ,商务流程或普通的办公流程也不再仅仅局限于单个组织 内部,社会分工形成的专业化使得更多的机构将借助于市场或其他组织提供的服 务来构建自己的业务流程【2 ,3 】。从实际应用效果的角度来看,这种跨组织的工作 流在一方面能够通过借助他人提供的服务来弥补自身功能上的不足,另一方面也 可以通过采用更廉价的服务来达到提高效益的目的。但与传统的工作流相比,新 的应用模式在实现上也带来了许多技术上的挑战。 1 1 课题背景 传统流程中的活动基本上都是采取静态绑定的方式,但是随着w e b 服务 4 1 和网格等技术的进一步应用。越来越多的商业机构会成为服务提供商。即使是提 供同一功能的服务,流程制定者都有可能面临着成千上万个选择,传统方式不仅 会导致效率低下,而且极易导致错误的绑定。另外,由于动态变化的业务需求, 往往要求在很短的时间里或者不需要人工干预的情况下,对绑定的服务做出动态 的调整。 1 、动态绑定的需求,与普通应用程序相比,工作流通常具有长运行周期的 特性,传统事先静态选择服务的方式并不能够很好地适应业务需求和运行环境的 动态变化。 2 、在s o a 中,从服务的选择到服务的执行事实上是一个用户和服务提供者 共同参与的过程,用户根据自己的需求选择合适的服务,而要想得到使用该服务 的效果,就必须按照服务提供商的要求,提供合适的前提条件并遵从正确的方式 来调用该服务。但目前的研究更多的只是从用户需求的角度来考虑服务选择问 题。在工作流中,由于非常强调服务之间的协调,因此这个问题显得更加突出。 面向服务构架( s o a ) 是一种架构模型,它可以根据需求通过网络对松散耦 合的粗粒度应用组件进行分布式部署、组合和使用。服务层是s o a 的基础,可 以直接被应用调用,从而有效控制系统中与软件代理交互的人为依赖性。而企业 服务总线( e s b ) 作为服务请求路由中间件【5 】,在s o a 应用中作为一种解决w ,e b 服务调用之间紧耦合关系的处理方式,在目前s o a 应用中取得了普遍共识。初 级的e s b 仅支持简单的消息转发配置,支持更复杂的商业服务路由规则的e s b 目前还处于不断的研究中。 第1 页 国防科学技术大学研究生院学位论文 1 2 应用背景 传统服务路由方案主要分为以下三种: 1 、使用发布订阅通趔引,例如可以把订单转发给所有的库存系统,让每个 系统自己决定是否处理订单。这种解决方案有利于增加新的库存系统,因为当新 的库存系统加入时,不必修改已有组件。但是,采用这种解决方案的前提是,要 在多个系统之间建立分布式的协作关系。而且很可能出现某个订单无法被任何一 个系统处理得情况,或者可能出现某个订单被多个系统处理得情况。另外,在许 多情况下,对于一个库存系统来说,如果订单中只有一个商品,而且库存无法处 理这个商品,这个库存系统会把这样的订单当作一个错误。如果是这样,每个订 单都只能由一个库存系统处理,而在所有其它的库存系统中都会引起错误。这样 很难把这些错误与“真正的”错误区分开。 2 、把商品的编号作为通道的地址 9 1 。例如每个商品都有自己专门的通道, 客户只需把订单发布到与商品编号相关的通道上即可,而不必了解零部件与配件 之间的内部区别。库存系统会监听它能处理的商品对应的所有通道。这种解决方 案利用了通道的可寻址性,能把服务请求路由到真正的库存系统。但是如果有大 量的商品,很快就会导致通道呈爆炸式增长,这会加重系统运行时的管理开销。 如果为所提供的每件商品都创建新的通道,很快就会导致混乱。 3 、尽量减少服务请求通信量 9 1 。例如可以把订单消息按顺序从一个库存路 由给下一个库存系统。第一个可以接受订单的系统将消费消息,并处理订单。如 果无法处理订单,就将订单消息传递到下一个系统。采用这种解决方案,可以消 除订单同时被多个系统接受的危险。而且,如果最后一个系统把订单消息再传回 来,则证明所有系统都无法处理这个订单。但是,这种解决方案要求系统之间要 互相了解,才能把服务请求从一个系统传递给下一个系统,它类似于责任链模式 ( c h a i no fr e s p o n s i b i l i t yp a t t e r n ) 。在基于服务请求的集成领域中,通过系统传递 服务请求会带来巨大的系统开销。 针对传统解决方案的不足,学术界提出了利用中介模块提供服务虚拟化机 制哺7 1 ,将中介模块作为虚拟的服务提供者,服务请求发送到中介模块,而中 介模块则可以将该请求路由到真正的服务提供者。服务虚拟化机制将服务消费 者从接口、协议和服务提供者的标识中分离出来,实现服务消费者和服务提供 者之间的智能互连。当前,采用服务请求路由中间件作为中介模块是实际应用 中服务虚拟化机制的常用解决方案。 动态服务路由模型的原型就是c o n t e n t b a s e dr o u t e r 模型9 1 。c o n t e n t b a s e d r o u t e r ( 基于内容的路由器) 模型首先检查服务请求的内容,并根据服务请求中包 含的数据把服务请求路由到不同的通道上。该模型可以根据很多标准来完成路 第2 页 国防科学技术大学研究生院学位论文 由,如是否存在某些字段、是否有指定的字段值等。 o a d g e t i n v e n t o f f 图1 1 基于内容的路由器 在面向服务的体系结构中,c o n t e n t b a s e dr o u t e r 用于动态服务发现。服务 请求者应用要访问某项服务,就需要把包含服务名的请求发送给c o m e m b a s e d r o u t e r 。c o n t e n t - b a s e dr o u t e r 维护一张简单的服务目录列表,其中包括所有服务 的名字以及服务监听的通道。c o n t e n t b a s e dr o u t e r 根据来自每个服务提供者的 控制消息来建立这个目录列表。所以服务请求者不需要考虑具体的服务提供者特 性和位置,就能访问到具体的服务。 图1 2 面向s o a 的服务请求路由中间件 如图1 2 ,系统管理员在系统部署前或系统运行过程中,向该消息路由框架 注册需要交互的商业服务,由中间件生成商业服务的代理服务。服务客户端获取 的服务将全部由消息路由中间件来代理,代理服务解决了服务调用地址引用的 紧耦合。使得相同的代理服务根据设定的消息处理规则,可以路由到不同的目标 服务或实现更复杂的业务消息处理逻辑。 因此,设计、构建和部署合理的面向s o a 的服务请求路由中间件【8 j 是目前 以服务为中心的企业集成的s o a 架构中的一个热点。 1 3 国内外研究现状 美国s t a n d f o r 大学g e r g oh o h p e 致力于使得企业敏捷开发,他在文献例中分 第3 页 国防科学技术大学研究生院学位论文 析了包括i b mw e b s p h e r em q ,t i b c o ,v i t r i a ,s e e b e y o n d ,w e b m e t h o d s ,b i z t a l k , j m s ,w c f ,m s m q ,s o n i c ,f i o r a n o ,s e r v i c e m i x ,m u l e 等企业整合相关工具 和平台,总结了一套构建服务请求路由解决方案的模型。 德国p o t s d a m 大学g e md e c k e r 在文献【1 0 , 1 1 , 1 2 , 1 3 1 辛认为随着跨组织业务流程 的发展,特别是面向服务体系结构成功应用到业务流程管理中。在s o a 架构中, 业务模型能通过编排形式更大粒度的服务。文中研究了在p e t r i 网中动态路由模 型的应用。 意大利p i s a 大学e g o nb o r g e r 在文献【1 4 , 1 5 , 1 6 i :p 为8 种基本的服务交互模型提 供了一个更加高层抽象的框架,包括通过8 种基本服务交互模型编排形成的复杂 的工作流,以满足多边协同环境下支持软件工程业务流程的管理。 澳大利亚q u e e n l a n d 大学m a r i o nd u m a s 在文献1 7 , 1 8 , 1 9 挪1 中认为s o a 架构必 须满足市场需求。文中描述了对于下一代面向服务系统得构想,m a r i o nd u m a s 把它称为s o a 生态系统,并认为基于服务请求的路由的完善将是s o a 生态系统 很关键的一部分。 i b m 研究员g r e yf l u r r y 在文献【2 l 】中认为目前s o a 产品没有为运行时更改端 点提供一种简便的方式。文中阐述了运行时动态路由的原理及其实现时使得整个 s o a 产品在进行服务编排时更加敏捷。 s a p 研究员a l i s t a i rb a r r o s 在文献【2 2 】中从b p m 角度出发,认为随着模型语 言的执行平台支持业务流程管理的完善和标准化,s o a 的开发应该更加关注企 业业务需求。文中介绍了通过服务交互模式加强w e b 服务的功能性,特别是可 以通过服务编排形成更大粒度的服务。文中从简单的双边交互模式入手,随后介 绍复杂的多边交互。 中国科学院计算机网络信息中心罗泽,南凯,阎保平在文献【2 3 】中提出科学数 据网格事件服务中基于内容的消息路由算法,采用基于内容的发布订阅系统实 现事件服务,试验结果表明算法准确有效,同时使系统有良好的可扩展性。 北京航空航天大学邵欢庆,康建初在文献【5 j 4 , 2 5 1 中认为面向服务的体系结构 已经成为i t 集成的主流技术,组件层与服务层是此体系结构的基础,企业服务 总线是s o a 的基础设施。文中针对组件层与服务层探讨了e s b 主要原理,阐述 了如何使用服务请求路由实现从组件到服务的映射和过渡。 文献2 7 2 8 】中认为将服务路由解决方案设计成模式将成为一种趋势,文中主要 描述了采用新技术和新体系结构中角色模式,特别是这些模式如何适应面向服务 体系结构中。 文献【g j 中认为面向服务的企业应用集成能快速整合资源,构建基于i t 环境 的信息系统。w e bs e r v i c e s 提供了面向服务的具体实现技术。文中分析s o a 概 念和架构的基础上,提出了一种基于s o a & w e bs e r v i c e s 的企业应用集成解决 第4 页 国防科学技术大学研究生院学位论文 方案,并对实现的消息路由关键技术进行了深入研究。 文献闭中提出了一种在消息路由、转换、汇聚和分支以及消息标志和关联中 采用x m l 技术的消息代理结构,详细讨论其技术细节和实现方案,并最后给出 该消息代理在企业应用集成中的一个应用实例。 1 4 课题主要工作 论文主要完成如下三部分的工作: 第一、设计和实现一个基于标准化的、扩展性好的面向服务的集成体系的原 型: 1 、给出了面向服务的集成体系的基本思路,研究s o a 技术,采用s o a 技 术对体系架构予以实现。 2 、分析研究了j b i 规范,作为实现s o a 系统的基础。 3 、设计并实现了动态服务路由的基础框架。 第二、根据实际需要,对上层的服务请求机制进行抽象成模型,并通过构件 ( e i p 构件) 的形式加以实现。 l 、分析和总结已有动态服务路由模型,并在此基础上设计并实现了动态服 务路由模型p r s r 模型。 2 、研究并实现了基于内容的“发布订阅通信模型作为p r s r 模型的组成 部分,基于内容的“发布订阅”通信模型采用快速匹配算法。 3 、分析了开源规则引擎d r o o l s ,整合d r o o l s 规则引擎作为p r s r 模型的一 部分。 第三、e i p 构件的可视化,使得可以敏捷的进行服务编排。 1 、使用g e f 框架进行e i p 构件可视化的实现。 2 、使用e m f 进行e i p 构件的建模。 3 、将上述三种模型映射到e m f 中的模型。 本文工作的创新点主要有: l 、设计并实现了动态服务路由模型- p r s r 模型。 2 、改进的基于内容“发布订阅”通信模型的快速匹配算法。 3 、整合d r o o l s 规则引擎作为p r s r 模型的一部分。 4 、应用g e f 和e m f 框架可视化。 1 5 论文组织 本文共分为六章,论文结构及章节关系如图1 3 所示。 第5 页 国防科学技术大学研究生院学位论文 第一章是绪论,阐述了本课题的研究背景、动态服务路由概述,来源及本文 贡献。 第二章介绍了一下本文的相关技术和概念。 第三章详细分析了已有工作的研究现状和存在的不足,并提出了改进的模 型,并给出了理论描述。 第四章给出了系统得具体设计,并详细给出了基于内容的“发布订阅 模 型的算法描述,和如何将d r o o l s 项目融合到系统中。 第五章给出一个原型系统实现。 第六章总结了全文的研究工作,并对下一步工作提出展望。 图1 3 论文组织结构 第6 页 国防科学技术大学研究生院学位论文 第二章相关技术和概念 2 1j b i 规范 j b i ( j a v ab u s i n e s si n t e g r a t i o n ,j a v a 业务集成) 【2 引,即j s r 2 0 8 是面向服务集成 的标准元容器( m e t a - c o n t a i n e r ) ,它允许多种第三方插件式构件来嵌入和使用公 共消息路由器通信;同时基于w s d l 抽象服务模型进行消息交互,提供了通用 的服务计算架构,使得业务集成无需考虑底层的实现技术与通信细节,实现了构 件间的松耦合。另一方面,它对公共消息路由器服务、插件式构件接口,以及服 务组合描述机制等进行了标准化,这样可将多种服务组合成为单个的可执行和可 审计的工作单元,实现了服务可重用和灵活性。 2 1 1j b i 环境的组成 j b i 环境( j b ie n v i r o n m e n t ) 是驻留在单个m 中构件的集合,也称为j b i 容器。容器外是j b i 要集成的外部服务消费者和提供者,它们通过绑定构件 ( b i n d i n gc o m p o n e n t ,b c ) 使用多种协议与j b i 环境内部通信,服务引擎( s e r v i c e e n g i n e ,s e ) 作为标准容器来宿主j b i 环境内部的w s d l 定义的服务提供者和 消费者。下面主要分五个部分来介绍它的内部组成,如图2 1 所示。 图2 1j b i 环境 j b i 定义了由容器( c o n t a i n e r ) 和插件( p l u g - i n s ) 组成的可插拔体系架 构,容器宿主插件式构件;构件之间不能彼此交互,必须通过规格化消息路由器 ( n o r m a l i z e dm e s s a g er o u t e r ,n m r ) 进行中间消息交换与路由。所有提供的服 第7 页 国防科学技术大学研究生院学位论文 务暴露为w s d l 描述的服务,消费者构件产生的服务请求被消息路由器交付给服 务提供者,实现了服务消费者与提供者之间的松耦合。j b i 运行核一心( j b ir u n t i m e c o r e ) 主要包括: 构件框架( c o m p o n e n tf r a m e w o r k ) :提供j b i 环境与构件之间交互的接 口。 消息路由器:提供在服务构件之间进行标准的消息交互。 管理框架( m a n a g e m e n tf r a m e w o r k ) :基于j m x 的管理接口对构件进行 生命周期管理和监控等。 构件的分类使业务逻辑从通信逻辑中分离开来,减少了实现的复杂性,允许 j b i 环境仅仅只处理规格化消息。j b i 中的构件主要分为以下两类: 服务引擎:提供业务逻辑和数据转换服务给其它构件,同时也消费其它 构件的服务。w s - b p e l2 0 引擎,x s l t 转换引擎和e j b 容器等,都是 可插入服务引擎的例子。 绑定构件:负责与外界通信,提供连接性到j b i 环境外部的服务,可作 为外部服务消费者或提供者的代理。j b i 能支持多种传输协议,绑定组 件作为j b i 环境和像h t t p ,s m t p ,a s i a s 2e d i ,j m s m o m ,s o a p 等多种不同协议之间的转换器。 j b i 使用抽象服务模型作为构件交互的主要基础。构件在交互中扮演以下两 种角色: 服务消费者。发起消息请求给定服务的构件。 服务提供者。提供给定服务实现的构件。 每个j b i 构件可以是服务提供者、服务消费者或两者兼之。服务提供者通过 服务端点提供w s d l 描述的服务。服务消费者采用发起消息交换来调用特定操 作的方式使用服务。 抽象的w s d l 服务模型独立于任何特定的协议和消息编码格式:构件提供 和消费的服务使用w s d l1 1 或2 0 描述。构件之间基于w s d l2 0 服务模型进 行消息交换,消息的传递基于接口名或服务名。绑定构件可作为外部服务消费者 的代理,请求内部服务引擎提供服务;或者作为外部服务提供者的代理,将内部 请求转发给外部的服务。 j b i 构件之间使用基于w s d l2 0 服务模型的消息交换( m e s s a g ee x c h a n g e , m e ) 进行互操作。消息的传递是基于接口名( i n t e r f a c en a m e ) 或服务名( s e r v i c e n a m e ) ,这是与j m s 的最大不同,即j m s 实际上没有解除发送方和接受方的耦 合关系。 消息路由器提供了一种轻量级消息框架用于构件之间进行消息交换,创建了 基于标准消息通信的定义良好的互操作语义。服务的提供者必须向消息路由器注 第8 页 国防科学技术大学研究生院学位论文 册,进行服务的激活;构件能向消息路由器查询w s d l 描述的服务。 在j b i 环境内部,消息以规格化形式( n o r m a l i z e df o r m ) 由消息路由器在构 件之间路由,绑定构件必须进行转换外部特定协议的消息为规格化格式。规格化 消息( n o r m a l i z e dm e s s a g e ,n m ) 由三部分组成:消息负载( p a y l o a d ) 、消息元 数据和附件。要传递的内容可作为消息负载、属性或者附件。消息路由器通过处 理消息负载为透明数据,避免了转换消息为中间格式而影响集成的性能和可扩展 性。目前定义了四种标准的消息交换模式( m e s s a g ee x c h a n g ep a t t e r n s ,m e p s ) : i n o n l y 、r o b u s ti n o n l y 、i n - o u t 和i n o p t i o n a l o u t 模式。j b i 容器的开发者可以在 此基础上自由对其进行扩展。 j b i 定义了基于j m x 控制的标准集允许外部管理工具来完成j b i 环境一系列 的系统管理任务,同时也包含了构件自身的管理。主要的功能包括: 构件的安装与部署。 构件的生命周期管理( 启动、停止和关闭等) 。 在j b i 构件( 绑定构件或服务引擎) 之上部署工件( a r t i f a c t ) ,比如服务 引擎是x s l t 引擎,在其上部署的工件可以是新的x s l t 样式表。在j b i 中,工件被称为服务单元( s e r v i c eu n i t ,s u ) ,服务单元的集合和相关 的元数据一起被称为服务组装( s e r v i c ea s s e m b l y ,s a ) 。 监视和控制。 2 1 2 基于j b i 的应用集成 针对当前企业的迫切需求,为了提供松耦合、灵活多变的服务集成,本小节 在j b i 规范的基础上,提出了面向服务的应用集成框架的总体结构,它能以一种 灵活的、可组合的方法来重用和扩展已有资源以及构建新的应用程序。最后阐述 了它对消息路由器的功能需求。 一 本文基于j b i 规范,结合目前实施s o a 的e s b 和b p e l 技术,提出了一种 面向服务的应用集成框架,如图2 2 所示。该框架以透明的方式访问底层的企业 应用与数据资源,而具体的传输协议则由各协议相关的j b i 构件来提供适配。中 间层利用j b i 容器互连形成的e s b 设施进行强大的数据转换、动态路由、以及 基于事件和消息的交互,提供粗粒度、松耦合的服务供各个应用之间相互调用。 流程服务层集成b p e l 引擎构件负责业务编排,确保把细粒度服务组合成实际运 行时的业务流程。由于j b i 规范支持服务组装( s a ) ,即在多个构件上部署服务 单元,实现了组合服务应用。顶层的企业门户采用组合式p o r t a l ,提供可用、高 效、一致的界面访问各种资源。 第9 页 国防科学技术大学研究生院学位论文 企业门户卜- 巾商f 王公瀛 服务组装 阿视化工刊卜卜 f 商释圈 _ 、- _ - - _ , 王 业务流程i w s b p e ll 卜恒 、,_ 一一 ,有 1 1 蒯燃黼 王 i s o 印a p i e 四d ii 翠口 卫呼工 匝壅习臣童口区蛔巨瓣弓 心 图2 2 面向服务的应用集成框架 通过该框架实现的服务访问流程描述如下: 应用层的客户端首先通过u d d i 查询公共服务目录或经安全验证后的私 有目录,用得到的w s d l 生成服务请求请求。 请求被转发到w e b 服务器或相应构件的监听端口上,然后转换为规格化 消息;总线负责将消息路由到相应的服务提供者,比如包含了流程服务 的组合应用。 组合应用收到请求后,按服务元数据描述来调用内部或外部的服务,其 中包含调用b p e l 引擎进行编排;也可能通过总线调用其它各种应用, 比如通过s o a p 访问已封装的企业e l 心资源。 最后将结果返回给监听构件,再转发给用户。 2 2s o a 面向服务的体系结构 面向服务的体系结构( s o a ) 提供了一种方法【4 5 】,通过这种方法,可以构建分 布式系统来将应用程序功能作为服务提供给终端用户应用程序或其他服务。图 2 3 展示了重要的面向服务术语: 图2 3 面向服务的术语 第1 0 页 国防科学技术大学研究生院学位论文 服务:逻辑实体,由一个或多个己发布接口定义的契约。 服务提供者:实现服务规范的软件实体。 服务使用者:调用服务提供者的软件实体,它可以是终端用户应用程序 或另一个服务。 服务定位器:一种特殊类型的服务提供者,它作为一个注册中心,允许 查找服务提供者接口和服务位置。 服务代理:一种特殊类型的服务提供者,它可以将服务请求传送到一个 或多个其他的服务提供者。 图2 4 面向服务的体系结构 s o a 的组成元素可以分成功能元素和服务质量元素,图2 4 展示了体系结构 堆栈以及在一个面向服务的体系结构可能观察到的元素。面向服务的体系结构框 架分成两半,左边的一半集中于体系结构的功能性方面,而右边的一半集中于体 系结构的服务质量方面。 如图2 4 ,功能性方面包括: 传输:它是一种机制,用于将来自服务使用者的服务请求传送给服务提 供者,并且将来自服务提供者的响

温馨提示

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

评论

0/150

提交评论