首页 > 范文大全 > 正文

基于XML与中间件技术的GIS空间数据存取

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于XML与中间件技术的GIS空间数据存取范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要:为将地理信息系统(Geographic Information System,GIS)的空间数据存储于关系数据库管理系统(Relational DataBase Management System,RDBMS)中,利用RDBMS中的XML扩展功能,研究在DB2 9中以XML方式存储GIS空间数据的方法,实现shape文件空间数据在DB2 9中的存储,设计并实现数据访问中间件. 研究表明该方法对某些GIS应用具有实用价值.

关键词:地理信息系统; XML; 中间件; DB2数据库

中图分类号:TP311.132.3; P208

文献标志码: A

GIS spatial data access based on XML and middleware technology

WANG Anbao,WU Cuihong

(School of Computer & Info.,Shanghai Second Polytechnic Univ.,Shanghai 201209,China)

Abstract:To store the GIS spatial data into RDBMS(Relational DataBase Management System),using the extension function of XML in RDBMS,the method of storing GIS spatial data as XML in DB2 9 is studied. It is implemented that the GIS spatial data in shape file is stored into DB2 9. And a data access middleware is designed and implemented.The study indicates that the method is significant for some GIS applications.

Key words:geographic information system; XML; middleware; DB2 Database

0 引 言

地图数据是地理信息系统(Geographic Information System,GIS)的基础,一般数据文件包括空间位置数据、空间关系数据和非空间属性数据.传统的地图文件将空间数据和属性数据分开存放:空间数据以文件形式存储,属性数据存储于关系数据库中,二者之间用关键字或指针进行关联.[1]最新的GIS技术是将所有空间数据和属性数据都保存在大型空间数据库中,如DB2 Spatial Extender和Oracle Spatial等.近年来GIS与关系数据库管理系统(Relational DataBase Management System,RDBMS)相结合的应用也比较广泛[2,3],但空间数据库系统一般较大,对计算机要求比较高,需要专门的中间件应用软件(如ArcSDE)进行访问.对于单机和中小型的GIS应用还是使用空间数据和属性数据分开存储的方式.这种管理方式的结果使实用性受到很大限制:数据完整性和一致性不能保证;GIS的开放性及互操作性受到限制;数据共享和并行处理无法保证;查询速度慢等.随着XML应用的不断扩展,基于xml的GIS应用研究渐渐引起更多研究人员的关注.[4,5]本文尝试将空间数据与属性数据均存放在关系数据库中,通过对shape文件结构进行解析,将其转换成XML文件,在关系数据库中建立相应的数据表,然后将含有空间数据和属性数据的XML文件存入关系数据库中进行地图数据的统一管理,从而有效解决数据的完整性、一致性以及地图数据的共享等,并实现从数据库中读取地图数据.

1 空间数据的关系数据库存取机制

2.1 空间数据的关系数据库存储

由于属性数据本身就以数据库的形式存放,因此将其存储到关系数据库中相对比较简单.本文使用DB2,只须建立相应的表结构并将属性数据从dbf文件中读出,然后写入DB2中相应的数据表即可.而空间数据部分一方面种类比较多,另一方面同一种类型的数据(如多边形等,点的数量是不定的)长度是变化的,难以建立相应的表结构.一般有以下2种方法:(1)建立多字段的数据表,将空间数据的每个点坐标逐个存入数据库中;(2)采用数据关联技术,在主表中保存数据类型,副表中存储相应结构的数据序列,二者通过关键字关联.

第1种方法需要建立足够多的字段结构,而点的数量不够会造成空间浪费,另一方面,由于关系数据库的自身限制,每个表的最大字段数量也受到相应限制,因而不能存储包含点数较多的对象.第2种方法需要进行数据库的关联操作,而且对于每个超过1个点的对象都需要建立1个副表,这样对副表的数量需求很多,不利于数据管理.本文采用DB2 9的XML存储机制实现GIS空间数据在关系数据库中的存储,完全不同于上述2种方法,能很好地克服其缺点.

DB2 9的pureXML功能可针对符合语法规范的XML进行存储、更新、删除、查询,并建立索引.用户可通过在查询中整合XPath,XQuery和SQL来检索全部XML文档或文档片断.用户还可以注册XML模式[6],并命令DB2根据这些模式验证XML文档.它以树形存储方式对待XML数据,保证XML数据与生俱来的层次结构和灵活性,可满足企业用户对呈几何量级增长的XML数据的存储需要.

以shape文件中的PloyLine几何类型为例说明如何将GIS空间数据以DB2 XML方式存储,其原理见图1,主要有3项关键技术:(1)如何将shape文件中的空间几何数据转换成XML格式,本文采用JAXB 2技术实现;(2)如何将转换好的含有空间几何数据的XML文件存储到DB2 9中;(3)如何对DB2 9中XML数据进行操作,这不是本文研究的重点.

图 1 GIS空间数据以DB2 9 XML方式存储的处理过程

由于XML具有自定义性及可扩展性,因此足以表达各种类型的数据,通过编程与实验,可以完整无误地将shp空间几何数据文件的所有层次数据按照XML的标签层次结构进行存储,然后将其存入DB2 中,客户可以使用JDBC从数据库中取得全部或部分XML数据,然后应用于显示或进行处理,也可以在不同GIS数据格式之间进行转换.

从图1 可以看出,GIS应用程序可以直接使用文件系统的数据,如:shp,dbf和shx文件,也可以使用转换后的XML空间数据文件,或者从DB2 9中读取部分或全部的XML空间数据,这给具体应用带来极大的便利性,即在不同的场合选择不同的存储格式.将空间几何数据存入DB2 9后,所有与DB2 9相连的客户端都可以按自己的要求存储、更新、删除和查询以XML格式进行存储的空间数据,这在一定程度上保证空间数据的一致性和安全性.1.2 GIS空间数据XML方式存储实现

以shape文件中的PloyLine几何类型为例,PloyLine的空间实体数据结构可以下列代码描述,其中每个字段的含义参见文献[7].

PolyLine

{

Double[4] Box

Integer NumParts

Integer NumPoints

Integer[NumParts] Parts

Point[NumPoints] Points

}

使用Java语言进行建模,建立相应的Java对象,主要有PolyLine,Box,Parts,Points,Point.然后利用JAXB将这些空间数据对象按其层次关系映射为XML中的标签层次结构,以实现从shp到XML的转换.图2为上海市长宁区的中心线道路shape文件转换为XML的文件片段.

图 2 上海市长宁区中心线道路XML文件片段

2 空间数据关系数据库访问的中间件设计

2.1 中间件技术

中间件是1种独立的系统软件或服务程序,分布式应用软件借助它在不同技术之间共享资源.中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信.中间件不仅实现互连,还要实现应用之间的互操作.中间件是基于分布式处理的软件,最突出的特点是其网络通信功能较强.在中间件应用的体系结构中,中间件屏蔽信息访问的底层细节,并向客户应用提供1组接口,客户应用通过接口与中间件进行通信,与数据服务器无关,保持客户应用的相对独立性.当信息结构发生变化时,只要中间件作相应更新,客户端应用程序甚至可以不作任何修改就能继续应用于新的系统.2.2 基本思想

随着GIS应用向分布式管理系统领域的转移,空间数据的文件管理模式在实现数据共享、网络通信、并发控制及数据的安全恢复机制等方面出现难以解决的问题.[8]GIS的发展要求数据库系统不仅能够存储属性数据,而且能够存储空间数据,存储和管理空间数据是GIS的核心任务之一.随着大型关系型数据库技术的日益完善,其应用也日渐普及.于是现在的gis软件都在向集成结构的空间数据库技术方向发展,将空间数据和属性数据全部存储在关系型数据库中,使二者紧密集成,充分利用RDBMS处理和分析海量数据的能力,真正实现将图形与属性融为一体的客户/服务器结构,并与企业已有的信息系统集成.

用RDBMS(本文采用DB2的XML存储机制)管理空间数据,主要解决存储于关系数据库中的空间数据与应用程序之间的数据接口问题,其主要任务是:(1)用关系数据库存储管理空间数据;(2)从数据库中读取空间数据,并转换为GIS应用程序能够接收和使用的格式;(3)将GIS应用程序中的空间数据导入数据库,交给关系数据库存储和管理.为此设计空间数据的关系数据库数据访问中间件,见图3,设计方案是创建1个空间数据引擎中间件连接GIS应用程序和关系数据库,从而解决存储在关系数据库中的空间数据与应用程序之间的数据接口问题.

图 3 空间数据的关系数据库数据访问中间件

数据访问中间件中的空间数据可以作为shape格式存储,也可以作为XML格式存储,或者作为关系数据库的一部分进行存储.中间件负责将以shape格式存储的空间数据文件自动转换为XML格式,然后将对应的XML空间数据文件存入RDBMS,其中shape文件、XML文件与RDBMS中的XML空间数据表一一对应.GIS应用可直接从中间件接口中存取shape格式的空间数据文件,也可以使用其XML格式的空间数据文件,同时完全支持从DB2 9中索取空间数据文件.

数据访问中间件在现有RDBMS的基础上利用XML技术进行空间扩展,可以将空间数据和非空间数据集成在商用RDBMS中.其访问模式如下:对于shape文件,用户直接通过中间件接口TCP/IP下载到本地使用;对于XML文件,客户端用户通过中间件接口提出请求,中间件负责将上述XML格式的层次数据文件转换成Java类层次,并负责实例化成对象,最后将结果提交给客户端应用,至于存储于 RDBMS 中的空间数据文件,中间件负责检索用户请求的数据并封装成对象层次结构,并将搜索结果通过网络向用户的应用程序返回.上述开放式数据访问中间件模型,支持最新的标准(XPath,XQuery和SQL),提供快速、多用户的数据存取,以及开放的应用开发环境.在RDBMS中融入空间数据后,数据访问中间件模型可以提供对空间和非空间数据进行高效率操作的数据库服务.

数据访问中间件模型具有很强的扩展性,其优势在于:(1)为不同的客户应用需求提供不同的空间数据服务;(2)通过TCP/IP横跨任何同构或异构网络;(3)提供从基于文件的系统到RDBMS管理数据系统的平滑升迁;(4)以连续、无缝的数据库管理地理空间数据;(5)跨越Internet提供公开的空间数据访问.

从以上优势可以看出,在不同的应用中可以使用不同的空间数据,并可以根据业务的大小调整应用服务的数量和组织模式.完成数据的动态存储管理,并实现数据在不同客户应用中的实时更新.本文利用JavaBean技术已完成上述中间件的数据文件格式转换和XML空间数据文件的关系数据库存取等大部分功能.

3 结 论

通过对shape文件格式的分析,通过中间件将空间数据转换为XML格式的空间几何数据文件,并在关系数据库DB2 9上以XML方式存储和管理空间数据,既保留所有的空间信息,又保证空间数据和属性数据在修改时的一致性.由于所有数据均保存在关系数据库中,因此可以通过网络访问技术实现GIS数据的共享与应用.在研究与实现的过程中,发现一些问题,如存储开销增大(1个50 KB的中心线道路空间几何数据文件存储为XML文件格式需要332 KB的空间),以及数据存取速度稍慢等,下一步准备通过压缩方法解决这些问题.

参考文献:

[1] 王英杰,袁勘省,李天文. 交通GIS及其在ITS中的应用[M].北京:中国铁道出版社,2004:124-135.

[2] POLI A,di GIOVANDOMENICO P. Dynamic and integrated GIS-RDBMS tools to develop and manage air pollutant emission inventories[J]. Epidemiology,2006,17(6):265-265.

[3] SMIATEK G. SOAP-based Web services in GIS/RDBMS environment[J]. Environmental Modelling & Software,2005,20(6):775-782.

[4] CHANG Yoon-seop,PARK Hyeong-dong. XML Web service-based development model for Internet GIS applications[J]. International J Geographical Info Sci,2006,20(4):371-399.

[5] BRESSAN S,MANG C Y. A benchmark for XML processing in GIS[C] //Sixteenth Workshop on Database and Expert Systems Applications,2005:507-511.

[6] 崔丽美,谢传节,杨联安,等.基于XML Schema地球系统科学数据的元数据扩展机制[J].测绘学报,2005,34(3):246-251.

[7] ESRI.ESRI shapefile technical description[EB/OL].[1998]. .

[8] 庞鲲,邢汉承. 多种非空间数据与GIS应用的集成[J].计算机辅助工程,2003,12(3):56-60.