陸曉鈞 上海貝爾股份有限公司
產品與技術方案
泛在網網關中間件架構設計
陸曉鈞上海貝爾股份有限公司
對泛在網網關中間件架構進行了設計,針對無線物聯網終端的需求,分析了物聯網網關的基本產品需求,提出了泛在網網關的設計思路,闡述了層次結構、信息交互流程。針對網關中間件的架構設計和相關的數據上報、心跳上報等功能重點剖析了設計原理和可實現的架構原理。
物聯網;泛在網;網關中間件
泛在網是具有全面感知、可靠傳輸、智能處理特征的連接物理世界的網絡。泛在網用途廣泛,遍及智能交通、環境保護、政府工作、公共安全、平安家居、智能消防、工業監測、老人護理、個人健康、花卉栽培、水系監測、食品溯源、敵情偵查和情報搜集等多個領域。泛在網的接入方式是多種多樣的,如廣域的PSTN、短距離的Z-Wave等,泛在網網關設備是將多種接入手段整合起來,統一互聯到接入網絡的關鍵設備。它可滿足局部區域短距離通信的接入需求,實現與公共網絡的連接,同時完成轉發、控制、信令交換和編解碼等功能,而終端管理、安全認證等功能保證了泛在網業務的質量和安全。
泛在網網關在未來的泛在網時代將會扮演著非常重要的角色,可以實現感知延伸網絡與接入網絡之間的協議轉換,既可以實現廣域互聯,也可以實現局域互聯,將廣泛應用于智能家居、智能社區、數字醫院、智能交通等各行各業。泛在網組網采用分層的通信系統架構,包括感知延伸系統、傳輸系統、業務運營管理系統和各種應用,在不同的層次上支持不同的通信協議,如圖1所示。感知延伸系統包括感知和控制技術,由感知延伸層設備以及網關組成,支持包括Lonworks、UPnP、Zig Bee等通信協議在內的多種感知延伸網絡。感知設備可以通過多種接入技術連接到核心網,實現數據的遠程傳輸。
泛在網網關具備如下幾個功能。

圖1 泛在網網關邏輯架構
(1)廣泛的接入能力。目前,用于近程通信的技術標準很多,僅常見的WSN技術就包括Lonworks、ZigBee、6LowPAN、RUBEE等。各類技術主要針對某一應用展開,缺乏兼容性和體系規劃,如Lonworks主要應用于樓宇自動化,RUBEE適用于惡意環境。如何實現協議的兼容性、接口和體系規劃,目前在國內外已經有多個組織在開展泛在網網關的標準化工作,如3GPP、傳感器工作組,以實現各種通信技術標準的互聯互通。
(2)協議轉換能力。從不同的感知網絡到接入網絡的協議轉換,將下層的標準格式的數據統一封裝,保證不同的感知網絡的協議能夠變成統一的數據和信令;將上層下發的數據包解析成感知層協議可以識別的信令和控制指令。
(3)可管理能力。強大的管理能力,對于任何大型網絡都是必不可少的。首先要對網關進行管理,如注冊管理、權限管理、狀態監管等。網關實現子網內節點的管理,如獲取節點的標識、狀態、屬性、能量等以及遠程喚醒、控制、診斷、升級和維護等。由于子網的技術標準不同,協議的復雜性不同,所以網關具有的管理能力不同。
泛在網網關可以實現感知網絡和基礎網絡以及不同類型的感知網絡之間的協議轉換,既可以實現廣域互聯,也可以實現局域互聯。本泛在網網關設計面向感知網絡的異構數據感知環境,為有效屏蔽底層通信差異化進行有效網絡融合和數據通信,采用模塊化設計、統一數據表示、統一地址轉換等實現。下面從泛在網網關的層次結構、信息交互流程兩方面來進行闡述。
(1)層次結構
泛在網網關支持感知延伸設備之間的多種通信協議和數據類型,實現多種感知延伸設備之間數據通信格式的轉換,對上傳的數據格式進行統一,同時對下達到感知延伸網絡的采集或控制命令進行映射,產生符合具體設備通信協議的消息。泛在網網關對感知延伸設備進行統一控制與管理,向上層屏蔽底層感知延伸網絡的異構性,共分為4層,分別為業務服務層、標準消息構成層、協議適配和感知延伸層。
●業務服務層。業務服務層由消息接收模塊和消息發送模塊組成。消息接收模塊負責接收來自泛在網業務運營管理系統的標準消息,將消息傳遞給標準消息構成層。消息發送模塊負責向業務運營管理系統可靠地傳送感知延伸網絡所采集的數據信息。該層接收與發送的消息必須符合標準的消息格式。
●標準消息構成層。標準消息構成層由消息解析模塊和消息轉換模塊組成。消息解析模塊解析來自業務服務層的標準消息,調用消息轉換模塊將標準消息轉換為底層感知延伸設備能夠理解的依賴于具體設備通信協議的數據格式。當感知延伸層上傳數據時,該層的消息解析模塊則解析依賴于具體設備通信協議的消息,調用消息轉換模塊將其轉換為業務服務層能夠接收的標準格式的消息。消息構成層是泛在網網關的核心,完成對標準消息以及依賴于特定感知延伸網絡的消息的解析,并實現兩者之間的相互轉換,達到統一控制和管理底層感知延伸網絡,向上屏蔽底層網絡通信協議異構性的目的。
●協議適配層。協議適配層保證不同的感知延伸層協議能夠通過此層變成格式統一的數據和控制信令。
●感知延伸層。此層面向底層感知延伸設備,包含消息發送與消息接收兩個子模塊。消息發送模塊負責將經過消息構成層轉換后的可被特定感知延伸設備理解的消息發送給底層設備。消息接收模塊則接收來自底層設備的消息,發送至標準消息構成層進行解析。感知延伸網絡由感知設備組成,包括射RFID、GPS、視頻監控系統、各類型傳感器等。感知延伸設備之間支持多種通信協議,可以組成Lonworks和Zigbee以及其他多種感知延伸網絡。
(2)信息交互流程
信息交互流程分為以下幾個階段,如圖2所示。
●最終用戶產生符合標準數據格式的消息,并將其發送至網關業務服務層的消息接收模塊。
●業務服務層消息接收模塊將標準消息發送至標準消息構成層的消息解析模塊。
●消息解析模塊調用相應的消息轉換功能,將標準信息轉換為依賴于具體設備通信協議的消息。
●消息解析模塊將轉換為依賴于具體設備通信協議的消息傳送至感知延伸服務層的消息發送模塊。
●感知延伸服務層的消息發送模塊選擇合適的傳輸方式,將依賴設備通信協議的特定消息發送至具體的底層設備。

圖2 泛在網信息交互流程
●底層設備根據特定消息執行信息采集操作,并將結果返回給網關感知延伸服務層的消息接收模塊。
●網關的感知延伸服務層的消息接收模塊將依賴設備通信協議的特定消息傳送至標準消息構成層的消息解析模塊。
●消息解析模塊調用信息轉換模塊,將依賴于設備通信協議的特定消息轉換為標準消息。從圖2可以看出,泛在網網關解決了泛在網網絡內不同設備無法統一控制和管理的問題,達到屏蔽底層通信差異的目的,并使得最終用戶無需知道底層設備的具體通信細節,實現對不同感知延伸層設備的統一訪問。
(1)數據上報
以下給出網關中間件數據庫主要表設計:在插件中根據數據上報周期獲取并解析數據之后,需要將數據上報至平臺,上報數據使用平臺定義的REST接口,處理如下的請求和回復消息。
請求消息:
Parameters
Method PUT
Base URL
API Endpoint/devices/<device_id>/datastreams/<data_stream_id>/datapoints
Headers
WOT-ApiKey API_KEY_HERE
WOT-Developer DEVELOPER_ID_HERE
Body
“{
““timestamp””:““2012-03-15T16:13:14””,
““value””:““294.34””
}”
回復消息:
Parameters
Status Code 200 OK
其中,根據serial_no,在device_property表中可以獲取device_id,wot_apikey,developer_id,product_id信息。通過product_id以及獲取數據中的tagtext,可以在device_stream表中獲取device_stream_id的信息。
(2)心跳上報
在成功獲取設備數據之后,更新agent_statistics表。以網關參數表中的心跳周期參數heart_beat_cycle為周期,啟動timertask任務,比對當前時間與agent_statistics表的last_update_time字段的差,如果這個時間差在一個心跳周期之內,則使用平臺提供的如下接口,上報心跳消息并處理回復消息:
請求消息
Parameters
Method GET
Base URL
API Endpoint/devices/<device_id>/heartbeat
Headers
WOT-ApiKey API_KEY_HERE
WOT-Developer DEVELOPER_ID_HERE
Body
回復消息
Parameters
Status Code200OK
(3)反控長連接及反控
為了實現設備反控,網關中間件模塊與平臺建立了TCP長連接,把所有需要反向控制的設備都在這個TCP長連接中注冊,當平臺收到Restful的設備控制命令的時候,將通過這個TCP長連接來發送指令下來。關聯的表:wot_gw_db.device_property有一項屬性:register_status,當設備的該屬性被設定為“Y”的時候,在啟動時向平臺注冊該可反控設備。
TCP長連接建立后,會初始化一系列的狀態維護,包括建立一個處理接受緩沖區中的數據到消息隊列,啟動一個消息分發線程從消息隊列中獲取并處理消息,還將對長連接進行維持。
(4)REST方式的參數配置
網關使用了REST的風格進行接口設計,除了北向上報數據和部分南向數據獲取使用REST以外,網關參數配置也使用REST風格服務,實現參數查詢和修改功能,使用JAX-RS實現。JAX-RS是JavaEE6引入的一個新技術,是一個Java編程語言的應用程序接口,支持按照表述性狀態轉移(REST)架構風格創建Web服務。JAX-RS使用了JavaSE5引入的Java標注來簡化Web服務的客戶端和服務端的開發和部署。這里采用基于JAX-RS實現的框架Jersey來創建的Web Service,可方便地部署到Servlet容器,如Tomcat中。
查詢請求接口設計如下:
請求消息:
Parameters
Method GET
Base URL
API Endpoint/parameters
Headers
No Headers
Body
This request does not require body data
回復消息:
Parameters
Status Code 200 OK
Headers
No Headers
Body
“{
{““parameterID””:““1””,““key””:““heartbeat_cycle””,““value””:““30””,““description””:““heartbeat cycle””},
{““parameterID””:““2””,““key””:““data_update_interval””,““value””:““60””,““description””:““data update interval””}
}”
修改請求接口
請求消息:
Parameters
Method POST
Base URL
API Endpoint/parameters/<parameterID>
Headers
No Headers
Body
“{
““key””:““heartbeat_cycle””,
““value””:““60””,
““description””:““heartbeat cycle””
}”
回復消息:
Parameters
Status Code 200 OK
Headers
No Headers
Body
This response does not contain body data
網關中間件包括一個支持Java Jar包插件的功能,可以提供在不重新編譯網關程序的情況下,增加額外數據解析模塊。
這些模塊以Jar包方式提供(編程時需要遵守一定的規范,才能被網關中間件插件框架識別),放置在網關WebAPP特定目錄之下,啟動這些插件有兩種方式:
第一種:網關程序啟動時
當網關程序在Web容器內初始化時,會在特定目錄(以下稱Plugin目錄)下尋找Jar包。將找到的Jar包依次解析,判斷其是否為插件。如果是,Load插件到內存中,并啟動插件的入口方法。
第二種:在頁面上啟動插件
網關程序的Web頁面提供了一個上傳插件和啟動的交互UI。管理員可以通過這個頁面,把本機的插件Jar包上傳到Plugin目錄下,并且解析和啟動。
物聯網技術已經進入快速發展的階段,能夠接入多種類型的無線物聯網終端將成為其發展過程中必須解決的問題之一。物聯網網關作為接入多終端的重要設備,其設計應該遵循設備適配靈活,接入方便等特點。本文所設計的物聯網網關將成為業界相關領域發展的重要先導型研究。
[1]Bonnet P,Gehrke J,Seshadri P.Querying the Physical World [J].Personal Communications,IEEE,20007(5):10-15.
[2]CHOIi-Joung,JU Hong-Taek,CHA Hyun-Jun.An Efficient Embedded Web Server for Web-based Network Element Management[C].Network Operations and Management Symposium,2000:187-200.
[3]WANG Wei,LI Jun.An XML Firewall on Embedded Network Processor[C].4th International Conference on Networking and Services,2008:1-6.
[4]QIU Peng,ZHAO Yi,HEO Ung.Gateway Architecture for Zigbee Sensor Network for Remote Control over IP Network[C].8th Asia-Pacific Symposium on Information and Telecommunication Technologies,2010:1-4.
[5]Singh D,Daeyeoul K.Performance Analysis of Gateway Discovery Techniques:IPv6-Based Wireless Sensor Networks[C].2nd International Conference on Evolving Internet,2010:142-146.
[6]Hori Y,Onimaru K and Ikenaga T.Design and Implementation of an IPv6 Gateway Allowing Effective Use of Multihome Network[C].IEEE Pacific Rim Conference on Communications Computers and Signal Processing,2003,2:601-604.
[7]Guinard D,Trifa V,Wilde E.A resource Oriented Architecture for the Web of Things[C].Internet of Things(IOT),2010.IEEE,2010:1-8.
[8]Guinard D,Trifa V,Mattern F,et al.From the Internet of Things to the Web of Things:Resource-oriented Architecture and Best Practices[M].Architecting the Internet of Things.Springer Berlin Heidelberg,2011:97-129.
[9]Stirbu V.Towards a Restful Plug and Play Experience in the Web of Things[C].Semantic Computing,2008 IEEE International Conference on.IEEE,2008:512-517.
[10]Mulligan G.The 6Lo WP AN Architecture[C].Proceedings of the 4th Workshopon Embedded Networked Sensors.ACM,2007:78-82.