首页> 中国专利> 跨平台的应用程序使用连续性

跨平台的应用程序使用连续性

摘要

用于跨客户端设备和平台的应用程序使用连续性的系统包括被配置成执行应用程序的第一实例的第一客户端设备和被配置成执行应用程序的第二实例的第二客户端设备。第一客户端设备被配置成接收将在第一客户端设备上运行的应用程序的第一实例的操作转移到第二客户端设备上的应用程序的第二实例的指示。第一客户端设备进一步被配置成生成与应用程序的第一实例在第一客户端设备上的执行相关联的状态信息和数据,并导致状态信息被发送到第二客户端设备,以使第二客户端设备上的应用程序的第二实例使用来自第一客户端设备的状态信息,继续第二客户端设备上的应用程序的操作。

著录项

  • 公开/公告号CN103503364A

    专利类型发明专利

  • 公开/公告日2014-01-08

    原文格式PDF

  • 申请/专利权人 英特尔公司;

    申请/专利号CN201180070543.5

  • 申请日2011-12-27

  • 分类号H04L9/08(20060101);

  • 代理机构31100 上海专利商标事务所有限公司;

  • 代理人张东梅

  • 地址 美国加利福尼亚州

  • 入库时间 2024-02-19 21:40:17

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-11-09

    授权

    授权

  • 2014-02-12

    实质审查的生效 IPC(主分类):H04L9/08 申请日:20111227

    实质审查的生效

  • 2014-01-08

    公开

    公开

说明书

领域

本发明涉及应用程序使用连续性,更具体来说,涉及跨平台的应用程 序使用连续性。

背景

个人计算包括台式机、笔记本、上网本、平板电脑和/或智能设备。当 前的在一个或多个设备之间共享诸如文档和/或媒体内容之类的信息的方法 可能需要用户将来自第一设备的所需文件保存在临时传输装置上(例如, 闪存、电子邮件传输和/或IM文件传输),并将整个文件传输到目的地设 备。为了访问目的地设备上所传输的文件,用户可能需要以存在于目的地 设备上的合适的应用程序来打开文件,并使用与文件的内容有关的书签或 上下文信息,手动从保存的数据还原传输的信息的状态。

附图说明

通过对实施例的详细描述,所要求保护的主题的特征和优点将显而易 见,描述应该参考各个附图来考虑,其中:

图1示出了根据本发明的示例性系统实施例;

图2示出了根据本发明的一实施例的用于建立私有域的操作的流程 图;

图3示出了根据本发明的一实施例的跨平台的应用程序使用连续性的 操作的流程图;

图4示出了根据本发明的另一示例性系统实施例;

图5示出了根据本发明的再一个示例性系统实施例;以及

图6示出了根据本发明的一实施例的操作的流程图。

虽然下列“详细描述”将参考说明性实施例来进行,但是,许多替代 方案、修改以及其变体将对所属领域的技术人员显而易见。

详细描述

一般而言,本发明提供用于跨客户端平台的应用程序使用连续性的系 统(和方法)。一个示例系统包括运行应用程序的第一实例的第一客户端 设备,以及带有应用程序的第二实例的第二客户端设备。(第一设备)的 用户决定将第一客户端设备上的应用程序的操作转移到第二客户端设备。 响应于用户的转移应用程序的操作的指示,第一客户端设备生成有关正在 运行的应用程序的操作参数的状态信息,并将该状态信息传输到第二客户 端设备。第二客户端设备又启动应用程序的第二实例,并在用户在第一设 备上离开的点继续执行应用程序。有利地,这可以使用户在两个不同的设 备之间,实时地(或接近实时地)转移“活的”应用程序(例如,视频流、 音频流等等),而不会丢失会话数据。

在某些实施例中,用户可以创建一个或多个私有域,并注册每一个域 内的设备和应用程序。可以使用加密机制,以便只有域内的受信任的设备 能够参与应用程序状态信息的“活的”转移。在其他实施例中,可以在“云” 环境中使用服务器,其中,服务器维护私有域,并提供加密密钥以在私有 域内提供安全措施并防止内容在域外面共享。服务器和客户端设备可以协 调,以使用各种通信协议,在客户端设备之间实现通信。

图1示出了根据本发明的各实施例的系统100。系统100可以包括使 用连续性服务器102(下面“服务器102”),以及多个客户端设备120A, 120B。作为系统100的一般概述,每一个客户端设备120A和120B被配置 成彼此进行通信,以促进正在运行的应用程序的操作从一个设备向另一个 设备的转移。可以使用服务器102来建立私有域114A,该私有域114A包 括对应于客户端设备120A和120B和可操作以在域114A中的客户端设备 120A、120B上运行的至少一个应用程序118的标识符。服务器102还可基 于每个应用程序和/或每个域地提供加密密钥(例如,Ka107和/或P113), 以在客户端设备120A和120B之间实现状态信息的安全转移。此处比较详 细地描述了图1的每一个组件。

服务器102可以包括应用程序注册引擎104和私有域引擎108。应用 程序注册引擎104可以被配置成向服务器102注册至少一个应用程序118, 并判断应用程序118是否可操作以在第一和第二客户端设备120A,120B 上运行。客户端设备120A-120B可以独立地包括,但不仅限于,移动电话、 智能电话、个人媒体播放器(PMP)、个人数字助理(PDA)、上网本、 笔记本、台式机、和/或手持式电子设备。另外,应用程序注册引擎104还 可包括应用程序密钥生成器106。密钥生成器106被配置成为向服务器102 注册的每一个应用程序118生成加密密钥,下面简称为Ka107。Ka107可 以包括,例如,公钥、私钥,或其他已知加密密钥。

私有域引擎108可以被配置成在服务器102上生成至少一个私有域 114A。在所示出的实施例中,私有域引擎108可以被配置成在服务器上生 成多个私有域114A、114B、...114N。为便于描述,可以是多个私有域中的 任何一个的单个私有域此处将称为“私有域114”。私有域引擎108可以包 括被配置成向服务器102,特别是向特定私有域114注册第一和第二客户端 设备120A,120B中的至少一个的设备注册引擎110。另外,设备注册引擎 110还可包括域密钥生成器112。域密钥生成器112被配置成为在服务器102 中所生成的每一个私有域114,生成域密钥P113。域密钥P113可以包括, 例如,公钥、私钥,或其他已知加密密钥。

在所示出的实施例中,每一个私有域114都可以包括注册的应用程序 表117、注册的用户表119,以及注册的设备表121。注册的应用程序表117 可以包括向服务器102上的私有域114注册的每一应用程序的身份。注册 的用户表119可以包括向服务器102上的私有域114注册的每一用户的身 份。注册的设备表121可以包括向服务器102注册的并包括在该特定域114 中的每一个客户端设备120A、120B的身份。

在为每一个私有域114生成域密钥P113之时,服务器102被配置成 通过通信链路132与向服务器102注册的并在注册的设备表121中标识的 每一个客户端设备120A、120B进行通信。另外,每一个客户端设备(例 如,客户端设备120A)可以通过通信链路132与另一个客户端设备(例如, 客户端设备120B)进行通信。通信链路132可以包括任何有线和/或无线通 信手段,包括,但不仅限于,WiFi、WiMax、802.1x标准中的任何一个和/ 或蓝牙通信。服务器102进一步被配置成安全地将域密钥P113传输到每 一个注册的客户端设备(例如,客户端设备120A、120B),并在每一个客 户端设备120A、120B中的安全处理器124中提供域密钥P113。安全处理 器124可以包括具有通用功能和/或安全功能(即,密钥数据的安全保管和 高速数字签名计算)的处理器。

在一个实施例中,服务器102可以被配置成允许客户端设备120A、 120B临时向特定域114注册。客户端设备120A、120B向私有域114的临 时注册可以启用来宾访问模式。客户端设备120A,120B的临时注册还可 允许最初在单独的域(例如,114A和114N)上注册的设备120A、120B 的用户之间的时间受限的临时信息共享,由此,允许在用户之间建立瞬时 协作网络。

服务器102可以包括被配置成与客户端设备120A、120B和/或应用程 序118中的每一个交换命令和数据的任何类型的电路。例如,服务器102 可以包括在通用计算系统(例如,台式机PC、膝上型计算机、移动PC、 手持式移动设备、智能电话,等等)中发现的商品电路(例如,多核CPU (可以包括多个处理核和算术逻辑单元(ALU))、存储器、存储器控制 器单元、视频处理器、网络处理器、总线控制器等等)和/或可以在通用计 算系统和/或专用计算系统(例如,高度可靠的系统,超级计算系统等等) 中发现的定制电路。

“电路”,如在此处的任何实施例中所使用的,可以包括,例如,单 独地或以任何组合,硬连线的电路、可编程的电路、状态机电路和/或存储 由可编程电路执行的指令的固件。

应用程序118可以包括任何类型的被配置成与服务器102和每一个客 户端设备120A、120B交换命令和数据的软件程序包、代码模块、固件和/ 或指令集。例如,应用程序118可以包括与通用计算系统相关联的软件程 序包(例如,最终用户通用应用程序(例如,Microsoft Word、Excel等等), 网络应用程序(例如,web浏览器应用程序、电子邮件应用程序等等)) 和/或为通用计算系统和/或专用计算系统编写的定制软件程序包、定制代码 模块、定制固件和/或定制指令集(例如,科学计算程序包、数据库程序包 等等)。

对本发明来说,术语“源设备”是指用户希望从其转移正在运行的应 用程序118的第一客户端设备(例如,客户端设备120A),术语“目标设 备”是指用户希望接收正在运行的应用程序118的第二客户端设备(例如, 客户端设备120B)。如此,在下面的讨论中,源设备可以与第一客户端设 备120A可互换地使用,目标设备可以与第二客户端设备120B可互换地使 用。每一个客户端设备120A,120B可以包括主机和/或开放部分128和安 全部分130。可以理解,主机部分128可以具有对安全部分130的有限的访 问。

在一个实施例中,至少一个应用程序118(1)的第一实例可以在第一 客户端设备120A上运行。另外,应用程序118(2)的第二实例可以被包 括在第二客户端设备120B上。第一客户端设备120A(源设备)的用户可 能希望将来自第一客户端设备120A上的正在运行的应用程序118(1)的 状态信息和数据转移到私有域114中的第二客户端设备120B(目标设备)。 如此处所使用的,状态信息表示在将正在运行的应用程序转移到另一设备 时在第一客户端设备120A上运行的应用程序的有序数据的序列内的相对 位置的指示信息。例如,状态信息可以包括表示当用户指出转移功能时应 用程序118内的时间点的应用程序118的操作参数,其能使应用程序118 在应用程序118内的相同或大致相同的相对位置开始在目标设备120B上运 行。

作为示例,用户可能正在第一客户端设备120A上听音频应用程序。在 音频应用程序正在运行时的任何时刻,用户可能有选择地指出将正在运行 的音频应用程序转移到另一个客户端设备(例如,第二客户端设备120B)。 在转移指示的时刻,音频应用程序的状态信息可以包括在发生转移指示时 音频文件中的相对位置(例如,对应于计时器等等的数据)。

作为另一个示例,用户可能正在第一客户端设备120A上观看视频应用 程序。当视频文件正在运行时,用户可能有选择地指出将正在运行的视频 文件转移到另一个客户端设备(例如,第二客户端设备120B)。视频文件 的状态信息可以包括在发生转移指示时的相对位置(例如,对应于视频帧 等等的数据)。可任选地,状态信息可以包括相应的音频(如果有的话) 与视频帧的相对位置。

作为另一个示例,用户可能启动在第一客户端设备120A上运行的办公 套件应用程序向另一个客户端设备(例如,第二客户端设备120B)的转移。 办公套件应用程序可以包括,但不仅限于,字处理应用程序、电子表格应 用程序、演示文稿应用程序和/或绘图应用程序。在转移指示时,办公套件 应用程序的状态信息可以包括对应于发生转移指示时的相对位置的数据 (例如,对应于用户正在查看的页面的数据)。

应用程序118(1)、118(2)的第一和第二实例可以根据此处所描述 的方法向服务器102注册。在注册应用程序118(1)、118(2)的第一和 第二实例之时,生成应用程序特定的密钥Ka107(注册的应用程序118(1) -118(2)特定的)。用户可以如此处所描述的,通过向服务器102注册第 一和第二客户端设备120A,120B,进一步创建私有域114A。私有域114A 的注册的应用程序表117和注册的设备表121可以被配置成包含分别对应 于注册的应用程序118(1)、118(2)和注册客户端设备120A,120B的 标识符。在注册设备120A,120B中的每一个之时,服务器102被配置成 在注册的每一个客户端设备120A、120B中的安全处理器124中安全地提 供域密钥P113(私有域114A特定的)。

可任选地,客户端设备120A、120B可以包括注册的应用程序表117、 注册的用户表119和/或注册的设备表121(为清楚起见,未示出)的副本。 例如,客户端设备120A、120B可以使用注册的应用程序表117来判断在 客户端设备上运行的特定应用程序是否与本发明的转移操作兼容。客户端 设备120A、120B可以使用注册的用户表119来判断客户端设备120A、120B 的特定用户是否被授权转移特定应用程序以及用户可以向哪些客户端设备 转移该应用程序。客户端设备120A、120B还可使用注册的设备表121来 判断和/或标识可以向其转移正在运行的特定应用程序的其他客户端设备。 例如,第一客户端设备120A可以使用注册的设备表121来确定第一客户端 设备120A的通信范围内的潜在的客户端设备的列表,并向该用户呈现此列 表,以供选择。

在注册应用程序118(1)-118(2)和客户端设备120A-120B之时, 用户可以通过用户输入125有选择地指出他的将在源设备120A上运行的应 用程序118(1)的第一实例的操作转移到目标设备120B的愿望。用户输 入125可以包括用户的有选择性的输入的任何手段,包括但不仅限于,手 势识别、运动识别、和/或接近度感知技术,以及其他输入手段。尽管不是 详尽清单,然而用户输入125可以包括在显示设备(诸如触摸屏等等)的 一部分上的刷运动、摇动、输入密码和/或PIN码,激活图标和/或菜单等等。 每一个客户端设备120A-120B都可以包括被配置成接收用户输入125并向 应用程序118(1)、118(2)的第一和第二实例传递指示的转移模块134。

转移模块134可以被配置成标识和/或验证用户输入125作为用户输入 125,和/或呈现用于转移的潜在的目标设备的列表。例如,转移模块134 可以至少部分地基于注册的用户表119、注册的设备表121和/或源设备 120A的通信范围内的任何设备的身份,呈现用于转移的潜在目标设备的列 表。根据一实施例,转移模块134可以基于注册的设备表121,使用一种或 多种图标等等,用图形方式呈现潜在目标设备的列表。图标可以表示不同 类型的设备(诸如但不仅限于,移动电话、智能电话、个人媒体播放器 (PMP)、个人数字助理(PDA)、上网本、笔记本、台式机,和/或手持 式电子设备)。可以理解,与注册的设备表121相关联的某些潜在目标设 备可能由于用来在设备之间进行通信的通信链路132(2)的限制而在范围 之外(例如,如果通信链路132(2)是近场通信,无线自组织(ad-hoc) 网络等等)。如此,转移模块134可以被配置成只呈现(例如,显示)处 于通信范围内的注册的客户端设备。转移模块134可以可任选地基于它们 的相对于源设备120A的物理位置来在显示器上排列图标。然后,用户可以, 例如,使用手势运动等等,来选择所需的目标设备120B。然后,转移模块 134可以将转移操作的指示以及表示目标设备120B的身份的数据转移到注 册的应用程序118(1)的第一实例。

注册的应用程序118(1)的第一实例可以包括被配置成在接收到转移 操作的指示之时生成状态块(State)的状态信息生成器122。术语“块(blob)” 可以是指作为单个实体存储的数据的集合,可包括图像、音频和/或其他多 媒体对象。应用程序118(1)的第一实例被配置成使用构成应用程序加密 的状态块(State)Ka的应用程序特定的密钥Ka107来加密和/或签名状态 块(State)。用于签名的密钥可以从域密钥P113导出。应用程序加密的 状态块(State)Ka包括状态信息,并可任选地可以包括当前在源设备120A 上运行的注册的应用程序118(1)的第一实例的数据。

例如,在一个实施例中,注册的应用程序118(1)的第一实例可以包 括在源设备120A上运行的视频文件。当接收到转移操作的指示时,用户可 能正在视频文件的特定标记或帧处(诸如“帧F”)查看视频。(State) Ka中所包括的状态信息可以包括表示帧F(即,接收到转移操作的指示时 的帧)的数据。(State)Ka中所包括的状态信息还可包括表示剩余的帧(例 如,从帧F到视频文件的最后一个帧的帧)的数据。可另选地,状态信息 可以包括整个视频文件(视频文件的所有帧)以及指出帧F的数据,由此, 可使用户在目标设备120B上查看整个视频文件,或只是从文件被转移的帧 处(帧F)继续。例如,用户和/或应用程序118(1)可以在源设备120A 上暂停视频文件(帧F),将视频文件转移到目标设备120B,并在目标设 备120B上从帧F开始恢复观看视频。

注册的应用程序118(1)的第一实例进一步被配置成通过安全通信链 路126与第一客户端设备120A的安全处理器124进行通信。注册的应用程 序118(1)的第一实例被配置成通过通信链路126将(State)Ka传输到源 设备120A的安全处理器124。注册的应用程序118(1)的第一实例进一步 被配置成请求安全处理器124利用域密钥P113来加密和/或签名(State) Ka。在从注册的应用程序118(1)的第一实例接收到(State)Ka和加密 请求之时,安全处理器124被配置成利用构成域加密的状态块((State) Ka)P(利用域密钥P113来保护)的域密钥P113来加密和/或签名(State) Ka。

在在私有域114A中注册客户端设备120A-120B之时,第一和第二客 户端设备120A、120B可以被配置成通过通信链路132(2)彼此进行通信, 并传输信息,特别是在一个设备上运行的注册的应用程序的状态信息。除 此处所描述的通信链路132的示例之外,通信链路132(2)还可包括近场 通信,无线自组织(ad-hoc)网络等等。客户端设备120A-120B还可被配 置成与服务器102进行通信,以发现诸如在协作使用情况下每一个注册的 客户端设备的诸如IP地址之类的身份。

在发现客户端设备之时,源设备120A被配置成通过私有域114A中的 通信链路132(2)与目标设备120B建立安全的连接。源设备120A进一步 被配置成通过通信链路132将((State)Ka)P传输到目标设备120B。在接收到 ((State)Ka)P之时,目标设备120B(例如,转移模块123(B))被配置成 启动注册的应用程序118(2)的第二实例。注册的应用程序118(2)的用 户和/或第二实例被配置成通过安全通信链路126(B)与目标设备120B的 安全处理器124B进行通信,并将((State)Ka)P转移给它。注册的应用程序 118(2)的第二实例进一步被配置成请求安全处理器224解密和/或验证 ((State)Ka)P。

在从注册的应用程序118(2)的第二实例接收到((State)Ka)P和解密请 求之时,安全处理器124B被配置成使用域密钥P113,来解密和/或验证 ((State)Ka)P,并生成(State)Ka。安全处理器1242进一步被配置成通过安全 通信链路126(2)来将(State)Ka转移到注册的应用程序118(2)的第二实 例。在接收到(State)Ka时,注册的应用程序118(2)的第二实例被配置 成使用应用程序特定的密钥Ka107,来解密和/或验证(State)Ka,并生成 并还原在((State)Ka)P中转移的注册的应用程序118(1)的第一实例的状态 信息。注册的应用程序118(2)的第二实例被配置成利用生成的和还原的 状态信息来在目标设备120B上恢复应用程序118的执行。应该注意,前面 的讨论可以可另选地应用在其他实施例中,例如,在第二客户端设备120B 可以是源设备,而第一客户端设备120A可以是目标设备的情况下。

图2示出了根据本发明的一实施例的用于建立私有域的操作的流程图 200。例如,方法200可以包括创建新私有域D(操作202);生成包括对 应于与私有域D相关联的一个或多个设备的标识符的注册的设备表(操作 204);生成包括对应于与私有域D相关联的一个或多个用户的标识符的注 册的用户表(操作206);以及,生成包括对应于与私有域D相关联的一 个或多个应用程序的标识符的注册的应用程序表(操作208)。

根据一实施例,可以由服务器,例如,通过服务器的私有域引擎,在 用户启动时,来创建私有域D(操作202)。在创建私有域D时,可以生 成域密钥P(操作210)。域密钥P可以由服务器,例如,通过服务器的域 密钥生成器来生成,并可以包括公钥、私钥或其他已知的加密密钥。域密 钥生成器可以使用任何加密方法,诸如,但不仅限于,本发明的受让人的 高级加密标准(AES),来生成域密钥P。域密钥P可以存储在与私 有域D相关联的每一个设备中(操作212)。例如,域密钥P可以存储在 与私有域D相关联的每一个设备的安全处理器中。

注册的设备表可以由用户通过服务器来生成(操作204)。例如,一 个或多个用户可以使用服务器的设备注册引擎来向私有域D注册设备,以 生成注册的设备表。注册的设备表可以包括多个标识符,每一个标识符都 对应于与私有域D相关联的设备中的一个设备。

类似地,一个或多个用户可以向私有域D注册,以生成注册的设备表 (操作206)。注册的用户表可以包括多个标识符,每一个标识符都对应于 与私有域D相关联的用户中的一个用户。注册的用户表可以可任选地包括 对应于用户与其相关联的特定设备的标识符。

一个或多个应用程序可以向服务器注册,以生成注册的应用程序表(操 作208)。应用程序可以由用户、制造商和/或第三方来注册。例如,应用 程序可以使用应用程序注册引擎向服务器注册。一旦注册了应用程序,服 务器就生成应用程序特定的密钥Ka(操作214),例如,使用应用程序密 钥生成器。应用程序特定的密钥Ka可以包括,例如,公钥、私钥,或其他 已知加密密钥,并可以使用任何加密方法来生成,诸如,但不仅限于,本 发明的受让人的高级加密标准(AES)。然后,应用程序特定的密钥 Ka可以存储在与私有域D相关联的每一个设备中(操作216)。例如,应 用程序特定的密钥Ka可以存储在每一个客户端设备上的注册的应用程序 118中。

根据另一实施例,本发明的方法200可以消除服务器。具体而言,一 个或多个客户端设备可以包括如此处所描述的私有域引擎、设备注册引擎, 和/或应用程序注册引擎。用户可以使用第一客户端设备的私有域引擎来生 成私有域D(操作202)并生成域密钥P,然后,可以将域密钥P转移到与 私有域D相关联的其他设备(操作212)。

类似地,一个或多个客户端设备可以被配置成生成注册的设备表(操 作204)。例如,第一客户端设备可以充当用于注册设备并生成注册的设备 表的中枢,然后,注册的设备表可以被转移到与私有域D相关联的其他设 备。可另选地,每一个客户端设备都可以被配置成独立地注册和/或生成注 册的设备表(该表可以传递到注册的设备表上的其他设备,例如,以循环 方式等等)。

注册的应用程序表可以使用与私有域D相关联的客户端设备中的一个 或多个的应用程序注册引擎来生成(操作208),并可以使用与私有域D 相关联的客户端设备中的一个或多个的应用程序密钥生成器来生成应用程 序特定的密钥Ka(操作214)。例如,第一客户端设备可以充当用于注册 应用程序并生成注册的应用程序表的中枢,然后,注册的应用程序表可以 被转移到注册的设备表上的其他设备(操作216)。可以按与其他表类似的 方式生成注册的用户表(操作206)。

图3示出了根据本发明的一实施例的用于将在第一设备上运行的应用 程序转移到第二设备的跨平台的应用程序使用连续性的操作的流程图300。 可以在第一设备中接收将在第一设备上运行的应用程序的状态信息转移到 第二设备的指示(操作302)。可以由第一设备生成应用程序密钥加密的状 态块(State)Ka(操作304)。(State)Ka可以从第一应用程序转移到第一 设备的安全处理器(操作306),且安全处理器可以生成经密钥加密的域状 态块((State)Ka)P(操作308)。((State)Ka)P可以被转移到第二设备(操 作310),可以在第二设备上启动应用程序的第二实例(操作312)。 ((State)Ka)P可以被转移到第二设备的安全处理器(操作314),该处理器 可以解密和/或验证((State)Ka)P以生成(State)Ka(操作316)。然后, (State)Ka可以被转移到第二设备上的应用程序的第二实例(操作318), 该第二实例可以解密和/或验证(State)Ka以生成应用程序的第二实例的状态 信息(操作320)。然后,应用程序的第二实例可以在第二设备上利用状态 信息恢复(操作322),例如,在当转移功能在第一设备上启动时的点。

现在转向图4,一般性地示出了根据本发明的各实施例的系统400的 另一实施例。系统400类似于图1的系统100,只是客户端设备420A,420B 包括系统管理程序和/或监控程序410,并且应用程序118独立于转移操作。 具体而言,监控程序410包括被配置成在从转移模块134接收到用户希望 将应用程序118转移到另一设备的指示时生成与应用程序118(1)的第一 实例相关的状态信息的状态信息生成器。监控程序410进一步被配置成在 接收到转移操作的指示之时生成状态块(State),并使用构成应用程序加 密的状态块(State)Ka的应用程序特定的密钥Ka107来加密和/或签名状 态块(State)。应用程序加密的状态块(State)Ka包括状态信息,并可任 选地可以包括当前在源设备420A上运行的注册的应用程序118(1)的第 一实例的数据。

监控程序410进一步被配置成通过通信链路126将(State)Ka转移到 源设备120A的安全处理器124,并请求安全处理器124利用域密钥P113 来加密和/或签名(State)Ka。在从监控程序410接收到(State)Ka和加 密请求之时,安全处理器124被配置成利用构成域加密的状态块((State) Ka)P(利用域密钥P113来保护)的域密钥P113来加密和/或签名(State) Ka。

域加密的状态块((State)Ka)P可以由第二客户端设备420B接收(例 如,通过通信链路132(2)),并启动注册的应用程序118(2)的第二实 例。监控程序410(B)被配置成通过安全通信链路126(B)与目标设备 420B的安全处理器124B进行通信,并向其转移((State)Ka)P,并请求安全 处理器124B解密和/或验证((State)Ka)P。

在从注册的应用程序118(2)的第二实例接收到((State)Ka)P和解密请 求之时,安全处理器124B被配置成使用域密钥P113,来解密和/或验证 ((State)Ka)P,并生成(State)Ka。安全处理器124B进一步被配置成通过安全 通信链路126(B)来将(State)Ka转移到监控程序410(B)。在接收到(State)Ka 之时,监控程序410(B)被配置成使用应用程序特定的密钥Ka107,来解 密和/或验证(State)Ka,并生成和还原在((State)Ka)P中转移的注册的应 用程序118(1)的第一实例的状态信息。注册的应用程序118(2)的第二 实例被配置成利用生成的和还原的状态信息来在目标设备420B上恢复应 用程序118的执行。

现在转向图5,一般性地示出了根据本发明的各实施例的系统500的 再一个实施例。系统500包括一个或多个设备520A,520B,以创建私有域 和/或将在第一客户端设备520A(下面简称为“源设备520A”)上运行的 应用程序118转移到第二客户端设备520B(下面简称为“目标设备520B”)。 因此,系统500可以消除系统100的使用连续性服务器102(图1)。作为 系统500的一般概述,每一个客户端设备520A和520B被配置成彼此进行 通信,以促进正在运行的应用程序的操作从一个设备向另一个设备的转移。 为了简洁,将不会重复系统500中与系统100(图1)相同的各方面。

尽管系统500的设备520A、520B中的一个或多个可以类似于系统100 的设备120A、120B,然而设备520A、520B中的至少一个被配置成创建新 私有域D;生成包括对应于与私有域D相关联的一个或多个设备的标识符 的注册的设备表;生成包括对应于与私有域D相关联的一个或多个用户的 标识符的注册的用户表;以及,生成如此处所描述的包括对应于与私有域 D相关联的一个或多个应用程序的标识符的注册的应用程序表。为了清楚 起见,将描述第一设备520A;然而,可以理解,系统500中的任何客户端 设备都可以被配置成执行下列操作。

第一客户端设备520A还可包括被配置成生成一个或多个私有域(例 如,私有域D)的私有域引擎508,以及被配置成可使用户注册要与私有域 D相关联的一个或多个客户端设备并生成注册的设备表121(其传输到与私 有域D相关联的其他设备中的一个或多个)的设备注册引擎510。域密钥 (P)生成器512可以创建域密钥P,其可以基于注册的设备表121,传输 到与私有域D相关联的其他设备中的一个或多个。另外,可以在客户端设 备520A上生成注册的用户表119,该表119将用户链接到私有域中的一个 或多个应用程序和/或设备。

可以使用第一设备520A的应用程序注册引擎504来注册要与私有域D 相关联的应用程序118。一旦注册了应用程序118,应用程序密钥生成器506 可以生成应用程序特定的密钥Ka。可以生成注册的应用程序表117,应用 程序特定的密钥Ka可以与应用程序118(1)存储在一起。第一设备520A 还可被配置成将应用程序特定的密钥Ka传输到与私有域D相关联的其他 设备中的一个或多个。

用户可以启动可以基本上如此处所描述的那样进行的转移操作。由于 客户端设备520A、520B被配置成创建私有域,注册应用程序,并生成密 钥Ka,P,所以系统500可以消除图1的服务器的必要性。同样,并非与 系统500相关联的所有客户端设备都需要能够执行这些功能,相反,一个 客户端设备可以充当可以基本上与图1相同地运转的其他设备的中枢设备, 例外是,密钥Ka,P可以由中枢设备(例如,客户端设备520A)生成并从 中枢设备接收。

图6示出了根据本发明的一实施例的操作的流程图600。此实施例的 操作可以包括在第一客户端设备上接收将应用程序的第一实例的操作从第 一客户端设备转移到第二客户端设备上的应用程序的第二实例的指示(操 作602)。操作还可包括由第一客户端设备并响应于将应用程序的操作从第 一客户端设备转移到第二客户端设备的指示,生成包括与应用程序在第一 客户端设备上的执行相关联的当前操作参数和数据的状态信息(操作604)。 操作还可以包括,由第一客户端设备,将状态信息发送到第二客户端设备, 以使第二客户端设备使用应用程序的第二实例和来自第一客户端设备的状 态信息,继续第二客户端设备上的应用程序的操作。

尽管描述了各种系统和方法,但是,可以理解,任何实施例中的各种 特征可以与其他实施例相结合。例如,图4的系统管理程序可以与图1和/ 或5相结合。可另选地(或另外),可以修改图1或4的系统,以消除如 图5所描述的服务器。实际上,此处完全设想,在本发明的其他实施例中, 图2、3,和/或6中所描绘的操作可以以在附图中的任何一个中没有专门示 出的,但是仍完全符合本发明的方式组合。如此,涉及未正好在一个附图 中示出的特征和/或操作的权利要求被视为在本发明的范围和内容内。

本发明的系统和/或方法被配置成正在执行的应用程序实时地跨受信 任的设备的安全的、动态的并且无缝的移植,并保留状态信息和数据。另 外,可以建立安全通信基础结构,用于促进应用程序状态信息的受信任的 传输和数据传输。

在其他实施例中,本发明的系统和方法可以包括额外的使用方案。用 户可以创建不同的使用方案,以适应不同的使用情况。例如,Morning  Commute(早晨转换MC)方案可包括Airport Morning Commute(机场早晨 转换AMC)方案、Work Morning Commute(工作早晨转换WMC)方案和/ 或Travel Morning Commute(旅行早晨转换TMC)方案。每一个方案都可以 包括与特定使用情况相关的受信任的应用程序的集合。

例如,AMC方案可以包括天气、交通状况、无线电广播内容、媒体内 容、电话、航空信息和/或工作相关的应用程序。在一个实施例中,AMC 方案可以聚集在用户的家庭系统中。在离开住宅之前,用户可以将AMC受 信任的应用程序的状态信息转移到用户的受信任域中的其他IA设备(例如, 智能电话、车辆文娱新闻系统、PC等等)(例如,通过使用手势和/或运动 技术、语音命令和/或一键式预编程的按钮)。当用户进入他的汽车以开车 去机场时,汽车的文娱新闻中心,例如,包括GPS系统,将使到机场的路 线和交通信息已经显示。

此处所描述的各实施例可以使用,例如,硬件、软件、和/或固件来实 现,以执行此处所描述的方法和/或操作。此处所描述的某些实施例可以作 为存储机器可执行指令的有形的机器可读取的介质来提供,机器可执行指 令,如果由机器执行,导致机器执行此处所描述的方法和/或操作。有形的 机器可读取的介质可以包括,但不仅限于,任何类型的磁盘,包括软盘、 光盘、光盘只读存储器(CD-ROM)、光盘可重写(CD-RW),以及磁光 盘、诸如只读存储器(ROM)之类的半导体器件、诸如动态和静态RAM 之类的随机访问存储器(RAM)、电可擦除编程只读存储器(EEPROM)、 闪存、磁卡或光卡,或适于存储电子指令的任何类型的有形的介质。机器 可以包括任何合适的处理平台、设备或系统、计算平台,设备或系统,并 可以使用硬件和/或软件的任何合适的组合来实现。指令可以包括任何合适 类型的代码,并可以使用任何合适的编程语言来实现。

如此,在一个实施例中,本发明提供了用于跨客户端设备提供应用程 序使用连续性的系统。系统包括被配置成执行应用程序的第一实例的第一 客户端设备和被配置成执行应用程序的第二实例的第二客户端设备。第一 设备进一步被配置成接收将在第一客户端设备上运行的应用程序的第一实 例的操作转移到第二客户端设备上的应用程序的第二实例的指示,并生成 与应用程序的第一实例在第一客户端设备上的执行相关联的状态信息和数 据。第一客户端设备进一步被配置成导致状态信息被发送到第二客户端设 备,以使第二客户端设备上的应用程序的第二实例使用来自第一客户端设 备的状态信息,继续第二客户端设备上的应用程序的操作。

在另一个实施例中,本发明提供了保证具有应用程序的第一实例的第 一客户端设备和具有应用程序的第二实例的第二客户端设备之间的应用程 序使用连续性的方法。该方法包括在第一客户端设备上接收将在第一客户 端设备上运行的应用程序的第一实例的操作转移到第二客户端设备上的应 用程序的第二实例的指示;由第一客户端设备并响应于转移应用程序的第 一实例的操作的指示,生成与应用程序的第一实例在第一客户端设备上的 执行相关联的状态信息和数据;以及,由第一客户端设备,将状态信息和 数据发送到第二客户端设备,以使第二客户端设备上的应用程序的第二实 例使用应用程序的第二实例和来自第一客户端设备的状态信息,继续第二 客户端设备上的应用程序的操作。

在另一个实施例中,本发明提供包括在其上存储的当由一个或多个处 理器执行时导致计算机系统执行包括下列各项的操作的指令的有形的计算 机可读取的介质:由第一客户端设备并响应于转移第一客户端设备上的应 用程序的第一实例的操作的指示,生成与应用程序的第一实例在第一客户 端设备上的执行相关联的状态信息和数据;以及,由所述第一客户端设备, 将所述状态信息发送到所述第二客户端设备,以使所述第二客户端设备上 的所述应用程序的所述第二实例使用来自所述第一客户端设备的所述状态 信息,继续所述第二客户端设备上的所述应用程序的操作。

此处所使用的术语和表达被用作描述的术语,在使用这样的术语和表 达时,没有排除所示出的和所描述的特征的任何等效内容(或其某些部分), 应该认识到,在权利要求书的范围内,各种修改都是可以的。相应地,权 利要求书旨在涵盖所有这样的等效内容。

此处描述了各种特征、方面,以及各实施例。各特征、各方面,以及 各实施例对彼此组合以及变更和修改敏感,如本领域的技术人员所理解的。 因此,本发明应该被视为包含这样的组合、变更,以及修改。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号