• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      字節(jié)流對(duì)象模型的設(shè)計(jì)和應(yīng)用

      2015-02-22 05:48:49施斌薛倡新王華鮑俊雷段慧芬
      火力與指揮控制 2015年1期
      關(guān)鍵詞:數(shù)據(jù)格式字節(jié)定義

      施斌,薛倡新,王華,鮑俊雷,段慧芬

      (中國(guó)衛(wèi)星海上測(cè)控部,江蘇江陰214431)

      字節(jié)流對(duì)象模型的設(shè)計(jì)和應(yīng)用

      施斌,薛倡新,王華,鮑俊雷,段慧芬

      (中國(guó)衛(wèi)星海上測(cè)控部,江蘇江陰214431)

      航天技術(shù)的快速發(fā)展對(duì)任務(wù)數(shù)據(jù)處理提出了更高的要求。針對(duì)任務(wù)數(shù)據(jù)格式具有層次嵌套、變化頻繁的特點(diǎn),結(jié)合Composite模式設(shè)計(jì)了字節(jié)流對(duì)象模型(BOM)。BOM模型具有表述能力強(qiáng)、可靈活擴(kuò)展的優(yōu)點(diǎn)。該模型在航天任務(wù)數(shù)據(jù)處理軟件中得到了應(yīng)用,使得軟件具備較好的可擴(kuò)展能力。

      字節(jié)流對(duì)象模型(BOM),設(shè)計(jì)模式,遞歸,擴(kuò)展標(biāo)記語(yǔ)言

      0 引言

      近年來(lái),航天技術(shù)發(fā)展迅速,任務(wù)型號(hào)多、技術(shù)難度高、信息量大及數(shù)據(jù)格式結(jié)構(gòu)復(fù)雜成為趨勢(shì),現(xiàn)有任務(wù)軟件的數(shù)據(jù)模型是基于“幀-字段”組織的,幀格式按照各字段順序排列的形式進(jìn)行描述,每個(gè)字段均對(duì)應(yīng)描述基本字段參數(shù)格式。這種結(jié)構(gòu),存在以下問(wèn)題:

      (1)幀格式中各字段之間的關(guān)系是順序固定的,對(duì)于分支選擇等類(lèi)型的復(fù)雜層次嵌套數(shù)據(jù)格式無(wú)法描述;

      (2)鏈?zhǔn)綌?shù)據(jù)模型的靈活性不好,模塊化程度不高,與程序框架的耦合性高,格式變化影響域大,降低了軟件的可靠性;

      (3)數(shù)據(jù)模型的通用性、擴(kuò)展性不好,數(shù)據(jù)格式變化導(dǎo)致頻繁的軟件代碼更動(dòng)。

      因此,現(xiàn)階段基于順序、鏈?zhǔn)降哪P徒Y(jié)構(gòu)[1-2]不再適應(yīng)現(xiàn)階段高密度、高難度及數(shù)據(jù)格式變化大的任務(wù)需求,急需設(shè)計(jì)一種表述能力更強(qiáng)、通用性好及具有復(fù)雜層次嵌套特點(diǎn)的數(shù)據(jù)模型,而任務(wù)數(shù)據(jù)格式的描述問(wèn)題是任務(wù)數(shù)據(jù)處理中必須解決的關(guān)鍵問(wèn)題。

      1 BOM模型

      分析任務(wù)數(shù)據(jù)格式有以下特點(diǎn):在一個(gè)數(shù)據(jù)格式中,包含若干個(gè)字段;每一個(gè)字段的格式可能是基本單元,也可能是由若干個(gè)更小的片段組成,這樣的劃分可以不斷地遞歸嵌套下去,從而形成非常復(fù)雜的數(shù)據(jù)格式。這種特點(diǎn)符合樹(shù)形結(jié)構(gòu)的特征,而Composite模式[3-4]非常適用于描述樹(shù)形層次結(jié)構(gòu)。因此,結(jié)合Composite模式設(shè)計(jì)了一種字節(jié)流對(duì)象模型(Bytes Object Model,簡(jiǎn)稱(chēng)BOM),具有表述能力強(qiáng)、通用性好、可靈活擴(kuò)展的優(yōu)點(diǎn),解決了復(fù)雜數(shù)據(jù)格式的描述問(wèn)題,并在航天任務(wù)數(shù)據(jù)處理軟件中得到了應(yīng)用。

      1.1 BOM模型的定義

      BOM模型描述由若干字節(jié)組成的字節(jié)序列,一個(gè)BOM對(duì)象描述了一個(gè)字節(jié)序列數(shù)據(jù)對(duì)應(yīng)的格式定義,包括字節(jié)長(zhǎng)度、數(shù)據(jù)類(lèi)型、處理方法等信息。

      1.2 BOM的靜態(tài)結(jié)構(gòu)

      BOM模型的靜態(tài)類(lèi)型結(jié)構(gòu)是樹(shù)形結(jié)構(gòu),符合層次定義、逐層派生的特點(diǎn)。最頂層的是BOM抽象類(lèi),作為全體BOM類(lèi)的基類(lèi),其他BOM類(lèi)均直接或間接從BOM基類(lèi)派生。BOM類(lèi)分為兩大類(lèi):SectionBOM和CompositeBOM。BOM模型類(lèi)層次結(jié)構(gòu)如圖1所示。

      圖1 BOM模型類(lèi)圖

      SectionBOM類(lèi)型的BOM是字段BOM,描述了一個(gè)基本字節(jié)序列的特征,可直接完成處理,如Int32BOM、TimeBOM等;CompositeBOM類(lèi)型的BOM是組合BOM,描述了一個(gè)復(fù)雜字節(jié)序列的特征,無(wú)法直接處理,需進(jìn)一步分解成多個(gè)子BOM(Section-BOM或者CompositeBOM),如SequentialBOM、SwitchBOM等。所有BOM類(lèi)共同構(gòu)成了BOM類(lèi)型庫(kù),每個(gè)BOM類(lèi)在BOM庫(kù)中都有其對(duì)應(yīng)的位置。

      1.3 BOM的動(dòng)態(tài)結(jié)構(gòu)

      運(yùn)行時(shí)動(dòng)態(tài)構(gòu)建的BOM對(duì)象也是樹(shù)形結(jié)構(gòu)的,頂層是一個(gè)描述整體字節(jié)序列的Composite-BOM,其下包括了多個(gè)描述片段字節(jié)序列的子BOM對(duì)象。如果子BOM對(duì)象是SectionBOM,則不可再分,屬于“樹(shù)葉”節(jié)點(diǎn);如果子BOM對(duì)象是CompositeBOM,則進(jìn)一步遞歸分解,屬于“樹(shù)枝”節(jié)點(diǎn),最終分解到SectionBOM為止,如圖2所示。

      圖2 BOM對(duì)象結(jié)構(gòu)圖

      2 BOM模型在航天任務(wù)數(shù)據(jù)處理軟件中的應(yīng)用

      在航天任務(wù)數(shù)據(jù)處理軟件的實(shí)現(xiàn)過(guò)程中,關(guān)鍵問(wèn)題是任務(wù)數(shù)據(jù)格式的描述。除了常規(guī)的順序格式,還存在分支選擇結(jié)構(gòu)、Bit組合結(jié)構(gòu)等復(fù)合數(shù)據(jù)格式,應(yīng)用BOM模型后,數(shù)據(jù)格式完全由通用的BOM類(lèi)進(jìn)行層次化組織,當(dāng)需要描述新的層次嵌套格式時(shí),就由CompositeBOM下派生組合BOM描述格式處理邏輯,直至分解到SectionBOM下派生的基本字段BOM,以后類(lèi)似的處理邏輯可直接繼承使用這些BOM;可以最大限度地利用各種BOM進(jìn)行組合描述,擴(kuò)展很靈活,表述能力強(qiáng)大。

      本節(jié)以分支選擇結(jié)構(gòu)為例,說(shuō)明BOM模型在航天任務(wù)數(shù)據(jù)處理軟件中是如何進(jìn)行應(yīng)用的。

      2.1 數(shù)據(jù)的格式定義

      假定需要描述設(shè)備工作狀態(tài)這類(lèi)數(shù)據(jù),其數(shù)據(jù)域的格式定義見(jiàn)表1所示。

      表1中,T是DateTime類(lèi)型值,L、B、K是Int32

      表1 設(shè)備工作狀態(tài)的格式定義

      類(lèi)型值,Vp是Byte類(lèi)型值,其后是一個(gè)空白字段(無(wú)實(shí)際意義,僅用于占位),這些都是基本類(lèi)型的數(shù)據(jù)。W不是基本類(lèi)型的數(shù)據(jù),其值根據(jù)Vp變化確定:當(dāng)Vp=0x0時(shí),W表示設(shè)備狀態(tài)原碼,按十六進(jìn)制原碼值解析;當(dāng)Vp=0x3時(shí),W表示設(shè)備狀態(tài)模式計(jì)數(shù),按SByte類(lèi)型值解析;當(dāng)Vp=0x1A時(shí),W表示設(shè)備狀態(tài)含義,需要進(jìn)一步按bit解析:b7~b3、b0無(wú)效,b2、b1按位定義狀態(tài)信息。

      2.2 數(shù)據(jù)的BOM樹(shù)結(jié)構(gòu)

      根據(jù)2.1節(jié)的定義,可以構(gòu)建出該類(lèi)數(shù)據(jù)的BOM樹(shù)結(jié)構(gòu),如下頁(yè)圖3所示。

      頂層的SequentialBOM表示設(shè)備工作狀態(tài)的整個(gè)數(shù)據(jù)域,第二層的TimeBOM、3個(gè)Int32BOM和ByteBOM分別對(duì)應(yīng)T、L、B、K、Vp,PadBOM對(duì)應(yīng)空白字段,SwitchBOM對(duì)應(yīng)W,第三層及以下具體描述W的格式。W的格式根據(jù)Vp值條件判斷后確定,因此,SwitchBOM其下的3個(gè)CaseBOM分別對(duì)應(yīng)三種條件:第1個(gè)CaseBOM表示Vp=0x0的情況,具體格式由HexBOM描述,對(duì)應(yīng)設(shè)備狀態(tài)原碼;第2個(gè)CaseBOM表示Vp=0x3的情況,具體格式由SByteBOM描述,對(duì)應(yīng)設(shè)備狀態(tài)模式計(jì)數(shù);第3個(gè)CaseBOM表示Vp=0x1A的情況,具體格式由Bit-BoxBOM描述,對(duì)應(yīng)設(shè)備狀態(tài)含義,具體格式進(jìn)一步按bit解析。最下層的2個(gè)BitPadBOM和2個(gè)Bit-StateBOM對(duì)應(yīng)描述了設(shè)備狀態(tài)含義的具體位定義。

      圖3 設(shè)備工作狀態(tài)的BOM樹(shù)結(jié)構(gòu)圖

      在設(shè)備工作狀態(tài)的BOM樹(shù)中,SequentialBOM、SwitchBOM、CaseBOM和BitBoxBOM屬于CompositeBOM,其他BOM均屬于SectionBOM。

      當(dāng)設(shè)備工作狀態(tài)的數(shù)據(jù)格式發(fā)生變化時(shí),有兩種情況:一種情況是參數(shù)的數(shù)據(jù)類(lèi)型已有對(duì)應(yīng)的BOM類(lèi),例如航向K參數(shù)需按4字節(jié)UInt32類(lèi)型處理,則只需將該參數(shù)對(duì)應(yīng)BOM設(shè)置為UInt32BOM即可;另一種情況是現(xiàn)有的BOM類(lèi)無(wú)法描述參數(shù)的數(shù)據(jù)類(lèi)型,例如需增加雷達(dá)標(biāo)識(shí)TS參數(shù),需按照3字節(jié)UInt24類(lèi)型處理,由于現(xiàn)有BOM無(wú)法描述該類(lèi)型,則先由SectionBOM派生出新的UInt24BOM類(lèi)描述該類(lèi)型,然后該參數(shù)就可以使用UInt24BOM描述。由上可見(jiàn),BOM模型的表述能力很強(qiáng),擴(kuò)展也很靈活。

      2.3 數(shù)據(jù)的動(dòng)態(tài)處理流程

      在運(yùn)行時(shí),關(guān)鍵問(wèn)題是如何控制子BOM的執(zhí)行順序,即BOM的流控制問(wèn)題。各級(jí)CompositeBOM類(lèi)型的BOM均定義了流控制方法,實(shí)現(xiàn)對(duì)所屬子BOM執(zhí)行順序的控制算法。

      如圖4所示,說(shuō)明一幀設(shè)備工作狀態(tài)數(shù)據(jù)的處理流程。首先,提取其數(shù)據(jù)域部分字節(jié)流。然后,由頂層SequentialBOM負(fù)責(zé)處理該字節(jié)流,由于該BOM定義為順序執(zhí)行所屬子BOM,因此,具體處理分別順序委托給第二層的子BOM完成。其中,W參數(shù)對(duì)應(yīng)的SwitchBOM定義為分支選擇流控制方式,根據(jù)設(shè)置的條件值屬性委托給第三層中符合條件的某個(gè)CaseBOM處理,CaseBOM直接委托給第四層子BOM處理,以下的處理過(guò)程均遞歸進(jìn)行。最終,處理過(guò)程終結(jié)于各“樹(shù)葉”BOM。

      圖4 設(shè)備工作狀態(tài)的處理流程圖

      2.4 數(shù)據(jù)的BOM樹(shù)結(jié)構(gòu)的持久化

      另一個(gè)重要問(wèn)題是如何保存內(nèi)存中構(gòu)建的BOM樹(shù)結(jié)構(gòu)信息,即BOM樹(shù)結(jié)構(gòu)的持久化問(wèn)題。BOM對(duì)象的內(nèi)存結(jié)構(gòu)是一種具有層次性、不對(duì)稱(chēng)特點(diǎn)的結(jié)構(gòu),一般文件格式無(wú)法有效描述其結(jié)構(gòu)。XML作為一種應(yīng)用范圍廣泛的元語(yǔ)言,具有定義嚴(yán)格、結(jié)構(gòu)清晰、靈活易讀的特點(diǎn),且非常適合表示半結(jié)構(gòu)化的樹(shù)形結(jié)構(gòu)。因此,采用XML文件格式,將數(shù)據(jù)的BOM樹(shù)中各級(jí)BOM類(lèi)型和屬性(包括名稱(chēng)、字節(jié)長(zhǎng)度、字段方法等)信息持久化到XML文件中。下面是一個(gè)XML格式文件的內(nèi)容片段,該文件中保存了設(shè)備工作狀態(tài)的BOM樹(shù)結(jié)構(gòu)信息:

      通過(guò)定義各級(jí)BOM類(lèi)的序列化和反序列化方法,利用反射技術(shù)動(dòng)態(tài)獲取和設(shè)置BOM對(duì)象的類(lèi)型和屬性信息,這樣就可以一致、直觀地在BOM對(duì)象的內(nèi)存結(jié)構(gòu)與XML格式信息之間進(jìn)行相互映射轉(zhuǎn)換,從而達(dá)到一次配置、多次重用的目的。

      3 結(jié)論

      針對(duì)任務(wù)數(shù)據(jù)格式具有層次嵌套、變化頻繁的特點(diǎn),本文設(shè)計(jì)了一種字節(jié)流對(duì)象模型(BOM),具有表述能力強(qiáng)、通用性好、可靈活擴(kuò)展等優(yōu)點(diǎn)。該模型在航天任務(wù)數(shù)據(jù)處理軟件中得到了應(yīng)用。通過(guò)應(yīng)用BOM模型,有效描述了各類(lèi)任務(wù)數(shù)據(jù)格式,解決了復(fù)雜數(shù)據(jù)格式的描述問(wèn)題,使得軟件具備良好的通用性及可擴(kuò)展能力。

      [1]彭四偉,朱群雄.形式化描述驅(qū)動(dòng)的數(shù)據(jù)幀解析與處理[J].計(jì)算機(jī)工程與應(yīng)用,2006,42(5):179-181.

      [2]董立,趙恒永.基于編譯技術(shù)的協(xié)議解析方法[J].計(jì)算機(jī)工程,2007,33(21):66-68.

      [3]Gamma E,Helm R,Johnson R,et al.設(shè)計(jì)模式:可復(fù)用面向?qū)ο筌浖幕A(chǔ)(雙語(yǔ)版)[M].北京:機(jī)械工業(yè)出版社,2007:497-504.

      [4]閻宏.Java與模式[M].北京:電子工業(yè)出版社,2002:409-419.

      Design and Application of Bytes Object Model

      SHI Bin,XUE Chang-xin,WANG Hua,BAO Jun-lei,DUAN Hui-fen
      (China Satellite Maritime TT&C Department,Jiangyin 214431,China)

      The rapid development of space technology makes higher demands on mission data processing.Given that the formats of mission data are hierarchical and nested structures,and change frequently,Bytes Object Model(BOM)is designed based on Composite pattern.BOM model has the advantage of strong expressiveness and flexible extensibility.That this model is utilized in Space Mission Data Process Software makes the software have excellent ability of extension.

      Bytes Object Model(BOM),design patterns,recursion,XML

      TP391

      A

      1002-0640(2015)01-0163-04

      2013-10-15

      :2014-01-07

      施斌(1982-),男,江蘇江陰人,碩士,工程師。研究方向:計(jì)算機(jī)應(yīng)用、計(jì)算機(jī)圖形學(xué)等。

      猜你喜歡
      數(shù)據(jù)格式字節(jié)定義
      No.8 字節(jié)跳動(dòng)將推出獨(dú)立出口電商APP
      No.10 “字節(jié)跳動(dòng)手機(jī)”要來(lái)了?
      在智能交通系統(tǒng)中PLC數(shù)據(jù)格式轉(zhuǎn)換方法的研究
      簡(jiǎn)談MC7字節(jié)碼
      成功的定義
      山東青年(2016年1期)2016-02-28 14:25:25
      論子函數(shù)在C語(yǔ)言數(shù)據(jù)格式輸出中的應(yīng)用
      DWG與SHP數(shù)據(jù)格式互轉(zhuǎn)換方法研究——以龍巖規(guī)劃測(cè)繪數(shù)據(jù)為例
      修辭學(xué)的重大定義
      基于ArcGIS的規(guī)劃數(shù)據(jù)格式轉(zhuǎn)換研究
      山的定義
      临沭县| 黑龙江省| 宁化县| 泊头市| 乃东县| 扶风县| 北票市| 宁陕县| 商城县| 全南县| 凌源市| 绥阳县| 盖州市| 红安县| 青龙| 通海县| 赞皇县| 日照市| 咸阳市| 寿宁县| 宁明县| 拉孜县| 平谷区| 万全县| 和龙市| 渑池县| 瓮安县| 靖州| 泾川县| 金堂县| 廉江市| 神农架林区| 温泉县| 略阳县| 罗定市| 栾川县| 新余市| 新民市| 连南| 景东| 义马市|