使用应用容器管理代码和依赖性数据的传递制造技术

技术编号:18580352 阅读:20 留言:0更新日期:2018-08-01 14:45
在一些示例中,一种方法包括:由在计算设备处执行的监管器组件接收执行应用的请求;响应于确定在计算设备的存储器中分配了用于维护应用的可安装子封装的应用容器,由应用容器的容器运行时确定应用的一个或多个依赖项;由所述容器运行时检索所述一个或多个依赖项;以及响应于检索到所述一个或多个依赖项,由所述应用容器执行所述应用。

Using application containers to manage code and dependency data delivery

In some examples, one method includes receiving a request for execution of an application by a regulator component executed at the computing device; responding to the determination of an application container for the installable subpackage used to maintain the application in the memory of the computing device, and determining one or more dependencies of the application when the container's container is transported. One or more dependencies are retrieved by the container when the container is run; and the application container is executed by the application container in response to the retrieval of one or more dependencies.

【技术实现步骤摘要】
【国外来华专利技术】使用应用容器管理代码和依赖性数据的传递
技术介绍
计算设备可以执行各种功能,例如执行应用、接收用户输入以及输出用于显示的信息。例如,计算设备可以执行电子邮件客户端、旅行助理、消息收发客户端等应用。应用可以包括实现各种功能的一个或多个可执行组件。在一些分布式环境中,用户计算设备(例如智能手机)可以使用媒体商店应用来搜索和安装由远程计算系统提供的应用。通常,当用户选择媒体商店应用中的应用以安装在用户计算设备处时,远程计算系统发送包括用于执行应用的所有功能的所有可执行组件的单个文件,而不管用户是否实际使用所有功能。此外,在所有可执行组件已经下载并安装在用户计算设备处之前,应用通常是不可执行的。
技术实现思路
总体而言,本公开的技术用于管理应用容器对应用代码和依赖性数据的传递,而不需要对底层操作系统进行修改。对于操作系统来说,应用容器看起来是应用本身,即使在应用容器内没有执行任何应用代码,应用容器也不是独立的功能应用。应用容器可以提供开发人员在编写应用时可用的多个不同的应用编程接口(API)。也就是说,开发人员可以避免依赖底层操作系统或共享库提供的API,并且可以避免在编译时静态链接各种库。相反,开发人员可以假设由应用容器提供的API是不变的,并且应用容器本身管理应用依赖项、共享库更新等。如果用户发起应用的安装,则应用容器将并行地检索应用的一个或多个不同子封装以及开发人员指定的任何依赖性数据。依赖性数据可以包括强制依赖性数据以及可选的依赖性数据。一旦检索到至少一个子封装和强制依赖性数据,应用容器就可以开始执行应用,即使不是所有子封装或可选依赖性数据都可能被检索。也就是说,本公开的技术不是等待所有应用子封装和依赖性数据被下载到计算设备,而是使计算设备能够使用应用容器来管理应用子封装和依赖性数据的检索,并且一旦检索到必需子封装和依赖性数据,即使不是所有子封装和依赖性数据都已经下载到计算设备,也开始执行应用。以这种方式,计算设备可以比需要在执行之前下载所有数据的情况更快地开始执行应用。此外,这些技术可以更有效地使用计算设备处可用的数据存储空间,因为通过仅下载执行应用的某些功能所必需的子封装和数据,应用可以消耗计算设备上更少的存储空间。在一个示例中,一种方法包括:由在计算设备处执行的监管器组件接收执行应用的请求;由监管器组件确定是否在计算设备的存储器中分配了用于维护应用的可安装子封装的应用容器;以及响应于确定在计算设备的存储器中分配了应用容器,由应用容器的容器运行时确定应用的多个依赖项,其中,一个或多个依赖项包括一个或多个必需依赖项和一个或多个可选依赖项。该方法进一步可以包括:由容器运行时发起对所述一个或多个必需依赖项的检索;由容器运行时发起对所述一个或多个可选依赖项的检索;以及响应于接收到一个或多个必需依赖项中的所有必需依赖项,并且当所述可选依赖项中的至少一个可选依赖项尚未被容器运行时接收到时,由计算设备执行应用。在另一示例中,计算设备包括存储监管器组件的一个或多个存储组件和一个或多个处理器。一个或多个处理器执行监管器组件以接收执行应用的请求并接收执行应用的请求。响应于所述监管器组件确定在所述计算设备的存储器中分配了所述应用容器,所述应用容器的容器运行时能够由所述一个或多个处理器执行以:确定所述应用的一个或多个依赖项,其中,所述一个或多个依赖项包括一个或多个必需依赖项和一个或多个可选依赖项,发起对所述一个或多个必需依赖项的检索,发起对所述一个或多个可选依赖项的检索,以及响应于接收到所述一个或多个必需依赖项中的所有必需依赖项,并且在可选依赖项中的至少一个可选依赖项尚未被所述容器运行时接收到时,执行所述应用。在另一示例中,一种编码有指令的非暂时性计算机可读存储介质,所述指令当由计算设备的一个或多个处理器执行时,使得所述一个或多个处理器:接收执行应用的请求,确定是否在所述计算设备的存储器中分配了用于维护所述应用的可安装子封装的应用容器,以及响应于确定在所述计算设备的存储器中分配了所述应用容器,确定所述应用的一个或多个依赖项,其中,所述一个或多个依赖项包括一个或多个必需依赖项和一个或多个可选依赖项。所述指令还使得所述一个或多个处理器:发起对所述一个或多个必需依赖项的检索,发起对所述一个或多个可选依赖项的检索,以及响应于接收到所述一个或多个必需依赖项中的所有必需依赖项,并且当所述可选依赖项中的至少一个可选依赖项尚未被所述容器运行时接收到时,执行所述应用。在另一示例中,一种设备包括:用于接收执行应用的请求的装置;用于确定是否在计算设备的存储器中分配了用于维护应用的可安装子封装的应用容器的装置;以及用于响应于确定在计算设备的存储器中分配了应用容器,确定应用的一个或多个依赖项的装置,其中,一个或多个依赖项包括一个或多个必需依赖项和一个或多个可选依赖项。所述设备还包括用于发起对所述一个或多个必需依赖项和所述一个或多个可选依赖项的检索的装置,以及用于响应于接收到所述一个或多个必需依赖项中的所有必需依赖项并且在所述可选依赖项中的至少一个可选依赖项尚未被所述容器运行时接收到时执行所述应用的装置。一个或多个示例的细节在附图和下面的描述中阐述。本公开的其它特征、目的和优点将从说明书和附图以及从权利要求中变得显而易见。附图说明图1是示出根据本公开的技术的具有动态加载应用依赖项的应用容器的示例计算设备的概念图。图2是示出根据本公开的一个或多个方面的计算设备的进一步细节的框图。图3是示出根据本公开的技术的具有用于动态加载应用依赖项的应用容器的计算设备的示例操作的流程图。具体实施方式图1是示出根据本公开的技术的具有动态加载应用依赖项的应用容器102A-102C(“应用容器102”)的示例计算设备100的概念图。计算设备100的示例可以包括但不限于便携式或移动设备,例如移动电话(包括智能手机)、笔记本计算机、平板计算机、例如智能手表或计算机化眼镜等可穿戴计算设备、智能电视平台、例如车辆音响主机等车辆计算系统、相机、个人数字助理(PDA)等。在一些示例中,计算设备100可以包括诸如台式计算机、服务器、大型机等的固定计算设备。如图1所示,计算设备100包括应用容器102、系统运行时126、操作系统136和硬件组件138。计算设备100可以经由网络140和通信链路148A-148B与一个或多个其它远程计算设备142A-142C(“远程计算设备142”)通信。如图1所示,网络140表示任何公共或专用通信网络,例如蜂窝、Wi-Fi和/或用于在计算设备之间传输数据的其它类型的网络。计算设备100和远程计算设备142可以使用任何合适的通信技术跨网络140发送和接收数据。例如,计算设备100可以使用通信链路148A可操作地耦合到网络140。远程计算设备142A可以通过通信链路148B可操作地耦合到网络140。网络140可以包括网络集线器、网络交换机、网络路由器等,它们可操作地相互耦合,从而提供计算设备100和远程计算设备142之间的信息交换。在一些示例中,通信链路138A-138B可以是以太网、ATM或其它网络连接。这种连接可以是无线和/或有线连接。硬件组件138可以包括但不限于计算机处理器、通信单元(例如调制解调器、网络接口控制器等)、输入组件、输出组件、存在敏本文档来自技高网...

【技术保护点】
1.一种方法,包括:由在计算设备处执行的监管器组件接收执行应用的请求;由所述监管器组件确定是否在所述计算设备的存储器中分配了用于维护所述应用的可安装子封装的应用容器;响应于确定在所述计算设备的所述存储器中分配了所述应用容器,由所述应用容器的容器运行时确定所述应用的一个或多个依赖项,其中,所述一个或多个依赖项包括一个或多个必需依赖项和一个或多个可选依赖项;由所述容器运行时发起对所述一个或多个必需依赖项的检索;由所述容器运行时发起对所述一个或多个可选依赖项的检索;以及响应于接收到所述一个或多个必需依赖项中的所有必需依赖项,并且当至少一个可选依赖项尚未被所述容器运行时接收到时,由所述计算设备执行所述应用。

【技术特征摘要】
【国外来华专利技术】2016.01.15 US 62/279,5711.一种方法,包括:由在计算设备处执行的监管器组件接收执行应用的请求;由所述监管器组件确定是否在所述计算设备的存储器中分配了用于维护所述应用的可安装子封装的应用容器;响应于确定在所述计算设备的所述存储器中分配了所述应用容器,由所述应用容器的容器运行时确定所述应用的一个或多个依赖项,其中,所述一个或多个依赖项包括一个或多个必需依赖项和一个或多个可选依赖项;由所述容器运行时发起对所述一个或多个必需依赖项的检索;由所述容器运行时发起对所述一个或多个可选依赖项的检索;以及响应于接收到所述一个或多个必需依赖项中的所有必需依赖项,并且当至少一个可选依赖项尚未被所述容器运行时接收到时,由所述计算设备执行所述应用。2.根据权利要求1所述的方法,其中,执行所述应用包括:由所述计算设备输出所述应用的图形用户界面以供显示,所述图形用户界面包括所述容器运行时尚未接收到的所述一个或多个可选依赖项中的所述至少一个可选依赖项的占位符图形元素;以及响应于接收到所述一个或多个可选依赖项中的所述至少一个可选依赖项,由所述计算设备输出与所述至少一个可选依赖项相关联的信息代替所述占位符元素以供显示。3.根据权利要求1和2的任意组合所述的方法,进一步包括:由所述计算设备并基于包括在所述一个或多个可选依赖项中的数据来确定被配置为使用包括在所述一个或多个可选依赖项中的所述数据的所述应用的一个或多个可安装子封装;以及由所述应用容器预取被配置为使用所述数据的所述应用的所述一个或多个可安装子封装中的至少一个。4.根据权利要求1-3的任意组合所述的方法,其中,确定所述应用的所述一个或多个依赖项包括从远程服务器检索从对所述应用的启发式分析导出的依赖项信息。5.根据权利要求1-4的任意组合所述的方法,其中,确定所述应用的所述一个或多个依赖项包括由所述容器运行时解析所述应用的元数据。6.根据权利要求1-5的任意组合所述的方法,其中,所述容器运行时从第一数据源检索所述一个或多个必需依赖项,并且从与所述第一数据源不同的第二数据源检索所述一个或多个可选依赖项。7.根据权利要求1-6的任意组合所述的方法,其中,所述一个或多个必需依赖项包括所述应用的所述可安装子封装集合或位置数据中的一个或多个,并且其中,所述一个或多个可选依赖项包括应用数据、图像数据、用户数据、位置数据或第三方数据中的一个或多个。8.根据权利要求1-...

【专利技术属性】
技术研发人员:芬克斯·柯克帕特里克瓦查斯帕蒂·瓦拉达拉扬苏布拉马尼亚姆·加纳帕蒂帕特里克·鲍曼杰斯·埃文斯
申请(专利权)人:谷歌有限责任公司
类型:发明
国别省市:美国,US

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

1