(湖南聯智科技股份有限公司 湖南 410073)
針對目前各物聯網相關領域對于數據接入的多元化需求且單一傳感器數據很難滿足服務的現狀,本文主要在闡述了物聯網數據接入的基本概念、原理和方法的基礎上,介紹了在數據接入架構設計中使用的相關技術;分析了在數據接入鏈路及數據清洗、解析過程的應用需求,分別利用系統架構圖和數據流程圖及平臺部署結構圖對系統的數據和過程進行設計;給出了基于微服務的數據接入架構設計,設計了系統多個不同的子系統和模塊與各種常用傳輸協議下不同解析協議的通用方法,且使用多種設計模式,形成可自定義擴展的數據方法;實現了兼容各類型感知設備,自動配置配合可視化,自定義配置自動接入數據的數據中心架構。
在傳統的軟件技術架構系統中,基本上將業務功能集中在單一應用內,或者是單一進程中。盡管現代化的軟件架構理論以及設計原則已推廣多年,但實際技術衍化的速度遲緩并且變革動力不足。
微服務是用模塊化分解系統功能,通過模塊內部通訊來構建一個應用,服務獨立運行在不同的進程中,服務之間通過輕量的通訊機制進行交互。
每個服務模塊根據功能劃分,服務只需要關注自身需要解決的問題。傳統的整體風格的架構在構建部署和擴展伸縮方面有很大的局限性,笨重且不可拆分。微服務架構將系統以組件化的方式分解為多個服務,服務之間相對獨立且松耦合,單一功能的改變只需要重新構建部署相應的服務即可。
微服務架構拋棄了傳統單體服務一體化開發部署方式,微服務架構是高內聚的,每個服務處理相應的業務,所有的業務邏輯應該盡量在服務內部處理,且服務間的通信盡可能輕量化,比如使用Restful的方式。
每個微服務只會關注特定的業務功能,所以服務的業務清晰、代碼量較少。開發和維護單個微服務相對簡單。一般來說,對某個微服務進行修改,只需要重新部署這個服務即可。
數據中心系統,在上層物聯網應用中的作用越來越重要,該系統是應用系統的數據支持,也是設備與應用平臺之間的橋梁。因此,支持多協議并支持自定義擴展的系統設計就變得至關重要,一是能提供統一數據接入中心,只需要根據需求選擇內置接入協議和使用通用解析策略和自定義解析策略就能快速接入感知設備;二是提供數據統一管理中心,上層應用再也不用關注平臺數據存儲,傳輸,解析等問題;三是系統提供所有過程數據鏈路存儲以及日志記錄,應用開發人員能在快速定位問題后通過問題排除策略解決數據接入問題。
綜上所述,對數據中心系統的總體分析,可以清晰理解為,數據系統主要是作為應用平臺整體架構的核心部分,不僅對數據進行接入、解析、清晰等工作,同時為物聯網應用平臺解決數據存儲及提供穩定的數據服務功能。底層感知設備以及網絡傳輸層具有協議類型多、設備種類多、設備數據協議不一、設備邊緣計算能力有限及存儲空間小的特點,所以對于平臺設計兼容多種主流通訊協議,且整合封裝行業中大量使用的傳感器解析協議,確保數據流轉通穩定通暢,且接入設備簡單方便。
數據中心系統具有數據接入服務、數據解析服務、數據清洗分析服務、數據存儲服務、數據輸入輸出服務等功能模塊。
數據中心系統應用架構如圖1 所示。展現層主要為上層物聯網應用平臺,其中可為安全監測平臺、智慧城市、智慧交通等其他物聯網平臺。服務層與基礎設施層為上層應用平臺提供數據支撐。服務層為本系統的核心基礎,包括外部協議接入,數據處理兩部分。數據層主要包含本系統中的數據存儲服務,根據業務情況分庫進行存儲;通過統一數據出入庫接口進行管理;避免數據庫切換導致系統重新開發。且整個系統在設計中考慮系統安全、數據安全、服務安全、網絡傳輸安全多項安全因素;系統開發遵循各項技術規范,數據格式、數據庫設計、數據接口設計均遵守標準化信息體系。

圖1 數據中心整體架構
系統技術架構擬采用微服務架構,將配置中心和分布式服務均納入Nacos 管理,可集中管理服務和系統配置;在數據輸入輸出端采用Spring-Cloud-Gateway 提供數據接口,內置負載均衡機制和熔斷、重試機制,保障服務穩定運行。在數據中心系統中每項子服務均可分布式部署,解決系統性能瓶頸。數據庫存儲可考慮采用非關系型數據庫存儲大量傳感器數據,其他業務、配置相關可采用關系型數據庫;服務過程中使用高效緩存提升系統整體效率;另外文件服務器可用于數據文件備份,原始數據存檔等。具體技術結構如下圖2 所示:

圖2 數據中心技術架構
數據接入服務,主要負責接入感知設備通過網絡協議接入到平臺,進行初步的數據校驗和過濾功能。目前主要集成TCP、Mqtt、LoRa、NB-Iot 四種協議,且支持協議擴展,可自定義協議接入模塊。多種協議配置均存入數據庫,上層應用可根據需求通過接口形式配置自身使用的不同協議。另外,每種協議內置自動數據處理器,同時開發者可擴展自定義后置數據處理器。該模塊僅負責接受傳感器上報的原始數據,并將原始數據進行存儲后將數據壓入數據處理隊列,交給下游服務進行解析處理;在數據處理各項過程中都有節點日志記錄以及設備上下線日志記錄。根據設備需求,如果有需要命令下發的情況,該服務啟動獲取命令下發隊列,根據傳感器策略中的采集策略配置自動下發系統采集命令。
數據解析服務,系統模塊通過監聽數據處理隊列,采用多線程技術將數據接入服務接收回來的數據進行解析;主要根據系統配置的不同類型傳感器的解析策略進行數據分解;根據不同情況可分為字節碼解析、Json 體等解析,同時根據配置要求解析后對數據進行數據解密且校驗數據校驗碼是否正確,最后存儲解析后的數據,然后將數據壓入解析數據處理隊列,交給下游服務進行清洗分析處理;在數據解析過程中各節點進行日志記錄以及數據異常日志記錄。該模塊僅負責數據解析轉換及存儲部分,根據設備解析策略中的采集策略部分,根據采集策略生產設備數據采集命令,根據采集下發采集命令到命令下發隊列,供數據接入層使用;該模塊為數據中心系統的核心模塊,是上下服務之間的紐帶。
數據清洗分析服務,系統模塊通過監聽解析數據處理隊列,采用多線程技術處理經過解析服務處理后的數據,根據數據清洗策略,對數據進行清洗,過濾掉超限或異常數據,然后根據以往的數據進行分析,判斷當前數據是否是噪聲數據;根據相關設備數據進一步來判斷相關數據是否存在異常,如有異常,根據數據修復策略來修復異常點數據,避免噪聲數據、設備采集異常等情況導致出現的調變影響上層應用決策分析;最后將正確的數據壓入數據存儲隊列,供下游服務進行統一存儲;同樣該服務所有節點均記錄處理日志以及存在的異常日志。該模塊主要負責數據清洗和分析服務,與上下游服務關系松耦合。
數據存儲服務,系統模塊監聽數據存儲隊列,將數據存入數據庫中;該模塊主要功能是集成多樣化存儲數據庫,如Mongodb、Kafka、Hbase、Hive 等,開發者可根據應用需求擴展不同存儲服務。
數據輸入輸出服務,該模塊是處理與外部應用對接的角色,通過標準Restful 接口,向外暴露數據。主要數據接口類型包括:解析策略相關接口、數據清洗、分析策略相關接口、數據相關接口、日志查詢相關接口及各項參數模塊使用配置相關接口等,通過上述接口向外部應用提供數據服務和管理配置數據中心服務等。同樣,該服務有詳細的調用日志記錄。
現存物聯網技術的核心數據來源于感知層,隨著物聯網技術和網絡傳輸技術的高速發展,以后會出現更多的物聯網平臺應用,所有的日常設備,基礎設施,地標都會上線,做到萬物互聯;這些應用都需要大量設備來為其提供數據支撐,而在物聯網高速發展節點,當下環境也存在很多問題,比如說層出不窮的網絡傳輸協議,各廠家自主研發的感知設備沒有任何標準,且在傳輸過程中有很多不確定影響因素等等。因此本文在經過多個項目的實踐及參考已有的研究成果之后;設計實現了一套兼容各類協議和大部分傳感器設備數據協議的數據中心系統;集數據接入、解析、存儲為一體,整體封裝打包進行封閉管理;統一數據出入口,解決數據接入難點和適配各種不標準的問題,為上層業務邏輯應用開發提供核心基礎服務。