(57)【特許請求の範囲】
【請求項１】
コンピューティングアプリケーション機能に対する権利を管理するためのコンピュータ実装方法であって、
実行可能命令で構成される１つ以上のコンピュータシステムの制御下で、
アプリケーションの少なくとも一部分を実行するように少なくとも構成される少なくとも１つの仮想マシンをプロビジョニングすることであって、少なくとも部分的に仮想リソースプロバイダによって実施される、プロビジョニングすることと、
少なくとも部分的に、前記アプリケーションの少なくとも１つのインターフェースへの少なくとも１つの通信接続を確立することによって、少なくとも１人のユーザに、前記アプリケーションの機能へのアクセスを提供することであって、前記少なくとも１つのインターフェースは、少なくとも部分的に前記少なくとも１つの仮想マシンによって維持されることと、
前記アプリケーションの前記機能へのアクセス条件を施行することであって、前記アプリケーションの前記機能への前記アクセス条件は、前記少なくとも１つの通信接続および前記少なくとも１つのインターフェースを経由して前記アクセスが発生することを少なくとも規定し、前記アプリケーションの前記機能へ前記アクセス条件の前記施行は、少なくとも部分的に前記仮想リソースプロバイダによって実施されることと、
前記少なくとも１人のユーザへの提示のために、前記少なくとも１つの通信接続を経由してデータが伝達されることを許可することと、
を含む、コンピュータ実装方法。
【請求項２】
前記少なくとも１つの仮想マシンへのアクセス条件を施行することをさらに含み、前記少なくとも１つの仮想マシンへの前記アクセス条件は、前記少なくとも１つの通信接続および前記少なくとも１つのインターフェースを経由して前記アクセスが発生することを少なくとも規定し、前記少なくとも１つの仮想マシンへの前記アクセス条件の前記施行は、少なくとも部分的に前記仮想リソースプロバイダの制御プレーンによって実施される、請求項１に記載のコンピュータ実装方法。
【請求項３】
前記少なくとも１つの仮想マシンは、実装リソースのセットで実装され、前記実装リソースのセットの機能へのアクセスは、前記仮想リソースプロバイダの制御プレーンによって制御される、請求項１に記載のコンピュータ実装方法。
【請求項４】
前記実装リソースのセットは、揮発性記憶装置、不揮発性記憶装置、プロセッサ、物理サーバ、ネットワークインターフェースポート、ネットワークスイッチ、およびネットワーク経路のうちの少なくとも１つを含む、請求項３に記載のコンピュータ実装方法。
【請求項５】
前記少なくとも１つの通信接続は、実装リソースのセットで実装され、前記実装リソースのセットの機能へのアクセスは、前記仮想リソースプロバイダの制御プレーンによって制御される、請求項１に記載のコンピュータ実装方法。
【請求項６】
前記少なくとも１人のユーザに、前記アプリケーションの機能へのアクセスを提供することは、前記アクセス条件を規定する少なくとも１つのポリシーを作成することを含み、前記アクセス条件を施行することは、前記仮想リソースプロバイダのポリシー施行構成要素で、前記少なくとも１つのポリシーを施行することを含む、請求項１に記載のコンピュータ実装方法。
【請求項７】
前記少なくとも１つのインターフェースは、前記アプリケーションの複数の機能的特徴に対応する複数のインターフェース要素を備え、前記アプリケーションの前記機能への前記アクセス条件は、前記アクセスが前記複数のインターフェース要素のうちの選択されたサブセットに対応することをさらに規定する、請求項１に記載のコンピュータ実装方法。
【請求項８】
前記少なくとも１つの仮想マシンをプロビジョニングすることは、前記少なくとも１人のユーザに関連するアカウントに課金される関連するコストのセットを有する、請求項１に記載のコンピュータ実装方法。
【請求項９】
前記関連するコストのセットは、アクティブ化および非アクティブ化されることが可能である少なくとも１つのアプリケーション特徴に対応する少なくとも１つのコストを含む、請求項８に記載のコンピュータ実装方法。
【請求項１０】
前記仮想リソースプロバイダの制御プレーンにおいて、前記アプリケーションの少なくとも１つの特徴をアクティブ化するユーザ要求を、前記少なくとも１人のユーザから受信することと、
前記アプリケーションの特徴構成インターフェースに、前記少なくとも１つの特徴をアクティブ化する制御プレーン要求を提出することであって、前記特徴構成インターフェースは、少なくとも部分的に前記少なくとも１つの仮想マシンによって維持され、かつ前記少なくとも１つの通信接続を経由して前記少なくとも１人のユーザにアクセスできないことと、
前記制御プレーンにおいて、前記少なくとも１つの特徴がアクティブ化されたという確認を受信することと、
前記少なくとも１つのアクティブ化された特徴に関連するコストが、前記少なくとも１人のユーザに関連するアカウントに課金されることを、前記制御プレーンのコスト追跡構成要素に通知することと、
をさらに含む、請求項１に記載のコンピュータ実装方法。
【請求項１１】
前記少なくとも１つの仮想マシンをプロビジョニングすることは、前記少なくとも１人のユーザに関連するアカウントに課金される関連の実装リソースコストのセットを有する、請求項１に記載のコンピュータ実装方法。
【請求項１２】
前記少なくとも１つの仮想マシンをプロビジョニングするユーザ要求を受信することをさらに含み、前記ユーザ要求は、前記少なくとも１つの仮想マシンに利用可能になる少なくとも１つの実装リソースの少なくとも１つの容量を少なくとも部分的に規定する、請求項１に記載のコンピュータ実装方法。
【請求項１３】
コンピューティングアプリケーション機能に対する権利を管理するためのコンピュータ化システムであって、
複数の仮想リソースを実装するように少なくとも構成可能である実装リソースのセットと、
プロビジョニング要求に応答して、前記実装リソースのセットで仮想リソースをプロビジョニングするように少なくとも構成される仮想リソースプロビジョニング構成要素であって、前記仮想リソースは、アプリケーションの少なくとも一部分を実行するように少なくとも構成される少なくとも１つの仮想マシンと、前記アプリケーションの少なくとも１つのインターフェースへの少なくとも１つの通信接続とを含む、仮想リソースプロビジョニング構成要素と、
前記アプリケーションの機能へのアクセスの条件を施行するように少なくとも構成されるポリシー施行構成要素であって、前記アプリケーションの前記機能への前記アクセスの条件は、前記少なくとも１つの通信接続および前記少なくとも１つのインターフェースを経由して前記アクセスが発生することを少なくとも規定する、ポリシー施行構成要素と、
を備える、コンピュータ化システム。
【請求項１４】
前記コンピュータ化システムは、前記アプリケーションの前記機能にアクセスする要求をユーザが提出することを可能にするように少なくとも構成されるユーザインターフェース構成要素をさらに備え、前記少なくとも１つの仮想マシンは、前記アプリケーションの前記機能にアクセスする前記要求に少なくとも部分的に応答して、前記仮想リソースプロビジョニング構成要素によってプロビジョニングされる、請求項１３に記載のコンピュータ化システム。
【請求項１５】
前記アプリケーションの前記少なくとも一部分を実行し、かつ前記アプリケーションの前記機能にアクセスすることに関連する少なくとも１つのコストを構成するために、アプリケーションベンダーが前記少なくとも１つの仮想マシンを構成することを可能にするように少なくとも構成されるベンダーインターフェース構成要素をさらに備える、請求項１３に記載のコンピュータ化システム。
【発明の詳細な説明】
【背景技術】
【０００１】
データ処理およびデータ工学から教育および娯楽にまで、コンピュータ機器は、現代の家庭、学校、および職場で、幅広い応用を見出している。多くのこのようなコンピュータ機器は、命令（例えば、コンピュータプログラミング言語の要素に対応する命令）を実行することができるプロセッサを含み、コンピュータ機器の機能の多くは、実行可能命令のセットによって、任意選択により、構成データのセットによって（例えば、コンピュータプログラムによって）、制御され得る。特定のアプリケーションおよび／または機能のセットのためのコンピュータプログラムの開発には、時間と資源の莫大な投資が必要とされ得る。例えば、何十人もの人のチームによる何年にも渡る努力は、珍しいことではない。しかしながら、実行可能命令および構成データは、容易にコピーされるデジタル表現（例えば、アプリケーション「実行可能」または「バイナリ」）を有することができ、使用可能な機能の不法な使用および／または補償されない使用（例えば、アプリケーション「著作権侵害」）は、重大な問題である。
【０００２】
いくつかの従来の「権利管理」スキーム（例えば、「コピー防止」スキーム）は、このような不法な使用および／または補償されない使用に対処することを試みている。例えば、いくつかの従来の権利管理スキームは、対応するアプリケーション機能のセットをロック解除する暗号キーを伴う。いくつかの従来の権利管理スキームは、遠隔サーバ（例えば、通信ネットワークにおいて遠隔である）との認証および／または定期的再認証を伴う。いくつかの従来の権利管理スキームは、物理的コンピュータの機器構成要素（例えば、「ドングル」）のローカルプレゼンスの確認を伴う。しかしながら、従来の権利管理スキームは、欠点を有する。
【０００３】
例えば、アプリケーション機能の不法な使用および／または補償されない使用を可能にするコピーは、ユーザが物理的アクセスを有するコンピュータ機器のハードウェアを制御し得、および／またはその上にインストールされ得る。実行可能命令および／または構成データの一部が暗号化および／またはロックされ始める場合であっても、このような物理的アクセスによって、ユーザは、対応する暗号解読および／またはロック解除部分を入手することが可能になり、あるいは、正当なキーを入手する必要性を回避することが可能になり得る。また、このような物理的アクセスによって、ユーザは、遠隔認証サーバおよび／またはローカルドングルを模倣することが可能になり、あるいは、その必要性を回避することが可能になり得る。低レベルコンピュータ機器機能（例えば、オペレーティングシステムレベルの機能）に対する遠隔アクセスおよび／またはコンピュータ機器に接続される通信ネットワークの低レベル機能に対するアクセス（例えば、送信中のデータパケットに対するアクセス「スニッフィング」）によって、同様に、アプリケーション機能の不法な使用および／または補償されない使用に対するユーザの意図が可能になり得る。
【図面の簡単な説明】
【０００４】
本開示に従う種々の実施形態について、以下の図面を参照して説明する。
【図１】少なくとも１つの実施形態に従う態様を実装するための例示的環境を図示する概略図である。
【図２】少なくとも１つの実施形態に従う例示的仮想リソースプロビジョニングアーキテクチャの態様を示す概略図である。
【図３】少なくとも１つの実施形態に従う例示的仮想リソースプロバイダの態様を示す概略図である。
【図４】少なくとも１つの実施形態に従う例示的制御プレーンの態様を示す概略図である。
【図５】少なくとも１つの実施形態に従って、アプリケーション機器を仮想リソースプロバイダで利用可能にするための例示的ステップを示すフローチャートである。
【図６】少なくとも１つの実施形態に従って、アプリケーション機器機能にアクセスするための例示的ステップを示すフローチャートである。
【図７】少なくとも１つの実施形態に従う動的特徴アクティブ化のための例示的ステップを示すフローチャートである。
【図８】少なくとも１つの実施形態に従うワークフロー管理のための例示的ステップを示すフローチャートである。
【０００５】
同様の構成要素および特徴に言及するために、開示および図面の全体を通して同一の数字を使用するが、このような数字の繰り返しは、説明および理解を簡潔にするためにあり、種々の実施形態に対する限定として見なされないべきである。
【発明を実施するための形態】
【０００６】
以下の説明では、種々の実施形態について説明する。説明する目的で、実施形態に関する完全な理解を提供するために、具体的な構成および詳細について記載する。しかしながら、具体的な詳細がなくても実施形態が実用化され得ることも、当業者に明らかである。さらに、説明される実施形態を曖昧にしないために、周知の特徴を省略または簡略化し得る。
【０００７】
少なくとも１つの実施形態では、コンピューティングアプリケーション機能の不法で、不正で、補償されない、および／または補償金の低い利用は、コンピューティングアプリケーション機能を実装する実行可能命令へのアクセスを制御することによって、少なくとも部分的に軽減され得る。実行可能命令は、マルチテナント仮想リソースプロバイダによりプロビジョニングされる１つ以上の仮想コンピューティングマシン（「仮想マシン」）のセットによって実行され得る。仮想リソースプロバイダは、物理サーバ、物理ネットワークスイッチ、および物理ネットワーク経路等の管理された実装リソースのセットで、仮想マシンおよび他の仮想リソースをプロビジョニングし得る。実装リソースの割り当ておよび進行中の再割り当てを含むプロビジョニングは、仮想リソースプロバイダの制御プレーンによって管理され得る。制御プレーンは、仮想リソースアクセスポリシーの管理および施行を含む仮想リソースプロバイダの多数の制御機能を実施し得る。
【０００８】
例えば、仮想リソースプロバイダは、仮想マシンのセットと、仮想マシンのセットとの通信を可能にする通信接続のセットとをプロビジョニングし得る。仮想リソースプロバイダの制御プレーンにより施行される仮想リソースアクセスポリシーのセットは、コンピューティングアプリケーション機能を実装する実行可能命令を実行するプロビジョニングされた仮想マシンのセットが、プロビジョニングされた通信接続のセット（「許可された」通信接続のセット）でアクセスされ、他の通信接続でアクセスされないことを集合的に規定する１つ以上のポリシーを含み得る。通信プロトコルが、通信ポートもしくはサブアドレス等の規定を許可する場合、このようなポリシーは、許可された通信接続を最高レベルの粒度に規定し得る。仮想リソースアクセスポリシーのセットは、コンピューティングアプリケーション機能が、コンピューティングアプリケーション機能の第三者プロバイダまたはベンダーと、コンピューティングアプリケーション機能のユーザとの間のライセンスまたは契約に従ってアクセスされることを集合的に規定する１つ以上のポリシーをさらに含み得る。
【０００９】
少なくとも１つの実施形態では、許可された通信接続のセットは、仮想リソースプロバイダによりプロビジョニングされた仮想マシン間の通信接続に対応する。例えば、許可された通信接続のセットは、コンピューティングアプリケーション機能を実装する実行可能命令を実行するプロビジョニングされた仮想マシンのセット（「アプリケーション機器」）と、ユーザアカウントおよび作業環境がオペレーティングシステムによって維持される仮想リソースプロバイダによりプロビジョニングされる１つ以上の仮想マシン（１つ以上の「ユーザＶＭ」）との間にあり得る。少なくとも１つの実施形態では、許可された通信接続のセットは、仮想リソースプロバイダによりプロビジョニングされず、かつ制御プレーンが、アプリケーション機器および／または許可された通信接続のセットに関するアクセスポリシーを施行し得るように、仮想リソースプロバイダにより維持される仮想プライベートコンピューティングクラウド（ＶＰＣ）に関与する、アプリケーション機器と、１つ以上の仮想マシンおよび／またはコンピュータ機器との間の通信接続を含み得る。
【００１０】
種々の手法は、種々のアプリケーションの種々の環境に実装されてもよい。例えば、図１は、種々の実施形態に従う態様を実装するための例示的環境１００の態様を図示する。理解されるように、説明の目的で、ウェブ基盤の環境を利用し得るが、必要に応じて、異なる環境を利用して種々の実施形態を実装してもよい。図示する環境１００は、テストまたは開発部分（またはサイド）と、生産部分との両方を含む。生産部分は、電子クライアント機器１０２を含み、この電子クライアント機器１０２には、要求、メッセージ、または情報を適正なネットワーク１０４上で送受信し、かつまた機器１０２のユーザに情報を伝達するように動作可能である任意の適正な機器が含まれ得る。このようなクライアント機器の例として、パーソナルコンピュータ、携帯電話、携帯型メッセージング機器、ラップトップ型コンピュータ、タブレットコンピュータ、セットトップボックス、携帯情報端末、電子書籍リーダ等が挙げられる。
【００１１】
ネットワーク１０４には、イントラネット、インターネット、セルラーネットワーク、ローカルエリアネットワーク、広域ネットワーク、無線データネットワーク、もしくは任意の他のこのようなネットワーク、またはそれらの組み合わせを含む任意の適正なネットワークが含まれてもよい。このようなシステムに利用される構成要素は、ネットワークの種類および／または選択される環境に少なくとも部分的に依存し得る。このようなネットワークを介して通信するためのプロトコルおよび構成要素については、周知であり、本明細書に詳細に説明しない。ネットワーク上の通信は、有線接続または無線接続、およびそれらの組み合わせによって可能になってもよい。本例では、環境が、要求を受信し、かつその要求に応答してコンテンツをサーブするためのウェブサーバ１０６を含むため、ネットワーク１０４は、インターネットを含むが、当業者に明白であるように、他のネットワークのために、同様の目的を果たす代替機器を利用してもよい。
【００１２】
例示的環境１００は、少なくとも１つのアプリケーションサーバ１０８およびデータストア１１０を含む。いくつかのアプリケーションサーバ、層、または他の要素、プロセス、もしくは構成要素が存在してもよく、それらは、つながれてもよく、あるいは構成されてもよく、適正なデータストアからデータを入手する等のタスクを実施するために相互作用してもよいことが理解されたい。本明細書で使用する際、用語の「データストア」は、データを格納、データにアクセス、および／またはデータを読み出しすることができる任意の機器または機器の組み合わせを言及し、データサーバ、データベース、データ記憶装置、およびデータ記憶媒体の任意の組み合わせおよび任意の数を、任意の標準環境、分散環境、またはクラスター環境で含んでもよい。
【００１３】
アプリケーションサーバ１０８は、クライアント機器１０２の１つ以上のアプリケーションの態様を実行するために、必要に応じてデータストアと統合するための、任意の適正なハードウェアおよびソフトウェアを含んでもよく、さらに、アプリケーションのデータアクセスおよびビジネスロジックの大部分を処理してもよい。アプリケーションサーバ１０８は、データストア１１０と協働して、アクセス制御サービスを提供し、ユーザに転送されるテキスト、図形、音声、および／または映像等のコンテンツを生成することができ、これらのコンテンツは、本例では、ＨＴＭＬ、ＸＭＬ、または別の適正な構造化言語の形式で、ウェブサーバ１０６によってユーザにサーブされ得る。
【００１４】
全ての要求および応答の処理、ならびにクライアント機器１０２とアプリケーションサーバ１０８との間のコンテンツの配信は、ウェブサーバ１０６によって処理され得る。本明細書に説明する構造化コードが、本明細書の他の部分で説明するように、任意の適正な機器またはホスト機械上で実行され得るため、ウェブサーバ１０６およびアプリケーションサーバ１０８が必要とされず、単に例示的な構成要素であることを理解されたい。さらに、環境１００は、テスト自動化フレームワークがユーザまたはアプリケーションがサブスクライブし得るサービスとして提供され得るように、設計され得る。テスト自動化フレームワークは、本明細書に説明する種々のテストパターンのいずれかの実装として提供されてもよいが、本明細書に説明または提案されるように、種々の他の実装も利用してもよい。
【００１５】
また、環境１００は、開発および／またはテストサイドも含み得、これは、開発者、データ管理者、または試験者等のユーザがシステムにアクセスすることを可能にするユーザ機器１１８を含む。ユーザ機器１１８は、クライアント機器１０２に関して上記に説明するように、任意の適正な機器または機械であってもよい。また、環境１００は、アプリケーションサーバ１０８に類似して機能する開発サーバ１２０も含み得るが、典型的には、コードが生産サイドで展開および実行されて、例えば、外部ユーザにアクセス可能になる前に、開発およびテスト中にコードを起動する。いくつかの実施形態では、アプリケーションサーバは、開発サーバとして機能してもよく、別々の生産ストレージおよびテストストレージを利用しなくてもよい。
【００１６】
データストア１１０は、いくつかの別々のデータテーブル、データベース、または特定の態様に関するデータを格納するための他のデータストレージ機構および媒体を含んでもよい。例えば、図示するデータストア１１０は、生産データ１１２およびユーザ情報１１６を格納するための機構を含み、この機構は、コンテンツを生産サイドにサーブするために利用され得る。また、データストア１１０は、テストデータ１１４を格納するための機構を含むように示され、この機構は、テストサイドのユーザ情報で利用され得る。ページイメージ情報およびアクセス権情報のため等の、データストア１１０に格納される多くの他の態様が存在してもよく、これらが、上記に列挙される機構のいずれかに必要に応じて格納されてもよく、またはデータストア１１０の追加の機構に格納されてもよいことを理解されたい。
【００１７】
データストア１１０は、それに関連する論理によって、アプリケーションサーバ１０８または開発サーバ１２０からの命令を受信し、かつそれに応答してデータを入手、更新、または処理するように動作可能である。一例では、ユーザは、一定の種類の項目について検索要求を提出し得る。この場合、データストア１１０は、ユーザの身元を検証するためにユーザ情報１１６にアクセスし得、その種類の項目に関する情報を入手するために、カタログ詳細情報にアクセスし得る。次いで、情報は、ユーザがユーザ機器１０２上のブラウザを介して閲覧可能であるウェブページ上に列挙する結果等で、ユーザに返送され得る。特定の関心項目のための情報は、専用のページまたはブラウザのウィンドウで閲覧され得る。
【００１８】
各サーバは、典型的には、そのサーバの一般管理および動作のための実行可能なプログラム命令を提供するオペレーティングシステムを含み、典型的には、サーバのプロセッサによる実行時に、サーバがその意図する機能を実施することを可能にする命令を格納するコンピュータ可読媒体を含む。オペレーティングシステムの適切な実装およびサーバの一般的な機能は、既知であり、または市販されており、特に、本明細書の開示を考慮して、当業者によって容易に実装される。
【００１９】
一実施形態における環境１００は、１つ以上のコンピュータネットワークまたは直接接続を使用して、通信リンクを介して相互接続されるいくつかのコンピュータシステムおよび構成要素を利用する分散コンピューティング環境である。しかしながら、このようなシステムが、図１に図示する構成要素より多いまたは少ない数のシステムで同等に良好に動作し得ることが、当業者によって理解される。したがって、図１のシステム１００の描写は、事実上例示的であるものとして見なされ、本開示の範囲を限定するものとして見なされない。
【００２０】
少なくとも１つの実施形態では、環境１００の１つ以上の態様は、仮想リソースプロビジョニングアーキテクチャを組み込み得る、および／またはそれに組み込まれ得る。図２は、少なくとも１つの実施形態に従う例示的仮想リソースプロビジョニングアーキテクチャ２００の態様を示す。例示的仮想リソースプロビジョニングアーキテクチャ２００は、ネットワーク２０８上で仮想リソースプロバイダ２０６に通信接続される多数のクライアント２０２〜２０４を含む。例えば、クライアント２０２〜２０４は、図１のコンピュータ機器１０２等のコンピュータ機器および／またはこのようなコンピュータ機器に組み込まれるクライアントプログラムに対応し得る。クライアント２０２とクライアント２０４との間の省略は、仮想リソースプロビジョニングアーキテクチャ２００が、任意の適切な数のクライアントを含み得ることを示唆するが、明確にするために、図２には２つしか示されない。省略は、図面全体を通して同様に使用される。
【００２１】
クライアント２０２〜２０４のうちの１つ以上は、仮想リソースプロバイダ２０６の制御プレーン２１０と相互作用することによって、１つ以上の仮想コンピューティングリソース２１２をプロビジョニングするために、仮想リソースプロバイダ２０６のテナントに関連する１人以上の認定ユーザによって利用され得る。代替的または付加的に、クライアント２０２〜２０４のうちの１つ以上は、プロビジョニングされた仮想コンピューティングリソース２１２と相互作用するために利用されてもよい。プロビジョニングされた仮想コンピューティングリソース２１２は、任意の適切な種類および／または数の仮想リソース２１４〜２１６を含んでもよい。適切な仮想リソース２１４〜２１６の例として、仮想コンピュータシステム（ＶＣＳ）、仮想ネットワーク、仮想プライベートネットワーク（ＶＰＮ）、仮想ネットワーク接続、仮想データストア、仮想ファイルシステムボリューム、特殊データ処理エージェント、音声および映像ストリーミングエージェントを含む媒体ストリーミングエージェント、メッセージ待ち行列、出版／購読トピックに発行されるイベントに一致する予約購読を有する購読者に通知するように構成される出版／購読トピック、監視エージェント、負荷バランシングエージェント、ならびに適切なそれらの組み合わせ等の、仮想マシンが挙げられる。
【００２２】
仮想リソースプロバイダ２０６は、任意の適切な種類および／または数の実装リソース２１８をさらに含んでもよい。プロビジョニングされたコンピューティングリソース２１２のそれぞれ、は、実装リソース２１８のセットによって実装され得る。少なくとも１つの実施形態では、実装リソース２１８のうちの種々の実装リソースは、多様なプロビジョニングされたコンピューティングリソース２１２を少なくとも部分的に実装することに関与するように構成され得る。適切な実装リソース２１８の例として、ＶＣＳサーバ、データストアサーバ、コンピュータ、サーバラック、スイッチ、ルータ、ゲートウェイ、ブリッジ、ハブ、リピータ、ファイアウォール、および無線トランシーバを含むネットワークハードウェア、電力供給装置、発電機、データセンタ、データセンタ内の部屋、モバイルデータセンタ、ならびにハードドライブを含む不揮発性記憶装置、中央処理装置（ＣＰＵ）等の処理装置、処理装置内のキャッシュ、マルチコア処理装置内の処理コア、ランダムアクセスメモリ（ＲＡＭ）モジュールを含むメモリモジュール、およびマルチチップメモリモジュールのＲＡＭチップ等の揮発性記憶装置、ネットワークインターフェースハードウェア、ならびに適切なそれらの組み合わせが挙げられる。
【００２３】
少なくとも１つの実施形態では、仮想コンピュータシステム等の、１つ以上の種類のプロビジョニングされたコンピューティングリソース２１２は、標準化された実装リソース容量のセット（例えば、標準化された量の揮発性および／または不揮発性ストレージ）を有する実装リソースのセットで、デフォルト設定により実装される。異なる実装リソース容量が、このようなコンピューティングリソース２１２にプロビジョニングされてもよい。例えば、このようなコンピューティングリソース２１２は、実装リソース容量のセットを集合的に有する実装リソースでプロビジョニングされてもよく、実装リソース容量のセットのうちの１つ以上は、標準化されたセットでの対応する実装リソース容量の倍数である。１ギガバイトの利用可能なＲＡＭを含む仮想コンピュータシステムが、「小さい」サイズに対応すると仮定する。２ギガバイトおよび４ギガバイトのＲＡＭに対応する「中間」および「大きい」サイズを含む仮想コンピュータシステムは、例えば、それぞれ、要求され得る。より大きい「サイズ」のプロビジョニングされたコンピューティングリソース２１２は、比例して、関連コストが高くなり得る。
【００２４】
プロビジョニングされた仮想コンピューティングリソース２１２は、任意の適切な種類および／または数のアプリケーション機器２２０〜２２２をさらに含んでもよい。少なくとも１つの実施形態では、アプリケーション機器は、コンピューティングアプリケーション機能のセットを提供するために、１つ以上の仮想リソース（例えば、仮想リソース２１４〜２１６に対応する）のセットおよび／または実装リソース２１８を構成し得る。アプリケーション機器２２０〜２２２は、仮想リソース２１４〜２１６をプロビジョニングする方式に対応する方式でプロビジョニングされ得る。例示的仮想リソースプロバイダ２０６では、アプリケーション機器２２０〜２２２は、プロビジョニングされたコンピューティングリソース２１２の一般ユーザスペース２２６とは異なるアプリケーションベンダースペース２２４に位置する。異なるプロビジョニングされたコンピューティングリソーススペース２２４〜２２６内の位置は、仮想リソースプロバイダ２０６に関して異なる役割を反映する異なるアクセスポリシーおよび／またはコスト計算処理に対応し得る。
【００２５】
例えば、一般ユーザスペース２２６にプロビジョニングされる仮想リソース２１４〜２１６は、テナントのビジネス最終用途を容易にし得る。対照的に、アプリケーション機器２２０〜２２２は、コンピューティングアプリケーション機能のセットを提供するために、第三者ベンダーによって与えられ得る。一般ユーザスペース２２６内の仮想リソース２１４〜２１６に関連するアクセスポリシーによって、公衆ネットワークからのアクセスが可能になり得る。対照的に、アプリケーション機器２２０〜２２２に関連するアクセスポリシーによって、他のプロビジョニングされたコンピューティングリソース２１２へのアクセス、あるいは特定のユーザＶＭおよび／または通信接続のセット等の特定の仮想リソース２１４〜２１６のサブセットへのアクセスが制限され得る。一般ユーザスペース２２６内の仮想リソース２１４〜２１６に関連するコストは、割り当てられた実装リソース２１８に少なくとも部分的に基づいて決定され得る。対照的に、アプリケーション機器２２０〜２２２に関連するコストは、定額料金、適切な時間単位毎の料金、関連する実装リソース２１８の追加料金を加えたコスト、特徴利用、および／または任意の適切なコスト計算方法に、少なくとも部分的に基づいて決定され得る。
【００２６】
制御プレーン２１０は、プロビジョニング要求に応答して、コンピューティングリソース２１２を実装リソース２１８でプロビジョニングし得る。制御プレーン２１０は、さらに、プロビジョニングされたコンピューティングリソースへのアクセスを制御するポリシーを管理および施行し得、このポリシーは、一般ユーザスペース２２６とは異なるアプリケーションベンダースペース２２４を規定および／または維持する１つ以上のポリシーを含む。制御プレーン２１０は、さらに、プロビジョニングされたコンピューティングリソース２１２の維持に関連するコストを追跡し、必要に応じてテナントのアカウントにコストを割り当て得る。少なくとも１つの実施形態に従う例示的制御プレーンについては、図４を参照してより詳細に説明する。
【００２７】
少なくとも１つの実施形態では、アプリケーション機器２２０〜２２２のコンピューティングアプリケーション機能を実装する実行可能命令へのアクセスは、特定のアプリケーション機器２２０〜２２２が特定の通信接続のセットを経由してアクセスされ、他の通信接続を経由してアクセスされないことを規定する少なくとも１つのポリシーを施行することによって、少なくとも部分的に制御される。図３は、少なくとも１つの実施形態に従う例示的仮想リソースプロバイダ３０２を示す。図３の例示的仮想リソースプロバイダ３０２は、図２の制御プレーン２１０、一般ユーザスペース２２６、およびアプリケーションベンダースペース２２４に対応する、制御プレーン３０４、一般ユーザスペース３０６、およびアプリケーションベンダースペース３０８を含む。図３の一般ユーザスペース３０６は、多数のプロビジョニングされた通信接続３２２〜３２４で多数のアプリケーション機器３１６〜３２０に通信接続される多数の仮想マシン３１０〜３１４を含む。例えば、仮想マシン３１０〜３１４は、ユーザＶＭであり得、アプリケーション機器３１６〜３２０は、図２のアプリケーション機器２２０〜２２２に対応し得る。少なくとも１つの実施形態では、アプリケーション機器３１６〜３２０に対するユーザ制御は、仮想マシン３１０〜３１４と比べて低いレベルにある。例えば、アプリケーション機器３１６〜３２０に対するユーザ制御は、アプリケーション機器３１６〜３２０の起動、一時停止、および終了に限られ得る。対照的に、認定ユーザは、包括的に、仮想マシン３１０〜３１４を構成し、かつそれらにログインすることができ得る。
【００２８】
例示的仮想リソースプロバイダ３０２では、一般ユーザスペース３０６およびアプリケーションベンダースペース３０８は、仮想マシン３１０〜３１４とアプリケーション機器３１６〜３２０との間のアドホック通信接続および／または非準拠通信接続が、制御プレーン３０４により施行される１つ以上のポリシーによって阻止されることを示唆するために、通信バリア３２６によって分離される。仮想マシン３１０〜３１４のうちの１つ以上は、ポリシー準拠通信接続３２２〜３２４でアプリケーション機器３１６〜３２０のうちの１つ以上に接続され得る。例示的仮想リソースプロバイダ３０２では、仮想マシン３１４は、ポリシー準拠通信接続３２２で、アプリケーション機器３２０に接続される。仮想マシン３１０〜３１２のセット３２６は、ポリシー準拠通信接続３２４で、アプリケーション機器３１６〜３１８のセットに接続される。ポリシー準拠通信接続３２２〜３２４は、関連するアクセスポリシーを施行する制御プレーン３０４の能力を示唆するために、制御プレーン３０４を通過するように示される。
【００２９】
ポリシー準拠通信接続３２２〜３２４は、任意の適切な通信媒体および／または通信プロトコルで維持されてもよい。例えば、ポリシー準拠通信接続３２２〜３２４は、通信制御プロトコルおよび／またはインターネットプロトコル（例えば、ＴＣＰ／ＩＰ）に準拠して、通信プロトコルで維持され得る。各仮想マシン３１０〜３１４および／またはアプリケーション機器３１６〜３２０は、通信プロトコルアドレスおよび／または通信ポートに関連付けられ得、例えば、通信接続３２２に関連するアクセスポリシーセットは、通信接続３２２を経由して伝達されるプロトコルメッセージの宛先が、特定の通信プロトコルアドレスおよび特定の通信ポートに対応することを規定し得る。代替的または付加的に、アプリケーション機器３１６〜３２０は、１つ以上のインターフェース３２８〜３３２を、コンピューティングアプリケーション機能に組み込むおよび／または提供し得、例えば、アクセスポリシーセットは、通信接続３２２を経由して伝達されるプロトコルメッセージが、インターフェース３３２のうちの１つ以上の要素（例えば、このようなインターフェース要素のうちの選択されたサブセット）に従い、および／またはそれらに向けられることを規定し得る。
【００３０】
インターフェース３２８〜３３２は、コンピューティングアプリケーションの機能または機能のセットに対応するインターフェース要素等の任意の適切なインターフェース要素を含んでもよい。インターフェース３２８〜３３２は、グラフィカルユーザインターフェース（ＧＵＩ）等のユーザインターフェース（ＵＩ）、ウェブベースのインターフェース、プロビジョニングインターフェース要素に対応するアプリケーションプログラミングインターフェース（ＡＰＩ）および／または遠隔手続呼び出し（ＲＰＣ）のセット等のプログラマチックインターフェース、インターフェース３２８〜３３２のインターフェース要素が通信プロトコルのメッセージに対応するメッセージングインターフェース等のメッセージングインターフェース、リモートフレームバッファプロトコル（例えば、ＲＦＢ）またはＳｃｈｅｉｆｌｅｒ  ｅｔ  ａｌ．，  “Ｔｈｅ  Ｘ  Ｗｉｎｄｏｗ  Ｓｙｓｔｅｍ，”  ＡＣＭ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｇｒａｐｈｉｃｓ，  Ａｐｒｉｌ  １９８６，  ｐａｇｅｓ  ７９〜１０９に説明する「Ｘ  ＷＩＮＤＯＷ  ＳＹＳＴＥＭ」プロトコル等のリモートデスクトッププロトコル、ならびに／あるいは任意の適切なそれらの組み合わせを組み込んでもよく、および／またはそれらに組み込まれてもよい。ウェブベースのインターフェースには、レプレゼンテーショナルステートトランスファ（ＲＥＳＴ）準拠（「ＲＥＳＴｆｕｌ」）ウェブサービスインターフェースまたはシンプルオブジェクトアクセスプロトコル（ＳＯＡＰ）準拠ウェブサービスインターフェースまたは他の「ｎｏｎ−ＲＥＳＴｆｕｌ」ウェブサービスインターフェース等の、ウェブサービスインターフェースが含まれてもよい。
【００３１】
図４は、少なくとも１つの実施形態に従う例示的制御プレーン４０２の態様を示す。制御プレーン４０２は、認定ユーザが制御プレーン４０２機能にアクセスすることを可能にするユーザインターフェース（Ｉ／Ｆ）４０４と、アプリケーションベンダーにより与えられるアプリケーション機器のセット（例えば、図３のアプリケーション機器３１６〜３２０）をアプリケーションベンダーが管理することを可能にするアプリケーションベンダーインターフェース（Ｉ／Ｆ）４０６とを含み得る。ユーザインターフェース４０４およびアプリケーションベンダーインターフェース４０６は、任意の適切な種類の機能インターフェース（例えば、図３のインターフェース３２８〜３３２について説明するような）を組み込んでもよく、および／またはそれらに組み込まれてもよい。
【００３２】
制御プレーン４０２を組み込む仮想リソースプロバイダ３０２（図３）は、テナント、つまり認定ユーザによりプロビジョニングされるコンピューティングリソース２１２（図２）に関連するコストを負担する多数のテナントを有し得る。テナントより指定される管理ユーザは、例えば、コンピューティングリソース２１２をプロビジョニングすることによって、コストを負うように認定されるユーザを含む、テナントに関連する異なる種類のユーザを管理するために、ユーザインターフェース４０４と相互作用し得る。認定ユーザは、コンピューティングリソース２１２をプロビジョニングするため、および関連コストを管理（例えば、閲覧、分類、割り当て、経路指定、および支払い）するために、ユーザインターフェース４０４と相互作用し得る。
【００３３】
また、アプリケーションベンダーは、仮想リソースプロバイダ３０２（図３）のテナントでもあり得るが、これは、各実施形態において必須ではない。アプリケーションベンダーは、プロビジョニングに利用可能であるアプリケーション機器（図３のアプリケーション機器３１６〜３２０等）を構成および／または登録するために、ならびにライセンス条件を規定し、関連コストプランを構成し、および関連コストを管理するために、アプリケーションベンダーインターフェース４０６と相互作用し得る。ライセンス条件は、有効で期限内のライセンスが存在すること、最大数以下のユーザがコンピューティングアプリケーション機能またはその一部の規定部分にアクセスしていること、最大数以下の並行ユーザがコンピューティングアプリケーション機能またはその一部の規定部分にアクセスしていること、コンピューティングアプリケーション機能またはその一部の規定部分が閾値数以下の回数だけアクセスされていること、およびその同等なこと等の、コンピューティングアプリケーション機能のアクセスに関する任意の適切な条件を含んでもよい。関連コストプランに応じて、アプリケーションベンダーは、仮想リソースプロバイダ３０２に対して、アプリケーションベンダーにより与えられるアプリケーション機器のプロビジョニングされたインスタンスにより発生するコストを負い得る。代替的または付加的に、関連コストプランは、プロビジョニングテナントが関連コストを負うことを規定し得、プロビジョニングテナントが支払う料金は、アプリケーションベンダーと仮想リソースプロバイダとの間で、２者間の契約に従って割り当てられ得る。
【００３４】
制御プレーン４０２のプロビジョニング構成要素４０８は、例えば、ユーザインターフェース４０４から受信するプロビジョニング要求に応答して、コンピューティングリソース２１２（図２）をプロビジョニングし得る。プロビジョニング構成要素４０８は、例えば、利用効率を高めるため、および／または実装リソースの不具合による、プロビジョニングされたリソースの不具合の可能性を下げるために、特定のプロビジョニングされたコンピューティングリソース２１２を実装するのに必要な実装リソース２１８の種類および容量を決定し、利用可能なこのような実装リソースを、仮想リソース２１４〜２１６および／またはアプリケーション機器２２０〜２２２を実装するタスクならびに実装リソース２１２の進行中の再割り当てのタスクに割り当て得る。
【００３５】
制御プレーン４０２のポリシー施行構成要素４１０は、仮想リソースプロバイダ２０６（図２）ポリシーを管理および施行し得る。例えば、ポリシー施行構成要素４１０は、認定ユーザからユーザインターフェース４０４を経由して施行されるポリシーを受信し得、特定のプロビジョニングされたリソースに関するポリシーは、プロビジョニング中にポリシー施行構成要素４１０で確立され得、ポリシーは、仮想リソースプロバイダ２０６の管理者によって、ポリシー施行構成要素４１０で確立され得、ならびに／あるいはポリシー（例えば、暗号化署名されたポリシー）は、クライアント２０２〜２０４からのプロビジョニングされたリソース２１２のアクセスおよび／または相互作用要求とともに受信され得る。仮想リソースプロバイダ２０６ポリシーは、プロビジョニングされたリソース２１２により提供される機能を含む仮想リソースプロバイダ２０６の機能の任意の適切な態様を支配し得る。プロビジョニングされたリソース２１２により提供される特定の機能のセットおよび／またはサブセットは、名付けされ、分類され、および／またはアドレス可能になり得る。このような各セットおよび／またはサブセットは、仮想リソースプロバイダ２０６ポリシーで個々に支配され得る。このような支配は、実装リソースの割り当ておよび利用、ならびにユーザによるアクセスおよび特定のプロビジョニングされたリソース２１２を出入りするデータの転送に関して、制約を含み得る。プロビジョニングされたリソース２１２のユーザは、匿名のユーザを含むクライアント２０２〜２０４ユーザと、管理ユーザを含む仮想リソースプロバイダ２０６ユーザと、実装リソース２１８、プロビジョニングされたリソース２１２、および制御プレーン４０２の構成要素４０４〜４１６を含む仮想リソースプロバイダ２０６の構成要素とを含み得る。
【００３６】
仮想リソースプロバイダ２０６（図２）ポリシーは、満たされる任意の適切な条件のセットを規定し得る。例えば、ポリシーは、特定のアプリケーション機器へのアクセスが許可される条件を規定し得る。このような条件は、適切なプログラミング言語を含む任意の適切な条件規定言語で規定され得、例えば、ブール演算子で規定される複合条件を含み得る。条件パラメータは、仮想リソースプロバイダ２０６が利用可能な任意の適切なデータを含んでもよい。条件パラメータの例として、カレンダー日付および時刻等の環境データ、発信元ネットワークアドレス、発信元地理的位置、発信元政治部門および／または管理部門等の要求に関連するデータ、ならびに用いられる通信プロトコルが挙げられる。
【００３７】
制御プレーン４０２のコスト追跡構成要素４１２は、コンピューティングリソース２１２（図２）のプロビジョニングおよび／または維持に関連するコスト（例えば、コンピュータコストおよび／または財務コスト）を追跡し得る。コストは、テナントアカウントを含むアカウントに割り当てられ得る。例えば、特定のテナントに関連する１人以上のユーザによりプロビジョニングされるコンピューティングリソース２１２に関連するコストは、テナントのアカウントに割り当てられ得る。テナントアカウントおよび／またはプロビジョニングされたリソース２１２のうちの１つ以上は、１つ以上のコストプランに関連し得、テナントアカウントに割り当てられるコストは、コストプランに従って決定され得る。コストプランは、定額料金として、および／または任意の適切な測定基準に基づいて、コストを規定し得る。例えば、コストプランは、特定のプロビジョニングされたリソース２１２が、テナントに関連する少なくとも１人のユーザに利用可能であるという単位時間の数、特定の実装リソース２１８が、テナントに関連するプロビジョニングされたリソース２１２の維持に割り当てられる単位時間の数、特定のプロビジョニングされたリソース２１２の特定の特徴のセットの使用回数、および／または適切なそれらの組み合わせに基づいて、コストを規定し得る。アプリケーション機器２２０〜２２２に関し、コストプランは、コスト転嫁、追加料金を加えたコスト、定額料金、定期的アクセス料金、特徴アクセス料金、アクティブ化および非アクティブ化料金、個別の請求、ならびに適切なそれらの組み合わせを含む、テナントとのコストアカウント関係を規定し得る。
【００３８】
制御プレーン４０２のアプリケーション権利管理（ＡＲＭ）構成要素４１４は、プロビジョニングされたアプリケーション機器２２０〜２２２（図２）に関するユーザおよびベンダーの権利を確立および維持するように作動し得る。例えば、アプリケーション権利管理構成要素４１４は、プロビジョニングされたアプリケーション機器２２０〜２２２の機能を実装する実行可能命令へのアクセスを制御する仮想リソースプロバイダ２０６ポリシーを提供および／または確立し得る。アプリケーション権利管理構成要素４１４は、さらに、アプリケーション機能および／またはアプリケーション特徴のセットのアクティブ化および／または非アクティブ化を容易にし得る。例えば、アプリケーション権利管理構成要素４１４は、アプリケーション特徴をアクティブ化および／または非アクティブ化するユーザ要求について、アプリケーション機器２２０〜２２２に通知し得、アプリケーション機器２２０〜２２２から受信するアクティブ化状態更新に応答して、仮想リソースプロバイダ２０６ポリシーおよび／またはコストプランを修正し得る。
【００３９】
制御プレーン４０２は、プロビジョニングされたリソース２１２（図２）、プロビジョニング構成要素４０８、およびポリシー施行構成要素４１０のそれぞれにより確立される、プロビジョニングされたリソースワークフロー、プロビジョニングワークフロー、および／またはポリシー施行ワークフロー等のワークフローを確立および維持するように、少なくとも構成されるワークフロー構成要素４１６をさらに含み得る。ワークフローは、仮想リソース構成、プロビジョニング、またはポリシー管理等のジョブを実施するように実行される１つ以上のタスクのシーケンスを含み得る。ワークフローは、この用語が本明細書で使用される際、タスク自体ではなく、タスクを出入りする情報の流れを制御し得るタスク制御構造であり、また、その構造が制御するタスクの実行の順序である。例えば、ワークフローは、実行中いつでもプロセスの状態を管理および返送することができる状態機械と見なされ得る。ワークフローは、ワークフローテンプレートから作成され得る。例えば、ポリシー施行ワークフローは、ポリシー施行構成要素４１０によってパラメータで構成されるポリシー施行ワークフローテンプレートから作成され得る。
【００４０】
ワークフロー構成要素４１６は、確立されたワークフローを修正、さらに規定、および／またはさらに構成し得る。例えば、ワークフロー構成要素４１６は、特定のタスクを実行および／または特定のタスクに割り当てられるように、仮想リソースプロバイダ２０６（図２）の特定の実装リソースを選択し得る。このような選択は、ワークフロー構成要素４１６により見積もられる特定のタスクのコンピューティングリソースの必要性に少なくとも部分的に基づき得る。別の例として、ワークフロー構成要素４１６は、確立されたワークフローに対して追加のタスクおよび／または２重のタスクを追加し得、および／または確立されたワークフローにおけるタスク間の情報の流れを再構成し得る。確立されたワークフローのこのような修正は、ワークフロー構成要素４１６による実行効率分析に少なくとも部分的に基づき得る。例えば、いくつかのタスクは、並行して効率的に実施され得るが、他のタスクは、前のタスクの成功完了に依存する。
【００４１】
制御プレーン４０２は、プロビジョニングされたリソース２１２（図２）のセット、実装リソース２１８のセット、および／または対応するコンピューティングリソースで実装され得る。実装リソース２１８の各々は、制御プレーン２１０によって制御され得る。例えば、各実装リソースは、制御プレーン２１０の一部分、エージェント、および／または構成要素に関与し得る、および／またはそれらを組み込み得る。プロビジョニングされたリソース２１２の各々は、制御プレーン２１０によって制御され得る。例えば、各プロビジョニングされたリソースは、制御プレーン２１０の一部分、エージェント、および／または構成要素に関与し得る、および／またはそれらを組み込み得る。制御プレーン２１０は、実装リソース２１８および／またはプロビジョニングされたリソース２１２全体に分散され得る。例えば、制御プレーン２１０は、当業者に周知である分散コンピューティング技術で実装され得る。
【００４２】
次に、少なくとも１つの実施形態に従って実施され得る例示的ステップについて説明する。図５は、少なくとも１つの実施形態に従って、アプリケーション機器を仮想リソースプロバイダで利用可能にするための例示的ステップを示す。ステップ５０２において、プロトタイプアプリケーション機器は構成され得る。第三者アプリケーションベンダーの認定ユーザは、仮想リソースプロバイダ２０６（図２）で仮想マシンをプロビジョニングし得、コンピューティングアプリケーション機能の所望のセットを実装する命令を実行するように仮想マシンを構成し得る。例えば、仮想マシンは、コンピュータオペレーティングシステムを組み込む仮想コンピュータシステムであり得、認定ユーザは、１つ以上のアプリケーションモジュールを、仮想コンピュータシステムおよび／またはコンピュータオペレーティングシステムにインストールおよび構成し得る。代替として、仮想マシンは、コンピュータオペレーティングシステムとは関係なく、コンピューティングアプリケーション機能の所望のセットを組み込み得る。
【００４３】
ステップ５０４において、プロトタイプアプリケーション機器は、プロビジョニングに適切な形式にパッケージ化され得る。例えば、認定ユーザは、仮想リソースプロバイダ２０６（図２）が、ステップ５０２で構成されたプロトタイプからプロビジョニング可能なパッケージを作成することを要求し得る。ユーザインターフェース４０４および／またはアプリケーションベンダーインターフェース４０６（図４）は、このような要求を認定ユーザが行うことを可能にする１つ以上のインターフェース要素を含み得る。ステップ５０６において、パッケージ化されたプロトタイプは、仮想リソースプロバイダ２０６に提出および／またはそれに登録され得る。例えば、アプリケーションベンダーインターフェース４０６は、このような提出および／または登録を可能にする１つ以上のインターフェース要素を含み得る。ステップ５０６は、ステップ５０４に組み込まれてもよい。
【００４４】
ステップ５０８において、１つ以上のアプリケーション機器特徴コストは規定され得る。例えば、認定ユーザは、アプリケーション機器のユーザのコストプランを規定するために、アプリケーションベンダーインターフェース４０６（図４）の１つ以上のインターフェース要素と相互作用し得る。基本的な特徴へのアクセスに関するコストは、規定され得、また、基本的ではない特徴および／または割増特徴のセットの各々に関連するコストも規定され得る。アプリケーション特有の特徴コードは、人間が読み取れる名前、簡単な記述、および／または長い記述に関連し得る。ステップ５１０において、アプリケーション機器をプロビジョニングに利用可能にするために要求が行われ得る。例えば、認定ユーザは、アプリケーションベンダーインターフェース４０６の１つ以上のインターフェース要素で要求を提出し得る。
【００４５】
ステップ５１２において、提出および／または登録されたアプリケーション機器プロトタイプは、検証され得る。例えば、アプリケーション権利管理構成要素４１４（図４）は、セキュリティに関して含むアプリケーション機器プロトタイプの静的および／または動的インテグリティを検証し得る。アプリケーション機器が検証される場合、ステップ５１６において、アプリケーション機器は、仮想リソースプロバイダ２０６（図２）のテナントの認定ユーザによるプロビジョニングに利用可能になり得る。検証されない場合、ステップ５１４において、検証中に発生した１つ以上の問題は、ベンダーに報告され得る。
【００４６】
図６は、少なくとも１つの実施形態に従って、アプリケーション機器機能にアクセスするための例示的ステップを示す。ステップ６０２において、ユーザＶＭをプロビジョニングする要求が受信され得る。例えば、仮想リソースプロバイダ２０６（図２）のテナントに関連する認定ユーザは、制御プレーン４０２のユーザインターフェース構成要素４０４（図４）でプロビジョニング要求を提出し得る。ステップ６０４において、要求されたユーザＶＭは、プロビジョニングされ得る。例えば、プロビジョニング構成要素４０８は、一般ユーザスペース３０６（図３）において、要求された仮想マシン３１４をプロビジョニングし得る。要求された仮想マシン３１４は、コンピュータオペレーティングシステムを組み込む仮想コンピュータシステムであり得る。
【００４７】
ステップ６０６において、アプリケーション機器をプロビジョニングする要求が受信され得る。例えば、認定ユーザは、ユーザインターフェース構成要素４０４（図４）で別のプロビジョニング要求を提出し得る。少なくとも１つの実施形態では、認定ユーザは、アプリケーション機器に関連するコンピューティングアプリケーション機能がどのように実装されるかについて認識する必要はない。例えば、認定ユーザは、アプリケーション機器インスタンスが、コンピューティングアプリケーション機能を実装するようにプロビジョニングされることを認識する必要はない。認定ユーザは、コンピューティングアプリケーション機能が、ステップ６０２でプロビジョニングされたユーザＶＭに利用可能になることを要求し得、ステップ６０６のプロビジョニング要求は、例えば、アプリケーション機器プロビジョニングワークフローの一部として、応答して生成され得る。アプリケーション機器が１つ以上の任意選択の特徴を与えるとき、プロビジョニング要求は、プロビジョニング中にアクティブ化する任意選択の特徴のセットをさらに規定し得る。少なくとも１つの実施形態では、プロビジョニング要求は、任意選択の実装リソース２１８のセット（図２）および／またはプロビジョニングされたアプリケーション機器に利用可能になるリソース容量をさらに規定し得る。ステップ６０８において、アプリケーション機器は、プロビジョニングされ得る。例えば、プロビジョニング構成要素４０８は、ステップ６０６のプロビジョニング要求に従って、アプリケーションベンダースペース３０８において、要求されたアプリケーション機器３２０（図３）をプロビジョニングし得る。
【００４８】
ステップ６１０において、ユーザＶＭとアプリケーション機器との間の通信接続は、プロビジョニングされ得る。例えば、プロビジョニング構成要素４０８（図４）は、通信接続３２２（図３）を、適切な実装リソース２１８（図２）でプロビジョニングし得る。ステップ６１２において、アプリケーション機器アクセスポリシーセットは、構成され得る。例えば、アプリケーション権利管理構成要素４１４は、プロビジョニングされたアプリケーション機器３２０、プロビジョニングされたユーザＶＭ３１４、および／またはそれらの間の通信接続３２２を支配する１つ以上のポリシーで、ポリシー施行構成要素４１０を構成し得る。代替として、アプリケーション権利管理構成要素４１４は、アプリケーション機器プロビジョニングワークフローにより構成されるこのようなポリシーのために１つ以上のテンプレートを提供し得る。
【００４９】
ステップ６１４において、ステップ６１２で構成されたアクセスポリシーセットに従って、プロビジョニングされたアプリケーション機器へのアクセスは、可能になり得る。例えば、ポリシー施行構成要素４１０（図４）は、ステップ６１２のアクセスポリシーセットの施行を開始し得、通信接続３２２（図３）は、アクティブ化され得、および／またはアプリケーション機器３２０のインターフェース３３２に対応するローカルインターフェースは、仮想マシン３１４により維持されるプロセスに利用可能になり得る。
【００５０】
図７は、少なくとも１つの実施形態に従う動的特徴アクティブ化のための例示的ステップを示す。ステップ７０２において、プロビジョニングされたアプリケーション機器インスタンスは、特徴アクティブ化要求をサブスクライブし得る。例えば、アプリケーション権利管理構成要素４１４は、アプリケーション機器３２０（図３）にこのような要求をサブスクライブさせ得る。ステップ７０４において、特徴アクティブ化要求は、受信され得る。例えば、仮想リソースプロバイダ２０６（図２）のテナントに関連する認定ユーザは、アプリケーション機器３２０により実装されるコンピューティングアプリケーション機能の任意選択のセットが、ユーザＶＭ３１４に利用可能になることを要求し得る。特徴アクティブ化要求は、ユーザインターフェース４０４（図４）を経由して行われ得、アプリケーション権利管理構成要素４１４および／またはワークフロー構成要素４１６によって受信および処理され得る。
【００５１】
ステップ７０６において、アプリケーション機器インスタンスは、ステップ７０４で受信した特徴アクティブ化要求について通知され得る。例えば、アプリケーション権利管理構成要素４１４（図４）は、アプリケーション機器３２０の適切なインターフェース要素を経由して、アプリケーション機器３２０（図３）に特徴アクティブ化要求について通知し得る。ステップ７０８において、ステップ７０６の通知に対する応答が受信され得る。例えば、アプリケーションインスタンス３２０は、要求された特徴がアクティブ化され、および／または利用可能であること、あるいは特徴アクティブ化要求を処理する問題があったことを応答し得る。
【００５２】
ステップ７１０において、要求された特徴が、例えば、ステップ７０８で受信した応答に従って、アクティブ化されたか否かを決定し得る。要求された特徴がアクティブ化された場合、ステップ７１０を組み込むプロセスは、ステップ７１４に進み得る。アクティブ化されなかった場合、プロセスは、ステップ７１２に進み得る。ステップ７１２において、ステップ７０４で受信した要求の送信者は、特徴アクティブ化要求の処理中に発生した問題について通知され得る。ステップ７１４において、コスト追跡構成要素４１２（図４）は、例えば、アプリケーション権利管理構成要素４１４によって、要求された特徴のアクティブ化成功について通知され得る。ステップ７１６において、アプリケーション機器インスタンスに関連するアカウントは、更新され得る。例えば、コスト追跡構成要素４１２は、対応するコストプランに従って、アクティブ化された特徴の会計を開始するために、ユーザＶＭ３１４に関連するテナントアカウントを更新し得る。
【００５３】
図４を参照して上記に説明したように、制御プレーン４０２は、ワークフロー構成要素４１６により維持される１つ以上のワークフローによって容易になり得る。図８は、少なくとも１つの実施形態に従うワークフロー管理のための例示的ステップを示す。ステップ８０２において、要求は、制御プレーン４０２（図４）のインターフェースによって受信され得る。例えば、制御プレーン４０２のユーザインターフェース４０４またはアプリケーションベンダーインターフェース４０６は、仮想リソースプロバイダ２０２のユーザおよび／または管理者から要求を受信し得る。ステップ８０４において、要求は、要求の処理に成功するのに必要な１つ以上の動作を決定するように分析され得る。例えば、プロビジョニング構成要素４０８は、要求を分析し、コンピューティングリソース２１２（図２）のセットをプロビジョニングするのに必要とされる動作のセットを決定し得る。要求を受信するインターフェース要素が、実施される特有の動作に対応するとき、インターフェースは、実施される動作の態様および／またはパラメータを決定する際に利用されるように、要求から情報を抽出し得る。
【００５４】
ステップ８０６において、ステップ８０４で決定された１つ以上の動作に少なくとも部分的に基づいてワークフローを作成する要求が送信され得る。例えば、プロビジョニング構成要素４０８（図４）は、ワークフロー構成要素４１６に要求を送信し得る。ワークフローを作成する要求は、動作、動作の種類等の動作メタデータ、および／または動作パラメータ含み得る。少なくとも１つの実施形態では、制御プレーン４０２および／またはワークフロー構成要素４１６は、このような要求のジョブキューを維持し、ワークフローは、ジョブキューへの新しい追加に応答して作成される。ステップ８０８において、ワークフローおよび１つ以上の構成要素タスクは、作成され得る。例えば、ワークフロー構成要素４１６は、作成する適正なワークフローおよび構成要素タスクを決定するために、ステップ８０６の要求を分析し得る。
【００５５】
ステップ８１０において、構成要素タスクの実行は、ワークフローに従って、誘導され得る。例えば、ワークフロー構成要素４１６（図４）は、仮想リソースのセットをプロビジョニングするために、種々の実装リソースのインターフェースの要素をアクティブ化し得る。代替的または付加的に、ワークフロー構成要素４１６は、仮想リソースプロバイダ２０６（図２）の構成要素による構成要素タスクの実行のためにビッドを管理し得る。ステップ８１２において、ワークフローが終了したか否かが決定される。例えば、ワークフロー構成要素４１６は、ワークフローにより管理されるタスクのシーケンスにおける最終タスクが完了したか否かを決定し得る。完了した場合、ステップ８１２を組み込む手順は、ステップ８１４に進み得る。完了していない場合、手順は、次のタスクおよび／またはタスクシーケンスのためにステップ８１０に戻り得る。ワークフローは、並行して実行する多数のタスクシーケンスを誘導し得る。この場合、多数のタスクシーケンスの各々が完了するまで、および／または構成要素タスクのうちの１つにより明示的なワークフロー終了フラグが設定されるまで、ワークフローは終了しない。ステップ８１４において、ステップ８０２の要求の送信者は、動作の結果について報告され得る。
【００５６】
本開示の種々の実施形態は、以下の付記によって説明されることができる。
【００５７】
付記１．  コンピューティングアプリケーション機能に対する権利を管理するためのコンピュータ実装方法であって、
実行可能命令で構成される１つ以上のコンピュータシステムの制御下で、
マルチテナント仮想リソースプロバイダのテナントに関連する少なくとも１人のユーザがアクセスを有するオペレーティングシステムを含む第１の仮想マシンをプロビジョニングすることであって、前記第１の仮想マシンの前記プロビジョニングは、少なくとも部分的に前記マルチテナント仮想リソースプロバイダの制御プレーンによって支援を受けることと、
アプリケーションの少なくとも一部分を実行するように少なくとも構成される第２の仮想マシンをプロビジョニングすることであって、前記第２の仮想マシンの前記プロビジョニングは、少なくとも部分的に前記マルチテナント仮想リソースプロバイダの前記制御プレーンによって支援を受けることと、
少なくとも部分的に前記第１の仮想マシンと前記第２の仮想マシンとの間の少なくとも１つの通信接続を確立し、かつ前記第２の仮想マシンにおいて前記アプリケーションへの少なくとも１つのインターフェースを維持することによって、少なくとも１人のユーザに、前記アプリケーションの機能へのアクセスを提供することと、
前記アプリケーションの前記機能への前記少なくとも１人のユーザによるアクセス条件を施行することであって、前記アクセス条件は、前記少なくとも１つの通信接続および前記少なくとも１つのインターフェースを経由して前記アクセスが発生することを少なくとも規定し、前記アクセス条件の前記施行は、少なくとも部分的に前記マルチテナント仮想リソースプロバイダの前記制御プレーンによって実施されることと、
前記少なくとも１人のユーザへの提示のために、前記少なくとも１つの通信接続を経由してデータが伝達されることを許可することと、
を含む、コンピュータ実装方法。
【００５８】
付記２．  前記第１の仮想マシンおよび前記第２の仮想マシンをプロビジョニングすることは、前記マルチテナント仮想リソースプロバイダの前記制御プレーンにより管理される実装リソースのプールから実装リソースを割り当てることを含む、付記１に記載のコンピュータ実装方法。
【００５９】
付記３．  
前記アプリケーションに利用可能な少なくとも１つのリソース容量の規定を受信することと、
前記第２の仮想マシンを含む仮想リソースのセットを、前記少なくとも１つの規定されたリソース容量を含むリソース容量のセットを集合的に有する前記実装リソースのプールからの実装リソースのセットでプロビジョニングすることと、
をさらに含む、付記２に記載のコンピュータ実装方法。
【００６０】
付記４．  前記少なくとも１つの規定されたリソース容量は、事前に定められた実装リソースのセットの倍数として規定される、付記３に記載のコンピュータ実装方法。
【００６１】
付記５．  コンピューティングアプリケーション機能に対する権利を管理するためのコンピュータ実装方法であって、
実行可能命令で構成される１つ以上のコンピュータシステムの制御下で、
アプリケーションの少なくとも一部分を実行するように少なくとも構成される少なくとも１つの仮想マシンをプロビジョニングすることであって、少なくとも部分的に仮想リソースプロバイダによって実施される、プロビジョニングすることと、
少なくとも部分的に、前記アプリケーションの少なくとも１つのインターフェースへの少なくとも１つの通信接続を確立することによって、少なくとも１人のユーザに、前記アプリケーションの機能へのアクセスを提供することであって、前記少なくとも１つのインターフェースは、少なくとも部分的に前記少なくとも１つの仮想マシンによって維持されることと、
前記アプリケーションの前記機能へのアクセス条件を施行することであって、前記アプリケーションの前記機能への前記アクセス条件は、前記少なくとも１つの通信接続および前記少なくとも１つのインターフェースを経由して前記アクセスが発生することを少なくとも規定し、前記アプリケーションの前記機能へ前記アクセス条件の前記施行は、少なくとも部分的に前記仮想リソースプロバイダによって実施されることと、
前記少なくとも１人のユーザへの提示のために、前記少なくとも１つの通信接続を経由してデータが伝達されることを許可することと、
を含む、コンピュータ実装方法。
【００６２】
付記６．  前記少なくとも１つの仮想マシンへのアクセス条件を施行することをさらに含み、前記少なくとも１つの仮想マシンへの前記アクセス条件は、前記少なくとも１つの通信接続および前記少なくとも１つのインターフェースを経由して前記アクセスが発生することを少なくとも規定し、前記少なくとも１つの仮想マシンへの前記アクセス条件の前記施行は、少なくとも部分的に前記仮想リソースプロバイダの制御プレーンによって実施される、付記５に記載のコンピュータ実装方法。
【００６３】
付記７．  前記少なくとも１つの仮想マシンは、実装リソースのセットで実装され、前記実装リソースのセットの機能へのアクセスは、前記仮想リソースプロバイダの制御プレーンによって制御される、付記５に記載のコンピュータ実装方法。
【００６４】
付記８．  前記実装リソースのセットは、揮発性記憶装置、不揮発性記憶装置、プロセッサ、物理サーバ、ネットワークインターフェースポート、ネットワークスイッチ、およびネットワーク経路のうちの少なくとも１つを含む、付記７に記載のコンピュータ実装方法。
【００６５】
付記９．  前記少なくとも１つ通信接続は、実装リソースのセットで実装され、前記実装リソースのセットの機能へのアクセスは、前記仮想リソースプロバイダの制御プレーンによって制御される、付記５に記載のコンピュータ実装方法。
【００６６】
付記１０．  前記少なくとも１人のユーザに、前記アプリケーションの機能へのアクセスを提供することは、前記アクセス条件を規定する少なくとも１つのポリシーを作成することを含み、前記アクセス条件を施行することは、前記仮想リソースプロバイダのポリシー施行構成要素で、前記少なくとも１つのポリシーを施行することを含む、付記５に記載のコンピュータ実装方法。
【００６７】
付記１１．  前記少なくとも１つのインターフェースは、前記アプリケーションの複数の機能的特徴に対応する複数のインターフェース要素を備え、前記アプリケーションの前記機能への前記アクセス条件は、前記アクセスが前記複数のインターフェース要素のうちの選択されたサブセットに対応することをさらに規定する、付記５に記載のコンピュータ実装方法。
【００６８】
付記１２．  前記少なくとも１つの仮想マシンをプロビジョニングすることは、前記少なくとも１人のユーザに関連するアカウントに課金される関連コストのセットを有する、付記５に記載のコンピュータ実装方法。
【００６９】
付記１３．  前記アプリケーションコストのセットは、アクティブ化および非アクティブ化されることが可能である少なくとも１つのアプリケーション特徴に対応する少なくとも１つのコストを含む、付記１２に記載のコンピュータ実装方法。
【００７０】
付記１４．  
前記仮想リソースプロバイダの制御プレーンにおいて、前記アプリケーションの少なくとも１つの特徴をアクティブ化するユーザ要求を、前記少なくとも１人のユーザから受信することと、
前記アプリケーションの特徴構成インターフェースに、前記少なくとも１つの特徴をアクティブ化する制御プレーン要求を提出することであって、前記特徴構成インターフェースは、少なくとも部分的に前記少なくとも１つの仮想マシンによって維持され、かつ前記少なくとも１つの通信接続を経由して前記少なくとも１人のユーザにアクセスできないことと、
前記制御プレーンにおいて、前記少なくとも１つの特徴がアクティブ化されたという確認を受信することと、
前記少なくとも１つのアクティブ化された特徴に関連するコストが、前記少なくとも１人のユーザに関連するアカウントに課金されることを、前記制御プレーンのコスト追跡構成要素に通知することと、
をさらに含む、付記５に記載のコンピュータ実装方法。
【００７１】
付記１５．  前記少なくとも１つの仮想マシンをプロビジョニングすることは、前記少なくとも１人のユーザに関連するアカウントに課金される関連の実装リソースコストのセットを有する、付記５に記載のコンピュータ実装方法。
【００７２】
付記１６．  前記少なくとも１つの仮想マシンをプロビジョニングするユーザ要求を受信することをさらに含み、前記ユーザ要求は、前記少なくとも１つの仮想マシンに利用可能になる少なくとも１つの実装リソースの少なくとも１つの容量を少なくとも部分的に規定する、付記５に記載のコンピュータ実装方法。
【００７３】
付記１７．  コンピューティングアプリケーション機能に対する権利を管理するためのコンピュータ実装方法であって、
実行可能命令で構成される１つ以上のコンピュータシステムの制御下で、
少なくとも部分的に前記アプリケーションの少なくとも１つのインターフェースへの少なくとも１つの通信接続を確立することによって、少なくとも１人のユーザに、アプリケーションの機能へのアクセスを提供することであって、前記少なくとも１つのインターフェースは、少なくとも部分的に仮想リソースプロバイダでプロビジョニングされる少なくとも１つの仮想マシンによって維持されることと、
前記アプリケーションの前記機能へのアクセス条件を施行することであって、前記アプリケーションの前記機能への前記アクセス条件は、前記少なくとも１つの通信接続および前記少なくとも１つのインターフェースを経由して前記アクセスが発生することを少なくとも規定し、前記アプリケーションの前記機能へ前記アクセス条件の前記施行は、少なくとも部分的に前記仮想リソースプロバイダの制御プレーンによって実施されることと、
前記少なくとも１つの通信接続および前記少なくとも１つのインターフェースを経由して前記アプリケーションの前記機能にアクセスすることに関連する少なくとも１つのコストを追跡することと、
前記仮想リソースプロバイダのテナントへの提示のために、追跡されたコストデータを提供することと、
を含む、コンピュータ実装方法。
【００７４】
付記１８．  前記アプリケーションの前記機能は、少なくとも部分的に前記仮想リソースプロバイダの少なくとも１つの実装リソースによって実装され、前記少なくとも１つのコストを追跡することは、前記少なくとも１つの実装リソースが前記機能の実装に関与する時間単位の数を追跡することを含む、付記１７に記載のコンピュータ実装方法。
【００７５】
付記１９．  前記少なくとも１つのコストを追跡することは、前記アプリケーションの前記少なくとも１つのインターフェースの少なくとも１つのインターフェース要素の利用数を追跡することを含む、付記１７に記載のコンピュータ実装方法。
【００７６】
付記２０．  コンピューティングアプリケーション機能に対する権利を管理するためのコンピュータ化システムであって、
複数の仮想リソースを実装するように少なくとも構成可能である実装リソースのセットと、
プロビジョニング要求に応答して、前記実装リソースのセットで仮想リソースをプロビジョニングするように少なくとも構成される仮想リソースプロビジョニング構成要素であって、前記仮想リソースは、アプリケーションの少なくとも一部分を実行するように少なくとも構成される少なくとも１つの仮想マシンと、前記アプリケーションの少なくとも１つのインターフェースへの少なくとも１つの通信接続とを含む、仮想リソースプロビジョニング構成要素と、
前記アプリケーションの機能へのアクセス条件を施行するように少なくとも構成されるポリシー施行構成要素であって、前記アプリケーションの前記機能への前記アクセス条件は、前記少なくとも１つの通信接続および前記少なくとも１つのインターフェースを経由して前記アクセスが発生することを少なくとも規定する、ポリシー施行構成要素と、
を備える、コンピュータ化システム。
【００７７】
付記２１．  前記コンピュータ化システムは、前記アプリケーションの前記機能にアクセスする要求をユーザが提出することを可能にするように少なくとも構成されるユーザインターフェース構成要素をさらに備え、前記少なくとも１つの仮想マシンは、前記アプリケーションの前記機能にアクセスする前記要求に少なくとも部分的に応答して、前記仮想リソースプロビジョニング構成要素によってプロビジョニングされる、付記２０に記載のコンピュータ化システム。
【００７８】
付記２２．  前記アプリケーションの前記少なくとも一部分を実行し、かつ前記アプリケーションの前記機能にアクセスすることに関連する少なくとも１つのコストを構成するために、アプリケーションベンダーが前記少なくとも１つの仮想マシンを構成することを可能にするように少なくとも構成されるベンダーインターフェース構成要素をさらに備える、付記２０に記載のコンピュータ化システム。
【００７９】
付記２３．  集合的に、少なくとも
アプリケーションの少なくとも一部分を実行するように少なくとも構成される少なくとも１つの仮想マシンをプロビジョニングし、前記プロビジョニングは、少なくとも部分的に仮想リソースプロバイダの制御プレーンによって支援を受け、
少なくとも部分的に前記アプリケーションの少なくとも１つのインターフェースへの少なくとも１つの通信接続を確立することによって、少なくとも１人のユーザに、前記アプリケーションの機能へのアクセスを提供し、前記少なくとも１つのインターフェースは、少なくとも部分的に前記少なくとも１つの仮想マシンによって維持され、
前記アプリケーションの前記機能へのアクセス条件を施行し、前記アプリケーションの前記機能への前記アクセス条件は、前記少なくとも１つの通信接続および前記少なくとも１つのインターフェースを経由して前記アクセスが発生することを少なくとも規定し、前記アプリケーションの前記機能へ前記アクセス条件の前記施行は、少なくとも部分的に前記仮想リソースプロバイダの前記制御プレーンによって実施され、
前記少なくとも１人のユーザへの提示のために、前記少なくとも１つの通信接続を経由してデータが伝達されることを許可する、
ように１つ以上のコンピュータを構成するコンピュータ実行可能命令をその上に集合的に有する１つ以上のコンピュータ可読媒体。
【００８０】
付記２４．  前記少なくとも１つのインターフェースは、前記少なくとも１人のユーザのオペレーティングシステムに関して遠隔にある通信ネットワーク位置で維持され、前記少なくとも１つの通信接続へのアクセスは、前記オペレーティングシステムに局所的にある少なくとも１つの対応するインターフェースを経由する、付記２３に記載の１つ以上のコンピュータ可読媒体。
【００８１】
付記２５．  前記少なくとも１つのインターフェースは、リモートデスクトッププロトコルに準拠するインターフェースを備える、付記２３に記載の１つ以上のコンピュータ可読媒体。
【００８２】
本明細書に説明する種々の実施形態は、多種多様の動作環境で実装されてもよく、その動作環境は、場合によっては、多数のアプリケーションのいずれかを動作するために利用され得る１つ以上のユーザコンピュータ、コンピュータデバイス、または処理デバイスを含んでもよい。ユーザデバイスまたはクライアントデバイスは、標準的なオペレーティングシステムを起動するデスクトップ型またはラップトップ型コンピュータ、ならびにモバイルソフトウェアを起動し、かつ多数のネットワークプロトコルおよびメッセージングプロトコルに対応可能なセルラーデバイス、無線デバイス、および携帯型デバイス等の多数の汎用コンピュータのいずれかを含んでもよい。また、このようなシステムは、開発およびデータベース管理等の目的のための多様な市販のオペレーティングシステムおよび他の既知のアプリケーションのいずれかを起動する多数のワークステーションも含んでもよい。また、これらのデバイスは、ダミー端末、シンクライアント、ゲームシステム、およびネットワークを介して通信可能である他のデバイス等の、他の電子デバイスも含んでもよい。
【００８３】
大部分の実施形態は、ＴＣＰ／ＩＰ、ＯＳＩ、ＦＴＰ、ＵＰｎＰ、ＮＦＳ、ＣＩＦＳ、およびＡｐｐｌｅＴａｌｋ等の多様な市販のプロトコルのいずれかを使用する通信に対応するために、当業者であればよく知っている少なくとも１つのネットワークを利用する。このようなネットワークには、例えば、ローカルエリアネットワーク、広域ネットワーク、仮想プライベートネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網、赤外線ネットワーク、無線ネットワーク、およびそれらの任意の組み合わせが含まれてもよい。ネットワークは、さらに、任意の適切なネットワークトポロジを組み込んでもよい。適切なネットワークトポロジの例として、簡易ポイントツーポイント、スタートポロジ、自己組織化ピアツーピアトポロジ、およびそれらの組み合わせが挙げられるが、これらに限定されない。
【００８４】
ウェブサーバを利用する実施形態では、ウェブサーバは、ＨＴＴＰサーバ、ＦＴＰサーバ、ＣＧＩサーバ、データサーバ、Ｊａｖａサーバ、およびビジネスアプリケーションサーバを含む、多様なサーバまたはミッドティアアプリケーションのいずれかを起動してもよい。また、サーバは、Ｊａｖａ（登録商標）、Ｃ、Ｃ＃、もしくはＣ＋＋等の任意のプログラミング言語、またはＰｅｒｌ、Ｐｙｔｈｏｎ、もしくはＴＣＬ等の任意のスクリプト言語、ならびにそれらの組み合わせで書かれる１つ以上のスクリプトまたはプログラムとして実装され得る１つ以上のウェブアプリケーションを実行することに等よって、ユーザ機器からの要求に応答して、プログラムまたはスクリプトを実行することができてもよい。また、サーバは、Ｏｒａｃｌｅ（登録商標）、Ｍｉｃｒｏｓｏｆｔ（登録商標）、Ｓｙｂａｓｅ（登録商標）、およびＩＢＭ（登録商標）から市販されるものを含むがこれらに限定されないデータベースサーバも含んでもよい。
【００８５】
環境は、上述のように、多様なデータストアならびに他のメモリおよび記憶媒体を含んでもよい。これらは、コンピュータのうちの１つ以上に局所的である（および／またはその中に存在する）、またはネットワーク全域のコンピュータのうちのいずれかまたは全部に遠隔的である記憶媒体上等の多様な位置に存在してもよい。特定の組の実施形態では、情報は、当業者に知られているストレージエリアネットワーク（「ＳＡＮ」）に存在してもよい。同様に、コンピュータ、サーバ、または他のネットワーク機器に帰属する機能を実施するための任意の必要なファイルは、必要に応じて、局所的および／または遠隔的に格納されてもよい。システムが、コンピュータ化機器を含む場合、このような各機器は、バスを介して電子連結され得るハードウェア要素を含んでもよく、この要素は、例えば、少なくとも１つの中央処理装置（ＣＰＵ）、少なくとも１つの入力機器（例えば、マウス、キーボード、コントローラ、タッチスクリーン、またはキーパッド）、および少なくとも１つの出力機器（例えば、ディスプレイ機器、プリンタ、またはスピーカ）を含む。また、このようなシステムは、ディスクドライブ、光学的記憶装置、およびランダムアクセスメモリ（「ＲＡＭ」）または読み取り専用メモリ（「ＲＯＭ」）等のソリッドステート記憶装置、ならびにリムーバブル媒体機器、メモリカード、フラッシュカード等の１つ以上の記憶装置を含んでもよい。
【００８６】
また、このような機器は、上述のように、コンピュータ可読記憶媒体リーダ、通信機器（例えば、モデム、ネットワークカード（無線または有線）、赤外線通信機器等）、およびワーキングメモリも含んでもよい。コンピュータ可読記憶媒体リーダは、遠隔記憶装置、局所記憶装置、固定記憶装置、および／またはリムーバブル記憶装置を表すコンピュータ可読記憶媒体、ならびに一時的および／またはより永続的にコンピュータ可読情報を含む、格納する、伝送する、および読み出すための記憶媒体と接続されてもよく、またはそれらを受け入れるように構成されてもよい。また、システムおよび種々の機器は、典型的には、クライアントアプリケーションまたはウェブブラウザ等の、オペレーティングシステムおよびアプリケーションプログラムを含む、多数のソフトウェアアプリケーション、プログラムモジュールを含むモジュール、サービス、または少なくとも１つのワーキングメモリ機器内に位置する他の要素も含む。代替実施形態が、上述のものから多数の変形を有してもよいことが理解されたい。例えば、カスタマイズされたハードウェアも利用してもよく、および／または特定の要素を、ハードウェア、ソフトウェア（アプレット等の高移植性ソフトウェアを含む）、またはその両方に実装してもよい。さらに、ネットワーク入力／出力機器等の他のコンピュータ機器への接続を用いてもよい。
【００８７】
コードまたはコードの一部を含むための記憶媒体およびコンピュータ可読媒体は、記憶媒体および通信媒体を含む、当技術分野で既知または使用される任意の適正な媒体を含んでもよく、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータ等の情報の格納および／または伝送のための任意の方法または技術に実装される揮発性および不揮発性媒体、リムーバブルおよび非リムーバブル媒体等であるが、これらに限定されず、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリもしくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）もしくは他の光学式記憶、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶装置、または所望の情報を格納するために使用され得る、およびシステム機器によりアクセスされ得る任意の他の媒体を含む。プログラムモジュール、プログラム構成要素、および／またはプログラムオブジェクトは、任意の適切なコンピュータプログラミング言語の、および／またはそれに対応するコンピュータ可読命令および／またはコンピュータ実行可能命令を含んでもよい。少なくとも１つの実施形態では、各コンピュータ可読媒体は、有形であってもよい。少なくとも１つの実施形態では、各コンピュータ可読媒体は、経時的に持続的であってもよい。本明細書における開示および教示に基づき、当業者は、種々の実施形態を実装するための他の方式および／または方法を理解する。
【００８８】
したがって、明細書および図面は、限定的意味ではなく、例示的意味で見なされる。しかしながら、請求項に記載される本発明のより広範な精神および範囲から逸脱することなく、種々の修正および変更を加えてもよいことが明白であり得る。
【００８９】
説明する実施形態の文脈における（特に、以下の請求項の文脈における）用語の「ある」および「その」ならびに同様の指示対象の使用は、本明細書に別段の指示がない限り、または文脈に明らかに矛盾しない限り、単数および複数の両方を対象とするように解釈されるべきである。用語の「備える」、「有する」、「含む」、および「含有する」は、別段指定のない限り、開放型（つまり、「〜を含むが、それに限定されない」を意味する）の用語として解釈されるべきである。用語の「接続される」は、介在する何かが存在するとしても、部分的にまたは全体的に、内部に含有される、取り付けられる、または結合されるように解釈されるべきである。本明細書における値の範囲の列挙は、本明細書に別段の指示がない限り、単に、その範囲内にある別々の各値を個々に言及することの省略方法としての役割を果たすように意図され、別々の各値は、本明細書に個々に列挙されるかのように、明細書に組み込まれる。本明細書に説明する方法は、本明細書に別段の指示がない限り、または文脈に明らかに矛盾しない限り、任意の適切な順番で実施されることができる。本明細書に提供される任意の例および全ての例、または例示的言語（例えば、「等」）の使用は、単に、より良好に実施形態を明らかにするように意図され、別段主張されない限り、範囲に対して限定を提示しない。明細書のどの言語も、少なくとも１つの実施形態の実用化に必須である任意の非請求要素を示唆するものとして解釈されないべきである。
【００９０】
本発明者らに既知である最良の形態を含む好適な実施形態が、本明細書に説明される。前述の説明を読むと、これらの好適な実施形態の変形が当業者に明白になり得る。本発明者らは、当業者が、このような変形を必要に応じて用いることを期待し、本発明者らは、実施形態が、本明細書に具体的に説明される以外にも構築されることを意図する。したがって、適切な実施形態は、適用法により認められ、本明細書に添付される請求項に列挙される主題の全ての修正および均等物を含む。さらに、その全ての可能な変形における前述の要素の任意の組み合わせが、本明細書に別段の指示がない限り、または文脈に明らかに矛盾しない限り、いくつかの適切な実施形態に組み込まれると想定される。
【００９１】
本明細書に引用される出版物、特許出願、および特許を含む全ての参考文献は、各参考文献が、参照により個々にかつ具体的に組み込まれるよう示唆され、かつ本明細書にその全体として記載されているのと同程度、参照により本明細書に組み込まれる。
【図１】
0005702477.tif 000002
【図２】
0005702477.tif 000003
【図３】
0005702477.tif 000004
【図４】
0005702477.tif 000005
【図５】
0005702477.tif 000006
【図６】
0005702477.tif 000007
【図７】
0005702477.tif 000008
【図８】
0005702477.tif 000009