(57)【要約】  仮想ゲートウェイを利用して、仮想ネットワーク及び非仮想装置の間の通信を制御する方法及び装置が提供される。パケットが、仮想ネットワークの仮想マシンにより非仮想装置に送信される。パケットは、仮想マシンのホストにより、仮想ゲートウェイのプロバイダアドレスにルーティングされる。ゲートウェイは、ゲートウェイのプロバイダアドレスを非仮想装置の宛先アドレスに変換し、そのパケットを非仮想装置に送信する。非仮想装置は物理サーバ又はストレージ装置等のような物理リソースであってもよい。物理リソースは一人の顧客に専用であってもよいし、複数の顧客で共有されていてもよい。
2014527768.tif 000002
【特許請求の範囲】
【請求項１】
仮想ネットワークと非仮想装置との間の通信を制御する方法であって、
前記仮想ネットワークの仮想マシンにより前記非仮想装置に送信されかつ前記仮想マシンのホストにより仮想ゲートウェイのプロバイダアドレスにルーティングされたパケットを、前記仮想ゲートウェイが受信するステップと、
前記仮想ゲートウェイが、前記仮想ゲートウェイの前記プロバイダアドレスを前記非仮想装置の宛先アドレスに変換するステップと、
前記仮想ゲートウェイが、前記パケットを前記非仮想装置に送信するステップと
を有する方法。
【請求項２】
前記非仮想装置が、顧客アドレスを有する物理リソースを有し、前記変換するステップにおいて、前記仮想ゲートウェイの前記プロバイダアドレスを前記物理リソースの前記顧客アドレスに変換する、請求項１に記載の方法。
【請求項３】
前記非仮想装置が、プロバイダアドレスを有する物理リソースを有し、前記変換するステップにおいて、顧客アドレス空間においてネットワークアドレス変換を実行する、請求項１に記載の方法。
【請求項４】
請求項１に記載の方法をコンピュータ装置に実行させるコンピュータ実行可能命令を有するコンピュータ読み取り可能な装置。
【請求項５】
仮想ネットワークと非仮想装置との間の通信を制御する仮想ゲートウェイであって、
処理装置と、前記処理装置に制御方法を実行させる命令を有するストレージ装置とを有し、前記制御方法は、
前記仮想ネットワークの仮想マシンにより前記非仮想装置に送信されかつ前記仮想マシンのホストにより前記仮想ゲートウェイのプロバイダアドレスにルーティングされたパケットを受信するステップと、
前記仮想ゲートウェイの前記プロバイダアドレスを前記非仮想装置の宛先アドレスに変換するステップと、
前記パケットを前記非仮想装置に送信するステップと
を有する、仮想ゲートウェイ。
【請求項６】
前記非仮想装置が、顧客アドレスを有する物理リソースを有し、前記仮想ゲートウェイが、前記仮想ゲートウェイの前記プロバイダアドレスを前記物理リソースの前記顧客アドレスに変換するように更に形成されている、請求項５に記載の仮想ゲートウェイ。
【請求項７】
前記非仮想装置が、プロバイダアドレスを有する物理リソースを有し、前記仮想ゲートウェイが、顧客アドレス空間においてネットワークアドレス変換を実行するように形成されている、請求項５に記載の仮想ゲートウェイ。
【請求項８】
仮想ネットワークと非仮想装置との間の通信を制御する方法であって、
仮想マシンにより非仮想装置に送信されたパケットを、ホストが宛先アドレスで受信するステップと、
前記ホストが、前記パケットの前記宛先アドレスを仮想ゲートウェイのプロバイダアドレスに変換するステップと、
前記ホストが、アドレス変換のために前記パケットを前記仮想ゲートウェイの前記プロバイダアドレスに送信しかつ前記非仮想装置にも送信するステップと
を有する方法。
【請求項９】
前記変換するステップにおいて、前記非仮想装置の前記宛先アドレスと前記仮想ゲートウェイの前記プロバイダアドレスとを対応付けるマッピングポリシが含まれている仮想ネットワークポリシにアクセスする、請求項８に記載の方法。
【請求項１０】
請求項８に記載の方法をコンピュータ装置に実行させるコンピュータ実行可能命令を有するコンピュータ読み取り可能な装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は仮想ネットワークと非仮想装置との間の通信をブリッジする仮想ゲートウェイ等に関連し、特に、仮想ネットワークと非仮想装置との間(例えば、仮想マシンと物理サーバとの間)の通信を制御する方法及び装置に関連する。
【背景技術】
【０００２】
データセンタは高速スイッチ及びルータで相互に接続された何百台或いは何千台ものサーバを含む。クラウドデータセンタは、ウェブアプリケーション、電子メールサービス、サーチエンジンサービス等のような様々なサービスを複数の顧客に提供する。近年、企業ITのデータセンタハブへの大規模な統合と共に及びクラウドコンピュータサービスプロバイダの出現と共に、データセンタは演算処理を変えつつある。
【０００３】
仮想マシン(virtual  machine：VM)技術は、1つ以上のオペレーティングシステム又は仮想マシン群が、1つの物理ホスト又は物理マシン上で同時に動作することを許可する。仮想マシン技術の利点は広く認められつつある。これらのうちの利点は、複数の仮想マシンを単独のホスト上で動作させる能力、及び或るホストから別のホストへ仮想マシンを移す能力があることである。
【０００４】
クラウドデータセンタは、複数のテナント又は複数の組織ネットワークを分離しつつ、様々な目的で複数の顧客アドレスを維持する必要性がある。顧客は、アドレスの番号の再割り当てに起因してサービスを混乱させることなく、企業ネットワークからクラウドデータセンタへサービスを移す必要があり、しかも、データセンタの管理者は、ネットワークを再構築せずに又はサービスを中断することなしに、処理負担を移動させる又は統合する柔軟性を必要とする。これらの条件を満たすため、クラウドデータセンタは、潜在的に重複した顧客アドレスを収容する必要がある。
【０００５】
仮想ネットワークの場合、仮想マシンは、仮想化されていない物理リソース(例えば、ストレージ装置)と通信するかもしれない。物理リソースは、データセンタの中に、顧客の場所に、又は他のデータセンタにあるかもしれない。物理リソースは、一人の顧客に専用かもしれないし、或いは複数の顧客で共有されているかもしれない。仮想ネットワーク及び物理ネットワークは異なるアドレス方式を利用しているかもしれない。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】米国特許出願公開第2005-0063393号明細書
【特許文献２】米国特許出願公開第2011-0035494号明細書
【特許文献３】米国特許出願公開第2011-0185082号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００７】
実施の形態の課題は、仮想ネットワークと非仮想装置との間の通信を適切に制御できるようにすることである。
【課題を解決するための手段】
【０００８】
実施の形態による方法は、
仮想ネットワークと非仮想装置との間の通信を制御する方法であって、
前記仮想ネットワークの仮想マシンにより前記非仮想装置に送信されかつ前記仮想マシンのホストにより仮想ゲートウェイのプロバイダアドレスにルーティングされたパケットを、前記仮想ゲートウェイが受信するステップと、
前記仮想ゲートウェイが、前記仮想ゲートウェイの前記プロバイダアドレスを前記非仮想装置の宛先アドレスに変換するステップと、
前記仮想ゲートウェイが、前記パケットを前記非仮想装置に送信するステップと
を有する方法である。
【図面の簡単な説明】
【０００９】
【図１】顧客システムに接続されたデータセンタの実施形態を示す概略ブロック図。
【図２】仮想ゲートウェイを介した仮想マシン及び専用物理サーバの間の通信を示すデータセンタの実施形態に関する概略ブロック図。
【図３】図2の仮想ゲートウェイの実施形態を示す概略ブロック図。
【図４】仮想マシン及び専用物理サーバ間の本発明の実施形態による通信を説明するためのフローチャートを示す図。
【図５】仮想ネットワークの仮想マシン及び物理サーバ間の本発明の実施形態による通信を説明するためのフローチャートを示す図。
【図６】仮想マシン及び共有物理リソース間の通信を示すデータセンタの実施形態に関する概略ブロック図。
【図７】図6の仮想ゲートウェイの実施形態を示す概略ブロック図。
【図８】仮想マシン及び共有物理サーバ間の本発明の実施形態による通信を説明するためのフローチャートを示す図。
【図９】仮想マシンのライブマイグレーションを行う場合における仮想マシン及び共有物理サーバ間の通信を説明するためのデータセンタの実施形態を示す概略ブロック図。
【図１０】仮想マシン及び非IPリソース間の通信を説明するためのデータセンタの実施形態を示す概略ブロック図。
【図１１】仮想ゲートウェイ機能を備えた負荷バランサを示しつつデータセンタの実施形態を示す概略ブロック図。
【図１２】コンピュータ装置の実施形態を示す概略ブロック図。
【発明を実施するための形態】
【００１０】
＜実施の形態の概要＞
ポリシ制御されたネットワークの仮想化を利用して、アプリケーション又は顧客のアドレスを物理又はプロバイダアドレスから分離する一方、2つのアドレス群の間の対応関係(マッピング)を維持することが提案されている。これは、顧客(カスタマ)が顧客アドレス(カスタマアドレス)を維持することを許容しつつ、サービスをサブネット又はプレミス(premise)を介して移すことを可能にする。これは、データセンタの管理者が、サービスを中断することなく、サブネットの中又はサブネット間でサービスを統合する又は移すことを許容し、かつデータセンタのプロバイダが顧客(カスタマ)から重複するアドレス空間を収容できるようにする。
【００１１】
本発明は、仮想ゲートウェイを利用して、仮想ネットワーク及び非仮想装置の間の通信を制御する方法及び装置を提供する。パケットが、仮想ネットワークの仮想マシンにより非仮想装置(仮想化されていないエンティティ(non-virtualized  entity))に送信される。パケットは、仮想マシンのホストにより、仮想ゲートウェイのプロバイダアドレスにルーティングされる。ゲートウェイは、ゲートウェイのプロバイダアドレスを非仮想装置の宛先アドレスに変換し、そのパケットを非仮想装置に送信する。
【００１２】
一実施形態において、非仮想装置は、仮想ネットワークのアドレス空間の中に顧客アドレスを有する物理サーバを有する。ゲートウェイは、ゲートウェイのプロバイダアドレスを物理サーバの顧客アドレスに変換する。その様な実施形態では、物理サーバが仮想ネットワークに専念していてもよい(専用であってもよい)。
【００１３】
別の実施形態では、非仮想装置はプロバイダアドレスを有する物理サーバを有する。ゲートウェイは、ネットワークアドレス変換を実行することで、ゲートウェイのプロバイダアドレスを変換する。その様な実施形態では、物理サーバが複数の顧客の間で共有されていてもよい。ネットワークアドレス変換は、第1の仮想ネットワークの仮想マシンから受信したパケットに応答して第1のネットワークワークアドレス変換を実行する処理と、第2の仮想ネットワークの仮想マシンから受信したパケットに応答して第2のネットワークワークアドレス変換を実行する処理とを有してもよい。
【００１４】
別の実施形態では、ゲートウェイのプロバイダアドレスを変換する処理が、仮想ネットワークポリシにアクセスする処理を含み、仮想ネットワークポリシは、ゲートウェイのプロバイダアドレスと非仮想装置のアドレスとを対応付けるマッピングポリシを含む。ゲートウェイは、仮想ネットワークの仮想マシンマネジャからマッピングポリシアップデートを受信してもよい。マッピングポリシアップデートは仮想ネットワークにおけるマッピングポリシの変更を反映していてもよい。
【００１５】
別の実施形態では、ゲートウェイは、非仮想装置が仮想ネットワークの仮想マシン宛に送信したパケットを受信してもよい。ゲートウェイは、仮想マシンの顧客アドレスを仮想マシンのプロバイダアドレスに変換し、そのパケットを、仮想ネットワークの仮想マシンのプロバイダアドレスに送信する。
【００１６】
本発明の一形態による方法は、
仮想ネットワークと非仮想装置との間の通信を制御する方法であって、
前記仮想ネットワークの仮想マシンにより前記非仮想装置に送信されかつ前記仮想マシンのホストにより仮想ゲートウェイのプロバイダアドレスにルーティングされたパケットを、前記仮想ゲートウェイが受信するステップと、
前記仮想ゲートウェイが、前記仮想ゲートウェイの前記プロバイダアドレスを前記非仮想装置の宛先アドレスに変換するステップと、
前記仮想ゲートウェイが、前記パケットを前記非仮想装置に送信するステップと
を有する方法である。
【００１７】
本発明の別の形態による仮想ゲートウェイは、
仮想ネットワークと非仮想装置との間の通信を制御する仮想ゲートウェイであって、
処理装置と、前記処理装置に制御方法を実行させる命令を有するストレージ装置とを有し、前記制御方法は、
前記仮想ネットワークの仮想マシンにより前記非仮想装置に送信されかつ前記仮想マシンのホストにより前記仮想ゲートウェイのプロバイダアドレスにルーティングされたパケットを受信するステップと、
前記仮想ゲートウェイの前記プロバイダアドレスを前記非仮想装置の宛先アドレスに変換するステップと、
前記パケットを前記非仮想装置に送信するステップと
を有する、仮想ゲートウェイである。
【００１８】
本発明の一形態による方法は、
仮想ネットワークと非仮想装置との間の通信を制御する方法であって、
仮想マシンにより非仮想装置に送信されたパケットを、ホストが宛先アドレスで受信するステップと、
前記ホストが、前記パケットの前記宛先アドレスを仮想ゲートウェイのプロバイダアドレスに変換するステップと、
前記ホストが、アドレス変換のために前記パケットを前記仮想ゲートウェイの前記プロバイダアドレスに送信しかつ前記非仮想装置にも送信するステップと
を有する方法である。
【００１９】
＜実施の形態の詳細な説明＞
本発明の理解を促すため、本願の一部をなす添付図面が参照される。
【００２０】
図1には、本発明の特徴を使用するデータセンタの実施形態に関する概略ブロック図が示されている。データセンタ10は、第1のホスト12、第2のホスト14及び仮想ゲートウェイ16を含み、それらはデータセンタネットワーク手段20により相互に接続されている。本願で使用されているように、「ホスト」という用語は物理的な手段又は物理的なマシン(physical  machine)に関連し、典型的には例えば後述する図12に示されているようなサーバその他のコンピュータ装置である。データセンタは仮想マシン管理部又は仮想マシンマネジャ22を更に有する。仮想マシンマネジャ22のタスクに含まれる処理は、ホスト12、14に対するポリシと仮想ゲートウェイ16との間の対応関係(マッピング)を設定及び更新(アップデート)する処理を含み、この点については後述する。
【００２１】
データセンタ10のホストの各々は1つ以上の仮想マシン(VM)に対するホストとなってもよく、仮想マシンは他の仮想マシンから独立してアプリケーションを実行できる完全なオペレーティングシステムを含んでよい。図1に示されているように、第1のホスト12は仮想マシン30、32、34のホストであり、第2のホスト14は仮想マシン40、42のホストである。
【００２２】
データセンタ10のホストの各々は、ホストの仮想マシンへ及び仮想マシンからのデータパケットをルーティングするスイッチを含んでよい。単独の仮想マシンしかない場合、スイッチは不要である。仮想マシンの各々は、各自が属するホストを介した外部通信のためのネットワークアダプタを含んでもよい。ホストの各々は、ホストの仮想マシンとの通信の最中に行うアドレス変換のための仮想モジュールを更に含む。
【００２３】
図1の例では、仮想マシン30、42が第1の仮想ネットワーク(すなわち、独立したグループ、孤立グループ)の一部をなし、仮想マシン32、40が第2の仮想ネットワーク(すなわち、独立したグループ、孤立グループ)の一部をなし、仮想マシン34が第3の仮想ネットワーク(すなわち、独立したグループ、孤立グループ)の一部をなす。3つの仮想ネットワークは、データセンタの3人の異なる顧客(カスタマ)に対応してもよく、たとえ3つの仮想ネットワークの仮想マシンが同じホストによって処理されていたとしてもそれらは互いに独立している。仮想ネットワークの各々は同一の又は異なるホストに対して(不図示の)追加的な仮想マシンを含んでいてもよい。更に、データセンタ10は追加的な仮想ネットワークのホストなってもよい。
【００２４】
図1に更に示されているように、仮想ゲートウェイ16は物理ネットワーク50を介して物理サーバ52、54、56に接続されている。物理サーバ52、54、56の各々は、例えば、ストレージ装置又はその他の仮想化されていない物理リソース(非仮想物理リソース)であってもよい。仮想ゲートウェイ16は、1つ以上の仮想マシンと1つ以上の物理サーバとの間の通信を支援する。一実施形態において、物理サーバ52、54、56は、例えば仮想マシン30、42を含む仮想ネットワークのような1つの仮想ネットワークに専用であってもよい。他の実施形態において、物理サーバ52、54、56は、2つ以上の仮想ネットワークの間で共有されていてもよい。
【００２５】
図1に示されているように、データセンタ10は負荷バランサ60、エッジルータ62及びインターネット64を介してカスタマシステム(顧客システム)70に接続されている。図1に示す実施形態では、顧客システム70は、ルータ72、VPNゲートウェイ74及び企業ネットワーク76を含み、企業ネットワーク76は仮想マシン80、82のホストである。顧客システム70は任意の形態を有してよいことが理解されるであろう。一実施形態では、データセンタ10において、仮想マシン30、42を含む第1の仮想ネットワークは顧客システム70に専用である。
【００２６】
図2及び図3にはデータセンタ10の第2の実施形態が示されている。図2及び図3に示す実施形態では、第1のホスト12が仮想マシン100、102、104のホストとなり、第2のホスト14が仮想マシン106、108、110のホストとなっている。仮想マシン100、102、106は第1の仮想ネットワーク112(図3)の要素であり、仮想マシン104、108、110は第2の仮想ネットワーク114(図3)の要素である。仮想ゲートウェイ120はネットワーク122により物理サーバ124及びストレージ装置126、128に結合されている。
【００２７】
図2に示されているように、仮想マシンの各々は、顧客アドレスAA(アプリケーションアドレス)とプロバイダアドレスLA(ローカルアドレス又は物理アドレス)とに関連付けられている。顧客アドレスAAは仮想マシンのIPアドレスに対応し、プロバイダアドレスLAはデータセンタ10の仮想マシンの物理ロケーションに対応する。従って、例えば、第1のホスト12の仮想マシン100は顧客アドレスAA1とプロバイダアドレスLA1とを有する。2つ以上の仮想マシンが同じ顧客アドレスAAを有してもよいが、仮想マシンの各々のプロバイダアドレスLAはデータセンタ10の中で固有又は一意である。また、顧客アドレスAA1とプロバイダアドレスLA1とはアドレスペアAA1:LA1を形成し、仮想マシン100のマッピングポリシ(対応関係)を決定する。マッピングポリシは、仮想マシン同士の通信を制御するため、及び仮想マシンと非仮想装置との間の通信を制御するために使用され、この点については後述する。顧客アドレスAAは仮想マシンによって使用されるが、プロバイダアドレスLAは例えばホストのような物理マシンによって使用される。
【００２８】
図2に示されている仮想ネットワークポリシ140のような仮想ネットワークポリシの中で、仮想ネットワークの様々なマッピングポリシがグループ化される。仮想ネットワークポリシ140は、第1のホスト12、第2のホスト14、仮想マシンマネジャ22及び仮想ゲートウェイ120内にあり、第1の仮想ネットワーク122に関連付けられている。仮想ネットワーク112は、仮想マシン100、102、106を含み、他の仮想マシン(図示せず)を含んでもよい。仮想ネットワークポリシ140のエントリの各々は、顧客アドレスAA及びプロバイダアドレスLAを有するマッピングポリシを含む。
【００２９】
図2及び図3に示す例では、物理サーバ124及びストレージ装置126、128を含む物理リソースは、仮想マシン100、102、106を含む第1の仮想ネットワーク112に専用である。従って、仮想ネットワークポリシ140は、仮想マシン100、102、106各々のエントリと、物理サーバ124のエントリと、ストレージサーバ126、128のエントリとを含む。図2に示されているように、物理サーバ124は顧客アドレスAAP1に指定され、ストレージ装置126は顧客アドレスAAP2に指定され、ストレージ装置128は顧客アドレスAAP3に指定されている。更に、物理サーバ124、ストレージ装置126、128の各々はゲートウェイ120のプロバイダアドレスLAGWに対応付けられている(マッピングされている)。仮想ネットワークポリシ140における各々のエントリは必要に応じて更なる情報を含んでもよい。仮想ネットワークポリシは、対応関係の情報(マッピング情報)を含む任意の構造(例えば、テーブル)を有してよいことが、理解されるであろう。
【００３０】
上述したように、仮想ネットワークポリシ140は、第1の仮想ネットワーク112における仮想マシンの各々及び物理リソースの各々についてのポリシマッピングエントリを含む。更なる仮想ネットワークポリシが更なる仮想ネットワークに対応していてもよい。例えば、第1のホスト12及び第2のホスト14に対する別々の仮想ネットワークポリシが、仮想マシン104、108、110を含む第2の仮想ネットワーク114のマッピングポリシを含んでもよい。
【００３１】
図3に示されているように、仮想ゲートウェイ120は仮想モジュール160及びIP転送モジュール162を含んでもよい。ゲートウェイ120は、データセンタ手段20に接続されたネットワークインタフェースカード(NIC)164と、ネットワーク122に接続されたネットワークインタフェースカード(NIC)166とを更に含む。NIC164はデータセンタ手段20を介して仮想ネットワーク112と通信できるようにする。NIC166はネットワーク122を介して物理サーバ124及びストレージ装置126、128と通信できるようにする。矢印168により示されているように、仮想モジュール160は仮想マシンマネジャ22と通信する。仮想マシンマネジャ22は、本発明の実施の形態によるアドレス変換を決めているマッピングポリシを、仮想マネジャ160に提供する。
【００３２】
図2及び図3に示す例では、物理サーバ124及びストレージ装置126、128が、仮想ネットワーク112に専用であり、かつ仮想ネットワーク112としか通信していない。物理サーバ124及びストレージ装置126、128には顧客アドレスAAP1、AAP2、AAP3がそれぞれ割り振られている。従って、物理サーバ124及びストレージ装置126、128は仮想ネットワークのアドレス空間の一部を占めると考えられてよい。仮想ネットワーク112のアドレス空間は、仮想マシン100、102、106を含む第1の部分と、物理サーバ124及びストレージ装置126、128を含む第2の部分とに分割されてもよい。仮想モジュール160が、物理サーバ124及びストレージ装置126、128の何れかに宛てられたパケットを確認した場合、そのパケットはネットワークインタフェースカード166及びネットワーク122を介してその宛先に送信される。仮想モジュール160が仮想マシン100、102、106の何れかに宛てられたパケットを確認した場合、そのパケットはネットワークインタフェースカード164及びデータセンタ手段20を介してその宛先に送信される。
【００３３】
図4は、仮想マシン及び専用物理サーバ間の本発明の実施形態による通信のプロセスを説明するためのフローチャートである。具体的には、仮想マシン100がパケットを物理サーバ124に送信する例である。
【００３４】
処理200において、仮想マシン100が顧客アドレスAAP1(AA1→AAP1)の物理サーバ宛のパケット220を送信する(図2における矢印(1))。処理202において、仮想マシン100のホスト12が、仮想ネットワークポリシ140を参照し、仮想ネットワークポリシ140は顧客アドレスAAP1の物理サーバ124に対するマッピングポリシを含む。マッピングポリシは、物理サーバ124宛のパケットがゲートウェイ120のプロバイダアドレスLAGWに宛てられることを示す。
【００３５】
処理204において、仮想マシン100の第1のホスト12が、ゲートウェイ120のプロバイダアドレスLAGWでパケットをカプセル化し(LA1→LAGW)、カプセル化されたパケット222を提供する(図2)。処理206において、仮想マシン100の第1のホスト12が、アドレスのカプセル化により処理されたパケットをゲートウェイ120に送信する(図2の矢印(2))。
【００３６】
処理208において、ゲートウェイ120が、カプセル化されたパケット222を第1のホスト12から受信し、そのパケットをデカプセル化し(カプセル化を解除し)、デカプセル化されたパケット124を提供する。特に、パケットのプロバイダアドレスの部分が削除され、物理サーバ124の顧客アドレスAAP1が残る。処理210において、ゲートウェイ120が、デカプセル化されたパケット224を物理サーバ124に配信する(図2の矢印(3))。ゲートウェイ120の仮想ネットワークポリシは、ゲートウェイ120のプロバイダアドレスLAGWと物理サーバ124の顧客アドレスAAP1との間のマッピングポリシ(対応関係)を示す。
【００３７】
図5は、仮想ネットワークの仮想マシン及び物理サーバ間の本発明の実施形態による通信のプロセスを説明するためのフローチャートを示す。図5に示す例では、物理サーバ124が第1の仮想ネットワーク112内の仮想マシン100にパケットを送信している。このプロセスは本質的には上記の図4に示すプロセスの逆のプロセスである。
【００３８】
処理250において、アドレスAAP1を有する物理サーバ124が、顧客アドレスAA1を有する仮想マシンにパケットを送信する。処理252において、ゲートウェイ120が自身の仮想ネットワークポリシを参照し、仮想マシン100の顧客アドレスAA1から仮想マシン100のプロバイダアドレスLA1へのマッピング関係を知る。処理254において、ゲートウェイ120が、仮想マシン100のプロバイダアドレスでパケットをカプセル化する(LAGW→LA1)。処理256において、ゲートウェイ120が、カプセル化されたパケットを仮想マシン100のホスト12に送信する。
【００３９】
処理258において、仮想マシン100のホスト12がパケットを受信し、仮想ネットワークポリシ140のマッピングポリシに従ってパケットをデカプセル化し、仮想ネットワークポリシは、仮想マシン100のプロバイダアドレスLA1を仮想マシン100の顧客アドレスAA1に関連付ける。処理260において、デカプセル化されたパケットが、顧客アドレスAA1の仮想マシン100に配信される。
【００４０】
図6及び図7には、データセンタの第3の実施形態が示されている。図6及び図7に示す例では、第1のホスト12が上記のように仮想マシン100、102、104のホストとなっている。仮想マシン100、102は第1の仮想ネットワーク112(図7)の要素であり、仮想マシン104は第2の仮想ネットワーク114(図7)の要素である。上述したように、仮想ネットワーク112、114は更なる要素(図示せず)を含んでもよい。
【００４１】
図6及び図7に示されているように、データセンタは物理サーバ300とストレージ装置302、304を含む。物理サーバ300及びストレージ装置302、304は図2及び図3に示されている物理サーバ124及びストレージ装置126、128にそれぞれ対応している。しかしながら、物理サーバ300及びストレージ装置302、304は図2及び図3に示す物理リソースとは異なる仕方で割り振られたアドレスを有する。物理サーバ300及びストレージ装置302、304は、ネットワーク310を介してデータセンタネットワーク手段20に接続され、プロバイダアドレスLAP1、LAP2、LAP3をそれぞれ有する。
【００４２】
図6及び図7に示されているように、データセンタ10は仮想ゲートウェイ320を含み、仮想ゲートウェイ320は第1のNAT(ネットワークアドレス変換)モジュール322と第2のNATモジュール324とのホストとなっている。第1のNATモジュール322は第1の仮想ネットワーク112と共に動作し、第2のNATモジュール324は第2の仮想ネットワーク114と共に動作する。これらのNATモジュールは後述するように異なる仮想ネットワークによる物理リソースの共有を可能にする。
【００４３】
図6に示されているように、第1のホスト12は、第1の仮想ネットワーク112のプロバイダアドレスと顧客アドレスとの間の対応関係(マッピングポリシ)を含む仮想ネットワークポリシ140を含む。第1のホスト12は、第2の仮想ネットワーク114のプロバイダアドレスと顧客アドレスとの間の対応関係(マッピングポリシ)を含む仮想ネットワークポリシ142も含む。図示されているように、仮想ネットワークポリシ140は、顧客アドレスAAP1、AAP2、AAP3と仮想ゲートウェイ320のプロバイダアドレスLAGWとを対応付ける。仮想ゲートウェイ320は仮想ネットワークポリシ140とは異なる仮想ネットワークポリシ330を含み、仮想ネットワークポリシ330は物理リソースの顧客アドレスAAP1、AAP2、AAP3とプロバイダアドレスLAP1、LAP2、LAP3をそれぞれ対応付ける。図7に示されているように、仮想ゲートウェイ320は仮想モジュール340及びネットワークインタフェースカード342を含む。ネットワークインタフェースカード342は、データセンタ手段20に結合され、ネットワーク310を介して物理サーバ300及びストレージ装置302、304に結合される。
【００４４】
図8は、仮想マシン及び共有物理サーバ間の本発明の実施形態による通信のプロセスに関するフローチャートを示す。このプロセスの動作は図6における対応する矢印により示されている。
【００４５】
処理350において、仮想マシン100は、顧客アドレスAAP1の物理サーバ宛てのパケット352を送信する(図6の矢印(1))。処理354において、仮想マシン100の第1のホスト12が物理サーバ300に対応する仮想ネットワークポリシ140のマッピングポリシを参照する。第1のホスト12は、顧客アドレスAAP1の物理サーバ300が仮想ゲートウェイ320のプロバイダアドレスLAGWに対応していることを確認する。
【００４６】
処理356において、第1のホスト12が、ゲートウェイ320のプロバイダアドレスLAGWでパケットをカプセル化し、パケット358を提供する(図6)。処理360において、第1のホスト12が、カプセル化されたパケット358をゲートウェイ320に送信する。
【００４７】
処理362において、ゲートウェイ320は、カプセル化されたパケット358を仮想マシン100の第1のホスト12から受信する。処理364において、ゲートウェイ320は、受信したパケット358をデカプセル化し、デカプセル化されたパケット366を提供する(図6の矢印(2))。処理370において、ゲートウェイ320の第1のNATモジュール322が、デカプセル化されたパケットのネットワークアドレス変換を実行し、NATパケット372を提供する(図6の矢印(3))。NATパケット372は、顧客アドレス空間にあり、かつ顧客アドレスAANATによりアドレスAAP1の物理サーバにパケットを送信していることを示す。処理374において、ゲートウェイ320が、顧客アドレス空間からプロバイダアドレス空間へNATパケット372を書き直し、NATパケット376を提供する(図6の矢印(4))。NATパケット376は、プロバイダアドレスLANATがプロバイダアドレスLAP1の物理サーバ300にパケットを送信していることを示す。ゲートウェイ320はNATパケット376をプロバイダアドレスLAP1の物理サーバ300に送信する(図6の矢印(5))。
【００４８】
第1のNATモジュール322が仮想マシン100に対応するエントリを設定すると、物理サーバ300は上記の図8に示す処理の逆の処理を用いて応答パケットを仮想マシン100に送ることができる。同様な手順により、第2の仮想ネットワーク114の仮想マシン104は第2のNATモジュール324を用いてパケットを物理サーバ300へ送信することができる。
【００４９】
上述したように、データセンタ10の仮想マシンホストは、物理サーバをゲートウェイ320のプロバイダアドレスに対応付けるマッピングポリシを含む。これに対して、ゲートウェイ320は、物理リソースの顧客アドレスと対応するプロバイダアドレスとを対応付けるマッピングポリシを含む。更に、第1のホスト12はゲートウェイ320宛のパケットをカプセル化する一方、ゲートウェイ320は物理サーバ300宛のパケットを書き直す。特に、第1のホスト12の仮想ネットワークポリシ140は、ゲートウェイ320に送信されるパケットのアドレスカプセル化のためのマッピングポリシを含み、仮想ゲートウェイ330のネットワークポリシ330は、物理リソースに送信されるパケットのアドレス書き直しのためのマッピングポリシを含む。
【００５０】
図9は、仮想マシンの動作中の移動又はライブマイグレーション(live  migration)を行う場合における仮想マシン及び共有物理サーバ間の通信を説明するためのデータセンタの実施形態を示す概略ブロック図である。図9に示されているように、仮想マシン100が(矢印400で示されているように)第1のホスト12から第3のホスト410へライブマイグレーションにより移される。ライブマイグレーションは、仮想マシンの動作に重大な混乱を招くことなしに、動作している仮想マシンを或るホストから別のホストへ移すことを可能にする。ライブマイグレーションは仮想マシンマネジャ22により制御されてもよい。
【００５１】
移される仮想マシン100mの顧客アドレスAA1はそのままであるが、移される仮想マシン100mのプロバイダアドレスは、図9の例ではプロバイダアドレスLA1からプロバイダアドレスLANEWに変わる。移される仮想マシン100mの新たなプロバイダアドレスLANEWは、パケットの欠落を避けるために、仮想ネットワークのホスト及び仮想ゲートウェイ320の各々の仮想ネットワークポリシに反映される。従って、仮想ネットワークのホスト及びゲートウェイ320のマッピングポリシは、ライブマイグレーションに応じて更新される。
【００５２】
ライブマイグレーションの前に、第1のホスト12の仮想マシン100は、上述した図6-8に示されているプロセスを利用して、図9の矢印420に示されているように、パケットをストレージ装置302に送信する。仮想ゲートウェイ320は、第1のホスト12から、カプセル化されたパケットを受信し、パケットのデカプセル化及びネットワークアドレス変換を実行し、NATパケットを提供する。NATパケットはプロバイダアドレスLANATに変換され、ストレージ装置302に送信される。
【００５３】
ライブマイグレーションの後に、ゲートウェイの仮想ネットワークポリシ330は、移された仮想マシン100mの新たなマッピングポリシを反映するように更新されることが、仮定されている。具体的には、仮想ネットワークポリシ330はAA1:LANEWというアドレスペアを含み、これは移された仮想マシン100mのマッピングポリシを決める。移された仮想マシン100mがパケットをストレージ装置302に送信する場合、矢印422に示されているように、パケットは、第3のホスト410によりカプセル化され、ゲートウェイ320へ送信される。ゲートウェイ320は、移された仮想マシン100mに対する更新されたマッピングポリシを確認し、上記の図6-8に示されているようなデカプセル化及びネットワークアドレス変換を実行する。ネットワークアドレス変換の後に、NATパケットは、プロバイダアドレスLANATに変換され、ストレージ装置302に送信される。従って、ライブマイグレーションの前後でパケットはストレージ装置302がプロバイダアドレスLANATから受信しているように見える。
【００５４】
すなわち、ネットワークアドレス変換の処理は、仮想マシン100と物理リソースとの間の接続を維持しつつ、仮想マシン100のプロバイダアドレスの変更を隠す。仮想ネットワークポリシ330は、ライブマイグレーションの前後において、仮想マシンのプロバイダアドレスの正しい関係を保証する。この処理により、ライブマイグレーションは物理サーバにとって透明になり、それらがNATアドレスLANATのみを見るようになる。
【００５５】
図10は、仮想マシン及び非IPリソース間の通信を説明するためのデータセンタの実施形態に関する概略ブロック図を示す。図10に示すデータセンタ10では、第1のホスト12が仮想マシン450のホストとなり、第2のホスト14が仮想マシン452のホストとなっている。物理サーバ300やストレージ装置302、304等を含む非IPリソース(non-IP  resource)は、ネットワーク310及び非IPゲートウェイ460を介して、データセンタネットワーク手段20に接続されている。第1のホスト12は、非IPリソースに送信されたパケットのアドレスカプセル化のためのマッピングポリシを有する仮想ネットワークポリシ456を含む。
【００５６】
図10に示されているように、仮想マシン452はパケット470をストレージ装置304に送信する(図10の矢印(1))。仮想マシン452はパケットをアドレス指定するイーサネット(登録商標)MACアドレスを利用する。具体的には、仮想マシン452はストレージ装置304のMACアドレスを利用する(MAC2→MACP3)。パケット470は、ゲートウェイ460のプロバイダアドレスLANIPで第2のホスト14によりカプセル化され、カプセル化されたパケット472が提供される。カプセル化されたパケット472は、ゲートウェイ460に送信され、デカプセル化され、デカプセル化されたパケット474が提供される(図10の矢印(2))。デカプセル化されたパケット474はゲートウェイ460によりストレージ装置304に送信される。
【００５７】
図11は、仮想ゲートウェイ機能を備えた負荷バランサを示しつつデータセンタの実施形態を示す概略ブロック図である。図11のデータセンタ10では、第1のホスト12が仮想マシン100、102、104のホストとなり、第2のホスト14が仮想マシン106、108、110のホストとなり、第3のホスト510が仮想マシン520、522、524のホストとなり、第4のホスト530が仮想マシン540、542のホストとなっている。仮想ネットワークポリシ550により示されているように、仮想マシン100、102、106、520、524、540は第1の仮想ネットワークの要素である。仮想ネットワークポリシ552により示されているように、仮想マシン104、108、110、522、542は第2の仮想ネットワークの要素である。
【００５８】
負荷バランサ560はインターネット及びデータセンタネットワーク手段20の間に結合されている。負荷バランサ560は、ポリシ方式のネットワーク仮想化を利用し、仮想ネットワークポリシ550、552を有する。
【００５９】
図11に示されているように、一実施形態のゲートウェイは仮想ゲートウェイ機能を負荷バランサに統合し、マルチテナント仮想負荷バランサ(multi-tenant,  virtualization-aware  load  balancer)を実現している。従来の負荷バランサは、VIPと呼ばれる1つの外装IPアドレス(external-facing  IP  address)に対するクエリを、ダイレクトDIPのための様々なDIPにより表現される一群のバックエンドサーバ処理負担に分散することで、「バランスをとる処理(balancing)」を実行している。仮想機能を統合した負荷バランサは次のように動作することができる。負荷バランサの外装側は顧客毎に1つずつある複数のVIPと共に構築される。VIPの各々は、所与の顧客のAAアドレス空間の中で、一群のDIPに対応することが可能である。一群のAA-DIPは顧客の識別子により指定され、仮想化についての正しいAA-LAマッピングポリシにトラフィックをし向けるために利用可能である。例えば、負荷バランサは、顧客Aに対するVIPA=128.1.1.1及び顧客Bに対するVIPB=128.1.1.2という2つのVIPアドレスを有することが可能である。顧客A(128.1.1.1)の負荷バランスアルゴリズムは、顧客Aに対して、2つの顧客A-VM-AA：10.1.1.1及び10.1.1.2のペアに均等に分散される一方、顧客B(128.1.1.2)に対して、マッピングは2つの顧客B-VM-AA：10.1.1.1及び10.1.1.2に対するものである。
【００６０】
負荷バランサはVIPA及びVIPBについて別々に負荷バランステーブルを指定し、顧客A(Customer  A)及び顧客B(Customer  B)についての正しい仮想マッピングテーブルが、到来する任意のリクエストについて使用されるようにする。例えば、顧客AのAA:10.1.1.1及び10.1.1.2はLA1及びLA2に対応付けることが可能であるが、顧客BのAA:10.1.1.1及び10.1.1.2はLA3及びLA4に対応付けることが可能である。このように、負荷分散機能は、内部データセンタ仮想ポリシと共にシームレスに統合できる。上述したように、ゲートウェイの統合されたアーキテクチャの利点は、ゲートウェイの仮想モジュールが、VM配備及びライブマイグレーションにより、データセンタ仮想ポリシフレームワークの一部であってもよいことである。利点の1つは、統合された負荷バランサのAA-LAマッピングテーブルも更新される限り、このバックエンド処理負担は物理サブネットの間を移動できることである。これらのすべては従来の負荷バランス処理又はプロキシセッションを中断することなく実行可能である。なぜなら、VMのAAであるDIPが不変のままであるからである。
【００６１】
マルチテナント環境においてIPマルチキャストをサポート又は実行可能にするために、管理サーバはLA空間の中で顧客の仮想ネットワークの各々にマルチキャストアドレスを割り振る又は指定することが可能である。顧客VMからの全てのマルチキャストトラフィックは、カプセル化され、データセンタの顧客固有のマルチキャストグループ(又はマルチキャストアドレス)にし向けられる(方向付けられる)。マルチキャストトラフィックの独立性は、顧客各々に対して別々のマルチキャストグループを設定することで達成できる。例えば、データセンタのアドミニストレータ(管理者)は、VMMのような管理ツールを利用して、顧客Aには224.0.0.1を割り当て、顧客Bには224.0.0.2を割り当てることができる。顧客A及び顧客BについてのVMは何れもマルチキャストグループ(宛先アドレス)224.1.2.3宛のマルチキャストトラフィックを送信するが、仮想規則は以下の事項をしていてもよい：
(ポリシ1)顧客AのVMからの任意のマルチキャスト又はブロードキャストの宛先に送信されたパケット→224.0.0.1でカプセル化する
(ポリシ2)顧客BのVMからの任意のマルチキャスト又はブロードキャストの宛先に送信されたパケット→224.0.0.2でカプセル化する。
【００６２】
これらのポリシに基づいて、AAA1から224.1.2.3へ顧客Aにより送信されたパケットは、LAA1ないし224.0.0.1でカプセル化され、AAB1から224.1.2.3へ顧客Bにより送信されたパケットは、LAB1ないし224.0.0.2でカプセル化される。顧客AのVMの物理ホストの全てが224.0.0.1に加入し、顧客BのVMの物理ホストの全てが224.0.0.2に加入している限り、マルチキャストパケットは全て顧客AのVMのホスト及び顧客BのVMのホストにそれぞれ到達する。マルチキャストパケットを受信すると、顧客AのVMに宛てられるべき224.0.0.1に送信されるパケットと、顧客BのVMに宛てられるべき224.0.0.2に送信されるパケットとを区別する。パケットはデカプセル化され、仮想ルールに基づいて適切なVMに通知される。
【００６３】
本発明は他の汎用又は専用のコンピュータシステム環境又はコンフィギュレーションと共に使用することが可能である。本発明と共に使用するのに適した従来のコンピュータシステム、環境及び/又はコンフィギュレーションの具体例は、例えば、パーソナルコンピュータ、サーバコンピュータ、携帯装置、ラップトップ装置、マイクロプロセッサシステム、マイクロプロセッサ方式のシステム、セットトップボックス、プログラム可能な消費者電子機器、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、分散したコンピュータ環境(上記のシステムや装置のうち任意のものを含んでよい)等を含むがこれらに限定されない。
【００６４】
本発明は、コンピュータにより実行される一般的なコンピュータ実行可能命令(例えば、プログラムモジュール)により実施されてもよい。一般に、プログラムモジュールは、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含み、これらは特定のタスクを実行する又は特定のアブストラクトデータタイプ(abstract  data  type)を使用する。本発明は分散したコンピュータ環境で使用されてもよく、その場合、タスクは通信ネットワークで結合された離れ離れの処理装置(リモート処理装置)により実行される。分散コンピュータ環境の場合、プログラムモジュールはメモリストレージ装置を有するローカル及びリモートの双方のコンピュータ記憶媒体に存在してもよい。
【００６５】
図12を参照すると、本発明を使用するシステム例はコンピュータ1010の形式で汎用コンピュータ装置を含んでいる。図12のコンピュータ装置は上記のホスト、仮想マシンマネジャ及び/又はその他の任意のコンピュータ装置を実現するために使用可能である。コンピュータ1010のコンポーネント又は要素は、処理ユニット1020、システムメモリ1030、システムバス1021(システムバス1021はシステムメモリを含む様々なシステムコンポーネントを処理ユニット1020に結合する)等を含んでよいがこれらに限定されない。システムバス1021は、任意の様々なバスアーキテクチャを利用するメモリバス又はメモリコントローラ、ペリフェラルバス及びローカルバスを含む任意の様々なタイプのバス構造であってよい。具体例として、その様なアーキテクチャは、業界標準アーキテクチャ(Industry  Standard  Architecture：ISA)バス、マイクロチャネルアーキテクチャ(MCA)バス、エンハンストISA(EISA)バス、ビデオエレクトロニクススタンダードアソシエーション(VESA)ローカルバス、メザニンバス(Mezzanine  bus)としても知られているペリフェラルコンポーネントインターコネクト(PCI)バス等を含むが、これらに限定されない。
【００６６】
コンピュータ1010は一般にコンピュータで読み取ることが可能な様々な媒体(コンピュータ読み取り可能媒体)を含む。コンピュータ読み取り可能媒体は、コンピュータ1010によりアクセスできる任意の利用可能な媒体とすることが可能であり、揮発性媒体、不揮発性媒体、取り外し可能な媒体、取り外し可能でない媒体の何れを含んでいてもよい。具体例として、コンピュータ読み取り可能媒体は限定ではないがコンピュータで読み取ることが可能な記憶媒体(コンピュータ記憶媒体)を含んでよい。コンピュータ記憶媒体は、コンピュータ読み取り可能な命令、データ構造、プログラムモジュール、その他のデータ等の情報を保存する任意の方法又は方式で実現された揮発性媒体、不揮発性媒体、取り外し可能な媒体、取り外し可能でない媒体の何れを含んでいてもよい。コンピュータ記憶媒体は、例えば、RAM、ROM、EEPROM、フラッシュメモリ又はその他のメモリ方式、CD-ROM、ディジタル多用途ディスク(DVD)又はその他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ又はその他の磁気ストレージ装置、或いはその他の任意の媒体(所望の情報を保存するのに使用可能でありかつコンピュータ1010によりアクセスできるもの)等を含んでよいが、これらに限定されない。これらの任意の組み合わせもコンピュータ読み取り可能な記憶媒体に属する。
【００６７】
システムメモリ1030は、例えばリードオンリメモリ(ROM)1031及びランダムアクセスメモリ(RAM)1032等のような揮発性及び/又は不揮発性メモリの形式でコンピュータストレージ媒体を含む。基本入出力システム又はベーシック入出力システム1033(BIOS)は、例えば起動時になされるようなコンピュータ1010内での要素間の情報のやり取りを支援する基本ルーチンを含み、BIOS1033は典型的にはROM1031に保存されている。RAM1032は、典型的には、処理ユニット1020により速やかにアクセス可能な及び/又は現在処理されているデータ及び/又はプログラムモジュールを含む。具体例として、限定ではないが、図12はオペレーティングシステム1034、アプリケーションプログラム1035、その他のプログラムモジュール1036、及びプログラムデータ1037を示している。
【００６８】
コンピュータ1010はその他の取り外し可能な/取り外し可能でない揮発性/不揮発性のコンピュータ記憶媒体を含んでもよい。単なる一例として、図12は、取り外し可能でない不揮発性磁気媒体に対して読み書きを行うハードディスクドライブ1041と、取り外し可能な不揮発性磁気ディスク1052に対して読み書きを行う磁気ディスクドライブ1051と、CD-ROMその他の光媒体のような取り外し可能な不揮発性光ディスク1056に対して読み書きを行う光ディスクドライブ1055とを示している。例示の動作環境で使用可能なその他の取り外し可能な/取り外し可能でない揮発性/不揮発性のコンピュータストレージ媒体は、例えば、磁気テープカセット、フラッシュメモリカード、ディジタル多用途ディスク、ディジタルビデオテープ、ソリッドステートRAM、ソリッドステートROM等を含むが、これらに限定されない。ハードディスクドライブ1041は典型的にはインタフェース1040等のような取り外し可能でないメモリインタフェースを介してシステムバス1021に接続され、磁気ディスクドライブ1051及び光ディスクドライブ1055は典型的にはインタフェース1050等のような取り外し可能なメモリインタフェースによりシステムバス1021に接続される。
【００６９】
図12に示されている上記のドライバ及びそれらに関連するコンピュータストレージ媒体は、コンピュータで読み取ることが可能な命令、データ命令、プログラムモジュール及びその他のコンピュータ1010のためのデータの記憶部を提供する。図12において、例えば、ハードディスクドライブ1041は、オペレーティングシステム1044、アプリケーションプログラム1045、その他のプログラムモジュール1046、及びプログラムデータ1047を保存するように示されている。これらのコンポーネントはオペレーティングシステム1034、アプリケーションプログラム1035、その他のプログラムモジュール1037及びプログラムデータ1047と同一であってもよいし異なっていてもよいことに留意を要する。オペレーティングシステム1044、アプリケーションプログラム1045、その他のプログラムモジュール1046、及びプログラムデータ1047は少なくともこれらが異なるものを示すように異なる要素をもたらす。
【００７０】
キーボード1062及びポインティングデバイス1061(一般的には、マウス、トラックボール、タッチパッド等である)等のような入力装置により、ユーザはコマンド及び情報をコンピュータ1010に入力してよい。その他の入力装置はマイクロフォン1063、ジョイスティック、タブレット1064、衛星放送アンテナ、スキャナ等を含んでもよい。これら及びその他の入力装置は、システムバスに結合されたユーザ入力インタフェースにより処理ユニット1020にしばしば接続されるが、並列ポート、ゲームポート、又はユニバーサルシリアルバス(USB)等のような他のインタフェース及びバス構造により接続されていなくてもよい。モニタ1091又はその他のタイプのディスプレイ装置がビデオインタフェース1090などのようなインタフェースによりシステム1021に接続されてもよい。モニタに加えて、コンピュータはスピーカ1097及びプリンタ1096等のような他のペリフェラル出力装置を含んでいてもよく、これらは他のペリフェラルインタフェース1095により接続されていてもよい。
【００７１】
コンピュータ1010は1つ以上のリモートコンピュータ(例えば、リモートコンピュータ1080)に対する論理接続を利用したネットワーク化された環境で動作してもよい。リモートコンピュータ1080は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピア装置又はその他のkっようつうねっとワークノードであってもよく、典型的にはコンピュータ1010に関して上述した要素の全部又は多くを含むが、図12ではメモリストレージ装置1081のみが示されている。図12に示されている論理接続は、例えばアンテナと共に完了する無線インタフェース1098を介して、ローカルエリアネットワーク(LAN)1071及びワイドエリアネットワーク(WAN)1073を含むが、他のネットワークを含んでいてもよい。そのようなネットワーク環境はオフィス、企業規模のコンピュータネットワーク、イントラネット及びインターネットで一般的である。無線インタフェース1098はシステムバス1021に直接的に接続されているように示されているが、無線インターフェース1098はネットワークインタフェース1070を経てシステムバス1021に接続されてもよいことが認められるであろう。
【００７２】
LANネットワーキング環境で使用される場合、コンピュータ1010はネットワークインタフェース又はアダプタ1070を介してLAN1071に接続される。WANネットワーキング環境で使用される場合、コンピュータ1010は典型的にはWAN1073(例えば、インターネット)を介した通信を設定するモデム1072又はその他の手段を含む。モデム1072は内部にあってもよいし外部にあってもよく、ユーザ入力インタフェース1060又はその他の適切な手段を介してシステムバス1021に接続されてもよい。ネットワーク環境において、コンピュータ1010に関連して示されているプログラムモジュール又はその一部分が、リモートメモリストレージ装置に保存されてもよい。一例として、限定ではないが、図12はリモートアプリケーションプログラム1085がメモリ装置1081に存在するように図示している。図示のネットワーク接続は一例に過ぎず、コンポーネント間の通信リンクを設定する他の手段が使用されてもよいことが理解されるであろう。
【００７３】
本発明の少なくとも1つの実施形態についていくつもの例を説明してきたが、様々な代替例、修正例及び改善例等が当業者にとって自明であることが認められるであろう。
【００７４】
そのような代替例、修正例及び改善例等は本開示内容に含まれ、本発明の範囲及び精神に属するように意図されている。すなわち、明細書及び図面は単なる具体例を示しているに過ぎない。
【００７５】
本発明に関する上記の実施形態は任意の様々な方法で実施されてよい。例えば、実施形態はハードウェア、ソフトウェア又はそれらの組み合わせを用いて実施されてもよい。ソフトウェアで実施される場合、単独のコンピュータであるか複数のコンピュータ間に分散しているか否かによらず、ソフトウェアコードは適切な任意のプロセッサ又はプロセッサの集まりにより実行可能である。そのようなプロセッサは集積回路として実施されてもよいし、集積回路のコンポーネント内の1つ以上のプロセッサと共に実施されてもよい。プロセッサは適切な任意の形態の回路を利用して実施されてもよい。
【００７６】
更に、コンピュータは、ラックマウントコンピュータ(rack-mounted  computer)、デスクトップコンピュータ、ラップトップコンピュータ又はタブレットコンピュータ等のような様々な任意の形態で実施されてもよいことが、理解されるべきである。更に、コンピュータは、「コンピュータ」と呼ばれてはいないが適切な処理する能力を備えた装置で実施されてもよく、その様な装置は例えばパーソナルディジタルアシスタント(PDA)、スマートフォン、その他の任意の適切な携帯用電子装置又は固定装置を含む。
【００７７】
また、コンピュータは1つ以上の入力及び出力する装置を有していてもよい。これらの装置は、特に、ユーザインタフェースを提供するように使用されてよい。ユーザインタフェースをもたらすように使用可能な出力装置の具体例は、出力の視覚的な表現のためのプリンタ又は表示画面、及び出力の聴覚的な表現のためのスピーカ又は他の音声発生装置を含んでいてもよい。ユーザインタフェースに使用可能な入力装置の具体例は、キーボード、及びポインティングデバイス(例えば、マウス、タッチパッド、ディジタル化タブレット)を含んでもよい。他の具体例として、コンピュータは音声認識により又はその他の音声フォーマットで入力情報を受信してもよい。
【００７８】
そのようなコンポーネントは適切な任意の形式の1つ以上のネットワークにより相互接続され、ネットワークは例えばローカルエリアネットワークやワイドエリアネットワークを含み、企業ネットワークやインターネット等を含んでもよい。そのようなネットワークは適切な任意の技術に基づいていてもよく、適切な任意のプロトコルに従って動作してもよく、無線ネットワーク、有線ネットワーク又は光ファイバネットワークを含んでいてもよい。
【００７９】
また、本願で説明された方法又はプロセスは、様々な任意のオペレーティングシステム又はプラットフォームを利用する1つ以上のプロセッサを実行することが可能なソフトウェアとしてコード化されていてもよい。更に、そのようなソフトウェアは様々な適切な任意のプログラミング言語及び/又はプログラミングツール又は記述ツールを用いて書かれてもよく、フレームワーク又は仮想マシンで実行可能な中間コード又は実行可能なマシン語としてコンパイルされてもよい。
【００８０】
この点に関し、本発明は1つ以上のプログラムと共にコード化されたコンピュータ読み取り可能媒体(又は複数のコンピュータ読み取り可能媒体)に具現化され、1つ以上のコンピュータ又は他のプロセッサで実行される場合に、上記の本発明に関する様々な実施形態を使用する方法を実行する(媒体は、例えば、コンピュータメモリ、1つ以上のフロッピディスク、コンパクトディスク(CD)、光ディスク、ディジタルビデオディスク(DVD)、磁気テープ、フラッシュメモリ、フィールドプログラマブルゲートアレイ又はその他の半導体装置による回路構成、又はその他の一時的でない有形のコンピュータ記憶媒体等である)。コンピュータ読み取り可能な1つ以上の記憶媒体は、搬送可能であり、そこに保存された1つ以上のプログラムは1つ以上の異なるコンピュータ又は他のプロセッサにロードされ、本発明による上記の様々な形態を実施することが可能である。本願で使用されるように、「一時的でない有形のコンピュータ記憶媒体」は、製品(製造された物品)又はマシンと考えられるコンピュータ読み取り可能な媒体のみを包含する。代替的又は追加的に、本発明は、信号を伝搬する信号のようなコンピュータ読み取り可能記憶媒体以外のコンピュータ読み取り可能媒体として実現されてもよい。
【００８１】
「プログラム」又は「ソフトウェア」という用語は任意のタイプのコンピュータコード又はコンピュータで実行可能な一群の命令を指すように一般的に本願では使用されており、上述した本発明の様々な実施形態を実現するようにコンピュータ又はその他のプロセッサを使用するためにプログラムするために使用可能である。更に、一実施形態によれば、実行された場合に、本発明による方法を実行する1つ以上のプログラムが単独のコンピュータやプロセッサ上に存在することは必須ではなく、本発明による様々な形態を実施するようにいくつもの異なるコンピュータ又はプロセッサの中にモジュール形式で分散していてもよいことが、理解されるべきである。
【００８２】
コンピュータ実行可能命令は、1つ以上のコンピュータ又は他の装置で実行されるプログラムモジュールのような多くの形態で実施されてもよい。一般に、プログラムモジュールは特定のタスクを実行したり或いは特定のアブストラクトデータタイプを実施するルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含む。典型的には、プログラムモジュールの機能は様々な実施形態で望まれているように組み合わせられてもよいし或いは分散させられていてもよい。
【００８３】
また、データ構造は適切な任意の形式でコンピュータ読み取り可能媒体に保存されてよい。説明の簡明化のため、データ構造はフィールドを有するように説明されてもよく、それらのフィールドはデータ構造内のロケーションを通じて関連し合っている。そのような関連性は、コンピュータ読み取り可能媒体の中のロケーションと共にフィールド同士の間の関連性を示すフィールドのストレージを指定することで同様に設定されてもよい。しかしながら、適切な任意の手段を利用してデータ構造のフィールドの情報同士の関連性を設定してもよく、例えば、ポインタを利用することで、データ要素同士の関連性を設定するタグ又はその他の手段を使用してもよい。
【００８４】
本発明の様々な実施形態は、単独で使用されてもよいし、組み合わせて使用されてもよいし、或いは上述した実施形態で具体的には議論されていない様々な形式で使用されてもよく、従って実施形態の応用例は、明細書で説明された又は図面に示されたコンポーネントの詳細や形態に限定されない。例えば、一実施形態で説明された形態は、他の実施形態で説明された形態と任意の方法で組み合わせられてもよい。
【００８５】
本発明は上記のように具体的に説明された方法として実施されてもよい。方法の一部として実行される処理は適切な任意の順序で実行されてもよい。従って実施形態は説明されたものとは異なる順序で処理が実行されてもよいように解釈され、説明された実施形態では順番に並んでいたとしてもそれらが同時に実行されてもよい場合が含まれる。
【００８６】
特許請求の範囲において「第1」、「第2」、「第3」等のような序数を使用して発明特定事項を修飾することは、ただそれだけで、或る発明特定事項と別の発明特定事項との間の何らかの優先度、優劣又は順序、或いは方法の処理が実行される時間的な順序を暗示しているわけではなく、何らかの名前を有する発明特定事項を、(序数の部分は異なる)同じ名前を有する区別すべき別の発明特定事項から区別するためのラベルとして単に使用されているに過ぎない。
【００８７】
また、本明細書で使用される語句及び用語は説明を意図しており、限定事項として解釈されてはならない。「含む」、「有する」、「備わる」、「包含する」及びそれらの同義語を本願で利用することは、列挙されたもの及びその均等物だけでなく、更なるものを包含してもよいことを意味する。
【図１】
2014527768.tif 000003
【図２】
2014527768.tif 000004
【図３】
2014527768.tif 000005
【図４】
2014527768.tif 000006
【図５】
2014527768.tif 000007
【図６】
2014527768.tif 000008
【図７】
2014527768.tif 000009
【図８】
2014527768.tif 000010
【図９】
2014527768.tif 000011
【図１０】
2014527768.tif 000012
【図１１】
2014527768.tif 000013
【図１２】
2014527768.tif 000014
【国際調査報告】
2014527768.tif 000015
2014527768.tif 000016