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

随着软件定义的网络变得越来越占主导地位,一个网络供应商提供的API可以更严重地限制与他人生产的产品的互操作性。

两名开发人员在一个项目中进行了合作,他们在工作空间中的显示上查看代码。
BalanceFormCreative / shutterstock

在我对企业的调查中,担心卖方锁定的数字在30年中徘徊在90%左右。当您询问企业如何避免它时,他们会响应“标准接口”或“开源”。Even today, the percentage who include “managing APIs” in their list of lock-in avoidance measures is in the statistical noise level, but APIs are perhaps the fastest-growing lock-in problem today, and they’re surely going to become a major problem in the future.

API代表“应用程序编程接口”,但该术语今天在软件中广泛使用,以描述应用程序,云甚至网络中使用的所有软件组件之间的接口。API允许软件彼此交谈,并且在连接软件组件而不是硬件设备的每种情况下都是必不可少的。在今天,从API锁定的挑战是,网络正在转移到软件,这意味着它正在转移到API与这些标准接口一样重要的模型,而企业并没有跟踪这一重要转变。

在网络设备中,您可以期望找到四层软件。在底部有司机这提供了将以太网接口芯片之类的内容链接到其余软件的一般方法。在此之上,还有一个网络操作系统(NOS),可提供一般托管功能,而高于“中间件”,可处理所需的特定网络功能。最重要的是与网络相关的应用程序,包括管理和服务功能,例如统一通信或拒绝服务缓解。这些层中的每一个都将API暴露于其他层。

We’re used to different hardware interfaces, Ethernet or passive optical networking or even wireless, and everyone understands that you can’t plug a goes-into into the wrong goes-out-of any more than you can plug an Ethernet cable into a USB port. What makes APIs different is that there’s no physical connector to stop you from trying. An API represents a message exchange specification. Every aspect of message format, data structure, request/response synchronization, and so forth, are set forth in API specifications, and they all have to match or the software using the API won’t communicate correctly. In other words, mismatched APIs break software, including the software inside devices and network management centers.

供应商知道这一点,许多人(尤其是在网络管理领域)许可其API。这意味着企业只能根据许可条款使用API​​。即使您开发适配器软件来执行此操作,也可能不可能将软件从其他供应商附加到许可的API,而无需违反许可条款。如果您为许可的API构建软件,然后更改软件,则可能会失去使用API​​的权利。我在一家金融服务公司看到了这个特殊的问题,他们花了几个月的时间才能解决该问题。

即使供应商不专门使用API​​来锁定您,API也可以创建意外锁定。还记得这四个软件层吗?它可能每一层都使用NOS API。大多数NOSS都会使用驱动程序API,中间件可能会同时使用NOS API和其他中间件软件包的API。所有这些都创建了互连的网络,对吗?现在假设您的NOS供应商更改其API。您的主要中间件供应商可以选择更改并支持它,但是其他中间件提供商中没有一个或多个。如果安装新的NOS,则会打破所有不支持API更改的中间件。如果不这样做,您将失去支持新的NOS API的单个中间件提供商的新功能和任何新功能。

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

我已经看到了Linux的这个问题,Linux具有许多分布,其中包括Linux和各种中间件组件。例如,您可能要在Linux上运行一个应用程序,例如,使用Python。发行版“ A”可能包含Python的版本,而Distro“ B”可能包含另一个版本。如果您获得了使用Python的应用程序/工具,并且如果版本之间的Python API更改,则可能无法编写可以在多个发行版中移植的软件。

您将硬件与物理接口连接。您将软件与API连接。如果网络在网络操作级别和分类设备内的网络,都将软件与硬件和构建功能相结合,那么您需要像对物理接口一样对API的关注,甚至更多。

如何?

第一步是要求所有软件产品均包含对它们暴露和消费的所有API的完整描述。该描述必须包括对他们声称支持的任何标准的引用,以及对任何增强或扩展的完整描述。它还必须包括与每个API相关的许可条款(如果有),则应要求使用API​​确认其工作原理的示例代码。Obviously, if you plan to connect Package A and Package B via an API, their API descriptions have to match fully, or you have to be able to avoid situations (like specific features or commands) that would invoke an extension that both packages don’t support.

第二步是在进行任何API更改时获取软件上的版本历史记录。您正在寻找的是如何在多个软件包中渗透的变化时间表。如果软件包A的供应商在支持新的API方面非常快,并且竞争软件包A的提供商很慢,那么如果进行API更改,您可以期望出现问题,并且选择慢速响应供应商。在所有使用API​​的供应商都在同一页面上的所有供应商之前,您可能无法在不破坏某些API连接的情况下更新软件。

最后一步是使您的假设合同。即使是最佳研究也可能会错过政策或方向的变化,如果软件供应商更改API,则结果可能会破坏应用程序或网络。获得合同条款的承诺。

网络设备或应用程序是“黑匣子”的经典定义的一个示例,即不透明的对象,因此无法详细检查其结构。俗话说是通过其输入和输出之间的关系来定义黑匣子。软件确实是由这些API之间的关系定义的,这些API的关系并没有尽可能多地关注。如果您想避免供应商锁定,故意或意外,那么您需要认真对待API。

加入网络世界社区有个足球雷竞技appFacebookLinkedIn评论最重要的主题。
有关的:

版权所有©2021 IDG ComRaybet2munications,Inc。

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