(57)【要約】  スケジュールされた非可用期間中に、認証されたユーザアカウントのサブセットへ、セッションサーバへのウェイクオンデマンド・アクセスを選択的に提供する方法は、サービス・ブローカ・マシンにより、クライアントマシンから少なくとも１つの資格認証情報を受信することを含む。サービス・ブローカ・マシンは、データベースから、少なくとも１つの資格認証情報に関連づけられる接続情報を要求する。サービス・ブローカ・マシンは、データベースから接続情報を受信する。サービス・ブローカ・マシンは、少なくとも１つの仮想リソースが非可用であると決定する。サービス・ブローカ・マシンは、受信される資格認証情報が、クライアントマシンのユーザが少なくとも１つの非可用仮想リソースの再起動を要求することを認可されていることを示すかどうかを決定する。サービス・ブローカ・マシンは、少なくとも１つの非可用仮想リソースの再起動を指示する。サービス・ブローカ・マシンは、クライアントマシンへ接続情報を提供する。【選択図】図２Ａ
2020516982.tif 000002
【特許請求の範囲】
【請求項１】
スケジュールされた非可用期間中に、認証されたユーザアカウントのサブセットへ、セッションサーバへのウェイクオンデマンド・アクセスを選択的に提供する方法であって、
サービス・ブローカ・マシンにより、クライアントマシンから少なくとも１つの資格認証情報を受信することと、
前記サービス・ブローカ・マシンにより、データベースから、前記少なくとも１つの資格認証情報に関連づけられる接続情報を要求することと、
前記サービス・ブローカ・マシンにより、前記データベースから、接続情報を受信することであって、前記接続情報は、
Ｉ．データセンタの識別と、
ＩＩ．前記データセンタ内の少なくとも１つの仮想マシンの識別であって、前記少なくとも１つの仮想マシンは、（ｉ）第１の組織に関連づけられ、（ｉｉ）前記少なくとも１つの資格認証情報に関連づけられるユーザのために少なくとも１つの仮想リソースへのアクセスを提供するように指定され、かつ（ｉｉｉ）第２の組織に関連づけられる第２の仮想マシンをホストしかつ前記第２の組織のユーザへ共有セッションを提供する物理サーバ上で実行される、データセンタ内の少なくとも１つの仮想マシンの識別と、
ＩＩＩ．前記少なくとも１つの仮想マシンへの接続に用いるためのリソースユーザ名の識別と、を含むことと、
前記サービス・ブローカ・マシンにより、前記少なくとも１つの仮想リソースが非可用であると決定することと、
前記サービス・ブローカ・マシンにより、受信される前記資格認証情報が、ユーザが少なくとも１つの非可用仮想リソースの再起動を要求することを認証されていることを示すかどうかを決定することと、
前記サービス・ブローカ・マシンにより、少なくとも１つの前記非可用仮想リソースの再起動を指示することと、
前記サービス・ブローカ・マシンにより、前記クライアントマシンへ前記接続情報を提供することを含み、
前記物理サーバは、前記クライアントマシンと、前記接続情報に基づいて前記少なくとも１つの仮想リソースをユーザへ提供する前記少なくとも１つの仮想マシンとの接続を確立する、方法。
【請求項２】
前記少なくとも１つの仮想リソースが非可用であると決定することは、さらに、前記データベースから、前記少なくとも１つの仮想リソースが非可用であるという表示を受信することを含む、請求項１に記載の方法。
【請求項３】
前記少なくとも１つの仮想リソースが非可用であると決定することは、さらに、
前記少なくとも１つの仮想リソースがいつ非可用としてスケジュールされるかを決定するために、ポリシデータベースに問い合わせることと、
前記少なくとも１つの仮想リソースが非可用であると決定することを含む、請求項１に記載の方法。
【請求項４】
前記少なくとも１つの仮想リソースが非可用であると決定することは、さらに、
前記少なくとも１つの仮想リソースへのアクセスを提供するセッションサーバがいつ非可用としてスケジュールされるかを決定するために、ポリシデータベースに問い合わせることと、
前記セッションサーバが非可用であると決定することを含む、請求項１に記載の方法。
【請求項５】
前記サービス・ブローカ・マシンにより、前記少なくとも１つの非可用仮想リソースの再起動を指示することは、さらに、前記少なくとも１つの非可用仮想リソースへのアクセスを提供するセッションサーバの再起動を指示することを含む、請求項１に記載の方法。
【請求項６】
前記サービス・ブローカ・マシンにより、前記少なくとも１つの非可用仮想リソースの再起動を指示することは、さらに、前記少なくとも１つの非可用仮想リソースへのアクセスを提供するセッションサーバの再起動する命令をハイパーバイザへ送信することを含む、請求項１に記載の方法。
【請求項７】
前記接続情報を受信することは、さらに、前記データセンタに関連づけられるゲートウェイの識別を受信することを含む、請求項１に記載の方法。
【請求項８】
前記サービス・ブローカ・マシンが前記少なくとも１つの資格認証情報を受信した日付を識別するログを生成することをさらに含む、請求項１に記載の方法。
【請求項９】
前記クライアントマシンの識別子を記憶するログを生成することをさらに含む、請求項１に記載の方法。
【請求項１０】
前記クライアントマシンが前記サービス・ブローカ・マシンに接続したＩＰアドレスの識別子を記憶するログを生成することをさらに含む、請求項１に記載の方法。
【請求項１１】
前記少なくとも１つの資格認証情報を受信することは、さらに、前記クライアントマシンのユーザに関連づけられる生体情報を受信することを含む、請求項１に記載の方法。
【請求項１２】
前記少なくとも１つの資格認証情報を受信することは、さらに、パスワードを受信することを含む、請求項１に記載の方法。
【請求項１３】
複合利用仮想化環境において仮想リソースへのアクセスを提供するためのサービス・ブローカ・マシンであって、
（ｉ）クライアントマシンから少なくとも１つの資格認証情報を受信するためのウェブサービスを実行し、（ｉｉ）データベースから、前記少なくとも１つの資格認証情報に関連づけられる接続情報を要求し、かつ（ｉｉｉ）前記データベースから接続情報を受信する、ユーザ接続エンジンであって、前記接続情報は、
Ｉ．データセンタの識別と、
ＩＩ．前記データセンタ内の少なくとも１つの仮想マシンの識別であって、前記少なくとも１つの仮想マシンは、第１の組織に関連づけられ、前記少なくとも１つの資格認証情報に関連づけられるユーザのために少なくとも１つの仮想リソースへのアクセスを提供するように指定され、かつ第２の組織に関連づけられる第２の仮想マシンをホストしかつ前記第２の組織のユーザへ共有セッションを提供する物理サーバ上で実行される、データセンタ内の少なくとも１つの仮想マシンの識別と、
ＩＩＩ．前記少なくとも１つの仮想マシンへの接続に用いるためのリソースユーザ名の識別と、を含む、ユーザ接続エンジンと、
管理コンポーネントであって、（ｉ）プロビジョニングマシンへ、識別される少なくとも１つの仮想マシンをプロビジョニングする要求を送信し、前記要求は、プロビジョニングされるリソースのタイプの識別と、ユーザに関連づけられるユーザ情報とを含み、（ｉｉ）要求される前記少なくとも１つの仮想リソースが非可用であるという表示を受信し、（ｉｉｉ）受信される前記資格認証情報が、ユーザが前記少なくとも１つの非可用仮想リソースの再起動を要求することを認証されていることを示すかどうかを決定し、かつ（ｉｖ）前記少なくとも１つの非可用仮想リソースの再起動を指示する、管理コンポーネントと、
前記クライアントマシンへ前記接続情報を提供する送信機と、を備え、
前記物理サーバは、前記クライアントマシンと、前記接続情報に基づいて前記少なくとも１つの仮想リソースをユーザへ提供する前記少なくとも１つの仮想マシンとの接続を確立する、サービス・ブローカ・マシン。
【請求項１４】
前記接続情報は、前記データセンタに関連づけられるゲートウェイの識別を含む、請求項１３に記載のサービス・ブローカ・マシン。
【請求項１５】
前記サービス・ブローカ・マシンが前記少なくとも１つの資格認証情報を受信した日付を識別するログをさらに備える、請求項１３に記載のサービス・ブローカ・マシン。
【請求項１６】
前記クライアントマシンの識別子を記憶するログをさらに備える、請求項１３に記載のサービス・ブローカ・マシン。
【請求項１７】
前記クライアントマシンが前記サービス・ブローカ・マシンに接続したＩＰアドレスの識別子を記憶するログをさらに備える、請求項１３に記載のサービス・ブローカ・マシン。
【請求項１８】
前記少なくとも１つの資格認証情報は、さらに、前記クライアントマシンのユーザに関連づけられる生体情報を含む、請求項１３に記載のサービス・ブローカ・マシン。
【請求項１９】
前記少なくとも１つの資格認証情報は、さらにパスワードを含む、請求項１３に記載のサービス・ブローカ・マシン。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、リソースのプロビジョニング（ｐｒｏｖｉｓｉｏｎｉｎｇ）に関する。より具体的には、本明細書に記述する方法およびシステムは、計画された非可用期間（ｐｅｒｉｏｄ  ｏｆ  ｕｎａｖａｉｌａｂｉｌｉｔｙ、使用不可能な期間）中にユーザがセッションサーバを再起動（ｒｅａｃｔｉｖａｔｅ、再開）できるようにする機能に関する。
【背景技術】
【０００２】
セッションサーバは、多くの異なるユーザがリモート・アプリケーション・ワークロードを実行する目的でセッションサーバへ同時に接続することを許容するように構成されている、パーソナルコンピュータサーバのオペレーティングシステムである。各ユーザは、サーバシステムにインストールされている、またはサーバシステムにより管理される様々なアプリケーションおよびデータリソースにアクセスするための固有の特性および権限を有する個々のユーザアカウントを介して接続される。セッションサーバおよびセッションサーバ概念は、時として、コンピュータ処理時間が多くの異なるユーザ間で同時に共有されるメインフレームアーキテクチャと比較されてきた。セッションサーバは、従来、プライベートエンティティまたはホスティングエンティティにより、展開側が完全に所有する物理ハードウェア上で展開されてきた。このため、典型的には、計画（スケジュール）に従ってサーバの電源をオン、オフにすることの利点は、ほとんどなかった。セッションサーバは、それが仮想サーバであるとしても、典型的には、２４時間３６５日稼働する物理サーバ上で展開され、よって、従来、セッションサーバをオフにするコスト上の利点はなかった。システム環境は２４時間３６５日利用可能であるべきというエンドユーザの期待と相まって、管理者は、所定のシステムを常時オンに維持するというやむにやまれぬ状況にあった。
【０００３】
一部の、より最近の環境において、セッションサーバは、契約したサービスプロバイダが完全に統合されたアプリケーション生産性を提供し得る主要なツールとなっている。この動きは、使用していないときにサーバをオフにすることにほとんど、または全く利点がない資本設備の利用も開始しているが、最近の展開モデルは、シフトしていて、サービスプロバイダおよび企業のＩＴ管理者は、公開されている利用可能なクラウドベースのサービス（例えば、ＡＭＡＺＯＮ  ＷＥＢ  ＳＥＲＶＩＣＥＳ（ＡＷＳ）、ＧＯＯＧＬＥ  ＣＬＯＵＤ  ＰＬＡＴＦＯＲＭ、ＭＩＣＲＯＳＯＦＴ  ＡＺＵＲＥおよびＩＢＭ社のＳｏｆｔＬａｙｅｒが提供するもの等のプロダクトおよびサービスに基づくシステムを含む、但しこれらに限定されない「パブリッククラウド」と称され得る分散コンピューティングシステム）を使用することが多く、コストモデルは、典型的には、リソース消費の時間単位課金に移行している。その結果、現在は、サービススケジュール（例えば、サービス・レベル・アグリーメントに適合するスケジュールを含む）に従ってシステムをオン、オフにする重要なインセンティブが存在する。現在、システムの中には、管理者のワークロードを低減するために、自動化スケジューリングを活用するものがある。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、事前の合意によってもサービスが非可用である（ｕｎａｖａｉｌａｂｌｅ、私用できない）というマイナス面があり、一部のユーザは、これを不服として、切迫した、または緊急のニーズ、特定のプロジェクトに対する特別なニーズ、および個人的嗜好を含む様々な理由の何れかによってそのワークロードをオンにすることを求める。
【課題を解決するための手段】
【０００５】
発明の概要
本明細書に記述する方法およびシステムは、スケジュールの非可用期間中にワークロードへアクセスするフレキシブルさを求めるユーザニーズに対応する機能を提供する。このような機能は、セッションサーバに対するウェイクオンデマンド（ｗａｋｅ−ｏｎ−ｄｅｍａｎｄ）と称される場合がある。実施形態によっては、スケジュールされたサーバ状態を変更するための機能は、一般に利用可能にされる代わりに、特定の認可されたユーザが利用できるようにされる。サービスプロバイダがセッションコンピューティングを利用可能にするこれらの実施形態のうちの１つにおいては、変更を行うために、インターネット・アズ・ア・サービス（ＩａａＳ）のベンダからサービスプロバイダへ、かつこれに対応してサービスプロバイダからエンドカスタマへ追加料金が生じる。したがって、これらの実施形態のうちの別の実施形態において、ユーザは、このシステム変更を命令する権限を有する者を限定しかつ監査および課金を目的とするこの権限の実行を追跡することにより、利益を得る。
【０００６】
ある態様において、スケジュールされた非可用期間中に、認証されたユーザアカウントのサブセットへ、セッションサーバへのウェイクオンデマンド・アクセスを選択的に提供する方法は、サービス・ブローカ・マシン（ｓｅｒｖｉｃｅ  ｂｒｏｋｅｒ  ｍａｃｈｉｎｅ）により、クライアントマシンから少なくとも１つの資格認証情報（ｃｒｅｄｅｎｔｉａｌ  ｉｎｆｏｒｍａｔｉｏｎ）を受信することを含む。本方法は、サービス・ブローカ・マシンにより、データベースから、少なくとも１つの資格認証情報に関連づけられる接続情報を要求することを含む。本方法は、サービス・ブローカ・マシンにより、データベースから、データセンタの識別（ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）と、前記データセンタ内の少なくとも１つの仮想マシンの識別であって、前記少なくとも１つの仮想マシンは、（ｉ）第１の組織（ｏｒｇａｎｉｚａｔｉｏｎ）に関連づけられ、（ｉｉ）前記少なくとも１つの資格認証情報に関連づけられるユーザのために少なくとも１つの仮想リソース（ｖｉｒｔｕａｌ  ｒｅｓｏｕｒｃｅ）へのアクセスを提供するように指定され、かつ（ｉｉｉ）第２の組織に関連づけられる第２の仮想マシンをホストしかつ第２の組織のユーザへ共有セッションを提供する物理サーバ上で実行される、データセンタ内の少なくとも１つの仮想マシンの識別と、前記少なくとも１つの仮想マシンへの接続に用いるためのリソースユーザ名の識別と、を含む接続情報を受信することを含む。本方法は、サービス・ブローカ・マシンにより、少なくとも１つの仮想リソースが非可用であると決定することを含む。本方法は、サービス・ブローカ・マシンにより、受信される資格認証情報が、クライアントマシンのユーザが少なくとも１つの非可用仮想リソースの再起動を要求することを認証されていることを示すかどうかを決定することを含む。本方法は、サービス・ブローカ・マシンにより、少なくとも１つの非可用仮想リソースの再起動を指示することを含む。本方法は、サービス・ブローカ・マシンにより、クライアントマシンへ接続情報を提供することを含み、物理サーバは、クライアントマシンと、前記接続情報に基づいて少なくとも１つの仮想リソースをユーザへ提供する少なくとも１つの仮想マシンとの接続を確立する。
【０００７】
本開示の前述の、および他の目的、態様、特徴および利点は、添付の図面に関連して解釈される以下の説明を参照することによって、より明らかとなり、かつよりよく理解されるであろう。
【図面の簡単な説明】
【０００８】
【図１Ａ】本明細書に記述する方法およびシステムに関連して有用なコンピュータの実施形態を示すブロック図である。
【図１Ｂ】本明細書に記述する方法およびシステムに関連して有用なコンピュータの実施形態を示すブロック図である。
【図１Ｃ】本明細書に記述する方法およびシステムに関連して有用なコンピュータの実施形態を示すブロック図である。
【図１Ｄ】複数のネットワークがデータホスティング・サービスおよび配信サービスを提供する、システムの一実施形態を示すブロック図である。
【０００９】
【図２Ａ】複合利用サーバにおいて仮想リソースをプロビジョニングするためのシステムの一実施形態を示すブロック図である。
【００１０】
【図２Ｂ】複合利用サーバにおいて仮想リソースをプロビジョニングするためのシステムの一実施形態を示すブロック図である。
【００１１】
【図３Ａ】マルチテナント・ディレクトリ・サービス内に保護された組織ユニットを生成するための方法の一実施形態を示すフロー図である。
【００１２】
【図３Ｂ】複合利用仮想化環境において仮想リソースをプロビジョニングするための方法の一実施形態を示すフロー図である。
【００１３】
【図４】複合利用サーバにおける仮想リソースへのアクセスを提供するための方法の一実施形態を示すフロー図である。
【００１４】
【図５】認証されたユーザが利用できない仮想リソースをプロビジョニングするための方法の一実施形態を示すフロー図である。
【発明を実施するための形態】
【００１５】
一部の実施形態において、本明細書に記述する方法およびシステムは、セッションサーバへのウェイクオンデマンド・アクセスを提供するための機能を提供する。しかしながら、これらの方法およびシステムを詳述する前に、このような方法およびシステムが実装され得るネットワークについて説明する。
【００１６】
ここで、図１Ａを参照すると、ネットワーク環境の一実施形態が示されている。簡単に言えば、このネットワーク環境は、１つまたは複数のネットワーク１０４を介して１つまたは複数のリモートマシン１０６ａ〜１０６ｎ（一般に、サーバ１０６またはコンピューティングデバイス１０６とも称される）と通信する、１つまたは複数のクライアント１０２ａ〜１０２ｎ（一般に、ローカルマシン１０２、クライアント１０２、クライアントノード１０２、クライアントマシン１０２、クライアントコンピュータ１０２、クライアントデバイス１０２、コンピューティングデバイス１０２、エンドポイント１０２またはエンドポイントノード１０２とも称される）を含む。
【００１７】
図１Ａは、ネットワーク１０４をクライアント１０２とリモートマシン１０６との間に示しているが、クライアント１０２およびリモートマシン１０６は、同じネットワーク１０４上に存在してもよい。ネットワーク１０４は、企業イントラネット等のローカル・エリア・ネットワーク（ＬＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）またはインターネットやワールド・ワイド・ウェブ等の広域ネットワーク（ＷＡＮ）であることが可能である。実施形態によっては、クライアント１０２とリモートマシン１０６との間に複数のネットワーク１０４が存在する。これらの実施形態のうちの１つにおいて、ネットワーク１０４´（不図示）は、専用ネットワークであってもよく、かつネットワーク１０４は、公衆ネットワークであってもよい。これらの実施形態のうちの別の実施形態では、ネットワーク１０４´は、専用ネットワークであってもよく、かつネットワーク１０４´は、公衆ネットワークであってもよい。さらに別の実施形態では、ネットワーク１０４および１０４´が共に専用ネットワークであってもよい。さらに別の実施形態では、ネットワーク１０４および１０４´が共に公衆ネットワークであってもよい。
【００１８】
ネットワーク１０４は、あらゆるタイプおよび／または形態のネットワークであってもよく、かつポイントツーポイント・ネットワーク、放送ネットワーク、ＷＡＮ、ＬＡＮ、電気通信ネットワーク、データ通信ネットワーク、コンピュータネットワーク、ＡＴＭ（非同期転送モード）ネットワーク、ＳＯＮＥＴネットワーク（同期型光ネットワーク）、ＳＤＨ（同期デジタル階層）ネットワーク、無線ネットワークおよび有線ネットワーク、のうちの何れを含んでもよい。実施形態によっては、ネットワーク１０４は、赤外線チャネルまたは衛星帯域等の無線リンクを含んでもよい。ネットワーク１０４のトポロジーは、バス、星形またはリングネットワークトポロジーであってもよい。ネットワーク１０４は、本明細書に記述する動作をサポートできる、一般的な当業者に知られているような任意のネットワークトポロジーであってもよい。ネットワークは、モバイルデバイス（概して、タブレットおよびハンドヘルドデバイスを含む）間の通信に使用される、ＡＭＰＳ、ＴＤＭＡ、ＣＤＭＡ、ＧＳＭ、ＧＰＲＳまたはＵＭＴＳを含む１つまたは複数の任意のプロトコルを利用する携帯電話ネットワークを含んでもよい。実施形態によっては、異なるタイプのデータが異なるプロトコルを介して伝送されてもよい。他の実施形態では、同じタイプのデータが異なるプロトコルを介して伝送されてもよい。
【００１９】
クライアント１０２およびリモートマシン１０６（概して、コンピューティングデバイス１００と称される）は、任意のワークステーション、デスクトップコンピュータ、ラップトップまたはノートブックコンピュータ、サーバ、ポータブルコンピュータ、携帯電話または他のポータブル電気通信デバイス、メディア再生デバイス、ゲーミングシステム、モバイル・コンピューティング・デバイス、または、任意のタイプおよび形態のネットワーク上で通信できかつ本明細書に記述する動作を実行するに足るプロセッサ電力およびメモリ容量を有する他の任意のタイプおよび／または形態のコンピューティング、電気通信またはメディアデバイスであることが可能である。クライアント１０２は、任意のタイプおよび／または形態のウェブブラウザ、ウェブベースのクライアント、クライアント−サーバアプリケーション、ＡｃｔｉｖｅＸコントロールまたはＪａｖａアプレット、または、クライアント１０２上で実行できる他の任意のタイプおよび／または形態の実行可能命令を含む、但しこれらに限定されない任意のタイプおよび／または形態のソフトウェア、プログラムまたは実行可能命令であり得るアプリケーションを実行し、操作し、または別段で提供してもよい。
【００２０】
ある実施例において、コンピューティングデバイス１０６は、ウェブサーバの機能を提供する。実施形態によっては、ウェブサーバ１０６は、メリーランド州フォレストヒル所在のＡｐａｃｈｅソフトウェア財団により保全されるＡＰＡＣＨＥサーバ等のオープンソースのウェブサーバを含む。他の実施形態において、ウェブサーバは、ワシントン州レドモンド所在のマイクロソフト社が提供するインターネット情報サービスプロダクト、カリフォルニア州レッドウッドショアーズ所在のオラクル社が提供するＯｒａｃｌｅ  ｉＰｌａｎｅｔウェブ・サーバ・プロダクトまたはカリフォルニア州サンタクララ所在のＢＥＡシステムズが提供するＢＥＡ  ＷＥＢＬＯＧＩＣプロダクト等の独自仕様のソフトウェアを実行する。
【００２１】
実施形態によっては、システムは、複数の論理的にグループ化されるリモートマシン１０６を含んでもよい。これらの実施形態のうちの１つにおいて、リモートマシンの論理グループは、サーバファーム３８と称されてもよい。これらの実施形態のうちの別の実施形態において、サーバファーム３８は、単一のエンティティとして管理されてもよい。
【００２２】
図１Ｂおよび図１Ｃは、クライアント１０２またはリモートマシン１０６の実施形態の実施に有用なコンピューティングデバイス１００を示すブロック図である。図１Ｂおよび図１Ｃに示されているように、各コンピューティングデバイス１００は、中央処理装置１２１と、主記憶装置１２２とを含む。図１Ｂに示されているように、コンピューティングデバイス１００は、ストレージデバイス１２８と、インストールデバイス１１６と、ネットワークインタフェース１１８と、Ｉ／Ｏコントローラ１２３と、ディスプレイデバイス１２４ａ〜ｎと、キーボード１２６と、マウス等のポインティングデバイス１２７と、１つまたは複数の他のＩ／Ｏデバイス１３０ａ〜ｎとを含んでもよい。ストレージデバイス１２８は、オペレーティングシステムと、ソフトウェアとを含んでもよいが、これらに限定されない。図１Ｃに示されているように、各コンピューティングデバイス１００は、メモリポート１０３、ブリッジ１７０、１つまたは複数の入／出力デバイス１３０ａ〜１３０ｎ（概して、参照数字１３０を用いて参照される）および中央処理装置１２１と通信するキャッシュメモリ１４０等の任意選択のエレメントも、追加して含んでもよい。
【００２３】
中央処理装置１２１は、主記憶装置１２２からフェッチされる命令に応答しかつこれを処理する任意の論理回路である。多くの実施形態において、中央処理装置１２１は、カリフォルニア州マウンテンビュー所在のインテル社製のもの、イリノイ州シャンバーグ所在のモトローラ社製のもの、カリフォルニア州サンタクララ所在のトランスメタ社製のもの、ニューヨーク州ホワイトプレーンズ所在のインターナショナルビジネスマシンズ製のもの、またはカリフォルニア州サニーベール所在のアドバンストマイクロデバイシーズ製のもの等の、マイクロプロセッサユニットによって提供される。他の例には、ＳＰＡＲＣプロセッサ、ＡＲＭプロセッサ、ＵＮＩＸ／ＬＩＮＵＸボックスの構築に使用されるプロセッサ、およびモバイルデバイス用プロセッサが含まれる。コンピューティングデバイス１００は、これらのプロセッサの何れかに基づく、または本明細書に記述しているように動作することができる他の如何なるプロセッサに基づくものであってもよい。
【００２４】
主記憶装置１２２は、データを記憶することができかつ任意の記憶場所へマイクロプロセッサ１２１が直にアクセスできるようにする１つまたは複数のメモリチップであってもよい。主記憶装置１２２は、本明細書で記述しているように動作することができる任意の利用可能なメモリチップを基礎とするものであってもよい。図１Ｂに示されている実施形態において、プロセッサ１２１は、システムバス１５０を介して主記憶装置１２２と通信する。図１Ｃは、プロセッサ１２１がメモリポート１０３を介して主記憶装置１２２と直に通信するコンピューティングデバイス１００の一実施形態を示す。図１Ｃは、メインプロセッサ１２１（ｍａｉｎ  ｐｒｏｃｅｓｓｏｒ）が、バックサイドバスと称されることもある二次バスを介してキャッシュメモリ１４０と直に通信する一実施形態も示している。他の実施形態において、メインプロセッサ１２１は、キャッシュメモリ１４０とシステムバス１５０を用いて通信する。
【００２５】
図１Ｂに示されている実施形態において、プロセッサ１２１は、ローカル・システム・バス１５０を介して様々なＩ／Ｏデバイス１３０と通信する。中央処理装置１２１と任意のＩ／Ｏデバイス１３０との接続は、ＶＥＳＡ  ＶＬバス、ＩＳＡバス、ＥＩＳＡバス、ＭｉｃｒｏＣｈａｎｎｅｌアーキテクチャ（ＭＣＡ）バス、ＰＣＩバス、ＰＣＩ−Ｘバス、ＰＣＩ−ＥｘｐｒｅｓｓバスまたはＮｕＢｕｓを含む様々なバスを用いて行われてもよい。Ｉ／Ｏデバイスがビデオディスプレイ１２４である実施形態の場合、プロセッサ１２１は、アドバンスト・グラフィクス・ポート（ＡＧＰ）を用いてディスプレイ１２４と通信してもよい。図１Ｃは、メインプロセッサ１２１が、例えば、ＨＹＰＥＲＴＲＡＮＳＰＯＲＴ、ＲＡＰＩＤＩＯまたはＩＮＦＩＮＩＢＡＮＤ通信技術を介してＩ／Ｏデバイス１３０ｂと直に通信するコンピュータ１００の一実施形態も示している。
【００２６】
コンピューティングデバイス１００内には、多種多様なＩ／Ｏデバイス１３０ａ−１３０ｎが存在し得る。入力デバイスには、キーボード、マウス、トラックパッド、トラックボール、マイクロフォン、スキャナ、カメラおよび描画タブレットが含まれる。出力デバイスには、ビデオディスプレイ、スピーカ、インクジェットプリンタ、レーザプリンタおよび昇華型プリンタが含まれる。Ｉ／Ｏデバイスは、図１Ｂに示されているように、Ｉ／Ｏコントローラ１２３により制御されてもよい。さらに、Ｉ／Ｏデバイスは、コンピューティングデバイス１００のためのストレージおよび／またはインストール媒体１１６を提供する場合もある。実施形態によっては、コンピューティングデバイス１００は、カリフォルニア州ロスアラミトス所在のツインテックインダストリ社が製造するデバイスのＵＳＢフラッシュドライブライン等のハンドヘルドＵＳＢストレージデバイスを受け入れるＵＳＢ接続部（不図示）を提供してもよい。
【００２７】
引き続き図１Ｂを参照すると、コンピューティングデバイス１００は、３．５インチ、５．２５インチのディスク、またはＺＩＰディスク等のフロッピーディスクを受け入れるためのフロッピー・ディスク・ドライブ、ＣＤ−ＲＯＭドライブ、ＣＤ−Ｒ／ＲＷドライブ、ＤＶＤ−ＲＯＭドライブ、様々なフォーマットのテープドライブ、ＵＳＢデバイス、ハードドライブ、またはソフトウェアおよびプログラムのインストールに適する他の任意のデバイス等の、任意の適切なインストールデバイス１１６をサポートしてもよい。実施形態によっては、コンピューティングデバイス１００は、ネットワーク１０４を介してソフトウェアをインストールするための機能を提供してもよい。コンピューティングデバイス１００は、さらに、オペレーティングシステムおよび他のソフトウェアを記憶するための、１つまたは複数のハード・ディスク・ドライブまたは独立ディスクの冗長アレイ等のストレージデバイスを備えてもよい。あるいは、コンピューティングデバイス１００は、記憶に関して、ハードディスクではなくメモリチップに依存してもよい。
【００２８】
さらに、コンピューティングデバイス１００は、ネットワーク１０４に、標準的な電話回線、ＬＡＮまたはＷＡＮリンク（例えば、８０２．１１、Ｔ１、Ｔ３、５６ｋｂ、Ｘ．２５、ＳＮＡ、ＤＥＣＮＥＴ）、ブロードバンド接続（例えば、ＩＳＤＮ、フレームリレー、ＡＴＭ、ギガビットイーサネット、イーサネットオーバーＳＯＮＥＴ）、無線接続、または上記の何れかまたは全ての何らかの組合せを含む、但しこれらに限定されない様々な接続部を介してインタフェースするためのネットワークインタフェース１１８を含んでもよい。接続は、様々な通信プロトコル（例えば、ＴＣＰ／ＩＰ、ＩＰＸ、ＳＰＸ、ＮｅｔＢＩＯＳ、イーサネット、ＡＲＣＮＥＴ、ＳＯＮＥＴ、ＳＤＨ、ファイバ分散データインタフェース（ＦＤＤＩ）、ＲＳ２３２、ＩＥＥＥ８０２．１１、ＩＥＥＥ８０２．１１ａ、ＩＥＥＥ８０２．１１ｂ、ＩＥＥＥ８０２．１１ｇ、ＩＥＥＥ８０２．１１ｎ、８０２．１５．４、ＺＩＧＢＥＥ、ＣＤＭＡ、ＧＳＭ、ＷｉＭａｘおよび直接非同期接続）を用いて確立されることが可能である。ある実施形態において、コンピューティングデバイス１００は、他のコンピューティングデバイス１００´と、任意のタイプおよび／または形態のゲートウェイ、またはセキュア・ソケット・レイヤ（ＳＳＬ）またはトランスポート・レイヤ・セキュリティ（ＴＬＳ）等のトンネリングプロトコルを介して通信する。ネットワークインタフェース１１８は、内蔵ネットワークアダプタ、ネットワーク・インタフェース・カード、ＰＣＭＣＩＡネットワークカード、カード・バス・ネットワーク・アダプタ、無線ネットワークアダプタ、ＵＳＢネットワークアダプタ、モデム、または、コンピューティングデバイス１００を、本明細書に記述する動作を通信しかつ実行できる任意タイプのネットワークへインタフェースすることに適する他の任意のデバイスを備えてもよい。
【００２９】
実施形態によっては、コンピューティングデバイス１００は、各々が同じ、または異なるタイプおよび／または形態であり得る複数のディスプレイデバイス１２４ａ〜１２４ｎを備えてもよく、またはこれらへ接続されてもよい。したがって、Ｉ／Ｏデバイス１３０ａ〜１３０ｎのうちの何れか、および／またはＩ／Ｏコントローラ１２３は、コンピューティングデバイス１００による複数のディスプレイデバイス１２４ａ〜１２４ｎの接続および使用を支援し、有効化し、または提供するために、任意のタイプおよび／または形態の適切なハードウェア、ソフトウェアまたはハードウェアおよびソフトウェアの組合せを備えてもよい。一般的な当業者には、コンピューティングデバイス１００が複数のディスプレイデバイス１２４ａ〜１２４ｎを有するように構成され得る様々な方法および実施形態が認識されかつ理解されるであろう。
【００３０】
さらなる実施形態において、Ｉ／Ｏデバイス１３０は、システムバス１５０と、ＵＳＢバス、アップル・デスクトップ・バス、ＲＳ−２３２シリアル接続、ＳＣＳＩバス、ＦｉｒｅＷｉｒｅバス、ＦｉｒｅＷｉｒｅ８００バス、イーサネットバス、ＡｐｐｌｅＴａｌｋバス、ギガビット・イーサネット・バス、非同期転送モードバス、ＨＩＰＰＩバス、スーパーＨＩＰＰＩバス、ＳｅｒｉａｌＰｌｕｓバス、ＳＣＩ／ＬＡＭＰバス、ＦｉｂｒｅＣｈａｎｎｅｌバスまたはシリアル接続の小型コンピュータ・システム・インタフェース・バス等の外部通信バスとの間のブリッジであってもよい。
【００３１】
図１Ｂおよび図１Ｃに示されている類のコンピューティングデバイス１００は、典型的には、タスクのスケジューリングおよびシステムリソースへのアクセスを制御するオペレーティングシステムの制御下で動作する。コンピューティングデバイス１００は、任意のバージョンのＭＩＣＲＯＳＯＦＴ  ＷＩＮＤＯＷＳオペレーティングシステム、異なるリリースのＵｎｉｘおよびＬｉｎｕｘオペレーティングシステム、Ｍａｃｉｎｔｏｓｈコンピュータ用の任意バージョンのＭＡＣ  ＯＳ、任意の内蔵オペレーティングシステム、任意のリアルタイムのオペレーティングシステム、任意のオープンソースのオペレーティングシステム、任意の独自仕様のオペレーティングシステム、モバイル・コンピューティング・デバイス用の任意のオペレーティングシステム、または、コンピューティングデバイス上で実行されかつ本明細書に記述する動作を実行することが可能な他の任意のオペレーティングシステム等の、任意のオペレーティングシステムを実行していることが可能である。典型的なオペレーティングシステムには、とりわけ、その全てがワシントン州レドモンド所在のマイクロソフト社が製造するＷＩＮＤＯＷＳ３．ｘ、ＷＩＮＤＯＷＳ９５、ＷＩＮＤＯＷＳ９８、ＷＩＮＤＯＷＳ２０００、ＷＩＮＤＯＷＳ  ＮＴ３．５１、ＷＩＮＤＯＷＳ  ＮＴ４．０、ＷＩＮＤＯＷＳ  ＣＥ、ＷＩＮＤＯＷＳ  ＸＰ、ＷＩＮＤＯＷＳ７、ＷＩＮＤＯＷＳ８およびＷＩＮＤＯＷＳ  ＶＩＳＴＡ、カリフォルニア州クパチーノ所在のアップル社が製造するＭＡＣ  ＯＳ、ニューヨーク州アーモンク所在のインターナショナルビジネスマシンズが製造するＯＳ／２、ユタ州ソルトレイクシティ所在のカルデラ社が流通させる無料で利用可能なオペレーティングシステムであるＬｉｎｕｘ、英国ロンドン所在のカノニカル社が流通させる無料で利用可能なオペレーティングシステムであるＵｂｕｎｔｕ、またはあらゆるタイプおよび／または形態のＵｎｉｘオペレーティングシステムが含まれるが、この限りではない。
【００３２】
コンピューティングデバイス１００は、任意のワークステーション、デスクトップコンピュータ、ラップトップまたはノートブックコンピュータ、サーバ、ポータブルコンピュータ、携帯電話または他のポータブル電気通信デバイスまたはパーソナル・デジタル・アシスタント、メディア再生デバイス（デジタル・オーディオ・プレーヤ、ポータブル・メディア・プレーヤ、またはメディア再生機能を提供するコンピューティングデバイスを含むがこの限りではない）、ゲーミングシステム、モバイル・コンピューティング・デバイス、または、通信ができかつ本明細書に記述する動作を実行するに足るプロセッサ電力およびメモリ容量を有する他の任意のタイプおよび／または形態のコンピューティング、電気通信またはメディアデバイスであることが可能である。実施形態によっては、コンピューティングデバイス１００は、本デバイスに整合する異なるプロセッサ、オペレーティングシステムおよび入力デバイスを有してもよい。他の実施形態において、コンピューティングデバイス１００は、デジタル・オーディオ・プレーヤまたはポータブル・メディア・プレーヤと組み合わされる携帯電話等の、デバイスの組合せを備える。
【００３３】
次に、図１Ｄを参照すると、複数のネットワークがホスティングおよび配信サービスを提供する、システムの一実施形態のブロック図が示されている。簡単に言えば、本システムは、クラウドサービスおよびホスティングインフラストラクチャ１８０と、サービスプロバイダのデータセンタ１８２と、情報技術（ＩＴ）ネットワーク・サービス・センタ１８４とを含む。
【００３４】
ある実施形態において、データセンタ１８２は、サーバ（例えば、アプリケーションサーバ、ファイルサーバ、データベースおよびバックアップサーバを含む）、ルータ、スイッチおよび電気通信機器等の、但しこれらに限定されないコンピューティングデバイスを含む。別の実施形態において、クラウドサービスおよびホスティングインフラストラクチャ１８０は、ストレージシステム、データベース、アプリケーションサーバ、デスクトップサーバ、ディレクトリサービス、ウェブサーバ、ならびに遠隔に位置決めされるハードウェアおよびソフトウェアプラットフォームにアクセスするためのサービス、但しこれらに限定されない、へのアクセスを提供する。さらに他の実施形態において、クラウドサービスおよびホスティングインフラストラクチャ１８０は、データセンタ１８２を含む。しかしながら、他の実施形態において、クラウドサービスおよびホスティングインフラストラクチャ１８０は、第三者たるデータセンタ１８２により提供されるサービスに依存する。実施形態によっては、ＩＴネットワーク１０４ｃは、メールサービスおよびウェブサービス等のローカルサービスを提供してもよい。他の実施形態において、ＩＴネットワーク１０４ｃは、ローカルキャッシュバージョンの遠隔位置プリントサーバ、データベース、アプリケーションサーバ、デスクトップサーバ、ディレクトリサービスおよびウェブサーバ等の、ローカルバージョンの遠隔位置サービスを提供してもよい。さらなる実施形態では、クラウドサービスおよびホスティングインフラストラクチャ１８０、データセンタ１８２または他のネットワーク全体内に、インフラストラクチャ・サービスプロバイダ、アプリケーション・サービスプロバイダ、プラットフォーム・サービスプロバイダ、ツール・サービスプロバイダ、ウェブサイト・ホスティングサービスおよびデスクトップ・サービスプロバイダを含む、但しこれらに限定されない第三者たるサービスプロバイダによって提供されるもの等の追加的なサーバが存在する場合がある。
【００３５】
ある実施形態において、クライアント１０２のユーザは、遠隔に位置決めされるサーバ１０６ａにより提供されるサービスにアクセスする。例えば、企業ＩＴネットワーク・サービス・センタ１８４の管理者は、クライアント１０２ａのユーザが、リモートサーバ１０６ａで実行される仮想マシン上で実行されるアプリケーションにアクセスする、と決定する場合がある。別の例として、クライアント１０２ｂの個々のユーザは、遠隔に位置決めされるサーバ１０６により消費者へ提供されるリソース（電子メール、ファックス、音声または他の通信サービス、データ・バックアップ・サービスまたは他のサービス等）を用いてもよい。
【００３６】
図１Ｄに示されているように、データセンタ１８２およびクラウドサービスおよびホスティングインフラストラクチャ１８０は、データセンタ１８２およびクラウドサービスおよびホスティングインフラストラクチャ１８０によりサポートされる個人または組織から遠隔に位置決めされ、例えば、データセンタ１８２は、第１のネットワーク１０４ａに存在してもよく、かつクラウドサービスおよびホスティングインフラストラクチャ１８０は、第２のネットワーク１０４ｂに存在してもよく、一方で、ＩＴネットワーク１０４ｃは、別個の、第３のネットワーク１０４ｃである。他の実施形態において、データセンタ１８２およびクラウドサービスおよびホスティングインフラストラクチャ１８０は、第１のネットワーク１０４ａに存在し、かつＩＴネットワーク・サービス・センタ１８４は、別個の、第２のネットワーク１０４ｃである。さらに他の実施形態では、クラウドサービスおよびホスティングインフラストラクチャ１８０は、第１のネットワーク１０４ａに存在し、一方で、データセンタ１８２およびＩＴネットワーク・サービス・センタ１８４は、第２のネットワーク１０４ｃを形成する。図１Ｄは、サーバ１０６ａを１つ、サーバ１０６ｂを１つ、サーバ１０６ｃを１つ、クライアント１０２を２つ、およびネットワーク１０４を３つしか示していないが、本システムが、これらのコンポーネントの全てまたは各々を多数提供し得ることは、理解されるべきである。サーバ１０６、クライアント１０２およびネットワーク１０４は、図１Ａ〜図１Ｃに関連してこれまでに述べたように提供され得る。
【００３７】
したがって、実施形態によっては、ＩＴインフラストラクチャは、個人または企業が所有しかつ管理するネットワーク等の第１のネットワークから、第１のネットワークを所有または管理するエンティティとは別のエンティティが所有または管理し得る第２のネットワークへ拡張されてもよい。第２のネットワークにより提供されるリソースは、「クラウド内」にあるとも言える。クラウド常駐エレメントには、ストレージデバイス、サーバ、データベース、コンピューティング環境（仮想マシン、サーバおよびデスクトップを含む）およびアプリケーションが含まれ得るが、この限りではない。例えば、ＩＴネットワーク１８４は、遠隔に位置決めされるデータセンタ１８２を用いて、サーバ（例えば、アプリケーションサーバ、ファイルサーバ、データベースおよびバックアップサーバを含む）、ルータ、スイッチおよび電気通信機器を記憶してもよい。データセンタ１８２は、ＩＴネットワーク・サービス・センタ１８４により所有されかつ管理される場合もあれば、第三者たるサービスプロバイダ（たとえば、クラウドサービスおよびホスティングインフラストラクチャ・プロバイダを含む）が別のデータセンタ１８２へのアクセスを提供する場合もある。
【００３８】
実施形態によっては、顧客に代わってコンピューティングインフラストラクチャを提供する１つまたは複数のネットワークは、クラウドと称される。これらの実施形態のうちの１つにおいて、第１のネットワークのユーザが、リソースをホスティングできる抽象化されたスケーラブルで管理されるコンピューティングリソースのプールを含む少なくとも１つの第２のネットワークにアクセスするシステムは、クラウドコンピューティング環境と称され得る。これらの実施形態のうちの別の実施形態では、リソースには、仮想化技術、データ・センタ・リソース、アプリケーションおよび管理ツールが含まれ得るが、この限りではない。実施形態によっては、インターネットベースのアプリケーション（「ソフトウェア・アズ・ア・サービス」モデルを介して提供され得る）は、クラウドベースのリソースと称され得る。他の実施形態において、ユーザに、リモートサーバ、仮想マシンまたはブレードオンブレード・サーバ等のコンピューティングリソースを提供するネットワークは、コンピュートクラウドまたは「インフラストラクチャ・アズ・ア・サービス」（ＩａａＳ）プロバイダと称され得る。さらに他の実施形態において、ストレージ・エリア・ネットワーク等のストレージリソースを提供するネットワークは、ストレージクラウドと称され得る。さらなる実施形態において、リソースは、ローカルネットワークにキャッシュされ、かつクラウドに記憶されてもよい。
【００３９】
実施形態によっては、複数のリモートマシン１０６の一部または全てが、限定ではなく例として、ワシントン州シアトル所在のＡｍａｚｏｎ  Ｗｅｂ  Ｓｅｒｖｉｃｅｓ社、テキサス州サンアントニオ所在のＲａｃｋｓｐａｃｅ  ＵＳ社、ワシントン州レドモンド所在のＭｉｃｒｏｓｏｆｔ社およびカリフォルニア州マウンテンビュー所在のＧｏｏｇｌｅ社等の第三者たる企業からリースまたはレンタルされてもよい。他の実施形態では、全てのホスト１０６が、Ａｍａｚｏｎ  Ｗｅｂ  Ｓｅｒｖｉｃｅｓ社、Ｒａｃｋｓｐａｃｅ  ＵＳ社、Ｍｉｃｒｏｓｏｆｔ社およびＧｏｏｇｌｅ社を含む、但しこれらに限定されない第三者たる企業によって所有されかつ管理される。
【００４０】
コンピューティングリソースには、概して、ユーザマシン１００が直に、またはネットワーク１０４を介してアクセスし得る物理的または仮想化されたコンピューティングコンポーネントが含まれ得るが、この限りではない。例えば、限定ではなく、コンピューティングリソースには、図１Ａ〜図１Ｄに関連して先に述べたようなコンピュータ１００が含まれてもよい。さらなる例として、コンピューティングリソースには、物理コンピュータ、仮想コンピュータ、仮想コンピュータコンポーネント（ハードドライブ等）、物理コンピュータ（例として、ブレードオンブレード・サーバまたは他のタイプの共有または専用サーバを含む）、メモリ、ネットワークデバイス、データベース、入／出力システム、オペレーティング・システム・ソフトウェア、アプリケーションソフトウェアまたは任意のタイプのソフトウェアが含まれてもよい。他の実施形態において、コンピューティングリソースは、中間物として機能し、かつ他のリモートマシンへのアクセスを提供する。例えば、第１のコンピューティングリソースは、ネットワーク１０４を介して利用可能にされるソフトウェアを実行する第２のマシン１０６ｂへのアクセスを提供してもよく、例として、ソフトウェア・アズ・ア・サービスのプロバイダは、ユーザが第１のコンピューティングリソースを介してアクセスできる第２のマシン１０６ｂ上でソフトウェアを実行してもよい。
【００４１】
実施形態によっては、情報技術（ＩＴ）サービスプロバイダは、エンドユーザへサービスを提供する際に仮想リソースを活用する。このような実施形態は、典型的には、物理マシン（ホストマシンと呼ばれることもある）上で実行されるハイパーバイザ（ｈｙｐｅｒｖｉｓｏｒ）と称されるソフトウェアアプリケーションを使用して、物理ハードウェアを仮想化しかつホストマシンの仮想リソースと物理リソースとの間を仲介する。
【００４２】
（仮想化環境と呼ばれることもある）一部の環境において、マシン１０６は、ハイパーバイザ層と、仮想化層と、ハードウェア層とを含む。ハイパーバイザ層は、仮想化層で実行されている少なくとも１つの仮想リソースによる、ハードウェア層内の幾つかの物理リソース（例えば、プロセッサおよびディスク）へのアクセスを割り当てかつ管理するハイパーバイザを含む。仮想化層は、少なくとも１つのオペレーティングシステムと、この少なくとも１つのオペレーティングシステムへ割り当てられる複数の仮想リソースとを含む。仮想リソースには、複数の仮想プロセッサおよび仮想ディスク、ならびに仮想メモリおよび仮想ネットワークインタフェース等の仮想リソースが含まれ得るが、この限りではない。複数の仮想リソースおよびオペレーティングシステムは、仮想マシンと呼ばれることがある。実施形態によっては、単一のユーザが仮想マシンにアクセスし、例えば、「パワーユーザ」は、ユーザの要件を所与として、専用仮想マシンへのアクセスを有し得る。他の実施形態では、複数のユーザが仮想マシンへのアクセスを共有し、複数のユーザの各々が仮想マシンの１つまたは複数のリソースを実行する。サービスプロバイダがユーザに仮想デスクトップへのアクセスを与える一部の実施形態では、仮想マシンのリソースが１つまたは複数のソフトウェアアプリケーションを含んでもよい。仮想マシンのリソースは、ディレクトリサーバ、ホストサーバ、アプリケーションサーバ、ファイルサーバ、プロキシサーバ、ネットワークアプライアンス、ゲートウェイ、アプリケーションゲートウェイ、ゲートウェイサーバ、仮想化サーバ、展開サーバ、ＳＳＬ  ＶＰＮサーバ、ファイアウォール、ウェブサーバ、メールサーバ、セキュリティサーバ、データベースサーバまたは他の任意のサーバアプリケーションを含む、但しこれらに限定されない仮想サーバの機能も含み得る。
【００４３】
ハイパーバイザは、仮想リソースをオペレーティングシステムへ、物理デバイスへのアクセスを有するオペレーティングシステムをシミュレートするあらゆる方法で提供してもよい。ハイパーバイザは、仮想リソースを、ホストサーバ１０６上の任意の数の「ゲスト」オペレーティングシステムへ提供してもよい。実施形態によっては、コンピューティングデバイス１００は、１つまたは複数のタイプのハイパーバイザを実行する。これらの実施形態では、ハイパーバイザを用いて、仮想ハードウェアがエミュレートされ、物理ハードウェアが分割され、物理ハードウェアが仮想化され、かつコンピューティング環境へのアクセスを提供する仮想マシンが実行されてもよい。ハイパーバイザには、カリフォルニア州パロアルト所在のＶＭＷａｒｅ社が製造するもの、オープンソースであるＸｅｎ．ｏｒｇコミュニティがその展開を監視するオープンプロダクトであるＸＥＮハイパーバイザ、Ｍｉｃｒｏｓｏｆｔが提供するＨｙｐｅｒＶ、ＶｉｒｔｕａｌＳｅｒｖｅｒまたは仮想ＰＣハイパーバイザ、他が含まれ得る。
【００４４】
実施形態によっては、ハイパーバイザは、コンピューティングデバイス１００上で実行されるオペレーティングシステム内で実行される。これらの実施形態のうちの１つにおいて、オペレーティングシステムおよびハイパーバイザを実行するコンピューティングデバイス１００は、ホスト・オペレーティング・システム（コンピューティングデバイス１００上で実行されるオペレーティングシステム）と、ゲスト・オペレーティング・システム（ハイパーバイザにより提供されるコンピューティング・リソース・パーティション内で実行されるオペレーティングシステム）とを有するものとされ得る。他の実施形態では、ハイパーバイザは、ホスト・オペレーティング・システム上で実行される代わりに、コンピューティングデバイス上のハードウェアと直に相互作用する。これらの実施形態のうちの１つにおいて、ハイパーバイザは、コンピューティングデバイスを備えるハードウェアを指す「ベアメタル」上で実行されているとされ得る。
【００４５】
実施形態によっては、ハイパーバイザは、コンピューティングデバイス１００上で実行される仮想マシンのプロセッサスケジューリングおよびメモリ分割を制御する。これらの実施形態のうちの１つにおいて、ハイパーバイザは、少なくとも１つの仮想マシンの実行を制御する。これらの実施形態のうちの別の実施形態では、ハイパーバイザは、少なくとも１つの仮想マシンに、コンピューティングデバイスにより提供される少なくとも１つのハードウェアリソースの抽象化を提示する。他の実施形態では、ハイパーバイザは、物理プロセッサのケイパビリティが仮想マシンに提示されるかどうか、およびそれがどのように提示されるかを制御する。
【００４６】
一部の実施形態において、本明細書に記述する方法およびシステムは、複合利用サーバ内に仮想リソースをプロビジョニングする機能を提供する。これらの実施形態のうちの１つにおいて、本明細書に記述する方法およびシステムは、マルチテナントの仮想リソース配信プラットフォームを安全に作成するための機能を提供する。これらの実施形態のうちの別の実施形態では、単一の物理リソースプール、ソフトウェア定義の仮想ローカル・エリア・ネットワーク（ＶＬＡＮ）およびディレクトリサービスが仮想リソース配信プラットフォームを提供する。ある実施形態において、本明細書に記述する方法およびシステムは、サービス・プロバイダ・エンティティが物理システムに対して規模の経済を活用できるようにする利点を提供する。従来のライセンシング慣行は、典型的には、個々のユーザへ１対１の仮想システムマッピングを提供するために、顧客エンティティ毎に専用の物理システムがプロビジョニングされることを要求する。現行の運用慣行は、典型的には、仮想インフラストラクチャ内で顧客または部門のセクションをセグメント化するために複数のＶＬＡＮを要求する。ソフトウェア定義の「仮想ＶＬＡＮ」の導入は、ネットワーク・アドレス・スペースの使用を少なくすると同時にパーソナル仮想コンピューティングのセッションベースのライセンシングを活用する離散的で確実なサーバインスタンスを提供するシステムのフレキシブルさを高める。
【００４７】
他の実施形態において、本明細書に記述する方法およびシステムは、単一のマルチテナントマシンにより提供されるリソースを分離するための機能を提供する。これらの実施形態のうちの１つにおいて、本明細書に記述する方法およびシステムは、サービスプロバイダが、前記サービスプロバイダの顧客である会社等の第１のエンティティに関連づけられる第１のリソースのユーザが同じく前記サービスプロバイダの顧客である異なる会社等の第２のエンティティに関連づけられる第２のリソースへアクセスすることを防止するセキュリティポリシを実装できるようにする機能を提供する。このような機能は、サービスプロバイダが、その顧客のセキュリティ要件を満たしながら、コンピューティングリソースをより効率的に用いることを可能にし得る。分離されるリソースは、ディレクトリサービスおよびデスクトップイメージを含む、但しこれらに限定されないあらゆるタイプまたは形式のリソースであってもよい。
【００４８】
次に、図２Ａを参照すると、複合利用サーバにおいて仮想リソースをプロビジョニングするためのシステムの一実施形態がブロック図で示されている。簡単に言えば、本システムは、サービス・ブローカ・マシン１０６ａと、ディレクトリサーバ１０６ｂと、第１のホスティングサーバ１０６ｃと、第２のホスティングサーバ１０６ｄと、管理マシン１０６ｅと、プロビジョニングマシン１０６ｆと、第１のマシン１０２ａと、第２のマシン１０２ｂとを含む。本システムは、管理コンポーネント２１８と、ユーザ接続エンジン２０２とを含む。本システムは、データベース２２２を含む。本システムは、複数のクライアントエージェント２０４ａ〜ｎを含む。本システムは、複数の仮想マシン２０６ａ〜ｎ、複数のパワー・ユーザ・イメージ２１０ａ〜ｎ、複数の共有セッション２１２ａ〜ｎおよび複数のハイパーバイザ２１６ａ〜ｎを含む。本システムは、ディレクトリサービス２０７および複数のディレクトリサービス組織ユニット２０８ａ〜ｎを含む。本システムは、ディレクトリサービス管理サーバ１０６ｇおよび複数のディレクトリサービス管理コンポーネント２０９ａ〜ｎを含む。
【００４９】
ある実施形態において、サービス・ブローカ・マシン１０６ａは、先に述べたようなマシン１０６である。別の実施形態において、サービス・ブローカ・マシン１０６ａは、クライアントエージェント２０４ａ〜ｎからの接続要求を聴き取るウェブサービスを提供する。さらに別の実施形態において、サービス・ブローカ・マシン１０６ａは、仮想リソースへアクセスするためのユーザ要求（例えば、アクセス要求）をどのようにルーティングするかに関する命令の要求を受信するための機能を提供する。このような要求は、ＨＴＭＬ５が生成するクエリを含む、但しこれに限定されない如何なるタイプまたは形式であってもよい。
【００５０】
ある実施形態において、サービス・ブローカ・マシン１０６ａは、ユーザ接続エンジン２０２を実行する。実施形態によっては、ユーザ接続エンジン２０２の機能を提供するあらゆるマシン１００が、サービス・ブローカ・マシン１０６ａと称され得る。ユーザ接続エンジン２０２は、ウェブサービスを提供してもよい。ユーザ接続エンジン２０２は、１つまたは複数のマシン１０２からアクセス要求を受信するための機能を提供してもよい。実施形態によっては、ユーザ接続エンジン２０２は、ソフトウェアプログラムである。他の実施形態では、ユーザ接続エンジン２０２は、ハードウェアモジュールである。実施形態によっては、ユーザ接続エンジン２０２は、データベース２２２と相互作用するための機能を含む。例えば、ユーザ接続エンジン２０２は、データベース２２２に接続しかつクライアントエージェント２０４から受信されるユーザ資格認証情報の検証を要求するための機能を含んでもよい。実施形態によっては、ユーザ接続エンジン２０２は、ログインプロセスの促進に使用可能な情報文字列を生成するように、受信されるユーザ資格認証情報を修正する機能を含み、例えば、ユーザ接続エンジン２０２は、ゲートウェイアドレスが「ｓｏｍｅｐｌａｃｅＧＷ．ｓｏｍｅｄｏｍａｉｎ．ｎｅｔ」形式であること、リソース名が「ｓｏｍｅｓｅｒｖｅｒ．ｉｎｓｉｄｅｓｏｍｅｄｏｍａｉｎ．ｎｅｔ」形式であること、およびユーザ名が「ｓｏｍｅｒｅｓｏｕｒｃｅ＼ｕｓｅｒｎａｍｅ．ｅｘｔｅｎｓｉｏｎ」形式であること、を保証してもよい。ユーザ接続エンジン２０２は、送信されるデータを暗号化するための機能を含んでもよい。ユーザ接続エンジン２０２は、接続情報（例えば、日付、時刻、接続デバイスのＩＰアドレス、接続デバイスの名前、接続デバイスのタイプ、およびユーザ資格認証情報）をログするための機能を含んでもよい。
【００５１】
他の実施形態において、ユーザ接続エンジン２０２は、マシン１０２のユーザに代わって接続情報を検索するための機能を含む。例えば、ユーザ接続エンジン２０２は、以下で詳述する接続ディテールを検索するために、データベース２２２にアクセスするための機能を含んでもよい。接続ディテールには、データ・センタ・ゲートウェイ識別子、ユーザドメイン識別子および認可されたリソースプール識別子が含まれ得るが、この限りではない。
【００５２】
実施形態によっては、データベース２２２の例には、構造化ストレージ（例えば、ＮｏＳＱＬ型データベースおよびＢｉｇＴａｂｌｅデータベース）、Ａｐａｃｈｅソフトウェア財団により配信されるＨＢａｓｅデータベース、ニューヨーク州ニューヨーク所在の１０Ｇｅｎ社により配信されるＭｏｎｇｏＤＢデータベース、Ａｐａｃｈｅソフトウェア財団により配信されるＣａｓｓａｎｄｒａデータベースおよびドキュメントベースのデータベースが含まれるが、この限りではない。他の実施形態では、データベース２２２は、ＯＤＢＣ準拠のデータベースである。例えば、データベース２２２は、カリフォルニア州レッドウッドショアーズ所在のオラクル社が製造するＯＲＡＣＬＥデータベースとして提供されてもよい。他の実施形態では、データベース２２２は、ワシントン州レドモンド所在のＭｉｃｒｏｓｏｆｔ社が製造するＭｉｃｒｏｓｏｆｔ  ＡＣＣＥＳＳデータベースまたはＭｉｃｒｏｓｏｆｔ  ＳＱＬサーバデータベースであることが可能である。さらに他の実施形態において、データベース２２２は、Ｏｒａｃｌｅ社により配信される無料公開のデータベースプロダクトのＭＹＳＱＬファミリ等のオープンソースデータベースに基づくカスタム設計のデータベースであってもよい。さらなる実施形態において、データベースは、あらゆる形式またはタイプのデータベースであってもよい。
【００５３】
実施形態によっては、サービス・ブローカ・マシン１０６ａは、マシン１０２から要求を受信する。マシン１０２は、サービス・ブローカ・マシン１０６ａへのアクセスに用いるクライアントエージェント２０４を実行してもよい。実施形態によっては、クライアントエージェント２０４は、インターネットプロトコルを用いて１つまたは複数のネットワーク１０４上でサービス・ブローカ・マシン１０６ａへ接続する従来のウェブブラウザである。他の実施形態において、クライアントエージェント２０４は、仮想リソースへのアクセス要求をサービス・ブローカ・マシン１０６ａへ送るための機能を提供する非ブラウザプログラムである。したがって、クライアントエージェント２０４は、ソフトウェアプログラムであってもよい。他の実施形態において、クライアントエージェント２０４は、ハードウェアモジュールである。実施形態によっては、クライアントエージェント２０４は、ユーザ資格認証情報をサービス・ブローカ・マシン１０６ａへ送信する。資格認証情報には、ユーザ名、パスワード、生体情報、またはユーザを認証するための他の情報が含まれ得るが、この限りではない。しかしながら、これらの実施形態のうちの１つにおいて、クライアントエージェント２０４は、サービス・ブローカ・マシン１０６ａが仮想リソースへのアクセスを提供するために、マシン１０２のユーザが、マシン１０２に関する、または要求されるアクセスに関する技術的ディテールを知るように求める必要はない。実施形態によっては、クライアントエージェント２０４は、サービス・ブローカ・マシン１０６ａにより識別されるログインゲートウェイへの接続を確立するための機能を提供する。
【００５４】
実施形態によっては、本明細書に記述するシステムは、複数の地理的に多様であってもなお単一のユニフォーム・リソース・ロケータ（ＵＲＬ）を介してアクセス可能なデータセンタにおいて実行される高容量、耐障害性の負荷分散サービスとして構築される。このようなシステムは、ユーザが、仮想リソースにアクセスするためにこのようなＵＲＬを介して１つのマスタ・ウェブ・サービスに照会できるようにし、かつその結果、サービスプロバイダの管理を簡素化し得る。たとえば、このようなシステムは、システム管理者が、リソースを管理し、保全要件に対処しかつ予期せぬ停止を減じるようにデータセンタの可用性を容易に変更することを可能にする。
【００５５】
システム２００は、管理者が１つまたは複数の物理リソースまたは仮想リソースを管理できるようにする機能を提供してもよい。したがって、ある実施形態において、システム２００は、管理コンポーネント２１８を含む。実施形態によっては、管理コンポーネント２１８は、ソフトウェアプログラムである。他の実施形態では、管理コンポーネント２１８は、ハードウェアモジュールである。さらに他の実施形態では、管理コンポーネント２１８は、コンピューティングデバイス１００上で実行される。たとえば、管理マシン１０６ｅは、管理ユーザが、提供される様々な態様のサービスを管理できるウェブサイトを提供してもよい。このような例において、ウェブサイトは、管理コンポーネント２１８からのデータ、または管理コンポーネント２１８へのインタフェースを含んでもよく、かつウェブサイトのユーザからコマンドを受信するためと、このコマンドを管理コンポーネント２１８へ提供するためのユーザインタフェースを提供してもよい。別の例として、管理ユーザは、（例えば、マシン１０２ｂ（不図示）からウェブサイトへ遠隔的にアクセスする代わりに）管理マシン１０６ｅへ直にアクセスしてもよく、かつ管理コンポーネントと直に相互作用してもよい。管理コンポーネント２１８が別個の管理マシン１０６ｅ上で実行される実施形態では、管理コンポーネント２１８は、サービス・ブローカ・マシン１０６ａと通信してもよい。図２Ａにおいて影で示されている別の実施形態では、サービス・ブローカ・マシン１０６ａが管理コンポーネント２１８を提供する。このような実施形態では、管理ユーザは、管理コンポーネント２１８に直接または間接的に（例えば、リモートマシン１０２ｂから）アクセスしてもよい。
【００５６】
システム２００は、ディレクトリサーバ１０６ｂを含む。実施形態によっては、システム２００は、複数のディレクトリサーバ１０６ｂを含む。他の実施形態では、以下でさらに詳述するように、ディレクトリサーバ１０６ｂは、各々が１つまたは複数のエンティティ（たとえば組織および企業）に関連づけられる複数のディレクトリサービス組織ユニット２０８ａ〜ｎを含むディレクトリサービス２０７を提供する。ディレクトリサービス２０７は、軽量ディレクトリ・アクセス・プロトコル（ＬＤＡＰ）を実装するものを含む、あらゆる形式またはタイプのディレクトリサービスであってもよい。ディレクトリサービス２０７は、Ｍｉｃｒｏｓｏｆｔ社が提供するＡＣＴＩＶＥ  ＤＩＲＥＣＴＯＲＹであってもよい。
【００５７】
本システムは、複数のディレクトリサービス管理コンポーネント２０９ａ〜ｎを含む。ある実施形態において、複数のディレクトリサービス管理コンポーネント２０９ａ〜ｎは、ディレクトリサービス管理サーバ１０６ｇ上で実行される。以下でより詳細に論じるように、複数のディレクトリサービス管理コンポーネント２０９ａ〜ｎは、ディレクトリサービス２０７と相互作用するための機能を提供してもよい。例えば、ディレクトリサービス管理コンポーネント２０９ａ〜ｎは、ディレクトリサービス２０７により記憶されるデータにアクセスしかつ／またはこれを変更するために、ディレクトリサービスＡＰＩに従って命令を生成しかつ送信するための機能を含んでもよい。ディレクトリサービス管理コンポーネント２０９ａ〜ｎは、プロビジョニングマシン１０６ｆから、ディレクトリサービス２０７により記憶されるデータへのアクセスまたは前記データの変更に関する命令を受信するための機能も含んでもよい。
【００５８】
ある実施形態において、プロビジョニングマシン１０６ｆは、先に述べたようなマシン１０６である。別の実施形態において、プロビジョニングマシン１０６ｆは、（例えば、管理コンポーネント２１８から）命令を受信するための機能を含む。さらに別の実施形態において、プロビジョニングマシン１０６ｆは、１つまたは複数のディレクトリサービス管理コンポーネント２０９ａ〜ｎと相互作用するための機能を含む。例えば、プロビジョニングマシン１０６ｆは、ディレクトリサービス管理コンポーネント２０９ａへ、ディレクトリサービス組織ユニット２０８ａ内のデータにアクセスする、または前記データを変更する命令を送信するための機能を含んでもよい。
【００５９】
システム２００は、複数のホスティングサーバ１０６（図２Ａでは、ホスティングサーバ１０６ｃおよび１０６ｄとして示されている）を含む。ホスティングサーバ１０６は、リモートマシン１０２のユーザに、１つまたは複数の仮想リソースへのアクセスを提供する。ホスティングサーバ１０６は、１つまたは複数のハイパーバイザ２１６を実行して仮想リソースを提供してもよい。ある実施形態において、ホスティングサーバ１０６は、仮想リソースへの（直接、またはホスティングサーバ１０６上で実行される仮想マシンを介する間接的な）アクセスを提供する物理デバイスである。
【００６０】
実施形態によっては、ディレクトリサーバ１０６ｂは、プロビジョニングマシン１０６ｆから命令を受信し、かつアプリケーション・プログラミング・インタフェース（ＡＰＩ）を介して、ディレクトリサーバ１０６ｂ上での命令の実行を指示してもよい。同様に、プロビジョニングマシン１０６ｆは、ホスティングサーバ１０６ｃ〜ｎ上で実行されるハイパーバイザ２１６ａ〜ｎと直に通信するための機能を含んでもよい。実施形態によっては、プロビジョニングマシン１０６ｆは、様々なタイプのハイパーバイザの何れかと通信するための機能を含んでもよい。
【００６１】
実施形態によっては、また、後により詳細に論じるように、ホスティングサーバ１０６ｃ〜ｄおよびディレクトリサーバ１０６ｂは、様々なリソースを他のリソースから分離するファイアウォールを含んでもよく、よって、同じ物理ハードウェア上にリソースが存在していても、１つの組織に関連づけられるユーザは、他の組織のリソースにアクセスし得ない。ファイアウォールは、この分離を実施するためのポリシを含んでもよい。同じ物理ハードウェア上の他の組織に関連づけられるリソースからは分離されているが、ファイアウォールで守られるリソースは、他の物理マシン上のファイアウォールで守られるリソースにアクセスする認証を有してもよく、結果的に、ある種の仮想ローカル・エリア・ネットワークが生じる。
【００６２】
ホスティングサーバ１０６ｃ〜１０６ｃｄは、単一ユーザ専用の私用仮想リソース（パワー・ユーザ・イメージ２１０ａ〜ｎ）および複数のユーザが仮想リソースへのアクセスを共有できるようにする共有セッション２１２ａ〜ｎの双方へのアクセスを提供する「複合利用」サーバとして提供されてもよい。仮想リソースには、仮想化されたデスクトップ、オペレーティングシステム、アプリケーション、または任意の仮想化されたソフトウェアまたはハードウェアリソースが含まれ得る。実施形態によっては、ホスティングサーバ１０６ｃ〜１０６ｄは、異なる組織のユーザへのアクセスを提供するという点で「マルチテナント」サーバである。
【００６３】
実施形態によっては、サービス・ブローカ・マシン１０６ａ、管理マシン１０６ｅおよびプロビジョニングマシン１０６ｆは、第１の組織に関連づけられ、または第１の組織によって保全され、かつディレクトリサーバ１０６ｂおよびホスティングサーバ１０６ｃは、第２の組織に関連づけられ、または第２の組織によって保全される。第２の組織は、限定ではなく例として、顧客に仮想リソースへのアクセスを提供するサービスプロバイダであってもよい。
【００６４】
次に、図２Ｂを参照すると、複合利用サーバにおいて仮想リソースをプロビジョニングするためのシステムの一実施形態がブロック図で示されている。図２Ｂは、限定ではなく例として、第１のエンティティに関連づけられる第１の複数のリソース２３０と、第２のエンティティに関連づけられる第２の複数のリソース２４０とを示している。図２Ｂに示されているように、第１の複数のリソース２３０は、ディレクトリサービス２０７内のディレクトリサーバ１０６ｂ上に設けられるディレクトリサービス編成ユニット２０８ａと、仮想マシン２０６ａ（これ自体は、ホスティングサーバ１０６ｃ上で実行される）上で実行されるパワー・ユーザ・イメージ２１０ａと、仮想マシン２０６ｃ（これ自体は、ホスティングサーバ１０６ｄ上で実行される）上で実行されるパワー・ユーザ・イメージ２１０ｂと、仮想マシン２０６ｄ（これ自体もホスティングサーバ１０６ｄ上で実行される）によって提供される共有セッション２１２ｄとを含む。これら３種のリソースは、３つの異なるマシン（これら自体は、同じ、または異なるネットワーク上の同じ、または異なるデータセンタ内に存在し得る）上に設けられるが、第１のエンティティの観点から、複数のリソース２３０は、単一の論理構造体を形成する。このような実施形態では、ある離散組織による使用が指定されているサーバまたはサーバグループは各々、より大きいネットワークセグメントの一部としてのその構成にも関わらず、この組織にしか見えない。同様に、第２の複数のリソース２４０は、ディレクトリサーバ１０６ｂ上のディレクトリサービス組織ユニット２０８ｂと、ホスティングサーバ１０６ｃ上で実行される複数の共有セッション２１２ａ〜ｂとを含み、第２のエンティティの観点から、複数のリソース２４０は、単一の論理構造体を形成する。実施形態によっては、これらの複数のリソースは、「仮想ＶＬＡＮ」とみなされ得る。これらの実施形態のうちの１つにおいて、仮想ＶＬＡＮは、同じネットワークセグメント上に存在する仮想サーバシステム間の仮想マシンレベルの分離を提供する。これにより、管理者の設定時間が短縮され、ハイパーバイザシステム管理の複雑さが減り、顧客エンティティ毎に安全に画定された「ウォールドガーデン」が提供され、かつ既存のＶＬＡＮおよびサブネッティング慣行を強化する追加的なセキュリティ小区分が提供される。
【００６５】
本明細書では、エンジン、エージェントおよびコンポーネントと称しているが、図２Ａ〜２Ｂに示されているエレメントは、各々、ソフトウェア、ハードウェアまたは両者の組合せとして提供されてもよく、かつ、先に図１Ａ〜図１Ｄで説明したように、１つまたは複数のマシン１００で実行されてもよい。本明細書に記述する所定のコンポーネントは、論考を容易にするために別個のエンティティとして示されているが、これがアーキテクチャを特定の実装に制限するものでないことは、理解されるべきである。例えば、記述している一部の、または全てのコンポーネントの機能は、単一の回路またはソフトウェア機能に包含されてもよく、別の例として、１つまたは複数のコンポーネントの機能は、複数のコンポーネント間に分散されてもよい。
【００６６】
次に、図３Ａを参照すると、マルチテナント・ディレクトリ・サービス内に保護された組織ユニットを生成するための方法の一実施形態のフロー図が示されている。簡単に言えば、方法３００は、プロビジョニングマシンにより、ディレクトリサーバ上で実行されるディレクトリサービス管理コンポーネントに、サーバ上のディレクトリサービス内に第１のエンティティに関連づけられる第１の組織ユニットを生成するように指示することを含む（３０２）。方法３００は、プロビジョニングマシンにより、ディレクトリサービス管理コンポーネントに、ディレクトリサービスにおける、第２のエンティティに関連づけられる第２の組織ユニットへアクセスすることを認可されたユーザが、第１の組織ユニットにアクセスすることを防止するファイアウォールポリシを確立するように指示することを含む（３０４）。
【００６７】
方法３００は、プロビジョニングマシンにより、ディレクトリサーバ上で実行されるディレクトリサービス管理コンポーネントに、サーバ上のディレクトリサービス内に第１のエンティティに関連づけられる第１の組織ユニットを生成するように指示することを含む（３０２）。ある代替実施形態において、プロビジョニングマシン１０６ｆは、ディレクトリサービス２０７と通信して組織ユニット２０８を直に生成する。
【００６８】
ある実施形態において、プロビジョニングマシン１０６ｆは、ディレクトリサービス管理サーバ１０６ｇ上で実行されるディレクトリサービス管理コンポーネント２０９の新しいインスタンスを作成する。別の実施形態において、プロビジョニングマシン１０６ｆは、ディレクトリサービス管理サーバ１０６ｇ上のディレクトリサービス管理コンポーネント２０９の既に実行中のインスタンスに命令を送信する。ある実施形態において、ディレクトリサービス管理サーバ１０６ｇは、ＷＩＮＤＯＷＳ  ＡＣＴＩＶＥ  ＤＩＲＥＣＴＯＲＹドメインコントローラとして提供される。別の実施形態では、ディレクトリサービス管理コンポーネント２０９は、仮想マシン２０６のプロビジョニングと併せて構成される。さらに別の実施形態において、ディレクトリサービス管理サーバ１０６ｇ上の構成設定は、ディレクトリサービス管理コンポーネント２０９の構成を可能にする。
【００６９】
ある実施形態において、ディレクトリサービス管理サーバ１０６ｇは、ディレクトリサービス管理機能を提供することに限定されない。別の実施形態では、ディレクトリサービス管理サーバ１０６ｇは、ユーザを認証するための機能を提供する。さらに別の実施形態では、ディレクトリサービス管理サーバ１０６ｇは、ユーザグループメンバーシップ情報にアクセスする、またはこれを変更するための機能を提供する。別の実施形態では、ディレクトリサービス管理サーバ１０６ｇは、ユーザおよびグループのデータリソースアクセス許可にアクセスする、またはこれを変更するための機能を提供する。さらに別の実施形態では、ディレクトリサービス管理サーバ１０６ｇは、ユーザおよびグループの周辺デバイスアクセス許可にアクセスする、またはこれを変更するための機能を提供する。
【００７０】
ある実施形態において、ディレクトリサービス管理コンポーネント２０９は、ディレクトリサービス２０７により提供されるＡＰＩに従って、ディレクトリサービス２０７へ組織ユニットを生成するコマンドを送信する。さらに別の実施形態において、組織ユニットは、単一のディレクトリサービス２０７の小区分である。さらに別の実施形態において、プロビジョニングマシン１０６ｆは、ディレクトリサービス管理コンポーネント２０９に、あるエンティティがプロビジョニングマシン１０６ｆによる組織ユニットの確立を要求する前にコマンドを送信するように指示する。例えば、プロビジョニングマシン１０６ｆは、ある組織ユニットに対する新規要求が届いたときに、その組織ユニットが既に利用可能であるように、ディレクトリサービス管理コンポーネント２０９にプレースホルダ組織ユニットを生成させてもよい。実施形態によっては、組織ユニットに対する要求に先行して組織ユニットを生成することにより、より速い、より効率的なプロビジョニングプロセスが提供される。
【００７１】
方法３００は、プロビジョニングマシンにより、ディレクトリサービス管理コンポーネントに、ディレクトリサービスにおける、第２のエンティティに関連づけられる第２の組織ユニットへアクセスすることを認可されたユーザが、第１の組織ユニットにアクセスすることを防止するファイアウォールポリシを確立するように指示することを含む（３０４）。ある実施形態において、ディレクトリサービス管理コンポーネント２０９は、ディレクトリサーバ１０６ｂ上で実行されるオペレーティングシステムにより提供されるＡＰＩに従って、ディレクトリサーバ１０６ｂへコマンドを送信する。
【００７２】
ある実施形態において、ディレクトリサービス管理コンポーネント２０９は、プロビジョニングプロセスの間に１つまたは複数のファイアウォールルールを展開して、ある組織専用のリモートリソースを提供する。別の実施形態において、ディレクトリサービス管理コンポーネント２０９は、ポリシに従ってファイアウォールルールを構成するコマンドを送信し、かつディレクトリサーバ１０６ｂ上で実行されるオペレーティングシステムのコンポーネントを用いて、サーバシステム構成ルーチンを各組織ユニットレベルで制御する。例えば、ディレクトリサービス管理コンポーネント２０９は、ポリシエレメントに従ってファイアウォールルールを構成してもよく、かつＷＩＮＤＯＷＳグループ・ポリシ・エンジンを用いて、サーバシステム構成ルーチンを各組織ユニットレベルで制御してもよい。別の例として、ディレクトリサービス管理コンポーネント２０９は、ファイアウォールポリシを有効化するスクリプトを実行する命令を送信してもよい。別の例として、ディレクトリサービス管理コンポーネント２０９は、組織ユニット（例えば、エンドユーザの企業）を用いて、組織ユニットのユーザが利用可能である少なくとも１つのサーバの識別を含むエンティティの少なくとも１つの属性を定義する、組織ユニットのポリシオブジェクトにアクセスする。このような例において、ディレクトリサービス管理コンポーネント２０９は、組織ユニットのポリシオブジェクトを、非認証ユーザがディレクトリサービス２０７内の他の組織ユニットへのアクセスを有するとしても、非認証ユーザが組織ユニットのリソース（例えば、ユーザが利用可能なサーバ）にアクセスすることを防止する少なくとも１つのファイアウォールルールを包含するように変更し、ディレクトリサーバ１０６ｂのオペレーティングシステムは、ポリシオブジェクトの変更の通知を受信し、かつこの変更を反映するように仮想マシン２０６ａ〜ｎのファイアウォールを更新する。別の例として、ディレクトリサービス管理コンポーネント２０９は、組織ユニットのポリシオブジェクトを、非認証ユーザがディレクトリサービス２０７内の他の組織ユニットへのアクセスを有するとしても、非認証ユーザが組織ユニットのリソース（例えば、組織ユニット内のデータ）にアクセスすることを防止する少なくとも１つのファイアウォールルールを包含するように変更し、ディレクトリサーバ１０６ｂのオペレーティングシステムは、ポリシオブジェクトの変更の通知を受信し、かつこの変更を反映するようにディレクトリサーバ１０６ｂのファイアウォールを更新する。実施形態によっては、マルチテナント・ディレクトリ・サービスを提供すると同時に、各テナントのデータを保護するために必要なファイアウォールルールを確立することにより、本明細書に記述する方法およびシステムを実装するサービスプロバイダは、その物理リソースを完全に活用しながら、より柔軟で安全なリソースを提供できるようになる。これらの実施形態のうちの１つにおいて、本明細書に記述する方法およびシステムは、リソース（例えば、ユーザ、アプリケーションおよびデータリソースを含む）が、共有ディレクトリサービス２０７により制御される一方で、認証ユーザにしか見えず、かつアクセスできないことを保証する機能を提供する。
【００７３】
先に述べたように、本明細書に記述する方法およびシステムは、同じ物理マシンの論理的に別個の部分内に異なる組織のリソースをプロビジョニングするための機能を提供する。プロビジョニングされると、本明細書に記述する方法およびシステムは、エンドユーザマシンと、異なるタイプのユーザに異なるタイプの仮想リソースを提供できる複合利用サーバを含む、プロビジョニングされたリソースをホストするサーバとの接続を確立するための機能を提供する。実施形態によっては、本明細書に記述する方法およびシステムは、サービス・ブローカ・マシン１０６ａと仮想マシン２０６ａ〜ｎとの組合せを介して、マルチテナントサーバにおける異なるタイプの仮想リソースのプロビジョニングを可能にする機能を提供する。このような機能は、サービスプロバイダが、様々なサーバ・オペレーティング・システム製造者のライセンシング要件の遵守を維持しながら、様々なタイプのサーバ・オペレーティング・システムおよび共有ハードウェアリソースを利用して、エンドユーザへ１対１のデスクトップエクスペリエンスを提供することを有効化し得る。
【００７４】
次に、図３Ｂを参照すると、複合利用環境において仮想リソースをプロビジョニングするための方法３５０の一実施形態のフロー図が示されている。方法３５０は、プロビジョニングマシンにより、サーバ上で実行されるハイパーバイザに、サーバ上へ仮想マシンをプロビジョニングするように指示することを含む（３５２）。方法３５０は、プロビジョニングマシンにより、マルチテナント・ディレクトリ・サービス内に、このマルチテナント・ディレクトリ・サービス内の第２の組織ユニットからファイアウォールによって分離される第１の組織ユニットを生成するように指示することを含む（３５４）。方法３５０は、プロビジョニングマシンにより、仮想マシンを第１の組織ユニットに関連づけることを含む（３５６）。方法３５０は、プロビジョニングマシンにより、仮想マシン上に、仮想マシンへの通信を明示的に認証されたマシンからの通信に制限する少なくとも１つのファイアウォールルールを確立することを含み、前記明示的に認証されるマシンは、第１の組織ユニット内に少なくとも１つの他のマシンを含む（３５８）。方法３５０は、プロビジョニングマシンにより、管理コンポーネントから、ある組織内に少なくとも１名のユーザのための仮想リソースをプロビジョニングする要求を受信することを含み、前記要求は、仮想マシンのプロビジョニングおよび第１の組織ユニットの生成の後に受信される（３６０）。方法３５０は、プロビジョニングマシンにより、第１の組織ユニットに関連づけられるデータを、少なくとも１名のユーザの識別を包含するように更新することを含む（３６２）。方法３５０は、プロビジョニングマシンにより、仮想マシンに、仮想リソースをホストするように指示することを含む（３６４）。
【００７５】
ここで、図３Ｂをより詳細に、かつ図２Ａ〜図２Ｂおよび図３Ａに関連して参照すると、方法３５０は、プロビジョニングマシンにより、サーバ上で実行されるハイパーバイザに、サーバ上へ仮想マシンをプロビジョニングするように指示することを含む（３５２）。ある実施形態において、プロビジョニングマシン１０６ｆは、仮想マシンをプロビジョニングする命令を、ホスティングサーバ１０６ｃ上で実行されるハイパーバイザ２１６ａへ送信する。
【００７６】
方法３５０は、プロビジョニングマシンにより、マルチテナント・ディレクトリ・サービス内に、このマルチテナント・ディレクトリ・サービスの第２の組織ユニットからファイアウォールによって分離される第１の組織ユニットを生成するように指示することを含む（３５４）。ある実施形態において、プロビジョニングマシン１０６ｆは、ディレクトリサービス管理コンポーネント２０９に、ディレクトリサービスに命令して第１の組織ユニットを生成させるように指示する。実施形態によっては、プロビジョニングマシン１０６は、組織ユニットの生成を、図３Ａに関連して先に述べたように指示する。
【００７７】
方法３５０は、プロビジョニングマシンにより、仮想マシンを第１の組織ユニットに関連づけることを含む（３５６）。ある実施形態において、プロビジョニングマシン１０６ｆは、ディレクトリサービス管理コンポーネント２０９に、この関連づけを行うように指示する。別の実施形態では、ディレクトリサービス管理コンポーネント２０９は、ディレクトリサービス２０７に、第１の組織ユニットに関連づけられるデータを仮想マシンの識別を包含して変更するように指示する。別の実施形態では、ディレクトリサービス管理コンポーネント２０９は、第１の組織ユニット自体を変更し、例えば、ディレクトリサービス管理コンポーネント２０９は、第１の組織ユニットを、仮想マシンのマシン名を組織ユニットのメンバに仮想リソースへのアクセスを提供するように指定されるマシンとして（例えば、ポリシオブジェクト内に）リストするように変更してもよい。
【００７８】
方法３５０は、プロビジョニングマシンにより、仮想マシン上に、仮想マシンへの通信を明示的に認証されたマシンからの通信に制限する少なくとも１つのファイアウォールルールを確立することを含み、前記明示的に認証されるマシンは、第１の組織ユニット内に少なくとも１つの他のマシンを含む（３５８）。ある実施形態において、プロビジョニングマシン１０６ｆは、ディレクトリサービス管理コンポーネント２０９に、少なくとも１つのファイアウォールルールを確立するように指示する。別の実施形態では、サービス・ブローカ・マシン１０６ａがファイアウォールルールを、図３Ａに関連して先に述べたように確立する。
【００７９】
ある実施形態では、ディレクトリサービス組織ユニット２０８ａおよび仮想マシン２０６の生成を指示した後、プロビジョニングマシン１０６ｆは、仮想マシン２０６を、仮想リソースのホスティングに利用可能としてマーキングする。例えば、プロビジョニングマシン１０６ｆは、仮想リソースのホスティングに利用可能である仮想マシンのテーブルを更新してもよい。
【００８０】
方法３５０は、プロビジョニングマシンにより、管理コンポーネントから、ある組織内に少なくとも１名のユーザのための仮想リソースをプロビジョニングする要求を受信することを含み、前記要求は、仮想マシンのプロビジョニングおよび第１の組織ユニットの生成の後に受信される（３６０）。ある実施形態では、プロビジョニングマシン１０６ｆが管理コンポーネント２１８から要求を受信する。別の実施形態では、プロビジョニングマシン１０６ｆは、仮想リソースを単一のユーザ専用（例えば、パワー・ユーザ・イメージ２１０のような）として、または複数のユーザが利用できるもの（例えば、共有セッション２１２）としてプロビジョニングする要求を受信する。実施形態によっては、要求は、プロビジョニングされるべきリソースのタイプの識別を含む。例えば、かつ先に示したように、リソースは、仮想デスクトップ、仮想マシン、仮想アプリケーションまたは他の仮想リソースであってもよい。他の実施形態において、命令は、仮想マシン２０６が仮想リソースをホストするために有するべき特性（例えば、メモリの量、処理能力のレベルまたは利用可能なセッションの数）の識別を含む。
【００８１】
ある実施形態において、プロビジョニングマシン１０６ｆは、要求においてユーザ情報を受信し、前記ユーザ情報は、仮想リソースへのアクセスを認証されるべき１名または複数のユーザを識別する。別の実施形態では、プロビジョニングマシン１０６ｆは、ユーザ情報をディレクトリサービス管理コンポーネント２０９へ転送する。例えば、ユーザ情報には、少なくとも１名のユーザに関連づけられるユーザ名が含まれてもよい。このような場合、プロビジョニングマシン１０６ｆは、仮想リソースにアクセスする際に使用するための、受信されるユーザ名に関連づけられるリソースユーザ名を生成してもよく、プロビジョニングマシン１０６ｆは、リソースユーザ名を、ユーザが属する組織のディレクトリサービス組織ユニット２０８に記憶してもよい。別の例として、ユーザ情報には、ユーザに関連づけられるサービスのタイプまたはレベルが含まれてもよい。例えば、ユーザアカウントを最初にプロビジョニングする管理者は、ユーザをパワーユーザとして指定し、かつこの指定を他のユーザアカウント情報と共に記憶させてもよく、これによりシステム２００は、仮想リソース（例えば、パワー・ユーザ・イメージ２１０ａ）を、複数のユーザによる共有ではなく、そのユーザの専用使用として生成する。実施形態によっては、当初仮想リソースを共有するようにプロビジョニングされた、先行してプロビジョニングされたユーザは、次に、例えば管理コンポーネント２１８を介してパワーユーザとして指定されてもよく、パワーユーザは、新規サーバインスタンスを構築するためにワークフロー要求を管理ワークフローマネージャ内の待ち行列に入れ、ファイアウォールルールを構成し、アプリケーションをインストールし、かつ新しく指定されるパワーユーザの専用としてサーバを起動してもよい。これらの実施形態のうちの１つにおいて、ディレクトリサービス管理コンポーネント２０９ａは、ディレクトリサービス組織ユニット２０８ａの変更要求を受信し、かつ組織ユニット２０８ａを適宜変更する。これらの実施形態のうちの別の実施形態において、ディレクトリサービス管理コンポーネント２０９ａは、着信する変更要求を（周期的または連続的に）監視し、組織ユニット２０８ａを適宜変更する。
【００８２】
方法３５０は、プロビジョニングマシンにより、第１の組織ユニットに関連づけられるデータを、少なくとも１名のユーザの識別を包含するように更新することを含む（３６２）。ある実施形態では、プロビジョニングマシン１０６ｆが、ディレクトリサービス管理コンポーネント２０９に、第１の組織ユニットに関連づけられるデータを更新するように指示する。別の実施形態では、ディレクトリサービス管理コンポーネント２０９が、ディレクトリサービス２０７へ、第１の組織ユニットに関連づけられるデータを少なくとも１名のユーザの識別を包含して変更する命令を送信する。
【００８３】
方法３５０は、プロビジョニングマシンにより、仮想マシンに、仮想リソースをホストするように指示することを含む（３６４）。ある実施形態では、プロビジョニングマシン１０６ｆがホスティングサーバ１０６ｃ上で実行される仮想マシン２０６へ、仮想リソースをホストする命令を送信する。実施形態によっては、プロビジョニングマシン１０６ｆが、特定のタイプの幾つかの仮想リソースを利用可能にする（例えば、ディレクトリサービス組織ユニット２０８ａにおいて識別される組織ＸＹＺに３つのパワー・ユーザ・イメージ２１０を利用可能にする、ディレクトリサービス組織ユニット２０８ｂにおいて識別される組織ＡＢＣに６つの共有セッション２１２を利用可能にする）命令を受信してもよく、１つまたは複数の仮想マシン２０６に仮想リソースをプロビジョニングするように指示する。実施形態によっては、少なくとも１つのホスティングサーバ１０６ｃを管理するサービスプロバイダ管理者は、仮想マシン２０６ａ〜ｎをプロビジョニングしかつ管理するために、少なくとも１つのファイアウォールルールを、プロビジョニングマシン１０６ｆがハイパーバイザ２１６ａと通信することを認証するように変更する。他の実施形態において、プロビジョニングマシン１０６ｆは、コマンドを特定のハイパーバイザ２１６ａが処理できるフォーマットに変換するための機能を含む。たとえば、異なるホスティングサーバ１０６ｃ〜ｎは、異なるタイプのハイパーバイザ２１６を実行してもよく、かつプロビジョニングマシン１０６ｆの機能は、プロビジョニングマシン１０６ｆがコマンドを特定のハイパーバイザに適するフォーマットに変換することを可能にする。
【００８４】
ある実施例において、プロビジョニングマシン１０６ｆは、管理コンポーネント２１８に、プロビジョニングマシン１０６ｆがプロビジョニングプロセスを完了したという表示を提供する。別の実施形態において、プロビジョニングマシン１０６ｆは、管理コンポーネント２１８に、プロビジョニングされたリソース（典型的には、離散組織ユニット内）のユーザがファイアウォールルールを管理するために利用可能なユーザインタフェースの識別を提供する。ユーザインタフェースは、リモート・デスクトップ・サービスのワークフロー管理プラットフォームの一部として、個々のサーバシステムのルールを最初のルールが確立された後に変更する目的で提供されてもよい。このインタフェースは、サービス管理者が特定のサーバ間通信を見込む変更を行うことを可能にするが、管理者が基本的なファイアウォール原則を破ることを防止し、これにより、各組織ユニットが同じＶＬＡＮ内の他のサーバに不正に接続することが防止される。
【００８５】
次に、図４を参照すると、複合利用サーバにおける仮想リソースへのアクセスを提供するための方法４００の一実施形態のフロー図が示されている。方法４００は、サービス・ブローカ・マシンにより、クライアントマシンから少なくとも１つの資格認証情報を受信することを含む（４０２）。方法４００は、サービス・ブローカ・マシンにより、データベースから、少なくとも１つの資格認証情報に関連づけられる接続情報を要求することを含む（４０４）。方法４００は、サービス・ブローカ・マシンにより、データベースから、（Ｉ）データセンタの識別と、（ＩＩ）前記データセンタ内の少なくとも１つの仮想マシンの識別であって、前記少なくとも１つの仮想マシンは、（ｉ）第１の組織に関連づけられ、（ｉｉ）前記少なくとも１つの資格認証情報に関連づけられるユーザのために少なくとも１つの仮想リソースへのアクセスを提供するように指定され、かつ（ｉｉｉ）第２の組織に関連づけられる第２の仮想マシンをホストしかつ第２の組織のユーザへ共有セッションを提供する物理サーバ上で実行される、データセンタ内の少なくとも１つの仮想マシンの識別と、（ＩＩＩ）前記少なくとも１つの仮想マシンへの接続に用いるためのリソースユーザ名の識別と、を含む接続情報を受信することを含む（４０６）。方法４００は、サービス・ブローカ・マシンにより、クライアントマシンへ接続情報を提供することを含む（４０８）。
【００８６】
ここで、図４をより詳細に、かつ図２Ａ〜図２Ｂおよび図３に関連して参照すると、方法４００は、サービス・ブローカ・マシンにより、クライアントマシンから少なくとも１つの資格認証情報を受信することを含む（４０２）。ある実施形態では、サービス・ブローカ・マシン１０６ａが、マシン１０２ａ上のクライアントエージェント２０４ａから少なくとも１つの資格認証情報を受信する。別の実施形態では、ユーザ接続エンジン２０２が少なくとも１つの資格認証情報を受信する。実施形態によっては、サービス・ブローカ・マシン１０６ａは、少なくとも１つの資格認証情報を受信して、仮想リソースへのアクセス要求を推測する。実施形態によっては、先に示したように、サービス・ブローカ・マシン１０６ａは、データベース２２２を用いて、少なくとも１つの資格認証情報に関連づけられるユーザを検証する。ある実施形態において、資格認証情報は、クライアントマシン１０２のユーザに関連づけられる生体情報を含む。別の実施形態では、資格認証情報がパスワードを含む。方法４００は、サービス・ブローカ・マシンにより、データベースから、少なくとも１つの資格認証情報に関連づけられる接続情報を要求することを含む（４０４）。
【００８７】
方法４００は、サービス・ブローカ・マシンにより、データベースから、（Ｉ）データセンタの識別と、（ＩＩ）前記データセンタ内の少なくとも１つの仮想マシンの識別であって、前記少なくとも１つの仮想マシンは、（ｉ）第１の組織に関連づけられ、（ｉｉ）前記少なくとも１つの資格認証情報に関連づけられるユーザのために少なくとも１つの仮想リソースへのアクセスを提供するように指定され、かつ（ｉｉｉ）第２の組織に関連づけられる第２の仮想マシンをホストしかつ第２の組織のユーザへ共有セッションを提供する物理サーバ上で実行される、データセンタ内の少なくとも１つの仮想マシンの識別と、（ＩＩＩ）前記少なくとも１つの仮想マシンへの接続に用いるためのリソースユーザ名の識別と、を含む接続情報を受信することを含む（４０６）。したがって、接続情報は、少なくとも１つの仮想マシンおよび第２の仮想マシンの双方を含む物理サーバを識別し、かつ第２の組織に関連づけられる第２の仮想マシンがユーザに共有セッションを提供する一方で、第１の組織に関連づけられる少なくとも１つの仮想マシンは、共有セッションまたは専用セッションの何れかを提供し得ることを表示する。ある実施形態では、サービス・ブローカ・マシン１０６ａが接続情報を受信する。別の実施形態では、ユーザ接続エンジン２０２が接続情報を受信する。ある実施形態において、接続情報は、データセンタに関連づけられるゲートウェイの識別を含む。
【００８８】
方法４００は、サービス・ブローカ・マシンにより、クライアントマシンへ接続情報を提供することを含む（４０８）。ある実施形態では、サービス・ブローカ・マシン１０６ａが、クライアントエージェント２０４ａへ識別および命令を提供する。ある実施形態において、サービス・ブローカ・マシン１０６ａは、クライアントマシン１０２の識別子をログする。ある実施形態において、サービス・ブローカ・マシン１０６ａは、クライアントマシン１０２がサービス・ブローカ・マシン１０６ａに接続する起点であるＩＰアドレスの識別子をログする。実施形態によっては、サービス・ブローカ・マシン１０６ａは、専ら、クライアントの資格認証情報を受信して、クライアント１０２に資格認証情報以外の自身に関する情報の提供を求めることなく、クライアント１０２が仮想リソースに接続する必要があるという情報を自動的に返す。
【００８９】
別の実施形態では、クライアントエージェント２０４ａが、識別された仮想マシンに接続して、マシン１０２ａのユーザに仮想リソースへのアクセスを提供する。ある実施形態において、クライアントエージェント２０４ａは、接続情報において受信されるゲートウェイの識別を用いて、識別されたデータセンタに、識別された仮想マシンへのアクセスの要求と共に接続する。別の実施形態において、ゲートウェイは、クライアントエージェント２０４ａを負荷分散マシン（不図示）へリダイレクトする。さらに別の実施形態において、負荷分散マシンは、クライアントエージェント２０４ａのユーザへアクセスを提供するように指定される複数の仮想マシンのうちのどれが利用可能であるかを決定する。さらに別の実施形態では、負荷分散マシンは、クライアントエージェント２０４ａを、仮想リソースをホストする特定の仮想マシンへリダイレクトする。
【００９０】
実施形態によっては、本明細書に記述する方法およびシステムは、複合利用サーバにおける仮想リソースを安全にプロビジョニングしかつ前記仮想リソースへの接続を確立するための機能を提供する。
【００９１】
実施形態によっては、本明細書に記述する方法およびシステムは、仮想リソースへの接続を、仮想リソースのスケジュールされた非可用期間中にプロビジョニングしかつ確立するための機能を提供する。先に述べたように、このような方法およびシステムの中には、スケジュールされた非可用期間中にワークロードにアクセスするフレキシブルさに対するユーザおよび／またはプロジェクトのニーズに対応する機能を提供し得るものがある。このような機能は、セッションサーバに対するウェイクオンデマンドと称される場合がある。
【００９２】
先に述べたように、実施形態によっては、管理コンポーネント２１８が、管理者がプロビジョニングマシン１０６ｆにユーザアカウントおよび仮想リソースをプロビジョニングする命令を提供できるようにする機能を提供する。実施形態によっては、プロビジョニングマシン１０６ｆは、仮想リソース（例えば、セッションサーバ）の可用性スケジュールを受信する。限定ではなく例として、仮想リソースには、固定スケジュールが割り当てられてもよく、これにより、少なくとも１つの時間間隔の間（例えば、仮想リソースの少なくとも１名のユーザがその仮想リソースの使用を要求しないはずの時間間隔の間）、仮想リソースは、中断状態に入るか、完全にシャットダウンされる。別の例として、管理者は、仮想リソースの利用可能時間を従来の営業時間（例えば、午前９時〜午後５時）に、または特定のユーザがその特定の勤務時間として設定する時間帯に限定することを明記してもよい。さらなる例として、管理者は、仮想リソースの利用可能時間を、ユーザが仮想リソースへのアクセスを求めるはずの少し前から、その少し後までにすることを明記してもよい。別の例として、管理者は、使用データを分析して特定のユーザが特定の仮想リソースを用いる時間を決定してもよく、かつ管理者は、分析に従って仮想リソースの可用性スケジュールを設定してもよい。
【００９３】
仮想リソースの可用性スケジュールの明記を受信することに加えて、プロビジョニングマシン１０６ｆは、あるユーザが、スケジュールされた非可用性時間の間に仮想リソースへのアクセスを要求しかつこれを受信することを認証されているか否かの識別も受信し得る。例として、パワーユーザは、スケジュールされた非可用性時間中に仮想リソースへのアクセスを要求しかつこれを受信する認証を与えられてもよい。別の例として、組織にとっての重要性のしきい値レベルを超える問題に取り組んでいる１名または複数のユーザは、スケジュールされた非可用性時間中に仮想リソースへのアクセスを要求しかつこれを受信する認証を与えられてもよい。
【００９４】
ある実施形態において、データベース２２２は、仮想リソースに適用される、仮想リソースが何時にオンまたはオフにされるべきかを指定するポリシを含む、少なくとも１つのポリシを保持する。ある実施形態において、サービス・ブローカ・マシン１０６ａは、少なくとも１つのポリシを分析するプログラミング論理を実行して、仮想リソースの状態を変更するかどうかを決定する。次に、サービス・ブローカ・マシン１０６ａは、プロビジョニングマシン１０６ｆに、仮想リソースの状態を変更するように命令してもよい。例えば、サービス・ブローカ・マシン１０６ａは、プロビジョニングマシン１０６ｆに、システム環境（ハイパーバイザおよびサーバ）上でスケジュールを遵守する必要に応じて状態を変更するコマンドを実行するように命令してもよい。実施形態によっては、仮想リソースがオフにされるようにスケジュールされる少なくとも１つの時間期間をポリシが明記し、システム１００が、スケジュールの変更を認証されたユーザから、スケジュールされたダウンタイム中に仮想リソースをオンにする要求を受信した場合、システムは、後に詳述する方法５００を実行して、その変更を行うかどうかを決定した上で、変更を行ってもよい。他の実施形態では、ポリシが、仮想リソースが常にオフまたは非可用であるようにスケジュールされることを明記し、このような実施形態では、システム１００が仮想リソースをいつでもオンにする要求を受信すれば、システムは、後に詳述する方法５００を実行して、その変更を行うかどうかを決定した上で、変更を行ってもよい。実施形態によっては、システム１００は、グラフィカル・ユーザ・インタフェースを、ユーザが（仮想リソースが初期設定によって非可用である、または、仮想リソースが、ユーザがグラフィカル・ユーザ・インタフェースを見た時点で非可用である、の何れかの理由で）非可用である仮想リソースへのアクセスを要求するオプションを有するかどうかを示すように変更するための機能を実行する。
【００９５】
次に、図５を参照すると、スケジュールされた非可用期間中に、認証されたユーザアカウントのサブセットへ、セッションサーバへのウェイクオンデマンド・アクセスを選択的に提供するための方法５００の一実施形態のフロー図が示されている。ある実施形態において、方法５００は、結果的に、スケジュールされた非可用期間中に所定のユーザがセッションサーバを再起動できるようにするシステムを実行し、よって、セッションサーバへのウェイクオンデマンド・アクセスが提供される。方法５００は、サービス・ブローカ・マシンにより、クライアントマシンから少なくとも１つの資格認証情報を受信することを含んでもよい（５０２）。方法５００は、サービス・ブローカ・マシンにより、データベースから、少なくとも１つの資格認証情報に関連づけられる接続情報を要求することを含んでもよい（５０４）。方法５００は、サービス・ブローカ・マシンにより、データベースから、（Ｉ）データセンタの識別と、（ＩＩ）前記データセンタ内の少なくとも１つの仮想マシンの識別であって、前記少なくとも１つの仮想マシンは、（ｉ）第１の組織に関連づけられ、（ｉｉ）前記少なくとも１つの資格認証情報に関連づけられるユーザのために少なくとも１つの仮想リソースへのアクセスを提供するように指定され、かつ（ｉｉｉ）第２の組織に関連づけられる第２の仮想マシンをホストしかつ第２の組織のユーザへ共有セッションを提供する物理サーバ上で実行される、データセンタ内の少なくとも１つの仮想マシンの識別と、（ＩＩＩ）前記少なくとも１つの仮想マシンへの接続に用いるためのリソースユーザ名の識別と、を含む接続情報を受信することを含んでもよい（５０６）。方法５００は、サービス・ブローカ・マシンにより、少なくとも１つの仮想リソースが非可用であると決定することを含んでもよい（５０８）。方法５００は、サービス・ブローカ・マシンにより、受信される資格認証情報が、ユーザが少なくとも１つの非可用仮想リソースの再起動を要求することを認証されていることを示すかどうかを決定することを含んでもよい（５１０）。方法５００は、サービス・ブローカ・マシンにより、少なくとも１つの非可用仮想リソースの再起動を指示することを含んでもよい（５１２）。方法５００は、サービス・ブローカ・マシンにより、クライアントマシンへ接続情報を提供することを含んでもよい（５１４）。物理サーバは、クライアントマシンと、前記接続情報に基づいて（例えば、サービスブローカから受信される接続情報のコピーに基づいて、または、接続情報を使用したクライアントマシンからの接続要求の受信に基づいて）少なくとも１つの仮想リソースをユーザへ提供する少なくとも１つの仮想マシンとの接続を確立してもよい。
【００９６】
方法５００は、サービス・ブローカ・マシンにより、クライアントマシンから少なくとも１つの資格認証情報を受信することを含んでもよい（５０２）。ある実施形態では、サービス・ブローカ・マシンが少なくとも１つの資格認証情報を、図４に関連して先に述べたように受信する（４０２）。先に述べたように、クライアントマシン１０２のユーザは、クライアントマシン１０２上で実行されるクライアントエージェントを介してログインプロセスを開始してもよい。ユーザは、少なくとも１つの資格認証情報をクライアントエージェントに入力してもよい。サービス・ブローカ・マシン１０６ａは、先に述べたように、受信されるユーザ資格認証情報を（例えば、資格認証情報データベースに照らして）検証してもよい。
【００９７】
方法５００は、サービス・ブローカ・マシンにより、データベースから、少なくとも１つの資格認証情報に関連づけられる接続情報を要求することを含んでもよい（５０４）。ある実施形態では、サービス・ブローカ・マシンが接続情報を、図４に関連して先に述べたように要求する（４０４）。
【００９８】
方法５００は、サービス・ブローカ・マシンにより、データベースから、（Ｉ）データセンタの識別と、（ＩＩ）前記データセンタ内の少なくとも１つの仮想マシンの識別であって、前記少なくとも１つの仮想マシンは、（ｉ）第１の組織に関連づけられ、（ｉｉ）前記少なくとも１つの資格認証情報に関連づけられるユーザのために少なくとも１つの仮想リソースへのアクセスを提供するように指定され、かつ（ｉｉｉ）第２の組織に関連づけられる第２の仮想マシンをホストしかつ第２の組織のユーザへ共有セッションを提供する物理サーバ上で実行される、データセンタ内の少なくとも１つの仮想マシンの識別と、（ＩＩＩ）前記少なくとも１つの仮想マシンへの接続に用いるためのリソースユーザ名の識別と、を含む接続情報を受信することを含んでもよい（５０６）。ある実施形態では、サービス・ブローカ・マシンが接続情報を、図４に関連して先に述べたように受信する（４０６）。
【００９９】
方法５００は、サービス・ブローカ・マシンにより、少なくとも１つの仮想リソースが非可用であると決定することを含んでもよい（５０８）。サービス・ブローカ・マシン１０６ａは、仮想リソースのステータスを決定するために、データベース２２２に問い合わせ（ｑｕｅｒｙ）してもよい。サービス・ブローカ・マシン１０６ａは、管理マシン１０６ｅに可用性の識別を要求してもよく、次に、管理マシン１０６ｅは、（例えば、直接または間接的なネットワーク通信を介して）仮想リソースに問い合わせて可用性を決定してもよい。実施形態によっては、仮想リソース（例えば、セッションサーバ）は、仮想リソースを提供する仮想マシン２０６がシャットダウンされているために非可用である。他の実施形態において、仮想リソースは、（例えば、アプリケーションへのアクセスを提供する）仮想リソースへのアクセスを提供するセッションサーバが非可用であるという理由で、非可用である。リソースへのアクセスを提供する仮想マシン、またはそれ自体がリソースである仮想マシンは、専用（例えば、単一のユーザ専用）であっても、共有（例えば、複数のユーザが使用可能）であってもよい。ある実施形態において、サービス・ブローカ・マシン１０６ａは、（例えば、ポリシデータベースから）仮想リソースに関連づけられる可用性スケジュールを要求して、仮想リソースが可用であるか非可用であるか（生きている、生きていない、中断されている、中断されていない、またオフまたはオンとも呼ばれる）を決定してもよい。システムは、ユーザがスケジュールを設定できるユーザインタフェース（例えば、ウェブサーバを介して、またはウェブ・サービス・アプリケーション・プログラミング・インタフェース呼出しを介してユーザが利用できるようになる）を含んでもよく、システムは、データ構造（たとえば、データベースエントリ）を、スケジューリング情報を明記する受信されたユーザ入力を包含するように変更してもよい。実施形態によっては、サービス・ブローカ・マシン１０６ａは、少なくとも１つの仮想リソースがいつ非可用としてスケジュールされるかを決定するためにポリシデータベースに問い合わせ、その上で、前記少なくとも１つの仮想リソースが非可用であることを決定する。他の実施形態では、サービス・ブローカ・マシン１０６ａは、少なくとも１つの仮想リソースへのアクセスを提供するセッションサーバがいつ非可用としてスケジュールされるかを決定するためにポリシデータベースに問い合わせ、その上で、前記少なくとも１つの仮想リソースが非可用であることを決定する。
【０１００】
実施形態によっては、サービス・ブローカ・マシン１０６ａは、仮想リソースへのアクセスを提供するコンピューティング環境が非可用としてスケジュールされている（例えば、固定スケジュールに従って中断状態にあり、よってシステムは、サービスが要求されないはずの時間間隔に渡ってシャットダウンされる）ことを、資格認証情報が受信された時点で決定する。
【０１０１】
サービスが生きていなければ、サービス・ブローカ・マシン１０６ａは、ユーザ資格認証情報をチェックして、ユーザがサービス状態を「生きていない」から「生きている」に変更する許可を得ているかどうかを決定する。このような変更を行うことが認証されるユーザの例には、勤務時間外の時間に働くことを承認されているユーザ（例えば、必要に応じて残業することを承認されているオンコールユーザ）が含まれ得る。このような認証を得ていないユーザの例には、非従業員、または所定時間勤務のみが認証されている従業員（例えば、交替で勤務する、残業が許可されていないユーザ）が含まれ得る。供給されるユーザ資格認証情報は、データベース２２２に照らして検証されるが、データベース２２２は、エンドユーザを関連のサービスプラットフォームへ接続するために必要な少なくとも１つの属性を含む。これらの属性の中には、ユーザがシステム状態を変更する認証を得ているかどうかを明記するという属性がある。ある実施形態では、ユーザがログインを試みると、データベース２２２に記憶されているユーザの環境ステータスがチェックされ、そのスケジュール状態が評価される。
【０１０２】
要求されたリソースが可用であれば、サービス・ブローカ・マシン１０６ａは、先に述べたように、クライアントマシンと、要求されたリソースを提供する物理マシンとの接続を確立するように指示する。要求されたリソースが非可用であって、ユーザが状態を変更する許可を得ていなければ、クライアントマシン１０２上に、管理制限に起因してサービスが非可用であり、ユーザはそのシステム管理者に連絡をとること、という指示が表示される（これは、様々な形式の文および言語であり得、管理者は、メッセージをカスタマイズすることができる）。
【０１０３】
方法５００は、サービス・ブローカ・マシンにより、ユーザが少なくとも１つの非可用仮想リソースの再起動を要求することを認可されているかどうかを決定することを含んでもよい（５１０）。状態が「オフ」であれば、データベースにおけるユーザアカウント情報を評価してユーザが環境をオンにする認証を得ているかどうかが決定され、ユーザがその許可を得ていれば、ユーザに、ユーザがシステムをオンにすることを許可する対話型ダイアログが提示される。例として、ユーザが要求されたリソースの状態を変更する許可を得ていれば、「開始」または「ｏｋ」または「承認」またはこれらに類似する文言等のプロンプトを選択して状態を変更することを提示するメッセージが表示される。このメッセージも、管理者によって構成可能である。メッセージには、追加のサービス料金に関する警告が含まれてもよい。サービス・ブローカ・マシンは、少なくとも１つの非可用仮想リソースの再起動を、サービス・ブローカ・マシンが、少なくとも１つの警告にも関わらずリソースを覚醒させる命令の確定を含むユーザ入力を受信するまで延期してもよい。
【０１０４】
方法５００は、サービス・ブローカ・マシンにより、少なくとも１つの非可用仮想リソースの再起動を指示することを含んでもよい（５１２）。実施形態によっては、サービス・ブローカ・マシン１０６ａが、要求される少なくとも１つの仮想リソースに対するシステム開始コマンドを、要求される少なくとも１つの仮想リソースへのアクセスを提供するホスティングサーバ１０６上で実行される、仮想ハイパーバイザ２１６へ送信してもよい。他の実施形態では、サービス・ブローカ・マシン１０６ａは、少なくとも１つの非可用仮想リソースへのアクセスを提供するセッションサーバの再起動を指示してもよい。他の実施形態では、サービス・ブローカ・マシン１０６ａは、プロビジョニングマシン１０６ｆに、仮想リソースを提供する仮想マシン２０６を再起動するように命令する。さらなる実施形態において、サービス・ブローカ・マシン１０６ａは、管理マシン１０６ｅへ（例えば、管理コンポーネント２１８へ）、リソースを起動するために仮想マシンサービスを用いてアプリケーション・プログラミング・インタフェース（ＡＰＩ）呼出しをハイパーバイザへ送信する命令を送信してもよい。システム開始コマンドには、要求されるサービスへのアクセスを提供するために開始されるべき仮想サーバシステム（例えば、仮想マシン２０６）の識別（例えば、名前）が含まれてもよい。ハイパーバイザ２１６は、指定された仮想マシン２０６に対する起動コマンドを開始してもよい。システム２００は、仮想リソースのステータスが非可用から可用に変わる時点でシステム状態の変化をデータベース２２２に記録してもよく、システム２００は、仮想リソースの状態を追跡し、かつこのような各仮想リソースへの状態変化を追跡してもよい。システム２００は、仮想リソースの状態の変更を記録してもよく、例えば、システム２００は、時刻、日付、ユーザ識別、および少なくとも１つの起動されたリソースの識別を含むイベントをログしてもよい。ある実施例において、サービス・ブローカ・マシン１０６ａは、リソース状態および関連データの変更のログを含む、システム状態の変化を記録するアプリケーションを実行する。別の実施形態では、ウェブベースのポータルを可用にするマシンも、システム状態の変化を記録するアプリケーションを実行する。一般的な当業者には理解されるように、システム２００内の任意のマシンまたはコンポーネントは、何れも、システム状態の変化を記録するアプリケーションを実行することにより、このロギング機能を提供する可能性もある。
【０１０５】
サービス・ブローカ・マシン１０６ａは、再起動コマンドが送信された後、仮想リソース（例えば、セッションサーバ、仮想マシンまたは他の仮想リソース）のステータスの変更を周期的または継続的にチェックしてもよい。
【０１０６】
方法５００は、サービス・ブローカ・マシンにより、クライアントマシンへ接続情報を提供することを含んでもよい（５１４）。方法５００は、物理サーバ（例えば、受信される接続情報において識別される物理サーバ）により、クライアントマシンと、前記接続情報に基づいて少なくとも１つの仮想リソースをユーザへ提供する少なくとも１つの仮想マシンとの接続を確立することを含んでもよい。
【０１０７】
ある実施形態において、方法５００は、クライアントマシン１０２へ、システムが要求されたリソースを再起動するプロセスを開始したことを示す通知を送信することを含み、前記通知は、要求を行ったクライアントマシン１０２へ、または同じくクライアントマシン１０２のユーザによりアクセスされる第２のクライアントマシンへ（例えば、クライアントマシン１０２のユーザが用いるモバイル・コンピューティング・デバイスまたはスマートフォンへ）送信されてもよい。例えば、システム２００に含まれるメッセージ配信システム（不図示）は、（例えば、外部電子メールシステムおよび先に記憶されている資格認証情報を用いて）電子メールを生成し、かつこの電子メールを、アクセスを要求するクライアントマシン１０２のユーザへ送信してもよい。別の例として、メッセージ配信システムは、（例えば、ショート・メッセージ・サービス（ＳＭＳ）プロトコルに従って電子メッセージを送信するための第三者プラットフォームを用いて）テキストメッセージを生成してもよい。
【０１０８】
マシン１０２ａ上で実行されるクライアントエージェント２０４ａは、クライアントエージェント２０４ａが、要求されたリソースが可用であるという表示を受信するまで、サービス・ブローカ・マシン１０６ａへの問合せを周期的に行ってもよい。状態変化が完了して要求されたリソースが起動されているという表示を受信した時点で、クライアントエージェント２０４ａは、自動的に、ユーザの最初のログイン試行中に記憶されたエンドユーザ資格認証情報を用いて、受信される接続情報において識別される物理マシンへの接続を確立してもよい。
【０１０９】
あるいは、クライアントエージェント２０４ａは、要求されたサービス環境へのその接続を、この接続が成功裡に確立されるまで定間隔で周期的に再試行するように構成されることが可能である（例えば、ある期間に一度再試行し、前記期間は、ユーザによって確定されてもよく、限定でなく例えば、前記期間は、１５、３０、４５または６０秒であっても、マシンまたはユーザの何れかが指定する他の何らかの期間であってもよい）。
【０１１０】
あるいは、サービス・ブローカ・マシン１０６ａは、システム状態が変化しているかどうかを決定するためにデータベース２２２への問合せを継続するようにプログラムされることが可能であり、要求されたリソースが起動されているという状態が表示されると、マシン１０２ａに代わってその接続を開始することができる。
【０１１１】
あるいは、マシン１０２ａ上で実行されるＨＴＭＬ５Ｐｏｒｔａｌアプリケーションは、要求されたサービス環境へのその接続を、この接続が（例えば、サービス・ブローカ・マシン１０６ａにより提供されるウェブサービスを介して）成功裡に確立されるまで定間隔で再試行するようにプログラムされることが可能である（例えば、ある期間に一度再試行し、前記期間は、ユーザによって確定されてもよく、限定でなく例えば、前記期間は、１５、３０、４５または６０秒であっても、マシンまたはユーザの何れかが指定する他の何らかの期間であってもよい）。
【０１１２】
あるいは、起動が完了した時点で、受信される接続情報において識別される物理マシンがマシン１０２への接続を確立してもよい。
【０１１３】
一般的な当業者には理解されるであろうが、これらの代替方法は、機能を変えるためにユーザがそのエンドポイントデバイスであるマシン１０２ａにおいて制御できるオプションおよび設定を提供するように、クライアントエージェント２０４ａおよびＨＴＭＬ５Ｐｏｒｔａｌにおいて組み合わされても、別段で構成されてもよい。
【０１１４】
これまでに述べたシステムが、これらのコンポーネントの何れかまたは各々を複数提供し得、かつこれらのコンポーネントがスタンドアロンマシンまたは実施形態によって分散システムにおける複数のマシンの何れかに提供され得ることは、理解されるべきである。「ある実施例において」、「別の実施形態では」といった言い回しは、概して、こうした言い回しに続く特定の特徴、構造、ステップまたは特性が本開示の少なくとも１つの実施形態に包含され、かつ本開示の２つ以上の実施形態にも包含され得ることを意味する。このような言い回しは、同じ実施形態を指し得るが、必ずしもこの限りではない。
【０１１５】
これまでに述べたシステムおよび方法は、ソフトウェア、ファームウェア、ハードウェアまたはこれらの任意の組合せを生成するためのプログラミングおよび／またはエンジニアリング技術を用いる、方法、装置または製品として実装されてもよい。上述の技術は、プロセッサ、プロセッサ読取り可能記憶媒体（例えば、揮発性および不揮発性メモリおよび／または記憶素子を含む）、少なくとも１つの入力デバイスおよび少なくとも１つの出力デバイスを含むプログラマブルコンピュータ上で実行される１つまたは複数のコンピュータプログラムにおいて実装されてもよい。プログラムコードは、記述した機能を実行しかつ出力を生成するために、入力デバイスを用いて入力される入力に適用されてもよい。出力は、１つまたは複数の出力デバイスに提供されてもよい。
【０１１６】
添付の特許請求の範囲に含まれる各コンピュータプログラムは、アッセンブリ言語、機械言語、高水準手続き型プログラミング言語またはオブジェクト指向プログラミング言語等の任意のプログラミング言語で実装されてもよい。プログラミング言語は、例えば、ＬＩＳＰ、ＰＲＯＬＯＧ、ＰＥＲＬ、Ｃ、Ｃ＋＋、Ｃ＃、ＪＡＶＡ（登録商標）または任意のコンパイル型またはインタプリタ型プログラミング言語であってもよい。
【０１１７】
このようなコンピュータプログラムは各々、コンピュータプロセッサによる実行のために、機械可読記憶デバイスにおいて実体的に具現されるコンピュータ・プログラム・プロダクトにおいて実装されてもよい。本発明の方法ステップは、コンピュータ可読媒体上で実体的に具現されるプログラムを実行するコンピュータプロセッサによって実行され、入力に作用しかつ出力を生成することにより本発明の機能を実行してもよい。適切なプロセッサには、例として、汎用および専用双方のマイクロプロセッサが含まれる。概して、プロセッサは、読取り専用メモリおよび／またはランダム・アクセス・メモリから命令およびデータを受信する。コンピュータプログラム命令を実体的に具現することに適するストレージデバイスには、例えば、あらゆる形式のコンピュータ可読デバイス、ファームウェア、プログラマブル論理、ハードウェア（例えば、集積回路チップ、電子デバイス、コンピュータ可読不揮発性記憶ユニット、ＥＰＲＯＭ、ＥＥＰＲＯＭおよびフラッシュ・メモリ・デバイスを含む半導体メモリデバイス等の不揮発性メモリ、内蔵ハードディスクおよびリムーバブルディスク等の磁気ディスク、光磁気ディスクおよびＣＤ−ＲＯＭ）が含まれる。前述の何れも、特殊設計のＡＳＩＣ（特定用途向け集積回路）またはＦＰＧＡ（フィールド・プログラマブル・ゲート・アレイ）によって補完されても、これらに組み込まれてもよい。コンピュータは、概して、プログラムおよびデータを内部ディスク（不図示）またはリムーバブルディスク等の記憶媒体からも受信することができる。これらのエレメントは、従来のデスクトップまたはワークステーションコンピュータにおいて、ならびに本明細書に記述する方法を実装するコンピュータプログラムを実行することに適する他のコンピュータにおいても見出され、これらは、デジタル印刷エンジンまたはマーキングエンジン、ディスプレイモニタ、または用紙、フィルム、ディスプレイ画面または他の出力媒体上へカラーピクセルまたはグレースケールピクセルを生成できる他のラスタ出力デバイスと併せて使用されてもよい。コンピュータは、プログラムおよびデータを、プログラムへのアクセスを提供する第２のコンピュータからも、ネットワーク伝送線、無線伝送媒体、空間を伝播する信号、電波、赤外線信号、他を介して受信してもよい。
【０１１８】
セッションサーバへウェイクオンデマンド・アクセスを提供するための方法およびシステムの所定の実施形態について説明したが、これで、当業者には、本開示の概念を組み込んだ他の実施形態も使用され得ることが明らかとなるであろう。したがって、本開示は所定の実施形態に限定されるものではなく、添付のクレームの精神および範囲によってのみ限定されるべきものである。
【図１Ａ】
2020516982.tif 000003
【図１Ｂ】
2020516982.tif 000004
【図１Ｃ】
2020516982.tif 000005
【図１Ｄ】
2020516982.tif 000006
【図２Ａ】
2020516982.tif 000007
【図２Ｂ】
2020516982.tif 000008
【図３Ａ】
2020516982.tif 000009
【図３Ｂ】
2020516982.tif 000010
【図４】
2020516982.tif 000011
【図５】
2020516982.tif 000012
【国際調査報告】
2020516982.tif 000013
2020516982.tif 000014
2020516982.tif 000015