2014年8月6日 星期三

UPnP Device Architecture

主要組成:
  • SSDP:
    • Notify (Device告知Controller自己的存在):
當一個新的Device加入網路中,可用Notify message來廣播通知其他網路內的Devices自己的存在。其中包含了一個URL,其他Device可以透過這個URL去跟該Device要任何XML的document 以得知該Device的能力(by HTTP)。


    • Msearch (ControllerDevice):
一個Device可以透過Msearch message來尋找目前網路上有那些Devices,收到此message的Device就可以response一些訊息。


  • XML的檔案:用來描述Device的能力。


  • SOAP:Controller用來操控Device的協定,可帶一些Action的名稱以及參數過去。


  • GENA:處理Event的協定。假設你想要收到一些Event的notify的情形,那你一開始就去註冊,註冊時會告知對方:「如果以後有事情發生請送到這個URL」,註冊以後會拿到一個註冊ID,如果你的server底下的資料夾有一個mp3檔案被刪除,server也可以送出一個Event去通知Player:「我們content不見了」。


圖示:
例子:
  一開始假設我有一台Server,我有一些Content放在這個Server,我有一個UMPC,華碩有出一款UMPC。你可以去get IP,假設它有DHCP-Server,你可以拿到同一個Domain,這樣子大家就在同一個網路了。如果你是Server,你就會去廣播我(Server)的出現,你是Control Point遙控器功能的人的就會收到Server的廣播。廣播以後你就知道他(Server)的存在,你就可以透過剛剛講的,去把XHTML裡面的東西抓過來,抓過來以後就透過SOAP這個Action去Control PC。PC如果有什麼狀態改變,它也會透過GENA告訴你。如果我們家裡的一些家電或資訊產品都實作了UPnP在裡面,基本上他們就互相找得到對方、看的到對方。現在網路上的這些,(這個除外,明基有做但是你不會買這樣)這是網路電視,這是PC(它只賣大陸),這是明基的notebook,明基的printer(雖然醜,還蠻可愛的;雖然便宜,一台只賣一兩千,但是毛利還是很高,所以你去買印表機的時候還可以在跟他殺價,已經一千多了還可以再殺,毛利還是很大),還有那個PMP,有些人講他是MP4,事實上我們PMP會再多加一些能力進去,比如說他可以看DVB-T,數位電視也會把它做進去。這平板電腦沒有賣,就是我們內部的beta版本,這個是明基的P50手機(如果你買到的話,真的很幸運,它已經停產了)。UPnP剛剛介紹的那幾個層,針對不同的應用,它上面會有一些profile:影音的profile還有家電控制,比如說通風設備、空調設備都可以控制,開關明暗都可以調,印表機也可以控制,scanner也可以控制,所以你發現UPnP提供了這一套,還繼續在訂定其他的。那這一套,我們往上來看,就是大致上我們平常在家裡,如果你是平常習慣在家裡做研究的人,大概都會用到這一套系統。所以你發現事實上他是有機會串在一起的,只要它有符合UPnP。

p.s.
wireshark filter: 1. http.request.method==NOTIFY (其他SUBSCRIBE,...等等依此類推)
2. http.request.method==NOTIFY && http.content_length => GENA的NOTIFY
3. http.request.method==NOTIFY && ! http.content_length => SSDP的NOTIFY

----------------------------------------------
參考網址:
http://www.cs.nccu.edu.tw/~lien/Class/Seminar/2006f/Speech08/speech.htm

沒有留言:

張貼留言