立即领取|华润集团、宁德核电、东风岚图等 20+ 标杆企业数字化人才培养实践案例 了解详情
写点什么

如何开发物联网应用?

  • 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:151593

评论

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

第十一周学习总结

晴空万里

console.log也能插图!!!

德育处主任

CSS html 大前端 Web js

微服务缓存原理与最佳实践

万俊峰Kevin

缓存 缓存穿透 缓存并发 go-zero Go 语言

史上最强鸿蒙教程来袭!2021年最新Android面试精讲,赶紧收藏!

欢喜学安卓

android 程序员 面试 移动开发

消息队列优化(3) -- grpc MPMCQueue 简介及各队列性能对比

1412

消息队列 workflow srpc 异步调度 并行计算

架构师训练营第2期 第11周命题作业

月下独酌

十一、高可用

Geek_28b526

呃?!!!我彻底忘了这件事😂

Nydia

判断回文数字算法,swift 5初始化详解,时间管理计划落地,swift5 多线程高级用法 John 易筋 ARTS 打卡 Week 33

John(易筋)

ARTS 打卡计划 算法回文数字判断 时间管理计划落地 swift5 初始化详解 swift5多线程高级用法

Week11 安全稳定

evildracula

学习 架构

架构师第一周总结



架构师 01 期,大作业一

子文

与前端训练营的日子 --Week10

SamGo

学习

UDP连接要不要发起connect

kof11321

网络编程

江苏民丰 x mPaaS | 县域小银行,技术团队就12人,却找到了数字化转型的秘籍

蚂蚁集团移动开发平台 mPaaS

银行数字化转型 mPaaS

我画了 40 张图就是为了让你搞懂计算机网络层

苹果看辽宁体育

计算机网络 IP 网络层 ipv6 ipv4

第 11 周 系统架构作业

心在那片海

第 11 周 系统架构总结

心在那片海

Week1 作业

oooh-la

架构师训练营 week11 课后作业

花果山

消息队列优化(2) -- 几种基本实现

1412

消息队列 workflow srpc 异步调度 并行计算

第六周学习总结

Binary

架构师训练营第2期 第11周总结

月下独酌

这样规范写代码,同事直呼“666”

xcbeyond

Java 代码规范 规范

谁说明天上线,这货压根不知道开发流程!

小傅哥

Java 小傅哥 架构设计 开发流程 开发规范

关于一个梦(自我的死亡)

Yuchen

身心健康 心理 自我

极客时间架构师培训 1 期 - 大作业一

Kaven

极客时间架构师培训 1 期 - 大作业二

Kaven

Week 11 作业

evildracula

消息队列优化(1) -- 鶸的介绍篇

1412

消息队列 workflow srpc 异步调度 并行计算

万字长文聊缓存(上)

Silently9527

Java nginx HTTP

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