王若夢,劉 云,張振江
(北京交通大學通信與信息系統北京市重點實驗室 北京100044)
物聯網技術的相關應用已經越來越普遍。但對應于每一種具有實際管理要求和應用的物聯網,都需要開發與之相關的管理平臺或服務,這使物聯網的應用受到一定的限制和影響。開發一種通用的物聯網管理平臺,可以用于所有不同的異構網絡,并且實現對該網絡資源的管理將會使物聯網的應用更加普遍和靈活。本文立足于設計一種可以用于管理普遍物聯網的平臺,該平臺可以適應任意異構的網絡,可以靈活自主地管理本地物聯網資源,可以提供豐富的服務供其他系統使用,可以快速地添加模塊以實現用戶的特殊要求,并且具有良好的跨平臺性,與用戶使用的系統無關。本文詳細地分析了平臺的實現細節。
該平臺的網絡結構如圖1所示。
該平臺的服務器需要與被管理的物聯網網關在應用層連接,可以訪問該物聯網的中間件服務。平臺運行需要有ONS服務支持,用于解析物聯網節點EPC的網絡位置和數據存儲位置。平臺需要數據庫的支持,用來管理物聯網相關的數據,維護平臺的正常運行。平臺可以接入互聯網,為互聯網用戶提供服務。
為了實現該平臺最基本的兩個問題:物聯網如何接入該平臺;對于物聯網的各種功能,該平臺如何做到全部支持。我們考慮使用圖2所示的平臺結構。


網絡接口層用來實現物聯網的接入和訪問,主要提供中間件服務。中間件服務類似于“中間件的中間件”這一概念。不同功能的網絡,其中間件提供的功能和訪問方式都是不同的,平臺通過中間件服務,可以做到對中間件的統一管理調度。
中間件服務主要提供以下3個功能。
·中間件注冊:物聯網接入平臺時,需要向平臺注冊該網絡的中間件服務以及調度方式,供平臺使用。對應不同目標的中間件服務,生成中間件集,方便管理和調用。
·中間件訪問管理:向上層提供中間件訪問服務。需要根據上層需要訪問的節點目標自動匹配中間件集,提供相應服務。
·中間件注銷:注銷無用的中間件集或中間件集中的服務。
該層維護和管理平臺運行的基本環境,類似于平臺的 “硬件”。基礎服務層向系統提供完整的數據交互方式、系統故障處理和監視以及全部的數據管理功能,維護系統的正常運行。該層提供兩類服務:基本服務和數據服務。
3.2.1基本服務
基本服務用來維護平臺的基本運行,功能包括以下4方面。
(1)初始化功能
對未知的物聯網接入初始化,如子網物理位置、IP以及相關信息;對未知節點初始化,如節點EPC、ONS寫入,節點信息寫入等。
(2)ONS維護
需要對ONS服務器的解析服務進行維護。當有節點從子網A退出,進入子網B時,該層需要對該節點的ONS信息進行維護,使之與實際相符。
(3)網絡拓撲維護
至少做到某個節點歸屬子網之間的關系維護,對于一些更加復雜特殊的網絡,可以做到平臺需要的維護要求。
(4)節點狀態監視
對物聯網節點的狀態監視,向上層提供反饋和報警功能。
3.2.2數據服務
數據服務用來維護物聯網所有能夠訪問的數據。物聯網的數據維護可以分為兩類:數據緩沖區數據維護和數據庫數據維護。
數據緩沖區是為實時服務而開啟的內存區域,為上層提供節點數據的快速實時訪問。數據緩沖區數據維護內容包括將節點采集的數據向內存的映射管理,數據采樣率管理,內存釋放等。對于傳感器類網絡,數據緩沖區數據是平臺操作物聯網數據的最直接方式,可以做到對數據的實時監視。
數據庫是節點信息的基本存儲手段。數據庫中的內容包括兩類:系統數據和用戶數據。系統數據用來存儲平臺運行的基本信息,如節點基本信息、網絡拓撲信息、日志信息等。用戶數據是用戶自己配置的需要管理的信息。該信息通過用戶配置引擎將用戶需要管理的內容映射為數據庫相關表項,數據服務可以提供對這些表項的存取管理操作。
該層相當于 “軟件層”,它利用已經搭建好的運行環境,提供一些最基本的服務。系統可以提供的服務集包括以下4種。
(1)數據服務集
對數據緩沖區和用戶數據庫數據,提供一組對數據的操作,包括映射服務、讀寫服務等。
(2)數據處理服務集
提供對相關數據的操作和處理。
(3)內容顯示服務集
對各種類型的數據提供相應的顯示服務。
(4)系統操作服務集
系統操作服務集包括郵件服務、系統配置服務、報警服務等基于系統的服務類型。
對于一些特殊的應用要求,用戶可以自定義服務,來實現對物聯網的管理要求。
該層是面向用戶應用的一層。它的功能是通過用戶的需要,利用提供的用戶配置向導,將集成服務層的各種服務有機地組合和配置,使平臺實現用戶需要的管理功能。該層可以提供一些通用管理模板,實現大多數物聯網及其資源的管理,也可以使用戶自定義模板,實現用戶的特殊要求。
用戶配置包括數據配置和服務配置。在使用該平臺前,用戶必須明白需要管理物聯網的何種資源(數據)以及如何管理(服務)。
數據配置指用戶需要管理的對象以及相關屬性的添加設置。每一個物聯網節點,可以被惟一的EPC標示。標示背后的信息需要用戶自己添加。向導會針對用戶給出的管理對象的各種屬性內容,生成相關的用戶數據表項,或是開辟用于實時監控的數據緩存。
服務配置需要用戶根據自己的需要,告訴平臺物聯網以及資源應該如何管理。是否要出入庫登記,還是對某個溫度傳感器進行監視報警。該配置決定了平臺的運行方式。
SOA(service oriented architecture)可以實現該平臺期望的功能,即用戶通過網絡對松耦合的粗顆粒度應用組件進行分布式部署、組合和使用,從而實現對物聯網的管理。服務可以是運行在同一主機或不同主機不同網絡位置的應用程序來提供。程序之間通過定義良好的接口和協議來達到交互的目的。該平臺的設計基于SOA,位于“集成服務層”和“基礎服務層”的所有的服務都被設計為松耦合的粗顆粒度應用組件,所有服務都遵循Web services標準,使服務之間能夠更好地進行交互。
基本的SOA體系結構如圖3所示。
由于物聯網環境的不可預知和異步性,單一的SOA技術并不能很好地做到物聯網的實時響應。因此,該平臺的設計需要事件驅動技術的支持。定義于該系統的事件可以傳輸與所有服務組件之間。服務組件通過響應特定的事件來完成系統指定的各種功能。
一個典型的事件驅動模型包括由事件消費者、事件生產者和事件管理器組成。事件生產者向事件管理器發布事件,事件消費者從事件管理器訂閱和處理事件。當事件管理器從事件生產者那里接收到一個事件時,事件管理器把這個事件轉交給事件消費者。當該事件消費者不可用時,事件管理器將保留該事件并在一段時間間隔后重發。
將平臺上所有服務統一編制成基于Web services標準的粗顆粒度松耦合服務組件之后,可以統一通過如圖4所示的結構進行統一調度和管理。
服務引擎通過用戶服務配置文件,有規則地綁定集成服務層的服務以及制定事件處理規則。服務引擎需要通過服務注冊中心發現服務的位置和內容。由于基礎服務層和中間件接口層的設計對各自的上層透明,集成服務層的服務實現可以直接使用基礎服務層,基礎服務層的服務可以直接使用中間件服務而不需要從服務注冊中心發現。這兩層需要向服務注冊中心注冊服務,可以使其他系統或用戶發現并使用它們所提供的服務。
事件訂閱規則分為兩種:基礎事件和用戶定制。基礎事件指每個服務所能處理和產生的服務,用戶定制事件是用戶在配置服務時,服務引擎自動生成的用于控制服務結構和流程的事件,這些事件全部通過事件管理器管理。


不同用戶對于數據的管理要求各不相同,數據管理模式要求用戶完全自主定制。平臺在這里引入一個節點類型(nodetype)的概念。在數據配置階段,用戶通過分析自己的實際環境,將物聯網中的節點歸類,利用向導組織每類需要管理的內容。從系統角度看,每個nodetype可以被描述為幾個數據表的組合。節點讀寫時,根據該節點的nodetype和EPC碼自動讀取相對應的表項。向導工作流程如圖5所示。

系統初始化流程包括用戶數據配置、用戶服務配置、系統環境搭建與維護。
用戶數據配置主要用來告訴系統需要管理的對象有哪些。它主要是針對物聯網節點而設計的。在分析自己的需求之后,用戶可將需要管理的節點進行分類,為每一類命名,添加屬性。這樣,在系統初始化階段,平臺會為每類節點開辟數據表和數據緩存,提供相應的數據服務。平臺沒有為用戶數據配置提供專門的文件系統,數據配置相當于“硬件配置”。
用戶服務配置通過配置向導,將已有服務經過有機組合,向平臺提供相關的管理依據。用戶服務配置將生成專用于用戶服務引擎的文件格式。平臺依照該文件提供服務。
系統環境的搭建維護用來初始化平臺的運行環境。
系統初始化有下列兩種情況:系統第一次使用初始化和二次開機(配置和故障原因)初始化。系統第一次使用初始化和二次開機初始化流程如圖6和圖7所示。
其中,物聯網注冊包括物聯網IP信息、位置信息以及相關管理信息。

網絡節點注冊包括注冊該節點的網絡歸屬位置、ONS信息、用戶定義節點類型,必要時可以直接向用戶數據寫入節點內容以及屬性信息。
平臺環境維護用來維護平臺的基本運行環境,包括網絡拓撲、節點狀態等。
二次開機流程與第一次初始化流程不同的是,平臺只需要讀取用戶的服務配置文件,而不需要改變數據存儲結構。平臺需要檢查網絡拓撲結構,ONS數據是否與記錄一致,不一致時詢問用戶更新網絡節點或是記錄信息,接著進入服務,維護平臺環境。
該系統對兩類功能截然不同的物聯網進行了管理運行。一類是基于RFID的設備管理網絡。由于該網絡中間件接口使用標準Web服務接口,可以很輕松地接入該平臺中。節點類型nodetype使用了3張表項:節點信息表、結點狀態表、設備信息表。該平臺對該類網絡能夠做到非常好的支持。由于管理中對數據庫的服務涉及得比較多,用戶服務規則定制十分簡單,只需做到對3個數據表的讀取和修改即可。且服務可以在任何一臺連入互聯網的計算機中訪問。另一類是溫度傳感器監視網絡,用以實時監視環境中的溫度變化。由于物聯網網關提供中間件服務,將其接入網絡也相當簡單。對于實時監視,需要在平臺服務器中映射一段數據緩存區,這需要用到數據服務中的緩存映射服務。完成后,為服務配置設置監視規則和存儲點即可。用戶顯示方式運用曲線顯示,可以使用戶看到一段時間的溫度走勢情況。平臺對該類網絡也可以做到相當好的支持。
從該平臺的設計理念出發,該平臺可以做到對任意類型物聯網的支持,對其中的所有資源做到用戶自定義的管理。為了方便使用,平臺還設計了管理模板供用戶使用。實際運行中也證明了這一點。它可以為物聯網提供高效的組織管理功能,方便用戶快速地將各種類型的物聯網進行管理,必將對物聯網的發展起到促進作用。鑒于物聯網的異構性和使用的普遍性,這種網絡資源管理的方式也將成為物聯網中平臺設計的主要方式之一。
1張輝,于建江,湯克明.基于整合SOA與EDA的智能化時間驅動模型.計算機應用研究,2009,26(9):3354~3357
2葉宇風.基于SOA的企業應用集成研究.微電子學與計算機,2006,23(5):211~213
3魏東,陳曉江,房鼎益.基于SOA體系結構的軟件開發方法研究.微電子學與計算機,2005,22(6):73~76
4沈蘇彬,范曲立等.物聯網的體系結構與相關技術研究.南京郵電大學學報,2009,29(6):1~10