首页 / 国际专利分类库 / 电学 / 电通信技术 / 无线通信网络 / 网络数据管理 / .{ 网络设备的发现,例如终端 } / 对等式联网环境中采用基于操作条件的动态宣告和发现周期的有效服务宣告和发现

对等式联网环境中采用基于操作条件的动态宣告和发现周期的有效服务宣告和发现

申请号 CN201080055969.9 申请日 2010-12-08 公开(公告)号 CN102652424B 公开(公告)日 2016-01-20
申请人 苹果公司; 发明人 P·万德瓦勒; T·托马斯; C·F·多敏古兹;
摘要 耦接至无线网络的本地设备被配置成监测操作条件。宣告周期基于本地设备的操作条件来动态地调节,其中宣告周期基于本地设备的 电池 条件、本地设备的用户行为、网络通信条件以及要宣告的服务的类型中的至少一个来动态地调节。本地设备根据所调节的宣告周期,在无线网络中广播服务宣告,该服务宣告包括用于标识要从本地设备宣告的一个或多个服务的一个或多个服务ID。
权利要求

1.一种在对等式联网环境中宣告服务的机器实施的方法,该方法包括:
监测耦接至无线网络的本地设备的操作条件;
基于所述本地设备的操作条件动态地调节所述本地设备的宣告周期,其中所述本地设备的宣告周期包括所述本地设备对宣告的接连发送之间的间隔时间,其中所述宣告周期独立于所述本地设备的可用性时间表被调节,其中所述可用性时间表是所述本地设备将是可用的并且在网络上监听来自远程设备的服务请求的一组时间;以及
根据所调节的宣告周期,通过所述本地设备在无线网络中广播服务宣告,该服务宣告包括用于标识要从所述本地设备宣告的一个或更多个服务的一个或更多个服务ID。
2.根据权利要求1所述的方法,其中,所述宣告周期基于本地设备的电池条件、本地设备处的用户行为、网络通信条件以及要宣告的服务的类型中的至少一个来动态地调节。
3.根据权利要求1所述的方法,还包括:
基于所述本地设备的操作条件动态地调节发现周期;以及
在尝试通过无线网络从远程设备接收服务宣告时,根据所调节的发现周期,通过所述本地设备在无线网络中监听。
4.根据权利要求3所述的方法,其中,所述发现周期基于本地设备的电池条件、本地设备处的用户行为、网络通信条件以及要发现的服务的类型中的至少一个来动态地调节。
5.根据权利要求3所述的方法,其中,所述宣告周期被计算为预定基值和第一调节因子的乘积,并且其中,所述宣告周期通过调节所述第一调节因子来动态地调节。
6.根据权利要求5所述的方法,其中,所述发现周期被计算为所述预定基值和第二调节因子的乘积,该第二调节因子不同于所述第一调节因子,并且其中,所述发现周期通过调节该第二调节因子来动态地调节。
7.一种便携式设备,包括:
无线收发器;
监测器,耦接至该无线收发器以监测耦接至无线网络的该便携式设备的操作条件;以及
服务宣告单元,耦接至该监测器和该无线收发器以基于该便携式设备的操作条件来动态地调节宣告周期,其中所述便携式设备的宣告周期包括所述便携式设备对宣告的接连发送之间的间隔时间,其中所述宣告周期独立于所述便携式设备的可用性窗口被调节,其中所述可用性窗口是所述便携式设备是可用的并且在网络上进行监听的时段,该服务宣告单元配置成经由该无线收发器根据所调节的宣告周期在无线网络中广播服务宣告,该服务宣告包括标识要宣告的一个或更多个服务的一个或更多个服务标识符。
8.根据权利要求7所述的便携式设备,还包括服务发现单元,该服务发现单元耦接至该监测器和该无线收发器以
基于所述便携式设备的操作条件动态地调节发现周期,以及
在尝试通过无线网络从远程设备接收服务宣告时,根据所调节的发现周期,经由所述无线收发器在无线网络中监听。
9.根据权利要求8所述的便携式设备,其中,所述宣告周期和所述发现周期中的至少一个基于所述便携式设备的电池条件、所述便携式设备处的用户行为、网络通信条件以及要宣告或发现的服务的类型中的至少一个来动态地调节。
10.根据权利要求8所述的便携式设备,其中,所述宣告周期计算为预定基值和第一调节因子的乘积,并且其中,所述宣告周期通过调节该第一调节因子而动态地调节。
11.根据权利要求10所述的便携式设备,其中,所述发现周期计算为所述预定基值和第二调节因子的乘积,该第二调节因子不同于所述第一调节因子,并且其中,所述发现周期通过调节该第二调节因子来动态地调节。
12.一种用于在对等式联网环境中发现服务的机器实施的方法,该方法包括:
确定耦接至无线网络的本地设备的操作条件;
基于该本地设备的操作条件动态地调节发现周期,其中所述本地设备的发现周期包括所述本地设备的接连服务发现尝试之间的间隔时间,其中所述本地设备的发现周期和远程设备的宣告周期是相同预定基值的倍数,其中所述宣告周期独立于所述发现周期被调节;
以及
在尝试通过无线网络发现由远程设备宣告的服务时,根据所调节的发现周期,通过该本地设备在无线网络中监听。
13.根据权利要求12所述的方法,还包括:
基于所述本地设备的操作条件动态地调节所述宣告周期;以及
根据所调节的宣告周期,通过所述本地设备在无线网络中广播服务宣告,该服务宣告包括标识要从所述本地设备宣告的一个或更多个服务的一个或更多个服务标识符。
14.一种便携式设备,包括:
无线收发器;
监测器,耦接至该无线收发器以确定该便携式设备的操作条件;以及
服务发现单元,耦接至该监测器和该无线收发器以基于该操作条件来动态地调节发现周期,其中,所述便携式设备的发现周期包括所述便携式设备的接连服务发现尝试之间的间隔时间,其中所述便携式设备的发现周期和远程设备的宣告周期是相同预定基值的倍数,其中所述宣告周期独立于所述发现周期被调节,该服务发现单元配置成在尝试通过无线网络发现由远程设备宣告的服务时,根据所调节的发现周期在无线网络中监听。
15.根据权利要求14所述的便携式设备,还包括服务宣告单元,该服务宣告单元耦接至该监测器和该无线收发器以
基于所述操作条件动态地调节宣告周期;以及
根据所调节的宣告周期,在无线网络中广播服务宣告,该服务宣告包括标识要宣告的一个或更多个服务的一个或更多个服务标识符。
16.一种用于在对等式联网环境中宣告服务的设备,该设备包括:
用于监测耦接至无线网络的本地设备的操作条件的装置;
用于基于所述本地设备的操作条件动态地调节所述本地设备的宣告周期的装置,其中所述本地设备的宣告周期包括所述本地设备对宣告的接连发送之间的间隔时间,其中所述宣告周期独立于所述本地设备的可用性时间表被调节,其中所述可用性时间表是所述本地设备将是可用的并且在网络上监听来自远程设备的服务请求的一组时间;以及用于根据所调节的宣告周期,通过所述本地设备在无线网络中广播服务宣告的装置,该服务宣告包括用于标识要从所述本地设备宣告的一个或更多个服务的一个或更多个服务ID。
17.根据权利要求16所述的设备,其中,所述宣告周期基于本地设备的电池条件、本地设备处的用户行为、网络通信条件以及要宣告的服务的类型中的至少一个来动态地调节。
18.根据权利要求16所述的设备,还包括:
用于基于所述本地设备的操作条件动态地调节发现周期的装置;以及
用于在尝试通过无线网络从远程设备接收服务宣告时,根据所调节的发现周期,通过所述本地设备在无线网络中监听的装置。
19.根据权利要求18所述的设备,其中,所述发现周期基于本地设备的电池条件、本地设备处的用户行为、网络通信条件以及要发现的服务的类型中的至少一个来动态地调节。
20.根据权利要求18所述的设备,其中,所述宣告周期被计算为预定基值和第一调节因子的乘积,并且其中,所述宣告周期通过调节所述第一调节因子来动态地调节。
21.根据权利要求20所述的设备,其中,所述发现周期被计算为所述预定基值和第二调节因子的乘积,该第二调节因子不同于所述第一调节因子,并且其中,所述发现周期通过调节该第二调节因子来动态地调节。
22.一种用于在对等式联网环境中发现服务的设备,该设备包括:
用于确定耦接至无线网络的本地设备的操作条件的装置;
用于基于该本地设备的操作条件动态地调节发现周期的装置,其中所述本地设备的发现周期包括所述本地设备的接连服务发现尝试之间的间隔时间,其中所述本地设备的发现周期和远程设备的宣告周期是相同预定基值的倍数,其中所述宣告周期独立于所述发现周期被调节;以及
用于在尝试通过无线网络发现由远程设备宣告的服务时,根据所调节的发现周期,通过该本地设备在无线网络中监听的装置。
23.根据权利要求22所述的设备,还包括:
用于基于所述本地设备的操作条件动态地调节所述宣告周期的装置;以及用于根据所调节的宣告周期,通过所述本地设备在无线网络中广播服务宣告的装置,该服务宣告包括标识要从所述本地设备宣告的一个或更多个服务的一个或更多个服务标识符。

说明书全文

对等式联网环境中采用基于操作条件的动态宣告和发现周

期的有效服务宣告和发现

[0001] 相关申请
[0002] 本申请要求2009年12月23日提交的美国临时专利申请No.61/289,689的优先权,其全部内容通过引用合并于此。

技术领域

[0003] 本发明实施例总体上涉及对等式(peer-to-peer)联网领域;更特别地,涉及对等式联网环境中的服务宣告和服务发现。

背景技术

[0004] 诸如电子设备、计算系统、便携式设备和手持式设备之类的设备具有诸如游戏应用之类的软件应用。这些应用中的一些被共享,例如多个设备可以按协作方式参与游戏应用。应用的共享特征可以被称为服务。在设备能使用由另一设备提供的服务之前,参与设备(发现方)必须发现网络上可用的这种服务。服务由远程设备(即宣告者)在网络上进行宣告。
[0005] 各种发现技术可用于连接至网络或尝试连接至网络的电子设备。这些发现技术一般涉及使用网络协议来确定什么设备和/或服务可通过网络连接获得。这些发现技术对于许多情况而言是有用的。然而,在某些情况下,这些发现技术不是最佳的。
[0006] 通常,网络中的每个设备都配置成根据公知的扫描和宣告时间表,例如以100毫秒(ms)-800ms的周期范围,在网络中周期性地扫描和/或宣告服务。当在网络中有接近地定位的许多设备时,由于可能存在繁重的通信信道拥塞,因而这种扫描和/或宣告策略可能不是有效的,其导致设备花费长时段来发现另一设备的服务和/或宣告服务。在这种情况下,需要花费额外时间扫描以确保可靠的服务发现。花费额外时间扫描消耗更大量的电,电力在便携式电子设备上是重要资源。此外,频繁发现扫描和宣告发送本身会消耗更多电力,电力对于便携式设备来说是重要的。缺乏有效的方式来优化便携式设备的服务发现和/或宣告。

发明内容

[0007] 根据一些实施例,利用服务发现和宣告机制来使设备(例如,诸如笔记本计算机、蜂窝/智能电话、媒体播放器、个人数字助理(PDA)或者它们的组合之类的便携式电子设备)能够在无线网络(例如,IEEE802.11或WiFi、诸如蓝牙兼容网络之类的个人区域网络)中有效地发现和/或宣告一个或多个服务。
[0008] 在一实施例中,当第一设备在无线网络中宣告一个或多个服务时,第一设备在网络中广播或多播宣告消息(亦简称为宣告),其中宣告包括一个或多个服务标识符(例如,哈希值),每个服务标识符都标识潜在可从第一设备获得的特定服务。宣告还包括第一设备的有关可用性的信息,诸如可用性时间表,可用期间第一设备将在网络上监听有关宣告的任何服务请求。之后,第一设备可以根据可用性信息(例如,可用性时间表),断开或缩减到第一设备的至少一部分的电力,例如射频(RF)部分(例如,收发器、天线),直到随后的特定时段为止。备选地,第一设备可以在该时段期间执行某些其它任务。
[0009] 当网络上的第二设备接收到宣告时,第二设备可以基于宣告中的服务标识符来确定它是否有兴趣获得第一设备所宣告的服务中的一个或多个。如果有兴趣,则第二设备可以利用第一设备的可用性信息向第一设备发送服务请求,其中服务请求包括一个或多个所选服务的服务标识符。例如,第二设备可以根据第一设备的可用性时间表来发送服务请求(例如,在第一设备正在监听的第一设备可用窗口期间)。响应于服务请求,第一设备可以向第二设备发送有关所请求的服务的更详细信息。
[0010] 根据另一实施例,网络中的每个设备都配制成监测各自设备的操作环境以及网络中的网络通信。基于监测结果,设备可以动态地调节其宣告周期和/或服务发现周期。例如,如果设备具有很少剩余电池寿命,则设备可以缩减服务宣告和服务发现的频率(例如,增大服务宣告和/或发现周期)。作为另一示例,如果确定通信信道拥挤度较高,例如因网络中的大量设备而引起,则设备也可以相应地调节服务宣告和/或发现周期(例如,增大服务宣告和/或发现周期以避免网络的拥挤崩溃)。
[0011] 在一个实施例中,服务宣告周期和/或服务发现周期基于预定基值的倍数来计算。然而,服务发现周期配制成不是服务宣告周期的倍数,反之亦然。结果,宣告者和/或发现方可以独立地计算它们自身的服务宣告周期和/服务发现周期;但是来自宣告者的宣告仍将在取决于服务宣告周期和/或服务发现周期的具体计算的时段上被发现方捕获。
[0012] 根据另一实施例,能够宣告一个或多个服务的多个设备可以彼此协调以选择一个或多个设备代表其它设备宣告服务。这种设备充当群宣告者(group advertiser)。设备可以根据由各个设备的监测逻辑器所监测的多种参数(例如,电池条件等)被选择为群宣告者。设备可以操作为宣告其自身服务的宣告者和/或宣告网络中的其它设备的服务的群宣告者。设备还可以操作为宣告其自身服务的宣告者以及其自身的服务中的一个或更多被另一设备宣告的被宣告者(advertisee)。设备还可以仅操作为依靠另一设备宣告其服务的被宣告者。
[0013] 本发明的其它特征将从附图以及下面的详细描述变得显然。

附图说明

[0014] 本发明的实施例在附图的图片中以示例而非限制的方式示出,附图中相似的附图标记指示相似的部件。
[0015] 图1是可以利用本发明一实施例实现的网络配置。
[0016] 图2是示出根据本发明一实施例的电子设备的示例的框图
[0017] 图3是示出根据一实施例的服务宣告交易流程的示例的流程图
[0018] 图4是根据一实施例的服务宣告的时间线图。
[0019] 图5是示出根据一实施例的宣告消息的示例的框图。
[0020] 图6是示出根据一实施例的宣告服务的方法的示例的流程图。
[0021] 图7是示出根据一实施例的发现服务的方法的示例的流程图。
[0022] 图8是示出根据本发明另一实施例的电子设备的框图。
[0023] 图9是示出根据一实施例的宣告周期和发现周期的时间线图。
[0024] 图10是示出根据本发明另一实施例的宣告服务的方法的流程图。
[0025] 图11是示出根据本发明另一实施例的发现服务的方法的流程图。
[0026] 图12是示出根据本发明另一实施例的电子设备的框图。
[0027] 图13A、13B和13C是示出根据本发明一些实施例设备在宣告操作状态之间转变的示例的转变图。
[0028] 图14是示出根据本发明一实施例的群宣告消息的框图。
[0029] 图15是示出设备请求另一设备充当群宣告者并代表其宣告服务的方法的流程图。
[0030] 图16是示出设备成为群宣告者并代表另一设备开始宣告服务的方法的流程图。
[0031] 图17是示出根据本发明一实施例的用于选择群宣告者的方法的流程图。
[0032] 图18示出可与本发明一实施例一起使用的数据处理系统的示例。

具体实施方式

[0033] 参照下面论述的细节,将对本发明的各种实施例和方面进行描述,并且附图将示出各种实施例。下面的描述和附图是本发明的示范,不应理解为对本发明的限制。描述了许多特定细节以提供对本发明各种实施例的透彻理解。然而,在某些情况下,未描述公知或常规细节,以便提供对本发明实施例的简洁论述。
[0034] 说明书中对“一个实施例”或“一实施例”的提及指的是结合该实施例描述的特定特征、结构或特性可以包括在本发明的至少一个实施例中。本说明书中不同地方出现的短语“在一个实施例中”不一定全指同一实施例。下面在附图中描绘的过程通过包括硬件(例如电路专用逻辑器等)、软件或两者的组合的处理逻辑来执行。尽管这些处理在下面按照某些顺序操作来描述,但应当理解,所述操作中的一些可以按不同顺序执行。此外,一些操作可以并行而非顺序地执行。
[0035] 定义
[0036] ·宣告者–宣告其自身的一个或多个服务的设备。
[0037] ·群宣告者-代表一个或多个其它设备宣告一个或多个服务的设备。群宣告者还宣告它们自身的服务,如果它们有的话。
[0038] ·被宣告者-其服务通过网络上另一设备正在被宣告(即,通过群宣告者,不包括自身)的设备。
[0039] ·发现方-尝试发现网络上的一个或多个服务的设备。
[0040] ·可用窗口-设备可用并正在网络上监听,并且能够响应服务发现请求、宣告请求和其它请求的时段。
[0041] ·可用性时间表-设备可用于响应服务请求的时间。包括在宣告消息中,其指示设备的可用窗口的时间和宽度。
[0042] ·宣告/宣告消息-由宣告者周期性发送的广播/多播,包含有关其具有的可用服务的信息。
[0043] ·群宣告/群宣告消息-由群宣告者周期性发送的广播/多播帧,包含有关其自身服务(若有的话)以及在网络上的其它设备上可获得的服务的信息。
[0044] ·宣告请求/宣告请求消息-由一设备向另一设备发送的消息,请求接收方充当群宣告者并代表发送方宣告服务。
[0045] ·宣告响应/宣告响应消息-响应于宣告请求消息由一设备向另一设备发送的消息,表明发送方是否承兑初始请求消息并且充当群宣告者。
[0046] ·服务请求/服务请求消息-由发现方向宣告者发送的消息,请求有关匹配所提供ID的服务的详细信息。
[0047] ·服务响应/服务响应消息-由宣告者/群宣告者向发现方发送的消息,提供有关一个或多个服务的详细信息。
[0048] ·宣告周期-由宣告者接连发送的宣告帧之间的时间间隔。
[0049] ·发现周期-发现方的接连发现尝试之间的时间间隔。
[0050] 图1是可以利用本发明一实施例实现的网络配置。参照图1,网络配置100包括通信耦接至网络104的多个电子设备101-103,网络104可以是无线网络,诸如IEEE 802.11(例如WiFi)或个人区域网(PAN)兼容网络(例如蓝牙)。设备101-103中的任一个可以是任何便携式设备,举例来说,诸如便携式计算设备(例如,诸如加利福尼亚州库珀蒂诺的苹果TM TM公司的MacBook 之类的笔记本/上网本计算机)、平板PC(例如苹果公司的iPad )、蜂窝TM TM
/智能电话(例如苹果公司的iPhone )、媒体播放器(例如苹果公司的iPod )、PDA、复印机/打印机/扫描仪/调制解调器/传真设备、或者它们的组合。备选地,设备101-103中的任一个可以是具有能够在无线网络中与另一设备无线通信的无线通信接口(例如内建或插入式收发器或RF前端)的桌面计算机或其它非便携设备。
[0051] 设备101-103中的每个都包括服务宣告逻辑器(例如,分别为逻辑器105-107)和服务发现逻辑器(例如,分别为逻辑器108-110),其可以按硬件、固件、软件或者它们的组合来实现。服务宣告逻辑器负责在网络104中宣告本地设备的一个或多个服务,而服务发现逻辑器负责在网络104中发现从一个或多个远程设备可获得的一个或多个服务。设备101-103可以利用各种无线通信协议(例如,兼容WiFi或蓝牙的协议)在网络104中宣告和/或发现一个或多个服务。涉及利用个人区域网络协议发现服务的进一步详细信息可见于
2009年3月16日提交的题为“Service Discovery Functionality Utilizing Personal Area Network Protocols”的共同未决美国专利申请No.12/405,130中,其全部内容通过引用而合并于此。
[0052] 从一个设备(也称为宣告者)宣告服务的目的是通知网络中的其它设备,或者使网络中的其它设备(也称为发现方)能够发现,特定服务潜在地可从该特定设备获得。还应注意,贯穿本申请,本申请的实施例将在无线联网环境中描述;然而,将意识到,这些实施例也可以在有线联网环境中应用。
[0053] 在一个实施例中,当第一设备(在该示例中,设备101)在无线网络中宣告一个或多个可用服务时,设备101的服务宣告逻辑器105在网络104中广播或多播宣告消息(也简称为宣告或服务宣告),其中宣告包括一个或多个服务标识符(ID),每个都标识潜在可从设备101获得的特定服务。服务标识符可用利用各种哈希算法(例如SHA-1或MD5)构造的哈希值来表示。哈希值可以基于表示特定服务的签名获特定特征的数据来生成。当设备101在网络104中监听来自其它设备(例如设备102-103)的对宣告的任何服务询问时,宣告还包括设备101用来设置其可用窗口的可用性信息(诸如设备101的可用性时间表)。之后,设备101可以根据与设备101相关联的可用性信息,关闭或缩减设备101的特定部分(举例来说,诸如至少设备101的射频(RF)部分(例如,收发器、天线))的电力,直到后面的特定时段为止。备选地,设备101可以接下来执行其它任务,而不需要在网络104中发送或监听。
[0054] 当网络中的第二设备(在该示例中,设备102)基于宣告中的服务标识符接收来自设备101的宣告广播时,设备102可以确定其是否有兴趣获得所宣告的来自设备101的服务的进一步详细信息。如果有,则根据一个实施例,设备102可以根据设备101的可用性时间表向设备101发送服务请求(例如,在设备101的可用窗口之一期间,在可用窗口时设备101在监听),该服务请求包括一个或多个所选服务的一个或多个服务标识符。响应于该服务请求,设备101可以发送(例如设备102)所请求的服务的更详细信息。即,服务ID可以仅表示潜在地可从宣告者获得的服务。为了确认这种服务,发现方必须通过服务请求和响应协议从宣告者获取进一步详细信息。
[0055] 根据另一实施例,网络104中的设备101-103中的每个都配置成监测各自设备的操作环境以及网络中的网络通信。基于监测结果,设备可以动态地调节其服务宣告周期(也简称为宣告周期)和/或服务发现周期(也简称为发现周期)。例如,如果设备101的电池消耗到低平,则设备101可以缩减服务宣告和服务发现的发送和监听频率(例如,增大服务宣告周期和/或发现周期)。另一示例,如果确定通信信道拥挤度较高,例如因网络中的大量设备造成,则设备101也可相应地调节服务宣告周期和/或发现周期(例如,增大宣告周期和/或发现周期)。
[0056] 在一个实施例中,服务宣告周期和/或服务发现周期基于预定基值的一倍或更多倍来计算。然而,服务发现周期可以不配置为服务宣告周期的倍数,反之亦然。结果,宣告者和发现方可以独立地计算它们自己的服务宣告周期和/服务发现周期;但来自宣告者(例如设备101)的宣告在一时段上仍将能被发现方(例如设备102)捕获。另外,因为服务宣告周期不是服务发现周期的倍数(反之亦然)的事实,网络中的每个设备都可以基于如上所述其自身察觉的网络条件,在建立它们之间的任何通信之前适应性改变它们自己的周期。
[0057] 根据另一实施例,设备101-103可以彼此协调以选择一个或多个设备来代表其它设备宣告服务。例如,设备101可以根据由设备的监测逻辑器所监测的多种参数(例如电池条件等)而被选择为群宣告者,用于为设备102和/或设备103宣告服务。设备101可以操作为宣告其自身的服务和网络中的设备102-103的服务的群宣告者。设备101还可以操作为用于宣告其自身的服务的宣告者,以及有一个或多个服务被另一设备(例如,设备102-103)宣告的被宣告者。设备101还可以操作为仅依靠另一设备(例如,设备102-103)宣告其服务的被宣告者。
[0058] 注意,贯穿本申请,术语“服务”可以是宽泛范围的服务,包括但不限于打印服务、局域网(LAN)接入服务、广域网(WAN)接入服务、蜂窝电话服务、数据存储服务和/或应用服务(例如,媒体回放、游戏、协作文档创建服务、记录服务等)。
[0059] 有效服务宣告和/或发现机制
[0060] 图2是示出根据本发明一实施例的电子设备的示例的框图。例如,电子设备200可以实现为图1的设备101-103中的任一个的一部分。参照图2,设备200包括但不限于服务宣告单元201、服务发现单元202、用户接口单元203、服务管理单元204、存储设备205、一个或多个处理器或处理器核心206、网络接口单元207以及存储器208,它们经总线、互连或线网209彼此耦接。
[0061] 处理器206可以是任何种类的微处理器,其可以是单一处理器、多个处理器或多个处理器核心。网络接口单元207可以是RF前端部件,包括但不限于无线收发器和天线或调制解调器等。备选地,网络接口单元207也可以包括有线通信接口,诸如以太网端口、TM通用串行总线(USB)或Firewire 端口。存储器208可以是任何种类的随机存取存储器(RAM),其典型地实现为易失性存储器。用户接口单元203可以包括显示设备、输入设备(例如键盘触摸板触摸屏、手写笔设备或它们的组合)以及音频和/或视频接口等。
[0062] 服务宣告单元201负责宣告可用的或设备200提供的一个或多个服务。例如,服务宣告单元201可以实现为图1的服务宣告逻辑器105-107中的任一个的一部分。在一个实施例中,服务宣告单元201配置成根据宣告时间表(例如,宣告周期),通过在网络(例如,图1的网络104)中广播或多播宣告,经由网络接口单元207宣告一个或多个服务。宣告可以包括标识潜在地由设备200提供的服务的一个或多个服务标识符(ID)。服务标识符可以由服务管理器204生成,并且存储在存储设备205中作为服务标识符210的一部分。在一个实施例中,服务标识符包括由服务管理器204根据多种哈希算法(举例来说,诸如SHA-1或MD5算法)所生成的哈希值。
[0063] 备选地,服务标识符可以由位掩码(bitmask)的特定位来表示,位掩码包括具有预定逻辑值的一个或多个位,每个都表示一种特定服务。例如,位掩码的特定位的位置被用于指示潜在地可从宣告者获得的特定服务,其中位掩码经由宣告在网络中广播,类似于2010年1月14日提交的题为“Efficient Service Discovery for Peer-to-Peer Networking Device”的共同未决美国专利申请No.12/687,814中公开的技术,其全部内容通过引用合并于此。
[0064] 再次地,服务ID可以仅指示潜在可从宣告者获得的服务。另外,由于可能会有多个服务哈希化成相同值的冲突,因而哈希值(服务ID)可能会表示多个服务。为了确认这种服务,发现方必须通过服务请求和响应协议从宣告者获取进一步的详细信息。通过广播或多播表示潜在服务的哈希值来宣告这样的潜在服务,并且仅响应于针对这种服务的特定请求来提供有关该服务的详细信息,大大减小了服务宣告和发现所涉及的网络通信。
[0065] 服务管理器204还负责维护或管理与从设备200可获得的服务相关联的服务信息211,服务信息211可以存储在存储设备205中。存储设备205可以实现为任何种类的存储设备或盘,并且经由任何种类的文件系统存取。服务管理器204还可以生成并维护网络中可获得的服务的列表,包括由设备200和由网络中的其它设备宣告的服务。服务列表可以响应于由服务发现单元202执行的服务发现操作的结果而周期性地更新。
[0066] 类似地,服务发现单元202负责发现从网络可获得的一个或多个服务,该服务可以被网络中的一个或多个其它设备宣告。例如,服务发现单元202可以实现为图1的服务发现逻辑器108-110中的任一个的一部分。响应于来自远程设备的宣告,服务发现单元202配置成经由网络接口单元207与远程设备通信以获取服务的进一步详细信息,并且可以生成或更新从网络可获取的服务的列表,列表可以存储为服务信息211的一部分。
[0067] 图3是示出根据一个实施例的服务宣告交易流程的示例的流程图。出于示范目的,假定本地设备301(作为宣告者)和远程设备302(作为发现方)都具有与图2的设备200相似或相同的基础结构。参照图2和图3,根据一个实施例,在经由交易303接收来自设备301的服务宣告单元的宣告之后,设备302的服务发现单元比较宣告请求中的服务ID与经由操作304本地生成的服务ID。如果设备302对宣告的一个或多个服务感兴趣,则设备302的服务发现单元经由交易305向设备301发送服务请求,包括标识设备302感兴趣的一个或多个服务的一个或多个服务标识符。响应于服务请求,设备301的服务宣告单元向设备302发送服务响应,包括经由交易306请求的一个或多个服务的详细信息。注意,服务标识符可以仅指示潜在可从设备301获取的服务。为了获得潜在服务的详细信息,发现方必须通过基于服务标识符发送服务请求来获取详细信息。然后设备302经由交易307比较所返回的服务信息与期望服务的本地列表。如果任何服务匹配,则设备301-302可以经由交易308参与服务(例如,一起玩游戏)。
[0068] 根据一个实施例,返回参照图2,当宣告服务时,由服务宣告单元201生成的宣告还包括宣告者(在这个示例中,设备200)的可用性时间表。在一个实施例中,可用性时间表包括从宣告被发送的时间起下一个可用窗口的起点和窗口的长度(例如,可用窗口的持续时间)。即,宣告者可以仅在特定时段期间在网络中监听。当发现方接收宣告时,发现方可以根据宣告者的可用性时间表来给发送时隙排期,在发送时隙期间,发现方在宣告者的可用窗口之一期间向宣告者发送服务请求。另外的话,宣告者和发现方中的任一个或两者都可以例如通过各自设备的电源管理单元(未示出)来断开或减小到各自设备的至少一部分(例如,无线收发器或RF前端)的电力。注意,如图2所示的部件中的一些或全部可以按硬件、固件、软件或它们的组合来实现。
[0069] 图4是根据一个实施例的服务宣告的时间线图。参照图4,当宣告者(例如,设备200)宣告服务时,在一个实施例中,宣告者可以在时间401发送宣告,宣告包括可用性时间表,可用性时间表具有直到下一个可用窗口开始为止的间隔402和下一个可用窗口的持续时间403。即,在按时间401发送宣告之后,宣告者可以断开或缩减到设备的至少一部分(举例来说,诸如设备的RF前端)的电力。然后宣告者可以在持续时间403的下一个可用窗口处重新接通电力,在此期间发现方可以与宣告者通信,以获取特定服务或多个服务的进一步详细信息。结果,可以减小宣告者的功耗。在可用窗口期间,宣告者可以接收来自发现方的服务请求,并且以具有所请求的服务或多个服务的详细信息的服务响应来进行应答。
[0070] 类似地,在发现方接收宣告之后,发现方也可以断开或减小到设备的至少一部分的电力,并根据宣告者的下一个可用窗口苏醒以发送服务请求到宣告者。结果,也可以减小发现方的功耗。
[0071] 图5是示出根据一个实施例的宣告消息的示例的框图。参照图5,宣告500包括但不限于标头(header)501、可用窗口起点502、可用窗口长度503、服务ID数量504以及一个或多个服务ID 505。在一个实施例中,服务ID用哈希值表示,哈希值表示要宣告的可能服务。一般而言,由于可能会有多个服务哈希化成相同值的冲突,因而哈希值(服务ID)可能会表示多个服务。注意,宣告的格式和字段布置仅出于示范目的而示出;其它格式或字段布置也可以实现。
[0072] 图6是示出根据一个实施例的宣告服务的方法的示例的流程图。注意,方法600可以通过可以包括硬件、固件、软件或它们的组合的处理逻辑器来执行。例如,方法600可以通过图2的服务宣告单元201来执行。参照图6,在框601,在本地设备(例如,宣告者)内构建宣告,宣告包括下一个可用窗口开始周期、可用窗口长度、服务ID(例如,哈希值)数量以及实际服务ID。每个服务ID都表示由本地设备潜在提供的服务。在框602,宣告通过本地设备在无线网络中广播或多播。
[0073] 在框603,本地设备可以可选地断开或减小到设备的至少一部分的电力,并在框604,在根据宣告请求中指定的下一个可用窗口的时间苏醒。在框605,在可用窗口期间,本地设备监听和接收响应于宣告来自网络上的远程设备的服务请求。服务请求包括表示远程设备所查询的一个或多个服务的一个或多个服务ID。该一个或多个服务ID可以选自先前从本地设备广播或多播的宣告中给出的那些服务ID。响应于服务请求,在框606,本地设备向远程设备发送服务响应,包括服务请求中所请求的服务的详细信息。
[0074] 图7是示出根据一实施例的发现服务的方法的示例的流程图。注意,方法700可以通过可以包括硬件、固件、软件或它们的组合的处理逻辑器来执行。例如,方法700可以通过图2的服务发现单元202来执行。参照图7,在框701,本地设备(例如,发现方)接收来自网络上的远程设备的宣告。响应于宣告,在框702,本地设备从宣告提取下一个可用窗口起点、可用窗口长度以及标识由远程设备宣告的一个或多个服务的一个或多个服务ID(例如,哈希值)。在框703,本地设备可以可选地断开或减小到设备的至少一部分的电力,并且根据宣告中指定的下一个可用窗口在特定时间苏醒。在框704,本地设备向远程设备发送服务请求,服务请求包括标识要查询的一个或多个服务的一个或多个服务ID(例如,哈希值)。在框705,在远程设备的可用窗口期间,从远程设备接收服务响应,服务响应包括所查询的服务的更多详细信息。
[0075] 采用动态宣告/发现周期的服务宣告/发现
[0076] 根据一些实施例,宣告周期和发现周期可以基于在时间点的操作条件和/或用户行为来动态地调节。根据一个实施例,网络中的每个设备配置成监测各自设备的操作环境以及网络中的网络通信。基于监测结果,设备可以动态地调节其宣告周期和/或服务发现周期。例如,如果设备的电池消耗到低水平,则设备可以减小服务宣告和服务发现的频率(例如,增大服务宣告和/或发现周期)。另一示例,如果确定通信信道拥挤度较高,例如因网络中的大量设备而造成,则设备也可相应地调节服务宣告和/或发现周期(例如,增大服务宣告和/或发现周期以避免网络的拥挤崩溃)。
[0077] 在一个实施例中,服务宣告周期和/或服务发现周期基于预定基值的倍数来计算。然而,服务发现周期可以不是服务宣告周期的倍数,反之亦然。结果,宣告者和发现方可以独立地计算它们自己的服务宣告周期和/服务发现周期;然而,宣告者的宣告请求在依赖于服务宣告周期和/或服务发现周期的具体计算的时段上仍能够被发现方捕获。
[0078] 图8是示出根据本发明另一实施例的电子设备的框图。例如,设备800可以实现为图1的设备101-103中的任一个。参照图8,与图2的设备200相似,设备800包括但不限于服务宣告单元201、服务发现单元202、用户接口单元203、服务管理单元204、用于存储服务标识符210和服务信息211的存储设备205、一个或多个处理器或处理器核心206、网络接口单元207、存储器208以及用户接口单元203,它们经由总线、互连或线网209彼此耦接。这些部件具有与图2所示那些部件相同或相似的功能,且因此某些附图标记从图2得到保留。
[0079] 另外,根据一实施例,设备800包括操作环境监测单元801以及宣告和/或发现周期或时间表计算器802。在一个实施例中,操作环境监测单元801配置成监测设备800的操作环境以及网络中的网络通信。基于监测结果,宣告/发现周期计算器802配置成动态地调节宣告周期和/或服务发现周期。例如,如果设备800具有更少的剩余电池寿命(通过监测单元801监测),则宣告和/或发现周期或时间表计算器802可以减小服务宣告和服务发现的频率(例如,增大服务宣告和/或发现周期)。另一示例,如果确定通信信道拥挤度较高,例如因网络中或预定周边内的大量设备造成,则宣告和/或发现周期计算器802也可以相应地调节服务宣告和/或发现周期。此外,宣告和/或发现周期还可以基于要共享的应用的类型和用户行为(例如,活跃用户)等来调节。
[0080] 在一个实施例中,服务宣告周期和/或服务发现周期基于预定基值的一倍或更多倍来计算。然而,服务发现周期可以不是服务宣告周期的一倍或更多倍,反之亦然。结果,宣告者和发现方可以基于本地环境独立地计算和/或调节宣告周期和/或发现周期。另外,因为服务宣告周期不是服务发现周期的倍数(反之亦然)的事实,所以网络中的每个设备都可以基于其自身察觉的上述网络条件,在不需要建立它们之间的任何通信的情况下适应性改变它们自己的周期。
[0081] 图9是示出根据一实施例的宣告周期和发现周期的时间线图。参照图9,时间线900表示宣告周期,时间线950表示发现周期。出于示范目的,宣告周期基于预定基值的三倍来计算,而发现周期基于预定基值的4倍来计算。如图9所示,尽管与发现周期相比,宣告消息按不同时间和不同速率来广播,但因为宣告周期和发现周期二者都基于协商一致的预定基值的倍数来计算,所以宣告发送和发现监听最终在时隙901-903交叠。
[0082] 结果,宣告者和/或发现方可以基于个体设备的操作条件独立地调节调节因子(adjustment factor)。例如,如果确定设备的电池在低水平,则可以增大调节因子(N),以放慢宣告和/或发现活动,这又进一步减小了功耗和信道使用。然而,增大宣告周期和/或发现周期还可以增大捕捉特定宣告消息的探测时间,这导致更低性能。
[0083] 根据另一实施例,发现周期计算为停留时间(dwell time)(例如,设备监听宣告消息的时段)的倍数,但不是宣告周期的倍数。在一特定实施例中,宣告周期配置成预定基值(例如,100ms)*2^N的倍数,其中N可以是任何整数;发现周期配置成预定基值*3^M或5^M,其中M可以是任何整数;停留时间配置成预定基值(例如,100ms)*(1+10%)。引起低效率的停留时间添加10%确保了停留时间严格大于预定基值。
[0084] 在下表中,括号中的百分数表示对于这些特定宣告/发现周期至少设备的RF前端必须运行的时间百分数。宣告数是基于对宣告消息发送的2ms的大约估计:唤醒无线电、争取信道以及发送数百微秒的帧。发现数是基于100ms发现监听停留时间。表的主要部分中的数表示如果宣告者正在利用相关列头部中的宣告周期且发现方正在利用相关行头部中的发现周期,则在最差情况下将花费多长时间来发现设备。所有时间以秒计。
[0085]
[0086] 处于静态环境中或希望剧烈缩减电池使用的设备可以独立地增大其发现周期和宣告周期,例如分别24.3秒和200ms。在这个示例中,基于上表,这确保了以增加探测时间为代价(48.6秒钟,以探测可选地实施相同值的另一设备),这种设备的广播时间(例如,无线电正在监听并处于全功率期间的时间)在1.5%以下。“静态环境”指的是例如用户长时间停留在家,因此不会遇到无线操作环境改变的情况。类似地,具有大电池或处于动态环境中(或探测到正在移动)的设备也可以独立地减小其发现周期,例如减小至2.5秒,这可以导致快速发现时间。这将是具有AC电源的插接设备的情况。探测到它们处于拥挤环境中的设备(例如,如果它们探测到15个以上的其它宣告者或接入点(AP))可以独立地增大它们的宣告周期,这增加了探测时间,但缩减了网络拥塞。对于用12.5秒的周期进行发现的设备来说,增大宣告周期例如至400ms可以使探测时间处于50秒的范围,在该情况下广播时间为1.3%。这将是用户可以坐在会议室中或具有许多隔位的开放空间工作环境中的情况。
[0087] 检测到用户正在移动的事实可以通过记录横跨多个发现周期存在具有适度高接收信号强度指示符(RSSI)的若干接入点来完成。这需要设备将发现周期期间检测到的某些最高RSSI AP的基本服务设置标识符(BSSID)存储于高速缓存。如果未检测到高RSSI AP,则这意味着用户在快速移动或者处于无WiFi环境中。宣告周期和发现周期应调低以减小探测时间。如果这些高RSSI AP中的一个或多个被横跨若干发现周期恒定地检测到(例如,关联或不关联的,且不漫游),则用户可能坐在家里或处于已知位置。发现周期可以设置成200ms,宣告周期可以增大至大值(例如,24.3秒或62.5秒)。该用户不会花长时间来探测其它设备,但将更不容易被移动设备探测到。如果环境拥堵,则必须进行调节以缩减潜在拥堵,宣告周期需要增大。结果,设备可以通过发现更频繁(例如,消耗更多功率)或等候更久来探测彼此。
[0088] 图10是示出根据本发明另一实施例的宣告服务的方法的流程图。注意,方法1000可以通过可以包括硬件、固件、软件或它们的组合的处理逻辑器来执行。例如,方法1000可以通过图8的服务宣告单元201来执行。参照图10,在框1001,当前操作条件被本地设备(例如,宣告者)监测,包括电池状态、网络通信拥挤度、用户行为以及要宣告的服务类型等。基于操作条件,在框1002,宣告周期被相应地动态调节。在一个实施例中,宣告周期被配置为如上所述预定基值的倍数。在框1003,根据所调节的宣告周期在网络中广播或多播宣告,包括利用上述服务宣告和发现技术来宣告的一个或多个服务。在框1004,响应于宣告请求从远程设备接收服务请求,包括标识要查询的服务的服务标识符或指示符。响应于服务请求,在框1005,所请求的服务的详细信息经服务响应提供到网络上的远程设备。
[0089] 图11是示出根据本发明另一实施例的发现服务的方法的流程图。注意,方法1100可以通过可以包括硬件、固件、软件或它们的组合的处理逻辑器来执行。例如,方法1100可以通过图8的服务发现单元202来执行。参照图11,在框1101,当前操作条件被本地设备(例如,发现方)监测,包括电池状态、网络通信拥挤度、用户行为以及要宣告的服务类型等。基于操作条件,在框1102,发现周期被相应地动态调节。在一个实施例中,发现周期配置成如上所述预定基值的倍数。在框1103,处理逻辑器根据所调节的发现周期周期性地监听网络,以尝试发现网络中可获得的服务。响应于发现期间从远程设备接收到的宣告,在框1104,将服务请求发送至远程设备以查询在宣告中所宣告的服务。在框1105,响应于服务请求,从远程设备接收服务响应,包括所请求的服务或多个服务的特定详细信息。
[0090] 协调服务宣告实施例
[0091] 根据一些实施例,能够宣告一个或多个服务的多个设备可以彼此协调,以选择一个或多个设备代表其它设备宣告服务。设备可以根据由该设备的监测逻辑器所监测的多种参数(例如,电池条件等)而被选择为群宣告者。设备可以操作为宣告其自身服务和网络中其它设备的服务的群宣告者。设备还可以操作为宣告其自身服务的宣告者以及有一个或多个其服务被另一设备宣告的被宣告者。设备可以仅操作为依靠另一设备宣告其服务的被宣告者。
[0092] 图12是示出根据本发明另一实施例的电子设备的框图。例如,设备1200可以实现为图1的设备101-103中的任一个。参照图12,与图2的设备200或图8的设备800相似,设备1200包括但不限于服务宣告单元201、服务发现单元202、用户接口单元203、服务管理单元204、用于存储服务标识符210和服务信息211的存储设备205、一个或多个处理器或处理器核心206、网络接口单元207,存储器208和操作环境监测单元801,它们经由总线、互连或线网209彼此耦接。这些部件可以具有与图2和8所示的那些部件相同或相似的功能,因此,出于示范目的,某些附图标记从图2和8得到保留。
[0093] 另外,根据一实施例,设备1200还包括宣告者选择单元1201,宣告者选择单元1201配置成与网络附近范围内的其它设备协调以选择一个或多个设备作为代表其它设备宣告服务的群宣告者。例如,宣告者选择单元1201与网络的预定附近范围内的其它设备的宣告者选择单元通信以选择或协商它们中的一个或多个设备作为群宣告者。该一个或多个设备可以基于可以通过监测单元801监测或收集的一个或多个参数或属性(举例来说,诸如操作条件和/或用户行为)来确定和选择。
[0094] 例如,当宣告者选择单元1201确定一远程设备应被选择为群宣告者时,宣告者选择单元1201可以指示服务宣告单元201向所选择的远程设备发送服务宣告请求消息(也简称为宣告请求),从而该远程设备可以为设备1200宣告服务。与在网络中广播或多播的宣告不同,宣告请求可以是向特定远程设备请求宣告的单播(例如点对点)消息。备选地,宣告请求可以在网络中多播或广播,请求一个或多个远程宣告者。在一个实施例中,向远程宣告者发送的服务宣告请求包括:设备1200的地址(例如,设备1200的媒体接入地址或MAC)、服务标识符的数量、实际服务标识符(例如,哈希值)以及诸如设备1200的可用性时间表之类的可用性信息。结果,当服务通过远程群宣告者宣告时,远程发现方可以直接与设备1200通信以查询通过远程群宣告者宣告的一个或多个服务,而不必联系远程群宣告者。设备1200可以继续宣告其自身服务,而远程群宣告者代表设备1200宣告这些服务中的至少一些。
[0095] 备选地,一旦远程宣告者被选择来为设备1200宣告服务,则宣告者选择单元1201可以指示服务宣告单元201停止宣告其自身服务,并将设备1200转变成被宣告者。此外,宣告者选择单元1201可以仅接收来自远程设备的服务宣告请求,并指示服务宣告单元201代表远程设备执行宣告,以及宣告其自身服务。在这种情况下,宣告请求是单播或多播消息(例如,具体指向一个或多个特定设备),而非广播消息(例如,发送至网络中的所有设备)。
[0096] 本申请的实施例可以应用于许多设备处于彼此范围中并进行周围探测(例如,处于拥挤的会议室中)的情形。在这种情况下,通过使设备共享它们的宣告,其中仅几个设备为所有其它设备进行宣告,来实现可缩放性(scalability)。当两个设备彼此看到(经由上述周围探测)而不管它们可以共享公共服务标识符(例如,哈希值)的事实时,设备之一可以例如通过向另一设备发送定向宣告请求帧,来请求另一设备承担其自身的宣告负担。宣告请求帧不需被应答;只要观察到被请求设备承担请求设备的宣告负担,则对于请求设备而言被请求设备被视为群宣告者,于是请求设备被视为被宣告者。
[0097] 在一个实施例中,设备可以按四种状态之一操作:
[0098] ·状态0:宣告者(例如,仅为自己进行宣告)。
[0099] ·状态1:群宣告者(例如,为自身进行宣告且为某些其它对等者进行宣告)[0100] ·状态2:宣告者和被宣告者(例如,被至少一个其它对等者宣告,为自己进行宣告,且不为其它对等者进行宣告)
[0101] ·状态3:被宣告者(例如,被某些其它对等者宣告)
[0102] 设备最初以状态0开始,其中它们仅宣告它们自身的服务。这种状态是默认状态,并如前面的章节中描述的那样共享相同的基本行为。经由参与协作宣告算法,处于状态0的设备可以提升至额外的协作宣告状态1-3之一。
[0103] 该算法仅使用一个帧(即,宣告请求),其是定向帧并可以通过处于状态0、状态2或状态3的设备向处于状态0、状态1或状态2的设备发送。每当多个设备处于参与周围探测的大量其它设备的范围中时,它们就可以进入协作宣告。在一个实施例中,实现协作宣告的每个设备都尝试发现能够承载其自身的宣告负担的指定数量的宣告者,举例来说,诸如两个或三个宣告者。当被宣告者被足够对等者宣告时,其可以停止发送其自身的宣告帧,且然后仅可通过其远程群宣告者来发现。对宣告的请求可以对固定时段(例如,若干分钟)有效,然后可需要更新。
[0104] 根据一实施例,协作宣告仅发生在两个设备能够彼此看到时,即它们都在状态0、状态1或状态2下操作。在一个实施例中,设备可以基于下列考虑中的至少一些而被选择为用于另一设备的群宣告者:
[0105] 1、如果设备没有为超过预定数量的对等者(例如,16个对等者)进行宣告,则该设备可以被选择为群宣告者;
[0106] 2、如果设备当前为最多数量的其它对等者进行宣告,则该设备可以被选择为群宣告者;
[0107] 3、如果设备当前被最小数量的对等者宣告,则该设备可以被选择为群宣告者;
[0108] 4a、如果设备总计宣告最多数量的服务,则该设备可以被选择为群宣告者;和/或[0109] 4b、如果设备具有最长剩余电池寿命,则该设备可以被选择为群宣告者;
[0110] 5、如果设备具有最多数量的服务ID,则该设备可以被选择为群宣告者;以及[0111] 6、如果设备具有最高MAC地址,则该设备可以被选择为群宣告者。
[0112] 为了选择一个设备,按先后顺序和/或并列地评估上述条款。例如,条款4a和4b可以同时评估。即,具有异常高数量的服务ID的设备最可能被选择为群宣告者。如果服务ID的数量大约相同,则电池使用成为主要因子。如果在另一方面,设备具有无限电池寿命(例如,插接到AC插座),则它也可能被选择为群宣告者。在一个实施例中,电池使用可以用表示设备类别和电池上剩余的运行时间量的两个数来代码化。优化协作宣告的拓扑分布是该算法的目标之一。该目标是收敛到少量群宣告者承担其它被宣告者的额外宣告负担,然后所述其他被宣告者停止宣告本身(即,进入状态3)的情形。被宣告者的宣告者可以空间分布在被宣告者周围和/或靠近被宣告者(例如,宣告者的均匀空间分布)。
[0113] 空间分布的均匀性因共享公共被宣告者的多个群宣告者应当不能够彼此看到或者可以仅以非常低的RSSI彼此看到(即它们不彼此接近)而实现。每当它们能够以特定水平的RSSI(例如,大于RSSI的一半范围)彼此看到并且它们共享公共被宣告者时,根据一个实施例,群宣告者之一可以丢弃公共被宣告者的额外负担并且停止作为该被宣告者的宣告者。另外,在其周围的匹配上述条款1-6的对等者中,设备自由选择最近的一个(例如,基于RSSI),作为其潜在群宣告者。
[0114] 根据一些实施例,宣告在时间上是有限的并且需要周期性地更新,例如,每若干分钟左右。它们在对应的被宣告者向群宣告者发送新请求时被更新。请求不能在最小时间量内重新发送至给定对等者,例如,在小于若干分钟内。每当设备从另一对等者接收的帧的RSSI落入一半与最大范围之间时,即宣告者和被宣告者较接近彼此时,设备可以要求被该对等者宣告(例如,发送宣告请求)。这有助于避免在第三方设备处于宣告者的范围中而不处于被宣告者的范围中时的情形。
[0115] 在一个实施例中,设备可以请求多个对等者充当群宣告者,假如那些对等者满足上述条款1-6的话。条款1-6设计为在彼此范围中的任一对设备内,仅设备之一可以潜在地被选择为该对设备的群宣告者。在彼此一半RSSI范围中的处于状态3的群宣告者可以比较它们的额外负担并卸下冗余的额外宣告负担。即,如果在彼此一半RSSI范围中的两个群宣告者共享公共被宣告者,则宣告者之一应当卸下用于该被宣告者的宣告。作为宣告者进行卸下的设备的选择也可以遵循上述条款1-6。即,承载最高数量的对等者(例如,多达16)的群宣告者将保持公共被宣告者,而承载最低数量对等者的群宣告者将卸下被宣告者。注意,这不需要交换任何帧。即,所选择的群宣告者将保持共享的被宣告者并且什么都不做;另一个将默默地卸下被宣告者。两个宣告者都停留在状态3。
[0116] 在一个实施例中,不共享公共被宣告者的、在彼此一半RSSI范围中的、处于状态1的群宣告者还可以选择来协作,即,对于该对而言,群宣告者之一被选为群宣告者,一个被选择为被宣告者。被宣告者进入状态2(例如,卸下其自身的被宣告者)并且如果被宣告者达到三个对等者,那么其卸下其自身的负担并进入状态3(例如,其完全停止宣告)。该对中的宣告者可以开始承载被宣告者的宣告负担,但不承载被宣告者的额外负担。该要求确保了被宣告者的额外负担不从最初靠近其定位的群宣告者转移至可能远离其定位的群宣告者。已经被卸下的第三方对等者现在需要寻找新的宣告者或者它们本身成为宣告者。注意,这也不需要交换任何帧。处于状态2的卸下的对等者可以寻找另一群宣告者并保持在它们的当前状态,或者它们可以转变至状态0并在不需要群宣告者的情况下操作。发现本身处在不能找到承载其宣告负担的至少两个群宣告者的情况下的、处于状态3的设备可以进入状态2并恢复广播其自身的宣告。不能找到承载其宣告负担的任何群宣告者的、处于状态3的设备可以进入状态0并恢复广播其自身的宣告。这两种转变可以发生在当群宣告者到范围外、失效时,和/或当宣告请求超时,且它周围的全部群宣告者处于最大容量时和/或当没有许多群宣告者围绕在时。备选地,不能找到足够的群宣告者承载其宣告负担的、处于状态3的设备可以利用上述规则来选择新的群宣告者,如果成功的话则可以保持在状态3。
[0117] 例如,“良好”情况是当一个群宣告者承载多达16个额外负担并且被宣告者的负担被2个周围的群宣告者承载时。信道上发送的宣告帧的数量于是整体上除以16;由此,存在小得多的冲突概率。总发送负担(即,每秒的字节)除以8。
[0118] 图13A-13C是示出根据本发明一些实施例的设备在操作状态之间转变的示例的转变图。参照图13A,假定设备1301-1308在利用上述特定技术检测的预定附近范围内操作。在这个示例中,设备1301-1302操作为处于状态1的群宣告者;设备1303-1307操作为处于状态3的被宣告者;设备1308操作为处于状态2的宣告者&被宣告者。如图13A中可见,设备1301被选择为设备1308以及设备1303和1305的群宣告者。设备1302被选择为设备1304和1305-1307的群宣告者。还假定以状态1操作的设备1301-1302彼此接近并且能彼此看到(例如,上述特定RSSI水平)。
[0119] 基于上述宣告者选择算法,因为在设备1301-1302之间,设备1302具有比设备1301的被宣告者(例如,设备1303、1305以及1308)更高数量的被宣告者(例如,设备1304和1305-1307),所以设备1302被选择为设备1301的群宣告者。结果,如图13B所示,设备
1301从状态1转变至状态2,它不再操作为设备1308的宣告者。随后,在图13C中,由于上述条款3(例如,最少数量的被宣告者),因而设备1308成为处于状态1的群宣告者,设备
1301成为被设备1302和1308宣告的被宣告者。
[0120] 当宣告者承载被宣告者的宣告时,创建群宣告消息,群宣告消息包括用于其自身服务和被宣告者的服务的宣告。图14是示出根据本发明一个实施例的群宣告消息的框图。参照图14,群宣告消息1400包括宣告者本身的宣告消息1401(例如,用于其自身服务的宣告消息),其与图5的宣告消息500相同或相似。另外,复合宣告消息1400包括额外宣告消息1402-1404,每个对应于被宣告者。在一实施例中,用于被宣告者的宣告消息1410(例如,消息1402-1404)包括:被宣告者的地址1411(例如,MAC地址)、服务标识符的数量1412和实际服务标识符(例如,哈希值)1413以及被宣告者的可用性时间表1414。结果,尽管宣告消息1410由宣告者宣告,但其它设备可以通过直接与被宣告者通信来响应该宣告。注意,如图14所示的宣告消息的格式仅出于示范目的而描述;还可以应用其它格式。
[0121] 还注意,尽管本地设备可以考虑到远程设备的操作条件,基于本地设备的操作条件来选择远程设备为其群宣告者,但是,根据一实施例,远程设备可以基于其自身决定或该远程设备的操作条件评估,拒绝或忽略该宣告请求。在这种情况下,除非从远程设备接收到确认,否则本地设备可能必须监测网络中的通信(例如,服务宣告)以确定所选择的远程设备实际上是否代替本地设备执行了宣告。如果远程设备拒绝或忽略宣告请求,则本地设备可能必须选择另一远程设备。
[0122] 图15是示出根据本发明另一实施例的宣告服务的方法的流程图。注意,方法1500可以通过可以包括硬件、固件、软件或它们的组合的处理逻辑器来执行。例如,方法1500可以通过图12的宣告单元201和/或宣告者选择单元1201来执行。参照图15,在框1501,本地设备监听无线网络以确定能够在网络中宣告一个或多个服务的一个或多个远程设备。在框1502,本地设备比较本地与远程设备的某些预定操作统计和/或配置。在框1503,本地设备基于该比较选择一个或多个远程设备来宣告本地设备的一个或多个服务。在框1504,本地设备向所选择的远程设备发送宣告请求,请求代表本地设备进行宣告,宣告请求包括要宣告的一个或多个服务的标识符(例如,哈希值)。然后在框1505,设备等待以通过在远程设备的下一个群宣告消息中监听其服务,或者通过等待成功宣告响应,来查看请求是否被接受。如果请求失败,则本地设备检查是否存在可以用作群宣告者的其它远程设备。如果有,则其进行到框1501,并且利用不同设备重试该过程。如果没有,则其停止该过程。如果请求成功,则其继续至框1505。在框1505,可选地,本地设备终止对其自身服务的宣告,并且依靠所选择的远程设备宣告其服务。
[0123] 图16是示出根据本发明另一实施例的宣告服务的方法的流程图。注意,方法1600可以通过可以包括硬件、固件、软件或它们的组合的处理逻辑器来执行。例如,方法1600可以通过图12的宣告单元201和/或宣告者选择单元1201来执行。参照图16,在框1601,从远程设备接收宣告请求,包括要宣告的一个或多个服务的服务ID。在框1602,设备比较当前设备与请求设备的某些预定操作统计和/或配置,以查看请求是否有效。如果无效,则在框1606,其可以发送指示失败的宣告响应,然后进行至框1602。如果有效,则其可以发送指示成功的宣告响应,然后继续至框1604。在框1604,处理逻辑器构建群宣告消息,群宣告消息具有本地服务的宣告和远程设备的所请求的一个或多个服务的宣告。在框1605,本地设备在网络中周期性地广播复合宣告帧。
[0124] 图17是示出根据本发明一实施例的选择设备作为群宣告者的方法的流程图。参照图17,在框1701,如果设备当前没有为超过预定数量的其它对等者进行宣告,则该设备可以被选择为群宣告者。在框1702,如果设备当前为最多数量的其它对等者进行宣告,则该设备可以被选择为群宣告者。在框1703,如果设备当前被最少数量的其它对等者宣告(例如,作为被宣告者),则该设备可以被选择为群宣告者。在框1704,如果设备当前总计宣告最多数量的服务,或者备选地,如果设备具有最长剩余电池寿命,则该设备可以被选择为群宣告者。在框1705,如果设备当前具有最多数量的服务ID,则该设备可以被选择为群宣告者。在框1706,如果设备当前具有最高MAC(媒体接入控制)地址,则该设备可以被选择为群宣告者。注意,框1701-1706中涉及的操作可以顺序和/或并列进行,没有特定的次序。这里,还可以考虑其它因子。
[0125] 贯穿本申请描述的技术可以应用至各种场景或情形。服务可以基于利用上述技术中的一些基于便携式设备的周围探测来被宣告和/或被发现。该特征允许便携式设备的用户通过无线网络协议永久性地宣告一个或多个服务,并探测便携式设备是否在正在宣告那些服务中的一个服务的另一便携式设备的范围内移动。术语“永久性”指的是宣告在一时段可以是开放或可获得的,不需要来自该设备(例如,宣告者)的本地用户的进一步相互作用。
[0126] 例如,游戏者(例如,棋手或扑克玩家等)可以容易地连接到任何因特网站或游戏社交网络,并与任何可获得的对手进行游戏。这种用户可能从未亲身遇到该对手,但通过网络认识(发现)。在这种情形下,寻找对手的便携式设备用户将在网络中广播特定游戏的宣告。宣告可以通过游戏应用生成,并且可以包括额外信息,诸如作为玩家的用户等级、期望的对手等级、期望的游戏类型等。只要用户步入正在宣告同一游戏的另一人的范围中,两个用户就可以被提醒(例如,通过警报、振动等)且可以彼此连接以进行游戏。附近范围还意味着与横跨网络和随机对手进行游戏相比,用户与他们实际上能够亲身碰面的其它用户进行游戏。
[0127] 上面描述的技术还可以应用于永久性地共享内容或文件(例如,对一时段而言可获得)。这类似于从便携式设备输出某些内容(例如,图片),但其在对等式链接上以特设(ad-hoc)方式进行。例如,参与会议(或者派对或存在于大学校园中)的用户可以共享图片或文档,并可以保持该共享“开放”一时段(例如,会议或派对的一天或整个持续时间)。可以与用户的设备认证/配对的任何同事或朋友可以经过(例如,在附近范围内)并访问(例如,下载)该图片或文档。
[0128] 如果共享内容的拥有者允许,且取决于对应设备(例如,宣告者)的某些配置,内容可以被共享而不需要拥有者的相互作用(例如,提醒或请求允许等)以创建对等式连接。从用户的观点,这意味着一个人可以抓拍事件图片,并且整天走动来连续地广播该图片。
[0129] 当两个或更多个设备经由网络并且在预定附近范围内彼此耦接时,设备可以通过网络发现彼此以及彼此可获得的服务。如果设备可以确定它们支持公用多设备能力应用(例如,通过匹配对应的服务ID),诸如多玩家游戏、则每个设备可以配置成执行多设备能力应用的一个或多个分布式功能。分布式功能是多设备能力应用的、指派给一个或多个不同设备的功能,该一个或多个不同设备可以基本同时地执行该分布式功能。该分布式功能可以包括输入、输出以及计算等。每个设备都可以与其它设备协作以执行其分布式功能。此外,这些设备中的一些可以彼此协作以执行相同的分布式功能。换句话说,每个设备都可以在执行多设备能力应用方面起特定作用,并且基于其作用而具有与其它设备的关系。此外,这种作用和关系可以响应于添加设备至网络、从网络去除设备、执行应用的当前状态和/或用户输入等而动态地修改
[0130] 在这个示例中,多设备能力应用的至少一部分通过网络在多个设备之间共享。为了共享多设备能力应用,多设备能力应用的全部或部分可以预先安装在网络中的一些或所有设备上,其中多设备能力应用可以由上述服务ID来标识。备选地,一个或多个设备可以向网络中的其它设备发送多设备能力应用的全部或一部分,以便共享该多设备能力应用。结果,分布式功能按协作方式来执行。关于用于通过多个设备的协作分布式功能的技术的进一步详细信息可见于2009年6月5日提交的题为“Multifunctional Devices as Virtual Accessories”的共同未决美国专利申请No.12/479,586中,其全部内容通过引用合并于此。
[0131] 数据处理系统的示例
[0132] 图18示出可以与本发明一实施例一起使用的数据处理系统的示例。例如,系统1800可以实现为图1所示的设备101-103中的任一个。图18所示的数据处理系统1800包括处理系统1811,处理系统1811可以是一个或多个微处理器,或者其可以是集成电路的芯片上系统,该系统还包括用于存储数据和供处理系统执行的程序的存储器1801。系统1800还包括音频输入/输出子系统1805,子系统1805可以包括用于例如回放音乐的麦克和扬声器,或者通过扬声器和麦克风提供电话功能。
[0133] 显示控制器和显示设备1807向用户提供可视用户界面;该数字界面可以包括图形用户界面,其类似于 电话设备、iPad设备或Macintosh计算机上运行操作系统软件时显示的图形用户界面。系统1800还包括一个或多个无线收发器1803以与另一数据处理系统通信。无线收发器可以是WiFi收发器、红外收发器、蓝牙收发器和/或无线蜂窝电话收发器。应理解,未示出的额外部件在某些实施例中也可以是系统1800的一部分,并且在某些实施例中,还可以在数据处理系统中使用比图18所示的部件更少的部件。
[0134] 数据处理系统1800还包括一个或多个输入设备1813,设置输入设备1813以允许用户向系统提供输入。这些输入设备可以是小键盘、键盘、触摸面板或多点触摸面板。数据处理系统1800还包括可选的输入/输出设备1815,其可以是用于坞站(dock)的连接器。应理解,未示出的一个或多个总线可以被用于互连各种部件,如本领域公知的那样。图18所示的数据处理系统可以是手持式计算机或个人数字助理(PDA),或者是具有类似PDA功能的蜂窝电话,或者是包括蜂窝电话的手持式计算机,或者是诸如iPod的媒体播放器,或者是组合了这些设备的多个方面或功能的设备,诸如在一个设备中组合了PDA和蜂窝电话的媒体播放器。在另一些实施例中,数据处理系统1800可以是网络计算机或者是在另一设备内的嵌入式处理设备,或者是比图18所示的系统具有更少的部件或也许更多部件的其它类型的数据处理系统。
[0135] 本发明的至少某些实施例可以是数字媒体播放器诸如便携式音乐和/或视频媒体播放器的一部分,其可以包括用于呈现媒体的媒体处理系统、用于存储媒体的存储设备,并且还可以包括与天线系统和媒体处理系统相耦接的射频(RF)收发器(例如,用于蜂窝电话的RF收发器)。在某些实施例中,存储于远程存储设备上的媒体可以通过RF收发器发送至媒体播放器。该媒体例如可以是音乐或其它音频、静态图片或运动图片中的一种或多种。
[0136] 便携式媒体播放器可以包括媒体选择设备,诸如来自加利福尼亚州库珀蒂诺的苹果公司的 或者iPod 媒体播放器的点击轮输入设备,触摸屏或多点触摸输入设备,按钮设备,可移动指向输入设备或其它输入设备。媒体选择设备可以用于选择存储在存储设备和/或远程存储设备上的媒体。在至少某些实施例中,便携式媒体播放器可以包括耦接至媒体处理系统的显示设备,以显示通过输入设备选择并被呈现的媒体的标题或其它指示符,或者通过扬声器或机呈现、或者在显示设备上呈现,或者在显示设备以及扬声器或耳机二者上呈现。
[0137] 前面的详细描述的一些部分已经从算法或者操作在计算机存储器内的数据位上的符号表示方面给出。这些算法描述和表述是数据处理领域的技术人员用来向本领域其它技术人员最有效地传达他们的工作实质的途径。这里且一般地,算法被构想为导致期望结果的运算的自洽序列。运算是需要物理操纵物理量的那些运算。通常,尽管不必要,但这些量采取能够被存储、传输、组合、比较以及另外操纵的电或磁信号的形式。已经证实时常方便地,主要出于公共用法的原因,这些信号被称为位、值、元、符号、字符、术语、数字等。
[0138] 然而应铭记的是,所有这些和类似术语要与合适的物理量相关联,并且仅是应用到这些量的便利标签。除非如从上面的论述显见的那样另外地具体陈述,否则应理解,贯穿本说明书,利用术语诸如在下面的权利要求书中阐述的那些的论述指的是计算机系统或类似电子计算设备的动作和过程,计算机系统操纵计算机系统的寄存器和存储器内的表示为物理(电子)量的数据并将其变换成计算机系统存储器或寄存器或者其它这种信息存储、传输或显示设备内类似地表示为物理量的其它数据。
[0139] 本发明的实施例还涉及用于执行这里的操作的装置。该装置可以出于所需目的特殊地构造,或者它可以包括由存储在计算机中的计算机程序选择性地激活或重新配置的通用目的计算机。这种计算机程序可以存储在计算机可读介质中。机器可读介质包括用于以机器(例如,计算机)可读形式存储信息的任何机构。例如,机器可读(例如,计算机可读)介质包括机器(例如,计算机)可读存储介质(例如,只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储介质、光学存储介质、闪存设备等)等。
[0140] 在此呈现的算法和显示不是固有地涉及任何特定计算机或其它装置。各种通用目的系统可以与根据这里的教导的程序一起使用,或者可以证实构造更专用的装置来执行所需的方法操作是方便的。用于多种这些系统的所需结构将从上面的描述显现。另外,本发明的实施例未参照任何特定编程语言进行描述。应理解,可以将多种编程语言用于实现这里描述的本发明的实施例的教导。
[0141] 在前面的说明书中,本发明的实施例以及参照其特定示范性实施例进行了描述。显然的是,在不脱离如下面的权利要求书中阐述的本发明的更宽泛精神和范围的情况下,可以进行各种修改。本说明书和附图因此在示范性意义而非限制性意义上来考虑。
QQ群二维码
意见反馈