(57)【要約】  コンピューティングクラウドにおいて作成及び格納されクライアントにおいて実行されるポリシーによって全体的に駆動される代替的な手順を使用するルーティング機構を提供することにより、異なるネットワークの２つのネットワークノード間の通信を容易にするアーキテクチャー。これにより、ホストの物理的な位置及び提供されるべきサービスレベル合意（ＳＬＡ）などの基準に基づいて、別のパスに対して１つのネットワークパスを選択することが可能になる。パスの選択に関して、パケットはホストに最も近いデータセンターを介してルーティングすることができる。ＳＬＡに関して、異なるクライアントにとって利用可能な異なるＳＬＡが存在してもよい。最高の帯域幅／動作可能時間又は他の保証を有するクライアントについて、他の種類のクライアントについてのものとは異なるネットワークパスを選択することができる。さらに、接続は、ホストが属し得る仮想的な集団などの他の種類のポリシールールに基づいて許可したり禁止したりすることができる。
2013511207.tif 000002
【特許請求の範囲】
【請求項１】
コンピューターにより実施される接続システムであって、
解決呼を使用して、接続が意図されるリモートノードの識別情報の解決を試みる、ローカルノードの解決コンポーネントと、
前記解決呼をインターセプトし、前記解決呼をリソースに対するウェブサービス呼へ変換する、前記ローカルノードの変換コンポーネントと、
ポリシーを受信し、前記ポリシーに基づいて前記ローカルノードと前記リモートノードとの間の接続を確立する、前記ローカルノードのポリシーコンポーネントと
を備えるシステム。
【請求項２】
前記受信されたポリシーは、前記リモートノード及び名前解決呼である前記解決呼の名前である、前記識別情報に基づいて選択される請求項1に記載のシステム。
【請求項３】
前記ポリシーは、別のネットワークパス上の１つのネットワークパスの選択によって接続の作成を容易にする請求項1に記載のシステム。
【請求項４】
前記ポリシーは、前記ローカルノードの物理的位置又はデータセンターに対する前記リモートノードの物理的位置のうちの少なくとも１つに基づいて接続の作成を容易にする請求項１に記載のシステム。
【請求項５】
前記ポリシーはサービスレベル合意に基づいて接続の作成を容易にする請求項１に記載のシステム。
【請求項６】
前記ポリシーは、前記ローカルノード又は前記リモートノードのうちの少なくとも１つが関連付けられる仮想的な集団に基づいて接続の作成を容易にする請求項１に記載のシステム。
【請求項７】
前記ポリシーコンポーネントは、リレーサーバーを介して前記リモートノードへの接続を構成する請求項1に記載のシステム。
【請求項８】
前記ローカルノードと前記リモートノードとの間の通信を確立し前記ポリシーを格納するための接続ルールを含むポリシーを作成するオーサリングコンポーネントをさらに備える請求項１に記載のシステム。
【請求項９】
コンピューターにより実施されるホスト接続方法であって、
ローカルホストにおいて、解決呼を使用して、接続が意図されるリモートホストの識別情報を解決することを試みるステップと、
前記識別情報をコンピューティングクラウドのクラウドベースのリソースに送信するステップ（４０２）と、
前記クラウドベースのリソースからポリシー情報を受信するステップと、
前記ポリシー情報に基づいて前記リモートホストに前記ローカルホストを接続するステップと
を含む方法。
【請求項１０】
前記クラウドベースのリソースへの送信のために前記ローカルホスト上で前記解決呼をインターセプトするステップをさらに含む請求項９に記載の方法。
【請求項１１】
前記解決呼を、前記クラウドベースのリソースへの送信のために前記ローカルホストにおいてクラウドベースのウェブサービス呼へ変換するステップをさらに含む請求項９に記載の方法。
【請求項１２】
前記ローカルホストによる処理のために前記ポリシー情報における特定のネットワークを利用するためのネットワークコストを定義するステップをさらに含む請求項９に記載の方法。
【請求項１３】
前記ポリシー情報に基づいて前記リモートホストへのルーティングパスを選択するステップをさらに含む請求項１２に記載の方法。
【請求項１４】
前記ポリシー情報からルーティングパスを取得するステップと、
前記ルーティングパスに基づいてプロトコルサービスへの接続を可能にするステップと
をさらに含む請求項9に記載の方法。
【請求項１５】
前記リモートホストが一部である前記コンピューティングクラウド内の仮想的な集団に前記ローカルホストを割り当てるステップをさらに含む請求項9に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スマートクライアントルーティングに関する。
【背景技術】
【０００２】
[0001]２つのホスト間の（例えば、インターネット上の）ルーティングは、一般的に、ホストに割り当てられたＩＰ（インターネットプロトコル）アドレスに基づいて処理される。したがって、選択されたルートは、関与しているホストのＩＰアドレスを使用して決定される。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
この技術は、ホストが同じネットワーク上にあるときには問題ではないかもしれないが、ホストが異なるネットワーク上にある場合により多くの管理インタラクションを必要とするときに非常に問題となり得る。さらに、ほとんどのホストはインターネットに接続できるので、インターネット上のホストを便利に相互接続することができないということは、技術的及び管理上の課題である。
【課題を解決するための手段】
【０００４】
[0002]以下において、本明細書に記載される新規な実施例についての基本的な理解を提供するために、簡略化された概要を示す。この概要は、広範なものではなく、主要な／重要な要素を識別することや、その範囲を線引きすることは意図されていない。唯一の目的は、後に提示されるより詳細な説明の前置きとして簡略化した形でいくつかの概念を提示することである。
【０００５】
[0003]開示されたアーキテクチャーは、必要に応じて、クラウドにおいて生みだされて格納され並びにクライアント上及び／又はクラウドの外部において実施されるポリシーによって全体的に駆動される別の手順（modalities）を使用して、異なるネットワークの２つのネットワークノード間の通信を容易にする。これにより、例えば、ホストの物理的な位置及び提供されるべきサービスレベル合意（service level agreements、ＳＬＡ）などの基準に基づいて、別のパスに対して１つのネットワークパスを選択することが可能になる。これは、少なくとも、ネットワークスタックにおける物理層を介して使用される仮想レイヤー及びホスト間のルーティング選択においてスマートクライアント機能を提供するサポートプログラムによって容易にすることができる。
【０００６】
[0004]パスの選択に関して、パケットはピアツーピア接続又はリレー接続を介してルーティングすることができる。ＳＬＡに関して、異なるクライアントにとって利用可能な異なるＳＬＡが存在してもよい。最高の帯域幅／動作可能時間（uptime）又は他の保証を有するクライアントについて、他の種類のクライアントについてのものとは異なるネットワークパスを選択することができる。さらに、接続は、ホストが属し得る、仮想的な集団などの他の種類のポリシールールに基づいて許可したり禁止したりすることができる。
【０００７】
[0005]上記及び関連する目的を達成するために、いくつかの例示的な態様が、以下の説明及び添付の図面に関連して本明細書に記載される。これらの態様は、本明細書に開示された原理を実施することができ、すべての態様及びその均等物が特許請求の主題の範囲内にあると意図される、様々な方法を示す。他の利点及び新規な特徴は、図面と併せて考慮することにより、以下の詳細な説明から明らかとなろう。
【図面の簡単な説明】
【０００８】
【図１】[0006]開示されたアーキテクチャーによる、コンピューターにより実施される接続システムを示す。
【図２】[0007]オーサリングコンポーネントを含む接続システムの代替的な実施例を示す。
【図３】[0008]コンピューティングクラウドから受信したポリシーに従って定義されるパス選択を容易にするために仮想アダプターを利用するローカルノードシステムを示す。
【図４】[0009]開示されたアーキテクチャーによる、コンピューターにより実施されるホスト接続方法を示す。
【図５】[0010]図４の方法についての追加の態様を示す。
【図６】[0011]別のホスト接続方法を示す。
【図７】[0012]図６の方法についての追加の態様側面を示す。
【図８】[0013]さらに別の代替的なホスト接続方法を示す。
【図９】[0014]開示されたアーキテクチャーによる、クラウドベースの接続を実行するように動作可能なコンピューティングシステムのブロック図を示す。
【図１０】[0015]クラウドベースの接続が展開されるコンピューティング環境の概略的なブロック図を示す。
【発明を実施するための形態】
【０００９】
[0016]開示されたアーキテクチャーは、ポリシーに基づくスマートネットワークスイッチングである。ネットワークスイッチングは、クラウドベースのリソースとのオンプレミスの（on-premise）接続を可能にするために、クラウド・コンピューティングと組み合わせて使用される。しかし、これは、エンドポイントがクラウドにあるか企業ネットワーク（corpnet）にあるかにかかわらず、スマートルーティングが任意の２つ以上のエンドポイントに対して一般に適用可能であるという点で、スマートルーティングの１つのシナリオにすぎない。アーキテクチャーは、２つのホストマシンが互いに接続できる最も適切な経路の選択を可能にする、接続ルールのポリシーオーサリング、ネームサービス解決フックのほか、クライアント側の動的ルーティングの組み合わせを提供する。これにより、ベンダーの最低運用コストを保証するという観点での柔軟性を可能にし、顧客のために最高のサービスレベル合意（ＳＬＡ）を提供し、又はその両方の組み合わせを可能にする。
【００１０】
[0017]ポリシー（例えば、クラウドベース）は、ルーティングが実行される順序を決定するために適用される様々な接続ルールを決定するために利用することができる。例えば、ポリシーマニフェストは、別のクライアントに接続するクライアントについて、２つのクライアントが同じ集団（サークル、circle）内に存在し、ＳＳＴＰ（secure socket tunneling protocol）などのクラウドを介した接続方法を試みる前に、利用可能であれば、接続がピアツーピア（Ｐ２Ｐ）接続において最初にトンネリング（例えば、テレドベース（Ｔｅｒｅｄｏ-based））を試みることを示してもよい。
【００１１】
[0018]ポリシーは様々なレベルで定義することができる。たとえば、ポリシーは、２つの特定のホスト間の接続を決定するために、並びに、集団及びリンクのコンテキストにおいて、同じ集団又はリンクされた集団内の２つの異なるホスト間の接続を決定するために、又は、同じ集団の一部でありいかなるようにもリンクされていないマシンなしに、任意の２つのマシン間の接続を規定するためにさえ、定義することができる。（集団はネットワークを介したユーザー又は組織のつながりとして記載され、リンクはユーザー又は組織間の関係である。）これらのポリシーは、静的になど、先験的に決定することができ、又は、一連のルールに基づいて生成することができ、その入力は、地理位置情報（ジオロケーション）、ＳＬＡ、望ましいコスト、集団会員などを含むがこれらに限定されない。
【００１２】
[0019]ここで図面を参照すると、全体にわたって、同様の要素を指すために同様の参照数字が使用される。以下の説明においては、説明の目的のために、多数の具体的な詳細が、その十分な理解を提供するために記載される。しかし、新規な実施例はこれらの特定の詳細なしに実施することができることは明らかである。他の例では、周知の構造及び装置が、その説明を容易にするために、ブロック図の形式で示される。特許請求の主題の趣旨及び範囲内にあるすべての修正、均等物、及び選択肢をカバーすることが意図される。
【００１３】
[0020]図1は、開示されたアーキテクチャーによるコンピューターにより実施される接続システム１００を示す。システム１００は、解決呼（resolution call）１１０を使用して、接続が意図されるリモートノード１０８の識別情報１０６の解決を試みる、ローカルノード１０４の解決（resolution）コンポーネント１０２を含む。ローカルノード１０４の変換コンポーネント１１２は、解決呼１１０をインターセプトし、解決呼１１０を、コンピューティングクラウド１１８のリソース１１６へのウェブサービス呼１１４に変換する。ローカルノード１０４のポリシーコンポーネント１２０は、コンピューティングクラウド１１８からポリシー１２２を受信し、ポリシー１２２に基づいて、ローカルノード１０４とリモートノード１０８との間の接続１２４を確立する。
【００１４】
[0021]コンピューティングクラウド１１８から受信したポリシー１２２は、リモートノード１０８及び名前解決呼である解決呼１１０の名前である、識別情報１０６に基づいて、選択することができる。ポリシー１２２はまた、別のネットワークパスに対して１つのネットワークパスを選択することにより、接続１２４の作成を容易にする。さらに、ポリシー１２２は、ローカルノード１０４の物理的な位置又はデータセンターに対するリモート・ノード１０８の物理的な位置のうちの少なくとも１つに基づいて接続１２４の作成を容易にする。さらに、ポリシー１２２は、サービスレベル合意に基づいて接続１２４の作成を容易にする。ポリシー１２２はまた、ローカルノード１０４又は遠隔ノード１０８の少なくともいずれかが関連付けられる仮想的な集団に基づいて接続１２４の作成を容易にする。ポリシーコンポーネント１２０は、中継サーバーを介したリモートノード１０８への接続１２４を構成する。
【００１５】
[0022]言い換えれば、別のホスト（例えば、クライアント又はサーバーであってもよいリモートノード１０８）に接続することを試みるホスト（例えば、ローカルノード１０４）は、他のノード（例えば、リモートノード１０８）の名前を解決することを最初に試みる。名前解決呼（例えば、解決呼１１０）は、クライアント（ローカルノード１０４）上で解釈され、クラウド１１８における名前解決の実施のために、クラウドベースのウェブサービス呼び出し（ウェブサービス呼び出し１１４）へ変換される。しかし、傍受（インターセプション）はローカルベース及び／又はクラウドベースなどの様々な実施を使用して実行することができるので、これは傍受技術の一例にすぎないことに留意されたい。当該実施例は、様々なネットワークのネットワークコストを決定するためにポリシー（例えば、ポリシー１２２）を使用し、前述のホストにこれを送信する。
【００１６】
[0023]ホスト（ローカルノード１０４）は、接続１２４のために使用すべきローカルノード１０４のアドレスを名前リゾルバーに知らせるために、クラウドベースのサービスから得られた情報を使用し、リレーサーバー（例えば、ＳＳＴＰなど）への適切な接続を構成し、所望の接続の使用をかのうにするためにローカルノード１０４の仮想アダプター上のルーティングテーブルを設定する。しかし、より広い状況において、インスタントアーキテクチャーはエンドポイントの位置に関係なく任意の２つのネットワークエンドポイント間の接続を可能にすることが理解されるべきである。したがって、オンプレミス及び／又はクラウドベースの実施のコンテキストにおいて説明したが、アーキテクチャーはより一般的に適用することができる。これらの手順の１つ又は複数は、クライアントの初期化時（例えば、マシンが起動するか又は正しいユーザーがマシンにログオンするとき）に実行することができる一方、他のステップは実際の接続設定時間において実行することができる。
【００１７】
[0024]図2は、オーサリングコンポーネント２０２を含む接続システム２００の代替的な実施例を示す。オーサリングオーサリングコンポーネント２０２は、ローカルノードとリモートノードとの間の通信を確立するための接続ルールを含むポリシーを作成し、クラウド内にポリシーを格納する。
【００１８】
[0025]図示されるように、システム２００はまた、図１に記載されるエンティティ及びコンポーネントを含む。システム２００は、名前解決呼である解決呼１１０を使用して、接続が意図されるリモートノード１０８の識別情報１０６の解決を試みる、ローカルノード１０４の解決コンポーネント１０２を含む。ローカルノード１０４の変換コンポーネント１１２は、解決呼１１０（例えば、名前解決呼）をインターセプトし、解決呼１１０を、コンピューティングクラウド１１８のリソース１１６（多くの可能なクラウドリソースのうちの１つ）に対するウェブサービス呼び出し１１４（例えば、クラウドベース）へと変換する。ローカルノード１０４のポリシーコンポーネント１２０は、コンピューティングクラウド１１８からポリシー１２２を受信し、ポリシー１２２に基づいて、ローカルノード１０４とリモートノード１０８との間の接続１２４を確立する。
【００１９】
[0026]ローカルノード１０４及び／又は別のノードへの接続を試みる場合、リモートノード１０８がローカル・ノード１０４と同じコンポーネントを含んでもよいことが理解されるべきである。
【００２０】
[0027]図３は、コンピューティングクラウドから受信したポリシーに従って定義されたパスの選択を容易にするために仮想アダプター３０２を利用する、ローカルノード・システム３００を示す。この特定の例では、クラウドがＩＰｖ６のみのインフラストラクチャーであるように設計されると考慮されるが、開示されたアーキテクチャーの応用はこれに限定されない。さらに、よく書かれたアプリケーション３０４は、当該アプリケーション３０４がリモートノードへの接続に成功するまで、クラウドから返されたすべてのアドレスを処理することを考慮されたい。クラウドから受信したポリシーに基づいて、アプリケーション３０４は、（リモートノードの）ＩＰｖ６宛先アドレス、及びローカルノードの仮想アダプター３０２によって公開される（ローカルノードの）ＩＰｖ６ソースアドレスを選択する。
【００２１】
[0028]さらに示されるように、仮想アダプター３０２は、ＳＳＴＰ  ＩＰｖ６アダプター３０８及びＴｅｒｅｄｏ  ＩＰｖ６アダプター３１０へインターフェースするＩＰｖ４／ＩＰｖ６アダプター３０６に関連付けられるＩＰｖ４アドレス及びＩＰｖ６アドレスを含むように作成される。どのトランスポート（Ｔｅｒｅｄｏ対ＳＳＴＰ）が利用可能であるかに基づいて、仮想アダプター３０２は、適切なＩＰｖ６パケットにＩＰｖ４／ＩＰｖ６パケットをカプセル化し、当該パケットを、ＳＳＴＰ又はＴｅｒｅｄｏによって処理されるクライアントスタックに注入して戻す。図示されるように、仮想アダプター３０２は、物理層３１２を覆うように設計することができる。
【００２２】
[0029]インターフェースへの割り当てに関して、ローカルノードは、ＩＰｖ４アドレスを用意するためにクラウドサービスと通信することができる。このＩＰアドレスは仮想アダプターに割り当てられる。さらに、プレフィックス（prefixed）ＩＰｖ６アドレスはＩＰｖ４アドレスから生成され、同じインターフェースに割り当てられる。ＴｅｒｅｄｏローカルノードがＴｅｒｅｄｏサーバーと通信する場合、ＴｅｒｅｄｏＩＰｖ６アドレスはローカルノードに割り当てられる。
【００２３】
[0030]同様に、ＳＳＴＰローカルノードがＳＳＴＰトンネルを設定しようとするとき、ＳＳＴＰサーバーは、予約されたＩＰｖ４アドレスとサイトＩＤを組み合わせることにより、ＩＰｖ６アドレスを分配することができる。ローカルノードはクラウドサービスに属するすべてのこれらのＩＰアドレスをアップロードする。したがって、ノードごとに関連付けられる４つのアドレスがあり得る：仮想アダプターのＩＰｖ４アドレス、仮想アダプターのＩＰｖ６アドレス、Ｔｅｒｅｄｏ  ＩＰｖ６アドレス、及びＳＳＴＰ  ＩＰｖ６アドレス。これらの4つのアドレスのうち、仮想アダプターのアドレスは、アプリケーション（例えば、アプリケーション３０４）に対して公開される（さらされる）。ノードからのドメインネームサービス（ＤＮＳ）名前クエリーはこれら２つのアドレスを解決する。
【００２４】
[0031]関連するアドレスの組は、例えば、組（タプル）＜仮想アダプターのＩＰｖ４アドレス、Ｔｅｒｅｄｏ  ＩＰｖ６アドレス、リレーＩＰｖ６アドレス＞として保持されてもよい。次いで、宛先ＩＰｖ４アドレスを考慮して、ルーティングをそれに応じて行うことができる。別の変形は、ソース及び／又は宛先がグローバルＩＰｖ４／ＩＰｖ６接続を有しているか否かであり、システムはバイパスされる。グローバルＩＰｖ６アドレスがこの組（タプル）に追加される場合、次いでグローバルＩＰｖ６アドレスも同様に利用することができる。
【００２５】
[0032]仮想アダプター３０２の内部では、宛先に関連付けられる４つのアドレスをキャッシュすることができる。接続処理は所定の順序に従ってもよい。例えば、宛先への接続は次の順序で試みることができる：最初にＴｅｒｅｄｏ  ＩＰｖ６アドレス、続いて、ＳＳＴＰ  ＩＰｖ６アドレス、アダプターＩＰｖ４アドレス、及び、次いでアダプターＳＳＴＰ  ＩＰｖ６におけるカプセル化。Ｔｅｒｅｄｏ接続はピアＩＰｖ６Ｔｅｒｅｄｏアドレス上で試みられる。この接続が成功する場合、その後、仮想アダプター３０２は、Ｔｅｒｅｄｏ  ＩＰｖ６アドレス内でＩＰｖ６トラフィックをカプセル化し、カプセル化されたＩＰｖ６トラフィックを、Ｔｅｒｅｄｏインターフェース（Ｔｅｒｅｄｏアダプター３１０）に送信する。
【００２６】
[0033]上記が失敗した場合には、仮想アダプター３０２は、ＳＳＴＰ  ＩＰｖ６アドレスを使用して宛先（リモートノード）に到達することを試みる。到達の可能性はピン機構（ping mechanism）によって確認することができる。この接続が成功する場合、仮想アダプター３０２は、ＳＳＴＰ  ＩＰｖ６パケットにトラフィックをカプセル化し、ＳＳＴＰインターフェース（ＳＳＴＰアダプター３０８）に、カプセル化されたトラフィックを送信する。
【００２７】
[0034]ＩＰｖ６を介した上記の接続が失敗する場合、アプリケーション３０４は、リモートノードのＩＰｖ４アドレスを選択して、接続を試みる。すべてではないがほとんどのアプリケーションがＩＰｖ４でリスンされる場合、この接続は成功する確率が高い。この成功に応答して、仮想アダプター３０２は、ＳＳＴＰ  ＩＰｖ６にトラフィックをカプセル化し、ＳＳＴＰインターフェース（ＳＳＴＰアダプター３０８）を介して、カプセル化されたトラフィックを送信する。
【００２８】
[0035]仮想アダプター３０２によるＩＰｖ６を介したＩＰｖ４カプセル化（IPv4 over IPv6 encapsulation）に関して、仮想アダプター３０２は、ＮＤＩＳ（ネットワークドライブインターフェース仕様）のミニポートドライバーとして実施することができる。仮想アダプター３０２は、ＩＰｖ４通信のために選択されるように構成することができる。このように、仮想アダプター３０２は、すべてのＩＰｖ４トラフィックを傍受することができる。
【００２９】
[0036]どのＩＰｖ６アドレス（例えば、ＳＳＴＰかＴｅｒｅｄｏか）がカプセル化に使用されているかは、次のように決定することができる。Ｔｅｒｅｄｏインターフェースが接続される場合、ピアのＴｅｒｅｄｏ  ＩＰにピンを打つ試みがなされる。ピアのＴｅｒｅｄｏ  ＩＰｖ６アドレスは、宛先ＩＰｖ４アドレス、Ｔｅｒｅｄｏプレフィックス、及びサイトＩＤを組み合わせることによって決定することができる。ピンがＴｅｒｅｄｏ  ＩＰｖ６アドレスで成功した場合、Ｔｅｒｅｄｏ  ＩＰｖ６アドレスはカプセル化に使用することができる。上記が失敗した場合、ピアのＳＳＴＰ  ＩＰｖ６アドレスで再試行する。成功した場合、カプセル化のためにＳＳＴＰ  ＩＰｖ６アドレスを使用する。
【００３０】
[0037]ＩＰｖ６を介したＩＰｖ４カプセル化の後、パケットがＳＳＴＰ又はＴｅｒｅｄｏによって正しくピックアップすることができるように、仮想アダプター３０２はＴＣＰ／ＩＰスタックにパケットを挿入する。これを実現するために、余分な情報（フラグを設定）を、仮想アダプター３０２におけるカプセル化中、ＩＰｖ６ヘッダーに追加することができる。受信機がＩＰｖ６パケットを受信する場合、受信機は、フラグを見て、ＩＰｖ６パケットが、仮想アダプター３０２によってカプセル化を解除する必要があるか、又は単に仮想アダプター３０２をバイパスする必要があるかを決定する。１つの選択肢は、外側のＩＰｖ６ヘッダーの次のヘッダーフィールドを４に設定し、それによって、ＩＰｖ４パケットがこのＩＰｖ６パケット内にカプセル化されていることを示すことである。他の選択肢もまた適用することができる。
【００３１】
[0038]本明細書には、開示されたアーキテクチャーの新たな態様を実行するための例示的な方法論を表すフローチャートの組が含まれる。説明の簡略化の目的のために、例えばフローチャートやフロー図の形式でここに示す１つ又は複数の方法論は、一連の動作として示され記載されるが、いくつかの動作は、それに応じて、本明細書に示され記載されたものとは異なる順序で及び／又は他の動作と同時に生じてもよいので、方法論は動作の順序によって限定されない、ということが理解され認識されるべきである。例えば、当業者であれば、方法論を、代替的に、状態図などの一連の相互に関連する状態又はイベントとして表すことができることを理解し認識するであろう。さらに、方法論に示されるすべての動作が新規の実施にとって必要とされるわけではない。
【００３２】
[0039]図４は、開示されるアーキテクチャーによる、コンピューターにより実施されるホスト接続方法を示す。４００において、ローカルホストにおいて、解決呼を使用して、接続が意図されるリモートホストの識別情報を解決する試みがなされる。４０２において、識別情報はコンピューティングクラウドのクラウドベースのリソースに送信される。４０４において、ポリシー情報がクラウドベースのリソースから受信される。４０６において、ローカルホストはポリシー情報に基づいてリモートホストに接続される。
【００３３】
[0040]図５は図４の方法の追加の態様を示す。５００において、解決呼は、クラウドベースのリソースへの送信のためにローカルホスト上でインターセプトされる。５０２において、解決呼は、クラウドベースのリソースへの送信のために、ローカルホストにおいてクラウドベースのウェブサービス呼へと変換される。５０４において、ネットワークコストは、ローカルホストによる処理のために特定のネットワークを利用するためのポリシー情報において定義される。５０６において、リモートホストへのルーティングパスはポリシー情報に基づいて選択される。５０８において、ルーティングパスはポリシー情報から取得される。５１０において、プロトコルサービスへの接続はルーティングパスに基づいて有効にされる。５１２において、ローカルホストは、リモートホストが一部であるコンピューティングクラウド内の仮想的な集団に割り当てられる。５１４において、ローカルホスト中のルーティングテーブルは、接続の使用を可能にするように構成される。
【００３４】
[0041]図6は、別のホスト接続方法を示す。６００において、ローカルホストにおいて、接続を意図されているリモートホストの名前の解決が、名前解決呼を使用して試みられる。６０２において、名前解決呼がインターセプトされる。６０４において、名前解決呼は、クラウドベースのウェブサービス呼に変換される。６０６において、クラウドベースのウェブサービス呼が送信される。当該送信はコンピューティングクラウドに対してすることができる。６０８において、ポリシー情報は、クラウドベースのウェブサービス呼に応答して受信される。６１０において、ローカルホストは、ポリシー情報に基づいてリモートホストに接続される。
【００３５】
[0042]図7は図６の方法の追加の側面を示す。７００において、ローカルホストはリモートホストが一部である仮想的な集団に割り当てられる。７０２において、リモートホストへのルーティング情報がポリシー情報から取得される。７０４において、接続がプロトコルサービスに対して設定される。７０６において、ローカルホストにおけるルーティングテーブルは、接続の使用を可能にするように構成される。
【００３６】
[0033]図8はさらに別のホスト接続方法を示す。８００において、ローカルクライアントはリモートクライアント上のウェブサイトを開くことを試みる。８０２において、ローカルクライアントアプリケーションは、リモートクライアントの名前についてドメインネームサービス（ＤＮＳ）探索を実行する。ローカルクライアントアプリケーションは２つのアドレスを受信する：リモートクライアントのＩＰｖ４アドレス及びリモートクライアントのＩＰｖ６アドレス。よく書かれたアプリケーションは、返されたすべてのアドレスを、成功するまで処理する。８０４において、ＤＮＳ解決呼がインターセプトされ、クラウドへのウェブサービス呼へと変換される。
【００３７】
[0044]８０６において、クラウドから受信されたポリシーは、関連付けられるルーティングルールを取得するために処理される。たとえば、ポリシーに基づいて、アプリケーションは、ローカルクライアントの仮想アダプターによって公開されるＩＰｖ６リモート（宛先）アドレス及びＩＰｖ６ローカル（ソース）アドレスを選択する。８０８において、アドレスは所定の順序に従って処理される。たとえば、ルールは、ＩＰｖ４アドレスの前に、別のプロトコル（例えば、ＳＳＴＰ）を介して１つのプロトコル（例えば、Ｔｅｒｅｄｏ）に従って、ＩＰｖ６アドレスを処理することを示してもよい。８１０において、宛先への接続は、最初に成功した試みに基づいて確立される。
【００３８】
[0045]本出願において使用されるとき、「コンポーネント」及び「システム」という用語は、コンピューター関連のエンティティ、いずれかのハードウェア、ハードウェアとソフトウェアの組み合わせ、ソフトウェア、又は実行中のソフトウェアを指すように意図される。たとえば、コンポーネントは、プロセッサー上で動作するプロセス、プロセッサー、ハードディスクドライブ、（光学的、固体、及び／又は磁気記憶媒体の）複数のストレージドライブ、オブジェクト、実行可能ファイル、実行のスレッド、プログラム、及び／又はコンピューターであってもよいが、これらに限定されるものではない。例として、サーバー上で実行されるアプリケーションとサーバーの両方がコンポーネントであってもよい。１つ又は複数のコンポーネントはプロセス及び／又は実行のスレッド内に存在することができ、コンポーネントは１つのコンピューターに局在化させ及び／又は２つ以上のコンピューター間に分散させることができる。「例示的」という語は、例、実例、又は例示として働くことを意味するように本明細書に置いて使用されてもよい。「例示的である」として本明細書に記載された任意の態様又は設計は、必ずしも、他の態様又は設計よりも好ましいもの又は有利なものとして解釈されるべきではない。
【００３９】
[0046]図９を参照すると、開示されたアーキテクチャーによる、クラウドベースの接続を実行するように動作可能なコンピューティングシステム９００のブロック図が示される。その様々な態様について追加のコンテキストを提供するために。図９及び以下の説明は、様々な態様を実施することができる適切なコンピューティングシステム９００についての簡潔で一般的な説明を提供することを意図する。上記の説明は１つ又は複数のコンピューター上で実行することができるコンピューター実行可能命令の一般的なコンテキストにおいてなされたが、当業者であれば、新規の実施例もまた、他のプログラムモジュールと組み合わせて及び／又はハードウェアとソフトウェアの組み合わせとして実施することができることを認識するであろう。
【００４０】
[0047]様々な態様を実施するコンピューティングシステム９００は、処理装置９０４、システムメモリー９０６などの、コンピューター読み取り可能な記憶装置及びシステムバス９０８を有するコンピューター９０２を含む。処理装置９０４は、シングルプロセッサー、マルチプロセッサー、シングルコアユニット及びマルチコアユニットなどの様々な市販のプロセッサーのいずれであってもよい。さらに、当業者であれば、新規な方法が、ミニコンピューター、メインフレームコンピューターのほか、パーソナルコンピューター（例えば、デスクトップ、ラップトップなど）、ハンドヘルドコンピューティング装置、マイクロプロセッサーベース又はプログラム可能な民生用電子機器などを含む他のコンピューターシステム構成で実施することができ、その各々が１つ又は複数の関連する装置に動作可能に結合させることができることを理解するであろう。
【００４１】
[0048]システムメモリー９０６は、揮発性（ＶＯＬ）メモリー９１０（例えば、ランダムアクセスメモリー（ＲＡＭ））及び不揮発性メモリー（ＮＯＮ−ＶＯＬ）９１２（例えば、ＲＯＭ、ＥＰＲＯＭなど）などのコンピューター読み取り可能な記憶装置を含んでもよい。基本入出力システム（ＢＩＯＳ）は、不揮発性メモリー９１２に格納され、起動時などにコンピューター９０２内のコンポーネント間でのデータ及び信号の通信を容易にする基本ルーチンを含むことができる。揮発性メモリー９１０はまた、データをキャッシュするための固体ＲＡＭなどの高速ＲＡＭを含んでもよい。
【００４２】
[0049]システムバス９０８は、メモリーサブシステム９０６から処理装置９０４を含むがこれに限定されない、システムコンポーネントのためのインターフェースを提供する。システムバス９０８は、様々な市販のバスアーキテクチャーのうちの任意のものを使用して、（メモリーコントローラーの有無にかかわらず）メモリーバス、及び周辺バス（例えば、ＰＣＩ、ＰＣＩｅ、ＡＧＰ、ＬＰＣなど）にさらに相互接続できるいくつかの種類のバス構造うちのいずれかであってもよい。
【００４３】
[0050]コンピューター９０２はさらに、マシン読み取り可能なストレージサブシステム９１４と、ストレージサブシステム９１４をシステムバス９０８及び他の望ましいコンピューターコンポーネントへインターフェースするためのストレージインターフェース９１６を含む。ストレージサブシステム９１４は、例えば、ハードディスクドライブ（ＨＤＤ）、磁気フロッピーディスクドライブ（ＦＤＤ）、及び／又は光ディスクストレージドライブ（例えば、ＣＤ−ＲＯＭドライブ、ＤＶＤドライブ）のうちの１つ又は複数を含んでもよい。ストレージインターフェース９１６は、例えば、ＥＩＤＥ、ＡＴＡ、ＳＡＴＡ、及びＩＥＥＥ１３９４などのインターフェース技術を含んでもよい。
【００４４】
[0051]１つ又は複数のプログラム及びデータは、メモリーサブシステム９０６、マシン読み取り可能な及び取り外し可能なメモリーサブシステム９１８（例えば、フラッシュドライブフォームファクター技術）、並びに／又はストレージサブシステム９１４（例えば、光、磁気、固体）に格納することができ、オペレーティングシステム９２０、１つ又は複数のアプリケーションプログラム９２２、他のプログラムモジュール９２４、及びプログラムデータ９２６を含む。
【００４５】
[0052]１つ又は複数のアプリケーションプログラム９２２、他のプログラムモジュール９２４、及びプログラムデータ９２６は、例えば、図１のローカルノード１０４、ポリシー１２２及びエンティティ／ローカルノード１０４のコンポーネント、図３の仮想アダプター層３０２、図４−８のフローチャートにより表される方法を含んでもよい。
【００４６】
[0053]一般的に、プログラムは、特定のタスクを実行し又は特定の抽象データ型を実施する、ルーチン、方法、データ構造、他のソフトウェアコンポーネントなどを含む。オペレーティングシステム９２０、アプリケーション９２２、モジュール９２４、及び／又はデータ９２６のすべて又は一部はまた、例えば、揮発性メモリー９１０などのメモリー内にキャッシュすることができる。開示されたアーキテクチャーが、様々な市販のオペレーティングシステム又は（例えば、仮想マシンのような）オペレーティングシステムの組み合わせによって実施することができることが理解されるべきである。
【００４７】
[0054]ストレージ・サブシステム９１４及びメモリーサブシステム（９０６及び９１８）は、データ、データ構造、コンピューター実行可能命令などについての揮発性及び不揮発性の記憶装置のためのコンピューター読み取り可能な媒体として機能する。コンピューター読み取り可能な媒体は、コンピューター９０２によってアクセスすることができ、取り外し可能な又は取り外し不能である揮発性及び不揮発性の内部及び／又は外部の媒体を含む、任意の利用可能な媒体とすることができる。コンピューター９０２について、当該媒体は、任意の適当なデジタル形式でのデータの記憶を提供する。開示されたアーキテクチャーの新規な方法を実行するためにコンピューター実行可能命令を格納するための、ジップドライブ（zip drive）、磁気テープ、フラッシュメモリーカード、フラッシュドライブ、カートリッジなどの、他の種類のコンピューター読み取り可能な媒体を使用することができることは当業者によって理解されるべきである。
【００４８】
[0055]ユーザーは、キーボード及びマウスなどの外部のユーザー入力装置９２８を使用してコンピューター９０２、プログラム、及びデータとインタラクトすることができる。他の外部のユーザー入力装置９２８は、マイク、ＩＲ（赤外線）リモートコントロール、ジョイスティック、ゲームパッド、カメラ認識システム、スタイラスペン、タッチスクリーン、ジェスチャーシステム（例えば、眼球の動き、頭の動きなど）、などを含んでもよい。ユーザーは、コンピューター９０２が例えばポータブルコンピューターである場合、タッチパッド、マイク、キーボードなどの搭載されたユーザー入力装置９３０を使用して、コンピューター９０２、プログラム、及びデータとインタラクトすることができる。これら及び他の入力装置は、システムバス９０８を介して入出力（Ｉ／Ｏ）デバイスインターフェース９３２を通じて処理ユニット９０４に接続されるが、パラレルポート、ＩＥＥＥ１３９４シリアルポート、ゲームポート、ＵＳＢポート、ＩＲインターフェースなどの他のインターフェースによって接続されてもよい。Ｉ／Ｏデバイスインターフェース９３２はまた、プリンター、オーディオ機器、カメラ機器など、サウンドカード及び／又は搭載されたオーディオ処理機能などの、出力周辺機器９３４の使用を容易にする。
【００４９】
[0056]１つ又は複数のグラフィックインターフェース９３６（一般にグラフィック処理装置（ＧＰＵ）とも呼ばれる）は、コンピューター９０２と、外部ディスプレイ９３８（例えば、ＬＣＤ、プラズマ）及び／又はオンボードのディスプレイ９４０（例えば、ポータブルコンピューターの場合）との間でグラフィック及びビデオ信号を提供する。グラフィックインターフェース９３６は、コンピューターシステムボードの一部として製造することもできる。
【００５０】
[0057]コンピューター９０２は、１つ又は複数のネットワーク及び／又は他のコンピューターへの有線／無線通信サブシステム９４２を介した論理接続を使用するネットワーク環境（例えば、ＩＰベース）において動作することができる。他のコンピューターは、ワークステーション、サーバー、ルーター、パーソナルコンピューター、マイクロプロセッサーベースの娯楽機器、ピア装置又は他の共通ネットワークノードを含んでもよく、通常、コンピューター９０２に対して記載される要素の多く又はすべてを含んでもよい。論理接続は、ローカルエリアネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、ホットスポットなどへの有線／無線接続を含んでもよい。ＬＡＮ及びＷＡＮネットワーキング環境は、オフィスや企業においてありふれたものであり、そのすべてがインターネットなどのグローバル通信ネットワークに接続することができる、イントラネットなどの企業規模のコンピューターネットワークを容易にする。
【００５１】
[0058]ネットワーキング環境で使用される場合、コンピューター９０２は、有線／無線ネットワーク、有線／無線プリンター、有線／無線入力装置９４４などと通信するために、有線／無線通信サブシステム９４２（例えば、ネットワークインターフェースアダプター、オンボードのトランシーバーサブシステムなど）を介してネットワークに接続する。コンピューター９０２は、ネットワークを介して通信を確立するためのモデム又は他の手段を含んでもよい。ネットワーク環境において、コンピューター９０２に対するプログラム及びデータは、分散システムに関連付けられるように、リモートメモリー／記憶装置に格納することができる。示されるネットワーク接続が例示的なものであって、コンピューター間の通信リンクを確立する他の手段を使用することができることが理解されよう。
【００５２】
[0059]コンピューター９０２は、例えば、プリンター、スキャナー、デスクトップもしくは／又はポータブルコンピューター、パーソナルデジタルアシスタント（ＰＤＡ）、通信衛星、無線検出可能なタグに関連付けられる機器や場所の任意の一部（例えば、キオスク、ニューススタンド、トイレ）、及び電話を備えた、無線通信（例えば、ＩＥＥＥ８０２．１１無線変調技術）に動作可能に配置される無線装置などの、標準のＩＥＥＥ８０２．ｘｘファミリーなどの無線技術を使用して、有線／無線装置又はエンティティと通信するように動作可能である。これは、少なくとも、ホットスポットのためのＷｉ−Ｆｉ（又はワイヤレスフィデリティ）、ＷｉＭＡＸ、及びブルートゥース（登録商標）無線技術を含む。したがって、通信は、従来のネットワークと同様に所定の構造であってもよいし、又は、単に少なくとも２つの装置間のアドホック通信であってもよい。Ｗｉ−Ｆｉネットワークは、セキュアな信頼性の高い高速無線接続を提供するためにＩＥＥＥ８０２．１１ｘ（ａ、ｂ、ｇなど）と呼ばれる無線技術を使用する。Ｗｉ−Ｆｉネットワークは、コンピューターを相互に、インターネットに、及び（ＩＥＥＥ８０２．３に関連する媒体及び機能を使用する）有線ネットワークに接続するために使用することができる。
【００５３】
[0060]ここで図１０を参照すると、クラウドベースの接続が展開されるコンピューティング環境１０００の概略ブロック図が示される。環境１０００は１つ又は複数のクライアント１００２を含む。クライアント１００２はハードウェア及び／又はソフトウェア（例えば、スレッド、プロセス、コンピューティング装置）とすることができる。クライアント１００２は、例えば、クッキー及び／又は関連付けられるコンテキスト情報を収容することができる。
【００５４】
[0061]環境１０００はまた、１つ又は複数のサーバー１００４を含む。サーバー１００４はまた、ハードウェア及び／又はソフトウェア（例えば、スレッド、プロセス、コンピューティング装置）とすることができる。サーバー１００４は、例えばアーキテクチャーを使用することにより変換を実行するためにスレッドを収容することができる。クライアント１００２とサーバー１００４との間の１つの可能な通信は、２つ以上のコンピュータープロセス間で送信されるように構成されたデータパケットの形式にすることができる。データパケットは、例えば、クッキー及び／又は関連付けられるコンテキスト情報を含んでもよい。環境１０００は、クライアント１００２とサーバー１００４との間の通信を容易にするために使用することができる通信フレームワーク１００6（例えば、インターネットなどのグローバル通信ネットワーク）を含む。
【００５５】
[0062]通信は、有線（光ファイバーを含む）及び／又は無線技術を介して容易にすることができる。クライアント１００２は、クライアント１００２にとってローカルな情報（例えば、クッキー及び／又は関連のコンテキスト情報）を格納するために使用することができる１つ又は複数のクライアントデータストア１００８に動作可能に接続される。同様に、サーバー１００４は、サーバー１００４にとってローカルな情報を格納するために使用することができる１つ又は複数のサーバーデータストア１０１０に動作可能に接続される。
【００５６】
[0063]上述したものは開示されたアーキテクチャーの例を含む。コンポーネント及び／又は方法論の考えられるすべての組み合わせを記載することはもちろん可能ではないが、当業者であれば、多くのさらなる組み合わせ及び置換が可能であることを認識するであろう。したがって、新しいアーキテクチャーは、添付の特許請求の範囲の趣旨及び範囲内のすべてのそのような変更、修正及び変化を包含することを意図している。さらに、「含む」という語が詳細な説明又は特許請求の範囲において使用される限りにおいて、そのような語は、「備える」という語が請求項において過渡的な語として使用されるときの「備える」という語と同様にして包括的であることが意図される。
【図１】
2013511207.tif 000003
【図２】
2013511207.tif 000004
【図３】
2013511207.tif 000005
【図４】
2013511207.tif 000006
【図５】
2013511207.tif 000007
【図６】
2013511207.tif 000008
【図７】
2013511207.tif 000009
【図８】
2013511207.tif 000010
【図９】
2013511207.tif 000011
【図１０】
2013511207.tif 000012
【国際調査報告】
2013511207.tif 000013
2013511207.tif 000014