(计算机软件与理论专业论文)基于web+service的开放式分布计算求解器的研究.pdf_第1页
(计算机软件与理论专业论文)基于web+service的开放式分布计算求解器的研究.pdf_第2页
(计算机软件与理论专业论文)基于web+service的开放式分布计算求解器的研究.pdf_第3页
(计算机软件与理论专业论文)基于web+service的开放式分布计算求解器的研究.pdf_第4页
(计算机软件与理论专业论文)基于web+service的开放式分布计算求解器的研究.pdf_第5页
已阅读5页,还剩52页未读 继续免费阅读

(计算机软件与理论专业论文)基于web+service的开放式分布计算求解器的研究.pdf.pdf 免费下载

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

文档简介

茎:| ! :坠! ! ! ! ! ! 堕茎垫垄坌塑生墨查篓堂塑型壅篁! ! ? 0 9 3 摘要 w e b 服务是一个封装成实体并发布到网络上以供其他程序使用的功能的集 合,w e b 服务运行时,用户无需知道服务的实现机制,只需要知道服务接口即可 实现服务调用。随着网络技术的衍生和演变,w e b 服务已在商业软件领域得到了 极大的应用。 目前,w e b 服务还是一个不够成熟但发展很快的技术,它已广泛应用于工业、 商业等多个领域。本文展示了w e b 服务在构造分布式应用系统时的独特优势,同 时介绍了在设计与实现分布式求解系统时所用到的主要技术。并依据各个技术的 特点及优势,首先给出了“基于w e bs e r v i c e 的丌放式分布计算求解器的体系结 构”方案。该设计方案主要是充分利用网络的软硬件资源,将网络上的多个求解 器通过互相协调共同解决一个等式约束问题。本文就该方案的三个问题进行了探 究:( 1 ) 分布式计算求解器的体系结构:( 2 ) 求解器组件的构成,即如何将一个 求解器扩充成分布系统可用的求解器组件,使其具有开放性,也就是为求解器设 计一个外壳( w r a p p e r ) 的问题:( 3 ) 数学表达式树和d o m 之间的转换研究,由 于同一数学语义,在不同的系统中可能使用的符号和描述的结构可能都完全不同。 所以,必须存在一个转换器,将不同形式的数学语义描述转换为相同形式的 d o m m a t h m l ( d o mf o rm a t h m l ) 等问题进行了探究。最后,对该体系结构模型进行 了简化处理,并在简化后的模型上进行了系统集成与测试。 关键词:分靠式亡 算,m a t h m l ,d o m ,w e b 服务,x m l ,j l i n k ,求解器 苎主翌! ! ! 型! ! 塑茎垫壅坌查丛兰垄堡璺塑堡垒 a b s t r a c t a st h eb o o m i n ga n de v o l u t i o no fn e t w o r kt e c h n o l o g y , w e b s e r v i c ea p p l i e s g r e a t l yi nt h ea r e ao f c o m m e r c i a ls o f t w a r e ,w e bs e r v i c ei sac a p s u l a t e de n t i t yr e l e a s e d t on e t w o r kw h i c ha f f o r d saf u n c t i o n a ls e tf o ro t h e rp r o g r a m s ,w h e nt h es e r v i c ei s r u n n i n g ,t h ec l i e n tc a l lt h es e r v i c e ,i ti s n o tn e c e s s a r yt ok n o wt h er e a l i z a t i o n m e c h a n i s m d e t a i l ,j u s tn e e dg e tt h es e r v i c ei n t e r f a c e c u r r e n t l y ,w e bs e r v i c ei sn o tm a t u r ee n o u g h b u te v o l u t i v eg r e a t l y t h ep a p e r s h o w st h es p e c i a la d v a n t a g ei nf o r m u l a t i n gd i s t r i b u t i o na p p l i c a t i o ns y s t e m ,a n da tt h e s a m et i m e ,i n t r o d u c e st h em a i nt e c h n o l o g yi nd e s i g n i n ga n dr e a l i z i n gd i s t r i b u t i o n s y s t e m i nt h ef i r s tp a r t ,i tp u t sf o r w a r d t h es c h e m eo ft h ew e b s e r v i c eb a s e do n a r c h i t e c t u r eo f o p e nd i s t r i b u t i o nc o m p u t a t i o n s o l v e ra c c o r d i n gt ot h em a i nc h a r a c t e r a n da d v a n t a g eo fe a c ht e c h n o l o g y t h es c h e m em a k ef u l lu s eo ft h en e t w o r kr e s o u r c e o fs o f t w a r ea n dh a r d w a r e ,a n dm a k et h em u l t i s o l v e ri nn e t w o r ks o l v eae q u a t i o n c o n s t r a i n e dp r o b l e mb yw o r k i n gc o o r d i n a t e l ye a c ho t h e r t h ep a p e rr e s e a r c h e st h e t h r e ep r o b l e m so ft h es c h e m e :( 1 ) t h ea r c h i t e c t u r eo fd i s t r i b u t i o nc o m p u t a t i o ns o l v e r ; ( 2 ) t h ec o n s t i t u t e so f t h es o l v e rc o m p o n e n t ,n a m e l yh o wt od e s i g naw r a p p e r p r o b l e m f o rs o l v e r ;( 3 ) t h ec o n v e r s i o nb e t w e e nm a t h e m a t i ce x p r e s s i o na n dd o m ( d o c u m e n t a l o b j e c tm o d e l ) b e c a u s et h es a m em a t h e m a t i cs e m a n t i cp r o b a b l ye x p r e s si nv a r i o u s c h a r a c t e ra n d d e s c r i p t i o ns t r u c t u r ei nv a r i o u ss y s t e m ,t h e r em u s t b eac o n v e r s i o n t r a n s f o r mav a r i o u sf o r m a tm a t h e m a t i cs e m a n t i cd e s c r i p t i o ni n t ot h es a m ef o r m a ti n d o m m a t h m l ( d o m f o rm a t h m l ) f i n a l l y ,t h ep a p e r s i m p l i f yt h em o d e la r c h i t e c t u r e , a n di n t e g r a t e ,t e s ta n dr e l e a s ef o rt h es y s t e ma f t e rs i m p l i f i e dm o d e l k e yw o r d s :o p e nd i s t r i b u t i n gc o m p u t i n g ,m a t h m l ,d o m ,w e bs e r v i c e ,x m l , j l i n k ,s o l v e r 基于w e bs e r v i c e 的开放式分布计算求解器的研究 第一章前言 1 。1论文背景 随着w e b 技术的巨大成功及网络技术的飞速发展,w e b 已成为全球范围内访 问各种资源的存( 取) 平台。目前人们已经开发了一些基于w e b 的分布式计算系 统,如利用连接到i n t e r n e t 上的计算机的空闲c p u 时间进行计算的r s a l 2 9 索因 子项目和收集联网计算机的空闲机时、以提高资源利用率和吞吐率为目的的 p i r a n h a 和c o n d o r 等等。 从历史和技术的角度来看最为重要的分布式式应用技术有d c e 、d c o m ( c o m 4 1 ) 、c o r b a 2 1 和w e b 服务 5 】四种,前三种技术比较成熟并己得到广泛 应用,但同时也存在着各自的缺点。目前,w e b 服务是一个不够成熟但发展很快 的技术,它使用中性平台标准( 例如h t t p 和x m l ) ,这样w e bs e r v i c e 运行时, 用户不需要知道服务的实现机制,只需知道服务接口即可实现服务调用。所以只 要服务请求者和服务提供者连接在i n t e r n e t 上,即可实现服务,而与平台无关。 基于w e b 服务的强大功能和巨大的发展潜力,本文给出了“基于w 曲s e r v i c e 开 放式分布计算求解器”方案。设计该方案的目的是充分利用网络的软硬件资源, 将网络上的多个求解器通过互相协调,共同解决本地计算机不能解决的等式约束 问题。例如,一个问题中可能需要解决微积分和多项式问题,那么,就可以分别 将这些问题交给网络上其它相应的求解器去解决,这样一个大的问题,就有可能 在多个求解器的共用工作下,不必使用高性能的计算机就能够解决。但是,如何 才能使多个求解器加入到分布式计算系统中来,是实现分布式计算系统的关键问 题,本文就其中涉及到的几个方面进行了探究。 1 2 研究目的及意义 。 目的:充分利用网络的软硬件资源,将网络上的多个求解器通过互相协调共 同解决一个等式约束问题。 意义:可以利用网络上的一切以网络服务形式提供的各种计算软件资源解决 本地计算机不能解决的问题。 1 3 分布式计算中的相关问题 在分布式计算求解器系统的设计与实现中,分布式计算涉及的主要问题有下 列几个方面: 基于w e bs e r v i c e 的开放式分布计算求解器的研究 ( 1 ) 解决等式约束的统一语义描述问题。由于大部分的求解问题最后都可以归 结为一个等式( 或不等式) 约束求解,所以需要有一个大部分用户都认可的统一 的数学语义描述方法。目前,w 3 c 数学工作小组在x m l 的规范下提出用于数学 计算的标识语言规范m a t h m l ,已经被很多软件厂商承认,这为我们构建数学软 件间的互操作性提供了一个较好的思路,所以采用它作为描述等式约束的统一语 言是适合的。 ( 2 ) 不同计算系统叫计算资源相互利用问题。既不同的计算软件在表达式的逻 辑和内部表达方式、符号系统利用等方面可能都不相同,要实现相互利用必须首 先统一数学语义的描述,x m l 语言是一门中性语言,作为统一的数据交换描述语 言已得到广大软件开发商和用户的认可。 ( 3 ) 数学表达式的对象描述问题;d o m ( d o c u m e n to b j e c tm o d e l ,文档对象模 型) 作为描述和操作x m l 的文本的工具已经被w 3 c 组织推荐为标准。使用d o m 对象模型,按照m a t h m l 数学语义的描述标准来描述一个数式的方法,被很多研 究小组使用。 ( 4 ) 异构平台间的统合问题。目前主要有这几种标准即c o r b a 、 c o m d c o m 、和w e b 服务。w e b 服务使用中性平台标准( 例如h t t p 和x m l ) , 具有与平台无关性,所以只要服务请求者和服务提供者连接在i n t e r n e t 上,即可 实现服务。 ( 5 ) 解决分布式计算模型的传输问题。由于软件组件( 对象) 使用的分布式 计算协议不同而使得开发分布式应用程序十分麻烦。而简单对象传输协议 ( s i m p l eo b j e c ta c c e s sp r o t o c o l ,s o a p ) 是用基于文本的x m l 协议在分布式系统通 信,而不是用其他分布式计算协议( 例如c o r b a 、r m i 和d c o m ) 使用的二进 制格式。这使得s o a p 具有跨硬件平台、操作系统、编程语言和网络硬件平台的 高度互操作性。 ( 6 ) 如何查找与管理求解器所发布的服务。u d d i 注册表为我们提供了如何 发布信息和检索信息的规范。 ( 7 ) 如何将一个求解器扩充成分布式计算系统可用的求解器组件。本文采取 的方法是为求解器设计一个外壳( w r a p p e r ) 的方法,使一个专用的求解器封装成 为一个开放的求解器。 8 ) 丌放式分布式计算求解器作为提供服务的标准应提供哪些服务和服务策 略问题。本文采用的服务策略主要是针对基于重写规则的求解器采用遍历求解的 基于w e bs e r v i c e 的开放式分布计算求解器的研究 方法,遍历表达式的每个节点进行求解,最终返回可能的最简解。 ( 9 ) 特殊数学系统的表达式或其它形式的数学语义与m a t h m l 标准之间的 相互转换问题。 上述问题中很多已经解决或处于研究阶段。 本文对上述问题综合分析后,给出了自己的“基于w e bs e r v i c e 开放式分布 计算求解器的体系结构”:并就该体系结构中的两个问题进行了探究:一、求解 器组件的构成方法;这里假设输入输出的表达式都是严格遵守m a t h m l 标准的 m a t h m l 对象,这样。任意一个求解器,当它加入这个系统后,从网络侧看上去 它都应该是一个可以对m a t h m l d o m 对象描述的表达式进行求解的一个组件。这 个组件得到的解的结果仍然是一个m a t h m l d o m ,既实际上是为一个现有的数学 软件系统设计一个外壳( w r a p p e r ) ,它的作用就是将特殊的求解器经过包装,变 成一个通用的求解器。二、数学表达式树和d o m 之间的转换研究。在数学系统 中,数式的描述方法有很多。主要类型有基于表达式树的方法和基于参数( 或系 数) 的方法。本文采用的方法是,设计一个数学表达式与d o m 之间的相互转换 的转换器,利用转换器,可以实现树型描述的数式和d o m m a t h m l 之间的转换。 1 4 开发环境和工具 丌发环境在整个设计过程中占有非常重要的地位,在系统集成与测试时,需 要查阆资料,配置适合自己的开发环境。目前,由于数学计算工具m a t h e m a t i c a 已广泛用于科学、物理、生物等多个领域故用它来实现前端;而j a v a 是目前使 用最为广泛的网络编程语言之一,具有简单、面向对象、稳定、与平台无关、解 释型、动态等特点,因此选择j a v a 来作为编程语言;j l i n k 的独特的优势是可以把 任意j a v a 类装载到m a t h e m a t i e a 生成j a v a 对象、方法调用和从m a t h e m a t i c a 语言 直接存取j a v a 类,所以选择j l i n k 作为连接j a v a 与m a t h e m a t i c a 之间的工具。以 下是环境配置所用到的工具: 1 a p a c h ej a k a r t a t o m c a t - 4 0 4 2 a p a c h ea x i s 一一i r e 2 一s r c 3x e r c e s j b i n i 4 4 4 m a t h e m a t i c a 5j 1 i i n 1 kv 2 0 基于w e bs e r v i c e 的开放式分布计算求解器的研宄 1 5 论文结构 本论文的主要内容共分为五部分。 本章介绍了分布式计算涉及的主要问题及常用的解决方案及自己所做的主要 工作、目的和意义。 第2 章介绍了分布式技术的发展。该章介绍了最为重要的几种分布式应用技 术,并分析了他们的主要优缺点。通过对各种技术的研究,来揭示w e bs e r v i c e 在构造分布式应用系统时的独特优势。并着重介绍了w e b 服务结构和主要技术 如s o a p 、w s d l 和u d d i 。 第3 章就分布式计算涉及的主要相关技术进行了分析。对在当前分布式计算 中采用x m l 语言。、m a t h m l 语言和j l i n k 、m a t h e m a t i c 技术进行了探究。 第4 章对“基于w e bs e r v i c e 开放式分布式计算求解器”进行了系统分析和 结构设计。分析了在分布式计算中需要解决的几类主要问题,给出并设计了一个 “基于w e bs e r v i c e 开放式分布计算求解器的体系结构”方案。该方案介绍如何 将一个现有的求解器,扩充为一个分布式计算系统可用的求解器组件方法。 第5 章主要介绍在系统集成和发布时遇到的一些问题并给出自己的方案。 基于w e bs e r v i c e 的开放式分布计算求解器的研究 第2 章分布式技术简介 随着网络技术的普及和深化,如何更好的利用和共享现有的网络系统资源、 发挥网络系统的整体效率,已经成为人们关注和探讨的重要问题之一,而要解决 这个问题的关键技术之一就是分稚式计算技术,而如何在这复杂的分布式环境中 进行系统的管理和操作也变得越来越重要。 在2 0 世纪八十年代以前,计算机界普遍使用的是大型计算机,许多用户同时 共享计算机的c p u 资源、数据存储资源和其他内部和外部资源。访问这些计算机 要受到严格的限制,所采用的是以大型机为中心的计算模式,也叫分时共享型。 其特点是:集中控制,即所有用户提出的请求,全部由大型机处理;计算机应用 领域较小,信息共享程度较低,用户使用计算机都要到专用的终端机房,因此计 算机使用范围还局限在专业技术人员这一领域,且信息的利用率很低。因此,它 还不是真正意义上的分布式计算。 分布式计算是近2 0 年来影响计算技术发展的最活跃因素之一,它的发展经过 了两种不同的技术路线。第一种是理想的技术路线,试图在互联的计算机硬件上 设计全新的操作系统,由操作系统来管理各个独立的计算机,呈现给用户的是单 一的应用界面和统一的功能,在八十年代,学术界普遍追求这一目标,尽管产生 了一些技术成果和实验成果,但没有被用户和市场接受。第二种是现实的技术路 线,即在网络计算平台上部署分布式计算环境,提供开发工具和公共服务,支持 分布式应用,实现资源共享和协同工作。九十年代工业界普遍遵循这一技术路线, 产生了一系列行之有效的技术和广为用户接受的产品。 2 1 分布式技术的发展 当前人们所说的分布式技术是指在网络平台上开发、部署、管理和维护以资 源共享和协同工作为主要应用目标的分布式应用系统。从八十年代中期开始至今, 分布式计算技术已经走过了第一代,目前正处于第二代的成熟期,并开始孕育第 三代。 第一代分布式计算技术是在八十年代中期至九十年代初孕育和发展的,面l 晦 的主要问题是信息共享,采用的体系结构是经典的客户机r e 务器模式,使用的关 键技术是传统的计算概念和设施( 例如过程调用概念和文件设施) ,这些技术的应 用实现能够提供丰富的分布式系统服务,良好的分布系统管理和典型的分布系统 基于w e bs e r v i c e 的开放式分布计算求解器的研究 应用。 第二代分布式技术是九十年代至今孕育和发展起来的,主要解决的问题是异 构环境下的应用互操作,所采用的体系结构是面向对象的多层客户机服务器模 型,将中间件技术和面向对象技术应用于分布式计算,这些技术已经成为建立集 成构架和软构架标准的核心技术。 分布式对象技术是继面向对象技术之后的又一次软件技术的革命,融合了面 向对象技术和分布式技术,使得位于不同机器、不同平台的对象能够互相通信, 为分布式应用的开发提供了捷径。分布式对象存在于网络的任何地方,可被远程 客户应用以方法调用的形式访问。而对于分布式对象是使用何种程序设计语言和 编译器创建的,对客户来说则是透明的。客户不需要知道它所访问的分布式对象 在网络中的具体位置以及运行在何种操作系统上,该分布式对象与客户应用程序 可能在同一台计算机上,也可能分布在由广域网相连的不同计算机上。分布式对 象具有动态性,他们可以在网络上到处移动。 分布式对象技术采用厩向对象技术的多层客户机服务器计算模型,该模型将 分布在网络上的全部资源( 无论在系统层还是应用层) 都按照对象的概念来组织, 每个对象都有明确定义的访问接口。当一个执行线程打开一个通讯通道并等待另 一个线程与他联系时,他被认为是一个服务器。发起通讯与服务器联系的线程被 认为是一个客户。服务器中的对象不仅能够被访问,而且自身也可能作为其他对 象的客户。因此在分布式对象技术中,客户与服务器的角色划分是相对的或多层 次的。 2 2 几种分布式技术 从历史和技术的角度来看最为重要的分布式应用技术有以下四种: d c e ( d i s t r i b u t e dc o m p u t i n ge n v i r o n m e n t ) ; c o m d c o m ( c o m p o n e n to b j e c tm o d e l d i s t r i b u t e dc o m p o n e n tm o d e l ) ; c o r b a ( c o m m o n0 b j e e tb r o k ea r c h i t e c t u r e ) ; w e bs e r v i c e 2 2 1d c e d c e 是一个分布式计算环境,几个相互独立的系统可以通过它共享数据、处理 器、应用及设备,使得跨系统的操作做起来就象在一个单独的系统上一样。这些 独立的系统可以来自不同的厂商:可以运行着不同的操作系统:他们可以是微型 6 基于w e bs e r v i c e 的开放式分布计算求解器的研究 机、小型机甚至是超级计算机;他们所在的网络,可以是一个局域网,也可以是 一个全球性的广域网络。 d c e 是开放软件构架( o s v ) 的技术标准,是为支持过程而设计的。d c e 的远 程r p c 在工业中得到了广泛的应用,但d c e 不支持对象。 2 2 2c o m ,d c o m c o m ( 组件对象模型) 服务器能创建多对象类的对象实例。一个c o m 对 象可以支持多个接口,每个接口代表对象的一种不同的视图或行为。一个接口由 一套功能相关的方法组成。c o m 的客户程序通过获取指向一个对象接口的一个 指针,并通过该指针来调用方法以实现与c o m 对象之间的互相作用,就好像对 象驻留在客户程序的地址空间中一样。c o m 指定任何接口都必须遵循一个标准 的内存规划相同。由于该规范是二进制级别的,因此它允许集成可能用不同编程 语言如c + + 、j a v a 和v i s u a lb a s i c 等编写的二进制组件。d c o m 是m i c r o s o f t 的 c o m 的分布式扩展,它在d c er p c 的顶端建立了一个对象远程过程调用 ( o r p c ) 的层来支持远程对象。 2 2 3c o r b a c o r b a 的目标是定义一个架构,该架构能允许不同种类的环境进行对象级 通信,而无需考虑是谁设计了分布式应用程序的两个端点。它定义了允许客户机 服务器对象在对象请求代理( o b j e c tr e q u e s tb r o k e r ,o r b ) 的特定实现中相互 作用的接口定义语言( i n t e r f a c e d e f i n i t i o n l a n g u a g e ,i d l ) 和应用程序编程接口 ( a p p l i c a t i o np r o g r a m m i n gi n t e r f a c e s ,a p i ) 。o r b 是在分布式对象间建立请求者 提供者关系的中间件。c o r b a 2 , 0 于1 9 9 4 年1 2 月被采用,它通过指定来自 不同厂商的o r b 如何相互操作解决了互操作性问题。 o r b 将收到一条调用消息,来为注册的对象调用一个特定的方法。o r b 截 获这条消息,并负责搜索一个能执行该请求的对象,将参数传递给它,调用它的 方法,然后返回结果。理论上,请求节点无需知道对象的位置、它的编程语言、 它的操作系统等信息。 接口用一系列方法在外部把c o r b a 对象表现出来。一个对象引用可以识别 对象的一个特殊实例。c o r b a 对象的一个客户程序获取了其对象引用,并将它 用作句柄进行方法调用,就好像对象是位于客户程序的地址空间中一样。o r b 负 责搜索对象的实现所需要的所有机制,让它做好接收请求的准备,随后将请求传 基于w e bs e r v i c e 的开放式分布计算求解器的研究 达给它,并将回应( 如果有的话) 送回客户程序。 尽管c o r b a 和d c o m 已经在各种平台上得到了实现,然而实际情况是建立 在这些协议之上的任何解决方案都依赖于单一厂商的实现。因此,如果要开发一 个d c o m 应用程序,分布式应用程序中所有参与的节点都必须以w i n d o w s 风格 运行。如果要开发c o r b a 应用程序,应用程序环境中的每个节点都要运行相同 的o r b 产品。现在也有来自不同厂商的c o r b ao r b 能够相互操作。但是那种 互操作性并不能扩展到像安全与事务管理那样的更高级别的服务中去。不仅如此, 所有特定于厂商的优化在这种情况下将丢失殆尽。 这两种协议都依赖于严格管理的环境。要找到能成功地在外部调用d c o m 或 i i o p 的任意两台计算机的几率比较小。此外,程序员们必须处理数据排列和数据 类型所需的协议唯一的消息格式规则。d c o m 和c o r b a 都是服务器对服务器通 信的合适的协议。然而,它们在客户机对服务器通信方面都存在严重的缺陷,特 别是当客户机遍布因特网时。 尽管c o r b a 和d c o m 存在着局限性,但由于我们迫切需要一个分御式计算 模型,因此它们还是得到了广泛的应用。事实上,随着因特网的出现,企业越来 越强烈地希望在公司外部与分布式应用程序结合。那么一个成功的分布式计算模 型需要有一些什么样的特征呢? 首先,解决方案一定是厂商、平台以及语言都不 确定的。此外,它所提供的必须不只是互操作性的承诺;它必须使互操作性有很 大的提高。另外,它必须能方便程序员们使用协议及部署应用程序。这就要求能 方便地访问协议的客户机和服务器端的实现。简单地说,我们需要一个建立在开 放因特网标准基础上的新的分布式计算模型。 2 2 4w e b 服务 w e b 服务技术组件是一套开放的规范,它们要么是现有的因特网标准,要么 是被广泛接受并正在通过正常步骤成为标准的规范。组件的基本部分包含h t t p 、 x m l 、s o a p 、w s d l 、u d d i 以及w s f l 。 w e b 服务的基础是h t t p ,它是一个被广泛运用的、类似r p c 的简单协议, 并且是防火墙友好的。接下来,是x m l 中的通用数据表示法语言,它同样被广 泛使用。s o a p 是一个基于x m l 的消息传递协议,它不确定平台及语言。它同 时支持消息传递和请求响应通信模型。与c o r b a 和d c o m 一样,它需要 个i d l 。它所使用的w s d l 是一个基于x m l 的服务i d l ,定义了服务接口和 糕于w e bs e r v i c e 的开放式分布计算求解器的研究 其实现特征。 h t t p 和x m l 作为一个新的分布式计算模型带给w e b 服务的价值很大。 在h t t p 中,请求和响应消息都能包含任意的有效负载信息。h t t p 报头( h t t p h e a d e r ) 只是纯文本,这使得一般的因特网程序员便于使用。通常,这些报头包 含内容长度和内容类型。并且h t t p 使用t c p i p 作为其请求响应消息的n n n 信协议。h t t p 客户机利用t c p 连接到h t t p 服务器。建立了t c p 连接以后, 客户机可以向照务器发送h t t p 请求消息。然后服务器对请求进行处理后将 h t t p 响应消息发送回客户机。简单地说,h t t p 是一种出色的不确定有效负载 的传输方式,它提供了c o r b a 和d c o m 中所能找到的大部分连接管理功能。 它还使用u r l 进行对象引用,它们与分别在c o r b a 和d c o m 中找到的 t o r 和o b j r e f 相一致。 由于h t t p 是不确定有效负载的,它确实缺少一个在r p c 消息中表示参数 值的机制。这就需引入x m l 。x m l 是一种与平台无关的标记数据表示语言。 它允许数据串行化为一种消息格式,从而能轻易地在任何平台上进行解码。然而, 与d r 和c d r 不同,x m l 很容易使用,它提供了一种灵活的、易于扩展的数 据格式,并且能获得几乎所有计算平台的支持。不仅如此,它还是开放的,并且 被广泛采用。 w e b 服务技术组件提供了s o a p 作为映射应用程序对象到网络协议的开放 标准o r p c 。尽管s o a p 不受特定的传输协议的约束,h t t p 还是成为了早先 在s o a p 采纳者中最受欢迎的协议。使用h t t p 时,s o a p 信封使用x m l 作 为请求和响应参数的编码方案。s o a p 消息实质上是一个遵循s o a p 编码规则 的h t t p 请求和响应。s o a p 端点就是一个基于h t t p 的、识别方法调用目标 的u r l 。与c o r b a 一样,s o a p 并不要求一个特定对象被连接到给定的端点 上。相反,需要由实现者来决定如何将对象端点标识符映射到服务器端的对象上。 在s o a p 中检查方法名称的名称空间u r i 与在d c o m 或c o r b a 中检查方 法名称的接口i d 在功能上是相同的。 r p c ( 远程过程调用) 是i s o o s i 制订的的关于远程过程调用的标准,d c e ( 分布式计算环境) 是由o s f 组织制订、基于r p c 机制实现的分布处理标准。 在标准刚颁布的时候,它们确实对分布式处理的发展起到了积极的推动作用,但 随着新技术、新应用和新需求的不断出现,他们已越来越不适应新的要求。r p c 的不足之处主要在于他不是面向对象的思想和方法构造,并且由于基于r p c 机制 基于w e bs e r v i c e 的开放式分布计算求解器的研究 实现分布处理,因此它也仅能支持静态接口调用,而且r p c 机制可支持的编程语 言种类有限。这样就大大限制了用户的可选语言范围。 一、w e b 服务结构 w e b 服务是指由企业发布的完成其特别需求的在线应用服务,其他公司或应 用软件能够通过i n t e r n e t 来访问并使用这项在线服务。w e b 服务是一系列标准的 综合,这些标准包括x m l 、s o a p 、u d d i 、w s d l 和w s f l 等:这些标准中许 多都还不成熟,还处于发展中。w e b 服务利用这些标准提供了一个松散耦合的分 御式计算环境;在w e b 服务的模型中,厂商将其服务封装成一个个相对独立的 w e b 服务,每个服务提供某类功能;客户( 或其它厂商) 可以通过绑定到h t t p 的s o a p 来访问这些服务。 1 w e b 服务架构 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 ) 架构。 该架构突出强调了任何系统都有的两个重要的方面,即三种角色和三种操作。其 中角色指的是不同类型的实体,而操作指的是为了使w e b 服务工作,这些实体 所完成的功能。如图2 1 所示。 图2 1w e b 服务架构 在w e b 服务模式中:由服务提供者、服务请求者和服务注册表这三种角色和 为了使w e b 服务起作用。这些角色所执行的操作组成。其中: 服务提供者服务提供者是创建该w e b 服务的实体。服务提供者将他们的某 种业务展示成一种w e b 服务,供任何其他机构调用,需要做丙件事情。首先,需 要用标准的格式来描述该w e b 服务,这个格式是所有使用该w e b 服务的机构都能 理解的。然后,为了能使更广泛的使用者知道这项w e b 服务,w e b 服务提供者需 要把他们的w e b 服务的详细资料发布到任何入都能使用的注册中心上去。 服务消费者任何使用服务提供者建立的w e b 服务的机构都叫做服务消费 基于w e bs e r v i c e 的开放式分布计算求解器的研究 者。服务消费者可以从服务提供者所做的描述中了解某项w e b 服务的功能。服务 提供者把他的服务描述发布到服务注册表一个目录上,为了检索w e b 服务细节, 服务消费者要在注册表查找该服务,而且,服务消费者能够从服务提供者的描述 中得到如何调用该服务的信息,然后根据这些信息绑定服务提供者的w e b 服务, 调用该服务。 服务注册表服务注册表是一个中心位置,服务提供者可以在那里列出他们 的w e b 服务列表,服务消费者可以在那里搜索w e b 服务。服务提供者通常在服务 注册表发布他们w e b 服务的功能,供服务消费者查找,然后在绑定到他们的w e b 服务。通常请况下,厂商的详细资料、所提供的w e b 服务及每种w e b 服务的详细 情况包括技术细节等信息都保存在服务注册表中。 为使w e b 服务发挥作用。必须有“查找”、“绑定”和“发布”这三个基本操 作,在w e b 服务模式中,不管应用程序是用什么语言写的,也不管应用程序运行 在哪种平台上等,为了建立应用程序之间的通信,需要有一个三个操作都遵守的 标准和一个服务提供者描述他们服务的标准方法。 描述w e b 服务的标准方法w e b 服务描述语言( w s d l ) ,他是用x m l 格式来描述w e b 服务的标准。一般情况下,某项w e b 服务的w s d l 文档都会指 定w e b 服务中使用的方法、数据的类型、使用的传输协议和w e b 服务宿主的终点 u r l 。 发布和查找w e b 服务的标准协议一一通用描述、发现和集成(u d d i ) 标 准提供了一种方法,是服务提供者把他们公司的详细资料和所提供的w e b 服务的 详细情况发布到中心注册表。这就是u d d i 中“描述”的部分。u d d i 也为服务 消费者提供了一个标准,供他们找到服务提供者和关于他们w e b 服务的详细资料。 绑定到w e b 服务的标准应用程序协议简单对象坊问协议( s o a p ) 是 个无论使用哪种操作系统、无论使用什么程序语言或对象模型,都可以用于在应 用程序之间交换信息的轻型x m l 机制。 2 w e b 服务的核心组成部分 一个完整的w e b 服务系统必须有下面几种核心组成部分才能满足w e b 服务 的需要: x m l 解析引擎由于s o a p 请求是x m l 格式的,所以,需要一个x m l 解 析引擎把进来的s o a p 请求解析成正确的对象名、操作名和参数等。x m l 解析引 擎还可以起双重作用,用作x m l 确认引擎,以保证附着在s o a p 规范上的是 基于w e bs e r v i c e 的开放式分布计算求解器的研究 x m l 。 x m l 转换引擎接收到的来自企业的响应可能不并一定适合所有的客户机, 这样就需要在送到客户机之前把x m l 转换成不同的格式。这一工作由x m l 转换 引擎完成。 安全性在w e b 服务中,需要基本的鉴定和授权服务来证明调用w e b 服务 用户的可信程度,这一功能由安全部分来做。 注册引擎注册引擎用于记录启动调用过程中发生的所有情况。注册引擎用 于在调试中发现问题和审核帐单。 除此之外,在w e b 服务系统中还需要个提供系统服务的底层用于处理通信 协议,如r m i 和i i o p 等。 二、s o a p 1 s o a p 概述 简单对象访问协议是一个轻型的分布式计算协议,它允许在一个分散、分布 式的环境中交换信息。s o a p 没有捆绑到一个硬件平台、操作系统、编程语言或 网络硬件,两是建立在开放式标准的顶部,例如h t t p 和x m l ,并被现有的基础 设施所支持。s o a p 与其他分布式计算协议相比,只包含少量的特点,使该协议 不那么复杂,而且没有任何机制用于描述和找到分布式系统中的对象,这些机制 由w s d l 和u d d i 规范分别定义。 s o a p 规范包含消息( m e s s a g i n g ) 和远程过程调用( r e m o t ep r o c e d u r ec a l l , r p c ) 封装两部分。消息部分用于定义在分布式系统之间传输消息的消息框架, r p c 部分用于定义为在远程系统中调用过程,怎样把远程过程调用和响应嵌入到 消息中。 2 s o a p 协议 s o a p 由4 部分组成: s o a p 封装( s o a p e n v e l o p ) 它构造定义了一个完整的表示框架,用于 表示在消息中的是什么,谁应当处理它,是可选的还是强制的。 s o a p 编码规则( s o a pe n c o d i n gr u l e s ) 定义了一个编序机制用于交换 应用程序定义的数据类型的实例。 s o a pr p c 表示( s o a pr p cr e p r e s e n t a t i o n ) 定义了一个用于表示远端 过程调用和响应的约定。 s o a p 绑定( s o a pb i n d i n g ) 定义了一个使用底层传输协议来完成节点 基于w e bs e r v i c e 的开放式分布计算求解器的研究 问交换s o a p 封装的约定。 上述4 部分是正交的。 3 s o a p 消息 s o a p 利用x m l 编制消息代码。s o a p 消息中不能包含d t d ( 文档类型定 义) 。s o a p 消息必须在所有由s o a p 定义的元素和属性上包括适当的命名空间, 这样,用户所定义的元素不会与默认的s o a p 元素发生冲突。所有默认的s o a p 元素和属性都用s o a p e n v 命名空间标识符作为前缀,命名空间标识符与 h t t p :s c h e m a s x m l s o a p o r s o a p e n v e l o p e 相关联。 s o a p 消息是一个x m l 文档,由s o a p 封装( 强制性的) 、s o a p 标题( 选 择性的) 和s o a p 主题( 强制性的) 三个部分组成,如图2 2 所示。 图2 2s o a p 消息的组成 其中,s o a p e n v e l o p e 是表示该消息的x m l 文档的顶级元素:s o a ph e a d e r 是为了支持复杂松散环境下在通信方之间是( 可能是s o a p 发送者、s o a p 接受 者或一个或多个的传输中介) 之间尚未预先达成一致的情况下为s o a p 消息增加 特性的通用机制。s o a p 定义了很少的一些属性用来指明谁可以处理该特性以及 它是可选的还是强制的:s o a pb o d y 为该消息的最终接受者所想要得到的那些强 制信息提供了一个容器。另外,s o a p 定义了b o d y 的一个子元素f a u l t 用于报告 错误。 4 s o a p 编码 s o a p 编码风格是基于一个从程序语言、数据库和半结构数据中类型系统的 公共特性泛化而来的简单类型系统,s o a p1 1 规范定义了在s o a p 消息有效载荷 中的数据应当怎样编码。命名空间标识是h i 垃;丛幽巡巡:q 臣2 q q ! s o a p - e n c o d i n g 豢于w e bs e r v i c e 的开放式分布计算求解器的研究 s o a p r p c 表不 s o a p 的设计目的之一就是利用x m l 的可扩展性和可伸缩性来包装和交换 r p c 调用。在理论上,s o a p 消息可以绑定到任何一种协议上,但因为h t t p 是 在s o a p 规范中指定的,而且是最广泛使用的。在使用h t t p 作为s o a p 协议 绑定媒介的情况下,一个r p c 调用可以很自然的映射到h t t p 请求,而r p c 响 应则可以映射到h t t p 响应。 为实施一个方法调用,需要以下信息: 目标s o a p 节点的u r i 方法名 可选的方法或过程的的参数 可选的头数据 s o a p 依赖协议绑定来提供传送目标s o a p 节点的u r 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 里面。 三、w s d l w e b 服务描述语言( w e bs e r v i c ed e f i n i t i o nl a n g u a g e ,w s d l

温馨提示

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

评论

0/150

提交评论