API自动化 管理解决方案的技术白皮书
通用设备互联框架(CDIF:common device interconnect framework)的软件框架,目前有部分开源实现存放在:https://github.com/out4b/cdif(注:开源部分遵守相关开源代码许可协议)。 CDIF 是世界上第一种基于 REST 和 JSON 的 SOA 软件框架,提供了与基于XML 的 WSDL 语言和 SOAP 协议同等抽象能力、但简洁得多的基于 JSON 的实现,也非常适合用于描述微服务架构的 API 接口。CDIF 提供了完整的服务注册和发现能力,为所有的 web 服务,包括 REST 和 SOAP 类型的服务创建出一个简洁、统一的 JSON 模型;并在此基础上提供了其 REST 接口上的统一 RPC 调用接口,方便了各种前端应用开发出基于该统一模型的 API 调用代码。
CDIF 软件框架的总体架构如下图所示:
在上图中,通过框架提供的设备抽象层,CDIF 将来自不同厂商的各种类型的REST API 封装成各种虚拟设备,并对外提供统一的虚拟设备访问 REST 接口供客户端使用。
CDIF 项目由 UPnP 标准发展而来。同时,对该项目的提议也是 UPnP 组织合并入 OCF 标准化组织的主要原因之一。在支持各类云服务的 API 接口同时,CDIF 也为所有的物联网设备提供了一个统一的模型,并且可以方便地帮助客户端创建出物联网设备和网络服务联动的各种应用场景。
由于其简洁的抽象能力,基于严格契约的松耦合架构,状态无关的可互换服务定义等优点,在 WSDL 和 SOAP 基础上打造的 SOA 技术体系至今仍然广泛应用于包括银行、交易所、航空公司、电信、医院、电商、支付平台等各行各业的大中型企业中。据 MuleSoft 估算,目前世界上每年花费在与 SOA 技术相关的企业 IT 基础设施建设和系统集成工作有 5000 亿美元之多。但由于 XML 格式用于数据交换过于复杂,以 XML 为基础的许多优秀的 WS-*标准都逐渐走向了没落。
随着移动时代的发展,以 REST 和 JSON 为基础打造的各种 web 服务、微服务架构逐渐成为主流。基于 JavaScript 开发的应用,如各种 web app、微信小程序等都以 REST 和 JSON 作为连接的基础。新兴 IT 企业也更倾向于使用 REST API,而不是 SOAP 来连接企业内部的各种基础业务组件。但是,目前企业内外使用的各种 REST API 基本都需要依赖文档手动管理,在 API 接口变化时,部署和升级新的 API 版本非常不方便。CDIF 为 REST API 建立的通用模型帮助填补了 REST API 与传统 SOA 技术的差距,并为传统 SOA 技术和云服务的结合与发展提供了全新的方向。基于 CDIF 的 SOA 技术可以方便地创建出许多全新类型的应用,比如 REST 服务流应用,web 服务和物联网设备的无缝结合等等,这些都是现有技术无法轻易实现的场景。
与 WSDL 或 Swagger 等技术不同,使用 CDIF 提供的 JSON 模型与 RPC 接口的客户端 app 不需要对被 CDIF 管理的 REST API 做离线的客户端代码生成和手动集成,便可将这些 REST API 接口及其变化动态地反映在客户端 UI 上供用户使用,大大省却了客户端对 REST API 的集成和 API 接口变化带来的繁琐的手动客户端升级工作。如果客户端 app 不希望使用这些高级特性,CDIF 提供的 REST 接口也可以向下兼容目前流行的手动集成方法。
同时,由于做到了对 API 的访问地址和方法完全透明,CDIF 也可以较好地帮助企业解决 REST API 的变化管理这一难题。CDIF 支持驱动代码的热切换,驱动中的 API 访问地址发生变化时只需要安装新的驱动包到 CDIF 框架上,变化即可即时生效。当 API 参数或结果类型发生变化时,上层应用可以自动发现这些变化,并自动部署新的应用版本。这些特性都可以更好地帮助企业建设全自动化的运维环境。
更进一步,CDIF 还可以为厂商的 REST API 提供独有的双向数据通道能力,厂商只需要调整其 REST API 对 CDIF 框架提供的统一 JSON 模型上一个Boolean 取值便可开放该能力。此时,厂商云服务上的各种数据更新便可以实时地通过 WebSocket,APN 等通道被 CDIF 的消息订阅者获取,而不需要由用户主动发起 API 调用更新数据,产生额外的 API 调用开销。该特性为目前所有基于 API 调用的单向云服务数据通道提供了更强大的能力。
基于以上的技术优势,使用灵长科技 API 管理解决方案的厂商可以将其 REST API 提供的业务能力自动展现在 app UI 上供用户消费使用,大大简化了 app 开发人员的工作,同时可以做到实时推广厂商通过其新添加 REST API 所展现的新增业务能力。灵长科技 API 管理解决方案对 REST API 提供全自动的服务注册、发现和使用能力,每次厂商新发布的 API 包版本上传后,使用该 API 的所有 app 端的接口表单即可自动重新生成,而无需 app 开发者手动集成和部署更改后的 app 版本,大大节省了厂商的 API 推广和管理成本,同时也显著地提升了 API 管理这种有着广泛应用的商业模式给厂商带来的价值。
![cdif框架图.png](http://studygolang.qiniudn.com/170313/cbedeb5f70bda424716196b8ea0ab7e7.png)