如今網上討論的有關物聯網的帖子很是之多,但大部分都是介紹理論或者有關硬件,通信相關的問題,好比物聯網模塊,物聯網通信協議MQTT、XMPP、NB_IOT等,我的認爲這些只是物聯網中一部分,而涉及到物聯網的設備如何管理,用戶如何管理,數據包如何解析,大數據如何展現等也是物聯網模塊中很是重要的部分,因此做者就根據自身工做中總結出來的建構在雲端的物聯網平臺基本架構分享給你們,並基於此架構如何一步一步來開發一套物聯網平臺。mysql
物聯網平臺,應該是基於如今的互聯網,通信技術來建構,而不依賴與特定的硬件模塊,用戶能夠基於自身的設備技術架構,簡單輕鬆接入物聯網。下圖是物聯網的核心架構:sql
1. 四大核心模塊數據庫
在物聯網中存在4大核心模塊,那就是設備管理,用戶管理,數據傳輸管理,數據管理,只有具有了這四大核心模塊,才能認爲是一個完整的物聯網平臺,而全部其餘的功能模塊都是基於此四大功能模塊的延展。後端
1.1 設備管理服務器
設備類型管理:定義設備的類型,此功能通常由設備的製造商來定義,一種設備類型最重要的是關聯到一套獨有的數據解析方法,數據的存儲方法,已經設備規格等數據,也只有設備的製造商才能夠編輯有關設備類型的數據,而設備的使用者只能瀏覽設備類型的相關信息
設備管理:設備管理定義設備相關信息,每一個設備必須定義其設備類型,設備類型有使用者屬性,設備在完成銷售,並被使用者激活後設備就屬於設備使用者了,這時候設備使用者對設備有徹底的控制權,能夠控制設備的哪些數據能夠被製造商查看,能夠被哪些用戶查看等權限
1.2 用戶管理微信
組織管理:在物聯網平臺中一個很重要的觀念就是組織,全部的設備,用戶,數據都是基於組織的管理的,設備製造商是一個組織,設備的使用者是一個組織,家庭均可以是一個組織。
用戶管理:用戶是基於一個組織下的人員構成,每一個組織下面都有管理員角色,管理員能夠爲其服務的組織添加不通的用戶,並分配每一個用戶不一樣的權限。一個用戶也能夠屬於多個不一樣的組織,而且扮演不一樣的組織
用戶組:一組用戶,也是基於組織的用戶組管理,同一用戶組的用戶擁有相同的權限
權限管理:一樣是基於組織的權限管理,主要是針對對象級別的權限細分,如設備的瀏覽權限,能夠控制每一個用戶是否看到這個設備;設備數據瀏覽權限定義是否能夠查看設備的運行數據
1.3 數據傳輸管理網絡
1.31 基本格式架構
數據傳輸管理,定義針對一類型設備的數據傳輸協議,基本格式是:分佈式
每個設備有廠商惟一的序列號,由於每一個製造商有本身的編碼格式,固此序列號沒有固定格式。
命令碼,爲此條數據的做用,好比是上傳數據,或者服務器下發給設備的命令等,通常採用2位數字編碼00~99
數據,此部分是此條報文,所包含的數據部分,每一個協議能夠定義不一樣的解析方式,好比服務器在收到數據包後,會根據預先定義好的解析方式解析數據字段,並按照規則存儲
1.32 數據解析定義
大數據
每種設備類型能夠定義多條命令,每一個命令都有本身不一樣的解析方式,組織的管理員能夠爲本身的設備類型定義解析方式
服務器接收到數據後,會自動根據預先定義的解析方式解析數據字段
設備開發者要根據在IOT平臺定義的數據格式,自行開發本身設備的解析代碼
數據字段都按照HEX方式收發
1.33 數據的存儲
存儲要支持分佈式架構,能夠爲每一個設備定義不一樣的存儲位置,在diego iot中數據存儲使用mysql數據庫,實現不一樣的設備存儲在不一樣的mysql數據庫中
每條數據定義生命週期,在生命結束後,系統將自動刪除
1.4 數據管理
權限管理,數據的權限在物聯網平臺中是相當重要,數據屬於誰是一個很是重要的概念,只有設備的擁有者才能定義數據能夠給誰看
大數據,物聯網數據自己就是海量的數據,咱們能夠藉助一些開源的大數據平臺來實現數據的可視化分析,只有通過分析的數據纔是有價值的數據
數據的導出,用戶能夠導出數據到本地作分析
2.網絡通信
如今全部的雲端的物聯網平臺和設備之間的通信,本質上都是建構在TCP/IP協議之上的,只是對數據包的再封裝而已,基於此咱們能夠是用wifi,4g來實現設備和雲平臺的通信,不過設備與設備之間的通信,能夠有wifi,Bluetooth,zigbee等,下面介紹幾種經常使用的通信架構
2.1 基於移動3/4G通信
此架構是最簡單的架構,設備就如同咱們的手機,基於移動通信來上網,其主要須要考慮以下幾點
每一個設備都須要一個SIM卡,能夠到移動服務器商辦理專門針對物聯網的SIM卡
數據流量問題,這種架構徹底是走數據流量,若是有視頻數據,將會產生比較大的流量費用,這都是要考慮的
通信質量問題,這徹底依賴於移動服務商的網絡覆蓋情況,就如同咱們手機同樣,在有些環境下是沒有信號的,也就沒辦法收發數據
2.2 基於wifi局域網
此中架構,適合於全部的物聯網設備都是運行在一個局部環境中,設備經過wifi或者有線鏈接到路由器,而由路由器統一鏈接的物聯網服務器,就如同咱們家中裝一個wifi路由器上網同樣的架構,須要注意的事項:
局域網內的智能設備,是沒有公網獨立的ip的,只有一個局域網內的ip,帶來的問題就是,設備能夠直接給物聯網服務器發送數據包,而物聯網服務器是不能直接給設備發送數據包,就由於設備沒有公網獨立ip
功耗問題,對於使用wifi接入的設備,最好不是電池供電,由於wifi的功耗比較大
干擾問題,若是在大型的廠房部署這種架構,必定要考慮,廠房內是否有強幹擾源,如電磁干擾,能夠考慮採用工業級的無線路由器,通常抗干擾能力比較強
2.3 基於藍牙通信
通常的基於藍牙的物聯網,會考慮經過藍牙網關來部署
藍牙因爲其點對點的通信方式,因此要考慮以下問題:
藍牙網關的容量問題,也就是一個藍牙網關能接入幾個藍牙設備,這取決於藍牙網關中使用了多少個藍牙設備
藍牙的配對問題,藍牙設備直接的通信都首先配對才能通信,若是實現自動配對,若是不能自動配對,大規模部署,將是一個很麻煩的事情
還有一種場景是針對不須要一直在線的物聯網設備,而只是在某種特殊需求的狀況下,須要連上服務器,這中場景下,咱們能夠經過手機的藍牙功能來讓設備接入物聯網
藍牙手環是這種架構的一種典型應用模式
2.4 基於zigbee
ZigBee也是一種流行的組網模式,zigbee自己設計是針對傳感器之間的聯網,具備很是強的低功耗能力
zigbee接入網絡也依賴於zigbee網關,網關自己也是一個zigbee設備,zigbee設備是自組網的,在使用過程當中注意的問題有
數據量的問題,設備能力和功耗自己是自相矛盾的,因爲ZigBee是超低功耗方案,固在通訊能力上也是打折扣的,很適合一些傳感器數據的採集,如溫度溼度,但若是對大數據量的視頻類的就不適用了
這裏主要介紹了,幾種經常使用的物聯網部署架構,至於物聯網協議,這裏就很少介紹,網上文章很是多。
3.智能設備
diego iot設計的初衷是讓智能設備開發者擺脫對特殊模塊的依賴,對於智能設備的開發,只要具有聯網功能便可,沒有特別多的要求。
本文分享自微信公衆號 - 互聯網後端架構(fullstack888)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。