陸曉鈞 上海貝爾股份有限公司
產(chǎn)品與技術(shù)方案
泛在網(wǎng)網(wǎng)關(guān)中間件架構(gòu)設(shè)計(jì)
陸曉鈞上海貝爾股份有限公司
對(duì)泛在網(wǎng)網(wǎng)關(guān)中間件架構(gòu)進(jìn)行了設(shè)計(jì),針對(duì)無(wú)線物聯(lián)網(wǎng)終端的需求,分析了物聯(lián)網(wǎng)網(wǎng)關(guān)的基本產(chǎn)品需求,提出了泛在網(wǎng)網(wǎng)關(guān)的設(shè)計(jì)思路,闡述了層次結(jié)構(gòu)、信息交互流程。針對(duì)網(wǎng)關(guān)中間件的架構(gòu)設(shè)計(jì)和相關(guān)的數(shù)據(jù)上報(bào)、心跳上報(bào)等功能重點(diǎn)剖析了設(shè)計(jì)原理和可實(shí)現(xiàn)的架構(gòu)原理。
物聯(lián)網(wǎng);泛在網(wǎng);網(wǎng)關(guān)中間件
泛在網(wǎng)是具有全面感知、可靠傳輸、智能處理特征的連接物理世界的網(wǎng)絡(luò)。泛在網(wǎng)用途廣泛,遍及智能交通、環(huán)境保護(hù)、政府工作、公共安全、平安家居、智能消防、工業(yè)監(jiān)測(cè)、老人護(hù)理、個(gè)人健康、花卉栽培、水系監(jiān)測(cè)、食品溯源、敵情偵查和情報(bào)搜集等多個(gè)領(lǐng)域。泛在網(wǎng)的接入方式是多種多樣的,如廣域的PSTN、短距離的Z-Wave等,泛在網(wǎng)網(wǎng)關(guān)設(shè)備是將多種接入手段整合起來(lái),統(tǒng)一互聯(lián)到接入網(wǎng)絡(luò)的關(guān)鍵設(shè)備。它可滿(mǎn)足局部區(qū)域短距離通信的接入需求,實(shí)現(xiàn)與公共網(wǎng)絡(luò)的連接,同時(shí)完成轉(zhuǎn)發(fā)、控制、信令交換和編解碼等功能,而終端管理、安全認(rèn)證等功能保證了泛在網(wǎng)業(yè)務(wù)的質(zhì)量和安全。
泛在網(wǎng)網(wǎng)關(guān)在未來(lái)的泛在網(wǎng)時(shí)代將會(huì)扮演著非常重要的角色,可以實(shí)現(xiàn)感知延伸網(wǎng)絡(luò)與接入網(wǎng)絡(luò)之間的協(xié)議轉(zhuǎn)換,既可以實(shí)現(xiàn)廣域互聯(lián),也可以實(shí)現(xiàn)局域互聯(lián),將廣泛應(yīng)用于智能家居、智能社區(qū)、數(shù)字醫(yī)院、智能交通等各行各業(yè)。泛在網(wǎng)組網(wǎng)采用分層的通信系統(tǒng)架構(gòu),包括感知延伸系統(tǒng)、傳輸系統(tǒng)、業(yè)務(wù)運(yùn)營(yíng)管理系統(tǒng)和各種應(yīng)用,在不同的層次上支持不同的通信協(xié)議,如圖1所示。感知延伸系統(tǒng)包括感知和控制技術(shù),由感知延伸層設(shè)備以及網(wǎng)關(guān)組成,支持包括Lonworks、UPnP、Zig Bee等通信協(xié)議在內(nèi)的多種感知延伸網(wǎng)絡(luò)。感知設(shè)備可以通過(guò)多種接入技術(shù)連接到核心網(wǎng),實(shí)現(xiàn)數(shù)據(jù)的遠(yuǎn)程傳輸。
泛在網(wǎng)網(wǎng)關(guān)具備如下幾個(gè)功能。
圖1 泛在網(wǎng)網(wǎng)關(guān)邏輯架構(gòu)
(1)廣泛的接入能力。目前,用于近程通信的技術(shù)標(biāo)準(zhǔn)很多,僅常見(jiàn)的WSN技術(shù)就包括Lonworks、ZigBee、6LowPAN、RUBEE等。各類(lèi)技術(shù)主要針對(duì)某一應(yīng)用展開(kāi),缺乏兼容性和體系規(guī)劃,如Lonworks主要應(yīng)用于樓宇自動(dòng)化,RUBEE適用于惡意環(huán)境。如何實(shí)現(xiàn)協(xié)議的兼容性、接口和體系規(guī)劃,目前在國(guó)內(nèi)外已經(jīng)有多個(gè)組織在開(kāi)展泛在網(wǎng)網(wǎng)關(guān)的標(biāo)準(zhǔn)化工作,如3GPP、傳感器工作組,以實(shí)現(xiàn)各種通信技術(shù)標(biāo)準(zhǔn)的互聯(lián)互通。
(2)協(xié)議轉(zhuǎn)換能力。從不同的感知網(wǎng)絡(luò)到接入網(wǎng)絡(luò)的協(xié)議轉(zhuǎn)換,將下層的標(biāo)準(zhǔn)格式的數(shù)據(jù)統(tǒng)一封裝,保證不同的感知網(wǎng)絡(luò)的協(xié)議能夠變成統(tǒng)一的數(shù)據(jù)和信令;將上層下發(fā)的數(shù)據(jù)包解析成感知層協(xié)議可以識(shí)別的信令和控制指令。
(3)可管理能力。強(qiáng)大的管理能力,對(duì)于任何大型網(wǎng)絡(luò)都是必不可少的。首先要對(duì)網(wǎng)關(guān)進(jìn)行管理,如注冊(cè)管理、權(quán)限管理、狀態(tài)監(jiān)管等。網(wǎng)關(guān)實(shí)現(xiàn)子網(wǎng)內(nèi)節(jié)點(diǎn)的管理,如獲取節(jié)點(diǎn)的標(biāo)識(shí)、狀態(tài)、屬性、能量等以及遠(yuǎn)程喚醒、控制、診斷、升級(jí)和維護(hù)等。由于子網(wǎng)的技術(shù)標(biāo)準(zhǔn)不同,協(xié)議的復(fù)雜性不同,所以網(wǎng)關(guān)具有的管理能力不同。
泛在網(wǎng)網(wǎng)關(guān)可以實(shí)現(xiàn)感知網(wǎng)絡(luò)和基礎(chǔ)網(wǎng)絡(luò)以及不同類(lèi)型的感知網(wǎng)絡(luò)之間的協(xié)議轉(zhuǎn)換,既可以實(shí)現(xiàn)廣域互聯(lián),也可以實(shí)現(xiàn)局域互聯(lián)。本泛在網(wǎng)網(wǎng)關(guān)設(shè)計(jì)面向感知網(wǎng)絡(luò)的異構(gòu)數(shù)據(jù)感知環(huán)境,為有效屏蔽底層通信差異化進(jìn)行有效網(wǎng)絡(luò)融合和數(shù)據(jù)通信,采用模塊化設(shè)計(jì)、統(tǒng)一數(shù)據(jù)表示、統(tǒng)一地址轉(zhuǎn)換等實(shí)現(xiàn)。下面從泛在網(wǎng)網(wǎng)關(guān)的層次結(jié)構(gòu)、信息交互流程兩方面來(lái)進(jìn)行闡述。
(1)層次結(jié)構(gòu)
泛在網(wǎng)網(wǎng)關(guān)支持感知延伸設(shè)備之間的多種通信協(xié)議和數(shù)據(jù)類(lèi)型,實(shí)現(xiàn)多種感知延伸設(shè)備之間數(shù)據(jù)通信格式的轉(zhuǎn)換,對(duì)上傳的數(shù)據(jù)格式進(jìn)行統(tǒng)一,同時(shí)對(duì)下達(dá)到感知延伸網(wǎng)絡(luò)的采集或控制命令進(jìn)行映射,產(chǎn)生符合具體設(shè)備通信協(xié)議的消息。泛在網(wǎng)網(wǎng)關(guān)對(duì)感知延伸設(shè)備進(jìn)行統(tǒng)一控制與管理,向上層屏蔽底層感知延伸網(wǎng)絡(luò)的異構(gòu)性,共分為4層,分別為業(yè)務(wù)服務(wù)層、標(biāo)準(zhǔn)消息構(gòu)成層、協(xié)議適配和感知延伸層。
●業(yè)務(wù)服務(wù)層。業(yè)務(wù)服務(wù)層由消息接收模塊和消息發(fā)送模塊組成。消息接收模塊負(fù)責(zé)接收來(lái)自泛在網(wǎng)業(yè)務(wù)運(yùn)營(yíng)管理系統(tǒng)的標(biāo)準(zhǔn)消息,將消息傳遞給標(biāo)準(zhǔn)消息構(gòu)成層。消息發(fā)送模塊負(fù)責(zé)向業(yè)務(wù)運(yùn)營(yíng)管理系統(tǒng)可靠地傳送感知延伸網(wǎng)絡(luò)所采集的數(shù)據(jù)信息。該層接收與發(fā)送的消息必須符合標(biāo)準(zhǔn)的消息格式。
●標(biāo)準(zhǔn)消息構(gòu)成層。標(biāo)準(zhǔn)消息構(gòu)成層由消息解析模塊和消息轉(zhuǎn)換模塊組成。消息解析模塊解析來(lái)自業(yè)務(wù)服務(wù)層的標(biāo)準(zhǔn)消息,調(diào)用消息轉(zhuǎn)換模塊將標(biāo)準(zhǔn)消息轉(zhuǎn)換為底層感知延伸設(shè)備能夠理解的依賴(lài)于具體設(shè)備通信協(xié)議的數(shù)據(jù)格式。當(dāng)感知延伸層上傳數(shù)據(jù)時(shí),該層的消息解析模塊則解析依賴(lài)于具體設(shè)備通信協(xié)議的消息,調(diào)用消息轉(zhuǎn)換模塊將其轉(zhuǎn)換為業(yè)務(wù)服務(wù)層能夠接收的標(biāo)準(zhǔn)格式的消息。消息構(gòu)成層是泛在網(wǎng)網(wǎng)關(guān)的核心,完成對(duì)標(biāo)準(zhǔn)消息以及依賴(lài)于特定感知延伸網(wǎng)絡(luò)的消息的解析,并實(shí)現(xiàn)兩者之間的相互轉(zhuǎn)換,達(dá)到統(tǒng)一控制和管理底層感知延伸網(wǎng)絡(luò),向上屏蔽底層網(wǎng)絡(luò)通信協(xié)議異構(gòu)性的目的。
●協(xié)議適配層。協(xié)議適配層保證不同的感知延伸層協(xié)議能夠通過(guò)此層變成格式統(tǒng)一的數(shù)據(jù)和控制信令。
●感知延伸層。此層面向底層感知延伸設(shè)備,包含消息發(fā)送與消息接收兩個(gè)子模塊。消息發(fā)送模塊負(fù)責(zé)將經(jīng)過(guò)消息構(gòu)成層轉(zhuǎn)換后的可被特定感知延伸設(shè)備理解的消息發(fā)送給底層設(shè)備。消息接收模塊則接收來(lái)自底層設(shè)備的消息,發(fā)送至標(biāo)準(zhǔn)消息構(gòu)成層進(jìn)行解析。感知延伸網(wǎng)絡(luò)由感知設(shè)備組成,包括射RFID、GPS、視頻監(jiān)控系統(tǒng)、各類(lèi)型傳感器等。感知延伸設(shè)備之間支持多種通信協(xié)議,可以組成Lonworks和Zigbee以及其他多種感知延伸網(wǎng)絡(luò)。
(2)信息交互流程
信息交互流程分為以下幾個(gè)階段,如圖2所示。
●最終用戶(hù)產(chǎn)生符合標(biāo)準(zhǔn)數(shù)據(jù)格式的消息,并將其發(fā)送至網(wǎng)關(guān)業(yè)務(wù)服務(wù)層的消息接收模塊。
●業(yè)務(wù)服務(wù)層消息接收模塊將標(biāo)準(zhǔn)消息發(fā)送至標(biāo)準(zhǔn)消息構(gòu)成層的消息解析模塊。
●消息解析模塊調(diào)用相應(yīng)的消息轉(zhuǎn)換功能,將標(biāo)準(zhǔn)信息轉(zhuǎn)換為依賴(lài)于具體設(shè)備通信協(xié)議的消息。
●消息解析模塊將轉(zhuǎn)換為依賴(lài)于具體設(shè)備通信協(xié)議的消息傳送至感知延伸服務(wù)層的消息發(fā)送模塊。
●感知延伸服務(wù)層的消息發(fā)送模塊選擇合適的傳輸方式,將依賴(lài)設(shè)備通信協(xié)議的特定消息發(fā)送至具體的底層設(shè)備。
圖2 泛在網(wǎng)信息交互流程
●底層設(shè)備根據(jù)特定消息執(zhí)行信息采集操作,并將結(jié)果返回給網(wǎng)關(guān)感知延伸服務(wù)層的消息接收模塊。
●網(wǎng)關(guān)的感知延伸服務(wù)層的消息接收模塊將依賴(lài)設(shè)備通信協(xié)議的特定消息傳送至標(biāo)準(zhǔn)消息構(gòu)成層的消息解析模塊。
●消息解析模塊調(diào)用信息轉(zhuǎn)換模塊,將依賴(lài)于設(shè)備通信協(xié)議的特定消息轉(zhuǎn)換為標(biāo)準(zhǔn)消息。從圖2可以看出,泛在網(wǎng)網(wǎng)關(guān)解決了泛在網(wǎng)網(wǎng)絡(luò)內(nèi)不同設(shè)備無(wú)法統(tǒng)一控制和管理的問(wèn)題,達(dá)到屏蔽底層通信差異的目的,并使得最終用戶(hù)無(wú)需知道底層設(shè)備的具體通信細(xì)節(jié),實(shí)現(xiàn)對(duì)不同感知延伸層設(shè)備的統(tǒng)一訪問(wèn)。
(1)數(shù)據(jù)上報(bào)
以下給出網(wǎng)關(guān)中間件數(shù)據(jù)庫(kù)主要表設(shè)計(jì):在插件中根據(jù)數(shù)據(jù)上報(bào)周期獲取并解析數(shù)據(jù)之后,需要將數(shù)據(jù)上報(bào)至平臺(tái),上報(bào)數(shù)據(jù)使用平臺(tái)定義的REST接口,處理如下的請(qǐng)求和回復(fù)消息。
請(qǐng)求消息:
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””
}”
回復(fù)消息:
Parameters
Status Code 200 OK
其中,根據(jù)serial_no,在device_property表中可以獲取device_id,wot_apikey,developer_id,product_id信息。通過(guò)product_id以及獲取數(shù)據(jù)中的tagtext,可以在device_stream表中獲取device_stream_id的信息。
(2)心跳上報(bào)
在成功獲取設(shè)備數(shù)據(jù)之后,更新agent_statistics表。以網(wǎng)關(guān)參數(shù)表中的心跳周期參數(shù)heart_beat_cycle為周期,啟動(dòng)timertask任務(wù),比對(duì)當(dāng)前時(shí)間與agent_statistics表的last_update_time字段的差,如果這個(gè)時(shí)間差在一個(gè)心跳周期之內(nèi),則使用平臺(tái)提供的如下接口,上報(bào)心跳消息并處理回復(fù)消息:
請(qǐng)求消息
Parameters
Method GET
Base URL
API Endpoint/devices/<device_id>/heartbeat
Headers
WOT-ApiKey API_KEY_HERE
WOT-Developer DEVELOPER_ID_HERE
Body
回復(fù)消息
Parameters
Status Code200OK
(3)反控長(zhǎng)連接及反控
為了實(shí)現(xiàn)設(shè)備反控,網(wǎng)關(guān)中間件模塊與平臺(tái)建立了TCP長(zhǎng)連接,把所有需要反向控制的設(shè)備都在這個(gè)TCP長(zhǎng)連接中注冊(cè),當(dāng)平臺(tái)收到Restful的設(shè)備控制命令的時(shí)候,將通過(guò)這個(gè)TCP長(zhǎng)連接來(lái)發(fā)送指令下來(lái)。關(guān)聯(lián)的表:wot_gw_db.device_property有一項(xiàng)屬性:register_status,當(dāng)設(shè)備的該屬性被設(shè)定為“Y”的時(shí)候,在啟動(dòng)時(shí)向平臺(tái)注冊(cè)該可反控設(shè)備。
TCP長(zhǎng)連接建立后,會(huì)初始化一系列的狀態(tài)維護(hù),包括建立一個(gè)處理接受緩沖區(qū)中的數(shù)據(jù)到消息隊(duì)列,啟動(dòng)一個(gè)消息分發(fā)線程從消息隊(duì)列中獲取并處理消息,還將對(duì)長(zhǎng)連接進(jìn)行維持。
(4)REST方式的參數(shù)配置
網(wǎng)關(guān)使用了REST的風(fēng)格進(jìn)行接口設(shè)計(jì),除了北向上報(bào)數(shù)據(jù)和部分南向數(shù)據(jù)獲取使用REST以外,網(wǎng)關(guān)參數(shù)配置也使用REST風(fēng)格服務(wù),實(shí)現(xiàn)參數(shù)查詢(xún)和修改功能,使用JAX-RS實(shí)現(xiàn)。JAX-RS是JavaEE6引入的一個(gè)新技術(shù),是一個(gè)Java編程語(yǔ)言的應(yīng)用程序接口,支持按照表述性狀態(tài)轉(zhuǎn)移(REST)架構(gòu)風(fēng)格創(chuàng)建Web服務(wù)。JAX-RS使用了JavaSE5引入的Java標(biāo)注來(lái)簡(jiǎn)化Web服務(wù)的客戶(hù)端和服務(wù)端的開(kāi)發(fā)和部署。這里采用基于JAX-RS實(shí)現(xiàn)的框架Jersey來(lái)創(chuàng)建的Web Service,可方便地部署到Servlet容器,如Tomcat中。
查詢(xún)請(qǐng)求接口設(shè)計(jì)如下:
請(qǐng)求消息:
Parameters
Method GET
Base URL
API Endpoint/parameters
Headers
No Headers
Body
This request does not require body data
回復(fù)消息:
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””}
}”
修改請(qǐng)求接口
請(qǐng)求消息:
Parameters
Method POST
Base URL
API Endpoint/parameters/<parameterID>
Headers
No Headers
Body
“{
““key””:““heartbeat_cycle””,
““value””:““60””,
““description””:““heartbeat cycle””
}”
回復(fù)消息:
Parameters
Status Code 200 OK
Headers
No Headers
Body
This response does not contain body data
網(wǎng)關(guān)中間件包括一個(gè)支持Java Jar包插件的功能,可以提供在不重新編譯網(wǎng)關(guān)程序的情況下,增加額外數(shù)據(jù)解析模塊。
這些模塊以Jar包方式提供(編程時(shí)需要遵守一定的規(guī)范,才能被網(wǎng)關(guān)中間件插件框架識(shí)別),放置在網(wǎng)關(guān)WebAPP特定目錄之下,啟動(dòng)這些插件有兩種方式:
第一種:網(wǎng)關(guān)程序啟動(dòng)時(shí)
當(dāng)網(wǎng)關(guān)程序在Web容器內(nèi)初始化時(shí),會(huì)在特定目錄(以下稱(chēng)Plugin目錄)下尋找Jar包。將找到的Jar包依次解析,判斷其是否為插件。如果是,Load插件到內(nèi)存中,并啟動(dòng)插件的入口方法。
第二種:在頁(yè)面上啟動(dòng)插件
網(wǎng)關(guān)程序的Web頁(yè)面提供了一個(gè)上傳插件和啟動(dòng)的交互UI。管理員可以通過(guò)這個(gè)頁(yè)面,把本機(jī)的插件Jar包上傳到Plugin目錄下,并且解析和啟動(dòng)。
物聯(lián)網(wǎng)技術(shù)已經(jīng)進(jìn)入快速發(fā)展的階段,能夠接入多種類(lèi)型的無(wú)線物聯(lián)網(wǎng)終端將成為其發(fā)展過(guò)程中必須解決的問(wèn)題之一。物聯(lián)網(wǎng)網(wǎng)關(guān)作為接入多終端的重要設(shè)備,其設(shè)計(jì)應(yīng)該遵循設(shè)備適配靈活,接入方便等特點(diǎn)。本文所設(shè)計(jì)的物聯(lián)網(wǎng)網(wǎng)關(guān)將成為業(yè)界相關(guān)領(lǐng)域發(fā)展的重要先導(dǎo)型研究。
[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.