王保山,毛保華,劉海東,杜 鵬
(北京交通大學(xué)交通運輸學(xué)院,北京100044)
復(fù)雜系統(tǒng)的分布式仿真,由于受顯示設(shè)備的制約,需要通過多屏同步顯示不同區(qū)域的運行情況或者通過多屏分別顯示同一區(qū)域不同層次的運行狀況。多屏顯示系統(tǒng)與仿真系統(tǒng)同步運行,可以采取多種方案,不同方案對仿真系統(tǒng)的運行效率會有不同的影響,其顯示效果也有差別。因此,采用合理的方案能夠提供更好顯示效果,同時也能最大限度保證仿真系統(tǒng)的運行效率。
在網(wǎng)絡(luò)環(huán)境下的分布式仿真是多仿真器的復(fù)雜并行仿真,各仿真器按照其分工,在仿真同步控制器的控制下同步運行,產(chǎn)生的仿真結(jié)果經(jīng)仿真結(jié)果收集器匯總后發(fā)送給顯示器,網(wǎng)絡(luò)分布式仿真系統(tǒng)的體系結(jié)構(gòu)如圖1。
圖1 分布式仿真系統(tǒng)的體系結(jié)構(gòu)
從圖1看出,分布式的仿真系統(tǒng)由同步控制器、仿真器、結(jié)果收集器、顯示器和結(jié)果分析器等組成。一個復(fù)雜系統(tǒng)的仿真,其顯示器需要分為若干部分,分別顯示不同的局部,也可以顯示不同的層次,無論那種方式都要求滿足同步顯示的要求。
顯示器獲取仿真結(jié)果的方式有兩種:利用網(wǎng)絡(luò)通信獲取仿真結(jié)果和利用數(shù)據(jù)庫獲取仿真結(jié)果。
利用網(wǎng)絡(luò)獲取仿真結(jié)果,可以采用TCP方式和UDP方式。
TCP通信是點到點的通信,當同時設(shè)置多個顯示器時,需要分別與仿真系統(tǒng)建立通信連接,利用這些連接,將仿真結(jié)果傳給顯示器。信息的發(fā)送可以采取輪詢或迸發(fā)方式,輪詢方式是排隊發(fā)送,客戶數(shù)多時耗時較長;迸發(fā)方式即多線程方式,可以節(jié)省發(fā)送時間。
UDP是基于無連接的通信服務(wù),可以實現(xiàn)廣播式通信,也就是一點到多點的通信,無論顯示系統(tǒng)的數(shù)量是多少,只需要有一個公用的信息發(fā)布線程。
仿真器將仿真結(jié)果保存在數(shù)據(jù)庫中,顯示器可以從數(shù)據(jù)庫讀取仿真結(jié)果進行顯示。為了保證顯示的同步,需要在多個顯示器間進行控制,可以通過網(wǎng)絡(luò)實現(xiàn)控制。
從數(shù)據(jù)庫獲取仿真結(jié)果,顯示器需要作為數(shù)據(jù)庫的客戶端實時訪問數(shù)據(jù)庫,同時為了保證多個顯示系統(tǒng)顯示信息的一致性,需要通過網(wǎng)絡(luò)傳遞同步控制信號,同步信號的傳輸與利用網(wǎng)絡(luò)傳輸仿真結(jié)果的機制是一致的,只是傳輸?shù)男畔⒘啃。绻叫盘柗旁跀?shù)據(jù)庫中,這個信號也可以通過數(shù)據(jù)庫獲取,這時就需要顯示器以較高的頻率讀取數(shù)據(jù)庫,對數(shù)據(jù)庫服務(wù)器的效率影響較大,這一方案復(fù)雜度是最高的。
利用TCP通信傳輸仿真結(jié)果,可以將顯示器作為客戶機,仿真結(jié)果收集器作為服務(wù)器,在服務(wù)器端采用多線程同時與多個客戶機連接,利用這些線程將仿真結(jié)果并行發(fā)送給顯示系統(tǒng),為了保證顯示器的同步,需要在線程間進行同步,這一方案也具有較高的復(fù)雜性。
利用UDP方式傳輸仿真結(jié)果,可以實現(xiàn)廣播式的通信,將顯示器作為服務(wù)器,仿真結(jié)果收集器作為客戶機,客戶機以廣播的方式將仿真結(jié)果發(fā)送到網(wǎng)上,各顯示器將同時收到這些數(shù)據(jù),實現(xiàn)顯示同步,但因為UDP數(shù)據(jù)包的大小受限,當仿真結(jié)果信息較多時需要有客戶端分包和服務(wù)端組包的處理,但這一方案是最簡單的。
為了顯示的需要,一個仿真步長產(chǎn)生的仿真結(jié)果的字節(jié)數(shù)設(shè)定為F,在UDP方式下的通信量為F+a(a為UDP包格式控制信息),這些信息利用TCP傳輸一次的通信量為F+b(b為TCP包格式控制信息),a< 從上面的比較可以看出,UDP方式通信量最小,TCP方式的通信量會隨顯示系統(tǒng)的數(shù)量成倍增加,數(shù)據(jù)庫方式的通信量比TCP還要大得多,因為作為數(shù)據(jù)庫連接的通信過程中有大量的控制信息。 不同通信方式、顯示系統(tǒng)數(shù)量不同時的網(wǎng)絡(luò)通信量變化情況,可以通過試驗進行對比。本組實驗每60 ms發(fā)送1 000 byte的數(shù)據(jù),不同情況的網(wǎng)絡(luò)信息流量見表1。 表1 100Mbps網(wǎng)絡(luò)環(huán)境下不同方案網(wǎng)絡(luò)信息流量(%) 從表1看出: UDP方式,客戶端的網(wǎng)絡(luò)流量與顯示系統(tǒng)的數(shù)量沒有關(guān)系。TCP方式,服務(wù)器端的網(wǎng)絡(luò)流量與顯示系統(tǒng)的數(shù)量成正比關(guān)系。數(shù)據(jù)庫方式,數(shù)據(jù)庫服務(wù)器網(wǎng)絡(luò)流量與顯示器的數(shù)量成正比關(guān)系。 運行效率可以通過顯示器的反應(yīng)時間來衡量,需要的時間越少,效率就越高。實驗時每次發(fā)送1 000 byte的數(shù)據(jù),數(shù)據(jù)庫方式則是每次讀取1 000 byte的數(shù)據(jù)。3種方式分別設(shè)置5、10、15個客戶端進行實驗,結(jié)果如圖2。 圖2 運行效率對比圖 從圖2可以看出,利用UDP方式,處理的效率最高,且隨用戶數(shù)量的增加,處理速度變化不大。利用數(shù)據(jù)庫方式其效率較低,且隨客戶數(shù)量的增加,效率降低得較快,而采用TCP方式,則處于兩者之間,并且在網(wǎng)絡(luò)帶寬富裕的情況下,效率的變化比較平穩(wěn)。 同步性用于衡量不同顯示器的顯示步調(diào)是否一致,如果不同的顯示器能在同一時刻顯示不同的區(qū)域或?qū)哟?,則同步性好,否則同步性差。從圖2看出,用戶數(shù)量增加,UDP方式能保證比較好的同步;對于數(shù)據(jù)庫方式,用戶數(shù)的增加,在時間上的差異會變大;而TCP方式,隨用戶數(shù)的增加其同步性有所下降。 數(shù)據(jù)庫連接都是建立在TCP協(xié)議之上,與TCP方式一樣都是可靠傳輸,UDP是不可靠傳輸協(xié)議,當網(wǎng)絡(luò)環(huán)境惡化時會有丟包現(xiàn)象。 UDP方式通信套接字的創(chuàng)建和數(shù)據(jù)的收發(fā)API調(diào)用都比較簡單,技術(shù)難度低,但當傳遞的數(shù)據(jù)較多時,要人為分包和組包。TCP方式,既要維護網(wǎng)絡(luò)連接,還要處理進程間的同步,實現(xiàn)起來比較復(fù)雜。利用數(shù)據(jù)庫方式就是利用開發(fā)數(shù)據(jù)庫用到的相關(guān)的API獲取數(shù)據(jù),技術(shù)難度較小,但因為同時需要利用網(wǎng)絡(luò)進行同步,技術(shù)最為復(fù)雜。 在網(wǎng)絡(luò)環(huán)境下,分布式仿真系統(tǒng)可以同時設(shè)置多個顯示器同步顯示不同顯示區(qū)域或同一顯示區(qū)域的不同層次,試驗分析顯示,采用UDP通信從仿真系統(tǒng)獲取仿真結(jié)果,是技術(shù)簡單、效率高、同步效果好的方案,雖然存在通信不可靠的缺點,但在局域網(wǎng)上,網(wǎng)絡(luò)條件一般比較好,丟包的幾率很小,可以忽略。再如廣播式通信雖然一般局限在同一個子網(wǎng)內(nèi),但可以通過網(wǎng)關(guān)的設(shè)置向相鄰子網(wǎng)廣播,也可以通過廣播代理系統(tǒng)解決。 北京交通大學(xué)軌道交通控制與安全國家重點實驗室的鐵路客運專線列車運行組織實驗平臺中,調(diào)度監(jiān)督子系統(tǒng)采用UDP通信,設(shè)置多個調(diào)監(jiān)系統(tǒng)在局域網(wǎng)上運行,同時顯示不同調(diào)度區(qū)段的線路和設(shè)備運行情況,通過對武漢至長沙間客運專線的仿真運行,每秒可以顯示多達20幀圖像,畫面流暢,擴展性好,證明采用UDP方式的方案,對仿真系統(tǒng)的效率影響小,部署和配置都比較簡單,是一種比較好的分布式顯示方案。 [1] 張敏敏. 區(qū)間列車運行分布式仿真方法研究[J] .鐵路計算機應(yīng)用,2006(1):7-9. [2] 田巍. IP組播技術(shù)在地鐵列車運行仿真系統(tǒng)中的應(yīng)用[J] .計算機工程,2005(7):197-199. [3] 劉國安. 基于TCP/IP的實時監(jiān)控系統(tǒng)設(shè)計與實現(xiàn)[J] . 電源世界,2006(11):41-43.3.3 運行效率
3.4 同步性
3.5 可靠性
3.6 技術(shù)難度
4 結(jié)束語