廖 競,李愛萍,段利國
(太原理工大學 信息與計算機學院,山西 晉中 030600)E-mail:646357406@qq.com
近年來,隨著短距無線傳感技術(shù)以及傳感器微型化技術(shù)的不斷成熟,越來越多的智能設(shè)備正慢慢融入人們的日常生活[1],其中以智能家居領(lǐng)域最為明顯.溫濕度傳感器、掃地機器人、搭載安卓系統(tǒng)的電視等智能設(shè)備正逐漸出現(xiàn)我們的臥室、客廳里.但目前而言,這些智能設(shè)備間仍舊存在互操作性差,服務模式單一等問題.不同傳輸協(xié)議、不同廠家設(shè)備間設(shè)備通訊困難,同時設(shè)備無法很好地完成與住戶之間的互動,不能為用戶提供針對性服務方案.
針對上述問題,文獻[2,3]介紹了搭載Wi-Fi或ZigBee單一協(xié)議設(shè)備間信息交互的方式;文獻[4,5]采用web服務協(xié)議精簡子集(Devices Profile For Web Service,DPWS)、通用即插即用(Universal Plug And Play,UPnP)這類服務化架構(gòu)來組織家庭環(huán)境中的智能設(shè)備;文獻[6,7]分別采取不同的方式將細粒度服務組合起來以滿足不同場景下的粗粒度服務需求.
綜合以上文獻,本文首先介紹設(shè)備適配器(Device Adapter,DA)這一中間件,DA接收來自不同協(xié)議的信號并且解碼出其中JSON格式的數(shù)據(jù)傳遞給上層.進而介紹一種基于SOA的家居服務架構(gòu)(Serviced Architecture in Home,SAH),SAH參考了OSI層次模型,自底向上依次為設(shè)備感知層、服務資源層、原子服務層、復合服務層以及應用層,分別對應著家居環(huán)境中的智能設(shè)備、設(shè)備資源、原子服務、粗粒度服務以及面向開發(fā)者的應用,將異構(gòu)的智能設(shè)備有效地管理起來,極大的擴充了不同協(xié)議間設(shè)備的交互手段,提高了居住者的日常居住體驗.
從市場的角度來看,目前市面上的智能家居產(chǎn)品采用的通信協(xié)議大多是如下三種:ZigBee、Bluetooth以及Wi-Fi.ZigBee協(xié)議由IEEE 802.15.4標準所規(guī)定,屬于低功耗無線個域網(wǎng).組網(wǎng)方式包括主從結(jié)構(gòu)的星狀網(wǎng)、簇狀網(wǎng)以及網(wǎng)狀網(wǎng),功耗極低且響應速度快;Bluetooth協(xié)議由IEEE 802.15.1標準所規(guī)定,工作在2.4GHz的通訊頻段,組網(wǎng)方式包括由一個主設(shè)備和多個從設(shè)備組成的微微網(wǎng)以及多個微微網(wǎng)在時間和空間上互相重疊組成的散射網(wǎng),全球范圍適用且具有很好的抗干擾能力;ZigBee、Bluetooth都各自擁有完整的一套協(xié)議棧,而Wi-Fi指的是以無線信道作為傳輸媒介的計算機局域網(wǎng),它是無線通信、計算機網(wǎng)絡(luò)技術(shù)相結(jié)合的產(chǎn)物,是有線聯(lián)網(wǎng)方式的重要補充和延伸.Wi-Fi由IEEE 802.11標準所規(guī)定,擁有傳輸速率快、適用范圍廣等特點.目前常見的通信協(xié)議對比見表1[8].
近些年來,眾多互聯(lián)網(wǎng)廠商在移動領(lǐng)域互相競爭,使得移動設(shè)備市場已然成為一片紅海,于是許多廠商將目光放在了剛剛起步的白色家電市場.Google在2014年收購智能家居廠商Nest并于2016年發(fā)布智能音響Google Home.同樣在2014年,亞馬遜發(fā)布智能音響Echo,其內(nèi)置了一款語音助手Alexa,并于2018年發(fā)布了十多款基于Alexa的智能家居設(shè)備.國內(nèi),小米公司最早于2013年涉足智能家居領(lǐng)域,如今已擁有智能音響、掃地機器人、智能電視等幾十件家居設(shè)備.與此同時,傳統(tǒng)白色家電廠商也不落人后,海爾U-Home、美的M-Smart也是行業(yè)有力的競爭者.然而百花齊放的智能家居領(lǐng)域卻給普通消費者帶來了困擾,同一平臺的設(shè)備可以通過應用程序有條件地進行聯(lián)動,而不同平臺間設(shè)備間信息共享目前尚未實現(xiàn).但倘若智能家居環(huán)境下存在統(tǒng)一“接口”,一定會給居住者在消費選擇、住居體驗等方面帶來極大的提升.
Device Adapter接收來自不同通信協(xié)議的信號,并將其中JSON格式的信息解碼后遞交上層以及對上層分發(fā)下的數(shù)據(jù)進行對應性封裝.因此,針對目前主流的三種通訊方式,DA集成了藍牙模塊、ZigBee模塊以及Wi-Fi模塊,藍牙和ZigBee協(xié)議擁有各自的協(xié)議棧,如圖1所示,Wi-Fi作為有線聯(lián)網(wǎng)的擴充,發(fā)送和接收載體均為IP包,工作在OSI模型的物理層和鏈路層.未來家居環(huán)境可能會誕生越來越多的應用場景,與之伴隨而來的是更多適應不同場景的通訊方案.此時只需要增添新的通訊模塊,按照統(tǒng)一的消息格式收發(fā)信息便可,極大的增強了可擴展性.

圖1 Bluetooth及ZigBee協(xié)議棧Fig.1 Bluetooth and ZigBee protocol stack
為了保障系統(tǒng)的穩(wěn)定運行,DA需要和家居環(huán)境中的設(shè)備“約定”好信息的收發(fā)格式.為此,JSON消息中的第一項便是Type類型,Type定義有五種類型,Ack、Action、Aloha、Bye以及Hello.其中Ack消息用來答復Action消息和Hello消息,分別表示動作已經(jīng)執(zhí)行以及設(shè)備還在家庭網(wǎng)絡(luò)中;Action消息表動作,家庭設(shè)備向DA提交服務請求、DA向設(shè)備發(fā)出服務執(zhí)行命令都通過Action消息,設(shè)備在完成服務響應后向DA回復Ack消息;當設(shè)備第一次加入家庭局域網(wǎng)時向DA發(fā)送Aloha消息,消息中應包括能夠描述該設(shè)備的一系列資源實體,如一臺臺燈的資源實體應有亮度、色溫、固件版本等等,設(shè)備實體與資源實體間的映射是REST思想的重要體現(xiàn);與之對應的,當設(shè)備主動離開局域網(wǎng)時,比如手機等遷入遷出動作十分頻繁的設(shè)備,應主動給DA發(fā)送Bye消息;由于家居網(wǎng)絡(luò)的動態(tài)變化性,DA應確保完成服務動作的設(shè)備還處于家庭網(wǎng)絡(luò)中,所以DA會固定一段時間向全網(wǎng)廣播Hello消息,收到Hello消息的設(shè)備應回復Ack消息.各消息使用場景如圖2.

圖2 各消息使用場景Fig.2 Message usage scenario
DPWS、UPnP這類分布式協(xié)議,消息可以通過多跳的方式到達任意節(jié)點,服務響應速度快,但其對每一個結(jié)點的硬件要求較高,比較適合大面積區(qū)域下的網(wǎng)絡(luò)布控,不太適合用于家庭智能設(shè)備的管理,但卻為不同種類、不同品牌間設(shè)備的交互提供了一個可行的思路,那就是服務化.服務化帶來了可替換性和獨立性.可替換性強調(diào)了不唯一性,而獨立性表示接口可以獨立于具體實現(xiàn)服務的硬件平臺、操作系統(tǒng)和編程語言.這兩個特性正好契合智能家居這一場景,可以解決不同廠商、不同種類設(shè)備的互操作性問題[9].

圖3 SAH協(xié)議架構(gòu)Fig.3 SAH protocol architecture
基于上述充分性論述,本文提出一個基于服務化的家居服務框架SAH,從下至上,依次是設(shè)備感知層、服務資源層、原子服務層、復合服務層以及應用層,協(xié)議架構(gòu)如圖3所示.協(xié)議運行在包含有DA的中心網(wǎng)關(guān)上,所有的設(shè)備進入家庭局域網(wǎng)中都須到該中心網(wǎng)關(guān)注冊.設(shè)備感知并監(jiān)測著家中各種物理狀態(tài)量的改變,并通過無線傳輸技術(shù)“告知”中心網(wǎng)關(guān),再由中心網(wǎng)關(guān)統(tǒng)一管理與調(diào)配.顯然,SAH摒棄了DPWS、UPnP這類P2P組織架構(gòu),采用星型拓撲結(jié)構(gòu),極大降低除中心節(jié)點外其他節(jié)點的硬件要求,更加適應家居環(huán)境這樣小范圍的服務請求與響應.
設(shè)備感知層用來感知家庭環(huán)境中存在的各色設(shè)備,為上層提供可靠的設(shè)備信息.其中,注冊模塊用來管理新加入的設(shè)備;當設(shè)備無響應或是主動退出時,需要更新模塊將該設(shè)備修改為失活狀態(tài);由于家居環(huán)境設(shè)備遷入遷出頻繁,若一段時間內(nèi)遷出后的設(shè)備再次注冊時,根據(jù)設(shè)備MAC地址等唯一標識可將設(shè)備直接恢復至遷出時的狀態(tài);若設(shè)備長時間未重連,則會調(diào)用刪除模塊.刪除模塊用來移除一段時間內(nèi)無響應的設(shè)備;當服務需求得到調(diào)用時,需由執(zhí)行模塊向特定的設(shè)備發(fā)出Action信號.各模塊的業(yè)務流程見圖4.

圖4 設(shè)備感知層實現(xiàn)Fig.4 Implement of equipment perception layer
服務資源層是對設(shè)備的進一步抽象,通過設(shè)備注冊時發(fā)送的Aloha消息,將設(shè)備抽象成多個資源實體.傳統(tǒng)Web服務中,由于服務需求粒度不一,服務間往往伴隨著高耦合,擴展性差等困難,而將設(shè)備實體抽象成為一個個資源實體后,利用資源間的天然劃分來降低系統(tǒng)的耦合,使得系統(tǒng)更加輕量級,同時帶來了更高的擴展性.將設(shè)備以資源劃分也是REST架構(gòu)的核心[10].以臺燈為例,臺燈的亮度、色溫、開關(guān)狀態(tài)這些可調(diào)節(jié)的參數(shù)可以是資源,臺燈的固件版本、設(shè)備制造商仍可以算是一種資源,見圖5.這些資源通過統(tǒng)一資源標識符(Uniform Resource Identifier,URI)來描述和定位.URI地址應由設(shè)備感知層設(shè)備地址和資源描述組成,且具有一定的描述性.類似于/kitchen/temperature_sensor1/temperature這一URI,可以大致確定這個地址是廚房1號溫度傳感器的溫度資源,同時也可以通過這個URI唯一地確定這一資源.

圖5 臺燈和其資源Fig.5 Table lamp and its resources
設(shè)備感知層和服務資源層分別給上層提供了可靠的設(shè)備和資源,資源和HTTP請求方法組成了服務的最小顆粒——原子服務.傳統(tǒng)Web服務往往過分依賴POST方法[11],將額外的服務信息放入URI中,具體服務要求則放入服務請求體中,而REST實現(xiàn)架構(gòu)倡導最大限度的復用HTTP請求方法,通過URI和方法間語義組合來表示服務信息.比如在刪除購物車中商品這一服務請求上,電商京東和豆瓣的處理方式截然不同,京東采用傳統(tǒng)實現(xiàn)架構(gòu),采用POST方法去訪問removeSkuFromCart.action這一動作,將商品信息放在URI之后同時將“刪除”這一語義信息放在服務請求體中.而豆瓣采用REST實現(xiàn)架構(gòu),在刪除商品時,直接復用HTTP方法中的DELETE方法,訪問地址為cart/items/142411這一資源,同樣完成了刪除商品這一服務請求,降低語義理解的復雜度,同時使系統(tǒng)更為輕量級,真實實驗場景所獲取的數(shù)據(jù)如圖6所示.SAH采用REST實現(xiàn)架構(gòu),將服務資源層中的資源與常用的HTTP請求方法如PUT、GET、POST和DELETE組合,得到一個最細粒度的原子服務,同時這一服務對應著一份服務描述文本.如“獲取廚房溫度傳感器的溫度”這一描述文本便對應著/kitchen/temperature_sensor1/temperature以及GET.服務描述文本是服務語義化的表示,用來將服務特征化,可用來作為服務查詢、服務匹配、服務間信息挖掘的依據(jù).

圖6 不同實現(xiàn)架構(gòu)下的請求Fig.6 Requests under different implementation architectures
復合服務層這層對應著更加粗粒度的服務.通過對已存在的原子服務間執(zhí)行順序、執(zhí)行邏輯以及執(zhí)行場景的調(diào)整來形成更為粗粒度的服務,由此達到服務增值這一目標.日常生活中的服務需求往往是粗粒度的,如“回到家”服務可能是打開臺燈、打開電視、關(guān)閉掃地機器人等一系列原子服務之間的組合.服務組合通常可分為兩種:服務編制和服務編排[12].服務編制指的是原子服務在中央?yún)f(xié)調(diào)器的協(xié)調(diào)下依次被調(diào)用;服務編排指的是原子服務在確定的業(yè)務流程下相互協(xié)作形成完整的粗粒度服務.SAH采用服務編排的方式,讓用戶通過技術(shù)性工具生成工作流腳本,再將生成的工作流傳到工作引擎上.
應用層為應用程序提供服務,智能家居中運行的種種軟件均運行在這一層.應用層面向開發(fā)者,當開發(fā)者需要構(gòu)建一個新的應用時,可以通過調(diào)用服務容器中的眾多服務來構(gòu)建.應用層是消費者所能直接交互的一層,也是決定用戶體驗最重要的一層.
本次實驗由一塊ESP8266微芯片,一條WS2818B燈帶,運行安卓的智能手機以及一臺個人PC共同完成.ESP8266搭載了一塊32位Tensilica處理器以及Wi-Fi模塊,WS2818B則是由三通道控制專用電路驅(qū)動的LED燈帶,ESP8266和WS2818B組合起來充當家庭網(wǎng)絡(luò)中的Wi-Fi設(shè)備;個人PC由于同時搭載藍牙以及Wi-Fi模塊,充當SAH中心網(wǎng)關(guān);智能手機通過藍牙的方式向中心網(wǎng)關(guān)發(fā)出更改燈帶開啟關(guān)閉狀態(tài)、調(diào)整亮度的服務請求,通過個人PC在服務庫里匹配查詢后發(fā)送給ESP8266并通過WS2818B燈帶展示出來,由此完成服務請求、服務響應的閉環(huán).實驗效果圖如圖7所示.

圖7 藍牙和Wi-Fi設(shè)備Fig.7 Bluetooth and Wi-Fi devices
本文針對當前智能家居環(huán)境下智能設(shè)備間存在互操作性差,服務模式單一等問題,提出了一種基于SOA的多協(xié)議家居平臺架構(gòu)SAH,采用分層架構(gòu)將復雜的家居場景抽象成一個個服務需求,服務需求由許多粒度相同的元服務編排組合而成,同時每個元服務都對應著不同的資源,資源由不同的設(shè)備硬件所提供.自頂向下,逐步將抽象的住戶需求具象化;自底向上,通過設(shè)備中間件屏蔽不同通信協(xié)議的差異.每個設(shè)備所提供的資源通過與復用的HTTP協(xié)議組合成為細粒度的原子服務,原子服務通過互相組合、編排形成更加通用的服務庫,供頂層應用層調(diào)用.實驗證明,SAH能很好的屏蔽底層通信協(xié)議,為居住者提供一個服務構(gòu)建迅速、個性化、居住體驗良好的智能家居環(huán)境.目前SAH以人工的方式提供服務編排,仍需要較多的用戶參與,日后通過基于上下文、語義的服務編排,抑或是采用基于神經(jīng)網(wǎng)絡(luò)(Neural Network,NN)的狀態(tài)預測[13],將整個過程半自動化甚至自動化處理,便能進一步勾勒出理想中的智能家居圖景.