(计算机系统结构专业论文)网格服务的动态分布式策略负载均衡的研究与实现.pdf_第1页
(计算机系统结构专业论文)网格服务的动态分布式策略负载均衡的研究与实现.pdf_第2页
(计算机系统结构专业论文)网格服务的动态分布式策略负载均衡的研究与实现.pdf_第3页
(计算机系统结构专业论文)网格服务的动态分布式策略负载均衡的研究与实现.pdf_第4页
(计算机系统结构专业论文)网格服务的动态分布式策略负载均衡的研究与实现.pdf_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

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

文档简介

摘要 存储网格提供了对存储数据进行快速统一的查看管理能力,提供更高的数据 保护能力。存储网格所具有的这些特性, 域中前途最为广阔的技术之一。 本文研究的是校园存储网格的应用。 使得存储网格技术被普遍认为是存储领 考虑到校园网实际应用环境,本文实现 了一种基于d n s 原理的动态负载均衡技术。一个域名映射多个w e b 服务器i p , 域名请求被分发到多个w e b 服务器。大量请求任务由不同的w e b 服务器分担,从 而实现负载均衡。 本文基于d n s 原理,结合网格的信息服务技术,实现动态分布式策略的负载 均衡,缩短了系统响应时间,提高了系统吞吐量。 静态轮循负载均衡算法无法区分服务器性能,不能做到为性能较好的服务器 多分发请求。动态分布式策略的负载均衡技术运用动态参数化线性加权负载均衡 算法,克服了静态轮循负载均衡算法的缺陷,而且实现了分布式调度,即各节点 的监测器m d s 收集本节点负载信息。这样负载均衡器不必主动去收集所有节点的 负载信息,从而降低了由于收集负载信息而增加的额外开销,减轻了负载均衡器 的负担,降低负载均衡器成为系统瓶颈的风险。 关键词:网格;m d s ;动态负载均衡;分布式调度策略;多服务器负载均衡 分类号: j 匕立交道叁堂亟堂僮i 佥塞 垦曼卫l j 羔 a bs t r a c t s t o r a g eg r i dw h i c hc a nr a p i d l yu n i f o r m l yv i e wa n dm a n a g es t o r a g ed a t a ,a l s o p r o v i d e sm o r ed a t ap r o t e c t i o n s t o r a g eg r i dw i t ht h e s ec h a r a c t e r i s t i c s ,m a k e ss t o r a g e g a dt e c h n o l o g yw i d e l yc o n s i d e r e dt h a ti t i so n eo ft h em o s te x t e n s i v et e c h n o l o g i e si n s t o r a g ef i e l d t h i sp a p e ri sar e s e a r c hf o rc a m p u sn e t w o r ks t o r a g eg a da p p l i c a t i o n t a k i n gi n t o a c c o u n tt h ep r a c t i c a la p p l i c a t i o ne n v i r o n m e n to ft h ec a m p u sn e t w o r k ,t h i sp a p e rb a s i n g o nt h ed n sp r i n c i p l er e a l i z e sd y n a m i cl o a db a l a n c i n gt e c h n o l o g y o n ed o m a i nn a n l e m a p ss e v e r a lw e bs e r v e r si p , s ot h er e q u e s t so f t h ed o m a i nn a m ec a l lb ed i s t r i b u t e dt o s e v e r a lw e bs e r v e r s d i f f e r e n tw e bs e r v e r sa r ec h a r g e dw i t hl a r g en u m b e ro fr e q u e s t t a s k s ,a c h i e v i n gl o a db a l a n c i n g t h i sp a p e rb a s i n go nt h ed n s p r i n c i p l ea n dg r i di n f o r m a t i o ns e r v i c et e c h n o l o g y r e a l i z e sd y n a m i cd i s t r i b u t e ds t r a t e g yl o a db a l a n c i n g , s h o r t e n i n gt h es y s t e mr e s p o n s e t i m e ,r a i s i n gt h es y s t e mt h r o u g h p u t t h es t a t i cr o u n dr o b i nl o a db a l a n c i n ga l g o r i t h mc a nn o td i s t i n g u i s hb e t w e e n d i f f e r e n ts e r v e r s p e r f o r m a n c e ,c a nn o t d i s t r i b u t em o r er e q u e s t st ot h eb e t t e r p e r f o r m a n c es e r v e r d y n a m i cd i s t r i b u t e ds t r a t e g yl o a db a l a n c i n gt e c h n o l o g yi m p l e m e n t s d y n a m i cp a r a m e t r i cl i n e a rw e i g h t e dl o a db a l a n c i n ga l g o r i t h mt oo v e r c o m e t h ed e f e c t s o ft h es t a t i cr o u n dr o b i nl o a db a l a n c i n ga l g o r i t h m f u r t h e r m o r e ,t h i st e c h n o l o g yr e a l i z e s d i s t r i b u t e ds c h e d u l i n gi nw h i c he a c hn o d e sm o n i t o r ( m d s ) p r o v i d e st h i sn o d e sl o a d i n f o r m a t i o n s ot h el o a db a l a n c e rd o e s n tn e e dt oc o l l e c ts e r v e r s l o a di n f o r m a t i o n i n i t i a t i v e l y , t h e r e b y , r e d u c i n gt h e e x t r ao v e r h e a dc a u s i n gb yt h ec o l l e c t i o no fl o a d i n f o r m a t i o n ,l i g h t e n i n gt h el o a db a l a n c e r sb u r d e n , r e d u c i n gt h er i s ko fl o a db a l a n c e r b e i n gas y s t e mb o t t l e n e c k k e y w o r d s :g r i d ;m d s ;d y n a m i cl o a db a l a n c i n g ;d i s t r i b u t e ds c h e d u l i n gs t r a t e g y ; m u l t i s e r v e rl o a db a l a n c i n g c l a s s n o : 学位论文版权使用授权书 本学位论文作者完全了解北京交通大学有关保留、使用学位论文的规定。特 授权北京交通大学可以将学位论文的全部或部分内容编入有关数据库进行检索, 并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学校向国 家有关部门或机构送交论文的复印件和磁盘。 ( 保密的学位论文在解密后适用本授权说明) 学位论文作者签名: 孑多乏 签字醐一陴矽日 导师签名: 签字日期: 湫轴 广 月释释 钞 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的研 究成果,除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发表或 撰写过的研究成果,也不包含为获得北京交通大学或其他教育机构的学位或证书 而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作 了明确的说明并表示了谢意。 学位论文作者签名:签字日期:年月日 5 5 致谢 首先我要感谢我的导师罗四维教授。在攻读研究生期间,能够成为罗四维教 授的学生是我莫大的荣幸。罗老师高尚的人格,严谨的学风,平易近人的态度及 宽广的胸怀,使我感受到一位师者的学术和人格魅力。在此衷心感谢研究生期间 罗老师对我的关心和指导。 罗老师悉心指导我们完成了实验室的科研工作,在学习上和生活上都给予了 我很大的关心和帮助,使我一生受益。 同时感谢蔺源师兄,杨麟儿对我的论文提出了宝贵的指导意见,在此表示衷 心的感谢。 1 1 论文背景及研究动机 1 1 1网格技术 1 绪论 网格( g r i d ) 是构筑在互联网上的一组新兴技术,利用高速互联网把分布于不 同地理位置的高性能计算机、大型数据库、存储器和软件等资源连成整体,就像 一台超级计算机一样,为用户提供一体化信息服务,其核心思想是:“整个因特 网就是一台计算机! ,【。 网格( g r i d ) 概念产生于9 0 年代中期【2 】,是从电力网( p o w e rg r i d ) 概念借鉴 过来的。网格的最终目的,是希望大家能够像使用电力一样方便地使用分布在网 络上强大而丰富的计算能力。网格计算( g r i dc o m p u t i n g ) 就是基于网格的问题求 解,它是在1 9 9 5 年的1 w a y 项目中提出来的【。 网格是目前越来越重要的研究领域,被称为是下一代的i n t e r n e t ,网格是一种 关系科研、经济、社会、国防的重要国家基础设施,在国内外都引起了广泛的关 注。网格的发展经历了三个阶段:第一阶段是网格的萌芽阶段,开始于9 0 年代早 期,研究内容是关于千兆网试验床以及一些元计算1 3 j 方面的工作;第二阶段是一些 早期的试验,时间大概从9 0 年代中期到晚期,出现了一些比较重要的开创性和奠 基性的研究项目,比如i w a y ,g l o b u s 4 】,l e g i o n t 5 】等;目前是网格计算的迅速发 展阶段,关于网格的研究、开发和应用项目大量出现,出现了影响很大的组织全 球网格论坛g g f ( g l o b a lg r i df o r u m ) ,同时网格计算也不再仅仅局限于科学研究, 工业与学术界,正致力于使网格计算在更广泛的领域得到推广和应用【l 】。 除了通常我们所熟知的能够进行分布式大规模计算的网格计算机外,存储网 格的地位也正日益凸显。存储网格提供了对存储数据进行快速统一的查看管理能 力,可实现数据库和企业之间更紧密的应用整合,并提供更高的数据保护能力。 存储网格产品所具有的这些特性,使得存储网格技术被普遍认为是存储领域中前 途最为广阔的技术之一【引。 1 1 2 存储网格 存储网格是指运用网格思路和技术,包括虚拟化和开放标准,实现分布、异 构的存储和数据一体化,为各类网格应用服务。与此相关的叫法还包括“虚拟存 储”、“网络存储”、“智能存储 等,这些技术的实现方法可能不一样,但基本的 目标和理念上是一致的l l5 1 。 总体来说,网格计算环境的出现对存储同时也提出了新需求。存储网格除了 具有大容量、网络化、容错性、高效性等基本要求外,还有非集中控制( 自主控 制) 、透明访问、异构性、协同化、全生命周期数据管理、创建、访问、迁移、复 制、删除的需要。综合起来,存储网格就是要将物理分布的各类存储系统和设备 虚拟成单一的存储系统,提供统一的、透明的、安全的访问和管理机制。这种分 布的场景包括企业分布计算、行业分布计算,可以是基于局域网、也可以是基于 广域网的存储服务。网络上物理分布的存储、服务器、网络设备可以自主的接入 到网格,通过中间层的虚拟化技术,为网格应用层形成统一的访问接口。 网格隐含的两个最具特色的深层次的问题是:共享和自主控制,这两个看似 矛盾的问题都不新鲜,但网格却也给它们赋予了深层次的含义,如何解决它们是 研究网格系统整体结构要考虑的问题,我们这里只讨论存储网格具有的这方面特 性。目前的网络存储主要目标为海量用户同时提供大数据量的存储服务,企业计 算是典型的使用场景,因此往往采用全局规划、集中管理模式。相比较起来,存 储网格同时需要强调存储在用户间的共享,以及用户的自主控制。但这跟全局规 划的集中模式并不完全相驳,因为接入网格的存储设备需要遵守共同的标准和虚 拟化方法,使得一体化访问变成可能【”】。 存储网格的自主性和共享性体现在下列几个方面: 1 提供网格存储的系统和设备由不同的用户控制和管理、没有集中统一的控 制,通过热插拔的方式动态与网格连接和拆除。 2 用户可以采用不同厂家的产品提供网格存储共享,具有自主的管理策略、 不同的网络协议、提供不同的服务质量等。 3 设备之间工作互不影响,如果一个设备不能正常工作,不会影响到其他设 备的工作。 4 支持全生命周期的存储服务,一般的用户可以进行数据创建、访问、备份、 恢复、迁移、归档、删除等操作,而不需要管理员的参与。 5 采用松散耦合的、可动态扩展的体系结构,采用单一系统映像,统一的存 储空间。这是满足自主性前提下存储共享需求所必须的。 在存储网格环境下,无论物理层存储的设备、驱动器、访问接口是什么,网 格应用系统看到的都是通过封装和虚拟化的存储服务。即便物理存储发生变化, 这种存储服务是不会变的,这样保证了网格应用照常正常运行。系统管理员不必 再关心物理存储,只需专注管理存储空间,大大简化了存储管理的复杂性,并可 2 进一步降低存储管理和运行成本。另一方面,由于用户可以自主控制将自己剩余 的存储空间共享出来为网格服务,它不需要大型的集中的存储设备,可以以一种 灵活的、透明的方式分配和共享资源。从体系结构的角度,这种基于松散耦合的 网格存储的扩展性几乎不受任何限制。 因此,在使用网格时,用户不用关心到哪里去下载音频视频文件;也不用关 心存储容量、文件格式和安全问题;在任何地方都可以访问和管理文件;可以方 便的将文件共享给网络伙伴;从不担心自己的文件会丢失。 可以简单的理解网格的存储就是存储网格的实现机制、方案。网格应用中除 了所熟知的能够进行分布式大规模运算的网格计算节点外,网格的存储往往起到 系统根基的作用。因为网络中的每一项运算都必须有强大的存储功能提供支持, 而该功能背后的关键就是要使诸如分布式数据库、存储设备、文件系统等多个层 面的存储进行有机整合,从而构成一个理想的网格存储环境。 构建网格存储环境涉及几个方面的关键问题和技术: 1 互操作性:互操作是进行无缝存储整合和共享的前提条件,其涉及两个方 面:接口和数据结构,接入网格的存储设备必须在接口和数据结构上保持 一致或者标准化。不论是数据库、存储设备还是文件系统,都可以用统一 的标准接口访问,并能实现数据的无缝交换。 2 安全性:海量的数据、非集中的控制、透明的访问、简单易用的管理、主 体客体的不确定性等网格计算特性对存储数据的安全要求显然比任何时 刻都苛刻。没有安全性的保障,数据共享就是纸上谈兵,另一方面,安全 性保障不应该给自主控制、管理和使用带来麻烦。 3 扩展性:扩展性要解决的问题不仅仅体现在存储设备数量的扩展、容量的 扩展,重要的是网格存储空间在通过虚拟化后,在松散耦合的网络环境可 以无限制扩展和动态改变,这种扩展和改变不会影响上层应用对存储空间 有效和一致的访问。 4 容错性:网格计算环境无可避免的在各个层次会出现异常和错误,比如数 据丢失、迁移、权限的改变导致结果不正确;数据不一致、重复、冗余的 存在导致结果混乱。为减少网格开发和使用的难度,错误需要网格存储自 行解决和处理,提供给上层正确、健康的数据服务。 5 低成本:网格相对其他技术的明显优势是低成本。成本包括价格成本和时 间成本,前者可以通过充分利用现有的设备和技术来解决,而时间成本包 括管理、培训、使用和维护全过程成本。简单、易用、支持全生命周期的 存储服务是降低时间成本的关键l l 引。 3 1 1 3 校园网格服务的负载均衡 本文研究的是校园存储网格的应用,以及如何将校园局域网内毕业设计管理 系统和存储网格结合起来。用户发起域名请求,访问毕业设计管理系统,上传论 文到网格节点。 但是这样就产生了问题:网格中存在海量的用户并发存储请求,当访问量急 剧上升的时候,单w e b 服务结构已无法满足急速增长的负载要求。 负载均衡技术建立在现有网络结构之上,它提供了一种廉价有效的方法,用 于扩展服务器带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和 可用性。负载均衡是由多台服务器以对称的方式组成一个服务器集合,每台服务 器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。通过 某种负载分担技术,将外部发送来的请求均匀分配到对称结构中的某一台服务器 上,而接收到请求的服务器独立地回应客户的请求。我们可以运用负载均衡技术 来调度多个w e b 服务器,从而满足急速增长的负载要求。 目前比较常用的负载均衡技术主要有: 1 基于d n s 的负载均衡:通过d n s 服务中的随机域名解析来实现负载均衡, 在d n s 服务器中,可以为多个不同的地址配置同一个域名,而最终查询 这个域名的客户机将在解析这个域名时得到其中一个地址。因此,对于同 一个域名,不同的客户机会得到不同的地址,他们也就访问不同地址上的 w e b 服务器,从而达到负载均衡的目的。 2 反向代理负载均衡:使用代理服务器可以将请求转发给内部的w e b 服务 器,让代理服务器将请求均匀地转发给多台内部w e b 服务器之一,从而 达到负载均衡的目的。这种代理方式与普通的代理方式有所不同,标准代 理方式是客户使用代理访问多个外部w e b 服务器,而这种代理方式是多 个客户使用它访问内部w e b 服务器,因此也被称为反向代理模式。 3 基于n a t 的负载均衡技术:网络地址在内部地址和外部地址之间进行转 换,以便具备内部地址的计算机能访问外部网络。当外部网络中的计算机 访问地址转换网关拥有的某一外部地址时,地址转换网关能将其转发到一 个映射的内部地址上。因此如果地址转换网关能将每个连接均匀转换为不 同的内部服务器地址,此后外部网络中的计算机就各自与自己转换得到的 地址上服务器进行通信,从而达到负载分担的目的。 4 新 请 求 服务器 图1 1 系统模型图 f i g u r e1 - 1s y s t e mm o d e l d n s 的静态轮循负载均衡算法技术简单,应用方便,结构直观。但是这种静 态调度技术无法区分服务器性能,不能做到为性能较好的服务器多分发请求。 本方案是基于d n s 原理的,一个域名映射多个w e b 服务器i p ,对域名的请 求任务被分发到多个w e b 服务器处理。同时结合了网格的信息服务技术,实现了 判断服务器性能,从而动态调度服务器,使性能较好的服务器多处理请求,缩短 了系统响应时间,提高了系统吞吐量。因为是在校园网内应用,所以运用校级主 d n s 来转发d n s 查询包。负载均衡器接收主d n s 转发过来的d n s 查询包,通过 动态参数化线性加权负载均衡算法来调度w e b 服务器响应用户请求。 1 2 论文主要研究内容 笔者采用一种动态分布式策略负载均衡技术来实现网格中的多w e b 服务器的 负载均衡。负载均衡器针对w e b 服务器集群中负载动态变化特性,运用基于参数 的线性加权负载均衡算法,根据c p u 利用率、内存利用率等参数评估服务器的负 载。 研究工作重点是负载均衡器的实现。它需要实现功能:捕获主d n s 转发的域 名查询请求,并解析d n s 查询包的h e a d e r ,q u e s t i o n 数据段。调用监测器 m d s 的d e f a u l t l n d e x s e r v i c e 获取系统中的每一台w e b 服务器的资源信息。在资源 信息的基础上,利用参数化线性加权负载均衡算法得到负载最轻的一个w e b 服务 5 器。将这个w e b 服务器的i p 封装到d n s 响应包,返回用户。 1 3 论文结构 第1 章概要介绍了存储网格技术,以及校园存储网格的应用,在此研究背景 下的提出了本论文研究的意义和方向。 第2 章介绍了本系统用到的网格体系结构以及g l o b u s 4 0 软件。 第3 章对m d s 进行详细说明。 第4 章结合实验室进行的存储网格项目,提出了一种可行的解决方案。 第5 章论述解决方案的实现,详细分为5 个步骤加以阐明。 第6 章对论文所做工作进行总结,并对下一步的工作进行展望。 6 2 1o g s a 简述 2 网格体系结构以及g l o b u s 4 0 网格的五层沙漏结构是一种以“协议”为中心的结构,强调协议在网格的资源 共享和互操作中的地位。为此根据与底层具体物理资源的距离,从下到上将网格划 分为五层,分别是构造层( n b f i c ) ,连接层( c o n n e c t i v i t y ) ,资源层( r e s o u r c e ) , 汇聚层( c o l l e c t i v e ) 和应用层( a p p l i c a t i o n ) 。五层结构的一个重要特点就是“沙漏 形状,其原因就在于各层协议的数量是不同的。最核心的部分不仅要实现上层各种 协议向自身协议的映射,而且要实现自身协议向下层其它各种协议的映射。因为核 心协议在所有支持网格计算的地点都应该得到支持,所以核心协议的数量不应该太 多,这样核心协议就形成了协议层次结构中的一个瓶颈。在五层结构中,资源层和 连接层共同组成这一核心的瓶颈部分。 开放网格服务体系结构( o p e ng r i ds e r v i c e sa r c h i t e c t u r e ) 中“服务的概念, 就是在五层结构上所提出的“协议”概念的基础上发展而来的。o g s a 最突出的思 想就足以“服务”为中心。在o g s a 框架中,将一切都抽象为服务,包括计算机、 程序、数据、仪器设备等。这种观念,有利于通过统一的标准接口来管理和使用网 格1 1 。 考虑到网格环境的具体特点,o g s a 提出了“网格服务( g r i ds e r v i c e ) ”的概念, 用于解决服务发现、动态服务创建、服务生命周期管理等与临时服务有关的问题。 基于网格服务的概念,o g s a 将整个网格看作是“网格服务的集合,但是这个集 合不是一成不变的,是可以扩展的,这反映了网格的动态特性。 在o g s a 中,可以基于简单的基本的服务,形成更复杂、更高级、更抽象的服 务。比如一个复杂的计算问题所需要的服务,包括网络、存储、数据查询、计算资 源等各方面的服务,可以将这些基本的服务组织起来,形成一个高级的抽象服务, 方便地为应用提供支持。 o g s a 借鉴了已有结构与技术的优点,提出了以服务为中心的结构形式。这种 结构的最大特点就是将网格计算从传统的科学与工程计算为中心的研究领域扩展到 企业、团体等社会与经济活动之中,大大扩展了网格计算的应用领域【l 】。 应用 o p e ng r i ds e r v i c e sa r c h i t e c t u r e ( 0 g s a ) 开放网格服务体系结构 w e b n 艮务 安全工作流数据库文件系统目录消息 服务器存储器网络设备 图2 1o g s a 层次结构图 f i g u r e2 - 1o g s a a r c h i t e c t u r e 2 2w s r f 和w s n 标准 2 2 1w e b 服务资源框架 w s r f ( w s r e s o u r c ef r a m e w o r k ) 是一系列构建在s o a p 、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 ) 和w s - a d d r e s s i n g 基础上的规范,用来对组件中的通用开发模 式提供支持。w e b 服务资源框架,一个具有五个技术规范的集合,它们根据特定的 w e b 服务消息交换和相关的x m l 定义来定义了w e b 服务资源方法的标准化描述。 1 w s r e s o u r c e l i f e t i m e :w e b 服务资源的析构机制。包括消息交换,它使请 求者可以立即地或者通过使用基于时间调度的资源终止机制来销毁w e b 服 务资源。 2 w s r e s o u r c e p r o p e r t i e s :w e b l 报务资源的定义,以及用于检索、更改和删除 w e b 服务资源特性的机制。 3 w s r e n e w a b l e r e f e r e n c e s :在端点引用变成无效的时候,用来检索更新版本 的策略信息对于w e b 服务寻址( w s a d d r e s s i n g ) 端点引用的修饰。 4 w s s e r v i c e g r o u p :连接异构的通过引用( b y r e f e r e n c e ) 的w e b 服务集合的 接口。 5 w s b a s e f a u l t s - 当w e b 服务消息交换中返回错误( f a u l t ) 的时候所使用的 基本错误x m l 类型。 当存储和网格资源提供用于功能和管理目的的w e b 服务时,它们应该使用 w s r fr e s o u r c ep r o p e r t i e s 来提供描述和访问任何状态的基础。如果资源可以通过 w e b 服务接口进行销毁,它们就应该实现w s r fl i f e t i m e 规范【1 2 】。 2 2 2w e b 服务资源信息 w e b 服务资源的定义根据隐式资源模式( i m p l i e dr e s o u r c ep a t t c r n ) 整理了w e b 服务与有状态资源之间的关系,一组关于w e b 服务技术的约定( c o n v e n t i o n ) ,尤其 是x m l 、w s d l 和w s a d d r e s s i n g 。这些约定使参与隐式资源模式( i m p l i e dr e s o u r c e p a t t e r n ) 的资源的状态可以被定义并与w e b 服务接口的描述相关联。资源的状态是 根据资源特性文档来定义的。我们在这里概述了这些约定。我们使用术语w e b 服务 资源( w s r e s o u r c e ) 来描述这个w e b 服务和资源特性文档的配对( p a i r i n g ) 。 w e b 服务寻址( w s a d d r e s s i n g ) 使用于表示部署在特定网络端点的w e b 服务的 地址的端点引用结构标准化。除了w e b 服务的端点地址之外,端点引用还可以包括 其他与w e b 服务相关联的元数据( m e t a d a t a ) ,例如服务描述信息和引用特性 ( r e f e r e n c ep r o p e r t i e s ) ,它们有助于进一步限定w e b 服务地址的使用。端点引用的 引用特性在隐式资源模式( i m p l i e dr e s o u r c ep a t t e r n ) 中起重要作用。 9 隐式资源模式( i m p l i e dr e s o u r c ep a t t e r n ) 定义了w e b 服务寻址的约定用途,在 这里有状态资源被当作由w e b 服务所实现的消息交换处理过程的隐式输入。 在后面作为隐式资源模式( i m p l i e dr e s o u r c cp a t t e r n ) 所描述的端点引用可以包 括r e f e r e n c e p r o p e r t i e s 子元素,它识别在所有使用这e n d p o i n t r e f e r e n c e 来执行消息交 换过程中所使用的有状态资源。这种类型的端点引用被称为w e b 服务资源限定的端 点引用( w s r e s o u r c e - q u a l i f i e de n d p o i n tr e f e r e n c e ) 。定向到由w e b 服务资源限定的 端点引用所指定的w e b 服务的请求消息必须包括来自端点引用的 r e f e r e n c e p r o p e r t i e s 信息,正如w e b j 务寻址( w s a d d r e s s i n g ) 所规定的。 因而,w e b 服务资源框架( w s r e s o u r c ef r a m e w o r k ) 使用w e b 服务资源限定的 端点引用来表示w e b 服务资源的“网络范围的指针”( n e t w o r k w i d e p o i n t e r ) 。w e b 服务限定的端点引用可以被作为到一个创建新的w e b 服务资源的工厂f a c t o r y 的 w e b 服务消息请求的结果来返回,或两者择一地从对服务注册中心的搜索查询的估 计值来返回,或者作为某些特定于应用程序的( a p p l i c a t i o n s p e c i f i c ) w e b 服务请求 的结果来返回。 w e b 服务资源框架( w s r e s o u r c ef r a m e w o r k ) 并不试图去定义用于请求创建新 的w e b 服务资源的消息交换。实际上,它仅仅指出,新的w e b 服务资源可以由某些 带外( o u t o f - b a n d ) 机制来创建,或者通过使用用于w e b 服务的使用模式, w s r e s o u r c e l i f e t i m e 规范这个w e b 服务为w e b 服务资源工厂( w s r e s o u r c ef a c t o r y ) 。 工厂模式( f a c t o r yp a t t e r n ) 是常用的创建型模式( c r e a t i o n a lp a t t e r n ) 。w e b j 及务资 源工厂( w s r e s o u r c ef a c t o r y ) 是任何能够产生一个或者多个w e b 服务资源的w e b 服务。典型地,w e b 服务资源工厂操作的响应信息至少包括一个到新的w e b 服务资 源的端点引用,尽管工厂可能通过其他的方式来传送新的w e b 服务资源的引用,例 如将w e b ) j 艮务资源限定的端点引用放置在注册中心以备稍后检索【1 2 】。 w e b 服务资源的w e b 服务组件可以通过在w e b 服务寻址( w s a d d r e s s i n g ) 端点 引用的引用特性组件中包含有状态资源的标识符来构造w e b 服务资源的地址。于是, 这个端点引用被称作是w e b h 艮务资源限定的( w s r e s o u r c e q u a l i f i e d ) 。然后,w e b 服务资源限定的端点引用对于在分布式系统中的其他实体变得可用,随后它们就可 以利用那个端点引用去引导对于w e b 服务资源的请求。逻辑上,这些请求“流”( f l o w ) 经w e b 服务资源的w e b 服务组件,它了解封装在w s a d d r e s s 端点引用中实现相关的 有状态资源标识符的内容。w s a d d r e s s 端点引用的部分识别服务,反过来服务利用 引用特性来识别在消息执行中所使用的有状态资源。收到w e b 服务寻址 ( w s a d d r e s s i n g ) 端点引用的w e b j 艮务请求者可以将那个端点引用传送给其他的服 1 0 务,并确信接收者可以调用包括w e b 服务资源实例( i n s t a n c e ) 的操作。这是w e b 服 务寻址( w s a d d r e s s i n g ) 的基础。 用于公开w e b 服务资源的有状态资源组件身份的常见方法将是把这个身份视为 一个或者多个在w e b 服务资源特性文档中所表示的资源特性。这种方法将使服务请 求者能够凭借这个文档来引导查询,使用所理解的特性来表示有状态资源的身份。 如果身份作为一个或者多个资源特性来被公开,w e b 服务资源应该确保只读访问那 些特性。典型地,允许服务请求者改变有状态资源的身份是无效的。 w s r e s o u r c e p r o p e r t i e s 规范定义了那些w e b 服务资源状态组件的类型和值。服务 请求者可以通过w e b 服务接口查看和修改它。关键的想法如下: 1 w e b 服务资源具有一个使用x m ls c h e m a 定义的x m l 资源特性文档( x m l r e s o u r c ep r o p e r t yd o c u m e n t ) 。 2 服务请求者可以通过标准的方法搜索w s d lp o r t t y p e 定义来确定w e b 服务 资源的类型。 3 服务请求者可以使用w e b 服务消息交换来阅读、修改和查询表示w e b 服务 资源状态的x m l 文档。 我们使用的术语资源特性( r e s o u r c ep r o p e r t y ) 是指w e b 服务资源的状态的个体 组件。我们称描述w e b 服务资源的有状态资源组件的类型的x m l 文档为w e b 服务资 源特性( w s r e s o u r c ep r o p e r t i e s ) 文档。每个资源特性都被表示成在w e b 服务资源 特性文档中的一个x m l 元素。 x m l 的使用是逻辑上的。底层的状态可能具有任何一种或者多种格式,并且位 于单一或者多个地点。 w e b 服务资源特性文档是使用x m ls c h e m a 来描述的。特别地,在某些x m l 名 称空间中,w e b 服务资源特性文档被表示为x m l 全局元素声明( x m lg l o b a le l e m e n t d e c l a r a t i o n ,g e d ) ,其中包含一组个体资源特性的x m lg e d 的引用。例如,考虑 一个被称为“c ”的有状态资源。如果“c ”的状态包含三个资源特性组件,被称为 p l 、p 2 币l p 3 ,那么它的资源特性文档,被称为“e x a m p l e r e s o u r c e p r o p e r t i e s ”,可能 被定义如下【1 2 】。 s c h e m aj ? 黟叩? 。 _ 午辨砰辨6 咒哗”毋,7 7 一等崎 守“l 哗芦_ “皆”? m 雩? o 髯豫j = + 警强 t a r g e t n 螂e = o h t t p j e x a m p l e c o m ,黜倾懿e p r o p e l l 垴商龇n p k ” ,7 7 谚 盈i 山拈:t 酗= n 1 1 t l p 埘白翰加掣l k c o m , r e s o m c e p r o p e r t i e s e x a m p l e ”! 壤 鄹n i 皿s :黯= ”h t t p :认枷哪w 3 - o r e d 2 0 0 1 , 楚m l s c l x m a 鬈 多:镌 o 臻 x s :e l e m e n tn a m e d p l ”t y p e = 务 :篓 x s :e l e m e mn a n m = p 2 ”t y p e = 卢 臻 x s :e l e m e mn a m e = p 3 “t y p e = 卢 缪 x s :e k - m e mn 枷萨笆翮印l e 黜瓣玎c e m o p e i t i 鸭 。 ”鬈 。 。荔 j 酷:s e q l l 髓c e 秀 :- - - - x s :e l e m e n tr e f = - t n s :p l n , - | 臻 x s :e l e m e mr e f = “i n s :p 2 ”彦凑 囊 和:e l e m e m , 。镌 一# 囊乡奴:裳b ! m 矗勰匆。磊荔蕊,兹磊纛。磊易一勰量刍锄? :。? 。:t :么。之,。i 匆镓参荔茹# 二弘菇。女锄赫i :;荔蠢乏巍1 2 乏滋 图2 - 2 资源文档图 f i g u r e2 - 2x m l r e s o u r c ed o c u m e n t w e b 服务资源的状态,即在w e b 服务资源的资源特性文档中所公开的资源特性 的值,可以通过使用标准的w e b 服务消息来读取、修改和查询。这些消息交换在 w s r e s o u r c e p r o p e r t i e s 规范中被定义,并且应该作为w s d l 操作包含在任何使用 w s r p :r e s o u r c e p r o p e r t i e s 属性的p o r t t y p e q b 来声明w e b 服务资源特性文档。这里我们 将简要地描述这些操作;w s r e s o u r c e p r o p e r t i e s 规范提供了更多的详细资料。 基本功能是使用简单的w e b 服务请求响应消息交换来检索单个资源特性,如先 前所描述的使用w e b 服务资源限定的( w s r e s o u r c e q u a l i f i e d ) 端点引用识别w e b 服 务资源,以及通过它的g e d 的受限名称来识别资源特性。这个检索函数的一个稍微 复杂的变体允许使用单一的请求响应消息交换检索多重资源特性的值。 这些函数在w s r e s o u r c e p r o p e r t i e s 操作“g e t ”中被编码,正如g e t 请求消息中所 指定的,它允许请求者检索一个或多个w e b 服务资源特性的值,如下所示: 1 2 赢c 科m n l t 洲最散m 肝一n p r t i 茹缳7 只秽“。i 嬲黟”嬲哆孵翟爹獬嘲:黜群哟”磺 撕:一嘲e r 嘲般e 陬职矗舻一。7 7 。”? ”7 一”。1 ”、秀 w 印:l s o 愀珊0 p 眦y ( 拼锄曰 粥印:黜燃冉o p e 田舛荔 踟s l p :g e l 基出1 1 6 p k r d 的啦比e p 】广o p 颉e 痧,。i 。,协:。“k 焉意。盈,z 。i 麓施施童。磊i ,。! 童= j 。? 钎,二乒;,荔 图2 3 资源文档图 f i g u r e2 - 3x m l r e s o u r c ed o c u m e n t 根据在请求消息中指定的q n a m e s 所确定的w e b 服务资源特性的值,这个消息的 响应是一个x m l 元素的序列。 例如,下面的消息表示一个从有状态资源( 比如“c ) 中检索特性“p 1 ”的 值的请求。 褥矗舔:e m - e 妒”孵黝”移缨孵饿畛。静絮鸭缈泓”伤警彩猎蟛鳓劈锄嬲豫4 攀缈”镬 = 躲c 譬 螂蛳:i 历s p :b 驰西饵 眵,幺囊磊k :磊五妊i 瑟基。兹i i 弘够z 。t o 螽鬈么五震苏;茏一旋厄z k 。童i 么磊妊象兹纛磊,z ,二。,7 i :篷 图2 4 资源文档图 f i g u r e2 - 4x m l r e s o u r c ed o c u m e n t “c ”有状态资源,这个标识符信息携带于s o a p 头元素中,它是用于w e b 服务 资源寻址( w s a d d r e s s i n g ) 端点引用r e f e r e n c e p r o p e r t i e s 的标准编码。 2 2 3w s n 标准 w e b 服务通知( w s - n o t i f i c a t i o n ) 是一系列构建在s o a p 、w s d l 、w s a d d r e s s i n g 和w s r e s o u r c ep r o p e r t i e s 基础上的规范。它定义了基本的发布和订i 阋p o r t t y p e s 。还 定义了对

温馨提示

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

评论

0/150

提交评论