王若夢(mèng),劉 云,張振江
(北京交通大學(xué)通信與信息系統(tǒng)北京市重點(diǎn)實(shí)驗(yàn)室 北京100044)
物聯(lián)網(wǎng)技術(shù)的相關(guān)應(yīng)用已經(jīng)越來(lái)越普遍。但對(duì)應(yīng)于每一種具有實(shí)際管理要求和應(yīng)用的物聯(lián)網(wǎng),都需要開(kāi)發(fā)與之相關(guān)的管理平臺(tái)或服務(wù),這使物聯(lián)網(wǎng)的應(yīng)用受到一定的限制和影響。開(kāi)發(fā)一種通用的物聯(lián)網(wǎng)管理平臺(tái),可以用于所有不同的異構(gòu)網(wǎng)絡(luò),并且實(shí)現(xiàn)對(duì)該網(wǎng)絡(luò)資源的管理將會(huì)使物聯(lián)網(wǎng)的應(yīng)用更加普遍和靈活。本文立足于設(shè)計(jì)一種可以用于管理普遍物聯(lián)網(wǎng)的平臺(tái),該平臺(tái)可以適應(yīng)任意異構(gòu)的網(wǎng)絡(luò),可以靈活自主地管理本地物聯(lián)網(wǎng)資源,可以提供豐富的服務(wù)供其他系統(tǒng)使用,可以快速地添加模塊以實(shí)現(xiàn)用戶的特殊要求,并且具有良好的跨平臺(tái)性,與用戶使用的系統(tǒng)無(wú)關(guān)。本文詳細(xì)地分析了平臺(tái)的實(shí)現(xiàn)細(xì)節(jié)。
該平臺(tái)的網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
該平臺(tái)的服務(wù)器需要與被管理的物聯(lián)網(wǎng)網(wǎng)關(guān)在應(yīng)用層連接,可以訪問(wèn)該物聯(lián)網(wǎng)的中間件服務(wù)。平臺(tái)運(yùn)行需要有ONS服務(wù)支持,用于解析物聯(lián)網(wǎng)節(jié)點(diǎn)EPC的網(wǎng)絡(luò)位置和數(shù)據(jù)存儲(chǔ)位置。平臺(tái)需要數(shù)據(jù)庫(kù)的支持,用來(lái)管理物聯(lián)網(wǎng)相關(guān)的數(shù)據(jù),維護(hù)平臺(tái)的正常運(yùn)行。平臺(tái)可以接入互聯(lián)網(wǎng),為互聯(lián)網(wǎng)用戶提供服務(wù)。
為了實(shí)現(xiàn)該平臺(tái)最基本的兩個(gè)問(wèn)題:物聯(lián)網(wǎng)如何接入該平臺(tái);對(duì)于物聯(lián)網(wǎng)的各種功能,該平臺(tái)如何做到全部支持。我們考慮使用圖2所示的平臺(tái)結(jié)構(gòu)。
網(wǎng)絡(luò)接口層用來(lái)實(shí)現(xiàn)物聯(lián)網(wǎng)的接入和訪問(wèn),主要提供中間件服務(wù)。中間件服務(wù)類(lèi)似于“中間件的中間件”這一概念。不同功能的網(wǎng)絡(luò),其中間件提供的功能和訪問(wèn)方式都是不同的,平臺(tái)通過(guò)中間件服務(wù),可以做到對(duì)中間件的統(tǒng)一管理調(diào)度。
中間件服務(wù)主要提供以下3個(gè)功能。
·中間件注冊(cè):物聯(lián)網(wǎng)接入平臺(tái)時(shí),需要向平臺(tái)注冊(cè)該網(wǎng)絡(luò)的中間件服務(wù)以及調(diào)度方式,供平臺(tái)使用。對(duì)應(yīng)不同目標(biāo)的中間件服務(wù),生成中間件集,方便管理和調(diào)用。
·中間件訪問(wèn)管理:向上層提供中間件訪問(wèn)服務(wù)。需要根據(jù)上層需要訪問(wèn)的節(jié)點(diǎn)目標(biāo)自動(dòng)匹配中間件集,提供相應(yīng)服務(wù)。
·中間件注銷(xiāo):注銷(xiāo)無(wú)用的中間件集或中間件集中的服務(wù)。
該層維護(hù)和管理平臺(tái)運(yùn)行的基本環(huán)境,類(lèi)似于平臺(tái)的 “硬件”。基礎(chǔ)服務(wù)層向系統(tǒng)提供完整的數(shù)據(jù)交互方式、系統(tǒng)故障處理和監(jiān)視以及全部的數(shù)據(jù)管理功能,維護(hù)系統(tǒng)的正常運(yùn)行。該層提供兩類(lèi)服務(wù):基本服務(wù)和數(shù)據(jù)服務(wù)。
3.2.1基本服務(wù)
基本服務(wù)用來(lái)維護(hù)平臺(tái)的基本運(yùn)行,功能包括以下4方面。
(1)初始化功能
對(duì)未知的物聯(lián)網(wǎng)接入初始化,如子網(wǎng)物理位置、IP以及相關(guān)信息;對(duì)未知節(jié)點(diǎn)初始化,如節(jié)點(diǎn)EPC、ONS寫(xiě)入,節(jié)點(diǎn)信息寫(xiě)入等。
(2)ONS維護(hù)
需要對(duì)ONS服務(wù)器的解析服務(wù)進(jìn)行維護(hù)。當(dāng)有節(jié)點(diǎn)從子網(wǎng)A退出,進(jìn)入子網(wǎng)B時(shí),該層需要對(duì)該節(jié)點(diǎn)的ONS信息進(jìn)行維護(hù),使之與實(shí)際相符。
(3)網(wǎng)絡(luò)拓?fù)渚S護(hù)
至少做到某個(gè)節(jié)點(diǎn)歸屬子網(wǎng)之間的關(guān)系維護(hù),對(duì)于一些更加復(fù)雜特殊的網(wǎng)絡(luò),可以做到平臺(tái)需要的維護(hù)要求。
(4)節(jié)點(diǎn)狀態(tài)監(jiān)視
對(duì)物聯(lián)網(wǎng)節(jié)點(diǎn)的狀態(tài)監(jiān)視,向上層提供反饋和報(bào)警功能。
3.2.2數(shù)據(jù)服務(wù)
數(shù)據(jù)服務(wù)用來(lái)維護(hù)物聯(lián)網(wǎng)所有能夠訪問(wèn)的數(shù)據(jù)。物聯(lián)網(wǎng)的數(shù)據(jù)維護(hù)可以分為兩類(lèi):數(shù)據(jù)緩沖區(qū)數(shù)據(jù)維護(hù)和數(shù)據(jù)庫(kù)數(shù)據(jù)維護(hù)。
數(shù)據(jù)緩沖區(qū)是為實(shí)時(shí)服務(wù)而開(kāi)啟的內(nèi)存區(qū)域,為上層提供節(jié)點(diǎn)數(shù)據(jù)的快速實(shí)時(shí)訪問(wèn)。數(shù)據(jù)緩沖區(qū)數(shù)據(jù)維護(hù)內(nèi)容包括將節(jié)點(diǎn)采集的數(shù)據(jù)向內(nèi)存的映射管理,數(shù)據(jù)采樣率管理,內(nèi)存釋放等。對(duì)于傳感器類(lèi)網(wǎng)絡(luò),數(shù)據(jù)緩沖區(qū)數(shù)據(jù)是平臺(tái)操作物聯(lián)網(wǎng)數(shù)據(jù)的最直接方式,可以做到對(duì)數(shù)據(jù)的實(shí)時(shí)監(jiān)視。
數(shù)據(jù)庫(kù)是節(jié)點(diǎn)信息的基本存儲(chǔ)手段。數(shù)據(jù)庫(kù)中的內(nèi)容包括兩類(lèi):系統(tǒng)數(shù)據(jù)和用戶數(shù)據(jù)。系統(tǒng)數(shù)據(jù)用來(lái)存儲(chǔ)平臺(tái)運(yùn)行的基本信息,如節(jié)點(diǎn)基本信息、網(wǎng)絡(luò)拓?fù)湫畔?、日志信息等。用戶?shù)據(jù)是用戶自己配置的需要管理的信息。該信息通過(guò)用戶配置引擎將用戶需要管理的內(nèi)容映射為數(shù)據(jù)庫(kù)相關(guān)表項(xiàng),數(shù)據(jù)服務(wù)可以提供對(duì)這些表項(xiàng)的存取管理操作。
該層相當(dāng)于 “軟件層”,它利用已經(jīng)搭建好的運(yùn)行環(huán)境,提供一些最基本的服務(wù)。系統(tǒng)可以提供的服務(wù)集包括以下4種。
(1)數(shù)據(jù)服務(wù)集
對(duì)數(shù)據(jù)緩沖區(qū)和用戶數(shù)據(jù)庫(kù)數(shù)據(jù),提供一組對(duì)數(shù)據(jù)的操作,包括映射服務(wù)、讀寫(xiě)服務(wù)等。
(2)數(shù)據(jù)處理服務(wù)集
提供對(duì)相關(guān)數(shù)據(jù)的操作和處理。
(3)內(nèi)容顯示服務(wù)集
對(duì)各種類(lèi)型的數(shù)據(jù)提供相應(yīng)的顯示服務(wù)。
(4)系統(tǒng)操作服務(wù)集
系統(tǒng)操作服務(wù)集包括郵件服務(wù)、系統(tǒng)配置服務(wù)、報(bào)警服務(wù)等基于系統(tǒng)的服務(wù)類(lèi)型。
對(duì)于一些特殊的應(yīng)用要求,用戶可以自定義服務(wù),來(lái)實(shí)現(xiàn)對(duì)物聯(lián)網(wǎng)的管理要求。
該層是面向用戶應(yīng)用的一層。它的功能是通過(guò)用戶的需要,利用提供的用戶配置向?qū)В瑢⒓煞?wù)層的各種服務(wù)有機(jī)地組合和配置,使平臺(tái)實(shí)現(xiàn)用戶需要的管理功能。該層可以提供一些通用管理模板,實(shí)現(xiàn)大多數(shù)物聯(lián)網(wǎng)及其資源的管理,也可以使用戶自定義模板,實(shí)現(xiàn)用戶的特殊要求。
用戶配置包括數(shù)據(jù)配置和服務(wù)配置。在使用該平臺(tái)前,用戶必須明白需要管理物聯(lián)網(wǎng)的何種資源(數(shù)據(jù))以及如何管理(服務(wù))。
數(shù)據(jù)配置指用戶需要管理的對(duì)象以及相關(guān)屬性的添加設(shè)置。每一個(gè)物聯(lián)網(wǎng)節(jié)點(diǎn),可以被惟一的EPC標(biāo)示。標(biāo)示背后的信息需要用戶自己添加。向?qū)?huì)針對(duì)用戶給出的管理對(duì)象的各種屬性內(nèi)容,生成相關(guān)的用戶數(shù)據(jù)表項(xiàng),或是開(kāi)辟用于實(shí)時(shí)監(jiān)控的數(shù)據(jù)緩存。
服務(wù)配置需要用戶根據(jù)自己的需要,告訴平臺(tái)物聯(lián)網(wǎng)以及資源應(yīng)該如何管理。是否要出入庫(kù)登記,還是對(duì)某個(gè)溫度傳感器進(jìn)行監(jiān)視報(bào)警。該配置決定了平臺(tái)的運(yùn)行方式。
SOA(service oriented architecture)可以實(shí)現(xiàn)該平臺(tái)期望的功能,即用戶通過(guò)網(wǎng)絡(luò)對(duì)松耦合的粗顆粒度應(yīng)用組件進(jìn)行分布式部署、組合和使用,從而實(shí)現(xiàn)對(duì)物聯(lián)網(wǎng)的管理。服務(wù)可以是運(yùn)行在同一主機(jī)或不同主機(jī)不同網(wǎng)絡(luò)位置的應(yīng)用程序來(lái)提供。程序之間通過(guò)定義良好的接口和協(xié)議來(lái)達(dá)到交互的目的。該平臺(tái)的設(shè)計(jì)基于SOA,位于“集成服務(wù)層”和“基礎(chǔ)服務(wù)層”的所有的服務(wù)都被設(shè)計(jì)為松耦合的粗顆粒度應(yīng)用組件,所有服務(wù)都遵循Web services標(biāo)準(zhǔn),使服務(wù)之間能夠更好地進(jìn)行交互。
基本的SOA體系結(jié)構(gòu)如圖3所示。
由于物聯(lián)網(wǎng)環(huán)境的不可預(yù)知和異步性,單一的SOA技術(shù)并不能很好地做到物聯(lián)網(wǎng)的實(shí)時(shí)響應(yīng)。因此,該平臺(tái)的設(shè)計(jì)需要事件驅(qū)動(dòng)技術(shù)的支持。定義于該系統(tǒng)的事件可以傳輸與所有服務(wù)組件之間。服務(wù)組件通過(guò)響應(yīng)特定的事件來(lái)完成系統(tǒng)指定的各種功能。
一個(gè)典型的事件驅(qū)動(dòng)模型包括由事件消費(fèi)者、事件生產(chǎn)者和事件管理器組成。事件生產(chǎn)者向事件管理器發(fā)布事件,事件消費(fèi)者從事件管理器訂閱和處理事件。當(dāng)事件管理器從事件生產(chǎn)者那里接收到一個(gè)事件時(shí),事件管理器把這個(gè)事件轉(zhuǎn)交給事件消費(fèi)者。當(dāng)該事件消費(fèi)者不可用時(shí),事件管理器將保留該事件并在一段時(shí)間間隔后重發(fā)。
將平臺(tái)上所有服務(wù)統(tǒng)一編制成基于Web services標(biāo)準(zhǔn)的粗顆粒度松耦合服務(wù)組件之后,可以統(tǒng)一通過(guò)如圖4所示的結(jié)構(gòu)進(jìn)行統(tǒng)一調(diào)度和管理。
服務(wù)引擎通過(guò)用戶服務(wù)配置文件,有規(guī)則地綁定集成服務(wù)層的服務(wù)以及制定事件處理規(guī)則。服務(wù)引擎需要通過(guò)服務(wù)注冊(cè)中心發(fā)現(xiàn)服務(wù)的位置和內(nèi)容。由于基礎(chǔ)服務(wù)層和中間件接口層的設(shè)計(jì)對(duì)各自的上層透明,集成服務(wù)層的服務(wù)實(shí)現(xiàn)可以直接使用基礎(chǔ)服務(wù)層,基礎(chǔ)服務(wù)層的服務(wù)可以直接使用中間件服務(wù)而不需要從服務(wù)注冊(cè)中心發(fā)現(xiàn)。這兩層需要向服務(wù)注冊(cè)中心注冊(cè)服務(wù),可以使其他系統(tǒng)或用戶發(fā)現(xiàn)并使用它們所提供的服務(wù)。
事件訂閱規(guī)則分為兩種:基礎(chǔ)事件和用戶定制?;A(chǔ)事件指每個(gè)服務(wù)所能處理和產(chǎn)生的服務(wù),用戶定制事件是用戶在配置服務(wù)時(shí),服務(wù)引擎自動(dòng)生成的用于控制服務(wù)結(jié)構(gòu)和流程的事件,這些事件全部通過(guò)事件管理器管理。
不同用戶對(duì)于數(shù)據(jù)的管理要求各不相同,數(shù)據(jù)管理模式要求用戶完全自主定制。平臺(tái)在這里引入一個(gè)節(jié)點(diǎn)類(lèi)型(nodetype)的概念。在數(shù)據(jù)配置階段,用戶通過(guò)分析自己的實(shí)際環(huán)境,將物聯(lián)網(wǎng)中的節(jié)點(diǎn)歸類(lèi),利用向?qū)ЫM織每類(lèi)需要管理的內(nèi)容。從系統(tǒng)角度看,每個(gè)nodetype可以被描述為幾個(gè)數(shù)據(jù)表的組合。節(jié)點(diǎn)讀寫(xiě)時(shí),根據(jù)該節(jié)點(diǎn)的nodetype和EPC碼自動(dòng)讀取相對(duì)應(yīng)的表項(xiàng)。向?qū)Чぷ髁鞒倘鐖D5所示。
系統(tǒng)初始化流程包括用戶數(shù)據(jù)配置、用戶服務(wù)配置、系統(tǒng)環(huán)境搭建與維護(hù)。
用戶數(shù)據(jù)配置主要用來(lái)告訴系統(tǒng)需要管理的對(duì)象有哪些。它主要是針對(duì)物聯(lián)網(wǎng)節(jié)點(diǎn)而設(shè)計(jì)的。在分析自己的需求之后,用戶可將需要管理的節(jié)點(diǎn)進(jìn)行分類(lèi),為每一類(lèi)命名,添加屬性。這樣,在系統(tǒng)初始化階段,平臺(tái)會(huì)為每類(lèi)節(jié)點(diǎn)開(kāi)辟數(shù)據(jù)表和數(shù)據(jù)緩存,提供相應(yīng)的數(shù)據(jù)服務(wù)。平臺(tái)沒(méi)有為用戶數(shù)據(jù)配置提供專門(mén)的文件系統(tǒng),數(shù)據(jù)配置相當(dāng)于“硬件配置”。
用戶服務(wù)配置通過(guò)配置向?qū)?,將已有服?wù)經(jīng)過(guò)有機(jī)組合,向平臺(tái)提供相關(guān)的管理依據(jù)。用戶服務(wù)配置將生成專用于用戶服務(wù)引擎的文件格式。平臺(tái)依照該文件提供服務(wù)。
系統(tǒng)環(huán)境的搭建維護(hù)用來(lái)初始化平臺(tái)的運(yùn)行環(huán)境。
系統(tǒng)初始化有下列兩種情況:系統(tǒng)第一次使用初始化和二次開(kāi)機(jī)(配置和故障原因)初始化。系統(tǒng)第一次使用初始化和二次開(kāi)機(jī)初始化流程如圖6和圖7所示。
其中,物聯(lián)網(wǎng)注冊(cè)包括物聯(lián)網(wǎng)IP信息、位置信息以及相關(guān)管理信息。
網(wǎng)絡(luò)節(jié)點(diǎn)注冊(cè)包括注冊(cè)該節(jié)點(diǎn)的網(wǎng)絡(luò)歸屬位置、ONS信息、用戶定義節(jié)點(diǎn)類(lèi)型,必要時(shí)可以直接向用戶數(shù)據(jù)寫(xiě)入節(jié)點(diǎn)內(nèi)容以及屬性信息。
平臺(tái)環(huán)境維護(hù)用來(lái)維護(hù)平臺(tái)的基本運(yùn)行環(huán)境,包括網(wǎng)絡(luò)拓?fù)?、?jié)點(diǎn)狀態(tài)等。
二次開(kāi)機(jī)流程與第一次初始化流程不同的是,平臺(tái)只需要讀取用戶的服務(wù)配置文件,而不需要改變數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)。平臺(tái)需要檢查網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),ONS數(shù)據(jù)是否與記錄一致,不一致時(shí)詢問(wèn)用戶更新網(wǎng)絡(luò)節(jié)點(diǎn)或是記錄信息,接著進(jìn)入服務(wù),維護(hù)平臺(tái)環(huán)境。
該系統(tǒng)對(duì)兩類(lèi)功能截然不同的物聯(lián)網(wǎng)進(jìn)行了管理運(yùn)行。一類(lèi)是基于RFID的設(shè)備管理網(wǎng)絡(luò)。由于該網(wǎng)絡(luò)中間件接口使用標(biāo)準(zhǔn)Web服務(wù)接口,可以很輕松地接入該平臺(tái)中。節(jié)點(diǎn)類(lèi)型nodetype使用了3張表項(xiàng):節(jié)點(diǎn)信息表、結(jié)點(diǎn)狀態(tài)表、設(shè)備信息表。該平臺(tái)對(duì)該類(lèi)網(wǎng)絡(luò)能夠做到非常好的支持。由于管理中對(duì)數(shù)據(jù)庫(kù)的服務(wù)涉及得比較多,用戶服務(wù)規(guī)則定制十分簡(jiǎn)單,只需做到對(duì)3個(gè)數(shù)據(jù)表的讀取和修改即可。且服務(wù)可以在任何一臺(tái)連入互聯(lián)網(wǎng)的計(jì)算機(jī)中訪問(wèn)。另一類(lèi)是溫度傳感器監(jiān)視網(wǎng)絡(luò),用以實(shí)時(shí)監(jiān)視環(huán)境中的溫度變化。由于物聯(lián)網(wǎng)網(wǎng)關(guān)提供中間件服務(wù),將其接入網(wǎng)絡(luò)也相當(dāng)簡(jiǎn)單。對(duì)于實(shí)時(shí)監(jiān)視,需要在平臺(tái)服務(wù)器中映射一段數(shù)據(jù)緩存區(qū),這需要用到數(shù)據(jù)服務(wù)中的緩存映射服務(wù)。完成后,為服務(wù)配置設(shè)置監(jiān)視規(guī)則和存儲(chǔ)點(diǎn)即可。用戶顯示方式運(yùn)用曲線顯示,可以使用戶看到一段時(shí)間的溫度走勢(shì)情況。平臺(tái)對(duì)該類(lèi)網(wǎng)絡(luò)也可以做到相當(dāng)好的支持。
從該平臺(tái)的設(shè)計(jì)理念出發(fā),該平臺(tái)可以做到對(duì)任意類(lèi)型物聯(lián)網(wǎng)的支持,對(duì)其中的所有資源做到用戶自定義的管理。為了方便使用,平臺(tái)還設(shè)計(jì)了管理模板供用戶使用。實(shí)際運(yùn)行中也證明了這一點(diǎn)。它可以為物聯(lián)網(wǎng)提供高效的組織管理功能,方便用戶快速地將各種類(lèi)型的物聯(lián)網(wǎng)進(jìn)行管理,必將對(duì)物聯(lián)網(wǎng)的發(fā)展起到促進(jìn)作用。鑒于物聯(lián)網(wǎng)的異構(gòu)性和使用的普遍性,這種網(wǎng)絡(luò)資源管理的方式也將成為物聯(lián)網(wǎng)中平臺(tái)設(shè)計(jì)的主要方式之一。
1張輝,于建江,湯克明.基于整合SOA與EDA的智能化時(shí)間驅(qū)動(dòng)模型.計(jì)算機(jī)應(yīng)用研究,2009,26(9):3354~3357
2葉宇風(fēng).基于SOA的企業(yè)應(yīng)用集成研究.微電子學(xué)與計(jì)算機(jī),2006,23(5):211~213
3魏東,陳曉江,房鼎益.基于SOA體系結(jié)構(gòu)的軟件開(kāi)發(fā)方法研究.微電子學(xué)與計(jì)算機(jī),2005,22(6):73~76
4沈蘇彬,范曲立等.物聯(lián)網(wǎng)的體系結(jié)構(gòu)與相關(guān)技術(shù)研究.南京郵電大學(xué)學(xué)報(bào),2009,29(6):1~10