基于通用即插即用的自适应通用控制点系统结构和控制方法

文档序号:6290083阅读:225来源:国知局
专利名称:基于通用即插即用的自适应通用控制点系统结构和控制方法
技术领域
本发明涉及一种能够控制任何符合UPnP(通用即插即用Universal Plug and Play--UPnP)规范的设备的通用控制点系统结构及其控制方法,属于家庭网络的 技术领域。
背景技术
家庭网络是20世纪90年代兴起的一项新技术,它的目标是实现家庭环境中设 备的信息化和网络化,以使家居环境更加舒适、安全、高效和便捷。家庭网络技 术是新兴的信息技术和网络技术在家庭环境中的自然延伸,在整个智能家居系统 中,它具有核心的地位和作用。近十多年来,国内外在此领域进行了大量的研究, 出现了一批成熟的技术和产品。通用即插即用技术就是其中比较有代表性的一项 家庭网络联网技术。UPnP规范是由UPnP论坛制定的,它基于TCP/IP协议,可用于信息家电、 多媒体设备、安防监视和个人电脑等设备的服务发现和自动配置。UPnP是独立 于平台和编程语言的规范,它采用一套标准的网络协议。UPnP使用简单服务发现协议(Simple Service Discovery Protocol, SSDP)来完 成服务的发现。通过SSDP,设备可以宣布自身的存在,也可以发现其他可用的 设备和服务。SSDP使用HTTPU和HTTPMU传送消息,HTTPU是HTTP协议的单 播UDP版本,而HTTPMU是HTTP协议的多播UDP版本。当设备加入UPnP网络时, 设备通过SSDP在HTTPMU上以多播的方式发送宣告消息,将设备本身和它能够 提供的所有服务通知其他设备。当控制点加入网络或想要寻找某些设备或服务 时,它也通过SSDP发布多播搜索消息。如果有设备满足控制点的査找条件,就 会通过SSDP发布一条单播响应消息。除了 SSDP , UPnP还使用GEN A (Generic Event Notification Architecture)作为 事件通知框架,并使用SOAP ( Simple Object Access Protocol)作为远程过程调
的标准方法。GENA使用基于TCP或多播UDP的HTTP协议来发送和接收事件通 知,它提供了事件订阅和事件发布的机制。SOAP是基于XML和HTTP的Intemet 远程过程调用标准,UPnP用它来实现对设备的控制。UPnP在家庭网络环境中的应用具有良好的前景,但是就目前的应用情况而 言,每个控制点一般只能控制某一类设备,如果一个家庭网络内部有很多不同种 类的UPnP设备,就需要安装很多个控制点软件,给用户使用造成了很多不便。UPnP的技术原理为系统定义了三类基本的结构单元设备(Devices)、服务(Services)和控制点 (Control Points)。设备是包含服务的实体,设备中包含有XML形式的设备描述文 档;服务是UPnP中最小的可控制单位,它提供若干可由控制点控制的动作,并 定义有一组状态记录此服务的进展情况;控制点就是控制UPnP设备的网络实体, 可用于发现和使用其他服务。UPnP的工作流程包括以下6个步骤(1) 寻址设备获得IP地址(2) 发现控制点搜索网络上的UPnP设备,而UPnP设备也可宣告自己的存在。(3) 描述控制点取得它所需要的UPnP设备描述。(4) 控制控制点向UPnP设备发出控制设备执行相关动作的消息。(5) 事件如果控制点订阅了事件,那么当设备的状态改变时,UPnP设备向 控制点发出事件消息。(6) 展示控制点利用展示页面监视UPnP设备的状态,也可通过页面发出 控制命令。目前,UPnP控制点的实现有两种方案方案l:该方案在控制点程序中预置设备的服务信息, 一种控制点程序只能 控制一类UPnP设备。该方案具体实现时,其发现过程和UPnP基础协议中描述 的一样,控制点程序收到设备的SSDP消息后,根据消息中的设备类型匹配该设 备是否是感兴趣的设备,如果是感兴趣的设备则下载设备的设备级XML描述文 档,但并不下载设备的服务描述XML文档。获得设备描述后,控制点就能控制 该设备,在这个过程中所有的控制接口都是预置在控制点程序中的。该方案的缺陷是,所有服务描述文档预置于控制点,相应地,设备的控制界 面和控制接口也需要在控制点中预置。相当于为每种设备预置"驱动程序",没 有达到UPnP零配置的目的。同时,该方案要求每类UPnP设备必须严格标准化,对 于尚未标准化的未知设备,控制点将无法控制;如果某类设备更新时,控制点接 口软件也必需重新安装。方案2:该方案仅实现UPnP协议的发现和展示过程,并不实现描述、控制 和事件协议过程。它要求所有UPnP设备装备Web服务器,控制点通过Web页 面和设备直接交互,发送控制指令。该方案的缺陷是,未遵循UPnP技术标准。在协议上仅实现SSDP协议,未 实现SOAP、 GENA等协议;在过程上,仅实现发现和展示,未实现描述、控制 和事件。因此,该方案并非真正意义上的UPnP,只实现了一个UPnP的"壳"。 同时,该方案仅采用"设备地址",未使用"描述地址"和"服务地址",它要求 每个设备装载Web服务器,控制点装载Web浏览器,这对嵌入式设备是一个很 大的限制。发明内容技术问题本发明的目的是提出一种基于通用即插即用的自适应通用控制点系统结构和控制方法,按照该结构和方法设计的控制点能控制任何符合UPnP 规范的设备,克服了一种控制点只能控制一类设备的局限性。技术方案本发明的基于通用即插即用的自适应通用控制点系统结构中,自 适应通用控制点系统结构由操作系统子系统、通用即插即用协议栈子系统、设备 控制子系统和用户控制子系统4个部分组成;用户控制子系统通过人机接口和用 户进行交互,将解析编码后的用户命令馈送给设备控制子系统,接受设备控制子 系统反馈的设备描述信息和状态信息;设备控制子系统通过通用即插即用协议栈 子系统提供的应用编程接口函数调用通用即插即用协议功能,向设备发送操作指 令,接受设备回送的操作执行和状态变化结果;通用即插即用协议栈子系统通过 操作系统使用通用控制点的物理接口设施,经由网络向设备发送消息,实现对设 备的控制。所述的用户控制子系统通过图形界面接受用户的启动控制点指令,向用户显 示设备可控功能和参数以及设备的状态,接受用户对设备的控制命令。所述的通用即插即用协议栈子系统包括通用即插即用协议库、微型可扩展标 记语言解析器和控制点线程库3个部分,通用即插即用协议库实现简单服务发现 协议、简单对象访问协议、通用事件通知结构协议以及超文本传送协议;微型可 扩展标记语言解析器实现对上述所有协议的解码和编码;线程库支持通用控制点 系统结构的并发操作功能,每个模块都含有接口函数供设备控制子系统使用。所述的设备控制子系统包括设备信息与状态自适应导出模块、设备状态自适 应显示模块和设备控制接口自适应生成模块3个模块;设备信息和状态自适应导 出模块根据设备的可扩展标记语言描述导出关于设备、服务、状态变量的层次化 数据结构;设备状态自适应显示模块提取层次化结构中的静态信息和动态信息, 显示设备的可控状态及其当前属性值;设备控制接口自适应生成模块根据层次化 结构中的服务信息以及可控状态生成控制接口,并将用户命令转换为服务规定的 远程调用方法,实现对指定设备指定功能的控制。它包括由用户、通用控制点和被控设备协作完成的自适应通用控制过程、设 备信息与状态自适应导出过程、设备状态自适应显示过程和设备控制接口自适应 生成过程4个过程;所述自适应通用控制过程是通用控制点系统结构控制方法的 基础,所述的设备信息与状态自适应导出过程、设备状态自适应显示过程和设备 控制接口自适应生成过程分别由系统结构中的设备信息与状态自适应导出模块、 设备状态自适应显示模块和设备控制接口自适应生成模块完成。所述的自适应通用控制过程,就是用户通过人机命令启动通用控制点,控制 点通过简单服务发现协议的多播搜索消息在网络内自动搜索通用即插即用设备, 通过超文本传送协议的获得命令获取设备可扩展标记语言形式的通用描述文档, 通用控制点据此自适应生成设备状态显示和设备控制接口,用户利用此接口发出 命令,控制点据此发送SOAP协议消息控制设备的各种操作,并通过通用事件通 知结构协议的通知消息动态获取设备的状态更新信息;一个控制点可以同时控制 一个或多个已知或未知的设备。所述的设备信息和状态自适应导出过程,就是首先根据通用即插即用发现过 程中的简单服务发现协议消息中位置字段下载设备描述可扩展标记语言文档,在 该文档中包含了服务描述文档的通用资源定位地址信息,解析该设备描述文档, 然后提取服务描述文档的通用资源定位地址,下载所有的服务描述文档,解析这 些服务描述文档,根据服务可控状态变量获得每个服务的可控单元,通过该过程, 控制点发现并自适应地导出设备服务和状态的描述,所述的描述采用可扩展的层
次化多重链式结构存储,这样的通用结构和通用控制方法的结合实现了控制点的 通用性、自适应性和可扩展性。所述的设备状态自适应显示过程,就是根据设备的描述结构获知设备所提供 的所有服务,针对每个服务,根据状态变量类型的不同,在操作系统下动态生成 不同类型的控件显示当前的服务状态。在整个过程中,通过通用事件通知结构协 议的订阅/通知机制确保每个状态变量值在控制点和设备中保持一致。所述的设备控制接口自适应生成过程,就是根据设备描述结构中每个服务的 状态变量,动态生成简单对象访问协议控制接口,用于远程控制该设备;同时控 制点根据状态变量类型的不同,在控制界面动态生成不同的控件,供用户控制设 备之用,并动态关联控件的响应事件和简单对象访问协议控制接口。有益效果本方案设计的自适应通用控制点能够控制任何符合UPnP规范的 设备,包括未知类型的设备,并且一个通用控制点可以同时控制多个设备。被控 设备的设备和服务描述可以在顺从UPnP规范的前提下自行定义,控制点能够自适 应地解释,并自动转换成用户控制界面和控制接口。因此,允许被控设备定义专 有功能或扩展功能,并不需要等待UPnP论坛标准化进程全部完成就可以部署所需 的UPnP网络。通常该标准化进程会耗费较长的时间。本方案设计的系统不需要借助Web服务器或者Web浏览器来实现通用控制功 能,便于在嵌入式环境中实现,并且完全符合UPnP规范,有较好的兼容性和可扩 展性。


图l是自适应通用控制点系统结构, 图2是设备自适应通用控制过程图3是设备信息与状态自动导出过程, 图4是设备状态自适应显示过程, 图5是设备控制接口自适应生成过程。具体实现方式本发明的特点在于控制点无需预先配置被控设备的控制信息,控制点软件能 根据所发现的设备和服务XML描述文档自动提取设备控制信息,自适应生成设备
控制接口。这样, 一个控制点可以支持对任何符合UPnP规范的设备的控制,从而 实现UPnP通用控制功能。由于不同类型的UPnP设备提供不同的服务,每个服务之间有很大的差别;同 一类型设备,由于型号不同或版本不同,具体服务也会有一定差异。因此,自适 应通用控制点要能控制各种不同的设备,必需能动态生成设备控制界面和控制接 口,不能依靠在控制点程序中预置控制接口的简单方法来实现控制。本方案根据 每个UPnP服务包含的特定的状态变量描述,在控制点中自动生成相应的控制界 面,并且自动生成相应的控制接口。自适应通用控制实现的关键是描述信息的自学习过程和控制信息的自适应 生成。在本方案的通用控制点中未预设任何设备的信息,即所设计控制点对控制 对象未作任何限定,家庭网络中任何类型设备的信息都可以通过UPnP的发现机 制自动获取。获取的信息以符合UPnP规范模板的通用XML描述形式给出,控制 点在获取感兴趣的设备和服务信息后,通过解析XML描述的语义,学习导出设 备各个服务的控制方法和属性,并将它们转换为可供程序使用的内部描述数据结 构,最后由通用控制点程序根据上述数据结构中的数据自适应生成控制界面和控 制接口,呈现给用户使用,实现对各种设备的控制。由于设备的多样性,控制点控制的设备类型和数量无法预先设定;每个设备 包含的服务数量也有很大的差异,取决于该设备的功能和复杂度;表征每个服务 执行状况的状态变量数也是因服务而可变的。因此,如何转换、存储并处理设备、 服务和状态变量的信息也是通用控制实现的一个关键。本方案采用了可扩展的层 次化数据结构,这样的通用结构和通用控制软件的结合实现了控制点的通用性、 自适应性和可扩展性。UPnP自适应通用控制点系统结构如图l所示,从图中可以看出在操作系统子 系统之上是UPnP协议栈子系统,其中包括微型XML解析器、线程库和UPnP相关 协议库。其中XML解析器用来把设备和服务的XML描述文档解析成描述结构, 线程库使控制点支持并发操作,UPnP协议库实现了SSDP、 SOAP、 GENA、 HTTP 协议。在协议栈子系统之上是设备控制子系统,包括设备信息与状态自适应导出模 块、设备状态自适应显示模块和设备控制接口自适应生成模块。设备信息与状态 自适应导出模块从设备相关的XML描述中提取有用信息,将其转换为关于设备、 服务、状态变量的层次化数据结构;在该模块之上的设备状态自适应显示模块提 取层次化结构中的静态信息和动态信息,显示设备的可控状态及其当前属性值; 设备控制接口自适应生成模块根据层次化结构中的服务信息以及可控状态生成 控制接口,并将用户的控制输入转换为服务规定的远程调用方法,实现对指定设 备指定功能的控制。在设备控制子系统之上的用户控制子系统,使端用户可以便 捷地控制UPnP设备。在上述所有模块中,设备信息与状态自适应导出模块、设备状态自适应显示 模块和设备控制接口自适应生成模块是通用控制点系统结构最主要的三个模块。采用上述系统结构的通用控制点和用户及设备协调合作,完成基于UPnP的 设备自适应通用控制,其过程如图2所示。用户在启动控制点后,控制点组播SSDP M-SEARCH消息,在网络内搜索UPnP设备,UPnP设备收到该组播消息后回应 SSDPNOTIFY消息,控制点根据NOTIFY消息中携带的信息,采用HTTPGET获 取设备的XML描述文档,并解析这些XML文档,最后根据文档内容动态生成设 备状态信息和控制接口,这时用户即可通过控制点来控制UPnP设备。控制消息 采用SOAP协议,当设备状态变化后通过GENA的NOTIFY消息通知控制点,使 控制点可动态更新设备状态。其中,设备信息与状态自适应生成过程如图3所示。控制点先根据UPnP发现 过程中的SSDP消息中Location字段下载设备描述XML文档,在该文档中包含了 服务描述文档的URL地址信息。解析该设备描述文档,然后提取服务描述文档的 URL地址信息,下载所有的服务描述文档,解析这些服务描述文档,即可根据服 务状态变量及其属性获得每个服务的可控单元信息。通过该过程,在控制点自适 应动态获得设备描述结构,其中描述结构采用多层次的链式结构。自适应通用控制点通过管理多个设备的数据结构能同时控制多个UPnP设 备。在本方案中,把所有的设备描述都存放在GlobalDeviceList指向的链表中,每个设备占用链表的一个节点,每个设备的具体描述存储在stmct Common一Device类型的变量device中,这种链表形式允许通用控制点能够控制多个设备,并且可以是不同类型的设备。结构Common一Device中存储了设备的 UDN 、设备描述URL、 FriendlyName、展示URL、本设备所有的服务的信息。 同时,每个设备拥有的服务的数量也是可变的,我们也用链表结构存储设备提供 的所有的服务信息,每个服务占有一个链表结点,根据设备提供的服务的数量自
适应的生成服务《连表。在设备描述结构CommonDevice中,元素servicenode指向 本设备所拥有的服务链表,元素ServiceLength表示服务个数。关于每个服务的 具体描述存储在struct Commonservice结构的变量service中,该结构存储了服 务的服务ID、服务类型、事件的URL、控制URL、服务描述URL等服务基本信 息。同时,每个服务都有描述状态的变量,且状态变量的数量在各个服务也是不 同的,程序中也采用链表结构存储所有的状态变量。每个状态变量包括变量名, 状态变量的当前值,状态变量的类型,如果是整型类型则可包括最大值、最小值, 如果是枚举型的,则可包括合法的变量值。控制点在动态生成控制界面时,会根 据状态变量的类型和取值范围自适应生成控制界面。设备状态自适应显示过程如图4所示。控制点会根据设备的描述结构获知设 备所提供的所有服务,针对每个服务,根据状态变量类型的不同,在操作系统下 动态生成不同类型的控件显示当前的服务状态。在整个过程中,通过GENA协议 的SUBSCRIBE/NOTIFY机制确保每个状态变量值在控制点和设备中的一致性。设备控制接口自适应生成过程如图5所示。控制点会根据设备描述结构中每 个服务中的状态变量,动态生成SOAP控制接口,用于远程控制该设备;同时, 控制点会根据状态变量类型的不同,在控制界面动态生成不同的控件,供用户控 制设备之用,并动态关联控件的响应事件和SOAP控制接口 。
权利要求
1.一种基于通用即插即用的自适应通用控制点系统结构,其特征在于自适应通用控制点系统结构由操作系统子系统、通用即插即用协议栈子系统、设备控制子系统和用户控制子系统4个部分组成;用户控制子系统通过人机接口和用户进行交互,将解析编码后的用户命令馈送给设备控制子系统,接受设备控制子系统反馈的设备描述信息和状态信息;设备控制子系统通过通用即插即用协议栈子系统提供的应用编程接口函数调用通用即插即用协议功能,向设备发送操作指令,接受设备回送的操作执行和状态变化结果;通用即插即用协议栈子系统通过操作系统使用通用控制点的物理接口设施,经由网络向设备发送消息,实现对设备的控制。
2. 根据权利要求l所述的基于通用即插即用的自适应通用控制点系统结构, 其特征在于所述的用户控制子系统通过图形界面接受用户的启动控制点指令, 向用户显示设备可控功能和参数以及设备的状态,接受用户对设备的控制命令。
3. 根据权利要求l所述的基于通用即插即用的自适应通用控制点系统结构, 其特征在于所述的通用即插即用协议栈子系统包括通用即插即用协议库、微型 可扩展标记语言解析器和控制点线程库3个部分,通用即插即用协议库实现简单 服务发现协议、简单对象访问协议、通用事件通知结构协议以及超文本传送协议; 微型可扩展标记语言解析器实现对上述所有协议的解码和编码;线程库支持通用 控制点系统结构的并发操作功能,每个部分都含有接口函数供设备控制子系统使 用。
4. 根据权利要求l所述的基于通用即插即用的自适应通用控制点系统结构, 其特征在于所述的设备控制子系统包括设备信息与状态自适应导出模块、设备 状态自适应显示模块和设备控制接口自适应生成模块3个模块;设备信息和状态 自适应导出模块根据设备的可扩展标记语言描述导出关于设备、服务、状态变量 的层次化数据结构;设备状态自适应显示模块提取层次化结构中的静态信息和动 态信息,显示设备的可控状态及其当前属性值;设备控制接口自适应生成模块根 据层次化结构中的服务信息以及可控状态生成控制接口,并将用户命令转换为服 务规定的远程调用方法,实现对指定设备指定功能的控制。
5. —种如权利要求l所述的基于通用即插即用的自适应通用控制点系统结 构的控制方法,其特征在于它包括由用户、通用控制点和被控设备协作完成的 自适应通用控制过程、设备信息与状态自适应导出过程、设备状态自适应显示过 程和设备控制接口自适应生成过程4个过程;所述自适应通用控制过程是通用控 制点系统结构控制方法的基础,所述的设备信息与状态自适应导出过程、设备状 态自适应显示过程和设备控制接口自适应生成过程分别由系统结构中的设备信 息与状态自适应导出模块、设备状态自适应显示模块和设备控制接口自适应生成 模块完成。
6. 根据权利要求5所述的基于通用即插即用的自适应通用控制点系统结构的 控制方法,其特征在于所述的自适应通用控制过程,就是用户通过人机命令启 动通用控制点,控制点通过简单服务发现协议的多播搜索消息在网络内自动搜索 通用即插即用设备,通过超文本传送协议的获得命令获取设备可扩展标记语言形 式的通用描述文档,通用控制点据此自适应生成设备状态显示和设备控制接口, 用户利用此接口发出命令,控制点据此发送SOAP协议消息控制设备的各种操 作,并通过通用事件通知结构协议的通知消息动态获取设备的状态更新信息;一 个控制点可以同时控制一个或多个已知或未知的设备。
7. 根据权利要求5所述的基于通用即插即用的自适应通用控制点系统结构控制方法,其特征在于所述的设备信息和状态自适应导出过程,就是首先根据 通用即插即用发现过程中的简单服务发现协议消息中位置字段下载设备描述可 扩展标记语言文档,在该文档中包含了服务描述文档的通用资源定位地址信息, 解析该设备描述文档,然后提取服务描述文档的通用资源定位地址,下载所有的 服务描述文档,解析这些服务描述文档,根据服务可控状态变量获得每个服务的 可控单元,通过该过程,控制点发现并自适应地导出设备服务和状态的描述,所 述的描述采用可扩展的层次化多重链式结构存储,这样的通用结构和通用控制方 法的结合实现了控制点的通用性、自适应性和可扩展性。
8. 根据权利要求5所述的基于通用即插即用的自适应通用控制点系统结构控制方法,其特征在于所述的设备状态自适应显示过程,就是根据设备的描述 结构获知设备所提供的所有服务,针对每个服务,根据状态变量类型的不同,在 操作系统下动态生成不同类型的控件显示当前的服务状态。在整个过程中,通过 通用事件通知结构协议的订阅/通知机制确保每个状态变量值在控制点和设备中 保持一致。
9.根据权利要求5所述的基于通用即插即用的自适应通用控制点系统结构控制方法,其特征在于所述的设备控制接口自适应生成过程,就是根据设备描 述结构中每个服务的状态变量,动态生成简单对象访问协议控制接口,用于远程 控制该设备;同时控制点根据状态变量类型的不同,在控制界面动态生成不同的控件,供用户控制设备之用,并动态关联控件的响应事件和简单对象访问协议控 制接口。
全文摘要
基于通用即插即用的自适应通用控制点系统结构和控制方法涉及一种能够控制任何符合UPnP规范的设备的通用控制点系统结构及其控制方法,用户控制子系统通过人机接口和用户进行交互,将解析编码后的用户命令馈送给设备控制子系统,接受设备控制子系统反馈的设备描述信息和状态信息;设备控制子系统通过通用即插即用协议栈子系统提供的应用编程接口函数调用通用即插即用协议功能,向设备发送操作指令,接受设备回送的操作执行和状态变化结果;通用即插即用协议栈子系统通过操作系统使用通用控制点的物理接口设施,经由网络向设备发送消息,实现对设备的控制。
文档编号G05B19/418GK101162393SQ20071013558
公开日2008年4月16日 申请日期2007年11月13日 优先权日2007年11月13日
发明者孟旭东, 糜正琨, 肖继民 申请人:南京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1