(57)【要約】      （修正有）【課題】端末装置間の通信を行うことができない場合に端末装置間の通信を確実に行うことができる通信システムを提供する。【解決手段】通信システム３０１は、ネットワーク３１１内に配置されたネットワーク機器３１２に対して、ネットワーク内に通信経路を構築するよう指示する通信経路指示処理を行う通信経路指示装置３１３Ａと、通信経路指示装置からの指示に応じて、ネットワーク内に通信経路を構築して所定の送受信データを処理するネットワーク機器３１２と、所定のタイミングにて、通信経路指示装置３１３Ａとは異なる他の通信経路指示装置３１３Ｂへ、通信経路指示処理のうちの少なくとも一部の処理を行うように指示する制御部３２１を備える。【選択図】図２１
2014158225.tif 000002
【特許請求の範囲】
【請求項１】
所定のネットワーク内に配置されたネットワーク機器に対して、当該ネットワーク内に前記通信経路を構築するよう指示する通信経路指示処理を行う通信経路指示装置と、
前記通信経路指示装置からの指示に応じて、前記ネットワーク内に前記通信経路を構築して所定の送受信データを処理するネットワーク機器と、
所定のタイミングにて、前記通信経路指示装置とは異なる他の前記通信経路指示装置へ、前記通信経路指示処理のうちの少なくとも一部の処理を行うように指示する制御手段と、
を備える通信システム。
【請求項２】
請求項１に記載の通信システムであって、
前記通信経路指示装置と前記制御手段とは、前記ネットワーク機器が配置された前記ネットワークとは異なるネットワーク内に配置される、
通信システム。
【請求項３】
請求項１または２に記載の通信システムであって、
前記通信経路指示装置は、前記通信経路指示処理のうちの少なくとも一部の処理をそれぞれ行う複数の情報処理装置から構成され、
前記制御手段は、所定のタイミングにて、前記情報処理装置が行う前記通信経路指示処理のうちの少なくとも一部の処理を、当該情報処理装置とは異なる他の前記情報処理装置が行うように指示する、
通信システム。
【請求項４】
請求項１乃至３のいずれかにに記載の通信システムであって、
前記制御手段は、前記通信経路指示装置の負荷を検出し、検出した当該負荷が予め設定された閾値よりも大きくなった場合に、前記他の通信経路指示装置に、前記通信経路指示処理のうちの少なくとも一部の処理を行うように指示する、
通信システム。
【請求項５】
請求項１乃至４のいずれかに記載の通信システムであって、
前記制御手段は、前記通信経路指示装置における障害の発生を検出し、障害の発生を検出した場合に、前記他の通信経路指示装置に、前記通信経路指示処理のうちの少なくとも一部の処理を行うように指示する、
通信システム。
【請求項６】
請求項１乃至５のいずれかに記載の通信システムであって、
前記制御手段は、前記通信経路指示装置が設置されている場所における予め設定された外部情報を表す外部状況情報に基づいて、前記他の通信経路指示装置に、前記通信経路指示処理のうちの少なくとも一部の処理を行うように指示する、
通信システム。
【請求項７】
請求項１乃至６のいずれかに記載の通信システムであって、
前記制御手段は、前記通信経路指示装置が配置されたネットワークとは異なるネットワーク内に配置された通信経路指示装置を前記他の通信経路指示装置として決定し、決定した前記他の通信経路指示装置に、前記通信経路指示処理のうちの少なくとも一部の処理を行うように指示する、
通信システム。
【請求項８】
請求項１乃至７のいずれかに記載の通信システムであって、
端末装置から送信された所定のデータを記憶するデータ記憶装置と、
前記データ記憶装置に記憶された前記データを複製した複製データを記憶する外部記憶装置と、を備え、
前記通信経路指示装置は、端末装置から前記データ記憶装置と接続するための接続要求情報を受信した場合に、当該端末装置と前記外部記憶装置とを接続するように通信経路情報を生成し、当該通信経路情報に基づいて、前記ネットワーク機器が配置された前記ネットワーク内に前記通信経路を構築するよう前記ネットワーク機器に指示する、
通信システム。
【請求項９】
所定のネットワーク内に配置されたネットワーク機器に対して、当該ネットワーク内に前記通信経路を構築するよう指示する通信経路指示処理を行う通信経路指示手段と、
所定のタイミングにて、前記通信経路指示手段とは異なる他の前記通信経路指示手段へ、前記通信経路指示処理のうちの少なくとも一部の処理を行うように指示する制御手段と、
を備える通信装置。
【請求項１０】
通信経路指示装置が、所定のネットワーク内に配置されたネットワーク機器に対して、当該ネットワーク内に前記通信経路を構築するよう指示する通信経路指示処理を行い、
所定のタイミングにて、前記通信経路指示装置とは異なる他の前記通信経路指示装置へ、前記通信経路指示処理のうちの少なくとも一部の処理を行うように指示する、
情報処理方法。
【請求項１１】
通信装置に、
所定のネットワーク内に配置されたネットワーク機器に対して、当該ネットワーク内に前記通信経路を構築するよう指示する通信経路指示処理を行い通信経路指示手段と、
所定のタイミングにて、前記通信経路指示手段とは異なる他の前記通信経路指示手段へ、前記通信経路指示処理のうちの少なくとも一部の処理を行うように指示する制御手段と、
を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システムにかかり、特に、所定のネットワークを介した通信を制御する通信システムに関する。
【背景技術】
【０００２】
近年、ネットワークを介して端末装置間の通信を制御するオープンフローの技術が知られている（例えば特許文献１参照）。オープンフローの技術に基づくネットワークは、オープンフローコントローラとオープンフロースイッチとを備えている。オープンフローコントローラは、オープンフロースイッチが受信するパケットの制御処理を設定し、設定した制御処理をオープンフロースイッチへ通知する。オープンフロースイッチは、オープンフローコントローラから通知された制御処理に基づいてパケットを制御する。
【０００３】
例えば、オープンフロースイッチは、端末装置から送信されたパケットを受信すると、受信したパケットに対応する制御処理が予め設定されているかを判定する。受信したパケットに対応する制御処理が予め設定されている場合、オープンフロースイッチは、設定された制御処理を実行する。この結果、オープンフロースイッチは、例えば端末装置間の通信を行う。
【０００４】
一方、受信したパケットに対応する制御処理が設定されていない場合、オープンフロースイッチは、受信したパケットをオープンフローコントローラへ送信する。そして、オープンフローコントローラは、受信したパケットに応じた制御処理を設定し、設定した制御処理をオープンフロースイッチへ通知する。この結果、オープンフロースイッチは、受信したパケットに対応する制御処理を行うことができ、例えば端末装置間の通信を行う。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特願２００９−５５７３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、上記オープンフローの技術では、例えば、各会社等が自社内（例えばＬＡＮ（Local  Area  Network）内）に１台のオープンフローコントローラを設置して管理している。このため、オープンフローコントローラの負荷が過大になった場合、又は、オープンフローコントローラに障害が発生した場合に、端末装置間の通信を行うことができない場合が生じるという問題があった。
【０００７】
このため、本発明の目的は、上述した課題である端末装置間の通信を行うことができない場合が生じるという問題を解決することが可能な通信システムを提供することにある。
【課題を解決するための手段】
【０００８】
かかる目的を達成するため本発明の一形態である通信システムは、
所定のネットワーク内に配置されたネットワーク機器に対して、当該ネットワーク内に前記通信経路を構築するよう指示する通信経路指示処理を行う通信経路指示装置と、
前記通信経路指示装置からの指示に応じて、前記ネットワーク内に前記通信経路を構築して所定の送受信データを処理するネットワーク機器と、
所定のタイミングにて、前記通信経路指示装置とは異なる他の前記通信経路指示装置へ、前記通信経路指示処理のうちの少なくとも一部の処理を行うように指示する制御手段と、
を備えるという構成を取る。
【０００９】
また、本発明の他の形態である通信装置は、
所定のネットワーク内に配置されたネットワーク機器に対して、当該ネットワーク内に前記通信経路を構築するよう指示する通信経路指示処理を行う通信経路指示手段と、
所定のタイミングにて、前記通信経路指示手段とは異なる他の前記通信経路指示手段へ、前記通信経路指示処理のうちの少なくとも一部の処理を行うように指示する制御手段と、
を備えるという構成を取る。
【００１０】
また、本発明の他の形態である情報処理方法は、
通信経路指示装置が、所定のネットワーク内に配置されたネットワーク機器に対して、当該ネットワーク内に前記通信経路を構築するよう指示する通信経路指示処理を行い、
所定のタイミングにて、前記通信経路指示装置とは異なる他の前記通信経路指示装置へ、前記通信経路指示処理のうちの少なくとも一部の処理を行うように指示する、
という構成を取る。
【００１１】
また、本発明の他の形態であるプログラムは、
通信装置に、
所定のネットワーク内に配置されたネットワーク機器に対して、当該ネットワーク内に前記通信経路を構築するよう指示する通信経路指示処理を行い通信経路指示手段と、
所定のタイミングにて、前記通信経路指示手段とは異なる他の前記通信経路指示手段へ、前記通信経路指示処理のうちの少なくとも一部の処理を行うように指示する制御手段と、
を実現させるためのプログラムである。
【発明の効果】
【００１２】
本発明は、以上のように構成されることにより、端末装置間の通信を確実に行うことができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の第１実施形態に係る通信システムの構成を表す図である。
【図２】本発明の第１実施形態に係る情報処理ユニットの機能を表すブロック図である。
【図３】仮想マシン制御部の構成を表すブロック図である。
【図４】端末装置の構成を表すブロック図である。
【図５】OpenFlowスイッチの構成を表すブロック図である。
【図６】フローテーブルを説明するための図である。
【図７】通信経路の概要を示す図である。
【図８】通信システムの処理の概要を説明するための図である。
【図９】複製記憶装置の構成を表すブロック図である。
【図１０】情報処理ユニットの機能の他の例を表すブロック図である。
【図１１】仮想マシン制御部の動作を表すシーケンス図である。
【図１２】端末装置の接続要求処理を説明するためのフローチャートである。
【図１３】OpenFlowスイッチの動作を説明するためのフローチャートである。
【図１４】アドミニストレータ機能部の制御処理を説明するためのフローチャートである。
【図１５】アドミニストレータ機能部の稼働状況判定処理を説明するためのフローチャートである。
【図１６】アドレス解決処理を説明するためのシーケンス図である。
【図１７】ネットワーク解決処理を説明するためのシーケンス図である。
【図１８】OpenFlowコントローラ機能部のフローエントリ取得処理を説明するためのフローチャートである。
【図１９】本発明の第２実施形態に係る情報処理ユニットの機能を表すブロック図である。
【図２０】通信システムの処理の概要を説明するための図である。
【図２１】本発明の第３実施形態に係る情報処理ユニットの機能を表すブロック図である。
【発明を実施するための形態】
【００１４】
以下、本発明に係る通信システムの実施形態について図１乃至図１８を参照して説明する。図１乃至図１０は、通信システムの構成を説明するための図である。図１１乃至図１８は、通信システムの動作を説明するための図である。
【００１５】
＜第１実施形態＞
（構成）
図１に示すように、第１実施形態に係る通信システム１は、情報処理ユニット１１Ａ，１１Ｂ，…の複数の情報処理ユニット１１を備える。例えば、情報処理ユニット１１Ａは、第１国（例えば日本）に配置される情報処理ユニット１１であり、情報処理ユニット１１Ｂは、第１国とは異なる第２国（例えば米国）に配置される情報処理ユニット１１である。勿論、上記に限定されず、情報処理ユニット１１が同じ国に配置されていてもよい。また、通信システム１では、情報処理ユニット１１の数が２つに限られず、３つ以上の複数の情報処理ユニット１１を備えていてもよい。
【００１６】
情報処理ユニット１１Ａは、複数の情報処理装置２１ａａ，２１ａｂ，…（以下、個々に区別しない場合、情報処理装置２１と記載する。また、他の構成についても同様とする。）を備える。複数の情報処理装置２１は、情報処理ユニット１１Ａ内のネットワーク２２ａを介して通信可能に接続されている。本例では、複数の情報処理装置２１のそれぞれは、ブレードサーバにより構成される。なお、情報処理ユニット１１Ａは、複数の情報処理装置２１を備えるとしたが、１つの情報処理装置２１（例えば情報処理装置２１ａａ）から構成されていてもよい。すなわち、１つの情報処理装置２１が、後述する情報処理ユニット１１の各機能部を実現するための構成を有していてもよい。また、以下に説明する他の情報処理ユニット１１Ｂについても同様に、１つの情報処理装置２１から構成されていてもよい。複数の端末装置１３ａ，１３ｂ，…は、ネットワーク１２（例えばＷＡＮ（Wide  Area  Network））を介して情報処理ユニット１１Ａ内の、ネットワーク１２とは異なるネットワーク２２ａに接続されている。
【００１７】
同様に、情報処理ユニット１１Ｂは、複数の情報処理装置２１ｂａ，２１ｂｂ，…と、を備える。複数の情報処理装置２１ｂａ，２１ｂｂ，…は、情報処理ユニット１１Ｂ内のネットワーク２２ｂを介して通信可能に接続されている。つまり、情報処理ユニット１１Ｂが備える複数の情報処理装置２１ｂａ，２１ｂｂ，…は、情報処理ユニット１１Ａが備える複数の情報処理装置２１ａａ，１２ａｂ，…とは異なるネットワークに配置される。なお、以下には、情報処理ユニット１１Ａについて説明するが、情報処理ユニット１１Ｂも同様の構成を有している。
【００１８】
各情報処理装置２１は、複数の仮想マシン（仮想サーバ）を構築可能に構成される。具体的には、各情報処理装置２１は、主となるＯＳ（Operating  System）としてのプログラム（メインＯＳ）を実行する。
【００１９】
更に、各情報処理装置２１は、メインＯＳ上にて、仮想マシンを動作させるためのプログラムである仮想マシンプログラムを実行する。加えて、各情報処理装置２１は、仮想マシンプログラム上にて、少なくとも１つの副となるＯＳ（ゲストＯＳ）を実行する。
【００２０】
加えて、各情報処理装置２１は、各ゲストＯＳ上にて、少なくとも１つのアプリケーションプログラムを実行する。ここで、各情報処理装置２１により実行されるゲストＯＳは、仮想マシンを構成している。各仮想マシンは、後述する各機能部の１つを実現する。
【００２１】
複数の端末装置１３のそれぞれ（図１の端末装置１３ａ，１３ｂ，１３ｃ，１３ｄ，…）は、例えばパーソナルコンピュータやスマートフォンである。なお、各端末装置は、携帯電話端末、ＰＨＳ（Personal  Handy-phone  System）、ＰＤＡ（Personal  Data  Assistance，Personal  Digital  Assistant）、カーナビゲーション端末、又は、ゲーム端末等であってもよい。
【００２２】
複数の端末装置１３は、ネットワーク１２を介して通信可能に接続されている。そして、ネットワーク１２は、相互に接続可能な複数のOpenFlowスイッチ３１（ネットワーク機器）（以下、オープンフロースイッチ３１と記載する）を備えている。なお、ネットワーク１２と情報処理ユニット１１Ａ内のネットワーク２２ａとは、異なるネットワークであり、互いに接続されている。ネットワーク１２，２２は、例えばＩＰ（Internet  Protocol）網などの通信網により構成されている。
【００２３】
複製記憶装置１５は、ネットワーク１４を介して、情報処理ユニット１１に記憶されたデータの複製である複製データを記憶する。複製データを記憶することにより、情報処理ユニット１１内に記憶されたデータを利用できない場合でも、代わりに複製データを利用して所定の処理を実行することができる。複製記憶装置１５の詳細については後述する。
【００２４】
次に、図２を参照して情報処理ユニット１１の構成について説明する。図２に示すように、情報処理ユニット１１は、仮想マシン制御機能部５１と、アドミニストレータ機能部５２（制御手段）と、ステートフルプロキシ機能部５３と、ＤＮＳ（Domain  Name（Naming）  System（Server））機能部５４と、OpenFlowコントローラ機能部５５（通信経路指示装置）（以下、オープンフローコントローラ機能部５５と記載する）と、ポリシサーバ機能部５６（通信経路指示装置）と、フローテーブルサーバ機能部５７（通信経路指示装置）と、を有する。なお、情報処理ユニット１１内の各機能部（例えばオープンフローコントローラ機能部５５）は、１つの情報処理装置２１から構成されてもよいし、複数の情報処理装置２１から構成されていてもよい。
【００２５】
仮想マシン制御機能部５１は、情報処理ユニット１１内部の仮想マシンおよび端末装置１３の仮想マシンを生成し、制御する。図３は、仮想マシン制御機能部５１の詳細な構成を示すブロック図である。図３に示すように、仮想マシン制御機能部５１は、通信部６１と、仮想マシン制御部６２と、仮想マシンＤＢ（Data  Base）６３と、を備える。仮想マシン制御機能部５１の処理については後述して説明する。
【００２６】
ステートフルプロキシ機能部５３とＤＮＳ機能部５４とは、例えばＳＩＰ（Session  Initiation  Protocol）サーバであり、複数のユーザ端末の間の接続を制御する。オープンフローコントローラ機能部５５は、例えばネットワーク１２における通信経路を設計し、ネットワーク１２内に配置されたオープンフロースイッチ３１に対して、ネットワーク１２内に通信経路を構築するように指示する通信経路指示処理を行う。ポリシサーバ機能部５６は、ネットワーク１２内の経路を設定するためのポリシ情報を記憶する。ポリシ情報については後述する。フローテーブルサーバ機能部５７は、オープンフロースイッチ３１に経路を指示するためのフローテーブルを記憶する。上記の各機能部の詳細については後述して説明する。
【００２７】
ここでは、端末装置１３が、仮想マシン制御機能部５１が提供する仮想マシンを利用する場合の処理について説明する。図４は、端末装置１３の構成を示すブロック図である。図４に示すように、端末装置１３は、演算部７１と、入出力部７２と、記憶部７３と、通信部７４と、を備える。演算部７１は、記憶部７３に予め記憶されたプログラムを実行することにより取得部８１の機能を有する。端末装置１３は、仮想マシン制御機能部５１が提供するシンクライアント環境（例えばDaaS（Desktop  as  a  Service））を利用する。このため、端末装置１３は、少なくともＣＰＵ（Central  Processing  Unit）等の演算部７１と、入出力部７２と、通信部７４とを備えていればよい。
【００２８】
はじめに、端末装置１３の取得部８１は、端末識別情報を取得する。端末識別情報は、例えば、ユーザＩＤ（Identification）とパスワード等、仮想マシン制御機能部５１が端末装置１３のユーザ等を認証するための情報である。この端末識別情報は、例えばユーザにより入出力部７２を介して入力されてもよいし、予め記憶部７３に記憶されていてもよい。続いて、端末装置１３の通信部７４は、取得した端末識別情報を、ネットワーク１２を介して仮想マシン制御機能部５１へ送信する。
【００２９】
次に、仮想マシン制御機能部５１の通信部６１は、端末装置１３から送信された端末識別情報を受信する。続いて、仮想マシン制御機能部５１の仮想マシン制御部６２は、受信した端末識別情報に基づいて、端末装置１３を認証する。なお、認証に失敗した場合、仮想マシンを生成する処理は終了する。認証に成功した場合、仮想マシン制御部６２は、仮想マシンを生成する。例えば、仮想マシン制御部６２は、仮想マシンを制御するハイパーバイザ等のプログラムを起動して仮想マシンを生成する。
【００３０】
そして、仮想マシン制御部６２は、端末装置１３の仮想マシン環境を仮想マシンＤＢ６３から読み出す。仮想マシンＤＢ６３には、例えばユーザＩＤに対応付けられた仮想ＯＳやアプリケーション、端末設定情報や記憶情報等が記憶されている。続いて、仮想マシン制御機能部５１の通信部６１は、仮想マシンの起動完了を表す起動完了通知を端末装置１３へ送信する。そして、端末装置１３の通信部７４は、起動完了通知を受信する。これにより、端末装置１３は、仮想マシンを利用することができる。
【００３１】
次に、図５を参照して、オープンフロースイッチ３１の構成について説明する。図５に示すように、オープンフロースイッチ３１は、転送制御部９１とフローテーブルＤＢ９２とを備えている。このフローテーブルＤＢ９２に記憶されたフローテーブルは、オープンフローコントローラ機能部５５が、予め設定された通信経路指示処理を行うことで、記憶される情報である。そして、転送制御部９１は、フローテーブルＤＢ９２に記憶されたフローテーブルに基づいてパケット情報を転送する。
【００３２】
図６は、フローテーブルＤＢ９２に記憶されるフローテーブル１０１の例を示す図である。図６に示すように、フローテーブル１０１は、「条件」と「処理内容」とが対応付けられている。フローテーブル１０１の各行は、フローエントリを示している。図６の例では、転送制御部９１は、送信先ＩＰアドレスが「ｘｘｘｘ」であるパケット情報を受信した場合に、受信したパケット情報を物理ポート３から転送（送信）する。また、転送制御部９１は、オープンフロースイッチ３１の物理ポート６からパケット情報の入力があった場合に、当該パケット情報を物理ポート２から転送する。さらに、転送制御部９１は、受信したパケット情報に含まれるプロトコルが「ＩＣＭＰ（Internet  Control  Message  Protocol）」である場合に、受信したパケット情報を破棄する。このように、転送制御部９１は、フローテーブル１０１の各フローエントリに基づく転送処理を行うので、迅速かつ容易にパケット情報を転送することができる。
【００３３】
ここで、オープンフロースイッチ３１を利用して通信を行う場合の処理について説明する。まず、最初に、端末装置１３の取得部８１は、通信元情報と通信先情報とを取得する。通信元情報は、例えば端末装置１３のＩＰアドレスやＭＡＣアドレス、ポート番号等を含む。また、通信元情報は、例えばユーザが所属された会社を識別する会社ＩＤや、会社内の各部門を識別する部門ＩＤ等を含む。なお、通信元情報は、複数の会社をまとめた会社群を識別するためのグループＩＤ等も含むことができる。通信先情報は、例えばＩＰ電話を利用する場合には通信先の電話番号を含み、ＷＥＢを利用する場合にはＵＲＬ等を含み、電子メールを利用する場合には通信先のメールアドレスを含む。
【００３４】
続いて、端末装置１３の通信部７４は、取得した通信元情報と通信先情報とをオープンフロースイッチ３１へ送信する。次に、オープンフロースイッチ３１の転送制御部９１は、端末装置１３から送信された通信元情報と通信先情報とを受信する。続いて、転送制御部９１は、対応するフローエントリが記憶されているか否かを判定する。つまり、転送制御部９１は、受信した通信元情報と通信先情報との少なくとも一方に基づく情報が、フローテーブルＤＢ９２に記憶されたフローエントリの「条件」に含まれているか否かを判定する。対応するフローエントリが記憶されている場合、転送制御部９１は、フローエントリの内容に従い、端末装置１３と通信先の端末装置１３（通信先装置）との間の転送処理を行う。
【００３５】
一方、対応するフローエントリが記憶されていないと判定した場合、転送制御部９１は、トポロジ情報を取得する。トポロジ情報は、オープンフロースイッチ３１の接続状態を表す情報である。トポロジ情報は、例えば、オープンフロースイッチ３１が有する各ポートに接続された他のオープンフロースイッチ３１や端末装置１３等の情報を表す。続いて、転送制御部９１は、スイッチ情報を取得する。オープンフロースイッチ３１のフローテーブルＤＢ９２に予め記憶されたフローテーブル１０１、または、フローテーブルＤＢ９２に最初に設定されたフローテーブルの情報を表す。
【００３６】
そして、転送制御部９１は、通信元情報と通信先情報とトポロジ情報とスイッチ情報とを、転送設定情報としてアドミニストレータ機能部５２へ送信する。次に、アドミニストレータ機能部５２は、オープンフロースイッチ３１から送信された転送設定情報を受信する。続いて、アドミニストレータ機能部５２は、稼働状況判定処理を行う。この稼働状況判定処理は、例えば情報処理ユニット１１内に輻輳や障害が発生しているか否かを判定する。稼働状況判定処理については図１５を参照して後述する。
【００３７】
情報処理ユニット１１内に輻輳や障害が発生していないと判定した場合、アドミニストレータ機能部５２は、ステートフルプロキシ機能部５３へアドレス解決処理を指示する。アドレス解決処理では、まず、ステートフルプロキシ機能部５３は、アドミニストレータ機能部５２から通信先情報を取得（受信）する。つまり、ステートフルプロキシ機能部５３は、アドミニストレータ機能部５２が受信した転送設定情報に含まれる通信先情報を抽出する。
【００３８】
続いて、ステートフルプロキシ機能部５３は、取得した通信先情報をＤＮＳ機能部５４へ出力する。そして、ＤＮＳ機能部５４は、通信先情報を取得し、通信先情報に対応付けて記憶された通信先アドレス（例えばＩＰアドレス）を取得する。続いて、ＤＮＳ機能部５４は、取得した通信先アドレスを、ステートフルプロキシ機能部５３へ出力する。
【００３９】
次に、ステートフルプロキシ機能部５３は、ＤＮＳ機能部５４から送信された通信先アドレスを取得し、取得した通信先アドレスを仮想マシン制御機能部５１へ出力する。最後に、端末装置１３の通信部７４は、仮想マシンを介して、ステートフルプロキシ機能部５３から送信された通信アドレスを受信する。これにより、端末装置１３は、通信先装置のアドレス情報を取得することができる。
【００４０】
また、アドミニストレータ機能部５２は、ステートフルプロキシ機能部５３へネットワーク解決処理を指示する。なお、ネットワーク解決処理は、上述したアドレス解決処理と並列に実行することができる。
【００４１】
ネットワーク解決処理では、まず、ステートフルプロキシ機能部５３は、アドミニストレータ機能部５２から転送設定情報を取得（受信）し、取得した転送設定情報をオープンフローコントローラ機能部５５へ出力する。
【００４２】
続いて、オープンフローコントローラ機能部５５は、転送設定情報を取得し、フローエントリ取得処理を実行する。フローエントリ取得処理では、まずオープンフローコントローラ機能部５５は、対応するフローエントリが記憶されているか否かを判定する。つまり、オープンフローコントローラ機能部５５は、取得した転送設定情報に含まれる通信元情報と通信先情報との少なくとも一方に基づく情報が、フローテーブルサーバ機能部５７に記憶されたフローエントリ（例えば図６）の「条件」に含まれているか否かを判定する。
【００４３】
対応するフローエントリが記憶されていると判定した場合、オープンフローコントローラ機能部５５は、フローテーブルサーバ機能部５７に記憶されたフローエントリを取得する。一方、対応するフローエントリが記憶されていないと判定した場合、オープンフローコントローラ機能部５５は、ポリシ情報を取得する。ポリシ情報は、会社などの組織において情報セキュリティを確保するための規定を表す。ポリシ情報は、例えば、通信元情報に対応付けられた、通信可能および／または通信不可能な接続先や優先的に接続する接続先等の情報を含む。
【００４４】
続いて、オープンフローコントローラ機能部５５は、フローエントリを生成する。つまり、オープンフローコントローラ機能部５５は、転送設定情報に基づいて、通信元装置と通信先装置との間の経路を設定し、設定した経路にてパケット情報を転送するための「条件」と「処理内容」とを設定する。これにより、オープンフローコントローラ機能部５５は、例えばネットワーク１２内の通信経路を設計する。なお、オープンフローコントローラ機能部５５は、ネットワーク１２内の全てのオープンフロースイッチ３１のそれぞれに対応するフローエントリを生成する。そして、オープンフローコントローラ機能部５５は、生成したフローエントリをフローテーブルサーバ機能部５７に記憶するとともに、フローエントリをステートフルプロキシ機能部５３へ出力する。
【００４５】
続いて、ステートフルプロキシ機能部５３は、オープンフローコントローラ機能部５５から出力されたフローエントリを取得し、取得したフローエントリを、例えば仮想マシン制御機能部５１の通信部６１を介してオープンフロースイッチ３１へ出力する。なお、ステートフルプロキシ機能部５３は、ネットワーク１２内の全てのオープンフロースイッチ３１へ、対応するフローエントリを出力する。また、ステートフルプロキシ機能部５３は、対応するフローエントリが存在しないオープンフロースイッチ３１には、フローエントリを送信しなくてよい。
【００４６】
次に、オープンフロースイッチ３１の転送制御部９１は、出力されたフローエントリを受信し、受信したフローエントリをフローテーブルＤＢ９２に記憶する。これにより、オープンフロースイッチ３１は、フローテーブルＤＢ９２に記憶されたフローエントリに基づいて、端末装置１３と通信先装置との間でパケット情報を転送する転送処理を行うことができる。
【００４７】
また、オープンフロースイッチ３１は、端末装置１３へ応答を通知する。この応答は、端末装置１３と通信先装置との間でパケット情報の転送が可能になったことを通知するための情報である。端末装置１３の通信部７４は、応答を受信すると、オープンフロースイッチ３１へ所定のパケット情報を送信する。これにより、端末装置１３は、通信先装置との間でパケット情報を送受信することが可能になる。
【００４８】
例えば、図７に示すように、端末装置１３ａが通信先装置として端末装置１３ｄと通信する場合、ユーザが仮想マシン１２１上で所定の処理を行い、端末装置１３から所定のパケット情報をオープンフロースイッチ３１ａに送信する。このとき、オープンフロースイッチ３１ａは、自身に記憶されたフローテーブルを参照して、端末装置１３から受信したパケット情報をオープンフロースイッチ３１ｂへ転送する。同様に、オープンフロースイッチ３１ｂは、自身に記憶されたフローテーブルを参照して、オープンフロースイッチ３１ｄへパケット情報を転送する。そして、端末装置１３ｄと直接通信するオープンフロースイッチ３１ｄは、自身に記憶されたフローテーブルを参照して、受信したパケット情報を端末装置１３ｄへ転送する。このように、端末装置１３間で所定のパケット情報を通信することができる。
【００４９】
なお、端末装置１３は、通信先装置との通信が終了した場合、通信終了をアドミニストレータ機能部５２へ通知する。そして、オープンフローコントローラ機能部５５は、フローテーブルサーバ機能部５７に記憶されたフローテーブルと、各オープンフロースイッチ３１に記憶されたフローテーブルを最適化するように、オープンフローテーブルを再設定することができる。この結果、フローテーブルの数が増加しすぎることを防ぐことができる。
【００５０】
次に、アドミニストレータ機能部５２の稼働判定処理について詳細に説明する。まず、アドミニストレータ機能部５２は、負荷を検出する。この負荷は、情報処理ユニット１１が有する機能部のうち、予め設定された機能部の負荷を表す。例えば、アドミニストレータ機能部５２は、ステートフルプロキシ機能部５３と、ＤＮＳ機能部５４と、オープンフローコントローラ機能部５５と、の負荷を検出する。続いて、アドミニストレータ機能部５２は、取得した負荷が予め設定された負荷閾値よりも大きいか否かを判定する。
【００５１】
負荷が閾値よりも大きくないと判定した場合、アドミニストレータ機能部５２は、予め設定された機能部の障害の発生を検出する。続いて、障害が発生していないと判定した場合、上述したように、ステートフルプロキシ機能部５３へアドレス解決処理とネットワーク解決処理を指示する。
【００５２】
一方、障害が発生したと判定した場合、または、負荷が閾値よりも大きいと判定した場合、アドミニストレータ機能部５２は、例えば、情報処理ユニット１１Ａ（通信経路指示装置が配置されたネットワーク）とは異なる情報処理ユニット１１Ｂ（異なるネットワーク内に配置された他の通信経路指示装置）を決定し、決定した情報処理ユニット１１Ｂ（例えば通信経路指示装置）に通信経路指示処理を行うよう指示する（例えば図８（２））。これにより、稼働状況判定処理は終了し、他の情報処理ユニット１１（例えば情報処理ユニット１１Ｂのアドミニストレータ機能部５２Ｂ）が、情報処理ユニット１１（例えば情報処理ユニット１１Ａのアドミニストレータ機能部５２Ａ）の代わりに上述した通信経路指示処理を行う。なお、アドミニストレータ機能部５２は、他の情報処理ユニット１１Ｂに対して、通信経路指示処理の全てを行うように指示することに限られず、通信経路指示処理のうちの少なくとも一部の処理を行うように指示すればよい。
【００５３】
例えば、他の情報処理ユニット１１Ｂのアドミニストレータ機能部５２Ｂは、情報処理ユニット１１Ａのアドミニストレータ機能部５２Ａから転送設定情報を受信し、情報処理ユニット１１Ｂについて稼働状況判定処理を行う。なお、アドミニストレータ機能部５２が、常に他のアドミニストレータ機能部５２の稼働状況を監視し、輻輳および／または障害が発生していない他の情報処理ユニット１１（例えば、最も負荷が小さい情報処理ユニット）へ指示をした場合には、稼働状況判定処理は省略することができる。
【００５４】
そして、アドミニストレータ機能部５２Ｂは、ステートフルプロキシ機能部５３Ｂにアドレス解決処理とネットワーク解決処理とを指示する。情報処理ユニット１１Ｂ（ステートフルプロキシ機能部５３Ｂ）がアドレス解決処理を行う場合、ＤＮＳ機能部５４Ｂが通信先情報に対応する通信先アドレスを取得することができないことがある。このようにＤＮＳ機能部５４Ｂが通信先アドレスを取得できない場合には、ステートフルプロキシ機能部５３Ｂは、ＤＮＳ機能部５４Ｂの代わりに、図９の複製記憶装置１５のＤＮＳデータベース１１１に対して、通信先情報を出力し、通信先アドレスを取得する。なお、例えば端末装置１３ｘが、端末装置１３ａが配置されたネットワーク１２とは異なるネットワークに配置されている場合に、ステートフルプロキシ機能部５３Ａは、ＤＮＳ機能部５４Ａの代わりに、複製記憶装置１５のＤＮＳデータベース１１１に対して、通信先情報を出力し、通信先アドレスを取得することができる。
【００５５】
また、同様に、情報処理ユニット１１Ｂがネットワーク解決処理を行う場合、ポリシサーバ機能部５６Ｂとフローテーブルサーバ機能部５７Ｂとのそれぞれには、転送設定情報に対応するポリシ情報とフローエントリとが記憶されていない場合がある。このように、オープンフローコントローラ機能部５５Ｂが、フローエントリを参照することができず、ポリシ情報を取得できない場合には、ポリシサーバ機能部５６Ｂとフローテーブルサーバ機能部５７Ｂとの代わりに、図９の複製記憶装置１５のポリシデータベース１１２とフローテーブルデータベース１１３とのそれぞれにアクセスして、フローエントリを取得するための情報を取得する。なお、例えば端末装置１３ｘが、端末装置１３ａが配置されたネットワーク１２とは異なるネットワークに配置されている場合に、オープンフローコントローラ機能部５５Ａは、ポリシサーバ機能部５６Ａとフローテーブルサーバ機能部５７Ａとの代わりに、複製記憶装置１５のポリシデータベース１１２とフローテーブルデータベース１１３とのそれぞれにアクセスして、フローエントリを取得するための情報を取得することができる。
【００５６】
このように、情報処理ユニット１１Ａが平常に動作している場合は、情報処理ユニット１１Ａが複数のユーザ端末との間で所定の通信経路指示処理を実行する（例えば図８の（１））。一方、所定のタイミングにて情報処理ユニット１１Ａは、他の情報処理ユニット１１Ｂに通信経路指示処理を指示し（例えば図８の（２））、通信経路指示処理を行う情報処理ユニット１１を切り替える。そして、他の情報処理ユニットが、複数のユーザ端末間との間で所定の通信経路指示処理を実行する（例えば図８の（３））。従って、例えばオープンフローコントローラ機能部５５等の負荷が過大になった場合、又は、オープンフローコントローラ機能部５５等に障害が発生した場合でも、端末装置１３間の通信を行うことができる。
【００５７】
なお、通信経路指示装置（例えばオープンフローコントローラ機能部５５とポリシサーバ機能部５６と、フローテーブルサーバ機能部５７）は、通信経路指示処理のうちの少なくとも一部の処理をそれぞれ行う複数の情報処理装置２１から構成されていてもよい。そして、アドミニストレータ機能部５２は、通信経路指示装置が一部の処理（機能）を利用できない場合に、他の通信経路指示装置に、通信経路指示処理のうち利用できなくなった少なくとも一部の処理を代わりに行うように指示する。
【００５８】
例えば、アドミニストレータ機能部５２は、情報処理ユニット１１Ａのオープンフローコントローラ機能部５５Ａに輻輳や障害が発生し、利用できない場合に、情報処理ユニット１１Ｂのオープンフローコントローラ機能部５５Ｂに対して、オープンフローコントローラ機能部５５Ａの代わりに通信経路指示処理のうちの少なくとも一部の処理を行うように指示する。また例えば、アドミニストレータ機能部５２は、情報処理ユニット１１Ａのオープンフローコントローラ機能部５５Ａを構成する複数の情報処理装置２１のうちの一つに障害等が発生し、利用できない場合に、当該情報処理装置２１と同様の機能を有する情報処理ユニット１１Ｂのオープンフローコントローラ機能部５５Ｂを構成する情報処理装置２１に対して、通信経路指示処理のうちの少なくとも一部の処理を行うように指示する。
【００５９】
さらに、例えば、アドミニストレータ機能部５２は、情報処理ユニット１１Ａのポリシサーバ機能部５６に輻輳や障害が発生し、利用できない場合に、ポリシサーバ機能部５６に記憶されたポリシ情報の複製を記憶する複製記憶装置１５のポリシデータベース１１２にアクセスして、ポリシサーバ機能部５６の代わりに通信経路指示処理のうちの少なくとも一部の処理を行うように指示する。
【００６０】
これにより、アドミニストレータ機能部５２は、通信経路指示装置のうちの一部の処理が利用できない場合（所定のタイミング）に、利用できなくなった機能を行うことができる、上記通信経路指示装置とは異なる他の通信経路指示装置に、通信経路指示処理のうちの少なくとも一部の処理を行うように指示するので、通信経路指示装置の一部に輻輳や障害等が発生しても、確実に端末装置１３間の通信を行うことができる。
【００６１】
なお、通信システム１は、通信システム１の外部状況に応じて、通信経路指示処理を他の情報処理ユニット１１に指示することができる。以下に、外部状況に応じて通信経路指示処理を行う情報処理ユニット１１を切り替える場合について説明する。なお、情報処理ユニット１１は、外部状況情報を取得するための外部状況情報取得部（図示せず）を備えているとする。外部状況情報は、例えば、情報処理ユニット１１（自身）が設置されている場所の時刻や、情報処理ユニットが設置されている場所において生じた外部状況（例えば事故や災害）、あるいは、情報処理ユニットが設置されている場所において生じうる外部状況（例えばイベント）を表す情報である。そして、アドミニストレータ機能部５２は、外部状況情報取得部にて取得した外部状況情報に基づいて、通信経路指示処理を指示する他の情報処理ユニット１１を特定し、特定した他の情報処理ユニット１１に通信経路指示処理を実行するように指示する。以下、具体的に説明する。
【００６２】
外部状況情報取得部は、情報処理ユニット１１（所定の情報処理装置）が設置されている場所における外部状況情報を取得する。例えば、外部状況情報取得部は、情報処理ユニット１１が設置されている場所の現在の時刻を外部状況情報として取得する。外部状況情報取得部は、情報処理ユニット１１自身に内蔵された時計を参照して現在の時刻を取得してもよいし、時刻を配信するタイムサーバ等から現在の時刻を取得してもよい。また、外部状況情報取得部は、情報処理ユニット１１が設置されている場所を表す位置情報を取得する。情報処理ユニット１１の位置情報は、例えば、予め記憶されているものとする。そして、外部状況情報取得部は、例えば、位置情報として日本国内の所定の場所を取得し、外部状況情報として現在の時刻「１２時００分」を取得したとする。この場合、時刻「１２時００分」は昼間の時間帯（例えば「９時〜１７時」）であるので、アドミニストレータ機能部５２は、他の情報処理ユニット１１の条件として夜間の時間帯（例えば「０時〜５時」，「２１時〜２３時」）を取得する。
【００６３】
そして、アドミニストレータ機能部１１０は、取得した条件に対応する他の情報処理ユニット１１を特定する。具体的には、まず、アドミニストレータ機能部５２は、予め記憶された時差の情報に基づいて、日本国内にて「１２時００分」であるときに夜間の時間帯になる場所（国）を特定する。例えば、アドミニストレータ機能部５２は、日本国内にて「１２時００分」であるときに時刻が「３：００」になる「英国」を特定する。これにより、アドミニストレータ機能部５２は、「英国」に設置された情報処理ユニット１１を他の情報処理ユニット１１として特定する。次に、アドミニストレータ機能部５２は、予め記憶された「英国」の情報処理ユニット情報を参照して、「英国」の情報処理ユニット１１と通信するためのアドレス等の情報を取得する。
【００６４】
そして、アドミニストレータ機能部５２は、取得した情報処理ユニット情報に基づいて、特定した他の情報処理ユニット１１に複数の端末装置１３間の通信経路指示処理を行うよう指示する。これにより、夜間の時間帯に大半の設備が遊休となる情報処理ユニットを利用することができるので、情報処理ユニット１１の設備にコストをかける必要がなく、各情報処理ユニット１１のコストを低減することができ、情報処理ユニット１１の利用効率の向上を図ることができる。
【００６５】
また、外部状況情報取得部は、予め設定されたタイミングにて（例えば定期的に）、他の情報処理ユニットが設置されている場所の時刻（外部状況情報）を取得する。外部状況情報取得部は、例えば、他の情報処理ユニット１１から送信された、他の情報処理ユニット１１が設置された場所の時刻を取得する。そして、他の情報処理ユニット１１が設置されている場所の時刻が夜間の時間帯である場合に、アドミニストレータ機能部５２は、当該他の情報処理ユニット１１に通信経路指示処理を行うよう指示することができる。
【００６６】
また、アドミニストレータ機能部５２は、予め設定された算出基準に基づいて他の情報処理ユニット１１の条件を取得することができる。例えば、アドミニストレータ機能部５２は、情報処理ユニット１１の外部状況情報として取得した現在の時刻「１２：００」に「１２時間」を加算（または減算）し、算出した時刻「０：００」を他の情報処理ユニットの条件として取得する。そして、アドミニストレータ機能部１１０は、現在の時刻が「０：００」（例えば時刻「０：００」から±２時間の範囲内）になる場所（国）に設置された情報処理ユニットを他の情報処理ユニットとして特定してもよい。
【００６７】
さらに、アドミニストレータ機能部５２が取得する外部状況情報は時刻に限られず、イベントや、災害等の情報でもよい。例えば、外部状況情報取得部は、インターネット等を介してイベント等を管理するイベント管理サーバと接続し、イベント情報を取得し、記憶する。そして、アドミニストレータ機能部５２は、外部状況情報取得部がイベントの内容とイベントの日時を取得した場合、他の情報処理ユニット１１の条件として、情報処理ユニット１１自身が設置されている場所においてイベントが行われる（指示対象状況を表す情報に該当する）ときに、他の情報処理ユニットが設置されている場所においてイベントが行われていないという条件を取得する。続いて、アドミニストレータ機能部５２は、取得した情報処理ユニット１１のイベントの日時と、他の情報処理ユニット１１のイベントの日時と、が一致するか否かを判定する。そして、イベントの日時が一致していないと判定した場合、すなわち情報処理ユニット１１が設置されている場所においてイベントが行われるときに、他の情報処理ユニット１１が設置されている場所においてイベントが行われていない場合に、アドミニストレータ機能部５２は、他の情報処理ユニット１１に通信経路指示処理を行うよう指示する。
【００６８】
次に、事故、事件、および、災害等の外部状況情報を取得する場合について説明する。外部状況情報取得部は、所定のタイミングにて（例えば定期的に）、インターネット等を介して予め記憶されたＵＲＬ（Uniform  Resource  Locator）や、事故、事件、および、災害等の情報を配信するサーバ装置を参照して情報処理ユニット１１が設置されている場所において生じた事故、事件、および、災害等の外部状況情報を取得する。また、外部状況情報取得部は、地震計等の災害を検出する装置を利用して情報処理ユニットが設置されている場所において生じた外部状況を取得してもよい。
【００６９】
そして、アドミニストレータ機能部１１０は、外部状況情報取得部が事故、事件、および、災害等の外部状況情報を取得した場合に、他の情報処理ユニット１１の条件として、情報処理ユニット１１が設置されている場所において事故、事件、および、災害等が発生している（指示対象状況を表す情報に該当する）ときに、他の情報処理ユニット１１が設置されている場所において事故、事件、および、災害等が発生していない（または、他の情報処理ユニットの外部状況情報を取得していない）という条件を取得する。
【００７０】
そして、アドミニストレータ機能部５２は、取得した情報処理ユニット１１の外部状況情報と、他の情報処理ユニット１１の外部状況情報と、に基づいて、取得した条件を満たすか否かを判定する。すなわち、アドミニストレータ機能部５２は、情報処理ユニット１１が設置されている場所において事故、事件、および、災害等が発生しているときに、他の情報処理ユニット１１が設置されている場所において事故、事件、および、災害等が発生しているか否かを判定する。そして、他の情報処理ユニット１１が設置されている場所において事故、事件、および、災害等が発生していない場合に、アドミニストレータ機能部５２は、他の情報処理ユニットに通信経路指示処理を行うよう指示する。
【００７１】
これにより、例えば、夜間の時間帯や、イベントが行われる場合、または、災害等が発生した場合に、アドミニストレータ機能部５２は、他の情報処理ユニット１１に通信経路指示処理を行うよう指示する。この結果、確実に端末装置１３間の通信を行うことができる。
【００７２】
なお、通信システム１の情報処理ユニット１１は、例えばＵＣ（Unified  Communication）を実現するための機能を備えることができる。通信システムがＵＣを実現するための機能を備える場合の例について図１０を参照して説明する。
【００７３】
図１０に示すように、情報処理ユニット１３１は、中継機能部１４１を備える点が図２の情報処理ユニット１１に対して相違している。従って、以下、かかる相違点を中心として説明する。
【００７４】
中継機能部１４１は、例えば、ＵＣを実現するためのサーバであり、様々な通信手段やコミュニケーション手段を備え、それらを統合することで効率的なコミュニケーションを実現する。コミュニケーション手段は、例えば、ＷＥＢ会議、ＴＶ（Television）会議、多者会議、チャット、ＩＶＲ（Interactive  Voice  Response）、及び、コンタクトセンター等である。
【００７５】
まず、ＵＣの機能を利用する場合、複数の端末装置１３のそれぞれは、複数の端末装置１３が利用する中継機能部１４１の識別情報を含む通信先情報を、情報処理ユニット１３１（アドミニストレータ機能部５２）へ送信する。そして、ステートフルプロキシ機能部５３は、アドミニストレータ機能部５２を介して、複数の端末装置１３のそれぞれの通信先情報を取得し、ＤＮＳ機能部５４へ出力する。続いて、ＤＮＳ機能部５４は、通信先情報に基づく通信先アドレスを取得し、ステートフルプロキシ機能部５３へ出力し、ステートフルプロキシ機能部５３は、通信先アドレスを中継機能部１４１へ出力する。
【００７６】
また、ステートフルプロキシ機能部５３は、転送設定情報をオープンフローコントローラ機能部５５へ出力する。そして、オープンフローコントローラ機能部５５は、フローエントリ取得処理を実行し、複数の端末装置１３のそれぞれと、中継機能部１４１と、を接続するためのフローエントリを生成する。続いて、ステートフルプロキシ機能部５３は、オープンフローコントローラ機能部５５にて生成されたフローエントリを取得し、取得したフローエントリを、例えば仮想マシン制御機能部５１の通信部６１を介してオープンフロースイッチ３１へ出力する。なお、ステートフルプロキシ機能部５３は、ネットワーク１２内の全てのオープンフロースイッチ３１へ、対応するフローエントリを出力する。
【００７７】
そして、中継機能部１４１は、複数の端末装置１３のそれぞれから、オープンフロースイッチ３１を介して、応答（ネットワーク解決した旨の通知）を受信した場合に、ステートフルプロキシ機能部５３から取得した通信先アドレスに基づいて、複数の端末装置１３のそれぞれを接続する。そして、中継機能部１４１は、複数の端末装置１３により選択されたコミュニケーション手段を複数の端末装置１３のそれぞれに提供する。これにより、複数の端末装置１３のユーザは、複数の端末装置１３間にて所定の情報を通信することができる。
【００７８】
なお、アドミニストレータ機能部５２は、稼働状況として中継機能部１４１の負荷を表す負荷情報と、中継機能部１４１における障害の発生と、の少なくとも一方を取得することができる。アドミニストレータ機能部５２は、取得した負荷情報が表す負荷が予め定められた閾値よりも大きい場合、または、中継機能部１４１における障害の発生を検出した場合、他の情報処理ユニット１３１（が含む中継機能部１４１）へ、複数の端末装置１３の間の通信を中継するように指示する。これによれば、輻輳や障害の発生を回避して、端末装置１３間の通信を行うことができる。
【００７９】
（動作）
次に、図１１乃至図１８を参照して、通信システム１の動作について説明する。図１１は、仮想マシンを生成する処理を説明するシーケンス図である。
【００８０】
まず、端末装置１３の取得部８１は、端末識別情報を取得する（ステップＳ１）。端末識別情報は、例えば、ユーザＩＤとパスワード等、仮想マシン制御機能部５１が端末装置１３のユーザ等を認証するための情報である。この端末識別情報は、例えばユーザにより入出力部７２を介して入力されてもよいし、予め記憶部７３に記憶されていてもよい。
【００８１】
続いて、端末装置１３の通信部７４は、ステップＳ１の処理にて取得した端末識別情報を、ネットワーク１２を介して仮想マシン制御機能部５１へ送信する（ステップＳ２）。次に、仮想マシン制御機能部５１の通信部６１は、ステップＳ２の処理にて端末装置１３から送信された端末識別情報を受信する（ステップＳ１１）。
【００８２】
続いて、仮想マシン制御機能部５１の仮想マシン制御部６２は、ステップＳ１１の処理にて受信した端末識別情報に基づいて、端末装置１３を認証する（ステップＳ１２）。なお、認証に失敗した場合、処理は終了する。次に、仮想マシン制御部６２は、仮想マシンを生成する（ステップＳ１３）。例えば、仮想マシン制御部６２は、仮想マシンを制御するハイパーバイザ等のプログラムを起動する。
【００８３】
そして、仮想マシン制御部６２は、端末装置１３の仮想マシン環境を仮想マシンＤＢ６３から読み出す（ステップＳ１４）。仮想マシンＤＢ６３には、例えばユーザＩＤに対応付けられた仮想ＯＳやアプリケーション、設定情報や記憶情報等が記憶されている。続いて、仮想マシン制御機能部５１の通信部６１は、仮想マシンの起動完了を表す起動完了通知を端末装置１３へ送信する（ステップＳ１５）。そして、端末装置１３の通信部７４は、起動完了通知を受信する（ステップＳ３）。これにより、端末装置１３は、仮想マシンを利用することができる。
【００８４】
次に、図１２を参照して、端末装置１３の接続要求処理について説明する。最初に、取得部８１は、通信元情報と通信先情報とを取得する（ステップＳ３１）。通信元情報は、端末装置１３のＩＰアドレスやＭＡＣアドレス、ポート番号等を含む。また、通信元情報は、例えば、ユーザが所属された会社を識別する会社ＩＤや、会社内の各部門を識別する部門ＩＤ等を含む。なお、通信元情報は、複数の会社をまとめた会社群を識別するためのグループＩＤ等も含むことができる。通信先情報は、例えばＩＰ電話を利用する場合には通信先の電話番号を含み、ＷＥＢを利用する場合にはＵＲＬ等を含み、電子メールを利用する場合には通信先のメールアドレスを含む。
【００８５】
続いて、通信部７４は、ステップＳ３１の処理にて取得した通信元情報と通信先情報とをオープンフロースイッチ３１へ送信する（ステップＳ３２）。次に、図１３を参照し、オープンフロースイッチ３１の転送制御部９１は、図１２のステップＳ３２の処理にて送信された通信元情報と通信先情報とを受信する（ステップＳ４１）。
【００８６】
続いて、転送制御部９１は、対応するフローエントリが記憶されているか否かを判定する（ステップＳ４２）。つまり、転送制御部９１は、ステップＳ４１の処理にて受信した通信元情報と通信先情報との少なくとも一方に基づく情報が、フローテーブルＤＢ９２に記憶されたフローエントリの「条件」に含まれているか否かを判定する。
【００８７】
対応するフローエントリが記憶されていないと判定した場合（ステップＳ４２：Ｎｏ）、転送制御部９１は、トポロジ情報を取得する（ステップＳ４３）。トポロジ情報は、オープンフロースイッチ３１の接続状態を表す情報である。トポロジ情報は、例えば、オープンフロースイッチ３１が有する各ポートに接続された他のオープンフロースイッチ３１や端末装置１３等の情報を表す。
【００８８】
続いて、転送制御部９１は、スイッチ情報を取得する（ステップＳ４４）。オープンフロースイッチ３１のフローテーブルＤＢ９２に予め記憶されたフローテーブル１０１、または、フローテーブルＤＢ９２に最初に設定されたフローテーブルの情報を表す。そして、転送制御部９１は、通信元情報と通信先情報とトポロジ情報とスイッチ情報とを、転送設定情報としてアドミニストレータ機能部５２へ送信する（ステップＳ４５）。
【００８９】
次に、図１４を参照して、アドミニストレータ機能部５２の処理について説明する。アドミニストレータ機能部５２は、図１３のステップＳ４５の処理にてオープンフロースイッチ３１から送信された転送設定情報を受信する（ステップＳ６１）。続いて、アドミニストレータ機能部５２は、稼働状況判定処理を行う（ステップＳ６２）。稼働状況判定処理は、例えば情報処理ユニット１１内に輻輳や障害が発生しているか否かを判定する。稼働状況判定処理については図１５を参照して後述する。
【００９０】
情報処理ユニット１１内に輻輳や障害が発生していないと判定した場合、アドミニストレータ機能部５２は、ステートフルプロキシ機能部５３へアドレス解決処理を指示する。図１６を参照して、アドレス解決処理について説明する。
【００９１】
図１６のアドレス解決処理では、まず、ステートフルプロキシ機能部５３は、アドミニストレータ機能部５２から通信先情報を取得（受信）する（ステップＳ８１）。つまり、ステートフルプロキシ機能部５３は、アドミニストレータ機能部５２が受信した転送設定情報に含まれる通信先情報を抽出する。
【００９２】
続いて、ステートフルプロキシ機能部５３は、ステップＳ８１の処理にて取得した通信先情報をＤＮＳ機能部５４へ出力する（ステップＳ８２）。次に、ＤＮＳ機能部５４は、ステップＳ８２の処理にて出力された通信先情報を取得する（ステップＳ９１）。そして、ＤＮＳ機能部５４は、通信先情報に対応付けて記憶された通信先アドレス（例えばＩＰアドレス）を取得する（ステップＳ９２）。そして、ＤＮＳ機能部５４は、ステップＳ９２の処理にて取得した通信先アドレスを、ステートフルプロキシ機能部５３へ出力する（ステップＳ９３）。
【００９３】
続いて、ステートフルプロキシ機能部５３は、ステップＳ９３の処理にてＤＮＳ機能部５４から送信された通信先アドレスを取得する（ステップＳ８３）。そして、ステートフルプロキシ機能部５３は、ステップＳ８３の処理にて取得した通信先アドレスを仮想マシン制御機能部５１へ出力する（ステップＳ８４）。
【００９４】
最後に、端末装置１３の通信部７４は、仮想マシンを介して、ステップＳ８４の処理にてステートフルプロキシ機能部５３から送信された通信アドレスを受信する（図１２のステップＳ３３）これにより、端末装置１３は、通信先装置のアドレス情報を取得することができる。
【００９５】
また、図１４のステップＳ６４において、アドミニストレータ機能部５２は、ステートフルプロキシ機能部５３へネットワーク解決処理を指示する（ステップＳ６４）。図１７と図１８を参照して、ネットワーク解決処理について説明する。なお、ネットワーク解決処理は、図１６のアドレス解決処理と並列に実行することができる。
【００９６】
図１７のネットワーク解決処理では、まず、ステートフルプロキシ機能部５３は、アドミニストレータ機能部５２から転送設定情報を取得（受信）する（ステップＳ１１１）。続いて、ステートフルプロキシ機能部５３は、ステップＳ１１１の処理にて受信した転送設定情報をオープンフローコントローラ機能部５５へ出力する（ステップＳ１１２）。
【００９７】
続いて、オープンフローコントローラ機能部５５は、図１７のステップＳ１１２の処理にて出力された転送設定情報を取得する（ステップＳ１２１）。次に、オープンフローコントローラ機能部５５は、フローエントリ取得処理を実行する（ステップＳ１２２）。図１８を参照して、フローエントリ取得処理について説明する。
【００９８】
図１８のフローエントリ取得処理では、まずオープンフローコントローラ機能部５５は、対応するフローエントリが記憶されているか否かを判定する（ステップＳ１３１）。つまり、オープンフローコントローラ機能部５５は、ステップＳ１２１の処理にて取得した転送設定情報に含まれる通信元情報と通信先情報との少なくとも一方に基づく情報が、フローテーブルサーバ機能部５７に記憶されたフローエントリの「条件」に含まれているか否かを判定する。
【００９９】
対応するフローエントリが記憶されていると判定した場合（ステップＳ１３１：Ｙｅｓ）、オープンフローコントローラ機能部５５は、フローテーブルサーバ機能部５７に記憶されたフローエントリを取得し（ステップＳ１３２）、以下に説明するステップＳ１３３乃至Ｓ１３５の処理は省略し、処理は図１７のステップＳ９３に進む。
【０１００】
一方、対応するフローエントリが記憶されていないと判定した場合（ステップＳ１３１：Ｎｏ）、オープンフローコントローラ機能部５５は、ポリシ情報を取得する（ステップＳ１３３）。ポリシ情報は、会社などの組織において情報セキュリティを確保するための規定を表す。ポリシ情報は、例えば、通信元情報に対応付けられた、通信可能および／または通信不可能な接続先や優先的に接続する接続先等の情報を含む。
【０１０１】
続いて、オープンフローコントローラ機能部５５は、フローエントリを生成する（ステップＳ１３４）。つまり、オープンフローコントローラ機能部５５は、転送設定情報に基づいて、通信元装置と通信先装置との間の経路を設定し、設定した経路にてパケット情報を転送するための「条件」と「処理内容」とを設定する。
【０１０２】
続いて、オープンフローコントローラ機能部５５は、ステップＳ１３４の処理にて生成したフローエントリを記憶する（ステップＳ１３５）。ステップＳ１３５の処理の後、処理は図１７のステップＳ９３に進む。そして、オープンフローコントローラ機能部５５は、ステップＳ９３の処理にて取得したフローエントリを、ステートフルプロキシ機能部５３へ出力する（ステップＳ１２３）。
【０１０３】
続いて、ステートフルプロキシ機能部５３は、ステップＳ１２３の処理にてオープンフローコントローラ機能部５５から出力されたフローエントリを取得する（ステップＳ１１３）。そして、ステートフルプロキシ機能部５３は、ステップＳ１１３の処理にて取得したフローエントリを、仮想マシン制御機能部５１の通信部６１を介してオープンフロースイッチ３１へ出力する（ステップＳ１１４）。
【０１０４】
次に、図１３のステップＳ４６において、オープンフロースイッチ３１の転送制御部９１は、図１７のステップＳ１１４の処理にて出力されたフローエントリを受信し（ステップＳ４６）、受信したフローエントリをフローテーブルＤＢ９２に記憶する（ステップＳ４７）。
【０１０５】
続いて、オープンフロースイッチ３１は、端末装置１３へ応答を通知する（ステップＳ４８）。この応答は、端末装置１３と通信先装置との間でパケット情報の転送が可能になったことを通知するための情報である。これ以降、オープンフロースイッチ３１は、フローテーブルＤＢ９２に記憶されたフローエントリに基づいて、端末装置１３と通信先装置との間でパケット情報を転送する転送処理を行うことができる。
【０１０６】
続いて、図１２のステップＳ３４において、端末装置１３の通信部７４は、図１３のステップＳ４８の処理にて通知された応答を受信する（ステップＳ３４）。ステップＳ３４の処理の後、端末装置１３の接続要求処理は終了する。これ以降、端末装置１３は、通信先アドレスを含むパケット情報をオープンフロースイッチ３１へ送信することで、通信先装置との間でパケット情報を送受信することが可能になる。
【０１０７】
次に、図１５の稼働判定処理について詳細に説明する。図１５に示すように、まず、アドミニストレータ機能部５２は、負荷を検出する（ステップＳ７１）。この負荷は、情報処理ユニット１１が有する機能部のうち、予め設定された機能部の負荷を表す。例えば、アドミニストレータ機能部５２は、ステートフルプロキシ機能部５３と、ＤＮＳ機能部５４と、オープンフローコントローラ機能部５５と、ポリシサーバ機能部５６と、フローテーブルサーバ機能部５７と、のうちの少なくとも一つの負荷を検出する。続いて、アドミニストレータ機能部５２は、取得した負荷が予め設定された負荷閾値よりも大きいか否かを判定する（ステップＳ７２）。
【０１０８】
負荷が負荷閾値よりも大きくないと判定した場合（ステップＳ７２：Ｎｏ）、アドミニストレータ機能部５２は、予め設定された機能部の障害の発生を検出する（ステップＳ７３）。障害が発生していないと判定した場合（ステップＳ７４：Ｎｏ）、処理は上述した図１４のステップＳ６３に進み、それ以降の処理を繰り返す。
【０１０９】
一方、ステップＳ７４において障害が発生したと判定した場合（ステップＳ７４：Ｙｅｓ）、及び、ステップＳ７２において負荷が負荷閾値よりも大きいと判定した場合（ステップＳ７２：Ｙｅｓ）、アドミニストレータ機能部５２は、他の情報処理ユニット（例えば情報処理ユニット１１Ｂ）へ通信経路通知処理を行うよう指示する（ステップＳ７５）。より具体的には、アドミニストレータ機能部５２は、他の情報処理ユニットにアドレス解決処理とネットワーク解決処理とを行うよう指示する。ステップＳ７５の処理の後、稼働状況判定処理は終了し、他の情報処理ユニット（例えば情報処理ユニット１１Ｂのアドミニストレータ機能部５２Ｂ）により図１４の制御処理が改めて実行される。
【０１１０】
例えば、他の情報処理ユニット１１Ｂのアドミニストレータ機能部５２Ｂは、情報処理ユニット１１Ａのアドミニストレータ機能部５２Ａから転送設定情報を受信し（ステップＳ６１）、情報処理ユニット１１Ｂについて稼働状況判定処理を行う（ステップＳ６２）。なお、アドミニストレータ機能部５２が、常に他のアドミニストレータ機能部５２の稼働状況を監視し、輻輳および／または障害が発生していない他の情報処理ユニット１１（例えば、最も負荷が小さい情報処理ユニット）へ指示をした場合には、このステップＳ６２の稼働状況判定処理は省略することができる。
【０１１１】
そして、アドミニストレータ機能部５２Ｂは、ステートフルプロキシ機能部５３Ｂにアドレス解決処理とネットワーク解決処理とを指示する（ステップＳ６３，Ｓ６４）。情報処理ユニット１１Ｂ（ステートフルプロキシ機能部５３Ｂ）がアドレス解決処理を行う場合、ＤＮＳ機能部５４Ｂが通信先情報に対応する通信先アドレスを取得することができないことがある。このようにＤＮＳ機能部５４Ｂが通信先アドレスを取得できない場合には、ステートフルプロキシ機能部５３Ｂは、ＤＮＳ機能部５４Ｂの代わりに、複製記憶装置１５のＤＮＳデータベース１１１に対して、通信先情報を出力し、通信先アドレスを取得する。
【０１１２】
また、同様に、情報処理ユニット１１Ｂがネットワーク解決処理を行う場合、ポリシサーバ機能部５６Ｂとフローテーブルサーバ機能部５７Ｂとのそれぞれには、転送設定情報に対応するポリシ情報とフローエントリとが記憶されていない場合がある。このように、オープンフローコントローラ機能部５５Ｂが、フローエントリを参照することができず、ポリシ情報を取得できない場合には、ポリシサーバ機能部５６Ｂとフローテーブルサーバ機能部５７Ｂとの代わりに、複製記憶装置１５のポリシデータベース１１２とフローテーブルデータベース１１３とのそれぞれにアクセスして、フローエントリを取得するための情報を取得する。
【０１１３】
このように、オープンフローコントローラ機能部５５等の利用が困難な場合でも、確実にフローエントリを生成し、オープンフロースイッチ３１へ送信することができる。この結果、例えば端末装置１３間の通信を確実に行うことができる
【０１１４】
＜第２実施形態＞
次に、本発明の第２実施形態に係る通信システムについて説明する。第２実施形態に係る情報処理システムでは、図１９に示すように、情報処理ユニット２０１が、所定のデータを記憶するためのデータサーバ機能部２１１（データ記憶装置）を有する点が、上記第１実施形態に係る情報処理ユニット１１とは相違する。従って、以下、かかる相違点について説明する。
【０１１５】
この情報処理ユニット２０１は、例えば、ネットワークに接続された機械同士がユーザを介さず相互に情報交換し、自動的に最適な制御を行うＭ２Ｍ（Machine-to-MachineまたはMachine-to-Management）の技術や、企業内のあらゆる経営資源（人員、物的資産、資金、情報）を企業全体で統合的に管理し、最適に配置・配分するＥＲＰ（Enterprise  Resource  Planning）の技術にて利用される。Ｍ２Ｍの技術を利用する場合、データサーバ機能部２１１は、端末装置１３としての機械から送信されたデータを記憶する機械サーバの機能を有する。また、ＥＲＰの技術を利用する場合、データサーバ機能部２１１は、端末装置１３から送信されたＥＲＰデータを記憶するＥＲＰサーバの機能を有する。
【０１１６】
上述した技術を利用する場合、情報処理ユニット２０１のオープンフローコントローラ機能部５５は、端末装置１３とオープンフロースイッチ３１とを介して、アドミニストレータ機能部５２から受信した転送設定情報に基づいて、端末装置１３とデータサーバ機能部２１１との間を接続するためのフローエントリを生成する。例えば、オープンフローコントローラ機能部５５は、データサーバ機能部２１１の通信先アドレスを「条件」として、所定の転送処理を行うフローエントリを生成する。そして、端末装置１３から所定のデータがデータサーバ機能部２１１へ送信され、記憶される。データサーバ機能部２１１に記憶されるデータは、例えば、売上情報や在庫情報等である。
【０１１７】
そして、データサーバ機能部２１１に格納されたデータを利用する担当者が、端末装置１３からデータサーバ機能部２１１へのアクセスを要求してきた場合、情報処理ユニット２０１は、まずアドレス解決処理を行い、担当者が保持する端末装置１３へデータサーバ機能部２１１の通信先アドレスを出力する。
【０１１８】
続いて、端末装置１３は、オープンフロースイッチ３１と、ステートフルプロキシ機能部５３と、を介してデータサーバ機能部２１１にアクセスし、データサーバ機能部２１１に記憶された所定のデータを取得する。このように、情報処理ユニット２０１内にて所定の情報を一元管理することができ、例えば担当者が、如何なる場所からでも所定の情報を取得することができる。
【０１１９】
なお、例えば情報処理ユニット２０１Ａは、他の情報処理ユニット２０１Ｂへ、上述した処理を行うよう指示することができる。例えば、情報処理ユニット２０１Ａのアドミニストレータ機能部５２Ａは、所定のタイミングにて情報処理ユニット２０１Ｂのアドミニストレータ機能部５２Ｂへ、端末装置１３から取得した転送設定情報を出力する（図２０Ａ（２））。そして、情報処理ユニット２０１Ｂが、複製記憶装置１５を参照して、アドレス解決処理とネットワーク解決処理を行う。なお、複製記憶装置１５は、情報処理ユニット２０１Ａのデータサーバ機能部２１１に記憶されたデータの複製を記憶する外部データサーバ記憶部２２１（外部記憶装置）を備えているものとする。
【０１２０】
つまり、他の情報処理ユニット２０１Ｂが、アドレス解決処理とネットワーク解決処理とを行うことにより、端末装置１３と外部データサーバ記憶部２２１との間の接続を行うフローエントリを生成し、ネットワーク１２のオープンフロースイッチ３１に通知する（図２０Ａ（３））。また、端末装置１３から出力されたデータを外部データサーバ記憶部２２１に記憶する（図２０Ａ（４））。
【０１２１】
そして、担当者等が外部データサーバ記憶部２２１に記憶されたデータを取得する場合、情報処理ユニット２０１Ｂは、情報処理ユニット２０１Ａを介して転送設定情報を取得する（図２０Ｂ（２））。そして、転送設定情報に基づいてアドレス解決処理を行い、担当者が保持する端末装置１３へデータサーバ機能部２１１の通信先アドレスを出力する（図２０Ｂ（３））。
【０１２２】
続いて、端末装置１３は、オープンフロースイッチ３１を介して外部データサーバ記憶部２２１にアクセスし、外部データサーバ記憶部２２１に記憶された所定のデータを取得する（図２０Ｂ（４））。このように、例えば情報処理ユニット２０１Ａ内の負荷が過大になった場合、又は、情報処理ユニット２０１Ａ内に障害が発生した場合でも、端末装置１３から所定のデータを記憶することができるとともに、記憶したデータを確実に読み出すことができる。
【０１２３】
＜第３実施形態＞
次に、本発明の第３実施形態に係る通信システムについて図２１を参照して説明する。
第３実施形態に係る通信システム３０１は、
所定のネットワーク３１１内に配置されたネットワーク機器３１２に対して、当該ネットワーク３１１内に通信経路を構築するよう指示する通信経路指示処理を行う通信経路指示装置３１３Ａと、
通信経路指示装置３１３Ａからの指示に応じて、ネットワーク３１１内に通信経路を構築して所定の送受信データを処理するネットワーク機器３１２と、
所定のタイミングにて、通信経路指示装置３１３Ａとは異なる他の通信経路指示装置３１３Ｂへ、通信経路指示処理のうちの少なくとも一部の処理を行うように指示する制御部３２１（制御手段）と、
を備える。
【０１２４】
上記構成によれば、通信経路指示装置３１３Ａは、所定のネットワーク３１１内に配置されたネットワーク機器３１２に対して、当該ネットワーク３１１内に通信経路を構築するよう指示する通信経路指示処理を行う。そして、ネットワーク機器３１２は、通信経路指示装置３１３Ａからの指示に応じて、ネットワーク３１１内に通信経路を構築して所定の送受信データを処理する。また、制御部３２１は、所定のタイミングにて、通信経路指示装置３１３Ａとは異なる他の通信経路指示装置３１３Ｂへ、通信経路指示処理のうちの少なくとも一部の処理を行うように指示する。このため、例えば、輻輳や障害が発生し、通信経路指示装置の利用が困難な場合でも、代わりに他の通信経路指示装置がネットワーク機器へ通信経路を指示することができる。この結果、例えば端末装置間の通信を確実に行うことができる。
【０１２５】
以上、上記実施形態を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成及び詳細に、本願発明の範囲内において当業者が理解し得る様々な変更をすることができる。
【０１２６】
＜付記＞
上記実施形態の一部又は全部は、以下の付記のように記載され得るが、以下には限られない。
【０１２７】
（付記１）
所定のネットワーク内に配置されたネットワーク機器に対して、当該ネットワーク内に前記通信経路を構築するよう指示する通信経路指示処理を行う通信経路指示装置と、
前記通信経路指示装置からの指示に応じて、前記ネットワーク内に前記通信経路を構築して所定の送受信データを処理するネットワーク機器と、
所定のタイミングにて、前記通信経路指示装置とは異なる他の前記通信経路指示装置へ、前記通信経路指示処理のうちの少なくとも一部の処理を行うように指示する制御手段と、
を備える通信システム。
【０１２８】
上記構成によれば、通信経路指示装置は、所定のネットワーク内に配置されたネットワーク機器に対して、当該ネットワーク内に通信経路を構築するよう指示する通信経路指示処理を行う。そして、ネットワーク機器は、通信経路指示装置からの指示に応じて、ネットワーク内に通信経路を構築して所定の送受信データを処理する。また、制御手段は、所定のタイミングにて、通信経路指示装置とは異なる他の通信経路指示装置へ、通信経路指示処理のうちの少なくとも一部の処理を行うように指示する。このため、例えば、輻輳や障害が発生し、通信経路指示装置の利用が困難な場合でも、代わりに他の通信経路指示装置がネットワーク機器へ通信経路を指示することができる。この結果、例えば端末装置間の通信を確実に行うことができる。
【０１２９】
（付記２）
付記１に記載の通信システムであって、
前記通信経路指示装置と前記制御手段とは、前記ネットワーク機器が配置された前記ネットワークとは異なるネットワーク内に配置される、
通信システム。
【０１３０】
上記構成によれば、通信経路指示装置と制御手段とのそれぞれは、ネットワーク機器が配置されたネットワークとは異なるネットワーク内に配置されるので、ネットワークの一部に障害等が発生した場合でも、端末装置間の通信を確実に行うことができる。
【０１３１】
（付記３）
付記１または２に記載の通信システムであって、
前記通信経路指示装置は、前記通信経路指示処理のうちの少なくとも一部の処理をそれぞれ行う複数の情報処理装置から構成され、
前記制御手段は、所定のタイミングにて、前記情報処理装置が行う前記通信経路指示処理のうちの少なくとも一部の処理を、当該情報処理装置とは異なる他の前記情報処理装置が行うように指示する、
通信システム。
【０１３２】
上記構成によれば、通信経路指示装置は、通信経路指示処理のうちの少なくとも一部の処理をそれぞれ行う複数の情報処理装置から構成される。そして、制御手段は、所定のタイミングにて、情報処理装置が行う通信経路指示処理のうちの少なくとも一部の処理を、当該情報処理装置とは異なる他の情報処理装置が行うように指示する。このように、通信経路指示処理は複数の情報処理装置から構成されるので、ある情報処理装置に障害などが発生し、利用することができない場合でも、代わりに他の情報処理装置を利用して通信経路指示処理を行うことができる。
【０１３３】
（付記４）
付記１乃至３のいずれかに記載の通信システムであって、
前記制御手段は、前記通信経路指示装置の負荷を検出し、検出した当該負荷が予め設定された閾値よりも大きくなった場合に、前記他の通信経路指示装置に、前記通信経路指示処理のうちの少なくとも一部の処理を行うように指示する、
通信システム。
【０１３４】
上記構成によれば、制御手段は、通信経路指示装置の負荷を検出し、検出した当該負荷が予め設定された閾値よりも大きくなった場合に、他の通信経路指示装置に、通信経路指示処理のうちの少なくとも一部の処理を行うように指示する。このため、通信経路指示装置への負荷が過大になり、輻輳などが発生しうる場合でも、他の通信経路指示装置が通信経路指示処理のうちの少なくとも一部の処理を行う。この結果、輻輳を回避して端末装置間の通信を確実に行うことができる。
【０１３５】
（付記５）
付記１乃至４のいずれかに記載の通信システムであって、
前記制御手段は、前記通信経路指示装置における障害の発生を検出し、障害の発生を検出した場合に、前記他の通信経路指示装置に、前記通信経路指示処理のうちの少なくとも一部の処理を行うように指示する、
通信システム。
【０１３６】
上記構成によれば、制御手段は、通信経路指示装置における障害の発生を検出し、障害の発生を検出した場合に、他の通信経路指示装置に、通信経路指示処理のうちの少なくとも一部の処理を行うように指示する。このため、通信経路指示装置に障害が発生した場合でも、他の通信経路指示装置が通信経路指示処理のうちの少なくとも一部の処理を行う。この結果、障害を回避して端末装置間の通信を確実に行うことができる。
【０１３７】
（付記６）
付記１乃至５のいずれかに記載の通信システムであって、
前記制御手段は、前記通信経路指示装置が設置されている場所における予め設定された外部情報を表す外部状況情報に基づいて、前記他の通信経路指示装置に、前記通信経路指示処理のうちの少なくとも一部の処理を行うように指示する、
通信システム。
【０１３８】
上記構成によれば、制御手段は、通信経路指示装置が設置されている場所における予め設定された外部情報を表す外部状況情報に基づいて、他の通信経路指示装置に、通信経路指示処理のうちの少なくとも一部の処理を行うように指示する。このため、例えば通信経路指示装置の負荷が上昇し始めるタイミングで、他の通信経路指示装置に通信経路指示処理のうちの少なくとも一部の処理を行うように指示することができ、効率的に端末装置間の通信を行うことができる。
【０１３９】
（付記７）
付記１乃至６のいずれかに記載の通信システムであって、
前記制御手段は、前記通信経路指示装置が配置されたネットワークとは異なるネットワーク内に配置された通信経路指示装置を前記他の通信経路指示装置として決定し、決定した前記他の通信経路指示装置に、前記通信経路指示処理のうちの少なくとも一部の処理を行うように指示する、
通信システム。
【０１４０】
上記構成によれば、制御手段は、通信経路指示装置が配置されたネットワークとは異なるネットワーク内に配置された通信経路指示装置を他の通信経路指示装置として決定し、決定した他の通信経路指示装置に、通信経路指示処理のうちの少なくとも一部の処理を行うように指示する。このように、通信経路指示装置が配置されたネットワークとは異なるネットワーク内に配置された他の通信経路指示装置に、通信経路指示処理のうちの少なくとも一部の処理を行うように指示するので、輻輳や障害等を回避して端末装置間の通信を確実に行うことができる。
【０１４１】
（付記８）
付記１乃至７のいずれかに記載の通信システムであって、
端末装置から送信された所定のデータを記憶するデータ記憶装置と、
前記データ記憶装置に記憶された前記データを複製した複製データを記憶する外部記憶装置と、を備え、
前記通信経路指示装置は、端末装置から前記データ記憶装置と接続するための接続要求情報を受信した場合に、当該端末装置と前記外部記憶装置とを接続するように通信経路情報を生成し、当該通信経路情報に基づいて、前記ネットワーク機器が配置された前記ネットワーク内に前記通信経路を構築するよう前記ネットワーク機器に指示する、
通信システム。
【０１４２】
上記構成によれば、通信システムは、端末装置から送信された所定のデータを記憶するデータ記憶装置と、データ記憶装置に記憶されたデータを複製した複製データを記憶する外部記憶装置と、を備える。そして、他の通信経路指示装置は、端末装置からデータ記憶装置と接続するための接続要求情報を受信した場合に、当該端末装置と外部記憶装置とを接続するように通信経路情報を生成し、当該通信経路情報に基づいて、ネットワーク機器が配置されたネットワーク内に通信経路を構築するようネットワーク機器に指示する。このため、輻輳や障害が発生する等の所定のタイミングにて、データ記憶装置にアクセスできない場合でも、外部記憶装置にアクセスすることができる。この結果、データ記憶装置に記憶されたデータと同様のデータを取得することができる。
【０１４３】
（付記９）
所定のネットワーク内に配置されたネットワーク機器に対して、当該ネットワーク内に前記通信経路を構築するよう指示する通信経路指示処理を行う通信経路指示手段と、
所定のタイミングにて、前記通信経路指示手段とは異なる他の前記通信経路指示手段へ、前記通信経路指示処理のうちの少なくとも一部の処理を行うように指示する制御手段と、
を備える通信装置。
【０１４４】
（付記１０）
通信経路指示装置が、所定のネットワーク内に配置されたネットワーク機器に対して、当該ネットワーク内に前記通信経路を構築するよう指示する通信経路指示処理を行い、
所定のタイミングにて、前記通信経路指示装置とは異なる他の前記通信経路指示装置へ、前記通信経路指示処理のうちの少なくとも一部の処理を行うように指示する、
情報処理方法。
【０１４５】
（付記１１）
通信装置に、
所定のネットワーク内に配置されたネットワーク機器に対して、当該ネットワーク内に前記通信経路を構築するよう指示する通信経路指示処理を行い通信経路指示手段と、
所定のタイミングにて、前記通信経路指示手段とは異なる他の前記通信経路指示手段へ、前記通信経路指示処理のうちの少なくとも一部の処理を行うように指示する制御手段と、
を実現させるためのプログラム。
【符号の説明】
【０１４６】
１      通信システム
１１    情報処理ユニット
１２    ネットワーク
１３    端末装置
１４    ネットワーク
１５    複製記憶装置
２１    情報処理装置
２２    ネットワーク
３１    オープンフロースイッチ
５１    仮想マシン制御機能部
５２    アドミニストレータ機能部
５３    ステートフルプロキシ機能部
５４    ＤＮＳ機能部
５５    オープンフローコントローラ機能部
５６    ポリシサーバ機能部
５７    フローテーブルサーバ機能部
６１    通信部
６２    仮想マシン制御部
６３    仮想マシンＤＢ
７１    演算部
７２    入出力部
７３    記憶部
７４    通信部
８１    取得部
９１    転送制御部
９２    フローテーブルＤＢ
１１１  ＤＮＳデータベース
１１２  ポリシデータベース
１１３  フローテーブルデータベース
１３１  情報処理ユニット
１４１  中継機能部
３０１  通信システム
３１１  ネットワーク
３１２  ネットワーク機器
３１３Ａ，３１３Ｂ  通信経路指示装置
３２１  制御部
【図１】
2014158225.tif 000003
【図２】
2014158225.tif 000004
【図３】
2014158225.tif 000005
【図４】
2014158225.tif 000006
【図５】
2014158225.tif 000007
【図６】
2014158225.tif 000008
【図７】
2014158225.tif 000009
【図８】
2014158225.tif 000010
【図９】
2014158225.tif 000011
【図１０】
2014158225.tif 000012
【図１１】
2014158225.tif 000013
【図１２】
2014158225.tif 000014
【図１３】
2014158225.tif 000015
【図１４】
2014158225.tif 000016
【図１５】
2014158225.tif 000017
【図１６】
2014158225.tif 000018
【図１７】
2014158225.tif 000019
【図１８】
2014158225.tif 000020
【図１９】
2014158225.tif 000021
【図２０】
2014158225.tif 000022
【図２１】
2014158225.tif 000023