1、基于 Globus 平台的网格服务资源发现技术的研究第 11 卷第 5 期2009 年 9 月天津职业院校联合JournalofTianjinVocationalInstitutesNo.5Vo1.11Sep.2009基于 Globus 平台的网格服务资源发现技术的研究刘盛(天津城市职业学院,天津市 300250)摘要:在网格中,由于资源的广域分布以及现有的 Internet 存在的带宽和延迟限制以及网络的不可靠性,广域范围内的资源发现将在很大程度上影响计算的性能,因此网格中服务资源发现功能的强弱,直接决定了网格的利用率和友好程度.通过在 Globus 平台上开发的服务发现实例Resource
2、discoveryservice,证实了网格环境中服务发现关键技术的可行性.关键词:网格;服务发现;Globus 平台;WSDL中图分类号:TP393.17 文献标识码:A 文章编号:1673582X2009)05005103当今世界,对计算机数据处理能力要求日益增加,超高速的机器处理能力,复杂的数据存储方法,下一代远程通信,新一代操作系统和服务以及非常高级的网络服务能力标志着我们正在向一个计算新纪元迈进.与此同时,工业,商业以及家庭用户对网络提出了更为复杂和更具挑战性的要求.一,网格计算当我们在揭开计算新纪元的面纱的时候,我们将它提升到“网格计算(GridComputing)“.世界范围的网
3、格计算科学涉及到一个网格内可能是无限数量的计算机的实际连接,而且可以最简单地看作一个具有巨大能量的“效用“ 网格,它每天分别为我们的家庭和商务活动提供其强大的能量.不管是狭义的还是广义的网格,其目的就是要利用互联网把分散在不同地理位置的电脑组织成一台“虚拟的超级计算机“,实现计算资源 ,存储资源,数据资源,信息资源,软件资源,通信资源,知识资源,专家资源等的全面共享.传统的互联网实现了计算机硬件的连通,Web 实现了网页的连通 ,Web 服务实现了程序和程序间的连通,而网格则试图实现互联网上所有资源的全面连通.在基于网络的远程教学广泛应用的今天,由于网络资源缺乏统一的描述标准,不同网络之间的异
4、构环境等问题,使得这些资源在大范围内的共享还存在着很大的困难.网格技术的出现,为我们解决这些问题带来了契机,因为网格技术的核心就是信息,资源共享.二,基于网格的服务资源发现技术的实现当前研究网格,可以基于 Globus 平台进行.Globus 平台是一个多机构的合作研究项目,它旨在为计算网格搭建最基本的基础设施以及高级网格服务.由于篇幅所限,关于该平台的背景,版本,安装等细节暂不做介绍,文中涉及的程序都是在 Windows2000Professional+GlobusToolkit4.0(简称 GT4)平台上调试通过的.设 GT4 作为一个 Web 应用已经正确的安装在开发机器中,且根目录为
5、ogsa.本文在 GT4 环境下实现了一种网格实例一网格中服务资源的发现(Resourcediscovery).客户端向服务器调用网格服务,由服务器响应请求,并将可提供的服务内容返回客户端.通过研究基于网格的资源服务发现技术,可以通过信息技术手段,使得学习者在获取共享资源与服务时更为方便,提高学习效绩;减少网络资源的重复建设问题.该技术的实现,可以为今后基于网格的远程教育教学资源的整合,提高远程教学的教学质量提供技术上的有力支持.下面将分六个步骤来完成此服务的实现.1.创建 WSDL 描述接口现在,有两种方式可以用来提供网格服务的接口.一种方法是用 java 语言编写一个接口,然后用工具生成
6、WS 一收稿日期:20090309作者简介:刘盛(1980 一), 男 ,天津市人,计算机专业硕士,天津城市职业学院助教,主要研究高职计算机教学.?51DLPortType 接口描述文件,以供用户远端的客户调用.使用这种方法我们可以很容易,很方便的生成 WSDL 文件,但也有缺点,比如一些复杂的接口不是总能正确的转换为对应的 WSDL 文件; 另一种方法是自己编写 WSDLPortType 接口文件,这种方法的优点是我们可以完全的控制服务接口的描述,适合于编写较复杂的服务,缺点是直接书写 WSDL 对用户的要求要高,掌握起来难度要大.为了深入了解网格服务的接口,在这个例子中采用了第二种方法,手
7、工编写服务接口的代码.在 WSDL 描述中,将创建供给外部工件的描述,包括服务接口层次,公共的操作,客户与服务之间的消息交换和提供的公共状态数据信息等.关于 WSDL 的设计是一个复杂的过程,需要遵循一定的设计模式,从而创建可交互的,基于标准的,无误差的GWSDL/WSDL.这个 WSDL 接口文件的编写,是严格按照 WebServiceInteroperability 组织发布的BasicProfile 文件规范来操作的.BasicProfile 的基本前提是确保 Web 服务能够进行通信.该文件并没有定义任何应用语义;相反的,它确保了消息可以在任何请求者和提供者之间进行交换.2.根据 WS
8、DL 生成 stub在安装目录下执行:javaorg.globus.ogsa.tools.wsdlGSDL2JavaResourcediscoVeryService.wsdl当命令执行后,会在安装目录下生成一个新的 Resourcediscovery 目录,里面生成5 个 java 助手类,如图 1 所示:鬟图 1 生成的 5 个 java 助手类这些文件形成了网格服务客户端及服务器端基本的实现工作,因此,熟悉这些 java类对于正确的开发服务也是十分必要的.ResourcediscoveryPortType:这是由 WSDLportType 定义生成的服务端点接口,服务开发者通过这些服务端点
9、接口扩展服务的实现.在服务端点接口定义中,该类的生成必须符合 JAXRPC 规范.Resourcediscoveryscrvice:JAXRPC 客户端运行时使用 javax.xmlrpc.Service 接口创建动态代理 stub.客户端拥有 WSDL 的先验知识,包括将要调用的服务以及定义的服务端口等.可以使用ScrviceFactory 类创建服务并获得其代理.ResourcediscoveryserviceGridLocator:此定位器类是 GT4 最重要的特定助手类.它的生成用于帮助网格服务的客户端,主要用于隐藏网格服务消息交换模式的复杂性,包括 GSH 到 GSR 的转换,GSR
10、 检验,从 GSR 进行句柄提取等.此定位器类允许客户端传送以下信息:服务实例的句柄 (GSH);服务实例的定位器,该定位器通常在服务创建(Factory.createService)时返回;服务实例的标准 URL.ResourcediscovcryscrviceLocator:这也是一个服务定位器助手类,它位于客户端,主要用于 Web 服务的客户端 .该定位器类与前面讨论的定位器类不同,它用于暴露 JAXRPC 动态代理的行为.ResourcediscoveryscrvicesoapBjndingstub:这是客户端核心的一个静态 stub,包括了服务所有的信息,同时为兼容性的确认实现了服务
11、端点接口.该 stub 连接 ApacheSOAP 客户端的 Call 对象,为相应的方法调用创建一个 SOAP 消息.它包括整个类型映射和序列化信息,从而可将操作签名中的 java 类型映射成相应的 SOAP 消息体元素,或者将SOAP 消息体元素映射成 java 类型.在生成这些 Java 文件后,我们还需要对它们进行编译,生成各自的 class 文件待用.3.服务实现网格服务是用满足一定要求的 Java 类来实现的.Resourcediscoverylmpl 是GridServicelmpl 的子类,所有的网格服务都必须继承 GridServicelmpl 这个基类.它是通常的框架类 ,
12、因为它包含了所有网格服务共有的基本功能.接着,我们必须为此网格服务编写一个构造函数 ResourcediscoveryImpl().此构造函数简单的调用了 GridScrvicelmpl的构造函数,它接收一个用来描述网格服务的字符串.4.创建部署服务文件 WSDD通过以上步骤,我们已经拥有 WSDL 文件,多个 stub 文件和服务的实现.现在必须把它们结合在一起,并且对网?52?格服务进行部署.部署描述器(DeploymentDesriptor) 是部署阶段的关键部分.这个文件告诉 Web 服务器如何发布我们的网格服务,部署描述器使用 WSDD(WebServiceDeploymentDes
13、criptor)格式进行.需要注意的是,代码的开始一定不能出现空格,否则会造成部署的失败.5.创建 GAR 包并部署服务在编写完 WSDD 文件后,就可以使用jarcvfResourcediscoVery.gar.命令来创建 gar 包,生成 Resourcediscovery.gar 文件.接下来使用antdeployDgar.name=d:gt4testgarResourcediscovery.gar命令来部署网格服务.在成功部署后,我们就可以使用命令 globusstartcontainerP8083 来启动服务端服务容器了.6.客户端的实现我们创建客户端程序 Resourcedisco
14、vcryclientljava 文件,该客户端程序将通过调用来实现 Resourcedisc0very 的网格服务.通过以上步骤,就完成了服务的基本实现,配置和网格服务的行为.在客户端编译此程序,得到 class 文件,然后运行客户端程序来调用网格服务.三,服务资源发现技术的后续研究本文对网格技术作了较为详尽的阐述,并且在 Globus 网格支撑平台上实现了网格中服务资源发现的一个实例:Resourcediscovervservice.在后续的研究工作中,还将添加各种服务的动态加入和撤销的通知机制,网格环境下调用服务时的安全性研究以及友好的图形用户界面的开发等.作为近期最炙手可热的 IT 技术
15、之一,网格技术受到了众多厂商的青睐,但是必须清醒地认识到,目前网格技术并不成熟,对于网格技术的发展,应当谨慎地期待着业界共同努力,不断推动其发展.同时,也期待着网格能够像当初的lnternet 一样在商业应用中获得成功,并带给人们越来越多的惊喜,实现真正的“网格“ 时代 .参考文献:1(美)IFosterandC.KesselmanTheGrid:BlueprintforaFutureComputingInfrastructure.MorganKaufmannPublishers,19992张月卓 GT4 体系结构介绍M. 北京:清华大学出版社,2005.3王艳峰,王峰 ,王恩海.网格资源描述
16、与发现R.中科院计算所 2002 年度网格课程小组作业汇报,2002.ResearchonGridServiceResourceDiscoveryTechnologyBasedonGlobusPlatformLIUSheng(TianjinCityVocationalCollege,Tianjin300250China)Abstract:BecauseofthewidedistributionofresourcesandtheexistinglimitofbandwidthanddelayandtheunreliabilityofnetworkincurrentInternet,thedisc
17、overyofresourcesinalargeareawillinfluencethecomputingperformancetoagreatextentduringgridcomputing,thereforethepowerofresourcesdiscoverydeterminestheutilizationandfriendlydegreeofthegriddirectly.TakingResourcedis.coveryServicewhichisdevelopedontheplatformofGlobusasanexample,thispaperprovesthefeasibilityofthekeytechnologyofservicediscoveryinthegridenvironment.Keywords:grid;servicediscovery;Globusplatform;WSDL?53?