陳建靈
(福信富通科技股份有限公司,福建 福州 350001)
隨著城市化的逐步深入,數字城市逐漸成為一個城市經濟轉型、產業升級、城市提升的新引擎,融入城市整體發展戰略中。物聯網是指通過各種信息傳感設備,實時對任何需要監控、連接、互動的物體或過程,采集其聲、光、熱、電、力學、化學、生物、位置等各種需要的信息,與互聯網結合形成的一個巨大網絡[1]。其目的是實現物與物、物與人,以及所有的物品與網絡的連接,方便識別、管理和控制[2]。通過物聯網傳感技術,解決城市級海量信息的采集、分析、存儲、利用等問題,立體感知城市的環境、運行狀態、位置等信息的全方位變化,實現對城市管理各方面的監測和全面深入、透徹的感知[3]。
由于物聯網應用的廣泛性,需要接入許多不同品牌、不同型號、不同協議的設備。其中有部分設備由于其特殊性,沒有采用通用的標準協議進行開發,而又作為使用場景中必須監測的單元。例如在電梯行業應用中,由于設備供應商繁多,并且多家供應商所采用的協議為企業內部協議,一方面同多家廠家的技術交流極大延長了物聯網平臺的開發周期,另一方面有部分使用非標準協議供應商已經出現技術斷層乃至企業倒閉的情況,使接口協議的開發更加艱難。因此如何能有一套高效可行的接入方案實現物聯網感知設備的快速接入,成為需要攻克的關鍵性問題。
本文描述的物聯網平臺主要包括物聯網設備接入系統、數據處理系統、設備管理系統、平臺對外數據服務系統、開發者平臺等,具體包括如下。
設備接入是物聯網建設的基礎,也是其中最重要的環節。物聯網平臺建設要實現各種類型的傳感器設備的統一接入,能夠支持各種協議接口。設備接入系統主要包括設備物理模型搭建、通信接口開發、多協議適配轉換、設備入網注冊、安全接入管理、負載均衡、設備入網驗證、數據實時傳輸、規則引擎、設備預警值管理、接入申請管理、模板庫管理、審批管理、設備信息發布管理、統計分析等模塊。
數據處理系統實現數據的采集、存儲、檢索、加工、變換和傳輸。數據處理的基本目的是從大量的、可能是雜亂無章的、難以理解的數據中抽取并推導出有價值、有意義的數據。設備接入系統主要包括數據清洗、數據分析等模塊。
物聯網平臺數據會隨著傳感器數量不斷增多,數據采樣頻率不斷提升,數據積累時間也越來越久,因此產生的數據量非常大(動輒十億條、百億條、千億條存儲規模),而且數據產生速度也非常快(動輒每秒十萬條、百萬條紀錄),需要有很大容量、高并發的數據庫去存儲這些數據量,以便滿足數據能夠實時查詢、實時分析的需求[4]。
物聯網在實現設備接入的同時,要能夠對接入設備實現統一管理,即從設備接入平臺時起,直至設備壞損停止運行的“物聯網全生命周期的管理”。以設備的唯一編碼為認證標的,為每個設備提供一個唯一的“運行履歷”。設備管理系統主要包含設備庫、設備尋址、設備類別管理、設備運行狀態管理、設備保養管理、設備檢修管理、設備巡檢管理、設備預警值設置管理、設備統計分析等模塊。
物聯網作為通用的設備接入、管理平臺能夠為上層“智慧城市”各專項應用提供數據支持。物聯網以上層應用為導向提供不同類型的數據接口給上層應用,同時,能夠快速準確地為各個行業、應用、項目提供所需的設備各類型數據,并且按上層應用需求提供個數據的推送方式。
物聯網通用接入平臺的接口應當滿足,對下能夠采集同步底層傳感器設備運行狀態信息和報警信息,以及能夠同步第三方系統的數據信息。采用CXF對外數據數據接口架構,提供多種類型API和Webservice數據接口,滿足上層各項應用通用平臺提供的標準數據接口文檔進行數據的提取與使用要求。另外,平臺還支持訂閱的形式,多樣化的數據提供形式滿足各項業務需求。平臺對外數據接口服務主要包含數據申請管理、數據發放管理、數據啟停用管理、對外服務案例展示等。
包括公共交通系統(公交車、出租車、停車場)接入、管理與對外服務;城市智能化管理系統(包括環保領域、能源領域、社區領域、水務領域、網格化管理領域、其他領域等)接入、管理與對外服務。
物聯網平臺的中心數據庫建設主要包括設備臺帳及運行信息數據庫和設備管理信息數據庫;完成基礎數據內容建設,包括對基礎數據進行異常數據清洗、數據比對、格式轉換、數據關聯等操作,以及對數據資源目錄管理、數據質量控制、數據更新管理和數據值班管理,完成基礎信息數據整理、加工、處理、入庫等工作,實現對數據資源的有效整合利用。
以下將主要針對設備接入系統中如何實現物聯網設備的多協議快速接入提供一種基于泛協議接入的方法進行論述。
為了適配市面上不同行業不同終端的快速接入,本項目的物聯網能力開放平臺提供泛協議接入能力,通過物模型定義設備功能屬性,并結合Pulsar消息隊列,實現插件與泛協議接入網關的數據交互。具體流程如圖1所示。

圖1 泛協議接入流程圖
2.1.1 用戶(自定義協議)終端
各類型各行業的終端,例如人員數據,定位數據,傳感器數據,圖像數據終端等。
2.1.2 互聯網通信協議
提供終端與協議網關的連接及數據通信能力,支持多種通信協議(包括MQTT協議、TCP、UDP等網絡通信協議)。
2.1.3 泛協議接入網關
平臺將提供各種的泛協議接入網關,當所需接入的終端為自定以協議(私有協議)時,在平臺進行新增產品過程中,需選擇接入協議為對應的互聯網交互協議,數據協議為私有協議,并上傳附件。平臺將會對有接入請求的產品定制泛協議網關(依據私有協議制定相對應的私有協議網關,會接入系統相關的數據,如終端注冊、鑒權、心跳),泛協議負責將收到的終端的數據按協議分為完整的報文,之后將原始報文推送至pulsar消息隊列中。其還負責將接收到的泛協議解析組件的物模型數據并將其發送給物聯網功能開發平臺中進行數據處理以及存儲等操作。當從消息隊列接收到功能開發平臺的命令報文時,其會將對應數據報文推送至具體終端。
2.1.4 功能開放平臺
提供統一的終端接入,統一的終端數據存儲,向下承載終端,向上承載應用,提供位置數據分析能力,形成終端到業務的完整鏈路體系。
2.1.5 Pulsar消息隊列
Apache Pulsar是Apache 軟件基金會頂級項目,是下一代云原生分布式消息流平臺,集消息、存儲、輕量化函數式計算為一體,采用計算與存儲分離架構設計,支持多租戶、持久化存儲、多機房跨區域數據復制,具有強一致性、高吞吐、低延時及高可擴展性等流數據存儲特性,被看作是云原生時代實時消息流傳輸、存儲和計算最佳解決方案。[5]
本方案主要運用此作為泛協議網關與泛協議解析插件間數據交互中間件。
2.1.6 泛協議解析插件
通過提供相應的插件SDK包為用戶提供網關與解析插件、平臺與解析插件的相互交互通道的能力。開發者只需具有終端報文與物模型數據相互轉換能力便能實現數據上報至開放平臺,命令下行到終端的能力。
開發者在使用SDK需進行必要的參數初始化,需要在配置文件中配置plug.id、plug.key,并在平臺的終端產品管理中配置接入密鑰。如圖2所示。

圖2 密鑰管理
除了plug.id、plug.key配置,還需配置plug.serve.address:插件服務地址。如圖3所示。

圖3 SDK參數配置
用戶(自定義協議)終端通過互聯網通信協議與泛協議接入網關進行數據通信,泛協議接入網關接收到終端報文后,將按照對應終端協議將其分割成數據完整報文,按照泛協議網關與泛協議解析插件交互協議將數據推送至Pulsar消息隊列,泛協議解析插件收到原始報文數據后需將其解析為具體的物模型數據,按照泛協議網關與泛協議解析插件交互協議將數據推送至Pulsar消息隊列,泛協議接入網關接收到來自泛協議解析插件的物模型數據后,會將物模型數據推送至物聯網能力開放平臺,從而實現數據上行流程。
按圖中雙虛線所示順序,物聯網平臺還提供了數據由平臺至終端的下行命令接口,業務平臺可以使用該API向終端下發命令類型的物模型數據,該數據將被推送至相應的泛協議接入網關,網關會將該物模型數據推送至Pulsar消息隊列,泛協議解析插件接收到物模型數據后,需將物模型數據轉為具體終端協議數據,進而將該終端協議數據重新推送回Pulsar消息隊列,使其回到泛協議接入網關,最后依據終端的互聯網通信協議推送至用戶(自定義協議)終端,從而實現數據下行流程。
本文所討論的方法是在物聯網平臺項目開發實施過程中總結出的一種基于泛協議接入的解決不同廠家私有協議快速對接平臺的實現方法。該方法從終端及平臺雙向數據的對接及解析方面進行闡述,通過定義設備物模型及由平臺提供標準的SDK包,實現設備接入的標準協議部分的處理,設備開發者可根據自身產品的實際需要定義自己所需要的物模型,再通過泛協議解析實體協議部分進行實現,從而節省平臺/設備雙方需要適配各自的協議帶來的溝通及實現的時間成本,方便了設備開發者根據不同的場景及應用領域,可自行維護設備接入協議的能力擴充,從而減少了平臺網關與設備間因協議問題產生的適配問題。在加快物聯網平臺與設備接入方面的應用中具有一定的應用價值。■