王寧 褚偉
摘 要:物聯(lián)網(wǎng)設(shè)備之間統(tǒng)一的訪問(wèn)方式和設(shè)備之間的互操作是物聯(lián)網(wǎng)系統(tǒng)實(shí)現(xiàn)中必須要考慮的問(wèn)題。本文利用Alljoyn框架來(lái)實(shí)現(xiàn)物聯(lián)網(wǎng)中設(shè)備之間的連接和設(shè)備服務(wù)的訪問(wèn),并且還在Alljoyn框架的基礎(chǔ)之上,討論了利用語(yǔ)義技術(shù)來(lái)實(shí)現(xiàn)設(shè)備間的互操作,提高設(shè)備的智能性。
關(guān)鍵詞:物聯(lián)網(wǎng);Alljoyn;語(yǔ)義技術(shù)
1 引言
近年來(lái),隨著科技的進(jìn)步和人們生活的需要,物聯(lián)網(wǎng)技術(shù)得到了廣泛的應(yīng)用,越來(lái)越多的智能設(shè)備出現(xiàn)在了人們的生活當(dāng)中。智能設(shè)備之間相互協(xié)作,為用戶提供基于上下文的和實(shí)時(shí)的體驗(yàn)。在物聯(lián)網(wǎng)中,地理位置相近的設(shè)備往往會(huì)相互連接、組網(wǎng),形成一個(gè)鄰近網(wǎng)絡(luò)。鄰近網(wǎng)絡(luò)可以通過(guò)網(wǎng)關(guān)輔助連接、服務(wù)器輔助連接等方式接入互聯(lián)網(wǎng)中,這樣任意鄰近網(wǎng)絡(luò)中的信息可以進(jìn)入互聯(lián)網(wǎng)中流通,也可以借助于互聯(lián)網(wǎng)訪問(wèn)任意鄰近網(wǎng)絡(luò)中的設(shè)備或服務(wù)。
在互聯(lián)網(wǎng)中,訪問(wèn)服務(wù)一般通過(guò)域名的方式。這些域名由IANA統(tǒng)一管理,申請(qǐng)域名時(shí)會(huì)在域名系統(tǒng)中集中注冊(cè),查找域名時(shí)會(huì)逐層搜索?;ヂ?lián)網(wǎng)采用這種方式是因?yàn)榛ヂ?lián)網(wǎng)有較為固定的基礎(chǔ)設(shè)施支撐,服務(wù)信息適合以集中的方式組織起來(lái)。另外,互聯(lián)網(wǎng)中服務(wù)信息量相對(duì)來(lái)說(shuō)不是特別大。但是在物聯(lián)網(wǎng)環(huán)境中,設(shè)備和服務(wù)非常多,從可擴(kuò)展性的角度看不適合對(duì)所有服務(wù)集中管理,服務(wù)搜索時(shí)產(chǎn)生的延時(shí)也會(huì)比較大。雖然某一鄰近區(qū)域內(nèi)設(shè)備和服務(wù)的數(shù)據(jù)量不是很大,但鄰近網(wǎng)絡(luò)往往是各種各樣的自組織網(wǎng)絡(luò)形式,如車載網(wǎng)絡(luò)、傳感器網(wǎng)絡(luò)等。這些網(wǎng)絡(luò)往往沒(méi)有固定的基礎(chǔ)設(shè)施,拓?fù)浣Y(jié)構(gòu)動(dòng)態(tài)變化,鏈路狀態(tài)不穩(wěn)定,無(wú)法提供一個(gè)穩(wěn)定的服務(wù)注冊(cè)機(jī)構(gòu)來(lái)對(duì)區(qū)域內(nèi)的服務(wù)集中管理。目前,鄰近網(wǎng)絡(luò)之間的服務(wù)信息一般采用集中注冊(cè)的方式,但是在鄰近網(wǎng)絡(luò)中,設(shè)備發(fā)布服務(wù)信息大多采用“推模式”,通過(guò)在鄰近區(qū)域內(nèi)廣播自己的服務(wù)信息或者等待服務(wù)請(qǐng)求者的查找來(lái)完成服務(wù)信息發(fā)布,形成p2p的服務(wù)網(wǎng)絡(luò)。這種方式不需要穩(wěn)定的網(wǎng)絡(luò)基礎(chǔ)設(shè)施,服務(wù)搜索延遲相對(duì)較低。另外,由于整個(gè)過(guò)程只在鄰近網(wǎng)絡(luò)中進(jìn)行,有利于信息的安全和隱私的保護(hù)。
在物聯(lián)網(wǎng)中,如果想要構(gòu)建可擴(kuò)展的、智慧的系統(tǒng),鄰近網(wǎng)絡(luò)內(nèi)部和相互之間的設(shè)備互操作性是關(guān)鍵。由于智能設(shè)備功能和產(chǎn)生的數(shù)據(jù)的多樣性和異構(gòu)性,不能夠?qū)χ悄茉O(shè)備的服務(wù)和數(shù)據(jù)進(jìn)行統(tǒng)一規(guī)范和分類標(biāo)識(shí)。但是,兩個(gè)智能設(shè)備之間需要先識(shí)別對(duì)方是何種設(shè)備和能夠提供哪些服務(wù),然后智能設(shè)備才能進(jìn)一步的交互和完成功能的調(diào)用。為了解決這些問(wèn)題,將基于機(jī)器可解釋的形式化描述的語(yǔ)義技術(shù)引入物聯(lián)網(wǎng)中,為設(shè)備和服務(wù)添加語(yǔ)義信息,服務(wù)請(qǐng)求者可以通過(guò)語(yǔ)義檢索來(lái)進(jìn)行服務(wù)發(fā)現(xiàn)和選擇。
本文基于Alljoyn框架來(lái)解決鄰近網(wǎng)絡(luò)中設(shè)備之間的連接和互操作等問(wèn)題。Alljoyn是一個(gè)開(kāi)源的框架,支持多種通信協(xié)議和目前流行的各種系統(tǒng)平臺(tái)。它基于鄰近網(wǎng)絡(luò),采用p2p來(lái)發(fā)布服務(wù)信息,支持對(duì)設(shè)備和服務(wù)進(jìn)行描述,通過(guò)對(duì)描述分析可以了解對(duì)方的功能,完成設(shè)備間的互操作。
2 Alljoyn框架
Alljoyn框架是一個(gè)開(kāi)源的軟件系統(tǒng),為運(yùn)行在不同設(shè)備上的分布式應(yīng)用程序提供運(yùn)行環(huán)境。它負(fù)責(zé)處理在分布式異構(gòu)系統(tǒng)中所面臨的問(wèn)題和移動(dòng)網(wǎng)絡(luò)的問(wèn)題,從而讓開(kāi)發(fā)人員只需要關(guān)注應(yīng)用程序的構(gòu)建。Alljoyn有幾個(gè)關(guān)鍵的部分,分別是Alljoyn Bus,Alljoyn Router,Bus attachment,Bus Interface,Bus object。
Alljoyn Bus是對(duì)分布式系統(tǒng)中數(shù)據(jù)鏈路的抽象,為消息傳遞提供了更快速、更簡(jiǎn)單的方法。應(yīng)用程序在連上Alljoyn Bus之后就可以和其他的應(yīng)用程序通信,底層的實(shí)現(xiàn)機(jī)制對(duì)應(yīng)用程序來(lái)說(shuō)是透明的。Alljoyn Bus可以分成多個(gè)段,每段位于不同的設(shè)備上,Alljoyn負(fù)責(zé)管理每個(gè)段之間的連接。實(shí)際上,每段都是一個(gè)Alljoyn Router,一般運(yùn)行在一個(gè)獨(dú)立的進(jìn)程中,負(fù)責(zé)支持各種通信協(xié)議,包括藍(lán)牙,wifi等。如圖所示,Alljoyn Router之間相互連接和轉(zhuǎn)發(fā)信息,形成了Alljoyn Bus。應(yīng)用程序連接Alljoyn Bus時(shí)其實(shí)是連接Alljoyn Router,然后向Alljoyn Router請(qǐng)求轉(zhuǎn)發(fā)數(shù)據(jù),最后Alljoyn Router將數(shù)據(jù)轉(zhuǎn)發(fā)至目的地。
應(yīng)用程序通過(guò)Bus Attachment連接Alljoyn Router,它封裝了多種進(jìn)程間通訊方式。連接之后,Alljoyn Bus給每個(gè)Bus attachment分配一個(gè)唯一的名字,用來(lái)區(qū)別不同的應(yīng)用程序。但這名字只是臨時(shí)的,每次連接所得到的名字都不相同。應(yīng)用程序可以同時(shí)請(qǐng)求一個(gè)永久的well-known name,這樣其他的設(shè)備可以通過(guò)well-known name 來(lái)訪問(wèn)應(yīng)用程序。在Alljoyn中,應(yīng)用程序以聲明Bus interface的形式向外部提供訪問(wèn)的接口。Bus interface包含Bus methods,Bus properties,Bus signals。一般情況下Bus interface的實(shí)現(xiàn)都是通過(guò)Bus attachment中的Bus Object來(lái)完成,Bus object代表著應(yīng)用程序所提供的服務(wù)。如圖所示,Alljoyn提供遠(yuǎn)程代理ProxyBusObject來(lái)訪問(wèn)遠(yuǎn)程的Bus object,ProxyBusObject會(huì)負(fù)責(zé)相應(yīng)的Bus methods等信息的傳遞 。well-known name與Bus Object的組合可以唯一標(biāo)識(shí)服務(wù)信息。
應(yīng)用程序在連接Alljoyn Bus之后,可以將服務(wù)信息發(fā)布給其他應(yīng)用程序,也可以搜索其他應(yīng)用程序的服務(wù)信息。當(dāng)一個(gè)設(shè)備靠近另一個(gè)設(shè)備時(shí),由于它們是物理隔離的,不可能知道對(duì)方的信息,但是它們需要對(duì)方服務(wù)信息才能確定是否訪問(wèn)服務(wù)。這就是服務(wù)信息發(fā)布和搜索需要完成的功能。
3 智能設(shè)備間的連接
在鄰近網(wǎng)絡(luò)中,設(shè)備之間會(huì)相互連接,組成一個(gè)通信網(wǎng)絡(luò)來(lái)進(jìn)行數(shù)據(jù)的傳輸。不同的設(shè)備組網(wǎng)方式對(duì)設(shè)備的硬件能力和通信協(xié)議等有著不同的要求。目前,市場(chǎng)上的物聯(lián)網(wǎng)設(shè)備采用的底層通信協(xié)議多種多樣,每個(gè)通信協(xié)議在相應(yīng)的領(lǐng)域廣泛應(yīng)用。各個(gè)通信協(xié)議之間并沒(méi)有出現(xiàn)相互統(tǒng)一的趨勢(shì),這意味著多種協(xié)議并存的現(xiàn)象在未來(lái)很長(zhǎng)的一段時(shí)間內(nèi)一直存在。相同通信協(xié)議的設(shè)備通訊時(shí)直接建立連接即可,但是當(dāng)周圍有不同通信協(xié)議的設(shè)備存在時(shí),兩個(gè)設(shè)備建立連接需要進(jìn)行協(xié)議的轉(zhuǎn)換。在物聯(lián)網(wǎng)中,設(shè)備被賦予的計(jì)算能力和通信能力也是有差異的。有些設(shè)備只是做簡(jiǎn)單的數(shù)據(jù)采集和數(shù)據(jù)上傳工作,數(shù)據(jù)量小,對(duì)硬件的需求低。有些設(shè)備需要進(jìn)行活動(dòng)或流程感知,并對(duì)數(shù)據(jù)進(jìn)行分析,協(xié)同其他設(shè)備來(lái)反饋,這樣對(duì)設(shè)備的硬件要求就比較高。
物聯(lián)網(wǎng)由于其特性,存在一些動(dòng)態(tài)的設(shè)備網(wǎng)絡(luò),在動(dòng)態(tài)網(wǎng)絡(luò)中,設(shè)備可以隨時(shí)進(jìn)入和離開(kāi)網(wǎng)絡(luò),沒(méi)有一個(gè)穩(wěn)定的網(wǎng)關(guān)來(lái)對(duì)網(wǎng)絡(luò)中的數(shù)據(jù)通信進(jìn)行管理。設(shè)備之間相互連接并轉(zhuǎn)發(fā)數(shù)據(jù),組成一個(gè)動(dòng)態(tài)網(wǎng)絡(luò)。因此,設(shè)備組網(wǎng)時(shí)需要考慮設(shè)備的硬件能力、設(shè)備底層通信協(xié)議和網(wǎng)絡(luò)動(dòng)態(tài)性要求,選擇合適的設(shè)備組網(wǎng)方式。Alljoyn框架的底層數(shù)據(jù)傳輸是基于TCP/IP的,且通過(guò)IP組播的方式發(fā)布網(wǎng)絡(luò)中設(shè)備的服務(wù)信息。因此,在設(shè)備網(wǎng)絡(luò)組建之后,需要考慮如何對(duì)網(wǎng)絡(luò)進(jìn)行配置,使得Alljoyn底層的數(shù)據(jù)傳輸能夠進(jìn)行。目前,鄰近網(wǎng)絡(luò)中設(shè)備的組網(wǎng)方式有以下幾種。
(1)直接連接。兩個(gè)設(shè)備之間直接建立連接,不需要中間節(jié)點(diǎn)來(lái)進(jìn)行控制和轉(zhuǎn)發(fā)。這種方式簡(jiǎn)單、直接,適用于相同通信協(xié)議的設(shè)備,但是不同通信協(xié)議的設(shè)備不能建立連接。兩個(gè)設(shè)備之間建立連接時(shí)需要相互協(xié)商來(lái)完成地址分配、身份認(rèn)證等功能,對(duì)設(shè)備通信組網(wǎng)方面的能力要求比較高。例如設(shè)備之間通過(guò)Wi-Fi Direct連接,Group Owner需要具有DHCP的功能,能夠?qū)B接的Group Client分配IP地址,Group Owner和Group Client屬于同一個(gè)網(wǎng)段。這種組網(wǎng)方式通常用于一些臨時(shí)的、短距離的數(shù)據(jù)傳輸需求,安全性高。
(2)利用中心節(jié)點(diǎn)輔助連接。周圍設(shè)備都先連接到中心節(jié)點(diǎn),中心節(jié)點(diǎn)接收數(shù)據(jù)和轉(zhuǎn)發(fā)。這種方式廣泛應(yīng)用于現(xiàn)在的互聯(lián)網(wǎng)中,如在WiFi環(huán)境中提供接入點(diǎn)來(lái)讓設(shè)備連接,進(jìn)而組成一個(gè)局域網(wǎng)。也可以讓中心節(jié)點(diǎn)支持多種通信協(xié)議,擁有多種接入點(diǎn),并對(duì)網(wǎng)絡(luò)層地址和接口做映射。當(dāng)中心節(jié)點(diǎn)接收到數(shù)據(jù)時(shí),根據(jù)數(shù)據(jù)包的網(wǎng)絡(luò)層地址來(lái)選擇相應(yīng)的接口。這樣不同通信協(xié)議的設(shè)備可以利用中心節(jié)點(diǎn)進(jìn)行協(xié)議轉(zhuǎn)換,從而建立連接。這種連接方式對(duì)設(shè)備的組網(wǎng)能力要求比較低,對(duì)中心節(jié)點(diǎn)的要求比較高。這種方式目前廣泛應(yīng)用于智能家居中,因?yàn)榧抑型鶗?huì)有多種協(xié)議的設(shè)備并存。
(3)自組網(wǎng)。自組織網(wǎng)絡(luò)是由一些具備路由轉(zhuǎn)發(fā)功能的設(shè)備相互連接形成的多跳網(wǎng)絡(luò)。這種網(wǎng)絡(luò)的節(jié)點(diǎn)可以隨時(shí)離開(kāi)和進(jìn)入網(wǎng)絡(luò),從而導(dǎo)致網(wǎng)絡(luò)結(jié)構(gòu)變化、鏈路狀態(tài)不穩(wěn)定。當(dāng)節(jié)點(diǎn)離開(kāi)網(wǎng)絡(luò)時(shí),原本經(jīng)過(guò)該節(jié)點(diǎn)的鏈路就會(huì)斷開(kāi),其他節(jié)點(diǎn)根據(jù)相應(yīng)的協(xié)商機(jī)制重新選擇路徑。當(dāng)節(jié)點(diǎn)進(jìn)入網(wǎng)絡(luò)時(shí),其他節(jié)點(diǎn)會(huì)自行檢測(cè),判斷是否有更優(yōu)的鏈路。該組網(wǎng)方式常用于無(wú)中心節(jié)點(diǎn)、設(shè)備節(jié)點(diǎn)動(dòng)態(tài)變化的環(huán)境中,適用于相同通信協(xié)議和不同通信協(xié)議的設(shè)備。每個(gè)節(jié)點(diǎn)都可以接收和轉(zhuǎn)發(fā)數(shù)據(jù),并且節(jié)點(diǎn)之間相互溝通、協(xié)作,形成一個(gè)網(wǎng)絡(luò)。這種連接模式對(duì)網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)的通信能力要求比較高。這種網(wǎng)絡(luò)因?yàn)椴恍枰潭ǖ木W(wǎng)絡(luò)設(shè)施,因而廣泛應(yīng)用于軍事領(lǐng)域和救災(zāi)中。在物聯(lián)網(wǎng)中,自組織網(wǎng)絡(luò)廣泛應(yīng)用于無(wú)線傳感器網(wǎng)絡(luò)中。傳感器一般使用無(wú)線技術(shù)來(lái)進(jìn)行數(shù)據(jù)傳輸,且一般發(fā)射功率小。因此傳感器之間采用多跳方式進(jìn)行連接,相互協(xié)作完成各種應(yīng)用任務(wù)。
Alljoyn對(duì)這三種方式都提供了支持,在Alljoyn應(yīng)用程序通信時(shí),只需要將數(shù)據(jù)交給底層的網(wǎng)絡(luò)。數(shù)據(jù)的傳輸由網(wǎng)絡(luò)層和傳輸層負(fù)責(zé),與Alljoyn無(wú)關(guān)。Alljoyn支持多種底層通信協(xié)議,并對(duì)底層協(xié)議進(jìn)行抽象,向上層協(xié)議提供統(tǒng)一的接口。不管采用哪種組網(wǎng)方式, 對(duì)Alljoyn來(lái)說(shuō)都是相同的。Alljoyn利用alljoyn router對(duì)底層網(wǎng)絡(luò)進(jìn)行抽象,讓其對(duì)上層應(yīng)用透明,并且從alljoyn router之間的相互通信抽象出alljoyn bus。從開(kāi)發(fā)人員的角度看,應(yīng)用程序都是連接到alljoyn bus 上,應(yīng)用程序之間數(shù)據(jù)的傳輸都相當(dāng)于在一個(gè)虛擬總線上進(jìn)行。當(dāng)應(yīng)用程序進(jìn)入或退出alljoyn bus 時(shí),都會(huì)向alljoyn bus發(fā)出通知,然后alljoyn bus將該事件通知給其他的應(yīng)用程序,其他應(yīng)用程序會(huì)執(zhí)行進(jìn)行相應(yīng)的動(dòng)作。
4 智能設(shè)備間的互操作
物聯(lián)網(wǎng)是由與人們生活息息相關(guān)的智能設(shè)備按照一定的通信協(xié)議相互連接組成的。它們產(chǎn)生的數(shù)據(jù)和服務(wù)多種多樣,反映了人們生活的方方面面。然而,不同設(shè)備產(chǎn)生和收集到的數(shù)據(jù)是多模式的和不同特性的。數(shù)據(jù)和服務(wù)的異構(gòu)性,使得物聯(lián)網(wǎng)設(shè)備之間的互操作成為一個(gè)挑戰(zhàn)。為了解決這個(gè)問(wèn)題,近年來(lái)的研究逐步將語(yǔ)義web技術(shù)引入物聯(lián)網(wǎng)中,使得數(shù)據(jù)和服務(wù)以統(tǒng)一的模式進(jìn)行描述,便于設(shè)備之間的識(shí)別和數(shù)據(jù)的整合與共享。通過(guò)數(shù)據(jù)的語(yǔ)義標(biāo)注能夠提供機(jī)器可解析的數(shù)據(jù)描述,包括數(shù)據(jù)的表示對(duì)象、數(shù)據(jù)的起源、與周邊環(huán)境的關(guān)系、提供者的信息以及質(zhì)量、技術(shù)等屬性信息,有利于物聯(lián)網(wǎng)信息的自動(dòng)化處理和交互?;谡Z(yǔ)義技術(shù),在領(lǐng)域?qū)<业闹笇?dǎo)下構(gòu)建相關(guān)領(lǐng)域的本體,然后參照已建立的本體對(duì)物聯(lián)網(wǎng)中的數(shù)據(jù)和資源等進(jìn)行標(biāo)注。需要對(duì)設(shè)備提供的服務(wù)進(jìn)行細(xì)化的語(yǔ)義描述,能夠反映設(shè)備所處的環(huán)境等信息。同時(shí),還需要對(duì)用戶的需求進(jìn)行語(yǔ)義化處理,通過(guò)本體以及Peri網(wǎng)理論等方法來(lái)表示用戶需求。然后,可以通過(guò)計(jì)算語(yǔ)義相似度等方法對(duì)服務(wù)和用戶需求進(jìn)行服務(wù)匹配和選擇。如果服務(wù)與需求能夠匹配,則設(shè)備之間會(huì)建立連接,完成功能的調(diào)用。
Alljoyn框架提供About interface來(lái)描述設(shè)備信息、設(shè)備提供的服務(wù)、以及其他相關(guān)的信息。About是一個(gè)通用的Bus interface,應(yīng)用程序可以通過(guò)它來(lái)描述自己,也可以訪問(wèn)其他應(yīng)用程序的About interface來(lái)獲取對(duì)方信息。在設(shè)備的服務(wù)信息發(fā)布和搜索環(huán)節(jié)中,當(dāng)收到的服務(wù)信息中含有About interface信息時(shí),可以訪問(wèn)該接口來(lái)獲取對(duì)方的信息。我們可以在About interface中采用語(yǔ)義化的形式來(lái)表達(dá)設(shè)備和設(shè)備提供的服務(wù),其他設(shè)備獲取這些信息之后,依據(jù)一些規(guī)則推理來(lái)識(shí)別設(shè)備,并可以根據(jù)自己的需求進(jìn)行服務(wù)匹配與選擇。如果設(shè)備與自己的需求符號(hào),則建立連接,訪問(wèn)相應(yīng)的功能。
5 總結(jié)
本文首先介紹了Alljoyn框架,說(shuō)明了Alljoyn對(duì)底層通信的抽象和Alljoyn系統(tǒng)中設(shè)備服務(wù)的訪問(wèn)方式。然后介紹了鄰近網(wǎng)絡(luò)中設(shè)備的幾種組網(wǎng)方式,并說(shuō)明了Alljoyn能夠適應(yīng)多種網(wǎng)絡(luò)結(jié)構(gòu)。最后介紹了語(yǔ)義技術(shù)在物聯(lián)網(wǎng)中的應(yīng)用,并將語(yǔ)義技術(shù)與Alljoyn相結(jié)合。
參考文獻(xiàn)
[1]劉莉,竇軼,戴庭,黃海平,趙生偉. 基于Jini的物聯(lián)網(wǎng)服務(wù)框架[J]. 信息通信,2011.
[2]管健. 基于XML和本體的物聯(lián)網(wǎng)數(shù)據(jù)交換標(biāo)準(zhǔn)體系研究[J]. 物聯(lián)網(wǎng)技術(shù),2012.
[3]黃濤,褚淑杰. 基于紅外通信的智能家居系統(tǒng)[J]. 嵌入式應(yīng)用,2004.
[4]杜曉明,陳巖. 無(wú)線傳感器網(wǎng)絡(luò)研究現(xiàn)狀與應(yīng)用[J]. 北京工商大學(xué)學(xué)報(bào)(自然科學(xué)版),2008.
[5]王保云. 物聯(lián)網(wǎng)技術(shù)研究綜述[J]. 電子測(cè)量與儀器學(xué)報(bào),2009.
[6]袁凌云,王興超. 語(yǔ)義技術(shù)在物聯(lián)網(wǎng)中的應(yīng)用研究綜述[J]. 計(jì)算機(jī)科學(xué),2014.
[7]黃映輝,李冠宇. 語(yǔ)義物聯(lián)網(wǎng):物聯(lián)網(wǎng)內(nèi)在矛盾之對(duì)策[J]. 計(jì)算機(jī)應(yīng)用研究,2010.
[8] 陳海明,崔 莉,謝開(kāi). 物聯(lián)網(wǎng)體系結(jié)構(gòu)與實(shí)現(xiàn)方法的比較研究[J]. 計(jì)算機(jī)學(xué)報(bào),2013.