張曉麗 彭寒 景月娟
摘? ?要:針對(duì)當(dāng)前綜合模塊化航空電子系統(tǒng)(IMA)開發(fā)中存在的問題,提出一種基于特定領(lǐng)域建模的綜合航電分區(qū)間通信元模型的設(shè)計(jì)開發(fā)方法。通過分析航電系統(tǒng)分區(qū)間通信原理,抽取分區(qū)間通信的特性,采用基于面向特定領(lǐng)域的元建模分析方法,構(gòu)建了綜合航電分區(qū)間通信的元模型,通過元模型解析器生成了面向領(lǐng)域的建模語言,通過模型解釋器將應(yīng)用模型自動(dòng)生成系統(tǒng)通信配置文件。以模塊內(nèi)部兩分區(qū)間通信系統(tǒng)為實(shí)例對(duì)象進(jìn)行了驗(yàn)證,結(jié)果表明該建模語言,具有較好的可理解性、易用性,可顯著提高航電系統(tǒng)的開發(fā)效率,為基于元模型的綜合航電系統(tǒng)建模方法奠定基礎(chǔ)。
關(guān)鍵字:模型驅(qū)動(dòng)架構(gòu);元模型;分區(qū)間通信;綜合航電
中圖分類號(hào): TP391.9 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
Design of Meta-model of Integrated Modular
Avionic Inter-partition Communication
ZHANG Xiao-li PENG Han,JING Yue-juan
(School of Computer,Xi′an Aeronautical University,Xi'an,Shaanxi 710077,China)
Abstract:To solve the development problems of current integrated modular avionic(IMA) system,a development method based on domain-oriented meta-model of inter?partition communication was proposed. Through analyzing the communication principle between the avionics system partition and extract the characteristics,the inter-partition communication meta-model was constructed,then the domain-oriented meta-modeling languages was generated by meta-model parser and the application model used the model parser to generate the communication configure file automatically. Validated through the two partition communication in same module,the result shows that the model language has good intelligibility and usability,and can significantly improve the development efficiency of the avionics system,makes a basis of modeling method of integrated avionics system based on the meta-model.
Key words:model driven architecture;meta-model;inter-partition communication;integrated avionics;
航空電子系統(tǒng)模塊化、綜合化的快速發(fā)展對(duì)操作系統(tǒng)軟件提出了更高的要求,為保障系統(tǒng)的高安全性、高可靠性,必須有高安全性的實(shí)時(shí)操作系統(tǒng)支持,ARINC653提出了分區(qū)的核心概念,分區(qū)是運(yùn)行在一個(gè)處理器模塊上的多個(gè)應(yīng)用程序的集合,其優(yōu)勢是空間分區(qū)和時(shí)間分區(qū)的相互隔離,當(dāng)一個(gè)分區(qū)內(nèi)的應(yīng)用發(fā)生錯(cuò)誤時(shí),在時(shí)間和空間上都不會(huì)影響到別的分區(qū)的執(zhí)行。分區(qū)間通信是不同分區(qū)內(nèi)的應(yīng)用程序間的信息交換的主要途徑,其正確性和可靠性將極大地影響系統(tǒng)的性能[1]。
隨著綜合航電系統(tǒng)規(guī)模不斷的增大,傳統(tǒng)的開發(fā)測試方法已不能適應(yīng)日益增長的軟件系統(tǒng)規(guī)模和復(fù)雜性需求,基于模型驅(qū)動(dòng)的可視化系統(tǒng)建模設(shè)計(jì)方法已經(jīng)廣泛應(yīng)用于機(jī)載軟件開發(fā)過程中[2,3,4]。模型驅(qū)動(dòng)方法是研究復(fù)雜系統(tǒng)的主要方法,采用模型驅(qū)動(dòng)架構(gòu) MDA(model driven architecture)[5]的理論和方法,可以在設(shè)計(jì)初期建立系統(tǒng)模型,對(duì)其各項(xiàng)關(guān)鍵屬性進(jìn)行分析和驗(yàn)證,以滿足系統(tǒng)的需求。
基于MDA和元建模技術(shù),將綜合航電系統(tǒng)的分區(qū)間通信的行為特性抽取出來,建立分區(qū)間通信的系統(tǒng)元模型[6],構(gòu)建適用于專業(yè)技術(shù)人員的圖形化建模環(huán)境,并解析該元模型自動(dòng)生成通信配置文件,從模型構(gòu)建及使用的角度完成了綜合航電分區(qū)間通信行為建模語言的設(shè)計(jì)、實(shí)現(xiàn)與應(yīng)用,從而提升軟件的自動(dòng)化程度和開發(fā)效率。
1? ?MDA概述
模型驅(qū)動(dòng)構(gòu)架(model driven architecture,MDA)是由對(duì)象管理小組(object management group,OMG)提出的一套以模型為中心的軟件設(shè)計(jì)開發(fā)方法,是一種直接將模型用于理解、分析系統(tǒng),以及構(gòu)建、部署、維護(hù)和修改軟件的過程中的軟件系統(tǒng)設(shè)計(jì)與開發(fā)方法[2]。其主要思想是使用高度抽象的模型作為開發(fā)核心,使程序設(shè)計(jì)人員將設(shè)計(jì)中心轉(zhuǎn)向模型,將設(shè)計(jì)與實(shí)現(xiàn)分開。元建模(MetaModeling)[7]是一種模型集成化的工程分析方法,是對(duì)系統(tǒng)高層次上的抽象,其本質(zhì)就是在特定領(lǐng)域內(nèi)抽象該領(lǐng)域的元模型。實(shí)踐表明,利用元建模技術(shù)可以簡化建模語言的定義過程,大幅度提高軟件開發(fā)效率,滿足大量的建模需求。
元建模的本質(zhì)是創(chuàng)建元模型,元模型是描述特定模型語言的模型,定義了一組相關(guān)的架構(gòu)、語義和限制條件,主要用于描述特定領(lǐng)域的模型,是模型的更高一級(jí)抽象[4]。
元對(duì)象設(shè)施(meta-object facility,簡稱MOF)[8]是OMG組織提出的建模標(biāo)準(zhǔn)規(guī)范,它為下一代的平臺(tái)無關(guān)模型提供了元數(shù)據(jù)框架,其作用是建立元模型,元模型經(jīng)過解釋生成領(lǐng)域建模語言,可用于領(lǐng)域內(nèi)不同應(yīng)用模型的開發(fā)。
以MOF標(biāo)準(zhǔn)為規(guī)范建立分區(qū)間通信系統(tǒng)元模型,基于 MOF元建模就是對(duì)元元模型進(jìn)行實(shí)例化的過程,其開發(fā)步驟如圖1所示。首先分析綜合航電系統(tǒng)分區(qū)間通信特性,得到領(lǐng)域基礎(chǔ),然后使用GME構(gòu)建其概念模型,得到分區(qū)間通信元模型,通過元模型解釋器生成領(lǐng)域建模環(huán)境,設(shè)計(jì)符合新元模型的應(yīng)用模型,解析新元模型的信息生成配置文件,實(shí)現(xiàn)系統(tǒng)模型到配置文件的自動(dòng)轉(zhuǎn)化。
2? ?分區(qū)間通信原理
分區(qū)是 ARINC653 標(biāo)準(zhǔn)中的一個(gè)核心概念,支持多個(gè)航空應(yīng)用在一個(gè)獨(dú)立的平臺(tái)上運(yùn)行,分區(qū)間通信是指在同一模塊或不同模塊上的兩個(gè)或多個(gè)分區(qū)之間的數(shù)據(jù)交換。為了隔離不同應(yīng)用程序之間的影響,系統(tǒng)必須保證分區(qū)在時(shí)間和空間上的隔離,因此分區(qū)之間不允許直接通信,分區(qū)之間的通信是通過由操作系統(tǒng)控制的端口發(fā)送和接收消息來實(shí)現(xiàn)的,消息可以從一個(gè)單一的源端口發(fā)送給一個(gè)或多個(gè)目的端口。
分區(qū)間通信是由基于通道通信的信息交換和同步機(jī)制來完成的,該服務(wù)通信機(jī)制如圖2所示,主要包括端口、通道以及傳送的消息。首先,源分區(qū)應(yīng)用程序調(diào)用APEX函數(shù)將消息發(fā)送到源端口,源端口按照通信協(xié)議發(fā)送消息給通道,然后通過硬件模塊支持層的接口將消息發(fā)送到目標(biāo)端的物理接口,最后由目標(biāo)分區(qū)的端口接收信息。其中,端口是應(yīng)用程序在發(fā)送或接受消息時(shí)使用的分區(qū)內(nèi)局部
資源,通道定義了一個(gè)源端口和一個(gè)或多個(gè)目的端口之間的邏輯連接關(guān)系,提供了分區(qū)互聯(lián)的通信機(jī)制,而底層的硬件平臺(tái)對(duì)于應(yīng)用程序來說是透明的。
3? ?分區(qū)間通信元模型
3.1? ?分區(qū)元模型
IMA分區(qū)是處于模塊管理之下的時(shí)間和空間上的執(zhí)行單元,是根據(jù)航空電子應(yīng)用中的功能進(jìn)行劃分,分區(qū)內(nèi)有自己的操作系統(tǒng),對(duì)于每一個(gè)分區(qū),其主要屬性如下:
(1)分區(qū)狀態(tài):描述分區(qū)的所有狀態(tài)信息,包括分區(qū)名、分區(qū)內(nèi)存、分區(qū)調(diào)度周期、持續(xù)時(shí)間、入口地址等信息。
(2)分區(qū)級(jí)操作系統(tǒng):分區(qū)級(jí)操作系統(tǒng)主要實(shí)現(xiàn)對(duì)分區(qū)內(nèi)進(jìn)程的調(diào)度。
(3)分區(qū)應(yīng)用程序名:運(yùn)行在此分區(qū)之內(nèi)的機(jī)載應(yīng)用程序名稱。
(4)分區(qū)端口組:標(biāo)識(shí)分區(qū)所擁有的分區(qū)間通信端口的各種屬性。端口作為分區(qū)間信息交換的主要對(duì)象,其端口模式分為采樣端口和隊(duì)列端口,主要區(qū)別如下:隊(duì)列端口具有消息緩存功能,適用于傳輸包含不同的數(shù)據(jù)的消息,消息不允許覆蓋,一般情況下消息不會(huì)丟失;采樣端口適用于傳輸按周期更新的數(shù)據(jù)消息,系統(tǒng)只有一個(gè)有效的緩沖區(qū),不存在緩存功能,后來的數(shù)據(jù)會(huì)將原來的數(shù)據(jù)覆蓋。在采樣模式下,分區(qū)隨時(shí)可以發(fā)送消息或訪問目的端口消息。兩種端口除了具備各自的端口名稱和端口ID屬性之外,各端口狀態(tài)信息如表1所示:
(5)分區(qū)進(jìn)程組:分區(qū)中包含的所有進(jìn)程對(duì)象。
(6)最大進(jìn)程個(gè)數(shù):分區(qū)創(chuàng)建的進(jìn)程個(gè)數(shù)最大值。
(7)最大采樣端口個(gè)數(shù):分區(qū)中采樣端口個(gè)數(shù)最大值。
(8)最大隊(duì)列端口個(gè)數(shù):分區(qū)中隊(duì)列端口個(gè)數(shù)最大值。
(9)最大緩沖區(qū)個(gè)數(shù):分區(qū)創(chuàng)建的緩沖區(qū)個(gè)數(shù)最大值。
(10)最大黑板個(gè)數(shù):分區(qū)創(chuàng)建的黑板個(gè)數(shù)最大值。
(11)最大事件個(gè)數(shù):分區(qū)創(chuàng)建的事件個(gè)數(shù)最大值。
(12)最大信號(hào)量個(gè)數(shù):分區(qū)創(chuàng)建的信號(hào)量個(gè)數(shù)最大值。
根據(jù)以上特性,構(gòu)建分區(qū)的元模型如圖3所示:
3.2? ?通信元模型
分區(qū)間通信分為模塊內(nèi)和模塊間的通信。模塊內(nèi)通信是指通信的分區(qū)位于同一個(gè)模塊上;模塊間通信是通信分區(qū)位于不同的模塊上,它們之間的通信需要用到偽分區(qū)來實(shí)現(xiàn)。偽分區(qū)具有分區(qū)的屬性,區(qū)別在于偽分區(qū)做的是數(shù)據(jù)轉(zhuǎn)換的工作,通過它讓不同操作系統(tǒng)上的兩個(gè)分區(qū)實(shí)現(xiàn)數(shù)據(jù)交互,通過端口收發(fā)信息。
基于分區(qū)元模型和分區(qū)間通信的特點(diǎn),構(gòu)建分區(qū)間通信元模型。該元模型定義了分區(qū)間通信過程中所需的元素及之間的聯(lián)系,為不同分區(qū)之間數(shù)據(jù)交換提供統(tǒng)一標(biāo)準(zhǔn),同時(shí)通過對(duì)該元模型的解析,生成相應(yīng)的配置文件。如圖 4所示,該模型包括了分區(qū)端口、通道等模型元素。
3.3? ?約束規(guī)則
ARINC653規(guī)定其中采樣端口和隊(duì)列端口通過各自的通道接受或發(fā)送消息,并且類型一致,即采樣端口只能連接采樣端口,隊(duì)列端口只能連接對(duì)列端口。由此,使用OCL語言來實(shí)現(xiàn)模型的約束校驗(yàn)。
本文根據(jù)ARINC653規(guī)定,給出部分約束校驗(yàn)代碼如下,該語句表示設(shè)置緩沖區(qū)的通信源和目的都只能有一個(gè):
self.connectionPoints(“src”)->theOnly().target().parent().parent() = self.connectionPoints(“dst”)->theOnly().target().parent()
3.4? ?配置文件生成
分區(qū)間通信實(shí)現(xiàn)的關(guān)鍵是系統(tǒng)配置文件,在該文件中定義分區(qū)、端口、通道、傳輸協(xié)議和傳輸設(shè)備的配置。其中,端口作為主要的通信對(duì)象,在系統(tǒng)配置文件中需要指定端口的各個(gè)特征,同時(shí)還需單獨(dú)以<端口名稱、分區(qū)名稱>的方式定義連接關(guān)系,并制定消息的大小和傳輸協(xié)議。分區(qū)間通信配置文件如表2所示:
當(dāng)建立分區(qū)間通信元模型之后,通過使用模型解釋器對(duì)元模型進(jìn)行解析,可以根據(jù)該元模型生成系統(tǒng)配置文件。模型解釋器的作用是把模型轉(zhuǎn)換成特定格式的文件,包括目標(biāo)系統(tǒng)的配置文件、數(shù)據(jù)庫框架或程序代碼等。GME中的構(gòu)造對(duì)象網(wǎng)絡(luò)(Builder Object Network II,BON 2)框架,用于將領(lǐng)域模型映射到C++類,提供了豐富的、功能強(qiáng)大的接口來支持模型解釋。使用GME中BON2框架對(duì)元模型進(jìn)行解析,并根據(jù)模型的結(jié)構(gòu)和行為生成相應(yīng)的XML配置文件。
4? ?仿真應(yīng)用實(shí)例分析
在GME環(huán)境中,使用自動(dòng)化元模型解析工具,將搭建的分區(qū)間通信元模型解析并生成了綜合航電分區(qū)間通信建模環(huán)境。該仿真實(shí)例是在同一模塊內(nèi)部根據(jù)分區(qū)間通信特點(diǎn)搭建的兩個(gè)分區(qū)間通信的應(yīng)用,如圖5所示。
該仿真實(shí)例在同一模塊上創(chuàng)建了FMSPartition和NAVPatition兩個(gè)分區(qū),并將FMSPartition設(shè)置為系統(tǒng)分區(qū),NAVPatition為非系統(tǒng)分區(qū),同時(shí)設(shè)置分區(qū)標(biāo)識(shí),優(yōu)先級(jí),入口地址等屬性。進(jìn)入分區(qū),給每個(gè)分區(qū)設(shè)置其端口信息,在FMSPartition分區(qū)中,設(shè)置了5個(gè)隊(duì)列端口,3個(gè)采樣端口,并將其設(shè)置為源端口,通過各自通道連接至NAVPatition分區(qū)類型一致的相應(yīng)端口。消息從FMSPartition分區(qū)中的Q1 端口發(fā)送至NAVPatition分區(qū)二的Q1端口,所有的執(zhí)行程序都不超過定義的最大時(shí)間長度。
端口間的通信原則遵循OCL約束,當(dāng)采樣端口和隊(duì)列端口作為源時(shí),它只能夠與同類型的端口建立通信,一旦違反約束,則提示錯(cuò)誤,如圖6所示。
在GME建模環(huán)境中創(chuàng)建好分區(qū)間通信實(shí)例之后,仿真模型則通過調(diào)用自行開發(fā)的模型解析器,按照各端口設(shè)置的相應(yīng)屬性及通信規(guī)則,解析生成如下的系統(tǒng)配置文件。
PartitionName=“FMSPartition”? Criticality =“LEVEL_A”? ? SystemPartition=“true” Entrypoint=“Initial”> MaxMessageSize=“30” Direction=“ SOURCE” MaxNbMessages=“30”> MaxMessageSize=“20”? ?Direction=“ SOURCE” RefreshRateSeconds=“0.100”>
PartitionName=“NAVPartition”? ? Criticality =“LEVEL_A”? ?SystemPartition=“false” Entrypoint=“Initial”> MaxMessageSize=“30” Direction=" DESTINATION” MaxNbMessages=“30”> MaxMessageSize=“20” Direction=“DESTINATION” RefreshRateSeconds=“0.100”>
5? ?結(jié)? ?論
通過研究元建模相關(guān)技術(shù)和特定領(lǐng)域建模的相關(guān)理論和方法,分析了綜合航電系統(tǒng)分區(qū)間通信原理,抽取了分區(qū)間通信對(duì)象的特征,采用特定領(lǐng)域建模方法,構(gòu)建了綜合航電分區(qū)間通信元模型,并通過對(duì)該元模型的解析實(shí)現(xiàn)了對(duì)IMA分區(qū)間通信對(duì)象的可視化配置、靜態(tài)檢查、配置文件自動(dòng)生成等功能。通過仿真實(shí)例驗(yàn)證了本建模環(huán)境對(duì)分區(qū)間通信的完整性、易用性、適用性。
參考文獻(xiàn)
[1]? ? 贠海順. 分區(qū)操作系統(tǒng)下模塊間端口通信機(jī)制[J]. 信息通信,2018,183(3):213—214.
[2]? ? 張瀟,王立松,讓濤. 基于模型的綜合航電平臺(tái)初步設(shè)計(jì)[J]. 計(jì)算機(jī)與現(xiàn)代化,2016,250(6):29—35.
[3]? ? 周德新,牛亞月,崔海青. IMA分區(qū)間通信的一致性測試模型[J]. 計(jì)算機(jī)仿真,2018,35(2):43—48.
[4]? ? 王志樂,魏俊淦,于輝. 基于元模型特性的機(jī)載顯控系統(tǒng)建模方法[J]. 系統(tǒng)仿真學(xué)報(bào),2015,27(11):2638—2643.
[5]? ? Object Management? Group.? OMG? model? driven? architecture-the architecture of choice for a changing world [EB/OL]. (2010-06-02) [2011-05-07]. http://www.omg.org/mda/.
[6]? ? SHU J,ZHENG C,YANG F Y,et al. Research on applied-information technology with inter-partition integration testing strategy under IMA architecture[J]. Advanced Materials Research,2014,3295(977):454—459.
[7]? ? 劉輝,麻志毅,邵維忠. 元建模技術(shù)研究進(jìn)展[J]. 軟件學(xué)報(bào),2008,19(6):1318—1327.
[8]? ? Object Management Group.Meta object facility(MOF) specification version 1.3[S/OL]. [2015-03-01].http://www.omg.org/spec/MOF/index.htm.