向后兼容性确保现代系统可与遗留系统互操作。
向后兼容性定义为软件、硬件、产品或技术在现代和遗留系统之间保持高度互操作性的能力。
本文介绍了向后兼容性的基础知识、其主要用途、优点和挑战。
什么是向后兼容性?
向后兼容性是指软件、硬件、产品或技术在现代和遗留系统之间保持高度互操作性的能力。它确保较新系统的功能与以前的系统标准、型号或版本兼容。
向后兼容性有助于使旧系统与现代保持相关性。随着游戏、电信和 IT 行业的公司不断升级其系统标准和产品,依靠向后兼容性来保留原始软件和硬件组件。
例如,文本处理语言Perl的开发是为了克服早期语言AWK的局限性。虽然Perl最终取代了AWK,但它仍然有多个类似AWK的构造用于文本操作任务,使Perl向后兼容AWK。
微软开发了一个名为Xbox的视频游戏品牌。2020年,该公司发布了名为Xbox X/S系列的第四代Xbox游戏机。值得注意的是,这些新推出的游戏机向后兼容所有原始Xbox游戏。
向后兼容的其他示例包括 Microsoft Office 产品。Microsoft Word 2016 向后兼容 Microsoft Word 2013。同样,微软为几种MS Office产品提供了向后兼容性,例如Excel,PowerPoint等。
当早期系统版本配备了支持添加一组新功能而不影响系统性能的插件、API 或钩子时,向后兼容性更容易实现。这意味着旧系统与新系统向前兼容,并为未来的产品铺平道路。
向后兼容性的用途
向后兼容性通常用于硬件、软件、游戏、电信和计算等。
1. 硬件
调频收音机系统在 1940 年代成为主流。这些服务使用单声道广播,其中使用代表一个音频通道的单个信号。后来,在 1960 年代,FM 立体声脱颖而出并取代了单声道 FM 服务。FM立体声有两个音频通道来广播内容。但是,当时许多用户仍然拥有单声道接收器。这意味着 FM 立体声需要向后兼容 FM 收音机,以便听众仍然可以使用较旧的 FM 硬件。
这一目标是通过多路复用立体声信号通道来实现的,并通过在单个信号中对左右音频通道 (L+R) 和另一个信号中的差值 (L-R) 求和,使单声道接收器向前兼容。在这种情况下,单声道接收器可以捕获和解码L+R信号,同时忽略L-R信号。
另一个例子是x86微处理器系列。这些微处理器与 16 年代推出的早期版本(8086 位英特尔 8088/1970 处理器)兼容。这种向后兼容性确保了新硬件可以运行二进制操作,例如 8086 处理器,而无需新的指令集、操作系统或应用程序。
此外,由于VLSI(超大规模集成),集成电路(IC)的数字控制最近变得更加明显。VLSI和IC的数字管理确保了电路尺寸更小,无源元件更少,因此与传统电路相比,设计成本更低。数字控制通常取代模拟控制器。然而,所有这些数字控制都倾向于保持与模拟对应物的向后兼容性,以便两者可以在新的数字系统中共存。例如,数字和模拟电源控制器在IC中一起工作。
2. 软件
除了硬件之外,向后兼容性在软件世界中也很常见。让我们考虑一下软件开发环境。如前所述,Perl脚本语言与其前身AWK语言兼容。
同样,编译器是编程领域中的另一个关键组件,它强烈突出了向后兼容性功能。这意味着编译器接受新编程语言的方式与接受以前的语言模型的方式类似。此外,新语言程序使用的数据格式也是有效的,因为它的真正含义就像以前的数据格式一样被保留。
我们日常生活中使用的移动应用程序也展示了向后兼容性。尽管手机的操作系统可能会经常更新到较新版本,但在此之后仍然可以使用应用程序。
3. 视频游戏和游戏机
视频游戏设计和游戏机通常会揭示向后兼容性功能,因为公司或所有者经常更新游戏。例如,微软的Xbox 360使用仿真软件程序来保持与以前版本发布的新游戏的兼容性。同样,索尼的PS2(PlayStation 2)和PS3游戏机显示出与最初推出的PS的向后兼容性。此外,PS3 具有情感检测引擎,可以不受阻碍地玩 PS2 版游戏。
4. 电信
根据美国联邦通信委员会 (FCC) 2021 年 5 月的数据,新推出的 5G 智能手机与位于缺乏 <>G 网络支持的地理位置的先前版本网络具有向后兼容性 。
数据还显示,几家运营商计划在几年内停止3G覆盖。这意味着支持 3G 的手机可能会失去 3G 连接。因此,最好与服务提供商核实他们处理3G手机的计划。FCC还强调,较旧的3G和4G手机可能不会显示与5G设备的向前兼容性。相反,您可能需要支持 5G 的设备才能访问 5G 服务。
类似的规则适用于 Wi-Fi 标准。无线标准最近更新,称为802.11ax。它与早期版本的设备兼容。但是,这需要性能权衡。例如,在 802.11b 上运行的设备可能会连接到 WLAN,但性能会大幅下降。这意味着,即使该设备在技术上兼容,但由于数据速率的变化,802.11b 设备发现很难在 802.11ax 的高速环境中以同等方式执行。
5. 计算
在计算世界中,向后兼容性是加密过程的关键。例如,三重数据加密算法(T-DES)是标准DES算法的高级版本,该算法于1970年代发布,旨在保护政府机构的敏感数据免受外部攻击。在 T-DES 中,分组密码为每个数据单元应用三次。
T-DES 加密有三个密钥选项。在选项一中,每个密钥都独立于另一个密钥,因此使其成为最强的加密类型。在选项 2 中,前两个键是依赖键。在选项 3 中,所有键都是相同的。此类型使加密向后兼容原始 DES。然而,这也使加密成为最弱的,因为相同的密钥使加密中的漏洞风险增加了一倍。
向后兼容性的好处
向后兼容性确保用户可以继续无缝使用旧设备和软件版本。
向后兼容性优势
无需从头开始:随着公司不断推出软件更新或产品版本,向后兼容性消除了从头开始该过程的需要。这意味着更新过程可以在先前修改任务结束的位置恢复,从而为多个较旧的文件或文档提供支持。
保持不同的硬件/软件版本不变:向后兼容性允许组织保留不同的硬件和软件版本。通常,每次升级时,公司往往会失去对以前产品版本的控制。但是,这种可能性被消除了,因为旧产品始终可供他们使用。此外,通过向后兼容性,用户不会被迫购买新的硬件或软件。相反,他们可以在仍然使用相同的产品的同时选择升级。
加速产品销售:用户通常选择更便宜的更新,而不是购买全新的产品。向后兼容性使他们能够这样做,从而促进整体销售。这通常在游戏和电信行业很普遍。
帮助推出补充产品:通过向后兼容性,公司可以利用已经安装其产品的坚实客户群,并推出与其他产品一致的补充产品,专门针对其用户。这使公司比竞争对手具有竞争优势,因为他们可以从已经订阅的用户中受益。
更好地管理产品发布:向后兼容性允许公司制定产品发布的策略。由于每个版本都与早期版本兼容,因此通过受控更新发布简化了工作流程。因此,公司可以专注于发布部分升级,而不是进行一次大发布。因此,向后兼容性为公司提供了规划和管理其产品发布的空间,从而提高了整体业务成果。
向后兼容性的挑战
如上所述,向后兼容性提供了几个好处。但是,这些好处是以权衡为代价的,这些权衡会对应用程序开发、数据库、软件应用程序、硬件等产生重大影响。因此,它会影响整体系统性能。
1. 系统崩溃
假设您构建了一个能够与其他设备共享照片的移动应用程序。该应用程序具有显示最近共享图像的用户源。几个月后,您决定通过启用视频共享来更新应用程序。这个新的应用程序版本可能适用于更新的应用程序商店。但是,问题仍然是几个月没有使用或更新该应用程序的用户。在这种情况下,用户的 Feed 可能会在某个时候崩溃,因为应用遇到的数据类型比最初安装时设计的数据类型更意外。
向后兼容性受到此问题的困扰,其中旧应用版本上的新数据类型或意外数据类型会导致应用崩溃,因为用户未命中最新应用更新中可用的终结点。
2. 数据不一致
由于用户可能不习惯的更新,可能会出现数据不一致。请考虑前面的视频共享更新示例,该更新在用户的显示器上呈现视频内容。如果用户不知道如何共享视频或将视频添加到应用程序中,他们肯定会错过应用程序上的许多有价值的内容。
假设你决定在另一种方案中更新应用的隐私设置。在这种情况下,尚未更新应用的老年用户可能会因数据不一致而导致隐私侵犯。为了克服这些挑战,应用程序公司需要调查用户的行为,然后根据结果引入新功能。
通常,需要服务器端响应的应用会遇到此类挑战。如果您正在开发单人游戏或离线应用,则可能不会遇到不同版本应用之间数据不一致的问题。
3. 缺乏硬件支持
假设您将 API 升级到在分布式系统上运行的较新版本 - 通过网络连接的多个进程的混合。虽然升级有效,但基础硬件的兼容性可能不足以支持它。由于程序代码中的错误和错误,这会导致程序失败。因此,当您向软件应用程序添加新功能时,尤其是在分布式系统中,检查硬件支持或考虑与现有硬件向后兼容的更新至关重要。
4. 财务挑战
向后兼容性意味着旧版硬件和软件版本应继续运行。但是,与其维护相关的成本可能有点负担。在硬件方面更是如此。您需要确保制造商提供硬件材料,更换已显示出减速迹象的组件,修改或添加可以处理复杂软件应用程序的硬件单元等。所有这些因素都推高了成本。
此外,公司面临的另一个挑战是,在行使向后兼容性的同时,不应限制最新的创新和用户期望。这适用于游戏行业,在发布较新的游戏或游戏机版本后,公司会废弃较旧的游戏机。这种做法降低了旧机器的维护成本,同时促进了新游戏版本的销售。
我们生活在一个动态的技术世界中,产品和技术每天都在不断发展。对于新版本,值得要求用户升级他们的系统,而不是直接淘汰旧机器。因此,向后兼容性变得相关,因为它确保较新版本与旧版本同步工作。
由于每种技术都有自己的优点和缺点,因此向后兼容性也有其自己的批评者需要处理。对于行业来说,延长旧技术的使用寿命是一项挑战。与此同时,企业也面临着是否接受不能为其业务增加价值的新技术的困境。在这样做的同时,组织还必须做出安排并承担设计和维护其向后兼容性构造的成本。