摘 要: 本文提出了基于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)將使用12K*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í)間長(zhǎng)短以及用戶連接丟失的比率是考核該集群系統(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ù)?;谥虚g件的分布式海量影像分發(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)