专利名称:用于管理多宿主upnp设备中的网络连通性中断的系统和方法
技术领域:
本发明一般涉及通用即插即用(UPnP)技术。更具体地,本发明涉及 当比该设备的所有网^"口少的网^^口经历连通性中断时,维持UPnP 环境中多宿主设备的可用性的使用。
背景技术:
本部分旨在提供权利要求中提及的对于本发明的背景或环境。此处的 描述可包括能够被研究,但未必是之前已经被考虑或研究的概念。因此, 除非在这里指出,否则本部分中所描述的内容对本申请的说明书和权利要 求书来说不是现有技术,而且也不会通过包括在本部分中而承认是现有技 术。
UPnP技术定义了一种用于所有类型的个人计算设备、智能装备和无 线设备的普遍点对点网络连通性的架构。UPnP被设计为对于ad-hoc或无 管理网络带来易于使用、灵活、基于标准的连通性,不论是家庭中、小型 企业中、公共空间还是被附连到互联网。UPnP技术提供了一种支持传输 控制协议/互联网协议(TCP/IP)和Web技术的分布式、开放的联网架构,
UPnP设备架构(UDA)被设计为支持对于来自广泛厂商的广泛设备 分类的零配置、"隐形"联网和自动发现。换句话说,UPnP使得设备能 够动态地加入网络、获取IP地址、传送该设备的能力以及知晓其它设备的 存在和能力。
UPnP设备架构标准(版本1.1)定义了简单服务发现协议(SSDP) 消息中的BOOTID.UPNP.ORG报头,这里将其称为BOOTID。 BOOTID
7是单调增大的值。当设备启动或执行"重启"时,其必须增大BOOTID的 值。只要设备在网络中仍然可用,相同的BOOTID值必须被用于所有的重 复通告、搜索响应和最终的再见消息中。设备在多个网络接口或IP地址上 发送的所有SSDP消息中,其必须使用相同的BOOTID值。在UPnP技术 中,"重启"被定义为通过发送SSDP:再见消息通告设备不可用,以及 随后通过发送新SSDP:活跃消息重新通告i殳备可用。
BOOTID报头在这样的情形中特别有用其中设备检测到网络连通性 的中断,即,其中设备临时失去网络连通性但已重获连通性(例如,网络
电缆4皮拔掉和重新插上),或其IP地址已改变。在这种情况下,设备增加 其BOOTID值,并且在网络上重新通告其自己。 一收到带有增加的 BOOTID值的SSDP消息,已緩存关于所述设备的信息的控制点理解到所 述设备不再是同一设备。控制点通常通过刷新设^f言息和可能重订阅所述 设备的服务来对该活动作出反应。
尽管有以上所述,目前存在有关多宿主(multi-homed)环境中 BOOTID的使用的问题。多宿主设备可具有多个网M口、同一网,口 上的多个IP地址或上述两者。例如,假设设备具有多个网络接口,则该设 备可以通过其网,口连接到一个或多个不相交的网段。网络连通性中断 可发生在一网络接口上,如果该设备暂时丢失该网络接口上的连通性,例 如,如果网络电缆净皮拔出并随后被重新插上,或者如果该网,口上的IP 地址改变。在这种情况下,出现了关于该设备在这种网络连通性中断之后 是否以及如何更新BOOTID值的问题。
在考查以上问题时,考虑如图1中所示的系统是有益的。如在图1中 所示,设备100具有分别连接到第一网段130和第二网段140的第一接口 110和第二接口 120。第一控制点150具有连接到第一网段130的第一控制 点接口 151,第二控制点160具有连接到第二网段140的第二控制点接口 161。第三控制点170是多宿主控制点,并且通过第三控制点接口 171和 172连接到第一和第二网段130和140两者。第一、第二和第三控制点150、 160和170中的每个都已緩存了一些关于设备100的信息,并且订阅了其服务。在此情况下,考虑其中在设备100的第一网络接口 110上(并且因 此在第一网段130上)存在短暂网络连通性中断的情况是有益的。从第一 网段130 (以及连接到第一网段130的第一和第三控制点150和170 )角度 看,设备100已失去连通性,并且需要被"重启"。换句话说,从第一网 段130的角度看,设备100应当增加其BOOTID,并在第一网段130上重 新公告其自己。另一方面,从第二网段140 (以及连接到第二网段140的 第二和第三控制点160和170)的角度看,设备IOO已始终保持可用,并 且"重启,,既不必要也不被期望。换句话说,从第二网段140的角度看, 设备100应该在第二网段140上的其随后通告中继续使用其现有 BOOTID。然而,由于设备100连接到第一和第二网段130和140两者, 并且由于其必须在这两者上都使用相同的BOOTID,所以存在实质性问 题。
假设必须使连接到第一网段130上的控制点意识到设备100已暂时失 去连通性,则设备100除了增加其BOOTID并重新通告其自己外别无选择。 然而,该方法遭受这样的副作用连接到第二网段140并且未受该中断影 响的控制点也被迫刷新其设备信息。这具有多个影响。第一,由于所有控 制点都需要刷新其设备信息,所以网络业务量增加。第二,设备100和关 联的控制点两者上的处理负载也增加。第三,该方法导致不够友好的用户 体验。例如,如果用户正在使用连接到以太网的使能了 UPnP的计算机, 并且如果存在经由以太网和无线LAN (WLAN)两者连接到归属网络的 UPnP设备,如果WLAN连通性不稳定,则即使在整个时段内用户和UPnP 设备两者都已经始终被连接到以太网上,用户也将觉察到UPnP设备重复 地在以太网上出现和消失。第四,i殳备的重启还导致对于控制点当前可能 正消费的服务的中断。例如,如果重启是必要的,则文件上载可能需要被 异常中断,或者视频回放可能被打断。
因此,提供一种用于管理多宿主UPnP设备中的连通性中断的改进型 系统以便解决以上讨论的问题将是可取的。
9
发明内容
本发明的各实施例用于在多宿主设备在一些但不是其全部网^:口中 经历连通性中断的情况下,最小化多宿主设备与关联的控制点之间的交互。
在各实施例中,这通过引入新的可选报头到SSDP:再见消息格式来达到。 所述新的报头允许多宿主设备不管发送SSDP:再见消息、更新其BOOTID 值并重新通告其自己以便解决其在别处经历的网络问题的需要而向兼# 制点通知其持续可用性。该新的报头的使用指示控制点其可以不顾这些 SSDP消息而继续使用所述设备及其关联的服务。
本发明的各实施例为用户提供了诸多好处。这里描述的安排可以向后 与UPnPvl.O控制点兼容。在被连接到未经历连通性中断的网,口的控 制点,需要最小限度的处理。另外,由于最小数量的控制点受所述连通性 中断的影响,所以所述UPnP设备上仅需要最少量的处理。仍然进一步地, 各实施例用于大量地减少关联的控制点的服务中断数量。而且,所述新的 可选报头的处理是可选的;选择忽略该报头的控制点可以以不得不重建设 备信息(例如所緩存的设备状态和事件订阅)为代价而这样做。事实上本 发明的各实施例可以被并入实现UPnP vl.l设备架构的任何产品中。
从以下结合附图进行的详细描述中,本发明的这些和其它优点和特征 及其组织和运行方式将变得显而易见,其中,在以下描述的几个附图中, 相同的元件具有相同的标号。
图l是对UPnP环境的图示,其中,设备包括用于与多个网络连接和 控制点关联的多个接口;
图2是示出本发明的一个一般实施例的实现的流程图3是可以用于本发明的实现中的电子设备的透视图;以及
图4是表示图3的移动电话的电路的示意图。
具体实施方式
本发明用于在多宿主设备在一些但不是其全部网络接口中经历连通性 中断的情况下,最小化多宿主设备与任何关联的控制点之间的交互。在各
实施例中,这通过向SSDP:再见消息格式引入新的可选才艮头 NEXTBOOTID.UPNP.ORG (这里称为NEXTBOOTID )来达到。该 NEXTBOOTID报头允许多宿主设备不顾发送SSDP:再见消息、更新其 BOOTID值并重新通告其自己以便解决其在别处经历的网络问题的需要, 而向兼容的控制点通知其持续可用性。NEXTBOOTID报头的使用指示控 制点,其可以不顾这些SSDP消息而继续使用所述设备及其关联的服务。
如果设备在其网络接口中的一个上经历网络连通性中断,则 NEXTBOOTID.UPNP.ORG报头可以被包括在由多宿主设备发送的 SSDP:再见消息中。该报头仅被包括在连通性未被打断的网络接口上发送 的消息中。在连通性被中断的网络接口上,不使用所述报头。 NEXTBOOTID.UPNP.ORG报头的值指示将被用于即将来临的SSDP通告 消息中的BOOTID值。在发送带有NEXTBOOTID值的SSDP:再见消息 与带有已更新BOOTID值的下一组通告消息之间,所述设备必须保持网络 上的持续可用性。如果设备在该时间内变得不可用,则其必须执行常规的 "重启",增加BOOTID并重新通告自己。
图2是示出本发明的一个一般实施例的实现的流程图。在图2中的 200,UPnP设备用BOOTID-2在所有网络接口上通告其自己。稍后,UPnP 设备在210检测到已在其网络接口中的一个上发生连通性中断。然而,所 有其它网洛接口上的连通性仍然完好。响应于该活动,在220处,设备通 过发送SSDP:再见消息并用新的BOOTID=3重新通告其自己,来在发生 中断的网络接口上执行"重启"。所述SSDP:再见消息的语法如下。
NOTIFY * HTTP/1.1
HOST: 239.255.255.250:1900
NT:遞普类^
NTS: ssdp:byebye
USN:遞普^^S^^^识符
iiBOOTID.UPNP.ORG: 2
CONFIGID.UPNP.ORG: ^f凝存潜迷^T,惑^炎字 SEARCHPORT.UPNP.ORG:标识设务询j卓潜M-5^4/ C7/摩^端
在260,对于网络连通性仍是完好的网络接口,设备随同带有新的 BOOTID=3的新通告一起,发送SSDP:再见消息来通告将被使用的下一 个BOOTID。所述SSDP:再见消息和新通告的语法如下。
NOTIFY * HTTP/1.1
HOST: 239.255.255.250:1900
NT:遞普类型
NTS: ssdp: byebye
IJSN:遞普付合_4标识#
BOOTID.UPNP.ORG: 2 NEXTBOOTID.UPNP.ORG: 3 CONFIGID.UPNP.ORG: ^于凝存裙迷^^惑^炎字 SEARCHPORT.UPNP.ORG:标识设务询^卓潜
可出现这样的情况其中,UPnP1.0控制点经由网皿口通信地连接 到UPnP设备,并且不知晓BOOTID报头和NEXTBOOTID报头。在该 情况中,UPnP1.0控制点简单地将SSDP:再见和SSDP:活动(alive)消息 的到达看作典型的i殳备"重启"。在该情况中,UPnP1.0控制点通常丢弃 其已存储的关于该设备的任何信息并重新获取设备信息的全部,可能还重 订阅其服务。不论UPnP 1.0控制点在已中断的网 口还是完好的网, 口上连接到该设备,该行为是相同的。换句话说,UPnP1.0控制点被迅速 地警告该设备已改变。
按照根据UPnP设备架构标准的版本1.1配置的控制点的行为,这些 控制点通常存储其所连接的任何设备的BOOTID信息。在以上示例中,控 制点记录该设备具有BOOTID=2。对于连接到设备在其上有连通性中断的网段的UPnP 1.1控制点,在230接收普通的SSDP:再见消息。如在图2 中240所示,控制点通常丢弃其已存储的关于该设备的任何信息。如在250 所示,当新的SSDP:活动消息到达时,控制点通常重新获取所有的设^^f言 息,并且可能重订阅其服务。这就是如何使控制点成功地知道其新的设备 状态。
对于连接到设备在其上没有连通性中断的网段的UPnP 1.1控制点,在 270接收带有NEXTBOOTID报头的SSDP:再见消息。注意到,SSDP:再 见消息的BOOTID值与其已记录的有关设备的BOOTID值(BOOTID=2 ) 相同,控制点认识到,其已记录的设^f言息仍然有效。然后在280,控制 点通过将BOOTID更新到NEXTBOOTID才艮头的值使得BOOTID=3,来 更新其i殳备记录。在290,当接下来的SSDP:活动消息(带有BOOTHN3) 到达时,控制点知道其仍然具有设备的最新信息。没有重新获取设^^f言息 或重订阅服务是必要的。
对于连接到设备在其上已经历了连通性中断的网段和设备在其上没有 连通性中断的网段两者的UPnP 1.1控制点,由设备100在220和260处发 送的带有和不带NEXTBOOTID报头的SSDP:再见消息两者都在310处被 控制点(在不同网络接口上)接收。在此情况下,控制点的行为取决于控 制点已从哪个接口获得其设备信息和事件订阅。如果控制点已经在使用仅 仅设备在其上没有连通性中断的网段,即带有NEXTBOOTID报头的 SSDP:再见消息,皮接收自的网段,则控制点在320处通过将BOOTID更新 到NEXTBOOTID报头的值使得BOOTID=3,来更新其设备记录。当接 下来的SSDP:活动消息(带有BOOTID-3 )在340处到达时,控制点知道 其仍然具有设备的最新信息。没有重新获取设备信息或重订阅服务是必要 的。另一方面,如果控制点已依赖于设备在其上已经历了连通性中断的网 段,或者已依赖于所述两种网段,则其将丢弃已存储的关于设备的任何信 息,并重新获取所有的i殳备信息,可能重订阅其服务。这些动作在图2的 330处净皮集体示出。
图3和4示出了本发明可以在其中被实现的一种代表性电子设备12。
13然而,应当理解,本发明不是旨在被限于一种特定类型的设备。还应当理
解,图3和4中所示的部件的一些或全部可以被并入实现本发明的各实施 例时所涉及的任何设备中。图3和4的电子设备12包括机壳30、液晶显 示器形式的显示器32、键区(keypad )34、麦克风36、耳机38、电池40、 红外端口 42、天线44、才艮据本发明的一个实施例UICC形式的智能卡46、 读卡器48、无线接口电路52、编解码电路54、控制器56、存储器58和电 池80。各电路和元件都是本领域熟知的类型,例如Nokia范围内的移动电 话。
实现本发明的通信设备可以使用各种传输技术与彼此和/或其它设备 进行通信,所述传输技术包括但不限于码分多址(CDMA)、全球移动通 信系统(GSM)、通用移动电信系统(UMTS)、时分多址(TDMA)、 频分多址(FDMA)、传输控制协议/互联网协议(TCP/IP)、短消息服 务(SMS )、多媒体消息服务(MMS )、电子邮件、即时消息服务(IMS )、 蓝牙、IEEE 802.11等。通信设备可以使用各种介质通信,所述介质包括 但不限于无线电、红外、激光、电缆连接等。
这里描述的各实施例以方法步骤或过程的一般环境来描述,其中,所 述方法步骤或过程在一个实施例中可以由包含在计算机可读介质中的计算 机程序产品来实现,所述计算机程序包括可由网络环境中的计算机执行的 计算机可执行指令,例如程序代码。计算机可读介质可以包括可移除和不 可移除的存储设备,所述设备包括但不限于只读存储器(ROM)、随机访 问存储器(RAM)、压缩光盘(CD)、数字通用光盘(DVD)等。 一般 来说,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、 对象、组件、数据结构等。计算机可执行指令、关联的数据结构和程序模 块代表用于执行这里公开的方法步骤的程序代码的示例。所述可执行指令 或关联数据结构的特定顺序代表用于实现此类步骤中描述的功能的对应动 作的示例。
各实施例的软件和web实现可以通过标准编程技术来完成,所述标准 编程技术具有基于规则的逻辑和其它逻辑,来完成各种数据库搜索步骤或
14过程、关联步骤或过程、比较步骤或过程以及判决步骤或过程。应当指出, 这里以及随后的权利要求书中使用的用语"组件"和"模块"旨在包括使
备。5' — 二 3, ^
已为了示例性说明和描述目的呈现了前述对本发明的实施例的描述。 前述描述不是旨在穷举或将本发明的实施例限于所公开的准确形式,并且, 根据上文的教导或可从本发明的实践中获得的修改和变型是可能的。选择
并描述了这里所^Hf的实施例,以侵_说明各实施例的原理和本质及其实际 应用,以便使本领域技术人员能够在各种实施例中适用本发明以及使用适 于特定使用预期的各种修改。这里描述的实施例的特征可以被结合到方法、 装置、^=莫块、系统和计算机程序产品的所有可能的组合中。
权利要求
1.一种管理多宿主设备中的网络连通性中断的方法,包括接收所述设备的多个接口中的一个上的连通性中断的指示;在已中断的接口上执行重启;以及在连通性未中断的所有接口上传送下一个BOOTID值的指示。
2. 根据权利要求1所述的方法,其中,所述下一个BOOTID值的指 示的传送引起关联于非中断接口的控制点设备在不必丟弃关于所述设备的 已存储信息和重新获取关于所述设备的信息的情况下,更新所述设备的 BOOTID值。
3. 根据权利要求1所述的方法,其中,所述下一个BOOTID值的指 示在NEXTBOOTID才艮头中被传送。
4. 根据权利要求l所述的方法,其中,对于关联于已中断的接口和非 中断的接口两者的控制点设备如果所述控制点设a依赖于关联于所述非中断的接口的网段,则所 述下一个BOOTID值的指示引起所述控制点设备在不必丢弃关于所述设 备的已存储信息和重新获取关于所述设备的信息的情况下,更新所述设备 的BOOTID值;以及如果所述控制点设备至少部分地依赖于关联于已中断的接口的网段, 则所述重启引起所述控制点设备丢弃关于所述设备的已存储信息,并重新 获取关于所述设备的信息。
5. —种包含在计算机可读介质中的计算机程序产品,包括用于执行根 据权利要求1所述的过程的计算机代码。
6. —种装置,包括 处理器;以及存储器单元,其通信地连接到所述处理器,并包括用于接收所述装置的多个接口中的一个上的连通性中断的指示的 计算机代码;用于在已中断接口上执行重启的计算机代码;以及 用于在所有连通性未中断的接口上传送下一个BOOTID值的指 示的计算机代码。
7,根据权利要求6所述的装置,其中,所述下一个BOOTID值的指 示的传送引起关联于非中断接口的控制点设备在不必丢弃关于所述装置的 已存储信息和重新获取关于所述装置的信息的情况下,更新所述装置的 BOOTID值。
8. 根据权利要求6所述的装置,其中,所述下一个BOOTID值的指 示在NEXTBOOTID报头中被传送。
9. 根据权利要求6所述的装置,其中,所述下一个BOOTID值的指 示引起通用即插即用(UPnP )版本1.0控制点设备丢弃关于所述装置的已 存储信息并重新获取关于所述装置的信息。
10. 根据权利要求6所述的装置,其中,对于关联于已中断接口和非 中断接口两者的控制点设备如果所述控制点设^f5l依赖于关联于非中断接口的网段,则所述下一 个BOOTID值的指示引起所述控制点设备在不必丢弃关于所述装置的已 存储信息和重新获取关于所述装置的信息的情况下,更新所述装置的 BOOTID值;以及如果所述控制点设备至少部分地依赖于关联于已中断接口的网段,则 所述重启引起所述控制点设备丢弃关于所述装置的已存储信息并重新获取 关于所述装置的信息。
11. 根据权利要求6所述的装置,其中,所述装置包括通用即插即用 (UPnP )设备。
12. —种系统,其包括通用即插即用(UPnP)设备,其包括操作地连接到第一网段的第一接 口,和操作地连接到第二网段的第二接口;操作地连接到所述第 一 网段的第 一控制点设备; 操作地连接到第二网段的第二控制点设备;以及操作地连接到所述第 一 网段和所述第二网段两者的第三控制点设备,其中,所述UPnP设备被配置为,基于在所述第一接口发生连通性中断在已中断接口上执行重启,以及 在所述第二接口上传送下一个BOOTID值的指示。
13. 根据权利要求12所述的系统,其中,所述重启引起所述第一控制 点设备丢弃关于所述UPnP设备的已存储信息,并重新获取关于所述UPnP 设备的信息。
14. 根据权利要求12所述的系统,其中,所述下一个BOOTID值的 指示的传送引起所述第二控制点设备在不必丢弃关于所述UPnP设备的已 存储信息和重新获取关于所述UPnP设备的信息的情况下,更新所述UPnP 设备的BOOTID值。
15. 根据权利要求12所述的系统,其中,所述第二控制点设备是UPnP 版本1.0控制点i殳备,以及其中,所述下一个BOOTID值的指示的传送引 起所述UPnP版本1.0控制点设备丟弃关于所述UPnP设备的已存储信息, 并重新获取关于所述UPnP设备的信息。
16. 根据权利要求12所述的系统,其中如果所述第三控制点设备仅依赖于所述第二网段,则所述下一个 BOOTID值的指示引起所述第三控制点设备在不必丢弃关于所述装置的 已存储信息和重新获取关于所述UPnP设备的信息的情况下,更新所述 UPnP设备的BOOTID值;以及如果所述第三控制点设备至少部分地依赖于所述第一网段,则所述重 启引起所述第三控制点设备丢弃关于所述UPnP设备的已存储信息,并重 新获取关于所述UPnP设备的信息。
17. —种更新通用即插即用(UPnP)控制点设备中的信息的方法,包括通过未中断接口接收来自设备的关于该设备的下一个BOOTID值的 指示;以及响应于收到的指示,至少选择性地在不丟弃关于所述设备的已存储信息和重新获取关于所述设备的信息的情况下,更新所述设备的BOOTID 值。
18. 根据权利要求17所述的方法,其中,所述下一个BOOTID值的 指示在NEXTBOOTID报头中被接收。
19. 根据权利要求17所述的方法,其中,所述下一个BOOTID值的 指示随同SSDP:再见消息^皮接收。
20. 根据权利要求17所述的方法,进一步包括 通过已中断接口接收来自所述设备的重启指示;以及如果所述UPnP控制点设备至少部分地依赖于关联于已中断接口的网 段,则丢弃关于所述设备的已存储信息,并重新获取关于所述设备的信息。
21. 根据权利要求20所述的方法,其中,如果所述UPnP控制点设备 仅依赖于关联于所述未中断接口的网段,则所述设备的BOOTID值在不丢 弃关于所述设备的已存储信息和重新获取关于所述设备的信息的情况下被 更新。
22. —种包含在计算机可读介质中的计算机程序产品,其包括用于执 行根据权利要求20所述的过程的计算机代码。
23. —种装置,包括 处理器;以及存储器单元,其通信地连接到所述处理器,并包括用于处理设备的下一个BOOTID值的指示的计算机代码,已经通 过未中断接口收到来自所述设备的所述指示;以及用于响应于收到的指示,在不丢弃关于所述i殳备的已存储信息和 重新获取关于所述设备的信息的情况下更新所述设备的BOOTID值的计 算机代码。
24. 根据权利要求23所述的装置,其中,所述下一个BOOTID值的 指示在NEXTBOOTID才艮头中被接收。
25. 根据权利要求23所述的装置,其中,所述下一个BOOTID值的指示随同SSDP:再见消息被接收。
26. 根据权利要求23所述的装置,其中,所示存储器单元进一步包括: 用于处理通过已中断接口收到的来自所述设备的重启指示的计算机代码;以及用于如果所述UPnP控制点设备至少部分地依赖于关联于已中断接口 的网段,则丢弃关于所述设备的已存储信息,并重新获取关于所述设备的 信息的计算机代码。
27. 根据权利要求26所述的装置,其中,如果所述UPnP控制点设备 仅依赖于关联于未中断接口的网段,则所述设备的BOOTID值在不丟弃关 于所述设备的已存储信息和重新获取关于所述设备的信息的情况下被更 新。
全文摘要
一种用于在多宿主设备在其一些但不是全部网络接口中经历连通性中断的情况下最小化多宿主设备与关联的控制点之间的交互的系统和方法。在各实施例中,一种针对SSDP再见消息格式的新的可选报头。该新的报头允许多宿主设备不顾发送SSDP再见消息、更新其BOOTID值以及重新通告其自身以解决其在别处经历的网络问题的需要,而向兼容的控制点通知其连续可用性。该新报头的使用向未受所述中断影响的控制点指示其可以不管这些SSDP消息而继续使用所述设备及其关联的服务。
文档编号H04L12/28GK101569138SQ200780046178
公开日2009年10月28日 申请日期2007年11月30日 优先权日2006年12月13日
发明者C·尚 申请人:诺基亚公司