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