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

文档序号:6350071阅读:217来源:国知局
专利名称:更新软件产品的系统和方法
更新软件产品的系统和方法
背景技术
公司和个人会定期地升级或更换保护他们的计算系统的安全软件产品。可以使用各种常规技术来升级和更换安全软件产品。不幸地是,升级和更换安全软件产品的常规技术(例如微软安装程序(“MSI”)和微软补丁( “MSP”)技木)会使计算机系统在无安全产品运行的时段易受攻击。安全产品的MSI更换经常涉及卸载现有的安全产品、重新启动其上安装了安全产品的计算系统、并且安装新的安全产品。直到安装并激活了新安全产品那一刻,计算系统在旧的安全产品的卸载期间是不受保护的。安全产品的MSP升级将安全产品的第一版本转换为安全产品的第二版本。在升级期间,安全产品的运行过程会停止、更新、并然后重新启动。这样,安全产品所保护的系统在安全产品的更新期间可能易于受到攻击。因而需要ー种更有效的方法来更换和/或更新软件产品。·

发明内容
如以下将更详细说明的,本披露总体上涉及用于更新软件产品的系统和方法。如在此所使用的,短语“更新软件产品”通常是指升级和/或更换现有的软件产品。在ー些实施方案中,ー种方法可以包括接收ー个请求以便安装ー个软件产品的ー个第二版本来覆盖该软件产品的ー个第一版本,在该软件产品的第一版本运行的同时在休眠状态中安装该软件产品的第二版本,并且通过激活该软件产品的第二版本并使该软件产品的第一版本解除激活来切换该软件产品的第一和第二版本。该软件产品可以包括安全软件产品。例如,该软件产品的第一版本可以包括ー个反病毒应用程序的ー个第一版本并且该软件产品的第二版本可以包括该反病毒应用程序的ー个第二版本。在某些实施方案中,该方法可以包括重新启动其上安装了该软件产品的第一和第ニ版本的一个计算系统。重新启动可以在安装软件产品的第二版本之后和激活软件产品的第二版本之前进行。根据不同的实施方案,软件产品的第二版本可以在计算系统的网络适配器启用之前在重新启动过程中激活。该方法可以包括使网络适配器解除启用,直到启用了软件产品的第二版本。根据不同的实施方案,安装软件产品的第二版本可以包括安装软件产品的第二版本的一个或多个文件以及安装在启动过程中所需的软件产品的第二版本的ー个或多个组件。在一些实施方案中,安装软件产品的第二版本可以包括通过安装不影响软件产品的第一版本的执行的软件产品的第二版本的一个或多个组件以及如果其安装会影响软件产品的第一版本的执行则阻止安装软件产品第二版本的一个或多个组件来部分地安装软件产品的第二版本。在一个或多个实施方案中,使软件产品的第二版本解除激活可以包括修改软件产品的第一版本的一个或多个组件的状态,这样在一次重新启动后该ー个或多个组件不会重新启动。根据不同的实施方案,安装软件产品的第二版本可以包括保存软件产品的第一版本的ー个或多个设置并且切換软件产品的第一和第二版本可以包括将软件产品的第一版本的一个或多个设置导入到软件产品的第二版本中。根据某些实施方案,安装软件产品的第二版本可以包括识别软件产品的第一版本和软件产品的第二版本之间的ー组差异,并且切換软件产品的第一和第二版本可以包括使用该组差异来更新软件产品的第一版本的一个或多个组件以便与软件产品的第二版本一起使用。在不同的实施方案中,切換软件产品的第一和第二版本可以包括在软件产品的第一版本解除激活并且软件产品的第二版本激活后卸载软件产品的第一版本。在至少ー个实施方案中,该方法可以具体地实施为在至少ー个计算机可读存储媒质上的计算机可执行指令。在某些实施方案中,ー种方法可以包括接收ー个请求以便安装安全软件产品的一个第二版本来覆盖安全软件产品的ー个第一版本。该方法还可以包括通过安装不影响安全软件产品的第一版本的执行的安全软件产品的第二版本的一个或多个组件以及如果其安 装会影响安全软件产品的第一版本的执行则阻止安装安全软件产品第二版本的一个或多个组件,在安全软件产品的第一版本运行的同时在休眠状态中安装安全软件产品的第二版本。该方法进ー步包括重新启动其上安装了安全软件产品的第一和第二版本的ー个计算系统以及通过激活安全软件产品的第二版本和使安全软件产品的第一版本解除激活来切换安全软件产品的第一和第二版本。根据ー些实施方案,该方法可以包括安装安全软件产品的第二版本的一个或多个文件以及安装启动过程中所需的安全软件产品的第二版本的ー个或多个组件。额外地或可替代地,该方法可以包括修改安全软件产品的第一版本的一个或多个组件的状态,这样该ー个或多个组件在重新启动计算系统后不会重新启动。在某些实施方案中,ー种系统可以包括至少ー个处理器;ー个接ロ模块,该接ロ模块被编程为用于引导该处理器接收ー个请求以便安装ー个软件产品的ー个第二版本来覆盖该软件产品的ー个第一版本;ー个安装模块,该安装模块被编程为用于引导该处理器在该软件产品的第一版本运行的同时在休眠状态中安装该软件产品的第二版本;以及ー个切换模块,该切换模板被编程为用于引导该处理通过激活该软件产品的第二版本并使该软件产品的第一版本解除激活来切換软件产品的第一和第二版本。在一些实施方案中,软件产品的第一版本可以包括ー个反病毒应用程序的ー个第一版本,并且软件产品的第二版本可以包括该反病毒应用程序的ー个第二版本。根据不同的实施方案,该切换模块可以被编程为用于引导该处理器通过修改软件产品的第一版本的一个或多个组件的状态以便在一次重新启动后该ー个或多个组件不会重新启动来使软件产品的第二版本解除激活。在至少ー个实施方案中,该安装模块可以被编程为用于引导该处理器通过安装软件产品的第二版本的一个或多个文件和/或安装启动过程中所需的软件产品的第二版本的一个或多个组件来安装软件产品的第二版本。来自上述任一个实施方案的多种特征可以根据在此说明的通用原理彼此相互结合使用。通过阅读以下的详细说明连同附图和权利要求,将会更加全面地理解这些以及其他的实施方案、特征和优点。


这些附图展示了多个示例性实施方案并且是本说明书的一部分。这些附图与以下的说明一起展现并解释了本披露的不同原理。图I是ー种用于更新软件产品的示例性系统的框图。图2是另ー种用于更新软件产品的示例性系统的框图。图3是ー种用于更新软件产品的示例性方法的流程图。图4是另ー种用于更新软件产品的示例性方法的另ー个流程图。图5是ー种示例性计算系统的框图,该计算系统能够实施在此说明和/或展示的这些实施方案中的ー个或多个。图6是ー种示例性计算网络的框图,该计算网络能够实施在此说明和/或展示的 这些实施方案中的ー个或多个。贯穿这些附图,相同的參考字符以及说明表示相似的但并不一定完全相同的要素。虽然在此说明的这些示例性实施方案可容许进行不同的修改以及多种替代形式,在此仍在附图中以举例的方式示出多个具体的实施方案并且对其进行了详细的说明。然而,在此说明的多个示例性实施方案并非g在限于所披露的这些具体形式。相反,本披露覆盖落入所附权利要求范围内的所有修改形式、等效物、以及替代方案。
具体实施例方式如以下更为详细说明的,本披露总体上涉及用于更新软件产品的多种系统及方法。本披露的实施方案可以覆盖安装新的产品而无需在安装过程中卸载现有的产品。例如,一个计算系统可以在ー个软件产品的ー个第一版运行的同时在休眠状态中安装该软件产品的ー个第二版本,并且可以通过激活该软件产品的第二版并使该软件产品的第一版本解除激活来切换该软件产品的第一和第二版本。本披露的实施方案总体上应用于一个软件产品覆盖安装在另ー个软件产品上的情形(即,毎次只有一个产品版本可以运行的情形)在这种情形中,传统的安装工具典型地是在安装新软件产品之前卸载现有的软件产品,这会产生没有任何软件产品运行的时间段。对于安全软件产品(如病毒和数据保护产品),现有产品所保护的计算系统在卸载现有产品并且安装新产品时易于受到攻击。本披露的实施方案可以通过在软件产品的现有版本仍在运行的同时安装软件产品的新版本来消除和/或最小化软件产品停机时间。本披露的多个实施方案还提供了不同的其他特征和优点。以下将參考图I至图2提供用于更新软件产品的示例性系统的详细描述。还将结合图3至图4提供相应的计算机实施的方法的详细说明。另外,将结合图5和图6对应地提供ー种示例性计算系统和网络体系结构的详细说明,它们能够实施在此说明的这些实施方案中的ー个或多个。图I是ー个用于更新软件产品的示例性系统100的框图。如图中所示,示例性系统100可以包括用于执行一或多个任务的一个或多个模块102。例如,如以下更为详细解释的,示例性系统100可以包括ー个接ロ模块104,该接ロ模块被编程用于接收ー个请求以便安装一个软件产品的第二版本来覆盖在该软件产品的ー个第一版本。示例性系统100还可以包括ー个安装模块106,该安装模块被编程用于在该软件产品的第一版本运行的同时在休眠状态中安装该软件产品的第二版本。
另外,如以下更为详细解释的,示例性系统100可以包括ー个切换模块108,该切换模块被编程用于通过使该软件产品的第一版本解除激活并使该软件产品的第二版本激活来切换软件的第一和第二版本。尽管被展示为多个分离的元件,图I中的模块102中的一个或多个可以代表一个单ー的模块或应用程序中的多个部分。在某些实施方案中,图I中模块102中的一个或多个可以代表ー个或多个软件应用程序或程序,这些软件应用程序或程序在由一个计算装置执行时可以使该计算装置执行ー个或多个任务。例如,如以下更为详细解释的,模块102中的一个或多个可以代表在一个或多个计算装置上存储并被配置为在其上运行的多个软件模块,如图2所示的这些装置(例如,计算装置202和/或服务器206)、图5中的计算系统510、和/或图6中的示例性网络体系结构600的多个部分。图I中模块102中的ー个或多个还可以代表被配置为执行一个或多个任务的一个或多个专用计算机的全部或多个部分。如图I所示,示例性系统100还可以包括ー个或多个数据库120。数据库120可以代表一个单ー数据库或计算装置的多个部分或多个数据库或计算装置。在一个实施方案中,示例性系统100可以包括用于存储软件产品的第一版本和软件产品的第二版本之间差 异的ー个差异数据库122。示例性系统100还可以包括一个设置数据库124,该设置数据库用于存储从软件产品的第一版本转移到软件产品的第二版本的ー个或多个设置。图I中的数据库120可以代表一个或多个计算装置的一部分。例如,数据库120可以代表图2中服务器206的一部分、图5中计算系统510、和/或图6中示例性网络体系结构600的多个部分。可替代地,图I中的数据库120可以代表能够由ー个计算装置访问的ー个或多个物理上分离的装置,如图2中服务器206、图5中计算系统510、和/或图6中示例性网络体系结构600。图I中的示例性系统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所示的步骤可以由图I中系统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)可以是执行模式进程(S卩,chkdsk进程)、核心驱动程序、系统服务、和/或任意其他适当的服务。在步骤306,切换模块108作为计算装置210的一部分可以切换软件产品的第一和第二版本。切换模块108可以采用各种方式切換软件产品的第一和第二版本。例如,切換模块108可以通过激活软件产品的第二版本并使软件产品的第一版本解除激活来切换软件产品的第一和第二版本。如在此所用的,短语“激活软件产品的第二版本”通常是指使软件产品的第二版本的一个或多个进程运行和/或使软件产品的第二版本的ー个或多个进程准备运行的任意程序。相反地,短语“使软件产品的第一版本解除激活”通常是指使软件产品的第一版本的一个或多个进程停止执行、使软件产品的第一版本的一个或多个进程准备终止执行、和/或修改软件产品的第一版本以便软件产品的第一版本在終止后不再重新启动的任意程序。在一些实施方案中,切换模块108可以在软件产品的第一版本正在运行的同时修改软件产品的第一版本的一个或多个组件的状态,以便在重新启动后该ー个或多个组件不会重新启动。例如,切换模块108可以改变软件产品的第一版本中一个或多个服务和/或驱动器的状态以便在系统重新启动后它们不运行。切换模块108可以使用先前识别的软件产品的第一和第二版本之间的ー组差异来更新软件产品的第一版本的一个或多个组件以便与软件产品的第二版本一起使用。例 如,切换模块108可以更新软件产品的第二版本的ー个或多个注册码(例如,通过添加新的密钥、删除旧的密钥和/或修改现有密钥)。额外地或可替代地,切换模块108可以更新(例如添加、删除和/或修改)软件产品的第二版本的ー些或所有服务和/或驱动程序。切换模块108还可以更新软件产品的第二版本的ー个或多个快捷键,包括符号链接。切换模块108可以进ー步运行ー个或多个自定义动作,如可修改安装过程之外的计算系统的自定义可执行程序。根据某些实施方案,在软件产品的第一版本解除激活并且软件产品的第二版本激活后,切换模块108可以卸载和/或以其他方式清理软件产品的第一版本。例如,切换模块108可以移除与软件产品的第一版本相关的任意文件和其他数据。图4是另ー种用于更新安全软件产品的示例性计算机实施的方法的流程图,如反病毒应用程序、防火墙应用程序、数据丢失防护应用程序、和/或用于保护计算机系统和/或存储在计算系统上的数据的任意其他应用程序。图4所示的步骤可以由任何适当的计算机可执行代码和/或计算系统来执行。在一些实施方案中,图4所示的步骤可以由图I中系统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)。在ー个实例中,图I模块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主机适配器、IEEE 1394主机适配器、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的其他部件之间传送数据的任何类型或形式的接ロ或装置。在一个实例中,图I的数据库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可以包括图I的系统100。类似地,服务器640和645总体上代表被配置为用于提供不同的数据库服务和/或运行某种软件应用程序的计算装置或系统,如应用程序服务器或数据库服务器。网络650总体上代表任何电信或计算机网络;例如,它包括内部网、广域网(WAN)、局域网(LAN)、个人区域网(PAN)、或互联网。如图6所示,一个或多个存储装置660(1)-(N)可直接附接到服务器640上。类似地,一个或多个存储装置670 (I)-(N)可直接附接到服务器645上。存储装置660 (I)-(N)和存储装置670 (I)-(N)总体上代表能够存储数据和/或其他计算机可读指令的任何类型或形式的存储装置或媒质。在某些实施方案中,存储装置660 (I)-(N)和存储装置670 (I)-(N)可代表被配置为用于使用不同协议(例如NFS、SMB、或CIFS)来与服务器640和645进行通信的网络附联存储(NAS)装置。服务器640和645还可以连接到一种存储区域网络(SAN)光纤680上。SAN光纤680总体上代表能够协助多个存储装置之间互相通信的任何类型或形式的计算机网络或体系结构。SAN光纤680可以协助在服务器640和645与多个存储装置690 (I)-(N)和/或ー个智能存储阵列695之间的通信。SAN光线680还可通过网络650以及服务器640和645协助客户系统610、620、和630与存储装置690(1)-(N)和/或智能存储阵列695之间的通信,其方式为使得存储装置690 (I)-(N)和阵列695对于客户系统610、620、和630表现为好像是本地附联的装置。如同存储装置660 (I)-(N)和存储装置670 (I)-(N),存储装置690 (I)-(N)和智能存储阵列695总体上代表能够存储数据和/或其他计算机可读指令的任何类型或形式的存储装置或媒质。在某些实施方案中,參见图5的示例性计算系统510,通信接ロ(如图5中的通信接ロ 522)可以用于在每个客户端系统610、620、和630以及网络650之间提供连接。例如,客户端系统610、620、和630通过ー个网络浏览器或其他客户端软件可以能够访问服务器640或645上的信息。此类软件可以允许客户端系统610、620、和630访问由服务器640、服务器645、存储装置660 (I)-(N)、存储装置670 (I)-(N)、存储装置690 (I)-(N)、或智能存储阵列695托管的数据。虽然图6描述了使用一个网络(如互联网)来交换数据,在此说明和/或展示的实施方案并不局限于互联网或任何特定的基于网络的环境。在至少ー个实施方案中,在此披露的示例性实施方案中的ー个或多个的全部或一部分可被编码为一种计算机程序并且由服务器640、服务器645、存储装置660 (I)-(N)、存储装置670 (I)-(N)、存储装置690 (I)-(N)、智能存储阵列695、或它们中的任意组合加载并执行。在此披露的不例性实施方案中的ー个或多个的全部或一部分还可以被编码成为ー种计算机程序,它存储在服务器640中、由服务器645来运行、并在网络650上分发给客户端系统610、620、和630。因此,网络体系结构600可以单独地或与其他元件相结合执行和/或作为ー种手段来执行在此说明的接收、安装、切換、重新启动、解除启用、阻止、修改、和/或者卸载步骤中的ー个或多个。网络体系结构600还可以用于执行和/或作为ー种手段来执行本披露中提出的其他步骤和特征。如以上所述,计算系统510和/或网络体系结构600的一个或者多个部件可以单独地亦或与其他元件相结合地执行和/或作为ー种手段来执行ー种用于更新软件产品的 示例性方法的ー个或多个步骤。虽然以上披露使用了多个具体的框图、流程图、以及实例阐明了不同的实施方案,在此说明和/或展示的每个框图部件、流程图步骤、操作、和/或部件都可以单独地和/或共同地使用一个大范围的硬件、软件、或者固件(或者它们的任何组合)配置来实施。另外,在其他部件之中所包括的任何部件的披露都应该看作本质上是示例性的,因为可以实施许多其他的体系结构来达到同样的功能。在此说明和/或展示的进程的參数以及步骤的顺序仅仅是以举例的方式给出并且可以按希望来更改。例如,虽然在此展示和/或说明的这些步骤可以按照ー个具体的顺序来示出或讨论,但这些步骤并非必须按照所展示或者所讨论的顺序来执行。在此说明和/或展示的不同的示例性方法还可以省略在此说明或展示的一个或者多个步骤或者还可以包括除所披露的那些之外的额外步骤。虽然不同的实施方案在此已经在全功能性计算系统的背景下进行了说明和/或展示,这些示例性实施方案中的一个或者多个能够以多种形式作为ー个程序产品来分发,而无论实际用于进行该分发的计算机可读媒质的具体形式如何。在此披露的这些实施方案还可以通过使用执行ー些特定任务的软件模块来实施。这些软件模块可以包括脚本、成批文件、或者其他可执行文件,它们可以存储在一种计算机可读的存储媒质上或者在ー种计算系统中。在一些实施方案中,这些软件模块可以将ー个计算系统配置用于实施在此披露的一个或者多个示例性的实施方案。另外,在此所述的这些模块中的一个或多个可以将数据、物理装置、和/或物理装置的表示从ー种形式转换到另ー种形式。例如,模块102中的ー个或多个可以将软件产品的第一版本转换成为软件产品的第二版本。已经提供了以上说明用于使本领域的其他普通技术人员能够最好地使用在此披露的这些示例性实施方案的不同方面。这种示例性说明并非g在是穷尽性的或者被限制在所披露的任何准确的形式上。许多修改与变更都是可能的而不背离本披露的精神与范围。应该认为在此披露的这些实施方案在所有方面都是展示性的而非限制性的。应该參照所附权利要求及其等效物来确定本披露的范围。
除非另外说明,如在本说明书与权利要求中所使用的,术语“ー种”或“一个”将被解释为“至少ー个”的意思。此外,为便于使用,如在本说明书以及权利要求中所使用的文 字“包含”和“具有”是可以互換的并且具有与文字“包括”相同的含义。
权利要求
1.一种用于更新软件产品的计算机实施的方法,该方法的至少一部分由包括至少ー个处理器的一个计算装置来执行的,该方法包括 接收ー个请求以便安装该软件产品的ー个第二版本来覆盖该软件产品的ー个第一版本; 在该软件产品的第一版本运行的同时在休眠状态中安装该软件产品的第二版本; 通过激活该软件产品的第二版本并使该软件产品的第一版本解除激活来切换该软件产品的第一和第二版本。
2.如权利要求I所述的方法,其中 该软件产品包括ー个安全软件产品。
3.如权利要求2所述的方法,其中 该软件产品的第一版本包括ー个反病毒应用程序的ー个第一版本; 该软件的第二版本可以包括该反病毒应用程序的ー个第二版本。
4.如权利要求I所述的方法,进ー步包括 重新启动ー个计算系统,该计算系统上安装了该软件产品的第一和第二版本,其中该重新启动是在安装该软件产品的第二版本之后和激活该软件产品的第二版本之前进行的。
5.如权利要求4所述的方法,其中 该软件产品的第二版本可以在该计算系统的ー个网络适配器启用之前在该重新启动过程中激活。
6.如权利要求5所述的方法,进ー步包括 使该网络适配器解除启用,直到激活了该软件产品的第二版本。
7.如权利要求I所述的方法,其中安装该软件产品的第二版本包括 安装该软件产品的第二版本的一个或多个文件; 安装启动过程中所需的该软件产品的第二版本的ー个或多个组件。
8.如权利要求I所述的方法,其中安装该软件产品的第二版本包括通过以下操作部分地安装该软件产品的第二版本 安装不影响该软件产品的第一版本的执行的该软件产品的第二版本的ー个或多个组件; 如果其安装会影响该软件产品的第一版本的执行则阻止安装该软件产品第二版本的ー个或多个组件。
9.如权利要求I所述的方法,其中使该软件产品的第二版本解除激活包括 修改该软件产品的第一版本的一个或多个组件的状态,以便在一次重新启动后该ー个或多个组件不会重新启动。
10.如权利要求I所述的方法,其中 安装该软件产品的第二版本包括保存该软件产品的第一版本的ー个或多个设置; 切换该软件产品的第一和第二版本包括将该软件产品的第一版本的一个或多个设置导入到该软件产品的第二版本中。
11.如权利要求I所述的方法,其中 安装该软件产品的第二版本包括识别该软件产品的第一版本和该软件产品的第二版本之间的ー组差异;切换该软件产品的第一和第二版本包括使用该组差异来更新该软件产品的第一版本的一个或多个组件以便与该软件产品的第二版本一起使用。
12.如权利要求I所述的方法,其中切换该软件产品的第一和第二版本包括 在该软件产品的第一版本解除激活并且该软件产品的第二版本激活后卸载该软件产品的第一版本。
13.如权利要求I所述的方法,具体地实施为在至少ー个计算机可读存储媒质上的计算机可执行指令。
14.一种用于更新安全软件产品的计算机实施的方法,该方法的至少一部分由包括至少ー个处理器的一个计算装置来执行的,该方法包括 接收ー个请求以便安装该安全软件产品的ー个第二版本来覆盖该安全软件产品的一个第一版本; 通过安装不影响该安全软件产品的第一版本的执行的该安全软件产品的第二版本的一个或多个组件以及如果其安装会影响该安全软件产品的第一版本的执行则阻止安装该安全软件产品第二版本的ー个或多个组件,在该安全软件产品的第一版本运行的同时在休眠状态中安装该安全软件产品的第二版本。
重新启动ー个计算系统,在该计算系统上安装了该安全软件产品的第一和第二版本;通过激活该安全软件产品的第二版本和使该安全软件产品的第一版本解除激活来切换该安全软件产品的第一和第二版本。
15.如权利要求14所述的方法,其中安装该安全软件产品的第二版本包括 安装该安全软件产品的第二版本的一个或多个文件; 安装启动过程中所需的该安全软件产品的第二版本的ー个或多个组件。
16.如权利要求14所述的方法,其中使该安全软件产品的第二版本解除激活包括 修改该安全软件产品的第一版本的一个或多个组件的状态,以便该一个或多个组件在重新启动该计算系统后不会重新启动。
17.—种系统,包括 至少ー个处理器; ー个接ロ模块,该接ロ模块被编程为用于引导该处理器接收ー个请求以便安装该软件产品的第二版本来覆盖该软件产品的第一版本; ー个安装模块,该安装模块被编程为用于引导该处理器在该软件产品的第一版本运行的同时在休眠状态中安装该软件产品的第二版本; ー个切换模块,该切换模板被编程为用于引导该处理通过激活该软件产品的第二版本并使该软件程序的第一版本解除激活来切换该软件产品的第一和第二版本。
18.如权利要求17所述的系统,其中 该软件产品的第一版本包括ー个反病毒应用程序的ー个第一版本; 该软件产品的ー个第二版本包括该反病毒应用程序的ー个第二版本。
19.如权利要求17所述的系统,其中该切换模块被编程为用于引导该处理器通过修改该软件产品的第一版本的一个或多个组件的状态以便在一个计算系统重新启动后该ー个或多个组件不会重新启动来使该软件产品的第二版本解除激活,在该计算系统上安装了该软件产品的第一和第二版本。
20.如权利要求17所述的系统,其中,该安装模块被编程为用于引导该处理器通过以下操作来安装该软件产品的第二版本 安装该软件产品的第二版本的一个或多个文件 安装一个启动过程中所需的该软件产品的第二版本的ー个或多个组件。
全文摘要
一种方法可以包括接收一个请求以便安装一个软件产品的第二版本来覆盖该软件产品的一个第一版本,在该软件产品的第一版本运行的同时在休眠状态中安装该软件产品的第二版本,并且通过激活该软件产品的第二版本并使该软件产品的第一版本解除激活来切换该软件产品的第一和第二版本。在此还披露了不同的其他的方法、系统、以及计算机可读媒质。
文档编号G06F9/445GK102696014SQ201080034862
公开日2012年9月26日 申请日期2010年8月6日 优先权日2009年8月10日
发明者B·鲍威尔, P·威伦 申请人:赛门铁克公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1