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