阿里、蚂蚁、晟腾、中科加禾精彩分享 AI 基础设施洞见,现购票可享受 9 折优惠 |AICon 了解详情
写点什么

如何开发物联网应用?

  • 2019-11-05
  • 本文字数:2318 字

    阅读完需:约 8 分钟

如何开发物联网应用?

物联网应用是设备管理、故障监测、数据分析的重要工具。本文介绍如何基于物联网平台开发应用,包括 API、SDK 和图形化开发三种方式。

01 整体方案

物联网应用是企业和开发者进行设备管理、告警 &故障监测、业务监控、数据分析的重要工具。物联网平台屏蔽了设备接入的复杂性和协议的差异性,解耦应用与设备,为上层应用提供统一格式的数据,简化终端厂商开发的同时,也让应用提供商聚焦于自身的业务开发。基于华为物联网平台的应用开发方案如下。



应用服务器作为应用侧的业务处理核心,分析物联网平台推送的设备消息,并根据分析结果与应用客户端进行交互,完成业务处理。


不同企业,即使针对同一产品,业务逻辑也可能不同,应用开发往往定制性较高。基于该现状,华为物联网平台提供了三种不同的开发方式。

02 三种开发方式

基于华为物联网平台,您可通过 API、SDK 或图形化 SaaS 服务(OceanBooster)开发应用。同时配套多样化的开放套件,满足不同合作伙伴所需。



三种开发方式对比如下:


03 基于 API 开发物联网应用

【物联网需要哪些 API】

基于华为对 IoT 产业的深入理解,物联网平台提供通用的 API,覆盖完整的物联网设备管理能力。API 采用标准 Restful 风格,易于开发者使用,降低 IoT 技术门槛。应用开发人员基于 API 接口开发所需的行业应用,如智慧城市、智慧园区、智慧工业等行业应用,满足不同行业的需求。常用的物联网 API 包括:


  • 应用安全接入: 应用服务器通过调用这两个接口获取鉴权令牌,保证调用安全,也是调用平台其他 API 的前提。

  • 设备管理: 本部分接口提供设备管理的相关功能,包括注册设备,删除设备,修改设备信息、位置信息等。

  • 数据采集: 数据采集接口提供设备的查询、批量设备查询、设备历史数据和历史命令的查询、设备能力查询。

  • 订阅管理: 应用通过调用物联网平台的订阅接口订阅设备数据变化通知。

  • 命令下发: 本部分接口提供命令的创建、删除、查询、批量创建等功能。

  • 批量处理: 您可以创建批量处理任务,目前批量处理接口仅提供批量创建命令的能力。

  • 设备组管理: 在对设备进行某些操作时,例如升级设备软固件、批量下发命令等,可通过设备组来指定要进行操作的设备。

  • 设备升级: 若需要对设备进行软固件版本升级,应用服务器可调用本部分接口为多个设备创建升级任务。

【API 调测工具有哪些】

使用 API 调测工具,可以快速上手进行 API 测试,不需要学习新的语言,并且没有太大的学习投入成本,可用于探索性测试或自动化测试。常用的 HTTP 调测工具有 Postman、REST Assured、Hitchhiker、Jmeter、Firefox RestClient/HTTP Request 等。调测物联网平台接口,推荐使用 Postman 和 Firefox RestClient。


  • Postman: 支持 Chrome 插件,也支持客户端版本。拥有较多集成工具,例如 Swagger 和 RAML 格式,可以运行、测试,并拥有文档和监控功能,部分扩展是收费的。

  • REST Assured: 是一个可以简化 HTTP Builder 顶层基于 REST 服务的测试过程的 Java DSL(针对某一领域,具有受限表达性的一种计算机程序设计语言)。但仅限于 Java 使用。

  • Hitchhiker: 一款开源的支持多人协作的 Restful API 测试工具,支持自动化测试,数据对比。

  • Jmeter: 基于 Java 的压力和性能测试工具,同时也包含进行 API 测试的所有功能。如果您在测试性能时也进行 API 测试,Jmeter 是首选。

  • Firefox RestClient: 仅支持 FireFox 插件,非常小巧,操作简单,使用方便,但扩展功能较少。

04 基于 SDK 开发应用

为了降低应用侧的开发难度、提升应用侧开发效率,物联网平台向应用侧开放了丰富的 SDK 包。SDK 支持 Java、PHP 和 Python。SDK 开发请参考开发指南。

05 基于图形化 SaaS 服务开发应用

OceanBooster 是一种图形化的应用开发 SaaS 服务,通过拖拉拽即可完成应用开发。OceanBooster 提供以下主要功能,如何开发请参考 OceanBooster 使用指南。


  • 图形化开发: 提供图形开发界面,将物联网平台开发给北向应用的接口能力包装成一个个功能丰富且方便易用的组件,用户无需掌握编程知识,只需在画布上摆放并定制组件即可完成应用的开发。

  • 无缝对接平台: 与物联网平台无缝对接,可直接从产品中心导入产品模型,通过组件配置面板选择属性或命令即可完成设备数据上报和命令下发的配置。

  • 行业应用模版: 提供行业应用模版,选择模版后可直接创建一个提供了大量行业特色功能的应用,并允许用户自由编辑定制,满足行业用户需求的同时大大缩短开发周期。

  • 基础功能模块: 提供大量基础功能模块,一个基础功能模块就是一个不可编辑的功能页面,提供物联网平台的通用基础功能,添加即可试用,无需额外的开发。

  • 服务完全托管: 开完完成的应用可一键式直接部署在 IoT 平台上,用户无需额外准备自己的服务器。发布时可指定域名,后续所有人均可通过域名访问应用。

06 如何搭建应用服务器

基于 API 和 SDK 开发应用时,都需要搭建应用服务器,搭建应用服务器有以下 3 种方案。


  • 弹性云服务器 ECS: 是一种可随时自助获取、可弹性伸缩的云服务器,帮助用户打造可靠、安全、灵活、高效的应用环境。用户无需关注硬件,即租即用,按使用量付费,易扩容;建设周期短,上线快。同时 ECS 提供全套管理维护工具,简化部署和维护的步骤。搭建指南请参考基于 ECS 和软件开发平台搭建智慧路灯应用。

  • 本地服务器: 需要企业自行购买、配置和管理服务器。自由度高,但建设周期长,系统上线慢,需要企业自行维护。

  • 本地 PC: 一般仅用于开发者在调试时使用,需要 PC 一直开机,程序持续运行。


需要特别注意的是,应用服务器需要使用公网地址,例如订阅推送、应用客户端访问等场景。如果使用公司或校园的局域网,要进行 NAT 穿越。


本文转载自公众号华为 IoT 云服务(ID:hwiot0601)。


原文链接:


https://mp.weixin.qq.com/s/VguoMSD0X8xtZaQ-7XBMCA


2019-11-05 15:151488

评论

发布
暂无评论
发现更多内容

Collections和Objects的使用注意

zarmnosaj

5月月更

【LeetCode】一次编辑Java题解

Albert

LeetCode 5月月更

前缀和算法

工程师日月

算法 5月月更

一份让面试官满意的简历究竟要做到什么

宇宙之一粟

简历模板 简历 5月月更

Redis「2」缓存一致性与异常处理

Samson

Redis 核心技术与实战 学习成长 5月月更

学生管理系统(2)

5月月更

使用 Amazon Cloud WAN 构建您的全球网络

云物互联

云计算 AWS Cloud WAN

Cocos Creator学习の有限状态机

空城机

Cocos 5月月更

druid 源码阅读 4——走一个单测看sql运行

张大彪

为什么花大本钱培训后,研发团队的表现还是很差?

高山

培训 CMMI 培训效果

Druid连接池源码阅读04

石小天

干货| 四种渲染到底是啥?终于有人讲明白了!(上)

Orillusion

开源 WebGL 元宇宙 Metaverse webgpu

【愚公系列】2022年05月 二十三种设计模式(十三)-职责链模式(Chain of Responsibility Pattern)

愚公搬代码

5月月更

[数据分析实践]-音频分析-BirdCLE-2

浩波的笔记

人工智能 机器学习 数据分析

数据库连接池 -Druid 源码学习(四)

wjchenge

Druid 数据库连接池

druid源码学习四-多线程之锁探究

Nick

Apache Druid 锁机制 多线程安全

FLV封装格式

Loken

音视频 5月月更

Docker下的OpenResty三部曲之三:OpenResty加Tomcat的服务

程序员欣宸

Kubernetes openresty 5月月更

如何备份 WordPress 数据库

海拥(haiyong.site)

WordPress 5月月更

网站开发进阶(六十三)详解CSS3中的calc()

No Silver Bullet

css3 5月月更 calc()

面向CV编程:COPY了别人文章中的代码,想让代码能像作者一样跑通,应该注意什么呢?怎样才能让代码愉快地跑起来呢

迷彩

读书笔记 高效工作 程序员 个人思考 5月月更

周日直播,龙蜥社区等8位专家在线报告 | 2022大学生操作系统大赛培训会

OpenAnolis小助手

操作系统 人才培养 大学生 龙蜥社区

Maven 项目

Emperor_LawD

maven 5月月更

【刷题第八天】11. 盛最多水的容器

白日梦

5月月更

在Flutter中使用WillPopScope

坚果

5月月更

看 AWS 如何通过 Nitro System 构建竞争优势

云物互联

云计算 AWS DPU 硬件虚拟化技术

设计模式之原型模式

乌龟哥哥

5月月更

反向代理 413 Request Entity Too Large 问题

HoneyMoose

从相亲来看Flutter 的 StatefulWidget 和 StatelessWidget

岛上码农

flutter ios开发 安卓开发 跨平台应用 5月月更

使用声网 SDK 为Android APP添加视频直播

声网

android 教程 视频直播

覆盖 70% 核心业务,ShardingSphere 如何成为喜马拉雅架构演进的催化剂

SphereEx

Apache 数据库 开源 ShardingSphere SphereEx

如何开发物联网应用?_5G/IoT_华为IoT云服务_InfoQ精选文章