(57)【要約】  システムは、最近の安全性のアップグレード、最新の処置、及びサービスパックに関して、様々な報告サービス、及びアプリケーション製造業者のウェブサイトを詳しく調べることができる。システムは、その場合に、これらのパッチを検索すると共に、企業のネットワーク内の全てのコンピュータに、これらのパッチを自動的に適用することができる。サーバ、及び／またはクライアントは、ウェブモジュール、メインモジュール、及びパッチモジュールをそれぞれ動かすことができる。それらのモジュールは、相互に対話すると共に、傾聴−処理−応答（listen-process-respond）手続きにより、ユーザインタフェース、及び／またはデータベースと対話することができる。これは、パッチ最新情報を要求する利用者と、それ自身でパッチを供給するサーバとの間の効果的な通信を保証する。【特許請求の範囲】
【請求項１】
組織によって制御された装置のネットワークに対してソフトウェア最新情報を自動的に分配するためのシステムにおける通信を制御する方法であって、
ユーザインタフェースから、利用可能な最新情報を求める第１の要求を、ウェブモジュールによって受信する段階と、
前記ウェブモジュール上で前記第１の要求を処理する段階と、
利用可能な最新情報を求める第２の要求を、前記ウェブモジュールからメインモジュールに対して送信する段階と、
前記ウェブモジュールを傾聴状態に置く段階と、
前記メインモジュール上で前記第２の要求を処理する段階と、
利用可能な最新情報を求める第３の要求を、前記メインモジュールからパッチモジュールに対して送信する段階と、
前記メインモジュールを傾聴状態に置く段階と、
前記パッチモジュール上で前記第３の要求を処理する段階と、
利用可能な最新情報のリストを有する第１の応答を、前記パッチモジュールから前記メインモジュールに対して送信する段階と、
利用可能な最新情報のリストを有する第２の応答を、前記メインモジュールから前記ウェブモジュールに対して送信する段階と、
利用可能な最新情報のリストを有する第３の応答を、前記ウェブモジュールから前記ユーザインタフェースに対して送信する段階と
を含むことを特徴とする方法。
【請求項２】
前記ウェブモジュールが、傾聴状態、処理状態、または応答状態にある
ことを特徴とする請求項１に記載の方法。
【請求項３】
前記メインモジュールが、傾聴状態、処理状態、または応答状態にある
ことを特徴とする請求項１に記載の方法。
【請求項４】
前記パッチモジュールが、傾聴状態、処理状態、または応答状態にある
ことを特徴とする請求項１に記載の方法。
【請求項５】
前記ウェブモジュール、前記メインモジュール、及び前記パッチモジュールが、クライアント側に配置される
ことを特徴とする請求項１に記載の方法。
【請求項６】
前記ウェブモジュール、前記メインモジュール、及び前記パッチモジュールが、サーバ側に配置される
ことを特徴とする請求項１に記載の方法。
【請求項７】
前記パッチモジュールが、サーバ側のパッチモジュールと通信する
ことを特徴とする請求項５に記載の方法。
【請求項８】
前記パッチモジュールが、クライアント側のパッチモジュールと通信する
ことを特徴とする請求項６に記載の方法。
【請求項９】
前記要求の各々は、拡張マークアップ言語（ＸＭＬ）形式である
ことを特徴とする請求項１に記載の方法。
【請求項１０】
前記応答の各々は、拡張マークアップ言語（ＸＭＬ）形式である
ことを特徴とする請求項１に記載の方法。
【請求項１１】
前記傾聴状態において、モジュールが、別のモジュールとの通信を待機する
ことを特徴とする請求項２に記載の方法。
【請求項１２】
前記処理状態において、モジュールが、要求の文法的な正当性を判定すると共に、要求を生成する
ことを特徴とする請求項２に記載の方法。
【請求項１３】
前記応答状態において、モジュールが、更に応答メッセージを生成する
ことを特徴とする請求項２に記載の方法。
【請求項１４】
前記傾聴状態において、モジュールが、別のモジュールとの通信を待機する
ことを特徴とする請求項３に記載の方法。
【請求項１５】
前記処理状態において、モジュールが、要求の文法的な正当性を判定すると共に、要求を生成する
ことを特徴とする請求項３に記載の方法。
【請求項１６】
前記応答状態において、モジュールが、更に応答メッセージを生成する
ことを特徴とする請求項３に記載の方法。
【請求項１７】
モジュールによる受領の際に構文の正当性に関して前記要求を確認する段階を更に含む
ことを特徴とする請求項１に記載の方法。
【請求項１８】
組織によって制御された装置のネットワークに対してソフトウェア最新情報を自動的に分配するためのシステムにおける通信を制御する装置であって、
ウェブモジュールユーザインタフェース要求受信機と、
前記ウェブモジュールユーザインタフェース要求受信機に接続されたウェブモジュールユーザインタフェース要求プロセッサと、
前記ウェブモジュールユーザインタフェース要求プロセッサに接続されたウェブモジュール要求送信機と、
前記ウェブモジュール要求送信機に接続されたウェブモジュール傾聴状態配置機と、
前記ウェブモジュール要求送信機に接続された前記メインモジュールウェブモジュール要求プロセッサと、
前記メインモジュールウェブモジュール要求プロセッサに接続されたメインモジュール要求送信機と、
前記メインモジュールウェブモジュール要求プロセッサに接続されたメインモジュール傾聴状態配置機と、
前記メインモジュール要求送信機に接続されたパッチモジュールメインモジュール要求プロセッサと、
前記パッチモジュールメインモジュール要求プロセッサに接続されたパッチモジュール応答送信機と、
前記パッチモジュール応答送信機に接続されたメインモジュール応答送信機と、
前記メインモジュール応答送信機に接続されたウェブモジュール応答送信機と
を備えることを特徴とする装置。
【請求項１９】
前記装置がサーバ側に配置される
ことを特徴とする請求項１８に記載の装置。
【請求項２０】
前記装置がクライアント側に配置される
ことを特徴とする請求項１８に記載の装置。
【請求項２１】
組織によって制御された装置のネットワークに対してソフトウェア最新情報を自動的に分配するためのシステムにおける通信を制御する装置であって、
ユーザインタフェースから、利用可能な最新情報を求める第１の要求を、ウェブモジュールによって受信するための手段と、
前記ウェブモジュール上で前記第１の要求を処理するための手段と、
利用可能な最新情報を求める第２の要求を、前記ウェブモジュールからメインモジュールに対して送信するための手段と、
前記ウェブモジュールを傾聴状態に置くための手段と、
前記メインモジュール上で前記第２の要求を処理するための手段と、
利用可能な最新情報を求める第３の要求を、前記メインモジュールからパッチモジュールに対して送信するための手段と、
前記メインモジュールを傾聴状態に置くための手段と、
前記パッチモジュール上で前記第３の要求を処理するための手段と、
利用可能な最新情報のリストを有する第１の応答を、前記パッチモジュールから前記メインモジュールに対して送信するための手段と、
利用可能な最新情報のリストを有する第２の応答を、前記メインモジュールから前記ウェブモジュールに対して送信するための手段と、
利用可能な最新情報のリストを有する第３の応答を、前記ウェブモジュールから前記ユーザインタフェースに対して送信するための手段と
を備えることを特徴とする装置。
【請求項２２】
前記ウェブモジュールが、傾聴状態、処理状態、または応答状態にある
ことを特徴とする請求項２１に記載の装置。
【請求項２３】
前記メインモジュールが、傾聴状態、処理状態、または応答状態にある
ことを特徴とする請求項２１に記載の装置。
【請求項２４】
前記パッチモジュールが、傾聴状態、処理状態、または応答状態にある
ことを特徴とする請求項２１に記載の装置。
【請求項２５】
前記ウェブモジュール、前記メインモジュール、及び前記パッチモジュールが、クライアント側に配置される
ことを特徴とする請求項２１に記載の装置。
【請求項２６】
前記ウェブモジュール、前記メインモジュール、及び前記パッチモジュールが、サーバ側に配置される
ことを特徴とする請求項２１に記載の装置。
【請求項２７】
前記パッチモジュールが、サーバ側のパッチモジュールと通信する
ことを特徴とする請求項２５に記載の装置。
【請求項２８】
前記パッチモジュールが、クライアント側のパッチモジュールと通信する
ことを特徴とする請求項２６に記載の装置。
【請求項２９】
前記要求の各々は、拡張マークアップ言語（ＸＭＬ）形式である
ことを特徴とする請求項２１に記載の装置。
【請求項３０】
前記応答の各々は、拡張マークアップ言語（ＸＭＬ）形式である
ことを特徴とする請求項２１に記載の装置。
【請求項３１】
前記傾聴状態において、モジュールが、別のモジュールとの通信を待機する
ことを特徴とする請求項２２に記載の装置。
【請求項３２】
前記処理状態において、モジュールが、要求の文法的な正当性を判定すると共に、要求を生成する
ことを特徴とする請求項２２に記載の装置。
【請求項３３】
前記応答状態において、モジュールが、更に応答メッセージを生成する
ことを特徴とする請求項２２に記載の装置。
【請求項３４】
前記傾聴状態において、モジュールが、別のモジュールとの通信を待機する
ことを特徴とする請求項２３に記載の装置。
【請求項３５】
前記処理状態において、モジュールが、要求の文法的な正当性を判定すると共に、要求を生成する
ことを特徴とする請求項２３に記載の装置。
【請求項３６】
前記応答状態において、モジュールが、更に応答メッセージを生成する
ことを特徴とする請求項２３に記載の装置。
【請求項３７】
モジュールによる受領の際に構文の正当性に関して前記要求を確認するための手段を更に備える
ことを特徴とする請求項２１に記載の装置。
【請求項３８】
組織によって制御された装置のネットワークに対してソフトウェア最新情報を自動的に分配するためのシステムにおける通信を制御する方法を実行するために、コンピュータによって実行可能な命令のプログラムを明白に具体化するコンピュータ読み取り可能なプログラム記録装置であって、
前記方法が、
ユーザインタフェースから、利用可能な最新情報を求める第１の要求を、ウェブモジュールによって受信する段階と、
前記ウェブモジュール上で前記第１の要求を処理する段階と、
利用可能な最新情報を求める第２の要求を、前記ウェブモジュールからメインモジュールに対して送信する段階と、
前記ウェブモジュールを傾聴状態に置く段階と、
前記メインモジュール上で前記第２の要求を処理する段階と、
利用可能な最新情報を求める第３の要求を、前記メインモジュールからパッチモジュールに対して送信する段階と、
前記メインモジュールを傾聴状態に置く段階と、
前記パッチモジュール上で前記第３の要求を処理する段階と、
利用可能な最新情報のリストを有する第１の応答を、前記パッチモジュールから前記メインモジュールに対して送信する段階と、
利用可能な最新情報のリストを有する第２の応答を、前記メインモジュールから前記ウェブモジュールに対して送信する段階と、
利用可能な最新情報のリストを有する第３の応答を、前記ウェブモジュールから前記ユーザインタフェースに対して送信する段階と
を含むことを特徴とするコンピュータ読み取り可能なプログラム記録装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア更新の分野に関するものである。更に明確には、本発明は、分散アプリケーション内のモジュールに使用されるクライアント−サーバ間データ実行フローに関するものである。
【背景技術】
【０００２】
本出願は、“Anthony F. Gigliotti”及び“Ryan Riley”によって、２００４年１月２２日に出願された“Distributed Policy Driven Software Delivery”と名づけられた、同時係属の米国特許出願シリアル番号10/763,814号と関係がある。
【０００３】
コンピュータウイルス、及び他の技術を経由したインターネット攻撃の増加は、多くの会社に対する深刻な財政上の損害を引き起こした。現在のウイルス対策ソフトは、“攻撃的な”コード（例えば、既知のウイルス）のリストと対照して、入って来るファイルを比較することによって動作する。もしファイルがこれらの攻撃的なコードの内の１つのようであるならば、それは削除されると共に、システムは保護される。しかしながら、現代のウイルス攻撃に関して、このアプローチに関するいくつかの重大な問題がある。
【０００４】
第１に、もしそのウイルスが新しいと共に、既知のウイルスのリストに存在しない場合、アンチ−ウイルス解決策は、それがウイルスであると識別しないと共に、従ってアンチ−ウイルス解決策は、ウイルスが広がることを防止できないことになる。第２に、“code red”、及び“SQL slammer”のような現代のワーム（worm）は、大部分のウイルス保護システムによって保護された伝送方法の内のいずれにも依存しない。これらの新しいらせん構造のウイルスは、コンピュータによりその動作を実行するために使用されるソフトウェアの欠陥を利用することによって、直接コンピュータシステムを攻撃するように設計されている。それらのウイルスは、従って、ウイルス対策ソフトに介入されずに、企業のネットワーク、及びレプリカント（replicant）を破壊して中に侵入することができる。
【０００５】
ウイルス対策ソフトが現代のネットワークを保護することを阻止する別の重要な原因は、現代のウイルスの複製、及び伝播の速度である。何年も前には、ウイルスが米国を横断して広まるのに数年を必要としていたのに対して、現代のウイルスは、ほんの数分の間に全世界を横断して広がることができる。
【０００６】
現代のウイルス問題の本質は、システム管理、及び保守に存在する。全てのネットワークアプリケーションは、あるレベルの攻撃に弱いが、しかし、ソフトウェア製造業者は、それらがウイルス製作者によって利用され得る前に、これらのエラーを解決すると共に、問題に対する処置を公開するために、勤勉に働く。実際、大抵の場合、アプリケーション製造業者は、ウイルスが公開される前でさえ、ウイルスがこれらのセキュリティホールを利用することを阻止したであろうアプリケーションに対する処置を公開した。不幸にも、現代のネットワークの複雑さのために、大部分のシステムアドミニストレータは、ネットワークにおける全てのコンピュータに関するソフトウェア製造業者から公開された安全性のパッチ、及び最新の処置の増加数にペースをあわせることができない。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
必要とされるのは、ネットワークアプリケーションのセキュリティホールを確認して、管理する処理を自動化する解決策である。同様に、必要とされるのは、解決策の分散された部分が効果的な方法で相互に通信することを可能にするメカニズムである。
【課題を解決するための手段】
【０００８】
システムは、最近の安全性のアップグレード、最新の処置、及びサービスパックに関して、様々な報告サービス、及びアプリケーション製造業者のウェブサイトを詳しく調べることができる。システムは、その場合に、これらのパッチを検索すると共に、企業のネットワーク内の全てのコンピュータに、これらのパッチを自動的に適用することができる。サーバ、及び／またはクライアントは、ウェブモジュール、メインモジュール、及びパッチモジュールをそれぞれ動かすことができる。それらのモジュールは、相互に対話すると共に、傾聴−処理−応答（listen-process-respond）手続きにより、ユーザインタフェース、及び／またはデータベースと対話することができる。これは、パッチ最新情報を要求する利用者と、それ自身でパッチを供給するサーバとの間の効果的な通信を保証する。
【発明を実施するための最良の形態】
【０００９】
この明細書に組み込まれると共に、この明細書の一部分を構成する添付図面は、詳細な説明と一緒に本発明の１つ以上の実施例を例証すると共に、本発明の原理、及び実施を説明するのに役立つ。
【００１０】
本発明の実施例は、コンピュータ、サーバ、及びソフトウェアのシステムとの関連において、ここに示される。当業者は、本発明の以下の詳細な説明が実例となるだけで、何らかの方法で制限することを意図していない、ということを認識することになる。本発明の他の実施例は、この開示の利益を得るそのような当業者に容易に連想されるであろう。ここで、添付図面で例証された本発明の実施が詳細に参照されることになる。同一、もしくは同等の部分のことを指すために、同一の参照符号が、図面、及び以下の詳細な説明の至る所で使用される。
【００１１】
明瞭にするために、ここに示された実施における慣例となっている特徴の全てが、示されると共に説明されるとは限らない。もちろん、あらゆるそのような現実の実施の発展において、アプリケーション関連の制限及びビジネス関連の制限の順守のような開発者の特定の目標を達成するために、多数の実施に特有の判定（implementation-specific decisions）が実行されなければならないと共に、これらの特定の目標は、１つの実施から別の実施まで、そして、１人の開発者から別の開発者までで異なるであろうということが認識されることになる。更に、そのような開発努力が複雑で、時間がかかりすぎる（time-consuming）かもしれないけれども、しかし、それでもなおこの開示の利益を得る当業者にとっては工業技術の規定通りの仕事（routine undertaking of engineering）であろうということが認識されることになる。
【００１２】
本発明に基づいて、構成要素、処理段階、及び／またはデータ構造は、様々な種類のオペレーティングシステム、計算プラットフォーム、コンピュータプログラム、及び／または汎用機械を用いて実行されることができる。更に、当業者は、例えばハードウェアで構成された装置、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）等のような、あまり多目的でない性質の装置が、ここに開示された発明概念の範囲、及び精神からはずれずに、同様に使用されることができるということを、認識することになる。
【００１３】
本発明の実施例において、システムは、最近の安全性のアップグレード、最新の処置、及びサービスパックに関して、様々な報告サービス、及びアプリケーション製造業者のウェブサイトを詳しく調べることができる。システムは、その場合に、これらのパッチを検索すると共に、企業のネットワーク内の全てのコンピュータに、これらのパッチを自動的に適用することができる。ウイルスがそれらの弱さを利用することができる前にシステムを予防接種することによって、会社は、多数の現代のウイルスがそれらのネットワークに侵入することを阻止すると共に、それらの企業損失を減少させ得る。更に、十分な量のネットワーク、及びシステムアドミニストレータ時間が、現在は、安全性の処置を記録し、これらのパッチをダウンロードし、そして企業のネットワークを横断してそれらを適用するために利用されるので、この解決策の実施は、金及び資源を節約する。
【００１４】
予防接種サーバ（Inoculation Server：ＩＳ）は、様々な安全性のウェブサイトに交信し、どのような脆弱性が解決される必要があるかを判定し、安全性のパッチをダウンロードし、そしてそれらを組織における全てのコンピュータに適用するために利用される。ＩＳプラットフォームは、非常に拡張可能で、分散された解決策であり得る。システムにおけるクライアントは、ＩＳが安全性、及び他のアプリケーション最新情報を遠く離れて分配することを可能にする、クライアント側アプリケーションをインストールされたあらゆるシステムと定義されることができる。安全性のウェブサイトは、インターネットセキュリティ同盟（Internet Security Alliance：ＩＳＡ）、販売者ウェブサイト、及び“ZDNET”のようなメディア技術ウェブサイト等のように非営利団体を含むことができる。
【００１５】
図１は、本発明の実施例による予防接種（Inoculation）サーバプラットフォームを例証する図である。ユーザインタフェース１００は、ＩＳプラットフォームの全ての他の特徴を設定して管理するだけでなく、安全性の最新情報、クライアントアプリケーション、分配特性、クライアント配置及び状態の報告を管理するために提供されることができる。在庫管理エンジン１０２は、全体最新情報リポジトリ（Global Update Repository：ＧＵＲ）と関係してアプリケーション最新情報を詳しく調べると共に、クライアント状態報告を通じてそれらをクライアントと比較するために使用されることができる。
【００１６】
ＧＵＲは、全てのインストールされた予防接種サーバに供給されるべき全てのオペレーティングシステム、及びソフトウェアパッケージに関する全ての最新情報を管理する中央集権化されたリポジトリである。外部の更新情報を利用して、検索して、保存するために、標準のインターネットサーバ、及び基本的なウェブスパイダー（web spider）を利用することができる。本発明の実施例において、ＧＵＲは、“.ＮＥＴ及びＳＱＬデータベース”と共に、１つ以上のウィンドウズ（登録商標）２０００サーバを含むことができる。ＧＵＲの構成要素は、ＧＵＲの中で利用可能な外部パッケージ最新情報について管理及び報告するために、ユーザインタフェースを備えることができる。このインタフェースは、ユーザがアカウントを作成することを可能にすると共に、手作業で、最新情報パッケージを見て、ダウンロードすることを可能にする。最新情報が利用可能であるとき、それらのユーザは、同様に、電子メールを経由する通知を要求することができる。ＧＵＲの構成要素は、同様に、サポートされたソフトウェアに対する新しい最新情報に関する利用可能なオンライン資源を詳しく調べることができるＧＵＲスパイダ（GUR spider）と、新しいソフトウェア及びＯＳ最新情報パッケージの有効性をＩＳに登録するために、拡張マークアップ言語（ＸＭＬ）によって通信できるＩＳ接続エンジンを備えることができる。ＧＵＲとＩＳとの間の通信は、“HTTP GET”命令、もしくは“POST”命令を通じて実行されることができる。新しい外部更新情報は、ＸＭＬ文書によって実行されることができる。図２は、本発明の実施例による新しい外部更新情報を含むＸＭＬ文書の例を例証する図である。
【００１７】
ＧＵＲデータベースは、分配に利用可能なユーザアカウント、及び外部最新情報パッケージを管理するために使用されるいくつかのデータベーステーブルを含むことができる。アカウントの種類及び状態だけでなく、ユーザテーブルは、基本的なログイン及び交信情報、アカウントの追跡情報、及び履歴情報を含むことができる。図３は、本発明の実施例による外部最新情報パッケージテーブルの概要を例証する図である。“vendor type”フィールド３００は、これがどんな種類の販売者であるかをシステムに通知するために使用されるフラグであり得る。販売者の種類は、自動ダウンロードと自動発行、自動ダウンロードと手動確認発行、及び手動ダウンロードと手動確認であり得る。
【００１８】
在庫管理エンジン１０２は、分配及びクライアントアプリケーションバージョン情報に関する外部最新情報パッケージの有効性を管理するために使用されるいくつかのデータベーステーブルから成るそれ自身のＳＱＬデータベースを備えることができる。図４Ａ及び図４Ｂは、本発明の実施例による在庫管理テーブルの概要を例証する図である。“ICSoftwareUpdateType”フィールド４００は、どんな種類のアプリケーションを実行するかをシステムに通知するために使用されるフラグであり得る。選択範囲は、自動即時更新、自動初期設定更新時間、通知による手動更新、及び通知なしの手動更新を含むことができる。
【００１９】
在庫管理エンジン１０２によって通知される分配エンジン１０４は、外部のパッケージインストールの予定を決定すると共に、全てのクライアント更新の状態を記録することができる。クライアント制御モジュール１０６は、内部及び外部の両方の構成要素を備えることができる。外部の構成要素は、予防接種クライアント（Inoculation Client：ＩＣ）と呼ばれ得る。ＩＣは、クライアント制御モジュール１０６に通知する、組織の至る所のサーバまたはワークステーションにインストールされたクライアント側アプリケーションである。ＩＣは、ネットワーク上のクライアントの有効性をＩＳに渡すと共に、状態報告を在庫管理モジュールに送信する。ＩＣは、同様に、データベースを照会すると共に、利用可能であろうあらゆるジョブを開始する。一度ジョブが確認されると、ＩＣは、最新情報パッケージをダウンロードすると共に、コマンドラインインタフェース（command line interface）の使用を通じて、インストールを開始することができる。一度最新情報が適用されると、ＩＣは、ＸＭＬによってＩＳに返信することができる。
【００２０】
分配エンジンデータベースは、分配のために外部最新情報パッケージジョブを管理すると共に、状態情報を更新するために使用されるいくつかのデータベーステーブルを含むことができる。図５は、本発明の実施例による分配制御テーブルの概要を例証する図である。“DcOSJobType”フィールド５００は、このアプリケーションがどんな種類の最新情報を利用するかをシステムに通知するために使用されるフラグであり得る。選択範囲は、自動即時更新、自動初期設定更新時間、通知による手動更新、及び通知なしの手動更新を含むことができる。
【００２１】
構造化照会言語（Structured Query Language：ＳＱＬ）データベースであり得るデータベース１０８は、ＩＳプラットフォーム内の各モジュールに関する全ての情報の記憶装置を提供することができる。これは、前述の全てのデータベースを含むことができる。データベース１０８は、同様に、どのクライアントが最新情報を適用される準備が整っているかを確認する際に、在庫管理モジュール１０２を支援するために、保存された手続きの使用を通じて、データの比較を管理することができる。
【００２２】
ＩＳプラットフォームは、迅速かつ効果的に、組織のネットワークを横断して安全性の最新情報を適用すると共に、実行するように具体的に設計されている。それは、コンピュータがソフトウェア最新情報を紛失しているとき、検出するための重要な能力を提供すると共に、これらの最新情報の分配を容易にし、そして、全ての引き渡しが成功したことを保証するのを助けるために、完全な状態報告を提供する。
【００２３】
そのプロセスは、以下のとおりに機能することができる。第１に、システムアドミニストレータは、１回限りのイベントで、ＩＳを設定する（もしくはデフォルト設定を進める）と共に、ＧＵＲに対する最初の接続を実行することができる。システムアドミニストレータは、次に、ローカルマシンにＩＣをインストールすることができると共に、それからＩＳに対する最初の接続を実行する。ＩＣは、その場合に、規則正しく予定された処理を通じて、アプリケーション及びシステム情報を、（例えば、ＸＭＬによって）ＩＳに渡すことができる。この情報は、オペレーティングシステム情報とバージョン、インストールされたソフトウェアアプリケーションとバージョン、及びネットワーク情報を含むことができる。
【００２４】
在庫管理エンジンは、その場合に、規則正しく予定される処理を通じて（例えば１日に１度）、全てのクライアント情報を、現存する外部の最新情報と比較する。もしクライアントに関する最新情報が存在する場合、在庫管理エンジンは、その場合に、最新情報パッケージ及びクライアントに、予定される最新情報に関するフラグを立てることができる。在庫管理エンジンによって始動される更新スケジューラは、その場合に、分配に関するジョブを待ち行列に入れることができる。それから、ＩＣは、利用可能な分配ジョブを調査するために規則正しく予定される処理を通じて、ＩＳに接続することができる。もしジョブが発見される場合、ＩＣは、パッケージ情報を始めるようにＩＳを従事させることができる。
【００２５】
一度インストールが完了すると、ＩＣは、更新状態モジュールを通じて、インストールは完了したとＩＳに通知することができる。もし最新情報パッケージをインストールすることを失敗した場合、ＩＣは、同様に、ＩＳに通知する。停電または他のネットワーク妨害の場合には、ＩＣは、もし必要ならばインストール手順を再開することができる。インストールが完了すると、ＩＣは、同様に、新しいソフトウェア最新情報、または新しいオペレーティングシステムバージョン情報を、クライアント状態モジュールを通じて在庫管理エンジンに通知することができる。その場合に、ＩＳは、処理を有効とし、そしてユーザ定義の要求のセットに基づいて、実行報告書及び技術報告書を提供することができる。
【００２６】
図６は、本発明の実施例による、組織によって制御された装置のネットワークにソフトウェア最新情報を自動的に分配する方法を例証するフローチャートである。ステップ６００において、１つ以上の装置を横断して分散された予防接種サーバが構成され得る。ステップ６０２において、予防接種サーバと全体最新情報リポジトリとの間の最初の接続が実行され得る。全体最新情報リポジトリは、予防接種サーバに供給されるべきオペレーティングシステム及びソフトウェアを管理する中央集権化されたリポジトリである。それは、ウェブスパイダー（web spider）を利用して、外部の安全性のウェブサイトが提供する外部の最新情報を、利用して、検索して、保存することができる。外部の最新情報は、販売者の種類を含むことができると共に、ここで販売者の種類とは、自動ダウンロードと自動発行、自動ダウンロードと手動確認発行、または手動ダウンロードと手動確認のことである。ステップ６０４において、アプリケーション及びシステム情報は、装置にインストールされた１つ以上の予防接種クライアントから受信されることができ、ここで受信は、ピアツーピア通信によって実行される。アプリケーション及びシステム情報は、オペレーティングシステム情報とバージョン、ソフトウェアアプリケーションとバージョン、及びネットワーク情報を含むことができる。それは、ＸＭＬフォーマットで受信されることができる。ステップ６０６において、アプリケーション及びシステム情報は、最新情報が予防接種クライアントによって制御された対応アプリケーションに関して存在するかどうかを判定するために、全体最新情報リポジトリ内のアプリケーション及びバージョン情報と比較されることができる。これは、“HTTP GET”命令、もしくは“POST”命令の利用を含むことができると共に、在庫管理エンジンによって実行されることができる。もし最新情報が予防接種クライアントによって制御されたアプリケーションに関して存在する場合、ステップ６０８において、最新情報は待ち行列に入れられることができる。これは、分配エンジンによって実行されることができる。ステップ６１０において、通信が、利用可能な分配ジョブについて調査する対応予防接種クライアントから受信されることができる。もし最新情報が対応予防接種クライアントによって制御されたアプリケーションに関して存在する場合、ステップ６１２において、最新情報が、通信の受信に応答する対応予防接種クライアントに送信されることができる。
【００２７】
図７は、本発明の実施例による、組織によって制御された装置のネットワークにソフトウェア最新情報を自動的に分配するための予防接種サーバを例証する構成図である。予防接種サーバは、１つ以上の装置を横断して分散されることができると共に、最初に構成され得る。それから、予防接種サーバと全体最新情報リポジトリとの間の最初の接続が実行され得る。全体最新情報リポジトリは、予防接種サーバに提供されるべきオペレーティングシステム及びソフトウェアを管理する中央集権化されたリポジトリである。それは、ウェブスパイダー（web spider）を利用して、外部の安全性のウェブサイトが提供する外部の最新情報を、利用して、検索して、保存することができる。外部の最新情報は、販売者の種類を含むことができると共に、ここで販売者の種類とは、自動ダウンロードと自動発行、自動ダウンロードと手動確認発行、または手動ダウンロードと手動確認のことである。予防接種クライアントアプリケーション及びシステム情報ピアツーピア受信機７００は、装置にインストールされた１つ以上の予防接種クライアントから、アプリケーション及びシステム情報を受信することができ、ここで受信は、ピアツーピア通信によって実行される。アプリケーション及びシステム情報は、オペレーティングシステム情報とバージョン、ソフトウェアアプリケーションとバージョン、及びネットワーク情報を含むことができる。それは、ＸＭＬフォーマットで受信されることができる。予防接種クライアントアプリケーションに接続されたアプリケーション及びシステム情報全体最新情報リポジトリ情報比較器７０２と、システム情報ピアツーピア受信機７００は、アプリケーション及びシステム情報を、最新情報が予防接種クライアントによって制御された対応アプリケーションに関して存在するかどうかを判定するために、全体最新情報リポジトリ内のアプリケーション及びバージョン情報と比較することができる。これは、“HTTP GET”命令、もしくは“POST”命令の利用を含むことができると共に、在庫管理エンジンによって実行されることができる。アプリケーション及びシステム情報全体最新情報リポジトリ情報比較器７０２に接続された最新情報待ち行列７０４は、もし最新情報が予防接種クライアントによって制御されたアプリケーションに関して存在する場合、最新情報を待ち行列に入れることができる。これは、分配エンジンによって実行されることができる。予防接種クライアント利用可能分配ジョブ通信受信機７０６は、利用可能な分配ジョブについて調査する対応予防接種クライアントから、通信を受信することができる。最新情報待ち行列７０４に接続されると共に、予防接種クライアント利用可能分配ジョブ通信受信機７０６に接続された最新情報送信器７０８は、もし最新情報が対応予防接種クライアントによって制御されたアプリケーションに関して存在する場合、通信の受信に応答して、最新情報を対応予防接種クライアントに送信することができる。
【００２８】
構造における様々な構成要素間の通信は、パッチモジュール、及びウェブモジュールを用いて達成されることができる。パッチモジュールは、在庫管理、分配制御、及びクライアント制御間の通信を取り扱うことができる。ウェブモジュールは、ユーザインタフェースと、在庫管理、分配制御、及びクライアント制御との間の通信を取り扱うことができる。
【００２９】
クライアント、及びサーバは、内蔵モジュールを用いて構成されることができる。各モジュールは、プログラムの動作の明白な特徴に関与する。全てのモジュールは、要求及び命令をモジュール間で適切に送信する中央モジュールと通信することができる。モジュールは、相互に独立して実行すると共に、相互に処理状態を把握せず、これは、各モジュールの中で、要求または命令のあらゆる順序が正しく扱われることを意味する。これは、アプリケーションを、モノリシックの設計より更に効率的にする。
【００３０】
モジュールの間の通信は、ＸＭＬに基づくことができる。各データ要求、または命令は、特定のＸＭＬ形式の事例であり得る。モジュールは、それぞれ、形式の段落を理解して、あらゆる不適当な通信を廃棄する。ＸＭＬフォーマットのデータを読むために自由に利用可能な手段があると共に、カスタムのＸＭＬ形式のためにこれらの手段を利用することが容易であるので、これは、データの処理を単純化する。
【００３１】
各モジュールの実行は、傾聴、処理、応答の経路の後に続くことができる。傾聴段階において、モジュールは、他のモジュール（すなわち、アプリケーション内の別のモジュール、またはＧＵＩのような外部の構成要素、またはもしそのモジュールがクライアント側にあるならばサーバ）からの通信を待機することができる。メッセージが受信されるとき、その場合に、それは、構文の正当性を確認されると共に、その後で処理段階に渡されることができる。処理段階は、最初に、要求（の一部または全体）の文法的な正当性を判定すると共に、次に、データを収集し、要求を転送するか、または第３のモジュールに要求を行うような動作を実行することが必要となる可能性がある要求を送信する。応答段階は、最初の段階において受信されたメッセージから応答が生成され得る任意の段階である。応答は、最初のメッセージを送信したモジュールへ返信されるメッセージである。モジュールは応答を待たず、従って、応答はもう一方のモジュールにおける新しい実行サイクルを生成する。
【００３２】
例えば、クライアントが提供する利用可能なパッチを、ユーザインターフェースが要求すると仮定する。ユーザインタフェースは、最初に要求を送信することになる。そして、クライアント側にあるウェブモジュールは、メッセージを受信し、構文と文法を確認すると共に、要求をメインモジュールに送信することができる。ここで、ウェブモジュールは、傾聴状態にある。クライアントのメインモジュールは、その場合に、ウェブモジュールからメッセージを受信することができ、構文及び文法を確認すると共に、パッチモジュールにリストを求める要求を行う。ここで、メインモジュールは、傾聴状態にある。パッチモジュールは、その場合に、メインモジュールから要求を受信し、情報を収集すると共に、メインモジュールに応答することができる。これの後で、メインスレッドは、パッチモジュールからウェブモジュールに応答を渡すことができる。最終的に、ウェブモジュールは、応答をユーザインタフェースに送信することができると共に、その処理は完了する。
【００３３】
図８、本発明の実施例による、クライアント−サーバ間データ実行フローを例証する図である。ここで、クライアント８００とサーバ８０２は、独立したスレッドを実行する。同様に傾聴段階８１６、処理段階８１８、及び応答段階８２０を有するメインスレッド８１４と同様に、ユーザインタフェース８１２と連係することができるウェブモジュールスレッド８０４は、傾聴段階８０６、処理段階８０８、及び応答段階８１０を有することができる。同様に、サーバ８０２上のメインスレッド８１４及びパッチスレッド８３０と連係するパッチモジュールスレッド８２２は、傾聴段階８２４、処理段階８２６、及び応答段階８２８を有することができる。
【００３４】
本発明の実施例及びアプリケーションが示されると共に説明される一方、上述の言及より更に多くの修正が、ここに示される発明概念からはずれずに可能であることが、この開示の利益を得る当業者にとって明白である。従って、本発明は、付加された特許請求の範囲の精神を除いて制限されるべきではない。
【図面の簡単な説明】
【００３５】
【図１】本発明の実施例による予防接種（Inoculation）サーバプラットフォームを例証する図である。
【図２】本発明の実施例による新しい外部更新情報を含むＸＭＬ文書の例を例証する図である。
【図３】本発明の実施例による外部最新情報パッケージテーブルの概要を例証する図である。
【図４Ａ】本発明の実施例による在庫管理テーブルの概要を例証する図である。
【図４Ｂ】本発明の実施例による在庫管理テーブルの概要を例証する図である。
【図５】本発明の実施例による分配制御テーブルの概要を例証する図である。
【図６】本発明の実施例による、組織によって制御された装置のネットワークにソフトウェア最新情報を自動的に分配する方法を例証するフローチャートである。
【図７】本発明の実施例による、組織によって制御された装置のネットワークにソフトウェア最新情報を自動的に分配するための予防接種サーバを例証する構成図である。
【図８】本発明の実施例によるクライアント−サーバ間データ実行フローを例証する図である。
【符号の説明】
【００３６】
１００    ユーザインタフェース
１０２    在庫管理エンジン
１０４    分配エンジン
１０６    クライアント制御モジュール
１０８    データベース
３００    “vendor type”フィールド
４００    “ICSoftwareUpdateType”フィールド
５００    “DcOSJobType”フィールド
７００    予防接種クライアントアプリケーション及びシステム情報ピアツーピア受信機
７０２    アプリケーション及びシステム情報全体最新情報リポジトリ情報比較器
７０４    最新情報待ち行列
７０６    予防接種クライアント利用可能分配ジョブ通信受信機
７０８    最新情報送信器
８００    クライアント
８０２    サーバ
８０４    ウェブモジュールスレッド
８０６    傾聴段階
８０８    処理段階
８１０    応答段階
８１２    ユーザインタフェース
８１４    メインスレッド
８１６    傾聴段階
８１８    処理段階
８２０    応答段階
８２２    パッチモジュールスレッド
８２４    傾聴段階
８２６    処理段階
８２８    応答段階
８３０    パッチスレッド
【図１】
2007538302.tif 000002
【図２】
2007538302.tif 000003
【図３】
2007538302.tif 000004
【図４Ａ】
2007538302.tif 000005
【図４Ｂ】
2007538302.tif 000006
【図５】
2007538302.tif 000007
【図６】
2007538302.tif 000008
【図７】
2007538302.tif 000009
【図８】
2007538302.tif 000010