《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 业界动态 > 基于Applet的WebGIS的开发技术研究

基于Applet的WebGIS的开发技术研究

2009-01-09
作者:黄金中,于大东

WebGIS是在Internet或Intranet網(wǎng)絡(luò)環(huán)境下的一種存儲、處理、分析和顯示地理信息的計算機信息系統(tǒng),它的基本思想就是在互聯(lián)網(wǎng)上讓用戶通過瀏覽器瀏覽地理信息,或者給用戶提供地理信息系統(tǒng)中的數(shù)據(jù)和功能服務(wù)。WebGIS是GIS在Internet上的擴展,用戶可以從WWW的任意一個節(jié)點,瀏覽WebGIS站點中的空間數(shù)據(jù),制作專題地圖,以及進行各種空間檢索和空間分析,從而使GIS走進社會生活的諸多方面。

一、基于Object Web規(guī)范的WebGIS?

大部分WebGIS采用的是CGI/Sever API方法。傳統(tǒng)的CGI和Server API方法,數(shù)據(jù)處理在服務(wù)器端,形成瘦客戶端,任何操作都在服務(wù)器端實現(xiàn),因此效率低,速度慢。另外,由于瀏覽器不能直接讀取矢量圖形,矢量數(shù)據(jù)在網(wǎng)上傳輸就得先在服務(wù)器端轉(zhuǎn)換成柵格圖形數(shù)據(jù),這一轉(zhuǎn)換就使數(shù)據(jù)量增大許多倍,服務(wù)器端的負擔(dān)變得過重,使本已擁擠的網(wǎng)絡(luò)不堪重負,所以,這種方式對于需要進行大量數(shù)據(jù)傳輸?shù)腤ebGIS系統(tǒng)顯然是不合適的。為了解決這個問題,1997年6月誕生了Web的一種分布式對象方案,稱為“Object Web”。 Object Web將是Internet變革中的又一個新浪潮。

基于Object Web規(guī)范的WebGIS又稱為分布式對象WebGIS,這是WebGIS的最新發(fā)展方向。它提供了一種可以伸縮的、由服務(wù)器到服務(wù)器的體系結(jié)構(gòu),服務(wù)器端的對象可以運行在多個服務(wù)器上,從而可以動態(tài)平衡客戶端請求的負載。

目前,有兩套不同的Object Web規(guī)范正在進行著激烈的競爭:一個是Microsoft公司提出的DCOM /ActiveX標準,另一個是Object Management Group和Javasoft公司聯(lián)合推出的CORBA/Java標準。DCOM/ActiveX運行效率較高,但它只能運行于32位Windows系列操作系統(tǒng)。CORBA/Java 在運行速度上仍然不如DCOM/ActiveX。但是,和Java一樣,CORBA/Java規(guī)范的最大優(yōu)勢在于其跨平臺能力,適用于Windows、Macintosh、UNIX、Linux等操作系統(tǒng)。雖然兩個標準的競爭仍然相當激烈,但是我們相信,隨著網(wǎng)絡(luò)技術(shù)的進一步發(fā)展和Linux操作系統(tǒng)市場占有率的提高,具有跨平臺能力的、基于CORBA/Java標準的WebGIS應(yīng)用前景會更加廣闊。下面將具體介紹基于Java Applet進行WebGIS開發(fā)的技術(shù)和優(yōu)勢。

二、利用Java Applet開發(fā)WebGIS客戶端的優(yōu)勢

1、AWT中的2D API(二維應(yīng)用程序接口)

JFC中AWT除了給用戶提供基本的界面構(gòu)件用來建立圖形界面之外,AWT目前包含了大量的2D API,可以進行更高級的圖形和圖像操作。2D API是由一組具有2D功能的圖形和圖像類組成,對圖形、圖像及其操作提供了良好的面向?qū)ο穹庋b。在2D API中包含的軟件包如下:

Java.awt.color

Java.awt.font

Java.awt.geom

Java.awt.print

所以用戶選擇Java進行圖形開發(fā),首先就要看Java能否提供滿足用戶需要的圖形和圖像操作能力。Java Applet是一個擴展容器Panel類的子類,類的繼承層次圖如圖1所示,

圖1? Applet 類的繼承層次圖?

從圖中可以看出,Applet繼承了容器控件能力,它可以利用AWT所包含的一切功能。利用Applet進行開發(fā),客戶端用戶完全擁有AWT的圖形處理功能。那么,采用Applet開發(fā)的WebGIS應(yīng)用的客戶端就具有了矢量圖形的處理能力,可以大大地減輕服務(wù)器端的負擔(dān)。?

2、“一次編譯、處處運行”的跨平臺特性

IT業(yè)的競爭如此激烈,每一個軟件開發(fā)者都要考慮他所開發(fā)的軟件的生命周期,今天開發(fā)的軟件明天能否在同一臺機器上運行,硬件核心資源的變化、操作系統(tǒng)的變化和網(wǎng)絡(luò)環(huán)境的變化,都可能導(dǎo)致軟件無法繼續(xù)運行。Java 虛擬機(JVM)在很大的程度上解決了這個問題,實現(xiàn)了“一次編譯、處處運行”的目標。Java的編譯機制如圖2所示,只要計算機中有JVM,Java字節(jié)碼就可以在那臺計算機上運行,這種跨平臺的特性已成為Java最為強調(diào)的優(yōu)勢,也是Java技術(shù)能夠得到眾多軟件開發(fā)者青睞的主要原因

圖2? Java的編譯機制

3、良好的網(wǎng)絡(luò)服務(wù)技術(shù)和安全性[3]

Java Web程序服務(wù)器提供了方便編程的各種服務(wù)技術(shù),例如命名服務(wù)(naming service)、部署服務(wù)(deployment service)、數(shù)據(jù)連接(JDBC)、數(shù)據(jù)事務(wù)(data transaction)、安全服務(wù)(security service)和連接框架(connector architecture)等,這些技術(shù)在一般Web應(yīng)用中需要用到,但Web編程者不需要自己開發(fā)的。同時,Java提供了嚴密的安全措施,用于保證程序資源只能由授權(quán)的用戶來使用,其安全性由以下兩方面來保證。首先是驗證(authentication),即用戶必須由驗證確定其身分,驗證通過者可以訪問服務(wù)器,否則遭拒絕,典型的做法是使用者提供驗證數(shù)據(jù)(譬如用戶名和密碼)。第二步是授權(quán)(authorization)。當一位被驗證通過的用戶設(shè)法訪問程序資源時,系統(tǒng)要根據(jù)安全策略確定是否該用戶有權(quán)限進行這樣的操作。WebGIS本身就是傳統(tǒng)GIS在Web上一種擴展,Java Web良好的網(wǎng)絡(luò)服務(wù)性能和安全性能,為WebGIS的開發(fā)提供了又一個有利的選擇。?

三、利用Java? Applet進行WebGIS開發(fā)的不足及解決策略

1、運行效率不高

前面已提及,盡管Java編譯器在不斷改進,但是CORBA/Java 在運行速度上仍然不如DCOM/ActiveX,主要是因為Java是基于JVM的高級語言,要考慮到跨平臺性,代碼的執(zhí)行效率不可能和C/C++執(zhí)行代碼的一樣高,經(jīng)過編譯的Java字節(jié)碼是一種中間碼,在運行時必須先解釋并加載系統(tǒng)信息才能運行?;谶@一特點,我們可以考慮用提高硬件性能的辦法加以彌補,但這不是根本的解決辦法,我們期待著下一代的Java效率的提高,同時,當前已有一些廠商致力于開發(fā)Java芯片(Java chip),直接將JVM制成芯片,再將芯片植入系統(tǒng)中,這樣可以大大地提高運行速度,我們相信Java前景光明。

2、安全限制而導(dǎo)致的網(wǎng)絡(luò)傳輸瓶頸[3]

要獲得好的網(wǎng)絡(luò)傳輸率,就要突破Applet具有的安全限制,這是一對矛盾。采用Java Applet 進行WebGIS開發(fā)時,客戶端必須處理空間數(shù)據(jù),空間數(shù)據(jù)要在擁擠的網(wǎng)絡(luò)上傳輸,例如某省1:25萬地圖(Shapefile格式),空間數(shù)據(jù)包括行政區(qū)界,公路,河流,公共設(shè)施,各級標注,經(jīng)過處理后數(shù)據(jù)量仍有10Mb以上。因此,由于空間數(shù)據(jù)量大而造成網(wǎng)絡(luò)傳輸慢成了系統(tǒng)最大的瓶頸。為了提高網(wǎng)絡(luò)傳輸速度和用戶操作處理響應(yīng)速度,可以采取了以下一些技術(shù)措施:?

2.1 保密要求不高的情況下,可以突破Applet安全限制?

Java Applet具有Applet數(shù)字簽名技術(shù),使得Applet在下載到客戶端之前要進行身份認證,只有得到用戶的信任才可以下載,用戶通過簽名者的身份決定是否信任它,認證不通過者不能在客戶端進行任何讀寫操作。在不要求保密或只在內(nèi)部網(wǎng)中使用WebGIS系統(tǒng)可以突破Applet簽名限制以提高網(wǎng)絡(luò)的傳輸率。?

2.2 將空間數(shù)據(jù)進行多級存儲?

空間數(shù)據(jù)可以分級存儲在客戶本地、Web服務(wù)器、數(shù)據(jù)庫服務(wù)器上,當客戶端要讀取數(shù)據(jù)時,先從本地讀取,若本地沒有,則向GIS應(yīng)用服務(wù)器發(fā)出請求,GIS應(yīng)用服務(wù)器程序先從Web服務(wù)器上讀取數(shù)據(jù),若Web服務(wù)器上沒有該數(shù)據(jù),則生成Sql語句向數(shù)據(jù)庫發(fā)出請求,由數(shù)據(jù)庫處理請求并返回查詢結(jié)果。系統(tǒng)的一部分空間數(shù)據(jù)可以存放在客戶端,這樣,可以減少必須通過網(wǎng)絡(luò)傳輸?shù)目臻g數(shù)據(jù)量,因此提高了運行效率。數(shù)據(jù)庫系統(tǒng)可以采用Oracle8.1.6以上,首先將Shapefile格式的空間數(shù)據(jù)導(dǎo)入到Oracle中,采用Oracle的shp2sdo及SQL Loader工具來完成或用Oracle免費提供的Java類包編程實現(xiàn)。再將部分空間數(shù)據(jù)以自定義文件格式復(fù)制存放在Web服務(wù)器端。當客戶機訪問該網(wǎng)站時,如果信任該網(wǎng)站就下載部分固定的空間數(shù)據(jù)存放于客戶端。由于存取本地數(shù)據(jù)比存取網(wǎng)絡(luò)數(shù)據(jù)速度快多了,可以大大提高系統(tǒng)的運行速度。?

2.3 矢量數(shù)據(jù)和柵格數(shù)據(jù)有機結(jié)合,減少大量矢量數(shù)據(jù)在網(wǎng)絡(luò)上的傳輸。?

當對大量矢量數(shù)據(jù)進行運算和傳輸時,可以用柵格圖像來代替它。在系統(tǒng)啟動時,首先顯示整幅地圖作為底圖。即使只調(diào)入部分矢量圖層數(shù)據(jù),一次性裝載這些數(shù)據(jù)并進行標繪,加上下載Applet程序,將花費很長時間而導(dǎo)致用戶不耐煩。如果預(yù)先生成一幅地圖柵格圖像,系統(tǒng)啟動時,首先顯示該柵格圖像,并用一個后臺進程讀取矢量數(shù)據(jù)進行運算,達到“以假亂真”的效果;另外,如果客戶端從Web服務(wù)器或Oracle數(shù)據(jù)庫查詢較大的空間數(shù)據(jù)時,可以在應(yīng)用服務(wù)器上先生成相應(yīng)的柵格圖像,然后傳輸柵格圖像給客戶端顯示,客戶的操作以命令參數(shù)形式傳送到GIS應(yīng)用服務(wù)器,由服務(wù)器程序處理這些請求并返回結(jié)果。?

2.4 網(wǎng)絡(luò)數(shù)據(jù)流壓縮?

在網(wǎng)絡(luò)上傳輸空間數(shù)據(jù)或柵格圖像時,發(fā)送端對這些數(shù)據(jù)進行壓縮(采用Zip或其它形式),接收端解壓。顯然,這些數(shù)據(jù)的傳輸速度關(guān)鍵取決于網(wǎng)絡(luò)傳輸率,本機的壓縮、解壓縮時間相對于網(wǎng)絡(luò)傳輸來說是很小的,因此,進行壓縮處理是很有意義的。Java中Java.util.zip類包,壓縮率通??蛇_3倍以上,能夠明顯地提高系統(tǒng)運行效率。?

客戶層?

業(yè)務(wù)邏輯層?

數(shù)據(jù)層?

四、基于Java? Applet的進行WebGIS開發(fā)的基本框架

WebGIS的客戶端是Web瀏覽器,通過下載Java Applets,運行客戶端的Applet程序,實現(xiàn)客戶端的GIS計算任務(wù)。業(yè)務(wù)邏輯層提供完成所有業(yè)務(wù)邏輯和數(shù)據(jù)訪問的功能,主要由兩部分組成:一部分是Web服務(wù)器,它通過HTTP協(xié)議向客戶層提供Applet 程序;另一部分是GIS應(yīng)用服務(wù)器,它包含了完成業(yè)務(wù)邏輯所需要的各種服務(wù),它一方面通過自定義協(xié)議或RMI/IIOP與運行在客戶層的Applet程序通信,另一方面與數(shù)據(jù)層進行通信,GIS數(shù)據(jù)一般有兩種存儲形式,一種是直接以文件的形式存儲,一種是采用具有空間數(shù)據(jù)存儲功能的分布式數(shù)據(jù)庫,如Oracle8i以上版本等,通過JDBC訪問存儲在數(shù)據(jù)庫中的空間數(shù)據(jù),同時還可以利用分布式數(shù)據(jù)庫系統(tǒng)本身提供的功能,方便地實現(xiàn)空間數(shù)據(jù)的存儲、查詢和分析功能,并且能夠滿足海量數(shù)據(jù)存儲要求。?

結(jié)束語:?

現(xiàn)在,利用CORBA/Java技術(shù)和規(guī)范開發(fā)出來的GIS產(chǎn)品層出不窮,如MapInfo ProServer 、Internet Map Server(IMS)、ModelServer/Discovery和??? OpenMap等,雖然這些產(chǎn)品都沒有提供完美的解決方案,但隨著Internet技術(shù)進一步發(fā)展和Java技術(shù)的日益完善,WebGIS應(yīng)用將更加普及、前景看好,同時競爭也將更加激烈。

參考文獻:?

[1]《地理信息系統(tǒng)原理與方法》吳信才 武漢測繪學(xué)院 2002?

[2]《WebGIS概述》宋關(guān)福? 圖形圖象學(xué)報 2003?

[3]《基于Java Applet的WebGIS系統(tǒng)開發(fā)的瓶頸問題》林志賢,林宏基 2003?

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。

相關(guān)內(nèi)容