COTS 軟件有助于降低大型、長(zhǎng)壽命系統(tǒng)的開發(fā)成本,但 COTS 并不意味著專有。自由許可的開源軟件(FLOSS)帶來(lái)了COTS的好處,但沒有專有產(chǎn)品典型的限制和供應(yīng)商捆綁。
國(guó)際空間站(ISS)是商用現(xiàn)貨或COTS概念的對(duì)立面。這些令人驚嘆的物品中只有一種,你肯定不會(huì)在貨架上找到它。然而,運(yùn)行該站的一些關(guān)鍵軟件是使用COTS工具創(chuàng)建的,例如,用于構(gòu)建運(yùn)行加拿大太空臂的軟件的GNAT Pro Ada編譯器。
為什么選擇COTS軟件來(lái)實(shí)現(xiàn)此目的?為大型復(fù)雜系統(tǒng)采購(gòu)或創(chuàng)建軟件是一個(gè)困難且昂貴的過(guò)程。通過(guò)增加 COTS 的使用來(lái)滿足這一需求是對(duì)這一困難的自然反應(yīng),乍一看似乎提供了許多優(yōu)勢(shì):降低成本、規(guī)模經(jīng)濟(jì)、廣泛使用導(dǎo)致更高的可靠性,以及熟悉系統(tǒng)的人員的可用性。這些考慮尤其適用于像空間站這樣的一次性項(xiàng)目,在這些項(xiàng)目中,構(gòu)建專用工具的成本很高(風(fēng)險(xiǎn)更大)。
然而,在實(shí)踐中,COTS的承諾并不容易實(shí)現(xiàn)。一個(gè)主要問(wèn)題是供應(yīng)商的配合:如果您從供應(yīng)商處獲得專有的 COTS 系統(tǒng),您將與該供應(yīng)商綁定以支持、修改(在常見情況下,COTS 軟件幾乎但不完全是您想要的,必須修改),以及更新和改進(jìn)的可用性。還有一個(gè)問(wèn)題是,一般的COTS市場(chǎng)在頻繁更新和舊版本的快速過(guò)時(shí)中蓬勃發(fā)展。XP/Vista的例子在這里很有啟發(fā)性,微軟早在用戶準(zhǔn)備遷移到Vista之前就放棄了XP。即使微軟被說(shuō)服(看起來(lái)很可能)繼續(xù)支持XP十年,即使對(duì)于某些項(xiàng)目來(lái)說(shuō),這也遠(yuǎn)遠(yuǎn)不夠。
波音 777 和波音 787等現(xiàn)代飛機(jī)的使用壽命非常長(zhǎng),以幾十年為單位。這些飛機(jī)具有非常復(fù)雜的軟件系統(tǒng),需要最大的可靠性。在許多情況下,這些飛機(jī)上的軟件不僅使用 COTS 工具構(gòu)建,而且機(jī)上還有實(shí)際的 COTS 軟件組件——不僅軟件,而且認(rèn)證材料都可以“現(xiàn)成”獲得。鑒于這些飛機(jī)的預(yù)期壽命很長(zhǎng),對(duì)COTS工具和組件持續(xù)可用性的擔(dān)憂成為一個(gè)關(guān)鍵問(wèn)題。
軟件與硬件(在 COTS 領(lǐng)域內(nèi)外)的區(qū)別之一是,從概念上講,修改軟件很容易。用新版本完全替換飛機(jī)的航空電子軟件可能不超過(guò)幾分鐘(當(dāng)然,不包括準(zhǔn)備和認(rèn)證新版本的時(shí)間和精力)。在一架著名的軍用飛機(jī)的情況下,我被告知每個(gè)尾號(hào)對(duì)應(yīng)于一組略有不同的軟件組件。因此,一次構(gòu)建并忘記的概念當(dāng)然不適用于航空電子軟件。
這種更改軟件的能力意味著軟件系統(tǒng)的更新和改進(jìn)可以以對(duì)相應(yīng)硬件系統(tǒng)不切實(shí)際的方式實(shí)現(xiàn)。回到前面提到的加拿大太空臂,完全更換硬件將是不可想象的;但是,確實(shí)至少對(duì)軟件進(jìn)行了一次完全更新。但考慮到執(zhí)行此類更新的可能性,軟件工具和組件的長(zhǎng)期可用性變得至關(guān)重要。
在軟件構(gòu)建中選擇 COTS 的其他考慮因素包括可靠性和保修問(wèn)題。事實(shí)上,給定的軟件組件可以在數(shù)百萬(wàn)臺(tái)可靠性不重要的PC上使用(或者至少不被制造商視為重要),這意味著它在高可靠性環(huán)境中的使用不受制造商的歡迎:事實(shí)上,法律免責(zé)聲明積極勸阻。在這種情況下,試圖獲得此類產(chǎn)品的全面保修可能是完全不可行的。
另一方面,廣泛使用可能是可靠性的重要貢獻(xiàn)者,因此這種廣泛使用也可以朝著積極的方向發(fā)展。軟件開發(fā)人員不能僅通過(guò)測(cè)試來(lái)保證正確性和可靠性,但是,隨著時(shí)間的推移,使用非常廣泛的產(chǎn)品往往會(huì)變得更加可靠,因?yàn)閷?shí)際使用會(huì)消除問(wèn)題。在某些情況下,必須依靠此方法來(lái)實(shí)現(xiàn)可靠性。例如,考慮地面空中交通管制系統(tǒng)。通常,這些必須建立在通用操作系統(tǒng)(如IBM的AIX)之上。使用類似于DO-178的標(biāo)準(zhǔn)對(duì)此類系統(tǒng)進(jìn)行認(rèn)證是不可能的。它們太復(fù)雜了。然而,如果這種制度已經(jīng)使用了幾十年,就像本例一樣,這種經(jīng)驗(yàn)就會(huì)給這個(gè)制度注入至關(guān)重要的信心。
因此,COTS 軟件可以提供許多優(yōu)勢(shì)。但是,無(wú)法進(jìn)行自定義修改和保證長(zhǎng)期支持的基本困難通常會(huì)阻礙這些 COTS 承諾。除非這些問(wèn)題能夠得到解決,否則軍工將退回到采購(gòu)昂貴定制技術(shù)的模式。
使用牙線COTS可產(chǎn)生世界上最好的結(jié)果
對(duì)于獲取和使用 COTS 軟件產(chǎn)品的這些一般問(wèn)題,可以在使用商業(yè)自由許可開源軟件 (FLOSS) 產(chǎn)品中找到一個(gè)有趣的回應(yīng)。使用FLOSS COTS可以潛在地解決這些基本問(wèn)題,并提供COTS的優(yōu)勢(shì),而沒有隨之而來(lái)的缺點(diǎn)。這些牙線優(yōu)勢(shì)包括:
可訪問(wèn)的源代碼
首先,源始終可用并且可以自由修改的事實(shí)意味著至少可以進(jìn)行修改。此外,這些修改可以由客戶、制造商或第三方進(jìn)行。對(duì)于專有產(chǎn)品,制造商可以通過(guò)技術(shù)和法律手段對(duì)此類修改保持牢固的控制,但與COTS FLOSS相關(guān)的免費(fèi)許可意味著這種控制是不可能的。
永久可用性
其次,免費(fèi)許可意味著任何存在的東西都永遠(yuǎn)可用。對(duì)于專有產(chǎn)品,制造商可以通過(guò)許可條件或簡(jiǎn)單地使產(chǎn)品停止工作來(lái)強(qiáng)制升級(jí)。(例如,如果您不繼續(xù)升級(jí)到最新版本,Quicken 的某些功能會(huì)在幾年后停止工作。對(duì)于FLOSS產(chǎn)品,許可保證永久可用性,供應(yīng)商,客戶或第三方可以提供長(zhǎng)期支持。
強(qiáng)調(diào)支持
最后,商業(yè)FLOSS市場(chǎng)以支持為導(dǎo)向。在沒有支持的情況下將FLOSS產(chǎn)品傾銷到市場(chǎng)上并期望人們購(gòu)買它是行不通的。人們?yōu)榭赡軓幕ヂ?lián)網(wǎng)免費(fèi)下載的東西付費(fèi)的確切原因是獲得高水平的支持。如果此支持意味著對(duì)特定客戶進(jìn)行微小的修改或在舊版本上永遠(yuǎn)保持支持,那么它將以合理的價(jià)格提供。如果制造商不以合理的價(jià)格提供此服務(wù),第三方可以介入提供該支持。就我們?cè)诳臻g站環(huán)境中提到的GNAT Pro Ada編譯器而言,AdaCore每年都會(huì)提供新版本,但我們?nèi)匀挥锌蛻羰褂贸^(guò)10年的版本,我們希望無(wú)限期地繼續(xù)支持。進(jìn)行微小的自定義改進(jìn)是我們商業(yè)產(chǎn)品的重要組成部分。
牙線成功
總之,COTS 軟件工具和組件將停留在關(guān)鍵項(xiàng)目的背景下,對(duì)基于 FLOSS 的 COTS 工具的日益依賴可以確保 COTS 的承諾能夠在沒有這種方法的共同缺點(diǎn)的情況下蓬勃發(fā)展。
審核編輯:郭婷
-
開源
+關(guān)注
關(guān)注
3文章
3380瀏覽量
42603 -
編譯器
+關(guān)注
關(guān)注
1文章
1638瀏覽量
49197
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論