鄧澄
(江西省地礦測(cè)繪院 江西南昌 330000)
地理信息系統(tǒng)是在近十幾年當(dāng)中所發(fā)展起來的一種具有綜合性的應(yīng)用系統(tǒng),將各種信息數(shù)據(jù)和地理位置以及相關(guān)視圖實(shí)現(xiàn)了有機(jī)的結(jié)合,并將多媒體技術(shù)、虛擬技術(shù)等相融合,通過計(jì)算機(jī)實(shí)現(xiàn)了數(shù)據(jù)的采集、存儲(chǔ)、編輯、轉(zhuǎn)換以及輸出等。伴隨著社會(huì)的不斷發(fā)展,傳統(tǒng)的地理信息系統(tǒng)已經(jīng)無(wú)法滿足人們?nèi)找孀兓膶?shí)際需求,為了盡可能的實(shí)現(xiàn)信息傳輸和共享,避免出現(xiàn)“信息孤島”的問題,應(yīng)該利用互聯(lián)網(wǎng)技術(shù)還對(duì)其進(jìn)行完善,實(shí)際上就是構(gòu)建網(wǎng)絡(luò)地理信息系統(tǒng),一方面可以保證地理信息的實(shí)時(shí)更新,另一方面還可以為用戶的使用和管理提供方便。
WinsockAPI在Windows系統(tǒng)中針對(duì)于網(wǎng)絡(luò)開發(fā)提供了一個(gè)協(xié)議無(wú)關(guān)的接口,其中主要包括了一組網(wǎng)絡(luò)I/O和獲取信息的庫(kù)函數(shù),應(yīng)用程序通過對(duì)這部分函數(shù)的調(diào)取可以實(shí)現(xiàn)不同的功能,而且還為服務(wù)器程序的編寫提供了不同的平臺(tái)渠道。網(wǎng)絡(luò)地理信息系統(tǒng)實(shí)際上是由互聯(lián)網(wǎng)所連接的多個(gè)獨(dú)立的GIS系統(tǒng)所組成的,在數(shù)據(jù)信息傳輸和響應(yīng)的過程中,與Winsock的編程模型具有較大的相似點(diǎn),因此基于Winsock技術(shù)的網(wǎng)絡(luò)地理信息系統(tǒng)的研發(fā)是現(xiàn)階段的設(shè)計(jì)熱點(diǎn)。
Winsock控件為編程人員提供了更加便捷的訪問TCP和UDP的途徑,程序員只需要通過設(shè)置其控件的屬性就能夠和遠(yuǎn)程計(jì)算機(jī)實(shí)現(xiàn)雙向的數(shù)據(jù)傳輸。采用Winsock的編程模型來構(gòu)建C/S結(jié)構(gòu)的網(wǎng)絡(luò)地理信息系統(tǒng),通常情況下,服務(wù)器只是對(duì)數(shù)據(jù)進(jìn)行管理,而其他的任務(wù)則被分配到客戶機(jī)上面,使得服務(wù)器和客戶機(jī)之間通過網(wǎng)絡(luò)協(xié)議來實(shí)現(xiàn)通信,這種模式不僅使得客戶機(jī)的性能實(shí)現(xiàn)了較大程度的提高,而且服務(wù)器和客戶機(jī)在物理層面上是比較容易實(shí)現(xiàn)擴(kuò)充的。
網(wǎng)絡(luò)地理信息系統(tǒng)的服務(wù)主要包括了功能性服務(wù)和數(shù)據(jù)服務(wù)這兩種。其中,功能性服務(wù)實(shí)際上就是實(shí)現(xiàn)地理信息系統(tǒng)的網(wǎng)絡(luò)服務(wù)功能,只需要開發(fā)出與用戶進(jìn)行交流的界面,就可以實(shí)現(xiàn)網(wǎng)絡(luò)服務(wù)功能的調(diào)用,對(duì)本地?cái)?shù)據(jù)信息進(jìn)行上傳和下載,但是一般情況下要在特定的條件下才能使用;另一方面,數(shù)據(jù)服務(wù),就是使得用戶能夠直接進(jìn)行數(shù)據(jù)的瀏覽和下載,開發(fā)人員可以直接調(diào)用數(shù)據(jù)等;且對(duì)于只能瀏覽,不能下載的保密性數(shù)據(jù)信息而言,則不能夠?qū)ζ溥M(jìn)行地理信息的分析和處理。
圖1 基于Winsock的網(wǎng)絡(luò)地理信息系統(tǒng)結(jié)構(gòu)模型示意圖
2.1.1 地圖管理模塊
地圖管理模塊,為用戶提供地圖操作的界面以及與服務(wù)器端實(shí)現(xiàn)通信的接口們主要包括了地圖的管理和視圖的管理;其中地圖的管理則是對(duì)其各部分的組成要素圖層進(jìn)行繪制、保存、添加等具體的操作;而視圖的管理則是實(shí)現(xiàn)圖像的放大與縮小等操作;通信接口方面則負(fù)責(zé)連接和關(guān)閉相互之間的連接與數(shù)據(jù)的傳輸?shù)取?/p>
2.1.2 操作命令響應(yīng)模塊
這一功能模塊是按照自定義的命令協(xié)議格式來生成不同的操作命令,并將其傳輸?shù)綌?shù)據(jù)的通信模塊當(dāng)中,再由其傳送到服務(wù)器端。對(duì)于請(qǐng)求端而言,其協(xié)議是較為簡(jiǎn)單的,首先是將請(qǐng)求類型按照相應(yīng)的格式傳送到服務(wù)器端,在對(duì)所需要的數(shù)據(jù)進(jìn)行讀取之后,客戶端將其進(jìn)行有效的組合,且校驗(yàn)位還對(duì)數(shù)據(jù)的正確性進(jìn)行了較大程度的保證。
2.1.3 數(shù)據(jù)通信模塊
用戶端數(shù)據(jù)通信和Server端數(shù)據(jù)通信是數(shù)據(jù)通信功能模塊中的重要組成部分,通過服務(wù)器和客戶端的接口來實(shí)現(xiàn)二者之間的數(shù)據(jù)傳輸,從根本上來說,其實(shí)現(xiàn)了數(shù)據(jù)發(fā)送隊(duì)列和接受隊(duì)列的維護(hù)。同時(shí),在對(duì)系統(tǒng)進(jìn)行設(shè)計(jì)的過程當(dāng)中,為了防止主程序出現(xiàn)阻塞的問題,需要在連接套接字上單獨(dú)設(shè)置一個(gè)子線程,從而保證程序的運(yùn)行效率;需要注意的是,在對(duì)流式套接字進(jìn)行使用的時(shí)候,在用戶進(jìn)行發(fā)送和接受數(shù)據(jù)的操作之前應(yīng)先建立連接。
2.1.4 數(shù)據(jù)解析模塊
數(shù)據(jù)解析模塊,對(duì)通信雙方的通信規(guī)則進(jìn)行解析,也就是對(duì)協(xié)議的分析,對(duì)于通信系統(tǒng)的運(yùn)行和維護(hù)具有十分重要的作用,將數(shù)據(jù)打包的格式作為依據(jù),對(duì)命令請(qǐng)求的類別進(jìn)行判斷,之后再由服務(wù)器對(duì)其進(jìn)行處理,將結(jié)果重新傳送到用戶端。
2.2.1 地圖瀏覽器界面的設(shè)計(jì)
瀏覽器是客戶端的一種的應(yīng)用軟件,主要是為用戶提供一個(gè)可以和網(wǎng)絡(luò)進(jìn)行連接的信息檢索平臺(tái)。在本研究中的客戶端瀏覽器主要包括了遠(yuǎn)程請(qǐng)求和本地部分的功能,按照用戶對(duì)地圖使用的習(xí)慣,同時(shí)與桌面的GIS功能界面框架相結(jié)合,地圖瀏覽器界面主要包括了工具欄、標(biāo)題、狀態(tài)欄、菜單以及顯示區(qū)等五個(gè)部分,如圖2所示。
圖2 地圖瀏覽器主界面示意圖
2.2.2 文件的更新機(jī)制
在本次對(duì)網(wǎng)絡(luò)地理信息系統(tǒng)的設(shè)計(jì)當(dāng)中,對(duì)文件數(shù)據(jù)進(jìn)行更新,主要采用的是向后追加的方法,一般情況下主要利用圖形元素的類別和識(shí)別ID就可以實(shí)現(xiàn),但是需要注意的是,由于在文件中已經(jīng)存在了同樣的對(duì)象,因此要將原有的對(duì)象按照現(xiàn)在的屬性進(jìn)行重新繪制,而且由于文件的數(shù)據(jù)量大小具有較大的差別,因此更新的過程可能不會(huì)一次性完成。
2.3.1 并發(fā)服務(wù)器的多線程機(jī)制
并發(fā)服務(wù)器的線程主要包括了主線程和子線程兩種類別,其中的主線程與客戶端之間不會(huì)直接進(jìn)行通信連接,而是由子線程完成,且每個(gè)子線程只與一個(gè)客戶進(jìn)行通信;當(dāng)通信請(qǐng)求到達(dá)的時(shí)候,需要對(duì)其監(jiān)理一個(gè)子線程來對(duì)請(qǐng)求進(jìn)行及時(shí)的處理,待當(dāng)完成響應(yīng)之后,這一子線程就會(huì)自動(dòng)退出,并重新為客戶創(chuàng)建新的通信線程;另外,為了避免出現(xiàn)大量線程同時(shí)開啟的問題,在本次研究中采用了套接字?jǐn)?shù)組的方法對(duì)其進(jìn)行了限制。
圖3 服務(wù)器主線程和子線程結(jié)構(gòu)示意圖
2.3.2 圖幅的維護(hù)與共享
圖幅的維護(hù)是地圖管理人員的工作內(nèi)容,在基于Winsock的網(wǎng)絡(luò)地理信息系統(tǒng)當(dāng)中,地圖的管理人員可以使用遠(yuǎn)程終端對(duì)服務(wù)器當(dāng)中的地圖庫(kù)內(nèi)的文件進(jìn)行實(shí)時(shí)的動(dòng)態(tài)管理。當(dāng)管理人員取得使用權(quán)限之后,用戶可以在自己的操作權(quán)限之內(nèi)對(duì)圖幅進(jìn)行本地下載,將編輯好的圖幅重新進(jìn)行上傳,這種圖幅的維護(hù)和共享極大程度的保證了數(shù)據(jù)的實(shí)時(shí)性。
綜上所述,基于Winsock技術(shù)的網(wǎng)絡(luò)地理信息系統(tǒng)的研發(fā),具有簡(jiǎn)單實(shí)用、投入成本低、可擴(kuò)展性強(qiáng)的優(yōu)勢(shì),且在系統(tǒng)的研發(fā)過程中,還實(shí)現(xiàn)了以下幾方面的功能:①采用了C/S結(jié)構(gòu)來對(duì)網(wǎng)絡(luò)地理信息系統(tǒng)中的數(shù)據(jù)和文件類型進(jìn)行了統(tǒng)一的制定;②在客戶端和服務(wù)器端之間建立了通信協(xié)議,用戶可以遠(yuǎn)程實(shí)現(xiàn)對(duì)信息的處理;③對(duì)于服務(wù)器的設(shè)計(jì),則進(jìn)一步實(shí)現(xiàn)了對(duì)其的維護(hù)管理和實(shí)時(shí)更新等;④在網(wǎng)絡(luò)通信層面上還保證了客戶端和服務(wù)器端的相互協(xié)調(diào)性。當(dāng)然,網(wǎng)絡(luò)地理信息系統(tǒng)的研發(fā)還需要實(shí)現(xiàn)進(jìn)一步的完善,工作人員應(yīng)該加大研究力度,逐漸實(shí)現(xiàn)系統(tǒng)功能的完善。
[1]薛晨曦,陳犖,李軍.基于高性能計(jì)算平臺(tái)的地理信息系統(tǒng)算法調(diào)度引擎的研究[J].現(xiàn)代電子技術(shù),2015,22:44~47.
[2]謝斌.計(jì)算機(jī)網(wǎng)絡(luò)安全中虛擬網(wǎng)絡(luò)技術(shù)的應(yīng)用分析[J].電子技術(shù)與軟件工程,2015,22:211.
[3]孔德川.基于WebGIS的庫(kù)站地理信息系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].河南科技學(xué)院學(xué)報(bào)(自然科學(xué)版),2014,01:62~66.
[4]高晗,官云蘭.基于云計(jì)算的移動(dòng)地理信息系統(tǒng)的研發(fā)[J].測(cè)繪與空間地理信息,2014,04:145~147+150.
[5]何磊,陳圣波.網(wǎng)絡(luò)地理信息系統(tǒng)的應(yīng)用和開發(fā)——以長(zhǎng)春市地圖查詢信息系統(tǒng)為例[J].國(guó)土資源遙感,2004,02:72~76.