欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種傳送仿真數(shù)據(jù)的通信系統(tǒng)的制作方法

文檔序號:7724678閱讀:180來源:國知局
專利名稱:一種傳送仿真數(shù)據(jù)的通信系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種通信系統(tǒng),特別是關(guān)于一種適用于測控系統(tǒng)中傳送仿真數(shù)據(jù)的通信系統(tǒng)。
背景技術(shù)
測控領(lǐng)域的通信系統(tǒng)和普通局域網(wǎng)或廣域網(wǎng)的通信系統(tǒng)是有所區(qū)別的,首先測控領(lǐng)域的客戶端是可以預(yù)知和可以控制的,其次測控領(lǐng)域的通信系統(tǒng)對實時性有一定要求, 特別是數(shù)據(jù)量比較小的測控數(shù)據(jù),比如溫度、壓力、流量等數(shù)據(jù)的傳送一般對響應(yīng)速度有較高的要求。隨著測控領(lǐng)域的不斷發(fā)展,測控系統(tǒng)所實現(xiàn)的功能也越來越強,為了提高測控系統(tǒng)的可靠性,在測控系統(tǒng)中一般都增加了對控制對象或執(zhí)行器的仿真功能,測控系統(tǒng)中仿真功能的加入對通信系統(tǒng)也提出了特殊要求。一般通用通信系統(tǒng)進行數(shù)據(jù)傳輸時沒有數(shù)據(jù)狀態(tài)識別功能,在數(shù)據(jù)傳輸中通信系統(tǒng)不清楚哪些數(shù)據(jù)是狀態(tài)數(shù)據(jù),哪些數(shù)據(jù)是非狀態(tài)數(shù)據(jù),數(shù)據(jù)狀態(tài)識別的工作一般交由通信系統(tǒng)更高一級去處理。采用通用通信系統(tǒng)進行數(shù)據(jù)傳輸時,為了適應(yīng)狀態(tài)數(shù)據(jù)和非狀態(tài)數(shù)據(jù),通信往往采用多種通信協(xié)議。有時為了簡化通信系統(tǒng)則把所有的數(shù)據(jù)狀態(tài)都變成單一數(shù)據(jù)狀態(tài),但如果把所有的數(shù)據(jù)都轉(zhuǎn)化為非狀態(tài)數(shù)據(jù)會降低通信系統(tǒng)的功能;如果把所有的數(shù)據(jù)都轉(zhuǎn)化為狀態(tài)數(shù)據(jù)會增加通信系統(tǒng)的開銷,增加通信系統(tǒng)處理數(shù)據(jù)的負擔(dān),使通信效率變低。而且一般通用型通信系統(tǒng)不包括有針對性的進程控制和監(jiān)視功能,進程控制和監(jiān)視的工作往往交由其它系統(tǒng)完成,這增加了整個系統(tǒng)的復(fù)雜度。測控領(lǐng)域通信系統(tǒng)數(shù)據(jù)通信的重點是保證數(shù)據(jù)的安全性與完整性,客戶端與服務(wù)器端之間的數(shù)據(jù)通信更強調(diào)測控數(shù)據(jù)命令和仿真數(shù)據(jù)命令處理的效率。處理仿真命令有獨占資源的性質(zhì)并且比較消耗資源,并需要盡量避免仿真進程被其它進程干擾,特別在每個客戶端單個進程使用計算服務(wù)資源時。當(dāng)通信系統(tǒng)出現(xiàn)暫態(tài)線路故障時,客戶端可能無法再次請求仿真服務(wù),因為這時客戶端的標識已經(jīng)被記錄,由于每個客戶單個進程使用計算服務(wù)資源的特征,服務(wù)器端可能認為同一客戶端進行了二次請求,從而拒絕客戶端的請求, 而服務(wù)器端也可能正在等待客戶端收到仿真數(shù)據(jù)的應(yīng)答,該客戶端已經(jīng)進入無限等待狀態(tài),無法與服務(wù)器端通信。

發(fā)明內(nèi)容
針對上述問題,本發(fā)明的目的是提供一種采用同構(gòu)應(yīng)答方式進行數(shù)據(jù)通信,并且具有數(shù)據(jù)識別功能、數(shù)據(jù)完整性和安全性檢測功能、超時定時提醒功能以及外部進程啟動與監(jiān)視功能的用于測控系統(tǒng)中傳送仿真數(shù)據(jù)的通信系統(tǒng)。為實現(xiàn)上述目的,本發(fā)明采取以下技術(shù)方案一種傳送仿真數(shù)據(jù)的通信系統(tǒng),其特征在于它包括若干客戶端和一服務(wù)器端;所述服務(wù)器端包括一監(jiān)視模塊、一數(shù)據(jù)狀態(tài)識別模塊、一非狀態(tài)數(shù)據(jù)接收模塊、一狀態(tài)數(shù)據(jù)接收模塊、一通信子進程模塊和一仿真服務(wù)處理模塊;所述監(jiān)視模塊包括一完整性檢測模塊、一安全性檢測模塊和一外部進程監(jiān)視模塊;所述客戶端發(fā)送測控數(shù)據(jù)或仿真數(shù)據(jù)到所述服務(wù)器端,所述服務(wù)器端將接收到的數(shù)據(jù)發(fā)送到所述監(jiān)視模塊,所述監(jiān)視模塊依次通過其內(nèi)的所述完整性檢測模塊和安全性檢測模塊對數(shù)據(jù)進行完整性檢測和安全性檢測;如果客戶端是合法客戶,則把數(shù)據(jù)發(fā)送給所述數(shù)據(jù)狀態(tài)識別模塊;否則回到所述客戶端;所述數(shù)據(jù)狀態(tài)識別模塊對數(shù)據(jù)進行解析,如果識別得到是非狀態(tài)數(shù)據(jù),則通過所述非狀態(tài)數(shù)據(jù)接收模塊將數(shù)據(jù)傳給共享數(shù)據(jù)交換區(qū),完成測控數(shù)據(jù)的通信;如果識別得到的數(shù)據(jù)是狀態(tài)數(shù)據(jù),則通過所述狀態(tài)數(shù)據(jù)接收模塊啟動所述通信子進程模塊,進入所述仿真服務(wù)處理模塊對數(shù)據(jù)進行處理,并將處理結(jié)果送入共享數(shù)據(jù)交換區(qū),由通信子進程將仿真結(jié)果發(fā)送給所述客戶端,完成仿真數(shù)據(jù)的通信。所述客戶端設(shè)置有一個控制與所述服務(wù)器端通信時間的定時器,所述服務(wù)器端設(shè)置有一個用于監(jiān)視與客戶端通信時間的定時器,以及另一個對仿真進程的執(zhí)行時間進行控制的定時器。數(shù)據(jù)傳送的格式采用四元組數(shù)據(jù)STATE、ID、CMD和XML,所述四元組數(shù)據(jù)以鍵值對的形式封裝在“ H ”大括號中,根據(jù)STATE的內(nèi)容將通信的數(shù)據(jù)分為狀態(tài)數(shù)據(jù)和非狀態(tài)數(shù)據(jù),非狀態(tài)數(shù)據(jù)由一個總通信進程進行處理,狀態(tài)數(shù)據(jù)則以每客戶單一進程的方式進行處理。所述完整性檢測模塊是通過所述四元組的“ {} ”大括號是否匹配進行完整性檢測。本發(fā)明由于采取以上技術(shù)方案,其具有以下優(yōu)點1、本發(fā)明由于采用數(shù)據(jù)狀態(tài)識別模塊根據(jù)STATE對所要傳輸?shù)臓顟B(tài)數(shù)據(jù)和非狀態(tài)數(shù)據(jù)進行識別,使不同的客戶端請求對應(yīng)不同的服務(wù)進程,從而兼顧到了服務(wù)響應(yīng)速度和服務(wù)所提供的功能。2、本發(fā)明由于采用安全檢測模塊可以確保每個客戶端單個進程使用計算服務(wù)資源,以便仿真服務(wù)進程不會重復(fù)地運行,從而保證了仿真服務(wù)的質(zhì)量和響應(yīng)時間。3、本發(fā)明由于采用外部進程監(jiān)視模塊, 為數(shù)據(jù)通信與外部進程提供了一個可以主動監(jiān)控仿真進程的接口,以便通信系統(tǒng)可以觸發(fā)仿真進程,了解仿真服務(wù)進程運行情況,并及時獲取仿真服務(wù)的結(jié)果。4、本發(fā)明由于設(shè)置有定時器,可以有效解決通信無限等待的問題。5、本發(fā)明采用四元組數(shù)據(jù)格式以及同構(gòu)應(yīng)答的通信握手方式,極大簡化了通信過程中的命令響應(yīng)方式與數(shù)據(jù)提取的工作,而數(shù)據(jù)的XML 項的表示方式不僅方便了數(shù)據(jù)值的處理,同時也增強了數(shù)據(jù)表示的可擴展性。6、本發(fā)明的四元組的數(shù)據(jù)以鍵值對的形式封裝在“ {} ”大括號中,由于有許多方法可以直接處理上述形式的列表,例如JSON規(guī)范或PYTHON中列表數(shù)據(jù)類型,所以可以簡化通信的數(shù)據(jù)處理,同時通過匹配大括號對可以方便地傳輸超長數(shù)據(jù),也簡化了超長數(shù)據(jù)的處理過程。因此,本發(fā)明可以廣泛應(yīng)用于測控領(lǐng)域傳送仿真數(shù)據(jù)的通信系統(tǒng)中。


圖1是本發(fā)明通信系統(tǒng)的總體結(jié)構(gòu)示意圖;圖2是本發(fā)明客戶端和服務(wù)器端的數(shù)據(jù)處理流程圖;圖3是本發(fā)明安全性驗證流程圖;圖4是本發(fā)明的創(chuàng)建通信子進程和命令解析流程圖;圖5是本發(fā)明仿真命令處理流程圖。
具體實施方式
下面結(jié)合附圖和實施例對本發(fā)明進行詳細的描述。如圖1所示,本發(fā)明的通信系統(tǒng)包括若干客戶端1和一服務(wù)器端2。本發(fā)明的服務(wù)器端2包括一監(jiān)視模塊3、一數(shù)據(jù)狀態(tài)識別模塊4、一非狀態(tài)數(shù)據(jù)接收模塊5、一狀態(tài)數(shù)據(jù)接收模塊6、一通信子進程模塊7和一仿真服務(wù)處理模塊8。其中,監(jiān)視模塊3包括一完整性檢測模塊31、一安全性檢測模塊32和一外部進程監(jiān)視模塊33。為了保證客戶端1和服務(wù)器端2正確的通信連接,本發(fā)明的通信系統(tǒng)在數(shù)據(jù)通信發(fā)起之前首先要對客戶端1和服務(wù)器端2進行數(shù)據(jù)的初始化連接設(shè)置,初始化連接設(shè)置完成之后,客戶端1根據(jù)具體需求發(fā)送測控數(shù)據(jù)或仿真數(shù)據(jù)到服務(wù)器端2,服務(wù)器端2接收到數(shù)據(jù)后,監(jiān)視模塊3的完整性檢測模塊31完成數(shù)據(jù)完整性檢測。如果數(shù)據(jù)的大括號是不匹配的,則進入數(shù)據(jù)監(jiān)聽狀態(tài),查看是否有新的數(shù)據(jù)到達,如果數(shù)據(jù)的大括號是匹配的,則把數(shù)據(jù)發(fā)送到安全性檢測模塊32進行安全性檢測,并提取數(shù)據(jù)的命令項。檢測得知客戶端1 是合法客戶后,數(shù)據(jù)狀態(tài)識別模塊4接收數(shù)據(jù)之后則對數(shù)據(jù)的命令項STATE進行解析,根據(jù) STATE來判斷數(shù)據(jù)的狀態(tài),如果判斷得知是非狀態(tài)數(shù)據(jù)則把非狀態(tài)數(shù)據(jù)發(fā)送到非狀態(tài)數(shù)據(jù)接收模塊5直接將接收到的數(shù)據(jù)傳給共享數(shù)據(jù)交換區(qū),其它的應(yīng)用系統(tǒng)從共享緩存區(qū)取出測控數(shù)據(jù),從而完成測控數(shù)據(jù)的通信;如果判斷得知是狀態(tài)數(shù)據(jù),則把狀態(tài)數(shù)據(jù)傳送給狀態(tài)數(shù)據(jù)接收模塊6,啟動通信子進程模塊7,進入仿真服務(wù)處理模塊8對數(shù)據(jù)進行處理,同時進入外部進程監(jiān)視模塊33以監(jiān)視仿真進程的運行狀態(tài)。當(dāng)仿真任務(wù)完成之后通信子進程會從共享數(shù)據(jù)區(qū)取出仿真處理結(jié)果,然后發(fā)送給客戶端1,從而完成仿真數(shù)據(jù)的通信。上述實施例中,本發(fā)明的通信系統(tǒng)還設(shè)置有三個定時器9、10、11,其中一個定時器 9設(shè)置在客戶端1,可以對服務(wù)器端2的響應(yīng)時間進行設(shè)置,負責(zé)監(jiān)視和服務(wù)器端2的通信是否超時,如果長時間接收不到服務(wù)器端2的回應(yīng),則定時器9顯示超時,則客戶端1強制退出對服務(wù)器端2的數(shù)據(jù)處理結(jié)果的無限等待,客戶端1重新發(fā)送數(shù)據(jù)命令請求。另外兩個定時器10、11設(shè)置在服務(wù)器端2,其中一個定時器10用于監(jiān)視和客戶端1的通信是否超時,另外一個定時器11負責(zé)監(jiān)視服務(wù)器端2的外部進程的運行情況,主要是對仿真進程的執(zhí)行時間進行設(shè)置,如果仿真進程長時間運行,則定時器11顯示超時,服務(wù)器端2強行終止運行時間過長的仿真任務(wù),并強行結(jié)束外部進程的運行。如圖2所示,下面進一步說明客戶端1和服務(wù)器端2的數(shù)據(jù)傳輸和處理過程,其具體過程為1、客戶端1的數(shù)據(jù)傳輸和處理過程為1)客戶端1對數(shù)據(jù)進行初始化連接設(shè)置客戶端1完成數(shù)據(jù)采集和處理并根據(jù)需要發(fā)出通信命令,在發(fā)起數(shù)據(jù)通信之前首先要進行初始化連接設(shè)置,發(fā)起初始連接請求,初始化連接設(shè)置的目的是方便和底層協(xié)議建立聯(lián)系并為底層協(xié)議指明數(shù)據(jù)的目的地和端口,本發(fā)明進行初始化連接的目的是為和服務(wù)器端2匹配好相應(yīng)的參數(shù),為數(shù)據(jù)的發(fā)送和接收設(shè)置好相應(yīng)的數(shù)據(jù)緩存區(qū),由于底層協(xié)議和操作系統(tǒng)的不同,可以選擇不同的方法進行初始化連接設(shè)置。由于本發(fā)明是具有針對性的數(shù)據(jù)傳輸,因此把測控數(shù)據(jù)定義為非狀態(tài)數(shù)據(jù)而把與仿真有關(guān)的數(shù)據(jù)定義為狀態(tài)數(shù)據(jù),相應(yīng)地,本發(fā)明設(shè)置有測控數(shù)據(jù)緩存區(qū)和仿真數(shù)據(jù)緩存區(qū),測控數(shù)據(jù)緩存區(qū)用于收、發(fā)測控數(shù)據(jù),仿真數(shù)據(jù)緩存區(qū)用于收、發(fā)仿真數(shù)據(jù)。測控數(shù)據(jù)緩存區(qū)的大小是固定的,因為測控數(shù)據(jù)類型與數(shù)量基本是固定的,而仿真數(shù)據(jù)緩存區(qū)是一種動態(tài)交換緩存區(qū),當(dāng)數(shù)據(jù)過大時可以將部分仿真數(shù)據(jù)映射到非易失存儲介質(zhì)中,比如固體盤或硬盤中,這樣可以保證接收或發(fā)送超長數(shù)據(jù)。仿真數(shù)據(jù)緩存區(qū)由通信子進程負責(zé)管理, 每個通信子進程都有屬于自己專有的仿真數(shù)據(jù)緩存區(qū),客戶端1將定期檢查數(shù)據(jù)緩存區(qū)的狀態(tài),當(dāng)發(fā)送數(shù)據(jù)緩存區(qū)填滿后將觸發(fā)數(shù)據(jù)發(fā)送的過程,而當(dāng)接收數(shù)據(jù)緩存區(qū)填滿后會觸發(fā)接收數(shù)據(jù)的過程。本發(fā)明定義數(shù)據(jù)進行初始化連接的命令為{STATE 〃 . · · 〃,ID 〃 . · · 〃,CMD 〃 beginConnect 〃,XML 〃 . · · 〃 },其對應(yīng)的四元組的解釋為{狀態(tài)標簽〃...",標識〃...〃,命令〃初始化連接〃,數(shù)據(jù)〃 ..."}。本發(fā)明以測控數(shù)據(jù)連接為實施例對數(shù)據(jù)進行初始化連接的命令為{STATE “ 0 〃,ID “測控點 1 “,CMD “ beginConnect “, XML “ <nodes><node id = “I" Xtemperature>315<temperatureXunit>Celsi us</unit></node></nodes>" },上述初始化連接的命令中,STATE表示數(shù)據(jù)的狀態(tài),其中0表示非狀態(tài)數(shù)據(jù),1表示為狀態(tài)數(shù)據(jù),此處為0則為非狀態(tài)數(shù)據(jù);ID表示客戶標識,其作用類似于用戶名,但有時還可以包含客戶性質(zhì)與位置信息,CMD表示通信命令,beginConnect命令表示初始化連接命令,XML表示數(shù)據(jù)項,后面XML格式的數(shù)據(jù)表示測控點1的溫度是315攝氏度。對于仿真數(shù)據(jù)的初始化連接只在客戶端1啟動時觸發(fā)運行一次即可,因為服務(wù)器端2可以注冊該客戶并保留著該客戶的連接,所以該客戶只要仿真緩存區(qū)滿就可以隨時與服務(wù)器端通信系統(tǒng)通信,不用再次發(fā)送初始化連接命令。2)客戶端1驗證相關(guān)的通信命令對數(shù)據(jù)初始化設(shè)置完成以后,客戶端1開始驗證服務(wù)器端2發(fā)回的相關(guān)非狀態(tài)數(shù)據(jù)命令或狀態(tài)數(shù)據(jù)命令的格式是否正確,主要是驗證四元組數(shù)據(jù)格式中的各項是否匹配, 由于對于所傳數(shù)據(jù)的說明是通過XML中的子元素定義的,由于XML的描述性很強,服務(wù)器端又有與命令項對應(yīng)的schema (格式定義),schema是針對XML數(shù)據(jù)格式的定義與說明,所以可以較容易地驗證所傳數(shù)據(jù)格式是否正確。3)數(shù)據(jù)發(fā)送和接收當(dāng)客戶端1和服務(wù)器端2完成初始化連接設(shè)置后,當(dāng)發(fā)送數(shù)據(jù)緩沖區(qū)滿時,則把數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)發(fā)送到服務(wù)器端2,監(jiān)視模塊3對數(shù)據(jù)接收狀況進行監(jiān)聽,判斷是否有已經(jīng)處理完的非狀態(tài)數(shù)據(jù),同時監(jiān)聽服務(wù)器端2的仿真任務(wù)的回應(yīng)是否已經(jīng)到達。這兩個監(jiān)聽過程異步執(zhí)行,以確??蛻舳?的其它進程不會因此受到影響。當(dāng)監(jiān)視模塊3監(jiān)聽到服務(wù)器端2有數(shù)據(jù)到達時,服務(wù)器端2進行數(shù)據(jù)接收,客戶端 1和服務(wù)器端2之間的數(shù)據(jù)握手是采用同構(gòu)應(yīng)答的方式,即發(fā)送與接收的數(shù)據(jù)中四元組的前3個是一致的,數(shù)據(jù)是否同構(gòu)是指數(shù)據(jù)包的主要鍵是否都相同,其中主要鍵是指數(shù)據(jù)列表中的前3個鍵,當(dāng)發(fā)送與接收的數(shù)據(jù)包是非同構(gòu)時則屬于出錯狀態(tài),如果發(fā)生錯誤則對錯誤進行處理,如果沒有發(fā)生錯誤則將XML中的數(shù)據(jù)交由其它應(yīng)用進程處理,整個客戶端1 的數(shù)據(jù)通信過程完成,例如上述實施例中測控點1,send命令所對應(yīng)的接收數(shù)據(jù)包的格式應(yīng)有如下形式{STATE 〃 0〃,ID 〃 測控點 1〃,CMD “ send",XML 〃 .··〃,···}。
最后面的省略號表示數(shù)據(jù)包的其它項,四元組的數(shù)據(jù)格式除了 4個常規(guī)鍵以外還可以擴展,不同命令可以有不同的擴展鍵,即可以擴展成η元組,η元組中的其它項起到輔助通信或輔助數(shù)據(jù)描述的作用。這一擴展方式不僅可以應(yīng)用于數(shù)據(jù)接收數(shù)據(jù)包的定義,也可用于發(fā)送數(shù)據(jù)包的定義,這種機制增強了整個通信系統(tǒng)的可擴展性和適應(yīng)性。2、服務(wù)器端2的數(shù)據(jù)傳輸和處理過程為1)驗證接收到的數(shù)據(jù)是否完整在完成類似客戶端1對數(shù)據(jù)初始化連接設(shè)置后,客戶端1將測控數(shù)據(jù)或仿真數(shù)據(jù)發(fā)送至服務(wù)器端2,服務(wù)器端2完成數(shù)據(jù)接收,監(jiān)視模塊3監(jiān)聽到有數(shù)據(jù)到達時,完整性檢測模塊31完成對數(shù)據(jù)完整性驗證,驗證所接收到的數(shù)據(jù)格式是否正確,其具體過程如下首先對接收到的數(shù)據(jù)包進行字符處理,去掉不需要的通信用控制字符,并將某些轉(zhuǎn)義字符恢復(fù)成原意判斷大括號是否匹配,如果不匹配則進入數(shù)據(jù)接收監(jiān)聽狀態(tài),監(jiān)聽是否有新的數(shù)據(jù),如果數(shù)據(jù)匹配則把數(shù)據(jù)發(fā)送到安全性檢測模塊32對數(shù)據(jù)進行安全性檢測。上述實施例中,在對數(shù)據(jù)發(fā)送或接收時采用大括號配對的方法,因為有時需要發(fā)送或接收的數(shù)據(jù)較長,在一個數(shù)據(jù)包中放不下,需要對長數(shù)據(jù)進行切割,封裝成多包數(shù)據(jù)分別發(fā)送和接收,大括號配對是指對長數(shù)據(jù)的發(fā)送或接收,如果左側(cè)的“ {”數(shù)量等于右側(cè)“},, 的數(shù)量,則可以認為數(shù)據(jù)包發(fā)送或接收完畢,以保證數(shù)據(jù)包的列表格式的完整性,如果在原始的發(fā)送數(shù)據(jù)中存在大括號則需要在發(fā)送時把大括號轉(zhuǎn)義為其它字符。2)驗證接收到的數(shù)據(jù)是否是合法用戶如果驗證數(shù)據(jù)是完整的,則把數(shù)據(jù)傳輸?shù)桨踩詸z測模塊32驗證客戶端1的登陸請求是否合法,非狀態(tài)數(shù)據(jù)和狀態(tài)數(shù)據(jù)的完整性和安全性驗證的過程是基本一致,本發(fā)明以狀態(tài)數(shù)據(jù)為實施例說明狀態(tài)數(shù)據(jù)的安全性驗證過程,其過程如下如圖3所示,驗證客戶端1是否合法,也就是驗證四元組數(shù)據(jù)中的ID是否已經(jīng)注冊,如果沒有注冊或客戶端1的驗證碼不符合要求則視為非法客戶端。接受到數(shù)據(jù)包時,如果確認客戶端ι是合法用戶之后,提取數(shù)據(jù)包中的命令項(CMD的鍵值)判斷是否是登錄請求,如果是登錄請求,則在登錄注冊表中檢查該用戶是否已經(jīng)登錄,如果已經(jīng)登錄則發(fā)出拒絕登錄響應(yīng),如果客戶端1是初次登錄,則要在登錄表中對客戶端信息進行注冊,如果不是登陸請求則轉(zhuǎn)入其它命令項進行處理。本發(fā)明的通信方式是每個客戶單進程方式,不允許客戶多次登錄,由于登錄表所記錄的信息量非常精簡,所以被放到內(nèi)存中以提高登錄客戶的驗證速度。上述實施例中,客戶端1的驗證碼和客戶端的ID事先寫在數(shù)據(jù)庫中,驗證碼在初始化連接過程中才使用,寫在XML鍵值中,數(shù)據(jù)庫的形式可以是關(guān)系型數(shù)據(jù)庫、XML文件、文本文件等多種形式,其主要作用是保存客戶信息。數(shù)據(jù)庫的維護不由通信系統(tǒng)負責(zé),而由應(yīng)用系統(tǒng)負責(zé),通信系統(tǒng)為應(yīng)用系統(tǒng)的檢索請求保留接口。3)創(chuàng)建和啟動通信子進程數(shù)據(jù)狀態(tài)識別模塊4根據(jù)四元組STATE鍵的情況判斷數(shù)據(jù)是非狀態(tài)型數(shù)據(jù)還是狀態(tài)型數(shù)據(jù)。如果判斷得知是非狀態(tài)型數(shù)據(jù)則直接發(fā)送給非狀態(tài)數(shù)據(jù)接收模塊5將接收到的數(shù)據(jù)傳給共享數(shù)據(jù)交換區(qū)從而完成測控數(shù)據(jù)的通信。如果判斷得知是狀態(tài)型數(shù)據(jù),狀態(tài)型數(shù)據(jù)接收模塊6接收狀態(tài)數(shù)據(jù),啟動通信子進程模塊7,啟動仿真服務(wù)處理模塊8,完成仿真任務(wù)的命令處理過程。
如圖4所示,本發(fā)明可以根據(jù)客戶標識對通信進程活動列表進行檢索,以判斷當(dāng)前請求的客戶端通信進程是否已經(jīng)創(chuàng)立。如果未建立則創(chuàng)建一個新的進程來響應(yīng)客戶端1 的通信請求,創(chuàng)建完成后啟動上述進程,然后返回到數(shù)據(jù)接收監(jiān)聽狀態(tài),通信子進程模塊7主要是監(jiān)聽否有狀態(tài)數(shù)據(jù)到達,每一個子進程都對應(yīng)著某一具體的客戶端,如果有狀態(tài)數(shù)據(jù)到達啟動通信子進程,接收數(shù)據(jù)并解析數(shù)據(jù)包中的命令項,然后轉(zhuǎn)到相應(yīng)的仿真命令處理過程,最后將處理仿真結(jié)果發(fā)送給客戶端1,隨后再次進入監(jiān)聽狀態(tài)。每個通信子進程都獨立地運行,互不干擾,這樣也保證了數(shù)據(jù)的獨立性。如果出現(xiàn)在客戶端1發(fā)出強制終止連接命令、通信過程檢測出錯誤、響應(yīng)超時這三種情況則終止通信子進程。上述實施例中,服務(wù)器端2的數(shù)據(jù)通信實際上依靠多個通信進程,能夠發(fā)起或創(chuàng)立其它通信進程的進程稱為總通信進程,該進程也負責(zé)非狀態(tài)數(shù)據(jù)的通信。由于客戶端1 的測控數(shù)據(jù)相對仿真數(shù)據(jù)來說數(shù)量較多,以這種類似主從式的無狀態(tài)通信可以極大減少服務(wù)器端的通信負載,而測控數(shù)據(jù)的單向通信較多的特點又保證這種方式不會降低測控系統(tǒng)的整體功能。其它通信進程對總通信進程的關(guān)系也比較密切,對接收數(shù)據(jù)的監(jiān)控由總通信進程負責(zé),在創(chuàng)立其他進程后總通信進程會把接收數(shù)據(jù)的監(jiān)聽功能部分地移交給由它所創(chuàng)立的通信子進程,這樣可以為狀態(tài)數(shù)據(jù)的通信建立一個針對某一客戶的專用通道,以保證仿真數(shù)據(jù)的結(jié)果可以較快地傳輸給客戶端,滿足某些仿真實時性的要求。4)對仿真命令進行處理,完成仿真任務(wù)如圖5所示,本發(fā)明以完成基本仿真任務(wù)的最小命令集為實例說明仿真數(shù)據(jù)處理的過程。仿真服務(wù)處理模塊8啟動仿真進程,從仿真進程共享數(shù)據(jù)區(qū)獲取仿真參數(shù),運行仿真進程,仿真任務(wù)完成之后,從仿真進程共享數(shù)據(jù)區(qū)獲取仿真結(jié)果,完成仿真任務(wù),同時將用戶標識從活動列表中刪除,以便客戶端可以再次啟動新的仿真進程。在仿真進程運行過程中,外部進程監(jiān)視模塊33監(jiān)視仿真進程,如果定時器11顯示仿真進程超時,則強制終止仿真進程,使得相應(yīng)的通信進程也強制性終止。本發(fā)明分別以一個非狀態(tài)數(shù)據(jù)的通信過程和狀態(tài)數(shù)據(jù)的通信過程為實施例客戶端1和服務(wù)器端2的數(shù)據(jù)數(shù)據(jù)通信過程。非狀態(tài)數(shù)據(jù)的通信過程客戶端1發(fā)送初始化連接設(shè)置命令{STATE 〃 0〃,ID:"測控點 1〃 ,CMD, “ beginConnect 〃,XML:〃 password" }
服務(wù)器端1發(fā)送初始化連接設(shè)置命令{STATE “ 0“ ,ID “測控點 1〃 , CMD, “ beginConnect" , XML “ pass" }客戶端1發(fā)送測控數(shù)據(jù){STATE "0",ID:"測控點 1",CMD, "send", XML:"
<nodes>
〈node id=〃測控點 1〃>
<temperature>315<temperatureXunit>Celsius</unit> </node>
</nodes>〃}服務(wù)器端2接收測控數(shù)據(jù){STATE “ 0“ ,ID “測控點 1〃 , CMD, “ send" , XML “ recieved" }狀態(tài)數(shù)據(jù)的通信過程客戶端1發(fā)送初始化連接設(shè)置命令{STATE 〃 1 〃,ID “仿真終端 2 〃,CMD, “ beginConnect “, XML “ password" }服務(wù)器端2發(fā)送發(fā)送初始化連接設(shè)置命令{STATE 〃 1",ID: 〃仿真終端 2" ,CMD, “ beginConnect",XML:" pass" }客戶端1發(fā)送仿真數(shù)據(jù)命令
{STATE 〃1〃,ID:〃仿真終端 2〃,CMD, "simulate〃,XML: "} <model>
用XML的方式描述仿真模型
〈/model〉"}服務(wù)器端2啟動仿真數(shù)據(jù)處理
{STATE 〃1〃,ID:〃仿真終端 2〃,CMD, "simulate〃,XML: 〃} <result>
用XML的方式描述仿真輸出結(jié)果
</result>〃} 上述實施例中,仿真命令包括saveScene,restoreScene禾口 s imulate,其含義分別為保存仿真環(huán)境,恢復(fù)仿真環(huán)境和啟動仿真進程。仿真環(huán)境是指客戶端1輸入的仿真數(shù)據(jù),仿真數(shù)據(jù)往往是一些物理對象的數(shù)學(xué)模型及參數(shù),為了方便以后還可以使用該模型,使用savekene命令可以將其保存在數(shù)據(jù)庫中,在需要的時候使用restoreScene命令可以將其恢復(fù),simulate命令可以啟動仿真進程,并將仿真的結(jié)果發(fā)送給客戶端1。simulate命令與其他命令處理方式最大的不同是異步性,其它命令過程是非異步執(zhí)行的,主要是由于仿真過程較長,為了盡快響應(yīng)客戶端1的其它服務(wù)請求,在啟動仿真之后應(yīng)立即返回通信進程,然后再定期監(jiān)視仿真服務(wù)是否結(jié)束。如果仿真任務(wù)結(jié)束則從共享緩存區(qū)取出仿真結(jié)果,然后發(fā)送給客戶端1。異步啟動仿真進程的另外一個優(yōu)點是通信進程和仿真進程的耦合性非常小,兩者只通過共享緩存區(qū)交換數(shù)據(jù)。所以不同廠商的仿真應(yīng)用進程可以很容易地和本通信系統(tǒng)結(jié)合起來組成系統(tǒng)。綜上所述,本發(fā)明采用在單一上層通信協(xié)議中通過對數(shù)據(jù)狀態(tài)進行識別,非狀態(tài)數(shù)據(jù)的通信采用共享通信進程的方式實現(xiàn),當(dāng)通信結(jié)束之后隨即返回監(jiān)聽狀態(tài),這種方式非常適合測控數(shù)據(jù)較多的情況,服務(wù)器端2不必為每種測控數(shù)據(jù)保持連接和狀態(tài)信息;而狀態(tài)數(shù)據(jù)的通信采用創(chuàng)建即保持的方式實現(xiàn),單次通信的完結(jié)并不會使進程銷毀,也就是創(chuàng)建的通信進程還保留著,雖然這種方法耗費資源,但提高通信的響應(yīng)速度,這在實時仿真時是非常重要的。上述各實施例僅用于說明本發(fā)明,其中各部件的結(jié)構(gòu)和實施方法都是可以有所變化的,在本發(fā)明技術(shù)方案的基礎(chǔ)上,凡根據(jù)本發(fā)明原理對個別步驟和配比進行的改進和等同變換,均不應(yīng)排除在本發(fā)明的保護范圍之外。
權(quán)利要求
1.一種傳送仿真數(shù)據(jù)的通信系統(tǒng),其特征在于它包括若干客戶端和一服務(wù)器端;所述服務(wù)器端包括一監(jiān)視模塊、一數(shù)據(jù)狀態(tài)識別模塊、一非狀態(tài)數(shù)據(jù)接收模塊、一狀態(tài)數(shù)據(jù)接收模塊、一通信子進程模塊和一仿真服務(wù)處理模塊;所述監(jiān)視模塊包括一完整性檢測模塊、 一安全性檢測模塊和一外部進程監(jiān)視模塊;所述客戶端發(fā)送測控數(shù)據(jù)或仿真數(shù)據(jù)到所述服務(wù)器端,所述服務(wù)器端將接收到的數(shù)據(jù)發(fā)送到所述監(jiān)視模塊,所述監(jiān)視模塊依次通過其內(nèi)的所述完整性檢測模塊和安全性檢測模塊對數(shù)據(jù)進行完整性檢測和安全性檢測;如果客戶端是合法客戶,則把數(shù)據(jù)發(fā)送給所述數(shù)據(jù)狀態(tài)識別模塊;否則回到所述客戶端;所述數(shù)據(jù)狀態(tài)識別模塊對數(shù)據(jù)進行解析,如果識別得到是非狀態(tài)數(shù)據(jù),則通過所述非狀態(tài)數(shù)據(jù)接收模塊將數(shù)據(jù)傳給共享數(shù)據(jù)交換區(qū),完成測控數(shù)據(jù)的通信;如果識別得到的數(shù)據(jù)是狀態(tài)數(shù)據(jù),則通過所述狀態(tài)數(shù)據(jù)接收模塊啟動所述通信子進程模塊,進入所述仿真服務(wù)處理模塊對數(shù)據(jù)進行處理,并將處理結(jié)果送入共享數(shù)據(jù)交換區(qū),由通信子進程將仿真結(jié)果發(fā)送給所述客戶端,完成仿真數(shù)據(jù)的通信。
2.如權(quán)利要求1所述的一種傳送仿真數(shù)據(jù)的通信系統(tǒng),其特征在于所述客戶端設(shè)置有一個控制與所述服務(wù)器端通信時間的定時器,所述服務(wù)器端設(shè)置有一個用于監(jiān)視與客戶端通信時間的定時器,以及另一個對仿真進程的執(zhí)行時間進行控制的定時器。
3.如權(quán)利要求1或2所述的一種傳送仿真數(shù)據(jù)的通信系統(tǒng),其特征在于數(shù)據(jù)傳送的格式采用四元組數(shù)據(jù)STATE、ID、CMD和XML,所述四元組數(shù)據(jù)以鍵值對的形式封裝在“ {} ” 大括號中,根據(jù)STATE的內(nèi)容將通信的數(shù)據(jù)分為狀態(tài)數(shù)據(jù)和非狀態(tài)數(shù)據(jù),非狀態(tài)數(shù)據(jù)由一個總通信進程進行處理,狀態(tài)數(shù)據(jù)則以每客戶單一進程的方式進行處理。
4.如權(quán)利要求3所述的一種傳送仿真數(shù)據(jù)的通信系統(tǒng),其特征在于所述完整性檢測模塊是通過所述四元組的“ {} ”大括號是否匹配進行完整性檢測。
全文摘要
本發(fā)明涉及一種傳送仿真數(shù)據(jù)的通信系統(tǒng),它包括若干客戶端和一服務(wù)器端;服務(wù)器端包括監(jiān)視模塊、數(shù)據(jù)狀態(tài)識別模塊、非狀態(tài)數(shù)據(jù)接收模塊、狀態(tài)數(shù)據(jù)接收模塊、通信子進程模塊和仿真服務(wù)處理模塊;客戶端發(fā)送數(shù)據(jù)到服務(wù)器端,服務(wù)器端將接收到的數(shù)據(jù)發(fā)送到監(jiān)視模塊,監(jiān)視模塊對數(shù)據(jù)進行檢測;如果客戶端是合法客戶,則把數(shù)據(jù)發(fā)送給數(shù)據(jù)狀態(tài)識別模塊;否則回到客戶端;數(shù)據(jù)狀態(tài)識別模塊對數(shù)據(jù)進行解析,如果是非狀態(tài)數(shù)據(jù),則通過非狀態(tài)數(shù)據(jù)接收模塊將數(shù)據(jù)傳給共享數(shù)據(jù)交換區(qū);如果是狀態(tài)數(shù)據(jù),則通過狀態(tài)數(shù)據(jù)接收模塊啟動通信子進程模塊,進入仿真服務(wù)處理模塊對數(shù)據(jù)進行處理,并將處理結(jié)果送入共享數(shù)據(jù)交換區(qū),由通信子進程將仿真結(jié)果發(fā)送給客戶端。本發(fā)明可以廣泛應(yīng)用于測控領(lǐng)域中傳送仿真數(shù)據(jù)的通信系統(tǒng)中。
文檔編號H04L29/08GK102325156SQ20111019720
公開日2012年1月18日 申請日期2011年7月14日 優(yōu)先權(quán)日2011年7月14日
發(fā)明者張敬尊, 王郁昕, 黃靜華 申請人:北京聯(lián)合大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
孙吴县| 综艺| 平罗县| 吉林省| 永仁县| 浦城县| 阜平县| 西充县| 修文县| 房产| 商洛市| 页游| 乌什县| 耒阳市| 安新县| 光山县| 依兰县| 仲巴县| 隆化县| 双辽市| 马关县| 澜沧| 宜兰县| 晋江市| 昌平区| 页游| 绵阳市| 新丰县| 巴东县| 如皋市| 天门市| 双江| 磴口县| 同江市| 托克逊县| 静宁县| 普陀区| 凤山县| 紫金县| 新津县| 鹤山市|