随着计算机硬件存储设备容量的增加,国内外学者对于海量影像数据的管理和发布做了大量深入的研究和实践工作。目前,多数GIS软件都可以将数字正射影像数据、遥感数据作为背景影像与矢量数据、DEM数据进行套合显示。而在像以公路、铁路的勘测设计、军事,海洋等GIS的应用中,以图幅(影像文件)为对象的处理难以满足实际应用的需要,也难以实现以影像数据快速更新GIS数据的目的。另一方面,随着遥感技术的不断发展,采集的影像数据量正在呈几何级数增长,现有的GIS软件难以组织、调度、存储与管理这样的海量数据,更没有考虑多数据源、多比例尺、多时相影像数据的统一管理和集成的问题,而国内数字化生产和国家基础地理信息产业建设又迫切需要高效、快捷地存储与管理这样的影像数据。
对此,本文在采用基于J2EE的分布式海量影像分发服务系统平台的基础上,重点探讨海量影像数据的索引、海量影像分发的多级缓存机制以及基于多服务群集的海量影像分发等关键技术。J2EE是一套全然不同于传统应用开发的技术架构,包含许多组件,主要可简化且规范应用系统的开发与部署,进而提高可移植性、安全与再用价值。
1 基于中间件的分布式海量影像数据分发服务体系结构
随着信息技术和分布式技术的发展,空间信息服务系统软件体系结构由初的基于客户端/服务器结构二层模式,发展到三层或多层的浏览器/服务器结构。目前,主流的分布式应用是集成分布式对象计算技术与网络技术、嵌入式移动计算技术。由于海量影像数据分发服务中的影像数据是分布式的,服务模型具有以下优点:(1)在进程管理方面,用尽量少的服务进程处理尽量多的请求,减少进程的启动/终止次数。(2)在安全性方面,将客户端与数据库和接口隔离起来,客户端无权直接访问数据库和接口适配器,有利于安全管理,可有效地防止恶意攻击。(3)可利用中间件的特点来选择路由、平衡负载,提高整个系统的性能。(4)利用中间件实现应用远程服务和本地进程间的通信,以实现多进程的服务模型。
图1为基于J2EE的分布式海量影像数据分发服务体系结构。其主要包括以下内容。
(1)客户端:在移动GIS客户端可随时、随地、依地理范围、影像数据类型、分辩率、数据获取时间等条件向影像数据分发服务端发出数据订单,并可实现影像数据动态更新和浏览显示。
(2)Web服务器:运行在Apache Tomcat服务器上的Web服务器,采用Servlet引擎和JSP技术实现,是移动终端与应用服务器间通信的中转器,在接收到移动终端的数据订单后进行解析并转换成应用服务器的数据请求。
(3)应用服务器:应用服务器主要包括集群服务器和应用服务器等。集群服务器可根据负载情况动态地将请求分配到相应的应用服务器。
(4)数据服务器:数据库服务器主要包括影像数据库、矢量数据库、元数据库以及影像数据文件等。为了提高系统的性能,数据库服务器采用由两台小型机组成的双机热备集群系统,集群方式采用双机互备援的方式。
2 海量影像数据分发服务的关键技术
基于J2EE的分布式海量影像数据服务平台分发影像数据时,其主要处理和计算集成在应用服务层。应用服务层要对多个移动终端的不同范围、不同分辩率、不同尺度的影像数据申请订单,经过数据格式转换、压缩和加密等处理后传输到移动终端进行浏览和分析。这需要对海量影像数据进行高效索引和建立必要的数据缓存,同时中间应用层必须能有效处理多个用户的并发访问操作。此外由于面向移动终端的网络带宽有限且不稳定,因而在移动终端必须实现影像数据的多线程断点续传。
2.1 海量影像数据的索引
本文将影像数据的空间格网分为两级。用于影像数据分发服务系统内部使用,影像分发服务系统的本地数据按照格网存储,实现影像数据的快速访问;二级格网用于数据分发,移动终端数据按照二级格网存储。
(1)格网的划分方法:根据总的影像数据范围,按照影像数据分辨率大小进行格网的划分。格网每一网格的数据量控制在500MB以下,二级格网每一网格的数据量控制在25MB以下。下面对不同分辨率下的覆盖范围和数据量进行分析,根据表1和表2计算结果,格网将使用12K*12KB划分,1m分辨率影像的覆盖范围为12km*12km,2m分辨率影像覆盖范围为24km*24km,5m分辨率影像覆盖范围为60km*60km;二级格网将使用1KB*1KB划分,1m分辨率影像为1km*1km,2m分辨率影像为2km*2km,5m分辨率影像为5km*5km。
本文中格网索引物理上分为四个图层,包括:格网、二级格网和索引、二级索引。格网、二级格网采用规则的矩形索引,主要用于影像数据的分发。索引、二级索引采用非规则的多边形索引,主要用于影像数据的快速检索。
(2)格网索引的应用。索引的应用包括:索引图、树状索引、格网索引。在数据准备阶段,首先建立整个区域简要的索引图,用于快速显示,该部分数据保存在数据源文件中;然后创建区域数据的树状索引;创建格网索引。
2.2 基于元数据的分布式海量影像数据检索
由于要分发的影像数据是异构、多源且分布式的,因而海量影像分发服务系统必须能实现分布式的影像数据检索。基于元数据的影像数据快速检索系统的主要作用是管理影像数据分发服务系统中的空间信息和其他相关信息,并在系统收到移动终端的请求时,快速检索到满足条件的影像数据,经确认、提取、处理、转换和压缩后向移动终端发送。为了能够支持后台并发查询,元数据检索服务系统以客户端/服务器(C/S)方式实现。为了能够支持统一管理多种异构数据、快速查询和迅速确认所需空间信息,数据的查询和管理通过元数据进行。为了保证元数据查询速度和数据存取效率,元数据采用数据库管理,影像数据采用文件系统管理。图2为基于数据的海量影像数据检索与分发流程。
2.3 影像分发的多级缓存机制
在提高多用户的海量影像分发的速度和效率上,缓存机制是有效的手段。本文通过在服务器端和移动终端实现高效的数据缓存和应用缓存,可以加快海量影像分发的速度和减少用户响应时间。影像分发缓存中包括客户端缓存和服务端缓存,订单缓存用于缓存移动终端的订单,同时在影像分发服务端将对每个移动终端建立一个分发数据缓存,将服务端动态数据处理过程生成的数据放在服务端的处理结果缓存中,客户端缓存主要实现对接收影像数据的缓存。
2.4 基于多服务集群的海量影像数据分发服务
由于海量影像分发服务面向多用户并发访问,所以要求服务系统的安全性和可靠性尽可能高,并且要解决多用户并发访问情况下的系统性能问题。
集群技术的特点之一是能够实现负载均衡。以Web服务器为例,在一个集群结构的服务器组中,必然有一台服务器充当管理者的角色,它收到用户发来的HTTP、FTP或其他类型的Web请求,然后判断集群中哪台服务器的负载轻,并把这个请求发送过去。在用户访问频率较低时,这种负载均衡表现的不会很明显,而一旦用户的请求量增大后,这种优势就会显现出来。集群的另一个优点是容错性好,如果集群管理服务器发现集群中有一个节点出现故障,则它会将连在该节点上的连接重定向到其他节点机上。因此重定向过程的时间长短以及用户连接丢失的比率是考核该集群系统的一个重要依据。
本文对Oracle数据库服务、J2EE中间件服务和影像数据分发服务进行系统集群。其总体结构如图3所示。
3 系统实现
面向移动终端的海量影像动态分发服务系统使用基于J2EE软件平台实现。影像动态服务端主要实现订单的管理和海量影像数据的快速检索、动态分割、压缩与格式转换等功能;移动终端需要从影像服务端预装一个GIS可执行程序,可实现影像与矢量数据的浏览、信息查询、数据申请、导航等功能。基于J2EE的海量影像动态分发服务系统使用数据事务(Data Transaction)技术保证数据读写的安全性;采用Web服务技术实现基于Internet的空间信息服务、共享与互操作。服务端系统使用Jbuilder2005和VC++6.0进行开发;移动终端系统采用Evc4.0+SP4进行开发;大型关系数据库采用Oracle9i。
基于以上系统,实验条件描述如下:
(1)数据库服务器与应用服务器同时布署在PIII Tualatin CPU 1.13GHz、内存为1GB的服务器上,操作系统为Windows 2000 Advanced Server,实验数据是某地区0.61米分辩率的快鸟影像,数据量大小为3.3GB。客户端为P42GB以上,512MB内存,操作系统为Windows 2000 Professional,采用Internet 5.0浏览器,基于COM组件开发的客户端程序进行海量影像的申请与浏览。
(2)数据库服务器及应用服务器与(1)相同。客户端为Intel Xscale 255,主频为400MB,内存64MB,闪存32MB的移动终端,外接电子盘1GB,操作系统为Windows CE4.2,网络为5.6kbps速率的海事卫星网络。
实验结果:(1)三个终端同时申请一块4km?鄢4km的0.61米分辩率的快鸟影像,影像动态处理、与显示的时间为4分钟左右。(2)三个移动终端同时申请一块325KB的影像,影像数据的与显示浏览的时间约为5秒。
4 结 论
本文对分布式海量影像数据分发服务体系结构进行了介绍。其中重点探讨和分析了影像数据的索引、多级缓存、多服务集群等关键技术。基于中间件的分布式海量影像分发服务模型能实现向移动GIS终端实时、动态地分发海量影像数据。采用多级缓存技术和多服务集群技术在处理多用户的并发访问时可实现负载平衡和并发操作。随着移动通信和空间信息服务技术的发展以及市场和社会需求的推动,面向移动GIS的影像数据分发服务将具有更广阔的应用前景。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。