(57)【特許請求の範囲】
【請求項１】
複合機であって、
現行版の特定のソフトウェア・コンポーネントを含む１又は複数のソフトウェア・コンポーネント、
印刷データを処理し、有体の媒体に印刷されるべき印刷データに表された電子文書の印刷された版を生成する印刷モジュール、を有し、
前記複合機は、
前記複合機から、Ｗｅｂ−Ｓｅｒｖｉｃｅｓ  Ｄｉｓｃｏｖｅｒｙプロトコルに従うマルチキャスト発見メッセージを送信する段階、
更新サーバーから、Ｗｅｂ−Ｓｅｒｖｉｃｅｓ  Ｄｉｓｃｏｖｅｒｙプロトコルに従い、前記更新サーバーが前記１又は複数のソフトウェア・コンポーネントのうちの１又は複数の更新を提供可能であることを示す発見応答メッセージを受信する段階、
前記発見応答メッセージの受信に応じて、前記複合機から前記更新サーバーへ、Ｗｅｂ−Ｓｅｒｖｉｃｅｓ  Ｅｖｅｎｔｉｎｇプロトコルに従い、前記更新サーバーが前記特定のソフトウェア・コンポーネントの更新版を受信したときに、前記複合機が前記更新サーバーにより通知されるべきであると示すイベント予約メッセージを送信する段階、
前記更新サーバーから、Ｗｅｂ−Ｓｅｒｖｉｃｅｓ  Ｅｖｅｎｔｉｎｇプロトコルに従い、前記更新サーバーが前記特定のソフトウェア・コンポーネントの更新版を受信していることを示すイベント通知メッセージを受信する段階、
前記イベント通知メッセージの受信に応じて、前記複合機から前記更新サーバーへ、前記特定のソフトウェア・コンポーネントの更新版の要求を送信する段階、
前記更新サーバーから、前記特定のソフトウェア・コンポーネントを受信する段階、及び
前記特定のソフトウェア・コンポーネントの現行版を、前記特定のソフトウェア・コンポーネントの更新版で更新する段階、を実行する複合機。
【請求項２】
前記イベント予約メッセージは、特定のソフトウェア種類を指定し、
前記特定のソフトウェア種類は、前記特定のソフトウェア・コンポーネントを含む複数の異なるソフトウェア・コンポーネントに対応する、請求項１に記載の複合機。
【請求項３】
前記イベント予約メッセージは、前記特定のソフトウェア種類と異なる第２のソフトウェア種類も指定し、
前記複合機は、
前記更新サーバーから、Ｗｅｂ−Ｓｅｒｖｉｃｅｓ  Ｅｖｅｎｔｉｎｇプロトコルに従い、前記更新サーバーが前記第２のソフトウェア種類に属する第２のソフトウェア・コンポーネントの更新版を受信していることを示す第２のイベント通知メッセージを受信する段階、
前記第２のイベント通知メッセージの受信に応じて、前記複合機から前記更新サーバーへ前記第２のソフトウェア・コンポーネントの更新版の要求を送信する段階、
前記更新サーバーから、前記第２のソフトウェア・コンポーネントを受信する段階、及び
前記第２のソフトウェア・コンポーネントの現行版を、前記第２のソフトウェア・コンポーネントの更新版で更新する段階、を実行する請求項１に記載の複合機。
【請求項４】
複合機であって、
前記更新サーバーが利用不可能であると決定する段階、
前記更新サーバーが利用不可能であるという決定に応じて、Ｗｅｂ−Ｓｅｒｖｉｃｅｓ  Ｄｉｓｃｏｖｅｒｙプロトコルに従う第２のマルチキャスト発見メッセージを送信する段階、
第２の更新サーバーから、Ｗｅｂ−Ｓｅｒｖｉｃｅｓ  Ｄｉｓｃｏｖｅｒｙプロトコルに従い、前記第２の更新サーバーが前記１又は複数のソフトウェア・コンポーネントのうちの１又は複数の更新を提供可能であると示す第２の発見応答メッセージを受信する段階、
前記第２の発見応答メッセージに応じて、前記複合機から前記第２の更新サーバーへ、Ｗｅｂ−Ｓｅｒｖｉｃｅｓ  Ｅｖｅｎｔｉｎｇプロトコルに従い、前記第２の更新サーバーが前記特定のソフトウェア・コンポーネントの別の更新版を受信したときに、前記複合機が前記第２の更新サーバーにより通知されるべきであることを示す第２のイベント予約メッセージを送信する段階、
前記第２の更新サーバーから、Ｗｅｂ−Ｓｅｒｖｉｃｅｓ  Ｅｖｅｎｔｉｎｇプロトコルに従い、前記第２の更新サーバーが前記特定のソフトウェア・コンポーネントの第２の更新版を受信していることを示す第２のイベント通知メッセージを受信する段階、
前記第２のイベント通知メッセージの受信に応じて、前記複合機から前記第２の更新サーバーへ、前記特定のソフトウェア・コンポーネントの第２の更新版の要求を送信する段階、
前記第２の更新サーバーから、前記特定のソフトウェア・コンポーネントの第２の更新版を受信する段階、及び
前記特定のソフトウェア・コンポーネントの現行版を、前記特定のソフトウェア・コンポーネントの第２の更新版で更新する段階、を実行する請求項１記載の複合機。
【請求項５】
前記複合機は、
前記イベント通知メッセージの受信に応じて、前記複合機での前記特定のソフトウェア・コンポーネントの現行版の実行を停止させる段階、及び
前記特定のコンポーネントの更新に応じて、前記特定のソフトウェア・コンポーネントの実行を開始させる段階、を更に実行する請求項１記載の複合機。
【請求項６】
前記複合機は、Ｗｅｂ−Ｓｅｒｖｉｃｅｓ  Ｄｅｖｉｃｅｓ  Ｐｒｏｆｉｌｅにより要求されるＷｅｂ−Ｓｅｒｖｉｃｅｓ仕様のセットを実装する、請求項１記載の複合機。
【請求項７】
前記複合機は、
前記複合機で、第１のスレッド、第２のスレッド、及び第３のスレッドを生成する段階、を更に実行し、
前記第１のスレッドは、発見応答メッセージを受信し、
前記第２のスレッドは、イベント予約メッセージを送信し、及び
前記第３のスレッドは、イベント通知メッセージを受信し、前記イベント通知メッセージと関連する更新されたソフトウェア・コンポーネントを要求する、請求項１記載の複合機。
【請求項８】
現行版の特定のソフトウェア・コンポーネントを含む複合機にある１又は複数のソフトウェア・コンポーネントを更新する方法であって、前記方法は、
前記複合機は、印刷データを処理し、有体の媒体に印刷されるべき印刷データに表された電子文書の印刷された版を生成する印刷モジュールを有し、前記複合機から、Ｗｅｂ−Ｓｅｒｖｉｃｅｓ  Ｄｉｓｃｏｖｅｒｙプロトコルに従うマルチキャスト発見メッセージを送信する段階、
更新サーバーから、Ｗｅｂ−Ｓｅｒｖｉｃｅｓ  Ｄｉｓｃｏｖｅｒｙプロトコルに従い、前記更新サーバーが前記１又は複数のソフトウェア・コンポーネントのうちの１又は複数の更新を提供可能であることを示す発見応答メッセージを受信する段階、
前記発見応答メッセージの受信に応じて、前記複合機から前記更新サーバーへ、Ｗｅｂ−Ｓｅｒｖｉｃｅｓ  Ｅｖｅｎｔｉｎｇプロトコルに従い、前記更新サーバーが前記特定のソフトウェア・コンポーネントの更新版を受信したときに、前記複合機が前記更新サーバーにより通知されるべきであると示すイベント予約メッセージを送信する段階、
前記更新サーバーから、Ｗｅｂ−Ｓｅｒｖｉｃｅｓ  Ｅｖｅｎｔｉｎｇプロトコルに従い、前記更新サーバーが前記特定のソフトウェア・コンポーネントの更新版を受信していることを示すイベント通知メッセージを受信する段階、
前記イベント通知メッセージの受信に応じて、前記複合機から前記更新サーバーへ、前記特定のソフトウェア・コンポーネントの更新版の要求を送信する段階、
前記更新サーバーから、前記特定のソフトウェア・コンポーネントを受信する段階、及び
前記特定のソフトウェア・コンポーネントの現行版を、前記特定のソフトウェア・コンポーネントの更新版で更新する段階、を有する方法。
【請求項９】
現行版の特定のソフトウェア・コンポーネントを含む複合機にある１又は複数のソフトウェア・コンポーネントを更新する命令を格納するコンピューター可読記憶媒体であって、前記命令は、１又は複数のプロセッサーにより実行されると、前記１又は複数のプロセッサーに、
前記複合機は、印刷データを処理し、有体の媒体に印刷されるべき印刷データに表された電子文書の印刷された版を生成する印刷モジュールを有し、前記複合機から、Ｗｅｂ−Ｓｅｒｖｉｃｅｓ  Ｄｉｓｃｏｖｅｒｙプロトコルに従うマルチキャスト発見メッセージを送信する段階、
更新サーバーから、Ｗｅｂ−Ｓｅｒｖｉｃｅｓ  Ｄｉｓｃｏｖｅｒｙプロトコルに従い、前記更新サーバーが前記１又は複数のソフトウェア・コンポーネントのうちの１又は複数の更新を提供可能であることを示す発見応答メッセージを受信する段階、
前記発見応答メッセージの受信に応じて、前記複合機から前記更新サーバーへ、ＷＳ−Ｅｖｅｎｔｉｎｇプロトコルに従い、前記更新サーバーが前記特定のソフトウェア・コンポーネントの更新版を受信したときに、前記複合機が前記更新サーバーにより通知されるべきであると示すイベント予約メッセージを送信する段階、
前記更新サーバーから、Ｗｅｂ−Ｓｅｒｖｉｃｅｓ  Ｅｖｅｎｔｉｎｇプロトコルに従い、前記更新サーバーが前記特定のソフトウェア・コンポーネントの更新版を受信していることを示すイベント通知メッセージを受信する段階、
前記イベント通知メッセージの受信に応じて、前記複合機から前記更新サーバーへ、前記特定のソフトウェア・コンポーネントの更新版の要求を送信する段階、
前記更新サーバーから、前記特定のソフトウェア・コンポーネントを受信する段階、及び
前記特定のソフトウェア・コンポーネントの現行版を、前記特定のソフトウェア・コンポーネントの更新版で更新する段階、を実行させる、コンピューター可読記憶媒体。
【請求項１０】
現行版の特定のソフトウェア・コンポーネントを含む複合機にある１又は複数のソフトウェア・コンポーネントを更新するネットワーク装置であって、前記ネットワーク装置は、
前記複合機は、印刷データを処理し、有体の媒体に印刷されるべき印刷データに表された電子文書の印刷された版を生成する印刷モジュールを有し、前記複合機から、Ｗｅｂ−Ｓｅｒｖｉｃｅｓ  Ｄｉｓｃｏｖｅｒｙプロトコルに従うマルチキャスト発見メッセージを受信する段階、
前記発見応答メッセージの受信に応じ、前記複合機から、Ｗｅｂ−Ｓｅｒｖｉｃｅｓ  Ｄｉｓｃｏｖｅｒｙプロトコルに従い、前記ネットワーク装置が前記１又は複数のソフトウェア・コンポーネントのうちの１又は複数の更新を提供可能であることを示す発見応答メッセージを受信する段階、
前記複合機から、Ｗｅｂ−Ｓｅｒｖｉｃｅｓ  Ｅｖｅｎｔｉｎｇプロトコルに従い、前記ネットワーク装置が前記特定のソフトウェア・コンポーネントの更新版を受信したときに、前記ネットワーク装置が前記複合機に通知すべきであると示すイベント予約メッセージを受信する段階、
前記特定のソフトウェア・コンポーネントの更新版の受信に応じて、前記複合機へ、Ｗｅｂ−Ｓｅｒｖｉｃｅｓ  Ｅｖｅｎｔｉｎｇプロトコルに従い、前記ネットワーク装置が前記特定のソフトウェア・コンポーネントの更新版を受信していることを示すイベント通知メッセージを送信する段階、
前記複合機から、前記特定のソフトウェア・コンポーネントの更新版の要求を受信する段階、
前記複合機へ、前記特定のソフトウェア・コンポーネントの更新版を送信する段階、を実行するネットワーク装置。
【請求項１１】
前記イベント予約メッセージは、特定のソフトウェア種類を指定し、
前記特定のソフトウェア種類は、前記特定のソフトウェア・コンポーネントを含む複数の異なるソフトウェア・コンポーネントに対応する、請求項１０に記載のネットワーク装置。
【請求項１２】
前記イベント予約メッセージは、前記特定のソフトウェア種類と異なる第２のソフトウェア種類も指定し、
前記ネットワーク装置は、
前記複合機へ、Ｗｅｂ−Ｓｅｒｖｉｃｅｓ  Ｅｖｅｎｔｉｎｇプロトコルに従い、前記更新サーバーが前記第２のソフトウェア種類に属する第２のソフトウェア・コンポーネントの更新版を受信していることを示す第２のイベント通知メッセージを送信する段階、
前記複合機から、前記第２のソフトウェア・コンポーネントの更新版の第２の要求を受信する段階、
前記第２の要求に応じ、前記複合機へ、前記第２のソフトウェア・コンポーネントを送信する段階、を実行する請求項１１に記載のネットワーク装置。
【請求項１３】
前記ネットワーク装置は、
前記更新サーバーは、如何なる複合機へもイベント通知を送信できないと決定する段階、及び
前記第２の更新サーバーに、前記イベント予約メッセージに関連するイベント予約情報を保持させる段階、を更に実行する請求項１０に記載のネットワーク装置。
【請求項１４】
前記ネットワーク装置は、第１のスレッド、第２のスレッド、及び第３のスレッドを生成する段階を更に実行し、
前記第１のスレッドは、発見応答メッセージを受信し、
前記第２のスレッドは、イベント予約メッセージを送信し、及び
前記第３のスレッドは、複数のソフトウェア・コンポーネントの更新を受信し、前記更新に応じてイベント通知メッセージを送信する、請求項１０記載のネットワーク装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ウェブ・サービスを用いた複合機（ＭＦＰ）の更新に関する。
【背景技術】
【０００２】
ここで記載される手法は、達成しようとされた手法であるが、しかし必ずしも以前に考えられ又は達成された手法ではない。従って、特に示されない限り、本明細書に記載された如何なる手法も、単に本明細書に含まれるという点から従来技術として考えられるべきではない。
【０００３】
ワールド・ワイド・ウェブ（「ＷＷＷ」）は、世界的規模の情報空間である。文字文書、画像、マルチメディア、及び情報資源と称される多くの他の情報項目は、統一資源識別子（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｉｄｅｎｔｉｆｉｅｒ：ＵＲＩ）と称される短いユニークなグローバルな識別子により識別される。従って、各情報資源は、簡易な方法で発見し、アクセスし、相互参照できる。
【０００４】
ワールド・ワイド・ウェブ・コンソーシアム（「Ｗ３Ｃ」）は、ワールド・ワイド・ウェブの標準を制定する国際団体である。Ｗ３Ｃは、「ウェブ・サービス」を、ネットワークを介した相互運用可能なマシン間の相互作用を支援するソフトウェア・システムと定める。この定義は、多くの異なるシステムを包含する。しかし一般的な用法では、この用語は、ＳＯＡＰ形式の拡張マークアップ言語（「ＸＭＬ」）を用いるサービスを表す。このようなサービスは、ウェブ・サービス記述言語（「ＷＳＤＬ」）を用いて記述されるサービスのインターフェースを有する。ウェブ・サービスは、装置及びアプリケーションが、如何なる人間も加入することなく、人間が各装置及びアプリケーションと１又は複数のネットワークを介して通信するために使用する同一のプロトコル群（例えば、ハイパーテキスト転送プロトコル「ＨＴＴＰ」）を用いて、１又は複数のネットワークを介し互いに通信することを可能にする。
【０００５】
ウェブ・サービスを定める仕様は、モジュールを意図している。その結果、全てのウェブ・サービスを定める１つの文書は存在しない。代わりに、環境や技術の選択を指示する他の仕様により補完されている幾つかの核となる仕様が存在する。共通の核となる仕様は、ＳＯＡＰ、ＷＳＤＬ、ＷＳ−Ｓｅｃｕｒｉｔｙ（Webサービスにセキュリティを適用する手段を提供する通信プロトコル）、及びＷＳ−ＲｅｌｉａｂｌｅＥｘｃｈａｎｇｅ（メッセージを交換する際に、持続性確保、配信保証、重複回避、順番保護、配信状態確認などの機能を利用するためのプロトコル）である。異なる仕様は異なるタスク及び機能を解決する。
ＳＯＡＰは、ＸＭＬに基づく拡張可能なメッセージを包むフォーマットであり、下位のプロトコル（ＨＴＴＰ、簡易メール転送プロトコル（「ＳＭＴＰ」））と結合する。ＸＭＬを用い、ＳＯＡＰは、メッセージがどのようにフォーマットされるかを定める。これにより、これらのメッセージは、当該メッセージの受信側（装置及びアプリケーション）が当該メッセージを理解できるようにフォーマットされる。ＳＯＡＰは、例えば遠隔手続呼び出しを実行するために用いられる。
ＷＳＤＬは、ＸＭＬフォーマットである。ＸＭＬフォーマットは、ウェブ・サービスを特定のプロトコルと結合するインターフェースの詳細に従い記述することを可能にする。ＷＳＤＬは、サーバー及びクライアントのコード、及び設定を生成するために標準的に用いられる。
【０００６】
［ＭＦＰ］
複合機（Ｍulti  Ｆunction  Peripheral）は、印刷サービス、ファックス・サービス、スキャン・サービス、コピー・サービス、及びアーカイブ・サービスのような複数のサービスを提供する周辺機器のことであり、ＭＦＰと呼ばれる。従って、ＭＦＰが印刷サービスを有する場合、ＭＦＰは、印刷データを処理し、紙のような有体の媒体に印刷されるべき印刷データに表された電子文書の印刷された版を生成する印刷モジュールを有する。印刷モジュールは、コンピューター・ハードウェア、コンピューター・ソフトウェア、又はコンピューター・ハードウェア及びコンピューター・ソフトウェアの両方の組み合わせとして実施される。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ＭＦＰのソフトウェア・コンポーネントは、時には更新する必要がある。しかしながら、このような更新を実行する多数の望ましくない特徴がある。第一に、ＭＦＰのソフトウェア・コンポーネントの更新は、標準的に幾つかの手動の段階を必要とする。第二に、ＭＰＦは、更新したソフトウェア・コンポーネントを有効にするために、標準的にオフラインで行われる。第三に、ＭＦＰが更新を受信する自動更新ソフトウェアを有する場合、当該ソフトウェアは固定された所定の更新サーバーを使用する。第四に、ＭＦＰが自動更新ソフトウェアを有する場合、ＭＦＰの更新クライアント及び更新を送信する更新サーバーは、標準的に、特定のソフトウェア種類、特定のオペレーティング・システム・プラットフォーム、及び／又は特定の言語に基づき結合される。例えば、異なる種類のソフトウェアへの更新は、ＭＦＰの異なる更新エージェント、及び異なるサーバーを必要とする。
【課題を解決するための手段】
【０００８】
ウェブ・サービスを用いた複合機（ＭＦＰ）のソフトウェア・コンポーネントを更新する技術を提供する。ＭＦＰは、ＷＳ−Ｄｉｓｃｏｖｅｒｙプロトコルに従うマルチキャスト発見メッセージを送信する。ＭＦＰからの発見メッセージの受信に応じて、更新サーバーは、ＷＳ−Ｄｉｓｃｏｖｅｒｙプロトコルに従う発見応答メッセージを生成し、ＭＦＰへ送信する。発見応答メッセージの受信に応じて、ＭＦＰは、更新サーバーへ、ＷＳ−Ｅｖｅｎｔｉｎｇプロトコルに従うイベント予約メッセージを送信する。イベント予約メッセージは、更新サーバーが特定のソフトウェア・コンポーネントの更新版を受信したときに、更新サーバーがＭＦＰに通知すべきであることを示す。
【０００９】
その後、更新サーバーは、ＭＦＰへ、ＷＳ−Ｅｖｅｎｔｉｎｇプロトコルに従うイベント通知メッセージを送信する。イベント通知メッセージは、更新サーバーが特定のソフトウェア・コンポーネントの更新版を受信していることを示す。イベント通知メッセージの受信に応じて、ＭＦＰは、更新サーバーへ、特定のソフトウェア・コンポーネントの更新版の要求を送信する。当該要求の受信に応じて、更新サーバーは、ＭＦＰへ、特定のソフトウェア・コンポーネントの更新版を送信する。ＭＦＰは、特定のソフトウェア・コンポーネントの現行版を、特定のソフトウェア・コンポーネントの更新版で更新する。
【００１０】
本願発明は、添付の図面に例として図示されるが、これらに限定されない。また、複数の図面を通じて、類似の参照符号は同様の要素を表す。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施例によるソフトウェア更新システムの例を示すブロック図である。
【図２】本発明の実施例によるソフトウェア更新システムの例に示された装置の異なるコンポーネントを示すブロック図である。
【図３】本発明の実施例による、ＭＦＰと、ＭＦＰのソフトウェア・コンポーネントを更新する更新サーバーとの間の通信の例を示すシーケンス図である。
【図４】本発明の実施例による、対応するＭＦＰを更新する種々の段階を実行する、ＭＦＰ更新エージェントの複数のスレッドを示すフロー図である。
【図５】本発明の実施例による、対応するＭＦＰを更新する種々の段階を実行する、サーバー更新エージェントの複数のスレッドを示すフロー図である。
【図６】本発明の実施例が実施され得るコンピューター・システムを図示するブロック図である。
【発明を実施するための形態】
【００１２】
以下の詳細な説明では、説明を目的として、本発明の完全な理解を提供するために、多くの詳細事項が説明される。しかしながら、本願明細書に記載された本発明の実施例はそのような特定の詳細にかかわらず実施されて良いことが明らかである。他の例では、本発明を不明瞭にすることを回避するため、良く知られた構造及び装置がブロック図の形式で示される。
【００１３】
［概要］
ＭＦＰは、ウェブ・サービス（以下、WSという）を用い、更新サーバーを発見し、ＭＦＰの特定のソフトウェア・コンポーネントを更新のために登録（又は予約（サブスクリプション））する。ＭＦＰは、ＷＳ−Ｄｉｓｃｏｖｅｒｙプロトコルに従う、１又は複数のソフトウェア種類を示すマルチキャスト発見メッセージを生成し送信する。更新サーバーは発見メッセージを受信する。更新サーバーが１又は複数のソフトウェア種類のうちの少なくとも１つのソフトウェアに対応している場合に、更新サーバーは発見応答メッセージをＭＦＰへ送信する。ＭＦＰは、更新サーバーへ、ＷＳ−Ｅｖｅｎｔｉｎｇプロトコルに従うイベント・サブスクリプション・メッセージを送信することにより、１又は複数の更新を登録する。アプリケーションの更新が可能な場合、更新サーバーは、ＭＦＰに、ＷＳ−Ｅｖｅｎｔｉｎｇプロトコルに従うイベント通知メッセージを通知する。
【００１４】
種々のＷＳプロトコルを定める仕様が時間と共に変化しても、あるバージョンのＷＳプロトコル（例えばＷＳ−Ｄｉｓｃｏｖｅｒｙ）を実装しているある装置は、異なるバージョンのＷＳプロトコルを実装している別の装置と通信することができる。従って、互いに通信する２つの装置は、それぞれ（又は何れも）必ずしも当該装置が対応している同一のバージョンのＷＳプロトコルを実装している必要はない。以下にＷＳ−Ｄｉｓｃｏｖｅｒｙ及びＷＳ−Ｅｖｅｎｔｉｎｇを単一のプロトコルのように説明するが、本発明の実施例は、各プロトコルの多数のバージョンに適用可能である。
【００１５】
［ソフトウェア更新システム］
図１は、本発明の実施例によるソフトウェア更新システム１００の例を示すブロック図である。ソフトウェア更新システム１００は、ＭＦＰ１１０Ａ−Ｃ、ネットワーク１２０、ソフトウェア更新サーバー１３０Ａ−Ｂを有する。関連する実施例では、単一のＭＦＰ（例えば１１０Ａ）と単一のソフトウェア更新サーバー（例えば１３０Ａ）のみがネットワーク１２０を介して通信可能に結合される。
【００１６】
ある実施例では、１又は複数のＭＦＰ１１０Ａ−ＣはＷＳの可能な装置である。ＷＳ(Web  Services)の可能な装置は、ウェブ・サービス向けのデバイス・プロファイル（ＤＰＷＳ）仕様を実装している装置である。ＤＰＷＳは、実装に関する制約の最小限のセットを定め、セキュアなウェブ・サービスのメッセージング、発見、記述、及び装置のイベントを可能にしている。ＤＰＷＳは、ＷＳＤＬ、ＸＭＬスキーム、ＳＯＡＰ、ＷＳ−Ａｄｄｒｅｓｓｉｎｇ、ＷＳ−ＭｅｔａｄａｔａＥｘｃｈａｎｇｅ、ＷＳ−Ｔｒａｎｓｆｅｒ、ＷＳ−Ｐｏｌｉｃｙ、ＷＳ−Ｓｅｃｕｒｉｔｙ、ＷＳ−Ｄｉｓｃｏｖｅｒｙ、及びＷＳ−Ｅｖｅｎｔｉｎｇのような中核となるウェブ・サービス標準に基づき構築される。
【００１７】
ＭＦＰ１１０Ａ−Ｃは、更新サーバー１３０Ａ−Ｂとネットワーク１２０を介して通信可能に結合される。ネットワーク１２０は、ＭＦＰ１１０Ａ−Ｃと更新サーバー１３０Ａ−Ｂとの間のデータ交換を提供する任意の媒体又は機構により実施される。ネットワーク１２０の非限定的な例には、ローカル・エリア・ネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、又はインターネットが含まれる。
【００１８】
１又は複数の更新サーバー１３０Ａ−Ｂは、ネットワーク・ノード、コンポーネント、及び／又は装置であってよい。更に又は代わりに、１又は複数の更新サーバー１３０Ａ−Ｂは、他のサービスを提供するネットワーク・ノード、コンポーネント、及び／又は装置に実装されてよい。このようなネットワーク・ノード／コンポーネント／装置の非限定的な例には、ウェブ・サーバー、ゲートウェイ、ルーター、及びスイッチが含まれる。
【００１９】
＜ソフトウェア更新システムの装置コンポーネント＞
図２は、本発明の実施例によるソフトウェア更新システム１００に示された装置の異なるコンポーネントを示すブロック図である。ＭＦＰ２１０は、更新サーバー２３０とネットワーク２２０を介して通信可能に結合される。ＭＦＰ２１０はＭＦＰ１１０Ａに相当し、更新サーバー２３０は更新サーバー１３０Ａに相当し、ネットワーク２２０はネットワーク１２０に相当する。
【００２０】
ＭＦＰ２１０は、ＭＦＰ更新エージェント２１２、及び複数のＭＦＰコンポーネント２１４Ａ−Ｃを有する。実施例では、ＭＦＰ更新エージェント２１２は、（ａ）適切な更新サーバーを発見し、（ｂ）適切な更新サーバーが特定の更新を受信した場合のイベント通知を予約し、（ｃ）イベント通知を傾聴(listening)し、（ｄ）受信したイベント通知に関連する更新を要求し、（ｅ）当該更新に関連する１又は複数のＭＦＰコンポーネント２１４Ａ−Ｃを停止し更新し、及び（ｆ）更新したコンポーネントを再起動する。
【００２１】
ＭＦＰコンポーネント２１４Ａ−Ｃの非限定的な例には、ＭＦＰ２１０により提供されるサービス（例えば印刷、スキャン）のそれぞれのための１又は複数のモジュールのセット、ＭＦＰを他のネットワーク装置に対し単一のエンティティとして表すデバイス・ファシリティ・マネージャ（ＤＦＭ）、ユーザーに提示されるグラフィカル・ユーザー・インターフェース（ＧＵＩ）動作可能なパネルが含まれる。
【００２２】
更新サーバー２３０は、サーバー更新エージェント２３２、及びコンポーネント管理モジュール２３４を有する。ある実施例では、サーバー更新エージェント２３２は、（ａ）サーバー更新エージェント２３２が起動又は停止したときに発見メッセージ（例えばＨＥＬＬＯ又はＢＹＥ）を送信し、（ｂ）ＭＦＰ更新エージェント２１２からの発見メッセージに応答し、（ｃ）ＭＦＰ更新エージェント２１２からのイベント予約を傾聴(listening)し処理し、（ｄ）イベント予約の１つと関連付けられたソフトウェア・コンポーネントの更新が受信されたときに、ＭＦＰ更新エージェント２１２に通知し、及び（ｅ）ＭＦＰ更新エージェント２１２からの、ソフトウェア・コンポーネントを更新する要求に応じる、処理である。
【００２３】
ある実施例では、コンポーネント管理モジュール２３４は、複数のソフトウェア・コンポーネントへの更新を格納し、モジュール２３４が別のバージョン（又は新しいバージョン）のソフトウェア・コンポーネントを受信したときにサーバー更新エージェント２１２に応答する（又は同意を通知する）。
【００２４】
更新エージェント２１２、２３２は、コンピューター・ハードウェア、コンピューター・ソフトウェア、又はコンピューター・ハードウェア及びコンピューター・ソフトウェアの両方の組み合わせとして実施される。
【００２５】
＜ＭＦＰと更新サーバーとの間の通信＞
図３は、本発明の実施例による、ＭＦＰと、ＭＦＰのソフトウェア・コンポーネントを更新する更新サーバーとの間の通信の例を示すシーケンス図である。簡単のため、互いに通信する処理及び／又はコンポーネントは、図２のＭＦＰ２１０のＭＦＰ更新エージェント２１２及びＭＦＰコンポーネント２１４Ａ、及び更新サーバー２３０のサーバー更新エージェント２３２である。
【００２６】
ステップ１で、ＭＦＰ更新エージェント２１２は、ＷＳ−Ｄｉｓｃｏｖｅｒｙプロトコルに従う発見メッセージを生成し、サーバー更新エージェント２３２へ送信する。ＭＦＰ更新エージェント２１２は利用可能な更新サーバーの位置を知る（又は識別する）ように予め設定されていないので、発見メッセージはマルチキャスト・メッセージである。この発見メッセージは、ＭＦＰ２１０に適用可能な更新を保持する利用可能な更新サーバーのためのネットワーク・プローブと考えられるので、本願明細書では発見メッセージを「プローブ・メッセージ」と称する。
【００２７】
ある実施例では、プローブ・メッセージは、１又は複数のソフトウェアの種類を指定する。１又は複数のソフトウェアの種類のそれぞれは、サーバー更新エージェント２３２が更新を探している１又は複数のソフトウェア・コンポーネントに相当する。例えば、プローブ・メッセージは、ソフトウェアの種類として「ＷＳプロトコル」を示す。ＭＦＰが実装するＷＳ仕様は、時間と共に変化しうる。ＷＳ仕様に関して「最新」であるために、ＭＦＰは自身のＷＳ実装を相応して更新する。新しいバージョンの１又は複数の特定のＷＳプロトコルが利用可能な場合、サーバー更新エージェント２３２は、イベントを示す１又は複数のイベント通知をＭＦＰ更新エージェント２１２へ送信する。
【００２８】
別の例では、プローブ・メッセージは、ソフトウェアの種類として「ＭＦＰサービス」を示す。ＭＦＰの製造者は、ＭＦＰにより提供される１又は複数のサービス（例えば、印刷、スキャン）の機能を更新する。更新は、例えばアーカイブ・サーバーのバグを修正すること、印刷ジョブに利用可能なオプション（例えば、追加の印刷サイズ）を追加することである。従って、これら２つの例に基づき、更新サーバー２３０は、複数種類のソフトウェア・コンポーネントの更新を保持する（例えば、格納及び／又は送信する）。
【００２９】
関連する実施例では、プローブ・メッセージは、ソフトウェアの種類を介してコンポーネントのカテゴリを指定する代わりに、１又は複数のＭＦＰコンポーネント２１４Ａ−Ｃを直接指定する。
【００３０】
ステップ２で、サーバー更新エージェント２３２は、プローブ・メッセージに応じて、ＷＳ−Ｄｉｓｃｏｖｅｒｙプロトコルに従う発見応答メッセージ（本願明細書では「プローブ・マッチ・メッセージ」と称する）を送信する。ある実施例では、プローブ・メッセージは、１又は複数のソフトウェアの種類を示す（例えば指定する）。従って、プローブ・マッチ・メッセージは、更新サーバー２３０が１又は複数のソフトウェア種類に対応するソフトウェア・コンポーネントを保持するか否かを示す。このシーケンスの例では、プローブ・マッチ・メッセージは、更新サーバー２３０が、プローブ・メッセージで示された１又は複数のソフトウェア種類の少なくとも１つに対応するソフトウェア・コンポーネントを保持する。或いは、更新サーバー２３０が、示された１又は複数のソフトウェア種類に対応する如何なるソフトウェア・コンポーネントも保持しない場合、サーバー更新エージェント２３２は、ＭＦＰ２１０に如何なる応答も送信しない。
【００３１】
ステップ３で、肯定的なプローブ・マッチ・メッセージに応じて、ＭＦＰ更新エージェント２１２は、ＷＳ−Ｅｖｅｎｔｉｎｇプロトコルに従う１又は複数のイベント予約メッセージを生成し、サーバー更新エージェント２３２へ送信する。イベント予約メッセージは、ＭＦＰ更新エージェント２１２が更新を探している１又は複数のソフトウェア種類を指定する。ソフトウェア種類の指定は、当該ソフトウェア種類に属する１又は複数のソフトウェア・コンポーネントを間接的に示す。更に又は代わりに、イベント予約メッセージは、ＭＦＰ更新エージェント２１２が更新を受信する可能性のある１又は複数のソフトウェア・コンポーネントを指定する。
【００３２】
サーバー更新エージェント２１２は、イベント予約を予約テーブルに格納する。表１は、予約テーブルの例を示す。
【表１】
0005434282.tif 000002
【００３３】
表１の各行は、異なる予約に対応する。表１の最初の列は、対応する予約を送信するＭＦＰのアドレスを格納する。２番目の列は、対応する予約が予約される１又は複数のコンポーネントの種類を格納する。３番目の列は、対応するソフトウェア・コンポーネントが対応するＭＦＰにダウンロード可能である場合にイベント通知が送信されるアドレス及びポート番号を格納する。
【００３４】
最初の列の情報は、非予約メッセージのような、特定の場合にサーバー更新エージェント２３２が後に通信するＭＦＰ更新エージェントのＩＰ情報を表す。ＷＳ―Ｅｖｅｎｔｉｎｇに基づき、イベント予約は、「返信（ＲｅｐｌｙＴｏ）」及び「通知（ＮｏｔｉｆｙＴｏ）」アドレスの両方を有する。最初の列のＩＰ情報は、「返信」アドレスに対応する。多くの場合には、「返信」アドレスは、「通知」アドレスと異なるポート番号を用いる。ＭＦＰ内に１つより多いネットワーク・カードが存在する場合、最初及び３番目の列のＩＰアドレスは、異なる。
【００３５】
ステップ４で、サーバー更新エージェント２３２は、予約しているソフトウェア種類の１つに属する新しいバージョンのソフトウェア・コンポーネントが利用可能であると決定する。本願明細書では、このソフトウェア・コンポーネントを「特定ソフトウェア・コンポーネント」と称する。この決定に応じて、サーバー更新エージェント２３２は、イベント通知をＭＦＰ更新エージェント２１２、及び予約テーブルに示された当該イベントを予約している他のＭＦＰへ送信する。イベント通知は、特定ソフトウェア・コンポーネントへの更新がダウンロード可能であることを示す。イベント通知は、更新したソフトウェア・コンポーネント及び／又は更新したソフトウェア・コンポーネントを要求するか否かを決定するのにＭＦＰを支援する更新の他の記述を含む。
【００３６】
サーバー更新エージェント２３２は、コンポーネント・テーブルが更新されるときに更新を知らされる。表２は、コンポーネント・テーブルの例を示す。
【表２】
0005434282.tif 000003
【００３７】
表２の各行は、ソフトウェア・コンポーネントのバージョンに関する情報を格納する。表２の最初の列は、対応するコンポーネントの名称を格納する。表２の２番目の列は、対応するコンポーネントを用いるＭＦＰの型名を格納する。３番目の列は、対応するコンポーネントのバージョン番号を格納する。４番目の列は、対応するコンポーネントがどこに格納されているかを識別するパスを格納する。種々のソフトウェア・コンポーネントは、更新サーバー２３０に対してローカル及び／又は遠隔に記憶される。
【００３８】
ある実施例では、コンポーネント管理モジュール２３４は、単一のソフトウェア種類を１又は複数の対応するソフトウェア・コンポーネントに割り付けるマッピング（例えば、テーブル）を保持する。本願明細書では、このマッピングをコンポーネント−種類マッピングと称する。従って、特定のソフトウェア・コンポーネントへの更新が（例えば上述の表２を用いて）決定すると、特定のソフトウェア・コンポーネントに対応するコンポーネント−種類マッピングのエントリを探す。エントリが発見されると、エントリは対応するソフトウェア種類を識別するために用いられる。従って、表１は、識別したソフトウェア種類から、識別したソフトウェア種類に関連する１又は複数のイベント予約を決定するために用いられる。
【００３９】
図３には示さないが、ＭＦＰ更新エージェント２１２は、イベント通知の受信に応じて、１又は複数の更新基準を分析し、更新を要求するか否かを決定する。例えば、イベント通知は、特定のソフトウェア・コンポーネントの更新のバージョン番号を示す。ＭＦＰ更新エージェント２１２は、特定のソフトウェア・コンポーネントの現在のバージョンのバージョン番号を更新のバージョン番号と比較する。更新のバージョン番号が現在のバージョンのバージョン番号より大きくない場合、ＭＦＰ更新エージェント２１２は、ステップ５−９に進まないことを決定する。
【００４０】
別の例では、イベント通知は、更新したソフトウェア・コンポーネントに対応するＭＦＰ装置の型番号を示す。ＭＦＰ更新エージェント２１２は、当該型番号がＭＦＰ２１０の型番号と同一か否かを決定する。同一でない場合、ＭＦＰ更新エージェント２１２は、ステップ５―９へ進まないと決定する。
【００４１】
ステップ５で、イベント通知に応じて、ＭＦＰ更新エージェント２１２は、特定のソフトウェア・コンポーネントの実行を停止する。ある実施例では、ＭＦＰ２１０で実行している他のソフトウェア・コンポーネントの何れも、この命令によって影響を受けない。例えば、更新がＭＦＰ２１０の印刷モジュールのためである場合、印刷モジュールだけが停止される。スキャン・モジュールやファックス・モジュールのような他のモジュールは、印刷モジュールにより提供される印刷サービスが働かない間も機能し続ける。
【００４２】
ステップ６で、ＭＦＰ更新エージェント２１２は、サ―バー更新エージェント２１２へ、特定のソフトウェア・コンポーネントの更新バージョンを要求する。
【００４３】
ステップ７で、要求に応じて、サーバー更新エージェント２３２は、特定のソフトウェア・コンポーネントの更新バージョンを、ＭＦＰ更新エージェント２１２へ送信する。関連する実施例では、ステップ６−７はステップ５の前に実行される。
【００４４】
ステップ８で、ＭＦＰ更新エージェント２１２は、特定のソフトウェア・コンポーネントを更新バージョンで更新する。
【００４５】
ステップ９で、ＭＦＰ更新エージェント２１２は、更新バージョンに基づき、特定のソフトウェア・コンポーネントを再起動する。
【００４６】
＜利用できない更新サーバー＞
本発明のある実施例では、更新サーバーは利用不可能になるかもしれない。例えば、予定されたシャットダウン、予期せぬ電力不足、又はネットワーク接続の障害により、利用不可能になる。更新サーバーが一時的に（又は永久に）オフラインになることを「見越している」場合は、更新サーバーは、（ＷＳ−Ｅｖｅｎｔｉｎｇプロトコルに従う）解約メッセージを、更新サーバーでのイベント通知を予約している各ＭＦＰへ送信する。本願明細書では、このようなイベント通知を予約しているＭＦＰを、更新サーバーに関する「登録ＭＦＰ」と称する。解約メッセージは、登録ＭＦＰと更新サーバーとの間の予約を効率的に終了する。更新を受信するために、登録ＭＦＰは、１又は複数の他の更新サーバーを発見し、当該更新サーバーからのイベント通知を予約する。
【００４７】
或いは、更新サーバーは、利用不可能になる前に、自身のコンポーネント管理の義務を別の更新サーバーへ転送する。例えば、第１の更新サーバーは、自身の予約テーブルとコンポーネント・テーブルを第２の更新サーバーにコピーする。第２の更新サーバーは、次に、第１の更新サーバーと同一又は異なるネットワーク（例えばＩＰ）アドレスで、第１の更新サーバーのように動作する。ある実施例では、第１及び第２の更新サーバーは、同一の論理ネットワーク・アドレスを共有する更新サーバーのクラスタの一部である。このような複数の更新サーバーは、個々の実装に依存して、単一のネットワーク・ノード、構成要素、又は装置に備わっている、又は別個のネットワーク・ノード、構成要素、又は装置に備わっている。
【００４８】
更新サーバーが利用不可能になることが予測されていない場合、又は更新サーバーが利用不可能になったときに、更新サーバーが解約メッセージを、自身の登録ＭＦＰのそれぞれへ送信するのに失敗した場合には、各登録ＭＦＰは、別の更新サーバーを発見するために、別のプローブ・メッセージを送出する。登録ＭＦＰは、複数の方法で、更新サーバーが利用不可能になったことを発見する。例えば、登録ＭＦＰが更新サーバーは、更新サーバーへ定期的に送信されるネットワークのｐｉｎｇメッセージがある所定時間の後に返ってこない場合に、利用不可能になったことを発見する。別の例では、登録ＭＦＰは、自身が予約している更新サーバーのイベント予約に期限を設定する。次に、期限切れになると、登録ＭＦＰは、更新サーバーの１又は複数のイベント予約を更新しようと試みる。更新に失敗すると、失敗した更新は、更新サーバーが利用不可能であると決定するための少なくとも１つの基準として用いられる。
【００４９】
或いは、予約テーブルとコンポーネント・テーブルは、利用不可能な更新サーバーとは別個の装置に格納される。従って、更新サーバーが突然に故障した場合に、予約情報は失われず、他の更新サーバーへのアクセス可能性が残される。
【００５０】
＜ＭＦＰ更新エージェントのための複数スレッドの実施＞
図４は、本発明の実施例による、対応するＭＦＰを更新する種々のステップを実行する、ＭＦＰ更新エージェントの複数のスレッドを示すフロー図である。ステップ４０２で、３つのスレッドが生成される。しかしながら、ＭＦＰ更新エージェントは、種々のステップを実行するためにより多くの又はより少ないスレッドを実施してよい。ステップ４１０−４１８は、サーバー発見スレッドにより実行される。ステップ４２０−４３０は、イベント予約スレッドにより実行される。ステップ４４０−４４８は、更新通知スレッドにより実行される。
【００５１】
ステップ４１０で、サーバー発見スレッドは、プローブ・メッセージを更新サーバーへ送信する。ステップ４１２で、サーバー発見スレッドは、プローブ・マッチ・メッセージを傾聴(listening)する。ステップ４１２では、ＨＥＬＬＯメッセージも傾聴(listening)する。ＨＥＬＬＯメッセージは、例えば更新サーバーの電源が投入されたとき、又は更新サーバーがネットワークに最初に接続されたときに、更新サーバーにより送信される。ＨＥＬＬＯメッセージは、更新サーバーが対応しているソフトウェアの種類のような、プローブ・マッチ・メッセージと同一の情報を有する。
【００５２】
ステップ４１４で、メッセージの受信に応じて、サーバー発見スレッドは、当該メッセージがプローブ・マッチ・メッセージか否かを決定する。当該メッセージがプローブ・マッチ・メッセージである場合、ステップ４１６で、サーバー発見スレッドは、プローブ・マッチ・メッセージが適切なソフトウェア・コンポーネント種類を示すか否かを決定する。プローブ・マッチ・メッセージが適切なソフトウェア・コンポーネント種類を示す場合、ステップ４１８で、サーバー発見スレッドは、当該メッセージがプローブ・マッチ・メッセージを送信した更新サーバーのＩＰアドレスを格納する。
【００５３】
ステップ４２０で、イベント予約スレッドは、更新サーバーが発見されたか否かを決定する。更新サーバーが発見された場合、ステップ４２２で、イベント予約スレッドは、発見された更新サーバーへイベント予約メッセージを送信する。ステップ４２４で、イベント予約スレッドは、コンポーネント・テーブル（つまりＭＦＰ）から利用可能な更新を調べる。コンポーネント・テーブルは、以下に説明する更新通知スレッドにより構築される。
【００５４】
利用可能な更新が見付かった場合、イベント予約スレッドは、ステップ４２６で、利用可能な更新に対応するソフトウェア・コンポーネントの実行を停止する。ステップ４２８で、イベント予約スレッドは、利用可能な更新によりソフトウェア・コンポーネントを更新する。ステップ４３０で、イベント予約スレッドは、ソフトウェア・コンポーネントを再起動する。
【００５５】
ステップ４４０で、更新通知スレッドは、１又は複数の更新サーバーからのイベント通知メッセージを傾聴(listening)する。ステップ４４２で、更新通知スレッドは、特定のソフトウェア・コンポーネントのために、更新サーバーからイベント通知メッセージを受信する。ステップ４４４で、更新通知スレッドは、１又は複数の更新基準が満たされているか否かを決定する。１又は複数の更新基準が満たされていない場合、更新通知スレッドの処理は、ステップ４４０へ進む。
【００５６】
１又は複数の更新基準が満たされている場合、ステップ４４６で、更新通知スレッドは、更新サーバーへ特定のソフトウェア・コンポーネントのための要求を送信する。ステップ４４８で、更新通知スレッドは、更新サーバーから特定のソフトウェア・コンポーネントを受信し、ステップ４３４で参照したコンポーネント・テーブルに、特定のソフトウェア・コンポーネントのためのエントリを追加する。
【００５７】
＜サーバー更新エージェントのための複数スレッドの実施＞
図５は、本発明の実施例による、対応するＭＦＰを更新する種々のステップを実行する、サーバー更新エージェントの複数のスレッドを示すフロー図である。ステップ５０２で、３つのスレッドが生成される。しかしながら、ＭＦＰ更新エージェントは、種々のステップを実行するためにより多くの又はより少ないスレッドを実施してよい。ステップ５０２は、例えば更新サーバーの電源が投入されたとき、ＨＥＬＬＯメッセージをネットワークに送信するステップを有する。ステップ５１０−５１６は、サーバー発見スレッドにより実行される。ステップ５２０−５３２は、要求処理スレッドにより実行される。ステップ５４０−５４４は、通知スレッドにより実行される。
【００５８】
ステップ５１０で、発見スレッドは、発見メッセージを傾聴(listening)する。ステップ５１２で、発見スレッドは、発見メッセージがプローブ・メッセージか否かを決定する。発見メッセージがプローブ・メッセージである場合、ステップ５１４で、発見スレッドは、対応する更新サーバーが、当該プローブ・メッセージで示されたソフトウェア種類に対応しているか否かを決定する。ある実施例では、更新サーバーが当該ソフトウェア種類に対応している場合、発見スレッドは、ステップ５１２で、ユニキャスト・プローブ・マッチ・メッセージを当該プローブ・メッセージの送信元へ送信する。更新サーバーが示されたソフトウェア種類の何れにも対応していない場合、如何なるプローブ・マッチ・メッセージも当該プローブ・メッセージの送信元へ送信されない。
【００５９】
ステップ５２０で、要求処理スレッドは、要求メッセージを傾聴(listening)する。要求メッセージは、少なくとも２つの種類のうちの１つ、つまりイベント予約メッセージ又はソフトウェア・コンポーネント・メッセージである。要求メッセージを受信した場合、要求処理スレッドは、ステップ５２２で、要求メッセージがイベント予約メッセージか否かを決定する。要求メッセージがイベント予約メッセージである場合、イベント予約メッセージは、ＷＳ−Ｅｖｅｎｔｉｎｇプロトコルに従う。ステップ５２４で、要求処理スレッドは、表１のような予約テーブルに予約を追加する。ステップ５２４が成功すると、ステップ５２６で、要求処理スレッドは、ＷＳ−Ｅｖｅｎｔｉｎｇプロトコルに従って、イベント予約メッセージの送信元に対し、予約メッセージの成功により応答する。
【００６０】
ステップ５２２で、要求処理スレッドが、要求メッセージがイベント予約メッセージでないと決定した場合、ステップ５２８で、予約処理スレッドは、要求メッセージがコンポーネント要求メッセージであるか否かを決定する。要求メッセージがコンポーネント要求メッセージである場合、ステップ５３０で、表２のようなコンポーネント・テーブルからソフトウェア・コンポーネントを検索する。ステップ５３２で、要求処理スレッドは、コンポーネント要求メッセージの送信元へソフトウェア・コンポーネントを送信する。
【００６１】
ステップ５４０で、通知スレッドは、１又は複数のソフトウェア・コンポーネントの利用可能な更新を調べる。ある実施例では、通知スレッドは、コンポーネント管理モジュール（例えば、コンポーネント管理モジュール２３４）からのメッセージを傾聴(listening)する。当該メッセージは、新しい更新を受信したこと、及び当該更新が、予約しているソフトウェア・コンポーネントのうちの１つに関連することを示す。当該予約しているソフトウェア・コンポーネントのうちの１つは、（ａ）コンポーネント・テーブルで識別されたか、又は（ｂ）コンポーネント・テーブルで識別されたソフトウェア種類に対応する。ステップ５４２で、通知スレッドは、コンポーネント・テーブル（つまりＭＦＰ）から利用可能な更新に対応する予約元に関する情報を（例えばコンポーネント・テーブルから）検索する。ステップ５４４で、通知スレッドは、イベント通知メッセージを当該予約元のそれぞれへ送信する。
【００６２】
＜実施のメカニズム＞
本発明の実施例は、如何なる種類のコンピューター・アーキテクチャ又はプラットフォームにも実施できる。説明を目的として、図６に、本発明の実施例が実施され得るコンピューター・システム６００を図示するブロック図を示す。  コンピューター・システム６００は、バス６０２又は情報を通信する他の通信機構、及びバス６０２と結合され情報を処理するプロセッサー６０４を有する。コンピューター・システム６００はまた、バス６０２と結合され情報及びプロセッサー６０４により実行されるべき命令を格納するランダムアクセスメモリー（ＲＡＭ）又は他の動的記憶装置のような主記憶６０６を有する。主記憶６０６はまた、プロセッサー６０４により実行されるべき命令の実行中に一時的数値変数又は他の中間情報を格納するために使用される。コンピューター・システム６００はまた、バス６０２と結合され情報及びプロセッサー６０４の命令を格納する読み出し専用メモリー（ＲＯＭ）６０８又は他の静的記憶装置を更に有する。磁気ディスク又は光ディスクのような記憶装置６１０が設けられ、及びバス６０２と結合され、情報及び命令を格納する。
【００６３】
コンピューター・システム６００は、バス６０２を介し、陰極管（ＣＲＴ）のようなコンピューターのユーザーに情報を表示するディスプレイ６１２と結合される。入力装置６１４は、英数字及び他のキーを有し、バス６０２と結合され、プロセッサー６０４へ情報及びコマンド選択を通信する。他の種類のユーザー入力装置は、マウス、トラックボール、又はカーソルキーのようなカーソル制御６１６であり、方向情報及びコマンド選択をプロセッサー６０４へ通信し、及びディスプレイ６１２上のカーソルの動きを制御する。当該入力装置は、標準的に第１の軸（例えばｘ）及び第２の軸（例えばｙ）である２軸で２つの自由度を有し、装置に平面内の位置を指定可能にする。
【００６４】
本発明は、本願明細書に記載された技術を実施するコンピューター・システム６００の使用に関する。本発明の１つの実施例によると、当該技術は、主記憶６０６内に含まれる１つ以上の命令の１つ以上のシーケンスを実行するプロセッサー６０４に応じ、コンピューター・システム６００により実行される。このような命令は、主記憶６０６へ記憶装置６１０のような他の機械可読媒体から読み込まれる。主記憶６０６に含まれる命令のシーケンスの実行は、プロセッサー６０４に本願明細書に記載された処理段階を実行させる。代案の実施例では、配線論理回路は、ソフトウェア命令の代わりに又はソフトウェア命令と組み合わせて使用され本発明を実施する。従って、本発明の実施例は、ハードウェア回路及びソフトウェアの如何なる組み合わせにも限定されない。
【００６５】
本願明細書で使用された用語「機械可読媒体」は、装置を特定の方法で動作させるデータの提供に関与する任意の媒体を表す。コンピューター・システム６００を使用して実施されるある実施例では、例えば実行のため命令をプロセッサー６０４へ提供する種々の機械可読媒体が含まれる。このような媒体は、不揮発性媒体、揮発性媒体、及び伝送媒体を有するがこれらに限定されない多くの形を取る。記憶媒体は、不揮発性媒体及び揮発性媒体の両方を含む。不揮発性媒体は、例えば記憶装置６１０のような光又は磁気ディスクを有する。揮発性媒体は、主記憶６０６のような動的記憶を有する。伝送媒体は、同軸ケーブル、銅線、及び光ファイバーを有し、バス６０２を有する。伝送媒体はまた、無線及び赤外線データ通信の間に生成されるような、音響又は光波の形式を取り得る。全てのこのような媒体は実現可能であり、媒体により伝達される命令を、命令を機械に読み込む物理機構により検出可能にしなければならない。
【００６６】
機械可読媒体の一般的形式は、例えば、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、磁気テープ、又は任意の他の磁気媒体、ＣＤ−ＲＯＭ、任意の他の光媒体、パンチカード、紙テープ、孔のパターンを有する任意の他の物理媒体、ＲＡＭ、ＰＲＯＭ、及びＥＰＲＯＭ、フラッシュＥＰＲＯＭ、任意の他のメモリーチップ又はカートリッジ、本願明細書に記載された搬送波、又はコンピューターが読み出し得る任意の他の媒体を有する。
【００６７】
種々の形式の機械可読媒体は、実行のためのプロセッサー６０４への１つ以上の命令の１つ以上のシーケンスを伝達に関連する。例えば、命令は最初に遠隔コンピューターの磁気ディスクに保持される。遠隔コンピューターは、命令を遠隔コンピューターの動的記憶にロードし、及びモデムを使用し電話線を介して命令を送出する。コンピューター・システム６００にローカルなモデムは、電話線でデータを受信し、及び赤外線送信機を使用しデータを赤外線信号へ変換する。赤外線検出器は、赤外線信号で伝達されるデータを受信し得る。また適切な回路は、データをバス６０２に発行する。バス６０２は、データを主記憶６０６へ伝達する。データを主記憶６０６から、プロセッサー６０４は命令を検索しそして実行する。主記憶６０６により受信された命令は、任意的に、プロセッサー６０４による実行の前又は後の何れかに記憶装置６１０に格納されて良い。
【００６８】
コンピューター・システム６００はまた、バス６０２と結合される通信インターフェース６１８を有する。通信インターフェース６１８は、ローカル・ネットワーク６２２と接続されるネットワーク接続６２０と結合される双方向データ通信を提供する。例えば、通信インターフェース６１８は、総合デジタル通信網（ＩＳＤＮ）カード又はモデムであって良く、対応する種類の電話線とのデータ通信接続を提供する。別の例として、通信インターフェース６１８は、ローカル・エリア・ネットワーク（ＬＡＮ）カードであって良く、適合するＬＡＮとのデータ通信接続を提供する。無線接続が実施されても良い。任意のこのような実施では、通信インターフェース６１８は、種々の種類の情報を表すデジタル・データ・ストリームを伝達する電気、電磁気又は光信号を送出及び受信する。
【００６９】
ネットワーク接続６２０は、標準的に、１つ以上のネットワークを通じた他のデータ装置へのデータ通信を提供する。例えば、ネットワーク接続６２０は、ローカル・ネットワーク６２２を通じたホスト・コンピューター６２４又はインターネット・サービス・プロバイダー（ＩＳＰ）６２６により動作されるデータ機器への接続を提供する。ＩＳＰ６２６はまた、現在一般的に「インターネット」６２８として参照される世界規模のパケットデータ通信ネットワークを通じデータ通信サービスを提供する。ローカル・ネットワーク６２２及びインターネット６２８の両方は、デジタル・データ・ストリームを伝達する電気、電磁気又は光信号を使用する。種々のネットワークを通じる信号、並びにネットワーク接続６２０及び通信インターフェース６１８を通じる信号は、コンピューター・システム６００へ及びコンピューター・システム６００からのデジタルデータを伝達し、例として情報を伝搬する搬送波の形式である。
【００７０】
コンピューター・システム６００は、ネットワーク、ネットワーク接続６２０及び通信インターフェース６１８を通じ、メッセージを送出し及びプログラム・コードを有するデータを受信し得る。インターネットの例では、サーバー６３０は、アプリケーション・プログラムの要求されたコードをインターネット６２８、ＩＳＰ６２６、ローカル・ネットワーク６２２及び通信インターフェース６１８を通じ送信する。
【００７１】
受信したコードは、受信された時、プロセッサー６０４により実行され、及び／又は後の実行のため記憶装置６１０又は他の不揮発性媒体に格納される。この方法では、コンピューター・システム６００は、アプリケーション・コードを搬送波の形式で得る。
【００７２】
以上のように、本発明の実施例は、実施毎に変化し得る多数の特定の詳細を参照し記載された。従って、本発明であるもの及び出願人により本発明であると意図されるものの限定的な表示は、後に生じる如何なる補正も含み、請求項が与える特定の形式で本願が与える請求項のセットを含む。本願明細書に前述された当該請求項に含まれる用語の如何なる定義も、請求項で使用される用語の意味を規定する。従って、請求項に明示的に引用されない如何なる制限、要素、特性、特徴、利点又は貢献は、如何様にも当該請求項の範囲を制限しない。従って、本願明細書及び図は、制限的なものでなく説明のためである。
【図１】
0005434282.tif 000004
【図２】
0005434282.tif 000005
【図３】
0005434282.tif 000006
【図４】
0005434282.tif 000007
【図５】
0005434282.tif 000008
【図６】
0005434282.tif 000009