專利名稱:一種3s空間數據處理系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及一種3S (遙感RS+地理信息系統(tǒng)GIS+全球定位系統(tǒng)GPS)空間數據處理系統(tǒng),屬于計算機3S空間數據處理技術領域。
背景技術:
3S由遙感RS、地理信息系統(tǒng)GIS以及全球定位系統(tǒng)GPS構成。在水文、水情、山區(qū)地質、交通運輸、天氣監(jiān)測等方面,涉及到大量3S空間信息數據需要實時處理,由于水文、水情、山區(qū)地質、交通運輸、天氣信息具有突發(fā)性與不可預測性,這就要求對大量3S空間數據進行實時處理與響應,由于實際應用中,涉及到大量的3S 數據終端需要同時接入到3數據處理服務器,這樣就存在3S數據處理服務器需要同時大量接入3S數據終端,同時同一時間也將產生的大量3S空間數據傳輸到3S數據處理服務器, 要求服務器對傳輸的3S空間數據進行實時并行處理。3S數據終端與3S服務器之間通過TCP/IP進行通信,在基于TCP/IP的通信系統(tǒng)開發(fā)中,都要涉及到基于SOCKET技術進行程序的開發(fā),基于SOCKET技術開發(fā),涉及客戶端發(fā)送數據與服務端接收數據,而基于SOCKET技術服務端的實現流程如下
1.加載套接字
2.創(chuàng)建監(jiān)聽的套接字
3.綁定套接字
4.監(jiān)聽套接字
5.收到客戶端數據,處理客戶端相關請求
在第5點,服務端接收到客戶端數據,一般產生一個線程,把接收到的數據傳給這個新線程進行處理。由于基于windows、linux或Unix系統(tǒng)的soctet通信一次通信傳輸的數據缺省情況是8K字節(jié),因此在一次完整的業(yè)務過程中,如果客戶端傳輸給服務端的數據達到幾兆、 幾十兆以及上百兆,那么客戶端將會對這些數據多次按順序分包發(fā)送,而服務端將會多次接收到客戶端基于同一個業(yè)務發(fā)過來的數據,然后對傳過來的數據進行組包,進行處理, 按照服務端接收客戶端數據然后產生一個線程對傳過來的數據進行處理,這樣服務端將會在瞬間產生大量處理數據的線程,同時按照多線程的機制,服務端瞬間按順序產生了大量線程,但這些線程的執(zhí)行并不是按主線程產生子線程的順序執(zhí)行,同時產生的子線程也不是按先后順序依次執(zhí)行,而是按照調度無序并行執(zhí)行,這樣對基于同一業(yè)務的數據在服務端進行組包將出現問題。由此導致現有系統(tǒng)在3S終端并發(fā)接入方面存在并行接入數量的限制、同時對接入數據的并行處理以及實施數據分析方面存在較嚴重的性能問題。
發(fā)明內容
本發(fā)明所要解決的技術問題在于克服現有技術的不足,提供一種3S空間數據處理系統(tǒng),能夠顯著提高系統(tǒng)對大數據量的3S空間數據的傳輸和處理效率。
本發(fā)明具體采用以下技術方案解決上述技術問題。一種3S空間數據處理系統(tǒng),包括3S服務器和多個3S數據終端,3S服務器接收 3S數據終端傳輸的3S空間數據并進行處理,3S服務器按照以下方法接收并處理3S
數據終端傳輸的3S空間數據
3S數據終端實時連接到3S服務器,3S服務器啟動一個服務進程,服務進程啟動時開啟至少一個3S數據處理線程和一個3S數據接收線程,同時開辟一段3S動態(tài)數據存儲區(qū);3S 數據接收線程通過socket偵聽并接收3S空間數據,并把接收到的3S空間數據放入3S動態(tài)數據存儲區(qū);3S數據處理線程對3S動態(tài)數據存儲區(qū)進行輪詢,如果3S動態(tài)數據存儲區(qū)存在3S空間數據,則從3S動態(tài)數據存儲區(qū)中依次取出3S空間數據并對3S空間數據進行判斷,如果取得的3S空間數據是基于上一個數據包的3S空間數據,則對3S空間數據進行組包并判斷3S空間數據是否是基于上一個包的最后數據,如果不是,則繼續(xù)從3S動態(tài)數據存儲區(qū)中取3S空間數據,直到取得的是基于同一個業(yè)務的最后一個3S數據包,則組包完成; 將完整的基于同一業(yè)務的3S空間數據進行后續(xù)業(yè)務處理。本發(fā)明通過將3S空間數據的接收與處理分離,解決了系統(tǒng)接收、處理3S空間數據的瓶頸;通過多線程輪詢,解決了接收后對數據按順序進行組包的難題;本發(fā)明可顯著提高處理3S空間數據接收效率以及顯著提高3S空間數據密集型計算和處理能力,并使系統(tǒng)穩(wěn)定性得以提聞。
圖I為本發(fā)明的3S空間數據接處理系統(tǒng)的原理示意圖2為本發(fā)明的3S空間數據接處理系統(tǒng)中3S服務器的工作流程示意圖。
具體實施例方式下面結合附圖對本發(fā)明的技術方案進行詳細說明
本發(fā)明的思路是通過將數據接收與處理分離,解決系統(tǒng)接收、處理3S空間數據的瓶頸;通過多線程輪詢,解決接收后對數據按順序進行組包的難題。本發(fā)明的關鍵在于數據接收和處理的分離,即服務端進程啟動時,開啟M(M為大于或等于I的整數,可以根據業(yè)務處理數據量大小以及服務器性能進行配置)個3S數據處理線程和一個3S數據接收線程,并開辟一片3S動態(tài)數據存儲區(qū)。本發(fā)明3S空間數據接處理系統(tǒng)的原理如圖I所示。本發(fā)明中3S服務器的工作流程如圖2所示,具體包括以下步驟
步驟I、3S服務器啟動一個服務進程,服務進程啟動時,開啟M個3S數據處理線程D,開啟一個3S數據接收線程R,同時在程序中開辟一段用于存儲接收到的3S空間數據的動態(tài)數據存儲區(qū)S,并按照FIFO方式管理動態(tài)數據存儲區(qū)S ;M為大于或等于I的整數,可根據業(yè)務處理數據量大小以及服務器性能進行靈活配置;
步驟2、3S數據接收線程R通過socket偵聽并接收3S數據終端傳過來的3S空間數據, 直接把數據放入動態(tài)數據存儲區(qū)S,立即返回繼續(xù)偵聽接收3S數據終端數據;
步驟3、3S數據處理線程D對動態(tài)數據存儲區(qū)S進行輪詢,如果動態(tài)數據存儲區(qū)S中存在數據,則從動態(tài)數據存儲區(qū)S中依次取出數據并對數據進行判斷如果取得的數據是基于上一個數據包的數據,則對數據進行組包并判斷數據是否是基于上一個包的最后數據,如果不是,則繼續(xù)從動態(tài)數據存儲區(qū)S中取數據,直到取得的是基于同一個業(yè)務的最后一個數據包,則組包完成;
步驟4、對完成組包的完整的基于同一業(yè)務的數據進行后續(xù)的業(yè)務處理。本發(fā)明通過將數據接收與處理分離,解決了系統(tǒng)接收、處理3S空間數據的瓶頸, 通過多線程輪詢,解決了接收后對數據按順序進行組包的難題,顯著提高了 3S數據終端接入率與接入效率,同時基于3S空間數據的密集型計算性能得到顯著提高,使系統(tǒng)穩(wěn)定性更可靠。
權利要求
1.一種3S空間數據處理系統(tǒng),包括3S服務器和多個3S數據終端,3S服務器接收3S 數據終端傳輸的3S空間數據并進行處理,其特征在于,3S服務器按照以下方法接收并處理 3S數據終端傳輸的3S空間數據3S數據終端實時連接到3S服務器,3S服務器啟動一個服務進程,服務進程啟動時開啟至少一個3S數據處理線程和一個3S數據接收線程,同時開辟一段3S動態(tài)數據存儲區(qū);3S 數據接收線程通過socket偵聽并接收3S空間數據,并把接收到的3S空間數據放入3S動態(tài)數據存儲區(qū);3S數據處理線程對3S動態(tài)數據存儲區(qū)進行輪詢,如果3S動態(tài)數據存儲區(qū)存在3S空間數據,則從3S動態(tài)數據存儲區(qū)中依次取出3S空間數據并對3S空間數據進行判斷,如果取得的3S空間數據是基于上一個數據包的3S空間數據,則對3S空間數據進行組包并判斷3S空間數據是否是基于上一個包的最后數據,如果不是,則繼續(xù)從3S動態(tài)數據存儲區(qū)中取3S空間數據,直到取得的是基于同一個業(yè)務的最后一個3S數據包,則組包完成; 將完整的基于同一業(yè)務的3S空間數據進行后續(xù)業(yè)務處理。
全文摘要
本發(fā)明公開了一種3S空間數據處理系統(tǒng),屬于計算機3S空間數據處理技術領域。本發(fā)明的3S空間數據接處理系統(tǒng),包括3S服務器和多個3S數據終端,3S服務器在處理3S數據終端傳輸的3S空間數據時,通過將3S空間數據的接收與處理分離,解決了系統(tǒng)接收、處理3S空間數據的瓶頸;通過多線程輪詢,解決了接收后對數據按順序進行組包的難題。本發(fā)明可顯著提高3S空間數據的數據接收與海量3S數據密集型處理的效率,提高3S系統(tǒng)穩(wěn)定性。
文檔編號H04L29/06GK102594831SQ20121005594
公開日2012年7月18日 申請日期2012年3月6日 優(yōu)先權日2012年3月6日
發(fā)明者彭建華, 徐立中, 李曉芳 申請人:河海大學