CN107066283B - 用于更新计算机装置的部件同时实现部件可用性的技术 - Google Patents

用于更新计算机装置的部件同时实现部件可用性的技术 Download PDF

Info

Publication number
CN107066283B
CN107066283B CN201610905989.XA CN201610905989A CN107066283B CN 107066283 B CN107066283 B CN 107066283B CN 201610905989 A CN201610905989 A CN 201610905989A CN 107066283 B CN107066283 B CN 107066283B
Authority
CN
China
Prior art keywords
update
component
updates
components
common
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.)
Active
Application number
CN201610905989.XA
Other languages
English (en)
Other versions
CN107066283A (zh
Inventor
A.皮赛
S.西昆巴丹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Harman International Industries Inc
Original Assignee
Harman International Industries Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Harman International Industries Inc filed Critical Harman International Industries Inc
Publication of CN107066283A publication Critical patent/CN107066283A/zh
Application granted granted Critical
Publication of CN107066283B publication Critical patent/CN107066283B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running

Abstract

本公开提供一种用于接收更新软件包的计算装置,所述更新软件包包括用于计算机装置的多个硬件部件和/或软件部件的多个更新。更新引擎可基于所述更新的关系和分组来确定用于执行所述更新的时间顺序。所述更新引擎可以识别所接收的更新软件包中的公共分组的更新、相互依赖分组的更新以及任何独立更新。所述更新引擎可以针对所有所识别的公共分组执行公共分组更新方法并且针对所有所识别的相互依赖分组执行相互依赖分组更新方法。在确定所述更新软件包中的所有更新为独立更新的情况下,所述更新引擎可以执行使得选定的独立部件在更新周期开始时就可用的独立更新方法,同时更新并启用其他部件,并且然后最后更新所述选定的独立部件。

Description

用于更新计算机装置的部件同时实现部件可用性的技术
技术领域
各种实施方案总体涉及计算机科学,并且更具体地,涉及用于更新计算机装置的部件同时实现部件可用性的技术。
背景技术
当前,计算机装置的部件需要经常进行更新以确保部件运行最新的软件和固件特征。此类部件可包括硬件部件和/或应用程序/服务。硬件部件通常通过固件更新来更新,并且应用程序/范围通常通过软件更新来更新。例如,消费者电子装置(诸如GPS装置、移动电话、车辆音响主机等)可以通过更新软件包来更新,所述更新软件包可以下载并在消费者电子装置上执行。更新软件包可包括用于消费者电子装置的特定部件的单独更新。例如,更新软件包可包括用于媒体应用服务的更新、用于媒体硬件部件的单独更新、用于交通应用服务的另一个单独更新等。
常规地,当执行更新时,计算机装置被置于特殊编程模式,在所述模式下计算机装置内的所有部件都是禁用的并且直到更新完成不同部件的不同特征才对用户可用。因为更新可能花费大量的时间,所以计算机装置可能在相当长的时间段内是不可用的。此外,如果更新需要用于硬件部件的若干固件更新,那么计算机装置不可用的时间段可能会延长,因为固件更新需要花费特别长的时间段来完成。
如前述内容所说明,对终端用户有用的是更新计算机装置的不同部件的更有效的技术。
发明内容
所阐述的一个或多个实施方案包括一种计算机实现方法,所述方法用于确定多个更新包括第一更新,所述第一更新与第一部件相关联并且是第二更新和第三更新的公共更新。所述第二更新与依赖于第一部件的第二部件相关联,并且第三更新与依赖于第一部件的第三部件相关联。所述方法还包括在对第二部件执行第二更新之前和对第三部件执行第三更新之前对第一部件执行第一更新。
另外的实施方案提供:除其他之外,用于实现上文阐述的系统的各个方面的计算机装置和计算机可读存储介质。
所公开的技术的至少一个优点是:其允许启用计算机装置的一些部件并且使得所述部件可供终端用户使用,同时在更新周期期间更新计算机装置的其他部件。因此,所公开的技术使得用户在更新周期期间能够访问并使用计算机装置的至少一些特征。
附图说明
因此,为了详细理解上文阐述的一个或多个实施方案的特征,通过参考某些特定实施方案来对上文简要概述的一个或多个实施方案进行更具体的描述,这些实施方案中的一些在附图中示出。然而,应当注意,附图仅示出典型的实施方案,并且因此不应当被视为以任何方式限制其范围,因为各种实施方案的范围也包括其他实施方案。
图1示出了被配置成实现各种实施方案的一个或多个方面的计算装置;
图2是根据各种实施方案的更新软件包的概念图;
图3是根据各种实施方案的针对图2的更新软件包的关系和分组的概念图;
图4是根据各种实施方案的针对图2的更新软件包的更新时间线的概念图;
图5是根据各种实施方案的用于更新计算机装置的部件的方法步骤的流程图;
图6是根据其他各种实施方案的用于更新计算机装置的部件的方法步骤的流程图;并且
图7是根据另外其他各种实施方案的用于更新计算机装置的部件的方法步骤的流程图;并且
图8是根据再另外其他各种实施方案的用于更新计算机装置的部件的方法步骤的流程图。
具体实施方式
在以下描述中,阐述众多具体细节以提供对某些具体实施方案的更透彻理解。然而,本领域的技术人员将明白,其他实施方案可在没有这些具体细节中的一个或多个细节的情况下或在具有另外特定细节的情况下加以实践。
用于更新的计算装置的部件
图1示出了被配置成实现各种实施方案的一个或多个方面的计算装置100。如图所示,计算装置100包括但不限于联接到多个硬件部件110的一个或多个处理单元120、存储单元125和/或输入/输出(I/O)装置130。计算装置100可以是例如服务器系统、客户端系统、膝上型计算机、平板电脑或手持式装置、消费者装置(诸如导航系统、车辆信息娱乐或音频系统、数字摄像机等)或任何其他类型的计算装置。
处理单元120可以是中央处理单元(CPU)、图形处理单元(GPU)或不同处理单元的组合,诸如被配置成与GPU结合来操作的CPU。一般来说,处理单元120可以是能够处理数据和/或执行软件应用的任何技术上可行的硬件单元。
I/O装置130包括能够接收用户输入的输入装置、能够生成输出的输出装置以及能够通过网络进行通信的网络装置(未示出)。输入装置的实例包括键盘、鼠标、触摸屏、麦克风或其他输入元件。输出装置的实例包括监视器、打印机或其他输出元件。I/O装置130可包括接口。所述接口可包括旋钮、开关、滑动部件、按钮、鼠标、键盘、显示器、触摸屏或能够接收用于调整、修改或控制计算机装置100的一个或多个特征的用户输入并提供由用户感觉到的输出的其他装置或机构。所述接口可用于操纵计算机装置100的一个或多个特性、部件或特征。输入和输出装置允许终端用户访问计算机装置100的硬件和/或应用部件的特征。
硬件部件110可包括多个硬件部件110,诸如第一部件110a、第二部件110b、第三部件110c等。硬件部件110可包括集成电路(IC)、片上系统(SoC)、嵌入式系统、芯片、微控制器等。硬件部件110可以是用于提供特定特征的专用电路。硬件部件110的实例的非穷举性列表包括音频处理器、媒体芯片、调谐器芯片、显示控制器芯片、GPS芯片、网络接口控制器芯片、触摸控制芯片、控制面板芯片、电话芯片等。在其他实施方案中,使用其他类型的硬件部件110。每个硬件部件110可包括用于存储嵌入式软件(固件)的非易失性存储器装置(诸如ROM、EPROM、快闪存储器等)。
存储器125可包括但不限于计算机可读存储介质,诸如各种类型的易失性和非易失性存储介质,包括随机存取存储器、只读存储器、可编程只读存储器、电可编程只读存储器、电可擦除只读存储器、快闪存储器、磁带或磁盘、光学介质等。存储器125可以是用于存储记录数据的外部存储装置或数据库。实例包括硬盘驱动器、光盘(“CD”)、数字视频光盘(“DVD”)、存储卡、记忆棒、软盘、通用串行总线(“USB”)存储器装置或可操作来存储数据的任何其他装置。存储器125可操作来存储可由处理器120执行的指令。
存储器单元125可包括多个应用程序/服务140,诸如第一应用140a、第二应用140b、第三应用140c等。应用程序可以提供用于提供特定特征的专用应用服务。应用程序/服务140的实例的非穷举性列表包括交通服务、调谐器服务、导航服务、媒体服务、用户接口服务、网络服务、连接服务(例如,用于蓝牙、红外等的应用)、驾驶员辅助服务(例如,用于倒车摄像头、停车传感器等的应用)、电话服务等。在其他实施方案中,使用其他类型的应用程序/服务140。
硬件部件110在本文中被称为计算机装置100的硬件部件,并且应用程序/服务140在本文中被称为计算机装置100的软件部件。共同地,硬件部件110和应用程序/服务140本文中被称为计算机装置100的部件。应注意,一些硬件部件110和应用程序/服务140可以具有类似的名称(诸如媒体芯片和媒体服务、电话芯片和电话服务等),但是硬件部件110和应用程序/服务140是计算机装置100的单独且不同的部件。
用于硬件部件110的固件可以通过对固件重新编程的固件更新而周期性地进行更新,例如以便将漏洞固定到硬件部件110,将安全补丁应用于硬件部件110或将新特征添加到硬件部件110。同样地,应用程序/服务140可以通过应用更新而周期性地进行更新,例如以便将漏洞固定到应用程序/服务140或将新特征添加到应用程序/服务140。在这方面,存储器125还可包括多个更新150,诸如第一更新150a、第二更新150b、第三更新150c等。多个更新150可包括更新软件包。更新软件包可通过网络连接(例如,互联网下载)、USB连接、CD、DVD、SD卡或用于将更新软件包加载并存储到计算机装置100的任何其他可行方式来接收并被存储到计算机装置100。在其他实施方案中,软件更新可通过空中更新(OTA)或通过诊断接口来执行。
存储器125还可包括执行本文所述的更新技术的更新引擎160。具体地,更新引擎160可以实现一种或多种更新技术,所述技术增加计算机装置100的硬件和/或软件部件的数量以及启用所述部件的时间量和在更新周期期间使得所述部件对用户可用的时间量。更新技术可基于计算机装置100的待更新的部件之间的关系。在一些实施方案中,更新引擎160使用更新表170来执行本文所述的更新技术。
硬件部件可使用本领域中已知的各种方法启用。例如,硬件部件可能需要重置以便启用,或者整个计算机装置可能需要重新启动以便启用硬件部件。应用程序/服务(软件部件)可使用本领域中已知的各种方法启用。例如,应用程序/服务可能需要终止并重新启动应用程序/服务以便启用。当硬件部件或软件部件(应用程序/服务)被启用时,可以认为其对用户可用,由此硬件或软件部件的特征和功能是可访问的且可供使用的。因此,启用的硬件或软件部件正在运行并且是可操作的,并且提供其特征和功能以供用户使用。
更新和部件的关系及分组
图2是根据各种实施方案的更新软件包的概念图。如图2的实例中所示,更新软件包200包括多个更新150a-m(在图2中标记为更新A-M)。更新150可包括用于硬件部件110的固件更新或用于应用程序/服务140的应用更新。另外,更新150包括用于特定硬件部件110的固件更新或用于特定应用程序/服务140的应用更新。因此,每个更新A-M具有有待进行更新的对应硬件或应用部件A-M。例如,更新C可包括有待对硬件部件C(例如,GPS芯片)执行的固件更新,更新G可包括有待对应用部件G(例如,电话服务)执行的应用更新。在一个实施方案中,每个更新150可包括指定识别有待应用更新150的对应部件(硬件部件110或应用程序/服务140)的部件标识符(ID)。
在一些实施方案中,执行更新软件包200中的更新150的时间顺序是基于待更新的部件之间的关系。在这些实施方案中,部件可包括独立部件、依赖部件、公共部件和/或相互依赖部件。应注意,部件之间的关系仅基于待通过更新软件包200进行更新的部件确定,而不是基于计算机装置100的所有部件确定。通常,待通过更新软件包200进行更新的部件仅是计算机装置100的所有部件的一个子集。另外,更新软件包200中的更新150之间的关系对应于待通过更新150进行更新的部件之间的关系。
独立部件(待更新的)可包括不依赖/依靠任何其他部件(待更新的)以使所述独立部件成为可操作的部件。因此,独立更新可包括用于独立部件的更新150。
如果第一部件依赖/依靠第二部件以成为可操作的,那么第一部件(待更新的)可以是依赖于第二部件(待更新的)的。第一部件被称为依赖部件。公共部件可包括一个或多个其他部件(待更新的)成为可操作的所依赖/依靠的部件(待更新的)。例如,如果第一部件和第二部件都依赖于第三部件以使第一部件和第二部件成为可操作的,那么第三部件是第一部件和第二部件的公共部件。公共更新可包括用于公共部件的更新150。一个或多个依赖部件和它们的公共部件(例如,第一部件、第二部件和第三部件)在本文中可以被称为“公共分组”的部件。另外,用于公共分组的部件的对应更新150在本文中可以被称为公共分组的更新150。
相互依赖部件可包括各自彼此依赖以成为可操作的部件。例如,如果第一部件依赖于第二部件以成为可操作的并且第二部件依赖于第一部件以成为可操作的,那么第一部件和第二部件是相互依赖的。换句话说,相互依赖部件是双向依赖的。相互依赖部件在本文中可以被称为“相互依赖分组”的部件。应注意,相互依赖分组也可包括三个或更多个相互依赖部件,每个部件依赖于所述分组中的每个其他部件。相互依赖更新可包括用于相互依赖部件的更新150。用于相互依赖分组的部件的对应更新150在本文中可以被称为相互依赖分组的更新150。
如上所述,如果第一部件依赖/依靠第二部件以成为可操作的,那么第一部件可以是依赖于第二部件的。在一些实施方案中,这意味着第二部件向第一部件提供使第一部件正常操作所需的一个或多个功能/服务,由此在没有所述一个或多个功能/服务的情况下第一部件将不能如所配置的那样执行。
更新引擎160可以确定部件(待更新的)与更新软件包200的更新150之间的关系以及部件和更新的任何公共分组和/或相互依赖分组。基于所确定的关系和分组,更新引擎160可以确定待执行的更新150(相对于更新软件包200中的其他更新150)的时间顺序。
在一些实施方案中,每个更新150可包括指定分组标识符(ID)的元数据。用于更新150的分组ID可以指定更新150所属的特定分组、分组的类型(公共分组或相互依赖分组)和/或更新150是否是公共更新。例如,分组ID可以指示更新150归属于作为更新的相互依赖分组的第二分组。作为另一个实例,分组ID可以指示更新150归属于作为更新的公共分组的第三分组,并且更新150是公共更新(并且因此不是依赖更新)。如果针对更新150的分组ID是空的(空值),那这可以指示更新150是用于独立部件的独立更新。在这些实施方案中,更新150的关系和分组是在产生更新软件包200时确定的。当在计算机装置100处接收更新软件包200时,更新引擎160随后解析分组ID中的元数据以识别更新150的关系和分组。
在其他实施方案中,每个更新150可包括指定更新标识符(ID)的元数据并且更新软件包200可包括指定更新表170的元数据。更新表170可包括用于更新ID的多个条目,每个条目指定用于特定更新ID的信息。例如,由于特定更新ID的条目可以指定更新可归属的分组的类型(公共分组或相互依赖分组)、分组中其他更新的更新ID以及更新是否是公共分组中的公共更新。如果针对特定更新ID的条目是空的(空值),那这可以指示更新150是用于独立部件的独立更新。在这些实施方案中,更新150的关系和分组是在更新软件包200产生并由计算机装置100接收之后确定的,因此更新引擎160随后解析更新ID和更新表170中的元数据以识别更新150的关系和分组。
图3是根据各种实施方案的针对图2的更新软件包200的关系和分组的概念图。如图3的实例中所示,由更新引擎160确定的更新关系和分组包括公共分组310a-b、独立更新320a-c以及相互依赖分组330a-b。
第一公共分组310a包括所有更新150a-m(标记为A-M),由此所有更新150b-m(标记为B-M)依赖于公共更新150a(标记为A)。应注意,更新A-M是分别针对部件A-M的,由此部件B-M依赖于公共部件A。第二公共分组310b包括更新150g-i(标记为G-I),由此更新150g和150i(标记为G和I)依赖于公共更新150h(标记为H)。应注意,更新G-I是分别针对部件G-I的,由此依赖部件G和I依赖于公共部件H。
独立更新320a-c包括第一独立更新150b(标记为B)、第二独立更新150e(标记为E)以及第三独立更新150f(标记为F)。应注意,更新B、E和F是分别针对部件B、E和F的,由此部件B、E和F中的每一个都是独立部件。
第一相互依赖分组330a包括更新150c-d(标记为C-D),由此更新150c-d中的每一个都彼此依赖。应注意,更新C-D是分别针对部件C-D的,由此部件C-D是相互依赖的。第二相互依赖分组330b包括更新150j-m(标记为J-M),由此更新150j-m中的每一个都彼此依赖。因此,更新J依赖于更新K、L、M;更新K依赖于更新J、L、M;更新L依赖于更新J、K、M;并且更新M依赖于更新J、K、L。应注意,更新J-M是分别针对部件J-M的,由此部件J-M是相互依赖的。
基于所确定的更新150的关系和分组,更新引擎160随后确定更新软件包200中更新150的时间顺序。图4是根据各种实施方案的针对图2的更新软件包200的更新时间线400的概念图。如图4的实例中所示,更新时间线400示出用于执行更新150a-m的示例性时间序列。更新时间线400包括执行更新软件包200中的所有更新150所需的更新周期。
在一些实施方案中,针对每个公共分组的更新,在执行公共分组中的所有其他更新(依赖更新)之前首先执行公共更新。具体地,对于公共分组的更新(具有对应公共分组的部件),可以按顺序执行以下一系列步骤:针对公共分组中的每个依赖更新,对对应的公共部件执行公共更新;启用对应的公共部件;对对应的第一依赖部件执行第一依赖更新;启用第一依赖部件;对对应的第二依赖部件执行第二依赖更新;启用第二依赖部件;等等。通过首先对公共部件执行公共更新(相对于公共分组中的其他更新而言),可以首先启用公共部件(相对于公共分组中的其他部件而言)。如以上所讨论的,公共部件是公共分组中的所有其他部件所依赖的部件。因此,对应的依赖更新一完成,就可以启用公共分组中的每个依赖部件,这是因为每个依赖部件所依靠的公共部件已经被更新和启用。因此,以这种方式更新公共分组的部件增加了部件的数量以及公共分组中的部件对用户可用的时间量。
如图4所示,针对包括更新150a-m(标记为A-M)的第一公共分组310a,首先对对应的公共部件A执行公共更新150a(标记为A),随后启用公共部件A,并且然后可以分别对对应的依赖部件B-M执行依赖更新150b-m(标记为B-M)。如图4所示,针对包括更新150g-i(标记为G-I)的第二公共分组310b,首先对对应的公共部件H执行公共更新150h(标记为H),随后启用公共部件H,然后对对应的依赖部件G执行依赖更新150g(标记为G),然后启用依赖部件G,然后对对应的依赖部件I执行依赖更新150i(标记为I),并且然后启用依赖部件I。
在一些实施方案中,针对每个相互依赖分组的更新(具有对应相互依赖分组的部件),在启用分组中的对应相互依赖部件中的任一个之前,首先执行分组中的所有相互依赖更新。例如,针对相互依赖分组中的三个更新,可以按顺序执行以下一系列步骤:对对应的第一相互依赖部件、第二相互依赖部件和第三相互依赖部件执行第一相互依赖更新、第二相互依赖更新和第三相互依赖更新。因为相互依赖分组中的所有相互依赖更新和相互依赖部件都彼此依赖,所以直到执行了相互依赖分组中的所有相互依赖更新才可以启用相互依赖部件并使得其可用。相互依赖更新可以被认为是在单个步骤中执行的。这避免了操作误差,因为它确保了在执行所有相互依赖更新之前不会错误地启用相互依赖部件(导致误差)。
如图4所示,针对第一相互依赖分组330a,首先分别对对应的相互依赖部件C-D执行(在一个步骤中)相互依赖更新150c-d(标记为C-D),然后启用相互依赖部件C-D(同时或几乎同时)。如图4所示,针对第二相互依赖分组330b,首先分别对对应的相互依赖部件J-M执行(在一个步骤中)相互依赖更新150j-m(标记为J-M),然后启用相互依赖部件J-M(同时或几乎同时)。
对于相互依赖更新,可以在更新周期期间的任何时间执行独立更新,并且在独立更新一完成就启用对应的独立部件。如图4所示,对对应的独立部件B执行第一独立更新150b(标记为B),然后启用独立部件B,对对应的独立部件E执行第二独立更新150e(标记为E),然后启用独立部件E,对对应的独立部件F执行的第三独立更新150f(标记为F),并且然后启用独立部件F。在其他实施方案中,可以在更新周期期间的其他时间执行独立更新,诸如在执行更新软件包200中的所有其他更新之前或之后。
在一些实施方案中,在所接收的更新软件包200中的所有更新150都包括用于独立部件的独立更新的不寻常情况下,使用专用的独立更新技术来最大化对用户可用的独立部件的数量以及独立部件对用户可用的时间量。所述专用技术在下文结合图6进行描述。
用于更新部件的技术
图5是根据各种实施方案的用于更新计算机装置的部件的方法步骤的流程图。尽管结合图1-4的系统描述了方法步骤,但是本领域的技术人员将理解,被配置成以任何顺序执行方法步骤的任何系统均落在各种实施方案的范围内。
如图所示,方法500开始于步骤505处,其中计算机装置100接收更新软件包200,所述更新软件包200包括用于计算机装置100的多个硬件部件和/或软件部件的多个更新150。更新150可包括用于对应的硬件部件110的固件更新或用于对应的应用程序/服务140的应用更新。每个更新150可包括指定识别有待应用更新150的对应部件(硬件部件110或应用程序/服务140)的部件标识符(ID)。
在步骤510处,更新引擎160随后识别所接收的更新软件包200中的更新150的关系和分组。在一些实施方案中,更新引擎160确定所接收的更新软件包200中的任何公共分组的更新、任何相互依赖分组的更新以及任何独立更新。更新引擎160可以使用指定更新150所属的特定分组的分组ID(包括在每个更新150中)来确定更新150的关系和分组、分组的类型(公共分组或相互依赖分组)和/或更新150是否是公共更新。在其他实施方案中,更新引擎160可以使用更新ID(包括在每个更新150中)和更新表170(包括在更新软件包200中)来确定更新150的关系和分组。
在步骤515处,更新引擎160随后确定更新软件包200中的所有更新是否被识别为用于独立部件的独立更新。如果是这样,在步骤520处,更新引擎160执行独立更新方法600(结合图6进行描述)并且结束。否则,方法500继续到步骤525。
在步骤525处,更新引擎160确定一个或多个公共分组的更新是否被识别为在更新软件包200中。如果是这样,在步骤530处,更新引擎160针对每个所识别的公共分组执行公共分组更新方法700(如下文结合图7所描述的)并且然后继续到步骤535。否则,方法500直接继续到步骤535。
在步骤535处,更新引擎160确定一个或多个相互依赖分组的更新是否被识别为在更新软件包200中。如果是这样,在步骤540处,更新引擎160针对每个所识别的相互依赖分组执行相互依赖分组更新方法800(结合图8进行描述)并且然后继续到步骤545。否则,方法500直接继续到步骤545。
在步骤545处,更新引擎160执行所接收的更新软件包中的任何剩余的独立更新并且启用对应的独立部件。方法500随后结束。应注意,通用方法500中的方法步骤可以改变,从而使得例如相对于在通用方法500中执行的其他更新而言,公共分组更新方法700可以稍后执行,相互依赖分组更新方法800可以提前或稍后执行,并且独立更新可以提前执行。
图6是根据其他各种实施方案的用于更新计算机装置的部件的方法步骤的流程图。尽管结合图1-4的系统描述了方法步骤,但是本领域的技术人员将理解,被配置成以任何顺序执行方法步骤的任何系统均落在各种实施方案的范围内。
当更新软件包200中的所有更新被识别为用于一组独立部件的独立更新时,更新引擎160可以执行图6的独立更新方法的方法步骤。在这种情况下,独立部件中的至少一个在更新周期期间是可用的。在这些实施方案中,在对所有其他独立部件执行独立更新时,一个选定的独立部件从更新周期开始就是可用的。当每个独立部件完成更新时,所述独立部件立即被启用并且对用户可用。在所有其他独立部件都更新之后,随后执行用于选定的独立部件的独立更新并且之后启用选定的独立部件。在一些实施方案中,更新软件包200包括完整的装置更新,其中计算机装置100进入特殊的编程模式,在所述模式期间通常所有部件对用户都不可用。
如图所示,方法600开始于步骤605处,其中更新引擎160从一组独立部件中选择一个独立部件并且使得选定的独立部件从更新周期开始就是可用的。所述一组独立部件中的其他独立部件被称为非选定的独立部件。
在步骤610处,更新引擎160对所述组中每个非选定的独立部件执行对应的更新。在步骤615处,更新引擎160在每个非选定的独立部件的更新完成之后立即启用它们。
在步骤620处,在所有非选定的独立部件都被更新并启用之后,更新引擎160对选定的独立部件执行对应的更新。在步骤625处,更新引擎160在选定的独立部件的更新完成之后立即启用所述选定的独立部件。方法600随后结束。
图7是根据另外其他各种实施方案的用于更新计算机装置的部件的方法步骤的流程图。尽管结合图1-4的系统描述了方法步骤,但是本领域的技术人员将理解,被配置成以任何顺序执行方法步骤的任何系统均落在各种实施方案的范围内。更新引擎160可以针对被识别为在所接收的更新软件包200中的每个公共分组的更新执行图7的公共分组更新方法的方法步骤。
此处,每个所识别的公共分组的更新可包括用于更新至少一个对应公共部件的至少一个公共更新和用于更新至少一个对应依赖部件的至少一个依赖更新。公共分组中的每个依赖更新/部件依赖于公共分组中的至少一个公共更新/部件。
如图所示,方法700开始于步骤705处,其中更新引擎160在执行公共分组中的任一依赖更新之前对执行一个公共部件执行至少一个公共更新。在步骤710处,更新引擎160启用对应的公共部件。
在步骤715处,更新引擎160对对应的依赖部件执行公共分组中的每个依赖更新。在步骤720处,更新引擎160在更新每个对应的依赖部件之后立即启用所述对应的依赖部件。方法700随后结束。
图8是根据再另外其他各种实施方案的用于更新计算机装置的部件的方法步骤的流程图。尽管结合图1-4的系统描述了方法步骤,但是本领域的技术人员将理解,被配置成以任何顺序执行方法步骤的任何系统均落在各种实施方案的范围内。更新引擎160可以针对被识别为在所接收的更新软件包200中的每个相互依赖分组的更新执行图8的相互依赖分组更新方法的方法步骤。
此处,每个所识别的相互依赖分组的更新可包括用于更新至少两个对应相互依赖部件的至少两个相互依赖更新。每个相互依赖更新/部件依赖于相互依赖分组中的每个其他相互依赖更新/部件。
如图所示,方法800开始于步骤805处,其中更新引擎160对相互依赖分组中的所有对应相互依赖部件执行所有相互依赖更新。相互依赖分组中的所有相互依赖更新都是在启用任一对应的相互依赖部件之前执行的。相互依赖更新可以被认为是在单个步骤中执行的。在步骤810处,更新引擎160启用相互依赖分组中的所有对应的相互依赖部件。方法800随后结束。
总之,计算装置100被配置成接收更新软件包200,所述更新软件包200包括用于计算机装置100的多个硬件部件和/或软件部件的多个更新150。更新引擎160可以识别所接收的更新软件包200中的更新150的关系和分组。更新引擎160可以识别所接收的更新软件包200中的任何公共分组的更新、任何相互依赖分组的更新以及任何独立更新。更新引擎160可以针对所有所识别的公共分组执行公共分组更新方法,所述方法包括在执行公共分组中的任一依赖更新之前首先执行公共更新。更新引擎160可以针对所有所识别的相互依赖分组执行相互依赖分组更新方法,所述方法包括在启用任一相互依赖部件之前首先执行所有相互依赖更新。在确定更新软件包中的所有更新为独立更新的不寻常情况下,更新引擎160可以执行独立的更新方法。
所公开的技术的至少一个优点是:其允许启用计算机装置的一些部件并且使得所述部件可供终端用户使用,同时在更新周期期间更新计算机装置的其他部件。因此,所公开的技术使得用户在更新周期期间能够访问并使用计算机装置的至少一些特征。另一个优点是:在更新公共分组的部件时,所公开的技术增加了部件的数量以及公共分组中的部件对用户可用的时间量。另一个优点是:在更新相互依赖分组的更新时,可以避免操作误差,因为在执行所有相互依赖更新之前不能启用相互依赖部件。
已经出于说明目的呈现了各种实施方案的描述内容,但是其并不意图是穷举性的或者限于所公开的实施方案。在不脱离所描述实施方案的范围和精神的情况下,许多修改和变化对于本领域的普通技术人员来说将是明显的。
本发明的实施方案的各方面可以体现为系统、方法或计算机程序产品。因此,本公开的各方面可以采用以下形式:完全硬件实施方案、完全软件实施方案(包括固件、常驻软件、微代码等)或将软件方面与硬件方面组合的实施方案,所述实施方案在本文中一般都可以称为“电路”、“模块”或“系统”。此外,本公开的各方面可采用在一个或多个计算机可读介质上实施的计算机程序产品形式,所述计算机可读介质具有在该介质上实施的计算机可读程序代码。
可以使用一个或多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是例如但不限于电子、磁性、光学、电磁、红外或半导体系统、设备或装置、或者前述介质的任何合适组合。计算机可读存储介质的更具体示例(非穷举性列表)将包括以下介质:具有一个或多个导线的电连接、便携式计算机软盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光纤、便携式光盘只读存储器(CD-ROM)、光学存储装置、磁性存储装置或前述介质的任何合适组合。在本文件的上下文中,计算机可读存储介质可以是可含有或存储供指令执行系统、设备或装置使用或与其结合使用的程序的任何有形介质。
以上参考根据本公开实施方案的方法、设备(系统)和计算机程序产品的流程图图解和/或方框图来描述本公开的各方面。应了解,流程图图解和/或方框图的每一个方框以及流程图图解和/或方框图的方框组合可以通过计算机程序指令来实现。可以将这些计算机程序指令提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器来产生一种机器,以使得通过计算机或其它可编程数据处理装置的处理器来执行的指令允许实现在流程图和/或方框图的一个或多个方框中指定的功能/操作。此类处理器可不限于通用处理器、专用处理器、特定应用处理器或现场可编程处理器或门阵列。
附图中的流程图和方框图示出根据本公开的各种实施方案的系统、方法和计算机程序产品的可能实现方式的体系结构、功能和操作。在这方面,流程图或方框图中的每个方框可以表示代码模块、代码区段或代码的一部分,其包括用于实现所指定的逻辑功能的一个或多个可执行指令。也应注意到,在一些替代实现方式中,方框中提到的功能可以不按附图中指出的顺序出现。例如,连续示出的两个方框实际上可基本上同时执行,或者方框有时可按相反顺序执行,这取决于所涉及的功能。还将注意到,方框图和/或流程图的每个方框以及方框图和/或流程图中的方框组合可以由基于特殊用途硬件的系统实现,该基于特殊用途硬件的系统执行指定功能或动作,或特殊用途硬件和计算机指令的组合。
虽然上述内容是针对本公开的实施方案,但是可以在不脱离其基本范围的情况下,设想出本公开的其他和另外的实施方案,而且其范围由随附的权利要求书加以确定。

Claims (13)

1.一种用于更新计算机装置内的部件的计算机实现方法,所述方法包括:
确定多个更新包括公共分组的更新,所述公共分组的更新包括第一更新、第二更新和第三更新,其中所述第一更新与第一部件相关联,所述第二更新与依赖于所述第一部件成为可操作的第二部件相关联,并且所述第三更新与依赖于所述第一部件成为可操作的第三部件相关联,所述第一部件是第二部件和第三部件的公共部件,公共更新包括对所述公共部件的更新;
响应于确定所述第一更新是所述第二更新和所述第三更新的公共更新,确定应在执行所述第二更新和所述第三更新之前执行所述第一更新;以及
在对所述第二部件执行所述第二更新之前和对所述第三部件执行所述第三更新之前对所述第一部件执行所述第一更新并且然后启用所述第一部件。
2.如权利要求1所述的计算机实现方法,其中所述第一部件包括硬件部件或应用服务,并且所述第一更新包括用于所述第一部件的固件更新或用于所述第一部件的软件更新。
3.如权利要求1所述的计算机实现方法,其还包括:
在启用所述第一部件之后,对所述第二部件执行所述第二更新并且启用所述第二部件;以及
在启用所述第二部件之后,对所述第三部件执行所述第三更新并且启用所述第三部件。
4.如权利要求1所述的计算机实现方法,其还包括:
确定所述多个更新还包括第四更新,所述第四更新与第四部件相关联并且与第五更新是相互依赖的,第五更新与第五部件相关联,其中所述第五部件与所述第四部件是相互依赖的;以及
在启用所述第四部件或所述第五部件之前对所述第四部件执行所述第四更新并且对所述第五部件执行所述第五更新。
5.如权利要求4所述的计算机实现方法,其中所述第四部件和所述第五部件可操作地彼此依赖。
6.如权利要求1所述的计算机实现方法,其还包括:
确定所述多个更新还包括与第四部件相关联的第四更新、与第五部件相关联的第五更新以及与第六部件相关联的第六更新,其中所述第四更新、所述第五更新和所述第六更新是相互依赖的并且所述第四部件、所述第五部件和所述第六部件是相互依赖的;以及
在启用所述第四部件、所述第五部件或所述第六部件之前对所述第四部件执行所述第四更新、对所述第五部件执行所述第五更新并且对所述第六部件执行所述第六更新。
7.如权利要求6所述的计算机实现方法,其中:
所述第四部件可操作地依赖于所述第五部件和所述第六部件;
所述第五部件可操作地依赖于所述第四部件和所述第六部件;并且
所述第六部件可操作地依赖于所述第四部件和所述第五部件。
8.一种计算机装置,其包括:
多个部件;
存储器,所述存储器包括更新引擎;以及
处理器,所述处理器联接到所述存储器,其中在执行所述更新引擎时,所述处理器被配置用于:
确定多个更新包括公共分组的更新,所述公共分组的更新包括第一更新、第二更新和第三更新,其中所述第一更新与第一部件相关联,所述第二更新与依赖于所述第一部件成为可操作的第二部件相关联,并且所述第三更新与依赖于所述第一部件成为可操作的第三部件相关联,所述第一部件是第二部件和第三部件的公共部件,公共更新包括对所述公共部件的更新;
响应于确定所述第一更新是所述第二更新和所述第三更新的公共更新,确定应在执行所述第二更新和所述第三更新之前执行所述第一更新;以及
在对所述第二部件执行所述第二更新之前和对所述第三部件执行所述第三更新之前对所述第一部件执行所述第一更新并且然后启用所述第一部件。
9.如权利要求8所述的计算机装置,其中:
所述第一部件包括硬件部件或应用服务;并且
所述第一更新包括用于所述第一部件的固件更新或用于所述第一部件的软件更新。
10.如权利要求8所述的计算机装置,其中所述处理器进一步被配置用于:
在启用所述第一部件之后,对所述第二部件执行所述第二更新并且启用所述第二部件;以及
在启用所述第二部件之后,对所述第三部件执行所述第三更新并且启用所述第三部件。
11.如权利要求8所述的计算机装置,其中所述计算机装置包括GPS装置、移动电话或车辆音响主机。
12.如权利要求8所述的计算机装置,其中所述第一部件包括媒体芯片、GPS芯片、控制面板芯片或电话芯片。
13.如权利要求8所述的计算机装置,其中所述第一部件包括交通服务、导航服务、媒体服务、网络服务或电话服务。
CN201610905989.XA 2015-10-19 2016-10-18 用于更新计算机装置的部件同时实现部件可用性的技术 Active CN107066283B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/887,083 US10430173B2 (en) 2015-10-19 2015-10-19 Techniques for updating components of a computer device while enabling components for availability
US14/887,083 2015-10-19

Publications (2)

Publication Number Publication Date
CN107066283A CN107066283A (zh) 2017-08-18
CN107066283B true CN107066283B (zh) 2021-07-13

Family

ID=57153369

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610905989.XA Active CN107066283B (zh) 2015-10-19 2016-10-18 用于更新计算机装置的部件同时实现部件可用性的技术

Country Status (3)

Country Link
US (1) US10430173B2 (zh)
EP (1) EP3159791B1 (zh)
CN (1) CN107066283B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10846076B2 (en) * 2016-10-11 2020-11-24 Barfield, Inc. Remote application update of measurement device field firmware
CN112114832B (zh) * 2020-09-21 2024-03-15 华人运通(上海)云计算科技有限公司 车辆升级控制方法、终端设备、车辆和计算机存储介质
US11494179B1 (en) * 2021-05-04 2022-11-08 Sap Se Software update on legacy system without application disruption

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101034360A (zh) * 2006-03-06 2007-09-12 联发科技股份有限公司 更新固件的方法及装置
CN101241438A (zh) * 2007-02-08 2008-08-13 国际商业机器公司 更改信息处理系统中的软件组件的方法和装置
CN101359292A (zh) * 2007-08-03 2009-02-04 技嘉科技股份有限公司 计算机系统及控制方法
CN101393535A (zh) * 2007-09-19 2009-03-25 国际商业机器公司 将运行时事件与组件相关联的方法和系统
CN101930372A (zh) * 2009-06-24 2010-12-29 英业达股份有限公司 程序更新系统及方法
CN102200916A (zh) * 2010-03-26 2011-09-28 联想(北京)有限公司 电子设备、可配置的部件及该部件的配置信息存储方法
CN102523268A (zh) * 2011-12-08 2012-06-27 北京新媒传信科技有限公司 一种客户端升级方法和系统
CN102567015A (zh) * 2010-12-31 2012-07-11 国际商业机器公司 用于执行动态软件版本选择的方法和系统
US8799888B1 (en) * 2011-05-20 2014-08-05 Amazon Technologies, Inc. Updating an application
CN104423378A (zh) * 2013-08-29 2015-03-18 通用汽车环球科技运作有限责任公司 车辆电子控制单元校准
CN104754026A (zh) * 2013-11-12 2015-07-01 株式会社理光 通信装置、通信系统、通信方法和记录介质
CN104838637A (zh) * 2012-12-11 2015-08-12 高通股份有限公司 用于对设备配置进行更新的方法和装置
CN104978218A (zh) * 2014-04-02 2015-10-14 福特全球技术公司 多组块软件更新

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6247168B1 (en) * 1997-04-29 2001-06-12 Rockwell Technologies, Llc Embedded non-volatile programming tool
US5978916A (en) * 1997-11-25 1999-11-02 International Business Machines Corporation Method, system and computer program product for updating region-dependent software using a common update module for multiple regions
US20060059481A1 (en) * 2004-09-16 2006-03-16 Rodney Smith Presenting, delivering and installing electronic downloads with an installed list
US20060206888A1 (en) * 2005-03-11 2006-09-14 Microsoft Corporation Checking for and accessing software component updates through a common content manager
US20080005733A1 (en) * 2006-06-29 2008-01-03 Balaji Ramachandran Method and apparatus for updating firmware and software
US7530079B2 (en) * 2006-09-07 2009-05-05 Microsoft Corporation Managing application customization
US8584115B2 (en) * 2006-10-05 2013-11-12 International Business Machines Corporation Automated operating system device driver updating system
US8413125B2 (en) * 2007-01-26 2013-04-02 Oracle International Corporation Asynchronous dynamic compilation based on multi-session profiling to produce shared native code
US8255899B2 (en) * 2007-10-24 2012-08-28 Oracle International Corporation Techniques for upgrade dependency management
US9195455B2 (en) 2009-04-01 2015-11-24 Oracle International Corporation Reducing downtime when patching multiple inter-dependent software components
DE102009018761A1 (de) * 2009-04-27 2010-10-28 Bayerische Motoren Werke Aktiengesellschaft Verfahren zur Aktualisierung von Softwarekomponenten
US8997092B2 (en) * 2010-02-03 2015-03-31 Symantec Corporation Method, system, and computer readable medium for provisioning and remote distribution
US8732689B2 (en) * 2010-02-24 2014-05-20 Schneider Electric USA, Inc. Apparatus and method for upgrading lighting controllers
CN202121624U (zh) * 2011-07-19 2012-01-18 易程科技股份有限公司 服务功能更新系统
GB2509635A (en) * 2011-10-06 2014-07-09 Fujitsu Ltd Update control apparatus, update control program, and update control method
US8959504B2 (en) * 2011-10-18 2015-02-17 Microsoft Corporation Update scanning
CN102385515B (zh) * 2011-10-21 2014-03-26 广州市久邦数码科技有限公司 一种基于Android系统的GO图像动画引擎
KR20130073396A (ko) * 2011-12-23 2013-07-03 한국전자통신연구원 차량용 소프트웨어 개발을 지원하는 장치 및 방법
DE102012207023A1 (de) * 2012-04-27 2013-10-31 Zumtobel Lighting Gmbh Verfahren zur Umkonfiguration von Komponenten und Komponente
US9525587B2 (en) * 2012-05-17 2016-12-20 International Business Machines Corporation Updating web resources
US9110754B2 (en) * 2012-05-31 2015-08-18 Microsoft Technology Licensing, Llc Computing device update control
US8990772B2 (en) * 2012-10-16 2015-03-24 International Business Machines Corporation Dynamically recommending changes to an association between an operating system image and an update group
US8938731B2 (en) * 2012-10-24 2015-01-20 Telefonaktiebolaget L M Ericsson (Publ) Cost optimization for firmware updates for globally mobile machine-to-machine devices
CN103200026B (zh) * 2013-02-21 2018-12-04 上海中兴软件有限责任公司 固件的升级方法及系统
JP6108219B2 (ja) * 2013-02-28 2017-04-05 ブラザー工業株式会社 更新管理プログラム、更新管理装置、及び、画像処理システム
US9116774B2 (en) * 2013-05-14 2015-08-25 Sandisk Technologies Inc. Firmware updates for multiple product configurations
US20140359593A1 (en) * 2013-05-31 2014-12-04 Microsoft Corporation Maintaining known dependencies for updates
US20160117161A1 (en) * 2014-10-27 2016-04-28 Microsoft Corporation Installing and updating software systems

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101034360A (zh) * 2006-03-06 2007-09-12 联发科技股份有限公司 更新固件的方法及装置
CN101241438A (zh) * 2007-02-08 2008-08-13 国际商业机器公司 更改信息处理系统中的软件组件的方法和装置
CN101359292A (zh) * 2007-08-03 2009-02-04 技嘉科技股份有限公司 计算机系统及控制方法
CN101393535A (zh) * 2007-09-19 2009-03-25 国际商业机器公司 将运行时事件与组件相关联的方法和系统
CN101930372A (zh) * 2009-06-24 2010-12-29 英业达股份有限公司 程序更新系统及方法
CN102200916A (zh) * 2010-03-26 2011-09-28 联想(北京)有限公司 电子设备、可配置的部件及该部件的配置信息存储方法
CN102567015A (zh) * 2010-12-31 2012-07-11 国际商业机器公司 用于执行动态软件版本选择的方法和系统
US8799888B1 (en) * 2011-05-20 2014-08-05 Amazon Technologies, Inc. Updating an application
CN102523268A (zh) * 2011-12-08 2012-06-27 北京新媒传信科技有限公司 一种客户端升级方法和系统
CN104838637A (zh) * 2012-12-11 2015-08-12 高通股份有限公司 用于对设备配置进行更新的方法和装置
CN104423378A (zh) * 2013-08-29 2015-03-18 通用汽车环球科技运作有限责任公司 车辆电子控制单元校准
CN104754026A (zh) * 2013-11-12 2015-07-01 株式会社理光 通信装置、通信系统、通信方法和记录介质
CN104978218A (zh) * 2014-04-02 2015-10-14 福特全球技术公司 多组块软件更新

Also Published As

Publication number Publication date
EP3159791A2 (en) 2017-04-26
US20170109152A1 (en) 2017-04-20
CN107066283A (zh) 2017-08-18
EP3159791B1 (en) 2022-03-30
EP3159791A3 (en) 2017-08-09
US10430173B2 (en) 2019-10-01

Similar Documents

Publication Publication Date Title
CN107924323B (zh) 基于依赖的容器部署
US9110710B2 (en) Preserving changes to a configuration of a running virtual machine
CN101650660B (zh) 从中央存储装置引导计算机系统
EP3109762B1 (en) Electronic device having external memory and method for operating the same
US10944588B2 (en) Resolving conflicting commands received by an electronic device
US9697010B2 (en) User selectable operating systems
CN103412769A (zh) 外接卡参数配置方法、设备以及系统
US20070245342A1 (en) Apparatus and method for installing software
US10938573B2 (en) Distributed transaction processing
CN107066283B (zh) 用于更新计算机装置的部件同时实现部件可用性的技术
CN104536788B (zh) 使应用的安装自动化的系统和方法
US20170364274A1 (en) Software Backup and Restoration Procedures Using Application and File Monitoring
US8977825B1 (en) Techniques for abstract profile definition to support information hiding
CN110737402B (zh) 管理存储系统的方法、设备和计算机存储介质
US20190303172A1 (en) Information processing apparatus, device assignment method, and computer readable medium
US10969988B2 (en) Performing proactive copy-on-write for containers
US20150324209A1 (en) Operating System Switching Method and Dual-Operating System Electronic Device Using the Same
JP2015079478A (ja) オペレーティング・システム・パーティションを使用するユーザ開始のデータ・ロールバック
US20150212866A1 (en) Management system for service of multiple operating environments, and methods thereof
US20140181492A1 (en) Method of booting an electronic system and an electronic system applying the same
US20130073904A1 (en) System and method for managing test of baseboard management controller
WO2015191023A1 (en) Method and apparatus of subsidiary volume management
US10664041B2 (en) Implementing a customized interaction pattern for a device
US10333786B2 (en) System and method for refreshing an information handling system using many to one peer based communication
US20200210166A1 (en) Systems and methods for enforcing update policies while applying updates from bootable image file

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
GR01 Patent grant
GR01 Patent grant