(计算机软件与理论专业论文)基于soa的某企业信息管理系统的设计与实现.pdf_第1页
(计算机软件与理论专业论文)基于soa的某企业信息管理系统的设计与实现.pdf_第2页
(计算机软件与理论专业论文)基于soa的某企业信息管理系统的设计与实现.pdf_第3页
(计算机软件与理论专业论文)基于soa的某企业信息管理系统的设计与实现.pdf_第4页
(计算机软件与理论专业论文)基于soa的某企业信息管理系统的设计与实现.pdf_第5页
已阅读5页,还剩46页未读 继续免费阅读

(计算机软件与理论专业论文)基于soa的某企业信息管理系统的设计与实现.pdf.pdf 免费下载

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

文档简介

摘要 本文从面向服务的架构( 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 的概念、特点、优势和它的体系结构,然后深入讨论了s o a 的实现方式一w e b 服务( w e bs e r v i c e s ) ,主要包括w e b 服务的基础知识和协议:x m l 、s o a p 、w s d l 和 u d d i ,并将它与传统的分布式计算技术进行比较,突出了w e b 服务的与平台无关、易 于扩展、易于集成等特点。 最后以国内某大型企业信息管理系统的建设为背景,设计了一个基于s o a 的应用 软件系统,并运用j 2 e e 的w e b 服务技术在系统原型上实现了这种架构的关键技术。 在案例分析中首先阐述了对系统的集成思想,介绍了系统的用户需求,分析了用例模 型,对传统体系架构进行改进,增加了w e b 服务功能,设计了用来实现s o a 的架构, 构建了基于s o a 的开发模型,最后基于这个开发模型,进行系统的具体实现。 关键词:s o ar e b 服务j 2 e e 面向服务的体系结构 a b s t r a c t t h i st h e s i ss t a r t sf r o mt h et h e o r e t i c a lk i l o w l e d g eo fs 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 ) ,i n t r o d u c ei t sc o n c e p t i o n ,c h a r a c t e r , a d v a n t a g ea n ds y s t e ms t r u c t u r e ,a n dt h e n d i s c u s s e st h ei m p l e m e n tm e a n so fs o a - - w e bs e r v i c e s ,m a i n l yi n c l u d i n gt h eb a s i s k n o w l e d g ea n dp r o t o c o l so fw e bs e r v i c e s :x m l 、s o a p 、w s d l 、u d d i ,m o r e o v e r c o m p a r i n gw i t ht r a d i t i o n a ld i s t r i b u t e dc o m p u t i n gt e c h n o l o g i e s ,i l l u m i n a t e st h et r a i t so fw e b s e r v i c e s ,s u c ha sp l a t f o r mi n d e p e n d e m l y , e x t e n d i b l ea n di n t e g r a t i o ne a s i l y a tl a s tt h i st h e s i sd e s i g n sas o a b a s e da p p l i c a t i o ns o f t w a r es y s t e m , a n di m p l e m e n t s t h ec o r et e c h n o l o g yo fs o af r a m e w o r ki ns y s t e mp r o t o t y p eu s i n gw e bs e r v i c e st e c h n o l o g y o fj 2 e eo nt h eb a c k g r o a n do fc o n s t r u c t i n gac e r t a i nd o m e s t i cl a r g e s c a l ee n t e r p r i s e g i n f o r m a t i o nm a n a g e m e n ts y s t e m t h i st h e s i sf i r s t l ye l a b o r a t e si n t e g r a t e dt h o u g h to ft h i s s y s t e m ,i n t r o d u c e su s e l - s r e q u i r e m e n t ,a n a l y s e st h ec s s em o d e l ,m a k e st h ei m p r o v e m e n t t o t h et r a d i t i o n a ls y s t e mc o n s t r u c t i o n , i n c r e a s e st h ew e bs e r v i c e sf u n c t i o n , d e s i g n st h e c o n s t r u c t i o nt or e a l i z et h es o a ,e o n s t r u c t st h ed e v e l o p m e n tm o d e lb a s e do ns o a ,f i n a l l y i m p l e m e n t st h i ss y s t e mb a s e do l lt h i sd e v e l o p m e n tm o d e l k e y 帕r d s :s o aw e bs e r vic e sj 2 e es e r vic o - o rie n t e da r c hit e c t u r e i i 长春理工大学硕士学位论文原创性声明 本人郑重声明:所呈交的硕士学位论文,基于s o a 的某企业信息管理系统的设计 与实现是本人在指导教师的指导下,独立进行研究工作所取得的成果。除文中已经 注明引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写过的作品成果。 对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意 识到本声明的法律结果由本人承担。 作者签名:显选型2 年上月望日 长春理工大学学位论文版权使用授权书 本学位论文作者及指导教师完全了解“长春理工大学硕士、博士学位论文版权使 用规定0 同意长春理工大学保留并向国家有关部门或机构送交学位论文的复印件和电 子版,允许论文被查阅和借阅。本人授权长春理工大学可以将本学位论文的全部或部 分内容编入有关数据库进行检索,也可采用影印、缩印或扫描等复制手段保存和汇编 学位论文。 作者签名 立垫丝2 丑年兰月生日 指导导师签名:左垫笸丛,翌生年鱼月丛日 1 1 $ 0 a 现状和发展态势 第一章绪论 面向服务的体系架构( 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 ,本文中用其通用的缩写s o a ) 是一种新型的软件开发体系结构,提出了一种新的解决软件重用和软件集成的方案“1 。 作为一种刚刚兴起的技术,s o a 具有无可比拟的优势,符合按需计算的发展潮流,尤 其适用于企业级的应用开发,通过采用面向服务的体系结构,企业能够迅速便捷的构 建开放的、模块化的、可重用的软件组件“1 。随着互联网络的迸一步发展,分布式应 用的不断普及,s o a 的应用会更加被人们所接受,成为继面向对象、面向组件之后的 新的设计方式”1 。因此可以预见,s o a 的发展会对软件设计思想产生很大的影响,并 对分布式企业应用的不断普及起到重大的促进作用。 在国外,s o a 并不是一个新名词,早在1 9 9 6 年g a r t n e r 就提出了此概念,但 是由于当时的技术不足以从真正意义上实现s o a ,所以并没有引起人们的足够重视。 随着网络技术的不断发展,特别是w e b 服务( w e bs e r v i c e s ) 技术的日趋成熟,许多 i t 业界巨头和科研机构都对此表现出极大的兴趣。 w 曲服务作为s o a 的一种实现手段,提供了基于x m l 标准接口的若干中间件, 具有完好的封装性、松散的耦合性、协议规范的标准性、高度的可集成性等特点,能 够很好的满足s o a 应用模式需求“1 。用w e b 服务来实现s o a 的好处是可以实现一个 中立平台来获得服务,而且随着越来越多的软件商支持越来越多的w e b 服务规范,会 取得更好的通用性。目前w e b 服务已经在电子政务、金融、零售、能源、交通、电子 制造、地理信息服务等行业和领域广泛应用。 。 中间件厂商对w e b 服务的支持和相关标准的制定也是不迭余力,以m i c r o s o f t 、 i b m 、o r a c l e 、h p 、b e a 等为首的计算机业巨头们,合作定义相关的w e b 服务标准, 并无一例外地使自己的软件产品、解决方案能够全面支持这些标准协议,使得这些公 司走在s o a 技术发展的最前沿。i b m 公司在s o a 相关产品的研发上已经投入了超过 l o 亿美元建立s o a 研发中心,并且很早就推出了w e b s p h o r 0 产品,支持各种有关的 w e b 服务标准;j a v a 技术的创立者s u n 公司提出了开放式软件架构s u n o n e ;m i c r o s o f t 公司的n e t 战略以x m l 为基础,成为其w e b 服务的主要产品“1 。 据i d c 预测:w e b 服务必将是分布式应用程序的主导架构,s o a 的市场需求平均 以9 4 的复合增长率高速成长,在未来l o 年,w e b 服务项目的总投入将达到1 8 4 0 亿 美元。与此同时,i b m 、b e a 、o r a c l e 等中间件厂商关于s o a 的实施案例、实施步骤 建议也纷纷出台,渐渐形成s o a 势不可挡的态势”1 。 据g a r t n e r 预测,到2 0 0 8 年s o a 将成为占有绝对优势的软件工程实践方法,它将 结束传统的整体软件体系架构长达4 0 年的统治地位“1 。 在国内,s o a 也逐渐成为时下的热门话题,但对比国外s o a 势不可挡的架势,国 内科研机构的理论研究成果并不多,关于s o a 的著作也很少见,大量企业才刚刚开 始s o a 之旅,对s o a 的应用也主要还是用于遗留系统的应用集成,在建设一个全新 的应用系统时,缺少一个通用的、可参考的应用系统架构。 目前,国内针对s o a 的研究,主要体现在部分中间件产品上。国内的中间件厂商, 比如中创软件、东方通、中和威等,其实都推出了基于s o a 总线的中简件产品,并且 具备了部署和运用s o a 的能力。东方通公司表示他们已经有了很多的s o a 应用的成 功案例,而且该公司是少数可以提供“既可以传统技术也可以s o a ”双重解决方案的 厂商;中和威推出了国内首个支持s o a 架构的e s b 产品i m e r b l l s ,方便了企业级信 息系统的应用整合与服务;上海( 复旦) 协达软件科技有限公司推出了基于s o a 的协同 软件和解决方案,是国内较成熟的应用s o a 的设计理念的产品“1 。 相信未来,无论是在国内还是国外,s o a 将在更大的范围内得到广泛应用。 1 2 论文研究的目的和意义 伴随着经济的飞速发展,企业的规模不断壮大,企业信息化所需的软件复杂度也 在增加,传统的软件体系结构暴露出了它们的弊端,新的体系结构正在崭露头角,解 决了过去软件开发中出现的种种问题。s o a 架构为软件体系结构注入了新的生命活力, 解决了软件开发中存在的互操作性、扩展性等问题。在s o a 时代,任何一个大的应用 软件系统,都不再由一个软件开发商独立完成,而是由不同厂商生产的基于基础标准 和接口的服务相互协作完成。每个厂商将专注于一种或几种服务类型的开发,努力提 高这些服务的性能和质量。从软件产业总体上看,这将降低软件开发成本,提高软件 质量,大大减少目前各软件厂商之间相同软件部分重复开发的问题。 w e bs e r v i c e s 是面向服务的分布式计算框架,具有松散耦合、与平台无关、易于集 成等优点,为i n t e m c t 上的分布式应用提供了有效的支持,是实现s o a 架构的最合适 的现实技术。w e b 服务被看作是s o a 的i n t e r n e t 应用,通过对w e b 服务的构建,人们 期望得到一个可编程的i n t e m e t ,实现分布式的计算和异构平台的信息集成,而代码可 以跨平台的j a v a 成为开发w e b 服务及s o a 集成的自然选择。 本论文的目的是采用面向服务架构的模式,对原有系统进行了重新的封装和集成。 对于那些已经存在的业务组件,不采用全部重新开发的方式,而直接将其封装成服务 的形式;对于目前系统还不具备的功能,则直接开发成w 如服务组件。这样减少了集 成的工作量与难度,集成后的系统具有开放性的标准体系,能友好地与其它异构系统 进行交互,争取给企业带来较大的经济效益。 本论文的意义在于把s o a 理论应用于轻量级s o a 系统的实现上,它将革命性地 改变传统的基于c s 、b s 结构的信息系统实现方式,使作为主体的人、作为客体的企 业以及经由网络传输的数字信息世界紧密的结合起来,最终目的是根本性地改变人与 2 数字世界、人与真实世界的交互方式,能够为任何信息系统的实现、整合、跨平台服 务提供新的模式。 1 3 论文研究的主要内容 1 通过比较传统软件体系结构的不足和问题所在,对未来软件体系结构的发展方 向s o a 做了深入的研究和探讨,介绍了s o a 的体系结构,分析了s o a 的特点与优势 等。 2 将s o a 的理念应用于信息管理系统设计中,主要采用的技术是w e b 服务,本 文接着介绍了w e b 服务的基础知识和协议,阐述了与s o a 的关系,并将它与传统的分 布式计算技术进行比较,突出了w e b 服务的优势。 3 论述了基于j 2 e e 平台设计应用系统,以某大型企业信息管理系统为实例,采 用w e b 服务技术实现其s o a 架构,结合s o a 架构的理论体系,对原有系统进行了重 新的封装和集成,详细设计与实现了系统的体系架构,重点介绍了系统中数据持久层、 业务逻辑层、服务层和表示层的实现,说明了采用面向服务架构的模式开发系统,较 原系统具有的新特点,并对未来做出了展望。 1 4 论文的组织结构 第一章主要介绍了s o a 在国内外的研究现状,论文研究的意义及其主要内容。 第二章主要从软件体系结构的角度出发,阐述了演化到s o a 的必然趋势,接着围 绕s o a 的概念、体系结构、特点、优势等方面进行深入的研究和分析。 第三章介绍了本文采用的实现s o a 的具体技术地bs e r v i c e s ,描述了w e b s e r v i c e s 的概念、特征、优势以及与s o a 的关系等,重点介绍了实现w e bs e r v i c e s 的 关键技术:x m l 、s o a p 、w s d l 、u d d i 。 第四章介绍了基于s o a 框架的某企业制氧站信息系统的分析与设计。首先介绍了 项目背景和概述,然后阐述了对系统的集成思想,介绍了系统的用户需求,分析了用 例模型,接下来对传统体系架构进行改进,增加了w e b 服务功能,设计了用来实现s o a 的架构,最后介绍了数据库设计。 第五章介绍在j 2 e e 平台下利用w e bs e r v i c e s 技术,针对某大型企业制氧站信息管 理系统进行了重新的封装和集成。首先介绍了实现平台和开发环境,接着重点介绍了 系统中数据持久层,业务逻辑层,服务层和表示层的实现,最后说明了采用面向服务 架构的模式开发系统,较原系统具有的新特点。 第六章对论文做了总结,为后续工作做出展望。 第二章面向服务体系结构( s o a ) 2 1 软件体系结构概述 软件危机使得人们开始重视软件工程的研究。起初,人们把软件设计的重点放在 数据结构和算法的选择上,随着软件系统规模的扩大,整个系统的结构和规格说明显 得越来越重要。软件危机的程度日益加剧,现有的软件工程方法对此显得力不从心。 对于大规模的软件系统来说,系统的总体结构设计和规格说明比起对算法和数据结构 的选择已经变得重要得多。在这种背景下,人们认识到软件体系结构的重要性,并认 为对软件体系结构系统深入的研究将会成为提高软件生产率和解决软件维护问题盼最 有希望的途径。 软件体系结构贯穿于软件开发和维护的全过程。开发过程中它能够帮助软件设计 者全面而深刻的理解系统各层次之间的关系,从而更好的分析系统的性能。同时,软 件体系结构是软件设计者之间以及设计者和用户之间快速高效交流的工具,提高需求 分析和软件设计的效率,能够将用户提供的业务信息和设计者的设计思想更好的融合 在一起。维护过程中,参照原有的软件体系结构,能够保证在不破坏完整性的前提下, 对系统进行维护、扩充和升级。软件体系结构是应付复杂需求、提高开发效率、改善 系统易维护性的有效措施。 2 2 软件体系结构的演变 为了应付不断增加的软件复杂度,进一步提高软件开发效率,软件体系结构也在 不断的改革中。大体上可以分为三个阶段:传统的软件体系结构阶段、基于组件的软 件体系结构阶段、面向服务的软件体系结构阶段。 1 传统的软件体系结构 早期的软件开发中,由于程序规模不大,并没有特别的考虑软件体系结构的问题, 只是以语句为基本单位,由语句组成模块,通过模块的聚集和嵌套形成程序结构。它 所强调的是结构化程序设计方法学,自项向下、逐步求精,并注意模块的耦合性,这 个阶段的应用程序把操作的数据、用户的接口以及业务逻辑的处理混杂在一个可以执 行的包中。这种软件设计的方法仍然在规模较小、系统复杂度较低的系统中被大量使 用,因为它需要少量的开发队伍和较短的开发周期,但是这种简单化处理会存在其它 问题,如可重用性差、可维护性差、系统集成性较差等。 2 基于组件的软件体系结构 随着系统复杂度和规模的大幅度增加,基于组件的软件体系结构应用而生。组件 是具有一定的功能,能够独立工作或能同其它组件装配起来协调工作的程序体。从软 4 件复用的角度看,面向对象技术实现了类级重用,而组件技术将重用提到一个更高的 层次上,它是对一组类的组合进行封装,并代表完成一个或多个功能的特定服务,也 为用户提供了多个接口。整个组件隐藏了具体的实现,只用接口提供服务。 与此同时,软件架构出现了多层的概念,其中经典的三层架构把应用程序从下到 上基本划分为数据层、逻辑层和表示层。功能独立的各层可以重用它们需要的组件, 从而使得软件开发效率大大的提高。数据层中涵盖了所有的数据格式;逻辑层独立出 来专门处理系统的业务逻辑,屏蔽了底层数据层访问差异和表示层的呈现差异;表示 层只需要把请求交给逻辑层,不需要考虑业务逻辑,然后从逻辑层得到返回结果并以 不同的方式呈现给用户。 3 面向服务的软件体系结构 面向服务的软件体系结构将所有功能都定义为服务。所有的服务都是独立的,服 务的内部实现对于服务的使用者来说是透明的,服务的使用者只需通过服务提供的接 口来调用服务,他所关心的不是功能如何实现的,而是该服务是否能返回他所期望的 结果。无论从技术角度,还是地理位置角度来看,服务的可调用性并不局限在某一个 特定的范围内,服务可能是在相同的应用程序中,也可能是在公司内部网内完全不同 的系统上的不同地址空间中,还有可能是在合作伙伴的系统上的应用程序中,服务可 能是c + + 开发,也可能是j a v a 开发,甚至可能是任何一种存在的语言开发的。 2 3 $ 0 a 的概念 随着w e b 服务的迅速发展,一种新的软件架构一面向服务的软件架构引起了学术 界和软件开发领域的极大兴趣,成为研究的热点。面向服务架构的核心是服务,那么 先来弄清楚什么是服务。 服务是一种粗粒度的、可动态发现的、基于接口的软件单元,它一般作为一个单 独的实例存在,是对现实世界中业务活动的一种抽象与建模。w 3 c 组织对服务的定义 是:服务提供者完成一组工作,为服务使用者交付所需的最终结果“1 。 了解了服务,下面就来看看s o a 的概念,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 的缩写,即面向服务的体系架构。 g a r t n e r 最早提出了这一术语,并做出如下定义:“面向服务的体系架构是一种客户 机服务器软件设计方法,其中应用由软件服务和软件服务使用者组成( 也称为客户机或 服务请求者) ,s o a 不同于通常的客户机服务器模型,它更强调的是软件组件之间的 松散耦合和使用分散的标准接口“。 众多i t 巨头们也纷纷对s o a 做出了定义。b e a 公司将其定义为:“s o a 是在计 算环境下设计、开发、应用、管理分散的逻辑( 服务) 单元的一种规范州”1 。i b m 公 司对s o a 定义如下:“面向服务的体系结构是一个组件模型,它将应用程序的不同功 能单元( 称为服务) 通过这些服务之问定义良好的接口和契约联系起来,接口是采用 中立的方式进行定义的,独立于实现服务的硬件平台、操作系统和编程语言,使得构 建在各种各样的系统中的服务可以用种统一和通用的方式进行交互。“” 可码s o a 仍在不断的发展成熟中,目前并没有非常准确的定义,也没有绝对的 准则。 2 。4s o a 的体系结构 2 4 1s o a 中的角色 1 服务提供者( s e r v i c ep r o v i d e r ) 1 服务提供者是一个可通过网络寻址的实体,它 接受和执行来自消费者的请求。它将自己的服务和接1 3 契约发布到服务注册中心,以 便服务使用者可以发现和访问该服务。它主要实现以下功能:( 1 ) 定义可提供的服务 功能。( 2 ) 设计并实现这些功能。( 3 ) 用w s d l 描述这些服务,并用u d d i 在服务 注册表项中发布w s d l 文档。 2 服务消费者( s e r v i c ec o n s u m e r ) :服务消费者可以是一个请求服务的应用、服 务或者其它类型的软件模块,它从注册机制中定位其需要的服务,并通过传输机制来 绑定该服务,然后通过传递契约规定格式的请求来执行服务功能。它主要实现以下功 能:( 1 ) 发现提供所需服务的w s d l 文档,通常通过访问服务注册表项来实现。( 2 ) 在w s d l 的基础上,通过s o a p 协议来与要访问的服务通信。 3 服务注册机制( s e r v i c er e g i s t e r ) :服务注册机制是一个包含可用服务的网络可 寻址的目录,它是接收并存储服务契约的实体,供服务消费者定位服务之用。它主要 实现以下功能:( 1 ) 增加、删除或修改已发布服务提供的服务数据。( 2 ) 按用户的请 求从注册表中查询服务数据。 2 4 2s o a 中的操作 1 发布( 注册服务) :为了使服务可访问,需要发布服务描述以使服务使用者可以 发现和调用它。 2 发现( 查找服务) :服务请求者定位服务,方法是查询服务注册中心来找到满足 其标准的服务。 3 绑定和调用( 绑定和调用服务) :在检索完服务描述之后,服务使用者根据服务 描述中的信息来调用服务。 2 4 3s o a 中的构件 1 服务:实现服务描述中所描述的接口的构件,可以是一个软件模块、一个组合 6 的服务、甚至是一段实现了接口描述的代码。可以通过已发布的接口使用服务,并且 允许服务使用者调用服务。 2 服务描述1 1 2 t 服务描述本身基于x m l 构造,用来指定服务使用者与服务提供 者交互的方式,指定来自服务的请求和响应的格式。 2 4 4 $ 0 a 中的协作 s o a 协作“3 1 由s o a 中的三个角色互相操作完成。服务请求者执行动态服务定位, 它向服务注册中心发起查询,查找服务。如果服务存在,注册中心就向服务请求者提 供接口契约和服务的端点地址,服务请求者得到契约和地址后发起对服务提供者的绑 定和调用。如图2 1 所示: 2 5s o a 的特点 图2 is o a 协作 s o a 是一种粗粒度、松耦合的软件架构,其服务之自j 通过简单、精确定义的接口 进行通讯,不涉及底层编程接1 :3 和通讯模型。本文总结出s o a 具有以下几个特点: 1 松散耦合:松散耦合消除了对系统两端进行紧密控制的需要。就系统的性能、 可伸缩性以及高可用性而言,每个系统都可以实现独立管理。松散耦合给服务提供者 和服务请求者提供了独立性,服务实现的修改完全不会影响到服务使用者,但要求基 于标准的接口和中间件来积极地管理和代理终端系统之间的请求“”。 2 租粒度服务:服务粒度指的是服务所公开功能的范围,一般分为细粒度和租粒 度。其中细粒度服务是那些能提供少量商业流程可重用性的服务,粗粒度服务是那些 能够提供高层商业逻辑的可重用性服务。选择正确的抽象级别是s o a 建模的一个关 键问题,设计中应该在不损失相关性、一致性和完整性的情况下,尽可能地进行粗粒 度的建模 1 4 1 a 3 提高了软件的可重用性:面向服务架构最基本的特点还在于它的软件可重用性, 因为每一个服务在设计时就是相互独立的,与系统中别的部分之间没有依赖关系,所 以同一系统内部的服务可以被其他服务所调用,不同系统之间也可以相互调用对方提 供的服务,充分提高了软件的可重用性。 4 协议无关性:通过底层的适配器可以完成消息在多种协议上的传输,以及在多 种协议上的协调管理。 5 快速的开发能力:通过w e b 服务组合可以快速的完成某项具体的业务操作, 通过服务提供者与服务请求者之间的无干扰的开发,可以使得两者之间并行开发。 & 编码灵活性:可基于模块化的底层服务,采用不同组合方式创建高层服务,从 而实现重用,这些都体现了编码的灵活性。 2 6s o a 的优势 面向服务的体系架构可以基于现有的系统投资来发展,而不需要彻底重新创建系 统。如果企业将开发力量集中在创建服务,利用现有的技术并结合基于组件的方法来 开发软件,将获得如下几个方面的好处,体现了s o a 的优势。 1 利用现有资产:通过使用适当的s o a 框架并使其可用于整个企业,可以将业务 服务构造成现有组件的集合。使用这种新的服务只需要知道它的接口和名称,服务的 内部细节以及在组成服务的组件之间传送的数据的复杂性都对外界隐藏了。这种组件 的匿名性使组织能够利用现有的投资,从而可以通过合并构建在不同的机器上、运行 在不同的操作系统中、用不同的编程语言开发的组件来创建服务,遗留系统可以通过 w e b 服务接口来封装和访问。 2 商品化基础架构:在所有不同的企业应用程序之间,基础架构的开发和部署将 变得更加一致。现有的组件、新开发的组件和从厂商购买的组件可以合并在一个定义 良好的s o a 框架内。这样的组件集合将被作为服务部署在现有的基础架构中,从而可 以更多地将基础架构作为一种商品化元素来加以考虑。 3 减少成本:随着业务需求的发展和新需求的引入,通过采用s o a 框架和服务器, 为现有的和新的应用程序增强和创建新服务的成本大大地减少了。同样,开发团队的 学习难度也降低了,因为他们可能已经熟悉了现有的组件。 4 持续改进业务过程:s o a 允许清晰地表示流程流,这些流程流通过在特定业务 服务中使用的组件的顺序来标识,这给商业用户提供了监视业务操作的理想环境。业 务建模反映在业务服务中,流程操纵是以一定的模式重组部件来实现的,这将进一步 允许更改流程流,而同时监视产生的结果,因此促进了持续改进。 5 以流程为中心的体系结构:现有的体系结构模型和实践往往是以程序为中心的, 应用程序是为了程序员的便利而开发的。在以流程为中心的体系结构中,应用程序是 为过程开发的,流程可以分解成一系列的步骤,每一个步骤表示一个业务服务。实际 上,每个过程服务或组件功能都相当于一个子应用程序,将这些子应用程序链接在一 8 起可以创建能够满足业务需求的流程流。 2 7 本章小结 本章从软件体系结构的角度出发,陈述了演化到s o a 的必然趋势,紧接着围绕 s o a 的概念、体系结构、特点、优势等方面进行深入的研究和分析。 9 第三章w e bs e r v i c e s 技术 3 1 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 的区别:w e bs e r v i c e s 指用于架构w e b s e r v i c e 的整体技术框架,而w e bs e r v i c e 则是使用w e bs e r v i c e s 技术而创建的应用实例。 w 3 c 对w e b 服务定义如下:w e b 服务是由u r l 识别的软件应用,它的接口和绑 定可以由x m l 构件进行定义、描述和发现。w e b 服务支持使用通过因特网协议交换的 基于x m l 的消息与其他软件代理直接交互“”。 w e b 服务是松散耦合的、可重用的软件模块,封装了离散的功能,它仅仅是一个 接口,对于使用者来说其内部实现细节是透明的。w e b 服务建立在超文本传输协议 ( h t t p ) 的基础上,以简单对象访问协议可扩展标记语言( s o a p x m l ) 作为通讯协议, 使用w e b 服务描述语言( w s d l ) 作为服务接口的描述方式,通过使用描述、发现和集 成( u d d i ) 发布服务、查找和绑定所需要的服务,此外它使用x m l 方式来描述所有数 据,真正与平台无关,因此可以轻松的实现跨系统跨语言交换数据。 3 2 w e bs e r v i c e s 的特征 1 模块化( m o d u l a r ) :保证了服务组件的重用、组合。 2 可访问性( a c c e s s i b l e ) :保证服务对于那些需要该服务的系统是可见的。 3 良好描述( w e l l d e s c r i b e d ) :服务通过一种机器能识别的服务描述来描述服务是 什么类型以及在什么地方。 4 实现独立( i m p l e m e n t a t i o n i n d e p e n d e n t ) :服务的接e 与服务的实现是完全隔离开 来的。 5 互操作( i n t e r g p e r a b i l i t y ) :通过定义标准的数据传输协议来使得在不同系统之间 的互操作。 6 自治性( a u t o n o m y ) :每个w e b 服务在其作用范围内完成某个特定的功能。w e b 服务之间以提供的接口访问,通过w e b 服务的组合来完成更复杂的功能。 3 3w 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 体系的主要优势在于: 1 高度的通用性和易用性:w e bs e r v i c e s 利用标准的i n t e m e t 协议( h t t p 、s m t p 等) ,解决了面向w e b 的分布式计算模式,提高了系统的开放性、通用性和可扩展性, 而c o r b a 、d c o m 、r m i 使用私有的协议,只能解决企业内部的对等实体间的分布 1 0 式计算,此外h t t p 协议能够很容易地跨越系统的防火墙,具有高度的易用性。 2 完全的平台、语言独立性:w e bs e r v i c e s 进行了更高程度的抽象,只要遵守w e b s e r v i c e s 的接口即可进行服务的请求与调用。w e bs e r v i c e s 将x m l 作为信息交换格式, 使信息的处理更加简单,厂商之间的信息很容易实现沟通,这种信息格式最适合跨平 台应用。此外w e bs e r v i c e s 基于s o a p 协议进行远程对象访问,开发实现可以通过各 种开发工具,而不需要绑定到特定的开发工具之上,这很容易适应不同客户、不同系 统平台以及不同的开发平台,而c o r b a 、d c o m 、r m i 等模型要求在对等体系结构 间才能进行通信1 1 6 1 。 3 高度的集成性:w e bs e r v i c e s 实质就是通过服务的组合来完成业务逻辑的,因 此,表现出了高度的组装性和集成性。可以说集成性是w e bs e r v i c e s 的一个重要特征。 w e b 服务体系结构是建立在服务提供者和使用者之间的松散耦合之上的,这样使得企 业应用易于更改。相对于原来的集成方式,w e bs e r v i c e s 集成体现了高度的灵活性, w e bs e r v i c e s 还可以提供动态的服务接口来实现动态的集成,这也是传统的解决方案所 不能提供的“”。 4 容易发布和部署:w e bs e r v i c e s 体系结构方案通过w s d l 、s o a p 、u d d i 等技 术协议,能够很容易实现系统的部署。 5 业界的支持:w e bs e r v i c e s 得到了m i c r o s o f t 强有力的支持,而且许多公司都把 w e bs e r v i c e s 看成通过一种非常简单的机制将不同的系统连接到i n t e m e t 的机会。 表3 1 列出了相关标准模型的技术特征,突出了w e b 服务的优势。 表3 - 1w e b 服务同其他分布式对象模型的特征比较 3 4w e bs e r v i o e s 与$ 0 a 的关系 s o a 和w e b 服务的体系结构是两个不同层面的问题,前者是概念模式,面向商业 应用,后者则是实现模式,面向技术框架 1 8 | o s o a 所表示的是一个概念上的模型,在这个模型中,松散耦合的应用在网络上被 描述、发布和调用。而w e b 服务则是由一组协议构成的协议栈所定义的框架结构,它 定义了在不同的系统之问通信的编程框架。可以说,w e b 服务体系结构实际上是s o a 的一个特定的实现,s o a 作为一个概念上的模型,它将网络、传输协议以及安全等具 体的细节都遗留给特定的实现。w e b 服务中的s o a p 、w s d l 正是定义这些具体实现 细节的标准,可以说w e b 服务只是一种能够实现s o a 特点的方式。 w e bs e r v i c e s 是就现在而言最适合实现s o a 的一些技术的集合,w e bs e r v i c e s 标 准的成熟和应用的普及为广泛的实现s o a 架构提供了基础。w e bs e r v i c e s 并不是唯一 实现面向服务体系结构的技术,可以找到许多其它组织成功实现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 是标准的,即使运行在不同的平台上, 底层的实现机理不同也可以顺利交互,这是以前的任何一种技术如c o r b a 或d c o m 都不能做到的,而且w e bs e r v i c e s 的定义与实现是分开描述的,即松散耦合,因此, 可以很方便地替换服务的内在实现,而不会对现有的系统造成任何冲击,这也极大地 促进了i t 架构的灵活性。 本文要关注的就是如何用w e bs e r v i c e s 技术实现s o a 理论。 3 5 w e bs e r v i c e s 实现$ 0 a 的关键技术 w e b 服务继承了x m l 语言的优势,是一种与语言、平台无关的开发技术,并采用 和支持国际公开的开放技术标准规范。目前已经有一系列基于x m l 的w e b 服务标准 被业界广泛接受,形成了w e b 服务的核心技术。服务的提供者可以用w s d l 描述服务, 用u d d i 在注册中心发布、注册w e b 服务,服务的请求者通过u d d i 进行查询,找到 所需的服务后,利用s o a p 绑定、调用这些服务。当然w e bs e r v i c e s 的具体实现并不 局限在这几种协议和技术上,任何支持w e b 标准的系统都能支持w e bs e r v i c e s 。图3 1 说明了如何在服务双方的w 曲服务交互中将它们组合在一起。 献w s d l 品置请求位置一, 图3 1w e b 服务交互关系图 s 回圈 一 心 s 雌 姒 一 鲫 郎薹 3 5 1w e b $ e r v i c e s 协议栈 w e bs e r v i c e s 建立在x m l 、s o a p 、w s d l 、u d d i 等标准规范之上,这些规范构 成了w e bs e r v i c e s 的基准规范,它们组成了w e bs e r v i c e s 的概念性协议栈“”,见表3 - 2 : 表3 - 2w e bs e r v i c e s 概念性协议棱 服务集成层w s f l 服务发现层 u d d i 管理 服务质量 安全 服务描述层 w s d l q u a t i t yo f 消息传输层 s o a p m a n a g e m e n ts e c u r i t y w e bs e r v i c e s 网络通讯层h r r p ,f t p ,s m t p 等 1 网络通讯层 w e b 服务要被服务请求者调用,就必须是可以通过网络访闯的。目前多数w e b 服 务的消息都是用h t t p 发送和接收的,但同时w e b 服务还支持其它i n t e r a c t 协议,如 f t p 、sm 1 1 p 等。 2 消息传输层 s o a p 是由u s e d a n d 、i b m 、m i c r o s o f t 等公司共同起草,由w 3 c 公布推荐的一 种分布式处理协议。它定义了分布式环境中应用软件之间互相调用的方法和传递数据 的标准方式。它是种简单的轻量级的基于x m l 的协议,定义在请求者和提供者对象 之闯,是w e bs e r v i c e s 中的核心协议。 3 服务描述层 服务描述层是描述文档的一个协议栈,使用w s d l 作为服务描述的标准。w s d l 由i b m 、m i c r o s o f t 、a r i b a 等公司提出,经w 3 c 通过,将w e bs e r v i c e s 描述为能够进 行信息交换的通信端点的集合,并对服务在通信中所设计的细节进行结构化的描述。 w s d l 也是基于x m l 的,可以对各种语言实现的服务接口进行描述。w s d l 描述了 w e b 服务的三个最基本的属性:服务做什么,如何访问服务,服务位于何处。 4 服务发现层 u d d i 解决在i n t e m c t 上查找、定位相应服务的问题。实现u d d i 规范的站点被称 为u d d l 操作入口站点,这些站点的整体被称为u d d i 商业注册中心。u d d i 提供了一 组使企业能够将自己提供的w e b 服务登记,并让别的企业用户能够查询并访问到这些 w e b 服务的标准接口,它提供一组公用的s o a p a p i ,用于实现服务中介。它的目的在 于促进基于w e b 服务的创建、描述、发现和集成。 5 服务集成层 服务集成层描述了w e b 服务的组合。单独的w e b 服务只能完成单一的工作,而事 实上的商务活动需要一系列的操作步骤,都不是单一的w e b 服务能够独立完成的。在 这种情况下,服务之间相互协作,具有弱耦合关系,形成一个完整的工作流程。w s f l 是i b m 的商务流程定义语言,描述商业活动各参与者的关系和数据联系,将商业流程 作为一个整体完整的提供给使用者,即将多个远程w e b 服务有计划地集成为一个独立 的w e b 服务。 6 其它 安全、管理以及服务质量贯穿于w e b 服务的整个体系结构,它们和上述的其它层 次共同构成了w e b 服务的协议栈。为了实现真正的w e b 服务,为企业级应用提供全面 的技术支持,还需要安全、管理以及服务质量等等以确保实际的应用。 1 x m l 的概述 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 可扩展标记语言) 伽1 标准是一个基于文本规范 的标记语言。与h t m l 使用标签来描述外观和数据不同,x m l 严格地定义可移植的 结构化数据。它可以作为定义数据描述语言的语言,例如标记语法或词汇、交换格式 和通讯协议等。 目前x l v l l 技术已经成为开放环境下描述数据信息的标准技术,也是w e bs e r v i c e s 中信息描述和交换的标准手段。在面向服务的体系架构中的关键问题就是服务如何描 述,服务描述的重点是要让服务请求者能够更好的理解服务。在服务描述中,x m l 模 式是基本数据类型的机制,所有服务描述技术都使用x m l 来表示。s o a 中服务的许 多强大的功能均来自x m l 的强大能力。 2 x m l 的组成 ) ( 1 l 文档主要由三个部分组成: ( 1 ) 序码:通常包括x m l 声明和文档类型声明等信息。 ( 2 ) 文档的主体( 元素,属性以及文档中包含的内容) :是由一个或多个元素组成的 层次树状结构,元素构成了x m l 文档的框架。在x m l 文档中,元素使用标签表示, 每一个元素都有开始标签和结束标签。在标签中,用户可以指定元素的名称和元素的 属性,属性允许用户使用名称值对的方式向元素中添加相应的附加信息。 ( 3 ) 可选的信息:包括注释、处理指令、命名空间等。 3 x m l 的验证 文档类型定义( d o c u m e n tt y p ed e f i n i t i o n ,d a d ) 和x m l 模式(

温馨提示

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

评论

0/150

提交评论