应用逻辑
MQTT
TLS
TCP/IP
公有云应用服务器会提供一个 API,1、把数据转到客户自己的应用服务器上。
嵌入式 网站 数据库
阿里云平台汇聚节点端的数据再转发给应用服务器,为了方便各种设备接入,提供不同网络的设备接入方案。例如 2G 3G 4G NB-IoT LoRa 等,来解决异构网络接入管理的痛点。平台还提供多种协议的设备端SDK,目前支持设备以CoAP HTTP MQTT 协议接入。本些列课程会讲解两种方式的MQTT接入阿里云平台。
一个适用于存储和计算资源受限的设备(不带TLS),资源受限的设备使用原生的MQTT客户端接入 ,这里采用的是 Pahoo mqtt 客户端协议栈,由于节点设备存储资源有限,该连接方式不带TLS,数据格式来说,为了传输效率尽量简洁高效,节点和用户服务器端事先约好了数据负载的格式。由IOT平台管理和转发的主题也是事先约好的。
另一种适用于资源相对丰富的节点设备,如果节点端的应用逻辑复杂度到了一定程度,通常会使用RTOS,并基于 Linkkit SDK 这个由阿里云提供给设备厂商的SDK连接到阿里云iot平台,linkkit的信息以及如何使用会在之后介绍。另外,在丰富的设备中安全连接是一个重要的考量。因此在这个场景会支持TLS,还有是在阿里云IOT平台上,我们采用设备管理的高级版(物管理中的物模型),一旦物模型固定了,双方要处理的消息主题,消息负载的格式就确定下来。
Web端的应用开发
分为后端开发和前端开发两个部分。开发语言和运行环境也大不相同,后端开发核心是基于阿里云iot平台提供的http/2 SDK订阅能力。通过运行在springboot上的 http/2 sdk,服务端程序可以实时接收到设备上报的数据。并通过mybatis数据持久化框架将数据存储到mysql数据库中,供系统管理与查询。同时基于springboot开发的api服务将数据查询与管理的能力与http协议的接口开放出来,供前端程序请求调用。
前端开发是基于阿里巴巴开源的 流行框架 UMI和 AntD,其中AntD提供高质量的UI组件,可以使得开发者通过组件搭配快速开发出页面。UMI负责处理前端应用程序的编译打包,以及页面路由。前端组件是基于流行的React架构,交互友好并且相应迅速。
JDK8 是 java的开发工具包,是后端开发必不可少的环境工具
IntelliJ IDEA 是代码集成开发工具,自带包管理方便应用。
nodejs 是高性能的JavaScript的运行环境
mysql是最流行的数据库软件,在项目中用于存放项目上报的各类数据
Navicat for MySQL是·图形化操作MySQL的开发软件,VScode用于编辑前端项目代码。Git是分布式的代码管理软件,本例程中用于设备备份与实例代码下载。
来源:oschina
链接:https://my.oschina.net/u/4288691/blog/4944898