CN116249962A - 用于车载设备应用起动的池管理 - Google Patents
用于车载设备应用起动的池管理 Download PDFInfo
- Publication number
- CN116249962A CN116249962A CN202180061490.4A CN202180061490A CN116249962A CN 116249962 A CN116249962 A CN 116249962A CN 202180061490 A CN202180061490 A CN 202180061490A CN 116249962 A CN116249962 A CN 116249962A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- application
- computer
- base
- base virtual
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5011—Pool
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Electric Propulsion And Braking For Vehicles (AREA)
Abstract
一种在应用起动之前预池化虚拟机组件的方法。该方法包括由虚拟机池管理器读取虚拟机池清单(310)。该方法还包括将多个基础虚拟机启动到虚拟机池中,并且基于由虚拟机池清单提供的初始数目(320)。该方法进一步包括基于虚拟机池清单中的虚拟机资源限定来将初始资源分派给基础虚拟机的一部分(330)。该方法包括将核心程序包加载到基础虚拟机的该部分中(340)。
Description
背景技术
本公开涉及车载设备中的应用起动速度,并且更具体地,涉及通过使用高效的池管理技术划分应用启动过程来提高应用起动速度。
物联网(IoT)技术通过提供向车载设备(例如,导航系统)中添加附加应用的能力来实现功能可扩展性。此外,车辆中的应用开发正在扩展,以允许应用控制车辆内的系统功能(例如,仪表板相机、空调、车辆信息管理)。这些应用被开发为车载设备的核心功能性的组成部分,从而实现可作为可替换应用安装在车载设备内的系统功能。
发明内容
本公开的各种实施例针对在应用起动之前预池化虚拟机组件的计算机实现的方法。该计算机实现的方法包括由虚拟机池管理器读取虚拟机池清单。虚拟机池清单包括要启动的虚拟机的初始数目。虚拟机池清单还可包括要向多少虚拟机分派资源、基于虚拟机资源限定要分派的资源数目、没有资源分派的虚拟机的数目、默认环境以及指示在给定时间可执行应用的最大数目的参数。该计算机实现的方法还包括将多个基础虚拟机启动到虚拟机池中,并且基于由虚拟机池清单提供的初始数目。基础虚拟机缺少初始应用分配。该计算机实现的方法进一步包括基于虚拟机池清单中的虚拟机资源限定将初始资源分派给基础虚拟机的一部分。该计算机实现的方法包括将核心程序包加载到基础虚拟机的该部分中。
本公开的其他实施例包括在应用起动前预池化虚拟机组件的计算机程序产品,其可包括计算机可读存储介质,该计算机可读存储介质具有与其一起体现的程序指令,该程序指令可由处理器执行,以使处理器执行一种方法。该方法包括由虚拟机池管理器读取虚拟机池清单。虚拟机池清单包括要启动的虚拟机的初始数目。虚拟机池清单还可包括要向多少虚拟机分派资源、基于虚拟机资源限定要分派的资源的数目、没有资源分派的虚拟机的数目、默认环境以及指示在给定时间可执行应用的最大数目的参数。该方法还包括将多个基础虚拟机启动到虚拟机池中,并且基于由虚拟机池清单提供的初始数目。基础虚拟机缺少初始应用分配。该方法进一步包括基于虚拟机池清单中的虚拟机资源限定将初始资源分派给基础虚拟机的一部分。该方法包括将核心程序包加载到基础虚拟机的该部分中。
另外的实施例针对一种虚拟机池管理系统,用于在应用起动前预池化虚拟机组件并被配置为执行上述方法。本发明内容不旨在说明本公开的每个实现和/或每个实施例的每个方面。
附图说明
参考以下描述、所附权利要求和附图,将更好地理解本公开的实施例的这些和其他特征、方面和优点,在附图中:
图1是图示根据本公开的实施例的车辆中的车载设备的框图。
图2是图示根据本公开的实施例的虚拟机池管理系统的框图。
图3是图示根据本公开的实施例的在应用起动前预池化虚拟机组件的流程图。
图4是图示根据本公开的实施例的可用于实现本文所描述的方法、工具和模块中的一种或多种以及任何相关功能的示例计算机系统的高级框图。
图5描绘了根据本公开的实施例的云计算环境。
图6描绘了根据本公开的实施例的抽象模型层。
虽然本公开可适用于各种修改和替代形式,但是其细节已在附图中以示例方式示出,并且将进行详细描述。然而,应理解,其意图不是限制所描述的特定实施例。相反,其意图是覆盖落入本公开范围内的所有修改、等同物和替代物。在附图中,相同的附图标记用于表示相同的部件。
具体实施方式
本公开涉及车载设备中的应用起动速度,并且更具体地,涉及通过使用高效的池管理技术划分应用启动过程来提高应用起动速度。虽然本公开不一定限于这类应用,但是通过使用该上下文论述各种示例,可理解本公开的各个方面。
物联网(IoT)技术通过提供向车辆的车载设备(例如,导航系统)中添加附加应用的能力来实现功能可扩展性。此外,车辆中的应用开发正在扩展,以允许应用控制车辆内的系统功能(例如,仪表板相机、空调、车辆信息管理)。这些应用被开发为车载设备的核心功能性的组成部分,从而实现可作为可替换应用安装在车载设备内的系统功能。
用于车载应用的通常起动程序包括首先初始化用以操作应用的应用平台或核心程序。初始化过程包括从存储设备读取应用、生成过程、起动应用的核心程序以及分派应用所需的资源。当控制转移到应用逻辑时,应用被起动。
然而,由于车载设备具有有限的资源(例如,存储器、存储设备、处理器),对应用起动的限制仍然存在。因此,车载应用可具有资源上限限制。当前加速应用起动的技术包括诸如休眠等技术。在休眠状态下,操作系统可在断电之前将应用的运行状态复制到存储器中。因此,操作系统可通过在供电时恢复运行状态的副本来重启应用。然而,在车辆中,电源中断由附件关闭命令触发,这可能不会向操作系统提供创建可能正在执行的所有应用的运行状态的副本的机会。此外,与传统计算设备相反,车载设备的不同类型的断电之间没有区别。例如,笔记本电脑可区分断电命令。与当笔记本合上时的断电命令相反,按下电源按钮的断电命令可引起与笔记本不同的响应。区分不同类型的断电可使这类设备上的操作系统在设备将要睡眠而不是关机时能够使得当前正在执行的应用休眠。例如,由于车载设备无法区分睡眠型断电事件和关机断电事件,因此例如休眠的技术不适用于车载设备。
其他技术,诸如硬件性能改进和使用提前编译(AOT)的程序运行速度,也试图加速应用起动。然而,这些技术可招致附加的开销成本,并且仅仅对车载应用的整体起动速度提供有限的改进。
本公开的实施例可通过在应用起动之前使用虚拟机池管理系统来预池化虚拟机组件来克服上述和其他问题。此外,针对应用执行资源分派和应用逻辑转移。因此,它们允许应用池管理系统加速车载设备中应用的起动时间。虚拟机池管理系统包括被配置为管理和启动车载设备所需的虚拟机的虚拟机池管理器。虚拟机池管理器还被配置为基于虚拟机池清单将初始资源分派给虚拟机。虚拟机池管理系统还包括被配置为将核心程序包安装和加载到分派有资源的虚拟机中的应用包管理器。这些虚拟机可留在虚拟机池中并处于就绪状态,直到由车载设备请求它们以执行应用。
在一些实施例中,虚拟机池管理系统可启动未接收资源分派的附加虚拟机。虚拟机池管理系统可将这些虚拟机置于等待配置中,直到需要它们的时候。以这种方式,当资源变得可用时,虚拟机池管理器可将资源分派给处于等待配置中的虚拟机,并且将这些虚拟机置于就绪配置中。
在一些实施例中,虚拟机池管理器基于资源分配模式将初始资源分派给虚拟机。资源分配模式可指示车载设备在操作期间具有的通常模式。例如,车载设备可在起动时立即执行五个应用,然后在预定时间之后执行另外六个应用。资源分配模式可模拟车载设备的需求,从而预测其需求。
本公开的实施例包括被配置为管理在车载设备中执行的应用的生命周期的应用生命周期管理器。此外,应用生命周期管理器可确定将应用分配给哪些虚拟机。这可基于加载到虚拟机上的初始资源和核心编程。例如,如果为虚拟机分派了足够数量的资源以允许所请求的应用的操作和执行,则应用生命周期管理器可选择该虚拟机并为其分配该特定应用。否则,应用生命周期管理器可请求虚拟机池管理器启动附加的虚拟机或重新分派合适的资源。
现在参考图1,示出了具有嵌入式车载设备105的车辆100的高级框图。此外,车辆100包括传感器160和相机170。车载设备105包括控制单元110、存储单元120、通信单元130、输入单元140和输出单元150。输入单元140通信地连接至传感器160和相机170。
车载设备105是被配置为接收和传输与车辆100相关的信息的车辆100的组件。此外,车载设备105可操作车辆系统功能,诸如驾驶模式、巡航控制、相机、传感器、前灯等。车载设备105还可操作各种车辆控件。这些车辆控件包括例如导航控件、加热、通风和空调(HVAC)控件以及音频/视频(A/V)娱乐控件。
控制单元110是被配置为使用一个或多个中央处理单元(CPU)或多核CPU的车载设备105的组件,并且包括只读存储器(ROM)、随机存取存储器(RAM)、输入/输出接口、计时器等。控制单元110是通过执行存储在嵌入式ROM中的程序来控制各个构成单元的操作的确定单元,并且执行下面描述的虚拟机池管理系统200。
存储单元120是被配置为存储关于车辆100和车载设备105的信息的车载设备的组件。在一些实施例中,存储单元120是非易失性存储器(例如,闪存、电可擦除可编程只读存储器(EEPROM))。存储单元120可包括一个或多个存储器。存储单元120中的存储器中的每一个例如是半导体存储器、磁存储器、固态存储器或光存储器。例如,每个存储器用作主存储设备、辅助存储设备或高速缓冲存储器。存储单元120可存储用于车载设备105的操作的任何信息。例如,存储单元120可存储可由车载设备105执行的应用。
通信单元130是被配置为与服务器进行数据通信的车载设备105的组件。通信设备130具有一个或多个通信模块。通信模块包括例如与诸如第四代(4G)、第五代(5G)、蓝牙、Wi-Fi、全球移动系统(GSM)、码分多址(CDMA)、长期演进(LTE)、红外(IR)等移动通信标准兼容的模块。此外,通信单元可具有通信设备,诸如数据通信模块(DCM)。通信单元130将车载设备105连接至网络以与服务器通信。在一些实施例中,通信单元130包括作为全球定位系统(GPS)接收模块的通信模块,其中车载设备105通过通信单元130接收GPS信号。
输入单元140是作为从车载设备105的外部输入信号的接口的车载设备105的组件。输入单元140可从传感器160或相机170接收信息,并且控制单元110可从传感器160和相机170获取信息。
输出单元150是被配置为输出指示车辆100能够实现的操作功能性的信号的车载设备的组件。在一些实施例中,输出单元150是连接至局域网(LAN)的通信单元130,或者可为与输入单元140结合的通信单元130。
请注意,图1旨在描绘示例性车载设备105的主要代表性组件。然而,在一些实施例中,单独的组件可具有比图1所示的更大或更小的复杂度,可存在不同于或除了图1所示的组件之外的组件,并且这些组件的数目、类型和配置可变化。
图2为图示根据本公开的实施例的用于在应用起动之前预池化虚拟机组件的虚拟机池管理系统200的框图。虚拟机池管理系统200包括虚拟机池管理器210、虚拟机池清单220、虚拟机池230、应用生命周期管理器240、应用250-1、250-2、250-N(统称为“应用250”),其中N是表示任何数目的可能的应用250的可变整数,以及应用包管理器260。虚拟机池包括基础虚拟机233-1、233-2、233-N(统称为“基础虚拟机233”),其中N是表示任何数目的可能的基础虚拟机233的可变整数,以及资源235-1、235-2、235-N(统称为“资源235”),其中N是表示任何数目的可能的资源235的可变整数。应用生命周期管理器240包括应用逻辑注入管理器244和应用资源分配器248。应用250包括资源信息251-1、251-2、251-N(统称为“资源信息251”),其中N是表示任意数目的可能的资源信息251的可变整数。
虚拟机池管理器210是被配置为管理和启动虚拟机的虚拟机池管理系统200的组件。虚拟机池管理器210负责虚拟机的资源管理。它可维护哪些指定的应用250在哪些基础虚拟机233上运行的列表。例如,该列表可具有指定导航软件在导航特定虚拟机上运行的条目,以及指定非用户界面(UI)应用在非UI特定虚拟机上运行的另一条目。
虚拟机池管理器210可运行一系列虚拟机管理实用程序。例如,这些实用程序包括创建、销毁、使睡眠和唤醒虚拟机的功能。这些实用程序还可维护将应用与虚拟机相匹配的列表。
虚拟机池清单220是被配置为提供初始虚拟机建立要求的虚拟机池管理系统200的组件。虚拟机池清单220可包括要置于虚拟机池230中的基础虚拟机233的初始数目。例如,初始数目可指示在起动时需要七个基础虚拟机233。另外,虚拟机池清单220可包括将被分派有资源235的基础虚拟机233的数目。
在一些实施例中,虚拟机池清单220指示基于资源限定的资源235的分派。资源限定基于加载到虚拟机233的应用的类型来限定所需资源的类型。例如,资源限定可指示显示缓冲区所需的资源。显示缓冲区可指示应用需要使用UI。可能需要UI的应用包括例如导航、无线电、系统设置、速度计等。另一个资源限定可指示未使用显示缓冲器,这可指示特定应用需要更少的资源。这些类型的应用可以是车载设备105可在车辆100的操作期间使用的背景相关的应用。
在一些实施例中,虚拟机池清单220包括默认环境资源分配。当没有为特定虚拟机限定资源限定时,默认环境资源分配可包括资源的默认分派。默认资源分配可指示要分派给默认基础虚拟机233的内存量、存储量和CPU使用量。
在一些实施例中,虚拟机清单220包括指示车载设备105在任何给定时间可运行的应用的阈值数目的参数。阈值数目可基于车载设备105可用的且可由虚拟机池管理系统200管理的资源。
虚拟机池230是被配置为存储基础虚拟机233的虚拟机池管理系统200的组件。虚拟机池230可以是能够存储软件的任何存储器。在一些实施例中,虚拟机池230存储可由虚拟机池管理器210配置的单个虚拟机。虚拟机池230可存储可由虚拟机池管理器210配置的任何数目的不同基础虚拟机233。
基础虚拟机233是被配置为模拟设备(例如,计算机)的性能的虚拟机池管理系统200的组件。可以从虚拟机池230中检索基础虚拟机233。基础虚拟机233包括操作基础虚拟机233所需的资源235。例如,资源包括基础虚拟机233所需的内存量、存储量和CPU使用量。此外,基础虚拟机233还可包括核心程序包,一旦基础虚拟机233被启动到虚拟机池230上,核心程序包就被加载到基础虚拟机233上。核心程序包可提供支持和执行应用250以及包括在基础虚拟机233中的各种应用组件所需的基础操作系统。
在一些实施例中,基础虚拟机233包括与服务器相对应的客户端。客户端可经由基础虚拟机233与服务器通信,以根据包括在虚拟机池清单220中的各种配置限定来创建、克隆或以其他方式访问虚拟机实例。
应用生命周期管理器240是被配置为管理应用250的生命周期的虚拟机池管理系统200的组件。应用生命周期管理器240可请求在其上加载应用的基础虚拟机233。另外,应用生命周期管理器240可确定按照应用被加载的顺序加载哪些应用。在一些实施例中,应用生命周期管理器240请求将附加的基础虚拟机233添加到虚拟机池230。例如,多个应用250可以处于操作中,并且为了避免操作的减慢,应用生命周期管理器240可请求处于等待模式的基础虚拟机233被分派资源并加载核心程序包。附加的基础虚拟机233也可在虚拟机池230内启动,并且被置于等待模式配置中。这些基础虚拟机233可能还未分配资源或程序逻辑。
应用逻辑注入管理器244是被配置为将唯一应用逻辑加载到基础虚拟机233上的应用生命周期管理器240的组件。应用逻辑注入管理器244可标识要被加载到基础虚拟机233上的应用250,并且加载应用特定的信息以允许应用250的执行。例如,可加载应用类,并且可将注入点附接到基础虚拟机233中的接收器。
应用资源分配器248是被配置为将应用250所需的资源分派到虚拟机233上的应用生命周期管理器240的组件。应用资源分配器248可将分派给基础虚拟机233的初始资源与正被加载到虚拟机233上的应用250的资源信息251进行比较。如果资源235不同,则应用资源分配器248可将资源重新分派给虚拟机233。例如,基础虚拟机233可包括50兆字节的存储,并且应用250被加载到基础虚拟机233上需要65兆字节的存储,则应用资源分配器248可将至少65兆字节的存储重新分派给基础虚拟机250,以允许应用被加载和执行。
在一些实施例中,如果初始资源基于应用250的资源信息251充分地提供了足够的资源,则应用资源分配器248不重新分派任何资源。在一些实施例中,如果初始资源基于应用250的资源信息251充分地提供了足够的资源,则应用资源分配器248评估资源并解除分派任何不必要的资源。例如,如果初始资源包括200千字节的内存,而应用250只需要100千字节的内存,则应用资源分配器248可从虚拟机233解除分派最多100千字节的内存。
应用250是能够由车载设备105执行的虚拟机池管理系统200的软件。这些应用包括诸如远程信息服务、道路信息、交通信息、天气信息、车队管理、健康检查、紧急援助、音乐/视频、保险、新闻和信息娱乐等特征。每个应用250还包括与应用250相关的资源信息251。资源信息251可包括执行和操作特定应用250所需的资源数目。例如,提供天气信息的应用250可能需要资源信息251可存储的一定量的内存、存储、CPU使用。
应用包管理器260是被配置为安装和更新由虚拟机池管理系统200提供的应用250的虚拟机池管理系统200的组件。应用包管理器260可自动化从车载设备105安装、升级、配置和移除应用250的过程。应用包管理器260可处理作为存档文件中的软件和数据的分发的包。包可包括元数据,诸如应用250的名称、其用途的描述、版本号、供应商、校验和应用250正确运行所必需的依赖性列表(例如,资源信息251)。安装后,元数据可存储在本地软件包数据库中。应用包管理器260可维护应用250依赖性和版本信息的数据库,以防止软件错配和遗漏先决条件。
请注意,图2旨在描绘示例性虚拟机池管理系统200的主要代表性组件。然而,在一些实施例中,单个组件可具有比图2所示更大或更小的复杂度,可存在不同于或除了图2所示的组件之外的组件,并且这些组件的数目、类型和配置可变化。
图3是图示根据本公开的实施例的在应用起动之前预池化虚拟机组件的过程300的流程图。过程300开始于虚拟机池管理器210在虚拟机池管理系统200启动时读取虚拟机池清单220。这在步骤310中图示。虚拟机池管理器210可读取初始虚拟机233要求。这些要求可包括,例如,要置于虚拟机池230中的基础虚拟机233的初始数目、基于资源限定的每个虚拟机233的资源分派235、默认环境资源分配、以及指示车载设备105在任何给定时间可运行的应用的最大数目的参数。
虚拟机池管理器210将基础虚拟机233启动到虚拟机池230中,如虚拟机池清单220中所指示的。这在步骤320处被图示。虚拟机池230可存储可由虚拟机池管理器210配置的任何数目的不同基础虚拟机233。在启动时,基础虚拟机233缺少资源分派,并且没有加载核心程序包。在一些实施例中,基础虚拟机233根据由虚拟机池清单220所指示的时间线来启动。例如,虚拟机池清单220可指示在启动时启动十二个基础虚拟机233,然后在预定时间后启动另外五个基础虚拟机233。基础虚拟机233的这一系列预定启动可出现与虚拟机池清单220被配置为进行的次数一样多的次数。
虚拟机池管理器210将初始资源235分派给在步骤320处启动的基础虚拟机233的一部分。这在步骤330处被图示。分派有资源235的基础虚拟机233可由虚拟机池清单220预先确定。也被分派了资源的基础虚拟机233的数目也可以是基于车辆100在起动时所需的应用250的数目的优化数目。这些应用包括例如远程信息服务、道路信息、交通信息、天气信息、车队管理、健康检查、紧急援助、音乐/视频、保险、新闻和信息娱乐。基础虚拟机233的剩余部分可被置于等待配置中,直到需要它们的时候。
通过将基础虚拟机233置于等待配置,当需要启动应用250时,虚拟机池管理系统200无需花费附加的时间来启动虚拟机233。附加地,并非分派有资源235的基础虚拟机233中的所有均可不被立即分配应用,而是可在车载设备105的操作期间充当缓冲器。随着基础虚拟机233被应用250请求和使用,更多的虚拟机可被启动到虚拟机池230中,以维持缓冲并加速应用250的起动过程。
应用包管理器260将核心程序包加载到分派有资源235的基础虚拟机233的部分。这在步骤340处被图示。核心程序包可包括没有应用逻辑的Java虚拟机环境。其他核心程序包包括例如虚拟机基本代码、类库(例如Java)、服务应用编程接口(API)和UI生命周期管理软件。核心程序包可包括接收器,该接收器可表示应用逻辑加载到其中的外壳。一旦虚拟机233被分派了资源235并加载了核心程序包,它就被置于就绪配置中,并且可被分配和加载应用。
应用生命周期管理器240向应用250分配处于就绪配置的基础虚拟机233。这在步骤350处被图示。在一些实施例中,应用生命周期管理器240确定按照应用被加载的顺序加载哪些应用。应用生命周期管理器240选择和分配应用250的顺序可基于车载设备105所需的应用250的紧急程度。例如,在车辆100起动时提供系统诊断的应用250可在向乘客提供信息娱乐的应用250之前被分配虚拟机233。
在一些实施例中,应用生命周期管理器250基于与正在启动的应用250相关的应用类型,将应用分配给处于就绪配置的基础虚拟机233。例如,可首先启动不需要UI的应用250,因为应用250的资源信息251与分派给基础虚拟机233的初始资源235的资源信息相匹配。因此,不需要将附加的资源235重新分派给虚拟机233,并且应用250可比可能需要附加资源的应用250启动得更快。
应用逻辑注入管理器244启动基础虚拟机233中的应用250。这在步骤360处被图示。例如,应用逻辑包括特定于应用的类、方法和附加代码。应用逻辑注入管理器244可将与应用250相关的应用逻辑加载到虚拟机233中。此外,注入点可被附接到包括在虚拟机233中的接收器,该接收器加载有核心程序包。
在一些实施例中,应用资源分配器248分析应用250的资源信息251和分配给虚拟机233的初始资源235。基于该分析,应用资源分配器可将资源235重新分配给虚拟机233,以允许应用成功启动。例如,如果初始资源235包括45千字节的可用内存,并且启动应用250需要100千字节的内存,则应用资源分配器248可将附加的内存重新分派给虚拟机233,使得应用250可正确地启动。
在一些实施例中,应用资源分配器248分析应用250的资源信息251和分配给虚拟机233的初始资源235。基于该分析,应用资源分配器可将不需要的资源235重新分配回资源池。一旦应用250加载了应用逻辑并附接了注入点,应用生命周期管理器240就执行应用250。这在步骤370处被图示。应用生命周期管理器240可在操作和执行期间监控应用250,并且确定是否以及何时终止应用250。
现在参考图4,所示为根据本公开的实施例的示例计算机系统400(例如,虚拟机池管理系统100)的高级框图,该示例计算机系统可用于实施本文所描述的方法、工具和模块中的一个或多个以及任何相关功能(例如,使用计算机的一个或多个处理器电路或计算机处理器)。在一些实施例中,计算机系统400的主要组件可包括一个或多个处理器402、存储器404、终端接口412、I/O(输入/输出)设备接口414、存储接口416和网络接口418,所有这些均可直接或间接地通信耦合,用于经由存储器总线403、I/O总线408和I/O总线接口410进行组件间通信。
计算机系统400可包括一个或多个通用可编程中央处理单元(CPU)402-1、402-2、402-3和402-N,本文统称为处理器402。在一些实施例中,计算机系统400可包括相对较大的系统中通常的多个处理器;然而,在其他实施例中,计算机系统400可备选地是单CPU系统。每个处理器401可执行存储在存储器404中的指令,并且可包括一级或多级板载高速缓存。
存储器404可包括易失性存储器形式的计算机系统可读介质,诸如随机存取存储器(RAM)422或高速缓冲存储器424。计算机系统400可进一步包括其他可移动/不可移动、易失性/非易失性计算机系统存储介质。仅作为示例,存储系统426可被提供用于从诸如“硬盘驱动器”的不可移动、非易失性磁介质读取和向其写入。尽管未示出,但是可提供用于从可移动、非易失性磁盘(例如“软盘”)读取和向其写入的磁盘驱动器,或者用于从可移动、非易失性光盘(诸如CD-ROM、DVD-ROM或其他光学介质)读取或向其写入的光盘驱动器。此外,存储器404可包括闪存,例如闪存棒驱动器或闪存驱动器。存储器设备可通过一个或多个数据介质接口连接至存储器总线403。存储器404可包括至少一个程序产品,该程序产品具有被配置为履行各种实施例的功能的一组(例如,至少一个)程序模块。
尽管存储器总线403在图4中被示为在处理器402、存储器404和I/O总线接口410之间提供直接通信路径的单个总线结构,但是在一些实施例中,存储器总线403可包括多个不同的总线或通信路径,它们可按各种形式中的任何一种来布置,诸如分层、星形或网状配置中的点对点链路、多个分层总线、并行和冗余路径或任何其他适当类型的配置。此外,虽然I/O总线接口410和I/O总线408被示为单个相应的单元,但是在一些实施例中,计算机系统400可包括多个I/O总线接口单元、多个I/O总线或两者。此外,虽然示出了多个I/O接口单元,其将I/O总线408与运行到各种I/O设备的各种通信路径分开,但是在其他实施例中,I/O设备中的一些或所有可直接连接至一个或多个系统I/O总线。
在一些实施例中,计算机系统400可为多用户大型计算机系统、单用户系统或服务器计算机或类似设备,其具有很少或没有直接用户界面,但是从其他计算机系统(客户端)接收请求。此外,在一些实施例中,计算机系统400可被实现为台式计算机、便携式计算机、膝上型或笔记本计算机、平板计算机、袖珍计算机、电话、智能电话、网络交换机或路由器或任何其他合适类型的电子设备。
请注意,图4旨在描绘示例性计算机系统400的主要代表性组件。然而,在一些实施例中,单个组件可具有比图4所示更大或更小的复杂度,可存在不同于或除了图4所示的组件之外的组件,并且这些组件的数目、类型和配置可变化。
一个或多个程序/实用程序428可存储在存储器404中,每个程序/实用程序具有至少一组程序模块430(例如,虚拟机池管理系统100)。程序/实用程序428可包括管理程序(也称为虚拟机监视器)、一个或多个操作系统、一个或多个应用、其他程序模块和程序数据。操作系统、一个或多个应用、其他程序模块和程序数据或其某种组合中的每一个均可包括网络环境的实现。程序428和/或程序模块430一般执行各种实施例的功能或方法。
应理解,尽管本公开包括对云计算的详细描述,但是本文所述教导的实施方式不限于云计算环境。相反,本发明的实施例能够结合现在已知或以后开发的任何其他类型的计算环境来实施。
云计算是一种服务交付模型,用于实现对可配置计算资源(例如,网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机和服务)的共享池的方便、按需的网络访问,该可配置计算资源的共享池可通过最少的管理工作或与服务提供商的互动而快速供给和释放。这种云模型可包括至少五个特性、至少三个服务模型和至少四个部署模型。
特性如下:
按需自助服务:云消费者可根据需要自动单方面供给计算能力,诸如服务器时间和网络存储,而无需与服务提供商进行人工交互。
广泛的网络访问:可通过网络获得能力,并且通过标准机制访问,这些机制促进异构瘦客户端平台或胖客户端平台(例如,移动电话、笔记本电脑和PDA)的使用。
资源池化:池化提供商的计算资源以使用多租户模型为多个消费者提供服务,根据需求动态分配和重新分配不同的物理和虚拟资源。存在位置独立感,因为消费者一般无法控制或不知道所提供资源的确切位置,但是可在更高的抽象级别(例如,国家、州或数据中心)处指定位置。
快速灵活:可快速灵活地供给能力,在一些情况下可自动提供能力,以快速向外扩展,并且快速释放能力以快速向内扩展。对于消费者来说,可用于供给的功能常常看起来是无限的,并且可在任何时间购买任何数目。
测量服务:云系统通过利用适合于服务类型(例如,存储、处理、带宽和活动用户账户)的某种抽象级别的计量能力,自动控制和优化资源使用。可监视、控制和报告资源使用情况,从而为所用服务的提供者和消费者提供透明度。
服务模式如下:
软件即服务(SaaS):提供给消费者的能力是使用提供商在云基础设施上运行的应用。这些应用可通过诸如web浏览器(例如,基于web的电子邮件)的瘦客户端接口从各种客户端设备访问。消费者不管理或控制底层云基础架构,包括网络、服务器、操作系统、存储,甚至是单个应用能力,但是可能存在有限的特定于用户的应用配置设置除外。
平台即服务(PaaS):提供给消费者的能力是将消费者创建或获取的使用提供商支持的编程语言和工具创建的应用部署到云基础设施上。消费者不管理或控制底层云基础架构,包括网络、服务器、操作系统或存储,但是可控制已部署的应用以及可能的应用托管环境配置。
基础设施即服务(IaaS):提供给消费者的能力是供给处理、存储、网络和其他基本计算资源,其中消费者能够部署和运行任意软件,可包括操作系统和应用。消费者不管理或控制底层云基础架构,但是对操作系统、存储、部署的应用有控制权,并且可能对选定的网络组件(例如,主机防火墙)有有限的控制权。
部署模式如下:
私有云:云基础设施仅为组织运营。它可能由组织或第三方管理,也可存在于内部或外部。
社区云:云基础设施由多个组织共享,并且支持具有共同关注点(例如,任务、安全要求、政策和合规性考虑)的特定社区。它可由组织或第三方管理,也可存在于内部或外部。
公共云:云基础设施可供普通公众或大型行业团体使用,并且由销售云服务的组织拥有。
混合云:云基础设施由两个或多个云(私有云、社区云或公共云)组成,这些云仍然是唯一的实体,但是通过实现数据和应用的可移植性的标准化或专有技术绑定在一起(例如,用于云之间负载平衡的云爆发)。
云计算环境面向服务,关注无状态、低耦合、模块化和语义互操作性。云计算的核心是一个基础设施,包括一个由互连节点组成的网络。
现在参考图5,描绘了说明性云计算环境500。如图所示,云计算环境500包括一个或多个云计算节点510,云消费者使用的本地计算设备(例如个人数字助理(PDA)或蜂窝电话520-1、台式计算机520-2、膝上型计算机520-3和/或汽车计算机系统520-4)可与云计算节点510通信。节点510可彼此通信。它们可在一个或多个网络(例如如上所述的私有、社区、公共或混合云,或者它们的组合)中被物理地或虚拟地分组(未示出)。这允许云计算环境500提供基础设施、平台和/或软件作为云消费者不需要在本地计算设备上维护资源的服务。应理解,图5所示的计算设备520-1至520-4的类型仅旨在说明,并且计算节点510和云计算环境500可通过任何类型的网络和/或网络可寻址连接(例如,使用网络浏览器)与任何类型的计算机化设备通信。
现参考图6,示出了由云计算环境500(图5)提供的一组功能抽象层600。应预先理解,图6中所示的组件、层和功能仅是说明性的,并且本发明的实施例不限于此。如图所描绘,提供了以下层和对应的功能:
硬件和软件层610包括硬件和软件组件。硬件组件的示例包括大型机611;基于RISC(精简指令集计算机)架构的服务器612;服务器613;刀片服务器614;存储设备615;以及网络及联网组件616。在一些实施例中,软件组件包括网络应用服务器软件617和数据库软件618。
虚拟化层620提供抽象层,可从该抽象层提供虚拟实体的以下示例:虚拟服务器621;虚拟存储器622;虚拟网络623,包括虚拟专用网络;虚拟应用和操作系统624;以及虚拟客户端625。
在一个示例中,管理层630可提供下面描述的功能。资源供给631提供用于在云计算环境中执行任务的计算资源和其他资源的动态采购。计量和定价632提供在云计算环境内利用资源时的成本跟踪以及对这些资源的消耗的记账或开具发票。在一个示例中,这些资源可包括应用软件许可证。安全性为云消费者和任务提供身份验证,并且为数据和其他资源提供保护。用户门户633为消费者和系统管理员提供对云计算环境的访问。服务级别管理634提供云计算资源分派和管理,从而满足所需的服务级别。服务级别协议(SLA)规划和履行635提供对云计算资源的预先安排和采购,其中根据SLA预期对云计算资源的未来需求。
工作负载层640提供可利用云计算环境的功能性的示例。可从该层提供的工作负载和功能的示例包括映射和导航641;软件开发和生命周期管理642(例如,虚拟机池管理系统100);虚拟课堂教育交付643;数据分析处理644;交易处理645;以及精确群组分析646。
本发明可为任何可能的集成技术细节级别的系统、方法和/或计算机程序产品。计算机程序产品可包括其上具有用于使处理器履行本发明的各方面的计算机可读程序指令的计算机可读存储介质(或多个介质)。
计算机可读存储介质可为可保留和存储供指令执行设备使用的指令的有形设备。计算机可读存储介质可为例如但是不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述设备的任何合适的组合。计算机可读存储介质的更具体示例的非穷尽列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备,诸如穿孔卡或其上记录有指令的凹槽中的凸起结构,以及前述的任何合适的组合。如本文所使用的,计算机可读存储介质不应被解释为本身是瞬时信号,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤电缆的光脉冲)、或通过导线传输的电信号。
本文所描述的计算机可读程序指令可经由网络,例如互联网、局域网、广域网和/或无线网络,从计算机可读存储介质下载至相应的计算/处理设备,或者下载至外部计算机或外部存储设备。网络可包含铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口从网络接收计算机可读程序指令,并且转发该计算机可读程序指令以用于存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可为汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微码、固件指令、状态设置数据、集成电路配置数据,或者以一种或多种编程语言的任意组合编写的源代码或目标代码,这些编程语言包括面向对象的编程语言,诸如Smalltalk、C++等,以及程序编程语言,诸如“C”编程语言或类似编程语言。计算机可读程序指令可完全在用户计算机上执行,部分在用户计算机上执行,作为独立软件包,部分在用户计算机上执行,部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可通过任何类型的网络,包括局域网(LAN)或广域网(WAN)连接至用户的计算机,或者可连接至外部计算机(例如,通过使用互联网服务提供商的互联网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令来个性化电子电路,以便执行本发明的各方面。
本文参考根据本发明的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图来描述本发明的各个方面。应理解,流程图和/或框图的每个框以及流程图和/或框图中的框的组合可由计算机可读程序指令来实现。
可将这些计算机可读程序指令提供给计算机或其他可编程数据处理装置的处理器,以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现一个或多个流程图和/或框图框中规定的功能/动作的装备。这些计算机可读程序指令也可存储在计算机可读存储介质中,该计算机可读存储介质可指示计算机、可编程数据处理装置和/或其他设备以特定方式运行,使得其中存储有指令的计算机可读存储介质包含制品,该制品包括实现一个或多个流程图和/或框图框中指定的功能/动作的各方面的指令。
计算机可读程序指令也可加载到计算机、其他可编程数据处理装置或其他设备上,以促使一系列操作步骤在计算机、其他可编程装置或其他设备上执行,从而产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现一个或多个流程图和/或框图框中规定的功能/动作。
图中的流程图和框图图示了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实施的架构、功能和操作。在这点上,流程图或框图中的每个框可表示指令的模块、片段或部分,其包含用于实施指定逻辑功能(一个或多个)的一个或多个可执行指令。在一些替代实施方式中,框中标注的功能可不按照图中标注的顺序发生。例如,连续示出的两个框实际上可作为一个步骤完成,以部分或全部时间重叠的方式并行地、基本上同时地执行,或者这些框有时可按相反的顺序执行,这取决于所涉及的功能性。还应注意,框图和/或流程图图示中的每个框以及框图和/或流程图图示中的框的组合可由基于专用硬件的系统来实施,该系统执行指定的功能或动作或者履行专用硬件和计算机指令的组合。
本文所使用的术语仅用于描述特定实施例的目的,而不是为了限制各种实施例。如本文所使用的,单数形式“一个”和“该”也旨在包括复数形式,除非上下文另有明确指示。还应理解,术语“包括”和/或“包含”在本说明书中使用时,指定所述特征、整数、步骤、操作、元件和/或组件的存在,但是不排除一个或多个其他特征、整数、步骤、操作、元件、组件和/或其组合的存在或添加。在各种实施例的示例实施例的先前详细描述中,参考附图(其中相同的数字表示相同的元件),其形成本文的一部分,并且其中通过说明的方式示出了可实践各种实施例的特定示例实施例。足够详细地描述了这些实施例,以使本领域技术人员能够实践这些实施例,但是可使用其他实施例,并且可在不脱离各种实施例的范围的情况下进行逻辑、机械、电气和其他改变。在前面的描述中,阐述了许多具体细节以提供对各种实施例的全面理解。但是各种实施例可在没有这些具体细节的情况下实施。在其他情况下,为了不模糊实施例,没有详细示出公知的电路、结构和技术。
当不同的附图标记包含后接不同字母(例如,100a、100b、100c)的共同数字或后接不同数字(例如,100-1、100-2或100.1、100.2)的标点符号时,仅使用不带字母或后续数字(例如,100)的附图标记可指作为整体的元件组、该组的任何子集或该组的示例样本。
此外,短语“……中的至少一个”在与项目列表一起使用时,意指可使用一个或多个所列项目的不同组合,并且可能仅需要列表中的每个项目中的一个。换句话说,“……中的至少一个”意指可使用列表中的项目和项目数目的任意组合,但是不是列表中的所有项目均是必需的。项目可为特定的对象、事物或类别。
例如,但是不限于,“项目A、项目B或项目C中的至少一个”可包括项目A、项目A和项目B或项目B。该示例还可包括项目A、项目B和项目C或项目B和项目C。当然,可存在这些项目的任何组合。在一些说明性示例中,“……中的至少一个”可为,例如但是不限于,项目A中的两个;B项中的一个;以及项目C中的十个;项目B中的四个和项目C中的七个;或者其他合适的组合。
本说明书中使用的词语“实施例”的不同实例不一定指同一实施例,但是它们可指同一实施例。本文所图示或描述的任何数据和数据结构仅仅是示例,并且在其他实施例中,可使用不同的数据量、数据类型、字段、字段的数目和类型、字段名称、行的数目和类型、记录、条目或数据的组织。此外,任何数据均可与逻辑相结合,使得可能不需要单独的数据结构。因此,前面的详细描述不是在限制意义上理解的。
本发明的各种实施例的描述仅为了说明的目的而提出,但是并非旨在穷尽或限制所公开的实施例。在不脱离所述实施例的范围和精神的情况下,许多修改和变化对于本领域普通技术人员来说是显而易见的。选择本文所使用的术语是为了最好地解释实施例的原理、对市场上发现的技术的实际应用或技术改进,或者使本领域的其他普通技术人员能够理解本文所公开的实施例。
尽管本发明已经按照具体实施例进行了描述,但是预计对其的更改和修改对于本领域技术人员而言将变得显而易见。因此,旨在将以下权利要求解释为涵盖属于本发明的真实精神和范围内的所有此类变更和修改。
Claims (20)
1.一种在车载应用程序起动之前预池化虚拟机组件的计算机实现的方法,所述计算机实现的方法包括:
由虚拟机池管理器读取虚拟机池清单,其中所述虚拟机池清单包括要启动的虚拟机的初始数目;
在启动应用之前,基于所述初始数目将多个基础虚拟机启动到虚拟机池中;
基于虚拟机资源限定来将初始资源分派给所述基础虚拟机的部分;以及
将核心程序包加载到所述基础虚拟机的所述部分中。
2.根据前述权利要求所述的计算机实现的方法,还包括:
基于与所述应用相关的应用类型,在应用生命周期管理器中将所述应用分配给来自所述基础虚拟机的所述部分的第一基础虚拟机;
在所述第一基础虚拟机中启动所述应用;以及
执行所述应用。
3.根据前述权利要求所述的计算机实现的方法,其中将所述应用分配给所述第一基础虚拟机还基于被分派给所述第一基础虚拟机的所述初始资源。
4.根据前述权利要求中任一项所述并具有权利要求2的特征的计算机实现的方法,其中启动所述应用包括:
加载与所述应用相关的应用逻辑,其中所述应用逻辑包括注入点;
将所述注入点附接到被包括在所述第一基础虚拟机中的接收器;以及
基于与所述应用相关的资源信息来向所述第一基础虚拟机重新分配资源。
5.根据前述权利要求中任一项所述的计算机实现的方法,其中除了所述基础虚拟机的所述部分之外的所述多个基础虚拟机被置于等待配置中。
6.根据前述权利要求中任一项所述的计算机实现的方法,其中分派所述初始资源基于资源分配模式。
7.根据前述权利要求中任一项所述的计算机实现的方法,其中所述核心程序包包括Java运行时环境。
8.根据前述权利要求中任一项所述的计算机实现的方法,其中所述应用是车载应用。
9.一种在应用起动之前预池化虚拟机组件的计算机程序产品,所述计算机程序产品包括:
一个或多个计算机可读存储介质,以及存储在所述一个或多个计算机可读存储介质上的程序指令,所述程序指令包括:
由虚拟机池管理器读取虚拟机池清单的程序指令,其中所述虚拟机池清单包括要启动的虚拟机的初始数目;
在启动应用之前基于所述初始数目来将多个基础虚拟机启动到虚拟机池中的程序指令;
基于虚拟机资源限定来将初始资源分派给所述基础虚拟机的部分的程序指令;以及
将核心程序包加载到所述基础虚拟机的所述部分中的程序指令。
10.根据权利要求9所述的计算机程序产品,还包括:
基于与所述应用相关的应用类型,在应用生命周期管理器中将所述应用分配给来自所述基础虚拟机的所述部分的第一基础虚拟机的程序指令;
在所述第一基础虚拟机中启动所述应用的程序指令;以及
执行所述应用的程序指令。
11.根据前述权利要求所述的计算机程序产品,其中将所述应用分配给所述第一基础虚拟机的所述程序指令还基于被分派给所述第一基础虚拟机的所述初始资源。
12.根据前述权利要求中任一项所述并具有权利要求10的特征的计算机程序产品,其中启动所述应用的所述程序指令包括:
加载与所述应用相关的应用逻辑的程序指令,其中所述应用逻辑包括注入点;
将所述注入点附接到被包括在所述基础虚拟机中的接收器的程序指令;以及
基于与所述应用相关的资源信息来向所述第一基础虚拟机重新分配资源的程序指令。
13.根据前述权利要求中任一项所述的计算机程序产品,其中除了所述基础虚拟机的所述部分之外的所述基础虚拟机被置于等待配置中。
14.根据前述权利要求中任一项所述的计算机程序产品,其中分派所述初始资源的所述程序指令基于资源分配模式。
15.根据六项前述权利要求中任一项所述的计算机程序产品,其中所述核心程序包包括Java运行时环境。
16.根据七项前述权利要求中任一项所述的计算机程序产品,其中所述应用是车载应用。
17.一种用于在应用起动之前预池化虚拟机组件的系统,所述系统包括:
存储器;
处理器;
其上存储有计算机可执行程序代码的存储器;
虚拟机池管理器,所述虚拟机池管理器被配置为将多个基础虚拟机启动到虚拟机池中,所述虚拟机池管理器还被配置为将初始资源分派给所述基础虚拟机并且将核心程序包加载到所述基础虚拟机上;
应用生命周期管理器,所述应用生命周期管理器被配置为将应用分配给所述基础虚拟机;以及
应用包管理器,所述应用包管理器被配置为安装和更新所述应用。
18.根据前述权利要求所述的系统,其中所述基础虚拟机的部分被置于等待配置中。
19.根据两项前述权利要求中任一项所述的系统,其中所述初始资源基于资源分配模式。
20.根据三项前述权利要求中任一项所述的系统,其中被分派给所述基础虚拟机的所述应用还基于被分派给所述基础虚拟机的所述初始资源。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/930,874 US11915024B2 (en) | 2020-07-16 | 2020-07-16 | Pool management for in-vehicle device application startup |
US16/930,874 | 2020-07-16 | ||
PCT/IB2021/056289 WO2022013735A1 (en) | 2020-07-16 | 2021-07-13 | Pool management for in-vehicle device application startup |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116249962A true CN116249962A (zh) | 2023-06-09 |
Family
ID=79292413
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180061490.4A Pending CN116249962A (zh) | 2020-07-16 | 2021-07-13 | 用于车载设备应用起动的池管理 |
Country Status (8)
Country | Link |
---|---|
US (1) | US11915024B2 (zh) |
JP (1) | JP2023535316A (zh) |
KR (1) | KR20230027144A (zh) |
CN (1) | CN116249962A (zh) |
AU (1) | AU2021308570B2 (zh) |
DE (1) | DE112021003803T5 (zh) |
GB (1) | GB2611989A (zh) |
WO (1) | WO2022013735A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11853100B2 (en) * | 2021-04-12 | 2023-12-26 | EMC IP Holding Company LLC | Automated delivery of cloud native application updates using one or more user-connection gateways |
CN114936043B (zh) * | 2022-05-20 | 2024-02-09 | 浪潮电子信息产业股份有限公司 | 一种池化异构资源启动方法、装置、设备及存储介质 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8671403B2 (en) * | 2006-05-22 | 2014-03-11 | Infosys Limited | Pre-creating virtual machines in a grid environment |
US20080201414A1 (en) * | 2007-02-15 | 2008-08-21 | Amir Husain Syed M | Transferring a Virtual Machine from a Remote Server Computer for Local Execution by a Client Computer |
US8639787B2 (en) | 2009-06-01 | 2014-01-28 | Oracle International Corporation | System and method for creating or reconfiguring a virtual server image for cloud deployment |
CA2674402C (en) * | 2009-07-31 | 2016-07-19 | Ibm Canada Limited - Ibm Canada Limitee | Optimizing on demand allocation of virtual machines using a stateless preallocation pool |
US9038063B2 (en) * | 2011-09-07 | 2015-05-19 | International Business Machines Corporation | Determining virtual machine image pattern distributions in a networked computing environment |
US9507613B2 (en) | 2012-03-30 | 2016-11-29 | Oracle International Corporation | Methods and apparatus for dynamically preloading classes |
US9507612B1 (en) * | 2012-08-31 | 2016-11-29 | United Services Automobile Association (Usaa) | Managing dedicated and floating pool of virtual machines based on demand |
US9600316B2 (en) | 2012-10-17 | 2017-03-21 | Microsoft Technology Licensing, Llc | Augmented allocation of virtual machines for application |
CN103488495A (zh) | 2013-08-13 | 2014-01-01 | 广东欧珀移动通信有限公司 | 一种通过动态调整开机预加载资源加速开机的方法 |
US20150324216A1 (en) | 2014-05-12 | 2015-11-12 | Netapp, Inc. | Self-repairing configuration service for virtual machine migration |
US20160048409A1 (en) | 2014-08-12 | 2016-02-18 | Peter Briel | System and method for automatic initiation and management of a guest operating system which enables a restriction of access to the host machine |
US9715402B2 (en) * | 2014-09-30 | 2017-07-25 | Amazon Technologies, Inc. | Dynamic code deployment and versioning |
US9537788B2 (en) * | 2014-12-05 | 2017-01-03 | Amazon Technologies, Inc. | Automatic determination of resource sizing |
US9898307B2 (en) | 2015-12-21 | 2018-02-20 | Intel Corporation | Starting application processors of a virtual machine |
US20180129524A1 (en) * | 2016-11-10 | 2018-05-10 | International Business Machines Corporation | Managing pre-allocated virtual machine instance pools |
US10445126B2 (en) | 2017-02-21 | 2019-10-15 | Red Hat, Inc. | Preloading enhanced application startup |
US11055135B2 (en) * | 2017-06-02 | 2021-07-06 | Seven Bridges Genomics, Inc. | Systems and methods for scheduling jobs from computational workflows |
US10489170B2 (en) | 2017-06-19 | 2019-11-26 | Salesforce.Com, Inc. | Application warmup engine |
US11190599B2 (en) * | 2018-06-27 | 2021-11-30 | Oracle International Corporation | Method and system for cloud service pre-provisioning |
US11175960B2 (en) * | 2018-12-05 | 2021-11-16 | Electronics And Telecommunications Research Institute | Worker-scheduling method in cloud-computing system and apparatus for the same |
-
2020
- 2020-07-16 US US16/930,874 patent/US11915024B2/en active Active
-
2021
- 2021-07-13 CN CN202180061490.4A patent/CN116249962A/zh active Pending
- 2021-07-13 WO PCT/IB2021/056289 patent/WO2022013735A1/en active Application Filing
- 2021-07-13 AU AU2021308570A patent/AU2021308570B2/en active Active
- 2021-07-13 DE DE112021003803.6T patent/DE112021003803T5/de active Pending
- 2021-07-13 GB GB2301762.7A patent/GB2611989A/en active Pending
- 2021-07-13 JP JP2023501645A patent/JP2023535316A/ja active Pending
- 2021-07-13 KR KR1020237000314A patent/KR20230027144A/ko unknown
Also Published As
Publication number | Publication date |
---|---|
US11915024B2 (en) | 2024-02-27 |
JP2023535316A (ja) | 2023-08-17 |
DE112021003803T5 (de) | 2023-05-17 |
US20220019453A1 (en) | 2022-01-20 |
KR20230027144A (ko) | 2023-02-27 |
AU2021308570A1 (en) | 2023-02-09 |
GB2611989A (en) | 2023-04-19 |
AU2021308570B2 (en) | 2024-05-02 |
WO2022013735A1 (en) | 2022-01-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11121915B2 (en) | FPGA-enabled compute instances | |
US11086661B2 (en) | Container chaining for automated process completion | |
US10324696B2 (en) | Dynamic container deployment with parallel conditional layers | |
CN111527474B (zh) | 软件功能的动态交付 | |
US20210034423A1 (en) | Container orchestration in decentralized network computing environments | |
US8930957B2 (en) | System, method and program product for cost-aware selection of stored virtual machine images for subsequent use | |
US8417578B1 (en) | Customizing component configurations for utility computing | |
CN101438266A (zh) | 按照离散的级引导操作系统 | |
CN103608773A (zh) | 用于多节点应用的部署系统 | |
AU2021308570B2 (en) | Pool management for in-vehicle device application startup | |
CN111984269A (zh) | 提供应用构建服务的方法及应用构建平台 | |
US10728169B1 (en) | Instance upgrade migration | |
US20180060091A1 (en) | Effective management of virtual containers in a desktop environment | |
US11010149B2 (en) | Shared middleware layer containers | |
US9342316B1 (en) | Installing digital signage device operating system from flash memory and registering signage device to a global network | |
CN116382713A (zh) | 构建应用镜像的方法、系统、设备和存储介质 | |
US20230142148A1 (en) | Automated Deployment of Enterprise Archive with Dependency on Application Server Via Script | |
CN115016862A (zh) | 基于Kubernetes集群的软件启动方法、装置、服务器及存储介质 | |
US11561787B2 (en) | Application invocation on specified operating system version | |
CN116302150B (zh) | hypervisor自启动程序生成方法和操作系统启动方法 | |
US11099907B1 (en) | Prerequisite driven dynamic infrastructure orchestration | |
US11409615B2 (en) | Cloning storage volumes from backup | |
US20230214266A1 (en) | Orchestration of containerized microservices | |
CN117742890A (zh) | 一种虚拟机的创建方法、装置、设备及存储介质 | |
CN112148935A (zh) | 用于多实例的nbmp功能执行的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |