物联网系统开发
付强 傅静涛
Preface前言
为什么要写这本书
2011年我在硅谷的时候,曾经参与设计和开发了一个物联网平台。这个平台的目的是为各种物联网设备提供统一的通信接口,以及提供数据存储和分析功能,降低物联网设备商的开发和运营成本。不过,由于物联网设备的异构性太强,同时平台的愿景过于超前,而当时物联网应用的发展包括资本的投入都远不及现在,这个项目不得不半路中止。
2015年,我在国内和朋友联合创办了一家物联网相关的公司。为了支持公司的硬件产品,我们开发了一个提供统一通信和数据服务的物联网平台,不过吸取了之前的教训,这个平台只对同一组织(公司)里的多个产品提供支持。当时各大云服务商,比如阿里云,提供了非常成熟的物联网套件,我们将这些物联网套件中的一些功能移植到了自研的物联网平台上。这个平台从技术层面很好地支持了公司从0到1、从1到N持续盈利的全流程。
在这个过程中我遇到过一些问题,也总结出一些非常有用的经验。在此期间,我也加入了一些物联网开发者的社区。在日常的技术交流里,我发现一些开发人员对常用的物联网协议的理解是有问题的,对一些功能应该在协议层面实现还是在业务层面实现不是很清楚。我曾在互联网上搜索过相关的技术文章,发现系统性讲解协议的规范和特性的文章非常少,不是只对一两个功能进行介绍,就是只翻译协议规范,缺乏代码示例。
在这种情况下,我在GitChat的专栏写了我的第一篇文章《MQTT协议快速入门》,详细地讲解了物联网应用中最常见的MQTT协议的规范和特性,并对每一个特性附以丰富的代码示例。
加入专栏文章的读者交流群后,我又发现读者还有很多关于设计、业务架构的疑问,深入理解MQTT协议并不能解决这些问题。这让我意识到,物联网应用开发并不像Web开发那样有成熟的设计模式和框架可以使用,开发者往往都是从协议级别开始往上搭,重复地造轮子。
因此,我觉得有必要把我们在开发物联网平台中遇到的困难和总…