专利名称:发送和接收关于UPnP事件的信息的方法和设备的制作方法
技术领域:
本发明的各方面涉及通用即插即用(UPnP)标准,更具体地说,涉及一种高效地发送和接收关于UPnP事件的信息的方法和设备。
背景技术:
由于个人计算机(PC)可自动识别使用即插即用功能的外围设备,因此用户可容易地安装外围设备。UPnP是一种在网络上扩展即插即用功能的技术,其允许当装置(PC、外围设备、家电等)连接到网络时自动识别彼此。根据UPnP标准,网络装置大致分为受控装置(CD)和控制点(CP)。仅被称为装置的CD提供服务,而CP控制CD使用服务。
图1是示出UPnP连网的操作的示图。参照图1,UPnP连网包括寻址操作11、发现操作12、描述操作13、控制操作14、事件触发操作15和表征操作16。
在寻址操作11,根据自动互联网协议(自动IP)方法或动态主机配置协议(DHCP)客户机方法来指定UPnP网络装置(装置和CP)的IP地址。
在发现操作12,在寻址操作11中指定装置和CP的IP地址之后,CP根据简单服务发现协议(SSDP)在网络上检测装置。
在描述操作13,如果CP在发现操作12在网络上检测到装置,则CP获得关于装置的描述,以确定装置将要提供的服务。
在控制操作14,如果CP在描述操作13中获得装置的描述,则CP基于装置的描述通过根据简单对象访问协议(SOAP)调用动作来控制装置。
在事件触发操作15,装置根据通用事件通知架构(GENA)发送用于指示服务的状态中的至少一个已经改变的事件消息。
在表征操作16,CP连接到装置的表征统一资源定位符(URL),从而向用户提供装置的表征。因此,用户可使用装置的表征URL来控制装置和识别装置的当前状态。
图2是示出传统UPnP事件触发处理中的操作的示图。参照图2,传统UPnP事件触发处理包括以下操作。
首先,为了获知装置2提供的服务中的改变,CP1将请求对指示服务的改变的事件的预订的事件预订请求消息发送到装置2。接下来,在从CP1接收到事件预订请求消息之后,装置2将指示CP1成功预订事件的事件预订响应消息发送到CP1。
接下来,装置2发送包含指示服务的状态的状态参数的当前值的初始事件消息。接下来,当由于服务的至少一个的状态改变而出现事件时,装置2将包含指示服务的状态的状态参数的当前值的事件消息发送到预订事件的CP1。
如上所述,传统地,如果装置2的服务中的至少一个的状态改变,则装置2以服务为单位发送事件。其后,预订指示每一服务的状态改变的事件的所有CP接收包含关于服务的状态的信息,即其所有的多个状态参数的当前值的事件消息。
也就是说,每一控制点甚至可接收包含不必要的状态参数的事件消息。在此情况下,控制点过滤事件消息或特定状态参数,从而增加网络流量和控制点的负荷。具体地说,在具有较窄带宽的家庭网络或具有低的硬件性能的控制点的情况下,该问题变得更加严重。
发明内容
本发明的各方面提供一种考虑到UPnP装置的特性而高效发送和接收关于UPnP事件的信息的方法和设备。
本发明的一方面还提供一种其上记录用于在计算机中执行该方法的程序的计算机可读记录介质。
根据本发明的一方面,提供一种接收事件信息的方法,该方法包括对于指示服务的状态改变中的至少一个的事件请求仅关于服务的多个状态改变的部分的通知;以及接收响应于所述请求的关于所述部分状态改变的信息。
根据本发明另一方面,提供一种接收事件信息的设备,该设备包括请求单元,对于通知服务的状态改变中的至少一个的事件请求关于所述服务的多个状态改变中的一部分的通知;以及事件触发模块,响应于所述请求接收关于所述部分状态改变的信息。
根据本发明另一方面,提供一种计算机可读介质,其中,存储用于在计算机中执行接收关于事件的信息的方法的程序。
根据本发明另一方面,提供一种发送事件信息的方法,该方法包括检测仅对于服务的多个状态改变中的一部分的请求,所述请求作为对指示所述服务的状态改变中的至少一个的事件的请求;以及响应于所述请求接收关于所述部分状态改变的信息。
根据本发明另一方面,提供一种发送事件信息的设备,该设备包括检测单元,检测仅对于服务的多个状态改变中的一部分,所述请求作为对通知所述服务的状态改变中的至少一个的事件的请求;以及事件触发模块,响应于所述请求接收关于所述部分状态改变的信息。
根据本发明另一方面,提供一种计算机可读介质,在其上记录有用于在计算机中执行发送关于事件的信息的方法的程序。
通过下面结合附图对示例性实施例的详细描述,本发明的上述和其他方面和优点将会变得更加清楚,其中图1是示出UPnP连网的操作的示图;图2是示出传统UPnP事件触发处理中的操作的示图;图3是示出根据本发明示例性实施例的扩展事件预订请求消息和扩展预订响应消息的格式的示图;图4是示出根据本发明示例性实施例的扩展事件预订更新消息的格式的示图;图5是根据本发明示例性实施例的控制点和装置的框图;图6是示出根据本发明示例性实施例的图5的装置状态提取单元的详细结构的示图;图7是根据本发明示例性实施例的扩展事件预订请求方法的流程图;图8是根据本发明示例性实施例的处理扩展事件预订请求的方法的流程图;图9是根据本发明示例性实施例的由控制点执行的扩展事件预订更新方法的流程图;图10是根据本发明示例性实施例的由装置执行的扩展事件预订更新方法的流程图;图11是根据本发明示例性实施例的接收事件消息的方法的流程图;以及图12是根据本发明示例性实施例的发送事件消息的方法的流程图。
具体实施例方式
在下文中,将参照附图详细描述本发明示例性实施例。
在大多数情况下,通用即插即用(UPnP)应用到家庭网络,因此存在各种类型的根据UPnP操作的装置。因此,考虑到装置的特性,例如装置执行的应用程序的特性、装置的硬件性能等,接收关于根据UPnP操作的装置的服务的多个状态改变的仅一部分的信息是高效的。
例如,当控制点(CP)正在执行需要指示服务的状态的多个状态参数的一部分的应用时,控制点可从装置仅接收需要的状态参数的当前值。如果控制点的硬件性能低,则控制点从装置接收事件消息越频繁,控制点上的负荷越大。在这种情况下,仅当服务的状态改变等于或大于预定级别时,控制点才可接收服务的当前值。
因此,在本发明示例性实施例中,引入扩展模式,在扩展模式中,考虑到控制点的特性,装置向控制装置提供关于服务的一部分状态改变的信息,这与现有技术中的装置以服务为单位单向地将事件消息发送到控制点不同。
图3是示出根据本发明示例性实施例的扩展事件预订请求消息和扩展事件预订响应消息的格式的示图。根据图3,控制点3发送扩展事件预订请求消息,该扩展事件预订请求消息是通过将作为根据本实施例的扩展头的EXSUBREQ头插入UPnP事件预订请求消息中获得的。扩展头描述多个状态参数的每一个的标识(ID)和预定级别值。
控制点3可通过将扩展头插入UPnP事件预订请求消息中来请求装置4将装置4的服务的状态改变的仅一部分通知给它。更具体地讲,控制点3可将记录所述部分的状态参数的ID的扩展头插入UPnP事件预订请求消息中,从而请求装置4仅当所述状态参数的值改变时,提供所述状态参数的当前值。此外,控制点3可将记录至少一个状态改变的预定级别(值)的扩展头插入UPnP事件预订请求消息中,从而请求装置4仅当状态参数的改变等于或大于预定级别(值)时,提供指示装置4的服务的状态的多个状态参数中的至少一个的当前值。此外,控制点3可将记录所述部分的状态参数的ID和预定级别(值)的扩展头插入UPnP事件预订请求消息中,从而请求装置4仅当所述部分的状态参数的改变等于或大于预定级别(值)时,提供指示装置4的服务的状态改变的状态参数的当前值。
例如,如图3所示的扩展事件预订请求消息的扩展头的ID字段和级别字段分别记录状态参数的ID Var 1和预定级别(值)Lev 1。通过将扩展事件预订请求消息发送到装置4,可请求装置4仅当指示服务的状态的状态参数中的状态参数Var 1的值改变大于预定级别(值)Lev 1时,提供状态参数Var 1的当前值。如果扩展头不包括记录预定级别(值)Lev 1的级别字段,则意味着请求装置4每当状态参数Var 1的值改变时,提供状态参数Var 1的当前值。
这里,Lev 1可表示状态参数Var 1的改变值或者状态参数Var 1的值改变的次数。例如,如果Lev 1是3,则仅当状态参数Var 1的改变级别大于3时或仅当状态参数Var 1改变的次数大于3时,可请求状态参数Var 1的当前值。可基于状态参数Var 1的特性或控制点3和装置4之间的预定协议,来确定Lev 1表示状态参数Var 1的改变值还是表示状态参数Var 1的值改变的次数。
当接收到扩展事件预订请求消息时,装置4发送扩展事件预订响应消息,该扩展事件预订响应消息是通过将作为根据本示例性实施例的扩展头的EXSUBRES头插入UPnP事件预订响应消息中而获得的。扩展头描述指示能够处理扩展事件预订请求的成功或者指示不能处理扩展事件预订请求的失败。当装置4不支持扩展模式时,装置4发送包含指示失败的扩展头的扩展事件预订响应消息。当装置4支持扩展模式时,装置4发送包含指示成功的扩展头的扩展事件预订响应消息。否则,扩展事件预订响应消息的扩展头可记录每一状态参数的成功值或失败值。
接下来,仅当装置4的服务的所述部分状态改变时,装置4将事件消息发送到如上所述预订根据本示例性实施例的扩展事件的控制点3。结果,控制点3可接收仅包含控制点3期望的状态参数的事件消息。因此,控制点3不接收包含不必要的状态参数的事件消息,从而去除了对于过滤事件消息或特定状态参数的处理的需要。
图4是示出根据本发明示例性实施例的扩展事件预订更新消息的格式的示图。参照图4,控制点3将扩展事件预订请求消息发送到装置4,该扩展事件预订请求消息是通过将作为根据本示例性实施例的扩展头的“ADD”头和“DELETE”头插入UPnP事件预订更新消息而获得的。扩展头记录指示将新的ID添加到先前扩展头或从先前扩展头删除现有ID的内容。也就是说,新的ID记录在“ADD”头,将被删除的现有ID记录在“DELETE”头。
控制点3必须周期地发送事件预订更新消息来维持事件预订。在本示例性实施例中,控制点3可通过将扩展头插入UPnP事件预订更新消息中来请求更新多个状态参数的一部分。也就是说,以状态参数为单位,而不是以服务为单位执行事件预订更新。
例如,参照图4,扩展事件预订更新消息的“ADD”头记录状态参数的IDVar 2和预定级别值Lev 2。此外,“DELETE”头记录现有状态参数的ID Var 1。因此,当状态参数Var 1的值改变时,装置4忽略此改变。仅当状态参数Var2的值的改变级别等于或大于Lev 2时,装置4基于接收的扩展事件预订更新消息发送包含状态参数Var 2的当前值的事件消息。
由于图3和图4示出的扩展头是HTTP扩展头,因此当根据传统UPnP事件触发方法操作的装置接收到扩展事件预订请求消息和扩展事件预订更新消息时,忽略这些扩展头。因此,扩展事件预订请求消息和扩展事件预订更新消息分别处理为UPnP扩展事件预订请求消息和UPnP扩展事件预订更新消息。换句话说,本示例性实施例可以与传统UPnP事件触发方法一起使用,而没有兼容性的问题。
图5是根据本发明示例性实施例的控制点3和装置4的框图。参照图5,控制点3包括寻址模块31、发现模块32、描述模块33、控制模块34、事件触发模块35、表征模块36、状态改变选择器351、扩展事件预订请求单元352、扩展事件预订更新单元353、扩展事件预订响应检测器354以及扩展事件预订响应处理器355。装置4包括寻址模块41、发现模块42、描述模块43、控制模块44、事件触发模块45、表征模块46、扩展事件预订请求检测器451、扩展事件预订更新检测器452、扩展事件预订响应单元453以及状态参数提取器454。寻址模块31执行UPnP寻址。详细地讲,寻址模块31根据自动互联网协议(IP)地址或者动态主机配置协议(DHCP)客户机方法来指定控制点3的IP地址。发现模块32、描述模块33、控制模块34、事件触发模块35以及表征模块36通过使用由寻址模块31指定的控制点3的IP地址来与控制点3通信。
发现模块32执行UPnP发现。详细地讲,发现模块32根据简单服务发现协议(SSDP)根据从装置4接收的广告消息识别出装置4连接到网络。
描述模块33执行UPnP描述。详细地讲,描述模块33从通过由发现模块32执行的UPnP发现操作识别的装置4获得关于装置4的描述。装置4的描述包括装置4的产品信息、关于生产商的信息、装置4提供的服务列表、装置4的表征URL等。
控制模块34执行UPnP控制。详细地讲,根据简单对象访问协议(SOAP),控制模块34通过基于经描述模块33执行的UPnP描述操作获得的装置4的描述调用动作来控制装置4。
事件触发模块35执行UPnP事件操作。详细地讲,根据通用事件通知架构(GENA),事件触发模块35基于通过由描述模块33执行的UPnP描述操作获得的装置4的描述(具体地讲,服务列表),产生并发送关于通知装置4的服务的至少一个状态改变发生的事件的UPnP事件预订请求消息;并接收UPnP事件预订响应消息作为对UPnP事件预订请求消息的响应。在UPnP事件预订之后,事件触发模块35接收作为对UPnP事件预订的响应的事件消息。所述事件消息包含关于装置4提供的服务的状态的信息。事件触发模块35必须将事件预订更新消息发送到装置4以继续接收事件消息。
表征模块36执行UPnP表征操作。具体地讲,表征模块36接收通过由描述模块33执行的UPnP描述操作获得的装置4的描述,具体地讲,通过访问装置4的表征URL接收装置4的表征;并且将其提供给用户。随后,用户可经由装置4的表征URL控制装置4,或者识别装置4的状态。
状态改变选择器351选择装置4的服务的状态改变的一部分。更具体地讲,状态改变选择器351根据从表征模块36识别装置4的表征的用户给定的指示,或者允许控制点3确定装置4的服务的部分状态的预定算法来选择指示装置4的服务的状态的所述部分状态参数。
此外,状态改变选择器351根据识别从表征模块36接收的装置4的表征的用户给定的指示,或者允许控制点3确定装置4的服务的部分状态的预定算法来选择装置4的服务的至少一个状态改变的预定级别。
如下,可以从选择服务的一部分状态改变的上述两种方法的结合来选择服务的一部分状态。也就是说,状态改变选择器351根据识别从表征模块36接收的装置4的表征的用户给定的指示,或者允许控制点3确定装置4的服务的一部分状态的预订算法来选择指示服务的状态的所述部分状态参数,以及选择的状态参数的预定级别。
此外,状态改变选择器351可重新选择服务的状态改变的一部分以更新装置4的扩展事件预订。
对于通知服务的至少一个状态改变的事件,扩展事件预订请求单元352请求装置4仅通知装置4的服务的状态改变的一部分。更具体地讲,扩展事件预订请求单元352产生记录由状态改变选择器351选择的状态参数的ID的扩展头,并将该扩展头插入UPnP事件预订请求消息中,以便请求装置4仅当选择的状态参数改变时,提供选择的状态参数的当前值。
此外,扩展事件预订请求单元352产生记录通过状态改变选择器351选择的至少一个状态改变的预定级别(值)的扩展头,并将该扩展头插入UPnP事件预订请求消息,以便请求装置4仅当状态参数的值改变大于预定级别(值)时,提供指示装置4的服务的状态的至少一个状态参数的当前值。
此外,扩展事件预订请求单元352产生记录由状态改变选择器351选择的一部分状态参数的ID以及预定级别(值)的扩展头,并将该扩展头插入UPnP事件预订请求消息中,以便请求装置4仅当状态参数的值改变大于预定级别(值)时,提供指示装置4的服务的状态的部分状态参数的当前值。
扩展事件预订更新单元353基于由状态改变选择器351执行的选择结果,通过产生指示将新ID添加到现有扩展头中或者从现有扩展头删除现有ID的扩展头,并将产生的扩展头插入UPnP事件预订更新消息中,来请求部分状态参数的更新。此外,扩展事件预订更新单元353基于由状态改变选择器351执行的选择结果,通过产生指示改变预定级别(值)的扩展头,并将该扩展头插入UPnP事件预订更新消息中,来请求记录在现有扩展头中的预定级别(值)的改变。此外,扩展事件预订更新单元353可基于由状态改变选择器351执行的选择结果请求部分状态参数的更新以及预定级别的改变。这里,现有扩展头指示发送到装置4的扩展事件预订请求消息或扩展事件预订更新消息的扩展头。
扩展事件预订响应检测器354检测指示装置4是否能够处理扩展事件预订请求单元352的请求的扩展事件预订响应。更具体地讲,扩展事件预订响应检测器354通过解析由事件触发模块35接收的事件预订响应消息,并且基于解析结果检验扩展事件预订响应消息来检测扩展事件预订响应。
具体地讲,当从扩展事件预订响应消息中检测到指示不能处理扩展事件预订请求单元352的请求的扩展头时,扩展事件预订响应检测器354确定装置4不支持接收根据本示例性实施例的关于服务的部分状态改变的信息的扩展模式。如果从扩展事件预订响应消息中检测到指示能够处理扩展事件预订请求单元352的请求的扩展头时,扩展事件预订响应检测器354确定装置4支持扩展模式。
如果扩展事件预订响应检测器354确定装置4不支持扩展模式,则扩展事件预订响应处理器355将根据现有UPnP标准接收关于服务的所有状态改变的信息的基本模式设置为装置4的事件模式。然而,如果扩展事件预订响应检测器354确定装置4支持扩展模式,则扩展事件预订响应处理器355将扩展模式设置为装置4的事件模式。
事件触发模块35发送包含由扩展事件预订请求单元352插入的扩展头的扩展事件预订请求消息,并且接收作为对扩展事件预订请求消息的响应的扩展事件预订响应消息。此外,事件触发模块35发送包含由扩展事件预订更新单元353插入的扩展头的扩展事件预订更新消息,并且接收作为对扩展事件预订更新消息的响应的UPnP事件预订响应消息。
此外,当扩展事件预订响应处理器355将基本模式设置为装置4的事件模式时,事件触发模块根据现有UPnP标准接收包含关于服务的所有状态改变的信息的事件消息。此外,当扩展事件预订响应处理器355将扩展模式设置为装置4的事件模式时,事件触发模块35接收包含关于服务的部分状态改变的信息的事件消息。
参照图5,装置4包括寻址模块41、发现模块42、描述模块43、控制模块44、事件触发模块45、表征模块46、扩展事件预订请求检测器451、扩展事件预订更新检测器452、扩展事件预订响应单元453以及状态参数提取器454。
寻址模块41执行UPnP寻址操作。详细地讲,寻址模块41根据自动IP或DHCP客户机方法指定装置4的IP地址。发现模块42、描述模块43、控制模块44、事件触发模块45以及表征模块46通过使用由寻址模块41指定的IP地址来与控制点3通信。
发现模块42执行UPnP发现。具体地讲,发现模块42根据SSDP将广告消息发送到存在于装置4所位于的网络的控制点3。
描述模块43执行UPnP描述操作。具体地讲,描述模块43将装置4的描述提供给通过由发现模块42执行的UPnP发现操作而发现装置4的控制点3。
控制模块44执行UPnP控制。详细地讲,控制模块44从通过UPnP描述操作获得装置4的描述的控制点3接收动作调用,并且根据SOAP执行与动作调用相应的动作。
事件触发模块45执行UPnP事件触发操作。更具体地讲,事件触发模块45从通过由描述模块43执行的UPnP描述操作而接收装置4的描述(具体地讲,装置4的服务列表)的控制点3接收UPnP事件预订请求消息,并且根据GENA响应于UPnP事件预订请求消息产生并发送UPnP事件预订响应消息。在UPnP事件预订之后,事件触发模块45发送说明装置4的服务的状态的事件消息。事件消息中的第一个事件消息被称为初始事件消息。
此外,事件触发模块45将事件消息发送到控制点,并且控制点周期地将UPnP事件预订更新消息发送到事件触发模块45。也就是说,在接收UPnP事件预订更新消息之后,事件触发模块45初始化事件预订更新的时间。此外,如果更新事件预订的时间大于事件触发模块45没有接收到UPnP事件预订更新消息的时间阈值,则事件触发模块45不将事件消息发送到必须发送UPnP事件预订更新消息的控制点。当接收到UPnP事件预订更新消息时,事件触发模块45发送响应于UPnP事件预订更新消息的消息。
为了继续接收事件消息,控制点3必须周期地将事件预订更新消息发送到装置4。
具体地讲,根据本示例性实施例,事件触发模块45从控制点3接收扩展事件预订请求消息,并且事件触发模块35从控制点3接收扩展事件预订更新消息。
表征模块46执行UPnP表征操作。详细地讲,表征模块46发送通过描述模块43的UPnP描述操作获得的装置4的描述,具体地讲,当获得装置4的表征URL的控制点3连接到表征URL时,表征模块46发送装置4的表征。
扩展事件预订请求检测器451检测请求通知服务的仅部分状态改变的扩展事件预订请求;也就是说,对通知装置4的服务的至少一个状态改变的事件的请求。详细地讲,扩展事件预订请求检测器451解析由事件触发模块45接收的事件预订请求消息,并且根据解析结果检验扩展事件预订请求消息,以便检测扩展事件预订请求。
具体地讲,扩展事件预订请求检测器451从扩展事件预订请求消息的扩展头检测指示装置4的服务的状态的部分状态参数的ID,以便仅当其值改变时,检测请求所述部分状态参数的当前值的扩展事件预订请求。此外,扩展事件预订请求检测器451从扩展事件预订请求消息的扩展头检测至少一个状态参数的预定级别(值),以便仅当所述状态参数的值改变等于或大于预定级别(值)时,检测请求至少一个状态参数的当前值的扩展事件预订请求。此外,扩展事件预订请求检测器451从扩展事件预订请求消息的扩展头检测部分状态参数的ID和预定级别(值),以便检测请求等于或大于预定级别(值)的所述部分状态参数的值改变的扩展事件预订请求。
扩展事件预订更新检测器452解析由事件触发模块45接收的事件预订请求消息,以检验其是否是扩展事件预订更新消息。如果事件预订请求消息被检验为扩展事件预订更新消息,则扩展事件预订更新检测器452通过检查扩展事件预订更新消息的扩展头来检测对更新部分状态参数的请求,以确定新ID添加到现有扩展头还是从现有扩展头删除ID。此外,扩展事件预订更新检测器452通过检查扩展事件预订更新消息的扩展头来检测对更新记录在现有扩展头中的预定级别(值)的请求,以确定预定级别(值)是否已经改变。
如果当前模式是基本模式,也就是说,当装置4不支持发送关于服务的状态改变的一部分的信息的扩展模式,则扩展事件预订响应单元453产生指示不能处理由扩展事件预订请求检测器451检测的请求的扩展头,并将该扩展头插入UPnP事件预订响应消息中。此外,如果装置4支持扩展模式,则扩展事件预订响应单元453产生指示能够处理由扩展事件预订请求检测器451检测的请求的扩展头,并将该扩展头插入UPnP事件预订响应消息中。
状态参数提取器454检查由扩展事件预订请求检测器451或者扩展事件预订更新检测器452检测的请求,更新关于请求当服务的至少一个状态改变时接收关于状态改变的通知的控制点3的信息,并且基于更新的信息提取将被发送到控制点3的关于部分状态改变的信息。
更具体地讲,状态参数提取器454提取与由扩展事件预订请求检测器451检测的ID相应的状态参数的当前值。状态参数提取器454提取状态参数的当前值,其值改变等于或大于由扩展事件预订请求检测器451检测的预定级别(值)。此外,状态参数提取器454提取状态参数的当前值,该状态参数包括在以下状态参数中,所述状态参数的ID被扩展事件预订请求检测器451检测到,并且该状态参数的值改变等于或大于由扩展事件预订请求检测器451检测的预定级别(值)。
状态参数提取器454响应于由扩展事件预订更新检测器452检测的对更新部分状态参数的请求而更新所述部分状态参数,并且提取更新的状态参数的当前值。此外,状态参数提取器454响应于由扩展事件预订更新检测器452检测的对更新预定级别(值)而更新请求的预定级别(值),并且提取其值改变等于或大于更新的预定级别(值)的状态参数的当前值。
图6是示出根据本发明示例性实施例的图5的装置的状态参数提取器454的详细结构的示图。参照图6,状态参数提取器454包括基本模式控制点(CP)指示器61、扩展模式CP指示器62和63、和预订CP信息列表64。
基本模式CP指示器61、扩展模式CP指示器62和63基于包括装置、N个服务和N个状态参数的分级结构。位于最上级的装置被链接到位于另一级的N个服务。所述N个服务被分别链接到位于最低级的N个状态参数。
预订CP信息列表64是关于预订事件的控制点的信息的列表,所述事件通知服务的至少一个状态改变。这里,关于控制点的信息包括控制点的ID和由控制点指定的状态参数的预订级别(值)。基本模式CP指示器61、扩展模式CP指示器62和63指向包括在预订CP信息列表64中的关于控制点的信息。
以服务为单位构建基本模式CP指示器61。所述基本模式CP指示器61指示关于预订事件的控制点的信息,所述事件通知其链接的服务的至少一个状态改变,但是基本模式CP指示器61并不支持扩展模式。相反,以状态参数为单位构建第一扩展模式CP指示器62和第二扩展模式CP指示器63。所述扩展模式CP指示器62和63指向关于预订以下事件和扩展事件两者的控制点的信息,所述事件通知其链接的服务的至少一个状态,所述扩展事件仅当链接的状态参数的值改变时通知链接的状态参数的当前值。
状态参数提取器454基于由图5的事件触发模块45接收的事件预订请求消息将指示器链接添加到基本模式CP指示器61。另外,状态参数提取器454基于由图5的扩展事件预订请求检测器451检测的请求将指示器链接添加到扩展模式CP指示器62和63。此外,状态参数提取器454基于由扩展事件预订更新检测器452检测的请求将指示器链接添加到扩展模式CP指示器62和63,或者将指示器链接从扩展模式CP指示器62和63中删除。
另外,状态参数提取器454基于到更新的基本模式CP指示器61或扩展模式CP指示器62和63的指示器链接,确定控制点,其中,当服务的至少一个状态改变时,所述控制点请求关于状态改变的通知。也就是说,其ID包括在关于由基本模式CP指示器61指示的控制点的信息中的控制点是请求链接到基本模式CP指示器61的服务的所有多个状态参数的控制点。然而,其ID包括在关于由扩展模式CP指示器62和63指示的控制点的信息中的控制点是仅请求链接到扩展模式CP指示器62和63的状态参数的控制点。
状态参数提取器454提取表示链接到基本模式CP指示器61的服务的状态的所有多个状态参数的当前值,以将它们发送到由基本模式CP指示器61指示的控制点。另外,状态参数提取器454提取链接到扩展模式CP指示器62和63的状态参数的当前值,以将它们发送到由扩展模式CP指示器62和63指示的控制点。具体地讲,如果关于由扩展模式CP指示器62和63指示的控制点的信息包括状态参数的预订级别(值),则仅当链接的状态参数的值的改变等于或大于预订级别(值)时,状态参数提取器454提取链接到扩展模式CP指示器62和63的状态参数的当前值。
如上所述,可通过仅使用几个指示器并根据装置支持基本模式还是扩展模式改变指示器的定位来构建状态参数提取器454。因此,根据本发明的示例性实施例的装置的系统结构比那些传统UPnP装置的系统结构更加实用。此外,由示例性实施例的装置请求的附加资源的数量比由传统UPnP装置请求的附加资源的数量少。
具体地讲,在本示例性实施例中,当装置4的事件模式被设置为基本模式而没有被设置为扩展模式时,事件触发模块45根据现有UPnP标准发送包含关于服务的所有状态改变的信息的事件消息,其中,在所述扩展模式中,发送关于服务的部分状态改变的信息。另外,如果装置4支持扩展模式,则响应于由扩展事件预订请求检测器451或扩展事件预订更新检测器452检测的请求,事件触发模块45发送包含由状态参数提取器454提取的关于服务的部分状态改变的信息的事件消息。
更具体地讲,事件触发模块45接收扩展事件预订请求消息,接着响应于所述扩展事件预订请求消息,发送包含由扩展事件预订响应单元453插入的扩展头的扩展事件预订响应消息。另外,当指示服务的状态的部分状态参数的值改变时,事件触发模块45发送包含改变的状态参数的当前值的事件消息。另外,当指示服务的状态的至少一个状态参数的值改变等于或大于预订级别(值)时,事件触发模块45发送包含所述至少一个状态参数的当前值的事件消息。另外,当指示服务的状态的部分状态参数的值改变,并且至少一个改变的状态参数的值改变等于或大于预订级别(值)时,事件触发模块45发送包含改变的状态参数的当前值的事件消息。
此外,当接收到扩展事件预订更新消息时,在部分状态参数被更新时,响应于扩展事件预订更新消息,事件触发模块45发送包含更新的状态参数的当前值的事件消息。另外,事件触发模块45发送包含状态参数的当前值的事件消息,所述状态参数的值改变等于或大于更新的预订级别(值)。
图7是根据本发明示例性实施例的扩展事件预订请求方法的流程图。图7所示的方法包括由图3的控制点3根据时间执行的操作。因此,尽管没有在这里描述,但是参照图5关于控制点3的描述也可应用于图7的方法。
参照图7,在操作71中,控制点3选择装置4提供的服务的部分状态改变。更详细地讲,在操作71,控制点3选择指示装置4的服务的状态的多个状态参数的一部分,或者至少一个状态改变的预订级别(值)。可选地,在操作71,控制点3可选择指示服务的状态的部分状态参数,并确定选择的状态参数的预订级别(值)。
在操作72,控制点3产生UPnP事件预订请求消息。
在操作73,控制点3根据本发明的示例性实施例产生扩展头,并将其插入到在操作72产生的UPnP事件预订请求消息,从而请求仅关于在操作71选择的状态参数的改变的通知。
更具体地讲,在操作73,控制点3产生记录在操作71选择的状态参数的ID的扩展头,并将其插入到UPnP事件预订请求消息,从而请求仅关于选择的状态参数的改变的通知。另外,在操作73的操作中,控制点3产生记录在操作71选择的至少一个状态改变的预订级别(值)的扩展头,并将其插入到UPnP事件预订请求消息,从而仅当至少一个状态参数的值改变等于或大于预订级别(值)时,请求指示装置4的服务的状态的所述至少一个状态参数的当前值。在操作73,控制点3产生记录在操作71选择的状态参数的ID和预订级别(值)的扩展头,并将其插入到UPnP事件预订请求消息,从而仅当所述状态参数的值改变等于或大于所述预订级别(值)时,请求指示装置4的服务的状态的部分状态参数的当前值。
在操作74,控制点3发送包含在操作73插入的扩展头的扩展事件预订请求消息。
在操作75,控制点3响应于在操作74发送的扩展事件预订请求消息接收扩展事件预订响应消息。
在操作76,控制点3从在操作75接收的扩展事件预订响应消息检测到指示在操作74发送的扩展事件预订请求消息中指定的请求不能被处理的扩展头,确定装置4不支持扩展模式,并进行操作77。另外,在操作76,控制点3从在操作75接收的扩展事件预订响应消息检测到指示在操作74发送的扩展事件预订请求消息中指定的请求能够被处理的扩展头,确定装置4支持扩展模式,并进行操作78。
在操作77,控制点3将基本模式设置为装置4的事件模式,在所述基本模式中,根据现有UPnP标准接收关于服务的所有状态改变的信息。
在操作78,控制点3将扩展模式设置为装置4的事件模式,根据示例性实施例,在所述扩展模式中,接收关于服务的部分状态改变的信息。
图8是根据本发明示例性实施例的处理扩展事件预订请求的方法的流程图。图8的方法包括由图5的装置4根据时间执行的操作。因此,尽管没有在这里描述,但是参照图4关于装置4的描述也可应用于图8的方法。
参照图8,在操作81,装置4接收事件预订请求消息。
在操作82,装置4解析在操作81接收的事件预订请求消息,并且当解析结果显示接收的消息是扩展事件预订请求消息时进行操作83,或者当解析结果显示接收的消息是UPnP事件预订请求消息时进行操作810。
在操作83,装置4从在操作82检验的扩展事件预订请求消息的扩展头检测请求通知关于装置4的服务的一部分状态改变的扩展事件预订请求。
更详细地讲,在操作83,装置4从在操作82接收的扩展事件预订请求消息的扩展头检测部分状态参数的ID,从而仅当指示装置4的服务的状态的所述部分状态参数的值改变时,检测请求所述部分状态参数的当前值的扩展事件预订请求。另外,在操作83,装置4从在操作82接收的扩展事件预订请求消息的扩展头检测至少一个状态改变的预订级别(值),从而仅当状态参数的值改变等于或大于所述预订级别(值)时,检测请求指示装置4的服务的状态的至少一个状态参数的当前值的扩展事件预订请求。此外,在操作83,装置4从在操作82接收的扩展事件预订请求消息的扩展头检测部分状态参数的ID和预订级别(值),从而仅当所述部分状态参数的值改变等于或大于预订级别(值)时,检测请求指示装置4的服务的状态的所述部分状态参数的当前值的扩展事件预订请求。
在操作84,装置4基于在操作83检测的扩展事件预订请求,更新关于控制点的信息,其中,当服务的至少一个状态改变时,所述控制点请求关于状态改变的通知。
在操作85,装置4基于在操作84更新的信息,提取将被发送到控制点的关于所述部分状态改变的信息。更详细地讲,在操作85,装置4提取与在操作83检测的ID相应的状态参数的当前值。另外,在操作85,在状态参数的值改变等于或大于在操作83检测的预订级别(值)的情况下,装置4提取所述状态参数的当前值。另外,在操作85,在与在操作83检测的ID相应的状态参数所述状态参数的值改变等于或大于在操作83检测的预订级别(值)的情况下,装置4提取当前值。
在操作86,装置4产生UPnP事件预订响应消息。
在操作87,装置4产生记录成功的扩展头,并将其插入到在操作86产生的UPnP事件预订响应消息,所述成功指示装置4支持扩展模式,在所述扩展模式中,发送关于服务的部分状态改变的信息。
在操作88,装置4发送扩展事件预订响应消息,所述扩展事件预订响应消息包含在步骤87插入到UPnP事件预订响应消息的扩展头。
在操作89,装置4将初始事件消息发送到控制点,所述初始事件消息包含在操作85提取的关于服务的部分状态改变的信息,所述控制点请求关于服务的所述部分状态改变的通知。
在操作810,装置4更新关于控制点的信息,所述控制点请求关于服务的所有状态改变的通知,也就是说,所述控制点支持基本模式。
在操作811,装置4基于在操作810更新的信息,提取关于服务的所有状态改变的信息,所述信息将被发送到控制点。
在操作812,装置4产生UPnP事件预订响应消息。
在操作813,装置4产生记录失败的扩展头,并将其插入到在操作812产生的UPnP事件预订响应消息,所述失败指示装置4不支持扩展模式,在所述扩展模式中,发送关于服务的部分状态改变的信息。
在操作814,装置4发送包含在操作813插入的扩展头的扩展事件预订响应消息。
在操作815,装置4将初始事件消息发送到控制点,所述初始事件消息包含在操作811提取的关于所有状态改变的信息,所述控制点支持基本模式。
图9是根据本发明示例性实施例的由图5的控制点3执行的扩展事件预订更新方法的流程图。图9的方法包括由控制点3根据时间执行的操作。因此,尽管没有在这里描述,但是参照图5关于控制点3的描述也可应用于图9的方法。
参照图9,在操作91,控制点3重新选择装置4的服务的一部分状态改变,从而更新关于装置4的扩展事件预订。
在操作92,控制点3产生UPnP事件预订更新消息。
在操作93,控制点3基于在操作91获得的重新选择的结果产生扩展头,并将其插入在操作92产生的UPnP事件预订更新消息,从而请求更新所述部分状态参数,所述扩展头指示没有记录在现有扩展头中的新的ID将被添加,或者记录在现有扩展头中的ID将被删除。另外,在操作93,控制点3基于在操作91获得的重新选择的结果产生扩展头,并将其插入在操作92产生的UPnP事件预订更新消息,从而请求改变预订级别(值),所述扩展头指示记录在现有扩展头中的预订级别(值)将被改变。另外,在操作93,控制点3可基于在操作91获得的重新选择的结果请求更新部分状态参数和改变预订级别(值)。
在操作94,控制点3发送包含在操作93插入的扩展头的扩展事件预订更新消息。
图10是根据本发明示例性实施例的由图5的装置4执行的扩展事件预订更新方法的流程图。图10的方法包括由图5的装置4根据时间执行的操作。因此,尽管没有在这里描述,但是上面参照图5关于装置4的描述也可应用于图10的方法。
在操作101,装置4接收事件预订更新消息。
在操作102,装置4解析在操作101接收的事件预订更新消息,并且,当接收的消息是扩展事件预订更新消息时,进行操作103,或者当接收的消息是UPnP事件预订更新消息时,进行操作105。
在操作103,装置4通过检查在操作102解析的扩展事件预订更新消息的扩展头来检测用于更新部分状态参数的请求,以确定向现有扩展头添加新的ID还是从现有扩展头删除ID。另外,在操作103,装置4通过检查在操作102解析的扩展事件预订更新消息的扩展头来检测用于更新记录在现有扩展头中的预订级别(值)的请求,以确定预订级别(值)是否改变。
在操作104,响应于在操作103检测的用于更新部分状态参数的请求,装置4更新所述部分状态参数。另外,在操作104,响应于在操作103检测的用于更新预订级别(值)的请求,装置4更新预订级别(值)。
在操作105,如果完成在操作104的更新,则装置4初始化事件预订已经更新时的时间。
在操作106,在操作105初始化时间之后,装置4发送响应于UPnP事件预订更新消息的消息。
图11是根据本发明示例性实施例的接收事件消息的方法的流程图。图11的方法包括由图5的控制点3根据时间执行的操作,因此,虽然未在此描述,但参照图5关于控制点3的描述也应用于图11的方法。
参照图11,在操作111,控制点3确定装置4的事件模式被设置为扩展模式还是基本模式,如果确定事件模式被设置为扩展模式,则该方法进行操作112,而如果确定事件模式被设置为基本模式,则该方法进行操作113。
在操作112,控制点3接收事件消息,该事件消息包含关于装置4提供的服务的部分状态改变的信息。
在操作113,控制点3接收事件消息,该事件消息包含关于装置4提供的服务的所有状态改变的信息。
图12是根据本发明示例性实施例的发送事件消息的方法的流程图。图12的方法包括由图5的装置4根据时间执行的操作,因此,虽然未在此描述,但参照图5关于装置4的以上描述也应用于图12的方法。
参照图12,在操作121,装置4接收动作调用。
在操作122,装置4执行与在操作121接收的动作调用相应的动作。
在操作123,当在操作122执行动作而导致装置4的服务的状态中的至少一个改变时,装置4进行操作124,而如果不产生状态改变,则装置4完成该方法。
在操作124,装置4选择请求接收关于所述状态改变的通知的控制点。
在操作125,当在操作124中选择的控制点支持扩展模式时,装置4进行操作126,而当选择的控制点支持基本模式时,进行操作127。
在操作126,装置4发送包含关于服务的部分状态改变的信息的事件消息。
在操作127,装置4发送包含关于服务的全部状态改变的信息的事件消息。
本发明的上述示例性实施例可确实地实施为计算机可读程序,或通过使用计算机可读介质执行程序而在通用数字计算机中执行。此外,上述示例性实施例中使用的数据结构可经由各种装置而记录在计算机可读介质上。
计算机可读介质的示例包括磁记录介质(ROM、软盘、硬盘等)以及光学记录介质(CD-ROM、DVD等)。此外,载波(例如在互联网上传输)可用于实施本发明的示例性实施例。
本发明的方面引入扩展模式,其中,发送包含仅关于UPnP装置提供的服务的部分状态改变的信息的事件消息,从而允许控制点接收事件消息,每一事件消息仅包含必须的状态参数。因此,与现有技术不同的是,能够防止控制点接收包含不必要的状态参数的事件消息,从而无需对事件消息或特定状态参数进行过滤。
具体地说,传统地,如果控制点具有低的硬件性能,则控制点很可能接收包含装置的服务的不必要的状态参数的事件消息,从而增加控制点的负荷。反之,根据本发明示例性实施例,可根据控制点的硬件性能调整将接收的事件消息的数量。存在这样的情况根据由控制点执行的应用的特性仅需要状态参数的部分,或状态参数的部分频繁改变。在此情况下,根据本发明示例性实施例,可考虑到应用的特性,更高效地接收仅关于服务的部分状态改变的信息。
此外,本发明的各方面引入扩展事件预订更新消息,其请求更新UPnP装置的服务的状态参数的部分,从而允许控制点预订用于动态添加或删除状态参数的事件。此外,由于根据本发明示例性实施例的扩展事件预订请求消息和扩展事件预订更新消息是通过使用HTTP扩展头而形成的,因此甚至可将它们应用于传统UPnP事件触发方法而不会有兼容性问题。因此,根据本发明示例性实施例,可减少经由家庭网络发送的事件消息的总数量,从而节省家庭网络带宽。
虽然已参照其示例性实施例示出和描述了本发明,但本领域技术人员应理解,在不脱离由所附权利要求限定的本发明的精神的范围的情况下,可在形式和细节上进行各种改变。
权利要求
1.一种接收事件信息的方法,该方法包括(a)对于指示服务的状态改变中的至少一个的事件请求仅关于所述服务的多个状态改变中的一部分的通知;以及(b)响应于所述请求接收关于部分状态改变的信息。
2.如权利要求1所述的方法,其中,所述事件是通知通用即插即用(UPnP)装置提供的服务的状态改变中的至少一个的事件。
3.如权利要求1所述的方法,其中,在(a)期间,仅当指示服务的状态改变的所述部分状态参数的值改变时,才请求改变的所述部分状态参数的当前值。
4.如权利要求3所述的方法,其中,在(a)期间,通过将记录所述部分状态参数的标识的扩展头插入请求预订所述事件的消息来请求所述部分状态参数的当前值。
5.如权利要求4所述的方法,还包括通过将扩展头插入到请求更新对所述事件的预订的消息来更新所述部分状态参数,所述扩展头指示添加新标识或从现有扩展头中删除状态参数的标识。
6.如权利要求1所述的方法,其中,在(a)期间,仅当至少一个状态参数的值改变等于或大于预定级别时,才请求指示服务的状态改变的状态参数中的所述至少一个的当前值。
7.如权利要求6所述的方法,其中,在(a)期间,通过将记录预定级别的扩展头插入请求对所述事件的预订的消息来请求所述至少一个状态参数的当前值。
8.如权利要求7所述的方法,还包括通过将指示改变预定级别的扩展头插入请求更新对所述事件的预订的消息来请求改变预定级别。
9.一种接收事件信息的设备,该设备包括请求单元,对于指示服务的状态改变中的至少一个事件请求关于所述服务的多个状态改变中的一部分的通知;以及事件触发模块,响应于所述请求接收关于所述部分状态改变的信息。
10.一种在其上实现用于执行在计算机中接收事件信息的方法的程序的计算机可读介质,该方法包括对于指示服务的状态改变中的至少一个的事件请求仅关于所述服务的多个状态改变中的一部分的通知;以及响应于所述请求接收关于所述部分状态改变的信息。
11.一种发送事件信息的方法,该方法包括(a)检测仅对于服务的多个状态改变中的一部分的请求,所述请求作为对于指示所述服务的状态改变中的至少一个的事件的请求;以及(b)响应于所述请求接收关于部分状态改变的信息。
12.如权利要求11所述的方法,其中,所述事件是通知通用即插即用(UPnP)装置提供的服务的状态改变中的至少一个的事件。
13.如权利要求11所述的方法,其中,在(a)期间,仅当指示所述服务的状态改变的多个状态参数中的一部分的值改变时,才检测对于状态参数的所述部分的当前值的请求,以及在(b)期间,当状态参数的所述部分的值改变时,发送包含状态参数的所述部分的当前值的事件消息。
14.如权利要求13所述的方法,其中,在(a)期间,通过从请求对所述事件的预订的消息检测状态参数的所述部分的标识来检测请求。
15.如权利要求14所述的方法,还包括通过确定添加新标识还是删除状态参数的标识来检测对更新所述状态参数的请求。
16.如权利要求11所述的方法,其中,在(a)期间,仅当指示服务的状态改变的状态参数中的至少一个的值改变等于或大于预定级别时,才检测用于请求所述状态参数的当前值的请求,以及在(b)期间,当所述状态参数的值改变等于或大于预定级别时,发送包含所述状态参数的当前值的事件消息。
17.如权利要求16所述的方法,其中,在(a)期间,通过从请求对所述事件的预定的消息检测预定级别来检测所述请求。
18.如权利要求17所述的方法,还包括通过确定预定级别是否改变来检测对更新预定级别的请求。
19.一种发送事件信息的设备,该设备包括检测单元,检测仅对于服务的多个状态改变的请求中的一部分,所述请求作为对于指示服务的状态改变中的至少一个的事件的请求;以及事件触发模块,响应于所述请求接收关于所述部分状态改变的信息。
20.一种在其上实现用于执行发送事件信息的方法的程序的计算机可读介质,该方法包括检测仅对于服务的多个状态改变中的一部分的请求,所述请求作为对于指示所述服务的状态改变中的至少一个的事件的请求;以及响应于所述请求接收关于所述部分状态改变的信息。
全文摘要
提供一种用于高效发送和接收关于即插即用(UPnP)事件的信息的方法和设备。在所述接收事件信息的方法中,对于指示服务的状态改变中的至少一个的事件请求关于所述服务的多个状态改变中的一部分的通知;以及响应于所述请求接收关于所述部分状态改变的信息。因此,控制点可接收仅包含必需状态参数的事件消息。
文档编号H04L12/00GK1968150SQ20061014700
公开日2007年5月23日 申请日期2006年11月9日 优先权日2005年11月9日
发明者崔哲源 申请人:三星电子株式会社