朱曉攀, 陳 實(shí)
(1. 中國(guó)科學(xué)院國(guó)家空間科學(xué)中心, 北京 100190; 2. 中國(guó)科學(xué)院大學(xué)計(jì)算機(jī)與控制學(xué)院, 北京 100049)
在傳統(tǒng)大規(guī)模分布式仿真系統(tǒng)中往往包含多個(gè)子系統(tǒng),各子系統(tǒng)又由多個(gè)功能模塊組成。一些功能模塊直接采用Windows平臺(tái)下的成熟商業(yè)軟件,一些則是基于Linux開源軟件二次開發(fā)得到,還有一些是根據(jù)用戶需求自主研發(fā),這給系統(tǒng)集成帶來(lái)很大的挑戰(zhàn)。此外,當(dāng)不同模塊間傳輸?shù)膱D像和數(shù)據(jù)量都很大時(shí),如何將這些功能各異的模塊統(tǒng)一起來(lái),并且實(shí)現(xiàn)不同模塊間數(shù)據(jù)的實(shí)時(shí)可靠[1]交互是實(shí)現(xiàn)分布式仿真系統(tǒng)的關(guān)鍵。在使用過(guò)程或未來(lái)設(shè)計(jì)中,各子系統(tǒng)有可能需要根據(jù)用戶需求做進(jìn)一步的擴(kuò)展,增加新的功能模塊,這對(duì)于分布式系統(tǒng)的靈活性也提出了較高的要求。
采用數(shù)據(jù)分發(fā)服務(wù)(data distributed service,DDS)來(lái)構(gòu)建分布式仿真系統(tǒng)框架。該技術(shù)以數(shù)據(jù)為中心[2],采用發(fā)布/訂閱方式進(jìn)行通信。相比于以對(duì)象為中心,采用客戶/服務(wù)器方式的公共對(duì)象請(qǐng)求代理體系結(jié)構(gòu)(common object request broker architecture,CORBA)技術(shù),DDS克服服務(wù)器端瓶頸制約的限制[3],提供20多種服務(wù)質(zhì)量(quality of service,QoS) 策略[4],增強(qiáng)數(shù)據(jù)傳輸?shù)聂敯粜?能夠保證分布式系統(tǒng)之間實(shí)時(shí)、高效、可靠的數(shù)據(jù)交互能力。此外,DDS由于其容納異構(gòu)能力強(qiáng),能夠支持多種平臺(tái)、不同系統(tǒng)、各類語(yǔ)言開發(fā)的功能模塊,以DDS中間件[5]作為網(wǎng)絡(luò)通信的標(biāo)準(zhǔn),支持隨時(shí)加入或退出的分布式仿真系統(tǒng)節(jié)點(diǎn),具有很強(qiáng)的靈活性。這為未來(lái)整個(gè)分布式仿真系統(tǒng)的擴(kuò)展升級(jí)提供了較好的支持。
因此,論文在DDS的基礎(chǔ)上構(gòu)建像質(zhì)處理提升仿真系統(tǒng),確保不同平臺(tái)、不同編程語(yǔ)言、不同通信協(xié)議開發(fā)的模塊能夠“在合適的時(shí)間有效穩(wěn)健地傳遞正確信息[6]”,使整個(gè)仿真系統(tǒng)可靠和高效的運(yùn)行。
DDS最早應(yīng)用于解決海軍艦船復(fù)雜網(wǎng)絡(luò)環(huán)境中大量軟件升級(jí)的兼容性問(wèn)題,并于2003年被對(duì)象管理組織(object management group,OMG)接受,發(fā)布了《Data Distribution Service for Real-time Systems》規(guī)范。該規(guī)范標(biāo)準(zhǔn)化了分布式實(shí)時(shí)系統(tǒng)中數(shù)據(jù)發(fā)布、傳遞和接收的接口,并且定義了以數(shù)據(jù)為中心的發(fā)布/訂閱(data-centric publish-subscribe,DCPS) 機(jī)制[7],提供了一個(gè)與平臺(tái)無(wú)關(guān)的通信模型[8],使得DDS在大規(guī)模分布式系統(tǒng)集成方面有著特有的優(yōu)勢(shì)。DDS通信模型如圖1所示。

圖1 DDS通信模型Fig.1 Communication model of DDS
DDS通信模型主要包括:數(shù)據(jù)發(fā)布者(Publisher)、數(shù)據(jù)訂閱者(Subscriber)、數(shù)據(jù)寫者(DataWriter)、數(shù)據(jù)讀者(DataReader)和主題(Topic)。Publisher可以創(chuàng)建并管理多個(gè)DataWriter,DataWriter向全局?jǐn)?shù)據(jù)空間(global data space,GDS)發(fā)布數(shù)據(jù)并根據(jù)其類型差異標(biāo)識(shí)不同的Topic,這樣就通過(guò)DataWriter和Publisher的協(xié)同來(lái)實(shí)現(xiàn)數(shù)據(jù)發(fā)布。Subscriber可以創(chuàng)建并管理多個(gè)DataReader,DataReader通過(guò)匹配GDS里面的Topic讀取所需要的信息,這樣就通過(guò)DataReader和Subscriber的協(xié)同來(lái)實(shí)現(xiàn)數(shù)據(jù)訂閱,從而通過(guò)發(fā)布/訂閱實(shí)現(xiàn)數(shù)據(jù)的分發(fā)、傳遞和接收。
目前,DDS被廣泛應(yīng)用于各種分布式系統(tǒng)的構(gòu)建。國(guó)外研究中,文獻(xiàn)[9]將DDS應(yīng)用于分布式防空作戰(zhàn)模型的開發(fā),對(duì)防空作戰(zhàn)指令進(jìn)行主題化處理,通過(guò)仿真得出該模型在防空作戰(zhàn)領(lǐng)域具有很好的作戰(zhàn)效果;文獻(xiàn)[10]在原有的DDS模型中提出一種改進(jìn)的自發(fā)現(xiàn)算法,能夠有效地消除數(shù)據(jù)信息報(bào)的局限性和隨機(jī)性,以減少網(wǎng)絡(luò)數(shù)據(jù)傳輸量,大幅度提高數(shù)據(jù)間首次可靠交付的能力。
國(guó)內(nèi)研究中,文獻(xiàn)[11]將DDS技術(shù)用于飛行器測(cè)控系統(tǒng),并通過(guò)加入數(shù)據(jù)過(guò)濾策略對(duì)DDS進(jìn)行改進(jìn),豐富了原有的QoS策略,通過(guò)仿真論證,改進(jìn)過(guò)的DDS很好地滿足了多任務(wù)、高實(shí)時(shí)的性能要求;文獻(xiàn)[12]基于DDS設(shè)計(jì)了船舶分布式通信系統(tǒng),并通過(guò)引入3種結(jié)構(gòu),進(jìn)行艦船模型多數(shù)量、交互信息多種類的仿真,可以證明DDS完全滿足船舶分布式通信對(duì)于實(shí)時(shí)性、高吞吐的要求。
總之,DDS由于在結(jié)構(gòu)上靈活性、模塊上的異構(gòu)性以及在數(shù)據(jù)傳輸方面高吞吐低時(shí)延[13]的特點(diǎn),使其在分布式通信和仿真系統(tǒng)中得到廣泛應(yīng)用。
像質(zhì)處理提升仿真系統(tǒng)主要針對(duì)無(wú)人機(jī)、飛艇或衛(wèi)星拍攝到的圖像進(jìn)行仿真,并利用相關(guān)技術(shù)對(duì)仿真得到的圖像進(jìn)行處理提升,最后從多個(gè)角度來(lái)對(duì)像質(zhì)提升的結(jié)果進(jìn)行評(píng)估,從而實(shí)現(xiàn)圖像仿真、處理提升、性能評(píng)估等功能為一體的全鏈路仿真處理。根據(jù)任務(wù)需求,像質(zhì)處理提升仿真系統(tǒng)包含了多個(gè)子系統(tǒng)和功能模塊,不同模塊間需要實(shí)現(xiàn)海量圖像和數(shù)據(jù)的傳輸,在整個(gè)傳輸?shù)倪^(guò)程中系統(tǒng)有如下需求:
(1) 按需分配。仿真系統(tǒng)包含了不同的子系統(tǒng),子系統(tǒng)又由多個(gè)模塊組成,各個(gè)模塊對(duì)于數(shù)據(jù)的需求是不同的,在大量數(shù)據(jù)交互的同時(shí)需要保證接收到正確的數(shù)據(jù)。DDS通過(guò)創(chuàng)建發(fā)布者和訂閱者,并對(duì)不同數(shù)據(jù)標(biāo)識(shí)唯一的主題,發(fā)布者將數(shù)據(jù)發(fā)送到GDS,訂閱者通過(guò)主題匹配在GDS查找到自己所需要的數(shù)據(jù),實(shí)現(xiàn)數(shù)據(jù)的按需分配[14]。
(2) 實(shí)時(shí)性。仿真系統(tǒng)的各模塊處理之后所產(chǎn)生的數(shù)據(jù)一方面供其他模塊進(jìn)行使用,另一方面也要快速地呈現(xiàn)在可視化界面上,整個(gè)過(guò)程需要在很短的時(shí)間內(nèi)進(jìn)行。DDS不存在服務(wù)器端瓶頸制約的影響,其豐富的QoS策略支持多點(diǎn)傳輸[15]、異步傳輸和并行處理,能夠在海量數(shù)據(jù)交互的同時(shí),很好地保證整個(gè)運(yùn)行過(guò)程的高實(shí)時(shí)性[16]。
(3) 可靠性。仿真系統(tǒng)包含了不同的子系統(tǒng)模塊,各模塊采用不同的處理平臺(tái)、操作系統(tǒng)、傳輸協(xié)議等,對(duì)于數(shù)據(jù)之間的可靠交互提出了很大的挑戰(zhàn)。DDS針對(duì)不同的情況制定了從發(fā)布到訂閱整個(gè)過(guò)程中不同類型的QoS策略,如Duration,Reliability等可以實(shí)現(xiàn)各節(jié)點(diǎn)之間的可靠通信。
(4) 擴(kuò)展性。仿真系統(tǒng)在未來(lái)有可能會(huì)作進(jìn)一步升級(jí)改造,添加一些新的功能模塊,需要具備較好的可擴(kuò)展性。DDS具有優(yōu)異的跨平臺(tái)特性,支持Windows、Linux、Andriod等操作系統(tǒng)之間的互聯(lián)、互通和互操作,支持區(qū)分服務(wù)(differentiated service,DiffServ)網(wǎng)絡(luò)[17]、軟件定義網(wǎng)絡(luò)[18](software defined network,SDN)和無(wú)線傳感器網(wǎng)絡(luò)[19]等多種形式,支持傳輸控制協(xié)議(transmission control protocol,TCP)和用戶數(shù)據(jù)報(bào)協(xié)議(user datagram protocol,UDP)等多種傳輸協(xié)議,支持多種數(shù)據(jù)類型,支持多種開發(fā)語(yǔ)言和處理器[20]。進(jìn)行新的功能擴(kuò)展時(shí),只需要在原有的基礎(chǔ)上增加發(fā)布者和訂閱者以及相關(guān)的主題即可,不需要改變復(fù)雜的系統(tǒng)架構(gòu),從而保證系統(tǒng)的可擴(kuò)展性。
(5) 高吞吐率。仿真系統(tǒng)設(shè)計(jì)時(shí)需要傳輸10 000×10 000 (286 MB)的超大圖像,同時(shí)又包含海量的文本數(shù)據(jù),隨著頻繁的發(fā)布和訂閱,系統(tǒng)的并發(fā)數(shù)逐漸增多,響應(yīng)時(shí)間不斷變長(zhǎng),對(duì)于吞吐率是一個(gè)很高的要求。DDS各分布式節(jié)點(diǎn)之間都是一個(gè)平等的關(guān)系[21],沒(méi)有服務(wù)器和客戶端之間的主從關(guān)系,沒(méi)有服務(wù)器端的瓶頸制約,可以實(shí)現(xiàn)任意兩點(diǎn)或多點(diǎn)之間的高吞吐[22]通信。
像質(zhì)處理提升仿真系統(tǒng)設(shè)計(jì)了系統(tǒng)管控、圖像仿真、處理提升、性能評(píng)估、可視化5個(gè)子系統(tǒng),各子系統(tǒng)又包含了一些功能模塊,整個(gè)分布式系統(tǒng)的組成如圖2所示,各子系統(tǒng)之間通過(guò)DDS中間件來(lái)進(jìn)行通信,整個(gè)通信結(jié)構(gòu)如圖3所示。

圖2 系統(tǒng)組成Fig.2 System configuration

圖3 基于DDS的通信結(jié)構(gòu)Fig.3 DDS-based communication structure
(1) 系統(tǒng)管控:控制著其他所有子系統(tǒng),負(fù)責(zé)人機(jī)交互的參數(shù)配置和模塊選擇,向其他子系統(tǒng)或功能模塊發(fā)布標(biāo)識(shí)了不同主題的數(shù)據(jù),同時(shí)訂閱其他子系統(tǒng)或功能模塊發(fā)布的數(shù)據(jù)。
(2) 系統(tǒng)可視化:將系統(tǒng)管控配置的參數(shù)和信息顯示出來(lái),將圖像仿真、處理提升和性能評(píng)估3個(gè)子系統(tǒng)生成的數(shù)據(jù)結(jié)果展示出來(lái),同時(shí)實(shí)時(shí)顯示系統(tǒng)運(yùn)行狀態(tài),便于用戶查看。
(3) 圖像仿真:集發(fā)布/訂閱功能為一體的子系統(tǒng)。該系統(tǒng)包含了大氣傳輸、光學(xué)系統(tǒng)、信號(hào)傳輸?shù)榷鄠€(gè)功能模塊。這些功能模塊從系統(tǒng)管控訂閱所需數(shù)據(jù),作進(jìn)一步處理并發(fā)布數(shù)據(jù)供其他功能模塊使用,同時(shí)將運(yùn)行狀態(tài)和結(jié)果發(fā)布給可視化模塊。
(4) 處理提升:集發(fā)布/訂閱功能為一體的子系統(tǒng)。該子系統(tǒng)包含基于小波變換和基于混合濾波算法等功能模塊。這些功能模塊從圖像仿真子系統(tǒng)訂閱所需的數(shù)據(jù),作進(jìn)一步處理并發(fā)布數(shù)據(jù)供其他系統(tǒng)使用,同時(shí)將運(yùn)行狀態(tài)和結(jié)果發(fā)布給可視化模塊。
(5) 性能評(píng)估:集發(fā)布/訂閱功能為一體的子系統(tǒng)。該子系統(tǒng)又包含了圖像傳函、圖像信噪比、處理速度評(píng)估等功能模塊,這些功能模塊從處理提升子系統(tǒng)訂閱所需的數(shù)據(jù),作進(jìn)一步處理并發(fā)布數(shù)據(jù)供其他系統(tǒng)使用,同時(shí)將運(yùn)行狀態(tài)和結(jié)果反饋到可視化。
整個(gè)分布式仿真系統(tǒng)在系統(tǒng)管控統(tǒng)一調(diào)度管理下運(yùn)行,首先用戶從數(shù)據(jù)庫(kù)導(dǎo)入數(shù)據(jù)文件(即配置信息),通過(guò)系統(tǒng)管控的人機(jī)交互界面輸入相關(guān)參數(shù),選擇需要運(yùn)行的功能模塊,然后發(fā)布數(shù)據(jù)推進(jìn)仿真流程,并實(shí)時(shí)地將運(yùn)行結(jié)果展現(xiàn)在可視化界面上。整個(gè)系統(tǒng)的運(yùn)行流程如圖4所示。

圖4 系統(tǒng)運(yùn)行流程Fig.4 System running flow
(1) 圖像仿真、處理提升、性能評(píng)估3個(gè)子系統(tǒng)及其包含的功能模塊都可以在用戶界面進(jìn)行選用。運(yùn)行過(guò)程中,3個(gè)子系統(tǒng)按照?qǐng)D4虛線箭頭所示是一個(gè)串行的關(guān)系,當(dāng)有多幅圖像處理時(shí)系統(tǒng)可以并行執(zhí)行。
(2) 圖像仿真、處理提升、性能評(píng)估3個(gè)子系統(tǒng)既是發(fā)布者也是訂閱者。在整個(gè)過(guò)程當(dāng)中,一方面作為訂閱者,對(duì)所需主題數(shù)據(jù)進(jìn)行實(shí)時(shí)監(jiān)聽,通過(guò)主題匹配訂閱數(shù)據(jù);另一方面又能及時(shí)地將處理過(guò)的數(shù)據(jù)發(fā)布出去,供其他系統(tǒng)使用。
在開源OpenDDS的基礎(chǔ)上進(jìn)行二次開發(fā),對(duì)相關(guān)函數(shù)進(jìn)行封裝,形成了分布式仿真系統(tǒng)的通用接口。每一個(gè)分布式節(jié)點(diǎn)都可以進(jìn)行發(fā)布和訂閱的相關(guān)操作,從而實(shí)現(xiàn)對(duì)某一主題數(shù)據(jù)的實(shí)時(shí)交互。在該通用接口里面,定義了一些數(shù)據(jù)類和函數(shù),其接口的實(shí)現(xiàn)就是通過(guò)數(shù)據(jù)類和函數(shù)來(lái)完成的,以下是幾個(gè)重要的數(shù)據(jù)類和函數(shù)。
(1) Data類接口
Data(String from, int comret, int size, String parameters, int id, int count)
Data類里面定義了傳遞數(shù)據(jù)的發(fā)送方、命令結(jié)果、大小、傳遞參數(shù)、主題數(shù)據(jù)的id號(hào)和計(jì)數(shù)器6個(gè)參數(shù),包含了主題數(shù)據(jù)的全部信息,是整個(gè)發(fā)布和訂閱過(guò)程傳遞的核心。
(2) DDSInterface類接口
該類繼承了DDS-DataReaderListenerLocalBase接口,負(fù)責(zé)完成訂閱方訂閱數(shù)據(jù)的具體實(shí)現(xiàn)。
(3) PubSub類接口
該類包含了以下函數(shù):
① initial(String[] args)
該函數(shù)實(shí)現(xiàn)了對(duì)DDS的初始化,生成對(duì)應(yīng)的發(fā)布方和訂閱方,完成通信所需的配置環(huán)境和文件,參數(shù)指定了系統(tǒng)的IP地址和端口號(hào)。
② createTopic(String topic)
該函數(shù)實(shí)現(xiàn)了對(duì)不同數(shù)據(jù)的主題創(chuàng)建,作為發(fā)布/訂閱過(guò)程傳遞和接收的命令標(biāo)識(shí),參數(shù)指定了主題名稱。
③ createPublisher()
該函數(shù)實(shí)現(xiàn)了對(duì)發(fā)布者的創(chuàng)建。
④ createSubscriber()
該函數(shù)實(shí)現(xiàn)了對(duì)訂閱者的創(chuàng)建。
⑤ createDataWriter(String topicName, boolean reliable)
該函數(shù)創(chuàng)建了一個(gè)數(shù)據(jù)寫者,是發(fā)布者發(fā)布主題的實(shí)現(xiàn)工具,參數(shù)指定了主題名,以及是否需要可靠傳輸。
⑥ createDataReader(String topicName, boolean realible)
該函數(shù)創(chuàng)建了一個(gè)數(shù)據(jù)讀者,是訂閱者訂閱主題的實(shí)現(xiàn)工具,參數(shù)指定了主題名、數(shù)據(jù)接口類以及是否需要可靠傳輸。
⑦ sendData(String topicName, Data data, int num, boolean reliable, boolean waitForAcks)
該函數(shù)實(shí)現(xiàn)了發(fā)布方對(duì)數(shù)據(jù)的發(fā)布,參數(shù)指定了發(fā)送數(shù)據(jù)的主題、發(fā)送的數(shù)據(jù)、數(shù)量以及是否需要可靠傳輸,是否需要應(yīng)答。
⑧ receiveData(String topicName, Data data, int num)
該函數(shù)實(shí)現(xiàn)了訂閱方對(duì)數(shù)據(jù)的接收,參數(shù)指定了接收數(shù)據(jù)的主題、接收的數(shù)據(jù)以及個(gè)數(shù)。
⑨ cleanUp()
該函數(shù)在發(fā)布/訂閱完成后,負(fù)責(zé)關(guān)閉數(shù)據(jù)節(jié)點(diǎn)之間的通信通道,釋放掉占用的資源。
(4) QoS接口策略
setQoS(QoS_policy)
在DDS中間件中,發(fā)布訂閱雙方都支持多種QoS策略。如Duration策略為后期加入的DataReader提供連接DataWriter不同等級(jí)的權(quán)限,根據(jù)數(shù)據(jù)時(shí)間要求排出優(yōu)先級(jí),確保數(shù)據(jù)有序傳輸;DurabilityService策略針對(duì)不同的數(shù)據(jù)需求提供特定的服務(wù)類型,一方面保證數(shù)據(jù)的可靠存儲(chǔ),另一方面又能夠及時(shí)清理多余數(shù)據(jù)保證運(yùn)行內(nèi)存;DeadLine策略支持在固定周期更新發(fā)布的數(shù)據(jù),保證發(fā)布訂閱過(guò)程中數(shù)據(jù)的實(shí)時(shí)更新;Reliability策略提交歷史記錄中的所有數(shù)據(jù),確保所有的數(shù)據(jù)能夠傳遞到目的節(jié)點(diǎn)。總之,DDS包含豐富的QoS策略能夠滿足用戶對(duì)于各種數(shù)據(jù)傳輸多樣化的需求。
圖1提供了DDS的通信模型,給出了發(fā)布/訂閱過(guò)程的概念實(shí)現(xiàn),這里結(jié)合像質(zhì)處理提升仿真系統(tǒng),以圖像仿真子系統(tǒng)的大氣傳輸模塊為例,給出了發(fā)布方訂閱方的具體數(shù)據(jù)傳輸流程,如圖5所示。

圖5 發(fā)布/訂閱流程實(shí)現(xiàn)Fig.5 Realization of publishing/subscribing process
仿真系統(tǒng)中系統(tǒng)管控用來(lái)對(duì)整個(gè)系統(tǒng)的功能模塊選擇、參數(shù)配置以及運(yùn)行控制進(jìn)行操控,可視化界面是將仿真出來(lái)的結(jié)果和相關(guān)的參數(shù)顯示出來(lái),而其他子系統(tǒng)集發(fā)布/訂閱功能為一體,訂閱相關(guān)主題進(jìn)行二次處理并將處理過(guò)的數(shù)據(jù)進(jìn)行發(fā)布供其他模塊使用,整個(gè)過(guò)程涉及到各子系統(tǒng)模塊不同主題的發(fā)布和訂閱。下面以系統(tǒng)管控和圖像仿真子系統(tǒng)的核心代碼為例,給出發(fā)布方和訂閱方的具體代碼實(shí)現(xiàn),如表 1和表 2所示。

表1 系統(tǒng)管控通信代碼

表2 圖像仿真通信代碼
與傳統(tǒng)TCP/IP通信方式相比,DDS具有更豐富的QoS策略,因此在理論上DDS具有更好的傳輸性能。為了驗(yàn)證DDS數(shù)據(jù)傳輸?shù)男阅?論文將DDS與傳統(tǒng)的TCP/IP協(xié)議進(jìn)行了比較,參數(shù)設(shè)置如表 3所示。

表3 參數(shù)設(shè)置
根據(jù)系統(tǒng)設(shè)計(jì)設(shè)置一個(gè)發(fā)送節(jié)點(diǎn)和4個(gè)接收節(jié)點(diǎn),發(fā)送節(jié)點(diǎn)和接收節(jié)點(diǎn)間通信距離大約為30 km,節(jié)點(diǎn)間通過(guò)帶寬為3.1 kHz的傳統(tǒng)電話信號(hào)進(jìn)行數(shù)據(jù)的有線傳輸,傳輸數(shù)據(jù)為一組大小分別為10 MB,45 MB,99 MB,143 MB的圖像。發(fā)送節(jié)點(diǎn)采用兩種不同的傳輸協(xié)議(DDS和TCP/IP)發(fā)送圖像數(shù)據(jù),并對(duì)其他4個(gè)節(jié)點(diǎn)的傳輸時(shí)延、吞吐率和丟包率進(jìn)行歸一化處理,以多次測(cè)量的均值作為最終結(jié)果,具體結(jié)果如下。
(1) 傳輸時(shí)延:指發(fā)送節(jié)點(diǎn)從開始發(fā)送數(shù)據(jù)到接收節(jié)點(diǎn)完全收到所有數(shù)據(jù)所需要的時(shí)間。測(cè)試結(jié)果如圖6所示,可以看到,基于DDS和TCP/IP兩種協(xié)議的傳輸時(shí)延都隨著圖像增大而增大,但是基于TCP/IP的傳輸時(shí)延增幅較大且一直高于基于DDS的傳輸時(shí)延。

圖6 傳輸時(shí)延對(duì)比Fig.6 Comparison of transmission delay
(2) 吞吐率:指在單位時(shí)間內(nèi)通過(guò)某個(gè)網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)量單位。測(cè)試結(jié)果如圖7所示,基于DDS和TCP/IP兩種協(xié)議的吞吐率隨著圖像的增大保持相對(duì)平穩(wěn),但是基于DDS傳輸?shù)耐掏侣室葌鹘y(tǒng)TCP/IP傳輸協(xié)議的吞吐率高3倍左右。

圖7 吞吐率對(duì)比Fig.7 Comparison of throughput
(3) 丟包率:是指測(cè)試中所丟失數(shù)據(jù)包數(shù)量占所發(fā)送數(shù)據(jù)包總數(shù)的比率。通常,千兆網(wǎng)卡流量大于200 Mbps時(shí),丟包率小于萬(wàn)分之五是屬于正常范圍;百兆網(wǎng)卡在流量大于60 Mbps時(shí),丟包率小于萬(wàn)分之一屬于正常范圍。測(cè)試采用的Intel 1350-T2的全雙工千兆網(wǎng)卡,在吞吐率的測(cè)試中,基于DDS的傳輸流量為310 Mbps左右,基于TCP的傳輸流量為100 Mbps左右,如圖8所示的測(cè)試結(jié)果表明,在進(jìn)行多次發(fā)包時(shí)基于DDS的丟包率遠(yuǎn)遠(yuǎn)低于萬(wàn)分之五的標(biāo)準(zhǔn),而且基于DDS的傳輸?shù)膩G包率只有TCP/IP傳輸協(xié)議的1/4左右。

圖8 丟包率對(duì)比Fig.8 Comparison of packet loss rate
像質(zhì)處理提升仿真系統(tǒng)是整合了圖像仿真、處理提升、性能評(píng)估等子系統(tǒng)為一體的分布式仿真系統(tǒng)。經(jīng)過(guò)第5.1節(jié)性能測(cè)試與驗(yàn)證得出,DDS在圖像數(shù)據(jù)傳輸方面相比于傳統(tǒng)的TCP/IP具有更低的傳輸時(shí)延、丟包率和更高的吞吐率,因此采用基于DDS的原理來(lái)實(shí)現(xiàn)系統(tǒng)設(shè)計(jì)。
由于系統(tǒng)包含了海量的圖像數(shù)據(jù)同時(shí)為了測(cè)試各子系統(tǒng)功能的完備性,以其中一幅衛(wèi)星拍攝到的原始圖像作為運(yùn)行的示意,對(duì)其進(jìn)行仿真作進(jìn)一步的提升處理,然后通過(guò)不同的指標(biāo)來(lái)進(jìn)行評(píng)價(jià)。通過(guò)對(duì)各子系統(tǒng)處理得到的圖像與原始圖像進(jìn)行對(duì)比,驗(yàn)證DDS能夠很好地支持和實(shí)現(xiàn)各分布式子系統(tǒng)的功能。原始圖像如圖9所示。

圖9 原始圖像Fig.9 Original image
(1) 圖像仿真
圖像仿真子系統(tǒng)通過(guò)DDS訂閱系統(tǒng)管控發(fā)布的數(shù)據(jù),對(duì)圖像做不同算法的仿真處理,并將處理過(guò)的數(shù)據(jù)標(biāo)識(shí)不同主題發(fā)布到GDS,可視化子系統(tǒng)通過(guò)訂閱圖像仿真子系統(tǒng)模塊的主題將結(jié)果展現(xiàn)出來(lái)。如圖10所示,在可視化界面左半部分為原始圖像,右半部分為圖像仿真生成的圖像,從而實(shí)現(xiàn)圖像仿真的功能。

圖10 圖像仿真結(jié)果Fig.10 Image simulation result
(2) 處理提升
處理提升子系統(tǒng)通過(guò)DDS訂閱圖像仿真子系統(tǒng)發(fā)布的數(shù)據(jù),對(duì)圖像做進(jìn)一步的提升處理,并將處理過(guò)的數(shù)據(jù)標(biāo)識(shí)不同主題發(fā)布到GDS,可視化子系統(tǒng)通過(guò)訂閱處理提升子系統(tǒng)模塊的主題將結(jié)果展現(xiàn)出來(lái)。如圖11所示,在可視化界面左半部分為原始圖像,右半部分為經(jīng)過(guò)處理提升生成的圖像,從而實(shí)現(xiàn)處理提升的功能。

圖11 圖像處理提升結(jié)果Fig.11 Image quality improvement result
(3) 性能評(píng)估
性能評(píng)估子系統(tǒng)通過(guò)DDS訂閱處理提升子系統(tǒng)發(fā)布的數(shù)據(jù),采用不同的評(píng)價(jià)指標(biāo)進(jìn)行評(píng)估,并將處理過(guò)的數(shù)據(jù)標(biāo)識(shí)不同主題發(fā)布到GDS,可視化子系統(tǒng)通過(guò)訂閱性能評(píng)估子系統(tǒng)模塊的主題將結(jié)果展現(xiàn)出來(lái)。如圖12所示,圖像左上部分為原始圖像,右上部分為經(jīng)過(guò)性能評(píng)估生成的圖像,從而實(shí)現(xiàn)性能評(píng)估的功能。

圖12 性能評(píng)估結(jié)果Fig.12 Performance evaluation result
本小節(jié)對(duì)仿真系統(tǒng)的網(wǎng)絡(luò)性能和模塊功能進(jìn)行測(cè)試。通過(guò)與傳統(tǒng)TCP/IP協(xié)議在傳輸時(shí)延、吞吐率、丟包率3方面的比較,驗(yàn)證了基于DDS的傳輸協(xié)議在傳遞相同圖像時(shí)具有更低的時(shí)延、丟包率和更高的吞吐率;通過(guò)對(duì)圖像仿真、處理提升、性能評(píng)估子系統(tǒng)的功能測(cè)試,驗(yàn)證了DDS能夠很好地支撐分布式系統(tǒng)的仿真運(yùn)行。
論文搭建了基于DDS的分布式仿真系統(tǒng),該系統(tǒng)突破了傳統(tǒng)協(xié)議中服務(wù)器端的瓶頸制約,滿足了系統(tǒng)對(duì)于圖像數(shù)據(jù)的高吞吐和低時(shí)延傳輸需求。DDS所具有的各種QoS策略,也使得設(shè)計(jì)的分布式仿真系統(tǒng)具有高效、可靠、靈活、可擴(kuò)展的特點(diǎn)。通過(guò)對(duì)仿真系統(tǒng)的性能和功能進(jìn)行測(cè)試,證明了DDS協(xié)議能夠很好地解決分布式條件下高實(shí)時(shí)、高吞吐、低時(shí)延的圖像可靠傳輸問(wèn)題,滿足像質(zhì)處理提升仿真需求。
在未來(lái)工作中,針對(duì)DDS具有的綜合集成能力、異構(gòu)系統(tǒng)接入能力、信息共享能力和實(shí)時(shí)數(shù)據(jù)傳遞能力,可以將DDS應(yīng)用在航天、航空、電子、船舶等大規(guī)模分布式實(shí)時(shí)系統(tǒng),通過(guò)分析眾多QoS策略在復(fù)雜網(wǎng)絡(luò)環(huán)境、不同開發(fā)語(yǔ)言、不同處理器、跨平臺(tái)方面對(duì)于數(shù)據(jù)傳輸性能的影響,設(shè)置最佳QoS策略,為后續(xù)復(fù)雜分布式系統(tǒng)的搭建和實(shí)現(xiàn)提供必要的基礎(chǔ)研究。