《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 一種面向服務(wù)的物聯(lián)網(wǎng)網(wǎng)關(guān)設(shè)計(jì)
一種面向服務(wù)的物聯(lián)網(wǎng)網(wǎng)關(guān)設(shè)計(jì)
2015年電子技術(shù)應(yīng)用第3期
楊建棟1,2,司 農(nóng)1,陳道新2,王 普1,楊 昊2
1.北京工業(yè)大學(xué) 電子信息與控制工程學(xué)院,北京100124; 2.首都信息發(fā)展股份有限公司,北京100080
摘要: 提出了一種普遍適用面向服務(wù)的物聯(lián)網(wǎng)網(wǎng)關(guān)的設(shè)計(jì)實(shí)現(xiàn)方式,通過(guò)對(duì)感知設(shè)備進(jìn)行識(shí)別、建立應(yīng)用路由并進(jìn)行控制管理,接收感知層發(fā)送的數(shù)據(jù)并進(jìn)行清洗和事件分析,向上層應(yīng)用傳遞清洗和篩選后的數(shù)據(jù)或事件信息,利用組件建立與感知設(shè)備間透明的、標(biāo)準(zhǔn)的對(duì)話模式。從設(shè)備管理、運(yùn)轉(zhuǎn)引擎、邏輯引擎等技術(shù)方面詳細(xì)描述了將底層設(shè)備統(tǒng)一化管理,使得當(dāng)感知設(shè)備的數(shù)據(jù)庫(kù)軟件或后端發(fā)生變化情況發(fā)生時(shí),應(yīng)用端無(wú)需修改或做簡(jiǎn)單修改就能處理,節(jié)省多對(duì)多連接的維護(hù)復(fù)雜性問(wèn)題,從而解決現(xiàn)在物聯(lián)網(wǎng)領(lǐng)域產(chǎn)品眾多、標(biāo)準(zhǔn)不統(tǒng)一的問(wèn)題。
中圖分類號(hào): TP393
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2015)03-0035-03
The design of gateway layer of IoT
Yang Jiandong1,2,Si Nong1,Chen Daoxin2,Wang Pu1,Yang Hao2
1.School of Electronic Information and Control Engineering,Beijing University of Technology,Beijing 100124,China; 2.Capinfo Compay Limited,Beijing 100080,China
Abstract: A service oriented middleware gateway design is proposed in this paper, which sets up the application route and control management through the identification of sensors, receives the data that send from perception layer, conducts the data cleaning and event analysis, then transfers the data or event information that has been cleaned and filtered to the upper layers, and constructs a transparent and standard model of conversation between perception equipment components. The underlying equipment unification management is described from equipment management, engine operation, logic engine and other technical aspects in detail, so that when changes occur in the sensing devices or backend database software, the application client could handle the change without modifying or do simple modification, which will save the maintenance complexity problem of the many-to-many connection, and solve the unified standard problem between numerous products.
Key words : IoT;gateway;middleware

 

0 引言

  物聯(lián)網(wǎng)IoT(Internet of Things)是通過(guò)射頻識(shí)別(RFID)、紅外感應(yīng)器、全球定位系統(tǒng)、激光掃描器等信息傳感設(shè)備,按約定的協(xié)議,把任何物體與互聯(lián)網(wǎng)相連接,進(jìn)行信息交換和通信,以實(shí)現(xiàn)對(duì)物體的智能化識(shí)別、定位、跟蹤、監(jiān)控和管理的一種網(wǎng)絡(luò)[1]。物聯(lián)網(wǎng)是應(yīng)用信息通信技術(shù)的最新產(chǎn)物,是繼計(jì)算機(jī)、互聯(lián)網(wǎng)和移動(dòng)通信之后引發(fā)新一輪信息產(chǎn)業(yè)浪潮的核心領(lǐng)域,已成為國(guó)際新一輪信息技術(shù)競(jìng)爭(zhēng)的關(guān)鍵點(diǎn)和制高點(diǎn)。

  物聯(lián)網(wǎng)應(yīng)用領(lǐng)域可全面覆蓋市政管理、公共安全、智能交通、能源公用、智能家居、金融和商業(yè)、醫(yī)療衛(wèi)生、工業(yè)和制造、農(nóng)業(yè)、生態(tài)環(huán)境等多個(gè)方面的市政管理與公共管理領(lǐng)域。大量、迫切的物聯(lián)網(wǎng)應(yīng)用需求帶來(lái)物聯(lián)網(wǎng)應(yīng)用支撐平臺(tái)的機(jī)遇和強(qiáng)烈需求,物聯(lián)網(wǎng)應(yīng)用支撐平臺(tái)可實(shí)現(xiàn)各種標(biāo)簽和傳感器等感知元件與應(yīng)用系統(tǒng)之間數(shù)據(jù)傳輸、過(guò)濾、數(shù)據(jù)格式轉(zhuǎn)換,具有統(tǒng)一的傳感信息接入標(biāo)準(zhǔn),具有對(duì)傳感信息進(jìn)行身份認(rèn)證和安全傳輸?shù)哪芰?。物?lián)網(wǎng)應(yīng)用中間件就是在企業(yè)應(yīng)用系統(tǒng)和物聯(lián)網(wǎng)應(yīng)用感知層感知元件間數(shù)據(jù)流入和數(shù)據(jù)流出和對(duì)其進(jìn)行管理的軟件,是連接和管理感知層和上層應(yīng)用系統(tǒng)的紐帶,使用戶能夠?qū)⒏兄獙硬杉臄?shù)據(jù)應(yīng)用到業(yè)務(wù)過(guò)程中[2]。物聯(lián)網(wǎng)應(yīng)用中間件是物聯(lián)網(wǎng)應(yīng)用支撐平臺(tái)關(guān)鍵,其扮演感知元件和應(yīng)用程序之間的中介角色。在存儲(chǔ)感知元件信息的數(shù)據(jù)庫(kù)軟件或后端發(fā)生變化,如應(yīng)用程序增加、改由其他軟件取代或者讀寫感知元件種類增加等情況發(fā)生時(shí),應(yīng)用端無(wú)需修改或只需做簡(jiǎn)單修改就能處理,節(jié)省多對(duì)多連接的維護(hù)復(fù)雜性問(wèn)題。物聯(lián)網(wǎng)應(yīng)用中間件組件設(shè)計(jì)主要分為感知層終端設(shè)備組件設(shè)計(jì)、中間件網(wǎng)關(guān)層組件設(shè)計(jì)及服務(wù)端組件設(shè)計(jì)。其中,感知層終端設(shè)備的設(shè)備驅(qū)動(dòng)程序是實(shí)現(xiàn)標(biāo)準(zhǔn)化設(shè)計(jì)的關(guān)鍵,中間件網(wǎng)關(guān)層組件設(shè)計(jì)是系統(tǒng)工作運(yùn)轉(zhuǎn)的核心。

  本文提出了一種面向服務(wù)的物聯(lián)網(wǎng)網(wǎng)關(guān)中間件的設(shè)計(jì)實(shí)現(xiàn)方式。在典型的物聯(lián)網(wǎng)應(yīng)用場(chǎng)景中,物聯(lián)網(wǎng)應(yīng)用中間件通過(guò)其感知元件管理功能對(duì)感知層各感知元件進(jìn)行識(shí)別、建立應(yīng)用路由并控制讀寫,接收感知層發(fā)送的數(shù)據(jù)并進(jìn)行清洗和事件分析,向上層應(yīng)用傳遞清洗和篩選后的數(shù)據(jù)或事件信息??衫镁W(wǎng)關(guān)組件建立與感知元件間透明的、標(biāo)準(zhǔn)的對(duì)話模式。

1 物聯(lián)網(wǎng)中間件應(yīng)用模型設(shè)計(jì)

  物聯(lián)網(wǎng)應(yīng)用中間件從下往上分為三層,分別為數(shù)據(jù)采集層、數(shù)據(jù)處理層以及上層應(yīng)用接口層,其示意圖[3]如圖1所示。

001.jpg

 ?。?)數(shù)據(jù)采集層:為底層不同的數(shù)據(jù)采集設(shè)備提供適配、管理以及異構(gòu)數(shù)據(jù)解析的功能。

  (2)數(shù)據(jù)處理層:對(duì)數(shù)據(jù)采集層傳回的物聯(lián)網(wǎng)元數(shù)據(jù)進(jìn)行處理并根據(jù)事先配置的業(yè)務(wù)規(guī)則,生成上層應(yīng)用能直接使用業(yè)務(wù)事件數(shù)據(jù),交由上層應(yīng)用使用。其中數(shù)據(jù)隊(duì)列管理組件對(duì)采集的數(shù)據(jù)提供緩存服務(wù);數(shù)據(jù)過(guò)濾引擎通過(guò)元事件匹配規(guī)則對(duì)數(shù)據(jù)采集層傳回的初始數(shù)據(jù)進(jìn)行去冗余操作,并生成元事件隊(duì)列;復(fù)雜事件處理組件通過(guò)查詢業(yè)務(wù)規(guī)則,使用基于有限自動(dòng)機(jī)和活動(dòng)實(shí)例棧的方法來(lái)檢測(cè)和處理復(fù)雜事件;業(yè)務(wù)規(guī)則配置組件提供靈活的業(yè)務(wù)配置管理機(jī)制,實(shí)現(xiàn)物聯(lián)網(wǎng)應(yīng)用中間件的可配置、可擴(kuò)展性。

 ?。?)上層應(yīng)用接口層:為上層應(yīng)用系統(tǒng)提供統(tǒng)一接口支持,如消息管理、事件管理、業(yè)務(wù)規(guī)則配置、應(yīng)用管理等,屏蔽物聯(lián)網(wǎng)應(yīng)用中間件內(nèi)部更改對(duì)外圍應(yīng)用的服務(wù)產(chǎn)生的耦合依賴。

  物聯(lián)網(wǎng)中間件的技術(shù)實(shí)現(xiàn)通過(guò)網(wǎng)關(guān)層組件將各種感知設(shè)備的數(shù)據(jù)采集并進(jìn)行處理整合到網(wǎng)關(guān),并經(jīng)過(guò)網(wǎng)關(guān)進(jìn)行數(shù)據(jù)封裝并傳遞給上層應(yīng)用[4],詳見圖2。

002.jpg

2 網(wǎng)關(guān)層組件設(shè)計(jì)

  網(wǎng)關(guān)層組件是物聯(lián)網(wǎng)應(yīng)用中間件的關(guān)鍵組件,它既要將服務(wù)器端發(fā)來(lái)的數(shù)據(jù)發(fā)送至感知層交互,又要將感知層采集的數(shù)據(jù)傳輸至服務(wù)器端。網(wǎng)關(guān)層的運(yùn)轉(zhuǎn)機(jī)制數(shù)據(jù)傳輸至關(guān)重要。整個(gè)網(wǎng)關(guān)應(yīng)用的設(shè)計(jì)都是以事件驅(qū)動(dòng)進(jìn)行設(shè)計(jì)的,事件驅(qū)動(dòng)是整個(gè)數(shù)據(jù)采集和流轉(zhuǎn)關(guān)鍵所在,同時(shí),設(shè)備管理設(shè)計(jì)是實(shí)現(xiàn)終端設(shè)備統(tǒng)一化管理的關(guān)鍵,設(shè)備驅(qū)動(dòng)程序提供設(shè)備的統(tǒng)一化接口和設(shè)備IP化的標(biāo)準(zhǔn)。網(wǎng)關(guān)層組件設(shè)計(jì)重點(diǎn)是運(yùn)轉(zhuǎn)引擎和設(shè)備管理驅(qū)動(dòng)程序設(shè)計(jì),如圖3所示。

003.jpg

  2.1 設(shè)備管理

  設(shè)備管理是對(duì)計(jì)算機(jī)的I/O系統(tǒng)的管理,其主要功能為[5]:

 ?。?)選擇和分配I/O設(shè)備進(jìn)行數(shù)據(jù)傳輸操作;

 ?。?)控制I/O設(shè)備與CPU(或內(nèi)存)之間交換數(shù)據(jù);

  (3)為用戶提供一個(gè)友好的接口,把用戶和設(shè)備硬件特性分開,使得用戶在編制應(yīng)用程序時(shí)不必涉及具體設(shè)備,由系統(tǒng)按用戶的要求來(lái)對(duì)設(shè)備的工作進(jìn)行控制。

 ?。?)提高設(shè)備與設(shè)備之間、CPU與設(shè)備之間以及進(jìn)程與進(jìn)程之間的并行操作程度,使操作系統(tǒng)獲得最佳效率。

  設(shè)備控制器是CPU與I/O設(shè)備之間的接口,它接收從CPU發(fā)來(lái)的命令并控制I/O設(shè)備工作。設(shè)備控制器是一個(gè)可編址設(shè)備,當(dāng)它僅控制一個(gè)設(shè)備時(shí),它只有一個(gè)惟一的設(shè)備地址;當(dāng)它控制多個(gè)設(shè)備時(shí),則應(yīng)具有多個(gè)設(shè)備地址,使每一個(gè)地址對(duì)應(yīng)一個(gè)設(shè)備。設(shè)備控制器由三部分組成,如圖4所示。

004.jpg

  網(wǎng)關(guān)設(shè)備管理主要是管理物聯(lián)網(wǎng)網(wǎng)關(guān)內(nèi)的所有設(shè)備,包括:網(wǎng)關(guān)設(shè)備、近程接入網(wǎng)絡(luò)設(shè)備及感知設(shè)備。設(shè)備管理分為設(shè)備地址管理、設(shè)備屬性管理和設(shè)備注冊(cè)與注銷管理。

  2.2 接口管理

  接口管理是通過(guò)設(shè)置I/O通道實(shí)現(xiàn),設(shè)置I/O通道的目的是使一些原來(lái)由CPU處理的I/O任務(wù)轉(zhuǎn)由通道來(lái)承擔(dān),從而把CPU從繁雜的I/O任務(wù)中解脫出來(lái)。

  在設(shè)置了通道后,CPU只需向通道發(fā)送一條I/O指令。通道在收到該指令后,便從內(nèi)存中取出本次要執(zhí)行的通道程序,然后執(zhí)行該通道程序。僅當(dāng)通道完成了規(guī)定的I/O任務(wù)后,才向CPU發(fā)中斷信號(hào)。

  I/O控制方式分為程序I/O方式、中斷驅(qū)動(dòng)I/O控制方式和DMA控制方式。

  網(wǎng)關(guān)層組件接口管理采用多通路I/O系統(tǒng)及中斷驅(qū)動(dòng)I/O控制的方式,從而使進(jìn)程要啟動(dòng)某個(gè)I/O設(shè)備工作時(shí)能實(shí)現(xiàn)CPU與I/O設(shè)備并行操作。

  2.3 邏輯處理引擎

  邏輯處理引擎的主要功能是當(dāng)一個(gè)設(shè)備事件觸發(fā)后根據(jù)數(shù)據(jù)等因素觸發(fā)其他設(shè)備的事件,邏輯引擎根據(jù)預(yù)先配置好的配置文件里的邏輯流程處理設(shè)備的相關(guān)邏輯。

  邏輯流程可以根據(jù)業(yè)務(wù)配置,并把邏輯流程以JSON格式存入配置文件中。格式為:邏輯ID={邏輯判斷條件,觸發(fā)設(shè)備地址}。

  物聯(lián)網(wǎng)網(wǎng)關(guān)的邏輯處理主要針對(duì)該網(wǎng)關(guān)內(nèi)的設(shè)備相關(guān)邏輯處理,網(wǎng)關(guān)間和復(fù)雜的邏輯處理都交由服務(wù)端應(yīng)用層進(jìn)行處理。物聯(lián)網(wǎng)網(wǎng)關(guān)邏輯處理流程[6]如圖5所示。

005.jpg

  2.4 運(yùn)轉(zhuǎn)引擎

  運(yùn)轉(zhuǎn)引擎是物聯(lián)網(wǎng)網(wǎng)關(guān)層組件運(yùn)轉(zhuǎn)的核心組件,整個(gè)應(yīng)用中間件是以事件驅(qū)動(dòng)為動(dòng)力、運(yùn)轉(zhuǎn)引擎任務(wù)處理為核心的運(yùn)轉(zhuǎn)體系。運(yùn)轉(zhuǎn)引擎具有多線程并發(fā)處理、多任務(wù)調(diào)度處理、優(yōu)先級(jí)處理、自動(dòng)伸縮線程池和接口對(duì)接的特點(diǎn)。

  運(yùn)轉(zhuǎn)引擎需要調(diào)度處理各個(gè)模塊產(chǎn)生的任務(wù),具體包括事件處理任務(wù)、數(shù)據(jù)處理任務(wù)、邏輯處理任務(wù)、數(shù)據(jù)傳輸任務(wù)、指令處理任務(wù)、配置管理任務(wù)等。

3 結(jié)語(yǔ)

  物聯(lián)網(wǎng)中間件網(wǎng)關(guān)設(shè)計(jì)是物聯(lián)網(wǎng)系統(tǒng)工作運(yùn)轉(zhuǎn)的核心,物聯(lián)網(wǎng)中間件網(wǎng)關(guān)層組件的設(shè)計(jì)是通過(guò)分析最下層感知設(shè)備(主要包括標(biāo)簽類設(shè)備、計(jì)量類傳感器及開關(guān)狀態(tài)量傳感器等)的特點(diǎn),充分發(fā)揮網(wǎng)關(guān)層組件的作用,通過(guò)設(shè)備管理的驅(qū)動(dòng)程序、運(yùn)轉(zhuǎn)引擎、邏輯引擎、連接池、事件處理引擎等技術(shù)將底層設(shè)備統(tǒng)一化管理,使得當(dāng)感知設(shè)備信息的數(shù)據(jù)庫(kù)軟件或后端發(fā)生變化情況發(fā)生時(shí),應(yīng)用端無(wú)需修改或只需做簡(jiǎn)單修改就能處理,節(jié)省多對(duì)多連接的維護(hù)復(fù)雜性問(wèn)題。同時(shí)形成傳感信息統(tǒng)一接入規(guī)范,解決物聯(lián)網(wǎng)領(lǐng)域產(chǎn)品眾多、標(biāo)準(zhǔn)不統(tǒng)一的問(wèn)題。

  參考文獻(xiàn)

  [1] 劉化君,劉傳清.物聯(lián)網(wǎng)技術(shù)[M].北京:電子工業(yè)出版社,2010.

  [2] 楊慧,丁志剛,鄭樹泉,等.一種面向服務(wù)的物聯(lián)網(wǎng)中間件的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2013,30(5):65-67.

  [3] 孫其博,劉杰,黎羴,等.物聯(lián)網(wǎng):概念、架構(gòu)與關(guān)鍵技術(shù)研究綜述[J].北京郵電大學(xué)學(xué)報(bào),2010,33(3):1-9.

  [4] VILLANUEVA F J,VILLA D,MOYA F,et al.Internet of Things architecture for a RFID-based product tracking business model[C].2012 Sixth International Conference on Innovative Mobile and Internet Services in Ubiquitous Com-puting,Palermo,2012:811-816.

  [5] 李杰.物聯(lián)網(wǎng)中無(wú)線傳感器節(jié)點(diǎn)和RFID數(shù)據(jù)融合的方法[J].電子設(shè)計(jì)工程,2011,19(7):103-106.

  [6] 張慧麗.JavaEE平臺(tái)上松耦合Web應(yīng)用模型設(shè)計(jì)與實(shí)現(xiàn)[J].科技信息,2007(16):334-335.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。