写点什么

如何开发物联网应用?

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

评论

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

低代码与智能化办公:解锁工作效率的新纪元

不在线第一只蜗牛

人工智能 低代码 数字化 智能化 智能办公

云原生场景下,AIGC 模型服务的工程挑战和应对

阿里巴巴云原生

阿里云 云原生

通过python封装1688商品跨境属性API接口文档

tbapi

Python爬虫 1688API 1688商品跨境属性接口

重磅发布!基于百度飞桨的《人工智能基础及应用》书籍正式上线

飞桨PaddlePaddle

人工智能 机器学习 深度学习 百度飞桨

典型场景解析|PolarDB分布式版如何支撑SaaS多租户?

阿里云瑶池数据库

数据库 阿里云 SaaS 多租户

掌握 C# 变量:在代码中声明、初始化和使用不同类型的综合指南

小万哥

C# .net 程序人生 软件工程 后端开发

如何在 Ubuntu / Raspbian 上安装 PostgreSQL

HoneyMoose

网络安全中的人工智能:保护未来数字世界的利剑

快乐非自愿限量之名

人工智能 低代码 AI技术 智能化

左耳听风 - 高效沟通「读书打卡 day 09」

Java 工程师蔡姬

读书笔记 程序员 个人成长 沟通 职业发展

发现一款提高工作效率的利器——ONLYOFFICE办公软件

袁袁袁袁满

人工智能 Office 自动化办公

如何做标准化?| 京东云技术团队

京东科技开发者

【深入挖掘Java技术】「源码原理体系」盲点问题解析之HashMap工作原理全揭秘(下)

洛神灬殇

Java hashmap HashMap底层原理 2024年第十四篇文章

2024-01-17:lc的30. 串联所有单词的子串

福大大架构师每日一题

福大大架构师每日一题

申请开启|成为亚马逊云科技 Community Builder,共建云端社区!

亚马逊云科技 (Amazon Web Services)

数据库

了解一下Java21的VirtualThread

袁世超

虚拟线程 Java21

电商通讯服务

cts喜友科技

通信 通讯

vivo智能活动中台-悟空系统建设之路

vivo互联网技术

低代码 活动中台 AIGC技术探索

C-Shopping基于Next.js,开源电商平台全新亮相

Geek_9da61c

nodejs nextjs Redux Tailwind reactjs

相比于 Jira,极狐GitLab 的敏捷项目管理是怎样的?

极狐GitLab

云图说丨安全云脑:开箱即用的安全运营体验

华为云开发者联盟

安全 华为云 华为云开发者联盟 华为云云图说 安全云脑

在线白板软件哪个好?2024年不要错过这7款高效神器!

彭宏豪95

效率工具 在线白板 在线协作 效率软件 boardmix

淘宝商品列表数据怎么导出

tbapi

淘宝电商 淘宝商品数据接口 taobao agent system

修复uni-simple-router@2.0.7版本query参数为null时的bug

达摩

uni-app Vue uni-simple-router

行云部署前端架构解析-前言 | 京东云技术团队

京东科技开发者

模型服务网格:云原生下的模型服务管理

阿里巴巴云原生

阿里云 云原生 服务网格

流式传输 VR 和 AR 内容——实时云渲染服务

3DCAT实时渲染

实时渲染 实时云渲染 云流化

2023 IoTDB Summit:北京城建智控科技股份有限公司高级研发主管刘喆《IoTDB 在城市轨道交通综合监控系统中的应用》

Apache IoTDB

IT行业,抢滩大模型

脑极体

AI IT

使用Docker安装MongoDB数据库

emanjusaka

mongodb Docker 迁移

IDC 23Q3 数据发布 XSKY 对象存储软件市场份额继续蝉联第一!

XSKY星辰天合

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