国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

運(yùn)載火箭測(cè)發(fā)控軟件的中間件技術(shù)應(yīng)用

2014-04-29 09:49付霖劉俊陽(yáng)
網(wǎng)絡(luò)空間安全 2014年4期
關(guān)鍵詞:火箭

付霖 劉俊陽(yáng) 龍

【 摘 要 】 由于不同型號(hào)硬件平臺(tái)和軟件平臺(tái)的多樣性,跨型號(hào)大規(guī)模融合應(yīng)用系統(tǒng)通常要求在擁有多種軟硬件平臺(tái)(異構(gòu)平臺(tái))的分布式環(huán)境下運(yùn)行。借助中間件(Middleware)技術(shù)改進(jìn)軟件重用形式,提高軟件重用程度,以實(shí)現(xiàn)支持分布式應(yīng)用有效開(kāi)發(fā)、部署、運(yùn)行和管理的目的。本文在對(duì)現(xiàn)有火箭測(cè)發(fā)控系統(tǒng)軟件的子系統(tǒng)功能聚類和程序架構(gòu)分析基礎(chǔ)上,開(kāi)發(fā)基于中間件模型的通用火箭測(cè)發(fā)控系統(tǒng)軟件。

【 關(guān)鍵詞 】 火箭;測(cè)發(fā)控軟件;中間件技術(shù)

1 引言

運(yùn)載火箭的地面測(cè)發(fā)控系統(tǒng)軟件由多個(gè)應(yīng)用軟件組成,如主控軟件、虛擬顯示軟件以及數(shù)據(jù)處理軟件等。它的主要功能是實(shí)現(xiàn)流程控制與數(shù)據(jù)判讀自動(dòng)化,控制后端PLC、地面測(cè)試計(jì)算機(jī)等完成測(cè)試發(fā)控流程及數(shù)據(jù)采集和判讀,并將測(cè)試數(shù)據(jù)及判讀結(jié)果送到數(shù)據(jù)處理計(jì)算機(jī)進(jìn)行數(shù)據(jù)顯示,轉(zhuǎn)發(fā)總體網(wǎng)、遙測(cè)、動(dòng)力等系統(tǒng)的控制命令與回令。

利用中間件技術(shù)主要在兩個(gè)方面改進(jìn)現(xiàn)有測(cè)發(fā)控系統(tǒng)軟件的開(kāi)發(fā)模式。

一是實(shí)現(xiàn)跨平臺(tái)代碼的移植和框架級(jí)的重用。利用處于中間層次的軟件屏蔽軟硬件平臺(tái)底層的差異性,利用中間件技術(shù)開(kāi)發(fā)的控制器可以實(shí)現(xiàn)不同硬件平臺(tái)不同操作系統(tǒng)之上進(jìn)程或者線程級(jí)別遠(yuǎn)程對(duì)象或過(guò)程(過(guò)程:不存在操作系統(tǒng)情況下,實(shí)現(xiàn)某一功能的代碼)的統(tǒng)一管理和調(diào)度。

二是異構(gòu)網(wǎng)絡(luò)的數(shù)據(jù)傳輸。當(dāng)前運(yùn)載火箭地面測(cè)發(fā)控軟件的通訊協(xié)議眾多,有基于以太網(wǎng)、CAN總線、1553B總線、422總線、485總線等,且隨著通信技術(shù)的發(fā)展,型號(hào)軟件間接口有進(jìn)一步增加的趨勢(shì)。當(dāng)前,測(cè)發(fā)控軟件中地面及彈上軟件接口實(shí)現(xiàn)方式均采用硬編碼,通訊雙方協(xié)調(diào)通訊協(xié)議,定義傳輸?shù)臄?shù)據(jù)格式,形成接口文件作為雙方設(shè)計(jì)的輸入文件。在型號(hào)研制初樣和試樣階段大量的研制資源投入在接口的調(diào)試,并且由于接口協(xié)議理解不一致易造成進(jìn)度延期。利用中間件技術(shù)對(duì)型號(hào)中常用的通信協(xié)議進(jìn)行封裝可以解決硬編碼的效率問(wèn)題和質(zhì)量問(wèn)題。

本文在中間件技術(shù)的研究基礎(chǔ)上,成功地將其應(yīng)用于某運(yùn)載型號(hào)測(cè)發(fā)控軟件再工程改造過(guò)程中,通過(guò)改造原有軟件系統(tǒng),減少了程序模型間的耦合度,提高了軟件構(gòu)件化程度,為大規(guī)模信息融合應(yīng)用系統(tǒng)的開(kāi)發(fā)奠定了基礎(chǔ)。

2 測(cè)發(fā)控軟件的中間件模型

軟件架構(gòu)描述的對(duì)象是直接構(gòu)成系統(tǒng)的抽象組件,各個(gè)組件之間的連接和組件之間的通訊關(guān)系。參考型號(hào)歸檔的任務(wù)書、需求以及詳細(xì)設(shè)計(jì)等文檔,得出軟件需實(shí)現(xiàn)對(duì)象的抽象功能劃分,及各個(gè)軟件運(yùn)行剖面的信息流流向。

以圖1為例,即PLC通信協(xié)議解析部分的系統(tǒng)架構(gòu)恢復(fù)流程,其旨在確定MODBUS協(xié)議解析部分的結(jié)構(gòu)部件、模塊和對(duì)象以及他們之間的關(guān)聯(lián)。在實(shí)際工作中采用軟件聚類(Software Clustering)和程序分片(Program Slicing)的方法,其他功能類的模型抽象過(guò)程與之類似。

在將PLC子系統(tǒng)劃分為模塊的聚類過(guò)程中,利用數(shù)據(jù)流在流經(jīng)程序模塊后其值的改變情況,將類似的模塊或者部件歸類。具體可劃分為ModBus數(shù)據(jù)容錯(cuò)處理模塊、ModBus數(shù)據(jù)預(yù)處理模塊、ModBus協(xié)議解析模塊等。

由于PLC子系統(tǒng)中的ModBus協(xié)議解析模塊較為重要,將原軟件中已聚類出的協(xié)議解析模塊針對(duì)ModBus消息功能碼的不同再次進(jìn)行聚類,拆分出讀點(diǎn)組件、寫點(diǎn)組件、讀寄存器組件、寫寄存器組件等。

為了獲取到系統(tǒng)的整體視圖,需確定組件之間的依賴關(guān)系。采用軟件分片的方法,以系統(tǒng)的調(diào)用圖(Call Graph)作為面向過(guò)程代碼的高層抽象,將程序切割為關(guān)注點(diǎn)集中于系統(tǒng)局部的分片,每個(gè)分片是功能上或結(jié)構(gòu)上的獨(dú)立模塊,以程序語(yǔ)句層為主,給出變量相關(guān)的程序部分,以調(diào)用圖通過(guò)模塊和模塊之間的調(diào)用關(guān)系來(lái)表達(dá)整個(gè)系統(tǒng)。

通過(guò)對(duì)當(dāng)前火箭測(cè)發(fā)控軟件的文檔和程序代碼恢復(fù)出的軟件架構(gòu)進(jìn)行歸類,將得出的組件按照中間件C/S三層架構(gòu)模式進(jìn)行劃分。具體將測(cè)發(fā)控軟件的測(cè)試流程劃分為三層C/S架構(gòu),主要由主流程部分、中間件層部分、重用控制器部分三部分。

主流程部分主要實(shí)現(xiàn)流程性的功能,響應(yīng)用戶及系統(tǒng)消息完成相應(yīng)測(cè)試任務(wù),為Client。當(dāng)Client運(yùn)行到某一流程步,則向Server重用控制器部分提出請(qǐng)求。Server部分的每個(gè)控制器對(duì)象負(fù)責(zé)一類設(shè)備的全部功能操作,如實(shí)現(xiàn)執(zhí)行與該設(shè)備相關(guān)的測(cè)試步序,顯示、存儲(chǔ)、判讀測(cè)試數(shù)據(jù),設(shè)備切換等功能。

中間件層可以分為兩個(gè)部分:一部分是網(wǎng)絡(luò)路由服務(wù),通過(guò)該網(wǎng)絡(luò)路由服務(wù)可以組織成復(fù)雜的通信網(wǎng)絡(luò)架構(gòu);另一部分是應(yīng)用服務(wù),應(yīng)用服務(wù)主要實(shí)現(xiàn)業(yè)務(wù)層的相關(guān)操作,即相關(guān)業(yè)務(wù)邏輯流程可以在應(yīng)用層進(jìn)行組合,完成不同要求的業(yè)務(wù)流。

主流程處于最頂層,通過(guò)響應(yīng)用戶及系統(tǒng)消息完成相應(yīng)功能。主要功能包括:測(cè)試流程的加載與執(zhí)行,管理測(cè)試設(shè)備連接,數(shù)據(jù)接收、顯示等。

確定測(cè)試流程分為測(cè)試類、測(cè)試項(xiàng)、測(cè)試分組、測(cè)試步序四個(gè)級(jí)別,測(cè)試步序?yàn)闇y(cè)試流程的基本單元。測(cè)試分組由多個(gè)測(cè)試步序組成,如分組“加電”是測(cè)試中可以從測(cè)試項(xiàng)目樹(shù)中勾選的最小單元,在測(cè)試出現(xiàn)問(wèn)題需重新測(cè)試時(shí),可根據(jù)當(dāng)前狀態(tài)跳過(guò)某些分組;測(cè)試項(xiàng)可以由多個(gè)測(cè)試分組組成,也可以直接由測(cè)試步序組成,包含業(yè)務(wù)上完整測(cè)試項(xiàng)目的全部操作;測(cè)試類是對(duì)測(cè)試項(xiàng)劃分,如“總檢查”、“分系統(tǒng)測(cè)試”等。

優(yōu)化之后的主流程部分測(cè)試流程為程序啟動(dòng)后首先進(jìn)行初始化操作,順序進(jìn)行相應(yīng)的界面初始化、連接初始化、控制器初始化等。流程框架部分測(cè)試流程如圖2所示,測(cè)試開(kāi)始時(shí),用戶需在測(cè)試項(xiàng)目樹(shù)中選擇測(cè)試項(xiàng)或分組,程序從本地?cái)?shù)據(jù)庫(kù)中獲取全部被選測(cè)試步序的參數(shù)信息,然后按順序存入執(zhí)行序列列表,并根據(jù)測(cè)試步序的類型調(diào)用控制器服務(wù)器端的函數(shù)完成與相關(guān)測(cè)試設(shè)備建立連接并對(duì)被測(cè)設(shè)備進(jìn)行初始化的工作,其中間件ModBus客戶端初始化功能實(shí)現(xiàn)如下:

1)調(diào)用對(duì)象請(qǐng)求代理ORB初始化函數(shù),獲取ORBroot引用;endprint

2)調(diào)用resolve_Naming函數(shù)獲取已在服務(wù)端運(yùn)行的命名服務(wù)的引用;

3)利用命名服務(wù)引用,查找命名服務(wù)中的初始化對(duì)象指針,實(shí)現(xiàn)初始化的遠(yuǎn)程對(duì)象的本地調(diào)用。

控制器模塊主要實(shí)現(xiàn)運(yùn)載火箭地面測(cè)發(fā)控系統(tǒng)軟件中主控計(jì)算機(jī)控制的各個(gè)設(shè)備所需完成的測(cè)發(fā)控功能。利用系統(tǒng)架構(gòu)恢復(fù)方法恢復(fù)出VXI數(shù)據(jù)采集、PLC通信協(xié)議解析、NPORT、三軸轉(zhuǎn)臺(tái)、速率轉(zhuǎn)臺(tái)等軟件功能模塊,將其描述為控制器。

3 中間件層提供的服務(wù)

分布計(jì)算中間件模塊為火箭測(cè)發(fā)控系統(tǒng)軟件的研制提供了一個(gè)開(kāi)發(fā)和運(yùn)行的軟件平臺(tái)。結(jié)合型號(hào)任務(wù)的需要,來(lái)滿足協(xié)議的封裝和安全可靠性的要求,提供了底層通信及分布式應(yīng)用開(kāi)發(fā)的支持服務(wù)。

為盡量不改變?cè)谐绦蚣軜?gòu),軟件針對(duì)新需求的改造過(guò)程,如圖3所示,采用代理的各種方式實(shí)現(xiàn)。利用編譯器編譯完成的客戶端stub和服務(wù)端skeleton,提供客戶端和服務(wù)器端方法的請(qǐng)求和響應(yīng)。某遠(yuǎn)程對(duì)象的平臺(tái)無(wú)關(guān)代碼經(jīng)過(guò)編譯器編譯為具體平臺(tái)的客戶端stub和服務(wù)端的skeleton??蛻魋tub是遠(yuǎn)程對(duì)象的本地替身,接受調(diào)用請(qǐng)求,對(duì)程序員透明,可以讓遠(yuǎn)程對(duì)象若本地對(duì)象一樣調(diào)用。服務(wù)方的skeleton主要功能是在服務(wù)端定位遠(yuǎn)程對(duì)象之上的方法。在工程開(kāi)發(fā)中采用的VS2010編譯器,將客戶端的stub和客戶端的服務(wù)請(qǐng)求流程性代碼進(jìn)行聯(lián)合編譯成客戶端的應(yīng)用。而在服務(wù)器端不僅需要skeleton和啟動(dòng)服務(wù)使能服務(wù)流程性代碼,還需要將服務(wù)器端的服務(wù)實(shí)現(xiàn)代碼加入,進(jìn)行聯(lián)合編譯成服務(wù)器端應(yīng)用。通過(guò)此種方式開(kāi)發(fā)的客戶端和服務(wù)器端應(yīng)用可實(shí)現(xiàn)遠(yuǎn)程對(duì)象的本地調(diào)用過(guò)程。

為實(shí)現(xiàn)遠(yuǎn)程對(duì)象本地調(diào)用的目的,需要對(duì)底層通信進(jìn)行抽象封裝以解決分布式和異構(gòu)性的問(wèn)題。利用此服務(wù),型號(hào)軟件開(kāi)發(fā)人員不需要再采用重復(fù)的易出錯(cuò)的socket編程,只需要調(diào)用簡(jiǎn)單易用的軟件接口,將源端地址和目的端地址作為參數(shù)傳遞即可實(shí)現(xiàn)設(shè)備之間的數(shù)據(jù)傳輸。

具體工作原理,如圖5所示,ModBus控制器的對(duì)象引用是分布環(huán)境下ModBus控制器對(duì)象的抽象,用來(lái)唯一標(biāo)識(shí)ModBus控制器對(duì)象。對(duì)象引用包含定位對(duì)象所在機(jī)器的信息(IP地址),在該機(jī)器上定位對(duì)象所在進(jìn)程信息(端口號(hào)),在該進(jìn)程中定位目標(biāo)對(duì)象的信息(Object Key)。對(duì)象引用內(nèi)部結(jié)構(gòu)對(duì)開(kāi)發(fā)人員透明,開(kāi)發(fā)人員拿到一個(gè)對(duì)象引用后調(diào)用ptr_to_object方法,即可實(shí)例化出遠(yuǎn)程對(duì)象的本地客戶端stub。

本地調(diào)用是由編譯器透明地將控制流(即調(diào)用對(duì)象方法的指令)直接翻譯為機(jī)器代碼。遠(yuǎn)程調(diào)用由于需要通過(guò)網(wǎng)絡(luò),而網(wǎng)絡(luò)只能傳遞數(shù)據(jù)流(即消息),因此,調(diào)用過(guò)程是一個(gè)“控制流→數(shù)據(jù)流→控制流”的過(guò)程?!翱刂屏鳌鷶?shù)據(jù)流”過(guò)程,將對(duì)象方法調(diào)用的指令編碼成網(wǎng)絡(luò)消息并發(fā)送出去?!皵?shù)據(jù)流→控制流”,接收網(wǎng)絡(luò)消息并解碼還原成對(duì)象方法調(diào)用的指令。GIOP(Gerneral Inter-ORB Protocol)對(duì)當(dāng)前運(yùn)載火箭地面測(cè)發(fā)控軟件的通訊協(xié)議進(jìn)行了封裝,定義了對(duì)象請(qǐng)求發(fā)送和接收的各種消息的格式及其含義。

對(duì)象實(shí)現(xiàn)是程序設(shè)計(jì)語(yǔ)言級(jí)別的實(shí)體,用來(lái)為一個(gè)或多個(gè)遠(yuǎn)程對(duì)象的請(qǐng)求提供實(shí)現(xiàn)。存在于服務(wù)方進(jìn)程空間中,客戶方發(fā)出的對(duì)一個(gè)Object的遠(yuǎn)程調(diào)用將由對(duì)象請(qǐng)求傳遞到服務(wù)進(jìn)程中。服務(wù)方經(jīng)過(guò)對(duì)象適配機(jī)制,查找維護(hù)的“對(duì)象ID-對(duì)象實(shí)現(xiàn)指針”映射關(guān)系表,找到對(duì)象實(shí)現(xiàn)的指針。通過(guò)對(duì)象實(shí)現(xiàn)的指針,利用skeleton找到對(duì)象之上的方法。

4 結(jié)束語(yǔ)

基于中間件的火箭測(cè)發(fā)控系統(tǒng)軟件再工程技術(shù)采用了異構(gòu)網(wǎng)絡(luò)分布環(huán)境下的軟件系統(tǒng)重構(gòu)技術(shù)分析和設(shè)計(jì)方法。在軟件產(chǎn)品化成果重用框架的基礎(chǔ)之上進(jìn)行跨平臺(tái)層面的再加工,最終實(shí)現(xiàn)運(yùn)載火箭地面測(cè)發(fā)控系統(tǒng)網(wǎng)絡(luò)再開(kāi)發(fā)的軟件復(fù)用。在方便調(diào)試的同時(shí),也提高了程序的可靠性?;谥虚g件的火箭測(cè)發(fā)控系統(tǒng)軟件是軟件產(chǎn)品化的進(jìn)一步延伸,并最大程度上考慮到運(yùn)載火箭測(cè)試工程的特點(diǎn),運(yùn)行過(guò)程可靠,結(jié)果處理正常,為下階段型號(hào)軟件研制和維護(hù)工作打下了基礎(chǔ)。

參考文獻(xiàn)

[1] Weiser,M.1984."Program Slicing" IEEE Transaction on Software Engineer 10,4(July):352-357.

[2] Object Management Group, CORBA Component Model Joint Revised Submission, 1999..

[3] 吳泉源.網(wǎng)絡(luò)計(jì)算中間件[J].軟件學(xué)報(bào),2013年1期.

[4] 王厚軍.關(guān)于軍用測(cè)試系統(tǒng)標(biāo)準(zhǔn)化和技術(shù)體系問(wèn)題的研究與探討[C].2007年國(guó)防科技工業(yè)試驗(yàn)與測(cè)試技術(shù)高層論壇,2007:50-57.

[5] 張娟,黃開(kāi)臣.綜合自動(dòng)測(cè)試系統(tǒng)研究[J].測(cè)控技術(shù),2011.30(10):30-35.

作者簡(jiǎn)介:

付霖(1988-),男,山東人,碩士研究生,主要從事分布式計(jì)算及軟件復(fù)用方面研究。

劉俊陽(yáng)(1970-),男,研究員,主要從事軟件設(shè)計(jì)與測(cè)試技術(shù)研究。

肖龍(1983-),男,工程師,主要從事支撐環(huán)境和軟件測(cè)試。endprint

猜你喜歡
火箭
茶包“火箭”
紙火箭
太空看火箭等
火箭發(fā)射
火箭比賽
穿在身上的火箭工藝
太陽(yáng)火箭
透視奇妙的火箭
超酷的火箭