李海威
(廣東省科技基礎條件平臺中心,廣東 廣州 510033)
隨著電子技術和信息技術的發展與創新,物聯網產業與互聯網緊密結合并快速發展,對建設新型智慧城市起到了積極的推動作用[1]。物聯網數據網關設備,作為解決“物聯網”的數據傳感和數據傳輸的關鍵技術設備,具有廣泛的用途[2]。物聯網數據網關有效解決了“物聯網”發展的數據鏈路問題,其市場需求必將隨著“物聯網”的發展而不斷增加,產業化前景非常美好[3]。
數據網關,既是多種傳感設備的通信控制網關,也是大量移動傳感設備的數據接收網關,利用云計算的服務模式在物聯網時代架起感知網和信息網絡間傳輸通信的“橋梁”,是軟硬件一體化集成設計實現的數據交換中間件[4]。數據網關提供圖形化的數據流程定義工具,方便應用,無需復雜開發,并支持多種接口協議(SMS、RFid、IM、Mail等),支持常見數據庫(Oracle、SQL Server、DB2……),支持消息隊列(MS MQ、IBM MQ……),并可隨時擴充協議、數據適配器接口[5]。
如圖1所示,文中研究開發的數據網關參考restful架構[6-7],將通過各種有線和無線的協議標準(如Longwork、RuBee、串口、并口、電力線載波、藍牙、Zigbee、其他無線載波)連接多個物聯網設備,進行數據的采集和設備的控制。多個物聯網數據網關可以通過各種網絡通信協議(如有線無線寬帶Internet、3G、GPRS、WiFi等)進行級聯,構造物聯網通信的骨架[8]。各種智慧城市物聯網數據通過該網關構成的通信架構匯總到云計算平臺中進行存儲和處理,然后以云服務的方式進行發布,供各種應用程序使用,使得應用程序可以在統一的調用接口下透明地進行智慧城市物聯網數據的采集和設備的管理[9]。

圖1 數據網關
數據網關要解決物聯網技術標準和通信協議的多樣性、海量數據采集處理、系統的實時性等問題,使應用程序可透明地訪問傳感網絡設備采集到的信息[10]。現階段的各種信息網絡如果通過數據網關,則可以得到進一步的延伸與擴展,能夠構建包括骨干網、接入網、移動通信網、近程感知網等各類網絡在內的整體性網絡架構,可以將不同時空不同應用的感知網絡和信息網絡結合在一起。因此,數據網關便成為各網絡之間的關聯節點[11]。
數據網關采用分層架構實現,如圖2所示。

圖2 數據網關技術架構
(1)感知接入層。
感知接入層主要包括有源標簽、RFID、ZigBee、WiFi等感知設備和感知網絡。主要通過這些設備的接入并支持外插拔模塊進行多種協議的解析并感知各類型網絡,最終可能根據不同的場景選擇不同的特定協議,達到感知網絡的目的。
(2)適配器層。
適配器層主要包括接口管理和協議解析,用于管理感知層所接入和收集的標準接口,通過適配器處理不同的數據協議,最終標準化各類數據和指令。
(3)轉換控制層。
轉換控制層主要包括遠程管理、協議轉換、數據校驗、數據存儲等功能。其將下層的感知網絡、適配器兩層的數據進行統一封裝,將上層的物聯網管理平臺進行通信對接,實現管理協議在上下層之間的相互轉換和通信。這一層還提供數據的校驗、存儲功能,可以將數據存儲在數據庫中,也可以發送到消息隊列,由消息隊列進行后續處理。
(4)信息網絡接入層。
支持多種接入方式,這樣數據網關采集的數據可以通過信息網絡傳送到上層管理平臺,為數據統計分析、行業應用開發提供統一的數據來源。
1)數據網關處理技術。
文中利用高性能、高并發服務器的開發技術,使得數據網關具備大吞吐量數據接收處理服務的能力和大并發移動傳感設備接入的能力,實現并發處理多事件的應用程序,主要包括:
(1)多線程模型。
該模型簡單易用,效率也不錯,主要采用能夠隱式地運行和維護堆棧狀態信息和歷史的阻塞型I/O等同步操作進行程序編寫,為每一個鏈接均創建一個線程。特別是對于少量并發連接的情況,該模型能夠很好地通過創建相應的線程數進行處理,采用普通的PC機均能勝任。如果出現需要處理特別多的并發數據,達到千萬級別的連接數量時,就需要采用高性能計算機進行并行計算[12]。
(2)事件驅動的單線程模型。
跟多線程模型相比,該模型具有擴展性高、通用性強的特點。其主要由一個主線程和多個異步操作組成,并由主線程統一調度和管理。當出現多任務阻塞時,可以自動轉化為異步操作,這些異步操作均由主線程發起并處理相應的結果。該模型通常具有較好的性能,因為主線程的主要任務用于處理實際的計算任務,節省了多線程調度所損耗的時間。但由于需要將阻塞任務轉化為異步操作,因此編程較復雜[13]。
文中提出了半異步模式,即將多線程模型和事件驅動的單線程模型相結合,使系統既有異步處理又有同步處理。利用異步處理改善系統的性能,使用多線程、即同步處理簡化開發人員的編程難度,使數據網關在處理應用程序時達到一定的平衡,提高綜合的數據處理能力。基于云計算的數據網關主要采用異步服務通信層和同步服務通信層兩者結合實現,將需要多線程處理的應用采用同步處理通信層,將需要提高性能的應用分配給異步處理通信層,但兩層之前能夠相互通信并能進行數據交換,知道各層之前的應用處理情況。
值得注意的是,基于云計算的數據網關為更好地利用云計算技術,達到數據網關彈性配置和綜合應用的目的,在同步通信層和異步通信層之間增加一個交互層,用于協調異步和同步層中服務之間的通信,在獨立線程或進程中同步地處理高層服務(如耗時長的數據庫查詢或文件傳輸),從而簡化并發編程。相反,異步處理底層服務(如從網絡連接上讀取數據),以增強性能。如果駐留在相互獨立的同步和異步層中的服務需要相互通信或同步它們的處理,則應允許它們通過一個排隊層向對方傳遞消息。這種解決方案將極大地提升服務器的性能。
2)對象數據庫編碼與格式轉換。
該數據網關主要處理對象數據庫的存儲,如ORACLE、SQL SERVER、SYSBASE等主流數據庫。對象編碼兼容多個技術標準,如EPC的編碼標準,對象信息采用XML編寫。網關采用SOAP協議提供對象數據庫的檢索服務[14]。
該數據網關在數據格式轉換方面,綜合了8種編碼類型[15]:GID,SGTIN,SSCC,SGLN,GRAI,GIAI,GSRN,GDTI;按編碼方式分類,它們的轉換方案(針對EPC標簽URI格式)如圖3所示。

圖3 編碼格式轉換
物聯網中數據種類繁多,格式各異,對于各種數據和設備管理存在多種困難。通過基于云計算的數據網關開發,可以解決如下問題:
(1)網關的數據采集要解決物聯網技術標準和通信協議的多樣性、系統的實時性等問題,使應用程序可透明地訪問傳感網絡設備采集到的信息。
(2)物聯網數據網關應用領域應該是多樣性的,不局限于某一類或某一領域的應用情景。對于不同的應用,展現技術是不同的。通過該網關可以支持多種不同的物聯網應用,這樣就對數據展現架構提出了靈活性和擴展性的需求。
因此,文中提出的開發基于云計算的物聯網數據網關具有一定的社會效益。
[1] NIE Zhou.The impact of communication technologies on social structure-take the example of smart city[J].Journal of Shanxi University of Finance and Economics,2016(s2):137-144.
[2] 張 皓.計算機物聯網技術應用及發展研究[J].電子技術與軟件工程,2016(22):10.
[3] 楊業令.基于物聯網的智慧家庭系統設計與實現[D].成都:電子科技大學,2013.
[4] 鄭樹泉.工業物聯網大數據平臺架構與應用[J].軟件產業與工程,2016(6):15-18.
[5] 朱 廣,黎海濤,馬銀童,等.低功耗物聯網網關設計與實現[J].國外電子測量技術,2016(6):31-36.
[6] LI X H.Research and development of web of things system based on rest architecture[C]//International conference on
intelligent systems design & engineering applications.[s.l.]:IEEE Computer Society,2014:744-747.
[7] 程冬梅,王瑞聰,劉 燕,等.基于REST架構風格的物聯網服務平臺研發[J].計算機工程與應用,2012,48(14):74-78.
[8] NING H S,LIU H.Cyber-physical-social-thinking space based science and technology framework for the Internet of Things[J].Science China Information Science,2015,58:031102.
[9] 沈翼洲,蔣榮欣.面向視頻監控系統的數據網關負載均衡策略[J].計算機工程,2015,41(10):1-5.
[10] 魯文博.面向傳感網數據共享平臺的多類型網關解析系統設計[D].杭州:浙江大學,2014.
[11] 楊尚武.Web應用程序中屏蔽多數據源的數據網關研究[D].哈爾濱:哈爾濱工程大學,2012.
[12] JU H Y.Research on the framework of high performance the internet of things based on multilevel disaster recovery[J].Advanced Materials Research,2012,542-543:462-468.
[13] 李天杰,姚 程,曹筱歐,等.一種基于物聯網技術的智慧家庭能源中心的設計與應用[J].自動化與儀器儀表,2016(11):241-242.
[14] SHIH C S,YANG C M,CHENG Y C.Data alignment for multiple temporal data streams without synchronized clocks on IoT fusion gateway[C]//IEEE international conference on data science and data intensive systems.[s.l.]:IEEE,2015:667-674.
[15] 駱歆遠,陳 剛,伍 賽.基于GPU加速的超精簡型編碼數據庫系統[J].計算機研究與發展,2015,52(2):362-376.