(计算机软件与理论专业论文)基于soa的服务发现技术研究与实现.pdf_第1页
(计算机软件与理论专业论文)基于soa的服务发现技术研究与实现.pdf_第2页
(计算机软件与理论专业论文)基于soa的服务发现技术研究与实现.pdf_第3页
(计算机软件与理论专业论文)基于soa的服务发现技术研究与实现.pdf_第4页
(计算机软件与理论专业论文)基于soa的服务发现技术研究与实现.pdf_第5页
已阅读5页,还剩50页未读 继续免费阅读

(计算机软件与理论专业论文)基于soa的服务发现技术研究与实现.pdf.pdf 免费下载

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

文档简介

摘要 随着i t 行业的快速发展和企业基本业务需求的不断增长,目前的软件体系结 构越来越难以应对和处理日益增长的软件复杂性。然而,近年来,业界提出的面 向服务体系结构( 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 ) 作为软件架构中下一个发 展的阶段来应对这一挑战,已经初见成效,并且成为软件业下一步发展的大趋势。 本文在深入研究分析s o a 软件架构和w 曲s e r v i c e s 技术的基础上,对目| i 比 较流行的基于w e bs e r v i c e 的企业应用集成( e n t e r p r i s ea p p l i c a t i o ni n t e g r a t i o n , e a i ) ) 技术进行扩展研究,指出了现有的服务发布和匹配中存在的不足,提出了 一种适用于s o a 体系架构的语义w e b 的服务发布和发现机制,迸一步强化语义 w e b 服务能力的描述,改进了语义w e b 的服务发布的关键技术,设计了基于语义 w e b 服务的面向服务的软件平台,并对现有的服务发布和注册进行了的语义扩展, 增强了其语义表达和支持能力,使得业务本身的定义可以跟具体的服务系统分离 开来,实现业务的抽象定义和业务流程的动态生成。最后通过车辆销售和售后系 统的实例,阐述了构建企业未来s o a 系统的一般过程,验证了构建基于s o a 系 统的可行性和可操作性,实现了服务的语义描述模型,从而在更高程度上实现e a i 过程的灵活性、适应性和可维护性。 关键词:s o a 软件体系结构w e bs e r v i c e 技术语义模型 a b s t r a c t a b s t r a c t w i t ht h er a p i dd e v e l o p m e n t0 f l ti n d u s t r ya n dc o n t i n u a l i n c r e a s eo fb a s i cb u s i n e s s r e q u i r e m e n t s ,i tb e c o m e sm o r ea n dm o r ed i f f i c u l tf o rc u r r e n ts o f t w a r ea r c h i t e c t u r et o c o p ew i t hi n c r e a s i n gs o f t w a r ec o m p l e x i t y b u ti nr e c e n ty e a r s ,s o a ( 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 ) h a sb e e nb r o u g h tf o r w a r da sar e v o l u t i o n a r yt e c h n o l o g yt oc o p ew i t ht h e c h a l l e n g em e n t i o n e da b o v e ,a n di n i t i a lr e s u l t sh a sb e e ne n c o u r a g i n g t h e r ei sn od o u b t t h a ts o aw i l lb et h eg o a lo fs o f t w a r ei n d u s t r y f i r s t l y , t h ea u t h o rd e e p l yr e s e a r c h e sa n da n a l y s e ss o a s o f t w a r ea r c h i t e c t u r ea n d w e bs e r v i c e st e c h n o l o g i e s ,t h e nc a r r i e su ps o m ee x t e n d e dr e s e a r c ho ne a i ( e n t e r p r i s e a p p l i c a t i o ni n t e g r a t i o n ) b a s e do nw e bs e r v i c e sw h i c hi sv e r yp o p u l a ra tp r e s e n ta n d i n d i c a t e st h ed r a w b a c k so fc u r r e n ts e r v i c e s p u b l i s h i n ga n dm a t c h i n gt e c h n i q u e s s e c o n d l y , r a i s e sap u b l i s h i n ga n dd e t e c t i n gm e c h a n i s mo fs e m a n t i cw e bs e r v i c e sb a s e d o ns o a ,f u r t h e rs t r e n g t h e n st h ed e s c r i p t i o no fs e m a n t i cw e bs e r v i c e s c a p a b i l i t i e s , i m p r o v i n gt h ek e yt e c h n i q u eo fs e m a n t i cw e bs e r v i c e s p u b l i s h i n g t h e n ,d e s i g n sa s e r v i c e - o r i e n t e ds o f t w a r e p l a t f o r m b a s e do ns e m a n t i cw e b s e r v i c e s , s e m a n t i c a l l ye x p a n d sc u r r e n ts e r v i c e sp u b l i c a t i o na n dr e g i s t r a t i o ns y s t e ma n di m p r o v e s i t sc a p a b i l i t i e so fs e m a n t i cd e s c r i p t i o na n ds u p p o r t ,w h i c hm a k e st h ed e f i n i t i o no f b u s i n e s si t s e l f d e p a r t f i o mc o n c r e t es e r v i c e s y s t e m sa n da c h i e v e st h ed y n a m i c g e n e r a t i o no fb u s i n e s s sa b s t r a c td e f i n i t i o na n dw o r k f l o w f i n a l l y , t h eg e n e r a lp r o c e s so f e s t a b l i s h i n gf u t u r es o as y s t e m sf o re n t e r p r i s e si se x p a t i a t e dt h r o u g ha ne x a m p l eo f v e h i c l e ss a l e sa n da f t e r m a r k e ts y s t e m f e a s i b i l i t ya n dm a n e u v e r a b i l i t yo fe s t a b l i s h i n ga s o as y s t e mi sv a l i d a t e da n ds e m a n t i cd e s c r i p t i o nm o d e lb a s e do nw e bs e r v i c e si s i m p l e m e n t e d c o n s e q u e n t l y , f l e x i b i l i t y , a d a p t a b i l i t ya n dm a i n t a i n a b i l i t yo fe a ia r e a c h i e v e di na h i g hl e v e l k e y w o r d :s o a s o f t w a r ea r c h i t e c t u r ew e bs e r v i c et e c h n o l o g y s e m a n t i em o d e l 创新性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成 果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不包含其 他人已经发表或撰写过的研究成果;也不包含为获得西安电子科技大学或其它教育机 构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已 在论文中做了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 本人签名:截渔! 鸡 1 7 tj 朝竺当 关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究生在 校攻读学位期间论文工作的知识产权单位属西安电子科技大学。本人保证毕业离校 后,发表论文或使用论文工作成果时署名单位仍然为西安电子科技大学。学校有权保 留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全部或部分内容, 可以允许采用影印、缩印或其它复制手段保存论文。 1 7 1j 胡2 1 墨兰:之 日期- 越:互。i 第一章绪论 1 1 研究背景及需求分析 1 1 1 研究背景 w 3 c ( w o r l dw i d ew e bc o n s o r t i u m ,w 3 c ) 将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 ) t l 】定义为:“一种应用程序体系结构,在这种体系结构中,所有 功能都定义为独立的服务。这些服务带有定义明确的可调用接口。可以以定义好 的顺序调用这些服务来形成业务流程”。s o a 的关键是“服务”的概念。w 3 c 将服 务定义为:“服务提供者完成一组工作,为服务使用者交付所需的最终结果”1 1j 。 当今的企业高度依赖于i t 基础结构,支持几乎所有的业务流程,如制造、发 布、销售、客户管理和记账等。经济全球化营造了一个激烈的竞争环境,业务流 程不断变化:企业必须敏锐观察市场条件的变化,并迅速调整策略,来适应这些 更改;企业i t 部门必须根据公司策略的变化,快速有效地调整执行策略的主干 公司i t 系统。 当今的企业软件陷入进退维谷的境地,在企业软件开发中,总遇到“敏捷性不 好”和“效率不高”两大难题。由于“敏捷性不好”,企业不能依赖i t 基础结构来快速 满足业务需求的变化,缺乏有效应对市场需求的能力。由于“效率不高”,企业软件 开发的成本过高,投入的资金往往“得不偿失”。 敏捷性 交 付 能 力 瘫 痪 绿色区域烦恼区域 图1 1 系统性能与时间的关系 时间 具体分析一个典型的企业软件系统不难看出,在系统使用初期,生产效率和 敏捷性都令人满意,处于“绿色区域”,此时的系统拥有很多新功能,也能较快、 较有效地满足“更改请求 。在初期系统实现就绪,并执行了一些更改请求后, 系统适应更改的能力显著下降,随着时问的推移,维护难度越来越大【2 l 。如图1 1 所示。 几乎所有企业软件系统都要经历这样一个停滞阶段,原因很多,一部分与软 件技术有关,还有一部分原因与组织级别有关。在分析企业软件时,通常看不到 一个个独立的系统,多年的反复改造使很多系统之间具有复杂的交叉依赖,异质 和冗余度相当高。改造过程中,面对的都是迥异的设计和编程风格,更谈不上对 各种系统做到了如指掌,人们将这种情形称之为“信息化后遗症1 3 j ,。软件体系结 构试图处理日益增长的软件复杂性,但是复杂性仍在继续增加,传统的体系结构 好像己经达到了它们处理此类问题的极限。软件产业能够提供完全的分布式处理 的多种计算体系结构和能够运行在任何平台上的编程语言,还经历了无数的连接 性产品,这些产品能够更快更好地集成应用程序。然而,还是没有找到能够完全 解决问题的方案。 1 1 2 解决企业软件开发问题的首要选择 传统的企业应用集成( e n t e r p r i s ea p p l i c a t i o ni n t e g r a t i o n ,e a i ) 4 1 解决方案在一 定程度上满足了企业信息系统的集成需求,但是,这些技术所解决的问题更多地 集中在数据层面。突出的缺点表现为:e a i 平台与原有应用系统之间紧密耦合, 所有的应用程序都需要了解与其集成的其它应用程序工作方式:e a i 平台与原有 应用系统之间是自定义的集成;系统集成的重用性非常有限。传统的应用集成方 法复杂,成本高,且不具备灵活性。此外,传统的应用集成方法也不能很好的支 持企业转向以业务过程为中心的经营模式【3 l 。在不改变企业应用底层架构的基础 上,基于面向服务架构( s o a ) 的应用集成开发方案可以很好地解决上述问题。它 支持在中间层以服务模块方式实现解决方案,当多个运行在不同平台和技术上的 应用程序必须互相通讯时,这种体系结构尤其适用。 s o a 是一种设计方式,也是一种定义和提供i t 基础设施( i ti n f r a s t r u c t u r e ) 的方 式,无论应用的背后使用的是何种操作系统或采用了何种编程语言,它允许相互 交换数据、参与业务流程( b u s i n e s sp r o c e s s e s ) 。s o a 也可被看作是- 9 中构建i t 系 统的方案,它将业务服务作为协调i t 系统与业务需求的关键组织原则。其业务流 程是由一系列业务服务组成的,可以更轻松地创建、修改和管理它来满足不同时 期的需要,而且具有很好的灵活性和快速响应能力,这对解决当前企业正在应用 的遗产系统体系架构局限性至关重要。与此同时,w e bs e r v i c e 的核心技术规范如 s o a p ( s i m p l eo b j e c t a c c e s sp r o t o c 0 1 ) 、w s d l ( w e bs e r v i c e sd e s c r i p t i o n l a n g u a g e ) 、u d d i ( u n i v e r s a ld i s c o v e r y ,d e s c r i p t i o n 和i n v e n t o r y ) 等都已趋于成熟, 而且它是基于一系列标准公开的、能提供跨平台、穿越防火墙的访问能力。综上 所述,要从根本上解决当前企业软件开发中存在的问题,就必须从最底层入手, 重新构建企业应用的体系架构,即构建出适应未来发展的s o a 系统。 1 1 3 目前国内外研究的现状 面向服务的体系结构基于“软件变服务 的思想,提出了一种新的解决软件 重用和软件集成的方案。通过采用面向服务的体系结构,企业能够迅速便捷地构 建开放的、模块化的、可重用的、与平台无关的、可扩展的分布式应用系统。作 为s o a 的一种实现手段,w e b 服务提供了基于x m l 标准接口的若干中间件,具有完 好的封装性、松散的耦合性、协议规范的标准性以及高度的可集成性等特点,能 够很好的满足s o a 应用模式的需求。目前很多软件公司都注重于这一领域内的研 究和开发。 ( 1 ) i b m 公司在s o a 相关产品上研发上不遗余力,已经投入超过1 0 亿美元建立 s o a 研发中心,如今没有一个产品不是基于s o a 的。如为企业电子商务提供统一 的身份认证和授权管理的t i v o l i 认证管理系统。 ( 2 ) h p 公司为了向客户提供更加灵活的软件,以帮助其实现业务流程的自动 化,计划将o r a c l ef u s i o nm i d d l e w a r e 融入其面向服务的架构产品系列中去,利用 o r a c l e 的软件和h po p e n v i e w 管理软件套件,计划开发和提供基于s o a 的业务服 务,以帮助客户对其业务流程进行自动化,集成不同的数据和应用,同时充分利 用现有应用。 ( 3 ) b e aa q u a l o 西c 为企业提供了获得生产级s o a 部署所有优势的途径,b e a a q u a l o g i c 产品家族提供了一种可互操作的基础架构和一组可重用的基础架构服 务,用于管理s o a 和组装复合应用程序,而无须考虑底层技术,并且可以实现如 下四方面的性能:首先,可以提高业务响应能力、效率和敏捷性。其次,可以降低 i t 环境的复杂性。再次,还能增加业务服务的重用性。最后,它还能有效地降低 应用程序的生命周期成本等。作为首款完全针对s o a 而构建的产品套件,b e a a q u a l o g i c 产品家族为i t 提供了一组统一的产品来处理消息传递、服务管理、数据 一致和安全需要等需求。而这些需求的实现则是由它顶尖级的四大功能模块产品 组合完成的。 ( 4 ) 复旦协达2 0 0 5 年推出的基于s o a 的协同软件是国内较成熟的应用s o a 的 设计理念的产品。 但是,由于受到传统软件厂商所形成的利益团体的阻碍,并且还面临着信息化 建设比较饱和而乏力的市场需求,s o a 的大规模实施还没有出现。但是,在标准 建设、技术研究以及成熟的工具方面s o a 已经有相当的积累。2 0 0 5 年1 1 月,i b m 、 b e a 、o r a c l e 、s a p 等国外著名企业联合发布了s c a ( s e r v i c ec o m p o n e n t a r c h i t e c t u r e ) 0 9 规范草稿。s c a t 5 l 是一种全新的、跟语言无关的编程模型,这种 面向服务构件的编程模型可以大大简化客户的编程,提高应用的灵活性,并必将 成为面向服务架构( s o a ) 企业应用开发的标准。其中s d o 标准( s e r v i c ed a t a o b j e c t s ,服务数据对象致力于为应用系统中处理数据提供统一的方式,而不论数 据的来源、格式是什么样的) 也已经成型。s d o 提供了一种对数据库和对服务来 说统一的数据处理方式,它也提供了相应的机制,用来实现当数据同其来源分离 时的处理。 1 2 课题研究的目的和意义 s o a 提供了一个抽象层,通过这个抽象层,企业可以继续利用它在i t 方面的 投资,方法是将这些现有的i t 资产包装成能够提供企业功能的服务。组织可以继 续从现有的资源中获取价值,而不必重新从头开始构建。基于s o a 技术具有简单 性、开放性、灵活性、透明性、代价低、效率高和动态性等特点,基于s o a 来实 现新一代的企业应用集成能够很好的解决传统企业应用集成中存在得诸多问题, 大大提高系统设计的灵活性,而且能够有效提高系统的可扩展性。基于q o s ( q u a l i t y o f s e r v i c e ,服务质量) 1 6 l 约束的服务发现在甚至可以在分布式应用集成中使企业在 w e b 服务的选取上能更准确定位自己所需,进一步提高工作效掣。 从理论上讲,该课题的研究是对当前流行的热门技术w e bs e r v i c e 和s o a 等技术的有效补充,解决相关的技术应用问题。从实践上讲,该课题的研究对现 有企业信息系统尤其是电子商务等i t 应用创造了更为广阔的天地,使得企业既可 以方便地继承,实现规模的扩展,高效整合他们的应用,增强相互之间及企业内 部的信息交互,又可以降低开发成本,缩短开发时间,获得更大的投资回报率i j j 。 因此,该课题的研究具有十分重要的现实意义。 1 3 本论文相关工作 在完成本论文的选题及写作过程中,作者的主要工作是: 1 对当前企业软件体系架构存在的问题进行了研究,分析了企业对软件体系 架构的新需求,从而指出了本论文研究的重要意义; 2 在深入研究s o a 软件架构和w e bs e r v i c e 技术的基础上,提出了一种适用 于s o a 体系架构的语义w e b 的服务发布和发现机制,包括服务描述,服务发现技 术,语义w e b 服务能力的描述,语义w e b 的服务发布的目标和关键技术; 3 通过一个车辆销售和售后信息系统的应用实例,阐述了基于s o a 架构模 式的实现过程,并利用语义w e b 实现了其中服务发布功能的的主要构件,即用语 义w e b 对服务进行发布,并验证了系统的可行性和有效性。 1 4 本论文章节安排 本论文共有六章,各章的主要内容如下: 第一章绪论首先,对当前企业系统适应更改的能力随着时间推移显著下降 的体系架构进行了分析,指出了问题的关键所在;其次,在分析的基础上指出了 本文研究的目的和意义;再次,介绍了本论文的研究背景和当前国内外对该问题 的研究现状;最后,简要介绍了作者在论文写作过程中所做的工作和论文各章节 的安排。 第二章s o a 软件架构和w e bs e r v i c e 技术研究研究分析了s o a 软件架构的 基本要素和w e bs e r v i c e 技术及其相关技术组件( 如x m l 、w s d l 、u d d i 、s o a p 等) ,并对s o a 架构与w e bs e r v i c e 技术两者的关系进行了简要的说明。 第三章基于s o a 的w e b 服务分析与设计首先对什么是服务给出了明确的界 定,提出了为方便服务的发现而遵循的服务设计的几点原则。其次对服务的发现 技术做了基本的描述,指出了现有的w e bs e r v i c e 发现机制存在的问题。最后,为 了克服传统服务注册、发现机制的不足,提出了基于s o a 服务运行框架平台的设 计。 第四章语义w e b 服务的发现和匹配首先介绍了语义w e b 服务并对服务匹 配策略进行描述,阐明了o w l s 到w s d l 映射的基本关系,给出了o w l - s u d d i 匹配器系统结构。其次对基于语义的服务匹配策略进行详细阐述。最后描述了语 义w e b 服务的发布和发现过程。 第五章基于s o a 软件架构语义w e b 系统的实例首先简述了一个简单车辆 销售和售后信息系统的业务流程并阐述了基于s o a 架构模式的实现过程,其次对 其进行了基于s o a 体系架构的规划设计和分析提炼,并利用语义w e b 实现了其中 服务发布功能的的主要构件。 第六章总结及展望对论文的工作进行了总结,展望了后续研究的工作重点。 第二章s o a 软件架构和w e bs e r v i c e 技术研究 企业软件的发展要求用软件系统不再是从底层做起,而只是依据企业逻辑需 求重新组织己有的数据存储,将现有的数据和事务通过新的渠道,比如i n t e m e t 浏 览器或者手持设备呈现给用户。另外,为了提高企业计算的高效性、可用性、规 模性,现有许多的操作系统都是分布式操作系统【8 j ,运行在许多机器之上。这样的 企业级解决方案就必须具备协调运行在群组硬件之上的功能。实现这种系统的一 种方法就是将该系统组织成群组服务的模式,每一个服务都提供一组定义良好的 功能集合,整个系统其实就被设计和实现为一组相互交互的服务,而将功能以服 务的形式展现出来是该系统灵活性的关键。它使得系统中的某些服务能够充分利 用其他的服务却无需考虑其物理位置,而且系统可以通过添加新的服务来不断的 升级,这样就应运而生了面向服务的体系架构( 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 ) 。 2 1s o a 软件架构及其要素 2 1 1 概述 s o a 软件架构成为软件业的下一个大趋势已是不争的事实,而且正在步入发 展的新阶段。s o a 定义了构成系统的服务,通过描述服务之间的交互提供特定的 功能特性,并且将服务映射为具体的某种实现技术1 3 j 。不同于传统的应用集成方法, 在s o a 中,围绕服务的所有模式都是以基于标准的技术实现的。大部分的通信中 间件系统,如r p c ( r e m o t ep r o c e d u r ec a l l s ) 、c o r b a ( c o m m o no b j e c tr e q u e s tb r o k e r a r c h i t e c t u r e ) 、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 l ) 、e j b ( e n t e r p r i s e j a v a b e a n ) 和r m i ( r e m o t em e t h o di n v o c a t i o n ) ,也同样如此。可是它们的实现在 权衡交互性以及标准定制的可接受性方面总是存在问题,s o a 试图排除这些缺陷 1 9 1 。因为几乎所有的通信中间件系统都有固定的处理模式,如r p c 的功能、c o r b a 的对象等等。然而,服务既可以定义为功能,又可同时对外定义为对象、应用, 这使得s o a 可适应于任何现有系统,并使得系统在集成时不必刻意遵循任何特殊 定制。使用s o a ,就可以在不用对现有系统做重大修改的前提下,系统可对外提 供w e bs e r v i c e 接口,这是因为它们己经被应用层做了一层封装( 该应用层能够提 供w e bs e r v i c e 接口) ,所以在不用修改现有系统架构的情况下,s o a 可以将系统 和应用迅速转换为服务。同时基于s o a 的应用能很容易地从这些基础服务架构中 添加功能,所以基于s o a 的应用能更快地应对需求变化,为企业未来信息系统设 计开发出新的功能应用。 s o a 架构提供了一种标准的编程模型,使得驻留在网络上的软件组件能够被 发布( p u b l i s h ) ,发现( f i n d ) 和调用( i n v o k e ) 1 2 1 。s o a 的软件开发人员可以将服务以组 件的形式通过网络发布,即任何以服务为组件的应用程序都可以同其它位置的基 于服务的应用程序交互【9 1 。 图2 1s o a 角色及操作 2 1 2 角色 面向服务的体系架构中主要包括三个主体角色【2 l :服务请求者、服务注册者和 服务提供者。 ( 1 ) 服务请求者 实现服务的查找与调用,首先到服务注册者去查找满足特定条件的、可获得 的服务,一旦找到,服务请求者将绑定到服务提供者并进行实际的服务调用; ( 2 ) 服务注册者 集中存储服务信息,以便于服务请求者的查找。同时服务提供者可以把它们 所要提供的服务在服务注册者这里进行注册。 对于服务请求者来讲绑定服务信息的方式有两种:静态绑定和动态绑定。静 态绑定是在开发应用程序的时候查询相关的服务信息,并得到服务的接口信息。 在这种方式下,服务注册者是可选的,因为服务请求者不必一定要从服务注册者 处获得服务提供者的访问位置,还有很多其它的方式同样可以获得服务提供者的 信息,比如f t p ( f i l et r a n s f e rp r o t o c 0 1 ) 、u r l ( u n i f o r mr e s o u r c el o c a t o r ) 、e - m a i l ( e l e c t r o n i c m a i l ) 等;动态绑定是指服务请求者在运行过程中从服务注册者处获得服务信息并 动态调用相关功能的过程。尽管静态和动态的发现页面都提供了有关站点上已有 的w e bs e r v i c e 信息,但是它们很少向其他开发人员广告它们的存在。如果开发人 员不知道有这样的服务存在,那么他们就不可能使用这些服务。如果服务开发者 想让其他人可以利用,可以使用u d d i l l o i 对服务进行广告。 ( 3 ) 服务提供者 典型情况下,服务提供者即服务的拥有者,它负责将服务信息发布到服务注 册者,同时要控制对服务的访问、执行以及服务的维护和升级。 2 1 3 操作 对应于三个行为主体,s o a 也包括三种主要的操作【2 】: ( 1 ) 查找服务 服务请求者使用查找服务来定位服务,查找服务的操作由用户通过用户界面 或者通过其它的服务发起; ( 2 ) 注册服务 服务提供者将服务的信息发布到服务注册者,服务的信息包括所有与该服务 交互必要的信息,如网络位置、传输协议以及消息格式等; ( 3 ) 绑定服务 一旦服务请求发现合适的服务,它将根据服务描述中的信息在运行时直接激 活服务。服务角色及其操作如图2 1 所示。 2 1 4 s o a 组件 面向服务的体系架构提供了一种方法,通过这种方法,可以构建分布式系统 来将应用程序功能作为服务提供给终端用户应用程序或其他服务。其组成元素可 以分成功能元素和服务质量元素】。图2 2 展示了体系架构堆栈以及在一个面向服 务的体系架构可能观察到的元素。 该体系架构堆栈分成两半部分,左边的一半集中于体系架构的功能性方面, 而右边的一半集中于体系架构的服务质量方面。这些元素详细描述如下1 2 j : ( 1 ) 功能性方面包括: 传输( t r a n s p o r t ) 是一种机制,用于将来自服务使用者的服务请求传送给服务 提供者,并且将来自服务提供者的响应传送给服务使用者。 服务通信协议( s e r v i c ec o m m u n i c a t i o np r o t o c 0 1 ) 是一种经过协商的机制,通过 这种机制,服务提供者和服务使用者可以就将要请求的内容和将要返回的内容进 行沟通。 图2 2 面向服务体系架构( s o a ) 堆栈 服务描述( s e r v i c ed e s c r i p t i o n ) 是一种经过协商的模式,用于描述服务是什么、 应该如何调用服务以及成功地调用服务需要什么数据。服务描述实际是可供使用 的服务。 业务流程( b u s i n e s sp r o c e s s ) 是一个服务的集合,可以按照特定的顺序并使用 一组特定的规则进行调用,以满足业务要求。注意,可以将业务流程本身看作是 服务,这样就产生了业务流程可以由不同粒度的服务组成的观念。 服务注册中,t , ( s e r v i c er e g i s t r y ) 是一个服务和数据描述的存储库,服务提供者 可以通过服务注册中心发布它们的服务,而服务使用者可以通过服务注册中心发 现或查找可用的服务。服务注册中心可以给需要集中式存储库的服务提供其他的 功能。 ( 2 ) 服务质量方面包括: 策略( p o l i c y ) 是一组条件和规则,在这些条件和规则之下,服务提供者可以将 服务用于使用者。策略既有功能性方面,也有与服务质量有关的方面,因此,在 功能和服务质量两个区中都有策略功能。 安全l 生( s e c u r i t y ) 是规则集,可以应用于调用服务的服务使用者的身份验证、 授权和访问控制。 事务( t r a n s a c t i o n ) 是属性集,可以应用于一组服务,以提供一致的结果。例如, 如果要使用一组服务来完成一项业务功能,则所有的服务必须都完成,或者没有 一个完成。 管理( m a n a g e m e n t ) 是属性集,可以应用于管理提供的服务或使用的服务。 2 1 5 应用 在面向服务的软件体系架构中,其核心思想就是:业务驱动,面向服务,模 式思维。面向服务的软件体系架构将企业应用构建成为服务的集合,一些大型的 企业应用可以将独立的企业过程以服务的形式封装起来。通过标准的协议,这些 服务可以由企业边界内部或者跨越企业边界的其他服务调用。采用面向服务的软 件体系架构构建企业应用,使得新的企业应用可以构建在己有服务的基础之上, 成为组合服务。另外由于采用了标准的协议访问和调用服务,使得服务可以做到 位置独立。使用服务的用户也可以通过对服务注册中心的查找获得服务的描述信 息。获取描述信息后,用户可以与服务协商调用的接口,实现对服务功能调用的 绑定。如前所述,当代s o a 是一个分布式架构模型,使用w e b 服务来构建。因 此,一个具备s o a 能力的开发与运行环境平台,将适用于支持w e b 服务技术集的 分布式编程架构i l 引。因此有两个新需求: ( 1 ) 要有能力将软件程序划分为自包含的和可组合的处理逻辑单元,并能在 运行时内部或跨实例相互通信。 ( 2 ) 要能够通过行业标准的w r e b 服务技术封装和暴露应用逻辑。 新增层 基础软件 技术架构层 图2 3 构建s o a 所需的开发与运行平台的常见层次 为此,需要升级我们的基础架构模型以便能架构面向服务解决方案,并要增 加新层以代表刚识别出来的需求。如图2 3 、一、0,_、 2 1 6 生命周期 面向服务体系架构中的每一个服务的生命周期【2 】 对于三个角色主体即服务提 供者、服务请求者、服务注册者来讲都涉及到了设计实现、部署、运行和管理四 个阶段。而这四个阶段对于每个角色主体来说任务和需求都是不同的。 ( 1 ) 设计实现( d e s i g na n di m p l e m e n t a t i o n ) 在设计实现的阶段包括服务实现、服务的接口描述文件制定、服务接口定义 的开发和测试。服务的实现主要通过开发新的服务、将现有的应用转化为服务、 将其他的服务和应用组合为新的服务等三种方式来实现。 ( 2 ) 部署( d e p l o y ) 服务的部署包括两个方面: 服务描述信息的发布,把服务对应的描述文件发布给服务的请求者或者是 服务的注册者; 把服务的可执行体部署到一个可执行的环境中,通常情况下该可执行环境 就是一个应用服务器。 ( 3 ) 运行( r u n ) 运行阶段可以调用服务。在该阶段,服务已经部署完毕,可以通过传输媒介 来调用,服务请求者可以执行查找和绑定操作。 ( 4 ) 管t 里( m a n a g e ) 管理阶段涵盖了服务的各个方面,安全性、可用性、性能、服务质量( q o s ) 以 及企业流程,这些都是管理阶段所必须考虑的问题。 2 2w e bs e r v i c e 技术体系 2 2 1w e bs e r v i c e 概述 w e bs e r v i c e ! 1 3 】不是一个全新的概念,它是在己经相对成熟的c o r b a ,r m i 以 及x m l 基础上迅速发展起来的一种技术体系。w e bs e r v i c e 的消息表示和传输是基 于x m l 和h t t p 这些得到了业界广泛采用和认可的标准协议基础之上的,因此能够 很好的解决传统中间件在系统集成过程中穿越防火墙以及各类中间件之间互操作 性差等问题。w 3 c 对于w e bs e r v i c e 的定义是【i j :由u r i ( u n i f o r n lr e s o u r c e i n d i c a t i o n ) 标识的一个程序应用,它的接口和绑定可以通过x m l ( e x t e n s i b l em a r k u p l a n g u a g e ) 格式的文档进行定义、描述和发现,它使用基于x m l 的消息通过网络 协议与其它应用交互。i b m 对于它的定义是:w e bs e r v i c e s 是一种自包容、模块化 的应用,它能够被描述、发布、定位并且能够通过网络被调用。应该说w 3 c 的定 义描述了w e bs e r v i c e 的实现方式,而l b m 则是从组件的角度对其进行了定义。本 文从实现的角度讲比较同意i b m 的观点,因为w e bs e r v i c e s 从某种程度讲就是一种 组件。 现在广泛使用的w e bs e r v i c e s 由s o a p h 1 ( s i m p l eo b je c ta c c e s sp r o t o c 0 1 ) , w s d l 【i 副( 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 ) ,以及u d d i ( u n i v e r s a ld i s c o v e r y , d e s c r i p t i o n 和i n v e n t o r y ) 这三个核心部分组成。s o a p 提供一种标准的远程过程调用 方法来调用w e bs e r v i c e ,并且描述了怎样在服务问传递命令、参数等;w s d l 贝, 0 被用于描述如何调用w e bs e r v i c e ,它类似于c o r b a 中的i d l ,它可以称为是基于 x m l 的合同语言,能够描述访问w e bs e r v i c e 所需要的消息,然后将服务绑定到具 体的传输协议和消息格式;u d d i 提供了通过网络注册、发现w e bs e r v i c e 的机制。 w e b 服务通过h t t p 使用s o a p ,以便在服务提供者和消费者之间进行通信。服务 通过w s d l 定义的接口来公开,w s d l 的语义用x m l 定义。u d d i 是一种语言无关 的协议,用于和注册中心进行交互以及查找服务。这三者之间的关系如图2 3 所示: 图2 3s o a p ,w s d l ,u d d i 的作用图 另外,w e b 还包括事务处理、业务流程调度和安全授权等其他一系列相关规范 【5 】,这些规范构成了完整i 拘w e bs e r v i c e 体系结构,通常将这些规范的集合称之为 w e bs e r v i c es t a c k ,当前这些规范正在w 3 c 和u d d i 规范组的努力下,不断完善。 2 2 2s o a p 协议 在异构数据集成过程中,良好的数据传输机制是成功实现数据集成的基础。 s o a p 协议使用x m l 文件作为载体,是当前最好的一种实现机制。s o a p 协议最先 睦i m i c r o s o f t 公司提交给w 3 c 组织,并于2 0 0 0 年4 月通过1 0 版本。它是w e bs e r v i c e s 技术体系中数据传输的标准,定义了服务请求者和服务提供者之间的消息传输规 范。s o a p 用x m l 来格式化消息,用h t t p 来承载消息。s o a p 包括三部分:定义了 描述消息和如何处理消息的框架的封包( s o a p 封包) 、表达应用程序定义的数据类 型实例的编码规则( s o a p 编码规则) 以及描述远程过程调用和应答的协定 ( s o a p r p c 表示) 。 s o a p 规范主要包括以下部分: ( 1 ) s o a p 封装( e n v e l o p ) :构造定义了一个整体的s o a p 消息表示框架,可用于 表示消息中的内容是什么、是谁发送的、谁应当接受并处理它等方面。 ( 2 ) s o a p 编码规贝, 1 ( e n c o d i n gr u l e s ) :定义了一个数据的编码机制,通过这样 一个编码机制来定义应用程序中需要使用的数据类型,并可用于交换由这些应用 程序定义的数据类型所衍生的实例。 ( 3 ) s o a pr p c 表示( r p cr e p r e s e n t a t i o n ) :定义了一个用于表示远端过程调用和 响应的约定,例如如何使用h t t p 或s m t p 协议与s o a p 绑定;如何在传输过程调用 等。 图2 4s o a p 消息结构 s o a p 消息是由一个强制的s o a pe n v e l o p e 、一个可选的s o a ph e a d e r 和一个强 制的s o a pb o d y 组成的x m l 文档。在i n t e m e t 中,机器通常通过网络进行通信,发 送到执行计算的机器的数据必须被编码。在r p c 机制中,该格式是外部数据表示 ( x d r ) 标准。d c o m 的编码格式是n d r ( n e t w o r kd a t ar e p r e s e n t a t i o n ) ;c o r b a i i o p 则是c d r ( c o m m o nd a t ar e p r e s e n t a t i o n ) 。n d r 和c d r 这两种格式之间存在细微的 差别而使彼此无法兼容。s o a p 编码格式是一个简单类型系统,它使用x m l 进行类 型编码。x m l 数据编码格式非常灵活,s o a p 规范基于它定义了一个较小的集合。 当然,这种编码格式只是推荐使用而不是必需的,其它的数据编码也可以与s o a p 联合使用。由于x m l 是一种与平台无关的中性的数据表示方法,通过x m l 来包装 和传递信息,i :k , c o r b a ,j a v ar m i 及d c o m 这些以特定二进制格式传送数据所不及 的更大的优点,那就是与系统平台、程序语言、操作系统的无关性。 通过绑定s o a p 消息到h t t p 、s m t p 等网络上最常使用的、极为流行的通信协 议,s o a p 潲i 息就能够轻易地穿越防火墙。将s o a p 消息用h t t p 传输并不意味着 s o a p 重载h t t p 已有的语义,而是s o a p 的语义通过h t t p 的映射而成为h 1 v r p 的语 义。s o a p 很自然地利用h t t p 的请求响应消息模型,将s o a p 请求的参数放在h

温馨提示

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

最新文档

评论

0/150

提交评论