微软UPnP技术

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)。

  • 事件 - 如果一个控制点预订了一项服务,则该服务将向此控制点发送事件消息,以宣布设备状态的改变。事件消息采用 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中的连接点了^_^).
  •  
UPnP_Programming_Guide Intel® SDK for UPnP™ Devices 1 Overview .................................................................................................................................... 1 1.1 UPnP Overview................................................................................................................1 1.1.1 Discovery.............................................................................................................1 1.1.2 Description...........................................................................................................2 1.1.3 Control ................................................................................................................2 1.1.4 Eventing ..............................................................................................................2 1.1.5 Presentation .........................................................................................................3 1.1.6 Control Point and Device Interaction .....................................................................3 1.2 SDK Architecture .............................................................................................................5 1.2.1 Device/Control Point Application ..........................................................................5 1.2.2 SDK API .............................................................................................................5 1.2.3 SSDP...................................................................................................................6 1.2.4 Mini Web Server ..................................................................................................6 1.2.5 GENA .................................................................................................................6 1.2.6 SOAP ..................................................................................................................6 1.2.7 HTTP ..................................................................................................................6 1.2.8 Mini Server ..........................................................................................................6 1.2.9 ThreadUtil Library................................................................................................7 1.2.10 XML Parser .........................................................................................................7 1.2.11 BSD Socket Layer................................................................................................7 1.3 Virtual Directories ............................................................................................................8 2 Writing a UPnP Device ............................................................................................................ 10 2.1 Setup and Initialization ................................................................................................... 10 2.1.1 Initializing the SDK ............................................................................................ 10 2.1.2 Setting a Root Directory ...................................................................................... 11 2.1.3 Registering a Root Device................................................................................... 11 2.1.4 Device Specific Initialization ............................................................................... 12 2.1.5 Advertising the Device........................................................................................ 12 2.2 Handling Requests.......................................................................................................... 12 2.2.1 Subscription Requests ......................................................................................... 13 2.2.2 Get Variable Requests ......................................................................................... 14 2.2.3 Action Requests ................................................................................................. 16 2.3 Sending Events............................................................................................................... 17 2.4 Shutting Down ............................................................................................................... 18 3 Writing a UPnP Control Point................................................................................................. 19 3.1 Setup and Initialization ................................................................................................... 19 3.1.1 SDK Initialization............................................................................................... 19 3.1.2 Control Point Application Specific Initia lization ................................................... 20 3.1.3 Control Point Registration ................................................................................... 20 3.2 Searching for Something Interesting ................................................................................ 20 3.3 Retrieving Descriptions ................................................................................................... 22 3.4 Watching for Events ....................................................................................................... 23 iv Intel® SDK for UPnP™ Devices Version 1.2.1 3.5 Invoking Actions ............................................................................................................ 24 3.6 Shutting Down ............................................................................................................... 26
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值