JP2009110505A - コンピュータプログラムにパッチを当てるシステム及び方法 - Google Patents

コンピュータプログラムにパッチを当てるシステム及び方法 Download PDF

Info

Publication number
JP2009110505A
JP2009110505A JP2008236640A JP2008236640A JP2009110505A JP 2009110505 A JP2009110505 A JP 2009110505A JP 2008236640 A JP2008236640 A JP 2008236640A JP 2008236640 A JP2008236640 A JP 2008236640A JP 2009110505 A JP2009110505 A JP 2009110505A
Authority
JP
Japan
Prior art keywords
patch
layer
subsystem
patch layer
mapping data
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
JP2008236640A
Other languages
English (en)
Other versions
JP5363776B2 (ja
Inventor
Mark A Greenwood
エイ グリーンウッド マーク
Randall R Cook
アール クック ランダル
Scott G Hopwood
ジー ホップウッド スコット
Robert P Palethorpe
ピー ペイルソープ ロバート
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 JP2009110505A publication Critical patent/JP2009110505A/ja
Application granted granted Critical
Publication of JP5363776B2 publication Critical patent/JP5363776B2/ja
Expired - Fee Related 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running

Abstract

【課題】コンピュータプログラムのパッチの無効化を容易にする。
【解決手段】パッチは、基本ファイルシステム及び構成を有するコンピュータデバイス、コンピュータプログラム及びパッチ階層化サブシステムに仮想インストールされる。仮想インストールは、パッチ層にパッチのコンテンツを格納し、そして、パッチ層と基本ファイルシステム及び構成の内容との間の、少なくとも1つの関係を決定する、マッピングデータを生成し格納することを含む。パッチ階層化サブシステムは、仮想インストールされたパッチが、有効化されて、マッピングデータをパッチ階層化サブシステムに適用して、基本ファイルシステム及び構成からパッチ層へのアクセス要求を選択的にリダイレクトする。有効化されたパッチは、マッピングデータのパッチ階層化サブシステムへの適用を逆行させることにより、無効化できる。
【選択図】図2C

Description

[相互参照情報]
本願は、2003年12月30日出願の米国仮特許出願第60/533,388号の利益を主張する、2004年12月30日に出願した米国特許出願第11/026520号の一部継続出願であり、且つ、2002年6月12日出願の米国仮特許出願第60/387,969号の利益を主張する、2003年6月11日に出願した米国特許出願第10/459,936号(現在は、2006年10月3日登録の米国特許第7,117,495号)の一部継続出願である。
本願は、2003年12月30日出願の米国仮特許出願第60/533,388号の利益を主張する、2004年12月30日出願の米国特許出願第11/027489号の一部継続出願である。
本願は、米国特許出願第11/081856号及び2005年3月16日出願の米国特許出願第11/082194号の一部継続出願である。そして、これらはそれぞれ、2002年6月12日出願の米国仮特許出願第60/387,969号の利益を主張する、2003年6月11日出願の米国特許出願第10/459,936号(現在は、2006年10月3日登録の米国特許第7,117,495号)の一部継続出願である。
本願は、2006年1月3日出願の米国特許出願第11/324,565号、第11/324,571号、第11/324,375号、第11/324,607号、第11/324,545号、第11/324,572号、第11/324,573号及び第11/324,496号の一部継続出願である。これらはそれぞれ、2002年6月12日に出願の米国仮特許出願第60/387,969号の利益を主張する、2003年6月11日に出願の米国特許出願第10/459,936号(現在は、2006年10月3日登録の米国特許第7,117,495号)、第10/459,768号(現在は、2007年1月9日に登録の米国特許第7,162,724号)、及び、第10/459,870号(現在は、2007年1月16日登録の米国特許第7,165,260号)の一部継続出願である。また、本願は、2003年12月30日出願の米国仮特許出願第60/533,388号の利益を主張し、且つ、2002年6月12日出願の米国仮特許出願第60/387,969号の利益を主張する、2003年6月11日に出願の米国特許出願第10/459,936号(現在は、2006年10月3日登録の米国特許第7,117,495号)の一部継続出願である2004年12月30日出願の米国特許出願第11/026,520の一部継続出願である。また、本願は、2003年12月30日出願の米国仮特許出願第60/533,388号の利益を主張する、2004年12月30日出願の米国特許出願第11/027,489号の一部継続出願である。そして、本願は、2005年3月16日出願の、米国特許出願第11/081856号及び第11/082,194号の一部継続出願である。これらは、2002年6月12日出願の米国仮特許出願第60/387,969号の利益を主張する、2003年6月11日出願の米国特許出願第10/459,936号(現在は、2006年10月3日登録の、米国特許第7,117,495号)の一部継続出願である。
本願は、2002年6月12日に出願の特許出願第60/387,969号の利益を主張する、2003年6月11日出願の第10/459,936号(現在は、2006年10月3日登録の米国特許第7,117,495号)、第10/459,768号(現在は、2007年1月9日登録の米国特許第7,162,724号)及び第10/459,870号(現在は、2007年1月16日登録の米国特許第7,165,260号)の一部継続出願である、2006年9月28日出願の米国特許出願第11/528,858号の一部継続出願である。本願は、2002年6月12日出願の特許出願第60/387,969号の利益を主張する、2003年6月11日出願の米国特許出願第10/459,936号(現在は、2006年10月3日登録の、米国特許第7,117,495号)の一部継続出願である、2003年12月30日出願の特許出願第60/533,388号の利益を主張する、2004年12月30日出願の米国特許出願第11/026,520号の一部継続出願である。また、本願は、2003年12月30日に出願の特許出願第60/533,388号の利益を主張する、2004年12月30日に出願の米国特許出願第11/027,489号の一部継続出願である。また、本願は、それぞれが、2002年6月12日に出願の特許出願第60/387,969号の利益を主張する、2003年6月11日に出願の米国特許出願第10/459,936号(現在は、2006年10月3日登録の、米国特許第7,117,495号)の一部継続出願である、2005年3月16日に出願の、米国特許出願第11/081856号及び第11/082,194号の一部継続出願である。そして、本願は、2006年1月3日出願の米国特許出願第11/324,565号、第11/324,571号、第11/324,375号、第11/324,607号、第11/324,545号、第11/324,572号、第11/324,573号及び第11/324,496号の一部継続出願である。これらはそれぞれ、2002年6月12日出願の特許出願第60/387,969号の利益を主張する、2003年6月11日出願の、米国特許出願第10/459,936号(現在は、2006年10月3日登録の米国特許第7,117,495号)、第10/459,768号(現在は、2007年1月9日登録の米国特許第7,162,724号)、及び、第10/459,870号(現在は、2007年1月16日登録の、米国特許第7,165,260号)の一部継続出願である。本願は、2003年12月30日に出願の特許出願第60/533,388号の利益を主張し、且つ、2002年6月12日出願の特許出願第60/387,969号の利益を主張する、2003年6月11日に出願の米国特許出願第10/459,936号(現在は、2006年10月3日登録の米国特許第7,117,495号)の一部継続出願である、2004年12月30日出願の、米国特許出願第11/026,520号の一部継続出願である。本願は、2003年12月30日出願の特許出願第60/533,388号の利益を主張する、2004年12月30日出願の米国特許出願第11/027,489号の一部継続出願である。そして、本願は、2002年6月12日に出願の特許出願第60/387,969号の利益を主張する、2003年6月11日に出願の米国特許出願第10/459,936号(現在は、2006年10月3日登録の米国特許第7,117,495号)の一部継続出願である、2005年3月16日出願の、米国特許出願第11/081856号及び第11/082,194号の一部継続出願である。
上記の特許及び特許出願の開示は、それらの全体が参照により本明細書に組み込まれたものとする。
コンピュータ関係では、「パッチ」という用語は、一般に、コンピュータプログラムの前バージョンを変更するように設計された更新を示すために用いられる。一般に、パッチは、ソフトウェア不安定性や、バグに対してフィックスを適用するために用いられる。典型的な、コンピュータプログラムメーカーは、定期的にパッチをリリースし、コンピュータシステムの保守責任者、例えば、コンピュータシステムのユーザ又は管理者は、パッチを受信し、各自のコンピュータシステムにインストールする。
しかし、コンピュータプログラムパッチのインストールは重要であり、且つ、潜在的な問題を含んでいる可能性がある。例えば、インストールされたパッチが不完全なことが発覚したり、コンピュータ上で動いている他のコンピュータプログラムに干渉したり、又はそれらとコンフリクトする可能性があり、1つ又は複数のコンピュータプログラムが、機能不全又は特定のコンピューティングアーキテクチャに不適切に機能する原因となる可能性がある。さらに、例えば、パッチのインストールにより、コンピュータシステムに問題が生じた場合に必要となるような、パッチのインストール後の修正は、非常に難しく、且つ、時間がかかる可能性がある。ある状況では、問題のあるパッチによってもたらされた影響を除去するために、コンピュータプログラムの基本バージョンをアンインストールしてから、再度インストールしなければならない。
ソフトウェアのパッチングに関する問題は、多数のコンピュータを有するコンピュータシステムを維持している管理者又は組織に対して、深刻になる。この種の環境において、パッチをアンインストールすることは、極めて難しい場合がある。インストールされたパッチによって問題が生じた、特定の状況において、管理者及びそのチームは、パッチにより引き起こされた問題を同定し、修復することを試みるために、システム内のそれぞれのコンピュータのファイル及びレジストリを検査すること及び/又は、コンピュータにコンピュータプログラムを再インストールすることに、かなりの時間を費やすことを強いられることがある。
潜在的問題及びソフトウェア・パッチの従来のインストールに関連するこれらの課題の重大さのため、一般的に、管理者及びそのチームは、パッチの「試行」インストールを専用の「テストコンピュータ」−実際のネットワークに存在するかのように模倣するか、又は、それに相当する、コンピュータ−に行い、実際のネットワーク上のコンピュータにパッチをインストールする前に、まず、テストコンピュータにおいて、インストール及び操作が成功することを確認する。この方法は、専用のコンピュータデバイス、ソフトウェアライセンス及び人的労力を含む、かなりの時間及び資源を必要とする。それにもかかわらず、従来のソフトウェアパッチング技術の限界及び、標準の技術を用いた不成功なパッチインストールに関連する潜在的なコストのために、組織はこの方法を使用し続けている。
本願は、コンピュータプログラムのパッチングのためのシステムと方法の開示を目的とする。
ここに開示された実施例は、1つ又は複数の手順、装置、システム、機器、方法、コンピュータ可読媒体、又はコンピュータ可読媒体に記録されたコンピュータプログラム製品を含む、多くの手段によって実施可能であることは明らかである。
1つの実施例において、コンピュータプログラムパッチは、基本ファイルシステム及び構成を有するコンピュータ、コンピュータプログラム、並びに、パッチ階層化サブシステムに仮想インストールされる。ある実施形態では、仮想インストールは、パッチ層にパッチコンテンツを格納して、パッチ層のパッチコンテンツと、基本ファイルシステム及び構成の内容との間の、少なくとも一つの関係を定義しているマッピングデータを生成、格納することを含むことができる。仮想インストールされたパッチは、コンピュータデバイスにおいて有効化されることができる。ある実施形態では、マッピングデータをパッチ階層化サブシステムに適用することによりパッチが有効化され、パッチ階層化サブシステムが、マッピングデータに基づいて、基本ファイルシステム及び構成からのアクセス要求(例えば、ファイル又は構成設定についての要求)を、パッチ層に選択的にリダイレクトするように構成されている。有効化されたパッチをテストすることができる。有効化されたパッチは、無効化されることもできる。ある実施形態では、マッピングデータのパッチ階層化サブシステムへの適用を逆行させることにより、パッチが使用不能とされる。仮想インストールされたパッチは、コンピュータデバイスの基本ファイルシステム及び構成に、「コミットされる」即ち、実際にインストールされることができる。ある実施形態では、パッチ層及び/又はパッチ層に関連するマッピングデータは、パッチをコミットするために用いられる。パッチの仮想インストール、有効化、テスト、無効化、コミットは、ローカル又はリモートで制御できる。ある実施形態では、パッチ層サブシステムは、実質的にパッチをインストールし、有効化し、無効化し、コミットするステップを実行するように構成される。付加的な詳細及び例示的実施形態を以下に示す。
多様な実施形態は、同じ要素については同じ参照番号によって示されている、添付の図面を参照して説明される。
以下に記載されている実施例は、図面を参照することで最も正確に理解されるであろう。概して、以下に記載され、図に示される構成要素は、多様な異なる構成にアレンジして設計されることができることは容易に理解されよう。従って、以下の詳細な説明は、図面に代表されるように、本願発明の範囲を限定せず、特定の実施態様の代表例を示すに過ぎない。
一般的概念
コンピュータプログラムにパッチを当てるための典型的なシステムと方法について以下に記載する。明細書内で用いている「コンピュータプログラム」という用語は、広義に、1つ又は複数のコンピュータ可読媒体に記録された、コンピュータ可読の命令のあらゆるセットを指し、それらの命令は、コンピュータデバイスによって実行可能である。コンピュータプログラムは、アプリケーション及びオペレーティングシステムを含んでも良いが、これに制限されるものではない。
ある実施形態では、コンピュータプログラムパッチは、基本ファイルシステム及び構成を有するコンピュータデバイス、及びパッチ階層化サブシステムに仮想インストールされることができる。パッチの仮想インストールは、パッチが有効化され、テストされ、無効化され、及び/又は、「コミットされる」(即ち、実際にインストールされた)ことを可能にする。例えば、ある実施形態では、パッチの仮想インストールの間に提供され、且つ、基本ファイルシステム及び構成から仮想インストールされたパッチへの、ファイル及び構成設定についてのアクセス要求を選択的にリダイレクトすることに用いられる、マッピングデータをアクティベーションすることによって、仮想インストールされたパッチが有効化されることができる。コンピュータで動いているコンピュータプログラム(例えば、アプリケーション又はオペレーティングシステム)において、仮想インストールされ、且つ、有効化されたパッチが、パッチが実際に基本ファイルシステム及びコンピュータデバイスの構成にインストールされたかのように見え、機能するように構成される。しかし、実際にインストールされたというよりはむしろ、パッチが仮想インストールされ、有効化されるので、パッチはかなりクリーン且つより便利な、従来のアンインストール又は他の修復技術よりも安定な方法で、無効化される可能性がある。「無効化パッチ」の特性は、仮想インストールされ、有効化されたパッチがテストされて、正常に動作しないか又は(例えば、コンフリクトによって)他のコンピュータプログラムに問題を引き起こすことが明らかになった場合に、特に有利であり得る。
加えて、仮想インストールされたパッチは、基本ファイルシステム及びコンピュータデバイスの構成に対して、好都合に「コミットされる」可能性がある。例えば、仮想インストールされたパッチと関連するマッピングデータは、仮想インストールされたパッチを実際にインストールされたパッチに移行するために利用されることができる。従って、仮想インストールされて、有効化されたパッチがテストされ、正常に機能することが確認された場合、仮想インストールされたパッチは、好都合に、コンピュータデバイスに対して「コミットされる」ことができる。「コミットパッチ」特性は、既に仮想インストールされ、有効化され、テストされたパッチを実際にインストールするための、好都合な方法である。仮想パッチをコミットすることは、仮想インストールされて有効化されるパッチの数を許容可能なレベルに保つために用いることができる。有効化されたパッチの数が多くなり過ぎる事が許容された場合、アクセス要求を適切なパッチにリダイレクトする操作が計算リソースのかなりを消耗することになり得る。
パッチの仮想インストール、有効化、無効化、テスト、コミットは、遠隔地から制御でき、従って、コンピューティングネットワークにおいて1つ又は複数のパッチを好都合に配備することを容易にできる。例えば、サーバと、1つ又は複数のコンピュータデバイスとを有し、サーバに通信可能に接続されているネットワークにおいて、そのサーバは、パッチを1つ又は複数のコンピュータデバイスに配布し、且つ、パッチの仮想インストールをリモート制御、有効化、テスト、無効化、及び/又は、コミットするように構成されても良い。特筆すべきことに、仮想インストール及び有効化されたパッチの修復は容易であるため、最初に分離したテスト環境下でテストされることなく、パッチはネットワークを通じて展開されることができる。従って、コンピュータシステム又はネットワークの管理者は、時間とその他のリソースを節約できる。その他のリソースは、仮想インストールによらなければ、パッチを実際のネットワーク又はシステムにインストールすることに先立って、別のテスト環境を維持して、その環境においてパッチをテストし、トラブルシュートし、修復することに費やされたであろうリソースを含む。
例示的システム
ここで、図面を参照すると、図1は、明細書に記載したコンピュータプログラムのパッチングを補助する、例示的なコンピュータシステム100(又は、単に「システム100」)を示す。図示のように、コンピュータシステム100は、120−Nを介して、通信可能にコンピュータデバイス120−1(集合的には「コンピュータデバイス120」)に結合されている、パッチ制御サブシステム110を含むことができる。パッチ制御サブシステム110とコンピュータデバイス120は、本明細書に記載のプロセスをサポートする周知のネットワーク通信技術、機器、信号、及びプロトコルを含む、あらゆる適切な通信技術を用いて、ネットワーク130を通じて相互に通信する。ネットワーク130は、ネットワーク130に接続されたデバイス間の通信信号を伝達できる、LAN、WAN、イントラネット、インターネットなどを含むが、必ずしもこれらに限定されるものではない、あらゆる型及び数のネットワークを含むことができる。
パッチ制御サブシステム110は、ネットワーク130を介して、コンピュータ120と通信するように構成される1つ又は複数の装置を含むことができる。例えば、ある実施形態では、パッチ制御サブシステム110は、シマンテック社の1部門であるアルティリス社提供のアルティリス・ノーティフィケーション・サーバ(Altiris Notification Server(登録商標))ソフトウェアのような、1つ又は複数のサーバを含むか、又はそれらに統合されても良い。パッチ制御システム110は、1つ又は複数のコンピュータ可読媒体に記録されたコンピュータ可読命令を実行することを含み且つそのために構成されていても良く、コンピュータ可読命令は、パッチを示すデータの生成および送信、パッチ層、パッチコマンド、及び/又は、コンピュータデバイス120へのテストコマンドを含む、パッチ操作を制御するように構成されても良い。従って、システム100の管理者のような、パッチ制御サブシステム110のユーザは、パッチ制御サブシステム110を利用して、コンピュータデバイス120のコンピュータプログラムにパッチを当てる操作を、ネットワーク130を介して制御することができる。
例えば、パッチ制御サブシステム110は、コンピュータプログラム開発企業や又はそのディストリビュータのような団体によって配布される、コンピュータプログラムパッチを受信するか、又は、それらにアクセスすることができる。パッチは、例えば、インターネットによるダウンロードのためにアクセス可能であっても良い。ユーザの指示の下で、パッチ制御サブシステム110は、ネットワーク130を介して、パッチを1つ又は複数のコンピュータデバイス120に配布することができる。パッチを示すデータは、いかなる適切な技術及びいかなるアクセス可能な形で送信されても良い。
ある実施形態では、パッチ制御サブシステム110は、パッチについて実行可能なオリジナルインストールをコンピュータデバイス120に配布し、この場合、コンピュータデバイス120は、実行可能なインストールをパッチの仮想インストールに利用するように構成されても良い。他の実施態様において、パッチ制御サブシステム110は、パッチを仮想インストールして、仮想インストールされたパッチを示すデータをコンピュータデバイス120にエクスポートする。そのコンピュータデバイス120は、エクスポートされたデータを1つ又は複数のメモリロケーションに格納し、コンピュータデバイス110にパッチを仮想インストールする。コンピュータデバイス120及び/又はパッチ制御サブシステム110がパッチを仮想インストールすることのできる方法の実施例を以下でさらに説明する。
パッチ制御サブシステム110は、コンピュータデバイス120に対する、パッチの有効化、無効化、テスト、コマンドをコミットすることを含むが、必ずしもこれに限定されない、他の制御信号を提供できる。コンピュータデバイス120は、後述するように、これらの命令に応答して特定の動作を実行するように構成されることができる。コンピュータデバイス120は、本明細書に記載された、コンピュータプログラム及びコンピュータプログラムのサポートパッチを操作可能な、いかなるハードウェア及びコンピューティング命令(例えば、ソフトウェア)を含むことができる。例えば、コンピュータデバイスは、パーソナルコンピュータ、ワークステーション、電子手帳、又は、CPUを有するあらゆる機器、メモリ、入出力機器、少なくとも1つの固定的なディスク、及び、機器によって実施され得る少なくとも1つのコンピュータプログラムを含んでよいが、必ずしもこれに限定ない。本明細書に記載されている原理が、既存の又は開発されるべきである、本明細書に開示された方法及び原理を利用している、これら及び他のコンピュータシステムに適用されることが予想される。同様にして、下記の実施例の多くは、単一の基本ファイルシステム及び構成を有するコンピュータデバイスに関連するが、下記に示した、概念、原理及び実施例は、幾つか又は多数のアクセス可能なファイルシステム及び/又は構成にわたって、パッチング機能を提供するために拡張されることもできる。ある実施形態では、コンピュータシステム100は、あらゆるコンピュータハードウェア及び/又は命令(例えば、ソフトウェアプログラム)、又は、本明細書に記載されたプロセスを実行するために構成された、ソフトウェア及びハードウェアの組み合わせを含むことができる。具体的には、システム100は、多くの周知のコンピュータデバイスのいずれかを含むことができ、また、マイクロソフトウィンドウズ(登録商標)、UNIX(登録商標)、Macintosh(登録商標)、及びLinux(登録商標)オペレーションシステムの、周知のバージョン及び/又はバリエーションを含み、必ずしもこれらに限定されない、多くの周知のオペレーションシステムの何れかを実装できることは理解されたい。
従って、本願明細書に記載のプロセスは、コンピュータ可読の媒体に記録され、且つ、1つ又は複数のコンピュータデバイスにより実行可能な命令(例えば、1つ又は複数のコンピュータプログラム製品)として、少なくとも部分的には実行されても良い。一般に、プロセッサ(例えば、マイクロプロセッサ)は、例えば、メモリ、コンピュータ可読媒体その他から、命令を受信し、それらを実行する。従って、本明細書に記載された1つ又は複数のプロセスを含む、1つ又は複数のプロセスを実行する。この様な命令は、多様な周知のコンピュータ可読媒体を用いて、格納及び伝達されることができる。
コンピュータ可読媒体(プロセッサ可読媒体とも称される)は、データ(例えば、命令)の提供に寄与するあらゆる媒体を含み、コンピュータ(例えば、コンピュータのプロセッサ)による読み込みが可能である。その様な媒体は、不揮発性媒体、揮発性媒体、伝達媒体などを含む様々な形をとり得るが、必ずしもこれらに限定されるものではない。不揮発性媒体は、例えば、光学又は磁気ディスク、及び、他の持続的なメモリを含むことができる。揮発性の媒体は、例えば、ダイナミック・ランダム・アクセス・メモリ(「DRAM」)を含むことができ、それは概してメインメモリを構成する。伝達メディアは、例えば、同軸ケーブル、銅の導線及び光ファイバーを含むことができ、コンピュータのプロセッサに連結するシステムバスから成る導線を含む。伝達メディアは、音波、光波及び電磁放射(例えば無線周波数(「RF」)及び赤外線(「IR」)データ通信の間、発生する波)を含むか又は伝達することができる。一般的なコンピュータ可読媒体の形式は、例えば、フロッピー(登録商標)ディスク、フレキシブル・ディスク、ハードディスク、磁気テープ、他のあらゆる磁気媒体、CD-ROM、DVD、他のあらゆる光媒体も、パンチカード、紙テープ、その他の穴のパターンを有するあらゆる媒体、RAM、PROM、EPROM、FLASH-EEPROM、他のあらゆるメモリチップ又はカートリッジ、又は、コンピュータが読み込み可能な他のあらゆる媒体を含む。
典型的なコンピュータシステム100を、図1に示す。図1に示した典型的な構成要素は、制限を意図したものではない。実際、付加的もしくは代替的な構成要素、実施態様又はコンピュータシステムは、本明細書に記載の原理及び方法を実行するために用いてもよい。
図1に示すシステム100において、パッチ制御サブシステム110のユーザは、仮想インストール、有効化、テスト、無効化、及び/又は1つ又は複数のコンピュータデバイス120にパッチをコミットすることを可能にすることを含む、パッチング操作における実質的な制御を備えることができる。従来のパッチング技術と比較すると、システム100は、パッチ制御サブシステム110のユーザに、コンピュータシステムのコンピュータプログラムをパッチングするための、大幅に改善された機能を提供できる。例えば、パッチ制御サブシステム110のユーザは、上記のように、リモートから命令し、コンピュータデバイス120が仮想インストールされ有効化されたパッチを無効化するか、仮想インストールされたパッチをコミットすることを促す。
図2A〜Gは、典型的なパッチシステム200が、コンピュータデバイス120のうちの1つの環境のようなコンピュータデバイス環境において実行され得る典型的なパッチシステム200を示す。図2A〜Gは、典型的なパッチングプロセスのさまざまなステージにおける、パッチシステム200を示す。
図2Aに示すように、典型的なコンピュータデバイス環境は、アプリケーション220(例えば、ソフトウェアアプリケーション)が動作でき、ファイルシステムにおいてファイルがアクセスできるような、プラットフォームを形成する基本オペレーティングシステム(「基本OS」)210を含むことができる。ある実施形態では、基本OS210は、システム・ソフトを操作しているマイクロソフトウィンドウズ(登録商標)を備えている。基本OS210は、読み込み/書き込み操作のためのアプリケーション220の、世界的に入手可能な基本構成設定(例えば、レジストリ設定)及びファイルを含んでいる。基本OS210の構成設定及びファイルは、基本ファイルシステム及び構成ライブラリ230に含まれても良く、また、オペレーティングファイルシステム、レジストリのような構成設定、及び、他のオペレーティングシステム機能を含む基本OS210の機能を実行するために使用する基本ファイルシステム及び構成ライブラリと称される。基本ファイル及び基本OS210の構成設定を含む、基本ファイルシステム及び構成ライブラリ230は、コンピュータデバイス120の特定の記憶域に格納され得る。
コンピュータプログラムパッチが、従来のパッチング技術を用いて、図2Aのコンピュータ環境にインストールされた場合、メモリに格納された、ファイル及び/又は基本OS210の構成設定は、パッチコンテンツによって置換されるであろう。このことは、特に、コンピュータシステムにおいて、ファイル又は構成設定が上書きされた場合、又は、基本ファイルのスナップショット及び構成設定が、パッチのインストール前の直近に記録されていなかった場合に、パッチのアンインストールを極めて難しいものとしている。
パッチシステム200は、パッチ階層化サブシステム240を含み、それは、コンピュータデバイス120で動作するように、インストール及び構成されることができる。パッチ階層化サブシステム240は、従来のパッチング技術と比較して、改良されたパッチング動作をもたらす。パッチ階層化サブシステム240は、パッチの受信、仮想インストール、有効化、無効化、テスト、及び/又はコミットを含む、本明細書に記載したようなパッチング操作を実行するために構成されることができる。従って、インストールされたパッチ階層化サブシステム240を用いて、コンピュータデバイス120は、アプリケーション220及び/又は基本OS210を含む、コンピュータデバイス120に格納されているパッチコンピュータプログラムのために構成される。パッチ階層化サブシステム240は、パッチ制御サブシステムから実行可能に受信したインストールを実行することを含む、あらゆる適切な方法によって、コンピュータデバイス120にインストールされ得る。
他の実施態様において、パッチ階層化サブシステムのサブセットは、パッチ制御サブシステム110又はコンピュータデバイス120にアクセス可能な、他のコンピュータデバイス(例えば、サーバ)のような、コンピュータデバイス120の外部から動作可能なように構成されても良い。従って、パッチ階層化サブシステム240の特定の操作は、コンピュータデバイス120へのサービス(例えば、ウェブサービス)として提供可能である。この様な構成は、コンピュータデバイス120においてコンピュータリソースが限られているような実施において有利であろう。しかし、典型的には、少なくともパッチ階層化サブシステム240のアクセス要求を遮断するように構成された部分は、コンピュータデバイス120において実行されるであろう。
パッチ階層化サブシステム240は、アプリケーション220又は他のコンピュータプログラムからのアクセス要求(例えば、ファイルシステム及びレジストリアクセス要求)を遮断し、且つ、所定のマッピングデータに基づいてアクセス要求をどこに導くかを決定するために、構成されることができる。従って、パッチ階層化サブシステム240は、基本OS210のコンテンツに対するアクセス要求を、メモリにおいて分離し孤立した記憶域に格納されている、仮想インストールされ、有効化されたパッチに、選択的にリダイレクトできる。パッチの仮想インストールアプリケーション220及びコンピュータ210のオペレーティングシステムがリダイレクションを知らないように、パッチの仮想インストールによってリダイレクションが実行されることができる。
パッチ階層化サブシステム240は、基本ファイルシステム及び構成ライブラリ230のコンテンツ(例えば、基本OS210のファイル及び構成設定)に導かれるアクセス要求を遮断し、且つ、所定のマッピングデータに基づいてアクセス要求をどこに導くかを決定することを可能にする、あらゆる方法において実施できる。ある実施形態では、パッチ階層化サブシステム240は、基本ファイルシステム及び構成230と、及び/又は、基本OS210と関連している。1例として、少なくとも、パッチ階層化サブシステム240の一部は、オペレーティングシステムのカーネルレベルで1つ又は複数のドライバ(例えば、フィルタドライバ)として実装されてもよく、また、ファイルや、基本ファイル設定及び構成ライブラリ230に格納された構成設定に対するモニタ入出力要求のために構成されても良い。これは、OSのカーネル入出力サブシステムを経たモニタ呼出によって達成できる。
ある実施形態では、アクセス要求を遮断し、リダイレクトするための機能は、上記の例えば米国特許第7,117,495号を含む、参照により本願に組み込まれた、1つ又は複数の参考文献による開示に、少なくとも部分的には基づいて実行される。
図2Aは、インストールされたパッチ階層化サブシステム240を有し、且つ仮想インストール又は有効化されたコンピュータプログラムパッチの無い状態で動作する、パッチシステム200を示す。従って、パッチ階層化サブシステム240は、概して、アクセス要求が基本ファイルシステム及び構成ライブラリ230のコンテンツに達することができるように構成される。
図2Bは、パッチ(「パッチA」)が受信されて、コンピュータ120に仮想インストールされる段階における、パッチシステム200を例示する。パッチは、ネットワーク130を介してパッチ制御サブシステムから送信されることを含み、いかなる適切なソースからも、いかなる許容可能な方法によっても、受信可能である。
ある実施形態では、パッチ階層化サブシステム240は、パッチ仮想インストールが実行可能なパッチを、受信し、実行できる。この、パッチの仮想インストールは、パッチ層250(パッチAについては、「パッチ層A250」)を構築するためのステップと、そのパッチのコンテンツ(例えば、1つ又は複数の、パッチに含まれるパッチオブジェクト)をパッチ層250に格納するステップと、そして、マッピングデータ260(パッチAについては、「マッピングデータA260」)を生成し格納するステップとを含むことができる。図2Bに示すように、幾つかの実施態様では、マッピングデータ260は、パッチ層250に格納されることができる。代替的に、マッピングデータ260は、パッチ層250の外部の他の場所に格納されることができる。
他の実施態様において、パッチ階層化サブシステム240は、パッチ制御サブシステム110からパッチ層のエクスポートされたパッチ層を示すデータを受信できる。この場合、パッチ階層化サブシステム240は、受信されたデータを利用して、パッチ層にコンテンツを仮想インストールできる。例えば、パッチ制御サブシステム110は、1つ又は複数のコンピュータデバイス120にエクスポート可能なパッチ層を構築するために実行可能なパッチを利用できる。パッチ制御サブシステム110から受信されたデータは、マッピングデータ260か、又は、パッチ階層化サブシステム240がマッピングデータ260を生成し、格納するために利用され得る情報を含むことができる。パッチ階層化サブシステム240は、パッチ層250になるメモリ域に、受信及び/又は生成されたコンテンツを格納することができる。
パッチを仮想インストールするための操作は、上記の典型的な操作を含み、上記の米国特許第7,117,495号に開示の、「キャプチャ」動作及び「レイヤ」の作成に関する示唆を含む、参照により本願に組み込まれた、1つ又は複数の参考文献の示唆に基づくか、これらを利用することができる。
パッチ層250は、例えば、1つ又は複数のパッチオブジェクト(例えば、ファイル及び構成設定)、パッチ識別情報、パッチバージョン情報(例えば、バージョンナンバー)、パッチリリース日情報、タイムスタンプ情報、及び、そのパッチによって置換されるべき、1つ又は複数の他のパッチを識別するための、置換情報を含む、パッチに関連するあらゆるコンテンツを含む。パッチ層250が、非限定的に、パッチ層250の他のパッチ層に対する優先情報を識別するために利用され得る優先情報と、パッチ層250に含まれるコンテンツの型を示すレイヤ型の情報とを含む、他の情報を含むことも可能である。例えば、レイヤ型情報は、パッチコンテンツと関連したパッチ層250を識別でき、従って、パッチ層250が、上述した2006年9月28日出願の米国特許出願第11/528,858号にて開示したように、他のタイプのレイヤとは異なって(例えば、優先的に)扱われる。
ある実施形態では、レイヤ型情報は、異なる型のパッチを区別するために用いてもよい。例えば、オペレーティングシステム・パッチは、それらに異なるレイヤ型を割り当てることによって、アプリケーション・パッチから区別できる。従って、OSパッチは認識され、ブートサイクルにおいて初期にOSパッチ層250を利用可能とすることを含む、一般的な方法でOSパッチ層250を処理され得る。別の例として、OSパッチのためにカスタマイズされた、パッチ優先化(例えば、バージョンチェック)操作は、仮想インストール及び有効化されたOSパッチ層250のグループ内における、潜在的に複雑な優先関係を扱うために採用され得る。
パッチ層250は、1つ又は複数の、基本ファイルシステム及び構成230のメモリ領域からは分離した、1つ又は複数のメモリ領域において、構築され得る。実際のパッチインストール時に起こるように、基本ファイルシステム及び構成230のメモリ領域を上書きする代わりに、パッチの仮想インストールでは、パッチのコンテンツはパッチ層250とは別のメモリ領域に格納され、基本ファイルシステム及び構成230のコンテンツは守られる。
上記のごとく、パッチ層サブシステム240及び/又はパッチ制御サブシステム110は、パッチ層250と関連するマッピングデータ260を生成して、格納するように構成されることができる。マッピングデータ260は、パッチ層250と、ファイル及び基本OS210の構成設定を含む、基本ファイルシステム及び構成230のコンテンツとの間の、1つ又は複数の関係の定義を含み得る。マッピングデータ260は、例えば、パッチ層250内を含む、パッチ階層化サブシステム240によってアクセスできる、あらゆる適切な場所にも格納されることができる。
マッピングデータ260生成の一例として、パッチAが、基本ファイルシステム及び構成230の部分であるファイルオブジェクトを置換するように設計された、特定のパッチオブジェクト(例えば、DLLファイル)を含むと仮定する。パッチAの仮想インストールの間、パッチ階層化サブシステム240は、ファイルオブジェクト及び/又はその所在(例えば、パス名)と、パッチオブジェクト及び/又はパッチ層250内におけるその所在と、そして、ファイルオブジェクトと、パッチオブジェクト、及び/又は、それらの各所在との間の関係を識別し得る。識別された情報への参照は、記録でき、且つ、マッピングデータ260の一部として含まれることができる。この様な、又は、他の適切な方法において、マッピングデータ260は、パッチ層250のコンテンツと、基本ファイルシステム及び構成230のコンテンツとの関係を決定できる。
マッピングデータ260は、アクセス要求が導かれるべき、適切なメモリ記憶領域の識別に役立つ可能性のある、あらゆる情報を含む、他の情報を含むことができる。一例には、マッピングデータ260が、多数のパッチ層250間の、又は、パッチ層250における特定のコンテンツインスタンス間の優先関係を表す優先情報を含むことができる。特定の実施例において、優先情報はパッチに関するバージョン情報を含むか、それに基づくことができる。マッピングデータ260のインスタンスは、ソートされるか、又は、それぞれの優先情報に基づいて構成されることができる。
マッピングデータ260の情報は、アクセス要求のリダイレクト、パッチ無効化、及び、パッチのコミットを含む、パッチング操作に用いられるべき情報にふさわしい、あらゆる方法で構成及びフォーマットできる。ある実施形態では、マッピングデータ260は、情報がインデックス、キーワード、又は、他の基準によって検索可能なように構成された、1つ又は複数の情報の表を含んでいる。
図2Bにおいて、パッチ(パッチA)は、パッチ層A250として仮想インストールされているが、有効化されていない。従って、パッチ階層化サブシステム240は、パッチ層250へのリダイレクトを考慮することなく、アクセス要求が基本ファイルシステム及び構成に達することを許諾する。換言すれば、パッチ階層化サブシステム240は、アクセス要求をパッチ層A250にリダイレクトしない様に構成される。
図2Cは、パッチAが仮想インストールされた段階における、パッチシステム200と、対応する有効化済パッチ層250を示す。パッチ階層化サブシステム240は、パッチ制御サブシステム110からの、「有効化コマンド」の受信に対応してパッチ層250を有効化するなど、パッチ層250を有効化するように構成されてもよい。
ある実施形態では、パッチ層250の有効化は、マッピングデータ260をパッチ階層化サブシステム240に適用することによって、パッチ層250と関連するマッピングデータ260を有効化することを含む。図2Cにおいて、マッピングデータ260のアクティベーションは、移動されたマッピングデータA又はパッチ階層化サブシステム240にインジェクトされたマッピングデータAのコピーにより表される。ある実施形態では、マッピングデータ260を、パッチ階層化サブシステム240の、OSカーネルフィルタドライバに投入することを含む。
アクティベーションされたマッピングデータ260については、パッチ階層化サブシステム240は、基本ファイルシステム及び構成230からのアクセス要求を、パッチ層250に選択的にリダイレクトするように構成される。例えば、パッチ階層化サブシステム240は、特定のファイルオブジェクトのための参照を含む要求、又は、基本ファイルシステム及び構成230のメモリ領域に対する、アプリケーション220からのアクセス要求を遮断することができる。パッチ階層化サブシステム240は、アクティベーションされたマッピングデータ260を用いて、参照が有効化されたパッチ層250と関連しているか否かを決定できる。この決定は、参照についてマッピングデータ260を検索するなどの、あらゆる適切な方法によって実施できる。一致があった場合、パッチ階層化サブシステム240は、アクセス要求をパッチ層250の対応するパッチオブジェクトにリダイレクトできる。そして、対応するパッチオブジェクトは、アクセスされ、アプリケーション220に戻り得るが、アプリケーション220は、リダイレクトが発生したことを感知しない。従って、アプリケーション220からすると、あたかも、仮想インストールされ、有効化されたパッチが、基本ファイルシステム及び構成230に、実際にインストールされたかのように見える。
多数のパッチがコンピュータプログラム、特に、オペレーティングシステムのために提供されることは、珍しいことではない。従って、パッチ階層化サブシステム240は、多数のパッチを、仮想インストール及び有効化し、且つ、パッチ間の優先順位を決めるような方法でアクセス要求のリダイレクトを計算するように、構成できる。
パッチ層250は、あらゆる方法及び情報(例えば、パッチバージョン情報)を用いて優先されることができ、その情報は、仮想インストール及び有効化された多数のパッチが、実際に機能しているか、又は、少なくとも、あたかもパッチが基本ファイルシステム及び構成230に実際にインストールされたかのように、機能して見えることを可能にする。
図2DはパッチAが仮想インストールされ、対応するパッチ層Aが有効化されており、且つ、他のパッチ「パッチB」が仮想インストールされているが、対応するパッチ層250、「パッチ層B250」が有効化されていないような段階におけるパッチシステム200を図示している。どこにアクセス要求をリダイレクトするべきかについて決定するときに、パッチ階層化サブシステム240は有効化されたパッチ層250の優先情報を考慮するように構成できる。図2Dに示された段階において、パッチ層A250が有効化された唯一のパッチ層250であるので、パッチ層A250のためのマッピングデータ260のみが考慮される。
図2Eは、パッチ階層化サブシステム240のマッピングデータA260及びマッピングデータB260のアクティベーションに代表されるように、パッチA及びパッチBが両方とも仮想インストールおよび有効化されている段階のパッチシステム200を示している。図2Eに示された段階において、パッチ層250の両方、又は、少なくとも、両方のパッチ層のためのマッピングデータは、どこにアクセス要求を導くか決定するときに、パッチ階層化サブシステムにより考慮される。特に、パッチ層250のための、優先情報又はパッチバージョン情報は、パッチ層250間の適当な優先順位を決定するために考慮されることができる。優先順位は、上記優先情報のいずれかを含む、パッチ層250のためのマッピングデータ260に含まれる情報に基づいてもよい。
図2Dに示す具体例において、パッチ層B250はパッチ層A250に対して優先する。この優先順位は、パッチ層250のためのマッピングデータ260に含まれる優先情報によって示されることができる。マッピングデータ260は、パッチ階層化サブシステム240がパッチ層250間の優先関係を識別することができるようにする、あらゆる態様で構成されることができる。
ある実施形態では、パッチ階層化サブシステムは、それがファイル又は設定のための特定参照を含んでいるアクセス要求を遮断するときに、最初に、最優先のパッチ層250の有効なマッピングデータ260で参照を検索するように構成できる。図2Eの実施例においては、マッピングデータB260である。マッピングデータB260において参照が見つかった場合、パッチ層B250へのリダイレクトが実行される。参照がマッピングデータB260で見つからない場合、パッチ階層化サブシステム240は、次に高い優先順位の、パッチ層250(パッチ層A250)に対応するマッピングデータ260である、マッピングデータA260の参照を次に検索するであろう。参照が見つかった場合、パッチ層A250に対するリダイレクトが実行される。参照がマッピングデータA260で見つからない場合、アクセス要求は、基本ファイルシステム及び構成に送られ得る。
パッチ層250の優先順位付けは、パッチシステム200が仮想インストール及び有効化された多数のパッチを操作し、且つ、パッチが実際にインストールされた際に、実行が期待される優先順位をモデルすることを可能にする。
特定のパッチは、前のパッチを置換するように設計できる。パッチ階層化サブシステム240は、仮想インストール環境における、この様な置換を認識及び実行するように構成可能できる。例えば、パッチは、置換されるべき1つ又は複数の他のパッチを区別するための情報を含むこともできる。この種の情報は、パッチ層250に関連するマッピングデータ260に捕捉され含まれ得る。パッチ階層化サブシステム240は、マッピングデータ260に含まれるこの種の情報を認識するように構成されることができる。例えば、パッチ層B250のようなパッチ層250が有効化されるときに、パッチ層サブシステム240は、対応するマッピングデータB260において、置換情報を検索できる。見つかった場合、置換情報は意図された置換を実行するために利用される。例えば、ある実施形態では、パッチ階層化サブシステム240は、パッチBによって置換されるべきパッチに関連する、有効化されたパッチ層250を無効化するために構成されても良い。例えば、マッピングデータB260は、パッチBがパッチAに置換することを示す置換情報を含むことができる。パッチ階層化サブシステム240は、パッチ層250のいずれかがパッチAに対応するか否か決定できる。この場合、パッチ層A250は、パッチAと対応すると確認され得る。従って、パッチ層B250が有効化されるときに、マッピングデータB260の置換情報に基づいて、パッチ階層化サブシステム240がパッチ層A250を自動的に無効化できる。
上記では、仮想パッチが有効化されるという観点から、置換について述べたが、代替的又は付加的には、パッチ階層化サブシステム240は、仮想パッチが基本ファイルシステム及び構成230にコミットされる際に、置換操作を実行するように構成されても良い。従って、上記の場合には、パッチ層B250がコミットされるときに、パッチ階層化サブシステム240はマッピングデータB260の置換情報に基づいてパッチ層A250を自動的に無効化できる。仮想インストールしたパッチを基本ファイルシステム及び構成230にコミットすることについては、更に以下で説明する。
当然、パッチ階層化サブシステム240は、置換情報に基づいて他の動作を実行するように構成できる。上記の例では、例えば、パッチ階層化サブシステム240は、置換が検出されたことを、コンピュータデバイス120又はパッチ制御サブシステム110のユーザに知らせ、通知メッセージを提供するように構成され、置換に基づく動作を承認又は否認する機会をユーザに提供できる。例えば、ユーザは、パッチ層A250の無効化を承認するように求められることがある。
上記のような、所望のパッチ置換は、仮想パッチ環境において行うことができる。このことは、少なくとも、所与の時間において、仮想インストール及び有効化されるパッチ層の数を最小化し、且つ、冗長又は不要な操作を回避することによって、処理リソースの節約を支援できる。
パッチ層サブシステム240が処理リソースを節約できる他の方法は、多数のパッチ層250を複合パッチ層に結合することである。益々多くのパッチ層250が、コンピュータデバイス120において、仮想インストール及び有効化されると、複数の層250間の優先順位付けの経過を追い続け、且つ、膨大なアクセス要求のリダイレクトをし続けることは、複雑であり、且つ、かなりのドレインを処理リソースに生成し得る。多数のパッチ層250を複合パッチ層に結合することは、この課題を軽減するのを支援できる。多数のパッチ層250が優先される実施例において、このように結合することは、「平坦化」と称してもよいであろう。
図2Fは、パッチ層A及びB250が複合パッチ層270を形成するように結合された段階における、パッチシステム200を示す。マッピングデータA260及びマッピングデータB260もまた、複合パッチ層270と関連する複合マッピングデータ275を形成するために結合された。複合マッピングデータ275は、複合パッチ層270が形成されることに従って、及び/又は、パッチ層250のそれぞれについてのマッピングデータ260のコンテンツに基づいて生成され得る。
図2Fにおいて、複合パッチ層270は、複合マッピングデータ275を作成して、パッチ階層化サブシステム240に適用することによって、有効化されてきた。そして、パッチ層A及びB250のそれぞれは、無効化され、コンピュータ120から削除されてきた。しかし、パッチ層A及びB250は、無効化され、コンピュータデバイス120に仮想インストールされたまま維持されても良い。こうすることの1つの理由は、パッチ層270又は複合マッピングデータ275が適切に機能しないときに、パッチ層A及びB250を用いることへ容易に戻る能力を維持することである。
ある実施形態では、パッチ層250を結合する操作は、パッチ層が生成される際に、冗長及び/又は期限切れのパッチコンテンツを識別し、削除することを含むことができる。この様なパッチコンテンツは、パッチ層250のそれぞれのためのマッピングデータ260に基づいて識別されることができる。例えば、基本ファイルシステム及び構成230の特定の参照のために、パッチ層250のそれぞれのためのマッピングデータ260が検索できる。単一の適合のみが見つかった場合、対応するパッチ層250の関連するコンテンツは複合パッチ層270に含まれてもよい。1つ以上の参照のインスタンスがマッピングデータ260で見つかった場合、マッピングデータ260の優先情報が最優先のパッチコンテンツを決定するためにチェックされ、結果として、最優先のパッチコンテンツは複合パッチ層270に含まれるであろう。
パッチが、コンピュータデバイス120のパッチ層250として、仮想インストール及び有効化されると、仮想パッチは適切に操作するかテストされる。テストは、仮想インストール及び有効化されたパッチが、コンピュータデバイス120又はコンピュータデバイス120で動作するように構成されたコンピュータプログラムに、問題を引き起こしたか否かを識別するために役立つ、データ又は他の成果を提供できる、あらゆる操作を含むことができる。テストは、さまざまな形式をとることができる。ある実施形態では、コンピュータデバイス120は、一定時間に標準又は一般的な操作を実行するか又は所定の操作のリストを実行することが許容できる。テスト動作の実行中に、動作及び/又はエラーと関連するデータは、追跡及び報告されることができる。追跡されたデータは、有効化された仮想パッチが適切に機能しているか否の決定を支援するために用いてもよい。ある実施例において、パッチ制御サブシステム110は、コンピュータデバイス120上のテスト動作を初期化及び制御するため、及び、コンピュータデバイス120からテストデータを受信するために構成できる。従って、仮想インストール及び有効化されたパッチは、遠隔地からテストすることが可能であり、管理者はネットワーク130を介してパッチのテストを実行できる。
パッチ層サブシステム240は、有効化されたパッチ層250を無効化にするように構成されることができる。有効化されたパッチを簡便に無効化にする能力は、従来のパッチング技術に勝る重要な利点である。例えば、有効化されたパッチのテストが、パッチが適切に機能していないか又は問題を起こしたことを示した場合、貴重なリソースをトラブルシュートに費やすか、又は、問題が見つかった後に実際にインストールしたパッチのアンインストールを試みることに代わって、パッチは簡便に無効化できる。例えば、図2Cに示す、仮想インストール及び有効化されたパッチ層A250は、パッチ階層化サブシステム240に対するマッピングデータA260の適用を逆行することで無効化される。反転は、いかなる適切な方法でも実行できる。ある実施形態では、パッチ階層化サブシステム240からマッピングデータA260を取り去ることを含み、これにより、パッチ階層化サブシステム240は、マッピングデータA260の適用以前の状態に戻る。図2Bは、パッチ層A250が無効化された段階における、パッチシステム200を示す。マッピングデータA260は、パッチ層A250と関連し、マッピングデータ260をパッチ階層化サブシステム240から取り去る、マッピングデータA260の識別に役立つ、1つ又は複数の識別子を含むことができる。
簡便にパッチ層250を無効化する能力は、いくつかの利点をもたらし、それは、仮想パッチインストールからの容易な修復、仮想パッチを有効化するための制御、簡便且つ追加的な仮想パッチの自動置換、従来技術に比較して安価なパッチのテスト、パッチを実行する際の低減されたリスクなどを含むが、これらに限定されるものではない。
パッチ階層化サブシステム240は、仮想パッチを基本ファイルシステム及び構成230にコミット(すなわち、実際にインストール)するように構成できる。ある実施形態では、仮想パッチのコミットは、パッチ層250及び/又はパッチに対応するパッチ層250のマッピングデータ260を用いて実施できる。例えば、パッチ層250と関連するマッピングデータ260が、パッチ階層化サブシステム240によって用いられ、パッチコンテンツ及び、基本ファイルシステム及び構成230の適切な所在を識別及び位置決めする。パッチコンテンツは、基本ファイルシステム及び構成230に実際にパッチがインストールされるように記述されている。実際のインストールが完了した際に、パッチは「コミットされた」と言われ、仮想インストールされたパッチのためのパッチ層250は無効化され得る。無効化されたパッチ層250は、コンピュータデバイス120から任意に削除できる。仮想パッチをコミットするための動作は、パッチ制御サブシステム110によって制御(例えば、初期化)できる。
従って、テスト及び/又は通常操作によって、仮想インストールされたパッチが正確に機能するか又は少なくとも許容可能なレベルであるかが決定される場合、仮想パッチは基本ファイルシステム及び構成に、簡便にコミット(即ち、実際にインストール)され得る。図2Gは、パッチ層A250に関連するパッチが、基本ファイルシステム及び構成230にコミットされている段階における、パッチシステム200を示し、このとき、基本ファイルシステム及び構成230は、パッチ済みの基本ファイルシステム及び構成280に変換されている。更に、図2Gは、パッチ層A250が、無効化され、コンピュータデバイス120から削除されたことを示す。
仮想パッチは、個別又はバッチにおいてコミットされ得る。バッチ処理は、コンピュータデバイス120において、全てのそれまでの間に有効化されたパッチのような、仮想パッチの一群をコミットするために用いることができる。バッチに含まれる仮想パッチがコミットされる順番は、それらのマッピングデータに含まれる優先情報に基づいて決定され得る。あるいは、ユーザが、多数のパッチをコミットする順番を決定することもできる。
パッチ層250を簡便にコミットする能力は、少なくともテスト済みの仮想パッチが実際のインストールに用いられることでもたらされる、パッチを実際にインストールする際のリスクの低減、承認された仮想パッチをコミットすることにより、仮想インストール及び有効化されるパッチ数を許容可能なレベルに維持する能力、仮想パッチ環境において新規なパッチをインストールする余裕を生み出す能力、仮想パッチ技術によってはじめにパッチをテストして、パッチの製作者によって意図されたように基本ファイルシステム及び構成230をパッチする能力、等の利点を含むが、これらに限定されるものではない。
システム100は、1つ又は複数の、管理又はコンピュータプログラムにパッチを当てる事を制御するためのツールを備えることができる。例えば、図3は、パッチシステム200に加えてパッチ・マネージャ310及びマネージャAPI320を含む、典型的なパッチシステム300を示す。マネージャAPI320は、パッチ・マネージャ310がパッチ階層化サブシステム240と通信することを可能にする。従って、パッチ・マネージャ310は、パッチ階層化サブシステム240の設定及び動作を管理するために用いることができる。例えば、ユーザは、パッチ・マネージャ310によって、パッチ階層化サブシステム240に特定に操作を実行するか又は設定を修正するように指示することができ、そして修正は、パッチ階層化サブシステム240のマッピングデータ260を修正することを含む。バックアップとして、変更前のマッピングデータ260が、対応するパッチ層250のような、他の記憶域に維持されることもできる。パッチ・マネージャ310は、コンピュータデバイス120、パッチ制御サブシステム110又はパッチ階層化サブシステム240と通信可能なあらゆる外部装置でも実行できる。
典型的な方法
図4は、コンピュータプログラムにパッチを当てる典型的な方法を示す。図4は、1つの実施例に従う、典型的なステップを示し、他の実施例においては、図4に示すステップの何れかを、省略、追加、並べ替え、及び/又は修正できる。
ステップ410において、パッチが、仮想インストールされる。ステップ410は、パッチ層250を構成し、パッチコンテンツをパッチ層250に格納し、及び、マッピングデータ260を生成及び格納する、パッチ階層化サブシステム240を含む、上記の方法のうち何れかにおいて実施可能である。マッピングデータ260は、パッチ層250のコンテンツと、コンピュータデバイス120の基本ファイルシステム及び構成ライブラリに格納されている、基本ファイル及び構成設定のコンテンツとの関係を示す。
ステップ420では、仮想インストールされたパッチが有効化される。ステップ420は、例えば、パッチ層250と関連するマッピングデータ260をパッチ階層化サブシステム240に適用することを含む上記の方法のいずれかにおいて実行され得る。
ステップ430では、有効化されたパッチがテストされる。ステップ430は、コンピュータデバイス120の通常操作を実行し、及び/又は、コンピュータデバイス120に、有効化されたパッチの機能性をテストするように設計された所定の動作を実行するように指示することを含む、上記の何れかの方法において実行され得る。
図4に示すように、処理は、ステップ430からステップ440又は450の何れかに進むことができる。ステップ430か440の何れに進むべきかは、ステップ430の結果又はシステム100のユーザの指示に基づいて決定できる。ステップ430からステップ440又は450への流れは、例示に過ぎない。他の実施態様において、ステップ440は、いかなる時又は順番においても実行でき、有効化されたパッチを無効化する。ステップ450はいかなる時又は順番においても実行でき、仮想インストールしたパッチをコミットする。
ステップ440において、有効化されたパッチが、無効化される。ステップ440は、上記の方法のいずれかにおいて実行されることができ、それらは、パッチ階層化サブシステム240にマッピングデータ260を適用することを逆行させることを含む。
ステップ450では、仮想インストールされたパッチがコミットされる。ステップ450は、仮想インストールされたパッチを実際にインストールされたパッチに変換するためにマッピングデータを利用することを含む、上記の方法のいずれかにおいて実行できる。
図5は、リモートのデバイス又は場所からコンピュータプログラムにパッチをあてることをリモート制御する典型的な方法を示す。図5は、一つの実施例に従う、典型的なステップを示すものであり、他の実施態様では、図5に示したステップの何れかを省略、追加、並べ替え、及び/又は修正できる。
ステップ510では、パッチは、コンピュータデバイス120に配布される。ステップ510は、パッチ(たとえば、実行可能なパッチ又はパッチ層)を示すデータを、ネットワーク130を介してコンピュータデバイス120に配布している、パッチ制御サブシステム110を含む、上記の方法のいずれかにおいて実行できる。
ステップ520では、有効化コマンドが伝達される。ステップ520は、ネットワーク130を介してコンピュータデバイス120に有効化コマンドを伝達するパッチ制御サブシステムを含む、上記方法の何れかにおいて実行できる。コンピュータデバイス120のパッチ階層化サブシステム240は、ステップ510で配布されたパッチに対応するパッチ層250を有効化することによって有効化コマンドを認識又は応答するように構成できる。
ステップ530では、1つ又は複数のコマンドが伝達され、テストデータが集められる。ステップ530は、ネットワーク130を介して、テストコマンドをコンピュータデバイス120に送信し、テストデータをコンピュータデバイス120から受信する、パッチ制御サブシステム110を含む、上記の方法の何れかにおいて実行できる。コンピュータデバイス120は、テストコマンドを認識して応答するように構成され、有効化されたパッチの動作をテストする。
図5に示すように、処理はステップ530から、ステップ540又は550の何れかに進むことができる。ステップ530又は540の何れに進むかは、ステップ530の結果又はシステム100のユーザの指示に基づいて決定できる。ステップ530からステップ540又は550への流れは、例示に過ぎない。他の実施態様において、ステップ540は、無効化コマンドを送信するためにいかなる時間及び順番で実行されてもよく、ステップ550はコミットコマンドを送信するためにいかなる時間及び順番で実行されても良い。
ステップ540では、無効化コマンドが送信される。ステップ540は、ネットワーク130を介して、無効化コマンドをコンピュータデバイス120に送信しているパッチ制御サブシステム110を含む、あらゆる上記方法において実行される。コンピュータデバイス120のパッチ階層化サブシステム240は、無効化コマンドを認識し応答するように構成され、有効化されたパッチに対応するパッチ層250を無効化できる。
ステップ550では、コミットコマンドが、送信される。ステップ550は、ネットワーク130を介してコミットコマンドをコンピュータデバイス120に送信している、パッチ制御サブシステム110を含む、上記のいかなる方法において実行できる。コンピュータデバイス120のパッチ階層化サブシステム240は、コミットコマンドを認識して応答するように構成されており、仮想インストールされた層250をコミットできる。
これまで述べてきたことは、いくつかの実施例の詳細な説明に過ぎない。特定の実施例及び応用例を、図示及び記載してきたが、正確な構成及び本明細書に記載した構成要素は、例示目的のみにおいて開示され、いかなる意味においても限定的なものではない。本開示の利点をもって、当業者が、開示された原理の精神及び範囲を逸脱することなく、さまざまな修正、変更及びバリエーションを理解することは明らかである。例えば、特定の実施例が、ソフトウェアによってプログラムされたコンピュータを用いるか、又は、回路として実施されることや、更に、多目的コンピュータ又は専門的な装置によって、その様な実施例を実施できることを、当業者は理解するであろう。このように、法律によって許容される最大範囲において、請求項及びその均等物の、最も広い許容可能な解釈によって本発明の範囲は決定されるべきであり、前述の詳細な説明により制限及び限定されるべきではない。
コンピュータプログラムのパッチングの模範的なシステムを示す。 コンピュータデバイス環境におけるパッチ階層化サブシステムを有する模範的なパッチシステムについて示す。 仮想インストールされたパッチ層を有する、図2Aのコンピュータデバイス環境を示す。 実質的にインストールされ、有効化されたパッチ層を有する、図2Bのコンピュータデバイス環境を示す。 仮想インストールされた他のパッチ層を有する、図2Cのコンピュータデバイス環境を示す。 仮想インストールされ、有効化されたその他のパッチ層を有する、図2Dのコンピュータデバイス環境を示す。 複合パッチ層に結合されたパッチ層を有する、図2Eのコンピュータデバイス環境を示す。 実質的に基本ファイルシステム及び構成にインストールされた(「コミットされた」)パッチを有する、図2Bのコンピュータデバイス環境を示す。 パッチ層管理アプリケーションを更に含む、図2Aのコンピュータデバイス環境を示す。 コンピュータプログラムのパッチングの典型的な方法を示す。 コンピュータプログラムのパッチングを制御する典型的な方法を示す。

Claims (20)

  1. コンピュータプログラムパッチを、基本ファイルシステム及び構成を有するコンピュータ、コンピュータプログラム、並びに、パッチ階層化サブシステムに仮想インストールするステップであって、
    パッチ層にパッチコンテンツを格納し、
    パッチ層の前記コンテンツと、前記基本ファイルシステム及び構成のコンテンツとの間の、少なくとも一つの関係を定義しているマッピングデータを生成、格納すること
    を含む、ステップと、
    前記マッピングデータを前記パッチ階層化サブシステムに適用して、前記パッチ階層化サブシステムが、基本ファイルシステム及び構成から前記パッチ層へのアクセス要求を、選択的にリダイレクトするように構成されることを含む、前記パッチ層を有効化するステップと
    を含む方法。
  2. 前記マッピングデータを前記パッチ階層化サブシステムへ適用するステップを逆行させて、前記パッチ階層化サブシステムが、前記アクセス要求を前記パッチ層にリダイレクトしないように構成されることを含む
    請求項1に記載の方法。
  3. 前記マッピングデータに基づいて、少なくとも前記パッチ層における前記コンテンツのサブセットを、前記基本ファイルシステム及び構成に実際にインストールすることを実行することを含んで、前記仮想インストールされたパッチを、前記基本ファイルシステム及び構成にコミットする
    請求項1に記載の方法
  4. 前記コンピュータデバイスに他のコンピュータプログラムパッチを仮想インストールするステップであって、
    パッチ層にパッチコンテンツを格納することと、
    パッチ層のパッチコンテンツと、基本ファイルシステム及び構成の内容との間の、少なくとも一つの関係を定義している他のマッピングデータを生成、格納することと、
    前記パッチ層及び前記他のパッチ層を相互に優先することと、
    を含むステップと、
    前記マッピングデータを前記パッチ階層化サブシステムに適用して、前記パッチ階層化サブシステムが、基本ファイルシステム及び構成から前記パッチ層へのアクセス要求を、選択的にリダイレクトするように構成されることを含む、前記パッチ層を有効化するステップと
    を更に含む、請求項1に記載の方法。
  5. 前記パッチ層と前記他のパッチ層を、複合パッチ層に結合することと、
    前記マッピングデータ及び前記他のマッピングデータを結合して、前記複合パッチ層に対応する複合マッピングデータを形成することと
    を更に含む、請求項4に記載の方法。
  6. コンピュータプログラム並びに基本ファイルシステム及び構成を有するコンピュータデバイスと、
    パッチ階層化サブシステムであって、
    前記コンピュータデバイスにインストールされ、且つ、前記コンピュータプログラムのためのパッチをパッチ層に仮想インストールし、
    前記基本ファイルシステム及び構成から前記パッチ層へのアクセス要求を選択的にリダイレクトするように、前記パッチ階層化サブシステムが構成されるように、前記パッチ層を有効化し、
    前記アクセス要求を前記パッチ層へリダイレクトしないよう、前記パッチ階層化サブシステムが構成されるように、前記パッチ層を無効化する、
    ように構成されている、パッチ階層化サブシステムと
    を備えることを特徴とするシステム。
  7. 請求項6に記載のシステムであって、前記パッチ階層化サブシステムが、
    前記パッチのコンテンツを、基本ファイルシステム及び構成から分離されている、前記パッチ層に格納し、
    前記パッチ層のコンテンツと前記基本ファイルシステム及び構成のコンテンツとの間の少なくとも1つの関係を定義する、マッピングデータを生成及び格納する、
    ことによって、前記パッチ階層化サブシステムが、前記パッチを仮想インストールするように構成されていることを特徴とするシステム。
  8. 請求項7に記載のシステムであって、前記パッチ階層化サブシステムが、前記マッピングデータをアクティベーションしてアクセス要求を遮断することによって、前記パッチ階層化サブシステムが前記パッチ層を有効化し、且つ、マッピングデータのアクティベーションを逆行させるで前記パッチ層を無効化するように構成されていることを特徴とするシステム。
  9. 請求項7に記載のシステムであって、前記パッチ階層化サブシステムが、前記マッピングデータ及び前記パッチ層の前記コンテンツを用いて、前記パッチを前記基本ファイルシステム及び構成にコミットするように構成されていることを特徴とするシステム。
  10. 請求項6に記載のシステムであって、前記パッチ階層化サブシステムが、更に、
    前記コンピュータプログラムのための他のパッチを他のパッチ層に仮想インストールし、
    前記パッチ層及び前記他のパッチ層を相互の関連において優先順位をつけ、
    前記基本ファイルシステム及び構成から前記パッチ層へのアクセス要求を選択的にリダイレクトするように、前記パッチ階層化サブシステムが構成されるように、前記パッチ層を有効化して、
    前記アクセス要求を前記パッチ層へリダイレクトしないように、前記パッチ階層化サブシステムが構成されるように、前記パッチ層を無効化することを特徴とするシステム。
  11. 請求項10に記載のシステムであって、前記パッチ階層化サブシステムが、少なくとも1つのパッチバージョン情報、パッチリリース日情報、パッチタイムスタンプ情報に基づいて、前記パッチ層と前記他のパッチ層の優先順位をつけるように構成されているシステム。
  12. 請求項10に記載のシステムであって、前記パッチ階層化サブシステムが、更に、前記パッチ層と前記他のパッチ層を複合パッチ層に結合するように構成されているシステム。
  13. 請求項10に記載のシステムであって、前記他のパッチは前記パッチを置換することを目的としており、前記パッチ階層化サブシステムが、前記他のパッチ層に関連する置換情報を認識し、且つ、前記他のパッチ層が有効化された時に、自動的に前記パッチ層を無効化するように構成されていることを特徴とするシステム。
  14. 請求項6に記載のシステムであって、ネットワークを介して、前記コンピュータデバイスに通信可能に接続されているパッチ制御サブシステムを更に備え、前記パッチ制御サブシステムは、
    前記パッチを前記コンピュータデバイスに配布し、
    前記パッチ階層化サブシステムに前記パッチ層の有効化を指示するように構成されている有効化コマンドを前記ピュータデバイスに送信し、
    前記パッチ階層化サブシステムに前記パッチ層の無効化を指示するように構成されている無効化コマンドを前記コンピュータデバイスに送信する、
    ように構成されているシステム。
  15. 請求項14に記載のシステムであって、前記パッチ制御サブシステムがテストコマンドを前記コンピュータデバイスに送信するように構成されており、前記テストコマンドは前記コンピュータデバイスが、有効化された前記パッチ層をテストするための、少なくとも1つのテスト操作をするよう指示するために構成されていることを特徴とするシステム。
  16. 請求項14に記載のシステムであって、前記パッチ制御サブシステムが、コミットコマンドを前記コンピュータデバイスに送信するように構成されており、前記コミットコマンドは、前記パッチ階層化サブシステムが前記パッチ層を前記基本ファイルシステム及び構成にコミットするよう指示するように構成されていることを特徴とするシステム。
  17. コンピュータ可読媒体に記録されているコンピュータプログラム製品であって、コンピュータ可読媒体に記録され、且つ、
    前記コンピュータプログラムパッチに関連するパッチコンテンツをパッチ層に格納すること、
    前記パッチ層における前記パッチコンテンツと、コンピュータデバイスの基本ファイルシステム及び構成のコンテンツとの間の少なくとも1つの関係を定義しているマッピングデータを生成及び格納すること、
    を含み、コンピュータプログラムパッチをコンピュータデバイスに仮想インストールする機能と、
    前記マッピングデータをアクティベーションして、前記基本ファイルシステム及び構成から前記パッチ層へのアクセス要求を選択的にリダイレクトするために用いることを含み、前記パッチ層を有効化する機能とを
    実行するためのコンピュータデバイスによって実行可能なコンピュータインストラクションを含んでいる、コンピュータプログラム製品。
  18. 請求項17に記載のコンピュータプログラム製品であって、
    アクセス要求を遮断する機能と、
    前記マッピングデータから、要求されたコンテンツが前記パッチ層に有るか否かを決定する機能と、
    前記要求されたコンテンツが前記パッチ層にあると決定された場合に、前記マッピングデータに基づいて、前記アクセス要求を前記パッチ層にリダイレクトする機能と、
    前記要求されたコンテンツが前記パッチ層に無い場合に、前記アクセス要求が前記基本ファイルシステム及び構成に進むことを許容する機能と
    を実行するための、コンピュータデバイスによって実行可能なコンピュータインストラクションを含んでいるコンピュータプログラム製品。
  19. 請求項17に記載のコンピュータプログラム製品であって、前記マッピングデータをアクティベーションするステップを逆行させるなどして、前記パッチ層を無効化する機能を実行する、コンピュータデバイスにより実行可能なコンピュータインストラクションを更に含むことを特徴とするコンピュータプログラム製品。
  20. 請求項17に記載のコンピュータプログラム製品であって、前記マッピングデータに基づいて、前記仮想インストールされたコンピュータプログラムパッチを前記基本ファイルシステム及び構成にコミットする機能を実行する、コンピュータデバイスにより実行可能なコンピュータインストラクションを更に含むことを特徴とする、コンピュータプログラム製品。
JP2008236640A 2007-09-17 2008-09-16 コンピュータプログラムにパッチを当てるシステム及び方法 Expired - Fee Related JP5363776B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/901,327 US8291407B2 (en) 2002-06-12 2007-09-17 Systems and methods for patching computer programs
US11/901,327 2007-09-17

Publications (2)

Publication Number Publication Date
JP2009110505A true JP2009110505A (ja) 2009-05-21
JP5363776B2 JP5363776B2 (ja) 2013-12-11

Family

ID=40259170

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008236640A Expired - Fee Related JP5363776B2 (ja) 2007-09-17 2008-09-16 コンピュータプログラムにパッチを当てるシステム及び方法

Country Status (4)

Country Link
US (1) US8291407B2 (ja)
EP (1) EP2040162B1 (ja)
JP (1) JP5363776B2 (ja)
CN (1) CN101393525B (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011111249A1 (ja) * 2010-03-10 2011-09-15 株式会社日立製作所 仮想計算機システム及び仮想計算機の制御方法
KR20180137554A (ko) * 2016-04-27 2018-12-27 후아웨이 테크놀러지 컴퍼니 리미티드 패치 업그레이드 기반 파일 처리 방법 및 디바이스, 단말기, 및 저장 매체

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8261254B2 (en) 2008-03-31 2012-09-04 Symantec Corporation Dynamic insertion and removal of virtual software sub-layers
US9100246B1 (en) * 2008-06-19 2015-08-04 Symantec Corporation Distributed application virtualization
JP5644000B2 (ja) * 2009-08-07 2014-12-24 パナソニックヘルスケアホールディングス株式会社 医療用装置および医療用プログラム
US8881140B1 (en) 2009-09-04 2014-11-04 Symantec Corporation Systems and methods for virtualizing software associated with external computer hardware devices
US9135283B2 (en) * 2009-10-07 2015-09-15 Amazon Technologies, Inc. Self-service configuration for data environment
US11449394B2 (en) 2010-06-04 2022-09-20 Commvault Systems, Inc. Failover systems and methods for performing backup operations, including heterogeneous indexing and load balancing of backup and indexing resources
US8504526B2 (en) 2010-06-04 2013-08-06 Commvault Systems, Inc. Failover systems and methods for performing backup operations
US9075635B1 (en) 2010-07-26 2015-07-07 Symantec Corporation Systems and methods for merging virtual layers
CN101963911B (zh) * 2010-09-29 2015-12-16 用友网络科技股份有限公司 补丁生成方法和装置
US9116725B1 (en) 2011-03-15 2015-08-25 Symantec Corporation Systems and methods for using virtualization of operating-system-level components to facilitate software testing
US9367298B1 (en) * 2012-03-28 2016-06-14 Juniper Networks, Inc. Batch configuration mode for configuring network devices
US9569193B2 (en) * 2012-09-07 2017-02-14 Oracle International Corporation System and method for patching java cloud services for use with a cloud computing environment
US9489189B2 (en) * 2013-02-21 2016-11-08 Oracle International Corporation Dynamically generate and execute a context-specific patch installation procedure on a computing system
US9483361B2 (en) 2013-05-08 2016-11-01 Commvault Systems, Inc. Information management cell with failover management capability
US9792170B2 (en) * 2013-08-30 2017-10-17 Cisco Technology, Inc. Correcting operational state and incorporating additional debugging support into an online system without disruption
US10026064B2 (en) 2013-09-13 2018-07-17 Microsoft Technology Licensing, Llc Automatically recommending updates based on stored lifecycle information
US9665359B2 (en) 2013-09-13 2017-05-30 Microsoft Technology Licensing, Llc Automatically resolving conflicts after installation of selected updates in a computer system
US9626176B2 (en) 2013-09-13 2017-04-18 Microsoft Technology Licensing, Llc Update installer with technical impact analysis
US9830142B2 (en) * 2013-09-13 2017-11-28 Microsoft Technology Licensing, Llc Automatic installation of selected updates in multiple environments
US9176727B2 (en) 2014-01-13 2015-11-03 Bank Of America Corporation Infrastructure software patch reporting and analytics
US9563518B2 (en) 2014-04-02 2017-02-07 Commvault Systems, Inc. Information management by a media agent in the absence of communications with a storage manager
US9223966B1 (en) 2014-05-04 2015-12-29 Symantec Corporation Systems and methods for replicating computing system environments
CN110110522B (zh) * 2016-05-24 2021-05-07 百度在线网络技术(北京)有限公司 内核修复方法和装置
US11022949B2 (en) * 2016-06-24 2021-06-01 Siemens Aktiengesellschaft PLC virtual patching and automated distribution of security context
US10417102B2 (en) 2016-09-30 2019-09-17 Commvault Systems, Inc. Heartbeat monitoring of virtual machines for initiating failover operations in a data storage management system, including virtual machine distribution logic
CN109858252B (zh) * 2017-11-30 2023-04-25 中标软件有限公司 自制系统的漏洞分析修复方法
US10261771B1 (en) 2017-11-30 2019-04-16 Bank Of America Corporation Environment mapping and patching synthesis
US11151273B2 (en) 2018-10-08 2021-10-19 Microsoft Technology Licensing, Llc Controlling installation of unauthorized drivers on a computer system
US11080416B2 (en) 2018-10-08 2021-08-03 Microsoft Technology Licensing, Llc Protecting selected disks on a computer system
US11200124B2 (en) 2018-12-06 2021-12-14 Commvault Systems, Inc. Assigning backup resources based on failover of partnered data storage servers in a data storage management system
US11099956B1 (en) 2020-03-26 2021-08-24 Commvault Systems, Inc. Snapshot-based disaster recovery orchestration of virtual machine failover and failback operations
US11645175B2 (en) 2021-02-12 2023-05-09 Commvault Systems, Inc. Automatic failover of a storage manager
US20230305828A1 (en) * 2022-03-24 2023-09-28 Vmware, Inc. Virtual upgrade layer-based application upgrade
CN115344434B (zh) * 2022-10-19 2023-03-24 紫光同芯微电子有限公司 用于打补丁的方法及装置、电子设备、存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001256042A (ja) * 2000-03-08 2001-09-21 Nec Corp 個別アプリケーションパッチ管理装置及び個別アプリケーションパッチ管理方法
US20030233490A1 (en) * 2002-06-12 2003-12-18 Blaser Jared Ricks Systems and methods for the creation of software packages using layered systems
JP2005327276A (ja) * 2004-05-11 2005-11-24 Microsoft Corp 効率的なパッチ当て
JP2006107500A (ja) * 2004-09-30 2006-04-20 Microsoft Corp ソフトウェアの実行中にソフトウェアを更新すること

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5155847A (en) * 1988-08-03 1992-10-13 Minicom Data Corporation Method and apparatus for updating software at remote locations
US5991753A (en) 1993-06-16 1999-11-23 Lachman Technology, Inc. Method and system for computer file management, including file migration, special handling, and associating extended attributes with files
EP1005674A4 (en) * 1997-07-15 2002-03-13 Pocket Soft Inc SYSTEM FOR DETECTING DIFFERENCES BETWEEN TWO COMPUTER FILES AND UPDATING OF COMPUTER FILES
US6195650B1 (en) * 2000-02-02 2001-02-27 Hewlett-Packard Company Method and apparatus for virtualizing file access operations and other I/O operations
AU2001294677A1 (en) * 2000-09-22 2002-04-02 Patchlink.Com Corporation Non-invasive automatic offsite patch fingerprinting and updating system and method
US6763517B2 (en) * 2001-02-12 2004-07-13 Sun Microsystems, Inc. Automated analysis of kernel and user core files including searching, ranking, and recommending patch files
US6944856B2 (en) * 2001-05-09 2005-09-13 Sun Microsystems, Inc. Method, system, program, and data structures for applying a patch to a computer system
US7028305B2 (en) 2001-05-16 2006-04-11 Softricity, Inc. Operating system abstraction and protection layer
US7512977B2 (en) * 2003-06-11 2009-03-31 Symantec Corporation Intrustion protection system utilizing layers
US8010961B1 (en) 2003-06-11 2011-08-30 Symantec Corporation Data layer prioritization in an application layered system
US7877413B1 (en) 2002-06-12 2011-01-25 Symantec Corporation Path variablizing layered system
US7461096B1 (en) * 2003-06-11 2008-12-02 Symantec Corporation Weighted prioritizing layered computing system
US7165260B2 (en) 2002-06-12 2007-01-16 Fsl, L.L.C. Layered computing systems and methods for insecure environments
US7549164B2 (en) * 2003-06-11 2009-06-16 Symantec Corporation Intrustion protection system utilizing layers and triggers
US7496931B2 (en) * 2003-12-30 2009-02-24 Symantec Corporation Portable memory storage devices containing public context application layers
US7542988B1 (en) * 2006-01-03 2009-06-02 Symantec Corporation File type associative application layered system
US7945897B1 (en) 2002-06-12 2011-05-17 Symantec Corporation Method and system for running an application in a clean operating environment using a layered computing system
US7970789B1 (en) 2003-06-11 2011-06-28 Symantec Corporation Sublayered application layered system
US7620956B2 (en) 2003-06-11 2009-11-17 Symantec Corporation Portable memory storage devices with application layers
US7461086B1 (en) * 2006-01-03 2008-12-02 Symantec Corporation Run-time application installation application layered system
US7886291B1 (en) 2003-06-11 2011-02-08 Symantec Corporation Layer typed prioritizing application layered systems
US7269721B2 (en) * 2002-08-13 2007-09-11 Intel Corporation Method, system, and apparatus for booting with remote configuration data
US20070174429A1 (en) 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
US20110040812A1 (en) 2007-12-20 2011-02-17 Virtual Computer, Inc. Layered Virtual File System

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001256042A (ja) * 2000-03-08 2001-09-21 Nec Corp 個別アプリケーションパッチ管理装置及び個別アプリケーションパッチ管理方法
US20030233490A1 (en) * 2002-06-12 2003-12-18 Blaser Jared Ricks Systems and methods for the creation of software packages using layered systems
JP2005327276A (ja) * 2004-05-11 2005-11-24 Microsoft Corp 効率的なパッチ当て
JP2006107500A (ja) * 2004-09-30 2006-04-20 Microsoft Corp ソフトウェアの実行中にソフトウェアを更新すること

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011111249A1 (ja) * 2010-03-10 2011-09-15 株式会社日立製作所 仮想計算機システム及び仮想計算機の制御方法
JP2011186915A (ja) * 2010-03-10 2011-09-22 Hitachi Ltd 仮想計算機システム及び仮想計算機の制御方法
KR20180137554A (ko) * 2016-04-27 2018-12-27 후아웨이 테크놀러지 컴퍼니 리미티드 패치 업그레이드 기반 파일 처리 방법 및 디바이스, 단말기, 및 저장 매체
KR102204115B1 (ko) 2016-04-27 2021-01-18 후아웨이 테크놀러지 컴퍼니 리미티드 패치 업그레이드 기반 파일 처리 방법 및 디바이스, 단말기, 및 저장 매체
US10949191B2 (en) 2016-04-27 2021-03-16 Huawei Technologies Co., Ltd. Patch-upgrade-based file processing method and apparatus, terminal, and storage medium

Also Published As

Publication number Publication date
EP2040162B1 (en) 2016-11-02
CN101393525B (zh) 2013-09-11
CN101393525A (zh) 2009-03-25
JP5363776B2 (ja) 2013-12-11
US8291407B2 (en) 2012-10-16
EP2040162A1 (en) 2009-03-25
US20080295086A1 (en) 2008-11-27

Similar Documents

Publication Publication Date Title
JP5363776B2 (ja) コンピュータプログラムにパッチを当てるシステム及び方法
JP5363858B2 (ja) 仮想ソフトウェアサブレイヤの動的挿入および除去
CN106991035B (zh) 一种基于微服务架构的主机监控系统
US7565517B1 (en) Retargeting a captured image to new hardware while in a pre-boot environment
JP5911504B2 (ja) ストリーミング技術に基づくソフトウェア・イメージのアップグレード
US7966612B2 (en) Method, system and computer program for installing shared software components
EP2210183B1 (en) Managing updates to create a virtual machine facsimile
US9081639B2 (en) System and method for remotely re-imaging a computer system
US8302108B1 (en) Feature based software virtualization
US8341648B1 (en) Automatic virtualization based on user-defined criteria
US20100211944A1 (en) Information processing apparatus
US10318275B2 (en) Software update apparatus and method in virtualized environment
JP2003114801A (ja) コンピュータサービスおよびプログラマブルデバイスの管理を自動化するシステムおよび方法
US8356293B1 (en) System and method for controlling installed third party software components
JP6089064B2 (ja) ソフトウェア・コンポーネントを更新するための方法、コンピュータ・システムおよびメモリ装置
US10715594B2 (en) Systems and methods for update propagation between nodes in a distributed system
US20030069951A1 (en) Zero-click deployment of data processing systems
JP2000222178A (ja) リカバ―可能なソフトウェアインストレ―ションプロセスおよびコンピュ―タシステム用の装置
JP2008535042A (ja) オペレーティング・システムを遠隔ストレージにインストールする方法:フラッシュ・デプロイ及びインストールゾーン
US7536687B1 (en) System and method for automatic installation of embedded software packages
US7818557B2 (en) Method for re-imaging a computer system
JP5048498B2 (ja) ブート・ディスク管理のユティリティ
US20040083357A1 (en) Method, system, and program for executing a boot routine on a computer system
US20110314471A1 (en) Manufacturing Information Handling Systems
JP2011076370A (ja) デプロイシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110908

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130416

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130423

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130723

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: 20130813

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130906

R150 Certificate of patent or registration of utility model

Ref document number: 5363776

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

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

LAPS Cancellation because of no payment of annual fees