网格平台Globus的核心技术.doc_第1页
网格平台Globus的核心技术.doc_第2页
网格平台Globus的核心技术.doc_第3页
网格平台Globus的核心技术.doc_第4页
网格平台Globus的核心技术.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

网格平台Globus的核心技术清华大学计算机系高性能所网格研究组 陈渝1 Globus项目介绍1.1 Globus的起源和发展Globus项目是目前国际上最有影响的网格计算项目之一。它发起于九十年代中期,其前身是I-WAY试验环境项目,它的最初目的是希望把美国境内的各个高性能计算中心通过高性能网络连接起来,方便美国的大学和研究机构使用,提高高性能计算机的使用效率。随着对Globus项目的深入研究,针对它的目标也进一步扩展,希望通过Globus项目可方便对地理上分布的研究人员建立虚拟组织,进行跨学科的虚拟合作。目前,Globus项目把在商业计算领域中Web Service技术融合在一起,希望不仅仅局限于科学计算领域,而且能够对各种商业应用进行广泛的、基础性的网格环境支持,实现更方便的信息共享和互操作,从而对商业模式、工作方式和生活方式产生深远的影响。Globus对信息安全、资源管理、信息服务、数据管理以及应用开发环境等网格计算的关键理论和技术进行了广泛的研究,开发出能在多种平台上运行的网格计算工具包软件(Globus Toolkit),能够用来帮助规划和组建大型的网格试验和应用平台,开发适合大型网格系统运行的大型应用程序。Globus 工具包是Globus最重要的实践成果,其第一版在1999年推出,其后的主要版本有1.1.x版和2.0版,目前最新版本是2003年初推出2.2版和基于OGSA的Globus 3.0 Alpha2版,并将于2003年上半年推出基于OGSA体系结构,并且融合了Web Service技术的Globus工具包3.0正式版。1.2 Globus系统结构为了有效地支持网格计算环境,Globus 工具包针对Globus项目中提出的各种协议,提供了一系列的服务(service)、软件库、编程接口(API)和使用例子。从总体上讲,Globus 工具包的实现主要有四方面的内容:(1)网格安全,这是网格计算环境正常运行的保证,Globus主要是结合目前成熟的分布式安全技术,并进行一定的扩展,以适合网格计算环境的特点;(2)网格信息获取与发布,在网格计算环境中如何发布资源信息,如何查询、检索资源信息是有效使用各种资源的前提条件;(3)网格资源管理,由于网格环境中的资源主要分布在广域网环境中,采用目前常用的局域网资源管理技术不能有效地对其进行管理,为此Globus在局域网资源管理之上实现了更高层次的资源管理技术,在信息服务的支持下,可有效地支持广域范围内的资源管理;(4)网格远程数据传输,实现广域网环境下的高速、可靠的数据传输和实现对应用程序基本透明的远程文件I/O访问是Globus考虑的重要内容。上述四方面的技术可以使得开发在网格计算环境下的应用更加方便,而且使得网格应用程序的执行效率会更好。针对上述四个方面的内容,Globus项目实现的主要组成部分介绍如下:1 网格安全基础设施Grid Security infrastructure(GSI): GSI负责在广域网络下的安全认证和加密通信,提供单点登录功能、远地身份鉴别功能、数据传输加密功能等,提供了基于GSI协议的Generic Security Services API (GSS-API)接口。是保证网格计算环境安全性的核心部分。2 Globus资源分配管理Globus Resource Allocation Manager (GRAM) :GRAM负责远程应用的资源请求处理、远程任务调度处理、远程任务管理等工作,负责对Resource Specification Language (RSL)信息的解析和处理工作,是网格计算环境中的任务执行中心。3 元计算目录服务Metacomputing Directory Service (MDS):MDS主要完成对网格计算环境中信息的发现、注册、查询、修改等工作,提供对网格计算环境的一个真实、实时的动态反映。主要基于Lightweight Directory Access Protocol (LDAP)协议,其处理的信息主要是网格计算环境中的各种资源(包括数据资源、计算资源等)、服务和其它主体(entity)的描述。MDS是网格计算环境中的信息服务中心。4 全局二级存储服务Global Access to Secondary Storage (GASS) :GASS简化了在Globus环境中应用程序对远程文件I/O的操作,使得使用UNIX和标准C语言IO库的应用程序基本不用改动就可在Globus环境中执行。GASS是一个支持网格计算环境远程I/O访问的中间件。5 网格FTP服务GridFTP:GridFTP是一个高性能、安全、可靠的数据传输协议,并针对高带宽的广域网络环境进行了优化。具有支持第三方传输、断点续传、并行传输、与GSI结合的安全认证、缓存等特性。是网格计算环境中的数据传输工具。6 Globus复制管理Globus Replica Management:复制管理是一大类科学应用程序中需要考虑的重要问题,由于存在对大型远程文件的访问。Globus Replica Catalog通过把部分相关数据智能地放置在离科学应用程序最近的位置,使得科学应用程序可快速地对数据进行访问。Grid应用Globus核心服务Metacomputing Directory ServiceGRAMReplica CatalogGASSGridFTP本地服务LSFCondorMPINQEPBSTCPAIXLinuxUDPGlobus高层服务和工具CactusCondor-GMPINimrod/GglobusnunPUNCHGrid StatusI/OSolarisDRMGlobus Security Interface2 网格安全基础设施GSI2.1 网格计算环境的安全需求从本质上讲,Internet的安全保障一般提供下面两方面的安全服务:(1)访问控制服务,用来保护各种资源不被非授权使用;(2)通信安全服务,用来提供认证,数据保密性与完整性和各通信端的不可否认性服务。但这两方面的安全服务不能完全解决网格计算环境下的安全问题。在网格计算环境中,各种资源都动态连接到Internet上,而且不同网格节点之间的通信是通过Internet 连接的,而用户向网格计算环境提交任务和监控管理任务也是通过Internet来完成的。同时网格计算环境中的所有主体都可以动态加入或撤离网格中的虚拟组织,从而使得网格计算环境对安全的要求除Internet的安全要求外更进了一步。因此,在网格计算环境中,安全问题比一般意义上的网络安全问题的覆盖面更广,解决方案也更加复杂。简而言之,在一个网格计算环境中的网格安全体系必须考虑网格计算环境的如下特性:(1)网格计算环境中的用户数量很大,且动态可变;(2)网格计算环境中的资源数量很大,且动态可变; (3)网格计算环境中的计算过程可在其执行过程中动态地请求,启动进程和申请、释放资源;(4)一个计算过程可由多个进程组成,进程间存在不同的通信机制,底层的通信连接在程序的执行过程中可动态地创建并执行;(5)资源可支持不同的认证和授权机制。(6)用户在不同的资源上可有不同的标识;(7)资源和用户可属于多个组织。正是由于网格计算环境的特殊性,所以在设计网格安全机制时特别要考虑网格计算环境的动态主体特性,并要保证网格计算环境中不同主体之间的相互鉴别和各主体间通信的保密性和完整性。2.2 网格安全基础设施的设计思想Globus 项目通过提出网格安全基础设施GSI,来提供在网格计算环境中的安全认证和安全通信等能力。为了保证网格计算环境的安全,GSI的主要目标是:(1)支持在网格计算环境中主体之间的安全通信,防止主体假冒和数据泄密;(2)支持跨虚拟组织的安全,这样就不能采用集中管理的安全系统;(3)支持网格计算环境中用户的单点登录,包括跨多个资源和地点的信任委托和信任转移等。为此,GSI为网格计算环境提供了一系列的安全协议、安全服务、安全SDK和命令行程序,如安全应用编程接口、相互安全身份鉴别技术、单点登录(single sign-on)技术等。通过使用这些安全技术,可有效地保证网格计算环境的安全性和方便性。通过综合考虑,Globus项目中的GSI主要集中在网络的传输层和应用层,并强调与现有分布式安全技术的融合。GSI基于公钥加密体系,采用X.509 认证和Secure Sockets Layer (SSL)通信协议,并对它们进行了一定的扩展,使得GSI可以支持单点登录。而且GSI的实现符合Generic Security Service API (GSS-API),而GSS-API是由Internet Engineering Task Force (IETF)提出的用于安全系统的标准API。GSI中的主要安全技术手段包括安全认证、安全身份相互鉴别、通信加密以、私钥保护及委托与单点登录等。下面对主要的特点进行介绍。2.2.1安全认证和身份相互鉴别GSI认证(certificates)的一个关键是认证证书。在网格计算环境中的每个用户和服务都需要通过认证证书来验明正身,我们可以把认证证书类比为国家公民的身份证。为了防止对认证证书的假冒和破坏,GSI 认证证书主要包含四部分信息:l 主体名称(subject name):用来明确认证证书所表示的人或其它对象。l 属于这个主体的公钥(public key):用于X.509认证l 签署证书的认证中心标识:其记录了认证中心的名称l 签署证书的认证中心的数字签名:可用来确认认证中心的合法性GSI证书采用了X.509的证书格式,可被其它基于公钥的软件(如Internet Explorer、Netscape等)共享。如果双方主体都有证书,而且都信任彼此的认证中心,则双方可相互明确彼此的身份,这实际上是相互鉴别(mutual authentication)问题。GSI采用SSL( Secure Sockets Layer)协议作为它的相互认证协议。在相互认证可以进行之前,双方首先要相信彼此的认证中心。在实现上,要求双方有彼此认证中心自身的证书,认证中心自身的证书中包含认证中心的公钥。这样才能确保双方由认证中心签署的证书具有合法性。简单的安全身份相互鉴别过程描述如下:为了进行相互鉴别,A方与B方首先建立一个连接,然后A方给B方自己的证书。A方的证书告诉B方A是谁、A的公钥是什么、签署A证书的认证中心是谁。B方收到证书后,B方首先要通过检查认证中心的数字签名来确认证书是合法的。一旦B检查了A的证书的合法性,B需要确定A是其认证证书所指的主体。为此,B生成一个随机信息并把它发给A,要求A对这个信息进行加密。A用自己的私钥加密信息后,把加密信息发给B。B用A的认证证书中A的公钥对加密信息进行解密。如果解密的结果与初始的信息一致,则B就可以信任A了。同理,可反向采用上述过程,使得A信任B。这样A和B就可以相互信任,并建立安全连接通道。 2.2.2安全委托与单点登录在通常情况下,如果用户之间或用户与资源管理者之间在建立联系之前,都必须通过相互鉴别的过程。这样,如果一个用户要与多个资源管理者进行联系的话,就必须多次访问保存私钥的文件,即需要多次输入密码,而且在代表用户的程序的运行过程中,也可能进行相互认证,使得相互认证的过程很烦琐。GSI对标准的SSL协议进行了扩展,使得GSI具有安全委托能力,减少了用户必须输入口令来得到私钥的次数。如果一个网格运算需要用多个网格资源,或者说需要一个代表用户的代理来请求资源,那么GSI通过创建代理(proxy)来避免输入口令。一个代理包含一个新的证书,这个新的证书由用户来签署,而不是认证中心。证书中有新的公钥和私钥、用户的标识、代理标记和时间戳,时间戳表示在一定时间范围内,这个代理是有效的。这样可以在不同的节点之间通过代理之间的相互认证可形成一个安全信任链。2.3 安全任务提交与执行由于Globus的GSI对安全处理做了大量的工作,使得在网格环境中的任务提交与执行的安全性和方便性有了很大的提高。下面上进行安全任务提交与执行的一个简单描述(任务的安全认证过程如所示),从中可以看出GSI在网格环境中的作用:1 在进行globus任务提交与执行之前,用户与服务节点和服务设施需要获得安全认证证书。即可使用命令行命令grid-cert-request或对应的安全函数创建用于安全鉴别的公钥、私钥和未签署的安全证书。然后通过email或其它安全途径把提交安全认证中心。2 安全认证中心收取签署安全认证证书的请求后,会对用户或服务节点进行考察,考察合格后,把签署过的安全认证证书返回给请求方。3 用户在提交任务前,即可通过命令行命令grid-proxy-init或对应的安全函数创建一个临时的,局部的,有时间期限的用户代理(proxy),用户代理的安全证书由用户签署,有给定的有效期。4 用户代理与远端服务节点的gatekeeper之间进行相互安全鉴别,即对二者的安全证书和身份进行鉴别。5 通过相互安全鉴别后,用户代理把任务提交给gatekeeper,由gatekeeper把任务交给任务管理者进行具体的处理。6 如果任务在执行过程中需要其它的远程资源,也必须在任务进程与资源代理之间进行相互安全鉴别,通过安全鉴别以后,任务进程才可以使用资源。7 如果任务在执行过程中需要访问远端数据或文件,也必须在任务进程与远端文件服务资源代理之间进行相互安全鉴别。通过安全鉴别以后,还要进行授权、本地id映射后,任务进程才可以进行远端数据或文件访问。8 当任务执行完后,用户可通过grid-proxy-destory或对应的函数撤销用户代理。3 元计算目录服务MDS3.1 元计算目录服务的特点元计算目录服务是Globus项目中相当重要的一部分。在网格计算环境中存在各种动态资源,它们在地理上分散,又可以动态地加入或离开不同的虚拟组织。如何使网格应用程序方便地使用各种资源是Globus项目必须解决的问题。为此在Globus项目中提出了元计算目录服务MDS,它主要是一种基于网格介绍环境的信息服务框架,面向网格计算环境中数目巨大、地理上分布、且具有动态性的各种资源和服务。MDS的内容主要包括资源(服务)发现、资源(服务)描述和资源(服务)监视与更新。这样网格应用程序可方便地利用Globus提供的MDS信息服务满足自己的各种需求。Globus的第三个版本将基于OGSA网格服务结构框架,用XML来描述各种信息,并且与Web Service技术中的SOAP、WSDL、UDDI和WS-Inspection紧密结合,提供更加方便和有效的元计算信息服务。在网格计算环境中,信息服务(Information Services)应该具有的功能和特点包括:可访问服务系统组件的各种静态和动态信息、可针对异构和动态环境对信息服务进行配置和调整、具有统一和有效的存取信息的实现接口、对动态数据的访问具有可扩展性、可访问多个信息资源以及基于分布式的管理方式。作为信息基础设施的一部分,MDS采用动态可扩展的框架来管理网格计算环境中各种资源(计算、网络、存储、仪器等)的静态和动态信息。目前MDS可提供如下服务信息:l 网格环境中存在的资源l 网格计算环境的状态信息基于当前的网格计算环境的网格应用的优化信息3.2 网格资源信息服务和网格目录信息服务为了实现数据生成、数据分布、数据存储、数据搜索、数据查询和数据显示等功能。MDS提供了一个可配置的信息提供者组件,称为网格资源信息服务Grid Resource Information Service (GRIS)和一个可配置的集合目录组件,称为网格目录信息服务Grid Index Information Service (GIIS)。用户访问GRIS和GIIS的简单情况如所示。GRIS基于LDAP协议,并提供资源的相关信息。GIIS提供一个服务缓存,就象一个WEB搜索引擎。资源可通过GRIS或直接把其信息注册到GIIS中,或者GIIS得到一个用户请求,且自身的缓存信息已经过期,就通过GRIS获得相关更新信息。Globus3.0以前的元计算目录服务的实现基于LDAP协议,目前的最新网格信息获取和发布基于Web Service的WSDL和UDDI等协议,有关描述可参考Web Service方面的资料。应用程序元计算系统MDS APIMDS 数据模型MDS客户端程序库SNMPNISLDAPNWSText不同的信息服务协议4 资源分配管理GRAMGRAM的组成部分主要包括gatekeeper、任务管理者、资源管理者等。Gatekeeper位于资源管理者或任务管理者所在节点,用于与请求资源的用户或用户代理进行安全鉴别。资源描述语言RSL是一种结构化语言,用来描述资源请求和相关参数。RSL是一个描述资源的通用可交换语言,它提供了一个框架性的语法描述,可用来组成复杂的资源描述。资源管理组件在RSL描述中引入特定的对,每个属性/值对作为某种控制参数以控制对资源的各种操作。在Globus资源管理体系结构下的不同组件可以使用RSL描述来执行各种资源管理功能。任务请求的简单执行流程简单地说,当用户要提交一个任务时,则用户发一个执行任务的请求(用RSL进行描述)给远程计算机的gatekeeper;gatekeeper处理这个请求,并针对这个任务创建一个任务管理者job manager。任务管理者对任务请求中的RSL描述进行解析,然后启动并监视任务的执行,而且还把任务的状态信息发送用户。当远程任务正常结束或失败后,任务管理者也结束运行。任务进程用户GRAM客户端API应用管理者GRAM客户端API任务管理者插入的特定调度程序任务的状态信息GateKeeper任务请求任务请求答复任务取消创建/执行资源监视器预测信息任务进程任务进程创建/执行、控制进程GRAM主要负责的事务包括:(1)解析和处理任务请求中的RSL描述,在任务请求中选择的资源、任务处理和任务控制等RSL描述,针对可用资源等情况对请求做出拒绝处理或执行等操作;(2)管理远程监控启动的任务;(3)根据所管理的资源可用情况更新MDS。GRAM主要涉及的对象和组成部分描述如下: 1 Resource 这里仅仅是指可代表用户运行一个或多个进程的主体(entity)2 Client 这里仅指调用客户端资源分配API的进程。3 Job 根据一个任务请求产生的一个进程或一个进程组。任务是可以使分组的,这样当一个任务产生错误后,会使得整个任务组结束运行。如果一个任务被用户删除,这任务中的所有进程都会结束运行。4 Job Request 发给gatekeeper的请求,用于创建一个或多个任务进程,请求用RSL语言描述,主要给出了资源的选择(何时何地创建任务进程)、任务进程创建(创建什么任务进程)和任务控制(进程如何执行)的描述。5 Gatekeeper 一个拥有root权限的进程,主要负责处理任务分配请求。当gatekeeper接收到一个client发出的任务分配请求后,它负责的操作包括:与client进行相互安全鉴别、把client映射为本地的一个用户、在本地启动一个拥有一个本地用户权限的任务管理者、把根据RSL描述解析出的任务分配参数传递给新创建的任务管理者。6 Job Manager 一个任务管理者由gatekeeper根据任务请求进行创建。它主要负责在本地系统中启动任务,并处理其它与用户的通信。任务管理者主要由两部分组成:(1)通用组件Common Component把从gatekeeper接收的信息转变成一个由机器相关组件Machine-Specific Component执行的内部API,通用组件也负责转换由机器相关组件发出的callback请求为发给应用管理者(application manager)的消息;(2)机器相关组件Machine-Specific Component主要在本地环境实现一些内部API,主要包括对本地系统的调用、向resource monitor发送信息,查询MDS。7 Resource Monitor 负责监视本地调度系统和本地资源,向任务管理者提供预估的延迟时间。8 Application Manager 通过多个资源管理者管理一个在不同资源上运行的应用。作为一个集中的管理者,它从任务管理者接收callback请求,并指示任务的状态改变。GRAM支持如下的调度模型。用户和资源掮客(resource broker)提交一个任务请求,并可指定初始任务状态为某种任务状态(如挂起pending)。则GRAM可根据任务请求来设置任务的状态。四种任务状态包括:(1)Pending表示此任务的资源还没有分配;(2)Active表示任务得到了资源,且应用程序正在运行;(3)Failed表示由于错误和用户取消执行使得任务非正常结束;(4)Done表示任务成功结束。5 数据管理DataProcessGlobus的数据管理主要与远程数据传输、远程文件I/O相关。主要的组成部分有:全局二级存储服务Global Access to Secondary Storage (GASS)、 网格FTP服务GridFTP和Globus复制管理Globus Replica Management等。通过GASS可简化在Globus环境中应用程序对远程文件I/O的操作,使得使用UNIX和标准C语言I/O库的应用程序基本不用改动就可在Globus环境中执行。GridFTP支持第三方传输、断点续传、并行传输、与GSI结合的安全认证、缓存等特性。是网格计算环境中的数据传输工具。Globus复制管理是一大类科学应用程序中需要考虑的重要问题,由于存在对大型远程文件的访问。Globus复制目录Globus Replica Catalog通过把部分相关数据智能地放置在离科学应用程序最近的位置,使得科学应用程序可快速地对数据进行访问。5.1 全局二级存储服务GASSGASS服务主要用来支持网格计算环境下的远程I/O问题,而且针对网格计算环境中的文件访问模式进行了优化支持,具有用户控制管理网络带宽的能力。设计GASS的目标不是要建立一个通用目的的分布式文件系统,而是对下列高性能网格计算中常见的四种I/O模式进行有效的支持:(1)只读(read-only)访问整个文件模式:例如某些地理信息数据库、配置文件等,应用程序只需读取其中的信息,而不需要对其进行修改。可能会有多个用户同时对文件进行只读访问,但由于不会修改文件,所以不存在一致性问题。(2)共享写(shared write)访问单个文件模式:这是指如果多个用户对文件进行写存在,但文件的最终结果由最后一个用户所写的数据决定。例如一个并行应用程序中的所有进程都产生相同的结构,则它们写到同一个文件的内容是一样的。在这种情况下的一致性比较简单,只需在文件这一级实现就可以了。(3)只添加(Append-only)访问模式:例如对于一个记录程序活动情况的log文件,如果有多个用户对其进行写操作,则可能的输出结果是混乱的或是按记录顺序的。实际上这种情况下的一致性也比较简单。(4)无限制读写(unrestricted read/write)访问文件(只有一个用户)模式:由于只有一个用户对文件进行访问,所以不存在一致性问题。由于网格计算环境中的网络带宽有限,且具有动态和广域网的特点,所以GASS必须针对这些情况进行优化数据传输。典型的分布式文件系统对应用开发者隐藏了数据传输操作,而且一般只向应用开发者提供减少延迟而不是提高带宽的控制方法。GASS通过提供文件缓存file cache来解决带宽管理问题。文件缓存是一个“本地”二级存储系统,主要用于存储远程文件的拷贝。在缺省情况下,根据两种标准策略在文件打开时把相关数据放入文件缓存中,在文件关闭时,把文件缓存中的相关数据清除。5.2 GRID FTPGridFTP协议相对于FTP协议有许多新的特点,其中一些已经成为标准(可参考文献RFC959)。首先GridFTP支持GSI和Kerberos安全机制,在GridFTP中支持灵活可靠的安全鉴别和完整性检查。而且用户可以控制GridFTP在不同层次上的数据完整性。而且GridFTP支持第三方控制的数据传输。为了管理分布式通信中的大数据集,必须提供经过鉴别的第三方控制的数据传输。这样可允许一个用户或应用程序在某地监控其它两地之间的数据传输。在GridFTP实现中,增加了GSS-API安全认证,这样可更可靠和安全地支持第三方数据传输功能。在数据传输方面,GridFTP支持并行数据传输、条状(strip)数据传输和部分文件传输。在广域网环境中,GridFTP使用多个并行的TCP流来提高数据传输的总的带宽,支持基于FTP的并行数据传输和数据通道扩展。在Globus环境中,大规模的数据可分布放置在多个存储点上,这称之为条状数据存储,GridFTP可支持这样的条状数据传输来提高数据的传输速度,这样GridFTP的数据传输速度和带宽可进一步增加。某些应用可能只需要访问某个远程文件的一部分,这需要一定的数据传输支持,GridFTP支持从文件的任意位置开始传输数据,可有效地支持部分文件传输。GridFTP可自动调整TCP buffer/window大小,使用优化的TCP buffer/window大小设置可有效的提高数据传输性能。GridFTP对标准的FTP协议进行了扩展,针对具体的文件大小和类型,可以支持对GridFTP中TCP buffer/window大小的手动和自动设置。GridFTP还支持可靠传输和数据重传,对于许多应用程序而言,必须保证数据传输的可靠性,并需要支持容错的数据传输。GridFTP扩展失败数据传输的重传,并把它扩展到新的数据通道协议中,这样可有效地支持可靠传输和数据重传。5.3 复制管理服务Globus中数据管理的一个基本服务是复制管理Replica Management,Globus复制管理主要针对大型远程数据文件的访问。Globus复制目录服务Globus Replica Catalog是Globus复制管理的一个核心部分,它通过把部分相关数据智能地放置在离科学应用程序最近的位置,使得科学应用程序可快速地对数据进行访问。简而言之,复制管理主要管理数据集合拷贝的完整复制或部分复制,复制管理服务的功能主要包括:创建全部或部分文件集合的新拷贝、注册新的拷贝到复制目录(replica catalog)中以及允许用户和应用程序查询复制目录来找到所有存在的部分获全部文件集合的拷贝。复制管理服务独立于具体存储系统的存储技术和数据移动协议。复制管理服务主要包括的组件有复制管理replica management、元数据管理metadata management、复制选择replica selection和复制与分布目录管理management of replicated and distributed catalog。而与复制目录服务相关的组件有元数据目录metadata catalog和复制目录replica catalog,它们位于网格体系结构中的构造层。元数据目录组件主要保存与文件相关的描述性信息,而复制目录组件保存由复制管理组件注册的复制信息。复制管理体系结构中的数据模型是基于文件的,即数据是按照文件来组织的。为方便起见,用户可把一组文件作为一个集合(collections)。一个replica或location指的是一个集合的子集,被存储在一个特定的物理存储系统中。由于存在多个存储系统,所以集合中的子集可能有重叠。逻辑文件名是在数据网格的名字空间中的一个全局唯一的标识符。在复制管理体系结构中使用逻辑文件名来表示物理文件名。而复制管理服务的一个主要任务就是把一个逻辑文件名映射到特定存储系统中的某个物理文件名上。复制管理的特点如下:1 复制信息与元数据(metadata)信息分离2 非严格的简单复制语义3 支持复制管理服务的一致性4 支持回滚(Rollback)操作5 无分布式锁机制6 网格应用程序开发工具CoG6.1 CoG Kits简介Grid计算环境给开发者提供了一个新的领域,网格开发考虑的重点在于端到端的性能、先进的网络服务支持、动态自适应等问题,但在目前的商业应用开发中,主要考虑的问题是商业应用的可扩展性,基于组件的封装、基于桌面的表示等。这使得网格计算的基本的开发技术和手段与通常的基于商业分布式计算的技术不一致。Commodity Grid 项目的创立,就是为了在二者之间建立一个桥梁,使开发者比较容易地建立起各种网格应用。Commodity Grid 项目主要推出了Commodity Grid Toolkits(简称CoG Kits),它定义了Grid和实际商业框架之间的一个映射和界面,提供多种语言支持,并定义和实现了一系列的通用构件,在很大程度上方便了网格应用开发者的开发工作。在CoG Kits的发展计划中,将要实现Web/CGI CoG Kit、Java CoG Kit、CORBA CoG Kit、DCOM CoG Kit、Python CoG Kit等。目前的开发主要集中在Java CoG Kit和Python CoG Kit,其主要原因在于这两种语言的跨平台性和可扩展性比较好,并且使用这两种语言的开发者众多。6.2 Java CoG Kit编程举例Java CoG Kit的设计目标是方便开发基于Java和WEB界面的网格应用,并且支持迭代的开发过程。Java CoG Kit主要提供了如下与Globus服务进行连接的组件:l 底层网格界面组件(Low-Level Grid Interface Components):提供了一个到网格服务资源的映射,这里的网格服务资源是基于LDAP的信息服务Globus MDS、资源管理服务Globus GRAM和Globus DUROC、数据访问服务Globus GASS、安全服务Globus GSI等。l 底层实用工具组件(Low-Level Utility Components):可被重用的各种有用的组件,如对基于XML或RSL的任务描述进行验证的工具组件、使用信息服务寻找计算资源的组件、定位计算资源的组件等。l 通用底层GUI组件(Common Low-Level GUI Components):提供一组可重用的底层GUI组件可用于LDAP属性编辑器、RSL编辑器、LDAP浏览器等软件的开发。l 应用相关GUI组件(Application-specific GUI Components):用于简化应用程序和基本CoG Kit组件的差异。如股票监视器、图形化的天气数据显示组件、对天气数据的图形化搜索引擎等。下面的代码片段(从globus网站摘录)显示了如何用CoG Kit实现一个气象网格访问点(Climate Portal),从中可以看出通过Java CoG Kit可简单快速地服务各种基本的网格服务并实现特定的访问点服务。假设有一个高性能计算机保存有天气模型和数据,并通过计算得到结果,程序的输出格式是GrADS(一种用于描述三维空间气象数据的文件格式),通过对这个例子的讲解,对CoG Kit中的各类组件也进行了分析。用CoG Kit实现气象网格访问点的代码片段/ 步骤 0. 初始化MDS mds=new MDS(“”,389,“o=Grid”);/ 步骤 1. 寻找一个可用的机器result = mds.search (“(objectclass=GridComputeResource)(freenodes=64)”,“contact”);/步骤 1.a) 选择一个机器machineContact=/ 步骤 2. 准备试验数据/ 步骤 2.a) 搜索天气数据并返回/ attributes: server,port,directory,filedn = mds.search (“(objectclass=ClimateData)(year=1999) (region=midwest”,“dn”, MDS.SubtreeScope);result = mds.lookup (dn,“server port directory file”);/ 步骤 2.b) 把数据下载到机器中url = result.get(“server”)+“:” + result.get(“port”)+“:” + result.get(“directory”)+“/” + result.get(“file”); data = server.fetch (url, machineContact);/ 步骤 3. 准备运行天气模型的脚本RSL rsl = new RSL(“(executable=climateModel) (processors=64) (arguments=-grads)(arguments=-ou

温馨提示

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

评论

0/150

提交评论