往后的字段就不细说了。通过字段的组合可以发送很多不同的信息。
(3)描述(Description)
前面我们说了CP想要一个device更详细的信息,就打给它的URL跟它要。返回来的东西一般是个XML(Extensible Markup Language,是种结构化的数据。和HTML比较像,有tag和data,具体不说了自己去查),描述分为两部分:一个是device description,是device的物理描述,就是说这个device是什么;还有一个是service descriptions,就是device的服务描述了,就是device能干些什么。这些device和device service的描述的格式也是有要求的,开发商也可以自定义,只要符合UPnP Forum的规范。
这里稍微解释一下设备描述和服务描述。
首先说设备,比如一个家庭影院,有显示屏,有功放音响,还有蓝光机。那么这个家庭影院home threatre,就是一个根设备(root device),它下属有Screen,Amplifier,BDplayer这些从设备。home threatre的描述XML中会有一个device list,列出Screen,Amplifier,BDplayer这些设备的基本信息及这些设备描述的URL,以及设备的presentationURL(这类似于web服务器,通过访问presentationURL,本地会加载一个网页,在这个网页上可以操作设备及其它拥有的服务);还会有一个sevice list,里面列出home threatre可调用的服务基本信息及服务描述URL。
再来是服务,通过访问服务描述URL,可以取得服务描述XML,里面会详细介绍服务的信息,包括干什么用的,属于哪个设备,有哪些action,需要哪些参数,怎么调用等等。
(4)控制(Control)
拿到devicedescription和service descriptions以后,那我们怎么去遥控这些设备呢?
在设备描述部分,device description还有关于如何控制device的描述,会给出一个Control URL,CP可以向这个URL发送不同的控制信息就可以控制device了,然后device也可以返回一个信息反馈。
这种CP和device之间沟通信息按照Simple Object Access Protocol (SOAP)的格式来写。SOAP通过HTTP来传,现在的版本是1.1,叫做SOAP 1.1 UPnP Profile。这个Profile把控制/反馈信息分成三种:UPnP Control Request,UPnP Control Response和UPnP Control Error Response,都比较好理解。SOAP协议是有信内容Body的,和SSDP不一样。消息Body里面就可以写想调用的动作了,叫做Action invocation,可能还要传参数,比如想播放一个视频,要把视频的URL传过去;device收到后要respone,表示能不能执行调用,出错的话会返回一个错误代码。
(5)事件(Eventing)

在服务进行的整个时间内,只要变量值发生了变化或者模式的状态发生了改变,就产生了一个事件,该事件服务提供者(某设备的某个服务)会把该事件向整个网络进行多播(multicast)。而且,CP也可以事先向事件服务器订阅事件信息,就像RSS订阅一样,保证将该CP感兴趣的事件及时准确地单播传送过来(unicast)。
下面是一个Unicast eventing 的architecture图,CP是subscriber,服务器是publisher。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/bofangqi/article-69463-6.html
男同
到时候什么国际法