跨平台的应用程序使用连续性的制作方法

文档序号:7977933阅读:163来源:国知局
跨平台的应用程序使用连续性的制作方法
【专利摘要】用于跨客户端设备和平台的应用程序使用连续性的系统包括被配置成执行应用程序的第一实例的第一客户端设备和被配置成执行应用程序的第二实例的第二客户端设备。第一客户端设备被配置成接收将在第一客户端设备上运行的应用程序的第一实例的操作转移到第二客户端设备上的应用程序的第二实例的指示。第一客户端设备进一步被配置成生成与应用程序的第一实例在第一客户端设备上的执行相关联的状态信息和数据,并导致状态信息被发送到第二客户端设备,以使第二客户端设备上的应用程序的第二实例使用来自第一客户端设备的状态信息,继续第二客户端设备上的应用程序的操作。
【专利说明】跨平台的应用程序使用连续性
[0001]领域
[0002]本发明涉及应用程序使用连续性,更具体来说,涉及跨平台的应用程序使用连续性。
[0003]背景
[0004]个人计算包括台式机、笔记本、上网本、平板电脑和/或智能设备。当前的在一个或多个设备之间共享诸如文档和/或媒体内容之类的信息的方法可能需要用户将来自第一设备的所需文件保存在临时传输装置上(例如,闪存、电子邮件传输和/或IM文件传输),并将整个文件传输到目的地设备。为了访问目的地设备上所传输的文件,用户可能需要以存在于目的地设备上的合适的应用程序来打开文件,并使用与文件的内容有关的书签或上下文信息,手动从保存的数据还原传输的信息的状态。
【专利附图】

【附图说明】
[0005]通过对实施例的详细描述,所要求保护的主题的特征和优点将显而易见,描述应该参考各个附图来考虑,其中:
[0006]图1示出了根据本发明的示例性系统实施例;
[0007]图2示出了根据本发明的一实施例的用于建立私有域的操作的流程图;
[0008]图3示出了根据本发明的一实施例的跨平台的应用程序使用连续性的操作的流程图;
[0009]图4示出了根据本发明的另一示例性系统实施例;
[0010]图5示出了根据本发明的再一个示例性系统实施例;以及
[0011]图6示出了根据本发明的一实施例的操作的流程图。
[0012]虽然下列“详细描述”将参考说明性实施例来进行,但是,许多替代方案、修改以及其变体将对所属领域的技术人员显而易见。
[0013]详细描述
[0014]一般而言,本发明提供用于跨客户端平台的应用程序使用连续性的系统(和方法)。一个示例系统包括运行应用程序的第一实例的第一客户端设备,以及带有应用程序的第二实例的第二客户端设备。(第一设备)的用户决定将第一客户端设备上的应用程序的操作转移到第二客户端设备。响应于用户的转移应用程序的操作的指示,第一客户端设备生成有关正在运行的应用程序的操作参数的状态信息,并将该状态信息传输到第二客户端设备。第二客户端设备又启动应用程序的第二实例,并在用户在第一设备上离开的点继续执行应用程序。有利地,这可以使用户在两个不同的设备之间,实时地(或接近实时地)转移“活的”应用程序(例如,视频流、音频流等等),而不会丢失会话数据。
[0015]在某些实施例中,用户可以创建一个或多个私有域,并注册每一个域内的设备和应用程序。可以使用加密机制,以便只有域内的受信任的设备能够参与应用程序状态信息的“活的”转移。在其他实施例中,可以在“云”环境中使用服务器,其中,服务器维护私有域,并提供加密密钥以在私有域内提供安全措施并防止内容在域外面共享。服务器和客户端设备可以协调,以使用各种通信协议,在客户端设备之间实现通信。
[0016]图1示出了根据本发明的各实施例的系统100。系统100可以包括使用连续性服务器102 (下面“服务器102”),以及多个客户端设备120A,120B。作为系统100的一般概述,每一个客户端设备120A和120B被配置成彼此进行通信,以促进正在运行的应用程序的操作从一个设备向另一个设备的转移。可以使用服务器102来建立私有域114A,该私有域114A包括对应于客户端设备120A和120B和可操作以在域114A中的客户端设备120A、120B上运行的至少一个应用程序118的标识符。服务器102还可基于每个应用程序和/或每个域地提供加密密钥(例如,Kal07和/或P113),以在客户端设备120A和120B之间实现状态信息的安全转移。此处比较详细地描述了图1的每一个组件。
[0017]服务器102可以包括应用程序注册引擎104和私有域引擎108。应用程序注册引擎104可以被配置成向服务器102注册至少一个应用程序118,并判断应用程序118是否可操作以在第一和第二客户端设备120A,120B上运行。客户端设备120A-120B可以独立地包括,但不仅限于,移动电话、智能电话、个人媒体播放器(PMP)、个人数字助理(PDA)、上网本、笔记本、台式机、和/或手持式电子设备。另外,应用程序注册引擎104还可包括应用程序密钥生成器106。密钥生成器106被配置成为向服务器102注册的每一个应用程序118生成加密密钥,下面简称为Kal07。Kal07可以包括,例如,公钥、私钥,或其他已知加密密钥。
[0018]私有域引擎108可以被配置成在服务器102上生成至少一个私有域114A。在所示出的实施例中,私有域引擎108可以被配置成在服务器上生成多个私有域114A、114B、...114N。为便于描述,可以是多个私有域中的任何一个的单个私有域此处将称为“私有域114”。私有域引擎108可以包括被配置成向服务器102,特别是向特定私有域114注册第一和第二客户端设备120A,120B中的至少一个的设备注册引擎110。另外,设备注册引擎110还可包括域密钥生成器112。域密钥生成器112被配置成为在服务器102中所生成的每一个私有域114,生成域密钥P113。域密钥P113可以包括,例如,公钥、私钥,或其他已知加密密钥。
[0019]在所示出的实施例中,每一个私有域114都可以包括注册的应用程序表117、注册的用户表119,以及注册的设备表121。注册的应用程序表117可以包括向服务器102上的私有域114注册的每一应用程序的身份。注册的用户表119可以包括向服务器102上的私有域114注册的每一用户的身份。注册的设备表121可以包括向服务器102注册的并包括在该特定域114中的每一个客户端设备120AU20B的身份。
[0020]在为每一个私有域114生成域密钥Pl 13之时,服务器102被配置成通过通信链路132与向服务器102注册的并在注册的设备表121中标识的每一个客户端设备120A、120B进行通信。另外,每一个客户端设备(例如,客户端设备120A)可以通过通信链路132与另一个客户端设备(例如,客户端设备120B)进行通信。通信链路132可以包括任何有线和/或无线通信手段,包括,但不仅限于,WiF1、WiMax,802.1x标准中的任何一个和/或蓝牙通信。服务器102进一步被配置成安全地将域密钥Pl 13传输到每一个注册的客户端设备(例如,客户端设备120A、120B),并在每一个客户端设备120A、120B中的安全处理器124中提供域密钥P113。安全处理器124可以包括具有通用功能和/或安全功能(B卩,密钥数据的安全保管和高速数字签名计算)的处理器。[0021]在一个实施例中,服务器102可以被配置成允许客户端设备120AU20B临时向特定域114注册。客户端设备120A、120B向私有域114的临时注册可以启用来宾访问模式。客户端设备120A,120B的临时注册还可允许最初在单独的域(例如,114A和114N)上注册的设备120AU20B的用户之间的时间受限的临时信息共享,由此,允许在用户之间建立瞬时协作网络。
[0022]服务器102可以包括被配置成与客户端设备120AU20B和/或应用程序118中的每一个交换命令和数据的任何类型的电路。例如,服务器102可以包括在通用计算系统(例如,台式机PC、膝上型计算机、移动PC、手持式移动设备、智能电话,等等)中发现的商品电路(例如,多核CPU(可以包括多个处理核和算术逻辑单元(ALU))、存储器、存储器控制器单元、视频处理器、网络处理器、总线控制器等等)和/或可以在通用计算系统和/或专用计算系统(例如,高度可靠的系统,超级计算系统等等)中发现的定制电路。
[0023]“电路”,如在此处的任何实施例中所使用的,可以包括,例如,单独地或以任何组合,硬连线的电路、可编程的电路、状态机电路和/或存储由可编程电路执行的指令的固件。
[0024]应用程序118可以包括任何类型的被配置成与服务器102和每一个客户端设备120AU20B交换命令和数据的软件程序包、代码模块、固件和/或指令集。例如,应用程序118可以包括与通用计算系统相关联的软件程序包(例如,最终用户通用应用程序(例如,Microsoft Word、Excel等等),网络应用程序(例如,web浏览器应用程序、电子邮件应用程序等等))和/或为通用计算系统和/或专用计算系统编写的定制软件程序包、定制代码模块、定制固件和/或定制指令集(例如,科学计算程序包、数据库程序包等等)。
[0025]对本发明来说,术语“源设备”是指用户希望从其转移正在运行的应用程序118的第一客户端设备(例如,客户端设备120A),术语“目标设备”是指用户希望接收正在运行的应用程序118的第二客户端设备(例如,客户端设备120B)。如此,在下面的讨论中,源设备可以与第一客户端设备120A可互换地使用,目标设备可以与第二客户端设备120B可互换地使用。每一个客户端设备120A,120B可以包括主机和/或开放部分128和安全部分130。可以理解,主机部分128可以具有对安全部分130的有限的访问。
[0026]在一个实施例中,至少一个应用程序118 (I)的第一实例可以在第一客户端设备120A上运行。另外,应用程序118 (2)的第二实例可以被包括在第二客户端设备120B上。第一客户端设备120A (源设备)的用户可能希望将来自第一客户端设备120A上的正在运行的应用程序118 (I)的状态信息和数据转移到私有域114中的第二客户端设备120B (目标设备)。如此处所使用的,状态信息表示在将正在运行的应用程序转移到另一设备时在第一客户端设备120A上运行的应用程序的有序数据的序列内的相对位置的指示信息。例如,状态信息可以包括表示当用户指出转移功能时应用程序118内的时间点的应用程序118的操作参数,其能使应用程序118在应用程序118内的相同或大致相同的相对位置开始在目标设备120B上运行。
[0027]作为示例,用户可能正在第一客户端设备120A上听音频应用程序。在音频应用程序正在运行时的任何时刻,用户可能有选择地指出将正在运行的音频应用程序转移到另一个客户端设备(例如,第二客户端设备120B)。在转移指示的时刻,音频应用程序的状态信息可以包括在发生转移指示时音频文件中的相对位置(例如,对应于计时器等等的数据)。[0028]作为另一个示例,用户可能正在第一客户端设备120A上观看视频应用程序。当视频文件正在运行时,用户可能有选择地指出将正在运行的视频文件转移到另一个客户端设备(例如,第二客户端设备120B)。视频文件的状态信息可以包括在发生转移指示时的相对位置(例如,对应于视频帧等等的数据)。可任选地,状态信息可以包括相应的音频(如果有的话)与视频帧的相对位置。
[0029]作为另一个示例,用户可能启动在第一客户端设备120A上运行的办公套件应用程序向另一个客户端设备(例如,第二客户端设备120B)的转移。办公套件应用程序可以包括,但不仅限于,字处理应用程序、电子表格应用程序、演示文稿应用程序和/或绘图应用程序。在转移指示时,办公套件应用程序的状态信息可以包括对应于发生转移指示时的相对位置的数据(例如,对应于用户正在查看的页面的数据)。
[0030]应用程序118 (1),118 (2)的第一和第二实例可以根据此处所描述的方法向服务器102注册。在注册应用程序118 (1),118 (2)的第一和第二实例之时,生成应用程序特定的密钥Kal07 (注册的应用程序118 (1)-118 (2)特定的)。用户可以如此处所描述的,通过向服务器102注册第一和第二客户端设备120A,120B,进一步创建私有域114A。私有域114A的注册的应用程序表117和注册的设备表121可以被配置成包含分别对应于注册的应用程序118 (1)、118 (2)和注册客户端设备120A,120B的标识符。在注册设备120A,120B中的每一个之时,服务器102被配置成在注册的每一个客户端设备120AU20B中的安全处理器124中安全地提供域密钥P113 (私有域114A特定的)。
[0031]可任选地,客户端设备120AU20B可以包括注册的应用程序表117、注册的用户表119和/或注册的设备表121 (为清楚起见,未示出)的副本。例如,客户端设备120A、120B可以使用注册的应用程序表117来判断在客户端设备上运行的特定应用程序是否与本发明的转移操作兼容。客户端设备120AU20B可以使用注册的用户表119来判断客户端设备120AU20B的特定用户是否被授权转移特定应用程序以及用户可以向哪些客户端设备转移该应用程序。客户端设备120AU20B还可使用注册的设备表121来判断和/或标识可以向其转移正在运行的特定应用程序的其他客户端设备。例如,第一客户端设备120A可以使用注册的设备表121来确定第一客户端设备120A的通信范围内的潜在的客户端设备的列表,并向该用户呈现此列表,以供选择。
[0032]在注册应用程序118 (1)-118 (2)和客户端设备120A-120B之时,用户可以通过用户输入125有选择地指出他的将在源设备120A上运行的应用程序118 (I)的第一实例的操作转移到目标设备120B的愿望。用户输入125可以包括用户的有选择性的输入的任何手段,包括但不仅限于,手势识别、运动识别、和/或接近度感知技术,以及其他输入手段。尽管不是详尽清单,然而用户输入125可以包括在显示设备(诸如触摸屏等等)的一部分上的刷运动、摇动、输入密码和/或PIN码,激活图标和/或菜单等等。每一个客户端设备120A-120B都可以包括被配置成接收用户输入125并向应用程序118 (1)、118 (2)的第一和第二实例传递指示的转移模块134。
[0033]转移模块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 (I)的第一实例。
[0034]注册的应用程序118 (I)的第一实例可以包括被配置成在接收到转移操作的指示之时生成状态块(State)的状态信息生成器122。术语“块(blob)”可以是指作为单个实体存储的数据的集合,可包括图像、音频和/或其他多媒体对象。应用程序118 (I)的第一实例被配置成使用构成应用程序加密的状态块(State)Ka的应用程序特定的密钥Kal07来加密和/或签名状态块(State)。用于签名的密钥可以从域密钥P113导出。应用程序加密的状态块(State)Ka包括状态信息,并可任选地可以包括当前在源设备120A上运行的注册的应用程序118 (I)的第一实例的数据。
[0035]例如,在一个实施例中,注册的应用程序118 (I)的第一实例可以包括在源设备120A上运行的视频文件。当接收到转移操作的指示时,用户可能正在视频文件的特定标记或中贞处(诸如“巾贞F”)查看视频。(State) Ka中所包括的状态信息可以包括表示巾贞F (即,接收到转移操作的指示时的巾贞)的数据。(State)Ka中所包括的状态信息还可包括表示剩余的帧(例如,从帧F到视频文件的最后一个帧的帧)的数据。可另选地,状态信息可以包括整个视频文件(视频文件的所有帧)以及指出帧F的数据,由此,可使用户在目标设备120B上查看整个视频文件,或只是从文件被转移的帧处(帧F)继续。例如,用户和/或应用程序118 (I)可以在源设备120A上暂停视频文件(帧F),将视频文件转移到目标设备120B,并在目标设备120B上从帧F开始恢复观看视频。
[0036]注册的应用程序118 (I)的第一实例进一步被配置成通过安全通信链路126与第一客户端设备120A的安全处理器124进行通信。注册的应用程序118 (I)的第一实例被配置成通过通信链路126将(State) Ka传输到源设备120A的安全处理器124。注册的应用程序118 (I)的第一实例进一步被配置成请求安全处理器124利用域密钥P113来加密和/或签名(State)Ka。在从注册的应用程序118 (I)的第一实例接收到(State)Ka和加密请求之时,安全处理器124被配置成利用构成域加密的状态块((State)Ka)P (利用域密钥Pl 13来保护)的域密钥Pl 13来加密和/或签名(State) Ka。
[0037]在在私有域114A中注册客户端设备120A-120B之时,第一和第二客户端设备120AU20B可以被配置成通过通信链路132 (2)彼此进行通信,并传输信息,特别是在一个设备上运行的注册的应用程序的状态信息。除此处所描述的通信链路132的示例之外,通信链路132(2)还可包括近场通信,无线自组织(ad-hoc)网络等等。客户端设备120A-120B还可被配置成与服务器102进行通信,以发现诸如在协作使用情况下每一个注册的客户端设备的诸如IP地址之类的身份。[0038]在发现客户端设备之时,源设备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。
[0039]在从注册的应用程序118 (2)的第二实例接收到((State)Ka)P和解密请求之时,安全处理器124B被配置成使用域密钥Pl 13,来解密和/或验证((State)Ka)P,并生成(State)Ka。安全处理器1242进一步被配置成通过安全通信链路126 (2)来将(State)Ka转移到注册的应用程序118 (2)的第二实例。在接收到(State)Ka时,注册的应用程序118(2)的第二实例被配置成使用应用程序特定的密钥Kal07,来解密和/或验证(State) Ka,并生成并还原在((State)Ka)P中转移的注册的应用程序118 (I)的第一实例的状态信息。注册的应用程序118 (2)的第二实例被配置成利用生成的和还原的状态信息来在目标设备120B上恢复应用程序118的执行。应该注意,前面的讨论可以可另选地应用在其他实施例中,例如,在第二客户端设备120B可以是源设备,而第一客户端设备120A可以是目标设备的情况下。
[0040]图2示出了根据本发明的一实施例的用于建立私有域的操作的流程图200。例如,方法200可以包括创建新私有域D (操作202);生成包括对应于与私有域D相关联的一个或多个设备的标识符的注册的设备表(操作204);生成包括对应于与私有域D相关联的一个或多个用户的标识符的注册的用户表(操作206);以及,生成包括对应于与私有域D相关联的一个或多个应用程序的标识符的注册的应用程序表(操作208)。
[0041]根据一实施例,可以由服务器,例如,通过服务器的私有域引擎,在用户启动时,来创建私有域D (操作202)。在创建私有域D时,可以生成域密钥P (操作210)。域密钥P可以由服务器,例如,通过服务器的域密钥生成器来生成,并可以包括公钥、私钥或其他已知的加密密钥。域密钥生成器可以使用任何加密方法,诸如,但不仅限于,本发明的受让人的丨ntel?高级加密标准(AES),来生成域密钥P。域密钥P可以存储在与私有域D相关联的每一个设备中(操作212)。例如,域密钥P可以存储在与私有域D相关联的每一个设备的安全处理器中。
[0042]注册的设备表可以由用户通过服务器来生成(操作204)。例如,一个或多个用户可以使用服务器的设备注册引擎来向私有域D注册设备,以生成注册的设备表。注册的设备表可以包括多个标识符,每一个标识符都对应于与私有域D相关联的设备中的一个设备。
[0043]类似地,一个或多个用户可以向私有域D注册,以生成注册的设备表(操作206)。注册的用户表可以包括多个标识符,每一个标识符都对应于与私有域D相关联的用户中的一个用户。注册的用户表可以可任选地包括对应于用户与其相关联的特定设备的标识符。
[0044]—个或多个应用程序可以向服务器注册,以生成注册的应用程序表(操作208)。应用程序可以由用户、制造商和/或第三方来注册。例如,应用程序可以使用应用程序注册引擎向服务器注册。一旦注册了应用程序,服务器就生成应用程序特定的密钥Ka(操作214),例如,使用应用程序密钥生成器。应用程序特定的密钥Ka可以包括,例如,公钥、私钥,或其他已知加密密钥,并可以使用任何加密方法来生成,诸如,但不仅限于,本发明的受让人的Intel?高级加密标准(AES)。然后,应用程序特定的密钥Ka可以存储在与私有域D相关联的每一个设备中(操作216)。例如,应用程序特定的密钥Ka可以存储在每一个客户端设备上的注册的应用程序118中。
[0045]根据另一实施例,本发明的方法200可以消除服务器。具体而言,一个或多个客户端设备可以包括如此处所描述的私有域引擎、设备注册引擎,和/或应用程序注册引擎。用户可以使用第一客户端设备的私有域引擎来生成私有域D (操作202)并生成域密钥P,然后,可以将域密钥P转移到与私有域D相关联的其他设备(操作212)。
[0046]类似地,一个或多个客户端设备可以被配置成生成注册的设备表(操作204)。例如,第一客户端设备可以充当用于注册设备并生成注册的设备表的中枢,然后,注册的设备表可以被转移到与私有域D相关联的其他设备。可另选地,每一个客户端设备都可以被配置成独立地注册和/或生成注册的设备表(该表可以传递到注册的设备表上的其他设备,例如,以循环方式等等)。
[0047]注册的应用程序表可以使用与私有域D相关联的客户端设备中的一个或多个的应用程序注册引擎来生成(操作208),并可以使用与私有域D相关联的客户端设备中的一个或多个的应用程序密钥生成器来生成应用程序特定的密钥Ka (操作214)。例如,第一客户端设备可以充当用于注册应用程序并生成注册的应用程序表的中枢,然后,注册的应用程序表可以被转移到注册的设备表上的其他设备(操作216)。可以按与其他表类似的方式生成注册的用户表(操作206)。
[0048]图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),例如,在当转移功能在第一设备上启动时的点。
[0049]现在转向图4,一般性地示出了根据本发明的各实施例的系统400的另一实施例。系统400类似于图1的系统100,只是客户端设备420A,420B包括系统管理程序和/或监控程序410,并且应用程序118独立于转移操作。具体而言,监控程序410包括被配置成在从转移模块134接收到用户希望将应用程序118转移到另一设备的指示时生成与应用程序118 (I)的第一实例相关的状态信息的状态信息生成器。监控程序410进一步被配置成在接收到转移操作的指示之时生成状态块(State),并使用构成应用程序加密的状态块(State) Ka的应用程序特定的密钥Kal07来加密和/或签名状态块(State)。应用程序加密的状态块(State)Ka包括状态信息,并可任选地可以包括当前在源设备420A上运行的注册的应用程序118 (I)的第一实例的数据。
[0050]监控程序410进一步被配置成通过通信链路126将(State)Ka转移到源设备120A的安全处理器124,并请求安全处理器124利用域密钥Pl 13来加密和/或签名(State)Ka。在从监控程序410接收到(State) Ka和加密请求之时,安全处理器124被配置成利用构成域加密的状态块((State)Ka)P (利用域密钥P113来保护)的域密钥P113来加密和/或签名(State) Ka。
[0051]域加密的状态块((State) Ka) P可以由第二客户端设备420B接收(例如,通过通信链路132 (2)),并启动注册的应用程序118 (2)的第二实例。监控程序410 (B)被配置成通过安全通信链路126 (B)与目标设备420B的安全处理器124B进行通信,并向其转移((State)Ka)P,并请求安全处理器124B解密和/或验证((State)Ka)P。
[0052]在从注册的应用程序118 (2)的第二实例接收到((State)Ka)P和解密请求之时,安全处理器124B被配置成使用域密钥Pl 13,来解密和/或验证((State)Ka)P,并生成(State)Ka。安全处理器124B进一步被配置成通过安全通信链路126 (B)来将(State)Ka转移到监控程序410 (B)。在接收到(State)Ka之时,监控程序410 (B)被配置成使用应用程序特定的密钥Kal07,来解密和/或验证(State)Ka,并生成和还原在((State)Ka)P中转移的注册的应用程序118 (I)的第一实例的状态信息。注册的应用程序118 (2)的第二实例被配置成利用生成的和还原的状态信息来在目标设备420B上恢复应用程序118的执行。
[0053]现在转向图5,一般性地示出了根据本发明的各实施例的系统500的再一个实施例。系统500包括一个或多个设备520A,520B,以创建私有域和/或将在第一客户端设备520A (下面简称为“源设备520A”)上运行的应用程序118转移到第二客户端设备520B (下面简称为“目标设备520B”)。因此,系统500可以消除系统100的使用连续性服务器102(图1)。作为系统500的一般概述,每一个客户端设备520A和520B被配置成彼此进行通信,以促进正在运行的应用程序的操作从一个设备向另一个设备的转移。为了简洁,将不会重复系统500中与系统100 (图1)相同的各方面。
[0054]尽管系统500的设备520A、520B中的一个或多个可以类似于系统100的设备120AU20B,然而设备520A、520B中的至少一个被配置成创建新私有域D ;生成包括对应于与私有域D相关联的一个或多个设备的标识符的注册的设备表;生成包括对应于与私有域D相关联的一个或多个用户的标识符的注册的用户表;以及,生成如此处所描述的包括对应于与私有域D相关联的一个或多个应用程序的标识符的注册的应用程序表。为了清楚起见,将描述第一设备520A ;然而,可以理解,系统500中的任何客户端设备都可以被配置成执行下列操作。
[0055]第一客户端设备520A还可包括被配置成生成一个或多个私有域(例如,私有域D)的私有域引擎508,以及被配置成可使用户注册要与私有域D相关联的一个或多个客户端设备并生成注册的设备表121 (其传输到与私有域D相关联的其他设备中的一个或多个)的设备注册引擎510。域密钥(P)生成器512可以创建域密钥P,其可以基于注册的设备表121,传输到与私有域D相关联的其他设备中的一个或多个。另外,可以在客户端设备520A上生成注册的用户表119,该表119将用户链接到私有域中的一个或多个应用程序和/或设备。
[0056]可以使用第一设备520A的应用程序注册引擎504来注册要与私有域D相关联的应用程序118。一旦注册了应用程序118,应用程序密钥生成器506可以生成应用程序特定的密钥Ka。可以生成注册的应用程序表117,应用程序特定的密钥Ka可以与应用程序118
(I)存储在一起。第一设备520A还可被配置成将应用程序特定的密钥Ka传输到与私有域D相关联的其他设备中的一个或多个。
[0057]用户可以启动可以基本上如此处所描述的那样进行的转移操作。由于客户端设备520A、520B被配置成创建私有域,注册应用程序,并生成密钥Ka,P,所以系统500可以消除图1的服务器的必要性。同样,并非与系统500相关联的所有客户端设备都需要能够执行这些功能,相反,一个客户端设备可以充当可以基本上与图1相同地运转的其他设备的中枢设备,例外是,密钥Ka,P可以由中枢设备(例如,客户端设备520A)生成并从中枢设备接收。
[0058]图6示出了根据本发明的一实施例的操作的流程图600。此实施例的操作可以包括在第一客户端设备上接收将应用程序的第一实例的操作从第一客户端设备转移到第二客户端设备上的应用程序的第二实例的指示(操作602)。操作还可包括由第一客户端设备并响应于将应用程序的操作从第一客户端设备转移到第二客户端设备的指示,生成包括与应用程序在第一客户端设备上的执行相关联的当前操作参数和数据的状态信息(操作604)。操作还可以包括,由第一客户端设备,将状态信息发送到第二客户端设备,以使第二客户端设备使用应用程序的第二实例和来自第一客户端设备的状态信息,继续第二客户端设备上的应用程序的操作。
[0059]尽管描述了各种系统和方法,但是,可以理解,任何实施例中的各种特征可以与其他实施例相结合。例如,图4的系统管理程序可以与图1和/或5相结合。可另选地(或另外),可以修改图1或4的系统,以消除如图5所描述的服务器。实际上,此处完全设想,在本发明的其他实施例中,图2、3,和/或6中所描绘的操作可以以在附图中的任何一个中没有专门示出的,但是仍完全符合本发明的方式组合。如此,涉及未正好在一个附图中示出的特征和/或操作的权利要求被视为在本发明的范围和内容内。
[0060]本发明的系统和/或方法被配置成正在执行的应用程序实时地跨受信任的设备的安全的、动态的并且无缝的移植,并保留状态信息和数据。另外,可以建立安全通信基础结构,用于促进应用程序状态信息的受信任的传输和数据传输。
[0061]在其他实施例中,本发明的系统和方法可以包括额外的使用方案。用户可以创建不同的使用方案,以适应不同的使用情况。例如,Morning Commute (早晨转换MC)方案可包括 Airport Morning Commute (机场早晨转换 AMC)方案、Work Morning Commute (工作早晨转换WMC)方案和/或Travel Morning Commute (旅行早晨转换TMC)方案。每一个方案都可以包括与特定使用情况相关的受信任的应用程序的集合。
[0062]例如,AMC方案可以包括天气、交通状况、无线电广播内容、媒体内容、电话、航空信息和/或工作相关的应用程序。在一个实施例中,AMC方案可以聚集在用户的家庭系统中。在离开住宅之前,用户可以将AMC受信任的应用程序的状态信息转移到用户的受信任域中的其他IA设备(例如,智能电话、车辆文娱新闻系统、PC等等)(例如,通过使用手势和/或运动技术、语音命令和/或一键式预编程的按钮)。当用户进入他的汽车以开车去机场时,汽车的文娱新闻中心,例如,包括GPS系统,将使到机场的路线和交通信息已经显示。
[0063]此处所描述的各实施例可以使用,例如,硬件、软件、和/或固件来实现,以执行此处所描述的方法和/或操作。此处所描述的某些实施例可以作为存储机器可执行指令的有形的机器可读取的介质来提供,机器可执行指令,如果由机器执行,导致机器执行此处所描述的方法和/或操作。有形的机器可读取的介质可以包括,但不仅限于,任何类型的磁盘,包括软盘、光盘、光盘只读存储器(⑶-ROM)、光盘可重写(⑶-RW),以及磁光盘、诸如只读存储器(ROM)之类的半导体器件、诸如动态和静态RAM之类的随机访问存储器(RAM)、电可擦除编程只读存储器(EEPR0M)、闪存、磁卡或光卡,或适于存储电子指令的任何类型的有形的介质。机器可以包括任何合适的处理平台、设备或系统、计算平台,设备或系统,并可以使用硬件和/或软件的任何合适的组合来实现。指令可以包括任何合适类型的代码,并可以使用任何合适的编程语言来实现。
[0064]如此,在一个实施例中,本发明提供了用于跨客户端设备提供应用程序使用连续性的系统。系统包括被配置成执行应用程序的第一实例的第一客户端设备和被配置成执行应用程序的第二实例的第二客户端设备。第一设备进一步被配置成接收将在第一客户端设备上运行的应用程序的第一实例的操作转移到第二客户端设备上的应用程序的第二实例的指示,并生成与应用程序的第一实例在第一客户端设备上的执行相关联的状态信息和数据。第一客户端设备进一步被配置成导致状态信息被发送到第二客户端设备,以使第二客户端设备上的应用程序的第二实例使用来自第一客户端设备的状态信息,继续第二客户端设备上的应用程序的操作。
[0065]在另一个实施例中,本发明提供了保证具有应用程序的第一实例的第一客户端设备和具有应用程序的第二实例的第二客户端设备之间的应用程序使用连续性的方法。该方法包括在第一客户端设备上接收将在第一客户端设备上运行的应用程序的第一实例的操作转移到第二客户端设备上的应用程序的第二实例的指示;由第一客户端设备并响应于转移应用程序的第一实例的操作的指示,生成与应用程序的第一实例在第一客户端设备上的执行相关联的状态信息和数据;以及,由第一客户端设备,将状态信息和数据发送到第二客户端设备,以使第二客户端设备上的应用程序的第二实例使用应用程序的第二实例和来自第一客户端设备的状态信息,继续第二客户端设备上的应用程序的操作。
[0066]在另一个实施例中,本发明提供包括在其上存储的当由一个或多个处理器执行时导致计算机系统执行包括下列各项的操作的指令的有形的计算机可读取的介质:由第一客户端设备并响应于转移第一客户端设备上的应用程序的第一实例的操作的指示,生成与应用程序的第一实例在第一客户端设备上的执行相关联的状态信息和数据;以及,由所述第一客户端设备,将所述状态信息发送到所述第二客户端设备,以使所述第二客户端设备上的所述应用程序的所述第二实例使用来自所述第一客户端设备的所述状态信息,继续所述第二客户端设备上的所述应用程序的操作。
[0067]此处所使用的术语和表达被用作描述的术语,在使用这样的术语和表达时,没有排除所示出的和所描述的特征的任何等效内容(或其某些部分),应该认识到,在权利要求书的范围内,各种修改都是可以的。相应地,权利要求书旨在涵盖所有这样的等效内容。
[0068]此处描述了各种特征、方面,以及各实施例。各特征、各方面,以及各实施例对彼此组合以及变更和修改敏感,如本领域的技术人员所理解的。因此,本发明应该被视为包含这样的组合、变更,以及修改。
【权利要求】
1.一种用于跨客户端设备提供应用程序使用连续性的系统,所述系统包括: 被配置成执行应用程序的第一实例的第一客户端设备; 被配置成执行所述应用程序的第二实例的第二客户端设备;以及 其中,所述第一客户端设备进一步被配置成: 接收将正在所述第一客户端设备上运行的所述应用程序的所述第一实例的操作转移到所述第二客户端设备上的所述应用程序的所述第二实例的指示; 生成与所述应用程序的所述第一实例在所述第一客户端设备上的执行相关联的状态信息和数据;以及 导致所述状态信息被发送到所述第二客户端设备,以使所述第二客户端设备上的所述应用程序的所述第二实例使用来自所述第一客户端设备的所述状态信息,继续所述应用程序在所述第二客户端设备上的操作。
2.如权利要求1所述的系统,其中,还包括被配置成生成包括所述第一和第二客户端设备中的每一个的身份和所述应用程序的身份的私有域的服务器。
3.如权利要求2所述的系统,其中,所述服务器被配置成为所述应用程序的所述第一和第二实例中的每一个生成应用程序加密密钥Ka和为所述私有域生成域加密密钥P,并将所述域加密密钥P存储在所述第一和所述第二客户端设备中的每一个中。
4.如权利要求3所述的系统,其中,所述应用程序的所述第一实例被配置成使用所述应用程序密钥Ka来加密或签名状态块(blob),以形成应用程序加密的状态块(State)Ka,所述(State)Ka包括利用所述应用程序密钥Ka保护的所述应用程序的所述第一实例的状态息。
5.如权利要求4所述的系统,其中,所述应用程序的所述第二实例被配置成解密或验证所述(State)Ka,并还原所述第二客户端设备上的所述状态信息。
6.如权利要求4所述的系统,其中,所述第一客户端设备包括被配置成使用所述第一客户端设备和所述域加密密钥P来加密或签名所述(State)Ka以形成域加密的状态块((State)Ka)P的安全的处理器。
7.如权利要求6所述的系统,其中,所述第二设备包括被配置成使用所述第二客户端设备来解密所述((State)Ka)P以形成所述(State)Ka的安全的处理器。
8.如权利要求1所述的系统,其中,所述状态信息包括对应于计时器、视频帧或页编号的数据。
9.如权利要求1所述的系统,其中,所述转移所述应用程序的所述第一实例的操作的指示包括用户输入。
10.如权利要求9所述的系统,其中,所述用户输入是从包括手势识别、运动识别、语音识别和命令以及接近度感知的技术的组中选择的。
11.一种用于在具有所述应用程序的第一实例的第一客户端设备和具有所述应用程序的第二实例的第二客户端设备之间的应用程序使用连续性的方法,所述方法包括: 在所述第一客户端设备上接收将正在所述第一客户端设备上运行的所述应用程序的所述第一实例的操作转移到所述第二客户端设备上的所述应用程序的所述第二实例的指示; 由所述第一客户端设备并响应于转移所述应用程序的所述第一实例的操作的所述指示,生成与所述应用程序的所述第一实例在所述第一客户端设备上的执行相关联的状态信息和数据;以及 由所述第一客户端设备,将所述状态信息和数据发送到所述第二客户端设备,以使所述第二客户端设备上的所述应用程序的所述第二实例使用所述应用程序的所述第二实例和来自所述第一客户端设备的所述状态信息,在所述第二客户端设备上继续所述应用程序的操作。
12.如权利要求11所述的方法,其中,还包括使用服务器来生成私有域,所述私有域包括所述第一和第二客户端设备中的每一个的身份和所述应用程序的身份。
13.如权利要求12所述的方法,其中,还包括: 为所述应用程序的所述第一和第二实例中的每一个,生成应用程序加密密钥Ka ;以及 为所述私有域生成域加密密钥P,并将所述域加密密钥P存储在所述第一和所述第二客户端设备中的每一个中。
14.如权利要求13所述的方法,其中,还包括: 使用所述应用程序的所述第一实例和所述应用程序密钥Ka,来加密状态块,以形成应用程序加密的状态块(State)Ka,所述(State)Ka包括利用所述应用程序密钥Ka保护的所述应用程序的所述第一实例的状态信息;以及 使用所述第一客户端设备和所述域加密密钥P,来加密所述(State) Ka,以形成域加密的状态块((State)Ka)P。
15.如权利要求14所述的方法,其中,还包括:` 使用所述第二客户端设备来解密所述((State)Ka)P,以形成所述(State)Ka;以及 使用所述应用程序的所述第二实例,来解密所述(State)Ka ; 其中,所述应用程序的所述第二实例被配置成在所述第二客户端设备上还原所述状态信息。
16.如权利要求11所述的方法,其中,所述状态信息包括对应于计时器、视频帧或页编号的数据。
17.如权利要求11所述的方法,其中,转移所述应用程序的所述第一实例的操作的所述指示包括用户输入。
18.如权利要求17所述的方法,其中,所述用户输入是从包括手势识别、运动识别、语音识别和命令以及接近度感知的技术的组中选择的。
19.包括在其上存储的当由一个或多个处理器执行时导致所述一个或多个处理器执行包括下列各项的操作的指令的有形的计算机可读取的介质: 由一个第一客户端设备并响应于转移应用程序的第一实例的操作的指示,生成与所述应用程序的所述第一实例在所述第一客户端设备上的执行相关联的状态信息和数据;以及 由所述第一客户端设备,将所述状态信息发送到所述第二客户端设备,以使所述第二客户端设备上的所述应用程序的所述第二实例使用来自所述第一客户端设备的所述状态信息,在所述第二客户端设备上继续所述应用程序的操作。
20.如权利要求16所述的计算机可读介质,其特征在于,还包括: 在所述第一客户端设备上接收将正在所述第一客户端设备上运行的所述应用程序的所述第一实例的操作转移到所述第二客户端设备上的所述应用程序的所述第二实例。
【文档编号】H04L9/08GK103503364SQ201180070543
【公开日】2014年1月8日 申请日期:2011年12月27日 优先权日:2011年4月1日
【发明者】N·伊克巴尔, M·M·哈兹拉, J·C·萨塔帕西, M·米拉沙菲, W·金茨 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1