UPnP在控制指針和被控制設(shè)備之間提供通訊功能。而網(wǎng)絡(luò)介質(zhì)、TCP/IP協(xié)議、HTTP僅提供基本的連接和IP地址分配。整個(gè)工作過(guò)程需要處理六個(gè)方面的內(nèi)容,即設(shè)備尋址、發(fā)現(xiàn)設(shè)備、對(duì)設(shè)備的描述、設(shè)備控制、設(shè)備事件、設(shè)備表達(dá)。
設(shè)備尋址:
地址是整個(gè)UPnP系統(tǒng)工作的基礎(chǔ)條件,每個(gè)設(shè)備都應(yīng)當(dāng)是DHCP(Dynamic Host Configuration Protocol動(dòng)態(tài)主機(jī)配置協(xié)議)的客戶。當(dāng)設(shè)備首次與網(wǎng)絡(luò)建立連接后,利用DHCP服務(wù),使設(shè)備得到一個(gè)IP地址。這個(gè)IP地址可以是DHCP系統(tǒng)指定的,也可以是由設(shè)備選擇的。當(dāng)局域網(wǎng)內(nèi)沒有提供DHCP服務(wù)時(shí),UPnP設(shè)備將按照Auto-IP的協(xié)議,從169.254/169.16地址范圍獲取一個(gè)局域網(wǎng)內(nèi)唯一的IP地址。設(shè)備還能使用昵稱(friendly name),這就需要域名解析服務(wù)(DNS)來(lái)解決。
發(fā)現(xiàn)設(shè)備:
可分成兩種情況,一種是在有控制請(qǐng)求之后,在當(dāng)前的網(wǎng)絡(luò)中查找有無(wú)對(duì)應(yīng)的可用設(shè)備;另一種情況是某一設(shè)備接入網(wǎng)絡(luò)、取得IP地址之后,就開始向網(wǎng)絡(luò)“廣播”自己已經(jīng)進(jìn)入網(wǎng)絡(luò),即尋找控制請(qǐng)求。
設(shè)備的描述:
簡(jiǎn)單說(shuō),這是聲明“自己”是什么樣的設(shè)備,例如名稱、制造廠商、序列號(hào)碼等等。剛開始“發(fā)現(xiàn)”設(shè)備后,控制指針對(duì)這個(gè)設(shè)備的“了解”還很少,需要依據(jù)URL找到該設(shè)備的描述文件,從這些文件中讀取更多的描述信息。描述信息的范圍很廣,一般都是由設(shè)備的制造廠商提供的。主要的描述項(xiàng)目有:控制的模式名稱和模式號(hào)碼、設(shè)備序列號(hào)、制造廠商名稱、廠商的WEB的URL……等等。這些一般都存放在特定的XML文件中。
設(shè)備控制:
控制指針找到設(shè)備描述之后,會(huì)從描述中“提煉”出要進(jìn)行的操作并獲悉所有的服務(wù);對(duì)每個(gè)UPnP設(shè)備來(lái)說(shuō),這些描述必須是很確切、很詳細(xì)的,描述中可能包含有命令或行為列表、服務(wù)響應(yīng)信息、用到的參數(shù)等等。對(duì)于服務(wù)的每個(gè)行為,也伴有描述信息:主要是整個(gè)服務(wù)進(jìn)行期間的變量、變量的數(shù)據(jù)類型、可用的取值范圍和事件的特征。
要控制某個(gè)設(shè)備,控制點(diǎn)必須先發(fā)送一個(gè)控制行為請(qǐng)求,要求設(shè)備開始服務(wù),然后再按設(shè)備的URL發(fā)送相應(yīng)的控制消息,控制消息就是放置在XML文件中的那些SOAP格式的信息。最后,服務(wù)會(huì)返回響應(yīng)信息,指出服務(wù)是成功或是失敗。
設(shè)備事件:
在服務(wù)進(jìn)行的整個(gè)時(shí)間內(nèi),只要變量值發(fā)生了變化或者模式的狀態(tài)發(fā)生了改變,就產(chǎn)生了一個(gè)事件,系統(tǒng)將修改上述提到的事件列表的內(nèi)容。隨之,事件服務(wù)器把事件向整個(gè)網(wǎng)絡(luò)進(jìn)行廣播。另一方面,控制點(diǎn)也可以事先向事件服務(wù)器訂閱事件信息,保證將該控制點(diǎn)感興趣的事件及時(shí)準(zhǔn)確地傳送過(guò)來(lái)。
廣播或訂閱事件,傳送的都是事件消息,事件消息也放在XML文件中,使用的格式是GENA。
設(shè)備投入工作之前的準(zhǔn)備―――初始化過(guò)程,也是一個(gè)事件,初始化需要的各種信息也是用事件消息傳送的。包括的內(nèi)容主要是:變量初始值,模式的初始狀態(tài)等等。
設(shè)備表達(dá):
只要得到了設(shè)備的URL,就可以取得該設(shè)備表達(dá)的URL,然后可以將此表達(dá)納入用戶的本地瀏覽器上。這部分還包括與用戶對(duì)話的界面,以及與用戶進(jìn)行會(huì)話的處理。
簡(jiǎn)要介紹下UPnP的工作流程:設(shè)備加入網(wǎng)絡(luò)后通過(guò)設(shè)備尋址就可自動(dòng)獲得IP地址,通過(guò)設(shè)備發(fā)現(xiàn),控制點(diǎn)就可知道網(wǎng)絡(luò)上存在哪些設(shè)備,通過(guò)設(shè)備描述控制點(diǎn)就可知道設(shè)備詳細(xì)信息以及設(shè)備提供哪些服務(wù),通過(guò)設(shè)備控制控制點(diǎn)可以使用設(shè)備的服務(wù),通過(guò)設(shè)備事件設(shè)備就可以將其狀態(tài)變化及時(shí)告訴給感興趣的控制點(diǎn),通過(guò)設(shè)備表達(dá)控制點(diǎn)可以用瀏覽器察看設(shè)備狀態(tài)和控制設(shè)備。通過(guò)上述的六個(gè)方面,UPnP設(shè)備可以做到在“零配置”的前提下提供了聯(lián)網(wǎng)設(shè)備之間的自動(dòng)發(fā)現(xiàn)、自動(dòng)聲明、“直接”信息交換和互操作等功能,真正實(shí)現(xiàn)“設(shè)備即插即用”。
UPnP所用到的主要協(xié)議還有:SSDP(Simple Service Discovery Protocol 簡(jiǎn)單服務(wù)發(fā)現(xiàn)協(xié)議)、GENA(Generic Event Notification Architecture 通用事件通知結(jié)構(gòu))、SOAP(Simple Object Access Protocol 簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議)、XML(Extensible Markup Language 可擴(kuò)張標(biāo)記語(yǔ)言)。采用IP協(xié)議來(lái)保證UPnP獨(dú)立與網(wǎng)絡(luò)傳輸?shù)奈锢斫橘|(zhì),SOAP協(xié)議來(lái)保證UPnP設(shè)備具有互操作能力,XML來(lái)對(duì)設(shè)備和服務(wù)進(jìn)行統(tǒng)一的描述,HTTP協(xié)議來(lái)進(jìn)行UPnP設(shè)備的信息交互。采用這些現(xiàn)存的、廣泛應(yīng)用的協(xié)議能減少開發(fā)UPnP設(shè)備的工作量,使UPnP設(shè)備更好地融入現(xiàn)有網(wǎng)絡(luò)。
評(píng)論
查看更多