UPnP 体系架构和基本原理 —— UPnP 网络组件

UPnP 网络组件

UPnP 网络组件通常由设备(Device)、服务(Service)和控制点(Control Point)这三个基础组件组成。

Android Upnp 设备 upnp设备都有哪些设备_UPnP

设备

UPnP最基本的概念模型就是设备模型,设备是服务和嵌入式设备的容器。例如:一个播放器设备可以包含歌曲播放服务和时钟服务,而一个多媒体设备可以包含播放器设备和资源搜索服务。该设备可以是物理上的设备,如电视机;也可以是逻辑上的设备,如笔记本电脑内的一个播放器所模拟的电视机。因此,UPnP设备并非传统意义上的硬件设备,还应当包括其中的服务功能。

由于不同种类的UPnP设备需要关联不同的服务和嵌入式设备,因此它们的服务和嵌入式设备都应该有所不同,用以区分。一个UPnP设备可以由多个嵌入式设备嵌入组成,但根设备和嵌入式设备之间有所差别。根设备中存在自身的服务描述信息,因此根设备中的嵌入式设备需要独立自身的描述文档以便与根设备的服务描述信息区别开。

服务

服务是UPnP网络中最基础的控制单元。每个服务描述设备所提供的若干动作和相关的状态。如一个播放器,服务有媒体服务、时钟服务等,媒体服务包含播放进度、播放总时长、音量等状态和播放、暂停、音量调节等动作,而时钟服务包含时钟设置和时钟显示等动作。
UPnP设备的设备信息和其拥有的服务相关描述信息都保存在一个XML描述文件中,当设备了建立联系和使用时,XML文件可以与其进行关联。从图可知,一个设备服务由一个状态变量表(State Table)、一个控制服务器(Control Server)和一个事件服务器(Event Server)组成。

  1. 状态变量表:状态变量表中使用状态变量用于描述服务的状态,当服务状态发生变化时,需要更新状态变量表中的相关状态变量。
  2. 控制服务器:控制服务器用于接收并执行网络内其它设备对该设备的服务的动作请求,更新状态变量表中相关状态变量,返回响应结果。
  3. 事件服务器:事件服务器接受事件订阅者对设备事件的订阅请求,当服务的状态发生变化时,会向订阅该事件的订阅者发生事件通知。

控制点

在UPnP网络中,控制点是对网络中的设备和服务进行控制操作的控制者,可以发现并控制其它设备的控制设备。控制点的主要任务有:

  1. 搜索网络内的设备描述和服务描述。
  2. 向服务发送动作请求。
  3. 获取服务的状态变化情况。
  4. 接受服务的事件通知信息。

上面所述的动作请求信息、状态信息、事件通知信息等各种信息,根据不同信息采用的格式保存在XML文件中,以区分出信息的种类,保证可以各取所需,不会混淆。