Nothing Special   »   [go: up one dir, main page]

JP2013502005A - System and method for updating software products - Google Patents

System and method for updating software products Download PDF

Info

Publication number
JP2013502005A
JP2013502005A JP2012524757A JP2012524757A JP2013502005A JP 2013502005 A JP2013502005 A JP 2013502005A JP 2012524757 A JP2012524757 A JP 2012524757A JP 2012524757 A JP2012524757 A JP 2012524757A JP 2013502005 A JP2013502005 A JP 2013502005A
Authority
JP
Japan
Prior art keywords
version
software product
installing
security
components
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
JP2012524757A
Other languages
Japanese (ja)
Other versions
JP5646629B2 (en
Inventor
ブライアン・パウエル
ピーター・フィリューン
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.)
Gen Digital Inc
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 JP2013502005A publication Critical patent/JP2013502005A/en
Application granted granted Critical
Publication of JP5646629B2 publication Critical patent/JP5646629B2/en
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
    • 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

方法が、第1のバージョンのソフトウェア製品に第2のバージョンのソフトウェア製品を上書きしてインストールすることを求める要求を受信するステップと、第1のバージョンのソフトウェア製品が動作しているままで、第2のバージョンのソフトウェア製品を休止状態でインストールするステップと、第2のバージョンのソフトウェア製品を作動させ、前記第1のバージョンのソフトウェア製品を作動停止させることによって、第1のバージョンと第2のバージョンのソフトウェア製品をスワップするステップとを含み得る。様々な他の方法、システム、およびコンピュータ可読媒体も開示する。  Receiving a request to install the second version of the software product over the first version of the software product; and the first version of the software product remains operational, Installing the two versions of the software product in a dormant state, activating the second version of the software product, and deactivating the first version of the software product, thereby providing the first version and the second version. Swapping other software products. Various other methods, systems, and computer readable media are also disclosed.

Description

企業および個人は、計算システムを保護するセキュリティソフトウェア製品を定期的に更新または交換する。セキュリティソフトウェア製品を更新および交換するために様々な従来の技術を使用することができる。残念ながら、MICROSOFT INSTALLER(「MSI」)およびMICROSOFT PATCH(「MSP」)技術など、セキュリティソフトウェア製品を更新および交換するための従来の技術は、セキュリティ製品が動作していない期間中にコンピュータシステムを脆弱にすることがある。   Businesses and individuals regularly update or replace security software products that protect computing systems. Various conventional techniques can be used to update and replace security software products. Unfortunately, conventional techniques for updating and replacing security software products, such as MICROSOFT INSTALLER (“MSI”) and MICROSOFT PATCH (“MSP”) technologies, have made computer systems vulnerable during periods when security products are not in operation. It may be.

MSIによるセキュリティ製品の交換は、しばしば、既存のセキュリティ製品をアンインストールし、そのセキュリティ製品がインストールされていた計算システムをリブートし、新規のセキュリティ製品をインストールすることを含む。計算システムは、古いセキュリティ製品がアンインストールされた時から、新規のセキュリティ製品がインストールされて作動される時まで、保護されていないことがある。   Replacing a security product with MSI often involves uninstalling an existing security product, rebooting the computing system in which the security product was installed, and installing a new security product. The computing system may not be protected from when an old security product is uninstalled until when a new security product is installed and activated.

MSPによるセキュリティ製品の更新は、第1のバージョンのセキュリティ製品を第2のバージョンのセキュリティ製品に変換することができる。更新中、セキュリティ製品のプロセスの動作は、停止され、更新され、次いで再始動されることがある。したがって、セキュリティ製品によって保護されているシステムは、セキュリティ製品が更新されている間、脆弱になることがある。したがって、必要なのは、ソフトウェア製品を交換および/または更新するためのより効果的な方法である。   The security product update by the MSP can convert the first version of the security product to the second version of the security product. During the update, the operation of the security product process may be stopped, updated, and then restarted. Thus, a system protected by a security product may become vulnerable while the security product is updated. Therefore, what is needed is a more effective way to replace and / or update software products.

以下でより詳細に説明するように、本開示は、一般に、ソフトウェア製品を更新するためのシステムおよび方法に関する。本明細書で使用するとき、語句「ソフトウェア製品を更新する」は、一般に、既存のソフトウェア製品を更新および/または交換することを表す。いくつかの実施形態では、方法が、第1のバージョンのソフトウェア製品に第2のバージョンのソフトウェア製品を上書きしてインストールすることを求める要求を受信するステップと、第1のバージョンのソフトウェア製品が動作しているままで、第2のバージョンのソフトウェア製品を休止状態でインストールするステップと、第2のバージョンのソフトウェア製品を作動させ、第1のバージョンのソフトウェア製品を作動停止させることによって、第1のバージョンと第2のバージョンのソフトウェア製品をスワップするステップとを含み得る。ソフトウェア製品は、セキュリティソフトウェア製品を含み得る。例えば、第1のバージョンのソフトウェア製品は、第1のバージョンのアンチウイルスアプリケーションを含むことがあり、第2のバージョンのソフトウェア製品は、第2のバージョンのアンチウイルスアプリケーションを含み得る。   As described in more detail below, the present disclosure generally relates to systems and methods for updating software products. As used herein, the phrase “update a software product” generally refers to updating and / or replacing an existing software product. In some embodiments, the method receives a request to install the first version of the software product over the second version of the software product, and the first version of the software product operates. And installing the second version of the software product in a dormant state, activating the second version of the software product, and deactivating the first version of the software product. Swapping the version and the second version of the software product. The software product may include a security software product. For example, a first version of a software product may include a first version of an antivirus application, and a second version of the software product may include a second version of an antivirus application.

いくつかの実施形態では、この方法は、第1および第2のバージョンのソフトウェア製品がインストールされた計算システムをリブートするステップを含み得る。リブートは、第2のバージョンのソフトウェア製品をインストールした後であって第2のバージョンのソフトウェア製品を作動させる前に行われることがある。様々な実施形態によれば、第2のバージョンのソフトウェア製品は、計算システムのネットワークアダプタが有効化される前にリブートプロセス中に作動されることがある。この方法は、第2のバージョンのソフトウェア製品が有効化されるまで、ネットワークアダプタを無効化しておくステップを含み得る。   In some embodiments, the method may include rebooting the computing system with the first and second versions of the software product installed. The reboot may occur after installing the second version of the software product and before operating the second version of the software product. According to various embodiments, the second version of the software product may be activated during the reboot process before the computing system network adapter is enabled. The method may include disabling the network adapter until the second version of the software product is enabled.

様々な実施形態によれば、第2のバージョンのソフトウェア製品をインストールするステップは、第2のバージョンのソフトウェア製品の1つまたは複数のファイルをインストールするステップと、ブートプロセス中に必要とされる第2のバージョンのソフトウェア製品の1つまたは複数のコンポーネントをインストールするステップとを含み得る。いくつかの実施形態では、第1のバージョンのソフトウェア製品の実行に影響を及ぼさない第2のバージョンのソフトウェア製品の1つまたは複数のコンポーネントをインストールし、インストールされると第1のバージョンのソフトウェア製品の実行に影響を及ぼすことになる第2のバージョンのソフトウェアの1つまたは複数のコンポーネントのインストールを見合わせることによって、第2のバージョンのソフトウェア製品を一部インストールするステップを含み得る。   According to various embodiments, the step of installing the second version of the software product includes the step of installing one or more files of the second version of the software product and a step required during the boot process. Installing one or more components of the two versions of the software product. In some embodiments, one or more components of the second version of the software product that do not affect the execution of the first version of the software product are installed and, once installed, the first version of the software product May include partially installing the second version of the software product by forcing the installation of one or more components of the second version of the software that will affect the execution of.

1つまたは複数の実施形態では、第2のバージョンのソフトウェア製品を作動停止させるステップは、第1のバージョンのソフトウェア製品の1つまたは複数のコンポーネントの状態を、それら1つまたは複数のコンポーネントがリブート後に再始動しないように変更するステップを含み得る。様々な実施形態によれば、第2のバージョンのソフトウェア製品をインストールするステップは、第1のバージョンのソフトウェア製品の1つまたは複数の設定を保存するステップを含むことがあり、第1のバージョンと第2のバージョンのソフトウェア製品をスワップするステップは、第1のバージョンのソフトウェア製品の1つまたは複数の設定を第2のバージョンのソフトウェア製品にインポートするステップを含み得る。   In one or more embodiments, the step of deactivating the second version of the software product includes the state of one or more components of the first version of the software product, wherein the one or more components reboot. It may include changing to not restart later. According to various embodiments, installing the second version of the software product may include saving one or more settings of the first version of the software product, Swapping the second version of the software product may include importing one or more settings of the first version of the software product into the second version of the software product.

いくつかの実施形態によれば、第2のバージョンのソフトウェア製品をインストールするステップは、第1のバージョンのソフトウェア製品と第2のバージョンのソフトウェア製品の1組の相違を識別するステップを含むことがあり、第1のバージョンと第2のバージョンのソフトウェア製品をスワップするステップは、第2のバージョンのソフトウェア製品において使用できるように第1のバージョンのソフトウェア製品の1つまたは複数のコンポーネントを更新するために、1組の相違を使用するステップを含み得る。様々な実施形態において、第1のバージョンと第2のバージョンのソフトウェア製品をスワップするステップは、第1のバージョンのソフトウェア製品が作動停止されて第2のバージョンのソフトウェア製品が作動された後に、第1のバージョンのソフトウェア製品をアンインストールするステップを含み得る。少なくとも1つの実施形態では、この方法は、少なくとも1つのコンピュータ可読記憶媒体上でのコンピュータ実行可能命令として有形に具現化されることがある。   According to some embodiments, installing the second version of the software product may include identifying a set of differences between the first version of the software product and the second version of the software product. Yes, the step of swapping the first version and the second version of the software product is for updating one or more components of the first version of the software product for use in the second version of the software product. Can include using a set of differences. In various embodiments, the step of swapping the first version and the second version of the software product is performed after the first version of the software product is deactivated and the second version of the software product is activated. Uninstalling a version of the software product may be included. In at least one embodiment, the method may be tangibly embodied as computer-executable instructions on at least one computer-readable storage medium.

いくつかの実施形態では、方法が、第1のバージョンのセキュリティソフトウェア製品に第2のバージョンのセキュリティソフトウェア製品を上書きしてインストールすることを求める要求を受信するステップを含み得る。また、この方法は、第1のバージョンのセキュリティソフトウェア製品の実行に影響を及ぼさない第2のバージョンのセキュリティソフトウェア製品の1つまたは複数のコンポーネントをインストールし、インストールされると第1のバージョンのセキュリティソフトウェア製品の実行に影響を及ぼすことになる第2のバージョンのセキュリティソフトウェアの1つまたは複数のコンポーネントのインストールを見合わせることによって、第1のバージョンのセキュリティソフトウェア製品が動作しているままで、第2のバージョンのセキュリティソフトウェア製品を休止状態でインストールするステップを含むこともある。   In some embodiments, the method may include receiving a request to install the first version of the security software product over the second version of the security software product. The method also installs one or more components of the second version of the security software product that do not affect the execution of the first version of the security software product and, once installed, the first version of the security software product. By suspending the installation of one or more components of the second version of the security software that will affect the execution of the software product, the second version of the security software product remains operating and the second May include installing a version of the security software product in a dormant state.

この方法はさらに、第1および第2のバージョンのセキュリティソフトウェア製品がインストールされた計算システムをリブートするステップと、第2のバージョンのセキュリティソフトウェア製品を作動させ、第1のバージョンのセキュリティソフトウェア製品を作動停止させることによって、第1のバージョンと第2のバージョンのセキュリティソフトウェア製品をスワップするステップとを含み得る。いくつかの実施形態によれば、この方法は、第2のバージョンのセキュリティソフトウェア製品の1つまたは複数のファイルをインストールするステップと、ブートプロセス中に必要とされる第2のバージョンのセキュリティソフトウェア製品の1つまたは複数のコンポーネントをインストールするステップとを含み得る。この方法は、追加または代替として、第1のバージョンのソフトウェア製品の1つまたは複数のコンポーネントの状態を、計算システムをリブートした後にそれら1つまたは複数のコンポーネントが再始動しないように変更するステップを含み得る。   The method further includes rebooting the computing system on which the first and second versions of the security software product are installed, operating the second version of the security software product, and operating the first version of the security software product. The step may include swapping the first version and the second version of the security software product by stopping. According to some embodiments, the method includes installing one or more files of a second version of the security software product, and a second version of the security software product required during the boot process. Installing one or more of the components. The method additionally or alternatively includes changing the state of the one or more components of the first version of the software product so that the one or more components do not restart after the computing system is rebooted. May be included.

いくつかの実施形態では、システムが、少なくとも1つの処理装置と、第1のバージョンのソフトウェア製品に第2のバージョンのソフトウェア製品を上書きしてインストールすることを求める要求を受信するように処理装置に命令するようにプログラムされたインターフェースモジュールと、第1のバージョンのソフトウェア製品が動作しているままで、第2のバージョンのソフトウェア製品を休止状態でインストールするように処理装置に命令するようにプログラムされたインストールモジュールと、第2のバージョンのソフトウェア製品を作動させ、第1のバージョンのソフトウェア製品を作動停止することによって、第1のバージョンと第2のバージョンのソフトウェア製品をスワップするように処理装置に命令するようにプログラムされたスワッピングモジュールとを備えることがある。   In some embodiments, the system causes the processing device to receive at least one processing device and a request to install the first version of the software product over the second version of the software product. An interface module programmed to command and programmed to instruct the processing device to install the second version of the software product in a dormant state while the first version of the software product remains operating The processing module to swap the first version and the second version of the software product by operating the installed module and the second version of the software product and deactivating the first version of the software product. Program to command It has been that there is provided a swapping module.

いくつかの実施形態では、第1のバージョンのソフトウェア製品は、第1のバージョンのアンチウイルスアプリケーションを含むことがあり、第2のバージョンのソフトウェア製品は、第2のバージョンのアンチウイルスアプリケーションを含み得る。様々な実施形態によれば、スワッピングモジュールは、1つまたは複数のコンポーネントがリブート後に再始動しないように第1のバージョンのソフトウェア製品の1つまたは複数のコンポーネントの状態を変更することによって、第2のバージョンのソフトウェア製品を作動停止するように処理装置に命令するようにプログラムされることがある。少なくとも1つの実施形態では、インストールモジュールは、第2のバージョンのソフトウェア製品の1つまたは複数のファイルをインストールし、および/またはブートプロセス中に必要とされる第2のバージョンのソフトウェア製品の1つまたは複数のコンポーネントをインストールすることによって、第2のバージョンのソフトウェア製品をインストールするように処理装置に命令するようにプログラムされることがある。   In some embodiments, the first version of the software product may include a first version of an antivirus application, and the second version of the software product may include a second version of an antivirus application. . According to various embodiments, the swapping module can change the second state by changing the state of one or more components of the first version of the software product so that the one or more components do not restart after reboot. May be programmed to instruct the processing unit to shut down a version of the software product. In at least one embodiment, the installation module installs one or more files of the second version software product and / or one of the second version software products required during the boot process. Or, by installing multiple components, it may be programmed to instruct the processing device to install a second version of the software product.

上述した任意の実施形態からの特徴を、本明細書で述べる一般的な原理に従って互いに組み合わせて使用することができる。これらおよび他の実施形態、特徴、および利点は、添付図面および特許請求の範囲に関連付けて以下の詳細な説明を読めば、より完全に理解されよう。   Features from any of the above-described embodiments can be used in combination with each other according to the general principles described herein. These and other embodiments, features, and advantages will be more fully understood when the following detailed description is read in conjunction with the accompanying drawings and claims.

添付図面は、いくつかの例示的実施形態を示し、本明細書の一部である。これらの図面は、以下の説明と共に、本開示の様々な原理の実例を挙げて説明する。   The accompanying drawings illustrate some exemplary embodiments and are a part of the specification. These drawings, along with the following description, illustrate various principles of the present disclosure.

ソフトウェア製品を更新するための例示的なシステムのブロック図である。1 is a block diagram of an exemplary system for updating a software product. ソフトウェア製品を更新するための別の例示的なシステムのブロック図である。FIG. 6 is a block diagram of another exemplary system for updating a software product. ソフトウェア製品を更新するための例示的な方法の流れ図である。2 is a flowchart of an exemplary method for updating a software product. ソフトウェア製品を更新するための別の例示的な方法の別の流れ図である。6 is another flow diagram of another exemplary method for updating a software product. 本願で説明および/または図示する実施形態の1つまたは複数を実施することができる例示的な計算システムのブロック図である。FIG. 2 is a block diagram of an example computing system that can implement one or more of the embodiments described and / or illustrated herein. 本願で説明および/または図示する実施形態の1つまたは複数を実施することができる例示的なコンピューティングネットワークのブロック図である。1 is a block diagram of an exemplary computing network that can implement one or more of the embodiments described and / or illustrated herein. FIG.

図面全体を通して、同一の参照符号および説明は、同様の要素を示すが、必ずしも同一の要素ではない。本明細書で述べる例示的実施形態は、様々な修正形態および代替形態が可能であるが、特定の実施形態を例として図面に示し、本明細書で詳細に説明する。しかし、本明細書で述べる例示的実施形態は、開示する特定の形態に限定されるものとは意図されていない。そうではなく、本開示は、添付の特許請求の範囲の範囲内に入るすべての修正形態、均等形態、および代替形態を網羅する。   Throughout the drawings, identical reference numbers and descriptions indicate similar, but not necessarily identical, elements. While the exemplary embodiments described herein are susceptible to various modifications and alternative forms, specific embodiments are shown by way of example in the drawings and are described in detail herein. However, the exemplary embodiments described herein are not intended to be limited to the particular forms disclosed. Rather, the present disclosure covers all modifications, equivalents, and alternatives falling within the scope of the appended claims.

以下でより詳細に説明するように、本開示は、一般に、ソフトウェア製品を更新するためのシステムおよび方法に関する。本開示の実施形態は、インストールプロセス中に既存の製品をアンインストールする必要なく新規の製品を上書きインストールすることができる。例えば、計算システムは、第1のバージョンのソフトウェア製品が動作しているままで、第2のバージョンのソフトウェア製品を休止状態でインストールすることができ、第2のバージョンのソフトウェア製品を作動させ、第1のバージョンのソフトウェア製品を作動停止させることによって第1のバージョンと第2のバージョンのソフトウェア製品をスワップすることができる。   As described in more detail below, the present disclosure generally relates to systems and methods for updating software products. Embodiments of the present disclosure can install over a new product without having to uninstall the existing product during the installation process. For example, the computing system can install the second version of the software product in a dormant state while the first version of the software product is still running, operate the second version of the software product, and The first version and the second version of the software product can be swapped by deactivating one version of the software product.

本開示の実施形態は、一般に、あるソフトウェア製品が別のソフトウェア製品に上書きしてインストールされる状況(すなわち、一度にただ1つのバージョンのソフトウェア製品しか動作することができない状況)に当てはまる。そのような状況では、従来のインストールツールは、典型的には既存のソフトウェア製品をアンインストールしてから新規のソフトウェア製品をインストールし、そのため、いずれのソフトウェア製品も動作していない期間が生じることがある。アンチウイルスやデータ保護製品などセキュリティソフトウェア製品に関して、既存の製品によって保護されている計算システムは、既存の製品がアンインストールされて新規の製品がインストールされる間、脆弱になることがある。本開示の実施形態は、既存のバージョンのソフトウェア製品がまだ動作しているままで新規のバージョンのソフトウェア製品をインストールすることによって、ソフトウェアのダウンタイムをなくす、および/または最小限にすることができる。また、本開示の実施形態は、様々な他の特徴および利点も提供する。   Embodiments of the present disclosure generally apply to situations where one software product is installed over another software product (ie, a situation where only one version of a software product can operate at a time). In such situations, traditional installation tools typically uninstall an existing software product before installing a new software product, which can result in periods of no software product running. is there. With respect to security software products such as anti-virus and data protection products, a computing system protected by an existing product may become vulnerable while the existing product is uninstalled and a new product is installed. Embodiments of the present disclosure can eliminate and / or minimize software downtime by installing a new version of a software product while the existing version of the software product is still running . Embodiments of the present disclosure also provide various other features and advantages.

以下、図1および図2を参照して、ソフトウェア製品を更新するための例示的なシステムを詳細に説明する。また、それに対応するコンピュータ実装方法を、図3および図4に関連付けて詳細に説明する。さらに、本明細書で述べる1つまたは複数の実施形態を実装することができる例示的な計算システムおよびネットワークアーキテクチャを、それぞれ図57および図6に関連付けて詳細に説明する。   In the following, an exemplary system for updating a software product will be described in detail with reference to FIGS. A computer-implemented method corresponding to this will be described in detail with reference to FIGS. Further, exemplary computing systems and network architectures that can implement one or more embodiments described herein are described in detail in connection with FIGS. 57 and 6, respectively.

図1は、ソフトウェア製品を更新するための例示的なシステム100のブロック図である。この図に示されるように、例示的なシステム100は、1つまたは複数のタスクを実施するための1つまたは複数のモジュール102を含み得る。例えば、以下でより詳細に説明するように、例示的なシステム100は、第1のバージョンのソフトウェア製品に第2のバージョンのソフトウェア製品を上書きしてインストールすることを求める要求を受信するようにプログラムされたインターフェースモジュール104を含み得る。また、例示的なシステム100は、第1のバージョンのソフトウェア製品が動作しているままで、第2のバージョンのソフトウェア製品を休止状態でインストールするようにプログラムされたインストールモジュール106を含むこともある。   FIG. 1 is a block diagram of an exemplary system 100 for updating a software product. As shown in this figure, exemplary system 100 may include one or more modules 102 for performing one or more tasks. For example, as described in more detail below, exemplary system 100 is programmed to receive a request to install a first version software product over a second version software product. Interface module 104 may be included. The exemplary system 100 may also include an install module 106 that is programmed to install the second version of the software product in a dormant state while the first version of the software product remains operational. .

さらに、以下でより詳細に説明するように、例示的なシステム100は、第1のバージョンのソフトウェア製品を作動停止させて第2のバージョンのソフトウェア製品を作動させることによって、第1のバージョンと第2のバージョンのソフトウェア製品をスワップするようにプログラムされたスワッピングモジュール108を含むこともある。別個の要素として図示されているが、図1のモジュール102の1つまたは複数が、単一のモジュールまたはアプリケーションの一部を表すこともある。   Further, as will be described in more detail below, the exemplary system 100 disables the first version of the software product and activates the second version of the software product to activate the first version and the first version. It may also include a swapping module 108 programmed to swap two versions of the software product. Although illustrated as separate elements, one or more of the modules 102 of FIG. 1 may represent a single module or part of an application.

いくつかの実施形態では、図1のモジュール102の1つまたは複数は、計算装置によって実行されたときに計算装置に1つまたは複数のタスクを実施させることができる1つまたは複数のソフトウェアアプリケーションまたはプログラムを表すことがある。例えば、以下でより詳細に説明するように、モジュール102の1つまたは複数は、図2に示される装置(例えば計算装置202および/またはサーバ206)、図5の計算システム510、および/または図6の例示的なネットワークアクチュエータ600の一部など、1つまたは複数の計算装置に記憶され、そこで実行されるように構成されたソフトウェアモジュールを表すことがある。また、図1のモジュール102の1つまたは複数は、1つまたは複数のタスクを実施するように構成された1つまたは複数の専用コンピュータの全体または一部を表こともある。   In some embodiments, one or more of the modules 102 of FIG. 1 can be one or more software applications or programs that can cause the computing device to perform one or more tasks when executed by the computing device. May represent a program. For example, as described in more detail below, one or more of the modules 102 may include the devices shown in FIG. 2 (eg, computing device 202 and / or server 206), computing system 510 of FIG. 6 may represent software modules that are stored and executed on one or more computing devices, such as a portion of six exemplary network actuators 600. One or more of the modules 102 of FIG. 1 may also represent all or part of one or more dedicated computers configured to perform one or more tasks.

図1に示されるように、例示的なシステム100は、1つまたは複数のデータベース120を含むこともある。データベース120は、単一のデータベースもしくは計算デバイスの一部、または複数のデータベースもしくは計算デバイスを表すことがある。一実施形態では、例示的なシステム100は、第1のバージョンのソフトウェア製品と第2のバージョンのソフトウェア製品の相違を記憶するための相違データベース122を含み得る。また、例示的なシステム100は、第1のバージョンのソフトウェア製品から第2のバージョンのソフトウェア製品に移行すべき1つまたは複数の設定を記憶するための設定データベース124を含むこともある。   As shown in FIG. 1, the exemplary system 100 may include one or more databases 120. Database 120 may represent a single database or part of a computing device, or multiple databases or computing devices. In one embodiment, exemplary system 100 may include a difference database 122 for storing differences between a first version software product and a second version software product. The example system 100 may also include a settings database 124 for storing one or more settings to be migrated from a first version software product to a second version software product.

図1のデータベース120は、1つまたは複数の計算デバイスの一部を表すことがある。例えば、データベース120は、図2のサーバ206の一部、図5の計算システム510、および/または図6の例示的なネットワークアーキテクチャ600の一部を表すことがある。あるいは、図1のデータベース120は、図2のサーバ206、図5の計算システム510、および/または図6の例示的なネットワークアーキテクチャ600の一部などの計算デバイスがアクセスすることができる1つまたは複数の物理的に別個のデバイスを表すことがある。   The database 120 of FIG. 1 may represent a portion of one or more computing devices. For example, the database 120 may represent a portion of the server 206 of FIG. 2, the computing system 510 of FIG. 5, and / or a portion of the example network architecture 600 of FIG. Alternatively, the database 120 of FIG. 1 may be accessed by a computing device such as the server 206 of FIG. 2, the computing system 510 of FIG. 5, and / or a portion of the example network architecture 600 of FIG. May represent multiple physically distinct devices.

図1の例示的なシステム100は、様々な方法で展開することができる。例えば、例示的なシステム100の全体または一部が、図2に示される例示的なシステム200などクラウドコンピューティング環境またはネットワークベース環境の一部を表すことがある。クラウドコンピューティング環境は、インターネットを介して様々なサービスおよびアプリケーションを提供することができる。これらのクラウドベースのサービス(例えば、サービスとしてのソフトウェア、サービスとしてのプラットフォーム、サービスとしてのインフラストラクチャなど)は、ウェブブラウザまたは他の遠隔インターフェースを介してアクセス可能になることがある。本明細書で述べる様々な機能は、遠隔のデスクトップ環境または任意の他のクラウドベースのコンピューティング環境によって提供することができる。   The exemplary system 100 of FIG. 1 can be deployed in various ways. For example, all or part of the example system 100 may represent a part of a cloud computing environment or a network-based environment, such as the example system 200 shown in FIG. A cloud computing environment can provide various services and applications via the Internet. These cloud-based services (eg, software as a service, platform as a service, infrastructure as a service, etc.) may be accessible via a web browser or other remote interface. The various functions described herein can be provided by a remote desktop environment or any other cloud-based computing environment.

図2に示されるように、システム200は、ネットワーク204を介してサーバ206と通信する計算デバイス202を含み得る。一実施形態では、計算デバイス202は、1つまたは複数のモジュール102および/または1つまたは複数のデータベース120を含み得る。また、計算デバイス202は、第1のバージョンのソフトウェア製品220と第2のバージョンのソフトウェア製品222を含むこともある。計算デバイス202は、1つまたは複数のモジュール102を実行することがあり、第1のバージョンのソフトウェア製品220に第2のバージョンのソフトウェア製品222を上書きするためのプロセスで1つまたは複数のデータベース120を使用することがある。いくつかの実施形態では、計算デバイス202は、エンタープライズソフトウェア展開の一部として、サーバ206から第2のバージョンのソフトウェア製品222を受信することがある。あるいは、第2のバージョンのソフトウェア製品222は、計算デバイス202で直接開始されるインストールの一部として、第1のバージョンのソフトウェア製品220に上書きされることがある。例えば、第2のバージョンのソフトウェア製品222は、CD、DVD、BLUERAYディスク、USBデバイス、インターネット、および/またはローカルネットワークを含めた任意の適切な搬送メカニズムによって提供されることがある。   As shown in FIG. 2, the system 200 may include a computing device 202 that communicates with a server 206 via a network 204. In one embodiment, computing device 202 may include one or more modules 102 and / or one or more databases 120. The computing device 202 may also include a first version software product 220 and a second version software product 222. The computing device 202 may execute one or more modules 102 and one or more databases 120 in the process for overwriting the first version of the software product 220 with the second version of the software product 222. May be used. In some embodiments, the computing device 202 may receive a second version of the software product 222 from the server 206 as part of an enterprise software deployment. Alternatively, the second version of the software product 222 may be overwritten on the first version of the software product 220 as part of an installation initiated directly on the computing device 202. For example, the second version of the software product 222 may be provided by any suitable transport mechanism including a CD, DVD, BLUERAY disk, USB device, the Internet, and / or a local network.

計算デバイス202は、コンピュータ実行可能命令を読み取ることができる任意の種類または形態の計算デバイスを全般的に表す。計算デバイス202の例としては、限定はしないが、ラップトップコンピュータ、デスクトップコンピュータ、サーバ、セルラ電話、個人用携帯情報端末(PDA)、マルチメディアプレーヤ、組み込みシステム、それらのうちの1つまたは複数の組合せ、図5における例示的な計算システム510、または任意の他の適切な計算デバイスが挙げられる。   Computing device 202 generally represents any type or form of computing device capable of reading computer-executable instructions. Examples of computing device 202 include, but are not limited to, a laptop computer, a desktop computer, a server, a cellular phone, a personal digital assistant (PDA), a multimedia player, an embedded system, one or more of them. A combination, the exemplary computing system 510 in FIG. 5, or any other suitable computing device may be mentioned.

サーバ206は、ソフトウェア製品を展開することができる任意の種類または形態の計算デバイスを全般的に表す。サーバ206の例としては、限定はしないが、様々なデータベースサービスを提供する、および/または何らかのソフトウェアアプリケーションを動作させるように構成されたアプリケーションサーバおよびデータベースサーバが挙げられる。   Server 206 generally represents any type or form of computing device capable of deploying a software product. Examples of server 206 include, but are not limited to, application servers and database servers configured to provide various database services and / or run some software application.

ネットワーク204は、通信またはデータ転送を容易くすることができる任意の媒体またはアーキテクチャを全般的に表す。ネットワーク204の例としては、限定はしないが、イントラネット、ワイドエリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)、パーソナルエリアネットワーク(PAN)、インターネット、電力線通信(PLC)、セルラネットワーク(例えばGSMネットワーク)、図6の例示的なネットワークアーキテクチャ600などが挙げられる。ネットワーク204は、無線または有線接続を使用して通信またはデータ転送を容易くすることができる。一実施形態では、ネットワーク204は、計算装置202およびサーバ206の間の通信を容易くすることができる。   Network 204 generally represents any medium or architecture that can facilitate communication or data transfer. Examples of network 204 include, but are not limited to, an intranet, a wide area network (WAN), a local area network (LAN), a personal area network (PAN), the Internet, power line communication (PLC), a cellular network (eg, a GSM network). The exemplary network architecture 600 of FIG. The network 204 can facilitate communication or data transfer using a wireless or wired connection. In one embodiment, the network 204 can facilitate communication between the computing device 202 and the server 206.

図3は、ソフトウェア製品を更新するための例示的なコンピュータ実装方法300の流れ図である。図3に示されるステップは、任意の適切なコンピュータ実行可能コードおよび/または計算システムによって実施することができる。いくつかの実施形態では、図3に示されるステップは、図1のシステム100および/または図2のシステム200の構成要素の1つまたは複数によって実施することができる。例えば、ステップ302で、インターフェースモジュール104が、計算デバイス210の一部として、第1のバージョンのソフトウェア製品に第2のバージョンのソフトウェア製品を上書きしてインストールすることを求める要求を受信することがある。いくつかの実施形態では、この要求は、遠隔アプリケーションから受信されることがある。例えば、第2のバージョンのソフトウェア製品を展開するサーバが、ソフトウェア製品のインストールを要求することがある。また、この要求は、第2のバージョンのソフトウェア製品を含むインストールパッケージからの要求であることもある。追加または代替として、この要求は、情報技術(「IT」)管理者または他のユーザから受信されることがある。   FIG. 3 is a flowchart of an exemplary computer-implemented method 300 for updating a software product. The steps shown in FIG. 3 may be performed by any suitable computer executable code and / or computing system. In some embodiments, the steps shown in FIG. 3 may be performed by one or more of the components of system 100 of FIG. 1 and / or system 200 of FIG. For example, at step 302, the interface module 104 may receive a request to install a first version software product over a second version software product as part of the computing device 210. . In some embodiments, this request may be received from a remote application. For example, a server that deploys a second version of a software product may request installation of the software product. The request may also be a request from an installation package that includes the second version of the software product. Additionally or alternatively, this request may be received from an information technology (“IT”) administrator or other user.

本明細書で使用するとき、語句「ソフトウェア製品」は、計算システム上にインストールされて実行されるようにプログラムされた任意のソフトウェアアプリケーション、実行可能なファイル、インストールパッケージ、または他のコンピュータ実行可能コードを表す。ソフトウェア製品としては、限定はしないが、ワードプロセッサ、スプレッドシート、生産性向上ソフトウェア、セキュリティソフトウェア(アンチウイルスプログラム、ファイアウォール、ペアレンタルコントロールソフトウェア、データ損失防止ソフトウェアなど)、および様々な他のタイプのソフトウェアプログラムが挙げられる。語句「第1のバージョンのソフトウェア製品」および「第2のバージョンのソフトウェア製品」は、同じ会社からの同じソフトウェアプログラムのより古いバージョンおよびより新しいバージョンをそれぞれ表すことがある。例えば、第1のバージョンのソフトウェア製品は、2008年版のアンチウイルスプログラムであることがあり、第2のバージョンのソフトウェア製品は、2009年版の同じプログラムであることがある。   As used herein, the phrase “software product” refers to any software application, executable file, installation package, or other computer-executable code that is programmed to be installed and executed on a computing system. Represents. Software products include but are not limited to word processors, spreadsheets, productivity software, security software (anti-virus programs, firewalls, parental control software, data loss prevention software, etc.), and various other types of software programs Is mentioned. The phrases “first version software product” and “second version software product” may represent an older version and a newer version of the same software program from the same company, respectively. For example, the first version of the software product may be a 2008 version of an anti-virus program and the second version of the software product may be a 2009 version of the same program.

あるいは、第1のバージョンと第2のバージョンのソフトウェア製品は、同様の機能を実施する異なるプログラムでもよい。例えば、第1のバージョンのソフトウェア製品は、第1のソフトウェア会社によって開発されたファイアウォールアプリケーションであることがあり、第2のバージョンのソフトウェア製品は、第2のソフトウェア会社によって開発されたファイアウォールアプリケーションであることがある。他の実施形態では、第1のバージョンと第2のバージョンのソフトウェア製品は、同じ会社からの異なるが関連したプログラムでよい。例えば、第1のバージョンのソフトウェア製品は、基本機能を備えたベーシックコンピュータセキュリティプログラム(例えばアンチウイルスプログラム)であることがあり、第2のバージョンのソフトウェア製品は、より高度な機能を備えた高度なコンピュータセキュリティプログラム(例えばプログラムのインターネットセキュリティスイート)であることがある。   Alternatively, the first and second version software products may be different programs that perform similar functions. For example, the first version of the software product may be a firewall application developed by a first software company, and the second version of the software product is a firewall application developed by a second software company. Sometimes. In other embodiments, the first version and the second version of the software product may be different but related programs from the same company. For example, the first version of the software product may be a basic computer security program (e.g., an anti-virus program) with basic functions, and the second version of the software product may be an advanced software with more advanced functions. It may be a computer security program (eg an Internet security suite of programs).

本明細書で使用するとき、「第1のバージョンのソフトウェア製品に第2のバージョンのソフトウェア製品を上書きしてインストールする」は、一般に、1つのバージョンのソフトウェア製品を別のバージョンのソフトウェア製品に上書きインストールすることを意味する。上書きインストールとは、一般に、1つのバージョンのソフトウェアアプリケーションをインストールし、前のバージョンのソフトウェアアプリケーションを消去するためのインストールプロセスを表す。対照的に、他のインストールプロセスは、1つのバージョンの製品を別のバージョンの製品と置き換えることを含まないことがある。そのようなインストールプロセスは、既存のソフトウェア製品用のパッチをインストールし、2つのバージョンのソフトウェア製品を並行してインストールすることを含む。上書きインストールは、これらのパッチインストールおよび並行インストールは表さない。   As used herein, “installing a first version of a software product over a second version of a software product” generally overwrites one version of the software product with another version of the software product. Means to install. Overwrite installation generally refers to an installation process for installing one version of a software application and erasing the previous version of the software application. In contrast, other installation processes may not involve replacing one version of a product with another version of the product. Such an installation process includes installing a patch for an existing software product and installing two versions of the software product in parallel. Overwrite installation does not represent these patch installations and parallel installations.

上書きインストールプロセスは、一度に1つしかソフトウェア製品のインスタンスを動作させることができない状況で使用されることがある。例えば、多くの計算システムは、一度に1つのファイアウォールソフトウェアプログラムしか動作させないことがある。インスタンスを1つしか動作させることができない他のインストール状況としては、2つの同様のソフトウェア製品のインストールが、システムを不安定にすることがある競合および/または他の問題を生じることがあるような状況が挙げられる。   The overwrite installation process may be used in situations where only one instance of the software product can be run at a time. For example, many computing systems may only run one firewall software program at a time. Other installation situations where only one instance can run are such that the installation of two similar software products can cause conflicts and / or other problems that can cause the system to become unstable. The situation can be mentioned.

図3に戻ると、ステップ304で、インストールモジュール106が、計算デバイス210の一部として、第1のバージョンのソフトウェア製品が動作しているままで、第2のバージョンのソフトウェア製品を休止状態でインストールすることがある。インストールモジュール106は、以下でより詳細に説明する様々な方法で第2のバージョンをインストールすることができる。本明細書で使用するとき、語句「休止状態」は、少なくとも一部インストールされているが実行されていないソフトウェア製品を表す。インストールモジュール106は、第1のバージョンのソフトウェア製品が動作しているときに第1のバージョンのソフトウェア製品と干渉しないように第2のバージョンのソフトウェア製品をインストールすることによって、第2のバージョンのソフトウェア製品を休止状態でインストールすることがある。   Returning to FIG. 3, at step 304, the install module 106 installs the second version of the software product as a part of the computing device 210 while the first version of the software product remains operational. There are things to do. The install module 106 can install the second version in various ways described in more detail below. As used herein, the phrase “hibernation” refers to a software product that is at least partially installed but not running. The installation module 106 installs the second version of the software product by installing the second version of the software product so that it does not interfere with the first version of the software product when the first version of the software product is operating. The product may be installed in hibernation mode.

いくつかの実施形態では、インストールモジュール106は、第2のバージョンのソフトウェア製品の1つまたは複数のファイルをインストールすることによって、第2のバージョンのソフトウェア製品をインストールすることがある。例えば、インストールモジュール106は、第2のバージョンのソフトウェア製品の1つまたは複数の実行可能なファイルおよび/または他のコードをインストールすることがある。また、インストールモジュール106は、第2のバージョンのソフトウェア製品の1つまたは複数の他のコンポーネントをインストールすることもある。例えば、インストールモジュール106は、第2のバージョンのソフトウェア製品の1つまたは複数のサービス、ドライバ、レジストリキー、および/または他のコンポーネントをインストールすることがある。   In some embodiments, the installation module 106 may install the second version of the software product by installing one or more files of the second version of the software product. For example, the install module 106 may install one or more executable files and / or other code for the second version of the software product. The install module 106 may also install one or more other components of the second version of the software product. For example, the installation module 106 may install one or more services, drivers, registry keys, and / or other components of the second version of the software product.

インストールモジュール106は、第1のバージョンのソフトウェア製品の実行に影響を及ぼさない第2のバージョンソフトウェア製品のファイルおよび他のコンポーネントのみをインストールし、インストールされると第1のバージョン製品の実行に影響を及ぼすことがある第2のバージョンのソフトウェア製品の1つまたは複数のコンポーネントのインストールを見合わせることによって、第2のバージョンのソフトウェア製品を一部インストールすることがある。インストールモジュール106は、様々な方法で、第1のバージョンのソフトウェア製品の実行に影響を及ぼさない第2のバージョンのソフトウェア製品のコンポーネントを識別することができる。いくつかの実施形態では、インストールモジュール106は、第1のバージョンのソフトウェア製品が動作しているままで安全にインストールできるコンポーネントを識別するリストまたは他のデータベースを読み取ることによって、そのようなコンポーネントを識別することがある。   The install module 106 installs only the files and other components of the second version software product that do not affect the execution of the first version of the software product, and when installed, affects the execution of the first version of the product. A part of the second version of the software product may be installed by forcing the installation of one or more components of the second version of the software product that may be affected. The installation module 106 can identify components of the second version of the software product that do not affect the execution of the first version of the software product in various ways. In some embodiments, the installation module 106 identifies such components by reading a list or other database that identifies components that can be safely installed while the first version of the software product is running. There are things to do.

他の実施形態では、インストールモジュール106は、新規のコンポーネントに対応するコンポーネントを第1のバージョンのソフトウェア製品が利用しているかどうか判断することによって、安全にインストールできる第2のバージョンのソフトウェア製品の1つまたは複数のコンポーネントを自動的に識別することがある。例えば、インストールモジュール106は、第1のバージョンのソフトウェア製品によって現在使用されているドライバの上書きを見合わせることがある。   In other embodiments, the install module 106 determines whether one of the second version of the software product that can be safely installed by determining whether the first version of the software product is utilizing a component corresponding to the new component. One or more components may be automatically identified. For example, the install module 106 may forego overwriting the driver currently used by the first version of the software product.

いくつかの実施形態によれば、インストールモジュール106は、第1のバージョンと第2のバージョンのソフトウェア製品の1組の相違を識別することがある。1組の相違は、第1のバージョンと第2のバージョンのソフトウェア製品の1つまたは複数の相違を識別するリスト、差分ファイル、命令セット、および/または任意の他の情報セットであることがある。1組の相違は、1つまたは複数のレジストリキー、1つまたは複数のサービス、1つまたは複数のショートカット、および/または第1のバージョンと第2のバージョンのソフトウェア製品をスワップするために後の時点で(例えばリブート後に)行う必要がある1つまたは複数のアクションを識別することがある。1組の相違は、追加または代替として、1つまたは複数のレジストリキー、1つまたは複数のサービス、1つまたは複数のショートカット、および/または第1のバージョンのソフトウェア製品が動作しているままで行うことができる1つまたは複数のアクション(すなわち、前述したように、第1のバージョンのソフトウェア製品の実行に影響を及ぼさないアクション)を識別することがある。   According to some embodiments, the installation module 106 may identify a set of differences between the first version and the second version of the software product. The set of differences may be a list, a difference file, an instruction set, and / or any other information set that identifies one or more differences between the first version and the second version of the software product. . One set of differences is to later swap one or more registry keys, one or more services, one or more shortcuts, and / or a first and second version software product. One or more actions may need to be identified at a time (eg, after reboot). One set of differences may additionally or alternatively remain with one or more registry keys, one or more services, one or more shortcuts, and / or the first version of the software product running. One or more actions that may be performed (ie, actions that do not affect the execution of the first version of the software product as described above) may be identified.

インストールモジュール106は、第1のバージョンのソフトウェア製品の1つまたは複数の設定を保存することができる。例えば、インストールモジュール106は、第1のバージョンのソフトウェア製品の1つまたは複数の設定を読み取って、それらの設定を、設定データベース124などのデータベースに保存することができる。次いで、スワッピングモジュール108が、データベースからそれらの設定を読み取って、第2のバージョンのソフトウェア製品にインポートすることができる。したがって、第1のバージョンのソフトウェア製品の1つまたは複数の設定、例えばユーザ定義設定および/または他の設定を、第2のバージョンのソフトウェア製品で保つことができる。   The installation module 106 can store one or more settings of the first version of the software product. For example, the installation module 106 can read one or more settings of the first version of the software product and save the settings in a database, such as the settings database 124. The swapping module 108 can then read those settings from the database and import them into the second version of the software product. Accordingly, one or more settings of the first version of the software product, such as user-defined settings and / or other settings, can be maintained in the second version of the software product.

インストールの完了後(またはインストール前もしくはインストール中)、インストールモジュール106が、第1のバージョンと第2のバージョンのソフトウェア製品をスワップするサービスを登録することがある。スワッピングモジュール108を含み得る登録されるサービスは、実行モードプロセス(すなわちchkdskプロセス)、カーネルドライバ、システムサービス、および/または任意の他の適切なサービスでよい。   After installation is complete (or before or during installation), the install module 106 may register a service that swaps the first and second version software products. A registered service that may include the swapping module 108 may be an execution mode process (ie, a chkdsk process), a kernel driver, a system service, and / or any other suitable service.

ステップ306で、スワッピングモジュール108が、計算デバイス210の一部として、第1のバージョンと第2のバージョンのソフトウェア製品をスワップすることがある。スワッピングモジュール108は、様々な方法で第1のバージョンと第2のバージョンのソフトウェア製品をスワップすることができる。例えば、スワッピングモジュール108は、第2のバージョンのソフトウェア製品を作動させ、第1のバージョンのソフトウェア製品を作動停止させることによって、第1のバージョンと第2のバージョンのソフトウェア製品をスワップすることができる。本明細書で使用するとき、語句「第2のバージョンのソフトウェア製品を作動させる」は、第2のバージョンのソフトウェア製品の1つまたは複数のプロセスを動作させる、および/または第2のバージョンのソフトウェア製品の1つまたは複数のプロセスが動作するように準備する任意の手順を全般的に表す。逆に、語句「第1のバージョンのソフトウェア製品を作動停止させる」は、第1のバージョンのソフトウェア製品の1つまたは複数のプロセスの実行を停止させる、第1のバージョンのソフトウェア製品の実行を終了する準備をする、および/または第1のバージョンのソフトウェア製品が終了後に再始動しないように第1のバージョンのソフトウェア製品を変更する任意の手順を全般的に表す。   At step 306, the swapping module 108 may swap the first version and the second version of the software product as part of the computing device 210. The swapping module 108 can swap the first version and the second version of the software product in various ways. For example, the swapping module 108 can swap the first version and the second version of the software product by activating the second version of the software product and deactivating the first version of the software product. . As used herein, the phrase “activate the second version of the software product” operates one or more processes of the second version of the software product, and / or the second version of the software. Generally represents any procedure that prepares one or more processes of a product to operate. Conversely, the phrase “deactivate the first version of the software product” terminates execution of the first version of the software product that stops execution of one or more processes of the first version of the software product. Generally represents any procedure to prepare for and / or change the first version of the software product so that the first version of the software product does not restart after termination.

いくつかの実施形態では、スワッピングモジュール108は、第1のバージョンのソフトウェア製品が動作しているままで、第1のバージョンのソフトウェア製品の1つまたは複数のコンポーネントの状態を、それら1つまたは複数のコンポーネントがリブート後に再始動しないように変更することがある。例えば、スワッピングモジュール108は、第1のバージョンのソフトウェア製品での1つまたは複数のサービスおよび/またはドライバの状態を、それらがシステムリブート後に動作しないように変更することがある。   In some embodiments, the swapping module 108 may state the state of one or more components of the first version of the software product while the first version of the software product remains operating. Some components may change to not restart after reboot. For example, the swapping module 108 may change the state of one or more services and / or drivers in the first version of the software product so that they do not work after a system reboot.

スワッピングモジュール108は、第2のバージョンのソフトウェア製品において使用できるように第1のバージョンのソフトウェア製品の1つまたは複数のコンポーネントを更新するために、事前に識別されている第1のバージョンと第2のバージョンのソフトウェア製品の1組の相違を使用することがある。例えば、スワッピングモジュール108は、(例えば、新規のキーを追加する、古いキーを削除する、および/または既存のキーを変更することによって)第2のバージョンのソフトウェア製品の1つまたは複数のレジストリキーを更新することがある。追加または代替として、スワッピングモジュール108は、第2のバージョンのソフトウェア製品のいくつかまたはすべてのサービスおよび/またはドライバを更新(例えば追加、削除、および/または変更)することがある。また、スワッピングモジュール108は、第2のバージョンのソフトウェア製品の1つまたは複数のショートカット(シンボリックリンクを含む)を更新することもある。さらに、スワッピングモジュール108は、インストールプロセス外で計算システムを修正することができるカスタム実行可能ファイルなど、1つまたは複数のカスタムアクションを動作させることもある。   The swapping module 108 is configured to update the one or more previously identified first and second versions to update one or more components of the first version software product for use in the second version software product. A set of differences between different versions of a software product may be used. For example, the swapping module 108 may include one or more registry keys of the second version of the software product (eg, by adding new keys, deleting old keys, and / or modifying existing keys). May be updated. Additionally or alternatively, the swapping module 108 may update (eg, add, delete, and / or change) some or all services and / or drivers of the second version of the software product. The swapping module 108 may also update one or more shortcuts (including symbolic links) of the second version of the software product. In addition, the swapping module 108 may operate one or more custom actions, such as a custom executable that can modify the computing system outside of the installation process.

いくつかの実施形態によれば、スワッピングモジュール108は、第1のバージョンのソフトウェア製品が作動停止されて第2のバージョンのソフトウェア製品が作動された後に、第1のバージョンのソフトウェア製品をアンインストールおよび/またはその他の方法でクリーンアップすることがある。例えば、スワッピングモジュール108は、第1のバージョンのソフトウェア製品と関連付けられる任意のファイルおよび他のデータを消去することがある。   According to some embodiments, the swapping module 108 uninstalls and uninstalls the first version of the software product after the first version of the software product is deactivated and the second version of the software product is activated. May be cleaned up in other ways. For example, the swapping module 108 may erase any files and other data associated with the first version of the software product.

図4は、セキュリティソフトウェア製品を更新するための別の例示的なコンピュータ実装方法の流れ図であり、そのようなソフトウェア製品は、例えば、アンチウイルスアプリケーション、ファイアウォールアプリケーション、データ損失防止アプリケーション、および/または、計算システムを保護するためおよび/または計算システム上に記憶されたデータを保護するための任意の他のアプリケーションである。図4に示されるステップは、任意の適切なコンピュータ実行可能コードおよび/または計算システムによって実施することができる。いくつかの実施形態では、図4に示されるステップは、図1のシステム100および/または図2のシステム200の構成要素の1つまたは複数によって実施することができる。例えば、ステップ402で、インターフェースモジュール104が、計算デバイス210の一部として、第1のバージョンのセキュリティソフトウェア製品に第2のバージョンのセキュリティソフトウェア製品を上書きしてインストールすることを求める要求を受信することがある。ステップ404で、インストールモジュール106が、第1のバージョンのセキュリティソフトウェア製品の実行に影響を及ぼさない第2のバージョンのセキュリティソフトウェア製品の1つまたは複数のコンポーネントをインストールすることがある。ステップ402および404は、ステップ302および304と同様であり、図3で説明した方法の1つまたは複数で行うことができる。   FIG. 4 is a flow diagram of another exemplary computer-implemented method for updating a security software product, such as an anti-virus application, a firewall application, a data loss prevention application, and / or Any other application for protecting a computing system and / or protecting data stored on a computing system. The steps shown in FIG. 4 may be performed by any suitable computer executable code and / or computing system. In some embodiments, the steps shown in FIG. 4 may be performed by one or more of the components of system 100 of FIG. 1 and / or system 200 of FIG. For example, at step 402, the interface module 104 receives a request to install a first version of a security software product over a second version of the security software product as part of the computing device 210. There is. At step 404, the install module 106 may install one or more components of the second version of the security software product that do not affect the execution of the first version of the security software product. Steps 402 and 404 are similar to steps 302 and 304, and can be performed with one or more of the methods described in FIG.

ステップ406で、インストールモジュール106が、第1のバージョンのソフトウェア製品の1つまたは複数のコンポーネントの状態を、それら1つまたは複数のコンポーネントがリブート後に再始動しないように変更することがある。例えば、インストールモジュール106は、第1のバージョンのソフトウェア製品の1つまたは複数のサービスおよび/またはドライバを、それらがシステムリブート後に動作しないように変更することがある。そのようなプロセスは、アンロードおよび/または停止することができないサービスおよび/またはドライバに特に有用であることがある。あるいは、リブート後にサービスおよびドライバが始動を許される前に、実行モードプロセスを使用してサービスおよびドライバが更新される場合には、リブート前にサービスおよびドライバを変更する必要はないことがある。   At step 406, the install module 106 may change the state of one or more components of the first version of the software product so that the one or more components do not restart after reboot. For example, the install module 106 may modify one or more services and / or drivers of the first version of the software product so that they do not work after a system reboot. Such a process may be particularly useful for services and / or drivers that cannot be unloaded and / or stopped. Alternatively, if services and drivers are updated using the run mode process before the services and drivers are allowed to start after reboot, it may not be necessary to change the services and drivers before rebooting.

ステップ408で、インストールモジュール106が、第1のバージョンのソフトウェア製品によって保護されている計算システムをリブートさせることがある。いくつかの実施形態では、リブートは、第2のバージョンのソフトウェア製品をインストールした後であって第2のバージョンのソフトウェア製品を作動させる前に行われることがある。いくつかの実施形態では、セキュリティ脅威から計算システムを保護するために、第2のバージョンのソフトウェア製品は、計算システムの1つまたは複数のネットワークアダプタが有効化される前にリブートプロセス中に作動されることがある。例えば、スワッピングモジュール108が、第2のバージョンのソフトウェア製品を、ブートプロセスにおいて早期に(すなわちネットワークアダプタが作動される前に)作動させることがある。あるいは、スワッピングモジュール108は、第2のバージョンのソフトウェア製品が有効化されるまで、計算システムの1つまたは複数のネットワークアダプタを無効化しておくことがある。また、スワッピングモジュール108は、第1のバージョンと第2のバージョンのソフトウェア製品がスワップされる間に、計算システムを保護するための任意の他の適切なアクションを行うこともある。   At step 408, the installation module 106 may cause the computing system protected by the first version of the software product to reboot. In some embodiments, the reboot may occur after installing the second version of the software product and before operating the second version of the software product. In some embodiments, in order to protect the computing system from security threats, the second version of the software product is activated during the reboot process before one or more network adapters of the computing system are enabled. Sometimes. For example, the swapping module 108 may activate the second version of the software product early in the boot process (ie, before the network adapter is activated). Alternatively, the swapping module 108 may disable one or more network adapters of the computing system until the second version of the software product is enabled. The swapping module 108 may also perform any other suitable action to protect the computing system while the first version and the second version of the software product are swapped.

いくつかの実施形態では、第1のバージョンのソフトウェア製品は、リブートの直後には無効化されないことがある。例えば、第1のリブート後に、第1のバージョンのソフトウェア製品からのセキュリティドライバ(例えばアンチウイルスおよび/またはファイアウォールドライバなど)が動作することがある。第1のリブート中、実行モードアプリケーションが動作することがあり、これは、第1のバージョンのソフトウェア製品の1つまたは複数のコンポーネントを第2のバージョンのソフトウェア製品向けに更新することができる。例えば、実行モードアプリケーションは、それらの現行のインスタンスに影響を及ぼすことなくポイント変更することができる。計算システムのオペレーティングシステムが、完全には機能しない(すなわち第1のリブート後に完全にはロードされていない)ことがある。また、ソフトウェア製品も、このリブート後に完全にはロードされていないことがある。第1のバージョンのソフトウェア製品のコンポーネントが更新された後、第1のバージョンのソフトウェア製品は、無効化されるように設定されることがあり、第2のバージョンのソフトウェア製品は、第2のリブート後に動作するように有効化されるように設定されることがある。この時点で、実行モードアプリケーションが第2のリブートを強制することがある。そのような状況では、第1のバージョンのソフトウェア製品は、第2のリブート後まで動作し続けることができる。   In some embodiments, the first version of the software product may not be disabled immediately after reboot. For example, after a first reboot, a security driver (eg, an anti-virus and / or firewall driver, etc.) from a first version software product may work. During the first reboot, the execution mode application may run, which may update one or more components of the first version of the software product for the second version of the software product. For example, run mode applications can change points without affecting their current instances. The operating system of the computing system may not be fully functional (ie not fully loaded after the first reboot). Also, the software product may not be fully loaded after this reboot. After the components of the first version of the software product are updated, the first version of the software product may be set to be disabled, and the second version of the software product may be set to the second reboot. May be set to be activated to work later. At this point, the execution mode application may force a second reboot. In such a situation, the first version of the software product can continue to operate until after the second reboot.

ステップ410で、スワッピングモジュール108が、第1のバージョンと第2のバージョンのセキュリティソフトウェア製品をスワップすることがある。ステップ410は、図3のステップ306と同様である。したがって、ステップ306の論述で開示したプロセスの1つまたは複数を、ステップ410を実施するためにも使用することができる。   At step 410, the swapping module 108 may swap the first version and the second version of the security software product. Step 410 is similar to step 306 in FIG. Accordingly, one or more of the processes disclosed in the discussion of step 306 can also be used to perform step 410.

本開示の実施形態は、計算システムが脆弱になることがないように、既存のバージョンのセキュリティ製品に新規のバージョンのセキュリティ製品を上書きしてインストールすることを可能にすることができる。例えば、本明細書に記載するインストールプロセスは、第1のセキュリティソフトウェアアプリケーションの作動停止と第2のセキュリティソフトウェアアプリケーションの作動との間のダウンタイムがないように実施することができる。   Embodiments of the present disclosure may allow an existing version of a security product to be installed over a new version of the security product so that the computing system is not vulnerable. For example, the installation process described herein can be implemented such that there is no downtime between the deactivation of the first security software application and the activation of the second security software application.

図5は、本願で説明および/または図示する実施形態の1つまたは複数を実施することができる例示的な計算システム510のブロック図である。計算システム510は、コンピュータ可読命令を実行することができる任意のシングルプロセッサまたはマルチプロセッサ計算装置またはシステムを広範に表す。計算システム510の例としては、限定はしないが、ワークステーション、ラップトップコンピュータ、クライアント側の端末、サーバ、分散コンピューティングシステム、ハンドヘルド装置、または任意の他の計算システムもしくは装置が挙げられる。その最も基本的な構成では、計算システム510は、少なくとも1つのプロセッサ514と、システムメモリ516とを含むことができる。   FIG. 5 is a block diagram of an exemplary computing system 510 that can implement one or more of the embodiments described and / or illustrated herein. Computing system 510 broadly represents any single or multiprocessor computing device or system capable of executing computer readable instructions. Examples of computing system 510 include, but are not limited to, a workstation, laptop computer, client-side terminal, server, distributed computing system, handheld device, or any other computing system or device. In its most basic configuration, computing system 510 can include at least one processor 514 and system memory 516.

処理装置514は、データを処理することができる、または命令を解釈および実行することができる任意の種類または形態の処理ユニットを全般的に表す。いくつかの実施形態では、処理装置514は、ソフトウェアアプリケーションまたはモジュールから命令を受信することがある。これらの命令は、本願で説明および/または図示する1つまたは複数の例示的実施形態の機能を処理装置514に実施させることができる。例えば、処理装置514は、単独で、または他の要素と組み合わせて、本明細書で述べる受信、インストール、スワッピング、リブート、無効化、見合わせ、変更、および/またはアンインストールステップの1つまたは複数を実施することができ、および/またはそれらを実施するための手段であってよい。また、処理装置514は、本願で説明および/または図示する任意の他のステップ、方法、またはプロセスを実施することもでき、および/またはそれらを実施するための手段であってもよい。   Processing unit 514 generally represents any type or form of processing unit capable of processing data or interpreting and executing instructions. In some embodiments, the processing unit 514 may receive instructions from a software application or module. These instructions may cause processing unit 514 to perform the functions of one or more exemplary embodiments described and / or illustrated herein. For example, the processing unit 514, alone or in combination with other elements, performs one or more of the receive, install, swapping, reboot, disable, mate, modify, and / or uninstall steps described herein. It may be implemented and / or a means for implementing them. The processing device 514 may also perform and / or be a means for performing any other steps, methods, or processes described and / or illustrated herein.

システムメモリ516は、データおよび/または他のコンピュータ可読命令を記憶することができる任意の種類または形態の揮発性または不揮発性記憶装置または媒体を全般的に表す。システムメモリ516の例としては、限定はしないが、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、フラッシュメモリ、または任意の他の適切なメモリ装置が挙げられる。必ずそうである必要はないが、いくつかの実施形態では、計算システム510は、揮発性メモリユニット(例えばシステムメモリ516など)と不揮発性メモリ装置(例えば以下で詳細に説明する主記憶装置532など)の両方を含むこともある。一例では、図1からのモジュール102の1つまたは複数をシステムメモリ516にロードすることができる。   System memory 516 generally represents any type or form of volatile or non-volatile storage device or medium capable of storing data and / or other computer-readable instructions. Examples of system memory 516 include, but are not limited to, random access memory (RAM), read only memory (ROM), flash memory, or any other suitable memory device. Although not necessarily so, in some embodiments, computing system 510 may include a volatile memory unit (such as system memory 516) and a non-volatile memory device (such as main memory 532 described in detail below). ) May be included. In one example, one or more of the modules 102 from FIG. 1 can be loaded into the system memory 516.

いくつかの実施形態では、例示的な計算システム510は、プロセッサ514およびシステムメモリ516に加えて、1つまたは複数の構成要素または要素を含むこともできる。例えば、図5に示されるように、計算システム510は、メモリコントローラ518と、入出力(I/O)制御装置520と、通信インターフェース522とを含むことがあり、これらはそれぞれ通信インフラストラクチャ512を介して相互接続されることがある。通信インフラストラクチャ512は、計算装置の1つまたは複数の構成要素間の通信を容易くすることができる任意の種類または形態のインフラストラクチャを全般的に表す。通信インフラストラクチャ512の例としては、限定はしないが、通信バス(ISA、PCI、PCIe、または同様のバスなど)およびネットワークが挙げられる。   In some embodiments, exemplary computing system 510 may also include one or more components or elements in addition to processor 514 and system memory 516. For example, as shown in FIG. 5, the computing system 510 may include a memory controller 518, an input / output (I / O) controller 520, and a communication interface 522, each of which includes a communication infrastructure 512. May be interconnected. Communication infrastructure 512 generally represents any type or form of infrastructure that can facilitate communication between one or more components of a computing device. Examples of communication infrastructure 512 include, but are not limited to, communication buses (such as ISA, PCI, PCIe, or similar buses) and networks.

メモリ制御装置518は、メモリもしくはデータを取り扱うことができる、または計算システム510の1つまたは複数の構成要素間の通信を制御することができる任意の種類または形態のデバイスを全般的に表す。例えば、いくつかの実施形態では、メモリ制御装置518は、通信インフラストラクチャ512を介する処理装置514と、システムメモリ516と、I/O制御装置520との間の通信を制御することができる。いくつかの実施形態では、メモリ制御装置は、単独で、または他の要素と組み合わせて、受信、インストール、スワッピング、リブート、無効化、見合わせ、変更、および/またはアンインストールなど、本願で説明および/または図示するステップまたは機能の1つまたは複数を実施することができ、および/またはそれらを実施するための手段であってよい。   Memory controller 518 generally represents any type or form of device that can handle memory or data or that can control communication between one or more components of computing system 510. For example, in some embodiments, the memory controller 518 can control communication between the processing device 514, the system memory 516, and the I / O controller 520 via the communication infrastructure 512. In some embodiments, the memory controller alone or in combination with other elements is described and / or described herein, including receiving, installing, swapping, rebooting, disabling, matching, changing, and / or uninstalling. Alternatively, one or more of the illustrated steps or functions may be performed and / or may be a means for performing them.

I/O制御装置520は、計算デバイスの入出力機能を調整および/または制御することができる任意の種類または形態のモジュールを全般的に表す。例えば、いくつかの実施形態では、I/O制御装置520は、処理装置514、システムメモリ516、通信インターフェース522、ディスプレイアダプタ526、入力インターフェース530、および記憶インターフェース534など、計算システム510の1つまたは複数の要素間でのデータの転送を制御する、または容易くすることができる。I/O制御装置520は、単独で、または他の要素と組み合わせて、本明細書で述べる受信、インストール、スワッピング、リブート、無効化、自制、変更、および/またはアンインストールステップの1つまたは複数を実施するために使用することができ、および/またはそれらを実施するための手段であってよい。また、I/O制御装置520は、本開示に記載する他のステップおよび機能を実施するために使用することもでき、および/またはそれらを実施するための手段であってもよい。   The I / O controller 520 generally represents any type or form of module that can coordinate and / or control the input / output functions of a computing device. For example, in some embodiments, the I / O controller 520 includes one or more of the computing systems 510, such as the processing unit 514, the system memory 516, the communication interface 522, the display adapter 526, the input interface 530, and the storage interface 534. The transfer of data between multiple elements can be controlled or facilitated. The I / O controller 520, alone or in combination with other elements, can include one or more of the receive, install, swapping, reboot, disable, self-control, change, and / or uninstall steps described herein. Can be used to implement and / or a means for implementing them. The I / O controller 520 can also be used to perform and / or be a means for performing other steps and functions described in this disclosure.

通信インターフェース522は、例示的な計算システム510と1つまたは複数の追加の装置との間の通信を容易くすることができる任意の種類または形態の通信装置またはアダプタを広範に表す。例えば、いくつかの実施形態では、通信インターフェース522は、計算システム510と、追加の計算システムを含むプライベートネットワークまたはパブリックネットワークとの間の通信を容易くすることができる。通信インターフェース522の例としては、限定はしないが、有線ネットワークインターフェース(ネットワークインターフェースカードなど)、無線ネットワークインターフェース(無線ネットワークインターフェースカードなど)、モデム、および任意の他の適切なインターフェースが挙げられる。少なくとも1つの実施形態では、通信インターフェース522は、インターネットなどのネットワークへの直接のリンクを介して遠隔サーバへの直接的な接続を提供することができる。また、通信インターフェース522は、そのような接続を、例えばローカルエリアネットワーク(イーサネットネットワークなど)、パーソナルエリアネットワーク、電話もしくはケーブルネットワーク、セルラ電話接続、衛星データ接続、または任意の他の適切な接続を介して間接的に提供することもできる。   Communication interface 522 broadly represents any type or form of communication device or adapter that can facilitate communication between exemplary computing system 510 and one or more additional devices. For example, in some embodiments, the communication interface 522 can facilitate communication between the computing system 510 and a private or public network that includes additional computing systems. Examples of communication interface 522 include, but are not limited to, a wired network interface (such as a network interface card), a wireless network interface (such as a wireless network interface card), a modem, and any other suitable interface. In at least one embodiment, communication interface 522 may provide a direct connection to a remote server via a direct link to a network such as the Internet. The communication interface 522 also provides such connections via, for example, a local area network (such as an Ethernet network), a personal area network, a telephone or cable network, a cellular telephone connection, a satellite data connection, or any other suitable connection. Can also be provided indirectly.

いくつかの実施形態では、通信インターフェース522は、外部バスまたは通信チャネルを介する計算システム510と1つまたは複数の追加のネットワークまたは記憶デバイスとの間の通信を容易くするように構成されたホストアダプタを表すこともある。ホストアダプタの例としては、限定はしないが、SCSIホストアダプタ、USBホストアダプタ、IEEE1394ホストアダプタ、SATAおよびeSATAホストアダプタ、ATAおよびPATAホストアダプタ、ファイバチャネルインターフェースアダプタ、イーサネットアダプタなどが挙げられる。また、通信インターフェース522は、計算システム510が分散コンピューティングまたは遠隔コンピューティングに従事できるようにすることもある。例えば、通信インターフェース522は、命令を実行するために、遠隔デバイスから命令を受信する、または遠隔デバイスに命令を送信することがある。いくつかの実施形態では、通信インターフェース522は、単独で、または他の要素と組み合わせて、本明細書で開示する受信、インストール、スワッピング、リブート、無効化、自制、変更、および/またはアンインストールステップの1つまたは複数を実施することができ、および/またはそれらを実施するための手段であってよい。また、通信インターフェース522は、本開示に記載する他のステップおよび機能を実施するために使用することもでき、および/またはそれらを実施するための手段であってもよい。   In some embodiments, the communication interface 522 includes a host adapter configured to facilitate communication between the computing system 510 and one or more additional networks or storage devices via an external bus or communication channel. Sometimes expressed. Examples of host adapters include, but are not limited to, SCSI host adapters, USB host adapters, IEEE 1394 host adapters, SATA and eSATA host adapters, ATA and PATA host adapters, Fiber Channel interface adapters, Ethernet adapters, and the like. Communication interface 522 may also allow computing system 510 to engage in distributed or remote computing. For example, the communication interface 522 may receive instructions from a remote device or send instructions to a remote device to execute the instructions. In some embodiments, the communication interface 522, alone or in combination with other elements, receives, installs, swaps, reboots, disables, restraints, changes, and / or uninstall steps disclosed herein. Can be implemented and / or can be a means for implementing them. The communication interface 522 may also be used to perform and / or be a means for performing other steps and functions described in this disclosure.

図5に示されるように、計算システム510は、ディスプレイアダプタ526を介して通信インフラストラクチャ512に結合された少なくとも1つのディスプレイ装置524を含むこともある。ディスプレイ装置524は、ディスプレイアダプタ526によって転送された情報を視覚的に表示することができる任意の種類または形態の装置を全般的に表す。同様に、ディスプレイアダプタ526は、ディスプレイ装置524上に表示するために通信インフラストラクチャ512から(または当技術分野で知られているフレームバッファから)グラフィック、テキスト、および他のデータを転送するように構成された任意の種類または形態の装置を全般的に表す。   As shown in FIG. 5, the computing system 510 may include at least one display device 524 coupled to the communications infrastructure 512 via a display adapter 526. Display device 524 generally represents any type or form of device capable of visually displaying information transferred by display adapter 526. Similarly, display adapter 526 is configured to transfer graphics, text, and other data from communication infrastructure 512 (or from a frame buffer known in the art) for display on display device 524. It generally represents any type or form of device that has been designated.

図5に示されるように、例示的な計算システム510は、入力インターフェース530を介して通信インフラストラクチャ512に結合された少なくとも1つの入力デバイス528を含むこともある。入力デバイス528は、コンピュータまたは人によって生成された入力を例示的な計算システム510に提供することができる任意の種類または形態の入力デバイスを全般的に表す。入力デバイス528の例としては、限定はしないが、キーボード、ポインティングデバイス、音声認識デバイス、または任意の他の入力デバイスが挙げられる。少なくとも1つの実施形態では、入力デバイス528は、単独で、または他の要素と組み合わせて、本明細書で開示する受信、インストール、スワッピング、リブート、無効化、自制、変更、および/またはアンインストールステップの1つまたは複数を実施することができ、および/またはそれらを実施するための手段であってよい。また、入力デバイス528は、本開示に記載する他のステップおよび機能を実施するために使用することもでき、および/またはそれらを実施するための手段であってもよい。   As shown in FIG. 5, the exemplary computing system 510 may include at least one input device 528 coupled to the communication infrastructure 512 via the input interface 530. Input device 528 generally represents any type or form of input device that can provide computer-generated or human-generated input to exemplary computing system 510. Examples of input device 528 include, but are not limited to, a keyboard, pointing device, voice recognition device, or any other input device. In at least one embodiment, the input device 528, alone or in combination with other elements, receives, installs, swaps, reboots, disables, restraints, changes, and / or uninstall steps disclosed herein. Can be implemented and / or can be a means for implementing them. Input device 528 can also be used to perform and / or be a means for performing other steps and functions described in this disclosure.

図5に示されるように、例示的な計算システム510は、記憶インターフェース534を介して通信インフラストラクチャ512に結合された主記憶装置532およびバックアップ記憶装置533を含むこともできる。記憶装置532および533は、データおよび/または他のコンピュータ可読命令を記憶することができる任意の種類または形態の記憶装置または媒体を全般的に表す。例えば、記憶装置532および533は、磁気ディスクドライブ(例えばいわゆるハードドライブ)、フロッピーディスクドライブ、磁気テープドライブ、光ディスクドライブ、フラッシュドライブなどでよい。記憶インターフェース534は、記憶装置532および533と計算システム510の他の構成要素との間でデータを転送するための任意の種類または形態のインターフェースまたは装置を全般的に表す。一例では、図1からのデータベース120が主記憶装置532に記憶されることがある。   As shown in FIG. 5, the exemplary computing system 510 may also include a main storage device 532 and a backup storage device 533 that are coupled to the communication infrastructure 512 via a storage interface 534. Storage devices 532 and 533 generally represent any type or form of storage device or medium capable of storing data and / or other computer-readable instructions. For example, the storage devices 532 and 533 may be magnetic disk drives (eg, so-called hard drives), floppy disk drives, magnetic tape drives, optical disk drives, flash drives, and the like. Storage interface 534 generally represents any type or form of interface or device for transferring data between storage devices 532 and 533 and other components of computing system 510. In one example, database 120 from FIG. 1 may be stored in main memory 532.

いくつかの実施形態では、記憶装置532および533は、コンピュータソフトウェア、データ、または他のコンピュータ可読情報を記憶するように構成された着脱可能な記憶ユニットからの読み出しおよび/またはそのような記憶ユニットへの書き込みを行うように構成されることがある。適切な着脱可能な記憶ユニットの例としては、限定はしないが、フロッピーディスク、磁気テープ、光ディスク、フラッシュメモリ装置などが挙げられる。また、記憶装置532および533は、コンピュータソフトウェア、データ、または他のコンピュータ可読命令を計算システム510にロードできるようにするための他の同様の構造または装置を含むこともできる。例えば、記憶装置532および533は、ソフトウェア、データ、または他のコンピュータ可読情報の読み出しおよび書き込みを行うように構成されることがある。また、記憶装置532および533は、計算システム510の一部でもよく、または他のインターフェースシステムによってアクセスされる別個の装置でもよい。   In some embodiments, storage devices 532 and 533 read from and / or to a removable storage unit configured to store computer software, data, or other computer-readable information. May be configured to write. Examples of suitable removable storage units include, but are not limited to, floppy disks, magnetic tapes, optical disks, flash memory devices, and the like. Storage devices 532 and 533 may also include other similar structures or devices to allow computer software, data, or other computer readable instructions to be loaded into computing system 510. For example, storage devices 532 and 533 may be configured to read and write software, data, or other computer readable information. Storage devices 532 and 533 may also be part of computing system 510 or may be separate devices accessed by other interface systems.

いくつかの実施形態では、記憶デバイス532および533は、例えば、単独で、または他の要素と組み合わせて、本明細書で開示する受信、インストール、スワッピング、リブート、無効化、自制、変更、および/またはアンインストールステップの1つまたは複数を実施するために使用することができ、および/またはそれらを実施するための手段であってよい。また、記憶デバイス532および533は、本開示に記載する他のステップおよび機能を実施するために使用することもでき、および/またはそれらを実施するための手段であってもよい。   In some embodiments, storage devices 532 and 533 may be, for example, alone or in combination with other elements, receive, install, swap, reboot, disable, self-control, change, and / or disclosed herein. Or it can be used to perform one or more of the uninstall steps and / or be a means for performing them. Storage devices 532 and 533 may also be used to perform and / or be a means for performing other steps and functions described in this disclosure.

多くの他の装置またはサブシステムを計算システム510に接続することができる。逆に、図5に示される構成要素および装置は、本願で説明および/または図示する実施形態を実施するためにすべて揃っていなければならないわけではない。また、上で言及した装置およびサブシステムは、図5に示されるのとは異なる方法で相互接続されることもある。また、計算システム510は、任意の数のソフトウェア、ファームウェア、および/またはハードウェア構成を採用することができる。例えば、本明細書で開示する例示的実施形態の1つまたは複数を、コンピュータ可読媒体上にコンピュータプログラム(コンピュータソフトウェア、ソフトウェアアプリケーション、コンピュータ可読命令、またはコンピュータ制御論理とも呼ぶ)として符合化することができる。語句「コンピュータ可読媒体」は、コンピュータ可読命令を記憶または担持することができる任意の形態の装置、担体、または媒体を全般的に表す。コンピュータ可読媒体の例としては、限定はしないが、搬送波など伝送型媒体や、物理的媒体、例えば磁気記憶媒体(例えばハードディスクドライブおよびフロッピーディスク)、光記憶媒体(例えばCD−ROMまたはDVD−ROM)、電子記憶媒体(例えばソリッドステートドライブおよびフラッシュ媒体)、および他の配信システムが挙げられる。   Many other devices or subsystems can be connected to the computing system 510. Conversely, the components and apparatus shown in FIG. 5 do not have to be complete in order to implement the embodiments described and / or illustrated herein. Also, the devices and subsystems referred to above may be interconnected in different ways than shown in FIG. In addition, the computing system 510 may employ any number of software, firmware, and / or hardware configurations. For example, one or more of the exemplary embodiments disclosed herein may be encoded as a computer program (also referred to as computer software, software application, computer readable instructions, or computer control logic) on a computer readable medium. it can. The phrase “computer-readable medium” generally represents any form of device, carrier, or medium capable of storing or carrying computer-readable instructions. Examples of computer readable media include, but are not limited to, transmission media such as carrier waves, physical media such as magnetic storage media (eg hard disk drives and floppy disks), optical storage media (eg CD-ROM or DVD-ROM). Electronic storage media (eg, solid state drives and flash media), and other distribution systems.

コンピュータプログラムを含むコンピュータ可読媒体は、計算システム510にロードすることができる。次いで、コンピュータ可読媒体に記憶されたコンピュータプログラムの全体または一部を、システムメモリ516、および/または記憶装置532および533の様々な部分に記憶することができる。プロセッサ514によって実行されるとき、計算システム510にロードされたコンピュータプログラムは、本願で説明および/または図示する1つまたは複数の例示的実施形態の機能をプロセッサ514に実施させることができ、および/またはプロセッサ514を、そのような機能を実施するための手段にすることができる。追加または代替として、本願で説明および/または図示する例示的実施形態の1つまたは複数は、ファームウェアおよび/またはハードウェアの形で実装することができる。例えば、計算システム510は、本明細書で開示する例示的実施形態の1つまたは複数を実装するように適合された特定用途向け集積回路(ASIC)として構成することができる。   Computer readable media including the computer program can be loaded into the computing system 510. All or a portion of the computer program stored on the computer readable medium can then be stored in the system memory 516 and / or various portions of the storage devices 532 and 533. When executed by processor 514, a computer program loaded into computing system 510 may cause processor 514 to perform the functions of one or more exemplary embodiments described and / or illustrated herein, and / or Alternatively, processor 514 can be a means for performing such functions. Additionally or alternatively, one or more of the exemplary embodiments described and / or illustrated herein can be implemented in the form of firmware and / or hardware. For example, the computing system 510 can be configured as an application specific integrated circuit (ASIC) adapted to implement one or more of the exemplary embodiments disclosed herein.

図6は、クライアントシステム610、620、および630、ならびにサーバ640および645をネットワーク650に結合させることができる例示的なネットワークアーキテクチャ600のブロック図である。クライアントシステム610、620、および630は、図5の例示的な計算システム510など、任意の種類または形態の計算装置またはシステムを全般的に表す。一例では、クライアントシステム610は、図1からのシステム100を含むことができる。   FIG. 6 is a block diagram of an exemplary network architecture 600 in which client systems 610, 620, and 630, and servers 640 and 645 can be coupled to a network 650. Client systems 610, 620, and 630 generally represent any type or form of computing device or system, such as the example computing system 510 of FIG. In one example, client system 610 can include system 100 from FIG.

同様に、サーバ640および645は、様々なデータベースサービスを提供するように、および/または何らかのソフトウェアアプリケーションを実行するように構成された、アプリケーションサーバやデータベースサーバなどの計算装置またはシステムを全般的に表す。ネットワーク650は、例えばイントラネット、ワイドエリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)、パーソナルエリアネットワーク(PAN)、またはインターネットを含めた任意の遠隔通信ネットワークまたはコンピュータネットワークを全般的に表す。   Similarly, servers 640 and 645 generally represent a computing device or system, such as an application server or database server, configured to provide various database services and / or execute some software application. . Network 650 generally represents any telecommunications network or computer network including, for example, an intranet, a wide area network (WAN), a local area network (LAN), a personal area network (PAN), or the Internet.

図6に示されるように、1つまたは複数の記憶装置660(1)〜(N)をサーバ640に直接取り付けることができる。同様に、1つまたは複数の記憶装置670(1)〜(N)をサーバ645に直接取り付けることができる。記憶装置660(1)〜(N)および670(1)〜(N)は、データおよび/または他のコンピュータ可読命令を記憶することができる任意の種類または形態の記憶装置または媒体を全般的に表す。いくつかの実施形態では、記憶装置660(1)〜(N)および記憶装置670(1)〜(N)は、NFS、SMB、またはCIFSなど様々なプロトコルを使用してサーバ640および645と通信するように構成されたネットワークアタッチストレージ(NAS)装置を表すことがある。   As shown in FIG. 6, one or more storage devices 660 (1)-(N) can be directly attached to the server 640. Similarly, one or more storage devices 670 (1)-(N) can be directly attached to server 645. Storage devices 660 (1)-(N) and 670 (1)-(N) generally represent any type or form of storage device or medium capable of storing data and / or other computer-readable instructions. Represent. In some embodiments, storage devices 660 (1)-(N) and storage devices 670 (1)-(N) communicate with servers 640 and 645 using various protocols such as NFS, SMB, or CIFS. May represent a network attached storage (NAS) device configured to do so.

また、サーバ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は、データおよび/または他のコンピュータ可読命令を記憶することができる任意の種類または形態の記憶デバイスまたは媒体を全般的に表す。   Servers 640 and 645 may also be connected to a storage area network (SAN) fabric 680. The SAN fabric 680 generally represents any type or form of computer network or architecture that can facilitate communication between multiple storage devices. The SAN fabric 680 can facilitate communication between the servers 640 and 645 and the plurality of storage devices 690 (1)-(N) and / or the intelligent storage array 695. SAN fabric 680 also facilitates communication between client systems 610, 620, and 630 and storage devices 690 (1)-(N) and / or intelligent storage array 695 via network 650 and servers 640 and 645. The devices 690 (1)-(N) and the array 695 also appear as local connection devices to the client systems 610, 620, and 630. Similar to storage devices 660 (1)-(N) and storage devices 670 (1)-(N), storage devices 690 (1)-(N) and intelligent storage array 695 may be data and / or other computer readable. Generally represents any type or form of storage device or medium capable of storing instructions.

いくつかの実施形態では、図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は、データを交換するための(インターネットなどの)ネットワークの使用を示すが、本願で説明および/または図示する実施形態は、インターネットまたは任意の特定のネットワークベース環境に限定されない。   In some embodiments, referring to the exemplary computing system 510 of FIG. 5, using a communication interface, such as the communication interface 522 of FIG. 5, between each client system 610, 620, and 630 and the network 650. Connectivity can be provided. Client systems 610, 620, and 630 may be able to access information on servers 640 and 645 using, for example, a web browser or other client software. Such software includes client systems 610, 620, and 630, server 640, server 645, storage devices 660 (1)-(N), storage devices 670 (1)-(N), storage device 690 (1). ~ (N), or may allow access to data hosted by the intelligent storage array 695. Although FIG. 6 illustrates the use of a network (such as the Internet) for exchanging data, the embodiments described and / or illustrated herein are not limited to the Internet or any particular network-based environment.

少なくとも1つの実施形態では、本明細書で開示した1つまたは複数の例示的実施形態の全部または一部をコンピュータプログラムとして符合化し、サーバ640、サーバ645、記憶デバイス660(1)〜(N)、記憶デバイス670(1)〜(N)、記憶デバイス690(1)〜(N)、インテリジェント記憶アレイ695、またはそれらの任意の組合せにロードし、それらによって実行することができる。また、本明細書で開示する1つまたは複数の例示的実施形態の全部または一部をコンピュータプログラムとして符合化し、サーバ640に記憶し、サーバ645によって動作させ、ネットワーク650を介してクライアントシステム610、620、および630に分散することもできる。したがって、ネットワークアーキテクチャ600は、単独で、または他の要素と組み合わせて、本明細書で開示する受信、インストール、スワッピング、リブート、無効化、自制、変更、および/またはアンインストールステップの1つまたは複数を実施することができ、および/またはそれらを実施するための手段であってよい。また、ネットワークアーキテクチャ600は、本開示に記載する他のステップおよび機能を実施するために使用することもでき、および/またはそれらを実施するための手段であってもよい。   In at least one embodiment, all or a portion of one or more exemplary embodiments disclosed herein are encoded as a computer program to create a server 640, server 645, storage device 660 (1)-(N). , Storage devices 670 (1)-(N), storage devices 690 (1)-(N), intelligent storage array 695, or any combination thereof, can be executed by them. Also, all or part of one or more exemplary embodiments disclosed herein may be encoded as a computer program, stored on a server 640, operated by server 645, and client system 610 via network 650, 620 and 630 can also be distributed. Accordingly, the network architecture 600, alone or in combination with other elements, can include one or more of the receive, install, swap, reboot, disable, self-control, change, and / or uninstall steps disclosed herein. And / or a means for implementing them. The network architecture 600 may also be used to perform and / or be a means for performing other steps and functions described in this disclosure.

上で詳述したように、計算システム510、および/またはネットワークアーキテクチャ600の1つまたは複数の構成要素は、単独で、または他の要素と組み合わせて、ソフトウェア製品を更新するための例示的な方法の1つまたは複数のステップを実施することができ、および/またはそれらを実施するための手段であってよい。   As detailed above, one or more components of computing system 510 and / or network architecture 600, alone or in combination with other elements, are exemplary methods for updating a software product. One or more of the steps may be performed and / or may be a means for performing them.

前述の開示では、特定のブロック図、流れ図、および例を使用して様々な実施形態を記載してきたが、本願で説明および/または図示した各ブロック図の構成要素、流れ図のステップ、操作、および/または構成要素は、多様なハードウェア構成、ソフトウェア構成、またはファームウェア構成(またはそれらの任意の組合せ)を使用して、個別に、および/またはまとめて実装することができる。さらに、他の構成要素に含まれた構成要素の開示はどれも、同じ機能を実現するために多くの他のアーキテクチャを実装することができるので、例示的な性質のものとみなすべきである。   Although the foregoing disclosure has described various embodiments using specific block diagrams, flowcharts, and examples, the components of each block diagram described and / or illustrated herein, the steps of the flowchart, operations, and The components may be implemented individually and / or collectively using a variety of hardware configurations, software configurations, or firmware configurations (or any combination thereof). Moreover, any disclosure of components contained in other components should be considered exemplary in nature as many other architectures can be implemented to achieve the same functionality.

本願で説明および/または図示したプロセスパラメータおよびステップのシーケンスは、単に例として提示したものであり、望みに応じて変えることができる。例えば、本明細書で図示および/または説明したステップは、特定の順序で図示または論述していることがあるが、これらのステップは、必ずしも図示または論述した順序で行う必要はない。また、本願で説明および/または図示した様々な例示的な方法は、本願で説明または図示したステップの1つまたは複数を省くこともでき、あるいは開示したステップに加えて追加のステップを含むこともできる。   The process parameters and sequence of steps described and / or illustrated herein are provided by way of example only and can be varied as desired. For example, although the steps illustrated and / or described herein may be illustrated or discussed in a particular order, these steps need not necessarily be performed in the order illustrated or discussed. In addition, the various exemplary methods described and / or illustrated herein may omit one or more of the steps described or illustrated herein, or may include additional steps in addition to the disclosed steps. it can.

様々な実施形態を、完全に機能する計算システムの文脈で本願で説明および/または図示してきたが、これらの例示的実施形態の1つまたは複数は、実際に分散を行うために使用されるコンピュータ可読媒体の特定の種類には関係なく多様な形態でプログラム製品として分散させることができる。また、本明細書で開示する実施形態は、特定のタスクを実施するソフトウェアモジュールを使用して実装することもできる。これらのソフトウェアモジュールは、コンピュータ可読記憶媒体上または計算システム内に記憶されることがあるスクリプト、バッチ、または他の実行可能なファイルを含み得る。いくつかの実施形態では、これらのソフトウェアモジュールは、本明細書で開示する例示的実施形態の1つまたは複数を実施するように計算システムを構成することができる。   Although various embodiments have been described and / or illustrated herein in the context of a fully functional computing system, one or more of these exemplary embodiments may be used to actually perform the distribution. Regardless of the specific type of readable medium, it can be distributed as a program product in various forms. The embodiments disclosed herein can also be implemented using software modules that perform particular tasks. These software modules may include scripts, batches, or other executable files that may be stored on a computer-readable storage medium or in a computing system. In some embodiments, these software modules can configure a computing system to implement one or more of the exemplary embodiments disclosed herein.

さらに、本明細書で述べるモジュールの1つまたは複数は、データ、物理的デバイス、および/または物理的デバイスの表現を、ある形態から別の形態に変えることができる。例えば、1つまたは複数のモジュール102が、第1のバージョンのソフトウェア製品を第2のバージョンのソフトウェア製品に変換することができる。   Further, one or more of the modules described herein can change the representation of data, physical devices, and / or physical devices from one form to another. For example, one or more modules 102 can convert a first version of a software product to a second version of the software product.

前述の説明は、本明細書に開示する例示的実施形態の様々な態様を当業者が最も良く利用できるように提示した。この例示的な説明は、網羅的なものとは意図されておらず、また開示した任意の厳密な形態に限定されるものとも意図されていない。本開示の精神および範囲から逸脱することなく、多くの修正形態および変形形態が可能である。本明細書で開示した実施形態は、すべての点で例示とみなされるべきであり、限定とみなされるべきではない。本開示の範囲を決定するに当たっては、添付の特許請求の範囲およびそれらの均等箇所を参照すべきである。   The foregoing description has been presented so that those skilled in the art may best utilize the various aspects of the exemplary embodiments disclosed herein. This exemplary description is not intended to be exhaustive, nor is it intended to be limited to any precise form disclosed. Many modifications and variations are possible without departing from the spirit and scope of this disclosure. The embodiments disclosed herein are to be considered in all respects as illustrative and not restrictive. In determining the scope of the disclosure, reference should be made to the appended claims and their equivalents.

特に断りのない限り、本明細書および特許請求の範囲で使用する単数形は、「少なくとも1つ」を意味するものと解釈すべきである。さらに、使いやすいように、本明細書および特許請求の範囲で使用する語「含む」および「有する」は、語「備える」と同義語であり、同じ意味を有するものとする。   Unless otherwise indicated, the singular forms used in the specification and claims should be interpreted to mean “at least one”. Furthermore, for ease of use, the words “comprising” and “having” as used in the specification and claims are synonymous with the word “comprising” and have the same meaning.

Claims (20)

ソフトウェア製品を更新するためのコンピュータ実装方法であって、前記方法の少なくとも一部が、少なくとも1つの処理装置を備える計算デバイスによって実施され、
第1のバージョンのソフトウェア製品に第2のバージョンのソフトウェア製品を上書きしてインストールすることを求める要求を受信するステップと、
前記第1のバージョンのソフトウェア製品が動作しているままで、前記第2のバージョンのソフトウェア製品を休止状態でインストールするステップと、
前記第2のバージョンのソフトウェア製品を作動させ、前記第1のバージョンのソフトウェア製品を作動停止させることによって、前記第1のバージョンと第2のバージョンのソフトウェア製品をスワップするステップと
を含む方法。
A computer-implemented method for updating a software product, wherein at least part of the method is performed by a computing device comprising at least one processing unit,
Receiving a request to install a second version of the software product over the first version of the software product;
Installing the second version of the software product in a dormant state while the first version of the software product is operating;
Swapping the first version and the second version of the software product by activating the second version of the software product and deactivating the first version of the software product.
前記ソフトウェア製品がセキュリティソフトウェア製品を備える請求項1に記載の方法。   The method of claim 1, wherein the software product comprises a security software product. 前記第1のバージョンのソフトウェア製品が第1のバージョンのアンチウイルスアプリケーションを備え、
前記第2のバージョンのソフトウェア製品が第2のバージョンのアンチウイルスアプリケーションを備える
請求項2に記載の方法。
The first version of the software product comprises a first version of an antivirus application;
The method of claim 2, wherein the second version of the software product comprises a second version of an antivirus application.
前記第1および第2のバージョンのソフトウェア製品がインストールされた計算システムをリブートするステップをさらに含み、前記リブートするステップが、前記第2のバージョンのソフトウェア製品をインストールした後であって前記第2のバージョンのソフトウェア製品を作動する前に行われる
請求項1に記載の方法。
Rebooting the computing system on which the first and second versions of the software product are installed, wherein the rebooting step is after installing the second version of the software product and the second version The method of claim 1, wherein the method is performed prior to operating a version of the software product.
前記第2のバージョンのソフトウェア製品が、前記計算システムのネットワークアダプタが有効化される前に前記リブートプロセス中に作動される請求項4に記載の方法。   The method of claim 4, wherein the second version of the software product is activated during the reboot process before a network adapter of the computing system is activated. 前記第2のバージョンのソフトウェア製品が作動されるまで、前記ネットワークアダプタを無効化しておくステップ
をさらに含む請求項5に記載の方法。
The method of claim 5, further comprising disabling the network adapter until the second version of the software product is activated.
前記第2のバージョンのソフトウェア製品をインストールするステップが、
前記第2のバージョンのソフトウェア製品の1つまたは複数のファイルをインストールするステップと、
ブートプロセス中に必要とされる前記第2のバージョンのソフトウェア製品の1つまたは複数のコンポーネントをインストールするステップと
を含む請求項1に記載の方法。
Installing the second version of the software product comprises:
Installing one or more files of the second version of the software product;
And installing one or more components of the second version of the software product that are required during the boot process.
前記第2のバージョンのソフトウェア製品をインストールするステップが、
前記第1のバージョンのソフトウェア製品の実行に影響を及ぼさない前記第2のバージョンのソフトウェア製品の1つまたは複数のコンポーネントをインストールするステップと、
インストールされると前記第1のバージョンのソフトウェア製品の実行に影響を及ぼすことになる前記第2のバージョンのソフトウェア製品の1つまたは複数のコンポーネントのインストールを見合わせるステップと
によって、前記第2のバージョンのソフトウェア製品を一部インストールするステップを含む請求項1に記載の方法。
Installing the second version of the software product comprises:
Installing one or more components of the second version of the software product that do not affect execution of the first version of the software product;
Suspending installation of one or more components of the second version of the software product that, when installed, will affect the execution of the first version of the software product, The method of claim 1 including installing a portion of the software product.
前記第2のバージョンのソフトウェア製品を作動停止させるステップが、
前記第1のバージョンのソフトウェア製品の1つまたは複数のコンポーネントの状態を、前記1つまたは複数のコンポーネントがリブート後に再始動しないように変更するステップ
を含む請求項1に記載の方法。
Deactivating the second version of the software product comprises:
The method of claim 1, comprising changing a state of one or more components of the first version of the software product such that the one or more components do not restart after a reboot.
前記第2のバージョンのソフトウェア製品をインストールするステップが、前記第1のバージョンのソフトウェア製品の1つまたは複数の設定を保存するステップを含み、
前記第1のバージョンと第2のバージョンのソフトウェア製品をスワップするステップが、前記第1のバージョンのソフトウェア製品の1つまたは複数の設定を前記第2のバージョンのソフトウェア製品にインポートするステップを含む
請求項1に記載の方法。
Installing the second version of the software product includes storing one or more settings of the first version of the software product;
Swapping the first version and the second version of the software product includes importing one or more settings of the first version of the software product into the second version of the software product. Item 2. The method according to Item 1.
前記第2のバージョンのソフトウェア製品をインストールするステップが、前記第1のバージョンのソフトウェア製品と前記第2のバージョンのソフトウェア製品の1組の相違を識別するステップを含み、
前記第1のバージョンと第2のバージョンのソフトウェア製品をスワップするステップが、前記第2のバージョンのソフトウェア製品において使用できるように前記第1のバージョンのソフトウェア製品の1つまたは複数のコンポーネントを更新するために、前記1組の相違を使用するステップを含む
請求項1に記載の方法。
Installing the second version of the software product includes identifying a set of differences between the first version of the software product and the second version of the software product;
Swapping the first and second version software products updates one or more components of the first version software product for use in the second version software product. The method of claim 1 including using the set of differences to achieve.
前記第1のバージョンと第2のバージョンのソフトウェア製品をスワップするステップが、
前記第1のバージョンのソフトウェア製品が作動停止されて前記第2のバージョンのソフトウェア製品が作動された後に、前記第1のバージョンのソフトウェア製品をアンインストールするステップ
を含む請求項1に記載の方法。
Swapping the first version and the second version of the software product comprises:
The method of claim 1, comprising uninstalling the first version of the software product after the first version of the software product is deactivated and the second version of the software product is activated.
少なくとも1つのコンピュータ可読記憶媒体上でのコンピュータ実行可能命令として有形に具現化された請求項1に記載の方法。   The method of claim 1, tangibly embodied as computer-executable instructions on at least one computer-readable storage medium. セキュリティソフトウェア製品を更新するためのコンピュータ実装方法であって、前記方法の少なくとも一部が、少なくとも1つの処理装置を備える計算デバイスによって実施され、
前記第1のバージョンのセキュリティソフトウェア製品に第2のバージョンのセキュリティソフトウェア製品を上書きしてインストールすることを求める要求を受信するステップと、
前記第1のバージョンのセキュリティソフトウェア製品の実行に影響を及ぼさない前記第2のバージョンのセキュリティソフトウェア製品の1つまたは複数のコンポーネントをインストールし、インストールされると前記第1のバージョンのセキュリティソフトウェア製品の実行に影響を及ぼすことになる前記第2のバージョンのセキュリティソフトウェアの1つまたは複数のコンポーネントのインストールを見合わせることによって、前記第1のバージョンのセキュリティソフトウェア製品が動作しているままで、前記第2のバージョンのセキュリティソフトウェア製品を休止状態でインストールするステップと、
前記第1および第2のバージョンのセキュリティソフトウェア製品がインストールされた計算システムをリブートするステップと、
前記第2のバージョンのセキュリティソフトウェア製品を作動させ、前記第1のバージョンのセキュリティソフトウェア製品を作動停止させることによって、前記第1のバージョンと第2のバージョンのソフトウェア製品をスワップするステップと
を含むコンピュータ実装方法。
A computer-implemented method for updating a security software product, wherein at least part of the method is performed by a computing device comprising at least one processing unit,
Receiving a request to install the first version of the security software product over the second version of the security software product;
One or more components of the second version of the security software product that do not affect the execution of the first version of the security software product are installed and, once installed, of the first version of the security software product By suspending the installation of one or more components of the second version of the security software that will affect execution, the second version of the security software product remains operating and the second version Installing a version of a security software product in hibernation;
Rebooting the computing system in which the first and second versions of the security software product are installed;
Activating the second version of the security software product and swapping the first version and the second version of the software product by deactivating the first version of the security software product. Implementation method.
前記第2のバージョンのセキュリティソフトウェア製品をインストールするステップが、
前記第2のバージョンのセキュリティソフトウェア製品の1つまたは複数のファイルをインストールするステップと、
ブートプロセス中に必要とされる前記第2のバージョンのセキュリティソフトウェア製品の1つまたは複数のコンポーネントをインストールするステップと
を含む請求項14に記載の方法。
Installing the second version of the security software product comprises:
Installing one or more files of the second version of the security software product;
15. The method of claim 14, comprising installing one or more components of the second version of the security software product that are required during the boot process.
前記第2のバージョンのソフトウェア製品を作動停止させるステップが、
前記第1のバージョンのセキュリティソフトウェア製品の1つまたは複数のコンポーネントの状態を、前記計算システムをリブートした後に前記1つまたは複数のコンポーネントが再始動しないように変更するステップ
を含む請求項14に記載の方法。
Deactivating the second version of the software product comprises:
15. The step of changing the state of one or more components of the first version of the security software product so that the one or more components do not restart after rebooting the computing system. the method of.
少なくとも1つの処理装置と、
第1のバージョンのソフトウェア製品に第2のバージョンのソフトウェア製品を上書きしてインストールすることを求める要求を受信するように前記処理装置に命令するようにプログラムされたインターフェースモジュールと、
前記第1のバージョンのソフトウェア製品が動作しているままで、前記第2のバージョンのソフトウェア製品を休止状態でインストールするように前記処理装置に命令するようにプログラムされたインストールモジュールと、
前記第2のバージョンのソフトウェア製品を作動させ、前記第1のバージョンのソフトウェア製品を作動停止することによって、前記第1のバージョンと第2のバージョンのソフトウェア製品をスワップするように前記処理装置に命令するようにプログラムされたスワッピングモジュールと
を備えるシステム。
At least one processing device;
An interface module programmed to instruct the processing device to receive a request to install a second version of the software product over the first version of the software product;
An install module programmed to instruct the processing device to install the second version software product in a dormant state while the first version software product remains operational;
Instructing the processing unit to swap the first version and the second version of the software product by activating the second version of the software product and deactivating the first version of the software product. And a swapping module programmed to do.
前記第1のバージョンのソフトウェア製品が第1のバージョンのアンチウイルスアプリケーションを備え、
前記第2のバージョンのソフトウェア製品が第2のバージョンのアンチウイルスアプリケーションを備える
請求項17に記載の方法。
The first version of the software product comprises a first version of an antivirus application;
The method of claim 17, wherein the second version of the software product comprises a second version of an antivirus application.
前記スワッピングモジュールが、前記第1のバージョンのソフトウェア製品の1つまたは複数のコンポーネントの状態を、前記第1および第2のバージョンのソフトウェア製品がインストールされた計算システムのリブート後に前記1つまたは複数のコンポーネントが再始動しないように変更することによって、前記第2のバージョンのソフトウェア製品を作動停止させるように前記処理装置に命令するようにプログラムされた請求項17に記載のシステム。   The swapping module determines the state of one or more components of the first version of the software product after the reboot of the computing system in which the first and second versions of the software product are installed. 18. The system of claim 17, programmed to instruct the processing device to deactivate the second version of the software product by changing the component so that it does not restart. 前記インストールモジュールが、
前記第2のバージョンのソフトウェア製品の1つまたは複数のファイルをインストールするステップと、
ブートプロセス中に必要とされる前記第2のバージョンのソフトウェア製品の1つまたは複数のコンポーネントをインストールするステップと
によって、前記第2のバージョンのソフトウェア製品をインストールするように前記処理装置に命令するようにプログラムされた請求項17に記載のシステム。
The installation module is
Installing one or more files of the second version of the software product;
Instructing the processing device to install the second version of the software product by installing one or more components of the second version of the software product required during the boot process. The system of claim 17 programmed into the system.
JP2012524757A 2009-08-10 2010-08-06 System and method for updating software products Active JP5646629B2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/538,622 2009-08-10
US12/538,622 US8589904B2 (en) 2009-08-10 2009-08-10 Systems and methods for updating a software product
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
JP2013502005A true JP2013502005A (en) 2013-01-17
JP5646629B2 JP5646629B2 (en) 2014-12-24

Family

ID=42942151

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012524757A Active JP5646629B2 (en) 2009-08-10 2010-08-06 System and method for updating software products

Country Status (6)

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

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI568605B (en) * 2014-09-17 2017-02-01 Tire pressure sensor software and the same version of the update system and update methods
JP2017508220A (en) * 2014-03-20 2017-03-23 クラウドストライク インコーポレイテッド Guaranteed integrity and rebootless updates during runtime
JP2018160041A (en) * 2017-03-22 2018-10-11 日本電気株式会社 Built-in device and control method and control program of built-in device
US10339316B2 (en) 2015-07-28 2019-07-02 Crowdstrike, Inc. Integrity assurance through early loading in the boot phase
US10853491B2 (en) 2012-06-08 2020-12-01 Crowdstrike, Inc. Security agent
JP2022002086A (en) * 2020-06-08 2022-01-06 アクロニス・インターナショナル・ゲーエムベーハー Method, system, and computer-readable medium

Families Citing this family (35)

* 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
US9098680B2 (en) * 2011-12-22 2015-08-04 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
US9164753B2 (en) 2013-01-08 2015-10-20 Sap Se Generating software updates
US9158518B2 (en) * 2013-03-11 2015-10-13 Blackberry Limited Collaborative application development environment using a connected device
US9280338B1 (en) * 2013-03-11 2016-03-08 Amazon Technologies, Inc. Dynamic application updates
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 (en) * 2014-01-21 2015-07-30 ローム株式会社 Memory control circuit
CN104182344B (en) * 2014-08-25 2017-02-15 腾讯科技(深圳)有限公司 Overwrite installation testing method and overwrite installation testing device
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
CN105183503B (en) * 2015-08-12 2018-10-12 浪潮(北京)电子信息产业有限公司 A kind of security upgrading method and device of security software
US10110434B2 (en) 2015-12-01 2018-10-23 Cisco Technology, Inc. Cloud orchestrated cloud connector upgrades
US10021171B2 (en) 2015-12-01 2018-07-10 Cisco Technology, Inc. Zero-downtime 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
CN107479933A (en) * 2017-08-21 2017-12-15 惠州Tcl移动通信有限公司 A kind of application program for mobile terminal upgrade method, storage device and mobile terminal
US11245669B1 (en) * 2019-09-16 2022-02-08 Juniper Networks, Inc. Firewall filter comprising one or more objects
US11902264B2 (en) 2020-06-22 2024-02-13 Vmware, Inc. Path selection for data packets encrypted based on an IPSEC protocol
US11704107B2 (en) * 2021-03-04 2023-07-18 Toyota Motor North America, Inc. Software updates based on transport-related actions
US11762644B2 (en) * 2021-05-10 2023-09-19 International Business Machines Corporation Agentless installation for building deployments
US12113773B2 (en) 2021-06-07 2024-10-08 VMware LLC Dynamic path selection of VPN endpoint
US12107834B2 (en) 2021-06-07 2024-10-01 VMware LLC Multi-uplink path quality aware IPsec
US11863514B2 (en) 2022-01-14 2024-01-02 Vmware, Inc. Performance improvement of IPsec traffic using SA-groups and mixed-mode SAs
US11956213B2 (en) * 2022-05-18 2024-04-09 VMware LLC Using firewall policies to map data messages to secure tunnels
US20240036849A1 (en) * 2022-07-28 2024-02-01 Dell Products L.P. Connectivity Management System Client Module Update and Failure Recovery
CN115640034B (en) * 2022-11-28 2023-06-02 荣耀终端有限公司 Data storage method and device

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001318874A (en) * 2000-03-29 2001-11-16 Internatl Business Mach Corp <Ibm> System for replacing device driver during system operation and method for the same and computer program product
JP2002297411A (en) * 2001-03-28 2002-10-11 Acermsoft Inc Update system and its method for application software in execution using modular system
JP2003029996A (en) * 2001-07-18 2003-01-31 Toshiba Corp Server system, client system, software streaming method and program
JP2004199327A (en) * 2002-12-18 2004-07-15 Intec Netcore Inc Computing equipment, computing program and computing method
JP2006106825A (en) * 2004-09-30 2006-04-20 Nippon Digital Kenkyusho:Kk Software updating method, terminal equipment and server device
JP2007025906A (en) * 2005-07-13 2007-02-01 Konica Minolta Business Technologies Inc Installation support method, and work flow formation support method
JP2007066132A (en) * 2005-09-01 2007-03-15 Ricoh Co Ltd Program system
JP2008269394A (en) * 2007-04-23 2008-11-06 Konica Minolta Business Technologies Inc Image forming apparatus, program updating system, program updating method and program updating program

Family Cites Families (26)

* 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
WO2001001252A1 (en) 1999-06-30 2001-01-04 Microsoft Corporation System and method for protecting shared system files
US6698017B1 (en) * 1999-07-16 2004-02-24 Nortel Networks Limited Software migration on an active processing element
EP1096374A2 (en) 1999-11-01 2001-05-02 Citicorp Development Center, Inc. Method and system for simultancous and unattended installation of software on a self-service financial transaction terminal
US6738826B1 (en) * 2000-02-24 2004-05-18 Cisco Technology, Inc. Router software upgrade employing redundant processors
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
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
DE60319357T2 (en) * 2003-07-21 2009-03-26 Alcatel Lucent Method and system for replacing the software
KR100584448B1 (en) * 2004-01-19 2006-05-26 삼성전자주식회사 Remote download method and system of embedded software using the position of binary image
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
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
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
US8806472B2 (en) * 2007-09-27 2014-08-12 Ericsson Ab In-service software upgrade utilizing metadata-driven state translation
JP5111129B2 (en) * 2008-01-22 2012-12-26 キヤノン株式会社 Information processing apparatus, information processing system, information processing method, and program
CN101408846B (en) * 2008-11-24 2011-04-13 华为终端有限公司 Method for upgrading antivirus software and corresponding terminal and system
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 (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001318874A (en) * 2000-03-29 2001-11-16 Internatl Business Mach Corp <Ibm> System for replacing device driver during system operation and method for the same and computer program product
JP2002297411A (en) * 2001-03-28 2002-10-11 Acermsoft Inc Update system and its method for application software in execution using modular system
JP2003029996A (en) * 2001-07-18 2003-01-31 Toshiba Corp Server system, client system, software streaming method and program
JP2004199327A (en) * 2002-12-18 2004-07-15 Intec Netcore Inc Computing equipment, computing program and computing method
JP2006106825A (en) * 2004-09-30 2006-04-20 Nippon Digital Kenkyusho:Kk Software updating method, terminal equipment and server device
JP2007025906A (en) * 2005-07-13 2007-02-01 Konica Minolta Business Technologies Inc Installation support method, and work flow formation support method
JP2007066132A (en) * 2005-09-01 2007-03-15 Ricoh Co Ltd Program system
JP2008269394A (en) * 2007-04-23 2008-11-06 Konica Minolta Business Technologies Inc Image forming apparatus, program updating system, program updating method and program updating program

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10853491B2 (en) 2012-06-08 2020-12-01 Crowdstrike, Inc. Security agent
JP2017508220A (en) * 2014-03-20 2017-03-23 クラウドストライク インコーポレイテッド Guaranteed integrity and rebootless updates during runtime
US10289405B2 (en) 2014-03-20 2019-05-14 Crowdstrike, Inc. Integrity assurance and rebootless updating during runtime
US11340890B2 (en) 2014-03-20 2022-05-24 Crowdstrike, Inc. Integrity assurance and rebootless updating during runtime
TWI568605B (en) * 2014-09-17 2017-02-01 Tire pressure sensor software and the same version of the update system and update methods
US10339316B2 (en) 2015-07-28 2019-07-02 Crowdstrike, Inc. Integrity assurance through early loading in the boot phase
JP2018160041A (en) * 2017-03-22 2018-10-11 日本電気株式会社 Built-in device and control method and control program of built-in device
JP2022002086A (en) * 2020-06-08 2022-01-06 アクロニス・インターナショナル・ゲーエムベーハー Method, system, and computer-readable medium
JP7422705B2 (en) 2020-06-08 2024-01-26 アクロニス・インターナショナル・ゲーエムベーハー METHODS, SYSTEMS AND COMPUTER-READABLE MEDIA

Also Published As

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

Similar Documents

Publication Publication Date Title
JP5646629B2 (en) System and method for updating software products
US9223966B1 (en) Systems and methods for replicating computing system environments
US8332842B2 (en) Application restore points
JP6186374B2 (en) System and method for secure migration to a virtualized platform
US8015450B1 (en) Systems and methods for detecting and automatically installing missing software components
US20110321040A1 (en) Systems and Methods for Sharing the Results of Analyses Among Virtual Machines
JP2016006670A (en) Systems and methods for providing network access control in virtual environments
EP2989544A1 (en) Systems and methods for replacing application methods at runtime
EP3066562B1 (en) Systems and methods for updating system-level services within read-only system images
CA2883205C (en) Systems and methods for detecting illegitimate applications
US8353044B1 (en) Methods and systems for computing device remediation
US9146748B1 (en) Systems and methods for injecting drivers into computing systems during restore operations
US8225316B1 (en) Methods and systems for creating and applying patches for virtualized applications
US8250652B1 (en) Systems and methods for circumventing malicious attempts to block the installation of security software
US8353058B1 (en) Methods and systems for detecting rootkits
US8132047B2 (en) Restoring application upgrades using an application restore point
US8572742B1 (en) Detecting and repairing master boot record infections
US8776044B1 (en) Systems and methods for providing computer cluster policies for implementation in computer cluster environments
US9501649B2 (en) Systems and methods for determining potential impacts of applications on the security of computing systems
US8813103B1 (en) Methods and systems for handling component-object-model communications
US11288361B1 (en) Systems and methods for restoring applications
US9800647B1 (en) Systems and methods for provisioning computing systems with applications
US9298445B1 (en) Systems and methods for correlating software inventory information with delivered software
US10437683B1 (en) Systems and methods for protecting data affected by system changes
US8402458B1 (en) Methods and systems for converting non-layered-software-application installations into layered installations

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130719

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130912

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20130912

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140526

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140701

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140919

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20141014

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141105

R150 Certificate of patent or registration of utility model

Ref document number: 5646629

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250