JP5646629B2 - ソフトウェア製品を更新するためのシステムおよび方法 - Google Patents

ソフトウェア製品を更新するためのシステムおよび方法 Download PDF

Info

Publication number
JP5646629B2
JP5646629B2 JP2012524757A JP2012524757A JP5646629B2 JP 5646629 B2 JP5646629 B2 JP 5646629B2 JP 2012524757 A JP2012524757 A JP 2012524757A JP 2012524757 A JP2012524757 A JP 2012524757A JP 5646629 B2 JP5646629 B2 JP 5646629B2
Authority
JP
Japan
Prior art keywords
version
software product
components
installing
security
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2012524757A
Other languages
English (en)
Other versions
JP2013502005A (ja
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.)
NortonLifeLock 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/ja
Application granted granted Critical
Publication of JP5646629B2 publication Critical patent/JP5646629B2/ja
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)

Description

企業および個人は、計算システムを保護するセキュリティソフトウェア製品を定期的に更新または交換する。セキュリティソフトウェア製品を更新および交換するために様々な従来の技術を使用することができる。残念ながら、MICROSOFT INSTALLER(「MSI」)およびMICROSOFT PATCH(「MSP」)技術など、セキュリティソフトウェア製品を更新および交換するための従来の技術は、セキュリティ製品が動作していない期間中にコンピュータシステムを脆弱にすることがある。
MSIによるセキュリティ製品の交換は、しばしば、既存のセキュリティ製品をアンインストールし、そのセキュリティ製品がインストールされていた計算システムをリブートし、新規のセキュリティ製品をインストールすることを含む。計算システムは、古いセキュリティ製品がアンインストールされた時から、新規のセキュリティ製品がインストールされて作動される時まで、保護されていないことがある。
MSPによるセキュリティ製品の更新は、第1のバージョンのセキュリティ製品を第2のバージョンのセキュリティ製品に変換することができる。更新中、セキュリティ製品のプロセスの動作は、停止され、更新され、次いで再始動されることがある。したがって、セキュリティ製品によって保護されているシステムは、セキュリティ製品が更新されている間、脆弱になることがある。したがって、必要なのは、ソフトウェア製品を交換および/または更新するためのより効果的な方法である。
以下でより詳細に説明するように、本開示は、一般に、ソフトウェア製品を更新するためのシステムおよび方法に関する。本明細書で使用するとき、語句「ソフトウェア製品を更新する」は、一般に、既存のソフトウェア製品を更新および/または交換することを表す。いくつかの実施形態では、方法が、第1のバージョンのソフトウェア製品に第2のバージョンのソフトウェア製品を上書きしてインストールすることを求める要求を受信するステップと、第1のバージョンのソフトウェア製品が動作しているままで、第2のバージョンのソフトウェア製品を休止状態でインストールするステップと、第2のバージョンのソフトウェア製品を作動させ、第1のバージョンのソフトウェア製品を作動停止させることによって、第1のバージョンと第2のバージョンのソフトウェア製品をスワップするステップとを含み得る。ソフトウェア製品は、セキュリティソフトウェア製品を含み得る。例えば、第1のバージョンのソフトウェア製品は、第1のバージョンのアンチウイルスアプリケーションを含むことがあり、第2のバージョンのソフトウェア製品は、第2のバージョンのアンチウイルスアプリケーションを含み得る。
いくつかの実施形態では、この方法は、第1および第2のバージョンのソフトウェア製品がインストールされた計算システムをリブートするステップを含み得る。リブートは、第2のバージョンのソフトウェア製品をインストールした後であって第2のバージョンのソフトウェア製品を作動させる前に行われることがある。様々な実施形態によれば、第2のバージョンのソフトウェア製品は、計算システムのネットワークアダプタが有効化される前にリブートプロセス中に作動されることがある。この方法は、第2のバージョンのソフトウェア製品が有効化されるまで、ネットワークアダプタを無効化しておくステップを含み得る。
様々な実施形態によれば、第2のバージョンのソフトウェア製品をインストールするステップは、第2のバージョンのソフトウェア製品の1つまたは複数のファイルをインストールするステップと、ブートプロセス中に必要とされる第2のバージョンのソフトウェア製品の1つまたは複数のコンポーネントをインストールするステップとを含み得る。いくつかの実施形態では、第1のバージョンのソフトウェア製品の実行に影響を及ぼさない第2のバージョンのソフトウェア製品の1つまたは複数のコンポーネントをインストールし、インストールされると第1のバージョンのソフトウェア製品の実行に影響を及ぼすことになる第2のバージョンのソフトウェアの1つまたは複数のコンポーネントのインストールを見合わせることによって、第2のバージョンのソフトウェア製品を一部インストールするステップを含み得る。
1つまたは複数の実施形態では、第2のバージョンのソフトウェア製品を作動停止させるステップは、第1のバージョンのソフトウェア製品の1つまたは複数のコンポーネントの状態を、それら1つまたは複数のコンポーネントがリブート後に再始動しないように変更するステップを含み得る。様々な実施形態によれば、第2のバージョンのソフトウェア製品をインストールするステップは、第1のバージョンのソフトウェア製品の1つまたは複数の設定を保存するステップを含むことがあり、第1のバージョンと第2のバージョンのソフトウェア製品をスワップするステップは、第1のバージョンのソフトウェア製品の1つまたは複数の設定を第2のバージョンのソフトウェア製品にインポートするステップを含み得る。
いくつかの実施形態によれば、第2のバージョンのソフトウェア製品をインストールするステップは、第1のバージョンのソフトウェア製品と第2のバージョンのソフトウェア製品の1組の相違を識別するステップを含むことがあり、第1のバージョンと第2のバージョンのソフトウェア製品をスワップするステップは、第2のバージョンのソフトウェア製品において使用できるように第1のバージョンのソフトウェア製品の1つまたは複数のコンポーネントを更新するために、1組の相違を使用するステップを含み得る。様々な実施形態において、第1のバージョンと第2のバージョンのソフトウェア製品をスワップするステップは、第1のバージョンのソフトウェア製品が作動停止されて第2のバージョンのソフトウェア製品が作動された後に、第1のバージョンのソフトウェア製品をアンインストールするステップを含み得る。少なくとも1つの実施形態では、この方法は、少なくとも1つのコンピュータ可読記憶媒体上でのコンピュータ実行可能命令として有形に具現化されることがある。
いくつかの実施形態では、方法が、第1のバージョンのセキュリティソフトウェア製品に第2のバージョンのセキュリティソフトウェア製品を上書きしてインストールすることを求める要求を受信するステップを含み得る。また、この方法は、第1のバージョンのセキュリティソフトウェア製品の実行に影響を及ぼさない第2のバージョンのセキュリティソフトウェア製品の1つまたは複数のコンポーネントをインストールし、インストールされると第1のバージョンのセキュリティソフトウェア製品の実行に影響を及ぼすことになる第2のバージョンのセキュリティソフトウェアの1つまたは複数のコンポーネントのインストールを見合わせることによって、第1のバージョンのセキュリティソフトウェア製品が動作しているままで、第2のバージョンのセキュリティソフトウェア製品を休止状態でインストールするステップを含むこともある。
この方法はさらに、第1および第2のバージョンのセキュリティソフトウェア製品がインストールされた計算システムをリブートするステップと、第2のバージョンのセキュリティソフトウェア製品を作動させ、第1のバージョンのセキュリティソフトウェア製品を作動停止させることによって、第1のバージョンと第2のバージョンのセキュリティソフトウェア製品をスワップするステップとを含み得る。いくつかの実施形態によれば、この方法は、第2のバージョンのセキュリティソフトウェア製品の1つまたは複数のファイルをインストールするステップと、ブートプロセス中に必要とされる第2のバージョンのセキュリティソフトウェア製品の1つまたは複数のコンポーネントをインストールするステップとを含み得る。この方法は、追加または代替として、第1のバージョンのソフトウェア製品の1つまたは複数のコンポーネントの状態を、計算システムをリブートした後にそれら1つまたは複数のコンポーネントが再始動しないように変更するステップを含み得る。
いくつかの実施形態では、システムが、少なくとも1つの処理装置と、第1のバージョンのソフトウェア製品に第2のバージョンのソフトウェア製品を上書きしてインストールすることを求める要求を受信するように処理装置に命令するようにプログラムされたインターフェースモジュールと、第1のバージョンのソフトウェア製品が動作しているままで、第2のバージョンのソフトウェア製品を休止状態でインストールするように処理装置に命令するようにプログラムされたインストールモジュールと、第2のバージョンのソフトウェア製品を作動させ、第1のバージョンのソフトウェア製品を作動停止することによって、第1のバージョンと第2のバージョンのソフトウェア製品をスワップするように処理装置に命令するようにプログラムされたスワッピングモジュールとを備えることがある。
いくつかの実施形態では、第1のバージョンのソフトウェア製品は、第1のバージョンのアンチウイルスアプリケーションを含むことがあり、第2のバージョンのソフトウェア製品は、第2のバージョンのアンチウイルスアプリケーションを含み得る。様々な実施形態によれば、スワッピングモジュールは、1つまたは複数のコンポーネントがリブート後に再始動しないように第1のバージョンのソフトウェア製品の1つまたは複数のコンポーネントの状態を変更することによって、第のバージョンのソフトウェア製品を作動停止するように処理装置に命令するようにプログラムされることがある。少なくとも1つの実施形態では、インストールモジュールは、第2のバージョンのソフトウェア製品の1つまたは複数のファイルをインストールし、および/またはブートプロセス中に必要とされる第2のバージョンのソフトウェア製品の1つまたは複数のコンポーネントをインストールすることによって、第2のバージョンのソフトウェア製品をインストールするように処理装置に命令するようにプログラムされることがある。
上述した任意の実施形態からの特徴を、本明細書で述べる一般的な原理に従って互いに組み合わせて使用することができる。これらおよび他の実施形態、特徴、および利点は、添付図面および特許請求の範囲に関連付けて以下の詳細な説明を読めば、より完全に理解されよう。
添付図面は、いくつかの例示的実施形態を示し、本明細書の一部である。これらの図面は、以下の説明と共に、本開示の様々な原理の実例を挙げて説明する。
ソフトウェア製品を更新するための例示的なシステムのブロック図である。 ソフトウェア製品を更新するための別の例示的なシステムのブロック図である。 ソフトウェア製品を更新するための例示的な方法の流れ図である。 ソフトウェア製品を更新するための別の例示的な方法の別の流れ図である。 本願で説明および/または図示する実施形態の1つまたは複数を実施することができる例示的な計算システムのブロック図である。 本願で説明および/または図示する実施形態の1つまたは複数を実施することができる例示的なコンピューティングネットワークのブロック図である。
図面全体を通して、同一の参照符号および説明は、同様の要素を示すが、必ずしも同一の要素ではない。本明細書で述べる例示的実施形態は、様々な修正形態および代替形態が可能であるが、特定の実施形態を例として図面に示し、本明細書で詳細に説明する。しかし、本明細書で述べる例示的実施形態は、開示する特定の形態に限定されるものとは意図されていない。そうではなく、本開示は、添付の特許請求の範囲の範囲内に入るすべての修正形態、均等形態、および代替形態を網羅する。
以下でより詳細に説明するように、本開示は、一般に、ソフトウェア製品を更新するためのシステムおよび方法に関する。本開示の実施形態は、インストールプロセス中に既存の製品をアンインストールする必要なく新規の製品を上書きインストールすることができる。例えば、計算システムは、第1のバージョンのソフトウェア製品が動作しているままで、第2のバージョンのソフトウェア製品を休止状態でインストールすることができ、第2のバージョンのソフトウェア製品を作動させ、第1のバージョンのソフトウェア製品を作動停止させることによって第1のバージョンと第2のバージョンのソフトウェア製品をスワップすることができる。
本開示の実施形態は、一般に、あるソフトウェア製品が別のソフトウェア製品に上書きしてインストールされる状況(すなわち、一度にただ1つのバージョンのソフトウェア製品しか動作することができない状況)に当てはまる。そのような状況では、従来のインストールツールは、典型的には既存のソフトウェア製品をアンインストールしてから新規のソフトウェア製品をインストールし、そのため、いずれのソフトウェア製品も動作していない期間が生じることがある。アンチウイルスやデータ保護製品などセキュリティソフトウェア製品に関して、既存の製品によって保護されている計算システムは、既存の製品がアンインストールされて新規の製品がインストールされる間、脆弱になることがある。本開示の実施形態は、既存のバージョンのソフトウェア製品がまだ動作しているままで新規のバージョンのソフトウェア製品をインストールすることによって、ソフトウェアのダウンタイムをなくす、および/または最小限にすることができる。また、本開示の実施形態は、様々な他の特徴および利点も提供する。
以下、図1および図2を参照して、ソフトウェア製品を更新するための例示的なシステムを詳細に説明する。また、それに対応するコンピュータ実装方法を、図3および図4に関連付けて詳細に説明する。さらに、本明細書で述べる1つまたは複数の実施形態を実装することができる例示的な計算システムおよびネットワークアーキテクチャを、それぞれ図57および図6に関連付けて詳細に説明する。
図1は、ソフトウェア製品を更新するための例示的なシステム100のブロック図である。この図に示されるように、例示的なシステム100は、1つまたは複数のタスクを実施するための1つまたは複数のモジュール102を含み得る。例えば、以下でより詳細に説明するように、例示的なシステム100は、第1のバージョンのソフトウェア製品に第2のバージョンのソフトウェア製品を上書きしてインストールすることを求める要求を受信するようにプログラムされたインターフェースモジュール104を含み得る。また、例示的なシステム100は、第1のバージョンのソフトウェア製品が動作しているままで、第2のバージョンのソフトウェア製品を休止状態でインストールするようにプログラムされたインストールモジュール106を含むこともある。
さらに、以下でより詳細に説明するように、例示的なシステム100は、第1のバージョンのソフトウェア製品を作動停止させて第2のバージョンのソフトウェア製品を作動させることによって、第1のバージョンと第2のバージョンのソフトウェア製品をスワップするようにプログラムされたスワッピングモジュール108を含むこともある。別個の要素として図示されているが、図1のモジュール102の1つまたは複数が、単一のモジュールまたはアプリケーションの一部を表すこともある。
いくつかの実施形態では、図1のモジュール102の1つまたは複数は、計算装置によって実行されたときに計算装置に1つまたは複数のタスクを実施させることができる1つまたは複数のソフトウェアアプリケーションまたはプログラムを表すことがある。例えば、以下でより詳細に説明するように、モジュール102の1つまたは複数は、図2に示される装置(例えば計算装置202および/またはサーバ206)、図5の計算システム510、および/または図6の例示的なネットワークアクチュエータ600の一部など、1つまたは複数の計算装置に記憶され、そこで実行されるように構成されたソフトウェアモジュールを表すことがある。また、図1のモジュール102の1つまたは複数は、1つまたは複数のタスクを実施するように構成された1つまたは複数の専用コンピュータの全体または一部を表こともある。
図1に示されるように、例示的なシステム100は、1つまたは複数のデータベース120を含むこともある。データベース120は、単一のデータベースもしくは計算デバイスの一部、または複数のデータベースもしくは計算デバイスを表すことがある。一実施形態では、例示的なシステム100は、第1のバージョンのソフトウェア製品と第2のバージョンのソフトウェア製品の相違を記憶するための相違データベース122を含み得る。また、例示的なシステム100は、第1のバージョンのソフトウェア製品から第2のバージョンのソフトウェア製品に移行すべき1つまたは複数の設定を記憶するための設定データベース124を含むこともある。
図1のデータベース120は、1つまたは複数の計算デバイスの一部を表すことがある。例えば、データベース120は、図2のサーバ206の一部、図5の計算システム510、および/または図6の例示的なネットワークアーキテクチャ600の一部を表すことがある。あるいは、図1のデータベース120は、図2のサーバ206、図5の計算システム510、および/または図6の例示的なネットワークアーキテクチャ600の一部などの計算デバイスがアクセスすることができる1つまたは複数の物理的に別個のデバイスを表すことがある。
図1の例示的なシステム100は、様々な方法で展開することができる。例えば、例示的なシステム100の全体または一部が、図2に示される例示的なシステム200などクラウドコンピューティング環境またはネットワークベース環境の一部を表すことがある。クラウドコンピューティング環境は、インターネットを介して様々なサービスおよびアプリケーションを提供することができる。これらのクラウドベースのサービス(例えば、サービスとしてのソフトウェア、サービスとしてのプラットフォーム、サービスとしてのインフラストラクチャなど)は、ウェブブラウザまたは他の遠隔インターフェースを介してアクセス可能になることがある。本明細書で述べる様々な機能は、遠隔のデスクトップ環境または任意の他のクラウドベースのコンピューティング環境によって提供することができる。
図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デバイス、インターネット、および/またはローカルネットワークを含めた任意の適切な搬送メカニズムによって提供されることがある。
計算デバイス202は、コンピュータ実行可能命令を読み取ることができる任意の種類または形態の計算デバイスを全般的に表す。計算デバイス202の例としては、限定はしないが、ラップトップコンピュータ、デスクトップコンピュータ、サーバ、セルラ電話、個人用携帯情報端末(PDA)、マルチメディアプレーヤ、組み込みシステム、それらのうちの1つまたは複数の組合せ、図5における例示的な計算システム510、または任意の他の適切な計算デバイスが挙げられる。
サーバ206は、ソフトウェア製品を展開することができる任意の種類または形態の計算デバイスを全般的に表す。サーバ206の例としては、限定はしないが、様々なデータベースサービスを提供する、および/または何らかのソフトウェアアプリケーションを動作させるように構成されたアプリケーションサーバおよびデータベースサーバが挙げられる。
ネットワーク204は、通信またはデータ転送を容易くすることができる任意の媒体またはアーキテクチャを全般的に表す。ネットワーク204の例としては、限定はしないが、イントラネット、ワイドエリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)、パーソナルエリアネットワーク(PAN)、インターネット、電力線通信(PLC)、セルラネットワーク(例えばGSMネットワーク)、図6の例示的なネットワークアーキテクチャ600などが挙げられる。ネットワーク204は、無線または有線接続を使用して通信またはデータ転送を容易くすることができる。一実施形態では、ネットワーク204は、計算装置202およびサーバ206の間の通信を容易くすることができる。
図3は、ソフトウェア製品を更新するための例示的なコンピュータ実装方法300の流れ図である。図3に示されるステップは、任意の適切なコンピュータ実行可能コードおよび/または計算システムによって実施することができる。いくつかの実施形態では、図3に示されるステップは、図1のシステム100および/または図2のシステム200の構成要素の1つまたは複数によって実施することができる。例えば、ステップ302で、インターフェースモジュール104が、計算デバイス210の一部として、第1のバージョンのソフトウェア製品に第2のバージョンのソフトウェア製品を上書きしてインストールすることを求める要求を受信することがある。いくつかの実施形態では、この要求は、遠隔アプリケーションから受信されることがある。例えば、第2のバージョンのソフトウェア製品を展開するサーバが、ソフトウェア製品のインストールを要求することがある。また、この要求は、第2のバージョンのソフトウェア製品を含むインストールパッケージからの要求であることもある。追加または代替として、この要求は、情報技術(「IT」)管理者または他のユーザから受信されることがある。
本明細書で使用するとき、語句「ソフトウェア製品」は、計算システム上にインストールされて実行されるようにプログラムされた任意のソフトウェアアプリケーション、実行可能なファイル、インストールパッケージ、または他のコンピュータ実行可能コードを表す。ソフトウェア製品としては、限定はしないが、ワードプロセッサ、スプレッドシート、生産性向上ソフトウェア、セキュリティソフトウェア(アンチウイルスプログラム、ファイアウォール、ペアレンタルコントロールソフトウェア、データ損失防止ソフトウェアなど)、および様々な他のタイプのソフトウェアプログラムが挙げられる。語句「第1のバージョンのソフトウェア製品」および「第2のバージョンのソフトウェア製品」は、同じ会社からの同じソフトウェアプログラムのより古いバージョンおよびより新しいバージョンをそれぞれ表すことがある。例えば、第1のバージョンのソフトウェア製品は、2008年版のアンチウイルスプログラムであることがあり、第2のバージョンのソフトウェア製品は、2009年版の同じプログラムであることがある。
あるいは、第1のバージョンと第2のバージョンのソフトウェア製品は、同様の機能を実施する異なるプログラムでもよい。例えば、第1のバージョンのソフトウェア製品は、第1のソフトウェア会社によって開発されたファイアウォールアプリケーションであることがあり、第2のバージョンのソフトウェア製品は、第2のソフトウェア会社によって開発されたファイアウォールアプリケーションであることがある。他の実施形態では、第1のバージョンと第2のバージョンのソフトウェア製品は、同じ会社からの異なるが関連したプログラムでよい。例えば、第1のバージョンのソフトウェア製品は、基本機能を備えたベーシックコンピュータセキュリティプログラム(例えばアンチウイルスプログラム)であることがあり、第2のバージョンのソフトウェア製品は、より高度な機能を備えた高度なコンピュータセキュリティプログラム(例えばプログラムのインターネットセキュリティスイート)であることがある。
本明細書で使用するとき、「第1のバージョンのソフトウェア製品に第2のバージョンのソフトウェア製品を上書きしてインストールする」は、一般に、1つのバージョンのソフトウェア製品を別のバージョンのソフトウェア製品に上書きインストールすることを意味する。上書きインストールとは、一般に、1つのバージョンのソフトウェアアプリケーションをインストールし、前のバージョンのソフトウェアアプリケーションを消去するためのインストールプロセスを表す。対照的に、他のインストールプロセスは、1つのバージョンの製品を別のバージョンの製品と置き換えることを含まないことがある。そのようなインストールプロセスは、既存のソフトウェア製品用のパッチをインストールし、2つのバージョンのソフトウェア製品を並行してインストールすることを含む。上書きインストールは、これらのパッチインストールおよび並行インストールは表さない。
上書きインストールプロセスは、一度に1つしかソフトウェア製品のインスタンスを動作させることができない状況で使用されることがある。例えば、多くの計算システムは、一度に1つのファイアウォールソフトウェアプログラムしか動作させないことがある。インスタンスを1つしか動作させることができない他のインストール状況としては、2つの同様のソフトウェア製品のインストールが、システムを不安定にすることがある競合および/または他の問題を生じることがあるような状況が挙げられる。
図3に戻ると、ステップ304で、インストールモジュール106が、計算デバイス210の一部として、第1のバージョンのソフトウェア製品が動作しているままで、第2のバージョンのソフトウェア製品を休止状態でインストールすることがある。インストールモジュール106は、以下でより詳細に説明する様々な方法で第2のバージョンをインストールすることができる。本明細書で使用するとき、語句「休止状態」は、少なくとも一部インストールされているが実行されていないソフトウェア製品を表す。インストールモジュール106は、第1のバージョンのソフトウェア製品が動作しているときに第1のバージョンのソフトウェア製品と干渉しないように第2のバージョンのソフトウェア製品をインストールすることによって、第2のバージョンのソフトウェア製品を休止状態でインストールすることがある。
いくつかの実施形態では、インストールモジュール106は、第2のバージョンのソフトウェア製品の1つまたは複数のファイルをインストールすることによって、第2のバージョンのソフトウェア製品をインストールすることがある。例えば、インストールモジュール106は、第2のバージョンのソフトウェア製品の1つまたは複数の実行可能なファイルおよび/または他のコードをインストールすることがある。また、インストールモジュール106は、第2のバージョンのソフトウェア製品の1つまたは複数の他のコンポーネントをインストールすることもある。例えば、インストールモジュール106は、第2のバージョンのソフトウェア製品の1つまたは複数のサービス、ドライバ、レジストリキー、および/または他のコンポーネントをインストールすることがある。
インストールモジュール106は、第1のバージョンのソフトウェア製品の実行に影響を及ぼさない第2のバージョンソフトウェア製品のファイルおよび他のコンポーネントのみをインストールし、インストールされると第1のバージョン製品の実行に影響を及ぼすことがある第2のバージョンのソフトウェア製品の1つまたは複数のコンポーネントのインストールを見合わせることによって、第2のバージョンのソフトウェア製品を一部インストールすることがある。インストールモジュール106は、様々な方法で、第1のバージョンのソフトウェア製品の実行に影響を及ぼさない第2のバージョンのソフトウェア製品のコンポーネントを識別することができる。いくつかの実施形態では、インストールモジュール106は、第1のバージョンのソフトウェア製品が動作しているままで安全にインストールできるコンポーネントを識別するリストまたは他のデータベースを読み取ることによって、そのようなコンポーネントを識別することがある。
他の実施形態では、インストールモジュール106は、新規のコンポーネントに対応するコンポーネントを第1のバージョンのソフトウェア製品が利用しているかどうか判断することによって、安全にインストールできる第2のバージョンのソフトウェア製品の1つまたは複数のコンポーネントを自動的に識別することがある。例えば、インストールモジュール106は、第1のバージョンのソフトウェア製品によって現在使用されているドライバの上書きを見合わせることがある。
いくつかの実施形態によれば、インストールモジュール106は、第1のバージョンと第2のバージョンのソフトウェア製品の1組の相違を識別することがある。1組の相違は、第1のバージョンと第2のバージョンのソフトウェア製品の1つまたは複数の相違を識別するリスト、差分ファイル、命令セット、および/または任意の他の情報セットであることがある。1組の相違は、1つまたは複数のレジストリキー、1つまたは複数のサービス、1つまたは複数のショートカット、および/または第1のバージョンと第2のバージョンのソフトウェア製品をスワップするために後の時点で(例えばリブート後に)行う必要がある1つまたは複数のアクションを識別することがある。1組の相違は、追加または代替として、1つまたは複数のレジストリキー、1つまたは複数のサービス、1つまたは複数のショートカット、および/または第1のバージョンのソフトウェア製品が動作しているままで行うことができる1つまたは複数のアクション(すなわち、前述したように、第1のバージョンのソフトウェア製品の実行に影響を及ぼさないアクション)を識別することがある。
インストールモジュール106は、第1のバージョンのソフトウェア製品の1つまたは複数の設定を保存することができる。例えば、インストールモジュール106は、第1のバージョンのソフトウェア製品の1つまたは複数の設定を読み取って、それらの設定を、設定データベース124などのデータベースに保存することができる。次いで、スワッピングモジュール108が、データベースからそれらの設定を読み取って、第2のバージョンのソフトウェア製品にインポートすることができる。したがって、第1のバージョンのソフトウェア製品の1つまたは複数の設定、例えばユーザ定義設定および/または他の設定を、第2のバージョンのソフトウェア製品で保つことができる。
インストールの完了後(またはインストール前もしくはインストール中)、インストールモジュール106が、第1のバージョンと第2のバージョンのソフトウェア製品をスワップするサービスを登録することがある。スワッピングモジュール108を含み得る登録されるサービスは、実行モードプロセス(すなわちchkdskプロセス)、カーネルドライバ、システムサービス、および/または任意の他の適切なサービスでよい。
ステップ306で、スワッピングモジュール108が、計算デバイス210の一部として、第1のバージョンと第2のバージョンのソフトウェア製品をスワップすることがある。スワッピングモジュール108は、様々な方法で第1のバージョンと第2のバージョンのソフトウェア製品をスワップすることができる。例えば、スワッピングモジュール108は、第2のバージョンのソフトウェア製品を作動させ、第1のバージョンのソフトウェア製品を作動停止させることによって、第1のバージョンと第2のバージョンのソフトウェア製品をスワップすることができる。本明細書で使用するとき、語句「第2のバージョンのソフトウェア製品を作動させる」は、第2のバージョンのソフトウェア製品の1つまたは複数のプロセスを動作させる、および/または第2のバージョンのソフトウェア製品の1つまたは複数のプロセスが動作するように準備する任意の手順を全般的に表す。逆に、語句「第1のバージョンのソフトウェア製品を作動停止させる」は、第1のバージョンのソフトウェア製品の1つまたは複数のプロセスの実行を停止させる、第1のバージョンのソフトウェア製品の実行を終了する準備をする、および/または第1のバージョンのソフトウェア製品が終了後に再始動しないように第1のバージョンのソフトウェア製品を変更する任意の手順を全般的に表す。
いくつかの実施形態では、スワッピングモジュール108は、第1のバージョンのソフトウェア製品が動作しているままで、第1のバージョンのソフトウェア製品の1つまたは複数のコンポーネントの状態を、それら1つまたは複数のコンポーネントがリブート後に再始動しないように変更することがある。例えば、スワッピングモジュール108は、第1のバージョンのソフトウェア製品での1つまたは複数のサービスおよび/またはドライバの状態を、それらがシステムリブート後に動作しないように変更することがある。
スワッピングモジュール108は、第2のバージョンのソフトウェア製品において使用できるように第1のバージョンのソフトウェア製品の1つまたは複数のコンポーネントを更新するために、事前に識別されている第1のバージョンと第2のバージョンのソフトウェア製品の1組の相違を使用することがある。例えば、スワッピングモジュール108は、(例えば、新規のキーを追加する、古いキーを削除する、および/または既存のキーを変更することによって)第2のバージョンのソフトウェア製品の1つまたは複数のレジストリキーを更新することがある。追加または代替として、スワッピングモジュール108は、第2のバージョンのソフトウェア製品のいくつかまたはすべてのサービスおよび/またはドライバを更新(例えば追加、削除、および/または変更)することがある。また、スワッピングモジュール108は、第2のバージョンのソフトウェア製品の1つまたは複数のショートカット(シンボリックリンクを含む)を更新することもある。さらに、スワッピングモジュール108は、インストールプロセス外で計算システムを修正することができるカスタム実行可能ファイルなど、1つまたは複数のカスタムアクションを動作させることもある。
いくつかの実施形態によれば、スワッピングモジュール108は、第1のバージョンのソフトウェア製品が作動停止されて第2のバージョンのソフトウェア製品が作動された後に、第1のバージョンのソフトウェア製品をアンインストールおよび/またはその他の方法でクリーンアップすることがある。例えば、スワッピングモジュール108は、第1のバージョンのソフトウェア製品と関連付けられる任意のファイルおよび他のデータを消去することがある。
図4は、セキュリティソフトウェア製品を更新するための別の例示的なコンピュータ実装方法の流れ図であり、そのようなソフトウェア製品は、例えば、アンチウイルスアプリケーション、ファイアウォールアプリケーション、データ損失防止アプリケーション、および/または、計算システムを保護するためおよび/または計算システム上に記憶されたデータを保護するための任意の他のアプリケーションである。図4に示されるステップは、任意の適切なコンピュータ実行可能コードおよび/または計算システムによって実施することができる。いくつかの実施形態では、図4に示されるステップは、図1のシステム100および/または図2のシステム200の構成要素の1つまたは複数によって実施することができる。例えば、ステップ402で、インターフェースモジュール104が、計算デバイス210の一部として、第1のバージョンのセキュリティソフトウェア製品に第2のバージョンのセキュリティソフトウェア製品を上書きしてインストールすることを求める要求を受信することがある。ステップ404で、インストールモジュール106が、第1のバージョンのセキュリティソフトウェア製品の実行に影響を及ぼさない第2のバージョンのセキュリティソフトウェア製品の1つまたは複数のコンポーネントをインストールすることがある。ステップ402および404は、ステップ302および304と同様であり、図3で説明した方法の1つまたは複数で行うことができる。
ステップ406で、インストールモジュール106が、第1のバージョンのソフトウェア製品の1つまたは複数のコンポーネントの状態を、それら1つまたは複数のコンポーネントがリブート後に再始動しないように変更することがある。例えば、インストールモジュール106は、第1のバージョンのソフトウェア製品の1つまたは複数のサービスおよび/またはドライバを、それらがシステムリブート後に動作しないように変更することがある。そのようなプロセスは、アンロードおよび/または停止することができないサービスおよび/またはドライバに特に有用であることがある。あるいは、リブート後にサービスおよびドライバが始動を許される前に、実行モードプロセスを使用してサービスおよびドライバが更新される場合には、リブート前にサービスおよびドライバを変更する必要はないことがある。
ステップ408で、インストールモジュール106が、第1のバージョンのソフトウェア製品によって保護されている計算システムをリブートさせることがある。いくつかの実施形態では、リブートは、第2のバージョンのソフトウェア製品をインストールした後であって第2のバージョンのソフトウェア製品を作動させる前に行われることがある。いくつかの実施形態では、セキュリティ脅威から計算システムを保護するために、第2のバージョンのソフトウェア製品は、計算システムの1つまたは複数のネットワークアダプタが有効化される前にリブートプロセス中に作動されることがある。例えば、スワッピングモジュール108が、第2のバージョンのソフトウェア製品を、ブートプロセスにおいて早期に(すなわちネットワークアダプタが作動される前に)作動させることがある。あるいは、スワッピングモジュール108は、第2のバージョンのソフトウェア製品が有効化されるまで、計算システムの1つまたは複数のネットワークアダプタを無効化しておくことがある。また、スワッピングモジュール108は、第1のバージョンと第2のバージョンのソフトウェア製品がスワップされる間に、計算システムを保護するための任意の他の適切なアクションを行うこともある。
いくつかの実施形態では、第1のバージョンのソフトウェア製品は、リブートの直後には無効化されないことがある。例えば、第1のリブート後に、第1のバージョンのソフトウェア製品からのセキュリティドライバ(例えばアンチウイルスおよび/またはファイアウォールドライバなど)が動作することがある。第1のリブート中、実行モードアプリケーションが動作することがあり、これは、第1のバージョンのソフトウェア製品の1つまたは複数のコンポーネントを第2のバージョンのソフトウェア製品向けに更新することができる。例えば、実行モードアプリケーションは、それらの現行のインスタンスに影響を及ぼすことなくポイント変更することができる。計算システムのオペレーティングシステムが、完全には機能しない(すなわち第1のリブート後に完全にはロードされていない)ことがある。また、ソフトウェア製品も、このリブート後に完全にはロードされていないことがある。第1のバージョンのソフトウェア製品のコンポーネントが更新された後、第1のバージョンのソフトウェア製品は、無効化されるように設定されることがあり、第2のバージョンのソフトウェア製品は、第2のリブート後に動作するように有効化されるように設定されることがある。この時点で、実行モードアプリケーションが第2のリブートを強制することがある。そのような状況では、第1のバージョンのソフトウェア製品は、第2のリブート後まで動作し続けることができる。
ステップ410で、スワッピングモジュール108が、第1のバージョンと第2のバージョンのセキュリティソフトウェア製品をスワップすることがある。ステップ410は、図3のステップ306と同様である。したがって、ステップ306の論述で開示したプロセスの1つまたは複数を、ステップ410を実施するためにも使用することができる。
本開示の実施形態は、計算システムが脆弱になることがないように、既存のバージョンのセキュリティ製品に新規のバージョンのセキュリティ製品を上書きしてインストールすることを可能にすることができる。例えば、本明細書に記載するインストールプロセスは、第1のセキュリティソフトウェアアプリケーションの作動停止と第2のセキュリティソフトウェアアプリケーションの作動との間のダウンタイムがないように実施することができる。
図5は、本願で説明および/または図示する実施形態の1つまたは複数を実施することができる例示的な計算システム510のブロック図である。計算システム510は、コンピュータ可読命令を実行することができる任意のシングルプロセッサまたはマルチプロセッサ計算装置またはシステムを広範に表す。計算システム510の例としては、限定はしないが、ワークステーション、ラップトップコンピュータ、クライアント側の端末、サーバ、分散コンピューティングシステム、ハンドヘルド装置、または任意の他の計算システムもしくは装置が挙げられる。その最も基本的な構成では、計算システム510は、少なくとも1つのプロセッサ514と、システムメモリ516とを含むことができる。
処理装置514は、データを処理することができる、または命令を解釈および実行することができる任意の種類または形態の処理ユニットを全般的に表す。いくつかの実施形態では、処理装置514は、ソフトウェアアプリケーションまたはモジュールから命令を受信することがある。これらの命令は、本願で説明および/または図示する1つまたは複数の例示的実施形態の機能を処理装置514に実施させることができる。例えば、処理装置514は、単独で、または他の要素と組み合わせて、本明細書で述べる受信、インストール、スワッピング、リブート、無効化、見合わせ、変更、および/またはアンインストールステップの1つまたは複数を実施することができ、および/またはそれらを実施するための手段であってよい。また、処理装置514は、本願で説明および/または図示する任意の他のステップ、方法、またはプロセスを実施することもでき、および/またはそれらを実施するための手段であってもよい。
システムメモリ516は、データおよび/または他のコンピュータ可読命令を記憶することができる任意の種類または形態の揮発性または不揮発性記憶装置または媒体を全般的に表す。システムメモリ516の例としては、限定はしないが、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、フラッシュメモリ、または任意の他の適切なメモリ装置が挙げられる。必ずそうである必要はないが、いくつかの実施形態では、計算システム510は、揮発性メモリユニット(例えばシステムメモリ516など)と不揮発性メモリ装置(例えば以下で詳細に説明する主記憶装置532など)の両方を含むこともある。一例では、図1からのモジュール102の1つまたは複数をシステムメモリ516にロードすることができる。
いくつかの実施形態では、例示的な計算システム510は、プロセッサ514およびシステムメモリ516に加えて、1つまたは複数の構成要素または要素を含むこともできる。例えば、図5に示されるように、計算システム510は、メモリコントローラ518と、入出力(I/O)制御装置520と、通信インターフェース522とを含むことがあり、これらはそれぞれ通信インフラストラクチャ512を介して相互接続されることがある。通信インフラストラクチャ512は、計算装置の1つまたは複数の構成要素間の通信を容易くすることができる任意の種類または形態のインフラストラクチャを全般的に表す。通信インフラストラクチャ512の例としては、限定はしないが、通信バス(ISA、PCI、PCIe、または同様のバスなど)およびネットワークが挙げられる。
メモリ制御装置518は、メモリもしくはデータを取り扱うことができる、または計算システム510の1つまたは複数の構成要素間の通信を制御することができる任意の種類または形態のデバイスを全般的に表す。例えば、いくつかの実施形態では、メモリ制御装置518は、通信インフラストラクチャ512を介する処理装置514と、システムメモリ516と、I/O制御装置520との間の通信を制御することができる。いくつかの実施形態では、メモリ制御装置は、単独で、または他の要素と組み合わせて、受信、インストール、スワッピング、リブート、無効化、見合わせ、変更、および/またはアンインストールなど、本願で説明および/または図示するステップまたは機能の1つまたは複数を実施することができ、および/またはそれらを実施するための手段であってよい。
I/O制御装置520は、計算デバイスの入出力機能を調整および/または制御することができる任意の種類または形態のモジュールを全般的に表す。例えば、いくつかの実施形態では、I/O制御装置520は、処理装置514、システムメモリ516、通信インターフェース522、ディスプレイアダプタ526、入力インターフェース530、および記憶インターフェース534など、計算システム510の1つまたは複数の要素間でのデータの転送を制御する、または容易くすることができる。I/O制御装置520は、単独で、または他の要素と組み合わせて、本明細書で述べる受信、インストール、スワッピング、リブート、無効化、自制、変更、および/またはアンインストールステップの1つまたは複数を実施するために使用することができ、および/またはそれらを実施するための手段であってよい。また、I/O制御装置520は、本開示に記載する他のステップおよび機能を実施するために使用することもでき、および/またはそれらを実施するための手段であってもよい。
通信インターフェース522は、例示的な計算システム510と1つまたは複数の追加の装置との間の通信を容易くすることができる任意の種類または形態の通信装置またはアダプタを広範に表す。例えば、いくつかの実施形態では、通信インターフェース522は、計算システム510と、追加の計算システムを含むプライベートネットワークまたはパブリックネットワークとの間の通信を容易くすることができる。通信インターフェース522の例としては、限定はしないが、有線ネットワークインターフェース(ネットワークインターフェースカードなど)、無線ネットワークインターフェース(無線ネットワークインターフェースカードなど)、モデム、および任意の他の適切なインターフェースが挙げられる。少なくとも1つの実施形態では、通信インターフェース522は、インターネットなどのネットワークへの直接のリンクを介して遠隔サーバへの直接的な接続を提供することができる。また、通信インターフェース522は、そのような接続を、例えばローカルエリアネットワーク(イーサネットネットワークなど)、パーソナルエリアネットワーク、電話もしくはケーブルネットワーク、セルラ電話接続、衛星データ接続、または任意の他の適切な接続を介して間接的に提供することもできる。
いくつかの実施形態では、通信インターフェース522は、外部バスまたは通信チャネルを介する計算システム510と1つまたは複数の追加のネットワークまたは記憶デバイスとの間の通信を容易くするように構成されたホストアダプタを表すこともある。ホストアダプタの例としては、限定はしないが、SCSIホストアダプタ、USBホストアダプタ、IEEE1394ホストアダプタ、SATAおよびeSATAホストアダプタ、ATAおよびPATAホストアダプタ、ファイバチャネルインターフェースアダプタ、イーサネットアダプタなどが挙げられる。また、通信インターフェース522は、計算システム510が分散コンピューティングまたは遠隔コンピューティングに従事できるようにすることもある。例えば、通信インターフェース522は、命令を実行するために、遠隔デバイスから命令を受信する、または遠隔デバイスに命令を送信することがある。いくつかの実施形態では、通信インターフェース522は、単独で、または他の要素と組み合わせて、本明細書で開示する受信、インストール、スワッピング、リブート、無効化、自制、変更、および/またはアンインストールステップの1つまたは複数を実施することができ、および/またはそれらを実施するための手段であってよい。また、通信インターフェース522は、本開示に記載する他のステップおよび機能を実施するために使用することもでき、および/またはそれらを実施するための手段であってもよい。
図5に示されるように、計算システム510は、ディスプレイアダプタ526を介して通信インフラストラクチャ512に結合された少なくとも1つのディスプレイ装置524を含むこともある。ディスプレイ装置524は、ディスプレイアダプタ526によって転送された情報を視覚的に表示することができる任意の種類または形態の装置を全般的に表す。同様に、ディスプレイアダプタ526は、ディスプレイ装置524上に表示するために通信インフラストラクチャ512から(または当技術分野で知られているフレームバッファから)グラフィック、テキスト、および他のデータを転送するように構成された任意の種類または形態の装置を全般的に表す。
図5に示されるように、例示的な計算システム510は、入力インターフェース530を介して通信インフラストラクチャ512に結合された少なくとも1つの入力デバイス528を含むこともある。入力デバイス528は、コンピュータまたは人によって生成された入力を例示的な計算システム510に提供することができる任意の種類または形態の入力デバイスを全般的に表す。入力デバイス528の例としては、限定はしないが、キーボード、ポインティングデバイス、音声認識デバイス、または任意の他の入力デバイスが挙げられる。少なくとも1つの実施形態では、入力デバイス528は、単独で、または他の要素と組み合わせて、本明細書で開示する受信、インストール、スワッピング、リブート、無効化、自制、変更、および/またはアンインストールステップの1つまたは複数を実施することができ、および/またはそれらを実施するための手段であってよい。また、入力デバイス528は、本開示に記載する他のステップおよび機能を実施するために使用することもでき、および/またはそれらを実施するための手段であってもよい。
図5に示されるように、例示的な計算システム510は、記憶インターフェース534を介して通信インフラストラクチャ512に結合された主記憶装置532およびバックアップ記憶装置533を含むこともできる。記憶装置532および533は、データおよび/または他のコンピュータ可読命令を記憶することができる任意の種類または形態の記憶装置または媒体を全般的に表す。例えば、記憶装置532および533は、磁気ディスクドライブ(例えばいわゆるハードドライブ)、フロッピーディスクドライブ、磁気テープドライブ、光ディスクドライブ、フラッシュドライブなどでよい。記憶インターフェース534は、記憶装置532および533と計算システム510の他の構成要素との間でデータを転送するための任意の種類または形態のインターフェースまたは装置を全般的に表す。一例では、図1からのデータベース120が主記憶装置532に記憶されることがある。
いくつかの実施形態では、記憶装置532および533は、コンピュータソフトウェア、データ、または他のコンピュータ可読情報を記憶するように構成された着脱可能な記憶ユニットからの読み出しおよび/またはそのような記憶ユニットへの書き込みを行うように構成されることがある。適切な着脱可能な記憶ユニットの例としては、限定はしないが、フロッピーディスク、磁気テープ、光ディスク、フラッシュメモリ装置などが挙げられる。また、記憶装置532および533は、コンピュータソフトウェア、データ、または他のコンピュータ可読命令を計算システム510にロードできるようにするための他の同様の構造または装置を含むこともできる。例えば、記憶装置532および533は、ソフトウェア、データ、または他のコンピュータ可読情報の読み出しおよび書き込みを行うように構成されることがある。また、記憶装置532および533は、計算システム510の一部でもよく、または他のインターフェースシステムによってアクセスされる別個の装置でもよい。
いくつかの実施形態では、記憶デバイス532および533は、例えば、単独で、または他の要素と組み合わせて、本明細書で開示する受信、インストール、スワッピング、リブート、無効化、自制、変更、および/またはアンインストールステップの1つまたは複数を実施するために使用することができ、および/またはそれらを実施するための手段であってよい。また、記憶デバイス532および533は、本開示に記載する他のステップおよび機能を実施するために使用することもでき、および/またはそれらを実施するための手段であってもよい。
多くの他の装置またはサブシステムを計算システム510に接続することができる。逆に、図5に示される構成要素および装置は、本願で説明および/または図示する実施形態を実施するためにすべて揃っていなければならないわけではない。また、上で言及した装置およびサブシステムは、図5に示されるのとは異なる方法で相互接続されることもある。また、計算システム510は、任意の数のソフトウェア、ファームウェア、および/またはハードウェア構成を採用することができる。例えば、本明細書で開示する例示的実施形態の1つまたは複数を、コンピュータ可読媒体上にコンピュータプログラム(コンピュータソフトウェア、ソフトウェアアプリケーション、コンピュータ可読命令、またはコンピュータ制御論理とも呼ぶ)として符合化することができる。語句「コンピュータ可読媒体」は、コンピュータ可読命令を記憶または担持することができる任意の形態の装置、担体、または媒体を全般的に表す。コンピュータ可読媒体の例としては、限定はしないが、搬送波など伝送型媒体や、物理的媒体、例えば磁気記憶媒体(例えばハードディスクドライブおよびフロッピーディスク)、光記憶媒体(例えばCD−ROMまたはDVD−ROM)、電子記憶媒体(例えばソリッドステートドライブおよびフラッシュ媒体)、および他の配信システムが挙げられる。
コンピュータプログラムを含むコンピュータ可読媒体は、計算システム510にロードすることができる。次いで、コンピュータ可読媒体に記憶されたコンピュータプログラムの全体または一部を、システムメモリ516、および/または記憶装置532および533の様々な部分に記憶することができる。プロセッサ514によって実行されるとき、計算システム510にロードされたコンピュータプログラムは、本願で説明および/または図示する1つまたは複数の例示的実施形態の機能をプロセッサ514に実施させることができ、および/またはプロセッサ514を、そのような機能を実施するための手段にすることができる。追加または代替として、本願で説明および/または図示する例示的実施形態の1つまたは複数は、ファームウェアおよび/またはハードウェアの形で実装することができる。例えば、計算システム510は、本明細書で開示する例示的実施形態の1つまたは複数を実装するように適合された特定用途向け集積回路(ASIC)として構成することができる。
図6は、クライアントシステム610、620、および630、ならびにサーバ640および645をネットワーク650に結合させることができる例示的なネットワークアーキテクチャ600のブロック図である。クライアントシステム610、620、および630は、図5の例示的な計算システム510など、任意の種類または形態の計算装置またはシステムを全般的に表す。一例では、クライアントシステム610は、図1からのシステム100を含むことができる。
同様に、サーバ640および645は、様々なデータベースサービスを提供するように、および/または何らかのソフトウェアアプリケーションを実行するように構成された、アプリケーションサーバやデータベースサーバなどの計算装置またはシステムを全般的に表す。ネットワーク650は、例えばイントラネット、ワイドエリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)、パーソナルエリアネットワーク(PAN)、またはインターネットを含めた任意の遠隔通信ネットワークまたはコンピュータネットワークを全般的に表す。
図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)装置を表すことがある。
また、サーバ640および645が、ストレージエリアネットワーク(SAN)ファブリック680に接続されることもある。SANファブリック680は、複数の記憶デバイス間の通信を容易くすることができる任意の種類または形態のコンピュータネットワークまたはアーキテクチャを全般的に表す。SANファブリック680は、サーバ640および645と複数の記憶デバイス690(1)〜(N)および/またはインテリジェント記憶アレイ695との間の通信を容易くすることができる。また、SANファブリック680は、ネットワーク650ならびにサーバ640および645を介するクライアントシステム610、620、および630と記憶デバイス690(1)〜(N)および/またはインテリジェント記憶アレイ695との間の通信を容易くすることもでき、それにより、デバイス690(1)〜(N)およびアレイ695は、クライアントシステム610、620、および630へのローカル接続デバイスのように見える。記憶デバイス660(1)〜(N)および記憶デバイス670(1)〜(N)と同様に、記憶デバイス690(1)〜(N)およびインテリジェント記憶アレイ695は、データおよび/または他のコンピュータ可読命令を記憶することができる任意の種類または形態の記憶デバイスまたは媒体を全般的に表す。
いくつかの実施形態では、図5の例示的な計算システム510を参照すると、図5の通信インターフェース522などの通信インターフェースを使用して、各クライアントシステム610、620、および630とネットワーク650の間の接続性を提供することができる。クライアントシステム610、620、および630は、例えばウェブブラウザや他のクライアントソフトウェアを使用してサーバ640および645上の情報にアクセスすることができることがある。そのようなソフトウェアは、クライアントシステム610、620、および630が、サーバ640、サーバ645、記憶デバイス660(1)〜(N)、記憶デバイス670(1)〜(N)、記憶デバイス690(1)〜(N)、またはインテリジェント記憶アレイ695によってホストされたデータにアクセスできるようにすることがある。図6は、データを交換するための(インターネットなどの)ネットワークの使用を示すが、本願で説明および/または図示する実施形態は、インターネットまたは任意の特定のネットワークベース環境に限定されない。
少なくとも1つの実施形態では、本明細書で開示した1つまたは複数の例示的実施形態の全部または一部をコンピュータプログラムとして符合化し、サーバ640、サーバ645、記憶デバイス660(1)〜(N)、記憶デバイス670(1)〜(N)、記憶デバイス690(1)〜(N)、インテリジェント記憶アレイ695、またはそれらの任意の組合せにロードし、それらによって実行することができる。また、本明細書で開示する1つまたは複数の例示的実施形態の全部または一部をコンピュータプログラムとして符合化し、サーバ640に記憶し、サーバ645によって動作させ、ネットワーク650を介してクライアントシステム610、620、および630に分散することもできる。したがって、ネットワークアーキテクチャ600は、単独で、または他の要素と組み合わせて、本明細書で開示する受信、インストール、スワッピング、リブート、無効化、自制、変更、および/またはアンインストールステップの1つまたは複数を実施することができ、および/またはそれらを実施するための手段であってよい。また、ネットワークアーキテクチャ600は、本開示に記載する他のステップおよび機能を実施するために使用することもでき、および/またはそれらを実施するための手段であってもよい。
上で詳述したように、計算システム510、および/またはネットワークアーキテクチャ600の1つまたは複数の構成要素は、単独で、または他の要素と組み合わせて、ソフトウェア製品を更新するための例示的な方法の1つまたは複数のステップを実施することができ、および/またはそれらを実施するための手段であってよい。
前述の開示では、特定のブロック図、流れ図、および例を使用して様々な実施形態を記載してきたが、本願で説明および/または図示した各ブロック図の構成要素、流れ図のステップ、操作、および/または構成要素は、多様なハードウェア構成、ソフトウェア構成、またはファームウェア構成(またはそれらの任意の組合せ)を使用して、個別に、および/またはまとめて実装することができる。さらに、他の構成要素に含まれた構成要素の開示はどれも、同じ機能を実現するために多くの他のアーキテクチャを実装することができるので、例示的な性質のものとみなすべきである。
本願で説明および/または図示したプロセスパラメータおよびステップのシーケンスは、単に例として提示したものであり、望みに応じて変えることができる。例えば、本明細書で図示および/または説明したステップは、特定の順序で図示または論述していることがあるが、これらのステップは、必ずしも図示または論述した順序で行う必要はない。また、本願で説明および/または図示した様々な例示的な方法は、本願で説明または図示したステップの1つまたは複数を省くこともでき、あるいは開示したステップに加えて追加のステップを含むこともできる。
様々な実施形態を、完全に機能する計算システムの文脈で本願で説明および/または図示してきたが、これらの例示的実施形態の1つまたは複数は、実際に分散を行うために使用されるコンピュータ可読媒体の特定の種類には関係なく多様な形態でプログラム製品として分散させることができる。また、本明細書で開示する実施形態は、特定のタスクを実施するソフトウェアモジュールを使用して実装することもできる。これらのソフトウェアモジュールは、コンピュータ可読記憶媒体上または計算システム内に記憶されることがあるスクリプト、バッチ、または他の実行可能なファイルを含み得る。いくつかの実施形態では、これらのソフトウェアモジュールは、本明細書で開示する例示的実施形態の1つまたは複数を実施するように計算システムを構成することができる。
さらに、本明細書で述べるモジュールの1つまたは複数は、データ、物理的デバイス、および/または物理的デバイスの表現を、ある形態から別の形態に変えることができる。例えば、1つまたは複数のモジュール102が、第1のバージョンのソフトウェア製品を第2のバージョンのソフトウェア製品に変換することができる。
前述の説明は、本明細書に開示する例示的実施形態の様々な態様を当業者が最も良く利用できるように提示した。この例示的な説明は、網羅的なものとは意図されておらず、また開示した任意の厳密な形態に限定されるものとも意図されていない。本開示の精神および範囲から逸脱することなく、多くの修正形態および変形形態が可能である。本明細書で開示した実施形態は、すべての点で例示とみなされるべきであり、限定とみなされるべきではない。本開示の範囲を決定するに当たっては、添付の特許請求の範囲およびそれらの均等箇所を参照すべきである。
特に断りのない限り、本明細書および特許請求の範囲で使用する単数形は、「少なくとも1つ」を意味するものと解釈すべきである。さらに、使いやすいように、本明細書および特許請求の範囲で使用する語「含む」および「有する」は、語「備える」と同義語であり、同じ意味を有するものとする。

Claims (14)

  1. ソフトウェア製品を更新するためのコンピュータ実装方法であって、前記方法の少なくとも一部が、少なくとも1つの処理装置を備える計算デバイスによって実施され、
    第1のバージョンのソフトウェア製品に第2のバージョンのソフトウェア製品を上書きしてインストールすることを求める要求を受信するステップと、
    前記第1のバージョンのソフトウェア製品が動作しているままで安全にインストールできるコンポーネントを識別するリストを読み取ることによって、前記第1のバージョンのソフトウェア製品の実行に影響を及ぼさない前記第2のバージョンのソフトウェア製品の1つまたは複数のコンポーネントをインストールし、インストールされると前記第1のバージョンのソフトウェア製品の実行に影響を及ぼすことになる前記第2のバージョンのソフトウェアの1つまたは複数のコンポーネントのインストールを見合わせることによって、前記第1のバージョンのソフトウェア製品が動作しているままで、前記第2のバージョンのソフトウェア製品を休止状態でインストールするステップと、
    前記第2のバージョンのソフトウェア製品を作動させ、前記第1のバージョンのソフトウェア製品を作動停止させることによって、前記第1のバージョンと第2のバージョンのソフトウェア製品をスワップするステップと
    を含む方法。
  2. 前記第1および第2のバージョンのソフトウェア製品がインストールされた計算システムの第1のリブートを行うステップと、
    前記第1のリブート中、前記第1のバージョンのソフトウェア製品の1つまたは複数のコンポーネントを前記第2のバージョンのソフトウェア製品向けに更新する実行モードアプリケーションを動作させるステップと、
    前記第1のリブート後、前記第1のバージョンのソフトウェア製品からのセキュリティドライバを動作させるステップと
    をさらに含む請求項1に記載の方法。
  3. 前記第1のバージョンのソフトウェア製品の1つまたは複数のコンポーネントが更新された後に、1)第2のリブート後に無効化するように第1のバージョンのソフトウェア製品を設定し、かつ2)前記第2のリブート後に有効化するように第2のバージョンのソフトウェア製品を設定するステップと、
    前記実行モードアプリケーションによって前記第2のリブートを強制するステップとをさらに含み、
    前記第2のリブート後まで前記第1のバージョンのソフトウェア製品が引き続き動作する
    請求項2に記載の方法。
  4. 前記第1のバージョンのソフトウェア製品の1つまたは複数のコンポーネントを前記第2のバージョンのソフトウェア製品向けに更新する実行モードアプリケーションを動作させるステップが、前記コンポーネントの現行のインスタンスに影響を及ぼすことなくコンポーネントの1つへのポインタを変更するステップを含む請求項3に記載の方法。
  5. 前記第2のバージョンのソフトウェア製品が作動されるまで、前記計算システムのネットワークアダプタを無効化しておくステップをさらに含み、前記第2のバージョンのソフトウェア製品が、前記計算システムの前記ネットワークアダプタが有効化される前に前記第1のリブート中に作動される
    請求項2に記載の方法。
  6. 前記第2のバージョンのソフトウェア製品をインストールするステップが、
    前記第2のバージョンのソフトウェア製品の1つまたは複数のファイルをインストールするステップと、
    ブートプロセス中に必要とされる前記第2のバージョンのソフトウェア製品の1つまたは複数のコンポーネントをインストールするステップと
    を含む請求項1に記載の方法。
  7. 前記第2のバージョンのソフトウェア製品をインストールするステップが、前記第1のバージョンのソフトウェア製品の1つまたは複数の設定を保存するステップを含み、
    前記第1のバージョンと第2のバージョンのソフトウェア製品をスワップするステップが、前記第1のバージョンのソフトウェア製品の1つまたは複数の設定を前記第2のバージョンのソフトウェア製品にインポートするステップを含む
    請求項1に記載の方法。
  8. 前記第2のバージョンのソフトウェア製品をインストールするステップが、前記第1のバージョンのソフトウェア製品と前記第2のバージョンのソフトウェア製品の1組の相違を識別するステップを含み、
    前記第1のバージョンと第2のバージョンのソフトウェア製品をスワップするステップが、前記第2のバージョンのソフトウェア製品において使用できるように前記第1のバージョンのソフトウェア製品の1つまたは複数のコンポーネントを更新するために、前記1組の相違を使用するステップを含む
    請求項1に記載の方法。
  9. 前記第2のバージョンのソフトウェア製品をインストールするステップが、前記第1のバージョンのソフトウェア製品が1つまたは複数のコンポーネントを利用しているかどうか判断することによって、安全にインストールできる前記第2のバージョンのソフトウェア製品の1つまたは複数のコンポーネントを自動的に識別するステップを含む請求項1に記載の方法。
  10. セキュリティソフトウェア製品を更新するためのコンピュータ実装方法であって、前記方法の少なくとも一部が、少なくとも1つの処理装置を備える計算デバイスによって実施され、
    1のバージョンのセキュリティソフトウェア製品に第2のバージョンのセキュリティソフトウェア製品を上書きしてインストールすることを求める要求を受信するステップと、
    前記第1のバージョンのソフトウェア製品が動作しているままで安全にインストールできるコンポーネントを識別するリストを読み取ることによって、前記第1のバージョンのセキュリティソフトウェア製品の実行に影響を及ぼさない前記第2のバージョンのセキュリティソフトウェア製品の1つまたは複数のコンポーネントをインストールし、インストールされると前記第1のバージョンのセキュリティソフトウェア製品の実行に影響を及ぼすことになる前記第2のバージョンのセキュリティソフトウェアの1つまたは複数のコンポーネントのインストールを見合わせることによって、前記第1のバージョンのセキュリティソフトウェア製品が動作しているままで、前記第2のバージョンのセキュリティソフトウェア製品を休止状態でインストールするステップと、
    前記第1および第2のバージョンのセキュリティソフトウェア製品がインストールされた計算システムをリブートするステップと、
    前記第2のバージョンのセキュリティソフトウェア製品を作動させ、前記第1のバージョンのセキュリティソフトウェア製品を作動停止させることによって、前記第1のバージョンと第2のバージョンのソフトウェア製品をスワップするステップと
    を含むコンピュータ実装方法。
  11. 前記第2のバージョンのセキュリティソフトウェア製品をインストールするステップが、
    前記第2のバージョンのセキュリティソフトウェア製品の1つまたは複数のファイルをインストールするステップと、
    ブートプロセス中に必要とされる前記第2のバージョンのセキュリティソフトウェア製品の1つまたは複数のコンポーネントをインストールするステップと
    を含む請求項10に記載の方法。
  12. 少なくとも1つの処理装置と、
    第1のバージョンのソフトウェア製品に第2のバージョンのソフトウェア製品を上書きしてインストールすることを求める要求を受信するように前記処理装置に命令するようにプログラムされたインターフェースモジュールと、
    前記第1のバージョンのソフトウェア製品が動作しているままで安全にインストールできるコンポーネントを識別するリストを読み取ることによって、前記第1のバージョンのソフトウェア製品の実行に影響を及ぼさない前記第2のバージョンのソフトウェア製品の1つまたは複数のコンポーネントをインストールし、インストールされると前記第1のバージョンのソフトウェア製品の実行に影響を及ぼすことになる前記第2のバージョンのソフトウェアの1つまたは複数のコンポーネントのインストールを見合わせることによって、前記第1のバージョンのソフトウェア製品が動作しているままで、前記第2のバージョンのソフトウェア製品を休止状態でインストールするように前記処理装置に命令するようにプログラムされたインストールモジュールと、
    前記第2のバージョンのソフトウェア製品を作動させ、前記第1のバージョンのソフトウェア製品を作動停止することによって、前記第1のバージョンと第2のバージョンのソフトウェア製品をスワップするように前記処理装置に命令するようにプログラムされたスワッピングモジュールと
    を備えるシステム。
  13. 前記スワッピングモジュールが、前記第1のバージョンのソフトウェア製品の1つまたは複数のコンポーネントの状態を、前記第1および第2のバージョンのソフトウェア製品がインストールされた計算システムのリブート後に前記1つまたは複数のコンポーネントが再始動しないように変更することによって、前記第のバージョンのソフトウェア製品を作動停止させるように前記処理装置に命令するようにプログラムされた請求項12に記載のシステム。
  14. 前記インストールモジュールが、
    前記第2のバージョンのソフトウェア製品の1つまたは複数のファイルをインストールするステップと、
    ブートプロセス中に必要とされる前記第2のバージョンのソフトウェア製品の1つまたは複数のコンポーネントをインストールするステップと
    によって、前記第2のバージョンのソフトウェア製品をインストールするように前記処理装置に命令するようにプログラムされた請求項12に記載のシステム。
JP2012524757A 2009-08-10 2010-08-06 ソフトウェア製品を更新するためのシステムおよび方法 Active JP5646629B2 (ja)

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 JP2013502005A (ja) 2013-01-17
JP5646629B2 true JP5646629B2 (ja) 2014-12-24

Family

ID=42942151

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012524757A Active JP5646629B2 (ja) 2009-08-10 2010-08-06 ソフトウェア製品を更新するためのシステムおよび方法

Country Status (6)

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

Families Citing this family (37)

* 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
CA2859794A1 (en) * 2011-12-22 2013-06-27 Abbvie Inc. Application security framework
US9268663B1 (en) * 2012-04-12 2016-02-23 Amazon Technologies, Inc. Software testing analysis and control
US9058428B1 (en) 2012-04-12 2015-06-16 Amazon Technologies, Inc. Software testing using shadow requests
US9043903B2 (en) 2012-06-08 2015-05-26 Crowdstrike, Inc. Kernel-level security agent
US9164753B2 (en) 2013-01-08 2015-10-20 Sap Se Generating software updates
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 (ja) * 2014-01-21 2015-07-30 ローム株式会社 メモリ制御回路
US10289405B2 (en) 2014-03-20 2019-05-14 Crowdstrike, Inc. Integrity assurance and rebootless updating during runtime
CN104182344B (zh) * 2014-08-25 2017-02-15 腾讯科技(深圳)有限公司 一种覆盖安装测试方法及装置
TWI568605B (zh) * 2014-09-17 2017-02-01 Tire pressure sensor software and the same version of the update system and update methods
US9841971B1 (en) * 2015-03-11 2017-12-12 Intuit, Inc. Embedding software updates into content retrieved by applications
US9740531B2 (en) * 2015-06-29 2017-08-22 Lookout, Inc. Coordinating multiple components
US10339316B2 (en) 2015-07-28 2019-07-02 Crowdstrike, Inc. Integrity assurance through early loading in the boot phase
CN105183503B (zh) * 2015-08-12 2018-10-12 浪潮(北京)电子信息产业有限公司 一种安全软件的安全升级方法及装置
US10021171B2 (en) 2015-12-01 2018-07-10 Cisco Technology, Inc. Zero-downtime cloud connector upgrades
US10110434B2 (en) 2015-12-01 2018-10-23 Cisco Technology, Inc. Cloud orchestrated cloud connector upgrades
US10477915B2 (en) 2016-03-01 2019-11-19 Hbn Shoe, Llc Device for high-heeled shoes and method of constructing a high-heeled shoe
US10579361B1 (en) 2016-12-14 2020-03-03 Juniper Networks, Inc Systems and methods for efficiently updating software installed on network devices
US10289401B1 (en) * 2016-12-30 2019-05-14 Juniper Networks, Inc Systems and methods for efficiently downgrading operating systems installed on network devices
US10534598B2 (en) 2017-01-04 2020-01-14 International Business Machines Corporation Rolling upgrades in disaggregated systems
US11153164B2 (en) 2017-01-04 2021-10-19 International Business Machines Corporation Live, in-line hardware component upgrades in disaggregated systems
JP6897203B2 (ja) * 2017-03-22 2021-06-30 日本電気株式会社 組み込み装置および組み込み装置の制御方法
CN107479933A (zh) * 2017-08-21 2017-12-15 惠州Tcl移动通信有限公司 一种移动终端应用程序升级方法、存储设备及移动终端
US11245669B1 (en) * 2019-09-16 2022-02-08 Juniper Networks, Inc. Firewall filter comprising one or more objects
US20210382705A1 (en) * 2020-06-08 2021-12-09 Acronis International Gmbh Systems and methods for seamless software migration
US11902264B2 (en) 2020-06-22 2024-02-13 Vmware, Inc. Path selection for data packets encrypted based on an IPSEC protocol
US11762644B2 (en) * 2021-05-10 2023-09-19 International Business Machines Corporation Agentless installation for building deployments
US11956213B2 (en) * 2022-05-18 2024-04-09 VMware LLC Using firewall policies to map data messages to secure tunnels
US20240036849A1 (en) * 2022-07-28 2024-02-01 Dell Products L.P. Connectivity Management System Client Module Update and Failure Recovery
CN115640034B (zh) * 2022-11-28 2023-06-02 荣耀终端有限公司 数据存储方法和设备

Family Cites Families (34)

* 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
JP2003503793A (ja) 1999-06-30 2003-01-28 マイクロソフト コーポレイション 共用システムファイルを保護するシステム及び方法
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
US6658489B1 (en) * 2000-03-29 2003-12-02 International Business Machines Corporation Method for replacing a device driver during system operation
TW518513B (en) * 2001-03-28 2003-01-21 Synq Technology Inc System and method to update an executing application software by modular way
JP4222590B2 (ja) * 2001-07-18 2009-02-12 株式会社東芝 サーバ・システム、クライアント・システム、ソフトウェアストリーミング方法及びプログラム
US7246349B2 (en) * 2001-08-31 2007-07-17 Telefonaktiebolaget Lm Ericsson (Publ) Migration support mechanism in open service and open mobile architecture
US7174547B2 (en) * 2002-03-25 2007-02-06 Ciena Corporation Method for updating and restoring operating software in an active region of a network element
JP4336852B2 (ja) * 2002-12-18 2009-09-30 株式会社 インテック・ネットコア 計算装置、計算プログラム及び計算方法
US6978452B2 (en) * 2003-04-02 2005-12-20 Beach Unlimited Llc Upgrading digital media servers
US7698700B2 (en) * 2003-04-17 2010-04-13 International Business Machines Corporation System quiesce for concurrent code updates
EP1501012B1 (en) * 2003-07-21 2008-02-27 Alcatel Lucent Software replacement method and related software replacement system
KR100584448B1 (ko) * 2004-01-19 2006-05-26 삼성전자주식회사 바이너리 위치정보를 이용한 임베디드 소프트웨어 원격다운로드방법 및 시스템
US7921419B2 (en) * 2004-05-12 2011-04-05 Oracle International Corporation Method and mechanism for managing incompatible changes in a distributed system
US7509676B2 (en) * 2004-07-30 2009-03-24 Electronic Data Systems Corporation System and method for restricting access to an enterprise network
US8146072B2 (en) * 2004-07-30 2012-03-27 Hewlett-Packard Development Company, L.P. System and method for updating software on a computer
JP2006106825A (ja) * 2004-09-30 2006-04-20 Nippon Digital Kenkyusho:Kk ソフトウェア更新方法、端末装置およびサーバ装置
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
JP2007025906A (ja) * 2005-07-13 2007-02-01 Konica Minolta Business Technologies Inc インストール支援方法、ワークフロー作成支援方法
JP2007066132A (ja) * 2005-09-01 2007-03-15 Ricoh Co Ltd プログラムシステム
US7823145B1 (en) * 2006-03-31 2010-10-26 Vmware, Inc. Updating software on dormant disks
US20080244552A1 (en) * 2007-03-27 2008-10-02 Telefonaktiebolaget Lm Ericsson (Publ) Upgrading services associated with high availability systems
JP4539677B2 (ja) * 2007-04-23 2010-09-08 コニカミノルタビジネステクノロジーズ株式会社 画像形成装置、プログラム更新システム、プログラム更新方法およびプログラム更新プログラム
US8806472B2 (en) * 2007-09-27 2014-08-12 Ericsson Ab In-service software upgrade utilizing metadata-driven state translation
JP5111129B2 (ja) * 2008-01-22 2012-12-26 キヤノン株式会社 情報処理装置、情報処理システム、情報処理方法、及び、プログラム
CN101408846B (zh) * 2008-11-24 2011-04-13 华为终端有限公司 一种杀毒软件升级的方法及相应的终端和***
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

Also Published As

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

Similar Documents

Publication Publication Date Title
JP5646629B2 (ja) ソフトウェア製品を更新するためのシステムおよび方法
US9223966B1 (en) Systems and methods for replicating computing system environments
US8332842B2 (en) Application restore points
JP6186374B2 (ja) 仮想化されたプラットフォームへ安全に移行するためのシステム及び方法
US8015450B1 (en) Systems and methods for detecting and automatically installing missing software components
EP3066562B1 (en) Systems and methods for updating system-level services within read-only system images
EP2989544A1 (en) Systems and methods for replacing application methods at runtime
WO2012003048A1 (en) Systems and methods for sharing the results of analyses among virtual machines
EP2893481B1 (en) Systems and methods for detecting illegitimate applications
US8353044B1 (en) Methods and systems for computing device remediation
US9524215B1 (en) Systems and methods for managing virtual machine backups
US8893114B1 (en) Systems and methods for executing a software package from within random access memory
US8225316B1 (en) Methods and systems for creating and applying patches for virtualized applications
US9146748B1 (en) Systems and methods for injecting drivers into computing systems during restore operations
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
US8776044B1 (en) Systems and methods for providing computer cluster policies for implementation in computer cluster environments
US8572742B1 (en) Detecting and repairing master boot record infections
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
US10437683B1 (en) Systems and methods for protecting data affected by system changes
US9800647B1 (en) Systems and methods for provisioning computing systems with applications
US8392373B1 (en) Systems and methods for retaining an executable environment during a data archive process

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