王彧澤 呂良慶何睿
(1 中國(guó)科學(xué)院國(guó)家空間科學(xué)中心 復(fù)雜航天系統(tǒng)電子信息技術(shù)重點(diǎn)實(shí)驗(yàn)室,北京 100190)(2 中國(guó)科學(xué)院大學(xué),北京 100049)
航天器使用的數(shù)據(jù)主要有遙測(cè)數(shù)據(jù)、遙控?cái)?shù)據(jù)和應(yīng)用數(shù)據(jù),按照內(nèi)容或傳輸通道又可以進(jìn)一步劃分工程參數(shù)、遙測(cè)通道數(shù)據(jù)、數(shù)傳通道數(shù)據(jù)、輔助數(shù)據(jù)、科學(xué)數(shù)據(jù)、上行數(shù)據(jù)注入等。不同的航天器對(duì)這些數(shù)據(jù)對(duì)象的定義不同,通常是通過(guò)特定的接口定義和接口控制文件的方式來(lái)確定。這樣會(huì)導(dǎo)致數(shù)據(jù)在任務(wù)過(guò)程中不易修改,需要有特定的基礎(chǔ)設(shè)施進(jìn)行數(shù)據(jù)的處理,并在工程過(guò)程中進(jìn)行測(cè)試驗(yàn)證。這種做法使得數(shù)據(jù)的定義難以跨任務(wù)復(fù)用,即使能夠復(fù)用,也需要通過(guò)校對(duì)、測(cè)試驗(yàn)證等手段保證其正確性,增大了系統(tǒng)的開(kāi)發(fā)和維護(hù)風(fēng)險(xiǎn)[1-2]。
針對(duì)這一問(wèn)題,需要一種通用的方法來(lái)描述不同的數(shù)據(jù)對(duì)象。本文采用歐洲空間標(biāo)準(zhǔn)化合作組織(ECSS)的包應(yīng)用標(biāo)準(zhǔn)(PUS)[3]給出的航天器數(shù)據(jù)對(duì)象從數(shù)據(jù)類(lèi)型、數(shù)據(jù)參數(shù)到數(shù)據(jù)格式的通用定義方法,進(jìn)行了電子數(shù)據(jù)單(EDS)實(shí)例化設(shè)計(jì)和工具實(shí)現(xiàn),重點(diǎn)是抽象數(shù)據(jù)結(jié)構(gòu)的描述[4-5],可以用于定義任意的數(shù)據(jù)對(duì)象。
數(shù)據(jù)對(duì)象的定義需要按照定義抽象數(shù)據(jù)架構(gòu)、給出數(shù)據(jù)對(duì)象模板、生成數(shù)據(jù)對(duì)象3個(gè)過(guò)程進(jìn)行[6]。信息對(duì)象是不同專(zhuān)業(yè)領(lǐng)域中的描述對(duì)象,表現(xiàn)為所需要素和方法的數(shù)據(jù)對(duì)象構(gòu)成的抽象數(shù)據(jù)架構(gòu),一般通過(guò)描述語(yǔ)言的模式(Schema)定義來(lái)實(shí)現(xiàn),例如可擴(kuò)展標(biāo)記語(yǔ)言(XML)的Schema。在Schema基礎(chǔ)上,對(duì)數(shù)據(jù)對(duì)象的實(shí)例化描述構(gòu)成了數(shù)據(jù)對(duì)象模板,然后在實(shí)際使用過(guò)程中,通過(guò)填入數(shù)據(jù)值,生成最終的數(shù)據(jù)對(duì)象。
描述數(shù)據(jù)對(duì)象的抽象數(shù)據(jù)架構(gòu)按照UML類(lèi)圖的畫(huà)法如圖1所示。
在抽象數(shù)據(jù)架構(gòu)中,對(duì)數(shù)據(jù)對(duì)象的描述分為元數(shù)據(jù)部分和數(shù)據(jù)部分。元數(shù)據(jù)部分包含數(shù)據(jù)類(lèi)型,通過(guò)包域類(lèi)型代碼(PTC)和包域格式代碼(PFC)的組合來(lái)定義,說(shuō)明該數(shù)據(jù)類(lèi)型參數(shù)的格式和所占空間大小,是后續(xù)解析和處理數(shù)據(jù)對(duì)象的主要依據(jù)。數(shù)據(jù)部分包含數(shù)據(jù)參數(shù)和數(shù)據(jù)格式。數(shù)據(jù)參數(shù)是組成數(shù)據(jù)格式的最小單元。數(shù)據(jù)格式由一系列數(shù)據(jù)參數(shù)組成,按照參數(shù)是否可重復(fù)出現(xiàn)劃分為簡(jiǎn)單數(shù)據(jù)格式和復(fù)雜數(shù)據(jù)格式。
按照PUS的數(shù)據(jù)定義方法,采用XML語(yǔ)言設(shè)計(jì)的通用數(shù)據(jù)對(duì)象Schema如圖2所示。
圖2 數(shù)據(jù)對(duì)象Schema
圖2中定義一個(gè)完整的數(shù)據(jù)對(duì)象過(guò)程按照定義數(shù)據(jù)類(lèi)型、數(shù)據(jù)參數(shù)、簡(jiǎn)單數(shù)據(jù)格式、復(fù)雜數(shù)據(jù)格式的順序進(jìn)行。在實(shí)際使用中,可以通過(guò)XML語(yǔ)言的引用機(jī)制,按需截取圖中的一部分來(lái)使用,而不必是完整的。
定義數(shù)據(jù)類(lèi)型時(shí)采用PUS標(biāo)準(zhǔn)中的PTC和PFC組合來(lái)描述。PTC的取值對(duì)應(yīng)表示具體的數(shù)據(jù)類(lèi)型。PFC的定義對(duì)應(yīng)PTC的取值,規(guī)定了相應(yīng)數(shù)據(jù)類(lèi)型的表示格式和保存空間大小。圖2中的標(biāo)簽
定義數(shù)據(jù)參數(shù)時(shí),需要指明數(shù)據(jù)參數(shù)所引用的數(shù)據(jù)類(lèi)型,并且每個(gè)參數(shù)有且僅有一個(gè)數(shù)據(jù)類(lèi)型。在之后的數(shù)據(jù)處理中,需要依據(jù)該數(shù)據(jù)參數(shù)的數(shù)據(jù)類(lèi)型ID信息(屬性PTC和PFC)解析數(shù)據(jù)參數(shù)值。標(biāo)簽
數(shù)據(jù)格式又分為簡(jiǎn)單數(shù)據(jù)格式和復(fù)雜數(shù)據(jù)格式。簡(jiǎn)單數(shù)據(jù)格式由若干不重復(fù)的參數(shù)組成。標(biāo)簽
復(fù)雜數(shù)據(jù)格式由若干個(gè)可重復(fù)的簡(jiǎn)單數(shù)據(jù)格式組成。標(biāo)簽
圖2復(fù)雜數(shù)據(jù)格式中不直接包含數(shù)據(jù)參數(shù)。如果一個(gè)參數(shù)要單獨(dú)出現(xiàn)在復(fù)雜數(shù)據(jù)格式中,也需要先將其定義為簡(jiǎn)單數(shù)據(jù)格式,再引用到復(fù)雜數(shù)據(jù)格式中。這樣做是為了規(guī)范和簡(jiǎn)化復(fù)雜數(shù)據(jù)格式的定義規(guī)則,清晰數(shù)據(jù)定義的層次關(guān)系。
數(shù)據(jù)定義工具依據(jù)數(shù)據(jù)定義方法進(jìn)行設(shè)計(jì),提供給使用者,用于按需設(shè)計(jì)生成不同的數(shù)據(jù)對(duì)象模板。數(shù)據(jù)定義工具原理如圖3所示。
圖3 數(shù)據(jù)定義工具原理圖
圖3中每定義一個(gè)數(shù)據(jù)類(lèi)型、數(shù)據(jù)參數(shù)或數(shù)據(jù)格式,需要在數(shù)據(jù)定義庫(kù)中的相應(yīng)表中添加一條記錄,并生成相應(yīng)的數(shù)據(jù)對(duì)象模板文件。數(shù)據(jù)格式的定義會(huì)使用到庫(kù)中已定義的參數(shù),參數(shù)的定義會(huì)使用到已有的數(shù)據(jù)類(lèi)型,以此類(lèi)推,這一過(guò)程允許用戶(hù)自由定義所需的格式。生成后的模板文件也可以根據(jù)需要,按照不同領(lǐng)域的標(biāo)準(zhǔn)進(jìn)行數(shù)據(jù)格式轉(zhuǎn)換,從而便于異構(gòu)系統(tǒng)之間進(jìn)行數(shù)據(jù)交換,同時(shí)適用于不同領(lǐng)域的數(shù)據(jù)應(yīng)用。例如圖3中,可以按照CCSDS提出的基于XML的遙測(cè)遙控信息交換(XTCE)標(biāo)準(zhǔn)[7-10],轉(zhuǎn)換生成相應(yīng)的遙測(cè)或遙控?cái)?shù)據(jù)的XTCE文件,按照CCSDS的航天器接口業(yè)務(wù)(SOIS)[11]電子數(shù)據(jù)單(SEDS)標(biāo)準(zhǔn)[12],轉(zhuǎn)換生成用于描述設(shè)備、業(yè)務(wù)和應(yīng)用的EDS文件。
數(shù)據(jù)定義工具的軟件架構(gòu)采用分層的思想,從上到下分別是視圖層、應(yīng)用層、業(yè)務(wù)邏輯層和數(shù)據(jù)定義庫(kù),如圖4所示。
圖4 數(shù)據(jù)定義工具軟件架構(gòu)圖
圖4下層向上層提供調(diào)用方法,而下層方法的具體實(shí)現(xiàn)對(duì)上層來(lái)說(shuō)是透明的,使得各個(gè)層之間解耦,便于后續(xù)軟件的擴(kuò)展與維護(hù)。
視圖層提供了用戶(hù)可直接操作的前端界面,用戶(hù)可以通過(guò)界面查看已定義的數(shù)據(jù)對(duì)象信息,定義新的數(shù)據(jù)對(duì)象。
應(yīng)用層包括數(shù)據(jù)類(lèi)型管理、數(shù)據(jù)參數(shù)管理、簡(jiǎn)單數(shù)據(jù)格式管理、復(fù)雜數(shù)據(jù)格式管理、模板文件下載等功能,通過(guò)界面展示給用戶(hù),供用戶(hù)操作。
業(yè)務(wù)邏輯層提供了具體的數(shù)據(jù)處理流程,包括數(shù)據(jù)對(duì)象處理、模板文件解析和模板文件生成等功能。數(shù)據(jù)對(duì)象處理提供對(duì)某一具體數(shù)據(jù)對(duì)象的增、刪、改、查方法。例如,用戶(hù)通過(guò)前端界面定義了一個(gè)數(shù)據(jù)類(lèi)型信息,即PTC和PFC的值。數(shù)據(jù)對(duì)象處理功能接收到后,首先實(shí)例化一個(gè)數(shù)據(jù)類(lèi)型對(duì)象,為該對(duì)象的屬性ptc和pfc賦PTC和PFC的值,自動(dòng)生成數(shù)據(jù)類(lèi)型名和數(shù)據(jù)類(lèi)型ID,然后將這一條新記錄寫(xiě)入數(shù)據(jù)庫(kù)的數(shù)據(jù)類(lèi)型表中。模板文件解析是解析數(shù)據(jù)對(duì)象Schema的結(jié)構(gòu)。模板文件生成是將已定義的內(nèi)容填入Schema中,生成模板文件。
最下面一層是數(shù)據(jù)定義庫(kù),存儲(chǔ)了數(shù)據(jù)類(lèi)型、數(shù)據(jù)參數(shù)、數(shù)據(jù)格式的信息。
以某衛(wèi)星遙測(cè)大綱中的遙測(cè)包數(shù)據(jù)域結(jié)構(gòu)為例,使用數(shù)據(jù)定義工具進(jìn)行定義,表1中展示了遙測(cè)包數(shù)據(jù)域的部分內(nèi)容。表1中的數(shù)據(jù)組織可視為一個(gè)簡(jiǎn)單數(shù)據(jù)格式,包含5個(gè)參數(shù)。這5個(gè)參數(shù)需要使用兩種數(shù)據(jù)類(lèi)型描述,分別是8 bit的無(wú)符號(hào)整型和4 bit的無(wú)符號(hào)整型。數(shù)據(jù)定義工具生成的數(shù)據(jù)對(duì)象模板文件如圖5所示。圖5標(biāo)簽
表1 遙測(cè)包數(shù)據(jù)域部分內(nèi)容
根據(jù)圖2的數(shù)據(jù)對(duì)象Schema生成了圖5的數(shù)據(jù)對(duì)象模板后,如果要在某一應(yīng)用領(lǐng)域中使用的話(huà),可以將已定義好的數(shù)據(jù)對(duì)象模板嵌入該領(lǐng)域的標(biāo)準(zhǔn)Schema中。例如,將其轉(zhuǎn)換為XTCE形式,如圖6所示。
圖6 轉(zhuǎn)換后XTCE模板文件
圖6由上到下,第1個(gè)方框內(nèi)為數(shù)據(jù)類(lèi)型信息,第2個(gè)方框內(nèi)為數(shù)據(jù)參數(shù)信息,第3個(gè)方框內(nèi)為數(shù)據(jù)格式信息。
在XTCE Schema中,以
數(shù)據(jù)模板的轉(zhuǎn)換需要分析確定數(shù)據(jù)對(duì)象模板中的標(biāo)簽與XTCE Schema標(biāo)簽的對(duì)應(yīng)關(guān)系。在數(shù)據(jù)對(duì)象模板文件中,標(biāo)簽
PUS標(biāo)準(zhǔn)給出的數(shù)據(jù)定義方法和相應(yīng)的數(shù)據(jù)定義工具可以用于地面研制過(guò)程中的設(shè)計(jì)和測(cè)試工作。在設(shè)計(jì)工作中,使用數(shù)據(jù)定義工具允許更加靈活地設(shè)計(jì)新的數(shù)據(jù)類(lèi)型、參數(shù)和數(shù)據(jù)格式,方便對(duì)數(shù)據(jù)對(duì)象的增、刪、改、查,相比于傳統(tǒng)的接口控制文件方式可以提高工作效率。在測(cè)試工作中,可以將數(shù)據(jù)定義工具及其數(shù)據(jù)定義結(jié)果加入測(cè)試系統(tǒng)中,方便數(shù)據(jù)的測(cè)試對(duì)比分析,以及更改的追蹤。在跨任務(wù)使用時(shí),相同的數(shù)據(jù)類(lèi)型、格式不需要重復(fù)定義,在建立可靠的追蹤關(guān)系下,可以直接復(fù)用,從而節(jié)省了部分校對(duì)和測(cè)試驗(yàn)證工作。相應(yīng)的測(cè)試系統(tǒng)設(shè)施只需要按照某種標(biāo)準(zhǔn)進(jìn)行數(shù)據(jù)轉(zhuǎn)換,就可以實(shí)現(xiàn)系統(tǒng)設(shè)施的復(fù)用。
數(shù)據(jù)定義工具可以單獨(dú)使用,生成符合圖2數(shù)據(jù)對(duì)象Schema描述的數(shù)據(jù)對(duì)象模板文件。在將其應(yīng)用到某一特定領(lǐng)域時(shí),還需要結(jié)合該領(lǐng)域的標(biāo)準(zhǔn)Schema進(jìn)行轉(zhuǎn)換,完成領(lǐng)域的數(shù)據(jù)對(duì)象定義,例如前面提到的CCSDS的XTCE標(biāo)準(zhǔn)和SEDS標(biāo)準(zhǔn)描述的遙測(cè)、遙控和設(shè)備的數(shù)據(jù)信息。按照同樣的道理,只要某一應(yīng)用領(lǐng)域也有相應(yīng)的應(yīng)用數(shù)據(jù)模型的定義標(biāo)準(zhǔn),數(shù)據(jù)定義工具也可以用于應(yīng)用數(shù)據(jù)的定義,從而擴(kuò)大了數(shù)據(jù)定義工具的應(yīng)用領(lǐng)域范圍。
PUS標(biāo)準(zhǔn)已經(jīng)定義了12種數(shù)據(jù)類(lèi)型。在此基礎(chǔ)上,數(shù)據(jù)定義工具可以在這12種數(shù)據(jù)類(lèi)型中定義所需要的各種細(xì)化數(shù)據(jù)類(lèi)型,也可以將成熟的數(shù)據(jù)格式組合定義為新的數(shù)據(jù)類(lèi)型,實(shí)現(xiàn)越來(lái)越復(fù)雜的數(shù)據(jù)類(lèi)型和格式的增量式定義和開(kāi)發(fā),以應(yīng)對(duì)越來(lái)越復(fù)雜、多樣、靈活的數(shù)據(jù)描述需求。
本文在PUS標(biāo)準(zhǔn)提出的數(shù)據(jù)定義方法基礎(chǔ)上,分析了數(shù)據(jù)對(duì)象的構(gòu)成,包括數(shù)據(jù)對(duì)象的元數(shù)據(jù)部分(數(shù)據(jù)類(lèi)型)和數(shù)據(jù)部分(數(shù)據(jù)參數(shù)和數(shù)據(jù)格式),提出了通用的數(shù)據(jù)對(duì)象Schema,設(shè)計(jì)實(shí)現(xiàn)了相應(yīng)的生成數(shù)據(jù)對(duì)象模板的數(shù)據(jù)定義工具,支持對(duì)數(shù)據(jù)類(lèi)型、數(shù)據(jù)參數(shù)和數(shù)據(jù)格式的靈活定義、查找、刪除和修改。數(shù)據(jù)定義方法及其工具可以更快速、高效地定義不同的數(shù)據(jù)對(duì)象,支持?jǐn)?shù)據(jù)對(duì)象的重用。數(shù)據(jù)對(duì)象模板通過(guò)明確與所屬的領(lǐng)域數(shù)據(jù)標(biāo)準(zhǔn)Schema標(biāo)簽對(duì)應(yīng)關(guān)系,即可以繼承使用數(shù)據(jù)格式,而不用再另外開(kāi)發(fā)相應(yīng)的軟件。