摘 要: 本文提出了基于J2EE的分布式海量影像數(shù)據(jù)分發(fā)服務(wù)架構(gòu),并重點討論了海量影像數(shù)據(jù)的索引、影像分發(fā)服務(wù)的多級緩存、基于服務(wù)集群的分發(fā)服務(wù)等關(guān)鍵技術(shù)。采用VC++6.0、EVC++4.0、JBuilder2005等開發(fā)工具開發(fā)了基于J2EE的海量影像動態(tài)分發(fā)服務(wù)系統(tǒng)。
關(guān)鍵詞: 移動GIS J2EE技術(shù) 中間件
隨著計算機硬件存儲設(shè)備容量的增加,實現(xiàn)海量影像數(shù)據(jù)的存儲已不是難題。國內(nèi)外學(xué)者對于海量影像數(shù)據(jù)的管理和發(fā)布做了大量深入的研究和實踐工作。如OGC制定了影像信息服務(wù)接口,并且有一個示范網(wǎng)站[1];微軟公司發(fā)布了基于Internet的影像數(shù)據(jù)庫Microsoft TerraServer。國內(nèi)對于影像數(shù)據(jù)分布的研究主要集中在基于Internet的遙感影像發(fā)布,系統(tǒng)的結(jié)構(gòu)多采用B/S結(jié)構(gòu)的Java Applet或基于COM的ActiveX技術(shù)。但是,基于以上方法的遙感影像分發(fā)系統(tǒng),在處理分布式空間數(shù)據(jù)庫存儲、多分辯率、多尺度的遙感影像以及處理面向移動GIS終端的影像發(fā)布等方面存在不足,而且不能實現(xiàn)分發(fā)服務(wù)端與應(yīng)用終端的動態(tài)交互。
對此,本文在采用基于J2EE的分布式海量影像分發(fā)服務(wù)系統(tǒng)平臺的基礎(chǔ)上,重點探討海量影像數(shù)據(jù)的索引、海量影像分發(fā)的多級緩存機制以及基于多服務(wù)群集的海量影像分發(fā)等關(guān)鍵技術(shù)。在此基礎(chǔ)上,實現(xiàn)向移動終端動態(tài)分發(fā)實時、準確的影像數(shù)據(jù),并可實時監(jiān)測數(shù)據(jù)訂單,從而實現(xiàn)海量影像數(shù)據(jù)動態(tài)分發(fā)服務(wù)。
1 基于中間件的分布式海量影像數(shù)據(jù)分發(fā)服務(wù)體系結(jié)構(gòu)
隨著信息技術(shù)和分布式技術(shù)的發(fā)展,空間信息服務(wù)系統(tǒng)軟件體系結(jié)構(gòu)由最初的基于客戶端/服務(wù)器(Client/Server)結(jié)構(gòu)二層模式,發(fā)展到三層或多層的瀏覽器/服務(wù)器結(jié)構(gòu)。目前,最主流的分布式應(yīng)用是集成分布式對象計算技術(shù)與網(wǎng)絡(luò)技術(shù)、嵌入式移動計算技術(shù)。由于海量影像數(shù)據(jù)分發(fā)服務(wù)中的影像數(shù)據(jù)是分布式的,因而本文提出了基于中間件的分布式海量影像數(shù)據(jù)分發(fā)服務(wù)模型。該服務(wù)模型具有以下優(yōu)點:(1)在進程管理方面,用盡量少的服務(wù)進程處理盡量多的請求,減少進程的啟動/終止次數(shù)。(2)在安全性方面,將客戶端與數(shù)據(jù)庫和接口隔離起來,客戶端無權(quán)直接訪問數(shù)據(jù)庫和接口適配器,有利于安全管理,可有效地防止惡意攻擊。(3)可利用中間件的特點來選擇路由、平衡負載,提高整個系統(tǒng)的性能。(4)利用中間件實現(xiàn)應(yīng)用遠程服務(wù)和本地進程間的通信,以實現(xiàn)多進程的服務(wù)模型。
圖1為基于J2EE的分布式海量影像數(shù)據(jù)分發(fā)服務(wù)體系結(jié)構(gòu)。其主要包括以下內(nèi)容。
(1)客戶端。在移動GIS客戶端可隨時、隨地、依地理范圍、影像數(shù)據(jù)類型、分辯率、數(shù)據(jù)獲取時間等條件向影像數(shù)據(jù)分發(fā)服務(wù)端發(fā)出數(shù)據(jù)訂單,并可實現(xiàn)影像數(shù)據(jù)動態(tài)下載更新和瀏覽顯示。
(2)Web服務(wù)器。運行在Apache Tomcat服務(wù)器上的Web服務(wù)器,采用Servlet引擎和JSP技術(shù)實現(xiàn),是移動終端與應(yīng)用服務(wù)器間通信的中轉(zhuǎn)器,在接收到移動終端的數(shù)據(jù)訂單后進行解析并轉(zhuǎn)換成應(yīng)用服務(wù)器的數(shù)據(jù)請求。應(yīng)用服務(wù)器生成訂單所需的數(shù)據(jù)后發(fā)送到Web服務(wù)器,Web服務(wù)器通知移動終端進行數(shù)據(jù)下載。
(3)應(yīng)用服務(wù)器。應(yīng)用服務(wù)器主要包括集群服務(wù)器和應(yīng)用服務(wù)器等。集群服務(wù)器可根據(jù)負載情況動態(tài)地將請求分配到相應(yīng)的應(yīng)用服務(wù)器。
(4)數(shù)據(jù)服務(wù)器。數(shù)據(jù)庫服務(wù)器主要包括影像數(shù)據(jù)庫、矢量數(shù)據(jù)庫、元數(shù)據(jù)庫以及影像數(shù)據(jù)文件等。為了提高系統(tǒng)的性能,數(shù)據(jù)庫服務(wù)器采用由兩臺小型機組成的雙機熱備集群系統(tǒng),集群方式采用雙機互備援的方式。
2 海量影像數(shù)據(jù)分發(fā)服務(wù)的關(guān)鍵技術(shù)
基于J2EE的分布式海量影像數(shù)據(jù)服務(wù)平臺分發(fā)影像數(shù)據(jù)時,其主要處理和計算集成在應(yīng)用服務(wù)層[3]。應(yīng)用服務(wù)層要對多個移動終端的不同范圍、不同分辯率、不同尺度的影像數(shù)據(jù)申請訂單,經(jīng)過數(shù)據(jù)格式轉(zhuǎn)換、壓縮和加密等處理后傳輸?shù)揭苿咏K端進行瀏覽和分析。這需要對海量影像數(shù)據(jù)進行高效索引和建立必要的數(shù)據(jù)緩存,同時中間應(yīng)用層必須能有效處理多個用戶的并發(fā)訪問操作。此外由于面向移動終端的網(wǎng)絡(luò)帶寬有限且不穩(wěn)定,因而在移動終端必須實現(xiàn)影像數(shù)據(jù)的多線程斷點續(xù)傳。對此,本文根據(jù)影像數(shù)據(jù)的特點,著重對海量影像數(shù)據(jù)的索引、數(shù)據(jù)緩存的建立、多用戶的并發(fā)訪問操作和影像數(shù)據(jù)的多線程斷點續(xù)傳等關(guān)鍵技術(shù)進行探討。
2.1 海量影像數(shù)據(jù)的索引
本文將影像數(shù)據(jù)的空間(影像數(shù)據(jù)范圍的外接矩形)格網(wǎng)分為兩級。一級用于影像數(shù)據(jù)分發(fā)服務(wù)系統(tǒng)內(nèi)部使用,影像分發(fā)服務(wù)系統(tǒng)的本地數(shù)據(jù)按照一級格網(wǎng)存儲,實現(xiàn)影像數(shù)據(jù)的快速訪問;二級格網(wǎng)用于數(shù)據(jù)分發(fā),移動終端數(shù)據(jù)(包括海量影像數(shù)據(jù)分發(fā)服務(wù)端緩存區(qū)和移動終端本地數(shù)據(jù))按照二級格網(wǎng)存儲[2]。
(1)格網(wǎng)的劃分方法。根據(jù)總的影像數(shù)據(jù)范圍,按照影像數(shù)據(jù)分辨率大小進行格網(wǎng)的劃分。一級格網(wǎng)每一網(wǎng)格的數(shù)據(jù)量控制在500MB以下,二級格網(wǎng)每一網(wǎng)格的數(shù)據(jù)量控制在25MB以下。下面對不同分辨率下的覆蓋范圍和數(shù)據(jù)量進行分析(表1、表2及下文中的所有壓縮均指基于小波變換的有損壓縮。在特殊情況下,如果使用完全無損壓縮,壓縮比例一般為2~5倍)。根據(jù)表1和表2計算結(jié)果,一級格網(wǎng)將使用12K*12KB劃分,1m分辨率影像的覆蓋范圍為12km*12km,2m分辨率影像覆蓋范圍為24km*24km,5m分辨率影像覆蓋范圍為60km*60km;二級格網(wǎng)將使用1KB*1KB劃分,1m分辨率影像為1km*1km,2m分辨率影像為2km*2km,5m分辨率影像為5km*5km。
本文中格網(wǎng)索引物理上分為四個圖層,包括:一級格網(wǎng)、二級格網(wǎng)和一級索引、二級索引。一級格網(wǎng)、二級格網(wǎng)采用規(guī)則的矩形索引,主要用于影像數(shù)據(jù)的分發(fā)。一級索引、二級索引采用非規(guī)則的多邊形索引,主要用于影像數(shù)據(jù)的快速檢索。
(2)格網(wǎng)索引的應(yīng)用。索引的應(yīng)用包括:索引圖、樹狀索引、格網(wǎng)索引。在數(shù)據(jù)準備階段,首先建立整個區(qū)域簡要的索引圖,用于快速顯示,該部分數(shù)據(jù)保存在數(shù)據(jù)源文件中;然后創(chuàng)建區(qū)域數(shù)據(jù)的樹狀索引;最后創(chuàng)建格網(wǎng)索引。在移動終端的系統(tǒng)數(shù)據(jù)預(yù)裝階段,上述索引文件被導(dǎo)入各類移動終端中,作為數(shù)據(jù)管理的基礎(chǔ)框架。
2.2 基于元數(shù)據(jù)的分布式海量影像數(shù)據(jù)檢索
由于要分發(fā)的影像數(shù)據(jù)是異構(gòu)、多源且分布式的,因而海量影像分發(fā)服務(wù)系統(tǒng)必須能實現(xiàn)分布式的影像數(shù)據(jù)檢索?;谠獢?shù)據(jù)的影像數(shù)據(jù)快速檢索系統(tǒng)的主要作用是管理影像數(shù)據(jù)分發(fā)服務(wù)系統(tǒng)中的空間信息和其他相關(guān)信息,并在系統(tǒng)收到移動終端的請求時,快速檢索到滿足條件的影像數(shù)據(jù),經(jīng)確認、提取、處理、轉(zhuǎn)換和壓縮后向移動終端發(fā)送。為了能夠支持后臺并發(fā)查詢,元數(shù)據(jù)檢索服務(wù)系統(tǒng)以客戶端/服務(wù)器(C/S)方式實現(xiàn)。為了能夠支持統(tǒng)一管理多種異構(gòu)數(shù)據(jù)、快速查詢和迅速確認所需空間信息,數(shù)據(jù)的查詢和管理通過元數(shù)據(jù)(也可稱作“索引數(shù)據(jù)”)進行。為了保證元數(shù)據(jù)查詢速度和數(shù)據(jù)存取效率,元數(shù)據(jù)采用數(shù)據(jù)庫管理,影像數(shù)據(jù)采用文件系統(tǒng)管理。圖2為基于數(shù)據(jù)的海量影像數(shù)據(jù)檢索與分發(fā)流程。
2.3 影像分發(fā)的多級緩存機制
在提高多用戶的海量影像分發(fā)的速度和效率上,緩存機制是有效的手段。本文通過在服務(wù)器端和移動終端實現(xiàn)高效的數(shù)據(jù)緩存和應(yīng)用緩存,可以加快海量影像分發(fā)的速度和減少用戶響應(yīng)時間。影像分發(fā)緩存中包括客戶端緩存和服務(wù)端緩存,訂單緩存用于緩存移動終端的訂單,同時在影像分發(fā)服務(wù)端將對每個移動終端建立一個分發(fā)數(shù)據(jù)緩存,將服務(wù)端動態(tài)數(shù)據(jù)處理過程生成的數(shù)據(jù)放在服務(wù)端的處理結(jié)果緩存中,客戶端緩存主要實現(xiàn)對接收影像數(shù)據(jù)的緩存。
2.4 基于多服務(wù)集群的海量影像數(shù)據(jù)分發(fā)服務(wù)
由于海量影像分發(fā)服務(wù)面向多用戶并發(fā)訪問,所以要求服務(wù)系統(tǒng)的安全性和可靠性盡可能高,并且要解決多用戶并發(fā)訪問情況下的系統(tǒng)性能問題。為此,本文在海量影像分發(fā)服務(wù)系統(tǒng)的軟硬件架構(gòu)上采用了集群技術(shù)。
集群技術(shù)的最大特點之一是能夠?qū)崿F(xiàn)負載均衡。以Web服務(wù)器為例,在一個集群結(jié)構(gòu)的服務(wù)器組中,必然有一臺服務(wù)器充當管理者的角色,它最先收到用戶發(fā)來的HTTP、FTP或其他類型的Web請求,然后判斷集群中哪臺服務(wù)器的負載最輕,并把這個請求發(fā)送過去。在用戶訪問頻率較低時,這種負載均衡表現(xiàn)的不會很明顯,而一旦用戶的請求量增大后,這種優(yōu)勢就會顯現(xiàn)出來。集群的另一個優(yōu)點是容錯性好,如果集群管理服務(wù)器發(fā)現(xiàn)集群中有一個節(jié)點出現(xiàn)故障,則它會將連在該節(jié)點上的連接重定向到其他節(jié)點機上。在重定向的過程中,有時會出現(xiàn)一些連接丟失的現(xiàn)象。因此重定向過程的時間長短以及用戶連接丟失的比率是考核該集群系統(tǒng)的一個重要依據(jù)。同時,由于采用了一種松散耦合的模式,集群中的各個節(jié)點機使用TCP/IP或其他網(wǎng)絡(luò)協(xié)議,通過標準的網(wǎng)絡(luò)設(shè)備連接在一起,可以非常方便地添加或更換集群中的單個節(jié)點機。因此,松散耦合的集群系統(tǒng)有較好的可擴展性。
基于上述理論,本文對Oracle數(shù)據(jù)庫服務(wù)、J2EE中間件服務(wù)和影像數(shù)據(jù)分發(fā)服務(wù)進行系統(tǒng)集群。其總體結(jié)構(gòu)如圖3所示。
3 系統(tǒng)實現(xiàn)
面向移動終端的海量影像動態(tài)分發(fā)服務(wù)系統(tǒng)使用基于J2EE軟件平臺實現(xiàn)。該系統(tǒng)從程序結(jié)構(gòu)上主要分為影像服務(wù)端和移動終端兩部分。影像動態(tài)服務(wù)端主要實現(xiàn)訂單的管理和海量影像數(shù)據(jù)的快速檢索、動態(tài)分割、壓縮與格式轉(zhuǎn)換等功能;移動終端需要從影像服務(wù)端預(yù)裝一個GIS可執(zhí)行程序,可實現(xiàn)影像與矢量數(shù)據(jù)的瀏覽、信息查詢、數(shù)據(jù)申請、導(dǎo)航等功能?;贘2EE的海量影像動態(tài)分發(fā)服務(wù)系統(tǒng)采用BEA公司的WebLogic8.1作為分布式海量影像分發(fā)服務(wù)的J2EE平臺,使用數(shù)據(jù)事務(wù)(Data Transaction)技術(shù)保證數(shù)據(jù)讀寫的安全性;采用Web服務(wù)技術(shù)實現(xiàn)基于Internet的空間信息服務(wù)、共享與互操作。服務(wù)端系統(tǒng)使用Jbuilder2005和VC++6.0進行開發(fā);移動終端系統(tǒng)采用Evc4.0+SP4進行開發(fā);大型關(guān)系數(shù)據(jù)庫采用Oracle9i。
基于以上系統(tǒng),本文分別在100M局域網(wǎng)和海量衛(wèi)星網(wǎng)絡(luò)條件下做了實驗與分析。實驗條件描述如下:
(1)數(shù)據(jù)庫服務(wù)器與應(yīng)用服務(wù)器同時布署在PIII Tualatin CPU 1.13GHz、內(nèi)存為1GB的服務(wù)器上,操作系統(tǒng)為Windows 2000 Advanced Server,實驗數(shù)據(jù)是某地區(qū)0.61米分辯率的快鳥影像,數(shù)據(jù)量大小為3.3GB。客戶端為P42GB以上,512MB內(nèi)存,操作系統(tǒng)為Windows 2000 Professional,采用Internet 5.0瀏覽器,基于COM組件開發(fā)的客戶端程序進行海量影像的申請與瀏覽。網(wǎng)絡(luò)條件為100M的以太局域網(wǎng)。
(2)數(shù)據(jù)庫服務(wù)器及應(yīng)用服務(wù)器與(1)相同??蛻舳藶镮ntel Xscale 255,主頻為400MB,內(nèi)存64MB,閃存32MB的移動終端,外接電子盤1GB,操作系統(tǒng)為Windows CE4.2,網(wǎng)絡(luò)為5.6kbps速率的海事衛(wèi)星網(wǎng)絡(luò)。
實驗結(jié)果:(1)三個終端同時申請一塊4km?鄢4km的0.61米分辯率的快鳥影像,影像動態(tài)處理、下載與顯示的時間為4分鐘左右。(2)三個移動終端同時申請一塊325KB的影像,影像數(shù)據(jù)的下載與顯示瀏覽的時間約為5秒。
4 結(jié) 論
本文對分布式海量影像數(shù)據(jù)分發(fā)服務(wù)體系結(jié)構(gòu)進行了介紹。重點探討和分析了影像數(shù)據(jù)的索引、多級緩存、多服務(wù)集群等關(guān)鍵技術(shù)?;谥虚g件的分布式海量影像分發(fā)服務(wù)模型能實現(xiàn)向移動GIS終端實時、動態(tài)地分發(fā)海量影像數(shù)據(jù)?;诙嗉壐窬W(wǎng)的影像數(shù)據(jù)索引不僅可以提高分發(fā)服務(wù)系統(tǒng)內(nèi)部海量影像訪問速度,還可以提高面向移動終端的影像分發(fā)效率?;谠獢?shù)據(jù)的影像數(shù)據(jù)檢索可以實現(xiàn)分布式、多源異構(gòu)海量影像數(shù)據(jù)的檢索與提取。采用多級緩存技術(shù)和多服務(wù)集群技術(shù)在處理多用戶的并發(fā)訪問時可實現(xiàn)負載平衡和并發(fā)操作。隨著移動通信和空間信息服務(wù)技術(shù)的發(fā)展以及市場和社會需求的推動,面向移動GIS的影像數(shù)據(jù)分發(fā)服務(wù)將具有更廣闊的應(yīng)用前景。
參考文獻
1 王密.大型無縫影像數(shù)據(jù)庫系統(tǒng)的研制與可量測虛擬現(xiàn)實的可行性研究.武漢:武漢大學(xué)出版社,2001
2 許盛偉.基于中間件的分布式空間信息服務(wù)相關(guān)理論及其關(guān)鍵技術(shù)研究.中科院研究生院博士學(xué)位論文,2005
3 陳靜,龔健雅,朱欣焰等.海量影像數(shù)據(jù)的Web發(fā)布與實現(xiàn). 測繪通報,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)