(57)【要約】  １又は複数のクライアントが１又は複数の受信側サイロにおける１又は複数のサービスにアクセスすることを認証するルーツ・サイロは、サービスとの相互作用を求める利とをクライアントから受け取る。ルーツ・サイロは、クライアントとの相互作用のためにサービスの利用可能なプロバイダとしてサービス側のサイロを識別して、（ｉ）そのクライアントがサービス側サイロにおいてサービスと相互作用する資格を有していることを示すサービス・エンタイトルメント情報と、（ｉｉ）サービス側サイロの位置を識別する位置情報と、（ｉｉｉ）クライアントとサービス側サイロとの間の安全な通信に用いるための１又は複数の鍵とを有するサービス証明書を生成する。サービス証明書を生成すると、ルーツ・サイロは、サービス側サイロにおけるサービスと相互作用するときに用いるために、そのサービス証明書をクライアントのためのサポート・コンタクトに送る。
2008538249.tif 000002
【特許請求の範囲】
【請求項１】
１又は複数のクライアントと、前記１又は複数のクライアントに技術的サポートを提供する１又は複数のサポート・コンタクトと、前記１又は複数のクライアントと前記１又は複数のサポート・コンタクトとの間で情報を通信するサポート・サービスを含む分散型コンピュータ・システムのためのコンピュータ・プログラム・プロダクトであって、前記クライアントに技術的サポートを提供するのに用いるためクライアントの動作をモニタする方法を実装するコンピュータ実行可能な命令を有するコンピュータ可読な１又は複数の媒体を含んでおり、前記方法は、
前記クライアントのための前記サポート・サービスを用いてユーザをサブスクライバとして登録するために、登録情報を前記サポート・サービスに送るステップと、
前記サポート・サービスへのサポート・コンタクトを識別するステップと、
１又は複数のサポート・パラメータをトラッキングするステップと、
前記１又は複数のサポート・パラメータを、解析と前記サポート・コンタクトへの分散とのために前記サポート・サービスにアップロードするステップと、
前記サポート・サービスからサポート・データを受け取るステップであって、前記サポート・データは、前記サポート・サービスにアップロードされた前記１又は複数のサポート・パラメータに基づいて前記サポート・コンタクトによって決定された１又は複数のサポート・アクションを含む、ステップと、
前記サポート・データに含まれる前記１又は複数のサポート・アクションを実行するステップと、
を実行するクライアントを含むことを特徴とするコンピュータ・プログラム・プロダクト。
【請求項２】
請求項１記載のコンピュータ・プログラム・プロダクトにおいて、前記サポート・データは、１又は複数のスクリプトを含むか、又は、前記クライアントにおいて実行される１又は複数のプログラムを識別することを特徴とするコンピュータ・プログラム・プロダクト。
【請求項３】
請求項１記載のコンピュータ・プログラム・プロダクトにおいて、前記１又は複数のサポート・パラメータは、（ｉ）前記クライアントにおいてウイルス保護がオンかどうかに関する指示、（ｉｉ）前記クライアントにおいてウイルス保護が最新状態にあるかどうかに関する指示、（ｉｉｉ）１又は複数の重要な更新が前記クライアントにおいてインストールされているかどうかに関する指示、（ｉｖ）ファイアウォール保護がオンかどうかに関する指示、（ｖ）最後の完全なウイルス・スキャンはいつ実行されたのかに関する指示、（ｖｉ）最後のウイルス・スキャンの結果に関する指示、及び（ｖｉｉ）前記クライアントの最後のバックアップはいつ実行されたのかに関する指示の中の少なくとも１つを含むことを特徴とするコンピュータ・プログラム・プロダクト。
【請求項４】
請求項１記載のコンピュータ・プログラム・プロダクトにおいて、前記方法は、
前記１又は複数のサポート・アクションを実行した後で、１又は複数の追加的なサポート・パラメータをトラッキングするステップであって、前記１又は複数の追加的なサポート・パラメータは、前記１又は複数のサポート・アクションが実行されたのかどうかを指示する、ステップと、
前記１又は複数の追加的なサポート・パラメータを、解析と前記サポート・コンタクトへの分散とために前記サポート・サービスにアップロードするステップと、
を更に含むことを特徴とするコンピュータ・プログラム・プロダクト。
【請求項５】
請求項１記載のコンピュータ・プログラム・プロダクトにおいて、前記サブスクライバのための前記サポート・サービスを用いて１又は複数の他のクライアントが登録され、前記方法は、
前記サポート・サービスを前記サブスクライバとして認証するステップと、
前記サブスクライバのための前記サポート・サービスを用いて登録された前記クライアントのそれぞれのために、少なくとも１つのサポート・パラメータをダウンロードするステップと、
を更に含むことを特徴とするコンピュータ・プログラム・プロダクト。
【請求項６】
請求項１記載のコンピュータ・プログラム・プロダクトにおいて、前記クライアントは前記サポート・サービスへの１又は複数の他のサポート・コンタクトを識別し、前記方法は、検討のために前記サポート・コンタクトのリストをダウンロードするステップを更に含むことを特徴とするコンピュータ・プログラム・プロダクト。
【請求項７】
請求項１記載のコンピュータ・プログラム・プロダクトにおいて、前記方法は、前記サポート・サービスがどのような追加的なサポート・パラメータを前記サポート・コンタクトに分散することも停止するために前記サブスクライバは前記サポート・コンタクトがサポートを提供することをもはや希望しないことを前記サポート・サービスに指示するステップを更に含むことを特徴とするコンピュータ・プログラム・プロダクト。
【請求項８】
１又は複数のクライアント・サブスクライバと、前記１又は複数のクライアントに技術的サポートを提供する１又は複数のサポート・コンタクトと、前記１又は複数のクライアント・サブスクライバと前記１又は複数のサポート・コンタクトとの間で情報を通信するサポート・サービスとを含む分散型コンピュータ・システムのためのコンピュータ・プログラム・プロダクトであって、クライアント・サブスクライバに技術的サポートを提供するのに用いるためサポート・パラメータをトラッキングする方法を実装するコンピュータ実行可能な命令を有するコンピュータ可読な１又は複数の媒体を含んでおり、前記方法は、
クライアントのための前記サポート・サービスを用いてユーザをサブスクライバとして登録するステップと、
前記サブスクライバによって識別されている１又は複数のサポート・コンタクトを前記サブスクライバと関連付けるステップと、
前記クライアントからの１又は複数のサポート・パラメータを集積するステップと、
前記１又は複数のサポート・パラメータを前記１又は複数のサポート・コンタクトに提供するステップと、
前記１又は複数のサポート・パラメータに応答して前記１又は複数のサポート・コンタクトからの１又は複数のサポート・アクションを集積するステップと、
前記１又は複数のサポート・アクションを含むサポート・データを生成するステップと、
前記サポート・データを前記クライアントに提供するステップと、
を実行するサポート・サービスを含むことを特徴とするコンピュータ・プログラム・プロダクト。
【請求項９】
請求項８記載のコンピュータ・プログラム・プロダクトにおいて、前記方法は、
前記クライアントから集積された前記１又は複数のサポート・パラメータを解析するステップと、
前記１又は複数のサポート・パラメータの前記解析に基づいて前記１又は複数のサポート・コンタクトにアラートを送るステップと、
を更に含むことを特徴とするコンピュータ・プログラム・プロダクト。
【請求項１０】
請求項８記載のコンピュータ・プログラム・プロダクトにおいて、前記１又は複数のサポート・パラメータを集積する前記ステップは、前記クライアントから前記１又は複数のサポート・パラメータを周期的に受け取るステップを更に含むことを特徴とするコンピュータ・プログラム・プロダクト。
【請求項１１】
請求項８記載のコンピュータ・プログラム・プロダクトにおいて、１又は複数のサポート・コンタクトを前記サブスクライバと関連付ける前記ステップは、
前記１又は複数のサポート・コンタクトのそれぞれに対する識別子を前記サブスクライバから受け取るステップと、
前記サブスクライバに対するサポート・コンタクトとなるように前記１又は複数のサポート・コンタクトのそれぞれを招待するステップと、
前記１又は複数のサポート・コンタクトの中の少なくとも１つから前記サブスクライバに対するサポート・コンタクトとなるという承諾を受け取るステップと、
を含むことを特徴とするコンピュータ・プログラム・プロダクト。
【請求項１２】
請求項１１記載のコンピュータ・プログラム・プロダクトにおいて、前記方法は、
前記１又は複数のサポート・コンタクトの中の少なくとも１つに対する個人情報を受け取るステップと、
前記１又は複数のサポート・コンタクトの中の前記少なくとも１つが前記クライアントから集積された前記１又は複数のサポート・パラメータの解析に応答して生成されたすべてのアラートを受け取ることを希望するとの指示を受け取るステップと、
を更に含むことを特徴とするコンピュータ・プログラム・プロダクト。
【請求項１３】
請求項８記載のコンピュータ・プログラム・プロダクトにおいて、前記方法は、前記サブスクライバからの指示を受け取り前記サブスクライバのためのサポート・コンタクトとして前記１又は複数のサポート・コンタクトの中の少なくとも１つを終了するステップを更に含むことを特徴とするコンピュータ・プログラム・プロダクト。
【請求項１４】
請求項８記載のコンピュータ・プログラム・プロダクトにおいて、前記１又は複数のサポート・コンタクトの中の少なくとも１つは複数のサブスクライバのためのサポート・コンタクトであり、前記方法は、
前記複数のサブスクライバのリストを前記１又は複数のサポート・コンタクトの中の前記少なくとも１つに送るステップと、
前記１又は複数のサポート・コンタクトの中の前記少なくとも１つが前記サブスクライバのためのサポート・コンタクトとして削除されるべきであるとの指示を受け取るステップと、
前記１又は複数のサポート・コンタクトの中の前記少なくとも１つと前記サブスクライバとの関連付けを削除するステップと、
を更に含むことを特徴とするコンピュータ・プログラム・プロダクト。
【請求項１５】
複数のクライアントと、前記複数のクライアントに技術的サポートを提供する１又は複数のサポート・コンタクトと、前記複数のクライアントと前記１又は複数のサポート・コンタクトとの間で情報を通信する１又は複数のサポート・サービスとを含む分散型コンピュータ・システムにおいて、
前記１又は複数のクライアント及び前記１又は複数のサポート・コンタクトと通信するネットワーク・インターフェースと、
コンピュータ実行可能な命令を有する１又は複数のコンピュータ可読な媒体であって、前記コンピュータ実行可能な命令は、
クライアントのための前記サポート・サービスを用いてユーザをサブスクライバとして登録するコンピュータ実行可能な命令と、
１又は複数のサポート・コンタクトを前記サブスクライバに割り当てるコンピュータ実行可能な命令と、
前記クライアントから１又は複数のサポート・パラメータを受け取るコンピュータ実行可能な命令と、
前記１又は複数のサポート・パラメータを前記１又は複数のサポート・コンタクトに送るコンピュータ実行可能な命令と、
前記１又は複数のサポート・パラメータに基づいて前記１又は複数のサポート・コンタクトから１又は複数のサポート・アクションを受け取るコンピュータ実行可能な命令と、
前記１又は複数のサポート・アクションを前記クライアントに送るコンピュータ実行可能な命令と、
を含む、１又は複数のコンピュータ可読な媒体と、
前記ネットワーク接続及び前記１又は複数のコンピュータ可読な媒体とに結合されており、前記ネットワーク接続を介してデータを送受信し、前記コンピュータ実行可能な命令を実行する処理ユニットと、
を含むことを特徴とするサポート・サービス。
【請求項１６】
請求項１５記載のサポート・サービスにおいて、前記コンピュータ実行可能な命令は、
前記クライアントから受け取られた前記１又は複数のサポート・パラメータを解析するコンピュータ実行可能な命令と、
前記サブスクライバに割り当てられた前記１又は複数のサポート・コンタクトにアラートが送られるべきであることを判断するコンピュータ実行可能な命令と、
前記１又は複数のサポート・パラメータの解析に基づいて前記１又は複数のサポート・コンタクトにアラートを送るコンピュータ実行可能な命令と、
を更に含むことを特徴とするサポート・サービス。
【請求項１７】
請求項１５記載のサポート・サービスにおいて、前記コンピュータ実行可能な命令は、前記サブスクライバと前記１又は複数のサポート・コンタクトとを認証するコンピュータ実行可能な命令を更に含むことを特徴とするサポート・サービス。
【請求項１８】
請求項１５記載のサポート・サービスにおいて、前記コンピュータ実行可能な命令は、
前記１又は複数のサポート・コンタクトのそれぞれを前記サブスクライバのためのサポート・コンタクトになるように招待するコンピュータ実行可能な命令と、
前記１又は複数のサポート・コンタクトの中の少なくとも１つから前記サブスクライバのためのサポート・コンタクトになるという承諾を受け取るコンピュータ実行可能な命令と、
を更に含むことを特徴とするサポート・コンタクト。
【請求項１９】
請求項１５記載のサポート・サービスにおいて、前記１又は複数のサポート・アクションは前記クライアントにおいて実行されるスクリプトの形式で前記クライアントに送られることを特徴とするサポート・サービス。
【請求項２０】
請求項１５記載のサポート・サービスにおいて、前記１又は複数のサポート・パラメータは、前記クライアントのセキュリティ状態と、前記クライアントの健康状態と、前記クライアントの前記セキュリティ状態と前記健康状態との両方とのいずれかと対応することを特徴とするサポート・サービス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、技術的サポートの提供に関する。更に詳しくは、本発明は、クライアントに技術的サポートを提供する際に用いられるクライアント・コンピュータの動作のモニタリングに関する。
【背景技術】
【０００２】
多くの場合、技術的サポートは、電話によるサポート又は人による直接のサポートという２つの形態の一方をとる。電話サポートは、サポートを必要としているクライアント・システムとのすべての相互作用（interaction、対話）がクライアント・システムのユーザを介して生じるという点で、困難である。とりわけ、ユーザを介するクライアント・システムとの相互作用に問題がある理由として、様々なユーザが様々なレベルのコンピュータ・スキルを有していること、ユーザを介して情報を中継するには時間がかかること、サポートを提供している人間はクライアント・システムに関係する情報の視覚的な表現を見ることができないこと、ユーザはかえって不正確な情報を提供する可能性があること、などがある。
【０００３】
自然に、人による直接のサポートが可能であるクライアント・システムとの直接の相互作用の場合には、電話サポートに関して上述した制限は存在しない。しかし、人によるサポートに要するコストの上昇のために、企業の外部にいる個人ユーザがそのような人によるサポートを受けることは実際的でなくなってきている。更に、企業の内部でも、すべての問題に関して、及び／又は、短時間の間に、人によるサポートを受けることは可能ではない場合がある。
【０００４】
問題を効率的に識別し修正するという観点では、人による直接のサポートは、電話でのサポートよりも好ましいが、電話でのサポートも人による直接のサポートも、共に、問題が生じた後での問題だけに焦点を合わせることになる傾向があり、そのような問題がそもそも生じないように防止するのとは異なっている。経験が浅く高度な知識を有していないユーザは、迫っている問題の警告サインを見逃してしまい、観察されている警告サインの異議を理解しない傾向を有するという点で、脆弱性を有する。結果的に、比較的単純な解決策を有する小さな問題に対して、より大きく複雑な解決策を要するより深刻な問題になる前に、対処がなされないということになる。
【０００５】
従って、クライアント・サブスクライバに技術的サポートを提供する際に用いられる１又は複数のサポート・パラメータのトラッキングのための方法、システム及びコンピュータ・プログラム・プロダクトが望まれる。
【発明の概要】
【０００６】
本発明は、所望のサービスのサービス・プロバイダが識別され、クライアントが当該サービスと相互作用する（対話する）資格が付与される分散型のサービス配信モデルのための方法、システム及びコンピュータ・プログラム・プロダクトに関する。なお、本発明では、クライアントは、クライアントがサービスと相互作用する度に、認証コンポーネントへの認証を必要としない。
【０００７】
注意すべきであるが、「クライアント」という用語は、パーソナル・コンピュータなどのマシン（装置）を一般的に意味するが、マシンのユーザ、及び／又は、マシンとマシンのユーザとの組合せを指すのに用いられることもある。同様に、「サブスクライバ」という用語は、マシンのユーザを指すのが一般的であるが、マシン自体、及び／又は、マシンとマシンのユーザとの組合せを指すのに用いられることもある。
【０００８】
クライアントに技術的サポートを提供することとの関係でクライアントの動作をモニタする本発明の実施例による例示的なコンピュータ・プログラム・プロダクトによると、クライアントは、前記クライアントのための前記サポート・サービスを用いてユーザをサブスクライバとして登録するために、登録情報を前記サポート・サービスに送る。サブスクライバは、また、前記サポート・サービスへのサポート・コンタクトを識別する。ここでのモニタリングには、前記クライアントにおいて、１又は複数のサポート・パラメータをトラッキングするステップを含み、クライアントは、前記１又は複数のサポート・パラメータを、解析と前記サポート・コンタクトへの分散とのために、前記サポート・サービスにアップロードする。前記サポート・サービスにアップロードされた前記１又は複数のサポート・パラメータに基づいて、クライアントは、前記サポート・サービスからサポート・データを受け取るが、前記サポート・データは、前記サブスクライバによって識別された前記サポート・コンタクトによって決定された１又は複数のサポート・アクションを含み、前記１又は複数のサポート・アクションを実行する。このような態様でモニタリングすることにより、サブスクライバは、人によるサポートと関連する利点の多くを、対応する費用を要することなく享受することができ、更に、状態がより深刻になる以前に、深刻度の低い又は潜在的な問題点に対して先を見越した解決策が可能となる。
【０００９】
クライアント・サブスクライバに技術的サポートを提供するのに用いるため１又は複数のサポート・パラメータをトラッキングする本発明による例示的なコンピュータ・プログラム・プロダクトの別の実施例によると、サポート・サービスが、クライアントのための前記サポート・サービスを用いてユーザをサブスクライバとして登録する。このサポート・サービスは、１又は複数のサポート・コンタクトを前記サブスクライバと関連付ける。なお、これらの１又は複数のサポート・コンタクトは、前記サブスクライバによって識別されている。サポート・サービスは、前記クライアントからの１又は複数のサポート・パラメータを集積して、前記１又は複数のサポート・パラメータを前記１又は複数のサポート・コンタクトに提供する。更に、サポート・コンタクトから、サポート・サービスは、前記１又は複数のサポート・パラメータに応答する１又は複数のサポート・アクションを集積して、前記１又は複数のサポート・アクションを含むサポート・データを生成し、前記サポート・データを前記クライアントに提供する。
【００１０】
複数のクライアントと、前記複数のクライアントに技術的サポートを提供する１又は複数のサポート・コンタクトとの間で情報を通信する本発明の例示的なサポート・サービス実施例によると、このサポート・サービスは、前記１又は複数のクライアント及び前記１又は複数のサポート・コンタクトと通信するネットワーク・インターフェースと、コンピュータ実行可能な命令を有する１又は複数のコンピュータ可読な媒体とを含む。前記コンピュータ実行可能な命令は、クライアントのための前記サポート・サービスを用いてユーザをサブスクライバとして登録する命令と、１又は複数のサポート・コンタクトを前記サブスクライバに割り当てる命令と、前記クライアントから１又は複数のサポート・パラメータを受け取る命令と、を含む。注意すべきであるが、通常は、前記１又は複数のサポート・コンタクトは、クライアントの１又は複数のサポート・パラメータにアクセスを許可される前に、認証がなされる。前記コンピュータ実行可能な命令は、更に、前記１又は複数のサポート・パラメータを前記１又は複数のサポート・コンタクトに送る命令と、前記１又は複数のサポート・パラメータに基づいて前記１又は複数のサポート・コンタクトから１又は複数のサポート・アクションを受け取る命令と、前記１又は複数のサポート・アクションを前記クライアントに送る命令と、を含む。前記ネットワーク接続及び前記１又は複数のコンピュータ可読な媒体とに結合されている処理ユニットが、前記ネットワーク接続を介してデータを送受信し、前記コンピュータ実行可能な命令を実行する。
【００１１】
本発明の追加的な特徴と効果とは、以下の説明において述べられており、部分的には以下の説明から明らかであり、また、本発明を実行することにより明らかになる。本発明の特徴及び効果は、特許請求の範囲とこの明細書とにおいて特に指摘されている装置とそれらの組合せとによって実現され得ることができる。本発明のこれらの及びそれ以外の特徴は、以下の説明と特許請求の範囲とによってより完全に明らかになり、また、本発明を実現することによって、学習することが可能である。
【００１２】
本発明の上述した及びそれ以外の効果及び特徴を得ることができる態様を説明するためには、以上では簡潔に説明された本発明に関するより特別な説明が、添付の図面に図解された特定の実施例を参照することによって、以下で与えられる。これらの図面は、単に本発明の典型的な実施例を示しており、本発明の範囲を限定するものと理解すべきである。本発明は、添付の図面を用いることを通じて、更に特定的にかつ詳細に説明される。
【発明を実施するための最良の形態】
【００１３】
本発明は、クライアントに技術的サポートを提供する際に用いられるクライアント・コンピュータの動作をモニタする方法、システム及びコンピュータ・プログラム・プロダクトに関する。この出願において特に説明される実施例に加え、本発明は、その精神及び本質的な特性から逸脱することなく、他の特定の形態でも実現することができる。ここに記載される例示的な実施例は、単に説明のためのものであって制限的なものではない、と考えるべきである。本発明の範囲は、従って、この明細書ではなく、特許請求の範囲によって画定される。特許請求の範囲の均等物の解釈と領域とに含まれるすべての変更点は、本発明の範囲に含まれる。
【００１４】
Ｉ．概観
図１は、本発明の実現に適した例示的な分散コンピューティング・システム環境の高レベルのブロック図を図解している。図１には、クライアント／サブスクライバ７００と、クライアント／サブスクライバ７００に技術的サポートを提供するサポート・コンタクト１００と、クライアント／サブスクライバとサポート・コンタクトとの間で情報を通信するサポート・サービス５００とを示している。上述したように、「クライアント」という用語は、パーソナル・コンピュータなどのマシン（装置）を一般的に意味するが、マシンのユーザ、及び／又は、マシンとマシンのユーザとの組合せを指すのに用いられることもある。同様に、「サブスクライバ」という用語は、マシンのユーザを指すのが一般的であるが、マシン自体、及び／又は、マシンとマシンのユーザとの組合せを指すのに用いられることもある。サポート・サービス５００についての詳細は図５との関係で、クライアント／サブスクライバ７００についての詳細は図７との関係で、後述する。
【００１５】
詳細を後述する例示的な実施例において、サポート・サービス５００は、ウェブ・ベースのビューを提供するのであるが、このビューは、コンピュータの健康状態と、サブスクライバと彼らの指定されたサポート・コンタクトとのための最近の活動とに関するものである。もちろん、健康／セキュリティ状態は、サポート・コンタクト及び／又はサポート・サービスがサブスクライバに提供することができるサポートのタイプに関する単なる一例を表す。従って、理解してほしいのであるが、後述する健康／セキュリティ状態に関する実施例は、単に本発明の様々な側面を説明するのに用いられるだけであって、そのような側面は他の実施例では存在する場合も存在しない場合もある。本発明の範囲は、後述する実施例によって制限することはなく、特許請求の範囲によって画定される。
【００１６】
サポート・サービスは、また、クライアント・マシンにおいて生じている変化に基づいて、サポート・コンタクトにアラートを送る通知チャネルも提供する。図６との関係で詳細を後述するのであるが、このシステムは、マシン証明書を利用してマシンを認証し、アーキテクチャの不正な利用を防止する。実装によっては、アーキテクチャは、エンドユーザのマシンのための有料のサポート・サービスを提供する企業のエコ・システムの基礎を形成すると同時に、そのセキュリティに関する姿勢をトラッキングする小企業のための管理システムも提供する。とりわけ、このシステムは、遠隔的なセキュリティ走査、チューンアップ、システム診断などを行って問題を発見し解決することを可能にする。
【００１７】
アーキテクチャに関するモデルは、特定の実装例に応じて、サブスクライバの活動とサポート・コンタクトの活動とそれ以外の活動とに分解することができる。例えば、サブスクライバの活動は、すべてのクライアント・マシンとその状態との観察、マシンの詳細の観察、すべてのサポート・コンタクトとその状態とのリスト化、サポート・コンタクトの訪問、サポート・コンタクトの除去などを含む。サポート・コンタクトの活動は、すべてのサブスクライバとそのマシンとの観察、マシンの詳細の観察、プロファイル及びお気に入り（プリファレンス）情報の変更、サブスクライバの除去、クライアントにおいて実行すべきアクションのスケジュリングなどを含む。それ以外の活動は、ある所定のイベントが発生した場合の通知又はアラートの送信、認証などを含む。後述する例示的なシナリオは、これらの活動のための追加的な詳細を提供する際に便利である。例示的な実装例については、図５に図解されている例示的なサポート・サービス５００、図６に図解されているサポートのための例示的な分散型コンピューティング・システム環境、図７に図解されている例示的なクライアントなどを参照してほしい。
【００１８】
図５、図６及び図７との関係で後述するように、クライアントは、サポート・サービスに向けてテレメトリ・データ（telemetry data）を周期的に送信する。テレメトリ・データには、限定を意味しないが、サポート・コンタクトによってモニタされるサポート・パラメータが含まれる。更に強調しておきたいのであるが、サポート・サービス５００は、クライアント／サブスクライバ７００に対して様々な他のサービスを提供する場合があるし、技術的サポートに限定される場合もある。
【００１９】
図２は、図１に図解されたサポートのための分散型コンピュータ・システム環境の中の様々な要素に関するステート・ダイアグラム（状態遷移図）である。最初に、ユーザは、サポート・サービスのウェブサイトを訪問する（２０３）。認証の前に、ユーザは、単にユーザ２１０として識別される。ユーザが不正確な証明書を提供する場合（２１３）には、ユーザは、ユーザ２１０のままである。正確な証明書を提供する（２１５）と、ユーザは認証されたユーザ２２０になる。認証は、単に、そのユーザが誰であるかを識別するだけである。認証の失敗２２７に示されているように、認証されたユーザがどのような活動の許可も与えられず、従って、認証の後で、認証されていないユーザ２６０と識別されることがある。
【００２０】
しかし、一般的に、ユーザは、何らかの態様で認証される。例えば、サブスクライバとしての認証が成功した（２２１）後では、認証されたユーザは、サブスクライバ２３０と称される。サポート・コンタクトとしての認証の成功（２２３）の後では、認証されたユーザは、サポート・コンタクト２４０と称される。訪問されたサポート・コンタクト２２５としての認証が成功すると、認証されたユーザは、サポート・コンタクト２５０と称される。
【００２１】
図５に示されているように、サポート・サービス５００を用いてサポート・コンタクト１００を認証してサポート・パラメータにアクセスする及び／又はアクションを実行することによって、サポート・サービス５００がサポート・コンタクト１００の活動をトラッキングし監査することが可能になる。対照的に、サブスクライバとの直接的な認証をしても、サポート・サービスがいくつかの環境において提供することができる集中的なトラッキングや監査は可能にはならない。とりわけ、この集中的なトラッキング及び監査によって、サブスクライバ１００が適切なレベルのサポートを受けることをサポート・サービスが保証することが可能になる。例えば、発見された時点で、複数のサブスクライバに対するローグ（rogue）又は制限付きの（compromised）サポート・コンタクトを、それぞれのサブスクライバが個別的なアクションをすることなしに、サポート・サービスにおいて終了することができる。
【００２２】
図３は、サブスクライバに関するステート・ダイアグラムである。サブスクライバになるためには、ユーザは、サポート・サービスに登録する。登録には、サブスクライバとして参加するのに必要な情報を提供することが含まれるが、これは、実際の例ごとに変動する。有料のサポート環境では、登録には、サブスクライバを識別するのに十分な情報を提供することが含まれるのが典型的であり、これは、課金のためのクレジット・カード情報であることが多い。他の例では、電子メール・アドレス、インスタント・メッセージング・アドレス、それ以外の識別子など以外に何も提供する必要がない場合もある。図３に示されているように、登録が済むと、サブスクライバは、アクティブなサブスクライバと称される。注意すべきであるが、一般的に、この出願において「サブスクライバ」という用語が用いられるときには、アクティブなサブスクライバを指すのが通常である。アクティブなサブスクライバが不良債権履歴を有しているとか、サブスクライバとして参加するのに必要となるソフトウェアをクライアントにおいてアンインストールすると（３１５）、サブスクライバは非アクティブなサブスクライバと称されることになる。
【００２３】
次に、サブスクライバは安全か、について説明する。サポート・コンタクトは、サブスクライバが安全かどうかを知りたがる。従って、サポート・コンタクトは、サポート・サービスのサブスクライバ登録システムの中のサポート・ウェブサイトのサポート・エリアに行き、認証マネジャを用いてサインインする。この例では、サードパーティの認証機構が、認証サービスを提供する。サポート・ウェブサイトを通じて、サポート・コンタクトは、１又は複数のセキュリティ・パラメータの形態で、サブスクライバ・マシンの状態を見ることができる。例示的なセキュリティ・パラメータは、ウイルス保護がオンかどうか、ウイルス保護が更新されているか、ファイアウォール保護がオンかどうか、オペレーティング・システムやそれ以外のソフトウェアの重要な更新がインストールされ最新の状態になっているかどうか、最後に更新されたのはいつか、などが含まれる。セキュリティ・パラメータは、健康計（health meter）のレーティングの形式で提供され、健康問題に関する更なる詳細も含まれる。例えば、この健康計は、色（例えば、緑、黄色、赤など）や数字のスケールを用いて、クライアントの全体的な指示を提供する。
【００２４】
次に、サポート・コンタクトが心配しなければならないことが何かあるか、について説明する。サポート・コンタクトは、サブスクライバのマシンにおいて生じていなければならないことが実際に生じているかどうかを知りたい。サポート・コンタクトは、また、サブスクライバのセキュリティ及び保護を低下させる可能性があるような活動がサブスクライバのマシンにおいて最近生じたかどうかを知りたい。サブスクライバ・マシンのための最近の活動への詳細なリンクをチェックすることで、最後のウイルス・スキャンはいつ実行されたのか、マシンはきれいだったか、最後のアンチウイルス・シグニチャはいつ更新されたか、最後にバックアップがなされたのはいつか、マシンが最後にサポート・サービスにデータを送ったのはいつか、などを見ることができる。
【００２５】
次に、最近の重要なアラート、について説明する。サポート・コンタクトは、健康計の変化について知りたいし、サブスクライバが実行することになっているアクション項目が生じているかどうか、を知りたい。ウェブサイトは、健康計のレーティングの変化と、先週分の変化に対応する理由とを示す（あるいは、設定された数の最も最近の変化）。サポート・コンタクトの好みに応じて、サポート・コンタクトは、電子メールやテキスト・メッセージにより、健康計の変化に関するアラート通知を受け取ることができる。
【００２６】
サブスクライバは、加入アカウントにあるすべてのマシンについて、セキュリティの状態と最近の活動とを知りたい。サブスクライバは、ウェブサイトのサブスクライバ・エリア５６２に行き、認証マネジャ５５２を用いてサインインする。ここでも、サードパーティの認証６７０が、サブスクライバを認証する。サブスクライバは、その加入契約（subscription）に含まれているすべてのクライアントのリストを示される。それぞれのクライアントに対して、ウェブサイトは、マシンごとの状態と最近の活動と最近のアラートとを見るためのリンクを含んでいる。サブスクライバが利用可能な情報は、上述した場合と同じように、サポート・コンタクトが利用可能な情報と同じである。場合によっては、１つの加入契約に含まれるマシンの数は制限される可能性がある。というのは、サポートに必要となる資源（リソース）は、サポートを要求するマシンの数と正比例するからである。資金的な要素が関係しないような他の例では、１つの加入契約に対するマシンの数は相当な数となりうる。
【００２７】
サブスクライバは、誰かをサポート・コンタクトに招待したい。サブスクライバは、様々な方法で、誰かをサポート・コンタクトに招待することができる。例えば、あるユーザがサブスクライバとしてサインアップすると、そのユーザは、１又は複数のサポート・コンタクトを特定する場合がある。あるいは、そのような１又は複数のサポート・コンタクトを後で追加することもありうる。サブスクライバは、ウェブサイトにアクセスして、サインインする。サインインの際に、サブスクライバは、サポート・コンタクトを追加するためのリンクを提供される。サブスクライバは、サポート・コンタクトの電子メール・アドレス、インスタント・メッセージ・アドレス、それ以外の何らかの識別子などを提供することによって、サポート・コンタクトを追加する。サポート・サービスは、その招待がサポート・コンタクトに送られることを指示し、その時点で、サポート・コンタクトは、招待されたサポート・コンタクトとしてサブスクライバに識別される。
【００２８】
招待されたサポート・コンタクトは、招待を受け取る。招待が電子メールである場合には、この電子メールは、招待を受諾するためのリンクを含む。ＧＵＩＤがその招待に埋め込まれていて、サポート・コンタクトをサポート・サービスに識別する。サポート・コンタクトは、ウェブサイトにアクセスし、認証マネジャ５５２とサードパーティの認証６７０とを用いてサインインする。サポート・コンタクトがサードパーティの認証６７０との間でアカウントを有していない場合には、サポート・コンタクトは、アカウントを作成した上で戻って来るように指示される。
【００２９】
最初のサインインの際には、サポート・コンタクトは、サポート・サービス５００を用いることによりサポート・コンタクトとなるための条件を受け入れることを求められる。また、サポート・コンタクトは、フレンドリーな名前や、最初のコンタクトに用いたものと異なる場合にはコンタクト用の電子メール・アドレスなどの個人情報を提供する。希望する場合には、サポート・コンタクトは、サポート・コンタクトの注意が必要となるような何らかの条件がクライアント／サブスクライバにおいて発生したときには、サポート・サービスからアラートを受け取るという選択をすることもできる。サポート・コンタクトが登録プロセスのこの部分を完了すると、サポート・コンタクトは、サポート・サービスに関する更なる詳細と、サポート・サービスが提供する特徴と、サポート・コンタクトの責任とを説明するウェブサイトを示される。
【００３０】
招待の受諾が成功すると、サポート・コンタクトは、サポート・コンタクトのサブスクライバ・リストにおいて、アクティブなサポート・コンタクトとして姿を現す。この時点以降は、サポート・コンタクトは、そのサブスクライバと関連付けされたすべてのマシンへのサポート・コンタクトとしてのアクセスを与えられる。所定の時間の間に受諾がなされない場合には、招待は失効する。失効した場合には、サポート・コンタクトが招待を受諾しようとすると、サポート・コンタクトには、別の招待を受け取らないとならないというメッセージが与えられる。１人のサブスクライバに対して許容されるサポート・コンタクトの数を、何らかの所定の数に制限することが可能である。
【００３１】
図４は、サポート・コンタクトのためのステート・ダイアグラムである。上述したように、招待を受け取ったサポート・コンタクトは、招待されたサポート・コンタクト２５０と称される。招待されたサポート・コンタクトが招待を受諾する（２５３）と、そのサポート・コンタクトは、アクティブなサポート・コンタクト２４０と称される。注意しておいてほしいのであるが、この出願では、「サポート・コンタクト」という用語は、アクティブなサポート・コンタクトを意味する。アクティブなサポート・コンタクトが、すべてのサブスクライバからサポートとして削除される（２４３）などにより、どのサブスクライバに対してももうサポート・コンタクトではない（２４５）場合には、そのサポート・コンタクトは、非アクティブなサポート・コンタクト４１０と称される。例えば３ヶ月など所定の時間が経過する（４１５）と、サポート・コンタクトは、ユーザ２１０になる。図４に示されているように、招待されたサポート・コンタクトが招待２５５が満了して失効する前に招待を受諾しない場合には、招待された人間はユーザ２１０と称される。図４に示されている状態は、単一のサブスクライバに関する場合である。
【００３２】
サブスクライバの健康計が赤になる。サブスクライバがファイアウォールをオフにすることを決めるのは、アプリケーションを用いることができず、ファイアウォール・ポリシをどのようにして修正するのかを知らないからである。健康計は、潜在的なセキュリティ・リスクのために赤に変化する。（上述したように、健康計は、色及び／又は数字の範囲を含めて様々な形態をとることができる。）結果的に、サポート・コンタクトは、ファイアウォールが消勢（ディセーブル）されたためにサブスクライバのマシンの健康計が赤に変化したことを示すアラートを受け取る。サポート・コンタクトは、サブスクライバに電話をして、どうしてサブスクライバがファイアウォールを消勢したのかを見いだして、どのようにしてアプリケーションをファイアウォール・ポリシに追加してファイアウォールを付勢（イネーブル）するのかを説明する。注意すべきであるが、このようにして及びそれ以外の方法で、サポート・サービスは、より深刻になる前に、潜在的な問題を識別して対処するという点で（例えば、脆弱性の原因を判断する前に、ウイルス感染やセキュリティ違反を待機する）、積極的な役割を有している。
【００３３】
サポート・コンタクトは、サポート・コンタクトのプロファイルを構成／修正することを希望する。サポート・コンタクトは、サポート・サービスのウェブサイトにサインインする。いったんサインインすると、サポート・コンタクトは、好みに応じて、アラートをオン又はオフにすることができる。サポート・コンタクトは、関連するフレンドリ・ネームとコンタクト電子メール又はそれ以外のアドレスとを修正することができる。サポート・コンタクトがコンタクト電子メール・アドレスを修正すると、確認のために、その特定の電子メール・アドレスに電子メールが送られる。サポート・コンタクトは、次に、その電子メールの中の確認リンクを用いてサインインし、電子メール・アドレスの変更を確認する必要がある。
【００３４】
サポート・コンタクトの終了。サポート・コンタクトは、３つの方法で終了することができる。すなわち、サブスクライバがもはやサポート・コンタクトを用いることを希望しない、サブスクライバの加入契約（サブスクリプション）が終了した、又は、サポート・コンタクトがもはやそのサブスクライバをサポートすることを希望しない、という場合である。サブスクライバが関係を終了させる、又は、サブスクライバの加入契約が何らかの理由で終了した（例えば、サブスクライバが、もはやそのサービスの退化を支払うことを希望しない）ときには、サポート・コンタクトは、サブスクライバのマシンへのサポート・コンタクトとしてのアクセスは終了した旨を示すメッセージを受け取る。メッセージは、終了の理由を示すこともある。メッセージは、サポート・コンタクトが終了プロセスを単純化する何らかのアクションをとるように求める場合もある。
【００３５】
サブスクライバは、サポート・ウェブサイトからサポート・コンタクトを終了することができる。サインインの後で、サブスクライバは、すべてのサポート・コンタクトのリストをサブスクライバに示すリンクを選択する。このリストは、例えば、フレンドリ・ネームと電子メール・アドレスとを含むことがある。サブスクライバは、リストからサポート・コンタクトを選択し削除する。いくつかの例では、サポート・コンタクトを削除する確認が示される。上述したように、いったん削除が確認されると、電子メールがサポート・コンタクトに送られて、サブスクライバがそのサポート・コンタクトを落とした（ドロップした）ことを示す。サブスクライバは、サポート・コンタクトが招待を受諾しなかった（すなわち、サポート・コンタクトは、単に、招待されたサポート・コンタクトである）場合でも、そのサポート・コンタクトを削除できる。削除の時点ではサポート・サービスがサポート・コンタクトへの招待をまだ送っていなかった場合には、メッセージは送られない。
【００３６】
サポート・サービスのサブスクライバの使用は、様々な理由のために終了される。例えば、サブスクライバが、有効期限が過ぎてしまっているクレジット・カードを提供する場合がある。終了の後では、サポート・コンタクトは、サブスクライバの加入契約が終了している旨を示すメッセージを受け取る。通常は、このような状況では、電子メールは、終了の理由に関する情報は何も含まない。
【００３７】
また、サポート・コンタクトが、関係の終了を希望することもある。サポート・サービスのウェブサイトにサインインした後で、サポート・コンタクトは、そのサポート・コンタクトがサポートを提供するサブスクライバ（及びそれぞれのサブスクライバに対するマシン）のリストを示される。サポート・コンタクトは、リストからサブスクライバを選択して削除することができる。サブスクライバのためのサポート・コンタクトとしての終了の確認が示される。いったん確認がなされると、メッセージがサブスクライバに送られ、サポート・コンタクトはそのサブスクライバのマシンをもはやモニタしないことが告げられる。
【００３８】
本発明の実施例は、１又は複数の専用コンピュータ及び／又は１又は複数の汎用コンピュータを含み、これらのコンピュータは、以下で詳細に関して説明する様々なコンピュータ・ハードウェアを含む。本発明の範囲内の実施例は、また、コンピュータ実行可能な命令やデータ構造がその上に記憶されているコンピュータ可読な媒体を含む。ここで言うコンピュータ可読な媒体は、汎用又は専用のコンピュータによってアクセスが可能な任意の使用可能な媒体でありうる。制限は意味しないが、例を挙げると、ここで言うコンピュータ可読な媒体としては、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ、それ以外の光ディスク記憶装置、磁気ディスク記憶装置、それ以外の磁気記憶デバイス、コンピュータ実行可能な命令又はデータ構造の形態を有する所望のプログラム・コード手段を有する又は記憶するのに用いることができ、汎用又は専用のコンピュータによるアクセスが可能な任意のそれ以外の媒体などがある。情報がネットワーク又はそれ以外の通信接続又はインターフェース（ハードワイアード、ワイアレス、ハードワイアードとワイアレスの組合せ、のいずれか）を介してコンピュータに転送あるいは提供されると、そのコンピュータがその接続やインターフェースをコンピュータ可読な媒体と見なすのは適切である。従って、そのような任意の接続をコンピュータ可読な媒体と称するのは適切である。以上のようなものの組合せも、やはり、コンピュータ可読な媒体の範囲に含まれる。コンピュータ実行可能な命令は、例えば、汎用コンピュータ、専用コンピュータ又は専用の処理デバイスにある機能や複数の機能群を実行させる命令やデータである。
ＩＩ．例示的なサポート・サービス
図５は、本発明による例示的なサポート・サービス５００のブロック図である。サポート・サービス５００は、クライアント・サービス・システム５１０と、サブスクライバ登録システム５５０とを含む。図５は、更に、サポート・コンタクト１００と、必ずしもサポート・サービス５００を一部ではない様々なサービスを含むが私的又は公的なネットワークなどのより大きなネットワークの一部を構成するネットワーク・クラウド６１０と、クライアント／サブスクライバ７００とを示している。注意すべきであるが、ネットワーク・クラウド６０１は、認証コンポーネント６７０と、アラート・コンポーネント６８０と、電子メール・システム・コンポーネント６９０とを含む。アラート・コンポーネント６８０は、インスタント・メッセージング・システムの一部でありうる。
【００３９】
サブスクライバ登録システム５５０は、サポート・コンタクト１００とサブスクライバ及びサポート・ウェブサイト５６２へのクライアント／サブスクライバ７００のサインインとのどちらかを用いてネットワーク・クラウド６０１の中の認証コンポーネント６７０と相互作用する認証マネジャ５５２を含む。ある例では、認証コンポーネント６７０は、サードパーティの認証システムを表す。もちろん、他の例では、認証は、サブスクライバ登録システム５５０及び／又はサブスクライバ及びサポート・ウェブサイト５６２と一体化されている。
【００４０】
サブスクライバ及びサポート・ウェブサイト５６２は、上述た活動のための例示的な実装例である。登録に加えて、サポート・コンタクト１００とクライアント／サブスクライバ７００とが、サポート・サービス５００及びこれらのウェブサイトとを介して相互に通信する。
【００４１】
サポート・コンタクト・プロファイル・マネジャ５７２は、サポート・コンタクト１００のための情報を管理するが、この情報には、サポート・コンタクトとサポート・コンタクトのプロファイルとに関係する状態情報が含まれる。サポート・コンタクト１００のための情報は、サポート・コンタクト記憶５７４に記憶される。状態情報には、図４に示されているサポート・コンタクトのための状態やそれ以外の情報が含まれる。サポート・コンタクトのプロファイルには、フレンドリ・ネームやコンタクト・アドレスなど、サポート・コンタクトに関係する情報すべてが含まれる。クライアント／サブスクライバ７００に関する情報は、サブスクライバ記憶５９２に記憶される。
【００４２】
クライアント・サービス・システム５１０は、クライアント／サブスクライバ７００から受け取られたサポート・パラメータを集積し解析して、サポート・パラメータを、サブスクライバ及びサポート・ウェブサイト５６２を介してサポート・コンタクト１００に提供する。サポート・パラメータは、また、アラート・システム６８０と電子メール・システム６９０とを介してサポート・コンタクト１００にも提供される。この詳細については後述する。
【００４３】
メッセージング・テレメトリ・システム５４２は、テレメトリ・データを交換するときに、クライアント／サブスクライバ７００と相互作用することを担当する。メッセージ・テレメトリ・システム５４２は、また、サポート・アクションをクライアント／サブスクライバ７００に送ることも担当する。例えば、サポート・コンタクト１００がクライアントにおいてなされるべきアクションを識別すると、これらのアクションは、メッセージング・テレメトリ・システム５４２を介してクライアント／サブスクライバ７００に送られる。これらのアクションは、アクション・スクリプト・パブリシャ５２４によって公開されるスクリプトの形態を有することがあるし、単に、サブスクライバへの命令のリストである場合もある。スクリプトは、サポート・コンタクト１００から受け取られた入力に基づいてサブスクライバ及びサポート・ウェブサイト５６２から受け取られ潜在的には１又は複数のアクション・スクリプト５６５の形態を有する情報に基づいて、アクション・スクリプト・レシーバ５２２によって準備される。クライアント／サブスクライバ７００に送られる前に、スクリプトは、アラート記憶５３２に記憶される。
【００４４】
クライアント／サブスクライバ７００から受け取られたテレメトリ・データ（サポート・パラメータ５１３）は、状態（stat）記憶５１４に記憶される。状態検索５１２は、サポート・パラメータをサブスクライバ及びサポート・ウェブサイト５６２に提供し、そこで、検討及び解析のためにサポート・コンタクト１００によってアクセスされる。状態記憶は、入力されるサポート・パラメータをモニタし（５１６）、それらを、アラート・マネジャ５３４による処理のためのアラート記憶５３２に提供する。アラート・マネジャ５３４は、アラート記憶の中の情報を解析して、受け取られたサポート・パラメータの中にある内容を判断して、アラートをサポート・コンタクト１００に送る。ここで、サポート・コンタクト１００は、サブスクライバ及びサポート・ウェブサイト５６２にアクセスするまでは、サポート・パラメータについて知らないはずである。示されているように、アラート・マネジャは、アラートを、電子メール・インターフェース５２６を介して又はアラート・インターフェース５３６を介して、サポート・コンタクトに送る。アラート・インターフェース５３６は、インスタント又はテキスト・メッセージ・アラート・システムに対応する。
ＩＩＩ．例示的な分散型サービス配信環境
図６は、本発明の実現に用いるのに適した例示的な分散型サービス配信環境を図解している。図６に関する説明は、分散型サービス配信モデルを構成するコンポーネントのハイレベルな導入から始まり、次に、これらのコンポーネントがどのように相互作用するかに関する詳細な説明を行う。
【００４５】
図６に図解されている例示的な分散型のサービス配信環境は、ネットワーク・クラウド６０１と、ルーツ・サイロ６００と、クライアント７００と、１又は複数のサービス・サイロ５００及び５０２とを含み、これらのコンポーネントは、すべて、ネットワーク接続６１０、６２０、６３０、６４０、６５０及び６６０を介して通信する。この設計は、サービス・コンポーネントの間の通信の必要性を最小化することによって、インターネットなどのネットワークを介した高度に分散型のサービス配信環境をスケーリングし動作させる。スケールに関しては、この設計は、この詳細については後述するが複数のサービス・インスタンスのホスティングを容易にし、システム容量をスケールアップする、又は、複数のサービス・プロバイダにわたるサービスを調整するのに用いられる。このモデルは、また、個人識別可能な情報（ＰＩＩ）を、日々のサービス情報から分離する機構を提供する。ＰＩＩの例には、氏名、住所、電話番号、クレジット・カード番号、電子メール・アドレス、人口学的情報、他の加入契約、加入履歴などが含まれる。
【００４６】
ルーツ・サイロ６００は、クライアント・ベースの全体に対して、エンタイトルメント（タイトル付け、資格付与、entitlement）、配置（provisioning）、ＰＩＩ記憶サービスなどを提供する。サービス・サイロ５００は、クライアントとの日々のサービス相互作用を提供し、更に、関連するデータを与える記憶装置を提供する。クライアント７００は、ルーツ・サイロ６００によってエンタイトルメントがなされ配置されているが、サービス・サイロ５００を介して、日々、サービスを受ける。管理的な側面は、ルーツ・サイロと一体化することも別個のサイロとして実現することも可能であり、日々のサービス動作を決定し、全体的なサービス状態に関する総体的な視野を提供する。
【００４７】
サービス証明書６２４は、クライアントとルーツ・サイロとサービス・サイロとの間での安全な通信のために、サービスのエンタイトルメント情報と、指定されたサービス・サイロの位置を識別するための情報と、公開鍵と秘密鍵との対などの１又は複数の鍵と、を含む。サイロ間の通信チャネル６１０及び６６０により、サービス・サイロとルーツ・サイロとが相互に通信することが可能になる。サービス・サイロのコンフィギュレーション情報６５４により、サービス・サイロが、あるサービスに関してクライアント側の環境設定（コンフィギュレーション）を行うことが可能になる。サービス・アクション６１４は、全体的なシステムを動作させるために、基本的管理機能を提供する。
Ａ．個人識別可能な情報とサービス関連データとの分離
本発明による分散型のサービス配信モデルの背後にある原則は、登録及び／又は課金活動に関係する個人識別可能な情報（ＰＩＩ）を処理するシステムを、関連データ及び処理から分離するということである。データの観点からは、最も微妙なデータ、特に、課金に関係する情報は、登録、エンタイトルメント及び課金サービスを担当するルーツ・サイロ６００の内部に維持される。対照的に、クライアントの日々のサービスは、サービス・サイロ５００によって実行されるが、これには、図５との関係で上述した、クライアント更新の管理、クライアント・テレメトリの処理、クライアントの状態を見るためのウェブ関連インターフェースの提供などの活動が含まれる。希望するスケールに応じて、複数のサービス・サイロが、クライアントを特定のサービス・サイロに配置し割り当てることを担当する単一のサイロを用いて、動作される。
【００４８】
複数のサービス・サイロ設計は、少なくとも３つの場合を支持している。すなわち、スケーリング・アウト、地理的分散、ＯＥＭ又は他のフェデレーションである。スケーリング・アウトは、単一のデータ・センター又は地理的位置の中に複数のサービス・サイトを有することに関係する。地理的分散は、地理的な意味でサービル・サイロを分散させることに関係するが、いくつかのサービス・サイロはスケールアウトされている場合もある。フェデレーションは、サービス・サイロを担当するオペレータを分散させることに関係するが、いくつかのサービス・サイロは地理的に分散しているか、及び／又は、スケールアウトされている。もちろん、これらの場合はどれも相互に排他的ではなく、特定の実装例における目的及び必要性に応じて、他の場合も可能である。
Ｂ．メッセージングの設計
この設計は複数のサービス・サイロを可能にするのだから、サイロ間の従属性に加えて、ルーツ・サイロとサービス・サイロとの間の動作的な従属性に注意する。換言すると、高レベルの信頼性を達成するため、トランザクションは複数のサイロの両方には関わるべきではない。例えば、サービス・サイロ５００は、サービス・サイロにおけるサービスにアクセスを付与する前のタイトル（資格）のチェックのためにルーツ・サイロ６００にコンタクト必要などないのがよい。この設計上の目的を達成するには、クライアントは、通信のためのハブとして機能し、そのコンフィギュレーション及びエンタイトルメントに関する情報のすべてを有する又は記憶する。
【００４９】
ある実施例では、メッセージは、セキュリティ及びエンタイトルメントを提供する公開鍵インフラストラクチャ（ＰＫＩ）システムによってサポートされるエクステンシブル・マークアップ・ランゲージ（ＸＭＬ）メッセージである。換言すると、複数のサイロは、署名がなされたＸＭＬメッセージを介して通信し、クライアントは必要な場合には仲介者として機能し、ほとんどのトランザクションは非同期となる。更に、クライアント７００は、サービス証明書データベースの中に、ルーツによって発行されクライアントが割り当てられているサービス・サイロとアクセスを有する又はクライアントが相互作用するサービスとを識別するデジタル証明書を維持する。ＰＫＩシステムにより、クライアントとサイロとの両方が、メッセージを有効化してそれらのメッセージが真正であると保証することを可能にする。真正であるかどうかは、コンフィギュレーションの変更、エンドユーザを目標とする通信、再配置に関する変更などの微妙（sensitive）なメッセージの場合には重要である。
Ｃ．クライアント、ルーツ・サイロ及びサービス・サイロ情報
サービス・サイロ５００は、１又は複数のサービスのクライアントへの潜在的なプロバイダとして登録される。いったん登録されると、サービス・サイロ５００は、サービス・アクション６１４を介して全体的な分散型サービス配信環境の内部で管理され、ルーツ・サイロ６００は、クライアントを提供するサービスに関してサービス・サイロに割り当てるのを開始することを担当する。
【００５０】
クライアント７００は、上述した技術的サポート・サービスの場合のように、サービスとの相互作用に関するリクエスト６２２をルーツ・サイロ６００に方向付ける。リクエストを方向付けることには、リクエストの生成と、そのルーツ・サイロ６００への送付とが含まれる。ルーツ・サイロ６００は、リクエストをクライアント７００から受け取り、サービス・サイロ５００をそのサービスの利用可能なプロバイダとして識別する。複数のサービス・サイロがサービスを提供することができるときには、少なくとも部分的にはクライアント及び／又はサービス・サイロの位置に基づいて、１つの特定のサービス・サイロが識別される。あるいは、クライアント７００が、特定のサービス・サイロに対する好みを表明することもある。これは、おそらくが、複数の要素がサービスの提供を担当しているのであるが、クライアントが、特定の関係を有している、より信頼している、又は、特定のサービス・サイロを特に好む何らかの他の根拠を有しているからである。この場合の好みは、また、ハードウェア及び／又はソフトウェアのＯＥＭ又はそれを再販売する者と関連する特定のサービス・サイロを識別するなど、クライアントのハードウェア及び／又はソフトウェアに基づいている。
【００５１】
リクエストは、サービスとの相互作用に対する当初のリクエストか、又は、終了したサービスとの相互作用を新たに更新するリクエストを表す。例えば、リクエストは、何らかのアンチウイルス・ソフトウェアと相互作用してクライアントを保護するものでありうる。ここでは、アンチウイルス・ソフトウェアを最初にインストールする、以前にインストールされたアンチウイルス・ソフトウェアを更新する、又は、既に終了しているか将来に終了するアンチウイルス・ソフトウェアのアップデートに対する加入を更新するか、である。
【００５２】
また、クライアント７００がＰＩＩをルーツ・サイロ６００に提供し、それをルーツ・サイロ６００が受け取り、例えば、クライアントのサービスとの相互作用に対する課金の際に記憶して用いることができる。ＰＩＩをルーツ・サイロ６００に提供することには、ＰＩＩの収集と、そのルーツ・サイロへの送信とを含む。
【００５３】
ルーツ・サイロ６００は、サービス証明書６２４を生成し、この生成されたサービス証明書は、（ｉ）クライアントが識別されたサービス・サイロにおいてサービスと相互作用する資格があることを示すサービス・エンタイトルメント情報と、（ｉｉ）サービス・サイロの位置を識別する位置情報であって、例えば、アドレスやユニフォーム・リソース・ロケータを含むことがある位置情報と、（ｉｉｉ）クライアント７００とサービス・サイロ５００とルーツ・サイロ６００との間の安全な通信に用いられる秘密鍵と公開鍵との対などである１又は複数の鍵と、を含む。サービス証明書は、更に、クライアントがサービスと相互作用することが認められている期間を定義する終了情報を含む。
【００５４】
複数のサービス・レベル又は段階を含むサービスについては、サービス証明書は、クライアントが資格を有する特定のサービス・レベル又は段階に対する識別子を含む。例えば、上述したアンチウイルス・ソフトウェアの例では、様々なレベルの及び／又はタイプの保護を利用することができる（アンチウイルス、スパイウエア、ファイアウォールなど）が、サービス証明書によって許容された特定のレベルの相互作用が、アンチウイルス・サービスの中でサービス・レベル又は段階として識別されることがある。
【００５５】
ルーツ・サイロ６００は、クライアントがサービス・サイロ５００においてサービスと相互作用をするときに用いるサービス証明書６２４をクライアントに送る。クライアント７００は、サービス証明書６２４をルーツ・サイロ６００から取得して、そのサービス証明書６２４の中の位置情報を用いて、サービスとの相互作用を求めるリクエストをサービス・サイロ５００に送る。サービス証明書６２４の取得には、ルーツ・サイロ６００からのサービス証明書の受信が含まれる。リクエストのサービス・サイロ５００への送信には、リクエストの生成と、そのリクエストをサービス・サイロ５００に送信することが含まれる。クライアント７００は、サービス証明書をサービス・サイロ５００に提供して、クライアントがサービス・サイロ５００においてサービスと相互作用する資格がある示し、次に実際に、サポートにおいてサービスと相互作用する。
【００５６】
サービス・サイロ５００との相互作用には、サービス・サイロからコンフィギュレーション情報６５４を受け取りサービス・サイロと相互作用できるようにクライアントを設定することを含む。サービス・サイロ４００との相互作用には、更に、クライアント・テレメトリ・データをサービス・サイロにおけるサービスに解析のために送ることを含む。テレメトリ・データは、クライアントの状態又は条件に関する情報を指すのに用いられる広範な用語である。テレメトリ・データには、例えば、オペレーティング・システムのバージョン、アンチウイルス・ソフトウェアが動作しているかどうか、動作しているのであればそのアンチウイルス・ソフトウェアが最後に更新されたのはいつか、何らかの脅威が検出されたかどうか、検出されたのならばその脅威の除去に成功したかどうか、クライアントにおいてバックアップが実行されているかどうか、クライアントにおいてファイアウォール保護が付勢されているかどうか、ソフトウェアの更新が最後になされたのはいつか、クライアント・コンポーネントによって生成された特別のイベント、クライアント・ソフトウェアが遭遇したエラー条件、特定のクライアントの特徴に関して処理されていない問題（すなわち、新たなバックアップ・ファイルの更新）、システムの起動時刻、ハードドライブの最後のデフラグメンテーション、などのサポート・パラメータが含まれる。
【００５７】
ときには、１つのクライアント７００を、あるサイロから別のサイロに移動させることが必要な場合がある。例えば、サービス・サイロが合意された基準に従って動作していないとか、新たなサービス・サイロの利用可能性に基づいてなされる再分散の一環として、などである。クライアント７００を移動させるときには、ルーツ・サイロ６００は、新たなサービス証明書を生成するが、このサービス証明書は、先のサービス証明書と同じように、（ｉ）当該クライアントが新たなサービス・サイロにおけるサービスと相互作用する資格があることを示すサービス・エンタイトルメント情報と、（ｉｉ）新たなサービス・サイロの位置を識別する位置情報と、（ｉｉｉ）クライアントと新たなサービス・サイロとルーツ・サイロとの間での安全な通信に用いられる１又は複数の鍵と、を含む。ルーツ・サイロ６００は、新たなサービス証明書をクライアントに送り、新たなサービス・サイロにおけるサービスと相互作用するときにそのクライアントが用いることができるようにして、そのクライアントを先のサービス・サイロから新たなサービス・サイロに移動させる。
【００５８】
サービス・サイロ５００は、クライアント７００を介して、ルーツ・サイロ６００によって作成された配置（provisioning）データを受け取り、そのクライアントのための記憶装置を配分し初期化することができるようにする。サービス・サイロ５００は、また、サービス・サイロにおけるサービスとの相互作用が承認されている複数のクライアントにブロードキャスト・メッセージを送り、目標が定められたメッセージを１又は複数の個々のクライアントに送る。
【００５９】
サービス・サイロ５００は、クライアント７００からテレメトリ・データを受け取ると、テレメトリ・データを統合し、その統合されたテレメトリ・データを解析のために管理サイロに送る又は報告する（６１２）。クライアント７００から受け取られたテレメトリ・データは、ＸＭＬ形式にフォーマットされ、１又は複数の鍵の中の少なくとも一方によって署名され、テレメトリ・データが当該クライアントによって送られたことを示す。サービス・サイロ５００は、クライアントから受け取られたテレメトリ・データのマシン・ビューを提供して、他からのアクセスを可能にする。更に、サービス・サイロ４００は、サードパーティのサポート要素をクライアントと関連付け、受け取られたテレメトリ・データを解析し、そのサードパーティのサポート要素にテレメトリ・データの解析の間に識別された１又は複数のサポートに関する課題を告知する。例えば、テレメトリ・データは、修正されるべきであるクライアントにおける性能又はセキュリティに関する課題を示すことがある。
【００６０】
すべてのサービス情報をサービス・サイロ５００に保持することは必ずしも必要ではないことに注意すべきである。スケール、性能及び利用可能性に関する理由から、あるタイプのコンテンツは１又は複数のキャッシュされたダウンロード・サーバに記憶される場合がある。これは、例えば、インターネットなどのネットワーク・クラウドを介した分散型エッジ・キャッシュ・サーバ又はウイルス定義サービスなどである。このアーキテクチャは、かなり一般的なものであり、パッチを用いてオペレーティング・システムを更新するためのサービスなど、相当な量のダウンロードを提供するサービスによって用いられる。ここでのコンテンツには、クライアント・インストール及び更新ビット、アンチウイルス署名、ファイアウォール・ポリシなどが含まれる。分散型のエッジ・キャッシュ・サーバが提供する利点の１つとして、それによって、ＯＥＭがサービス・サイロをホストしている場合に、オペレーティング・システムのベンダがクライアントのいくつかの側面に関する制御を維持できるようになり、すべての顧客に関して一貫性を有するレベルのサービスを保証することができる点がある。また、これにより、オペレーティング・システムに関して悪意のある又は時代遅れになったコンテンツを配信するローグ・サービス・サイロの潜在的な脅威が除去される。
【００６１】
ネットワーク・クラウド６０１は、また、ルーツ・サイロ６００との関係での課金活動のための加入契約プラットフォーム・システムを含む場合がある。
ＩＶ．例示的なクライアント・コンポーネント
図７は、図１及び図６に図解された例示的なクライアント／サブスクライバ７００の中のコンポーネントのブロック図であり、テレメトリ・クライアント７３０、アンチウイルス・クライアント７５０、それ以外のクライアント７６０など様々なサービス・クライアント７１０を含む。
【００６２】
ルーツ・サイロのエンタイトルメント・システムによって発行されたデジタル証明書は、クライアントが割り当てられているサービス・サイロを制御する。しかし、それぞれのサイロは、当該サイロの内部にホストされたサービスに関する追加的なコンフィギュレーション情報を有するのが通常である。このサービス・サイロ・コンフィギュレーション情報は、サービス・サイロの鍵によって署名されたＸＭＬフラグメントを含む。別個のサービス・サイロ・コンフィギュレーション情報を有することによって、サービス・サイロのオペレータは、サイロの内部にホストされているサービスのコンフィギュレーションを動的な態様で管理することが可能になる。例えば、クライアントのハートビートの周波数や、テレメトリ・データをアップロードするためのユニフォーム・リソース・ロケータ／アドレスを動的に設定することが可能である。ＸＭＬコンフィギュレーションがデジタル的に署名されているために、クライアントは、コンフィギュレーション情報が変更されていないことを確認することができる。
【００６３】
サービス・サイロ・コンフィギュレーション情報は、サービス・コンフィギュレーション情報データベース７２０の中の配置プロセスの一部として、クライアントにインストールされる。サービス開始の際に、クライアントは、ルーツ・サイロによって割り当てられサービス証明書データベース７４０に記憶されているデジタル証明書をロードして、それが対応するサービス・サイロ・コンフィギュレーション情報を有しているかどうかをチェックする。もしそうでない場合には、インストールの間であるが、クライアントは署名されたリクエストをサービス・サイロに送り、そのコンフィギュレーション情報を求める。戻されたサイロ・コンフィギュレーション情報は確認がなされ、サービス・コンフィギュレーション情報データベース７２０にローカルに記憶される。クライアントがサービス・サイロ・コンフィギュレーション情報をロードするときには、そのパラメータの中のどれを受け入れる前に、ファイル上の署名を確認する。エラー条件は、デフォルトのコンフィギュレーション設定の集合によって処理され、指定されたサービス・サイロ又はルーツ・サイロへのコンタクトの追加的な試みについても同様である。
【００６４】
テレメトリ・クライアント７３０とテレメトリ・マネジャ７３４とにより、クライアント７００からのテレメトリ・データの収集が可能になる。とりわけ、テレメトリ・マネジャ７３４は、サービス・コンフィギュレーション情報データベース７２０を用いて、どのテレメトリ・データが収集されテレメトリ・データ・データベース７３２に記憶されるべきか、更には、どのくらいの頻度でテレメトリ・データがサービス・サイロにアップロードされるべきかを判断する。
【００６５】
アンチウイルス・クライアント７５０は、アンチウイルス・ソフトウェア７００が最新状態にあるかを判断して、新たなアンチウイルス・ソフトウェアを適切にサービス・サイロからダウンロードする。アンチウイルス・ソフトウェアの状態は、また、アンチウイルス・クライアント７５０によって提供された更新の状態とは独立に、マシンの状態に関する指示としてテレメトリ・データに含まれる。
【００６６】
様々なこれ以外のクライアント７６０が、分散型サービスは威信モデル一般に対して、また、特にクライアント７００に対して開発されている。本発明は、どのような特定のサービスに必ずしも限定されるものではなく、サービスが開発され有効な態様で展開されることを可能にする分散型のサービス配信モデルに向けられている。
Ｖ．例示的なハードウェア環境
図８と以下の説明は、本発明が実装される適切なコンピューティング環境に関する短穴で一般的な説明を提供するためのものである。必要というのではないが、本発明は、ネットワーク環境にあるコンピュータによって実行されるプログラム・モジュール又はソフトウェア・コンポーネントなどのコンピュータ実行可能な命令という一般的なコンテンツで説明される。一般的に、プログラム・モジュール又はソフトウェア・コンポーネントには、特定のタスクを実行する又は特定の抽象的なデータ・タイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。コンピュータ実行可能な命令と、関連するデータ構造と、プログラム・モジュールとは、この出願において開示されている方法を構成するステップを実行するプログラム・コード手段の例を表している。そのような実行可能な命令又は関連するデータ構造の特定のシーケンスは、それらのステップにおいて説明される機能を実装するための対応する行為の例を表す。
【００６７】
当業者であれば理解することであるが、本発明は、パーソナル・コンピュータ、ハンドヘルド型デバイス、マルチ・プロセッサ・システム、マイクロプロセッサ・ベースの又はプログラマブルな家電製品、ネットワークＰＣ、ミニコンピュータ、メインフレーム・コンピュータなどを含む多くのタイプのコンピュータ・システム・コンフィギュレーションを備えたネットワーク・コンピューティング環境において実現することができる。本発明は、また、通信ネットワークを介してリンクされている（ハードワイアード・リンク、ワイアレス・リンク、又は、これらの組合せによって）ローカル及びリモート処理デバイスによってタスクが実行される分散型のコンピューティング環境においても実現される。分散型のコンピューティング環境では、プログラム・モジュールは、ローカルとリモートとの両方のメモリ記憶装置に配置することができる。
【００６８】
図８を参照すると、本発明を実装する例示的なシステムは、従来型のコンピュータ８２０の形式を有する汎用コンピューティング装置を含み、この装置には、処理ユニット８２１と、システム・メモリ８２２と、システム・メモリ８２２を含む様々なシステムの要素を処理ユニット８２１に結合するシステム・バス８２３と、が含まれる。システム・バス８２３は、メモリ・バス又はメモリ・コントローラと、周辺バスと、様々なバス・アーキテクチャの中の任意のものを用いるローカル・バスとを含む複数のタイプのバス構造の任意ものでありうる。システム・メモリは、リードオンリメモリ（ＲＯＭ）８２４と、ランダムアクセスメモリ（ＲＡＭ）８２５とを含む。起動の間などにコンピュータ８２０の内部の要素の間で情報を転送するのを助ける基本ルーチンを含む基本入力／出力システム（ＢＩＯＳ）８２６が、とむ８２４に記憶されている。
【００６９】
コンピュータ８２０は、また、磁気ハードディスク８３９との間で読み出しと書き込みを行う磁気ディスク奴隷部８２７と、取外し可能な磁気ディスク８２９との間で読み出し及び書き込みを行う磁気ディスクドライブ８２８と、ＣＤ−ＲＯＭ又はそれ以外の光媒体など取外し可能な光ディスク８３１との間で読み出し及び書き込みを行う光ディスクドライブ８３０とを含む。磁気ハードディスクドライブ８２７と、磁気ディスクドライブ８２８と、光ディスクドライブ８３０とは、ハードディスクドライブ・インターフェース８３２と磁気ディスクドライブ・インターフェース８３３と光ドライブ・インターフェース８３４とのそれぞれによって、システム・バス８２３に接続される。これらのドライブとそれに関連するコンピュータ可読な媒体とは、コンピュータ８２０のために、コンピュータ実行可能な命令とデータ構造とプログラム・モジュールとそれ以外のデータとのための不揮発性記憶装置を提供する。ここで説明されている例示的な実施例は磁気ハードディスク８３９と取外し可能な磁気ディスク８２９と取外し可能な光ディスク８３１とを用いているが、データの記憶にはそれ以外のタイプのコンピュータ可読な媒体を用いることができる。そのような媒体には、磁気カセット、フラッシュ・メモリ・カード、デジタル・バーサタイル・ディスク（ＤＶＤ）、ベルヌーイ（Bernoulli）カートリッジ、ＲＡＭ、ＲＯＭなどが含まれる。
【００７０】
１又は複数のプログラム・モジュールを含むプログラム・コード手段は、磁気ハードディスク８３９、取外し可能な磁気ディスク８２９、取外し可能な光ディスク８３１、ＲＯＭ８２４、ＲＡＭ８２５などに記憶され、オペレーティング・システム８３５、１又は複数のアプリケーション・プログラム８３６、それ以外のプログラム・モジュール８３７、プログラム・データ８３８などが含まれる。ユーザは、キーボード８４０、ポインティング・デバイス８４２、又は、マイクロフォン、ジョイスティック、ゲームパッド、衛星ディッシュ、スキャナなどそれ以外の入力装置（図示せず）を介して、コマンドや情報をコンピュータ８２０に入力する。これらの及びそれ以外の装置は、システム・バス８２３に結合されたシリアル・ポート・インターフェース８４６を介して処理ユニット８２１に接続されることが多い。あるいは、入力装置は、パラレル・ポート、ゲーム・ポート又はユニバーサル・シリアル・バス（ＵＳＢ）などの他のインターフェースによって、接続することができる。モニタ８４７や別のディスプレイ装置を、ビデオ・アダプタ８４８などのインターフェースを介してシステム・バス８２３と接続することができる。モニタに加えて、パーソナル・コンピュータは、典型的には、スピーカやプリンタなどそれ以外の周辺出力機器（図示せず）を含む。
【００７１】
コンピュータ８２０は、リモート・コンピュータ８４９ａ及び８４９ｂなど１又は複数のリモート・コンピュータへの論理的な接続を用いて、ネットワーク環境で動作することができる。リモート・コンピュータ８４９ａ及び８４９ｂは、それぞれが、別のパーソナル・コンピュータ、サーバ、ルータ、ネットワークＰＣ、ピア・デバイス又はそれ以外の一般的なネットワーク・ノードであり、典型的には、コンピュータ８２０に関して上述した要素の多く又は全部を含む。ただし、図８では、メモリ記憶装置８５０ａ及び８５０ｂとそれらに関連するアプリケーション・プログラム８３６ａ及び８３６ｂとが図解されているだけである。図８に示されている論理的な接続は、限定ではなく例示として示されているだけであるがローカルエリアネットワーク（ＬＡＮ）８５１と、サイドエリアネットワーク（ＷＡＮ）８５２とを含む。このようなネットワーク環境は、オフィス規模又は企業規模でのコンピュータ・ネットワーク、イントラネット及びインターネットにおいて一般的なものである。
【００７２】
ＬＡＮネットワーク環境において用いられるときには、コンピュータ８２０は、ネットワーク・インターフェース又はアダプタ８５３を介してローカルなネットワーク８５１に接続される。ＷＡＮネットワーク環境において用いられるときには、コンピュータ８２０は、モデム８５４、無線リンク、又は、インターネットなどＷＡＮ８５２を介した通信を確立するそれ以外の手段を含む。モデム８５４は、内蔵の場合と外付けの場合とがあるが、シリアル・ポート・インターフェース８４６を介してシステム・バス８２３と接続される。ネットワーク環境では、コンピュータ８２０との関係で示したプログラム・モジュールは、又はその一部は、遠隔的なメモリ記憶装置に記憶される場合がある。ここに示されているネットワーク接続又はインターフェースは例示的であって、ＷＡＮ８５２を介した通信を確立する他の手段も用いることができる点を理解すべきである。
【図面の簡単な説明】
【００７３】
【図１】本発明を実現するのに適した例示的な分散型のコンピューティング・システム環境のための高レベルのブロック図を図解している。
【図２】図１に図解された分散型のコンピューティング・システム環境の中の様々な要素のためのステート・ダイアグラムである。
【図３】本発明によるサブスクライバのためのステート・ダイアグラムである。
【図４】本発明によるサポート・コンタクトのためのステート・ダイアグラムである。
【図５】本発明による例示的なサポート・サービスのブロック図である。
【図６】図１に図解された分散型のコンピューティング・システム環境のための追加的な詳細を示すブロック図である。
【図７】本発明による例示的なクライアントのブロック図である。
【図８】本発明の様々な実施例のための適切な動作環境を提供する例示的なコンピュータ・システムを図解している。
【図１】
2008538249.tif 000003
【図２】
2008538249.tif 000004
【図３】
2008538249.tif 000005
【図４】
2008538249.tif 000006
【図５】
2008538249.tif 000007
【図６】
2008538249.tif 000008
【図７】
2008538249.tif 000009
【図８】
2008538249.tif 000010