林业科学  2006, Vol. 42 Issue (增刊1): 45-50   PDF    
0

文章信息

黄震春.
Huang Zhenchun.
数字林业网格中的资源注册元服务
Resource Registry Meta-Service in Digital Forestry Grid
林业科学, 2006, 42(增刊1): 45-50.
Scientia Silvae Sinicae, 2006, 42(增刊1): 45-50.

文章历史

收稿日期:2005-06-24

作者相关文章

黄震春

数字林业网格中的资源注册元服务
黄震春     
清华大学计算机科学与技术系 北京 100084
摘要: 在对现有各种注册与索引技术进行研究的基础上, 提出一种资源规范语言(resource specification language), 并给出该语言的XML Schema描述。在此基础上, 基于Java语言设计实现分布式的网格资源注册元服务。该元服务使用在数字林业网格中, 可为数字林业网格提供稳定和高效的资源注册与查找服务。
关键词: 数字林业网格    资源注册元服务    
Resource Registry Meta-Service in Digital Forestry Grid
Huang Zhenchun     
Department of Computer Sciences and Technology, Tsinghua University Beijing 100084
Abstract: In grid, resource registry meta-service assumes the responsibility for the registery, management and indexing of resources in grid. It's very important for the running of grid. In this paper, we put forward a resource specification language and provided its reference by XML Schema first. Then, we designed the distributed resource registry meta-service and implemented it based on Java language. It has been used in digital forestry grid and provided stable and high-performance services for resource registering and searching.
Key words: digital forestry grid    resource registry meta-service    
1 网格与资源注册元服务

作为一种新兴的技术手段, 网格(grid)在近年来受到国内外同行的密切关注。它通过通信网络, 将各种不同类型、不同用途、不同归属的资源连接在一起, 在网格软件的支持下, 动态地形成各种虚拟组织, 协同各种资源, 解决各种应用问题(Foster et al., 2001)。

当前的网格技术主要来源于以Globus 2.0为代表的网格计算技术与当前非常流行的Web服务技术。它从Web服务里吸取了一套提供远程服务的机制, 包括标准接口的定义、多协议绑定、本地透明性等, 从网格计算技术中吸收了统一且显式的服务语义、安全模型、生命周期控制等机制。在当前被普遍接受的OGSA体系结构(OGSA, 2005)和WSRF体系结构(WSRF, 2005)中, 一系列的服务加上生命周期、安全等机制, 构成网格系统的基本构架。

在面向服务的体系结构构建的网格中, 服务是最重要的一个概念, 是网格的基础。网格中的一切资源都表现为服务。在网格中, 根据服务内容的不同, 服务可分为网格元服务和网格应用服务, 其中, 网格元服务指的是为网格中各种资源整合所需要的服务, 这些服务并不直接解决应用问题, 因此可以把这些服务看作“服务的服务”, 称之为“元服务” (meta-service)。在网格中, 网格元服务一般以一种可插拔模块的形式被提供, 这些服务的存在与否并不会对网格应用的编写造成决定性的影响, 但是缺乏一些重要的网格元服务的网格系统是非常脆弱和难以使用的。资源注册元服务就是这些重要的网格元服务之一。

资源注册元服务, 又称资源索引元服务, 负责对网格中的资源进行注册管理和提供索引服务。由于网格中的所有资源均表现为服务, 故对资源的注册管理和查找等同于对服务的注册管理和查找。资源注册元服务是整个网格的资源信息中枢, 对于网格的顺畅运行起着至关重要的作用, 在服务的提供者和使用者之间架起了一座桥梁, 为服务的广泛发布和有效使用提供了方便。

从网格的技术来源看, 资源注册元服务可以通过如下几个技术手段得到实现:Globus 2.0网格基础中间件的重要组成部分——基于LDAP (Yeong et al., 1995)的MDS (MDS, 2001), Web服务领域中的信息注册中心工具UDDI (UDDI, 2005)和被视为UDDI竞争者的WSIL (WSIL, 2003)等。但是这几种技术手段都不可避免地存在着一些不利于网格应用的局限性:MDS在基本结构和使用方法上与来自Web服务领域的网格大相径庭, 在安装与设置上也非常不便, 很难融入到以服务为中心的网格体系结构之中。但UDDI考虑更多的是如何在企业之间实现Web服务的查找关系, 采用一种复杂的表示法来表示各种资源与服务, 这就使得UDDI对于网格来讲显得有些庞大。WSIL具有分布式和轻量级的特色, 在一定程度上可以担起资源注册元服务的重任, 但由于其一方面过分灵活, 使用不便, 另一方面其当前的实现对分布功能的支持不佳, 因而融入网格中也遇到很多困难。正是在这种背景下, 本文设计和实现了基于Web服务技术的分布式网格资源注册元服务。

2 资源描述

确定资源的描述语言, 即哪些信息应当被存储到资源注册元服务系统中以备查找、这些信息应当以何种结构存储到资源注册元服务系统中等, 是设计与实现资源注册元服务的第一步。

在面向服务的体系结构的网格中, 服务的定位经常是通过一个标准的URL (Berners-Lee et al., 1994)或WS-Addressing (WSAD, 2004)结构实现的, 因而资源描述中一个非常重要的组成部分就是这个用以描述服务定位信息的URL或WSAD, 即服务访问点。除此之外, 为了用户查找和使用方便, 资源描述中必须包括服务的一系列描述信息, 如服务名、服务的简单描述、服务的技术支持信息、服务的分类信息等。据此, 本文设计了基于XML的资源描述语言规范。

在本文所设计的资源描述语言中, 网格服务由结构GridService描述。每一个GridService结构表述了一个逻辑服务, 该逻辑服务独立存在, 与其他服务之间没有任何隶属关系。每一个GridService都与一个由资源注册元服务分配的全局唯一ID相对应。

GridService结构由图 1所示的XML Schema规范。1) ServiceKey文本, 对于某一确定的GridService, ServiceKey是其唯一的键值。当储存一个新的GridService结构时, 应当传入一个空的ServiceKey值, 这意味着需要由网格资源注册元服务产生一个ID值。为更新一个已经存在的GridService结构, 应当传入与该服务相对应的ID值。如果数据是通过一个查询操作得到, ServiceKey值不为空。2) Name文本, 记录GridService的可阅读的名称, Name的值不可为空, 它应当能够在一定程度上反映该服务的本质特征并不易混淆。3) Description一个简单的文本描述串, 用简单的语言描述服务的特性, 包括功能、分类、注意事项等。4) Support一个简单的文本描述串, 用简单的语言描述服务支持信息, 包括服务的提供者和联系方式、服务的调用。5) AccessPoint用于表示服务访问点的文本, 一般描述访问该服务所需访问点的URL或WSAD结构, 网格的使用者可以通过服务访问点按照一定的规则访问该服务。一般情况下, 这种访问规则以WSDL (WSDL, 2001)描述。6) CategoryBag这是一个名/值对(KeyReference)的可选列表, 这些名/值对用于为GridService标注相关的特定分类法信息, 其含义由用户指定。这些信息可以在对资源进行查找时使用。

图 1 GridService结构的XML Schema描述 Fig. 1 XML Schema description of GridService structure

在该资源描述数据结构中, CategoryBag子结构具有特殊的作用。该子结构中必须包括哪些名/值对是由网格的建设者负责确定的, 这样就提供了一种非常有力的可扩展框架, 允许网格的建设者根据待建网格的需要设定必须填写的名/值对并使其参与服务的查找过程, 除了服务的名称、访问点等, 其他可供查找的关键性分类信息都可以在此得到表述。在资源注册元服务被用到数字林业网格中的时候, CategoryBag结构就发挥了重要的作用。

3 资源注册元服务的设计与实现

资源注册元服务采用典型的分布式结构, 部署于若干个资源注册元服务器上, 每个资源注册元服务器称作一个服务节点。所有的服务节点均采用标准SOAP接口(SOAP, 2003)提供资源注册元服务, 以确保其与网格其他部分的兼容性。

为了保证足够的灵活性、鲁棒性和扩展性, 采用无中心的网状结构组织资源注册元服务的各服务节点。各服务节点之间相互独立, 互不所属且无主从关系。节点之间以“邻居”关系相关联。“邻居”关系是指2个在逻辑上相邻的服务节点, 它们之间的信息交互最为频繁, 而与2个节点间物理距离的远近没有关系。一个服务节点可以有很多“邻居”节点, 这些“邻居”关系交织成为一个网状的结构, 以减小因为其中少数节点的崩溃而导致资源注册元服务整体崩溃的危险。资源注册元服务各服务节点间的组织方式由图 2示意。

图 2 资源注册元服务各服务节点间的组织方式 Fig. 2 Relationship among service nodes for resource registry meta-service

在每个服务节点上, 均运行有一个符合SOAP标准的资源注册元服务的实例。这个实例的结构如图 3所示, 它包括注册服务接口、注册服务逻辑、邻居信息管理、配置文件接口与配置文件、数据库接口与数据库、注册服务客户端和其他支持工具几部分, 它们的功能分别是:1)注册服务接口解析来自用户或其他服务节点的资源注册服务请求, 并将其传递给注册服务逻辑模块, 根据注册服务逻辑模块的处理结果, 组成资源注册服务响应, 返回给请求者。2)注册服务逻辑根据从注册服务接口获得的资源注册请求进行相应处理, 得到结果并返回给注册服务接口。3)邻居信息管理根据预定的算法对邻居信息进行更新和处理, 以保证邻居节点列表的完备和有序。4)数据库接口提供统一的数据库逻辑访问接口, 屏蔽数据库种类的差别, 并将对逻辑数据的操作映射到物理数据库操作上, 简化上层模块的操作。5)注册服务客户端用于提供访问注册服务的客户端支持, 可以用于与邻居服务节点联系, 实现分布式的注册/查找能力。6)其他支持工具提供一系列支持工具, 方便上述各模块的开发与使用。

图 3 资源注册元服务实例结构 Fig. 3 Architecture of resource registry meta-service instance

在这个结构中, 注册服务逻辑是核心和关键。本注册服务的设计中, 资源注册元服务包括如下功能:

1) GetService  根据给定的ID获取服务的细节特性。2) RegisterService  注册一个新的服务。根据用户给定的服务各种细节特性加以注册, 并为其分配全局唯一的服务ID。3) ModifyService  修改一个已经注册的服务。根据用户给定的服务ID和各种细节特性对相应服务进行修改。4) UnregisterService   撤销已注册服务。需要注意的是, 这种撤销仅仅代表着在资源注册元服务中无法查找到该服务, 该服务依然存在而且依然可以通过其访问点进行访问。5) FindService  查找一组符合给定条件的已注册服务。根据用户给定的条件, 包括服务的名称和CategoryBag子结构中必须拥有的名/值对信息等进行服务的查找工作。查找范围不仅限于接受服务请求的服务节点, 通过邻居关系, 查找将扩展到一个可以由用户指定范围内的邻居节点中。

邻居信息管理模块负责对邻居节点列表的更新和维护, 是资源注册元服务的一个重要模块。它根据本服务节点与其他服务节点之间的信息交换频繁程度来确定哪些服务节点与本服务节点之间更加“相邻”, 并在注册服务逻辑请求时将最“相邻”的几个服务节点列表交给注册服务逻辑以供使用。由于邻居信息管理模块的实现算法对于整个分布式的资源注册元服务系统的性能特性有着很大的影响, 因而邻居信息管理模块被单独抽出, 以便为实现和使用不同邻居信息管理算法提供方便。

Java语言具有安全、高效、跨平台等优点, 因此选择Java语言实现资源注册元服务。资源注册元服务Java实现的包结构及各包、类的主要功能如图 4所示。其中, org.thgrid.registry. Registry类是整个实现的关键, 其中包含了所有注册服务逻辑代码。包org.thgrid. registry.data中提供了所有关键数据结构的定义和操纵代码, 包括对服务描述(GridService)的定义和对用户认证信息的定义(AuthInfo)。包org.thgrid.registry.util提供了配置文件接口、数据库接口、邻居信息管理和其他支持工具模块的全部功能, 而注册服务客户端的功能由包org.thgrid.registry.client实现。

图 4 资源注册元服务Java实现的包结构 Fig. 4 Packages in the Java implementation of resource registry meta-service
4 资源注册元服务在数字林业网格中的应用

数字林业网格中, 资源注册元服务被作为一个重要组成部分得到应用。为了符合数字林业网格对资源索引的一些特殊要求, 对资源注册元服务的CategoryBag结构进行了进一步的规定。这些规定包括: 1) CategoryBag结构中必须包括具有如下名称的KeyReference class, 用于表示该服务的类型, 采用带有语义特性的正序点分层次式语法, 其结构类似于Java语言中对包(package)的描述; type用于表示该服务的种类, 可选值有service (用于处理资源)、data (用于数据资源)和application (用于应用资源)等。2) CategoryBag结构中可选包括具有如下名称的KeyReference node, 用于描述提供服务的网格节点, 用主机名或IP地址表示; provider用于描述提供服务的组织机构, 用一个标准的组织机构描述码表示。3)当CategoryBag中名为type的KeyReference取值data, 即该资源是一种数据服务的时候, CategoryBag结构可选包括名称为region的KeyReference, 用以表示该数据的覆盖范围。4)对于名为class的KeyReference, 其取值做如下规定, 以保证系统中各种服务的正常区分和查找:

取值Value用途Usage
dfg.processingDFG中的处理服务Processing service in DFG
dfg.processing.rs-processing遥感影像处理服务Remote sensing processing service
dfg.processing.gis-processingGIS处理服务GIS processing servicr
dfg.data-serviceDFG中的数据服务Data service in DFG
dfg.data-service.rs-data遥感影像数据服务Remote sensing image data service
dfg.data-service.gis-dataGIS数据服务GIS data service
dfg.storageDFG中的存储服务Storage service in DFG
dfg.systemDFG中的元服务(系统服务) Meat-service or system service in DFG)
dfg.system.registryDFG中的注册服务Registry service in DFG

在这些补充规定的基础上, 为了方便资源注册元服务的使用, 还采用JSP技术开发了一套基于Web的数字林业网格资源注册元服务用户界面, 该用户界面以简单易用的方式提供了资源注册元服务的全部功能, 为资源注册元服务的使用者提供方便。图 5就是该用户界面的几个例子。

图 5 用户界面 Fig. 5 User interface

通过对CategoryBag结构的一系列扩展规定和服务类型体系的建立, 通用的网格资源注册元服务完成了其针对数字林业网格的改造, 成了一种适合数字林业网格使用的资源注册和查找工具。自2004年底数字林业网格试运行以来, 几个月的实践检验表明, 作为数字林业网格的一个重要组成部分, 分布式网格资源注册元服务达到了设计的功能要求, 并且能够在部分服务节点崩溃的情况下维持服务的正常运转, 能够满足业务性网格应用的需求, 为其提供稳定和高效的资源注册与查找服务。

5 结论

资源注册元服务是网格系统中非常关键的一个元服务, 它负责对网格中的资源进行注册管理和提供索引服务, 对于网格的顺畅运行起着至关重要的作用。本文定义和详细描述了一套完善的资源描述机制, 并以XML Schema的形式给出其标准。设计了一套完整的分布式资源注册元服务, 设计了包括各服务节点之间的组织、服务节点的软件结构以及功能模块在内的各技术细节。以Java语言为基础实现了分布式资源注册元服务。面向数字林业网格的要求, 本文对该资源注册元服务进行了进一步扩充并开发了非常易于使用的基于Web的用户界面。数字林业网格试运行的结果表明:本文所设计和实现的资源注册元服务能够满足网格的应用需求, 为其提供稳定和高效的资源注册与查找服务。

参考文献(References)
Berners-Lee T, Masinter L, McCahill M. 1994.IETF, Uniform resource locators(URL)[1994-12].http://www.ietf.org/rfc/rfc1738.txt
Foster I, Kesselman C, Tuecke S. 2001. The anatomy of the grid:enabling scalable virtual organizations. International Journal of High Performance Computing Applications, 15(3): 200-222. DOI:10.1177/109434200101500302
MDS.2003.Globus project, MDS technology brief [2003-01-30]. http://www.globus.org/toolkit/docs/2.4/mds/mdstechnologybrief_draft4.pdf
OGSA. 2005.Grid forum, open grid services architechture [2005-01-29]. http://www.gridforum.org/documents/GWD-I-E/GFD-I.030.pdf
SOAP. 2003.W3C, SOAP version 1.2 part 1: messaging framework [2003-06-24]. http://www.w3.org/TR/soap12-part1/
UDDI. 2005.The registry standard for SOA [2005-02-03]. http://www.oasis-open.org/presentations/uddi-v3-webcast-20050222.pdf
Yeong W, Howes T, Kille S. 1995.Lightweight directory access protocol [1995-03]. http://www.ietf.org/rfc/rfc1777.txt
WSAD.2004.W3C, Web services addressing (WS-addressing)[2004-08-10]. http://www.w3.org/Submission/ws-addressing/
WSDL. 2001.W3C, Web services description language(WDSL)[2001-03-15]. http://www.w3.org/TR/wsdl
WSIL.2003.W3C, Web services architecture [2003-08-08]. http://www.w3.org/TR/2003/WD-ws-arch-20030808/
WSRF. 2005.OASIS, Web services resource framework(WSRF)-primer [2005-12-07]. http://docs.oasis-open.org/wsrf/wsrf-primer-1.2-primer-cd-01.pdf