在对等网络中漫游群组的制作方法

文档序号:7891501阅读:175来源:国知局
专利名称:在对等网络中漫游群组的制作方法
在对等网络中漫游群组
背景技术
很多计算机如今具有用于支持无线通信的无线电装置。无线通信用于例如连接到网络的接入点。通过与接入点进行关联,无线计算机可以访问网络上的设备,或通过该网络可到达的其它网络(例如互联网)。结果,无线计算机可以与很多其它设备交换数据,实现很多有用的功能。为了使计算机能够被配置成与接入点关联,普遍的是,接入点根据标准而操作。用于连接到接入点的设备的公共标准被称为Wi-Fi。该标准由Wi-Fi联盟公布,并且广泛用在便携式计算机中。存在该标准的多个版本,但它们中的任一个可以用于支持通过接入点的连接。无线通信也可以用于形成直接到达其它设备的连接,而不使用接入点。这些连接 有时被称为“对等”连接,并且可以例如用于允许计算机无线地连接到鼠标或键盘。用于这些直接连接的无线通信也已经标准化。用于这些无线通信的公共标准被称为蓝牙。在一些实例中,无线计算机可以通过接入点同时连接到其它设备,并且作为进行对等通信的群组的部分。为了支持这种同时通信,一些计算机具有多个无线电装置。最近以来,已经提出被称为Wi-Fi Direct的标准,其实现了基础架构连接和作为对等群组的部分与单个无线电装置可以处理的相似无线通信的通信。也是由Wi-Fi联盟公布的该标准将用于基于基础架构的通信的流行Wi-Fi通信标准扩展为支持直接连接。可以在设备的群组之间形成这些直接连接。根据Wi-Fi Direct标准,希望通信的设备可以交换格式化为行动帧的消息,以形成群组。初始地形成群组可能需要用户输入,例如输入PIN或用于授权设备彼此连接的其它信息。形成初始连接的该处理有时称为“配对”。Wi-Fi Direct标准包括设备保留关于它们已经与其配对的其它设备的信息的机制。以此方式,设备可以形成持久群组,从而设备在设备之间的连接中断的情况下可以通信。例如,如果一个设备关闭或设备移出通信范围,则这种中断可能产生。当持久群组中的设备之间的连接断开时,如果这些设备稍后能够支持它们之间的连接,则对等群组可以自动地重新形成,而无需用户行动。根据Wi-Fi Direct标准,一旦群组形成,就由控制群组的设备的硬件标识符来标识。因为硬件标识符对于设备的寿命将是持久的,并且被包括在对于形成群组可用的设备发送的信标中,所以其它设备可以识别已经形成群组的已知”设备。当可以重新建立与这些设备的连接时,可以使用存储的信息重新形成群组,而无需重复配对处理。

发明内容
无线设备用于建立对等群组的对等通信协议可以包含如下机制已经与特定用户操作的设备配对的设备自动识别与相同用户操作的不同设备并且与之配对。这种能力允许用户使在使用一个计算机时对该用户可用的设备连接在使用第二计算机时自动地转换。在一些实施例中,可以基于在配对期间设备之间交换的信息中所包括的对于用户唯一的标识符、来标识相同用户操作的设备。可以保留该标识符作为为重新建立连接而保留的持久设备信息的部分。通过基于唯一用户标识符、替换根据在形成对等群组中使用的对等协议在配对的设备之间交换的该类型的设备标识符,可以将标识符合并到设备之间交换的消息中。替代地或附加地,可以通过在根据形成对等群组时使用的对等协议在配对的设备之间交换的消息中添加唯一用户标识符作为信息元素而合并所述唯一用户标识符。在一些实施例中,可以基于用户输入而确定对于所述用户唯一的标识符。该输入可以是标识所述用户的证书。该证书例如可以是可应用于用户可以操作的多个计算设备中的每一个的登录证书、或用于用户从多个计算设备中的每一个可以访问的服务的用户名称。可以结合用于重新建立对等群组的信息来存储对于所述用户唯一的标识符。它可以例如在作为对等群组的部分而配对的设备中的任一个或所有设备上存储。替代地或附加 地,它可以在对于可由用户操作的多个计算设备中的每个设备可访问的服务器上存储,从而可以从所述用户操作的任何计算设备下载来自服务器的关于所述群组的信息。前述是本发明非限定性概述,其由所附权利要求限定。


附图不意图按比例绘制。在附图中,相同标号表示各个附图中所示的每一相同或接近相同的组件。为了清楚,并非可在每一附图中标记每一组件。在附图中
图IA是在当用户正操作第一计算设备时的第一时间示出的、可以实践本发明实施例的示例性环境的草图。图IB是在当用户正操作第二计算设备时的第二时间示出的图IA的示例性环境的草图。图2是适用于无线通信的示例性计算设备的高级框图。图3是适用于无线通信的示例性计算设备的更详细框图。图4是根据一些实施例的形成对等群组的设备的示例性操作方法的流程图。图5A、图5B和图5C是根据一些实施例的可以在形成群组的设备之间交换的示例性消息。图6是基于用于持久群组的先前创建的简档而形成对等群组的设备的示例性操作方法的流程图。图7是根据一些替代实施例的形成对等群组的设备的示例性操作方法的流程图。图8是根据一些替代实施例的基于用于持久群组的先前创建的简档而形成对等群组的方法的流程图。以及
图9是可以实践本发明一些实施例的说明性计算设备的草图。
具体实施例方式发明人已经知道并且理解,如果在用户正操作一个无线设备时建立的对等群组在当由相同用户操作时的其它设备上自动重新建立,则无线设备的操作对于这些无线设备的用户将是更有用的。例如,操作膝上型计算机的用户可以使用对等协议建立与打印机或其它无线设备的连接。如果该用户稍后在打印机附近操作智能电话,在基于作为膝上型计算机与打印机之间的配对的部分已经交换的信息而自动建立智能电话与打印机之间的连接的情况下,则可以极大地增强用户的体验。这种能力将允许用户从智能电话打印到打印机,而无需重复配对“仪式”。在一些实施例中,可以通过在用户操作的不同计算设备之间移植设备连接简档和/或将用户的唯一标识符合并到作为对等协议的部分交换的消息中而建立这种能力。当首先建立持久群组并且稍后用户在检测到以该标识符标记的后续通信时选择并且应用该简档时,可以随群组简档存储用户的标识符,无论用户此时正操作什么设备。该标识符可以出现在用户操作的多个设备中的任一设备发送的消息中。用户操作的设备可以与其配对的其它设备可以记录用户的标识符作为用于标识已经与其建立连接的设备的信息的部分。例如,可以通过以下方式传递用户的标识符接收包括该标识符的消息的设备在持久设备储存器中记录用于标识持久对等群组中的设备的标识符。稍后可以通过由相同用户操作的、相似地包括该用户标识符的任何设备、根据支持持久群组的对等协议的技术来建立群组。
可以通过任何合适的方式将用户标识符合并到符合对等协议的消息中。在一些实施例中,用户操作的每一设备可以被配置为代替根据对等协议操作的设备中以某种另外方式传统地确定的值,在一个或多个消息中插入用户的标识符。例如,可以代替设备的基于硬件的标识符而在消息中插入用户的标识符。当用户的标识符代替用于标识作为持久群组的部分的设备的值时,与用户操作的设备配对的设备可具有传统配置,然而可以自动地建立与使用用户标识符的由该用户操作的任何设备的连接。例如,用户的标识符可以代替可以另外出现在符合对等协议的消息中的设备标识符。在这些实施例中,与用户操作的设备配对的设备可以存储与用户的标识符关联的持久群组简档。其可以稍后自动地识别该用户操作的任何另外设备作为已知设备,并且使用持久群组简档以便根据支持持久群组的标准对等协议与该设备建立群组。有利的是,可以通过访问持久设备储存器中的信息而消除对于另一配对仪式的需要,具体地说是消除对于在配对仪式期间的用户行动的需要。替代地或附加地,可以将用户的标识符作为附加元素添加到根据对等协议格式化的消息。在一些实施例中,标识符可以作为信息元素而插入根据对等协议格式化的消息中。接收该信息元素的设备可以结合持久群组简档而记录它。当该设备后续检测具有相同标识符的消息时,设备可以使用持久群组简档中的信息。用户操作的设备可以通过任何合适的方式确定将什么用户标识符添加到消息。在一些实施例中,可以直接根据用户输入确定标识符。该输入可以是明确的或暗含的。作为明确输入的示例,用户可以将用于标识符的值输入到控制对等通信的操作系统工具呈现的配置对话框。作为暗含输入的示例,工具可以从基于用户已经存储在计算设备上的信息访问的外部服务收集关于计算设备的用户的信息。相应地,确定用户标识符的具体技术对于本发明不是关键的。在本文描述的说明性实施例中,从用户提供的证书确定用户的标识符。证书的具体类型对于本发明也不是关键的。在一些实施例中,证书可以是与计算设备关联的证书。例如,证书可以是当登录到计算设备时用户输入的用户名称。可以使用传统技术执行这种登录处理,从而控制对等通信的工具可以从操作系统的传统组件访问该证书。
替代地,用户证书可以与用户操作的计算设备上的另一服务或通过网络访问的外部服务关联。例如,本发明的受让人经营一种被称为LiveID的服务,其中用户被给予允许他们访问很多联网的服务的证书。可以从用户名称或与例如LiveID的外部服务关联的用户的其它信息推导用户的标识符。
无论证书的源如何,可以通过任何合适的方式从证书确定用户的标识符。标识符例如可以简单地是证书。然而,可以对证书替代地或附加地执行任何合适的处理以生成标识符。该处理可以包括选择证书的部分,并且替代地或附加地,可以包括加密处理,以模糊标识符。然而,只要处理是确定性的,就可以对用户操作的多个设备中的任一设备执行它,从而全部获得相同标识符。在表示已经与用户操作的设备配对的设备的群组简档在该用户操作的多个设备当中移植的实施例中,可以通过任何合适的方式执行该移植。在一些实施例中,可以直接存储用户从一个机器拷贝到另一机器的信息。可以如本领域已知的那样,作为设备同步处理的部分、设备之间的物理介质的传输或信息通过网络的传送,或以任何另外合适的方式来进行这种拷贝。在其它实施例中,可以在用户操作的多个设备可访问的位置存储群组简档。例如,可以在服务器或其它联网计算设备上存储群组简档。在一些实施例中,可以通过与允许标识用户的证书关联的服务来操作存储群组简档的服务器。可以在任何合适的环境中单独地或通过任何合适的组合一起使用前述技术。图IA示出根据一些实施例的计算设备在第一时间通信的环境。在图IA的示例中,示出计算设备110作为膝上型计算机。然而,应理解,计算设备110的形式因素不是对本发明的限制。配置为平板、智能电话或通过任何另外合适的形式因素的计算设备可以根据本发明实施例而被配置和操作。此外,应理解,任何无线设备可以在对等群组扮演任何角色。相应地,无需群组中的设备中的任一设备是计算设备。图IA示出用户112正操作计算设备110。用户112可以使用本领域已知的技术与计算设备110进行交互,以控制计算设备110来与其它设备无线连接。在该示例中,图IA示出对等无线连接。示出计算设备110为分别具有对相机130和打印机134的连接132和136。在此情况下,相机130和打印机134是计算设备110可以与其连接以与这些设备交换数据的无线设备的示例。相机130、打印机134和计算设备110可以使用支持持久群组的对等协议通过无线连接132和136进行通信。在该示例中,相机130、打印机134和计算设备110可以根据对等协议形成持久群组。然而,在替换实施例中,计算设备110可以与相机130形成第一群组以及与打印机134形成第二群组。相应地,应理解,群组可以包括任何合适数量的设备,包括仅两个设备。可以根据任何合适的对等协议形成无线连接132和136。在该示例中,使用被称为Wi-Fi Direct的Wi-Fi协议的扩展形成连接132和136。根据该协议,连接132和136可以形成为持久连接。结果,与另一设备形成群组的设备中的每一设备可以存储表示已经执行配对的两个或更多个设备的群组的群组简档信息以建立连接。群组简档信息可以用于在连接中断的情况下重新建立连接。该信息可以与用户112的标识符关联地存储。群组简档信息和用户112的标识符可以存储在例如相机130和打印机134的设备的内部。计算设备110可以相似地在内部存储该信息。然而,计算设备110以及其它设备中的任一设备可以例如通过使用网络连接在外部存储该信息。在该示例中,计算设备110还具有通过接入点120到网络124的无线连接。通过接入点120的无线连接122是基础架构类型连接的示例。任何合适的技术可以用于形成无线连接122,包括采用已知基础架构类型协议的技术。作为一个示例,可以使用有时称为“Wi-Fi”的协议形成无线连接122。然而,所使用的具体协议对于本发明不是关键的。在所示示例中,计算设备110具有无线连接122中的站的角色。计算设备110的角色指示计算设备110执行无线协议以与接入点120交换信息的具体步骤。网络124可以是家庭网络、企业网络、互联网或任何另外合适的网络。然而,在所示实施例中,网络124可以是互联网,允许计算设备110从可以访问互联网的世界上任何地方访问计算设备(例如服务器140)。在此,服务器140表示用户可能已经向其登录证书的外部服务提供的服务器。这 些证书可以输入到计算设备110,以标识用户。在一些实施例中,这些证书可以用于允许计 算设备110访问服务器140上的信息。计算设备110也可以使用证书例如以使用本领域已知的安全机制确定是否将批准用户112访问计算设备110上的组件。附加地,计算设备110可以使用用户登录证书以识别与用户关联的简档,其进而可以用于配置计算设备以还使用本领域已知的技术根据用户112先前建立的偏好而操作。用于控制对于计算设备110的访问和配置的证书可以与用于服务器140的证书相同或不同。对服务器140上的信息的访问可以包括存储信息。在一些实施例中,对于服务器140的访问会需要在与一个或多个远程设备(例如相机130或打印机134)配对时存储计算设备110生成的持久群组简档信息。替代地或附加地,访问服务器140会需要检索信息。当在服务器140上存储持久群组简档信息时,其可以通过用户证书与用户112关联。相应地,可以将信息下载到用户112操作的且用户112已经向其提供这些证书的任何计算设备。例如,在稍后时间,如图IB所示,用户112可以操作计算设备150。用户112可以将输入到计算设备110的相同证书输入到计算设备150 (图1A)。相应地,计算设备150可以使用这些证书以相似地访问服务器140。在图IB所示的情况下,计算设备150可以访问服务器140,以下载通过计算设备110上传的持久群组简档信息。以此方式,服务器140和网络124提供用于将持久群组简档信息从一个计算设备移植到相同用户操作的另一计算设备的机制。在此情况下,用户输入的证书提供计算设备150、服务器140和计算设备110中的每个设备将持久群组简档信息与相同用户关联的机制。在一些实施例中,用户输入的证书可以用于生成用户112的标识符,其与当计算设备110与一个或多个其它设备配对时生成的群组简档信息关联。可以从用户输入的证书以相同方式生成用户112的标识符,无论用户112操作的计算设备如何。例如,图IB示出在后一时间操作计算设备150的用户112。类似计算设备110(图1A),计算设备150位于远程设备(例如相机130和打印机134)附近。计算设备150装配为与这些远程设备进行无线通信。相应地,计算设备150可以与相机130和打印机134中的一个或其两者形成对等群组。这些群组可以由执行可能需要用户行动的配对仪式的设备形成。然而,如果至少两个设备均将另一个与用于相同群组的持久群组简档关联,则可以根据支持持久群组的对等协议形成群组。可以基于用户标识符选择该群组简档。根据计算设备(例如计算设备110和计算设备150)可以使用的对等协议的一些实施例,计算设备150可以发送包括用户112的标识符的消息。在接收该消息时,远程设备(例如相机130和打印机134)可以将它们与用户112正操作的计算设备关联。因为持久群组简档可以与用户而不是设备关联(或除了设备之外),所以这些远程设备可以识别基于与用户112操作的计算设备的先前配对而生成的持久群组简档。远程设备可以然后使用该持久群组简档来与计算设备150建立对等群组,而无需重复配对仪式。计算设备150可以使用从计算设备110移植的对应持久群组简档来形成群组。即使该持久群组简档在用户112在较早时间操作计算设备110 (图I)时建立,也可以建立该群组。结果,在用户112操作计算设备110的同时建立的对等群组转到(carry over)用户112操作的其它计算设备,在该示例中包括计算设备150。可以通过任何合适的方式来实现根据对等无线协议操作的无线设备。在图2中提供示例性实施例。图2在高级别示出用于可以操作以形成基础架构模式无线连接(例如无线连接122 (图IA和图IB))和对等无线连接(例如连接132和136 (图IA和图IB))的计算设备210的架构。在图2的示例中,计算设备210包括两个无线电装置,无线电装置250和无线电装置254。每一个无线电装置可以适于发送和接收无线通信。无线电装置250例如可以用于形成无线连接122。无线电装置254例如可以用于形成对等连接132和136。在该示例中,无线电装置250具有介质访问控制(MAC)地址252。MAC地址可以是与无线电装置250关联的唯一标识符,从而其可以用于区分无线电装置250与无线电装置254,还有在计算设备210可以通信的任何其它设备中的无线电装置。相应地,MAC地址252可以被包括在无线电装置250发送的分组中以指示该帧由无线电装置250发送,或可以被包括在指向无线电装置250的分组中以指示该帧预期去往无线电装置250。可以通过任何合适的方式将MAC地址252分配给无线电装置250。例如,无线电装置250的制造商也可以分配它。然而,在一些实施例中,MAC地址252可以由操作系统230或计算设备210的另一组件或由计算设备210正在其中操作的系统中的某个另外组件分配。可以通过图2中表示为驱动器240的软件控制无线电装置250。在此,驱动器240包括接口 242,操作系统230通过其可以向驱动器240发布命令,并且驱动器240通过其可以报告状态并且向操作系统230通知接收的数据。可以通过任何合适的方式来实现接口242,包括根据已知的标准。这种已知的标准的示例被称为NDIS,但该标准对于本发明不是关键。接口 242可以支持不依赖于无线电装置250的构造的格式的多个命令。此外,驱动器240可以将接口 242的标准化格式的命令转译为应用于无线电装置250的具体控制信号。附加地,可以将驱动器240编程为执行与无线连接关联的特定低级别功能。例如,在接收分组时,驱动器240可以检查分组被正确地格式化。如果正确地格式化分组,则驱动器240可以控制无线电装置250生成确认。反之,如果未正确地格式化分组,则驱动器240可以控制无线电装置250发送否定确认。通过驱动器240,并且在一些实例中,无线电装置250可以自动执行与建立并且保持无线连接关联的低级别功能,较高级别功能可以在操作系统230或应用220的控制下执行。在一些实施例中,应用220或操作系统230可以提供用户接口,从而由计算设备210的用户提供无线通信的终极控制。在图2所示的实施例中,计算设备210还包括无线电装置254。虽然无线电装置250可以用于例如对基础架构网络的连接,但无线电装置254也可以用于形成一个或多个对等连接,例如连接132和136。无线电装置254合并到具有通常与无线电装置250相同架构的计算设备210。无线电装置254与提供用于操作系统230控制无线电装置254的机制的驱动器244关联。驱动器244具有接口 246,操作系统230通过其可以将命令发送到驱动器244,并且驱动器244可以将状态提供给操作系统230。接口 246,类似接口 242,可以是标准化接口,从而操作系统230可以使用用于控制驱动器240的相似命令集合与驱动器244进行通信。然而,因为无线电装置254用于实现对等连接,所以驱动器244可以响应于与驱动器240不同或附加的命令,以实现对于基于基础架构的通信不存在的、与对等通信关联的功能。作为无线电装置250与254之间的附加差异,示出无线电装置254为具有多个MAC 地址。相反,无线电装置250包括单个MAC地址252。在此,示出MAC地址256A、256B和256C。例如无线电装置254的制造商可以分配多个MAC地址,或可以通过任何合适的方式分配MAC地址,包括如关于MAC地址252所描述的。替代地,可以基于计算设备210的用户的标识符分配MAC地址中的一个或多个。具有多个MAC地址允许无线电装置254对于计算设备210外部的设备显现为多个实体,每个实体具有单独的MAC地址。作为示例,如果计算设备210正分别在第一对等群组中作为群组拥有者以及在第二对等群组中作为客户机通信,则可以针对群组拥有者和客户机建立单独的实体。计算设备210外部的设备可以通过第一 MAC地址寻址预期由在第一群组中作为群组拥有者的计算设备210处理的分组。可以通过第二 MAC地址寻址预期在第二群组中作为客户机处理的分组。相似地,计算设备210可以在来自群组拥有者的分组中插入第一 MAC地址;来自客户机的分组可以包括第二 MAC地址。为了允许操作系统230将其与驱动器244的交互与计算设备210内部的这些实体中的具体一个关联,实体中的每一个可以表示为一个端口。相应地,操作系统230可以通过与该实体关联的端口将命令发送到每一该实体或从每一该实体接收状态信息。端口中的每一个可以被配置为执行对于端口表示的实体的类型适当的功能。计算设备210根据Wi-Fi Direct (在此用作对等协议的示例)操作的实施例,作为对等群组的部分的设备可以扮演群组拥有者或客户机的角色。可以根据无线协议而要求群组拥有者以指定方式发送特定类型的行动帧并且对其它类型的行动帧进行响应。在不同的环境下,配置为客户机的设备可以发送不同行动帧和响应,或可以发送相同行动帧和响应。然而,应理解,群组拥有者和客户机仅仅是无线电装置254和驱动器244可以被配置为执行的角色的两个示例。作为另一示例,实体可以被配置为既不是群组拥有者也不是客户机。此外,实体可以被分配作为管理与其它设备交互的控制器的角色,以形成群组并且确定该群组中的计算设备210的角色。虽然图2示出单独的无线电装置,无线电装置250和无线电装置254,但在基础架构连接和对等通信使用相同频率信道操作的实施例中,可以使用单个无线电装置。在该实施例中,可以通过相同无线电装置实现执行与基础架构通信关联的角色的实体以及执行与对等通信关联的角色的实体。图3示出计算设备310被配置为使用单个无线电装置支持具有基础架构网络中的角色的实体和具有用于对等通信的角色的实体的实施例。图3示出包含无线电装置354的计算设备310。无线电装置354示出为具有多个MAC地址,如MAC地址356A、356B、356C、356D和356E所示。虽然示出可以允许无线电装置354及其关联的驱动器344同时提供五个端口的五个MAC地址,但应理解,支持的MAC地址的具体数量对于本发明不是关键的,并且在一些实施例中可以使用多于或少于五个MAC地址。在该示例中,五个MAC地址可以用于提供五个端口 382、384、386、388和390,每一端口被配置为执行不同角色。在所示情况下,这些端口的群组380A已经被配置为实现用于基于基础架构的通信的实体。群组380B包含被配置用于对等通信的端口。在图3所示的示例中,群组380A包含两个端口,端口 382和384。群组380B被示出包含三个端口,端口 386、388和390。应理解,分配用于每一使用类型的端口的数量对本 发明不是关键的,并且可以使用任何合适的数量。此外,无需每一群组中的端口的数量保持静态。此外,操作系统320可以向驱动器344发布命令,以按需要动态地创建或毁掉端口。结合用于创建端口的命令,操作系统320可以指定与该端口关联的角色。驱动器344可以通过创建被配置用于可以与基于基础架构的通信或对等通信关联的指定角色的端口来响应于该命令。虽然操作系统230可以指定角色,但可以通过任何合适的方式来确定指定的角色。例如,当形成对等群组时,操作系统320可以通过控制计算设备310与群组中的其它设备无线地交换消息以便联合地协商用于每一设备的角色来确定角色。虽然任何合适的机制可以用于实现用于将角色分配给计算设备310的能力,但图3示出操作系统320与驱动器344之间的接口 346。接口 346可以是标准化格式的驱动器的接口。作为一个示例,根据NDIS接口规范而写一些驱动器。根据该规范,可以使用被称为OID的编程对象在驱动器344与操作系统320之间交换命令和状态信息。NDIS标准定义驱动器应该或可以响应的OID的数量。然而,标准是扩展的,从而在特定情况下OID可以定义为支持附加功能。这种可扩展性可以用于使用OID或其它合适的表示来定义命令,其允许操作系统320命令驱动器344创建或毁掉端口,或将端口配置用于具体角色。除了支持多个MAC地址,虽然无线电装置354可以处理用于多个端口的分组,在一些实施例中,无线电装置354无需特定地被配置用于支持端口。可以使用本领域已知的技术来实现无线电装置354。在该示例中,发射机/接收机部分358可以是本领域已知的并且用于无线通信的硬件组件。在该示例中,其中,无线电装置354用于支持符合Wi-Fi基础架构模式协议和用于对等通信的Wi-Fi Direct协议的通信,发射机/接收机部分358可以支持通过Wi-Fi规范定义的频率范围上的多个子信道中的通信。然而,发射机/接收机部分358的具体操作特性可以根据对于通信实现的具体协议变化,并且对于本发明不是关键的。类似地,控制器360可以是无线无线电装置设计的领域中已知的硬件组件。相似地,配置寄存器370可以是无线无线电装置设计的领域中已知的硬件组件。也可以使用本领域已知的技术来实现指示为MAC地址356A……356E的组件。在一些实施例中,可以在只读存储器或作为无线电装置354的部分的其他组件中对无线电装置354支持的MAC地址进行编码。然而,应理解,在通过驱动器344将MAC地址分配给无线电装置354的实施例中,可以在易失性或非易失性可重写存储器中物理地实现MAC地址356A……356E,从而可以动态地创建无线电装置354可以响应的MAC地址的池。无论实现无线电装置354的组件的方式如何,无线电装置354可以包含硬件接口346,驱动器344可以通过其控制无线电装置354。在一些实施例中,驱动器344可以是在计算设备310内的处理器上执行的计算机可执行软件指令。相应地,硬件接口 346可以实现为总线连接或执行驱动器344的处理器与保持无线电装置354的单独的卡之间的其它合适的互连。虽然这些硬件接口是本领域已知的,但可以使用任何合适的接口。 为了配置无线电装置354支持端口,驱动器344可以配置无线电装置354来处理与通过该端口的通信相关联的特定MAC地址的分组。驱动器344可以将值写入配置寄存器370,指示应激活MAC地址,从而无线电装置354将处理利用MAC地址标识的接收分组。在操作中,控制器360可以控制发射机/接收机部分358响应利用MAC地址标识的任何分组,所述MAC地址通过配置寄存器370中的信息标识为激活的。相应地,如果多个端口是激活的,则配置寄存器370将包含激活的MAC地址中每一个的指示。除了将无线电装置354配置为响应针对端口的MAC地址之外,驱动器344可以指定将与该MAC地址一起使用的通信参数。这些参数可以指定例如不同数量的子信道可以用于与不同MAC地址的通信。以此方式,可以基于与端口关联的角色来控制不同端口的通信特性。作为具体示例,配置为控制端口的端口可以要求比用于传递数据的端口更低的带宽。相应地,无线电装置354可以被配置为对于与控制端口关联的MAC地址,使用更少的子信道或不同的编码方案。对于待发送的信息,可以操作驱动器344和/或无线电装置354,使得所传送的包含该信息的任何帧将通过与正传送信息的端口关联的MAC地址标识。任何合适的机制可以用于将MAC地址与从具体端口发送或对于具体端口接收的具体帧进行关联。此外,因为具体实现不影响端口的功能,所以可以部分地或全部地在驱动器344内并且部分地或全部地在无线电装置354内执行该处理。为了实现多个端口,也可以配置驱动器344。在该示例中,示出驱动器344包含实现复用器/解复用器392的计算机可执行指令。复用器/解复用器392操作为将与端口关联的接收分组路由到实现各个端口的功能的驱动器344的部分。反之,复用器/解复用器392从端口中的任一个接收用于传输的分组,并且将这些分组路由到无线电装置354。在多个端口同时具有用于传输的信息的情况下,复用器/解复用器392可以调解(mediate)以建立无线电装置354从端口接收信息的顺序。为此,复用器/解复用器392可以使用任何合适的策略。例如,可以对承载行动帧的分组给予超过具有数据帧的分组的优先级。作为策略的另一示例,可以对与在基础架构模式下操作的端口关联的传输给予超过在对等模式下操作的端口的优先级。作为又一示例,可以对被配置用于群组拥有者的角色的端口给予超过被配置用于对等群组中的客户机角色的端口的优先级。然而,复用器/解复用器392应用的具体策略对于本发明不是关键的,并且可以采用任何合适的策略。除了配置复用器/解复用器392以路由分组之外,可以通过将具体功能模块与端 口中的每一个进行关联而配置驱动器344。与端口关联的具体功能模块可以基于分配给该端口的角色。例如,图3示出五个功能模块。功能模块394A当与端口关联时可以将该端口配置为在基础架构网络中的站的角色中操作。相似地,功能模块394B当与端口关联时可以将该端口配置为基础架构网络中接入点的角色。功能模块394C当与端口关联时可以将该端口配置为在对等模式下的控制器的角色中操作。随着设备协商或重新协商对等群组中的角色,控制器例如可以控制通信。功能模块394D当与端口关联时可以将该端口配置为对等群组中的群组拥有者的角色。功能模块394E当与端口关联时可以将该端口配置为对等群组中的客户机的角色。虽然图3中未示出,但可以替代地或附加地包括其它功能模块。可以通过任何合适的方式来实现功能模块394A......394E。例如,功能模块中的
每一个可以实现为计算机可执行指令的集合,其被编码以执行与功能模块关联的角色的功能。例如,可以通过控制无线电装置354发送对于基础架构网络中的站适当的分组的指令来对功能模块394A进行编码。附加地,功能模 块394A可以包含允许驱动器344通过实现基础架构网络中的站的行为的方式与操作系统320交互的指令。作为具体示例,可以对功能模块394A进行编码,以自动地生成对特定接收的帧的响应。附加地,可以将功能模块394A编码为将帧中接收的数据传递到计算设备310上的存储器中的位置,然后通知操作系统320已经接收数据。此外,功能模块394A可以将无线电装置354配置为该功能模块的角色。这种配置可以包括设置在指定的角色中使用的无线通信的子信道的数量或其它参数。功能模块394执行的操作可以类似于用于仅配置为Wi-Fi网络中的站的无线网络接口卡的传统驱动器中执行的操作,并且可以使用本领域已知的技术对功能模块394进行编码。可以将其它功能模块中的每一个类似地编码为与操作系统320和无线电装置354交互,以配置无线电装置354,并且针对其各个角色适当地内部地处理并且生成通信。可以例如通过计算机可执行指令对功能模块394B进行编码,所述计算机可执行指令对具有用于基础架构网络中的接入点的本领域已知的行为的接收帧执行操作或响应。此外,可以使用本领域已知的技术将功能模块394B编码为与操作系统320交互。可以将功能模块394C编码为执行与建立对等群组关联的功能。可以类似地使用本领域已知的技术写入实现功能模块394C的指令。这些指令可以使得无线电装置354发送包含行动帧的分组或对在根据具体协议建立用于对等通信的群组、并且协商或重新协商用于该群组的设备的角色中使用的该类型的行动帧进行响应。操作系统320内的组件可以触发这些行动帧的发送。然而,对于一些行动帧,功能模块394C可以被配置为生成对行动中贞的响应,而无需通过操作系统320的明确行动(express action)。表I列出可以命令功能模块394C通过操作系统320发送的行动巾贞的示例。这些行动巾贞表示对于Wi-Fi Direct协议适当的行动帧。可以响应于接收的行动帧或其它合适的触发来发送该协议中使用的附加行动帧,而无需明确命令。然而,应理解,不同或附加的行动帧可以用于不同的协议,并且具体行动帧并非对本发明的限制。表I
当操作系统320将请求提交到控制端口以发送表I中的行动帧中的一个时,驱动器344内的功能模块394C可以采取例如以下的行动
a.选择用于传输的对话令牌。如果响应于请求而发送,则操作系统可以提供待使用的对话令牌(如下所述),并且驱动器344可以然后使用指定的对话令牌;
b.完成请求。如果驱动器344选择对话令牌,则其可以在请求的完成中将对话令牌报告给操作系统320 ;
c.与巾贞传达到的Wi-FiDirect设备同步。根据实现,如果响应于接收的请求(例如在邀请请求的接收时发送邀请响应)而发送,则该步骤可以省略;
d.发送帧&等待ACK;
e.一旦接收到用于帧的ACK或如果重试尝试均没有得到ACK,则将NDIS_STATUS指示发送到操作系统320,以通知关于行动帧的传输状态。该指示可以包括来自包含行动帧的分组的信息元素。如果发送是针对将从对等设备接收应答的帧并且传输成功,则端口可以对于对等设备保持可用,以便将应答行动帧发送到迷你端口。超时以及可用机制可以服从Wi-Fi对等技术规范。触发功能模块394C在功能模块394C与端口关联时发送行动帧的操作系统320内的具体组件对于本发明不是关键。然而,图3示出操作系统320内的设备管理器330。设备管理器330例如可以是本领域已知的设备管理器,其可以呈现用户或编程接口,用户或其它执行组件通过其可以请求使用对等通信建立与设备的通信会话。当端口(例如端口 386)通过将该端口与功能模块394C进行关联而被配置为充当用于对等通信的控制器时,设备管理器330可以与端口 386交互,以控制建立与一个或多个设备的对等通信的各个方面。例如,设备管理器330可以接收请求计算设备310无线地连接到设备(例如打印机134)(图IA和图1B)的用户输入。响应于该输入,设备管理器330可以通过栈322与端口 386交互,使得功能模块394C控制无线电装置354发送行动帧。发送的行动帧可以是与设备或服务发现关联的行动帧。设备管理器330可以指定这些请求的属性,例如功能模块394C应寻找以发现计算设备310附近的任何设备或者仅提供标识的服务(例如打印机服务)的设备。然而,设备管理器330可以被配置为通过端口386以其它格式发送命令,以建立与群组中的一个或多个设备的通信。作为示例,图3示出操作系统320保持持久设备储存器328。持久设备储存器328可以包含标识计算设备310已经先前与其建立无线通信的设备的信息。该信息例如可以构成持久群组简档,其中一个或多个可以与用户的标识符关联。设备管理器330可以访问持久设备储存器328中的信息以识别具体设备,并且通过用于功能模块394C的端口 386发送命令以生成行动帧,从而建立与持久设备储存器328中标识的设备的无线连接。响应于用户输入或响应于任何其它合适的触发,这些行动可以自动地产生。在持久群组简档信息与计算设备的用户关联的实施例中,持久设备储存器328可以在形成群组(针对该群组的信息存储在持久设备储存器328中)的时间存储标识计算设备310的用户的信息。在设备管理器330需要信息(例如密码或标识符)以建立与外部设备的通信的情况下,设备管理器330可以替代地或附加地通过用户接口(图3中未明确示出)与用户交互,以从用户或某个另外源获得该信息。例如可以在计算设备310与一个或多个远程设备的配对期间获得的该信息可以存储在持久设备储存器328中。以此方式,无需再次从用户获取例如在与远程设备的配对仪式期间从用户获得的信息以重新建立与远程设备的对等连接。此夕卜,可以从持久设备储存器328获得信息。然而,无论获取从用户输入 的信息的方式如何,当需要发送该获取的信息时,设备管理器330可以与被配置为控制器的端口交互,以使得该信息被发送。无论触发配置为控制端口的端口(例如端口 386)以标识设备的群组的机制如何,控制端口可以发送并且接收行动帧,以标识形成包括计算设备310的群组的一个或多个设备。除了标识群组之外,通过端口 386发起的行动可以在该群组内协商计算设备310的角色。在Wi-Fi Direct对等协议的所示示例中,设备在群组中可以具有作为群组拥有者或作为客户机的角色。可以通过不同的端口执行与标识的群组中的另一设备或多个设备的通信。该端口可以被配置为支持针对计算设备310识别的角色中的行为。在图3所示示例中,示出附加端口 388和390。这些端口中的每一个可以与不同角色关联。例如,端口 388可以与群组拥有者的角色关联。端口 390可以与客户机的角色关联。可以通过将端口与执行与角色关联的操作的功能模块进行关联来进行用于不同角色的端口配置。例如,可以将功能模块394D (其执行与操作为群组拥有者的设备关联的功能)与端口 388进行关联。类似地,可以将功能模块394E (其执行与操作为客户机的设备关联的功能)与端口 390进行关联。在操作中,由于通过具有与端口 388或390关联的MAC地址的无线电装置354接收分组,因此复用器/解复用器392将路由这些分组,以便在关联的端口内处理。功能模块394D可以处理路由到端口 388的分组,功能模块394D可以执行与群组拥有者的角色关联的行动。可以通过将数据放置在存储器中并且通知栈322已经接收数据来处理包含数据帧的分组。与操作系统320的该交互可以使用本领域已知的栈信令技术。但每一端口与操作系统320之间的通信产生的具体机制对于本发明并非关键。当作为与其中计算设备310是群组拥有者的群组建立的会话的部分发送行动帧时,复用器/解复用器392可以类似地将这些行动帧路由到端口 388。功能模块394C可以被配置为响应于这些行动帧,或可以被配置为将行动帧报告给操作系统320,这取决于是否对功能模块394C进行编程以响应于它们。相似地,如果计算设备310被配置用于群组中的客户机的角色,则与该群组中的设备的通信有关的分组将通过使得复用器/解复用器392将这些分组路由到配置为客户机的端口(例如端口 390)的MAC地址来标识。端口 390可以与功能模块394E关联,来根据对等协议实现客户机的功能。功能模块394E可以被配置为使用本领域已知的技术,将数据从这些分组中的数据帧传送到存储器,并且向操作系统320通知该数据。功能模块394E可以对包含行动帧的分组响应,或可以向操作系统320通知这些管理帧。可以将功能模块394C、394D和394E编码为实现根据对等协议(例如Wi-Fi Direct协议)规定的功能。附加地,功能模块394C、394D和/或394E可以被配置为支持与用户关联的持久群组。配置功能模块可以包括合并计算机可执行指令,当执行指令时将用户的标识符插入这些功能模块发起或处理的一个或多个消息。在一些实施例中,当基于一个或多个MAC地址356A……356E处理传统地包括标识符的消息时,功能模块可以替代地或附加地将计算设备的当前用户的标识符合并到该消息。如以上结合图IA和图IB描述的那样,可以基于计算设备的用户输入的证书而确定该标识符。然而,可以通过任何另外合适的方式来确定该用户标识符。在计算设备310具有作为群组拥有者的角色的情况下,设备执行的功能可以包括生成用于对等群组的标识符。在一些实施例中,该标识符可以包括在形成 对等群组的时间计算设备的用户的标识符。附加地,根据对等协议操作的设备所执行的功能可以包括检测先前与之形成持久对等群组的远程设备。在检测该远程设备时,设备执行的功能可以包括基于先前存储的持久简档信息而建立与该远程设备的通信。可以通过适当地配置功能模块394C来实现这些功能。然而,可以使用任何合适的实现。图3示出通信功能的具体等级。在无线电装置354内执行和与外部设备的通信有关的特定功能。在驱动器344内执行其它功能。在操作系统320内执行其它功能。虽然未具体示出,但通过应用220 (图2)或来自用户或计算设备310外部的源的输入甚至可以执行其他功能。通过该架构,可以在架构中的较高级别处执行较高级别功能,例如确定连接哪些设备作为对等群组的部分。反之,可以在架构中的较低级别处执行较低级别功能,例如生成对于接收的分组的确认。例如,驱动器344可以被配置为生成该确认。虽然可以对功能进行不同区分从而通过不同组件控制通信的不同方面的其它架构是可能的,但在所示示例中,无线电装置354和驱动器344被配置为无状态地(statelessly)响应于事件,例如命令或接收的分组。就在通信会话中包括状态信息方面而言,可以将该状态信息保存在操作系统320内。例如,栈322可以保存用于通过端口 382、384、386、388和390中的任一端口执行的通信会话的状态信息。保存的具体状态信息可以取决于端口中的每一个支持的协议内的状态的数量和类型。在图3的示例中,示出会话状态信息324A与端口 388关联。虽然未明确示出,但可以保存用于其它端口的会话状态信息。取决于端口 388实现的协议,这些会话状态信息可以指示会话的参数,例如加入计算设备310是群组拥有者的群组的设备的数量。其它状态信息(例如直到这些设备可以进入较低功率模式的时间)也可以存储为会话状态信息324的部分。图3附加地示出与端口 388关联的会话状态信息324B和324C。状态信息324B和324C可以描述不同的会话。如果计算设备310加入其中其为群组拥有者的三个群组中,则这些会话可能出现。为了支持多个这样的会话,可以提供一种机制将发送或接收的具体帧与对应会话进行关联。可以使用任何合适的一个或多个标识符。例如,与设备的群组的通信可以被看做会话,从而群组的标识符可以用于聚集有关通信作为会话的部分。栈322提供对设备管理器330或其它组件的接口,其将每一会话与作为该会话中的结束点的适当组件进行关联。可以使用本领域已知的技术来执行这种对接。除了保存允许适当地呈现来自分离会话的通信的状态信息之外,作为对于每一会话保存的状态信息的部分,栈322可以保存允许栈322对作为通信交换的部分的通信进行相关以执行功能的信息。例如,当发送表示请求的帧时,识别后续接收的帧是对该请求的响应可以促进请求和响应的处理。尤其是如果在相同端口上支持多个会话,则提供用于对作为交换的部分的通信进行相关的机制可以促进处理。为了实现作为交换的部分的通信的识 另IJ,可以使用“对话令牌”。可以通过该对话令牌来标记发起交换的通信。在响应于该通信时,可以将来自该请求的对话令牌拷贝到响应。相应地,发送请求的设备可以将响应或作为相同交换的部分的任何另外通信与请求进行关联。相应地,状态信息324A可以包含与进行中的通信关联的对话令牌,所述进行中的通信包括作为会话的部分通信的任何设备。可以通过任何合适的方式生成对话令牌。例如可以在操作系统320内生成它们。替代地,如果在端口中发起开始对话的分组,则端口或驱动器344内的其它组件可以生成令牌。相似地,如果在端口(例如端口 386、388或390)内生成对分组的应答,则该端口可以在应答中插入令牌。反之,如果响应于操作系统320内生成的命令而发起对分组的应答,则操作系统320内的组件(例如栈322)可以指定令牌以便包含在应答中。对于列出的行动帧,表I指示了是在操作系统中、或如果不是则在驱动器中生成与行动帧关联的对话令牌。然而,应理解,表I仅表示可以如何划分生成用于帧的对话令牌的功能的一个示例,并且可以使用该功能的任何合适的划分。结合端口 390示出相似的会话状态信息326A、326B和326C。会话状态信息326A、326B和326C可以表示针对三个会话中的每一个保存的状态,其中,每一会话与计算设备310是具有客户机角色的成员的群组关联。至于会话状态信息324A、324B和324C,可以将唯一对话令牌与会话中的每一个进行关联,允许栈322分离与会话中的每一个关联的接收分组。类似地,计算设备310可以使得对话令牌与从计算设备310发送的分组关联。对话令牌可以用于允许栈322或从计算设备310接收分组的远程设备上的相似处理组件关联作为信息的多分组交换的部分的分组。例如,应答第一分组而发送的第二分组可以包括来自第一分组的令牌。结果,当第一分组的发送器接收到第二分组时,其可以将第一分组和第二分组与相同对话进行关联。通过图3所示的架构,可以在操作系统320内保存涉及连接中的每一个的状态信息。结果,端口 386、388和390无需保存状态信息。在一些实施例中,功能模块(例如实现端口的功能的功能模块394C、394D和394E)不保存状态信息。此外,可以将功能模块中的每一个编码为对事件(例如来自操作系统320的命令或无线电装置354传递的接收分组)作出响应。然而,无论如何划分该功能,可以控制计算设备310以通过建立并且配置端口来执行每一实体的功能而提供与多个实体关联的功能。结果,因为驱动器344和无线电装置354可以被配置为支持多个端口,所以计算设备310可以同时作为不同的实体操作。这些实体可以包括与基础架构模式通信关联的实体以及与对等通信关联的实体。然而,无论如何构建计算设备,设备可以实现基础架构模式协议和/或对等协议中定义的功能。根据对等协议操作的设备所执行的功能可以包括形成用于对等通信的两个或更多个设备的群组。形成群组的一个方面可以包括选择群组的设备,以执行与群组的控制关联的功能。这些功能例如可以包括确定允许哪些设备加入群组,提供用于群组的标识符,并且提供用于群组内的设备的地址。在本文描述的示例性实施例中,所述设备可以是群组拥有者。作为群组的部分的其它设备可以是群组拥有者的客户机。形成群组的另一方面可以是确定群组是否为持久群组。可以基于设备之间交换的信息或以任何合适的方式确定群组是否为持久群组。如果群组是持久的,则形成群组会需要创建并且存储持久群组简档。在一些实施例中,可以与持久群组简档关联地存储用户的标识符。形成群组的又一方面可以是检测附近已知设备,选择对于与该设备形成群组适当的持久群组简档,然后基于持久群组简档而形成该群组。图4示出群组中的设备可以操作的方法,包括形成与用户关联的持久群组。通过第一用户设备和远程设备的交互而执行方法400。执行图4所示的处理的设备对于本发明不是关键的。用户操作的任何设备可以是第一用户设备。然而,在一些实施例中,第一用户 设备可以是计算设备,例如计算设备310 (图3)或计算设备110 (图1A)或计算设备150(图1B)。任何合适的设备也可以充当执行方法400的远程设备。例如,相机130或打印机134 (图IA和图1B)可以是远程设备。在图4所示的示例性处理400中,处理开始于在第一用户设备上执行的子处理410。在子处理410中,用户可以登录到计算设备。可以通过任何合适的方式执行子处理410,包括使用本领域已知的登录机制。作为一个示例,子处理410可以包括第一用户设备的操作系统的组件呈现用户接口,用户通过其可以输入用户名称和密码或标识用户的其它信息。然而,应理解,用于执行子处理410的具体组件对于本发明不是关键。在一些实施例中,图4所示的登录会需要提供与第一用户设备外部托管(hosted)的服务关联的登录证书。在图I B的示例中,该服务可以在服务器140上托管,从而可以通过与服务器140或第一用户设备外部的其它组件的交互而执行子处理410。然而,无需在子处理410获取的登录信息用于除了得到在根据对等协议发送的消息中用于标识当前用户的信息之外的任何目的。无论执行子处理410的具体机制如何,作为执行子处理410的结果,第一用户设备可以获得标识与执行登录处理的用户有关的信息。该用户可以因此被推断为第一用户设备的当前用户。在块412,通过完成子处理410获得的用户信息可以用于确定与第一用户设备的当前用户关联的用户标识符。可以基于子处理410中获取的信息而以任何合适的方式生成用户标识符。在一些实施例中,用户标识符可以简单地是子处理410中用户输入的一条或多条信息。替代地或附加地,可以使用作为执行子处理410的结果而确定的一条或多条信息来生成用户标识符。在一些实施例中,可以通过对在子处理410期间用户输入的一条或多条信息执行计算来生成用户标识符。例如,生成用户标识符会需要对子处理410中用户输入的用户名称和/或密码执行的加密功能。无论确定用户标识符的方式如何,用户标识符都可以在第一用户设备根据对等协议发送的消息中使用,其可以响应于任何合适的事件而发送。例如,可以在第一用户设备发送的一个或多个行动帧中合并标识符。在该示例中,在块412,第一用户设备广播合并了用户标识符的消息,例如根据对等协议格式化的探测消息。虽然其中合并用户标识符的消息的具体类型对于本发明不是关键,但在该示例中,在块412与用户标识符一起发送的消息可以响应于用户输入而发起第一用户设备与远程设备的配对,以形成与远程设备的连接,从而形成包含至少这两个设备的群组。相应地,处理400可以进入块414,远程设备可以执行块414。在块414,远程设备检测第一用户设备在块412发送的消息,并且可以然后与第一用户设备配对。相应地,处理400进入第一用户设备执行的子处理420以及远程设备执行的子处理430。在子处理420和430中,设备交换消息,导致形成群组。在子处理420内,第一用户设备执行子处理422。在子处理422中,第一用户设备根据对等协议发送并且接收消息,其形成包括远程设备的持久群组。相似地,在子处理430内,远程设备执行子处理432,在该子处理中,其加入持久群组。子处理432内的处理可以包括发送并且接收根据对等协议格式化的消息。子处理422内的处理也会需要访问形成持久群组中使用的信息。可以从包括用户 输入的任何合适的源获得该信息。例如,作为根据对等协议形成群组的部分,用户可以输入PIN或设备配对以其为条件的另外值。替代地或附加地,该信息可以包括用户命令,例如正形成的群组应为持久群组或该群组应与用户关联并且通过用户操作的任何计算设备重新形成的命令。然而,这些用户输入可以替代地指示,虽然持久,但正形成的群组应仅在第一用户设备上重新建立。然而,在所示实施例中,子处理420中的处理形成与用户关联并且在相同用户操作的其它计算设备上重新建立的持久群组。在该示例中,子处理422和432内的消息的交换导致形成对等群组并且选择设备以作为该群组的群组拥有者操作。在该示例中,选择第一用户设备作为群组拥有者。然而,无需具体用户(持久群组与其关联)操作的计算设备被选择为该持久群组的群组拥有者。在子处理422中形成持久群组可以导致在第一用户设备上生成用于该持久群组的简档。该简档可以包括可由第一用户设备使用以保存或稍后重新建立与远程设备以及群组中的其它设备的连接的任何合适的信息。相似地,执行子处理432可以导致在远程设备上生成用于持久群组的简档。简档中的信息可以包括持久群组简档中传统地存储的信息,包括群组标识符和PIN或用于重新形成群组的其它信息。在第一用户设备与远程设备之间交换的一个或多个消息可以包括在块412确定的用户标识符。以此方式,设备中的每一个可以将持久群组与该用户进行关联。相应地,在子处理420内,处理可以进入块424。在块424,第一用户设备可以通过用户标识符来标记持久群组简档。在块424的处理例如会需要在与用户标识符关联的持久设备储存器328 (图3)中存储表示群组简档的信息。当检测到群组简档中标识的设备时,第一用户设备可以随后使用持久设备储存器328中的简档来重新建立群组。然而,如在此所述,在用户是第一用户设备的当前用户时,基于与用户关联的简档而形成群组可能是偶然的。通过在块424将用户标识符与群组简档进行关联,在重新建立与作为持久群组的成员的设备的连接之前,第一用户设备可以验证此时设备的用户是与持久群组简档关联的标记标识的相同用户。在块426,可以使得以用户标识符标记的简档对于相同用户可以操作的其它设备是可访问的。在该示例中,在块426的处理需要将新持久群组简档上传到联网计算设备。例如,在块426的处理会需要在服务器140上存储新持久群组简档(图1A)。在存储持久群组简档中,简档可以与用户关联。任何合适的机制可以用于将简档与用户进行关联。例如,可以结合对于该用户保存的账户而在服务器140上存储简档。替代地或附加地,可以与简档一起存储用于用户的一个或多个标识符。标识符可以包括在块412生成的用户标识符或任何另外合适的标识符。远程设备也可以存储关于在子处理432中形成的持久群组的信息,其允许远程设备作为持久群组的部分、与相同用户操作的任何设备连接。相应地,子处理430继续从子处理432到块434。在块434,以用户的标识符标记作为执行子处理432的结果生成的群组简档。在所示实施例中,与远程设备上的群组简档关联的标记可以是与第一用户设备上的群组简档关联的相同标记。为了实现该结果,用户标识符可以是在第一用户设备发送的消息中接收的值。然而,应理解,无需第一用户设备和远程设备都使用相同用户标识符。此外,可以采用在用户操作的同时可在远程设备上使用以标识设备发送的消息的任何标识符。无论在块434与群组简档关联的标识符的属性如何,处理可以进入块436。在块436,远程设备可以结合用户标识符而存储简档。存储群组简档的方式对于本发明不是关 键。然而,简档可以存储在远程设备上的非易失性存储器中或任何另外合适的存储位置。图4示出在第一用户设备完成子处理420并且远程设备完成子处理430之后处理400结束。然而,设备可以继续操作,执行其它处理。在处理400完成之后,第一用户设备和远程设备可以根据对等协议交换无线消息。可以根据已知的技术或通过任何另外合适的方式来执行消息的这种交换。虽然图4未示出,但消息的这种交换可以继续,直到第一用户设备与远程设备之间的连接破坏,由此挂起(suspend)形成群组的设备之间的通信。通信的这种挂起可以通过任何合适的方式发生。例如,可以关闭设备中的一个或多个,或可以移动设备中的一个或多个,使得设备之间的分离太大而不支持可靠的无线通信。替代地,将用户输入递送到设备中的一个或两个可以结束连接。然而,因为设备已经形成持久群组,所以设备中的一个或两个可以基于持久群组简档而重新建立通信,如下所述。处理400需要消息的通信,其中的一些或所有可以包括用户标识符。图5A、图5B和图5C示出可以根据处理400或对等群组的形成可以取决于群组中的设备的用户的其它处理而传递的消息的示例性格式。图5A是可以根据本领域已知的对等协议而格式化的消息510的示意性说明。该消息可以包括包含各个类型的信息的一个或多个字段。在该示例中,为了简明而示出两个这种字段。然而,应理解,消息可以包括包含任何合适的类型的信息的任何合适数量的字段。在该示例中,字段512可以包括消息内容。在消息510表示行动帧的实施例中,字段512可以包含表示具体行动的代码。在其它实施例中,消息510可以表示数据消息。相应地,字段512可以包含设备之间正传递的数据。然而,字段512中包含的内容的具体类型对于本发明不是关键。消息510还包括标识符字段514。标识符字段514可以包括用于发送消息510的设备的标识符。在该示例中,基于发送消息510的设备的全局唯一硬件标识符而生成标识符。该全局唯一硬件标识符可以根据对等协议充当用于设备的设备地址。例如,其可以是如以上结合图3描述的MAC地址。
无论字段514中的标识符的源如何,根据一些对等协议,字段514中的标识符可以用于标识持久群组。作为具体示例,根据Wi-Fi Direct协议,群组中的所有设备使用被选择为群组拥有者的设备的硬件标识符作为用于群组的标识符。相应地,当消息510表示持久对等群组中的群组拥有者发送的消息时,该硬件标识符将由群组中的设备用于建立群组,并且在稍后时间重新建立群组。具体地说,在持久群组的传统实现中,已经加入由特定硬件标识符标识的持久群组的设备在其后续接收到以相同硬件标识符标识的消息的情况下,将尝试基于其已经与该硬件标识符关联地存储的持久群组简档来重新形成群组。图5B示出代替在持久群组与用户关联的实施例中的消息510或除了消息510之外可以使用的消息520。在该示例中,消息520包含与消息510相似的字段512和514。附 加地,消息520包括字段526,字段526包含可以标识用户的信息。在该示例中,字段526包含发送消息520的设备的当前用户的标识符。例如可以在块412 (图4)发送该消息。接收该消息的设备可以使用字段526中的值来标识设备的用户。在图4的示例中,在块434的处理会需要基于字段526中的值标记群组简档。字段526可以通过任何合适的方式合并到消息520。在一些实施例中,字段526可以合并为消息520中的信息元素。信息元素可以是在根据协议格式化的消息的部分中插入的代码或信息的另外单元。协议不指定信息元素的格式或内容,但可以指定根据协议操作的设备接受包括信息元素的消息。然而,应理解,用户标识符无需合并到消息作为信息元素或根据对等协议格式化的消息中的另外附加字段。在一些实施例中,用户标识符可以占据消息中的其它信息的位置。图5C示出该消息530。消息530具有与消息510相同的格式。其包括例如包含消息内容的字段512。消息530在字段514的位置中还包括字段534。在该示例中,字段534包含基于用户标识符的值而非包含硬件标识符。以此方式,被编程以基于硬件标识符识别已知设备的设备、即使不将该设备修改为处理用户标识符,也可以基于其用户而识别设备。可以结合一些实施例(例如以下结合图7和图8描述的实施例)而使用该消息。无论用于传送用户标识的消息的格式如何,这些消息可以用于标识目的是基于先前建立的对等群组而连接的设备。图6示出处理600,其中,先前加入具有第一用户设备的持久对等群组的远程设备基于针对第一用户设备而创建的持久群组简档来与第二用户设备形成对等群组。在该示例中,基于第二用户设备正由与第一用户设备相同的用户操作的指示而选择群组简档。如所示,处理600开始于在第二用户设备上执行的子处理610。子处理610会需要用户登录到第二用户设备。相应地,子处理610会需要与以上结合块410描述的相同的处理。然而,处理600可以包括导致第二用户设备获得涉及该用户的信息的任何合适的处理。在块612,第二用户设备可以使用关于用户的信息来访问由一个或多个设备在被用户先前操作时先前建立的群组的持久群组简档。在块612的处理会需要访问在块426(图4)存储持久群组简档的一个或多个位置。例如,在块612的处理会需要基于通过子处理610获取的用户登录信息来访问服务器140 (图IA和图1B)。无论获得持久群组简档的具体位置如何,第二用户设备可以被配置为与任何这种持久群组简档中标识的设备建立对等群组。该处理会需要根据支持持久群组的对等协议交换通信。然而,应理解,可以通过任何合适的方式使用在块612获得的群组简档,以建立与构成简档中定义的群组的一个或多个设备的通信。在该示例中,第二用户设备通过广播其可用性以参与群组而开始形成群组的处理。相应地,处理600可以进入块620,其中,第二用户设备可以广播其可用性。该广播可以包括第二用户设备的用户的标识符。在该示例中,标识符将揭示,即使用户正操作不同的用户设备,第二用户设备在图4的处理期间也正由与第一用户设备相同的用户操作。可以通过与在块412 (图4)的处理相同的方式来执行在块612的处理,但应理解,第二用户设备可以使用任何合适的处理。远程设备可以基于该广播而检测第二用户设备。相应地,处理600包括远程设备执行的块622。在该示例中,执行处理600的部分的远程设备可以是执行处理400(图4)的部分的相同远程设备。相应地,远程设备可以具有对在块436 (图4)存储的持久群组简档的访问。在块640,远程设备可以搜索其简档储存器以标识与在块620发送的用户标识符关联的持久群 组简档。因为远程设备在块436 (图4)已经存储以相同用户标识符标识的群组简档,所以在块640,可以选择该持久群组简档。无论基于与第一用户设备的交互而存储在块436存储的持久群组简档以及基于与第二用户设备的通信而执行处理600的事实如何,都可以选择在块436存储的持久群组简档,因为第一用户设备和第二用户设备发送包含相同用户标识符的消息。在块630,第二用户设备可以相似地访问持久群组简档。第二用户设备可以执行子处理632,远程设备可以执行子处理642。在子处理632和642期间,第二用户设备和远程设备可以交换消息,以根据对等协议建立群组。第二用户设备可以作为群组拥有者操作,并且通过子处理632重新创建处理400中形成的持久群组。远程设备可以在子处理642中重新加入持久群组。可以根据规定了基于先前创建的持久群组简档而重新形成持久群组的对等协议的部分、来执行子处理632中第二用户设备以及子处理642中远程设备执行的动作。然而,在该示例中,基于用于第二用户设备的当前用户的标识符选择在形成群组中使用的持久群组简档,而非设备基于充当群组拥有者的第二用户设备的硬件标识符来选择持久群组简档。结果,当相同用户在处理400 (图4)中正操作第一用户设备时创建的持久群组简档可以用于重新创建持久群组。以此方式,虽然第二用户设备先前从未与远程设备配对,但例如在块612产生的那样将持久群组简档移植到第二用户设备并且基于用户标识符而访问这些简档允许第二用户设备和远程设备形成连接,而无需执行配对仪式。结果,可以自动地执行导致第二用户设备和远程设备配对的子处理632和642,从而第二用户设备的用户无需将输入提供给第二用户设备以发起该配对。应理解,虽然图6示出与远程设备形成连接的第二用户设备,但任何数量的用户设备可以基于通过用户标识符存储的持久群组简档而与该远程设备形成连接。具有对持久群组简档信息的访问、并且可以生成由远程设备用于选择持久群组简档的用户标识符的任何用户设备可以与远程设备配对。相似地,任何数量的远程设备可以基于先前创建的持久群组简档而与用户设备配对,如果远程设备具有对该简档的访问以及用于将简档与用户(针对其创建该简档)操作的设备进行关联的机制。
在图4和图6所示的处理中,远程设备可以被配置为标识并且处理用户标识符。以此方式,用户标识符变为与可应用于具体用户操作的设备的持久群组简档关联。在一些实施例中,远程设备被配置为执行以下行动标识并且处理具体地充当根据传统对等协议不产生的用户标识符的参数。在一些情况下,可以期望用户特定持久群组包括尚未具体地被配置为支持基于用户的持久群组的远程设备。图7和图8示出了持久对等群组可以与具体用户而不是设备关联的实施例,其中所述设备可以包括尚未具体地被配置用于基于用户的持久群组的远程设备。图7示出无论用户操作的设备如何,形成可以被用户访问的持久群组的处理的替代实施例。图7示出第一用户设备和远程设备执行的处理700。处理700开始于子处理710。在子处理710,用户可以登录到第一用户设备。可以通过与子处理410相同的方式执行子处理710。然而,可以使用任何合适的登录机制。处理700可以继续到块712。在块712,可以基于通过子处理710获得的用户标识符来设置设备标识符。可以通过包括如上结合块412描述的任何合适的方式生成用户标识 符。然而,并非在消息中插入用户标识符,例如字段526 (图5B)所示,在块712生成的用户标识符可以用于代替基于第一用户设备的硬件而获得的设备标识符。例如,功能模块394C、394D和394E可以被配置为基于从计算设备310的硬件组件获得的值而将标识符插入通过计算310 (图3)发送的消息。在块712,在块712生成的用户标识符可以代替从硬件组件读取的值。相应地,每当功能模块394C、394D或394E发送具有标识符的消息时,消息将包含用户标识符而不是硬件标识符。该消息可以是消息530 (图5C)的格式或任何另外合适的格式。相应地,随着处理进入块720,第一用户设备将通过在块712基于用户标识符而设置的标识符来广播其可用性。在块722,远程设备可以基于在块720发送的消息检测第一用户设备。在该示例中,具有消息530的形式的在块720发送的消息是与传统消息510相同的形式。消息510和530的不同仅在于标识符字段中的值。相应地,在块722的处理会需要用于响应于传统消息的行动。这些行动可以包括执行子处理740,其中,远程设备加入第一用户设备形成的持久群组。执行子处理730的第一用户设备可以形成该群组。相应地,在子处理730内,第一用户设备可以通过与远程设备交换消息而执行子处理732。可以根据支持形成持久群组的对等协议而格式化这些消息。消息可以是用于形成持久对等群组的传统消息的格式,除了如图5C所示,消息中的硬件标识符(并非标识第一用户设备)将具有基于在块712设置的用户标识符的值。
在子处理740内,远程设备可以与第一用户设备交换消息,以加入持久群组。子处理742内交换的消息可以与在用于形成持久对等群组的传统协议中的类似。然而,在该示例中,远程设备基于第一用户设备(其在该示例中作为群组拥有者操作)发送的消息的硬件标识符字段中包括的值来标识持久群组。结果,远程设备将存储用于与操作第一用户设备的用户关联的持久群组的标识符。相应地,在远程设备存储持久群组简档的块744,与用户标识符关联地存储持久群组简档。相似地,当第一用户设备在块734存储简档时,存储的简档还与用户标识符关联。在该示例中,存储持久群组简档需要将持久群组简档上传到外部设备。可以使用如以上结合块426 (图4)描述的行动来执行该处理。然而,可以通过任何合适的方式来执行该处理。存储的简档可以通过存储用户标识符作为标记或成为简档的部分的其它值而与用户关联。然而,在块734存储简档替代地或附加地会需要以任何另外合适的方式将简档与第一用户设备的用户进行关联。一旦已经建立群组,并且存储用于群组的简档,处理700就可以结束。虽然图7未明确示出,但可以在处理700结束之后执行其它处理。例如,第一用户设备和远程设备可以继续通信,交换作为持久群组的部分的消息。这些通信可以继续,直到挂起持久群组。一旦挂起群组,设备中的一个或两个就可以稍后基于它们可以访问的持久群组简档信息而重新形成群组。图8示出远程设备在稍后时间可以建立与相同用户操作的第二用户设备的连接。然而,在该示例中,在执行处理700期间在用户提供对第一用户设备提供的相同证书时,群 组形成可以是偶然的。处理800开始于第二用户设备执行的判决块810。在判决块810,处理取决于用户是否对于第二用户设备呈现证书而分支。如果是,则处理800可以进入子处理812。在子处理812,第二用户设备可以接收这些用户证书,并且完成登录处理。子处理812会需要如上结合子处理412描述的处理。然而,可以执行任何合适的登录步骤。一旦用户已经登录,处理可进入块814。在块814,第二用户设备可以基于提供的证书而下载与用户关联的持久群组简档。在块814的处理会需要与在块612的处理相同的步骤。然而,应理解,可以通过任何合适的方式在块814下载持久群组简档。在图8所示的实施例中,第二用户设备可以如其中用户标识符代替硬件标识符的图5C格式化消息。可以如以上结合块712描述的那样执行在块816的处理。然而,可以通过任何合适的方式来执行该处理。处理可以然后进入块820,其中,第二用户设备可以广播其可用性,以用于形成群组。在处理通过穿过块816而到达块820的情况下,这些消息将包括在块816基于用户标识符而设置的设备标识符。然而,在用户不呈现证书的情况下,处理800可以从判决块810分支到块820,而不执行在块816的处理。在此情况下,在块820的消息广播可以包括基于第二用户设备的硬件而不是用户标识符而设置的设备标识符。无论在块820发送的消息中包括的标识符的值如何,远程设备可以在块822接收这些消息,允许其检测第二用户设备。在块840,远程设备可以基于在块820发送的消息中包括什么标识符来选择简档。在基于用户标识符来设置标识符的实施例中,在块840的选择可以选择与第二用户设备的当前用户关联的先前创建的持久群组简档。反之,如果在块820发送的消息包含基于第二用户设备的硬件而设置的标识符,则远程设备可以基于硬件标识符选择持久群组简档。然而,无论选择的具体简档如何,处理800可以进入子处理842,其中,远程设备使用该持久群组简档以重新加入持久群组。相似地,在块830,第二用户设备可以选择用于持久群组的简档。该选择也可以基于用户是否已经提供证书。如果是,则在块830进行的选择可以来自基于用户证书在块814下载的持久群组简档当中。当在块814下载持久群组简档时,选择可以来自第二用户设备上存储的持久群组简档当中。无论在块830选择的具体持久群组简档如何,处理可以进入子处理832。在子处理832,第二用户设备可以与远程设备交换消息,以基于选择的简档而重新创建持久群组。可以使用用于根据支持持久群组的对等协议操作的设备的本领域已知的技术来执行子处理832和842。然而,在基于用户标识符在块816设置设备标识符的情况下,子处理832中发送的消息可以包括用户标识符而不是硬件标识符。在图8的示例中可见,用户设备可以被配置为根据对于用户而不是具体设备建立的持久群组简档而操作。在用户标识符可应用时代替硬件标识符的实施例中,远程设备不需要任何特殊配置来支持基于用户的持久群组。从前面可见,可以采用任何合适的技术来支持持久群组简档从用户操作的第一用户设备到相同用户操作的第二用户设备的移植。相似地,任何合适的技术可以用于从用户设备到一个或多个远程设备(用户正操作该设备)进行通信。无论使用的具体技术如何,一旦用户已经指定应形成持久群组,任何合适地装配的用户设备的用户可能遭遇关于连接的无线设备的相同计算环境,而不用明确地控制用户设备中的任一个以形成这些连接。这些操作可以在根据在此描述的技术而配置的、用户操作的任何用户设备上执行。图9示出该用户设备的示例。然而,图9也可以当做远程设备的示例。 图9示出可以实现本发明的合适的计算系统环境900的示例。计算系统环境900仅是合适的计算环境的一个示例,并且不意图暗示关于本发明的使用或功能的范围的任何限制。计算环境900也不应解释为具有与示例性操作环境900中所示的组件中的任何一个或组合有关的任何依赖性或需求。本发明对于大量其它通用或专用计算系统环境或配置是可操作的。可以适合于随本发明一起使用的公知计算系统、环境和/或配置的示例包括,但不限于,个人计算机、月艮务器计算机、手持或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费者电子设备、网络PC、小型计算机、大型计算机、包括以上系统或设备中的任一个的分布式计算环境等。计算环境可以执行计算机可执行指令,例如程序模块。通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。也可以在分布式计算环境中实践本发明,其中,通过以通信网络链接的远程处理设备执行任务。在分布式计算环境中,程序模块可以置于包括存储器存储设备的本地和远程计算机存储介质中。参照图9,用于实现本发明的示例性系统包括计算机910形式的通用计算设备。计算机910的组件可以包括,但不限于,处理单元920、系统存储器930以及系统总线921,其将包括系统存储器的各个系统组件耦合到处理单元920。系统总线921可以是若干类型的总线结构中的任一种包括存储器总线或存储器控制器、外围总线、以及使用各种总线架构中的任一种的本地总线。通过示例的方式,并且并非限制,这些架构包括工业标准架构(Industry Standard Architecture, ISA)总线、微通道架构(Micro ChannelArchitecture,MCA)总线、增强型 ISA(Enhanced ISA, EISA)总线、视频电子标准协会(VideoElectronics Standards Association, VESA)本地总线、以及也被称为 Mezzanine 总线的外围组件互连(Peripheral Component Interconnect, PCI)总线。计算机910典型地包括各种计算机可读介质。计算机可读介质可以是计算机910可以访问的任何可用介质,并且包括易失性和非易失性介质、可拆卸和不可拆卸介质。通过示例的方式,并且并非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括通过用于信息(例如计算机可读指令、数据结构、程序模块或其它数据)存储的任何方法或技术实现的易失性和非易失性、可拆卸和不可拆卸介质。计算机存储介质包括但不限于RAM、ROM、EEPR0M、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光存储、磁盒、磁带、磁盘存储或其它磁存储设备、或可以用于存储期望的信息并且计算机910可以访问的任何其它介质。通信介质典型地实施计算机可读指令、数据结构、程序模块、或调制的数据信号(例如载波或其它传输介质)中的其它数据,并且包括任何信息传递介质。术语“调制的数据信号”表示以在信号中编码信息的这种方式设置或改变其特性中的一个或多个的信号。通过示例的方式,并且并非限制,通信介质包括有线介质(例如有线网络或直接有线连接)以及无线介质(例如声学、RF、红外和其它无线介质)。以上的任何的组合也应被包括在计算机可读介质的范围内。系统存储器930包括例如只读存储器(R0M)931 和随机存取存储器(RAM)932的易失性和/或非易失性存储器形式的计算机存储介质。在ROM 931中典型地存储基本输入/输出系统933 (basic input/output system,BIOS),其包含有助于例如在启动期间在计算机910内的元件之间传送信息的基本例程。RAM 932典型地包含对于处理单元920立即可存取和/或在处理单元920上目前正操作的数据和/或程序模块。通过示例的方式,并且并非限制,图9示出操作系统934、应用程序935、其它程序模块936以及程序数据937。计算机910也可以包括其它可拆卸/不可拆卸、易失性/非易失性计算机存储介质。仅通过示例的方式,图9示出读取自或写入到不可拆卸、非易失性磁介质的硬盘驱动器940、读取自或写入到可拆卸、非易失性磁盘952的磁盘驱动器951、以及读取自或写入到可拆卸、非易失性光盘956 (例如CD ROM或其它光介质)的光盘驱动器955。在示例性操作环境中可以使用的其它可拆卸/不可拆卸、易失性/非易失性计算机存储介质包括,但不限于,磁带盒、闪存卡、数字多功能盘、数字视频带、固态RAM、固态ROM等。硬盘驱动器941典型地通过不可拆卸存储器接口(例如接口 940)连接到系统总线921,磁盘驱动器951和光盘驱动器955典型地通过可拆卸存储器接口(例如接口 950)连接到系统总线921。以上讨论的并且图9所示的驱动器及其关联的计算机存储介质提供计算机可读指令、数据结构、程序模块以及用于计算机910的其它数据的存储。在图9中,例如,硬盘驱动器941示出为存储操作系统944、应用程序945、其它程序模块946以及程序数据947。注意,这些组件可以是与操作系统934、应用程序935、其它程序模块936以及程序数据937相同或不同的。操作系统944、应用程序945、其它程序模块946以及程序数据947在此被给出不同标号,以示出最少它们是不同的拷贝。用户可以通过输入设备(例如键盘962和一般称为鼠标、轨迹球或触摸板的指点设备961)将命令和信息输入到计算机910。其它输入设备(未示出)可以包括麦克风、操纵杆、游戏板、卫星天线、扫描仪等。这些和其它输入设备一般通过耦合到系统总线的用户输入接口 960连接到处理单元920,但可以通过其它接口和总线结构(例如并行端口、游戏端口或通用串行总线(universal serial bus, USB))而连接。监视器991或其它类型的显示设备也经由接口(例如视频接口 990)连接到系统总线921。除了监视器之外,计算机也可以包括其它外围输出设备(例如扬声器997和打印机996 ),其可以通过输出外围接口 995而连接。计算机910可以使用对于一个或多个远程计算机(例如远程计算机980)的逻辑连接在联网的环境中操作。虽然图9已经示出仅存储器存储设备981,但远程计算机980可以是个人计算机、服务器、路由器、网络PC、对等设备或其它公共网络节点,并且典型地包括与计算机910有关的以上描述的很多或所有元件。图9中描述的逻辑连接包括局域网(localarea network, LAN) 971 和广域网(wide area network, WAN) 973,但也可以包括其它网络。这些联网环境在办公室、企业范围的计算机网络、内联网以及互联网中是普通的。当在LAN联网环境中使用时,计算机910通过网络接口或适配器970连接到LAN971。当在WAN联网环境中使用时,计算机910典型地包括调制解调器972或用于建立通过WAN 973 (例如互联网)的通信的其它装置。可以在内部或外部的调制解调器972可以经由用户输入接口 960或其它适当的机制连接到系统总线921。在联网环境中,与计算机910有关而描述的程序模块或其部分可以存储在远程存储器存储设备中。通过示例的方式,并且 并非限制,图9示出如在存储器设备981上驻留的远程应用程序985。应理解,示出的网络连接是示例性的,并且可以使用建立计算机之间的通信链路的其它装置。已经这样描述了本发明至少一个实施例的若干方面,应理解,各种改动、修改和改进对于本领域技术人员将容易想到。例如,描述了群组的所有成员存储持久群组简档并且然后检索该简档以重新形成群组的实施例。在其它实施例中,仅群组中的设备的子集可以具有群组简档。作为具体示例,群组中的客户机设备可以存储标识群组拥有者的群组简档,但该群组拥有者可以不存储简档。这些改动、修改和改进目的是作为本公开的部分,并且目的是在本发明的精神和范围内。相应地,前面的描述和附图仅作为示例。可以通过大量方式中的任一个来实现本发明上述实施例。例如,可以使用硬件、软件或其组合实现实施例。当以软件实现时,可以在无论是在单个计算机中提供还是在多个计算机当中分布的任何合适的处理器或处理器的集合上执行软件代码。这些处理器可以实现为集成电路,其中,一个或多个处理器在集成电路组件中。然而,可以通过任何合适的格式利用电路来实现处理器。此外,应理解,可以通过多个形式(例如安装支架的计算机、台式计算机、膝上型计算机或平板计算机)中的任一形式来实施计算机。附加地,可以在通常不被看做计算机但具有合适的处理能力的设备中实施计算机,这些设备包括个人数字助理(PDA)、智能电话或任何另外合适的便携式或固定电子设备。此外,计算机可以具有一个或多个输入和输出设备。这些设备尤其可以用于呈现用户接口。可以用于提供用户接口的输出设备的示例包括用于输出的视觉呈现的打印机或显示器或者用于输出的听觉呈现的扬声器或其它声音生成设备。可以用于用户接口的输入设备的示例包括键盘、以及指点设备(例如鼠标、触摸板以及数字化平板)。作为另一示例,计算机可以通过语音识别或以另外听觉格式来接收输入信息。这些计算机可以通过任何合适形式的一个或多个网络互连,所述网络包括局域网或广域网,例如企业网络或互联网。这些网络可以基于任何合适的技术,并且可以根据任何合适的协议而操作,以及可以包括无线网络、有线网络或光纤网络。此外,在此概述的各个方法或处理可以编码为在采用各种操作系统或平台中的任一种的一个或多个处理器上可执行的软件。附加地,该软件可以使用多个合适的编程语言和/或编程或脚本工具中的任一种来写成,并且还可以编译为在框架(framework)或虚拟机上执行的可执行机器语言或中间代码。在这方面,本发明可以实施为以一个或多个程序编码的计算机可读存储介质(或多个计算机可读介质)(例如计算机存储器、一个或多个软盘、压缩盘(CD)、光盘、数字视频盘(DVD)、磁带、闪存、现场可编程门阵列或其它半导体设备中的电路配置、或其它非瞬时有形计算机存储介质),当在一个或多个计算机或其它处理器上执行时执行实现上述本发明的各个实施例的方法。计算机可读存储介质可以是可传送的,从而其上存储的一个或多个程序可以加载到一个或多个不同的计算机或其它处理器,以实现上述本发明的各个方面。如在此使用的那样,术语“非瞬时计算机可读存储介质”仅包括可以被看做产品(例如制造的物品)或机器的计算机可读介质。替代地或附加地,本发明可以实施为除了计算机可读存储介质之外的计算机可读介质,例如传播信号。术语“程序”或“软件”在此通常用于指代任何类型的计算机的代码或计算机可读 指令的集合,其可以被用来将计算机或另外处理器编程为实现上述本发明各个方面。附加地,应理解,根据该实施例一方面,当执行时执行本发明方法的一个或多个计算机程序无需驻留在单个计算机或处理器上,而是可以通过模块化方式分布在多个不同的计算机或处理器当中,以实现本发明各个方面。计算机可执行指令可以是很多形式,例如一个或多个计算机或其它设备执行的程序模块。通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。典型地,程序模块的功能可以如在各个实施例中期望的那样来组合或分布。此外,可以通过任何合适的形式在计算机可读介质中存储数据结构。为了简化说明,可以示出数据结构具有通过数据结构中的位置而相关的字段。可以通过分配用于具有计算机可读介质中的位置的字段的存储(其传送字段之间的关系)来类似地实现这些关系。然而,任何合适的机制可以用于建立数据结构的字段中的信息之间的关系,包括通过使用在数据元素之间建立关系的指针、标记(tag )或其它机制。本发明各个方面可以单独地、组合地或按照在前面描述的实施例中没有具体描述的各种布置来使用,并且因此并非将其应用限制为在前面描述中阐述或在附图中示出的组件的细节和布置。例如,一个实施例中描述的方面可以以任何方式与其它实施例中描述的方面组合。此外,本发明可以实施为已经提供示例的方法。可以通过任何合适的方式对作为方法的部分执行的动作进行排序。相应地,可以构建以与所示不同的顺序执行动作的实施例,其可包括同时执行一些动作,即使在说明性实施例中示出为顺序动作。权利要求中使用例如“第一”、“第二”、“第三”等的顺序术语以修改权利要求要素并非单独地意味着优先级、超前性、或一个权利要求要素顺序超过另一顺序或执行方法动作的时间顺序,而是仅用作区分具有特定名称的一个权利要求要素与具有相同名称(除了顺序术语的使用)的另一元素的记号,从而区分权利要求要素。此外,在此使用的措辞和术语目的是描述,不应被看做限制。在此使用“包括”、“包含”或“具有”、“包含”、“涉及”以及其变形表示包括其后列出的项及其等同物以及附加项。
权利要求
1.一种方法,包括 通过与用户关联的无线设备(110,150,310),与远程设备(130,134)进行通信(422,732),以形成至少包括所述远程设备的对等群组,所述无线通信包括发送用于形成包含所述用户的标识符的群组的至少一个消息(520,530);以及 存储(426,734)关于与所述用户的所述标识符关联的对等群组的信息,以便后续用于重连到对等群组中的所述远程设备。
2.如权利要求I所述的方法,其中 存储所述信息包括通过网络(124)发送信息以便存储到联网计算设备(440)上。
3.如权利要求2所述的方法,还包括 通过第二无线设备,基于所述用户的标识符从所述联网计算设备访问(612,814)存储的信息;以及 通过所述信息,配置所述第二无线设备,以形成第二对等群组(632,832),所述第二对等群组至少包括所述远程设备。
4.如权利要求2所述的方法,其中 所述用户的标识符是用于访问所述联网计算设备上的服务的所述用户的证书。
5.如权利要求I所述的方法,其中,所述信息至少包括与所述远程设备关联的PIN。
6.一种方法,包括 通过无线设备(110,150,310) 从所述无线设备的用户接收(710)证书; 基于所述用户的证书,确定标识符(712); 与远程设备进行无线通信(732),以形成至少包括所述远程设备和所述第一无线设备的对等群组,所述无线通信包括发送用于形成所述群组的至少一个消息,所述至少一个消息中的每一消息包含在消息的部分(5 34 )中确定的、标识发送所述消息的设备的标识符。
7.如权利要求6所述的方法,其中 所述无线设备是第一无线设备; 所述方法还包括 通过第二无线设备 与所述远程设备进行无线通信(832),以形成至少包括所述远程设备和所述第二设备的对等群组,所述无线通信包括发送用于形成所述群组的至少一个消息,所述至少一个消息中的每一消息在所述消息的部分中包含所确定的第一无线设备的标识符。
8.如权利要求7所述的方法,其中 根据支持基于存储的信息而重新形成群组的协议来形成所述对等群组;以及与所述第二无线设备的所述无线通信包括传递消息以根据所述协议而重新形成所述群组(832)。
9.如权利要求8所述的方法,还包括 通过所述第二无线设备 接收提供所述用户的标识符的用户输入(812);以及 选择用于在根据所述协议格式化至少一个消息的部分中使用的信息(820),所选择的信息包括所确定的第一无线设备的标识符。
10.如权利要求9所述的方法,其中 发送用于形成所述群组的至少一个消息包括根据Wi-Fi Direct协议发送消息。
11.一种计算机可读存储介质,包括在通过处理器执行后使得处理器执行按照权利要求I 一 10中任一项的方法的指令。
全文摘要
一种计算设备,其根据对等协议来形成群组,其中可以基于用户的证书来标识设备。所述证书可以用于确定用于所述用户的唯一标识符,使得在相同用户操作的任何设备上使用该相同标识符。可以结合支持持久对等群组的对等协议来使用所述标识符。结果,已与特定用户操作的任何设备配对的远程设备可以保留用于所述用户的唯一标识符,使得这些远程设备可以自动地建立与相似地使用用于所述用户的相同唯一标识符的、相同用户操作的任何另外设备的连接。
文档编号H04L29/08GK102685206SQ20121006640
公开日2012年9月19日 申请日期2012年3月14日 优先权日2011年3月14日
发明者A.A.哈桑, H.菲尔盖拉斯, M.K.德赛, M.S.埃尔哈达德, M.桑卡拉纳拉延 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1