隨著國防工業(yè)軟件開發(fā)人員從 Ada 過渡到 Java 并升級其硬件,他們必須以保護(hù)現(xiàn)有應(yīng)用軟件的方式進(jìn)行。支持實(shí)時和安全關(guān)鍵型 Java 的混合語言開發(fā)工具以及 Ada 和 C 等中堅工具提供了無縫升級路徑,可在保留遺留代碼的同時提高工作效率。
隨著國防工業(yè)軟件開發(fā)人員從 Ada 過渡到 Java 并升級其硬件,他們必須以保護(hù)現(xiàn)有應(yīng)用軟件的方式進(jìn)行。支持實(shí)時和安全關(guān)鍵型 Java 的混合語言開發(fā)工具以及 Ada 和 C 等中堅工具提供了無縫升級路徑,可在保留遺留代碼的同時提高工作效率。
國防工業(yè)越來越需要解決軍事硬件過時和缺乏對老化軟件程序的支持。國防部和國防承包商越來越多地尋求將當(dāng)前應(yīng)用程序遷移到新硬件上,并使用現(xiàn)代編程語言來增強(qiáng)系統(tǒng)功能,同時盡可能多地保留原始軟件投資。Java和多語言開發(fā)工具的增強(qiáng)版本支持傳統(tǒng)和現(xiàn)代軟件的合并,同時降低了系統(tǒng)增強(qiáng)的風(fēng)險和成本。
Ada相對于C/C++、Java的優(yōu)勢
軍事系統(tǒng)的壽命通常比其創(chuàng)建中使用的技術(shù)長幾十年,這使得增強(qiáng)甚至
保持系統(tǒng)的能力變得極其困難。對于用Ada語言編寫的軟件來說,這個問題尤其嚴(yán)重 -曾經(jīng)是軍事系統(tǒng)設(shè)計的強(qiáng)制性要求。在工具可用性和經(jīng)驗(yàn)豐富的程序員數(shù)量方面,對 Ada 開發(fā)的支持遠(yuǎn)遠(yuǎn)落后于 C、C++ 和 Java 等當(dāng)代編程語言。因此,許多國防承包商尋求將此類系統(tǒng)遷移到現(xiàn)代語言基礎(chǔ),以簡化維護(hù)和未來的增強(qiáng)。然而,與此同時,他們希望通過盡可能重用遺留軟件并利用基于標(biāo)準(zhǔn)的集成開發(fā)環(huán)境 (IDE) 而不是專有工具集來最大限度地降低遷移成本。
但是,當(dāng)代語言并不能充分反映Ada中內(nèi)置的功能和屬性,而這些功能和屬性對于軍事應(yīng)用至關(guān)重要。
Ada專為嵌入式系統(tǒng)而設(shè)計,包括實(shí)時操作以及直接訪問和操作系統(tǒng)底層硬件的能力。Ada 也是一種“安全”的語言,其架構(gòu)和工具集可以防止編程錯誤或在開發(fā)過程的早期檢測到它們。
當(dāng)代語言在這些屬性中的一個或多個方面存在不足。傳統(tǒng)的Java缺乏確定性和直接操作底層硬件的能力。C和C++都缺乏編程保障,使得這些語言本質(zhì)上不安全,并使軍事系統(tǒng)開發(fā)復(fù)雜化。內(nèi)存泄漏或?qū)Σ淮嬖趯ο蟮囊玫儒e誤可能導(dǎo)致現(xiàn)場致命的系統(tǒng)行為,但在 C 和 C++ 程序的開發(fā)過程中很容易逃脫檢測。大型航空航天和國防開發(fā)人員發(fā)現(xiàn),他們需要在 C 語言和 C++ 開發(fā)中添加 250 多條設(shè)計規(guī)則,以確??煽康能浖O(shè)計。
Java獲得真正的?和安全
然而,隨著專用Java配置文件的開發(fā),情況正在改善。實(shí)時Java(RTSJ)已經(jīng)問世好幾年了,它解決了實(shí)時嵌入式系統(tǒng)的確定性需求,硬件級接口可以通過C來處理。此外,Java本身還包括支持關(guān)鍵任務(wù)系統(tǒng)軟件開發(fā)的保護(hù)措施和語言功能(參見表1)。這些屬性使RTSJ與Ada相似,它能夠滿足軍事系統(tǒng)需求,同時利用Java工具和程序員的廣泛可用性。
圖1

Java社區(qū)中也有一種新的動力,將語言的適用性擴(kuò)展到安全關(guān)鍵系統(tǒng)。JSR-302專家組正在定義一個“安全關(guān)鍵”的Java配置文件(SCJava)。RTSJ 的這個子集消除了許多類庫以及垃圾回收和動態(tài)
類加載等功能,這些功能可能導(dǎo)致不可預(yù)測且可能不安全的代碼執(zhí)行;這也允許隨時創(chuàng)建以最高可靠性執(zhí)行的程序。JSR-302專家組的目標(biāo)是至少滿足DO-178B標(biāo)準(zhǔn)A級的要求,用于認(rèn)證航空電子系統(tǒng)軟件。安全關(guān)鍵型Java規(guī)范的草案版本預(yù)計將于2008年年中發(fā)布以供審查,SCJ將在年底前首次實(shí)現(xiàn)。
遺留遷移不可避免
遺留軍事系統(tǒng)問題的完整解決辦法必須包括的不僅僅是適當(dāng)?shù)恼Z言;必須包括一種適當(dāng)?shù)恼Z言。但是,它還必須支持重用仍然有效的代碼。用新語言重寫應(yīng)用程序可能會有風(fēng)險,因?yàn)樗偸菚敫?。例?/p>
,Ada使用對象,而C不使用,C++使用對象,但方式不同。適應(yīng)這種差異很容易將行為變化引入系統(tǒng)操作。重寫代碼也會觸發(fā)重新測試代碼的需求,并且測試任務(wù)和安全關(guān)鍵型系統(tǒng)可能既費(fèi)力又昂貴。
因此,完整遷移解決方案的一個關(guān)鍵要素是能夠?qū)?Ada、C 和 C++ 等
遺留語言以及 Java 混合到緊密耦合解決方案中的開發(fā)環(huán)境。這些工具,如DDC-I的基于Eclipse的OpenArbor框架,允許任何語言的每個程序元素能夠調(diào)用其他元素;它們還允許開發(fā)人員從同一會話同時編譯和調(diào)試它們。再加上用于未來開發(fā)的強(qiáng)大的語言(如SC Java),混合語言開發(fā)和調(diào)試工具使開發(fā)人員能夠重用遺留軟件并將其合并到當(dāng)代語言程序中,以合理的成本維護(hù)和增強(qiáng)軍事系統(tǒng)。
審核編輯:郭婷
-
JAVA
+關(guān)注
關(guān)注
20文章
3002瀏覽量
116554 -
C++
+關(guān)注
關(guān)注
22文章
2124瀏覽量
77201
發(fā)布評論請先 登錄
下一代汽車中現(xiàn)代計算架構(gòu)的性能組件和保護(hù)
愛立信與微軟將企業(yè)級5G管理功能引入Windows 11系統(tǒng)
VLA能解決自動駕駛中的哪些問題?
無人機(jī)巡檢系統(tǒng)在現(xiàn)代產(chǎn)業(yè)中的應(yīng)用價值
遠(yuǎn)程控制邊緣節(jié)點(diǎn)如何優(yōu)化軟件定義汽車架構(gòu)
為何硬件安全與軟件安全在現(xiàn)代系統(tǒng)中同等重要
無人機(jī)智能巡檢系統(tǒng)在現(xiàn)代工業(yè)運(yùn)維中的全面應(yīng)用
羅徹斯特電子:快速演進(jìn)市場中的傳統(tǒng)系統(tǒng)存續(xù)之道
多種類幾何尺寸集成智能儀器定制 一站式解決產(chǎn)線多維度測量需求
NVMe高速傳輸之?dāng)[脫XDMA設(shè)計25: NVMe 子系統(tǒng)模型設(shè)計
恩智浦+Rimac Technology基于S32E2的集中式汽車架構(gòu)解決方案 將20+ ECU整合到3個區(qū)域控制器
數(shù)據(jù)采集網(wǎng)關(guān)如何與現(xiàn)有工業(yè)系統(tǒng)整合?
醫(yī)療機(jī)器人在醫(yī)療保健領(lǐng)域的應(yīng)用
從RF到HDMI:傳統(tǒng)接口的現(xiàn)代優(yōu)化
將傳統(tǒng)軟件整合到現(xiàn)代系統(tǒng)設(shè)計中
評論