西安交通大学研究生课程网格计算技术(第九章网格服务技术)桂小林2008年7月1桂小林制作本章内容• 网格需要提供信息服务• 面向信息服务的网格体系结构• Web服务的工作过程• Web服务协议• 网格信息服务模型2桂小林制作1
本章内容•在Internet上,数据和信息资源零散地分布在各个网络站点上,资源需要统一管理和使用。信息服务网格(Information Grid)的目标是将地理上分布、异构的各种高性能计算机、数据服务器、大型检索存储系统、Web服务器和可视化、虚拟现实系统等,通过高速互连网络连接并集成起来,支持网格对数据存储资源的统一访问,消除信息孤岛,方便用户发布、处理和获取信息。•本章主要介绍信息服务网格几个核心技术,即信息服务体系结构与协议、元数据管理、存储资源管理、信息服务模型和副本管理技术。3桂小林制作 网格需要提供信息服务•一方面,网络中接入的计算机数量日益增多,但使用效率并不高。另一方面,互联网内容每天飞速增长,不可能有哪个单一的服务器或搜索引擎能够掌握所有资源。互联网上每年增加的内容大约只有百万分之一能为公众所用,即便功能强大的搜索引擎也只能查找其中的极少内容,而且找到的逻辑内容很大一部分不能物理使用。信息网格利用数据挖掘、信息融合和资源引擎等技术完成网络资源的搜集与共享,并利用单一系统映像技术完成信息的单一映像和有效融合,保证逻辑资源的物理可用性,便于网格引擎来实现资源的获取。•一般而言,信息网格是全国乃至全世界范围内对各行业和社会大众提供各种一体化信息服务的信息基础设施,它将分布在全国甚至全世界的计算机、数据、信息、知识和软件等组织成一个逻辑整体。各行业在信息网格的基础上运行各自的应用网格。信息网格是一个统一的平台,各个行业的虚拟交易可通过垂直门户建立在信息网格平台上。采用信息网格技术将明显地降低信息服务的成本,目的是将计算能力和信息资源像今天的电力一样方便地送到每一用户。•在Internet上,数据和信息资源零散地分布在各个网络站点上。在信息网格中,资源将被统一管理和使用。用户可以通过网格门户(Grid Portal)透明地使用整个网络的信息资源。他们看到的是一个逻辑门户上的若干与自己相关的频道,而不同于在成千上万个网站中搜索自己想要的信息。打一个不太精确的比方,信息网格相当于中央电视台,而目前的Internet相当于成千上万个独立的制作组,各制作组有自己的频道、互不共享资源,只提供原始数据。•信息网格的研究还刚刚开始,许多概念还在形成之中。电子商务网格将成为最大的应用信息网格。4桂小林制作2
面向信息服务的网格体系结构•网格信息服务的主体是Web服务,所以下面首先介绍Web服务的原理及其协议。Web服务是建立在一些通用协议基础之上的,如HTTP、SOAP、XML、WSDL、UDDI等。这些协议在涉及到操作系统、对象模型和编程语言的选择时,没有任何倾向,因此有很强的生命力。在Web服务的模型中,厂商将其服务封装成一个个相对独立的Web服务,每个服务提供某类功能。客户或其它厂商可以通过绑定到HTTP的SOAP来访问这些服务。•Web服务的体系结构如图所示,由三个基本组件执行三个基本操作。其中三个基本组件是服务注册处、服务提供者和服务请求者。服务注册处发现发布服务服务绑定请求者提供者5桂小林制作三个角色(1)服务注册处•服务注册处又称服务注册处(删?)或网格目录,通常由数据库构成,它展现整个网格系统的单一映像。服务提供者可以在注册处发布服务描述,服务注册处负责为其进行通告,并允许服务请求者搜索服务注册处所包含的全部服务描述。服务注册处在这里起服务请求者和提供者间的中介作用,负责为服务请求者匹配服务提供者。(2)服务提供者•服务提供者负责创建服务描述,将服务描述发布到一个或多个服务注册处,并接收来自一个或多个方法请求者的网格服务调用消息。服务提供者通常是网格上的各种异构资源。这些资源是网络可达的、可能属于不同的组织和不同的管理域。在服务请求者和服务提供者间,服务提供者相当于“客户-服务器”(C/S)模型中的服务器。当然,网格中的服务提供者,有时又是服务请求者。(3)服务请求者•服务请求者负责查找发布在一个或多个服务注册处的服务描述,并负责利用服务描述,绑定或调用由服务提供者提供的网格服务。网格服务的如(任)何消费者都是服务请求者。服务请求者相当于“客户-服务器”(C/S)模型中的客户方。6桂小林制作3
三个操作•在网格信息服务模型中,包括三个基本操作,它们使用不同的技术和协议来实现。(1)发布操作(他们等代词尽量不用)•服务提供者通过在服务代理者那里注册来配置和发布服务。发布服务使用通用描述、发现和集成(UDDI)API;发布和查找Web服务的标准协议——UDDI标准提供了一种方法,使服务提供者把他们机构的详细资料和所提供的Web服务的详细情况发布到中心注册表,这就是UDDI中“描述”部分。它也提供了一个服务消费者的标准,可以使他们找到服务提供者和关于他们Web服务的详细资料。这就是在UDDI中“发现(Discovery)”的部分。(2)发现操作•服务请求者通过查找服务代理者,以及那里的被发布服务登记记录来找到服务。查找服务使用UDDI和Web服务描述语言(WSDL)的组合。描述Web服务的标准方法——WSDL,它是用XML格式来描述Web服务的标准。基本上,某项Web服务的WSDL文档都会指定Web服务中使用的方法、数据类型、使用的传输协议和Web服务宿主的终点URL。7桂小林制作三个操作(3) 绑定操作•服务请求者绑定服务提供者,并使用可以请求的服务。绑定服务处理WSDL和简单对象访问协议(SOAP)。绑定到Web服务的标准应用程序协议——SOAP是一个不管使用哪种操作系统、不管用什么程序语言或对象模型,都可以用于在应用程序之间交换信息的轻型XML机制。从最基础的层次上来看,绑定操作是三者中最重要的。它包含服务的实际使用,这也是发生大多数互操作性问题的地方。简单地说,是服务提供者和服务请求者对SOAP规范的全力支持解决了这些问题,并实现了无缝互操作性。在Web服务体系中,使用WSDL来描述服务,UDDI来发布、查找服务,而SOAP用来执行服务调用。Web服务流语言(Web Services Flow Language,WSFL)则将分散的、功能单一的Web服务组织成一个复杂的有机应用。8桂小林制作4
Web服务的工作过程•图描述了Web服务使用UDDI、WSDL和SOAP协议的工作过程以及与Web服务栈的关系。•服务提供者的第一步是编写WSDL文件。当前市场上有几种工具,可以帮助我们用现有的对象定义产生出WSDL文件。然后,发布该WSDL文件信息,把商业信息和这项Web服务的技术规范,作为—个WSDL文件发布到中心UDDL注册表。这样,通过写WSDL文件的方法,使得Web服务的描述占据了服务描述层。但是,在Web服务栈中我们看到,发布的商业信息和WSDL文件表现的是Web服务栈中的服务发布层。注册处服务发现层资源描述层WSDL消息传输层Web服应用SOAP务程序9桂小林制作•服务消费者应用程序可以发现有兴趣使用的Web服务。发现不仅涉及到要搜索商业和它的服务,而且还包括下载WSDL文件中所提到的技术规范。发现的步骤对应于Web服务栈中的服务发现层。注册处WSDL应用程序Web服务SOAP服务发现层资源描述层消息传输层•最后,服务消费者应用程序通过WSDL文件来确定,为了与服务提供者的Web服务通信,需要传送哪些消息,并且它还要决定绑定信息。为了达到这个目的,绑定信息就是HTTP上的SOAP。这个步骤对应于Web服务栈中的XML消息和传输层。注册处服务发现层资源描述层WSDL消息传输层Web服应用SOAP务程序10桂小林制作5
Web服务协议11桂小林制作 Web服务协议•Web服务是一种基于Web的应用,它可以利用SOAP、XML-RPC或XMLP等XML报文协议同其他Web应用动态互动。描述、支持和发现这些服务的新兴标准包括ebXML、UDDI和WSDL,其目标是使一个应用能够在Internet上找到另一个提供所需服务的应用,并同它进行数据的无缝交换。如果服务是收费的,Web服务还包括付费处理。使Web服务自动化的一个好处是不再需要手工检索数据和对数据进行复制、粘贴,不过,不需要人工干预也丧失了灵活性。•Web服务反映了一种新的面向服务的方法,基于一种通过发现和调度网络可用的服务来构建应用程序的新的开发模式。12桂小林制作6
WSDL简介•WSDL是一种用于描述网络服务的语言。它本身是基于XML 格式的,描述了可以执行哪些操作以及使用什么样的消息。操作和消息都是用抽象术语描述的,然后通过将它们绑定到合适的网络协议和消息格式上来实现。•WSDL 通过将网络服务看作为对消息的一组终点处理操作,被处理的消息中包含面向文档或面向过程的消息。首先抽象描述操作以及处理过程,然后绑定到特定的传输协议以及消息格式。WSDL 具有可扩展性,允许不考虑网络状态以及消息协议而描述网络服务。•WSDL文档将Web服务定义为服务访问点或端口的集合。在WSDL中,由于服务访问点和消息的抽象定义已从具体的服务部署或数据格式绑定中分离出来,因此可以对抽象定义进行再次使用:消息是指对交换数据的抽象描述;端口类型是指操作的抽象集合;而用于特定端口类型的具体协议和数据格式规范构成了可以再次使用的绑定。•将Web访问地址与可再次使用的绑定相关联,可以定义一个端口,而端口的集合则定义为服务。因此,WSDL 文档在Web服务的定义中使用下列元素:–类型Types:数据类型定义的容器,它使用某种类型系统(一般地使用XML Schema中的类型系统)。–消息Message:通信消息的数据结构的抽象类型化定义。使用Types所定义的类型来定义整个消息的数据结构。–操作Operation:对服务中所支持的操作的抽象描述,一般单个Operation描述了一个访问入口的请求/响应消息对。–端口类型Port Type:对于某个访问入口点类型所支持的操作的抽象集合,这些操作可以由一个或多个服务访问点来支持。–绑定Binding:特定端口类型的具体协议和数据格式规范的绑定。–端口Port:定义为协议/数据格式绑定与具体Web访问地址组合的单个服务访问点。–服务Service:相关服务访问点的集合。13桂小林制作 UDDI简介•UDDI是统一描述、发现和集成(Universal Description, Discovery and Integration)的缩写。它是一个用于分布式网络环境下Web Service的信息注册的规范。它同样也是该规范的实现的可访问的集合,通过这些实现,一个业务实体能够将其自身提供的Web Service的信息进行发布,从而其他业务实体能够发现这些信息。•UDDI是一个广泛的、开放的行业计划,使得商业实体能够彼此发现,并在一个全球的注册体系架构中共享信息。UDDI同时也是Web服务集成的一个体系框架。它包含了服务描述、发布与发现的标准规范。•UDDI是一套基于Web的、分布式的、为Web Services提供信息注册中心的实现标准规范,同时也是促使机构组织能将自身提供的Web服务进行注册,以使别的机构组织能够发现服务的访问协议的实现标准。14桂小林制作7
UDDI数据模型<businessEntity>名字, 联系方法,描述, 标识符, 分类<tModel>名字描述指向技术规范的URL指针<businessService>(1..n)名字description, categories<bindingTemplate> (1..n)技术信息15桂小林制作 SOAP简介•SOAP(Simple Object Access Protocol)即简单对象访问协议,它提供了一种在松散的、分布的、跨平台的环境中使用XML对等地交换结构化的和类型化的信息的轻量级的机制。在不同的平台上有着各种主流的分布式对象技术:CORBA、COM+、EJB;它们都为分布式对象操作提供了很优秀的解决方案和技术架构。但是,一个企业的应用不可能仅仅在某种单一的平台上,这就使异构系统、异构组件平台的互连成为一个亟待解决的问题。•SOAP的出现就为不同组件平台互连提供了一个近乎理想的解决方案:使用XML重新描述和包装各自的远程组件访问协议,使各种组件平台的远程访问协议都能通过同一个标准的消息进行传输,真正实现了平台无关。SOAP本身并不定义任何应用语义,它只是定义了一种简单的机制,将应用程序的服务意义模块化,并且将取得服务的方式与传输的数据都一并包装在SOAP的包之中。如此可以使SOAP有着更大的可伸缩性,能在更多消息交换与异构系统之间顺利运行。•SOAP定义了一种消息交互机制,它描述了如何用XML对信息进行编码。通常,SOAP用于在运行时解释远程调用的参数值,并且使用特定的编码方式将这些值填充在XML文档中。然后,XML数据通过HTTP协议(或者其他传输协议)传输至远程服务器。它希望实现不同的系统之间能够用“软件-软件对话”的方式相互调用,打破了软件应用、网站和各种设备之间的格格不入的状态,实现“基于WEB无缝集成”的目标。•如果采用SOAP,分布式计算仅仅意味着消耗远程计算机上的资源,此时远程计算机和发送调用请求的(本地)计算机如同是一台机器。其目标是实现分布式系统的无缝连接,当你调用特定的程序时,你不知道可能也不介意调用是否是由远程系统处理的。16桂小林制作8
嵌入HTTP的SOAP消息结构•SOAP 消息是一个由单个文档元素组成的XML信息集(XML Information Set)。SOAP 消息是由一个强制的SOAP Envelope、一个可选的SOAP Header 和一个强制的SOAP Body 组成的XML 文档。SOAP 消息包结构如图所示。SOAP的消息结构HTTP协议头SOAP EnvelopeSOAP HeaderSOAP Body17桂小林制作例 在HTTP请求中嵌入SOAP消息POST /StockQuoteHTTP/: -Type: text/xml; charset="utf-8"Content-Length: nnnnSOAPAction: "Some-URI"<SOAP-ENV: Envelopexmlns: SOAP-ENV=" Header><t: Transaction xmlns:t="some-URI"SOAP-ENV: mustUnderstand="1">5</t: Transaction></SOAP-ENV:Header><SOAP-ENV: Body><m:GetLastTradePricexmlns:m="Some-URI"><symbol>DEF</symbol></m: GetLastTradePrice><SOAP-ENV: Fault><faultcode>SOAP-ENV: MustUnderstand</faultcode><faultstring>SOAP Must Understand Error</faultstring></SOAP-ENV: Fault></SOAP-ENV: Body></SOAP-ENV: Envelope>18桂小林制作9
例 在HTTP应答中嵌入SOAP消息HTTP/ 200 OKContent-Type: text/xml; charset="utf-8" Content-Length: nnnn<SOAP-ENV: Envelope xmlns: SOAP-ENV: " Header><t: Transaction xmlns:t="some-URI" xsi: type="xsd: int" mustUnderstand="1"></t: Transaction></SOAP-ENV: Header><SOAP-ENV: Body> <m: GetLastTradePriceResponsexmlns:m="Some-URI"> <Price></Price> </m: GetLastTradePriceResponse> </SOAP-ENV: Body> </SOAP-ENV: Envelope>19桂小林制作 网格信息服务模型•信息网格按照其采取的描述网格对象的数据模型的不同可以分为4种:基于层次模型的网格信息服务系统、基于网状模型的网格信息服务系统、基于关系模型的网格信息服务系统、基于面向对象模型的网格信息服务系统。这4种系统在对网格实体属性的表示上没有什么区别,都是采用(属性,值)对的方式,但在表示网格实体的关系上各不相同。•层次数据模型用一棵“树”来表示网格对象的名空间。一个对象类型作为树根,其它所有网格对象都与树根关联。传统上,层次模型只支持“父子”关系,因此很难对网格对象的关系进行抽象和命名,而且在名空间上的查找只能通过指定网格对象名称来实现。例如,LDAP和XML是层次模型的,但二者都对传统层次模型使用“别名”或者“指针”加以扩展,实现对象之间的“引用”关系。“引用”关系增强了模型的表达能力,当然这种在查询过程中的路径转移也会适当增加系统的开销。层次数据模型的弱点是表达对象之间关系的能力不够,但其“树”型结构非常适合对网格信息的分布式管理,很容易映射到网格的虚拟组织上。•关系数据模型则是用二维表或关系来表示网格信息。一个关系就是一个对象类型,对象本身由一系列(属性,值)对定义,关系则既代表着对象,又代表着对象之间的关系。关系数据模型能够表达对象之间的任何关系,不仅仅是“父子”关系,这一点使得基于关系数据模型的网格信息服务系统的表达能力比基于层次模型的网格信息服务系统要强得多,尤其是能够支持如“连接”一类的复杂查询,然而关系数据模型不利于在网格内跨多个管理域的分布式管理,这方面的问题正在研究之中。20桂小林制作10
基于LDAP的网格信息服务系统D登记登记发现发现发现(GIQP)RDD登记登记登记查找(TCP/IP)登记(GIRP)PPPP/E搜集搜集搜集搜集搜集搜集EEEEEE21桂小林制作VO3主GIQPDEPR…引用专PQIDGVO1EPR…引用从EGIRPDTCP/IPVO2对…………搜登主复EP象O…集记D制化…UDP/IP从TCP/IPGIQPED查询R图9.图73-1 C-GIS的体系结构22桂小林制作11
1. 网格目录的创建•网格目录是按照一定数据模型来存储和管理网格对象的数据库,是GISW的枢纽。在GISW中,一个VO至少要建立一个主网格目录,该网格目录负责其所在VO内网格信息的管理以及同其它VO的主网格目录交互信息。根据VO的层次性,各个VO的主网格目录实际上连接成一个分布的“树”型结构,如图9-5所示。网格目录一般分为两种:通用网格目录和专用网格目。下面分别叙述它们的创建过程。•通用网格目录是指每个VO都必须建立的网格目录,是GISW中网格目录的主体,占大多数。当一个VO初步形成之后,会从其成员中选出一个网格实体如某个专用数据库作为网格目录,安装支持数据模型M的相关软件,存储所登记的网格对象,然后把描述该网格目录的信息向上级网格目录提交。上级网格目录接受所提交的信息后,进行合法性审查,审查合格后将该信息索引到其后端数据库,同时对新建立的下级网格目录赋予一定的访问控制权限。对于上级网格目录来说,下级网格目录类似于信息提供者,因此下级网格目录向上级网格目录提交描述自己的信息所使用的通信协议也是GIRP协议。当然下级网格目录并不同于信息提供者,因为它并不向上登记自己所存储的信息。•专用网格目录是指某一VO根据该成员的某种特殊需求,如需要集中所有空闲处理机时间,或专用于网络管理,而专门成立一个网格目录,为大家提供网格信息服务。专用网格目录是GISW中占少数的网格目录,它的建立采用网格目录委派的办法,即VO的主网格目录从其索引的网格对象中查找符合建立专用网格目录条件的网格实体信息,然后委派该网格实体建立专用网格目录,负责存储指定的信息,如网格内处理机的利用情况等。专用网格目录一旦被创建后,VO的主网格目录就将该专用网格目录的地址或指向它的指针以某种传输层协议发送给VO内各个成员,向它们提出信息邀请的请求,在必要的情况下也可以向其它VO的成员邀请信息。23桂小林制作2. 网格目录的管理•网格目录创建之后,还需要采取一定的管理措施才能提供更好的网格信息服务。关于网格目录的管理,除了网格对象的存储,这里主要指网格目录的复制和引用。•网格目录的复制是为了增强网格信息服务的可靠性而提出的。在一个VO内,只有一个主网格目录负责网格对象的管理是不够的,因为一旦主网格目录崩溃,则整个VO的信息服务将被迫终止,无法提供连续的、可靠的服务。因此,在GISW中,引入了从网格目录的概念,一个主网格目录可以配备多个从网格目录,备份它的全部内容,主从网格目录都在上级网格目录中存有索引,从而当主网格目录崩溃的时候,上级网格目录会自动地将访问指针指向某一工作正常的从网格目录,使网格信息服务不会间断,这个从网格目录会成为新的主网格目录,直到原主网格目录恢复为止。然而,这引出了主从网格目录之间的数据一致性问题。GISW提供了网格目录之间的自适应复制功能来保持网格目录之间的数据一致性。具体地,主网格目录维护着指向各个从网格目录的指针,每当有网格对象被增加、修改或删除的时候,主网格目录就把更新的结果传输给各个从网格目录,使它们和自己保持同样的内容。在GISW中,网格信息的登记和修改都是发生在主网格目录之上,对从网格目录只允许查询,所以不存在从网格目录向主网格目录自动传输内容的情况,除非某一从网格目录接管原主网格目录而成为新的主网格目录。24桂小林制作12
•网格目录的引用机制是为了便于实现GISW的分布性和可扩展性而设计的。面向网格的信息服务要求GISW支持跨VO的信息查询,而且随着网格规模的扩大,这种跨VO查询依然有效。为此,GISW提供了网格目录的引用机制,即一个VO内的网格目录保存着上级网格目录的指针,当它不能满足信息请求者的查询要求的时候,就把它保存的上级网格目录的指针返回给信息请求者,信息请求者再按照该指针去查找上级网格目录,当找到所要的结果后,直接返回给信息请求者,不需再经过下级的网格目录。网格目录的引用机制在GISW的“树”型层次结构中,既提供了信息查询的上溯功能,又避免了沿着“树”的路径层层返回结果而耗时较多,从而大大提高了信息查询的效率。此外,专用网格目录与委派它的主网格目录也通过引用机制来转移信息查询指针。上级网格目录GIQP协用议引复制下级网格目录1下级网格目录2图3-3 网格目录之间的3种指针25桂小林制作 数据副本管理•在信息服务网格中,用户规模很大,它们通常地理上分散在不同的管理域。如果一个用户要访问不是本管理域的资源,如文件,则所需要的访问时间是一个较大的数量级,可能会所得用户不能忍受。如果用户需要的数据能够就近获得,则网格的效率就提高了。解决以上问题的一个有效办法是将经常需要访问的数据集进行复制,作为该数据集的副本放置在距离终端用户“较近”的位置。•在现行的分布式应用中,已经使用到了副本技术。比如,互联网上的代理服务器,需要根据用户请求的URL在缓存的“URL-本地文件名”的映射表中找到用户请求的页面;一个分布式应用程序需要根据给定的对象句柄来找到对象的实例等。在分布式系统中一个逻辑文件名对应唯一物理实例。而在信息服务网格中,由于信息服务网格的特性,一个逻辑文件名往往对应很多个物理副本,这也成为信息服务网格应用中的副本和分布式应用中的实例副本的主要区别之一。26桂小林制作13
为什么引入副本管理•副本管理技术的引入给信息服务网格系统带来了如下好处:(1)减少数据访问延迟。数据被复制到本地,显然程序的运行不会因为缺少数据而停顿。(2)减少网络带宽的消耗,避免拥塞。数据被事先拷贝到本地,以后的程序运行不必再到远程读取,节省了网络带宽。(3)对服务器端的负载起到平衡作用。经过拷贝后使数据分散,对数据的请求只有一部分仍然需要到服务器获取,有效的减缓了服务器的负载。(4)提高数据的可用性。在数据已经被拷贝到本地的情况下,如果服务器发生失败,也不会影响本地程序的运行。27桂小林制作什么是副本•副本是某一文件的确切拷贝,并且通过某种明确的机制与源文件相联系。同一文件的不同副本可以有不同的一致性级别和存活时间。为了能够从文件的逻辑名字找到该文件的副本,还必须给副本编纂目录,这就是副本目录(Replica Catalog)。副本可以分为:(1)主副本:在网格系统中,由于数据的分散性和数据量的庞大,严格的副本一致性维护非常困难,主副本是为了方便管理一致性而定义的。必须有多个主副本,以避免单点失败。根据主副本的语义,在各主副本之间必须有分布式锁机制,来保证主副本之间的一致性。(2)从副本:在已经定义了主副本的前提下,所有的其它副本均叫做“从副本”副本之间必须遵守某一一致性规则,保持副本的一致性,要不然的话,副本就与正常的文件拷贝没有区别。信息服务网格中有以下几种一致性规则:(1) 只读副本。在副本管理所管辖的范围之内的每一个文件都是只读的,对文件的修改导致新文件的产生,即文件的一个新的副本。这样,所有的副本可以说是一致的。(2) 可读可写副本。该机制类似于读者/写者同步机制,需要一个合适的锁机制。版本机制是以上两种机制的组合。一旦文件被写修改,就产生文件的一个新版本的副本,版本信息存放在元数据目录里面,这样可以访问该文件任意一个版本的副本。28桂小林制作14
副本的组织•副本的逻辑文件名(Logical File Name,LFN)是文件在信息服务网格的名字空间中的全局唯一标识符,它指代一个文件的全体副本。根据逻辑文件名字,可以在副本目录中查到所有的副本的物理文件名。•副本的物理文件名(Physical File Name,PFN)定义文件的某个副本在存储系统中的位置,它是存储管理系统使用的文件名字,可以是存储在磁盘上的物理文件名字,也可以是对存储系统有意义的逻辑文件名字。•副本存储单元(Storage Element,SE)是副本存储系统的抽象,给网格用户提供副本存储能力。副本元数据是描述副本和其所在位置对应关系的元数据。在副本管理系统中,还定义了其它几种元数据,如,应用元数据是对应用程序有用的元数据,比如数据的内容,数据产生的条件等;文件名字元数据是存储单元汇总的物理文件的属性;逻辑文件名字元数据是某个逻辑文件的通用信息,不是文件的某个具体实例的信息,包括与此逻辑文件相联系的所以(有)拷贝的生命周期,文件的数据源元数据指针,安全元数据指针和应用元数据指针等。•副本目录(Replica Catalog,RC)是位于网格的某个或几个VO内,因为目录本身也可以建立副本。副本目录以数据库或者LDAP等方式存储逻辑文件名LFN与物理文件名PFN的映射表。•副本位置索引(Replica Location Index,RLI)是全局范围内可以访问的,以数据库或者LDAP等方式存储逻辑文件名和文件副本所在副本存储单元的映射信息,一般以<LFN, SE_RC_DNS>对或其等效的形式存储。其中SE_RC_DNS表示某SE上的RC服务器的域名DNS。•副本位置服务(Replica Location Service,RLS)维护关于逻辑文件标识符所在物理位置的信息,并提供对这些信息的访问,如查询、增删等。29桂小林制作副本管理器的组成•副本管理器是以副本位置服务(RLS)作为其核心,同时协同信息服务、存储系统服务、安全服务等,提供安全、可靠、快速的数据访问服务。从用户的角度来看,副本管理器作为用户访问数据的唯一入口点,副本管理器逻辑功能如图所示。从逻辑上讲,副本管理器是用户或者位于副本管理器之上的更高层服务进入和使用副本管理系统的单一入口点。出于性能和容错的需要,副本管理器应该设计成分布的,这种分布是对用户透明的,这时候需要考虑各个副本管理器所维护的信息的一致性问题。•副本管理器对注册于其中的文件有完全的控制权限,也就是说,一旦一个文件已经注册并处于副本管理器的控制之下,副本管理器之外的其它服务不允许对该文件进行修改,除非通过副本管理器提供的接口。如果一个文件从副本管理器退出,那么该文件应该恢复到它注册进入副本管理器之前时的访问控制属性。另外,文件的一些与存活时间相关的属性(如永久属性、暂时属性等)也影响不同时刻副本管理器对文件的控制权限。30桂小林制作15
•副本管理器提供以下功能服务:核心服务、优化服务、一致性服务、事务服务、和安全服务。安全服务一致性服务事务服务过程处理副核副本选择本心副本副本元数优服管理器据目录服化务访问历史务服RLS务初始化数据传输31桂小林制作1. 核心服务•副本管理器的核心服务完成副本的创建、删除和目录编纂工作。这些操作可以通过调用副本管理器的核心API来完成。核心API则通过调度一系列底层服务和系统API来实现。具体的核心服务包括:•过程处理是指数据传输过程中的预处理和后处理操作。预处理是指在数据传输之前进行的操作,如压缩操作;后处理是指数据传输完成以后执行的操作,如解压缩操作、校验操作等。校验操作用来验证数据传输的完整性。•根据给定的逻辑文件标识符,查找所所有或者部分于该逻辑文件相关连的副本物理位置。•提供文件传输功能,可以采用已有的传输工具,如Globus专门为网格传输所开发的GridFTP,也可以使用一些现有的通信库,开发自己的传输模块。32桂小林制作16
2. 一致性服务•副本管理器的一致性服务主要负责校验同一个文件的多个副本之间的一致性,RC和RLI的一致性,以及RC与物理文件的一致性。•RC和RLI的一致性表现在:比如某个结点叫做site1,存储了一个逻辑文件名字为lfn1的文件,那么,RLI上就应该存有<lfn1,site1_RC_DNS>的信息。如果RLI上不存在此信息或者RLI上存在此信息而RC上没有lfn1的信息,都是RC和RLI不一致的表现。•RC与物理文件的一致性是指RC不能存储物理存储系统中不存在的文件的信息,也不能将物理上存在的并且已经向副本管理器注册过的文件的信息丢失。•产生不一致的原因有三点:(1)在没有授权的情况下修改或者删除文件,如在系统外部修改文件;(2)系统被恶意攻击;(3)懒惰一致性也会导致某一时刻系统信息的不一致。•如果检测到不一致性,需要进行一致性恢复。每个副本在产生的时候有一个默认的生存期,用来进行生存期管理。用户也可以通过“生存期预定”方式给某个特定副本预定一个生存期。33桂小林制作3. 事务服务•事务服务的主要目的之一是增强副本管理器的容错性。事务服务API应该能够提供较为底层的服务,如检测错误点并重新开始、回滚操作等,以供工作流管理系统使用。4. 安全服务•安全服务支持用户认证和授权,即管理一个用户是否拥有创建、删除、读写一个文件的权限。需要使用副本管理器的用户必须首先通过认证。用户经过认证以后,副本管理器根据用户的ID和成员信息,检查其是否有访问某一特定文件的权限。副本管理器一般使用第三方认证服务实现对用户的认证。34桂小林制作17
5. 副本优化服务•在信息服务网格接收用户提交的任务并执行的过程中,需要三种资源:计算资源、存储资源和网络资源。在当前的网格资源条件下,较为理想的情况是使任务在计算资源上执行,这可以使任务所需的远程资源减到最小。现在假定任务已经在计算资源上执行,且在该计算资源所在的局域网范围内有存储资源与之相联系。在此条件下的副本优化部件包括:副本选择服务和访问历史服务。•副本选择服务。一个逻辑文件的不同副本一般会存储在不同的存储单元中,不同的存储单元有不同的性能特征和不同的访问控制策略。用户和调用副本管理器的更高级的服务在遵守各种不同的访问控制策略基础上,发现并利用这些性能特征来指导副本的选择。副本选择服务利用核心API服务和信息发现(GIS)服务来估算具有最低传输时间的副本,并调用传输服务将远程副本拷贝到本地存储单元。•访问历史服务。跟踪副本的访问,记录有关副本访问的信息,如某个LFN访问的次数或者频率,哪个用户发起的访问等。有必要将成功的访问和不成功的访问区别开来,以避免造成对某个文件访问信息的错误估计。访问历史服务可以为是否创建副本、替换哪个副本提供依据。另外,也可以以此作为记帐信息。35桂小林制作副本管理器的功能•副本管理器包含多种操作功能,其中最基本功能有注册、修改、查询、存储等。在这些基本功能之上,可以有选择的使用副本选择功能和自动复制功能。1、添加•添加是在副本管理器中注册一个新项。新项主要包括:一个包含逻辑文件列表的新逻辑集合、一个包含存在映射信息的新位置。这个映射信息反映了一个存在的逻辑集合中的文件子集。在一个已有的逻辑集合中的新逻辑文件项主要保存与文件相关的一些信息,如文件大小等。2. 修改•修改是在副本管理器中修改一个已有的项。其主要操作包括从一个已有的逻辑集合和位置项中增加或删除一个文件、从已有的逻辑文件项中删除与文件相关的描述属性。3. 查询•查询是通过副本管理器查询某个项。其主要操作包括:根据特定的逻辑文件、逻辑集合或位置查找对应的项;寻找一个特定的逻辑文件的物理拷贝的所有位置;返回与某项联系的需要的属性。对于一个逻辑集合项而言,返回集合中的文件名;对于位置项而言,返回逻辑文件名到物理文件名的映射;对于逻辑文件项而言,返回描述逻辑文件的属性。36桂小林制作18
4. 复制•复制是结合存储和注册的操作。主要操作包括:把一个文件拷贝到另一个目标位置,这时需要把文件注册到对应的位置项中并把它拷贝到目的存储系统,然后把文件注册到对应的位置项和逻辑集合中,从副本管理器中删除原来的项。5. 副本选择功能•当符合应用需求的副本有多个时,该服务根据各个副本的存储空间、存储系统的读取速度、网络带宽、网络延迟等,对副本的读取代价进行估算,选取代价最小的副本进行拷贝或在线传输数据。6. 自动复制功能•该功能记录远程文件访问的历史信息,根据该历史信息决定是否复制某一文件到本地结点。当历史记录满时,或当存储空间达到警戒线时,采取一定策略删除某些副本。比如欧洲信息服务网格为此研究了一种“经济算法”,该算法记录某一远程文件f被访问的次数r,计算在未来N次文件访问中会访问到该文件的次数e。如果历史记录中的某个文件的此估算值小于e,则复制该文件。如果历史记录数达到了所规定的上限,则从估算值最小的记录开始删除。37桂小林制作第10章网格计算系统桂小林38桂小林制作19
本章内容•网格计算系统是指支持网格计算和网格信息服务的软硬件系统。网格硬件系统包括地理上分布的各种异构资源,涵盖这些资源的硬件系统、操作系统和基本应用软件。网格软件系统是指在本地操作系统、标准通信协议和软件之上构建的一个中间件软件,提供资源调度、管理、监测,用户接口,并行计算,科学计算和信息服务等功能。•由于网格硬件系统基于现有的各种计算机、工作站、超级计算机,服务器和机群等构成,所以,本章不作具体介绍。•下面主要介绍网格软件系统,包括它们的原理和使用方法。具体介绍Globus原理和GlobusToolkit的安装方法,Legion系统原理及其安装和使用方法,NetSolve原理及其安装与使用方法。•另外,MPI和PVM作为网格软件系统的依赖软件,这里也将介绍其安装和使用方法。39桂小林制作 一个实验网格系统的构建40桂小林制作20
•按照Ian Forster的定义,网格计算系统是多虚拟组织内的一个协同解决各种问题的计算机联合体,规模很大。但在进行科学研究时,构建一个大的网格计算系统是不现实的。事实上,在各个高等院校、科研院所,甚至一个企业内部,它们在不停地使用计算机网络上各种服务器提供的计算能力与数据共享能力。这些服务器也许由于购买年度不同,使用的CPU、操作系统就存在不同。这些服务器实际已经形成了一个网格硬件系统,只不过是没有安装网格计算软件,所以还不能称之为网格计算机系统。•那么,什么样的硬件环境可以称为网格硬件系统呢?这还要从网格系统的特性考虑。在本书第一章已经指出,网格计算系统的资源应该具有异构性、分布性、动态性和多管理域性。所以,凡是具有上述四大特征的资源都可以构成网格的硬件系统。基于这样的观点,由同构结点构成的工作站机群就不能称为网格计算系统。而具有异构结点的单管理域的机群系统能不能称为网格计算系统呢?严格地将是不行的。但有些科学家提出,单管理域的具有异构性、分布性、动态性的资源联合体,可以称其为私有网格41桂小林制作•搞清楚了网格计算系统的特征,就可以着手构建一个适合自己或科研单位使用的实验性网格计算系统了。•构建实验性网格的第一部就是选择计算资源,这些资源最好来自网络互连的现有的计算机、服务器、工作站或机群。如果现有资源不足以构成满足网格特征的联合体,就需要购置相关设备。可选的资源可以是:Web服务器、数据库服务器、PC计算机、Sun工作站、RS6000工作站、HP小型机、超级计算机系统和机器系统。连接这些资源的网络可以选用专用高速网络,也可以现有Internet互连。42桂小林制作21
•构建网格计算系统的第二步就是安装网格计算软件,即网格中间件。网格中间件可以选择现有的流行的网格软件,也可以自行开发网格中间件。选择哪个网格软件依赖于应用目的。而开发中间件可以基于现有网格软件开发,也可以在操作系统之上自主开发。•支持网格计算的软件现在非常多,它们各有特点。有些仅仅支持网格计算服务,这样的软件以前称为元计算软件。有些既支持网格计算,又支持网格信息服务。而目前最流行的网格软件主要有:GlobusToolkit(GTK),Legion和NetSolve。这三各网格软件各有应用偏重,•GTK是一个支持网格计算的基本软件工具箱,着重实现底层的机制来支持上层的多种服务。GTK提供可供用户使用的C++库扩充函数,支持远程文件、远程I/O、资源管理和Nexus通信管理等服务。GTK不是一个已经可以直接使用的网格软件,用户需要使用GTK提供的各种调用来定制和生成自己的网格软件。43桂小林制作•Legion系统强调网格计算系统上的并行任务的高效运行。Legion使用C++的扩充性语言Mentat实现,支持基于认证的用户安全服务、面向对象的虚拟文件服务和MMPS通信服务。用户使用Legion可以直接建立一个网格计算软件,通过Legion提供的各种命令行命令可以使用网格计算系统,也可以通过Web接口可视化地使用网格计算系统。Legion系统类似一个网格操作系统,它提供了单一映象的逻辑空间,类似于Unix操作系统的文件系统。用户操作Legion就向操作本地计算机一样。因为Legion提供了一套类似Unix命令的命令与工具。•NetSolve提供了可以访问远程的计算资源(包括硬件和软件)的能力,它建立在标准的Internet 协议基础上,是一个分布式计算系统,聚合各种流行的科学计算库,实现联合使用。对于那些从事科学与工程计算的读者,安装NetSolve作为网格化科学计算集成环境非常合适。44桂小林制作22
Thanks!45桂小林制作23