




已阅读5页,还剩64页未读, 继续免费阅读
(计算机软件与理论专业论文)基于agent的面向服务架构的研究与应用.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 能够使一个组织开发和部署一个企业级应用更 快、费用更低。 近来,研究机构在多a g e n t 中的a g e n t 智能模型和协作模型方面以及a g e n t 模型知识交换方面的研究取得了很好的成果。并且,在移动a g e n t 方面,移动 a g e n t 系统的安全性和a g e n t 的迁移策略与迁移实现等问题也有很好的解决方 案。为本文的研究提供了基础。 本次硕士毕业论文中,作者主要研究内容和创新点如下: l 、综合运用s o a 及a g e n t 技术,提出了一个基于a g e n t 的面向服务架构 ( a s o a ,a g e n t b a s e ds e r v i c eo r i e n t e da r c h i t e c t u r e ) ,a s o a 将静态a g e n t 和 移动a g e n t 有机结合起来,实现了一个s o a 架构。 2 ,完成了a s o a 各模块设计,包括总体设计,客户端设计,企业服务总线设 计。并给出a s o a 的关键技术,如s 0 a p 性能改进,服务注册与发现、服务品质、 服务集成,服务选择等。 3 、结合作者在某地化学工业区电子政务的开发工作,将a s o a 应用于电子政 务系统架构,给出了个使用a s o a 架构电子政务的方案。 关键词:移动a g e n t 服务品质面向服务架构企业服务总线 两北1 :业人学硕士学1 1 7 :论文 a b s t r a c i a b s t r a c t f r o mt h ev e r yb e g i n n i n go ft h es o f t w a r ei n d u s t r y , e n g i n e e r sh a v et r i e dt oc r e a t ea s e to ft o o l s a n dam e t h o d o l o g y , t h a tw o u l ds i g n i f i c a n t l yr e d u c et h ea m o u n to ft i m e n e e d e dt ow r i t ea l la p p l i c a t i o n 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 ) r e p r e s e n t sam o d e l i nw h i c hs m a l l ,l o o s e l yc o u p l e dp i e c e so fa p p l i c a t i o nf u n c t i o n a l i t ya r ep u b l i s h e d , c o n s u m e d ,a n dc o m b i n e dw i t h o t h e ra p p l i c a t i o n so v e ran e t w o r k i fp r o p e r l y i m p l e m e n t e d ,a l ls o aw o u l de n a b l ea no r g a n i z a t i o nt od e v e l o pa n dd e p l o ye n t e r p r i s e a p p l i c a t i o n sm u c hm o r eq u i c k l ya n da tal o w e rc o s tt h a np r e v i o u s l yp o s s i b l e r e c e n t l y , l o t so fr e s e a r c ho r g a n i z a t i o n sr e s e a r c hi n t om u l t i - a g e n ti n t e l l i g e n t m o d e l 、a g e n tm o d e lk n o w l e d g ee x c h a n g ea n dc o o p e r a t i o na g e n ts y s t e m ,a n dt h e yg e t g o o da c h i e v e m e n t t h e r ea r em a n yp e r f e c tr e v o l u t i o n st om o b i l ea g e n t 、s e c u r i t yo f m o b i l ea g e n ts y s t e ma n da g e n tm o v ep o l i c y a l lo ft h e s ep r o v i d eag o o db a s i sf o rt h e r e s e a r c ho ft h i st h e s i s i nt h i sp a p e r , w h a tt h ea u t h o rb r i n g sf o r w a r da r ea sf o l l o w s : 1 o nt h eb a s i so fs o aa n da g e n tt e c h n o l o g y , t h ea u t h o rp r o v i d e sai m p l e m e n t s y s t e mn a m e da s o a ( a g e n t b a s e ds e r v i c eo r i e n t e da r c h i t e c t u r e ) ,a s o ac o m b i n e s s t a t i ca g e n tw i t hm o b i l ea g e n tr e a s o n a b l yt oi m p l e m e n tas o a 2 c o m p l i s h s t h ed e s i g no fa s o a ,i n c l u d i n gt o t a l d e s i g n ,c l i e n td e s i g n , e n t e r p r i s es e r v i c eb u s ( e s b ) d e s i g n a n dg i v e st h ek e yt e c h n o l o g yo fa s o a ,s u c ha s s e r v i c er e g i s t r ya n dd i s c o v e r y , q o s ,s e r v i c ei n t e g r a t i o ns e r v i c es e l e c t i o n , 3 a c c o r d i n ga c t u a lj o b si nd e v e l o p i n go fe g o v e r n m e n ta p p l i c a t i o n ,t h ea u t h o r a p p l i e sa s o a t oe - g o v e r n m e n t ,a n ds h o w sar e v o l u t i o nt oe - g o v e r n m e n to i lt h eb a s i s o f a s o a k e y w o r d s :m o b i l ea g e n tq u a l i t y o fs e r v i c es e r v i c eo r i e n t e da r c h i t e c t u r e e n t e r p r i s eb u s i n e s sb u s i i 西北一 业大学硕士学位论文 第一章绪论 1 1 研究背景 第一章绪论 1 1 1 广泛复杂的计算领域对软件体系结构的新需求 随着i n t e r n e t 的普及和计算机技术的高速发展,计算领域在不断深入并扩大。 在企业方面,企业广泛实施e r p ( e n t e r p r i s er e s o u r c ep l a n ) 与e a l ( 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 r a t i o n ) ,以提高企业效益;在政府方面,政府部门辅以电子政务 以提高政府部门工作效率:在商业方面,电子商务已经成为2 1 世纪商业活动新 的开展方式。客观上要求企业之间或者政府部门之间进行复杂的计算与数据交 互。这样就必然要求在i n t e r n e t 上实现软件应用的方案应当是一个基于分布式计 算的体系架构,多个计算实体之间通过基于标准的数据描述方式,基于标准的调 用方法进行交互,并且需要摆脱目前独立解决方案的实现模式,舍弃复杂系统连 接的实现方法。一个有效的电子商务或电子政务应用绝对不应该是仅仅基于程序 员以及那些复杂的代码。传统的点对点的软件体系结构应当被以服务为导向的, 分布式运算的体系结构所取代。冗长、串行的循环开发应当被即时的、快速的应 用装配所取代,同时这样的应用应当天生就具备高可定制性、灵活性。 1 1 2 现有企业级应用系统架构的局限性 目前在构建企业应用的时候,通常采用“独立解决方案”来进行。对于每个 应用,为每个需要的企业资源或外部资源编写连接代码,使得应用得以运行。这 些资源包括遗留系统( 1 e g a c ys y s t e m s ) 、数据库、w e b 应用及w e b 资源。程序员还 需要编写更多的代码使得大量的用户能够访问每个应用,例如使用公司内部的桌 面应用程序访问w e b 站点。所有的应用都是从一次性开发的角度实施的,应用 的每一个变动都需要由特定的程序员来完成,因此将很难被再次定制。所以当需 要融入新的业务流程,为额外的用户群提供访问界面,继承不同的企业应用以为 用户提供更完整的增值服务时,所有的这一切不得不从最初的系统设计开始做 起。这样,通过跨应用集成的方式实现企业应用的重用变得异常地困难。 由于每个应用都有其自己特有的基础架构,这些应用在部署、更改和维护 西北工业人学硕十学位论文 第一章绪论 的代价都异常高昂,企业不得不为每个应用配置特有的专业技术人员,并保持与 不同技术供应商或解决方案供应商的密切联系。这些应用既不能方便地继承,也 不能随着企业商务的规模扩展丽方便地实现应用的规模扩展。这样的企业级应用 系统的实际运营状况非但无法令企业商务规模迅速增长,甚至会造成相反的影响 作用。因为此时,管理部门不得不雇佣更多的员工并花费更多的资金来管理这些 复杂的应用,维护多种承载应用的基础架构。早期出现的应用解决方案,比如 e d i 、w e be d i 、内容服务器、应用服务器、传统e a i ,以及那些为创建企业门 户以及其他单个企业级应用而设计的独立解决方案都无法解决这个问题。它们之 所以无能为力,是因为它们不无例外地都是基于复杂应用连接的、不具备良好集 成能力的应用开发模式,它们都是通过复杂的程序代码实现复杂应用连接以连接 用户、企业应用以及其他信息系统的。这样的实现方式既无法有效地解决经常发 生的复杂的业务流程的更改而触发的大额费用,也无法满足各类用户的定制需 求。 1 1 3s o a 简介及其国内外研究应用现状 软件产业的一开始,软件工程师就努力去开发一套工具,希望能显著地降低 开发软件应用的开发周期和费用。最近被软件公司以及i t 企业团体极力推崇的 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 的主要目的是建立许多松偶合、可重用的服务,根据 变化的企业需求,这些“服务”能够很容易被动态地装配与再装配成任意不同的 应用【1 】o 如果实现得当,s o a 能够使一个组织开发和部署一个企业级应用更快、 费用更低。由于客户对高灵活性、敏捷性的软件开发方式需求,这个新的软件架 构得到了1 1 r 各界、各大软件的公司的极力支持。几乎所有大的软件公司如i b m , m i c r o s o f t o r a c l e ,s u nm i c r o s y s t e m s 和s a p 都将他们的软件架构基于s o a ,甚 至美国国防部也参与进了s o a 项目开发,如美国国防信息系统局的n c e s 项目、 美国空军的j b m c 2 项目,美国军工f c s 项目,美国国防部长办公室的g i g e s 项 目,还有美国海军网等等【2 i 。 在国内,s o a 已经引起许多企业的重视,而国内一些有影响的企业正在搭 建其核心业务系统,比如商业领域的流通行业和销售行业的大集中正在起步。因 此当商业企业需要更好地服务客户,更好地与上、下游合作伙伴协同工作,并且 自己内部的核心业务之间也需要协同工作时,基于s o a 架构中间件产品就会为 西北t 业大学硕士学位论文 第一章绪论 这类新的业务应用提供理想的底座,这种新的应用被称作面向服务的业务应用。 s o a 基于“软件变服务”思想,提出了一种新的解决软件重用和软件集成 的方案。通过采用面向服务的体系结构,企业能够迅速便捷地构建开放的、模块 化的、可重用的软件组件。这种模式尤其适合面向广域环境的大规模应用场景, 如跨企业的电子商务系统( 如供应链管理和1 3 2 1 3 等等1 、跨地域或者跨部门的电 子政务系统、i n t e m e t 环境下的协同计算( 如网格计算、虚拟组织等等) 。在基于面 向服务的软件体系结构的研究中,目前业己实现了s o a 的较有代表性的工作是 s u n 的j i n i 技术以及得到各大公司广泛关注的w 曲服务技术。作为s o a 的一种 实现手段,w e b 服务提供了基于x m l 标准接口的若干中间件,具有完好的封装 性、松散的耦合性、协议规范的标准性、以及高度的可集成性等特点,能够很好 的满足s o a 应用模式需求。 1 2 研究意义及内容 1 2 1 研究的意义 本文作者在深入研究a g e n t 技术及s o a 的基础上提出了一个基于a g e n t 的 面向服务架构( a g e n t b a s e ds e r v i c eo r i e n t e d ,a s o a ) 的模型。a g e n t 技术能提 供一个良好的方案以实现s o a 架构,该方案实现s o a 比使用当今流行使用的分 布对象模型或其他类型的中间件实现s o a 更加具有优势。 基于a g e n t 的面向服务的体系结构的提出并不是偶然的,而是面向对象分析 与设计的一种合理发展,同时也是企业应用解决方案中,面向体系结构设计、实 现与部署采用组件化的合理发展。一个a g e n t 是一个自治的智能体,其技术特点 很适合用来实现s o a 。将a g e n t 技术运用到s o a 实现中,能比传统的实现方式 更好地实现s o a ,对实时软件服务的发现、定位、绑定、执行替换监控更加具 有优势。 随着i n t e r n e t 的发展,电子商务在企业蓬勃开展。由于传统的企业应用最初 并没有考虑到和企业外部信息系统的共享,所以对电子商务特别是b 2 b 应用、 电子政务、企业应用的支持较差。而与此同时,a g e n t 技术的发展逐渐成熟,有 许多研究机构、公司、个人对基于a g e n t 的服务进行研究,并取得较好的成果。 用来提供服务的a g e n t 能将各种服务功能打包成为一个单独的整体,并且发布在 网络上,提供给其他应用使用。基于a g e n t 的服务目的是构造一种开放的分布式 系统,任何企业和个人在任何地方,都可以快速和便宜地利用a g e n t 提供的服务 西北工业大学硕士学位论文 第一章绪论 从事商业活动和其他各类活动。a g e n t 服务技术通过标准的开放的方式把各自独 立的系统功能通过i n t e r n e t 共享,并提供安伞措施和服务集成手段,使得原先独 立的“数据孤岛”和“应用孤岛”不再分隔,而成为有序整合后的、服务于共同 任务目标的整体数据资源和应用资源。 研究和实现基于a g e n t 的面向服务架构是非常有意义的,虽然基于a g e n t 的 面向服务架构的研究应用,在国内外尚属初步,但是我们可以预见它将成为一个 出色的实现s o a 的方案,a s o a 将为企业应用服务平台提供贡献。 1 2 2 本文的研究内容和主要工作 在各国积极倡导的“信息高速公路”的几个应用领域中,电子政务 ( e g o v e r n m e n ta f a i r s ) 被列为首位,一个国家政府所拥有的信息资源占整个社会 资源的8 0 ,由此可见,政府的信息化建设对社会信息资源的开发与利用起着 主导作用。电子政务是指政府机构应用现代信息和通信技术,将管理和服务通过 网络技术进行集成,在互联网上实现政府组织结构和工作流程的优化重组,超越 时间和空间及部门之间的种种限制,面向社会提供优质和全方位的、规范而透明 的、符合国际水准的管理和服务。因此,给电子政务应用提供一个优秀的软件开 发架构,是非常必要的。本次毕业论文设计中,作者在参与某地区化学工业区的 电子政务开发的工作基础上,结合现有企业应用的需求,并深入研究a g e n t 技术、 服务的标准和规范,提出一个基于a g e n t 的面向服务的软件体系结构,同时将此 架构应用到电子政务开发中。 本文的主要研究与开发工作可以总结为以下几个方面: 1 分析了当前计算领域在企业应用背景,为采用a s o a 进行软件架构提供了 现实依据。 2 介绍s o a 概念及相关技术规范,同时分析s o a 实现的传统方式。 3 介绍了a g e n t 技术,并比较a g e n t 与其他模型实施s o a 的优势。综合s o a 技术和a g e n t 技术,提出了基于a g e n t 面向服务架构a s o a ,介绍了a s o a 总体架 构的基本工作原理。完成了a s o a 各模块设计,包括总体设计,客户端设计,企 业服务总线设计。 4 讨论了a s o a 的关键技术,如s o a p 性能分析以及改进、商业服务目录、 服务发布、服务品质、安全服务集成等。 5 结合作者在某地化学工业区电子政务的开发工作,将a s o a 应用到电子政 务系统中,给出了一个使用a s o a 架构电子政务的解决方案。 曲北上业人学硕士学位论文第一章绪论 1 3 本文的组织 本文共分为五章: 第一章绪论,阐述研究背景、国内外研究现状、本文的主要研究工作和研 究意义及本文的组织。 第二章介绍了s o a 概念以及传统实现s o a 的方式。 第三章深入研究a g e n t 技术并提出基于a g e n t 的面向服务架构。本章首先介 绍了a g e n t 技术,分析移动a g e n t 、多a g e n t 技术的特点,论述为什么要选择a g e n t 实现s o a 。在此基础上,提出了a s o a ,给出a s o a 的总体模型,构造a s o a 的主要部件,如服务注册中心、企业服务总线、a g e n t 服务管理,以及其协作原 理,实现软件服务的方式。 第四章本章主要探讨a s o a 的关键技术,a g e n t 对服务的有效管理,如基 于a g e n t 的服务发现、定位、绑定、合成以及基于a g e n t 的服务集成和选择。 第五章将基于a g e n t 的面向服务的软件体系架构应用到电子政务系统的架 构中。 总结与展望中,对本文的工作进行了总结与展望,列出了论文中较有特点的 工作,提出了进一步的研究方向。 西北工业大学硕士学位论文 第二章面向服务构架 第二章面向服务架构 面向服务架构有什么特点? 适合用于解决哪些问题? 与其他的技术有什么 区别与联系? w e bs e r v i c e 和面向服务架构又是什么关系? 面向服务架构的出现 对于软件架构设计有什么影响? 传统的实现的面向服务架构方式有哪些? 本章 将就上面提到的这些问题,参考业界给出服务的体系结构的定义,给出服务的体 系结构的相关概念,总结服务的体系结构特有的基本特征。同时分析传统实现服 务的体系结构的技术原理。 2 1 服务的体系结构介绍 2 1 1 服务和架构 在介绍面向服务架构( 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 ) 之前,首先 给出服务和架构的概念。 1 服务 在面向服务的体系结构中,服务( s e r v i c e ) 是封装成用于业务流程的可重用组 件的应用程序函数。它提供信息或简化业务数据从个有效的、一致的状态向另 一个状态的转变。用于实现特定服务的流程并不重要,只要它响应服务请求者的 命令请求并为服务请求者提供高质量的服务就可以了。 一个服务表现为一个软件组件,因为从服务请求者的角度来看,它看起来就 像是一个自包含的函数。然而,实际上,服务的实现可能包括在一个企业内部的 不同计算机上或者许多业务合作伙伴拥有的计算机上执行的很多步骤。服务交互 必须是明确定义的,w e b 服务描述语言( w e bs e r v i c ed e s c r i p t i o nl a n g u a g e ,w s d l l 是受到广泛支持服务交互的方法,用于描述服务请求者所要求的绑定到服务提供 者的细节。服务描述的重点在于与下面几部分交互所用的操作: ( 1 ) 调用操作的消息 ( 2 ) 构造这种消息的细节 ( 3 ) 关于向何处发送用于构造这种消息的处理细节的消息的信息 2 架构 架构就是一套构建系统的准则,通过这套准则,我们叫。以把一个复杂的系统 两北:i 业大学硕士学位论文 第一:章面向服务构架 划分为一套更简单的子系统的集合。这些子系统之间应该保持相互独立,并与整 个系统保持一致,每一个子系统还可以继续细分p 上,从而构成一个复杂的企业 级架构。架构涉及到软件的可用性、性能问题、容错能力、可重用性、安全性、 扩展性,可管理维护性以及可靠性等。 2 1 2s o a 的出现 s o a 的概念并不是最近才被提出,比如早在2 0 0 0 年就己经有了对s o a 这 种应用模式的评价: “面向服务的解决方案、应用程序以独立的交互服务的形式开发,为潜在的 用户提供定义良好的接口。同样地,也必须提供给应用程序开发人员相应的技术 支持,比如使他们能够浏览所有的服务,并且选中感兴趣的服务,用这些服务组 装而成新的功能” 1 9 9 6 年,g a r t n e r 最早提出s o a 的思想,2 0 0 2 年1 2 月,g a r t n e r 提出s o a 是“现代应用开发领域最重要的课题”,预计到2 0 0 8 年,s o a 将成为占有绝对 优势的软件工程实践方法。g a r t n e r 为s o a 描述的远景目标是让i t 变得更有弹 性,以更快地响应业务单位的需求,实现实时企业( r e a l t i m ee n t e r p r i s e ) 。一些 i t 组织已经成功建立并实施s o a ,i b m 等厂商也看到了它的价值,继而纷纷跟 进。 客观上,随着企业计算的发展,企业级应用的需求要求新的软件系统不再是 从底层做起,而只是依据企业逻辑需求重新组织己有应用。另外,为了提高企业 计算的高效性、可用性、大规模性,现有许多应用系统都是分布式操作系统,运 行在许多机器之上。这样的企业级解决方案就必须协调运行在群组硬件之上的各 个功能。实现这种系统的一种方法就是将该系统组织成群组服务的模式,每一个 服务都提供一组定义良好的功能集合。整个系统被设计和实现为一组相互交互的 服务,将功能以服务的形式展现出来,提高系统的灵活性。使得系统中的某些服 务能够充分利用其他的服务同时却无需考虑其物理位置。系统通过添加新的服务 来不断的升级,这样就应运而生了面向服务的体系结构( s e r v i c eo r i e n t e d a r c h i t e c t u r e ,s o a l 。s o a 定义了构成系统的服务,通过描述服务之间的交互,提 供特定的功能,并且将服务映射为具体的某种实现技术的可重用软件组件。有了 可以重复使用的软件组件,就可以简化定制应用程序的开发,这样与使用依赖特 定服务器的服务相比,l t 人员就可以更好地满足最终用户的需求。 西北工业人学硕士学位论文 第二章面向服务构架 2 1 3s o a 定义和结构 本文中s o a 定义为:为了解决在i n t e m e t 环境下业务集成的需要,通过连接 各个独立功能实体,能完成特定任务而采用的一种软件系统架构。在s o a 软件 系统架构下,驻留在网络上的软件组件能够被发布,发现和调用,s o a 的软件 开发人员可以将服务以组件的形式通过网络发布,即任何服务应用程序都可以同 其他位置的基于服务的应用程序交互。从这个定义描述中我们要强调两点: 软件系统架构:s o a 不是一种语言,也不是一种具体的技术而是一种软件 系统架构,它尝试给出在特定环境下推荐采用的一种架构,从这个角度上来说, 它更像一种模式( p a t t e r n ) 。因此它与很多已有的软件技术比如面向对象技术,是 互补的而非互斥的。它们分别面向不同的应用场景,用来满足不同的特定需求。 s o a 的使用范围:它最主要的应用场合在于解决在i n t e r n e t 环境下的不同商 业应用之间的业务集成问题。 s o a 结构可从架构核心、结构主体、操作三方面分析口7 1 。 1 架构核心 s o a 包含三个核心要件。第一个是服务注册中心,它通常基于面向w e b 服 务目录的x m l 标准- u d d i ( u n i v e r s a ld e s c r i p t i o nd i s c o v e r ya n di n t e g r a t i o n ) 。第 二个是企业服务总线o j s b ) ,又叫服务代理,它负责处理消息,把消息转发到最 合适的应用程序或者服务。第三个是w e b 服务管理,它负责管理w e b 服务。如 今监控s o a 性能的w e b 服务管理( w s 啪平台越来越多地与e s b 结合在一起。 2 结构主体 面向服务的体系结构中主要包括三个主体:服务请求者、服务注册者、服务 提供者,如图2 1 所示。 服务请求者:实现服务的查找与调用,首先到服务注册者去查找满足特定条 件的、可获得的服务,一旦找到,服务请求者将绑定到服务提供者并进行实际的 服务调用。 服务注册者:集中存储服务信息,以便于服务请求者的查找。服务提供者可 以把它们所要提供的服务在服务注册者这里进行注册。对于服务请求者来讲,绑 定服务信息的方式有两种:静态绑定和动态绑定。静态绑定是在开发应用程序的 时候查询相关的服务信息,并得到服务的接口信息。在这种方式下,服务注册者 是可选的,因为服务请求者不必一定要从服务注册者处获得服务提供者的访问位 置,还有很多其它的方式同样可以获得服务提供者的信息,比如f t p 、u r l 、e m a i l 等;动态绑定是指服务请求者在运行过程中从服务注册者处获得服务信息并动念 两北工业大学硕士学位论文 第一章面向服务构架 调用相关功能的过程。 服务提供者:典型情况下,服务提供者即服务的拥有者,它负责将服务信息 发却到服务注册者,同时要控制对服务的访问以及服务的维护和升级。 图2 - 1 面向服务体系结构的主体 3 操作 对应于三个行为主体,s o a 包括三种主要的操作: 查找服务:服务请求者使用查找服务来定位服务,查找服务的操作由用户通 过用户界面或者通过其它的服务发起。 注册服务:服务提供者将服务的信息发布到服务注册者,服务的信息包括所 有与该服务交互必要的信息,如网络位置,传输协议以及消息格式等。 绑定服务:一旦服务请求发现合适的服务,它将根据服务描述中的信息在运 行时直接激活服务。 2 1 4s o a 特征 s o a 有三大基本特征 1 独立的功能实体 在i n t e r n e t 这样松散的使用环境中,任何访问请求都有可能出错,因此任何 打算通过i n t e r a c t 进行控制的结构都会面临严重的稳定性问题。s o a 非常强调架 构中提供服务的功能实体的完全独立自主的能力。传统的组件技术,如n e t r e m o t i n g ,e j b ,c o m 或者c o r b a ,都需要有一个服务器来存放和管理这些功 能实体;当这些服务器运行结束时这些组件的寿命也随之结束。这样要是本身或 者其它功能部分出现问题的时候,在该服务器上运行的其它应用服务就会受到影 响。 s o a 架构中非常强调实体自我管理和恢复能力。常见的用来进行自我恢复 的技术,比如事务 理( t r a n s a c t i o n ) ,消息队列( m e s s a g eq u e u e ) ,冗余部署 ( r e d u n d a n td e p l o y m e n t ) 平l l 集群系统( c l u s t e r ) 在s o a 中都起到至关重要的作用。 2 大数据量低频率访问 对了二n e t r e m o t i n g 、e j b 或者x m l r p c 这些传统的分布式计算模型而- a , o 西北t 业大学硕士学位论文 第二:章面向服务构架 它们的服务提供都是通过函数调用的方式进行的,一个功能的完成往往需要通过 客户端和服务器来回很多次函数调用才能完成。在i n t r a n e t 的环境下,这些调用 给系统的响应速度和稳定性带来的影响都可以忽略不计,但是在i n t e m e t 环境下 这些因素往往是决定整个系统是否能正常工作的一个关键决定因素。因此s o a 系统推荐采用大数据量的方式,一次性进行信息交换。 3 基于文本的消息传递 由于i n t e r n e t 中大量异构系统的存在,决定了s o a 系统必须采用基于文本而 非二进制的消息传递方式。在c o m 、c o r b a 这些传统的组件模型中,从服务 器端传往客户端的是一个二进制编码的对象,在客户端通过调用这个对象的方法 来完成某些功能;但是在i n t e r n e t 环境下,不同语占,不同平台对数据、甚至是 一些基本数据类型定义不同,给不同的服务之间传递对象带来的很大困难。由于 基于文本的消息本身是不包含任何处理逻辑和数据类型的,因此服务器和客户端 间只传递文本,对数据的处理依赖于接收端的方式可以帮忙提高系统的兼容性。 此外,对于一个服务来说,i n t e r n e t 与局域网最大的一个区别就是在i n t e m e t 上的版本管理极其困难。传统软件采用的升级方式,在这种松散的分布式环境中 几乎无法进行。采用基于文本的消息传递方式,数据处理端可以只选择性的处理 自己理解的那部分数据,而忽略其它的数据,从而得到的非常理想的兼容性。 2 2s o a 实现技术的传统方式 2 2 1j i n i 简介 1 j i n i 组件及工作原理【2 8 1 j i n i 组件包括服务、客户和查找服务( l o o k u ps e r v i c e s ) ,如图2 2 所示。客 户获得服务之前,必须要经过三个过程:发现( d i s c o v e r y ) 、加入( j o i n ) 和查找 ( l o o k u p ) ,这三个过程分别对应三个协议:发现协议、加入协议和查找协议。客 户和服务都可以通过发现过程来定位查找服务的位置;加入过程使得服务可以把 自己注册到查找服务上;而查找过程帮助客户查找到感兴趣的服务。 获得一个j i n i 服务的过程为:当个j i n i 服务连入网络时,它就采用组播 f m u l t i c a s t ) 的方式向网络中发出消息,表明自己的存在。网络中的查找服务则保 持监听某个特定的端口,当它监听到这个消息后,就会接收消息数据包,并进行 分析,以便决定是否与发送者相联系。如果它决定和发送者联系,就会通过个 t c p 与发送者建立连接,并通过r m i ( r e m o t em e t h o di n v o c a t i o n ) n 发送者回传 西北1 :业人学硕士学位论文 第二章面向服务构架 个服务登记对象( s e r v i c er e g i s t r a ) 。发送者通过调用服务登记对象中的r e g i s t e r 方法,作为参数上传一个s e r v i c ei t e m 对象,这就完成了发现和加入。s e r v i c ei t e m 对象是一个对象容器,其中包括一个s e r v i c eo b j e c t 对象,作为j i n i 服务代理 ( p r o x y ) ,它负责和服务器交互,它实现了一个或者若干个客户与服务交互的接口。 客户同样通过发现协议获得一个服务登记对象,然后调用服务登记对象的 l o o k u p 方法,作为参数上传一个s e r v i c e t e m p l a t e 对象,用来作为查询准则。这 个对象含有一个引用指向一组c l a s so b j e c t 对象,这些对象指示查找服务,客户 所需要的j a v a 类型的s e r v i c eo b j e c t 对象。l o o k u p 方法返回符合客户需要的, s e r v i c eo b j e c t 对象。每个s e r v i c eo b j e c t 对象都会实现一个或者若干个客户与服 务交互的接口。客户通过引用来使用s e r v i c eo b j e c t 对象,通过这个对象来获得 服务。 图2 - 2j i n i 组件 2 j i n i 基础设施 j i n i 考虑到了现有的分布式体系结构中存在的种种基础设施问题,并且重新 建立了一个新的基础设施【5 】o j i n i 提供了一组新的协议发现和加入,从而支持自发 的服务网络。在j i n i 协议中,可以使用j r m p , h o p , o r p c ,s o a p 或者其他任何 专有协议。因此,它是与协议无关的。它还提供了一种命名服务,即所谓的查找 服务,各种服务可以据此实现注册并向其他对象发布其可用性。服务提供者可以 通过属性的形式表现其特殊性或宣布它的唯一性,使得服务请求者可以根据某种 通用类型、超类型、子类型或专用类型来进行查询。 j i n i 还提供了一种分布式事件机制,这是对j a v a b e a n s 事件模型的扩展,由 此服务请求者可以在服务提供者处注册其所需服务。服务一日可用,服务请求者 还能获得服务通知,因此,不再需要任何轮询。部分失败是通过租用机制加以处 两北工业大学硕士学位论文 蒴二章面向服务构架 理的,租用为服务的使用引入了一个时间的概念。谯中,允许服务请求根据实际 需要的时间维持与服务提供者的连接。在j i n i 环境c h 租用可以在某个特定时问 段将服务者列在查找服务中,如果超出此时间段,则需要重新协商一个新的租用, 或者干脆将它从查找服务中移除。这样就可以支持建立一个动态的网络,服务提 供者能够随时离开或重新加入而不会影响到其它系统。此外,由服务请求者与服 务提供者协商得到的租用,还可以控制某个服务提供者的服务请求者。 j i n i 系统把上述的机制通过一组内建的服务来满足: ( 1 ) 查找发现服务( l o o k u pd i s c o v e r ys e r v i c e ) :使得j i n i 客户能够及时发现 网络中的变化,服务可以在任何时间加入或者离开联邦。 ( 2 ) 租用更新服务( l e a s e r e n e w a ls e r v i c e ) :服务是通过租用的方式提供的, 服务经过一段特定的时间,必须向查找服务更新其登记,否则该服务就会被移除。 这提供了j i n i 系统白愈合的功能,大大减少了系统管理员的工作。 ( 3 ) 事务处理服务( t r a n s a c t i o ns e r v i c e ) :j i n i 提供了在分布式系统中处理事 务的功能,并且把通常的限于数据库系统的事务扩展到网络和对象的层次。 ( 4 ) 事件邮箱服务f z v e n tm a i l b o xs e r v i c e ) :j i n i 网络中的变化是通过分布式 事件来通知的。事件邮箱服务可以暂存事件,实现事件的异步传送。 3 j i n i 的不足 j i n i 作为一种新型的分布式计算体系,也有它的不足【8 】: 以j a v a 为中心的特点带来了与非j a v a 程序互操作的问题。当前有j n i 以及 r m io v e rh o p 等解决方式。 ( 1 ) j i n i 对t c p 和i p 组播的依赖使得j i n i 系统不能在非i p 网络上应用, 解决方法有桥接方案等。 ( 2 )目前j i n i 没有特别为安全做更多的努力,j i n i 安全模型完全是依赖于 j a v a 平台的安全模型。而像c o r b a 等,都定义了一个安全服务,并集成到o r b 中,这对于用户是很方便的。 ( 3 ) j i n i 可扩展性差,不适合用于大规模的系统中,比如i n t e r n e t 。目前只 能支持1 0 0 0 个节点左右。 ( 4 ) 容错性问题没有解决。 ( 5 ) l o o k u p 服务可能成为系统的瓶颈,一旦l o o k u p 服务失效,整个联邦 就解体了。这个问题可以通过合理的组织多层次的l o o k u p 服务,即适度的冗余 来加以克服。 1 2 西北工业大学硕士学位论文 第二章面向服务构架 2 2 2c o r b a 组件及其工作原理 c o r b a 组件及其工作原理如图2 3 所示,c o r b a 遵循了通用的分布式系 统解决方案模式 7 , 8 1 。服务提供者通过在可用的命名目录( c o r b a 命名目录1 中发 布其服务对象,对此分布式对象感兴趣的客户则通过该命名服务找到服务器对 象,然后就可以调用服务器对象上的合适的服务了。为了做到这一点,客户必须 提前与命名服务以及服务器提供的各种服务绑定以得到有关的信息( 比如服务器 对象提供的属性、方法、接口等) 。这是通过c o r b a 接口定义语言阻t e r r a c e d e f i n i t i o nl a n g u a g e ,i d l ) 完成的。i d l 是中立于任何语言的,c o r b a 通过i d l 来实现与编程语言的无关性。i d l 有助于描述服务而无需深入到具体实现细节。 用这种方法可以将实现与接口相分离。c o r b a 服务器必须实现i d l 接口,而 c o r b a 客户使用此接口。 所有本地调用的方法均通过一个称为桩的客户代理完成,它将方法参数和数 据进行串行化,并发送到称为体的服务器端对象,而体则需要重构此方法及其详 细内容。体要负责代表客户来调用这个方法,并正确的返回结果桩和体的交互 式通过o r b 进行的。o r b 也称为对象b u s ,它负责找到合适的服务器对象( 使 用服务器对象引用1 ,并向服务器传输方法参数、数据,此外还要从服务器传回 方法结果。客户与o r b 通过一个桩实现交互,而服务器对象则使用一个对象适 配器( o b j e c ta d a p t e r , o a ) 或者o r b 接口与o r b 实现交互。客户的o r b 与服务 器的o r b 之间通过通用跨o r b 协议( g e n e r a li n t e ro r bp r o t o c o l ,g i o p ) 或者 i n t e r n e t 跨o r b 协议( i n t e r n e ti n t e ro r bp r o t o c o l ,i i o p ) 来通信。因此,为了使一一 个客户对象参与到c o r b a 环境中,它必须知道服务器位置、服务描述以及服务 调用机制。 f = = j 1 接口存储库l l , ( 远黜p ) 撼 l 瞄。辐藩 - 动态调用睁烹互i 7 陶2 3c o r b a 组件及其t 作原理 仙北工业大学硕士学位论文 第二章面向服务构架 2 2 3d c o m 组件及其工作原理 d c o m 也采用通用的分布式系统模式,与c o r b a 十分相似【1 】o 通过对象提 供服务的服务器,在一个可用的命名目录( 活动目录服务) 中发布其对象。对此分 布式对象感兴趣的客户必须知道此服务器提供的多种服务,这通过m s i d l 实 现。服务对象实现了i d l 接口。 图2 - 4 所示的是d c o m 组件及其工作原理。所有本地调用的方法均通过一 个称为代理的客户代理来完成,它将完成方法参数和数据的串行化并发送到一个 称为桩的服务器对象上,在此要重构此方法及其详细内容。这个桩负责代表客户 调用方法并正确的返回结果。由于d c o m 规范是二进制级的,它可以将不同编 程语言编写的二进制组件加以集成,如c + + ,j a v a 和v i s u a l b a s i c 等。与c o r b a 不同,d c o m 只能基于m i c r o s o f tw i n d o w s 平台,是w i n d o w s w i n d o w s 的分布 式解决方案。 图
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高频电流基础知识培训课件
- 济南市2024-2025学年八年级下学期语文月考测试试卷
- 高速养护业务知识培训课件
- 电脑趣味知识培训总结课件
- 电脑办公知识培训班课程课件
- rohs考试题及答案
- php上机考试及答案
- 浙江省瑞安市2024-2025学年四年级上学期期中考试科学试题(含答案)
- 电线基础知识培训心得
- 电站安全知识培训课件
- 危险性较大工程安全监理制度
- (完整版)建筑构造课件
- (完整word版)博爱宠物医院危重病治疗协议书
- (研究生)商业伦理与会计职业道德ppt教学课件(完整版)
- 二手农业机械转让合同
- 眼的生物化学课件
- 油浸式变压器(电抗器)检修规范
- 屈光不正的处方原则讲义
- 高等教育法规概论知识点汇总
- (完整word版)项目立项申请书
- 品质术语基本知识
评论
0/150
提交评论