物聯(lián)傳媒 旗下網(wǎng)站
登錄 注冊(cè)

一種面向服務(wù)的物聯(lián)網(wǎng)網(wǎng)關(guān)設(shè)計(jì)

作者:楊建棟,司 農(nóng),陳道新,王 普,楊 昊
來(lái)源:2015年電子技術(shù)應(yīng)用第3期
日期:2015-08-18 15:57:09
摘要:本文提出了一種面向服務(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ì)話模式。

  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所示。

   一種面向服務(wù)的物聯(lián)網(wǎng)網(wǎng)關(guān)設(shè)計(jì)

  (1)數(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ò)展性。

  (3)上層應(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。

   一種面向服務(wù)的物聯(lián)網(wǎng)網(wǎng)關(guān)設(shè)計(jì)

  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所示。

   一種面向服務(wù)的物聯(lián)網(wǎng)網(wǎng)關(guān)設(shè)計(jì)

  2.1 設(shè)備管理

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

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

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

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

  (4)提高設(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所示。

   一種面向服務(wù)的物聯(lián)網(wǎng)網(wǎng)關(guān)設(shè)計(jì)

  網(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所示。

   一種面向服務(wù)的物聯(lián)網(wǎng)網(wǎng)關(guān)設(shè)計(jì)

  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)題。