楊 艷,李東睿
(中移物聯(lián)網(wǎng)有限公司,重慶 401121)
物聯(lián)網(wǎng)的核心為互聯(lián)網(wǎng)技術,將用戶端拓展到物物之間,從而進行通信與數(shù)據(jù)互換?,F(xiàn)階段,我國在各行業(yè)領域中都部署了很多物聯(lián)網(wǎng)應用平臺,但針對一些中小企業(yè)和開發(fā)者而言,如何快速的進行物聯(lián)網(wǎng)應用平臺的搭建,需要一種通用的框架設計模型來指導開發(fā)人員進行應用系統(tǒng)框架的搭建,以實現(xiàn)物聯(lián)網(wǎng)應用平臺的數(shù)據(jù)采集、存儲、分析等工作,通過通用應用平臺的模型搭建,能夠為開發(fā)者提供參照,有效提高開發(fā)效率,對剛涉足物聯(lián)網(wǎng)行業(yè)的企業(yè)在物聯(lián)網(wǎng)應用平臺的快速搭建和發(fā)展有重要的推動作用。
OneNET是中國移動公司打造的物聯(lián)網(wǎng)開放平臺,該平臺全面面向物聯(lián)網(wǎng)開發(fā)者和企業(yè)客戶,同時,該平臺為硬件設備中提供了接入?yún)f(xié)議,通過該協(xié)議可以讓硬件直接接入到OneNET平臺。同時OneNET具備全面面向物聯(lián)網(wǎng)的協(xié)議標準和協(xié)議適配能力,為開發(fā)人員提供了更多的自由空間,是目前市場中最為先進的物聯(lián)網(wǎng)云平臺之一。其基本系統(tǒng)框架如圖1所示。
圖1 物聯(lián)網(wǎng)通用應用平臺系統(tǒng)框架
在OneNET平臺中,需要通過協(xié)議來完成數(shù)據(jù)互換,在實際設計階段,需要利用GPRS、WIFI等方式來進行數(shù)據(jù)傳輸,并進行跟蹤、監(jiān)測、管理等工作。其主要特點為,互聯(lián)網(wǎng)技術是核心,物聯(lián)網(wǎng)是依托于互聯(lián)網(wǎng)而發(fā)展的;在物聯(lián)網(wǎng)系統(tǒng)中應用到的智能技術比較多,有利于實現(xiàn)智能監(jiān)控和智能管理;在物聯(lián)網(wǎng)技術的發(fā)展下,拉近了物與物之間的關系,可在各行業(yè)領域中得到廣泛應用。
通信協(xié)議是OneNET通信系統(tǒng)中非常重要的內(nèi)容,需要對協(xié)議進行設定,才可實現(xiàn)數(shù)據(jù)互換。OneNET平臺面向用戶提供EDP協(xié)議來實現(xiàn)終端和平臺的交互,通過Restful API接口來實現(xiàn)平臺與平臺的交互。在終端通過GPRS、WIFI等方式訪問互聯(lián)網(wǎng)時,此協(xié)議基于TCP/IP協(xié)議,而訪問局域網(wǎng)則基于使用OPX/SPX協(xié)議[1],而API接口則采用基于HTTP協(xié)議和json數(shù)據(jù)格式。
Restful API接口是OneNET平臺提供的服務方式,是物聯(lián)網(wǎng)通用應用平臺設計的關鍵技術,在實際設計時,需要根據(jù)不同的功能來劃分模塊,包括設備管理模塊、數(shù)據(jù)庫模塊、通信模塊、配置模塊等。其中,API接口在通信模塊的作用是與OneNET平臺進行通信交互,設備管理模塊是根據(jù)設備系統(tǒng)的實際運行情況進行數(shù)據(jù)收集,以便于進行遠程維護。數(shù)據(jù)庫模塊是對數(shù)據(jù)庫進行操作及信息的管理,而配置模塊主要是用來處理服務端的參數(shù)信息,或根據(jù)實際情況來調(diào)整模式。
設備管理模塊的設計是用于業(yè)務管理人員對設備的運行情況進行監(jiān)控與管理。在實際開發(fā)階段,需要對接口提供的one_user進行操作,當需要系統(tǒng)停止服務時,應關閉Socket程序,不能將其參與到操作當中,從而根據(jù)接口列表來釋放內(nèi)存。當服務端強制客戶端下線時,需要發(fā)布遠程指令,能保障系統(tǒng)安全穩(wěn)定的運行。同時,當需要對設備進行查詢時,應對設備的各項信息進行收集,需要涉及到數(shù)據(jù)讀取方面的內(nèi)容。因此,可對get_user_at接口發(fā)布指令,以獲得相關信息。但在實際應用階段,該設備端口有若干接口,有其各自的功能,需要輸入不同的參數(shù)進行控制,以達到操控的目的[2]。
通信模塊的主要功能是實現(xiàn)客戶端與服務端之間的對接,從而進行通信傳輸。在對OneNET平臺進行設計時,可構(gòu)建通信模型,以現(xiàn)實多個客戶端通信端口,并將其進行整合,以進行通信控制,能有效提高控制效果,保障通信系統(tǒng)的運行效率。但在實際操作階段,服務端每次重新啟動,需要各個端口、協(xié)議等初始化,重新獲取監(jiān)控指令,這種操作比較復雜。因此,可輸入啟動接口和關閉接口,有利于提高底層操作效率。同時,在進行底層通信服務時,會產(chǎn)生很多的數(shù)據(jù)信息,對系統(tǒng)的運行效率會產(chǎn)生影響。應開發(fā)設置接口和數(shù)據(jù)接口,來完成數(shù)據(jù)的處理工作,從而釋放緩存。
數(shù)據(jù)庫模塊主要是對通信產(chǎn)生的數(shù)據(jù)進行存儲,以實現(xiàn)數(shù)據(jù)收集、存儲、整理、分析、檢索等功能。在對OneNET平臺訪問數(shù)據(jù)庫時,會存在很多的問題,當平臺與訪問組件脫離時,無法對數(shù)據(jù)庫進行控制。因此,應利用API來進行設計,在開發(fā)階段,需要對開發(fā)環(huán)境進行設置,其過程比較復雜,難度較高,給編程工作帶來了很大的難度。在這種情況下,可對PostgerSQL數(shù)據(jù)庫的API函數(shù)進行封裝,有利于形成開放接口,可有效對數(shù)據(jù)庫進行操作。
當服務端所處的環(huán)境存在問題時,可通過操控SetCustomIP接口來調(diào)試IP問題,并根據(jù)實際測試要求來劃分不同的事件信息,包括消息驅(qū)動模式、阻塞模式、非阻塞模式等。在對不同信息進行處理時,應在配置模塊上設計SetWorkMode接口,可對底層服務問題進行處理。另外,當服務端處于正常運行時,會根據(jù)運行狀態(tài)來顯示設備列表,以顯示服務器的最大承載力,避免服務器過載而出現(xiàn)癱瘓等問題。
在對物聯(lián)網(wǎng)通用應用平臺進行設計時,采用三層架構(gòu),其中要求服務端具備相應的功能以便于進行操控與管理。其主要功能為:一是,WEB界面,管理人員可以登錄監(jiān)控服務端的界面進行物聯(lián)網(wǎng)終端的監(jiān)控信息查詢和終端控制。二是,API數(shù)據(jù)接口設計,通過OneNET平臺提供的API接口,服務端進行接口調(diào)用,相應的功能項目在WEB界面端進行展示。三是,對終端的協(xié)議進行適配和轉(zhuǎn)換,對OneNET上存儲的終端上報的業(yè)務數(shù)據(jù)信息進行處理和翻譯。四是,針對物聯(lián)網(wǎng)業(yè)務的大規(guī)模和大并發(fā)的情況,設定API調(diào)用的優(yōu)先級和排隊機制,保證降低服務器的負荷,保證監(jiān)控系統(tǒng)的運行效率。四是,每次API接口調(diào)用之后,對各項數(shù)據(jù)信息進行記錄,可以對日志進行查詢和分析,以方便后期的統(tǒng)計分析。
圖2 物聯(lián)網(wǎng)通用應用平臺架構(gòu)設計
首先,服務端在實際應用階段主要分為三層,包括接口層、服務層、應用層。接口層主要用來進行API接口的數(shù)據(jù)交換和控制,服務層負責對各個模塊信息進行封裝,而應用層負責為各個接口提供函數(shù)信息,對協(xié)議進行適配解析、面向WEB頁面提供相應信息。
其次,當服務端處于正常運行時,需要按照一定的流程來完成數(shù)據(jù)傳輸工作,具體流程為:當數(shù)據(jù)產(chǎn)生后,需要將通信模塊中的接口來獲取數(shù)據(jù)信息,并將其傳輸給應用層。同時,應用層得到數(shù)據(jù)后,要進行數(shù)據(jù)解析工作,再將解析后的數(shù)據(jù)信息傳輸給用戶端。若該數(shù)據(jù)信息為本地數(shù)據(jù)時,則上交至設備管理模式中,并通過接口傳輸至服務底層,從而將處理過的數(shù)據(jù)信息通過通信模塊進行傳輸。
最后,軟件設計也是必不可少的內(nèi)容,需要管理人員通過操控軟件來展示實際數(shù)據(jù)情況,具體交互界面包括啟動服務、終止服務、下發(fā)、分離等按鈕。同時,還需要對操作情況設置顯示列,將各步驟的調(diào)試信息顯示出來,便于管理人員進行處理與維護。
在對通信協(xié)議進行設計時,主要分為協(xié)議結(jié)構(gòu)、協(xié)議格式以及協(xié)議交互三個部分。其中,可用協(xié)議棧來表示服務端與客戶端之間的關系。在對協(xié)議格式進行設計時,既要考慮實際應用需求,又要考慮日后的發(fā)展趨勢。因此,應根據(jù)DC協(xié)議來設計報文類型,包括登錄報文,登錄響應報文,心跳、下線報文,心跳、下線響應報文等。而協(xié)議交互主要包括登錄、通信傳輸、注銷三個部分[3]。
5.4.1 API接口單元測試
在對API單元測試時,主要是檢測各模塊的調(diào)試結(jié)果與參數(shù)之間的關系,各接口函數(shù)與輸入、輸出的類型變化,并通過參數(shù)賦值進行測試。雖然檢測內(nèi)容比較多,但可以通過實際數(shù)值來判斷系統(tǒng)的穩(wěn)定性。
5.4.2 服務器測試
服務器測試主要分為三個部分,包括數(shù)據(jù)接收壓力、連接請求壓力以及數(shù)據(jù)流處理時間等。筆者對200臺設備客戶端進行了測試,重點對數(shù)據(jù)流實際處理情況進行了分析(如表1)。
表1 數(shù)據(jù)流處理時間表
通過表1可知,在終端數(shù)量和數(shù)據(jù)量不變的情況下,頻率越高,所需要的響應時間就越長。與傳統(tǒng)處理方法相比,數(shù)據(jù)流技術能有效縮短響應時間,提高處理效率,保障監(jiān)控效果。
利用OneNET平臺提供的API接口來進行物聯(lián)網(wǎng)通用應用平臺的設計與實現(xiàn),可以快速的實現(xiàn)對各個模塊的接口進行開發(fā),以實現(xiàn)不同的功能,在使用時只需調(diào)用API接口,不需要了解OneNET背后的業(yè)務邏輯,大大簡化的開發(fā)者的難度。同時,通過對硬件終端置入EDP協(xié)議后,物聯(lián)網(wǎng)終端可以自動接入OneNET平臺,方便了應用平臺對終端的管理和監(jiān)控。之后,通過對物聯(lián)網(wǎng)業(yè)務使用最頻繁的通用應用平臺功能模塊的設計和構(gòu)建,使得開發(fā)者能夠快速的理解OneNET平臺的能力,提升開發(fā)效率。最后,在設計結(jié)束后還需要對平臺API接口性能和服務器性能進行測試,保障開發(fā)的準確性和可靠性。本文的物聯(lián)網(wǎng)通用應用平臺的模型可以幫助開發(fā)者更加快速的開發(fā)部署物聯(lián)網(wǎng)應用。
[1] 吉峰.物聯(lián)網(wǎng)監(jiān)控系統(tǒng)服務端設計與實現(xiàn)[D].南京郵電大學,2016.
[2] 鐘新艷.基于物聯(lián)網(wǎng)的遠程視頻和數(shù)據(jù)處理平臺的設計與實現(xiàn)[D].電子科技大學,2016.
[3] 李祥書.基于物聯(lián)網(wǎng)的運輸監(jiān)控系統(tǒng)的研究與實現(xiàn)[D].北京郵電大學,2015.