APP下载

基于数据注册中心和World Wind的空间数据存取

2014-10-15王梦雪

计算机与现代化 2014年2期
关键词:空间数据客户端分布式

王梦雪

(成都理工大学信息科学与技术学院,四川 成都 610059)

0 引言

由于空间数据具有海量、异构、多源、多尺度及来源于不同提供者等特点[1],所以对空间数据的存储管理和应用也尤为重要。近年来出现的Google Earth、NASA World Wind等三维地理信息平台都是以大量的空间数据服务为支撑,通过自有的或通过其他渠道获得的数据与服务进行集成,因此给空间数据的利用提供了便利的平台。本文将数据注册中心与World Wind Java相结合,利用元数据与数据分离的分布式存储方式,以KML来统一组织和管理各种空间数据属性,实现对空间数据的存储。利用World Wind Java实现对空间数据的读取和展示,以便于对采集的空间数据进行有效的存取及为行业应用提供服务,以充分发挥数据的作用。

1 研究背景

1.1 World Wind

World Wind是由美国国家航天局(NASA)的科研人员开发的开放源代码三维地图平台。它可以将Landsat 7、航天飞机雷达地形测图任务(Shuttle Radar Topography Mission,SRTM)、中分辨率成像光谱仪(Moderate-Resolution Imaging Spectroradiometer,MODIS)等多颗卫星的数据以及其他WMS服务商提供的图像通过一个三维的地球模型展现。World Wind有.NET和Java两个版本,源代码全部免费开发,其中World Wind Java版本可以支持Windows、Linux和Mac平台,具有极好的适用性[2]。

1.2 World Wind Java SDK 的优势

目前,国内广泛应用的商业化三维地理信息平台主要是国外的 Google Earth、ArcGIS Engine、SkyLine以及国内的 SuperMap 6R、VRMap、EV-Globe、LTEarth和GeoGlobe平台。其中最为人们熟知的是Google Earth,而World Wind的定位与前面几种明显不同,它不是商业化软件。

World Wind Java SDK是一个开源的软件,它可以在用户程序中作为组件,并且获取NASA的数据,开发者通过自己开发的需求,可以充分而深入地使用这些数据。World Wind Java SDK还提供了其他星球的影像。从设计角度来看,World Wind Java SDK具有极强的可扩展性,将World Wind Java SDK与开发者的项目集成,开发自己的GIS平台,应用于不同的领域[3]。

1.3 KML 介绍

KML(Keyhole Markup Language)是一种基于XML语法与格式的、用于描述和保存地理信息(如点、线、图像、多边形和模型等)的编码规范,可以被Google Earth和Google Maps识别并显示。用于在地球浏览器(例如Google地球、Google地图和谷歌手机地图)中显示地理数据。KML是由开放地理空间联盟(Open Geospatial Consortium,OGC)维护的国际标准[4]。

1.4 传统的存储方式

至今,空间数据的存储经历了5个阶段[5]:

(1)文件系统存储阶段,主要采用空间和非空间数据用文件分开存储,2个文件中的空间数据和属性数据用唯一标识连接的方式。其优点是数据模型简单、易处理;缺点是数据安全性低,无法保证数据的一致性,无法建立复杂的数据模型。

(2)混合数据存储阶段,以文件形式存储,关系数据库管理属性数据。以指针联系空间数据文件和属性数据库。其优点是属性数据管理和访问都容易;缺点是无法保证数据的一致性和数据安全。

(3)关系数据库存储阶段,存储中在关系库中引入复杂的数据类型。其优点是数据完整性及一致性较好;缺点是空间分析能力欠缺。

(4)面向对象数据库存储阶段,利用面向对象方法建立数据存储和处理。其优点是能准确地描述空间对象及行为,建模能力强;缺点是查询能力欠缺。

(5)对象关系型存储阶段,采用关系数据库和面向对象技术结合的方式存储。其优点是准确描述空间对象,数据完整性、一致性好;缺点是空间分析能力和查询能力欠缺。

目前数据库软件的数据存储方式有如下几种。

(1)ArcSDE利用数据库提供的标准数据类型来组织存储空间数据。存储类型如下:

①ArcSDE压缩二进制。这是ArcSDE特有的存储方案,支持 Oracle和 SQL Server。Oracle以“long row”存储,SQL Server以“image”类型存储。

②BLOB类型存储,支持Oracle数据库。

③Oracle Spatial标准化方案。仅在Oracle(包括Spatial扩展)中可用。

(2)Oracle Spatial空间扩展提供了一系列存储过程和函数,实现了空间数据在Oracle数据库中的存储访问。

(3)DB2和 Informix。IBM DB2 Spatial Extender和IBM Informix Spatial DataBlade通过扩展数据原有的标准数据类型,使用户可以为表定义空间列,并且制定空间列的类型为ST_Geometry,从而存储空间数据。

(4)MySQL用自己的Geometry数据类型存储空间数据。

1.5 数据注册中心

数据注册中心是注册元数据的信息系统。元数据注册系统是对元数据的定义信息及其编码、转换、应用等规范进行发布、注册、管理和检索的系统。与传统的数据标准机制不一样,元数据注册系统是一个面向网络、面向服务的全新的数据标准化机制。元数据注册系统具有4大服务功能,分别是对元数据的管理、元数据互操作、元数据的开放应用、元数据的复用。在此模型实现交互的过程中,数据注册中心主要完成3方面的操作:(1)制定空间数据的KML规范;(2)根据指定的空间数据标准,在不同资源类型的系统进行数据交互时,数据注册中心可以根据注册的元数据规范提供转换模式,自动进行转换服务;(3)提供行业服务,即通过数据注册中心的服务接口为行业应用提供相关数据[6]。

2 模型层次图

本文提出的基于数据注册中心的空间数据存取模型的层次图如图1所示,分为3个层次:数据服务层、数据交换层和数据存储层。

图1 基于数据注册中心的空间数据存取模型的层次图

2.1 数据服务层

对空间数据存取的研究主要是为各行业应用提供安全高效的服务,实现对空间数据的共享和利用,经由数据交换层KML解析之后的数据结果通过数据访问层返回到客户端的服务接口,然后为客户端提供方便高效的服务,此处的数据服务层就是为了利用聚合之后的数据来方便服务[7]。

2.2 数据交换层

根据制定的符合规范的KML请求格式,在提取客户端提交的KML数据流时,在处理模块完成对KML的解析和装载,对数据进行描述,即在各客户终端上,对空间数据进行注册并存储,注册时完成对空间元数据的提取,存储在元数据库中;在为客户端返回结果数据的时候,针对KML规范开发的服务端处理程序,通过服务器端的处理程序对KML结构数据流进行解析,最后将解析结果返回给客户端。

2.3 数据存储层

提供空间数据的存储,包括分布式元数据库和分布式文件数据库。分布式元数据库主要完成对数据存储时,对录入的元数据的管理和存储,即对KML文件的存储和管理;分布式文件数据库完成对空间数据本身的存储。

3 模型架构设计

模型的总体架构设计如图2所示,此模型架构中数据注册中心是实现空间数据存取的主要部分。由于空间数据的种类复杂,不同类型的数据之间还存在着关联,并以行业数据集的形式为外界提供数据服务,因此通过数据注册中心将不同数据源的元数据信息集中起来,通过对元数据的统一管理,达到对资源信息共享。一方面,数据注册中心可以对元数据进行统一管理和维护,另一方面,数据注册中心要为数据访问者提供可靠的信息发现机制,确保信息资源的精确定位和访问[8]。

图2 模型总体架构

主要的存储和响应流程如下:

(1)接收来自各种终端的数据。

(2)通过HTTP提交数据后,若此数据是首次向该数据管理模型提交,则该数据本身存储在分布式文件数据库中。与之相关的元数据通过KML完成数据交换的数据注册过程,产生一个针对行业应用的KML文件。文件存储于分布式元数据服务器群中。KML文件对数据进行了描述,在存储的过程中,自动为此数据的存储形成唯一标识GUID,并且存入该数据在分布式文件服务器群中的URL。

(3)若客户端直接请求数据库中的数据,则对该客户进行授权。通过注册数据时的唯一标识GUID,找到该数据对应的KML文档。通过对文档的解析,向终端返回该空间数据在数据服务器群中存储的URL。

(4)终端直接通过得到的URL访问分布式文件服务器群,最终准确快速地返回待访问的空间数据。

4 开发环境的搭建

图3为对空间数据在数据注册中心中实现存取的基本流程图。在实现过程中,采用MySQL数据库完成对元数据的存储和管理,用Java完成对不同格式、不同系统间数据的交换,用Tomcat和Apache完成对元数据库的发布。

图3 数据注册中心下空间数据交换流程图

利用World Wind Java SDK和Eclipse集成作为开发环境,完成对空间信息的展示。搭建过程如下:

首先是安装Java SDK,配置Java的环境变量,在确认好Java的运行环境无误之后,解压下载的E-clipse,然后启动 Eclipse。

然后是本机上服务器的安装配置,主要完成A-pache和Tomcat的安装,并将两者整合。

同时还要安装JOGL(Java Bindings for OpenGL)和配置JOGL。JOGL是一种利用OpenGL的Java绘图技术,安装JOGL是为了支持客户端和服务器的运行和支持Eclipse开发。

最重要的就是World Wind Java SDK和Eclipse的集成:将下载的World Wind Java SDK中的World-Wind.jar和 jogl.jar引入到 Eclipse新建的项目中,项目中初步的结构图如图4所示。

图4 实验中项目的初步结构图

5 实验结果及分析

本文以世界七大奇迹的空间数据属性为实验数据,以基于数据注册中心和World Wind Java的空间数据的存储模型为实现架构,以KML规范为数据交换标准,完成世界七大奇迹数据的展示。

5.1 设计空间数据KML规范

由于对不同的行业应用不同的空间数据,KML对空间数据没有统一的规范标准,所以首先需要制定针对某行业应用的KML标准,以便对空间数据进行统一的描述[10],在模式实现的过程中,利用世界七大奇迹的空间数据属性为实验数据,根据此空间数据类型提供相应的KML规范,如图5所示。

图5 空间数据的存储规范

5.2 存储结构设计

空间数据的存储结构设计主要包括对元数据描述的字段设计,用于对数据注册中心的元数据的管理,如表1所示。GUID作为该数据表的主键。

表1 元数据库字段设计

5.3 数据交换的实现

在建立的世界七大奇迹的空间数据的数据交换标准和数据库表的基础上,将KML文档中的数据和数据库表中数据实现互操作,即实现将KML文档中的数据插入数据库表中和实现将数据库表中的数据生成相应的KML文档[11]。将KML文档中的数据插入到数据库表中是将空间数据以结构化的形式存储在数据库中,通过DOMDocument对象实现随KML文档中Node节点的解析,并将相应解析结果存储至数据库中;将数据库表中的数据形成KML是为不同类型的空间数据的格式统一,通过Documentbuilder实现对KML文档的创建,简化了对空间数据的管理。

5.4 空间数据展示

在通过对世界七大奇迹的KML文件的装载和存储之后,利用相应的KML文件实现空间数据的展示。在此KML文件中,详细地描述了世界七大奇迹的属性数据,然后通过对此KML数据的解析,展现空间数据[12],如图 6 所示。

图6 实验展示图

6 结束语

本文针对空间数据的存取问题,提出一个基于数据注册中心和World Wind Java空间数据的存储方案,并且利用世界七大奇迹为实验数据,在搭建好的Eclipse和World Wind Java SDK的集成平台上对解析之后的数据进行了展示,为空间信息的存取提供了一种新的思路[13]。

[1]刁明光,薛涛,李建存,等.基于地质信息元数据标准的多源空间数据管理系统[J].国土资源遥感,2013,25(1):165-170.

[2]周玲,高延铭,王海红,等.World Wind Java三维地理信息系统开发技术指南[M].北京:机械工业出版社,2013:25-28.

[3]卢海滨,郑文锋,银正彤,等.NASA World Wind JavaSDK数字地球客户端开发[J].测绘科学,2009,34(3):169-170,139.

[4]颜小平,耿晓民,初启凤.基于KML在Google Earth批量标记方法[J].测绘与空间地理信息,2012,35(4):92-93.

[5]李骁,范冲,邹峥嵘.空间数据存储模式的比较研究[J].工程地质计算机应用,2009(2):8-10.

[6]强韶华,吴鹏,严明.面向信息资源整合的元数据注册系统研究[J].情报科学,2008,26(12):1878-1881,1911.

[7]董智慧.基于空间信息服务云月球数据共享机制研究[D].成都:成都理工大学,2012.

[8]李锐,林艳萍,徐正全,等.空间数据存储对象的元数据可伸缩性管理[J].计算机应用研究,2011,28(12):4567-4571.

[9]蒙安泰.G/S模式下空间信息服务云数据注册机制研究[D].成都:成都理工大学,2012.

[10]史婷婷,李岩,王鹏.基于GML空间数据存储方法研究与实现[J].计算机应用,2006,26(10):2408-2412.

[11]尹建璋.基于XML的应用层数据交换技术的研究[J].计算机与现代化,2009(8):97-100,104.

[12]蒋佩伶.HGML在基于G/S模式的地学浏览器平台中的解析与应用[D].成都:成都理工大学,2011.

[13]王宇,张军,卢虎.World Wind平台地理环境建模方法的研究与改进[J].计算机工程与应用,2012,48(36):75-79.

[14]谢倩茹,周明全,耿国华.基于ADO技术的XML数据交换[J].计算机应用与软件,2004,21(1):123-125.

猜你喜欢

空间数据客户端分布式
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
基于Vanconnect的智能家居瘦客户端的设计与实现
分布式光伏热钱汹涌
分布式光伏:爆发还是徘徊
元数据驱动的多中心空间数据同步方法研究
基于DDS的分布式三维协同仿真研究
西门子 分布式I/O Simatic ET 200AL
基于文件系统的分布式海量空间数据高效存储与组织研究
客户端空间数据缓存策略