(计算机软件与理论专业论文)广域网服务发现系统的研究.pdf_第1页
(计算机软件与理论专业论文)广域网服务发现系统的研究.pdf_第2页
(计算机软件与理论专业论文)广域网服务发现系统的研究.pdf_第3页
(计算机软件与理论专业论文)广域网服务发现系统的研究.pdf_第4页
(计算机软件与理论专业论文)广域网服务发现系统的研究.pdf_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

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

文档简介

摘要 摘要 服务发现技术是分布式计算领域中一个重要的研究方向。通过服务发 现机制,用户不必再像以前那样事先静态地配置好各种用于访问服务的有 关参数,而是可以根据需要对服务进行动态、即时的配置和访问。当前的 服务发现系统基本上都是专门针对局域网而设计的,并不适合在广域网环 境中部署。广域网服务发现系统是目前的研究热点。 本文首先介绍了服务发现技术的基本原理和构建服务发现系统时所需 要的关键技术:并阐述了评价服务发现系统的基本原则,同时对现有的服 务发现系统的功能和特点做了分析和比较。 其次,在分析了服务发现系统的特点和广域网的网络特性的基础e , 提出了适用于广域网环境的服务发现系统应该具备的特点,并且解决了广 域网服务发现系统中的许多技术问题。采用分布式的体系结构来构建广域 网服务发现系统,提高了系统的可扩展性:引入解析机制来解决用户和服 务提供者定位服务信息管理器和系统容错的问题;设计了最短路径算法来 转发查询请求,较好的解决了分布式结构中查询信息的转发问题;采用部 分复制的方式在系统的各个节点问传播服务信息索引,提高了整个系统的 运行效率。 最后,在解决了相关技术难点问题的基础上,采用面向对象的方法设 计并实现了一个广域网服务发现原型系统。 关键词服务发现;分布式结构:域;查询转发:部分复制 燕山大学t 学硕士学位论文 a b s t r a c t s e r v i c ed i s c o v e r yt e c h n o l o g yi sa ni m p o r t a n tc o m p o n e n to fd i s t r i b u t e d c o m p u t i n gs y s t e m t h r o u g hs e r v i c ed i s c o v e r ys y s t e m ,u s e rc a nd y n a m i c a l l y b i n ds e r v i c ea n da c c e s si t u s e rn e e dn o tc o n f i g u r ep a r a m e t e rs t a t i c a l l ya s b e f o r e c u r r e n ts e r v i c ed i s c o v e r ys y s t e mi sd e s i g n e df o rl o c a la r e an e t w o r k ( l a n ) ,a n dc a nn o tb ed e p l o y e d f o rw i d ea r e an e t w o r k ( w a n ) s e r v i c e d i s c o v e r ys y s t e m f o rw a ni sa h o t r i o ti na c a d e m e f i r s t l y , t h i sp a p e ri n t r o d u c e st h eb a s i ct h e o r i e sa n dk e yt e c h n o l o g i e so f s e r v i c ed i s c o v e r ys y s t e m t h ep r i n c i p l e sf o re v a l u a t i n gas e r v i c ed i s c o v e r y s y s t e m a r e g i v e n t h i sp a p e ra n a l y s e s a n d c o m p a r e s t h ef u n c t i o n sa n d c h a r a c t e r i s t i c so fc u r r e n ts e r v i c ed i s c o v e r ys y s t e m s s e c o n d l y , b a s e d o n a n a l y z i n g s e r v i c e d i s c o v e r ys y s t e m a n dn e t w o r k c h a r a c t e r i s t i c so fw a n ,t h ec h a r a c t e r i s t i c so fs e r v i c ed i s c o v e r ys y s t e mf o r w a na r eg i v e n m a l a yt e c h n o l o g i e so fs e r v i c ed i s c o v e r ys y s t e mf o rw a n a r e r e s o l v e d d i s t r i b u t e da r c h i t e c t u r ei su s e dt o i m p r o v et h es c a l a b i l i t y o ft h e s y s t e m r e s o l v em e c h a n i s mi sa d o p t e dt oh e l pu s e rl o c a t es e r v e ra n ds y s t e m f a u l t t o l e r a n t s h o r t e s td i s t a n c ea l g o r i t h mi s d e s i g n e d t ot r a n s m i tt h eq u e r y r e q u e s t s i n d e x e so fs e r v i c ei n f o r m a t i o na r ed e l i v e r e dt oa 1 1t h en o d e sw i t ht h e m e a n so f p a r tr e p l i c a t i o n f i n a l l y , b a s e do nr e s o l v i n gt h e s et e c h n o l o g i c a ld i f f i c u l t i e s ,ap r o t o t y p e s e r v i c e d i s c o v e r ys y s t e m f o rw a ni s d e s i g n e d a n d i m p l e m e n t e db y o b j e c t o r i e n t e dm e t h o d k e y w o r d ss e r v i c ed i s c o v e r y ;d i s t r i b u t e da r c h i t e c t u r e ;d o m a i n ;q u e r ya n d t r a n s f e r ;p a r tr e p l i c a t i o n 第1 章绪论 第1 章绪论 1 1 分布式计算系统概述 计算机技术的发展可以通过使用计算机的不同方式来描述。在上世纪 5 0 年代,计算机是串行处理机,一次运行一个作业直至完成。这些处理机 通过一个操作员从控制台操纵,而对于普通用户则是不可访问的。在6 0 年代,需求相似的作业作为一个组以批处理的方式通过计算机运行以减少 计算机的空闲时间。同一时期还提出了其它一些技术,如利用缓冲、假脱 机和多道程序等脱机处理技术。7 0 年代产生了分时系统,不仅提高了计算 机的利用率,也使用户离计算机更近了。分时是向分布式系统迈进的第一 步,用户可以在不同的地点共享并访问资源。8 0 年代是个人计算的1 0 年, 人们有了自己专用的机器。由于基于微处理器的系统所提供的出色的性能 价格比和网络技术的稳步提高,9 0 年代成为了分布式系统的1 0 年i i j 。 分布式系统可以有不同的物理组成:一组通过网络互连的个人计算机, 一系列不仅共享文件系统和数据库系统而且共享c p u 周期的工作站( 而且 在大部分情况下本地进程比远程进程有更高的优先级,其中一个进程就是 一个运行中的程序) ,一个处理机池( 其中终端不隶属于任何一个处理机, 而且不论本地进程还是远程进程,所有资源得以真正的共享) 。 分布式系统是无缝的,也就是说网络功能单元间的接口很大程度上对 用户不可见。分布式计算的思想还被应用在数据库系统u 一一j ,文件系统p 山j , 操作系统和通用环境垆j 。 另一种表示同样思想的说法是用户把系统看成一个虚拟的单处理机而 不是不同处理机的集合。向分布式系统发展的主要推动因素在于: ( 1 ) 固有的分布式应用分布式系统以一种很自然的方式开始存在,例 如,在现实社会中,人群在地理上是分布式的并且分布式地共享信息。一 方面,一个分布式数据库系统中的信息产生于不同的分支机构( 子数据库) , 因此本地访问可以很快进行;另一方面,系统也提供了全局视图来支持全 燕山大学工学硕士学位论文 局操作。 ( 2 ) 性能成本分布式系统的并行性减少了处理瓶颈,全方位提高了性 能,也就是说,分布式系统提供了更好的性能价格比。 ( 3 ) 资源共享分布式系统能有效支持不同地方的用户对信息和资源 ( 硬件和软件、的共享。 ( 4 ) 灵活性和可扩展性分布式系统可以增量扩展,并能方便地修改或 扩展系统以适应变化的环境而无需中断其运行。 ( 5 ) 实用性和容错性依靠存储单元和处理单元的多重性,分布式系统 具有在系统出现故障的情况下继续运行的潜力。 ( 6 ) 可伸缩性分布式系统容易扩大规模以包括更多的资源( 硬件和软 件) 。 1 2 分布式系统结构的发展 分布式计算系统产生至今涌现了许多具有里程碑意义的成果,以下这 些成果代表了分布式系统的发展历程。 1 2 1 传统的c l i e n t s e r v e r 结构 最初的计算机系统多是单机系统,多个用户是通过联机终端来访问的, 没有网络的概念。网络出现后,产生了c l i e n t j s e r v e r 的计算服务模式,它 把较复杂的计算和管理任务交给网络上性能较优的服务器( s e r v e r ) ,而把一 些频繁与用户打交道的任务交给前端较简单的客户机( c l i e n t ) ,多个客户端 可以共享数据库服务器和打印服务器等,从而实现了网络上信息资源的共 享。 随着i n t e r n e t 的发展,最初的两层的c l i e n t s e r v e r 演变成b r o w s e s e r v e r 的三层结构,它将事务处理逻辑模块从客户机的任务中分离出来,客户端 只负责显示;w e b 服务器接受用户请求后,执行相应的扩展应用程序与数 据库进行连接,通过s q l 等方式向数据库服务器提出数据处理申请,并负 责将数据库服务器的数据处理结果传送回客户端。 2 第1 章绪论 但是随着网络的进一步发展,许多软件需要在不同厂家的网络产品、 硬件平台、网络协议异构的环境下运行,而且应用的规模也从局域网发展 到广域网。在新的需求面前,传统的客户服务器f c s ) 模式的分布式应用方 式在运行效率、系统网络安全性和系统升级能力等方面的局限性表现得越 来越突出一i 。 1 2 - 2 基于中间件的分布式组件运算 进入9 0 年代以来,中间件成为了分布体系应用的关键技术,它与对象 技术的结合,出现了基于中间件的分布式组件技术。中间件是位于操作系 统和应用软件之间的通用服务,它的主要作用是用来屏蔽网络硬件平台的 差异性和操作系统与网络协议的异构性,使得应用软件能够比较平滑地运 行在不同的系统平台上,同时中间件还在负载平衡、连接管理和调度等方 面起了很大的作用,使得企业级应用的性能得到大幅提升,满足了关键业 务的需求。 目前国际上有三大分布式组件对象标准:一个是由o m g 组织推出的 c o r b a ,即公共对象请求代理结构;一个是微软公司推出的d c o m ,即 分布式组件对象模型:还有一个是s u n 公司推出的用j a v a 语言开发的分 布对象模型r m i ,即远程方法激活。由于c o r b a 标准在结构标准实现的 灵活性、跨语言能力、跨平台实现及安全性等方面的综合对比中优于 d c o m 和r m i ,所以它已经成为开放式结构应用程序的酋选标准。下面以 c o r b a 为例来介绍分布式组件系统的主要特点,可总结为如下几个方面: ( 1 ) 引入中间件( m i d d l e w a r e ) 作为事务代理,完成客户机( c 1 i e m ) 向服务 对象方( s e r v e r ) 提出的业务请求。引入中间件概念后的分布计算模式如图 l 一1 所示。 图1 1引入中间件后客户与服务对象的关系 f i g 1 1 r e l a t i o n s h i pb e t w e e nu s e r sa n ds e r v i c e - o b j e c t sw i t hm i d d l e w a r e 3 垄些查堂兰堂堡主堂垡迨茎 ( 2 ) 实现客户与服务对象的完全分开,客户不需要了解服务对象的实现 过程以及具体位置。其结构如图l 一2 所示。 0 客 r 户 b 端 接口仓库 上下丈对象 对象服务 0 服 r 务 b 端 对 蒙 适 配 器 服 务 器 骨 干 对象:【具ff 实现仓库 图1 2c o r b a 系统结构 f i g 1 2 a r c h i t e c t u r eo f c o r b a ( 3 ) 提供软总线机制,使得在任何环境下、采用任何语言开发的软件只 要符合接口规范的定义,都能够集成到分布式系统中。这个特点给开发人 员带来了极大的方便。 ( 4 ) 在c o r b a 规范的软件系统中,采用面向对象的软件实现方法来开 发应用系统,实现了对象内部细节的完整封装,保留了对象方法的对外接 口定义。c o r b a 还提出了接口定义语言( 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 ) ,i d l 只给出了函数的原型,并没有给出具体的实现,这就留给开发 者足够的灵活性来提供他们自己的函数实现,开发者可以根据不同的需求 来开发相应的函数实现。 基于中间件的分布式组件技术重新调整了客户机与服务器之间的关 系,客户机可以向服务器提出事务请求,同时也可以为下一个请求充当服 务器角色。由中间件完成客户机与服务器之间的通信,使得服务器对子客 户机的位置相对透明,取消了原有分布式计算模型中客户机、服务器之间 一一对应的关系,客户机可以在运行时动态获得服务对象的位置,并且可 以对多个服务对象提交事务请求,因此,基于中间件的分布式组件技术极 4 第1 章绪论 大推动了分布计算的发展。 1 2 3 、 k bs e r v i c e s m i c r o s o f t 的c o m 家族和o m g 的c o r b a 标准等分布式对象技术对 分布式计算的发展起到了巨大推动作用,但由于它们都是对分布式环境进 行规范化的早期产物,所以都存在一些共同的不足之处。 ( 1 ) 未能解决采用不同字节存储顺序的体系结构之间的通信问题; ( 2 ) 有些功能在不同平台上不能正常工作; ( 3 ) 不能对网络输出流进行处理; ( 4 ) 服务器或者客户在程序执行的过程中可能会“消失”( 比如出现故 障或下网) 。 另外,以上这些分布式解决方案采用的都是独有的协议,都没有选择 利用现有的协议;而且,组件对象模型技术需要花费相当长的时i j 9 1 能够 掌握。 面对如此之多的不足,人们提出了w e bs e r v i c e s 技术。w e bs e r v i c e s 的确是一个崭新的概念,但它的系统架构、实现技术却是完完全全继承已 有技术的,绝对没有使现有应用推倒重来,而是现有应用,即对象组件技 术面向i n t e m e t 的延伸。从表面上看,w e bs e r v i c e s 就是一个应用程序,它 向外部暴露一个能够通过w e b 调用的a p i 接口,也就是说,调用者能够用 编程的方法通过w e b 来调用该应用程序。而对w e bs e r v i c e s 技术更为精确 的解释应该是,w e bs e r v i c e s 是用来建:立可互操作的分布式应用程序的新 平台。 从外部使用者的角度而言,它具备以下特征: ( 1 ) 完好的封装性w e bs e r v i c e s 是对象组件在i n t e r n e t 中的延伸,换 而言之,它就是w e b 上的对象组件,自然具备对象的良好封装性,对于 使用者而言,它仅能看到对象提供的功能列表。 ( 2 ) 松散耦合这一特征也来源于对象组件技术,当一个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 的实现里面任何地变更对 e 燕山大学工学硕士学位论文 他们都是透明的,甚至服务的实现平台发生变化,用户也感受不到。 ( 3 ) 使用标准协议规范作为w e b 服务,其所有公共的协约完全需要使 用开放的标准协议进行描述、传输和交换,这些标准协议具有完全免费的 规范,以便由任意方实现。 ( 4 ) 高度可集成能力由于w e bs e r v i c e s 采取简单、易理解的标准w e b 协议作为组件界面描述和协同描述规范,从而完全屏蔽了不同软件平台的 差异,c o r b a 、d c o m 都可以通过这一标准的协议进行互操作,实现当 前环境下最高的可集成性。从这个角度而言,w e bs e r v i c e s 为应用程序通 信提供了一种独立于平台、组件模型和编程语言的标准。典型的w e b s e r v i c e s 体系如图1 3 所示。 图1 3w e bs e r v i c e s 体系结构 f i g 1 - 3a r c h i t e c t u r eo f w e b s 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 描述广泛传扬的基础;查找操作为计算机或者程序查找和了解w e b s e r v i c e s 的内容、所在地和连接方法提供了手段;绑定操作使得w e b s 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 部件。 服务申请者是希望运行w 曲s e r v i c e s 实例的业务过程,也就是w e b 6 第l 章绪论 s e r v i c e s 的使用者,它可能是某个使用w e b 浏览器的人,也可能是一个软 件,甚至可能是另外一个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 1 0 】。 1 2 4p 2 p 技术 p 2 p 即p e e r - t o p e e r 称为对等连接或对等网络。p 2 p 起源于最初的联网 通信方式。其中建立在t c p i p 协议之上的通信模式构成了今日互联网的 基础,所以从基础技术角度来看,p 2 p 并不是新技术,而是新的应用技术 模式。今天,p 2 p 技术再一次成为学术界的研究热点,这是因为p 2 p 技术 能够很好地解决c s 结构和b s 结构所存在的问题,能够更有效地促进 i n t e r n e t 的发展i i 。 首先,p 2 p 网络中任何一个p e e r 既是c l i e n t ,同时也是s e r v e r ,所以 任何信息的发布只要在本机上发布就可以,无需通过中央服务器,大大增 强了数据发布的实时性,而且通过p 2 p 网络中内在的发现机制,能够迅速 地找到新发布的数据。 其次,p 2 p 网络采用的通信方式将会导致信息数量、成本资源都向互 联网中的各个站点均匀地分布,从而避免了某些热点的站点或者主机的带 宽资源严重不足,而同时在另外一些站点或主机的带宽资源又严重浪费的 问题。 再次,p 2 p 网络具有高度的自适应性和扩展性,任何一个p e e r 的退出, 都不会影响其它的p e e r 及其提供的服务。 最后,p 2 p 的网络可以满足分布在世界上不同地区的主机之间进行协 同计算和资源共享。 目前流行的p 2 p 软件包括用于i n t e r n e t 上文件共享的n a p s t e r ,分布式 计算的s e t l h o m e ,即时消息传递的i c q 等。但它们都是封闭的,并不 是开放式的应用平台,而且都仅专注于某一具体的领域,造成了基础设施 的重复开发。 7 燕山大学t 学硕士学位论文 1 3 分布式系统中的服务发现技术 分布式系统为用户提供了各种不同类型的服务( 资源) ,而这些服务可 能有不同的形式,并且各种服务的复杂程度不同,例如,面向软件 f s o f t w a r e o r i e n t e d ) 的服务、面向硬件( h a r d w a r e o r i e n t e d ) 的服务、移动( m o b i l e ) 服务。服务发现就是客户以某种方式在这些不同类型的服务中找到自己所 需要的服务u “。 在许多早期的分布式系统中,用户往往只能通过手工查找的方法来获 得系统所能提供的服务,然后根据所获得的信息在应用程序中访问该服务, 这种方法需要人工干预,而且灵活性极差。随着各种应用需求的不断发展, 分布式系统必须要实现能够动态访问,而动态访问就需要高效率和自动化 的服务发现技术作保证。自动化的服务发现技术是由应用程序在运行时自 动地寻找其所需要的服务,而不是通过手动来寻找服务。 在w e bs e r v i c e s 中提供了专门用于发现服务的标准a p i 接口,而服务 发现的具体过程则是由u d d i 或w s i l 等技术来完成”“。在p 2 p 系统中, 服务发现层是至关重要的环节,但是由于现有p 2 p 系统多是专门搭建的, 所以其采用的技术各有特点,比较经典的p 2 p 系统搜索算法有t a p e s t r y 【i , p a s t r y 【1 5 j ,c a n l l 6 1 f 1 1 c h o r d 【1 7 1 等。 1 4 本文的工作及内容组织 分布式计算的研究是当今计算机科学与技术中重要的发展方向之一, 是一个具有一定理论与实践意义的课题。从上世纪7 0 年代开始,分布式计 算的研究取得了一系列里程碑式的成果。但是,随着计算机网络技术的不 断发展和各种应用需求的迫切需要,传统的分布式计算技术的局限性暴露 得越来越明显。 随着w e bs e r v i c e s ,网格,普及计算等技术的出现,分布式计算正在 发生一场革命性的变化,网络计算模式也正在发生改变,多年来人们一直 追求的网络即是计算机的设想已经越来越近。各种新的分布式计算技术中 8 第1 章绪论 都需要服务发现技术作为支撑,服务发现技术的好坏直接影响着各种分布 式计算技术的性能。 本文通过对现有服务发现技术和应用环境的分析,提出了一个适用于 广域网的服务发现系统模型,重点解决了构建广域网服务发现系统中一些 关键性的技术问题,并且对其进行了详细的软件设计。 论文后续章节的安排如下:第二章介绍了服务发现系统的基本原理和 关键技术,并且分析了一些现有的服务发现系统的特点;第三章介绍了开 发系统所用到的相关技术;第四章对广域网服务发现系统的各种难题提出 了解决方案;第五章对服务发现系统进行了详细的软件设计。 9 燕山大学工学硕士学位论文 第2 章服务发现技术 2 1服务发现技术概述 服务发现是从服务的角度将应用对资源的定位和访问分开,实现应用 对资源的动态依赖和运行中的配置能力。服务发现系统通常工作在快速变 化的环境中,追求最小化的人为管理开销,简化服务的发现、配置和使用, 为客户提供访问服务的手段。在“服务发现上下文环境”中,无论服务的 功能是以软件形式实现,还是以硬件形式实现,其功能接口都应该以软件 的形式呈现给应用,而这段实现可访问接口的程序,就是服务发现过程所 发现的“服务”。 一个完整的服务发现系统需要支持发现、维护、注册、更新、查询等 功能。相应的,这类系统的设计一般考虑以下问题: ( 1 ) 发现服务资源和处理服务资源变化的刷新显然,服务信息的搜集 是服务发现系统的基础,具体采用的方法和网络环境特性关系密切。例如, 对于小型系统,一般通过常规的广播发现方法就可以搜集本地可用服务信 息;但对于大规模分布式系统,发现方法就延伸为分布的问题,相应的技 术手段就更加复杂【l 。 ( 2 ) 体系结构的选择集中和分布式的结构都可以用于服务发现系统, 它们各有优缺点,如何根据网络特征、资源分布、以及应用需要选择合适 的系统架构是很重要的问题。 ( 3 ) 服务信息的描述、组织和管理网络中的服务类型是多种多样的, 而且每种服务本身都具有各种属性,并且可能来自不同的厂商,怎样用统 一的方式描述、分类服务,并在此基础上进行组织,是服务发现系统必须 考虑的问题。 ( 4 ) 衡量服务信息的有效性和距离信息和应用服务资源与服务请求 者的网络距离是衡量可用性的重要指标,是否能够实现就近发现和访问直 接体现了服务发现系统的有效性。但是对于广义资源而占,“就近”的涵义 1 0 第2 章服务发现技术 更加复杂,通常要考虑地理距离。这方面的问题也是服务发现系统必须要 解决的i 2 0 j 。 ( 5 ) 服务请求者如何精确获得所需的服务信息通过请求获得真正需 要的资源,这是必然的需求。以各种搜索引擎为例,衡量的一个重要指标 是能否准确地发现用户期望的信息。 另外,还包括服务发现和访问中存在的互操作、安全等问题,对于实 际的工程产品尤其重要【2 1 1 。 2 2 服务发现系统的关键技术 建立一个服务发现系统必须要解决以下关键问题。 2 2 1 服务发现系统的体系结构 服务发现系统的结构主要有以下几种: ( 1 ) 分散式分散型结构如图2 1 所示。 ( 、( c 互互 亟亟 图2 - 1 分散式模型 f i g 2 - id e c e n t r a l i z a t i o nm o d e l 在分散式模型中,服务提供者在网络管理范围内的公共多播通道上周 期性地声明可用服务信息,在其声明的信息中包含了所提供服务的类型、 属性和位置等参数;客户通过在同一多播通道内侦听的方式获取所需服务 的位置信息。另一方面,客户也可以在多播通道上周期性地声明其服务请 求,相应的服务提供者在监听到请求后会以单播方式来响应这个请求。这 种结构的优点是简单、健壮性好,而且易于在计算能力较弱的设备上实现: 其缺点是受范围限制比较大。因此,这种模式是在家居范围或是a dh o c 1 1 田 园 燕山大学工学硕士学位论文 环境下的服务发现机制的一种比较好的选择。 ( 2 ) 集中式集中型模式如图2 - 2 所示。 图2 - 2 集中式模型 f i g 2 - 2c e n t r a l i z a l i o nm o d e l 在网络管理域中设置一个相当于中心数据库的服务目录,服务目录的 位置可以通过预置或在公共多播通道上周期性地以广告的方式被客户和服 务提供者所感知,各种加入到网络中的服务提供者将服务的类型、属性及 位置等信息向该服务目录注册,而客户只须向服务目录提交所需服务的类 型和属性等方面的请求,后者根据请求返回相应的可用服务的位置信息。 在服务和客户数目增加的情况下,只须相应提高服务目录的处理能力;如 果要在更广的地域范围内扩展,可以在各个服务目录之间建立起相应的服 务信息交换机制。集中式结构的缺点是系统的健壮性较差,服务目录的故 障有可能会导致整个系统陷入瘫痪的状态,改进办法是增加服务目录的数 目,从而提高系统可靠性,但这是以增加基础设施和信息的冗余度以及算 法的复杂性为代价的。集中型模式适用于企业网和园区网计算环境。 ( 3 ) 分布式分布式结构如图2 3 所示。 图2 - 3 分布式模型 f i g 2 - 3d i s t r i b u t i o nm o d e l 1 2 第2 章服务发现技术 分布式结构是基于域模型的。对于中、大规模的网络系统,域的划分 是非常重要的。和许多网络系统类似,域是一个由若干主机构成的逻辑可 管理群体,在域内的系统行为管理策略往往是一致的。 对于服务发现系统来说,域代表了集中式资源发现的最大范围和分布 式资源发现的基本单位,体现了两种机制的良好融合。更具体些,每个域 范围内的服务信息目录集中组织和管理了通过主动或被动发现的服务信 息。 在分布式结构中,每个子域都有一个目录代理( d a ) ,域内的用户可以 与这个目录代理建立连接。当用户需要获得服务信息时就向目录代理发送 查询信息,代理接收到查询信息后首先在本地进行查找,如果发现了相关 的服务信息,就直接向用户返回其所需要的信息;如果代理在本地没有找 到合适的服务信息,那么代理就会根据一定的算法将这个请求转发到其它 的代理去,由其它的代理来完成这个请求,接受了请求的代理也可以继续 转发给别的代理处理。 在分布式结构中,服务资源分为全局服务资源和域内服务资源两类, | ; 者允许跨域访问,并且在各个子域之间可被分布感知,后者的发现和访 问范围只局限在域内。分布式模型可以将负载分配到各个代理中去,从而 减轻了单个代理的负担,同时还可以提高系统的健壮性。但是在分布式模 型中确定代理间的请求转发算法比较困难,而且不易实现“。 2 2 2 发现机制 在域范围内,有两种服务发现方法,分别是主动发现和被动发现,根 本的区别在于提供者与目录之间的交互关系。如果服务信息是通过某种搜 索方式得到,那么就是主动发现,反之就是被动发现弘“。 简单的主动发现过程中,服务信息目录或请求者周期性地发出广播消 息,在一定网络范围内的资源一旦收到广播消息,会发送回应,将自己的 服务信息告知对方。 注册注销则代表了典型的被动发现过程,服务信息目录总是提供这种 接口。服务的注册需要符合增量性原则,即同一个服务不可能在同一个目 l3 燕山大学工学硕士学位论文 录中被重复注册f 2 刖。 2 2 3 服务的查询 有两种基本的机制可以使服务信息请求者获得服务信息:广告和请求。 前种方式,请求者收到关于服务信息的广告后可以联系具体的服务。请 求方式中,服务信息目录提供查询的服务,接受客户的请求,根据客户的 要求提供尽量准确的信息,并通过响应消息返回到客户陋2 6 1 。 2 2 4服务描述 服务描述对服务发现系统的性能有着较大的影响。一个良好的服务描 述机制能够使服务提供者准确地描述自身的属性,用户也可以清晰明确的 表达自己的需求。要定义一套让参与服务发现过程的各个实体都能够严格 遵守的语义规则是非常困难的。 x m l 技术的迅速发展为该问题的解决带来了曙光。x m l 丰富的语义、 严格的规定、灵活的自描述语法特性以及支持x m l 语言间的自动翻译和 转换的特点,为多服务和设备间的交互提供了关键能力,使之适合于描述 和查询服务。而且,随着被工业界和学术界广泛接受,基于x m l 的系统 更具开放特性和良好的互操作性,进一步地显示出采用x m l 描述和查询 服务的优越性。同时也应看到x m l 对于资源受限设备显得权重过大,如 何为这些设备设计出适用的服务描述和查询手段是在研究中需要关注的问 题 2 7 i 。 2 2 5 服务信息的动态更新 服务发现系统常常工作在一个高度动态的环境,因此服务的可用性在 频繁变化,这是因为服务的提供者可能会频繁的离开或加入系统,或者服 务提供者已经关闭了某个服务,而且网络连接状态可能不会持续稳定。高 度动态的环境会导致服务可用性频繁变化,网络连接断续性以及其它一些 不可预见的问题,因此要设计出任何组成部分都不会失败的服务发现系统 是不可能的1 2 8 ,可行的设计思路应该承认不可避免的各种失效,但提供一 1 4 苎:童竖墨茎墨垫查 种机制清除失效,使系统具备一定的自修复能力,而将服务自修复机制融 入服务发现系统,为服务集的一致性视图的维护提供了更为有效和方便的 途径0 2 叭。需要注意的是:自修复机制的目的在于更有效地利用系统资源, 而其本身又需占用系统资源,如何使其时空开销最小化,是需要认真考虑 的问题【3 0 】。 2 2 6安全性 安全性是服务发现系统中一个较为棘手的问题。发现协议需要以尽量 简单的模式满足自动化和轻量级的需求,以期获得最小的网络开销;但是, 协议必须有安全性的考虑,才能保证安全的网络传输并保护参与服务发现 的实体免受恶意的攻击或利用p “。 为服务发现协议定义适当的安全模型和策略,用于实现发现功能的服 务需要提供怎样的访问控制,牵涉到以下两方面的研究: ( 1 ) 如何确保发现服务的真实性,如何确保服务描述的真实性和隐私 性: ( 2 ) 如何认证被发现服务的( 远程) 执行。 这些问题的解决可以通过服务访问控制策略、多种授权、利用数字签 名进行身份认证、携带证明代码段、加密等办法。 2 3 评价服务发现系统的原则 一个良好的服务发现系统应该具有以下性质: ( 1 ) 可扩展性在设计服务发现系统时,不能够局限于仅仅满足目前的 需要,还要考虑到未来的发展趋势。如果系统不具备良好的可扩展性,那 么当系统中的用户量增长到一定程度时,系统就有可能会出现崩溃u “。因 此,良好的可扩展性是服务发现机制所必需的。 ( 2 ) 高效性大多数服务信息请求者都希望尽可能快速的找到适合自 己需求的服务信息。是否能够帮助用户快速的定位到所需要的服务信息是 系统设计者必须考虑的问题。快速高效的查找算法一直是构建服务发现系 15 燕山大学工学硕士学位论文 统的难点,特别是在服务种类繁多、服务提供者和请求者的数量都非常巨 大而且地理分布极广的广域网中,这一问题就变得更加复杂,因为不但要 快速地定位到所需要的服务信息,同时还要尽可能减少查找服务信息所带 来的网络通信量p “。 ( 3 ) 稳定性在广域网中,服务的提供者可能会频繁的加入或离开系 统,系统必须有能力适应这种现象,不会因为频繁的登陆和离开操作而影 响系统运行。 ( 4 ) 健壮性健壮性对于用户而言意味着可用性,即应该随时保证用户 在任何时间都能使用系统所提供的服务。系统应该尽可能的将各种故障造 成的影响程度降低到最小。 2 4 现有服务发现机制分析 许多机构和组织都在致力于服务发现系统的研究,以下是一些具有典 型意义的服务发现系统。 2 4 1s l p s l p 是由i e t f 的s r v i ,o c i 工作组二于二1 9 9 7 年制定的标准,它是基于 t c p i p 协议簇建立了一个设备和应用程序自动提供或获取所需服务的发 现模式。 s l p 定义了三类实体:服务代理s a ( s e r v i c e a g e n t ,简称s a ) 代表服务 声明其类型、位置和属性等信息,这些信息将注册在目录代理d a ( d i r e c t o r y a g e n t ,简称d a ) 上:用户代理u a ( u s e r a g e n t ,简称u a ) ,代表应用程序 执行服务发现操作,这主要通过查询目录代理得到所需服务的位置等信息 来进行:目录代理负责收集并存储服务的信息并响应用户代理的请求。s l p 允许网络中可以没有目录代理。 s l p 有两种运行模式。当网络中存在目录代理时,它收集所有服务代 理发布的信息,用户代理以单播方式向目录代理查询所需服务的信息。在 这种情况下,服务代理和用户代理都必须首先获知目录代理的位置才可发 1 6 第2 章服务发现技术 布或请求服务。当网络中不存在目录代理时,用户代理重复发布多播请求, 相关的服务代理监听到这一请求后通过单播响应。当有目录代理存在时, 可减少带宽,提高效率。各种报文通过u d p 来发送。 s l p 中的服务代理使用服务u r l 和服务属性来声明和注册服务。服务 u r l 包括服务i p 地址、域名及端口号等信息,客户程序可以利用这个信 息与服务进行连接。而属性的定义则依据因特网号码指派局i a n a 专门为 s l p 制定的服务模板。应用程序与服务之间的实际交互过程和方式与s l p 相独立p 。 s l p 允许多个目录代理协作以提高健壮性,并能扩展到较大型的企业 网,同时可通过添加一定的策略来控制用户对服务的访问。 2 4 2j i n j j i n i 是s u n 在j a v a 基础上建立的面向对象分布式计算技术,服务发现 机制是其重要组成部分。在j i n i 中,硬件设备和程序都用服务来表示,而 服务实际上就是j a v a 对象,其功能通过接口表示。由于服务的发现与访问 完全通过j a v a 实现,其通信机制也是建立在r m i ( 远程方法调用) 的基础上, 因此,j i n i 的运行完全依靠j a v a 环境。j i n i 中的主要实体为服务、客户和 查找服务。查找服务存储服务的接口和属性值等信息,以适应客户的服务 请求【3 5 1 。 j i n i 的服务发现框架与s l p 十分相似。当客户和服务加入网络中后, 首先以多播的方式请求查找服务,查找服务收到请求后向其返回一个查找 服务代理,然后用户和服务便可以通过这个代理与查找服务进行通信。设 备或应用程序可以将自己所能提供的服务在查找服务上注册,或者在查找 服务上查找自己所需要的服务。设备和应用程序还可以同时扮演客户和服 务的角色,视其是提供服务还是请求服务的具体情况决定。查找服务是j i n i 中的关键部分,它负责维护所有可用服务的动态信息,起着服务目录的作 用。 在j i n i 中服务用对象接口及属性来表示,因而服务的发现通过接口匹 配和属性匹配进行。为达到互操作性,s u n 正在为服务接口制定通用标准。 l7 燕山大学工学硕士学位论文 客户访问服务时,须通过查找服务下载服务代理,然后通过服务代理访问 相应的服务。从面向对象的观点来看,服务调用过程实际上是客户对象调 用服务对象中的方法。 在一个查找服务上注册的服务的集合称为一个群体,通过对查找服务 进行适当配置,可使多个群体联合起来组成更大范围内的群体,从而适应 更大范围情况下的服务发现。 2 4 3u d d i 统一描述、发现和集成协议( u d d i ,u n i v e r s a ld e s c r i p t i o n ,d i s c o v e r ya n d i n t e g r a t i o n ) 是一套基于w e b 的,为w e b 服务提供信息的注册中心的实现标 准规范,同时也包含一组使企业能将自身提供的w e b 服务注册以便使别的 企业能够发现的访问协议的实现标准。 u d d i 解决了企业当前遇到的大量问题。它能帮助拓展商家到商家 ( b 2 b ) 交互的范围并能简化交互的过程。对于那些需要与不同顾客建立多种 关系的厂家来说,每个厂家都有自己的一套标准与协议,u d d l 支持一种 适应性极强的服务描述,几乎可以使用任何接口。例如对于b 2 b 交易场所 提供者,他们需要获得这一行业内的供应商的分类数据,以及他们与计费 服务、包装商、保险公司等之间的关系,u d d i 允许动态发现相关的w 曲 服务并将其集成到聚合的业务过程中。 u d d i 包括了三部分内容,首先是注册中心,包括定义注册中心需要 提供的标准服务接口及其所用到的数据结构,这部分是服务器端的技术。 剩下两部分是客户端的技术,一个是关于发布服务的规范,也就是定义了 发布服务的a p i 接口;还有一个就是发现服务的规范,也就是定义了发现 服务的a p i 接口。 通过使用u d d i 的发现服务,企业可以单独注册那些希望被别的企业 发现的自身提供的w e b 服务。企业可以通过u d d i 商业注册中心的w e b 界面,或使用实现了“u d d ip r o g r a m m e r sa p i 标准”所描述的编程接口 的工具,将信息加入到u d d i 的商业注册中心。u d d i 商业注册中心在逻 辑上是集中的,在物理上是分布式的,由多个根节点组成,相互之间按一 l r 第2 章服务发现技术 定规则进行数据同步。当一个企业在u d d l 商业注册中心的一个实例中实 施注册后,其注册信息会被自动复制到其他u d d i 节点,于是就能被任何 希望发现这些w e b 服务的人或单位所发现【3 6 l 。 2 4 4m d s m d s 是g l o b u s 项目中的监控与发现服务。它采用动态可扩展的框 架来监控和管理网格计算环境中各种资源,如计算机网络、存储设备和仪 器等的静态和动态信息。目前m d s 可提供如下服务信息:网格计算环境 中存在的资源的状态信息、网格应用的优化信息卜1 。 在实现上,m d s 主要使用l d a p 作为网格信息访问与存储的统一界 面。m d s 的基本功能包括:数据生成、数据分布、数据存储、数据搜索、 数据查询和数据显示等。m d s 提供了一个可配置的信息提供者组件,称为 g r i s ( g r i dr e s o u r c ei n f o r m a t i o ns e r v i c e ) 和一个可配置的集合目录组件,称 为g i i s ( g r i di n d e xi n f o r m a t i o ns e r v i c e ) 。 m d s

温馨提示

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

评论

0/150

提交评论