(57)【要約】【課題】  マシンレベルアイソレーションを有するマルチテナントマルチセッションカタログを使用するクラウドサーバ及びサービスを作成及び管理するための方法、システム、及びコンピュータ可読媒体を提供する。【解決手段】クラウドサービスプロバイダは、１つ以上のテナントから定義済みの数のサーバに対する要求を受信する。クラウドサービスプロバイダは、総合的なサーバ要求の合計未満である複数のサーバを初期化し、複数のサーバのうちの未割り当てのサーバのカタログを作成する。テナントのユーザからのログオン要求に応答して、クラウドサービスプロバイダは、未割り当てのサーバのカタログからサーバをテナントに割り当て、該サーバを未割り当てのサーバのカタログから除去し、テナントのユーザをサーバに接続するために仲介し、該サーバへのアクセスを該テナントのユーザのみに制限する。【選択図】図５
2019500666.tif 000002
【特許請求の範囲】
【請求項１】
第１のテナントから第１の定義済みの数のサーバに対する要求を受信することと、
第２のテナントから第２の定義済みの数のサーバに対する要求を受信することと、
複数のサーバを初期化することであって、前記複数のサーバが、前記第１の定義済みの数及び前記第２の定義済みの数の合計未満である、初期化することと、
前記複数のサーバのうちの未割り当てのサーバのカタログを作成することと、
第１のテナントの第１のユーザからサーバにアクセスするためのログオン要求を受信することと、
前記第１のテナントの前記第１のユーザから前記ログオン要求を受信することに応答して、
前記未割り当てのサーバのカタログから第１のサーバを前記第１のテナントに割り当てることと、
前記第１のサーバを前記未割り当てのサーバのカタログから除去することと、
前記第１のテナントの前記第１のユーザを前記第１のサーバに接続するために仲介することと、
前記第１のサーバへのアクセスを前記第１のテナントのユーザのみに制限することと、
第２のテナントの第１のユーザからサーバにアクセスするためのログオン要求を受信することと、
前記第２のテナントの前記第１のユーザから前記ログオン要求を受信することに応答して、
前記未割り当てのサーバのカタログから第２のサーバを前記第２のテナントに割り当てることと、
前記第２のサーバを前記未割り当てのサーバのカタログから除去することと、
前記第２のテナントの前記第１のユーザを前記第２のサーバに接続するために仲介することと、
前記第２のサーバへのアクセスを前記第２のテナントのユーザのみに制限することと、を含む、方法。
【請求項２】
複数のサーバを初期化することは、共通イメージを使用して前記複数のサーバの各々を初期化することを含む、請求項１に記載の方法。
【請求項３】
前記複数のサーバは、リモートデスクトップサーバ機能を提供するように構成される、請求項１に記載の方法。
【請求項４】
前記複数のサーバは、クラウドサービスにおいてホスティングされる、請求項１に記載の方法。
【請求項５】
前記未割り当てのサーバのカタログから前記第１のサーバを前記第１のテナントに割り当てることは、前記未割り当てのサーバのカタログからサーバをランダムに選択することを含む、請求項１に記載の方法。
【請求項６】
前記第１のテナントの第２のユーザからサーバにアクセスするためのログオン要求を受信することと、
前記第１のテナントの前記第２のユーザから前記ログオン要求を受信することに応答して、
前記第１のサーバの空き容量を判定することと、
前記第１のサーバの前記空き容量が所定の閾値容量未満であるか否かを判定することと、
前記第１のサーバの前記空き容量が前記所定の閾値容量未満であることを判定すると、
前記未割り当てのサーバのカタログから第３のサーバを前記第１のテナントに割り当てることと、
前記第３のサーバを前記未割り当てのサーバのカタログから除去することと、
前記第１のテナントの前記第３のユーザを前記第３のサーバに接続するために仲介することと、
前記第３のサーバへのアクセスを前記第１のテナントのユーザのみに制限することと、をさらに含む、請求項１に記載の方法。
【請求項７】
第１のテナントの第２のユーザからサーバにアクセスするためのログオン要求を受信することと、
前記第１のテナントの前記第２のユーザから前記ログオン要求を受信することに応答して、
前記第１のテナントに割り当てられた１つ以上のサーバを判定することと、
前記第１のテナントに割り当てられた前記１つ以上のサーバの各々について空き容量を判定することと、
前記第１のテナントに割り当てられた前記１つ以上のサーバのうち、最も大きな空き容量を有する１つの割り当て済みサーバを判定することと、
前記第１のテナントに割り当てられた前記１つ以上のサーバのうち、前記最も大きな空き容量を有する、前記判定された割り当て済みサーバに前記第１のテナントの前記第２のユーザを仲介することと、をさらに含む、請求項１に記載の方法。
【請求項８】
特定のサーバにログインしたユーザからログオフ要求を受信することと、
前記ユーザから前記ログオフ要求を受信することに応答して、前記ユーザを前記特定のサーバからログオフさせることと、
前記特定のサーバにログインしているユーザがいないことを判定することと、
前記特定のサーバにログインしているユーザがいないことを判定すると、
前記特定のサーバを再イメージングすることと、
前記特定のサーバから前記割り当てを除去することと、
前記特定のサーバを前記未割り当てのサーバのカタログに戻すことと、をさらに含む、請求項１に記載の方法。
【請求項９】
前記第１のテナント及び前記第２のテナントの両方に対する、未割り当てのサーバの単一アイドルプールを維持することをさらに含む、請求項１に記載の方法。
【請求項１０】
システムであって、
少なくとも１つの処理装置と、
コンピュータ実行可能命令を記憶する少なくとも１つのメモリと、を備え、前記コンピュータ実行可能命令は、前記少なくとも１つの処理装置によって実行されたとき、前記システムに、
第１のテナントから第１の定義済みの数のサーバに対する要求を受信することと、
第２のテナントから第２の定義済みの数のサーバに対する要求を受信することと、
複数のサーバを初期化することであって、前記複数のサーバが、前記第１の定義済みの数及び前記第２の定義済みの数の合計未満である、初期化することと、
前記複数のサーバのうちの未割り当てのサーバのカタログを作成することと、
第１のテナントの第１のユーザからサーバにアクセスするためのログオン要求を受信することと、
前記第１のテナントの前記第１のユーザから前記ログオン要求を受信することに応答して、
前記未割り当てのサーバのカタログから第１のサーバを前記第１のテナントに割り当てることと、
前記第１のサーバを前記未割り当てのサーバのカタログから除去することと、
前記第１のテナントの前記第１のユーザを前記第１のサーバに接続するために仲介することと、
前記第１のサーバへのアクセスを前記第１のテナントのユーザのみに制限することと、
第２のテナントの第１のユーザからサーバにアクセスするためのログオン要求を受信することと、
前記第２のテナントの前記第１のユーザから前記ログオン要求を受信することに応答して、
前記未割り当てのサーバのカタログから第２のサーバを前記第２のテナントに割り当てることと、
前記第２のサーバを前記未割り当てのサーバのカタログから除去することと、
前記第２のテナントの前記第１のユーザを前記第２のサーバに接続するために仲介することと、
前記第２のサーバへのアクセスを前記第２のテナントのユーザのみに制限することと、を行わせる、システム。
【請求項１１】
前記未割り当てのサーバのカタログから前記第１のサーバを前記第１のテナントに割り当てることは、前記未割り当てのサーバのカタログからサーバをランダムに選択することを含む、請求項１０に記載のシステム。
【請求項１２】
追加の実行可能命令をさらに備え、前記追加の実行可能命令は、前記少なくとも１つの処理装置によって実行されたとき、前記システムに、
前記第１のテナントの第２のユーザからサーバにアクセスするためのログオン要求を受信することと、
前記第１のテナントの前記第２のユーザから前記ログオン要求を受信することに応答して、
前記第１のサーバの空き容量を判定することと、
前記第１のサーバの前記空き容量が所定の閾値容量未満であるか否かを判定することと、
前記第１のサーバの前記空き容量が前記所定の閾値容量未満であることを判定すると、
前記未割り当てのサーバのカタログから第３のサーバを前記第１のテナントに割り当てることと、
前記第３のサーバを前記未割り当てのサーバのカタログから除去することと、
前記第１のテナントの前記第３のユーザを前記第３のサーバに接続するために仲介することと、
前記第３のサーバへのアクセスを前記第１のテナントのユーザのみに制限することと、を行わせる、請求項１０に記載のシステム。
【請求項１３】
追加の実行可能命令をさらに備え、前記追加の実行可能命令は、前記少なくとも１つの処理装置によって実行されたとき、前記システムに、
第１のテナントの第２のユーザからサーバにアクセスするためのログオン要求を受信することと、
前記第１のテナントの前記第２のユーザから前記ログオン要求を受信することに応答して、
前記第１のテナントに割り当てられた１つ以上のサーバを判定することと、
前記第１のテナントに割り当てられた前記１つ以上のサーバの各々について空き容量を判定することと、
前記第１のテナントに割り当てられた前記１つ以上のサーバのうち、最も大きな空き容量を有する１つの割り当て済みサーバを判定することと、
前記第１のテナントに割り当てられた前記１つ以上のサーバのうち、前記最も大きな空き容量を有する、前記判定された割り当て済みサーバに前記第１のテナントの前記第２のユーザを仲介することと、を行わせる、請求項１０に記載のシステム。
【請求項１４】
追加の実行可能命令をさらに備え、前記追加の実行可能命令は、前記少なくとも１つの処理装置によって実行されたとき、前記システムに、
特定のサーバにログインしたユーザからログオフ要求を受信することと、
前記ユーザから前記ログオフ要求を受信することに応答して、前記ユーザを前記特定のサーバからログオフさせることと、
前記特定のサーバにログインしているユーザがいないことを判定することと、
前記特定のサーバにログインしているユーザがいないことを判定すると、
前記特定のサーバを再イメージングすることと、
前記特定のサーバから前記割り当てを除去することと、
前記特定のサーバを前記未割り当てのサーバのカタログに戻すことと、を行わせる、請求項１０に記載のシステム。
【請求項１５】
追加の実行可能命令をさらに備え、前記追加の実行可能命令は、前記少なくとも１つの処理装置によって実行されたとき、前記システムに、
前記第１のテナント及び前記第２のテナントの両方に対する、未割り当てのサーバの単一アイドルプールを維持することを行わせる、請求項１０に記載のシステム。
【請求項１６】
コンピュータ実行可能命令を記憶する１つ以上の非一時的コンピュータ可読媒体であって、前記コンピュータ実行可能命令は、少なくとも１つの処理装置、及び少なくとも１つのメモリを備えるコンピュータシステムによって実行されたとき、前記コンピュータシステムに、方法であって、
第１のテナントから第１の定義済みの数のサーバに対する要求を受信することと、
第２のテナントから第２の定義済みの数のサーバに対する要求を受信することと、
複数のサーバを初期化することであって、前記複数のサーバが、前記第１の定義済みの数及び前記第２の定義済みの数の合計未満である、初期化することと、
前記複数のサーバのうちの未割り当てのサーバのカタログを作成することと、
第１のテナントの第１のユーザからサーバにアクセスするためのログオン要求を受信することと、
前記第１のテナントの前記第１のユーザから前記ログオン要求を受信することに応答して、
前記未割り当てのサーバのカタログから第１のサーバを前記第１のテナントに割り当てることと、
前記第１のサーバを前記未割り当てのサーバのカタログから除去することと、
前記第１のテナントの前記第１のユーザを前記第１のサーバに接続するために仲介することと、
前記第１のサーバへのアクセスを前記第１のテナントのユーザのみに制限することと、
第２のテナントの第１のユーザからサーバにアクセスするためのログオン要求を受信することと、
前記第２のテナントの前記第１のユーザから前記ログオン要求を受信することに応答して、
前記未割り当てのサーバのカタログから第２のサーバを前記第２のテナントに割り当てることと、
前記第２のサーバを前記未割り当てのサーバのカタログから除去することと、
前記第２のテナントの前記第１のユーザを前記第２のサーバに仲介することと、
前記第２のサーバへのアクセスを前記第２のテナントのユーザのみに制限することと、を含む、方法を実行することを行わせる、１つ以上の非一時的コンピュータ可読媒体。
【請求項１７】
請求項１６に記載の１つ以上の非一時的コンピュータ可読媒体であって、前記１つ以上の非一時的コンピュータ可読媒体が、それ自体に記憶された追加のコンピュータ実行可能命令を有し、前記追加のコンピュータ実行可能命令は、実行されたとき、前記１つ以上の処理装置に、
前記第１のテナントの第２のユーザからサーバにアクセスするためのログオン要求を受信することと、
前記第１のテナントの前記第２のユーザから前記ログオン要求を受信することに応答して、
前記第１のサーバの空き容量を判定することと、
前記第１のサーバの前記空き容量が所定の閾値容量未満であるか否かを判定することと、
前記第１のサーバの前記空き容量が前記所定の閾値容量未満であることを判定すると、
前記未割り当てのサーバのカタログから第３のサーバを前記第１のテナントに割り当てることと、
前記第３のサーバを前記未割り当てのサーバのカタログから除去することと、
前記第１のテナントの前記第３のユーザを前記第３のサーバに接続するために仲介することと、
前記第３のサーバへのアクセスを前記第１のテナントのユーザのみに制限することと、をさらに行わせる、１つ以上の非一時的コンピュータ可読媒体。
【請求項１８】
請求項１６に記載の１つ以上の非一時的コンピュータ可読媒体であって、前記１つ以上の非一時的コンピュータ可読媒体が、それ自体に記憶された追加のコンピュータ実行可能命令を有し、前記追加のコンピュータ実行可能命令は、実行されたとき、前記１つ以上の処理装置に、
第１のテナントの第２のユーザからサーバにアクセスするためのログオン要求を受信することと、
前記第１のテナントの前記第２のユーザから前記ログオン要求を受信することに応答して、
前記第１のテナントに割り当てられた１つ以上のサーバを判定することと、
前記第１のテナントに割り当てられた前記１つ以上のサーバの各々について空き容量を判定することと、
前記第１のテナントに割り当てられた前記１つ以上のサーバのうち、最も大きな空き容量を有する１つの割り当て済みサーバを判定することと、
前記第１のテナントに割り当てられた前記１つ以上のサーバのうち、前記最も大きな空き容量を有する、前記判定された割り当て済みサーバに前記第１のテナントの前記第２のユーザを仲介することと、をさらに行わせる、１つ以上の非一時的コンピュータ可読媒体。
【請求項１９】
請求項１６に記載の１つ以上の非一時的コンピュータ可読媒体であって、前記１つ以上の非一時的コンピュータ可読媒体が、それ自体に記憶された追加のコンピュータ実行可能命令を有し、前記追加のコンピュータ実行可能命令は、実行されたとき、前記１つ以上の処理装置に、
特定のサーバにログインしたユーザからログオフ要求を受信することと、
前記ユーザから前記ログオフ要求を受信することに応答して、前記ユーザを前記特定のサーバからログオフさせることと、
前記特定のサーバにログインしているユーザがいないことを判定することと、
前記特定のサーバにログインしているユーザがいないことを判定すると、
前記特定のサーバを再イメージングすることと、
前記特定のサーバから前記割り当てを除去することと、
前記特定のサーバを前記未割り当てのサーバのカタログに戻すことと、をさらに行わせる、１つ以上の非一時的コンピュータ可読媒体。
【請求項２０】
請求項１６に記載の１つ以上の非一時的コンピュータ可読媒体であって、前記１つ以上の非一時的コンピュータ可読媒体が、それ自体に記憶された追加のコンピュータ実行可能命令を有し、前記追加のコンピュータ実行可能命令は、実行されたとき、前記１つ以上の処理装置に、
前記第１のテナント及び前記第２のテナントの両方に対する、未割り当てのサーバの単一アイドルプールを維持することをさらに行わせる、１つ以上の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書において説明される本発明の態様は一般的に、コンピュータ、ネットワーク化、ハードウェア、及びソフトウェアに関する。特に、本開示の１つ以上の態様は一般的に、クラウドホスティング及びマシンレベルアイソレーションを提案する関連サービスのためのコンピュータハードウェア及びソフトウェアに関する。
【背景技術】
【０００２】
多くの事業体（例えば、企業、パートナーシップ、政府、学術研究機関、他の組織など）が、その情報技術及びコンピューティングニーズを果たすために、コンピューティングリソースの仮想化及びクラウドを現在使用している。クラウドサービスプロバイダ（ＣＳＰ）は、要求に応じて仮想サーバを作成する能力を提供することによって、クラウド基盤コンピューティングサービス（例えば、インフラストラクチャーアズアサービス（ＩａａＳ）、プラットフォームアズアサービス（ＰａａＳ）、ソフトウェアアズアサービス（ＳａａＳ）、及び記憶サービス）を配信することができる。このような仮想サーバは、オペレーティングシステム、インストール済みソフトウェアアプリケーション及びサービスなどのような定義済み属性を有し得る。クラウドサービスによって使用される仮想化技術は、１つ以上のリモートデスクトップサービス（ＲＤＳ）セッションを１人以上のユーザに同時に展開するために単一仮想サーバを許容する。仮想サーバにおけるマルチセッションは、１つのセッションの１人のユーザの行動が他のユーザの体験に影響を及ぼさないように、分離して保持され得る。いくつかの事象において、事業体は、各仮想サーバがその特定の事業体のユーザのみに供し得ることを要求することによる、よりハイレベルのアイソレーションを好み得る。
【０００３】
現在、その顧客またはテナントにデスクトップ及びアプリケーションをホスティングするクラウドサービスプロバイダは、異なるレベルのテナントアイソレーションを有するサービスを提案することができる。２つの共通レベルのテナントアイソレーションは、共有及び私用である。共有モードにおいて、マルチテナントは、仮想サーバの単一カタログを共有し得、各仮想サーバは、マルチテナントからのユーザをホスティングし得る。共有モードは、テナントにわたるセッションレベルアイソレーションのみを提案する。このモードは、一般に、クラウドサービスプロバイダによって提供される仮想サーバにわたる最良ユーザ密度を提案するので、最も低価格の選択肢である。私用モードにおいて、各テナントは、仮想サーバの別個のカタログを割り当てられ、各仮想サーバは、特定のテナントからのユーザのみをホスティングし得る。私用モードは、より良好なセキュリティ及びテナントにわたるマシンレベルアイソレーションを提案するが、同一数のテナントを供するために大量の仮想サーバを提供することをクラウドサービスプロバイダに要求するので、より高費用である。
【発明の概要】
【０００４】
本明細書において説明される様々な態様の簡単な要約を以下に提示する。この要約は、広範囲な概要ではなく、重要もしくは決定的な要素を特定すること、または請求項の範囲を説明することを意図するものではない。以下の要約は、以下に提供されるより詳細な説明の予備的な前置きとして簡単な形式におけるいくつかの概念を提示するに過ぎない。
【０００５】
上記の先行技術における制約を克服するために、また本明細書を読み理解するに際して明らかになるだろう他の制約を克服するために、本明細書において説明される態様は、マシンレベルアイソレーションを有するマルチテナントマルチセッションカタログを作成及び管理するためのシステム、方法、及び技術を対象とする。特に、本開示の態様は、テナントにわたるマシンレベルアイソレーションを維持しつつ、複数のテナントに対応する複数のユーザにソフトウェアアプリケーション及びサービスを配信するために、クラウドサービスプロバイダのための効率的、費用効果の良い、便利な方法を提供する。以下により詳細に説明される本開示の態様は、上記の共有及び私用アイソレーションモードの利点を組み合わせ得る仮想サーバカタログを作成するためにクラウドサービスプロバイダによって使用され得る。具体的には、本開示の態様は、私用モードのマシンレベルアイソレーションをより高密度のユーザ共有モードによって実現される費用節約と組み合わせ得る、マルチテナントマルチセッションカタログに関する。
【０００６】
該方法は、クラウドサービスプロバイダによって、１つ以上のテナント組織から定義済みの数のサーバに対する要求を受信することを含み得る。テナント組織は、要求されたサーバ上でホスティングされる１つ以上のソフトウェアアプリケーション及びサービスを受信するためにクラウドサービスプロバイダに加入し得る。クラウドサービスプロバイダは、１つ以上のテナント組織からの総合的なサーバ要求の合計未満である複数のサーバを初期化し得る。クラウドサービスプロバイダは、複数の初期化サーバのうちの未割り当てのサーバのカタログを作成し得る。
【０００７】
以下により詳細に述べられる１つ以上の実施形態において、クラウドサービスプロバイダは、第１のテナントの第１のユーザからサーバにアクセスするためのログオン要求を受信し得る。ログオン要求に応答して、クラウドサービスプロバイダは、未割り当てのサーバのカタログから第１のサーバを第１のテナントに割り当て、第１のサーバを未割り当てのサーバのカタログから除去し、第１のテナントの第１のユーザを第１のサーバに接続するために仲介し、第１のサーバへのアクセスを第１のテナントのユーザのみに制限し得る。加えて、クラウドサービスプロバイダは、第２のテナントの第１のユーザからサーバにアクセスするためのログオン要求を受信し得る。ログオン要求に応答して、クラウドサービスプロバイダは、未割り当てのサーバのカタログから第２のサーバを第２のテナントに割り当て、第２のサーバを未割り当てのサーバのカタログから除去し、第２のテナントの第１のユーザを第１のサーバに接続するために仲介し、第２のサーバへのアクセスを第２のテナントのユーザのみに制限し得る。
【０００８】
いくつかの実施形態において、クラウドサービスプロバイダは、共有イメージを用いて複数のサーバを初期化し得る。共通イメージは、オペレーティングシステム、アプリケーションプログラム、及びクラウドサービスプロバイダに加入したテナントに配信される他のソフトウェアを含み得る。他の実施形態において、複数のサーバは、リモートデスクトップサービス（ＲＤＳ）を１人以上のユーザに同時に提供するように構成され得る。１つ以上の配置において、複数のサーバは、クラウドサービスにおいてホスティングされ得る。他の配置において、クラウドサービスプロバイダは、第１のテナントに割り当てるために、未割り当てのサーバのカタログから特定のサーバをランダムに選択し得る。
【０００９】
該方法は、クラウドサービスプロバイダによって、第１のテナントの第２のユーザからサーバにアクセスするためのログオン要求を受信することをさらに含む。ログオン要求に応答して、クラウドサービスプロバイダは、第１のサーバの空き容量、及び第１のサーバの空き容量が所定の閾値容量未満であるか否かを判定し得る。第１のサーバの空き容量が所定の閾値容量未満であると判定すると、クラウドサービスプロバイダは、未割り当てのサーバのカタログから第３のサーバを第１のテナントに割り当て、第３のサーバを未割り当てのサーバのカタログから除去し、第１のテナントの第３のユーザを第３のサーバに接続するために仲介し、第３のサーバへのアクセスを第１のテナントのユーザのみに制限し得る。
【００１０】
いくつかの実施形態において、該方法は、クラウドサービスプロバイダによって、第１のテナントの第２のユーザからサーバにアクセスするためのログオン要求を受信することをさらに含む。ログオン要求に応答して、クラウドサービスプロバイダは、第１のテナントに割り当てられた１つ以上のサーバ、及び第１のテナントに割り当てられた１つ以上のサーバの各々についての空き容量を判定し得る。クラウドサービスプロバイダは、空き容量判定に基づいて、第１のテナントに割り当てられた１つ以上のサーバのうち、最も大きな空き容量を有する１つの割り当て済みサーバをさらに判定し得る。クラウドサービスプロバイダは、第１のテナントに割り当てられた１つ以上のサーバのうち、最も大きな空き容量を有する、判定された割り当て済みサーバに第１のテナントの第２のユーザを仲介し得る。
【００１１】
他の実施形態において、該方法は、特定のサーバにログインしたユーザからログオフ要求を受信することをさらに含み得る。クラウドサービスプロバイダは、ユーザからのログオフ要求を受信することに応答して、ユーザを特定のサーバからログオフさせ得る。ユーザからのログオフ要求にさらに応答して、クラウドサービスプロバイダは、特定のサーバにログインしているユーザがいないか否かを判定し得る。特定のサーバにログインしているユーザがいないことの判定に基づき、クラウドサービスプロバイダは、特定のサーバを再イメージングし、特定のサーバから割り当てを除去し、特定のサーバを未割り当てのサーバのカタログに戻し得る。例えば、いったん特定のサーバが再イメージングされ、割り当て解除されると、特定のホストサーバは、任意のテナントに割り当てられ得、任意のユーザが、後続するログオン要求に応答してそのサーバに接続され得る。
【００１２】
代替的に、さらに他の実施形態において、方法は、第１のテナント及び第２のテナントの両方に対する、未割り当てのサーバの単一アイドルプールを維持することをさらに含み得る。例えば、アイドルプールにおける未割り当てのホストサーバは、必要に応じて、後続するログオン要求に応答して割り当てられ得る。
【００１３】
システム及び非一時コンピュータ可読媒体が、本明細書で開示される様々な態様を提供及び／または支援するように構成され得る。これらの及び追加の態様が、以下にさらに詳細に論じられる開示の利益と共に認められるであろう。
【００１４】
本明細書において説明された態様及びその利点のより完全な理解は、同様の参照番号が同様の特徴を指示する添付図を考慮して以下の説明を参照することによって得られ得る。
【図面の簡単な説明】
【００１５】
【図１】本明細書において説明される１つ以上の例証的な態様によって使用され得る例証的なコンピュータシステムアーキテクチャを図示する。
【図２】本明細書において説明される１つ以上の例証的な態様によって使用され得る例証的なリモートアクセスシステムアーキテクチャを図示する。
【図３】本明細書において説明される１つ以上の例証的な態様によって使用され得る例証的な仮想化（ハイパーバイザ）システムアーキテクチャを図示する。
【図４】本明細書において説明される１つ以上の例証的な態様によって使用され得る例証的なクラウド基盤システムアーキテクチャを図示する。
【図５】本明細書において説明される１つ以上の例証的な態様による、マシンレベルアイソレーションを有するマルチテナントマルチセッションカタログを作成及び管理するために使用され得る例証的なシステムアーキテクチャを図示する。
【図６】１つ以上の例示実施形態による、マシンレベルアイソレーションを有するマルチテナントマルチセッションカタログを作成する方法を例証するフローチャートを図示する。
【図７】１つ以上の例示実施形態による、マシンレベルアイソレーションを有するマルチテナントマルチセッションカタログによって、ユーザログオン要求に応答する方法を例証するフローチャートを図示する。
【図８】１つ以上の例示実施形態による、マシンレベルアイソレーションを有するマルチテナントマルチセッションカタログによって、ユーザログオフ要求に応答する方法を例証するフローチャートを図示する。
【発明を実施するための形態】
【００１６】
様々な実施形態の下記の説明において、上記で明らかにされ、本明細書の一部を形成する添付の図面が参照され、図面において、本明細書が説明される実施形態が実行されてもよい様々な実施形態が例証によって示される。他の実施形態が利用されてもよく、本明細書で説明される範囲から逸脱せずに、構造的及び機能的な修正が行われてもよいことが理解されるべきである。他の実施形態の様々な態様が可能であり、様々な異なる方法で実行される、または行われることができる。
【００１７】
以下により詳細に説明される主題への一般的な導入として、本明細書において説明される態様は、マシンレベルアイソレーションを有するマルチテナントマルチセッションカタログを作成及び管理するためのシステム、方法、及び技術を対象とする。特に、本明細書において説明される態様は、マルチテナントマルチセッションカタログからホストサーバをテナントに割り当て、かつユーザからのログオン要求に応答して、対応するテナントからのユーザを割り当て済みホストサーバに接続するために使用され得る。本明細書において説明される他の態様は、接続済みユーザからのログオフ要求に応答して、割り当て済みホストサーバを割り当て解除及び再イメージングするために使用され得る。
【００１８】
これらの概念をより詳細に述べる前に、本開示の様々な態様の実施及び／またはそうでなければ提供に使用され得るコンピューティングアーキテクチャ及びシステムの数個の例示が、まず図１〜図４に関して論じられることになる。
【００１９】
本明細書で使用される表現法及び用語法は説明の目的のためであり、限定であると見なされるべきではないことが理解されるべきである。むしろ、本明細書で使用される表現及び用語は、その最も幅広い解釈及び意味が与えられるべきである。「含む」及び「備える」ならびにそれらの変形の使用は、その後に挙げられた項目及びその等価物、ならびに追加の項目及びその等価物を包括することを意味する。「装着される」、「接続される」、「連結される」、「位置決めされる」、「係止される」、及び同様の用語の使用は、直接的と間接的との両方で装着する、接続する、連結する、位置決めする、及び係止することを含むことを意味する。
【００２０】
コンピューティングアーキテクチャ
コンピュータソフトウェア、ハードウェア、及びネットワークは、とりわけ、スタンドアロン、ネットワーク接続環境、リモートアクセス（別名、リモートデスクトップ）、仮想化された環境、及び／またはクラウドベースの環境などの様々な異なるシステム環境において利用されてもよい。図１は、スタンドアロン及び／またはネットワーク接続された環境において本明細書において説明される１つ以上の例証的な態様を実施するために使用され得る、システムアーキテクチャ及びデータ処理装置の一例を例証する。様々なネットワークノード１０３、１０５、１０７及び１０９は、インターネットなどの広域ネットワーク（ＷＡＮ）１０１を介して相互接続されてもよい。プライベートイントラネット、企業ネットワーク、ローカルエリアネットワーク（ＬＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、無線ネットワーク、個人ネットワーク（ＰＡＮ）などを含む他のネットワークもまた、または代替的に使用されてもよい。ネットワーク１０１は例証の目的のためであり、より少ない、または追加のコンピュータネットワークと置き換えられてもよい。ローカルエリアネットワークは、知られているＬＡＮトポロジのうちの１つ以上を有してもよく、イーサネット（登録商標）などの様々な異なるプロトコルのうちの１つ以上を使用してもよい。装置１０３、１０５、１０７、１０９及び他の装置（図示せず）は、ツイストペアケーブル、同軸ケーブル、光ファイバー、電波、または他の通信媒体を介したネットワークのうちの１つ以上に接続されてもよい。
【００２１】
本明細書で使用され、図面において示されるような「ネットワーク」という用語は、遠隔記憶装置が１つ以上の通信経路を介して互いに連結されるシステムのみを示さず、記憶能力を有するこのようなシステムに時々連結されてもよいスタンドアロン装置も示す。続いて、「ネットワーク」という用語は、「物理ネットワーク」だけではなく、すべての物理ネットワーク上にある単一のエンティティにデータを属させることができるものからなる「コンテンツネットワーク」も含む。
【００２２】
構成要素は、データサーバ１０３と、ウェブサーバ１０５と、クライアントコンピュータ１０７、１０９とを含んでもよい。データサーバ１０３は、本明細書で説明される１つ以上の例証的な態様を実行するための、データベースのアクセス、制御、及び管理の全体、ならびに制御ソフトウェアを提供する。データサーバ１０３は、ユーザが相互作用し、要求されたデータを取得する、ウェブサーバ１０５に接続されてもよい。代替的に、データサーバ１０３は、ウェブサーバ自体として作用してもよく、インターネットに直接接続されてもよい。データサーバ１０３は、直接または間接接続、もしくは他のネットワークを介して、ネットワーク１０１（例えば、インターネット）を通してウェブサーバ１０５に接続されてもよい。ユーザは、例えばウェブブラウザを使用して、ウェブサーバ１０５によってホスティングされた１つ以上の外部に露出されたウェブサイトを介してデータサーバ１０３に接続するなど、リモートコンピュータ１０７、１０９を使用してデータサーバ１０３と相互作用してもよい。クライアントコンピュータ１０７、１０９は、データサーバ１０３と協調して使用され、クライアントコンピュータ１０７、１０９に記憶されているデータにアクセスしてもよく、または他の目的のために使用されてもよい。例えば、クライアント装置１０７からユーザは、当分野において知られるように、インターネットブラウザを使用するか、またはコンピュータネットワーク（例えば、インターネット）上でウェブサーバ１０５及び／またはデータサーバ１０３と通信するソフトウェアアプリケーションを実行することによって、ウェブサーバ１０５にアクセスしてもよい。
【００２３】
サーバ及びアプリケーションは、同じ物理マシン上で組み合わせられ、別々の仮想または論理アドレスを保持してもよく、または別々の物理マシン上にあってもよい。図１は、使用されてもよいネットワークアーキテクチャの単なる１つの例を例証し、当業者は、使用される特定のネットワークアーキテクチャ及びデータ処理装置が変化し得、本明細書でさらに説明されるように、それらが提供する機能性を伴うことを理解するであろう。例えば、ウェブサーバ１０５及びデータサーバ１０３によって提供されるサービスは、単一のサーバ上で組み合わせられてもよい。
【００２４】
各構成要素１０３、１０５、１０７、１０９は、任意の知られた種類のコンピュータ、サーバ、またはデータ処理装置であってもよい。データサーバ１０３は、例えば、データサーバ１０３の動作全体を制御する処理装置１１１を含んでもよい。データサーバ１０３は、ランダムアクセスメモリ（ＲＡＭ）１１３と、読み取り専用メモリ（ＲＯＭ）１１５と、ネットワークインターフェース１１７と、入力／出力（Ｉ／Ｏ）１１９（例えば、キーボード、マウス、ディスプレイ、プリンタなど）と、メモリ１２１とをさらに含んでもよい。入力／出力（Ｉ／Ｏ）インターフェース１１９は、データまたはファイルを読み取り、書き込み、表示し、及び／または印刷するための様々なインターフェースユニット及びドライブを含んでもよい。メモリ１２１は、データ処理装置１０３の動作全体を制御するための動作システムソフトウェア１２３と、データサーバ１０３に本明細書で説明される態様を実行するように命令する制御論理１２５と、派生、支援、及び／または本明細書で説明される態様に関連して使用されてもよい、または使用され得ない他の機能を提供する他のアプリケーションソフトウェア１２７とをさらに記憶してもよい。制御論理は、本明細書においてデータサーバソフトウェア１２５とも呼ばれてもよい。データサーバソフトウェアの機能は、制御論理内に符号化されたルールに基づいて自動的に作られた、システム内へ入力を提供するユーザによって手動で作られた、及び／またはユーザ入力（例えば、クエリ、データ更新など）に基づく自動的な処理の組み合わせの動作または意思決定を示してもよい。
【００２５】
メモリ１２１は、第１のデータベース１２９及び第２のデータベース１３１など、本明細書で説明される１つ以上の態様の実行において使用されるデータも記憶してもよい。いくつかの実施形態では、第１のデータベースは、第２のデータベースを含んでもよい（例えば、別個のタブレット、レポートなどとして）。すなわち、情報は、システム設計によって、単一のデータベースに記憶されることができる、もしくは異なる論理、仮想、または物理データベースに分離されることができる。装置１０５、１０７、１０９は、装置１０３に関して説明したものと同様の、または異なるアーキテクチャを有してもよい。本明細書で説明されるようなデータ処理装置１０３（または装置１０５、１０７、１０９）の機能は、複数のデータ処理装置に散乱され、例えば複数のコンピュータ上の処理負荷を分散し、地理的位置、ユーザアクセスレベル、サービスの質（ＱｏＳ）などに基づいて処理を分離してもよいことを当業者は理解するであろう。
【００２６】
１つ以上の態様は、１つ以上のコンピュータまたは本明細書で説明されるような他の装置によって実行される１つ以上のプログラムモジュールにおいてなど、コンピュータ使用可能な、または読み取り可能なデータ及び／またはコンピュータ実行可能命令において具現化されてもよい。一般的に、プログラムモジュールは、コンピュータまたは他の装置における処理装置によって実行されたとき、特定のタスクを実行する、または特定の抽象データ型を実施するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。モジュールは、続いて実行用にコンパイルされるソースコードプログラミング言語で書きこまれてもよく、またはハイパーテキストマークアップランゲージ（ＨＴＭＬ）またはエクステンシブルマークアップランゲージ（ＸＭＬ）などの（限定されないが）スクリプト言語で書きこまれてもよい。コンピュータ実行可能命令は、不揮発性記憶装置などのコンピュータ可読媒体上に記憶されてもよい。ハードディスク、ＣＤ−ＲＯＭ、光記憶装置、磁気記憶装置、及び／またはそれらの任意の組み合わせなどの任意の好適なコンピュータ可読記憶媒体が利用されてもよい。さらに、本明細書で説明されるようなデータまたは事象を表す様々な転送（非記憶）媒体が、金属導線、光ファイバー、及び／または無線送信媒体（例えば、空気及び／または空間）などの信号伝導媒体を通って移動する電磁波の形式で、ソースと宛先との間で転送されてもよい。本明細書で説明される様々な態様は、方法、データ処理システム、またはコンピュータプログラム製品として具現化されてもよい。したがって、様々な機能がソフトウェア、ファームウェア、及び／またはハードウェアもしくは集積回路、フィールドプログラマブルビジネスロジック（ＦＰＧＡ）などのハードウェアの等価物の全体または一部において具現化されてもよい。特定データ構造が使用され、本明細書で説明される１つ以上の態様を効果的に実施してもよく、このようなデータ構造は、本明細書で説明されるコンピュータ実行可能命令及びコンピュータ使用可能データの範囲内であると想定される。
【００２７】
図２をさらに参照すると、本明細書において説明される１つ以上の態様が、リモートアクセス環境に実装されてもよい。図２は、本明細書において説明される１つ以上の例証的な態様によって使用され得る例証的なコンピューティング環境２００における一般的なコンピューティング装置２０１を含むシステムアーキテクチャ例を図示する。一般的なコンピュータ装置２０１は、クライアントアクセス装置用の仮想マシンを提供するように構成された、単一のサーバまたは複合サーバデスクトップ仮想システム（例えば、リモートアクセスまたはクラウドシステム）においてサーバ２０６ａとして使用されてもよい。一般的なコンピューティング装置２０１は、サーバ、及びＲＡＭ２０５、ＲＯＭ２０７、Ｉ／Ｏモジュール２０９、及びメモリ２１５などのサーバに関連する構成要素の動作全体を制御するための処理装置２０３を有してもよい。
【００２８】
Ｉ／Ｏモジュール２０９は、マウス、キーパッド、タッチスクリーン、センサ、光学式読取装置、及び／またはそれを通して一般的なコンピューティング装置２０１のユーザが入力を提供してもよいスタイラスを含んでもよく、かつ、音声出力を提供するためのスピーカと、文章、オーディオビジュアル、及び／またはグラフィック出力を提供するためのビデオ表示装置とのうちの１つ以上をさらに含んでもよい。ソフトウェアはメモリ２１５及び／または他の記憶装置内に記憶され、本明細書で説明されるような様々な機能を実行するため、一般的なコンピューティング装置２０１を特殊用途コンピューティング装置内に構成するために、命令を処理装置２０３に提供してもよい。例えば、メモリ２１５は、動作システム２１７、アプリケーションプログラム２１９、及び関連するデータベース２２１などのコンピューティング装置２０１によって使用されるソフトウェアを記憶してもよい。
【００２９】
コンピューティング装置２０１は、端子２４０（クライアント装置とも呼ばれる）などの１つ以上のリモートコンピュータへの接続を支援するネットワーク接続された環境において動作してもよい。端子２４０は、一般的なコンピューティング装置１０３または２０１に対して上記の要素のうちの多くまたはすべてを含むパーソナルコンピュータ、モバイル装置、ラップトップコンピュータ、タブレット、またはサーバであってもよい。図２に図示されたネットワーク接続は、ローカルエリアネットワーク（ＬＡＮ）２２５及び広域ネットワーク（ＷＡＮ）２２９を含むが、他のネットワークをまた含んでもよい。ＬＡＮネットワーキング環境において使用される場合、コンピューティング装置２０１は、ネットワークインターフェースまたはアダプタ２２３を通してＬＡＮ２２５に接続されてもよい。ＷＡＮネットワーキング環境で使用される場合、コンピューティング装置２０１は、コンピュータネットワーク２３０（例、インターネット）などのＷＡＮ２２９上での通信を確立するためのモデム２２７または他の広域ネットワークインターフェースを含んでもよい。示されるネットワーク接続は例証的であり、コンピュータ間の通信リンクを確立するための他の手段が使用されてもよいことが理解されるであろう。コンピューティング装置２０１及び／または端子２４０は、バッテリ、スピーカ、及びアンテナ（図示せず）などの様々な他の構成要素を含むモバイル端子（例、携帯電話、スマートフォン、パーソナルデジタルアシスタント（ＰＤＡ）、ノートブックなど）でもあってもよい。
【００３０】
本明細書で説明される態様はさらに、多数の他の汎用または特殊用途のコンピューティングシステム環境または構成で動作可能であってもよい。本明細書で説明される態様での使用に好適であり得る、他のコンピューティングシステム、環境、及び／または構成の例は、限定されないが、パーソナルコンピュータ、サーバコンピュータ、手持ち式またはラップトップ装置、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能な家庭用電化製品、ネットワークパーソナルコンピュータ（ＰＣ）ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたは装置のうちのいずれかを含む分散コンピューティング環境などを含む。
【００３１】
図２に示されるように、１つ以上のクライアント装置２４０は、１つ以上のサーバ２０６ａ〜２０６ｎ（一般的に本明細書において「サーバ２０６」と呼ばれる）と通信状態にあってもよい。１つの実施形態では、コンピューティング環境２００は、サーバ２０６とクライアントマシン２４０との間に設置されたネットワーク機器を含んでもよい。ネットワーク機器は、クライアント／サーバ接続を管理してもよく、いくつかの場合では、複数のバックエンドサーバ２０６内のクライアント接続をロードバランシングすることができる。
【００３２】
クライアントマシン２４０は、いくつかの実施形態では、単一のクライアントマシン２４０またはクライアントマシン２４０の単一のグループを指してもよく、一方で、サーバ２０６は単一のサーバ２０６またはサーバ２０６の単一のグループを指してもよい。１つの実施形態では、単一のクライアントマシン２４０は、１つ以上のサーバ２０６と通信し、一方で、別の実施形態では、単一のサーバ２０６は、１つ以上のクライアントマシン２４０と通信する。さらに別の実施形態では、単一のクライアントマシン２４０は、単一のサーバ２０６と通信する。
【００３３】
クライアントマシン２４０は、いくつかの実施形態では、クライアントマシン、クライアント、クライアントコンピュータ、クライアント装置、クライアントコンピュータ、装置、ローカルマシン、リモートマシン、クライアントノード、エンドポイント、またはエンドポイントノードの非網羅的用語のうちのいずれか１つによって参照されることができる。サーバ２０６は、いくつかの実施形態では、サーバ、ローカルマシン、リモートマシン、サーバファーム、またはホストコンピューティング装置の非網羅的用語のうちのいずれか１つによって参照されることができる。
【００３４】
１つの実施形態では、クライアントマシン２４０は仮想マシンであってもよい。仮想マシンは任意の仮想マシンであってもよく、一方で、いくつかの実施形態では、仮想マシンは、例えばＣｉｔｒｉｘ  Ｓｙｓｔｅｍｓ、ＩＢＭ、ＶＭｗａｒｅによって開発されたハイパーバイザまたは任意の他のハイパーバイザなどのタイプ１またはタイプ２のハイパーバイザによって管理される任意の仮想マシンであってもよい。いくつかの態様では、仮想マシンはハイパーバイザによって管理されてもよく、一方で、いくつかの態様では、仮想マシンはサーバ２０６上で実行するハイパーバイザまたはクライアント２４０上で実行するハイパーバイザによって管理されてもよい。
【００３５】
いくつかの実施形態は、サーバ２０６または他の遠隔に位置するマシン上で遠隔実行するアプリケーションによって生成されたアプリケーション出力を表示するクライアント装置２４０を含む。これらの実施形態では、クライアント装置２４０は、仮想マシン受信プログラムまたはアプリケーションを実行して、出力をアプリケーションウィンドウ、ブラウザ、または他の出力ウィンドウに表示しもよい。１つの例では、アプリケーションはデスクトップであり、一方で、他の例では、アプリケーションはデスクトップを生成する、または提示するアプリケーションである。デスクトップは、ローカル及び／またはリモートアプリケーションが組み込まれることができる動作システムの事象に対するユーザインターフェースを提供するグラフィカルシェルを含んでもよい。本明細書において使用されるようなアプリケーションは、動作システム（及び、選択的に、デスクトップも）の事象がロードされた後に実行するプログラムである。
【００３６】
サーバ２０６は、いくつかの実施形態では、リモート提示プロトコルまたは他のプログラムを使用し、データをシンクライアントまたはクライアント上で実行するリモートディスプレイアプリケーションを送信し、サーバ２０６上で実行するアプリケーションによって生成された表示出力を提示する。シンクライアントまたはリモートディスプレイプロトコルは、フロリダ州Ｆｔ．ＬａｕｄｅｒｄａｌｅのＣｉｔｒｉｘ  Ｓｙｓｔｅｍｓ，Ｉｎｃ．によって開発されたＩｎｄｅｐｅｎｄｅｎｔ  Ｃｏｍｐｕｔｉｎｇ  Ａｒｃｈｉｔｅｃｔｕｒｅ（ＩＣＡ）プロトコル、ワシントン州ＲｅｄｍｏｎｄのＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎによって製造されたリモートデスクトッププロトコル（ＲＤＰ）のプロトコルの非網羅的リストのうちのいずれか１つであることができる。
【００３７】
リモートコンピューティング環境は、サーバ２０６ａ〜２０６ｎが例えばクラウドコンピューティング環境などにおいてサーバファーム２０６内に互いに論理的にグループ化されるように、１つ以上のサーバ２０６ａ〜２０６ｎを含んでもよい。サーバファーム２０６は、地理的に分散され、一方で互いに論理的にグループ化されたサーバ２０６、または互いの近くに配置され、一方で互いに論理的にグループ化されたサーバ２０６を含んでもよい。サーバファーム２０６内に地理的に分散されたサーバ２０６ａ〜２０６ｎは、いくつかの実施形態では、ＷＡＮ（広域）、ＭＡＮ（メトロポリタン）、またはＬＡＮ（ローカル）を使用して通信し、異なる地理的領域は、異なる大陸、大陸の異なる地域、異なる国、異なる州、異なる街、異なるキャンパス、異なる部屋、または前述の地理的位置の任意の組み合わせとして特徴付けられることができる。いくつかの実施形態では、サーバファーム２０６は単一のエンティティとして管理されてもよく、一方で、他の実施形態では、サーバファーム２０６は複数のサーバファームを含むことができる。
【００３８】
いくつかの実施形態において、サーバファームは、実質的に同様のタイプの動作システムプラットフォーム（例えば、ＷＩＮＤＯＷＳ（登録商標）、ＵＮＩＸ（登録商標）、ＬＩＮＵＸ、ｉＯＳ、ＡＮＤＲＯＩＤ（登録商標）、ＳＹＭＢＩＡＮなど）を実行するサーバ２０６を含んでもよい。他の実施形態では、サーバファーム２０６は、第１のタイプの動作システムプラットフォームを実行する１つ以上のサーバの第１のグループ、及び第２のタイプの動作システムプラットフォームを実行する１つ以上のサーバの第２のグループを含んでもよい。
【００３９】
サーバ２０６は、例えばファイルサーバ、アプリケーションサーバ、ウェブサーバ、プロキシサーバ、機器、ネットワーク機器、ゲートウェイ、アプリケーションゲートウェイ、ゲートウェイサーバ、仮想化サーバ、デプロイメントサーバ、Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔｓ  Ｌａｙｅｒ（ＳＳＬ）ＶＰＮサーバ、ファイアウォール、ウェブサーバ、アプリケーションサーバ、またはマスターアプリケーションサーバとして、アクティブデイレクトリを実行するサーバ、ファイアウォール機能、アプリケーション機能、またはロードバランシング機能を提供するアプリケーション加速プログラムなど、必要に応じて、任意のタイプのサーバとして構成されてもよい。他のサーバタイプも使用されてもよい。
【００４０】
いくつかの実施形態は、クライアントマシン２４０から要求を受信し、要求を第２のサーバ２０６ｂに転送し、第２のサーバ２０６ｂからの応答でクライアントマシン２４０によって生成された要求に応答する第１のサーバ２０６ａを含む。第１のサーバ２０６ａは、クライアントマシン２４０及びウェルに利用可能なアプリケーションの列挙を、アプリケーションの列挙内で識別されたアプリケーションをホスティングするアプリケーションサーバ２０６に関連するアドレス情報として取得してもよい。次に、第１のサーバ２０６ａは、ウェブインターフェースを使用してクライアントの要求への応答を提示することができ、クライアント２４０と直接通信して、クライアント２４０に識別されたアプリケーションへのアクセスを提供することができる。１つ以上のクライアント２４０及び／または１つ以上のサーバ２０６は、例えばネットワーク１０１などのネットワーク２３０上でデータを送信してもよい。
【００４１】
図３は、例証的なデスクトップ仮想化システムのハイレベルアーキテクチャを示す。示されるように、デスクトップ仮想化システムは、単一サーバまたはマルチサーバシステム、もしくは仮想デスクトップ及び／または仮想アプリケーションを１つ以上のクライアントアクセス装置２４０に提供するように構成された少なくとも１つの仮想化サーバ３０１を含むクラウドシステムであってもよい。本明細書で使用されるように、デスクトップは、１つ以上のアプリケーションがホスティングされてもよい、及び／または実行されてもよいグラフィック環境または空間を指す。デスクトップは、ローカル及び／またはリモートアプリケーションが組み込まれることができる動作システムの事象に対するユーザインターフェースを提供するグラフィカルシェルを含んでもよい。アプリケーションは、動作システム（及び、選択的に、デスクトップも）の事象がロードされた後に実行するプログラムを含んでもよい。動作システムの各事象は、物理的（例えば、装置あたり１つの動作システム）または仮想的（例えば、単一の装置上で実行するＯＳの多くの事象）であってもよい。各アプリケーションは、ローカル装置で実行されてもよく、または遠隔に位置する装置（例えば、リモートの）上で実行してもよい。
【００４２】
コンピュータ装置３０１は、仮想化環境における仮想化サーバ、例えば、単一サーバ、マルチサーバ、またはクラウドコンピューティング環境として構成されてもよい。図３に例証された仮想化サーバ３０１は、図２に例証されたサーバ２０６の１つ以上の実施形態によって、または他の知られたコンピューティング装置によって、展開及び／または実装されることができる。仮想化サーバ３０１に含まれているものは、１つ以上の物理的ディスク３０４、１つ以上の物理的装置３０６、１つ以上の物理的プロセッサ３０８、及び１つ以上の物理的メモリ３１６を含むことができるハードウェア層である。いくつかの実施形態において、ファームウェア３１２は、物理的メモリ３１６のメモリ要素内に記憶されることができ、また物理的プロセッサ３０８のうちの１つ以上によって実行されることができる。仮想化サーバ３０１は、物理的メモリ３１６のメモリ要素に記憶されてもよく、また物理的プロセッサ３０８のうちの１つ以上によって実行されてもよい、動作システム３１４をさらに含んでもよい。またさらに、ハイパーバイザ３０２が、物理的メモリ３１６のメモリ要素に記憶されてもよく、また物理的プロセッサ３０８のうちの１つ以上によって実行されることができる。
【００４３】
物理的プロセッサ３０８の１つ以上で実行するものは、１つ以上の仮想マシン３３２Ａ〜Ｃ（一般的に３３２）であってもよい。各仮想マシン３３２は、仮想ディスク３２６Ａ〜Ｃ及び仮想プロセッサ３２８Ａ〜Ｃを有してもよい。いくつかの実施形態において、第１の仮想マシン３３２Ａは、仮想プロセッサ３２８Ａを使用して、ツールスタック３２４を含む制御プログラム３２０を実行してもよい。制御プログラム３２０は、制御仮想マシン、Ｄｏｍ０、Ｄｏｍａｉｎ０、またはシステム管理及び／もしくは制御用に使用される他の仮想マシンと呼ばれてもよい。いくつかの実施形態において、１つ以上の仮想マシン３３２Ｂ〜Ｃは、仮想プロセッサ３２８Ｂ〜Ｃを使用して、ゲスト動作システム３３０Ａ〜Ｂを実行することができる。
【００４４】
仮想化サーバ３０１は、仮想化サーバ３０１と通信するハードウェアの１つ以上の断片を有するハードウェア層３１０を含んでもよい。いくつかの実施形態において、ハードウェア層３１０は、１つ以上の物理的ディスク３０４、１つ以上の物理的装置３０６、１つ以上の物理的プロセッサ３０８、及び１つ以上のメモリ２１６を含むことができる。物理的構成要素３０４、３０６、３０８、及び３１６は、例えば、上記の任意の構成要素を含んでもよい。物理的装置３０６は、例えば、ネットワークインターフェースカード、ビデオカード、キーボード、マウス、入力装置、モニタ、ディスプレイ装置、スピーカ、光学ドライブ、記憶装置、ユニバーサルシリアルバス接続、プリンタ、スキャナ、ネットワーク要素（例えば、ルータ、ファイアウォール、ネットワークアドレス変換器、負荷分散装置、仮想私用ネットワーク（ＶＰＮ）ゲートウェイ、動的ホスト構成プロトコル（ＤＨＣＰ）ルータなど）、または仮想化サーバ３０１と接続されたもしくは通信する任意の装置を含んでもよい。ハードウェア層３１０の物理的メモリ３１６は、任意のタイプのメモリを含んでもよい。物理的メモリ３１６は、データを記憶してもよく、またいくつかの実施形態において１つ以上のプログラム、または一組の実行可能命令を記憶してもよい。図３は、ファームウェア３１２が仮想化サーバ３０１の物理的メモリ３１６内に記憶される実施形態を例証する。物理的メモリ３１６に記憶されているプログラムまたは実行可能命令は、仮想化サーバ３０１の１つ以上のプロセッサ３０８によって実行されることができる。
【００４５】
仮想化サーバ３０１はまた、ハイパーバイザ３０２を含む。いくつかの実施形態において、ハイパーバイザ３０２は、任意の数の仮想マシン３３２を作成及び管理するために仮想化サーバ３０１上でプロセッサ３０８によって実行されたプログラムであってもよい。ハイパーバイザ３０２は、仮想マシンモニタ、またはプラットフォーム仮想化ソフトウェアと呼ばれてもよい。いくつかの実施形態において、ハイパーバイザ３０２は、実行可能命令及びコンピューティングマシン上で実行する仮想マシンを監視するハードウェアの任意の組み合わせであることができる。ハイパーバイザ３０２は、ハイパーバイザが仮想化サーバ３０１上で実行する動作システム３１４内において実行する、タイプ２のハイパーバイザであってもよい。次に、仮想マシンは、ハイパーバイザの上のレベルで実行する。いくつかの実施形態において、タイプ２のハイパーバイザは、タイプ２のハイパーバイザがユーザの動作システムと相互作用するように、ユーザの動作システムのコンテキスト内で実行する。他の実施形態において、仮想化環境における１つ以上の仮想化サーバ３０１は、タイプ１のハイパーバイザ（図示せず）を代わりに含んでもよい。タイプ１のハイパーバイザは、ハードウェア及びハードウェア層３１０内のリソースに直接アクセスすることによって仮想化サーバ３０１上で実行してもよい。つまり、タイプ２のハイパーバイザ３０２は、示されるように、ホスト動作システム３１４を通してシステムリソースにアクセスするが、一方でタイプ１のハイパーバイザは、ホスト動作システム３１４なしで全システムリソースに直接アクセスしてもよい。タイプ１のハイパーバイザは、仮想化サーバ３０１の１つ以上の物理的プロセッサ３０８上で直接実行してもよく、物理的メモリ３１６に記憶されているプログラムデータを含んでもよい。
【００４６】
ハイパーバイザ３０２は、いくつかの実施形態において、システムリソースへの直接的なアクセスを有する動作システム３３０または制御プログラム３２０を模擬する任意の方式において、仮想マシン３３２上で実行している動作システム３３０または制御プログラム３２０に仮想リソースを提供することができる。システムリソースは、限定されるものではないが、物理的装置３０６、物理的ディスク３０４、物理的プロセッサ３０８、物理的メモリ３１６及び仮想化サーバ３０１ハードウェア層３１０に含まれた任意の他の構成要素を含むことができる。ハイパーバイザ３０２は、仮想ハードウェアをエミュレートするか、物理的ハードウェアを区分けするか、物理的ハードウェアを仮想化するか、及び／またはコンピューティング環境へのアクセスを提供する仮想マシンを実行するために使用されてもよい。また他の実施形態において、ハイパーバイザ３０２は、仮想化サーバ３０１上で実行している仮想マシン３３２についてのプロセッサスケジュール及びメモリ区分を制御する。ハイパーバイザ３０２は、Ｐａｌｏ  Ａｌｔｏ，ＣａｌｉｆｏｒｎｉａのＶＭＷａｒｅ，Ｉｎｃ．，によって製造されたもの、開発がオープンソースＸｅｎＰｒｏｊｅｃｔ．ｏｒｇコミュニティによって監督されるオープンソース製品である、ＸＥＮＰＲＯＪＥＣＴハイパーバイザ、Ｍｉｃｒｏｓｏｆｔによって提供されるＨｙｐｅｒＶ、ＶｉｒｔｕａｌＳｅｒｖｅｒもしくは仮想ＰＣハイパーバイザ、またはその他を含んでもよい。いくつかの実施形態において、仮想化サーバ３０１は、ゲスト動作システムが実行し得る仮想マシンプラットフォームを作成するハイパーバイザ３０２を実行する。これらの実施形態において、仮想化サーバ３０１は、ホストサーバと呼ばれてもよい。このような仮想化サーバの例は、Ｆｏｒｔ  Ｌａｕｄｅｒｄａｌｅ，ＦＬのＣｉｔｒｉｘ  Ｓｙｓｔｅｍｓ，Ｉｎｃ．，によって提供されるＸＥＮＳＥＲＶＥＲである。
【００４７】
ハイパーバイザ３０２は、ゲスト動作システム３３０が実行する１つ以上の仮想マシン３３２Ｂ〜Ｃ（一般的に３３２）を作成してもよい。いくつかの実施形態において、ハイパーバイザ３０２は、仮想マシン３３２を作成するために仮想マシンイメージをロードしてもよい。他の実施形態において、ハイパーバイザ３０２は、仮想マシン３３２内でゲスト動作システム３３０を実行してもよい。また他の実施形態において、仮想マシン３３２は、ゲスト動作システム３３０を実行してもよい。
【００４８】
仮想マシン３３２を作成することに加えて、ハイパーバイザ３０２は、少なくとも１つの仮想マシン３３２の実行を制御してもよい。他の実施形態において、ハイパーバイザ３０２は、仮想化サーバ３０１によって提供された少なくとも１つのハードウェアリソース（例えば、ハードウェア層３１０内において利用可能な任意のハードウェアリソース）の抽象概念を有する少なくとも１つの仮想マシン３３２を提供してもよい。他の実施形態において、ハイパーバイザ３０２は、仮想マシン３３２が仮想化サーバ３０１において利用可能な物理的プロセッサ３０８にアクセスする方式を制御してもよい。物理的プロセッサ３０８へのアクセスを制御することは、仮想マシン３３２が、プロセッサ３０８へのアクセスを有するべきか否か、またどの程度の物理的プロセッサ能力が仮想マシン３３２に提供されるかを判定することを含んでもよい。
【００４９】
図３に示されるように、仮想化サーバ３０１は、１つ以上の仮想マシン３３２をホストまたは実行してもよい。仮想マシン３３２は、プロセッサ３０８によって実行されたときに、仮想マシン３３２が物理的コンピューティング装置とほとんど同様にプログラム及びプロセスを実行することができるように、物理的コンピュータの動作を模倣する、一組の実行可能命令である。図３は、仮想化サーバ３０１が３つの仮想マシン３３２をホストする実施形態を例証するが、一方で他の実施形態において仮想化サーバ３０１は、任意の数の仮想マシン３３２をホストすることができる。ハイパーバイザ３０２は、いくつかの実施形態において、その仮想マシン３３２に利用可能な物理的ハードウェア、メモリ、プロセッサ及び他のシステムリソースの固有仮想ビューを有する各仮想マシン３３２を提供する。いくつかの実施形態において、固有仮想ビューは、仮想マシン許可、１つ以上の仮想マシン識別情報に対するポリシーエンジンのアプリケーション、仮想マシンにアクセスしているユーザ、仮想マシン上で実行しているアプリケーション、仮想マシンによってアクセスされたネットワーク、または任意の他の所望の条件のうちの１つ以上に基づくことができる。事象について、ハイパーバイザ３０２は、１つ以上のセキュアではない仮想マシン３３２及び１つ以上のセキュアな仮想マシン３３２を作成してもよい。セキュアではない仮想マシン３３２は、セキュアな仮想マシン３３２がアクセスを許可され得るリソース、ハードウェア、メモリ位置、及びプログラムにアクセスすることを防がれてもよい。他の実施形態において、ハイパーバイザ３０２は、仮想マシン３３２にとって利用可能な物理的ハードウェア、メモリ、プロセッサ及び他のシステムリソースの実質的に同様の仮想ビューを有する各仮想マシン３３２を提供してもよい。
【００５０】
各仮想マシン３３２は、仮想ディスク３２６Ａ〜Ｃ（一般的に３２６）及び仮想プロセッサ３２８Ａ〜Ｃ（一般的に３２８）を含んでもよい。仮想ディスク３２６は、いくつかの実施形態において、仮想化サーバ３０１の１つ以上の物理的ディスク３０４、または仮想化サーバ３０１の１つ以上の物理的ディスク３０４の一部分の仮想化されたビューである。物理的ディスク３０４の仮想化されたビューは、ハイパーバイザ３０２によって生成、提供、及び管理されることができる。いくつかの実施形態において、ハイパーバイザ３０２は、物理的ディスク３０４の固有ビューを有する各仮想マシン３３２を提供する。したがって、これらの実施形態において、各仮想マシン３３２に含まれた特定の仮想ディスク３２６は、他の仮想ディスク３２６と比較されたときに固有であることができる。
【００５１】
仮想プロセッサ３２８は、仮想化サーバ３０１の１つ以上の物理的プロセッサ３０８の仮想化されたビューであることができる。いくつかの実施形態において、物理的プロセッサ３０８の仮想化されたビューは、ハイパーバイザ３０２によって生成、提供及び管理されることができる。いくつかの実施形態において、仮想プロセッサ３２８は、少なくとも１つの物理的プロセッサ３０８の同じ性質のうちの実質的にすべてを有する。他の実施形態において、仮想プロセッサ３０８は、仮想プロセッサ３２８の性質のうちの少なくともいくつかが対応する物理的プロセッサ３０８の性質とは異なるように、物理的プロセッサ３０８の修正されたビューを提供する。
【００５２】
図４をさらに参照すると、本明細書において説明されるいくつかの態様が、クラウド基盤環境に実装されてもよい。図４は、クラウドコンピューティング環境（またはクラウドシステム）４００の例を例証する。図４に見られるように、クライアントコンピュータ４１１〜４１４は、クラウドシステムのコンピューティングリソース（例えば、ホストサーバ４０３、記憶リソース４０４、及びネットワークリソース４０５）にアクセスするためにクラウド管理サーバ４１０と通信してもよい。
【００５３】
管理サーバ４１０は、１つ以上の物理的サーバ上に実装されてもよい。管理サーバ４１０は、例えば、とりわけ、Ｆｔ．Ｌａｕｄｅｒｄａｌｅ，ＦＬのＣｉｔｒｉｘ  Ｓｙｓｔｅｍｓ，Ｉｎｃ．によるＣＬＯＵＤＰＬＡＴＦＯＲＭ、またはＯＰＥＮＳＴＡＣＫを動作させてもよい。管理サーバ４１０は、クラウドハードウェア及びクラウドソフトウェア、例えば、ホストコンピュータ４０３、データ記憶装置４０４、及びネットワーク接続装置４０５を含む、様々なコンピューティングリソースを管理してもよい。クラウドハードウェアリソース及びクラウドソフトウェアリソースは、私用構成要素及び／または公共構成要素を含んでもよい。例えば、クラウドは、１つ以上の特定の顧客コンピュータもしくはクライアントコンピュータ４１１〜４１４によって、及び／または私用ネットワーク上で使用されることになる私用クラウドとして構成されてもよい。他の実施形態において、公共クラウドまたは混成公共私用クラウドは、オープンネットワークまたは混成ネットワーク上で他の顧客によって使用されてもよい。
【００５４】
管理サーバ４１０は、クラウドオペレータ及びクラウド顧客がクラウドシステムと相互作用し得るように通るユーザインターフェースを提供するように構成されてもよい。例えば、管理サーバ４１０は、クラウドオペレータがクラウドリソースを管理し、仮想化層を構成し、顧客アカウントを管理し、そして他のクラウド管理タスクを行うことを許容するために、ユーザインターフェースを有する、一組のアプリケーションプログラミングインターフェース（ＡＰＩ）及び／または１つ以上のクラウドオペレータコンソールアプリケーション（例えば、ウェブ基盤スタンドアロンアプリケーション）を提供してもよい。管理サーバ４１０はまた、クライアントコンピュータ４１１〜４１４を介してエンドユーザからクラウドコンピューティング要求、例えば、クラウド内において仮想マシンを作成、修正、または削除する要求を受信するように構成されたユーザインターフェースを有する、一組のＡＰＩ及び／または１つ以上の顧客コンソールアプリケーションを含んでもよい。クライアントコンピュータ４１１〜４１４は、インターネットまたは他の通信ネットワークを介して管理サーバ４１０に接続されてもよく、管理サーバ４１０によって管理されたコンピューティングリソースのうちの１つ以上へのアクセスを要求してもよい。クライアント要求に応答して、管理サーバ４１０は、クライアント要求に基づいてクラウドシステムのハードウェア層における物理的リソースを選択及び供給するように構成されたリソースマネージャを含んでもよい。例えば、管理サーバ４１０及びクラウドシステムの追加の構成要素は、ネットワーク（例えば、インターネット）上で顧客に計算リソース、データ記憶サービス、ネットワーク接続能力、ならびにコンピュータプラットフォーム及びアプリケーションサポートを提供する、クライアントコンピュータ４１１〜４１４の顧客に対して仮想マシン及びその動作環境（例えば、ハイパーバイザ、記憶リソース、ネットワーク要素によって提案されたサービスなど）を供給、作成、及び管理するように構成されてもよい。クラウドシステムはまた、セキュリティサービス、開発環境、ユーザインターフェースなどを含む、様々な特定のサービスを提供するように構成されてもよい。
【００５５】
特定のクライアント４１１〜４１４は、例えば、同じエンドユーザの代わりに仮想マシンを作成する異なるクライアントコンピュータ、または同じ企業または組織と密接な関係がある異なるクライアントコンピュータに関連されてもよい。他の例において、特定のクライアント４１１〜４１４は、例えば、異なる企業または組織と密接な関係があるユーザに関連がなくてもよい。関連がないクライアントについて、任意の１人のユーザの仮想マシンまたは仮想記憶装置上の情報は、他のユーザから隠されてもよい。
【００５６】
ここでクラウドコンピューティング環境の物理的ハードウェア層を参照すると、利用可能区域４０１〜４０２（または区域）は、一緒に配置された一組の物理的コンピューティングリソースと呼ばれてもよい。区域は、コンピューティングリソースの全体クラウドにおいて他の区域から地理的に分離されてもよい。例えば、区域４０１は、Ｃａｌｉｆｏｒｎｉａに位置する第１のクラウドデータセンターであってもよく、区域４０２は、Ｆｌｏｒｉｄａに位置する第２のクラウドデータセンターであってもよい。管理サーバ４１０は、利用可能な区域のうちの１つ、または別個の位置に位置してもよい。各区域は、ゲートウェイを通して、管理サーバ４１０のような区域の外側にある装置と接続する内部ネットワークを含んでもよい。クラウドのエンドユーザ（例えば、クライアント４１１〜４１４）は、区域間の区別を認識してもよく、認識しなくてもよい。例えば、エンドユーザは、特定量のメモリ、処理電力、及びネットワーク能力を有する仮想マシンの作成を要求してもよい。管理サーバ４１０は、ユーザの要求に応答してもよく、仮想マシンが区域４０１または区域４０２のどちらからのリソースを使用して作成されたかをユーザが知ることなく、仮想マシンを作成するようにリソースを割り当ててもよい。他の例において、クラウドシステムは、仮想マシン（または他のクラウドリソース）が特定の区域または区域内の特定のリソース４０３〜４０５に割り当てられることをエンドユーザが要求することを許容してもよい。
【００５７】
この例において、各区域４０１〜４０２は、クラウドコンピューティングサービスを顧客に提供するために使用されてもよい、様々な物理的ハードウェア構成要素（またはコンピューティングリソース）４０３〜４０５、例えば、物理的ホスティングリソース（または処理リソース）、物理的ネットワークリソース、物理的記憶リソース、スイッチ、及び追加のハードウェアリソースの配置を含んでもよい。クラウド区域４０１〜４０２における物理的ホスティングリソースは、仮想マシン事象を作成及びホストするように構成されてもよい、上記の仮想化サーバ３０１のような、１つ以上のコンピュータサーバ４０３を含んでもよい。クラウド区域４０１または４０２における物理的ネットワークリソースは、ファイアウォール、ネットワークアドレス変換器、負荷分散装置、仮想私用ネットワーク（ＶＰＮ）ゲートウェイ、動的ホスト構成プロトコル（ＤＨＣＰ）ルータなどのような、クラウド顧客にネットワークサービスを提供するように構成されたハードウェア及び／またはソフトウェアを備える、１つ以上のネットワーク要素４０５（例えば、ネットワークサービスプロバイダ）を含んでもよい。クラウド区域４０１〜４０２における記憶リソースは、記憶ディスク（例えば、ソリッドステートドライブ（ＳＳＤ）、磁気ハードディスクなど）及び他の記憶装置を含んでもよい。
【００５８】
図４に示されるクラウドコンピューティング環境例はまた、仮想マシンを作成及び管理し、クラウドの物理的リソースを使用して顧客に他のサービスを提供するように構成された追加のハードウェアリソース及び／またはソフトウェアリソースを有する仮想化層（例えば、図１〜３に示されるように）を含んでもよい。仮想化層は、図３において上述されたように、ネットワーク仮想化、記憶装置仮想化などを提供するために他の構成要素を伴う、ハイパーバイザを含んでもよい。仮想化層は、物理的リソースから別個の層であってもよく、または物理的リソースと同じハードウェアリソース及び／またはソフトウェアリソースのうちのいくつかもしくはすべてを共有してもよい。例えば、仮想化層は、物理的コンピューティングリソースを有する仮想化サーバ４０３の各々においてインストールされたハイパーバイザを含んでもよい。知られたクラウドシステム、例えば、ＷＩＮＤＯＷＳ（登録商標）  ＡＺＵＲＥ（Ｒｅｄｍｏｎｄ  ＷａｓｈｉｎｇｔｏｎのＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎ）、ＡＭＡＺＯＮ  ＥＣ２（Ｓｅａｔｔｌｅ，ＷａｓｈｉｎｇｔｏｎのＡｍａｚｏｎ．ｃｏｍ  Ｉｎｃ．）、ＩＢＭ  ＢＬＵＥ  ＣＬＯＵＤ（Ａｒｍｏｎｋ，Ｎｅｗ  ＹｏｒｋのＩＢＭ  Ｃｏｒｐｏｒａｔｉｏｎ）、または他のものが、これに代えて使用されてもよい。
【００５９】
例証的な実施形態
本開示の様々な態様の提供及び／または実装に使用され得るコンピューティングアーキテクチャの数個の例示が述べられてきたが、複数の実施形態がここで、より詳細に述べられることになる。特に、かつ上で導入されたように、本開示のいくつかの態様は、概して、マシンレベルアイソレーションを有するマルチテナントマルチセッションカタログに関する。以下の説明において、マシンレベルアイソレーションを有するカタログが１つ以上の実施形態によって作成及び維持され得るやり方を例証する様々な例示が述べられることになる。
【００６０】
図５は、マシンレベルアイソレーションを有するマルチテナントマルチセッションカタログを作成及び管理するために使用され得る例証的なシステムアーキテクチャを図示する。図５に見られるように、クライアント装置５１５及び５２５は、クラウドサービスプロバイダ５４０のホストサーバ５４５にアクセスするために仲介サーバ５４２と通信し得る。図５において図示されるシステムのアーキテクチャは、図４を参照して上記で説明されたクラウドコンピューティング環境４００のアーキテクチャに関する多くの点で同様であり、上記で述べられていない追加の特性を含んでもよい。図４を参照して上記で説明されたクラウドコンピューティング環境４００の構成要素のうちのいくつかは、簡潔性のために省略されている。
【００６１】
コンピューティング環境５００は、１つ以上のテナントを含み得る。例えば、コンピューティング環境５００は、第１のテナント５１０（これは、例えば、第１の事業体であり得、クラウドサービスプロバイダ５４０によって提供されるソフトウェアサービスに加入していてもよい）、及び第２のテナント５２０（これは、例えば、第１の事業体とは異なる第２の事業体であり得、第１のテナント５１０と同一のクラウドサービスプロバイダ５４０によって提供されるソフトウェアサービスに加入していてもよい）などの１つ以上のテナントを含み得る。第１のテナント５１０は、１つ以上のクライアント装置５１５を介してクラウドサービスプロバイダ５４０に接続することを許容され得る１つ以上の事業体ユーザを含み得る。同様に、第２のテナント５２０は、１つ以上のクライアント装置５２５を介してクラウドサービスプロバイダ５４０に接続することを許容され得る１つ以上の事業体ユーザを含み得る。クライアント機器５１５及び５２５は、１つ以上のユーザインターフェースを介して入力を受信及び処理すること、１つ以上のユーザインターフェースを介して出力を提供すること、かつ入力、出力、ならびに／または１つ以上の他のコンピューティング装置に対する及び／もしくはこれらからの他の情報を通信することが可能な任意のタイプのコンピューティング装置であり得る。例えば、クライアント装置５１５及び５２５は、サーバコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、スマートフォンなどであり得る。加えて、クライアント装置５１５及び５２５は、図１、２及び４を参照して上記で説明されたコンピューティング装置（例えば、装置１０３、１０５、１０７、１０９、２４０及び４１１〜４１４）のうちの１つであり得る。
【００６２】
コンピューティング装置５００はまた、１つ以上のネットワークを含み得、これは、クライアント装置５１５のうちの１つ以上、クライアント装置５２５のうちの１つ以上、仲介サーバ５４２、及びホストサーバ５４５のうちの１つ以上と相互接続し得る。例えば、コンピューティング環境５００は、ネットワーク５３０を含み得、１つ以上の私用ネットワーク（これは、例えば、クラウドサービスプロバイダ５４０を動作する組織によって動作されるか及び／またはこれと関連付けられ、１つ以上のローカルエリアネットワーク、広域ネットワーク、仮想私用ネットワークなどを含み得る）及び／または１つ以上の公共のネットワーク（例えば、インターネット）を含み得る。
【００６３】
図５を参照すると、通信環境５００は、クラウドサービスプロバイダ５４０を含み得る。クラウドサービスプロバイダ５４０は、テナント、または加入者、１つ以上のソフトウェアサービスを提案し得る。クラウドサービスプロバイダ５４０は、１つ以上のホストサーバ５４５を備えるカタログ上で１つ以上のソフトウェアアプリケーション及びサービスをインストール、動作、維持、及び更新し、これらのソフトウェアアプリケーション及びサービスを１つ以上のテナントのユーザに配信し得る。カタログのホストサーバ５４５の各々は、単一サーバもしくはマルチサーバシステム、またはクラウド基盤システムであり得、図４を参照して上記で説明されたように、少なくとも１つの仮想化サーバを含む。ホストサーバ５４５は、１つ以上のリモートデスクトップサービス（ＲＤＳ）を１人以上のユーザに同時に展開可能なマルチセッションサーバとして構成され得る。マルチセッションホストサーバ５４５は、マルチインスタンスまたはセッションが分離して保持されることを許容し、それによって、ユーザの行動が他のユーザの体験に影響を与えないことになり得る。例えば、１つの実施形態において、Ｆｏｒｔ  Ｌａｕｄｅｒｄａｌｅ，ＦｌｏｒｉｄａのＣｉｔｒｉｘ  Ｓｙｓｔｅｍｓ，Ｉｎｃ．によって製造されたＸＥＮＡＰＰは、本明細書で説明された１つ以上の機能を提供するように適合され得る。以下により詳細に説明されるように、ユーザが属するテナント組織に基づいてユーザをホストサーバ５４５に分離することによって、さらなるセキュリティが実現され得る。例えば、いったんホストサーバ５４５が第１のテナント５１０に割り当てられると、第１のテナント５１０からのユーザのみがホストサーバ５４５に接続され得る。第１のテナント５１０に割り当てられたホストサーバ５４５に接続し得る、任意の他のテナント、例えば、第２のテナント５２０からのユーザはいない。いくつかの実施形態において、物理マシンを特定のテナントに割り当てること、及びその特定のテナントのユーザのみを特定の物理マシンによってホスティングされたホストサーバ５４５に接続することによって、さらなるアイソレーションが実現され得る。例えば、いったん物理マシンが第１のテナント５１０に割り当てられると、第１のテナント５１０からのユーザのみが物理マシンによってホスティングされたホストサーバ５４５のうちのいずれかに接続され得る。第１のテナント５１０に割り当てられた物理マシンによってホスティングされたホストサーバ５４５に接続し得る、任意の他のテナント、例えば、第２のテナント５２０からのユーザはいない。
【００６４】
クラウドサービスプロバイダ５４０のうちの１つ以上のテナント（例えば、５１０及び５２０）は、所定の数のホストサーバ５４５がテナントの組織からのユーザに利用可能とされることを要求し得る。要求に応答して、クラウドサービスプロバイダ５４０は、総合的なテナントホストサーバ要求の合計未満である複数のホストサーバ５４５を含むカタログを作成するように構成され得る。つまり、クラウドサービスプロバイダ５４０は、要求されたサーバの総数に等しい数のホストサーバ５４５を提供するのではなく、総合的な加入済みテナントのピーク需要をカバーするために十分な数のホストサーバ５４５のみを提供し得る。例えば、第１のテナント５１０及び第２のテナント５２０は、２つのテナントのサーバ容量ニーズが単一２４時間サイクルの間で交替するように、２つの異なる時間帯に位置し得る。別の例示において、第１のテナント５１０及び第２のテナント５２０は、両方共、クラウドサービスプロバイダ５４０から１，０００のサーバ（合計２，０００のサーバ）を要求され得る。しかしながら、ピーク需要において、第１のテナント５１０及び第２のテナント５２０は、合計１，５００のサーバのみを要求し得る。したがって、クラウドサービスプロバイダ５４０は、加入済みソフトウェアサービスを第１のテナント５１０及び第２のテナント５２０に配信するために、２，０００のサーバではなく、１，５００のホストサーバ５４５を提供し得る。
【００６５】
クラウドサービスプロバイダ５４０は、仲介サーバ５４２を含み得る。仲介サーバ５４２は、単一サーバもしくはマルチサーバシステム、またはクラウド基盤システムであり得、図４を参照して上記で説明されたように、少なくとも１つの仮想化サーバを含む。仲介サーバは、１つ以上の処理装置、メモリ、及び１つ以上の通信インターフェース（図示せず）を含み得る。仲介サーバ５４２メモリは、１つ以上のプロセッサによって実行されたとき、クラウドサービスプロバイダ５４０に本明細書で説明された１つ以上の機能を実行することを行わせる命令を含む１つ以上のプログラムモジュールを記憶し得るか及び／またはそうでなければ含み得る。加えて、仲介サーバ５４２通信インターフェースは、クラウドサービスプロバイダ５４０とネットワーク５３０との間、及び仲介サーバ５４２と１つ以上のホストサーバ５４５との間の通信を支援するように構成された１つ以上のネットワークインターフェースであり得る。
【００６６】
仲介サーバ５４２は、１つ以上のホストサーバ５４５を作成及び管理し、かつ他のクラウド管理タスクを実行するように構成され得る。例えば、仲介サーバ５４２は、共通イメージを使用して１つ以上のホストサーバ５４５を初期化し得る。共通イメージは、オペレーティングシステム、アプリケーションプログラム、及びクラウドサービスプロバイダ５４０に加入したテナントに配信される他のソフトウェアを含み得る。このような実施形態において、クラウドサービスプロバイダ５４０は、同一オペレーティングシステムならびに一組のインストール済みアプリケーション及びソフトウェアサービスを備える類似のコンピューティング環境を第１のテナント５１０及び第２のテナント５２０のユーザに配信し得る。
【００６７】
仲介サーバ５４２は、クライアント装置（例えば、５１５及び５２５）とホストサーバ５４５との間の接続を仲介するようにさらに構成され得る。クライアント５１５及び５２５は、ネットワーク５３０を介して仲介サーバ５４２に接続し得、ホストサーバ５４５の１つ以上にアクセスを要求し得る。クライアント要求に応答して、仲介サーバ５４２は、１つ以上のホストサーバ５４５を１つ以上のテナントに割り当て、ユーザに対応するテナントに基づいてクライアント装置５１５及び５２５を割り当て済みホストサーバ５４５に接続し得る。言い換えると、仲介サーバ５４２は、第１のテナント５１０に対応する１つ以上のクライアント装置５１５からのログオン要求に応答して、１つ以上のホストサーバ５４５を第１のテナント５１０に割り当て、１つ以上のクライアント装置５１５を割り当て済みホストサーバ５４５に接続し得る。仲介サーバ５４２は、どの未割り当てホストサーバ５４５を第１のテナントに割り当てるかを判定するために１つ以上の条件を使用し得る。例えば、仲介サーバ５４２は、未割り当てのホストサーバ５４５のカタログから１つ以上のホストサーバ５４５をランダムに選択し得る。さらに、いったん第１のテナント５１０に割り当てられると、仲介サーバ５４２は、第２のテナント５２０に対応するクライアント装置５２５による割り当て済みホストサーバ５４５へのアクセスをブロックし得る。仲介サーバ５４２は、第１のテナント５１０に対応するクライアント装置５１５からのログオン要求に応答して第１のテナント５１０に割り当てられた１つ以上のホストサーバ５４５があるか否かを判定するように構成され得る。第１のテナント５１０に割り当てられた１つ以上のホストサーバ５４５がある場合、またはそのとき、仲介サーバ５４２は、割り当て済みホストサーバ５４５のいずれかが追加のユーザを受け入れるために十分な空き容量を有するか否かを判定し得る。十分な空き容量を有する割り当て済みホストサーバ５４５がない場合、またはそのとき、仲介サーバ５４２は、追加のホストサーバ５４５を第１のテナント５１０に割り当て、クライアント装置５１５を追加のホストサーバ５４５に接続し得る。しかしながら、十分な空き容量を有する少なくとも１つの割り当て済みホストサーバ５４５がある場合、またはそのとき、仲介サーバ５４２は、クライアント装置５１５を十分な空き容量を有する割り当て済みホストサーバ５４５のうちの１つに接続し得る。仲介サーバ５４２は、割り当て済みホストサーバ５４５のうちのどの１つをクライアント装置５１５に接続するかを判定するために１つ以上の条件を使用し得る。数個の可能な実施形態のうちの１つにおいて、仲介サーバ５４２は、クライアント装置５１５を最も大きな空き容量を有する割り当て済みホストサーバ５４５に接続し得る。別の実施形態において、仲介サーバ５４２は、クライアント装置５１５と接続する割り当て済みホストサーバ５４５を判定するためにロードバランシング技術を使用し得る。
【００６８】
ログオン要求に加えて、仲介サーバ５４２は、１つ以上のホストサーバ５４５に接続されたユーザからログオフ要求を受信し得る。ログオフ要求に応答して、仲介サーバ５４２は、ユーザを特定のホストサーバ５４５からログオフさせる。仲介サーバ５４２はまた、特定のホストサーバ５４５にログインしているユーザがいないか否かを判定するように構成され得る。特定のホストサーバ５４５がもはやユーザのログインが全くない場合、またはそのとき、仲介サーバ５４２は、特定のホストサーバ５４５を再イメージングし得る。例えば、仲介サーバ５４２は、両方共にＦｔ．Ｌａｕｄｅｒｄａｌｅ，ＦｌｏｒｉｄａのＣｉｔｒｉｘ  Ｓｙｓｔｅｍｓ，Ｉｎｃ．によって製造された、Ｃｉｔｒｉｘ  Ｐｒｏｖｉｓｉｏｎｉｎｇ  Ｓｅｒｖｉｃｅｓ（ＰＶＳ）及びＭａｃｈｉｎｅ  Ｃｒｅａｔｉｏｎ  Ｓｅｒｖｉｃｅｓ（ＭＣＳ）のようなサーバ提供技術を使用して、特定のホストサーバ５４５を再イメージングし得る。加えて、仲介サーバ５４２は、特定のホストサーバ５４５からテナント割り当てを除去し、特定のホストサーバ５４５を未割り当てのホストサーバ５４５のカタログに戻し得る。いったん特定のホストサーバ５４５が再イメージングされ、割り当て解除されると、特定のホストサーバ５４５は、任意のテナントに割り当てられ得、任意のユーザが、後続するログオン要求に応答してそのサーバに接続され得る。
【００６９】
さらに図５を参照すると、仲介サーバ５４２は、クラウドサービスプロバイダ５４０に加入したテナント間で共有され得る未割り当てのホストサーバ５４５の単一アイドルプールを維持するために拡張され得る。例えば、仲介サーバ５４２は、アイドルプールに保持されている所定の数を除いて、カタログにおけるすべての未割り当てのホストサーバ５４５の電源を切り得る。アイドルプールにおける未割り当てのホストサーバ５４５は、必要に応じて、クライアント装置（例えば、５１５及び５２５）からの後続するログオン要求に応答して利用可能とされ得る。
【００７０】
有利には、かつ上記でより詳細に例証されるように、マルチセッション（ＲＤＳ）ホストサーバ５４５は、１つ以上のリモートデスクトップサービス（ＲＤＳ）を１つ以上のユーザ装置（例えば、５１５及び５２５）に同時に展開し得、これによって、単一セッション（ＶＤＩ）サーバよりも安価なユーザあたりの費用を提案する。加えて、マルチテナントマルチセッションカタログは、一般的なＲＤＳサーバ配置とは異なるマシンレベルアイソレーションを提供する。さらに、クラウドサービスプロバイダ５４０は、本明細書で説明されたマルチテナントマルチセッションカタログの使用を介して、総合的に加入済みテナントによって要求されるものよりも少ないホストサーバ５４５を要求することによって、一般的な配置方法よりも費用節約を実現する。上記で説明されたように単一アイドルプールの使用を含むようにカタログを拡張することによって、さらなる節約が実現され得る。
【００７１】
図５は、使用されてもよいシステムアーキテクチャの単なる１つの例を例証し、当業者は、使用される特定のシステムアーキテクチャ及びコンピューティング装置が変化し得、本明細書でさらに説明されるように、それらが提供する機能性を伴うことを理解するであろう。例えば、仲介サーバ５４２によって提供されるサービスは、１つの場所におけるかまたは複数場所にわたって分散された、単一コンピューティング装置または複数コンピューティング装置上で実行され、通信ネットワークによって相互接続され得る。
【００７２】
図６は、１つ以上の例示実施形態による、マシンレベルアイソレーションを有するマルチテナントマルチセッションカタログを作成する方法を例証するフローチャートを図示する。図６及び本明細書で説明される他の同様の例示で示されるアルゴリズムは、図５で例証されたシステム、及び異なるアーキテクチャを有する他のシステム（例えば、図１〜４の全部または一部）などのコンピューティング環境において実行され得る。他の実施形態では、図６で例証される方法、及び／またはその１つ以上のステップは、非一時的なコンピュータ可読メモリなどのコンピュータ可読媒体において具現化されてもよい。
【００７３】
ステップ６１０において、クラウドサービスプロバイダ５４０のうちの１つ以上のテナント（例えば、５１０及び５２０）は、所定の数のホストサーバ５４５がテナントの組織からのユーザに利用可能とされることを要求し得る。
【００７４】
ステップ６２０において、クラウドサービスプロバイダ５４０は、総合的なホストサーバ要求の合計未満である複数のホストサーバ５４５を初期化し得る。つまり、クラウドサービスプロバイダ５４０は、要求されたサーバの総数に等しい数のホストサーバ５４５を提供するのではなく、総合的な加入済みテナントのピーク需要をカバーするために十分な数のホストサーバ５４５のみを提供し得る。クラウドサービスプロバイダ５４０は、ステップ６２０において、共通イメージを使用して１つ以上のホストサーバ５４５を初期化し得る。共通イメージは、オペレーティングシステム、アプリケーションプログラム、及びクラウドサービスプロバイダ５４０に加入したテナントに配信される他のソフトウェアを含み得る。ホストサーバ５４５は、１つ以上のリモートデスクトップサービス（ＲＤＳ）を１人以上のユーザに同時に展開可能なマルチセッションサーバとして構成され得る。マルチセッションホストサーバ５４５は、マルチインスタンスまたはセッションが分離して保持されることを許容し、それによって、ユーザの行動が他のユーザの体験に影響を与えないことになり得る。
【００７５】
ステップ６３０において、クラウドサービスプロバイダ５４０は、ステップ６２０で提供された初期化済みホストサーバ５４５のグループから未割り当てのホストサーバ５４５の単一カタログを作成し得る。クラウドサービスプロバイダ５４０は、本明細書で説明されたように、加入済みソフトウェアサービスをテナントに配信するために未割り当てのホストサーバ５４５のカタログを使用し得る。
【００７６】
図７は、１つ以上の例示実施形態による、マシンレベルアイソレーションを有するマルチテナントマルチセッションカタログによって、ユーザログオン要求に応答する方法を例証するフローチャートを図示する。図７及び本明細書で説明される他の同様の例示で示されるアルゴリズムは、図５で例証されたシステム、及び異なるアーキテクチャを有する他のシステム（例えば、図１〜４の全部または一部）などのコンピューティング環境において実行され得る。他の実施形態では、図７で例証される方法、及び／またはその１つ以上のステップは、非一時的なコンピュータ可読メモリなどのコンピュータ可読媒体において具現化されてもよい。
【００７７】
加入済みテナントからのユーザログオンリクエストに応答して、クラウドサービスプロバイダ５４０は、ステップ７１０において、ユーザに対応する加入済みテナントが１つ以上のホストサーバ５４５に割り当てられているか否かを判定し得る。
【００７８】
ステップ７１０において、加入済みテナントからのユーザログオンリクエストに応答して、クラウドサービスプロバイダ５４０は、特定のテナントに割り当てられた１つ以上のホストサーバ５４５があるか否かを判定し得る。特定のテナントに割り当てられたホストサーバ５４５がない場合、またはそのとき、クラウドサービスプロバイダ５４０は、ステップ７６０に進み得る。しかしながら、特定のテナントに割り当てられた１つ以上のホストサーバ５４５がある場合、またはそのとき、ステップ７３０において、クラウドサービスプロバイダ５４０は、ステップ７２０で示されるように、割り当て済みホストサーバ５４５のうちの１つ以上が追加のユーザを受け入れるために十分な空き容量を有するか否かを判定し得る。十分な空き容量を有する少なくとも１つの割り当て済みホストサーバ５４５がある場合、またはそのとき、クラウドサービスプロバイダ５４０は、ユーザを十分な空き容量を有する割り当て済みホストサーバ５４５のうちの１つに仲介し得、方法が終了する。クラウドサービスプロバイダ５４０は、十分な空き容量を有する割り当て済みホストサーバ５４５のうちのどの１つとの接続をユーザに仲介するかを判定するために１つ以上の条件を使用し得る。数個の可能な実施形態のうちの１つにおいて、クラウドサービスプロバイダ５４０は、ユーザを最も大きな空き容量を有する割り当て済みホストサーバ５４５に接続し得る。別の実施形態において、クラウドサービスプロバイダ５４０は、ユーザとの接続を仲介する割り当て済みホストサーバ５４５を判定するためにロードバランシング技術を使用し得る。
【００７９】
ステップ７４０において、十分な空き容量を有する割り当て済みホストサーバ５４５がない場合、またはそのとき、クラウドサービスプロバイダ５４０は、特定のテナントに割り当てられたホストサーバ５４５の数が特定のテナントによって要求されたサーバの数以上であるか否かを判定し得る。特定のテナントがその最大サーバ割り当てに達した場合、またはそのとき、ステップ７５０において、クラウドサービスプロバイダ５４０は、エラーメッセージによってユーザログオン要求に応答し得、方法が終了する。
【００８０】
ステップ７６０において、クラウドサービスプロバイダ５４０は、カタログが任意の未割り当てのホストサーバ５４５を含有するか否かを判定し得る。カタログが未割り当てのホストサーバ５４５を全く含有しない場合、またはそのとき、ステップ７９０において、クラウドサービスプロバイダ５４０は、エラーメッセージによってユーザログオン要求に応答し得、方法が終了する。しかしながら、カタログが少なくとも１つの未割り当てのホストサーバ５４５を含有する場合、ステップ７７０において、クラウドサービスプロバイダ５４０は、未割り当てのホストサーバ５４５を特定のテナントに割り当て得る。クラウドサービスプロバイダ５４０は、特定のテナントに割り当てる特定の未割り当てのホストサーバ５４５を判定するために１つ以上の条件を使用し得る。例えば、クラウドサービスプロバイダ５４０は、未割り当てのホストサーバ５４５のカタログから１つの未割り当てのホストサーバ５４５をランダムに選択し得る。ステップ７８０において、クラウドサービスプロバイダは、ユーザと新しく割り当てられたホストサーバ５４５との間の接続を仲介し得る。
【００８１】
図８は、１つ以上の例示実施形態による、マシンレベルアイソレーションを有するマルチテナントマルチセッションカタログによって、ユーザログオフ要求に応答する方法を例証するフローチャートを図示する。図８及び本明細書で説明される他の同様の例示で示されるアルゴリズムは、図５で例証されたシステム、及び異なるアーキテクチャを有する他のシステム（例えば、図１〜４の全部または一部）などのコンピューティング環境において実行され得る。他の実施形態では、図８で例証される方法、及び／またはその１つ以上のステップは、非一時的なコンピュータ可読メモリなどのコンピュータ可読媒体において具現化されてもよい。
【００８２】
ステップ８１０において、ログオフ要求に応答して、クラウドサービスプロバイダ５４０は、ユーザを特定のホストサーバ５４５からログオフさせる。ステップ８２０において、クラウドサービスプロバイダ５４０は、特定のホストサーバ５４５にログインしているユーザがいないか否かを判定し得る。特定のホストサーバ５４５がもはやユーザのログインが全くない場合、またはそのとき、クラウドサービスプロバイダ５４０は、ステップ８３０において示されるように、特定のホストサーバ５４５を再イメージングし得る。例えば、クラウドサービスプロバイダ５４０は、両方共にＦｔ．Ｌａｕｄｅｒｄａｌｅ，ＦｌｏｒｉｄａのＣｉｔｒｉｘ  Ｓｙｓｔｅｍｓ，Ｉｎｃ．によって製造された、Ｃｉｔｒｉｘ  Ｐｒｏｖｉｓｉｏｎｉｎｇ  Ｓｅｒｖｉｃｅｓ（ＰＶＳ）及びＭａｃｈｉｎｅ  Ｃｒｅａｔｉｏｎ  Ｓｅｒｖｉｃｅｓ（ＭＣＳ）のようなサーバ提供技術を使用して、特定のホストサーバ５４５を再イメージングし得る。ステップ８４０において、クラウドサービスプロバイダ５４０は、テナント割り当てを特定のホストサーバ５４５から除去し得る。ステップ８５０において、クラウドサービスプロバイダ５４０は、特定のホストサーバ５４５を未割り当てのホストサーバ５４５のカタログに戻し得る。いったん特定のホストサーバ５４５が再イメージングされ、割り当て解除されると、特定のホストサーバ５４５は、任意のテナントに割り当てられ得、任意のユーザが、後続するログオン要求に応答してそのサーバに接続され得る。
【００８３】
主題は、構造的特徴及び／または方法的な作用に特化した言語で説明されてきたが、付属の請求項において定義された主題は、上記で説明された特定の機能または作用に必ずしも限定されないことが理解されるべきである。むしろ、上記で説明された特定の特徴及び作用は、下記の請求項の例示の実施として説明される。
【００８４】
関連出願の相互参照
本出願は、２０１５年１０月１９日に出願され「ＭＵＬＴＩ−ＴＥＮＡＮＴ  ＭＵＬＴＩ−ＳＥＳＳＩＯＮ  ＣＡＴＡＬＯＧＳ  ＷＩＴＨ  ＭＡＣＨＩＮＥ−ＬＥＶＥＬ  ＩＳＯＬＡＴＩＯＮ」と題された米国非仮出願第１４／８８６，２１７号の優先権を主張するものである。当該出願は、その全体が参照により本明細書に組み込まれる。
【図１】
2019500666.tif 000003
【図２】
2019500666.tif 000004
【図３】
2019500666.tif 000005
【図４】
2019500666.tif 000006
【図５】
2019500666.tif 000007
【図６】
2019500666.tif 000008
【図７】
2019500666.tif 000009
【図８】
2019500666.tif 000010
【国際調査報告】
2019500666.tif 000011
2019500666.tif 000012
2019500666.tif 000013