專利名稱:一種面向多學科虛擬實驗平臺的xml增量傳輸與交互方法
技術領域:
本發明屬于計算機應用領域,具體涉及一種面向多學科虛擬實驗平臺的XML增量傳輸與交互方法,該方法適合于實時交互頻繁且數據傳輸量大的虛擬實驗環境,提出了一種新的虛擬實驗前后臺交互方法。
背景技術:
隨著虛擬技術和網絡技術的飛速發展,通過信息網絡構建的虛擬實驗室已經成為可能。虛擬實驗教學可以為高校解決元器件不全,高檔設備器件奇缺,實驗管理困難等問題,同時也有利于學生的創新思維發展,提高學生實踐能力,所以為學生提供一個實時和友好的虛擬實驗環境越來越重要。XML(Extensible Markup Language)即可擴展標記語言,它與 HTML—樣,都是 SGML (Standard Generalized Markup Language,標準通用標記語言)。XML 是 Internet 環境中跨平臺的,依賴于內容的技術,是當前處理結構化文檔信息的有力工具。XML語言有很好的開放性,通過XML,我們可以在不兼容的系統之間交換數據;更重要的是XML允許通過 HTTP、TCL/IP和其他傳輸協議交換數據;基于DOM (Document Object Model)的XML解析可以很容易對XML文檔實現CRUD(Create、Read、Update and Delete)操作。XML的這些特性, 為虛擬實驗前臺客戶端與后臺建模仿真工具的數據通信提供了可靠的保障。多學科虛擬實驗平臺中,客戶端的虛擬實驗場景由XML描述組成,運行實驗場景需要將前端XML場景發送到后臺計算,由后臺計算節點解析XML,并對場景仿真建模,求出計算結果。但是由于XML具有自我描述性,使得XML顯得冗長,給數據的存儲和傳輸帶來極大的不便。一個虛擬實驗場景XML文件有幾百K的大小,與后臺的每一次交互都需要傳輸大量數據,交互實時性降低。特別是在以下的應用場景時,這種數據傳輸造成的網絡延遲問題將更加暴露無遺。 虛擬實驗用戶在做實驗過程中,需要實時向后臺請求智能指導,并及時返回指導信息。每當用戶修改了實驗場景時,智能指導需要前臺發送完整的XML場景數據到后臺。 特別當用戶多且頻繁修改場景時,這種大數據量的網絡傳輸必然造成嚴重的網絡延遲。 運行實驗、保存實驗和恢復實驗等這些實驗操作每次都需要向后臺仿真計算節點傳輸的場景數據,而且一次實驗過程中,這些操作會被多次使用,這種大數據量的傳輸引起的網絡延遲必然會影響實驗的交互實時性。由于XML數據自身的特點,決定了其數據冗余較大,由此造成了傳輸效率的降低。 針對這些問題,目前提出了許多基于XML數據的壓縮技術,比如Xmill、XMLPPM、XMLZip, XPRESS和XGRIND等等。這些壓縮方法都有很好的壓縮率,可以大大減少網絡傳輸的數據量,提高網絡傳輸效率,但一個幾百K大小的XML文件需要幾百毫秒的壓縮和解壓縮的時間。盡管采用壓縮技術可以很好地降低網絡傳輸延遲,但卻增加了額外的壓縮與解壓縮處理時間。虛擬實驗過程中還存在一個問題,如果用戶實驗過程中希望回退到前幾步的實驗場景,可以采用把場景保存到數據庫的方法,但這樣寫數據操作頻繁,效率不高,且一次完整實驗過程中無用場景數據過大,浪費大量空間。對于以上問題,我們發現虛擬實驗的XML場景數據是主要由各種元器件以及之間的連接關系組成的,當修改虛擬實驗場景時,可能僅僅是修改了場景中某個器件的屬性值, 或者增加了一個新的元器件等等,而這些操作相當于在XML結構中,修改了末端節點的內容或者增加了一個新的節點。基于虛擬實驗自身的這些特征,提出了一種XML增量傳輸與緩存的方式來解決XML數據過大導致網絡延遲問題,并在服務端使用二級緩存方法,實現場景的回退功能。
發明內容
本發明的目的在于提供一種面向多學科虛擬實驗平臺的XML增量傳輸與交互方法,該方法可以減少虛擬實驗交互過程中的數據傳輸量,保證整個實驗過程的實時性。本發明提供的一種面向多學科虛擬實驗平臺的XML增量傳輸與交互方法,包括如下步驟(1)初始化客戶端虛擬實驗場景時,服務端將初始場景XML數據緩存,并根據連接值建立緩存地址索引;同時將XML數據寫入磁盤,也根據連接值建立文件索引;(2)虛擬實驗客戶端檢測用戶的各種實驗操作動作,并將用戶的實驗命令以及增量的數據封裝起來,然后發送到服務端;(3)服務器接收到客戶端發送來的數據后,解析數據得到實驗命令、操作動作以及XML變動數據;根據解析出的實驗命令,并判斷是否為智能指導命令;如果是智能指導命令,轉入步驟;如果不是智能指導命令,則轉入步驟(5);所述智能指導是指根據用戶搭建的實驗場景智能地給出用戶幫助信息,指導用戶完成實驗任務;(4)根據增量數據和緩存的XML數據生成新的XML數據,更新緩存、磁盤文件以及相應的索引,并進行智能指導服務,轉入步驟(7);(5)判斷實驗命令是否為回退場景命令,如果是,則根據回退次數和索引信息找到對應的虛擬實驗場景XML文件,轉入步驟(7);如果不是,則跳轉到步驟(6);所述回退場景是指將實驗場景回退到若干次之前的狀態;(6)對于虛擬實驗的其它命令,則從緩存中獲取XML數據,并發送至相應的應用服務器;(7)將服務端得到的處理結果發送至客戶端。本發明為提高虛擬實驗過程中交互的實時性,采用了一種基于XML的數據增量傳輸機制,大大減小了網絡數據傳輸量,并緩存服務端的XML場景數據,提出一種新的虛擬實驗實時交互方法。本發明具有以下幾個特點(1)實時性好。采用一種基于事件響應的XML增量傳輸機制,當實驗場景發生變化時,實時向后臺發送增量數據。鑒于XML結構的特征,這種增量數據的傳輸往往只需要傳輸一個節點數據,或者更多的只是一個節點路徑與屬性值的數據,大大減少了網絡傳輸的數據量,降低網絡數據傳輸時間,具有很好的交互實時性。這種機制強調空間換取時間,以緩存數據達到減少網絡傳輸時間的目的。(2)為后臺仿真計算提供統一的接口,具有很好的擴展性和解耦性。將前臺所有的仿真計算請求由服務端調度分發給后臺仿真計算節點,降低了前臺與后臺仿真計算的耦合度。并且此交互模式可以應用到各種支持XML的仿真建模工具中,如Modelic^Matlab、 MateflotLabvei等等,適合多領域、多學科虛擬實驗的統一建模,可擴展性強。(3) 一種新的虛擬實驗前后臺交互模式。傳統的虛擬實驗客戶端需要與后臺非結構化存儲服務器、仿真計算服務器、Web服務器等等交互通信,實驗交互的復雜度高,不易統一管理和維護。本方法中采用約定的通信協議,可以將前臺各種服務請求(非結構化存儲服務、Web服務、仿真計算服務等等)統一由服務端解析并轉發給其它應用服務器處理,降低了實驗交互的復雜度,擁有良好的可用性。(4)采用二級緩存實現場景回退。將有限步驟之內的XML數據從內存再緩存到磁盤,可以實現場景的回退,并采用連接監聽回收機制,提高內存和磁盤空間有效利用率。當檢測到連接斷開時,通過緩存索引和文件索引可以迅速定位內存數據與磁盤文件,回收內存和磁盤空間,并更新索引。
圖1是本發明方法的總體流程圖。圖2是虛擬實驗初始數據緩存流程圖。圖3是服務端解析并處理實驗命令的流程圖。圖4是智能指導請求處理的流程圖。
具體實施例方式本發明根據XML結構特征以及虛擬實驗特點,引入了一種面向多學科虛擬實驗平臺的XML增量傳輸與交互方法,此方法將虛擬實驗交互過程中的實驗數據增量傳輸,并在服務端建立緩存,從而大大減少網絡傳輸數據量,提高虛擬實驗交互的實時性,并提出了一種新的虛擬實驗前后臺交互方法,具有很好的擴展性和解耦性。下面結合附圖和實例對本發明作詳細的說明。如圖1所示,本發明方法總共分為5個步驟,具體描述如下(1)初始化客戶端虛擬實驗場景時,服務端將初始場景XML數據緩存,并根據連接值建立緩存地址索引;同時將XML數據寫入磁盤,也根據連接值建立文件索引。其中,連接值(Connection Value)是客戶端與服務端建立的連接的唯一標識值, 服務端每建立一個TCP連接,都會生成一個連接值。(2)虛擬實驗客戶端檢測用戶的各種實驗操作動作,并將用戶的實驗命令以及增量的數據封裝起來,然后發送到服務端。用戶在虛擬實驗界面中的各種實驗操作動作,比如點擊運行實驗,添加一個新器件,刪除一根連接線等等,可以通過客戶端事件響應的方式檢測到。虛擬實驗中的實驗命令主要包括運行實驗、暫停實驗、保存實驗、停止實驗、請求智能指導、回退場景等等。其中,運行實驗是指后臺仿真計算虛擬實驗XML場景數據并返回仿真計算結果;保存實驗指將客戶端虛擬實驗場景保存到數據庫中;智能指導是指根據用戶搭建的實驗場景智能地給出用戶幫助信息,指導用戶完成實驗任務;回退場景是指將實驗場景回退到若干次之前的狀態。數據封裝格式由實驗命令、操作動作、XML變動數據和校驗位組成。例如當用戶修改了實驗場景中某個器件的屬性,客戶端就會請求智能指導,操作動作為修改節點屬性值, XML變動數據為節點路徑與修改后屬性值,將這些數據封裝發送給服務端。(3)服務器接收到客戶端發送來的數據后,解析數據得到實驗命令、操作動作以及 XML變動數據。根據解析出的實驗命令,并判斷是否為智能指導命令。如果是智能指導命令,轉入步驟;如果不是智能指導命令,則轉入步驟(5)。應用服務器提供的服務主要有仿真計算服務、數據庫存儲服務和智能指導服務等寸。(4)根據增量數據和緩存的XML數據生成新的XML數據,更新緩存、磁盤文件以及相應的索引,并進行智能指導服務,轉入步驟(7)。(5)判斷實驗命令是否為回退場景命令,如果是,則根據回退次數和索引信息找到對應的虛擬實驗場景XML文件,轉入步驟(7);如果不是,則跳轉到步驟(6)。(6)對于虛擬實驗的其它命令,則從緩存中獲取XML數據,并發送至相應的應用服務器。(7)將服務端得到的處理結果發送至客戶端。步驟(1)具體流程如圖2所示,該步驟包括下述過程(1. 1)服務端將XML數據緩存,然后從連接哈希表中獲取連接值,根據連接值查詢緩存索引,判斷是否存在此連接值的索引,如果不存在,則新添加一條新索引記錄,即建立緩存索引;如果存在,則更新緩存索引。(1. 2)服務端首先通過連接值查詢文件索引,判斷是否存在該連接值的文件索引, 如果不存在,則轉入步驟(1.3);如果存在,則轉入步驟(1.4)。(1. 3)將XML數據寫入磁盤,并根據連接值建立文件索引;(1. 4)判斷是否已經存在設置的最大條數索引記錄,如果存在,則刪除文件名稱數值最小的那個XML文件。然后將緩存的XML數據寫入磁盤,并根據最大文件名稱數值加一命名文件名,然后更新文件索引。XML文件的命名由連接值、寫入次數OVrite Time)、擴展名(XML)組成,此命名方式可以根據連接值和寫入次數快速找到需要的XML文件。步驟(4)具體流程如圖3所示。(4. 1)服務端根據操作動作(增加、刪除或者修改)與新增數據,合成一個新的 XML場景。(4. 2)服務端緩存新生成的XML場景,并回收前一次的緩存空間,然后更新緩存索引。(4. 3)將緩存的XML數據寫入磁盤,并更新文件索引,具體處理流程如下。(4. 3. 1)服務端判斷此連接值的文件索引中是否已經存在最大條數的索引信息, 如果存在,轉入步驟(4. 3. 2);如果不存在,轉入步驟(4. 3. 3)。(4.3.2)刪除最早寫入磁盤的XML文件,并更新文件索引。(4. 3. 3)將緩存的XML數據寫入磁盤,并根據最大文件名稱數值加一命名文件名, 然后更新文件索引。(4. 4)服務端進行智能指導服務,得到智能指導結果。步驟(5)具體流程如圖4所示。
(5. 1)解析實驗命令得到回退數,文件索引最大值減去回退次數并加一得到XML 文件名。(5. 2)查詢文件索引信息,判斷是否存在此文件名,如果存在,轉入步驟(5. 3);如果不存在,轉入步驟(5. 4)。(5. 3)根據索引信息找到對應的虛擬實驗場景XML文件。(5. 4)給出回退失敗提示信息。本發明不僅局限于上述具體實施方式
,本領域一般技術人員根據本發明公開的內容,可以采用其它多種具體實施方式
實施本發明,因此,凡是采用本發明的設計結構和思路,做一些簡單的變化或更改的設計,都落入本發明保護的范圍。
權利要求
1.一種面向多學科虛擬實驗平臺的XML增量傳輸與交互方法,包括如下步驟(1)初始化客戶端虛擬實驗場景時,服務端將初始場景XML數據緩存,并根據連接值建立緩存地址索引;同時將XML數據寫入磁盤,也根據連接值建立文件索引;(2)虛擬實驗客戶端檢測用戶的各種實驗操作動作,并將用戶的實驗命令以及增量的數據封裝起來,然后發送到服務端;(3)服務器接收到客戶端發送來的數據后,解析數據得到實驗命令、操作動作以及XML 變動數據;根據解析出的實驗命令,并判斷是否為智能指導命令;如果是智能指導命令,轉入步驟;如果不是智能指導命令,則轉入步驟(5);所述智能指導是指根據用戶搭建的實驗場景智能地給出用戶幫助信息,指導用戶完成實驗任務;(4)根據增量數據和緩存的XML數據生成新的XML數據,更新緩存、磁盤文件以及相應的索引,并進行智能指導服務,轉入步驟(7);(5)判斷實驗命令是否為回退場景命令,如果是,則根據回退次數和索引信息找到對應的虛擬實驗場景XML文件,轉入步驟(7);如果不是,則跳轉到步驟(6);所述回退場景是指將實驗場景回退到若干次之前的狀態;(6)對于虛擬實驗的其它命令,則從緩存中獲取XML數據,并發送至相應的應用服務器;(7)將服務端得到的處理結果發送至客戶端。
2.根據權利要求1所述的XML增量傳輸與交互方法,其特征在于,步驟(1)包括下述過程(1. 1)服務端將XML數據緩存,然后從連接哈希表中獲取連接值,根據連接值查詢緩存索引,判斷是否存在此連接值的索引,如果不存在,則新添加一條新索引記錄,即建立緩存索引;如果存在,則更新緩存索引;(1. 2)服務端首先通過連接值查詢文件索引,判斷是否存在該連接值的文件索引,如果不存在,則轉入步驟(1.3);如果存在,則轉入步驟(1.4);(1.3)將XML數據寫入磁盤,并根據連接值建立文件索引;(1. 4)判斷是否已經存在設置的最大條數索引記錄,如果存在,則刪除文件名稱數值最小的那個XML文件;然后將緩存的XML數據寫入磁盤,并根據最大文件名稱數值加一命名文件名,然后更新文件索引。
3.根據權利要求1所述的XML增量傳輸與交互方法,其特征在于,步驟(4)包括下述過程(4. 1)服務端根據操作動作與新增數據,合成一個新的XML場景;(4. 2)服務端緩存新生成的XML場景,并回收前一次的緩存空間,然后更新緩存索引;(4. 3)將緩存的XML數據寫入磁盤,并更新文件索引;(4. 4)服務端進行智能指導服務,得到智能指導結果。
4.根據權利要求1所述的XML增量傳輸與交互方法,其特征在于,步驟( 包括下述過程(5. 1)解析實驗命令得到回退數,文件索引最大值減去回退次數并加一得到XML文件名;(5.2)查詢文件索引信息,判斷是否存在此文件名,如果存在,轉入步驟(5.3);如果不存在,轉入步驟(5.4);(5. 3)根據索引信息找到對應的虛擬實驗場景XML文件; (5. 4)給出回退失敗提示信息。
5.根據權利要求3所述的XML增量傳輸與交互方法,其特征在于,步驟(4. 3)包括下述過程(4. 3. 1)服務端判斷此連接值的文件索引中是否已經存在最大條數的索引信息,如果存在,轉入步驟(4. 3. 2);如果不存在,轉入步驟(4. 3. 3);(4. 3. 2)刪除最早寫入磁盤的XML文件,并更新文件索引;(4. 3. 3)將緩存的XML數據寫入磁盤,并根據最大文件名稱數值加一命名文件名,然后更新文件索引。
全文摘要
本發明公開了一種面向多學科虛擬實驗平臺的XML增量傳輸與交互方法,屬于計算機應用領域。初始化時,服務端將初始場景XML數據緩存和寫入磁盤,并建立緩存和文件索引。客戶端檢測用戶的實驗操作動作,并將實驗命令以及增量的數據封裝起來,發送到服務端。解析實驗命令,如果是智能指導命令,根據增量數據和緩存的XML數據生成新的XML數據,更新緩存、磁盤文件以及相應的索引,并進行智能指導服務,如果是回退場景命令,根據回退次數和索引信息找到對應的虛擬實驗場景XML文件,如果是其它命令,則從緩存中獲取XML數據,并發送至相應的應用服務器。否則將服務端得到的處理結果發送至客戶端。本發明可以減少虛擬實驗交互過程中的數據傳輸量,保證整個實驗過程的實時性。
文檔編號G06F17/30GK102231164SQ20111018889
公開日2011年11月2日 申請日期2011年7月6日 優先權日2011年7月6日
發明者劉超, 張磊, 王曙光, 童圍, 董浩, 蔣文斌, 金海 , 馬瀟 申請人:華中科技大學