820 likes | 1.06k Views
XML in Digital Home UPnP Device Architecture. Part1 – 林維俐 Part2 – 劉智偉 Part3 – 黃俊偉. Outline. UPnP 介紹 UPnP 基本運作 UPnP 實例解說 UPnP 應用情況 相關產品介紹. UPnP Device Architecture Introduction. Part1 – 林維俐. Introduction What is UPnP?.
E N D
XML in Digital HomeUPnP Device Architecture Part1 – 林維俐 Part2 – 劉智偉 Part3 – 黃俊偉
Outline • UPnP介紹 • UPnP基本運作 • UPnP實例解說 • UPnP應用情況 • 相關產品介紹
UPnP Device ArchitectureIntroduction Part1 – 林維俐
Introduction What is UPnP? • UPnP 全名是Universal Plug and Play,UPnP 最大的願景就是希望任何設備只要一接上網路,所有在網路上的設備馬上就能知道有新設備加入,這些設備彼此之間能互相溝通,更能直接使用或控制它,一切都不需要設定,完全的Plug an Play。
Introduction What is UPnP? • 有了 UPnP 之後,裝置就可以動態合併網路、取得 IP 位址、傳遞其功能、以及知道其他裝置的存在和功能;完全符合零組態網路的條件。接下來裝置就可以彼此直接通信,進一步的啟用同層級的網路功能。 UPnP充分利用了包括IP、TCP、UDP、HTTP和XML在內的網路組件。UPnP 是一種分散式、開放式的網路架構,由所用的通訊協定所定義,因此不受任何特定作業系統、程式設計語言、或實體媒體的影響 。
Introduction UPnP Forum • 「 UPnP Forum」根據 Microsoft 所提供的一般裝置架構,定義了UPnP 裝置和服務說明。 • UPnP Forum 的目標,是為了推動容易連線的裝置,並且簡化家庭和公司環境的網路實作。UPnP Forum 將藉由定義和發佈以開放式網際網路通信標準為基礎的 UPnP 裝置和服務說明,而達到這個目的。 • UPnP Forum 的網站 http://upnp.org/是開發和標準化架構的集中存放區。
Introduction UPnP 網路的元件 • UPnP 網路的基本架構分為: • 裝置 • 服務 • 控制點
UPnP 網路的元件 - 裝置 • UPnP 裝置是存放服務和巢狀裝置的容器。不同種類的 UPnP 裝置,將關聯到不同集合的服務和內嵌裝置。因此,不同的工作群組,會針對特定裝置類型所提供的服務集合加以標準化。這些資訊在該裝置必須具備的 XML 裝置說明文件中都找得到。
UPnP 網路的元件 - 服務 • UPnP 網路中最小的控制單位就是服務。服務是以狀態變數表現其動作,並且設定其狀態模型。UPnP 裝置中的服務,是由狀態表、控制伺服器以及事件伺服器所組成。 • 狀態表:透過狀態變數,設定服務狀態的模型。 • 控制伺服器:負責接收動作要求、執行這些要求、更新狀態表、並且將回應傳回。 • 事件伺服器:負責在服務狀態改變時,將事件發佈給有興趣的訂戶。
UPnP 網路的元件 - 控制點 • UPnP 網路中的控制點,是一個可以探索和控制其他裝置的控制站。探索之後,控制點可以: • 擷取裝置說明,並取得相關服務的清單。 • 擷取有趣服務的服務說明。 • 啟動動作來控制服務。 • 訂閱服務的事件來源。 • 裝置會加上控制點功能,啟動同等級的網路功能。
IntroductionUPnP 通訊協定概觀 • UPnP 的網路媒體 • UPnP 會套用標準的 IP 通訊協定套件,保持網路媒體診斷。UPnP 網路上的裝置可以用任何通信媒體加以連接,唯一的顧慮就是媒體必須支援專用頻寬。 • UPnP 一般是採用開放式的標準通訊協定,如 TCP/IP、HTTP 和 XML。它們也可以透過 UPnP 橋接或 proxy 來參與 UPnP 網路。
IntroductionUPnP 通訊協定概觀 橋接的 UPnP 網路
IntroductionUPnP 通訊協定概觀 • UPnP 所用的通訊協定 UPnP 套用了許多現有的標準通訊協定。這些通訊協定,可以落實廠商實作之間的互通性。網際網路和區域網路的每一個地方,都在使用這些實作 UPnP 所用的通訊協定,由於都是採用同樣的通訊協定,因此UPnP 裝置不必再採取其他動作,即可在現有的網路環境下運作。
UPnP 所用的通訊協定 • TCP/IP • HTTP、HTTPU、HTTPMU • SSDP • GENA • SOAP • XML
UPnP 所用的通訊協定 • TCP/IP • TCP/IP 網路通訊協定堆疊是其他 UPnP 通訊協定所根據的基礎。UPnP 藉由TCP/IP 通訊協定套件,套用了通訊協定的功能,橫跨不同的實體媒體,並且落實多廠商之間的互通性。 • UPnP 裝置可以在 TCP/IP 堆疊當中使用許多通訊協定,包括 TCP、UDP、IGMP、ARP 和 IP,以及 TCP/IP 服務 (如 DHCP 和 DNS)。
UPnP 所用的通訊協定 • HTTP、HTTPU、HTTPMU • HTTP也是網際網路UPnP 的主要部份, 而HTTPU/HTTPMU 是HTTP 的延伸,定義使用UDP/IP 來傳送訊息而不是用TCP/IP,這個通訊協定會被SSDP 所使用。
UPnP 所用的通訊協定 • SSDP • 簡單服務發現協定(Simple Service Discovery Protocol:SSDP)是內建在HTTPU/HTTPMU 裡,定義如何讓網路上有的服務被發現的協定。 • 包括控制點如何發現現在網路上有哪些服務,並取得這些服務的資訊,還有裝置本身宣告他提供能些服務。
UPnP 所用的通訊協定 • GENA • 一般事件通知架構(Generic Event Notification Architecture) ,是用來處理如何傳送訂閱訊息並如何接收通知訊息用的。主要在利用 HTTP over TCP/IP 和多點傳送 UDP 來收送通知。
UPnP 所用的通訊協定 • SOAP • 簡易物件存取協定(Simple Object Access Protocol:SOAP)定義如何使用XML 與HTTP 來執行遠端程序呼叫(Remote Procedure Call) • SOAP 可以利用網際網路的現有基本架構,有效使用防火牆和 proxy,也可以善用 Secure Sockets Layer (SSL) 提供安全保護,並且使用 HTTP 的連線管理設備。
IntroductionUPnP 如何運作 • UPnP 的責任 UPnP 支援裝置和控制點之間的通信,由網路媒介、TCP/IP 通訊協定套件和 HTTP 三者共同提供基本的網路連接和必要的定址。而在這些開放式的標準網際網路通訊協定之上,UPnP 定義了一組 HTTP 伺服器,專門處理探索、說明、控制、事件和呈現作業。
IntroductionUPnP 如何運作 • UPnP 通訊協定堆疊
UPnP的應用UPnP 的案例 • 兒童監控攝影機 維俐在兒童房擺了兩個小型的監視攝影機,以便一面在家庭辦公室的個人電腦工作,一面瞧瞧孩子們有沒有乖乖的做功課。她也在大門裝設了一部,只要有人按鈴時,馬上就知道訪客是誰。維俐也可以透過家裡任何一部採用 UPnP 的電視,監視這些攝影機。
UPnP的應用UPnP 的案例 • 將時鐘同步處理 智偉家裡只要停電幾個小時,每一個時鐘的時間都會變成 12:00。每一次他都要把家裡所有的時鐘一一設定,浪費時間不說,光想到就覺得頭痛不已。自從採用 UPnP 之後,Windows XP 電腦上執行的指令碼,就會根據科羅拉多州的原子時鐘,定期將家裡所有的時鐘同步處理。
UPnP的應用UPnP 的案例 • 新的印表機 過去如果要帶一部新的印表機回家,用在家庭網路上,她必須先執行幾個步驟,確定網路上所有的個人電腦都能夠使用這部印表機,接下來才能看看其他需要列印的裝置是否可以使用它。比方說,必須將印表機連接到現有的個人電腦;載入裝置驅動程式;在網路上共用該印表機;然後進入網路上其他每一部個人電腦,將它們連接到共用的印表機。自從有了 UPnP 之後,只要將印表機插在任何可用的網路連接埠,路上所有的裝置和使用者,就可以立即使用這部印表機了。
UPnP 基本的運作 Part2 – 劉智偉
UPnP 基本的運作UPnP裝置工作過程 UPnP定義了裝置之間、裝置和控制點、控制點之間通訊的協定。完整的UPnP由裝置定址、裝置發現、裝置描述、裝置控制、事件通知和基於Html的介面呈現幾部分構成。
UPnP 基本的運作UPnP裝置工作過程 • UPnP運作步驟: • 定址 • 裝置透過定址來獲得一個網路位址 • 探索 • 控制點發現裝置 • 描述 • 控制點對發現的裝置進行了解 • 控制 • 控制點將命令發送至裝置 • 事件通知 • 控制點監聽裝置的狀態變化 • 呈現 • 控制點呈現裝置的使用介面
UPnP 基本的運作定址(Addressing) • UPnP 網路連線的基礎是 TCP/IP 通訊協定套件,而此套件的關鍵就是定址作業。每一個裝置都必須有「動態主機設定通訊協定」(Dynamic Host Configuration Protocol,DHCP) 用戶端,在該裝置第一次連接到網路時,搜尋 DHCP 伺服器。如果找得到 DHCP 伺服器,該裝置就得使用指定給它的 IP 位址。如果找不到 DHCP 伺服器,則必須使用 Auto-IP 取得位址。 • 簡而言之,Auto-IP 主要在定義裝置如何從一組保留的私人位址當中,以智慧方式選擇 IP 位址,以及如何在管理和不受管理的網路之間輕鬆遊移。
UPnP 基本的運作定址(Addressing) • UPnP網路的基礎就是TCP/IP協定族,UPnP設備能在TCP/IP協定下工作的關鍵就是正確的設備定址。 • 一個UPnP設備定址的一般過程是:首先向 DHCP伺服器發送DHCPDISCOVER消息,如果在指定的時間內,設備沒有收到DHCPOFFERS回應消息,設備必須使用 Auto-IP完成IP位址的設置。 • 使用Auto-IP時,設備在位址範圍169.254/169.16範圍中查找空閒的地址。在選中一個位址之後,設備測試此位址是否在使用。如果此位址被佔用,則重複查找過程直到找到一個未被佔用的位址,位址的選擇過程應該是隨機的以避免多個設備選擇位址時發生多次衝突。為了測試選擇的位址是否未被佔用,設備必須使用位址分辨協定(ARP)。一個ARP查詢請求設置發送者的硬體位址為設備的硬體位址,發送者的IP位址為全0。設備應該偵聽ARP查詢回應,或者是否存在具有相同IP位址的ARP查詢請求。如果發現,設備必須嘗試新的位址。
UPnP 基本的運作定址(Addressing) • 使用Auto IP的設備必須定時檢測DHCP伺服器是否存在,這可以通過定時發送DHCPDISCOVER消息實現,如果接收到DHCPOFFERS回應消息,設備必須釋放Auto IP分配的位址,此時設備必須取消所有的廣告消息並重新發出新的。 • 一個設備可以使用UPnP之外的更高層的協定,這些協定將為設備使用友好的名稱。在這種情況下,將這些友好的主機名解析為IP位址就很必要了,DNS通常是用來實現此功能的。使用此功能的設備可能要包含一個DNS用戶端,而且支援動態的DNS註冊,通過註冊將它自己的名字加入到地址分佈圖中。
UPnP 基本的運作探索(Discovery) • 只要將裝置連接到網路上,並且妥善定址之後,即可進行探索作業。探索作業是由 SSDP 負責處理。當裝置加入網路時,SSDP 容許該裝置對網路上的控制點廣告其服務。當控制點加入網路時,SSDP 則容許該控制點在網路上搜尋有興趣的裝置。 • 這兩種情況的基本交換就是一種探索訊息,探索訊息是指該裝置或其中一種服務的一些基本專屬資訊,例如,類型、識別碼、以及指向其 XML 裝置說明文件的指標。
UPnP 基本的運作探索(Discovery) • 裝置探索是由簡單發現協議SSDP(Simple Service Discovery Protocol)來定義的。 • 簡單探索協定(SSDP)定義了在網路中發現網路服務,控制點定位網路上相關資源和設備在網路上聲明其可用性的方法。它是建立在 HTTPU和 HTTPMU的基礎上的,用於控制設備發送宣告和離開消息,以及控制點發送的查詢消息實現設備發現操作的。
UPnP 基本的運作探索(Discovery) • 宣告 – 新增至網路 在一個新設備加入網路時,如果它存在多個嵌入設備,那麼它將多目傳送一系列發現消息公開它的設備和服務。任何感興趣的控制點可以在此標準的多目位址上監聽新服務可用通知消息。同樣,在一個控制點加入網路時,它多目傳送發現消息尋找相關設備或服務。所有的設備必須在標準多目傳送位址上監聽這些消息並且存在匹配的設備或服務時自動回應發現消息。
UPnP 基本的運作探索(Discovery) • 宣告 – 退出網路 在設備從網路中除去時,它也應該發出一系列聲明,表示此設備包含的設備和服務已經失效。
UPnP 基本的運作描述(Description) • 為了深入了解該裝置及其功能,或者與該裝置互動,必須從該裝置在探索訊息所提供的 URL 擷取其裝置的描述。 • 裝置可能含有其他的邏輯裝置和服務。裝置的 UPnP 說明是以 XML表示。
UPnP 基本的運作描述(Description) • 為了深入了解該裝置及其功能,或者與該裝置互動,必須從該裝置在探索訊息所提供的 URL 擷取其裝置的描述。
UPnP 基本的運作描述(Description) • 設備描述 • 描述所包含的物理與邏輯設備 • 服務描述 • 描述對外廣告的能力
UPnP 基本的運作描述(Description) • 設備描述 • 以XML形式表示出來,設備描述包括製造商資訊,包括模組名稱和編號,序列號,製造商名稱,製造商網站的URL等等。設備描述也包括所有嵌入設備描述和URL位址集。對於一個物理設備可以包含多個邏輯設備,多個邏輯設備既可以是一個根設備其中嵌入多個設備,也可以是多個根設備的方式實現。設備描述是由設備製造商提供的,採用XML表述,並且遵循UPnP設備模版。此模版是由UPnP工作委員會生成的。
UPnP 基本的運作描述(Description) • 服務描述 • 包括一系列命令或者動作,服務回應,動作的參數。服務的描述也包含一系列變數,這些變數描述了服務運行時刻的狀態,這包括資料類型、取值範圍和事件特性的描述。服務描述也是由設備製造商提供的,採用XML方式表述,遵循UPnP服務模版。
UPnP 基本的運作控制(Control) • 在接收設備和服務描述之後,控制點可以向這些服務發出動作,同時控制點也可以輪詢服務的狀態變數值。發出動作實質上是一種遠端程序呼叫,控制點將動作送到設備服務,在動作完成之後,服務返回相應的結果。
UPnP 基本的運作控制(Control) • 當控制點擷取到裝置說明之後,控制點就具有控制裝置的基本條件了。如果要更進一步了解服務,控制點必須擷取每一個服務的詳細 UPnP 說明。服務的說明也是以 XML 表示,其中含有指令或動作、每一個動作的服務回應、以及每一個動作的參數或引數。服務說明也會列出代表執行階段之服務狀態的變數,這些變數是以資料類型、範圍和事件特性為主要內容加以說明。 • 控制點要控制裝置時,會傳送一個動作要求給裝置的服務,其方式是傳送一個適合的控制訊息給該服務的控制 URL (可在裝置說明找到)。控制訊息也是利用 SOAP,以 XML 表示。 • 而服務則傳回動作專屬值或錯誤碼,來回應控制訊息。
UPnP 基本的運作事件通知(Eventing) • 服務的 UPnP 說明列有服務回應的動作,以及代表服務在執行階段之狀態的變數。當這些變數變更時,服務會發佈更新,而控制點則可訂閱以接收這些資訊。 • 服務是以傳送事件訊息的方式來發佈更新。事件訊息含有一或多個狀態變數的名稱,以及那些變數的目前值。這些訊息也是以 XML 表示,而且利用 GENA 設定格式。 • 當控制點第一次訂閱時,會傳送一則特別的起始事件訊息,這則事件訊息包含所有事件變數的名稱和值,同時容許訂戶將服務狀態的模型初始化。 • 為了支援多個控制點,所有的訂戶都會收到所有的事件訊息;訂戶會收到所有事件變數的事件訊息;而且不管狀態變數為何改變,都會傳送事件訊息 (以回應動作要求,或者因應狀態變更)。
UPnP 基本的運作呈現(Presentation) • 呈現是用以HTML為基礎的介面用以檢視及控制裝置的狀態。 • 如果裝置有進行呈現網頁的 URL,控制點就可以從這個 URL 擷取網頁;將該網頁載入到瀏覽器;然後根據該網頁的功能,容許使用者控制裝置以及檢視裝置狀態。每一項作業可以做到哪一種程度,將根據呈現方式網頁和裝置的特定功能而定。
UPnP 基本的運作呈現(Presentation) • 呈現地功能完全由廠商規定
UPnP的應用 Part3 – 黃俊偉
UPnP的應用領域 以上都是針對技術的部分以及其應用深入探討,接下來將繼續分析 UPnP將會在哪些領域中有哪些更為明確的應用,主要分成以下四個領域,依序分別是:閘道器、影音視訊、電腦周邊及家庭自動化。