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

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

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

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

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

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

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

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

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

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

三种开发方式对比如下:

开发方式

优势

不足

适用场景

调用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】设备如何进行选型?

作者:我是卤蛋

相关推荐