阿里云「飞天发布时刻」2024来啦!新产品、新特性、新能力、新方案,等你来探~ 了解详情
写点什么

如何开发物联网应用?

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

评论

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

架构实战训练营模块1作业--开启架构之旅

阿姆斯壮

架构实战营 #架构实战营

LED显示屏价格与品质哪个更重要

Dylan

LED LED显示屏 led显示屏厂家

开发者测评:相比 Harbor,我选择 ACR 的三点原因

阿里巴巴云原生

阿里云 Kubernetes 容器 云原生 ACR

数据产品经理那点事儿二(合集)

松子(李博源)

大数据 深度思考 高效工作

旷世巨作!20多位架构师携手打造的“Java 面试核心宝典”限时开源

Geek_0c76c3

Java 数据库 开源 程序员 架构

中心化决议管理——云端分析

字节跳动终端技术

ios 研发效能 CocoaPods 制品库 云化服务

融云x白鲸《2022社交泛娱乐出海白皮书》

融云 RongCloud

互联网 白皮书 融云

java基础面试题

钟奕礼

编程 java;

一比一手写迷你版vue,彻底搞懂vue运行机制

hellocoder2029

JavaScript

开发者有话说|成长之路

六月的雨在InfoQ

个人成长 开会 996 007 9月月更

字节、美团、滴滴以及蚂蚁金服Java后端面试过程

收到请回复

Java 程序员 面试 项目 语言 & 开发

信创升级 | 秒云与人大金仓完成兼容性互认证

MIAOYUN

数据库 信创 国产数据库 信创云 容器云平台

5G网络行业切片SLA初探

鲸品堂

5G 网络切片

2022届秋招Java岗高频面试题盘点,老司机也未必全会,真的太卷了

钟奕礼

Java 面试 java;

阿里云服务器ECS基本操作指南

六月的雨在InfoQ

阿里云 SSH xshell 云服务器ECS 9月月更

模块一作业

IP地址和MAC地址都可以确定目标地址,为什么二者都在使用,舍弃一个是否可行?

阿柠xn

Mac IP 网络 协议族 9月月更

概述数据交换的构建策略

穿过生命散发芬芳

数据交换 9月月更

数据产品经理那点事儿三(合集)

松子(李博源)

大数据 深度思考 高效工作 数据产品经理

为什么大数据工程师比数据科学家的需求更大

雨果

数据工程师

【编程基础】利用Python实现阿姆斯特朗数的求解

迷彩

Python 9月月更 阿姆斯特朗数 水仙花数

Fluid 助力阿里云 Serverless 容器极致提速

阿里巴巴云原生

阿里云 Serverless 云原生 Fluid ASK

软件开发正确打开方式:低代码+微服务

力软低代码开发平台

龙湖千丁基于 ACK@Edge 的云原生智慧停车系统架构实践

阿里巴巴云原生

阿里云 Kubernetes 云原生

数据API开发如何快速上手:先了解什么是数据API生命周期管理

雨果

API 数据api

Java | this和super关键字【深入理解子类和父类的继承关系】

Fire_Shield

super this 9月月更

SAE 助力贵州酒店集团从容支撑贵州特产抢购

阿里巴巴中间件

阿里云 Serverless 云原生 SAE

你用对了么?对象文件网关 VS 分布式文件存储

焱融科技

云计算 分布式系统 对象存储 高性能 文件存储

NFTScan 与 Banksea Finance 在 NFT 源数据层面达成战略合作

NFT Research

区块链 NFT 合作 web3

HTTP - TLS1.3 初次解读

懒时小窝

手写vue-router核心原理

hellocoder2029

Vue

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