网学网为需要毕业论文写作的朋友们搜集整理了基于Globus Toolkit 4.0的WMS研究与实现相关资料,希望对各位网友有所帮助!
转载请注明来源:毕业论文 需要其他论文可去论文范文查找。免费毕业论文下载基于Globus Toolkit 4.0的WMS研究与实现 摘要:本文首先简单介绍了网格计算、网格中间件Globus Toolkit 4.0 和WMS的基本概念及特点,接着介绍了空间数据共享的方法,重点突出了基于网格的WMS的优势。最后本文给出了以网格中间件Globus Toolkit 4.0和ArcIms4.0平台为基础的WMS的简单试验体系结构和实现方法。
关键词:Globus Toolkit 4.0 ArcXML WMS
Abstract This paper simply introduces the definitions and characteristics of grid computing、grid middleware(Globus Toolkit 4.0) and WMS(Web Map Services) at first , subsequently , talking about the way of sharing spatial data , which concentrated on predominance of the WMS based on grid . At last , this paper put forward a simple set of WMS architecture and implementation method based on grid middleware(Globus Toolkit 4.0) and ArcIMS 4.0 platform .
Key Words Globus Toolkit 4.0 ArcXML WMS
1. 概述
网格一词最初指网格计算(Grid Computing),就是指将机群、超级计算机、大规模存储系统、数据库以及其他地理上分散的特殊设备,甚至个人计算机等所有的计算机资源、存储资源、通信资源、软件资源、知识资源等连接起来作为单个资源使用,以提供强大的计算机能力,为科技人员和普通百姓提供更多的资源、功能和交互性[1]。网格技术的提出和发展对GIS的发展带来了新的机遇和挑战。
近年来随着“数字地球”、“数字城市”成为了GIS发展的方向,我们知道WebGIS主要是通过超链接形成超文本,包括实现并行计算功能,而这一点对“数字地球”、“数字城市”需要的快速计算、信息革命是致命的,因此,实践证明,传统的技术已经不能解决“数字地球”、“数字城市”的实时处理和信息共享问题,因为它们需要能够使地理空间信息提供者能够实时地将地理空间信息提供给最需要地用户,而地理空间信息使用者又能够知道那里能够找到急需地地理信息,当前地分布式GIS技术还远未达到这种要求,必须在具有异构性、可扩展性、动态自适应性和多级管理域等特点地网格技术的基础上,这种情况下,网格计算的并行处理的优势突出显示出来,因此,基于网格计算的GIS应用成了GIS研究的一个重要方向。
2. 网格中间件Globus Toolkit 4.0
我们知道网络上分布在不同地点的计算资源如机群存储设备、数据库、科学仪器虽然在物理上是连通的,但从逻辑上看,这些信息资源仍然是孤立的,信息共享问题仍然没有解决。网格中间件就是用来完成广域空间信息的有效共享的,它是指一系列工具和协议软件,其功能就是屏蔽网络中空间信息的分布、异构特性,向用户提供透明、一致的使用接口。网格中间件提供核心服务,如远程进程管理服务、资源分配服务、存储访问服务、信息(登录)服务、安全控制服务、认证和质量服务。Globus Toolkit 4.0 就是目前国际上最有影响之一的网格计算项目(Globus项目)组在对信息安全、资源管理、信息服务、数据管理以及应用开发环境等网格计算的关键理论和技术进行了广泛研究的基础上,开发出的能在多种平台上运行的网格中间件工具包软件,它能够用来帮助规划和组建大型的网格试验和应用平台,开发适合大型网格系统运行的大型应用程序。Globus 工具包是Globus最重要的实践成果,目前,最新的版本是Globus Alliance发布的4.0的版本,该版本的特点是遵守最新的Web Services Interoperability Organization (WS-I) Web服务标准,实现了WSRF和WS-Notification规范,具有复杂的授权和安全功能[1]。
3. WMS功能服务
根据OGC规范,WMS要实现两个标准服务:GetCapabilities、GetMap,和一个扩展服务GetFeatureInfo。下面分别对三个服务进行介绍。WMS利用具有地理位置信息的数据制作地图。我们定义地图为地理数据的可视化表达,地图并不是数据本身。地图通常以图像格式表达,例如PNG , GIF 或是JPEG,有时候也表达为基于矢量图形,如可缩放矢量图形(SVG)或是网络电脑图形元文件等格式(WebCGM)[11]。这个规范定义了客户请求地图以及服务器描述其拥有的数据所采用的标准方式。这个文件定义了三种操作:GetCapabilities、GetMap、GetFeatureInfo,其中的前两个是所有的WMS中必须有的。
3.1. GetCapabilities
获取服务级元数据,它是计算机和人都可理解的、关于WMS的信息内容和可接受的请求参数的描述。服务调用者通过调用服务函数GetCapabilities(VERSION, SERVICE, REQUEST, UPDATESEQUENCE),得到该WMS的具体描述信息,该描述信息是XML格式的[2]。
3.2. GetMap
获取地图图像,它的地理空间参数大小参数都有明确的定义。服务调用者通过调用函数GetMap (VERSION, REQUEST, LAYERS, STYLES, SRS, BBOX, WIDTH, HEIGHT, FORMAT, TRANSPARENT, BGCOLOR, EXCEPTIONS, TIME, ELEVATION), Layers参数是数据关键字描述,在GetCapabilities函数中返回的数据。图像的显示范围通过BBOX参数进行设置,生成图像的格式通过FORMAT参数设置[2]。
3.3. GetFeatureInfo
请求显示在地图上的某些特定要素的信息。GetFeatureInfo ( VERSION, REQUEST, map-Request, QUERY-LAYERS, INFO-FORMAT, FEATURE-COUNT, X, Y)。该服务函数得到指定数据相应位置的要素描述信息,FEATURE-COUNT参数返回的是X、Y位置在查询到的要素信息的数目[2]。
4. 基于网格中间件Globus Toolkit 4.0和ArcIMS 4.0平台为基础的WMS的实现
图1是一个简单WMS系统架构,其中 MO IMS、ArcIMS 4.0、ArcView等平台用来提供地图服务,网格中间件Globus Toolkit 4.0位于客户和这些地图服务平台中间用来屏蔽空间分布的异构特性,向用户提供透明、一致的WMS接口。用户只需要调用WMS接口的方法并输入相应的请求参数就可获得相应的地图服务。WSDL文件具体描述了网格服务的WMS 接口 (WmsPortType),该接口中定义了GetCapabilities、GetMap 和GetFeatureInfo三个方法及其请求和响应中具体参数的描述。如GetMap方法的参数包括:VERSION 、REQUEST、 LAYERS、 SRS、 BBOX、 WIDTH、 HEIGHT、 FORMAT、 TRANSPARENT、 BGCOLOR等。客户在请求地图时,只需按照自己的需求输入相应的参数值即可。网格服务具体实现了WMS接口的三个方法的功能,以ArcIMS为例,网格服务主要根据用户在客户端输入的参数值与ArcIMS 4.0建立连接并发送相应的ArcXML请求经ArcIMS Application Server最终到ArcIMS Spatial Server以最终完成用户的请求任务[3]。网格服务的部署需要在两个部署文件WSDD和JNDI中配置服务。在将网格服务部署到容器之前,需要用Ant创建一个GAR文件,GAR文件是由WSDL文件、实现网格服务的JAVA源文件、部署文件(WSDD和JNDI)以及GT4编译文件形成的一个单一文件。部署任务是GT4工具完成的,先是用 ANT解压GAR文件,再将解压产生的文件拷贝到GT4的目录树中的相应位置。部署命令为:
Globus-deploy-gar org_globus_examples_services_core_wms.gar
将网格服务部署到容器之后,就可以在客户端编写一个客户端程序,用于测试所部署的的网格服务。在客户端程序中,首先创建一个端点引用对象以获得服务接口,接口的获得是由服务存根(stub class)完成的,一旦我们获得接口,我们就可以在本地工作一样来调用服务端的功能来工作。如调用接口WmsPortType的方法GetMap并输入以下参数:
VERSION=1.1.0
REQUEST=getmap
LAYERS=rai_4m/roa_4m/BOUNT_line
WIDTH=600
HEIGHT=400
FORMAT=img/jpg
调用接口WmsPortType的方法GetMap的代码如下:
EndpointReferenceType endpoint = new EndpointReferenceType(); //创建一个服务的端点引用
endpoint.setAddress(new Address(serviceURI));
WmsPortType wpt = locator.getWmsPortTypePort(endpoint);//定义一个端口实例
wpt.GetMap(1.1.0, getmap, rai_4m/roa_4m/BOUNT_line,600,400,img/jpg);
然后运行客户端:
java \
-classpath ./build/stubs/classes/:$CLASSPATH \
org.globus.examples.clients.WmsService_instance.Client \
http://127.0.0.1:8080/wsrf/services/examples/core/wms/WmsService
在客户端将返回一幅地图如图2所示:
5. 结束语
本文利用网格中间件Globus Toolkit4.0和ArcIMS4.0平台对空间数据共享进行了初步的探索和研究,基本上实现了WMS系统架构的设计与实现。基于OGC规范的空间数据服务包括WMS、WFS和WCS,其中WMS(Web地图服务)是最基本的服务,WFS(Web要素服务)和WCS(Web覆盖服务)实现方法与WMS基本相同,但WFS较为复杂。
参考文献
姜永发,闾国年,网格计算与GridGIS体系结构与关键技术探讨.测绘科学,2005.
罗显刚,谢 忠,徐 欣,基于GML 的WMS 研究与实现.计算机应用,2004.
孟艳红,基于ArcIMS的WebGIS系统应用研究. 新疆大学,2004