(计算机应用技术专业论文)基于web+services的数值计算网格平台研究与实现.pdf_第1页
(计算机应用技术专业论文)基于web+services的数值计算网格平台研究与实现.pdf_第2页
(计算机应用技术专业论文)基于web+services的数值计算网格平台研究与实现.pdf_第3页
(计算机应用技术专业论文)基于web+services的数值计算网格平台研究与实现.pdf_第4页
(计算机应用技术专业论文)基于web+services的数值计算网格平台研究与实现.pdf_第5页
已阅读5页,还剩47页未读 继续免费阅读

(计算机应用技术专业论文)基于web+services的数值计算网格平台研究与实现.pdf.pdf 免费下载

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

文档简介

上峪大学硬士李证论文 婴! ! ! ! ! 里型! ! 生堡竺! ! 旦! ! ! 竺鲤墅坐! :! 堡! 堕 摘要 在目前情况下广泛地使用高性能计算机和网格技术还存在一些困难,还没有 很完善的开发工具和编程环境支持使用这些计算资源。目前用于科学计算的网格 系统主要有美国田纳西州大学和橡树岭实验室联合开发的n e t s o l v e 项目,德国 爱因斯坦研究所领衔开发的c a c t u s 项目,和日本开发的n i n f 项目。我们对应用 于高性能数值计算的网格系统n e t s o l v e 进行了研究,发现n e t s o l v e 系统在自强 2 0 0 0 高性能集群计算机应用环境中存在以下问题 1 出于安全原因考虑,自强2 0 0 0 集群计算机内部服务器m 为局域网内部地 址,局域网外部客户端无法直接访问,这样就造成n e t s o l v e 系统难以使 用。 2 n e t s o l v e 系统接口具有专用性,其接口协议只能使用于n e t s o l v e 系统客 户端,其他系统不能直接使用n e t s o l v e 系统。 3 随着网格技术的发展,以o g s a 为代表的网格技术的出现,很多应用将 可能建立在o g s a 基础之上,n e t s o l v e 系统无法接入开放网格服务结构 o g s a 。 针对n e t s o l v e 系统的不足,我们结合w e bs e r v i c e s 技术提出并实现了一种 应用于高性能数值计算的网格系统,该系统基本解决了n e t s o l v e 系统存在的以 上不足。本文对系统的层次结构的设计思想进行了深入地探讨,对系统实现时所 存在的一些问题进行了深入研究,讨论了所实现系统的优点和存在的不足,并比 较了一些实验结果。在此基础上提出了改进的方案。 关键词:w e bs e r v i c e s 、网格计算中间件、n e t s o l v e 、数值计算 上啐土| 孽磺士季位论文 旦! ! ! ! g 囹! 坐亚! 坐堕! ! 翌! ! ! 望! 坐! ! 盟 a b s t r a c t t o d a y , t h e r ea r es t i l ls o m e d i f f j c u l t i e si nu s i n gh i g hp e r f o r m a n c e c o m p u t e r a n d g r i dt e c h n o l o g yo n a l a r g es c a l ea n d t h e r ei sn o g o o dd e v e l o p i n g t o o l sa n d p r o g r a m m i n ge n v i r o n m e n tl o f a c i l i t a t e p e o p l et ou s et h o s ec o m p u t a t i o n a l r e s o u r c e s t h em a i n g r i ds y s t e m sa p p l i e di ns c i e n t i f i cc o m p u t i n gw e u s e t o d a y a r e :t h en e t s o l v ep r o j e c td e v e l o p e dj o i n t l y b yu n i v e r s i t yo fta n dl a b t h e c a c t u sp r o j e c tl e db ye i n s t e i ni n s t i t u t e ,a n dt h en i n fp r o j e c td e v e l o p e db y j a p a n w ee x p l o r e dt h en e t s o l v es y s t e m ,w h i c hi s ag r i ds y s t e r na p p l i e dt o h i g hp e r f o r m a n c en u m e r i c a lc o m p u t i n g ,a n df o u n do u tt h a tt h e r ew e r es o m e p r o b l e m sw h e nw eu s e dl h en e t s o l v es y s t e mi nz q - 2 0 0 0h i g hp e r f o r m a n c e c l u s t e rc o m p u t e re n v i r o n m e n t 。 1 f o r s e c u r i t yc o n c e r n 。t h ei pa d d r e s so fz q 2 0 0 0h i g hp e r f o r m a n c ec l u s t e r c o m p u t e r i si o c a l s ot h a tt h ec l i e n t sf r o mo u t s i d et h ei o c a ln e t w o r kc a nn o t a c c e s st h i sl pa d d r e s s 。h e n c e ,i t sd i f f i c u l tt ou s en e t s o l v es y s t e m 2 t h ei n t e r f a c eo fn e t s o l v es y s t e mi s s p e c i a l i z e d t h ep r o t o c o i o ft h e i n t e r f a c ec a no n l yb ea p p l i e dl on e t s o l v ec l i e n t s o t h e rs y s t e mc a nn o tu s e t h en e t s o l v es y s t e m d i r e c t l y 3 w i t ht h ed e v e l o p m e n to fg r i dt e c h n o l o g y , m a n yn e w g r i dt e c h n o l o g y 。l i k e o g s a ( o p e ng r i d s e r v i c ea r c h i t e c t u r e ) ,h a v eb e e nd e v e l o p e d ,m a n y a p p l i c a t i o n sm a y b eb a s e do no g s a b u tt h en e t s o l v es y s t e mc a nn o t a c c e s so g s a f o rt h er e a s o n sm e n t i o n e da b o v e c o m b i n e dw i t ht h et e c h n o l o g yo fw e b s e r v i c e s 。w ei n t r o d u c e da n di m p l e m e n t e dag r i ds y s t e ma p p l i e dt oh i g h p e r f o r m a n c en u m e r i c a ic o m p u t i n g a n dt h i ss y s t e mc a nb a s i c a l l ys o l v et h e d i s a d v a n t a g e s o fn e t s o l v es y s t e mm e n t i o n e da b o v e t h i st h e s i se x p l o r e df h e d e s i g n i n gi d e ao ft h eh i e r a r c h i c a fs t r u c t u r eo ft h es y s t e r n a n a l y z e ds o m e p r o b l e m s w h e n i m p l e m e n t i n g t h i si d e ai nt h e s y s t e m d i s c u s s e d t h e a d v a n t a g e sa n dd i s a d v a n t a g e so ft h eu n d e r l y i n gs y s t e m 。a n a l y z e dt h er e s u l t s o fs o m e e x p e r i m e n t s a n db r o u g h tf o r w a r dt h eu p d a t e ds c h e m e k e y w o r d s :w e b s e r v i c e s ,g r i d - c o m p u t i n g m i d d l e w a r e n e t s o l v e n u m e r i c a lc o m p u t a t i o n i l 上辱土季碛士学馕论文 墅! ! 型趔! 坐坠塑望q ! i ! 翌g 型塑i ! 笪! i ! z 原创性声明 本人声明:所呈交的论文是本人在导师指导下进行的研究工作。 除了文中特别加以标注和致谢的地方外,论文中不包含其他人已发表 或撰写过的研究成果。参与同一工作的其他同志对本研究所做的任何 贡献均已在论文中作了明确的说明并表示了谢意。 签名:当竺蛰日期銎:翌:厶 本论文使用授权说明 本人完全了解上海大学有关保留、使用学位论文的规定,即:学校有权保留论文及送交 论文复印件,允许论文被查阅和借阅:学校可以公布论文的全部或部分内容。 ( 保密的论文在解密后应遵守此规定) 仞k 概 上体土学硕士季吐梧文 坠! ! ! 苎趔坚! 卫堕q ! ! ! 竺! ! ! 竺! 堂! ! 垡 第一章绪论 1 1 问题研究的背景,目的和意义 现代科学技术研究和工程实践对高性能计算能力有着强大的需求。在这种 需求的推动和现代微电子技术、高速通信技术、并行处理技术的支撑下,高性能 计算技术特别是高性能并行计算技术得到了飞速发展,计算能力里指数级增长。 根据2 0 0 3 年1 1 月公布的t o p 5 0 0 名单,世界上最快的电脑是位于日本横滨用的 “e a r t hs i m u l a t o r 机,它采用了5 ,1 2 0 枚n e c 处理器,性能得分为4 1t f l o p s 。 同时,应用软件的规模越来越大,系统的复杂性也越来越商。然雨,要使用并行 计算机进行大规模应用并充分发挥并行计算机的性能决非易事。例如,并行计算 机的多c p u 特点和体系结构的多元化使得并行应用软件的开发和移植难度甚大; 高层次并行软件开发环境的缺乏使得并行计算机往往只能由专业程序员使用;并 行应用软件的复杂性使得其调试和验证较为困难,正确性难以保证:网络分布式 远程并行软件应用环境的缺乏使得高效和昂贵的高性能计算资源得不到充分的 利用等等。根据对目前商性能应用软件开发实践的分析,我们认为利用高性能并 行计算机解决实际应用问题主要存在两方面的障碍: 一是在应用问题逻辑与并行计算机之间有着一道鸿沟。在各种并行计算系 统上进行高效、灵活和可靠的并行应用软件开发十分困难。这个问题表现在三个 方面:如何帮助应用人员进行并行程序设计? 如何保证并行程序的正确性? 如何 在不同体系结构的高性能计算系统间进行软件复用。 二是在计算需求的应用人员与高性能计算系统之间有着一道鸿沟。 i n t e m e t 的出现与普及使分布于各地的应用人员使用位于各计算中心的计算 资源成为可能。然而,对如何才能真正使高性能计算资源流到每个应用人员的桌 面? 又如何使分布的计算能力协同工作? 对这些闯题的研究才刚刚开始。 针对这两方面问题,我们结合w e bs e r v i c e s 技术和网格技术的发展,主要 以应用于数值计算网格n e t s o n e 为基础,研究上述第二个方面的问题,即分布 的高性能计算资源的远程使用问题。 1 2 用于科学计算的网格计算中间件发展现状 目前用于科学计算的网格计算中间件主要有三种,它们分别是由美国田纳 西州大学和橡树岭实验室联合开发的n e t s o l v e 1 1 项目,由德国爱因斯坦研究所领 衔开发c a c t u s 项目和日本开发的n i n f 项目。 第1 页 上辱太学唾士学位论文 堡! ! ! 璺墅坐坐旦! 塑垡! ! 竺韭! ! 塑! :竺! 盟 c a c t u s 是一种集成的、通用的、开放源码的计算科学和工程问题解决环境。 c a c t u s 允许用户将原来在个人计算机上开发的程序( 不管它们原来是用c 语言、 c + + 写的,还是用f o r t r a n 、j a v a 语言写的) ,转换成能够在虚拟的“网格计算机” 上运行的并行程序;c a c m s 提供了简单、抽象的a p i 调用接口,屏蔽了系统的复 杂特性,从而简化了用户界面,获得很强的可移植性;c a c t u s 能够在不同体系结 构的机器上运行,如单处理器、集群计算机和其他体系结构的并行计算机;c a c t u s 具有许多先进特征,诸如先进的数字计算技术、自适应的网眼细化、并行i o 、 实时远程可视化、远程操控、w e b 接入等;c a c t u s 中还集成了许多现成的成熟应 用模块,只要提供初始数据并修改参数,就可以得到计算结果,减少了重复开发 的现象;c a c t u s 环境可以用在诸如天体物理学、化学工程、气象模拟、密码科学 等。 n i n f 具有与n e t s o l v e 相似的功能和结构,n i n f 可以让用户使用简单的界面 通过网络访问硬件、软件,科学数据等计算资源。n i n f 的目的不仅能开发网络计 算的高性能而且能够提供高质量的数值计算服务。用户可以通过n i n f 的远程过 程调用来调用函数库,这些函数库提供一个与传统函数库相似的用户界面。为了 实现位置透明和广域网上的并行,n i n f 元服务器维护一个关于计算服务和科学 数据库的全部计算资源信息,分配并且安排粗粒度的计算以取得大范围的负载平 衡。 n e t s o l v e 是由美国田纳西州大学和橡树岭实验室联合开发的一种用于科学 计算的网格计算中间件。n e t s o l v e 基于c l i e n t - s e r v e r - a g e n t 技术,它使用户可以 通过网络利用分散的计算资源解决复杂的科学计算问题,n e t s o l v e 搜索网格上 的计算资源,选择最好的计算资源解决科学计算问题,把结果返回给用户。 n e t s o l v e 的设计目标是:方便用户使用,有效的利用资源,能够把任意软件 部件做为资源集成进n e t s o l v e 系统。 在n e t s o l v e 实现过程中,有许多值得研究的问题,例如:容错问题,负载平 衡,用户界面的设计,计算服务器的设计,基于网络计算的设计等。 1 3 现有的网络计算模型 现有的网络计算模型根据用户的数据和程序的处理方式主要有三类: 1 代理计算 数据和程序存在于用户计算机,当程序运行时将程序和数据发送给服务 器,然后在服务器运行程序返回计算结果。 2 代码加载 程序存在于服务器,在需要运行程序时,用户从服务器下载程序代码,程 第2 页 上讳土学磺士孽位论文 堡! ! 壁鲤! 唑堡壁竖! ! 竺塑! ! 也堡型堡 序在用户计算机上使用用户数据运行程序并产生结果。最典型的实例是:在 网页浏览器中的j a v aa p p l c t s 。 3 远程计算 程序存在于服务器,在运行程序时,用户发送数据给服务器,然后程序在 服务器上对用户的数据进行操作最后返回结果给用户的计算机。n e t s o l v e 采 用了这种方式。 1 4n e t s o l v e 的结构 图1 1 描述了n c t s o l v e t 2 1 系统的结构 图1 1n e t s o l v e 系统的结构 1 代理 代理【3 1 是连接n e t s o l v e 系统的入口。它维护了一个n e t s o l v e 服务器服务能 力和调度决策中动态使用情况统计的数据库,n e t s o l v e 代理试图找到满足服务请 求的服务器,使这些服务器负载平衡,了解哪些服务器出错。使客户请求绕开出 错的服务器。代理中还加入了重试式容错机制,这样代理会找出所有可利用的服 务器直到有一个能满足用户请求 2 服务器 n e t s o l v e 服务器是整个系统计算中枢。服务器守护进程等待客户请求。服 务器可以在单独的w o r k s t a t i o n ,c l u s t e r ,s m p 和m p p 上运行。服务器中的一个关 键组件就是利用n e t s o l v e 的问题描述文件i d l ”,使之能够把软件库例程加入 n e t s o l v e 服务中。 3 客户端 客户端用户使用简单的a p i 访问n c t s o l v e 系统。用户使用这些a p i ,并加 些其他功能,向系统提出请求。a p i 调用通过自动与系统服务器连接为请求提供 第3 页 上喀土学啧士学证论文 婴! ! 坚唑苎! 旦型堕! ! 塑! ! ! 坐i 竺! 业 服务。客户端连接服务器并输入数据开启服务。 1 5n e t s o l v e 的工作原理 用户使用n e t s o l v e 的客户端界面发送请求给n e t s o l v e 系统,请求所有服务 之一进行数值计算,a g e n t 的主要作用是去处理请求,选择最好的服务进行计算, 一旦服务被选择进行计算,它将使用可用的数值软件进行计算,最后返回结果给 用户。 图1 2n e t s o l v e 系统的工作原理 1 6 本文的主要工作 本文的主要工作包括: 1 ,设计了一种基于w e bs e r v i c e s 的高性能数值计算网格平台,讨论了系统中各 个部分的设计思想以及主要任务。 2 对系统的各个部分实现的方法和部分调度算法进行了说明,讨论了各种实现 方法的优缺点。 3 对系统实现后所存在的一些问题进行了深入研究,并比较了一些实现的实验 结果,提出了改进的方法。 1 7 本文的组织与结构 第二章,介绍w e bs e r v i c e s 相关技术, 第三章,论述了系统的总体设计思想, 为本文的实现说明提供了依据。 并讨论了系统的优缺点。 第4 页 上痞土季硕士学位论文 卫! ! ! ! ! g 型! 坐望竺! 竺! ! ! 竺鲤型望! ! 竖! 塑 第四章,详细讨论了系统的设计实现过程。 第五章,探讨了系统的不足,以及将来应该做的工作。 第5 页 上啐土_ 孽曩士学位论文 旦! ! ! 三! 墅堂! ! 堡坠! ! 坐旦! ! ! 竺! ! ! ! 旦! 生! ! ! ! 堡 第二章w e bs e r v i c e s 及网格相关技术 2 。1w e bs e r v i c e s 技术 w e bs e r v i c e s t 5 1 是为其他应用程序提供数据和服务的应用程序逻辑单元。应 用程序通过鬻见的w e b 协议和数据格式( 如h t t p 、x m l 和s o a p 6 ) 访问 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 将 基于组件的开发的最佳方面和w e b 结合在一起。 w e bs e r v i c e s 可以由使用任何组件模型、在任何操作系统上运行的任何语言 进行访问。它们将h t t p 用作基础传输协议,从而允许功能请求通过防火墙。 x m l 用于对请求的输入和输出参数进行格式设置,因此请求不依赖于任何特定的 组件技术或对象调用约定。 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 的一个具体实现) 。服务提供者定义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 描述了一些操作的接口,通过标准化的x m l 消息传递机制经 过网络访问这些操作。w e bs e r v i c e s 是用标准的,规范的基于x m l 的w s d l l 7 o 语言描述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 实现一项特 定的任务或一组任务,同时可以于其他w e bs e r v i c e s 一起实现一组复杂的操作。 2 1 1w e bs e r v i c e s 体系结构中的角色 服务提供者( s e r v i c ep r o v i d e r ) 是服务的所有者,从体系结构的角度看,是托管被访问服务的平台。 服务请求者( s e r v i c er e q u e s t o r ) 从体系结构角度来看,只是寻找并调用服务,启动与服务交互的应用程序 第6 页 上埠土f 嘎士学幢论文 里! ! ! ! 塑! 塑! 璺! 堡! ! l 三q ! ! ! 竺韭型竺! ! ! ! 登! 堕 服务请求者可以由浏览器来担当,由人或无界面的程序来控制它。 服务注册中心( s e r v i c er e g i s t r y ) 服务提供者在此发布他们的服务描述。在静态绑定开发或动态绑定执行期间, 服务请求者查找服务并获得服务的绑定信息( 在服务描述中) 对于静态绑定 的服务请求者,服务注册中心是体系结构中的可选角色,因为服务提供者可 以把描述直接发送给服务请求者,服务请求者可以从服务注册中心以外的其 他来源得到服务描述。 图2 1w e bs e r v i c e s 体系结构模型 2 1 2w e bs e r v i c e s 体系结构中的操作 对于利用w e bs e r v i c e s 的应用程序,必须执行以下操作:发布服务描述、 查询或查找服务描述以及根据服务描述绑定或调用服务。这些行为可以单次或反 复出现。具体为: l - 发布 8 】 为了使服务可访问,需要发布服务描述以使服务请求者可以查找它。发布服 务描述的位置可以根据应用程序的要求而变化。 2 奄找 在查找操作中,服务请求者直接检索服务描述或在服务注册中心中查询所要 求的服务类型。对于服务请求者,可能会在两个不同的生命周期阶段中牵涉 到查找操作:在设计时为了程序开发而检索服务的接口描述,而在运行时为 了调用而检索服务的绑定和位置描述。 3 绑定【8 】 在绑定操作中,服务请求者使用服务描述中的绑定细节来定位、联系和调用 服务,从而在运行时调用或启动与服务的交互。 第7 页 上诲土季嘎士考伍论文 里! ! ! ! ! 型! ! ! ! 坠墅! ! 旦! ! ! ! 螋生型! ! 兰堡! 堡 2 1 3w e bs e r v i c e s 的构件 1 服务 在这里。w e b 服务是一个由服务描述来描述的接口,服务描述的实现就是该 服务。服务是一个软件模块,它部署在由服务提供者提供的可以通过网络访 问的平台上。服务存在就是要被服务请求者调用或者同服务请求者交互。当 服务的实现中利用到其它的w e b 服务时,它也可以作为请求者。 2 服务描述 服务描述包含服务的接口和实现的细节。其中包括服务的数据类型、操作、 绑定信息和网络位置。还可能包括可以方便服务请求者发现和利用的分类及 其它元数据。服务描述可以被发布给服务请求者或服务注册中心。 2 1 4w e bs e r v i c e s 开发生命周期 w e b 服务开发生命周期包括了设计和部署以及在运行时对服务注册中心、 服务提供者和服务请求者每个角色的要求。每个角色对开发生命周期的每一元 素都有特定要求。服务注册中心的开发和部署不在本文的范围以内。 开发生命周期有以下四个阶段: 1 构建 生命周期的构建阶段包括开发和测试w e b 服务实现、定义服务接口描述和 定义服务实现描述。可以通过创建新的w e b 服务、把现有的应用程序变成w e b 服务和由其它w e b 服务和应用程序组成新的w e b 服务提供w e b 服务的实现。 2 部署 部署阶段包括向服务请求者或服务注册中心发布服务接口和服务实现的定 义,以及把w e b 服务的可执行文件部署到执行环境( 典型情况下,w e b 应用程 序服务器) 中。 3 运行 在运行阶段,可以调用w e b 服务。在此,w e b 服务完全部署、可操作并且 服务提供者可以通过网络访问服务。此时服务请求者可以进行查找和绑定操作。 4 管理 管理阶段包括持续的管理和经营w e b 服务应用程序。需要解决安全性、可 用性、性能、服务质量和业务流程等问题。 第g 页 上瘁土学两士季位论文 里! ! ! ! g 型型! 坠! 堕q ! ! ! 竺业型望! 塑! 生 2 2 体系结构概览 我们在几个层面中讨论w e b 服务。首先,探讨w e b 服务的一个概念性协 议栈以及这个协议栈的细节。然后讨论选择网络协议的标准。我们还将回顾一下 基本的基于x m l 的消息传递分布式计算,并用服务描述扩展基本的x m l 消 息传递,而服务描述是根据它的协议栈来解释的。接下来,我们将讨论服务描述 在w e b 服务体系结构中的角色,说明支持静态和动态w e b 服务应用程序的服 务发布技术的范围。我们还将围绕服务发布讨论服务发现的角色。最后,我们将 描述基本w e b 服务体系结构的扩展,某些应用需要这些扩展才能使用w e b 服 务。 2 2 1w e b 服务协议栈 要以一种可互操作的方式执行发布、发现和绑定这三个操作,必须有一个包 含每一层标准的w e b 服务协议栈。图2 2 展示了一个概念性w e b 服务协议栈。 上面的几层建立在下面几层提供的功能之上。垂直的条表示在协议栈中每一层必 须满足的需求。左面的文本表示协议栈的那一层所应用的标准技术。 图2 2w e b 服务概念性协议栈 。 w e b 服务协议栈的基础是网络层。w e b 服务要被服务请求者调用,就必须是 可以通过网络访问的。因特网上可以公用的w e b 服务使用普遍部署的网络协议。 h t t p 凭借其普遍性,成为了因特网可用的w e b 服务真正的标准网络协议。w e b 服务还可以支持其它因特网协议,包括s m t p 和f t p 。内部网域可以使用可靠消 息传递和调用基础结构,如m q s e r i e s 和c o r b a 等等。本文的“网络层”部分 将更详细地描述这个层。 下一层是基于x m l 的消息传递,它表示使用x m l 作为消息传递协议的基 础。选择s o a p 作为x m l 消息传递协议有很多原因: 第9 页 上瘁土考埙士学位论文 ! 壁! ! 堂型! 坐望型! 旦! ! ! 竺g ! ! ! 型! ! 兰! 丝 它是使用x m l 传送以文档为中心的消息以及远程过程调用的标准化封装 机制。 s o a p 很简单;它基本上是一个用x m l 信封作为有效负载的h t t pp o s t 。 s o a p 比对x m l 简单的h t t pp o s t 更受欢迎,因为它定义了一个标准机 制,这个机制将正交扩展( o r t h o g o n a le x t e n s i o n ) 合并为使用s o a p 报 头和对操作或函数进行标准编码的消息。 s o a p 消息支持w e b 服务体系结构中的发布、查找和绑定操作。“基于 x m l 消息传递的分布式计算”部分将更详细地描述这一层。 服务描述层实际上是描述文档的一个协议栈。首先,w s d l 是基于x m l 的服 务描述的真正标准。这是支持可互操作的w e b 服务所需的最小标准服务描述。 w s d l 定义了服务交互的接口和结构。要指定业务环境、服务质量和服务之间的 关系,我们还需要另外的描述。w s d l 文档可以由其它服务描述文档来补充,从 而描述w e b 服务的这些更高级的方面。例如,描述业务环境除了使用w s d l 文 档,还要使用u d d i 数据结构。w e b 服务流程语言( w e bs e r v i c e sf l o wl a n g u a g e , w s f l ) 文档中则描述了服务组成和流程。 因为w e b 服务被定义为可以通过s o a p 从网络进行访问,并由服务描述表 示,所以该协议栈中的前三层需要提供或使用w e b 服务。最简单的协议栈将包 括网络层的h t t p 、x m l 消息传递层的s o a p 协议以及服务描述层的w s d l 。所有 企业间或公用w e b 服务都应该支持这种可互操作的基础协议栈。w e b 服务,特 别是企业内部或专用w e b 服务,能够支持其它的网络协议和分布式计算技术。 图2 3 描述了可互操作的基础协议栈。 图2 3 可互操作的基础w e b 服务协议栈 图2 3 中描述的协议栈提供了互操作性,它使w e b 服务能够利用现有的因 特网基础结构。这将使进入普遍存在的环境的成本非常低。灵活性并不会因为互 操作性需求而有所降低,因为我们可以为选择性和增值的技术提供另外的支持。 例如,我们必须支持h t t p 上的s o a p ,但也可以同时支持m q 上的s o a p 。 协议栈的最下面三层确立了保证一致性和互操作性的技术,而它们上面的两 层,即服务发布和服务发现,可以用多种解决方案来实现。 任何能够让服务请求者使用w s d l 文档的操作,不管它处于服务请求者生命 第1 0 页 上啐土学曦士学位格文 里! ! ! 璺g ! 型! ! 塑堡! ! 堡里! ! ! 竺垫! ! 旦! ! 兰竖! 塑 周期的哪个阶段,都符合服务发布的标准。该层中最简单、最静态的示例就是服 务提供者直接向服务请求者发送w s d l 文档。这被称为直接发布。电子邮件是直 接发布的载体之一。直接发布对静态绑定的应用程序来说很有用。另外,服务提 供者还可以将描述服务的文档发布到主机本地w s d l 注册中心、专用u d d i 8 】注 册中心或u d d i 运营商节点。我们将在“服务发布”部分更详细地讨论各种不同 的服务发布机制。 因为w e b 服务如果没有被发布就不能被发现,所以说服务发现依赖于服务 发布。该层的各种发现机制和组发布机制互相平行。任何允许服务请求者获得 对服务描述的访问权,并在运行时使应用程序能够使用该服务描述的机制都符合 服务发现的标准。最简单、最静态的发现的示例是静态发现,其中服务请求者从 本地文件获取w s d l 文档。这通常都是通过直接发布获取的w s d l 文档,或者前 面查找操作的结果。另外,也可以通过使用本地w s d l 注册中心、专用u d d i 注 册中心或u d d i 运营商节点在设计时或运行时发现服务。我们将在“服务发现” 部分更详细地讨论各种不同的服务发现机制。因为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 f l 用于描述这些交互。w e b 服务这个主题 在它自己那一部分,即“业务流程、工作流程和w e b 服务”中有所描述。 要使w e b 服务应用程序满足当今电子商务的迫切需求,就必须提供企业级 基础结构,包括安全性、管理和服务质量。这几个垂直条在协议栈的每一层都必 须得到解决。每一层的解决方案可以彼此独立。随着w e b 服务范例的采用和发 展,将会出现更多此类垂直条。我辋将在安茬窀季藕务钧爿嚷爿嬖葬兰鄣辫 论避些垂壹楚 该协议栈的最下面几层表示基础w e b 服务协议栈,它们相对于协议栈中上 面几层来说更成熟,也更标准。w e b 服务的成熟和采用将会带动协议栈中上面几 层和垂直条的开发和标准化。 2 2 2 网络层 w e b 服务协议栈的最底层是网络层。该层可表示任意多个网络协议:h t t p 、 f t p 、s m t p 、消息排队( m e s s a g eq u e u i n g ) 、因特网o r b 间协议( i n t e r n e ti n t e r o r bp r o t o c o l ,i i o p ) 上的远程方法调用( r e m o t em e t h o di n v o c a t i o n ,r m i ) 、 第1 1 页 上辱土学碛士学位论文 旦! ! ! ! 堡型! 坐卫! 坐q ! ! ! 竺韭! ! 坐! 翌盟 电子邮件等等。在任何给定的情况下使用的网络协议都依赖于应用程序需求。 对于可以从因特网访问的w e b 服务,人们选择网络技术的时侯通常会倾向 于选择普遍部署的协议,如h t t p 。对于内部网中提供和使用的w e b 服务,使用 另外的网络技术也会被认同。我们可以根据其它需求选择网络技术,包括安全性、 可用性、性能以及可靠性。这使得w e b 服务可以利用已有的功能更高级的联网 基础结构和面向消息的中间件,如m q s e r i e s 。在有多种网络基础结构的企业中, h t t p 可以用来在这些基础结构之间搭建桥梁。 w e b 服务的好处之一在于,它为专用内部网和公用因特网服务的开发和使用 提供了统一的编程模型。所以,网络技术的选择对服务开发者来说是透明的。 2 。2 3 基于7 c a v i l 消息传递的分布式计算 w e b 服务体系结构最基础的支柱是x m l 消息传递。当前x m l 消息传递的行 业标准是s o a p 。i b m 、m i c r o s o f t 以及其它企业都向w 3 c 建议s o a p 作为x m l 协议工作组( x m lp r o t o c o lw o r k i n gg r o u p ) 的基础。x m l 协议将代替s o a p 作 为行业标准x m l 消息传递协议的位置。当w 3 c 发布x m l 协议的草案标准时, w e b 服务体系结构就会从s o a p 迁移到x m l 协议。 s o a p 是一种简单的、轻量级的基于x m l 的机制,用于在网络应用程序之间 进行结构化数据交换。s o a p 包括三部分:一个定义描述消息内容的框架的信封、 一组表示应用程序定义的数据类型实例的编码规则,以及表示远程过程调用 ( r e m o t ep r o c e d u r ec a l i s ,r p c ) 和响应的约定。s o a p 可以和各种网络协议( 如 h t t p 、s m t p 、f t p 和i i o p 或姬上的蹦i ) 相结合使用,或者用这些协议重新 封装后使用。 虽然理解这个基础很重要,但多数w e b 服务开发者不必直接处理这个基础 结构。大多数w e b 服务都会使用从w s d l 生成的经过优化的特定于编程语言的 绑定。当服务提供者和服务请求者都在类似的环境中执行时,这种优化可能尤为 重要。 图2 4 展示了x m l 消息传递( 即s o a p ) 和网络协议如何组成w e b 服务体 系结构的基础 网络节点在基于x m l 消息传递的分布式计算中扮演提供者和请求者的角色 的基本要求是构建、解析s o a p 消息的能力( 或两者) ,以及在网络上通信的能 力( 接收、发送消息,或两者) 。 通常,在w e b 应用程序服务器中运行的s o a p 服务器将执行这些功能。另 外,我们也可以使用在a p i 中封装这些功能的特定于编程语言的运行库。 第1 2 页 上讳土季最士学位论文 ! ! ! ! ! 坠型! ! 竺堡竺垫里! ! ! ! ! 韭! ! 坐! ! ! ! 型 图2 4 使用s o a p 的皿儿消息传递 应用程序与s o a p 的集成可以通过使用四个基本步骤来实现: 1 在图2 4 中,服务提供者的应用程序在( 1 ) 创建一条s o a p 消息。这条 s o a p 消息是调用由服务提供者提供的w e b 服务操作的请求。消息主体中 的x m l 文档可以是一个s o a pr p c 请求,也可以是一个服务描述中所 描述的以文档为中心的消息。服务请求者将此信息和服务提供者的网址一 起提供给s o a p 基础结构( 例如一个s o a p 客户机运行时) 。s o a p 客户机 运行时与一个底层网络协议( 例如h t t p ) 交互,然后在网络上将s o a p 消 息发送出去。 2 网络基础结构在( 2 ) 将消息传送到服务提供者的s o a p 运行时( 例如一 个s o a p 服务器) 。s o a p 服务器将请求消息路由到服务提供者的w e b 服 务。如果应用程序需要,s o a p 运行时负责将x m l 消息转换为特定于编程 语言的对象。这个转换由消息中可以找到的编码模式所控制。 3 w e b 服务负责处理请求信息并生成一个响应。该响应也是一条s o a p 消 息。响应的s o a p 消息在( 3 ) 被提供给s o a p 运行时,其目的地是服务 请求者。在h t t p 上的同步请求响应的情况中,联网协议的底层请求 响应本质用于实现消息传递的请求响应本质。s o a p 运行时将s o a p 消 息响应发送到网络上的服务请求者。 4 响应消息在( 4 ) 由服务请求者节点上的联网基础结构接收。消息会经过 整个s o a p 基础结构:可能会将x m l 消息转换为目标编程语言中的对象。 然后,响应消息被提供给应用程序。 本示例使用了请求响应传送基本原理,这种原理在大多数分布式计算环 境中都很常见。请求响应交换可以是同步的,也可以是异步的。其它传送基本 原理,如单向消息传递( 无响应) ,通知( 推动式响应) 以及发布订阅,也可 能用到s o a p 。 那么,服务请求者如何知道请求消息应该使用什么格式呢? 这个问题在下面部 第1 3 页 上辱土学咂士孽伍论文 ! ! ! ! ! ! 型! 苎! 旦竺堡殳! ! ! 竺韭! ! 旦! 生! ! ! 旦 分中会得到回答。 2 2 4 服务描述:从x i v i l 消息传递到w e b 服务 服务提供者是通过服务描述将所有用于调用w e b 服务的规范传送给服务 请求者的。要实现w e b 服务体系结构的松散耦合,并减少服务提供者和服务请 求者之间所需的共识的程度和定制编程与集成的量,服务描述就是关键。例如, 不管是请求者还是提供者,都不必了解对方的底层平台、编程语言或分布式对象 模型。服务描述与底层s o a p 基础结构相结合。足以封装服务请求者的应用程序 和服务提供者的w e b 服务之间的这个细节。 1 ,基本服务描述 w e b 服务体系结构使用w s d l 作为基本服务描述。w s d l 已经被提交到w 3 c 作为标准。w s d l 是种x m l 文档,它将w e b 服务描述为一组端点,这些端点 会处理包含面向文档或面向过程的( r p c ) 消息的消息。操作和消息都是被抽象 描述的,然后它们会被绑定到一个具体的网络协议和消息格式,用来定义端点。 相关的具体端点被合并到抽象的端点或服务中。w s d l 可以扩展为允许端点和其 消息的描述,不管使用哪种消息格式或网络协议进行通讯都可以。然而,目前经 过描述的绑定只能用于s o a p1 1 、h t t pp o s t 以及多用途因特网邮件扩展 ( m u l t l p u r p o s ei n t e r n e tm a i le x t e n s i o n s ,m i m e ) 。 w e b 服务体系结构中对w s d l 的使用按照常规将基本的服务描述分成了两 部分:服务接口和服务实现。这使每个部分都可以被分开独立定义,并可以由另 一部分重新使用。 l b i n d i n g f p o r t t y p e im e s s a g e i t y p e 图2 5 基本服务描述 服务接口定义是种抽象或可重用的服务定义,它可以被多个服务实现定义 第1 4 页 土牟土学_ | 曩士曩位话文 旦! ! ! 竺! 型! 坐里竺堡旦! ! ! 磐g 型坐堂堕! 实例化和引用。您可以将服务接口定义想象成接口定义语言( i n t e r f a c e d e f i n i t i o nl a n g u a g e ,i d l ) 、j a v a 接口或w e b 服务类型。这使常见的行业标 准服务类型可以被多个服务实现者定义和实

温馨提示

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

评论

0/150

提交评论