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