api构成了网络供应商锁定的最新威胁

随着软件定义的网络越来越占主导地位,一个网络供应商提供的api可能会更严重地限制与其他供应商产品的互操作性。

两个开发人员在他们的工作空间中审查显示的代码时,在一个项目上进行协作。
BalanceFormCreative /伤风

在我对企业的调查中,担心供应商锁定的人数30年来一直在90%左右徘徊。当你问企业如何避免使用它时,他们的回答是“标准接口”或“开源”。即使在今天,在锁定规避措施列表中包含“管理api”的百分比仍处于统计噪声水平,但api可能是目前增长最快的锁定问题,而且它们肯定会在未来成为一个主要问题。

API是“应用程序编程接口”的缩写,但这个术语如今在软件中广泛使用,用来描述应用程序、云甚至网络中使用的所有软件组件之间的接口。api让软件的各个部分能够相互通信,并且在连接软件组件而不是硬件设备的任何情况下,它们都是必不可少的。如今,对api的锁定产生挑战的是,网络正在更多地向软件转移,这意味着它正在转向一种模式,在这种模式下,api和那些标准接口一样重要,而企业却没有跟踪这种重要的转变。

在网络设备内部,您可能会发现四层软件。在底部,有司机它提供了一种通用的方式,将以太网接口芯片之类的东西与软件的其他部分连接起来。除此之外,还有一个提供一般托管功能的网络操作系统(NOS),而在此之上是处理所需的特定网络特性的“中间件”。在此之上是依赖于网络的应用程序,包括管理和服务特性,如统一通信或减少服务拒绝。每一层都向其他层公开api。

我们习惯了不同的硬件接口,以太网或无源光网络,甚至无线网络,每个人都明白,你不能把一根以太网电缆插入一个USB端口,就像你不能把一根以太网电缆插入一个错误的接口一样。api的不同之处在于没有物理连接器阻止您尝试。API表示消息交换规范。消息格式、数据结构、请求/响应同步等等的每个方面都在API规范中进行了阐述,它们都必须匹配,否则使用API的软件将不能正确通信。换句话说,不匹配的api会破坏软件,包括设备和网络管理中心内部的软件。

厂商知道这一点,而且许多厂商(特别是在网络管理领域)为它们的api颁发许可证。这意味着企业只能基于许可条款使用api。在不违反许可条款的情况下,将来自其他供应商的软件附加到许可的API可能是不可能的,即使您为此开发了适配器软件。如果您根据授权的API构建软件,然后更改该软件,您可能会失去使用该API的权利。我在一家金融服务公司看到了这个特别的问题,他们花了好几个月的时间才解决了这个问题。

即使供应商没有专门使用api来锁定你,api也可能产生意外锁定。还记得那四个软件层吗?很可能每一层都使用NOS api。大多数NOS将使用驱动程序api,而中间件可能同时使用NOS api和其他中间件包的api。所有这些创造了一个相互连接的网络,对吗?现在假设您的NOS供应商更改了它的API。您的主要中间件供应商获取并支持该更改,但其他一个或多个中间件供应商却不这样做。如果您安装了新的NOS,您将破坏所有不支持API更改的中间件。如果您不这样做,您将失去新的NOS特性以及单一中间件提供者支持新的NOS API的任何新特性。

甚至开源软件也有API问题。大多数开源许可证并不禁止定制,它们只要求源代码可用。开源NOS或中间件或网络管理软件工具的供应商可以定制一些api,发布源代码,并与开源许可条款兼容。但是其他软件,仍然期望该软件的标准api,将不再与它一起工作。

我在Linux上看到过这个问题,它有许多包含Linux和各种中间件组件的发行版。例如,您可能希望在Linux上运行一个使用Python的应用程序。发行版“A”可能包括Python的一个版本,而发行版“B”可能包括另一个版本。如果你获得了一个使用Python的应用程序/工具,并且Python api在不同版本之间发生了变化,那么可能就没有办法编写可以跨多个发行版移植的软件。

你用物理接口连接硬件。你用api连接软件。如果网络(无论是在网络操作级别还是在分解的设备内)是将软件与硬件分离,并通过组合软件包构建功能,那么您需要像关注物理接口一样关注api,甚至更多。

如何?

第一步是要求所有软件产品都包含它们公开和使用的所有api的完整描述。该描述必须包括对他们声称支持的任何标准的引用,以及对任何增强或扩展的完整描述。它还必须包括与每个API相关联的许可条款(如果有的话),并且您应该询问使用API的示例代码,以确认它是如何工作的。显然,如果您计划通过API连接Package A和Package B,它们的API描述必须完全匹配,或者您必须能够避免调用两个包都不支持的扩展的情况(比如特定的特性或命令)。

第二步是在API发生更改时获取软件上的版本历史记录。您所寻找的是变更如何跨多个软件包渗透的时间表。如果Package A的供应商在支持新API方面速度非常快,而与之竞争的Package A的供应商速度很慢,那么在API更改时,您可能会遇到问题,而您选择了响应慢的供应商。在所有使用API的供应商达成一致之前,您可能无法在不中断某些API连接的情况下更新您的软件。

最后一步是收缩你的假设。即使是最好的研究也可能错过政策或方向上的变化,如果软件供应商改变一个API,结果可能会破坏一个应用程序或一个网络。把承诺写进合同条款中。

网络设备或应用程序是“黑盒”的经典定义的一个例子,黑盒是一种不透明的对象,因此其结构无法详细检查。正如俗话所说,黑匣子是由输入和输出之间的关系定义的。软件实际上是由这些api之间的关系定义的,而这些api人们并没有像他们应该关注的那样关注。如果你想避免厂商锁定,不管是有意的还是意外的,那么你需要认真对待api。

加入网络世界社区足球竞猜app软件脸谱网LinkedIn对最热门的话题发表评论。
相关:

版权所有©2021 IDG通信有限足球竞彩网下载公司

SD-WAN买家指南:问供应商(和你自己)的关键问题