何德濤
(武漢交通職業(yè)學(xué)院,湖北 武漢 430065)
在航海模擬器應(yīng)用不斷發(fā)展的背景下,航海模擬器改進(jìn)與完善成為當(dāng)下航海領(lǐng)域的重點(diǎn)研究課題。航海模擬器系統(tǒng)的性能大多取決于其數(shù)據(jù)通信能力。因此,如何提高航海模擬器數(shù)據(jù)通信能力,成為完善航海模擬器的關(guān)鍵所在。鑒于此,研究數(shù)據(jù)通信技術(shù)在航海模擬器中的應(yīng)用,具有重要的研究價(jià)值。
航海模擬器屬于一種大型分布交互式仿真系統(tǒng)。它的核心由兩部分組成,即一組計(jì)算機(jī)和一套運(yùn)作于網(wǎng)絡(luò)中的應(yīng)用程序。整個(gè)系統(tǒng)中,計(jì)算機(jī)終端與應(yīng)用程序的協(xié)同性對系統(tǒng)數(shù)據(jù)通信能力具有決定性影響。在航海模擬器功能越來越豐富的背景下,系統(tǒng)數(shù)據(jù)通信部分需要承擔(dān)更大的任務(wù),這無疑會(huì)引發(fā)一系列超負(fù)荷問題[1]。比如,大量的數(shù)據(jù)信息可能會(huì)導(dǎo)致網(wǎng)絡(luò)擁塞,進(jìn)而導(dǎo)致由于數(shù)據(jù)傳輸延遲甚至終端而引發(fā)的視鏡機(jī)死機(jī)。顯然,這會(huì)對航海模擬器的數(shù)據(jù)通信效率和畫面的流暢度產(chǎn)生十分不利的影響。目前,航海模擬器通信系統(tǒng)的主要問題,包括海圖機(jī)承擔(dān)較重負(fù)載、通信過程有待簡化、數(shù)據(jù)傳輸冗余性過強(qiáng)等,都需要相關(guān)技術(shù)人員圍繞此展開研究與分析,并提出相應(yīng)的解決對策。
所謂ACE技術(shù),就是指自適配網(wǎng)絡(luò)通信環(huán)境(Adaptive Communication Environment),是一種面向?qū)ο蟮木W(wǎng)絡(luò)通信編程中間件。相較于一些原始的操作系統(tǒng),ACE技術(shù)具有可移植性、簡易性,在應(yīng)用過程中不易出現(xiàn)錯(cuò)誤現(xiàn)象。同時(shí),該項(xiàng)技術(shù)還可以對應(yīng)用程序的創(chuàng)建、組成、配置以及移植進(jìn)行簡化處理。此外,基于ACE技術(shù)的應(yīng)用模式有很多種類型,在通信系統(tǒng)中無疑具有更強(qiáng)的適用性。因此,對于航海模擬器通信服務(wù)器的設(shè)計(jì)而言,ACE技術(shù)顯然具有較高的應(yīng)用價(jià)值,各方面優(yōu)勢突出。受限于篇幅,本文不對該項(xiàng)技術(shù)進(jìn)行詳盡闡述,相關(guān)知識(shí)可參考文獻(xiàn)[2]。
Client/server是基于客戶端或服務(wù)器結(jié)構(gòu)的一種通信模式。在該模式下,客戶端與服務(wù)器端會(huì)接收適當(dāng)?shù)娜蝿?wù),使通信系統(tǒng)得以協(xié)同工作。同時(shí),客戶端與服務(wù)器端的硬件環(huán)境優(yōu)勢也得到了充分發(fā)揮??蛻舳说娜蝿?wù)是以用戶為對象,從客戶端接收用戶的請求,然后由服務(wù)器端對相應(yīng)的請求進(jìn)行處理與回應(yīng)。Client/server通信模式對客戶端、服務(wù)器端的協(xié)同性提出了很高要求。該模式的特點(diǎn)在于實(shí)現(xiàn)了資源共享,且在管理方面更具科學(xué)性和專業(yè)性,處理信息時(shí)也更具高效性。顯然,在軟件、硬件資源的保護(hù)方面,Client/server通信模式具有更大的優(yōu)勢,且這種結(jié)構(gòu)在靈活性、拓展性以及開放性方面都比較突出,在航海模擬器中具有較高的應(yīng)用價(jià)值。
針對航海模擬器數(shù)據(jù)通信存在的問題,筆者認(rèn)為可以將通信服務(wù)器應(yīng)用于航海模擬器,并運(yùn)用ACE技術(shù),圍繞Client/server,打造數(shù)據(jù)服務(wù)平臺(tái)。其中,Client/server通信模式有多種,本文圍繞其中一種展開研究與分析,并將其作為航海模擬器數(shù)據(jù)服務(wù)平臺(tái)的通信模式。它的模型圖如圖1所示。
圖1 在不同計(jì)算機(jī)上運(yùn)行客戶機(jī)程序與服務(wù)器程序模型
本文所述的航海模擬器具有多本船配置,在數(shù)據(jù)服務(wù)平臺(tái)的構(gòu)建過程中,由于存在較多的客戶端,因此服務(wù)器需要承擔(dān)比較繁重的任務(wù)。因此,必須提高通信系統(tǒng)運(yùn)行的可靠性和有效性,而這就要求將提高通信并發(fā)能力作為數(shù)據(jù)服務(wù)平臺(tái)設(shè)計(jì)的重點(diǎn)。此外,航海模擬器規(guī)模與功能的擴(kuò)展,也對其數(shù)據(jù)通信量提出了更高要求。為了實(shí)現(xiàn)航海模擬器的拓展,必須對其數(shù)據(jù)服務(wù)平臺(tái)的通信并發(fā)能力的提升與優(yōu)化予以高度重視。
正如上文所述,數(shù)據(jù)通信系統(tǒng)的性能很大程度上取決于通信并發(fā)策略。因此,在航海模擬器數(shù)據(jù)服務(wù)平臺(tái)設(shè)計(jì)中,必須關(guān)注數(shù)據(jù)通信系統(tǒng)的應(yīng)用環(huán)境優(yōu)化問題,并對通信并發(fā)策略進(jìn)行合理選擇?,F(xiàn)階段,關(guān)于通信并發(fā)策略的選擇有很多模型,本文主要對單線程、線程池兩種模型進(jìn)行介紹與分析[3]。
3.2.1 單線程模型
對于單線程模型而言,服務(wù)器需要根據(jù)請求順序,在同一個(gè)線程統(tǒng)一完成對全部客戶端請求的處理。換言之,任何請求在得到響應(yīng)前必須要完成前一個(gè)請求的處理。
相較于其他模型,單線程模型的優(yōu)勢在于系統(tǒng)運(yùn)作成本大幅度降低。不管是同步、創(chuàng)建與銷毀線程,還是切換上下文,難度相較于以往都有所降低。當(dāng)然,需要注意的是,當(dāng)代航海模擬器開始運(yùn)用多核技術(shù)。在此背景下,如果簡單運(yùn)用單線程模型,那么計(jì)算機(jī)中央處理器的性能可能無法得到充分發(fā)揮。以I/O密集型的應(yīng)用為例,該模式在面對多個(gè)請求時(shí),響應(yīng)速度可能相對較慢,會(huì)影響到系統(tǒng)性能。此外,同一時(shí)刻,系統(tǒng)應(yīng)對的請求如果過于繁雜,那么采用單線程模型就會(huì)存在無法承擔(dān)的問題,進(jìn)而導(dǎo)致服務(wù)請求被無限擱置。
3.2.2 線程池模型
如果運(yùn)用線程池模型,那么相關(guān)開銷問題就可以得到解決。在對系統(tǒng)進(jìn)行初始化處理的過程中,會(huì)有多個(gè)線程在線程池提前派生出來。在服務(wù)器請求到達(dá)的過程中,管理器會(huì)從線程池中指派線程處理相關(guān)請求,并將此線程從線程池中移除掉。完成請求處理后,這一線程又會(huì)重新返回到線程池中。一般而言,線程池大小不會(huì)發(fā)生改變,不僅節(jié)能,而且節(jié)約成本。
對于航海模擬器數(shù)據(jù)通信系統(tǒng)而言,整個(gè)系統(tǒng)如上文所述屬于I/O密集型,這對其響應(yīng)請求的能力提出了較高要求。數(shù)據(jù)通信系統(tǒng)需要耗費(fèi)較多時(shí)間來處理相關(guān)任務(wù),需要承受較大負(fù)載。因此,在對比選擇通信并發(fā)策略時(shí),線程池模型應(yīng)予以優(yōu)先考慮。它在航海模擬器數(shù)據(jù)服務(wù)平臺(tái)設(shè)計(jì)中具有更強(qiáng)的適用性。
在線程池模型中,連接建立接收器后,對接受處理器進(jìn)行監(jiān)理,并在任務(wù)處理中加以運(yùn)用。關(guān)于線程池模型的種類,目前常見的有領(lǐng)導(dǎo)者/追隨者模型和半同步/半異步模型。需要注意的是,根據(jù)線程池技術(shù)的不同,在面對請求時(shí),其處理方式也有所差異。
例如,領(lǐng)導(dǎo)者/追隨者線程池模型要求在同一時(shí)間內(nèi)不能有多個(gè)領(lǐng)導(dǎo)者,追隨者線程則全部處于睡眠模式。外部事件會(huì)觸發(fā)領(lǐng)導(dǎo)者線程,此時(shí)領(lǐng)導(dǎo)者線程會(huì)挑選追隨者線程,并將其作為下一線程的領(lǐng)導(dǎo)者,然后對相應(yīng)的外部事件進(jìn)行處理。當(dāng)處理完事件后,這一線程則會(huì)轉(zhuǎn)化為追隨者,并重復(fù)上述流程,繼續(xù)待命。當(dāng)線程領(lǐng)導(dǎo)者被新的線程領(lǐng)導(dǎo)者取代后,新的線程領(lǐng)導(dǎo)者則需承擔(dān)上任線程領(lǐng)導(dǎo)者的工作。
再如,半同步/半異步線程池模型,主要分為同步層、隊(duì)列層以及異步層。通常,異步具有較高效率,但在編程中由于復(fù)雜的操作而不具有適用性。反之,同步對于編程來講相對簡易。因此,如何將同步與異步優(yōu)勢結(jié)合,成為研究的重點(diǎn)。半同步/半異步線程池模型正是基于此圍繞隊(duì)列層進(jìn)行了設(shè)計(jì),其中異步層的任務(wù)主要是請求接收,而隊(duì)列層則是承擔(dān)待處理請求的存放工作,同步層的任務(wù)則是從隊(duì)列層中提取并處理相應(yīng)的請求[4]。
相較之下,領(lǐng)導(dǎo)者/追隨者線程池模型在處理請求方面的效率具有較突出的優(yōu)勢,不需要切換上下文,只需一個(gè)線程就可以完成任務(wù)。當(dāng)然,這種模型的劣勢在于靈活性不足,線程池模型隊(duì)列的缺失將導(dǎo)致其在調(diào)度方面存在缺陷。而半同步/半異步線程池模型的優(yōu)勢則在于靈活性較高,能夠在隊(duì)列層中進(jìn)行任務(wù)調(diào)度,但由于存在切換上下文操作,因此在效率方面有待提升。
在航海模擬器數(shù)據(jù)服務(wù)平臺(tái)設(shè)計(jì)中,如果要提高任務(wù)調(diào)度的靈活度,那么可以有效考慮半同步/半異步線程池模型;如果要提高效率,那么領(lǐng)導(dǎo)者/追隨者線程池模型則具有更強(qiáng)的適用性。受限于本文對數(shù)據(jù)通信技術(shù)在航海模擬器的應(yīng)用研究尚未詳盡,在未來航海模擬器應(yīng)用領(lǐng)域的發(fā)展中,相關(guān)技術(shù)人員需要圍繞此展開進(jìn)一步探究,并提出更優(yōu)的改進(jìn)策略,以此發(fā)揮數(shù)據(jù)通信技術(shù)的優(yōu)勢與特點(diǎn),為推進(jìn)航海模擬器應(yīng)用領(lǐng)域的發(fā)展提供助益。
參考文獻(xiàn):
[1] 朱春镕.航海模擬器中數(shù)據(jù)通信技術(shù)的應(yīng)用研究[D].大連:大連海事大學(xué),2015.
[2] 陳 兵,于芳濤.簡易船載航海數(shù)據(jù)記錄儀S-VDR的設(shè)計(jì)與實(shí)現(xiàn)[J].自動(dòng)化與儀表,2007,22(2):34-36,44.
[3] 張士君.現(xiàn)代網(wǎng)絡(luò)通信技術(shù)的應(yīng)用研究[J].科技展望,2016,26(14):6.
[4] 呂英龍,王 劍.北斗衛(wèi)星通信技術(shù)在航標(biāo)遙測遙控系統(tǒng)中的應(yīng)用[J].港口科技,2016,(1):42-44.