微軟UPnP技術

來源:互聯網
上載者:User
1.1 UPnP Introduction
    “通用隨插即用”(UPnP)是 Microsoft Windows 中一種支援網路裝置點對點“隨插即用”功能的體繫結構。UPnP 規範的設計目的是簡化裝置和網路服務的安裝與管理。UPnP通過一種無驅動程式的、基於標準的協議機制來完成裝置和服務的尋找與控制。“通用隨插即用”裝置可自動設定網路定址,宣布它們在一個網路子網上的存在,並允許說明裝置與服務說明的交換。一台 Windows Me或以上電腦可作為一個 UPnP 控制點,通過 Web 或應用程式介面來發現和控制裝置。

1.2 UPnP Terminology

  • 操作 - 用於觸發服務以執行功能的命令。
  • 控制點 - 檢索“通用隨插即用”服務和裝置說明的軟體,它會將操作發送到服務,並從服務中接收事件。
  • 裝置 - 一項或多項服務的容器物件,它可以是物理裝置,例如,攜帶型攝像機,也可以是邏輯裝置,例如,一台起著攜帶型攝像機作用的電腦。
  • 事件- 從裝置發送到控制點的訊息,用來使已預訂的控制點總能知道裝置的狀態。
  • 服務 - 可通過控制點控制的裝置功能。
  • 預訂 - 控制點與服務之間的一種關係。

    1.3 Five Stage of UPnP

  • 發現 - “通用隨插即用”裝置會使用“簡單服務發現協議”(SSDP) 向其他裝置和控制點宣告其在網路上的存在。新添加的控制點會使用 SSDP 來發現網路上的“通用隨插即用”裝置。在裝置和控制點之間交換的資訊只限於一些發現訊息,它們提供關於裝置及其服務的基本資料,還帶有一個說明 URL,後者可用來獲得裝置的其他資訊。
  • 說明 - 通過使用在發現過程中提供的 URL,控制點可接收到關於裝置的 XML 格式的資訊,如製造商、型號和序號。另外,說明過程還可以包括嵌入裝置、嵌入服務和用於訪問裝置功能的 URL 的列表。
  • 控制 - 控制點使用說明過程中提供的 URL 來訪問附加的 XML 格式的資訊,此資訊說明“通用隨插即用”裝置服務可對哪些操作做出響應以及各種操作的參數。控制訊息採用 XML 格式,使用的是“簡易物件存取通訊協定 (SOAP)”(SOAP)。
  • 事件 - 如果一個控制點預訂了一項服務,則該服務將向此控制點發送事件訊息,以宣布裝置狀態的改變。事件訊息採用 XML 格式,而且使用的是“通用事件通知結構”(GENA)。
  • 展示 - 如果一個“通用隨插即用”裝置提供了一個展示 URL,則可以用瀏覽器來提供者控制功能、裝置或服務資訊,或製造商實現的任何特定於裝置的能力。

    1.4 How to add UPnP Support in your Application
        本來想自己編一個Fake UPnP Device的,可是到Microsoft網站一看,WinXP下已經提供了供UPnP開發的COM組件了,並且支援UPnP控制點和裝置的開發。有興趣的可以參考MSDN上" Win32 and COM Development >Network Communication >UPnP APIs"下的"Device Host API"和","Control Point API"部分的內容。
        Linux下也有開源UPnP棧libupnp,給出了一個UPnP棧實現。同時,Intel SDK for UPnP Device也比較成熟了,在Intel SDK for UPnP Device Programming Guide中甚至還給出了如何”Writing a UPnP Device”和”Writing a UPnP Control Point”的Demo程式。

        看完了UPnP的架構,感覺UPnP跟WebServcie很像:都是採用SOAP協議到Web伺服器上去調用Service,但WebService的服務發布是靜態而相比之下UPnP則利用組播地址239.255.255.255:1900採用UDP多播的方式來實現自動擷取UPnP Device的Service列表(Control Point可以發M-Search請求去取,Device也可發Notify訊息主動通知各個Control Points).另外一個不同點就是UPnP下的Control Point(作為UPnP架構下的一個用戶端) 可以預先定製(Subscribe)UPnP裝置的相關訊息,在UPnP裝置的內部狀態發生改變時,其就會通知感興趣的那些Control Points(這有點像COM中的連接點了^_^).

  •  

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.