CN106201613A - 预热软件安装 - Google Patents

预热软件安装 Download PDF

Info

Publication number
CN106201613A
CN106201613A CN201610541344.2A CN201610541344A CN106201613A CN 106201613 A CN106201613 A CN 106201613A CN 201610541344 A CN201610541344 A CN 201610541344A CN 106201613 A CN106201613 A CN 106201613A
Authority
CN
China
Prior art keywords
group
renewal
installation
cache
system cache
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.)
Granted
Application number
CN201610541344.2A
Other languages
English (en)
Other versions
CN106201613B (zh
Inventor
J·R·马修
R·D·萨尔丁格
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.)
Apple Inc
Original Assignee
Apple Computer 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 Apple Computer Inc filed Critical Apple Computer Inc
Publication of CN106201613A publication Critical patent/CN106201613A/zh
Application granted granted Critical
Publication of CN106201613B publication Critical patent/CN106201613B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及预热软件安装。已经提出了一种用于预热软件安装的方法和装置的某些实施例。在一个实施例中,在计算系统内计算环境的后台操作中,软件的更新包被从远程源下载到计算系统。随后,不提交软件更新,以隔离方式在所述后台操作中自动启动所述更新包的安装。

Description

预热软件安装
本申请是申请号为201180057791.6、国际申请日为2011年11月22日、名称为“预热软件安装”的发明专利申请的分案申请。
技术领域
本发明的实施例涉及将软件安装到计算机上,尤其涉及使用软件的新版本来更新计算系统。
背景技术
计算系统和各种软件应用的更新在现今的计算世界中是切实需要的。开发人员一直致力于改进我们使用的计算系统和应用的质量、效率和功能。传统地,为计算系统安装更新需要很长时间。进一步地,在更新安装期间,在计算系统上运行的其他应用或进程可能会被中断或干扰。于是,计算系统的用户在被提示时总是会推迟安装更新,以避免其工作长时间的中断。
发明内容
本公开的一些实施例包括自动下载软件的可用更新并启动所下载更新的安装。在一个实施例中,在计算系统内的计算环境的后台操作中,软件的更新包被从远程源下载到计算系统。随后,在不向计算系统提交软件更新的情况下以隔离方式在后台自动启动对更新包的安装。后台操作可以是在允许用户与控制最前用户界面元件(例如,在前窗口)并具有输入焦点(例如,键盘和鼠标或触摸输入被引至用户当前正与其交互的最前进程)的其他进程交互的同时被执行的操作。换句话说,虽然后台操作能够是用户可见的,但是前台进程或操作能够接收用户输入(例如,键盘、鼠标、触摸输入等)而后台操作则不能。
本公开的某些实施例包括一种预安装软件更新的方法。在一个实施例中,在不干扰计算系统上当前正运行进程的情况下,在该计算系统上仅执行对软件的一组更新的部分安装。随后,向计算系统的用户通知该组更新,进而整组更新的完全安装被推迟,直到用户肯定地允许或批准整组更新为止。
本公开的某些实施例包括一种预安装软件更新的装置。在一个实施例中,所述装置包括用于存储软件数据和指令的计算机可读存储设备、经由网络通信耦接至计算机器以下载对软件的更新的网络接口、以及处理设备。处理设备可操作用于在计算机可读存储设备上的保留区域中预安装所述更新,而不盖写现有的软件数据和指令。
本公开的某些实施例包括一种预安装软件更新的方法。在一个实施例中,软件更新经由在计算系统的后台操作中运行的进程被部分安装在计算系统上。随后向计算系统的用户通知更新。在一个替换实施例中,计算系统能够在后台操作之前或期间向用户通知所述后台操作。响应于用户批准更新,在计算系统上完成更新的安装。在某些实施例中,用户可以批准所述更新的一部分。作为响应,到目前为止执行用于预安装更新的工作可被撤销,并在随后仅安装批准的更新。
还描述执行一种或多种前述方法的各种设备以及在由处理系统执行时使处理系统执行这些方法的机器可读介质。
还描述其他方法、设备和计算机可读存储介质。
附图说明
如下的描述包括对具有借助本发明各实施例的实现示例给出的例示的附图的讨论。各附图应被理解为示例而非限制。如在此处使用的,对一个或多个“实施例”的参考会被理解为描述包括在本发明至少一个实现中的具体特征、结构或特性。于是,本文中出现的诸如“在某些实施例中”或“在一个替换实施例中”的短语描述了本发明的各种实施例和实现,并且不必全都指向同一实施例。尽管如此,它们也不是必须互斥的。
图1A-1B例示了根据各实施例用于在计算系统上进行软件更新的预热安装的处理的流程图。
图2A-2B例示了根据各实施例用于在计算系统上进行软件更新的预热安装的处理的流程图。
图3A-3B例示了根据各实施例用于在计算系统上进行软件更新的预热安装的处理的流程图。
图4是例示了可在预热软件安装中使用的计算系统内的计算机可读存储设备的一个实施例的框图。
图5是可在本公开的某些实施例中使用的计算设备的一个实施例。
具体实施方式
在此描述的实施例便于对计算系统的新软件和/或软件更新的安装。为了保持描述的清楚明了,在此讨论的实施例将频繁涉及为软件(例如,操作系统、用户应用等)安装更新。然而,各实施例不限于更新的安装。在此描述的方法、技术、系统和部件等还可针对新的应用使用。
在某些实施例中,在向计算系统的用户告知或通知更新之前,计算系统上软件更新的安装处理在尽可能不干扰计算系统上软件的当前版本的情况下被启动并执行。于是,所执行的安装处理的上述部分还可以被称为更新的预安装,或是更新安装的预热。在预热该更新安装之后,向用户通知更新并询问用户是否批准更新。如果用户批准更新,则安装处理完成以向计算系统提交更新。否则,如果用户拒绝更新,则可撤销在预热期间执行的工作。
在某些实施例中,如果用户批准部分更新,但拒绝其余更新,则可撤销预热期间执行的工作并可重启安装处理以仅安装批准的更新。在一个替换实施例中,预热可以包括多个更新的预定组合的预安装。如果由用户批准的更新组合是这些预定组合之一时,则一旦用户批准,就能够完成对该更新组合的安装。否则,可以撤销在预定更新组合的预安装期间执行的工作,并且可以重启安装处理以仅安装批准的更新。
通过在向用户通知更新之前执行更新安装的至少一部分,可以显著减少用户批准更新后仍需完成的更新安装工作。结果,用户察觉的安装更新所需时间变得显著缩短,并由此改善更新安装的用户体验。此外,因为安装处理的一部分或是几乎全部已在不干扰用户或在计算系统上运行的其他进程的情况下在后台执行,所以由安装更新导致的对用户的干扰得以减轻。由于用户察觉的安装时间的缩短以及对用户干扰的减轻,用户将更可能批准在计算系统上更新软件。
图1A-1B例示了根据各实施例用于在计算系统上进行软件更新的预热安装的处理的流程图。该处理可以通过包括软件、硬件、固件或上述任意组合的处理逻辑执行。例如,该处理可以由如下讨论的在图5中例示的计算设备实现的处理逻辑执行。
参见图1A,处理逻辑将计算系统连接至远程源以在计算系统的后台更新软件(处理框110)。远程源可以是经由无线网络和/或有线网络连接至计算系统的诸如服务器和个人计算机之类的另一计算设备。网络可以包括局域网(LAN)、广域网(WAN)和以太网等。对软件的更新可以包括对软件、软件的新版本、软件的安全补丁的更新。注意到处理逻辑在计算系统的后台中将计算系统连接至远程源,并由此不对正在计算系统内运行的当前进程产生干扰。因此,计算系统的用户可能不会察觉处理逻辑正在干什么。在某些实施例中,处理逻辑可以周期性地问询远程源以检测可用更新。
基于远程源处可用更新的元数据,处理逻辑确定哪个或哪些更新适用于计算系统(处理框112)。一些元数据的例子可以包括版本号、证书或授权信息、系统要求等。处理逻辑将合适更新的包从远程源下载到计算系统(处理框114)。
在某些实施例中,处理逻辑在计算系统的计算机可读存储设备(例如,盘)上的临时区域中启动对所下载的包的安装(处理框116)。处理逻辑还可以保留盘上的这一临时区域用以安装更新。此外,盘上的这一临时区域可以与盘上的其余区域相隔离,以使得在更新被提交之前,部分安装在这一临时区域内的更新不会盖写或干扰计算系统内的当前版本软件。由此,这一临时区域可被称为沙箱(sandbox),并且上述被部分安装的更新还可被称为是被放入沙箱的(sandboxed)。安装可以包括下载将作为安装处理的一部分而被解压的压缩文件;此外,安装处理可以包括在诸如磁性硬盘驱动器或非易失性半导体存储器之类的存储设备中布置包括可执行软件在内的文件。安装还可以包括创建或修改文件夹或目录、注册表(例如,在微软Windows中)、配置文件项、链接或快捷方式、以及这些项目的子集。处理逻辑可以使用下载到临时区域内的包来建立系统高速缓存(处理框118)。在某些实施例中,计算机可读存储设备内用于构造预启动状态的存储器组块可被节省,并在随后读回,并且能够在没有进一步麻烦的情况下被使用。可被串行化至盘的这一存储器组块就是高速缓存。例如,处理逻辑可以从包(可以是已被压缩和/或加密的)中提取更新的文件,在需要时解压和/或解密这些文件,并在随后在临时区域内以预定层级布置这些文件,镜像当前在计算系统中使用的系统高速缓存中类似文件的层级。
在某些实施例中,存在需要更新的两个不同的高速缓存,即:内核/kext高速缓存以及dyld共享的高速缓存。内核/kext高速缓存与需要在内核空间内运行的驱动程序代码(其可由计算系统的操作系统厂商和/或第三方提供)相关。dyld共享的高速缓存则与由计算系统的用户空间中的应用所使用的共享代码库相关。这两个高速缓存防止系统在随后的引导或应用装入循环期间运行进入常规的、更为耗时的启动处理。与高速缓存有关的更多细节可以在发明人为Michael Smith和Joseph Sokol,Jr.的题为"Method for Booting anOperating System"的美国专利No.7,607,000中找出,其中该专利通过引用藉此全文并入在此。
接下来,处理逻辑向计算系统的用户告知可用更新(处理框120)。上述处理可被称为更新的预安装或是安装更新的预热。在某些实施例中,处理逻辑可以产生用户界面(例如,图形用户界面)以显示通知用户可用更新的消息。用户界面还可以允许用户指示其是批准还是拒绝可用更新。在某些实施例中,用户界面可以包括允许用户选择可用更新的子集以进行批准或是拒绝的用户界面控制(例如,按钮、校验框、下拉菜单等)。换句话说,并非批准或是拒绝全部可用更新,用户可以通过仅选择某些更新进行安装来定制所述处理。
在预安装更新并通知用户更新可用之后,处理逻辑等待有关更新的用户输入(处理框122)。在框124,处理逻辑确定是否接收到任何用户输入。如果没有,则处理逻辑返回到框122以继续等待用户输入。否则,处理逻辑转到图1B的框126。
参见图1B,处理逻辑检查用户是否批准了全部可用更新的安装(处理框126)。如果是,则处理逻辑提交全部更新(处理框128)。例如,处理逻辑可以通过将在临时区域内建立的系统高速缓存交换到文件系统内以代替当前系统高速缓存来完成或结束更新的安装。在某些实施例中,处理逻辑可以将指向当前系统高速缓存的指针改为指向临时区域内的新建系统高速缓存,并且删除当前系统高速缓存。在某些实施例中,处理逻辑可以执行单粒操作(例如,推放操作)以删除当前系统高速缓存并将新建系统高速缓存移入当前系统高速缓存的位置,以代替当前系统高速缓存。与完成软件安装有关的进一步细节可以在发明人为Jack R.Matthew和John R.Chang的题为"Installation of Software onto a Computer"的美国专利申请12/242,348中找出,其中该专利申请通过引用藉此全文并入在此。可选地,处理逻辑可以在需要时重启计算系统以使更新有效(处理框130)。
在某些实施例中,如果用户在框126没有批准安装全部可用的更新,则处理逻辑可以进一步检查用户是否批准安装可用更新的子集(处理框132)。如果用户批准安装可用更新的子集,则处理逻辑可以撤销建立的系统高速缓存(处理框134)。例如,处理逻辑可以简单地删除在盘的临时区域内建立的系统高速缓存。随后,处理逻辑可以基于用户批准了哪些更新来重建系统高速缓存(处理框136)。处理逻辑于是可以仅提交用户批准的更新(处理框138)。在某些实施例中,处理逻辑可以将指向当前系统高速缓存的指针改为指向临时区域内的新建系统高速缓存,并且删除当前系统高速缓存。在某些实施例中,处理逻辑可以执行单粒操作(例如,推放操作)以删除当前系统高速缓存并将新建系统高速缓存移入当前系统高速缓存的位置,以代替当前系统高速缓存。可选地,处理逻辑可以在需要时重启计算系统以使更新有效(处理框140)。
如果在框132,处理逻辑确定用户甚至连可用更新的子集都不批准,即用户拒绝了全部可用更新,则处理逻辑可以撤销建立的系统高速缓存(处理框142)。在某些实施例中,处理逻辑可以将所下载的包保留在计算系统中以供将来使用(处理框144)。例如,处理逻辑可以在随后再次检查更新,并且发现第二组更新。进一步地,处理逻辑可以确定在前下载的某些包还需要安装该第二组更新,于是就可以在随后使用这些在前下载的包。
图2A-2B例示了根据各实施例用于在计算系统上进行软件更新的预热安装的处理的流程图。与前述处理类似,这一处理也可以通过包括软件、硬件、固件或上述任意组合的处理逻辑执行。例如,该处理可以由如下讨论的在图5中例示的计算设备实现的处理逻辑执行。
参见图2A,处理逻辑将计算系统连接至远程源以在计算系统的后台更新软件(处理框210)。远程源可以是经由无线网络和/或有线网络连接至计算系统的诸如服务器和个人计算机之类的另一计算设备。网络可以包括局域网(LAN)、广域网(WAN)和以太网等。对软件的更新可以包括对软件、软件的新版本、软件的安全补丁的更新。注意到处理逻辑在计算系统的后台中将计算系统连接至远程源,并由此不对正在计算系统内运行的当前进程产生干扰。因此,计算系统的用户可能不会察觉处理逻辑正在干什么。
基于远程源处可用更新的元数据,处理逻辑确定哪个或哪些更新适用于计算系统(处理框212)。一些元数据的例子已在上文中讨论。处理逻辑将合适更新的包从远程源下载到计算系统(处理框214)。
在某些实施例中,处理逻辑在计算系统的计算机可读存储设备上的临时区域中启动对下载的包的安装(处理框216)。对于每个可能的更新组合,处理逻辑使用下载到临时区域内的、被放入沙箱的包建立系统高速缓存(处理框218)。系统高速缓存的某些实施例的细节已在上文中讨论。为每个更新组合建立的系统高速缓存也被放入沙箱,即,该系统高速缓存与临时区域内建立的其他系统高速缓存隔离。应该注意到,由于这些系统高速缓存可以在安装时间建立,因此计算系统可以是动态的。换句话说,不同的内核扩展和库可以跨不同的部署存在。例如,可以存在两个系统,其各自具有同一操作系统的拷贝,但是一个拷贝可以具有支持硬件产品的第三方内核扩展,而另一个拷贝则不具有。在另一例中,可以存在两个计算系统,这两个计算系统都具有伴随可要求不同的dyld共享高速缓存的一个或多个预选用户应用一起的较新版本的系统共享库。
随后,处理逻辑向计算系统的用户告知可用更新(处理框220)。上述处理可被称为更新的预安装或是安装更新的预热。在某些实施例中,处理逻辑可以产生用户界面(例如,图形用户界面)以显示通知用户可用更新的消息。用户界面的某些实施例的细节已在上文中讨论。
在预安装更新并通知用户更新可用之后,处理逻辑等待有关更新的用户输入(处理框222)。在框224,处理逻辑确定是否接收到任何用户输入。如果没有,则处理逻辑返回到框222以继续等待用户输入。否则,处理逻辑转到图2B的框226。
参见图2B,处理逻辑检查用户是否批准了全部可用更新的安装(处理框226)。如果是,则处理逻辑提交全部更新(处理框228)。例如,处理逻辑可以通过将在临时区域内建立的系统高速缓存交换到文件系统内以代替当前系统高速缓存来完成或结束更新的安装。在某些实施例中,处理逻辑可以将指向当前系统高速缓存的指针改为指向临时区域内的新建系统高速缓存,并且删除当前系统高速缓存。在某些实施例中,处理逻辑可以执行单粒操作(例如,推放操作)以删除当前系统高速缓存并将新建系统高速缓存移入当前系统高速缓存的位置,以代替当前系统高速缓存。可选地,处理逻辑可以在需要时重启计算系统以使更新有效(处理框230)。
在某些实施例中,如果用户在框226没有批准安装全部可用的更新,则处理逻辑可以进一步检查用户是否批准安装可用更新的子集(处理框232)。如果用户批准安装可用更新的子集,则处理逻辑找出在临时区域内建立的与用户批准的更新组合相匹配的系统高速缓存(处理框234)。处理逻辑可以用找出的系统高速缓存代替当前系统高速缓存,以提交批准的更新组合(处理框236)。在某些实施例中,处理逻辑可以将指向当前系统高速缓存的指针改为指向临时区域内找出的系统高速缓存,并且删除当前系统高速缓存。在某些实施例中,处理逻辑可以执行单粒操作(例如,推放操作)以删除当前系统高速缓存并将找出的系统高速缓存移入当前系统高速缓存的位置,以代替当前系统高速缓存。处理逻辑可以进一步删除或移除在临时区域内建立的、用于其他更新组合的其余系统高速缓存。最后,处理逻辑可以在需要时重启计算系统可以使更新有效(处理框238)。因为系统高速缓存已在向用户通知更新之前被推测性地建立,所以用户察觉的更新时间(可以是从用户批准所选更新到所选更新被提交的时间)比常规更新安装时间要短。进一步地,在更新预安装期间推测性地建立系统高速缓存可以允许不同的内核扩展和库跨不同部署存在。
如果在框232,处理逻辑确定用户不批准任一可用更新,即用户拒绝了全部可用更新,则处理逻辑可以撤销建立的系统高速缓存(处理框242)。在某些实施例中,处理逻辑可以将所下载的包保留在计算系统中以供将来使用(处理框244)。例如,处理逻辑可以在随后再次检查更新,并且发现第二组更新。进一步地,处理逻辑可以确定在前下载的某些包还需要安装该第二组更新,于是就可以在随后使用这些在前下载的包。
图3A-3B例示了根据各实施例用于在计算系统上进行软件更新的预热安装的处理的流程图。与前述处理类似,这一处理也可以通过包括软件、硬件、固件或上述任意组合的处理逻辑执行。例如,该处理可以由如下讨论的在图5中例示的计算设备实现的处理逻辑执行。
参见图3A,处理逻辑将计算系统连接至远程源以在计算系统的后台更新软件(处理框310)。远程源可以是经由无线网络和/或有线网络连接至计算系统的诸如服务器和个人计算机之类的另一计算设备。网络可以包括局域网(LAN)、广域网(WAN)和以太网等。对软件的更新可以包括对软件、软件的新版本、软件的安全补丁的更新。注意到处理逻辑在计算系统的后台中将计算系统连接至远程源,并由此不对正在计算系统内运行的当前进程产生干扰。因此,计算系统的用户可能不会察觉处理逻辑正在干什么。
基于远程源处可用更新的元数据,处理逻辑确定哪个或哪些更新适用于计算系统(处理框312)。一些元数据的例子已在上文中讨论。处理逻辑将合适更新的包从远程源下载到计算系统(处理框314)。
在某些实施例中,处理逻辑在计算系统的计算机可读存储设备上的临时区域中启动对所下载的包的安装(处理框316)。对于一组预定的可能的更新组合,处理逻辑使用下载到临时区域内的、被放入沙箱的包,建立针对这些组合中的每一个组合的系统高速缓存(处理框318)。系统高速缓存的某些实施例的细节已在上文中讨论。典型地,该组预定的可能组合包括全部合适更新的组合以及合适更新的一个或多个流行组合。换句话说,处理逻辑推测性地建立多个系统高速缓存,并且其中的一个可被选择以提交随后由用户批准的更新。为每个更新组合建立的系统高速缓存也被放入沙箱,即,该系统高速缓存与临时区域内建立的其他系统高速缓存隔离。于是,处理逻辑向计算系统的用户告知可用更新(处理框320)。上述处理可被称为更新的预安装或是安装更新的预热。在某些实施例中,处理逻辑可以产生用户界面(例如,图形用户界面)以显示通知用户可用更新的消息。用户界面的某些实施例的细节已在上文中讨论。
在预安装更新并通知用户更新可用之后,处理逻辑等待有关更新的用户输入(处理框322)。在框324,处理逻辑确定是否接收到任何用户输入。如果没有,则处理逻辑返回到框322以继续等待用户输入。否则,处理逻辑转到图3B的框326。
参见图3B,处理逻辑检查用户是否批准了全部可用更新的安装(处理框326)。如果是,则处理逻辑提交全部更新(处理框328)。例如,处理逻辑可以通过将在临时区域内建立的系统高速缓存交换到文件系统内以代替当前系统高速缓存来完成或结束更新的安装。在某些实施例中,处理逻辑可以将指向当前系统高速缓存的指针改为指向临时区域内的新建系统高速缓存,并且删除当前系统高速缓存。在某些实施例中,处理逻辑可以执行单粒操作(例如,推放操作)以删除当前系统高速缓存并将新建系统高速缓存移入当前系统高速缓存的位置,以代替当前系统高速缓存。可选地,处理逻辑可以在需要时重启计算系统以使更新有效(处理框330)。
在某些实施例中,如果用户在框326没有批准安装全部可用的更新,则处理逻辑可以进一步检查用户是否批准安装可用更新的子集(处理框332)。如果用户批准安装可用更新的子集,随后处理逻辑检查批准的子集是否是预定组合之一(处理框333)。如果是,处理逻辑找出在临时区域内建立的、与用户批准的更新组合相匹配的系统高速缓存(处理框334)。处理逻辑可以用找出的系统高速缓存代替当前系统高速缓存,以提交批准的更新组合(处理框336)。在某些实施例中,处理逻辑可以将指向当前系统高速缓存的指针改为指向临时区域内找出的系统高速缓存,并且删除当前系统高速缓存。在某些实施例中,处理逻辑可以执行单粒操作(例如,推放操作)以删除当前系统高速缓存并将找出的系统高速缓存移入当前系统高速缓存的位置,以代替当前系统高速缓存。处理逻辑可以进一步删除或移除在临时区域内建立的、用于其他更新组合的其余系统高速缓存。最后,处理逻辑可以在需要时重启计算系统以使批准的更新有效(处理框338)。因为系统高速缓存已在向用户通知更新之前被推测性地建立,所以用户察觉的更新时间(可以是从用户批准所选更新到所选更新被提交的时间)比常规更新安装时间要短。进一步地,在更新预安装期间推测性地建立系统高速缓存可以允许不同的内核扩展和库跨不同部署存在。
但是,如果处理逻辑在框333确定批准的子集不是预定组合之一,随后处理逻辑可以撤销建立的全部系统高速缓存(处理框335),基于用户批准了哪些更新重建系统高速缓存(处理框339),并且仅提交经用户批准的更新(处理框340)。最后,处理逻辑可以在需要时重启计算系统以使批准的更新有效(处理框338)。
如果在框332,处理逻辑确定用户甚至不批准任一可用更新,即用户拒绝了全部可用更新,则处理逻辑可以撤销建立的系统高速缓存(处理框342)。在某些实施例中,处理逻辑可以将所下载的包保留在计算系统中以供将来使用(处理框344)。例如,处理逻辑可以在随后再次检查更新,并且发现第二组更新。进一步地,处理逻辑可以确定在前下载的某些包还需要安装该第二组更新,于是就可以在随后使用这些在前下载的包。
图4是例示了根据本发明某些实施例的可在预热软件安装中使用的计算系统内的计算机可读存储设备的一个实施例的框图。计算机可读存储设备400可以包括计算系统内的硬盘。计算机可读存储设备400存储计算系统的当前文件系统410。此外,保留与当前文件系统410隔离的临时区域用于更新的预安装。在更新的预安装期间,通过镜像当前文件系统410的层级而以目录层级组织和存储与更新相关联的文件,可以在临时区域420内建立系统高速缓存425。还可以在临时区域420内建立用于不同的更新组合的额外系统高速缓存。
如果用户批准全部更新,则在临时区域420中建立的系统高速缓存425可被交换到当前文件系统410内。如果用户拒绝了全部更新,则可以删除建立的系统高速缓存425。如果用户仅批准更新的子集,则可以删除建立的系统高速缓存425,并且可以经抓取建立批准的更新的子集。在某些实施例中,在已经建立的对应于预定更新组合的多个系统高速缓存的情况下,如果批准的更新子集正好是预定的更新组合之一,就可以使用建立的系统高速缓存之一来提交该批准的更新子集。预安装软件更新的某些实施例的细节已在上述讨论。
图5是例示了用于实践在此描述的各实施例的合适的计算环境的框图。一般地,这些部件旨在表示广义类型的硬件系统,包括但不限于:通用计算机系统(例如,服务器、个人计算机、膝上型计算机等)以及专用手持计算机设备(例如,个人数字助理(PDA)、智能电话等)。
计算系统500包括经由总线580相互耦接的处理器510、I/O设备540、主存储器520和闪存530。可以包括一个或多个系统存储器(RAM)和非易失性存储设备(例如,磁盘或光盘)的主存储器520存储供处理器510使用的指令和数据。此外,网络接口570和数据存储560经由总线580相互耦接。数据存储560存储在此描述的结构性数据(例如,联系人信息、日历等)。
计算系统500的各个部件可以在各实施例中被重新布置,并且某些实施例可以不要求或包括上述部件的全部。此外,系统500中还可以包括额外的部件,诸如额外的处理器(例如,数字信号处理器、图形处理器等)、存储设备、存储器、网络/通信接口等。
在某些实施例中,用于如上讨论根据本发明预热软件安装或预安装软件更新的方法和装置可被实现为由图5的计算系统500运行的一系列软件例程。这些软件例程包括将由诸如处理器510的硬件系统中的处理系统执行的多个指令系列。初始地,这些指令系列存储在数据存储设备560、处理器520和/或闪存530中。
在此描述的各部件可以是用于执行在此描述的各功能的途径。在此描述的每个部件包括软件、硬件或两者的组合。部件可被实现为软件模块、硬件模块、专用硬件(例如、专用硬件、专用集成电路(ASIC)、数字信号处理器(DSP)等)、嵌入式控制器、硬连线电路等。软件内容(例如,数据、指令、配置等)则可经由包括计算机可读介质的、提供表示可被执行的指令的内容的计算机可读介质的制品提供。所述内容可以导致计算机执行在此描述的各种功能/操作。计算机可读(或机器可读或电子可访问)介质包括以可由计算设备(例如,计算机、PAD、电子系统等)访问的形式提供(例如,存储和/或传送)信息的任何机构,诸如可记录/不可记录介质(例如,只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光学存储介质、闪存设备等)。所述内容可以是直接可执行的(例如,“对象”或“可执行”形式)、源代码等。计算机可读介质还可以包括可以从中下载内容的存储装置或数据库。计算机可读介质还可以包括在贩卖或递送之时具有存储在其上的内容的设备或产品。于是,具有所存储内容的设备的递送,或是供应经通信介质下载的内容可被理解为提供具有在此描述的这一内容的制品。
除了在此描述的内容之外,可以对本发明的公开实施例和实现做出各种修改而不背离本发明的范围。因此,在此的说明和例子应被理解为是示例性而非限制性的。本发明的范围应仅仅通过参考所附权利要求而得出。

Claims (22)

1.一种计算机实现的方法,包括:
通过后台操作,在计算系统上自动对软件执行一个或多个更新的组的部分安装,其中执行该组更新的部分安装包括:在所述计算系统内的计算机可读存储设备上的隔离区域中建立用于该组更新的系统高速缓存,所述系统高速缓存具有镜像在所述计算系统内使用的系统高速缓存的层级的层级;
在执行了该组更新的部分安装之后,发送该组更新可用的通知;
在接收到批准该组更新之后,完成该组更新的至少一部分的安装。
2.如权利要求1所述的方法,其中执行该组更新的部分安装包括:
在所述计算机可读存储设备上的隔离区域中建立用于该组更新的系统高速缓存,所述建立包括解压一个或多个文件。
3.如权利要求2所述的方法,其中完成该组更新的至少一部分的安装包括:
换入建立的所述系统高速缓存,以代替所述计算系统中的当前系统高速缓存。
4.如权利要求2所述的方法,其中,完成安装包括重启所述计算系统。
5.如权利要求4所述的方法,其中,完成安装包括换入建立的所述系统高速缓存以代替当前系统高速缓存。
6.如权利要求4所述的方法,其中,所述隔离区域为执行所述部分安装而预留。
7.如权利要求6所述的方法,所述方法还包括:
在所述计算系统中以后台操作下载该组更新。
8.如权利要求7所述的方法,所述方法还包括:
基于远程源处可用更新的元数据,确定哪些更新适用于所述计算系统。
9.如权利要求8所述的方法,其中,在确定哪些更新适用后下载该组更新。
10.如权利要求9所述的方法,其中,执行部分安装不盖写所述计算系统中使用的现有软件指令。
11.一种数据处理系统,包括:
用于通过后台操作,在计算系统上自动对软件执行一个或多个更新的组的部分安装的装置,其中执行该组更新的部分安装包括:在所述计算系统内的计算机可读存储设备上的隔离区域中建立用于该组更新的系统高速缓存,所述系统高速缓存具有镜像在所述计算系统内使用的系统高速缓存的层级的层级;
用于在执行了该组更新的部分安装之后,发送该组更新可用的通知的装置;
用于在接收到批准该组更新之后,完成该组更新的至少一部分的安装的装置。
12.如权利要求11所述的系统,其中,所述建立包括解压一个或多个文件。
13.如权利要求12所述的系统,还包括:
用于换入建立的所述系统高速缓存,以代替所述计算系统中的当前系统高速缓存的装置。
14.如权利要求12所述的系统,其中,完成安装包括重启所述计算系统。
15.如权利要求14所述的系统,其中,完成安装包括换入建立的所述系统高速缓存以代替当前系统高速缓存。
16.如权利要求14所述的系统,其中,所述隔离区域为执行所述部分安装而预留。
17.如权利要求16所述的系统,还包括:
用于在所述计算系统中以后台操作下载该组更新的装置。
18.如权利要求17所述的系统,还包括:
用于基于远程源处可用更新的元数据,确定哪些更新适用于所述计算系统的装置。
19.如权利要求18所述的系统,其中,在确定哪些更新适用后下载该组更新。
20.如权利要求19所述的系统,其中,执行部分安装不盖写所述计算系统中使用的现有软件指令。
21.一种计算系统,包括:
用于存储软件指令和数据的计算机可读存储设备;
耦接至所述计算机可读存储设备以下载对所述软件的更新的网络接口;
耦接至所述网络接口的一个或多个处理设备,所述一个或多个处理设备:
通过后台操作,在所述计算系统上自动对软件执行一个或多个更新的组的部分安装,其中执行该组更新的部分安装包括:在所述计算机可读存储设备上的隔离区域中建立用于该组更新的系统高速缓存,所述系统高速缓存具有镜像在所述计算系统内使用的系统高速缓存的层级的层级;
在执行了该组更新的部分安装之后,发送该组更新可用的通知;
在接收到批准该组更新之后,完成该组更新的至少一部分的安装。
22.如权利要求21所述的系统,其中所述一个或多个处理设备进一步通过重启所述计算系统来完成安装。
CN201610541344.2A 2010-12-01 2011-11-22 预热软件安装 Active CN106201613B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/958,236 2010-12-01
US12/958,236 US9378007B2 (en) 2010-12-01 2010-12-01 Pre-heated software installation
CN201180057791.6A CN103229144B (zh) 2010-12-01 2011-11-22 预热软件安装

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201180057791.6A Division CN103229144B (zh) 2010-12-01 2011-11-22 预热软件安装

Publications (2)

Publication Number Publication Date
CN106201613A true CN106201613A (zh) 2016-12-07
CN106201613B CN106201613B (zh) 2020-04-14

Family

ID=45418769

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201610541344.2A Active CN106201613B (zh) 2010-12-01 2011-11-22 预热软件安装
CN201180057791.6A Active CN103229144B (zh) 2010-12-01 2011-11-22 预热软件安装

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201180057791.6A Active CN103229144B (zh) 2010-12-01 2011-11-22 预热软件安装

Country Status (9)

Country Link
US (2) US9378007B2 (zh)
EP (1) EP2646907B1 (zh)
JP (1) JP5796755B2 (zh)
KR (2) KR101575695B1 (zh)
CN (2) CN106201613B (zh)
AU (1) AU2011336953B2 (zh)
BR (1) BR112013013286A2 (zh)
MX (1) MX336862B (zh)
WO (1) WO2012074848A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109413186B (zh) * 2018-10-31 2021-07-30 Oppo广东移动通信有限公司 应用程序更新方法、终端、服务器及系统

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8505003B2 (en) 2010-04-28 2013-08-06 Novell, Inc. System and method for upgrading kernels in cloud computing environments
US20130055234A1 (en) * 2011-08-30 2013-02-28 Verizon Patent And Licensing Inc. Media manager upgrading
US8826264B1 (en) * 2012-06-28 2014-09-02 Emc Corporation Non-disruptive upgrade of applications
US8855605B2 (en) 2012-09-25 2014-10-07 Dropbox Inc. Associating a particular account configuration during the out of box experience for a mobile device
US9727326B2 (en) 2013-03-15 2017-08-08 Apple Inc. Providing customized notifications for security software updates
US9672023B2 (en) 2013-03-15 2017-06-06 Apple Inc. Providing a unified update center for security software updates and application software updates
EP2827275A1 (en) * 2013-07-16 2015-01-21 Gemalto SA Method for transferring user data between two instances of an application
JP2015103105A (ja) 2013-11-26 2015-06-04 株式会社リコー 通信装置、通信システム、及び通信プログラム
JP2015103106A (ja) * 2013-11-26 2015-06-04 株式会社リコー 通信装置、及び通信プログラム
CN104092555B (zh) * 2013-12-04 2017-09-12 腾讯数码(天津)有限公司 一种更新参数值的方法、装置和系统
KR101651854B1 (ko) * 2013-12-26 2016-08-30 주식회사 엘지유플러스 푸시 메시지를 이용한 소프트웨어 업그레이드 방법 및 장치
CN104932916A (zh) * 2015-05-18 2015-09-23 杭州魔品科技有限公司 苹果应用快速安装方法
CN106557379B (zh) * 2015-09-30 2021-05-18 北京奇虎科技有限公司 一种静默安装包的生成方法和装置
US10083025B2 (en) * 2015-11-20 2018-09-25 Google Llc Dynamic update of an application in compilation and deployment with warm-swapping
US10209976B2 (en) 2015-12-30 2019-02-19 Dropbox, Inc. Automated application installation
WO2017139956A1 (zh) * 2016-02-18 2017-08-24 吴伟东 手机软件更新方法及系统
US10362013B2 (en) 2016-05-27 2019-07-23 Dropbox, Inc. Out of box experience application API integration
US10613849B2 (en) * 2016-09-23 2020-04-07 Visa International Service Association Update migration system and method
CN108733391A (zh) * 2017-04-18 2018-11-02 北京京东尚科信息技术有限公司 一种资源动态配置的方法和装置
US11379414B2 (en) * 2017-07-11 2022-07-05 Okera, Inc. Generation of data configurations for a multiple application service and multiple storage service environment
US10437580B2 (en) 2017-09-11 2019-10-08 Apple Inc. Software updating methods and systems
EP3915912A1 (en) * 2020-05-29 2021-12-01 KONE Corporation A people conveyor system and a method for updating software of a people conveyor component in a people conveyor system
CN112052022A (zh) * 2020-09-02 2020-12-08 深圳创维-Rgb电子有限公司 智能电视系统更新方法、装置、智能电视和可读存储介质
WO2023128127A1 (ko) * 2021-12-31 2023-07-06 엘지전자 주식회사 가전 기기의 업그레이드 방법 및 이를 구현하는 장치

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001006798A1 (en) * 1999-07-16 2001-01-25 Excel Switching Corporation Method and apparatus for in service software upgrade for expandable telecommunications system
EP1096445A2 (en) * 1999-11-01 2001-05-02 Citicorp Development Center, Inc. Method and system for installing and/or upgrading software on a self-service financial transaction terminal from a remote computer
US20020078142A1 (en) * 2000-12-20 2002-06-20 Microsoft Corporation Method and system for enabling offline detection of software updates
US20030130985A1 (en) * 2001-12-17 2003-07-10 Volker Driesen Systems, methods and articles of manufacture for upgrading a database with a shadow system
CN1790266A (zh) * 2004-12-14 2006-06-21 微软公司 用于下载更新的方法和系统
KR20060092277A (ko) * 2003-10-29 2006-08-22 퀄컴 인코포레이티드 실행하는 동안 애플리케이션을 업그레이드하기 위한 방법,소프트웨어 및 장치
CN1892587A (zh) * 2005-07-08 2007-01-10 福菱电子股份有限公司 一种嵌入式控制器及其更新固件的方法
US7210143B2 (en) * 2002-07-17 2007-04-24 International Business Machines Corporation Deployment of applications in a multitier compute infrastructure
JP2007148656A (ja) * 2005-11-25 2007-06-14 Fuji Xerox Co Ltd 情報処理装置、プログラム更新方法
CN101222534A (zh) * 2007-11-28 2008-07-16 连云港杰瑞深软科技有限公司 零售信息终端
US20080301667A1 (en) * 2007-05-30 2008-12-04 Google Inc. Dynamically Updating Software Applications on a Device
JP2009217656A (ja) * 2008-03-12 2009-09-24 Hitachi Ltd 情報機器におけるソフトウェア更新システム
US20100088281A1 (en) * 2008-10-08 2010-04-08 Volker Driesen Zero Downtime Maintenance Using A Mirror Approach
CN101895873A (zh) * 2010-07-14 2010-11-24 中兴通讯股份有限公司 移动终端的Java应用的更新方法、服务器和移动终端

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6437621A (en) * 1987-07-20 1989-02-08 Ibm Updating of program
US6151643A (en) 1996-06-07 2000-11-21 Networks Associates, Inc. Automatic updating of diverse software products on multiple client computer systems by downloading scanning application to client computer and generating software list on client computer
US6282709B1 (en) 1997-11-12 2001-08-28 Philips Electronics North America Corporation Software update manager
US6167567A (en) 1998-05-05 2000-12-26 3Com Corporation Technique for automatically updating software stored on a client computer in a networked client-server environment
US6353926B1 (en) 1998-07-15 2002-03-05 Microsoft Corporation Software update notification
EP1160666A3 (en) 2000-04-27 2005-03-23 Ncr International Inc. Switching versions of software in a system background
US7814476B2 (en) * 2002-10-31 2010-10-12 Oracle America, Inc. Systems and methods for updating software
US7607000B1 (en) 2003-05-13 2009-10-20 Apple Inc. Method for booting an operating system
US7574706B2 (en) 2003-12-15 2009-08-11 Microsoft Corporation System and method for managing and communicating software updates
US20060075001A1 (en) 2004-09-30 2006-04-06 Canning Jeffrey C System, method and program to distribute program updates
US20060130045A1 (en) 2004-11-19 2006-06-15 Jonathan Wesley Systems and methods for dynamically updating computer systems
US7581029B2 (en) * 2005-06-20 2009-08-25 Intel Corporation Updating machines while disconnected from an update source
US7970017B2 (en) 2005-07-13 2011-06-28 At&T Intellectual Property I, L.P. Peer-to-peer synchronization of data between devices
US7712094B2 (en) * 2005-12-22 2010-05-04 Alan Joshua Shapiro Method and apparatus for replicating a panoplex onto a storage medium from a master
US8578332B2 (en) * 2007-04-30 2013-11-05 Mark Murray Universal microcode image
US20090193409A1 (en) 2008-01-24 2009-07-30 Microsoft Corporation Per User Updates
US8694550B2 (en) 2008-06-06 2014-04-08 Apple Inc. Merging file directories
US8341384B2 (en) 2008-06-06 2012-12-25 Apple Inc. Installation of software onto a computer
JP2010191786A (ja) * 2009-02-19 2010-09-02 Fujitsu Ten Ltd 車載装置
US8484728B2 (en) * 2009-06-03 2013-07-09 Apple Inc. Managing securely installed applications
US8949737B2 (en) * 2009-10-28 2015-02-03 Red Hat, Inc. Centralized application package distribution
US20110265072A1 (en) 2010-04-27 2011-10-27 Jack Matthew Dynamic Installation of Files for Running Programs
US20110289499A1 (en) * 2010-05-19 2011-11-24 Microsoft Corporation Techniques to automatically update software applications

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001006798A1 (en) * 1999-07-16 2001-01-25 Excel Switching Corporation Method and apparatus for in service software upgrade for expandable telecommunications system
EP1096445A2 (en) * 1999-11-01 2001-05-02 Citicorp Development Center, Inc. Method and system for installing and/or upgrading software on a self-service financial transaction terminal from a remote computer
US7574481B2 (en) * 2000-12-20 2009-08-11 Microsoft Corporation Method and system for enabling offline detection of software updates
US20020078142A1 (en) * 2000-12-20 2002-06-20 Microsoft Corporation Method and system for enabling offline detection of software updates
US20030130985A1 (en) * 2001-12-17 2003-07-10 Volker Driesen Systems, methods and articles of manufacture for upgrading a database with a shadow system
US7210143B2 (en) * 2002-07-17 2007-04-24 International Business Machines Corporation Deployment of applications in a multitier compute infrastructure
KR20060092277A (ko) * 2003-10-29 2006-08-22 퀄컴 인코포레이티드 실행하는 동안 애플리케이션을 업그레이드하기 위한 방법,소프트웨어 및 장치
CN1790266A (zh) * 2004-12-14 2006-06-21 微软公司 用于下载更新的方法和系统
CN1892587A (zh) * 2005-07-08 2007-01-10 福菱电子股份有限公司 一种嵌入式控制器及其更新固件的方法
JP2007148656A (ja) * 2005-11-25 2007-06-14 Fuji Xerox Co Ltd 情報処理装置、プログラム更新方法
US20080301667A1 (en) * 2007-05-30 2008-12-04 Google Inc. Dynamically Updating Software Applications on a Device
CN101222534A (zh) * 2007-11-28 2008-07-16 连云港杰瑞深软科技有限公司 零售信息终端
JP2009217656A (ja) * 2008-03-12 2009-09-24 Hitachi Ltd 情報機器におけるソフトウェア更新システム
US20100088281A1 (en) * 2008-10-08 2010-04-08 Volker Driesen Zero Downtime Maintenance Using A Mirror Approach
CN101895873A (zh) * 2010-07-14 2010-11-24 中兴通讯股份有限公司 移动终端的Java应用的更新方法、服务器和移动终端

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109413186B (zh) * 2018-10-31 2021-07-30 Oppo广东移动通信有限公司 应用程序更新方法、终端、服务器及系统

Also Published As

Publication number Publication date
US20120144382A1 (en) 2012-06-07
CN103229144B (zh) 2016-06-01
MX2013005599A (es) 2013-06-13
KR101723763B1 (ko) 2017-04-05
US9378007B2 (en) 2016-06-28
KR20150143871A (ko) 2015-12-23
AU2011336953A1 (en) 2013-05-09
AU2011336953B2 (en) 2015-12-24
CN106201613B (zh) 2020-04-14
CN103229144A (zh) 2013-07-31
BR112013013286A2 (pt) 2016-09-06
KR101575695B1 (ko) 2015-12-08
JP5796755B2 (ja) 2015-10-21
KR20130085052A (ko) 2013-07-26
US20160306621A1 (en) 2016-10-20
US10489146B2 (en) 2019-11-26
WO2012074848A1 (en) 2012-06-07
MX336862B (es) 2016-02-04
EP2646907B1 (en) 2019-11-13
JP2013544416A (ja) 2013-12-12
EP2646907A1 (en) 2013-10-09

Similar Documents

Publication Publication Date Title
CN106201613A (zh) 预热软件安装
EP2820539B1 (en) Distribution of application files
KR101643022B1 (ko) 카탈로그-기반 소프트웨어 컴포넌트 관리
US11662996B2 (en) System and method for downgrading applications
US8639973B2 (en) System reset
EP3267308B1 (en) Application loading method and device
CN105138382A (zh) 一种Android系统升级的方法及终端
CN104375872A (zh) 一种安卓系统实现快速开机的方法及装置
US10338910B2 (en) Multi-tenant upgrading
CN102591716A (zh) 数据项管理器
CN107643898A (zh) 终端升级方法及装置
CN105765533A (zh) 用于固件虚拟化的方法和装置
US8578359B2 (en) Method and apparatus for reliable in-place update
CN104834541A (zh) 功能模块挂载方法、挂载系统及更新挂载系统的方法
CN103440285A (zh) 大型手机游戏系统及其数据库更新方法
CN110908734A (zh) 基于插件化的应用组合方法、装置、终端设备及存储介质
CN105867962A (zh) 系统升级的方法和装置
CN102073541B (zh) 数据访问方法及移动终端
JP2010211337A (ja) 電子マネー一括管理システム
CN105912264A (zh) 一种升级硬盘扩展器的方法及系统、一种硬盘扩展器
JP2014002600A (ja) プログラム、通信装置及びインストール方法
CN116166290A (zh) 触摸屏升级实现功能切换的方法、设备及可读存储介质
CN114281351A (zh) 应用操作方法、电子设备及存储介质
CN110489140A (zh) 软件升级方法、装置、计算机设备及计算机存储介质
CN105867966A (zh) 应用软件的安装方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant