(57)【特許請求の範囲】
【請求項１】
ネットワーク内でソフトウェアを同期化するための方法であって、
ネットワーク内の管理コンピュータ上に常駐するソフトウェア修正マネージャを提供するステップであって、前記管理コンピュータが、優先ソフトウェア修正目録を含み、前記優先ソフトウェア修正目録が、少なくとも１つのソフトウェア製品の少なくとも１つの優先修正レコードを含むステップと、
前記ネットワーク内の少なくとも１つの目標コンピュータ上に常駐する更新コントローラを提供するステップであって、前記少なくとも１つの目標コンピュータが、目標ソフトウェア修正目録を含み、前記目標ソフトウェア修正目録が、前記少なくとも１つの目標コンピュータ上の少なくとも１つのソフトウェア製品の少なくとも１つの修正レコードを含むステップと、
前記目標ソフトウェア修正目録を前記優先ソフトウェア修正目録と比較するステップと、
前記比較に基づいて、前記少なくとも１つの目標コンピュータ上の少なくとも１つのソフトウェア製品のための少なくとも１つのソフトウェア製品同期化を含む修正リストを作成し、更新するステップと、
前記修正リストを前記少なくとも１つの目標コンピュータに送るステップと、
前記少なくとも１つのソフトウェア製品同期化を前記少なくとも１つの目標コンピュータに適用するステップと
前記管理コンピュータがさらに、目標ソフトウェア製品目録および優先ソフトウェア製品目録を含み、各ソフトウェア製品目録が、製品識別およびリリースを含む少なくとも１つの製品レコードを含み、各修正レコードおよび優先修正レコードがさらに、製品識別、リリースおよび修正識別を含み、前記ソフトウェア修正マネージャが前記目標ソフトウェア修正目録を前記優先ソフトウェア修正目録と比較する前記ステップが、
前記目標ソフトウェア修正目録の前記少なくとも１つの修正レコードを取り出すステップと、
前記少なくとも１つの修正レコード内の前記ソフトウェア製品およびリリースが、前記少なくとも１つの優先製品レコード内の前記ソフトウェア製品およびリリースと一致するかどうかを判定するステップと、
前記少なくとも１つの修正レコード内の前記ソフトウェア製品およびリリースが前記少なくとも１つの優先製品レコード内の前記ソフトウェア製品およびリリースと一致する場合に実行される、前記少なくとも１つの修正レコード内の前記修正識別が、前記少なくとも１つの優先修正レコード内の前記修正識別と一致するかどうかを判定するステップと
を含み、前記ソフトウェア修正マネージャが修正リストを作成し、更新する前記ステップが、
前記少なくとも１つの修正レコード内の前記修正識別が前記少なくとも１つの優先修正レコード内の前記修正識別と一致しない場合に実行される、前記少なくとも１つの修正レコードが、前記修正リスト内の修正レコードのいずれかに対応するかどうかを判定するステップと、
前記少なくとも１つの修正レコードと、エクストラとしてマークされたエクストラ表示とを含む同期化を、前記修正リストに追加するステップと
を含む方法。
【請求項２】
ネットワーク内でソフトウェアを同期化するための方法であって、
ネットワーク内の管理コンピュータ上に常駐するソフトウェア修正マネージャを提供するステップであって、前記管理コンピュータが、優先ソフトウェア修正目録を含み、前記優先ソフトウェア修正目録が、少なくとも１つのソフトウェア製品の少なくとも１つの優先修正レコードを含むステップと、
前記ネットワーク内の少なくとも１つの目標コンピュータ上に常駐する更新コントローラを提供するステップであって、前記少なくとも１つの目標コンピュータが、目標ソフトウェア修正目録を含み、前記目標ソフトウェア修正目録が、前記少なくとも１つの目標コンピュータ上の少なくとも１つのソフトウェア製品の少なくとも１つの修正レコードを含むステップと、
前記目標ソフトウェア修正目録を前記優先ソフトウェア修正目録と比較するステップと、
前記比較に基づいて、前記少なくとも１つの目標コンピュータ上の少なくとも１つのソフトウェア製品のための少なくとも１つのソフトウェア製品同期化を含む修正リストを作成し、更新するステップと、
前記修正リストを前記少なくとも１つの目標コンピュータに送るステップと、
前記少なくとも１つのソフトウェア製品同期化を前記少なくとも１つの目標コンピュータに適用するステップと
前記管理コンピュータ がさらに、目標ソフトウェア製品目録および優先ソフトウェア製品目録を含み、各ソフトウェア製品目録が、製品識別およびリリースを含む少なくとも１つの製品レコードを含み、各修正レコードおよび優先修正レコードがさらに、製品識別、リリースおよび修正識別を含み、前記ソフトウェア修正マネージャが前記目標ソフトウェア修正目録を前記優先ソフトウェア修正目録と比較する前記ステップが、
前記優先ソフトウェア修正目録の前記少なくとも１つの優先修正レコードを取り出すステップと、
前記少なくとも１つの優先修正レコード内の前記ソフトウェア製品およびリリースが、前記少なくとも１つの製品レコード内の前記ソフトウェア製品およびリリースと一致するかどうかを判定するステップと、
前記少なくとも１つの優先修正レコード内の前記ソフトウェア製品およびリリースが前記少なくとも１つの製品レコード内の前記ソフトウェア製品およびリリースと一致する場合に実行される、前記少なくとも１つの優先修正レコード内の前記修正識別が、前記少なくとも１つの修正レコード内の前記修正識別と一致するかどうかを判定するステップと
を含み、前記ソフトウェア修正マネージャが前記修正リストを作成し、更新する前記ステップが、
前記少なくとも１つの優先修正レコード内の前記修正識別が前記少なくとも１つの修正レコード内の前記修正識別と一致しない場合に実行される、前記少なくとも１つの修正レコードが、前記修正リスト内の修正レコードのいずれかに対応するかどうかを判定するステップと、
前記少なくとも１つの優先修正レコードと、必要としてマークされたエクストラ表示とを含む同期化を、前記修正リストに追加するステップと
を含む、方法。
【請求項３】
請求項１または２のいずれかに記載の方法をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項４】
ネットワーク内でソフトウェアを同期化するための装置であって、
ネットワーク内の管理コンピュータ上に常駐するソフトウェア修正マネージャを提供する手段であって、前記管理コンピュータが、優先ソフトウェア修正目録を含み、前記優先ソフトウェア修正目録が、少なくとも１つのソフトウェア製品の少なくとも１つの優先修正レコードを含む手段と、
前記ネットワーク内の少なくとも１つの目標コンピュータ上に常駐する更新コントローラを提供する手段であって、前記少なくとも１つの目標コンピュータが、目標ソフトウェア修正目録を含み、前記目標ソフトウェア修正目録が、前記少なくとも１つの目標コンピュータ上の少なくとも１つのソフトウェア製品の少なくとも１つの修正レコードを含む手段と、
前記目標ソフトウェア修正目録を前記優先ソフトウェア修正目録と比較する手段と、
前記比較に基づいて、前記少なくとも１つの目標コンピュータ上の少なくとも１つのソフトウェア製品のための少なくとも１つのソフトウェア製品同期化を含む修正リストを作成し、更新する手段と、
前記修正リストを前記少なくとも１つの目標コンピュータに送る手段と、
前記少なくとも１つのソフトウェア製品同期化を前記少なくとも１つの目標コンピュータに適用する手段と
前記管理コンピュータがさらに、目標ソフトウェア製品目録および優先ソフトウェア製品目録を含み、各ソフトウェア製品目録が、製品識別およびリリースを含む少なくとも１つの製品レコードを含み、各修正レコードおよび優先修正レコードがさらに、製品識別、リリースおよび修正識別を含み、前記ソフトウェア修正マネージャが前記目標ソフトウェア修正目録を前記優先ソフトウェア修正目録と比較する前記手段が、
前記目標ソフトウェア修正目録の前記少なくとも１つの修正レコードを取り出す手段と、
前記少なくとも１つの修正レコード内の前記ソフトウェア製品およびリリースが、前記少なくとも１つの優先製品レコード内の前記ソフトウェア製品およびリリースと一致するかどうかを判定する手段と、
前記少なくとも１つの修正レコード内の前記ソフトウェア製品およびリリースが前記少なくとも１つの優先製品レコード内の前記ソフトウェア製品およびリリースと一致する場合に実行される、前記少なくとも１つの修正レコード内の前記修正識別が、前記少なくとも１つの優先修正レコード内の前記修正識別と一致するかどうかを判定する手段と
を含み、前記ソフトウェア修正マネージャが修正リストを作成し、更新する前記手段が、
前記少なくとも１つの修正レコード内の前記修正識別が前記少なくとも１つの優先修正レコード内の前記修正識別と一致しない場合に実行される、前記少なくとも１つの修正レコードが、前記修正リスト内の修正レコードのいずれかに対応するかどうかを判定する手段と、
前記少なくとも１つの修正レコードと、エクストラとしてマークされたエクストラ表示とを含む同期化を、前記修正リストに追加する手段と
を含む装置。
【請求項５】
ネットワーク内でソフトウェアを同期化するための装置であって、
ネットワーク内の管理コンピュータ上に常駐するソフトウェア修正マネージャを提供する手段であって、前記管理コンピュータが、優先ソフトウェア修正目録を含み、前記優先ソフトウェア修正目録が、少なくとも１つのソフトウェア製品の少なくとも１つの優先修正レコードを含む手段と、
前記ネットワーク内の少なくとも１つの目標コンピュータ上に常駐する更新コントローラを提供する手段であって、前記少なくとも１つの目標コンピュータが、目標ソフトウェア修正目録を含み、前記目標ソフトウェア修正目録が、前記少なくとも１つの目標コンピュータ上の少なくとも１つのソフトウェア製品の少なくとも１つの修正レコードを含む手段と、
前記目標ソフトウェア修正目録を前記優先ソフトウェア修正目録と比較する手段と、
前記比較に基づいて、前記少なくとも１つの目標コンピュータ上の少なくとも１つのソフトウェア製品のための少なくとも１つのソフトウェア製品同期化を含む修正リストを作成し、更新する手段と、
前記修正リストを前記少なくとも１つの目標コンピュータに送る手段と、
前記少なくとも１つのソフトウェア製品同期化を前記少なくとも１つの目標コンピュータに適用する手段と
前記管理コンピュータ がさらに、目標ソフトウェア製品目録および優先ソフトウェア製品目録を含み、各ソフトウェア製品目録が、製品識別およびリリースを含む少なくとも１つの製品レコードを含み、各修正レコードおよび優先修正レコードがさらに、製品識別、リリースおよび修正識別を含み、前記ソフトウェア修正マネージャが前記目標ソフトウェア修正目録を前記優先ソフトウェア修正目録と比較する前記手段が、
前記優先ソフトウェア修正目録の前記少なくとも１つの優先修正レコードを取り出す手段と、
前記少なくとも１つの優先修正レコード内の前記ソフトウェア製品およびリリースが、前記少なくとも１つの製品レコード内の前記ソフトウェア製品およびリリースと一致するかどうかを判定する手段と、
前記少なくとも１つの優先修正レコード内の前記ソフトウェア製品およびリリースが前記少なくとも１つの製品レコード内の前記ソフトウェア製品およびリリースと一致する場合に実行される、前記少なくとも１つの優先修正レコード内の前記修正識別が、前記少なくとも１つの修正レコード内の前記修正識別と一致するかどうかを判定する手段と
を含み、前記ソフトウェア修正マネージャが前記修正リストを作成し、更新する前記手段が、
前記少なくとも１つの優先修正レコード内の前記修正識別が前記少なくとも１つの修正レコード内の前記修正識別と一致しない場合に実行される、前記少なくとも１つの修正レコードが、前記修正リスト内の修正レコードのいずれかに対応するかどうかを判定する手段と、
前記少なくとも１つの優先修正レコードと、必要としてマークされたエクストラ表示とを含む同期化を、前記修正リストに追加する手段と
を含む、装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、全般的にはソフトウェアの更新に関する。具体的に言うと、本発明は、１つまたは複数のコンピュータの間でソフトウェアを同期化するための装置および方法に関する。
【０００２】
【従来の技術】
コンピュータは、真空管で一杯の部屋を何部屋も占める状態から、小さい手持ち装置になるまで進歩してきた。我々が生活の中で接触する製品のほとんどをなんらかの形のコンピュータが制御する。これらのコンピュータは、自動車のアンチロック・ブレーキ・システム、我々が作業中に触れる照明のタイミング、職場への途中のエレベータの停止位置、および、職場の温度を制御する。さらに、これらのコンピュータは、ほとんどの人々が仕事の一部として毎日コンピュータを使用するので、我々の主な労働環境を制御し、これに影響する。
【０００３】
コンピュータが至る所にあるようになるにつれて、それらを走行させるのに必要なソフトウェアも至る所にあるようになってきた。コンピュータが真空管からシリコン製の精密装置に進歩する間に、ソフトウェアも、パンチ・カードから、３次元オブジェクトのレンダリングおよびシェーディング、シミュレートされた負荷を受ける梁に対する複雑な計算の実行、および以前には不可能であった他の離れわざの実行が可能な洗練されたプログラムへと進歩してきた。ソフトウェアの洗練度が劇的に高まっただけではなく、ソフトウェアの追加、修正および変更のペースも、劇的に早くなった。
【０００４】
以前には、ソフトウェア製品の新リリースは、その製品の前のリリースの約２〜３年後に行われた。現在、２年の予定表が好ましいと思われ、多くの予定表はそれより短い。さらに、ソフトウェアが複雑なので、ソフトウェア製品がリリースされるや否や、エラー（昆虫が真空管をショートさせ、エラーを引き起こした有名な事件にちなんで一般に「バグ」と呼ばれる）が見つかる。これらのエラーは、一般に、ソフトウェア製品のプログラマによって即座に対処され、プログラマは、そのプログラムの「修正」または「パッチ」を見つける。これらの修正またはパッチは、通常は、ソフトウェア製品の登録所有者に配布されるか、ソフトウェア製品所有者が修正をダウンロードできるインターネット・ウェブサイトに配置される。したがって、ソフトウェアの大きな更新の間に、ソフトウェア製品に対する多数の（時には相当な量の）修正が存在する。
【０００５】
これらの複数の更新および修正は、多数の個人および会社にとって問題になってきた。コンピュータ・システム上のソフトウェア製品のすべてに関する修正の数に起因して、コンピュータ・システムの保守の責任を負う個人が、そのシステムに関して修正または更新が存在することを知りさえしない可能性がある。その個人自身が、修正および更新を探し出さなければならない。さらに、あるソフトウェア修正が、別のソフトウェア・プログラムまたはその修正によって更新されると思われるソフトウェア製品を、実際に「破壊する」かエラーを引き起こす場合があるという潜在的に破壊的な影響が存在する。
【０００６】
これらの問題は、１つまたは複数のネットワークを介して接続されているコンピュータにとって特に面倒である。これらのシステムには、通常は、複数のコンピュータ・システムの維持の責任を負う１人または複数のシステム管理者が存在する。たとえば、大規模ネットワークは、複数のシステム管理者を有し、各システム管理者が、自分の区域の複数のコンピュータ・システムの責任を負う。北西区域のシステム管理者が、自分のネットワーク内のあるコンピュータのセキュリティ問題を修正するパッチを適用する可能性がある。このシステム管理者は、利益を越える損害を引き起こさないことを確認するためにパッチをテストし、その後、自分の区域の各コンピュータにこのパッチを手作業で適用する。
【０００７】
その一方で、南東区域のコンピュータの責任を負うシステム管理者（ＳＡ）が、ネットワーク内のあるコンピュータのオペレーティング・システム・コンポーネントに修正を適用した。残念ながら、この修正は、ある重要なソフトウェア製品に対する破壊的な影響を有していた。南西区域のＳＡは、このオペレーティング・システム修正によって引き起こされる影響を除去すると期待して、ソフトウェア製品に対する更新を追加すると決定した。しかし、この影響は更新の適用後にも存在するが、この更新によって、ソフトウェア製品に関連する他の問題が解決された。南東区域のＳＡは、オペレーティング・システム・コンポーネントをアンインストールすると決定したが、そのコンポーネントは正しくアンインストールされず、そのＳＡは、修正を手作業でアンインストールし、オペレーティング・システムの一部またはすべてを再インストールしなければならない。
【０００８】
どのＳＡも、他のＳＡが行っていることを知らない。この例では、北西区域のＳＡが、同一のオペレーティング・システムに対する同一の修正を適用し、同一の影響を経験する可能性がある。南東のＳＡは、セキュリティ問題に対するパッチが存在することを知らない可能性があり、オペレーティング・システム修正によって引き起こされた破壊の後で、パッチの適用について疑い深くなっている可能性がある。各ＳＡは、他のＳＡがすでに発見している、修正またはパッチによって引き起こされる問題または利益を再発見する可能性がある。
【０００９】
これらのシステム管理者は、やはり非効率的な、他の管理職務を有する。実際にコンピュータのところに出向かなければ、そのコンピュータの修正レベルを判定することは非常に困難である。したがって、あるコンピュータにパッチまたは修正が適用されているが、そのコンピュータの隣のコンピュータに、同一のパッチまたは修正が適用されていない場合がある。これは、一部のコンピュータがある修正レベルであり、それ以外のコンピュータが別の修正レベルであるという、企業内のレベル不一致につながる可能性がある。
【００１０】
レベル不一致が問題を引き起こす場合がある。たとえば、いくつかの場合に明白でないエラーを引き起こす可能性があるデータベースに関する問題を修正するパッチが開発される可能性がある。このパッチが、ネットワーク内のコンピュータのすべてではなく一部に適用された場合、複数のデータベース（複数のコンピュータ上の）にアクセスする人物は、異なる異常な結果を得る可能性がある。その人物が異常を経験した場合であっても、その人物は、そのデータベースの疑わしい点も見落とし、誤った情報を使用する可能性がある。すべてのコンピュータのすべてのデータベースが同一のパッチを有する場合には、明白でないエラーは発生しないはずである。
【００１１】
ＳＡが、あるコンピュータに適用されているソフトウェア修正を遠隔地から判定できる場合であっても、そのコンピュータのための追加のまたは異なるソフトウェア修正は、手作業でインストールしなければならない。コンピュータの更新だけに大量の時間が費やされる可能性がある。というのは、各コンピュータにアクセスして、インストールされているソフトウェア修正を判定しなければならず、その後、追加のまたは異なるソフトウェア修正を各コンピュータに適用しなければならないからである。小規模なネットワークでは、この処理にかなりの時間がかかる可能性があり、大規模なネットワークでは、この処理に数週間または数ヶ月を要する可能性がある。
【００１２】
ネットワーク内でソフトウェアを同期化するための方法および装置がなければ、システム管理者は、ソフトウェア問題の再発見を継続し、異なるソフトウェア修正レベルにあるコンピュータの数を増やし、ネットワーク内の各コンピュータのソフトウェア修正レベルを追跡しなければならず、ネットワーク内の各コンピュータを手作業で更新しなければならない。
【００１３】
【発明が解決しようとする課題】
本発明の目的は、好ましい実施形態では、コンピュータの間でソフトウェアを同期化するための方法および装置を提供することである。
【００１４】
【課題を解決するための手段】
ソフトウェア修正マネージャが、優先ソフトウェア目録と、同期化されるコンピュータからのソフトウェア目録を比較する。ソフトウェア修正マネージャは、この比較から複数の同期化を生成し、好ましくは、これらの同期化を修正リストのパッケージ化する。更新マネージャは、ソフトウェア修正リストを使用して、コンピュータにソフトウェア製品同期化を適用する。所望される場合に、この処理を介してコンピュータを優先ソフトウェア目録と同一の修正レベルまたは製品レベルにすることができることが好ましい。
【００１５】
修正リストは、ソフトウェア製品同期化のリストである。ソフトウェア製品ごとに複数のソフトウェア製品同期化が存在することができ、同期化は、ソフトウェア製品修正を除去するか、製品ソフトウェア修正をインストールすることによってコンピュータに適用することができる。本発明は、ソフトウェア製品をインストールまたは除去することによって、ソフトウェア製品自体に適用することもできる。
【００１６】
本発明は、潜在的に、ネットワークに最適の応用分野を有する。というのは、多数の目標コンピュータまたは目標コンピュータのグループを、モデル・システムの優先ソフトウェア目録を用いて同期化することができるからである。
【００１７】
【発明の実施の形態】
本発明の好ましい実施形態では、コンピュータの間でソフトウェアを同期化するための方法および装置を提供する。ソフトウェア修正マネージャは、優先ソフトウェア目録を、同期化されるコンピュータからのソフトウェア目録と比較する。ソフトウェア修正マネージャは、この比較に基づいて複数のソフトウェア製品同期化を作成し、好ましくは、これらの同期化を修正リストに配置する。更新マネージャは、ソフトウェア修正リストを使用して、コンピュータにソフトウェア製品同期化を適用する。この処理を介して、コンピュータを優先ソフトウェア目録と同一の修正レベルまたは製品レベルにできることが好ましい。修正リストは、ソフトウェア製品同期化のリストである。ソフトウェア製品ごとに複数のソフトウェア製品同期化が存在することができ、同期化は、ソフトウェア製品修正の除去、ソフトウェア製品修正のインストール、もしくは、ソフトウェア製品のインストールまたは除去によってコンピュータに適用することができる。
【００１８】
本発明は、潜在的に、ネットワークに最適の応用分野を有する。というのは、多数の目標コンピュータまたは目標コンピュータのグループを、モデル・システムの優先ソフトウェア目録を用いて同期化することができるからである。更新されるコンピュータのそれぞれは、ソフトウェア製品目録とソフトウェア修正目録という２つのソフトウェア目録を有することが好ましい。前者には、インストールされているソフトウェア製品と、その製品のリリースが記述される。後者には、ソフトウェア製品のリリースに追加された修正が記述される。ソフトウェア修正マネージャは、システム管理者がシステムにログ・インでき、管理コンピュータ上でソフトウェア修正マネージャを走行させることができる、ネットワークの中央位置（管理コンピュータとも呼ばれる）にインストールされることが好ましい。ソフトウェア修正マネージャは、ネットワーク内の複数のコンピュータ・システムからソフトウェア目録を収集するか受け取り、これらのソフトウェア目録は、優先ソフトウェア目録と比較される。優先ソフトウェア修正目録および優先ソフトウェア製品目録は、一般に、ソフトウェア製品とソフトウェア製品修正の好ましい組合せをその上に有する１つのコンピュータ（モデル・システムと称する）から導出される。
【００１９】
ソフトウェア修正マネージャは、ソフトウェア製品同期化の修正リストを作成し、ネットワーク内の各コンピュータ上の更新コントローラが、ソフトウェア製品同期化をそれ自体のコンピュータに適用する。修正リストは、更新されるネットワーク内の各コンピュータのソフトウェア製品同期化（および修正レコード）のすべての和集合であることが好ましい。修正リストは、好ましくは和集合であるから、各目標コンピュータ上の更新コントローラは、適用可能でないソフトウェア製品同期化を無視する必要が生じる場合がある。各ソフトウェア製品同期化は、ソフトウェア製品修正をインストールまたは除去するための指示であり、ソフトウェア製品のインストールまたは除去を示すこともできる。これらの詳細は、これらの話題の以下の詳細な説明でより明らかになる。
【００２０】
本発明の実施形態の詳細な説明に進む前に、本明細書で使用する用語を説明することが有益である。「ソフトウェア製品」とは、コンピュータ・システム用のソフトウェアの１リリースである。ソフトウェア製品は、オペレーティング・システム、財務ソフトウェア、オフィス・ソフトウェア、インターネット・ブラウザ、テキスト編集ソフトウェア、子供のゲームなどとすることができる。さらに、ソフトウェア製品は、プリンタ、ビデオ・カード、サウンド・カードなどのためのドライバとすることができる。ソフトウェア製品の「リリース」は、完全であることが意図されている。リリースは、通常は、Ｖｅｒｓｉｏｎ  ９７またはＶｅｒｓｉｏｎ  ２．０など、年号または自然数を関連付けられた新規バージョン番号を有する。ソフトウェア修正は、ソフトウェア製品に対する、永久的または一時的な、変更または追加である。これらの種類のソフトウェア修正に関する全般的な用語には、「更新」または「パッチ」が含まれる。更新は、通常は、ソフトウェア製品のための永久的な修正であり、ソフトウェア製品に対するマイナー・チェンジであるが、パッチは、通常は、１つまたは複数の問題を修正する一時的なソフトウェアの断片である。問題に関するより永久的な修正が、通常はパッチの後に続く。一部のオペレーティング・システム（すなわちＯＳ／４００）では、用語「永久的」は、修正が永久的にインストールされ、除去できないことを意味し、用語「一時的」は、修正を除去またはアンインストールできることを意味する。
【００２１】
一般に、「ソフトウェア製品」は、ソフトウェア製品の動作するバージョンを示すことが意図され、「ソフトウェア製品修正」は、ソフトウェア製品の完全バージョンではないソフトウェア製品に対する追加または変更を示すことが意図される。用語「ソフトウェア製品同期化」には、ソフトウェア製品修正のインストール、ソフトウェア製品修正の除去の試みおよび除去、ソフトウェア製品のインストール、または、ソフトウェア製品のアンインストールが含まれる。
【００２２】
最後に、「修正レコード」は、特定のリリースのソフトウェア製品のための特定のソフトウェア修正を示すのに使用される用語であり、「製品レコード」は、特定のリリースのソフトウェア製品を示すのに使用される。一部の製造業者は、これらのために日付（Ｖｅｒｓｉｏｎ  ９７または３／７／９９  Ｆｉｘなど）またはこれらの組合せ（Ｖｅｒｓｉｏｎ  ９７、Ｕｐｄａｔｅ  １など）を使用する。後者の例では、製品レコードは、「Ｓｏｆｔｗａｒｅ  Ｐｒｏｄｕｃｔ  Ａ、Ｖｅｒｓｉｏｎ  ９７」になり、修正レコードは、「Ｕｐｄａｔｅ  １、Ｓｏｆｔｗａｒｅ  Ｐｒｏｄｕｃｔ  Ａ、Ｖｅｒｓｉｏｎ  ９７」になるはずである。これらの概念は、後の説明でより明白になる。さらに、他の製造業者は、製品レコードおよび修正レコードに数字と文字（Ｖｅｒｓｉｏｎ  ２．０３ａなど）を使用する。さらに、一部の製造業者は、「ビルド・レベル」、「サービス・パック」番号または追加の識別のしるしも追加する。手短に言うと、「製品レコード」は、ソフトウェア製品の追跡に使用されるしるしであり、「修正レコード」は、製品に追加されたソフトウェア修正の追跡に使用されるしるしである。
【００２３】
図１を参照すると、本発明の好ましい実施形態によるコンピュータ・システム９００には、複数の中央処理装置（ＣＰＵ）９１０、端末インターフェース９５０、補助記憶装置インターフェース９６０、ワークステーション９７０、直接アクセス記憶装置（ＤＡＳＤ）９８０、バス９４０および、さまざまなソフトウェア・プログラムを格納するための複数の位置を含むメモリ９３０が含まれる。この例では、メモリ９３０の位置９３２に、更新コントローラ９８２、１つまたは複数のソフトウェア製品９８３およびソフトウェア目録９８４が含まれる。メモリ９３０には、位置９３４のソフトウェア修正マネージャ９８５および修正リスト９８６と、位置９３６の優先ソフトウェア目録９８７と、位置９３８の１つまたは複数のソフトウェア製品修正９８８も含まれる。
【００２４】
ＣＰＵ９１０は、計算と、コンピュータ・システム９００の制御機能を実行する。コンピュータ・システム９００に関連するすべてのＣＰＵには、それぞれ個別にマイクロプロセッサなどの単一の集積回路を含めることができ、また、中央処理装置の機能を達成するために協力して働く適当な数の集積回路デバイスまたは回路ボードを含めることができる。すべてのＣＰＵが、メモリ９３０に格納されたプログラムを適当に実行し、これらのプログラムまたはコンピュータ・システム９００内で発生する可能性がある他の活動に応答して動作する能力を有する。
【００２５】
メモリ９３０は、当業者に既知のいずれかの種類のメモリである。これには、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）、フラッシュ・メモリなどが含まれる。図１には明示されていないが、メモリ９３０は、単一の種類のメモリ構成要素とするか、多数の異なる種類のメモリ構成要素からなるものとすることができる。たとえば、メモリ９３０およびＣＰＵ９１０は、集合的にコンピュータ・システム９００を含む複数の異なるコンピュータの間で分散することができる。たとえば、更新コントローラ９８２が、ＣＰＵ１を有するコンピュータに常駐し、ソフトウェア修正マネージャ９８５が、別のＣＰＵ２を有する別のコンピュータ・システムに常駐し、優先ソフトウェア目録修正９８７が、異なるＣＰＵｎ−１を有する第３のコンピュータ・システムに常駐し、ソフトウェア製品修正９８８が、異なるＣＰＵｎを有する第４のコンピュータ・システムに常駐することができる。その代わりに、すべての構成要素を、１つのＣＰＵを有する１つのコンピュータに配置することができる。図１のコンピュータ・システム９００は、ＣＰＵ９１０の物理的位置またはメモリ９３０内のメモリ位置に関する制限なしに、単に本発明の顕著な特徴の多くを例示するものである。
【００２６】
バス９４０は、プログラム、データ、状況および他の形態の情報または信号を、コンピュータ・システム９００のさまざまな構成要素の間で伝送するために働く。バス９４０の好ましい実施形態は、当業者に既知の、コンピュータ・システムおよび構成要素を接続する適当な物理的手段または論理的手段である。これには、直接配線接続、光ファイバ、赤外線（ＩＲ）および他の形態の無線接続が含まれるが、これらに制限はされない。コンピュータ・システムおよび構成要素を接続するための多数の他の代替の方法および材料が、本発明と共に使用するために簡単に適合されることが予想されている。これには、現在は既知でないが、将来に開発される方法および材料が含まれる。
【００２７】
端末インターフェース９５０を用いると、人間のユーザが、通常はワークステーション９７０を介して、コンピュータ・システム９００と通信できるようになる。ワークステーション９７０は、ＩＢＭ社のパーソナル・コンピュータまたはＲＳ／６０００などのコンピュータ・システムであることが好ましい。図１に示されたコンピュータ・システム９００には、単一のワークステーション９７０だけが含まれるが、コンピュータ・システム９００に接続されるワークステーションの実際の数は、システム設計およびユーザの嗜好の関数になることを理解されたい。ワークステーション９７０は、人間とコンピュータ・システム９００の対話を可能にする、ダム端末または他の非プログラム式コンピュータ入出力装置とすることもできる。
【００２８】
補助記憶装置インターフェース９６０は、当業者に既知の、記憶装置をコンピュータ・システムにインターフェースする方法を表す。補助記憶装置インターフェース９６０を用いると、ＤＡＳＤ９８０などの補助記憶装置を、コンピュータ・システム９００の他の構成要素に接続し、それらと通信することが可能になる。１つの補助記憶装置インターフェース９６０だけが図示されているが、本発明では、複数のインターフェースと、ＤＡＳＤ９８０などの複数の補助記憶装置が予想されている。たとえば、ＤＡＳＤ９８０は、フロッピ・ディスク上にプログラムまたはデータを読み書きすることのできるフロッピ・ディスク駆動装置とすることができる。ＤＡＳＤ９８０は、当業者に既知の他の種類のＤＡＳＤとすることもできる。これには、ＣＤ−ＲＯＭ駆動装置、ハード・ディスク装置、光ディスク駆動装置などが含まれる。
【００２９】
ネットワーク・インターフェース９７５は、他のコンピュータ・システムまたはワークステーションを、ネットワーク形式でコンピュータ・システム９００に接続するのに使用される。１つの特定の好ましいネットワーク構成を、図２に示す。本発明は、コンピュータ・システム９００が他のコンピュータ・システムまたはワークステーションに接続される方法に無関係に、その接続が現在のアナログ技術またはディジタル技術を使用して行われるのか、将来の何らかのネットワーキング機構を介して行われるのかに無関係に、同等に適用される。
【００３０】
本発明は、完全に機能するコンピュータ・システムに関して説明されるが、本発明の機構をさまざまな形態のプログラム製品として配布できることと、配布を実際に実行するための信号担持媒体の特定の種類に無関係に本発明が同等に適用されることを、当業者が諒解するであろうことに留意することが重要である。信号担持媒体の例には、フロッピ・ディスク（たとえばディスク９９０）およびＣＤ−ＲＯＭなどの記録可能型媒体と、無線通信リンクを含む、ディジタル通信リンクおよびアナログ通信リンクなどの伝送型媒体が含まれる。
【００３１】
ソフトウェア修正マネージャ９８５は、ソフトウェア目録９８４を優先ソフトウェア目録９８７と比較し、修正リスト９８６を作成する。修正リスト９８６は、ソフトウェア製品同期化のリストであり、優先ソフトウェア目録を有するコンピュータ・システム９００上のソフトウェア製品９８３の同期化に使用できることが好ましい。更新コントローラ９８２が、ソフトウェア製品同期化をコンピュータ・システム９００に適用する。ソフトウェア製品修正をインストールする必要がある場合には、これらの製品または修正は、通常は、ソフトウェア製品修正９８８から取り出される。
【００３２】
図２に移ると、図２は、複数の異なる目標システム上でソフトウェア修正を同期化するための好ましい構成であるコンピュータ・ネットワーク１００を示す図である。コンピュータ・ネットワーク１００には、目標システム１１０ないし１２０と目標グループ１３０などの複数の目標システムが含まれる。これらのシステムは、ネットワーク１７０を介して、管理システム１６０、ソース・システム１５０およびモデル・システム１４０と通信する。ネットワーク１７０は、トークン・リング・ネットワーク、スター・システム・ネットワークまたは他のネットワークなど、当業者に既知のネットワークのいずれかとすることができる。コンピュータ・ネットワーク１００内の各コンピュータ・システムは、パーソナル・コンピュータ、ワーク・ステーション、サーバまたはスーパー・コンピュータなど、当業者に既知のいずれかの種類のコンピュータ・システムとすることができる。各コンピュータには、一般に、少なくとも１つのプロセッサと、少なくとも１つのプロセッサに結合されたメモリと、オペレーティング・システムとが含まれる。各コンピュータ・システムは、複数のプロセッサ、記憶装置またはメモリの種類を有することができる。さらに、各コンピュータ・システムは、当業者に既知のまたは今後開発されるオペレーティング・システムのいずれかを走行させることができる。
【００３３】
目標システム１１０には、更新コントローラ１１１、ソフトウェア修正目録１１２、ソフトウェア製品目録１１７および複数のソフトウェア製品１１３ないし１１４が含まれる。同様に、目標システム１２０には、更新コントローラ１２１、ソフトウェア修正目録１２２、ソフトウェア製品目録１２７およびソフトウェア製品１２３ないし１２４が含まれる。目標グループ１３０は、１つのグループとして選択されたコンピュータのグループであり、ユーザが異なるコンピュータをグループ化するのを助ける手段にすぎない。グループ内の各コンピュータは、別々の更新コントローラ（更新コントローラ１３１など）、ソフトウェア修正目録（ソフトウェア修正目録１３２など）およびソフトウェア製品目録（ソフトウェア製品目録１３７など）を有する。各コンピュータのソフトウェア目録および更新コントローラは、他のすべてのコンピュータの目録および更新コントローラから完全に別々になっている。ユーザの観点からは、グループは、１つのグループとして操作されるが、実際には、各コンピュータが、本発明によって別々に操作される。
【００３４】
同期化のシナリオは、目標システムが各システム上にソフトウェア製品を有し、これらのソフトウェア製品を、モデル・システムのソフトウェア製品と同期化することが好ましいというものである。この同期化には、目標システム上にあるがモデル・システム上にないソフトウェア製品について、可能な場合に、ソフトウェア製品およびソフトウェア製品修正の除去を含めることができる。さらに、同期化には、モデル・システム上にあるが目標システム上にない、ソフトウェア製品に対するソフトウェア製品修正のインストールを含めることができる。さらに、ソフトウェア製品が、目標システムにないがモデル・システムにある場合に、ソフトウェア製品自体を目標システムにインストールすることができる。これらの概念は、後の説明でより明白になる。
【００３５】
モデル・システム１４０には、優先ソフトウェア修正目録１４１、優先ソフトウェア製品目録１４７および、ソフトウェア製品１４２ないし１４３などの複数のソフトウェア製品が含まれる。モデル・システム１４０は、これらのソフトウェア製品について、好ましい複数のソフトウェア製品およびソフトウェア製品修正（図２には図示せず）を有するように、システム管理者によって管理されていることが好ましい。モデル・システム１４０は、すべての製品が正しく動作することを確認し、修正および製品の修正、インストールおよびアンインストールも正しく動作し、他のソフトウェア製品に危害を加えないことを確認するために、厳重にテストされなければならない。したがって、モデル・システム１４０は、ネットワーク内の他のシステムのいずれにも害を与えずに、既知のソフトウェア修正およびソフトウェア製品を配置でき、変更を行うことができる、リポジトリを提供する。これによって、ソフトウェア製品の更新、修正またはインストールのテストに１つのシステムだけが使用されるので、再発見の問題が制限される。さらに、モデル・システム１４０は、ソフトウェア製品の好ましいグループを有するシステムを提供し、その結果、このシステムをネットワーク内の他のコンピュータと比較できるようになる。
【００３６】
所望される場合には、ネットワーク内に複数のモデル・システムを設けることができる。たとえば、あるモデル・システムが、財務ソフトウェア製品の好ましいグループを有し、別のモデル・システムが、オフィス・ソフトウェア製品の好ましいグループを有することができる。この二股のセット・アップは、ネットワーク内に複数のオペレーティング・システムが存在する時に好ましくなる可能性がある。この場合、各モデル・システムに、そのモデルの特定のオペレーティング・システム用のソフトウェア製品のグループを含めることができる。
【００３７】
ソフトウェア修正目録（ソフトウェア修正目録１１２、１２２および１３２と優先ソフトウェア修正目録１４１）とソフトウェア製品目録（ソフトウェア製品目録１１７および１２７と優先ソフトウェア製品目録１４７）のそれぞれは、複数の方法で発見できる。一部のオペレーティング・システムは、システムにインストールされたソフトウェア修正および製品の記録を保持する。したがって、この種類のオペレーティング・システムおよびコンピュータについては、ソフトウェア修正目録およびソフトウェア製品目録が、すでに存在する。ソフトウェア修正目録がコンピュータ・システム上で現在保持されていない場合には、更新コントローラによってそのコンピュータ・システムに問い合わせて、どのソフトウェア製品および修正がインストールされているかを判定することができる。ほとんどのオペレーティング・システムでは、更新コントローラが、目標システムに問い合わせ（アプリケーション・プログラミング・インターフェースを介するか、システム構成ファイルまたは他の構成ファイルを介して）、どのソフトウェア製品とソフトウェア製品修正がインストールされているのかを判定することができる。
【００３８】
管理システム１６０には、ソフトウェア修正マネージャ１６１と、目標システム１ないしＮからのソフトウェア修正目録１１２ないし１２２と、やはり目標システム１ないしＮからのソフトウェア製品目録１１７ないし１２７と、モデル・システム１４０からの優先ソフトウェア修正目録１４１および優先ソフトウェア製品目録１４７と、修正リスト１６２が含まれる。管理システム１６０は、ネットワーク内のどのコンピュータとすることもできるが、サーバを用いるとソフトウェア修正マネージャ１６１へのよりよいリモート・アクセスが可能になるので、サーバである管理システム１６０上にソフトウェア修正マネージャ１６１を配置することが最適である可能性がある。優先ソフトウェア修正目録１４１および優先ソフトウェア製品目録１４７のコピーが、管理システム１６０上にある。
【００３９】
モデル・システム１４０に、優先ソフトウェア製品をインストールし、これらの製品に対するソフトウェア製品修正をインストールした後には、優先ソフトウェア修正目録１４１が、完全な状態になっていなければならない。優先ソフトウェア修正目録および好ましソフトウェア目録には、モデル・システムの優先ソフトウェア構成が記述されている。この状態では、優先ソフトウェア目録は、実際には単なるファイルである。したがって、そのファイルを作成し、内容を固めた後に、ファイル自体を異なるネットワークに送信することができる。さらに、優先ソフトウェア目録を作成した後には、モデル・システム１４０を有する必要は実際にはない。しかし、優先ソフトウェア目録は、常に更新され改良されるので、モデル・システム１４０を有することが好ましい。さらに、モデル・システムに現在インストールされているソフトウェア製品の後続のソフトウェア製品または修正は、モデル・システムを用いればより簡単にインストールでき、検査できる。したがって、モデル・システム１４０は、新規の修正およびソフトウェア製品を検査するための安全な場所を提供する。
【００４０】
ソフトウェア修正マネージャ１６１は、さまざまな異なる機能を有する。機能の１つが、システム管理者が管理システム（およびソフトウェア修正マネージャ）にログ・インできるようにし、優先ソフトウェア修正目録と同期化させたい目標システムを選択できるようにすることである。ソフトウェア修正マネージャ１６１は、修正リスト１６２が作成された後に、所望される場合にその修正リストを表示することもできる。修正リストに対する何らかの制御が所望される場合、ソフトウェア修正マネージャ１６１は、システム管理者が修正リスト１６２内の項目を選択または選択解除できるようにし、その結果、これらの項目が各目標システムに送られるようにするか送られないようにすることができる。ソフトウェア修正マネージャ１６１は、後の説明から明白になるように、ソフトウェア修正目録１１２ないし１２２を優先ソフトウェア修正目録１４１と比較して、修正リスト１６２を作成し、更新する。さらに、ソフトウェア修正マネージャ１６１は、修正リスト１６２の作成中および更新中に、ソフトウェア製品目録１１７ないし１２７と優先ソフトウェア製品目録１４７にアクセスする。修正リスト１６２は、目標システムからのソフトウェア目録と優先ソフトウェア目録の間の比較の結果である。修正リスト１６２は、各目標システムに送られる異なるソフトウェア製品同期化の和集合であることが好ましい。ソフトウェア修正目録１１２ないし１２２とソフトウェア製品目録１１７ないし１２７は、管理システムの要求時に、目標システムによって管理システムに送ることができる。その代わりに、管理システムが、これらのソフトウェア目録を目標システムから取り出すことができる。
【００４１】
図２の管理システム１６０には図示されていないが、目標グループ１３０内の各コンピュータのソフトウェア目録も、優先ソフトウェア目録と比較するために管理システム１６０に配置することができる。
【００４２】
次に、本発明を、主にソフトウェア修正目録に関連して説明する。しかし、本明細書に記載の発明は、ソフトウェア製品目録に対しても同等に適用される。ソフトウェア修正目録と優先ソフトウェア修正目録の比較によって、ソフトウェア修正の同期化が可能になるのに対して、ソフトウェア製品目録と優先ソフトウェア目録（優先ソフトウェア製品目録１４７）の比較によって、ソフトウェア製品のインストールまたはアンインストールが可能になる。本発明のソフトウェア製品目録実施形態に関する説明は、この実施形態の理解に役立つ時に行う。
【００４３】
修正リストがソフトウェア修正マネージャ１６１によって展開された後に、修正リスト１６２が、更新について選択された目標システムのそれぞれに送られる。たとえば、目標システム１１０が更新について選択され、目標システム１２０が選択されていない場合には、修正リストは、目標システム１１０には送られるが目標システム１２０には送られない。これは、ソフトウェア修正目録１２２を使用して修正リスト１６２を作成してはならないことも意味する。修正リスト１６２が、更新される目標システムのそれぞれに到達した後に、その目標システムの更新コントローラが、それ自体の目標システムのソフトウェア修正目録と修正リストを比較する。たとえば、目標システム１１０が更新されようとしている場合、更新コントローラ１１１が、ソフトウェア修正目録１１２を修正リスト１６２と比較する。修正リスト１６２は、異なる目標システムからの異なるソフトウェア製品同期化の和集合であることが好ましいので、ソフトウェア製品同期化のうちのいくつかは、目標システム１１０に適用可能でない可能性がある。たとえば、目標システム１１０が、ソフトウェア製品１２３（目標システム１２０にインストールされている）を有しない場合、ソフトウェア製品１２３に適用される修正リスト１６２内のソフトウェア製品同期化は、どれもが目標システム１１０には適用されない。更新コントローラ１１１は、そのソフトウェア製品に関するソフトウェア製品同期化を無視する。これは、後でより明白になる。
【００４４】
目標システム１１０は、ネットワーク１７０を介してソース・システム１５０と通信して、更新コントローラ１１１によって目標システム１１０に適用されるソフトウェア製品または修正を取り出す。更新コントローラ１１１は、可能であれば、ソフトウェア製品修正の除去を試みることもできる。ソース・システム１５０には、ソフトウェア製品修正１５１とソフトウェア製品修正１５２ないし１５３が含まれる。目標システム１１０が、修正リスト１６２から、そのコンピュータ上のソフトウェア製品に適用可能なソフトウェア製品同期化がある（ソフトウェア製品同期化は、図５ないし１０に関連して詳細に説明する）と判定し、その同期化にソフトウェア製品修正のインストールが含まれると判定する場合には、目標システム１１０は、ネットワーク１７０を介して通信して、ソース・システム１５０からソフトウェア製品修正を取得する。ソース・システム１５０は、管理システム１６０およびモデル・システム１４０と同様に、ネットワーク内のコンピュータのいずれかとすることができる。ソース・システム１５０は、ソフトウェア製品修正のリポジトリである。更新コントローラは、ソース・システムに特定の修正または製品を要求することによって、ソース・システムからソフトウェア製品修正またはソフトウェア製品を取り出す。ソース・システムは、この修正または製品を見つけ、その後、目標システムにその製品または修正を送る。更新コントローラは、ソース・システムからの修正または製品の取出の一部として、製品または修正を受け取る。
【００４５】
目標システム１１０が、ソース・システム１５０からソフトウェア製品修正を取り出した後に、更新コントローラ１１１は、目標システムにソフトウェア製品修正またはソフトウェア製品インストールをインストールする。なんらかの理由でエラーがあるか、なんらかの理由でソフトウェア製品をインストールできない場合には、更新コントローラは、その状況を管理システム１６０に報告する。さらに、更新コントローラは、一般に、ソフトウェア製品同期化が完了したか否かなど、他の状況情報を報告する。管理システム１６０は、目標システム１１０に対して実行される更新を実行しているか指示したシステム管理者にこの情報を表示することができる。
【００４６】
ソフトウェア製品修正１５１ないし１５３は、実際にソフトウェア製品の更新またはインストールを行う独立のプログラムまたはファイルであることに留意されたい。更新コントローラは、このプログラムまたはファイルを取得し、その後、オペレーティング・システムに、そのプログラムまたはファイルの実行、走行またはロードを指示し、そのプログラムまたはファイル自体が、実際の更新またはインストールを行う。所望される場合には、ソフトウェア修正を、単純に、現在存在するファイルの上にインストールされるファイルとすることができる。たとえば、動的リンク・ライブラリ（ＤＬＬ）ファイルを、ソース・システムから取り出し、すでに存在するＤＬＬの上にインストールすることができる。しかし、ソフトウェア修正は、修正をインストールするのに必要なすべての機能を実行する独立のファイルであることが好ましい。
【００４７】
本発明のソフトウェア製品目録実施形態では、ソフトウェア修正マネージャ１６１が、選択された目標システムまたは目標グループのソフトウェア製品目録のそれぞれを、優先ソフトウェア製品目録１４７と比較する。インストールまたは除去（アンインストール）されるソフトウェア製品を示す、修正リスト１６２に類似の修正リストを作成するか、修正リスト１６２に対する追加を行うことができる。この「新しい」修正リストは、ソフトウェア製品の和集合であることが好ましい。「新しい」修正リストは、目標コントローラのそれぞれに送られ、各目標コントローラは、修正リストがその目標コントローラのコンピュータにあてはまるかどうかを判定し、目標コントローラは、同期化を適用する。ソフトウェア製品をインストールする場合には、ソフトウェア製品（図１のソース・システム１５０には図示されていない）が、ソース・システム１５０から取り出され、インストールされる。
【００４８】
したがって、ソフトウェア修正マネージャ１６１は、目標システム・コンピュータまたは目標システム・グループからの複数のソフトウェア目録を、モデル・システムからの優先ソフトウェア目録と比較し、修正リストを作成する。修正リストは、その後、目標システムに配布される。各目標システムまたは目標システム・グループは、更新コントローラを有し、この更新コントローラは、修正リストとそれ自体のコンピュータのそれ自体のソフトウェア修正目録とを比較し、そのコンピュータ上のソフトウェア製品にソフトウェア製品同期化を適用する。各目標システムは、必要なソフトウェア製品または修正をソース・システム１５０から取り出す。
【００４９】
図３に移ると、ソフトウェア管理者とソフトウェア修正マネージャの対話と、修正リストを作成し、各目標システムに修正リストを送るためにソフトウェア修正マネージャが行うステップを示す、方法２００が示されている。この図は、ソフトウェア修正目録とソフトウェア製品目録の両方に適用可能であり、したがって、この方法では、包括的な用語「ソフトウェア目録」を使用する。方法２００は、システム管理者が１つまたは複数の目標システムまたは目標システム・グループの更新を望む時に実行される。これは、一般に、システム管理者が、モデル・システムにインストールされるソフトウェア製品およびソフトウェア製品修正を固め、モデル・システムが、優先ソフトウェア修正目録および優先ソフトウェア製品目録を有するようになった後に行われる。前に述べたように、優先ソフトウェア目録は、モデル・システムが固められた後には、単にファイルとみなし、ファイルとして使用することができる。
【００５０】
方法２００は、システム管理者が、更新される目標または目標グループを選択した時に、ステップ２１０で開始される。さらに、システム管理者は、ソース・システムおよびモデル・システムを選択することもできる。このステップでは、優先ソフトウェア目録を、ファイルまたはモデル・システム上のファイルとして選択することもできる。たとえば、優先ソフトウェア目録が、電子メールを介して受け取られた場合、このステップで、システム管理者は、優先ソフトウェア目録をファイルとして選択することができる。ステップ２１０は、一般に、システム管理者に管理システムおよびソフトウェア修正マネージャにログ・インさせることによって実行される。ステップ２２０で、すべての目標システムのソフトウェア目録を、受け取るか取り出す。前に述べたように、管理システムが、各目標システムにそのソフトウェア目録を管理システムに送るように指示することができ、また、管理システムが、各目標システムまたは目標システム・グループからソフトウェア目録を直接に取り出すことができる。さらに、ソフトウェア目録が、通常はオペレーティング・システムの一部として保存されず、更新コントローラが目標システムに問い合わせなければならない場合には、管理システムは、更新されるようにスケジューリングされた目標システムの更新コントローラに、個々の目標システムに問い合わせるように指示することができる。その場合、各更新コントローラは、適当なソフトウェア目録を作成する。
【００５１】
各目標システムのソフトウェア目録を独立に取り出すことが所望される場合には、ステップ２２０を変更し、その結果、ソフトウェア修正マネージャが、１時に１つのソフトウェア目録だけを取り出すか受け取るようにすることができる。この１つのソフトウェア目録に、ステップ２３０ないし２５０を適用することができる。ステップ２２０での目標システムのソフトウェア目録のすべての取出（図３に現在示されている）は、各目録の別々の取出と同等に良好である。
【００５２】
１つまたは複数のシステム目録を受け取るか取り出した後に、ソフトウェア修正マネージャは、各目録を優先ソフトウェア目録と比較して、修正リストを生成する。この比較はステップ２３０で行われ、修正リストの作成または更新はステップ２４０で行われる。ソフトウェア修正目録を優先ソフトウェア修正目録と比較するための好ましい方法を、図５に示す。最初の目標システムのソフトウェア目録を優先ソフトウェア目録と比較するなど、修正リストが現在作成されていない場合には、その時点で修正リストを作成し、ソフトウェア製品同期化を書き込む。これらの最初の同期化は、最初の目標システム上のソフトウェア目録とモデル・システム上のソフトウェア目録の差分である。これについては、下で詳細に説明する。
【００５３】
すべての目標システムからのすべてのソフトウェア目録が、優先ソフトウェア目録と比較されてはいない場合（ステップ２５０のＮｏ）、次の目標システムのソフトウェア目録を比較する（ステップ２３０）。すべての目標システムのすべてのソフトウェア目録を比較した場合（ステップ２５０のＹｅｓ）、ステップ２６０で、システム管理者が使用するために、ソフトウェア製品同期化のリストを画面に表示する。システム管理者は、自分がすでに選択した目標システムにどの同期化を適用するかを選択することができる。この方法では、すべての目標システムの目録が、１つの別個のステップ（ステップ２２０）で受け取られるか取り出されると仮定していることに留意されたい。しかし、所望される場合には、各目標システムのソフトウェア目録を、ステップ２２０で個別に受け取ることができる。その後、ステップ２３０で、目録のそれぞれが独立に優先目録と比較され、ステップ２４０で、修正リストが更新され、ステップ２５０で、ソフトウェア目録のすべてが比較されてはいない場合（ステップ２５０のＮｏ）、ステップ２２０および２３０を再び実行して、ソフトウェア目録を取り出し、このソフトウェア目録を優先目録と比較する。
【００５４】
下で述べるように、修正リストは、すべての目標システムおよび目標システム・グループのすべてのソフトウェア製品同期化の和集合であることが好ましい。和集合が好ましいのは、ソフトウェア修正マネージャが、個々の目標について個々のソフトウェア製品同期化の個別のリストを生成する必要がなくなるからである。したがって、修正リストは、各目標システムに送られ、各更新コントローラは、修正リストをそれ自体のソフトウェア目録と比較して、どのソフトウェア製品同期化を適用し、どれを適用しないかを判定する。これが好ましくない場合には、個々の目標システムのそれぞれが、それ自体の修正リストを作成させることができる。しかし、ネットワーク・トラフィックが最小になり、個々の修正リストが目標システムおよび目標システム・グループのそれぞれに送られるのではなく修正リストがすべての目標システムに１回だけ送られるので、和集合が好ましい。ステップ２７０で、修正リストを、各目標および各目標グループに送る。各更新コントローラは、修正リストが和集合である場合には修正リストをそのソフトウェア目録と比較し、適用可能な同期化をそのコンピュータに適用する。修正リストが和集合でない場合には、各更新コントローラは、修正リストをそれ自体の目標システムに適用するだけである。適当なソフトウェア製品同期化が、更新コントローラによってその目標システムおよびソフトウェア製品に適用された後に、状況が、ソフトウェア修正マネージャに送られる。ソフトウェア修正マネージャは、ステップ２８０で結果を表示する。この結果に基づいて、システム管理者は、どのコンピュータがどのソフトウェア製品同期化を適用されたかを知る。
【００５５】
図４に移ると、目標システム上の更新コントローラによって実行される方法３００が示されている。この図は、ソフトウェア修正目録とソフトウェア製品目録の両方に適用可能であり、したがって、この方法では包括的な用語「ソフトウェア目録」を使用する。方法３００は、ソフトウェア更新が行われることをソフトウェア修正マネージャが更新コントローラに知らせ、ソフトウェア更新が実際に実行される時に、必ず実行される。方法３００は、ステップ３１０で、更新コントローラがソフトウェア目録を判定する時に開始される。ソフトウェア目録は、すでに判定されていることが好ましい。ＡＳ／４００コンピュータ上で走行するＯＳ／４００オペレーティング・システムなどの一部のシステムは、ソフトウェア製品またはソフトウェア製品に対する修正がインストールまたは除去される時に、必ずソフトウェア製品目録とソフトウェア修正目録の両方を作成する。ソフトウェア製品目録およびソフトウェア修正目録を自動的に作成しないオペレーティング・システムの場合、前に述べたように、更新コントローラが、目標システムに問い合わせ、ソフトウェア製品目録およびソフトウェア修正目録を判定することができる。これが可能でない場合には、更新コントローラ１１１を変更するか、目標システム上のオペレーティング・システムを変更して、更新コントローラがソフトウェア製品目録およびソフトウェア修正目録を判定できるようにすることができる。
【００５６】
ソフトウェア目録が判定された後に、目標システムの更新コントローラは、ソフトウェア目録を管理コンピュータ・システムに送る（ステップ３２０）。その代わりに、ソフトウェア修正マネージャが、目標システムからソフトウェア目録を取り出すことができる。ステップ３２０とステップ３３０の間に、ソフトウェア修正マネージャは、ソフトウェア目録およびグループ・ソフトウェア目録のリストを、優先ソフトウェア目録と比較して、修正リストを決定する。修正リストが決定された後に、ステップ３３０で、その修正リストが各目標システムに送られ、各目標システムによって受け取られる。
【００５７】
ステップ３４０とステップ３５０を実行する方法は複数ある。１つの方法は、修正リスト内の同期化のそれぞれの適用可能性を判定することであり、これはステップ３４０になる。その同期化に、ソース・システムからの修正の取出（ステップ３５０）が伴う場合には、その修正をソース・システムから取り出すことができる。ここでは、図１のソース・システム１５０（図４には図示せず）が、全く不要であることにも留意されたい。所望される場合には、ソフトウェア製品修正を、修正リストと共に送ることができる。これは、修正リストが目標システムごとの個々の修正リストになる場合に特にあてはまる。しかし、修正リストが和集合である場合には、修正リストと共に送らなければならないソフトウェア製品の数が、ネットワークにとってあまりに煩わしくなる可能性がある。
【００５８】
その代わりに、ステップ３４０とステップ３５０を、修正リスト全体に適用することもできる。たとえば、ステップ３４０で、修正リスト内の各同期化の適用可能性を判定する時に、この判定を、修正リスト全体のすべての単独の同期化について行うことができる。その後、ソース・システムを使用する場合に、ソース・システムから取り出さなければならない修正がある場合には、修正のすべてを１時に取り出すことができる。その代わりに、すべての同期化の適用可能性を判定した後に、各ソフトウェア修正を、ソース・システムから個別に取り出し、ソフトウェア修正を適用し、次のソフトウェア修正をソース・システムから取り出し、適用し、これを繰り返すことができる。ソフトウェア修正をソース・システムから取り出す方法の詳細は、図９に関連して説明する。
【００５９】
ステップ３４０とステップ３５０を実行する方法に無関係に、ステップ３７０で、ソフトウェア製品同期化のうちの１つを適用する試みを行う。ソフトウェア製品同期化は、最新のソフトウェア修正のインストールまたは除去になる可能性がある。さらに、ソフトウェア製品同期化は、ソフトウェア製品のインストールまたは除去になる可能性がある。実行されるインストールがある場合には、インストールされるファイルは、ソース・システムを使用する場合にはソース・システムから取り出さなければならず、さもなければ、管理システムによって目標システムに送られなければならない。ステップ３７０では、ソフトウェア製品同期化を適用する試みを、その場その場で実行しれなければならない。一部のシステムでは、同期化を並列に実行することが可能である場合があるが、一般に、ある修正をアンインストールすると同時に第２の修正をインストールすることや、複数の修正を同時にインストールすることは、不可能である。したがって、ステップ３７０は、１時に１同期化ずつ、逐次実行されることが好ましい。同期化を適用するために、更新コントローラは、目標システムのオペレーティング・システムに、ソフトウェア修正またはソフトウェア製品をアンインストールまたはインストールするように指示する。
【００６０】
すべての同期化が完了した後に、または、その代わりに、各同期化の後に、更新コントローラは、ソフトウェア修正マネージャに更新を送る。これは、ステップ３８０で行われる。ソフトウェア修正マネージャは、その目標システムからの結果を表示することができる。システム管理者は、この結果を使用して、各目標システムのソフトウェア修正レベルを判定することができる。
【００６１】
したがって、図３および４によって、修正リストを作成し、その修正リストを各目標システムに配布するために互いに協力するソフトウェア修正マネージャと更新コントローラが示される。各目標システムは、その後、更新コントローラを介してその修正リストをそれ自体に適用する。この処理の後に、各目標システムまたは目標システム・グループが、同一のソフトウェア修正レベルの同一または非常に似た製品をインストールされていることが好ましい。
【００６２】
本発明では、３つの主要なステップすなわち、ソフトウェア目録を優先ソフトウェア目録と比較し、ソフトウェア製品同期化（修正リストに配置されることが好ましい）を作成／更新するステップと、目標コンピュータに同期化を送るステップと、目標コンピュータに同期化を適用するステップとが説明されることに留意することが重要である。所望される場合には、各ステップの間に、システム管理者によって決定される時間期間を設けることができる。たとえば、システム管理者は、ある日に比較を走行させ、次の週にソフトウェア修正マネージャに目標コンピュータに同期化を送るように指示し、その後、その次の週に、更新コントローラに、そのそれぞれの目標コンピュータを更新するように指示する（各更新コントローラに更新を行うようにソフトウェア修正マネージャに指令させることによることが好ましい）ことができる。さらに、本発明では、システム管理者が、比較と修正リストの生成だけを走行させることが可能であり、比較、修正リストの作成および各目標への伝送を走行させることも可能である。前者の状況では、システム管理者は、各コンピュータのところに行かずにネットワーク内の複数のコンピュータ上のソフトウェアの更新状況を判定でき、後者の状況では、システム管理者は、同期化のために目標システムを準備し、後の時点で同期化を走行させることができる。
【００６３】
ソフトウェア同期化を行えるようにするための全体的な機構を説明したので、優先ソフトウェア目録および修正リストの詳細な説明を、図７ないし１０に示す。図７および８に、ソフトウェア修正マネージャによって行われる比較の例を示す。図７および８を説明する時には、図５および６に示された、ソフトウェア修正マネージャによって行われる比較の好ましい方法にも言及する。ソフトウェア修正マネージャは、優先ソフトウェア目録と目標からのソフトウェア目録を比較して、修正リストを作成し、更新する。図９および１０は、修正リストを使用してシステムのソフトウェアを同期化する、２つの異なる目標システムの更新コントローラの例を示す図である。これらの更新コントローラは、ソフトウェア修正マネージャから受け取った修正リストを、それ自体のソフトウェア目録と比較し、修正リスト内のソフトウェア製品同期化を適用する。図７ないし１０では、ソフトウェア修正目録を、主に比較目録として説明する。しかし、修正リストの作成および更新に使用される概念は、目録の作成にも同等に適用されるので、適当な時にはソフトウェア製品目録の説明を行う。
【００６４】
図７に移ると、図７は、修正リスト１６２を作成するために優先ソフトウェア修正目録１４１と比較される、目標システム１１０（図７には図示せず）からのソフトウェア修正目録１１２を示す図である。ソフトウェア修正マネージャ１６１（図７には図示せず）は、ソフトウェア修正目録１１２を優先ソフトウェア修正目録１４１と比較して、修正リスト１６２を作成する。目標システム１１０のソフトウェア製品目録１１７とモデル・システムの優先ソフトウェア製品目録１４７も図示されている。ソフトウェア修正目録１１２には、複数の修正レコード４２５、４３０、４３５、４４０および４４５が含まれる。同様に、優先ソフトウェア修正目録１４１には、複数の修正レコード４５０、４５５、４６０、４６５および４６６が含まれる。各修正レコードは、インストールされる、ソフトウェア製品のソフトウェア製品修正を示す。前に述べたように、本明細書で使用する用語「ソフトウェア製品」は、オペレーティング・システム・コンポーネント、ドライバ、動的リンク・ライブラリ、プログラムおよびファイルなど、すべての種類の完全なソフトウェア製品を含む。修正レコードは、特定のリリースの特定のソフトウェア製品について、どの修正、改良または追加もインストールされているかを示す。ソフトウェア修正は、ソフトウェア製品のリリースに束縛され、特定のソフトウェア修正は、ソフトウェア製品の１特定のリリースのために作られる。修正レコードは、特定のソフトウェア修正を判定するのに使用される、当業者に既知のなんらかのしるしとすることができる。
【００６５】
図７では、ソフトウェア修正目録１１２に、修正レコード４２５ないし４４５が含まれ、各ソフトウェア修正レコードは、修正識別４００、製品識別４０５および製品リリース４１０を有する。図７の例では、修正レコード４２５の修正識別１と修正レコード４３０の修正識別１１を含む、複数の修正識別４００がある。この２つの修正識別は、修正レコード４２５および４３０の製品識別４０５からわかるように、ソフトウェア製品１のものである。修正識別は、この特定のソフトウェア修正を識別する、一意の識別子であることが好ましい。修正識別は、通常は番号であるが、修正識別は、１特定のソフトウェア修正を一意に識別するなんらかのしるしとすることができる。ソフトウェア修正用の一意の識別子の例として、「１００８」という修正識別を有するソフトウェア修正が、ＤＬＬの修正に使用されると仮定する。次の日に、この同一のＤＬＬを修正する、もう１つの修正が作成される（または、以前のソフトウェア修正が変更される）。この新しいソフトウェア修正には、おそらくは「１００９」または「１３００」などの新しい修正識別が与えられ、その結果、このソフトウェア修正が、前のソフトウェア修正から一意に識別される。
【００６６】
製品リリース４１０も、所望されるならば英数字とすることができる。製品と製品リリースは、目標システム１１０にどのソフトウェア製品がインストールされているかの識別には使用されない。その代わりに、これらは、ソフトウェア修正を適用可能なソフトウェア製品のリリースを識別するのに使用される。ソフトウェア製品目録１１７（下で説明する）によって、目標システムにインストールされたソフトウェア製品が識別される。
【００６７】
修正レベル識別４００または製品リリース４１０は、日付によって現在のバージョンを追跡できるように、日付を含めるようにすることができることに留意されたい。さらに、ソフトウェア修正目録１１２または修正レコード４２５ないし４３５には、修正識別、製品識別および製品リリースに付随する、日付などの別の要素を含めることができる。
【００６８】
ソフトウェア修正目録１１２から、目標システム１１０上のソフトウェア製品２についてインストールされた修正があることが示される。リリース２．０．０（製品リリース４１０に示されている）のソフトウェア製品２には、修正レコード４３５および４４０によって示されるように、２つのソフトウェア修正がある。ソフトウェア修正目録１１２には、第３のソフトウェア製品（ソフトウェア製品３）について目標システム１１０にインストールされたソフトウェア修正があることも示されている。修正識別４００が「Ｆｉｘ＿ＩＤ＿３」のソフトウェア修正は、リリース３．５．１の第３のソフトウェア製品のためにインストールされたものであり、修正レコード４４５に示されている。したがって、目標システム１１０は、３つのソフトウェア製品について修正をインストールされている。
【００６９】
ソフトウェア製品目録１１７は、目標システム１１０にインストールされているソフトウェア製品を示す。さらに、各ソフトウェア製品のリリースが示される。ソフトウェア製品目録１１７には、複数の製品レコード４２７、４３７、４４７および４５７が含まれる。各製品レコードには、製品識別４０５と製品リリース４１０が含まれる。ソフトウェア製品目録１１７には、リリース０．９．０のソフトウェア製品１、リリース２．０．０のソフトウェア製品２、リリース３．５．１のソフトウェア製品３およびリリース４．０．３のソフトウェア製品４がインストールされていることが示されている。
【００７０】
ソフトウェア製品目録１１７によれば、ソフトウェア製品４が目標システム１１０にインストールされていることに留意することが重要である。しかし、ソフトウェア修正目録１１２を観察することによれば、ソフトウェア製品４が目標システム１１０にインストールされていることの表示はない。表示がないのは、ソフトウェア製品４に関してソフトウェア修正がインストールされていないからである。この例から、ソフトウェア製品目録とソフトウェア修正目録が独立であることが好ましいことが示される。追加のソフトウェア製品は、これらの製品の修正をインストールせずにインストールすることができる。また、これらの目録を１つの目録に組み合わせることができることに留意されたい。たとえば、製品目録レコード４５７をソフトウェア修正目録１１２内に移動し、修正識別４００のフィールドを追加することができる。このフィールドが空白の場合には、この項目から、それが製品レコードであることを示すことができる。このフィールドに書き込まれている場合には、この項目が修正レコードであることを示すことができる。
【００７１】
優先ソフトウェア修正目録１４１には、優先修正レコード４５０ないし４６６が含まれる。優先ソフトウェア修正目録から、モデル・システムが、以下のソフトウェア製品について以下のソフトウェア修正をインストールされていることが示される。すなわち、優先修正レコード４５０によって示される、リリース０．９．０のソフトウェア製品１のための、「Ｆｉｘ＿ＩＤ＿１」によって識別される修正と、優先修正レコード４５５によって示される、リリース２．０．０のソフトウェア製品２のための、「Ｆｉｘ＿ＩＤ＿７」によって識別される修正と、優先修正レコード４６０および４６５によって示される、リリース３．５．１のソフトウェア製品３のための、「Ｆｉｘ＿ＩＤ＿３」および「Ｆｉｘ＿ＩＤ＿１３」によって識別される修正と、優先修正レコード４６６によって示される、リリース４．０．３のソフトウェア製品４のための、「Ｆｉｘ＿ＩＤ＿１４」によって識別される修正である。
【００７２】
優先ソフトウェア製品目録１４７には、４つの製品レコード４５２、４５３、４５４および４５６が含まれる。優先ソフトウェア製品目録１４７は、ソフトウェア製品目録１１７と同一の項目を有する。しかし、モデル・システムの優先ソフトウェア修正目録１４１は、ソフトウェア修正目録１１２と異なる。
【００７３】
修正リスト１６２は、ソフトウェア修正マネージャ１６１（図５または図７には図示せず）が、ソフトウェア修正目録１１２を優先ソフトウェア修正目録１４１と比較する時に作成される。修正リスト１６２には、複数のソフトウェア製品同期化４７７、４７９、４８０、４８１、４８２および４８３が含まれる。各ソフトウェア製品同期化には、修正レコード４６７とエクストラ表示４７０が含まれる。ソフトウェア修正マネージャ１６１は、ソフトウェア修正目録１１２からの各修正レコードを、優先ソフトウェア修正目録１４１からの各修正レコードと比較する。ソフトウェア修正目録１１２に、優先ソフトウェア修正目録１４１に存在しない修正レコードがある場合には、その修正レコードは、エクストラとしてマークされる。モデル・システム上にある（すなわち、優先ソフトウェア修正目録にある）が、目標システム上にない（すなわち、ソフトウェア修正目録にない）修正レコードがある場合には、このソフトウェア修正は、必要としてマークされる。
【００７４】
図７に加えて図５および６を参照すると、これらの図には、目標からのソフトウェア修正目録と優先ソフトウェア目録を比較し、修正リストを更新または作成するための好ましい方法が示されている。図５および６は、ソフトウェア修正マネージャによって実行され、基本的に、図３のステップ２３０および２４０に対応する。図５には、修正レコードを「必要」としてマークする時にソフトウェア修正マネージャが使用する方法５０００が示されている。ソフトウェア修正マネージャは、特定のリリースのソフトウェア製品用のソフトウェア修正が、優先ソフトウェア修正目録１４１にあるが目標システムの修正目録にない場合に、必要として修正レコードをマークし、その修正レコードを修正リスト１６２に配置する。修正を必要としてマークするために、この同期化のエクストラ表示を、無変更のままにする（たとえば、エクストラ表示は、たとえばＮＥＥＤＥＤの値を有するブール値とすることができる）。同期化の修正レコードを必要としてマークすることは、この修正レコードに対応するソフトウェア修正を目標システムにインストールしなければならないことを意味する。図６に、修正レコードを「エクストラ」としてマークする時にソフトウェア修正マネージャが使用する方法６０００を示す。修正レコードは、特定のリリースのソフトウェア製品用のソフトウェア修正が優先ソフトウェア修正目録１４１にないが、目標システムの修正目録にある場合に、エクストラとしてマークされ、修正リスト１６２に配置される。修正レコードをエクストラとしてマークするためには、この同期化のエクストラ表示を変更する（たとえば、エクストラ表示は、たとえばＥＸＴＲＡの値を有するブール値とすることができる）。同期化の修正レコードをエクストラとしてマークすることは、この修正レコードに対応するソフトウェア修正を目標システムからアンインストールするか除去しなければならないことを意味する。
【００７５】
図６の方法６０００は、目標システムの修正レコードが取り出される時に開始される。図７の優先修正レコード４５０が、図６のステップ６０１０で取り出される。図７の例では、最初に取り出される目標システムの修正レコードは、修正レコード４２５である。図６のステップ６０２０では、ソフトウェア修正マネージャが、修正レコード４２５の製品識別４０５および製品リリース４１０で示されるソフトウェア製品およびリリースが、モデル・システム上にあるかどうかを判定する。ソフトウェア製品およびリリースがモデル・システム上にあるかどうかを判定するために、ソフトウェア修正マネージャは、優先ソフトウェア製品目録１４７にアクセスし、修正レコード４２５のソフトウェア製品およびリリースと、優先ソフトウェア製品目録１４７のソフトウェア製品およびリリースの突合せを試みる。製品レコード４５２には、修正レコード４２５と同一の製品識別およびリリースが含まれるので、ソフトウェア修正マネージャは、図６のステップ６０３０に進む（ステップ６０２０のｙｅｓ）。ソフトウェア修正マネージャは、このステップで、修正がモデル・システムにインストールされているかどうかを判定する。これを行うために、ソフトウェア修正マネージャは、このソフトウェア製品およびリリースについて、修正レコード４２５の修正識別４００を優先ソフトウェア修正目録１４１の修正識別４００と比較する。優先修正レコード４５０は、修正レコード４２５と一致するので、ソフトウェア修正マネージャは、修正レコード４２５および優先修正レコード４５０に対応するソフトウェア修正が、目標システムにインストールされていることを知る（ステップ６０３０のｙｅｓ）。
【００７６】
ソフトウェア修正マネージャ１６１は、もう１つの目標システム修正レコードを取り出す（ステップ６０１０）が、これは、この例ではソフトウェア修正目録１１２（図７）の修正レコード４３０である。やはり、ソフトウェア修正マネージャは、修正レコード４３０の製品識別４０５および製品リリース４１０との一致について優先ソフトウェア製品目録１４７を探索することによって、修正レコード４３０に示されたリリースのソフトウェア製品がモデル・システムにインストールされているかどうかを判定する。この例では、ソフトウェア修正マネージャは、製品レコード４５２によって示されるように、このリリースのソフトウェア製品がモデル・システムにインストールされていると判定する（図６のステップ６０２０のｙｅｓ）。次に、ソフトウェア修正マネージャは、この修正がモデル・システムにインストールされていないと判定する（ステップ６０３０のｎｏ）。というのは、修正レコード４３０の「Ｆｉｘ＿ＩＤ＿１１」という修正識別４００が、優先修正レコード４５０の修正識別４００に対応しないからである。
【００７７】
図６のステップ６０４０では、ソフトウェア修正マネージャは、まず、エクストラとしてマークされた、修正レコード４３０に対応する同期化が、図７の修正リスト１６２に追加されているかどうかを判定する。ステップ６０４０のこの部分は、同一の修正を複数回修正リスト１６２に追加しないようにするために設計されている。エクストラとしてマークされた、修正レコード４３０に対応する同期化は、修正リスト１６２内で見つからないので、ソフトウェア修正マネージャは、ソフトウェア製品同期化４７７を修正リスト１６２に追加する。ソフトウェア修正マネージャは、修正レコード４３０を追加し、エクストラ表示４７０をＥＸＴＲＡとしてマークすることによって、ソフトウェア製品同期化４７７を修正リスト１６２に追加する。修正リスト１６２のエクストラ表示４７０の「Ｘ」は、このエクストラ表示に対応する修正レコード４６７が、ＥＸＴＲＡとしてマークされていることを示す。エクストラ表示４７０の空白は、このエクストラ表示に対応する修正レコード４６７が、ＮＥＥＤＥＤとしてマークされていることを示す。ソフトウェア製品同期化４７７は、可能である場合に、修正レコード４３０に対応するソフトウェア修正を除去しなければならないことを示す。ソフトウェア修正マネージャ１６１は、すべての目標システム修正レコードが比較されてはいないと判定し（ステップ６０５０のｎｏ）、ソフトウェア修正マネージャは、もう１つの目標システム修正レコードを取り出す（ステップ６０１０）。
【００７８】
ソフトウェア修正マネージャは、ソフトウェア修正目録１１２から修正レコード４３５を取り出し、修正レコード４３５に示されたリリース・レベルのソフトウェア製品が、モデル・システム上にあると判定する（図６のステップ６０２０のｙｅｓ）。というのは、これらの要素が、優先ソフトウェア製品目録１４７の製品レコード４５３の製品識別４０５および製品リリース４１０と一致するからである。ソフトウェア修正マネージャは、修正レコード４３５の修正識別４００が、優先修正レコード４５５の修正識別４００と一致しないので、この修正がモデル・システムにインストールされていないと判定する（ステップ６０３０）。ソフトウェア修正マネージャは、修正リスト１６２にソフトウェア製品同期化４８０を追加して（ステップ６０４０）、修正レコード４３５に対応するソフトウェア修正を、アンインストールまたは除去しなければならないことを示す（ソフトウェア製品同期化４８０のエクストラ表示４７０がＥＸＴＲＡとしてマークされていることに留意されたい）。すべての目標システム修正レコードが比較されてはいないので（ステップ６０５０のｎｏ）、ソフトウェア修正マネージャは、もう１つの目標システム修正レコードを取り出す。
【００７９】
方法６０００のステップに従って、ソフトウェア修正マネージャは、ソフトウェア修正目録１１２から修正レコード４４０を取り出し、この修正レコードに対応する修正がモデル・システムにインストールされていないと判定する。ソフトウェア修正マネージャは、ソフトウェア製品同期化４７９を追加して、修正レコード４４０に対応するソフトウェア修正を目標システム１１０から除去しなければならないことを示す。ソフトウェア修正マネージャは、最後の修正レコードである修正レコード４４５をソフトウェア修正目録１１２から取り出す。ソフトウェア修正マネージャは、修正レコード４４５が、優先ソフトウェア修正目録１４１の優先修正レコード４６０と正確に一致するので、この修正レコードに対応するソフトウェア修正が、モデル・システムにインストールされていると判定する（ステップ６０３０のｙｅｓ）。ソフトウェア修正マネージャは、ステップ６０１０で検査する目標システム修正レコードがない場合にこの方法を終了するので、この時点で方法６０００を終了する。
【００８０】
ソフトウェア修正マネージャは、目標システム１１０のソフトウェア修正目録１１２のすべての修正レコードを検査した。また、ソフトウェア修正マネージャは、優先ソフトウェア修正目録１４１の修正レコードを比較して、修正リスト１６２に追加する。ソフトウェア修正マネージャは、方法５０００を使用して、この比較を実行する。ソフトウェア修正マネージャが、この２つの方法すなわち方法５０００および６０００を実行する順序は、無関係であることに留意されたい。
【００８１】
方法５０００は、ソフトウェア修正マネージャが、優先ソフトウェア修正目録１４１から優先修正レコードを取り出す時に開始される（ステップ５０１０）。ソフトウェア修正マネージャは、たとえば優先修正レコード４５０を選択する。ソフトウェア修正マネージャは、ステップ５０２０で、優先修正レコード４５０で与えられるリリースのソフトウェア製品が、目標システムにインストールされているかどうかを判定する。ソフトウェア修正マネージャは、ソフトウェア製品目録１１７にアクセスし、製品レコード４２７が、優先修正レコード４５０が有するものと同一の製品識別４０５および製品リリース４１０を有すると判定する（ステップ５０２０のｙｅｓ）。ソフトウェア修正マネージャは、次に、優先修正レコード４５０に対応するソフトウェア修正が、目標システムにインストールされているかどうかを判定する（ステップ５０３０）。このステップを実行するために、ソフトウェア修正マネージャは、優先修正レコード４５０の修正識別４００（「Ｆｉｘ＿ＩＤ＿１」）を、優先修正レコード４５０に示された製品識別およびリリースに対応するソフトウェア修正目録１１２の修正識別４００と比較する。修正レコード４２５は、優先修正レコード４５０と正確に一致するので、ソフトウェア修正マネージャは、この修正が目標システムにインストールされていると判定する（ステップ５０３０のｙｅｓ）。
【００８２】
ソフトウェア修正マネージャは、ステップ５０１０でもう１つの優先修正レコードを取り出す。今回は、ソフトウェア修正マネージャは、優先修正レコード４５５を取り出す。優先修正レコード４５５に示されたリリースのソフトウェア製品は、ソフトウェア製品目録１１７の製品レコード４３７によって示されるように、目標システムにインストールされている（ステップ５０２０のｙｅｓ）。ソフトウェア修正マネージャは、ステップ５０３０で、優先修正レコード４５５に対応するソフトウェア修正が、目標システムにインストールされているかどうかを判定する。やはり、ソフトウェア修正マネージャは、優先修正レコード４５５の「Ｆｉｘ＿ＩＤ＿３」という修正識別４００を、ソフトウェア修正目録１１２の修正レコード４３０および４３５の修正識別４００と比較する。これらの２つの修正レコードは、リリース・レベル２．０．０のソフトウェア製品２に対応するただ２つの修正レコードである。ソフトウェア修正マネージャは、これら２つの修正レコードの修正識別のどちらもが、優先修正レコード４５５の修正識別４００に対応しないと判定する（ステップ５０３０のｎｏ）。ソフトウェア修正マネージャは、ステップ５０４０の第１の部分で、優先修正レコード４５５について修正リスト１６２を探索することによって、この修正がすでに追加されているかどうかを判定する。この場合には、一致は見つからない。ソフトウェア修正マネージャは、ソフトウェア製品同期化４８１の修正レコード４６７に優先修正レコード４５５を追加することと、ソフトウェア製品同期化４８１のエクストラ表示４７０をＮＥＥＤＥＤとしてマークする（図７の例では、空白のエクストラ表示４７０によって示される）ことによって、修正リスト１６２にソフトウェア製品同期化４８１を追加する。ソフトウェア修正マネージャは、すべての優先修正レコードを比較してはいないと判定し（ステップ５０４０のｎｏ）、次の優先修正レコードを取り出す。
【００８３】
方法５０００のステップに従って、ソフトウェア修正マネージャは、優先修正レコード４６０に対応するソフトウェア製品修正が、目標システムにすでに追加されていると判定する（優先修正レコード４６０は修正レコード４４５と正確に一致する）。ソフトウェア修正マネージャは、修正レコード４４５の修正識別４００と優先修正レコード４６６の修正識別４００が一致しないので、優先修正レコード４６５に対応するソフトウェア製品修正が、目標システム１１０にインストールされていないと判定する。したがって、ソフトウェア修正マネージャは、ソフトウェア製品同期化４８２を修正リスト１６２に追加する。ソフトウェア製品同期化４８２は、優先修正レコード４６５に対応するソフトウェア製品修正を目標システム１１０にインストールしなければならない（ソフトウェア製品同期化４８２のエクストラ表示４７０がＮＥＥＤＥＤとしてマークされているので）ことを示す。
【００８４】
最後に、ソフトウェア修正マネージャは、ソフトウェア製品同期化４８３のソフトウェア製品識別およびリリース・レベルを、ソフトウェア製品目録１１７の製品レコードのソフトウェア製品識別およびリリース・レベルと比較する（ステップ５０２０）。ソフトウェア修正マネージャは、この処理を介して、リリース４．０．３のソフトウェア製品４が目標システムにインストールされていると判定する（ステップ５０２０のｙｅｓ）。ソフトウェア修正マネージャは、ソフトウェア修正目録１１２内で「製品４」というソフトウェア製品識別を有する修正レコードを突きとめることができないので、優先修正レコード４６６に対応するこのソフトウェア修正が、目標システム１１０にインストールされていないと判定する（ステップ５０３０のｎｏ）。したがって、ソフトウェア修正マネージャは、ソフトウェア製品同期化４８３を追加して、優先修正レコード４６６に対応するソフトウェア製品修正をインストールしなければならないことを示す（エクストラ表示４７０をＮＥＥＤＥＤとしてマークすることによって）（ステップ５０４０）。すべての優先修正レコードを比較したので、ステップ５０４０で、ソフトウェア修正マネージャは方法５０００を終了する。
【００８５】
ソフトウェア修正マネージャは、（図５の方法５０００および図６の方法６０００の変更版を介して）ソフトウェア製品目録１１７を優先ソフトウェア製品目録１４７と比較して、異なる修正リストを作成するか、修正リスト１６２に要素を追加することもできることに留意されたい。図７の例では、これらの２つのソフトウェア製品目録のすべての要素が同一である。しかし、モデル・システムが、たとえばソフトウェア製品５をインストールされ、目標システムが、この製品をインストールされていない場合には、この製品を目標システムにインストールしなければならないことを示す項目を、修正リスト内に作ることができる。同様に、目標システムがソフトウェア製品５をインストールされ、モデル・システムがそうでない場合には、この製品を目標システムからアンインストールしなければならないことを示す項目を、修正リスト内に作ることができる。
【００８６】
図５および６に加えて図８を参照すると、図８には、修正リスト１６２の追加項目を作成するために優先ソフトウェア修正目録１４１と比較される、目標システム１２０（図８には図示せず）のソフトウェア修正目録１２２が示されている。目標システム１２０のソフトウェア製品目録１２７と、モデル・システム１４０の優先ソフトウェア製品目録１４７も示されている。前に述べたように、この例の修正リスト１６２は、すべての目標コンピュータのすべての修正の和集合である。優先ソフトウェア修正目録は、すでに目標システム１２０のソフトウェア修正目録１１２と比較されているので、ソフトウェア製品同期化４７７ないし４８３が、現在修正リスト１６２に存在する。
【００８７】
ソフトウェア修正目録１２２は、２つの修正レコード５１０および５２０を有する。修正レコード５１０は、ソフトウェア製品３（製品識別４０５に示される）の「Ｆｉｘ＿ＩＤ＿１０」という修正識別４００に対応するソフトウェア製品修正が、３．７．０の製品リリース４１０でインストールされていることを示す。修正レコード５２０は、ソフトウェア製品４（製品識別４０５に示される）の「Ｆｉｘ＿ＩＤ＿１２」という修正識別４００に対応するソフトウェア製品修正が、４．０．３の製品リリース・レベルでインストールされていることを示す。
【００８８】
ソフトウェア製品目録１２７から、２つのソフトウェア製品がインストールされている（製品レコード５２８および５２９の製品識別４０５によって示される、ソフトウェア製品３およびソフトウェア製品４）ことが示される。これらの製品は、製品レコード５２８および５２９の製品リリース４１０によって示されるように、それぞれリリース・レベル３．７．０および４．０．３である。
【００８９】
ソフトウェア修正マネージャが、図５の方法５０００を実行して、必要な修正レコードを修正リスト１６２に追加する時に、ソフトウェア修正マネージャは、ステップ５０１０で、優先修正レコード４５０を取り出す。このソフトウェア製品（ソフトウェア製品１）は、ソフトウェア製品目録１２７によって示されるように、目標システム１２０にインストールされていないので（図５のステップ５０２０のｎｏ）、ソフトウェア修正マネージャは、ステップ５０１０で優先修正レコード４５５を取り出す。ソフトウェア製品２は、目標システム１２０にインストールされていないので、ソフトウェア修正マネージャは、優先修正レコード４６０を取り出す。この優先修正レコードに関して、この優先修正レコードの修正識別４００は、製品レコード５２８の修正識別４００と一致する。しかし、優先修正レコード４６０のリリースは、製品レコード５２８のリリースと一致しない。したがって、ソフトウェア修正マネージャは、優先修正レコード４６０に示されたリリースのソフトウェア製品が、目標システム１２０にインストールされていないと判定する（ステップ５０２０のｎｏ）。ソフトウェア修正マネージャは、優先修正レコード４６５を取り出す（ステップ５０１０）が、この優先修正レコード４６５は、優先修正レコード４６０と同一の製品リリース４１０を有する。したがって、ソフトウェア修正マネージャは、優先修正レコード４６０に示されたリリースのソフトウェア製品が、目標システム１２０にインストールされていないと判定する（ステップ５０２０のｎｏ）。
【００９０】
ソフトウェア修正マネージャは、最後の優先修正レコードである優先修正レコード４６６を取り出す。この優先修正レコードのソフトウェア製品およびリリースは、製品レコード５２９の製品識別４０５および製品リリース４１０と一致する（ステップ５０２０のｙｅｓ）。ソフトウェア修正マネージャは、優先修正レコード４６６の修正識別４００が、修正レコード５２０の修正識別４００と一致しないので、優先修正レコード４６６に対応するソフトウェア製品修正が、目標システム１２０にインストールされていないと判定する（ステップ５０３０のｎｏ）。ソフトウェア修正マネージャは、同期化がすでに修正リスト１６２に追加されているかどうかを調べる（ステップ５０４０）。この場合には、同期化はすでにソフトウェア製品同期化４８３として追加されている。したがって、ソフトウェア修正マネージャは、ソフトウェア製品同期化４８３（優先修正レコード４６６に対応する）がすでに修正リスト１６２内に存在するので、修正リスト１６２に別の同期化を追加しない。ソフトウェア修正マネージャは、すべての優先修正レコードが比較されたと判定し（ステップ５０５０）、方法５０００を終了する。
【００９１】
ソフトウェア修正マネージャが、図６の方法６０００を走行させて、修正リスト１６２に余分な修正を追加する時には、ソフトウェア修正マネージャは、ソフトウェア修正目録１２２（図８に図示）から修正レコード５１０を取り出す（ステップ６０２０）ことによって開始する。ソフトウェア修正マネージャは、このソフトウェア製品（修正レコード５１０の製品識別４０５によって示される、製品３）がモデル・システムにインストールされているが、修正レコード５１０の製品リリース４１０が、優先ソフトウェア製品目録１４７の製品レコード４５４の製品リリース４１０と一致しないと判定する。したがって、ソフトウェア修正マネージャは、このリリース（３．７．０）のこのソフトウェア製品が、モデル・システムにインストールされていないと判定する（ステップ６０２０のｎｏ）。
【００９２】
ソフトウェア修正マネージャは、ステップ６０１０で、最後の修正レコードである修正レコード５２０を取り出す。ソフトウェア修正マネージャは、修正レコード５２０によって示されるソフトウェア製品およびリリースが、モデル・システムにインストールされていると判定する（ステップ６０２０のｙｅｓ）。ソフトウェア修正マネージャがこのように判定するのは、修正レコード５２０と優先ソフトウェア製品目録１４７の製品レコード４５６の間で製品識別とリリースの両方が一致するからである。さらに、修正レコード５２０に対応するソフトウェア製品修正は、修正レコード５２０の修正識別４００が優先修正レコード４６６の修正識別４００と一致しないので、モデル・システムにインストールされていない（ステップ６０３０のｎｏ）。したがって、ソフトウェア修正マネージャは、修正レコード５２０に対応する同期化が、修正リストに追加されていないと判定し、ソフトウェア修正マネージャは、ソフトウェア製品同期化５８４を修正リスト１６２に追加する（ステップ６０４０）。この同期化は、修正レコード５２０に対応するソフトウェア製品修正を除去しなければならない（ソフトウェア製品同期化５８４のエクストラ表示４７０をＥＸＴＲＡとしてマークすることによって示される）ことを示す。その後、ソフトウェア修正マネージャは、すべての目標システム修正レコードを比較したと判定した時に（ステップ６０５０のｙｅｓ）、方法６０００を終了する。
【００９３】
ソフトウェア修正マネージャが、優先ソフトウェア製品目録１４７を目標システム１２０のソフトウェア製品目録１２７と比較するようにすることができることに留意されたい。優先ソフトウェア製品目録１４７の製品レコード４５２ないし４５６のそれぞれを、ソフトウェア製品目録１２７の製品レコード５２８および５２９のそれぞれと比較することによって、ソフトウェア製品１および２が、目標システムにインストールされていないことを判定することができる。ソフトウェア修正マネージャは、修正リスト１６２に追加（または新規の修正リストを作成）し、これらのリリース・レベルのソフトウェア製品をインストールしなければならないことを示すことができる。同様に、ソフトウェア製品５が、目標システム１２０にインストールされたが、モデル・システム１４０にインストールされていない場合には、ソフトウェア修正マネージャは、ソフトウェア製品５をアンインストールしなければならないことを示すことができる。
【００９４】
したがって、図７および８から、ソフトウェア製品同期化の修正リストを作成するために複数のソフトウェア修正目録を優先ソフトウェア修正目録と比較するソフトウェア修正マネージャ１６１が示される。これらの例の修正リスト１６２は、優先ソフトウェア修正目録と目標システムからの複数の個々のソフトウェア目録との間の差から導出されるソフトウェア製品同期化の和集合である。修正リスト１６２は、１つの目標システムだけのための同期化になるように設計することができるが、ネットワーク・トラフィックが減り（たとえば、複数のコンピュータに複数の修正リストを送るのではなく、すべてのコンピュータに１つの和集合が送られる）、比較と修正リスト作成時間が減るので、和集合が好ましい。
【００９５】
修正リスト１６２が、これら２つの目標システムについて完了したので、この修正リストが、各目標システムに送られる。目標システムの更新コントローラのそれぞれが、修正リストをそれ自体のソフトウェア修正目録と比較する。比較の後に、各更新コントローラは、エクストラとしてマークされた修正またはソフトウェア製品のアンインストールまたは除去を試み、必要としてマークされたソフトウェア製品同期化のソフトウェア製品のインストールを試みる。
【００９６】
たとえば、図９では、目標システム１１０が、修正リスト１６２を受け取っている。目標システム１１０の現在のソフトウェア修正目録１１２およびソフトウェア製品目録１１７が、修正リスト１６２と共に図９に示されている。この図の最上部１２００の目録は、更新コントローラが目標システムを更新する前の目標システム１１０のソフトウェア製品目録１２７およびソフトウェア修正目録１２２を示し、この図の最下部１２１０の目録は、更新コントローラが目標システムを更新した後のソフトウェア製品目録１２７およびソフトウェア修正目録１２２を示す。
【００９７】
ソフトウェア修正目録およびソフトウェア製品目録は、複数の形で存在することができることに留意することが重要である。オペレーティング・システムが、これらの目録を保守し、これらの目録が、常に存在し、使用可能であることが好ましい。したがって、更新コントローラがその目標コンピュータに同期化を適用する際に、その目標コンピュータのオペレーティング・システムが、ソフトウェア製品目録１１７およびソフトウェア修正目録１１２を更新する。更新コントローラが、コンピュータに問い合わせてこれらのソフトウェア目録を作成する必要があるシステムの場合、図９および１０に示されたソフトウェア目録は、一時的なものになる。これらは、おそらくは、目標システムに対する更新の前と更新中だけに存在する。所望される場合には、更新コントローラが、これらの目録を永続的にすることができ、これらの目録を変更するようにすることができる。
【００９８】
本発明が、オペレーティング・システムを使用して、ソフトウェア修正（および、所望される場合にはソフトウェア製品）を除去し、インストールすることに留意することも重要である。ソフトウェア修正のインストールの場合、更新コントローラは、ソフトウェア修正をオペレーティング・システムに渡し、オペレーティング・システムにそのソフトウェア修正をインストールするように指示し、オペレーティング・システムは、インストールを行う。同様に、ソフトウェア修正のアンインストールの場合、更新コントローラは、ソフトウェア修正をオペレーティング・システムに渡し、オペレーティング・システムにそのソフトウェア修正をアンインストールするように指示し、オペレーティング・システムは、アンインストールを行う。図９には示されていないが、修正リスト１６２は、所望されるならば、走行させるインストール・プログラムまたはアンインストール・プログラムを示すことができる。このプログラムは、更新コントローラによってオペレーティング・システムに渡され、更新コントローラは、オペレーティング・システムにインストールまたはアンインストールを実行するように指示し、オペレーティング・システムは、インストール・プログラムまたはアンインストール・プログラムを走行させる。ソフトウェア製品の場合、更新コントローラは、同様に、オペレーティング・システムにそのソフトウェア製品をインストールまたはアンインストールするように指示する。本発明は、圧縮ありまたは圧縮なしで、複数のソフトウェア修正を１つの大きいファイルにまとめた「フィックス・パック」を含むように拡張することができる。最後に、所望されるならば、ソフトウェア修正および製品のインストール・ファイルまたはアンインストール・ファイル自体を、修正リスト１６２と共に目標に送ることができる。
【００９９】
目標システム１１０は、ソフトウェア製品目録１１７を介して、特定の製品リリース４１０のソフトウェア製品１、２、３および４（製品識別４０５によって示される）をインストールされていることを示す。したがって、更新コントローラ１１１は、修正リスト１６２を調べ、これらのリリースのこれらのソフトウェア製品のいずれかに関する同期化を探す。その後、更新コントローラは、目標システム１１０に適用可能な、修正リスト１６２内のソフトウェア製品同期化を判定することができる。修正リスト１６２内の同期化のいずれかが目標システムに適用可能である場合には、ソフトウェア修正目録１１２の修正レコード４２５ないし４４５を、修正リスト１６２のソフトウェア製品同期化４７７ないし４８３および５８４のそれぞれの修正レコード４６７と比較することによって、第２の適用可能性判定が行われる。修正リスト１６２の各修正レコード４６７は、その修正レコードに対応するソフトウェア製品修正を除去する場合には、ソフトウェア修正目録１１２の修正レコードと一致しなければならない。ソフトウェア製品修正のインストールの場合、ソフトウェア製品目録１２７の修正レコードの製品識別４０５および製品リリース４１０が、修正リストの修正レコードの製品識別およびリリースと一致しなければならず、これら２つの修正レコードの修正識別が一致してはならない。これを、下で詳細に説明する。
【０１００】
ソフトウェア製品同期化４７７の修正レコード４３０は、ソフトウェア修正目録１１２の修正レコード４３０と一致するので、更新コントローラは、可能であれば、この修正レコードに対応するソフトウェア製品修正の除去を試みる。この場合の一致は、各修正レコードのすべての要素（修正識別４００、製品識別４０５および製品リリース４１０）が同一であることを意味する。同様に、ソフトウェア製品同期化４８０の修正レコード４３５は、ソフトウェア修正目録１１２の修正レコード４３５と一致するので、更新コントローラは、この修正レコードに対応するソフトウェア製品修正の除去を試みる。最後に、ソフトウェア製品同期化４７９の修正レコード４４０は、ソフトウェア修正目録１１２の修正レコード４４０と一致するので、更新コントローラは、この修正レコードに対応するソフトウェア製品修正の除去を試みる。
【０１０１】
ソフトウェア同期化が、必要としてマークされている時には、更新コントローラは、各修正レコード４２５ないし４４５の製品識別４０５および製品リリース４１０と、ソフトウェア製品目録１１７の各製品レコード４２７ないし４５７の製品識別４０５および製品リリース４１０とを比較し、突合せを試みる。この例では、ソフトウェア製品同期化４８１、４８２および４８３が、それぞれ、ソフトウェア製品２、３および４に関するものである。これらの修正レコードの修正リスト１６２のエクストラ表示は、ＮＥＥＤＥＤとしてマークされ（すなわち、マークを解除され）、これらの特定のソフトウェア製品を目標システム１１０にインストールしなければならないことが示されるので、更新コントローラは、これらの修正レコードを、ソフトウェア製品目録１１７の製品レコードと比較する。修正レコードと製品レコードの製品識別およびリリースが一致する場合には、更新コントローラは、修正リスト１６２の修正レコード４６７に対応するソフトウェア修正をインストールする。これに対する警告の１つが、修正リストとソフトウェア修正目録の両方の修正レコードが、ＮＥＥＤＥＤとしてマークされたソフトウェア修正に関して正確に一致する（すなわち、製品識別およびリリースの一致に加えて、修正レコードの修正識別４００の両方が一致する）時である。この場合、そのソフトウェア製品修正は、目標システムにすでにインストールされており、更新コントローラは、修正の再インストールを無視するか、同期化を適用し、修正をインストールするかのいずれかを行うことができる。
【０１０２】
したがって、更新コントローラは、目標システム１１０の適用可能な同期化が、ソフトウェア製品同期化４７７ないし４８３であると判定している。また、更新コントローラは、ソフトウェア修正目録１１２に修正レコード５２０が含まれないので、ソフトウェア製品同期化５８４が目標システム１１０に適用可能でないと判定している。前に述べたように、修正レコードに対応するソフトウェア製品修正を目標システムから除去するためには、同期化の修正レコード４６７が、目標のソフトウェア修正目録の修正レコードと正確に一致しなければならない。図８からわかるように、修正レコード５２０は、「Ｆｉｘ＿ＩＤ＿１６」という修正識別４００を有する。ソフトウェア修正目録１１２の修正レコードのどれもが、この修正識別に一致しない。したがって、更新コントローラ１１１は、修正レコード５２０（したがって、ソフトウェア製品同期化５８４）が、目標システム１１０に適用可能ではないと判定する。
【０１０３】
修正レコード４２５に対応するソフトウェア修正に影響する同期化がないので、オペレーティング・システムは、ソフトウェア修正目録１１２の修正レコード４２５を変更しない。これは、図９の最下部１２１０のソフトウェア修正目録１１２に示されており、ここでは、修正レコード４２５が変更されていない。
【０１０４】
更新コントローラ１１１は、エクストラ表示４７０でエクストラとしてマークされているソフトウェア製品同期化４７７に基づいて、修正レコード４３０に対応するソフトウェア製品修正をアンインストールしなければならないと判定する。更新コントローラが、この情報をオペレーティング・システムに渡し、オペレーティング・システムが、ソフトウェア修正の除去を試みることが好ましい。したがって、更新コントローラは、このソフトウェア製品に関する、ソフトウェア製品同期化４７７に対応するソフトウェア製品修正を除去しなければならないことをオペレーティング・システムに知らせる。この例では、オペレーティング・システム（または、オペレーティング・システムが走行させるアンインストール・プログラム）が、修正レコード４３０に対応するソフトウェア修正を除去することができた。オペレーティング・システムは、ソフトウェア修正目録１１２を変更して、修正レコード４３０に対応するソフトウェア修正が、もはや目標システム１１０に存在しないことを示す。したがって、図９の最下部１２１０のソフトウェア修正目録１１２には、もはや修正レコード４３０が含まれない。
【０１０５】
同様に、ソフトウェア製品同期化４７９に従って、更新コントローラ１１１は、修正レコード４４０に対応するソフトウェア修正を除去しなければならないことをオペレーティング・システムに知らせる。この例では、修正レコード４４０に対応するソフトウェア修正が、オペレーティング・システムによって除去された。したがって、図９の最下部１２１０のソフトウェア修正目録１１２には、修正レコード４４０が含まれない。
【０１０６】
次に、ソフトウェア製品同期化４８０に従って、更新コントローラは、修正レコード４３５に対応するソフトウェア修正を除去しなければならないことをオペレーティング・システムに知らせる。この例では、修正レコード４３５に対応するソフトウェア修正は、オペレーティング・システムがそのソフトウェア製品修正を除去しようとした時にエラーがあったので削除されなかった。このエラーは、たとえば、ソフトウェア製品修正を除去することが不可能であった（たとえば、ソフトウェア修正によって新しいＤＬＬがインストールされ、以前のＤＬＬがシステム上になかった場合）か、アンインストールが開始されたが失敗した（たとえばディスク空間の不足）という条件である可能性がある。したがって、図９の最下部１２１０のソフトウェア修正目録１１２には、まだ修正レコード４３５が含まれる。
【０１０７】
アンインストールまたは除去は、インストールの前に行われることに留意されたい。これは、除去およびインストールの推奨される方法である。所望される場合には、追加のインストールまたは除去の指示を修正リスト１６２内に設けることができる。現在、修正リスト１６２には、インストールまたはアンインストールの順序は、どのような種類のものも含まれない。しかし、更新コントローラ１１１は、一般に、１特定のソフトウェア製品の修正または製品をインストールする前に、余分な製品のすべてをアンインストールする。たとえば、修正レコード４３０および優先修正レコード４５０に対応するソフトウェア修正は、通常は、優先修正レコード４５５に対応するソフトウェア修正がインストールされる前にアンインストールされる（下で説明する）。必要な場合には、インストールまたはアンインストールの順序を有することが非常に重要である場合に、その順序を修正リスト１６２に配置することができる。
【０１０８】
次に、更新コントローラ１１１は、ソフトウェア修正目録１１２の修正レコードを修正リスト１６２と比較することによって、ソフトウェア製品同期化４８１、４８２および４８３を目標システム１１０に適用しなければならないと判定する。これらの同期化を目標システム１１０に適用するために、更新コントローラ１１１は、これらの同期化に対応するソフトウェア修正をソース・システムから取り出す。基本的に、更新コントローラは、それぞれソフトウェア製品同期化４８１、４８２および４８３に対応する優先修正レコード４５５、４６５および４６６を用いてソース・システムに連絡する。ソース・システムは、これらの修正レコードを使用して、これらの修正レコードに対応するソフトウェア修正を突きとめる。その後、ソース・システムは、これらのソフトウェア修正を更新コントローラに送る。更新コントローラは、ソフトウェア修正を受け取り、ソフトウェア修正をインストールしなければならないことをオペレーティング・システムに知らせ、オペレーティング・システムは、ソフトウェア修正をインストールする。この例では、これらのソフトウェア修正のインストール中に問題が発生せず、３つのソフトウェア修正のすべてがインストールされた。オペレーティング・システムは、優先修正レコード４５５、４６５および４６６をソフトウェア修正目録１１２に追加した。この更新されたソフトウェア修正目録が、図９の最下部１２１０に示されている。
【０１０９】
ソフトウェア製品目録１１７が変更されていないことに留意されたい。図９の最上部１２００のソフトウェア製品目録１１７（同期化の前のソフトウェア製品目録）と、図９の最下部１２１０の同一の製品目録（同期化の後のソフトウェア製品目録）によって示されるように、このソフトウェア製品目録に対しては、変更が行われていない。前に述べたように、この目録は、ソフトウェア修正目録１１２とは別で、別個であることが好ましい。ソフトウェア製品目録１１７に対する変更は、新しいソフトウェア製品が追加または除去された時に行われる。所望される場合には、本発明を、ソフトウェア製品のインストールまたは除去を行うようにすることができる。
【０１１０】
図１０に移ると、目標システム１２０のソフトウェア修正目録１２２が、ソフトウェア製品目録１２７と共に示されている。さらに、修正リスト１６２と、新しいソフトウェア修正目録が示されている。図１０の最上部１２２０の目録は、更新コントローラ１２１（図示せず）が修正リスト１６２を使用して目標システム１２０を更新する前の、元のソフトウェア製品目録および修正目録を示す。図１０の最下部１２３０の目録は、目標システム１２０の更新の後の、結果の目録を示す。
【０１１１】
図１の更新コントローラ１２１は、修正リストの修正レコードの製品識別およびリリースを、ソフトウェア製品目録１２７の製品レコード５２８および５２９の製品識別およびリリースと比較する。これらのうちのいずれかが一致する場合には、修正リストのうちで、一致する製品識別およびリリースを有する修正レコードを、ソフトウェア修正目録１２２の修正レコードと比較して、どのソフトウェア製品同期化をそのシステムに適用可能であるかをさらに判定する。同期化から、修正レコードに対応するソフトウェア修正をアンインストールしなければならないことが示される場合には、ソフトウェア修正目録と修正リストの間で修正レコードが一致しなければならない。同期化から、修正レコードに対応するソフトウェア修正をインストールしなければならないことが示される場合には、ソフトウェア修正目録の修正レコードを、同期化の修正レコードと比較して、その修正がすでにインストールされているかどうかを調べる。修正がインストールされていない場合には、その修正を取り出し、インストールする。
【０１１２】
この例では、更新コントローラ１２１は、ソフトウェア製品同期化４７７ないし４８１が、ソフトウェア製品１および２に関するものなので、これらの同期化が目標システム１２０に適用されないと判定している。さらに、ソフトウェア製品同期化４８２は、優先修正レコード４６５の製品リリース４１０が３．５．１であるのに対して、ソフトウェア製品目録１２７の製品レコード５２８および５２９から、このリリースのソフトウェア製品３が目標システム１２０にインストールされていないことが示されるので、目標システム１２０には適用されない。リリース３．７．０のソフトウェア製品３が、目標システム１２０にインストールされているが、修正レコードに対応するソフトウェア修正をアンインストールまたはインストールするためには、製品識別４０５と製品リリース４１０の両方が一致しなければならない。したがって、更新コントローラ１２１は、ソフトウェア製品３のソフトウェア修正を無変更のまま残し、オペレーティング・システムは、同様に、ソフトウェア修正目録１２２を無変更のままにする。これが図１０に示されており、修正レコード５１０が、図１０の最上部１２２０のソフトウェア修正目録１２２（同期化の前のソフトウェア修正目録１２２である）と、図１０の最下部１２３０のソフトウェア修正目録１２２（同期化の後のソフトウェア修正目録１２２である）の両方にある。
【０１１３】
更新コントローラは、ソフトウェア製品同期化４８３およびソフトウェア製品同期化５８４が、その目標システム１２０に適用可能であると判定する。ソフトウェア製品同期化４８３からは、優先修正レコード４６６に対応するソフトウェア修正をインストールしなければならないことが示される。この修正レコードの製品識別およびリリースは、ソフトウェア製品目録１２７の製品レコード５２９の製品識別およびリリースに対応する。さらに、ソフトウェア修正目録１２２の探索から、この目録に優先修正レコード４６６と一致する修正レコードがないことが示される。したがって、この修正レコードに対応するソフトウェア修正が、インストールされる。また、更新コントローラは、修正レコード５２０が、その目標システムに適用可能であると判定する。やはり、この修正レコードの製品識別およびリリースは、ソフトウェア製品目録１２７の製品レコード５２９の製品識別およびリリースに対応する。ソフトウェア修正目録１２２の探索から、ソフトウェア製品同期化５８４の修正レコードに対応する修正目録内の修正レコード（修正レコード５２０）が見つかる。したがって、この修正レコードに対応するソフトウェア修正が、アンインストールされる。
【０１１４】
しかし、更新コントローラ１２１が、この修正レコードに対応する修正のアンインストールを試みる時に、アンインストールが失敗する。したがって、オペレーティング・システムは、修正レコード５２０を無変更のまま残し、この修正レコードに対応するソフトウェア修正がまだインストールされていることを示す。最後に、更新コントローラは、優先修正レコード４６６に対応するソフトウェア修正を、ソース・システムに要求する。更新コントローラは、このソフトウェア修正を含むファイルを受け取り、このソフトウェア修正をインストールする必要があることをオペレーティング・システムに知らせる。オペレーティング・システムは、この情報を用いて、図１０の最下部１２３０のソフトウェア修正目録１２２に示される優先修正レコード４６６として、新しいソフトウェア修正目録１２２を更新する。この時点で、更新コントローラ１２１は、その状況についてソフトウェア修正マネージャ１６１に知らせることができることに留意されたい。この場合の状況では、エラーが発生し、修正レコード５２０に対応するソフトウェア修正がアンインストールされなかったことが示されるはずである。
【０１１５】
最後の注記として、本発明は、ソフトウェア製品をインストールまたは除去するようにすることができる。たとえば、修正リスト１６２によって、特定のリリース・レベルのソフトウェア製品２をインストールしなければならないことを示すことができる。更新コントローラは、この修正（完全なソフトウェア製品になるはずである）を受け取ることができ、その後、その修正を実行してソフトウェア製品２をインストールするようにオペレーティング・システムに指示することが好ましい。更新コントローラは、その後、製品レコードをソフトウェア製品目録１２７に追加して、新たにインストールされたソフトウェア製品を示すことができる。この製品が、前にインストールされている場合には、更新コントローラは、修正リストにそのリリース・レベルのこの製品に関する修正があるかどうかを判定し、そうである場合に、更新コントローラは、新たにインストールされる製品の修正をインストールすることができる。
【０１１６】
前の例で示したように、本発明の好ましい実施形態では、ネットワーク内でソフトウェアを同期化するための方法および装置を説明した。優先ソフトウェア修正目録をネットワーク内の１つまたは複数のコンピュータからのソフトウェア目録と比較することによって修正リストを生成するソフトウェア修正マネージャを、ネットワーク内のコンピュータ上で走行する更新マネージャと組み合わせることによって、強力な同期化システムが作成される。これによって、複数のコンピュータまたはコンピュータのグループを、１つの優先ソフトウェア修正目録（好ましくは、モデル・システムにソフトウェアをインストールし、除去し、テストすることによって作成される）を用いて同期化することができるようになる。
【０１１７】
本発明の好ましい実施形態に関して本発明を具体的に図示し、説明してきたが、本発明の主旨および範囲から逸脱せずに、形態および詳細にさまざまな変更を加えることができることを、当業者は理解するであろう。たとえば、ソフトウェア修正マネージャまたは更新コントローラもしくはその両方を、夕方、夜間または週末に比較と同期化をスケジューリングするようにすることができる。もう１つの例として、更新コントローラを、更新の前にエラーについてコンピュータのハード・ドライブを検査し、更新の後に一時ファイルを削除するなど、更新のためにシステムを準備し、更新後の機能を実行するようにすることができる。
【０１１８】
まとめとして、本発明の構成に関して以下の事項を開示する。
【０１１９】
（１）少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサに結合されたメモリと、
目標コンピュータ上の少なくとも１つのソフトウェア製品のための少なくとも１つのソフトウェア製品同期化を判定するために、前記目標コンピュータのソフトウェア目録を優先ソフトウェア目録と比較する、前記メモリ内に常駐するソフトウェア修正マネージャと
を含む、ソフトウェアを同期化するための装置。
（２）前記少なくとも１つのソフトウェア製品同期化を前記目標コンピュータに適用する、前記メモリ内に常駐する更新コントローラをさらに含む、上記（１）に記載の装置。
（３）前記ソフトウェア目録が、前記目標コンピュータ上の少なくとも１つのソフトウェア製品の少なくとも１つの修正レコードを含むソフトウェア修正目録を含み、前記優先ソフトウェア目録が、少なくとも１つのソフトウェア製品の少なくとも１つの優先修正レコードを含む優先ソフトウェア修正目録を含む、上記（１）に記載の装置。
（４）各修正レコードが、対応する前記少なくとも１つのソフトウェア製品に関する、製品識別、修正識別および製品リリースを含む、上記（３）に記載の装置。
（５）前記更新コントローラが、前記少なくとも１つのソフトウェア製品のための少なくとも１つのソフトウェア製品修正をインストールするように前記目標コンピュータ上のオペレーティング・システムに指示することによって、前記少なくとも１つのソフトウェア製品同期化を適用し、前記少なくとも１つのソフトウェア製品修正が、前記少なくとも１つのソフトウェア製品同期化に対応する、上記（２）に記載の装置。
（６）前記更新コントローラが、ソース・システムから前記少なくとも１つのソフトウェア製品修正を受け取る、上記（２）に記載の装置。
（７）前記更新コントローラが、前記少なくとも１つのソフトウェア製品のための少なくとも１つのソフトウェア製品修正を除去するように前記目標コンピュータ上のオペレーティング・システムに指示することによって、前記少なくとも１つのソフトウェア製品同期化を適用し、前記少なくとも１つのソフトウェア製品修正が、前記少なくとも１つのソフトウェア製品同期化に対応する、上記（２）に記載の装置。
（８）前記更新コントローラが、前記目標コンピュータに問い合わせることによって、前記目標コンピュータの前記ソフトウェア目録を判定する、上記（２）に記載の装置。
（９）前記ソフトウェア修正マネージャが、モデル・システムから前記優先ソフトウェア目録を取り出す、上記（１）に記載の装置。
（１０）前記ソフトウェア目録が、ソフトウェア製品目録を含み、前記少なくとも１つのソフトウェア製品同期化が、前記少なくとも１つのソフトウェア製品をインストールまたは除去しなければならないかどうかを示し、前記更新コントローラが、前記少なくとも１つのソフトウェア製品をそれぞれインストールまたは除去するように前記目標コンピュータ上のオペレーティング・システムに指示することによって、前記少なくとも１つのソフトウェア製品同期化を適用する、上記（２）に記載の装置。
（１１）ネットワーク内でソフトウェアを同期化するための装置であって、ソフトウェア修正マネージャを含む管理コンピュータを備え、前記ソフトウェア修正マネージャが、少なくとも１つの目標コンピュータ上の少なくとも１つのソフトウェア製品のための少なくとも１つのソフトウェア製品同期化を判定するために、ネットワーク内の複数の目標コンピュータのうちの前記少なくとも１つの目標コンピュータの少なくとも１つのソフトウェア修正目録を、優先ソフトウェア修正目録と比較し、前記管理コンピュータが、前記少なくとも１つのソフトウェア製品同期化を前記少なくとも１つの目標コンピュータに送る装置。
（１２）前記目標コンピュータのそれぞれが、更新コントローラおよびソフトウェア修正目録を含み、各更新コントローラが、そのそれぞれの目標コンピュータにソフトウェア製品同期化を適用する能力を有し、各ソフトウェア修正目録が、それぞれの前記目標コンピュータ上の少なくとも１つのソフトウェア製品の少なくとも１つの修正レコードを含み、前記少なくとも１つの目標コンピュータの前記更新コントローラが、前記少なくとも１つのソフトウェア製品同期化を前記少なくとも１つの目標コンピュータに適用する、上記（１１）に記載の装置。
（１３）前記少なくとも１つの更新コントローラが、前記少なくとも１つのソフトウェア製品のための少なくとも１つのソフトウェア製品修正を前記少なくとも１つの目標コンピュータにインストールするように前記少なくとも１つの目標コンピュータのオペレーティング・システムに指示することによって、前記少なくとも１つの目標コンピュータに前記少なくとも１つのソフトウェア製品同期化を適用し、前記少なくとも１つのソフトウェア製品修正が、前記少なくとも１つのソフトウェア製品同期化に対応する、上記（１２）に記載の装置。
（１４）ソース・システムをさらに含み、前記ソース・システムが、複数のソフトウェア製品修正を含み、前記少なくとも１つの目標コンピュータの前記更新コントローラが、少なくとも１つのソフトウェア製品修正を前記ソース・システムから受け取る、上記（１３）に記載の装置。
（１５）前記少なくとも１つの更新コントローラが、前記少なくとも１つの目標コンピュータ上の前記少なくとも１つのソフトウェア製品のための少なくとも１つのソフトウェア製品修正を除去するように前記少なくとも１つの目標コンピュータ上のオペレーティング・システムに指示することによって、前記少なくとも１つのソフトウェア製品同期化を前記少なくとも１つの目標コンピュータに適用し、前記少なくとも１つのソフトウェア製品修正が、前記少なくとも１つのソフトウェア製品同期化に対応する、上記（１２）に記載の装置。
（１６）各目標コンピュータ上の前記少なくとも１つの修正レコードが、製品識別、修正識別および製品リリースを含む、上記（１２）に記載の装置。
（１７）前記複数の更新コントローラのうちの少なくとも１つの更新コントローラが、そのそれぞれの目標コンピュータに問い合わせることによって、それぞれの前記目標コンピュータの前記ソフトウェア修正目録を判定する、上記（１２）に記載の装置。
（１８）前記優先ソフトウェア修正目録を含むモデル・システムをさらに含み、前記ソフトウェア修正マネージャが、前記優先ソフトウェア修正目録を前記モデル・システムから受け取る、上記（１１）に記載の装置。
（１９）前記少なくとも１つのソフトウェア製品同期化が、修正リストの一部であり、前記修正リストがさらに、前記複数の目標コンピュータ上の複数のソフトウェア製品のための複数のソフトウェア製品同期化を含み、前記修正リストが、ソフトウェア製品同期化の和集合である、上記（１１）に記載の装置。
（２０）各目標コンピュータがさらに、ソフトウェア製品目録を含み、各ソフトウェア製品目録が、前記目標コンピュータ上の少なくとも１つのソフトウェア製品の少なくとも１つの製品レコードを含み、前記ソフトウェア修正マネージャがさらに、前記ネットワーク内の前記複数の目標コンピュータのうちの少なくとも１つの目標コンピュータの少なくとも１つのソフトウェア製品のための少なくとも１つのソフトウェア製品同期化を前記修正リストに追加するために、前記少なくとも１つの目標コンピュータの少なくとも１つのソフトウェア製品目録を優先ソフトウェア製品目録と比較し、前記少なくとも１つのソフトウェア製品同期化が、前記少なくとも１つのソフトウェア製品をインストールまたは除去しなければならないかどうかを示す、上記（１２）に記載の装置。
（２１）目標コンピュータのソフトウェア目録を優先ソフトウェア目録と比較するステップと、
前記目標コンピュータ上の少なくとも１つのソフトウェア製品のための少なくとも１つのソフトウェア製品同期化を作成するステップと、
前記少なくとも１つのソフトウェア製品同期化を前記目標コンピュータに適用するステップと
を含む、ソフトウェアを同期化するための方法。
（２２）前記ソフトウェア目録が、前記目標コンピュータ上の少なくとも１つのソフトウェア製品の少なくとも１つの修正レコードを含むソフトウェア修正目録を含み、前記優先ソフトウェア目録が、モデル・システム上の少なくとも１つのソフトウェア製品の少なくとも１つの優先修正レコードを含む優先ソフトウェア修正目録を含む、上記（２１）に記載の方法。
（２３）各修正レコードが、対応する前記少なくとも１つのソフトウェア製品に関する製品識別、修正識別および製品リリースを含む、上記（２２）に記載の方法。
（２４）前記少なくとも１つのソフトウェア製品同期化を適用する前記ステップが、前記少なくとも１つのソフトウェア製品のための少なくとも１つのソフトウェア製品修正をインストールするように前記目標コンピュータ上のオペレーティング・システムに指示するステップを含み、前記少なくとも１つのソフトウェア製品修正が、前記少なくとも１つのソフトウェア製品同期化に対応する、上記（２１）に記載の方法。
（２５）さらに、前記少なくとも１つのソフトウェア製品修正をソース・システムから受け取るステップを含む、上記（２４）に記載の方法。
（２６）前記少なくとも１つのソフトウェア製品同期化を適用する前記ステップが、前記少なくとも１つのソフトウェア製品のための少なくとも１つのソフトウェア製品修正を除去するように前記目標コンピュータ上のオペレーティング・システムに指示するステップを含み、前記少なくとも１つのソフトウェア製品修正が、前記少なくとも１つのソフトウェア製品同期化に対応する、上記（２１）に記載の方法。
（２７）さらに、前記目標コンピュータに問い合わせることによって、前記ソフトウェア修正目録を判定するステップを含む、上記（２１）に記載の方法。
（２８）さらに、前記優先ソフトウェア修正目録をモデル・システムから取り出すステップを含む、上記（２１）に記載の方法。
（２９）前記ソフトウェア目録が、ソフトウェア製品目録を含み、前記少なくとも１つのソフトウェア製品同期化が、前記少なくとも１つのソフトウェア製品をインストールまたは除去しなければならないかどうかを示し、前記少なくとも１つのソフトウェア製品同期化を前記目標コンピュータに適用する前記ステップが、前記少なくとも１つのソフトウェア製品をそれぞれインストールまたは除去するように前記目標コンピュータ上のオペレーティング・システムに指示するステップを含む、上記（２１）に記載の方法。
（３０）ネットワーク内でソフトウェアを同期化するための方法であって、
ネットワーク内の管理コンピュータ上に常駐するソフトウェア修正マネージャを提供するステップであって、前記管理コンピュータが、優先ソフトウェア修正目録を含み、前記優先ソフトウェア修正目録が、少なくとも１つのソフトウェア製品の少なくとも１つの優先修正レコードを含むステップと、
前記ネットワーク内の少なくとも１つの目標コンピュータ上に常駐する更新コントローラを提供するステップであって、前記少なくとも１つの目標コンピュータが、目標ソフトウェア修正目録を含み、前記目標ソフトウェア修正目録が、前記少なくとも１つの目標コンピュータ上の少なくとも１つのソフトウェア製品の少なくとも１つの修正レコードを含むステップと、
前記目標ソフトウェア修正目録を前記優先ソフトウェア修正目録と比較するステップと、
前記比較に基づいて、前記少なくとも１つの目標コンピュータ上の少なくとも１つのソフトウェア製品のための少なくとも１つのソフトウェア製品同期化を含む修正リストを作成し、更新するステップと、
前記修正リストを前記少なくとも１つの目標コンピュータに送るステップと、前記少なくとも１つのソフトウェア製品同期化を前記少なくとも１つの目標コンピュータに適用するステップと
を含む方法。
（３１）前記少なくとも１つのソフトウェア製品同期化を前記少なくとも１つの目標コンピュータに適用する前記ステップが、前記少なくとも１つのソフトウェア製品のための少なくとも１つのソフトウェア製品修正を前記少なくとも１つの目標コンピュータにインストールするように前記少なくとも１つの目標コンピュータ上のオペレーティング・システムに指示するステップを含み、前記少なくとも１つのソフトウェア製品修正が、前記少なくとも１つのソフトウェア製品同期化に対応する、上記（３０）に記載の方法。
（３２）前記ネットワークがさらに、ソース・システムを含み、前記ソース・システムが、複数のソフトウェア製品修正を含み、前記方法がさらに、前記更新コントローラが前記少なくとも１つのソフトウェア製品修正を前記ソース・システムから受け取るステップを含む、上記（３１）に記載の方法。
（３３）前記少なくとも１つのソフトウェア製品同期化を前記少なくとも１つの目標コンピュータに適用する前記ステップが、前記少なくとも１つの目標コンピュータ上の前記少なくとも１つのソフトウェア製品のための少なくとも１つのソフトウェア製品修正を除去するように前記少なくとも１つの目標コンピュータ上のオペレーティング・システムに指示するステップを含み、前記少なくとも１つのソフトウェア製品修正が、前記少なくとも１つのソフトウェア製品同期化に対応する、上記（３０）に記載の方法。
（３４）優先各修正レコードおよび各修正レコードが、それぞれの前記少なくとも１つのソフトウェア製品に関する製品識別、修正識別および製品リリースを含む、上記（３０）に記載の方法。
（３５）前記更新コントローラが、前記少なくとも１つの目標コンピュータに問い合わせることによって、前記少なくとも１つの目標コンピュータの前記目標ソフトウェア修正目録を判定するステップをさらに含む、上記（３０）に記載の方法。
（３６）前記ネットワークがさらに、前記優先ソフトウェア修正目録を含むモデル・システムを含み、前記方法がさらに、前記ソフトウェア修正マネージャが前記優先ソフトウェア修正目録を前記モデル・システムから取り出すステップを含む、上記（３０）に記載の方法。
（３７）前記少なくとも１つの目標コンピュータが、複数の目標コンピュータであり、前記修正リストがさらに、前記複数の目標コンピュータ上の複数のソフトウェア製品のための複数のソフトウェア製品同期化を含み、前記修正リストが、前記複数のソフトウェア製品同期化の和集合である、上記（３０）に記載の方法。
（３８）前記少なくとも１つの目標コンピュータがさらに、目標ソフトウェア製品目録および優先ソフトウェア製品目録を含み、各ソフトウェア製品目録が、製品識別およびリリースを含む少なくとも１つの製品レコードを含み、各修正レコードおよび優先修正レコードがさらに、製品識別、リリースおよび修正識別を含み、前記ソフトウェア修正マネージャが前記目標ソフトウェア修正目録を前記優先ソフトウェア修正目録と比較する前記ステップが、
前記目標ソフトウェア修正目録の前記少なくとも１つの修正レコードを取り出すステップと、
前記少なくとも１つの修正レコード内の前記ソフトウェア製品およびリリースが、前記少なくとも１つの優先製品レコード内の前記ソフトウェア製品およびリリースと一致するかどうかを判定するステップと、
前記少なくとも１つの修正レコード内の前記ソフトウェア製品およびリリースが前記少なくとも１つの優先製品レコード内の前記ソフトウェア製品およびリリースと一致する場合に実行される、前記少なくとも１つの修正レコード内の前記修正識別が、前記少なくとも１つの優先修正レコード内の前記修正識別と一致するかどうかを判定するステップと
を含み、前記ソフトウェア修正マネージャが修正リストを作成し、更新する前記ステップが、
前記少なくとも１つの修正レコード内の前記修正識別が前記少なくとも１つの優先製品レコード内の前記修正識別と一致する場合に実行される、前記少なくとも１つの修正レコードが、前記修正リスト内の修正レコードのいずれかに対応するかどうかを判定するステップと、
前記少なくとも１つの修正レコードと、エクストラとしてマークされたエクストラ表示とを含む同期化を、前記修正リストに追加するステップと
を含む、上記（３０）に記載の方法。
（３９）前記少なくとも１つの目標コンピュータがさらに、目標ソフトウェア製品目録および優先ソフトウェア製品目録を含み、各ソフトウェア製品目録が、製品識別およびリリースを含む少なくとも１つの製品レコードを含み、各修正レコードおよび優先修正レコードがさらに、製品識別、リリースおよび修正識別を含み、前記ソフトウェア修正マネージャが前記目標ソフトウェア修正目録を前記優先ソフトウェア修正目録と比較する前記ステップが、
前記優先ソフトウェア修正目録の前記少なくとも１つの優先修正レコードを取り出すステップと、
前記少なくとも１つの優先修正レコード内の前記ソフトウェア製品およびリリースが、前記少なくとも１つの製品レコード内の前記ソフトウェア製品およびリリースと一致するかどうかを判定するステップと、
前記少なくとも１つの優先修正レコード内の前記ソフトウェア製品およびリリースが前記少なくとも１つの製品レコード内の前記ソフトウェア製品およびリリースと一致する場合に実行される、前記少なくとも１つの優先修正レコード内の前記修正識別が、前記少なくとも１つの修正レコード内の前記修正識別と一致するかどうかを判定するステップと
を含み、前記ソフトウェア修正マネージャが前記修正リストを作成し、更新する前記ステップが、
前記少なくとも１つの優先修正レコード内の前記修正識別が前記少なくとも１つの製品レコード内の前記修正識別と一致する場合に実行される、前記少なくとも１つの修正レコードが、前記修正リスト内の修正レコードのいずれかに対応するかどうかを判定するステップと、
前記少なくとも１つの優先修正レコードと、必要としてマークされたエクストラ表示とを含む同期化を、前記修正リストに追加するステップと
を含む、上記（３０）に記載の方法。
（４０）前記少なくとも１つの目標コンピュータがさらに、ソフトウェア製品目録を含み、各ソフトウェア製品目録が、前記少なくとも１つの目標コンピュータ上の少なくとも１つのソフトウェア製品の少なくとも１つの製品レコードを含み、前記ソフトウェア修正マネージャが前記少なくとも１つの目標コンピュータの前記目標ソフトウェア修正目録を前記優先ソフトウェア修正目録と比較する前記ステップがさらに、前記ソフトウェア修正マネージャが、前記少なくとも１つの目標コンピュータ上の少なくとも１つのソフトウェア製品のための少なくとも１つのソフトウェア製品同期化を前記修正リストに追加するために、前記少なくとも１つの目標コンピュータの少なくとも１つのソフトウェア製品目録を優先ソフトウェア製品目録と比較するステップを含み、前記少なくとも１つのソフトウェア製品同期化が、前記少なくとも１つのソフトウェア製品をインストールまたは除去しなければならないかどうかを示す、上記（３０）に記載の方法。
（４１）目標コンピュータ上の少なくとも１つのソフトウェア製品のための少なくとも１つのソフトウェア製品同期化を判定するために、前記目標コンピュータのソフトウェア目録を優先ソフトウェア目録と比較する、ソフトウェア修正マネージャと、
前記ソフトウェア修正マネージャを担持する、信号担持媒体と
を含むプログラム製品。
（４２）前記信号担持媒体が、伝送媒体を含む、上記（４１）に記載のプログラム製品。
（４３）前記信号担持媒体が、記録可能媒体を含む、上記（４１）に記載のプログラム製品。
（４４）前記少なくとも１つのソフトウェア製品同期化を前記目標コンピュータに適用する更新コントローラをさらに含み、前記信号担持媒体がさらに、前記更新コントローラを担持する、上記（４１）に記載のプログラム製品。
（４５）前記ソフトウェア目録が、前記目標コンピュータ上の少なくとも１つのソフトウェア製品の少なくとも１つの修正レコードを含むソフトウェア修正目録を含み、前記優先ソフトウェア目録が、少なくとも１つのソフトウェア製品の少なくとも１つの優先修正レコードを含む優先ソフトウェア修正目録を含む、上記（４１）に記載のプログラム製品。
（４６）各修正レコードが、対応する前記少なくとも１つのソフトウェア製品に関する製品識別、修正識別および製品リリースを含む、上記（４５）に記載のプログラム製品。
（４７）前記更新コントローラが、前記少なくとも１つのソフトウェア製品のための少なくとも１つのソフトウェア製品修正をインストールするように前記目標コンピュータ上のオペレーティング・システムに指示することによって、前記少なくとも１つのソフトウェア製品同期化を適用し、前記少なくとも１つのソフトウェア製品修正が、前記少なくとも１つのソフトウェア製品同期化に対応する、上記（４４）に記載のプログラム製品。
（４８）前記更新コントローラが、前記少なくとも１つのソフトウェア製品修正をソース・システムから受け取る、上記（４４）に記載のプログラム製品。
（４９）前記更新コントローラが、前記少なくとも１つのソフトウェア製品のための少なくとも１つのソフトウェア製品修正を除去するように前記目標コンピュータ上のオペレーティング・システムに指示することによって、前記少なくとも１つのソフトウェア製品同期化を適用し、前記少なくとも１つのソフトウェア製品修正が、前記少なくとも１つのソフトウェア製品同期化に対応する、上記（４４）に記載のプログラム製品。
（５０）前記更新コントローラが、前記目標コンピュータに問い合わせることによって、前記目標コンピュータの前記ソフトウェア目録を判定する、上記（４４）に記載のプログラム製品。
（５１）前記ソフトウェア修正マネージャが、前記優先ソフトウェア目録をモデル・システムから取り出す、上記（４１）に記載のプログラム製品。
（５２）前記ソフトウェア目録が、ソフトウェア製品目録を含み、前記少なくとも１つのソフトウェア製品同期化が、前記少なくとも１つのソフトウェア製品をインストールまたは除去しなければならないかどうかを示し、前記更新コントローラが、前記少なくとも１つのソフトウェア製品をそれぞれインストールまたは除去するように前記目標コンピュータ上のオペレーティング・システムに指示することによって、前記少なくとも１つのソフトウェア製品同期化を適用する、上記（４４）に記載のプログラム製品。
（５３）ネットワーク内の複数の目標コンピュータのうちの少なくとも１つの目標コンピュータ上の少なくとも１つのソフトウェア製品のための少なくとも１つのソフトウェア製品同期化を判定するために、前記少なくとも１つの目標コンピュータの少なくとも１つのソフトウェア修正目録を優先ソフトウェア修正目録と比較し、前記少なくとも１つのソフトウェア製品同期化を前記少なくとも１つの目標コンピュータに送る、管理コンピュータに常駐することのできるソフトウェア修正マネージャと、
前記ソフトウェア修正マネージャを担持する信号担持媒体と
を含む、ネットワーク内でソフトウェアを同期化するためのプログラム製品。
（５４）前記信号担持媒体が、伝送媒体を含む、上記（５３）に記載のプログラム製品。
（５５）前記信号担持媒体が、記録可能媒体を含む、上記（５３）に記載のプログラム製品。
（５６）前記複数の目標コンピュータのそれぞれに常駐することのできる更新コントローラをさらに含み、前記目標コンピュータのそれぞれが、ソフトウェア修正目録を含み、各更新コントローラが、ソフトウェア製品同期化をそのそれぞれの目標コンピュータに適用する能力を有し、各ソフトウェア修正目録が、前記それぞれの目標コンピュータ上の少なくとも１つのソフトウェア製品の少なくとも１つの修正レコードを含み、前記少なくとも１つの目標コンピュータのための前記更新コントローラが、前記少なくとも１つのソフトウェア製品同期化を前記少なくとも１つの目標コンピュータに適用する、上記（５３）に記載のプログラム製品。
（５７）前記少なくとも１つの更新コントローラが、前記少なくとも１つのソフトウェア製品のための少なくとも１つのソフトウェア製品修正を前記少なくとも１つの目標コンピュータにインストールするように前記少なくとも１つの目標コンピュータのオペレーティング・システムに指示することによって、前記少なくとも１つのソフトウェア製品同期化を前記少なくとも１つの目標コンピュータに適用し、前記少なくとも１つのソフトウェア製品修正が、前記少なくとも１つのソフトウェア製品同期化に対応する、上記（５６）に記載のプログラム製品。
（５８）前記少なくとも１つの目標コンピュータのための前記更新コントローラが、少なくとも１つのソフトウェア製品修正をソース・システムから受け取り、前記ソース・システムが、複数のソフトウェア製品修正を含む、上記（５６）に記載のプログラム製品。
（５９）前記少なくとも１つの更新コントローラが、前記少なくとも１つの目標コンピュータ上の前記少なくとも１つのソフトウェア製品のための少なくとも１つのソフトウェア製品修正を除去するように前記少なくとも１つの目標コンピュータ上のオペレーティング・システムに指示することによって、前記少なくとも１つのソフトウェア製品同期化を前記少なくとも１つの目標コンピュータに適用し、前記少なくとも１つのソフトウェア製品修正が、前記少なくとも１つのソフトウェア製品同期化に対応する、上記（５６）に記載のプログラム製品。
（６０）各目標コンピュータ上の前記少なくとも１つの修正レコードが、製品識別、修正識別および製品リリースを含む、上記（５６）に記載のプログラム製品。
（６１）前記複数の更新コントローラのうちの少なくとも１つの更新コントローラが、そのそれぞれの目標コンピュータに問い合わせることによって、前記それぞれの目標コンピュータの前記ソフトウェア修正目録を判定する、上記（５６）に記載のプログラム製品。
（６２）前記ソフトウェア修正マネージャが、前記優先ソフトウェア修正目録を含むモデル・システムから、前記優先ソフトウェア修正目録を取り出す、上記（５３）に記載のプログラム製品。
（６３）前記少なくとも１つのソフトウェア製品同期化が、修正リストの一部であり、前記修正リストがさらに、前記複数の目標コンピュータ上の複数のソフトウェア製品のための複数のソフトウェア製品同期化を含み、前記修正リストが、ソフトウェア製品同期化の和集合である、上記（５６）に記載のプログラム製品。
（６４）各目標コンピュータがさらに、ソフトウェア製品目録を含み、各ソフトウェア製品目録が、前記目標コンピュータ上の少なくとも１つのソフトウェア製品の少なくとも１つの製品レコードを含み、前記ソフトウェア修正マネージャがさらに、前記ネットワーク内の前記複数の目標コンピュータのうちの少なくとも１つの目標コンピュータ上の少なくとも１つのソフトウェア製品のための少なくとも１つのソフトウェア製品同期化を前記修正リストに追加するために、前記少なくとも１つの目標コンピュータの少なくとも１つのソフトウェア製品目録を優先ソフトウェア製品目録と比較し、前記少なくとも１つのソフトウェア製品同期化が、前記少なくとも１つのソフトウェア製品をインストールまたは除去しなければならないかどうかを示す、上記（５３）に記載のプログラム製品。
【図面の簡単な説明】
【図１】本発明の好ましい実施形態によるコンピュータ・システムを示す図である。
【図２】ネットワーク接続されたコンピュータ上のソフトウェア製品を、本発明の好ましい実施形態に従って更新することのできる、好ましい構成のコンピュータのネットワークを示す図である。
【図３】修正リストを作成し、ソフトウェア製品を同期化するために、管理コンピュータ上で実行される好ましい方法を示す図である。
【図４】目標コンピュータ上でソフトウェア製品を同期化するために、目標コンピュータ上で実行される好ましい方法を示す図である。
【図５】ソフトウェア修正目録を比較する時にソフトウェア修正マネージャによって実行される好ましい方法を示す図である。
【図６】ソフトウェア修正目録を比較する時にソフトウェア修正マネージャによって実行される好ましい方法を示す図である。
【図７】本発明の好ましい実施形態による、修正リストを作成するための、ネットワーク上のコンピュータからのソフトウェア目録と優先ソフトウェア修正目録の比較を示す図である。
【図８】本発明の好ましい実施形態による、修正リストを作成するための、ネットワーク上のコンピュータからのソフトウェア目録と優先ソフトウェア修正目録の比較を示す図である。
【図９】本発明の好ましい実施形態による、ネットワーク内のコンピュータへの、修正リストからのソフトウェア同期化の適用の結果を示す図である。
【図１０】本発明の好ましい実施形態による、ネットワーク内のコンピュータへの、修正リストからのソフトウェア同期化の適用の結果を示す図である。
【符号の説明】
１１０  目標システム
１１１  更新コントローラ
１１２  ソフトウェア修正目録
１１７  ソフトウェア製品目録
１４０  モデル・システム
１４１  優先ソフトウェア修正目録
１４７  優先ソフトウェア製品目録
１５０  ソース・システム
１５１  ソフトウェア製品修正
１５２  ソフトウェア製品修正
１５３  ソフトウェア製品修正
１６０  管理システム
１６１  ソフトウェア修正マネージャ
１６２  修正リスト
１７０  ネットワーク
【図１】
0003610284.tif 000002
【図２】
0003610284.tif 000003
【図３】
0003610284.tif 000004
【図４】
0003610284.tif 000005
【図５】
0003610284.tif 000006
【図６】
0003610284.tif 000007
【図７】
0003610284.tif 000008
【図８】
0003610284.tif 000009
【図９】
0003610284.tif 000010
【図１０】
0003610284.tif 000011