当前位置: 首页 > 专利查询>英特尔公司专利>正文

用于移动应用的实时迁移的应用容器制造技术

技术编号:17144201 阅读:22 留言:0更新日期:2018-01-27 16:35
系统、装置、以及方法可以提供隔离本机信息与非本机信息,其中本机信息与在受管理运行时环境中运行的移动应用相关联。另外,响应于实时迁移事件,可以对本机信息设定检查点并将其从第一设备转移到第二设备。在一个示例中,本机信息包括本机代码和本机状态数据,并且隔离本机信息与非本机信息包括将一个或多个本机函数调用分派给对专用于本机信息的存储器池进行管理的二进制转换(BT)容器。

Application container for real time migration for mobile applications

System, device and method can provide isolation of native and non native information, where the local information is associated with mobile applications running in the managed runtime environment. In addition, in response to a real-time migration event, a checkpoint can be set on the local information and transferred from the first device to the second device. In one example, the information includes the machine code and the machine state data, and isolated the machine information and non local information including one or more native function calls assigned to the machine dedicated to the memory of pool information management binary conversion (BT) container.

【技术实现步骤摘要】
【国外来华专利技术】用于移动应用的实时迁移的应用容器相关申请的交叉引用本申请要求享有于2015年3月27日提交的美国非临时专利申请No.14/671,680的优先权的利益。
实施例总体上涉及应用迁移。更具体地,实施例涉及用于移动应用的实时迁移的应用容器。
技术介绍
应用的实时迁移可以涉及将正在运行的应用从一个平台(例如,移动设备)转移到另一个平台(例如,智能电视/TV)。当前的实时迁移解决方案可能会冻结正在运行的应用,对应用、底层操作系统(OS)、和/或虚拟机(VM)、以及应用依赖的所有服务设定检查点,以及尝试在另一平台上恢复被设定检查点的信息。因此,这样的方法可以对硬件特定信息进行迁移,举例来说,例如特定于每个硬件实现方式的图形状态信息及其相关联的库代码。因此,常规的实时迁移工具在跨平台的硬件兼容性方面可能存在挑战。实际上,对于以最小硬件资源运行的移动设备,过多的检查点设定可能会导致次优性能。附图说明通过阅读以下说明书和所附权利要求,以及通过参考以下附图,实施例的各种优点对于本领域技术人员将是显而易见的,在附图中:图1是根据实施例的操作系统的示例的框图;图2A和图2B分别是常规的受管理运行时的存储器布局的示例以及根据实施例的存储器布局的示例的图示;图3是根据实施例的对实时应用进行迁移的方法的示例的流程图;图4A和图4B是根据实施例的对容器进行操作的方法的示例的流程图;图5是根据实施例的一组状态重建通信的示例的图示;图6是根据实施例的具有版本不匹配的容器的迁移的示例的框图;图7是根据实施例的版本不匹配解决方案的示例的框图;以及图8是根据实施例的应用迁移装置的示例的框图。具体实施方式现在转到图1,示出了移动操作系统(OS)11,举例来说,其运行诸如游戏、媒体播放器、社交联网应用等的移动应用1g,其中所示出的移动应用1g包括受管理运行时环境1a(例如,“受管理运行时”)。在一个示例中,移动应用lg是安卓(ANDROID)(GOOGLE公司)应用。受管理运行时环境1a可以是以下高级解决方案:例如,HTML5(超文本标记语言5,例如,2012年5月W3C的HTML5Editor'sDraft8)、Dalvik(安卓开放手持设备联盟/OHA)、ART(安卓运行时,OHA)、C#(例如,2012年8月15日微软公司的C#5.0),.NET(例如,2013年10月17日微软公司的.NETFramework4.5)、Ruby(例如,2013年12月25日Y.Matsumoto的Ruby2.1.0)、Perl(例如,2014年1月7日Perl.org的Perl5.18.2)、Python(例如,2013年11月19日Python软件基金会的Python3.3.3)、JAVA(例如,2014年1月14日ORACLE公司的JAVA标准版本7更新51)等,或者提供运行时编译作为应用层与和受管理运行时环境1a一起运行的OS1l之间的附加抽象层级的其它虚拟机(VM)。在执行期间,所示的移动应用1g创建应用受管理状态1f。另外,受管理运行时环境1a可以创建受管理运行时本机状态1b。移动应用1g还可以包括创建本机状态数据1c(例如,“本机状态”)的应用本机代码1d。在所示的示例中,应用本机代码1d在容器le内执行,该容器1e将本机代码1d和本机状态数据1c与受管理运行时本机状态1b(其可以包括硬件特定的状态数据)隔离开。操作系统1l还可以具有多个正在运行的辅助服务1h,其中辅助服务1h可以与移动应用1g进行交互。辅助服务1h可以保存与移动应用1g有关的一些辅助状态1k(除了与其它应用有关的辅助状态1i、1j之外)。因此,当检测到实时迁移事件时,受管理运行时环境1a可以使用检查点设定器(未示出)来对受管理状态1f设定检查点,容器1e可以对应用本机代码1d和本机状态数据1c设定检查点,以及辅助服务1h可以对辅助状态1k设定检查点。可以将被设定检查点的状态转移到另一设备。特别要注意,受管理运行时1a可以自然地支持在新的设备上重建本机状态1b,而不会遇到硬件兼容性问题。此外,仅对容器1e中的应用信息而非整个系统设定检查点可以改进以最小硬件资源运行的移动设备的性能。如将更详细地讨论的,容器1e可以是仿真和/或控制本机代码1d的执行的二进制转换(BT)容器。图2A示出了常规的受管理运行时(例如,受管理运行时环境1a(图1))的存储器布局,其将调用分派到应用本机代码(举例来说,例如,本机代码1d(图1))中。下面是应用本机代码的示例,其为对对象(例如,“nativeObj”)进行分配的C语言中的函数(例如,“Java_Foo_fooNative”)。如图2A所示,受管理运行时栈(stack)2c保存用于运行时的栈帧和用于Java_Foo_fooNative函数的栈帧。受管理运行时堆(heap)2d保存由运行时分配的数据,并且还保存由Java_Foo_fooNative函数分配的对象。所示出的常规解决方案的问题在于,运行时的本机状态(栈和堆)没有与应用的本机状态(栈和堆)隔离开。相比之下,图2B展示了可以通过在BT容器中对应用本机代码1d(图1)进行仿真来实现受管理运行时本机状态与应用本机状态的隔离。BT容器可以针对本机区域2g的自身状态对其进行管理,其中所示出的区域2g包括用于栈2i和堆2h的空间。受管理运行时调用“BTContainerCall”,而不是调用Java_Foo_fooNative函数,如在受管理运行时栈2f中示出的。函数BTContainerCall可以开始仿真Java_Foo_fooNative,这产生BT容器堆2h中的nativeObj的分配。受管理运行时堆2e可以继续存储运行时数据。因此,与正在运行的移动应用相关联的应用本机状态与受管理运行时的本机状态隔离开,如所示的示例中示出的。现在转到图3,示出了启动和运行被启用以用于实时应用的移动应用的方法3a,并且示出了将应用状态从第一设备迁移到第二设备的方法3j。方法3a和3j可以是被实现为存储在以下中的一组逻辑指令中的一个或多个模块的机制:在诸如随机存取存储器(RAM)、只读存储器(ROM)、可编程ROM(PROM)、固件、闪速存储器等的机器或计算机可读存储介质中,在举例来说诸如可编程逻辑阵列(PLA)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)的可配置逻辑中,在使用举例来说诸如专用集成电路(ASIC)、互补金属氧化物半导体(CMOS)、或晶体管-晶体管逻辑(TTL)技术的电路技术的固定功能硬件逻辑中,或者其任何组合。例如,用于执行方法3a和3j中所示的操作的计算机程序代码可以以一种或多种编程语言的任何组合来编写,包括诸如C#、JAVA等的面向对象的编程语言。图3一般性地示出了将本机信息与受管理运行时本机信息隔离开的过程。本机信息可以与在受管理运行时环境中运行的移动应用相关联,并且在处理框3b处可以将移动应用识别为实时迁移候选,其中在框3c处未被启用以用于迁移的应用可以由受管理运行时来运行。本机信息可以包括本机代码和本机状态数据。如将更详细地讨论的,框3g可以包括将一个或多个本机函数调用(例如,上面讨论的Java_Foo_fooNative函数)分派给对资源进行管本文档来自技高网...
用于移动应用的实时迁移的应用容器

【技术保护点】
一种应用迁移装置,包括:用于将本机信息与受管理运行时信息隔离的机制,其中,所述本机信息与在受管理运行时环境中运行的移动应用相关联;第一检查点设定器,所述第一检查点设定器用于对所述本机信息设定检查点;以及迁移器,所述迁移器用于响应于实时迁移事件而将被设定检查点的本机信息从第一设备转移到第二设备。

【技术特征摘要】
【国外来华专利技术】2015.03.27 US 14/671,6801.一种应用迁移装置,包括:用于将本机信息与受管理运行时信息隔离的机制,其中,所述本机信息与在受管理运行时环境中运行的移动应用相关联;第一检查点设定器,所述第一检查点设定器用于对所述本机信息设定检查点;以及迁移器,所述迁移器用于响应于实时迁移事件而将被设定检查点的本机信息从第一设备转移到第二设备。2.根据权利要求1所述的装置,其中,所述本机信息包括本机代码和本机状态数据,并且所述装置还包括容器接口,所述容器接口用于将一个或多个本机函数调用分派给对专用于所述本机信息的资源进行管理的二进制转换容器。3.根据权利要求2所述的装置,其中,所述容器接口将一个或多个包装器函数指针传递到所述二进制转换容器,并且其中,所述一个或多个包装器函数指针对应于一个或多个受管理运行时函数。4.根据权利要求3所述的装置,其中,所述一个或多个包装器函数指针使得所述二进制转换容器将受容器控制的执行暂停并且调用对应的一个或多个受管理运行时函数。5.根据权利要求2所述的装置,其中,所述容器还包括:包装器函数,所述包装器函数用于调用所述二进制转换容器外的一个或多个硬件特定函数,其中,所述容器接口接收来自移动操作环境的一个或多个包装器函数指针;以及包装器管理器,所述包装器管理器用于管理硬件相关库的函数及其相关联的资源。6.根据权利要求1所述的装置,还包括状态重建器,所述状态重建器用于在所述第二设备上重放或注入对辅助服务的一个或多个调用。7.根据权利要求1所述的装置,还包括用于对应用受管理状态设定检查点的第二检查点设定器,其中,所述迁移器对所述应用受管理状态进行迁移。8.根据权利要求1所述的装置,其中,所述本机信息包括版本数据,并且所述装置还包括:版本相关性管理器,所述版本相关性管理器用于基于所述版本数据来检测所述第一设备与所述第二设备之间的不匹配;以及资源重定向器,所述资源重定向器用于将一个或多个硬件特定调用重定向到其中版本相关性被维护的子路径,其中,一个或多个辅助服务包括修改以便对与当前设备具有版本不匹配的应用进行识别和交互。9.根据权利要求1至8中任一项所述的装置,其中,所述移动应用包括安卓应用,并且所述受管理运行时环境包括JAVA虚拟机。10.一种用于对实时应用进行迁移的方法,包括:将本机信息与受管理运行时信息隔离,其中,所述本机信息与在受管理运行时环境中运行的移动应用相关联;对所述本机信息设定检查点;以及响应于实时迁移事件而将被设定检查点的本机信息从第一设备转移到第二设备。11.根据权利要求10所述的方法,其中,所述本机信息包括本机代码和本机状态数据,并且所述方法还包括将一个或多个本机函数调用分派给对专用于所述本机信息的资源进行管理的二进制转换容器。12.根据权利要求11所述的方法,还包括将一个或多个包装器函数指针传递到所述二进制转换容器,其中,所述一个或多个包装器函数指针对应于一个或多个受管理运行时函数。13.根据权利要求12所述的方法,其中,所述一个...

【专利技术属性】
技术研发人员:A·达斯S·S·舒克拉李炜D·M·莱弗里
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1