(计算机应用技术专业论文)企业soa服务集成的研究与设计.pdf_第1页
(计算机应用技术专业论文)企业soa服务集成的研究与设计.pdf_第2页
(计算机应用技术专业论文)企业soa服务集成的研究与设计.pdf_第3页
(计算机应用技术专业论文)企业soa服务集成的研究与设计.pdf_第4页
(计算机应用技术专业论文)企业soa服务集成的研究与设计.pdf_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

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

文档简介

摘要 摘要 s o a ( 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 的主题词,它将彻底改变企业现有的 i t 架构。经过几十年的企业信息化建设,企业内已存在许多分散孤立的应用系 统,随着业务规模不断扩大,集成已经成为当今企业的迫切需求。本文首先分析 了传统企业集成方法和实现技术的不足,如复杂、成本高、而且难于维护的点对 点集成和与特定厂商紧密耦合的e a i 中间件集成方法。虽然s o a 不是新概念, 传统分布式通讯技术如c o r b a 、d c o m 和r m i 也可以实现s o a ,但由于它们 都存在着缺点,而不能完全体现出s o a 的精髓。w 曲s e r v i c e s 技术的出现和兴 起给s o a 注入新的内容,w 曲s e r v i c e s 是完全基于标准的分布式通讯技术,它 独立于操作平台和编程语言,它为异构环境下的分布式系统提供了互操作的平 台。 本文在介绍s o a 概念和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 的5 层企业i t 架构。浚架构的核心是运用s o a 的思想将企业现有的信息系统分解成多个独立 的粗粒度服务,并将这些服务用w s d l ( w e b 服务描述语言) 封装。这些服务 变成为新一代企业i t 系统的基本的标准“建材”,信息系统的交互都必先经过抽 象的服务层,从而隐藏了原信息系统的位置和实现技术。还利用b p e l ( 业务过 程执行语言) 对服务进行灵活的组装,形成不同的业务工作流,实现动态业务模 型,使企业i t 系统更加灵活。本文最后还提出了企业s o a 服务集成平台的详细 实现方案,包括消息路由器、服务组件、业务组件和服务管理功能等的详细设计 方案。其中还提出并实现了请求一回调模式的异步w e b 服务消息通讯机制。 关键词:面向服务架构:企业集成;企业架构;企业服务总线;w 曲服务;异步 消息通讯 广东工业大学工学硕:l 学位论文 a b s t r a c t s o a ( s e r v i c e - o “e n t e da r c h i t e c t u r e ) i st o d a yo n eo ft h em o s tp o p u l a rt o p i ci n c o m p u t e ri n d u s t r 弘b a s e do ns t a l l d a r d ,f l e x i b l e ,l o o s e l yc o u p l e da r es o 硝sk e y 、v o r d s , i tw i l lc o m p l e t e l yc h a t l g et h ee x i s t i n ge n t e r i s ei tf h m e w o r k a 丘e rs e v e r a ld e c a d e s o fe m e r p r i s ei n f o n n a t i o n i z a t i o nc o n s t m c t i o n ,e n t e r p r i s e sh a v eb e e ni ne x i s t e n c em a l l y s c a t t e r e di s 0 1 a t e da p p l i c a t i o n s w i t l lt h ee x p a n d i n gb u s i n e s ss c a l e ,i m e g m n o nh a s b e c o m et h eu r g e n tn e e d so ft o d a y s e n t e q ) r i s e s t h ep a p e rf i r s t a n a l y s e t h e d e f i c i e n c yo ft r a d i t i o n a lm e t h o d sa n dt e c h n o l o g i e so fe n t e r p “s ei m e g r a t i o ns u c ha s p o i n t - t o p o i n ti n t e g m t i o n ,i ti sc o m p l e x ,h i g hc o s t s ,d i 伍c u l tt op r e s e r v ea n dc l o s e i y c o u p l e dw i t hs p e c i f i cm a n u f a c t u r e r so fe a im i d d 【e w a r ei n t e g f a t i o n m e t h o d s a l t h o u g h s o ai s n o tan e wc o n c e p t ,t r a d i t i o n a ld i s t r i b u t e dc o m m u n i c a t i o n s t e c h n o l o g i e ss u c ha sc o r b a ,d c o m ,a n dr m ia l s oc a nb ea c h i e v e ds o a ,b u tt h e y h a v es h o r t c o m i n g s ,c a nn o tc o m p l e t e l yr c n e c tt h es o ae s s e n c e t h ee m e 喈e n c ea n d r i s eo fw e bs e r v i c e st e c h n o l o g y 岫e c tn e wc o n t e n t si n t os o a w 曲s e r v i c e si sb a s e d o ns t a n d a r dd i s t r i b u t e dc o m m u n i c a t i o n st e c h n o l o g 弘i ti si n d e p e n d e n tf r o mp l a t f o n l l a n dp r o g r a m m i n gl a n g u a g e ,i t p r o v i d e sp i a t f o r r r l f o r i n t e r o p e r a t i o n b e t w e e n d i s 扭i b u t e ds y s t e m si ni s o m e r o u se n v i r o n m e n t s t h ep a p e ri n t r o d u c et h es o ac o n c e p ta n dw e bs e r v i c e sr e l a t e dt e c h n o l o g i e s , f 0 j j o v e d ,g j v ead e 招j i e di n t m d u c t i o no f t h es e n ,j c e o r i e n t e da n a l y s i sa n dd e s 畦mo f a n e ws o f t w a r e e n g i n e e “n gm e t h o d o l o g i e s ,a n d i n t r o d l l c e st h es o am o d e l l i n g p r i n c i p l e sa n ds e r v i c e sm o d e l l i n gp r o c e s s t h e n ,d e s c r j b e st h ep a p e rg i v e nf i v e - t i e r e n t e r p r i s ei ta r c h i t e c t u r et h a tb a s e do ns o aa n dw e bs e r v i c e s t h ec o r eo ft h e a r c h i t e c t u r ei s u s i n g t h cs o ai d e o l o g i c a lt o d e c o m p o s ee x i s t i n ge n t e r p r i s e i n f o m l a t i o ns y s t e m si n t oan u m b e ro fi n d e p e n d e n tc o a r s eg r a n u l a r i t ys e r v i c e s ,a n d t h e s es e r v i c e su s i n gw s d l ( w 曲s e i c e sd e s c r i p t i o nl a n g u a g e ) p a c k a g i n g t h e s e s e r v i c e sh a v eb e c o m et h eb a s i cs t a n d a r d ”b u i l d i n gm a t e r i a l s ”o ft h en e wg e n e r a t i o no f e n t e r p “s ei ts y s t e m i n t e r o p e r a t i o n sb e t w e e ni n f o n n a t i o ns y s t e m sm u s tp a s st 址o u 曲 t h ea b s t r a c ts e r v i c e sl a y e bt h e r e b y ,c o n c e a l t h eo r i g i n a l l o c a t i o na n dt l l er e a n z a t i o n t e c h n i c a lo fi n f o m l a t i o ns y s t e m s a l s ou s e sb p e l ( b u s i n e s sp r o c e s se x e c u t i o n l a n g u a g e ) t on e x i b l ea s s e m bs e r v i c e s ,f o r t t l sd i v e r s i f l e db u s i n e s s w o r kn o w ,a n d a c h i e v ed y n 姗i cb u s i n e s sm o d e l s ,m a l ( ee n t e r p r i s ei ts y s t e m sm o r en e x i b l e t h e f i n a lo ft h i sp a p e ra l s og i v ead e t a i l e di m p l e m e n t a t i o ns c h e m ao fe n t e r p r i s es o a s e r v i c e si m e 掣a t i o np l a t f o n n ,i n c l u d i n gm e s s a g e sm u t e la n ds e i c ec o m p o n e n t s , b u s i n e s sc o m p o n e n t sa t l ds e i c em a n a g e m e n t f u n c t i o n s i ta l s op m p o s e da n d a c h i e v e da e q u e s t c a l l b a c km o d e lo fa s y n c h m n o u sm e s s a g e s c o m m u n j c a t i o n m e c h a n i s m k e y 、v o r d s :s o a ;e n t e r p r i s ei n t e g r a t i o n ;e n t e r p r i e s e a r c h i t e c f u r e ;e s b ;w e b s e r v i c e s ;a s y n c h m n o u sm e s s a g e sc o m m l m j c a t i o n i i i 辩章绪论 1 1 引言 第一章绪论 经过几十年的企业信息化建设后,当今相当一部分企业使用分散孤立的应用 系统来满足不同的业务需求,不同的系统问很难进行交互和共享数据。当企业的 业务规模不断扩大时,企业内部的i t 系统将会不断地增多,几十个甚至上百上 千个。光是维护这些系统都会花费不少的开支,而且某些新业务可能要求系统间 能交换信息。企业不可能放弃或替换这些系统,因为它们都代表了企业某些特定 业务的解决方案。变化是企业i t 部门永恒的话题,在大多数的企业中,i t 部门 缺乏灵活性使企业不能快速响应市场需求的变化。在2 1 | :i ;【纪,能否实时响应市 场需求,将是企业是否具有竞争力的表现。根据c i om a g a z i n e 在2 0 0 2 年的 对大企业c i o 的调查,在这些主管企业信息化人士所关心的问题中,如何将众 多的企业应用系统集成起来,是他们最为关注的热点。 1 2 传统企业集成的方法和技术 1 2 1 点对点集成 根据m e t ag m u d 的统计,经过相当一个时期不断的i t 系统建设,一家典 型的大型企业平均拥有4 9 个应用系统,3 3 的i t 预算足花在传统的集成上,通 过零星的“点对点”连接,使众多的“信息孤岛”联系起来,以便让不同的系统 之间交换信息。这使得企业的应用系统看起来像一张复杂的蛛网。孤立的信息系 统无法有效地提供跨部门、跨系统的综合性的信息。孤立的信息系统电无法实现 实时的信息存取和对业务流程的透视,无法实现对客户、供应商、项目、订单、 资产等的全面掌控,无法实现企业价值链的全面的、彻底的透视和控制。 在点对点的集成方法学中,每个企业信息系统( e n t e r d r i s ei n f o h i l a t i o n s y s t e m ,e i s ) 都紧密地与其它e i s 通过它们的点对点连接在一起,它的优点是 容易理解并且当只有少量系统需要集成时可以快速实现。但如果一个e i s 发生改 变就会打破与它有关的应用集成;另一个缺点是每个e l s 都要求有足够多的整合 广东工业大学_ t 学硕二卜学位论文 点来支持更多的系统集成,如果有5 个互相集成的e i s ,就需要l o 个不同的整 合点,如图l l 所示。因此,这种方法很难集成大量的应用系统,且集成的系统 越多维护就越困难。 1 2 2 消息中间件 图1 1 点对点集成 f i g u r e1 一lp o i n 卜t o p o i n ti n t e g r a t i o n 由于点对点的集成方法很复杂、成本高、而且难于维护,于是引入了另外一 种集成方法,称为e a i ( e n t e r p r i s e a p p l i c a t i o n i n t e g m t i o n ,企业应用集成) 。它基 于消息总线代理或者中问件。在这种情况下,e i s 和消息中间件之问的连通性是 用私有总线a p i 和应用程序a p i 来实现的,见图1 2 。 图1 2 基于消息中间件的集成 f i g u r el 2m e s s a g em i d d l e w a r ci n t e g r a t i o n 消息中间件和应用程序之间的紧密耦合使所有的应用程序都需要了解与其 集成的其他应用程序的内部工作方式。系统之问的集成都是粒状的,并且通过消 第章绪论 息类型紧密耦合。传统e a i 实现中所使用的业务流程管理工具是私有的,这阻 碍了最优产品的应用。1 。 1 2 3c o r b a 、d c o m 、r m i c o r b a 、d c o m 和r m i 是传统企业集成中常用的分布式通讯技术,它们在 早期的e a i 中发挥过积极的作用。 1 c o r b a 分布式对象技术 c o r b a ( c o m m o n0 b i e c tr e q u e s tb r o k e ra r c h i t e c t u r e ,公用对象请求代理体 系结构) ,是o m g ( 0 b j e c t m a n a g e m e n t g r o u p ,对象管理组织) 为了增强异构软 硬件系统的协同工作能力而提出的方案和相关的标准规范。c o r b a 允许应用程 序和其它的应用程序通讯,而不论它们在什么地方、什么环境或用什么编程语言 实现。c o r b a1 1 由o m g 在1 9 9 1 年发布,定义了接口定义语言( i d l ) 和应 用编程接口( a p i ) 。i d l 是中立于任何语言的,c o i u ;a 通过i d l 来实现与编程 语言的无关性。i d l 有助于描述服务而无需深入到具体实现细节。用这种方法可 以将实现( i m p l e m e n t a t i o n ) 与接口( i n t e r f a c e ) 相分离。c o r b a 服务器必须实 现i d l 接口,而c o r b a 客户使用此接口“1 。c 0 r b a2 0 于1 9 9 4 年的1 2 月 发布,定义了如何跨越不同的o r b 提供者而进行通讯。 c o r b a 为实现分布式对象的透明远程通讯使用了代理的概念。c o r b a 会 产生两个代理,一个是客户程序的代理称为s t u b ,另一个是服务程序的代理称为 s k e l e t o n 。s t u b 是以客户程序使用的程序语言的方式执行,它通过提供与服务程 序对象相同的界面来模拟服务程序对象,但它不能实现本地操作。s k e l e t o n 是一 个以服务程序对象的程序语言方式执行的本地对象,在服务程序处理中对它进行 配置。s t u b 与s k e l e t o n 之间的通讯是使用i i o p ( i n t e m e ti n t e ro r bp r o t o c 0 1 ) 阱议。 o i 也是c o r b a 的请求代理中间件,它能在对象问建立客户服务器模型。 客户s t u b 将需要调用的方法和参数串行化并输送给o r b ,o r b 截获这个请求 后使用i o r ( i n t e r o p e r a b l e0 b j e c tr e f e r c n c e ,可互操作对象引用) 找到合适的服务 器对象通过i i o p 传送给另一个与服务器相关联的o r b 。服务器的o r b 负责激 活s k e l e t o n 或使用对象配置器调用服务对象的方法,最后将结果返回给客户。这 样客户就不用知道对象在哪里,是用什么语言实现的,它的操作系统以及其它与 广东工业大学工学硕士学位论文 o r b 接口无关的东西。 i d l ( i n f e r f a c ed e f i n i t i o nl a n g u a g e ,接口定义语言) 是c o r b a 描述服务对象 接口的设计语言,它包含了服务对象接口的所有信息包括方法名、参数类型、返 回值类型等。可以使用i d l 来产生与客户程序和服务程序的设计语言相对应的 s t u b 和s k e l e t o n 。i d l 可以映射成多对程序语言如c 、c + + 、j a v a 、s m a l l t a l k 等程 序设计语言。 图1 3c o r b a : 作原理 f i 豇l r el - 3c o r b aw o r kp r i n c i p l e 2 d c o m 分布式组件技术 m i c r o s o f i 的d c o m ( d i s t r i b u t e dc o m p o n e n to b j e c tm o d e i ,分布式组件对象 模型) 扩展了组件对象模型技术( c o m ) ,使其能够支持在局域网、广域网甚至 i n t e m e t 上不同训算机的对象之间的通讯。d c o m 的工作原理与c o r b a 十分相 似,也使用了s t u b 和s k e l e t o n 代理机制,使得客户程序并不知道它正同一个远 程的对象进行通讯。代理之间的通讯使用了r p c ( r e m o 【ep r o c e s sc a l i e d ,远程过 程调用) 的d c o m 协议。服务刘。象接口使用m s i d l 进行描述,服务对象必须实 现其接口。d c 0 m 与c o r b a 的最大区别是d c o m 只能基于m i c m s o f tw i n d o w s 平台,是w i n d o w s w i n d o w s 方式的集成方案,c o 砌j a 是由中立组织o m g 制定 具有独立于操作平台的特性。 第章绪论 s t u b 图1 - 4 d c o m : 作原理 f i g u r el - 4d c o m 、v o r kp r i n c i p l e 3 砌i 远程调用 r m i ( r e m o t em e t h o di n v o c a t i o n ,远程方法调用) 是j a v a 版的r p c 。r m i 是j a v a - j a v a 的集成方案,客户程序与服务程序都必须使用j a v a 语言编写。r m i 的也是使用s t u b 和s k e i e t o n 的代理方式,但就没有像c o r b a 和d c o m 那样有 i d l ,r m i 是使用j a v a 语言中的i n t e r f a c e 作为接口,服务程序必须实现这个接口。 服务器程序负责创建服务对象并将对象存放在j n d i ( j a v an a m i n ga n dd i r e c t o r y i n t e r f a c e ,j a v a 命名和目录接口) 中,一个服务对象与一个名字关联。客户程序必 须知道服务器的地址和对象的名字,通过n a m i n g 1 0 0 k u p ( ) 方法查找服务对象。 得到服务对象就可以使用对象方法,就像本地调用一样。r m i 隐藏了远程凋用 的细节,它是使用j r m p f j a v ar e m o t em e t l l o d sp m t o c o l ,j a v a 远程方法协议) 进行 通讯。 习 器 几j 年 j r m p )重( 卜| = , 图1 5r m l 工作原理 f i g u r el 一5r m lw o r kp r i n c | p i e 1 2 4 传统企业集成技术的局限性分析 1 c 0 r b a 和d c o m 都依赖于单一厂商的实现 尽管c o 飧和d c o m 已经在各种平台上得到了实现,然而实际情况是 建立在这些协议之上的任何解决方案都依赖于单一厂商的实现。因此,如果要开 发一个d c o m 应用程序,分布式应用程序中所有参与的节点都必须以 广东工业大学工学碳士学位论文 w i n d o w s 风格运行。c o r b a 虽然由中立组织o m g 提出并制定了一套标准和规 范,但在实际应用中,不同厂商的实现的标准并没有统一。如果要开发c o r b a 应用程序,应用程序环境中的每个节点都要运行同一厂商生产的o r b 产品。虽 然现在也有来自不同厂商的c o r b ao r b 能够相互操作。但是那种互操作性并 不能扩展到像安全与事务管理那样的更高级别的服务中去。不仅如此,所有特定 于厂商的优化在这种情况下将丢失殆尽“1 。 2 c o r b a 、d c o m 和r m l 存在着紧耦合 c o r b a 、d c o m 和r m i 在服务请求者( 客户端) 都需要一个s t u b 文件或 是配置文件,也可以是共享库。在服务提供者( 服务器端) 需要接口声明文件或 服务器端的配置文件。这就是蜕,服务器端和某个客户端的类型是唯一匹配的, 进一步说只有拥有服务提供者的s t u b 文件的客户才能与相应的服务提供者进行 通讯。只要服务提供者的接口声明有所凋整,所有客户都必须升级到新的s t u b 。 因此,如果服务提供者对接口做出的任何修改都将使之前做的全部步骤作废,而 且需要重编译、重新生成所有s t u b 和s k e l e t o n ,并向所有已知的服务请求者重新 进行分发”1 。 3 d c o m 和脚i 与平台绑定 d c 0 m 是由m i c r o s o r 提出并实现,是与w i n d o w s 平台紧密结合,它是更适 合w i n d o w s w i n d o w s 的企业内部集成。d c o m 目前为止还不适用于非w i n d o w s 平台。r m i 运行在j v m 之上,j v m 屏蔽了底层操作系统的细节使r m i 能在各 种主流操作系统中运行。但换句话说,r m i 也只能在j a v a 平台中: 作,客户端 与服务器端都必须使用j a v a 语言,它在j a v a _ j a v a 的集成模式中r m i 表现得非常 好,但不能实现j a v a 非j a v a 的集成。 4 c o r b a 、d c o m 和r m i 之间的互操作难 c o r b a 使用1 1 0 p ,d c o m 使用o r p c ,r m i 使用j r m p 。c o r b a 对象不 能与r m i 或d c o m 直接进行通讯;r m i 则不能与d c o m 和c o r b a 实现会话; d c o m 也无法与r m i 或c 0 r b a 直接交互。如果确实需要它们进行交互则需要 另外的协议,如r m i i i o p 或c o r b a d c o m 桥。 笫章绪论 1 3 本课题的主要研究工作 经过几十年的企业信息化建设,企业内己存在许多分散孤立的应用系统,随 着业务规模不断扩大,企业i t 架构环境中单个应用程序无法包容业务的各种需 求,即使是一个大型的e r p 解决方案,仍然不能满足不断膨胀的需求。对市场 快速做出反应,商业用户只能通过不断开发新应用系统、扩展现有应用程序来艰 难地支撑其现有的业务需求。企业信息系统的重用和集成已经成为当今企业的迫 切要求。传统的e a i 解决方法包括点对点集成和基于中间件的集成方法,它们 都是面向接口的集成方式,对各个应用系统的接口进行基于某些特定标准的处 理,从而达到系统整合的目的。随着需要集成的的系统不断增多,系统的接口呈 指数增长,这种情况下不但维护存在很大的难度,而且当一个应用系统的接口发 生改变时,连接到该系统的其它应用都要跟随改变。传统的e a i 都使用了诸如 c o r b a 、d c o m 、r m i 等的分布式程序通讯技术,这些技术都缺少完全开放的 标准,它们的实现都与特定厂商的私有技术紧密绑定。 s o a ( s e r v i c e o r i e n t e d a r c h i t e c f u r e ,面向服务架构) 是一种组件模型思想, 但它更强调的是松散耦合和中立的接口定义。从s o a 的观点出发,企业内的各 种信息系统应该是为企业内外的用户提供全方位的信息服务,按照“软件就是服 务”的观点看,企业内的信息系统与信息系统之间也应该走向一种互为服务的关 系。服务是从业务流程的视角来看待技术的,这种视角同一般的由可用技术所驱 动的商业视角是相反的。服务的优势是它会同业务流程结合在一起,能够更加精 确地表示业务模型,更好地支持业务流程。按照s o a 的思想,企业的i t 系统应 该是由各种各样的服务组成,服务的重用能力比以往任何组件都要强,因为它是 直接反映业务而不是技术。需要开发新的应用时,则可以先考虑重用现有的服务, 这样可以大大缩短开发周期和降低成本,使企业i t 系统更加灵活“随需而变”。 s o a 的一个中心思想就是让企业彻底摆脱而向技术的解决方案的束缚,轻松应 对企业商业服务变化、发展的需要。 虽然s o a 不是新概念,但w 曲s e r v i c e s 技术的出现和兴起给s o a 注入新的 血液。w e bs e r v i c e s 是完全基于标准的分布式通讯技术,它使用x m l 技术作为 基础,使它独立于操作平台和编程语言,是真正意义的中立技术。使用w 曲 s e r v i c e s 技术可以使企业内异构环境下的信息系统能相互操作。但w e bs e i c e s 广东工业大学工学坝二l 学位论文 不等同于s o a ,w 曲s e i c e s 可实现异构环境下分布式程序的交互,但要构造灵 活的企业i t 架构则需要s o a 的以服务为中心的架构思想。 s o a 和w e bs e r v i c e s 技术是本文主要的研究对象,运用s o a 思想设计出灵 活的基于标准的以业务服务为中心的企业i t 架构( s e i c e s c e n t r i ce n t e r d r i s e a r c h i t e c t u r e ,s c e a ) 和设计基于s c e a 下的企业服务集成平台是本文的研究目 标。本文提出的s c e a 是完全基于工业标准( 如:x m l 、s c h e m a 、w s d l 、s o a p 、 w s b p e l 等) 的企业i t 架构,s c e a 利用s o a 的服务建模思想,将企业内的 信息系统分解成不同的服务和业务过程,形成抽象的服务层和业务层。服务层屏 蔽了提供服务的应用系统的实现技术和位置,应用系统的交互不再直接使用接 口,而是通过抽象的服务层间接实现,这样当一个应用系统的接口发生改变时, 使用该系统提供的服务的其它系统不需要做任何改变,从而增加企业i t 系统的 灵活性。服务是使用w s d l 进行描述,从而电增加了服务的重用能力,当丌发 新应用系统时可以更多地考虑使用已有的服务。在业务层中,可以通过w s b p e l 浯言将服务进行灵活的组装和编排,实现、i k 务流程自动化。在s c e a 的基础上设 计企业服务集成的中间件平台,该平台能方便企业轻松实现s c e a ,具体的工作 包括:服务接口定义,服务部署、s o a p 消息路由器,服务生命周期管理等。 1 4 论文内容安排 第一章:分析传统企业集成方法和技术的不足,提出基于s o a 的企业集成 方案。 第二章:介绍s o a 的概念及相关实现技术,如w e bs e r v i c e s 、业务过程执 行语言、企业服务总线等;比较w e bs e r v i c e s 技术与传统分布式通讯技术,分析 w e bs e r v i c e s 的优点。 第三章:介绍面向服务分析与设计的软件工程方法学,包括s o a 建模原则 和服务建模过程。 第四章:提出基于s o a 的企业集成参考架构,并从实际项目的集成案例中 说明该架构的优点和开发步骤。 第五章:提出企业s 0 a 服务集成平台的详细设计方案,包括消息路由器、 服务访问技术、动态业务模型等。 第二章面向服务架构( s 0 a 1 技术概要 第二章面向服务架构( s o a ) 技术概要 2 1s o a 思想理论 随着信息技术的发展,特别在计算机网络和i n t e m e t 的时代出现了大量基于 网络的大型分布式应用系统。随着公司业务的不断发展,对资源、数据的集中, 决策支持统一的要求越来越急迫,需要将现有的多个应用系统进行集成和整合; 另一方面随着业务的快速变化,企业要应对竞争的新要求,需要不断更新业务流 程和应用模式,建设新的应用系统,从技术上要求新的应用系统能快速搭建并实 旋,需要能够做到“随需应变”,由此面向服务的架构( s o a ) 应运而生。 2 1 1s o a 的概念 s o a ( s e r v i c e 0 r i e n t e d a r c h i t e c t u r e ,面向服务的体系结构) 不是一个新的概 念,早在1 9 9 6 年,美国知名l t 市场调研顾问公司g a n n e r 最早提出s 0 a 的预言, 2 0 0 2 年1 2 月,g a r t n e r 又提出了s o a 是“现代应用开发领域最重要的课题”,并 预计到2 0 0 8 年,s o a 将成为占有绝对优势的软件工程实践方法,它将结束传统 的整体软件体系架构长达4 0 年的统治地位,主流企业现在就应该在理解和应用 s o a 开发技能方面进行投资。可见s o a 将给软件工业带来革命性的变化,s o a 到目前为止没有一个明确的官方定义,综合各方面的资料,本文给出的s o a 定 义如下: 1 s o a 是组件系统模型 s o a 软件系统是由不同的功能单元( 称为服务) 组装而成。服务之问是靠 定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独 立于实现服务的硬件平台、操作系统、中间件容器和编程语言。这使得构建在这 样的系统中的各种服务以统一和通用的方式进行交互。 2 s 0 a 是c i i e n t ,s e r v e r 模型的扩展 s o a 应用包含有服务的提供者( 服务器端) 和服务使用者( 客户端) 。s o a 又不同于通常的c s 模型,它更强调的是软件组件之间的松散耦合和使用分散的 9 广东工业大学工学坝十学位论文 标准接口。 3 s o a 是一种软件设计方法学 s o a 的目的是最大限度地重用现有的服务以提高i t 的适应性和效率。s o a 要求开发人员在开发新的功能服务时要首先考虑重用现在的服务,并要考虑到新 的服务也有可能在以后被重用,所以要用中立的标准来定义服务接口。面向服务 的分析与设计是面向对象技术的扩展和补充,它是在更大范围内对软件系统的建 模方法。 4 s o a 是概念模式,需要具体的实现技术 前面也况过s o a 不是新概念,已经存在了数年,但只是在出现了基于标准 的集成技术( 如w 曲s e i c e s ) 之后,s 0 a 才开始被加速采用。在w 曲s e r v i c e s 技术出现之前,s o a 是用c o r b a 或d c o m 技术来实现,由于c o r b a 和d c o m 存在着许多的不足,所以s o a 的思想一直没有被广泛采用。 2 1 2s o a 编程模型 s 0 a 编程模型如图2 1 所示,s o a 的一个重要思想就是尽量重用现有的服 务,客户程序使用了服务3 提供的服务,而服务3 重用了服务1 和服务2 提供的 服务。服务的对外接口都使用了开放的标准来定义如i d l 或w s d l 。 2 1 2 1s o a 的组成元素 图2 1s o a 编棵模型 f i g u r e2 一ls o ap r o g r a m m i n gm o d e 如图2 2 所示,s o a 模型包含以下组成元素: 1 服务( s e r v i c e ) 服务是粗粒度的处理单元,通过传送基于消息的值对象来使用服务。它与面 第二章面向服务架构( s o a ) 技术概要 向对象编程语言术语中的对象不同,相反,它可能更接近于业务事务的概念而非 远程c o r b a 对象的概念。服务又不同于软件组件,服务可以由一些组件组成 的,这些组件一起工作,共同提供服务所要求的业务功能。 服务 型吲 ? = 一 消费者 西务 准翮冈 匕 图2 2s o a 组成元素 f i g u r e2 - 2s o ai n g r e d j e n t s 因此,相比之下,组件比服务的粒度更细。另外,虽然服务映射到业务功能, 但是组件通常映射到业务实现体操作规则。服务是可以在没有外部行为的作用下 自主运行的,并能完成一套业务功能。图2 3 说明了服务组件对象的关系。 服务接口 服各 f 图2 3 服务、组件、对蒙的关系 f i g u r e2 - 3s e r v i c ec o m p o n e n ta n do b j e c tr e l a t i o n s h i p 服务拥有自己的状态,但它的状态非常简单只有两种:s t o p p e d ( 停止服务) 、 r u n n i n g ( 运行) 。它不像面向对象中的对象可以有多种状态,不同的状态影响着 对象的操作。服务应该有很强的并发处理能力,可以响应多个客j 。程序的同时使 用。服务没有实例化的概念,不像面向对象中的对象需要实例化后才能使用( 因 为需要初始化对象的状态) ,服务应该是一个静态的概念,只要它存在随时可以 使用。 2 服务提供者( s e r v i c ep m v i d e r ) 服务必须由至少一个服务提供者实现,服务提供者是实现服务内部复杂的业 广东工业大学工学顾士学位论文 务逻辑或业务流程的软件实体。服务提供者同样可以使用其它服务来实现业务流 程。服务与服务提供者是多对多的关系,一个服务可以由多个不同服务提供者实 现,但在某一时刻一个服务只有一个服务提供者,服务的提供者可以根据不同的 需求更换;一个服务提供者也可以提供多个服务接口。 3 服务描述( s e r v i c ed e s c r i p t i o n ) 在s o a 中的服务是外部使用者使用服务的接口,且要用开放的标准工具所 描述。用于描述服务是什么、应该如何调用服务阻及成功地调用服务需要什么数 据。有了接口描述和服务的封装性,服务的使用者就可以简单地把服务理解为一 个逻辑实体,是一个或多个已发布接口定义的契约,并不需要关心服务内部的细 节。接口契约应该独立于操作平台和编程语言,以至于所有想使用服务的消费者 都能懂。如w s d l 、i d l 等。 4 消息协议( m e s s a 2 ep r o t o c o i ) 消息是服务与外部使用服务的消费者共同遵守的通讯信息格式,服务消费者 使用消息来请求服务,服务也用同样的消息格式作为返回内容。它也应该独立于 操作平台和编程语言。如s o a p 、x m l 等。 5 传输协议( t r a n s p o r tp r o t o c 0 1 ) 在s o a 中服务与服务问的通讯应该遵守相同的传输协议,传输协议是在服 务消费者与服务问传输消息的机制。通讯协议也应该独立于操作平台和编程语 言。如h t t p 、s m t p 、j m s 等。 2 1 _ 2 2s o a 的角色 s o a 有三个角色,服务使用者通过查询服务注册中心来查找需要的服务。 如果服务存在,注册中心就给使用者提供服务接口的描述文档和服务的端点地 址。 1 服务消费者( s e r v i c ec o n s u m e r ) 服务消费者是一个应用程序、一个软件模块或s o a 系统中的一个服务。它 发起对注册中心中的服务查询,通过传输绑定服务,并且执行服务功能。服务消 费者根据接口描述文档来使用服务。 2 服务提供者( s e r v i c ep r o v i d e r ) 服务提供者是实现服务接口的一个软件实体并可通过网络寻址来查找陔实 第二章面向服务架构( s o a 做术概要 体,它接受和执行来自使用者的请求。它将自己的服务和接口契约发布到服务注 册中心,以便服务使用者可以发现和访问该服务。 3 服务注册中心( s e r v j c er e g i s t r y ) 服务注册中心是服务发现的支持者。它包含一个可用服务的存储库,并允许 感兴趣的服务消费者查找服务并提供接口。 2 1 3s o a 与面向对象的关系 1 s o a 中的服务需要用面向对象技术实现 s o a 的基本组成元素是服务,服务的实现是需要用到面向对象分析( 0 0 a ) 和面向对象编程( o o p ) 技术。s o a 思想并没有细到代码设计,它注重是企业 i t 系统架构的全盘考虑,和对变化着的需求灵活快速响应,因此在实现一个具 体的服务时,还是应该使用面向对象技术。 2 s o a 是面向对象的替代模型 虽然s o a 不是一个新鲜事物,但它却是更传统的而向对象的模型的替代模 型,面向对象的模型是紧耦合的,已经存在二十多年了。虽然基于s 0 a 的系统 并不排除使用面向对象的设计来构建单个服务,但是其整体设计却是面向服务 的。由于它考虑到了系统内的对象,所以虽然s o a 是基于对象的,但是作为一 个整体,它却不是面向对象的。不同之处在于边界,对象的边界是紧耦合的 a p i ,而服务的边界是基于工业标准的松散耦合的契约描述。 3 s o a 是面向对象的进一步封装 面向对象的中心思想是数据和操作的封装,而s o a 的思想则是任务或业务 功能的封装,一个服务可能包含了能实现服务功能的多个对象。所以s o a 适合 规模更大的系统建设,特别是企业级的i t 系统建设。 4 o o a d 是s o a d 的重要组成 s 0 a d ( s e r v i c e o r i e n t e da n a l y s i sa n dd e s j g n ,面向服务的分析与设计) 是 o o a d ( o b j e c t 0 r i e n t e d a n a l y s i sa n d

温馨提示

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

评论

0/150

提交评论