关键系统中的COTS软件:自由许可开源软件的案例

描述

  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 的承诺能够在没有这种方法的共同缺点的情况下蓬勃发展。

  审核编辑:郭婷

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分