分布式gis加速系統(tǒng)和gis服務(wù)的處理方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及GIS技術(shù)領(lǐng)域,具體而言,特別涉及一種分布式GIS加速系統(tǒng)和GIS服務(wù)的處理方法。
【背景技術(shù)】
[0002]在傳統(tǒng)的行業(yè)地理信息系統(tǒng)(Geographic Informat1n System, GIS)服務(wù)應(yīng)用模式中,從部委級(jí)行業(yè)應(yīng)用到省級(jí)、地市級(jí)甚至各區(qū)縣的每一級(jí)行業(yè)應(yīng)用,都需要部署一個(gè)GIS服務(wù)器;在云時(shí)代,利用云GIS平臺(tái)產(chǎn)品構(gòu)建云GIS中心,使這些不同級(jí)別的行業(yè)應(yīng)用集中在一個(gè)中心,提高了業(yè)務(wù)靈活性和資源利用率,這是GIS發(fā)展的趨勢(shì)。
[0003]但這種部署方式也有瓶頸,在訪(fǎng)問(wèn)高峰期,云GIS中心壓力過(guò)大,受限于云GIS中心的出口帶寬,無(wú)法保障各下級(jí)單位的GIS服務(wù)訪(fǎng)問(wèn)質(zhì)量。例如,在跨部門(mén)、跨區(qū)域的組織機(jī)構(gòu)中,GIS業(yè)務(wù)數(shù)據(jù)通常都部署在總部的云GIS中心,下屬各分支機(jī)構(gòu)或其它業(yè)務(wù)部門(mén)需要訪(fǎng)問(wèn)云GIS中心的服務(wù)器中的服務(wù)。在這種網(wǎng)絡(luò)架構(gòu)中,云GIS中心的服務(wù)器的網(wǎng)絡(luò)壓力一般都較大,加上GIS服務(wù)本身海量數(shù)據(jù)的特點(diǎn),終端用戶(hù)的訪(fǎng)問(wèn)效率都較為低下,即使云GIS中心增加再多的服務(wù)器,也無(wú)濟(jì)于事。
[0004]此外,由于運(yùn)營(yíng)商之間(例如南北電信網(wǎng)通之間)互聯(lián)互通存在的問(wèn)題,使得用戶(hù)跨運(yùn)營(yíng)商訪(fǎng)問(wèn)云GIS中心的服務(wù)器時(shí),訪(fǎng)問(wèn)速度很慢。例如,處于不同地域、通過(guò)不同運(yùn)營(yíng)商接入的終端用戶(hù)在訪(fǎng)問(wèn)云GIS中心的服務(wù)器時(shí),訪(fǎng)問(wèn)的數(shù)據(jù)往往會(huì)跨越多個(gè)運(yùn)營(yíng)商的網(wǎng)絡(luò),從而難免造成響應(yīng)延遲而導(dǎo)致訪(fǎng)問(wèn)速度慢,訪(fǎng)問(wèn)質(zhì)量下降。而當(dāng)各種突發(fā)情況造成訪(fǎng)問(wèn)量突然增大時(shí),這種響應(yīng)延遲會(huì)更加明顯,為解決這樣的問(wèn)題,即使改善云GIS中心的服務(wù)器接入情況、同時(shí)增大用戶(hù)接入帶寬,也只能提高兩端的訪(fǎng)問(wèn)數(shù)據(jù)流量,仍然無(wú)法從根本上改善網(wǎng)絡(luò)延遲的情況。
[0005]針對(duì)現(xiàn)有技術(shù)中終端用戶(hù)訪(fǎng)問(wèn)云GIS中心的訪(fǎng)問(wèn)效率低的問(wèn)題,目前尚未提出有效的解決方法。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的主要目的在于提供一種分布式GIS加速系統(tǒng)和GIS服務(wù)的處理方法,以解決現(xiàn)有技術(shù)中終端用戶(hù)訪(fǎng)問(wèn)云GIS中心的訪(fǎng)問(wèn)效率低的問(wèn)題。
[0007]依據(jù)本發(fā)明的一個(gè)方面,提供了一種分布式GIS加速系統(tǒng)。
[0008]根據(jù)本發(fā)明的分布式GIS加速系統(tǒng)設(shè)置于客戶(hù)端與云GIS中心之間,該加速系統(tǒng)包括至少一個(gè)管理節(jié)點(diǎn)服務(wù)器和多個(gè)工作節(jié)點(diǎn)服務(wù)器,其中,管理節(jié)點(diǎn)服務(wù)器包括:節(jié)點(diǎn)管理模塊,用于在加速系統(tǒng)中添加或刪除工作節(jié)點(diǎn)服務(wù)器,還用于修改工作節(jié)點(diǎn)服務(wù)器代理的GIS服務(wù);第一瓦片數(shù)據(jù)管理模塊,用于向工作節(jié)點(diǎn)服務(wù)器發(fā)送瓦片數(shù)據(jù)更新指令。
[0009]工作節(jié)點(diǎn)服務(wù)器包括:第二瓦片數(shù)據(jù)管理模塊,用于根據(jù)管理節(jié)點(diǎn)服務(wù)器的瓦片數(shù)據(jù)更新指令更新本地的瓦片數(shù)據(jù);服務(wù)代理加速模塊,用于接收客戶(hù)端發(fā)送的GIS請(qǐng)求,并在GIS請(qǐng)求的服務(wù)在服務(wù)代理加速模塊的本地有對(duì)應(yīng)的瓦片數(shù)據(jù)時(shí),直接返回對(duì)應(yīng)的瓦片數(shù)據(jù)至客戶(hù)端,如果在服務(wù)代理加速模塊的本地沒(méi)有對(duì)應(yīng)的瓦片數(shù)據(jù)時(shí),向云GIS中心轉(zhuǎn)發(fā)GIS請(qǐng)求。
[0010]進(jìn)一步地,節(jié)點(diǎn)管理模塊包括:注冊(cè)請(qǐng)求接收單元,用于接收添加工作節(jié)點(diǎn)服務(wù)器的注冊(cè)請(qǐng)求,其中,注冊(cè)請(qǐng)求包括待添加的工作節(jié)點(diǎn)服務(wù)器的網(wǎng)絡(luò)連接地址和待添加的工作節(jié)點(diǎn)服務(wù)器所服務(wù)的客戶(hù)端的IP網(wǎng)段;工作節(jié)點(diǎn)配置單元,用于根據(jù)注冊(cè)請(qǐng)求中的網(wǎng)絡(luò)連接地址向待添加的工作節(jié)點(diǎn)服務(wù)器發(fā)送連接請(qǐng)求,并在接收到待添加的工作節(jié)點(diǎn)服務(wù)器返回的連接響應(yīng)后,向待添加的工作節(jié)點(diǎn)服務(wù)器下發(fā)代理方案,其中,代理方案包括待添加的工作節(jié)點(diǎn)服務(wù)器所服務(wù)的客戶(hù)端的IP網(wǎng)段、待添加的工作節(jié)點(diǎn)服務(wù)器所代理的GIS服務(wù),所代理的GIS服務(wù)的服務(wù)地址、服務(wù)類(lèi)型和瓦片數(shù)據(jù)的下載地址。
[0011]進(jìn)一步地,第一瓦片數(shù)據(jù)管理模塊包括:數(shù)據(jù)請(qǐng)求接收單元,用于接收更新瓦片數(shù)據(jù)的數(shù)據(jù)請(qǐng)求;工作節(jié)點(diǎn)獲取單元,用于獲取需要更新瓦片數(shù)據(jù)的工作節(jié)點(diǎn)服務(wù)器;更新指令發(fā)送單元,用于向需要更新瓦片數(shù)據(jù)的工作節(jié)點(diǎn)服務(wù)器發(fā)送瓦片數(shù)據(jù)更新指令。
[0012]進(jìn)一步地,第二瓦片數(shù)據(jù)管理模塊包括:更新指令接收單元,用于接收瓦片數(shù)據(jù)更新指令;更新指令解析單元,用于對(duì)瓦片數(shù)據(jù)更新指令進(jìn)行解析;目錄新建單元,用于當(dāng)解析到瓦片數(shù)據(jù)更新指令是添加瓦片數(shù)據(jù)的指令時(shí),在本地新建一個(gè)存儲(chǔ)目錄,以得到第一存儲(chǔ)目錄,其中,第一存儲(chǔ)目錄的名稱(chēng)為瓦片數(shù)據(jù)更新指令中的瓦片數(shù)據(jù)的名稱(chēng);下載任務(wù)生成單元,用于當(dāng)解析到瓦片數(shù)據(jù)更新指令是添加瓦片數(shù)據(jù)的指令或修改瓦片數(shù)據(jù)的指令時(shí),根據(jù)瓦片數(shù)據(jù)的元信息將瓦片數(shù)據(jù)拆分成多個(gè)單元數(shù)據(jù)包,并生成一個(gè)下載任務(wù)列表,下載任務(wù)列表中包括多個(gè)下載任務(wù),其中,每個(gè)下載任務(wù)對(duì)應(yīng)下載一個(gè)單元數(shù)據(jù)包;下載任務(wù)執(zhí)行單元,用于從下載任務(wù)列表中獲取并執(zhí)行一個(gè)下載任務(wù),并當(dāng)解析到瓦片數(shù)據(jù)更新指令是添加瓦片數(shù)據(jù)的指令時(shí),將執(zhí)行下載任務(wù)時(shí)接收到的單元數(shù)據(jù)包解壓后存儲(chǔ)至第一存儲(chǔ)目錄下,當(dāng)解析到瓦片數(shù)據(jù)更新指令是修改瓦片數(shù)據(jù)的指令時(shí),根據(jù)瓦片數(shù)據(jù)更新指令中的瓦片數(shù)據(jù)的名稱(chēng)定位本地的存儲(chǔ)目錄,以得到第二存儲(chǔ)目錄,并將執(zhí)行下載任務(wù)時(shí)接收到的單元數(shù)據(jù)包解壓后存儲(chǔ)至第二存儲(chǔ)目錄下;以及瓦片數(shù)據(jù)刪除單元,用于當(dāng)解析到瓦片數(shù)據(jù)更新指令是刪除瓦片數(shù)據(jù)的指令時(shí),根據(jù)瓦片數(shù)據(jù)更新指令中的瓦片數(shù)據(jù)的名稱(chēng)定位本地的存儲(chǔ)目錄,以得到第三存儲(chǔ)目錄,并刪除第三存儲(chǔ)目錄和第三存儲(chǔ)目錄下的瓦片數(shù)據(jù)。
[0013]依據(jù)本發(fā)明的一個(gè)方面,提供了一種GIS服務(wù)的處理方法。
[0014]根據(jù)本發(fā)明的GIS服務(wù)的處理方法應(yīng)用于本發(fā)明提供的任一種的分布式GIS加速系統(tǒng)中,在分布式GIS加速系統(tǒng)的工作節(jié)點(diǎn)服務(wù)器一端,該方法包括:接收客戶(hù)端發(fā)送的GIS請(qǐng)求;解析GIS請(qǐng)求;判斷GIS請(qǐng)求的服務(wù)在工作節(jié)點(diǎn)服務(wù)器本地是否有對(duì)應(yīng)的瓦片數(shù)據(jù);若GIS請(qǐng)求的服務(wù)在工作節(jié)點(diǎn)服務(wù)器本地有對(duì)應(yīng)的瓦片數(shù)據(jù),則直接返回對(duì)應(yīng)的瓦片數(shù)據(jù)至客戶(hù)端;以及若GIS請(qǐng)求的服務(wù)在工作節(jié)點(diǎn)服務(wù)器本地沒(méi)有對(duì)應(yīng)的瓦片數(shù)據(jù),則向分布式GIS加速系統(tǒng)的云GIS中心轉(zhuǎn)發(fā)GIS請(qǐng)求。
[0015]進(jìn)一步地,在向分布式GIS加速系統(tǒng)的云GIS中心轉(zhuǎn)發(fā)GIS請(qǐng)求之前,方法還包括:判斷GIS請(qǐng)求是否適合進(jìn)行緩存;若GIS請(qǐng)求不適合進(jìn)行緩存,則執(zhí)行向分布式GIS加速系統(tǒng)的云GIS中心轉(zhuǎn)發(fā)GIS請(qǐng)求的步驟,若GIS請(qǐng)求適合進(jìn)行緩存,則方法還包括:在預(yù)設(shè)的請(qǐng)求緩存池中查找與GIS請(qǐng)求相對(duì)應(yīng)的請(qǐng)求緩存;若查找到與GIS請(qǐng)求相對(duì)應(yīng)的請(qǐng)求緩存,則讀取請(qǐng)求緩存的內(nèi)容;將讀取到的請(qǐng)求緩存的內(nèi)容發(fā)送至客戶(hù)端,若未查找到與GIS請(qǐng)求相對(duì)應(yīng)的請(qǐng)求緩存,則執(zhí)行向分布式GIS加速系統(tǒng)的云GIS中心轉(zhuǎn)發(fā)GIS請(qǐng)求的步驟,若GIS請(qǐng)求適合進(jìn)行緩存,并且方法執(zhí)行了向分布式GIS加速系統(tǒng)的云GIS中心轉(zhuǎn)發(fā)GIS請(qǐng)求的步驟,則方法還包括:接收云GIS中心響應(yīng)GIS請(qǐng)求后返回的響應(yīng)內(nèi)容;將響應(yīng)內(nèi)容和GIS請(qǐng)求、以及響應(yīng)內(nèi)容和GIS請(qǐng)求的對(duì)應(yīng)關(guān)系寫(xiě)入預(yù)設(shè)的請(qǐng)求緩存池。
[0016]進(jìn)一步地,判斷GIS請(qǐng)求的服務(wù)在工作節(jié)點(diǎn)服務(wù)器本地是否有對(duì)應(yīng)的瓦片數(shù)據(jù)包括:判斷GIS請(qǐng)求的服務(wù)是否是地圖服務(wù)、數(shù)據(jù)服務(wù)、三維服務(wù)或分析服務(wù);若GIS請(qǐng)求的服務(wù)是地圖服務(wù)、數(shù)據(jù)服務(wù)、三維服務(wù)或分析服務(wù),則判斷GIS請(qǐng)求的請(qǐng)求類(lèi)型是否屬于預(yù)設(shè)的請(qǐng)求類(lèi)型范圍中的請(qǐng)求;若是,則根據(jù)GIS請(qǐng)求中的參數(shù)計(jì)算對(duì)應(yīng)的瓦片數(shù)據(jù)的路徑;若工作節(jié)點(diǎn)服務(wù)器中或工作節(jié)點(diǎn)服務(wù)器的外部存儲(chǔ)系統(tǒng)中包含路徑的文件,則認(rèn)為GIS請(qǐng)求的服務(wù)在工作節(jié)點(diǎn)服務(wù)器本地有對(duì)應(yīng)的瓦片數(shù)據(jù)。
[0017]進(jìn)一步地,判斷GIS請(qǐng)求是否適合進(jìn)行緩存包括:判斷解析得到的GIS請(qǐng)求的請(qǐng)求方法是否為GET方法或HEAD方法。
[0018]其中,若請(qǐng)求方法為GET方法或HEAD方法,則GIS請(qǐng)求適合進(jìn)行緩存。
[0019]進(jìn)一步地,在預(yù)設(shè)的請(qǐng)求緩存池中查找與GIS請(qǐng)求相對(duì)應(yīng)的請(qǐng)求緩存包括:根據(jù)解析得到的GIS請(qǐng)求的URL和請(qǐng)求方法計(jì)算GIS請(qǐng)求對(duì)應(yīng)的鍵值;在請(qǐng)求緩存池中查找與鍵值相對(duì)應(yīng)的請(qǐng)求緩存。
[0020]將響應(yīng)內(nèi)容和GIS請(qǐng)求、以及響應(yīng)內(nèi)容和GIS請(qǐng)求的對(duì)應(yīng)關(guān)系寫(xiě)入請(qǐng)求緩存池包括:將響應(yīng)內(nèi)容和鍵值寫(xiě)入請(qǐng)求緩存池。
[0021]通過(guò)本發(fā)明,提出了一種分布式GIS加速系統(tǒng),該加速系統(tǒng)設(shè)置于客戶(hù)端與云GIS中心之間,包括至少一個(gè)管理節(jié)點(diǎn)服務(wù)器和多個(gè)工作節(jié)點(diǎn)服務(wù)器,其中,管理節(jié)點(diǎn)服務(wù)器用于管理和調(diào)度各個(gè)工作節(jié)點(diǎn)服務(wù)器,具體包括:節(jié)點(diǎn)管理模塊,用于在加速系統(tǒng)中添加或刪除工作節(jié)點(diǎn)服務(wù)器,還用于修改工作節(jié)點(diǎn)服務(wù)器代理的GIS服務(wù);第一瓦片數(shù)據(jù)管理模塊,用于向工作節(jié)點(diǎn)服務(wù)器發(fā)送瓦片數(shù)據(jù)更新指令。工作節(jié)點(diǎn)服務(wù)器用于對(duì)GIS服務(wù)進(jìn)行加速代理,具體包括:第二瓦片數(shù)據(jù)管理模塊,用于根據(jù)管理節(jié)點(diǎn)服務(wù)器的瓦片數(shù)據(jù)更新指令更新本地的瓦片數(shù)據(jù);服務(wù)代理加速模塊,用于接收客戶(hù)端發(fā)送的GIS