JP5948362B2 - コンピュータネットワークの動的な移行 - Google Patents

コンピュータネットワークの動的な移行 Download PDF

Info

Publication number
JP5948362B2
JP5948362B2 JP2014078195A JP2014078195A JP5948362B2 JP 5948362 B2 JP5948362 B2 JP 5948362B2 JP 2014078195 A JP2014078195 A JP 2014078195A JP 2014078195 A JP2014078195 A JP 2014078195A JP 5948362 B2 JP5948362 B2 JP 5948362B2
Authority
JP
Japan
Prior art keywords
computer network
network
node
computing
nodes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014078195A
Other languages
English (en)
Other versions
JP2014157617A (ja
Inventor
ティー.コーン ダニエル
ティー.コーン ダニエル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of JP2014157617A publication Critical patent/JP2014157617A/ja
Application granted granted Critical
Publication of JP5948362B2 publication Critical patent/JP5948362B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/04Network management architectures or arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/02Processing of mobility data, e.g. registration information at HLR [Home Location Register] or VLR [Visitor Location Register]; Transfer of mobility data, e.g. between HLR, VLR or external networks
    • H04W8/08Mobility data transfer
    • H04W8/082Mobility data transfer for traffic bypassing of mobility servers, e.g. location registers, home PLMNs or home agents

Description

本発明は、コンピュータネットワークの動的な移行に関する。
数多くの企業および他の組織が、計算システムを(例えばローカルネットワークの一部として)同じ箇所に配置したり、(例えば、1つもしくは複数のプライベートまたはパブリックの仲介ネットワークを介して接続された)複数の別個の地理的位置に配置したりして、その動作をサポートするように、多数の計算システムを相互接続するコンピュータネットワークを運用している。例えば、単一組織によって、および単一組織に代わって運用されるプライベートデータセンターや、計算リソースを顧客に提供するビジネスとしてのエンティティによって運用されるパブリックデータセンターなど、相互接続された計算システムを数多く収容するデータセンターが一般的になってきた。一部のパブリックデータセンター事業者は、様々な顧客によって所有されるハードウェアにネットワークアクセス、電力、および安全な設置施設を提供し、一方で他のパブリックデータセンター事業者は、自らの顧客の使用のために利用可能とされたハードウェアリソースも含む「完全なサービス」施設を提供する。ただし、典型的なデータセンターの規模と範囲が増加したことに伴い、物理的な計算リソースをプロビジョニングし、管理し、かつ運営する作業が複雑になってきた。
市販のハードウェアを対象とした仮想化技術の出現により、多様なニーズを有する数多くの顧客に、大規模な計算リソースの管理にかかるいくつかの便益がもたらされ、複数の顧客によって様々な計算リソースを効率的かつ安全に共有できるようになった。例えば、VMware(登録商標)、XEN(登録商標)、Linux(登録商標)のKVM(「カーネルベースの仮想マシン」)、あるいはユーザーモードLinuxなどの仮想化技術により、1台の物理的な計算機によってホストされる1つもしくは複数の仮想マシンを各ユーザーに提供することにより、1台の物理的な計算機を複数のユーザー間で共有できるようになった。かかる各々の仮想マシンは、ユーザーに、ユーザー自身が所与のハードウェア計算リソースの唯一のオペレータであり管理者であるという錯覚を与えつつ、様々な仮想マシン間でのアプリケーションの分離およびセキュリティも提供する別個の論理計算システムとしての役割を果たすソフトウェアシミュレーションである。
移行元である第1のコンピュータネットワーク全体を遠隔地にある移行先である第2のコンピュータネットワークに動的および段階的に移行するなどの目的で、2つ以上のコンピュータネットワークの使用中に、それらのコンピュータネットワーク間で計算ノードを動的に移行する能力を提供するための技法が記載される。例えば、第1のコンピュータネットワークは、1つもしくは複数の物理的に接続されたコンピュータネットワークを含んでもよく、一方で第2のコンピュータネットワークは、離れた地理的位置にある(例えば、リモートユーザーが利用できるネットワークアクセス可能なサービスの制御下にある)仮想コンピュータネットワークであってもよい。提供された能力は、第1のコンピュータネットワークと第2のコンピュータネットワークとの間の通信を、前記様々な計算ノードに対して透過的な方法で転送するなどのようにして、第1のコンピュータネットワークの計算ノードのサブセットがリモートの移行先である第2のコンピュータネットワークに移行される間に移行元である第1のコンピュータネットワークの動作継続を簡便化することをさらに含んでもよい。
コンピュータネットワーク計算ノードを動的に移行することを伴う対話の例示的実施形態を図示するネットワークダイアグラムである。 コンピュータネットワーク計算ノードを動的に移行することを伴う対話の例示的実施形態を図示するネットワークダイアグラムである。 コンピュータネットワーク計算ノードを動的に移行するための能力を提供するにあたって使用する相互接続された計算システムの例示的実施形態を図示するネットワークダイアグラムである。 コンピュータネットワーク計算ノードを動的に移行するための能力を提供するのに適した計算システム例を図示するブロック図である。 構成可能なネットワークサービスマネージャルーチンの例示的実施形態の流れ図である。 構成可能なネットワークサービスマネージャルーチンの例示的実施形態の流れ図である。 ネットワーク移行マネージャルーチンの例示的実施形態の流れ図である。 ゲートウェイ装置のルーチンの例示的実施形態の流れ図である。
コンピュータネットワークの使用中に、コンピュータネットワーク間で、コンピュータネットワークと関連付けられたユーザーまたはその他のエンティティに代わるなどのようにして、計算ノードを動的な移行を簡便化する能力を提供するための技法が開示される。少なくともいくつかの実施形態では、提供された能力が、第1のコンピュータネットワークの複数の計算ノードの各々を、例えば、遠隔地における移行先である第2のコンピュータネットワークの一部である別個の計算ノードへと段階的に移行して、第1のコンピュータネットワークの使用中に第1のコンピュータネットワーク全体を遠隔地に動的な移行を簡便化することを含む。加えて、少なくともいくつかのかかる実施形態では提供された能力が、(例えば、第1のコンピュータネットワークの特定の計算ノードの移行が、第1のコンピュータネットワークの他の計算ノードにとって透過的となるように、他の計算ノードが、自身の間で通信を送り続けられるように、そして場合によっては、移行中の計算ノードにも通信を送り続けられるように、)様々なコンピュータネットワークの計算ノードに対して透過的な方法で第1のコンピュータネットワークと第2のコンピュータネットワークとの間で通信を転送するなどして、第1のコンピュータネットワークの計算ノードの第1のサブセットをリモートの移行先である第2のコンピュータネットワークに移行させながら、移行元である第1のコンピュータネットワークの動作継続を簡便化することをさらに含む。さらに、少なくともいくつかの実施形態では、第1のコンピュータネットワークおよび第2のコンピュータネットワークのうちの1つが、第1の地理的位置で物理的に接続されたコンピュータネットワーク(例えばLAN、すなわちローカルエリアネットワーク)であってよく、その一方で、移行元である第1のコンピュータネットワークが第1のエンティティの制御下にある物理的に接続されたコンピュータネットワークであり、かつ、移行先である第2のコンピュータネットワークが、第1のエンティティが顧客である料金に基づくネットワークアクセス可能なサービスによって第1のエンティティに提供されるリモートの仮想コンピュータネットワークである場合などに、第1および第2のコンピュータネットワークの他方が、(例えば、リモートユーザーが利用できるネットワークアクセス可能なサービスの制御下にある)リモートの第2の地理的位置に提供された仮想コンピュータネットワークであってもよい。動的にコンピュータネットワーク計算ノードを移行するための様々な提供された能力に関連するさらなる詳細については後述する。加えて、少なくともいくつかの実施形態で、記載されている技法のうちの一部もしくは全部が、以降でさらに詳しく記載するとおり、ネットワーク移行マネージャ(「NMM」)モジュールの一実施形態によって自動的に実行される。
上記のとおり、少なくともいくつかの実施形態では、NMMモジュールの一実施形態が、移行元である第1のコンピュータネットワークの一部またはすべての計算ノードを、移行元のコンピュータネットワークから離れたところにある移行先の仮想コンピュータネットワークなど、別個の移行先である第2のコンピュータネットワークへと動的に移行することを自動的に簡便化する。いくつかのかかる実施形態では、NMMモジュールが、クライアントが使用する仮想コンピュータネットワークも提供するネットワークアクセス可能なサービスの一部である場合などに、NMMモジュールが移行先である第2のコンピュータネットワークと統合されているか、あるいは別の方法で関連付けられていてもよく、移行先である第2のコンピュータネットワークは、提供された仮想コンピュータネットワークの1つである。他の実施形態では、代わりに、NMMモジュールが、移行元である第1のコンピュータネットワークと統合されているかまたは別の方法で関連付けられていてもよく(例えば、第1のコンピュータネットワークが、かかるネットワークアクセス可能なサービスによって提供される仮想コンピュータネットワークである場合)、移行元および移行先のコンピュータネットワークのどちらとも関連付けられていなくてもよい(例えば、NMMモジュールが、動的なコンピュータネットワークの移行を簡便化する能力を提供する別個のサービスの一部である場合)。
加えて、少なくともいくつかの実施形態では、第1のコンピュータネットワークの使用中に、移行元である第1のコンピュータネットワークの一部またはすべての計算ノードを別個の移行先第2のコンピュータネットワークへと動的に移行することを簡便化することが、動的に移行している間に第1のコンピュータネットワークと第2のコンピュータネットワークとの間の対話を管理することを含む。具体的には、第1のコンピュータネットワークおよび第2のコンピュータネットワークの一方または両方にあるゲートウェイ装置は、第1のコンピュータネットワークと第2のコンピュータネットワークとの間の接続(例えば、VPN接続などプライベートおよび/または安全な接続)を維持し、かつ、第1のコンピュータネットワークと第2のコンピュータネットワークとの間の対話を管理するように構成されてもよい。例えば、第1のコンピュータネットワーク上の発信側の計算ノードが、以前は第1のコンピュータネットワークの一部であったが、第2のコンピュータネットワーク上の別個の代替計算ノードに移行した対象移行先計算ノードへのネットワーク通信を開始した場合、第1のコンピュータネットワークおよび第2のコンピュータネットワーク上のゲートウェイ装置は、発信側の計算ノードと移行先の代替計算ノードとに対して透過的な方法で第2のコンピュータネットワーク上の代替計算ノードに通信を転送するように対話してもよい。同様に、代替計算ノードによって送り返されるあらゆる応答通信は、転送された応答通信が第1のコンピュータネットワークの一部としての本来の対象移行先計算ノードから来たかのような方法で、ゲートウェイ装置を介して第1のコンピュータネットワーク上の発信側の計算ノードへと逆の方法で転送して戻される。この方法では、第2のコンピュータネットワーク上の移行した代替計算ノード上で実行されているソフトウェアプログラムは、代替計算ノードが第1のコンピュータネットワークにもはや物理的に取り付けられていないということを認識しない場合がある。1つの例示的な例として、かかるゲートウェイ装置は、各々がローカルエリアネットワーク(例えば、ネットワーキング層の2つのプロトコルを使用して単一のブロードキャストドメインの一部として一般に通信を管理する物理的または仮想ローカルエリアネットワーク)の一部であり、かつこれをサポートしていてもよく、第1のかかるローカルエリアネットワーク上のゲートウェイ装置は、リモート計算ノードのハードウェアアドレス(例えば、MACアドレス、すなわちメディアアクセスコントロールアドレス)を第1のローカルエリアネットワークに対するものと偽装することによって別の第2のローカルエリアネットワーク上のリモート計算ノードを表し、リモート計算ノードへと向けられた第1のローカルエリアネットワークからの通信を受信および処理する。加えて、ゲートウェイ装置は、(例えば、pingリクエストやSNMP(「シンプルネットワーク管理プロトコル」)クエリなどに応答するために、)コンピュータネットワークの計算ノードへの動的な移行を簡便化することの一部として、他の状況で他の動作を実行するようにさらに構成されてもよい。
一実施形態におけるかかるゲートウェイ装置の動作についてのさらなる詳細を伴う例示的な例として、移行元である第1のローカルエリアコンピュータネットワークの第1の計算ノードが、第1のコンピュータネットワークに対する拡張として動作するように構成されているリモートの移行先である第2のコンピュータネットワークに移行される状況を検討し、これは具体的には、第2のコンピュータネットワークの別個の第2の計算ノードが、第1のローカルエリアコンピュータネットワークの一部として第1の計算ノードを代替し、かつ第1の計算ノードによって以前に使用された第1のコンピュータネットワークの第1のネットワークアドレス(例えば、IPアドレス、すなわちインターネットプロトコルアドレス)を使用し始めるような移行を伴う。第1の計算ノードから第2の計算ノードへの動的な移行を簡便化することの一部として、第1のゲートウェイ装置が自らを第1のコンピュータネットワーク上の第1のネットワークアドレスと関連付けることによるなどのように、第1のコンピュータネットワークの一部である第1のゲートウェイ装置が、第1のコンピュータネットワーク上の他の計算ノードに対してリモートの第2の計算ノードを表すように構成されてもよい。例えば、第1のゲートウェイ装置は、第1のネットワークアドレスを含む無償ARP(「アドレス解決プロトコル」)メッセージを発行したり、あるいは第1のコンピュータネットワーク上の他の装置を更新して、第1のゲートウェイ装置を対象とする通信を第1のネットワークアドレスに転送したりしてもよい。続いて、第1のコンピュータネットワーク上の別の計算ノードが第1の計算ノードを対象とした第1のネットワークアドレスに通信を送ると、その通信は、第1のコンピュータネットワークを経て第1のゲートウェイ装置に向けられる。その後第1のゲートウェイ装置は、移行された第1の計算ノードに代わって第2の計算ノードへの配送のために、例えばルーターと同様の方法でリモートの第2のコンピュータネットワークへと通信を転送してもよい。かかる通信転送は、第1のゲートウェイ装置から転送された通信を受信する第2のコンピュータネットワーク上の第2のゲートウェイ装置によって簡便化されてもよく、第2のコンピュータネットワークを経てその通信をさらに転送する。さらに、少なくともいくつかの実施形態で、転送された通信を、ルーター装置で行われることになるのと同じ方法で改変しない(例えば、その通信の生存時間ホップ値を修正しない)ことによって、あるいは発信側の計算ノードや第1のコンピュータネットワークなどに対応する発信者のネットワークアドレスおよび/または発信者のハードウェアアドレスの偽装情報を使用して、転送された通信を第2のコンピュータネットワークを経て送ることによって、第1および第2のゲートウェイ装置が、第1および第2のコンピュータネットワークの計算ノードに対して透過的な方法で通信を転送してもよい。このようにして、第2の計算ノードには、転送された通信が、発信側の計算ノードから、両計算ノードが属する単一のローカルエリアコンピュータネットワークを介して入来するかのように認識される。
加えて、移行元である第1のコンピュータネットワークからリモートの移行先である第2のコンピュータネットワークへの計算ノードの移行は、さまざまな実施形態においてさまざまな方法で実行されてもよい。例えば、いくつかの実施形態では、かかる移行が行われるまで第2のコンピュータネットワークの1つもしくは複数の計算ノードが別法により使用されない場合などのように、第2のコンピュータネットワークは、第1のコンピュータネットワークの1つもしくは複数の計算ノードを代替する目的で各々利用可能な1つもしくは複数の計算ノードを移行前に含めるように構成されている物理的コンピュータネットワークであってもよい。他の実施形態では、仮想コンピュータネットワークが、クライアントに提供される仮想コンピュータネットワークで使用する多数の利用可能な計算ノードを提供するネットワークアクセス可能なサービスによって提供されている場合などのように、第2のコンピュータネットワークが、第1のコンピュータネットワーク計算ノードの移行時に計算ノードが動的に追加され得る仮想コンピュータネットワークであってもよい。加えて、いくつかの実施形態および状況では、移行完了後に新しい物理計算システムが同じ論理計算ノードとしての役割を果たすように、計算ノードの移行が、計算ノードで実行されているソフトウェアプログラムおよび/または実行中のソフトウェアプログラムによって使用されたデータのうちの一部もしくは全部を、(例えば、新しい計算システム上のそれらのソフトウェアプログラムの別コピーを実行したり、データを新しい計算システムにコピーしたりするなどにより、)異なる地理的位置にある新しい物理計算システムに移動することを含んでもよく、一方で、他の実施形態では、移行する計算ノードが異なる地理的位置へと物理的に移行され、新しいコンピュータネットワークに取り付けられてもよい。加えて、計算ノードの移行が異なる位置での新しい計算システムの使用を伴う場合には、いくつかの実施形態で、NMMモジュールが移行を簡便化するための何らかの変更(例えば、通信の転送を伴うゲートウェイ装置に対する何らかの変更)を開始する前に、新しい計算システムが移行中の計算ノードの代替計算ノードとして動作するように構成されてもよく、それにより構成されたゲートウェイ装置が、即座のあるいは実質的に即座の様態で代替計算ノードへの通信の転送を開始するようにしてもよい。他の実施形態および状況では、代替計算ノードが移行開始後の一定期間(例えば、秒、分、時間など)にわたって利用不可となってもよく、その場合には、ゲートウェイ装置が、1つもしくは複数のタイプの処理を実行して移行を簡便化してもよい(例えば、代替計算ノードがそれらを受信する用意ができ、通信が配送されなかったことを示すエラーを発行して、後で通信の再送をトリガーするまで、計算ノードに送られたキューの通信が移行されるなど)。
さらに、移行する特定の計算ノードの判断が、様々な方法で行われてもよい。例えば、いくつかの実施形態では、計算ノードが移行する、移行元のコンピュータネットワークと関連付けられたユーザーが、移行する特定の計算ノードを選択し、その後その選択をNMMモジュールに通知してもよく、さらに、いくつかのかかる実施形態で、計算ノードの移行に関わる処理を、(例えばNMMモジュールにその選択を通知する前に)手動で実行してもよい。他の実施形態では、NMMモジュールは、(例えば、代替計算ノードをプロビジョニングする、ソフトウェアプログラムを実行する、データコピーするなどして、)移行する計算ノードの自動選択に、および/または選択された計算ノードの自動移行に関与してもよい。例えば、少なくともいくつかの実施形態で、ユーザーおよび/またはNMMモジュールが、(例えば、移行する計算ノードのサブセットを選択する、計算ノードのうちの一部もしくは全部を移行する順序を選択するなどのために、)移行する特定の計算ノードを評価および選択するに当たって使用する基準を画定してもよい。かかる既定基準は、(例えば、1つもしくは複数の領域で過剰または過少に利用されている計算ノードを特定するために)ユーザーが指定した、および/または自動的に学習したしきい値または他のタイプの制約を使用することによるなどのように、例えば、移行目的で選択された計算ノード、および/または移行された計算ノードの代替計算ノードとして使用される別個の計算ノードの現在のステータスまたは他の特徴に基づいてもよい。加えて、かかる基準は、現在の計算ノードの稼働基準および/または他の要因を含め、さまざまな要因のうちの1つもしくは複数に関連してもよい。例えば、NMMモジュールが、その既定基準で使用してもよい要因の非排他的にリストは、各計算ノードの可用度、各計算ノードによって受信および/または処理されたリクエストの量、各計算ノードのネットワーク利用度、各計算ノードのネットワーク遅延度、各計算ノードのリクエストに応答する際の遅延度、各計算ノードのプロセッサ利用度、各計算ノードのメモリ利用度、各計算ノードのI/O(「入力/出力」)帯域幅利用度、各計算ノードと現在対話しているか、あるいは別の方法で各計算ノードを使用している他の計算ノード(またはそれらの計算ノードのソフトウェアアプリケーション)の数、現時点および/または将来時点における1つもしくは複数のアクティビティのために1つもしくは複数の計算ノードを使用することと関連付けられた金銭的負担、現時点および/または将来時点における1つもしくは複数のアクティビティのために1つもしくは複数の計算ノードを使用することと関連付けられた非金銭的負担(金銭的用語で表されてもよい環境負担など)、各計算ノードの要因に対する、1つもしくは複数の他の要因に対する現在および/または将来需要に関するユーザー指定の予測された度合い、各計算ノードの要因のうち、1つもしくは複数の他の要因に対する現在および/または将来需要に関する、自動的に学習されたか、もしくは別の方法により予測された度合いなど、のうちの1つもしくは複数を含む。加えて、NMMモジュールは、様々な実施形態において、例えば様々な計算ノードとネットワーク動作特性とをモニタリングするなど様々な方法で、かかる基準および他の要因に関する現在値および他の情報を収集するか、または他の方法で取得してもよい。
様々な実施形態において、特定の計算ノードを移行するための判断が様々な理由および様々な方法で行われてもよい。例えば、いくつかの実施形態では、計算ノードの移行が、代替計算ノードによって、および/またはその代替計算ノードが属する移行先のコンピュータネットワークによって提供される強化されたレベルのサービスまたは能力を取得する目的で、例えば有料で開始されてもよい。一例を挙げると、いくつかの実施形態で、移行先のコンピュータネットワークが、異なるレベルのサービス品質や異なる計算ノードでの異なるタイプの能力など差別化された能力を、(例えば有料で)提供してもよく、特定の代替計算ノードが、代替計算ノードのかかる能力に基づいて(例えば、ユーザーリクエストまたは選択に基づいて、移行元のコンピュータネットワークなどと関連付けられたユーザーまたはその他のエンティティに対するNMMモジュールによる自動提案に基づいて、など)選択されてもよい。他の実施形態では、計算ノードが、移行元のコンピュータネットワーク全体の移行の一部として移行されてもよく、計算ノードの移行順序が他の方法(例えば、ランダムな方法や、業務上の検討事項に基づいて関連ユーザーによって)で選択されてもよい。
上記のとおり、NMMモジュールが、リモートネットワークにアクセス可能なサービスによって提供されるリモートコンピュータネットワークまたは他の計算ノードを使用して、移行元である第1のコンピュータネットワークの一部またはすべての計算ノードの動的な移行を簡便化するように構成されてもよい。かかるリモートコンピュータネットワークまたは他のリモート計算ノードへのアクセスを取得するために、少なくともいくつかの実施形態で、ユーザー(またはユーザーに代わるNMMモジュール)が、自らに代わってサービスが提供するコンピュータネットワークをユーザーが構成できるようにするリモートネットワークにアクセス可能なサービスとパブリックネットワークを経て対話してもよく、ここで、構成されたコンピュータネットワークは、ネットワークアクセス可能なサービスによって、あるいはそのサービスの制御下で維持される複数の計算ノードを含む。かかるコンピュータネットワークを構成した後、ユーザーおよび/またはNMMモジュールは、1つもしくは複数の遠隔地から、ネットワークアクセス可能なサービスによって提供されているコンピュータネットワークと対話してもよく、提供されたコンピュータネットワークの計算ノードでプログラムを実行し、提供されたコンピュータネットワークに追加的な計算ノードを動的に追加するなどしてもよい。少なくともいくつかの実施形態では、ネットワークアクセス可能なサービスによって提供されたコンピュータネットワークのうちの少なくとも一部は、提供されたコンピュータネットワークが代わりに作成および構成された、ネットワークアクセス可能なサービスのユーザーによって(あるいは、アクセスがそのために明示的に構成されている他者によって)のみ各々アクセス可能であるプライベートコンピュータネットワークであってもよい。例えば、ネットワークアクセス可能なサービスは、クライアントに提供されたコンピュータネットワークへのプライベートアクセスを、クライアントの1つもしくは複数のリモート計算システムと提供されたコンピュータネットワークとの間での安全なVPN(「仮想プライベートネットワーク」)接続または他のプライベート接続を可能にするなどして、ネットワークアクセス可能なサービスのクライアントであるユーザーに提供してもよく、あるいは、他のセキュリティおよび/または認証技法を使用して、クライアントが、提供されたコンピュータネットワークとプライベートかつ/または安全な方法でリモートで対話できるようにしてもよい。加えて、少なくともいくつかの実施形態で、ネットワークアクセス可能なサービスによって提供されたコンピュータネットワークのうちの少なくとも一部が、クライアントの既存のリモートプライベートコンピュータネットワークに対するプライベートコンピュータネットワーク拡張(例えば、企業エンティティであるクライアントのリモート企業ネットワークなど)などのような、クライアントの既存のコンピュータネットワークに対する拡張となるようにクライアントによって各々作成されかつ構成されている。さらに、少なくともいくつかの実施形態および状況で、ネットワークアクセス可能なサービスによって提供されたコンピュータネットワークが、仮想コンピュータネットワークであってもよく、他の実施形態では、提供されたコンピュータネットワークが、物理的に接続されたコンピュータネットワークであってもよい。ネットワークアクセス可能なサービスによって提供されたリモートコンピュータネットワークの確立と使用とに関連したさらなる詳細を以下に示す。
様々な提供された能力を実装するための記載された技法を使用することにより、さまざまな状況でさまざまな利点が生まれる。例えば、いくつかの状況では、ユーザーまたはその他のエンティティが、1つもしくは複数の地理的位置に複数の計算ノードを有する1つもしくは複数の物理的ネットワークを維持してもよいが、それらの計算ノードのうちの一部もしくは全部を、(保守またはアップグレードを実行するなどの目的で)一時的に遠隔地に移行し、その後、一時期間の終了後に1つもしくは複数の物理的ネットワークにその移行して逆に戻す必要がある。他の状況では、ユーザーまたはその他のエンティティが、1つもしくは複数の地理的位置にある1つもしくは複数の物理的ネットワークの一部またはすべての計算ノードを、(例えば、コストおよび/または能力上の利点を得るなどの目的で)遠隔地に恒久的に移行したい場合もある。さらに、1つもしくは複数の地理的位置にある1つもしくは複数の物理的ネットワークの一部またはすべての計算ノードを遠隔地へと一時的または恒久的に移行することは、迅速に(例えば、数分あるいは数時間の手段にわたる)、あるいはより徐々に(例えば、数日、数週間、あるいは数ヶ月の期間にわたる)様々な方法で実行されてもよく、かかる移行は、移行する物理的ネットワークの1つもしくは複数の計算ノードを繰り返し選択することと、別法によりそれらの選択された計算ノードに送信されていたであろう新しい通信を、代わりにリモート仮想ネットワークの対応する代替計算ノードに送信されるように方向付けることと、任意選択で、選択された計算ノードの使用を、直ちに、あるいは指定された能力(例えば進行中のセッションや、移行目的で選択される前に関与していた他のネットワーク対話など)の処理が終わった後に停止することを含んでもよい。記載された技法および提供された能力が他にもさまざまな方法でさらに使用される場合があることが理解されよう。
図1Aは、記載された技法が、コンピュータネットワーク間でのコンピュータネットワークの計算ノードの動的な移行を簡便化するための能力を提供する目的で使用されてもよい状況の例を図示するネットワークダイアグラムである。本実施例では、動的な移行は、クライアントの既存のプライベートコンピュータネットワークに対するネットワーク拡張として作成および構成されるリモートの仮想コンピュータネットワークなど、クライアントが構成可能なネットワークを提供する例示的なネットワークアクセス可能なサービスから、リモートの仮想コンピュータネットワークである移行先のコンピュータネットワークを使用する。ただし他の実施形態では、動的な移行が(例えば、別個のコンピュータネットワークの一部であるなど、ユーザーの他の利用可能な計算ノードを使用して)他の方法で実行されてもよい。
図1Aに示された例では、例示的な構成可能なネットワークサービス(「CNS」)105が、CNS 105によってクライアントに提供される仮想コンピュータネットワークにクライアントがアクセスしかつこれを使用できるようにする1つもしくは複数のパブリックネットワーク100を経て(インターネットなどを経て、)クライアント(図示せず)に機能性を提供し、これにより、リモートクライアントは、CNS 105を使用して、それらのリモートの既存プライベートコンピュータネットワーク130の能力を動的に改変し、パブリックネットワーク100を経てクラウド計算技法を使用する新規に提供された仮想コンピュータネットワーク120へと拡張することができる。加えて図示例では、以下にさらに詳しく記載されているとおり、1つもしくは複数のNMMモジュール125が、CNS 105よって提供された機能性をさらに使用して、動的なコンピュータネットワーク計算ノード移行機能性を簡便化する。例えば、CNS 105により、提供されたコンピュータネットワークを動的に改変する(例えば、提供されたコンピュータネットワークから計算ノードを追加したり削除したりする)ことができる場合や、特定の提供されたコンピュータネットワークに、NMMロードバランサモジュール125によって代替計算ノードとして一時的または恒久的に使用することが可能である計算ノードがすでに含まれている場合などには、NMMモジュール125よって提供されたかかる動的なコンピュータネットワーク計算ノード移行機能性が、CNS 105によって簡便化されてもよい。
具体的には、図1Aでは、いくつかのクライアントが、パブリックネットワーク100を経てCNS 105のマネージャモジュール110と対話して、リモートの既存クライアントプライベートネットワーク130に対する様々なプライベートコンピュータネットワーク拡張120を作成および構成し、コンピュータネットワーク拡張120のうちの少なくとも一部は、パブリックネットワーク100を経て(例えば、相互接続100aと100bとを経て確立されたVPN接続を介して、あるいは他のタイプのプライベート相互接続を介して)1つもしくは複数の対応するクライアントプライベートネットワーク130からのプライベートアクセスを可能にするように構成されている。本実施例では、提供されたコンピュータネットワーク120の各々が、(例えば、CNS 105よって提供されたいくつかの計算ノードからの)1つもしくは複数の計算ノード124と、対応するリモートのクライアントプライベートネットワーク130との対話を簡便化するためにゲートウェイ装置122としての役割を果たすように構成されている少なくとも1つの計算装置と、を含む。例示的なリモートのクライアントプライベートネットワーク130の各々も同様に、複数の計算ノード134と、対応する提供されれたコンピュータネットワーク120との対話を簡便化する1つもしくは複数のゲートウェイ装置132と、を含む。かかるゲートウェイ装置132は、例えば、対応する提供されたコンピュータネットワーク120をクライアントプライベートネットワーク130に対する拡張として確立するときに、(例えば、CNS 105および/またはNMMモジュール125の制御下で)クライアントプライベートネットワーク130に追加されてもよく、あるいは、(例えば、計算ノード134がパブリックネットワーク100と行った他の対話を管理するために)以前にクライアントプライベートネットワーク130の一部であってもよく、対応する提供されたコンピュータネットワーク120との更なる対話を実行するように構成されていてもよい。加えて、本実施形態では、マネージャモジュール110は、CNS 105の他の様々なモジュール(図示せず)および様々な計算ノードと、CNS 105によってプライベートコンピュータネットワーク拡張120を提供する目的で使用されるネットワーキング装置(図示せず)と連動するなどして、CNS 105の機能性をリモートクライアントに提供するのを支援する。少なくともいくつかの実施形態では、CNSマネージャモジュール110は、CNS 105の1つもしくは複数の計算システム上で実行してよく、リモート計算システムがプログラム的にモジュール110と対話して、(例えば、プライベートネットワーク拡張120を作成し、構成し、かつ/または使用を開始するなどの目的で)クライアントに代わってCNS 105の一部またはすべての機能性にアクセスできるようにする1つもしくは複数のAPI(「アプリケーションプログラミングインタフェース」)を提供してもよい。加えて、少なくともいくつかの実施形態では、クライアントは、代わりに(例えば、モジュール110よって提供されたグラフィカルユーザーインタフェースを介して)モジュール110と手動で対話して、一部またはすべてのかかる動作を実行してもよい。
NMMモジュール125の各々は、それらの関連付けられたクライアントプライベートネットワークの1つもしくは複数の計算ノード134の、関連付けられた提供されたコンピュータネットワーク120の1つもしくは複数の対応する代替計算ノード124への動的かつ段階的に移行を簡便化するように、クライアントプライベートネットワーク130のうちの1つもしくは複数と関連付けてもよい。上記のとおり、クライアントプライベートネットワーク130のうちの1つの計算ノードが、関連付けられた提供されたコンピュータネットワーク120にある代替計算ノードに移行するときに、関連付けられたNMMモジュール125は、移行を簡便化する様々な行動をとってもよい。例えば、NMMモジュール125は、コンピュータネットワーク130および120のゲートウェイ装置132および122を、それぞれ、移行された計算ノードのネットワークアドレスに送信される通信を管理するように構成してもよく、これにより、構成されたゲートウェイ装置132は、計算ノード134のうちの1つからそのネットワークアドレスへの通信を、構成されたゲートウェイ装置122へと転送し、代替計算ノード124へとさらに転送し、その一方で、計算ノード124のうちの別の1つからそのネットワークアドレスへの通信は、構成されたゲートウェイ装置122および132による一切の行動なしに代替計算ノード124に直接転送される。
さらに、いくつかの実施形態で、NMMモジュール125は、計算ノード134のうちの一部もしくは全部と対話して、移行する計算ノード134を選択するに当たって使用するそれらの動作に関する現在のステータス情報を取得したり、かつ/または、モジュール110を介して提供されたコンピュータネットワーク120と対話して、代替計算ノード124の動作を追加、プロビジョニング、および/または開始したりするなどして、移行する計算ノード134を選択すること、および/または対応する代替ノード124への移行を実行することに関する追加アクティビティを自動的に実行してもよい。さらに一般的には、クライアントプライベートネットワーク130の一部またはすべての計算ノード134から、対応する提供されたコンピュータネットワーク120への動的な移行を簡便化することの一部として、NMMモジュール125は、CNS 105との対話をさらに実行して、クライアントプライベートネットワーク130から計算ノード134を移行するための移行先のコンピュータネットワークとして使用される提供されたコンピュータネットワーク120の作成を開始すること、
代替計算ノードとして使用するなどの目的で、クライアントプライベートネットワーク130のための既存の提供されたコンピュータネットワーク120に1つもしくは複数の計算ノードを追加することを開始すること、
既存の提供されたコンピュータネットワーク120のうちの1つもしくは複数の既存の計算ノードをクライアントプライベートネットワーク130の代替計算ノードとして使用することを開始することなど、のうちの1つもしくは複数の処理を実施してもよい。いくつかの実施形態では、移行された各々の計算ノード134は、別個の計算ノード124によって代替され、一方他の実施形態では、単一の計算ノード124は、複数の移行された計算ノード134の代替計算ノードとしての役割を果たしてもよく、かつ/または単一の移行された計算ノード134が、複数の対応する代替計算ノード124を有してもよい。
加えて、いくつかの実施形態で、NMMモジュール125は、クライアントプライベートネットワーク130から、提供されたコンピュータネットワーク120へと一時的に移行された計算ノード124の逆移行として、あるいは、仮想コンピュータネットワーク120から、物理的に提供されたクライアントネットワーク130への永続的な一方向の移行として、提供されたコンピュータネットワーク120の計算ノード124をクライアントプライベートネットワーク130の代替計算ノード134へと動的に移行するのをさらに簡便化してもよい。同様に、いくつかの実施形態で、NMMモジュール125は、提供されたコンピュータネットワーク120の計算ノード124の、別の提供されたコンピュータネットワーク120の代替計算ノード124へ動的な移行、および/またはクライアントプライベートコンピュータネットワーク130の計算ノード134の、別のクライアントプライベートコンピュータネットワーク130の代替計算ノード134への動的な移行をさらに簡便化してもよい。
本実施例では、NMMモジュール125が、接続145を介してパブリックネットワーク100経由で任意選択でアクセス可能であるものとして図示されているが、NMMモジュール125のうちの一部もしくは全部が、代わりに特定の関連付けられたクライアントプライベートネットワーク130の一部として、および/またはCNS 105の一部として各々位置してもよい。例えば、特定のクライアントプライベートネットワーク130の一部であるNMMモジュール125が、そのクライアントプライベートネットワークを提供するエンティティによって取得およびインストールされるのに対し、CNS 105によって提供されるNMMロードバランサモジュール125は、動的な移行に使用される提供されたコンピュータネットワーク120のうちの1つもしくは複数をサポートするように構成されていてもよく、いくつかの状況では、それら1つもしくは複数の提供されたコンピュータネットワーク120の各々の一部であるように構成されてもよい。
図1Aの実施例では、パブリックネットワーク100が、例えば、インターネットなど別個の当事者によって運用されている可能性がある、連結されたネットワークの公的にアクセス可能なネットワークであってもよい。リモートのクライアントプライベートネットワーク130は、権限を持たないユーザーには部分的あるいは全面的にアクセス不可であり、かつクライアントの計算システムおよび/または他のネットワーク接続された装置を含む企業ネットワークまたは他のプライベートネットワーク(家庭や大学など)など、1つもしくは複数の既存のプライベートネットワークを各々含んでもよい。図示例では、提供されたネットワーク拡張120は複数の計算ノード124を各々含み、そのうちの少なくとも一部はCNS 105の制御によって、あるいはCNS 105の制御下で提供され、提供されたネットワーク拡張120の各々は、提供先クライアントによって様々な方法で構成されてもよい。図示された実施形態におけるネットワーク拡張120の各々は、自らを作成したクライアントによってのみアクセス可能であるプライベートコンピュータネットワークであってもよいが、他の実施形態では、CNS 105よってクライアントに提供された少なくともいくつかのコンピュータネットワークは、公的にアクセス可能であってもよく、かつ/または他の既存のコンピュータネットワークに対する拡張ではないスタンドアロンのコンピュータネットワークであってもよい。同様に、本実施例における提供されたコンピュータネットワーク120は、プライベートネットワークであるリモートクライアントコンピュータネットワーク130に対する拡張であるのに対し、他の実施形態では、提供されたコンピュータネットワーク120は、プライベートネットワークでないクライアントコンピュータネットワーク130に対する拡張であってもよい。
例えば、クライアントに提供されたリモートクライアントプライベートコンピュータネットワーク130と対応するプライベートコンピュータネットワーク拡張120との間でのプライベートアクセスは、それらの間でVPN接続または他のプライベート接続を確立するなどして、プライベートな方法でパブリックネットワーク100を経た相互通信を許可する様々な方法で可能であってよい。例えば、CNS 105は、そのゲートウェイ装置122および/または他の計算システム上での適切な構成を自動的に実行して、CNS 105(ソフトウェアおよび/またはハードウェアVPNメカニズムなど)によってホストされた1つもしくは複数のVPNメカニズムを自動的に構成するなどして、クライアントの特定のプライベートネットワーク拡張120へのVPNアクセスを可能にしてもよく、かつ/または、クライアントに適当な構成情報(証明書、アクセスポイント、電子配送によるソフトウェアVPNプログラム、物理的な配達によるハードウェアVPN装置、および/または他のパラメータ)を自動的に提供して、リモートのクライアントプライベートネットワーク130でホストされたVPNメカニズムがVPNアクセスを確立できるようにしてもよい。かかるVPN接続は、対応するゲートウェイ装置122と132との間で直接確立されてもよく、あるいは、代わりに、かかるゲートウェイ装置が、他の計算システムによって維持されるVPN接続を使用してもよい。VPNアクセスが適切に有効化および/または構成された後、IPsec(「インターネットプロトコルセキュリティ」)または他の適当な通信技術を使用してクライアントによって開始されるなどのように、リモートのクライアントプライベートネットワークとプライベートネットワーク拡張との間でVPN接続が確立されてもよい。例えば、いくつかの実施形態では、IPsecベースのVPN接続の代わりなどのように、データ送信のためにMPL(「マルチプロトコルラベルスイッチング」)を使用するネットワークとの、あるいはそのネットワーク間で、VPN接続または他のプライベート接続が確立されてもよい。
加えて、図示された実施形態では、リモート計算システムに対して、リモートのクライアントプライベートネットワーク130上の計算ノード134などを含む、パブリックネットワーク100を経て、様々なネットワークアクセスが可能なリモートのリソースサービス140が利用可能である。リソースサービス140は、リソースサービス140のうちの少なくとも一部が様々な種類のコンピュータ関連リソースへのアクセスを伴うリモート計算ノードを提供するなどの目的で、リモート計算ノードに様々な機能性を提供してもよい。さらに、CNS 105によって提供されるプライベートネットワーク拡張120のうちの少なくとも一部が、リモートのリソースサービス140のうちの少なくとも一部へのアクセスを提供するように構成されてもよく、その提供されたアクセスは、任意選択で、プライベートネットワーク拡張120の一部である仮想接続115を介してローカルに提供されるものとしてプライベートネットワーク拡張120の計算ノード124に認識される。ただし、リモートのリソースサービス140との実際の通信は、パブリックネットワーク100を経て(例えば、相互接続100bおよび100cを介して)行われてもよい。加えて、少なくともいくつかの実施形態では、ソフトウェアプログラムおよび/または他のデータを動的な移行の一部として一時的に記憶するなどの目的で、NMMモジュール125は、リソースサービス140の1つもしくは複数を計算ノードの動的な移行の一部として使用するように構成されてもよい。
提供されたネットワーク拡張120は、クライアントによって様々な方法で各々構成されてもよい。例えば、少なくともいくつかの実施形態で、CNS 105は、クライアントに提供されるネットワーク拡張と併用する目的で利用可能な複数の計算ノードを提供し、これにより、各々の提供されたネットワーク拡張120は、提供されたネットワーク拡張の一部としての使用に特化した、クライアントが構成したある数量の複数のかかる計算ノードを含んでもよい。特に、クライアントは、(例えば、CNS 105よって提供されたAPIとの1つもしくは複数のプログラム的な対話を介して)モジュール110と対話して、ある数量の計算ノードがクライアントに提供されたコンピュータネットワークに最初に含まれるように構成してもよい。加えて、少なくともいくつかのかかる実施形態では、提供されたコンピュータネットワークが(例えば、特定の計算ノード上で特定のプログラムの実行を開始または終了するよう指示することによって)クライアントによってすでに使用された後などに、(例えば、CNS 105よって提供されたAPIを有する1つもしくは複数のプログラム的な対話を介して)計算ノードを後で動的に追加したり、クライアントの提供されたコンピュータネットワークから削除したりしてもよい。さらに、CNS 105は、少なくともいくつかの実施形態で、例えば、様々な性能特性(例えば、プロセッサ速度、利用可能なメモリ、利用可能な記憶装置)および/または他の能力を有する計算ノードなどのような、複数の異なるタイプの計算ノードを提供してもよい。その場合には、少なくともいくつかのかかる実施形態で、クライアントが、クライアントの提供されたコンピュータネットワークに含まれる計算ノードのタイプを指定してもよい。加えて、少なくともいくつかの実施形態で、クライアントが、(例えば、CNS 105よって提供されたAPIとの1つもしくは複数のプログラム的な対話を介して)モジュール110と対話して、クライアントの提供されたコンピュータネットワークのネットワークアドレスを構成してもよく、提供されたコンピュータネットワークがクライアントによってすでに使用された後などに、少なくともいくつかのかかる実施形態でクライアントの提供されたコンピュータネットワークのネットワークアドレスが後で動的に追加され、削除され、あるいは改変されてもよい。加えて、少なくともいくつかの実施形態で、クライアントが、(例えば、CNS 105よって提供されたAPIとの1つもしくは複数のプログラム的な対話を介して)モジュール110と対話して、クライアントの提供されたコンピュータネットワークのネットワークトポロジ情報を構成してもよく、少なくともいくつかのかかる実施形態で、例えば、提供されたコンピュータネットワークがクライアントによってすでに使用された後などに、提供されたコンピュータネットワークに対して、かかるネットワークトポロジ情報が後で動的に改変されてもよい。さらに、少なくともいくつかの実施形態で、クライアントが、(例えば、他の計算システム135および/またはコンピュータ関連リソースサービス140へのアクセスを制限または可能にするなどの目的でCNS 105よって提供されたAPIとの1つもしくは複数のプログラム的な対話を介して)モジュール110と対話して、クライアントの提供されたコンピュータネットワークの様々なネットワークアクセス制約情報を構成してもよく、少なくともいくつかのかかる実施形態で、例えば、提供されたコンピュータネットワークがクライアントによってすでに使用された後などに、提供されたコンピュータネットワークに対して、かかるネットワークアクセス制約情報が後で動的に修正されてもよい。少なくともいくつかの実施形態では、NMMモジュール125が、それらのクライアントのクライアントプライベートネットワーク130の一部またはすべての計算ノードの動的な移行を簡便化するなどの目的で、モジュール110と対話して、提供されたコンピュータネットワーク120のかかる構成のうちの一部もしくは全部を特定のクライアントに代わって実行するよう同様に構成されてもよい。
様々な実施形態で、提供されたコンピュータネットワーク120のネットワークアドレスが様々な方法で構成されてもよい。例えば、現在構成中である特定の提供されたコンピュータネットワークが既存のリモートクライアントコンピュータネットワークに対する拡張である場合には、指定されたネットワークアドレスが、提供されたコンピュータネットワークの計算ノードに対して使用されるように、クライアントが、1つもしくは複数のアドレス範囲(例えば、クラスレスインタードメインルーティング(「CIDR」)アドレスブロック)または既存のリモートクライアントコンピュータネットワークによって使用されるネットワークアドレスのサブセットである他のグループのネットワークアドレスを指定してもよい。かかる構成されたネットワークアドレスは、いくつかの状況で、パブリックネットワーク100上の計算システムから直接アドレス指定可能でない、仮想あるいはプライベートのネットワークアドレスであってもよく(例えば、既存のリモートクライアントコンピュータネットワークおよび対応する提供されたネットワーク拡張が、クライアントコンピュータネットワークおよびその提供されたネットワーク拡張を対象とするネットワークアドレス変換技法および/または仮想ネットワーキング技法を使用する場合)、一方、他の状況では、構成されたネットワークアドレスのうちの少なくとも一部が、パブリックネットワーク100上の計算システムから直接アドレス指定可能であるパブリックネットワークアドレス(例えば、静的インターネット経路指定可能なIPアドレスであるか、あるいは他の不変のネットワークアドレスであるパブリックネットワークアドレスなど)であってもよい。他の実施形態では、CNS 105が、CNS 105によって利用可能なネットワークアドレスに基づく、提供されたコンピュータネットワークに対応するリモートの既存のコンピュータネットワークによって使用される関連ネットワークアドレスであるネットワークアドレスを選択することなどに基づく、などのように、少なくともいくつかの提供されたコンピュータネットワーク拡張のうちの少なくともいくつかの計算ノードに対して使用されるネットワークアドレスを自動的に選択してもよい。さらに、CNS 105によって提供されたコンピュータネットワークのうちの2つ以上が、提供されたコンピュータネットワーク間の相互通信を可能にするように構成されている場合(例えば、単一組織内の異なる部門またはグループなどのように、2つ以上のコンピュータネットワークが単一の顧客に提供された場合、2つ以上のコンピュータネットワークが2つ以上の別個の顧客に提供された場合、など)、CNS 105は、いくつかの実施形態で、様々な提供されたコンピュータネットワークに対して異なるネットワークアドレスを使用することなどによって、それらの提供されたコンピュータネットワークのうちの少なくともいくつかの計算ノードで使用されるネットワークアドレスを自動的に選択して相互通信を簡便化してもよい。加えて、CNS 105が基盤ネットワーク上のオーバーレイネットワークを使用するなどして(あるいは、移行された計算ノード134によって以前に使用されたネットワークアドレスを代替計算ノードのために複製するなどの目的で、提供されたコンピュータネットワーク120の特定の計算ノード124で)仮想ネットワークをクライアントに提供する少なくともいくつかの実施形態で、各クライアントは、複数のクライアントがそれぞれの提供されたコンピュータネットワークに対して同一または重複するネットワークアドレスを指定する場合であっても、それらの提供されたコンピュータネットワークで使用されるいかなるネットワークアドレスも指定できてもよく、かかる実施形態では、CNS 105が、クライアントごとに別個にネットワークアドレスを管理し、これにより、第1のクライアントは、第1のクライアントの提供されたコンピュータネットワークの特定の指定されたネットワークアドレスと関連付けられた第1の計算ノードを有してもよく、一方、別個の第2のクライアントは、第2のクライアントの提供されたコンピュータネットワークの同じ特定の指定されたネットワークアドレスと関連付けられた別個の第2の計算ノードを有してもよい。提供されたコンピュータネットワークに対してネットワークアドレスが設定されるか、あるいは別の方法で確定されると、CNS 105は、そのネットワークアドレスを、提供されたコンピュータネットワーク用に選択された様々な計算ノードに、DHCP(「動的ホスト構成プロトコル」)や、ネットワークアドレスを動的に割り当てるための他の技法などを使用してランダムな方法で割り当ててもよい。
様々な実施形態において、提供されたコンピュータネットワークに対して、様々な方法で構成されてもよい。例えば、クライアントは、特定のタイプのネットワーキング装置(例えばルーター、スイッチなど)および/または他のネットワーク装置またはノード(例えばロードバランサ、ファイアウォール、プロキシ、ネットワーク記憶装置、プリンタなど)を、提供されたコンピュータネットワークの一部となるように指定してもよく、かつ/または、提供されたコンピュータネットワークの計算ノードのサブセットをまとめるか、あるいは別法で共通の相互通信特性(例えば、相互通信がフィルタリングされないサブネットの一部であり、かつ/または特定のネットワーキング装置と関連付けられている計算ノードの特定のサブセット、NMMロードバランサモジュールによって管理されるグループの一部である計算ノードの特定のサブセットなど)を共有するように指定することであってもよい。かかる実施形態では、以下にさらに詳しく述べるとおり、かかるネットワーキング装置を物理的に提供することによって、あるいは別法によりかかるネットワーキング装置を物理的に提供することなく、かかる機能性を仮想的に提供することによって、指定されたネットワーキング装置の機能性が、特定の提供されたコンピュータネットワーク120のCNS 105によって提供されてもよい。かかる方法では、クライアントプライベートネットワーク130全体が、対応する提供されたコンピュータネットワーク120に動的かつ段階的に移行されたときに、CNS 105は、クライアントプライベートネットワーク130のネットワーキング装置および計算ノードの移行を可能にして、これにより、ネットワークの移行全体が完了した後、クライアントプライベートネットワーク130のすべてがシャットダウンしてもよい。
加えて、提供されたコンピュータネットワーク向けの指定された構成情報は、少なくともいくつかの実施形態で、ネットワーキング装置および/または計算装置のグループ間のルーティング情報または他の相互接続情報を含んでもよい。さらに、少なくともいくつかの実施形態で、CNS 105は、複数の地理的位置(例えば、複数の地理的に分散したデータセンターなど)で利用可能な計算ノードを提供してもよく、クライアントによって指定された提供されたコンピュータネットワークの構成情報が、(例えば、複数の地理的位置に配置させることによって、提供されたコンピュータネットワークの計算ノード間のフォールトトレランスを提供するために)提供されたコンピュータネットワークの計算ノードが配置される1つもしくは複数の地理的位置をさらに示してもよく、かつ/または、1つもしくは複数のかかる地理的位置を選択するためにCNS 105によって使用される、提供されたコンピュータネットワークの計算ノードを相互運用する方法についての選好または要件に関する情報(例えば、計算ノードの相互通信用のための最小あるいは最大ネットワーク遅延または帯域幅、計算ノード間の最小または最大ネットワーク近接性、計算ノード間の最小または最大地理的近接性、かかるすべての地理的位置で利用できるとは限らない特定のリソースまたは機能性へのローカルアクセスを有すること、クライアントのリモートコンピュータネットワークおよび/またはリモートのリソースサービスなど、他の外部計算システムとの相対的な指定位置を有すること、これらの計算ノードとのデータの受け渡しに関わるコストなどのような、特定の計算ノードの使用および/または特定の計算ノードとの特定のタイプの対話を取得するためのコストに基づいた制約または他の選好など)を別の方法で提供してもよい。
他でさらに詳しく述べるとおり、少なくともいくつかの実施形態で、提供されたコンピュータネットワークの計算ノード間の相互接続および相互通信は、CNS 105の基底の基盤ネットワークを使用して管理され、その場合には、かかる少なくともいくつかの実施形態で、設定されたネットワークトポロジ情報のうちの一部もしくは全部が、CNS 105 の基底の基盤ネットワークおよび対応するモジュールを使用してシミュレーションされてもよい。例えば、CNS 105によって提供された計算ノードの各々が、その関連付けられた計算ノードへのおよびその関連付けられた計算ノードからの通信を管理するCNS 105のノード通信マネージャモジュール(図示せず)と関連付けられていてもよい。その場合には、例えばファイアウォール装置は、計算ノードの関連付けられた通信マネージャモジュールを使用して、1つもしくは複数のシミュレーションされたファイアウォール装置に準拠した方法でその計算ノードから、および/またはその計算ノードへの通信を禁止する、あるいは別の方法で取り扱いをして、シミュレーションされてもよい。かかるノード通信マネージャモジュールは、計算ノード間で相互通信を行う方法および相互通信を行うかどうかとを制御することによって、ならびに計算ノードからの情報リクエスト(ARPリクエストなど)に対して適当な応答情報で応答することによって、ルーターとサブネットとを同様にシミュレーションしてもよい。CNS 105の1つもしくは複数の外部通信マネージャモジュール(図示せず)は、ファイアウォール装置を同様にシミュレーションし、指定されたネットワークアクセス制約を実施し、かつリモートのリソースサービスの構成されたアクセスメカニズムとリモートクライアントプライベートコンピュータネットワークとのプライベート接続とを管理するなどの目的で、CNS 105よって提供された計算ノードと外部通信システムとの間で行われる通信を管理してもよい。他のタイプのネットワークトポロジ情報が同様にシミュレーションされてもよい。
様々な実施形態において、ネットワークアクセス制約情報は、提供されたコンピュータネットワークに対して、様々な方法で構成されてよい。例えば、クライアントが、提供されたコンピュータネットワークの計算ノードのうちの一部もしくは全部が、提供されたコンピュータネットワークの他の計算ノードおよび/または他の外部計算システムと通信できるかどうか、およびその通信方法に関する情報を、通信の方向(送信と受信)、通信のタイプ(例えば、テキストのHTTPリクエストは許可するが、画像のHTTPリクエストは許可せず、FTPリクエストも許可しないなどのように、含まれるコンテンツのタイプおよび/または使用される通信プロトコルのタイプに基づいて)、他の計算システムの位置(例えば、提供されたコンピュータネットワークの一部かどうか、提供されたコンピュータネットワークに対応するリモートクライアントコンピュータネットワークの一部かどうか、アクセスが確立されたリモートのリソースサービスの一部かどうか、提供されたコンピュータネットワークと、任意の対応するリモートクライアントコンピュータネットワークとに対して外部かどうか)、他の計算システムのタイプなど、のうちの1つもしくは複数に基づくなどして、指定してもよい。ネットワークトポロジ情報および他のルーティング情報の方法と同様の方法で、CNS 105は、提供されたコンピュータネットワークのネットワークアクセス制約情報を様々な方法で実施してもよい。
例示目的で、特定タイプの計算ノード、ネットワーク、通信、および構成動作が実行されるいくつかの実施形態について以下に記す。これらの実施例は、例示目的で提供され、簡潔化のために単純化されたものであり、本発明の技法は幅広く様々な他の状況で使用してよく、その一部について以下説明する。例えば、いくつかの実施形態では、クライアントによってアクセスできるように作成および構成されているコンピュータネットワークは、それらのクライアントの既存のプライベートコンピュータネットワークに対するプライベートコンピュータネットワーク拡張である一方、他の実施形態では、作成および構成されたコンピュータネットワークは、他のコンピュータネットワークに対する拡張でないスタンドアロンのコンピュータネットワークであってもよく、かつ/または、コンピュータネットワークがその代行として作成および構成されたクライアントによってプライベートにアクセス可能でないパブリックコンピュータネットワークであってもよい。さらに、いくつかの実施形態で、構成可能なネットワークサービスよって提供された特定のコンピュータネットワークが、構成可能なネットワークサービスよって提供された他のコンピュータネットワークへのプライベートアクセスまたはその他の相互通信を可能にするように構成されてもよく、一方で、他の実施形態では、複数の提供されたコンピュータネットワーク間のかかる相互通信が提供されなくてもよい。加えて、いくつかの実施形態では、構成可能なネットワークサービスよって提供されたコンピュータネットワークが、構成可能なネットワークサービスによって提供され、制御される計算ノードを使用する一方で、他の実施形態では、提供されたコンピュータネットワークで使用される少なくともいくつかのかかる計算ノードが、他者によって(例えば、第三者によって、クライアントによってなど)制御または維持されてもよいが、構成可能なネットワークサービスと併用可能であってもよい。例えば、いくつかの実施形態では、グループの計算ノードを指定された度合いの地域的に分散で提供するなどの目的で、その計算ノードが、NMMモジュール(例えば、複数の別個の構成可能なネットワークサービスと直接対話しているNMMモジュールに基づく、第2のエンティティからの別の構成可能なネットワークサービスと対話して、NMMモジュールに代わってその第2の構成可能なネットワークサービスから機能性へのアクセスを取得することにより、NMMモジュールに機能性を提供する第1のエンティティの特定の構成可能なネットワークサービスに基づく、など)の位置、および/またはNMMモジュールによって移行が簡便化される1つもしくは複数の計算ノードの位置とは別の1つもしくは複数の地理的位置である複数の別個の構成可能なネットワークサービスによって提供され、制御される計算ノードにアクセスし、それらを使用してもよい。
図1Bは、CNS 105(またはネットワークアクセス可能なサービスの他の実施形態)によってクライアントに提供されてもよい例示的コンピュータネットワーク120aについてさらに詳しく示しており、本実施例において提供されたコンピュータネットワーク120aは、図1Aのリモートプライベートコンピュータネットワーク130のうちの1つなどのような、クライアントのリモートプライベートコンピュータネットワークに対するプライベートネットワーク拡張である。本実施例では、構成可能なネットワークアクセス制約とネットワークトポロジとのタイプを図示するために、提供されたコンピュータネットワーク120aの様々な接続と通信経路が概略的な方法で示されており、図2は、例示的な提供されたコンピュータネットワーク120aなどのような、提供されたコンピュータネットワークを作成するために使用されてもよい例示的な基底の基盤ネットワークおよび接続についてさらに詳しく示す。加えて、本実施例では、提供されたコンピュータネットワーク120aと関連付けられたNMMモジュール164が、ネットワーク120aの一部であるものとして図示されている。ただし他の実施形態では、NMMモジュールは提供されたコンピュータネットワーク120aの一部でなくてもよく、またはCNS 105の一部として提供されているのであってもよい。
特に図1Bでは、提供されたコンピュータネットワーク120aは、第1の地理的位置1 160(例えば、地理的位置1にある第1のデータセンター)に位置するCNS 105よって提供された様々な計算ノードを含み、これは、本実施例では、様々な計算ノードが、(例えば、異なるサブネットおよび/または関連付けられている構成されたネットワーキング装置(図示せず)に対応するために)論理グループ165および166へと構成される。本実施例では、異なるタイプの実行されてもよい通信を図示するために、それらの計算ノードと他の計算システムとの間の通信を制御する1つの概念的な仮想ルーター162が地理的位置1に示されているが、提供されたコンピュータネットワーク120aは、実際には、地理的位置1に複数の構成されたネットワーキング装置を有していても、あるいは構成されたネットワーキング装置が1つもなくてもよく、コンピュータネットワーク120aは、基底の基盤ネットワークを経て通信を制御する基底の基盤ネットワークと、関連付けられたモジュールとを使用することによって、相互接続された複数の物理的相互接続ルーターまたは他のネットワーキング装置を介するなどのようにして、地理的位置1で構成可能なネットワークサービスによって様々な方法で実装されてもよい。本実施例では、仮想ルーター162が、提供されたコンピュータネットワーク120a内のネットワークアドレスに送信される通信を、提供されたコンピュータネットワーク120a上の対応する移行先計算ノードに路指定する、および提供されたコンピュータネットワーク120a外の他のネットワークアドレスに他の通信を適宜経路指定するなどの目的で、構成されたネットワークトポロジ情報、リモートのリソースサービスへの構成されたアクセス、および他の構成されたネットワークアクセス制約情報を含む、提供されたコンピュータネットワーク120a向けの構成された情報に従って動作する。さらに、構成されたファイアウォール装置、構成されたネットワークトポロジ情報、または他の構成されたネットワークアクセス制約によって許可されていない通信は、仮想ルーター162によってブロックされるか、他の方法で管理されてもよい。
本実施例では、コンピュータネットワーク120aが例示的なクライアント1に提供されており、これはクライアント1のリモートコンピュータネットワークに対するネットワーク拡張である。クライアント1のリモートコンピュータネットワークは、第1の遠隔地サイトA 190に複数の計算ノード191を含み、さらにゲートウェイ装置192および1つもしくは複数の物理的ルーターネットワーキング装置195も含み、仮想ルーター162は、ゲートウェイ装置192と163との間の仮想通信リンク170を介してそれらの複数の計算ノードと通信するように構成されている。他でさらに詳しく述べられているとおり、例えば、提供されたコンピュータネットワーク120aは、複数の計算システムとの1つもしくは複数の構成されたVPN接続をサイトA 190に含んでもよく、通信リンク170は、1つもしくは複数のかかるVPN接続に対応してもよい。加えて、計算ノード165および/または166のうちの1つもしくは複数が、以前は計算ノード191の一部であった移行された計算ノードに代わる代替計算ノードであれば、NMMモジュール164は、ゲートウェイ装置192と163を、仮想通信リンク170を介して、提供されたコンピュータネットワーク120aにおける他の計算ノード191から、それらの代替計算ノード165および/または166のうちの1つもしくは複数へと通信を経路設定し、同様に、仮想通信リンク170を介して、提供されたコンピュータネットワーク120aにおけるそれらの代替計算ノード165および/または166から計算ノード191へと通信を経路設定するように構成してもよい。
加えて、クライアント1のリモートコンピュータネットワークは、図示の任意のサイトB 193など1つもしくは複数の他の位置で計算ノードを任意選択で備えていてもよく、その場合には、サイトA 190およびサイトB 193における計算ノードが、インターネット196および/または1つもしくは複数のプライベート接続を介するなどのように、1つもしくは複数の通信リンク(図示せず)を介して相互接続していてもよく、かかる状況では、NMMモジュール164が同様に、ゲートウェイ装置163と、サイトB 193におけるゲートウェイ装置(図示せず)とを、サイトAとサイトBとの間のそれらの1つもしくは複数の通信リンクを介して、および/またはサイトB 193への任意選択の仮想通信リンク172を介してなどのようにして(例えば、1つもしくは複数の他の構成されたサイトBへの直接的なVPN接続を介して)、サイトB 193における計算ノード(図示せず)と代替計算ノード165および/または166との間での通信を経路設定するように構成してもよい。リモートコンピュータネットワークのリモート計算システムに対して複数のVPN接続または他のプライベート接続が使用される場合には、各接続が、通信が適当な接続へと経路設定させるように(例えば、それらのリモート計算システムに対応するリモートコンピュータネットワークのネットワークアドレスのサブセットと関連付けられることにより)、リモート計算システムのサブセットに対応してもよい。他の実施形態では、複数のVPN接続または他のプライベート接続が1つもしくは複数の位置でリモート計算システムに対して使用されてもよいが、例えば、複数の接続が(例えば、ロードバランシングなどのために使用される)冗長な代替接続である場合などには、各々が任意のリモート計算システムとの通信もサポートしてよい。さらに、いくつかの実施形態では、クライアントのリモートコンピュータネットワークは、複数のサイトにおいて複数の計算システムを含んでもよいが、リモート計算システムに対してただ1つのVPN接続または他のプライベート接続のみを使用してよく、このときリモートコンピュータネットワークは、適当なサイトおよび計算システムへの通信の経路設定を担当する。
加えて、提供されたコンピュータネットワーク120aは、提供されたコンピュータネットワーク120aの計算ノードと、概してインターネット196または他のパブリックネットワーク上でアクセス可能な他の外部計算システムとの間で行われるすべての、もしくは一部の通信を許可するように、またはまったく通信を許可しないように構成されてもよい。少なくともいくつかのかかる外部通信が許可される場合には、仮想ルーター162が、提供されたコンピュータネットワーク120aに対する任意選択の仮想ボーダールーター155と連動するなどのように、提供されたコンピュータネットワーク120aの任意選択の仮想通信リンク178を介してそれらの外部の複数の計算システムと通信するようにさらに構成されてもよい。仮想ボーダールーター155は、外部通信システムと、地理的位置1でCNS 105によって提供された様々な計算ノードとの間で行われる通信を管理する1つもしくは複数の実際のファイアウォール装置またはボーダールーター装置(例えば、CNS 105のそれらの計算ノードを使用する、CNS 105よってクライアントに提供された多数のコンピュータネットワークをサポートする実際の装置)をCNS 105が使用することにより、基底の基盤ネットワークと、(例えば、許可されなかった通信が提供されたコンピュータネットワーク120aの計算ノードによって基盤ネットワーク上に送られるのを防ぐために、)基底の基盤ネットワークを経て通信を制御する関連付けられたモジュールとを使用することによる、などして、様々な方法で物理的に実装されてもよい。さらに、仮想ボーダールーター155は、サイトAおよびサイトBにおけるリモートクライアントコンピュータネットワークへ、1つもしくは複数のリモートのリソースサービスへなどのような、提供されたコンピュータネットワーク120aにとって外部の他の通信システムへの他の通信を管理するのをさらに概念的に支援してもよい。
加えて、提供されたコンピュータネットワーク120aは、提供されたコンピュータネットワーク120aの1つもしくは複数のネットワークアドレスを割り当てることによりそれらの1つもしくは複数のリモートのリソースサービスを表すこと、およびそれらの割り当てられたネットワークアドレスに送られた通信に対する特定のとるべき具体的な行動を任意選択で構成することなどによって、1つもしくは複数のリモートのリソースサービスに対するプライベートまたは他の専門アクセスを提供するように構成されてもよい。本実施例では、仮想ルーター162は、提供されたコンピュータネットワーク120aの仮想通信リンク174を介してリモートのリソースサービス194へのローカルアクセスを提供するように構成されている。そのため、例えば、提供されたコンピュータネットワーク120aの計算ノードのうちの1つが、通信リンク174にマッピングされている提供されたコンピュータネットワーク120aの特定のネットワークアドレスに通信を送る場合には、仮想ルーターが、(例えば、インターネットまたは他のパブリックネットワークを介して、)提供されたコンピュータネットワーク120aにとって外部のリモートのリソースサービス194にその通信を転送してもよい。他の実施形態では、リモートのリソースサービス194が、CNS 105の一部であるか、または別法で地理的位置1におけるインタフェースを実装してもよく、その場合、通信リンク174にマッピングされている提供されたコンピュータネットワーク120aの特定のネットワークアドレスに送られる通信は、その代わりに処理のためにリモートのリソースサービスのそのインタフェースに転送されてもよい。加えて、仮想通信リンク174は、通信がリモートのリソースサービス194に転送される前に1つもしくは複数の方法でそれらを修正する、または別法で専門の方法でリモートのリソースサービス194にアクセスするなどの目的で、少なくともいくつかの実施形態で、リンクを介して様々な方法で送られるそれらの通信を管理するように構成されてもよい。例えば、図示された実施形態では、仮想通信リンク174が、リモートのリソースサービス194内で特定の名前空間に対応するように構成され、そのときリモートのリソースサービス194によって提供されるコンピュータ関連リソースのサブセットが、その名前空間の一部であってもよく、またはその代わりに構成可能なネットワークサービスにより、あるいはリモートのリソースサービス194により、提供されたコンピュータネットワーク120aと関連付けられている1つもしくは複数の特定の識別子または他のアクセスコントロールインジケータに対応するように構成されてもよい。加えて、仮想通信リンク174が特定の名前空間に対応するか、または別法によりリモートのリソースサービス194よって提供されたリソースのサブセットに対応するように構成されている場合には、提供されたコンピュータネットワーク120aが、(例えば、別個の第2の名前空間に対応するために、いかなる特定の名前空間にも対応しないために、通信リンク174で使用される顧客識別子とは別個であるリモートのリソースサービス194の顧客の識別子を使用するために)仮想通信リンク174のそれとは別個の方法でリモートのリソースサービス194にアクセスするように構成されている別個の仮想通信リンク176を任意選択で含む場合などに、提供されたコンピュータネットワーク120aが、同じリモートのリソースサービス194にも対応するが、他の方法でリモートのリソースサービス194にアクセスするように構成されている1つもしくは複数の他の仮想通信リンク 174 を含むようにさらに任意選択で構成されてもよい。
図示された実施形態では、地理的位置1にあるCNS 105の計算ノードに加え、提供されたコンピュータネットワーク120は、第2の地理的位置2 180(例えば、地理的位置2における別個の第2のデータセンター)に位置するCNS 105よって提供された計算ノード184を任意選択でさらに含んでもよい。したがって、仮想ルーター162は、地理的位置2における提供されたコンピュータネットワーク120aの部分に対する任意選択の仮想通信リンク168を含むように構成されてもよい。本実施例では、地理的位置2における提供されたコンピュータネットワーク120aの部分が、地理的位置1における提供されたコンピュータネットワーク120の部分と仮想通信リンク188を経て通信することも含め、計算ノード184へ、および計算ノード184からの通信を管理するための概念的な仮想ルーター182と共に同様に図示されている。異なる地理的位置におけるCNS 105の計算ノード間のかかる通信は、インターネットまたは他のパブリックネットワーク(例えば、CNS 105によってサポートされた暗号化などを用いる安全なトンネルの一部として)を経て通信を送ることによる、プライベートな安全な方法で(例えば、地理的位置間の専用リース回線を介して)または他のプライベートな方法で通信を送ることによる、などのように、様々な実施形態において様々な方法で扱われてもよい。加えて、ここには図示されていないが、地理的位置2における提供されたコンピュータネットワーク120aの部分は、リモートのクライアントプライベートネットワークへの(例えば、位置2におけるゲートウェイ装置および/または地理的位置1とのいかなるVPN接続とも別個の1つもしくは複数のVPN接続を介した)リンク、リモートのリソースサービスへのリンク、インターネットへのリンクなどのような、地理的位置1における部分の図示された同じタイプの他の仮想通信リンクのうちの一部もしくは全部を同様に含んでもよい。
提供されたコンピュータネットワーク120aが複数の地理的位置で計算ノードを含むか、または別法で1つもしくは複数の属性が異なる計算ノードを含むかかる状況では、NMMモジュールが計算ノード191を代替計算ノード165、166または184へと動的に移行するのを簡便化するときに、他でさらに詳しく述べられているとおり、NMMモジュール164は、いくつかの実施形態で、提供されたコンピュータネットワーク120aにおける、その移行のための代替計算ノードとして使用できる特定の計算ノード候補または計算ノードのタイプの間から(例えば、それらの計算ノードの属性に基づく、それらの計算ノードまでの距離、または他の指示された計算関連リソースとそれらの計算ノードの関係基づく、等)選択するように、あるいは、別法で、クライアント1によりかかる選択によって使用されるかかる代替計算ノード候補に関連した情報を提供するようにさらに構成されてもよい。
図1Bの例示的な提供されたコンピュータネットワーク120aは例示目的で含まれており、CNS 105によってクライアントに提供された他のコンピュータネットワークは、構成された通信リンクおよびネットワークトポロジ情報のタイプのすべてを含まなくてもよく、かつ/または、ここに図示されていない他のタイプの構成された通信リンクおよびネットワークトポロジ情報を含んでもよいということが理解されよう。例えば、いくつかの実施形態および状況では、提供されたコンピュータネットワークが、計算ノードに加えて、あるいは計算ノードの代わりに、構成された装置と他のリソースとを含んでもよく、その場合には、各々のかかる他のリソースは、提供されたコンピュータネットワークのネットワークアドレスが任意選択で割り当てられてもよい。さらに、図1Bに示された概念的な装置および通信リンクは、様々なタイプの基底の物理的装置、接続、およびモジュールを使用して実装されてもよい。加えて、ここに図示されていないが、クライアントは、リソースを使用するために加入/登録する、様々な証明書(例えば、ユーザーID、パスワードなど)を受信/作成する、(例えば、プライベート企業ネットワークに対するネットワーク拡張)提供されたコンピュータネットワークから後にアクセスされる(例えば、リモートプライベート企業ネットワークの一部である)他のリモート計算システムからリソースおよび/または名前空間を作成するなどの目的で、提供されたコンピュータネットワークからであろうと、または代わりに他のリモート計算システムからであろうと、リモートのリソースサービスと様々な他のタイプの対話を実行してもよい。
図2は、構成可能なネットワークサービスの一実施形態などによって、コンピュータネットワークを提供する際に使用される計算システムの例示的実施形態を図示するネットワークダイアグラムである。特に、本実施例では、いくつかの物理的計算システムがデータセンター200で共存しており、これは様々な物理的ネットワーキング装置と1つもしくは複数の物理的ネットワークとを介して相互接続されている。本実施例では、提供されたコンピュータネットワークの各々を仮想ネットワークとして確立および維持することにより、および仮想ネットワークをその上に載せる基盤ネットワークとして物理的ネットワークを使用することにより、物理的計算システムおよび他の装置が、構成可能なネットワークサービスによってクライアントに複数のコンピュータネットワークを提供するために使用される。例えば、図1Bの実施例を参照すると、データセンター200は、地理的位置1に位置してもよく、図示された物理計算システムは、提供されたコンピュータネットワーク120aの計算ノード165および166を提供する目的で使用されてもよい。オーバーレイネットワークおよび基底の基盤ネットワークの使用は、少なくともいくつかの実施形態では、提供されたコンピュータネットワークの計算ノードに対して透過的であってもよい。
加えて、1つもしくは複数のNMMモジュールが様々な位置に位置してもよく、コンピュータネットワークの計算ノードの動的な移行を簡便化するための機能性を提供することの一部として提供されたコンピュータネットワークを使用してもよい。例えば、1つもしくは複数のかかるNMMモジュールは、各々がプライベートネットワーク240の一部であってもよく、データセンター200において、対応する提供されたコンピュータネットワークとパブリックネットワーク235を介して通信してもよく、あるいは、別法でパブリックネットワーク235に直接接続されているデータセンター260において、1つもしくは複数の他の計算システム245bまたは他の計算システムと関連付けられてもよい。ここには図示されていないが、いくつかの実施形態で、データセンター200における計算システムは、1つもしくは複数のかかるNMMモジュールをさらに含んでもよく、それらは、コンピュータネットワークの計算ノードの動的な移行を簡便化するために内部ネットワーク220を経てマネージャモジュール210と対話してもよい。
本実施例では、構成可能なネットワークサービスによって提供されたコンピュータネットワークが、基底の物理的基盤ネットワークを介して通信を送る仮想オーバーレイネットワークとして実装される。提供された仮想オーバーレイネットワークは、(例えば、物理的基盤ネットワークのネットワーキングプロトコル用に構成された通信中の仮想ネットワークに対して仮想ネットワークアドレス情報を埋め込むことによって)いくつかの実施形態では通信をカプセル化しない、などのような、様々な実施形態において様々な方法で実装されてもよい。具体例を1つ挙げると、仮想ネットワークは、32ビットIPv4(「インターネットプロトコルバージョン4」)ネットワークアドレスを使用して実装されてもよく、それらの32ビット仮想ネットワークアドレスは、(例えばスーテトレスIP/ICMP変換、すなわちSIITを使用して)通信パケットまたは他のデータ送信のヘッダーを付け直すか、または別法によりかかるデータ送信を、データ送信がそのために構成されている第1のネットワーキングプロトコルから、別個の第2のネットワーキングプロトコルに変換するように改変することによって、物理的基盤ネットワークによって使用される128ビットIPv6(「インターネットプロトコルバージョン6」)ネットワークアドレスの一部として埋め込まれてもよい。別の具体例として、仮想ネットワークおよび基盤ネットワークの両方が、同じネットワークアドレス指定プロトコル(例えば、IPv4またはIPv6)を使用して実装されてもよく、仮想ネットワークアドレスを使用し、提供された仮想オーバーレイネットワークを介して送られたデータ送信は、基盤ネットワークを経て送られる間、基盤ネットワークに対応する異なる物理的ネットワークアドレスを使用するように改変されてもよいが、元の仮想ネットワークアドレスは、改変されたデータ送信に記憶されるか、または別法でデータ送信が基盤ネットワークを出るときに元の形態に復元されてもよいように追跡される。他の実施形態では、オーバーレイネットワークのうちの少なくとも一部が、通信のカプセル化を用いて実装されてもよい。
図2の図示例は、構成可能なネットワークサービスの一実施形態によって運用される複数の物理計算システムを有するデータセンター200を含む。データセンター200は、データセンター200にとって外部の1つもしくは複数のパブリックネットワーク235に接続されており、このパブリックネットワーク235は、プライベートネットワーク240を介した1つもしくは複数のリモート計算システム245aへのアクセスと、他の地理的位置に各々複数の計算システムを有する1つもしくは複数の他のグローバルにアクセス可能なデータセンター260へのアクセスと、1つもしくは複数の他のリモート計算システム245bへのアクセスと、を提供する。パブリックネットワーク235は、例えば、さまざまな別個の当事者によって運用される可能性のあるインターネットなどのネットワークの公的にアクセス可能なネットワークであってよく、プライベートネットワーク240は、例えば、プライベートネットワーク240にとって外部の計算システムから完全に、あるいは部分的にアクセス不能な企業ネットワークであってもよい。計算システム245bは、例えば、各々インターネット(例えば、電話回線、ケーブルモデム、デジタル加入者回線(「DSL」)などを介して)に直接接続する家庭用計算システムであってもよい。
本実施例では、仮想の提供されたコンピュータネットワークを構成することが、構成可能なネットワークサービスのマネージャモジュール210によって簡便化され、基盤ネットワークを出入りする通信を改変することにより、物理的基盤ネットワークの端などから、構成可能なネットワークサービスの複数の他のモジュールが、提供されたコンピュータネットワークの機能性を実装する目的で使用される。特に、本実施例では、構成可能なネットワークサービスの複数のノード通信マネージャモジュールが、以下にさらに詳しく説明するとおり、図示されたノード通信マネージャモジュール209a、209d、および250など、関連付けられた計算ノードへ、および関連付けられた計算ノードからの通信を各々管理する。加えて、本実施例では、以下にさらに詳しく説明するとおり、構成可能なネットワークサービスの外部通信マネージャモジュール270が、データセンター200内の物理計算システムと外部通信システムとの間での通信を管理する。本実施例では単一の外部通信マネージャモジュール270だけが図示されているが、モジュール270の機能性は複数の装置を使用して実装されてもよいことが理解されよう。
例示的なデータセンター200は、いくつかの物理計算システム205a〜205dおよび255a〜255nに加え、関連付けられた計算システム255a〜255nの通信を管理する目的で1つもしくは複数の他の計算システム(図示せず)上で実行されるCNSノード通信マネージャモジュール250と、1つもしくは複数の計算システム(図示せず)上で実行される構成可能なネットワークサービスのマネージャモジュール210と、も含む。本例示的実施形態では、各々の物理計算システム205a〜205dが複数の仮想マシン計算ノードをホストし、さらに、計算システム205a上のCNS VMノード通信マネージャモジュール209aおよび仮想マシン207aなどのような、ならびに計算システム205d上のCNS VMノード通信マネージャモジュール209dおよび仮想マシン207dなどのような、(例えば、物理計算システムの仮想マシンハイパーバイザモニタの一部としての)仮想マシン(「VM」)ノード通信マネージャモジュールも含む。仮想マシン計算ノードの各々が、構成可能なネットワークサービスにより、クライアントに対して提供されたコンピュータネットワークの別個の計算ノードとして使用されてもよい。本実施例では、物理計算システム255a〜255nがいかなる仮想マシンも実行しないため、各々が、構成可能なネットワークサービスによってクライアントに対して提供されたコンピュータネットワークの一部である別個の計算ノードとしての働きをしてもよい。他の実施形態では、データセンターにおける物理計算システムのすべてが仮想マシンをホストしてもよく、仮想マシンをホストする物理計算システムが1台もなくてもよい。
この例示的なデータセンターは、スイッチ215aおよび215b、エッジルーター225a〜225c、およびコアルーター230a〜230cなどのような、複数の物理的ネットワーキング装置をさらに含む。スイッチ215aは、物理計算システム205a〜205cを含む物理的ネットワークの一部であり、エッジルーター225aに接続されている。スイッチ215bは、物理計算システム205d、255a〜255n、ならびにCNSノード通信マネージャモジュール250およびCNSシステムマネージャモジュール210を提供する計算システムを含む別個の物理的ネットワークの一部であり、エッジルーター225bに接続されている。続いて、スイッチ215a〜215bによって確立される物理的ネットワークが、今度は、エッジルーター225a〜225cとコアルーター230a〜230cとを含む中間相互接続ネットワーク220を介してその物理的ネットワーク同士および他のネットワーク(例えばパブリックネットワーク235)に接続される。エッジルーター225a〜225cは、2つ以上のネットワークの間にゲートウェイを提供する。例えば、エッジルーター225aは、スイッチ215aによって確立された物理的ネットワークと相互接続ネットワーク220との間にゲートウェイを提供する。エッジルーター225cは、相互接続ネットワーク220とパブリックネットワーク235との間にゲートウェイを提供する。コアルーター230a〜230cは、かかるデータ送信の特徴(例えば、移行元および/または移行先の基盤ネットワークアドレス、プロトコル識別子などを含むヘッダー情報)、および/または相互接続ネットワーク220自体の特徴(例えば、物理的ネットワークトポロジなどに基づくルート)に基づいてパケットまたは他のデータ送信を適宜転送するなどして、相互接続ネットワーク220内での通信を管理する。
図示されたノード通信マネージャモジュールは、関連付けられた計算ノードとの間でやりとりされる通信を管理する。例えば、ノード通信マネージャモジュール209aは、関連付けられた仮想マシン計算ノード207aを管理し、ノード通信マネージャモジュール209dは、関連付けられた仮想マシン計算ノード207dを管理し、その他のノード通信マネージャモジュールの各々も、1つもしくは複数の他の関連付けられた計算ノードのグループの通信を同様に管理してもよい。図示されたノード通信マネージャモジュールは、中間の物理的基盤ネットワーク(例えば、相互接続ネットワーク220ならびにスイッチ215aおよび215bと関連付けられた物理的ネットワーク)を経て複数の仮想ネットワークを重ねるように計算ノード間の通信を管理してもよく、ファイアウォールポリシーと他のネットワークアクセス制約とを実装して、かかる通信を制御してもよい。外部通信マネージャモジュール270は、かかる外部通信に関し、データセンター200内の基盤ネットワークを経てオーバーレイネットワークをさらに実装するなどの目的でデータセンター200に出入りする外部通信を管理する。外部通信マネージャモジュール270は、データセンター200にとって外部のリモートのリソースサービスへのプライベートアクセス、あるいは他の特殊なアクセスを許可する提供されたコンピュータネットワークのための少なくともいくつかの構成されたアクセスメカニズムと、任意選択で外部のリモートクライアントコンピュータネットワークとのうちの少なくともいくつかのVPN接続とを含むファイアウォールポリシーおよび他のネットワークアクセス制約を実装するための行動をとってもよく、または、代わりにかかるVPN接続の構成可能なネットワークサービスの部分を実装する他のハードウェアおよび/またはソフトウェア(図示せず)と連動してもよい。
そのため、1つの具体例として、計算システム205a上の仮想マシン計算ノード207aのうちの1つが、計算システム205d上の仮想マシン計算ノード207dのうちの1つ、および計算システム255a(および任意選択で、構成可能なネットワークサービスによっても使用されるこのデータセンター、または1つもしくは複数の他のデータセンター260にある他の計算ノード)とともに、クライアントの特定の提供された仮想コンピュータネットワーク(例えば、図1Bの提供されたコンピュータネットワーク120a)の一部であってもよく、IPv4が仮想ネットワークの仮想ネットワークアドレスを表す目的で使用される。仮想マシン計算ノード207a、仮想マシン計算ノード207d、および計算システム255b〜255nのうちの他のもの(ならびに図示された計算ノードのうちの他のもの)が、他のクライアントに提供されている他のコンピュータネットワークだけを現在専用であってもよく、提供されたコンピュータネットワークに現在割り当てられておらず、構成可能なネットワークサービスによって利用できるようになっていてもよく、かつ/または同じ特定の提供された仮想コンピュータネットワークの一部であってもよい。特定の提供された仮想コンピュータネットワークの一部である仮想マシン計算ノード207a上のクライアントを対象に実行されるプログラムがその後、その移行先の仮想マシン計算ノード207dに割り当てられているその提供された仮想コンピュータネットワーク用の仮想ネットワークアドレスを指定することによるなどのように、特定の提供された仮想コンピュータネットワークの仮想マシン計算ノード207dへと発信通信(図示せず)を向けてもよい。ノード通信マネージャモジュール209aは、発信通信を受信し、少なくともいくつかの実施形態で、送信する仮想マシン計算ノード207aに関する、および/もしくは移行先の仮想マシン計算ノード207dに関する以前に構成された情報に基づいて、ならびに/または(例えば、認可の判断を取得するために、一部またはすべてのかかる情報を取得するために)システムマネージャモジュール210と動的に対話することによるなどにより、発信通信を送ることを認可するかどうかを判断する。
ノード通信マネージャモジュール209aは、発信通信が認可された(あるいはかかる認可の判断を実行しない)と判断した場合、モジュール209aは、その通信の移行先仮想ネットワークアドレスに対応する実際の物理的基盤ネットワーク位置を判断する。本実施例では、相互接続ネットワークがIPv6を使用して、その相互接続ネットワークを経て接続された計算ノードの実際のネットワークアドレスを表し、モジュール209aは、発信通信のヘッダーを付け直して、この通信が実際のIPv6基盤ネットワークアドレスを使用してノード通信マネージャモジュール209dへと向けられるようにする。ノード通信マネージャモジュール209aは、例えば、システムマネージャモジュール210と動的に対話することによって移行先の仮想計算ノード207dの仮想ネットワークアドレスで使用する実際のIPv6移行先ネットワークアドレスを判断してもよく、あるいは、(例えば、ARPを使用したリクエストなど、その移行先仮想ネットワークアドレスについての情報を求める、送信している仮想マシン計算ノード207aからの以前のリクエストに応答して)その情報を以前に判断および保存していてもよい。本実施例では、使用される実際のIPv6移行先ネットワークアドレスが、カプセル化されずにオーバーレイネットワークを経て通信を送るように、仮想移行先ネットワークアドレスと追加情報とを組み込む。
ノード通信マネージャモジュール209dは、相互接続ネットワーク220を介して通信を受信すると、実際のIPv6移行先ネットワークアドレスから仮想移行先ネットワークアドレスと追加情報とを抽出し、その通信が仮想マシン計算ノード207dのうちのどれに向けられているかを判断する。次にノード通信マネージャモジュール209dは、実際のIPv6ソースネットワークアドレスから仮想ソースネットワークアドレスおよび追加情報を抽出し、その仮想ソースネットワークアドレスを有する計算ノードが、その通信を転送したノード通信マネージャモジュール(本実施例ではノード通信マネージャモジュール209a)によって実際に管理されることを確認することによるなどのように、移行先の仮想マシン計算ノード207dに対してその通信が認可されるかどうかを任意選択で判断し、悪意のある発信者によるソースネットワークアドレスの偽装を防ぐ。その通信が認可される(またはノード通信マネージャモジュール209dがかかる認可の判断を実行しない)と判断された場合、モジュール209dは、その後その着信通信のヘッダーを付け直して、送信している仮想マシン計算ノードの仮想ネットワークアドレスをソースネットワークアドレスとして使用し、移行先の仮想マシン計算ノードの仮想ネットワークアドレスを移行先ネットワークアドレスとして使用することによるなどのようにして、仮想ネットワークに適当なIPv4ネットワークアドレスを使用して移行先の仮想マシン計算ノード207dに向けられるようにする。着信通信のヘッダーを付け直した後、次いでモジュール209dは、改変された通信を移行先の仮想マシン計算ノードに転送する。少なくともいくつかの実施形態では、移行先の仮想マシンに着信通信を転送する前に、モジュール209dはセキュリティ関連の追加ステップを実行してもよい。例えば、モジュール209dは、モジュール209dによって以前に取得された情報、またはシステムマネージャモジュール210との対話に基づくなどのようにして、送信している仮想マシン計算ノードが移行先の仮想マシンと通信することを認可されていること(例えば、同じ仮想ネットワークに属すること、および/またはその提供された仮想ネットワークに対して指定されたネットワークアクセス制約情報に基づいて、同じ顧客またはその他のエンティティと関連付けられて、計算ノードが相互通信することを認可されている異なるエンティティおよび/またはコンピュータネットワークと関連付けられて)、および/またはその着信通信が許容されたタイプのものであることを検証してもよい。
送信する仮想マシン計算ノード207aが代わりに(または加えて)データセンター200にとって外部の1つもしくは複数の意図された移行先計算システムに発信通信(図示せず)を方向付けた場合、ノード通信マネージャモジュール209aは同様の方法でその発信通信を受信および処理する。意図された外部の移行先計算システムは、例えば、(例えば、特定の提供されたコンピュータネットワークを拡張とするリモートの仮想クライアントコンピュータネットワーク、あるいは特定の仮想コンピュータネットワークの一部分を提供するために構成可能なネットワークサービスによっても使用される別のデータセンター260などにおける)同じ特定の提供された仮想コンピュータネットワークの一部である別の計算ノード、リモートのリソースサービスの計算システム、インターネットに公的にアクセス可能な計算システムなどであってもよい。少なくともいくつかの実施形態および状況では、モジュール209aはまず、発信通信の送信を認可するかどうかを判断し、認可する場合には、その通信の移行先ネットワークアドレスに対応する実際の物理的基盤ネットワーク位置を判断する。本実施例では、モジュール270が、そうでなければノード通信マネージャモジュールに割り当てられないすべての仮想および/または実際のネットワークアドレスと関連付けられている場合などに、判断された基盤ネットワークの物理的位置が外部通信マネージャモジュール270に対応する。モジュール270は、相互接続ネットワーク220を介して通信を受信すると、移行先ネットワークアドレスと追加情報とを、受信した通信から同様に抽出し、その通信が意図された移行先に対して認可されるかどうかを任意選択で判断することも含め、その通信を転送するかどうか、および転送方法を判断する。その通信が認可される(あるいはモジュール270がかかる認可の判断を実行しない)と判断されると、モジュール270は着信通信のヘッダーを付け直して、適当なIPv4パブリックネットワークアドレス(またはパブリックネットワーク235に適した他のネットワークアドレス)を使用して移行先に向けられるようにした後、改変された通信を、パブリックネットワーク235を経て転送する。このようにして、外部通信マネージャ270および/または様々なノード通信マネージャモジュールは、提供された仮想コンピュータネットワークのゲートウェイ装置の機能性のうちの一部もしくは全部を提供するように任意で構成されてもよい。
したがって、前述のとおり、提供された仮想コンピュータネットワークの一部である代替計算ノードを使用することを含め、さまざまな技法を使用して、コンピュータネットワークの計算ノードを動的に移行するための能力を提供してもよい。
上記のとおり、少なくともいくつかの実施形態で、NMMモジュールは、リモートクライアントに仮想コンピュータネットワークを提供する構成可能なネットワークサービスなど、ネットワークアクセス可能なリモートサービスと対話してもよい。構成可能なネットワークサービスまたは他のネットワークアクセス可能なサービスは、ネットワークアクセス可能なサービスのユーザーがネットワークアクセス可能なサービスによって提供される少なくともいくつかの機能性に対するネットワークアクセス可能なサービスに料金を払う顧客となるなどのように、少なくともいくつかの実施形態では、料金ベースのサービスであってよい。加えて、少なくともいくつかの実施形態では、構成可能なネットワークサービスによってコンピュータネットワークをクライアントに提供する目的で使用される計算ノードは、1つもしくは複数の物理計算システムで各々ホストされる物理計算システムおよび/または仮想マシンなど、様々な形態を有してもよい。例えば、いくつかの実施形態で、構成可能なネットワークサービスは、1つもしくは複数の地理的位置にある1つもしくは複数のデータセンターなどのような、クライアントに提供されるコンピュータネットワークで使用できる構成可能なネットワークサービスよって提供される多数の計算ノードを含んでもよい。加えて、少なくともいくつかの実施形態で、構成可能なネットワークサービスによって提供された計算ノードのうちの一部もしくは全部が、1つもしくは複数の中間物理的ネットワークによって相互接続されており、クライアントに提供されたコンピュータネットワークは、中間物理的ネットワークを基盤ネットワークとして使用することによって中間物理的ネットワークの上に重ねられる仮想(すなわち「論理」)ネットワークであってもよい。さらに、少なくともいくつかの実施形態では、計算ノードのうちの少なくとも一部が、プログラム実行サービスの複数の顧客または他のユーザーに代わって複数のプログラムを実行するプログラム実行サービス(すなわち「PES」)によって使用されてもよい。計算ノードおよび基底のコンピュータネットワークに関連するさらなる詳細が以下に記載されており、仮想ネットワークをクライアントに提供し、かつプログラム実行サービスを提供する例示的実施形態に関連するさらなる詳細は、2008年12月10日に出願された「Providing Access to Configurable Private Computer Networks(構成可能なプライベートコンピュータネットワークへのアクセスの提供」と題する米国特許出願番号第12/332,214号(代理人整理番号120137.599)と、2006年3月31日に出願された「Managing Communications Between Computing Nodes(計算ノード間の通信の管理」と題する米国特許出願番号第11/394,595号(代理人整理番号120137.524)と、2006年3月31日に出願された「Managing Execution of Programs by Multiple Computing Systems(複数の計算システムによるプログラムの実行の管理」と題する米国特許出願番号第11/395,463号(代理人整理番号120137.525)と、2007年3月27日に出願された「Configuring Intercommunications Between Computing Nodes(計算ノード間の相互通信の構成」と題する米国特許出願番号第11/692,038号(代理人整理番号120137.554)と、2008年3月31日に出願された「Configuring Communications Between Computing Nodes(計算ノード間の通信の構成」と題する米国特許出願番号第12/060074号(代理人整理番号120137.576)と、2007年6月18日に出願された「Providing Enhanced Access To Remote services(リモートサービスへの強化されたアクセスの提供」と題する米国特許出願番号第11/764,739号(代理人整理番号120137.555)と、に含まれており、これらの各々は、参照によりその全体が本明細書に組み込まれる。
したがって、図2を参照して上述したとおり、少なくともいくつかの実施形態で、ネットワークアクセス可能な構成可能なネットワークサービスは、構成可能なネットワークサービスの様々な通信マネージャモジュールを使用するなどのように、基底の基盤ネットワークを使用してオーバーレイネットワークとして仮想コンピュータネットワークを実装することにより、それらをクライアントに提供する。構成可能なネットワークサービスの1つもしくは複数のシステムマネージャモジュールが、どの計算ノードがどの提供された仮想ネットワークに属するかを追跡および/または管理することによる、および特定の仮想ネットワークで(例えば、特定の顧客またはその他のエンティティによって)使用される仮想ネットワークアドレスに対応する実際の物理的基盤ネットワークアドレスに関する情報を提供することによるなどにより、計算ノード間の通信を構成することをさらに簡便化してもよい。加えて、システムマネージャモジュールは、対象物理計算システム上の仮想マシン計算ノードの指示、および仮想マシンが関連付けられる提供された仮想ネットワークの指示を受信し、その後に対象物理計算システムの仮想マシンノード通信マネージャモジュールの構成を開始して、仮想マシンを仮想ネットワークと関連付けるようにしてもよく、あるいはノード通信マネージャモジュールが、(例えば、仮想マシンが最初に通信を開始あるいは受信したときに)代わりにその構成を開始してもよい。いくつかの実施形態では、システムマネージャモジュールおよび/または関連付けられたノード通信マネージャモジュールが、提供された仮想ネットワークと関連付けられたユーザーが1つもしくは複数のソフトウェアプログラムの実行を開始するときに、仮想マシン計算ノードがそれらを実行する準備ができているように、指示された行動を取るため、および/または仮想マシン計算ノード上で1つもしくは複数の指示されたソフトウェアプログラムの実行をユーザーに代わって開始するためなどの目的で、様々な方法で(例えば、提供された仮想ネットワークと関連付けられたユーザー、および/またはかかるユーザーに代わるNMMモジュールからの命令に応答して)提供された仮想ネットワークの特定の仮想マシン計算ノードをプロビジョニングすることにさらに関与してもよい。
図3は、コンピュータネットワークの計算ノードの動的な移行を簡便化するための機能性を提供するのに適した例示的な計算システムを示すブロック図である。具体的には、図3は、コンピュータネットワークの計算ノード、および様々なクライアント計算システム350、計算ノード360、ゲートウェイ計算装置370、ならびに他の計算システム380の動的な移行を簡便化するNMMモジュールの一実施形態を実行するのに適した計算システム300を示す。ここでは図示されていないが、いくつかの実施形態で、図示された計算システム、装置、およびノードのうちの少なくともいくつかは、図1Bおよび図2にさらに詳しく記載されているとおり、1つのコンピュータネットワークおよび/または共通なデータセンターの一部であることなどにより、同じ場所に位置するか、あるいは別の方法で共に組み込まれていてもよい(例えば、計算システム300と計算ノード360およびゲートウェイ装置370のうちの少なくともいくつか)。加えて、ここでは図示されていないが、構成可能なネットワークサービスが、他の計算システム380の1つもしくは複数からなどのように、少なくともいくつかの実施形態では、NMMモジュールにアクセス可能であり、かつ使用されてもよく、その場合には、計算ノード360およびゲートウェイ装置370のうちの少なくともいくつかは、構成可能なネットワークサービスによって提供されてもよく、計算ノード360およびゲートウェイ装置370のうちのそれ以外から離れて位置してもよい。
図示された実施形態では、計算システム300が、CPU 305と、様々なI/O構成要素310と、記憶装置320と、メモリ330とを備えた構成要素を有する。図示のI/O構成要素は、ディスプレイ311と、ネットワーク接続312と、コンピュータ可読メディアドライブ313と、他のI/O装置315(例えば、キーボード、マウス、スピーカなど)とを含む。加えて、図示のクライアント計算システム350は、CPU 351と、I/O構成要素352と、記憶装置354と、メモリ357とを含むサーバー計算システム300の構成要素と同様の構成要素を有する。他の計算システム380、ゲートウェイ装置370、および計算ノード360も、サーバー計算システム300に関して図示される構成要素のうちの一部もしくは全部と同様の構成要素を各々備えてもよいが、かかる構成要素は簡潔化のために本実施例に図示されない。加えて、ネットワーク移行マネージャ(「NMM」)モジュール340の一実施形態が、メモリ330で実行されている。本実施例では、NMMモジュールが、構成された多目的計算システムの一部であるものとして図示されているが、他の実施形態では、計算システム300が、NMMモジュールの能力を提供するように設計および/または構成されている特殊用途の装置であってもよい。
実行されているNMMモジュールは、1つもしくは複数のネットワーク390を経て(例えば、インターネットおよび/またはワールドワイドウェブを介して、プライベートのセルラー方式ネットワークを介して、構成可能なネットワークサービスによって使用中のプライベート基盤ネットワークを介して、など)、他の計算システム、装置、およびノードと対話する。本例示的実施形態では、モジュール340は、1つもしくは複数の移行元のコンピュータネットワークの計算ノード360のうちの少なくとも一部から他の移行先のコンピュータネットワークの一部である他の代替計算ノード360への動的な移行を簡便化する。移行元および移行先のコンピュータネットワーク(図示せず)の各々、および任意選択で他の計算システム380のうちの少なくとも一部は、1つもしくは複数の特定のユーザーまたは他のエンティティ(図示せず)と関連付けられてもよく、かかるユーザー(またはそのエンティティを代表するユーザー)は、クライアント計算システム350のうちの1つを使用して、かかるコンピュータネットワークの計算ノードおよび計算システムを構成し、それらにアクセスしてもよい。かかるユーザーは、NMMモジュール340とも同様に対話し、移行元のコンピュータネットワークとその計算ノードに関する情報を提供することによる、移行先のコンピュータネットワークに関する情報を任意選択で提供することによる、移行している特定の計算ノード、またはNMMモジュール340がこれから移行する特定の計算ノードの指示を提供することによって、クライアントに関する情報(例えば、連絡先情報、支払情報など)を提供し、NMMモジュール340によって提供されたサービスの運用に対応する支払いを提供することなどのようなことにより、コンピュータネットワークの計算ノードの動的な移行を開始および構成する。
加えて、NMMモジュール340は、様々な行動を取って、さまざまな時期におけるコンピュータネットワークの計算ノードの段階的移行を動的に簡便化してもよい。図示された実施形態では、モジュール340は、NMMモジュールがコンピュータネットワークの計算ノードの移行を動的に簡便化しているクライアントに関する様々な情報326と、それらのクライアントの移行元および移行先のコンピュータネットワークに関する情報322と、移行された計算ノードおよび代替計算ノードの位置に関する情報324および他の関連情報とにアクセスを有してもよい。モジュール340が(例えば周期的に)リクエストおよび収集し、かつ/または(例えば周期的に、あるいは興味のあるイベントの発生時などに)モジュール340にプッシュされる計算ノードステータス情報などのような、様々な情報は、クライアントから、および移行元および移行先のコンピュータネットワークとの対話から収集されてもよい。加えて、NMMモジュールは、移行元のコンピュータネットワークの計算ノードと移行先のコンピュータネットワークの計算ノードとの間の通信を転送する際に使用する情報374を適宜ゲートウェイ装置370の各々に提供することなどにより、計算ノード情報324を使用して、コンピュータネットワークの計算ノードの動的な移行に携わっている移行元および移行先のコンピュータネットワークをサポートするゲートウェイ装置を構成することを支援してもよい。NMMモジュールは、少なくともいくつかの実施形態および状況において、構成可能なネットワークサービスによって提供されたゲートウェイ装置を構成する、構成可能なネットワークサービスによって提供されたコンピュータネットワークに代替計算ノードとして使用する計算ノード360を追加する、代替計算ノードのプロビジョニングを開始するなどのような目的で、1つもしくは複数の構成可能なネットワークサービスとの様々な対話をさらに実行してもよい。例えば、他の計算システム380は、1つもしくは複数の計算ノードを各々ホストし得るホスト計算システムなどのような、提供されたコンピュータネットワークで使用するための、使用可能なかかる構成可能なネットワークサービスの計算システムを含んでもよい。かかるいくつかの状況では、クライアント計算システム350のユーザーは、まず構成可能なネットワークサービスと対話して、(例えば、クライアントの物理的コンピュータネットワークに対する拡張として)構成可能なネットワークサービスから特定の仮想コンピュータネットワークを構成してもよく、かつ情報322を提供して、その仮想コンピュータネットワークをクライアントのコンピュータネットワークと関連付けてもよい。他の状況では、特定のクライアントに代わって構成可能なネットワークサービスから特定の提供された仮想コンピュータネットワークを使用するなどのような目的で、モジュール340が構成可能なネットワークサービスと対話して、モジュール340によって使用される1つもしくは複数のかかる仮想コンピュータネットワークを作成するように代わりに構成されていてもよい。
他の計算システム350と380、ゲートウェイ装置370、および計算ノード360は、モジュール340との対話の一部として様々なソフトウェアを実行していてもよい。例えば、クライアント計算システムのユーザーが本人と関連付けられた1つもしくは複数のコンピュータネットワークに関するモジュール340の動作を構成できるようにするなどのような目的で、クライアント計算システム350のうちの一部もしくは全部が、メモリ357内のソフトウェアを各々実行して、(例えば、ウェブブラウザまたは特殊なクライアント側アプリケーションプログラムの一部として)モジュール340と対話してもよい。さらに、クライアント計算システム350および/または他の計算システム380のうちの一部もしくは全部が、クライアントの代理としてタネットワークと対話するために、クライアントのリモートネットワークの一部である複数の他の計算システム380をクライアントのリモートネットワークの提供されたコンピュータネットワーク拡張の一部として複数の計算ノード360に接続するVPN接続などを介して、メモリ357内のソフトウェアを各々実行していてもよい。さらに、計算ノード360および/または他の計算システム380のうちの一部が、計算ノードへ、および計算ノードから送られる通信の管理を支援し、かつそれらの計算ノードに関するステータス情報をモジュール340に提供する通信マネージャモジュール、またはかかるステータス情報をモジュール340に提供するためのソフトウェアを同様に含む計算ノード360などのような、ソフトウェアモジュール(図示せず)を実行して、モジュール340の機能性を提供するのを支援してもよい。同様に、ゲートウェイ装置370のうちの一部もしくは全部も同様にソフトウェアモジュール(図示せず)を実行して、ゲートウェイ装置のNMMモジュール340の構成を簡便化するソフトウェアモジュールなどのような、モジュール340の機能性の提供を支援してもよい。加えて、他の計算システム380も、さまざまなユーザーが利用できるリモートのリソースサービスを実行するなどの目的で他の機能性を実行してよい。
計算システム300、350、380、ゲートウェイ計算装置370、および計算ノード360は単なる例示に過ぎず、本発明の範囲を制限することを意図するものでないことは理解されよう。計算システム、装置、および/またはノードは、各々複数の双方向計算システムまたは装置を代わりに含んでよく、計算システム/装置/ノードは、インターネットなど1つもしくは複数のネットワークを通じることを含む、ウェブ経由で、あるいはプライベートネットワーク(例えば、移行通信ネットワークなど)経由で、図示されていない他の装置に接続されてもよい。さらに一般的には、計算ノード、計算装置または他の計算システムは、デスクトップまたは他のコンピュータ、データベースサーバー、ネットワーク記憶装置、ネットワークルーターおよび他のネットワーキング装置、PDA、携帯電話、無線電話、ポケットベル、電子システム手帳、インターネット機器、(例えば、セットトップボックスおよび/またはパーソナル/デジタルビデオレコーダを使用した)テレビベースのシステム、および適当な通信能力を含む様々な他の消費財を非限定的に含む、記載されたタイプの機能性を対話および実行する場合があるハードウェアまたはソフトウェアの任意の組み合わせを備えてもよい。加えて、いくつかの実施形態では、図示されたモジュール340よって提供される機能性が追加モジュールで配布されてもよく、あるいはいくつかの実施形態では、モジュール340が構成可能なネットワークサービスと統合されているか、他の方法で関連付けられていてもよく、その場合には、構成可能なネットワークサービスの1つもしくは複数のモジュール(例えば、1つもしくは複数のシステムマネージャモジュール、1つもしくは複数のノード通信マネージャモジュール、1つもしくは複数の外部通信マネージャモジュールなど)によって提供されるものとして他で記載されている機能性を組み込んでもよい。同様に、いくつかの実施形態では、モジュール340の機能性のうちの一部が提供されなくてもよく、かつ/または他の更なる機能性が利用可能であってもよい。
様々な品目が、使用中にメモリあるいは記憶装置に記憶されるものとして図示されているが、これらの品目またはそれらの一部分は、メモリの管理およびデータの整合性のためにメモリと他の記憶装置との間で転送されてもよいということも理解されよう。加えて、NMMモジュール340によって使用される記憶装置は、いくつかの実施形態で、計算システム300上に部分的あるいは完全に位置してもよい一方で、他の実施形態では、部分的あるいは計算システム300にとって完全に外部(例えば、1つもしくは複数の他の計算システム380および/または他のネットワークアクセス可能な記憶装置などに提供されたもののような、ネットワークアクセス可能な記憶装置として)に位置してもよい。代替的には、他の実施形態では、ソフトウェアモジュールおよび/またはシステムのうちの一部もしくは全部が、別の装置のメモリで実行され、コンピュータ間通信を介して図示された計算システムと通信してもよい。さらに、いくつかの実施形態では、システムおよび/またはモジュールのうちの一部もしくは全部が、少なくとも部分的には、1つもしくは複数の特定用途向け集積回路、標準集積回路、コントローラ(例えば、適当な命令を実行し、マイクロコントローラおよび/または組み込み型コントローラを含むことによる)、フィールドプログラマブルゲートアレイ(FPGA)、複合プログラマブルロジック装置(CPLD)、ネットワークプロセッサなどを含むがそれらに限定されないファームウェアおよび/またはハードウェアなどのような他の方法で実装または提供されてもよい。モジュール、システム、およびデータ構造のうちの一部もしくは全部も、ハードディスク、メモリ、ネットワーク、または適当なドライブによって、あるいは適当な接続を介して読み込まれる可搬型メディア物品などのコンピュータ可読メディア上で、(例えば、ソフトウェア命令または構造化されたデータとして)記憶され、1つもしくは複数のプロセッサによって実行されてもよい。システム、モジュール、およびデータ構造は、無線ベースおよび有線/ケーブルベースのメディアを含むさまざまなコンピュータ可読送信メディア上で、生成されたデータ信号として(例えば、搬送波または他のアナログあるいはデジタル伝播信号の一部として)送信されてもよく、さまざまな形態(例えば、単一あるいは多重化アナログ信号の一部として、または複数の別個のデジタルパケットあるいはフレームとして)をとってもよい。かかるコンピュータプログラム製品は、他の実施形態では他の形態をとってもよい。したがって、本発明は、他のコンピュータシステム構成で実施されてもよい。
図5は、ネットワーク移行マネージャルーチン500の例示的実施形態の流れ図である。コンピュータネットワークの計算ノードの動的な移行を簡便化する能力を提供するためなどのような目的で、例えば、図1Aおよび図1BのNMMモジュール125および164ならびに/または図3のNMMモジュール340の実行によってルーチンが提供されてもよい。図示された実施形態では、各NMMモジュールが、単一の時期における単一のクライアントのために移行元のネットワークから移行先のコンピュータネットワークへの計算ノードの動的な移行を管理する。ただし、他の実施形態では、単一のNMMモジュールが、複数のコンピュータネットワークに対する(例えば、NMMモジュールが、仮想コンピュータネットワークを複数のリモートクライアントに提供する構成可能なネットワークサービスによって提供されている場合など、複数の別個のユーザーまたは他のエンティティに対する)計算ノードの動的な移行を同時に管理してもよく、かつ/または異なるコンピュータネットワークが異なる時期に移行元および移行先のコンピュータネットワークとしての役割を果たすように、2つ以上のコンピュータネットワーク間で計算ノードの動的な移行を双方向で管理してもよい。加えて、図示された実施形態では、ルーチンが、ネットワークアクセス可能なサービス(例えば、構成可能なネットワークサービス)よって提供された仮想コンピュータネットワークを、計算ノードが移行される移行先のコンピュータネットワークとして使用するが、他の実施形態では、他のタイプのコンピュータネットワークと対話してもよい。さらに、図示された実施形態では、このルーチンが、移行する特定の計算ノードの自動選択を支援する目的で様々な基準情報を任意選択で受信し、使用してもよいが、他の実施形態では、代わりに、このルーチンは、かかる自動選択を実行しなくてもよい(例えば、特定の計算ノードが移行される時期に関する命令をクライアントが提供する場合)。同様に、図示された実施形態では、このルーチンが、代替計算ノードを移行の一部として準備するためにネットワークアクセス可能なサービスと対話することによるなどのようにして、特定の計算ノードの自動移行に任意選択で関与してもよいが、他の実施形態では、代わりに、このルーチンは、かかる自動移行アクティビティを実行しなくてもよい(例えば、クライアントがかかる移行アクティビティを実行し、指示された移行元のネットワーク計算ノードから指示された移行先のネットワーク代替計算ノードへの移行が完了した時期をルーチンに通知する場合)
ルーチンの図示された実施形態は、ブロック505より開始され、そこで、1つもしくは複数の計算ノードがそこから動的または段階的に移行先のリモートの仮想コンピュータネットワークに移行される、クライアントの移行元のコンピュータネットワークに関する構成情報が受信され、さらに任意選択で、移行元のコンピュータネットワーク計算ノードを対応する移行先のコンピュータネットワーク代替計算ノードに移行する方法および/または時期を選択する際に使用する既定基準に関する構成情報が受信される。このため、図示された実施形態では、ルーチン500が、移行先のコンピュータネットワークとして使用する既存のリモート仮想ネットワークについての情報を受信するが、他の実施形態では、代わりに、このルーチンが、ネットワークアクセス可能なリモートサービスと動的に対話して、クライアントに代わってかかるリモート仮想ネットワークを作成してもよく、あるいは別法により移行された計算ノードの代替計算ノードとして使用する1つもしくは複数のリモート計算ノードへのアクセスを他の方法で取得してもよい。
図示された実施形態では、ルーチンが、リクエストまたは情報を受信するブロック510へと続く。ブロック515で、(例えば、クライアントから、ブロック585でルーチンによって作られるリクエストに応答して、ルーチンへとプッシュされる情報から、ネットワークアクセス可能なサービスから、および/またはゲートウェイ装置から、および/または特定の計算ノードから、など)計算ステータス情報が移行元の計算ノードおよび/または移行先のコンピュータネットワークに関連したブロック510で受信されると判断されると、ルーチンはブロック520へと続行してそのステータス情報を記憶する。図示例では、このルーチンがその後ブロック535へと続行し、既定基準(任意選択で提供されている場合)が現在満たされているかどうかを、受信されたステータス情報に少なくとも部分的に基づくなどして判断するが、他の実施形態では、ステータス情報が受信されるたびに既定基準がチェックされなくてもよい。
代わりに、ブロック515で、ステータス情報が受信されていないと判断されると、ルーチンは代わりにブロック530へと続行し、ブロック510で受信した情報またはリクエストが、クライアントからの命令、周期的にトリガーされるか、あるいは指定された状況下にある命令などのような、1つもしくは複数の移行先のコンピュータネットワーク代替計算ノードへと移行する1つもしくは複数の移行元のコンピュータネットワーク計算ノードをここで選択するどうかを判断するために任意選択で提供された既定基準を評価するための命令であるかどうかを判断する。そのような命令であると判断された場合、ルーチンはブロック535へと続行し、ブロック520に関して記憶された以前に受信したステータス情報に少なくとも部分的に基づくなどのようにして、既定基準を評価して、既定基準のうちの1つもしくは複数が現在満たされているかどうかを判断する。他でさらに詳しく述べられているとおり、かかる既定基準は、さまざまな要因(例えば、様々な移行元のコンピュータネットワーク計算ノードの現在の利用水準)に基づいてもよい。既定基準のうちの1つもしくは複数が満たされているとブロック540で判断されると、ルーチンはブロック545へと続いて、1つもしくは複数の特定の移行元のコンピュータネットワーク計算ノードが動的に移行すること(例えば、あるいはランダムな方法などのような、既定基準に基づかない方法を用いる、などの既定基準に基づいて)を判断し、任意選択で、移行で使用される特定の代替計算ノードを、(例えば、現在移行先のコンピュータネットワークの一部である、または移行先のコンピュータネットワークに動的に追加されてもよい、任意の利用可能な計算ノードなどのような、既定基準に基づかない方法など、既定基準に基づいて)判断する。ルーチンはその後ブロック565へと続行し、判断された計算ノードを示す。
代わりに、ブロック530で、受信したリクエストまたは情報が既定基準を評価しないと判断されると、ルーチンは代わりにブロック560へと続行して、1つもしくは複数の示された移行元のコンピュータネットワーク計算ノードの移行に関連するリクエストまたは命令が受信されたかどうかを判断する。受信された場合、ルーチンはブロック565へと続行して、代替計算ノードを移行先のコンピュータネットワークに追加する、代替計算ノードをプロビジョニングすることなどにより、移行先の仮想コンピュータネットワークを提供するネットワークアクセス可能なリモートサービスと任意選択でプログラム的に対話し、代替計算ノードの移行のための利用可能性を簡便化する。他の実施形態および状況では、クライアントが、代わりに示された移行元のコンピュータネットワーク計算ノードを示された代替計算ノードへと実際に移行するのを管理してもよく、それらの代替計算ノードについて、ブロック510で受信された情報の一部としてルーチン500に通知してもよく、その場合には、ルーチンがブロック565でネットワークアクセス可能なサービスと対話しなくてもよい。ブロック565の後、ルーチンはブロック570へと続行して、示された移行元のコンピュータネットワーク計算ノードを移行先の仮想コンピュータネットワーク上の対応する代替計算ノードに移行することを、移行元および移行先のコンピュータネットワーク上のゲートウェイ装置に通知して、ゲートウェイ装置が動的な移行中に移行元のコンピュータネットワークの動作継続を簡便化できるようにする。
代わりに、ブロック560で、受信したリクエストまたは情報が、移行された計算ノードの表示でないと判断された場合、ルーチンは代わりにブロック585へと続行して、1つもしくは複数の他の示された動作を適宜実行する。例えば、他のタイプの動作は、移行元および/または移行先のネットワーク計算ノードの現在のステータス情報を(例えば、周期的に、特定の状況が発生した場合に、など)リクエストすること、移行元のコンピュータネットワーク計算ノードのうちの1つでない移行元のコンピュータネットワークのルーター装置または他の装置に対応する移行先のコンピュータネットワークに機能性を移行するクライアントリクエストを簡便化すること、を含んでもよい。他の動作としては、少なくともいくつかの実施形態および状況における様々な種類の管理またはハウスキーピング活動も含んでもよい。
ブロック570または585の後、あるいはルーチンがブロック540で代わりに既定基準が満たされなかったと判断した場合、ルーチンはブロック595へと続行して、例えば終了するような明確な指示が受信されるまでなどのように、続行するかどうかを判断する。続行すると判断されたら、ルーチンはブロック510に戻り、続行しないと判断されたら、ブロック599へと続けて終了する。
図4Aおよび図4Bは、構成可能なネットワークサービスマネージャルーチン400の例示的実施形態の流れ図を示す。ルーチンは、コンピュータネットワークをリモートクライアントに提供する構成可能なネットワークサービスの管理動作を支援するなどのような目的で、例えば、図1Aのシステムマネージャモジュール110を実行すること、および/または図3の他の計算システム380のうちの1つもしくは複数を使用するネットワークアクセス可能なサービスを実行することによって提供されてもよい。図示された実施形態では、ルーチン400によって作成および提供されるコンピュータネットワークのうちの少なくとも一部が、クライアントの既存のリモートネットワークに対する拡張であってもよいのに対し、他の実施形態では、ルーチン400によって作成および提供されるネットワークが、代わりに他のネットワークの拡張ではないクライアントによって使用されるスタンドアロンのネットワークであってもよい。加えて、図5および他で述べられているとおり、提供されたコンピュータネットワークのうちの少なくとも一部は、移行元のコンピュータネットワーク計算ノードの動的な移行を簡便化するために、NMMモジュールの実施形態によって使用されてもよい。
このルーチンの図示された実施形態は、ブロック405から始まり、ここで、(例えば、NMMモジュールまたは他のクライアントからの)メッセージ、または受信された他の情報の指示が受信される。少なくともいくつかの実施形態で、ルーチン400がサポートする構成可能なネットワークサービスが、1つもしくは複数のAPIを提供してリモートクライアントが構成可能なネットワークサービスとプログラム的に対話できるようにし、その場合には、ブロック405で受信した指示のうちの一部もしくは全部が、リモートクライアントの呼び出しや、リモートクライアントとそれらのAPIとの他のプログラム的な対話を介して行われてもよいのに対し、他の実施形態および状況では、ブロック405で受信した指示のうちの一部もしくは全部が、代わりにリモートクライアントもしくは他者によって他の方法で開始されてもよい。
ブロック405の後、ルーチンは、ブロック410へと続行して、ブロック405で受信した指示が、クライアントの既存のリモートネットワークに対する拡張など、リクエストを出しているクライアントに代わって提供される新しい仮想コンピュータネットワークの作成を開始するかどうかを判断する。開始する場合には、ルーチンがブロック415へと続行して、クライアントに代わって新しいコンピュータネットワーク拡張または他の新しいコンピュータネットワークを作成するための様々な処理を実行する。例えば、他でさらに詳しく記載されているとおり、新しいコンピュータネットワークを作成するための受信通信は、作成されたコンピュータネットワークの一部となるいくつかの計算ノード、新しいコンピュータネットワークが別のリモートネットワークに対する拡張であるかどうかの指示などのような、作成されるコンピュータネットワークに関連する様々な構成情報を含んでもよい。ブロック415で取られる行動は、例えば、作成中の新しいコンピュータネットワークで使用するための、構成可能なネットワークサービスから利用可能な特定の計算ノードを選択すること、一意の識別情報を生成し、これを作成中の新しいコンピュータネットワークと関連付けること、あらゆる受信した構成情報を後の使用に備えて記憶すること、などを含んでもよい。他でさらに詳しく記載されているとおり、かかる計算ノードは、選択された計算ノードの能力に基づく、選択された計算ノードのネットワーク位置(例えば、構成可能なネットワークサービスの基底の基盤ネットワーク上、コンピュータネットワークの他の計算ノードに対する相対的なネットワーク位置上、など)に基づく、選択された計算ノードの地理的位置(例えば、複数の地理的に分散したデータセンターのうちの1つにおける、コンピュータネットワークの他の計算ノードに対する相対的な地理的位置上、など)に基づく、ランダムな方法を用いる、などのような、様々な実施形態において様々な方法で利用可能な計算ノードの群から選択されてもよい。さらに、ここには図示されていないが、ルーチンは、新しいコンピュータネットワークに対する一意の識別子や、新しいコンピュータネットワークに対する他の参照情報をクライアントに提供して、新しいコンピュータネットワークのさらなる構成や、新しいコンピュータネットワークとのさらなる対話を実行するときに、クライアントが後でその新しいコンピュータネットワークを参照できるようにしてもよい。
ブロック415の後、あるいはブロック405で受信した指示が新しいコンピュータネットワークを作成しないと代わりにブロック410で判断された場合、ルーチンはブロック420へと続行して、ブロック405で受信した指示が、指示されたコンピュータネットワークのアクセス制約または他のアクセス情報に関連した情報を含むかどうかを判断する。例えば、いくつかの状況で、クライアントが、新しいコンピュータネットワーク拡張を作成するリクエストおよび、その新しいコンピュータネットワーク拡張に対する様々な指定された構成情報など、1つもしくは複数のリクエスト、またはブロック405に関して共に受信および処理される他のメッセージを供給してもよく、供給した場合には、アクセス情報が出力される指示されたコンピュータネットワークが、ブロック415に関して作成されたばかりの新しいコンピュータネットワーク拡張であってもよい。他の状況および実施形態では、リモートクライアントが、代わりに、新しいコンピュータネットワークを作成する最初のリクエスト、および以前に作成されたそのコンピュータネットワークに対する様々な種類の構成情報を指定するその後の1つもしくは複数の他の別個のリクエストなどのような、ブロック405に関して受信および処理された異なる通信を異なる時期に供給してもよい。ブロック405でアクセス情報が受信されているとブロック420で判断された場合、ルーチンはブロック430へと続行して、指示されたコンピュータネットワーク向けの指定されたアクセス制約情報を使用して、指示されたコンピュータネットワークに対して許可されるアクセスを設定する。他でさらに詳しく記載されているとおり、かかる構成情報は、コンピュータネットワークのいずれかの計算ノードがインターネットまたは別法でそのコンピュータネットワーク外にアクセスを持つことができるかどうか、さらに任意選択で、コンピュータネットワークの計算ノード(指示されたコンピュータネットワークがリモートコンピュータネットワークに対する拡張である場合にはコンピュータネットワークのリモート部分を含む)間での通信アクセスポリシーを任意で特定することに関する制約を含んでもよい。したがって、ブロック430では、ルーチンが、例えば、コンピュータネットワークをサポートする構成可能なネットワークサービスの通信マネージャモジュールによって使用される回送情報を(例えば、メッセージを、構成される情報を伴うそれらの通信マネージャモジュールに送ることによって)構成することを含んでもよい1つもしくは複数の行動を取る。さらに、アクセス情報がリモートクライアント位置から提供されたコンピュータネットワークへのVPN接続を確立するための命令を含む場合には、ブロック430で取られる行動が、提供されたコンピュータネットワークにより、あるいは別法により提供されたコンピュータネットワークに代わる構成可能なネットワークサービスにより、提供されたコンピュータネットワークが、かかるVPN接続を受容し、かつ適当な情報を使用してそのVPN接続のために暗号化された通信を復号するように構成することによるなどのようにして、かかるVPNコネクションをサポートするための行動を取ることをさらに含んでもよい。
ブロック430の後、あるいは代わりにブロック405における指示がアクセス情報を含まないとブロック420で判断された場合、ルーチンはブロック440へと続行して、ブロック405における指示が、別の形で指定された1つもしくは複数のネットワークアドレス範囲および/または特定のネットワークアドレスなどのような、指示されたコンピュータネットワークに対するネットワークアドレス情報を含むかどうかを判断する。含むと判断された場合、ルーチンは、ブロック445へと続行して、指示されたコンピュータネットワークの計算ノードで使用される指定されたネットワークアドレス情報を記憶し、さらに進んで、ブロック415および/または462などに関して、それらの計算ノードがすでに選択されたか、あるいは他の方法で使用された場合には、それらの指定されたネットワークアドレスを指示されたコンピュータネットワークの計算ノードと関連付けてもよい。他でさらに詳しく記載されているとおり、指定されたネットワークアドレスをコンピュータネットワークの計算ノードと関連付けることは、コンピュータネットワークをサポートする通信マネージャモジュールによって使用される経路指定情報を構成することをさらに含んでもよい。ブロック445の後、あるいは、代わりにブロック405で受信した指示がネットワークアドレス情報を含まなかったとブロック440で判断された場合、ルーチンはブロック455へと続行して、ブロック405で受信した指示が、示されたコンピュータネットワークのネットワークトポロジ情報を含むかどうかを判断する。含むと判断された場合、ルーチンはブロック457へと続行して、指示されたコンピュータネットワークのネットワークトポロジ情報を記憶し、任意選択で進んで、ネットワークトポロジ情報に従ってその指示されたコンピュータネットワークを構成してもよい。ネットワークトポロジ情報を構成することは、指定されたトポロジ情報の一部である仮想ネットワーキング装置の処理をシミュレーションするためなどのような目的で、コンピュータネットワークをサポートする通信マネージャモジュールによって使用される経路設定情報を構成することを含んでもよい。
ブロック457の後、あるいは代わりにブロック405における指示がネットワークトポロジ情報を含まないとブロック455で判断された場合、ルーチンはブロック460へと続行して、指示されたコンピュータネットワークが指定された数量の計算ノードを含むように構成されているが、その指定された数量より少ない数量が選択あるいは使用される場合、または指定された数量の計算ノードが、指示されたコンピュータネットワークに対して指定されていない場合などのように、ブロック405における指示が、指示されたコンピュータネットワークに計算ノードを追加するための指示を含むかどうかを判断する。さらに、いくつかの実施形態では、構成可能なネットワークサービスによって提供されている既存のコンピュータネットワークの使用が開始された後でも、クライアントはそのコンピュータネットワークを様々な方法で、そのコンピュータネットワークの計算ノードの数量を変更すること、および/またはそのコンピュータネットワークのネットワークトポロジ情報を改変することを含む、改変してもよい。他でさらに詳しく述べられているとおり、1つもしくは複数の計算ノードを追加するリクエストは、1つもしくは複数の移行元のコンピュータネットワーク計算ノードの、代替計算ノードとして使用される追加計算ノードへの動的な移行の一部としてNMMモジュールおよび/またはクライアントから受信されてもよく、追加された計算ノードで使用される特定のネットワークアドレス(例えば、移行中の移行元のコンピュータネットワーク計算ノードによって以前に使用されたネットワークアドレス)の指示をさらに含んでもよい。指示が1つもしくは複数の計算ノードを追加することであるとブロック460で判断された場合、ルーチンはブロック462へと続行して、構成可能なネットワークサービスの利用可能な計算ノード群から指示されたコンピュータネットワークに追加される1つもしくは複数の計算ノードを選択する。他でさらに詳しく記載されているとおり、かかる計算ノードは様々な方法で選択されてもよい。ブロック464で、選択された計算ノードは、先述の方法と同様の方法などで(例えば、適当なネットワークアドレス情報をそれらの選択された計算ノードと関連付けることにより、任意の指定されたネットワークトポロジ情報および/またはコンピュータネットワーク拡張の他のアクセス制約情報に従ってそれらの選択された計算ノードに対するアクセス権を設定することによる、など)、指示されたコンピュータネットワークの一部として使用されるように構成される。加えて、少なくともいくつかの実施形態では、クライアントおよび/またはNMMモジュールは、計算ノードを追加するのと同時に、あるいは後に、移行中の移行元のコンピュータネットワーク計算ノードの代替として動作する特定の移行先のコンピュータネットワーク計算ノードをプロビジョニングするための命令をさらに提供してもよい一方で、他の実施形態では、クライアントおよび/またはNMMモジュールは、代わりにかかるプロビジョニングなどを実行するために、追加された後に、移行先のコンピュータネットワーク計算ノードと直接対話してもよい。
ブロック464の後、あるいは代わりにブロック405における指示が計算ノードを追加しないとブロック460で判断された場合、ルーチンはブロック470へと続行して、ブロック405における指示が、NMMモジュールおよび/またはクライアントなど指示されたコンピュータネットワークから、指示された仮想コンピュータネットワークから別のコンピュータネットワークへの計算ノードの動的な移行の一部として1つもしくは複数の計算ノードを削除するかどうかを判断して、移行された計算ノードを移行完了後に削除するようにする。指示が1つもしくは複数の計算ノードを削除することであるとブロック470で判断されると、ルーチンはブロック475へと続行して、リクエストで選択された計算ノードの指示に基づいて、あるいは代わりに別の方法で(例えば、ランダムに、構成可能なネットワークサービスの便宜または利点に基づいて、など)、指示されたコンピュータネットワークから削除する1つもしくは複数の計算ノードを選択する。ブロック480で、選択された計算ノードが、その後コンピュータネットワークから削除される。
ブロック480の後、あるいはブロック405における指示が1つもしくは複数の計算ノードを削除しないとブロック470で判断されると、ルーチンは代わりにブロック482へと続行して、ブロック405における指示が、ブロック464に関して追加されたばかりの1つもしくは複数の計算ノード、または以前は指示されたコンピュータネットワークの一部であったが、他の目的で使用された(あるいは現在使用されていない)1つもしくは複数の計算ノードなど、指示されたコンピュータネットワークの1つもしくは複数の計算ノードをプロビジョニングするかどうかを判断する。プロビジョニングすると判断した場合、ルーチンはブロック485へと続行して、計算ノードの各々にある1つもしくは複数の指示されたソフトウェアプログラムを実行する、指示されたデータを計算ノードにコピーする、および/または特定の方法で使用される計算ノードを別法で準備する、などのような目的で、指示された計算ノードのプロビジョニングを指示された方法で開始する。他の実施形態では、計算ノードのかかるプロビジョニングが、代わりにクライアントとそれらの計算ノードとの直接対話に基づき、構成されたネットワークサービスのクライアントによって直接実行されてもよい。
ブロック485の後、あるいは代わりにブロック405における指示が1つもしくは複数の計算ノードをプロビジョニングしないとブロック482で判断された場合、ルーチンはブロック487へと続行して、物理的ルーター装置または他のネットワーキング装置によるなどのようにして、ブロック405における指示が、指示されたコンピュータネットワークを、指示されたコンピュータネットワークに移行中であるリモートの移行元コンピュータネットワークの一部として以前に提供されたネットワーキング機能性を提供するように構成するかどうかを判断する。構成すると判断した場合、ルーチンはブロック489に進み、指示されたネットワーキング情報に従って、ブロック457に関して、および他で先述した方法と同様の方法などでその指示されたコンピュータネットワークを構成する。ネットワーキング機能性を構成することは、移行元のコンピュータネットワークの一部であった物理的ネットワーキング装置に対応する仮想ネットワーキング装置の行動をシミュレーションするなどの目的で、指示されたコンピュータネットワークをサポートする通信マネージャモジュールによって使用される経路指定情報を構成することを含んでもよい。
ブロック489の後、あるいは代わりにブロック405における指示が、ネットワーキング装置の機能性を移行しないとブロック487で判断された場合、ルーチンはブロック490へと続行して、任意選択で1つもしくは複数の他の指示された動作を適宜実行する。例えば、クライアントの特定のコンピュータネットワークの構成を完了した後に、ルーチンは、作成された新しいコンピュータネットワーク拡張が属するリモートコンピュータネットワークなどのようなリモートソースからコンピュータネットワークへのアクセスを提供する1つもしくは複数の最終ステップをさらに実施してもよい。かかるアクセス提供は、例えば、情報をクライアントに提供して、クライアントがコンピュータネットワーク(例えば、コンピュータネットワークに対するVPNのための公的にアクセス可能なネットワークアドレス)にアクセスできるようにすること、コンピュータネットワークを、リモートクライアントからの通信を受け入れるように構成すること、などを含んでもよい。加えて、少なくとも一部の提供されたコンピュータネットワーク(例えば、移行先のコンピュータネットワークおよび/または移行元のコンピュータネットワークとしてのNMMモジュールによって使用されたコンピュータネットワーク)の場合、ルーチンは、VPN接続と組み合わせるなどして、1つもしくは複数のゲートウェイ装置をさらに提供し、構成してもよい。ゲートウェイ装置が提供された後、NMMモジュールは、ゲートウェイ装置と直接対話してもよく、他の実施形態では、ルーチン400と対話して、ゲートウェイ装置を構成し、かつ/またはゲートウェイ装置からステータス情報を取得してもよい。さらに、一部またはすべてのコンピュータネットワークの一部またはすべての計算ノードのステータスをピングする、または他の方法で点検するため、リモートクライアントによって一部またはすべてのコンピュータネットワークの使用を監視するため、一部またはすべての提供されたコンピュータネットワークによる内部構成可能なネットワークサービスリソースの使用を監視するため、構成可能なネットワークサービスによってクライアントのアカウントを確立および維持するため、自身のアカウントまたは提供されたコンピュータネットワークに関するクライアントからのステータス情報のリクエストに応答するため、NMMモジュールが使用している計算ノードに関するステータス情報をNMMモジュールに事前に送るため、構成可能なネットワークサービスの使用に対する支払いをクライアントから得るため、指示されたコンピュータネットワークの一部である特定の計算ノードを(例えば、1つもしくは複数の実行プログラムを、第1の地理的位置にある計算ノードから第2の地理的位置にある新しい計算ノードに移すことによって)改変するためなどの目的で、ルーチンは、時には(例えば、周期的に、現在の状況が指定されたしきい値を超えたか、あるいは別法により指定された状況を誘発したときなど)他の動作を実行してもよい。
ブロック490の後、ルーチンはブロック495へと続行して、例えば明確な終了指示が受信されるまでなどのように、続行するどうかを判断する。続行すると判断した場合、ルーチンはブロック405に戻り、続行しないと判断した場合、ブロック499へと続行して終了する。
図6は、ゲートウェイ装置のルーチン600の例示的実施形態の流れ図を示す。このルーチンは、使用中である移行元のコンピュータネットワークの継続動作を、その計算ノードのうちの一部もしくは全部が移行先のコンピュータネットワークに移行している間に簡便化するためなどのような目的で、例えば、図1Aのゲートウェイ装置122または132、図1Bのゲートウェイ装置163または192および/または図3のゲートウェイ計算装置370の実行によって提供されてもよい。図示された実施形態では、ゲートウェイ装置が、移行元のコンピュータネットワークおよび移行先のコンピュータネットワークのどちらと関連付けられていてもよく、コンピュータネットワークの他方にある対応するゲートウェイ装置と対になっているが、他の実施形態では、1つのゲートウェイ装置は、移行元のコンピュータネットワークと移行先のコンピュータネットワークとの両方か、あるいは別の方法で2つ以上のコンピュータネットワークをサポートしてもよい。
図示されたルーチンの実施形態はブロック605から始まり、ここでゲートウェイ装置が属するコンピュータネットワークのローカル計算ノードと、リモートコンピュータネットワークの一部である対応するリモートゲートウェイ装置と関連付けられたリモート計算ノードに関する構成情報の指示が受信される。かかる接続がすでに利用できなくなっている場合、次いでルーチンはブロック607へと続行して、他のゲートウェイ装置とのVPN接続または他のプライベート接続を任意選択で確立する。
ブロック607の後、ルーチンはブロック610へと続行して、そこでリクエストまたは情報を受信する。ブロック615で、リモートゲートウェイ装置を介してアクセス可能なリモート計算ノードについての情報に対応するリクエストが受信されると判断されると、ルーチンはブロック620へと続行して、リモート計算ノードに代わって情報を提供する。例えば、リクエストが、リモート計算ノードの位置についての情報を求めるローカル計算ノードからのARPメッセージまたは他のリクエストである場合、ゲートウェイ装置は、ゲートウェイ装置が指示された計算ノードであるかのように応答して、リモート計算ノードに向けられた通信がゲートウェイ装置に向けられるようにする。同様に、リクエストが、リモート計算ノードのステータスについての情報を求めるピングメッセージまたは他のリクエストである場合、ゲートウェイ装置は、リモート計算ノードによって提供される応答をエミュレートし、かつ/またはそのリモート計算ノードと対話して、その応答で使用する実際の情報を取得してもよい。他のタイプのネットワークメッセージも、同様の方法で扱われてもよい。
代わりにリモート計算ノードについての情報のリクエストが受信されていないとブロック615で判断された場合、ルーチンは代わりにブロック625へと続行して、ブロック610で受信した情報またはリクエストが、特定のリモート計算ノードに対して(例えば、以前に移行されたローカル計算ノードに対応するリモートの移行先コンピュータネットワークにある代替計算ノードに対して)向けられたローカル計算ノードからの発信通信であるかどうかを判断する。特定のリモート計算ノードに対して向けられたローカル計算ノードからの送信通信であると判断された場合、ルーチンはブロック630へと続行して、送信しており、かつ移行先である計算ノードに対して透過的な方法によるなどのようにして、対象である移行先のリモート計算ノードへとさらに転送するリモートゲートウェイ装置にその通信を転送する。代わりに受信したリクエストまたは情報がリモート計算ノードに向けられた通信でないとブロック625で判断された場合、ルーチンは代わりにブロック640へと続行して、着信通信がローカル計算ノード(例えば、リモートの移行元コンピュータネットワークから以前に移行されたリモート計算ノードに対応するローカルの移行先のコンピュータネットワークにおける代替計算ノード)を対象とするリモートゲートウェイ装置を介してリモート計算ノードから受信されたかどうかを判断する。その着信通信がローカル計算ノードを対象とするリモートゲートウェイ装置を介してリモート計算ノードから受信されたと判断された場合、ルーチンはブロック645へと続行して、改変された通信に、ゲートウェイ装置のハードウェアアドレス以外のリモートの送信している計算ノードのネットワークアドレスを含めさせ、応答通信がゲートウェイ装置に返されるようにするためなどのような目的で、リモートの送信している計算ノードを反映するように通信を任意選択で改変する。ブロック645の後、ルーチンはブロック650へと続行して、改変された通信を、ローカルコンピュータネットワークを経てローカルの移行先計算ノードに転送する。
代わりに受信したリクエストまたは情報が着信通信でないとブロック640で判断された場合、ルーチンは代わりにブロック660へと続行して、ブロック610から受信したリクエストまたは情報がローカルコンピュータネットワークとリモートコンピュータネットワークとの間での計算ノードの移行の指示であるかどうかを判断する。ブロック610から受信したリクエストまたは情報がローカルコンピュータネットワークとリモートコンピュータネットワークとの間での計算ノードの移行の指示であると判断した場合、ルーチンはブロック665へと続行し、どの計算ノードがローカルであり、どれが後で転送通信時に使用するためのリモートであるかに関する記憶された情報を更新し、さらに任意選択で1つもしくは複数の行動を取って、(例えば、ローカルコンピュータネットワークで無償ARPを発行することにより、リモートゲートウェイ装置にメッセージを送信することなどにより)変更の対象である他のローカル計算ノードおよび/またはリモートゲートウェイ装置を更新してもよい。
代わりに受信したリクエストまたは情報が計算ノードの移行の指示でないとブロック660で判断された場合、ルーチンは代わりにブロック685へと続行し、1つもしくは複数の他の指示された動作を適宜実行する。例えば、他のタイプの動作は、ローカルおよび/またはリモートの(例えば、リクエストに応答して、あるいは代わりに周期的に、または特定の状況の発生時などに、例えばNMMモジュールへの)計算ノードや、様々な種類の管理またはハウスキーピング処理などについての現在のステータス情報を、提供することを含んでもよい。
ブロック620、630、650、665または685の後、ルーチンはブロック695へと続行して、明確な終了指示が受信されるまでなどのように、続行するかどうかを判断する。続行すると判断された場合、ルーチンはブロック610に戻り、続行しないと判断された場合ブロック699へと続行して終了する。
いくつかの実施形態では、上記ルーチンによって提供された機能性が、より多数のルーチン間で分割する、より少数のルーチンに統合するなどのように、代替方法で提供されてもよいということも理解されよう。同様に、いくつかの実施形態では、代わりに他の図示されたルーチンにそれぞれかかる機能性が欠落していたり、含まれていたりする場合、あるいは提供される機能性の数量が変更された場合などのように、図示されるルーチンは、記載より多いまたは少ない機能性を提供してもよい。加えて、様々な動作は特定の方法(例えば、連続的にまたは並列的に)および/または特定の順序で実行されるものとして図示されてもよいが、当業者であれば、他の実施形態では、動作が他の順序および他の方法で実行されてもよいことを理解するであろう。当業者であれば、上記データ構造が、単一のデータ構造を複数のデータ構造に分割させることによる、複数のデータ構造を単一のデータ構造に統合させることによるなどのようなことによって、異なる方法で構造化されてもよいということも理解するであろう。同様に、いくつかの実施形態では、代わりに他の図示されたデータ構造にかかる情報が欠落している場合、または含まれる場合、あるいは記憶される情報の量またはタイプが変更された場合などのような場合、図示されたデータ構造は、記載されるよりもより多いまたはより少ない情報を記憶してもよい。
第1項。計算システムがネットワーク接続された計算ノードの動的な移行を簡便化するための方法であって、
第1のコンピュータネットワークの使用中に第1のコンピュータネットワークの複数の計算ノードに送られた複数の通信を管理することであって、その複数の計算ノードが第1の地理的位置にあり、かつ各々が第1のコンピュータネットワークの複数の別個のネットワークアドレスのうちの1つと関連付けられており、その複数の通信が、その複数のネットワークアドレスのうちの1つである少なくとも1つの移行先ネットワークアドレスを各々示すことにより、その複数の計算ノードのうちの少なくとも1つを、その通信の対象とする移行先として指定しており、その通信の各々を管理することが、その通信によって指示された少なくとも1つの移行先ネットワークアドレスに基づいて、その通信の少なくとも1つの対象となる移行先計算ノードに第1のコンピュータネットワークを経てその通信を転送することを含む、管理することと、
その複数の通信を管理した後、および第1のコンピュータネットワークの使用中に、第1のコンピュータネットワークを第2の地理的位置におけるリモートの仮想的な第2のコンピュータネットワークへと動的かつ段階的に移行するように構成された1つもしくは複数の計算装置の制御下で、第1のコンピュータネットワークの複数の計算ノードの各々について、
第1のコンピュータネットワークの計算ノードの、第2の地理的位置におけるリモートの仮想コンピュータネットワークの一部である別個の代替計算ノードへの移行の指示を受信することであって、これにより、移行後に、リモートの仮想コンピュータネットワークの代替の計算ノードが、移行された代替計算ノードを第1のコンピュータネットワークの一部として代替し、第1のコンピュータネットワークの継続動作のために、移行された計算ノードのネットワークアドレスを使用する、受信することと、
第1のコンピュータネットワーク上の移行された計算ノードのネットワークアドレスを、リモートの仮想コンピュータネットワークの計算ノードを表すように構成されている第1のコンピュータネットワーク上のゲートウェイ装置と自動的に関連付けることと、
複数の計算ノードのサブセットの移行後に、サブセットの計算ノードのうちの1つに対する代替計算ノードによって使用された移行先ネットワークアドレスを各々示す第1のコンピュータネットワークを経て送られる1つもしくは複数の追加通信を自動的に管理することであって、追加通信の各々を管理することが、第1のコンピュータネットワークを経て追加通信を構成されたゲートウェイ装置に転送し、それによって、構成されたゲートウェイ装置が、追加通信を、その代替計算ノードに配送するためにリモートの仮想コンピュータネットワークに転送するようにすることを含む、自動的に管理することと、を含む方法。
第2項。第1のコンピュータネットワークは物理的なローカルエリアネットワークであり、リモートの仮想コンピュータネットワークが第1のコンピュータネットワークに対する拡張となるように構成されていて、そのリモートの仮想コンピュータネットワークの計算ノードが、第1のコンピュータネットワークの計算ノードによって現在使用中のネットワークアドレスとは別個である第1のコンピュータネットワークに対するネットワークアドレスを使用し、その方法が、
第1のコンピュータネットワークをリモートの仮想コンピュータネットワークへと動的に移行する前に、
第1のコンピュータネットワークの複数の計算ノードのネットワークアドレスを第1のコンピュータネットワークの複数の計算ノードを表すように構成されているリモートの仮想コンピュータネットワーク上の第2のゲートウェイ装置と自動的に関連付けることと、
第1のコンピュータネットワークの複数の計算ノードのうちの1つによって使用される移行先ネットワークアドレスを各々示すリモートの仮想コンピュータネットワークを介して送られた1つもしくは複数の他の通信を自動的に管理することであって、他の通信の各々を管理することが、リモートの仮想コンピュータネットワークを経て他の通信を第2のゲートウェイ装置に転送することを含み、それによって、第2のゲートウェイ装置が、他の通信によって指示された移行先ネットワークアドレスを使用する1つの計算ノードへの配送のために第1のコンピュータネットワークに他の通信を転送するようにする、自動的に管理することと、をさらに含み、
第1のコンピュータネットワークの複数の計算ノードの各々について、第1のコンピュータネットワーク上の計算ノードのネットワークアドレスを第1のコンピュータネットワーク上のゲートウェイ装置と自動的に関連付けることが、その計算ノードのネットワークアドレスをリモートの仮想コンピュータネットワーク上の第2のゲートウェイ装置との関連付けを解消することをさらに含む方法である、第1項に記載の方法。
第3項。第1のコンピュータネットワークの複数の計算ノードが第1のエンティティの制御下にあり、リモートの仮想コンピュータネットワークの計算ノードが別個の第2のエンティティの制御下にあり、第2のエンティティが、クラウド計算技法を使用して、構成可能なネットワークサービスによって顧客に代わって提供される構成された仮想コンピュータネットワークへのアクセスをその顧客が購入できるようにする料金ベースの構成可能なネットワークサービスを提供し、第1のエンティティが構成可能なネットワークサービスの顧客のうちの1つであり、リモートの仮想コンピュータネットワークが構成可能なネットワークサービスによって提供された仮想コンピュータネットワークのうちの1つであり、リモートの仮想コンピュータネットワークが、第1のコンピュータネットワークのリモートの仮想コンピュータネットワークへの動的な移行の前に、第1のコンピュータネットワークのうちの1つもしくは複数の物理的ネットワーキング装置によって提供された移行済みの第1のコンピュータネットワークにネットワーキング能力を提供するように構成可能なネットワークサービスによってさらに構成される、第1項に記載の方法。
第4項。ネットワーク接続された計算ノードの動的な移行を簡便化するためのコンピュータ実装された方法であって、
第1のコンピュータネットワークの使用中に、第1の地理的位置で複数の計算ノードを有する第1のコンピュータネットワークを第2の地理的位置におけるリモートの仮想第2コンピュータネットワークへと動的に移行するように構成された1つもしくは複数の計算装置の制御下にあり、かつ第1のコンピュータネットワークの複数の計算ノードのうちの少なくとも一部の各々について、
第1のコンピュータネットワークの計算ノードが、第2の地理的位置にあり、リモートの仮想コンピュータネットワークの一部である別個の代替計算ノードへの移行の指示を受信することであって、これにより、移行後に、リモートの仮想コンピュータネットワークの代替計算ノードが移行した計算ノードを第1のコンピュータネットワークの一部として代替し、移行された計算ノードによって以前に使用された第1のコンピュータネットワークのネットワークアドレスを使用するようにする、受信することと、
代替計算ノードによって使用されたネットワークアドレスを、リモートの仮想コンピュータネットワークの代替計算ノードを表すように構成されている第1のコンピュータネットワーク上のゲートウェイ装置と自動的に関連付けることと、
ネットワークアドレスを自動的に関連付けた後に、代替計算ノードによって使用されるネットワークアドレスに第1のコンピュータネットワークを経て送られる1つもしくは複数の追加通信を自動的に管理することであって、追加通信の各々を管理することが、追加通信が代替計算ノードを表すゲートウェイ装置に第1のコンピュータネットワークを経て転送された後に、追加通信をその代替計算ノードに配送するためにリモートの仮想コンピュータネットワークに転送することを含む、自動的に管理することことと、を含む方法。
第5項。第1のコンピュータネットワークのうちの少なくともいくつかの計算ノードが、第1のコンピュータネットワークの複数の計算ノードのすべてを含み、これにより、第1のコンピュータネットワークのすべてが第1のコンピュータネットワークの使用中に段階的にリモートの仮想コンピュータネットワークに段階的に移行し、リモートの仮想コンピュータネットワークへの全ての第1のコンピュータネットワークの段階的移行が完了するまで、リモートの仮想コンピュータネットワークが、第1のコンピュータネットワークに対する拡張として動作するように構成されている、第4項に記載の方法。
第6項。リモートの仮想コンピュータネットワークと関連付けられた1つもしくは複数の計算装置に、リモートの仮想コンピュータネットワークへの第1のコンピュータネットワークの段階的移行の前に、第1のコンピュータネットワークの1つもしくは複数の物理的ネットワーキング装置によって提供された移行済みの第1のコンピュータネットワークに対するネットワーキング能力を提供するように自動的に構成することをさらに含む、第5項に記載の方法。
第7項。リモートの仮想コンピュータネットワークへの第1のコンピュータネットワークの動的な移行の後、およびリモートの仮想コンピュータネットワークの代替計算ノードのうちの少なくとも1つの各々について、対象計算ノードが逆移行後に第1のコンピュータネットワークにある代替計算ノードを代替し、代替計算ノードによって以前に使用された第1のコンピュータネットワークのネットワークアドレスを使用するように、第1のコンピュータネットワークの一部である対象計算ノードへの代替計算ノードの逆移行を自動的に簡便化することであって、自動的に簡便化することが、そのネットワークアドレスに向けられた以降の通信が第1のコンピュータネットワークを介して対象計算ノードに転送されるように、代替計算ノードによって以前に使用されたネットワークアドレスと第1のコンピュータネットワーク上の構成されたゲートウェイ装置との関連付けを解消すること、をさらに含む、第4項に記載の方法。
第8項。リモートの仮想コンピュータネットワークと関連付けられている、少なくともいくつかの計算ノードを選択するための以前に規定された1つもしくは複数の基準を満たすユーザーから受信した1つもしくは複数の命令のうちの少なくとも1つに基づいて、第1のコンピュータネットワークの少なくともいくつかの計算ノードが移行目的で選択される第4項に記載の方法。
第9項。第1のコンピュータネットワークのうちの少なくともいくつかの計算ノードのうちの1つをリモートの仮想コンピュータネットワークに移行する前に、第1のコンピュータネットワークのうちの1つの計算ノードのネットワークアドレスが、そのネットワークアドレスに向けられた通信を第1のコンピュータネットワーク転送することによって、第1のコンピュータネットワークの1つの計算ノードを表すように構成されているリモートの仮想コンピュータネットワーク上の第2のゲートウェイ装置と関連付けられており、第1のコンピュータネットワークの1つの計算ノードに対する代替計算ノードによって使用されたネットワークアドレスの第1のコンピュータネットワーク上のゲートウェイ装置と自動的に関連付けることが、代替計算ノードをサポートするためにリモートの仮想コンピュータネットワークをプロビジョニングすることの一部であり、リモートの仮想コンピュータネットワークをプロビジョニングすることが、代替計算ノードによって使用されるそのネットワークアドレスに向けられた以降の通信がリモートの仮想コンピュータネットワークを介して代替計算ノードに転送されるように、代替計算ノードによって使用されたネットワークアドレスと、リモートの仮想コンピュータネットワーク上の第2のゲートウェイ装置との関連付けを解消すること、をさらに含む、第4項に記載の方法。
第10項。1つの計算ノードが代替計算ノードに移行される前に、その1つの計算ノードが1つもしくは複数のソフトウェアアプリケーションの各々のコピーを実行し、代替計算ノードをサポートするためにリモートの仮想コンピュータネットワークをプロビジョニングすることが、1つもしくは複数のソフトウェアアプリケーションの各々のコピーの代替計算ノード上での実行を開始することをさらに含む、第9項に記載の方法。
第11項。第1のコンピュータネットワークは1つもしくは複数の物理的に相互接続されたローカルエリアコンピュータネットワークを第1の地理的位置に含み、かつ第1のコンピュータネットワークは第1のエンティティの制御下にあり、リモートの仮想コンピュータネットワークは第2の地理的位置にあり、リモートの仮想コンピュータネットワークは別個の第2のエンティティの制御下にあり、第2のエンティティが、クライアントに代わって構成可能なネットワークサービスによって提供された仮想コンピュータネットワークをクライアントが構成できるようにする構成可能なネットワークサービスを提供し、第1のエンティティが構成可能なネットワークサービスのクライアントのうちの1つであり、リモートの仮想コンピュータネットワークが構成可能なネットワークサービスによって提供された仮想コンピュータネットワークのうちの1つである、第4項に記載の方法。
第12項。1つもしくは複数の構成された計算装置が、構成可能なネットワークサービスの制御下で運用され、その構成可能なネットワークサービスが、構成可能なネットワークサービスによって提供された仮想コンピュータネットワークで使用される複数の計算ノードを提供し、第1のコンピュータネットワークのうちの少なくともいくつかの計算ノードが、第1のコンピュータネットワークの複数の計算ノードのうちの2つ以上を含み、少なくともいくつかの計算ノードの各々について、第1のコンピュータネットワークの計算ノードに対する代替計算ノードが、構成可能なネットワークサービスによって選択され、第1のエンティティに代わってリモートの仮想コンピュータネットワークに動的に追加される複数の計算ノードのうちの別個の1つであり、そのために、第1のコンピュータネットワークをリモートの仮想コンピュータネットワークへと動的に移行した後に、リモートの仮想コンピュータネットワークが2つ以上の動的に追加された計算ノードを含む、第11項に記載の方法。
第13項。少なくともいくつかの計算ノードに対する代替計算ノードが、各々、構成可能なネットワークサービスの複数の物理計算システムのうちの1つにホストされる仮想マシンであり、2つ以上の代替計算ノードをリモートの仮想コンピュータネットワークに動的に追加することが、ホストされた仮想マシンがリモートの仮想コンピュータネットワークの一部として含まれるように、1つもしくは複数の物理計算システム上で実行される1つもしくは複数の仮想マシンマネージャモジュールを、ホストされた仮想マシンの通信を管理するように構成すること含む、第12項に記載の方法。
第14項。リモートの仮想コンピュータネットワークへと移行される第1のコンピュータネットワークのうちの少なくともいくつかの計算ノードのうちの1つもしくは複数の各々について、リモートの仮想コンピュータネットワークへの計算ノードの移行が第1のコンピュータネットワークの他の計算ノードに対して透過的な方法で実行され、これにより、他の計算ノードが、計算ノードの移行中に第1のコンピュータネットワークを経て第1のコンピュータネットワークの移行先計算ノードに他の通信を送り続け、かつこれにより、他の通信のうちの少なくとも1つの移行先計算ノードが移行中の計算ノードである、第4項に記載の方法。
第15項。1つもしくは複数の構成された計算装置が、構成されたゲートウェイ装置を含み、第1のコンピュータネットワークのうちの少なくともいくつかの計算ノードの各々のネットワークアドレスがインターネットプロトコル(「IP」)アドレスである、第4項に記載の方法。
第16項。方法を実行することにより、ネットワーク接続された計算ノードの動的な移行を簡便化するように、1つもしくは複数の計算装置を構成するコンテンツを有するコンピュータ可読メディアであって、その方法が、
第1のコンピュータネットワークの1つもしくは複数の計算ノードの各々について、1つもしくは複数の構成された計算装置の制御下で、かつ第1のコンピュータネットワークが第1のコンピュータネットワークに対する別個のネットワークアドレスを各々有する複数の計算ノードで使用中に、第1のコンピュータネットワークの複数の計算ノードのうちの1つもしくは複数を別個の仮想コンピュータネットワークへと動的に移行するのを簡便化することと、
移行後に、仮想コンピュータネットワークの別個の計算ノードが、第1のコンピュータネットワークの継続動作のために、移行された計算ノードのネットワークアドレスを使用するように、第1のコンピュータネットワークの計算ノードを仮想コンピュータネットワークの別個の計算ノードへと移行する指示を受信することと、
第1のコンピュータネットワーク上の移行された計算ノードのネットワークアドレスを、仮想コンピュータネットワークと対話するように構成されている第1のコンピュータネットワーク上のゲートウェイ装置と自動的に関連付けることであって、自動的に関連付けた後に、移行された計算ノードのそのネットワークアドレスに第1のコンピュータネットワークを経て送られた1つもしくは複数の通信の各々について、通信が構成されたゲートウェイ装置に転送され、仮想コンピュータネットワークの別個の計算ノードにさらに転送されるようにする、自動的に関連付けることと、
を含むコンピュータ可読メディア。
第17項。第1のコンピュータネットワークの複数の計算ノードが1つもしくは複数の第1の地理的位置にあり、仮想コンピュータネットワークが第1のコンピュータネットワークから離れており、かつ1つもしくは複数の第1の地理的位置から離れた第2の地理的位置に他の複数の計算ノードを含み、リモートの仮想コンピュータネットワークが第1のコンピュータネットワークに対する拡張として動作するように構成されており、第1のコンピュータネットワークの1つもしくは複数の計算ノードの各々について、第1のコンピュータネットワークの計算ノードがそこへ移行されるリモートの仮想コンピュータネットワークの別個の計算ノードが、他の計算ノードのうちの1つであり、かつリモートの仮想コンピュータネットワーク上の第1のコンピュータネットワークの計算ノードの代替として動作する、第16項に記載のコンピュータ可読メディア。
第18項。第1のコンピュータネットワークの複数の計算ノードが第1のエンティティの制御下にあり、リモートの仮想コンピュータネットワークの計算ノードが別個の第2のエンティティの制御下にあり、第2のエンティティが、クライアントに代わってネットワークアクセス可能なサービスによって提供された仮想コンピュータネットワークをクライアントが構成できるようにするネットワークアクセス可能なサービスを提供し、第1のエンティティがネットワークアクセス可能なサービスのクライアントのうちの1つであり、リモートの仮想コンピュータネットワークがネットワークアクセス可能なサービスによって提供された仮想コンピュータネットワークのうちの1つである、第17項に記載のコンピュータ可読メディア。
第19項。動的な移行の簡便化が、第1のコンピュータネットワークの複数の計算ノードの各々について、第1のコンピュータネットワークの使用中に第1のコンピュータネットワークを別個の仮想コンピュータネットワークに段階的に移行するように実行される、第16項に記載のコンピュータ可読メディア。
第20項。コンピュータ可読メディアが、コンテンツと、そのコンテンツを含んでいる生成された記憶データ信号を含むデータ送信メディアとを記憶する1つもしくは複数の構成された装置のうちの1つのメモリのうちの少なくとも1つであり、そのコンテンツが、実行されると1つもしくは複数の構成された装置がその方法を実行させる命令である、第16項に記載のコンピュータ可読メディア。
第21項。ネットワーク接続された計算ノードの動的な移行を簡便化するように構成された計算装置であって、
1つもしくは複数のプロセッサと、
1つもしくは複数のプロセッサのうちの少なくとも1つによって実行されると、第1のコンピュータネットワークおよび第2のコンピュータネットワークの使用中に、別個の第1のローカルエリアコンピュータネットワークと第2のローカルエリアコンピュータネットワークとの間の1つもしくは複数の計算ノードの動的な移行を簡便化するように構成されている移行マネージャモジュールと、を備え、1つもしくは複数の計算ノードの各々について、動的な移行の簡便化が、
移行元のコンピュータネットワークから移行先のコンピュータネットワークへの計算ノードの移行の指示を受信することであって、移行元のコンピュータネットワークが第1のコンピュータネットワークおよび第2のコンピュータネットワークのうちの一方であり、移行先のコンピュータネットワークが第1のコンピュータネットワークおよび第2のコンピュータネットワークのうちの他方であり、移送された計算ノードが、移行前に移行元のコンピュータネットワークの動作の一部としてアドレスを使用し、移行後にそのアドレスを使用する移行先のコンピュータネットワークの別個の代替計算ノードによって代替され、これにより、移行後に、移行された計算ノードよって以前に実行された移行元のコンピュータネットワークの動作を代替計算ノードが代替するようにする、受信することと、
移行元のコンピュータネットワーク上の移行された計算ノードのアドレスを、移行先のコンピュータネットワークと対話するように構成されている移行元のコンピュータネットワーク上のゲートウェイ装置と自動的に関連付けることであって、これにより、移行後に移行元のコンピュータネットワークを経てそのアドレスに送られる1つもしくは複数の通信の各々について、通信が、移行先のコンピュータネットワークの代替計算ノードに転送される構成されたゲートウェイ装置に転送される、自動的に関連付けることと、を含む、計算装置。
第22項。第1のコンピュータネットワークが、1つもしくは複数の第1の地理的位置に、複数の計算ノードを有する1つもしくは複数の物理的コンピュータネットワークを含み、第2のコンピュータネットワークが、1つもしくは複数の第1の地理的位置から離れた第2の地理的位置における他の複数の計算ノードを含む仮想コンピュータネットワークである、第21項に記載の計算装置。
第23項。第1のコンピュータネットワークの複数の計算ノードが第1のエンティティの制御下にあり、第2のコンピュータネットワークのもう一方の計算ノードが別個の第2のエンティティの制御下にあり、第2のエンティティが、クライアントに代わってネットワークアクセス可能なサービスによって提供された仮想コンピュータネットワークをクライアントが構成できるようにするネットワークアクセス可能なサービスを提供し、第1のエンティティがネットワークアクセス可能なサービスのクライアントのうちの1つであり、第2のコンピュータネットワークが、ネットワークアクセス可能なサービスによって提供された仮想コンピュータネットワークのうちの1つであり、第2のコンピュータネットワークが、第1のコンピュータネットワークに対する拡張として動作するように構成されている、第22項に記載の計算装置。
第24項。第1のコンピュータネットワークが、1つもしくは複数の第1の地理的位置に、複数の計算ノードを有する1つもしくは複数の物理的コンピュータネットワークを含み、第2のコンピュータネットワークが、1つもしくは複数の第1の地理的位置から離れている1つもしくは複数の他の第2の地理的位置に他の複数の計算ノードを有する1つもしくは複数の他の物理的コンピュータネットワークを含む、第21項に記載の計算装置。
第25項。1つもしくは複数の計算ノードの各々に対する移行元のコンピュータネットワークが第1のコンピュータネットワークであり、1つもしくは複数の計算ノードの各々に対する移行先のコンピュータネットワークが第2のコンピュータネットワークであり、動的な移行の簡便化が、第1のコンピュータネットワークの複数の計算ノードの各々について、第1のコンピュータネットワークの使用中に第1のコンピュータネットワークを第2のコンピュータネットワークに段階的に移行するように実行される、第21項に記載の計算装置。
第26項。移行される1つもしくは複数の計算ノードによって使用されたアドレスがハードウェアアドレスであり、移行元のコンピュータネットワーク上の1つもしくは複数の移行された計算ノードのハードウェアアドレスを、移行元のコンピュータネットワーク上のゲートウェイ装置と自動的に関連付けることが、移行元のコンピュータネットワークを経て1つもしくは複数の移行された計算ノードのハードウェアアドレスに送られた通信を、移行元のコンピュータネットワーク上のゲートウェイ装置へと向けさせるようにする、1つもしくは複数の移行された計算ノードのハードウェアアドレスを偽装する役割を果たす移行元のコンピュータネットワーク上のゲートウェイ装置を含む、第25項に記載の計算装置。
第27項。移行された1つもしくは複数の計算ノードによって使用されたアドレスがネットワークアドレスであり、移行元のコンピュータネットワーク上の1つもしくは複数の移行された計算ノードのネットワークアドレスを、移行元のコンピュータネットワーク上のゲートウェイ装置と自動的に関連付けることが、移行元のコンピュータネットワーク上のゲートウェイ装置による1つもしくは複数の宣言を開始して、移行元のコンピュータネットワークを経て1つもしくは複数の移行された計算ノードのネットワークアドレスに送られた通信を、移行元のコンピュータネットワーク上のゲートウェイ装置へと向けさせるようにすることを含む、第25項に記載の計算装置。
第28項。移行マネージャモジュールが計算装置によって実行されるソフトウェア命令を含む、第21項に記載の計算装置。
第29項。移行マネージャモジュールが、別個の第1のコンピュータネットワークおよび第2のコンピュータネットワークの使用中に第1のローカルエリアコンピュータネットワークと第2のローカルエリアコンピュータネットワークとの間の1つもしくは複数の計算ノードの動的な移行を簡便化するための手段からなり、動的な移行を簡便化することが、1つもしくは複数の計算ノードの各々について、
移行元のコンピュータネットワークから移行先のコンピュータネットワークへの計算ノードの移行の指示を受信することであって、移行元のコンピュータネットワークが第1のコンピュータネットワークおよび第2のコンピュータネットワークのうちの一方であり、移行先のコンピュータネットワークが第1のコンピュータネットワークおよび第2のコンピュータネットワークのうちの他方であり、移行された計算ノードが、移行前に移行元のコンピュータネットワークの動作の一部としてアドレスを使用し、移行後にそのアドレスを使用する移行先のコンピュータネットワークの別個の代替計算ノードによって代替され、これにより、移行後に、移行された計算ノードよって以前に実行された移行元のコンピュータネットワークの動作を代替計算ノードが代替するようにする、受信することと、
移行元のコンピュータネットワーク上の移行された計算ノードのアドレスを、移行先のコンピュータネットワークと対話するように構成されている移行元のコンピュータネットワーク上のゲートウェイ装置と自動的に関連付けることであって、これにより、移行後に移行元のコンピュータネットワークを経てそのアドレスに送られる1つもしくは複数の通信の各々について、移行先のコンピュータネットワークの代替計算ノードに転送されるように通信が構成されたゲートウェイ装置に転送される、自動的に関連付けることと、を含む、第21項に記載の計算装置。
本明細書に具体的な実施形態を例示目的で記載してきたが、本発明の趣旨および範囲から逸脱しない限り、様々な改変が行われてもよいということが、上記より理解されよう。したがって本発明は、添付の請求項およびそこに明記された要素以外によって制限されない。加えて、本発明の特定の態様が特定の特許請求の範囲の形態で以下に提示されるが、発明者は、利用可能な任意の特許請求の範囲の形態で本発明の様々な態様を意図する。例えば、現在は本発明のいくつかの態様だけがコンピュータ可読媒体で具現化されると明記される場合があるが、他の態様も同様に具現化される場合がある。

Claims (15)

  1. コンピュータ実装された方法であって、
    構成されたコンピューティングデバイスによって、使用中の第1のコンピュータネットワークの複数の計算ノードから選択された1つまたは複数の対象計算ノードを、オンラインサービスのクライアントであり前記第1のコンピュータネットワークに関連づけられたクライアントのために、前記第1のコンピュータネットワークから、前記オンラインサービスによって提供されるリモート仮想コンピュータネットワークへの移行を決定することと、
    前記第1のコンピュータネットワークの使用中に、前記1つまたは複数の対象計算ノードを、前記リモート仮想コンピュータネットワークへ移行することであって、前記1つまたは複数の対象計算ノードの各々について、
    前記構成されたコンピューティングデバイスによって、前記リモート仮想コンピュータネットワークにおける代替計算ノードを提供し、前記代替計算ノードが前記第1のコンピュータネットワークの前記対象計算ノードの代わりをすることを開始し、
    前記構成されたコンピューティングデバイスによって、前記対象計算ノードによって使用される前記第1のコンピュータネットワークのネットワークアドレスを、前記第1のコンピュータネットワークにおける装置に関連付け、前記第1のコンピュータネットワークを経て前記ネットワークアドレスに送られる以降の通信を、前記装置から前記リモート仮想コンピュータネットワークにおける前記代替計算ノードへ転送可能とすることを開始することとにより、移行することと、
    を含むことを特徴とする方法。
  2. 前記第1のコンピュータネットワークにおける前記装置は、ゲートウェイ装置であり、前記対象計算ノードのうち1つの前記ネットワークアドレスをゲートウェイ装置に関連付けた後、前記1つの対象計算ノードに対する前記代替計算ノードに配送するために、1つまたは複数の通信を、前記ゲートウェイ装置から前記リモート仮想コンピュータネットワークに転送することにより、前記第1のコンピュータネットワークを経て前記ネットワークアドレスに送られる前記1つまたは複数の通信を自動的に管理することを含むことを特徴とする請求項1に記載の方法。
  3. 前記1つまたは複数の対象計算ノードは前記複数の計算ノードの一部であり、これにより、前記1つまたは複数の対象計算ノードの前記移行後の、前記第1のコンピュータネットワークの継続動作は、前記1つまたは複数の対象計算ノードの代わりに、前記リモート仮想コンピュータネットワークの前記代替計算ノードの使用を含むことを特徴とする請求項1に記載の方法。
  4. 前記1つまたは複数の対象計算ノードの前記リモート仮想コンピュータネットワークへの前記移行後、前記対象計算ノードのうち少なくとも1つの各々について、前記対象計算ノードに対する前記代替計算ノードの、前記第1のコンピュータネットワークへの逆移行を開始することであって、前記逆移行は、前記第1のコンピュータネットワーク上の前記装置から、前記対象計算ノードに対する前記ネットワークアドレスの関連付けを解消することを含み、および前記ネットワークアドレスを、前記第1のコンピュータネットワークにおいて前記対象計算ノードとして機能する計算ノードに関連付けることを含むことを特徴とする請求項3に記載の方法。
  5. 前記1つまたは複数の対象計算ノードは前記複数の計算ノードすべてを含み、これにより前記第1のコンピュータネットワークのすべては、第1のコンピュータネットワークの使用中に、前記リモート仮想コンピュータネットワークに段階的に移行されることを特徴とする請求項1に記載の方法。
  6. 前記リモート仮想コンピュータネットワークへの、前記第1のコンピュータネットワークの段階的な移行の前に、前記第1のコンピュータネットワークの1つまたは複数の物理的なネットワーキング装置によって以前に提供されていた前記第1のコンピュータネットワークに対するネットワーキング能力を、前記リモート仮想コンピュータネットワークが仮想的に提供し、移行された後の前記第1のコンピュータネットワークを構成するために、前記オンラインサービスと1つまたは複数の対話を実行することを特徴とする請求項5に記載の方法。
  7. 前記1つまたは複数の対象計算ノードの移行を決定することは、前記オンラインサービスの前記クライアントであるユーザから受信される命令に基づくことを特徴とする請求項1に記載の方法。
  8. 前記オンラインサービスは、構成可能なネットワークサービスであり、複数のクライアントのために前記構成可能なネットワークサービスによって提供された複数の仮想コンピュータネットワークを構成することを、前記複数のクライアントができるようにし、前記第1のコンピュータネットワークに関連づけられた前記クライアントは、前記構成可能なネットワークサービスの前記複数のクライアントのうちの1つであることを特徴とする請求項1に記載の方法。
  9. 前記構成されたコンピューティングデバイスは、前記構成可能なネットワークサービスの制御下で運用され、前記構成可能なネットワークサービスが、前記構成可能なネットワークサービスによって提供される、前記複数の仮想コンピュータネットワークで使用するための複数の計算ノードを提供し、および、前記1つまたは複数の対象計算ノードの各々について、前記対象計算ノードに対する前記代替計算ノードは、前記構成可能なネットワークサービスによって選択され、および前記クライアントのために前記リモート仮想コンピュータネットワークに動的に追加された前記複数の計算ノードのうちの1つであることを特徴とする請求項8に記載の方法。
  10. 前記対象計算ノードのうち1つに前記代替計算ノードの提供を開始することは、前記構成されたコンピューティングデバイスによって、前記代替計算ノードが前記リモート仮想コンピュータネットワークに追加されるように、前記構成可能なネットワークサービスとの、1つまたは複数の対話を実行することを含むことを特徴とする請求項8に記載の方法。
  11. 前記対象計算ノードのうち1つに前記代替計算ノードの提供を開始することは、前記構成されたコンピューティングデバイスによって、前記リモート仮想コンピュータネットワークにおける前記代替計算ノードが、プロビジョンされて前記1つの対象計算ノードの動作を実行するように、前記構成可能なネットワークサービスとの、1つまたは複数の対話を実行することを含むことを特徴とする請求項8に記載の方法。
  12. 前記リモート仮想コンピュータネットワークへの、前記1つまたは複数の対象計算ノードの前記移行の前に、前記構成されたコンピューティングデバイスによって、前記クライアントのために前記リモート仮想コンピュータネットワークが作成されるように、前記構成可能なネットワークサービスとの、1つまたは複数の対話を実行することを含むことを特徴とする請求項8に記載の方法。
  13. 前記リモート仮想コンピュータネットワークへの、前記1つまたは複数の対象計算ノードの前記移行が、前記第1のコンピュータネットワークの前記複数の計算ノードの他の計算ノードに対して透過的な方法で実行され、これにより、前記複数の計算ノードの前記他の計算ノードが、前記1つまたは複数の対象計算ノードの前記移行中に前記第1のコンピュータネットワークを経て、前記第1のコンピュータネットワークの移行先計算ノードに通信を送り続けることを特徴とする請求項1に記載の方法。
  14. コンピュータに、請求項1から請求項13のいずれか1項に記載の方法を実行させるためのプログラム。
  15. 1つまたは複数のプロセッサを含むコンピューティング装置であって、
    前記1つまたは複数のプロセッサによって実行されると、請求項1から請求項13のいずれか1項に記載の方法を、前記コンピューティング装置に実行させる命令を記憶するメモリを含むコンピューティング装置。
JP2014078195A 2009-07-22 2014-04-04 コンピュータネットワークの動的な移行 Active JP5948362B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/507,742 2009-07-22
US12/507,742 US8234377B2 (en) 2009-07-22 2009-07-22 Dynamically migrating computer networks

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2012521774A Division JP5520375B2 (ja) 2009-07-22 2010-07-22 コンピュータネットワークの動的な移行

Publications (2)

Publication Number Publication Date
JP2014157617A JP2014157617A (ja) 2014-08-28
JP5948362B2 true JP5948362B2 (ja) 2016-07-06

Family

ID=43498243

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2012521774A Active JP5520375B2 (ja) 2009-07-22 2010-07-22 コンピュータネットワークの動的な移行
JP2014078195A Active JP5948362B2 (ja) 2009-07-22 2014-04-04 コンピュータネットワークの動的な移行

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2012521774A Active JP5520375B2 (ja) 2009-07-22 2010-07-22 コンピュータネットワークの動的な移行

Country Status (7)

Country Link
US (2) US8234377B2 (ja)
EP (1) EP2457159B1 (ja)
JP (2) JP5520375B2 (ja)
CN (2) CN102473114B (ja)
CA (1) CA2767553C (ja)
SG (1) SG177515A1 (ja)
WO (1) WO2011011576A1 (ja)

Families Citing this family (296)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8095875B2 (en) * 2001-06-22 2012-01-10 Krause Philip R Method and apparatus for consolidating network information
US8217992B2 (en) * 2007-01-11 2012-07-10 The Jackson Laboratory Microscopic imaging techniques
US8825838B2 (en) 2010-10-15 2014-09-02 Red Hat, Inc. Identification of business process application service groups
US9727440B2 (en) 2007-06-22 2017-08-08 Red Hat, Inc. Automatic simulation of virtual machine performance
US9354960B2 (en) 2010-12-27 2016-05-31 Red Hat, Inc. Assigning virtual machines to business application service groups based on ranking of the virtual machines
US9495152B2 (en) 2007-06-22 2016-11-15 Red Hat, Inc. Automatic baselining of business application service groups comprised of virtual machines
US8156378B1 (en) 2010-10-15 2012-04-10 Red Hat, Inc. System and method for determination of the root cause of an overall failure of a business application service
US8938489B2 (en) 2007-06-22 2015-01-20 Red Hat, Inc. Monitoring system performance changes based on configuration modification
US9678803B2 (en) 2007-06-22 2017-06-13 Red Hat, Inc. Migration of network entities to a cloud infrastructure
US9569330B2 (en) 2007-06-22 2017-02-14 Red Hat, Inc. Performing dependency analysis on nodes of a business application service group
US8787391B2 (en) * 2009-08-11 2014-07-22 Novell, Inc. Techniques for using the network as a memory device
US8417938B1 (en) * 2009-10-16 2013-04-09 Verizon Patent And Licensing Inc. Environment preserving cloud migration and management
US9036504B1 (en) 2009-12-07 2015-05-19 Amazon Technologies, Inc. Using virtual networking devices and routing information to associate network addresses with computing nodes
US8995301B1 (en) 2009-12-07 2015-03-31 Amazon Technologies, Inc. Using virtual networking devices to manage routing cost information
US7937438B1 (en) 2009-12-07 2011-05-03 Amazon Technologies, Inc. Using virtual networking devices to manage external connections
US9203747B1 (en) 2009-12-07 2015-12-01 Amazon Technologies, Inc. Providing virtual networking device functionality for managed computer networks
US8224971B1 (en) 2009-12-28 2012-07-17 Amazon Technologies, Inc. Using virtual networking devices and routing information to initiate external actions
US7991859B1 (en) 2009-12-28 2011-08-02 Amazon Technologies, Inc. Using virtual networking devices to connect managed computer networks
US7953865B1 (en) 2009-12-28 2011-05-31 Amazon Technologies, Inc. Using virtual networking devices to manage routing communications between connected computer networks
US8396946B1 (en) * 2010-03-31 2013-03-12 Amazon Technologies, Inc. Managing integration of external nodes into provided computer networks
US8224931B1 (en) * 2010-03-31 2012-07-17 Amazon Technologies, Inc. Managing use of intermediate destination computing nodes for provided computer networks
US9047136B2 (en) * 2010-06-11 2015-06-02 Oracle International Corporation Method and system for migrating the state of a virtual cluster
US8239572B1 (en) * 2010-06-30 2012-08-07 Amazon Technologies, Inc. Custom routing decisions
US8296459B1 (en) * 2010-06-30 2012-10-23 Amazon Technologies, Inc. Custom routing decisions
US9794220B2 (en) * 2010-08-31 2017-10-17 Comcast Cable Communications, Llc Wireless extension of broadband access
US8549129B2 (en) * 2010-10-12 2013-10-01 Microsoft Corporation Live migration method for large-scale IT management systems
KR101401378B1 (ko) * 2010-10-26 2014-05-30 한국전자통신연구원 가상 머신의 라이브 마이그레이션에서 가상 연결성 유지를 위한 호스트 시스템, 원격 장치 서버 및 이를 이용한 연결성 유지 방법
US8533724B1 (en) 2010-12-20 2013-09-10 Amazon Technologies, Inc. Virtual resource provisioning by assigning colors to virtual resources in multi-tenant resource pool
US8868766B1 (en) * 2011-03-29 2014-10-21 Amazon Technologies, Inc. Optimizing communication among collections of computing resources
JP5767400B2 (ja) * 2011-04-28 2015-08-19 華為技術有限公司Huawei Technologies Co.,Ltd. 仮想ネットワーク移行の方法、関連装置、およびシステム
US8924541B2 (en) * 2011-05-29 2014-12-30 International Business Machines Corporation Migration of virtual resources over remotely connected networks
US8824471B2 (en) 2011-06-01 2014-09-02 Cisco Technology, Inc. Maintained message delivery during routing domain migration
US9736065B2 (en) 2011-06-24 2017-08-15 Cisco Technology, Inc. Level of hierarchy in MST for traffic localization and load balancing
US8997107B2 (en) * 2011-06-28 2015-03-31 Microsoft Technology Licensing, Llc Elastic scaling for cloud-hosted batch applications
US9246985B2 (en) 2011-06-28 2016-01-26 Novell, Inc. Techniques for prevent information disclosure via dynamic secure cloud resources
US9781205B2 (en) * 2011-09-12 2017-10-03 Microsoft Technology Licensing, Llc Coordination engine for cloud selection
US8775438B1 (en) 2011-09-22 2014-07-08 Amazon Technologies, Inc. Inferring resource allocation decisions from descriptive information
US20140222873A1 (en) * 2011-09-27 2014-08-07 Nec Corporation Information system, management apparatus, method for processing data, data structure, program, and recording medium
US10320951B2 (en) * 2011-10-31 2019-06-11 Hurricane Electric Systems and methods for establishing a virtual local area network
CA2894270A1 (en) * 2011-12-09 2013-06-13 Kubisys Inc. Hybrid virtual computing environments
JP5803656B2 (ja) * 2011-12-21 2015-11-04 富士通株式会社 配信経路構築方法及び端末装置
US8908698B2 (en) 2012-01-13 2014-12-09 Cisco Technology, Inc. System and method for managing site-to-site VPNs of a cloud managed network
US9021096B2 (en) 2012-01-23 2015-04-28 International Business Machines Corporation Performing maintenance operations on cloud computing node without requiring to stop all virtual machines in the node
US8909734B2 (en) 2012-02-07 2014-12-09 International Business Machines Corporation Migrating data between networked computing environments
US20130218768A1 (en) 2012-02-21 2013-08-22 Mike Leber Systems and Methods for Facilitating Secured Financial Transactions
US9201704B2 (en) * 2012-04-05 2015-12-01 Cisco Technology, Inc. System and method for migrating application virtual machines in a network environment
US9129124B2 (en) * 2012-04-12 2015-09-08 Hewlett-Packard Development Company, L.P. Dynamic provisioning of virtual systems
US20150046507A1 (en) * 2012-04-16 2015-02-12 Hewlett-Packard Development Company, L.P. Secure Network Data
US9223634B2 (en) 2012-05-02 2015-12-29 Cisco Technology, Inc. System and method for simulating virtual machine migration in a network environment
US20130326038A1 (en) * 2012-06-05 2013-12-05 Microsoft Corporation Management of datacenters for fault tolerance and bandwidth
JP6304493B2 (ja) * 2012-06-22 2018-04-04 日本電気株式会社 仮想マシンのマイグレーション方法、マイグレーション装置及びプログラム
US9965760B2 (en) 2012-06-29 2018-05-08 Hurricane Electric Systems and methods for facilitating electronic transactions utilizing a mobile computing device
US20140032774A1 (en) * 2012-07-30 2014-01-30 Microsoft Corporation Client-emulating Gateways for Communication Network Migration
US8990956B2 (en) 2012-08-06 2015-03-24 Hurricane Electric Systems and methods of exchanging information for a reward
CN104781783B (zh) * 2012-08-28 2018-02-16 云思易有限责任公司 在现有计算环境中部署的集成计算平台
US10394611B2 (en) * 2012-11-26 2019-08-27 Amazon Technologies, Inc. Scaling computing clusters in a distributed computing system
US20140161028A1 (en) * 2012-12-07 2014-06-12 At&T Mobility Ii Llc Digital mobile radio front end processor
CN103067514B (zh) * 2012-12-29 2016-09-07 深圳先进技术研究院 用于视频监控分析系统的云计算资源优化的方法和系统
CN103079057B (zh) * 2012-12-29 2016-03-09 深圳先进技术研究院 用于视频监控分析系统进行资源优化的方法和系统
US10452284B2 (en) * 2013-02-05 2019-10-22 International Business Machines Corporation Storage system based host computer monitoring
US9043439B2 (en) 2013-03-14 2015-05-26 Cisco Technology, Inc. Method for streaming packet captures from network access devices to a cloud server over HTTP
US9426154B2 (en) * 2013-03-14 2016-08-23 Amazon Technologies, Inc. Providing devices as a service
JP6155861B2 (ja) * 2013-06-06 2017-07-05 富士通株式会社 データ管理方法、データ管理プログラム、データ管理システム及びデータ管理装置
CN104239026B (zh) * 2013-06-21 2019-12-27 伊姆西公司 用于度量存储系统性能的方法和装置
JP5964786B2 (ja) * 2013-06-24 2016-08-03 日本電信電話株式会社 管理装置、通信システム、管理方法、および、管理プログラム
JP6009415B2 (ja) * 2013-07-02 2016-10-19 日本電信電話株式会社 通信システム、管理装置、管理方法、および、管理プログラム
US9996562B2 (en) 2013-07-09 2018-06-12 Oracle International Corporation Automated database migration architecture
US11157664B2 (en) 2013-07-09 2021-10-26 Oracle International Corporation Database modeling and analysis
US10776244B2 (en) * 2013-07-09 2020-09-15 Oracle International Corporation Consolidation planning services for systems migration
US9686121B2 (en) * 2013-09-23 2017-06-20 Amazon Technologies, Inc. Client-premise resource control via provider-defined interfaces
US10333789B1 (en) * 2013-12-18 2019-06-25 Amazon Technologies, Inc. Client-directed placement of remotely-configured service instances
US10223385B2 (en) 2013-12-19 2019-03-05 At&T Intellectual Property I, L.P. Systems, methods, and computer storage devices for providing third party application service providers with access to subscriber information
US9529828B1 (en) * 2013-12-24 2016-12-27 EMC IP Holding Company LLC Automating configuration and migrating configurations of assets in a storage area network
US9942199B2 (en) * 2013-12-31 2018-04-10 Open Invention Network, Llc Optimizing connections over virtual private networks
US9800515B2 (en) * 2014-01-31 2017-10-24 Apollo Education Group, Inc. Mechanism for controlling a process on a computing node based on the participation status of the computing node
US11132173B1 (en) * 2014-02-20 2021-09-28 Amazon Technologies, Inc. Network scheduling of stimulus-based actions
US9703611B1 (en) 2014-03-21 2017-07-11 Amazon Technologies, Inc. Isolating resources for utilization by tenants executing in multi-tenant software containers
US10374866B1 (en) * 2014-03-31 2019-08-06 Amazon Technologies, Inc. Moving nodes in a distributed system
US9755858B2 (en) 2014-04-15 2017-09-05 Cisco Technology, Inc. Programmable infrastructure gateway for enabling hybrid cloud services in a network environment
US9473365B2 (en) 2014-05-08 2016-10-18 Cisco Technology, Inc. Collaborative inter-service scheduling of logical resources in cloud platforms
US9686140B2 (en) * 2014-07-02 2017-06-20 Verizon Patent And Licensing Inc. Intelligent network interconnect
US10122605B2 (en) 2014-07-09 2018-11-06 Cisco Technology, Inc Annotation of network activity through different phases of execution
US9729583B1 (en) 2016-06-10 2017-08-08 OneTrust, LLC Data processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance
WO2016024970A1 (en) 2014-08-13 2016-02-18 Hitachi, Ltd. Method and apparatus for managing it infrastructure in cloud environments
US9923827B2 (en) 2014-09-05 2018-03-20 At&T Intellectual Property I, L.P. Load balancing and migration of transport connections
CN105471609B (zh) 2014-09-05 2019-04-05 华为技术有限公司 一种用于配置业务的方法和装置
US9825878B2 (en) 2014-09-26 2017-11-21 Cisco Technology, Inc. Distributed application framework for prioritizing network traffic using application priority awareness
US9853873B2 (en) 2015-01-10 2017-12-26 Cisco Technology, Inc. Diagnosis and throughput measurement of fibre channel ports in a storage area network environment
US10050862B2 (en) 2015-02-09 2018-08-14 Cisco Technology, Inc. Distributed application framework that uses network and application awareness for placing data
US10037617B2 (en) 2015-02-27 2018-07-31 Cisco Technology, Inc. Enhanced user interface systems including dynamic context selection for cloud-based networks
US10708342B2 (en) 2015-02-27 2020-07-07 Cisco Technology, Inc. Dynamic troubleshooting workspaces for cloud and network management systems
US10715460B2 (en) * 2015-03-09 2020-07-14 Amazon Technologies, Inc. Opportunistic resource migration to optimize resource placement
US9900250B2 (en) 2015-03-26 2018-02-20 Cisco Technology, Inc. Scalable handling of BGP route information in VXLAN with EVPN control plane
US10382534B1 (en) 2015-04-04 2019-08-13 Cisco Technology, Inc. Selective load balancing of network traffic
CN104796338B (zh) * 2015-04-24 2018-08-24 新华三技术有限公司 虚拟机迁移方法及装置
US10222986B2 (en) 2015-05-15 2019-03-05 Cisco Technology, Inc. Tenant-level sharding of disks with tenant-specific storage modules to enable policies per tenant in a distributed storage system
US10476982B2 (en) 2015-05-15 2019-11-12 Cisco Technology, Inc. Multi-datacenter message queue
US11588783B2 (en) 2015-06-10 2023-02-21 Cisco Technology, Inc. Techniques for implementing IPV6-based distributed storage space
CN108283020B (zh) * 2015-06-29 2023-10-20 亚马逊科技有限公司 使用三角形方法的虚拟机实例迁移
US10034201B2 (en) 2015-07-09 2018-07-24 Cisco Technology, Inc. Stateless load-balancing across multiple tunnels
US10778765B2 (en) 2015-07-15 2020-09-15 Cisco Technology, Inc. Bid/ask protocol in scale-out NVMe storage
US10067780B2 (en) 2015-10-06 2018-09-04 Cisco Technology, Inc. Performance-based public cloud selection for a hybrid cloud environment
US11005682B2 (en) 2015-10-06 2021-05-11 Cisco Technology, Inc. Policy-driven switch overlay bypass in a hybrid cloud network environment
US10462136B2 (en) 2015-10-13 2019-10-29 Cisco Technology, Inc. Hybrid cloud security groups
RU2729885C2 (ru) * 2015-10-13 2020-08-13 Шнейдер Электрик Эндюстри Сас Программно-определяемая автоматизированная система и архитектура
US10523657B2 (en) 2015-11-16 2019-12-31 Cisco Technology, Inc. Endpoint privacy preservation with cloud conferencing
US10205677B2 (en) 2015-11-24 2019-02-12 Cisco Technology, Inc. Cloud resource placement optimization and migration execution in federated clouds
US10084703B2 (en) 2015-12-04 2018-09-25 Cisco Technology, Inc. Infrastructure-exclusive service forwarding
US11070395B2 (en) * 2015-12-09 2021-07-20 Nokia Of America Corporation Customer premises LAN expansion
US9892075B2 (en) 2015-12-10 2018-02-13 Cisco Technology, Inc. Policy driven storage in a microserver computing environment
US9910713B2 (en) * 2015-12-21 2018-03-06 Amazon Technologies, Inc. Code execution request routing
US10367914B2 (en) 2016-01-12 2019-07-30 Cisco Technology, Inc. Attaching service level agreements to application containers and enabling service assurance
US10706447B2 (en) 2016-04-01 2020-07-07 OneTrust, LLC Data processing systems and communication systems and methods for the efficient generation of privacy risk assessments
US11004125B2 (en) 2016-04-01 2021-05-11 OneTrust, LLC Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design
US11244367B2 (en) 2016-04-01 2022-02-08 OneTrust, LLC Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design
US20220164840A1 (en) 2016-04-01 2022-05-26 OneTrust, LLC Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design
US10140172B2 (en) 2016-05-18 2018-11-27 Cisco Technology, Inc. Network-aware storage repairs
US10129177B2 (en) 2016-05-23 2018-11-13 Cisco Technology, Inc. Inter-cloud broker for hybrid cloud networks
US20170351639A1 (en) 2016-06-06 2017-12-07 Cisco Technology, Inc. Remote memory access using memory mapped addressing among multiple compute nodes
US11036696B2 (en) 2016-06-07 2021-06-15 Oracle International Corporation Resource allocation for database provisioning
US10776514B2 (en) 2016-06-10 2020-09-15 OneTrust, LLC Data processing systems for the identification and deletion of personal data in computer systems
US10796260B2 (en) 2016-06-10 2020-10-06 OneTrust, LLC Privacy management systems and methods
US10726158B2 (en) 2016-06-10 2020-07-28 OneTrust, LLC Consent receipt management and automated process blocking systems and related methods
US11210420B2 (en) 2016-06-10 2021-12-28 OneTrust, LLC Data subject access request processing systems and related methods
US10873606B2 (en) 2016-06-10 2020-12-22 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10909488B2 (en) 2016-06-10 2021-02-02 OneTrust, LLC Data processing systems for assessing readiness for responding to privacy-related incidents
US10997315B2 (en) 2016-06-10 2021-05-04 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US11294939B2 (en) 2016-06-10 2022-04-05 OneTrust, LLC Data processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software
US11438386B2 (en) 2016-06-10 2022-09-06 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11416590B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US10510031B2 (en) 2016-06-10 2019-12-17 OneTrust, LLC Data processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques
US10896394B2 (en) 2016-06-10 2021-01-19 OneTrust, LLC Privacy management systems and methods
US11366786B2 (en) 2016-06-10 2022-06-21 OneTrust, LLC Data processing systems for processing data subject access requests
US11228620B2 (en) 2016-06-10 2022-01-18 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10944725B2 (en) * 2016-06-10 2021-03-09 OneTrust, LLC Data processing systems and methods for using a data model to select a target data asset in a data migration
US10503926B2 (en) 2016-06-10 2019-12-10 OneTrust, LLC Consent receipt management systems and related methods
US10282559B2 (en) 2016-06-10 2019-05-07 OneTrust, LLC Data processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques
US11134086B2 (en) 2016-06-10 2021-09-28 OneTrust, LLC Consent conversion optimization systems and related methods
US11418492B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing systems and methods for using a data model to select a target data asset in a data migration
US10997318B2 (en) 2016-06-10 2021-05-04 OneTrust, LLC Data processing systems for generating and populating a data inventory for processing data access requests
US10762236B2 (en) 2016-06-10 2020-09-01 OneTrust, LLC Data processing user interface monitoring systems and related methods
US11295316B2 (en) 2016-06-10 2022-04-05 OneTrust, LLC Data processing systems for identity validation for consumer rights requests and related methods
US10467432B2 (en) 2016-06-10 2019-11-05 OneTrust, LLC Data processing systems for use in automatically generating, populating, and submitting data subject access requests
US11343284B2 (en) 2016-06-10 2022-05-24 OneTrust, LLC Data processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance
US11222139B2 (en) 2016-06-10 2022-01-11 OneTrust, LLC Data processing systems and methods for automatic discovery and assessment of mobile software development kits
US11416589B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11138242B2 (en) 2016-06-10 2021-10-05 OneTrust, LLC Data processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software
US11227247B2 (en) 2016-06-10 2022-01-18 OneTrust, LLC Data processing systems and methods for bundled privacy policies
US11222142B2 (en) 2016-06-10 2022-01-11 OneTrust, LLC Data processing systems for validating authorization for personal data collection, storage, and processing
US10803200B2 (en) 2016-06-10 2020-10-13 OneTrust, LLC Data processing systems for processing and managing data subject access in a distributed environment
US11727141B2 (en) 2016-06-10 2023-08-15 OneTrust, LLC Data processing systems and methods for synching privacy-related user consent across multiple computing devices
US11038925B2 (en) 2016-06-10 2021-06-15 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11138299B2 (en) 2016-06-10 2021-10-05 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11520928B2 (en) 2016-06-10 2022-12-06 OneTrust, LLC Data processing systems for generating personal data receipts and related methods
US10776518B2 (en) 2016-06-10 2020-09-15 OneTrust, LLC Consent receipt management systems and related methods
US10592692B2 (en) 2016-06-10 2020-03-17 OneTrust, LLC Data processing systems for central consent repository and related methods
US11651106B2 (en) 2016-06-10 2023-05-16 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US11481710B2 (en) 2016-06-10 2022-10-25 OneTrust, LLC Privacy management systems and methods
US10798133B2 (en) 2016-06-10 2020-10-06 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11188862B2 (en) 2016-06-10 2021-11-30 OneTrust, LLC Privacy management systems and methods
US11151233B2 (en) 2016-06-10 2021-10-19 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US10740487B2 (en) 2016-06-10 2020-08-11 OneTrust, LLC Data processing systems and methods for populating and maintaining a centralized database of personal data
US11146566B2 (en) 2016-06-10 2021-10-12 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US10565236B1 (en) 2016-06-10 2020-02-18 OneTrust, LLC Data processing systems for generating and populating a data inventory
US11392720B2 (en) 2016-06-10 2022-07-19 OneTrust, LLC Data processing systems for verification of consent and notice processing and related methods
US11087260B2 (en) 2016-06-10 2021-08-10 OneTrust, LLC Data processing systems and methods for customizing privacy training
US10846433B2 (en) 2016-06-10 2020-11-24 OneTrust, LLC Data processing consent management systems and related methods
US11277448B2 (en) 2016-06-10 2022-03-15 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10607028B2 (en) 2016-06-10 2020-03-31 OneTrust, LLC Data processing systems for data testing to confirm data deletion and related methods
US11636171B2 (en) 2016-06-10 2023-04-25 OneTrust, LLC Data processing user interface monitoring systems and related methods
US10685140B2 (en) 2016-06-10 2020-06-16 OneTrust, LLC Consent receipt management systems and related methods
US11200341B2 (en) 2016-06-10 2021-12-14 OneTrust, LLC Consent receipt management systems and related methods
US10678945B2 (en) 2016-06-10 2020-06-09 OneTrust, LLC Consent receipt management systems and related methods
US11074367B2 (en) 2016-06-10 2021-07-27 OneTrust, LLC Data processing systems for identity validation for consumer rights requests and related methods
US10169609B1 (en) 2016-06-10 2019-01-01 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US10853501B2 (en) 2016-06-10 2020-12-01 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11222309B2 (en) 2016-06-10 2022-01-11 OneTrust, LLC Data processing systems for generating and populating a data inventory
US10606916B2 (en) 2016-06-10 2020-03-31 OneTrust, LLC Data processing user interface monitoring systems and related methods
US10585968B2 (en) 2016-06-10 2020-03-10 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US11057356B2 (en) 2016-06-10 2021-07-06 OneTrust, LLC Automated data processing systems and methods for automatically processing data subject access requests using a chatbot
US11025675B2 (en) 2016-06-10 2021-06-01 OneTrust, LLC Data processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance
US10776517B2 (en) 2016-06-10 2020-09-15 OneTrust, LLC Data processing systems for calculating and communicating cost of fulfilling data subject access requests and related methods
US10318761B2 (en) 2016-06-10 2019-06-11 OneTrust, LLC Data processing systems and methods for auditing data request compliance
US11586700B2 (en) 2016-06-10 2023-02-21 OneTrust, LLC Data processing systems and methods for automatically blocking the use of tracking tools
US11416798B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing systems and methods for providing training in a vendor procurement process
US11651104B2 (en) 2016-06-10 2023-05-16 OneTrust, LLC Consent receipt management systems and related methods
US11341447B2 (en) 2016-06-10 2022-05-24 OneTrust, LLC Privacy management systems and methods
US11366909B2 (en) 2016-06-10 2022-06-21 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US10284604B2 (en) 2016-06-10 2019-05-07 OneTrust, LLC Data processing and scanning systems for generating and populating a data inventory
US10885485B2 (en) 2016-06-10 2021-01-05 OneTrust, LLC Privacy management systems and methods
AU2017276777B2 (en) * 2016-06-10 2022-06-09 Schneider Electric Industries Sas Method and system for providing proxy service in an industrial system
US10839102B2 (en) 2016-06-10 2020-11-17 OneTrust, LLC Data processing systems for identifying and modifying processes that are subject to data subject access requests
US10769301B2 (en) 2016-06-10 2020-09-08 OneTrust, LLC Data processing systems for webform crawling to map processing activities and related methods
US11403377B2 (en) 2016-06-10 2022-08-02 OneTrust, LLC Privacy management systems and methods
US11625502B2 (en) 2016-06-10 2023-04-11 OneTrust, LLC Data processing systems for identifying and modifying processes that are subject to data subject access requests
US11100444B2 (en) 2016-06-10 2021-08-24 OneTrust, LLC Data processing systems and methods for providing training in a vendor procurement process
US10565161B2 (en) 2016-06-10 2020-02-18 OneTrust, LLC Data processing systems for processing data subject access requests
US11157600B2 (en) 2016-06-10 2021-10-26 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11188615B2 (en) 2016-06-10 2021-11-30 OneTrust, LLC Data processing consent capture systems and related methods
US10949170B2 (en) 2016-06-10 2021-03-16 OneTrust, LLC Data processing systems for integration of consumer feedback with data subject access requests and related methods
US10496846B1 (en) 2016-06-10 2019-12-03 OneTrust, LLC Data processing and communications systems and methods for the efficient implementation of privacy by design
US10909265B2 (en) 2016-06-10 2021-02-02 OneTrust, LLC Application privacy scanning systems and related methods
US10848523B2 (en) 2016-06-10 2020-11-24 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11238390B2 (en) 2016-06-10 2022-02-01 OneTrust, LLC Privacy management systems and methods
US11301796B2 (en) 2016-06-10 2022-04-12 OneTrust, LLC Data processing systems and methods for customizing privacy training
US10949565B2 (en) 2016-06-10 2021-03-16 OneTrust, LLC Data processing systems for generating and populating a data inventory
US10783256B2 (en) 2016-06-10 2020-09-22 OneTrust, LLC Data processing systems for data transfer risk identification and related methods
US10242228B2 (en) 2016-06-10 2019-03-26 OneTrust, LLC Data processing systems for measuring privacy maturity within an organization
US11354435B2 (en) 2016-06-10 2022-06-07 OneTrust, LLC Data processing systems for data testing to confirm data deletion and related methods
US10572686B2 (en) 2016-06-10 2020-02-25 OneTrust, LLC Consent receipt management systems and related methods
US11562097B2 (en) 2016-06-10 2023-01-24 OneTrust, LLC Data processing systems for central consent repository and related methods
US11416109B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Automated data processing systems and methods for automatically processing data subject access requests using a chatbot
US11023842B2 (en) 2016-06-10 2021-06-01 OneTrust, LLC Data processing systems and methods for bundled privacy policies
US10878127B2 (en) 2016-06-10 2020-12-29 OneTrust, LLC Data subject access request processing systems and related methods
US11336697B2 (en) 2016-06-10 2022-05-17 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10565397B1 (en) 2016-06-10 2020-02-18 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US11144622B2 (en) 2016-06-10 2021-10-12 OneTrust, LLC Privacy management systems and methods
US11354434B2 (en) 2016-06-10 2022-06-07 OneTrust, LLC Data processing systems for verification of consent and notice processing and related methods
US11675929B2 (en) 2016-06-10 2023-06-13 OneTrust, LLC Data processing consent sharing systems and related methods
US11461500B2 (en) 2016-06-10 2022-10-04 OneTrust, LLC Data processing systems for cookie compliance testing with website scanning and related methods
US10282700B2 (en) 2016-06-10 2019-05-07 OneTrust, LLC Data processing systems for generating and populating a data inventory
US11544667B2 (en) 2016-06-10 2023-01-03 OneTrust, LLC Data processing systems for generating and populating a data inventory
US11328092B2 (en) 2016-06-10 2022-05-10 OneTrust, LLC Data processing systems for processing and managing data subject access in a distributed environment
US10592648B2 (en) 2016-06-10 2020-03-17 OneTrust, LLC Consent receipt management systems and related methods
US11475136B2 (en) 2016-06-10 2022-10-18 OneTrust, LLC Data processing systems for data transfer risk identification and related methods
US10664169B2 (en) 2016-06-24 2020-05-26 Cisco Technology, Inc. Performance of object storage system by reconfiguring storage devices based on latency that includes identifying a number of fragments that has a particular storage device as its primary storage device and another number of fragments that has said particular storage device as its replica storage device
US10659283B2 (en) 2016-07-08 2020-05-19 Cisco Technology, Inc. Reducing ARP/ND flooding in cloud environment
US10432532B2 (en) 2016-07-12 2019-10-01 Cisco Technology, Inc. Dynamically pinning micro-service to uplink port
US10834226B2 (en) * 2016-07-15 2020-11-10 International Business Machines Corporation Live migration of containers based on geo-location
US10263898B2 (en) 2016-07-20 2019-04-16 Cisco Technology, Inc. System and method for implementing universal cloud classification (UCC) as a service (UCCaaS)
US10382597B2 (en) 2016-07-20 2019-08-13 Cisco Technology, Inc. System and method for transport-layer level identification and isolation of container traffic
US10142346B2 (en) 2016-07-28 2018-11-27 Cisco Technology, Inc. Extension of a private cloud end-point group to a public cloud
US10567344B2 (en) 2016-08-23 2020-02-18 Cisco Technology, Inc. Automatic firewall configuration based on aggregated cloud managed information
US11563695B2 (en) 2016-08-29 2023-01-24 Cisco Technology, Inc. Queue protection using a shared global memory reserve
US10514932B2 (en) * 2016-09-26 2019-12-24 Amazon Technologies, Inc. Resource configuration based on dynamic group membership
US10523592B2 (en) 2016-10-10 2019-12-31 Cisco Technology, Inc. Orchestration system for migrating user data and services based on user information
US11044162B2 (en) 2016-12-06 2021-06-22 Cisco Technology, Inc. Orchestration of cloud and fog interactions
US10326817B2 (en) 2016-12-20 2019-06-18 Cisco Technology, Inc. System and method for quality-aware recording in large scale collaborate clouds
US10334029B2 (en) 2017-01-10 2019-06-25 Cisco Technology, Inc. Forming neighborhood groups from disperse cloud providers
US10545914B2 (en) 2017-01-17 2020-01-28 Cisco Technology, Inc. Distributed object storage
US10552191B2 (en) 2017-01-26 2020-02-04 Cisco Technology, Inc. Distributed hybrid cloud orchestration model
US10320683B2 (en) 2017-01-30 2019-06-11 Cisco Technology, Inc. Reliable load-balancer using segment routing and real-time application monitoring
US10671571B2 (en) 2017-01-31 2020-06-02 Cisco Technology, Inc. Fast network performance in containerized environments for network function virtualization
US10243823B1 (en) 2017-02-24 2019-03-26 Cisco Technology, Inc. Techniques for using frame deep loopback capabilities for extended link diagnostics in fibre channel storage area networks
US10713203B2 (en) 2017-02-28 2020-07-14 Cisco Technology, Inc. Dynamic partition of PCIe disk arrays based on software configuration / policy distribution
US10254991B2 (en) 2017-03-06 2019-04-09 Cisco Technology, Inc. Storage area network based extended I/O metrics computation for deep insight into application performance
US11005731B2 (en) 2017-04-05 2021-05-11 Cisco Technology, Inc. Estimating model parameters for automatic deployment of scalable micro services
US10013577B1 (en) 2017-06-16 2018-07-03 OneTrust, LLC Data processing systems for identifying whether cookies contain personally identifying information
US10439877B2 (en) 2017-06-26 2019-10-08 Cisco Technology, Inc. Systems and methods for enabling wide area multicast domain name system
US10382274B2 (en) 2017-06-26 2019-08-13 Cisco Technology, Inc. System and method for wide area zero-configuration network auto configuration
US10666606B2 (en) * 2017-06-28 2020-05-26 Amazon Technologies, Inc. Virtual private network service endpoints
US10303534B2 (en) 2017-07-20 2019-05-28 Cisco Technology, Inc. System and method for self-healing of application centric infrastructure fabric memory
US10892940B2 (en) 2017-07-21 2021-01-12 Cisco Technology, Inc. Scalable statistics and analytics mechanisms in cloud networking
US10425288B2 (en) 2017-07-21 2019-09-24 Cisco Technology, Inc. Container telemetry in data center environments with blade servers and switches
US10601693B2 (en) 2017-07-24 2020-03-24 Cisco Technology, Inc. System and method for providing scalable flow monitoring in a data center fabric
US10541866B2 (en) 2017-07-25 2020-01-21 Cisco Technology, Inc. Detecting and resolving multicast traffic performance issues
US10404596B2 (en) 2017-10-03 2019-09-03 Cisco Technology, Inc. Dynamic route profile storage in a hardware trie routing table
US10942666B2 (en) 2017-10-13 2021-03-09 Cisco Technology, Inc. Using network device replication in distributed storage clusters
US10353800B2 (en) 2017-10-18 2019-07-16 Cisco Technology, Inc. System and method for graph based monitoring and management of distributed systems
US11481362B2 (en) 2017-11-13 2022-10-25 Cisco Technology, Inc. Using persistent memory to enable restartability of bulk load transactions in cloud databases
US10705882B2 (en) 2017-12-21 2020-07-07 Cisco Technology, Inc. System and method for resource placement across clouds for data intensive workloads
US11595474B2 (en) 2017-12-28 2023-02-28 Cisco Technology, Inc. Accelerating data replication using multicast and non-volatile memory enabled nodes
US20190253274A1 (en) * 2018-02-14 2019-08-15 Megaport (Services) Pty Ltd. Network interconnection service
US10511534B2 (en) 2018-04-06 2019-12-17 Cisco Technology, Inc. Stateless distributed load-balancing
US10728361B2 (en) 2018-05-29 2020-07-28 Cisco Technology, Inc. System for association of customer information across subscribers
US10904322B2 (en) 2018-06-15 2021-01-26 Cisco Technology, Inc. Systems and methods for scaling down cloud-based servers handling secure connections
US10764266B2 (en) 2018-06-19 2020-09-01 Cisco Technology, Inc. Distributed authentication and authorization for rapid scaling of containerized services
US11019083B2 (en) 2018-06-20 2021-05-25 Cisco Technology, Inc. System for coordinating distributed website analysis
US10819571B2 (en) 2018-06-29 2020-10-27 Cisco Technology, Inc. Network traffic optimization using in-situ notification system
US11121981B1 (en) 2018-06-29 2021-09-14 Amazon Technologies, Inc. Optimistically granting permission to host computing resources
US10819677B2 (en) * 2018-07-16 2020-10-27 Amazon Technologies, Inc. Address migration service
US10904342B2 (en) 2018-07-30 2021-01-26 Cisco Technology, Inc. Container networking using communication tunnels
US10803202B2 (en) 2018-09-07 2020-10-13 OneTrust, LLC Data processing systems for orphaned data identification and deletion and related methods
US11144675B2 (en) 2018-09-07 2021-10-12 OneTrust, LLC Data processing systems and methods for automatically protecting sensitive data within privacy management systems
US11544409B2 (en) 2018-09-07 2023-01-03 OneTrust, LLC Data processing systems and methods for automatically protecting sensitive data within privacy management systems
EP3921998B1 (en) * 2019-02-06 2023-08-16 Telefonaktiebolaget Lm Ericsson (Publ) Migration of computational service
US11494214B2 (en) * 2019-03-28 2022-11-08 Amazon Technologies, Inc. Verified isolated run-time environments for enhanced security computations within compute instances
US11256671B2 (en) 2019-09-13 2022-02-22 Oracle International Corporation Integrated transition control center
CN111092755B (zh) * 2019-12-05 2022-05-03 桂林电子科技大学 一种基于资源占用的边缘服务迁移仿真方法
US11797528B2 (en) 2020-07-08 2023-10-24 OneTrust, LLC Systems and methods for targeted data discovery
WO2022026564A1 (en) 2020-07-28 2022-02-03 OneTrust, LLC Systems and methods for automatically blocking the use of tracking tools
WO2022032072A1 (en) 2020-08-06 2022-02-10 OneTrust, LLC Data processing systems and methods for automatically redacting unstructured data from a data subject access request
US20220058590A1 (en) * 2020-08-20 2022-02-24 International Business Machines Corporation Equipment maintenance in geo-distributed equipment
WO2022060860A1 (en) 2020-09-15 2022-03-24 OneTrust, LLC Data processing systems and methods for detecting tools for the automatic blocking of consent requests
WO2022061270A1 (en) 2020-09-21 2022-03-24 OneTrust, LLC Data processing systems and methods for automatically detecting target data transfers and target data processing
EP4241173A1 (en) 2020-11-06 2023-09-13 OneTrust LLC Systems and methods for identifying data processing activities based on data discovery results
JPWO2022102085A1 (ja) * 2020-11-13 2022-05-19
US11687528B2 (en) 2021-01-25 2023-06-27 OneTrust, LLC Systems and methods for discovery, classification, and indexing of data in a native computing system
WO2022170047A1 (en) 2021-02-04 2022-08-11 OneTrust, LLC Managing custom attributes for domain objects defined within microservices
WO2022170254A1 (en) 2021-02-08 2022-08-11 OneTrust, LLC Data processing systems and methods for anonymizing data samples in classification analysis
US20240098109A1 (en) 2021-02-10 2024-03-21 OneTrust, LLC Systems and methods for mitigating risks of third-party computing system functionality integration into a first-party computing system
WO2022178089A1 (en) 2021-02-17 2022-08-25 OneTrust, LLC Managing custom workflows for domain objects defined within microservices
WO2022178219A1 (en) 2021-02-18 2022-08-25 OneTrust, LLC Selective redaction of media content
EP4305539A1 (en) 2021-03-08 2024-01-17 OneTrust, LLC Data transfer discovery and analysis systems and related methods
US11562078B2 (en) 2021-04-16 2023-01-24 OneTrust, LLC Assessing and managing computational risk involved with integrating third party computing functionality within a computing system
US11620142B1 (en) 2022-06-03 2023-04-04 OneTrust, LLC Generating and customizing user interfaces for demonstrating functions of interactive user environments

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3224745B2 (ja) * 1996-07-09 2001-11-05 株式会社日立製作所 高信頼化ネットワークシステム及びサーバ切り替え方法
US7299294B1 (en) * 1999-11-10 2007-11-20 Emc Corporation Distributed traffic controller for network data
JP4148605B2 (ja) 1999-08-06 2008-09-10 富士通株式会社 ネットワークシステムおよびサーバ
US7117273B1 (en) * 2000-01-25 2006-10-03 Cisco Technology, Inc. Methods and apparatus for maintaining a map of node relationships for a network
JP4572476B2 (ja) * 2001-03-13 2010-11-04 ソニー株式会社 通信処理システム、通信処理方法、および通信端末装置、データ転送制御装置、並びにプログラム
US7644171B2 (en) * 2001-09-12 2010-01-05 Netmotion Wireless, Inc. Mobile networking system and method using IPv4 and IPv6
US7561553B2 (en) * 2002-02-27 2009-07-14 Motorola, Inc. Method and apparatus for providing IP mobility for mobile networks and detachable mobile network nodes
US7484208B1 (en) 2002-12-12 2009-01-27 Michael Nelson Virtual machine migration
EP1453243B1 (en) * 2003-02-03 2014-01-15 NTT DoCoMo, Inc. An apparatus and a method for optimizing network resources in data communication
WO2004109993A1 (ja) * 2003-05-13 2004-12-16 Fujitsu Limited ネットワークシステム
JP4271988B2 (ja) * 2003-05-19 2009-06-03 株式会社日立コミュニケーションテクノロジー パケット通信装置
FR2855697B1 (fr) * 2003-05-26 2005-09-23 At & T Corp SYSTEME DE CONVERSION DE DONNEES BASEE SUR IPv4 EN DONNEES BASEES SUR IPv6 A TRANSMETTRE A TRAVERS UN RESEAU COMMUTE IP
WO2005083569A1 (ja) * 2004-02-26 2005-09-09 Nec Corporation ネットワーク間のプロセス移動方法およびそのネットワークシステム
US8156490B2 (en) * 2004-05-08 2012-04-10 International Business Machines Corporation Dynamic migration of virtual machine computer programs upon satisfaction of conditions
US20060123111A1 (en) * 2004-12-02 2006-06-08 Frank Dea Method, system and computer program product for transitioning network traffic between logical partitions in one or more data processing systems
US7681075B2 (en) 2006-05-02 2010-03-16 Open Invention Network Llc Method and system for providing high availability to distributed computer applications
US7761573B2 (en) * 2005-12-07 2010-07-20 Avaya Inc. Seamless live migration of virtual machines across optical networks
US7908350B2 (en) * 2005-12-13 2011-03-15 International Business Machines Corporation Methods for operating virtual networks, data network system, computer program and computer program product
US7840683B2 (en) 2006-08-31 2010-11-23 Sap Ag Systems and methods of migrating sessions between computer systems
US9210034B2 (en) * 2007-03-01 2015-12-08 Cisco Technology, Inc. Client addressing and roaming in a wireless network
US7801994B2 (en) 2007-11-29 2010-09-21 Hitachi, Ltd. Method and apparatus for locating candidate data centers for application migration
US7865586B2 (en) * 2008-03-31 2011-01-04 Amazon Technologies, Inc. Configuring communications between computing nodes
US8046480B2 (en) * 2008-03-31 2011-10-25 Amazon Technologies, Inc. Embedding overlay virtual network addresses in underlying substrate network addresses

Also Published As

Publication number Publication date
CN102473114B (zh) 2014-07-09
EP2457159A1 (en) 2012-05-30
CN104090825A (zh) 2014-10-08
JP2014157617A (ja) 2014-08-28
US20110022711A1 (en) 2011-01-27
US20130046874A1 (en) 2013-02-21
US9495219B2 (en) 2016-11-15
JP2013500518A (ja) 2013-01-07
CN102473114A (zh) 2012-05-23
CA2767553A1 (en) 2011-01-27
SG177515A1 (en) 2012-02-28
EP2457159A4 (en) 2014-09-10
JP5520375B2 (ja) 2014-06-11
WO2011011576A1 (en) 2011-01-27
CN104090825B (zh) 2017-08-25
CA2767553C (en) 2014-10-28
EP2457159B1 (en) 2015-10-14
US8234377B2 (en) 2012-07-31

Similar Documents

Publication Publication Date Title
JP5948362B2 (ja) コンピュータネットワークの動的な移行
US11831496B2 (en) Providing access to configurable private computer networks
US9864727B1 (en) Providing dynamically scaling computing load balancing
US9756018B2 (en) Establishing secure remote access to private computer networks
US10868715B2 (en) Providing local secure network access to remote services

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150415

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150512

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150810

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160201

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160510

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160606

R150 Certificate of patent or registration of utility model

Ref document number: 5948362

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250