• 
    

    
    

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

      運載火箭測發(fā)控軟件的中間件技術應用

      2014-04-29 09:49:10付霖劉俊陽
      網(wǎng)絡空間安全 2014年4期
      關鍵詞:火箭

      付霖 劉俊陽 龍

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

      【 關鍵詞 】 火箭;測發(fā)控軟件;中間件技術

      1 引言

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      1)調用對象請求代理ORB初始化函數(shù),獲取ORBroot引用;endprint

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

      3)利用命名服務引用,查找命名服務中的初始化對象指針,實現(xiàn)初始化的遠程對象的本地調用。

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

      3 中間件層提供的服務

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

      為盡量不改變原有程序架構,軟件針對新需求的改造過程,如圖3所示,采用代理的各種方式實現(xiàn)。利用編譯器編譯完成的客戶端stub和服務端skeleton,提供客戶端和服務器端方法的請求和響應。某遠程對象的平臺無關代碼經(jīng)過編譯器編譯為具體平臺的客戶端stub和服務端的skeleton??蛻魋tub是遠程對象的本地替身,接受調用請求,對程序員透明,可以讓遠程對象若本地對象一樣調用。服務方的skeleton主要功能是在服務端定位遠程對象之上的方法。在工程開發(fā)中采用的VS2010編譯器,將客戶端的stub和客戶端的服務請求流程性代碼進行聯(lián)合編譯成客戶端的應用。而在服務器端不僅需要skeleton和啟動服務使能服務流程性代碼,還需要將服務器端的服務實現(xiàn)代碼加入,進行聯(lián)合編譯成服務器端應用。通過此種方式開發(fā)的客戶端和服務器端應用可實現(xiàn)遠程對象的本地調用過程。

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

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

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

      對象實現(xiàn)是程序設計語言級別的實體,用來為一個或多個遠程對象的請求提供實現(xiàn)。存在于服務方進程空間中,客戶方發(fā)出的對一個Object的遠程調用將由對象請求傳遞到服務進程中。服務方經(jīng)過對象適配機制,查找維護的“對象ID-對象實現(xiàn)指針”映射關系表,找到對象實現(xiàn)的指針。通過對象實現(xiàn)的指針,利用skeleton找到對象之上的方法。

      4 結束語

      基于中間件的火箭測發(fā)控系統(tǒng)軟件再工程技術采用了異構網(wǎng)絡分布環(huán)境下的軟件系統(tǒng)重構技術分析和設計方法。在軟件產(chǎn)品化成果重用框架的基礎之上進行跨平臺層面的再加工,最終實現(xiàn)運載火箭地面測發(fā)控系統(tǒng)網(wǎng)絡再開發(fā)的軟件復用。在方便調試的同時,也提高了程序的可靠性?;谥虚g件的火箭測發(fā)控系統(tǒng)軟件是軟件產(chǎ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)絡計算中間件[J].軟件學報,2013年1期.

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

      [5] 張娟,黃開臣.綜合自動測試系統(tǒng)研究[J].測控技術,2011.30(10):30-35.

      作者簡介:

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

      劉俊陽(1970-),男,研究員,主要從事軟件設計與測試技術研究。

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

      猜你喜歡
      火箭
      怎樣給火箭“加油”?
      軍事文摘(2023年2期)2023-02-17 09:20:12
      火箭在出征路上的“吃穿住行”
      軍事文摘(2022年12期)2022-07-13 03:11:20
      火箭起飛也會“漂移”?
      軍事文摘(2020年24期)2020-02-06 05:56:32
      水火箭發(fā)射成功啦
      軍事文摘(2019年18期)2019-09-25 08:09:26
      飛起來的紙火箭
      火箭大搬家
      火箭
      飛出去吧,火箭!
      運載火箭
      火箭
      大宁县| 吉水县| 乐山市| 南涧| 高陵县| 隆化县| 陆丰市| 天津市| 平泉县| 泸水县| 乌兰县| 宜良县| 华坪县| 兴文县| 海南省| 西吉县| 阳春市| 宿迁市| 宝兴县| 台前县| 伊金霍洛旗| 黄山市| 阜城县| 贞丰县| 新乡市| 赫章县| 宝丰县| 胶州市| 彩票| 衡山县| 磐安县| 共和县| 福安市| 股票| 安阳市| 钟祥市| 资溪县| 伊宁县| 公主岭市| 永德县| 阿拉善盟|