IoT平台接口定制观察

设备端接口

一直以来,IoT的设备端接口的标准化程度较低,其多样化一直是一件让人挠头的事情。要么需要码农提供深度定制的服务,耗时耗力,要么会导致项目中断。

标准化接口

就我自己来说,在EPIC架构的Connector端一直推荐采用标准化的方法:

  • 传输层:TLS
  • 应用层:MQTT
  • 表达层:JSON

然后数据就可以一路沿着队列传送到其他服务如数据库和API接口。但是由于资源原因,设备接口端一直存在定制需要。虽然大多数设计都比较落伍,尤其在安全性和语义性上缺乏合理的设计。

接口定制服务化

我们来观察其他供应商的做法:

  1. 机智云提供的Agent,其实是将接口工作统一到设备领域中,这样开发中直接访问设备的Agent,接口工作可以减少。
  2. 中移动OneNet,提供了Lua透传和JSON Schema两种方式,一种是让用户自己写代码,另外一种是利用JSON来定义编码解码对接工作。
  3. 华为OceanConnect,提供了编解码插件,本质上也是类似与OneNet的第二种方式。

以上三种方式都有可取之处,目的只有一个:加速设备对接和应用集成速度

利用标记语言如JSON/XML,甚至Markdown/CSV格式语言都可以实现从编解码定义到编解码代码转换,但是没有标准化。而直接使用编程语言有一定风险,这也是为何OneNet采用嵌入式脚本Lua的原因吧。

此外需要设计者提供工具来实现:规划、验证、设备端代码生成。

类似设计

Yahoo pipes曾经是接合网络爬虫和非结构化数据解析的一种实验性工具。Twisted上也曾经有人提供过开源的替代品。如果将pipes作为通用编解码器来考虑,那么这个设计可以作为一个参考。

Google ProtocolBuf 也是一个相对完整的设计,包括.proto定义和代码生成器。除了JSON,还有msgpack和BSON等二进制序列化标准。替代品还有:Thrift,Hessian,Kiro......

在这些开源设计基础上,通过增加callback等其他定义,也可以构成一个相对完整的设计。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,488评论 19 139
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,889评论 4 61
  • 藤上叶黄, 小龟爬上我的脚面, 放佛占据了一个制高点。 告别这个夏天, 藤上瓜收, 小龟长大, 你在哪里?
    鹰王守仁阅读 133评论 0 1
  • 18-05晚安
    取个帅气的昵称5阅读 294评论 0 0
  • 在MacTalk上看到了邱岳写的《从支付宝的年度账单说起》,其中提到了一位叫做 Harry Brignull 的设...
    无限漫远阅读 1,138评论 0 1

友情链接更多精彩内容