(计算机应用技术专业论文)一种基于soa架构实现异构数据集成的研究与实现.pdf_第1页
(计算机应用技术专业论文)一种基于soa架构实现异构数据集成的研究与实现.pdf_第2页
(计算机应用技术专业论文)一种基于soa架构实现异构数据集成的研究与实现.pdf_第3页
(计算机应用技术专业论文)一种基于soa架构实现异构数据集成的研究与实现.pdf_第4页
(计算机应用技术专业论文)一种基于soa架构实现异构数据集成的研究与实现.pdf_第5页
已阅读5页,还剩57页未读 继续免费阅读

(计算机应用技术专业论文)一种基于soa架构实现异构数据集成的研究与实现.pdf.pdf 免费下载

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

文档简介

摘要 摘要 对于异构数据集成的应用研究,随着计算机应用的迅速发展和企业应用需求 的不断提升,已逐步成为当前计算机应用研究的一个热点。 本文在分析、比较若干原型系统优缺点的基础上,结合w e bs e r v i c e s 技术, 提出了一个基于s o a 的异构数据集成解决方案。基于本方案思想实现的异构数 据集成,结合了w e bs e r v i c e s 的互操作性、j a v a 的平台无关性、联邦集成的 良好扩展性以及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 b s e r v i c e s 的优势。接着明确了异构数据集成中要使用的一些核心概念,并确定 了本文要采取的异构数据集成方案:联邦数据集成。最后,详细介绍了基于s o h 数掘集成的体系结构和组成模块,并介绍了部分模块的实现。 本文的结尾,总结了设计和实现过程中的一些问题并就以后研究的方向进行 了简短的探讨。 关键词:异构数据源;数据集成:s 0 a ;w e bs e r v i c e s a b s t r a c t a b s t r a c t w i t ht h ef a s td e v e l o p m e n to fc o m p u t e rt e c h n o l o g ya n du r g e n tr e q u i r e m e n to f e n t e r p r i s e ,t h eh e t e r o g e n e o u sd a t a b a s ei n t e g r a t i o ni s s u e ,i sb e c o m i n gah o tt o p i co f t h ec o m p u t e rt e c h n o l o g ya p p l i c a t i o na n dr e s e a r c ha r e a t h i sp a p e rp r e s e n t so n es o ab a s e dh e t e r o g e n e o u sd a t a b a s e i n t e g r a t i o ns o l u t i o n , w h i c hu s ew e bs e r v i c e st e c h n o l o g yt oi m p l e m e n t t h es o l u t i o nc o m b i n e st h eg o o d i n t e r - o p e r a t i o no fw e bs e r v i c e s ,p l a t f o r mi n d e p e n d e n c eo fj a v at e c h n o l o g y , e a s y e x p a n s i b i l i t yo ff e d e r a t e dd a t a b a s et e c h n o l o g ya n dm o d u l a r i z a t i o no fs o a ,c o u l d s o l v e ss o m ek e yg o a l so fh e t e r o g e n e o u sd a t a b a s ei n t e g r a t i o n , s u c ha sb e t t e r i n t e r - o p e r a t i o na n dt r a n s p a r e n c ya c c e s st od i s t r i b u t e dd a t as o u r c e s t h i sp a p e rf i r s ti n t r o d u c e ss o aa n dw e bs e r v i c e st e c h n o l o g y , c o m p a r e sw e b s e r v i c e sw i t l lo t h e rm i d d l e w a r et e c h n o l o g y , s h o w st h eb e n e f i to f u s i n gw e bs e r v i c e s a n ds o a ;t h e ng i v e ss o m ek e yc o n c e p t sa n dt h e o r i e so fd a t ai n t e g r a t i o n , s e l e c t s f e d e r a t e dd a t a b a s ei n t e g r a t i o nt e c h n o l o g yi no u rs o l u t i o n ;f i n a l l y ,i n t r o d u c e so u r s o l u t i o na n d s o m ek e ym o d u l e so f t h i ss o l u t i o na n ds o m em o d u l e s i m p l e m e n t a t i o n a tt h ee n do ft h t sp a p e r , c o n c l u d e ss o m ep r o b l e m si nt h ep r o c e s so fd e s t g na n d i m p l e m e n t ;t h e n , g i v e sab r i e f d e s e r i p t i o no f f u t u r ew o r k k e y w o r d s :h e t e r o g e n e o u sd a t as o u r c e s ;d a t ai n t e g r a t i o n ;s o a ;w e bs e r v i c e s - i i 学位论文版权使用授权书 本人完全了解北京机械工业学院关于收集、保存、使用学位 论文的规定,同意如下各项内容:按照学校要求提交学位论文的 印刷本和电子版本;学校有权保存学位论文的印刷本和电子版, 并采用影印、缩印、扫描、数字化或其它手段保存论文;学校有 权提供目录检索以及提供本学位论文全文或者部分的阅览服务; 学校有权按有关规定向国家有关部门或者机构送交论文的复印件 和电子版;在不以赢利为目的的前提下,学校可以适当复制论文 的部分或全部内容用于学术活动。 学位论文作者签名:之f 浩国 2 蹦年弓月f 7 日 硕士学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师指导下,进行 研究工作所取得的成果。除文中已经注明引用的内容外,本学位论文 的研究成果不包含任何他人创作的、已公开发表或者没有公开发表的 作品的内容。对本论文所涉及的研究工作做出贡献的其他个人和集 体,均已在文中以明确方式标明。本学位论文原创性声明的法律责任 由本人承担。 签名: 剌烙国 沙站年;月1 7 日 第一章引言 第一章引言 1 1 论文的选题背景 随着计算机技术的发展和应用的日益广泛,企业等普遍积累了大量以不同 形式存储的电子数据,这些数据主要以关系型数据库、e x c e l 文档等格式存储, 它们构成了这些企业的信息数据资源。如何更好的利用这些数据,不仅是企业 内部管理和发展的需要,也是企业同其它企业交往,沟通的需要。 各大数据库厂商分别推出了自己优秀的数据库管理系统,如甲骨文公司的 o r a c l e 系列数据库,i b t l 公司的d b 2 ,微软的m ss q ls e r v e r 等。尽管数据库管 理系统能够满足大多数数据存储和管理的要求,但是这些通常是指在局部情况 下;在许多情况下,为完成一项工作,可能需要访问分布在网络间不同位置上 的多个数据库管理系统中的数据。典型的如:学校财务处要做一个关于学生详 细情况的报表,这需要分别得到学生个人详细信息及学生学习情况、在校表现 等信息,那么相关应用必须分别访问教务系统、人事系统的数据库系统来提取 相关数据,然后进行处理。但是现有的数据管理系统并不能提供这种支持,因 此需要研究分布的、异构的和自治的数据源如何同其他应用程序共享自己存储 的数据,同时保持各个数据源的数据完整性和一致性。如何以一种统一的方式 访问各个数据源中的数据,并使获得的数据在异构平台问进行高效的传输,同 时保持各数据源信息的一致性成为解决这一问题的关键。 当的我校即将和北京信息工程学院合并组成新的大学,如何将我校现有数 据信息同其他校区的数据信息进行有效的集成,实现有效的信息共享,以满足 新大学日常工作生活需要,是摆在我们面前一个现实而且紧迫的问题。 1 2 国内外研究现状 异构数据库集成系统的研究一直是国内外数据库领域中的一个研究热点。 当前几家大型的数据库厂商在其主流数据库产品同构集成的基础上,进一步提 出了各自的异构数据库库集成方案。其中o r a c l e 的o r a c l e1 0 9 提出了基于网 格的异构数据集成解决方案,i b m 使用d b 2 和i n f o r m a t i o ni n t e g r a t o r “1 及其它 产品组合来实现异构数据的集成。另外,一些中间件厂商也结合其产品提出了 自己的数据集成解决方案,如b e a 公司提出了基于其主流平台w e b l o g i c 的数据 第一章引言 集成方案1 。同时,国外众多的研究机构已经开展了这方面的研究,比较著名 的有土耳其中东科技大学的m i n d 系统,斯坦福大学的t s u n 删i s ,英国爱丁堡大 学和i b m 公司合作的o g s a - d a i 嘲项目等,国内主要有东南大学的联邦数据库系 统。1 ,华中科技大学得p a n o r a m a 系统。 以下就几种典型的研究原型和产品进行介绍: ( 1 ) 华中科技大学的p a n o r a m a 系统: p a n o r a m a 系统研究是在c o r b a 的一个实现v i s i b r o k e r 基础上开发了一个 多数据库系统。该系统的目的是使像o r a c l e 8 、s y b a s e 和d m 2 ( 由华中科技 大学开发的数据库管理系统) 等这样一些异构分布式数据库之间能够进行互操 作,从而实现信息共享。 ( 2 ) o g s a d a i 开源项目 0 g s a d a i ( o p e n g r i ds e r v i c e sa r c h i t e c t u r e d a t a a c c e s sa n d i n t e g r a t i o n ) 是英国爱丁堡大学和i b m 公司合作进行的一个开源项目。 o g s a - d a i 可以被看作是一个中间件产品,它的目标是使各种数据源,比如关系 数据库、x m l 文档、e x c e l 文档可以以w e bs e r v i c e s 的形式为外界提供数据共 享服务。 ( 3 ) i b md b 2i n f o r m a t i o ni n t e g r a t o r d b 2i n f o r m a t i o ni n t e g r a t o r 是i b m 为了能够联邦、搜索、高速缓存、转 换和复制数据开发的一款基于d b 2 的产品。作为一种联邦数据服务器,它提供 了对d b 2 通用数据库、i b mi n f o r m l x 圆产品以及来自m i c r o s o f t 、o r a c l e 、 s y b a s e 和t e r a d a t a 的数据库的“开箱即用”式访问。另外,它还可以访问来 自w e b s p h e r e m q 消息、x m l 文档、w e b 服务、m i c r o s o f te x c e l 、平面文件、 o d b c 或o l ed b 源以及生命科学行业特有的各种格式的半结构化数据。对i b m l o t u s oe x t e n d e ds e a r c h 的集成支持使解决方案能够对各种广泛的内容进行访 问,从而使之能访问各种内容资源库( 包括d b 2c o n t e n tm a n a g e r ) 以及电子 邮件数据库、文档资源库、第三方搜索引擎和l d a p 目录。 d b 2i n f o r m a t l o ni n t e g r a t o r 有一组丰富的转换功能,包括标准的s q l 函 数,比如字符串操作、算术计算、统计计算、联机分析处理函数和过程逻辑。 特定于类型的功能一比如计分算法( s c o r i n ga l g o r i t h m ) 或化学相似性搜索 的应用程序一进一步增强了现有的这一组丰富的转换。同时结合了可扩展样 式表语言( e x t e n s l b l es t y l e s h e e tl a n g u a g e ,x s l ) 转换,使文档互换和各种 2 第一章引言 显示特征的动态样式匹配更为方便。用户定义的函数使客户几乎可以标准化任 何数据类型的任何函数。另外,能够将w e b 服务当作内置函数进行访问,这意 味着任何w e b 服务( 比如货币转换) 可以变成嵌入式转换函数。 由于异构数据源集成系统还有一些难题尚未完全解决( 如语义冲突的消解, 查询优化、模式集成等) ,国内外研发的系统基本上都带有实验性质或是针对具 体的项目和应用,商业化的产品虽然也有少数几个( 如i b m 的联邦数据库系统) , 但是整体效果都不是很理想。从发展趋势来看,除了研究基本的语义冲突消解 等问题外,异构数据源系统还将研究网络环境下对半结构化信息、非结构化信 息的集成和查询以及广域动态数据传输环境下查询优化等一系列新问题。 1 3 论文的主要内容 异构数据集成需要解决的问题主要有三个方面:一种良好的数据传输机制 来实现系统间的互操作性和一种可行的方式实现对于异构数据的透明访问,在 实现以上功能的前提下能够保证各数据源的一致性和自治性。 根据以上分析,本文提出了一种基于s o a 的异构数据集成解决方案。目的 是利用w e bs e r v i c e s 开放性良好、互操作能力强的特点同时结合联邦数据集成 可扩展性能好的思想,较好的实现异构数据集成目标,同时实现系统的良好可 扩展性。本论文主要包括以下几个方面: 1 介绍论文的选题背景和国内外的研究应用现状; 2 引入s o a 概念,介绍w e bs e r v i c e s 技术,并将其与其他中日j 件技术进行了 比较。 介绍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 技术体系同以前比较流行 的各种中间件技术,主要包括j 2 e e 平台的r m i 和j m s 、w i n d o w s 平台的d c o m 方法以及c o r b a 技术等。明确指出s o a 以及w e bs e r v i c e s 的优点。 3 介绍异构数据集成中使用的一些概念和理论 首先介绍异构数据集成的特点、公共数据模型概念。接着从数据库管理系 统和数据结构语义级分别介绍了数据集成常用的方法,对比分析了多数据集成 和联邦式集成的不同和各自的优缺点。分析总结异构数据集成过程中核心需要 解决的问题,进而提出本文拟采用的方案。 4 提出基于s o a 的异构数据集成方案 第一章引言 在分析s o a 架构和w e bs e r v i c e s 技术体系的优点基础上,结合联邦数据集 成方案,提出基于s o a 的异构数据集成思想。对于几个核心模块进行了一些介 绍。 5 介绍原型系统己实现部分 在提出的集成方案基础上。展开的原型系统的部分实现以及实现思想。 本课题的实现采用了j a v a 、w e bs e r v i c e s 编程技术,充分利用了j a v a 语 言跨平台的优越性和w e bs e r v i c e s 开发互连的特点,以期能够实现异构数据集 成过程中不同数据源间的良好互操作性和跨平台移植特点。 1 4 论文的组织 全文共由七章组成,第一章引言,说明课题研究意义及相关调研工作。明 确论文的主要内容,介绍论文的组织结构。 第二章介绍了本课题将要使用的s o a 概念和服务实现技术w e bs e r v i c e s 技术体系,归纳了异构数据库系统集成的一些闯题,分析和比较了w e bs e r v i c e s 同其他中间件技术的优缺点。 第三章介绍了异构数据库系统集成的相关理论,包括数据集成理论、公共 数据模型等的相关概念。 第四章介绍本文提出的异构数据集成解决方案:基于s o a 的异构数据集成 解决方案,阐明系统实现的策略和关键技术。 第五章系统实现部分介绍。 第六章对系统进行总结,分析系统优缺点,对下一步研究工作进行展望。 4 第二章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 技术体系 2 1s o a 技术体系 2 1 1s o a 定义 i b m 于2 0 0 4 年3 月首次提出了s o a “4 ( 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 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 ) 是一个组件模型,它将应用程序的不同功能单元( 称为服务) 通过这些服 务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的, 它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种 这样的系统中的服务可以以一种统一和通用的方式进行交互”。 s e r v i c e - a r c h i t e c t u r e c o m “”将s o a 定义为:“本质上是服务的集合。服务 间彼此通信,这种通信可能是简单的数据传送,也可能是两个或更多的服务协 调进行某些活动。服务间需要某些方法进行连接。所谓服务就是精确定义、封 装完善、独立于其他服务所处环境和状态的函数。” l o o s e l y c o u p l e d c o m 将s o b 定义为:“按需连接资源的系统。在s o b 中,资 源被作为可通过标准方式访问的独立服务,提供给网络中的其他成员。与传统 的系统结构相比,s o a 规定了资源问更为灵活的松散耦合关系。” g a r t n e r 则将s o a 描述为:“客户端服务器的软件设计方法,一项应用由软 件服务和软件服务消费者组成s o a 与大多数通用的客户端服务器模型的不 同之处,在于它着重强调软件组件的松散耦合,并使用独立的标准接口。” 6 a r t n e r 相信b p m 和s o a 的结合对所有类型的应用集成都大有助益。s o a 极 大的得益于b p m 技术和方法论,但是s o b 面临的真正问题是确立正确的企业意 识,即:强化战略化的s 0 a 计划( 针对供应和使用) 并鼓励重用。” b e a 对s o a 的定义【2 2 1 则是:“s o a 是一个基于标准的组织和设计方法,它利 用一系列网络共享服务,使i t 能更紧密地服务于业务流程。通过采用能隐藏潜 在技术复杂性的标准界面,s o a 能提高i t 资产的重用率,从而加快了开发并更 加可靠地交付新的增强后的业务服务”。 虽然不同厂商或个人对s o a 有着不同的理解,但是仍然可以从上述的定义 中看到s o a 的几个关键特性:一种粗粒度、松祸合的架构,服务( 粗粒度功能 第二章s o a 和w e bs e r v i c e s 技术体系 _ _ _ _ _ _ _ _ _ _ _ _ _ _ - - _ _ _ _ _ _ _ _ _ _ - _ _ _ - _ _ _ _ _ _ _ _ _ _ _ _ - _ _ _ _ _ _ _ _ _ _ _ 一 单元) 之间通过简单、精确定义的接口进行通讯,不涉及底层编程接口和通讯 模型。 21 2s o a 栈 s o a 由一系列的模块组成,核心的由服务、服务描述、服务的注册机制以及 服务间的通讯规则组成,另外包括服务质量保证规则( 如事务、安全等) 等, 体系结构堆栈分成两部分,左边的一半集中于体系结构的功能性方面,而 右边的一半集中于体系结构的服务质量方面。这些元素概要介绍如下: 功能性方面包括: 传输是一种机制,用于将来自服务消费者的服务请求传送给服务提供者, 并且将来自服务提供者的响应传送给服务消费者。 服务通信协议是一种经过协商的机制,通过这种机制,服务提供者和服 务消费者可以就将要请求的内容和将要返回的内容进行沟通。 服务描述是一种经过协商的模式,用于描述服务是什么、应该如何调用 服务以及成功地调用服务需要什么数据。服务描述实际可供使用的服务 6 第二章s o a 和w e bs e r v i c e s 技术体系 业务流程是一个服务的集合,可以按照特定的顺序并使用一组特定的规 则进行调用,以满足业务要求。另外,可以将业务流程本身看作是服务, 这样就产生了业务流程可以由不同粒度的服务组成的观念。 服务注册中心是一个服务和数据描述的存储库,服务提供者可以通过服 务注册中心发布它们的服务,而服务消费者可以通过服务注册中心发现或 查找可用的服务。服务注册中心可以给需要集中式存储库的服务提供其他 的功能。 服务质量方面包括: 策略是一组条件和规则,在这些条件和规则之下,服务提供者提供服务 使其可用于消费者。策略既有功能性方面,也有与服务质量有关的方面; 因此,我们在功能和服务质量两个区中都有策略功能。 安全性是规则集,可以应用于调用服务的服务消费者的身份验证、授权 和访问控制方面。 传输是属性集,可以应用于一组服务,以提供一致的结果。例如,如果 要使用一组服务来完成一项业务功能,则所有的服务必须都完成,或者没 有一个完成。 管理是属性集,可以应用于管理提供的服务或使用的服务。 2 1 3s o a 部件的协作关系 面向服务的体系结构中各组成部分的协作遵循“查找、绑定和调用”模式。 其中,服务消费者执行动态服务定位,方法是查询服务注册中心或者注册文件 来查找与其标准匹配的服务。如果服务存在,注册中心就给消费者提供接口契 约和服务的端点地址。图2 2 展示了面向服务的体系结构中协作支持“查找、 绑定和调用”模式的流程。 7 第二章s o p * 和w e bs e r v i c e s 技术体系 图2 2s o a 部件协作流程图 面向服务的体系结构中的角色包括: 服务消费者:服务消费者是一个应用程序、一个软件模块或需要一个服 务的另一个服务。它发起对注册中心中的服务的查询,通过传输绑定服 务,并且执行服务功能。服务消费者根据接口契约来执行服务。 服务提供者:服务提供者是一个可通过网络寻址的实体,它接受和执行 来自消费者的请求。它将自己的服务和接口契约发布到服务注册中心, 以便服务消费者可以发现和访问该服务。 服务庄册中心:服务庄册中心是服务发现的支持者。它包含一个可用服 务的存储库,并允许感兴趣的服务消费者查找服务提供者接口。 面向服务的体系结构中的每个实体都扮演着服务提供者、消费者和注册中 心这三种角色中的某一种( 或多种) 。面向服务的体系结构中的操作包括: 发布:为了使服务可访问,需要发布服务描述以使服务消费者可以发现 和调用它。 发现:服务请求者定位服务,方法是查询服务注册中心来找到满足其标 准的服务。 绑定和调用:在检索到服务描述之后,服务消费者继续根据服务描述中 的信息柬调用服务。 2 1 4 服务定义 服务是s o a 的一个核心概念,它是组成s o a 的基础部分。服务是对于应用 8 第二章s o a 和w e bs e r v i c e s 技术体系 程序实现功能的一种抽象。用面向对象或者面向组件编程的思想来理解服务。 可以把服务看作一个函数或者组件所能实现的功能。但是,服务的概念比函数 或者组件所能实现的功能在粒度上要大,它是基于对业务流程的分割实现的, 更准确些它应该被称之为业务事务,它带有明显的事务特征一原子性。服务 可能是以前许多中间件( h i d d l e w a r e ) 功能的集合,例如,在一个简单的刷卡商 品交易过程中,首先我们需要调用身份认证中间件对持卡人的身份进行验证, 接着还要实现对其可取余额的查询检验,最后完成交易,而我们需要发布的服 务就是提供顾客刷卡付费服务;服务还可以是一个简单的手机号码归属地的查 询。 2 1 5s o a 架构优点 s o a 架构具有灵活和松散耦合的特点,这些特点能给企业应用带来很多实际 应用的好处。 1 利用现有的资产 s o a 提供了个抽象层,通过这个抽象层,企业可以继续利用它在i t 方 面的投资,方法是将这些现有的i t 资产包装成能够提供企业功能的服务。组织 可以继续从现有的资源中获取价值,而不必重新从头开始构建。 2 更易于集成和管理复杂性 在面向服务的体系结构中,集成点是规范而不是实现。这一点提供了实现 透明性,并将基础设施和实现发生的改变所带束的影响降到最低限度。通过提 供针对基于完全不同的系统构建的现有资源和资产的服务规范,集成变得更加 易于管理,因为复杂性是隔离的。当更多的企业一起协作提供价值链时,这会 变得更加重要。 3 更快的响应和上市速度 从现有的服务中组合新的服务的能力为需要灵活地响应苛刻的商业要求的 组织提供了独特的优势。通过利用现有的组件和服务,可以减少完成软件开发 生命周期( 包括收集需求、进行设计、开发和测试) 所需的时间。这使得可以 快速地开发新的业务服务,并允许组织迅速地对改变做出响应和减少上市准备 时间。 4 减少成本和增加重用 通过以松散耦合的方式公开的业务服务,企业可以根据业务要求更轻松地 使用和组合服务。这意味资源副本的减少、以及重用和降低成本的可能性的增 9 第二章s o a 和w e bs e r v i c e s 技术体系 加。 5 复杂性降低: 基于标准的兼容性,与点到点的集成相比降低了复杂性。 总的来说,s o a 提供了灵活性和响应能力,这对于企业的生存和发展来说 是至关重要的。在异构数据集成的过程中,采用一种灵活的架构,不仅能够在 现阶段大大提高系统设计的灵活性,而且能够有效提高系统的可扩展性。 2 2几种主要传统中间件技术 ( 1 ) 面向消息的中间件技术( m 0 d 嘲 面向消息的中问件实现了分布式异构平台上的应用程序之间的通信,并降 低了实现的复杂性,它可以很好的把通信过程的细节以及有关平台与协议的细 节隐藏起来。m o m ( m e s s a g eo r i e n t e dh i d d l e w a r e ) 的各项功能是通过a p i 获得 的。因此,应用程序之间交换数据时就不需要了解对方应用程序、体系架构和 平台等细节问题。 m o m 利用消息队列来临时保存消息,从而实现异步通信,即使消息的接收方 暂时不在,异步通信也允许进行通信,而且这些消息也会立即送出。但是异步 通信有一些明显的不足,因为服务器端无法同客户端通信,所以即使已经不能 再对请求信息进行处理了,它还会继续接受,从而带柬过载的危险。 图2 3m o m 进行通信的情况 图2 3 显示了两个应用程序利用m o m 进行通信的情况。 m o m 适用于应用程序之间事件驱动的通信。也适合面向对象系统,因为它模 i o 第二章s o a 和w e bs e r v i c e s 技术体系 拟了面向对象系统的消息发送和接收的通信方式。 ( 2 ) r p c r p c ( r e m o t ep r o c e d u r ec a l l ) 1 即远程过程调用,它是一种从一台机器或 一个进程调用另一台机器或另一个进程的模式,这种模式的调用通过网络实现。 远程过程调用是广泛应用的创建分布式应用的方法,这种办法来源于u n i x 环境 的处理思想,被普遍认为是创建分布式应用的有效方法。远程调用机制是首先 使用远程过程调用中间件的接口定义语言i d l ( i n t e r f a c ed e f i n i t i o nl a n g u a g e ) 定义调用顺序,然后用i d l 编译器对此定义进行编译,从而生成支持c l i e n t 和 s e r v e r 进行通信的管道s t u b 。s e r v e r 端破调用的远程过程需单独编写,并被 置入s t u b ,该远程过程需要在远程过程调用中间件中注册,以备调用。在远过 程调用运行时,应用实际上启动的是本地客户端的s t u b ,然后由s t u b 捆绑需要 调用的远程过程名称和参数,并将这些通过网络传递给s e r v e r 端的s t u b , s e r v e r 端的s t u b 实现不同平台之间数据格式的转换,将参数传递给被调用的过 程。相反的过程将调用结果由s e r v e r 返回c 1 i e n t 。具体过程如图2 4 所示: 图2 4r p c 调用流程图 远程过程调用的特点: 1 c l i e n t s e r v e r :远程过程调用实际上是通过c l l e n t s e r v e r 方式实现 的,因为其实现模型就是客户端的应用调用一个位于远端平台的进程或 服务。 2 数据封装:远程过程调用负责捆绑参数,实现不同平台之间参数的转换, 发送参数到远程过程。 3 同步性:即当c l i e n t 发出请求时,s e r v e r 进程处于运行状态。值得注 第二章s o a 和w e bs e r v i c e s 技术体系 意的是,使用线程( t h r e a d ) 可以实现异步模式。 4 复杂性:远程过程调用的实现环境可能需要系统级的任务来创建,因此 较复杂。但是创建一旦完成,这些对程序员就是透明的了。 远程过程调用的缺点是需要进行系统级的配置,导致了这样的系统实现比 较复杂。 ( 3 ) 对象请求代理1 】 请求对象代理( o b j e c tr e q u e s tb r o k e r ,o r b ) ,负责管理和支持分布式 对象和组件之间的通信。o r b 使分布式对象和组件能够无缝的集成在一起,而不 必担心其中的通信细节问题。o r b 实现了位置、编程语言、协议和操作系统的透 明性。分布式对象和组件之间是以接口为基础的,而且通常是同步的。o r b 常常 和组件定位服务在一起使用。 图2 5o r b 模型图 o r b 有三个主要的标准:o m gc o b r ao r b 标准;j a v ar m i 和r m i i i o p ; m i c r o s o f t 的c o m d c 咖c o m + 。 1 c o r b a c o r b a1 ic 蜘于1 9 9 1 年由o m g 提出,同时提出的还有接口定义语言 ( i n t e r f a c ed e f i n i t i o nl a n g u a g e ,i d l ) ,这些标准能够让客户服务器对象在 特定的o r b 实现间进行通信。而1 9 9 4 年提出并被采纳的c o r b a2 0 标准才真正 实现了不同生产厂商间的互操作性。c o r b a 是面向对象标准的第一步,有了这个 标准,软件的实现与工作环境对用户和开发者不再很重要,可以把精力更多地 放在本地系统的实现与优化上。 2 j a v ar m i ( j a v a 远程方法调用) 第二章s o a 和w e bs e r v i c e s 技术体系 远程方法调用r m i 池1 是s u n 公司用j a v a 语言所建立的分布对象计算环境。 这个系统可以说是从j a v a 编程语言流行开始发展起来的。其客户方程序是一个 j a v aa p p l e t 或j a v a b e a n s 对象,它通过r m i 内部通信机制调用应用服务器上的 j a v a 对象有关方法,继而以j d b c 等方式访问资源数据库。 由于j a v a 刚i 是在纯j a v a 环境下实现的,j a v a 语言本身的可移植性使得 r m i 具有很强的跨平台特性。此外,在处理纯j a v a 对象之间的通信时,蹦工具 有较高的效率。但是,r m l 只能访问j a v a 对象,这妨碍了它与其他语言编写的 应用之间的交互,影响了它的应用范围的扩展。 从i i i i 的内部实现机制来看,r m i 与c o r b a o r b 非常相似,可以认为是一 种广义上的o r b 。当前,r m i 与c o r b a 正在相互靠拢。s u n 已宣布采用h o p 作为 r m i 的标准通信协议,并将把c o r b a 的部分对象服务作为蹦工自己的对象服务 标准o m g 也拟在j a v a b e a n s 组件模型的基础上建立c o r 队自己的分布对象组件 模型。此外,c o r b a 标准还将推出一种新的对象传递方式,即传值方式,以便与 j a v ap 4 t i 保持一致。由此看来,在不远的将来,j a v ar m i 与c o r b a 将逐步融为 一体。 3 c o m + c o m + 是随着w i n 2 0 0 0 的发布,c o m + 并不是c 0 m 的新版本,它是c o m 的新发 展,或者说是c o m 更高层次上的应用。c o m + 的底层结构仍然以c o m 为基础,它 几乎包容了c o m 的所有内容。c o m + 是c o m ,d c o m 和m t s ( m i c r o s o f tt r a n s a c t l 0 1 3 s e r v e r ) 的集成,但更重要的一点是,c o m + 倡导了一种新的概念,它把c o m 组件 软件提升到应用层而不再是底层的软件结构,它通过操作系统的各种支持,使 组件对象模型建立在应用层上,把所有组件的底层细节留给操作系统,因此, c o m + 与操作系统的结合更加紧密,这也是c o m + q f 得等到w i n d o w s 2 0 0 0 发布才能 面世的主要原因。c o m + 不再局限于c o m 的组件技术,它更加注重于分布式网络 系统方面的应用,己经成为m i c r o s o f t 系统平台策略和软件发展策略的一部分。 c o m + 继承了c o m 几乎全部的优势,同时又避免了c o m 实现方面的一些不足。c o m + 紧紧地与操作系统结合起来,通过系统服务为应用程序提供全面的服务。 以上的几种中间件技术,是早期异构数据集成过程中普遍使用的技术。但 是这些技术的对象模型之间存在差异,这导致了使用不同技术开发的组件之间 的互操作性很差。为了实现组件之间的互操作,通常要求服务器端和应用端都 要有配置明确的、相同类型的协议,这样又会导致系统开发周期的加长和系统 第二章s o a 和w e bs e r v i c e s 技术体系 维护费用的增加。 另外,即使这些中间件能够艰难的实现跨平台以及应用程序之间的互操作 性,还要面临另一个很重要的阻碍一防火墙。各企业为了保护本地系统的安全 性,通常要安装防火墙产品。而防火墙通常对于c o r b a 等组件问的通讯认为是 恶意的,因此会阻挡它们之间的通讯,原因在于i i o p 、r m i 等需要通过一些受 到严格限制的t c p i p 端口。 2 3w e bs e r v i c e s 技术体系 w e bs e r v i c e 脚脚m 瑚凇1 不是一个全新的概念,它是在已经相对成熟的 c o r b a 、r m i 以及x m l 基础上迅速发展起来的一种技术体系。w e bs e r v i c e 的消 息表示和传输是基于) 【l i l 和h t t p 这些得到了业界广泛采用和认可的标准协议基 础之上的,因此能够很好的解决传统中问件在系统集成过程中穿越防火墙以及 各类中间件之间互操作性差等问题。 w 3 c 对于w e bs e r v i c e 的定义是:由u r i ( u m f o r mr e s o u r c ei n d i c a t i o n ) 标识的一个程序应用,它的接口和绑定可以通过x m l 格式的文档进行定义、描 述和发现,它使用基于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 的实现 方式,而i b m 则是从组件的角度对其进行了定义。本文从实现的角度讲比较同 意i b m 的观点,因为w e bs e r v l c e s 从某种程度讲就是一种组件。 现在广泛使用的w e bs e r v i c e s 由s o a p ( s i m p l eo b j e c ta 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 s d 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 l d 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 则被用于描述如何调用w e bs e r v i c e ,它类似于c o r b a 中 的i d l ,它可以称为是基于y a i 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 是种语言无关的协议,用于和注册中心进行交互以及 1 4 第二章s o a 和w e bs e r v i c e s 技术体系 查找服务。这三者之间的关系如图2 6 所示: 另外,w e bs e r v i c e s 还包括事务处理、业务流程调度和安全授权等其他一 系列相关规范【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 3 1s o a p 协议 在异构数据集成过程中,良好的数据传输机制是成功实现数据集成的基础。 s o a p 协议使用x m l 文件作为载体,是当前最好的一种实现机制。 s o a p 协议最先由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 技术体系中数据传输的标准,定义了服务请求者和服 务提供者之f b j 的捎息传输规范。s o a p 用) ( 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 编码规则( 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 绑定:如何传输过程调 用等。 第二章s o a 和w e bs e r v i c e s 技术体系 图2 7s 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 r n e t 中,机器通常通过网络进行通信,发送到执行计算的机器的数 据必须被编码。在r p c 机制中,该格式是外部数据表示( x d r ) 标准。d c 0 m 的编 码格式是n o 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 n l r n o n d a t ar e p r e

温馨提示

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

评论

0/150

提交评论