【个人物联网成长记3】如何开发物联网应用?

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

-------------------总体方案-------------------

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

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

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

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

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

三种开发方式对好比下:api

开发方式安全

优点服务器

不足工具

适用场景post

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

做者:我是卤蛋

相关文章
相关标签/搜索