當前GIS訪問網絡數據庫中若干技術新問題的探索

 

摘要摘要:分析了幾種網絡計算模式的特徵,針對客戶機/服務器模式設計了一個地理信息系統(GIS)訪問數據庫的結構框架——客戶端分爲GIS功能層和數據庫請求層兩層,服務器存放數據,並將此結構和ESRI公司的空間數據庫引擎(SDE)作了對比;通過比較幾種數據庫訪問的程序實現方式,認爲ODBCAPI在開放性方面是良好的.最後給出的MAPGIS實例表明摘要:採用上述設計思路的應用系統不但利用了原有MAPGIS的探究成果,實現了GIS訪問網絡數據庫的功能,而且還具有良好的開放性.

   地理信息系統,數據庫訪問,空間數據庫引擎(SDE),C/S模式,ODBC.

  引言      

  近年來,網絡技術得到迅速的發展,這就爲信息資源的共享提供了技術上的可能.作爲信息密集型的地理信息系統(GIS)上升到網絡平臺可謂適逢其時.但從目前的應用情況來看,除了國外極少的公司擁有網絡版的GIS之外,在國內還處於試驗研製的階段.因此,儘快地研製出我國自主版權的網絡GIS的原型和產品,並在技術手段上達到國際先進水平,是擺在我們面前的一項迫切的任務.

  1 網絡計算的幾種模式及特徵      

  (1)傳統的集中式.這是一種主機-終端模式,所有的計算任務和數據管理任務都集中在主機上,終端只是主機輸入/輸出設備的延長.這種模式的優點是輕易管理,缺點是對主機的性能要求很高,也浪費了作爲終端的計算機的計算能力,並且從性能價格比來看,在購置費用相當的情況下,一臺主機的性能往往比不上幾臺計算機所組成網絡的性能;因此這種模式已逐漸退出主流.   

  (2)客戶機/服務器(client/server,簡稱C/S)模式.一般說來,在這種模式下,服務器只集中管理數據,而計算任務分散在客戶機上,客戶機和服務器之間通過網絡協議來進行通訊.客戶機向服務器發出數據請求,服務器將數據傳送給客戶機進行計算,計算完畢,計算結果可返回給服務器.這種模式的優點充分利用了客戶機的性能,使計算能力大大提高;另外,由於客戶機和服務器之間的通訊是通過網絡協議進行的,是一種邏輯的聯繫,因此物理上在客戶機和服務器兩端是易於擴充的.它是目前佔主流的網絡計算模式.   

  (3)瀏覽器/服務器(browser/server)模式.在這種模式下,用戶端只需一通用的瀏覽器,如Netscape或Explore,便代替了形形色色的各種應用軟件.服務器則爲Web服務器.瀏覽器和服務器之間通過TCP/IP這一通訊協議進行連接.瀏覽器發出數據請求,由Web服務器向後臺取出數據並計算,將計算結果返回給瀏覽器.這種模式的優點是摘要:由於用戶端所用軟件只是一個簡單的瀏覽器,用戶基本上無需培訓,用戶端軟件也無需維護;軟件的升級和修改只在服務器端進行,對用戶透明;服務器和瀏覽器可處於不同的操作系統平臺.其缺點爲摘要:Web動態技術不夠成熟,各種標準有待統一,如各廠家發佈的動態協議互不支持、瀏覽器之爭等.總之,它是一種先進的但發展還未成熟的技術.   

  基於以上的分析,應選擇客戶機/服務器模式作爲GIS訪問網絡數據庫的實現模式.

  2 C/S模式下的GIS訪問網絡數據庫的結構設計      

  設計在總體上分爲C/S兩層(見圖1),以充分利用C/S模式的跨平臺、易擴充、數據獨立等優點.在client端又分兩層來進行設計——GIS功能層和數據請求層,GIS功能層是GIS的功能實現部分,數據請求層是GIS的數據實現部分.數據請求層作爲一中間層,起到數據轉換的功能,對上是具有GIS特徵的數據文件,對下是標準的數據庫記錄.這種分層設計的形式一方面充分利用了現有的單機版本GIS探究成果;另一方面,GIS功能層和數據請求層的開發可同時進行,只要接口標準不變,本層的變動不會影響到另一層.

 

Fig.1 The general framework of GIS accessing database based on C/S model


  值得一提的是ESRI公司的空間數據庫引擎(spatial database engine,簡稱SDE)的設計方案(見圖2).它是目前國際上領先的GIS數據處理的網絡計算模型.其數據的訪問形式爲摘要:由用戶的應用程序(user application)通過SDE應用編程接口(SDE API)向SDE服務器提出空間數據請求,SDE服務器內存放有空間對象模型,並依據空間對象的特徵在本地完成空間數據的搜索,並將搜索結果通過網絡向用戶的應用程序返回.   
  對比圖1和圖2可以看出兩者採用的都是C/S模式,並且都將GIS功能實現和數據請求進行分層處理;所不同的是面向數據庫的數據請求實現的位置摘要:圖1在客戶機端實現,圖2在服務器端實現.在服務器端實現的主要優點爲摘要:(1)對於空間對象模型及相關的計算模式的升級可以只在服務器端實現,而且對客戶機端透明;(2)由於SDE服務器和數據庫ORACLE 7.2的結合非常緊密,因此數據的搜尋速度非常快.對於圖1來說,把數據請求層放在客戶機端,對數據庫的依靠程度就不同於SDE服務器,後者對數據庫的選型有極強的依靠性(目前SDE服務器只在ORACLE 7.2實現),相反,它是一種非常開放的結構,它所支持的服務器不但可跨數據庫系統平臺,而且還可跨操作系統平臺.可以說,圖1和圖2兩種設計模式的優缺點是相互對應的.


  3 數據庫訪問方式的比較      

  基於程序的訪問數據庫的幾種方法如下.   

  (1)專用的數據庫訪問工具.如Power Builder,Delphi等,它偏向於對數據庫中數據的管理和顯示,具有限的計算功能.既不適於用它來開發GIS應用系統,也難以將它們的數據操縱功能和現有的GIS應用系統緊密結合.   

  (2)嵌入數據庫語言的常規語言.各數據庫廠家爲了讓用戶程序能直接訪問自已的數據庫,基本上都提供了專有的面向C語言的預編譯頭和靜態庫,如Sybase公司的OPEN CLIENT和ORACLE的PRO*C.   

  (3)開放數據庫互連性應用編程接口(open database connectivity application programming interface,簡稱ODBCAPI)[2,3].它是微軟(Microsoft)公司提出的數據庫訪問形式.它通過確保所有的應用系統遵循標準的調用層接口,提供對特定數據源命令進行解釋的驅動程序來保持應用系統的互用性.這樣的應用系統是開放的,只要有相應數據源的ODBC的驅動,它就無需改變代碼而可訪問相應的數據庫.   

  在確定訪問數據庫的方式時,ODBCAPI的開放性的優勢是不言而喻的,但這種方式在效率上不如第二種訪問形式.應說明的是摘要:ODBC SQL語法分爲3層,即最小層、核心層和擴展層,儘管目前的大型數據庫都能支持到擴展層,但爲了保證應用系統的開放性,在具體編程實現時,儘量只使用最小層和核心層的語法.

 

 

  4 某電信局配線系統的實現      

  客戶機爲MAPGIS/ODBC/WINDOWS 95,服務器爲SQL SERVER/WINDOWS NT,要訪問的相關表中記錄約爲13萬條.要求從地理底圖上選中某一DP,在數據庫中尋找出從這一DP到配線架的可用通路,並在數據庫中作相應配線修改.如圖3所示. 結果表明摘要:(1)程序實現了MAPGIS訪問網絡數據庫的功能;(2)客戶機和服務器均爲PC機(主頻166MHz),每次操作反應時間爲數秒,換機觀察,發現服務器的性能是整個網絡計算的瓶頸.

  5 結論      

  (1)C/S模式爲目前網絡平臺GIS的首選,將GIS功能和數據庫訪問分層實現有利於保護現有的開發成果;(2)將數據請求層放在客戶端和以ODBC作爲數據庫的訪問方式保證了應用系統的開放性,其訪問可跨越數據系統和操作系統平臺;(3)實例表明,應用系統的反應速度更多取決於服務器的性能,而不是ODBC的效率.

參考文獻

1 http摘要://www.esri.com/base/common/userconf/proc96/TO100/PAP094/P94A.HTM.1998.4

2 http摘要://www.microsoft.com/odbc/start.htm.1998.4

3 Signor R, Creamer J, Stegman M O;侯雪萍譯.開放式數據庫互連ODBC方案集粹.北京摘要:電子工業出版社,1995. 12

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章