CN102696014B - 更新软件产品的系统和方法 - Google Patents

更新软件产品的系统和方法 Download PDF

Info

Publication number
CN102696014B
CN102696014B CN201080034862.6A CN201080034862A CN102696014B CN 102696014 B CN102696014 B CN 102696014B CN 201080034862 A CN201080034862 A CN 201080034862A CN 102696014 B CN102696014 B CN 102696014B
Authority
CN
China
Prior art keywords
software product
viral software
edition
version
viral
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
CN201080034862.6A
Other languages
English (en)
Other versions
CN102696014A (zh
Inventor
B·鲍威尔
P·威伦
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.)
Keane Digital Co.
Original Assignee
Symantec Corp
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 Symantec Corp filed Critical Symantec Corp
Publication of CN102696014A publication Critical patent/CN102696014A/zh
Application granted granted Critical
Publication of CN102696014B publication Critical patent/CN102696014B/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
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

一种方法可以包括:接收一个请求以便安装一个软件产品的第二版本来覆盖该软件产品的一个第一版本,在该软件产品的第一版本运行的同时在休眠状态中安装该软件产品的第二版本,并且通过激活该软件产品的第二版本并使该软件产品的第一版本解除激活来切换该软件产品的第一和第二版本。在此还披露了不同的其他的方法、系统、以及计算机可读媒质。

Description

更新软件产品的系统和方法
背景技术
公司和个人会定期地升级或更换保护他们的计算系统的安全软件产品。可以使用各种常规技术来升级和更换安全软件产品。不幸地是,升级和更换安全软件产品的常规技术(例如微软安装程序(“MSI”)和微软补丁(“MSP”)技术)会使计算机系统在无安全产品运行的时段易受攻击。
安全产品的MSI更换经常涉及卸载现有的安全产品、重新启动其上安装了安全产品的计算系统、并且安装新的安全产品。直到安装并激活了新安全产品那一刻,计算系统在旧的安全产品的卸载期间是不受保护的。
安全产品的MSP升级将安全产品的第一版本转换为安全产品的第二版本。在升级期间,安全产品的运行过程会停止、更新、并然后重新启动。这样,安全产品所保护的系统在安全产品的更新期间可能易于受到攻击。因而需要一种更有效的方法来更换和/或更新软件产品。
发明内容
如以下将更详细说明的,本披露总体上涉及用于更新软件产品的系统和方法。如在此所使用的,短语“更新软件产品”通常是指升级和/或更换现有的软件产品。在一些实施方案中,一种方法可以包括:接收一个请求以便安装一个软件产品的一个第二版本来覆盖该软件产品的一个第一版本,在该软件产品的第一版本运行的同时在休眠状态中安装该软件产品的第二版本,并且通过激活该软件产品的第二版本并使该软件产品的第一版本解除激活来切换该软件产品的第一和第二版本。该软件产品可以包括安全软件产品。例如,该软件产品的第一版本可以包括一个反病毒应用程序的一个第一版本并且该软件产品的第二版本可以包括该反病毒应用程序的一个第二版本。
在某些实施方案中,该方法可以包括重新启动其上安装了该软件产品的第一和第二版本的一个计算系统。重新启动可以在安装软件产品的第二版本之后和激活软件产品的第二版本之前进行。根据不同的实施方案,软件产品的第二版本可以在计算系统的网络适配器启用之前在重新启动过程中激活。该方法可以包括使网络适配器解除启用,直到启用了软件产品的第二版本。
根据不同的实施方案,安装软件产品的第二版本可以包括安装软件产品的第二版本的一个或多个文件以及安装在启动过程中所需的软件产品的第二版本的一个或多个组件。在一些实施方案中,安装软件产品的第二版本可以包括通过安装不影响软件产品的第一版本的执行的软件产品的第二版本的一个或多个组件以及如果其安装会影响软件产品的第一版本的执行则阻止安装软件产品第二版本的一个或多个组件来部分地安装软件产品的第二版本。
在一个或多个实施方案中,使软件产品的第二版本解除激活可以包括修改软件产品的第一版本的一个或多个组件的状态,这样在一次重新启动后该一个或多个组件不会重新启动。根据不同的实施方案,安装软件产品的第二版本可以包括保存软件产品的第一版本的一个或多个设置并且切换软件产品的第一和第二版本可以包括将软件产品的第一版本的一个或多个设置导入到软件产品的第二版本中。
根据某些实施方案,安装软件产品的第二版本可以包括识别软件产品的第一版本和软件产品的第二版本之间的一组差异,并且切换软件产品的第一和第二版本可以包括使用该组差异来更新软件产品的第一版本的一个或多个组件以便与软件产品的第二版本一起使用。在不同的实施方案中,切换软件产品的第一和第二版本可以包括在软件产品的第一版本解除激活并且软件产品的第二版本激活后卸载软件产品的第一版本。在至少一个实施方案中,该方法可以具体地实施为在至少一个计算机可读存储媒质上的计算机可执行指令。
在某些实施方案中,一种方法可以包括接收一个请求以便安装安全软件产品的一个第二版本来覆盖安全软件产品的一个第一版本。该方法还可以包括通过安装不影响安全软件产品的第一版本的执行的安全软件产品的第二版本的一个或多个组件以及如果其安装会影响安全软件产品的第一版本的执行则阻止安装安全软件产品第二版本的一个或多个组件,在安全软件产品的第一版本运行的同时在休眠状态中安装安全软件产品的第二版本。
该方法进一步包括重新启动其上安装了安全软件产品的第一和第二版本的一个计算系统以及通过激活安全软件产品的第二版本和使安全软件产品的第一版本解除激活来切换安全软件产品的第一和第二版本。根据一些实施方案,该方法可以包括安装安全软件产品的第二版本的一个或多个文件以及安装启动过程中所需的安全软件产品的第二版本的一个或多个组件。额外地或可替代地,该方法可以包括修改安全软件产品的第一版本的一个或多个组件的状态,这样该一个或多个组件在重新启动计算系统后不会重新启动。
在某些实施方案中,一种系统可以包括:至少一个处理器;一个接口模块,该接口模块被编程为用于引导该处理器接收一个请求以便安装一个软件产品的一个第二版本来覆盖该软件产品的一个第一版本;一个安装模块,该安装模块被编程为用于引导该处理器在该软件产品的第一版本运行的同时在休眠状态中安装该软件产品的第二版本;以及一个切换模块,该切换模板被编程为用于引导该处理通过激活该软件产品的第二版本并使该软件产品的第一版本解除激活来切换软件产品的第一和第二版本。
在一些实施方案中,软件产品的第一版本可以包括一个反病毒应用程序的一个第一版本,并且软件产品的第二版本可以包括该反病毒应用程序的一个第二版本。根据不同的实施方案,该切换模块可以被编程为用于引导该处理器通过修改软件产品的第一版本的一个或多个组件的状态以便在一次重新启动后该一个或多个组件不会重新启动来使软件产品的第二版本解除激活。在至少一个实施方案中,该安装模块可以被编程为用于引导该处理器通过安装软件产品的第二版本的一个或多个文件和/或安装启动过程中所需的软件产品的第二版本的一个或多个组件来安装软件产品的第二版本。
来自上述任一个实施方案的多种特征可以根据在此说明的通用原理彼此相互结合使用。通过阅读以下的详细说明连同附图和权利要求,将会更加全面地理解这些以及其他的实施方案、特征和优点。
附图说明
这些附图展示了多个示例性实施方案并且是本说明书的一部分。这些附图与以下的说明一起展现并解释了本披露的不同原理。
图1是一种用于更新软件产品的示例性系统的框图。
图2是另一种用于更新软件产品的示例性系统的框图。
图3是一种用于更新软件产品的示例性方法的流程图。
图4是另一种用于更新软件产品的示例性方法的另一个流程图。
图5是一种示例性计算系统的框图,该计算系统能够实施在此说明和/或展示的这些实施方案中的一个或多个。
图6是一种示例性计算网络的框图,该计算网络能够实施在此说明和/或展示的这些实施方案中的一个或多个。
贯穿这些附图,相同的参考字符以及说明表示相似的但并不一定完全相同的要素。虽然在此说明的这些示例性实施方案可容许进行不同的修改以及多种替代形式,在此仍在附图中以举例的方式示出多个具体的实施方案并且对其进行了详细的说明。然而,在此说明的多个示例性实施方案并非旨在限于所披露的这些具体形式。相反,本披露覆盖落入所附权利要求范围内的所有修改形式、等效物、以及替代方案。
具体实施方式
如以下更为详细说明的,本披露总体上涉及用于更新软件产品的多种系统及方法。本披露的实施方案可以覆盖安装新的产品而无需在安装过程中卸载现有的产品。例如,一个计算系统可以在一个软件产品的一个第一版运行的同时在休眠状态中安装该软件产品的一个第二版本,并且可以通过激活该软件产品的第二版并使该软件产品的第一版本解除激活来切换该软件产品的第一和第二版本。
本披露的实施方案总体上应用于一个软件产品覆盖安装在另一个软件产品上的情形(即,每次只有一个产品版本可以运行的情形)在这种情形中,传统的安装工具典型地是在安装新软件产品之前卸载现有的软件产品,这会产生没有任何软件产品运行的时间段。对于安全软件产品(如病毒和数据保护产品),现有产品所保护的计算系统在卸载现有产品并且安装新产品时易于受到攻击。本披露的实施方案可以通过在软件产品的现有版本仍在运行的同时安装软件产品的新版本来消除和/或最小化软件产品停机时间。本披露的多个实施方案还提供了不同的其他特征和优点。
以下将参考图1至图2提供用于更新软件产品的示例性系统的详细描述。还将结合图3至图4提供相应的计算机实施的方法的详细说明。另外,将结合图5和图6对应地提供一种示例性计算系统和网络体系结构的详细说明,它们能够实施在此说明的这些实施方案中的一个或多个。
图1是一个用于更新软件产品的示例性系统100的框图。如图中所示,示例性系统100可以包括用于执行一或多个任务的一个或多个模块102。例如,如以下更为详细解释的,示例性系统100可以包括一个接口模块104,该接口模块被编程用于接收一个请求以便安装一个软件产品的第二版本来覆盖在该软件产品的一个第一版本。示例性系统100还可以包括一个安装模块106,该安装模块被编程用于在该软件产品的第一版本运行的同时在休眠状态中安装该软件产品的第二版本。
另外,如以下更为详细解释的,示例性系统100可以包括一个切换模块108,该切换模块被编程用于通过使该软件产品的第一版本解除激活并使该软件产品的第二版本激活来切换软件的第一和第二版本。尽管被展示为多个分离的元件,图1中的模块102中的一个或多个可以代表一个单一的模块或应用程序中的多个部分。
在某些实施方案中,图1中模块102中的一个或多个可以代表一个或多个软件应用程序或程序,这些软件应用程序或程序在由一个计算装置执行时可以使该计算装置执行一个或多个任务。例如,如以下更为详细解释的,模块102中的一个或多个可以代表在一个或多个计算装置上存储并被配置为在其上运行的多个软件模块,如图2所示的这些装置(例如,计算装置202和/或服务器206)、图5中的计算系统510、和/或图6中的示例性网络体系结构600的多个部分。图1中模块102中的一个或多个还可以代表被配置为执行一个或多个任务的一个或多个专用计算机的全部或多个部分。
如图1所示,示例性系统100还可以包括一个或多个数据库120。数据库120可以代表一个单一数据库或计算装置的多个部分或多个数据库或计算装置。在一个实施方案中,示例性系统100可以包括用于存储软件产品的第一版本和软件产品的第二版本之间差异的一个差异数据库122。示例性系统100还可以包括一个设置数据库124,该设置数据库用于存储从软件产品的第一版本转移到软件产品的第二版本的一个或多个设置。
图1中的数据库120可以代表一个或多个计算装置的一部分。例如,数据库120可以代表图2中服务器206的一部分、图5中计算系统510、和/或图6中示例性网络体系结构600的多个部分。可替代地,图1中的数据库120可以代表能够由一个计算装置访问的一个或多个物理上分离的装置,如图2中服务器206、图5中计算系统510、和/或图6中示例性网络体系结构600。
图1中的示例性系统100可以采用各种方式进行部署。例如,示例性系统100的全部或一部分可以代表云计算或基于网络的环境的多个部分,如图2所示的示例性系统200。云计算环境可以通过互联网提供不同的服务和应用程序。这些基于云的服务(例如,软件即服务、平台即服务、基础设施即服务等等)可以通过网络浏览器或其他的远程接口进行访问。在此所述的不同功能可以通过远程桌面环境或任何其他的基于云的计算环境来提供。
如图2所示,系统200可以包括与服务器206通过网络204进行通信的一个计算装置202。在一个实施方案中,计算装置202可以包括模块102中的一个或多个和/或数据库120中的一个或多个。计算装置202还可以包括一个软件产品的一个第一版本220和该软件产品的一个第二版本222。计算装置202可以执行模块102中的一个或多个,并且可以在覆盖软件产品的第一版本220写入软件产品的第二版本222的过程中使用数据库120中的一个或多个。在一些实施方案中,计算装置202可以从服务器206接收软件产品的第二版本222作为一个企业软件部署的一部分。可替代地,软件产品的第二版本222可以覆盖软件产品的第一版本220而写入,以作为直接在计算装置202上发起的安装的一部分。例如,软件产品的第二版本222可以由任意适当的传送机构来提供,包括CD、DVD、蓝光碟、USB装置、互联网、和/或本地网络。
计算装置202通常代表能够读取计算机可执行指令的任意类型或形式的计算装置。计算装置202的实例包括(但不限于)膝上型计算机、桌上型计算机、服务器、蜂窝电话、个人数字助理(PDA)、多媒体播放机、嵌入式系统、图5中相同的、示例性计算系统510的一个或多个的组合、或任意其他适当的计算装置。
服务器206通常代表能够对软件产品进行部署的任意类型和形式的计算装置。服务器206的实例包括(但不限于)被配置用于提供各种数据库服务和/或运行某些软件应用程序的应用程序服务器和数据库服务器。
网络204通常代表能够协助通信或数据传送的任何媒质或体系结构。网络204的实例包括(但不限于):内部网、广域网(WAN)、局域网(LAN)、个人区域网(PAN)、互联网、电力线通信(PLC)、蜂窝网络(例如GSM网络)、图6中的示例性网络体系结构600等等。网络204可以使用无线或有线连接来协助通信或数据传送。在一个实施方案中,网络204可以协助计算装置202和服务器206之间的通信。
图3是一种用于更新软件产品的示例性计算机实施的方法300的流程图。图3所示的步骤可以由任意适当的计算机可执行代码和/或计算系统来执行。在一些实施方案中,图3所示的步骤可以由图1中系统100和/或图2中系统200的这些组件中的一个或多个来执行。例如,在步骤302,接口模块104可以作为计算装置210的一部分来接收一个请求以便安装一个软件产品的一个第二版本来覆盖该软件产品的一个第一版本。在一些实施方案中,该请求可以接收自一个远程应用程序。例如,对软件产品的第二版本进行部署的一个服务器可以请求安装该软件产品。该请求还可以是来自包含软件产品的第二版本的一个安装包的请求。额外地或可替代地,该请求可以接收自信息技术(“IT”)管理员或其他用户。
如在此所用的,短语“软件产品”是指任意软件应用程序、可执行文件、安装包、或被编程用于在计算系统上安装并执行的其他计算机可执行代码。软件产品包括(但不限于)文字处理器、表格程序、生产力软件、安全软件(反病毒程序、防火墙、家长控制软件、数据丢失防护软件等)、以及各种其他类型的软件程序。短语“软件产品的第一版本”和“软件产品的第二版本”可以分别指代来自同一个公司的相同软件程序的旧版本和新版本。例如,软件产品的第一版本可以是反病毒程序的2008版,而软件产品的第二版本可以是相同程序的2009版。
可替代地,软件产品的第一和第二版本可以是执行相似功能的不同程序。例如,软件程序的第一版本可以是一个第一软件公司开发的防火墙应用程序,而软件程序的第二版本可以是一个第二软件公司开发的防火墙应用程序。在其他实施方案中,软件程序的第一和第二版本可以是来自相同公司的不同的但具有相关性的程序。例如,软件产品的第一版本可以是具有基本功能的基本计算机安全程序(例如反病毒程序),而软件产品的第二版本可以是具有更高级功能的高级计算机安全程序(例如互联网安全程序套件)。
如在此所用的,短语“安装一个软件产品的一个第二版本来覆盖该软件产品的一个第一版本”通常是指在一个软件产品的一个版本上覆盖安装该软件产品的另一个版本。覆盖安装通常是指安装一个软件应用程序的一个版本并卸载该软件应用程序的一个先前版本的安装过程。相比而言,其他安装过程可能不包括用一个产品的一个版本来替代该产品的另一个版本。这种安装过程包括向现有的软件产品安装补丁并且并行地安装一个软件产品的两个版本。覆盖安装不是指这些补丁安装和并行安装。
覆盖安装过程可以用在同一时刻只有一个软件产品的实例运行的情况中。例如,很多计算系统可以在同一时刻只允许一个防火墙软件程序运行。其他单实例安装情况包括安装两个相似的软件产品可能导致冲突的情况和/或可能导致系统不稳定的其他问题。
返回图3,在步骤304,安装模块106可以作为计算装置210的一部分在软件产品的第一版本正在运行的同时在休眠状态中安装软件产品的第二版本。安装模块106可以采用以下更为详细描述的各种方式来安装第二版本。如在此所用的,短语“休眠状态”是指至少是部分地安装但不执行的软件产品。安装模块106可以通过以下方式安装软件产品的第二版本:当软件产品的第一版本正在运行时,以不影响软件产品的第一版本的方式在休眠状态中安装软件产品的第二版本。
在一些实施方案中,安装模块106可以通过安装软件产品的第二版本的一个或多个文件来安装软件产品的第二版本。例如,安装模块106可以安装软件产品的第二版的一个或多个可执行文件和/或其他代码。安装模块106还可以安装软件产品的第二版本的一个或多个其他组件。例如,安装模块106可以安装软件产品的第二版本的一个或多个服务、驱动器、注册码、和/或其他组件。
安装模块106可以通过只安装不影响软件产品的第一版本的执行的软件产品的第二版本的文件和其他组件并通过如果其安装会可能影响软件产品的第一版本的执行则阻止安装软件产品的第二版本的一个或多个组件来部分地安装软件产品的第二版本。安装模块106可以识别在各种方式中不影响软件产品的第一版本的执行的软件产品的第二版本的组件。在一些实施方案中,安装模块106可以通过读取列表或其他数据库来识别这类组件,该列表或其他数据库识别在软件产品的第一版本正在运行时可安全安装的组件。
在其他实施方案中,安装模块106可以通过确定软件产品的第一版本是否正在使用与新组件相对应的组件来自动地识别可安全安装的软件产品的第二版本的一个或多个组件。例如,安装模块106可以阻止覆盖当前正在由软件产品的第一版本使用的驱动器。
根据某些实施方案,安装模块106可以识别软件产品的第一和第二版本之间的一组差异。该组差异可以是列表、差异文件、指令集、和/或识别软件产品的第一和第二版本之间一个或多个差异的任意其他信息集。该组差异可以识别一个或多个注册码、一个或多个服务、一个或多个快捷键、和/或需要在后续时间点(例如重新启动之后)上执行以切换软件产品的第一和第二版本的一个或多个动作。额外地或可替代地,该组差异可以识别一个或多个注册码、一个或多个服务、一个或多个快捷键、和/或可以在软件产品的第一版本正在运行时执行的一个或多个动作(即,如此前讨论的,不影响软件产品的第一版本执行的动作)。
安装模块106可以保存软件产品的第一版本的一个或多个设置。例如,安装模块106可以读取软件产品的第一版本的一个或多个设置,并将这些设置保存在一个数据库中,如设置数据库124。然后切换模块108可以从该数据库中读取这些设置并将这些设置导入到软件产品的第二版本中。因此,软件产品的第一版本的一个或多个设置(如用户定义的设置和/或其他设置)可以保存在软件产品的第二版本中。
在安装完成后(或在安装之前或过程中),安装模块106可以注册将切换软件产品的第一和第二版本的一项服务。该注册的服务(可以包括切换模块108)可以是执行模式进程(即,chkdsk进程)、核心驱动程序、系统服务、和/或任意其他适当的服务。
在步骤306,切换模块108作为计算装置210的一部分可以切换软件产品的第一和第二版本。切换模块108可以采用各种方式切换软件产品的第一和第二版本。例如,切换模块108可以通过激活软件产品的第二版本并使软件产品的第一版本解除激活来切换软件产品的第一和第二版本。如在此所用的,短语“激活软件产品的第二版本”通常是指使软件产品的第二版本的一个或多个进程运行和/或使软件产品的第二版本的一个或多个进程准备运行的任意程序。相反地,短语“使软件产品的第一版本解除激活”通常是指使软件产品的第一版本的一个或多个进程停止执行、使软件产品的第一版本的一个或多个进程准备终止执行、和/或修改软件产品的第一版本以便软件产品的第一版本在终止后不再重新启动的任意程序。
在一些实施方案中,切换模块108可以在软件产品的第一版本正在运行的同时修改软件产品的第一版本的一个或多个组件的状态,以便在重新启动后该一个或多个组件不会重新启动。例如,切换模块108可以改变软件产品的第一版本中一个或多个服务和/或驱动器的状态以便在系统重新启动后它们不运行。
切换模块108可以使用先前识别的软件产品的第一和第二版本之间的一组差异来更新软件产品的第一版本的一个或多个组件以便与软件产品的第二版本一起使用。例如,切换模块108可以更新软件产品的第二版本的一个或多个注册码(例如,通过添加新的密钥、删除旧的密钥和/或修改现有密钥)。额外地或可替代地,切换模块108可以更新(例如添加、删除和/或修改)软件产品的第二版本的一些或所有服务和/或驱动程序。切换模块108还可以更新软件产品的第二版本的一个或多个快捷键,包括符号链接。切换模块108可以进一步运行一个或多个自定义动作,如可修改安装过程之外的计算系统的自定义可执行程序。
根据某些实施方案,在软件产品的第一版本解除激活并且软件产品的第二版本激活后,切换模块108可以卸载和/或以其他方式清理软件产品的第一版本。例如,切换模块108可以移除与软件产品的第一版本相关的任意文件和其他数据。
图4是另一种用于更新安全软件产品的示例性计算机实施的方法的流程图,如反病毒应用程序、防火墙应用程序、数据丢失防护应用程序、和/或用于保护计算机系统和/或存储在计算系统上的数据的任意其他应用程序。图4所示的步骤可以由任何适当的计算机可执行代码和/或计算系统来执行。在一些实施方案中,图4所示的步骤可以由图1中系统100和/或图2中系统200的一个或多个组件来执行。例如,在步骤402,接口模块104可以作为计算装置210的一部分来接收一个请求以便安装一个安全软件产品的一个第二版本来覆盖该安全软件产品的一个第一版本。在步骤404,安装模块106可以安装不影响安全软件产品的第一版本的执行的安全软件产品的第二版本的一个或多个组件。步骤402和404类似于步骤302和304并可以采用图3描述的这些方式中的一种或多种来执行。
在步骤406,安装模块106可以修改软件产品的第一版本的一个或多个组件的状态,以便在重新启动后该一个或多个组件不会重新启动。例如,安装模块106可以修改软件产品的第一版本的一个或多个服务和/或驱动程序,以便在系统重新启动后它们不运行。这样一种过程对不能卸载和/或停止的服务和/或驱动程序尤其有用。可替代地,如果在重新启动后,使用执行模式进程来更新服务和/或驱动程序(在允许它们启动之前),那么在重新启动之前无需修改服务和驱动程序。
在步骤408,安装模块106可以使受软件产品的第一版本保护的计算系统重新启动。在一些实施方案中,重新启动可以在安装软件产品的第二版本之后和在激活软件产品的第二版本之前进行。在一些实施方案中,为了保护计算系统免受安全威胁,软件产品的第二版本可以在启动计算系统的一个或多个网络适配器之前在重新启动过程中激活。例如切换模块108可以使软件产品的第二版本在启动过程的初期(即,在激活网络适配器之前)激活可替代地,切换模块108可以使计算系统的一个或多个网络适配器解除启用,直到启用软件产品的第二版本。在软件产品的第一和第二版本正在切换的同时,切换模块108还可以执行任意其他适当的动作以保护计算系统,
在一些实施方案中,软件产品的第一版本在重新启动后可以不立即解除启用。例如,来自软件产品的第一版本的安全驱动程序(例如像反病毒和/或防火墙驱动程序)可以在第一次重新启动后运行。在第一次重新启动过程中,执行模式应用程序可以运行,这可以将软件产品的第一版本的一个或多个组件更新到软件产品的第二版本中。例如,可以再次点击执行模式应用程序而不影响它们的当前实例。计算系统的操作系统可以是全功能的(即,在第一次重新启动后完全载入)。在重新启动之后软件产品也可以不是完全载入的。在更新了软件产品的第一版本的组件后,可以将软件产品的第一版本设置为解除启用并且可以使软件产品的第二版本能够在第二次重新启动后启用并设置为运行。此时,执行模式应用程序可以在此时强制第二次重新启动。在这种情况中,软件产品的第一版本可以继续运行直到第二次重新启动后。
在步骤410,切换模块108可以切换安全软件产品的第一和第二版本。步骤410类似于图3的步骤306。因此,在步骤306的讨论中所披露的过程中的一个或多个也可以用于执行步骤410。
本披露的实施方案可以使安全产品的新版本能够覆盖安装在安全软件的现有版本上,其方式为使得不会使计算系统易受攻击。例如,在此描述的安装过程的执行方式为使得在使第一安全软件应用程序解除激活与使第二安全软件应用程序激活之间没有停机时间。
图5是一个示例性计算系统510的框图,该系统能够实施在此说明和/或展示的一个或多个实施方案。计算系统510广义上代表能够执行计算机可读指令的任何单处理器或多处理器的计算装置或系统。计算系统510的多个实例包括但不限于工作站、膝上型计算机、客户侧终端、服务器、分布式计算系统、手持装置、或任何其他计算系统或装置。在其最基本的配置中,计算系统510可以包括至少一个处理器514以及一个系统内存516。
处理器514总体上代表能够处理数据或解释并执行多个指令的任何类型或形式的处理单元。在某些实施方案中,处理器514可以从一个软件应用程序或模块中接收指令。这些指令可以使处理器514执行在此所说明和/或展示的这些示例性实施方案中的一个或多个的功能。例如,处理器514可以单独地或与其他元件相结合来执行和/或作为一种手段来执行在此描述的接收、安装、切换、重新启动、解除启用、阻止、修改、和/或卸载步骤中的一个或多个。处理器514还可以执行和/或作为一种手段来执行在此说明和/或展示的任何其他步骤、方法、或过程。
系统内存516总体上代表能够存储数据和/或其他计算机可读指令的任何类型或形式的易失性或非易失性存储装置或媒质。系统内存516的多个实例包括(但不限于)随机存取存储器(RAM)、只读存储器(ROM)、闪存、或任何其他适当的存储装置。尽管未作要求,在某些实施方案中计算系统510可以既包括一个易失性内存单元(例如像系统内存516)又包括一个非易失性存储装置(例如像以下详细说明的主存储装置532)。在一个实例中,图1模块102中的一个或多个可以载入到系统内存516中。
在某些实施方案中,示例性计算系统510还可以包括除了处理器514和系统内存516之外的一个或多个部件或元件。例如,如图5所示的,计算系统510可以包括一个内存控制器518、一个输入/输出(I/O)控制器520、以及一个通信接口522,它们各自均可以通过一个通信基础设施512而相互连接。通信基础设施512总体上代表能够协助在一种计算装置的一个或多个部件之间进行通信的任何类型或形式的基础设施。通信基础设施512的实例包括但不限于一条通信总线(例如ISA、PCI、PCIe、或类似总线)和一个网络。
内存控制器518总体上代表能够处理内存或数据或能够控制计算系统510的一个或多个部件之间通信的任何类型或形式的装置。例如,在某些实施方案中,内存控制器518可通过通信基础设施512控制处理器514、系统内存516、以及I/O控制器520之间的通信。在某些实施方案中,内存控制器可以单独地或与其他元件相结合来执行和/或作为一种手段来执行在此说明和/或者展示的步骤或特征中的一个或多个,如接收、安装、切换、重新启动、解除启用、阻止、修改、和/或卸载。
I/O控制器520总体上代表能够协调和/或控制一种计算装置的输入和输出功能的任何类型或形式的模块。例如,在一些实施方案中I/O控制器520可以控制或协助在计算系统510的一个或多个元件(如处理器514、系统内存516、通信接口522、显示适配器526、输入接口530、以及存储接口534)之间的数据传送。例如,I/O控制器520可以单独地或与其他元件相结合执行和/或作为一种手段来执行在此说明的接收、安装、切换、重新启动、解除启用、阻止、修改、和/或卸载步骤中的一个或多个。I/O控制器520还可用于执行和/或作为一种手段用于执行本披露中提出的其他步骤和特征。
通信接口522广义地代表能够协助示例性计算系统510与一个或多个附加装置之间进行通信的任何类型或形式的通信装置或适配器。例如,在某些实施方案中,通信接口522可以协助计算系统510与包括多个附加的计算系统的私人或公共网络之间的通信。通信接口522的实例包括而不限于有线网络接口(例如网络接口卡)、无线网络接口(例如无线网络接口卡)、调制解调器、以及任何其他适当的接口。在至少一个实施方案中,通信接口522可通过到网络(如互联网)的直接链接来提供到一台远程服务器的直接连接。通信接口522还可以间接地提供这种连接,例如通过局域网(如以太网)、个人局域网、电话或缆线网、蜂窝电话连接、卫星数据连接、或任何其他适当的连接。
在某些实施方案中,通信接口522还可以代表一种主机适配器,该主机适配器被配置为用于通过一条外部总线或通信信道协助计算系统510与一个或多个附加网络或存储装置之间的通信。主机适配器的实例包括但不限于SCSI主机适配器、USB主机适配器、IEEE1394主机适配器、SATA和eSATA主机适配器、ATA和PATA主机适配器、光纤通道接口适配器、以太网适配器等。通信接口522还可以允许计算系统510参与分布式计算或远程计算。例如,通信接口522可以从一个远程装置接收指令或向一个远程装置发送指令用于执行。在某些实施方案中,通信接口522可以单独地或与其他元件相结合执行和/或作为一种手段来执行在此说明的接收、安装、切换、重新启动、解除启用、阻止、修改、和/或卸载步骤中的一个或多个。通信接口522还可以用于执行和/或作为一种手段用于执行本披露中提出的其他步骤和特征。
如图5所示,计算系统510还可以包括通过一种显示适配器524连接到通信基础设施512上的至少一个显示装置526。显示装置524总体上代表能够视觉上显示由显示适配器526转发的信息的任何类型或形式的装置。类似地,显示适配器526总体上代表被配置为用于传送来自通信基础设施512(或来本领域中已知的帧缓冲器)的图形、文本、以及其他数据用于在显示装置524上进行显示的任何类型或形式的装置。
如图5所示,示例性计算系统510还可以包括通过一个输入接口530连接到通信基础设施512上的至少一个输入装置528。输入装置528总体上代表能够将计算机或者人类产生的输入提供到示例性计算系统510上的任何类型或者形式的输入装置。输入装置528的实例包括而不限于键盘、定点装置、语音识别装置、或任何其他输入装置。在至少一个实施方案中,输入装置528可以单独地或与其他元件相结合执行和/或作为一种手段来执行在此说明的接收、安装、切换、重新启动、解除启用、阻止、修改、和/或卸载步骤中的一个或多个。输入装置528还可以用于执行和/或作为一种手段来执行本披露中提出的其他步骤和特征。
如图5所示,示例性计算系统510还可以包括通过一个存储接口534连接到通信基础设施512上的一个主存储装置532以及一个备份存储装置533。存储装置532和533总体上代表能够存储数据和/或其他计算机可读指令的任何类型或形式的存储装置或媒质。例如,存储装置532与533可以是磁盘驱动器(例如,所谓的硬盘驱动器)、软盘驱动器、磁带驱动器、光盘驱动器、闪存驱动器、或者类似装置。存储接口534总体上代表用于在存储装置532和533与计算系统510的其他部件之间传送数据的任何类型或形式的接口或装置。在一个实例中,图1的数据库120可以存储在主存储装置532中。
在某些实施方案中,存储装置532和533可以被配置为用于读取自和/或写入到一个可移动存储单元,该可移动存储单元被配置为用于存储计算机软件、数据、或其他计算机可读信息。适当的可移动存储单元的实例包括但不限于软盘、磁带、光盘、闪存装置如等等。存储装置532和533还可以包括允许将计算机软件、数据、或其他计算机可读指令载入计算系统510中的其他类似的结构或装置。例如,存储装置532和533可以被配置用于读取和写入软件、数据、或其他计算机可读信息。存储装置532和533还可以作为计算系统510的一部分或可以是通过其他接口系统访问的一个分离的装置。
在某些实施方案中,存储装置532和533可用于例如单独地或与其他元件相结合执行和/或作为一种手段来执行在此说明的接收、安装、切换、重新启动、解除启用、阻止、修改、和/或卸载步骤中的一个或多个。存储装置532和533还可以被用于执行和/或作为一种手段用于执行本披露提出的其他步骤和特征。
很多其他装置或子系统可以连接到计算系统510上。相反,图5中所示的所有部件和装置不必都存在以实现在此所说明和/或示出的实施方案。以上提到的这些装置和子系统还能够以不同于图5中所示的方式进行相互连接。计算系统510还可使用任何数目的软件、固件、和/或硬件的配置。例如,在此披露的示例性实施方案中的一个或多个可以被编码为一种计算机可读媒质上的计算机程序(还称为计算机软件、软件应用程序、计算机可读指令、或计算机控制逻辑)。短语“计算机可读媒质”总体上是指能够存储或携带计算机可读指令的任何形式的装置、载体、或媒质。计算机可读媒质的实例包括但不限于传输型媒质,如载波,以及物理媒质,如磁性存储媒质(例如,硬盘驱动器和软盘驱动器)、光存储媒质(例如,CD-ROM或DVD-ROM)、电子存储媒质(例如,固态驱动器和闪存媒质)、以及其他分布式系统。
包括计算机程序的计算机可读媒质可以被载入计算系统510中。然后在计算机可读媒质上存储的全部或一部分计算机程序可以被存储到系统内存516和/或存储装置532和533的不同部分中。当由处理器514执行时,载入到计算系统510中的一个计算机程序可以致使处理器514执行和/或作为一种手段用于执行在此所说明和/或展示的一个或多个示例性实施方案的多种功能。额外地或可替代地,在此所说明和/或展示的示例性实施方案中的一个或多个可以在固件和/或硬件中实施。例如计算系统510可被配置用作一种专用集成电路(ASIC),它被适配为用于实施在此所披露的这些示例性实施方案中的一个或多个。
图6是一个示例性的网络体系结构600的框图,其中,客户系统610、620、以及630与服务器640和645可连接到一个网络650上。客户系统610、620、和630总体上代表任何类型或形式的计算装置或系统,例如图5中的示例性计算系统510。在一个实例中,客户系统610可以包括图1的系统100。
类似地,服务器640和645总体上代表被配置为用于提供不同的数据库服务和/或运行某种软件应用程序的计算装置或系统,如应用程序服务器或数据库服务器。网络650总体上代表任何电信或计算机网络;例如,它包括:内部网、广域网(WAN)、局域网(LAN)、个人区域网(PAN)、或互联网。
如图6所示,一个或多个存储装置660(1)-(N)可直接附接到服务器640上。类似地,一个或多个存储装置670(1)-(N)可直接附接到服务器645上。存储装置660(1)-(N)和存储装置670(1)-(N)总体上代表能够存储数据和/或其他计算机可读指令的任何类型或形式的存储装置或媒质。在某些实施方案中,存储装置660(1)-(N)和存储装置670(1)-(N)可代表被配置为用于使用不同协议(例如NFS、SMB、或CIFS)来与服务器640和645进行通信的网络附联存储(NAS)装置。
服务器640和645还可以连接到一种存储区域网络(SAN)光纤680上。SAN光纤680总体上代表能够协助多个存储装置之间互相通信的任何类型或形式的计算机网络或体系结构。SAN光纤680可以协助在服务器640和645与多个存储装置690(1)-(N)和/或一个智能存储阵列695之间的通信。SAN光线680还可通过网络650以及服务器640和645协助客户系统610、620、和630与存储装置690(1)-(N)和/或智能存储阵列695之间的通信,其方式为使得存储装置690(1)-(N)和阵列695对于客户系统610、620、和630表现为好像是本地附联的装置。如同存储装置660(1)-(N)和存储装置670(1)-(N),存储装置690(1)-(N)和智能存储阵列695总体上代表能够存储数据和/或其他计算机可读指令的任何类型或形式的存储装置或媒质。
在某些实施方案中,参见图5的示例性计算系统510,通信接口(如图5中的通信接口522)可以用于在每个客户端系统610、620、和630以及网络650之间提供连接。例如,客户端系统610、620、和630通过一个网络浏览器或其他客户端软件可以能够访问服务器640或645上的信息。此类软件可以允许客户端系统610、620、和630访问由服务器640、服务器645、存储装置660(1)-(N)、存储装置670(1)-(N)、存储装置690(1)-(N)、或智能存储阵列695托管的数据。虽然图6描述了使用一个网络(如互联网)来交换数据,在此说明和/或展示的实施方案并不局限于互联网或任何特定的基于网络的环境。
在至少一个实施方案中,在此披露的示例性实施方案中的一个或多个的全部或一部分可被编码为一种计算机程序并且由服务器640、服务器645、存储装置660(1)-(N)、存储装置670(1)-(N)、存储装置690(1)-(N)、智能存储阵列695、或它们中的任意组合加载并执行。在此披露的示例性实施方案中的一个或多个的全部或一部分还可以被编码成为一种计算机程序,它存储在服务器640中、由服务器645来运行、并在网络650上分发给客户端系统610、620、和630。因此,网络体系结构600可以单独地或与其他元件相结合执行和/或作为一种手段来执行在此说明的接收、安装、切换、重新启动、解除启用、阻止、修改、和/或者卸载步骤中的一个或多个。网络体系结构600还可以用于执行和/或作为一种手段来执行本披露中提出的其他步骤和特征。
如以上所述,计算系统510和/或网络体系结构600的一个或者多个部件可以单独地亦或与其他元件相结合地执行和/或作为一种手段来执行一种用于更新软件产品的示例性方法的一个或多个步骤。
虽然以上披露使用了多个具体的框图、流程图、以及实例阐明了不同的实施方案,在此说明和/或展示的每个框图部件、流程图步骤、操作、和/或部件都可以单独地和/或共同地使用一个大范围的硬件、软件、或者固件(或者它们的任何组合)配置来实施。另外,在其他部件之中所包括的任何部件的披露都应该看作本质上是示例性的,因为可以实施许多其他的体系结构来达到同样的功能。
在此说明和/或展示的进程的参数以及步骤的顺序仅仅是以举例的方式给出并且可以按希望来更改。例如,虽然在此展示和/或说明的这些步骤可以按照一个具体的顺序来示出或讨论,但这些步骤并非必须按照所展示或者所讨论的顺序来执行。在此说明和/或展示的不同的示例性方法还可以省略在此说明或展示的一个或者多个步骤或者还可以包括除所披露的那些之外的额外步骤。
虽然不同的实施方案在此已经在全功能性计算系统的背景下进行了说明和/或展示,这些示例性实施方案中的一个或者多个能够以多种形式作为一个程序产品来分发,而无论实际用于进行该分发的计算机可读媒质的具体形式如何。在此披露的这些实施方案还可以通过使用执行一些特定任务的软件模块来实施。这些软件模块可以包括脚本、成批文件、或者其他可执行文件,它们可以存储在一种计算机可读的存储媒质上或者在一种计算系统中。在一些实施方案中,这些软件模块可以将一个计算系统配置用于实施在此披露的一个或者多个示例性的实施方案。
另外,在此所述的这些模块中的一个或多个可以将数据、物理装置、和/或物理装置的表示从一种形式转换到另一种形式。例如,模块102中的一个或多个可以将软件产品的第一版本转换成为软件产品的第二版本。
已经提供了以上说明用于使本领域的其他普通技术人员能够最好地使用在此披露的这些示例性实施方案的不同方面。这种示例性说明并非旨在是穷尽性的或者被限制在所披露的任何准确的形式上。许多修改与变更都是可能的而不背离本披露的精神与范围。应该认为在此披露的这些实施方案在所有方面都是展示性的而非限制性的。应该参照所附权利要求及其等效物来确定本披露的范围。
除非另外说明,如在本说明书与权利要求中所使用的,术语“一种”或“一个”将被解释为“至少一个”的意思。此外,为便于使用,如在本说明书以及权利要求中所使用的文字“包含”和“具有”是可以互换的并且具有与文字“包括”相同的含义。

Claims (15)

1.一种用于更新反病毒软件产品的计算机实施的方法,该方法的至少一部分是由包括至少一个处理器的一个计算装置来执行的,该方法包括:
接收一个请求以便安装该反病毒软件产品的一个第二版本来覆盖该反病毒软件产品的一个第一版本作为覆盖安装过程的一部分,在该覆盖安装过程中一次仅能够运行该反病毒软件产品的单一实例;
在该反病毒软件产品的第一版本正在运行的同时,在休眠状态中安装该反病毒软件产品的第二版本作为该覆盖安装过程的一部分,该安装步骤通过以下子步骤进行:
通过确定该反病毒软件产品的第一版本没有正在使用与该反病毒软件产品的第二版本的一个或多个组件相对应的组件,来自动地识别不影响该反病毒软件产品的第一版本的执行的该反病毒软件产品的第二版本的一个或多个组件;
安装不影响该反病毒软件产品的第一版本的执行的该反病毒软件产品的第二版本的一个或多个组件;
如果其安装会影响该反病毒软件产品的第一版本的执行则阻止安装该反病毒软件产品的第二版本的一个或多个组件;
通过激活该反病毒软件产品的第二版本并使该反病毒软件产品的第一版本解除激活来切换该反病毒软件产品的第一和第二版本。
2.如权利要求1所述的方法,进一步包括:
执行一个计算系统的一个第一重新启动,在该计算系统上安装了该反病毒软件产品的第一和第二版本;
在该第一重新启动的过程中,运行一个执行模式应用程序,该应用程序将该反病毒软件产品的第一版本的一个或多个组件更新为该反病毒软件产品的第二版本;
在该第一重新启动后运行该反病毒软件产品的第一版本的一个或多个安全驱动程序。
3.如权利要求2所述的方法,进一步包括:
在该反病毒软件产品的第一版本的一个或多个组件进行更新之后,设置以下两者:1)使该反病毒软件产品的第一版本在一个第二重新启动后解除启用,并且2)使该反病毒软件产品的第二版本在该第二重新启动后启用;
通过该执行模式应用程序强制该第二重新启动,其中
该反病毒软件产品的第一版本继续运行直到该第二重新启动之后。
4.如权利要求3所述的方法,其中:
运行将该反病毒软件产品第一版本的一个或多个组件更新为该反病毒软件产品的第二版本的一个执行模式应用程序包括将一个指针更改为指向这些组件之一而不影响该组件的一个当前实例。
5.如权利要求2所述的方法,进一步包括:
使该计算系统的一个网络适配器解除启用直到该反病毒软件产品的第二版本被激活,其中该反病毒软件产品的第二版本是在该计算系统的网络适配器被启用前在该第一重新启动的过程中被激活的。
6.如权利要求1所述的方法,其中安装该反病毒软件产品的第二版本包括:
安装该反病毒软件产品的第二版本的一个或多个文件;
安装在一个启动过程中所需的该反病毒软件产品的第二版本的一个或多个组件。
7.如权利要求1所述的方法,其中安装该反病毒软件产品的第二版本包括通过读取一个列表来识别不影响该反病毒软件产品的第一版本的执行的该反病毒软件产品的第二版本的多个组件,该列表标识了在该反病毒软件产品的第一版本正在运行时可安全安装的多个组件。
8.如权利要求1所述的方法,其中:
安装该反病毒软件产品的第二版本包括保存该反病毒软件产品的第一版本的一个或多个设置;
切换该反病毒软件产品的第一和第二版本包括将该反病毒软件产品的第一版本的该一个或多个设置导入到该反病毒软件产品的第二版本中。
9.如权利要求1所述的方法,其中:
安装该反病毒软件产品的第二版本包括识别该反病毒软件产品的第一版本与该反病毒软件产品的第二版本之间的一组差异;
切换该反病毒软件产品的第一和第二版本包括使用该组差异来更新该反病毒软件产品的第一版本的一个或多个组件以便与该反病毒软件产品的第二版本一起使用。
10.如权利要求1所述的方法,其中:
安装该反病毒软件产品的第二版本包括通过确定该反病毒软件产品的第一版本是否正在使用该反病毒软件产品的第二版本的可安全安装的一个或多个组件来自动地识别该一个或多个组件。
11.一种用于更新反病毒软件产品的计算机实施的方法,该方法的至少一部分是由包括至少一个处理器的一个计算装置来执行的,该方法包括:
接收一个请求以便安装该反病毒软件产品的一个第二版本来覆盖该反病毒软件产品的一个第一版本作为覆盖安装过程的一部分,在该覆盖安装过程中一次仅能够运行该反病毒软件产品的单一实例;
在该反病毒软件产品的第一版本正在运行的同时,在休眠状态中安装该反病毒软件产品的第二版本作为该覆盖安装过程的一部分,该安装步骤通过以下子步骤进行:
通过确定该反病毒软件产品的第一版本没有正在使用与该反病毒软件产品的第二版本的一个或多个组件相对应的组件来自动地识别不影响该反病毒软件产品的第一版本的执行的该反病毒软件产品的第二版本的一个或多个组件;
安装不影响该反病毒软件产品的第一版本的执行的该反病毒软件产品的第二版本的一个或多个组件;
如果其安装会影响该反病毒软件产品的第一版本的执行则阻止安装该反病毒软件产品第二版本的一个或多个组件;
重新启动一个计算系统,在该计算系统上安装了该反病毒软件产品的第一和第二版本;
通过激活该反病毒软件产品的第二版本并使该反病毒软件产品的第一版本解除激活来切换该反病毒软件产品的第一和第二版本。
12.如权利要求11所述的方法,其中安装该反病毒软件产品的第二版本包括:
安装该反病毒软件产品的第二版本的一个或多个文件;
安装在一个启动过程中所需的该反病毒软件产品的第二版本的一个或多个组件。
13.一种用于更新反病毒软件产品的计算机实施的系统,包括:
至少一个处理器;
一个接口模块,该接口模块被编程为用于引导该处理器接收一个请求以便安装一个反病毒软件产品的一个第二版本来覆盖该反病毒软件产品的一个第一版本作为覆盖安装过程的一部分,在该覆盖安装过程中一次仅能够运行该反病毒软件产品的单一实例;
一个安装模块,该安装模块被编程为用于引导该处理器在该软件产品的第一版本正在运行的同时,在休眠状态中安装该反病毒软件产品的第二版本作为该覆盖安装过程的一部分,该安装步骤通过以下子步骤进行:
通过确定该反病毒软件产品的第一版本没有正在使用与该反病毒软件产品的第二版本的一个或多个组件相对应的组件,来自动地识别不影响该反病毒软件产品的第一版本的执行的该反病毒软件产品的第二版本的一个或多个组件;
安装不影响该反病毒软件产品的第一版本的执行的该反病毒软件产品的第二版本的一个或多个组件;
如果其安装会影响该反病毒软件产品的第一版本的执行则阻止安装该反病毒软件产品第二版本的一个或多个组件;
一个切换模块,该切换模块被编程为用于引导该处理器通过激活该反病毒软件产品的第二版本并使该反病毒软件产品的第一版本解除激活来切换该反病毒软件产品的第一和第二版本。
14.如权利要求13所述的系统,其中该切换模块被编程为用于引导该处理器通过修改该反病毒软件产品的第一版本的一个或多个组件的一种状态以便在一个计算系统重新启动后该反病毒软件产品的第一版本的该一个或多个组件不会重新启动来使该反病毒软件产品的第一版本解除激活,在该计算系统上安装了该反病毒软件产品的第一和第二版本。
15.如权利要求13所述的系统,其中该安装模块被编程为用于引导该处理器通过以下操作来安装该反病毒软件产品的第二版本:
安装该反病毒软件产品的第二版本的一个或多个文件;
安装在一个启动过程中所需的该反病毒软件产品的第二版本的一个或多个组件。
CN201080034862.6A 2009-08-10 2010-08-06 更新软件产品的系统和方法 Active CN102696014B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/538,622 US8589904B2 (en) 2009-08-10 2009-08-10 Systems and methods for updating a software product
US12/538622 2009-08-10
PCT/US2010/044696 WO2011019601A1 (en) 2009-08-10 2010-08-06 System and method for updating a software product

Publications (2)

Publication Number Publication Date
CN102696014A CN102696014A (zh) 2012-09-26
CN102696014B true CN102696014B (zh) 2016-02-17

Family

ID=42942151

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080034862.6A Active CN102696014B (zh) 2009-08-10 2010-08-06 更新软件产品的系统和方法

Country Status (6)

Country Link
US (2) US8589904B2 (zh)
EP (1) EP2465029B1 (zh)
JP (1) JP5646629B2 (zh)
CN (1) CN102696014B (zh)
CA (1) CA2770419C (zh)
WO (1) WO2011019601A1 (zh)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9690562B2 (en) * 2010-02-26 2017-06-27 Red Hat, Inc. Detecting computing processes requiring reinitialization after a software package update
US8997085B2 (en) * 2011-06-24 2015-03-31 International Business Machines Corporation Image delta-based upgrade of complex stack in software appliance
US8635425B1 (en) * 2011-08-31 2014-01-21 Amazon Technologies, Inc. Upgrading computing devices
WO2013096527A1 (en) 2011-12-22 2013-06-27 Abbvie Inc. Application security framework
US9268663B1 (en) * 2012-04-12 2016-02-23 Amazon Technologies, Inc. Software testing analysis and control
US9058428B1 (en) 2012-04-12 2015-06-16 Amazon Technologies, Inc. Software testing using shadow requests
US9043903B2 (en) 2012-06-08 2015-05-26 Crowdstrike, Inc. Kernel-level security agent
US9164753B2 (en) 2013-01-08 2015-10-20 Sap Se Generating software updates
US9280338B1 (en) * 2013-03-11 2016-03-08 Amazon Technologies, Inc. Dynamic application updates
US9158518B2 (en) * 2013-03-11 2015-10-13 Blackberry Limited Collaborative application development environment using a connected device
US9588750B2 (en) * 2013-03-22 2017-03-07 International Business Machines Corporation Pseudo program use during program installation
US9773264B2 (en) 2013-03-26 2017-09-26 Blackberry Limited Method for providing composite user interface controls and an online storefront for same
US9383986B2 (en) * 2013-06-18 2016-07-05 Disney Enterprises, Inc. Safe low cost web services software deployments
JP2015138335A (ja) * 2014-01-21 2015-07-30 ローム株式会社 メモリ制御回路
US10289405B2 (en) 2014-03-20 2019-05-14 Crowdstrike, Inc. Integrity assurance and rebootless updating during runtime
CN104182344B (zh) * 2014-08-25 2017-02-15 腾讯科技(深圳)有限公司 一种覆盖安装测试方法及装置
TWI568605B (zh) * 2014-09-17 2017-02-01 Tire pressure sensor software and the same version of the update system and update methods
US9841971B1 (en) * 2015-03-11 2017-12-12 Intuit, Inc. Embedding software updates into content retrieved by applications
US9740531B2 (en) * 2015-06-29 2017-08-22 Lookout, Inc. Coordinating multiple components
US10339316B2 (en) 2015-07-28 2019-07-02 Crowdstrike, Inc. Integrity assurance through early loading in the boot phase
CN105183503B (zh) * 2015-08-12 2018-10-12 浪潮(北京)电子信息产业有限公司 一种安全软件的安全升级方法及装置
US10021171B2 (en) 2015-12-01 2018-07-10 Cisco Technology, Inc. Zero-downtime cloud connector upgrades
US10110434B2 (en) 2015-12-01 2018-10-23 Cisco Technology, Inc. Cloud orchestrated cloud connector upgrades
US10477915B2 (en) 2016-03-01 2019-11-19 Hbn Shoe, Llc Device for high-heeled shoes and method of constructing a high-heeled shoe
US10579361B1 (en) 2016-12-14 2020-03-03 Juniper Networks, Inc Systems and methods for efficiently updating software installed on network devices
US10289401B1 (en) * 2016-12-30 2019-05-14 Juniper Networks, Inc Systems and methods for efficiently downgrading operating systems installed on network devices
US10534598B2 (en) * 2017-01-04 2020-01-14 International Business Machines Corporation Rolling upgrades in disaggregated systems
US11153164B2 (en) 2017-01-04 2021-10-19 International Business Machines Corporation Live, in-line hardware component upgrades in disaggregated systems
JP6897203B2 (ja) * 2017-03-22 2021-06-30 日本電気株式会社 組み込み装置および組み込み装置の制御方法
CN107479933A (zh) * 2017-08-21 2017-12-15 惠州Tcl移动通信有限公司 一种移动终端应用程序升级方法、存储设备及移动终端
US11245669B1 (en) * 2019-09-16 2022-02-08 Juniper Networks, Inc. Firewall filter comprising one or more objects
US20210382705A1 (en) * 2020-06-08 2021-12-09 Acronis International Gmbh Systems and methods for seamless software migration
US11902264B2 (en) 2020-06-22 2024-02-13 Vmware, Inc. Path selection for data packets encrypted based on an IPSEC protocol
US11762644B2 (en) * 2021-05-10 2023-09-19 International Business Machines Corporation Agentless installation for building deployments
US11956213B2 (en) * 2022-05-18 2024-04-09 VMware LLC Using firewall policies to map data messages to secure tunnels
CN115640034B (zh) * 2022-11-28 2023-06-02 荣耀终端有限公司 数据存储方法和设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001001252A1 (en) * 1999-06-30 2001-01-04 Microsoft Corporation System and method for protecting shared system files
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
CN101408846A (zh) * 2008-11-24 2009-04-15 深圳华为通信技术有限公司 一种杀毒软件升级的方法及相应的终端和系统

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5410703A (en) * 1992-07-01 1995-04-25 Telefonaktiebolaget L M Ericsson System for changing software during computer operation
US5845077A (en) * 1995-11-27 1998-12-01 Microsoft Corporation Method and system for identifying and obtaining computer software from a remote computer
US5922072A (en) * 1997-01-03 1999-07-13 Ncr Corporation Method and apparatus for creating alternate boot environments in a computer
US7107329B1 (en) * 1999-05-21 2006-09-12 Lucent Technologies Inc. In networks of interconnected router nodes for routing data traffic, a method of and system for imperceptibly upgrading router node software and the like without traffic interruption
US6698017B1 (en) * 1999-07-16 2004-02-24 Nortel Networks Limited Software migration on an active processing element
US6738826B1 (en) * 2000-02-24 2004-05-18 Cisco Technology, Inc. Router software upgrade employing redundant processors
US6658489B1 (en) * 2000-03-29 2003-12-02 International Business Machines Corporation Method for replacing a device driver during system operation
TW518513B (en) * 2001-03-28 2003-01-21 Synq Technology Inc System and method to update an executing application software by modular way
JP4222590B2 (ja) * 2001-07-18 2009-02-12 株式会社東芝 サーバ・システム、クライアント・システム、ソフトウェアストリーミング方法及びプログラム
US7246349B2 (en) * 2001-08-31 2007-07-17 Telefonaktiebolaget Lm Ericsson (Publ) Migration support mechanism in open service and open mobile architecture
US7174547B2 (en) * 2002-03-25 2007-02-06 Ciena Corporation Method for updating and restoring operating software in an active region of a network element
JP4336852B2 (ja) * 2002-12-18 2009-09-30 株式会社 インテック・ネットコア 計算装置、計算プログラム及び計算方法
US6978452B2 (en) * 2003-04-02 2005-12-20 Beach Unlimited Llc Upgrading digital media servers
US7698700B2 (en) * 2003-04-17 2010-04-13 International Business Machines Corporation System quiesce for concurrent code updates
ATE387659T1 (de) * 2003-07-21 2008-03-15 Alcatel Lucent Verfahren und system zur ersetzung der software
KR100584448B1 (ko) * 2004-01-19 2006-05-26 삼성전자주식회사 바이너리 위치정보를 이용한 임베디드 소프트웨어 원격다운로드방법 및 시스템
US7921419B2 (en) * 2004-05-12 2011-04-05 Oracle International Corporation Method and mechanism for managing incompatible changes in a distributed system
US7509676B2 (en) * 2004-07-30 2009-03-24 Electronic Data Systems Corporation System and method for restricting access to an enterprise network
US8146072B2 (en) * 2004-07-30 2012-03-27 Hewlett-Packard Development Company, L.P. System and method for updating software on a computer
US8146073B2 (en) * 2004-09-30 2012-03-27 Microsoft Corporation Updating software while it is running
JP2006106825A (ja) * 2004-09-30 2006-04-20 Nippon Digital Kenkyusho:Kk ソフトウェア更新方法、端末装置およびサーバ装置
US8255362B2 (en) * 2005-06-08 2012-08-28 rPath Methods, systems, and computer program products for provisioning software using local changesets that represent differences between software on a repository and a local system
US7581029B2 (en) * 2005-06-20 2009-08-25 Intel Corporation Updating machines while disconnected from an update source
JP2007025906A (ja) * 2005-07-13 2007-02-01 Konica Minolta Business Technologies Inc インストール支援方法、ワークフロー作成支援方法
JP2007066132A (ja) * 2005-09-01 2007-03-15 Ricoh Co Ltd プログラムシステム
US7823145B1 (en) * 2006-03-31 2010-10-26 Vmware, Inc. Updating software on dormant disks
US20080244552A1 (en) * 2007-03-27 2008-10-02 Telefonaktiebolaget Lm Ericsson (Publ) Upgrading services associated with high availability systems
JP4539677B2 (ja) * 2007-04-23 2010-09-08 コニカミノルタビジネステクノロジーズ株式会社 画像形成装置、プログラム更新システム、プログラム更新方法およびプログラム更新プログラム
US8806472B2 (en) * 2007-09-27 2014-08-12 Ericsson Ab In-service software upgrade utilizing metadata-driven state translation
JP5111129B2 (ja) * 2008-01-22 2012-12-26 キヤノン株式会社 情報処理装置、情報処理システム、情報処理方法、及び、プログラム
US8898660B2 (en) * 2008-11-25 2014-11-25 Fisher-Rosemount Systems, Inc. Systems and methods to provide customized release notes during a software system upgrade of a process control system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001001252A1 (en) * 1999-06-30 2001-01-04 Microsoft Corporation System and method for protecting shared system files
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
CN101408846A (zh) * 2008-11-24 2009-04-15 深圳华为通信技术有限公司 一种杀毒软件升级的方法及相应的终端和系统

Also Published As

Publication number Publication date
US20110035740A1 (en) 2011-02-10
US8819666B2 (en) 2014-08-26
WO2011019601A1 (en) 2011-02-17
US8589904B2 (en) 2013-11-19
CA2770419A1 (en) 2011-02-17
EP2465029A1 (en) 2012-06-20
JP2013502005A (ja) 2013-01-17
JP5646629B2 (ja) 2014-12-24
CN102696014A (zh) 2012-09-26
EP2465029B1 (en) 2015-03-18
US20140026129A1 (en) 2014-01-23
CA2770419C (en) 2019-08-27

Similar Documents

Publication Publication Date Title
CN102696014B (zh) 更新软件产品的系统和方法
CN102792307B (zh) 在虚拟环境中提供网络访问控制的系统和方法
US10146635B1 (en) Virtual machine backup
CN102754104B (zh) 在相关计算系统之间共享计算操作结果的系统和方法
US10599419B2 (en) Secure firmware updates using virtual machines to validate firmware packages
EP2199939B1 (en) Context-aware real-time computer-protection systems and methods
CN102782639B (zh) 使复制目标能够回收瘦供给存储系统上未使用的存储空间的系统和方法
US20110010756A1 (en) Virtual application program system, storing device, method for executing virtual application program and method for protecting virtual environment
US20070220032A1 (en) Method and apparatus for implementing a software installation process
US8997085B2 (en) Image delta-based upgrade of complex stack in software appliance
WO2014176150A1 (en) Systems and methods for replacing application methods at runtime
EP2893481B1 (en) Systems and methods for detecting illegitimate applications
EP3066562B1 (en) Systems and methods for updating system-level services within read-only system images
CN104823160A (zh) 虚拟机-保留主机更新
US9858434B2 (en) System and method for erasing a storage medium
US8225316B1 (en) Methods and systems for creating and applying patches for virtualized applications
WO2020222959A1 (en) Snapshot recovery states
US20100268925A1 (en) System and method for populating a dedicated system service repository for an information handling system
US8997077B1 (en) Systems and methods for remediating a defective uninstaller during an upgrade procedure of a product
CN112559006A (zh) 企业客户端自动升级方法、系统、设备及存储介质
CN112463240B (zh) 一种重启进入WinPE的方法
US10210004B2 (en) Method of providing at least one data carrier for a computer system and computer system including service processor independently operable from a main processor of the computer system
Maglycz Analys av möjlig modernisering av tekniskt system på Bucher Emhart Glass: Automation system på Bucher Emhart Glass
CN117891570A (zh) 网络边缘控制设备迁移至鸿蒙系统的方法、装置和存储介质
CN117931509A (zh) 自动os回滚

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: California, USA

Patentee after: Norton weifuke Co.

Address before: California, USA

Patentee before: Symantec Corp.

CP01 Change in the name or title of a patent holder
CP02 Change in the address of a patent holder

Address after: Arizona, USA

Patentee after: Norton weifuke Co.

Address before: California, USA

Patentee before: Norton weifuke Co.

CP02 Change in the address of a patent holder
CP01 Change in the name or title of a patent holder

Address after: Arizona

Patentee after: Keane Digital Co.

Address before: Arizona

Patentee before: Norton weifuke Co.

CP01 Change in the name or title of a patent holder