何德濤
(武漢交通職業學院,湖北 武漢 430065)
在航海模擬器應用不斷發展的背景下,航海模擬器改進與完善成為當下航海領域的重點研究課題。航海模擬器系統的性能大多取決于其數據通信能力。因此,如何提高航海模擬器數據通信能力,成為完善航海模擬器的關鍵所在。鑒于此,研究數據通信技術在航海模擬器中的應用,具有重要的研究價值。
航海模擬器屬于一種大型分布交互式仿真系統。它的核心由兩部分組成,即一組計算機和一套運作于網絡中的應用程序。整個系統中,計算機終端與應用程序的協同性對系統數據通信能力具有決定性影響。在航海模擬器功能越來越豐富的背景下,系統數據通信部分需要承擔更大的任務,這無疑會引發一系列超負荷問題[1]。比如,大量的數據信息可能會導致網絡擁塞,進而導致由于數據傳輸延遲甚至終端而引發的視鏡機死機。顯然,這會對航海模擬器的數據通信效率和畫面的流暢度產生十分不利的影響。目前,航海模擬器通信系統的主要問題,包括海圖機承擔較重負載、通信過程有待簡化、數據傳輸冗余性過強等,都需要相關技術人員圍繞此展開研究與分析,并提出相應的解決對策。
所謂ACE技術,就是指自適配網絡通信環境(Adaptive Communication Environment),是一種面向對象的網絡通信編程中間件。相較于一些原始的操作系統,ACE技術具有可移植性、簡易性,在應用過程中不易出現錯誤現象。同時,該項技術還可以對應用程序的創建、組成、配置以及移植進行簡化處理。此外,基于ACE技術的應用模式有很多種類型,在通信系統中無疑具有更強的適用性。因此,對于航海模擬器通信服務器的設計而言,ACE技術顯然具有較高的應用價值,各方面優勢突出。受限于篇幅,本文不對該項技術進行詳盡闡述,相關知識可參考文獻[2]。
Client/server是基于客戶端或服務器結構的一種通信模式。在該模式下,客戶端與服務器端會接收適當的任務,使通信系統得以協同工作。同時,客戶端與服務器端的硬件環境優勢也得到了充分發揮。客戶端的任務是以用戶為對象,從客戶端接收用戶的請求,然后由服務器端對相應的請求進行處理與回應。Client/server通信模式對客戶端、服務器端的協同性提出了很高要求。該模式的特點在于實現了資源共享,且在管理方面更具科學性和專業性,處理信息時也更具高效性。顯然,在軟件、硬件資源的保護方面,Client/server通信模式具有更大的優勢,且這種結構在靈活性、拓展性以及開放性方面都比較突出,在航海模擬器中具有較高的應用價值。
針對航海模擬器數據通信存在的問題,筆者認為可以將通信服務器應用于航海模擬器,并運用ACE技術,圍繞Client/server,打造數據服務平臺。其中,Client/server通信模式有多種,本文圍繞其中一種展開研究與分析,并將其作為航海模擬器數據服務平臺的通信模式。它的模型圖如圖1所示。

圖1 在不同計算機上運行客戶機程序與服務器程序模型
本文所述的航海模擬器具有多本船配置,在數據服務平臺的構建過程中,由于存在較多的客戶端,因此服務器需要承擔比較繁重的任務。因此,必須提高通信系統運行的可靠性和有效性,而這就要求將提高通信并發能力作為數據服務平臺設計的重點。此外,航海模擬器規模與功能的擴展,也對其數據通信量提出了更高要求。為了實現航海模擬器的拓展,必須對其數據服務平臺的通信并發能力的提升與優化予以高度重視。
正如上文所述,數據通信系統的性能很大程度上取決于通信并發策略。因此,在航海模擬器數據服務平臺設計中,必須關注數據通信系統的應用環境優化問題,并對通信并發策略進行合理選擇。現階段,關于通信并發策略的選擇有很多模型,本文主要對單線程、線程池兩種模型進行介紹與分析[3]。
3.2.1 單線程模型
對于單線程模型而言,服務器需要根據請求順序,在同一個線程統一完成對全部客戶端請求的處理。換言之,任何請求在得到響應前必須要完成前一個請求的處理。
相較于其他模型,單線程模型的優勢在于系統運作成本大幅度降低。不管是同步、創建與銷毀線程,還是切換上下文,難度相較于以往都有所降低。當然,需要注意的是,當代航海模擬器開始運用多核技術。在此背景下,如果簡單運用單線程模型,那么計算機中央處理器的性能可能無法得到充分發揮。以I/O密集型的應用為例,該模式在面對多個請求時,響應速度可能相對較慢,會影響到系統性能。此外,同一時刻,系統應對的請求如果過于繁雜,那么采用單線程模型就會存在無法承擔的問題,進而導致服務請求被無限擱置。
3.2.2 線程池模型
如果運用線程池模型,那么相關開銷問題就可以得到解決。在對系統進行初始化處理的過程中,會有多個線程在線程池提前派生出來。在服務器請求到達的過程中,管理器會從線程池中指派線程處理相關請求,并將此線程從線程池中移除掉。完成請求處理后,這一線程又會重新返回到線程池中。一般而言,線程池大小不會發生改變,不僅節能,而且節約成本。
對于航海模擬器數據通信系統而言,整個系統如上文所述屬于I/O密集型,這對其響應請求的能力提出了較高要求。數據通信系統需要耗費較多時間來處理相關任務,需要承受較大負載。因此,在對比選擇通信并發策略時,線程池模型應予以優先考慮。它在航海模擬器數據服務平臺設計中具有更強的適用性。
在線程池模型中,連接建立接收器后,對接受處理器進行監理,并在任務處理中加以運用。關于線程池模型的種類,目前常見的有領導者/追隨者模型和半同步/半異步模型。需要注意的是,根據線程池技術的不同,在面對請求時,其處理方式也有所差異。
例如,領導者/追隨者線程池模型要求在同一時間內不能有多個領導者,追隨者線程則全部處于睡眠模式。外部事件會觸發領導者線程,此時領導者線程會挑選追隨者線程,并將其作為下一線程的領導者,然后對相應的外部事件進行處理。當處理完事件后,這一線程則會轉化為追隨者,并重復上述流程,繼續待命。當線程領導者被新的線程領導者取代后,新的線程領導者則需承擔上任線程領導者的工作。
再如,半同步/半異步線程池模型,主要分為同步層、隊列層以及異步層。通常,異步具有較高效率,但在編程中由于復雜的操作而不具有適用性。反之,同步對于編程來講相對簡易。因此,如何將同步與異步優勢結合,成為研究的重點。半同步/半異步線程池模型正是基于此圍繞隊列層進行了設計,其中異步層的任務主要是請求接收,而隊列層則是承擔待處理請求的存放工作,同步層的任務則是從隊列層中提取并處理相應的請求[4]。
相較之下,領導者/追隨者線程池模型在處理請求方面的效率具有較突出的優勢,不需要切換上下文,只需一個線程就可以完成任務。當然,這種模型的劣勢在于靈活性不足,線程池模型隊列的缺失將導致其在調度方面存在缺陷。而半同步/半異步線程池模型的優勢則在于靈活性較高,能夠在隊列層中進行任務調度,但由于存在切換上下文操作,因此在效率方面有待提升。
在航海模擬器數據服務平臺設計中,如果要提高任務調度的靈活度,那么可以有效考慮半同步/半異步線程池模型;如果要提高效率,那么領導者/追隨者線程池模型則具有更強的適用性。受限于本文對數據通信技術在航海模擬器的應用研究尚未詳盡,在未來航海模擬器應用領域的發展中,相關技術人員需要圍繞此展開進一步探究,并提出更優的改進策略,以此發揮數據通信技術的優勢與特點,為推進航海模擬器應用領域的發展提供助益。
參考文獻:
[1] 朱春镕.航海模擬器中數據通信技術的應用研究[D].大連:大連海事大學,2015.
[2] 陳 兵,于芳濤.簡易船載航海數據記錄儀S-VDR的設計與實現[J].自動化與儀表,2007,22(2):34-36,44.
[3] 張士君.現代網絡通信技術的應用研究[J].科技展望,2016,26(14):6.
[4] 呂英龍,王 劍.北斗衛星通信技術在航標遙測遙控系統中的應用[J].港口科技,2016,(1):42-44.