应用逻辑

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是分布式的代码管理软件,本例程中用于设备备份与实例代码下载。

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐