基于 ISAPI技术的栅格数据瓦片服务研究

2010-11-14 10:52亢晓琛张艳玲闫浩文
测绘通报 2010年7期
关键词:栅格数据数据服务瓦片

亢晓琛,张艳玲,闫浩文

(兰州交通大学数理与软件工程学院,甘肃兰州 730070)

基于 ISAPI技术的栅格数据瓦片服务研究

亢晓琛,张艳玲,闫浩文

(兰州交通大学数理与软件工程学院,甘肃兰州 730070)

在分析 GoogleMaps瓦片式服务模型的基础上,提出可扩展性的数据服务方案。以 ISAPI技术为通讯手段,设计并实现了高性能的栅格数据瓦片服务系统。从系统的数据存储设计、Web服务架构、应用服务模块与服务接口设计等方面进行论述,并给出系统性能测试与相关的服务应用。

栅格数据;瓦片服务;存储设计;接口设计;ISAPI

一、引 言

计算机软硬件技术以及网络技术的迅速发展,极大地增强了地理信息系统的服务能力。成熟的商业数据库技术为海量空间信息的高效存储管理提供了基础的保障,数据的检索能力得到了极大提高。与此同时,先进网络信息技术则满足了空间信息数据高效发布的需求。地理信息系统经历了技术研究、集成应用到产品服务,直至今天正在向地理信息服务转变。地理信息服务这一概念强调“服务”,这里的服务可以理解为“辅助用户进行行为决策”,那么将地理信息转化为辅助用户进行行为决策的工具这一过程中所有的问题均可以认为是地理信息服务所需要研究的内容[1]。

当前,地理信息服务的服务模式多种多样,而标准的数据服务始终是构建其他复杂地理信息服务应用的基础环节。由于地理数据服务基于行业标准,并且具有良好的跨平台性质,因此,以服务的方式实现空间数据的发布以及互操作成为技术的主流[2]。

类似于 GoogleMaps,当前有许多网络 GIS应用基于瓦片服务模式来构建。但大多以二维显示应用为主,服务的数据多为简单的图片。本文所论述的服务模型具有良好的数据扩展性,同时可以为二维显示与三维应用提供数据服务。以具体的瓦片式栅格地图服务的具体实现为例,详细分析了瓦片式栅格数据服务的实现原理与关键技术。

二、栅格数据瓦片服务系统模型

在 GIS与模型集成的多层体系结构中,可以划分为表示层、商业逻辑层和数据访问层,这三层构成了一个经典的三层体系结构[3]。

栅格数据瓦片服务系统模型可以以数据源形式封装来自数据库与文件方式组织的不同数据来源。对于多种不同的数据源,向上服务的数据调用接口是一致的。这样,以接口继承的方式很容易实现数据源类型的扩展与多源数据的融合,这一优势正是开源桌面软件 QGIS所采用的数据管理方式。通过统一的数据调用接口,应用逻辑可以实时进行数据请求。为了应对较高的并发请求,在应用逻辑与数据源层之间预先建立可控的连接池。在连接池中保留了实时可用的有效数据源连接,用于数据请求与各种操作请求。Web Server层可以实时捕捉到来自客户端的URL请求,应用逻辑将URL所携带的信息进行解析,然后根据数据请求参数从数据源调取数据,再由Web Server发送给客户端。系统模型参见图1。

三、数据瓦片与数据组织

1.数据瓦片编码与生产

数据瓦片 tile是通过将栅格数据按照一定的像素宽高进行裁剪得到,对裁剪后的数据小文件重新命名,使它能够反映在原始文件中所处的像素位置与金字塔级别。

图1 瓦片服务系统模型

GoogleMaps、Google Earth以数字地图与高分辨率卫星图像两种数据源提供地图服务。Google分层组织地图数据,分层存放结构,简化了系统模型及处理过程[4]。GoogleMaps中,卫星影像的 tile采用256×256像素大小的 jpg图片来表达地面内容,tile的命名规则是采用“qrst”4个字符排列而成的字符串来表达当前级别与像素位置。这样每一幅图在数据请求时就表现为一个 URL(如:http:∥kh0. google.com/kh?n=404&v=8&t=trtqtt,其中参数t=trtqtt代表了请求的级数与位置)。根据 zoom in (放大)级别的不同,tile进行适当的裂化,每块的编码规则为:左上“t=tq”,右上“t=tr”,右下“t=ts”,左下“t=tt”。依此类推,每放大一倍,每一小块都裂分为四,从左上到右下顺时针按 qrst编号,裂分后的编码为裂分前的编号上小块的编号。本研究所实现的瓦片数据服务所需的数据通过 GDAL进行生产(用 GDAL进行栅格数据读写),不同的是,作为基础性的数据服务,所提供的数据格式不仅仅局限于用于显示的 jpg或者 png格式。在当前应用需求下,通过扩展,增加了对DEM数据的支持。这样,瓦片服务将更加灵活,tile的大小不局限于 256×256,如本应用需求中所需的DEM数据瓦片就是 150× 150大小。数据调用方通过元数据服务了解 DEM瓦片数据的存储格式,就可以以URL方式进行调度并使用。

2.数据组织方式与数据索引

由于空间数据具有数据量大、数据类型多样、表达形式复杂的特点,各种空间操作计算量大,因此空间索引的有无及其性能的发挥直接影响到空间数据引擎和地理信息服务网格的整体性能[5]。类似于 GoogleMaps,本系统瓦片数据采用分级组织方式,既可以采用文件系统方式组织数据,也可以分级存储于数据库中。

在文件系统模式下,同一级别数据存储在同一目录下。各级数据配置用标准 XML格式文件作为当前目录的索引,具体格式参见图 2。

图2 文件组织方式

在数据库存储模式下,数据组织采用与文件存储类似的方案,不同的是,同级别数据以大对象格式存储于有固定标识的一批数据表中,即一个数据表相当于一个文件目录。元数据也存储于相关的数据库表中。

采用这种方式组织数据的优势为:系统初始化时,首先将索引信息与元数据信息加载到内存中。系统收到数据请求时,在内存中快速分级检索,如果检索到数据,则直接定位到数据叶结点的文件路径下,如果是数据库模式则读出该记录。

四、应用服务器模块与接口设计

1.基于 ISAPI的应用程序模块

ISAPI(internet server application program interface)是微软提供的一套面向Web服务的API接口,它能实现 CGI(公共网关接口)提供的全部功能。ISAPI应用大多数以 DLL动态库的形式使用,可以在被用户请求后执行,在处理完一个用户请求后不会马上消失,而是继续驻留在内存中等待处理别的用户输入。此外,ISAPI的DLL应用程序和Web服务器处于同一个进程中,效率要明显高于 CGI。

对于本系统 ISAPI应用程序模块,数据库模式数据源在系统初始化时,会自动建立一个可伸缩的数据库连接池。数据库连接池通过提供一套连接的分配、使用策略,来解决连接频繁分配、释放所造成的问题,最终实现高效的连接、安全的复用[6]。而对文件系统则需要对索引文件进行加载。大量数据请求并发而来时,可以同时从多个连接池栈中获取数据库连接,用于从数据库中获取数据,或者从索引中快速定位并读取数据。通过对系统相关配置,可以实时对当前系统的运行配置状态进行动态调整。由于数据在服务器端,数据安全可以得到保证,而且由于只需处理用户请求的区域,数据传输量恒定,不会随着数据量加大而导致性能线性下降[7]。

2.基于OGC标准的元数据服务接口与数据服务接口

接口设计是系统多种地理信息服务应用实现数据共享的关键所在。本系统数据服务接口基于OGC标准设计,数据与服务通讯借助 URL来实现,每个数据瓦片 tile通过一个URL来唯一定位。URL的结构为:http:∥host[:port]/path[?{name=[value]&}][8]。本系统目前支持 DescribeTiles与 Get-Tile两种操作。

DescribeTiles操作用于获取服务元数据,服务元数据描述了服务的信息内容以及服务器可以接受的请求参数值。元数据的请求字符串为:

http:∥127.0.0.1/mapserver.dll?SERV ICE= WMS&VERS ION=*&REQUEST=DescribeTiles。

返回结果采用 xml格式文档来描述,基本元素包括:"WMS_DescribeTilesResponse","TiledLayer","TiledStyles","TiledFor mats","TiledDimension","Value","TiledCrs","TileMatrixSet","Tile-Matrix","NonEmptyString"等节点。

GetTile操作用于请求数据,服务器会对应返回符合URL请求参数的各种格式的地图数据瓦片。本系统目前支持两种基本的数据格式,png/jpeg图片与栅格数据瓦片。其中 png/jpeg图片主要用于显示使用,而栅格数据与DEM数据主要用于计算与三维建模。基本请求格式为:http:∥127.0.0.1/ mapserver.dll??SERV I CE=WMS&VERS ION=*&REQUEST=GetTile&LAYER=*&STYLE=*&CRS=*&FORMAT=*&SCALE=*&T IME=*&T ILEROW=*&T ILECOL=*。

五、系统测试与系统应用

1.系统测试结果与分析

在W indow XP/Server 2003环境下,通过配置IIS+SQL Server 2000集成运行环境,进行系统压力测试。测试结果参见表 1。

表1 压力测试结果

从表 1分析可知,在一定并发量请求下,通过配置符合系统环境的数据库连接池,系统具备以较高的服务性能响应数据服务请求的能力。

2.系统应用

目前该系统已经在实际项目中部署应用,可以同时为二维与三维应用提供各种服务。在二维应用中,可以通过OpenLayers(JavaScript编写)在 IE中显示浏览影像数据。在三维地理信息系统中,对外同时提供DEM与影像瓦片数据服务,响应速度良好。其中DEM数据用于显示地形,影像数据在对应地理位置进行背景显示。

[1] 刘岳峰.地理信息服务概述[J].地理信息世界,2004, 2(6):26-29.

[2] 唐桂芬.面向地理数据服务的集成空间查询处理技术[D].长沙:国防科学技术大学,2007.

[3] 任建武,闾国年,王桥.多层体系 GIS与模型集成研究[J].测绘学报,2003,32(2):178-182.

[4] 符海月,赵军,李慢春.从 Google Maps看我国全球化地理信息服务面临的挑战和对策[J].地理与地理信息科学,2006,22(2):1-3.

[5] 李科,游雄.地理信息服务网格关键技术研究[C]∥第十届中国科协年会论文集.郑州:[s.n.],2008.

[6] 王继周,李成名,付俊娥.面向分布式异构数据库的WebGIS连接池服务研究[J].地理与地理信息科学, 2003,19(3):18-21.

[7] 刘志勇,许晓宏,邵彦蕊.网络地图发布技术研究[J].测绘与空间地理信息,2007,30(2):112-115.

[8] Open Geospatial Consortium Inc.OpenGIS Tiled WMS Discussion Paper[EB/OL].(2010-01-02)[2010-01-15].http:∥www.opengeospatial.org.

Study on Tile Service for Raster Data Based on ISAPI

KANG Xiaochen,ZHANG Yanling,YAN Haowen

0494-0911(2010)07-0012-03

P208

B

2010-01-19

多尺度地理空间相似关系计算模型及其在地图自动综合中的应用研究(40871208)

亢晓琛(1983—),男,山西襄汾人,硕士生,主要从事网络地理信息系统研究。

猜你喜欢
栅格数据数据服务瓦片
地理空间大数据服务自然资源调查监测的方向分析
一种基于主题时空价值的服务器端瓦片缓存算法
惯性
如何运用税收大数据服务供给侧结构性改革
基于频繁子图挖掘的数据服务Mashup推荐
面向移动GIS的快速检索方法研究
基于GDAL的标准图幅生成及数据批量裁剪方法*1
基于Libevent的栅格数据服务引擎设计与实现
基于ArcGISEngine的南水北调工程基础栅格数据管理
一种基于数据服务超链进行情景数据集成的方法*