共享会话技术转让专利

申请号 : CN201580047543.1

文献号 : CN106796626B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : K.辛赫Y.巴曼O.T.尤雷彻J.M.希汉

申请人 : 微软技术许可有限责任公司

摘要 :

描述了数据共享会话技术。在一种或多种实施方式中,当利用计算设备的操作系统在第一用户的第一用户资料的情境内运行时发起第一用户登录会话。由该操作系统接收用于在第二用户的第二用户资料的情境中运行该第一用户登录会话的请求。该第二用户资料由该操作系统与在该计算设备的操作系统的第一用户登录会话内所创建的影子登录会话相关联,而使得第二用户与操作系统的交互与第二用户资料相关联并且第一用户与操作系统的交互与第一用户资料相关联。

权利要求 :

1.一种方法,包括:

当利用计算设备的操作系统在第一用户的第一用户资料的情境内运行时发起第一用户登录会话;

由所述操作系统在所述第一用户登录会话的发起之后并且在没有用于在第二用户的第二用户资料的情景内运行所述第一用户登录会话的请求的情况下,创建影子登录会话;

在创建所述影子登录会话之后,由所述操作系统接收用于在所述第二用户的所述第二用户资料的情境中运行所述第一用户登录会话的请求;

对作为所述请求的一部分所接收的所述第二用户资料相关联的证书进行安全验证,并且响应于所述验证而接收用于将所述第二用户资料与所述影子登录会话进行关联的针对所述第二用户的用户设置;以及由所述操作系统将所述第二用户资料与所述影子登录会话相关联,而不在登录之间切换,以使得所述第二用户与所述操作系统的交互与所述第二用户资料相关联并且所述第一用户与所述操作系统的交互与所述第一用户资料相关联。

2.根据权利要求1所述的方法,其中所述影子登录会话在与用来执行所述第一用户登录会话的所述第一用户资料的一个或多个线程分离的线程上执行。

3.根据权利要求1所述的方法,其中所述请求通过与所述计算设备所执行的应用的交互而被接收,并且所述关联使得所述应用被执行而使得所述第二用户与所述应用的交互与所述第二用户资料相关联并且所述第一用户与所述应用的交互与所述第一用户资料相关联。

4.根据权利要求3所述的方法,其中所述第一用户和所述第二用户与所述应用的所述交互能够在并不切换登录的情况下执行。

5.一种存储器设备,具有存储于其上的程序指令,所述指令在由计算设备的处理器执行之后使得所述计算设备:在利用所述计算设备的操作系统在第一用户的第一用户资料的情境内发起第一用户登录会话之后,创建影子登录会话;

接收用于在第二用户的第二用户资料的情境中运行所述第一用户登录会话的请求;

对作为所述请求的一部分所接收的所述第二用户资料相关联的证书进行安全验证,并且响应于所述验证而接收用于将所述第二用户资料与所述影子登录会话进行关联的针对所述第二用户的用户设置;以及将所述第二用户资料与所述影子登录会话相关联,而不在登录之间切换,以使得所述第二用户与所述操作系统的交互与所述第二用户资料相关联并且所述第一用户与所述操作系统的交互与所述第一用户资料相关联。

6.根据权利要求5所述的存储器设备,其中所述影子登录会话在与用来执行所述第一用户登录会话的所述第一用户资料的一个或多个线程分离的线程上执行。

7.根据权利要求5所述的存储器设备,其中所述请求通过与所述计算设备所执行的应用的交互而被接收并且所述关联使得所述应用被执行,并且其中所述第二用户与所述应用的交互与所述第二用户资料相关联并且所述第一用户与所述应用的交互与所述第一用户相关联。

8.根据权利要求7所述的存储器设备,其中所述第一用户和所述第二用户与所述应用的所述交互能够在并不切换登录的情况下执行。

9.一种计算设备,包括:

处理器;和

存储器,耦合到所述处理器,所述存储器具有存储于其上的程序指令,所述指令在由所述处理器执行之后使得所述计算设备:在第一用户资料的情境内发起第一用户登录会话之后,在没有用于在第二用户的第二用户资料的情景内运行所述第一用户登录会话的请求的情况下,创建影子登录会话;

接收用于在所述第二用户的所述第二用户资料的情境中运行所述第一用户登录会话的请求;

对作为所述请求的一部分所接收的所述第二用户资料相关联的证书进行安全验证,并且响应于所述验证而接收用于将所述第二用户资料与所述影子登录会话进行关联的针对所述第二用户的用户设置;以及将所述第二用户资料与所述影子登录会话相关联,而不在登录之间切换,其中所述第二用户与操作系统的交互与所述第二用户资料相关联并且所述第一用户与所述操作系统的交互与所述第一用户资料相关联。

10.根据权利要求9所述的计算设备,其中所述影子登录会话在与用来执行所述第一用户登录会话的所述第一用户资料的一个或多个线程分离的线程上执行。

11.根据权利要求9所述的计算设备,其中所述请求通过与所述计算设备所执行的应用的交互而被接收并且所述关联使得所述应用被执行,其中所述第二用户与所述应用的交互与所述第二用户资料相关联并且所述第一用户与所述应用的交互与所述第一用户资料相关联,并且其中所述第一用户和所述第二用户与所述应用的所述交互能够在并不切换登录的情况下执行。

12.一种其上存储计算机可执行指令的计算机可读存储介质,所述指令当由计算设备执行时,使得所述计算设备实现如权利要求1-4中的任一个所述的方法。

说明书 :

共享会话技术

背景技术

[0001] 可供用户在各种设置中进行交互所使用的计算设备的类型在不断增加,从传统的台式个人计算机到笔记本电脑、机顶盒、游戏机以及诸如移动电话和平板电脑的移动计算设备。因此,用户可以访问各种不同类型的计算设备,后者可以被配置为支持诸如办公室、家庭、移动使用等的各种不同设置中的交互。
[0002] 然而,用于支持与这些设备的用户交互的常规技术通常是以单一用户为中心的。例如,用户可以使用与该用户相关联的用户资料登录到计算设备以与该计算设备进行交互。以这种方式,用户可以使用自定义设置和用户偏好来执行该交互。然而,这些常规技术并未提供针对多身份交互的支持,因此这些常规技术仅限于一对一的情形,并且因此在诸如聚会、会议等可能涉及多个用户的一些设置中可能会有所不便。

发明内容

[0003] 描述了数据共享会话技术。在一种或多种实施方式中,当利用计算设备的操作系统在第一用户的第一用户资料的情境内运行时发起第一用户登录会话。由该操作系统接收用于在第二用户的第二用户资料的情境中运行该第一用户登录会话的请求。该第二用户资料由该操作系统与在该计算设备的操作系统的第一用户登录会话内所创建的影子登录会话相关联,而使得第二用户与操作系统的交互与第二用户资料相关联并且第一用户与操作系统的交互与第一用户资料相关联。
[0004] 在一种或多种实施方式中,由计算设备的操作系统展现能够由该计算设备所能够执行的一个或多个应用所访问的功能。该功能被配置为执行操作,操作包括在该操作系统经由一个或多个应用编程接口(API)从一个或多个应用接收请求以发起数据共享会话。响应于该请求,经由该一个或多个应用和与访客相关联的一个或多个其它计算设备所执行的一个或多个其它应用之间的网络连接发起数据共享会话。
[0005] 在一种或多种实施方式中,一种系统包括处理系统和存储器,后者被配置为保存能够由该处理系统所执行从而实施一个或多个应用和操作系统的指令。该操作系统能够被执行以展现功能,该功能能够由该一个或多个应用所访问从而使得创建与相应的一个或多个其它计算设备所执行的一个或多个其它应用的通信通道。该操作系统所创建的通信通道被配置为支持该一个或多个应用与该一个或多个其它应用之间的直接通信而并不涉及到该操作系统。
[0006] 提供该发明内容而以简化形式对在下文的具体实施方式中进一步进行描述的概念的选择进行介绍。该发明内容并非意在标识所请求保护主题的关键特征或必要特征,其也并非意在用于辅助确定所请求保护主题的范围。

附图说明

[0007] 参考附图对具体实施方式进行描述。在图中,附图标记最左侧的(多个)数字标识出该附图标记首次出现的图。在说明书和图的不同实例中使用相同的附图标记可以指示相似或相同的事项。图中所表示的实体可以指示一个或多个实体,并且因此在讨论中以可互换的形式对实体的单数或复数形式加以参考。
[0008] 图1是示例实施方式中能够进行操作以采用数据共享会话技术的环境的图示。
[0009] 图2描绘了示例实施方式中的系统,其中图1的操作系统经由应用编程接口从应用接收到请求以发起数据共享会话。
[0010] 图3描绘了示例实施方式中的系统,其中由图2的操作系统的会话管理器模块执行潜在访客的发现以及针对参与数据共享会话对潜在访客的认证。
[0011] 图4描绘了示例实施方式中的系统,其中通信通道由计算设备的操作系统的会话管理器模块所创建并且由图3的应用用来直接共享会话数据。
[0012] 图5描绘了示例实施方式中的系统,其中影子登录会话被用来支持与操作系统的多用户交互。
[0013] 图6是描绘示例实施方式中的过程的流程图,其中数据共享会话被发起并且被用来在主机所执行的应用与该主机的访客所执行的应用之间共享数据的过程的流程图。
[0014] 图7是描绘示例实施方式中的其中用户资料与影子登录会话相关联的过程的流程图。
[0015] 图8图示了包括能够被实施为参考图1-7所描述的任意类型的计算设备从而实施本文所描述的技术的实施例的示例设备的各个组件的示例系统。

具体实施方式

[0016] 概述
[0017] 支持与计算设备(诸如计算设备的操作系统和应用的)的用户交互的常规技术通常是以单一用户为中心的,因此仅限于用户和计算设备之间的一对一交互。因此,这可能限制在例如公共场所、会议室中的会议、聚会中的多个用户等的多用户场景中与计算设备的用户交互。
[0018] 描述了数据共享会话和协作技术。在一种或多种实施方式中,计算设备的操作系统被配置为提供可以由该计算设备的应用与其它计算设备的应用加以利用从而使用和共享共用资源的基础设施。操作系统例如可以被配置为生成通信通道和支持机制,用于针对参与数据共享会话而进行访客的广播、发现、认证以及配置为支持应用之间的直接通信的通信通道的创建。
[0019] 以这种方式,应用可以在并不知晓该功能如何实施的情况下通过应用编程接口(API)来访问该功能,因此节省了应用和计算设备自身在实施该功能时的资源。涉及操作系统基础设施的这些和其它技术的进一步讨论可以关于图2-4和6找到。
[0020] 此外,该数据共享会话技术可以被配置为支持与计算设备的操作系统的多用户交互而并不涉及到为了识别该交互中所涉及的用户而在用户登录之间的切换。例如,该操作系统还可以被配置为在用户利用操作系统登录时生成影子登录会话。用户登录可以使得操作系统在该用户资料的情境中进行操作,诸如访问用户设置、定制、偏好等。
[0021] 希望与该操作系统进行交互的另一个用户可以选择选项(例如,“运行为”)来请求操作系统使用另一个用户资料的操作。作为响应,用户的证书可以与影子登录会话相关联。以这种方式,个体用户与操作系统的交互可以被该操作系统所识别并且与用户相关联。例如,用户可以注释或编辑文档并且使得那些注释与他们的身份相关联,可以访问应用并且使得他们的用户设置和资料作为交互的一部分被加以利用(例如,控制器设置、高分),等等。涉及到操作系统基础设施的这些和其它技术的进一步讨论可以关于图5和7而找到。
[0022] 对这些和其它数据共享会话技术的进一步讨论可以关于以下部分而找到。在以下讨论中,首先描述可以采用本文所描述的技术的示例环境。 然后描述其可以在示例环境以及其它环境中执行的示例过程。 因此,该示例过程的执行并不局限于该示例环境,并且该示例环境并不局限于该示例过程的执行。
[0023] 示例环境
[0024] 图1是示例实施方式中能够进行操作以采用本文描述的数据共享会话技术的环境100的图示。所图示的环境100包括经由网络106互相通信耦合的计算设备102和另一个计算设备104。
[0025] 计算设备102、104可以以各种方式进行配置。例如,计算设备102、104可以被配置为常规的台式计算机、移动站点、娱乐电器、具有依据手持配置进行配置的外壳的移动计算设备(例如,移动电话或平板电脑)、通信耦合至显示设备的机顶盒、无线电话、如所图示的游戏机,等等。
[0026] 因此,计算设备102、104的范围可以从具有实质性存储器和处理器资源的全资源设备(例如,个人计算机、游戏机)到具有有限存储器和/或处理资源的低资源设备(例如,传统机顶盒、手持游戏机)。此外,虽然示出了单个计算设备102、104的实例,但是计算设备102、104可以表示多个不同的设备,诸如由公司用来诸如通过web服务、遥控和机顶盒组合而执行操作的多个服务器,如所图示的被配置为捕捉手势的图像捕捉设备和游戏机,等等。
[0027] 计算设备102被图示为包括处理系统108,被图示为存储器110的计算机可读存储介质的示例,以及显示设备112。处理系统108表示通过执行存储器110中的指令而执行操作的功能。虽然被单独图示,但是这些组件的功能可以进一步进行划分、组合(例如,在应用特定集成电路上),等等。
[0028] 计算设备102进一步被图示为包括操作系统114。操作系统114被配置为将计算设备102的基础功能抽象为能够在计算设备102上执行的应用116。例如,操作系统114可以将计算设备102的处理系统108、存储器110、网络和/或显示112的功能进行抽象而使得可以在并不知晓如何实现该基础功能的情况下编写应用116。 应用116例如可以向操作系统114提供数据以便由显示设备112进行解码、渲染和显示而无需理解如何执行该渲染。操作系统114还可以表示各种其它功能,诸如管理计算设备102的用户所能够导航的文件系统和用户接口。
[0029] 操作系统114的所抽象的功能的示例被表示为会话管理器模块118。会话管理器模块118表示用于展现应用116所能够访问的基础设施从而经由网络106创建用于在应用116和其它计算设备104的应用122之间使用的数据共享会话120的功能。会话管理器模块118例如可以支持在应用116、118之间发起安全通信通道的能力。这可以包括通过与用户接口的交互发起数据共享会话120的能力,上述用户接口的示例在显示设备112上被输出。
[0030] 会话管理器模块118随后可以广播邀请并且发现潜在访客以便包括在数据共享会话120中。这可以包括用户的认证并且可以利用强认证技术,诸如在其它计算设备104上输出用户接口而使得用户的凭证的输入可以不像使用其它用户可见的共用显示设备(例如,在会议室设置中,在聚会上的电视机等)的情况那样被窥探。
[0031] 一旦被认证,会话管理器模块118随后就可以向应用116展现能够被用来经由网络106在应用116和其它计算设备104的应用122之间创建直接且安全的通信通道的数据而并不涉及到操作系统114。该数据例如可以附有其它用户的识别以及要被用来执行通信的套接字以供参考。
[0032] 此外,会话管理器模块118可以提供针对这样的访客指定受限访问、特权和时间授权的能力,而使得访客在成功认证时可以在受到作为创建数据共享会话120的一部分的这些指定约束的情况下访问他们自己的个人资源,例如用户设置、偏好和配置数据,例如,上述约束可以被包括在如以下进一步描述的列表的特性中。例如,认证可以被执行以确定用户“是他们所声称的那个人”并且授权可以被执行以批准访问,例如在指定时段内。这可以是能够配置且预设的,或者可以在用户体验中进行显示并且因此可以消除一些主机在批准访问时所可能存在的潜在顾虑。另外,动态认证技术可以得到支持而使得操作系统114可以在没有操作系统114的先验知识、配置(例如,在操作系统114的管理员的部分上)或资源供应的情况下为访客提供访问。
[0033] 因此,操作系统114可以提供一种使用以及与采用其它设备(例如计算设备104)的访客共享主机机器(例如,计算设备102)上的共用资源的机制。该机制可以支持主机和访客发现数据共享会话120以及在被发现时建立通信通道从而支持该数据共享的方式。
[0034] 会话管理器模块118还可以支持使用影子用户资料来支持操作系统114自身之内的资源共享。例如,会话管理器模块118在处于第一用户的资料的登录会话的情境之中时可以展现出能够由第二用户所选择从而提供“运行为”的特征的功能。该特征的选择可以使得用户的证书得以与第一用户登录会话内所包含的影子登录会话相关联。这例如可以被用来对操作系统114的特征加以利用从而漫游用户设置和偏好,诸如该另外用户的身份、背景等。这可以被用来支持各种功能,诸如操作系统114识别个体用户与操作系统114自身的交互,被计算设备102上执行的应用116所使用,等等。对这些和其它特征的进一步讨论可以在下文中找到并且在相对应图中示出。
[0035] 图2描绘了示例实施方式中的系统200,其中操作系统经由应用编程接口从应用接收到请求以发起数据共享会话。系统200使用第一、第二和第三阶段202、204、206被示出。
[0036] 在第一阶段202,会话管理器模块118从应用116接收请求以发起数据共享会话120。应用116例如可以被配置为托管内容共享会话以共享照片、音乐偏好,收集关于会议中的内容(例如,幻灯片、文档、图像)的反馈,等等。例如,应用116可以在游戏机处发起以在用户的位置为聚会提供音乐,可以被发起以收集关于营销材料的评论,共享与特定事件(例如,音乐会、体育赛事)相关联的照片, 等等。
[0037] 因此,应用116可以由计算设备102执行以形成用于经由应用编程接口(API)进行通信的请求208。该请求208可以用于利用由操作系统114的会话管理器模块118所表示的基础设施来发起安全的数据共享会话120的创建以共享该内容。
[0038] 在第二阶段204,会话管理器模块118创建会话数据储存器210位置,其可以用于存储与数据共享会话120相关的数据。这可以包括描述数据共享会话120的数据,诸如数据共享会话120的标识和目的。这还可以包括由发起数据共享会话的创建的用户所指定的特征(例如,被包括为请求208的一部分),诸如被允许参与数据共享会话120的访客的特性、如前所述的对参与的约束等的列表212。
[0039] 这些特性可以包括身份,后者可以人工指定,通过社交网络服务中的好友自动指定(例如,用户在社交网络服务中的好友可以被给予加入数据共享会话120的自动许可),等等。该特性还可以包括访客的位置(例如,通过地理围栏以指定位于特定地理位置的用户),一天中的时间,允许如何访问(例如,用于参与数据共享会话120的特定类型的网络连接),等等。该列表212可以被用作操作系统114的会话管理器模块118对客户的验证/授权的一部分,其示例将关于图3更详细地进行描述。
[0040] 在第三阶段206,操作系统114的会话管理器模块118通过网络106广播邀请214以便由数据共享会话120的潜在访客216所接收。该广播可以以各种方式来执行,诸如通过本地无线网络(例如,蓝牙®、Wi-Fi)。在另一个示例中,邀请214的广播可以利用社交网络服务,诸如自动向社交网络服务中的好友进行发布,等等。以这种方式,作为操作系统114的一部分的会话管理器模块118所提供的基础设施可以被应用116加以利用以发起数据共享会话120的创建,包括向潜在访客216广播邀请214,而应用116并不知晓这些操作如何执行。邀请214可以被会话管理器模块118用来发现潜在访客216,其进一步讨论可以关于以下描述而找到并且在相对应的图中被示出。
[0041] 图3描绘了示例实施方式中的系统300,其中由操作系统114的会话管理器模块118执行潜在访客的发现以及针对参与数据共享会话对潜在访客的认证。系统300使用第一、第二和第三阶段302、304、306进行图示。在第一阶段302,会话管理器模块118经由网络106与其它计算设备104进行通信。其它计算设备1004也包括操作系统308和会话管理器模块310。因此,在该示例中,会话管理器模块118、310可以支持共享基础设施来发起数据共享会话。
还预见到其它示例,诸如与如以下进一步描述的并不包括会话管理器模块310的其它计算设备104的应用进行通信。
[0042] 虽然会话管理器模块118、310之间在该实例进行互相通信(例如,通过已经在模块之间针对这样的通信进行了协商的适当通道),但是被配置为管理数据共享会话120的发起的会话管理器模块118可以发现潜在访客312。继续之前的广播示例,该发现可以以各种方式来执行。例如可以采用主动发现技术,其中会话管理器模块118广播邀请214并且随后可以接收到希望加入数据共享会话120的潜在访客216的响应。也可以采用被动发现技术,其中会话管理器模块118接收在没有接收广播邀请214的情况下加入数据共享会话120的请求,例如会话管理器模块310可以在并不知晓计算设备102的数据共享会话120是否可用的情况下广播请求。
[0043] 在第二阶段304,无论如其它计算设备104所表示的如何发现潜在访客,会话管理器模块118都可以接收证书314来验证计算设备104以便包括在数据共享会话120中。例如,会话管理器模块212可以采用列表212,列表212对数据共享会话120的所要被满足从而允许参与数据共享会话120的特性进行描述。这些特性可以包括身份,身份可以被人工指定,或者通过社交网络服务中的好友自动指定,等等。该特性还可以包括访客的位置(例如,通过地理围栏以指定位于特定地理位置的用户),一天中的时间,将允许如何访问(例如,用于参与数据共享会话120的特定类型的网络连接),等等。虽然验证被图示为在计算设备102处执行,但是该验证也可以整体或部分在计算设备104执行(例如,使用第三方认证服务),使用第三方认证服务自身来执行,等等。一旦被验证,发起创建数据共享会话120的处理就可以继续进行。
[0044] 如第三阶段306中所示,例如,一旦被认证,其它计算设备104的操作系统308的会话管理器模块310就可以唤醒316其它计算设备104的相对应应用122。例如,数据共享会话120可以与计算设备102、104上的特定应用116、122的执行相对应。因此,用户可以与应用
116进行交互从而使得计算设备102的操作系统114的会话管理器模块118发起数据共享会话120。会话管理器模块118随后可以与其它计算设备104的会话管理器模块310进行通信以执行发现和认证。
[0045] 一旦被发现和/或被认证,会话管理器模块310随后就可以唤醒相对应的应用122,并且提供要用于数据共享会话120的安全通信通道的细节。还预见到其它示例,诸如在发现时唤醒应用122以执行认证,例如强认证,其中用户接口由另一计算设备104输出以接收由用户所输入的凭证,而使得这些凭证无法经由例如配置为图1中的电视的显示设备108的公共显示设备被看到。随后可以形成通信通道以支持应用116、122之间的直接通信,其进一步的讨论可以在以下描述中找到并且在相对应图中示出。
[0046] 图4描绘了示例实施方式中的系统400,其中通信通道由计算设备102、104的操作系统114、308的会话管理器模块118、310所创建并且由应用116、122用来直接共享会话数据。系统400也使用第一阶段402、第二阶段404和第三阶段406被示出。在第一阶段402,继续前面的示例,会话管理器模块118、310已经针对参与数据共享会话120而协商了计算设备104的认证。会话管理器模块310随后传送可由应用116、122所使用的通信通道信息408以形成直接通信通道。例如,通信通道信息408可以指定通信套接字连同诸如用户的身份(例如,多服务接入“MSA”标识符)、凭证、配对信息等的其它相关数据。
[0047] 在第二阶段404,计算设备102的会话管理器模块118向应用116通知访客(例如,计算设备104)的到达并且向该应用展现通信通道信息408。 因此,在该示例中,这是第一次使得应用116知晓该访客,因为之前描述的操作是由操作系统114抽象出来并执行的。
[0048] 在第三阶段406,应用116使用通信通道信息408来打开通信通道以与计算设备的应用122直接进行通信,从而支持共享会话数据410的通信。例如,操作系统114可以打开由通信通道信息408所指定的套接字。随后可以使用该套接字而使得应用116、122可以彼此直接通信而并不涉及相应的操作系统114、308。
[0049] 共享会话数据410可以采取各种形式,诸如照片、用户偏好(例如,播放列表)、在设备本地存储和/或可由设备远程访问的内容的共享,等等。例如,应用116可以被配置为为聚会提供音乐,因此共享会话数据410可以描述其它计算设备104的用户的音乐偏好,并且甚至可以包括音乐本身以便用于由计算设备102进行流传输和输出。因此,共享会话数据410可以本地驻留在相应计算设备102、104处和/或可以由相应计算设备102、104“通过云”远程访问。
[0050] 在该示例中,操作系统114的会话管理器模块118与另一个操作系统308的会话管理器模块310进行通信。还预见到其它实施方式。例如,计算设备102、104可以执行由不同的不兼容实体(例如,不同的制造商)所设计的操作系统。因此,在这样的实施方式中,会话管理器模块118可以直接与应用122进行交互以执行上述发现,认证和通信通道技术,而并不与另一个计算设备104的潜在不兼容的操作系统进行协商。此外,应当轻易看出的是,虽然以单个访客进行描述,但是这些技术可以用于广播、发现、认证其它用户,以及形成与和其它用户相关联的多个计算设备之间的通信通道,而并不背离其精神和范围。
[0051] 图5描绘了示例实施方式中的系统500,其中影子登录会话被用来支持与操作系统的多用户交互。系统500同样使用第一,第二,第三和第四阶段502、504、506、508进行图示。数据共享会话可以采取各种不同的形式。在前面的示例中,数据共享会话被配置为利用操作系统的基础设施来发起不同计算设备的应用之间的数据共享会话。在该示例中,数据共享会话被配置为支持对计算设备的单个操作系统的同时多用户访问,而并不涉及为了在不同用户的不同用户资料的情境中运行的用户登录会话之间的切换而进行用户的登录/注销。
[0052] 例如,在第一阶段502,第一用户510登录512到计算设备102的操作系统114。这可以包括提供登录凭证,诸如用户名和密码。例如,第一用户510可以登录到会议室中的计算设备102以在与多个其它用户的会议期间显示电子表格。
[0053] 在第二阶段504,操作系统514的会话管理器模块118响应于登录512而创建被配置为在第一用户资料516的情境中运行的第一用户登录会话514。会话管理器模块118例如可以利用上述证书来定位用户设置和偏好以配置操作系统114的用户体验,以便与第一用户510进行交互。这可以包括开始屏幕/桌面的背景图像的指定、图标的布置、与应用一起使用的设置,等等。此外,这还可以包括在第一用户510与内容的交互发生时对该交互所进行的识别。继续前面的示例,例如,第一用户510可以在会议期间对电子表格进行改变,并且将那些改变归因于第一用户。在另一个示例中,可以授予有限的可用性(经由授权),例如特别针对该示例中的电子表格,其在由用户所定义的设定时段之后过期,例如在会议结束时过期。
[0054] 会话管理器模块118还可以例如在创建第一用户登录会话514时或者稍后响应于如第三阶段506中所示的“运行为”请求而创建影子登录会话518。例如,影子登录会话518可以被配置为不与特定用户相关联的“空白”登录会话,并且因此不包括该用户的用户偏好和设置。影子登录会话518可以在与用来实施第一用户登录会话514的第一用户资料情境的一个或多个线程分离(例如,“沙箱化”)的线程上实施。
[0055] 此外,可以向影子登录会话518给予有所减少的许可集合,而使得与第一用户登录会话514的第一用户资料516的情境相比,影子登录会话518的功能受到限制,诸如来限制网络访问,对操作系统114或应用118的操作做出改变的能力等。另外,影子登录会话518可以被配置为在第一用户登录会话514内运行,例如以使得影子登录会话518的许可和功能继承于第一用户登录会话514,从而限制使得操作系统114的哪些功能能够被影子登录会话所使用。
[0056] 在第三阶段506,与另一个计算设备104相关联的第二用户520对计算设备102做出“运行为”请求522。还预见到其中第二用户520直接与计算设备102进行交互的其它示例,例如,不使用另一个计算设备104作为中介,诸如通过在计算设备102的键盘上键入以做出“作为运行”请求522。“运行为”请求522可以以各种方式被发起,例如通过与操作系统114的直接交互(例如,与操作系统114所输出的菜单的交互)和/或通过随后与操作系统114通信的应用116的间接交互。
[0057] 继续前面的示例,第二用户520可以选择电子表格应用中的选项以在与第二用户相关联的第二用户资料的情境中运行。操作系统114随后可以使用从第二用户516接收的凭证524,来以与关于第一用户510的第一阶段502所描述的方式类似的方式登录第二用户516。
[0058] 在第四阶段508,会话管理器模块118将第二用户资料526与影子登录会话518相关联,而使得第二用户516可以经由影子登录会话518在第二用户资料526的情境中与计算设备102进行交互。继续前面的示例,会话管理器模块119可以利用凭证524来定位第二用户资料526的数据,诸如第二用户520的用户偏好、设置、标识等。
[0059] 以这种方式,会话管理器模块118可以识别由第一和第二用户510、520利用他们相对应的第一和第二用户资料516、526所执行的交互。例如,第一和第二用户510、520可以通过他们的资料对电子表格做出改变并且使得那些改变与该用户相关联。
[0060] 在另一个示例中,应用116可以被配置为在影子登录会话518中的第二用户资料526的情境中运行,诸如以获得高分、控制器偏好等,它们可以从“云端”得到。以这种方式,影子登录会话518可以被配置为不在登录之间进行切换的情况下支持被多个用户同时使用,但是仍然对作为操作系统114的一部分而包括的偏好、定制和其它漫游功能加以利用。
关于这些和其它技术的进一步讨论可以关于以下过程被找到。
[0061] 示例过程
[0062] 以下讨论描述了可以使用先前所描述的系统和设备来实施的数据共享会话技术。每个过程的多个方面可以以硬件、固件或软件或者其组合来实施。该过程被示为指定由一个或多个设备执行的操作的框的集合,并且不必被局限于针对由相应的框执行操作而示出的顺序。在以下讨论的部分中将参考图1-5。
[0063] 关于图1-5的示例所描述的功能、特征和概念可以在本文所述的过程的情境中使用。此外,以下关于不同过程所描述的功能、特征和概念可以在不同过程之间进行互换,而并不局限于在单个过程的情境中实现。此外,与本文的不同代表性过程和相对应的图相关联的框可以以不同的方式被一起应用和/或组合。因此,关于本文的不同示例环境、设备、组件和过程所描述的各个功能、特征和概念可以以任何适当的组合来使用而并不局限于由所枚举的示例表示的特定组合。
[0064] 图6描绘了示例实施方式中的过程600,其中数据共享会话被发起并且被用来在主机所执行的应用与该主机的访客所执行的应用之间共享数据。在操作系统经由一个或多个应用编程接口(API)从一个或多个应用接收请求以发起数据共享会话(框602)。例如,应用116可以形成请求208以便由操作系统114的会话管理器模块118经由一个或多个API进行接收。
[0065] 响应于该请求,经由一个或多个应用与由与访客相关联的一个或多个其它计算设备所执行的一个或多个其它应用之间的网络连接来发起数据共享会话的创建(框604)。 例如,会话管理器模块118可以提供自动支持广播、发现、认证和安全通信通道的协商而无需来自应用116的输入的基础设施。例如,邀请可以由操作系统进行广播以便由一个或多个其它计算设备所接收,其指示数据共享会话的可用性(框606)。该邀请214可以以各种方式被广播到潜在访客216,诸如经由到社交网络服务的发布、经由无线连接,等等。
[0066] 访客被操作系统发现以参与数据共享会话(框608)。该发现可以包括被动发现(例如,潜在访客216在没有接收到邀请的情况下请求加入)或者确实涉及到邀请的使用的主动发现。
[0067] 操作系统验证访客被允许参与数据共享会话(框610)。这可以包括验证用户的证书以及检查列表212以验证潜在访客216符合数据共享会话120的指定标准。
[0068] 操作系统经由应用编程接口向一个或多个应用展现数据,数据被配置为建立在一个或多个应用与一个或多个其它应用之间可用的通信通道(框612)。 例如,该数据可以包括描述要用于通信以及识别潜在访客216的套接字的数据。随后可以创建在一个或多个应用与一个或多个其它应用之间可用的安全通信通道 (框614),诸如用来支持应用之间经由不涉及操作系统114的主动参与的套接字所进行的直接通信。
[0069] 图7描绘了示例实施方式中的过程700,其中影子登录会话被用来支持与操作系统的多用户交互。第一用户登录会话在利用计算设备的操作系统在第一用户的第一用户资料的情境中运行时被发起(框702)。第一用户510例如可以利用计算设备102的操作系统114发起登录512。
[0070] 操作系统接收请求以在第二用户的第二用户资料的情境中运行第一用户登录会话(框704)。继续前面的示例,第二用户520可以向计算设备102的操作系统114发起“运行为”请求522,这可以通过与计算设备102的直接交互或使用另一计算设备104的间接交互来执行 。
[0071] 第二用户资料被操作系统与在该计算设备的操作系统的第一用户登录会话内创建的影子登录会话相关联而使得第二用户与操作系统的交互与第二用户资料相关联,并且第一用户与操作系统的交互则与第一用户资料相关联(框706)。例如,阴影登录会话518例如可以响应于第一用户510的登录512、响应于来自第二用户520的“运行为”请求522等而被创建。与第二用户资料526相关联的数据随后可以被填入影子登录会话518而使得影子登录会话518在第二用户资料526的情境中运行。如先前所描述的,这可以用于支持各种功能,诸如识别特定用户,利用特定用户的设置运行应用,等等。
[0072] 示例系统和设备
[0073] 图8一般地以800图示了示例系统,其包括表示可以实施本文所描述的各种技术的一个或多个计算系统和/或设备的示例计算设备802。其示例通过包括会话管理器模块118而进行图示。计算设备802例如可以是服务提供商的服务器、与客户端相关联的设备(例如,客户端设备)、片上系统,和/或任意其它适当的计算设备或计算系统。
[0074] 如所图示的示例计算设备802包括彼此通信耦合的处理系统804、一个或多个计算机可读媒体806以及一个或多个I/O接口808。虽然并未示出,但是计算设备802可以进一步包括系统总线或者将各种组件互相耦合的其它数据和命令传输系统。系统总线可以包括不同总线结构的任意一种或者组合,诸如存储器总线或存储器控制器、外围总线、通用串行总线,和/或利用各种总线架构的任意一种的处理器或局部总线。还预见到诸如控制和数据线路之类的各种其它示例。
[0075] 处理系统804表示用于使用硬件执行一种或多种操作的功能。因此,处理系统804被图示为包括硬件部件810,后者可以被配置为处理器、功能块等。这可以包括作为应用特定集成电路或者使用一种或多种半导体所形成的其它逻辑设备的硬件的实施方式。硬件部件810并不被形成它们的材料或者在其中所采用的处理机制所限制。例如,处理器可以由(多种)半导体和/或晶体管(例如,电子集成电路(IC))所组成。在这样的情境下,处理器可执行的指令可以是能够以电子方式执行的指令。
[0076] 计算机可读存储媒体806被图示为包括存储器/储存器组件812。存储器/储存器组件812表示与一个或多个计算机可读媒体相关联的存储器/储存组件容量。存储器/储存器组件812可以包括易失性媒体(诸如随机访问存储器(RAM))和/或非易失性媒体(诸如只读存储器(ROM)、闪存、光盘、磁盘等)。存储器/储存器组件812可以包括固定媒体(例如,RAM、ROM、固定硬盘等)以及可移除媒体(例如,闪存、可移除硬盘、光盘等)。计算机可读媒体806可以以如以下进一步描述的各种其它方式进行配置。
[0077] (多个)输入/输出接口808表示使用各种输入/输出设备而允许用户向计算设备802输入命令和信息而且还允许信息被呈现给用户和/或其它组件或设备的功能。输入设备的示例包括键盘、光标控制设备(例如,鼠标)、麦克风、扫描仪、触摸功能(例如,被配置为检测物理接触的电容或其它传感器)、相机(例如,其可以采用可见或诸如红外频率的非可见波长将移动辨识为手势,该手势并不涉及触摸),等等。输出设备的示例包括显示设备(例如,监视器或投影仪)、扬声器、打印机、网卡、触摸响应设备,等等。因此,计算设备802可以以如以下所进一步描述的各种方式进行配置以支持用户交互。
[0078] 各种技术可以在本文以软件、硬件部件或者程序模块的一般情境进行描述。通常,这样的模块包括执行特定任务或者实施特定抽象数据类型的例程、程序、对象、部件、组件、数据结构等。如本文所使用的术语“模块”、“功能”和“组件”通常表示软件、固件、硬件或其组合。本文所描述的技术的特征是独立于平台的,这意味着这些技术可以在具有各种处理器的各种商业计算平台上实施。
[0079] 所描述的模块和技术的实施方式可以被存储在一些形式的计算机可读媒体上或者跨它们进行传送。计算机可读媒体可以包括可以由计算设备802进行访问的各种媒体。作为示例而非限制,计算机可读媒体可以包括“计算机可读存储媒体”和“计算机可读信号媒体”。
[0080] 与仅是信号传输、载波或者信号本身相比,“计算机可读存储媒体”可以是指使得能够对信息进行持久性存储和/或非临时性存储的媒体和/或设备。因此,计算机可读存储媒体是指非信号承载媒体。计算机可读存储媒体包括诸如以适于存储信息的方法或技术所实施的易失性和非易失性、可移除和非可移除媒体和/或存储设备之类的硬件,上述信息诸如计算机可读指令、数据结构、程序模块、逻辑部件/电路或者其它数据。计算机可读存储媒体的示例可以包括但并不局限于RAM、ROM、EEPROM、闪存或者其它存储器技术、CD-ROM、数字多功能盘(DVD)或者其它光学存储器件、硬盘、磁性卡盒、磁带、磁盘存储器件或者其它磁性存储设备,或者其它存储设备、有形媒体,或者适于存储所期望信息并且可以被计算机所访问的制造品。
[0081] “计算机可读信号媒体”是指被配置为诸如经由网络而向计算设备802的硬件传送指令的信号承载媒体。信号媒体通常可以在调制数据信号中体现计算机可读指令、数据结构、程序模块或其它数据,上述调制数据信号诸如载波、数据信号或者其它传输机制。信号媒体还包括任意的信息传递媒体。术语“调制数据信号”意指使得其一个或多个特性以使得在信号中编码信息的方式进行设置或改变的信号。作为示例而非限制,通信媒体包括诸如有线网络或直接线路连接的有线媒体,以及诸如声音、RF、红外和其它无线媒体的无线媒体。
[0082] 如之前所描述的,硬件部件810和计算机可读媒体806表示以硬件形式所实施的模块、可编程设备逻辑和/或固定设备逻辑,其在一些实施例中可以被用来实施本文所描述的技术的至少一些方面,诸如执行一个或多个指令。硬件可以包括集成电路或片上系统的组件、应用特定集成电路(ASIC)、现场可编程门阵列(FPGA)、复杂可编程逻辑设备(CPLD),以及硅中的其它实施方式或其它硬件。在该情境下,硬件可以作为执行该硬件部件所体现的指令和/或逻辑所定义的程序任务的处理设备以及例如之前所描述的计算机可读存储媒体的被用来存储指令以便执行的硬件而进行操作。
[0083] 以上的组合也可以被采用以实施本文所描述的各种技术。因此,软件、硬件或可执行模块可以被实施为在某种形式的计算机可读存储媒体上所体现和/或由一个或多个硬件部件810所体现的一个或多个指令和/或逻辑。计算设备802可以被配置为实施对应于软件和/或硬件模块的特定指令和/或功能。因此,能够由计算设备802执行为软件的模块的实施方式可以至少部分以硬件来实现,例如通过使用处理系统804的计算机可读存储媒体和/或硬件部件810。指令和/或功能可以能够由一种或多种制造品(例如,一个或多个计算设备802和/或处理系统804)所执行/操作以实施本文所描述的技术、模块和示例。
[0084] 如图8中进一步图示的,示例系统800使得当在个人计算机(PC)、电视设备和/或移动设备上运行应用时能够实现无缝用户体验的普遍存在的环境。当在利用应用、玩视频游戏、观看视频等的时候从一个设备转移至下一个设备时,服务和应用在所有三种环境中针对共同的用户体验而基本上类似地运行。
[0085] 在示例系统800中,多个设备通过中央计算设备进行互连。该中央计算设备可以处于该多个设备本地或者可以距该多个设备远程放置。在一个实施例中,该中央计算设备可以是通过网络、互联网或其它数据通信链路而连接至多个设备的一个或多个服务器计算机的云。
[0086] 在一个实施例中,该互连架构使得功能得以跨多个设备进行传递以向多个设备的用户提供共同和无缝的体验。该多个设备中的每一个可以具有不同的物理要求和能力,并且中央计算设备使用平台而使得针对设备所定制而且还共用于所有设备的体验能够传递至该设备。在一个实施例中,创建目标设备的类别并且针对通用设备类别对体验进行定制。设备的类别可以由物理特征、使用类型或者设备的其它共同特性所定义。
[0087] 在各种实施方式中,计算设备802可以假设各种不同的配置,诸如供计算机814、移动816和电视818使用。这些配置中的每一种都包括通常可以具有不同的构造和能力的设备,并且因此计算设备802可以根据不同设备类别中的一种或多种进行配置。例如,计算设备802可以被实施为设备的计算机814的类别,其包括个人计算机、台式计算机、多屏幕计算机、膝上计算机、上网本等。
[0088] 计算设备802还可以被实施为设备的移动816类别,其包括移动设备,诸如移动电话、便携式音乐播放器、便携式游戏设备、平板计算机、多屏幕计算机等。计算设备802还可以被实施为设备的电视818类别,其包括在随意观看环境中具有或连接至通常更大屏幕的设备。这些设备包括电视、机顶盒、游戏机等。
[0089] 本文所描述的技术可以被计算设备802的这些各种配置所支持而并不局限于本文所描述的技术的具体示例。该功能也可以全部或部分通过使用分布式系统来实施,诸如经由平台822而通过“云”820来实施,如以下所描述的。
[0090] 云820包括和/或表示用于资源824的平台822。平台822对云822的硬件(例如,服务器)和软件资源的基本功能进行抽象。资源824可以包括能够在计算机处理在计算设备802远程的服务器上执行的同时得以被采用的应用和/或数据。资源824还可以包括在互联网上和/或通过诸如蜂窝或Wi-Fi网络的订户网络所提供的服务。
[0091] 平台822可以对资源和功能进行抽象以将计算设备802与其它计算设备进行连接。平台822还可以用来对资源的规模进行抽象以针对所遇到的经由平台822所实施的资源824的需求提供相对应的规模水平。因此,在互连设备环境中,本文所描述功能的实施方式可以遍布系统800进行分布。例如,该功能可以部分在计算设备802上实施以及经由对云820的功能进行抽象的平台822来实施。
[0092] 结论
[0093] 虽然已经以特定于结构特征和/或方法动作的语言对示例实施方式进行了描述,但是所要理解的是,所附权利要求中限定的实施方式并不必局限于以上所描述的具体特征或动作。相反,该具体特征和动作被公开为实施所要求保护的特征的示例形式。