説明

コンピュータの状態のモニタリング及びサポート

1又は複数のクライアントが1又は複数の受信側サイロにおける1又は複数のサービスにアクセスすることを認証するルーツ・サイロは、サービスとの相互作用を求める利とをクライアントから受け取る。ルーツ・サイロは、クライアントとの相互作用のためにサービスの利用可能なプロバイダとしてサービス側のサイロを識別して、(i)そのクライアントがサービス側サイロにおいてサービスと相互作用する資格を有していることを示すサービス・エンタイトルメント情報と、(ii)サービス側サイロの位置を識別する位置情報と、(iii)クライアントとサービス側サイロとの間の安全な通信に用いるための1又は複数の鍵とを有するサービス証明書を生成する。サービス証明書を生成すると、ルーツ・サイロは、サービス側サイロにおけるサービスと相互作用するときに用いるために、そのサービス証明書をクライアントのためのサポート・コンタクトに送る。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、技術的サポートの提供に関する。更に詳しくは、本発明は、クライアントに技術的サポートを提供する際に用いられるクライアント・コンピュータの動作のモニタリングに関する。
【背景技術】
【0002】
多くの場合、技術的サポートは、電話によるサポート又は人による直接のサポートという2つの形態の一方をとる。電話サポートは、サポートを必要としているクライアント・システムとのすべての相互作用(interaction、対話)がクライアント・システムのユーザを介して生じるという点で、困難である。とりわけ、ユーザを介するクライアント・システムとの相互作用に問題がある理由として、様々なユーザが様々なレベルのコンピュータ・スキルを有していること、ユーザを介して情報を中継するには時間がかかること、サポートを提供している人間はクライアント・システムに関係する情報の視覚的な表現を見ることができないこと、ユーザはかえって不正確な情報を提供する可能性があること、などがある。
【0003】
自然に、人による直接のサポートが可能であるクライアント・システムとの直接の相互作用の場合には、電話サポートに関して上述した制限は存在しない。しかし、人によるサポートに要するコストの上昇のために、企業の外部にいる個人ユーザがそのような人によるサポートを受けることは実際的でなくなってきている。更に、企業の内部でも、すべての問題に関して、及び/又は、短時間の間に、人によるサポートを受けることは可能ではない場合がある。
【0004】
問題を効率的に識別し修正するという観点では、人による直接のサポートは、電話でのサポートよりも好ましいが、電話でのサポートも人による直接のサポートも、共に、問題が生じた後での問題だけに焦点を合わせることになる傾向があり、そのような問題がそもそも生じないように防止するのとは異なっている。経験が浅く高度な知識を有していないユーザは、迫っている問題の警告サインを見逃してしまい、観察されている警告サインの異議を理解しない傾向を有するという点で、脆弱性を有する。結果的に、比較的単純な解決策を有する小さな問題に対して、より大きく複雑な解決策を要するより深刻な問題になる前に、対処がなされないということになる。
【0005】
従って、クライアント・サブスクライバに技術的サポートを提供する際に用いられる1又は複数のサポート・パラメータのトラッキングのための方法、システム及びコンピュータ・プログラム・プロダクトが望まれる。
【発明の概要】
【0006】
本発明は、所望のサービスのサービス・プロバイダが識別され、クライアントが当該サービスと相互作用する(対話する)資格が付与される分散型のサービス配信モデルのための方法、システム及びコンピュータ・プログラム・プロダクトに関する。なお、本発明では、クライアントは、クライアントがサービスと相互作用する度に、認証コンポーネントへの認証を必要としない。
【0007】
注意すべきであるが、「クライアント」という用語は、パーソナル・コンピュータなどのマシン(装置)を一般的に意味するが、マシンのユーザ、及び/又は、マシンとマシンのユーザとの組合せを指すのに用いられることもある。同様に、「サブスクライバ」という用語は、マシンのユーザを指すのが一般的であるが、マシン自体、及び/又は、マシンとマシンのユーザとの組合せを指すのに用いられることもある。
【0008】
クライアントに技術的サポートを提供することとの関係でクライアントの動作をモニタする本発明の実施例による例示的なコンピュータ・プログラム・プロダクトによると、クライアントは、前記クライアントのための前記サポート・サービスを用いてユーザをサブスクライバとして登録するために、登録情報を前記サポート・サービスに送る。サブスクライバは、また、前記サポート・サービスへのサポート・コンタクトを識別する。ここでのモニタリングには、前記クライアントにおいて、1又は複数のサポート・パラメータをトラッキングするステップを含み、クライアントは、前記1又は複数のサポート・パラメータを、解析と前記サポート・コンタクトへの分散とのために、前記サポート・サービスにアップロードする。前記サポート・サービスにアップロードされた前記1又は複数のサポート・パラメータに基づいて、クライアントは、前記サポート・サービスからサポート・データを受け取るが、前記サポート・データは、前記サブスクライバによって識別された前記サポート・コンタクトによって決定された1又は複数のサポート・アクションを含み、前記1又は複数のサポート・アクションを実行する。このような態様でモニタリングすることにより、サブスクライバは、人によるサポートと関連する利点の多くを、対応する費用を要することなく享受することができ、更に、状態がより深刻になる以前に、深刻度の低い又は潜在的な問題点に対して先を見越した解決策が可能となる。
【0009】
クライアント・サブスクライバに技術的サポートを提供するのに用いるため1又は複数のサポート・パラメータをトラッキングする本発明による例示的なコンピュータ・プログラム・プロダクトの別の実施例によると、サポート・サービスが、クライアントのための前記サポート・サービスを用いてユーザをサブスクライバとして登録する。このサポート・サービスは、1又は複数のサポート・コンタクトを前記サブスクライバと関連付ける。なお、これらの1又は複数のサポート・コンタクトは、前記サブスクライバによって識別されている。サポート・サービスは、前記クライアントからの1又は複数のサポート・パラメータを集積して、前記1又は複数のサポート・パラメータを前記1又は複数のサポート・コンタクトに提供する。更に、サポート・コンタクトから、サポート・サービスは、前記1又は複数のサポート・パラメータに応答する1又は複数のサポート・アクションを集積して、前記1又は複数のサポート・アクションを含むサポート・データを生成し、前記サポート・データを前記クライアントに提供する。
【0010】
複数のクライアントと、前記複数のクライアントに技術的サポートを提供する1又は複数のサポート・コンタクトとの間で情報を通信する本発明の例示的なサポート・サービス実施例によると、このサポート・サービスは、前記1又は複数のクライアント及び前記1又は複数のサポート・コンタクトと通信するネットワーク・インターフェースと、コンピュータ実行可能な命令を有する1又は複数のコンピュータ可読な媒体とを含む。前記コンピュータ実行可能な命令は、クライアントのための前記サポート・サービスを用いてユーザをサブスクライバとして登録する命令と、1又は複数のサポート・コンタクトを前記サブスクライバに割り当てる命令と、前記クライアントから1又は複数のサポート・パラメータを受け取る命令と、を含む。注意すべきであるが、通常は、前記1又は複数のサポート・コンタクトは、クライアントの1又は複数のサポート・パラメータにアクセスを許可される前に、認証がなされる。前記コンピュータ実行可能な命令は、更に、前記1又は複数のサポート・パラメータを前記1又は複数のサポート・コンタクトに送る命令と、前記1又は複数のサポート・パラメータに基づいて前記1又は複数のサポート・コンタクトから1又は複数のサポート・アクションを受け取る命令と、前記1又は複数のサポート・アクションを前記クライアントに送る命令と、を含む。前記ネットワーク接続及び前記1又は複数のコンピュータ可読な媒体とに結合されている処理ユニットが、前記ネットワーク接続を介してデータを送受信し、前記コンピュータ実行可能な命令を実行する。
【0011】
本発明の追加的な特徴と効果とは、以下の説明において述べられており、部分的には以下の説明から明らかであり、また、本発明を実行することにより明らかになる。本発明の特徴及び効果は、特許請求の範囲とこの明細書とにおいて特に指摘されている装置とそれらの組合せとによって実現され得ることができる。本発明のこれらの及びそれ以外の特徴は、以下の説明と特許請求の範囲とによってより完全に明らかになり、また、本発明を実現することによって、学習することが可能である。
【0012】
本発明の上述した及びそれ以外の効果及び特徴を得ることができる態様を説明するためには、以上では簡潔に説明された本発明に関するより特別な説明が、添付の図面に図解された特定の実施例を参照することによって、以下で与えられる。これらの図面は、単に本発明の典型的な実施例を示しており、本発明の範囲を限定するものと理解すべきである。本発明は、添付の図面を用いることを通じて、更に特定的にかつ詳細に説明される。
【発明を実施するための最良の形態】
【0013】
本発明は、クライアントに技術的サポートを提供する際に用いられるクライアント・コンピュータの動作をモニタする方法、システム及びコンピュータ・プログラム・プロダクトに関する。この出願において特に説明される実施例に加え、本発明は、その精神及び本質的な特性から逸脱することなく、他の特定の形態でも実現することができる。ここに記載される例示的な実施例は、単に説明のためのものであって制限的なものではない、と考えるべきである。本発明の範囲は、従って、この明細書ではなく、特許請求の範囲によって画定される。特許請求の範囲の均等物の解釈と領域とに含まれるすべての変更点は、本発明の範囲に含まれる。
【0014】
I.概観
図1は、本発明の実現に適した例示的な分散コンピューティング・システム環境の高レベルのブロック図を図解している。図1には、クライアント/サブスクライバ700と、クライアント/サブスクライバ700に技術的サポートを提供するサポート・コンタクト100と、クライアント/サブスクライバとサポート・コンタクトとの間で情報を通信するサポート・サービス500とを示している。上述したように、「クライアント」という用語は、パーソナル・コンピュータなどのマシン(装置)を一般的に意味するが、マシンのユーザ、及び/又は、マシンとマシンのユーザとの組合せを指すのに用いられることもある。同様に、「サブスクライバ」という用語は、マシンのユーザを指すのが一般的であるが、マシン自体、及び/又は、マシンとマシンのユーザとの組合せを指すのに用いられることもある。サポート・サービス500についての詳細は図5との関係で、クライアント/サブスクライバ700についての詳細は図7との関係で、後述する。
【0015】
詳細を後述する例示的な実施例において、サポート・サービス500は、ウェブ・ベースのビューを提供するのであるが、このビューは、コンピュータの健康状態と、サブスクライバと彼らの指定されたサポート・コンタクトとのための最近の活動とに関するものである。もちろん、健康/セキュリティ状態は、サポート・コンタクト及び/又はサポート・サービスがサブスクライバに提供することができるサポートのタイプに関する単なる一例を表す。従って、理解してほしいのであるが、後述する健康/セキュリティ状態に関する実施例は、単に本発明の様々な側面を説明するのに用いられるだけであって、そのような側面は他の実施例では存在する場合も存在しない場合もある。本発明の範囲は、後述する実施例によって制限することはなく、特許請求の範囲によって画定される。
【0016】
サポート・サービスは、また、クライアント・マシンにおいて生じている変化に基づいて、サポート・コンタクトにアラートを送る通知チャネルも提供する。図6との関係で詳細を後述するのであるが、このシステムは、マシン証明書を利用してマシンを認証し、アーキテクチャの不正な利用を防止する。実装によっては、アーキテクチャは、エンドユーザのマシンのための有料のサポート・サービスを提供する企業のエコ・システムの基礎を形成すると同時に、そのセキュリティに関する姿勢をトラッキングする小企業のための管理システムも提供する。とりわけ、このシステムは、遠隔的なセキュリティ走査、チューンアップ、システム診断などを行って問題を発見し解決することを可能にする。
【0017】
アーキテクチャに関するモデルは、特定の実装例に応じて、サブスクライバの活動とサポート・コンタクトの活動とそれ以外の活動とに分解することができる。例えば、サブスクライバの活動は、すべてのクライアント・マシンとその状態との観察、マシンの詳細の観察、すべてのサポート・コンタクトとその状態とのリスト化、サポート・コンタクトの訪問、サポート・コンタクトの除去などを含む。サポート・コンタクトの活動は、すべてのサブスクライバとそのマシンとの観察、マシンの詳細の観察、プロファイル及びお気に入り(プリファレンス)情報の変更、サブスクライバの除去、クライアントにおいて実行すべきアクションのスケジュリングなどを含む。それ以外の活動は、ある所定のイベントが発生した場合の通知又はアラートの送信、認証などを含む。後述する例示的なシナリオは、これらの活動のための追加的な詳細を提供する際に便利である。例示的な実装例については、図5に図解されている例示的なサポート・サービス500、図6に図解されているサポートのための例示的な分散型コンピューティング・システム環境、図7に図解されている例示的なクライアントなどを参照してほしい。
【0018】
図5、図6及び図7との関係で後述するように、クライアントは、サポート・サービスに向けてテレメトリ・データ(telemetry data)を周期的に送信する。テレメトリ・データには、限定を意味しないが、サポート・コンタクトによってモニタされるサポート・パラメータが含まれる。更に強調しておきたいのであるが、サポート・サービス500は、クライアント/サブスクライバ700に対して様々な他のサービスを提供する場合があるし、技術的サポートに限定される場合もある。
【0019】
図2は、図1に図解されたサポートのための分散型コンピュータ・システム環境の中の様々な要素に関するステート・ダイアグラム(状態遷移図)である。最初に、ユーザは、サポート・サービスのウェブサイトを訪問する(203)。認証の前に、ユーザは、単にユーザ210として識別される。ユーザが不正確な証明書を提供する場合(213)には、ユーザは、ユーザ210のままである。正確な証明書を提供する(215)と、ユーザは認証されたユーザ220になる。認証は、単に、そのユーザが誰であるかを識別するだけである。認証の失敗227に示されているように、認証されたユーザがどのような活動の許可も与えられず、従って、認証の後で、認証されていないユーザ260と識別されることがある。
【0020】
しかし、一般的に、ユーザは、何らかの態様で認証される。例えば、サブスクライバとしての認証が成功した(221)後では、認証されたユーザは、サブスクライバ230と称される。サポート・コンタクトとしての認証の成功(223)の後では、認証されたユーザは、サポート・コンタクト240と称される。訪問されたサポート・コンタクト225としての認証が成功すると、認証されたユーザは、サポート・コンタクト250と称される。
【0021】
図5に示されているように、サポート・サービス500を用いてサポート・コンタクト100を認証してサポート・パラメータにアクセスする及び/又はアクションを実行することによって、サポート・サービス500がサポート・コンタクト100の活動をトラッキングし監査することが可能になる。対照的に、サブスクライバとの直接的な認証をしても、サポート・サービスがいくつかの環境において提供することができる集中的なトラッキングや監査は可能にはならない。とりわけ、この集中的なトラッキング及び監査によって、サブスクライバ100が適切なレベルのサポートを受けることをサポート・サービスが保証することが可能になる。例えば、発見された時点で、複数のサブスクライバに対するローグ(rogue)又は制限付きの(compromised)サポート・コンタクトを、それぞれのサブスクライバが個別的なアクションをすることなしに、サポート・サービスにおいて終了することができる。
【0022】
図3は、サブスクライバに関するステート・ダイアグラムである。サブスクライバになるためには、ユーザは、サポート・サービスに登録する。登録には、サブスクライバとして参加するのに必要な情報を提供することが含まれるが、これは、実際の例ごとに変動する。有料のサポート環境では、登録には、サブスクライバを識別するのに十分な情報を提供することが含まれるのが典型的であり、これは、課金のためのクレジット・カード情報であることが多い。他の例では、電子メール・アドレス、インスタント・メッセージング・アドレス、それ以外の識別子など以外に何も提供する必要がない場合もある。図3に示されているように、登録が済むと、サブスクライバは、アクティブなサブスクライバと称される。注意すべきであるが、一般的に、この出願において「サブスクライバ」という用語が用いられるときには、アクティブなサブスクライバを指すのが通常である。アクティブなサブスクライバが不良債権履歴を有しているとか、サブスクライバとして参加するのに必要となるソフトウェアをクライアントにおいてアンインストールすると(315)、サブスクライバは非アクティブなサブスクライバと称されることになる。
【0023】
次に、サブスクライバは安全か、について説明する。サポート・コンタクトは、サブスクライバが安全かどうかを知りたがる。従って、サポート・コンタクトは、サポート・サービスのサブスクライバ登録システムの中のサポート・ウェブサイトのサポート・エリアに行き、認証マネジャを用いてサインインする。この例では、サードパーティの認証機構が、認証サービスを提供する。サポート・ウェブサイトを通じて、サポート・コンタクトは、1又は複数のセキュリティ・パラメータの形態で、サブスクライバ・マシンの状態を見ることができる。例示的なセキュリティ・パラメータは、ウイルス保護がオンかどうか、ウイルス保護が更新されているか、ファイアウォール保護がオンかどうか、オペレーティング・システムやそれ以外のソフトウェアの重要な更新がインストールされ最新の状態になっているかどうか、最後に更新されたのはいつか、などが含まれる。セキュリティ・パラメータは、健康計(health meter)のレーティングの形式で提供され、健康問題に関する更なる詳細も含まれる。例えば、この健康計は、色(例えば、緑、黄色、赤など)や数字のスケールを用いて、クライアントの全体的な指示を提供する。
【0024】
次に、サポート・コンタクトが心配しなければならないことが何かあるか、について説明する。サポート・コンタクトは、サブスクライバのマシンにおいて生じていなければならないことが実際に生じているかどうかを知りたい。サポート・コンタクトは、また、サブスクライバのセキュリティ及び保護を低下させる可能性があるような活動がサブスクライバのマシンにおいて最近生じたかどうかを知りたい。サブスクライバ・マシンのための最近の活動への詳細なリンクをチェックすることで、最後のウイルス・スキャンはいつ実行されたのか、マシンはきれいだったか、最後のアンチウイルス・シグニチャはいつ更新されたか、最後にバックアップがなされたのはいつか、マシンが最後にサポート・サービスにデータを送ったのはいつか、などを見ることができる。
【0025】
次に、最近の重要なアラート、について説明する。サポート・コンタクトは、健康計の変化について知りたいし、サブスクライバが実行することになっているアクション項目が生じているかどうか、を知りたい。ウェブサイトは、健康計のレーティングの変化と、先週分の変化に対応する理由とを示す(あるいは、設定された数の最も最近の変化)。サポート・コンタクトの好みに応じて、サポート・コンタクトは、電子メールやテキスト・メッセージにより、健康計の変化に関するアラート通知を受け取ることができる。
【0026】
サブスクライバは、加入アカウントにあるすべてのマシンについて、セキュリティの状態と最近の活動とを知りたい。サブスクライバは、ウェブサイトのサブスクライバ・エリア562に行き、認証マネジャ552を用いてサインインする。ここでも、サードパーティの認証670が、サブスクライバを認証する。サブスクライバは、その加入契約(subscription)に含まれているすべてのクライアントのリストを示される。それぞれのクライアントに対して、ウェブサイトは、マシンごとの状態と最近の活動と最近のアラートとを見るためのリンクを含んでいる。サブスクライバが利用可能な情報は、上述した場合と同じように、サポート・コンタクトが利用可能な情報と同じである。場合によっては、1つの加入契約に含まれるマシンの数は制限される可能性がある。というのは、サポートに必要となる資源(リソース)は、サポートを要求するマシンの数と正比例するからである。資金的な要素が関係しないような他の例では、1つの加入契約に対するマシンの数は相当な数となりうる。
【0027】
サブスクライバは、誰かをサポート・コンタクトに招待したい。サブスクライバは、様々な方法で、誰かをサポート・コンタクトに招待することができる。例えば、あるユーザがサブスクライバとしてサインアップすると、そのユーザは、1又は複数のサポート・コンタクトを特定する場合がある。あるいは、そのような1又は複数のサポート・コンタクトを後で追加することもありうる。サブスクライバは、ウェブサイトにアクセスして、サインインする。サインインの際に、サブスクライバは、サポート・コンタクトを追加するためのリンクを提供される。サブスクライバは、サポート・コンタクトの電子メール・アドレス、インスタント・メッセージ・アドレス、それ以外の何らかの識別子などを提供することによって、サポート・コンタクトを追加する。サポート・サービスは、その招待がサポート・コンタクトに送られることを指示し、その時点で、サポート・コンタクトは、招待されたサポート・コンタクトとしてサブスクライバに識別される。
【0028】
招待されたサポート・コンタクトは、招待を受け取る。招待が電子メールである場合には、この電子メールは、招待を受諾するためのリンクを含む。GUIDがその招待に埋め込まれていて、サポート・コンタクトをサポート・サービスに識別する。サポート・コンタクトは、ウェブサイトにアクセスし、認証マネジャ552とサードパーティの認証670とを用いてサインインする。サポート・コンタクトがサードパーティの認証670との間でアカウントを有していない場合には、サポート・コンタクトは、アカウントを作成した上で戻って来るように指示される。
【0029】
最初のサインインの際には、サポート・コンタクトは、サポート・サービス500を用いることによりサポート・コンタクトとなるための条件を受け入れることを求められる。また、サポート・コンタクトは、フレンドリーな名前や、最初のコンタクトに用いたものと異なる場合にはコンタクト用の電子メール・アドレスなどの個人情報を提供する。希望する場合には、サポート・コンタクトは、サポート・コンタクトの注意が必要となるような何らかの条件がクライアント/サブスクライバにおいて発生したときには、サポート・サービスからアラートを受け取るという選択をすることもできる。サポート・コンタクトが登録プロセスのこの部分を完了すると、サポート・コンタクトは、サポート・サービスに関する更なる詳細と、サポート・サービスが提供する特徴と、サポート・コンタクトの責任とを説明するウェブサイトを示される。
【0030】
招待の受諾が成功すると、サポート・コンタクトは、サポート・コンタクトのサブスクライバ・リストにおいて、アクティブなサポート・コンタクトとして姿を現す。この時点以降は、サポート・コンタクトは、そのサブスクライバと関連付けされたすべてのマシンへのサポート・コンタクトとしてのアクセスを与えられる。所定の時間の間に受諾がなされない場合には、招待は失効する。失効した場合には、サポート・コンタクトが招待を受諾しようとすると、サポート・コンタクトには、別の招待を受け取らないとならないというメッセージが与えられる。1人のサブスクライバに対して許容されるサポート・コンタクトの数を、何らかの所定の数に制限することが可能である。
【0031】
図4は、サポート・コンタクトのためのステート・ダイアグラムである。上述したように、招待を受け取ったサポート・コンタクトは、招待されたサポート・コンタクト250と称される。招待されたサポート・コンタクトが招待を受諾する(253)と、そのサポート・コンタクトは、アクティブなサポート・コンタクト240と称される。注意しておいてほしいのであるが、この出願では、「サポート・コンタクト」という用語は、アクティブなサポート・コンタクトを意味する。アクティブなサポート・コンタクトが、すべてのサブスクライバからサポートとして削除される(243)などにより、どのサブスクライバに対してももうサポート・コンタクトではない(245)場合には、そのサポート・コンタクトは、非アクティブなサポート・コンタクト410と称される。例えば3ヶ月など所定の時間が経過する(415)と、サポート・コンタクトは、ユーザ210になる。図4に示されているように、招待されたサポート・コンタクトが招待255が満了して失効する前に招待を受諾しない場合には、招待された人間はユーザ210と称される。図4に示されている状態は、単一のサブスクライバに関する場合である。
【0032】
サブスクライバの健康計が赤になる。サブスクライバがファイアウォールをオフにすることを決めるのは、アプリケーションを用いることができず、ファイアウォール・ポリシをどのようにして修正するのかを知らないからである。健康計は、潜在的なセキュリティ・リスクのために赤に変化する。(上述したように、健康計は、色及び/又は数字の範囲を含めて様々な形態をとることができる。)結果的に、サポート・コンタクトは、ファイアウォールが消勢(ディセーブル)されたためにサブスクライバのマシンの健康計が赤に変化したことを示すアラートを受け取る。サポート・コンタクトは、サブスクライバに電話をして、どうしてサブスクライバがファイアウォールを消勢したのかを見いだして、どのようにしてアプリケーションをファイアウォール・ポリシに追加してファイアウォールを付勢(イネーブル)するのかを説明する。注意すべきであるが、このようにして及びそれ以外の方法で、サポート・サービスは、より深刻になる前に、潜在的な問題を識別して対処するという点で(例えば、脆弱性の原因を判断する前に、ウイルス感染やセキュリティ違反を待機する)、積極的な役割を有している。
【0033】
サポート・コンタクトは、サポート・コンタクトのプロファイルを構成/修正することを希望する。サポート・コンタクトは、サポート・サービスのウェブサイトにサインインする。いったんサインインすると、サポート・コンタクトは、好みに応じて、アラートをオン又はオフにすることができる。サポート・コンタクトは、関連するフレンドリ・ネームとコンタクト電子メール又はそれ以外のアドレスとを修正することができる。サポート・コンタクトがコンタクト電子メール・アドレスを修正すると、確認のために、その特定の電子メール・アドレスに電子メールが送られる。サポート・コンタクトは、次に、その電子メールの中の確認リンクを用いてサインインし、電子メール・アドレスの変更を確認する必要がある。
【0034】
サポート・コンタクトの終了。サポート・コンタクトは、3つの方法で終了することができる。すなわち、サブスクライバがもはやサポート・コンタクトを用いることを希望しない、サブスクライバの加入契約(サブスクリプション)が終了した、又は、サポート・コンタクトがもはやそのサブスクライバをサポートすることを希望しない、という場合である。サブスクライバが関係を終了させる、又は、サブスクライバの加入契約が何らかの理由で終了した(例えば、サブスクライバが、もはやそのサービスの退化を支払うことを希望しない)ときには、サポート・コンタクトは、サブスクライバのマシンへのサポート・コンタクトとしてのアクセスは終了した旨を示すメッセージを受け取る。メッセージは、終了の理由を示すこともある。メッセージは、サポート・コンタクトが終了プロセスを単純化する何らかのアクションをとるように求める場合もある。
【0035】
サブスクライバは、サポート・ウェブサイトからサポート・コンタクトを終了することができる。サインインの後で、サブスクライバは、すべてのサポート・コンタクトのリストをサブスクライバに示すリンクを選択する。このリストは、例えば、フレンドリ・ネームと電子メール・アドレスとを含むことがある。サブスクライバは、リストからサポート・コンタクトを選択し削除する。いくつかの例では、サポート・コンタクトを削除する確認が示される。上述したように、いったん削除が確認されると、電子メールがサポート・コンタクトに送られて、サブスクライバがそのサポート・コンタクトを落とした(ドロップした)ことを示す。サブスクライバは、サポート・コンタクトが招待を受諾しなかった(すなわち、サポート・コンタクトは、単に、招待されたサポート・コンタクトである)場合でも、そのサポート・コンタクトを削除できる。削除の時点ではサポート・サービスがサポート・コンタクトへの招待をまだ送っていなかった場合には、メッセージは送られない。
【0036】
サポート・サービスのサブスクライバの使用は、様々な理由のために終了される。例えば、サブスクライバが、有効期限が過ぎてしまっているクレジット・カードを提供する場合がある。終了の後では、サポート・コンタクトは、サブスクライバの加入契約が終了している旨を示すメッセージを受け取る。通常は、このような状況では、電子メールは、終了の理由に関する情報は何も含まない。
【0037】
また、サポート・コンタクトが、関係の終了を希望することもある。サポート・サービスのウェブサイトにサインインした後で、サポート・コンタクトは、そのサポート・コンタクトがサポートを提供するサブスクライバ(及びそれぞれのサブスクライバに対するマシン)のリストを示される。サポート・コンタクトは、リストからサブスクライバを選択して削除することができる。サブスクライバのためのサポート・コンタクトとしての終了の確認が示される。いったん確認がなされると、メッセージがサブスクライバに送られ、サポート・コンタクトはそのサブスクライバのマシンをもはやモニタしないことが告げられる。
【0038】
本発明の実施例は、1又は複数の専用コンピュータ及び/又は1又は複数の汎用コンピュータを含み、これらのコンピュータは、以下で詳細に関して説明する様々なコンピュータ・ハードウェアを含む。本発明の範囲内の実施例は、また、コンピュータ実行可能な命令やデータ構造がその上に記憶されているコンピュータ可読な媒体を含む。ここで言うコンピュータ可読な媒体は、汎用又は専用のコンピュータによってアクセスが可能な任意の使用可能な媒体でありうる。制限は意味しないが、例を挙げると、ここで言うコンピュータ可読な媒体としては、RAM、ROM、EEPROM、CD−ROM、それ以外の光ディスク記憶装置、磁気ディスク記憶装置、それ以外の磁気記憶デバイス、コンピュータ実行可能な命令又はデータ構造の形態を有する所望のプログラム・コード手段を有する又は記憶するのに用いることができ、汎用又は専用のコンピュータによるアクセスが可能な任意のそれ以外の媒体などがある。情報がネットワーク又はそれ以外の通信接続又はインターフェース(ハードワイアード、ワイアレス、ハードワイアードとワイアレスの組合せ、のいずれか)を介してコンピュータに転送あるいは提供されると、そのコンピュータがその接続やインターフェースをコンピュータ可読な媒体と見なすのは適切である。従って、そのような任意の接続をコンピュータ可読な媒体と称するのは適切である。以上のようなものの組合せも、やはり、コンピュータ可読な媒体の範囲に含まれる。コンピュータ実行可能な命令は、例えば、汎用コンピュータ、専用コンピュータ又は専用の処理デバイスにある機能や複数の機能群を実行させる命令やデータである。
II.例示的なサポート・サービス
図5は、本発明による例示的なサポート・サービス500のブロック図である。サポート・サービス500は、クライアント・サービス・システム510と、サブスクライバ登録システム550とを含む。図5は、更に、サポート・コンタクト100と、必ずしもサポート・サービス500を一部ではない様々なサービスを含むが私的又は公的なネットワークなどのより大きなネットワークの一部を構成するネットワーク・クラウド610と、クライアント/サブスクライバ700とを示している。注意すべきであるが、ネットワーク・クラウド601は、認証コンポーネント670と、アラート・コンポーネント680と、電子メール・システム・コンポーネント690とを含む。アラート・コンポーネント680は、インスタント・メッセージング・システムの一部でありうる。
【0039】
サブスクライバ登録システム550は、サポート・コンタクト100とサブスクライバ及びサポート・ウェブサイト562へのクライアント/サブスクライバ700のサインインとのどちらかを用いてネットワーク・クラウド601の中の認証コンポーネント670と相互作用する認証マネジャ552を含む。ある例では、認証コンポーネント670は、サードパーティの認証システムを表す。もちろん、他の例では、認証は、サブスクライバ登録システム550及び/又はサブスクライバ及びサポート・ウェブサイト562と一体化されている。
【0040】
サブスクライバ及びサポート・ウェブサイト562は、上述た活動のための例示的な実装例である。登録に加えて、サポート・コンタクト100とクライアント/サブスクライバ700とが、サポート・サービス500及びこれらのウェブサイトとを介して相互に通信する。
【0041】
サポート・コンタクト・プロファイル・マネジャ572は、サポート・コンタクト100のための情報を管理するが、この情報には、サポート・コンタクトとサポート・コンタクトのプロファイルとに関係する状態情報が含まれる。サポート・コンタクト100のための情報は、サポート・コンタクト記憶574に記憶される。状態情報には、図4に示されているサポート・コンタクトのための状態やそれ以外の情報が含まれる。サポート・コンタクトのプロファイルには、フレンドリ・ネームやコンタクト・アドレスなど、サポート・コンタクトに関係する情報すべてが含まれる。クライアント/サブスクライバ700に関する情報は、サブスクライバ記憶592に記憶される。
【0042】
クライアント・サービス・システム510は、クライアント/サブスクライバ700から受け取られたサポート・パラメータを集積し解析して、サポート・パラメータを、サブスクライバ及びサポート・ウェブサイト562を介してサポート・コンタクト100に提供する。サポート・パラメータは、また、アラート・システム680と電子メール・システム690とを介してサポート・コンタクト100にも提供される。この詳細については後述する。
【0043】
メッセージング・テレメトリ・システム542は、テレメトリ・データを交換するときに、クライアント/サブスクライバ700と相互作用することを担当する。メッセージ・テレメトリ・システム542は、また、サポート・アクションをクライアント/サブスクライバ700に送ることも担当する。例えば、サポート・コンタクト100がクライアントにおいてなされるべきアクションを識別すると、これらのアクションは、メッセージング・テレメトリ・システム542を介してクライアント/サブスクライバ700に送られる。これらのアクションは、アクション・スクリプト・パブリシャ524によって公開されるスクリプトの形態を有することがあるし、単に、サブスクライバへの命令のリストである場合もある。スクリプトは、サポート・コンタクト100から受け取られた入力に基づいてサブスクライバ及びサポート・ウェブサイト562から受け取られ潜在的には1又は複数のアクション・スクリプト565の形態を有する情報に基づいて、アクション・スクリプト・レシーバ522によって準備される。クライアント/サブスクライバ700に送られる前に、スクリプトは、アラート記憶532に記憶される。
【0044】
クライアント/サブスクライバ700から受け取られたテレメトリ・データ(サポート・パラメータ513)は、状態(stat)記憶514に記憶される。状態検索512は、サポート・パラメータをサブスクライバ及びサポート・ウェブサイト562に提供し、そこで、検討及び解析のためにサポート・コンタクト100によってアクセスされる。状態記憶は、入力されるサポート・パラメータをモニタし(516)、それらを、アラート・マネジャ534による処理のためのアラート記憶532に提供する。アラート・マネジャ534は、アラート記憶の中の情報を解析して、受け取られたサポート・パラメータの中にある内容を判断して、アラートをサポート・コンタクト100に送る。ここで、サポート・コンタクト100は、サブスクライバ及びサポート・ウェブサイト562にアクセスするまでは、サポート・パラメータについて知らないはずである。示されているように、アラート・マネジャは、アラートを、電子メール・インターフェース526を介して又はアラート・インターフェース536を介して、サポート・コンタクトに送る。アラート・インターフェース536は、インスタント又はテキスト・メッセージ・アラート・システムに対応する。
III.例示的な分散型サービス配信環境
図6は、本発明の実現に用いるのに適した例示的な分散型サービス配信環境を図解している。図6に関する説明は、分散型サービス配信モデルを構成するコンポーネントのハイレベルな導入から始まり、次に、これらのコンポーネントがどのように相互作用するかに関する詳細な説明を行う。
【0045】
図6に図解されている例示的な分散型のサービス配信環境は、ネットワーク・クラウド601と、ルーツ・サイロ600と、クライアント700と、1又は複数のサービス・サイロ500及び502とを含み、これらのコンポーネントは、すべて、ネットワーク接続610、620、630、640、650及び660を介して通信する。この設計は、サービス・コンポーネントの間の通信の必要性を最小化することによって、インターネットなどのネットワークを介した高度に分散型のサービス配信環境をスケーリングし動作させる。スケールに関しては、この設計は、この詳細については後述するが複数のサービス・インスタンスのホスティングを容易にし、システム容量をスケールアップする、又は、複数のサービス・プロバイダにわたるサービスを調整するのに用いられる。このモデルは、また、個人識別可能な情報(PII)を、日々のサービス情報から分離する機構を提供する。PIIの例には、氏名、住所、電話番号、クレジット・カード番号、電子メール・アドレス、人口学的情報、他の加入契約、加入履歴などが含まれる。
【0046】
ルーツ・サイロ600は、クライアント・ベースの全体に対して、エンタイトルメント(タイトル付け、資格付与、entitlement)、配置(provisioning)、PII記憶サービスなどを提供する。サービス・サイロ500は、クライアントとの日々のサービス相互作用を提供し、更に、関連するデータを与える記憶装置を提供する。クライアント700は、ルーツ・サイロ600によってエンタイトルメントがなされ配置されているが、サービス・サイロ500を介して、日々、サービスを受ける。管理的な側面は、ルーツ・サイロと一体化することも別個のサイロとして実現することも可能であり、日々のサービス動作を決定し、全体的なサービス状態に関する総体的な視野を提供する。
【0047】
サービス証明書624は、クライアントとルーツ・サイロとサービス・サイロとの間での安全な通信のために、サービスのエンタイトルメント情報と、指定されたサービス・サイロの位置を識別するための情報と、公開鍵と秘密鍵との対などの1又は複数の鍵と、を含む。サイロ間の通信チャネル610及び660により、サービス・サイロとルーツ・サイロとが相互に通信することが可能になる。サービス・サイロのコンフィギュレーション情報654により、サービス・サイロが、あるサービスに関してクライアント側の環境設定(コンフィギュレーション)を行うことが可能になる。サービス・アクション614は、全体的なシステムを動作させるために、基本的管理機能を提供する。
A.個人識別可能な情報とサービス関連データとの分離
本発明による分散型のサービス配信モデルの背後にある原則は、登録及び/又は課金活動に関係する個人識別可能な情報(PII)を処理するシステムを、関連データ及び処理から分離するということである。データの観点からは、最も微妙なデータ、特に、課金に関係する情報は、登録、エンタイトルメント及び課金サービスを担当するルーツ・サイロ600の内部に維持される。対照的に、クライアントの日々のサービスは、サービス・サイロ500によって実行されるが、これには、図5との関係で上述した、クライアント更新の管理、クライアント・テレメトリの処理、クライアントの状態を見るためのウェブ関連インターフェースの提供などの活動が含まれる。希望するスケールに応じて、複数のサービス・サイロが、クライアントを特定のサービス・サイロに配置し割り当てることを担当する単一のサイロを用いて、動作される。
【0048】
複数のサービス・サイロ設計は、少なくとも3つの場合を支持している。すなわち、スケーリング・アウト、地理的分散、OEM又は他のフェデレーションである。スケーリング・アウトは、単一のデータ・センター又は地理的位置の中に複数のサービス・サイトを有することに関係する。地理的分散は、地理的な意味でサービル・サイロを分散させることに関係するが、いくつかのサービス・サイロはスケールアウトされている場合もある。フェデレーションは、サービス・サイロを担当するオペレータを分散させることに関係するが、いくつかのサービス・サイロは地理的に分散しているか、及び/又は、スケールアウトされている。もちろん、これらの場合はどれも相互に排他的ではなく、特定の実装例における目的及び必要性に応じて、他の場合も可能である。
B.メッセージングの設計
この設計は複数のサービス・サイロを可能にするのだから、サイロ間の従属性に加えて、ルーツ・サイロとサービス・サイロとの間の動作的な従属性に注意する。換言すると、高レベルの信頼性を達成するため、トランザクションは複数のサイロの両方には関わるべきではない。例えば、サービス・サイロ500は、サービス・サイロにおけるサービスにアクセスを付与する前のタイトル(資格)のチェックのためにルーツ・サイロ600にコンタクト必要などないのがよい。この設計上の目的を達成するには、クライアントは、通信のためのハブとして機能し、そのコンフィギュレーション及びエンタイトルメントに関する情報のすべてを有する又は記憶する。
【0049】
ある実施例では、メッセージは、セキュリティ及びエンタイトルメントを提供する公開鍵インフラストラクチャ(PKI)システムによってサポートされるエクステンシブル・マークアップ・ランゲージ(XML)メッセージである。換言すると、複数のサイロは、署名がなされたXMLメッセージを介して通信し、クライアントは必要な場合には仲介者として機能し、ほとんどのトランザクションは非同期となる。更に、クライアント700は、サービス証明書データベースの中に、ルーツによって発行されクライアントが割り当てられているサービス・サイロとアクセスを有する又はクライアントが相互作用するサービスとを識別するデジタル証明書を維持する。PKIシステムにより、クライアントとサイロとの両方が、メッセージを有効化してそれらのメッセージが真正であると保証することを可能にする。真正であるかどうかは、コンフィギュレーションの変更、エンドユーザを目標とする通信、再配置に関する変更などの微妙(sensitive)なメッセージの場合には重要である。
C.クライアント、ルーツ・サイロ及びサービス・サイロ情報
サービス・サイロ500は、1又は複数のサービスのクライアントへの潜在的なプロバイダとして登録される。いったん登録されると、サービス・サイロ500は、サービス・アクション614を介して全体的な分散型サービス配信環境の内部で管理され、ルーツ・サイロ600は、クライアントを提供するサービスに関してサービス・サイロに割り当てるのを開始することを担当する。
【0050】
クライアント700は、上述した技術的サポート・サービスの場合のように、サービスとの相互作用に関するリクエスト622をルーツ・サイロ600に方向付ける。リクエストを方向付けることには、リクエストの生成と、そのルーツ・サイロ600への送付とが含まれる。ルーツ・サイロ600は、リクエストをクライアント700から受け取り、サービス・サイロ500をそのサービスの利用可能なプロバイダとして識別する。複数のサービス・サイロがサービスを提供することができるときには、少なくとも部分的にはクライアント及び/又はサービス・サイロの位置に基づいて、1つの特定のサービス・サイロが識別される。あるいは、クライアント700が、特定のサービス・サイロに対する好みを表明することもある。これは、おそらくが、複数の要素がサービスの提供を担当しているのであるが、クライアントが、特定の関係を有している、より信頼している、又は、特定のサービス・サイロを特に好む何らかの他の根拠を有しているからである。この場合の好みは、また、ハードウェア及び/又はソフトウェアのOEM又はそれを再販売する者と関連する特定のサービス・サイロを識別するなど、クライアントのハードウェア及び/又はソフトウェアに基づいている。
【0051】
リクエストは、サービスとの相互作用に対する当初のリクエストか、又は、終了したサービスとの相互作用を新たに更新するリクエストを表す。例えば、リクエストは、何らかのアンチウイルス・ソフトウェアと相互作用してクライアントを保護するものでありうる。ここでは、アンチウイルス・ソフトウェアを最初にインストールする、以前にインストールされたアンチウイルス・ソフトウェアを更新する、又は、既に終了しているか将来に終了するアンチウイルス・ソフトウェアのアップデートに対する加入を更新するか、である。
【0052】
また、クライアント700がPIIをルーツ・サイロ600に提供し、それをルーツ・サイロ600が受け取り、例えば、クライアントのサービスとの相互作用に対する課金の際に記憶して用いることができる。PIIをルーツ・サイロ600に提供することには、PIIの収集と、そのルーツ・サイロへの送信とを含む。
【0053】
ルーツ・サイロ600は、サービス証明書624を生成し、この生成されたサービス証明書は、(i)クライアントが識別されたサービス・サイロにおいてサービスと相互作用する資格があることを示すサービス・エンタイトルメント情報と、(ii)サービス・サイロの位置を識別する位置情報であって、例えば、アドレスやユニフォーム・リソース・ロケータを含むことがある位置情報と、(iii)クライアント700とサービス・サイロ500とルーツ・サイロ600との間の安全な通信に用いられる秘密鍵と公開鍵との対などである1又は複数の鍵と、を含む。サービス証明書は、更に、クライアントがサービスと相互作用することが認められている期間を定義する終了情報を含む。
【0054】
複数のサービス・レベル又は段階を含むサービスについては、サービス証明書は、クライアントが資格を有する特定のサービス・レベル又は段階に対する識別子を含む。例えば、上述したアンチウイルス・ソフトウェアの例では、様々なレベルの及び/又はタイプの保護を利用することができる(アンチウイルス、スパイウエア、ファイアウォールなど)が、サービス証明書によって許容された特定のレベルの相互作用が、アンチウイルス・サービスの中でサービス・レベル又は段階として識別されることがある。
【0055】
ルーツ・サイロ600は、クライアントがサービス・サイロ500においてサービスと相互作用をするときに用いるサービス証明書624をクライアントに送る。クライアント700は、サービス証明書624をルーツ・サイロ600から取得して、そのサービス証明書624の中の位置情報を用いて、サービスとの相互作用を求めるリクエストをサービス・サイロ500に送る。サービス証明書624の取得には、ルーツ・サイロ600からのサービス証明書の受信が含まれる。リクエストのサービス・サイロ500への送信には、リクエストの生成と、そのリクエストをサービス・サイロ500に送信することが含まれる。クライアント700は、サービス証明書をサービス・サイロ500に提供して、クライアントがサービス・サイロ500においてサービスと相互作用する資格がある示し、次に実際に、サポートにおいてサービスと相互作用する。
【0056】
サービス・サイロ500との相互作用には、サービス・サイロからコンフィギュレーション情報654を受け取りサービス・サイロと相互作用できるようにクライアントを設定することを含む。サービス・サイロ400との相互作用には、更に、クライアント・テレメトリ・データをサービス・サイロにおけるサービスに解析のために送ることを含む。テレメトリ・データは、クライアントの状態又は条件に関する情報を指すのに用いられる広範な用語である。テレメトリ・データには、例えば、オペレーティング・システムのバージョン、アンチウイルス・ソフトウェアが動作しているかどうか、動作しているのであればそのアンチウイルス・ソフトウェアが最後に更新されたのはいつか、何らかの脅威が検出されたかどうか、検出されたのならばその脅威の除去に成功したかどうか、クライアントにおいてバックアップが実行されているかどうか、クライアントにおいてファイアウォール保護が付勢されているかどうか、ソフトウェアの更新が最後になされたのはいつか、クライアント・コンポーネントによって生成された特別のイベント、クライアント・ソフトウェアが遭遇したエラー条件、特定のクライアントの特徴に関して処理されていない問題(すなわち、新たなバックアップ・ファイルの更新)、システムの起動時刻、ハードドライブの最後のデフラグメンテーション、などのサポート・パラメータが含まれる。
【0057】
ときには、1つのクライアント700を、あるサイロから別のサイロに移動させることが必要な場合がある。例えば、サービス・サイロが合意された基準に従って動作していないとか、新たなサービス・サイロの利用可能性に基づいてなされる再分散の一環として、などである。クライアント700を移動させるときには、ルーツ・サイロ600は、新たなサービス証明書を生成するが、このサービス証明書は、先のサービス証明書と同じように、(i)当該クライアントが新たなサービス・サイロにおけるサービスと相互作用する資格があることを示すサービス・エンタイトルメント情報と、(ii)新たなサービス・サイロの位置を識別する位置情報と、(iii)クライアントと新たなサービス・サイロとルーツ・サイロとの間での安全な通信に用いられる1又は複数の鍵と、を含む。ルーツ・サイロ600は、新たなサービス証明書をクライアントに送り、新たなサービス・サイロにおけるサービスと相互作用するときにそのクライアントが用いることができるようにして、そのクライアントを先のサービス・サイロから新たなサービス・サイロに移動させる。
【0058】
サービス・サイロ500は、クライアント700を介して、ルーツ・サイロ600によって作成された配置(provisioning)データを受け取り、そのクライアントのための記憶装置を配分し初期化することができるようにする。サービス・サイロ500は、また、サービス・サイロにおけるサービスとの相互作用が承認されている複数のクライアントにブロードキャスト・メッセージを送り、目標が定められたメッセージを1又は複数の個々のクライアントに送る。
【0059】
サービス・サイロ500は、クライアント700からテレメトリ・データを受け取ると、テレメトリ・データを統合し、その統合されたテレメトリ・データを解析のために管理サイロに送る又は報告する(612)。クライアント700から受け取られたテレメトリ・データは、XML形式にフォーマットされ、1又は複数の鍵の中の少なくとも一方によって署名され、テレメトリ・データが当該クライアントによって送られたことを示す。サービス・サイロ500は、クライアントから受け取られたテレメトリ・データのマシン・ビューを提供して、他からのアクセスを可能にする。更に、サービス・サイロ400は、サードパーティのサポート要素をクライアントと関連付け、受け取られたテレメトリ・データを解析し、そのサードパーティのサポート要素にテレメトリ・データの解析の間に識別された1又は複数のサポートに関する課題を告知する。例えば、テレメトリ・データは、修正されるべきであるクライアントにおける性能又はセキュリティに関する課題を示すことがある。
【0060】
すべてのサービス情報をサービス・サイロ500に保持することは必ずしも必要ではないことに注意すべきである。スケール、性能及び利用可能性に関する理由から、あるタイプのコンテンツは1又は複数のキャッシュされたダウンロード・サーバに記憶される場合がある。これは、例えば、インターネットなどのネットワーク・クラウドを介した分散型エッジ・キャッシュ・サーバ又はウイルス定義サービスなどである。このアーキテクチャは、かなり一般的なものであり、パッチを用いてオペレーティング・システムを更新するためのサービスなど、相当な量のダウンロードを提供するサービスによって用いられる。ここでのコンテンツには、クライアント・インストール及び更新ビット、アンチウイルス署名、ファイアウォール・ポリシなどが含まれる。分散型のエッジ・キャッシュ・サーバが提供する利点の1つとして、それによって、OEMがサービス・サイロをホストしている場合に、オペレーティング・システムのベンダがクライアントのいくつかの側面に関する制御を維持できるようになり、すべての顧客に関して一貫性を有するレベルのサービスを保証することができる点がある。また、これにより、オペレーティング・システムに関して悪意のある又は時代遅れになったコンテンツを配信するローグ・サービス・サイロの潜在的な脅威が除去される。
【0061】
ネットワーク・クラウド601は、また、ルーツ・サイロ600との関係での課金活動のための加入契約プラットフォーム・システムを含む場合がある。
IV.例示的なクライアント・コンポーネント
図7は、図1及び図6に図解された例示的なクライアント/サブスクライバ700の中のコンポーネントのブロック図であり、テレメトリ・クライアント730、アンチウイルス・クライアント750、それ以外のクライアント760など様々なサービス・クライアント710を含む。
【0062】
ルーツ・サイロのエンタイトルメント・システムによって発行されたデジタル証明書は、クライアントが割り当てられているサービス・サイロを制御する。しかし、それぞれのサイロは、当該サイロの内部にホストされたサービスに関する追加的なコンフィギュレーション情報を有するのが通常である。このサービス・サイロ・コンフィギュレーション情報は、サービス・サイロの鍵によって署名されたXMLフラグメントを含む。別個のサービス・サイロ・コンフィギュレーション情報を有することによって、サービス・サイロのオペレータは、サイロの内部にホストされているサービスのコンフィギュレーションを動的な態様で管理することが可能になる。例えば、クライアントのハートビートの周波数や、テレメトリ・データをアップロードするためのユニフォーム・リソース・ロケータ/アドレスを動的に設定することが可能である。XMLコンフィギュレーションがデジタル的に署名されているために、クライアントは、コンフィギュレーション情報が変更されていないことを確認することができる。
【0063】
サービス・サイロ・コンフィギュレーション情報は、サービス・コンフィギュレーション情報データベース720の中の配置プロセスの一部として、クライアントにインストールされる。サービス開始の際に、クライアントは、ルーツ・サイロによって割り当てられサービス証明書データベース740に記憶されているデジタル証明書をロードして、それが対応するサービス・サイロ・コンフィギュレーション情報を有しているかどうかをチェックする。もしそうでない場合には、インストールの間であるが、クライアントは署名されたリクエストをサービス・サイロに送り、そのコンフィギュレーション情報を求める。戻されたサイロ・コンフィギュレーション情報は確認がなされ、サービス・コンフィギュレーション情報データベース720にローカルに記憶される。クライアントがサービス・サイロ・コンフィギュレーション情報をロードするときには、そのパラメータの中のどれを受け入れる前に、ファイル上の署名を確認する。エラー条件は、デフォルトのコンフィギュレーション設定の集合によって処理され、指定されたサービス・サイロ又はルーツ・サイロへのコンタクトの追加的な試みについても同様である。
【0064】
テレメトリ・クライアント730とテレメトリ・マネジャ734とにより、クライアント700からのテレメトリ・データの収集が可能になる。とりわけ、テレメトリ・マネジャ734は、サービス・コンフィギュレーション情報データベース720を用いて、どのテレメトリ・データが収集されテレメトリ・データ・データベース732に記憶されるべきか、更には、どのくらいの頻度でテレメトリ・データがサービス・サイロにアップロードされるべきかを判断する。
【0065】
アンチウイルス・クライアント750は、アンチウイルス・ソフトウェア700が最新状態にあるかを判断して、新たなアンチウイルス・ソフトウェアを適切にサービス・サイロからダウンロードする。アンチウイルス・ソフトウェアの状態は、また、アンチウイルス・クライアント750によって提供された更新の状態とは独立に、マシンの状態に関する指示としてテレメトリ・データに含まれる。
【0066】
様々なこれ以外のクライアント760が、分散型サービスは威信モデル一般に対して、また、特にクライアント700に対して開発されている。本発明は、どのような特定のサービスに必ずしも限定されるものではなく、サービスが開発され有効な態様で展開されることを可能にする分散型のサービス配信モデルに向けられている。
V.例示的なハードウェア環境
図8と以下の説明は、本発明が実装される適切なコンピューティング環境に関する短穴で一般的な説明を提供するためのものである。必要というのではないが、本発明は、ネットワーク環境にあるコンピュータによって実行されるプログラム・モジュール又はソフトウェア・コンポーネントなどのコンピュータ実行可能な命令という一般的なコンテンツで説明される。一般的に、プログラム・モジュール又はソフトウェア・コンポーネントには、特定のタスクを実行する又は特定の抽象的なデータ・タイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。コンピュータ実行可能な命令と、関連するデータ構造と、プログラム・モジュールとは、この出願において開示されている方法を構成するステップを実行するプログラム・コード手段の例を表している。そのような実行可能な命令又は関連するデータ構造の特定のシーケンスは、それらのステップにおいて説明される機能を実装するための対応する行為の例を表す。
【0067】
当業者であれば理解することであるが、本発明は、パーソナル・コンピュータ、ハンドヘルド型デバイス、マルチ・プロセッサ・システム、マイクロプロセッサ・ベースの又はプログラマブルな家電製品、ネットワークPC、ミニコンピュータ、メインフレーム・コンピュータなどを含む多くのタイプのコンピュータ・システム・コンフィギュレーションを備えたネットワーク・コンピューティング環境において実現することができる。本発明は、また、通信ネットワークを介してリンクされている(ハードワイアード・リンク、ワイアレス・リンク、又は、これらの組合せによって)ローカル及びリモート処理デバイスによってタスクが実行される分散型のコンピューティング環境においても実現される。分散型のコンピューティング環境では、プログラム・モジュールは、ローカルとリモートとの両方のメモリ記憶装置に配置することができる。
【0068】
図8を参照すると、本発明を実装する例示的なシステムは、従来型のコンピュータ820の形式を有する汎用コンピューティング装置を含み、この装置には、処理ユニット821と、システム・メモリ822と、システム・メモリ822を含む様々なシステムの要素を処理ユニット821に結合するシステム・バス823と、が含まれる。システム・バス823は、メモリ・バス又はメモリ・コントローラと、周辺バスと、様々なバス・アーキテクチャの中の任意のものを用いるローカル・バスとを含む複数のタイプのバス構造の任意ものでありうる。システム・メモリは、リードオンリメモリ(ROM)824と、ランダムアクセスメモリ(RAM)825とを含む。起動の間などにコンピュータ820の内部の要素の間で情報を転送するのを助ける基本ルーチンを含む基本入力/出力システム(BIOS)826が、とむ824に記憶されている。
【0069】
コンピュータ820は、また、磁気ハードディスク839との間で読み出しと書き込みを行う磁気ディスク奴隷部827と、取外し可能な磁気ディスク829との間で読み出し及び書き込みを行う磁気ディスクドライブ828と、CD−ROM又はそれ以外の光媒体など取外し可能な光ディスク831との間で読み出し及び書き込みを行う光ディスクドライブ830とを含む。磁気ハードディスクドライブ827と、磁気ディスクドライブ828と、光ディスクドライブ830とは、ハードディスクドライブ・インターフェース832と磁気ディスクドライブ・インターフェース833と光ドライブ・インターフェース834とのそれぞれによって、システム・バス823に接続される。これらのドライブとそれに関連するコンピュータ可読な媒体とは、コンピュータ820のために、コンピュータ実行可能な命令とデータ構造とプログラム・モジュールとそれ以外のデータとのための不揮発性記憶装置を提供する。ここで説明されている例示的な実施例は磁気ハードディスク839と取外し可能な磁気ディスク829と取外し可能な光ディスク831とを用いているが、データの記憶にはそれ以外のタイプのコンピュータ可読な媒体を用いることができる。そのような媒体には、磁気カセット、フラッシュ・メモリ・カード、デジタル・バーサタイル・ディスク(DVD)、ベルヌーイ(Bernoulli)カートリッジ、RAM、ROMなどが含まれる。
【0070】
1又は複数のプログラム・モジュールを含むプログラム・コード手段は、磁気ハードディスク839、取外し可能な磁気ディスク829、取外し可能な光ディスク831、ROM824、RAM825などに記憶され、オペレーティング・システム835、1又は複数のアプリケーション・プログラム836、それ以外のプログラム・モジュール837、プログラム・データ838などが含まれる。ユーザは、キーボード840、ポインティング・デバイス842、又は、マイクロフォン、ジョイスティック、ゲームパッド、衛星ディッシュ、スキャナなどそれ以外の入力装置(図示せず)を介して、コマンドや情報をコンピュータ820に入力する。これらの及びそれ以外の装置は、システム・バス823に結合されたシリアル・ポート・インターフェース846を介して処理ユニット821に接続されることが多い。あるいは、入力装置は、パラレル・ポート、ゲーム・ポート又はユニバーサル・シリアル・バス(USB)などの他のインターフェースによって、接続することができる。モニタ847や別のディスプレイ装置を、ビデオ・アダプタ848などのインターフェースを介してシステム・バス823と接続することができる。モニタに加えて、パーソナル・コンピュータは、典型的には、スピーカやプリンタなどそれ以外の周辺出力機器(図示せず)を含む。
【0071】
コンピュータ820は、リモート・コンピュータ849a及び849bなど1又は複数のリモート・コンピュータへの論理的な接続を用いて、ネットワーク環境で動作することができる。リモート・コンピュータ849a及び849bは、それぞれが、別のパーソナル・コンピュータ、サーバ、ルータ、ネットワークPC、ピア・デバイス又はそれ以外の一般的なネットワーク・ノードであり、典型的には、コンピュータ820に関して上述した要素の多く又は全部を含む。ただし、図8では、メモリ記憶装置850a及び850bとそれらに関連するアプリケーション・プログラム836a及び836bとが図解されているだけである。図8に示されている論理的な接続は、限定ではなく例示として示されているだけであるがローカルエリアネットワーク(LAN)851と、サイドエリアネットワーク(WAN)852とを含む。このようなネットワーク環境は、オフィス規模又は企業規模でのコンピュータ・ネットワーク、イントラネット及びインターネットにおいて一般的なものである。
【0072】
LANネットワーク環境において用いられるときには、コンピュータ820は、ネットワーク・インターフェース又はアダプタ853を介してローカルなネットワーク851に接続される。WANネットワーク環境において用いられるときには、コンピュータ820は、モデム854、無線リンク、又は、インターネットなどWAN852を介した通信を確立するそれ以外の手段を含む。モデム854は、内蔵の場合と外付けの場合とがあるが、シリアル・ポート・インターフェース846を介してシステム・バス823と接続される。ネットワーク環境では、コンピュータ820との関係で示したプログラム・モジュールは、又はその一部は、遠隔的なメモリ記憶装置に記憶される場合がある。ここに示されているネットワーク接続又はインターフェースは例示的であって、WAN852を介した通信を確立する他の手段も用いることができる点を理解すべきである。
【図面の簡単な説明】
【0073】
【図1】本発明を実現するのに適した例示的な分散型のコンピューティング・システム環境のための高レベルのブロック図を図解している。
【図2】図1に図解された分散型のコンピューティング・システム環境の中の様々な要素のためのステート・ダイアグラムである。
【図3】本発明によるサブスクライバのためのステート・ダイアグラムである。
【図4】本発明によるサポート・コンタクトのためのステート・ダイアグラムである。
【図5】本発明による例示的なサポート・サービスのブロック図である。
【図6】図1に図解された分散型のコンピューティング・システム環境のための追加的な詳細を示すブロック図である。
【図7】本発明による例示的なクライアントのブロック図である。
【図8】本発明の様々な実施例のための適切な動作環境を提供する例示的なコンピュータ・システムを図解している。

【特許請求の範囲】
【請求項1】
1又は複数のクライアントと、前記1又は複数のクライアントに技術的サポートを提供する1又は複数のサポート・コンタクトと、前記1又は複数のクライアントと前記1又は複数のサポート・コンタクトとの間で情報を通信するサポート・サービスを含む分散型コンピュータ・システムのためのコンピュータ・プログラム・プロダクトであって、前記クライアントに技術的サポートを提供するのに用いるためクライアントの動作をモニタする方法を実装するコンピュータ実行可能な命令を有するコンピュータ可読な1又は複数の媒体を含んでおり、前記方法は、
前記クライアントのための前記サポート・サービスを用いてユーザをサブスクライバとして登録するために、登録情報を前記サポート・サービスに送るステップと、
前記サポート・サービスへのサポート・コンタクトを識別するステップと、
1又は複数のサポート・パラメータをトラッキングするステップと、
前記1又は複数のサポート・パラメータを、解析と前記サポート・コンタクトへの分散とのために前記サポート・サービスにアップロードするステップと、
前記サポート・サービスからサポート・データを受け取るステップであって、前記サポート・データは、前記サポート・サービスにアップロードされた前記1又は複数のサポート・パラメータに基づいて前記サポート・コンタクトによって決定された1又は複数のサポート・アクションを含む、ステップと、
前記サポート・データに含まれる前記1又は複数のサポート・アクションを実行するステップと、
を実行するクライアントを含むことを特徴とするコンピュータ・プログラム・プロダクト。
【請求項2】
請求項1記載のコンピュータ・プログラム・プロダクトにおいて、前記サポート・データは、1又は複数のスクリプトを含むか、又は、前記クライアントにおいて実行される1又は複数のプログラムを識別することを特徴とするコンピュータ・プログラム・プロダクト。
【請求項3】
請求項1記載のコンピュータ・プログラム・プロダクトにおいて、前記1又は複数のサポート・パラメータは、(i)前記クライアントにおいてウイルス保護がオンかどうかに関する指示、(ii)前記クライアントにおいてウイルス保護が最新状態にあるかどうかに関する指示、(iii)1又は複数の重要な更新が前記クライアントにおいてインストールされているかどうかに関する指示、(iv)ファイアウォール保護がオンかどうかに関する指示、(v)最後の完全なウイルス・スキャンはいつ実行されたのかに関する指示、(vi)最後のウイルス・スキャンの結果に関する指示、及び(vii)前記クライアントの最後のバックアップはいつ実行されたのかに関する指示の中の少なくとも1つを含むことを特徴とするコンピュータ・プログラム・プロダクト。
【請求項4】
請求項1記載のコンピュータ・プログラム・プロダクトにおいて、前記方法は、
前記1又は複数のサポート・アクションを実行した後で、1又は複数の追加的なサポート・パラメータをトラッキングするステップであって、前記1又は複数の追加的なサポート・パラメータは、前記1又は複数のサポート・アクションが実行されたのかどうかを指示する、ステップと、
前記1又は複数の追加的なサポート・パラメータを、解析と前記サポート・コンタクトへの分散とために前記サポート・サービスにアップロードするステップと、
を更に含むことを特徴とするコンピュータ・プログラム・プロダクト。
【請求項5】
請求項1記載のコンピュータ・プログラム・プロダクトにおいて、前記サブスクライバのための前記サポート・サービスを用いて1又は複数の他のクライアントが登録され、前記方法は、
前記サポート・サービスを前記サブスクライバとして認証するステップと、
前記サブスクライバのための前記サポート・サービスを用いて登録された前記クライアントのそれぞれのために、少なくとも1つのサポート・パラメータをダウンロードするステップと、
を更に含むことを特徴とするコンピュータ・プログラム・プロダクト。
【請求項6】
請求項1記載のコンピュータ・プログラム・プロダクトにおいて、前記クライアントは前記サポート・サービスへの1又は複数の他のサポート・コンタクトを識別し、前記方法は、検討のために前記サポート・コンタクトのリストをダウンロードするステップを更に含むことを特徴とするコンピュータ・プログラム・プロダクト。
【請求項7】
請求項1記載のコンピュータ・プログラム・プロダクトにおいて、前記方法は、前記サポート・サービスがどのような追加的なサポート・パラメータを前記サポート・コンタクトに分散することも停止するために前記サブスクライバは前記サポート・コンタクトがサポートを提供することをもはや希望しないことを前記サポート・サービスに指示するステップを更に含むことを特徴とするコンピュータ・プログラム・プロダクト。
【請求項8】
1又は複数のクライアント・サブスクライバと、前記1又は複数のクライアントに技術的サポートを提供する1又は複数のサポート・コンタクトと、前記1又は複数のクライアント・サブスクライバと前記1又は複数のサポート・コンタクトとの間で情報を通信するサポート・サービスとを含む分散型コンピュータ・システムのためのコンピュータ・プログラム・プロダクトであって、クライアント・サブスクライバに技術的サポートを提供するのに用いるためサポート・パラメータをトラッキングする方法を実装するコンピュータ実行可能な命令を有するコンピュータ可読な1又は複数の媒体を含んでおり、前記方法は、
クライアントのための前記サポート・サービスを用いてユーザをサブスクライバとして登録するステップと、
前記サブスクライバによって識別されている1又は複数のサポート・コンタクトを前記サブスクライバと関連付けるステップと、
前記クライアントからの1又は複数のサポート・パラメータを集積するステップと、
前記1又は複数のサポート・パラメータを前記1又は複数のサポート・コンタクトに提供するステップと、
前記1又は複数のサポート・パラメータに応答して前記1又は複数のサポート・コンタクトからの1又は複数のサポート・アクションを集積するステップと、
前記1又は複数のサポート・アクションを含むサポート・データを生成するステップと、
前記サポート・データを前記クライアントに提供するステップと、
を実行するサポート・サービスを含むことを特徴とするコンピュータ・プログラム・プロダクト。
【請求項9】
請求項8記載のコンピュータ・プログラム・プロダクトにおいて、前記方法は、
前記クライアントから集積された前記1又は複数のサポート・パラメータを解析するステップと、
前記1又は複数のサポート・パラメータの前記解析に基づいて前記1又は複数のサポート・コンタクトにアラートを送るステップと、
を更に含むことを特徴とするコンピュータ・プログラム・プロダクト。
【請求項10】
請求項8記載のコンピュータ・プログラム・プロダクトにおいて、前記1又は複数のサポート・パラメータを集積する前記ステップは、前記クライアントから前記1又は複数のサポート・パラメータを周期的に受け取るステップを更に含むことを特徴とするコンピュータ・プログラム・プロダクト。
【請求項11】
請求項8記載のコンピュータ・プログラム・プロダクトにおいて、1又は複数のサポート・コンタクトを前記サブスクライバと関連付ける前記ステップは、
前記1又は複数のサポート・コンタクトのそれぞれに対する識別子を前記サブスクライバから受け取るステップと、
前記サブスクライバに対するサポート・コンタクトとなるように前記1又は複数のサポート・コンタクトのそれぞれを招待するステップと、
前記1又は複数のサポート・コンタクトの中の少なくとも1つから前記サブスクライバに対するサポート・コンタクトとなるという承諾を受け取るステップと、
を含むことを特徴とするコンピュータ・プログラム・プロダクト。
【請求項12】
請求項11記載のコンピュータ・プログラム・プロダクトにおいて、前記方法は、
前記1又は複数のサポート・コンタクトの中の少なくとも1つに対する個人情報を受け取るステップと、
前記1又は複数のサポート・コンタクトの中の前記少なくとも1つが前記クライアントから集積された前記1又は複数のサポート・パラメータの解析に応答して生成されたすべてのアラートを受け取ることを希望するとの指示を受け取るステップと、
を更に含むことを特徴とするコンピュータ・プログラム・プロダクト。
【請求項13】
請求項8記載のコンピュータ・プログラム・プロダクトにおいて、前記方法は、前記サブスクライバからの指示を受け取り前記サブスクライバのためのサポート・コンタクトとして前記1又は複数のサポート・コンタクトの中の少なくとも1つを終了するステップを更に含むことを特徴とするコンピュータ・プログラム・プロダクト。
【請求項14】
請求項8記載のコンピュータ・プログラム・プロダクトにおいて、前記1又は複数のサポート・コンタクトの中の少なくとも1つは複数のサブスクライバのためのサポート・コンタクトであり、前記方法は、
前記複数のサブスクライバのリストを前記1又は複数のサポート・コンタクトの中の前記少なくとも1つに送るステップと、
前記1又は複数のサポート・コンタクトの中の前記少なくとも1つが前記サブスクライバのためのサポート・コンタクトとして削除されるべきであるとの指示を受け取るステップと、
前記1又は複数のサポート・コンタクトの中の前記少なくとも1つと前記サブスクライバとの関連付けを削除するステップと、
を更に含むことを特徴とするコンピュータ・プログラム・プロダクト。
【請求項15】
複数のクライアントと、前記複数のクライアントに技術的サポートを提供する1又は複数のサポート・コンタクトと、前記複数のクライアントと前記1又は複数のサポート・コンタクトとの間で情報を通信する1又は複数のサポート・サービスとを含む分散型コンピュータ・システムにおいて、
前記1又は複数のクライアント及び前記1又は複数のサポート・コンタクトと通信するネットワーク・インターフェースと、
コンピュータ実行可能な命令を有する1又は複数のコンピュータ可読な媒体であって、前記コンピュータ実行可能な命令は、
クライアントのための前記サポート・サービスを用いてユーザをサブスクライバとして登録するコンピュータ実行可能な命令と、
1又は複数のサポート・コンタクトを前記サブスクライバに割り当てるコンピュータ実行可能な命令と、
前記クライアントから1又は複数のサポート・パラメータを受け取るコンピュータ実行可能な命令と、
前記1又は複数のサポート・パラメータを前記1又は複数のサポート・コンタクトに送るコンピュータ実行可能な命令と、
前記1又は複数のサポート・パラメータに基づいて前記1又は複数のサポート・コンタクトから1又は複数のサポート・アクションを受け取るコンピュータ実行可能な命令と、
前記1又は複数のサポート・アクションを前記クライアントに送るコンピュータ実行可能な命令と、
を含む、1又は複数のコンピュータ可読な媒体と、
前記ネットワーク接続及び前記1又は複数のコンピュータ可読な媒体とに結合されており、前記ネットワーク接続を介してデータを送受信し、前記コンピュータ実行可能な命令を実行する処理ユニットと、
を含むことを特徴とするサポート・サービス。
【請求項16】
請求項15記載のサポート・サービスにおいて、前記コンピュータ実行可能な命令は、
前記クライアントから受け取られた前記1又は複数のサポート・パラメータを解析するコンピュータ実行可能な命令と、
前記サブスクライバに割り当てられた前記1又は複数のサポート・コンタクトにアラートが送られるべきであることを判断するコンピュータ実行可能な命令と、
前記1又は複数のサポート・パラメータの解析に基づいて前記1又は複数のサポート・コンタクトにアラートを送るコンピュータ実行可能な命令と、
を更に含むことを特徴とするサポート・サービス。
【請求項17】
請求項15記載のサポート・サービスにおいて、前記コンピュータ実行可能な命令は、前記サブスクライバと前記1又は複数のサポート・コンタクトとを認証するコンピュータ実行可能な命令を更に含むことを特徴とするサポート・サービス。
【請求項18】
請求項15記載のサポート・サービスにおいて、前記コンピュータ実行可能な命令は、
前記1又は複数のサポート・コンタクトのそれぞれを前記サブスクライバのためのサポート・コンタクトになるように招待するコンピュータ実行可能な命令と、
前記1又は複数のサポート・コンタクトの中の少なくとも1つから前記サブスクライバのためのサポート・コンタクトになるという承諾を受け取るコンピュータ実行可能な命令と、
を更に含むことを特徴とするサポート・コンタクト。
【請求項19】
請求項15記載のサポート・サービスにおいて、前記1又は複数のサポート・アクションは前記クライアントにおいて実行されるスクリプトの形式で前記クライアントに送られることを特徴とするサポート・サービス。
【請求項20】
請求項15記載のサポート・サービスにおいて、前記1又は複数のサポート・パラメータは、前記クライアントのセキュリティ状態と、前記クライアントの健康状態と、前記クライアントの前記セキュリティ状態と前記健康状態との両方とのいずれかと対応することを特徴とするサポート・サービス。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公表番号】特表2008−538249(P2008−538249A)
【公表日】平成20年10月16日(2008.10.16)
【国際特許分類】
【出願番号】特願2008−504313(P2008−504313)
【出願日】平成18年3月29日(2006.3.29)
【国際出願番号】PCT/US2006/011482
【国際公開番号】WO2006/107679
【国際公開日】平成18年10月12日(2006.10.12)
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】