1. 程式人生 > >麒麟KY-RTI分佈模擬技術:前言

麒麟KY-RTI分佈模擬技術:前言

       自從美國國防部建模與模擬辦公室(DMSO)首次提出高層體系結構(High Level Architecture,HLA)概念以來,HLA模擬技術得到了迅猛發展,也成為我國計算機模擬領域的重要應用方向。

       HLA是一套標準,本質上是幾個PDF檔案,而按照該標準實現的軟體則被稱之為執行支撐環境(Run-Time Infrastructure,RTI)。在一個模擬系統中,參加模擬的程式叫做模擬成員(Federate),整個模擬稱之為聯邦(Federation)。一個可執行程式被執行n次,則系統中有n個模擬成員。

       HLA本質上是一個訊息中介軟體標準,模擬成員通過RTI軟體交換資料。一個模擬成員可以執行在Linux、Windows等作業系統上,可以採用GNU C++、Qt、Java、Visual C++、Visual C#等各種語言來編寫,只要遵循HLA標準定義的介面,則不同作業系統下不同語言實現的模擬成員就能夠實現相互之間的通訊,為使用者編寫分散式模擬程式提供了極大方便。KY-RTI(麒麟RTI)正是這樣的一個RTI軟體,支援多種型號的CPU、支援Linux、Windows作業系統、支援GNU C++、Qt、Java、Visual C++

、Visual C#等多種程式設計語言,當前能夠支援這麼多程式設計語言的RTI極其少見。

       HLA標準有兩套,其一為DMSO提出的HLA1.3標準;其二是由瑞典Pitch公司主導的IEEE 1516標準。兩種標準都提供了聯邦管理、宣告管理、物件管理、所有權管理、時間管理、資料分發管理、管理物件模型(MOM)等七大管理服務,主要區別在於資料分發管理採用了不同的概念。另外,IEEE 1516對引數型別進行了更復雜的封裝,譬如,與邏輯時間相關的類就有RTI::LogicalTime、RTI::LogicalTimeFactory、RTI::LogicalTimeInterval、RTI::LogicalTimeIntervalFactory,要將一個邏輯時間與時間間隔進行加減運算,或者兩個邏輯時間進行比較運算是非常麻煩的事情,不能通過一般的“+”、“-“、“<”、“>”等運算子進行;IEEE 1516這種封裝看似比HLA1.3更加標準化了,但使用起來卻不方便、不實在。KY-RTI是一個遵循HLA1.3標準的RTI軟體,通過“+”、“-“、“<”、“>”等運算子就可以對邏輯時間進行操作。

       KY-RTI遵循HLA1.3標準,除了IEEE1516使用不太方便外,另一個重要原因在於美軍幾乎都在使用DMSO定義的HLA1.3標準,而不是一個由國外公司主導的模擬標準。由於缺少HLA1.3的RTI軟體,一個10多年以前開發的老程式,現在一般很難在最新的作業系統上運行了;但通過KY-RTI可以方便地移植到最新的作業系統和CPU上。作者曾經成功地基於KY-RTI將1個使用TCL/TK開發的舊的HLA模擬程式成功地移植到CentOS6.5。當然,IEEE1516標準有自己的特色,譬如模擬程式可以不使用tick服務(IEEE1516中稱之為evokeCallback)進行模擬,KY-RTI在HLA1.3標準的基礎上,融合了IEEE1516的這些優點,支援使用者使用tick或者不使用tick服務來開發程式。作者參與開發了多個RTI軟體,包括遵循IEEE1516標準的StarLink、支援大規模模擬的層次式RTI等各型別RTI軟體,對RTI軟體在模擬系統中的使用有深刻體會。

麒麟RTI軟體KY-RTI的Linux、Windows版本和原始碼請聯絡作者:[email protected]