(58)【調査した分野】(Int.Cl.,DB名)
前記コンピュータシステムインスタンスが、コンピュータシステムサービスによって、前記コンピュータシステムサービスの顧客のためにホストされており、前記コンピュータシステムサービスが、前記ディレクトリを維持するマネージドディレクトリサービスとは異なる、請求項1に記載のコンピュータシステム。
前記ネットワークアドレス情報が、前記ディレクトリに関連する、完全修飾ドメイン名と、1つまたは複数のドメイン名システムインターネットプロトコルアドレスとを備える、請求項1から2のいずれかに記載のコンピュータシステム。
前記コンピュータシステムインスタンスが、前記ネットワークアドレス情報を活用して前記選択されたディレクトリとの接続を確立し、認証情報の前記セットを使用して前記コンピュータシステムインスタンスを前記選択されたディレクトリに結合するように構成されたエージェントを備える、請求項1から3のいずれかに記載のコンピュータシステム。
前記コンピュータシステムインスタンスが、認証情報の前記セットを使用して、前記マネージドディレクトリサービスに前記コンピュータシステムインスタンスを前記選択されたディレクトリに結合させるように構成された、アプリケーションプログラミングインターフェースコマンドを提出するように構成されている、請求項2に記載のコンピュータシステム。
前記コンピュータシステムインスタンスが、アプリケーションプログラミングインターフェースコマンドを前記コンピュータシステムに提出するように構成され、前記アプリケーションプログラミングインターフェースコマンドが、前記コンピュータシステムに、
ディレクトリの前記セットのうちの各ディレクトリのための前記ネットワークアドレス情報を、コンピュータシステムインスタンスに送信することと、
前記コンピュータシステムインスタンスをディレクトリの前記セットから選択された前記ディレクトリに結合するのに使用可能な認証情報の前記セットを送信することと、
を行わせるように構成されている、請求項1から5のいずれかに記載のコンピュータシステム。
ディレクトリの前記セットのうちの各ディレクトリが、1つまたは複数のコンピュータシステムインスタンスが前記ディレクトリに結合することを可能にする関連ポリシーを有する、請求項1から6のいずれかに記載のコンピュータシステム。
ネットワークアドレス情報に対する前記第1の要求が、前記コンピュータシステムインスタンスをプロビジョニングするための要求内に含まれる、請求項1から7のいずれかに記載のコンピュータシステム。
前記コンピュータシステムインスタンスが、コンピュータシステムサービスによって、前記コンピュータシステムサービスの顧客のためにホストされ、前記コンピュータシステムサービスが、前記ディレクトリを維持する前記マネージドディレクトリサービスとは異なる、請求項9に記載の非一時的コンピュータ可読ストレージ媒体。
前記ディレクトリのための前記ネットワークアドレス情報、及び前記コンピュータシステムインスタンスを前記ディレクトリに結合するための前記認証情報が、前記第1のウェブサービス要求と前記第2のウェブサービス要求とに応答して、前記コンピュータシステムインスタンスに提供される、請求項9から11のいずれかに記載の非一時的コンピュータ可読ストレージ媒体。
仮想マシンインスタンスをプロビジョニングするための要求を実行し、いったんプロビジョニングされると、前記仮想マシンインスタンスをディレクトリに結合するためのコンピュータ実装方法であって、
実行可能命令を有して構成された1つまたは複数のコンピュータシステムの制御下において、
仮想コンピュータシステムサービスにおいて、前記ディレクトリに関連するネットワークアドレス情報を受信して、前記仮想マシンインスタンスをプロビジョニングし、前記ディレクトリに結合することを可能にすることと、
前記仮想マシンインスタンスをプロビジョニングすることと、
マネージドディレクトリサービスに、前記仮想マシンインスタンスを前記ディレクトリに結合するための仮の認証情報のセットに対する要求を送信することと、
仮の認証情報の前記セットを前記マネージドディレクトリサービスから受信することと、
を備え、
前記仮想マシンインスタンスが、前記ネットワークアドレス情報を活用して前記ディレクトリとの接続を確立し、仮の認証情報の前記セットを活用して前記仮想マシンインスタンスを前記ディレクトリに結合するように構成されている、
前記コンピュータ実装方法。
【発明を実施するための形態】
【0005】
以下の説明では様々な実施形態を説明する。説明目的のために、実施形態の完全な理解を提供するために、具体的な構成と詳細とを明記する。しかしながら、実施形態を具体的な詳細なしに実施することができる、ということも当業者には明白である。さらに、説明している実施形態を分かり難くしないために、良く知られている特徴は省略または簡略化され得る。
【0006】
本明細書で説明し、提案する手法は、仮想マシンまたは他のインスタンスなどのコンピュータシステムインスタンスの、ディレクトリへの自動結合に関する。一実施形態では、エンティティ(たとえば、組織)は、仮想コンピュータシステムサービスと、サービスへの1つまたは複数の適切に構成されたアプリケーションプログラミングインターフェース(API)コールなどを通して、通信して、ディレクトリに結合し得る仮想マシンインスタンスの作成を要求することができる。エンティティは、マネージドディレクトリサービス、オブジェクトベースのデータストレージサービス、データベースサービス、前述の仮想コンピュータシステムサービス、及び複数の他のサービスなどの、様々なサービスを運営するコンピューティングリソースサービスプロバイダの顧客であってよい。
【0007】
様々な実施形態では、エンティティは、仮想コンピュータシステムサービスと、1つまたは複数の適切に構成されたAPIコール(たとえば、APIコールを受信するシステムによって実行可能であるように構成されたAPIコール)をサービスに送信して、どのディレクトリに仮想マシンインスタンスを加えるべきかを特定するように構成されたグラフィカルユーザインターフェース(GUI)を通して、インターフェース接続する。たとえば、一実施形態では、GUIは、1つまたは複数の適切に構成されたAPIコールをマネージドディレクトリサービスに送信して、仮想マシンインスタンスを追加するために使用され得る、1つまたは複数の利用可能なディレクトリのリストを取得するように構成されている。したがって、このリストを、エンティティに、GUIを通して、エンティティが適切なディレクトリをリストから選択することができる時点で、提示することができる。代替的に、エンティティが利用可能な既存のディレクトを有しない場合、GUIは、エンティティが仮想マシンインスタンスを追加するために使用され得る新しいディレクトリを作成することを可能にする、オプションを含むことができる。
【0008】
一実施形態では、1つまたは複数の利用可能なディレクトリのリストに加えて、GUIは、さらに、ネットワークアドレス情報(たとえば、完全修飾ドメイン名(FQDN)及び1つまたは複数のドメイン名システム(DNS)インターネットプロトコル(IP)アドレス)を、マネージドディレクトリサービスから、1つまたは複数の利用可能なディレクトリの各々のために取得することができる。したがって、エンティティがGUIを使用して、新しい仮想マシンインスタンスを作成し、新しく作成された仮想マシンインスタンスを追加するために使用されることになるディレクトリを選択すると、GUIは、FQDNとDNS IPアドレスとディレクトリ識別とを、仮想コンピュータシステムサービス内の管理サブシステムに送信することができる。したがって、管理サブシステムは、FQDNとDNS IPアドレスとディレクトリ識別とを活用して、ディレクトリのための1つまたは複数の認証情報を取得し、これらのアイテムの全てをメタデータとして、仮想コンピュータシステムサービス内のメタデータサービス内に格納することができる。
【0009】
一実施形態では、仮想マシンインスタンスが作成されると、仮想コンピュータシステムサービスは、1つまたは複数の適切に構成されたAPIコールをマネージドディレクトリサービスに送信して、仮想マシンインスタンスがディレクトリに結合するために必要になり得る、ディレクトリに固有の1つまたは複数の認証情報を取得する。いくつかの実施形態では、仮想コンピュータシステムサービスは、これらの1つまたは複数の取得した認証情報と、完全修飾ドメイン名(FQDN)とDNSインターネットプロトコル(IP)アドレスとを、メタデータとして、仮想コンピュータシステムサービス内のメタデータサービス内に格納するように構成されている。したがって、新しく作成された仮想マシンインスタンス内のエージェントは、このメタデータサービスにアクセスし、メタデータを読み出して、前述の情報を取得するように構成され得る。したがって、仮想マシンインスタンス内で動作しているエージェントは、この情報を活用して、1つまたは複数の適切に構成されたAPIコールを生成し、それをディレクトリに送信して、インスタンスをディレクトリに追加することができる。
【0010】
このようにして、顧客は、GUIを活用して、仮想マシンインスタンスを作成し、その仮想マシンインスタンスを、新しいディレクトリまたは既存のディレクトリに自動的に結合することができる。加えて、本明細書で説明し提案する手法は、追加の技術的利点をもたらす。たとえば、仮想マシンインスタンスはディレクトリに自動的に結合するので、顧客は、仮想マシンインスタンスをディレクトリに手動で結合するために、認証情報の追加のセットを読み出すことをもはや必要としなくてよい。これは、今度は、顧客に、他のユーザが利用可能なディレクトリをより短時間で作成することを可能にし、したがって、ディレクトリの実装の遅れから生じるダウンタイムを削減することができる。さらに、これは、顧客及び他のユーザが、新しいディレクトリまたは既存のディレクトリにアクセスするための認証情報のセットを使用して、新しく作成された仮想マシンインスタンスにアクセスすることを可能にする。
【0011】
図1は、様々な実施形態を実施し得る環境100の例示的な実施例を示している。環境100では、コンピューティングリソースサービスプロバイダ102は、様々なコンピューティングリソースサービスを、コンピューティングリソースサービスプロバイダの顧客に提供する。コンピューティングリソースサービスプロバイダ102は、1つまたは複数の顧客のために様々なコンピューティングリソースをホストする組織であってよい。たとえば、コンピューティングリソースサービスプロバイダ102は、ハードウェアサーバ、データストレージデバイス、ネットワークデバイス、及び、サーバラック、ネットワークケーブルなどの他の設備などの様々なコンピューティングハードウェアリソースをホストするために使用される、1つまたは複数の施設を運営することができる。コンピューティングリソースサービスプロバイダ102は、そのコンピューティングハードウェアリソースを活用して、1つまたは複数のサービスを運営することができる。そのようなサービスは、コンピューティングリソースサービスプロバイダ102の顧客がコンピューティングリソースを遠隔管理して、顧客の事業をサポートしながら、顧客が物理的な装置に投資する必要性を減少させる、または除去さえすることを可能にするサービスを含むことができる。例示的なサービスは、様々なデータストレージサービス(オブジェクトベースのデータストレージサービス、アーカイバルデータストレージサービス、データベースサービスなど)と、プログラム実行サービスと、他のサービスとを含むが、これらに限定されない。サービスは、顧客によって使用されて、ウェブサイトを運営すること、組織をサポートする企業システムを運営すること、分散計算活動、及び/または他の活動などの多種多様な活動をサポートすることができる。
【0012】
したがって、
図1に例示した通り、環境100は、顧客104を含む。顧客104は、コンピューティングリソースサービスプロバイダ102によって提供される1つまたは複数のサービスを活用して、彼または彼女の事業をサポートするためのディレクトリ106を運営、管理することができる、個人、組織、または自動プロセスであってよい。ディレクトリ106を運営、管理するために、たとえば、顧客104は、仮想マシンインスタンス110を作成し、それをディレクトリ106に結合することを要求され得る。たとえば、仮想マシンインスタンス110は、顧客104が、ディレクトリ106の追加ユーザのための認証情報を作成し、提供することと、様々なアプリケーションを展開することと、ディレクトリ106のための1つまたは複数のセキュリティポリシーを適用することと、を可能にすることができる。したがって、顧客104は、顧客コンピュータシステムデバイスを通して、コンピューティングリソースサービスプロバイダ102によって提供されている仮想コンピュータシステムサービス108に、仮想マシンインスタンス110を構成し、仮想マシンインスタンス110をディレクトリ106に追加することを要求するための1つまたは複数の要求を、提出することができる。
【0013】
以下でより詳細に説明する通り、仮想コンピュータシステムサービス108は、グラフィカルユーザインターフェース(GUI)を含むことができ、グラフィカルユーザインターフェース(GUI)は、顧客104が1つまたは複数の要求を仮想コンピュータシステムサービス108に提出することを可能にすることができる。たとえば、一実施形態では、GUIは、1つまたは複数の適切に構成されたAPIコールをマネージドディレクトリサービス112に送信して、顧客104が現在アクセスを有する全ての利用可能なディレクトリ106のリストと、そのリスト内のディレクトリ106の各々に対するネットワークアドレス情報(たとえば、完全修飾ドメイン名(FQDN)及びドメイン名システム(DNS)インターネットプロトコル(IP)アドレス)とを要求するように構成されている。全ての利用可能なディレクトリ106のリストを使用して、仮想マシンインスタンス106を追加するために使用されることになるディレクトリ106を選択するために顧客104が使用することができるメニューを、GUI内に追加することができる。したがって、いったん顧客104が、新しく作成された仮想マシンインスタンス110のためにどのディレクトリ106を使用するかを特定すると、GUIは、ディレクトリ106の識別とFQDNとDNS IPアドレスとを、仮想コンピュータシステムサービス108内の管理サブシステムに送信することができる。
【0014】
いったん仮想マシンインスタンス110が作成されると、仮想コンピュータシステムサービス108は、1つまたは複数の適切に構成されたAPIコールなどを通して、マネージドディレクトリサービス112と通信して、仮想マシンインスタンス110をディレクトリ106に結合するために必要な認証情報のセットを取得することができる。仮想コンピュータシステムサービス108は、認証情報のセットと追加情報(たとえば、FQDN、DNS IP、ディレクトリ識別、など)とを、メタデータとしてサービス内に格納し、それを仮想マシンインスタンス110に対して利用可能にするように構成され得る。したがって、仮想マシンインスタンス110は、メタデータを仮想コンピュータシステムサービス108から取得し、ディレクトリ106に結合するために必要な認証情報のセットと追加情報とを抽出するように構成され得る。仮想マシンインスタンス110は、追加情報を活用してディレクトリ106との接続を確立し、さらに、認証情報のセットを活用して仮想マシンインスタンス110をディレクトリ106に結合するように構成され得る。いったん仮想マシンインスタンス110がディレクトリ106に結合すると、顧客104及び任意の他の代表ユーザは、ディレクトリ106にアクセスするための認証情報のセットを活用して、仮想マシンインスタンス110にもアクセスすることができる。
【0015】
図2は、本開示の様々な実施形態を実施することができる環境200の例示的な実施例を示している。環境200では、コンピューティングリソースサービスプロバイダ206は、様々なサービスを顧客202に提供することができる。顧客202は、コンピューティングリソースサービスプロバイダ206によって提供される様々なサービスを活用して、1つまたは複数のディレクトリと、1つまたは複数のディレクトリを運営するのに必要な仮想マシンインスタンスとを、遠隔で生成し、テストし、維持することができる組織であってよい。
図2に例示する通り、顧客202は、コンピューティングリソースサービスプロバイダ206と、インターネットなどの1つまたは複数の通信ネットワーク204を通して通信することができる。顧客202からコンピューティングリソースサービスプロバイダ206へのいくつかの通信は、コンピューティングリソースサービスプロバイダ206を、本明細書で説明する様々な手法またはそれらの変形に従って動作させることができる。
【0016】
上述の通り、コンピューティングリソースサービスプロバイダ206は、様々なコンピューティングリソースサービスをその顧客に提供することができる。たとえば、本特定の例示的な実施例では、コンピューティングリソースサービスプロバイダ206は、少なくとも2つの種類のサービスを提供する。コンピューティングリソースサービスプロバイダによって提供されるサービスは、本実施例では、マネージドディレクトリサービス208と、仮想コンピュータシステムサービス210と、1つまたは複数の他のサービス212とを含むが、本開示の全ての実施形態が、全てのそのようなサービスを含むわけではなく、追加的なサービスを、本明細書で明示的に説明するサービスに加えて、またはその代替物として、提供することができる。
【0017】
マネージドディレクトリサービス208は、様々なサービスを提供して、コンピュータシステム及び/またはコンピュータシステムクライアントデバイスが顧客ディレクトリにアクセスすることを可能にすることができ、様々なサービスには、認証サービスと、権限付与サービスと、ディレクトリサービスとが含まれるが、これらに限定されない。たとえば、マネージドディレクトリサービス208は、認証サービスを提供することができ、認証サービスは、ユーザ、コンピュータシステム、プロセス、自動プロセス、または他のそのようなエンティティの認証情報を認証して、そのエンティティが、マネージドディレクトリサービス208及び/またはマネージドディレクトリサービス208に関連する顧客ディレクトリにアクセスする権限を与えられているかどうかを、少なくとも判断することができる。いくつかの実施形態では、認証情報は、マネージドディレクトリサービス208自体によって認証され得、または認証情報は、マネージドディレクトリサービス208の制御下にあるプロセス、プログラム、またはサービスによって認証され得、または認証情報は、マネージドディレクトリサービス208が通信することができるプロセス、プログラム、またはサービスによって認証され得、または認証情報は、これら及び/または他のそのようなサービスまたはエンティティの組み合わせによって認証され得る。
【0018】
マネージドディレクトリサービス208は、また、権限付与サービスを提供することができ、権限付与サービスは、ユーザ、コンピュータシステム、プロセス、自動プロセス、または他のそのようなエンティティに権限を与えて、1つまたは複数の可能性のあるアクションのうちのどのアクションをそのエンティティが実行することができるかを少なくとも決定することができる。エンティティが実行する権限を与えられているかもしれず、与えられていないかもしれないアクションの実施例は、ディレクトリを顧客ディレクトリ上に作成すること、ディレクトリを顧客ディレクトリ上で破棄すること、顧客ディレクトリ上のディレクトリを結合すること、顧客ディレクトリ上のディレクトリから分離すること、顧客ディレクトリ上のディレクトリへのアクセスリンクを提供すること、顧客ディレクトリ上のディレクトリへのアクセスリンクを再要求すること、顧客ディレクトリ上のディレクトリからの読み出しを可能にすること、顧客ディレクトリ上のディレクトリへの書き込みを可能にすること、及び/または他のそのようなアクションを含むが、これらに限定されない。
【0019】
マネージドディレクトリサービス208は、また、ディレクトリサービスを提供することができ、ディレクトリサービスは、権限付与認証情報及び/またはポリシーに従って、認証されたエンティティに、顧客ディレクトリへのアクセスを提供することができる。たとえば、コンピュータシステムエンティティに、顧客ディレクトリ上に格納された特定のデータを読み書きする権限を与えることができる一実施形態では、そうする能力は、ディレクトリサービスによって提供され得る。ディレクトリサービスは、顧客ディレクトリへのアクセスを、統一リソース識別子(URI)オブジェクトまたはいくつかの他のそのようなリンクなどによって、顧客ディレクトリの場所へのリンクを提供することによって、提供することができる。検討され得る通り、URIを、コンピュータシステムクライアントデバイスによって、またはデータセンタで動いているプロセスによって、またはデータセンタに接続されたコンピュータシステム上で動いているプロセスによって、またはマネージドディレクトリサービス208によって、またはこれら及び/または他のそのようなコンピュータシステムエンティティによって、提供することができる。
【0020】
仮想コンピュータシステムサービス210は、仮想マシンインスタンスを仮想コンピュータシステム上にコンピューティングリソースサービスプロバイダ206の顧客202のためにインスタンス化するように構成された、コンピューティングリソースの集合であってよい。コンピューティングリソースサービスプロバイダ206の顧客202は、仮想コンピュータシステムサービス210と相互作用して、コンピューティングリソースサービスプロバイダ206によってホスト(たとえば、物理ホスト)され、運営されている物理コンピューティングデバイス上でインスタンス化された仮想コンピュータシステムをプロビジョニングし、運営することができる。仮想コンピュータシステムは、顧客ディレクトリをサポートするサーバとして動作するためなどの、様々な目的のために使用され得る。仮想コンピュータシステムのための他のアプリケーションは、データベースアプリケーション、電子商取引アプリケーション、ビジネスアプリケーション、及び/または他のアプリケーションをサポートするためのものであり得る。
【0021】
顧客202が仮想コンピュータシステムサービス210と相互作用して、顧客ディレクトリに結合することになる仮想マシンインスタンスをプロビジョニングすると、顧客202は、様々なリソースへのアクセスを得ることができる。たとえば、仮想マシンインスタンスは、顧客のニーズにより、オペレーティングシステムと様々なアプリケーションとをプロビジョニングすることができる。仮想マシンインスタンスを、上述の通り、コンピューティングリソースサービスプロバイダ206によって運営され得る物理ホスト上にインスタンス化することができる。仮想マシンインスタンスは、エージェントを含むことができ、エージェントは、仮想コンピュータシステムサービス210にアクセスして、仮想マシンインスタンスを顧客ディレクトリに結合するのに必要なメタデータを取得するように構成され得る。したがって、仮想コンピュータシステムサービス210は、マネージドディレクトリサービス208と相互作用して、顧客ディレクトリに接続するために必要な情報と認証情報とを取得するように構成され得る。上述の通り、これは、ディレクトリへの結合を実行するために必要な、顧客ディレクトリ識別とFQDNとDNS IPアドレスと1つまたは複数のパスワードとを含むことができる。
【0022】
コンピューティングリソースサービスプロバイダ206は、加えて、その顧客202のニーズに基づいて、1つまたは複数の他のサービス212を維持することができる。たとえば、コンピューティングリソースサービスプロバイダ206は、その顧客202のために、データベースサービスを維持することができる。データベースサービスは、1つまたは複数のデータベースを1つまたは複数の顧客202のために実行するように集合的に動作する、コンピューティングリソースの集合であってよい。コンピューティングリソースサービスプロバイダ206の顧客202は、データベースサービスからのデータベースを、サービスへの適切に構成されたAPIコールを活用することによって、運営、管理することができる。これは、今度は、顧客202が、データベース内の動作を維持し、潜在的に大きさを変えることを可能にする。他のサービスは、オブジェクトレベルのデータストレージサービス、オブジェクトレベルのアーカイバルデータストレージサービス、他のサービスを管理するサービス、及び/または他のサービスを含むが、これらに限定されない。
【0023】
上述の通り、仮想コンピュータシステムサービスは、1つまたは複数の顧客によって使用されて、仮想マシンインスタンスをプロビジョニングし、この仮想マシンインスタンスを顧客ディレクトリに結合することができる。したがって、
図3は、少なくとも一実施形態による、仮想コンピュータシステムサービス302の様々な構成要素を含む環境300の例示的な実施例を示している。仮想コンピュータシステムサービス302は、顧客に、インターフェース304を提供することができ、インターフェース304は、顧客が仮想コンピュータシステムサービス302にアクセスすることを可能にすることができる。顧客は、インターフェース304を、インターネットなどの1つまたは複数の通信ネットワークを通して活用することができる。インターフェース304は、顧客が仮想コンピュータシステムサービス302にアクセスするための権限を有することを保証する、特定のセキュリティ予防手段を含むことができる。たとえば、仮想コンピュータシステムサービス302にアクセスするために、顧客は、ユーザ名と、対応するパスワードまたは暗号化キーとを、インターフェース304を使用する時に提供する必要があり得る。加えて、インターフェース304に提出される要求(たとえば、APIコール)は、電子署名が、(図示しない)権限付与システムによってなど、仮想コンピュータシステムサービス302によって証明可能であるように、暗号化キーを使用して生成した電子署名を要求することができる。
【0024】
いったん顧客が、仮想コンピュータシステムサービス302へのアクセスを、インターフェース304を通して得ると、仮想コンピュータシステムサービス302は、顧客が、インターフェース304を通して、管理サブシステム306と相互作用することを可能にすることができる。たとえば、管理サブシステム306は、顧客が仮想マシンインスタンスを遠隔でプロビジョニングすることを可能にすることができる。顧客は、インターフェース304と管理サブシステム306とを使用して、顧客のニーズに合ったオペレーティングシステムと様々なアプリケーションとを含む仮想マシンインスタンスを生成することができる。オペレーティングシステムと様々なアプリケーションとを、データストレージ内に、マシン画像308という形で維持することができる。仮想コンピュータシステムサービス302は、管理サブシステム306で規定される通り、具体的な顧客の好みに基づいて、様々なマシン画像308を維持することができる。顧客が、仮想マシンインスタンスをプロビジョニングすることに対する要求を、管理サブシステム306を通して提出すると、仮想コンピュータシステムサービス302は、顧客が要求したマシン画像を特定し、マシン画像を処理するのに必要なリソース(たとえば、マシン画像の構成要素を動作させるのに必要なプロセッサとランダムアクセスメモリ(RAM))を割り振ることができる。マシン画像を、インスタンスのための物理ホスト312として動作することができる、1つまたは複数の物理ストレージデバイス(たとえば、1つまたは複数のサーバまたはハードドライブ)上にインスタンス化することができる。
【0025】
インターフェース304と管理サブシステム306とを活用して、仮想マシンインスタンスを遠隔でプロビジョニングすることに加えて、顧客は、インターフェース304を活用して、新しく作成された仮想マシンインスタンスを追加するために使用され得る顧客ディレクトリを指定することができる。したがって、以下でより詳細に説明する通り、インターフェース304は、1つまたは複数の適切に構成されたAPIコールをマネージドディレクトリサービスに送信して、仮想マシンインスタンスを追加するために使用され得る全ての利用可能な顧客ディレクトリのリストを取得するように構成され得る。マネージドディレクトリサービスへのAPIコールに応答して、インターフェース304は、各顧客ディレクトリについて、FQDNとDNS IPアドレスと顧客ディレクトリ識別とを取得することができる。顧客ディレクトリ識別を使用して、顧客に、仮想マシンインスタンスを結合するために使用され得る、利用可能な顧客ディレクトリのリストを提供することができる。使用されることになる顧客ディレクトリについての顧客の選択に少なくとも部分的に基づいて、インターフェース304は、管理サブシステム306に、選択された顧客ディレクトリ識別と、顧客ディレクトリのためのFQDNとDNS IPアドレスとを送信することができる。
【0026】
いったん管理サブシステム306が仮想マシンインスタンスを作成すると、管理サブシステム306は、1つまたは複数の適切に構成されたAPIコールをマネージドディレクトリサービスに送信して、仮想マシンインスタンスを選択された顧客ディレクトリに結合するのに必要であり得る、1つまたは複数の認証情報を取得することができる。管理サブシステム306は、その後、1つまたは複数の認証情報と、選択された顧客ディレクトリのためのFQDNとDNS IPアドレスとを、メタデータサービス310に伝達することができる。これは、仮想マシンインスタンス内のエージェントが、このメタデータサービス310にアクセスすることと、1つまたは複数の認証情報と追加情報とを取得することと、仮想マシンインスタンスを選択された顧客ディレクトリに結合することと、を可能にすることができる。メタデータサービス310は、本開示を通して、1つまたは複数の認証情報と、選択された顧客ディレクトリのためのFQDNとDNS IPアドレスとを格納するための機構を説明するために使用されるが、1つまたは複数の認証情報と同様に、この情報も、メタデータとして、別になっているメタデータサービスを活用しない他の方法で格納され得る。たとえば、FQDNとDNS IPアドレスと1つまたは複数の認証情報とを、インスタンスに直接提供することができる。したがって、仮想コンピュータシステムサービス302は、メタデータサービス310を含む必要はなく、FQDNとDNS IPアドレスと1つまたは複数の認証情報とを、使用される形式に従って格納するための代替的なサービスを含むことができる。
【0027】
上述した通り、仮想コンピュータシステムサービスは、インターフェースと管理サブシステムとを含むことができ、インターフェース及び管理サブシステムは、両方とも、マネージドディレクトリサービスと通信して、新しく作成された仮想マシンインスタンスを顧客ディレクトリに結合するのに必要な、認証情報と追加情報とを取得するように構成され得る。したがって、
図4は、少なくとも一実施形態による、ディレクトリサービスなどのコンピュータシステムサービスと、ディレクトリサービスに関連する、ユーザリソース、ポリシーリソース、ネットワークリソース、及び/またはストレージリソースなどのリソースとを含むが、これらに限定されないコンピュータシステムディレクトリリソースに、分散コンピュータシステム環境及び/または仮想コンピュータシステム環境上でアクセスするための環境400と、その上で動いている関連コードとを示している。コンピュータシステムエンティティ、ユーザ、またはプロセス402は、コンピュータシステムに、コンピュータシステムクライアントデバイス404を通して接続することができ、接続406を介した1つまたは複数のサービス426へのアクセスを要求することができる。サービスへのアクセスを要求するコマンドまたは複数のコマンドは、外部のコンピュータシステム及び/またはサーバから生じることができ、または遠隔ネットワークの場所におけるエンティティ、ユーザ、またはプロセスから生じることができ、またはコンピュータシステムから生じることができ、コンピュータシステムクライアントデバイスのユーザから生じることができ、またはこれら及び/または他のこのようなオブジェクトの組み合わせの結果として生じることができる。サービスへのアクセスを要求するコマンドまたは複数のコマンドを、いくつかの実施形態では、特権ユーザによって、または非特権ユーザによって、または自動プロセスによって、または警告または条件の結果として、または、これら及び/または他の方法の組み合わせによって、発行することができる。
【0028】
コンピュータシステムクライアントデバイスは、サービスへのアクセスを、1つまたは複数のネットワーク416、及び/または、ネットワークに直接または間接的に接続された他のサーバなどのそれに関連するエンティティを介して、要求することができる。コンピュータシステムクライアントデバイスは、コンピュータシステムとネットワークを介して接続することができる任意のデバイスを含むことができ、少なくとも、サーバ、ノートパソコン、スマートフォンまたはタブレットなどの携帯デバイス、スマートウォッチ、スマートテレビ、セットトップボックス、ビデオゲーム機及び他のそのようなネットワーク使用可能なスマートデバイスなどの他のスマートデバイス、分散コンピューティングシステム及びその構成要素、ゲストコンピュータシステムまたは仮想マシンなどの抽象化構成要素、及び/または他の種類のコンピューティングデバイス及び/または構成要素を含む。ネットワークは、たとえば、ローカルネットワーク、内部ネットワーク、インターネットなどの公衆ネットワーク、広域ネットワーク、無線ネットワーク、モバイルネットワーク、衛星ネットワーク、複数のネットワークノードを有する分散コンピューティングシステム、及び/または同様なものを含むことができる。ネットワークは、また、以下に挙げるものなどの様々なプロトコルに従って動作することができ、プロトコルは、Bluetooth(登録商標)プロトコル、WiFi(登録商標)プロトコル、セルラーネットワークプロトコル、衛星ネットワークプロトコル、及び/または他のものである。
【0029】
いくつかの実施形態では、コンピュータシステムは、1つまたは複数のローカルコンピュータシステムリソース408を含むことができ、ローカルコンピュータシステムリソース408は、顧客の施設に少なくとも部分的に配置され得、また、ファイル及び/または他のコンピュータシステムリソースをそこに格納することができ、ファイル及び/または他のコンピュータシステムリソースは、ディレクトリ、アプリケーション、データ、データベース、他のコンピュータシステムリソースへのリンク、システムドライバ、コンピュータオペレーティングシステム、仮想マシン、及び/または他のそのようなリソースを含むが、それらに限定されない。いくつかの実施形態では、ローカルコンピュータシステムリソースは、ローカルファイルシステムリソースであってよく、システムランダムアクセスメモリ(RAM)、ディスクドライブ、半導体ドライブ、取り外し可能ドライブ、またはこれらの組み合わせ、及び/または他のそのようなストレージデバイスなどの、様々なストレージデバイス上に格納され得る。いくつかの実施形態では、ローカルコンピュータシステムリソースは、コンピュータシステムクライアントデバイスによって、たとえば、本明細書で説明するネットワーク接続などの1つまたは複数の接続を介してアクセスされ得る、データセンタ(一緒に配置され得る複数のコンピュータシステムリソース、サービス、及び/またはストレージデバイス)内に、少なくとも部分的に配置され得る。コンピュータシステムリソース及び/またはデータセンタは、ローカルに、またはローカルと遠隔とを組み合わせて、配置され得る。たとえば、いくつかの実施形態では、ファイルシステム及び/またはディレクトリは、ローカルのデータセンタ内に配置されたディスク上に配置され得、ファイルシステム及び/またはディレクトリの内容は、また、遠隔データセンタ内に配置されたディスクに複製され得る。いくつかの他の実施形態では、ファイルシステム及び/またはディレクトリは、ローカルであり得る1つのデータセンタ内に配置されたその内容の少なくとも一部と、ローカルまたは遠隔であり得る1つまたは複数の他のデータセンタ内に配置されたその内容の他の部分とを有することができる。ストレージデバイスは、本明細書で説明するものなどの物理デバイス、及び/または、そのような物理デバイスの仮想表示を含むことができる。たとえば、ファイルシステム及び/またはディレクトリストレージデバイスは、ある程度の量の物理メモリを含むことができ、そのうちの一部は、仮想ディスクドライブ上に作成されたファイルシステムを有する仮想ディスクドライブとして、ストレージ専用にされる。他のそのようなローカルストレージデバイスを、本開示の範囲内としてみなすことができる。
【0030】
いくつかの実施形態では、サービス426は、本明細書で説明するものなどの、1つまたは複数のコンピュータシステムディレクトリリソースへアクセスする必要があり得る。サービス426は、いくつかの実施形態では、様々な他のコンピュータシステムエンティティを含むことができ、それには、ユーザ、他のコンピュータシステム、プロセス及び/または自動プロセス、及び/または他のそのようなコンピュータシステムエンティティが含まれるが、これらに限定されない。システムディレクトリリソースへのアクセス414は、いくつかの実施形態では、1つまたは複数のシステムリソースへのアクセスを提供することができる、マネージドディレクトリサービス418などのサービスによって提供され得る。マネージドディレクトリサービスは、様々なサービスを提供して、コンピュータシステム及び/またはコンピュータシステムクライアントデバイスがシステムリソースへアクセスすることを可能にすることができ、サービスは、認証サービス420と権限付与サービス422とディレクトリサービス424とを含むが、これらに限定されない。
【0031】
たとえば、マネージドディレクトリサービスは、認証サービス420を提供することができ、認証サービス420は、ユーザ、コンピュータシステム、プロセス、自動プロセス、または他のそのようなエンティティの認証情報を認証して、そのエンティティが、マネージドディレクトリサービス及び/またはマネージドディレクトリサービスに関連するシステムリソースにアクセスする権限を与えられているかどうかを、少なくとも判断することができる。いくつかの実施形態では、認証情報は、マネージドディレクトリサービス自体によって認証され得、または認証情報は、マネージドディレクトリサービスの制御下のプロセス、プログラム、またはサービスによって認証され得、または認証情報は、マネージドディレクトリサービスが通信することができるプロセス、プログラム、またはサービスによって認証され得、または認証情報は、これら及び/または他のそのようなサービスまたはエンティティの組み合わせによって認証され得る。
【0032】
マネージドディレクトリサービスは、また、権限付与サービス422を提供することができ、権限付与サービス422は、ユーザ、コンピュータシステム、プロセス、自動プロセス、または他のそのようなエンティティに権限を与えて、1つまたは複数の可能性のあるアクションのうちのどのアクションをそのエンティティが実行することができるかを、少なくとも判断することができる。たとえば、ファイルシステムリソースなどのコンピュータシステムリソースの場合では、エンティティが実行する権限を与えられるかもしれず、与えられないかもしれないアクションは、ファイルシステムをファイルシステムリソース上に作成すること、ファイルシステムをファイルシステムリソース上で破棄すること、システムリソース上のシステムに結合すること、ファイルシステムリソース上のシステムから切り離すこと、ファイルシステムリソース上のファイルシステムへのアクセスリンクを提供すること、ファイルシステムリソース上のファイルシステムへのアクセスリンクを再要求すること、ファイルシステムリソース上のファイルシステムからの読み出しを可能にすること、ファイルシステムリソース上のファイルシステムへの書き込みを可能にすること、及び/または他のそのようなファイルシステムリソースアクションを含むが、これらに限定されない。
【0033】
システムリソースに対するアクションは、ディレクトリ、ファイル、アプリケーション、データ、データベース、他のリソースへのリンク、システムドライバ、オペレーティングシステム、仮想マシン、及び/またはそれらの上の他のそのようなシステムリソースオブジェクトに対するアクションを含むが、それらに限定されず、本明細書で述べるアクションなどのアクションを含むことができる。システムリソースを開始し、停止し、再要求し、破壊し、及び/またはそうでなければ管理するためのアクション、及び他のそのようなアクションは、また、利用可能なアクションの中に含まれ得る。アクションを実行する権限は、たとえば、特定のエンティティに関連する認証情報及び/またはポリシーのセットを維持し、認証情報及び/またはポリシーのセットに少なくとも部分的に基づいて、エンティティがどのアクションを実行する権限を与えられているかを判断することができるシステムなどの、認証情報システムまたはポリシーシステムなどのエンティティによって管理され得る。エンティティが実行する権限を与えられ得るアクションは、静的であり得、または、多数の要因に従って変化し得、要因には、時刻、認証情報の種類、システムポリシー、アクセスされているオブジェクトの性質、種類、または場所、またはこれら及び/または他のそのような権限付与要因の組み合わせを含むが、それらに限定されない。たとえば、コンピュータシステムエンティティは、ファイルシステム上の特定のファイルを読み出すことのみと、ファイルシステム上の特定の他のファイルを読み書きすることと、ファイルシステム上で特定の他のファイルを追加、削除することと、の権限を与えられ得る。異なるコンピュータシステムエンティティは、任意のアクションをファイルシステム上で実行する権限を与えられ得るが、それは、それらのアクションが、特定の場所で、特定の時間に生じた場合のみである。1つまたは複数のプロセスは、たとえば、システムログなどのファイルシステム上のファイルに書き込む権限のみを与えられ得、一方で、他のプロセスは、ファイルから読み出す権限のみを与えられ得る。検討され得る通り、これらは例示的な実施例である。他の種類の動作は、マネージドディレクトリサービス権限付与システムによって権限を与えられ得、そのような他の種類の動作は、また、本開示の範囲内であるとみなされる。
【0034】
マネージドディレクトリサービスは、また、ディレクトリサービス424を提供することができ、ディレクトリサービス424は、権限付与認証情報及び/またはポリシーに従って、コンピュータシステムリソースへの認証されたエンティティアクセス414を提供することができる。たとえば、コンピュータシステムエンティティが、ファイルシステムリソースなどのコンピュータシステムリソース上の特定のデータストアを読み書きする権限を与えられ得る一実施形態では、そうする能力は、ディレクトリサービスによって提供され得る。ディレクトリサービスは、ファイルシステムリソースへのアクセスを、URIオブジェクトまたはいくつかの他のそのようなリンクによってなど、ファイルシステムリソースの場所へのリンクを提供することによって、提供することができる。URIは、コンピュータシステムクライアントデバイスによって、またはデータセンタで動いているプロセスによって、またはデータセンタに接続されたコンピュータシステム上で動いているプロセスによって、またはマネージドディレクトリサービスによって、またはこれら及び/または他のそのようなコンピュータシステムエンティティの組み合わせによって、提供され得る。
【0035】
いくつかの実施形態では、コンピュータシステムリソースへのアクセスは、要求エンティティにはアクセスが見えない方法で提供され得る。たとえば、アクセス414は、要求エンティティに、URIまたはローカルファイルシステム408上の場所410への他のそのようなリンクとして提供され得る。コンピュータシステムリソース上の場所は、URIに、コンピュータシステム上で動いている1つまたは複数のプロセスによって変換412され得る。コンピュータシステムリソースへのアクセスを要求したサービスまたはエンティティ426は、受信URI428を使用して、コンピュータシステムリソースに、コンピュータシステムリソースの場所に依存する構成を必要とせずにアクセスすることができ、いくつかの実施形態では、URIを使用してコンピュータシステムリソースにリンクし、あたかもサービスまたはエンティティ426がコンピュータシステムリソースに直接接続されているかのように動作することができる。たとえば、サービスまたはエンティティにとって、サービスまたはエンティティに対してローカルな場所に配置されているように見え得るファイルへデータのセットを書き込むように見える動作は、データをネットワークパケットに実際にパッケージ化することができ、その後、そのパケットを、ネットワーク416上で、アクセスリング414を介して伝達して、ローカルファイルシステム408上に配置されたファイルに実際に書き込むことができる。検討され得る通り、これらは例示的な実施例であり、マネージドディレクトリサービスによって実行され得る他の種類の動作も、また、本開示の範囲内とみなされ得る。
【0036】
上述の通り、顧客は、仮想コンピュータシステムサービスによって提供されるインターフェースを活用して、仮想マシンインスタンスを作成し、仮想マシンインスタンスを結合するために使用されることになる顧客ディレクトリを指定することができる。しかしながら、顧客ディレクトリが利用可能でない場合、顧客は、新しい顧客ディレクトリを追加的に作成し、仮想マシンインスタンスをこの新しい顧客ディレクトリに結合するというオプションを提示され得る。したがって、
図5は、少なくとも一実施形態による、新しく作成された仮想マシンインスタンス510を新しく作成された顧客ディレクトリ522に結合する環境500の、例示的な実施例である。
【0037】
顧客は、仮想コンピュータシステムサービス502に、インターフェース504を通してアクセスして、仮想マシンインスタンス510のプロビジョニングを要求することができる。ブラウザまたは他のアプリケーションを使用してインターフェース504を表示する場合、ブラウザまたは他のアプリケーションは、1つまたは複数の適切に構成されたAPIコールを、インターフェース504から他のサービスに送信することができる、ということを理解すべきである。代替的に、インターフェース504を表示するために使用されるブラウザまたは他のアプリケーションは、顧客によって提供された情報を仮想コンピュータシステムサービス502に送信するように構成され得る。その後、仮想コンピュータシステムサービス502は、1つまたは複数の適切に構成されたAPIコールを他のサービスに送信することができる。上述した通り、インターフェース504は、1つまたは複数の適切に構成されたAPIコールをマネージドディレクトリサービス514に送信して、顧客がアクセスを有し得る全ての利用可能な顧客ディレクトリ522のリストを取得するように構成され得る。したがって、インターフェース504からの1つまたは複数のAPIコールに応答して、マネージドディレクトリサービス514は、利用可能な顧客ディレクトリ522のリストと、顧客ディレクトリ522の各々のためのFQDNとDNS IPアドレスとを、送信することができる。しかしながら、利用可能な顧客ディレクトリ522がない場合、マネージドディレクトリサービス514は、空リストをインターフェース504に送信することができる。したがって、インターフェース504は、顧客に、新しい顧客ディレクトリ522を作成し、仮想マシンインスタンス510をこの新しい顧客ディレクトリ522に結合するというオプションを提示するように構成され得る。
【0038】
顧客が、インターフェース504を通して、新しい仮想マシンインスタンス510を新しい顧客ディレクトリ522に結合するべきであると指定する場合、インターフェース504は、(
図5に例示した「CreateDirectory()」などの)1つまたは複数の適切に構成されたAPIコールをマネージドディレクトリサービス514に送信して、新しい顧客ディレクトリ522を作成することができる。したがって、マネージドディレクトリサービス514内のディレクトリサービス520は、要求を処理し、顧客が新しい顧客ディレクトリ522を作成する権限を与えられているかどうかを判断することができる。顧客が新しい顧客ディレクトリ522を作成する権限を与えられている場合、ディレクトリサービス520は、顧客ディレクトリ522を、顧客の施設上に、ローカル許可を有して作成することができる(たとえば、顧客及び代理ユーザは、顧客ディレクトリ522に、顧客ディレクトリ522に固有の認証情報を活用してアクセスすることができる)。いくつかの実施形態では、顧客及び他のユーザが、彼らのコンピューティングリソースサービスプロバイダ認証情報を活用して顧客ディレクトリ522にアクセスすることができるように、顧客ディレクトリ522を作成することができる。
【0039】
いったん新しい顧客ディレクトリ522が作成されると、マネージドディレクトリサービスは、顧客ディレクトリ522のための、顧客ディレクトリ522識別とFQDNとDNS IPアドレスとを、仮想コンピュータシステムサービス502内の管理サブシステム506に送信することができる。加えて、管理サブシステム506は、仮想マシンインスタンス510を新しく作成された顧客ディレクトリ522に結合するために使用され得る認証情報の仮のセットを、マネージドディレクトリサービス514から受信することができる。管理サブシステムは、この情報をメタデータサービス508に伝達し、いったん仮想マシンインスタンス510が作成されると、その情報を仮想マシンインスタンス510に対して利用可能にすることができる。上述の通り、管理サブシステム506は、さらに、
図3に関連して説明した通り、新しい仮想マシンインスタンス510を作成するための顧客要求をさらに処理して、仮想マシンインスタンス510を物理ホスト内にインスタンス化することができる。
【0040】
いったん仮想マシンインスタンス510がインスタンス化されると、仮想マシンインスタンス510内のエージェント512は、1つまたは複数の実行可能命令を、仮想コンピュータシステムサービス502内のメタデータサービス508へ送信して、仮想マシンインスタンス510を顧客ディレクトリ522に結合するのに必要な、FQDNとDNS IPアドレスと認証情報の仮のセットとを取得することができる。したがって、仮想マシンインスタンス510内で動作しているエージェント512は、メタデータを活用して、FQDNと、DNS IPアドレスと、顧客ディレクトリ識別と、認証情報の仮のセットとを抽出することができる。その後、エージェント512は、(
図5に例示した「JoinDirectory()」などの)1つまたは複数の適切に構成されたAPIコールを顧客ディレクトリ522に送信して、仮想マシンインスタンス510を顧客ディレクトリ522に結合することができる。したがって、顧客は、顧客ディレクトリ522にアクセスするための認証情報のセットを活用して、仮想マシンインスタンス510にもアクセスすることができる。
【0041】
別の実施形態では、仮想コンピュータシステムサービスは、新しく作成された仮想マシンインスタンスを既存の顧客ディレクトリに結合するために使用され得る情報を、マネージドディレクトリサービスから取得するように構成され得る。したがって、
図6は、少なくとも一実施形態による、仮想マシンインスタンス610を既存の顧客ディレクトリ622に自動的に結合する環境600の例示的な実施例である。
図5に例示した通り、顧客は、仮想コンピュータシステムサービス602にインターフェース604を通してアクセスして、新しい仮想マシンインスタンス610のプロビジョニングを要求することができ、さらに、新しい仮想マシンインスタンス610を既存の顧客ディレクトリ622に結合することを要求することができる。したがって、インターフェース604は、(
図6に例示した「DescribeDirectory()」などの)1つまたは複数の適切に構成されたAPIコールをマネージドディレクトリサービス614の権限付与サービス618構成要素に送信して、仮想マシンインスタンス610を結合するために使用され得る現在利用可能な顧客ディレクトリ622のリストを取得するように構成され得る。ブラウザまたは他のアプリケーションを使用してインターフェース604にアクセスする場合、現在利用可能な顧客ディレクトリ622のリストは、マネージドディレクトリサービス614によってブラウザまたは他のアプリケーションに送信され得る、ということを理解すべきである。代替的に、マネージドディレクトリサービス614は、現在利用可能な顧客ディレクトリ622のリストを仮想コンピュータシステムサービス602に送信することができ、仮想コンピュータシステムサービス602は、今度は、そのリストを、インターフェース604を表示するために使用されるブラウザまたは他のアプリケーションに送信することができる。
【0042】
マネージドディレクトリサービス614の権限付与サービス618構成要素は、顧客が、仮想マシンインスタンス610を、利用可能な顧客ディレクトリ622のうちの任意のものに結合する権限を有しているかどうかを判断するように構成され得る。したがって、マネージドディレクトリサービス614の権限付与サービス618構成要素は、仮想マシンインスタンス610を結合するために使用され得る現在利用可能な顧客ディレクトリ622の識別と、顧客ディレクトリ622の各々のためのFQDNとDNS IPアドレスとを送信することができる。インターフェース604は、その後、顧客が適切な顧客ディレクトリ622を選択することを可能にするために、顧客ディレクトリ622の識別を顧客に提示することができる。しかしながら、一実施形態では、顧客が、仮想マシンインスタンス610を既存の顧客ディレクトリ622のうちの任意のものに結合する権限を有していない場合、マネージドディレクトリサービス614の権限許可構成要素618は、空リストを、インターフェースに、APIコールに応答して送信することができる。したがって、インターフェース604は、
図5に関連して上記で説明した通り、顧客に、新しい顧客ディレクトリ622を作成するというオプションを提示するように構成され得る。
【0043】
いったん顧客が、仮想マシンインスタンス610を結合するために使用され得る既存の顧客ディレクトリ622を選択すると、インターフェース604は、顧客ディレクトリ622の識別と、顧客ディレクトリ622のFQDNとDNS IPアドレスとを、仮想コンピュータシステムサービス602内の管理サブシステム606に送信することができる。加えて、管理サブシステム606は、
図3で説明した通り、要求された仮想マシンインスタンス610を物理ホスト内にインスタンス化するように構成され得る。管理サブシステム606は、(
図6に例示する「GetDirectoryJoinPassword()」などの)1つまたは複数の適切に構成されたAPIコールを、マネージドディレクトリサービス614の権限付与サービス618構成要素に送信して、仮想マシンインスタンス610を指定された顧客ディレクトリ622に結合するために使用され得る認証情報の仮のセットを要求するように構成され得る。
【0044】
その後、管理サブシステム606は、権限付与構成要素618から取得した、FQDNとDNS IPアドレスと認証情報の仮のセットとを、仮想コンピュータシステムサービス602内のメタデータサービス608に送信することができる。したがって、FQDNとDNS IPアドレスと認証情報の仮のセットとを、仮想マシンインスタンス610に対して、メタデータサービス608内に格納されたメタデータという形式で、利用可能にすることができる。したがって、仮想マシンインスタンス610内で動作しているエージェント612は、1つまたは複数の適切に構成されたAPIコールをメタデータサービス608に送信して、このメタデータを取得するように構成され得る。エージェント612は、顧客ディレクトリ622を結合するためのFQDNとDNS IPアドレスと認証情報の仮のセットとを、このメタデータから抽出するように構成され得る。
【0045】
仮想マシンインスタンス610内で動作しているエージェント612は、FQDNとDNS IPアドレスとを活用して、結合のためのターゲット顧客ディレクトリ622を見つけ、特定することができる。したがって、エージェント612は、(
図6に例示した「JoinDirectory()」などの)1つまたは複数の適切に構成されたAPIコールを顧客ディレクトリ622に送信して、仮想マシンインスタンス610の顧客ディレクトリ622への結合を要求するように構成され得る。エージェント612は、認証情報の仮のセットを顧客ディレクトリ622に送信して、顧客ディレクトリ622への1つまたは複数のAPIコールを確認し、仮想マシンインスタンス610の結合を可能にするように要求され得る。いったん仮想マシンインスタンス610が顧客ディレクトリ622に結合すると、顧客は、顧客ディレクトリ622にアクセスするための認証情報のセットを活用して、仮想マシンインスタンス610にもアクセスすることができる。
【0046】
代替的な実施形態では、仮想コンピュータシステムサービスは、1つまたは複数のAPIコールをマネージドディレクトリサービスに送信するように構成されないことがある。したがって、仮想マシンインスタンスが顧客ディレクトリに結合するために必要な顧客ディレクトリ情報に対する要求は、仮想マシンインスタンス自体から生じる必要があり得る。したがって、
図7は、少なくとも一実施形態による、仮想マシンインスタンス710がマネージドディレクトリサービス714と通信して、既存の顧客ディレクトリ722に結合する環境700の例示的な実施例である。
【0047】
図5と
図6とで説明した通り、顧客は、仮想コンピュータシステムサービス702にインターフェース704を通してアクセスして、新しい仮想マシンインスタンス710のプロビジョニングを要求することができる。しかしながら、本特定の実施形態では、インターフェース704は、顧客が新しい顧客ディレクトリ722を作成するオプション、または顧客が仮想マシンインスタンス710を既存の顧客ディレクトリ722に結合するオプションを含むことができない。代替的に、インターフェース704は、1つまたは複数の適切に構成されたAPIコールをマネージドディレクトリサービス714に送信して、顧客が仮想マシンインスタンス710を結合することができる利用可能な顧客ディレクトリ722の各々のための識別のリストを取得するように構成され得る。しかしながら、
図7に例示した通り、インターフェース704は、利用可能な顧客ディレクトリ722のためのFQDNまたはDNS IPアドレスを、マネージドディレクトリサービス714から取得するように構成され得ない。
【0048】
したがって、インターフェース704は、顧客からの要求に少なくとも部分的に基づいて、1つまたは複数の適切に構成されたAPIコールを仮想コンピュータシステムサービス702内の管理サブシステム706に送信して、仮想マシンインスタンス710のプロビジョニングを要求するように構成され得る。したがって、インターフェース704が、仮想マシンインスタンス710を結合するために使用され得る利用可能な顧客ディレクトリ722の各々のための識別のリストを取得するように構成されている実施形態では、管理サブシステム706は、選択された顧客ディレクトリ722識別を仮想マシンインスタンス710に対して利用可能にするために、選択された顧客ディレクトリ722識別をメタデータサービス708に送信することができる。
【0049】
一実施形態では、いったん仮想マシンインスタンス710がプロビジョニングされると、仮想マシンインスタンス710内で動作しているエージェント712は、1つまたは複数の適切に構成されたAPIコールをメタデータサービス708に送信して、顧客によって選択された顧客ディレクトリ722の識別を、インターフェースを通して取得することができる。したがって、エージェント712は、この識別を活用して、(
図5と
図6とで説明した「DescribeDirectories()」及び「GetDirectoryJoinPassword()」などの)1つまたは複数の適切に構成されたAPIコールをマネージドディレクトリサービス714に送信して、仮想マシンインスタンス710を指定された顧客ディレクトリ722に結合するために使用され得る、FQDNとDNS IPアドレスと認証情報の仮のセットとを取得するように構成され得る。したがって、エージェント712は、FQDNとDNS IPアドレスとを活用して、顧客ディレクトリ722との接続を確立し、(
図7に例示した「JoinDirectory()」などの)1つまたは複数の適切に構成されたAPIコールを顧客ディレクトリ722に送信して、仮想マシンインスタンス710を顧客ディレクトリ722に結合するように構成され得る。
【0050】
代替的に、一実施形態では、インターフェース704が、全ての利用可能な顧客ディレクトリ722に関する詳細をマネージドディレクトリサービス714から取得するように構成されていない場合、仮想マシンインスタンス710は、仮想マシンインスタンス710が既存の顧客ディレクトリ722に結合することを顧客が要求することを可能にするように構成され得る。したがって、仮想マシンインスタンス710内で動作しているエージェント712は、(「DescribeDirectories()」などの)1つまたは複数の適切に構成されたAPIコールを送信して、顧客が仮想マシンインスタンス710を結合するために使用し得る全ての利用可能な顧客ディレクトリ722のリストを取得するように構成され得る。したがって、エージェント712は、利用可能な顧客ディレクトリ722の各々のためのFQDNとDNS IPアドレスとを取得することができる。仮想マシンインスタンス710を活用している顧客が適切な顧客ディレクトリ722を選択した場合、エージェント712は、(「GetDirectoryJoinPassword()」などの)第2の適切に構成されたAPIコールをマネージドディレクトリサービス714に送信して、仮想マシンインスタンス710を選択された顧客ディレクトリ722に結合するために使用され得る認証情報の仮のセットを取得することができる。したがって、エージェント712は、選択された顧客ディレクトリ722のためのFQDNとDNS IPアドレスとを活用して、選択された顧客ディレクトリ722との接続を確立するように構成され得る。次に、エージェント712は、(「JoinDirectory()」などの)1つまたは複数の適切に構成されたAPIコールと、認証情報の仮のセットとを、顧客ディレクトリ722に送信して、仮想マシンインスタンス710を結合することができる。いったん仮想マシンインスタンス710を顧客ディレクトリ722に結合すると、顧客は、顧客ディレクトリ722にアクセスするための認証情報のセットを活用して、仮想マシンインスタンス710にもアクセスすることができる。
【0051】
上述の通り、顧客は、仮想コンピュータシステムサービスによって提供されるインターフェースを活用して、仮想マシンインスタンスのプロビジョニングを要求することができ、また、この仮想マシンインスタンスを新しい顧客ディレクトリまたは既存の顧客ディレクトリのいずれかに結合することを要求することができる。したがって、
図8は、少なくとも一実施形態による、新しい仮想マシンインスタンスを既存のディレクトリに結合するための選択メニューを含むインターフェースを提供するための、プロセス800の例示的な実施例である。プロセス800は、顧客要求を受信し、顧客ディレクトリに対する要求を送信し、いくつかの実施形態では、1つまたは複数のAPIコールをマネージドディレクトリサービスに送信するように構成されたインターフェースに接続された、適切に構成された仮想または他のコンピュータシステムサービスによって実行され得る。したがって、マネージドディレクトリサービスは、プロセス800内に提供されたアクションのうちのいくつかを実行するように構成され得る。
【0052】
顧客は、仮想コンピュータシステムサービスに、インターフェースを通して、顧客にコンピューティングリソースサービスプロバイダによって提供される認証情報のセットを活用することによって、アクセスすることができる。したがって、仮想コンピュータシステムサービスは、顧客がインターフェースを起動したことを検出する802ことができ、インターフェースは、新しい仮想マシンインスタンスをプロビジョニングし、この新しい仮想マシンインスタンスを、新しい顧客ディレクトリまたは既存の顧客ディレクトリに結合するために使用され得る。顧客は、インターフェースを活用して、仮想マシンインスタンスの中に含まれことになるオペレーティングシステム及びアプリケーションと、仮想マシンインスタンスをインスタンス化するために使用されるべきコンピューティングリソースとを指定することができる。
【0053】
顧客がこの仮想マシンインスタンスを既存の顧客ディレクトリに結合するための権限を有しているかどうかを判断するために、インターフェースは、受信した認証情報のセットを識別管理サービスに送信して、顧客の識別を決定する804ように構成され得る。たとえば、識別管理サービスは、顧客プロファイルを含むことができ、顧客プロファイルは、この特定の顧客に影響を与え得る1つまたは複数のポリシーを含むことができる。たとえば、顧客は、仮想マシンインスタンスを作成する権限のみを与えられ得るが、マネージドディレクトリサービスまたはコンピューティングリソースサービスプロバイダによって提供される他のサービスへのアクセスを有さないかもしれない。したがって、顧客がこれらのサービスへのアクセスを有しない場合、インターフェースは、仮想マシンインスタンスを活用してこれらのサービスと相互作用するためのオプションを含まないかもしれない。代替的に、識別管理サービスは、これらの追加のサービスにアクセスするために使用され得る、追加の顧客認証情報を含むことができる。したがって、インターフェースは、マネージドディレクトリサービス内での顧客のアクセスレベルを判断するために、マネージドディレクトリサービスにアクセスするために活用される、顧客識別と認証情報とを取得することができる。
【0054】
インターフェースは、その後、要求と、顧客識別及び認証情報とを、マネージドディレクトリサービスに送信806して、新しい仮想マシンインスタンスを結合するために使用され得る既存の顧客ディレクトリのリストを取得するように構成され得る。いくつかの実施形態では、仮想コンピュータシステムサービスが、マネージドディレクトリサービスへの1つまたは複数の適切に構成されたAPIコールを通して通信するように構成されている場合、インターフェースは、加えて、使用され得る既存の顧客ディレクトリの各々のためのFQDNとDNS IPアドレスとを要求することができる。しかしながら、一実施形態では、仮想コンピュータシステムサービスが、既存の顧客ディレクトリの各々のためのFQDNとDNS IPアドレスとを取得するように構成されている場合、インターフェースは、既存の顧客ディレクトリの各々の識別を要求することのみできる。
【0055】
したがって、マネージドディレクトリサービスは、インターフェースからの、仮想コンピュータシステムサービスによって提供された要求を処理して、顧客が既存の顧客ディレクトリを有しているかどうかを判断する808ように構成され得る。顧客が、新しい仮想マシンインスタンスを結合するために使用され得る既存の顧客ディレクトリを有していない場合、マネージドディレクトリサービスは、空リストをインターフェースに送信することができる。したがって、インターフェースは、この空リストを顧客に提示し810、顧客に、新しい顧客ディレクトリを作成するオプションを提示するように構成され得る。
【0056】
しかしながら、顧客が、利用可能な1つまたは複数の既存の顧客ディレクトリを有していない場合、マネージドディレクトリサービスは、顧客が、既存の顧客ディレクトリのうちの任意のものを活用して、新しい仮想マシンインスタンスを結合する権限を与えられているかどうかを判断する812ように構成され得る。したがって、マネージドディレクトリサービスは、顧客ディレクトリの各々の中に記載された顧客プロファイルとポリシーとを参照するために、受信した顧客認証情報を活用して、顧客がこれらのディレクトリに対して有するアクセスレベルを判断するように構成され得る。一実施例として、顧客は、特定のセキュリティの懸念のために、特定の顧客ディレクトリを仮想マシンインスタンスに追加することができない、ということを以前に規定しているかもしれない。したがって、顧客が既存の顧客ディレクトリのうちの任意のものを活用して、新しい仮想マシンインスタンスを結合する権限を与えられていないと、マネージドディレクトリサービスが判断した場合、ディレクトリは、空リストをインターフェースに送信して、インターフェースに、空リストを顧客に提示する810ことと、新しい顧客ディレクトリを作成するオプションを顧客に提示することと、を行わせることができる。
【0057】
1つまたは複数の顧客ディレクトリが利用可能であり、顧客が、仮想マシンインスタンスをこれらの既存の顧客ディレクトリのうちの任意のものに結合することを許可されている場合、マネージドディレクトリサービスは、これらの顧客ディレクトリのリストをインターフェースに送信することができる。加えて、いくつかの実施形態では、マネージドディレクトリサービスは、これらの顧客ディレクトリの各々のためのFQDNとDNS IPアドレスとを、インターフェースに追加的に送信することができる。したがって、インターフェースは、リストをマネージドディレクトリサービスから受信し、新しい仮想マシンインスタンスを結合するために利用可能な既存のディレクトリのこのリストを、顧客に提示する814ことができる。このようにして、顧客は、新しい仮想マシンインスタンスのためのパラメータを指定するだけでなく、仮想マシンインスタンスを結合するために使用され得る顧客ディレクトリを特定することもできる。
【0058】
上述した通り、仮想コンピュータシステムサービスは、仮想マシンインスタンスが既存の顧客ディレクトリまたは新しい顧客ディレクトリに結合するために必要な情報を取得するように構成され得る。したがって、
図9は、少なくとも一実施形態による、新しい仮想マシンインスタンスを既存のディレクトリに自動的に結合するために準備するためのプロセス900の例示的な実施例である。プロセス900は、
図6に例示し説明したものなどの、仮想または他のコンピュータシステムサービスの管理サブシステム構成要素によって実行され得る。加えて、プロセス900の実行は、仮想コンピュータシステムサービス内のメタデータサービスを追加的に伴うことができる。プロセス900は、
図8に関連して上記で説明したプロセスの後に実行され得る。
【0059】
顧客が、インターフェースを通して、新しい仮想マシンインスタンスをプロビジョニングし、この新しい仮想マシンインスタンスを新しい顧客ディレクトリまたは既存の顧客ディレクトリに結合する要求を提出した後、管理サブシステムは、この要求を受信する902ことができる。要求は、インスタンスをプロビジョニングするために使用されるべき顧客指定のコンピューティングディレクトリを含むことができる。したがって、
図3に関連して例示した通り、管理サブシステムは、適切なマシン画像を仮想コンピュータシステムサービスから取得し、この画像を物理ホスト上にインスタンス化するように構成され得る。したがって、管理サブシステムは、この新しい仮想マシンインスタンスを物理ホスト上に割り当て904、それを顧客に対して利用可能にすることができる。
【0060】
仮想マシンインスタンスをプロビジョニングするために使用されるべきコンピューティングリソースに加えて、要求は、仮想マシンインスタンスを結合するために使用されるべき顧客ディレクトリのためのFQDNとDNS IPアドレスとを含むことができる。
図8に例示した通り、インターフェースは、利用可能な、顧客ディレクトリの各々のためのFQDNとDNS IPアドレスとを取得するように構成され得、顧客は、仮想マシンインスタンスを結合するための必須の許可を有する。したがって、いったん顧客が適切な顧客ディレクトリを選択すると、インターフェースは、その顧客ディレクトリのためのFQDNとDNS IPアドレスとを、管理サブシステムに送信することができる。したがって、管理サブシステムは、選択された顧客ディレクトリのためのFQDNとDNS IPアドレスとをさらに取得する906ように構成され得る。一実施形態では、新しい顧客ディレクトリが、インターフェースから取得した要求の後に作成された場合、マネージドディレクトリサービスは、FQDNとDNS IPアドレスとを直接管理サブシステムに送信することができる。
【0061】
いったん管理サブシステムが、FQDNとDNS IPアドレスとを、インターフェースから受信した顧客要求から、またはマネージドディレクトリサービスから直接、のいずれかで取得すると、管理サブシステムは、要求を、サービスへの1つまたは複数のAPIコールを通してなど、マネージドディレクトリサービスに送信して908、仮想マシンインスタンスを選択された顧客ディレクトリに結合するために使用され得る仮の認証情報のセットを取得することができる。したがって、マネージドディレクトリサービスは、データベースを参照して、仮想マシンインスタンスを選択された顧客ディレクトリに結合するために使用され得る、仮の認証情報の適切なセットを決定することができる。仮の認証情報のこのセットは、限られた時間の間アクティブであることができ、使用されない場合は、失効し得る。これは、他の仮想マシンインスタンスが既存の顧客ディレクトリに結合しようと試みることを防ぐことができる。いったんマネージドディレクトリサービスが仮の認証情報のこのセットを取得すると、マネージドディレクトリサービスは、仮の認証情報のセットを管理サブシステムに送信することができる。
【0062】
いったん管理サブシステムが仮の認証情報のセットをマネージドディレクトリサービスから取得すると、管理サブシステムは、これらの認証情報と、選択された顧客ディレクトリのためのFQDNとDNS IPアドレスとを、仮想マシンインスタンスに対して、メタデータという形式で利用可能にする910。したがって、管理サブシステムは、仮の認証情報のセットと、選択された顧客ディレクトリのためのFQDNとDNS IPアドレスとを、仮想コンピュータシステムサービス内のメタデータサービスに送信するように構成され得る。
図10に関連して以下に例示する通り、仮想マシンインスタンスは、このメタデータを取得して仮想マシンインスタンスを顧客ディレクトリに結合するように構成された、仮想マシンインスタンス内で動作しているエージェントを含むことができる。
【0063】
仮想マシンインスタンスがプロビジョニングされ、動作可能になった後、仮想マシンインスタンス内で動作しているエージェントは、仮想マシンインスタンスを選択された顧客ディレクトリに結合することを要求することに進むことができる。したがって、
図10は、少なくとも一実施形態による、新しい仮想マシンインスタンスを既存の顧客ディレクトリに結合するためのプロセス1000の例示的な実施例であるが、
図10に関連して、また本明細書のどこかで説明する手法は、必ずしも仮想でない他のコンピュータシステムインスタンスに関連する用途に適応可能である。プロセス1000は、上述の通り、仮想マシンインスタンス内で動作しているエージェントによって実行され得る。エージェントは、1つまたは複数のAPIコールを、仮想コンピュータシステムサービスとマネージドディレクトリサービスと顧客ディレクトリとに送信して、仮想マシンインスタンスを顧客ディレクトリに結合するために必要な情報を取得するように構成され得る。
【0064】
したがって、仮想マシンインスタンス内で動作しているエージェントは、仮想マシンインスタンスを既存の顧客ディレクトリに結合するための要求を受信する1002ことができる。一実施形態では、顧客は、新しい仮想マシンインスタンスをプロビジョニングし、このインスタンスを顧客ディレクトリに結合するための要求を、仮想コンピュータシステムサービスによって提供されるインターフェースを通して送信する。この要求は、仮想コンピュータシステムサービス内の管理サブシステムに送信され得、管理サブシステムは、新しい仮想マシンインスタンスをプロビジョニングし、仮想マシンインスタンスが顧客ディレクトリに結合するために必要な情報を、この情報をメタデータサービスに送信することによって準備するように構成され得る。仮想マシンインスタンスが顧客ディレクトリに結合するための要求は、仮想マシンインスタンス内で動作しているエージェントに送信され得る。代替的な実施形態では、仮想コンピュータシステムサービスが、仮想マシンインスタンスを顧客ディレクトリに結合するのに必要な情報を取得するように構成されていない場合、顧客は、仮想マシンインスタンスを顧客ディレクトリに結合するための要求を、仮想マシンインスタンス自体を通して提出することができる。この要求は、その後、仮想マシンインスタンス内で動作しているエージェントに伝達され得る。
【0065】
いったんエージェントが、仮想マシンインスタンスを既存の顧客ディレクトリに結合するための要求を受信すると、エージェントは、顧客ディレクトリとの接続を確立し、仮想マシンインスタンスを顧客ディレクトリに結合するのに必要な、FQDNとDNS IPアドレスと仮の認証情報のセットとを取得するための要求を、メタデータサービスに送信する1004ことができる。上述の通り、仮想コンピュータシステムサービス内の管理サブシステム構成要素は、選択された顧客ディレクトリのためのFQDNとDNS IPアドレスとを、インターフェースを通して行われた最初の顧客要求から取得するように構成され得る。加えて、管理サブシステムは、1つまたは複数の適切に構成されたAPIコールをマネージドディレクトリサービスに送信して、仮想マシンインスタンスを顧客ディレクトリに結合するために使用され得る仮の認証情報のセットを取得することができる。したがって、管理サブシステムは、FQDNとDNS IPアドレスと仮の認証情報のセットとを、エージェントに対して、メタデータという形式で、メタデータサービスを通して利用可能にすることができる。
【0066】
しかしながら、一実施形態では、仮想コンピュータシステムサービスは、FQDNとDNS IPアドレスと仮の認証情報のセットとを、マネージドディレクトリサービスから取得するように構成されないことがある。したがって、本実施形態では、メタデータサービスはこの情報を含まない。したがって、エージェントは、メタデータがメタデータサービスから利用可能であるかどうかを判断する1006ように構成され得る。たとえば、エージェントからのこのメタデータに対する要求に応じて、メタデータサービスは、要求メタデータが利用可能でないことを示す、空リストまたはエラーメッセージを返すことができる。代替的に、仮想コンピュータシステムサービスが、FQDNとDNS IPアドレスと仮の認証情報のセットとをマネージドディレクトリサービスから取得するように構成されている場合、メタデータサービスは、要求に応答して、この情報を、エージェントに、メタデータの形式で提供することができる。
【0067】
メタデータがメタデータサービスから利用可能でない場合、仮想マシンインスタンス内で動作しているエージェントは、選択された顧客ディレクトリのためのFQDNとDNS IPアドレスとを取得するための要求と、仮想マシンインスタンスを顧客ディレクトリに結合するのに必要であり得る仮の認証情報のセットを取得するための要求とを、マネージドディレクトリサービスに送信する1008ように構成され得る。それに応じて、マネージドディレクトリサービスは、顧客ディレクトリへの接続を確立するために、選択された顧客ディレクトリのためのFQDNとDNS IPアドレスとをエージェントに送信することができる。加えて、マネージドディレクトリサービスは、要求に応答して、仮の認証情報のセットをエージェントに送信することができる。
【0068】
いったんメタデータサービスまたはマネージドディレクトリサービスが、顧客ディレクトリのためのFQDNとDNS IPアドレスと、仮の認証情報のセットとをエージェントに送信すると、エージェントは、この情報を取得し1010、仮想マシンインスタンスを、顧客ディレクトリに結合するために準備する。たとえば、一実施形態では、エージェントが、要求に応答して、メタデータをメタデータサービスから受信すると、エージェントは、FQDNとDNS IPアドレスと仮の認証情報のセットとを、メタデータから抽出する。したがって、エージェントは、FQDNとDNS IPアドレスとを活用して、選択された顧客インスタンスとの接続を確立することができる。これは、エージェントが、1つまたは複数の適切に構成されたAPIコールを顧客ディレクトリに送信して、1つまたは複数のアクションを実行することを可能にすることができる。
【0069】
したがって、いったん接続が顧客ディレクトリと確立されると、エージェントは、仮想マシンインスタンスを顧客ディレクトリに結合するための要求を、顧客ディレクトリに送信する1012ことができる。上述の通り、エージェントは、この要求を、(上記で例示した「JoinDirectory()」などの)1つまたは複数の適切に構成されたAPIコールを通して、顧客ディレクトリに送信することができる。加えて、この要求を送信するために、エージェントは、エージェントがAPIコールを顧客ディレクトリに送信する権限を与えられていることを確認するために使用され得る、仮の認証情報のセットを活用することができる。要求に応答して、顧客ディレクトリは、仮想マシンインスタンスを顧客ディレクトリに結合する権限を与えることができ、顧客が、顧客ディレクトリのための認証情報のセットを活用して仮想マシンインスタンスにアクセスすることを可能にする。
【0070】
図11は、様々な実施形態による態様を実装するための、例示的な環境1100の態様を示している。理解される通り、ウェブベースの環境が説明の目的のために使用されているが、必要に応じて、異なる環境を使用して様々な実施形態を実装することができる。環境は、電子クライアントデバイス1102を含み、電子クライアントデバイス1102は、要求、メッセージ、または情報を、適切なネットワーク1104を介して送信及び/または受信するように動作可能な、また、いくつかの実施形態では、情報を、デバイスのユーザに伝え返すように動作可能な、任意の適切なデバイスを含むことができる。そのようなクライアントデバイスの実施例は、パーソナルコンピュータと、携帯電話と、携帯型メッセージングデバイスと、ノートパソコンと、タブレットコンピュータと、セットトップボックスと、パーソナルデータアシスタントと、埋込コンピュータシステムと、電子書籍リーダなどとを含む。ネットワークは、任意の適切なネットワークを含むことができ、ネットワークには、イントラネット、インターネット、セルラーネットワーク、ローカルエリアネットワーク、衛星ネットワーク、または他のそのようなネットワーク、及び/またはそれらの組み合わせが含まれる。そのようなシステムのために使用される構成要素は、選択されるネットワーク及び/または環境の種類に、少なくとも部分的に基づき得る。そのようなネットワークを介して通信するためのプロトコル及び構成要素は、良く知られており、本明細書では詳細に説明しない。ネットワークを介した通信を、有線接続または無線接続と、それらの組み合わせとによって可能にすることができる。本実施例では、ネットワークはインターネットを含み、それは、環境が、要求を受信し、それに応答してコンテンツを供給するためのウェブサーバ1106を含むからであるが、当業者には明白な通り、他のネットワークでは、同様の目的を果たす代替的なデバイスを使用することができる。
【0071】
例示の環境は、少なくとも1つのアプリケーションサーバ1108と、データストア1110とを含む。繋げられ得る、またはそうでなければ構成され得る、いくつかのアプリケーションサーバ、層または他の要素、プロセスまたは構成要素があり、それらが相互作用して、データを適切なデータストアから取得することなどのタスクを実行することができる、ということを理解すべきである。本明細書で使用するサーバを、ハードウェアデバイスまたは仮想コンピュータシステムなどの、様々な方法で実装することができる。いくつかの文脈では、サーバは、コンピュータシステム上で実行されているプログラミングモジュールを指すことができる。本明細書で使用する通り、別段に述べるか、文脈から明らかでない限り、「データストア」という用語は、データを格納し、データにアクセスし、データを読み出すことができる任意のデバイスまたはデバイスの組み合わせを指し、データストアは、任意の規格の、分散環境、仮想環境またはクラスタ化環境における、任意の組み合わせ及び任意の数の、データサーバとデータベースとデータストレージデバイスとデータストレージ媒体とを含むことができる。アプリケーションサーバは、クライアントデバイスのための1つまたは複数のアプリケーションの態様を実行するために必要に応じて、データストアに統合するための、任意の適切なハードウェアとソフトウェアとファームウェアとを含むことができ、アプリケーションのためのデータアクセスとビジネス論理とのうちの一部または全部を扱う。アプリケーションサーバは、アクセス制御サービスを、データストアと協力して提供することができ、またコンテンツを生成することができ、コンテンツには、テキスト、グラフィックス、音声、ビデオ、及び/またはユーザに提供されるために使用可能な他のコンテンツが含まれるが、これらに限定されず、コンテンツは、ユーザに、ウェブサーバによって、ハイパーテキストマークアップ言語(「HTML」)、拡張マークアップ言語(「XML」)、JavaScript(登録商標)、カスケーディングスタイルシート(「CSS」)、または他の適切なクライアント側構造化言語の形式で提供され得る。クライアントデバイスに伝達されたコンテンツを、クライアントデバイスによって処理して、1つまたは複数の形式のコンテンツを提供することができ、形式には、音声で、視覚で、及び/または、触覚、味覚及び/または嗅覚を含む他の感覚を通して知覚可能な形式を含むが、これらに限定されない。全ての要求と応答との取り扱いと、クライアントデバイス1102とアプリケーションサーバ1108との間でのコンテンツの提供とを、ウェブサーバによって、PHPを使用して扱うことができ、PHPとは、本実施例では、ハイパーテキストプリプロセッサ(「PHP」)、Python、Ruby、Perl、Java(登録商標)、HTML、XML、または、他の適切なサーバ側構造化言語である。ウェブサーバ及びアプリケーションサーバが必須ではなく、単に例示的な構成要素であり、それは、本明細書で説明する構造化コードは、本明細書のどこかで説明する任意の適切なデバイスまたはホストマシン上で実行され得るためである、ということを理解すべきである。さらに、1つのデバイスによって実行されているとして本明細書で説明する動作は、そうでないことが文脈から明白でない限り、複数のデバイスによって集合的に実行され得、複数のデバイスは、分散システム及び/または仮想システムを形成し得る。
【0072】
データストア1110は、いくつかの別々のデータ表、データベース、データ文書、動的データストレージスキーム、及び/または本開示の特定の態様に関連するデータを格納するための他のデータストレージ機構及び媒体を含むことができる。たとえば、例示のデータストアは、生産側のためのコンテンツを提供するために使用され得る、生産データ1112とユーザ情報1116とを格納するための機構を含むことができる。データストアは、また、報告、分析、または他のそのような目的のために使用され得るログデータ1114を格納するための機構を含むように示されている。ページ画像情報及びアクセス権情報などの、データストア内に格納される必要があり得る多くの他の態様があり得、それは、必要に応じて、上記で挙げた機構のうちの任意のものの中に、またはデータストア1110内の追加機構内に格納され得る。データストア1110は、それに関連する論理を通して、命令をアプリケーションサーバ1108から受信し、それに応答して、データを、取得し、更新し、またはそうでない場合は処理するように動作可能である。アプリケーションサーバ1108は、受信した命令に応答して、静的データ、動的データ、または静的データと動的データとの組み合わせを提供することができる。ウェブログ(ブログ)、ショッピングアプリケーション、ニュースサービス、及び他のそのようなアプリケーション内で使用されるデータなどの動的データを、本明細書で説明する通りサーバ側構造化言語によって生成することができ、または、アプリケーションサーバ上で動作している、またはアプリケーションサーバの制御の下で動作している、コンテンツ管理システム(「CMS」)によって提供することができる。一実施例では、ユーザは、ユーザによって操作されているデバイスを通して、特定の種類のアイテムに対する検索要求を提出することができる。この場合、データストアは、ユーザの識別を確認するためにユーザ情報にアクセスすることができ、その種類のアイテムについての情報を取得するためにカタログ詳細情報にアクセスすることができる。情報を、その後、ユーザがユーザデバイス1102上のブラウザを介して見ることができる、ウェブページ上の結果リスト内などで、ユーザに返すことができる。興味を持っている特定のアイテムについての情報を、ブラウザの専用ページまたはウィンドウで見ることができる。しかしながら、本開示の実施形態が、必ずしもウェブページのコンテンツに限定されておらず、要求が必ずしもコンテンツに対する要求ではない、一般的な要求を処理することにより広く適用され得る、ということに留意すべきである。
【0073】
各サーバは、通常、そのサーバの一般管理と操作とのための実行可能プログラム命令を提供するオペレーティングシステムを含み、また、通常、サーバのプロセッサによって実行された時に、サーバがその意図された機能を実行することを可能にする命令を格納するコンピュータ可読ストレージ媒体(たとえば、ハードディスク、ランダムアクセスメモリ、リードオンリメモリ、など)を含む。サーバのオペレーティングシステムと一般的な機能とのための適切な実装形態は、良く知られており、または市販であり、特に本明細書の開示を踏まえて、当業者によって容易に実装される。
【0074】
一実施形態では、環境は、1つまたは複数のコンピュータネットワークまたは直接接続を使用して、通信リンクを介して相互接続されたいくつかのコンピュータシステムと構成要素とを活用する、分散コンピューティング環境及び/または仮想コンピューティング環境である。しかしながら、当業者は、そのようなシステムが、
図11に例示したものよりも少ない数または多い数の構成要素を有するシステムにおいても同じように良く動作することができる、ということを理解する。したがって、
図11のシステム1100の描写は、本来例示として、本開示の範囲を限定しないものとして受け取られるべきである。
【0075】
様々な実施形態を、さらに、多種多様な動作環境で実装することができ、動作環境は、いくつかの場合では、任意の数のアプリケーションを動かすために使用され得る、1つまたは複数のユーザコンピュータ、コンピューティングデバイス、または処理デバイスを含むことができる。ユーザまたはクライアントデバイスは、標準オペレーティングシステムを実行しているデスクトップ、ノートパソコン、またはタブレットコンピュータなどの多数の汎用パーソナルコンピュータのうちの任意のものと、モバイルソフトウェアを実行し、多数のネットワーキングプロトコルとメッセージングプロトコルとをサポートすることができる、セルラーデバイスと無線デバイスと携帯型デバイスとを含むことができる。そのようなシステムは、また、様々な市販のオペレーティングシステムのうちの任意のものと、開発及びデータベース管理などの目的のための他の知られているアプリケーションを実行している、多数のワークステーションを含むことができる。これらのデバイスは、また、ダミー端末、シンクライアント、ゲームシステム、及びネットワークを介して通信することができる他のデバイスなどの、他の電子デバイスを含むことができる。これらのデバイスは、また、仮想マシン、ハイパーバイザ、及びネットワークを介して通信することができる他の仮想デバイスなどの、仮想デバイスを含むことができる。
【0076】
本開示の様々な実施形態は、通信制御プロトコル/インターネットプロトコル(「TCP/IP」)、ユーザデータグラムプロトコル(「UDP」)、オープンシステムインターコネクション(「OSI」)モデルの様々な層内で動作しているプロトコル、ファイル転送プロトコル(「FTP」)、Universal Plug and Play(「UpnP」)、ネットワークリソース(「NFS」)、Common Internet Resource(「CIFS」)、及びAppleTalk(登録商標)などの、様々な市販のプロトコルのうちの任意のものを使用する通信をサポートするための、当業者に良く知られている、少なくとも1つのネットワークを活用する。ネットワークは、たとえば、ローカルエリアネットワーク、広域ネットワーク、仮想プライベートネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網、赤外線ネットワーク、無線ネットワーク、衛星ネットワーク、及びそれらの組み合わせであってよい。
【0077】
ウェブサーバを活用する実施形態では、ウェブサーバは、様々なサーバまたは中間階層アプリケーションのうちの任意のものを実行することができ、ハイパーテキスト転送プロトコル(「HTTP」)サーバと、FTPサーバと、共通ゲートウェイインターフェース(「CGI」)サーバと、データサーバと、Java(登録商標)サーバと、Apache(登録商標)サーバと、ビジネスアプリケーションサーバとが含まれる。サーバは、また、Java(登録商標)、C、C#、またはC++などの任意のプログラミング言語、またはRuby、PHP、Perl、Python、またはTCLなどの任意のスクリプト言語、及びそれらの組み合わせで記述された1つまたは複数のスクリプトまたはプログラムとして実装され得る、1つまたは複数のウェブアプリケーションを実行するなどによって、プログラムまたはスクリプトを、ユーザデバイスからの要求に応答して、実行することができる。サーバは、また、データベースサーバを含むことができ、データベースサーバは、Oracle(登録商標)、Microsoft(登録商標)、Sybase(登録商標)、及びIBM(登録商標)からの市販のものと、MySQL、Postgres、SQLite、MongoDBなどのオープンソースサーバと、構造化データまたは非構造化データを格納し、読み出し、アクセスすることが可能な任意の他のサーバとを、限定せずに含む。データベースサーバは、表ベースのサーバ、文書ベースのサーバ、非構造化サーバ、関係型サーバ、非関係型サーバ、またはこれら及び/または他のデータベースサーバの組み合わせを含むことができる。
【0078】
環境は、上記で説明した通り、様々なデータストアと他のメモリとストレージ媒体とを含むことができる。これらは、コンピュータのうちの1つまたは複数にローカルの(及び/または内在する)ストレージ媒体、またはネットワーク上のコンピュータのうちの任意のものまたは全部から遠隔のストレージ媒体など、様々な場所に存在することができる。特定のセットの実施形態では、情報は、当業者には知られている、ストレージエリアネットワーク(「SAN」)内に存在することができる。同様に、コンピュータ、サーバ、または他のネットワークデバイスに起因する機能を実行するための必要ファイルは、必要に応じて、ローカルに、及び/または遠隔で格納され得る。システムがコンピュータ化デバイスを含む場合、各そのようなデバイスは、バスを介して電気的に連結され得るハードウェア要素を含むことができ、その要素は、たとえば、少なくとも1つの中央処理装置(「CPU」または「プロセッサ」)と、少なくとも1つの入力デバイス(たとえば、マウス、キーボード、コントローラ、タッチ画面、またはキーパッド)と、少なくとも1つの出力デバイス(たとえば、表示デバイス、プリンタ、またはスピーカ)とを含む。そのようなシステムは、また、ディスクドライブ、光ストレージデバイス、及びランダムアクセスメモリ(「RAM」)またはリードオンリメモリ(「ROM」)などの半導体ストレージデバイスなどの、1つまたは複数のストレージデバイスと、取り外し可能媒体デバイス、メモリカード、フラッシュカードなどを含むことができる。
【0079】
そのようなデバイスは、また、上記で説明した通り、コンピュータ可読ストレージ媒体リーダと、通信デバイス(たとえば、モデム、ネットワークカード(無線または有線)、赤外線通信デバイス、など)と、作業メモリとを含むことができる。コンピュータ可読ストレージ媒体リーダは、遠隔、ローカル、固定、及び/または取り外し可能なストレージデバイスと、コンピュータ可読情報を一時的及び/またはより永久的に含み、格納し、送信し、読み出すためのストレージ媒体とを代表する、コンピュータ可読ストレージ媒体に接続され得、またはコンピュータ可読ストレージ媒体を受け入れるように構成され得る。システム及び様々なデバイスは、また、通常、少なくとも1つの作業メモリデバイス内に配置された、多数のソフトウェアアプリケーション、モジュール、サービス、または他の要素を含み、それらは、オペレーティングシステムと、クライアントアプリケーションまたはウェブブラウザなどのアプリケーションプログラムとを含む。代替的な実施形態が、上記で説明したものからの多数の変形物を有し得る、ということを理解すべきである。たとえば、カスタマイズされたハードウェアを、また、使用することができ、及び/または特定の要素を、ハードウェア、ソフトウェア(アプレットなどの携帯型ソフトウェアを含む)、またはその両方で実装することができる。さらに、ネットワーク入力/出力デバイスなどの他のコンピューティングデバイスへの接続を用いることができる。
【0080】
コードまたはコードの一部を含むためのストレージ媒体及びコンピュータ可読媒体は、当技術分野で知られている、または使用されている、任意の適切な媒体を含むことができ、媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報の格納及び/または送信のための任意の方法または技術で実装された、揮発性媒体及び非揮発性媒体、取り外し可能媒体及び固定媒体などであるが、これらに限定されないストレージ媒体と通信媒体とを含み、それらには、RAM、ROM、電気的消去可能プログラマブルリードオンリメモリ(「EEPROM」)、フラッシュメモリまたは他のメモリ技術、コンパクトディスクリードオンリメモリ(「CD−ROM」)、デジタル多用途ディスク(DVD)または他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気ストレージデバイス、または所望の情報を格納するために使用され得、システムデバイスによってアクセスされ得る任意の他の媒体を含む。本明細書で提供した開示と教示とに基づいて、当業者は、様々な実施形態を実装する、適切な他のやり方及び/または方法を理解する。
【0081】
本開示の実施形態を、以下の条項を考慮して説明することができる。
第1項
仮想マシンインスタンスをプロビジョニングするための要求を実行し、いったんプロビジョニングされると、前記仮想マシンインスタンスをディレクトリに結合するための、コンピュータ実装方法であって、
実行可能命令を有して構成された1つまたは複数のコンピュータシステムの制御下において、
仮想コンピュータシステムサービスにおいて、前記ディレクトリに関連するネットワークアドレス情報を受信して、前記仮想マシンインスタンスをプロビジョニングし、前記ディレクトリに結合することを可能にすることと、
前記仮想マシンインスタンスをプロビジョニングすることと、
マネージドディレクトリサービスに、前記仮想マシンインスタンスを前記ディレクトリに結合するための仮の認証情報のセットに対する要求を送信することと、
仮の認証情報の前記セットを前記マネージドディレクトリサービスから受信することと、
を備え、
前記仮想マシンインスタンスが、前記ネットワークアドレス情報を活用して前記ディレクトリとの接続を確立し、仮の認証情報の前記セットを活用して前記仮想マシンインスタンスを前記ディレクトリに結合するように構成されている、
前記コンピュータ実装方法。
第2項
前記仮想マシンインスタンスが、前記ネットワークアドレス情報を活用して前記ディレクトリとの前記接続を確立し、仮の認証情報の前記セットを活用して前記仮想マシンインスタンスを前記ディレクトリに結合するように構成されたエージェントを備える、第1項に記載のコンピュータ実装方法。
第3項
前記ネットワークアドレス情報が、前記ディレクトリに関連する、完全修飾ドメイン名と、1つまたは複数のドメイン名システムインターネットプロトコルアドレスとを備える、第1項から第2項に記載のコンピュータ実装方法。
第4項
前記仮想コンピュータシステムサービスが、
メタデータとして、前記ディレクトリに関連する前記ネットワークアドレス情報と、前記マネージドディレクトリサービスからの仮の認証情報の前記セットとを格納することと、
前記メタデータを前記仮想マシンインスタンスに、前記仮想マシンインスタンスが前記ネットワークアドレス情報活用して前記ディレクトリとの前記接続を確立する前に、提供することと、
を行うように構成されたメタデータサービスを備える、第1項から第3項に記載のコンピュータ実装方法。
第5項
前記仮想コンピュータシステムサービスにおいて、前記ネットワークアドレス情報を受信する前に、前記マネージドディレクトリサービスに、ディレクトリのセットのうちの各ディレクトリのためのネットワークアドレス情報に対する要求を送信することであって、ディレクトリの前記セットが、少なくとも、前記仮想マシンインスタンスを結合することになる前記ディレクトリを含む、送信すること、をさらに備える、第1項から第4項に記載のコンピュータ実装方法。
第6項
仮の認証情報の前記セットに対する前記要求の、前記マネージドディレクトリサービスへの前記送信が、前記仮想マシンインスタンスによって実行される、第1項から第5項に記載のコンピュータ実装方法。
第7項
コンピュータシステムであって、
1つまたは複数のプロセッサと、
前記コンピュータシステムによって実行されると、前記コンピュータシステムに、
ディレクトリのセットのうちの1つまたは複数のディレクトリのためのネットワークアドレス情報に対する第1の要求を受信することであって、前記ネットワークアドレス情報が、ディレクトリの前記セットのうちの前記1つまたは複数のディレクトリの各々への接続を確立するのに使用可能である、受信することと、
コンピュータシステムインスタンスに、ディレクトリの前記セットのうちの前記1つまたは複数のディレクトリの各々のための前記ネットワークアドレス情報を送信することと、
前記コンピュータシステムインスタンスをディレクトリの前記セットから選択されたディレクトリに結合するのに使用可能な認証情報のセットに対する第2の要求を、前記コンピュータシステムインスタンスから受信することであって、前記第2の要求が、前記選択されたディレクトリの識別を備える、受信することと、
前記コンピュータシステムインスタンスに、前記コンピュータシステムインスタンスを前記選択されたディレクトリに結合するのに使用可能な認証情報の前記セットを送信することと、
を行わせる命令を、その中に集合的に格納して有するメモリと、
を備える、前記コンピュータシステム。
第8項
前記コンピュータシステムインスタンスが、コンピュータシステムサービスによって、前記コンピュータシステムサービスの顧客のためにホストされており、前記コンピュータシステムサービスが、前記ディレクトリを維持するマネージドディレクトリサービスとは異なる、第7項に記載のコンピュータシステム。
第9項
前記ネットワークアドレス情報が、前記ディレクトリに関連する、完全修飾ドメイン名と、1つまたは複数のドメイン名システムインターネットプロトコルアドレスとを備える、第7項から第8項に記載のコンピュータシステム。
第10項
前記コンピュータシステムインスタンスが、前記ネットワークアドレス情報を活用して前記選択されたディレクトリとの接続を確立し、認証情報の前記セットを使用して前記コンピュータシステムインスタンスを前記選択されたディレクトリに結合するように構成されたエージェントを備える、第7項から第9項に記載のコンピュータシステム。
第11項
前記コンピュータシステムインスタンスが、認証情報の前記セットを使用して、前記マネージドディレクトリサービスに前記コンピュータシステムインスタンスを前記選択されたディレクトリに結合させるように構成された、アプリケーションプログラミングインターフェースコマンドを提出するように構成されている、第7項から第10項に記載のコンピュータシステム。
第12項
前記コンピュータシステムインスタンスが、アプリケーションプログラミングインターフェースコマンドを前記コンピュータシステムに提出するように構成され、前記アプリケーションプログラミングインターフェースコマンドが、前記コンピュータシステムに、
ディレクトリの前記セットのうちの各ディレクトリのための前記ネットワークアドレス情報を、コンピュータシステムインスタンスに送信することと、
前記コンピュータシステムインスタンスをディレクトリの前記セットから選択された前記ディレクトリに結合するのに使用可能な認証情報の前記セットを送信することと、
を行わせるように構成されている、第7項から第11項に記載のコンピュータシステム。
第13項
ディレクトリの前記セットのうちの各ディレクトリが、1つまたは複数のコンピュータシステムインスタンスが前記ディレクトリに結合することを可能にする関連ポリシーを有する、第7項から第12項に記載のコンピュータシステム。
第14項
ネットワークアドレス情報に対する前記第1の要求が、前記コンピュータシステムインスタンスをプロビジョニングするための要求内に含まれる、第7項から第13項に記載のコンピュータシステム。
第15項
コンピュータシステムの1つまたは複数のプロセッサによって実行されると、前記コンピュータシステムに、少なくとも、
ディレクトリに関連するネットワークアドレス情報に対する第1のウェブサービス要求を受信して、コンピュータシステムインスタンスをプロビジョニングし、前記ディレクトリに結合することを可能にすることと、
前記コンピュータシステムインスタンスをプロビジョニングすることと、
マネージドディレクトリサービスに、前記コンピュータシステムインスタンスを前記ディレクトリに結合するための認証情報に対する第2のウェブサービス要求を送信することと、
前記マネージドディレクトリサービスから、前記ディレクトリに関連する前記ネットワークアドレス情報と、前記コンピュータシステムインスタンスを前記ディレクトリに結合するための前記認証情報とを受信することと、
前記ディレクトリのための前記ネットワークアドレス情報と、前記コンピュータシステムインスタンスを前記ディレクトリに結合するための前記認証情報とを提供することと、
を行わせる実行可能命令を、その上に集合的に格納して有する、非一時的コンピュータ可読ストレージ媒体。
第16項
前記コンピュータシステムインスタンスが、コンピュータシステムサービスによって、前記コンピュータシステムサービスの顧客のためにホストされ、前記コンピュータシステムサービスが、前記ディレクトリを維持する前記マネージドディレクトリサービスとは異なる、第15項に記載の非一時的コンピュータ可読ストレージ媒体。
第17項
前記ディレクトリに関連する前記ネットワークアドレス情報に対する前記第1のウェブサービス要求、及び前記コンピュータシステムインスタンスを前記ディレクトリに結合するための認証情報に対する前記第2のウェブサービス要求が、前記コンピュータシステムインスタンスから受信される、第15項から第16項に記載の非一時的コンピュータ可読ストレージ媒体。
第18項
前記ディレクトリのための前記ネットワークアドレス情報、及び前記コンピュータシステムインスタンスを前記ディレクトリに結合するための前記認証情報が、前記第1のウェブサービス要求と前記第2のウェブサービス要求とに応答して、前記コンピュータシステムインスタンスに提供される、第17項に記載の非一時的コンピュータ可読ストレージ媒体。
第19項
前記命令が、さらに、前記コンピュータシステムに、メタデータとして、前記ディレクトリの前記識別と、前記ディレクトリのための前記ネットワークアドレス情報と、前記コンピュータシステムインスタンスを前記ディレクトリに結合するための前記認証情報とを少なくとも格納させる、第15項から第18項に記載の非一時的コンピュータ可読ストレージ媒体。
第20項
前記インターフェースが、コンピュータシステムサービスによって、前記コンピュータシステムサービスの顧客のためにホストされ、前記コンピュータシステムサービスが、前記ディレクトリを維持する前記マネージドディレクトリサービスとは異なる、第15項から第19項に記載の非一時的コンピュータ可読ストレージ媒体。
第21項
前記ディレクトリが、1つまたは複数のコンピュータシステムインスタンスを前記ディレクトリに結合することを可能にする関連ポリシーを有する、第15項から第20項に記載の非一時的コンピュータ可読ストレージ媒体。
第22項
前記実行可能命令が、前記1つまたは複数のプロセッサによって実行されると、前記コンピュータシステムに、
インターフェースから、前記コンピュータシステムインスタンスをプロビジョニングし、前記ディレクトリを作成し、いったん前記コンピュータシステムインスタンスがプロビジョニングされると、前記コンピュータシステムインスタンスを前記作成されたディレクトリに結合するための第3のウェブサービス要求を受信することと、
前記マネージドディレクトリサービスに、前記ディレクトリを作成するための第4のウェブサービス要求を送信することと、
前記コンピュータシステムインスタンスに、前記作成されたディレクトリのためのネットワークアドレス情報と、前記コンピュータシステムインスタンスを前記作成されたディレクトリに結合するための認証情報とを提供する前に、前記マネージドディレクトリサービスから、前記作成されたディレクトリのための前記ネットワークアドレス情報と、前記コンピュータシステムインスタンスを前記作成されたディレクトリに結合するための前記認証情報とを受信することと、
をさらに行わせる、第15項から第21項に記載の非一時的コンピュータ可読ストレージ媒体。
【0082】
したがって、明細書及び図面は、限定的意味よりも、例示的な意味で考えられる。しかしながら、様々な改良と変更とを、それらに、特許請求の範囲に記載する本発明の広範囲な精神と範囲とから逸脱することなく行うことができる、ということは明らかである。
【0083】
他の変形物は、本開示の精神に含まれる。したがって、開示する手法は、様々な改良物と代替的な構造物とを受け入れる余地があるが、それらの特定の例示的な実施形態が図面に示されており、上記で詳細に説明された。しかしながら、本発明を開示した具体的な形式または複数の形式に限定する意図はなく、反対に、意図は、添付の特許請求の範囲に定める本発明の精神と範囲とに含まれる、全ての改良物と代替的な構造物と同等物とを含むことである、ということを理解すべきである。
【0084】
開示した実施形態を説明している文脈における(特に、以下の特許請求の範囲の文脈における)、「1つの(a)」、「1つの(an)」、及び「その(the)」という用語と、同様の指示対象は、本明細書で別段に指示しない限り、または文脈が明らかに矛盾しない限り、単数形と複数形の両方を含むと解釈されるものである。「備える」、「有する」、「含む(including)」、及び「含む(containing)」という用語は、別段に記さない限り、オープンエンドな用語(つまり、「含むが、限定しない」を意味する)として解釈されるものである。「接続された」という用語は、未修飾で、物理的接続を指している時には、介在する何かがある場合でさえも、部分的または全体的に内部に含まれている、付着している、または共に接合している、として解釈されるものである。本明細書における値の範囲の列挙は、その範囲内に含まれる各別々の値を個別に指す簡単な方法としての役割を果たすことを単に意図しており、本明細書で別段に指示しない限り、各別々の値は、あたかもそれが本明細書で個別に列挙されたかのように、本明細書の中に組み込まれる。「セット」(たとえば、「アイテムのセット」)または「サブセット」という用語の使用は、別段に記さない限り、または文脈が矛盾しない限り、1つまたは複数のメンバを備える非空の集合として解釈されるものである。さらに、別段に記さない限り、または文脈が矛盾しない限り、対応するセットの「サブセット」という用語は、必ずしも対応するセットの適切なサブセットを意味しないが、サブセット及び対応するセットは、等しいことがある。
【0085】
「AとBとCとのうちの少なくとも1つ」または「AとBとCとのうちの少なくとも1つ」という形式の表現などの接続言語は、具体的に反対のことを述べない限り、または別段に明確に文脈が矛盾しない限り、一般に、アイテム、期間、などが、AまたはBまたはCのいずれか、またはAとBとCとから成るセットの任意の非空のサブセットであり得る、ということを示すために使用されるという文脈を用いて理解される。たとえば、3つのメンバを有するセットの例示的な実施例では、接続表現である、「AとBとCとのうちの少なくとも1つ」及び「AとBとCとのうちの少なくとも1つ」は、以下の、{A}、{B}、{C}、{A、B}、{A、C}、{B、C}、{A、B、C}というセットのうちの任意のものを指す。したがって、そのような接続言語は、一般に、特定の実施形態が、Aのうちの少なくとも1つ、Bのうちの少なくとも1つ、及びCのうちの少なくとも1つ、がそれぞれ存在することを必要とする、ということを暗示することを意図しない。
【0086】
本明細書で説明したプロセスの動作を、本明細書で別段に指示しない限り、または明確に文脈が矛盾しない限り、任意の適切な順番で実行することができる。本明細書で説明したプロセス(またはそれらの変形物及び/または組み合わせ)を、実行可能命令を有して構成された1つまたは複数のコンピュータシステムの制御の下で実行することができ、1つまたは複数のプロセッサ上で、ハードウェアによって、またはそれらの組み合わせによって、集合的に動いているコード(たとえば、実行可能命令、1つまたは複数のコンピュータプログラム、または1つまたは複数のアプリケーション)として実装することができる。コードを、コンピュータ可読ストレージ媒体上に、たとえば、1つまたは複数のプロセッサによって実行可能な複数の命令を備えるコンピュータプログラムの形式で、格納することができる。コンピュータ可読ストレージ媒体は、非一時的であってよい。
【0087】
本明細書で提供した、任意及び全ての実施例、または例示的言語(たとえば、「など」)の使用は、単に、本発明の実施形態をより良く明らかにすることを意図しており、別段に特許請求されない限り、本発明の範囲に制限を課さない。本明細書内のどの言葉も、非特許請求の要素が本発明の実施に必須であることを示している、と解釈されるべきでない。
【0088】
本開示の好適な実施形態を本明細書で説明し、それには、本発明を実行するための、発明者達に知られている最良モードが含まれる。それらの好適な実施形態の変形物は、前述の説明を読むことで、当業者に明白になり得る。発明者達は、熟練の技術者がそのような変形物を必要に応じて用いることを予期し、発明者達は、本開示の実施形態が、本明細書で具体的に説明したものとは別の方法で実施されることを意図する。したがって、本開示の範囲は、本明細書に添付する特許請求の範囲で列挙する、適用法が許す本主題の全ての改良物と同等物とを含む。さらに、上述の要素の任意の組み合わせは、それらの全ての可能性のある変形物において、本明細書で別段に指示しない限り、または文脈が明確に矛盾しない限り、本開示の範囲によって包含される。