(57)【特許請求の範囲】
【請求項１】
コンテナをインスタンス化するためのコンピュータ実施方法であって、
ドメイン・ネーム・システム（ＤＮＳ）サービスから、インターネット・プロトコル（ＩＰ）アドレスへ送信された、ユニフォーム・リソース・ロケータ（ＵＲＬ）を解決するためのクライアント・デバイスによって行われるＤＮＳ要求を示すメッセージを受信することと、
前記メッセージを受信した結果、前記コンテナをインスタンス化することにより、前記インスタンス化されたコンテナが、前記ＩＰアドレスに送信された要求を処理することができることと、前記クライアント・デバイスから、前記ＩＰアドレスを対象にする要求を受信することと、前記受信した要求を前記インスタンス化されたコンテナに送ることとを含むコンピュータ実施方法。
【請求項２】
前記コンテナをインスタンスすることは、リソースについての要求が前記コンテナに送信される前に、前記コンテナをインスタンス化するために、前記ＤＮＳ要求内の情報を利用することを含むことを特徴とする請求項１記載のコンピュータ実施方法。
【請求項３】
前記コンテナに格納され、前記クライアント・デバイスにより送信される前記要求の経路が、ロード・バランサを介してコンテナに指定され、前記ＤＮＳサービスは、前記ロード・バランサのＩＰアドレスを前記クライアント・デバイスに送るよう構成され、
前記リソースは仮想マシン、ウェブ・リソース、画像、ウェブ・フォーム、静止ウェブページ、ウェブサイトまたはアプリケーション・プログラミング・インタフェースであることを特徴とする請求項２に記載のコンピュータ実施方法。
【請求項４】
１つ以上のサービスを実装するよう構成される少なくとも１つのコンピューティング・デバイスを備えるシステムであって、前記１つ以上のサービスは、
コンテナに格納されるリソースの第１の識別子を、前記コンテナに格納されるリソースの第２の識別子に転換する旨の要求を要求元から受信し、 
前記コンテナをインスタンス化するよう動作可能な、要求元とは異なるシステムに、前記コンテナに格納されるリソースについての前記第１の識別子を伴う前記要求の通知を送信するよう構成されることを特徴とするシステム。 
【請求項５】
前記要求は、ドメイン・ネーム・システム（ＤＮＳ）サービスにより受信され、前記ＤＮＳサービスは、インターネット・プロトコル（ＩＰ）アドレスを前記コンテナに与えるよう構成されるロード・バランシング・レイヤと動作可能に相互接続されることを特徴とする請求項４に記載のシステム。
【請求項６】
前記ロード・バランシング・レイヤは、タイマに動作可能に相互接続され、前記コンテナのインスタンス化と前記コンテナ内のリソースについての次回の要求の間の時間を監視するよう構成されることを特徴とする請求項５に記載のシステム。
【請求項７】
前記ロード・バランシング・レイヤは、タイム・アウト値を制御するよう構成され、タイム・アウト値が最大値に等しいとき、前記ロード・バランシング・レイヤは、動作状態を終了するように前記コンテナにメッセージを送信するように構成され、前記最大値は、予め定めた値または動的に設定される値であればよいことを特徴とする請求項５に記載のシステム。
【請求項８】
前記１つ以上のサービスは、少なくとも２つのコンテナをインスタンス化するように前記ロード・バランシング・レイヤにメッセージを送信するようにさらに構成され、前記少なくとも２つのコンテナは、第１のリソース、及び前記第１のリソースがアクセス可能な第２のリソースを含むことを特徴とする請求項５に記載のシステム。
【請求項９】
前記ロード・バランシング・レイヤは、今後の要求を処理するために、前記要求に関連する時間値に少なくとも一部基づいて決定される長さの時間だけ、前記コンテナをインスタンス化したままにするように構成されることを特徴とする請求項５に記載のシステム。
【請求項１０】
前記コンテナをインスタンス化したままにする前記長さの時間を決定することは、前記コンテナが実行されている場所、コンピュータのサイクル数、最大または最小の財務コスト、または前記コンテナに格納される少なくとも１つのリソースに関する媒体の肯定応答に少なくとも一部基づいて前記長さの時間を決定することを含むことを特徴とする請求項９に記載のシステム。
【請求項１１】
前記コンテナのライフ・サイクル中、前記コンテナについてのラン・タイムを動的に設定することをさらに含み、前記ラン・タイムは地理的回転の関数、前記コンテナへのアクセスを要求するユーザの地理的場所の関数、または前記コンテナがホストしているリソースの種類の関数に少なくとも一部基づくことを特徴とする請求項９に記載のシステム。
【請求項１２】
実行可能な指示を格納した非一時的コンピュータ可読ストレージ媒体であって、コンピュータ・システムの１つ以上のプロセッサに実行されると、前記コンピュータ・システムに少なくとも、
コンテナに関連する第１の識別子を、ネットワーク・コンポーネントに格納されるリソースの第２の識別子に転換する旨のクライアント・デバイスによる要求を検出し、
検出の結果、前記ネットワーク・コンポーネントをインスタンス化して、前記クライアント・デバイスが前記第２の識別子を参照して要求を送信する前に、前記ネットワーク・コンポーネントに関連するキャッシュを予め暖機することを特徴とする非一時的コンピュータ可読ストレージ媒体。
【請求項１３】
前記指示は、前記１つ以上のプロセッサに実行されると、前記コンピュータ・システムに、前記ネットワーク・コンポーネントの前記キャッシュ内のリソースの記録を維持させる指示をさらに備え、前記リソースの記録は、前記クライアント・デバイス、クライアント・デバイスのカスタマ、及び／または前記クライアント・デバイスが要求するサービスに関する情報を含み、
前記コンピュータ・システムに前記ネットワーク・コンポーネントの前記キャッシュ内のリソースの記録を維持させる前記指示は、
前記コンピュータ・システムに、前記要求に対応するリソースの記録について前記キャッシュを検索させ、前記要求を解決するために前記リソースの記録を利用させる指示をさらに含むことを特徴とする請求項１２に記載の非一時的コンピュータ可読ストレージ媒体。
【請求項１４】
前記指示は、前記１つ以上のプロセッサに実行されると、ネットワーク・コンポーネントが前記ネットワーク・コンポーネントの前記キャッシュ内にリソースに関するデータをプリロードすることに応じて、前記コンピュータ・システムに、仮想マシンまたはコンテナをインスタンス化させる指示をさらに備え、前記コンピュータ・システムに前記仮想マシンまたは前記コンテナをインスタンス化させる指示は、前記コンピュータ・システムに、前記リソースの種類を含むメッセージを選択的に送信させる指示をさらに含み、前記リソースの前記種類は、仮想マシン、ウェブ・リソース、画像、ウェブ・フォーム、静止ウェブページ、またはアプリケーション・プログラミング・インタフェースを含むことを特徴とする請求項１２に記載の非一時的コンピュータ可読ストレージ媒体。
【請求項１５】
前記指示は、前記１つ以上のプロセッサに実行されると、前記コンピュータ・システムに、ユーザの要求を送るために、存在点（ＰｏＰ）の場所を決定させる指示をさらに備え、
前記コンピュータ・システムに、前記ユーザの要求を送るために、前記ＰｏＰの場所を決定させる指示は、前記コンピュータ・システムに、前記ＰｏＰの場所にメッセージを送信させる指示をさらに含み、前記メッセージは入ってくるアクティビティの通知を含むことを特徴とする請求項１２に記載の非一時的コンピュータ可読ストレージ媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、同時係属中の２０１４年３月２８日出願の米国特許出願第１４／２２９７０２号「ＩＭＰＬＥＭＥＮＴＡＴＩＯＮ  ＯＦ  Ａ  ＳＥＲＶＩＣＥ  ＴＨＡＴ  ＣＯＯＲＤＩＮＡＴＥＳ  ＴＨＥ  ＰＬＡＣＥＭＥＮＴ  ＡＮＤ  ＥＸＥＣＵＴＩＯＮ  ＯＦ  ＣＯＮＴＡＩＮＥＲＳ（コンテナの配置及び実行を調整するサービスの実施態様）」の優先権を主張し、その全体を参照により本明細書に組み込む。
【０００２】
本発明は、コンテナの配置及び実行を調整するサービスの実施態様に関する。
【背景技術】
【０００３】
世界中の企業、組織及び個人が、コンピューティング・デバイスと動作可能に相互接続して、事業支援、リソース提供及びサービス配信を行うコンピュータ・ネットワークを運営している。そのような当事者の多くは、世界中のデータ・センタでの物理的コンピューティング・デバイスをホストするサービス・プロバイダからソフトウエア・アプリケーションへのアクセスを受ける。近年、サービス・プロバイダは、これらの企業について、ソフトウエア・アプリケーションへアクセスをするための仮想化システムを提供するようになっている。しかしながら、仮想マシンなどの従来の仮想化技術では、要求に対してサービスを提供するために必要なリソースを削減する能力、及び仮想コンピュータ・システムのスピン・アップと分解にかかるコスト償却に本質的な限界がある。例えば、多くのアプリケーションの場合、仮想コンピュータ・システムが使用される頻度は比較的低い。仮想マシンが要求に対してサービスを提供できるようになるためには、仮想マシンを動作状態に維持しなければならず、これによって、コンピュータ・システムのオペレーティング・システム用のコンピューティング・リソース、及び他のリソース（例えばネットワーク・リソースなど）が必要となる。こうしたコンピュータ・システムが十分に活用されない場合、任意の所与の時間で利用可能なリソース全体のうちわずか一部しか使用されておらず、そのようなコンピュータ・システムに割り当てられるリソースの少なくともいくつかが、他の用途でほぼ利用不可能となる。
【発明の概要】
【課題を解決するための手段】
【０００４】
組織はビジネスを管理するためにより高速でより低コストのコンピュータ・システムを常に求めているが、仮想化技術の現在の標準では仮想マシンを使用することが含まれ、要求に対処する前にインスタンス化するまでの時間が長く、リソースを多く使用する。コンテナなどの仮想リソースを開始するためにＤＮＳサーバに対するドメイン・ネーム・システム（ＤＮＳ）クエリを指標として使用することにより、システムは、エンド・ユーザがそのコンテナに格納されたリソースについて第１の要求を送信する前に、コンテナをインスタンス化することができる。必要に応じて非常に高速で有効化されるので、コンテナを、要求の指示に基づき初期化し、要求プロセスが終わると停止させ、次の要求について再び初期化することができる。また、ＤＮＳクエリを、ネットワーク・コンポーネントのキャッシュを暖機することの指標として使用することによって、システム・コンポーネントを即座に使用することができ、要求されたリソースでプリロードすることができる。
【０００５】
本開示に係る様々な実施形態を、図面を参照しながら説明する。
【図面の簡単な説明】
【０００６】
【図１】様々な実施形態を実施することが可能な環境の一例を示す図である。
【図２】様々な実施形態を実施することが可能なブロック図の一例を示す図である。
【図３】少なくとも１つの実施形態に係る環境の一例を示す図である。
【図４】少なくとも１つの実施形態に係る、ドメイン・ネーム・システムのクエリ解決プロセスの一例を示す図である。
【図５】少なくとも１つの実施形態に係る、仮想化リソース状態の判定プロセスの一例を示す図である。
【図６】少なくとも１つの実施形態に係る、ＤＮＳ情報のレコード・リソースへの関連付けプロセスの一例を示す図である。
【図７】少なくとも１つの実施形態に係る環境の一例を示す図である。
【図８】様々な実施形態を実施することが可能な環境の一例を示す図である。
【発明を実施するための形態】
【０００７】
以下の記載では、様々な実施形態について説明する。説明の目的ために、実施形態が完全に理解されるように、具体的な構成及び詳細を記載する。しかしながら、実施形態は具体的な詳細がなくとも実施され得ることも、当業者には明らかであろう。さらに、記載する実施形態が不明瞭にならないように、公知の特徴を省略または簡略化することがある。
【０００８】
本明細書で記載し、示唆する技術には、要求処理の高速化、コンピューティング・リソースの高効率化、及び待ち時間の短縮のために、コンテナなどのリソースの配置及び実行を調整するサービスの実施態様が含まれる。コンテナが実行中でない場合、デスク・スペース以外のリソースが全く利用されない、例えば、停止したコンテナ、つまり動作状態に維持されていないコンテナは、中央処理装置（ＣＰＵ）またはメモリなどのリソースを全く使用しない。
【０００９】
例示的な実施形態は、例えば、仮想マシンに関連するオーバヘッドが生じることなく、コンピュータ・リソース及びシステムを仮想化するためのドメイン・ネーム・システム（ＤＮＳ）、ロード・バランサ、データベース及びコンテナを活用するウェブ・サービスを含む。ＤＮＳサーバが、ウェブ・サービス上でホストされるサイトについてＤＮＳルックアップを受信すると、サーバは、リソースについてのユーザ要求の経路を指定するのに（例えば待ち時間に関して）最良な領域を決定し、ユーザ・データグラム・プロトコル・パケットなどの小さなメッセージをその領域内でサービスをホストしているロード・バランサに送信し、その後ＤＮＳルックアップに応答するよう構成される。ロード・バランサを、エンド・ユーザが最初のＧＥＴ、ＰＵＴまたは他の要求をするまでに、コンテナが既にインスタンス化されるように、ＤＮＳサービスの通知を使用して、コンテナを起動するように構成してもよい。いくつかの例示としての実施形態において、あるユーザ要求が、追加の要求があるかもしれないと示すことがしばしばあるので、コンテナは所定の期間動作状態を維持することができ、ロード・バランサはコンテナの状態の情報をデータベースに維持することができる。ＤＮＳサーバ及びロード・バランサを、追加の要求の経路を既に実行しているコンテナに指定するためにこの情報を使用するようにさらに構成してもよい。コンテナがもはや不要になると、ロード・バランサ、コンテナを保持するオペレーティング・システムまたは他のシステム・コンポーネントが、コンピュータ、メモリ及びネットワーク・リソースを必要なときのみ使用して、必要に応じて非常に高速で初期化できるように、コンテナの停止または再インスタンス化を開始することができる。
【００１０】
ドメイン・ネーム・システム（ＤＮＳ）サービスが、エンド・ユーザの経路を１つ以上の通信ネットワーク・アプリケーションに指定する方法をカスタマに与えるように構成してもよい。例えば、ＤＮＳサービスを、ユニフォーム・リソース・ロケータ（ＵＲＬ）など人間が読み取り可能な名称を、インターネットを介して互いに接続するためにコンピュータ・システム同士が使用する数値インターネット・プロトコル（ＩＰ）アドレスに変換するよう構成してもよい。このように、コンピューティング・リソース・サービス・プロバイダが提供する１つ以上のサービスへのアクセス要求を、データ・ゾーン内で動作するインフラに接続させるようにＤＮＳサービスを構成してもよい。
【００１１】
例示としての実施形態は、ＤＮＳクエリが識別子または仮想マシンに関連する固有の識別子を含んでなるＤＮＳサービスによる、クライアント・デバイスのＤＮＳクエリを処理方法及びシステムを含む。いくつかの実施形態において、実際の要求がクライアント・デバイスから送られる前に、リソースを有効にする、または起動する（リソースの消費がより少ない停止状態から覚醒させる）ために、ＤＮＳクエリを使用して、クライアント・デバイスがアクセス要求をしているリソースへのメッセージ送信を開始することができる。
【００１２】
クライアント側コンピューティング・デバイスを、クライアント・デバイスが送信したＤＮＳクエリを解決するために、１つ以上のサービス・プロバイダ及び／またはネットワークを通じたネットワーク・プロバイダと通信するよう構成することも可能であり、ここで、サービス・プロバイダはＤＮＳサービス・プロバイダに関連するコンピューティング・デバイスに対応する。サービス・プロバイダを、例えば、サーバ、ルータなどを収納する物理的な場所など、コンピューティング・ネットワーク上のノードに対応する任意の数の存在点（ＰｏＰ）インタフェースを含む、様々なコンピューティング・リソースと関連付けることができる。ネットワークのクライアント・デバイスを与えるように、ＰｏＰの場所を、物理的通信ネットワーの端から端まで地理的に分散させることもできる。サービス・プロバイダは、さらに、クライアント・デバイスからのＤＮＳクエリを解決するのに使用されるＤＮＳサーバのコンピューティング・デバイスを含み得るＤＮＳコンポーネントを含むことができる。ＤＮＳコンポーネントは、さらに、ロード・バランシングなど通信を容易にするハードウエア及び／またはソフトウエア・コンポーネントを含んでいてもよい。サービス・プロバイダは、さらに、ネットワークのネットワーク・リソース、デバイス及び／またはコンポーネントの状態に関する情報を維持するために使用されるリソース・キャッシュ・コンポーネントを含むことができる。
【００１３】
クライアント・デバイスは、コンテナ、仮想マシン、自動スケーリング・グループ、ファイル・ベースのデータベース・ストレージ・システム、ブロック・ストレージ・サービス、冗長データ・ストレージ・サービス、データ・アーカイブ・サービス、データ・ウェアハウジング・サービス、ユーザ・アクセス管理サービス、コンテンツ・管理サービス、及び及び／または他のそのようなコンピュータ・システム・サービスなど、コンピュータ・サービスへのアクセスを含んでよい、サービス・プロバイダによって提供されるサービスへアクセスしてもよい。追加のサービスとしては、ディレクトリ・サービス、及びディレクトリ・サービスに関連するユーザ・リソース、ポリシー・リソース、ネットワーク・リソース及び及び／またはストレージ・リソースなど、コンピュータ・システム・サービスへのアクセスが含まれていてもよい。いくつかの分散型及び／または仮想化コンピュータ・システム環境において、コンピュータ・サービスに関連するリソースは、物理的デバイス、仮想デバイス、物理的及び／または仮想デバイスの組み合わせ、または他のそのようなデバイスの実施形態であってよい。
【００１４】
ネットワーク・プロバイダは、仮想マシン、仮想リソースまたはコンテナなど、複数の仮想化方法を介して、アプリケーションをホストするネットワーク・コンポーネントを含むことができる。ネットワーク・コンポーネントは、複数の仮想マシンを提供する、またはコンテナもしくは仮想マシンなど仮想マシンの作成を動的に行わせるのに必要なハードウエア及びソフトウエアを含むコンピューティング・デバイスと動作可能に相互接続する、またはコンピューティング・デバイスを含むことができる。ネットワーク・コンポーネントはさらに、クライアント・デバイス、サービス・プロバイダ、ＤＮＳサービスなど、他のネットワーク・デバイスと通信するためのソフトウエア／ハードウエア・コンポーネントを使用する、または含むことができ、ここで、仮想化マシンを選択するためにネットワーク・コンポーネントを使用して、情報をＤＮＳサーバに提供し、経路指定要求を容易にすることができる。
【００１５】
クライアント・デバイスのカスタマとネットワーク・プロバイダが通信していなければ、カスタマとネットワーク・プロバイダとの通信プロセスは、ネットワーク・プロバイダが、利用可能なリソースにアクセスするために、登録プロセスから開始すればよい。登録プロセスは多種の情報を含むことができ、例えば、ネットワーク・プロバイダとの登録プロセスは、クライアント・デバイスのハードウエア及び／またはソフトウエアの種類の特定、セキュリティ・パラメータの構成、序列、サービスの質、識別情報などを含むことができる。クライアント・デバイスのカスタマは、さらに、類似する機能についてサービス・プロバイダで登録してもよく、サービス・プロバイダがまだＤＮＳ処理の許可を得ていなければ、サービス・プロバイダがドメインについてのＤＮＳクエリを処理し、リソースを管理するよう要求してもよい。
【００１６】
クライアント・デバイスは、ユニバーサル・リソース・アイデンティファイアとも呼ばれるユニフォーム・リソース・アイデンティファイア（ＵＲＩ）などのリソース識別子、より具体的にはＵＲＬを使用して、ネットワーク・プロバイダのコンポーネントまたはコンピューティング・デバイスと対話することができる。ＵＲＬは、通常、ウェブページなどのリソースを参照するための具体的なストリングである。ＵＲＬは、通信ネットワークの異なるネットワーク・コンポーネントに対する指示に類似する多数の情報を与える。ＵＲＬは、通常、例えば識別子、ページ・アドレス、フォルダ名、マシン名など、リソースのプロトコル、ホスト、及び可能な経路を含む。例えば、
http://www.domain_name.com/path_information 
ＵＲＬは、クエリ、ポート番号または具体的なリソースに関連する他の詳細などの追加情報を含んでいてもよい。
【００１７】
ドメイン名は、通常英数字からなり、具体的なリソースについて数値インターネット・プロトコル（ＩＰ）アドレスに変換される。ＵＲＬのドメイン名の部分は、リソースを管理するためにネットワーク・プロバイダが使用する識別子に対応する固有識別子など、追加情報を含んでいてもよい。例えば、上で挙げたＵＲＬの例の代わりに、ＵＲＬに含まれる固有識別子は次のようなものでよい。
http://www.unique.domain_name.com/path_information
他の一例としての実施形態において、ＵＲＬのドメイン名の部分は、サービス・レベル情報、金融情報、地理情報、存在点情報を直接または間接的に特定するための追加情報を含んでいてもよい。例えば、ＵＲＬは次のようなものでよい。ttp://www.billing.unique.host_domain.com/path_informatio
【００１８】
（クライアントなどの）ブラウザのアドレス・バーに入力するＵＲＬを、ＤＮＳクエリ内のユーザのコンピュータがＤＮＳサーバに送信するが、ＤＮＳサーバは、ＵＲＬで与えられたドメイン情報（ＤＮＳクエリのＤＮＳ部分）をＩＰアドレスに変換するよう通常構成されている。代替の一例としての実施形態は、ハイパーリンクを用いたユーザによる項目クリックの後にＤＮＳクエリが送られること、自動プロセスによってクエリが作成されることなどを含む。ＤＮＳクエリを解決した上で、ＤＮＳサーバは、クライアント・デバイスにロード・バランサのＩＰアドレスを与える応答を送信する。しかしながら、ＤＮＳサーバがクライアント・デバイスからリソースについてのクエリを受信するのと同時またはほぼ同時に、ＤＮＳサーバは、ロード・バランサにメッセージを送信して、ロード・バランサに、要求したリソースが位置する仮想リソースを有効にするよう要求する。クライアント・デバイスがＩＰアドレスを受信すると同時、またはほぼ同時に（コンテナが有効になった時間と同時、またはほぼ同時という場合と同様に）、クライアント・デバイスは、リソースについてロード・バランサに要求を送信する。ロード・バランサは、その要求を、仮想リソースが動作可能に相互接続される仮想リソース・ストアに転送し、仮想リソース及びロード・バランサが要求をユーザに戻す。ＤＮＳサーバは、ＤＮＳサービスまたはＤＮＳ処理システムなど、より大きなシステムのコンポーネントであってもよいことを理解されたい。
【００１９】
例えば、ユーザは画像データベースのウェブサイトから画像を取り出したいとする。この状況で、ユーザは、画像データベースのウェブサイトのＵＲＬを自身のブラウザに入力して、ＤＮＳクエリを送信し、応答を待つが、このＤＮＳクエリ及び解決プロセスはユーザに効果的に不可視化される。ユーザが要求したＵＲＬについてＩＰアドレスを受信した上で、ユーザのデバイスは、画像についての要求をプロキシ・サーバに送信するが、プロキシ・サーバは、ロード・バランサなどの中間サーバでありうる。要求されたデータは、コンテナ・サービス内のコンテナに格納されているので、ロード・バランサは、要求されたデータの場所を判定し、データを非常に早くユーザに提供することができる。
【００２０】
図１は、様々な実施形態に係る態様を実施するための環境１００の一例としての実施形態である。説明のために、インターネット環境１００を使用するが、様々な実施形態を実施するよう、適宜別の環境を使用してもよいことは理解されよう。環境は、電子クライアント・デバイス１０２を含み、クライアント１０２には、好適なネットワーク１０１を介して要求、メッセージまたは情報を送り、いくつかの実施形態においては、情報をデバイスのユーザに送り返すよう動作可能な好適なデバイスが含まれる。このようなクライアント・デバイスの例として、パーソナル・コンピュータ、携帯電話、ハンドヘルド・メッセージ・デバイス、ラップトップ・コンピュータ、タブレット・コンピュータ、セットトップ・ボックス、パーソナル・データ・アシスタント（ＰＤＡ）、埋め込み型コンピュータ・システム、電子ブック・リーダなどが挙げられる。ネットワークとしては、イントラネット、インターネット、セルラー・ネットワーク、ローカル・エリア・ネットワーク、衛星ネットワーク、または他のネットワーク及び／またはこれらの組み合わせを含む任意の好適なネットワークを挙げることができる。このようなシステムで使用されるコンポーネントは、ネットワークの種類及び／または選択した環境に少なくとも一部依存する。このようなネットワークを介した通信のためのプロトコル及びコンポーネントは公知であるので、ここで詳細に述べない。ネットワークを介した通信は、有線または無線接続及びその組み合わせにより有効になる。
【００２１】
一例としての実施形態は、ドメイン・ネーム・システム（ＤＮＳ）サーバ１０５にインターネットなどのネットワーク１０１を介して接続されるクライアント・デバイス１０２を含む。クライアント・デバイスのユーザが、クライアント・デバイスでウェブ・ブラウザ（クライアント）にユニバーサル・リソース・ロケータ（ＵＲＬ）を入力すると、これが（不図示の）ＤＮＳリゾルバを有効にする。ＤＮＳリゾルバはＤＮＳのクライアント側にあり、問い合わせをしたリソースを完全に変換するために、例えばドメイン名をインターネット・プロトコル（ＩＰ）アドレスに変換するために、クライアントのクエリを開始して、順番付けるよう構成される。このプロセスはユーザに可視化されている。
【００２２】
図１に戻って、ＤＮＳリゾルバは、要求したドメインについてのＩＰアドレスを受信するために、ＤＮＳクエリ１０６をＤＮＳサーバに送信する。ＤＮＳサーバがＤＮＳクエリを受信すると、ＤＮＳサーバは、少なくとも２つの動作を同時またはほぼ同時に実行するように構成される。代替の一例としての実施形態では、複数の動作は、任意のシーケンス及びタイミング配置で実行される。第１の動作は、メッセージをロード・バランサ１１０に送ること１３４であり、第２の動作は、ＤＮＳクエリを解決して、クライアント・デバイスに応答することである（以下で詳細に説明する）。第１の動作の一例としての実施形態では、ＤＮＳサーバは、ハードウエアまたはソフトウエアであってよいロード・バランサにメッセージを送信する。メッセージには、ユーザ・データグラム・プロトコル（ＵＤＰ）メッセージが含まれてよく、ＵＤＰメッセージはデータグラムと呼ばれ、１から２キロバイトの短いメッセージで、ロード・バランサまたはロード・バランシング・レイヤに、コンテナのリソースについて、要求を作成中または作成予定であることを通知するものであってよい。メッセージは、要求をより効率的に処理するため、要求の受信を予想してインスタンス化するよう要求するためのものである。
【００２３】
代替の一例としての実施形態は、ＤＮＳクエリ自体を転送するなど、より複雑なメッセージを送信してもよい。代替の一例としての実施形態では、ＤＮＳサーバは、コンテナに関連するＵＲＩまたはＵＲＬの結果としてメッセージを選択的に与えるようさらに構成され、識別子がいずれのコンテナとも関連がない場合はメッセージをさらに送ることはない。さらに別の一例としての実施形態は、メッセージ１３４などのメッセージを、リソースを起動するために、その種類のメッセージを受信するよう構成された任意のネットワーク・コンポーネントに送信することを含む。例えば、リソースはキャッシュ内のある項目であってよく、その場合、メッセージはブロック・レベルのデータ・ストレージ・サービスに送信され、サービスに画像をメモリにロードするよう要求する。代替の一例としての実施形態は、メッセージを第１の場所から仲介を伴わないバックエンド・ネットワーク・コンポーネントに送信することを含むようにしてもよい。
【００２４】
ロード・バランサ１１０は、通常、プロキシ・サーバもしくは仲介のネットワーク・コンポーネント上で実行されるソフトウエア・アプリケーション、または、クライアントが与えるバックエンド・サーバつまりネットワーク・コンポーネント、もしくは別のネットワーク・コンポーネントに要求を転送することを含む複数の目的で使われるハードウエア・ロード・バランサである。この一例としての実施形態では、ロード・バランサは、クライアント・デバイスが要求したリソースを格納するコンテナを有効にするよう要求するメッセージをＤＮＳサーバから受信する。通常、ロード・バランサは多数の追加の特徴を有しており、ここで示す一例としての実施形態でも同様に使用され、例えば、ロード・バランサはサーバの有効化、直接的なサーバ復帰、ヘルス・チェック、ＨＴＴＰをキャッシュに格納、優先度付きキューイングなどを優先させることができる。図１の一例としての実施形態では、ロード・バランサは、固有識別子、ユニフォーム・リソース・インジケータ（ＵＲＩ）、ユニフォーム・リソース・ロケータ（ＵＲＬ）などによって識別されてよいリソースの名前に基づいて、リソースを格納するコンテナの場所を知る。
【００２５】
ロード・バランサ１１０がメッセージを転送し（１３８）が、メッセージ１３８は少なくともコンテナ１２１のＵＲＩまたはＵＲＬを含み、コンテナ１２１はリソース・サービス１２０に格納されている何千または何百万ものコンテナの一つであってよい。メッセージ１３８は、コンテナにリソースが要求される予定であること、差し迫る要求に効率的に応答するために、コンテナを動作状態にする（起動させる）必要があることを通知する。メッセージを受信すると、コンテナは起動またはインスタンス化されて動作状態になる。いくつかの例としての実施形態では、一旦インスタンス化されると、コンテナは、パブリックまたはプライベートＩＰアドレスである、自身のＩＰアドレスを持つ。ロード・バランサは、トラフィックをコンテナに転送するために、ロード・バランサのローカル・データべースまたはロード・バランサと動作可能に相互接続したローカル・データベースの検索を実行して、新たにインスタンス化されたコンテナのパブリックまたはプライベートＩＰアドレスを判定する。
【００２６】
いくつかの例としての実施形態において、要求されているリソースがロード・バランサまたはＤＮＳサーバに知られている場合、コンテナを、複数のリソースがコンテナに格納されているかぎり、正確なリソース１３１を特定するよう構成することができる。通常、コンテナは、任意の種類のリソース、例えば、静止したウェブサイトのコピー、ウェブ・リソース、ウェブサイト、画像、ウェブ・フォーム、実行可能なコード、アプリケーション・プログラミング・インタフェース（ＡＰＩ）などを収納することができる。いくつかの一例としての実施形態では、データまたはリソースに、ネットワーク・デバイスなど別の場所からコンテナがアクセスしてもよい。
【００２７】
図１に戻って、上述のとおり、ＤＮＳサーバは、ほぼ同時に２つの動作を行う。第２の動作は、ＤＮＳクエリを解決して、応答メッセージをＤＮＳサーバからクライアント・デバイスに送信して（１０７）、要求されたリソースのＩＰアドレスを与える。クライアント・デバイスが要求したＩＰアドレスを受信すると、クライアント・デバイスは、所定のリソースについての要求メッセージを送信することができる（１３２）。この一例としての実施形態では、要求は、仲介のネットワーク・コンポーネント（ロード・バランサ）を通じてクライアントから送られ、その後、要求が、有効化されたコンテナに転送される（１４１）。代替の一例としての実施形態では、要求をコンテナもしくはリソースに直接提供する、または２つ以上の仲介もしくはプロキシ・サーバを介して送信するようにしてもよい。リソース１３１についての要求を受信すると、コンテナは、ロード・バランサを介して即座に要求を戻し１４２、次に要求をクライアント・デバイスに与える１３３。
【００２８】
図２は、仮想マシン２２５及びコンテナ・リソース２４５を示すブロック図２００の一例を示す。通常、仮想マシンは、物理的マシンのようにプログラムを実行するマシン（すなわちコンピュータ）内のソフトウエア実装の仮想化である。従来の仮想化では、各仮想マシンについてオペレーティング・システムのフル画像が必要となる。通常、仮想マシン（ＶＭ）は、ホストのオペレーティング・システム２２６を実行しているホスト・マシンから、仮想化されたデバイス及びネットワークを介してリソースにアクセスする。通常、仮想マシンは、リソースが大量にあり、ホスト・マシンは所与の時間で限られた数のＶＭしか実行させることができない。システムの仮想マシンの場合、各々が完全なオペレーティング・システム２２７ａ―２２７ｃ、完全なリソースのセット２２８ａ―２２８ｃ、各特定の仮想マシンに適用可能な任意のプロセス２２９ａ―２２９ｃを維持する。
【００２９】
例えば、要求を処理する仮想マシンを、要求を処理するためにインスタンス化することができる。特に、物理的なホストを使用して、要求についてサービスを提供するという特定の目的のために仮想マシンをインスタンス化する。物理的なホストまたは物理的なホストと通信する別のコンピュータ・システムが要求を受信すると、物理的なホストはデータ・ストレージからの情報にアクセスし、物理的なホストは要求を処理するのに好適なアプリケーションを含む仮想マシンをインスタンス化することができる。要求に関連して、仮想マシンがもはや必要でなくなると、仮想マシンを非インスタンス化してもよい。物理的なホストは、他の仮想マシンなどの他の目的でコンピューティング・リソースを使用できるように、仮想マシンに割り当てられていたコンピューティング・リソースの割り当てを停止してもよい。このように、物理的なホストは、要求についてサービスを提供するために仮想マシンが使用されていない場合、コンピューティング・リソースが仮想マシンの専用になることを回避する。今後要求を受信することがあれば、物理的なホストは、適宜少なくとも１つの仮想マシンをインスタンス化すればよい。
【００３０】
コンテナ２４５は、単一の制御ホスト２４６上で、複数の孤立システム、ここではコンテナまたはコンテナと呼ぶ、を実行させるためのオペレーティング・システム・レベルの仮想化方法である。単一のオペレーティング・システム（ＯＳ）を有するコンテナの一例としての実施形態は、コンテナの仮想化によってゲストを分離させるが、ホスト・マシンのハードウエアの仮想化をしようとしないので、通常より効率的である。ハードウエア仮想化の代わりに、コンテナの仮想化では、アプリケーションのプロセス２４８ａ―２４８ｇなど、各仮想環境についてコンテナを作成し、コンテナはカーネルなどのユーザ・ツールを使用して実行させることができ、ユーザ・ツールは、各コンテナが同一のカーネル下でファイル・システム、プロセス、メモリ、デバイスなどを管理するようにリソース管理を行い、プロセスを分離することができる。コンテナの一例としての実施形態は、単一のＯＳ及び他のリソース２４７（例えば、バイナリ・ファイル、ライブラリ・リソースなど）を管理、共有することができる。コンテナの実施形態は、ホスト・マシンなど同一のカーネル上で実行されるが、所望であれば異なるパッケージ・ツリーまたは分散を実行させることができる。コンテナは通常同一のＯＳから展開されるので、コンテナの作成及び維持は、仮想マシンと比較してはるかに単純である。
【００３１】
いくつかの実施形態において、単一のハードウエア、例えば、コンピュータまたはサーバは、何千ものコンテナを実行させることができ、コンテナが物理的な電気機器のディスク上のカーネルを共有し、そのハードウエア上のコンテナが、マシンのリソースすべて、例えば、メモリ、ＣＰＵなどを共有する。コンテナを伴うオーバヘッドの削減は、非常に多くのコンテナ（例えば数十万）の作成、提供が可能となり、各コンテナのスタートアップ及びシャットダウン速度を高速化することができるという利点のさらなる追加につながる。いくつかの一例としてのコンテナでは、ホスト―マシン・アップデートなど、システム全体に及ぶ変更は各コンテナにおいて見ることができる。コンテナは、オンデマンドすなわちユーザまたは動作可能に相互接続したデバイスからの要求を受けて、インスタンス化し、命令を受けて停止または休止状態になってから再インスタンス化することができるように構成されるので、コンテナが実行していない場合、ホスト・マシンのハード・ドライブ・スペースを除きほぼ全くリソースを消費しない。コンテナは例示のために広範囲に使用しているが、本明細書で提供する技術を、例えば、オンデマンドでインスタンス化される仮想マシンなどの他のリソースについて使用することもできる。本明細書は、２０１３年８月１２日出願の米国特許第１３／９６４，９７７号、「ＰＥＲ  ＲＥＱＵＥＳＴ  ＣＯＭＰＵＴＥＲ  ＳＹＳＴＥＭ  ＩＮＳＴＡＮＣＥ（要求毎のコンピュータ・システムのインスタンス化）」の全開示をあらゆる目的のために参照により本明細書に組み込む。
【００３２】
図３は、キャッシュの暖機に使用されるドメイン・ネーム・システム（ＤＮＳ）のクエリを示す環境３００の一例を示している。知られているとおり、キャッシュは、情報またはデータについての今後の要求を迅速に行えるよう、透過的に情報またはデータを格納するように構成されたネットワーク・コンポーネントである。サーバのようなネットワークまたはネットワークのコンポーネントのいずれのレベルにおいてもキャッシュをサポートする場合の課題の一つが、クライアント・デバイスのカスタマがリソースまたは情報について要求をしていない場合は特に、キャッシュを最新（フレッシュ）で空でない（暖機）状態で維持することである。
【００３３】
暖機したキャッシュによって、カスタマの要求への応答が速くなり、情報についての要求がされ、キャッシュを非動作状態から起動させなくてはならない場合に発生する待ち時間を削減することができる。いくつかの実施形態において、キャッシュが非動作状態（コールド）の場合、カスタマの要求またはアプリケーションの要求を受信した際、待ち時間及び処理量の削減などの性能問題が生じる。キャッシュを暖機状態に維持することにより、多くの効果が得られる。例えば、キャッシュが起動するたびにボリュームまたはデータベースのキャッシュで同一または類似のクエリを受信する場合、ボリュームまたはデータベースへの新しいクエリの実行時間を短縮化し、性能を向上させる。
【００３４】
キャッシュをリロード（暖機）する一例としての実施形態は、サーバが、サーバのボリュームまたはサーバと動作可能に相互接続したデータベースが過去に記録したデータまたはファイルを包含かどうかを判定することを含む。ボリュームが過去に記録した情報を包含する場合、サーバを、空でない状態にキャッシュを維持するために、キャッシュに情報をロードするように構成してもよい。
【００３５】
図３の一例としての実施形態において、クライアント・デバイス３０２のカスタマは、ネットワーク３０１を介して、ＵＲＬに関連するＩＰアドレスを要求するＤＮＳクエリ３０６をＤＮＳサーバ３０５に送信する。ほぼ同時刻または同時に、ＤＮＳサーバは、キャッシュの初期化を要求する３３４メッセージをプロキシ・サーバ３３０に送信し、ＤＮＳクエリを解決して、ＩＰアドレスを含むメッセージ３０７をクライアント・デバイスに与えるように構成される。プロキシ・サーバ３３０へのＤＮＳメッセージ３３４一例としての実施形態は、データグラムと呼ばれるユーザ・データグラム・プロトコル（ＵＤＰ）メッセージが含まれ、データグラムは、キャッシュ３３５に、情報についての要求が到来しつつあることを通知する１から２キロバイトの短いメッセージ、またはデータベース３３６からのキャッシュのプリロード・ファイル３３７を要求する、より長いデータグラムであってよい。データベース３３６及びキャッシュ３３５は、追加のネットワーク・コンポーネントを介して直接または間接的に動作可能に相互接続すればよい。このような一例としての実施形態では、プロキシ・サーバへのファイルについてのクライアント要求が送信される（３３２）と、プロキシ・サーバは、キャッシュを暖機し、要求された情報をキャッシュにプリロードするような効率的な方法で、要求に応える（３３３）ように構成される。キャッシュを予め暖機するまたは暖機することには、高速仮想マシン、データ・ファイル、ストレージ・システム、データベースまたは仮想コンピュータ・システムを予め暖機することが含まれる。プロキシ・サーバは、ＤＮＳとクライアント間の任意の仲介サーバであってよく、例えば、プロキシ・サーバはロード・バランサであるかロード・バランシング・レイヤを含む。
【００３６】
代替の一例としての実施形態では、ＤＮＳサーバでのキャッシュへの格納は、クライアント・デバイスからＤＮＳクエリを受信後のＤＮＳ解決処理中に行うことができる。要求またはクエリの記録は、ネットワーク・オーバヘッド及び要求を解決するＤＮＳサーバへの負荷を軽減するために、キャッシュ妥当性または有効期間として知られている期間中にキャッシュに格納すればよい。クエリの記録は、所定期間ＤＮＳサーバに関連するキャッシュに残るため、ネットワーク・アクティビティに従って動的に調整されるか、ネットワーク・アドミニストレータなどに従って予め決定することができる。別の例としての実施形態は、ＤＮＳサービス・コンポーネントを、ＤＮＳクエリにより効率的に応答するために、対応のＩＰアドレスに関連するドメイン名をキャッシュに格納するように構成することを含むことができる。
【００３７】
図４は、図１に関連して記載し、例示したＤＮＳサーバ１０５などのＤＮＳサーバによるＤＮＳクエリに応答するのに使用されるプロセス４００の一例を示す。１つの実施形態において、プロセス４００は、ＤＮＳクエリをクライアント・デバイスから受信すること（４０２）を含み、ＤＮＳクエリは、クライアント・デバイスによって、上述のようにネットワークを介して提示されるものでよい。要求は、例えば、クライアント・デバイスのカスタマによって、ＤＮＳサーバまたは図１に関連して述べたようなＤＮＳ用のサービス処理システムで受信される。図４を参照すると、ＤＮＳサービス・サーバは、ユーザ・データグラム・プロトコル（ＵＤＰ）メッセージをロード・バランサに送信する（４０４）。ロード・バランサは、ハードウエア、またはソフトウエア・アプリケーション内のロード・バランシング・レイヤでありうる。代替の実施形態は、ＤＮＳサーバが、ＵＤＰメッセージをプロキシ・サーバもしくは別のネットワーク・コンポーネントに送信する、またはＵＤＰメッセージを複数の仲介コンポーネントを介して送信することを含むことができる。代替の一例としての実施形態は、ＤＮＳサーバが、ＵＤＰ以外のプロトコルを使用して、異なるメッセージまたは要求を送信することを含む。
【００３８】
ＵＤＰメッセージの送信と並行して、ＤＮＳサービスは、ＤＮＳクエリを解決して、ロード・バランサのインターネット・プロトコル（ＩＰ）アドレスを、ＤＮＳクエリを送信したクライアントのクライアント・デバイスに送信するように構成される（４１０）。代替の例としての実施形態は、ＩＰアドレスの送信とは別の時間にＵＤＰメッセージをクライアント・デバイスに送信することを含む。プロセス４００が継続すると、ロード・バランサのＩＰアドレスがクライアント・デバイスに送信された後、クライアント・デバイスはロード・バランサに接続すればよい（４１２）。
【００３９】
プロセス４００が継続すると、ＤＮＳサーバがＵＤＰメッセージをロード・バランサに送信後、ＤＮＳサーバは、図１に関連して例示し説明したコンテナ１２１などのコンテナを有効にする旨の通知を送信する（４０６）。ＤＮＳサーバは、コンテナ、コンテナを管理するリソース・サービス、コンテナをサポートするハードウエア・コンポーネントもしくはファーム、ロード・バランサもしくはロード・バランシング・レイヤ、またはコンテナと通信可能な他のネットワーク・コンポーネントに直接通知を送信してもよい。図４に戻って、ＤＮＳサーバまたは他のネットワーク・コンポーネントは、ＤＮＳクエリに関連するリソースを格納するコンテナの識別子をロード・バランサに転送する（４０８）ように構成してもよい。１つの例示としての実施形態では、ロード・バランサのＩＰアドレスは、ＤＮＳがホストするパブリックＩＰアドレスである。代替の一例としての実施形態では、ロード・バランサのＩＰアドレスは、異なるまたは別のウェブ・サービスによってホストされ、追加のアクションを必要とする。例えば、コンテナはプライベートＩＰアドレスを持っているので、ＩＰアドレスはインターネットで公的に人目に触れることはなく、したがって、このような場合、ロード・バランサは、すべてのトラフィックをプロキシする、例えば、ロード・バランサをプロキシするよう構成される。さらに別の例としての実施形態は、インスタンス化されているコンテナが、パブリックＩＰアドレスを受信するので、コンテナはインターネットで人目に触れ、したがって、クライアント及びコンテナは、ロード・バランサまたは他のプロキシを必要とすることなく直接通信する。
【００４０】
プロセス４００が継続されると、ＵＤＰメッセージの送信と並行して、ＤＮＳサーバは、ＤＮＳクエリを解決して、ロード・バランサのＩＰアドレスをクライアント・デバイスに送信し（４１０）、クライアント・デバイスがロード・バランサと接続する（４１２）。代替の例としての実施形態では、クライアント・デバイスを、コンテナと直接接続するように構成してもよい。
【００４１】
図５は、図１に関連して例示し、説明したコンテナ１２１などの仮想リソースが有効かどうかを判定するのに使用されるプロセス５００の一例を示す。プロセス５００は、ＤＮＳサーバまたはサービスにより、仮想リソースのリソース識別子に関連するＤＮＳクエリを獲得する（５０２）ことにより開始する。リソース識別子は、ＤＮＳクエリの一部に含まれる固有識別子であってよい。ＤＮＳサーバは、さらに、仮想リソースに関連するもしくは動作可能に相互接続されたロード・バランシング・レイヤまたはロード・バランサに、ステータス要求通知を送信する（５０４）。ロード・バランサが、仮想リソースのステータスが有効かどうかを判定する（５０６）、例えば、コンテナが現在インスタンス化されているかどうかを判定することによって、プロセス５００は継続する。コンテナが有効である場合、ＤＮＳサーバはＤＮＳクエリを解決してもよい（５１２）。コンテナが有効でない場合、ＤＮＳサーバまたは他のネットワーク・コンポーネントは、仮想リソースを有効化するようメッセージを送信する（５０８）ように構成される。ＤＮＳサーバまたは他のネットワーク・コンポーネントは、仮想リソースの識別子をロード・バランサに送信または転送するように構成され、仮想リソースが再度インスタンス化されることになる（５１０）。仮想リソースが有効である時点で、ＤＮＳサーバはＤＮＳクエリを解決してもよい（５１２）。
【００４２】
図６は、ドメイン・ネーム・システム情報をインターネット・プロトコル・アドレスに関連付けるのに使われるようなプロセス６００の一例を示す。プロセス６００は、多くのネットワーク・コンポーネントのうちの一つ、例えばＤＮＳサービスによって実行することができる。ＤＮＳサービスは、クライアント・デバイスからＤＮＳクエリを受信し（６０２）、ドメイン名についてＤＮＳクエリの少なくとも一部を構文解析する（６０４）。ＤＮＳサービスは、ドメイン名をリソース識別子に関連付け（６０６）、リソース識別子を、ＤＮＳサービスに関連するキャッシュに記録する（６０８）。代替の例としての実施形態では、ＤＮＳサービスは、リソース識別子を、ＤＮＳサービスにアクセス可能なデータベースまたはファイルに記録することができる。記録には、クライアント・デバイスのカスタマについて知られている追加情報、例えば課金契約、サービス契約の質、サービス・プロバイダ情報、ネットワーク・プロバイダ情報などが含まれていてよい。図６に戻って、ＤＮＳサービスは、類似するリソース識別子について、ＤＮＳサービスに関連するキャッシュを検索する（６１０）。リソースが既にキャッシュに存在する場合、リソースの記録を比較して、情報が失われているまたは更新されているものがあるかどうかを判定する。ＤＮＳサービスは、現在または今後、ＤＮＳクエリを解決するためにリソース識別子を利用することができる（６１２）。
【００４３】
図７は、本開示の様々な実施形態が実施されうる環境７００の一例を示す。環境７００では、コンピューティング・リソース・サービス・プロバイダ７０３が、様々なサービスをカスタマ７０２に提供してもよい。カスタマ７０２は、動作し、ビジネス・ニーズを管理するために、・コンピューティング・リソース・サービス・プロバイダ７０３が提供する様々なサービスを利用するような組織であってよい。図７に示すように、カスタマ７０２は、インターネットなど１つ以上の通信ネットワーク７０１を通じてコンピューティング・リソース・サービス・プロバイダ７０３と通信してもよい。カスタマ７０２からコンピューティング・リソース・サービス・プロバイダ７０３への通信の中には、コンピューティング・リソース・サービス・プロバイダ７０３に、本明細書に記載の様々な技術またはその変形にしたがって動作させるものがある。コンテナ・リソース・サービス７０７は、コンテナを実行させることができるハードウエアの１つまたは複数のフリートで維持されるハードウエア及び仮想コンピュータ・システムの集合体であってよい。
【００４４】
ドメイン・ネーム・システム（ＤＮＳ）サービス７０６を、エンド・ユーザの経路を１つ以上の通信ネットワーク・アプリケーションに指定する方法をカスタマに与えるように構成してもよい。例えば、ＤＮＳサービス７０６を、ユニフォーム・リソース・ロケータ（ＵＲＬ）など人間が読み取り可能な名称を、インターネットを介して互いに接続するためにコンピュータ・システムが使用する数値インターネット・プロトコル（ＩＰ）アドレスに変換するよう構成してもよい。したがって、ＤＮＳサービス７０６を、コンピューティング・リソース・サービス・プロバイダが提供する１つ以上のサービスにアクセスする要求を、特定のデータ・ゾーン内で動作するインフラに接続させるよう構成してもよい。さらに、ＤＮＳサービス７０６を、コンピューティング・リソース・サービス・プロバイダ７０３のカスタマの経路が、別のプロバイダが運営する別のオペレーティング・システムなど、特定のデータ・ゾーン外のインフラに指定されるように構成してもよい。
【００４５】
さらに、コンピューティング・リソース・サービス・プロバイダ７０３は、カスタマのニーズに基づいて１つ以上の他のサービス７０４を管理してもよい。例えば、コンピューティング・リソース・サービス・プロバイダ７０３は、コンピューティング・リソース・サービス・プロバイダ７０３の各カスタマ７０２について、カスタマのアカウント情報を管理するよう共同で動作するコンピューティング・リソースの集合体からなるアカウント・サービスを保てばよい。アカウント・サービスは、例えば、コンピューティング・リソース・サービス・プロバイダ７０３の各カスタマ７０２について、カスタマ名、アドレス、電話番号、請求書の詳細及び他の個人識別情報を含めてもよい。さらに、アカウント・サービスは、コンピューティング・リソース・サービス・プロバイダ７０３が提供する１つ以上のサービスにアクセスするための正当な権限をカスタマ７０２が有していることを立証するのに使用されるような、暗号キーまたは他の身分証明を含んでいてもよい。他のサービスとしては、認証サービス、他のサービスを管理するサービス及び／または他のサービスが含まれるが、これらに限定されることはない。
【００４６】
図８は様々な実施形態にかかる態様を実施するための一例としての環境８００の態様を示す。説明のために、ウェブ・ベースの環境を使用するが、様々な実施形態を実施するよう、適宜別の環境を使用してもよいことは理解されよう。環境には、電子クライアント・デバイス８０２を含み、クライアント・デバイス８０２には、好適なネットワーク８０４を介して要求、メッセージまたは情報を送り、いくつかの実施形態においては、情報をデバイスのユーザに送り返すよう動作可能な好適なデバイスが含まれる。このようなクライアント・デバイスの例として、パーソナル・コンピュータ、携帯電話、ハンドヘルド・メッセージ・デバイス、ラップトップ・コンピュータ、タブレット・コンピュータ、セットトップ・ボックス、パーソナル・データ・アシスタント（ＰＤＡ）、埋め込み型コンピュータ・システム、電子ブック・リーダなどが挙げられる。ネットワークとしては、イントラネット、インターネット、セルラー・ネットワーク、ローカル・エリア・ネットワーク、衛星ネットワーク、または他のネットワーク及び／またはこれらの組み合わせを含む任意の好適なネットワークを挙げることができる。このようなシステムで使用されるコンポーネントは、ネットワークの種類及び／または選択した環境に少なくとも一部依存する。このようなネットワークを介した通信のためのプロトコル及びコンポーネントは公知であるので、ここでは詳細に述べない。ネットワークを介した通信は、有線または無線接続及びその組み合わせにより有効になる。この例では、当業者には自明なように、他のネットワークについては、同様な目的を与える代替のデバイスを使用することができるが、環境が要求を受信して、要求への応答としてコンテンツを与えるようなウェブ・サーバ８０６を含むように、ネットワークはインターネットを含む。
【００４７】
例示した環境は、アプリケーション・サーバ８０８及びデータ・ストア８１０を少なくとも含む。好適なデータ・ストアからデータを獲得するなどのタスクを行うよう相互作用可能なように連鎖、そうでなければ構成されるアプリケーション・サーバ、レイヤもしくは他の要素、プロセスもしくはコンポーネントがいくつかあることを理解されたい。本明細書で使用するサーバは、ハードウエア・デバイスまたは仮想コンピュータ・システムなど、様々な方法で実装してもよい。いくつかの文脈では、サーバは、コンピュータ・システム上で実行されるプログラミング・モジュールを指すことがある。本明細書で使用しているように、別段の記載があるとき、または文脈から明らかであるときを除き、「データ・ストア」という用語は、データを格納でき、データにアクセスでき、データを取り出し可能な任意のデバイスまたはデバイスの組み合わせを指し、任意の標準的、分散型、仮想型またはクラスタ型環境における、任意の組み合わせ及び数のデータ・サーバ、データベース、データ・ストレージ・デバイス及びデータ・ストレージ・メディアが含まれるものであってよい。アプリケーション・サーバは、クライアント・デバイスについて１つ以上のアプリケーションの態様を実行するために、必要に応じてデータ・ストアと統合化し、各アプリケーションについてデータ・アクセス及びビジネス・ロジックのいくつかまたはすべてに対処するための任意のハードウエア、ソフトウエア及びファームウェアを含むことができる。アプリケーション・サーバによって、データ・ストアと協働してアクセス制御サービスを提供してもよく、ハイパーテキスト・マークアップ言語（「ＨＴＭＬ」）、拡張マークアップ言語（「ＸＭＬ」）、ジャバスクリプト、カスケーディング・スタイル・シート（「ＣＳＳ」）または別の好適なクライアント側の構造化言語の形式でウェブ・サーバがユーザに与えられるような、テキスト、グラフィック、音声、ビデオ及び／またはユーザに提供するために利用可能な他のコンテンツを含む、ただしこれらに限定されることはない、コンテンツを生成することができる。クライアント・デバイスに転送されるコンテンツを、クライアント・デバイスが処理して、ユーザに聞き取り可能に、視覚的に及び／または触覚、味覚、嗅覚を含めた他の感覚を通じて認識可能な形態を含む、ただしこれらに限定されることはない、１つ以上の形態でコンテンツを提供するようにしてもよい。クライアント・デバイス８０２とアプリケーション・サーバ８０８との間のコンテンツのやり取りと同様にすべての要求及び応答の対処は、ＰＨＰ：ハイパーテキスト・プリプロセッサ（「ＰＨＰ」）、Ｐｙｔｈｏｎ（登録商標）、Ｒｕｂｙ（登録商標）、Ｐｅｒｌ（登録商標）、Ｊａｖａ（登録商標）、ＨＴＭＬ、ＸＭＬまたはこの例における他の好適なサーバ側の構造化言語を使用してウェブが対処することができる。本明細書で検討する構造化コードは、本明細書の他の箇所で検討したような任意の好適なデバイスまたはホスト・マシン上で実行可能であるので、ウェブ及びアプリケーション・サーバは必須ではなく、単なる一例としてのコンポーネントであることを理解されたい。さらに、単一のデバイスによって実行されるような本明細書に記載の動作は、文脈から明らかなときを除き、分散型及び／または仮想システムの形態をとるような、複数のデバイスによって共同で実行してもよい。
【００４８】
データ・ストア８１０は、いくつかの別個のデータ・テーブル、データベース、データ・ドキュメント、動的データ・ストレージ・スキーム及び／または本開示の特定の態様に関連するデータ格納のためのデータ・ストレージ機構及びメディアを含むことができる。例えば、例示のデータ・ストアは、プロダクション・データ８１２及び及びユーザ情報８１６を格納するための機構を含んでいてもよく、データ８１２、８１６を生産側にコンテンツを提供するために使用することができる。さらに、データ・ストアは、ログ・データ８１４を格納するための機構を含むものとして示されており、データ８１３をレポート、解析または他のそのような目的のために使用することができる。適宜、上で挙げた機構のいずれか、またはデータ・ストア８１０の追加の機構に格納可能なページ画像情報及びアクセス権情報など、データ・ストアに格納する必要がある他の多くの態様があることを理解されたい。データ・ストア８１０は、関連のロジックを通じて、アプリケーション・サーバ８０８から指示を受信し、指示に応答してデータを獲得し、更新または処理するよう動作可能である。アプリケーション・サーバ８０８は、受信した指示に応答して、静的データ、動的データまたは静的と動的データの組み合わせを与える。ウェブ・ログ（ブログ）、ショッピング・アプリケーション、ニュース・サービス及び他のこのようなアプリケーションで使用されるデータなどの動的データを、本明細書で記載のようなサーバ側の構造化言語によって生成してもよく、またはアプリケーション・サーバ上またはアプリケーション・サーバによる制御の下作動するコンテンツ管理システム（「ＣＭＳ」）によって提供してもよい。一つの例では、ユーザは、ユーザ操作のデバイスを通じて、ある種類の項目について検索要求を提出することがある。この場合、データ・ストアは、ユーザの身元を立証するためにユーザ情報にアクセスして、当該種類の項目についての情報を獲得するためにカタログ詳細情報にアクセスすることができる。次に、ユーザがユーザのデバイス８０２上でブラウザを介して見ることが可能なウェブページでリスト化された結果などで、情報をユーザに戻すことができる。特定の対象項目についての情報を、専用のページまたはブラウザのウィンドウで見ることができる。しかしながら、本開示の実施形態は、ウェブページのコンテンツに必ずしも限定されることはなく、通常、要求を処
理するのにより一般的に適用可能なものであってよく、その場合、要求は必ずしもコンテンツについての要求ではないということに注意されたい。
【００４９】
各サーバは、典型的には、一般管理及び当該サーバの動作についての実行可能なプログラム指令を与えるオペレーティング・システムを含み、典型的には、サーバのプロセッサによる実行時、サーバが意図する機能を果たすことを可能にする指令を格納する（ハード・ディスク、ランダム・アクセス・メモリ、リード・オンリー・メモリなど）コンピュータ可読ストレージ媒体を通常含む。オペレーティング・システム及びサーバの一般的な機能についての好適な実施は、公知または市販されており、当業者により、特に本明細書の開示に照らして容易に実施される。
【００５０】
１つの実施形態において、環境は、１つ以上のコンピュータ・ネットワークまたは直接接続を用いて、通信リンクを介して相互接続するいくつかのコンピュータ・システム及びコンポーネントを利用する分散型及び／または仮想コンピュータ環境である。しかしながら、そのようなシステムは、図８に示すコンポーネントより少ないまたははるかに多い数のコンポーネントを有するシステムでも同様に首尾よく動作可能であることは当業者には理解されるであろう。したがって、図８のシステム８００の図示は、本来例示的なものであり、開示の範囲を制限するものではないとみなされるべきである。
【００５１】
さらに、様々な実施形態は、広範な動作環境で実施可能であり、いくつかの場合では、複数のアプリケーションのいずれかを動作させるのに使用可能な１つ以上のコンピュータ、コンピューティング・デバイスまたは処理デバイスを含むことができる。ユーザまたはクライアント・デバイスは、標準のオペレーティング・システムで実行されるデスクトップ、ラップトップまたはタブレット・コンピュータ、ならびに携帯電話用ソフトウエアを実行させ、複数のネットワーキング及びメッセージング・プロトコルをサポート可能な無線及び携帯デバイスなど、複数の汎用パーソナル・コンピュータのいずれかを含むことができる。さらに、このようなシステムは、開発及びデータベース管理などの目的で、様々な市販のオペレーティング・システム及び他の知られたアプリケーションを実行させる複数のワークステーションを含むことができる。さらに、これらのデバイスは、ダミー端末、シン・クライアント、ゲーム機及びネットワークを介して通信可能な他のデバイスなど、他の電子デバイスを含むことができる。さらに、これらのデバイスは、仮想マシン、ハイパーバイザ、及びネットワークを介して通信可能な他の仮想デバイスを含むことができる。
【００５２】
本開示の様々な実施形態は、伝送制御プロトコル／インターネット・プロトコル（「ＴＣＰ／ＩＰ」）、ユーザ・データグラム・プロトコル（「ＵＤＰ」）、オープン・システム・インターコネクション（「ＯＳＩ」）モデルの様々なレイヤで動作するプロトコル、ファイル転送プロトコル（「ＦＴＰ」）、ユニバーサル・プラグ・アンド・プレイ（「ＵｐｎＰ」）、ネットワーク・ファイル・システム（「ＮＦＳ」）、共通インターネット・ファイル・システム（「ＣＩＦＳ」）及びアップル・トークなど、市販の様々なプロトコルのいずれかを使用して通信をサポートするために、当業者になじみ深い少なくとも１つのネットワークを利用する。ネットワークは、例えば、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、仮想プライベート・ネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網、赤外線ネットワーク、ワイヤレス・ネットワーク、衛星ネットワーク、及びこれらの組み合わせである。
【００５３】
ウェブ・サーバを利用する実施形態において、ウェブ・サーバは、ハイパーテキスト・トランスファ・プロトコル（「ＨＴＴＰ」）サーバ、ＦＴＰサーバ、コモン・ゲートウェイ・インタフェース（「ＣＧＩ」）サーバ、データ・サーバ、ジャバ・サーバ、アパッチ・サーバ、及びビジネス・アプリケーション・サーバを含む、様々なサーバまたはミッドティア・アプリケーションのいずれかを実行させることができる。さらに、サーバはＪａｖａ（登録商標）、Ｃ，Ｃ＃若しくはＣ＋＋などのいずれかのプログラミング言語、またはＲｕｂｙ（登録商標）、ＰＨＰ、Ｐｅｒｌ（登録商標）、Ｐｙｔｈｏｎ（登録商標）もしくはＴＣＬ、及びこれらの組み合わせのいずれかで書かれた１つ以上のスクリプトまたはプログラムとして実装される１つ以上のウェブ・アプリケーションを実行するなどして、ユーザのデバイスからの要求に応じてプログラムまたはスクリプトを実行することができる。さらに、サーバは、ＭｙＳＱＬ、Ｐｏｓｔｇｒｅｓ（登録商標）、ＭｏｎｇｏＤＢ（登録商標）、及び構造化または非構造化データの格納、取り出し、アクセスが可能な他のあらゆるサーバなどのオープン・ソース・サーバとともに、Ｏｒａｃｌｅ（登録商標）、Ｍｉｃｒｏｓｏｆｔ（登録商標）、Ｓｙｂａｓｅ（登録商標）、ＩＢＭ（登録商標）から市販されているデータベース・サーバ、ただしこれらに限定されることはないデータベース・サービスを含む。データベース・サーバは、テーブル型サーバ、ドキュメント型サーバ、非構造化サーバ、リレーショナル・サーバ、非リレーショナル・サーバまたはこれらのサーバおよび及び／または他のデータベース・サーバの組み合わせを含んでいてよい。
【００５４】
環境は、上述の様々なデータ・ストア、その他メモリ及びストレージ媒体を含み得る。これらは、コンピュータのうち１つ以上のコンピュータに固有の（及び／または存在する）、またはネットワークの端から端までコンピュータのいずれかまたはすべてからストレージ媒体上などの様々な場所に存在可能である。ある特定の実施形態のセットにおいて、情報は、当業者にはなじみ深いストレージ・エリア・ネットワーク（「ＳＡＮ」）に存在すればよい。同様に、コンピュータ、サーバまたは他のネットワーク・デバイスに起因する機能を実行するために必要なファイルを、適宜局所的及び／または遠隔に格納すればよい。システムがコンピュータ化したデバイスを含む場合、そのようなデバイスは各々バスを介して電子的に接続されるハードウエア要素を含み、要素は、例えば、少なくとも１つの中央処理装置（「ＣＰＵ」または「プロセッサ」）、少なくとも１つの入力装置（例えば、マウス、キーボード、コントローラ、タッチ・スクリーンまたはキーパッド）及び少なくとも１つの出力装置（例えば、表示装置、プリンタまたはスピーカ）を含む。さらに、このようなシステムは、ディスク・ドライブ、光学ストレージ・デバイス、及びランダム・アクセス・メモリ（「ＲＡＭ」）またはリード・オンリー・メモリ（「ＲＯＭ」）などの固体ストレージ・デバイスなどの１つ以上のストレージ・デバイス、ならびにリムーバブル・メディア・デバイス、メモリ・カード、フラッシュ・カードなどを含んでいてもよい。
【００５５】
さらに、そのようなデバイスは、コンピュータ可読ストレージ媒体リーダ、通信装置（例えば、モデム、ネットワーク・カード（無線または有線）、赤外線通信装置など）、及び上述の作業メモリを含んでいてもよい。コンピュータ可読ストレージ媒体リーダは、リモート、ローカル、固定及び／またはリムーバブル・ストレージ・デバイス、ならびに一時的及び／または永続的にコンピュータ可読情報を含み、格納し、送信し、及び取り出すためのストレージ媒体を表わすコンピュータ可読ストレージ媒体と接続する、またはコンピュータ可読ストレージ媒体を受け入れるように構成することができる。さらに、システム及び様々なデバイスは、典型的には、少なくとも１つの作業メモリ内に位置する複数のソフトウエア・アプリケーション、モジュール、サービスまたは他の要素を含み、クライアント・アプリケーションまたはウェブ・ブラウザなどのオペレーティング・システム及びアプリケーション・プログラムを含む。代替の実施形態は上述の実施形態からの多数の変形を有してもよいことを理解されたい。例えば、ハードウエア、（アプレットなどの携帯用ソフトウエアを含む）ソフトウエア、またはハードウエアとソフトウエアの両方で、カスタマイズされたハードウエアを使用してもよく、及び／または特定の要素を実装してもよい。さらに、ネットワーク入出力装置など別のコンピューティング・デバイスへの接続を用いてもよい。
【００５６】
コードまたはコードの一部を含むストレージ媒体及びコンピュータ可読媒体としては、当該技術で知られているまたは使用されている任意の好適な媒体を挙げることができる。任意の好適な媒体は、ストレージ媒体および通信媒体を含み、揮発性媒体、不揮発性媒体、取り外し可能媒体、固定の媒体であってストレージ及び／またはコンピュータ読み込み可能指示、データ構造、プログラム・モジュールまたは他のデータなどの情報伝達のための任意の方法または技術で実装され、ＲＡＭ、ＲＯＭ、Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ（「ＥＥＰＲＯＭ」）、フラッシュメモリ、若しくは他のメモリ技術、Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ（「ＣＤ−ＲＯＭ」）、デジタル多目的ディスク（ＤＶＤ）または他の光メモリ、磁気カセット、磁気テープ、磁気ディスク記憶装置、若しくは他の磁気ストレージ・デバイスまたは任意の他の媒体であって、それらは所望の情報を記憶するために使用されることができ、及びシステムデバイスによりアクセスすることができる。本明細書で示した開示及び教示に基づき、当業者であれば当該の様々な実施形態を実装するためのほかのやり方及び／または方法を理解するであろう。
【００５７】
したがって、明細書および及び図面は限定的な意味ではなく、むしろ例示的な意味であるとみなされるものである。しかしながら、特許請求の範囲に記載のような発明のより広範な要旨及び範囲から逸脱することなく、様々な改良や変更が考えられることは明らかであろう。
【００５８】
他の変形は本開示の要旨の範囲内である。よって、開示の技術は様々な変更及び代替の構造を受けやすいものの、そのうちいくつかの例示的な実施形態を図面に示し、上で詳細に説明してきた。しかしながら、本発明を１つまたは複数の特定の形態に限定する意図はなく、逆に、添付の特許請求の範囲で定義するように、発明の要旨及び範囲内の変形、代替の構造及び等価物をすべて包含することを意図していると理解されたい。
【００５９】
開示の実施形態を説明する文脈における（特に以下の特許請求の範囲の文脈における）用語「１つの（ａ／ａｎ）」、「その（ｔｈｅ）」、及び類似の指示対象は、本明細書で特段示されているときを除き、または明らかに文脈と矛盾するときを除き、単数及び複数のいずれも含むとして解釈されるべきである。用語「備える（ｃｏｍｐｒｉｓｉｎｇ）」、「有する（ｈａｖｉｎｇ）」、「含む（ｉｎｃｌｕｄｉｎｇ）」及び「含む（ｃｏｎｔａｉｎｉｎｇ）」は、制限なしの用語（すなわち、「含むが、それに限定されることはない（ｉｎｃｌｕｄｉｎｇ，  ｂｕｔ  ｎｏｔ  ｌｉｍｉｔｅｄ  ｔｏ，）」を意味する）ものとして解釈されるべきである。限定されておらず、物理的な接続を指す場合の用語「接続された（ｃｏｎｎｅｃｔｅｄ）」は、何か介在するものがあっても、部分的または全体的に中に含まれる、取り付けられている、または結合しているとして解釈されるべきである。本明細書の値の範囲の言及は、特段示されているときを除き、範囲内に収まるそれぞれ別個の値を個々に言及する簡潔な方法の働きをすると単に意図しているものであり、それぞれの別個の値は、個々に本明細書で言及されているかのように、明細書に取り入れられる。用語「集合／セット（ｓｅｔ）（例えば、「項目の集合／セット（ａ  ｓｅｔ  ｏｆ  ｉｔｅｍｓ）」）または「部分集合／サブセット（ｓｕｂｓｅｔ）」は、特段の記載があるときを除き、または文脈と明らかに矛盾するときを除き、１つ以上のメンバーからなる非空の集まりとして解釈されるべきである。さらに、特段の記載があるときを除き、または文脈と明らかに矛盾するときを除き、対応する集合／セットの「部分集合／サブセット（ｓｕｂｓｅｔ）」という用語は、対応する集合／セットの正式な部分集合／サブセットを必ずしも示すものではなく、部分集合／サブセットと対応の集合／セットが等しいものであってもよい。
【００６０】
「Ａ、Ｂ、およびＣのうち少なくとも１つの」または「Ａ、ＢおよびＣのうち少なくとも１つの」という形式の言い回しなどの接続語は、別段の記載があるとき、または文脈と明らかに矛盾するときを除き、項目、用語などが、Ａ、Ｂ、Ｃのいずれか、またはＡとＢとＣの集合の非空部分集合であることを示すために通常使用されるような文脈で理解する。例えば、３つのメンバーを有する集合の例では、「Ａ、Ｂ、Ｃのうち少なくとも１つの」という接続語は、｛Ａ｝、｛Ｂ｝、｛Ｃ｝、｛Ａ、Ｂ｝、｛Ａ、Ｃ｝、｛Ｂ、Ｃ｝、｛Ａ、Ｂ、Ｃ｝の集合のうちのいずれかを指す。したがって、このような接続語は、概して、いくつかの実施形態で、Ａの少なくとも１つ、Ｂの少なくとも１つ、及びＣの少なくとも１つがそれぞれ存在しなければならないことを示唆する意図はない。
【００６１】
本明細書で記載のプロセスの動作は、本明細書で別段の示唆があるとき、または明らかに文脈と矛盾するときを除き、任意の好適な順序で実行することができる。本明細書で記載のプロセス（またはその変形及び／または組み合わせ）を、実行可能な指示で構成された１つ以上のコンピュータ・システムの制御の下実行してよく、コード（例えば、実行可能な指示、１つ以上のコンピュータ・プログラム、または１つ以上のアプリケーションなど）として実装してもよい。コードは、コンピュータ可読ストレージ媒体に、例えば、１つ以上のプロセッサによって実行可能な複数の指示からなるコンピュータ・プログラムの形態で格納されてよい。コンピュータ可読ストレージ媒体は非一時的なものであってよい。
【００６２】
本明細書のありとあらゆる例、または例を示す言葉（例えば、「ｓｕｃｈ  ａｓ」）の使用は、発明の実施形態をより明らかにするためだけのものであり、特許請求の範囲で別段の記載があるときを除き、発明の範囲を限定するものではない。明細書のいずれの言葉も、特許請求の範囲に記載されない要素がいずれも、発明の実施に必須であると解釈されるものではない。
【００６３】
実施形態の変形は、上記の説明を読み取ることで、当業者には明らかであろう。本発明者は、このような変形を適宜使用するしたがって、本開示の範囲は、適用可能な法律が認めるように、添付の特許請求の範囲に記載される主題のすべての変形及び等価物を含む。さらに、すべての可能な変形における上述の要素のいかなる組み合わせも、本明細書で特段示されているとき、または明らかに文脈と矛盾するときを除き、本開示の範囲に包含される。
【００６４】
本明細書で引用した出版物、特許出願及び特許を含めたすべての引例を、各引例が参照することによって援用されるものと個々に、具体的に示され、その全体を本明細書に記載されているかのように、同程度に参照することによってここに援用する。
【００６５】
開示の実施形態を以下の条項に照らして説明する。
条項
１．コンテナをインスタンス化するためのコンピュータ実施方法であって、
実行可能な指示で構成された１つ以上のコンピュータの制御の下で、
ドメイン・ネーム・システム（ＤＮＳ）サービスから、インターネット・プロトコル（ＩＰ）アドレスに送信された、ユニフォーム・リソース・ロケータ（ＵＲＬ）を解決するためのクライアント・デバイスによるＤＮＳ要求を示すメッセージを受信することと、
前記メッセージを受信した結果、前記コンテナをインスタンス化することにより、前記インスタンス化されたコンテナが前記ＩＰアドレスに送信された前記要求を処理することができることと、
前記クライアント・デバイスから、前記ＩＰアドレスを対象にする要求を受信することと、前記受信した要求を前記インスタンス化されたコンテナに送ることとを含むコンピュータ実施方法。
２．前記コンテナをインスタンスすることは、リソースについての要求が前記コンテナに送信される前に、前記コンテナをインスタンス化するために、前記ＤＮＳ要求内の情報を利用することを含むことを特徴とする条項１または２に記載のコンピュータ実施方法。
３．前記コンテナに格納され、前記クライアント・デバイスにより送信される前記要求の経路が、ロード・バランサを介してコンテナに指定され、前記ＤＮＳサービスは、前記ロード・バランサのＩＰアドレスを前記クライアント・デバイスに送るよう構成されることを特徴とする先行する条項のいずれかに記載のコンピュータ実施方法。
４．前記リソースは仮想マシン、ウェブ・リソース、画像、ウェブ・フォーム、静止ウェブページ、ウェブサイトまたはアプリケーション・プログラミング・インタフェースであることを特徴とする先行する条項のいずれかに記載のコンピュータ実施方法。
５．１つ以上のサービスを実装するよう構成される少なくとも１つのコンピューティング・デバイスを備えシステムであって、前記１つ以上のサービスは、
コンテナに格納されるリソースの第１の識別子を、前記コンテナに格納されるリソースの第２の識別子に転換する旨の要求を要求元から受信し、
前記コンテナをインスタンス化するよう動作可能な、要求元とは異なるシステムに、前記コンテナに格納されるリソースについての前記第１の識別子を伴う前記要求の通知を送信するよう構成されることを特徴とするシステム。
６．前記要求は、ドメイン・ネーム・システム（ＤＮＳ）サービスにより受信され、前記ＤＮＳサービスは、インターネット・プロトコル（ＩＰ）アドレスを前記コンテナに与えるよう構成されるロード・バランシング・レイヤと動作可能に相互接続されることを特徴とする条項５に記載のシステム。
７．前記ロード・バランシング・レイヤは、タイマに動作可能に相互接続され、前記コンテナのインスタンス化と前記コンテナ内のリソースについての次回の要求の間の時間を監視するよう構成されることを特徴とする条項５に記載のシステム。
８.前記ロード・バランシング・レイヤは、タイム・アウト値を制御するよう構成され、タイム・アウト値が最大値に等しいとき、前記ロード・バランシング・レイヤは、動作状態を終了するように前記コンテナにメッセージを送信するように構成され、前記最大値は、予め定めた値または動的に設定される値であればよいことを特徴とする条項５から７のいずれかに記載のシステム。    
９．前記１つ以上のサービスは、少なくとも２つのコンテナをインスタンス化するように前記ロード・バランシング・レイヤにメッセージを送信するようにさらに構成され、前記少なくとも２つのコンテナは、第１のリソース、及び前記第１のリソースがアクセス可能な第２のリソースを含むことを特徴とする条項５から８のいずれかに記載のシステム。
１０．前記ロード・バランシング・レイヤは、今後の要求を処理するために、前記要求に関連する時間値に少なくとも一部基づいて決定される長さの時間だけ、前記コンテナをインスタンス化したままにするように構成されることを特徴とする条項５から９のいずれかに記載のシステム。
１１．前記コンテナをインスタンス化したままにする前記長さの時間を決定することは、前記コンテナが実行されている場所、コンピュータのサイクル数、最大または最小の財務コスト、または前記コンテナに格納される少なくとも１つのリソースに関する媒体の肯定応答に少なくとも一部基づいて前記長さの時間を決定することを含むことを特徴とする条項１０に記載のシステム。
１２．前記コンテナのライフ・サイクル中、前記コンテナについてのラン・タイムを動的に設定することをさらに含み、前記ラン・タイムは地理的回転の関数、前記コンテナへのアクセスを要求するユーザの地理的場所の関数、または前記コンテナがホストしているリソースの種類の関数に少なくとも一部基づくことを特徴とする条項１０に記載のシステム。
１３．実行可能な指示を格納した非一時的コンピュータ可読ストレージ媒体であって、コンピュータ・システムの１つ以上のプロセッサに実行されると、前記コンピュータ・システムに、
コンテナに関連する第１の識別子を、ネットワーク・コンポーネントに格納されるリソースの第２の識別子に転換する旨のクライアント・デバイスによる要求を検出し、
検出の結果、前記ネットワーク・コンポーネントをインスタンス化して、前記クライアント・デバイスが前記第２の識別子を参照して要求を送信する前に、前記ネットワーク・コンポーネントに関連するキャッシュを予め暖機させることを特徴とする非一時的コンピュータ可読ストレージ媒体。
１４．前記指示は、前記１つ以上のプロセッサに実行されると、前記コンピュータ・システムに、ドメイン・ネーム・システム（ＤＮＳ）サーバに動作可能に相互接続されるキャッシュを維持させる指示をさらに備えることを特徴とする条項１３に記載の非一時的コンピュータ可読ストレージ媒体。
１５．前記指示は、前記１つ以上のプロセッサに実行されると、前記コンピュータ・システムに、前記ネットワーク・コンポーネントの前記キャッシュ内のリソースの記録を維持させる指示をさらに備え、前記リソースの記録は、前記クライアント・デバイス、クライアント・デバイスのカスタマ、及び／または前記クライアント・デバイスが要求するサービスに関する情報を含むことを特徴とする条項１３または１４に記載の非一時的コンピュータ可読ストレージ媒体。
１６．前記コンピュータ・システムに前記ネットワーク・コンポーネントの前記キャッシュ内のリソースの記録を維持させる指示は、前記コンピュータ・システムに、
前記要求に対応するリソースの記録について前記キャッシュを検索させ、
前記要求を解決するために前記リソースの記録を利用させる指示をさらに備えることを特徴とする条項１５に記載の非一時的コンピュータ可読ストレージ媒体。
１７．前記指示は、前記１つ以上のプロセッサに実行されると、ネットワーク・コンポーネントが前記ネットワーク・コンポーネントの前記キャッシュ内にリソースに関するデータをプリロードすることに応じて、前記コンピュータ・システムに、仮想マシンまたはコンテナをインスタンス化させる指示をさらに備えることを特徴とする条項１３から１６のいずれかに記載の非一時的コンピュータ可読ストレージ媒体。
１８．前記コンピュータ・システムに前記仮想マシンまたは前記コンテナをインスタンス化させる指示は、前記コンピュータ・システムに、前記リソースの種類を含むメッセージを送信させる指示をさらに含み、前記リソースの前記種類は、仮想マシン、ウェブ・リソース、画像、ウェブ・フォーム、静止ウェブページ、またはアプリケーション・プログラミング・インタフェースを含むことを特徴とする条項１７に記載の非一時的コンピュータ可読ストレージ媒体。
１９．前記指示は、前記１つ以上のプロセッサに実行されると、前記コンピュータ・システムに、ユーザの要求を送るために、存在点（ＰｏＰ）の場所を決定させる指示をさらに備えることを特徴とする条項１３から１８のいずれかに記載の非一時的コンピュータ可読ストレージ媒体。
２０．前記コンピュータ・システムに、前記ユーザの要求を送るために、前記ＰｏＰの場所を決定させる指示は、前記コンピュータ・システムに、前記ＰｏＰの場所にメッセージを送信させる指示をさらに含み、前記メッセージは入ってくるアクティビティの通知を含むことを特徴とする条項１９に記載の非一時的コンピュータ可読ストレージ媒体。
【図１】
0006261758.tif 000002
【図２】
0006261758.tif 000003
【図３】
0006261758.tif 000004
【図４】
0006261758.tif 000005
【図５】
0006261758.tif 000006
【図６】
0006261758.tif 000007
【図７】
0006261758.tif 000008
【図８】
0006261758.tif 000009