2017年6月份的时候曾写过一篇微软、百度和阿里三大公司的物联网平台文章《微软百度阿里三大物联网云平台探析》,当时中美贸易战还没有开始打,亚马逊和微软的云平台正如日中天,其物联网平台也已经初步布局完毕,无论是平台的完善度,还是技术的领先性,国内厂商都难以比肩。不过时过境迁,后来者居上,随着国家对信息安全的重视,国内的物联网平台越来越得到了大家的认可,发展前景越来越好。
- 国内各大物联网平台一览
那个时候国内厂商,百度推出物联网平台的时机最早,架势也最大,其天工开物智能物联网平台,包括物接入 IoT Hub、物解析 IoT Parser 和物管理 IoT Device等板块,其物联网平台设计理念已经和亚马逊物联网平台一样,已经支持物模型等相关功能,有属性,有事件和服务。阿里云则相对低调,仅推出了物联网开发套件,重点在数据接入,支持将数据通过MQTT协议送入云平台,由客户自行解析设备发送到云平台的数据。而腾讯早在2014年就发布QQ物联,号称连接一切,不过还是发力微信,重点在于人的连接。而此时的华为也推出了物联网平台OceanConnect,不过有些犹抱琵琶半遮面,反而把为电信所做的天翼云物联网平台推到了前台,一时让人有些分不清,天翼云物联网平台和OceanConnect到底有什么区别。
如今一晃三年多过去了,三年前低调的物联网平台小弟–阿里云物联网平台,一晃成为国内物联网平台领域的领先者(对这段历史感兴趣的网友可以看看我以前发表的文章《阿里云物联网之路》),而率先在物联网平台发力的百度,却偏安一隅,在天工物联网平台之外,发布了物联网核心套件 ,竟然有点类似阿里云三年前发布的物联网开发套件,真是三年一个轮回。而后发力的腾讯,几乎复制了一个阿里云物联网平台,其产品创建,设备生成等操作习惯和阿里物联网平台几乎别无二致,基本上学会了阿里云物联网平台,再上手腾讯物联网平台则毫无学习压力。而华为物联网平台方面改变的力度则更大,重新发布了华为IoTDA数据接入平台,和以前的OceanConnect一刀两断,不再兼容。华为从善如流,其物联网平台的主要要素基本上和阿里云物联网平台近乎一致了(去年和华为物联网平台总架构师线下交流,其就曾表示华为当下物联网平台做的友好性相对不好,从阿里又挖了一些人来继续完善华为的物联网平台。记得2018年初次和华为合作的时候,那个时候阿里反而经常去华为挖人,这又是一个风水轮流转的例子),不过为了表达自己的别具一格,构建产品物模型的时候,增加了一个服务ID的概念,一个产品可以有多个服务ID,每个服务ID下再分别构建“物模型”。这一点京东的物联网平台倒是和华为类似,一个物类型下有多个物模型。另外值得一提的是,中移动的OneNET平台其操作习惯和阿里云物联网平台也非常一致,平台上相关关键词的命名也基本一样。
- 国内各大物联网平台比较
目前来看,国内几大领先的物联网平台,其标准组成越来越趋于一致,基本都有如下几大部分构成。
组件项 | 阿里云 | 华为 | 腾讯云 | 中移动 |
小程序平台 | 支付宝、淘宝、天猫等全家桶 | 快应用 | 微信 + 腾讯连连 |
|
物联网应用平台 | IoT Studio 飞燕智能家庭 飞凤物联平台 飞象工业互联 |
| 腾讯物联网开发平台(非常类似阿里飞燕平台) | 应用定制 |
数据接入平台 | 物联网开发平台 | 华为IoTDA | 腾讯物联网通信 | OneNET物联平台 |
嵌入式OS | AliOS Things | LiteOS | Tencent Tiny OS | OneOS |
边缘计算 | 边缘计算系统 边缘一体机 | 华为KubeEdge | 腾讯5G边缘计算 | OneEdge 5G边缘计算 |
芯片模组 | 平头哥芯片系列 | 海思物联网芯片 |
| 各种通信模组 |
私有化部署 | 支持 | 支持 |
|
|
具体到物联网数据接入平台,各个公司的相似性则会更大,无论是平台界面,还是接入文档说明,还是调试方式和接口,甚至是API接口的定义都有非常类似(就有人曾分析过阿里和腾旭的C SDK除了各种定义相似外,版本维护的节奏都一致,说不清是一女二嫁,还是彼此参考)。
下面我们仅从“物模型”的角度去进行对比,参见下表:
项目 | 阿里云 | 华为 | 腾讯云 | 京东 |
物模型 | 物模型 | 产品模型+服务ID | 数据模板 | 物类型+物模型 |
产品 | 产品/产品秘钥
| 产品/产品ID | 产品/子产品 | 物类型/物类型标识 |
设备 | 网关设备 直连设备 子设备 | 网关设备 直连设备 非直连设备
| 网关 设备 子设备 | 直连设备 连接代理设备 非直连设备 |
设备鉴权 | 三元组: 产品秘钥 设备名称 设备秘钥 | 二元组: 设备ID 设备秘钥 | 三元组: 产品ID 设备名称 设备秘钥 | 一元组: 设备ID |
属性 | 属性 | 属性 | 属性 | 属性Key 物类型·属性 |
事件 | 事件 | 【无】 | 事件 | 事件 |
方法 | 服务 | 命令 | 行为 | 方法 |
注:中移动OneNET和阿里云物联网平台基本一样,仅产品秘钥的名称为产品ID
从以上的比较我们可以看出,各大物联网平台有完全趋同的势头,这对物联网开发者来说是一件好事,学习各大物联网平台的代价没有那么大了,各平台的切换的代价似乎也没有那么高了。但是对各大物联网平台厂商来说,不一定是好事,这意味着,他们已经进入了竞争非常激烈的“战国”时代。
- 物联网平台竞争进入战国时代
盘点各大物联网平台,你会发现,不同厂家各有各自的优势。阿里云做物联网平台不算早,但是最坚决,在2018年3月的深圳云栖大会上就宣布:“阿里巴巴全面进军 IoT,IoT 是阿里云巴巴集团继电商、金融、物流、云计算之后一条新的主赛道”。三年多时间,让阿里云物联网平台发展到一个新的高度,也成为了物联网平台行业的标杆。这不仅让走了一程的华为改弦易辙,物联网平台接入重新趋同于阿里物联网平台,更让追随者腾讯,几乎完全兼容阿里云物联网平台的操作习惯。并且相对于其他物联网平台公司,由于阿里云一直在物联网平台上深耕,所以平台功能也是最为完善的。但是华为,腾讯绝对不可小觑,华为硬件和AI实力超群,基于端而衍生的物联网平台应用未来可期。而腾讯坐拥当前流量最大的移动应用微信,又在2019年末推出物联网小程序 — 腾讯连连,号称连接一切的腾讯,距离目标的达成似乎也不会太远。目前物联网的发展远不到终局,最终鹿死谁手,花落谁家,还为未可知。
- 面向对象 vs 面向过程
从DOS时代走过来的人学习C/C++语言等编程开发,对面向过程不会陌生,随着开发的程序越来越复杂,和用户的交互越来越多,面向对象的开发方法成为我们编程开发的指导思想。属性,事件,方法,类,接口成为我们理解程序世界的关键词。同样作为物联网开发来说,以前的DTU(串口转网络设备)通信的时代就是面向过程开发的时代,而如今的智能网关,智能设备直接对接物联网平台则是完全的进入了面向对象的物联网开发时代,阿里,华为,腾讯,京东、OneNET等物联网平台的趋同已经深深的说明了这一点。
我几年前在《为行业SaaS云平台,提供物联网接入服务》的PPT中,专门写了一页,再论“组态式”物模型接入优势的内容,这里我们可以结合当下主流物联网平台都已经支持的“物模型”模式,可以更深地理解我说的如下这些内容:
“逻辑物模型”:在设计物模型的时候,一定基于工艺逻辑本身,设计“物模型”,不一定和具体的硬件实体进行一一对应。有了“逻辑物模型”这种设计思想,基于“组态式”接入就有了如下几个优势:
- 底层硬件可以随意更换,有可能是集成若干功能的“复合”设备,也可能是单一功能的设备,甚至是网关实现的虚拟设备。
- 可以适配底层硬件不同的各种现场,甚至是多级通信方式各不相同的现场,让“云端”彻底对底层设备和底层设备连接方式无感。
- 可以即时随“逻辑物模型”的扩展而扩展。比如我们可从一台设备的控制器获取设备本身的一些状态和参数,但是有时候想额外获取设备之外,且和设备相关的数据,比如想知道设备的电流或电压,想知道设备震动系数,想知道设备启或停。我们可以额外添加相关的传感器来获取这些数据。云端“逻辑物模型”可以增加这些属性,底层设备组态可以方便把这些数据成为新“逻辑物模型”的属性,随时可快速打通云和端的数据传递。
正因为我们一直相信这种开发方式一定会深入人心,所以我们基于YFIOs®数据组态(完全面向对象的方式,免代码或少代码实现物联网接入)更容易接入到物联网云平台,并且以更容易理解和操作的方式接入物联网平台。我们的物联网接入硬件和物联网接入系统和各大物联网云平台一起,为各大行业的SaaS厂商奠定了更坚实的物联网硬件接入基础。