王 斌,汪峰坤,張婷婷
隨著物聯(lián)網(wǎng)技術(shù)、通信技術(shù)、云計算的快速發(fā)展[1-2],智能化設(shè)備的不斷涌現(xiàn),人們的生活環(huán)境愈發(fā)智能化,智能環(huán)境(Ambient Intelligence)[3]的概念應(yīng)運(yùn)而生.人們在智能環(huán)境中的工作和生活過程就是使用智能設(shè)備的過程,也是人與智能設(shè)備不間斷的交互過程.在這個過程中,智能設(shè)備不再只是一個被動地執(zhí)行人的顯式的操作命令的信息處理工具,而是在一定的情景感知下協(xié)助人完成任務(wù)的幫手,交互的雙方具有和諧一致的協(xié)作關(guān)系.智能環(huán)境實際上是通過情景感知、服務(wù)推理、服務(wù)組合執(zhí)行等動作為人們提供智能化服務(wù)的系統(tǒng).
然而,由于智能環(huán)境服務(wù)系統(tǒng)的供應(yīng)商眾多(如百度、阿里、騰訊、谷歌、小米等),各家平臺在硬件接口、通信協(xié)議、數(shù)據(jù)格式等方面不盡相同,智能環(huán)境實際上還是存在“信息交互孤島”的問題.同時,目前的智能環(huán)境服務(wù)主要集中在環(huán)境信息采集和設(shè)備控制上,并沒有考慮使用者之間的差異,體現(xiàn)以人為本的智能化特點.研究表明,為了更好地滿足人們對智能環(huán)境的智能化需求,智能環(huán)境服務(wù)系統(tǒng)應(yīng)該滿足以下三個方面:
(1)智能環(huán)境服務(wù)系統(tǒng)是一個開放的服務(wù)平臺,要能夠兼容主流廠商的軟硬件系統(tǒng).
(2)智能環(huán)境服務(wù)系統(tǒng)應(yīng)該更主動地為用戶提供智能化的服務(wù)[4-5],具備特征行為提取和行為庫建立的能力,并能預(yù)測人們的行為,而不是孤立地執(zhí)行用戶發(fā)出一個個獨立的指令.
(3)智能環(huán)境服務(wù)系統(tǒng)應(yīng)該利用已有的Web服務(wù),不斷優(yōu)化服務(wù)組合方案,提升系統(tǒng)服務(wù)與用戶需求的契合度.
為了解決異構(gòu)設(shè)備交互孤島和缺乏智能化的問題,本文提出了一種基于REST風(fēng)格的智能環(huán)境服務(wù)系統(tǒng)框架.該框架通過REST中間件技術(shù)將設(shè)備及數(shù)據(jù)抽象成資源,并通過標(biāo)準(zhǔn)的REST API服務(wù)實現(xiàn)對資源的操作,引入云服務(wù)系統(tǒng),通過約簡用戶歷史操作數(shù)據(jù)形成特征方法庫,結(jié)合群體智能算法和模式匹配算法為用戶提供個性化的智能服務(wù).最后以智能家居為背景進(jìn)行了案例設(shè)計分析.
REST即表述性狀態(tài)傳遞(R Epresentational State Transfer),是分布式系統(tǒng)設(shè)計的一種軟件架構(gòu)風(fēng)格.REST架構(gòu)將整個Web抽象成各類資源的集合,通過URI(Uniform Resource Identifier)標(biāo)識資源,采用基于HTTP協(xié)議的標(biāo)準(zhǔn)方法實現(xiàn)對資源的增刪改查操作.與傳統(tǒng)的SOAP相比,REST具有系統(tǒng)開銷小、復(fù)雜度低、接口統(tǒng)一的優(yōu)點[6].REST架構(gòu)主要有如下特性.
(1)無狀態(tài)通信.Client對Server的請求是無狀態(tài)的,Server不保存任何請求狀態(tài)信息;Client的每一個請求都具有User credentials等所需要的全部信息,所以能被任意可用的Server應(yīng)答.由于智能環(huán)境中的海量數(shù)據(jù)通信,無狀態(tài)通信有效地降低了Server內(nèi)存占用率,提升了Server系統(tǒng)的伸縮性.
(2)統(tǒng)一接口.采用標(biāo)準(zhǔn)的HTTP方法實現(xiàn)對資源的創(chuàng)建、檢索、更新和刪除.創(chuàng)建資源-POST、檢索資源-GET、更新或添加資源-PUT、刪除資源-DELETE.REST系統(tǒng)中對資源的所有操作都采用上述統(tǒng)一接口,統(tǒng)一接口的使用提升了組件之間的交互能力,是REST架構(gòu)的核心.
(3)URI標(biāo)識資源.URI是系統(tǒng)中每一個資源的唯一地址或ID,對資源的訪問及資源間的通信都通過URI完成,Client集成簡單.URI有效地解決了智能環(huán)境中設(shè)備多樣性所帶來的接入系統(tǒng)難題,降低了服務(wù)的耦合性.
(4)資源多重表述.URI所訪問的每個資源都可以使用不同的數(shù)據(jù)類型表示(常用的數(shù)據(jù)類型有JSON、XML、HTML等),具體的表現(xiàn)形式取決于訪問資源的客戶端.資源多重表述使得資源可以被更多的應(yīng)用所調(diào)用.
(5)超媒體原則.Server為Client提供一組鏈接,使得Client能通過鏈接將應(yīng)用從一個狀態(tài)改變成另外一個狀態(tài).
根據(jù)REST架構(gòu)的特點,本文提出了一種基于REST的智能環(huán)境服務(wù)系統(tǒng)框架.主要設(shè)計思想是:首先通過REST中間件技術(shù)將智能環(huán)境設(shè)備、對設(shè)備的操作、數(shù)據(jù)發(fā)布成面向資源的標(biāo)準(zhǔn)的REST API服務(wù),客戶端通過HTTP訪問系統(tǒng)中的資源,從而解決智能環(huán)境中異構(gòu)設(shè)備的交互孤島問題;其次,個性的智能化系統(tǒng)需要服務(wù)計算和數(shù)據(jù)庫作為支撐,將用戶對設(shè)備的操作整合成狀態(tài)矩陣存儲到狀態(tài)歷史數(shù)據(jù)庫中,然后利用數(shù)據(jù)挖掘理論中的屬性約簡及規(guī)則生成算法挖掘?qū)儆谟脩糇约旱膫€性化服務(wù)方法,并形成特征方法庫.隨著狀態(tài)歷史數(shù)據(jù)庫的不斷增大,在本地資源受限的環(huán)境下,方法提取效率、智能環(huán)境服務(wù)組合的尋優(yōu)速度和精度都會大幅下降.因此,將方法提取、服務(wù)組合優(yōu)化等對資源消耗較大的操作交由云服務(wù)系統(tǒng)完成,云服務(wù)系統(tǒng)與本地服務(wù)提供層之間的數(shù)據(jù)傳輸仍然采用基于REST的風(fēng)格的Web服務(wù).云服務(wù)系統(tǒng)的引入可有效地提高本地系統(tǒng)的運(yùn)行效率和服務(wù)組合與用戶需求的契合度.
基于REST的智能環(huán)境服務(wù)系統(tǒng)框架采用分層體系架構(gòu)設(shè)計,主要由異構(gòu)設(shè)備層、REST中間件層、服務(wù)提供層、智能環(huán)境應(yīng)用層四部分組成,其系統(tǒng)框架如圖1所示.每一層具體分析如下.

圖1 智能環(huán)境服務(wù)系統(tǒng)框架圖
(1)異構(gòu)設(shè)備層.智能環(huán)境中的感知設(shè)備和控制設(shè)備眾多,由于這些設(shè)備的生產(chǎn)廠商不同,導(dǎo)致設(shè)備之間在物理接口、通信介質(zhì)、通信協(xié)議、編程語言等方面都不盡相同.要構(gòu)建一個開放的智能環(huán)境服務(wù)平臺,首先必須要將不同的設(shè)備整合到本地服務(wù)網(wǎng)絡(luò)中.本框架將設(shè)備分為兩部分:網(wǎng)絡(luò)設(shè)備和非網(wǎng)絡(luò)設(shè)備.網(wǎng)絡(luò)設(shè)備可通過智能網(wǎng)關(guān)(Zigbee、藍(lán)牙、WiFi等通信協(xié)議間的相互轉(zhuǎn)換設(shè)備)實現(xiàn)與本地網(wǎng)絡(luò)對接;非網(wǎng)絡(luò)設(shè)備可連接帶有USB和串口的專用WiFi模塊實現(xiàn)與本地網(wǎng)絡(luò)的對接.
(2)REST中間件層.雖然異構(gòu)設(shè)備層使得異構(gòu)設(shè)備能順利地接入本地服務(wù)網(wǎng)絡(luò)中,但是異構(gòu)設(shè)備間的數(shù)據(jù)包封裝千差萬別,缺乏統(tǒng)一的接口,這些問題會導(dǎo)致系統(tǒng)開發(fā)難度大、伸縮性差、服務(wù)的耦合性高、不能獲得外部的Web服務(wù).REST中間件層將智能環(huán)境中的設(shè)備及數(shù)據(jù)統(tǒng)一封裝為具有REST風(fēng)格的API,有效地解決了異構(gòu)設(shè)備的接入問題.在本層中,由REST網(wǎng)關(guān)將智能環(huán)境中的溫濕度、光照等環(huán)境信息和執(zhí)行器都抽象成URI資源,然后通過HTTP協(xié)議中的GET獲取、POST創(chuàng)建、PUT更新、DELETE刪除四個指令完成對資源的操作.表1給出了智能環(huán)境中操作電燈的REST API.

表1 lamp的REST API
(3)服務(wù)提供層.本層的設(shè)計目的是使智能環(huán)境服務(wù)系統(tǒng)能夠為用戶提供基于情景感知的個性化服務(wù),是智能化服務(wù)的核心層.服務(wù)提供層首先監(jiān)測并存儲系統(tǒng)的實時狀態(tài),形成歷史狀態(tài)數(shù)據(jù)集;然后基于模糊粗糙集理論、數(shù)據(jù)挖掘理論、群體智能算法等對歷史狀態(tài)數(shù)據(jù)集進(jìn)行屬性約簡和規(guī)則提取,形成帶有用戶個性化特征的方法庫;在擬定的觸發(fā)條件下,系統(tǒng)通過前項規(guī)則匹配算法調(diào)用特征方法庫中的規(guī)則來預(yù)測用戶的行為,最終實現(xiàn)滿足用戶特征的個性化智能服務(wù).考慮到本地系統(tǒng)在存儲容量、運(yùn)算能力等資源方面受限,可在云服務(wù)平臺上搭建服務(wù)提供層,同時云服務(wù)平臺可抓取Web上已有的個性化服務(wù)策略,優(yōu)化本地方法庫,進(jìn)一步提升智能化服務(wù)的質(zhì)量.
(4)智能環(huán)境應(yīng)用層.智能環(huán)境應(yīng)用層是框架的最高層,是人與系統(tǒng)間的可視化交互接口,實現(xiàn)智能環(huán)境資源的Web集成應(yīng)用,主要包括用戶管理、環(huán)境數(shù)據(jù)監(jiān)測、設(shè)備狀態(tài)管理、多媒體服務(wù)等.終端可以是智能手機(jī)、平板、筆記本等可以接入網(wǎng)絡(luò)的任何設(shè)備,應(yīng)用開發(fā)遵守REST API,具體功能可根據(jù)應(yīng)用場景進(jìn)行單獨設(shè)計.
在上述系統(tǒng)框架的基礎(chǔ)上,以家居環(huán)境為背景設(shè)計基于REST架構(gòu)的智能環(huán)境服務(wù)系統(tǒng),為用戶提供一種集情景感知、服務(wù)推理、服務(wù)組合、智能控制于一體的個性化服務(wù)系統(tǒng).系統(tǒng)包括環(huán)境數(shù)據(jù)采集模塊、智能網(wǎng)關(guān)模塊、紅外萬能遙控器模塊、本地服務(wù)器模塊、人機(jī)交互界面模塊、云服務(wù)平臺等功能模塊,具體介紹如下.
(1)環(huán)境數(shù)據(jù)采集模塊.環(huán)境數(shù)據(jù)采集模塊主要包括各類傳感器和網(wǎng)絡(luò)攝像頭.各類傳感器主要采集環(huán)境中的光照、溫濕度等數(shù)據(jù),采集的數(shù)據(jù)通過RS485傳輸至Zigbee節(jié)點.網(wǎng)絡(luò)攝像頭主要采集環(huán)境中的圖像和聲音,通過WiFi傳輸至本地服務(wù)器.
(2)智能網(wǎng)關(guān)模塊.智能網(wǎng)絡(luò)模塊集成了Zigbee、Bluetooth、RF433M、WiFi通信協(xié)議.一方面,其接收各通信節(jié)點上傳的環(huán)境數(shù)據(jù)后通過WiFi上傳至本地服務(wù)器.另一方面,通過WiFi接收服務(wù)器下達(dá)的控制指令,以合適的通信協(xié)議轉(zhuǎn)發(fā)給指定的執(zhí)行器.
(3)紅外萬能遙控器模塊.考慮到眾多家電設(shè)備的控制都是通過紅外實現(xiàn)的,在系統(tǒng)中加入帶WiFi功能的紅外萬能遙控器.紅外萬能遙控器可學(xué)習(xí)并存儲相關(guān)設(shè)備的紅外控制指令,通過WiFi接收服務(wù)器的指令,然后轉(zhuǎn)換成相應(yīng)的紅外指令傳輸至家電設(shè)備.
(4)本地服務(wù)器模塊.本地服務(wù)器是整個系統(tǒng)的智能處理中心,當(dāng)其無法接入因特網(wǎng)時可獨立管理智能環(huán)境家居系統(tǒng).當(dāng)接入因特網(wǎng)時,可以與云服務(wù)平臺相連,實時上傳本地數(shù)據(jù),請求云服務(wù)平臺提供數(shù)據(jù)融合、關(guān)聯(lián)規(guī)則提取、服務(wù)組合優(yōu)化等復(fù)雜的服務(wù).服務(wù)器上部署了數(shù)據(jù)庫管理系統(tǒng)、狀態(tài)驅(qū)動系統(tǒng)、受限中間件、REST服務(wù)系統(tǒng)等.服務(wù)器使用JAVA語言進(jìn)行程序設(shè)計,采用Spring HATEOAS開發(fā)REST服務(wù),由Maven完成工程的構(gòu)建和管理.
(5)人機(jī)交互界面模塊.人機(jī)交互界面模塊是基于Andriod平臺進(jìn)行開發(fā)的客戶端系統(tǒng).由于客戶端與服務(wù)器間的通信需使用HTTP協(xié)議,因此采用Apache推出的Spring for Android框架進(jìn)行客戶端開發(fā).
(6)云服務(wù)平臺.云服務(wù)平臺為本地服務(wù)器提供滿足用戶需求的個性化決策服務(wù).借助阿里的ECS搭建云服務(wù)平臺,選用Hadoop框架,結(jié)合群智能優(yōu)化算法和MapReduce編程模型,為智能環(huán)境中的關(guān)聯(lián)規(guī)則提取、服務(wù)組合優(yōu)化提供高性能的計算能力.
智能環(huán)境服務(wù)系統(tǒng)為智能環(huán)境的應(yīng)用提供了有效支撐.本文提出的基于REST的智能環(huán)境服務(wù)系統(tǒng)框架,將REST風(fēng)格的中間件技術(shù)引入到服務(wù)系統(tǒng)中,解決異構(gòu)設(shè)備間的交互問題;同時,針對本地服務(wù)系統(tǒng)在關(guān)聯(lián)規(guī)則提取和服務(wù)組合優(yōu)化方面開銷較大的問題,通過引入云服務(wù)系統(tǒng),構(gòu)建出了一個低復(fù)雜度、松耦合、能夠為用戶提供個性化智能服務(wù)的情景感知系統(tǒng).下一步工作將結(jié)合改進(jìn)的群智能算法,完善云服務(wù)系統(tǒng)的輔助決策機(jī)制和服務(wù)精準(zhǔn)度,進(jìn)一步提高智能環(huán)境服務(wù)系統(tǒng)的智能化水平.