【個人物聯網成長記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】設備如何進行選型?

做者:我是滷蛋

相關文章
相關標籤/搜索