【我的物联网成长记3】如何开发物联网应用?【华为云技术分享】

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

-------------------整体方案-------------------

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

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

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

----------------三种开发方式----------------

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

三种开发方式对比如下:


开发方式


优势


不足


适用场景


调用API接口

  • 开发灵活,随需调用API接口。
  • 对于应用开发语言无限制,支持所有的开发语言。
  • 开发工作量、开发难度相比集成SDK大。
  • 应用上线周期相对较长。
  • 需要额外购买服务器资源。
  • 企业开发能力强,需灵活使用物联网平台的能力。
  • 企业已有应用服务器,需要对接物联网平台。

集成SDK

  • 代码开发工作量较小,开发能力的门槛相比直接调用API接口较低。
  • 开发周期短。
  • 与直接调用API接口相比,开发的灵活性稍差。
  • 开发语言仅支持Java、PHP和Python。
  • 需要额外购买服务器资源。

图形化SaaS开发

  • 应用开发操作图形界面化,操作简便。
  • 提供典型场景的应用模板,应用十分钟快速上云。
  • 直接托管在华为云,无需购买额外的服务器资源。
  • 可扩展性差,只能使用平台提供的功能组件。
  • 仅支持Web应用

企业对应用的个性化的定制要求不高,需要快速构建和上线应用。

--------------基于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插件,非常小巧,操作简单,使用方便,但扩展功能较少。

-------------------基于SDK开发应用-------------------

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

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

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

  • 图形化开发:提供图形开发界面,将物联网平台开发给北向应用的接口能力包装成一个个功能丰富且方便易用的组件,用户无需掌握编程知识,只需在画布上摆放并定制组件即可完成应用的开发。
  • 无缝对接平台:与物联网平台无缝对接,可直接从产品中心导入产品模型,通过组件配置面板选择属性或命令即可完成设备数据上报和命令下发的配置。
  • 行业应用模版:提供行业应用模版,选择模版后可直接创建一个提供了大量行业特色功能的应用,并允许用户自由编辑定制,满足行业用户需求的同时大大缩短开发周期。
  • 基础功能模块:提供大量基础功能模块,一个基础功能模块就是一个不可编辑的功能页面,提供物联网平台的通用基础功能,添加即可试用,无需额外的开发。
  • 服务完全托管:开完完成的应用可一键式直接部署在IoT平台上,用户无需额外准备自己的服务器。发布时可指定域名,后续所有人均可通过域名访问应用。

-------------如何搭建应用服务器--------------

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

  • 弹性云服务器ECS:是一种可随时自助获取、可弹性伸缩的云服务器,帮助用户打造可靠、安全、灵活、高效的应用环境。用户无需关注硬件,即租即用,按使用量付费,易扩容;建设周期短,上线快。同时ECS提供全套管理维护工具,简化部署和维护的步骤。搭建指南请参考基于ECS和软件开发平台搭建智慧路灯应用
  • 本地服务器:需要企业自行购买、配置和管理服务器。自由度高,但建设周期长,系统上线慢,需要企业自行维护。
  • 本地PC:一般仅用于开发者在调试时使用,需要PC一直开机,程序持续运行。

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

往期回顾:【我的物联网成长记1】如何进行端到端开发?

【我的物联网成长记2】设备如何进行选型?

作者:我是卤蛋

原文地址:https://www.cnblogs.com/huaweicloud/p/12016432.html

时间: 2024-10-10 02:56:44

【我的物联网成长记3】如何开发物联网应用?【华为云技术分享】的相关文章

【华为云技术分享】基于小熊派STM32芯片的通过MQTT上报JSON数据到华为物联网平台的自动售货机Demo解析

[摘要] STM32的工程在文章末尾,可自行下载. 一.工程配置 1.MCU类型选择STM32L431RC 2.烧录器选择OpenOCD,参数 -f interface/stlink-v2-1.cfg -f target/stm32l4x.cfg 3.输出目录选择 LiteOS_Lab_STM32\targets\STM32L431_BearPi\GCC\appbuild 4.编译器Makefile选择 targets\STM32L431_BearPi\GCC\Makefile 5.平台参数配置

华为云实战开发】5.如何快速创建免费Git代码仓库【华为云技术分享】

1 文章目的 本文主要帮助已经掌握或者想要掌握Git的开发者,如何更好的应用Git,以及更好的将Git与DevCloud结合应用. 2 概述 2.1 版本控制系统介绍 从狭义上来说,版本控制系统是软件项目开发过程中管理代码所有修订版本的软件,能够存储.追踪文件的修改历史,记录多个版本的开发和维护,事实上我们可以将任何对项目有帮助的文档交付版本控制系统进行管理.版本控制系统(Version Control Systems)主要分为两类,集中式和分布式. 2.1.1 集中式版本控制系统 集中式版本控

【华为云技术分享】漫谈LiteOS之开发板-中断(基于GD32450i-EVAL)

[摘要] 主要讲解物联网技术的积累,学习了第一集串口之后,相信大家对整个开发板的应用已有大致了解,本期讲解第二集中断,本文从中断定义.意义以及中断处理过程.分类.以及中断的示例对中断加以介绍,希望对你有帮助. 1 什么是中断? 我们来举个例子,小明在厨房用煤气烧水需要5分钟,主要动作包括接水.打开煤气.等待水开,关闭煤气.在等待水开的过程,快递员来送快递,小明开门签收.在这一系列动作中就是一个中断过程.具体如下; (1)小明:CPU (2)烧水:主程序 (3)门铃响:中断信号 (4)开门发现是快

【华为云技术分享】小熊派华为物联网操作系统LiteOS裸机驱动移植02-LCD驱动移植及使用

1. LCD裸机驱动 小熊派开发板使用的LCD屏幕为1.3寸的TFT彩屏,色彩深度16bit,分辨率240*240,使用 SPI 接口与 MCU 之间通信. 如果你对裸机玩转LCD屏幕还不熟悉,请先阅读这篇文章: 2. 移植LCD裸机驱动到LiteOS 如果你对移植裸机驱动到LiteOS的方法还不了解,请先阅读这篇文章: 复制裸机驱动文件到LiteOS工程 LCD的底层是使用SPI驱动的,那么除了 STM32CubeMX 生成的spi.h和spi.c文件,还需要自己在此基础上手写LCD屏幕的驱动

【华为云技术分享】Rust 算法排位记 - 插入排序的图示和代码实现

Rust 代码在编写过程中与其它语言的略有不同,因为它的编译器不允许有任何不安全的写法,遂代码编写过程中花费时间最长的莫过于查找编译报错的原因.这样也有好处——代码写好之后,稳定性高得一笔! 以下是来自菜鸟教程中的排序定义和动图示意: 插入排序(英语:Insertion Sort)是一种简单直观的排序算法.它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入. 我们来捋一捋,插入排序的主要逻辑为: 外循环先指定一个数,通常是第一个数 接着在内循环中将这个

由浅入深了解NB-IoT | 我的物联网成长记

[摘要] 什么是NB-IoT?NB-IoT有什么优势?NB-IoT能做什么?本文将会从NB-IoT技术的发展历程,技术特点,通信协议,应用场景等方面为您全方面解读NB-IoT技术,了解NB-IoT的独特魅力. 相信很多接触过物联网的人都听过NB-IoT的名字,但NB-IoT到底是什么,它和物联网又是什么关系呢?本文接下来就会为您回答这些疑问,由浅入深,一步步带您走进NB-IoT. 物联网顾名思义,就是各种物(设备)连入网络,而根据应用场景不同,不同设备对网络速率的要求也不同.根据专家预测,202

如何进行端到端开发? | 我的物联网成长记

作者 | 我是卤蛋 [摘要] 自从华为物联网平台推出以来,很多开发者都在后台咨询小编设备如何上云等问题,我忍不住了,花了两天两夜,整理出“如何进行端到端开发”,帮助您快速了解设备上云全流程. 开始之前,先了解物联网平台的整体方案.使用物联网平台构建一个完整的物联网解决方案主要包括3部分:物联网平台.业务应用和设备. ---------------------------整体方案--------------------------- 物联网平台:作为连接业务应用和设备的中间层,屏蔽了各种复杂的设备

【我的物联网成长记】OceanConnect物联网平台概念全景

作者 | 我是卤蛋 华为云OceanConnect IoT云服务包括应用管理.设备管理.系统管理等能力,实现统一安全的网络接入.各种终端的灵活适配.海量数据的采集分析,从而实现新价值的创造. 华为云OceanConnect IoT云服务不仅可以简化各类终端厂家的开发,屏蔽各种复杂设备接口,实现终端设备的快速接入:同时面向各行业提供强大的开放能力,支撑各行业伙伴快速实现各种物联网业务应用,满足各行业客户的个性化业务需求. 我们将会用一系列文章为大家介绍一下华为云OceanConnect 物联网平台

8招带你玩转规则引擎 | 我的物联网成长记

[摘要] 华为云物联网平台提供的规则引擎包括数据转发和设备联动等多种能力,这些能力都要怎么使用?本文教您8招最常用的用法,带您玩转规则引擎. 规则引擎是华为云物联网平台提供的一种能力,用户对接入平台的设备设定相应的规则,在条件满足所设定的规则后,平台会触发相应的动作来满足用户需求.规则引擎包含数据转发和设备联动两种类型. 数据转发规则:物联网平台支持将设备上报的数据(和设备信息)转发至其他云服务,包括数据接入服务DIS.对象存储服务OBS.企业集成平台ROMA等,并支持对转发的数据进行过滤. 设