廖 競(jìng),李愛(ài)萍,段利國(guó)
(太原理工大學(xué) 信息與計(jì)算機(jī)學(xué)院,山西 晉中 030600)E-mail:646357406@qq.com
近年來(lái),隨著短距無(wú)線傳感技術(shù)以及傳感器微型化技術(shù)的不斷成熟,越來(lái)越多的智能設(shè)備正慢慢融入人們的日常生活[1],其中以智能家居領(lǐng)域最為明顯.溫濕度傳感器、掃地機(jī)器人、搭載安卓系統(tǒng)的電視等智能設(shè)備正逐漸出現(xiàn)我們的臥室、客廳里.但目前而言,這些智能設(shè)備間仍舊存在互操作性差,服務(wù)模式單一等問(wèn)題.不同傳輸協(xié)議、不同廠家設(shè)備間設(shè)備通訊困難,同時(shí)設(shè)備無(wú)法很好地完成與住戶之間的互動(dòng),不能為用戶提供針對(duì)性服務(wù)方案.
針對(duì)上述問(wèn)題,文獻(xiàn)[2,3]介紹了搭載Wi-Fi或ZigBee單一協(xié)議設(shè)備間信息交互的方式;文獻(xiàn)[4,5]采用web服務(wù)協(xié)議精簡(jiǎn)子集(Devices Profile For Web Service,DPWS)、通用即插即用(Universal Plug And Play,UPnP)這類服務(wù)化架構(gòu)來(lái)組織家庭環(huán)境中的智能設(shè)備;文獻(xiàn)[6,7]分別采取不同的方式將細(xì)粒度服務(wù)組合起來(lái)以滿足不同場(chǎng)景下的粗粒度服務(wù)需求.
綜合以上文獻(xiàn),本文首先介紹設(shè)備適配器(Device Adapter,DA)這一中間件,DA接收來(lái)自不同協(xié)議的信號(hào)并且解碼出其中JSON格式的數(shù)據(jù)傳遞給上層.進(jìn)而介紹一種基于SOA的家居服務(wù)架構(gòu)(Serviced Architecture in Home,SAH),SAH參考了OSI層次模型,自底向上依次為設(shè)備感知層、服務(wù)資源層、原子服務(wù)層、復(fù)合服務(wù)層以及應(yīng)用層,分別對(duì)應(yīng)著家居環(huán)境中的智能設(shè)備、設(shè)備資源、原子服務(wù)、粗粒度服務(wù)以及面向開(kāi)發(fā)者的應(yīng)用,將異構(gòu)的智能設(shè)備有效地管理起來(lái),極大的擴(kuò)充了不同協(xié)議間設(shè)備的交互手段,提高了居住者的日常居住體驗(yàn).
從市場(chǎng)的角度來(lái)看,目前市面上的智能家居產(chǎn)品采用的通信協(xié)議大多是如下三種:ZigBee、Bluetooth以及Wi-Fi.ZigBee協(xié)議由IEEE 802.15.4標(biāo)準(zhǔn)所規(guī)定,屬于低功耗無(wú)線個(gè)域網(wǎng).組網(wǎng)方式包括主從結(jié)構(gòu)的星狀網(wǎng)、簇狀網(wǎng)以及網(wǎng)狀網(wǎng),功耗極低且響應(yīng)速度快;Bluetooth協(xié)議由IEEE 802.15.1標(biāo)準(zhǔn)所規(guī)定,工作在2.4GHz的通訊頻段,組網(wǎng)方式包括由一個(gè)主設(shè)備和多個(gè)從設(shè)備組成的微微網(wǎng)以及多個(gè)微微網(wǎng)在時(shí)間和空間上互相重疊組成的散射網(wǎng),全球范圍適用且具有很好的抗干擾能力;ZigBee、Bluetooth都各自擁有完整的一套協(xié)議棧,而Wi-Fi指的是以無(wú)線信道作為傳輸媒介的計(jì)算機(jī)局域網(wǎng),它是無(wú)線通信、計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)相結(jié)合的產(chǎn)物,是有線聯(lián)網(wǎng)方式的重要補(bǔ)充和延伸.Wi-Fi由IEEE 802.11標(biāo)準(zhǔn)所規(guī)定,擁有傳輸速率快、適用范圍廣等特點(diǎn).目前常見(jiàn)的通信協(xié)議對(duì)比見(jiàn)表1[8].
近些年來(lái),眾多互聯(lián)網(wǎng)廠商在移動(dòng)領(lǐng)域互相競(jìng)爭(zhēng),使得移動(dòng)設(shè)備市場(chǎng)已然成為一片紅海,于是許多廠商將目光放在了剛剛起步的白色家電市場(chǎng).Google在2014年收購(gòu)智能家居廠商N(yùn)est并于2016年發(fā)布智能音響Google Home.同樣在2014年,亞馬遜發(fā)布智能音響Echo,其內(nèi)置了一款語(yǔ)音助手Alexa,并于2018年發(fā)布了十多款基于Alexa的智能家居設(shè)備.國(guó)內(nèi),小米公司最早于2013年涉足智能家居領(lǐng)域,如今已擁有智能音響、掃地機(jī)器人、智能電視等幾十件家居設(shè)備.與此同時(shí),傳統(tǒng)白色家電廠商也不落人后,海爾U-Home、美的M-Smart也是行業(yè)有力的競(jìng)爭(zhēng)者.然而百花齊放的智能家居領(lǐng)域卻給普通消費(fèi)者帶來(lái)了困擾,同一平臺(tái)的設(shè)備可以通過(guò)應(yīng)用程序有條件地進(jìn)行聯(lián)動(dòng),而不同平臺(tái)間設(shè)備間信息共享目前尚未實(shí)現(xiàn).但倘若智能家居環(huán)境下存在統(tǒng)一“接口”,一定會(huì)給居住者在消費(fèi)選擇、住居體驗(yàn)等方面帶來(lái)極大的提升.
Device Adapter接收來(lái)自不同通信協(xié)議的信號(hào),并將其中JSON格式的信息解碼后遞交上層以及對(duì)上層分發(fā)下的數(shù)據(jù)進(jìn)行對(duì)應(yīng)性封裝.因此,針對(duì)目前主流的三種通訊方式,DA集成了藍(lán)牙模塊、ZigBee模塊以及Wi-Fi模塊,藍(lán)牙和ZigBee協(xié)議擁有各自的協(xié)議棧,如圖1所示,Wi-Fi作為有線聯(lián)網(wǎng)的擴(kuò)充,發(fā)送和接收載體均為IP包,工作在OSI模型的物理層和鏈路層.未來(lái)家居環(huán)境可能會(huì)誕生越來(lái)越多的應(yīng)用場(chǎng)景,與之伴隨而來(lái)的是更多適應(yīng)不同場(chǎng)景的通訊方案.此時(shí)只需要增添新的通訊模塊,按照統(tǒng)一的消息格式收發(fā)信息便可,極大的增強(qiáng)了可擴(kuò)展性.
圖1 Bluetooth及ZigBee協(xié)議棧Fig.1 Bluetooth and ZigBee protocol stack
為了保障系統(tǒng)的穩(wěn)定運(yùn)行,DA需要和家居環(huán)境中的設(shè)備“約定”好信息的收發(fā)格式.為此,JSON消息中的第一項(xiàng)便是Type類型,Type定義有五種類型,Ack、Action、Aloha、Bye以及Hello.其中Ack消息用來(lái)答復(fù)Action消息和Hello消息,分別表示動(dòng)作已經(jīng)執(zhí)行以及設(shè)備還在家庭網(wǎng)絡(luò)中;Action消息表動(dòng)作,家庭設(shè)備向DA提交服務(wù)請(qǐng)求、DA向設(shè)備發(fā)出服務(wù)執(zhí)行命令都通過(guò)Action消息,設(shè)備在完成服務(wù)響應(yīng)后向DA回復(fù)Ack消息;當(dāng)設(shè)備第一次加入家庭局域網(wǎng)時(shí)向DA發(fā)送Aloha消息,消息中應(yīng)包括能夠描述該設(shè)備的一系列資源實(shí)體,如一臺(tái)臺(tái)燈的資源實(shí)體應(yīng)有亮度、色溫、固件版本等等,設(shè)備實(shí)體與資源實(shí)體間的映射是REST思想的重要體現(xiàn);與之對(duì)應(yīng)的,當(dāng)設(shè)備主動(dòng)離開(kāi)局域網(wǎng)時(shí),比如手機(jī)等遷入遷出動(dòng)作十分頻繁的設(shè)備,應(yīng)主動(dòng)給DA發(fā)送Bye消息;由于家居網(wǎng)絡(luò)的動(dòng)態(tài)變化性,DA應(yīng)確保完成服務(wù)動(dòng)作的設(shè)備還處于家庭網(wǎng)絡(luò)中,所以DA會(huì)固定一段時(shí)間向全網(wǎng)廣播Hello消息,收到Hello消息的設(shè)備應(yīng)回復(fù)Ack消息.各消息使用場(chǎng)景如圖2.
圖2 各消息使用場(chǎng)景Fig.2 Message usage scenario
DPWS、UPnP這類分布式協(xié)議,消息可以通過(guò)多跳的方式到達(dá)任意節(jié)點(diǎn),服務(wù)響應(yīng)速度快,但其對(duì)每一個(gè)結(jié)點(diǎn)的硬件要求較高,比較適合大面積區(qū)域下的網(wǎng)絡(luò)布控,不太適合用于家庭智能設(shè)備的管理,但卻為不同種類、不同品牌間設(shè)備的交互提供了一個(gè)可行的思路,那就是服務(wù)化.服務(wù)化帶來(lái)了可替換性和獨(dú)立性.可替換性強(qiáng)調(diào)了不唯一性,而獨(dú)立性表示接口可以獨(dú)立于具體實(shí)現(xiàn)服務(wù)的硬件平臺(tái)、操作系統(tǒng)和編程語(yǔ)言.這兩個(gè)特性正好契合智能家居這一場(chǎng)景,可以解決不同廠商、不同種類設(shè)備的互操作性問(wèn)題[9].
圖3 SAH協(xié)議架構(gòu)Fig.3 SAH protocol architecture
基于上述充分性論述,本文提出一個(gè)基于服務(wù)化的家居服務(wù)框架SAH,從下至上,依次是設(shè)備感知層、服務(wù)資源層、原子服務(wù)層、復(fù)合服務(wù)層以及應(yīng)用層,協(xié)議架構(gòu)如圖3所示.協(xié)議運(yùn)行在包含有DA的中心網(wǎng)關(guān)上,所有的設(shè)備進(jìn)入家庭局域網(wǎng)中都須到該中心網(wǎng)關(guān)注冊(cè).設(shè)備感知并監(jiān)測(cè)著家中各種物理狀態(tài)量的改變,并通過(guò)無(wú)線傳輸技術(shù)“告知”中心網(wǎng)關(guān),再由中心網(wǎng)關(guān)統(tǒng)一管理與調(diào)配.顯然,SAH摒棄了DPWS、UPnP這類P2P組織架構(gòu),采用星型拓?fù)浣Y(jié)構(gòu),極大降低除中心節(jié)點(diǎn)外其他節(jié)點(diǎn)的硬件要求,更加適應(yīng)家居環(huán)境這樣小范圍的服務(wù)請(qǐng)求與響應(yīng).
設(shè)備感知層用來(lái)感知家庭環(huán)境中存在的各色設(shè)備,為上層提供可靠的設(shè)備信息.其中,注冊(cè)模塊用來(lái)管理新加入的設(shè)備;當(dāng)設(shè)備無(wú)響應(yīng)或是主動(dòng)退出時(shí),需要更新模塊將該設(shè)備修改為失活狀態(tài);由于家居環(huán)境設(shè)備遷入遷出頻繁,若一段時(shí)間內(nèi)遷出后的設(shè)備再次注冊(cè)時(shí),根據(jù)設(shè)備MAC地址等唯一標(biāo)識(shí)可將設(shè)備直接恢復(fù)至遷出時(shí)的狀態(tài);若設(shè)備長(zhǎng)時(shí)間未重連,則會(huì)調(diào)用刪除模塊.刪除模塊用來(lái)移除一段時(shí)間內(nèi)無(wú)響應(yīng)的設(shè)備;當(dāng)服務(wù)需求得到調(diào)用時(shí),需由執(zhí)行模塊向特定的設(shè)備發(fā)出Action信號(hào).各模塊的業(yè)務(wù)流程見(jiàn)圖4.
圖4 設(shè)備感知層實(shí)現(xiàn)Fig.4 Implement of equipment perception layer
服務(wù)資源層是對(duì)設(shè)備的進(jìn)一步抽象,通過(guò)設(shè)備注冊(cè)時(shí)發(fā)送的Aloha消息,將設(shè)備抽象成多個(gè)資源實(shí)體.傳統(tǒng)Web服務(wù)中,由于服務(wù)需求粒度不一,服務(wù)間往往伴隨著高耦合,擴(kuò)展性差等困難,而將設(shè)備實(shí)體抽象成為一個(gè)個(gè)資源實(shí)體后,利用資源間的天然劃分來(lái)降低系統(tǒng)的耦合,使得系統(tǒng)更加輕量級(jí),同時(shí)帶來(lái)了更高的擴(kuò)展性.將設(shè)備以資源劃分也是REST架構(gòu)的核心[10].以臺(tái)燈為例,臺(tái)燈的亮度、色溫、開(kāi)關(guān)狀態(tài)這些可調(diào)節(jié)的參數(shù)可以是資源,臺(tái)燈的固件版本、設(shè)備制造商仍可以算是一種資源,見(jiàn)圖5.這些資源通過(guò)統(tǒng)一資源標(biāo)識(shí)符(Uniform Resource Identifier,URI)來(lái)描述和定位.URI地址應(yīng)由設(shè)備感知層設(shè)備地址和資源描述組成,且具有一定的描述性.類似于/kitchen/temperature_sensor1/temperature這一URI,可以大致確定這個(gè)地址是廚房1號(hào)溫度傳感器的溫度資源,同時(shí)也可以通過(guò)這個(gè)URI唯一地確定這一資源.
圖5 臺(tái)燈和其資源Fig.5 Table lamp and its resources
設(shè)備感知層和服務(wù)資源層分別給上層提供了可靠的設(shè)備和資源,資源和HTTP請(qǐng)求方法組成了服務(wù)的最小顆?!臃?wù).傳統(tǒng)Web服務(wù)往往過(guò)分依賴POST方法[11],將額外的服務(wù)信息放入U(xiǎn)RI中,具體服務(wù)要求則放入服務(wù)請(qǐng)求體中,而REST實(shí)現(xiàn)架構(gòu)倡導(dǎo)最大限度的復(fù)用HTTP請(qǐng)求方法,通過(guò)URI和方法間語(yǔ)義組合來(lái)表示服務(wù)信息.比如在刪除購(gòu)物車中商品這一服務(wù)請(qǐng)求上,電商京東和豆瓣的處理方式截然不同,京東采用傳統(tǒng)實(shí)現(xiàn)架構(gòu),采用POST方法去訪問(wèn)removeSkuFromCart.action這一動(dòng)作,將商品信息放在URI之后同時(shí)將“刪除”這一語(yǔ)義信息放在服務(wù)請(qǐng)求體中.而豆瓣采用REST實(shí)現(xiàn)架構(gòu),在刪除商品時(shí),直接復(fù)用HTTP方法中的DELETE方法,訪問(wèn)地址為cart/items/142411這一資源,同樣完成了刪除商品這一服務(wù)請(qǐng)求,降低語(yǔ)義理解的復(fù)雜度,同時(shí)使系統(tǒng)更為輕量級(jí),真實(shí)實(shí)驗(yàn)場(chǎng)景所獲取的數(shù)據(jù)如圖6所示.SAH采用REST實(shí)現(xiàn)架構(gòu),將服務(wù)資源層中的資源與常用的HTTP請(qǐng)求方法如PUT、GET、POST和DELETE組合,得到一個(gè)最細(xì)粒度的原子服務(wù),同時(shí)這一服務(wù)對(duì)應(yīng)著一份服務(wù)描述文本.如“獲取廚房溫度傳感器的溫度”這一描述文本便對(duì)應(yīng)著/kitchen/temperature_sensor1/temperature以及GET.服務(wù)描述文本是服務(wù)語(yǔ)義化的表示,用來(lái)將服務(wù)特征化,可用來(lái)作為服務(wù)查詢、服務(wù)匹配、服務(wù)間信息挖掘的依據(jù).
圖6 不同實(shí)現(xiàn)架構(gòu)下的請(qǐng)求Fig.6 Requests under different implementation architectures
復(fù)合服務(wù)層這層對(duì)應(yīng)著更加粗粒度的服務(wù).通過(guò)對(duì)已存在的原子服務(wù)間執(zhí)行順序、執(zhí)行邏輯以及執(zhí)行場(chǎng)景的調(diào)整來(lái)形成更為粗粒度的服務(wù),由此達(dá)到服務(wù)增值這一目標(biāo).日常生活中的服務(wù)需求往往是粗粒度的,如“回到家”服務(wù)可能是打開(kāi)臺(tái)燈、打開(kāi)電視、關(guān)閉掃地機(jī)器人等一系列原子服務(wù)之間的組合.服務(wù)組合通??煞譃閮煞N:服務(wù)編制和服務(wù)編排[12].服務(wù)編制指的是原子服務(wù)在中央?yún)f(xié)調(diào)器的協(xié)調(diào)下依次被調(diào)用;服務(wù)編排指的是原子服務(wù)在確定的業(yè)務(wù)流程下相互協(xié)作形成完整的粗粒度服務(wù).SAH采用服務(wù)編排的方式,讓用戶通過(guò)技術(shù)性工具生成工作流腳本,再將生成的工作流傳到工作引擎上.
應(yīng)用層為應(yīng)用程序提供服務(wù),智能家居中運(yùn)行的種種軟件均運(yùn)行在這一層.應(yīng)用層面向開(kāi)發(fā)者,當(dāng)開(kāi)發(fā)者需要構(gòu)建一個(gè)新的應(yīng)用時(shí),可以通過(guò)調(diào)用服務(wù)容器中的眾多服務(wù)來(lái)構(gòu)建.應(yīng)用層是消費(fèi)者所能直接交互的一層,也是決定用戶體驗(yàn)最重要的一層.
本次實(shí)驗(yàn)由一塊ESP8266微芯片,一條WS2818B燈帶,運(yùn)行安卓的智能手機(jī)以及一臺(tái)個(gè)人PC共同完成.ESP8266搭載了一塊32位Tensilica處理器以及Wi-Fi模塊,WS2818B則是由三通道控制專用電路驅(qū)動(dòng)的LED燈帶,ESP8266和WS2818B組合起來(lái)充當(dāng)家庭網(wǎng)絡(luò)中的Wi-Fi設(shè)備;個(gè)人PC由于同時(shí)搭載藍(lán)牙以及Wi-Fi模塊,充當(dāng)SAH中心網(wǎng)關(guān);智能手機(jī)通過(guò)藍(lán)牙的方式向中心網(wǎng)關(guān)發(fā)出更改燈帶開(kāi)啟關(guān)閉狀態(tài)、調(diào)整亮度的服務(wù)請(qǐng)求,通過(guò)個(gè)人PC在服務(wù)庫(kù)里匹配查詢后發(fā)送給ESP8266并通過(guò)WS2818B燈帶展示出來(lái),由此完成服務(wù)請(qǐng)求、服務(wù)響應(yīng)的閉環(huán).實(shí)驗(yàn)效果圖如圖7所示.
圖7 藍(lán)牙和Wi-Fi設(shè)備Fig.7 Bluetooth and Wi-Fi devices
本文針對(duì)當(dāng)前智能家居環(huán)境下智能設(shè)備間存在互操作性差,服務(wù)模式單一等問(wèn)題,提出了一種基于SOA的多協(xié)議家居平臺(tái)架構(gòu)SAH,采用分層架構(gòu)將復(fù)雜的家居場(chǎng)景抽象成一個(gè)個(gè)服務(wù)需求,服務(wù)需求由許多粒度相同的元服務(wù)編排組合而成,同時(shí)每個(gè)元服務(wù)都對(duì)應(yīng)著不同的資源,資源由不同的設(shè)備硬件所提供.自頂向下,逐步將抽象的住戶需求具象化;自底向上,通過(guò)設(shè)備中間件屏蔽不同通信協(xié)議的差異.每個(gè)設(shè)備所提供的資源通過(guò)與復(fù)用的HTTP協(xié)議組合成為細(xì)粒度的原子服務(wù),原子服務(wù)通過(guò)互相組合、編排形成更加通用的服務(wù)庫(kù),供頂層應(yīng)用層調(diào)用.實(shí)驗(yàn)證明,SAH能很好的屏蔽底層通信協(xié)議,為居住者提供一個(gè)服務(wù)構(gòu)建迅速、個(gè)性化、居住體驗(yàn)良好的智能家居環(huán)境.目前SAH以人工的方式提供服務(wù)編排,仍需要較多的用戶參與,日后通過(guò)基于上下文、語(yǔ)義的服務(wù)編排,抑或是采用基于神經(jīng)網(wǎng)絡(luò)(Neural Network,NN)的狀態(tài)預(yù)測(cè)[13],將整個(gè)過(guò)程半自動(dòng)化甚至自動(dòng)化處理,便能進(jìn)一步勾勒出理想中的智能家居圖景.