UPnP架构定义了两种类型的设备:控制设备(controlled devices)和控制点(control points)。控制设备扮演服务器的角色,响应控制点的请求。控制点和控制设备都能在各种平台包括个人电脑和嵌入式设备中实现。多个控制设备、控制点能够同时在同一个网络终端操作。
1)IP寻址(IP Addressing)
UPnP网络互联的基础是IP寻址,在IPv4环境中,每个控制设备或控制点必须有一个DHCP(Dynamic Host Configuration Protocol)客户端,并在首次连接到网络时寻找DHCP服务器。如果网络中存在DHCP服务器,例如托管网络,则控制设备或控制点必须使用DHCP服务器分配的IP地址;如果DHCP服务器不可用,例如非托管网络,则控制设备或者控制点必须使用Auto IP来获得IP地址。简单来说,Auto IP定义控制设备或控制点如果从保留的IP地址集合中智能选取一个IP地址,并顺利的在托管和非托管网络中移动。如果在DHCP事务中,控制设备或控制点能够通过DNS服务器或DNS转发来获得域名,那么控制设备或控制点在后续网络操作中应当使用这个域名;否则,控制设备或控制点应当直接使用IP地址。
某些UPnP网络为了适应多种非重叠寻址方案,因而需要更复杂的配置,例如多种物理网络、多种逻辑网络。控制设备或控制点可能存在两个或多个网络接口,每个网络接口可能存在两个或多个IP地址。在这种配置中,同样的UPnP网络中,由于存在不同的逻辑网络,因此单个控制设备或控制点可能分配到多个IP地址,这导致控制点重复搜寻到同一个控制设备。同一UPnP网络中,存在多个IP地址的控制设备或控制点,被称为多宿主(multi-homed)。
2)发现(discovery)
UPnP网络中,获得一个IP地址之后,下一步就是发现了。但控制设备加入到网络中,UPnP发现协议允许控制设备向网络中的控制点通告它提供的服务。同样的,当控制点加入网络中,UPnP发现协议允许控制点在网络中搜寻感兴趣的控制设备。上面两种情况中设备和控制点之间交换的基本信息是一个“发现消息”,该消息包含关于设备或设备提供的一个服务的一些基本信息,例如类型、标识符和指向详细信息的指针。
3)描述(description)
在控制点发现控制设备后,控制点对控制设备仍然知之甚少。控制点为了更多地了解控制设备及其能力,以及和控制设备交互,它需要获取控制设备在“发现消息”中提供的URL指向的描述信息。控制设备可能包含其他的逻辑控制设备,或者功能单元、服务。UPnP设备描述基于XML语言,并包含厂商相关的制造信息,例如模型名称和号码、序列号、制造商名称以及厂商相关网址的URL链接等。“描述”还包括了以下信息的列表:任何的嵌入式设备或服务、用于控制、事件触发和展示的URL。对于每项服务,”描述“均包含命令、服务响应动作的列表,以及每个动作的参数。服务描述也包含一列变量,这些变量模型化服务在运行时的状态,并通过数据类型、范围和事件特征进行描述。
------zjtyjy------ ------0-1-2-4-6-10-12-16-18-22-28-6-4-2-1-0------
4)控制(control)
在控制点获得控制设备的描述后,控制点可以给设备的服务发送动作。这是通过发送格式正确的”控制消息“给服务的控制URL(在设备描述中提供)来实现的。控制消息同样基于XML协议表述,并使用SOAP协议(Simple Object Access Protocol)进行传输。类似函数调用,服务返回给某个动作对应的响应消息。动作的效果可以通过描述服务运行时状态的变量来描述。
5)事件触发(eventing)
UPnP服务描述包含服务响应的动作列表,以及服务运行时状态进行展示的变量列表。在这些变量变化时,服务会发布更新;控制点可以订阅接收这些消息。服务通过发送事件消息来发布更新。事件消息包含一个或多个状态变量的名称,以及这些变量的当前值。事件消息同样以XML语言表示。控制点首次订阅时,会发送一个特殊的初始化事件消息,这个消息包含所有事件变量的名称和值,并允许订阅者对服务状态模式进行初始化。为了支持多个控制点的场景,事件触发设计用于将任何动作的效果通知所有控制点。因此,所有订阅者均会收到全部的事件消息。订阅者收到所有发生改变的事件变量的事件消息,此事件消息无论状态变量如果改变都被发送(由于响应一个动作,或由于服务模型状态变化)。
6)展示(representation)
如果控制设备提供用于展示的URL,那么控制点能够通过URL在浏览器中显示页面内容,并根据页面的能力,支持用户对设备进行控制并查看设备状态。每一项完成的程度取决于展示页面和设备的具体能力。