(57)【要約】  本明細書では、とりわけ、サービスのグローバルプロビジョニングに対する技術を説明する。本技術は、クライアントに対する位置情報を取得するプロビジョニングサーバを含む。プロビジョニングサーバは、位置情報に基づいて、クライアントが割り当てられる適切なデプロイメントユニットを決定する。プロビジョニングサーバは、その適切なデプロイメントユニットに対する割り当て情報をクライアントに送信する。クライアントは、次いで割り当てられたデプロイメントユニットに通信接続し、そのデプロイメントユニットからサービスの受信を開始する。
2009536402.tif 000002
【特許請求の範囲】
【請求項１】
クライアントにサービスをグローバルにプロビジョニングするシステム（１００）であって、
前記サービスを多数のクライアント（１１０）に提供するように構成された複数のデプロイメントユニット（ＤＵ１−ＤＵＮ）と、
前記クライアント（１１０）に対する位置情報を取得し、前記位置情報に基づいて割り当て情報を前記クライアント（１１０）に送信するように構成されたプロビジョニングサーバ（１２０）であり、前記割り当て情報はデプロイメントユニットの割り当てを含むことを特徴とし、さらに前記プロビジョニングサーバ（１２０）により提供された前記デプロイメントユニットの割り当てに基づいて、前記クライアント（１１０）は特定のデプロイメントユニットと通信接続することを特徴とするプロビジョニングサーバと
を備えるシステム。
【請求項２】
前記プロビジョニングサーバ（１２０）と多数のデータベース（１５０、１６０）とに通信接続されたグローバルプロビジョニングサービス（１４０）であって、前記グローバルプロビジョニングサービスは前記位置情報を前記プロビジョニングサーバ（１２０）から受信し、前記位置情報と前記データベース（１５０、１６０）とを使用して前記割り当て情報を決定し、さらに前記グローバルプロビジョニングサービス（１４０）は前記割り当て情報を前記プロビジョニングサーバ（１２０）に、提供することを特徴とするグローバルプロビジョニングサービスをさらに備えることを特徴とする請求項１に記載のシステム。
【請求項３】
前記プロビジョニングサーバ（１２０）は、コンタクト情報を前記クライアント（１１０）から受信し、前記コンタクト情報を前記グローバルプロビジョニングサービス（１４０）に提供するようにさらに構成されることを特徴とし、
前記多数のデータベース（１５０，１６０）は、前記コンタクト情報をホストするための、前記グローバルプロビジョニングサービス（１４０）に通信接続されたグローバルコンタクトディレクトリ（１６０）を備えることを特徴とする請求項２に記載のシステム。
【請求項４】
前記多数のデータベース（１５０、１６０）は、全ての既知のデプロイメントユニット（ＤＵ１−ＤＵＮ）をホストするための、前記グローバルプロビジョニングサービス（１４０）に通信接続されたグローバルプロビジョニングディレクトリ（１５０）を備えることを特徴とする請求項２に記載のシステム。
【請求項５】
前記プロビジョニングサーバ（１２０）に通信接続された前記グローバルプロビジョニングディレクトリ（１５０）のレプリカ（１７０）であって、前記プロビジョニングサーバ（１２０）は、前記グローバルプロビジョニングサービス（１４０）経由ではなく、前記グローバルプロビジョニングディレクトリ（１５０）の前記レプリカ（１７０）に任意にアクセスして、前記割り当て情報を決定するように構成され、さらに前記グローバルプロビジョニングディレクトリ（１５０）の前記レプリカ（１７０）は、前記グローバルプロビジョニングディレクトリ（１５０）と定期的に同期するように構成されるレプリカをさらに備えることを特徴とする請求項４に記載のシステム。
【請求項６】
複数のプロビジョニングサーバ（２２０１−２２０Ｎ）と、前記グローバルプロビジョニングディレクトリ（２５０）の複数のレプリカ（２７０１−２７０Ｎ）とを備え、前記プロビジョニングサーバ（２２０１−２２０Ｎ）と前記グローバルプロビジョニングディレクトリ（２５０）の前記レプリカ（２７０１−２７０Ｎ）とは、それぞれのデプロイメントユニット（ＤＵ１´−ＤＵＮ´）内部に統合されることを特徴とする請求項５に記載のシステム。
【請求項７】
前記プロビジョニングサーバ（１２０）は、前記クライアント（１１０）から前記位置情報を取得し、前記位置情報は地理的ＩＤおよびタイムゾーンを含むことを特徴とする請求項１に記載のシステム。
【請求項８】
前記プロビジョニングサーバ（１２０）は前記位置情報をグローバルネットワークルーティングインフラから取得することを特徴とする請求項１に記載のシステム。
【請求項９】
クライアントにおいてサービスのグローバルプロビジョニングを受信する方法（３００）であって、
（ａ）位置情報をプロビジョニングサーバに送信するステップ（３１０）と、
（ｂ）割り当て情報を前記プロビジョニングサーバから受信するステップ（３２０）であって、前記割り当て情報が前記クライアントを特定のデプロイメントユニットに割り当て、前記割り当て情報が前記位置情報に基づくステップと、
（ｃ）前記特定のデプロイメントユニットと通信接続するステップ（３３０）であって、前記デプロイメントユニットは前記サービスを前記クライアントに提供するステップと
を含むことを特徴とする方法。
【請求項１０】
（ｄ）更新情報を前記特定のデプロイメントユニットから定期的に受信するステップ（３６０）をさらに含むことを特徴とする請求項９に記載の方法。
【請求項１１】
（ｅ）再割り当て要求情報を前記特定のデプロイメントユニットから受信するステップ（３６０、３７０）であって、前記再割り当て要求情報が前記クライアントに再プロビジョニングを指示するステップと、
（ｆ）ステップ（ａ）、ステップ（ｂ）、およびステップ（ｃ）を繰り返すステップと
をさらに含むことを特徴とする請求項１０に記載の方法。
【請求項１２】
前記位置情報は、アカウントＩＤ、アカウント証明書、ライセンスタイプ、トランザクションＩＤ、およびタイムゾーンを含むことを特徴とする請求項９に記載の方法。
【請求項１３】
前記割り当て情報は、前記特定のデプロイメントユニットに対応するＵＲＬ、前記特定のデプロイメントユニットに対応する第１の証明書、認証トークン、およびハッシュコードを含むことを特徴とする請求項９に記載の方法。
【請求項１４】
前記認証トークンは前記プロビジョニングサーバの名前を含むことを特徴とする請求項１３に記載の方法。
【請求項１５】
前記ハッシュコードは、前記アカウントＩＤ、トランザクションＩＤ、前記特定のデプロイメントユニットに対応する前記ＵＲＬ、前記プロビジョニングサーバに対応するＵＲＬ、および前記プロビジョニングサーバに対応する第２の証明書のハッシュを含むことを特徴とする請求項１３に記載の方法。
【請求項１６】
サービスをグローバルにプロビジョニングする方法（４００）であって、
クライアントに対する位置情報を取得するステップ（４１０）と、
前記クライアントが割り当てられるだろう好適なデプロイメントユニットを決定するステップ（４２０）と、
前記好適なデプロイメントユニットに関する割り当て情報を前記クライアントに送信するステップ（４６０）であって、前記クライアントは、前記好適なデプロイメントユニットから前記サービスを受信するために、前記割り当て情報を受信すると前記好適なデプロイメントユニットに通信接続するステップとを含むことを特徴とする方法。
【請求項１７】
前記割り当て情報を前記クライアントに送信する前に、前記割り当て情報を暗号化キーで署名するステップ（４５０）をさらに含むことを特徴とする請求項１６に記載の方法。
【請求項１８】
前記決定するステップ（４２０）は、
前記好適なデプロイメントユニットを決定するために、前記位置情報をグローバルデータセンタに送信するステップ（４３１）と、
前記割り当て情報を前記グローバルデータセンタから受信するステップ（４３２）と
を含むことを特徴とする請求項１６に記載の方法。
【請求項１９】
前記グローバルデータセンタは全て既知のデプロイメントユニットをホストするためのグローバルプロビジョニングディレクトリを備え、
前記決定するステップ（４２０）は、
前記グローバルデータセンタ経由ではなく前記グローバルプロビジョニングディレクトリのレプリカから前記割り当て情報を任意に取得するステップ（４４１）をさらに含むことを特徴とする請求項１８に記載の方法。
【請求項２０】
新規デプロイメントユニットが既知である場合、現在のクライアントに関してグローバルデータセンタにマークするステップ（４７４）と、
再割り当て要求情報を前記現在のクライアントに送信するステップ（４７５）であって、前記再割り当て要求情報が前記現在のクライアントに再プロビジョニングさせるステップと
をさらに含むことを特徴とする請求項１６に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クライアントにサービスをグローバルにプロビジョンするシステムおよびその方法に関する。
【背景技術】
【０００２】
長年にわたり、インターネットは情報を公開する単純な手段からリソースが豊富なマルチメディア環境へと発展してきた。家庭およびビジネスにおけるブロードバンド技術の拡大により、各種のサービスをインターネット上で提供する機会が生じている。これらのサービスの中にはグローバルビジネスの効率化を支援するものもある。例えば、ある種の技術により、地球の反対側の職場で働く人々が仮想的な職場環境で協働することができる。上記のサービスは一般に１つまたは複数のサーバによりホストされる。
【０００３】
上記のサービスに対する要求が増加すると、サービスをホストするサーバをより多く提供することが必要になるだろう。さらに、サービスがグローバルに提供される場合、サーバを異なる地理的領域に（例えば、あるサーバを米国に、あるサーバをアジアに）分散させて、各領域に対してより多くの帯域幅を提供することが望ましいかもしれない。さらに、領域が特に重い負荷を受ける場合、その領域をさらに再分割する（例えば、米国西海岸のサーバ、米国中西部のサーバ、および米国東海岸のサーバ）ことも望ましいかもしれない。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
したがって、サーバを異なる地理的位置に分散させると、サービスの各ユーザに適切なサーバを割り当てて帯域幅およびシステム性能を最適化できるようにサービスをプロビジョニングすることが望ましいだろう。
【課題を解決するための手段】
【０００５】
本要約は、選択した概念を簡潔な形態で導入するために提供され、その概念は以下の発明を実施するための最良の形態でさらに説明される。本要約は、請求の範囲に記載された主題の主要な特徴または本質的な特徴を特定することは意図されておらず、本要約は、使用して請求の範囲に記載されている主題の範囲を限定するために使用されることも意図されていない。
【０００６】
本明細書では、とりわけ、サービスのグローバルプロビジョニングに対する技術を説明する。本技術は、その位置情報をプロビジョニングサーバに提供する新規のクライアントを含む。位置情報は、クライアントの地域ＩＤおよびタイムゾーンを含むことができるがこれらに限定されない。プロビジョニングサーバは、新規クライアントが割り当てられるだろう位置情報に基づいて、適切なデプロイメントユニットを決定する。プロビジョニングサーバは、適切なデプロイメントユニットに対する割り当て情報を新規クライアントに送信する。クライアントは、次いで割り当てられたデプロイメントユニットと通信接続し、そのデプロイメントユニットからサービスの受信を開始する。
【０００７】
どのような理由でも、特定のクライアントをその現在のデプロイメントユニットから新規または別のデプロイメントユニットに再割り当てすることが望ましい場合は、現在のデプロイメントユニットは再割り当て要求情報をクライアントに送信する。再割り当て要求情報を受信すると、クライアントは上述したステップを実施して、別のデプロイメントユニットにプロビジョンされる。クライアントは、次いで再割り当て情報で指示されるように新規デプロイメントユニットと通信接続する。
【発明の効果】
【０００８】
従って、実施形態は、サービスをグローバルにプロビジョニングするための高度に適応可能な技術を提供する。本技術により、サービスの受信を目的として、クライアントを適切な（最も近い場合が多い）デプロイメントユニットにインテリジェントに割り当てることができる。さらに、実施形態により、オンザフライでクライアントを再割り当てすることで、デプロイメントユニットを動的に追加または切り離すことができる。上記のアーキテクチャは、何百万にも達するクライアントをサポートするのに理想的である。
【０００９】
本明細書の一部に取り込まれて、その一部を形成する添付の図面は、実施形態を示し、本説明と共にその原理を説明する役割を果たす。
【発明を実施するための最良の形態】
【００１０】
請求の範囲に記載されている主題の好適な実施形態をここで詳細に参照し、その例を添付図面において示す。本発明を好適な実施形態と関連して説明するが、当然のことながら、請求の範囲に記載されている主題をこれらの実施形態に限定することは意図していない。反対に、請求の範囲に記載されている主題が代替手段、修正および等価物を網羅することを意図し、その代替手段、修正および等価物は、請求項により定義されるものとして、請求の範囲に記載されている主題の精神および範囲内に含めることができる。さらに、本発明の詳細な説明では、多数の特定の詳細を説明して、請求の範囲に記載されている主題を完全に理解できるようにする。しかしながら、請求の範囲に記載されている主題をこれらの特定の詳細なしに実践できることは当業者には明らかであろう。他の事例では、公知の方法、手続き、コンポーネント、および回路は、請求の範囲に記載されている主題の態様を不必要に分かりにくくしないようにするため、詳細には説明していない。
【００１１】
以下の詳細な説明の一部は、手続き、論理ブロック、処理、およびコンピュータまたはデジタルシステムメモリ内部のデータビット上の操作に対する他の記号表現の観点から提示してある。これらの説明および表現は、自身の研究の本質を当業者に最も効率的に伝達するために当業者が使用する手段である。手続き、論理ブロック、プロセス等は、本書においておよび一般的に、所望の結果につながる首尾一貫したステップまたは命令の列であると考えられる。そのステップは、物理量の物理的操作を必要とするものである。必ずしもこれらに限定しないが、通常はこれらの物理的操作は電気信号または磁気信号の形態を取り、それらの信号を、コンピュータシステムまたは同様の電子コンピューティング装置において、記憶、転送、結合、比較、さもなければ操作することができる。便宜上、および一般的な使用に関して、これらの信号を請求の範囲に記載されている主題に関連してビット、値、要素、記号、文字、用語、数字、等と称する。
【００１２】
しかしながら、これらの用語の全ては、物理的操作および物理量を参照するものとして解釈され、便利な呼称に過ぎず、さらに当業界で一般的に使用される用語の観点から解釈されることに留意されたい。特に述べない限り、本明細書の説明から明らかなように、本実施形態の説明全体にわたって、「決定する」または「出力する」または「送信する」または「記録する」または「配置する」または「記憶する」または「表示する」または「受信する」または「認識する」または「利用する」または「生成する」または「提供する」または「アクセスする」または「調べる」または「通知する」または「配信する」等のような用語を利用する説明は、データを操作および変形する、コンピュータシステムの動作およびプロセス、または同様の電子コンピューティング装置を参照していることが分かる。データをコンピュータシステムのレジスタおよびメモリ内部の物理（電子）量として表し、コンピュータシステムメモリまたはレジスタまたは他のそのような情報記憶、送信、または表示装置内部の物理量として同様に表した他のデータに変形する。
【００１３】
簡潔に述べると、実施形態はクライアントに対する位置情報を取得するプロビジョニングサーバを含む。プロビジョニングサーバは、その位置情報に基づいて適切なデプロイメントユニットを決定し、そのクライアントはその位置情報に割り当てられる。プロビジョニングサーバは、適切なデプロイメントユニットに対する割り当て情報をクライアントに送信する。クライアントは、次いでその割り当てたデプロイメントユニットに通信接続し、そのデプロイメントユニットからサービスの受信を開始する。
【００１４】
図１は、一実施形態によるサービスのグローバルプロビジョニングのためのシステム１００を示す。図１はハードウェアシステムを示すが、当然のことながら、本明細書で記載される実施形態は、ソフトウェアでの実装によく適している。この場合、図１内のコンポーネントの機能は、別個のハードウェアシステム上の同等のソフトウェアモジュールにより実施される。
【００１５】
システム１００により提供されるサービスは、グローバルプロビジョニングによく適した任意のサービスであってよい。一実施形態において、サービスは仮想の職場サービスである。システム１００は、デプロイメントユニットＤＵ１からＤＵＮを含む。その最も基本的な形態において、デプロイメントユニットＤＵ１からＤＵＮはサービスを（クライアント１１０のような）クライアントに提供する。システム１００は、プロビジョニングサーバ１２０も含む。当然のことながら、１つのプロビジョニングサーバのみを図１に示すが、システム１００は、地理的位置にわたる複数のプロビジョニングサーバを備えてクライアント負荷を適切に処理するのによく適している。
【００１６】
一実施形態において、個々のユーザがサービスでアカウントを作成する準備ができると、クライアント１１０は最初にプロビジョニングサーバ１２０に接続するだろう。この時点において、プロビジョニングサーバ１２０はクライアントの位置情報を取得するだろう。１つの実施形態において、位置情報をグローバルネットワークルーティングインフラから取得する。別の実施形態において、クライアント１１０はその位置情報をプロビジョニングサーバ１２０に送信する。さらに別の実施形態において、クライアントが送信した位置情報とグローバルネットワークルーティングインフラから取得した位置情報との組合せを使用する。位置情報は、国識別子のような地域ＩＤ、およびクライアントのタイムゾーンを含むことができるが、これに限定されない。位置情報は、アカウントＩＤ、アカウント証明書、ライセンスタイプ、およびトランザクションＩＤも含むことができる。
【００１７】
システム１００は、グローバルプロビジョニングサービス１４０も含み、グローバルプロビジョニングサービス１４０は、プロビジョニングサーバ１２０のようなプロビジョニングサーバおよび多数のデータベースと通信接続する。クライアント１１０から位置情報を受信すると、プロビジョニングサーバはグローバルプロビジョニングサービス１４０にコンタクトし、グローバルプロビジョニングサービス１４０は順にクライアント１１０に割り当て情報を提供する。例えば、クライアントの地域ＩＤが米国に対応し、クライアントのタイムゾーンが太平洋標準時刻である場合、グローバルプロビジョニングサービス１４０はクライアントを米国の西海岸のデプロイメントユニットに割り当てる。一実施形態において、各デプロイメントユニットはある特定のライセンスタイプのみをサポートすることができる。例えば、米国の東海岸のデプロイメントユニットは、ライセンスタイプＡおよびＢをサポートすることができ、一方で米国の西海岸のデプロイメントユニットはタイプＡのライセンスのみをサポートする。したがって、前の例のクライアントがタイプＢのライセンスを有する場合、グローバルプロビジョニングサービスはクライアントを米国の東海岸のデプロイメントユニットに割り当てるだろう。なぜならば、米国の西海岸のデプロイメントユニットはクライアントのライセンスをサポートしないからである。グローバルプロビジョニングサーバ１４０により提供される割り当て情報は、割り当てられたデプロイメントユニットに対応するＵＲＬ、割り当てられたデプロイメントユニットに対応する証明書、認証トークン、およびハッシュコードを含むことができるがこれらに限定されない。
【００１８】
一実施形態において、グローバルプロビジョニングサービスが接続されるデータベースは、グローバルプロビジョニングディレクトリ（ＧＰＤ）１５０を含み、グローバルプロビジョニングディレクトリ（ＧＰＤ）１５０は、デプロイメントユニットＤＵ１からＤＵＮに関する情報をホストする。本情報は、デプロイメントユニットの名前および位置、デプロイメントユニットに対応するＵＲＬおよび証明書、デプロイメントユニットのユーザ容量情報、デプロイメントユニットによりサポートされるライセンスのタイプ等を含むことができるがこれらに限定されない。
【００１９】
プロビジョニングサーバ１２０は、割り当て情報をグローバルプロビジョニングサービス１４０から受信すると、プロビジョニングサーバ１２０は割り当て情報をクライアント１１０に中継する。それに応じて、クライアント１１０は、次いで割り当て情報内に示したデプロイメントユニット（例えば、ＤＵ１）と通信接続する。いったんクライアント１１０がそのそれぞれのデプロイメントユニット（例えば、ＤＵＮ）と接続すると、クライアント１１０はデプロイメントユニットからサービスの受信を開始することができる。
【００２０】
一実施形態において、グローバルプロビジョニングサービスが接続されるデータベースは、グローバルコンタクトディレクトリ１６０を含み、グローバルコンタクトディレクトリ１６０はシステム１００のユーザに対するコンタクト情報をホストする。一実施形態において、グローバルコンタクトディレクトリはオプトイン機能である。したがって、ユーザ（例えば、クライアント１１０）は、ある特定のコンタクト情報をグローバルコンタクトディレクトリ１６０に公開することを選択することができる。グローバルコンタクトディレクトリ１６０に記憶されたコンタクト情報は、名前、電子メールアドレス、ｖＣａｒｄ、電話番号、等を含むことができるがこれらに限定されない。グローバルコンタクトディレクトリへの公開は任意であってよいので、その公開は任意の時点に発生する可能性がある。例えば、クライアント１１０は割り当て情報を要求しているときに、そのコンタクト情報をプロビジョニングサーバ１２０経由で公開することができる。あるいは、クライアント１１０は、そのデプロイメントユニットの割り当てを受信した後に、そのコンタクト情報をそのそれぞれのデプロイメントユニット（例えば、ＤＵ１）経由で公開することができる。
【００２１】
一実施形態において、システム１００はプロビジョニングサーバ１２０に通信接続したＧＰＤレプリカ１７０を含む。ＧＰＤレプリカ１７０をプロビジョニングサーバ１２０に近接して配置することが理想的である。ＧＰＤレプリカ１７０を有する利点は、プロビジョニングサーバ１２０が、割り当て情報をグローバルプロビジョニングサービス１４０から取得するのではなく、ＧＰＤレプリカ１７０内の情報に基づいてプロビジョニングの決定自体を行うことができることである。これにより、クライアントのプロビジョニングに必要な時間が短縮され、グローバルプロビジョニングサービス１４０の帯域幅利用が削減される。（プロビジョニングサーバ１２０のような）システム１００内の各プロビジョニングサーバを（ＧＰＤレプリカ１７０のような）それぞれのＧＰＤレプリカに接続する場合、グローバルプロビジョニングサービス１４０を、グローバルコンタクトディレクトリに対する修正および問合せを管理すること、および（ＧＰＤレプリカ１７０のような）ＧＰＤレプリカを定期的に元のＧＰＤ１５０と同期することに関係付けるだけでよい。
【００２２】
特定領域（例えば、米国）内のサービスにアクセスするクライアントの数が増加すると、１つまたは複数の新規デプロイメントユニット（例えば、図示していないが、ＤＵＮ＋１、ＤＵＮ＋２、等）をシステム１００に追加する必要があるかもしれない。例えば、米国が現在西海岸および東海岸のデプロイメントユニットを有する場合、その両方はその容量限界に近づいており、システム１００は例えば中西部のデプロイメントユニットの動的な追加を可能とする。いったん新規デプロイメントユニットが配置されて使用可能となると、幾つかのクライアントをその新規デプロイメントユニットに再割り当てして、負荷をより均等に分散することが望ましい。クライアントを新規のまたは別のデプロイメントユニットに再プロビジョニングすることは他の状況でも同様に望ましい場合があり、その状況には例えば、クライアントがある領域から別の領域に移動する場合にクライアントを再割り当てすること、または特定のクラスのユーザ（例えば、ベータユーザ）を（例えば、専用ベータテスト向けの）特定のデプロイメントユニットに移動することがある。これらのクライアントの移動先である特定のデプロイメントユニットが存在する場合、デプロイメントユニットはこれらのクライアントに関してグローバルデータベースにマークする。上記の場合、デプロイメントユニットは再割り当て要求情報をクライアントに送信する。再割り当て要求情報を受信すると、クライアントはプロビジョニングサーバにコンタクトすることにより同じプロビジョニングステップを実施することになる。クライアントが移動した場合、その位置変化により、現時点でそのクライアントはそのクライアントにより近い別のデプロイメントユニットに割り当てられることになる。グローバルデータベース内の対応するレコードにマークした場合、クライアントは予め割り当てたデプロイメントユニットに割り当てられることになる。再割り当てしたクライアントは、次いで適切なデプロイメントユニットに再接続するだろう。当然のことながら、同様の機能を、デプロイメントユニットをシステム１００から切り離した場合に採用できる。
【００２３】
図２は、例示的な実施形態によるサービスのグローバルプロビジョニング向けシステム２００を示す。図１はハードウェアシステムを示すが、当然のことながら、本明細書で説明する実施形態はソフトウェアでの実装によく適している。この場合、図１内のコンポーネントの機能は、同等のソフトウェアモジュールにより実施される。
【００２４】
システム２００において、プロビジョニングサーバ２２０１−２２０ＮおよびＧＰＤレプリカ２７０１−２７０ＮをそれぞれのデプロイメントユニットＤＵ１´およびＤＵＮ´内部に統合する。さらに、グローバルプロビジョニングサービス２４０、ＧＰＤ２５０、およびグローバルコンタクトディレクトリ２６０をグローバルデータセンタ２３０内部に統合する。機能的には、システム２００はシステム１００と同様に動作する。
【００２５】
一実施形態において、個々のユーザがサービスでアカウントを作成する準備ができると、クライアント２１０は最初にプロビジョニングサーバ（例えば、２２０１）に接続し、そのプロビジョニングサーバは、それぞれのデプロイメントユニット（例えば、ＤＵ１´）内部に統合される。一実施形態において、プロビジョニングサーバは公知の名前またはエイリアス（例えば、ｐｒｏｖｉｓｉｏｎ．ｇｒｏｏｖｅ．ｍｉｃｒｏｓｏｆｔ．ｃｏｍ）を有し、それらをクライアント２１０に組み込む。プロビジョニングサーバ（例えば、２２０１）は、クライアントの位置情報を取得するだろう。一実施形態において、位置情報をグローバルネットワークルーティングインフラから取得する。別の実施形態において、クライアント２１０はその位置情報をプロビジョニングサーバ（例えば、２２０１）に送信する。さらに別の実施形態において、クライアントが送信した位置情報とグローバルネットワークルーティングインフラから取得した位置情報との組合せを使用する。位置情報は、国識別子のような地域ＩＤ、およびクライアントのタイムゾーンを含むことができるがこれらに限定されない。位置情報はアカウントＩＤ、アカウント証明書、ライセンスタイプ、およびトランザクションＩＤを含むこともできる。
【００２６】
位置情報をクライアント２１０から受信すると、プロビジョニングサーバ（例えば、２２０１）はグローバルプロビジョニングサービス２４０にコンタクトし、グローバルプロビジョニングサービス２４０はグローバルデータセンタ２３０内部に統合される。グローバルプロビジョニングサービス２４０は順に割り当て情報をクライアント２１０に提供する。グローバルプロビジョニングサーバ２４０により提供された割り当て情報は、割り当てられたデプロイメントユニット（例えば、ＤＵＮ´）に対応するＵＲＬ、割り当てられたデプロイメントユニットに対応する証明書、認証トークン、およびハッシュコードを含むことができるがこれらに限定されない。
【００２７】
一実施形態において、グローバルデータセンタ２３０内部に統合されたＧＰＤ２５０はデプロイメントユニットＤＵ１´−ＤＵＮ´に関する情報をホストする。この情報は、デプロイメントユニットの名前および位置、デプロイメントユニットに対応するＵＲＬおよび証明書、デプロイメントユニットのユーザ容量情報、デプロイメントユニットによりサポートされるライセンスのタイプ等を含むことができるがこれらに限定されない。
【００２８】
プロビジョニングサーバ（例えば、２２０１）が割り当て情報をグローバルプロビジョニングサービス２４０から受信すると、そのプロビジョニングサーバは順に割り当て情報をもとのクライアント２１０に中継する。それに応じて、クライアント２１０は割り当て情報において示されるデプロイメントユニット（例えば、ＤＵＮ´）と通信接続する。いったんクライアント２１０がその割り当てたデプロイメントユニット（例えば、ＤＵＮ´）と接続すると、クライアント２１０はそのデプロイメントユニットからサービスの受信を開始することができる。示すように、クライアント２１０が割り当てられたデプロイメントユニット（例えば、ＤＵＮ´）は割り当て情報を最初に受信した別のデプロイメントユニット（例えば、ＤＵ１´）であることが、システム２００において全く可能である。
【００２９】
一実施形態において、グローバルデータセンタ２３０内部で統合されたグローバルコンタクトディレクトリ２６０はシステム２００のユーザに対するコンタクト情報をホストする。一実施形態において、グローバルコンタクトディレクトリはオプトイン機能である。したがって、ユーザ（例えば、クライアント２１０）はある特定のコンタクト情報をグローバルコンタクトディレクトリ２６０に公開することを選択することができる。グローバルコンタクトディレクトリ２６０に記憶されたコンタクト情報は、名前、電子メールアドレス、ｖＣａｒｄ、電話番号等を含むことができるがこれらに限定されない。グローバルコンタクトディレクトリへの公開は任意であってよいので、その公開は任意の時点に発生する可能性がある。例えば、クライアント２１０は、割り当て情報を要求しているときにそのコンタクト情報を初期デプロイメントユニット（例えば、ＤＵ１´）経由で公開することができる。あるいは、クライアント２１０はそのコンタクト情報を、そのデプロイメントユニット割り当てを受信した後に、その割り当てたデプロイメントユニット（例えば、ＤＵＮ´）経由で公開することができる。
【００３０】
それぞれのデプロイメントユニットＤＵ１´−ＤＵＮ´内部で統合されたＧＰＤレプリカ２７０１−２７０Ｎにより、そのそれぞれのプロビジョニングサーバ２２０１−２２０Ｎは、割り当て情報をグローバルプロビジョニングサービス２４０から取得するのではなく、ＧＰＤレプリカ２７０１−２７０Ｎ内の情報に基づいてプロビジョニングの決定自体を行うことができる。これにより、クライアントのプロビジョニングに必要な時間が短縮され、グローバルプロビジョニングサービス２４０の帯域幅利用が削減される。ＧＰＤレプリカ２７０１−２７０ＮをデプロイメントユニットＤＵ１´−ＤＵＮ´内部に取り込むことにより、グローバルプロビジョニングサービス２４０上の処理負荷が大幅に削減される。したがって、グローバルプロビジョニングサービス２４０を、グローバルコンタクトディレクトリ２６０に対する修正および問合せを管理すること、およびＧＰＤレプリカ２７０１−２７０Ｎを定期的に元のＧＰＤ２５０と同期することに関係付けるだけでよい。
【００３１】
一実施形態において、システム２００は（クライアント２１０のような）クライアントを再プロビジョニングすることができる。ユーザの再プロビジョニングが望ましいかまたは必要でありうるシナリオは、デプロイメントユニットをシステム２００に追加またはシステム２００から切り離した後にユーザを再割り当てすること、クライアントがある領域から別の領域に移動する場合にそのクライアントを再割り当てすること、または特定のクラスのユーザ（例えば、ベータユーザ）を（例えば、専用ベータテスト向けの）特定のデプロイメントユニットに移動することを含むがこれらに限定されない。上記の場合、デプロイメントユニットは、再プロビジョニングすべきクライアントに対する新規の割り当て情報を取得し、続いてその新規の割り当て情報をクライアントに送信することになる。再割り当てしたクライアントは次いで適切なデプロイメントユニットに再接続するだろう。
【００３２】
図３は、一実施形態によるクライアントにおいてサービスのグローバルプロビジョニングを受信するプロセス３００を示す。当然のことながら、幾つかの実施形態は図３に示した全てのステップを利用しなければならないわけではない。さらに当然のことながら、幾つかの実施形態は図３に示していない追加のステップを含んでもよい。プロセス３００のステップを、コンピュータ読取可能媒体上の命令として記憶することができ、コンピュータプロセッサ上で実行することができる。
【００３３】
プロセス３００のステップ３１０は、位置情報をプロビジョニングサーバに送信することを含む。位置情報は、国識別子のような地域ＩＤ、およびクライアントのタイムゾーンを含むことができるがこれに限定されない。位置情報は、アカウントＩＤ、アカウント証明書、ライセンスタイプ、およびトランザクションＩＤも含むことができる。
【００３４】
ステップ３２０は、割り当て情報をプロビジョニングサーバから受信することを含む。割り当て情報はクライアントを特定のデプロイメントユニットに割り当てる。割り当て情報は少なくとも部分的には位置情報に基づき、割り当てられたデプロイメントユニットに対応するＵＲＬ、割り当てられたデプロイメントユニットに対応する証明書、認証トークン、およびハッシュコードを含むことができるがこれらに限定されない。ステップ３３０において、クライアントは割り当てられたデプロイメントユニットに通信接続する。ステップ３４０において、クライアントはそのデプロイメントユニットで認証する。認証ステップは、アカウントＩＤ、アカウント証明書、トランザクションＩＤ、認証トークン、およびプロビジョニングサーバに対応するＵＲＬを検証用にデプロイメントユニットに送信することを含むことができるがこれに限定されない。いったんクライアントが認証されると、クライアントはデプロイメントユニットからのサービスの受信（ステップ３５０）および定期的な更新情報の受信（ステップ３６０）を開始することができる。
【００３５】
ステップ３１５およびステップ３４５は、クライアントコンタクト情報をグローバルコンタクトディレクトリ内に含めるために送信することを含む。これらの２つのブロックは、コンタクト情報をプロセス３００内の様々な時点で提示できることを示す。さらに、当然のことながら、コンタクト情報を図３内に示していないプロセス３００内の他の時点で提示してもよい。一実施形態において、コンタクト情報をグローバルコンタクトディレクトリに公開することはクライアント毎ベースのオプトイン機能である。
【００３６】
上述のように、特定のクライアントを別のデプロイメントユニットに再割り当てすることが必要になるある特定の状況が生じる場合がある。再割り当て情報は、もしあれば、ステップ３６０においてクライアントが受信した更新情報に含まれる。ステップ３７０において、プロセス３００は、その更新情報が再割り当て要求情報を含むかどうかを判断する。含まなければ、プロセス３００は通常の動作を継続し、ステップ３５０に返る。その更新情報が再割り当て要求情報を含む場合、プロセス３００はステップ３１０に戻り、そこでクライアント１１０は同じプロビジョニングステップを通って、新規デプロイメントユニットを割り当てられ、その新規デプロイメントユニットと通信接続する。
【００３７】
図４Ａは、一実施形態によるサービスのグローバルプロビジョニング向けプロセス４００を示す。当然のことながら、幾つかの実施形態は図４Ａに示した全てのステップを利用しなければならないわけではない。さらに当然のことながら、幾つかの実施形態は図４Ａに示していない追加のステップを含んでもよい。プロセス４００のステップを、コンピュータ読取可能媒体上の命令として記憶することができ、コンピュータプロセッサ上で実行することができる。
【００３８】
プロセス４００は、ステップ４１０において、クライアントに対する位置情報を取得することにより始まる。位置情報を、例えばクライアントから直接、グローバルネットワークルーティングインフラを通して、その２つの組合せ等といった多数の方法により取得することができる。位置情報は、国識別子のような地域ＩＤ、およびクライアントのタイムゾーンを含むことができるがこれに限定されない。位置情報は、アカウントＩＤ、アカウント証明書、ライセンスタイプ、およびトランザクションＩＤも含むことができる。
【００３９】
ステップ４２０において、クライアントが割り当てられる好適なデプロイメントユニットを決定する。ステップ４２０は多数の方法により達成することができる。図４Ｂは、一実施形態によるクライアントが割り当てられる好適なデプロイメントユニットを決定するためのプロセス４３０を示す。プロセス４３０のステップ４３１において、クライアントの位置情報をグローバルデータセンタに送信する。ステップ４３２において、割り当て情報をグローバルデータセンタから受信する。割り当て情報によりクライアントを特定のデプロイメントユニットに割り当てる。割り当て情報は、少なくとも部分的に位置情報に基づき、割り当てられたデプロイメントユニットに対応するＵＲＬ、割り当てられたデプロイメントユニットに対応する証明書、認証トークン、およびハッシュコードを含むことができるがこれらに限定されない。図４Ｃは、一実施形態によるプロセス４００およびプロセス４４０を利用する装置にＧＰＤレプリカを接続したときにクライアントが割り当てられる好適なデプロイメントユニットを決定するためのプロセス４４０を示す。ステップ４４１において、割り当て情報をＧＰＤレプリカから取得する。
【００４０】
次にプロセス４００はステップ４２０からステップ４５０に進み、割り当て情報を暗号化キーで署名する。割り当て情報を次いでクライアントに送信する（ステップ４６０）。
【００４１】
一実施形態において、プロセス４００を利用する装置自身がデプロイメントユニットであってもよく、従ってサービスを他の現在のクライアントに提供することができる。上述のように、特定の現在のクライアントを別のデプロイメントユニットに再割り当てすることが必要になるある特定の状況が生じる場合がある。図４Ｄは、一実施形態による現在のクライアントを新規デプロイメントユニットに再割り当てするためのプロセス４７０を示す。当然のことながら、幾つかの実施形態は図４Ｄに示した全てのステップを利用しなければならないわけではない。さらに当然のことながら、幾つかの実施形態は図４Ｄに示していない追加のステップを含んでもよい。プロセス４７０のステップを、コンピュータ読取可能媒体上の命令として記憶することができ、コンピュータプロセッサ上で実行することができる。
【００４２】
ステップ４７１において、現在のクライアントを新規デプロイメントユニットに再割り当てする必要があるかどうかに関する判断を行う。この判断は、現在のデプロイメントユニットに対して完全に内部的なものである場合もあれば（例えば、そのデプロイメントユニットが最大容量に達している）、または外部変数（例えば、現在のクライアントの再割り当てを要求するグローバルデータセンタから受信した命令）の結果である場合もある。現在のクライアントを再割り当てする必要がない場合、現在のデプロイメントユニットは現在のクライアントに関して通常動作を継続し、その現在のクライアントに対してサービスを提供し（ステップ４７２）、定期的な更新情報を提供する（ステップ４７３）。現在のクライアントを再割り当てする必要がある場合、プロセス４７０はステップ４７４に進み、新規デプロイメントユニットが既知の場合は現在のクライアントに関してグローバルデータセンタにマークする。ステップ４７５において、再割り当て要求情報をその現在のクライアントに提供し、効率的にその現在のクライアントに同じプロビジョニングステップを通らせて新規デプロイメントユニットに割り当てる。割り当て情報を多数の方法で現在のクライアントに提供することができる。例えば、割り当て情報を、ステップ４７３においてクライアントに送信したものと同様の更新情報で現在のクライアントに提供することができる。
【００４３】
図５は、実施形態の実装に適したコンピューティングシステム環境５００の例を示す。コンピューティングシステム環境５００は適切なコンピューティング環境の１つの例にすぎず、本発明の範囲または機能性に関する限定を示唆することは意図していない。コンピューティング環境５００を、例示的な動作環境５００に示したコンポーネントの任意の１つまたは組合せに関する任意の依存性または要件を有するものとしても解釈すべきではない。
【００４４】
図５を参照して、実施形態を実装する例示的なシステムは、コンピューティングシステム環境５００のような汎用目的のコンピューティングシステム環境を含む。その最も基本的な構成において、コンピューティングシステム環境５００は典型的に、少なくとも１つの演算装置５０２とメモリ５０４を含む。コンピューティングシステム環境の厳密な構成と種類により、メモリ５０４は（ＲＡＭのような）揮発性、（ＲＯＭ、フラッシュメモリ等のような）不揮発性またはその２つの何らかの組合せであることができる。この最も基本的な構成を図５において、破線５０５により示す。さらに、コンピューティングシステム環境５００は、追加の特徴／機能性を有することもできる。例えば、コンピューティングシステム環境５００は、追加の記憶装置（取り外し可能および／または取り外し不能）を含むこともできる。その記憶装置には、磁気ディスクまたは光ディスク、またはテープが含まれるがこれらに限定されない。上記の追加の記憶装置を図５において、取り外し可能記憶装置５０８および取り外し不能記憶装置５１０により示す。コンピュータ記憶媒体は、コンピュータ読取可能命令、データ構造、プログラムモジュールまたは他のデータのような情報を記憶する任意の方法または技術で実装した、揮発性および不揮発性、取り外し可能および取り外し不能媒体を含む。メモリ５０４、取り外し可能記憶装置５０８および取り外し不能記憶装置５１０は、コンピュータ記憶媒体の全ての例である。コンピュータ記憶媒体には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ（ｄｉｇｉｔａｌ  ｖｅｒｓａｔｉｌｅ  ｄｉｓｋ）または他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、または所望の情報の記憶に使用できコンピューティングシステム環境５００によりアクセス可能な任意の他の媒体が含まれるがこれらに限定されない。任意の上記のコンピュータ記憶媒体は、コンピューティングシステム環境５００の一部であることができる。
【００４５】
コンピューティングシステム環境５００は、他の装置との通信を可能とする通信接続（複数）５１２も含むことができる。通信接続（複数）５１２は通信媒体の例である。通信媒体は、典型的にコンピュータ読取可能命令、データ構造、プログラムモジュールまたは他のデータを、搬送波または他の伝送メカニズムのような変調データ信号で具現化し、任意の情報配信媒体を含む。「変調データ信号」という用語は、１つまたは複数のその特性集合を有し、または信号内の情報を符号化するように変化する信号を意味する。限定ではなく例として、通信媒体には有線ネットワークまたは直接有線接続のような有線媒体、音響、ＲＦ、赤外線および他の無線媒体のような無線媒体が含まれる。本明細書で使用されるコンピュータ読取可能媒体という用語は、記憶媒体と通信媒体の両方を含む。コンピューティングシステム環境５００は、キーボード、マウス、ペン、音声入力装置、タッチ入力装置等のような入力装置（複数）５１４を有することもできる。ディスプレイ、スピーカ、プリンタ等のような出力装置（複数）５１６も含むことができる。これらの装置は全て当業界で公知であり、ここではこれ以上説明する必要はない。
【００４６】
従って、実施形態は、サービスをグローバルにプロビジョニングするための高度に適応可能な技術を提供する。本技術により、サービスの受信を目的として、クライアントを適切な（最も近い場合が多い）デプロイメントユニットにインテリジェントに割り当てることができる。さらに、実施形態により、オンザフライでクライアントを再割り当てすることによりデプロイメントユニットを動的に追加または切り離すことができる。上記のアーキテクチャは、何百万にも達するクライアントをサポートするのに理想的である。
【００４７】
上述した実施形態の説明は、任意の当業者が請求の範囲に記載されている主題を実施または使用できるようにするために提供される。これらの実施形態に対する様々な修正は当業者には容易に明らかであり、本明細書で定義した汎用的な原理を、請求の範囲に記載されている主題の精神または範囲から逸脱せずに他の実施形態に適用することができる。従って、請求の範囲に記載されている主題を本明細書で示した実施形態に限定することは意図しておらず、請求の範囲に記載されている主題は、本明細書で開示した原理および新規の特徴と一貫する最も広い範囲に一致すべきである。
【図面の簡単な説明】
【００４８】
【図１】一実施形態によるサービスのグローバルプロビジョニングのためのシステムを示すブロック図である。
【図２】例示的な実施形態によるサービスのグローバルプロビジョニングのためのシステムを示すブロック図である。
【図３】一実施形態によるクライアントにおいてサービスのグローバルプロビジョニングを受信するプロセスを示すフローチャートである。
【図４Ａ】一実施形態によるサービスのグローバルプロビジョニングのプロセスを示すフローチャートである。
【図４Ｂ】一実施形態による新規クライアントが割り当てられる好適なデプロイメントユニットを決定するためのプロセスを示すフローチャートである。
【図４Ｃ】一実施形態による本プロセスを利用する装置にＧＰＤレプリカを接続したときに、新規クライアントが割り当てられる好適なデプロイメントユニットを決定するためのプロセスを示すフローチャートである。
【図４Ｄ】一実施形態による、現在のクライアントを新規デプロイメントユニットに再割り当てするためのプロセスを示すフローチャートである。
【図５】実施形態の実装に適したコンピューティングシステム環境の１つの例のブロック図である。
【図１】
2009536402.tif 000003
【図２】
2009536402.tif 000004
【図３】
2009536402.tif 000005
【図４Ａ】
2009536402.tif 000006
【図４Ｂ】
2009536402.tif 000007
【図４Ｃ】
2009536402.tif 000008
【図４Ｄ】
2009536402.tif 000009
【図５】
2009536402.tif 000010
【国際調査報告】
2009536402.tif 000011
2009536402.tif 000012