(交通信息工程及控制专业论文)基于ESB的SOA架构技术的研究与应用.pdf_第1页
(交通信息工程及控制专业论文)基于ESB的SOA架构技术的研究与应用.pdf_第2页
(交通信息工程及控制专业论文)基于ESB的SOA架构技术的研究与应用.pdf_第3页
(交通信息工程及控制专业论文)基于ESB的SOA架构技术的研究与应用.pdf_第4页
(交通信息工程及控制专业论文)基于ESB的SOA架构技术的研究与应用.pdf_第5页
已阅读5页,还剩83页未读 继续免费阅读

(交通信息工程及控制专业论文)基于ESB的SOA架构技术的研究与应用.pdf.pdf 免费下载

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

文档简介

西南交通大学硕士研究生学位论文第1 页 摘要 面向服务体系结构是一个组件模型,它将应用程序的不同功能单元抽 象为服务,并将这些服务通过定义良好的接翻和契约联系起来。为了优化 企业的信息系统基础架构,以实现面向服务的体系结构,企业需要一个智 能化的基础设旄,以降低服务重用的复杂性,并可靠地集成企监信息系统 中存在的各种技术、协议和应用。为此,需要建立一个以服务为中心的抽 象层,以隐藏各种瘦用和技术带来的底层复杂性,这个服务中阆层就是企 业服务总线( e n t e r p r i s es e r v i c eb u s ,e s b ) 。 本文首先介绍了s o a 相关技术和理论基础,分析了s o a 的特性;其次, 引出了企业服务总线模型,指明为何采用e s b 技术来构建s o a ,并对企业 服务总线中的内部机制进行了深入的研究;再次,以j 2 e e 技术为切入点, 提出了基予e s b 的一种s o a 架构参考模型,它的主要优点在于:服务透明 化和服务的松散耦合;最后,对这个s o a 架构进行了扩展,使其能面向不 同的技术、协议和疲震,整合各种信息资源。 文章最后,通过比较当前e s b 产品,最终选择b e a 的a q u a l o g i cs e r v e r b u s ( a l s b ) 来构建s o a 架构。在论文中,结合一个实际的项目,慰上文提凄 的基于e s b 的s o a 架构进行了实践应用。在系统实施过程中,通过服务设 计、服务的实现,在服务总线上的部署和使用,以及系统功能和性能的验 证,实现了服务透明化,服务的松散耦合,服务的集中管理,基于内容动 态路由服务以及更好的服务重用,体现了这种s o a 架构的优越性以及构建 金韭级应震酶灵活性和抉捷性。并从中总结了不足和相关经验,为后继工 作奠定了基础。 关键词:企业服务总线;面向服务体系结构;a l s b a b s t r a c t s e r v ic e o r i e n t e da r c h it e c t u r e ( s o a ) i sac o m p o n e n tm o d e lt h a t i n t e r r e l a t e sa na p p l i c a t i o n sd i f f e r e n tf u n c t i o n a lu n i t s ,c a l l e d s e r v i c e s ,t h r o u g hw e l l d e f i n e d i n t e r f a c e sa n dc o n t r a c t sb e t w e e n t h e s es e r v i c e s t oo p t i m i z et h ei ti n f r a s t r u c t u r ea n dd e l i v e rt h e s e r v i c ei nt i m et om a k e t h es o ap o s s i b l e ,i tf o r u mn e e d s a n i n t e l l i g e n t s t r u c t u r et or e d u c et h ec o m p l e x i t yo ft h e s e r v i c e r e u s a b i l i t y ,a n d t o i n t e g r a t e a l l t e c h n o l o g i e s ,p r o t o c o l s a n d a p p l i c a t i o n s f o rt h i sr e a s o n ,t h ei tf o r u mc r e a t e s a na b s t r a c tl a y e r f o c u so nt h e “s e r v i c e t o r e d u c et h eu n d e r l y i n gc o m p l e x i t yb y i n t e g r a t i n ga l la p p l i c a t i o n s a n dt e c h n o l o g i e s s u c hal a y e r f o r s e r v i c e si sc a l l e de n t e r p r i s es e r v i c eb u s ( e s b ) f i r s t l y ,t h e t h e s iss h o w st h et e c h n o l o g y a n dt h e o r e t i c a l f o u n d a t i o na b o u ts o a ,a n d a l s o a n a l y z e s t h ec h a r a c t e r o f s o a :s e c o n d l y ,t h em o d e lo fe s bi si n t r o d u c e dt h a tw h yt od e s i g ns o a i nu s i n ge s bi sp o i n t e do u t ,a n de s b sw o r k m e c h a n i s mi sd e e p l y r e s e a r c h e d 。t h i r d l y ,as o ar e f e r e n c em o d e lb a s e do ne s bi sg i v e nb y j 2 e et e c h n o l o g ya sa nc u t o f fp o i n t ,t h es o aa t c h i t e c t u r e sc e n t e r a l v i r t u ei st h es e r v e rt r a n s p a r e n c ya n dl o o s e l yc o u p l i n g ;f i n a l l y ,t h e s o aa r c h i t e c t u r ei se x t e n d e dt oi n t e g r a t ea 1 1k i n d so fi n f o r m a t i o n r e s o u r c e s ,m a k i n g i tf a c ed i f f e r e n tt e c h n o l o g i e s ,p r o t o c o l s ,a n d a p p li c a t i o n s a 弋l a s t ,c o m p a r i n gw it ho t h e re s bp r o d u c t s ,t h et h e s i ss e l e c t s a q u a l o g i cs e r v i c eb u st h a t i sp r o d u c e db yb e a t h ep a p e rt e l l sa s t h ea p p l i c a t i o no ft h es o aa r c h i t e c t u r eb a s e do ne s bb yc o m b i n i n g a na c t u a lp r o j e c t i nt h ep r o c e s s o fi m p l e m e n t i n gs y s t e m ,b y d e s i g n i n g ,i m p l e m e n t i n gs e r v i c e a n dd e p l o y i n gs e r v i c ei ns e r v i c e b u s ,t h e nv a l i d a t i n gs y s t e mf u n c t i o n a n dc a p a b i l i t y ,t h ep a p e r i m p l e m e n t sl o c a t i o n st r a n s p a r e n c y ,s e r v e r sl o o s e l yc o u p l i n g , s e r v e r sp o o lm a n a g e m e n t 女c o n t e n t b a s e d d y n a m i cr o u t i n ga n dm u c h b e t t e rs e r v e r r e u s e ,i tr e f l e c t st h ec h a r a c t e ro ft h ef l e x i b i 1i t ya n d s h o r t c u ti nd e s i g n i n ge n t e r p r i s ea p p li c a t i o n a n dt h ee x p e r i e n c ea n d d i s a d v a n t a g e so ft h es y s t e ma r es u m m a r i z e d ,w h i c hs e t t l e dt h eb a s e o fs u c c e e d i n gj o b s k e yw o r d s :e n t e r p r i s es e r v i c eb u s :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 : a q u a l o g i cs e r v i c eb u s 西南交通大学 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规 定,同意学校保留并向国家有关部门或机构送交论文的复印件和 电子版,允许论文被查阅和借阅:本人授权西南交通大学可以将 本论文的全部或部分内容编入有关数据库进行检索,可以采用影 印、缩印或扫描等复印手段保存和汇编本学位论文。 本学位论文属于 i 保密口,在年解密后适用本授权书; 2 不保密日,使用本授权书。 ( 请在以上方框内打“ ) 厂满z 学位论文作者签名:莜孑虬指导老师签名: 日期:协p 一够矽 日期: 西南交通大学学位论文创新性声明 本人郑重声明:所呈交的学位论文,是在导师指导下独立进 行研究工偿所得的成果。除文中已经注骧雩| 用的志容外,本论文 不包含任何其他个人或集体已经发表或撰写过的研究成果。对本 文的研究做出贡献的个人和集体,均已在文中作了明确的说骥。 本人完全意识到本声明的法律结果由本人承担。 本学位论文的主要创新点如下: 1 在比较s o a 构建技术和研究e s b 的基础上,提出了基于 e s b 的一种s o a 架构,接着给出了实现方案,并对其特点进行了 分析。 2 对提出的基于e s b 的一种s o a 架构进行扩展,并对其相关 问题进行相关讨论。 3 结合实际项圈“西藏中小创新服务平台辩,对文中提出的基 予e s b 的一种s o a 架构进行了实际的应用,实现了服务透明化, 服务的松散耦合,服务的集中管理,基于内容动态路由服务以及 更好的服务重用,体现了这种s o a 架构的优越性以及构建企业级 应用的灵活性和快捷性。 西南交通大学硕士研究生学位论文第1 页 第1 章绪论 1 。1 课题研究背景 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 雌 不是一种语言,也不是一种具体的技术而是一种软件系统架构,它尝试给 出在特定环境下推荐采用的一种架构,从这个角度上来说,它更像一种模 式( p a t t e r n ) 。因此它与很多已有的软件技术比如面向对象技术,是互补的 而非互斥的。它们分别面向不同的应用场景,用来满足不同的特定需求。 它最主要的应用场合在予解决在i n t e r n e t 环境下的不同商业应耀之闻的 业务集成问题。s o a 促进了可重用性,提供了接口和实现之间的抽象级别, 以最小化依赖关系将业务需求与i t 功能结合,从而可以为您提供用于将 业务需求转换为编程服务来实现流程自动化的机制,以及当前竞争激烈且 快速变化的业务环境中所必需的灵活性。以下这些相关因素通常会让企业 建议采用面向服务的体系结构轻3 : 1 利用现有的资产 s o a 提供了一个抽象层,透过这个抽象层,企业可以继续利用它在王t 方面的投资,将这些现有的资产包装为提供企业功能的服务。组织可以继 续从现有的资源中获取价值,而不必重新从头开始构建。 2 更易于集成和管理复杂性 在面向服务的体系结构中,集成点是规范而不是实现。提供了实现透 明性,并将基础设施和实现发生的改变所带来的影响降到最低限度。通过 提供针对基于完全不同的系统构建的现有资源和资产的服务规范,集成变 得更加易于管理,因为复杂性是隔离的。当更多的企业一起协作提供价值 链时,会变得更加重要。 3 更快的响应和应用速度 从现有的服务中组合新的服务的能力为需要灵活地响应苛刻的商业要 求的组织提供了独特的优势。通过利用现有的组件和服务,可以减少完成 软件开发生命属期( 包括收集需求、进行设计、开发和测试) 所需的时闻。 西南交通大学硕士硒究生学位论文第2 页 这使得可以快速地开发新的业务服务,并允许组织迅速地对改变做出响应 和减少应用准备时闻。 4 减少成本和增加重用 通过以松散耦合的方式公开的业务服务,企业可以根据业务要求更轻 松地使用和组合服务。这意味资源副本的减少、以及重用和降低成本的可 能性的增加。通过s o a ,企业可以未雨绸缪,为未来做好充分的准备。s o a 业务流程是由一系列业务服务组成的,可以更轻松地创建、修改和管理它 来满足不同时期的需求。 s o a 提供了灵活性和峻应能力,这对于企邋的生存和发展来说是至关重 要的。但是面向服务的体系结构绝不是灵丹妙药,而迁移到s o a 也并非一 件容易的事情。 1 2 问题的提出 s o a 之所以变得经济可行,是因为受到了两种现状的推动:行业利用 w e b 服务“公开 和“使用 新服务及遗留服务,构建了支持“松耦合服 务交互修的工其包和基础架构。在采糯s o a 策略时,由于成本和复杂性等 因素,i t 专业人员并不愿意完全淘汰现有的基础架构,而是希望将现有应 用业务表示为服务,以供其健韭务流程和应翔重用。 这就是说,s o a 的成功离不开“集成层 ,集成层支持异构环境下的动 态服务交互。集成层必须对服务使用者隐藏服务端点的更改,同时支持现 有服务的发展,并能够促进业务的发展,快速添加新服务以满足客户和合 作伙伴的要求。 在构建和维护s o a 时,企业架构师面临的挑战h ,:如何使架构适应业 务需求的增长,并满足新客户的需要? 在系统中号| 入动态行为和运行时配置能力 在企业范围内重用服务,管理服务的生命周期 适应服务使用者和服务提供者闻的变化 确保企业服务的统一使用 确保服务的安全性 西南交通大学硕士研究生学位论文第3 页 确保企业服务符合i t 策略 监控和审计服务使用,并管理系统停运 下图是演示了很多组织的典型架构和s o a 面临的挑战。 图i - is o a 面临的挑战h 1 图i - i 演示很多组织的典型架构和s o a 挑战。此时,必须维护服务使 用者和服务提供者间的点对点连接,也就是说,使用者启用一个服务端点 时,必须复制传输、转换、安全和路由机制。如果服务端点接翻发生变化, 各个服务使用者将与该服务断开,并重新开发和重新部署,最后造成了服 务中断。 1 3 本论文研究内容 1 s o a 的研究。 在构建企业级的s o a 应用一般都要遵循s o a 的特性,这三个特性包括 了服务的松散耦合、服务的糨粒度设计以及s o a 架构中的所有服务的具体 实现、位置和传输协议对调用者来说都是透明。充分利用好s o a 的三个特 性,能使企业以最快的、灵活的、最节省成本的方式来满足当前瞬息万交 的市场需求。 2 e s b 的研究。 e s b 对构建s o a 架构的优越性,e s b 的内部工作机制研究,为基于e s b 的s o a 架构的设计与实施做好必要的准备。 西南交通大学硕士研究生学位论文第4 页 3 基于e s b 的s o a 架构的设计研究。 以e s b 为切入点,如何在遵循s o a 特性的基础上,构建一个能够满足 灵活快捷、需求多变的企业应用的s o a 架构。 4 。基于e s b 的s o a 架构在实际项强中的应用研究。 在实际项目中进行实践,对提出基于e s b 的s o a 架构的实践应用,并 对其优点和缺点的总结,便于将来s o a 的进一步发展和改进。 1 4 论文组织结构 全文共分为六章,内容结构如下; 第一章:绪论。给出了课题的研究背景,并提出了问题,指明作者所 研究豹态容。 第二章:面向服务体系架构( s o a ) 。主要对s o a 的特性,以及主要支撑 技术介绍。在s o a 的基础上,循序渐进的引漱了企业服务总线的模型,指 出了在构建s o a 中为何使用e s b 技术,并对e s b 的内部机制进行了深入的 研究。 第三章:基于e s b 的s o a 的应用架构的设计研究。提出了基于e s b 的 一种s o a 架构,并对其工作机制和特点作了详细的描述。 第四章:基于e s b 的s o a 架构的扩展研究。对三章提出麓基于s o a 架 构进行扩展,并给出了相关的实现参考方案。 第五章:基于e s b 的s o a 架构的应用。首先对当前e s b 产燕进行利弊 比较最终选择采用b e a 的h q u a l o g i cs e r v e rb u s 作为s o a 的“中间层 , 结合正在开发的实际项目,对上文提出的s o a 架构进行了实践应用。 第六章:最后,是对系统的验证、部署和演示。 西南交通大学硕士研究生学位论文第5 页 第2 章面向服务体系架构 2 1 面向服务架构定义 顾能公司( g a r t n e r ) 最早提出了s o a 的思想:“面向服务的架构是一种 基于客户机服务器模式的软件设计方法,其中的应用由服务提供者和服务 使用者( 也称客户机或服务请求者) 双方组成 啼1 。g a r t n e r 为s o a 描述的 前景目标是:使企业信息系统变得更有弹性,以更快地响应业务部门的需 要。 而i b m 对s o a 的定义是这样的:面向服务的体系结构是一个组件模型, 它将应用程序的不同单元( 称为服务) 通过这些服务之间定义良好的接口和 契约联系起来隋1 。接口是采用中立的方式进行定义,它应该独立于实现服 务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系统中的 服务可以以一种统一和通用的方式进行交互。 2 2 面向服务架构出现的必然性 让我们通过回顾软件开发的演化过程来看看s o a 出现的必然性阳1 : 面向机器语言( m o n o l i t h i c ) 的开发模式:需要根据不同平台的机器语 言来开发代码。 面向过程( p r o c e d u r e ) 的开发模式:独立于机器的程序语言( c ,p a s c a l 等) 使开发过程变得简单了,用过程来代表一个抽象的代码整合,包装重用 现成的代码。 面向对象( o b j e c t ) 的开发模式:用更接近现实的对象来表述一个相对 完整的事物。面向对象的语言( j a v a 等) 提供了更抽象的封装和重用模式口1 。 面向对象的开发强调从现实世界问题到软件程序的直接映射,更接近人类 的自然思维方式。 面向组件( c o m p o n e n t ) 模式:随着软件开发规模的扩大,在涉及分布式、 异构等复杂特征的环境中,代码级别的重用性差,可维护性差,效率低的 西南交通大学硕士研究生学位论文第6 页 弱点是不可逾越的,因此人们以架构运行环境( 如n e t ,j 2 e e 等) 来提供完 善的支撑平台,从而把开发者解放出来,更关注于业务核心的开发。而这 些业务功能( b u s i n e s sf u n c t i o n ) 以组件的形式( d c o m ,e j b 等) 发布运行在 架构运行环境中。软件开发的重用模式也上升到业务组件的级别。 面向服务( s o a ) 的模式随1 :当软件的使用范围扩展到更广阔的范围,往 往会面对更加复杂的i t 环境和更加灵活多变的需求。服务( s e r v i c e ) 的概 念出现了,人们将应用( a p p l i c a t i o n ) 以业务服务运行在任一个架构体系 上,因为所有的服务都讲着同样的语言。s o a 考虑了业务发展的长期性, 体现了“变化就是永恒的思想。s o a 的核心体现在企业应用或者业务功 能上的“重用 和“互操作,而不再把i t 与业务对立起来,这就是被视 为在i t 驱动业务( s o a 架构体系就是通过业务来驱动的,它通过业务驱动 服务,用服务来驱动技术旧1 ) 方向上迈出的重要一步。 s o a 相对于传统的代码重用,对象重用,和组件重用,s o a 的重用粒度 更粗。s o a 的重用在于业务级n 叫的应用,即服务的重用,这也与软件的发 展规律是相一致的。 2 3 面向服务架构的特性 s o a 是一种粗粒度、松散耦合的服务架构,其服务之间通过简单、精确 定义的接口进行通讯,不涉及底层编程接口和通讯模型。这种架构具有几 个特征n : 1 松散耦合 s o a 是“松散耦合组件服务,这一点区别于大多数其他的组件架构。 松散耦合旨在将服务使用者和服务提供者在服务实现和客户如何使用服务 的方面隔离开来。服务提供者和服务使用者问松散耦合背后的关键点是服 务接口作为与服务时限分离的实体而存在。这使服务实现能够在完全不影 响服务使用者的情况下进行修改。大多数松散耦合方法都依靠基于服务接 口的消息。基于消息的接口能够兼容多种传输方式( h t t p 、j m s 、t c p i p 等) 。 基于消息的接口可以采用同步和异步协议实现。 2 粗粒度服务 西南交通大学硕士研究生学位论文第7 页 服务粒度指的是服务所公开功能的范围,一般分为细粒度和粗粒度。其 中,细粒度服务是那些能够提供少量业务流程可用性的服务。粗粒度服务 是那些能够提供高层业务逻辑的可用性服务。选择正确的抽象级别是s o a 建模的一个关键问题。设计中应该在不损失或损害相关性、一致性和完整 性的情况下,尽可能地进行粗粒度建模。通过一组有效设计和组合的粗粒 度服务,业务专家能够有效地组合出新的业务流程和应用程序。一个关于 粗粒度服务的争论是粗粒度服务比细粒度服务的重用性差,因为粗粒度服 务服务倾向于解决专门的业务问题,因此出现了通用性差,重用性设计困 难。解决该问题的方法就是允许采用不同的粗粒度等级来创建服务。这种 服务分级包含了粒度较细、重用性较高的服务,也包含粒度较粗、重用性 较差的服务。细粒度服务一般是为了粗粒度服务所使用,粗粒度服务可以 灵活组合稳定性强、重用性高的细粒度服务,而快速形成新的业务逻辑。 3 s o a 架构中的所有服务的具体实现、位置和传输协议对调用者来说都是 透明1 2 3 的 也就是说客户端调用s o a 上的服务时不需要知道服务的具体实现,因为 s o a 架构已经对这些服务进行了封装,再通过s o a 架构平台将所有服务统 一对外发布。当客户端通过s o a 架构平台调用这些服务时,s o a 平台将会 用代理调用这些服务,如有需要,可以对输入的参数、传输协议以及返回 结果根据业务的需求进行相应的修改。 2 4 面向服务体系架构的主要支撑技术 在s o a 架构下,服务成为应用系统的基本单元,使得i t 与业务有机地 结合在一起。w e b 服务技术是对s o a 的一种实现。 1 w e b 服务定义 w e b 服务可以从多个角度来定义。从技术角度来说,一个w e b 服务是可 以被u r i 识别的应用软件,其接口和绑定由x m l 描述和发现,并可与其他 基于x m l 消息的应用程序交互。从功能角度看,w e b 服务是一种新型的w e b 应用程序,具有自包含、自描述以及模块化的特点,可以通过w e b 发布、 查找和调用,使得e a i 变得更加容易。 西南交通大学硕士研究生学位论文第s 贾 2 w e b 服务体系结构 w e b 服务采用了s o a 的体系结构,通过服务提供者、请求者和注船中心 等实体之间的交互完成服务调用。服务级别协议( s e r v i c el e v e l a g r e e m e n t ,s l a ) 保证的w e b 服务第一代体系结构口3 1 如图2 - 1 所示。 圈2 - 1w e b 服务体系结拇 文献n 锄提出了一些原因,认为图2 - 1 中的体系结构已不适合如今日益 发展的w e b 服务应用程序,在s o a 中已显得过时。i b m 提出了s l a 保证的 第二种w e b 服务体系结构汹3 。 图2 - 2s l a 保证的第二代w e b 服务体系结构 第二代体系结构如图2 - 2 所示,这里将提供者通知( a l e r t ) 和客户通知 分为三类确认、验证和故障信息。每种类型的内容对每个事件来言都不一 样。 例如,应用程序提供者给代理发送发布服务的请求。如果代理成功地 发布了资源瘁中的服务,它将发送发布成功的通知信息绘提供者。否则, 发送发布失败的通知信息。应用程序客户发现w e b 服务应用程序过程类似。 客户一旦接收到成功发现的通知,客户就将其与提供者绑定。彼此间通信, 以便进行下步工律。 西南交通大学硕士研究生学位论文第9 页 3 w e b 服务的技术支持 w e b 服务平台需要一套协议来完成分布式应用程序的创建。任何平台都 有它的数据表示方法和类型系统。要实现互操作性,w e b 服务平台必须提 供一套标准的类型系统,用于沟通不同的平台、编程语言和组件模型中的 不同的类型系统。目前相关协议有: x m l 和x s d 可扩展的标记语言x m l ( e x t e n s i b l em a r k u pl a n g u a g e ) 是w e b 服务平台 中表示数据的基本格式。x m l 不仅易于建立和易于分析,而且是跨平台的, 在传输信息时软件和硬件是相互独立的工具,并且与厂商无关。w e b 服务 利用x m l 来传送数据。w e b 服务平台用x s d 作为数据类型系统n 们。 s o a p x m l 使数据易于理解和共享,但应用实体之间要发送和接收文档,还需 对网络协议、访问点等细节达成共识n7 1 。w e b 服务实体间使用简单对象访 问协议s o a p ( s i m p l eo b j e c ta c c e s sp r o t o c e l ) 交换编码信息。s o a p 是交 换x m l 编码信息的轻量级协议,可以运行在任何其他传输协议上。s o a p 消 息包括三个主要部分封装结构、编码规则和r p c ( r e m o t ep r o c e d u r ec a l l ) 机制。 w s d l 在应用程序调用一个w e b 服务之前,必须知道其调用接口。w e b 服务采 用w e b 服务描述语言w s d l ( w e bs e r v i c e sd e s c r i p t i o nl a n g u a g e ) 来描述 其服务接口。w s d i 基于x m l 语言,具有语言无关性,用于描述w e b 服务及 其函数、参数和返回值。将w e b 服务定义为网络端点的集合,使用类型、 消息、端口等元素来描述服务接口。请求者根据这些可以知道服务要求的 数据类型、消息结构、传输协议等,实现对w e b 服务的调用。 u d d i 为了使服务请求者能够查找到所需要的服务,业界制订了注册和查找 w e b 服务的u d d i 技术规范。u d d i ( u n i v e r s a ld e s c r i p t i o n ,d i s c o v e r y ,a n d i n t e g r a t i o n ) 是一套基于w e b 的、分布式的、为w e b 服务提供信息注册中 心的实现标准规范,同时也包含一组使企业能将自身提供的w e b 服务,以 使别的企业能够发现的访问协议的实现标准。 西南交通大学硕士研究生学位论文第l o 页 x s l t x s l t 的英文标准名称为e x t e n s i b l es t y l e s h e e tl a n g u a g e t r a n s f o r m a t i o n 。根据w 3 c 的规范说明书n 羽,最早设计x s l t 的用意是帮 助x m l 文档转换为其它文档。但是随着发展,己不仅仅用于将x m l 转换为 h t m l 或其它文本格式。其更全面的定义为:x s l t 是一种用于转换x m l 文档 结构的语言。x m l 从根本上解决了应用系统间的信息交换,就是我们用来 实现这种转换功能的语言。 x p a t h x p a t h 是x s l t 的重要组成部分。是一种专翔用来在x m l 文档孛查找信 息的语言。在转换x m l 文档时可能需要处理其中一部分( 结点) 数据,在查 找和定位x m l 文档中信息时,就要用到x p a t h 。 s c h e m a s c h e m a 是描述x m l 数据结构的数据模型( 也称元数据n 町) ,它同样也是 一种数据。因此s c h e m a 也是使用蕊l 为基础的数据表现形式。s c h e m a 是 x m l 世界中的标准建模语言,s o a p 、w s d l 和u d d i 的x m l 语法都是采用s c h e m a 进行箍述的。 2 5 企业服务总线 2 5 1 企业服务总线模型的引入 上文已阐述了镗么是s o a 及其关键技术,那么按照s o a 的思想,假设 我们已经把各个i t 资产都提炼成服务,并及时公布出来,并可以相互调用 服务,这样可以在j 2 e e 的环境里调用n e t ,餐是这点在原来没有s o a 豹时 候也可以做到的。只有两个i t 系统之间认可对方的方式,即使不存在公开 统一的服务界面也可以实现点到点的互联啪1 。因此我们不得不承认,如 栗我们只有服务,丽服务的请求者和服务提供者之闯仍然需要这种显示的 点到点的调用,那么这就不是一个典型的s o a 架构。服务的参与双方仍然 都必须建立王对l 的联系,如下圈2 - 3 所示: 西南交通大学硕士研究生学位论文第n 页 图2 - 3 点对点的服务整合k 与s o a 的典型架构相比,显然不满足前面讲到的s o a 的第三个特性: “s o a 架构中的所有服务的具体实现、位置和传输协议对调用者来说都是 透明的”。因此还需要一个这样的中间层心2 l ,能够帮助实现在s o a 架构中 不同服务之间的智能化管理。最容易想到的是这样一个h u b - s p o k e 结构, 在s o a 架构中的各服务之间设置一个类似于h u b ( 集线器,是对网络进行集 中管理的重要工具,象树的主干一样,它是各分支的汇集点) 的中间件,由 它充当整个s o a 架构的中央管理器的作用。下图2 - 4 是h u b - s p o k e 的结构 图。 图2 4h u b - s p o k e 服务整合剀 如图2 4 所示,现在服务的请求者和提供者之间有了一个智能的中转 站,服务的请求者不再需要了解服务提供者的细节,看上去也是一个好的 s o a 结构。但是实际上,传统的e a i 就是通过这样一种方式试图解决企业 内部的应用整合问题,是部件级的重用,但是,基于部件的架构没有统一 的标准,因此,各个厂商都有各自不同的e a i 解决方案,会碰到各种各样 的中间件平台。如果e a i 碰到了异构的i t 环境,就必须分别考虑怎样在 各个不同的中间件当中周旋,来实现合理的互联方式,不得不考虑各种复 杂的可能性。因此,大多数传统e a i 解决方案都比较笨重。 如果选择h u b 的模式来构建s o a 基础架构,从纯粹逻辑的角度,可 西南交通大学硕士研究生学位论文第1 2 燹 能会出现哪些问题呢? 首先,整个s o a 架构的性能,如果每个服务的请求 都经过中央h u b 的中转,那么h u b 的负担会很重,速度会隧着参与翥麓 增多而愈来愈慢;其次,这样的系统会很脆弱,一旦h u b 出错,整个s o a 架构都会瘫痪;最后,这样的架构会破坏s o a 的开放性原则,参与者运行 在一个相对封闭的环境中,扩展起来十分麻烦。因此,这也不是理想的s o a 架构。 因此,本文弓| 出了一个新的支持s o a 体系结构:企遂服务总线( e s b ) 。 它与前面的h u b 结构相比有什么不同呢? 首先,它比单一h u b 的形式更 开放,总线结构有无限扩展的可能;其次,真正体现了s o a 的理念,一切 皆为服务,服务在总线( b u s ) 中处于平等的地位。即使我们需要一些h u b , 那么它们也是以某种服务的形式分布式的部署在总线上,相吃上匿的结构 要灵活的多。这就是e s b ,本文需要给它一个明确的定义:e s b 是一种在 松散耦合的服务和应用之间标准的集成方式蚰。 下面图2 - 5 所示是企业服务总线的演变过程: 图2 - 5 企业服务总线的演变过程嘴引 2 5 2 企业服务总线的定义 企业服务总线定义乜町通常如下:它是由中间件技术实现并支持的面向 服务架构( 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 ) 的一组基础架构功能, 支持异构环境中的服务、消息以及基于事件的交互,并且具有适当的服务 级别的可管理性。e s b 是一种使得企渡应月其有被组织机构内外的其它应 西南交通大学硕士研究生学位论文第1 3 页 用重用能力的框架;是一种实现了通信、互连、转换、可移植性和安全性 标准接霉的企业基赭软件平螽;是一种能够在一个框架结构中实现统一并 连接服务、应用和资源的中间件模式。 2 。5 。3 企业服务总线的作用 既然e s b 会以中介的身份出现,它就必须有两方面的考虑。 首先,它必须了解被它中介的两个端点: 服务的请求者以及请求者对服务的要求。 服务的提供者和它所提供服务的描述。 其次,它必须具有某种机制能够完成中介的任务。 我们基于上面的两方面的考虑归纳了e s b 的两个基本的功能:面向服 务的元数据( m e t a d a t a ) 管理功能和中介( m e d i a t i o n ) 稳7 3 功能。作为s o b 的 重要构成部分,e s b 承担的重任还包括怎么将企业架构中已存在的业务服 务连接到总线上来,这种功能称为适配器( a d a p t e r ) 功能。尽管服务本身已 经用公开的接口来描述,但具体的实现还是运行在不同的环境中,因此, e s b 还应该提供对服务底层协议的支持,譬如应用协议j 2 e e ,n e t ,逶讯 协议如h t t p ,3 m s 等。 2 5 4 企业服务总线的核心原剃 服务交互的参与者并不直接交互,而是通过一个总线来交互。下图显 示了服务请求者、服务提供者和e s b 三者之阂的关系,e s b 作为一个逻辑 上的中介,为服务请求者和服务提供者提供了松散耦合的互联。e s b 作为 逻辑中闻层的角色允许截获消息,并在消息在服务请求者和服务提供者之 间流动时对消息进行处理,该处理过程称作为中介调停( m e d i a t i o n ) 。 髓2 - 6 服务的虚拟化( s e r v i c ev i r t u a li z a t i o n ) 为了支持各种类型的中介调停,e s b 需要满足两个重要的核心原则引: 服务的虚拟化( s e r v i c ev i r t u a l i z a t i o n ) 和面向方颟的互联 西南交通大学硕士研究生学位论文第1 4 页 ( a s p e c t e d o r i e n t e dc o n n e c t i v e t y ) 。 第一个原剩:服务的虚拟纯,是指e s b 在服务交互中对下面情形实现 的能力。 交互协议和交互方式。参与者不需要采用相同的通信协议或交互方 式。例如,表达为s o a p h t t p 的请求可能由j a v a 远程方法调用的提供者提 供服务。 接翻。服务的请求者和服务提供者之闻不必就公共接口达成协议。 e s b 可以通过将请求消息转换为提供所期望的格式来处理此类差异。 位置和标识。参与者不需要知道和其它参与者交互的真正位置和标 识( 比如,服务地址) 。真正的服务提供者的位置和标识只有e s b 知道,服 务提供者位置和标识的改变对服务请求者来说是没有影响的,e s b 为服务 请求者提供了服务的路由,同时也隐藏了服务提供者的真实位置和标识。 第二个原则:面向方面的互联。 在面向服务的解决方案中,包括了很多横向的方面,比如说安全、管 理、日志和审核等等。e s b 代表服务请求者和服务提供者,实现或执行了 这些横向功能。 2 5 5 企业服务总线的设计模式 用于构建基于e s b 的解决方案的模式分为以下几类矧: 交互模式:允许服务交互点将消息发送到总线或从总线接收消息。 中介模式:允许对消息交换进行操作。 复杂模式:交互模式和中介模式可以进行组合形成更为复杂的模式。 下面详细介绍这前两种e s b 设计模式。 1 交互模式 e s b 允许端点通过总线以其本机交互模式进行交互。它支持各种端点协 议和交互方式。交互模式的例子包括: 请求响应:处理端点间的请求响应方式的交互。此e s b 基予消 息传递模型,因此由两个相关的单向消息流对请求响应交互进行处理,一 个用于请求,一个用于响应。 请求多响应:上述类型的变傣,可以发送多个响应。 西南交通大学硕士研究生学位论文第1 5 页 事件传播:事件可以匿名分发到由e s b 管理的相关方列表。服务 可以将自身添加到该列表中。 r 蜘嘴s t ,m u n ;黜s 咖e v e m 呻喇i 加 图2 一z 交互模式 2 中介模式 中介模式处理总线上的动态消息( 请求或事件) 。由请求者发出的消息 会转换为稍微有些不兼容的提供者( 从潜在的端点集中选择) 能够理解的消 息。 这些中介操作单向消息而不是请求响应对,因为e s b 将交互模式放在 中介模式之上。中介模式有多种基本模式:更为复杂的模式可以通过组合 简单模式构建:其中包括协议变换、转换、补偿、路由、监视和关联。 鲁盆禽盆禽盆鲁 图2 - 8 中介模式 2 5 6 企业服务总线的内部机制 下图显示了e s b 内部结构中的细节。通过它能够明白e s b 是如何提供 服务的虚拟化( s e r v i c e v i r t u a li z a t i o n ) 和面向方面的互联 ( a s p e c t e d o r i e n t e dc o n n e c t i v i t y ) 。 图2 - 9e s b 的内部机制 西南交遂大学硕士研究生学位论文第1 6 页 通信协议( c o m m u n i c a t i o np r o t o c o l s ) 为了麓让服务请求者和服务提供者之阆正常的交互,e s b 妊须剩震通信 协议来连接它们。e s b 能平衡传输协议之间的差异,在请求者和提供者之 间支持不同质量的照务。事实上,e s b 本身不提供通信协议,丽是利用其 操作环境提供的一个或多个基础通信结构。可以说e s b 本身提供了接入点 和接出点或绑定,以支持各种协议进行交互。由于基础通信结构的特征, 通信协议本来就支持一种或多种交互模式,例如有同步、异步、请求响应、 单步和发布订阅模式。 消息模型( m e s s a g em o d e l s ) 为了在服务请求者和服务提供者之间通信,e s b 必须支持相关的消息模 型,这些消怠模型定义了在服务交互中定义的消息内容以及格式。为此, e s b 必须是与消息模型无关的,并提供配置灵活性以支持服务请求者和提 供者定义的消息模型。 这种消息模型是基于元数据模型的,元数据模型是一种描述消息内容 和格式的方法。x m l 就是这种元数据模型中的一个例子,一个e s b 产品必 须支持至少一种消息模型甚至更多豹消息。 中介流( m e d i a ti o nf l o w s ) 为了支持在服务请求者和服务提供者之闻服务的虚拟和面向方面的连 接,e s b 提供了中介流( m e d i a t i o nf l o w s ) 。这个中介流包括了接受请求、 处理请求、发送请求到服务提供者、接受响应信息、发送响应信息到请求 者的一系列过程。 中介流是如何实现服务虚拟化的? 首先,实现协议和交互方式的转换。实现这个功能暗示了在不露的通 信协议和交互方式之间的转换。如果e s b 同时拥有用于两个协议的接入点 和接出点或绑定,则该e s b 只能在这两种拇议孛的一种协议与另一种协议 之间转换。交互模式之间的转换可能本来就具有对入站或出站协议的支持, 或者可能需要附加的处理。例如,从使用s o a p h t t p 的入站单向请求到使 用基于队列的协议的出站单向请求的转换( 其中消息模型相同) 是固有的, 因为基于队列的协议本来就是单向的。相反,使用s o a p h t t p 的入站同步 请求应答,到使用基于队列的单向请求和单囱应答的出站异步请求应答 西南交通大学硕士研究生学位论文第1 7 页 之间的转换,将要求中介流支持基于队列的请求和应答之间的相关性。与 转换相关酶中介模式包括接入点和接出点以及相关性模式,不过由于相关 性是中介流的核心,在许多情况下,中介框架都隐含地包括了相关性模式。 其次,接墨。接日的虚拟化要求e s b 支持服务请求者和提供者定义的 消息模型之间的句法

温馨提示

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

评论

0/150

提交评论