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