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