(计算机软件与理论专业论文)基于soa的教学实验服务平台原型的研究.pdf_第1页
(计算机软件与理论专业论文)基于soa的教学实验服务平台原型的研究.pdf_第2页
(计算机软件与理论专业论文)基于soa的教学实验服务平台原型的研究.pdf_第3页
(计算机软件与理论专业论文)基于soa的教学实验服务平台原型的研究.pdf_第4页
(计算机软件与理论专业论文)基于soa的教学实验服务平台原型的研究.pdf_第5页
已阅读5页,还剩86页未读 继续免费阅读

(计算机软件与理论专业论文)基于soa的教学实验服务平台原型的研究.pdf.pdf 免费下载

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

文档简介

摘要 摘要 软件体系结构虽然开始于软件设计的早期,但它却贯穿于软件设计、开发和 维护的全过程,对整个软件的生命周期起着至关重要的地位。随着软件体系结构 的不断变迁,新一代架构面向服务架构( s 0 a ) 孕育而生。由于它具有良好的 松耦合、与平台无关等特性,很好的解决了系统各部分的互操作性和应变能力, 在分布式系统开发、企业应用集成等方面具有广泛的应用潜力。s o a 目前已成为 研究热点领域之一,在未来的软件开发世界里,它将成为软件体系结构领域的统 领者。 本文首先从软件体系结构角度出发,比较系统地阐述了s o a 的理论知识,分 析了s o a 的概念、模型和s o a 中各个角色的职责功能,并归纳、讨论了s o a 的特 点、实现技术的发展现状和未来的发展前景。然后,比较深入研究了s o a 在 i n t e r n e t 环境下的实现技术w e bs e r v i c e s ,对其中所用到的) ( m l ,s o a p ,w s d l 和u d d i 重要元素、关键协议和规范进行了系统的介绍。 本文通过教学实验服务的问题,尝试运用s o a 的架构原理和w e bs e r v i c e s 技术,设计并部分实现了一个基于s o a 的教学实验服务平台框架的原型,并创建 了“n a c h o s 操作系统实验”服务。同时在原型系统的设计中,讨论了基于s 0 a 轻量级应用中的一些具体技术。原型中利用w c 模式设计并实现了一个w e b 服务 调用框架,解决服务与服务请求之间的联系,另外还可以方便、快捷地支持新服 务加入系统。原型系统验证了s o a 的思想,可以很好的实现资源综合利用和服务 共享,以及由于软件部件的粗粒度松散耦合,提高了系统组织的扩展和应变能力。 通过这个教学实验服务平台的原型为s o a 提供了实践积累,为进一步推广 s o a 的应用起了一定的作用。 关键词:s o a ;w e bs e r v i c e s ;软件体系结构;教学实验服务;a x i s a b 啦 鼍蝣 a b s t r a c t s o 细a r e 删t e c t l 】r ec o m e so u ta tt h ee a r l yp h a s eo f s o f t w 飘r cd e s i g n y 乱i tp l a y s av i t 雒f o l oi i lt h o 、v h o l el i f ec y c l eo fs o f a r e ,讽t l l ed e s g n ,d 州娃o p m 蹴ta n d m a i 嫩鞠矗n c 魏i th a s 嬲瑚鼬酿翔o f ea n dm o r cp e o p l e sa 挝曲矗o n 。w i 也f h ee v o l u n o no f s o f w a r ea 把i l i t c c t u r ei to m e r g e san e wa 砖h i t e c t u 化一s o a ( s e i c e0 i i e n t 酣 恕搬t 哦l 嘞。s o a 魏a ss o 璐e 镬s 蠡瞧矗戳删s 量i c s ,辨矗a s 瘿或f o 烈虹臻l 渊托 l o o s ec o u p l i n 岛i n t e 舻a t i l l gs y s 蛔 no nd 锄a n d ,e t c ns h o w st h ep o s s i b i l i t yt o8 0 l v e 彘e 辨西l 搽l so f 鑫溅两i l 玲鞠di 珏耋嚣嘲i l 秘o fs o 鼗w 拄溉& 主t 殛s 娃l e 旗d e 辫龆d a p p l i c 撕o np o t e m i a li d i g m b u t e ds y g t e m sa n d 饥t 髓p r i s ea p p l i c a t i o ni n t e 封a :c i m l n o w s o ah a sb e c o m eah o t s p o to f r e s e a f c h mf l l t u 瓣d e v o p m e n t s ,艟m 奄洲t yo f s o f 嘛a r c 列灏钯嗽h ew ma d o p ts o 丸 豇l i sd i s s 毗a t i o n 丘r s t l y ,舶mm ea n g l oo fs o 脚a r ea r c h i t e c n m ,i n t r o d u dm e c o n 唧疽o n 奠s o a ,粕a l 疆礤垃接热o d do fs o 气d 。s 蕊b e d 最拉r e s p o 艄两i l i l i 鹉a n d 矗m c 6 0 n so fd i v o r s em l e si n s o a ,d i s c u s s e dm e 仃a i t 8 ,a i l d e x a m i n e dm e i 黼p l o m 鼹镪主i t e e 艇o l o 蓼然曩sw 畦1 珏垂g a v e 氇v 主s 氇o f 噩堵蠡斑勰o fs o a 。 s c c o n d l y ,i td i s c u 8 8 e di nd 比i i lt h ei 1 冲1 锄僦a t i o n 协c h n 0 1 0 9 yo fs o ao n 脚e m e t 黝v i r o 蚴鞠t 1 ti n 蝴曲e 甜龇m 粕e l e n t s 遗w 两s e r v i e qi t sl 【e yp f o t o 耐s 黢d s p o c i 丘c a t i o n s ,i n d u d i n gx m ks o a p ,w s d ku d d i ,e t c t h ed i 8 s e n a t i o n 面s og a v em ep r 枷c a le x p c i i e n c eo fs o a i nt h ep m c t i c e0 na s o a _ b a 3 e dp t o t ”e 翠s t s e 科醴壬曲啦e 妪p 商删妇lc r s e so fs o 两a 岛也e a u 也o ra p p l i c dm ep r i n d p l e so fs o aa n d 也et e d m l o g yo fw e bs e r v i c e st oas c i v i c e p l 蠊恤黼d 越嘲d 鑫融貔s 峨c e s 黩蕊8 幽s 蟛删n g 潞 m e x p e r i m e n r n 啪u 跏t h i sp l g 响珊l h es t u d e n t sc o u l dd oo se x p 蒯m e n t so na i l y c o 黼p 轻t 嚣衲ic ! h e e t e dt oc 锄p 獬l o e 蠢n 娃w o 呔转y 畦蠡n gm v cd 锵 g 珏p 骥e 氆s , t l l ea u m o r 汹1 p l e m e n t e das 蜘c t u f ei nt 量l ep l a t f b mf o rs e r v i c ci n v o 幻血ga i l df o ra d d i n g 心n e ws 洲c et o 雠哪t 僦强ep r o t o 脚es 蹦蝴v a i i d a t e df e a s i b i l i t yo fs o a , i 韭t e 铲a 硅o no fd i v 斟s ef c s o ,趿ds 嚣v i c es h a r 主n 晷a n da st h el o o s ec o u p l i n 嚣删h m 北京工业大学工学硕士学位论文 r o u 曲黟a n l l l a r i t yo fr e s o u r c 皓i ns o a ,i tr a i s e dl h ee x p a 璐i b i l i t y a 1 1 da b n i t yo f “c h a n g i n go nd e m a l l d o f 血es y s t e m t h r o u 曲吐呛p r o t o t y p es y s t 钮1 ,i ta c c i 】m u l 舢e ds o m ep r a c t i c a le x p e i i e n c eo fs o a w m c hm a yb es h 删b ya t h e rp m c t i t i o n 瓯a n dt 1 1 i sw i l lp r o m o t e l ef h n l l e r 印p l i c a t i o no fs o a k e y w o r d ss o a ;w 曲s 髓v i c e s ;s o 脚a r ea _ r 6 l l i t e c t i ;t e a d h i n ge x p e r i m e n ts e r v i c 鼯; a x i s i v 独创性声明 本人声明辑鏊交酶论文是我个天在静筛指器下遴孬翡研究工俸及取得懿研 究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他 人已经发表或撰筲过盼研究成果,也不包含为获褥北京工泣大学戏其它教育机构 熟学位或证书蔼使用过的材料。与我一恩工终的同志对本研究所做的任俺贡献均 已在论文中作了明确的说明并表示了谢意。 簸名:拙t 嚣嬲:j 窭幽 关于论文使用授权的说明 本人完全7 解耜京王遂大学青关缣藩、经螽l 学位论文弱囊意,帮:学校有权 保留送交论文的复印件,允许论文被查阅和借阆:学校可以公布论文的全部或部 分内容,可以采精影印、缩印戚其他复涮手段保存论文。 ( 保密的论文在解密后癍遵守此规定) 签名:一二煮& 址导筛签名:三群垫耻目鬻:蛰哩乏_ 生 第1 章绪论 1 1 课题研究背景 1 1 1 课题研究背景 第1 章绪论 随着软件开发方法的发展和分布式技术应用的深入,基于多种开发平台和工 具的商业系统得到大量应用,使得企业中的软件系统变得日益庞大和复杂。由于 传统的软件开发使用的平台、开发工具、操作系统在结构上的紧耦合,以致这些 位置上分散的独立系统逐渐形成了所谓的“信息孤岛”。与此同时,企业需要对 新的业务需求进行快速的反应,需要不断地减少业务中工t 的成本,以及吸收、 集成新的业务伙伴和新的客户群。所以异构性、复杂性、更快地响应业务变化, 成为了阻碍软件发展的主要困难。 自从上世纪7 0 年代提出“软件危机”,诞生软件工程学科以来,i t 界就一 直在寻求上述问题的应用解决方案。而如何更好地重用已有模块,如何实现异构 系统的无缝集成,如何实现快速响应不断变动的业务需求呢? 针对异构性、互操 作性和不断改变的业务,希望新的软件架构具有下列特性:粗粒度软件构件的松 散耦台,构件位置透明,它们之间的联系关系协议具有独立性。 随着软件体系结构的不断变迁( 如图卜l 所示) ,业界提出面向服务的体系 结构( s o a ) 作为软件体系结构中下一个发展的阶段来帮助i t 组织满足他们面 i 临的越来越多的复杂性挑战。同时从软件开发方法的发展史上来看经历了面向 过程、面向对象和基于构件的几个阶段。由于面向过程的方法需要高度耦合,而 不适合较大软件系统的开发和进行频繁的修改,面向对象虽然支持对象级、组件 级互操作,但对不同面向对象语言所编写的组件之间却很难实现共享,而面向构 件虽然能做到构件二进制级别共享,但还是局限于特定平台。因此,一种称为面 向服务的软件体系结构( s 0 as e r v i c e o r i 。n t e da r c h i t e c t u r e ) 被提了出来,这 种通过对服务流程化的组织来构建分布式系统的方法既是体系结构模型,又是编 程模型。面向服务的体系结构已经不容置疑的被推倒了新的历史舞台上来。 程模型。面向服务的体系结构已经不容置疑的被推倒了新的历史舞台上来。 北京工业大学工学硕士学位论文 图卜1 软件架构的变迁 f i g m e l lt 1 坩e v o h m o no f a 删t e c t u r e w e b 服务是近几年提出的一种新的实现面向服务体系结构的技术。事实上最 近s 0 a 的火爆在很大程度上归功于w e bs e r v i c e 技术的成熟和应用的普及,也正 是由于w e b 服务的出现使得人们更加坚信面向服务体系结构的重要价值。 1 1 2 课题的提出和应用背景 由于基于多种开发平台和工具的软件系统的大量应用,不仅使企业中的软件 系统变得日益庞大和复杂,同样在高校的i t 系统建设中也是如此。各种教学系 统、选课系统、考试系统、教学管理系统、作业系统等等也常常是用不同的语言 开发并建立在不同的平台之上,这些系统之间有很多功能属于重复开发,即浪费 资源又不便于管理,各系统之间也很难进行信息共享。此外,由于传统的软件开 发使用的平台、开发工具、操作系统在结构上的紧耦合,以致这些位置上分散的 独立系统逐渐形成了所谓的“信息孤岛”。 当前我校操作系统上机的实验环境让教师和同学并不是很满意,原因并不是 我们的实验设备不足不好,而是没能有效充分的利用这些强大的服务资源。这些 服务器要么各自独立的对外提供一些上机服务,要么就长时间的处于闲置状态。 所以我们需要一个可行的方案来有效的整合学校的服务器资源,使它们作为 一个整体来对外提供教学实验服务和其它服务,以达到最大限度的资源利用和服 务共享。通过该系统,学生可以根据自己选修的课程,从系统中察看其选修课程 的相关习题,可以在线提交自己做的程序答案,系统或老师将给出相关的评判结 果。教学实验服务平台是一个支持多门课程的服务框架,可以根据不同课程的特 殊要求提供相应的服务操作。同时从系统的潜在扩展需求上来讲,将来可能将其 功能扩充至全校的学生完成其计算机基础课时需要的练习平台,功能上也有可能 迸一步扩展为提交一般的非程序类的作业。面向服务的体系结构s 0 a 就可以很好 的帮助我们构建这样一个松散耦合的分布式教学实验服务平台,使系统达到复用 第l 牵绪论 发蹇、扩秃性好、势尽霉魏裂弱己蠢资源懿嚣懿。 。2 应用和发展现状 s 泓并不是一个掰兹理念或瓤的设计方法,早程1 9 嗡举,g a r t n e r 就已经提 出了s o a 的预言,不过当时的软件发展水平和信息化程度还不足以支撵这样的概 念走进实艨性应用除段。今天,传随着碍e b 服务技零标准的翻盏成熟与完蛰,特 剐是当企她的i t 环境越来越复杂、应用越来越多、而业务需求也越来越急迫的 鼹按,s o a 已经成为了企业很好的一静选撵。伴骢罄列l 和w e bs e r v i e e s 应用 的成熟,s o a 也从一个纯粹的概念嘲归到了应用的阶段。 钾e bs e r v i c e s 作为s o a 的实现技术,近年来懑经受到国内外众多组织和公 司的青睬,并大力黧持其推广,许多大公司参与制窳和开发了w e b 腻务的稠关技 术翱标准,致力予w e d 服务及其相关技术的研究工作,并推行基予s o a 的w e b 服务应用,鹜前己经取得了丰硕的成果。 当前对w e b 服务技术的研究主要分为两个方面,一方面是对w e b 服务的相关 技术和标穗本身静研究。 包括i b m 、s u n 、b e a 、m i c r o s o f t 等软件巨头对这一领域表现出了浓厚的兴 趣,谴髓不仅参与了w e b 蔽务及英相关标凇静箭定,面盈在艴b 菔务的开发和相 应的平台和工具支持方面也遥遥领先。目前已经有许多有竞争力的w e b 服务基础 框架饔舞笈平台密瑷,包赫i 雒的鬻e bs e r v i c e s 、s u n 靛o p e nk e t 嚣n v i r o n m e n t ( o n e ) 和微软的n e t 。这贱框架都有其自身的侧爨点,但有着共同的基本w e b 骚努定义和篱景,掰有静鼷檠都燕掰一套技术,圭黉是s 激p 、嚣跣和u 鞠i 等。 同时,他们都提供了w e b 服务应用的开发和集成环境。目前,这些公司正致力于 在邀赛范爨内攘广群曲疆务泣用。 另一方诼是对w e b 服务技术的应用实践,目前融有许多著名的网络企业采用 了鹣b 羧务技术。 著名网络销售商a i n a z o n 发布了套可以通过两种接网( 基于s o a p 和h 竹p 秘波) 谚凌豹鬻曲藏务。逯避这套鞋e b l 受务,援户哥汉壤强稷穿获取矗壤a z o n 提袭 的番种商胁信息,包括产鼢名称、价格、制造商等o ,。 搜索弓| 擎g o o g l e 发京了一个开发工篡毽,这个工翼包霞褥齐发久员霹淤在 自融的应用中集成g 0 0 9 1 e 搜索功能。搜索的接口怒通过s 0 a p 、w s d l 实现的,也 裁怒 夔g o o g l e 邑憋搜索功戆包装戏了疆e b 缀务。 由此可见,s o a 及w e b 服务技术的研究与应用已经进入了高速发展的阶段, 越采越多豹嶷务应建将霉幻鼹务终必基础絮麴,黔b 赧务己鹱为囊务应矮壤决方 案的首选。 北京工业大学工学硕士学位论文 1 3 本文工作及组织结构 1 3 1 本文的工作 本论文围绕新一代软件架构面向服务体系结构( s 0 a ) 的相关原理及其 实现技术展开,对s o a 的关键技术和重点问题进行了系统的分析和研究,对使用 w e b 服务实现s o a 架构所涉及的技术进行了学习研究。设计并实现了基于s 0 a 的 教学实验服务平台框架,其中利用m v c 模式设计并实现了服务调用框架,创建了 “n a c h o s 操作系统实验”服务,验证了通过利用s 0 a 体系结构可以很好的实现 资源利用和服务共享以及软件系统的粗粒度松散耦合。 本论文的主要研究工作如下: ( 1 ) 对软件体系结构的发展做了一个系统的了解,从而引出解决当前软件产 业所面临问题的最具前景的软件架构面向服务的体系结构( s 0 a ) ; ( 2 ) 研究了面向服务体系结构,包括:体系结构的定义、基本特征,系统角 色及角色间的交互关系,设计与实践原则,实现技术等; ( 3 ) 学习研究如何使用w e b 服务来实现面向服务体系结构,包括:w e b 服务 的模型及其协议栈,重点研究了实现w e b 服务的三个关键技术s o a p 、w s d l 和 u d d i : ( 4 ) 利用s o a 和w e b 服务的原理和技术,提出了教学实验服务平台的解决方 案。设计并实现了一个基于s 0 a 的教学实验服务平台框架的原型系统,该原型系 统使用j 2 e e 技术,利用w e b 服务来架构s o a ; ( 5 ) 在设计实现基于s o a 的教学实验服务平台框架中,利用m v c 模式设计并 实现了一个服务调用框架。此框架具有较好的扩充性,使得支持新服务的组件可 以被更加方便、快捷地加入到系统中; 总之,在仔细地学习和研究了先进的理念和技术后,结合我校教学需求,实 践并验证了所学习和研究的内容。 1 3 2 本文的组织结构 本论文共分为六章。各章内容分别如下: 第一章,阐述了本论文的研究背景和应用背景,同时简要介绍了论文的主要 内容。 第二章,研究了s o a 体系结构的概念、特点、架构等内容,为进一步的利用 面向服务的体系结构设计原型系统提供理论基础。 第1 苹绪论 第三章,研究了基于w e b 服务来实现s o a ,包括概念、特点、体系结构以及 该领域的关键技术等。 第四章,介绍了利用面向服务体系结构的理念设计实现了基于s o a 的教学实 验服务平台框架原型。从系统整体出发,重点对整个系统软件体系结构的设计进 行了较为详细的阐述。 第五章,着重讲述了基于s o a 的教学实验服务平台框架的重要组成部分 服务代理层的设计和实现,重点讲解了如何设计和实现一个基于m 、,c 的w e b 服务 调用框架。 第六章,通过原型系统的运行实例,讲述了原型系统的软硬件测试环境。 最后,总结论文的研究成果,并对后续研究工作进行了展望。 1 4 本章小结 本章是整篇论文的引言,首先介绍了课题的研究背景,从软件体系结构的变 迁和软件发展史两个角度引出面向服务的体系结构,然后阐述了课题的应用背 景、应用和发展现状,最后对作者的工作内容和整个论文的组织结构进行了简要 的说明。 第2 章面向服务架掏( s o a ) 的研究 第2 章面向服务架构( s o a ) 的研究 2 。 面陶服务架构( s 0 矗) 概述 2 1 ,1 什么是s o a 2 1 1 1s 0 a 的定义 s 激簿不上什么新概念,有入就将r b 矗农d 0 雠等缀件模型看成s 滥粲构 静前痨。翠在1 9 9 6 年,g a r t n e rg r 靴p 就已经掇鸯了s 锨静颈啬,不过郡个辩 候仅仅愚一个“预言”,当时静较 牟发展窳平和缩怠仡程度逐不跫戳囊撵这榉静 概念走遴实震性寝雳除数。 迄今为止,滏未蠢一令统一敬、监器广泛接受熬对手甏商l 受务体系架梭( s 溅) 豹定义。许多组织艇举露角度帮不强锱嚣慰s 激进程了接述,较为典型豹定义有: i 掰黠s o a 的定义必:嚣囊服务豹体系结梅( s e r v i e # 一o r i e n t e d 8 r o h i t e c t u r e ,s 龆) 是一个组绺模裂,它将应用程序熬石弱功能单元( 称为服 务) ,透过这些擞务之阗定义良好懿搂口和契约联系起来。接墨楚采躅中立媳方 式进簿定义的,它应该独立予实现照务钓硬转乎台、操馋系统秘编程语富,使 寻 = 句建在这样的系统中舱服务可以使用统一和标准豹方式进行通信。这秽具有哆,立 的接口定义( 没有强制绑定别特定的实现上) 的特征称为服务之间的松旗会0 1 w 3 c 将s o a 定义为:“一矛申皮用程序体系结构,在这釉体系结构中,所有功 能都定义为独立的服务,这些服势带有定义明确豹可调用接口,可以以寇义好的 顺序调用这些服务来形成业务流程”。s o a 的关键是“服务”的概念,w 3 c 将服务 定义为:“服务提供翥完成一组工作,为服务使用翥交付所需的最终结果”。 s e r v i c e a r 汕i t e c t u r e c o m 将s o a 定义为:“本质上是服务的集合。服务间 彼此通信,这种通信阿能足简单的数据传送,也可能是两个或更多的服务协调进 行某些活动。服务间需要菜些方法进行连接。所谓服务就是精确怒义、封裟完整、 独立于其他服务所处环境和状态的函数。” g a r t n e r 则将s o a 描述为:“客户端服务器的软件设计方法,一项应用嗽软 件服务和软件服务使用者组成,s o a 与大多数通用的客户端服务器模型的不同 之处,在于宅着照强调软件组件的松散耦合,并使用独立的标准接口。” 从这些定义中,我们看到下面两点: 北京工业大学工学硕士学位论文 ( 1 ) s 0 a 是软件系统架构。 s o a 不是一种语言,也不是一种具体的技术,更不是一种产品,而是一种软 件系统架构,它尝试给出在特定环境下推荐采用的一种架构,从这个角度上来说, 它其实更像一种架构模式( p a t t e r n ) ,是一种理念架构,是人们面向应用服务的 解决方案框架。 ( 2 ) 整个s o a 实现的核心是服务( s e r v i c e ) ,服务是s o a 架构的基本元素。 s 0 a 指定一组实体( 服务提供者、服务消费者、服务注册表、服务条款、服 务代理和服务契约) ,这些实体详细说明了如何提供和消费服务。遵循s o a 观点 的系统必须要有服务,这些服务是可互操作的、独立的、模块化的、位置明确的、 松耦合的并且可以通过网络查找其地址。 在面向服务的体系结构( s o a ) 中,服务( s e r v i c e ) 是整个s o a 实现的核心,它 是封装成用于业务流程的可重用组件的应用程序函数。它提供信息或简化业务数 据从一个有效的、一致的状态向另一个状态的转变。映射到业务功能的服务是在 业务流程分析的过程中确定的。服务可以是细粒度的,也可以是粗粒度的,这取 决于业务流程。每个服务都有定义良好的接口,通过该接口就可以发现、发布和 调用服务。企业可以选择将自己的服务向外发布到业务合作伙伴,也可以选择在 组织内部发布服务。服务还可以由其他服务组合而成。 通过定义的通信协议,可以调用服务来强调互操作性和位置透明性。一个服 务表现为一个软件组件,因为从服务请求者的角度来看,它看起来就像是一个自 包含的函数。然而,实际上,服务的实现可能包括在一个企业内部的不同计算机 上或者许多业务合作伙伴拥有的计算机上执行的很多步骤。就封装的软件而言, 服务可能是一个组件,也可能不是一个组件,请求者应用程序能够将服务看作是 一个整体。 s 0 a 中的服务具有以下基本特征m : 服务的封装( e n c a p s u l a t i o n ) 将服务封装成用于业务流程的可重用组件的应用程序函数。它提供信息或简 化业务数据从一个有效的、一致的状态向另一个状态的转变。封装隐藏了复杂性。 服务的a p i 保持不变,使得用户远离具体实施上的变更。 服务的重用( r e u s e ) 服务的可重用性设计显著地降低了成本。为了实现可重用性,服务只工作在 特定处理过程的上下文( c o n t e x t ) 中,独立于底层实现和客户需求的变更。 服务的互操作( i n t e r o p e r a b i l i t y ) 互操作并不是一个新概念。在c o r b a 、d c 0 m 、w e bs e r v i c e 中就已经采用互 操作技术了。在s 0 a 中,通过服务之间既定的通信协议进行互操作。主要有同步 第2 章面向服务絮构( s o a ) 的研究 瓤冥步两静遥臻机制。s o a 提供服务的纛操 孳特性更剩于其在多个场合被爨用。 服务是自治的( a u t o n o m o u s ) 功能实体 服务憝由缀侔缀戚静缀食模块,是歉惫含秘模块张韵。s o a 嚣常强调繁构孛 褥供服务簸功熊实体静完全独立自主酶黥力。传绞静缀件技术,瓣e 溜,c 深或 喾e o r b a ,都鬟要蠢一令德主( h o s t 或豢s e r v e r ) 寒存放和喾理这些劝能实髂。 当这些宿主逗彳亍结柬时这些缌件的寿命媳随之结索。这样当宿主本身或者其它功 能部分出堍闯越的时候,在该宿主上运籍的其它戚用服务就会受掰影响。 s o a 粲构中非常强诵蜜俸自我管理和後簸能力。常觅的箱来谶行稻我恢复的 技术,毙翔攀势处理( 强赫s 8 。t i o n ) ,潞怠敬列糖e s s 8 9 eq o e 娃e ) ,冗衾都爨 ( r e d u n d a n td e p l o y 辨e n t ) 稠笑瓣系统( e 1 “s t e r ) 在s o a 中都起到至关熏要的雅用。 服务乏间的松耦台度( l o o s e l yc o u p l e d ) 服务请求者到月陵务提供者的绑定与服务之间成该题松祸合的。这就意睬着, 溅务请求赣不懿遒挺袋豢实魏瓣羧零缨蕊,蹴翔褒窿设诗诿害、帮署乎台,等等。 服务诲求卷往缝遥过瀵惑调麓撵掺,谚袋溪慰窝嚷盛,嚣不是遥道饺躅艘ij 珏文 件格式。 这个狳祸台使会话一端的软件w 以在不影响努一端的情况下发生改变,前提 蹩溺意模装傈撩不交。在一个缀臻游清戮下,服务提供者碍疆将淤髓蒸子遗蜜铽 鹳( 铡燕,c 跣) 静实理宠垒瓣基予j a v a 语蠢熬瑟锭褥鼗载,露辩又零对羧务瀵 求者造成锰何影响。这种情况是真实的,只廷新代码支持相同的通信协议。 服务怒位暨透嘲的( 1 0 c a t i o nt r a n s p a r e n c y ) 服务楚锌辩照务需求设计静。需要葳疲需求静交纯,邸所谓敏捷( a g i l i t y ) 没计。要憋囊菠实瑗监务萼溅务豹分离。魏妊绥使褥服务鲍设诗j 嚣:l 部器对麓户来 说是完全透明的。_ l 焦就是说,躁户完全不必知道响应自已需求豹服务的位黧,甚 麓不必知遴具体是哪一个服务参与了晌赡。 2 ,1 。2 a 的基本特征 s o 矗怒稀粗粮度、橙藕合的服务絮构,其服务之阉通过简单、精确窀义接 黼滋行通谎,不涉及底屠编稷接日和逶谎模麓。这种禳毽其有下瑟几个特 芷: ( 1 ) 蚣教藕会 s o a 怒“松数耦会”缀传服务,这一点联别予大多数其她的缌传絮掏;松敖 祸合旨在将赧务使用者和服务提供者在服务实现和客户如何使用服务方两隔离 歼来。服务提供者和服务使用者问松散耩合背后的关键点是服务接口作为与服务 实瑷分离浆实搭瑟移在,帮缘l 联黯s 激凝定义熬郏撵,双务豹羧臼没毒强锲绑 楚劐蟪定的实现上。 北京工业大学工学硕士学位论文 松散耦合系统的好处有两点,一点是它的灵活性,另一点是,当组成整个应 用程序的每个服务的内部结构和实现逐渐地发生改变时,它能够继续存在。而另 一方面,紧耦合意味着应用程序的不同组件之间的接口与其功能和结构是紧密相 连的,因而当需要对部分或整个应用程序进行某种形式的更改时,它们就显得非 常脆弱。 大多数松散耦合方法都依靠基于服务接口的消息。基于消息的接口能够兼容 多种传输方式( 如h t t p 、j m s 、t c p i p 、m o m 等) 。基于消息的接口可以采用同步 和异步协议实现。 对松耦合的系统的需要来源于业务应用程序需要根据业务的需要变得更加 灵活,以适应不断变化的环境,比如经常改变的政策、业务级别、业务重点、合 作伙伴关系、行业地位以及其他与业务有关的因素,这些因素甚至会影响业务的 性质。我们称能够灵活地适应环境变化的业务为按需( 0 nd e m a n d ) 业务,在按 需业务中,一旦需要,就可以对完成或执行任务的方式进行必要的更改。 ( 2 ) 粗粒度服务 服务粒度( s e r v i c eg r a n u l a r i t y ) 指的是服务所公开功能的范围,一般分为, 细粒度( f i n e g r a i n e ds e r v i c e ) 和粗粒度( c o a r s e g r a i n e d ) 。其中,细粒度服务 是那些能够提供少量商业流程可用性的服务。粗粒度服务是那些能够提供高层商 业逻辑的可用性服务。选择正确的抽象级别是s o a 建模的一个关键问题。设计中 应该在不损失相关性、一致性和完整性的情况下,尽可能地进行粗粒度建模。通 过一组有效设计和组合的粗粒度服务,业务专家能够有效地组合出新的业务流程 和应用程序。一个关于粗粒度服务的争论是粗粒度服务比细粒度服务的重用性 差,因为粗粒度服务倾向于解决专门的业务问题,因此出现了不够灵活的困难。 解决该问题的方法就是允许采用不同的粒度等级来创建服务。细粒度服务一般是 为粗粒度服务所使用,粗粒度服务可以组合稳定性强、重用性高的细粒度服务, 快速形成新的业务逻辑。 ( 3 ) 标准化的接口 s o a 通过服务接口的标准化描述,从而使得该服务可以提供给在任何异构平 台和任何用户接口使用。这一描述囊括了与服务交互需要的全部细节,包括消息 格式、传输协议和位置。该接口隐藏了实现服务的细节,允许独立于实现服务基 于的硬件或软件平台和编写服务所用的编程语言来使用服务。近年来出现的两个 重要标准x m l 和w e b 服务增加了全新的重要功能,将s o a 推向更高的层面,并大 大提升了s 0 a 的价值。) ( m l 和w e b 服务标准化的开放性使企业能够在所部署的所 有技术和应用中采用s 0 a 。w e b 服务使应用功能得以通过标准化接口( w s d l ) 提供, 并可基于标准化传输方式( h t t p 、s m t p 和j m s 等) 、采用标准化协议( s o a p ) 进行 第2 章面向服务架构( s o a ) 的研究 调用。 2 1 1 3s 0 a 中的三个抽象级 从概念上讲,s o a 中有三个主要的抽象级别,从低到高依次为: 操作:代表单个逻辑工作单元( l u w ) 的事务。执行操作通常会导致读、写或 修改一个或多个持久性数据。s o a 操作可以直接与面向对象的方法相比。它们都 有特定的结构化接口,并且返回结构化的响应。完全同方法一样,特定操作的执 行可能涉及调用附加的操作。 服务:代表操作的逻辑分组。服务可以分层,以降低耦合度和复杂性。一个 服务的粒度( g r a n u l a r i t y ) 大小也与系统的性能息息相关。粒度太小,会增加服 务间互操作通讯的开销;粒度太大,又会影响服务面对需求变化的敏捷性。 业务流程:为实现特定业务目标而执行的一组长期运行的动作或活动。业务 流程通常包括多个业务调用。在s 0 a 中,业务流程包括依据一组业务规则按照有 序序列执行的一系列操作。操作的排序、选择和执行称为服务或流程编排。典型 的情况是调用已编排服务来响应业务事件。“。 2 1 2 面向服务架构的体系结构 面向服务的体系结构提供了一种方法,通过这种方法,可以构建分布式系统 来将应用程序功能作为服务提供给终端用户应用程序或其他服务。图2 一l 描绘了 面向服务的体系结构: 图2 1 面向服务的体系结构“ f i g u r e2 1s e r v i c e 一0 r i e n t e da r c h i t e c t u r e 北京工业大学工学硕士学位论文 2 1 2 1s 0 a 中的角色 任何一个面向服务的体系结构都包含三个角色:服务使用者、服务提供者和 服务注册中心。 服务使用者( s e r v i c ec o n s 岫e r ) :服务使用者是一个应用程序、一个软件 模块或需要一个服务的另一个服务。它发起对注册中心中的服务的查询,通 过传输绑定服务,并且执行服务功能。服务使用者根据接口契约来执行服务。 服务提供者( s e r v i c ep r o v i d e r ) :服务提供者是一个可通过网络寻址的实 体,它接受和执行来自使用者的请求。它将自己的服务和接口契约发布到服 务注册中心,以便服务使用者可以发现和访问该服务。 服务注册中心( s e r v i c er e g i s t r y ) :服务注册中心是服务发现的支持者。 它包含一个可用服务的存储库,并允许感兴趣的服务使用者查找服务提供者 接口。 2 1 2 2s 0 a 中的协作 面向服务的体系结构中的每个实体都扮演着服务提供者、使用者和注册中心 这三种角色中的某一种( 或多种) 。在这些角色之间使用了三种操作,分别是: 发布、查找和绑定。 发布( p u b l i s h ) :为了使服务可访问,需要发布服务描述以使服务使用者 可以发现和调用它。 发现( f i n d ) :服务请求者定位服务,方法是查询服务注册中心来找到满足 其标准的服务。 绑定和调用( b i n da n di n v o k e ) :在检索完服务描述之后,服务使用者继 续根据服务描述中的信息来调用服务。 s o a 参与者:服务提供者、服务注册中心以及服务使用者就是通过以上3 个 基本操作:发布( p u b l i s h ) 、查找( f i n d ) 、绑定( b i n d ) 相互作用。服务提供者向 服务注册中心发布服务。服务使用者执行动态服务定位,方法是查询服务注册中 心来查找与其标准匹配的服务。如果服务存在,注册中心就给使用者提供接口契 约和服务的端点地址,然后绑定到这些服务上。服务提供者和服务请求者之间的 交互,如图2 2 所示。 第2 章面向服务架构( s o a ) 的研究 囤晤囤 l ,l 塑叫 i 整询服务_ 返回畿诲结果 ll 一_ : :绑定并调用服务: 2 1 2 3s o a 中的构件 强2 - 2s o a 净潮图 f i g i 】2 _ 2s e q u c ed 啦潮mo fs o a 面向服务的体系络构中的构件包括: 服务( s e r v i c e ) :可以邋过已发布接口使用服务,并且允许服务使用者调 用服务。 服务描述( s e r v i o ed e s c r i p t i o n ) :服务描述攒定服务使用者岛服务提供 者交互的方式。它指定来自服务的请求和响应的格式。服务描述可班指定一 组前提条件、后置条件和或服务质量( q o s ) 级别。 2 1 2 4s 0 a 中的元素 支持面向服务的体系结构中的元索可以分成功能元素和服务质量元素两部 分,这些元素按照一定夔层次缝搀缓缓在一越。塑2 3 震承了在一个甏囱l 受务涎 体系结构中可能观察到的元素以及它们在s o a 体系结构层次栈中所处的位置。 北京工业大学工学硕士学位论文 图2 3 支持面向服务的体系结构的元素“ f i g u r c2 - 3e k i n 括0 f as e r v i c e - o r i 锄t e d 盯曲j t e 曲l r e 体系结构堆栈分成两半,左边的一半集中于体系结构的功能性方面,而右边 的一半集中于体系结构的服务质量方面。这些元素详细描述如下: 功能性方面包括: 传输是一种机制,用于将来自服务使用者的服务请求传送给服务提供者。并 且将来自服务提供者的响应传送给服务使用者。 服务通信协议是一种经过协商的机制,通过这种机制,服务提供者和服务使 用者可以就将要请求的内容和将要返回的内容进行沟通。 服务描述是一种经过协商的模式,用于描述服务是什么、应该如何调用服务 以及成功地调用服务需要什么数据。 服务描述实际可供使用的服务。 业务流程是一个服务的集合,可以按照特定的顺序并使用一组特定的规则进 行调用,以满足业务要求。注意,可以将业务流程本身看作是服务,这样就 产生了业务流程可以由不同粒度的服务组成的观念。 服务注册中心是一个服务和数据描述的存储库,服务提供者可以通过服务注 册中心发布它们的服务,而服务使用者可以通过服务注册中心发现或查找可 用的服务。服务注册中心可以给需要集中式存储库的服务提供其他的功能。 服务质量方面包括: 策略是一组条件和规则,在这些条件和规则之下,服务提供者可以使服务可 用于使用者。策略既有功能性方面,也有与服务质量有关的方面。因此,在 功能和服务质量两个区中都有策略功能。 第2 章面向服务架构( s o a ) 的研究 安全性是规则集,可以应用于调用服务的服务使用者的身份验证、授权和访 问控制。 事务是属性集,可以应用于一组服务,以提供一致的结果。例如,如果要使 用一组服务来完成一项业务功能,则所有的服务必须都完成,或者没有一个 完成。 管理是属性集,可以应用于管理提供的服务或使用的服务。 2 1 2 5s o a 架构的分层模型 整个s o a 架构的分层模型如图2 4 所示。 图2 4s o a 分层模型 f i g l l r e 2 - 4 t h eh i 盯a r c h y m o d d o f s o a 在s o a 系统中不同的功能模块可以被分为7 层:第一层就是系统已经存在的程 序资源,例如e r p 或者c 肼系统等。第2 层就是组件层,在这一层中我们用不同的 组件把底层系统的功能封装起来。第3 层就是s o a 系统中最重要的服务层,在这层 中我们要用底层功能组件来构建我们所需要的不同功能的服务。总的来说,s 0 a 中的服务可以被映射成具体系统中的任何功能模块,但是从功能性方面可以大致 划分为以下三种类型:( 1 ) 业务服务( b u s i n e s ss e r v i c e ) 或者是业务处理 ( b u s i n e s sp r o c e s s ) 。这一类的服务是一个企业可以暴露给外部用户或者合作 伙伴使用的服务。比如说提交贷款申请,用户信用检查,贷款信用查询。( 2 ) 商 业功能服务( b u s i n e s sf u n c t i o ns e r v i c e ) ,这类服务会完成一些具体的商业 操作,也会被更上层的商业服务调用,不过大多数情况下这类服务不会暴露给外 部用户直接调用,比如说检索用户帐户信息,存储用户信息等。( 3 ) 技术功能服 务( t e c h n i c a lf u n c t i o ns e r v i c e ) ,这类服务主要完成一些底层的技术功能, 北京工业大学工学硕士学位论文 比如说日志服务以及安全服务等。在服务层之上的第4 层就是商业流程层,在这 一层中我们利用已经封装好的各种服务来构建商业系统中的商业流程。在商业流 程层之上的就是第5 层表示层了,我们利用表示层来向用户提供用户接口服务。 以上这5 层都需要有一个集成的环境来支持它们的运行,第6 层中的企业服务总线 ( e s b ) 提供了这个功能。第7 层主要为整个s o a 系统提供一些辅助的功能,例如 服务质量管理,安全管理这一类的辅助功能。同 2 1 3 面向服务架构的优点 面向服务体系架构以其高度的抽象性和灵活性,无论是从软件开发企业的开 发技术角度还是从客户原有资源的整合角度,都有着诸多的优势。 1 、从技术开发角度讲,服务体系架构提供了一个更加灵活的企业开发架构 模式,使得软件企业无论是开发方法、实现技术还是开发的效率都到了革命性的 变革。具体的讲,服务架构开发的采用从技术上有如下一些优点: ( 1 ) 屏蔽了业务逻辑组件的复杂性:服务架构通过服务提供者和服务使用者 的松散耦合关系,屏蔽了系统内部复杂的业务逻辑。对于系统的表示层而言,只 能看到服务接口,至于接口内部的具体实现细节不需要关心。 ( 2 ) 跨平台和重用性:通过标准接口,不同服务之间可以自由的引用,而不 必考虑所要引用的服务在什么地方,处于什么平台,或者是由什么语言开发的。 从而实现了真正意义上的远程、跨平台和跨语言。服务架构的核心思想是通过松 散耦合的服务组合来完成系统,因此提供了更高层次的重用性。 ( 3 ) 易维护和良好的伸缩性:依靠服务设计、开发和部署所采用的架构模型 实现了伸缩性。服务提供者可以独立调整服务以满足新的需求,服务使用者则可 以通过组合变化的服务来实现新的需求。服务提供者和服务使用者的松散耦合关 系及对开放标准的采用确保了系统的易维护性和良好的伸缩性。 ( 4 )

温馨提示

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

评论

0/150

提交评论