(管理科学与工程专业论文)基于web服务的分布式数据库共享模型的研究.pdf_第1页
(管理科学与工程专业论文)基于web服务的分布式数据库共享模型的研究.pdf_第2页
(管理科学与工程专业论文)基于web服务的分布式数据库共享模型的研究.pdf_第3页
(管理科学与工程专业论文)基于web服务的分布式数据库共享模型的研究.pdf_第4页
(管理科学与工程专业论文)基于web服务的分布式数据库共享模型的研究.pdf_第5页
已阅读5页,还剩59页未读 继续免费阅读

(管理科学与工程专业论文)基于web服务的分布式数据库共享模型的研究.pdf.pdf 免费下载

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

文档简介

北京工商大学硕士学位论文 摘要 近十几年来。信息技术飞速的发展,特别是信息技术与传统产业紧密结合, 促进了传统产业的变革并给传统产业带来了巨大活力。电子商务的发展要求地域 上分布,系统上异构的企业之间能够信息共享,相互操作。所以分布式数据库的 共享就成为需要解决的问题。 本文先研究了现有的分布式异构数据库的数据集成方法,分析了他们的优缺 点,由此引入w e b 服务技术构架,并且详细研究了w e b 服务的关键技术。总结了 w e b 服务的各种优点。 w e b 服务技术是一种新的分布式计算技术,它在跨i n t e r n e t 、跨平台等方面 有着其它技术不可比拟的优越性,为i n t e r n e t 上的分布式的异构数据信息的集 成提供了强有力的支持。 本文提出并设计了一个基于w e b 服务的分布式数据库共享模型,详细分析和 阐述了这个模型的基本原理和思想,分析了基于w e b 服务的分布式数据库共享 模型的组成结构和各部分的主要功能, 概括地说本文做了以下工作: 1 ) 研究了现有分布式数据库集成技术,分析了它们的优缺点。 2 ) 研究了w e b 服务,以及关键技术。 3 ) 提出了基于w e b 服务的分布式数据库共享模型,并分析了该模型的优点。 4 ) 实现了基于w e b 服务的华北制药流向管理系统。 关键词:w e b 服务:分布式数据库:共享 基于w e b 服务的分布式数据库共享模型的研究 a b s t r a c t t h e s ey e a t s ,t h es w i f td e v e l o p m e n to fi n f o r m a t i o nt e c h n o l o g y , e s p e c i a l l yt h e c o m b i n a t i o nb e t w e e ni n f o 皿a f i o nt e c h n o l o g ya n dt r a d i t i o n a li n d u s t r y , p r o m o t et h e t r a n s f o r m a t i o no ft r a d i t i o n a li n d u s t r ya n db r i n gg r e a te n e r g yt ot r a d i t i o n a li n d u s t r y b c c a u s et h ed e v e l o p i n go fe l e c t r o n i cc o m m e r c e ,c o r p o r a t i o n sw h i c hi nd i f f e r e n tp l a c e a n dh a v es y s t e mo fd i f f e r e n tt y p es h o u l ds h a r ei n f o r m a t i o n t h es h a r eo fd i s t r i b u t e d d a t a b a s ei sap r o b l e mn e e dq u i c k l ys o l v e d t h i sp a p e rs t u d i e st h em e t h o d so fd i s t r i b u t e dd a t a b a s ei n t e g r a t i o n ,a n a l y s e s a d v a n t a g ea n dd e f i c i e n c yo ft h e s em e t h o d s t h e ni tp a r t i c u l a r l ys t u d i e sw e b s e r v i c e s t e c h n o l o g yt r u s s ,t h ek e yt e c h n o l o g yo fw e bs e r v i c e s ,s u m m a r i z e st h ea d v a n t a g eo f w e bs e r v i c e s w e bs e r v i c e si san e wd i s t r i b u t ec a l c u l a t et e c h n o l o g y i th a ss u p e r i o r i t yo na c r o s s i n t e m e ta n da c r o s sp l a t i ts t r o n g l ys u p p o r t st h ei n t e g r a t i o no fd i s t r i b u t ei n f o 删o n o ni n t e r n e t t h i sp a p e rd e s i g n sam o d e lo fd i s t r i b u t e dd a t a b a s ei n t e g r a t i o nb a s e do nw e b s e r v i c e s ,a n a l y z e sp 血d o ea n di d e ao ft h i sm o d e l ,e x p l a i ns t r u c t u r eo ft h i sm o d e la n d m a j o rf u n c t i o no fe v e r yp a r t t os l i mu pid ow o r ka sf o l l o w s : 1 ) e x p a t i a t e dt h em e t h o d so fd i s t r i b u t e d d a t a b a s ei n t e g r a t i o ni ne x i s t e n c e , a n a l y z e dt h ea d v a n t a g ea n dd e f i c i e n c yo ft h e s em e t h o d s s t u d i e dw e bs e r v i c ea n dt h ek e yt e c h n o l o g yo fi t 3 ) d e s i g n e dam o d e lo fd i s t r i b u t e dd a t a b a s ei n t e g r a t i o nb a s e do nw e bs e r v i c e s a n da n a l y z e da d v a n t a g eo ft i f f sm o d e l 4 ) c a r r i e do u tt h ef l o ws y s t e mo fn o r t hc h i n ap h a r m a c e u t i c a lg r o u p c o r p o r a t i o nb a s e do nw e b s e r v i c e sa n dv a l i d a t e dt h i sm o d e l k e y w o r d :w e bs e r v i c o s :d i s t r i b u t e dd a t a b a s e :i n t e g r a t i o n 北京工商大学学位论文原创性声明 本人郑重声明:所呈交的学位论文是本人在导师指导下进行的研究工作所 取得的研究成果。除了文中已经注明引用的内容外,论文中不包含其他个人或 集体已经发表或撰写过的研究成果。对本文的研究做出重要贡献的个人和集 体,均已在文中以明确方式标明。本声明的法律后果完全由本人承担。 学位论文作者签名:趔毽日期:6年6 月1 日 北京工商大学学位论文授权使用声明 本人完全了解北京工商大学有关保留和使用学位论文的规定,即:研究牛 在校攻读学位期问论文工作的知识产权单位属北京工商大学。学校有权保留并 向国家有关部门或机构送交论文的复印件和电子版,允许学位论文被查阅和借 阅;学校叮以公布学位论文的全部或部分内容,町以采用影印、缩印或其它复 制手段保存、汇编学位论文。( 保密的学位论文在解密后遵守此规定) 学位论文电子版同意提交后,可于口当年口一年口二年后在学校图 书馆网站仁发布,供校内师生浏览。 学位论文作者签名:拙鱼导师签名 日期:d6 年6 月日 北京工商大学硕士学位论文 第一章绪论 1 1 研究背景 从七十年代起,集中式数据库得到了迅速发展和广泛使用,数据库共享的问 题出现了。这些数据库被独立地创建和管理,物理上和逻辑上都存在异构。每个 独立的数据库有自己的模式、数据模型、数据操作语言。这些数据库的异构性主 要体现在以下几个方面: 1 )计算机体系结构的异构,各个数据库运行在大型机,小型机、工作站、 p c 或嵌入式系统中。 2 )基础操作系统的异构,各个数据库系统的基础操作系统可以是u n i x , w i n d o w sn t ,l i n u x 等。 3 ) d m r s 本身的异构,可以是同为关系型数据库系统的o r a c l e ,s q ls e r v e r 等,也可以是不同数据模型的数据库,如关系、模式、层次、网络、 面向对象,函数型数据库。 4 )数据结构及语义异构,各个不同的数据库应用系统采用不同的数据结 构和语义表达方式。 特别是在i n t e r n e t 出现后,数据以几何级数的速度增长。使得数据库庞大 而复杂。随着企业采用各种相互独立的应用系统,在部分提高了效率的同时,这 些系统的相互独立性也为整体管理设置了障碍,它们缺乏一个统一的界面,没有 相互连接的信息渠道,数据通常都被封存在企业的不同数据库、主机、文件服务 器上,只有少数有特许访问权的用户能看到这些数据。从数据库研究的角度出发, w e b 网站的信息可看作是一个庞大、复杂的数据库。w e b 上的每一个站点都可看 作一个数据源,每个站点的内部数据是结构化的,然而站点与站点之间的信息和 组织都不一样,因此数据源是异构的。这样就构成了一个巨大的异构数据库环境。 同时由于历史的原因,各个企业在不同时期开发的各个内部系统之间存在的不可 兼容性,而又不想全盘放弃造成浪费,所以如何有效的实现这些异构数据库的信 息共享,成了当务之急。因此必须使各异构数据库间协同工作。 1 2 现有的数据库集成技术 面向对象的分布式计算技术是由r p c ( 远程过程调用,r e m o t ep r o c e s sc a l l ) 基于w e b 服务的分布式数据库共享模型的研究 机制演化而来的。b i r r e l l a n dn e l s o n ( 1 9 8 2 ) 将r p c 定义为通过在相互独立地址 空间中正在运行的进程之间的过程调用来传送成的同步的控制流和数据流。通 常,我们将r p c 理解为应用程序对运行在远端计算机上的代码进行调用。为实现 该调用的请求,在相互协作的计算机之间,需要使用特定的协议支持来对信息数 据进行请求、打包、发送和接收。 r p c 通常具有如下特征: 1 ) 特有的调用语义。 2 ) 参数和结果的类型检测。 3 ) 全部参数的功能性。 4 ) 优化响应时间而不是吞吐量。 5 ) 透明性,特别是异常处理和通信失败的透明性。 一个典型的r p c 结构如图2 3 所示 臣亟司区圄 图1 1r p c 的结构 为调用一个远程函数,客户程序要调用客户机存根( c l i e n ts t u b ) 。然后存 根将调用参数打包成一个请求消息并调用传输协议( t r a n t s p o r tp r o t o c a l ) 将 该消息传送到服务器。在服务器端,传输协议将消息传送给服务器存根( s e r v e r s t u b ) ,随后服务器存根解包请求消息并调用对象中真正的函数。 目前主流的面向对象的分布式计算技术有m i c r o s o f t 的c o m d c o m ,o m g 的 c o r b a 及j a v a 的p , m i 。 1 2 1c o r b a 的简介 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 ra r c h i t e c t u r e ,公共对象请求代理 体系结构) 是由o m g ( o b j e c tm a n a g e m e n tg r o u p ,对象管理组织) 提出的应用 软件体系结构和对象技术规范,其核心是一套标准的语言、接口和协议,以支持 2 北京工商大学硕士学位论文 异构分布应用程序间的互操作性及独立于平台和编程语言的对象重用。简而言 之,c o r b a 允许应用程序和其他的应用程序通讯,而不论他们在什么地方或者由 谁来设计。 c o r b a 体系结构如下: 1 ) 接口与i d l ( i n t e r f a c ed e s c r i p t i o nl a n g u a g e ) 语言 接口是c o r b a 系统中一个非常重要的概念,因为它代表了对象的服务能力, 为客户提供了操作对象的唯一方法。简单的说,接口就是一组相关函数的集合, 接口中每一个函数都给出了详细的说明,包括函数名、参数个数、参数类型、返 回类型以及可能抛出的异常。必须指出的是接口只定义了函数的原型,并没有给 出具体的实现,这就留给开发者足够的灵活性来提供他们自己的函数实现。接口 是通过一种中性的接口描述语言i d l ( i n t e r f a c ed e s c r i p t i o nl a n g u a g e ) 来 定义的。虽然i d l 语言只提供了被o r b ( o b j e c tr e q u e s tb r o k e r ) 操作的对象 的概念框架,但是o r b 在运行时并不需要i d l 的源代码。只要桩例程或运行状态 下接口库中的等价信息是可用的,o r b 就能通过特定的方式完成其功能。 2 ) 桩和构架 桩( s t a b ) 可以看成是实际对象在客户进程中的映像,其中的接口必须是预 先定义好的,因此它为客户提供了一种静态的调用方式。与桩相对应的构架 ( s k e l e t o n ) 为服务器提供了一种静态的实现方式。i d l 编译器翻译描述对象接 口的i d l 文件,生成对应具体编程语言的i d l 桩和i d l 构架。桩负责将客户 请求进行编码,发送到对象实现端,并对收到的结果进行解释,然后把结果或异 常返回给客户。与此相反,构架对客户的请求进行解码,定位目标对象和请求执 行的对象方法,激活该方法,然后把结果或异常信息编码返回给客户端。 3 ) 动态调用接口和动态构架接口 与桩和构架不同,动态调用接口d i i ( d y n a m i ci n v o c a t i o ni n t e r f a c e ) 和 动态构架接口d s i ( d y n a m i cs k e l e t o ni n t e r f a c e ) 提供了动态调用的方式和动 态实现的方式,它们使得用户可以在事先不知道对象接口信息的情况下通过查询 接口库或采取其它手段动态地获得对象接口信息,然后使用o r b 核心接口中的 d i i 动态调用方法构造客户请求并发送到对象实现。在对象实现方可以使用d s i 的动态分发机制处理客户方的请求。与静态方式相比,动态方式提供了很大的灵 3 基于w e b 服务的分布式数据库共享模型的研究 活性,但是它的工作效率没有静态方式高。另外,实现系统的接口大多可以预先 确定,所以大部分情况下都是采用静态方式。 客户方与服务器方所采用的方式并不一定要一一对应,也就是说,客户方支 持静态和动态两种调用方式,服务器方也支持静态和动态两种实现方式,经过组 合得到的四种方式都可能出现,例如,客户方使用静态调用方式,而服务器方使 用动态构架接口是允许的,反之亦然。 4 ) o r b ( o b j e c tr e q u e s tb r o k e r ) 核心和对象适配器 与u n i x 的实现机制相类似,c o r b a 规范将那些相对固定的、单一的功能提 取出来交由o r b 内核实现以保证它的可靠性、高效性与可重用性。作为整个c o r b a 系统的基础,o r b 内核通过屏蔽诸如服务器位置、实现方式、通信协议等具体细 节为客户方与服务器方之间的通信提供了透明的传输机制。当前的应用系统存在 着各种不同的对象实现方式,例如可执行程序、面向对象的数据库等,他们有不 同的定位对象、解释对象、激活对象的方法。因此,如果将现存的所有对象实现 的解决方案都包含在o r b 内核中,它必将非常庞大、冗余并且难以移植。为了确 保o r b 内核的高效与可移植性,一个称为对象适配器( 0 m a ) 的中间层加入到o r b 与对象实现之间。定位目标对象的任务从o r b 内核中分离出来交给对象适配器来 完成。 1 2 2c o m d c o m 的简介 m i c r o s o f t 的分布式c o m ( d c 0 m ) 扩展了组件对象模型技术( c o m ) ,使其能 够支持在局域网、广域网甚至i n t e r n e t 上不同计算机的对象之间的通讯。使用 d c o m ,你的应用程序就可以在位置上达到分布性,从而满足你的客户和应用的需 求。因为d c o m 是世界上领先的组件技术c o m 的无缝扩展,所以你可以将你现在 对基于c o m 的应用、组件、工具以及知识转移到标准化的分布式计算领域中来。 当你在做分布式计算时,d c o m 处理网络协议的低层次的细节问题,从而使你能 够集中精力解决用户所要求的问题。 d c o m 是组件对象模型( c o m ) 的进一步扩展。c o m 定义了组件和它们的客户 之间互相作用的方式。它使得组件和客户端无需任何中介组件就能相互联系。客 户进程直接调用组件中的方法。 图1 2 显示了d c o m 的整体结构:c o m 运行库向客户和组件提供了面向对象的 4 北京工商大学硕士学位论文 服务,并且使用r p c 和安全机制产生符合d c o m 线路协议标准的标准网络包。 图1 2d c o m :不同机器上的c o m 组件 下面介绍c o m d c o m 的工作机制。 在c 0 m d c o m 中,客户端应用远程调用组件的过程与前述的在c o r b a 中的客 户请求远程的对象实现的过程大致相同,不再赘述。但c o m d c o m 在具体的实现 上,有自己特有的套标准。下面主要分析两点: 1 ) 组件发现机制。在d c o m 中,每一个提供服务的组件都必须在注册表中注 册。一个c o m d c 0 m 对象对于客户程序唯一可见的是它所包含的一组接口,每一 个接口都由1 2 8 位的l i d 标识,在整个c o m d c o m 系统中都是唯一的( 包括分布 在不同机器上的c 0 m d c o m 系统) 。c o m d c o m 用对象的i i d _ i u n k n o w n 接口指针的 值来区分对象而没有独立的对象引用,任何对象在生命期内返回给客户程序的 i i d _ i u n k n o w n 接口指针值必须是相同的。由于c o m d c o m 的这个特点,使得 c o m d c o m 在w i n d o w s 平台上更容易实现,在其它平台上则较为困难。 2 ) 数据传输机制。d c o m 的数据传输机制所采用的线路协议是基于d c er p c 的。d c er p c 定义了一个有效的标准来将存储器中的数据结构和参数变换为网络 包。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 网络数据表示) 标准来表 示数据。它与平台无关并提供了一套丰富的可用数据类型。从理论上讲,d c 伽能 够支持包括t c p i p 、u d p 、i p x s p x 和n e t b i o s 在内的任何一种传输协议,可以 跨越i n t e r n e t 。但实际上,一般用户的p c 几乎不可能使用服务器执行基于领域 认证。不仅如此,由于大多数i n t e r n e t 连接仅对h 1 u r p 协议的端口开放,因此如 果防火墙或代理服务器分隔开了客户和服务器,d c o m 数据包几乎不可能通过。 尽管一些厂商,比如:m i c r o s o f t 和v i s i g e n i c ,都已经建立了通道技术,但其 产品对配置错误非常敏感并且它们之间不可交互。 5 基于w e b 服务的分布式数据库共享模型的研究 从上面的分析中可以看出,在c 0 m d c o m 机制中,虽然提供了统一的服务发 现机制,但是,由于其基于d c er p c 的数据传输的线路协议对防火墙配置的敏感, 特别是,由于安全的原因,大多数i n t e r n e t 连接仅对h t t p 协议的端口开放,使 得c o m d c o m 不能在i n t e r n e t 上传输数据,难以通过i n t e r n e t 发布组件。另外, 由于c o m d c o m 未获得众多厂商的支持,其实现仅仅局限于w i n d o w s 平台。这样, 使用c o m d c o b i 技术难以对分布的异构平台的数据信息进行集成。 1 2 3j a v a r 的简介 a p p l i c a t i o n r m is y s t e m c - ;“t 】【s e 】 善 s t u b s k e l e t i o n s r e m o t er e f e r e n c el a y e r t r a n s p o r t 图1 3j a v a r m i 体系结构 j a v a r m i ( r e m o t em e t h o di n v o c a t i o n ) 体系结构如图1 3 所示。j a v a r m i 体系结构包括三层: 1 ) s t u b s ( 存根) 和s k e l e t o n s ( 框架) 层。s t u b ( 存根) 完成远程对象代 理,定义远程对象实现的所有接口,通过下一层r r l ( r e m o t er e f e r e n c el a y e r ) 层提供的流序列化参数值和反序列化返回值等功能。s k e l e t o n s ( 框架) 主要完 成从服务器r r l 接受客户端激活,反序列化参数值和激活实际对象的实现,序 列化返回值提供给r r l 层等功能。 2 ) r e m o t er e f e r e n c el a y e r ( 远程参考层) 。r e m o t er e f e r e n c el a y e r ( 远 程参考层) 维护一个独立的参考协议,这个协议在需要时可由其他协议替换( 比 如:用i i o p 替换) ,同时,还为存根和框架提供流序列化服务,使用下一层传 输层传输数据。 3 ) t r a n s p o r t ( 传输层) 。传输层完成的主要功能:定位包含与客户端请求 相应的远程对象的r m i 服务器:和服务器建立一个s o c k e t 连接并将这个连接返 回给客户端的r r l :维护上述连接的“许可证”。 j a v a r m i 的工作机制如下: 1 ) j a v a 跚i 的所有的连接都是基于流的网络连接,所有的对象都必须作为 6 北京工商大学硕士学位论文 一个流传送。由于j a v a 对象序列化是专门针对j a v a 的,所以j a v a r m i 的服务 对象和客户对象都必须用j a v a 语言来写。 2 ) 传输层所建立的连接是位于两个j v m 之间的,即使两个j v m 运行于同一 台计算机上,它们之间的连接仍然要穿过它们的宿主机的t c p i p 网络协议栈。 不同的操作系统平台上的j v m 抹平了不同平台的差异,所以,j a v a r m i 可以被 用于不同的操作系统平台,具有较好的跨平台性。 3 ) j a v a r m i 传输数据的协议被称为j r m p ( j a v ar e m o t em e t h o dp r o t o c 0 1 ) 协议,它是一个操作于t c p i p 之上的j a v a 专用的传输协议。t c p i p 以两端的 i p 地址,端口号为基础在两台计算机之间提供一个持续的,基于流的连接。由 于j r m p 操作于t c p i p 之上,是j a v a r m i 的专用传输协议,那么,所建立的连 接就要使用特定的端口号,从而与c o r b a 和c o m d c o m 一样,面i 临着穿越防火墙, 跨i n t e r n e t 的困难。为了克服这个困难,开发人员提出了一些解决办法。例如: 可以使用基于h t t p 上的r m i 信道技术。在j a v a s o f t 中的r m i 带有一个缺省的 h t t p 信道机制。如果j a w r m i 使用j r m p 不能联系r m i 服务器,它就会开一个 通道,使请求穿过h t t p 并与一个可以截取这个请求的w e b 组件对话。j a v a s o f t 提供了一个c g i 脚本和一个s e r v l e t ,它们可以截取这些请求并将这些请求转发 到适当的e j b s 。但是,这种方法不支持h t t p ,所以,如果需要安全访问,开发 人员就必须自己实现h t t p 信道。另外,h t t p 上的r m i 信道可能会让性能严重下 降。这些解决办法往往带来两个方面的负面影响:其一,增加了应用系统的复杂 性和开发难度,其二,大大降低了系统的性能。由于这些负面影响,使得这些办 法不能运用于实际运行的系统中。 j a v a r m i 具有较好的跨平台性,但是它不能跨语言使用,服务对象和客户对 象都必须使用j a v a 语言。重要的是,与c o r b a 和c o m d c o m 一样,j a v a r m i 同 样面临着穿越防火墙,跨i n t e r n e t 的困难。因而,对于支持跨i n t e r n e t 的异构 数据信息的集成而言,它不是一种合适的技术。 1 3 课题的提出 从上面的介绍分析中,可以看到:c o r b a 、c o m d c o m 及j a v a r m i 等分布式 计算技术由于采用了专有的数据传输协议,在很大程度上受到网络环境的限制。 它们大多使用的专有协议需要通过特别的端口进行远程通信,从而在穿越防火墙 7 基于w e b 服务的分布式数据库共享模型的研究 的问题上,不同程度的存在着问题,因而不能很好的支持客户端和服务器通过 i n t e r n e t 进行通信,而且,它们要求客户端与系统提供的服务本身之间必须进 行紧密耦合,要求一个同类基本结构。这就使得系统十分脆弱,如果一端的执行 机制发生变化,那么另一端便会崩溃。所以,它们不能给予跨越i n t e r n e t 的异 构的数据信息的集成以有力的支持。 w e b 服务是当今i t 业界的焦点所在。各大主要技术提供者无一不在关注和 推动w e b 服务的发展。在产品方面,传统的中问件厂商对w e b 服务的支持也是不 遗余力。i b m 公司很早就推出了w e b s p h e r e 产品,支持各种有关的w e b 服务标 准:j a v a 技术的创立者s u n 公司新推出了开放式的软件架构s u n o n e ,力图融合 j a v a 和x m l ;m i c r o s o f t 的n e t 战略即以x m l 为基础,其新发布的n e t 将成为w e b 服务的主要产品,此外还有b e a 公司的w e b l o g i c ,o r a c l e 公司的 o r a c l e 9 i a p p l i c a t i o n s e r v e r ( o r a c l e 9 i a s ) 等,无一不体现了这些重量级的技术 提供商对w e b 服务的推崇和重视。 w e b 服务具有与操作平台,语言无关的特性,w e b 服务还具有可以轻松的穿越 防火墙等多方面的优点,利用w e b 服务能很容易实现分布式数据库共享。并且能 克服现有的数据库共享方法的缺点,具有很大的研究和应用价值。 北京工商大学硕士学位论文 第二章w e b 服务技术 2 1w e b 服务简介 2 1 1w e b 服务的概念 广义上讲,w e b 服务就是一种可以通过i n t e r n e t 标准协议或规范来访问的应 用程序,换句话说,w e b 服务就是可以通过u r l 访问的资源,这些资源可以通过 编程方式向客户返回信息。 w e b 服务像组件一样,也表示一个封装了一定功能的黑盒子,用户可以重用它 而不用关心它是如何实现的。w e b 服务提供了定义良好的接口,这些接口描述了 它所提供的服务,用户可以通过这些接口来调用w e b 服务提供的功能。开发者可 以通过把远程服务,本地服务和用户代码结合在一起来创建应用程序。 与当前传统的组件技术不同,w e b 服务使用标准通用的协议,而不是特定于 对象模型的协议( 比如d c o m , r m i ,这些协议要求在客户机和服务器上同时具有 特定的基础结构) 。在w e b 环境中,把组件的实现紧密地绑定在特定的组件技术 上是不切实际的,这将导致应用程序很难维护。而w e b 服务是使用h t t p 和 x m l ( e x t e n s i b l em a k e u pl a n g u a g e ) 等标准协议和数据格式进行通信,所以支持 这些协议和数据格式的系统都将能支持w e b 服务。 更重要的是,w e b 服务以消息的形式来提供其服务,它使用基于x m l 标准的消 息来作为数据通信的基本方法,这使得w e b 服务完全与开发语言,平台和对象模 型无关。w e b 服务可以使用任何语言,对象模型在任何的平台上实现,并且任意 的应用程序都可以使用w e b 服务。只要描述w e b 服务功能的接口和消息序列以及 协议保持不变,w e b 服务和客户应用程序就可以任意改变而不会相互影响。 2 1 2w e b 服务架构 w e b 服务技术是一种在i n t e r n e t 环境下让松散耦合的w e b 应用之间相互调 用,相互集成的技术框架。他的体系构架是一种新的体系构架,即面向服务的构 架s o a ( s e r v i c eo r i e n ta r c h i t e c t u r e ) 。s o a 是在开放的标准下实现的,它由3 个角色和3 项基本操作组成。w e b 服务的体系构架图如图2 1 所示。 9 基于w e b 服务的分布式数据库共享模型的研究 图2 1w e b 服务的体系构架 从图中可以看出,这个构架图强调了两个重要的方面,即角色和操作。在这 里,角色指的是不同类型的实体,而操作指的是实体为了使w e b 服务工作所完成 的功能。w e b 服务构架中的三种角色如下: 服务提供者( s e r v i c ep r o v i d e ) :从应用的角度来看,这是服务的所有者, 它提供的是一系列特定任务的软件资源的服务接口。其中包含商业实体的服务或 者可重用的子系统的服务接口。从体系结构的角度看,这是托管被访问服务的平 台。 服务请求者( s e r v i c e sr e q u e s t o r ) :从应用的角度来看,是要求执行特定 功能的应用或系统。从体系结构的角度看,这是寻找并调用服务,启动或与服务 交互的应用程序。服务请求者可以由浏览器,也可以是无用户界面程序。 服务注册中心( s e r v i c er e g i s t r y ) :是可搜索的服务描述注册中心,服务 提供者在此发布他们的服务描述。在静态绑定开发或动态绑定执行期间,服务请 求者查找服务并获得服务的绑定信息( 在服务描述中) 。对于静态绑定的服务请 求者,服务注册中心是体系结构中的可选角色,因为服务提供者可以把描述直接 发送给服务请求者。同样,服务请求者可以从服务注册中心以外的其它来源得到 服务描述,例如本地文件、f t p 站点、w e b 站点、广告和服务发现( a d v e r t i s e m e n t a n d d i s c o v e r yo f s e r v i c e s ,a d s ) 或发现w e b 服务( d i s c o v e r yo f w e bs e r v i c e s , d i s c o ) 。 这三个角色是根据逻辑关系划分的,在实际应用中,觉得之间很可能有交叉: 一个w e b 服务既可以是w e b 服务提供者,也可以是w e b 服务请求者,或者两者兼 而有之。这三个角色通过3 个基本操作:发布,查找,绑定来互相作用。服务提 1 0 北京工商大学硕士学位论文 供者向服务注册中心发布服务。服务请求者通过服务注册中心查找所申请的服 务,并绑定到这些服务上。 w e b 服务构架中的三种基本的操作行为:服务说明的发布,查找服务说明或 根据服务说绑定或调用服务。这些操作可能会执行一次或多次。 发布( p u b l i s h ) :为了能够访问服务,必须首先发布服务说明,服务请求者 才能够找到该服务。 查找( f i n d ) :服务请求者可以直接从服务提供者得到服务说明,也可以向 服务注册中心查询服务说明的位置。查找操作可以出现在服务请求者生命周期的 两个不同阶段:设计时刻和运行时刻,前者获得服务的接口说明用于程序开发, 后者获得服务的绑定说明用于服务的调用。 绑定( b i n d ) :在绑定操作中,服务的请求者在运行时刻使用服务说明中的 绑定信息定位,连接和调用服务,启动与服务的交互,调用服务的方法。 2 1 3w e b 服务的工作原理 客户端( 服务请求者) 对服务器端( 服务提供者) 的w e b 服务调用通常包括 多个步骤,图2 2 表示了一个完整的w e b 服务调用过程。 定位服务 注 册 w e b 户 返回发现文档 : w e b 服 务 量 请求服务j 一蚋啦 图2 2w e b 服务调用过程 1 ) 服务请求者向服务注册中心请求特定的服务,注册中心为请求者查找满 足请求的服务,如果有的话返回指向服务的w s d l ( w e bs e r v i c e s d i s c r i p t i o nl a n g u a g e ) 文档或发现文档链接。发现文档是一个含有w s d l 文档位置的列表。 1 1 基于w e b 服务的分布式数据库共享模型的研究 2 ) 服务请求者根据注册中心提供的w s d l 链接或发现文档中的w s d l 链接向 服务提供者请求w e b 服务说明,服务器以x m l 形式返回发现文档或服务 说明。 3 ) 服务请求者根据服务说明构建对应的w e b 服务代理对象,通过代理对象 以特定的格式向服务器发送服务请求,服务器则返回服务的响应。 在实际应用中,如果w e b 服务客户事先知道了某个具体的w e b 服务w s d l 的 u r l 时,则可以省去定位服务和请求发现文档的步骤。另外,一个w e b 服务的请 求者也可以同时是一个w e b 服务的提供者。 在上述的w e b 服务工作流程中,只有到了第三步客户端才对具体的远程 w e b 服务进行调用,并取得服务返回的结果。在这个w e b 服务调用过程中, 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 a l ) 协议是用于传送服务请求和服务运行结 果的关键因素。图2 3 表示了一个w e b 服务请求响应的过程。 客户端服务器端 响应转 w 曲服 供对象 r p c 响应 图2 3w e b 服务请求响应的过程 当客户端应用程序要对调用远程服务的某个w e b 服务时,不管客户端是什么 平台,首先将响应的r p c 请求发送到安装在客户端机器中的s o a p 运行时,s o a p 运行时负责将该r p c 请求基于s o a p 协议以x m l 格式封装成响应的s o a p 消息,这 些处理包括了请求发送者,请求接收者以及如何对请求进行处理等内容。如果 r p c 请求包括对象参数,s o a p 运行时还将对该对象以x m l 格式进行序列化。在生 成的s o a p 消息中还包括一个私有标记,该私有标记可以保证消息在传送时参数, 方法名和返回值的唯一性,从而使运行在服务器端的s o a p 运行时可以正确解析。 s o a p 运行时将所生成的s o a p 消息以h t t p 请求的方式发送到了提供w e b 服务的 服务器。与通常对h t m l 页面的h t t pg e t 请求不同的是,此请求设置了一些h t t p 北京工商大学硕士学位论文 h e a d e r ,标识一个s o a p 服务激发,和h t t p 包一起传送。服务器端的s o a p 运行 时在接收到的s o a p 消息后对其进行解析,从而生成最初的r p c 请求,并由w e b 服务对象进行处理。w e b 服务对象的r p v 响应结果将以和r p c 请求相反的发送顺 序发挥到客户端应用程序。可以看出,w e b 服务调用过程与一般的w e b 请求应 答方式很相似,只不过是用符合s o a p 规范的x m l 代替x m l ,并用h t t p 来传输。 2 1 4w e b 服务协议栈 为了实现发布,发现和绑定三个操作,必须由一个w e b 服务栈来容纳各层的 标准,图2 4 展示了当前投入使用的w e b 服务的协议栈:w e bs e r v i c e ss t a c k 。 w s f l 二互亟亟 s t a t i cu d d l d i r e c tu d d i w s d l s ( ) a p h c t p , f t p ,e m a i l , m o ,h o p 图2 4w e b 服务协议栈 1 ) 网络传输层 网络传输层是w e b 服务协议栈的基础。w e b 服务要被服务请求者调用,就必 须是可以通过网络访问的。互联网上可以访问的w e b 服务使用已经普遍部署点 网络协议。由于h t t p 是使用非常广泛的网络传输协议,因此成为了互联网环境 下w e b 服务使用的标准网络协议。同时在某些扩展应用领域,也支持s m t p 协议 ( 用于电子邮件) 和f t p 协议( 用于文件传输) 。而对于互联网环境中,w e b 服 务还可以使用中间件作为传输交互的基础架构,如i b m 的m qs e r i e s ( 即 w e b s p h e r em q ) 和c o r b a 。 2 ) 数据表现层 数据表现层的x m l 为整个w e b 服务上层协议提供了数据信息描述手段,x m l 是目前全球范围内用于描述数据和交换数据的一种标准方式。 基于w e b 服务的分布式数据库共享模型的研究 可扩展标注语言蹦l 作为互联网上的一种新的数据交换标准,其应用范围从 早先的w e b 消息描述,发展到后来的数据交换的开放标准,乃至目前的服务集成 和服务交互的开放技术,x m l 已经成为开放环境下描述信息的标准技术。w e b 服 务中的全部规范,技术都是以x m l 位底层的核心和架构基础,w e b 服务的调用 ( s o a p 技术) ,w e b 服务的界面描述( w s d l 技术) ,w e b 服务的发现( u d d i 技术) 都使用了x m l 作为信息描述和交换的标准手段。 3 ) 数据模型层 数据模型层是描述数据结构的数据模型( 也称为元数据) 。它同样是一种数 据;因此,描述数据结构的方式也是使用基础的数据表现方式:x m l 。 x m ls c h e m a 已经成为了x m l 中的标准数据建模语言,s o a p ,w s d l , u d d i ( u n i v e r s a ld i s c r i p t i o nd i s c o v e r yi n t e g r a t i o n ) 的x m l 语法都是采用 x m ls c h e m a 进行定义和描述的。x m ls c h e m a 已经成为了x m l 技术中的标准交流 工具。 4 ) 基于x 札的消息层 基于】( m l 的消息层使用的是基于x m l 的消息协议s o a p 。消息层是构筑在更低 的传输层之上的,这意味着s o a p 可以单独使用,也可以与任何传输协议联合使 用。所有的s o a p 消息都支持w e b 服务架构中的发布( p u b l i s h ) ,绑定( b i n d ) 和查找( f i n d ) 等操作。s o a p 由三个部分组成: a ) 一个是使用x m l 信封来描述信息内容的机制。 b ) 一个编序规则,用于编码各种类型的数据。 c ) 一个提供远程调用( r p c ) 和响应的机制。 5 ) 服务描述层 服务描述层为调用w e b 服务提供了具体的办法。w s d l 是一个基于x m l 格式 的定义服务的实现和接口的基础标准。这意味着w s d l 将服务的描述分为两部分: 服务实现和服务接口。在按照w s d l 进行服务实现之前,必须先定义服务接口。 w s d l 仅是一个基本的服务描述手段,要制定业务环境,服务质量和服务之间的 关系,还需要另外的描述手段。 6 ) 服务发布层 w s d l 文档可以由其他服务描述文档来补充,从而描述w e b 服务更高级的方面。 1 4 北京工商大学硕士学位论文 在服务用户生命周期的任意阶段,都可以将w s d l 文档提供给服务客户端。服务 提供者能够直接向服务客户端发布

温馨提示

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

评论

0/150

提交评论