摘 要:本文提出了基于J2EE的分布式海量影像数据分发服务架构,并重点讨论了海量影像数据的索引、影像分发服务的多级缓存、基于服务集群的分发服务等关键技术。采用VC++6.0、EVC++4.0、JBuilder2005等开发工具开发了基于J2EE的海量影像动态分发服务系统。
关键词:移动GISJ2EE技术中间件
随着计算机硬件存储设备容量的增加,实现海量影像数据的存储已不是难题。国内外学者对于海量影像数据的管理和发布做了大量深入的研究和实践工作。如OGC制定了影像信息服务接口,并且有一个示范网站[1];微软公司发布了基于Internet的影像数据库Microsoft TerraServer。国内对于影像数据分布的研究主要集中在基于Internet的遥感影像发布,系统的结构多采用B/S结构的Java Applet或基于COM的ActiveX技术。但是,基于以上方法的遥感影像分发系统,在处理分布式空间数据库存储、多分辩率、多尺度的遥感影像以及处理面向移动GIS终端的影像发布等方面存在不足,而且不能实现分发服务端与应用终端的动态交互。
对此,本文在采用基于J2EE的分布式海量影像分发服务系统平台的基础上,重点探讨海量影像数据的索引、海量影像分发的多级缓存机制以及基于多服务群集的海量影像分发等关键技术。在此基础上,实现向移动终端动态分发实时、准确的影像数据,并可实时监测数据订单,从而实现海量影像数据动态分发服务。
1 基于中间件的分布式海量影像数据分发服务体系结构
随着信息技术和分布式技术的发展,空间信息服务系统软件体系结构由最初的基于客户端/服务器(Client/Server)结构二层模式,发展到三层或多层的浏览器/服务器结构。目前,最主流的分布式应用是集成分布式对象计算技术与网络技术、嵌入式移动计算技术。由于海量影像数据分发服务中的影像数据是分布式的,因而本文提出了基于中间件的分布式海量影像数据分发服务模型。该服务模型具有以下优点:(1)在进程管理方面,用尽量少的服务进程处理尽量多的请求,减少进程的启动/终止次数。(2)在安全性方面,将客户端与数据库和接口隔离起来,客户端无权直接访问数据库和接口适配器,有利于安全管理,可有效地防止恶意攻击。(3)可利用中间件的特点来选择路由、平衡负载,提高整个系统的性能。(4)利用中间件实现应用远程服务和本地进程间的通信,以实现多进程的服务模型。
图1为基于J2EE的分布式海量影像数据分发服务体系结构。其主要包括以下内容。
(1)客户端。在移动GIS客户端可随时、随地、依地理范围、影像数据类型、分辩率、数据获取时间等条件向影像数据分发服务端发出数据订单,并可实现影像数据动态下载更新和浏览显示。
(2)Web服务器。运行在Apache Tomcat服务器上的Web服务器,采用Servlet引擎和JSP技术实现,是移动终端与应用服务器间通信的中转器,在接收到移动终端的数据订单后进行解析并转换成应用服务器的数据请求。应用服务器生成订单所需的数据后发送到Web服务器,Web服务器通知移动终端进行数据下载。
(3)应用服务器。应用服务器主要包括集群服务器和应用服务器等。集群服务器可根据负载情况动态地将请求分配到相应的应用服务器。
(4)数据服务器。数据库服务器主要包括影像数据库、矢量数据库、元数据库以及影像数据文件等。为了提高系统的性能,数据库服务器采用由两台小型机组成的双机热备集群系统,集群方式采用双机互备援的方式。
2 海量影像数据分发服务的关键技术
基于J2EE的分布式海量影像数据服务平台分发影像数据时,其主要处理和计算集成在应用服务层[3]。应用服务层要对多个移动终端的不同范围、不同分辩率、不同尺度的影像数据申请订单,经过数据格式转换、压缩和加密等处理后传输到移动终端进行浏览和分析。这需要对海量影像数据进行高效索引和建立必要的数据缓存,同时中间应用层必须能有效处理多个用户的并发访问操作。此外由于面向移动终端的网络带宽有限且不稳定,因而在移动终端必须实现影像数据的多线程断点续传。对此,本文根据影像数据的特点,着重对海量影像数据的索引、数据缓存的建立、多用户的并发访问操作和影像数据的多线程断点续传等关键技术进行探讨。
2.1 海量影像数据的索引
本文将影像数据的空间(影像数据范围的外接矩形)格网分为两级。一级用于影像数据分发服务系统内部使用,影像分发服务系统的本地数据按照一级格网存储,实现影像数据的快速访问;二级格网用于数据分发,移动终端数据(包括海量影像数据分发服务端缓存区和移动终端本地数据)按照二级格网存储[2]。
(1)格网的划分方法。根据总的影像数据范围,按照影像数据分辨率大小进行格网的划分。一级格网每一网格的数据量控制在500MB以下,二级格网每一网格的数据量控制在25MB以下。下面对不同分辨率下的覆盖范围和数据量进行分析(表1、表2及下文中的所有压缩均指基于小波变换的有损压缩。在特殊情况下,如果使用完全无损压缩,压缩比例一般为2~5倍)。根据表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请求,然后判断集群中哪台服务器的负载最轻,并把这个请求发送过去。在用户访问频率较低时,这种负载均衡表现的不会很明显,而一旦用户的请求量增大后,这种优势就会显现出来。集群的另一个优点是容错性好,如果集群管理服务器发现集群中有一个节点出现故障,则它会将连在该节点上的连接重定向到其他节点机上。在重定向的过程中,有时会出现一些连接丢失的现象。因此重定向过程的时间长短以及用户连接丢失的比率是考核该集群系统的一个重要依据。同时,由于采用了一种松散耦合的模式,集群中的各个节点机使用TCP/IP或其他网络协议,通过标准的网络设备连接在一起,可以非常方便地添加或更换集群中的单个节点机。因此,松散耦合的集群系统有较好的可扩展性。
基于上述理论,本文对Oracle数据库服务、J2EE中间件服务和影像数据分发服务进行系统集群。其总体结构如图3所示。
3 系统实现
面向移动终端的海量影像动态分发服务系统使用基于J2EE软件平台实现。该系统从程序结构上主要分为影像服务端和移动终端两部分。影像动态服务端主要实现订单的管理和海量影像数据的快速检索、动态分割、压缩与格式转换等功能;移动终端需要从影像服务端预装一个GIS可执行程序,可实现影像与矢量数据的浏览、信息查询、数据申请、导航等功能。基于J2EE的海量影像动态分发服务系统采用BEA公司的WebLogic8.1作为分布式海量影像分发服务的J2EE平台,使用数据事务(Data Transaction)技术保证数据读写的安全性;采用Web服务技术实现基于Internet的空间信息服务、共享与互操作。服务端系统使用Jbuilder2005和VC++6.0进行开发;移动终端系统采用Evc4.0+SP4进行开发;大型关系数据库采用Oracle9i。
基于以上系统,本文分别在100M局域网和海量卫星网络条件下做了实验与分析。实验条件描述如下:
(1)数据库服务器与应用服务器同时布署在PIII Tualatin CPU 1.13GHz、内存为1GB的服务器上,操作系统为Windows 2000 Advanced Server,实验数据是某地区0.61米分辩率的快鸟影像,数据量大小为3.3GB。客户端为P42GB以上,512MB内存,操作系统为Windows 2000 Professional,采用Internet 5.0浏览器,基于COM组件开发的客户端程序进行海量影像的申请与浏览。网络条件为100M的以太局域网。
(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的影像数据分发服务将具有更广阔的应用前景。
参考文献
1 王密.大型无缝影像数据库系统的研制与可量测虚拟现实的可行性研究.武汉:武汉大学出版社,2001
2 许盛伟.基于中间件的分布式空间信息服务相关理论及其关键技术研究.中科院研究生院博士学位论文,2005
3 陈静,龚健雅,朱欣焰等.海量影像数据的Web发布与实现. 测绘通报,2004;(1)
4 Kim M J,Lee E.The Spatial Data Server Based On Open GIS Standards In Heterogenous Distributed Environment. Geoinformatics.SWEDEN,GAVLE,2004
5 陈静,龚健雅,朱欣焰等.基于J2EE的分布式Web GIS.测绘通报,2004;(2)