以下、本発明に係る通信システムの実施形態について図1乃至図18を参照して説明する。図1乃至図10は、通信システムの構成を説明するための図である。図11乃至図18は、通信システムの動作を説明するための図である。
<第1実施形態>
(構成)
図1に示すように、第1実施形態に係る通信システム1は、情報処理ユニット11A,11B,…の複数の情報処理ユニット11を備える。例えば、情報処理ユニット11Aは、第1国(例えば日本)に配置される情報処理ユニット11であり、情報処理ユニット11Bは、第1国とは異なる第2国(例えば米国)に配置される情報処理ユニット11である。勿論、上記に限定されず、情報処理ユニット11が同じ国に配置されていてもよい。また、通信システム1では、情報処理ユニット11の数が2つに限られず、3つ以上の複数の情報処理ユニット11を備えていてもよい。
情報処理ユニット11Aは、複数の情報処理装置21aa,21ab,…(以下、個々に区別しない場合、情報処理装置21と記載する。また、他の構成についても同様とする。)を備える。複数の情報処理装置21は、情報処理ユニット11A内のネットワーク22aを介して通信可能に接続されている。本例では、複数の情報処理装置21のそれぞれは、ブレードサーバにより構成される。なお、情報処理ユニット11Aは、複数の情報処理装置21を備えるとしたが、1つの情報処理装置21(例えば情報処理装置21aa)から構成されていてもよい。すなわち、1つの情報処理装置21が、後述する情報処理ユニット11の各機能部を実現するための構成を有していてもよい。また、以下に説明する他の情報処理ユニット11Bについても同様に、1つの情報処理装置21から構成されていてもよい。複数の端末装置13a,13b,…は、ネットワーク12(例えばWAN(Wide Area Network))を介して情報処理ユニット11A内の、ネットワーク12とは異なるネットワーク22aに接続されている。
同様に、情報処理ユニット11Bは、複数の情報処理装置21ba,21bb,…と、を備える。複数の情報処理装置21ba,21bb,…は、情報処理ユニット11B内のネットワーク22bを介して通信可能に接続されている。つまり、情報処理ユニット11Bが備える複数の情報処理装置21ba,21bb,…は、情報処理ユニット11Aが備える複数の情報処理装置21aa,12ab,…とは異なるネットワークに配置される。なお、以下には、情報処理ユニット11Aについて説明するが、情報処理ユニット11Bも同様の構成を有している。
各情報処理装置21は、複数の仮想マシン(仮想サーバ)を構築可能に構成される。具体的には、各情報処理装置21は、主となるOS(Operating System)としてのプログラム(メインOS)を実行する。
更に、各情報処理装置21は、メインOS上にて、仮想マシンを動作させるためのプログラムである仮想マシンプログラムを実行する。加えて、各情報処理装置21は、仮想マシンプログラム上にて、少なくとも1つの副となるOS(ゲストOS)を実行する。
加えて、各情報処理装置21は、各ゲストOS上にて、少なくとも1つのアプリケーションプログラムを実行する。ここで、各情報処理装置21により実行されるゲストOSは、仮想マシンを構成している。各仮想マシンは、後述する各機能部の1つを実現する。
複数の端末装置13のそれぞれ(図1の端末装置13a,13b,13c,13d,…)は、例えばパーソナルコンピュータやスマートフォンである。なお、各端末装置は、携帯電話端末、PHS(Personal Handy-phone System)、PDA(Personal Data Assistance,Personal Digital Assistant)、カーナビゲーション端末、又は、ゲーム端末等であってもよい。
複数の端末装置13は、ネットワーク12を介して通信可能に接続されている。そして、ネットワーク12は、相互に接続可能な複数のOpenFlowスイッチ31(ネットワーク機器)(以下、オープンフロースイッチ31と記載する)を備えている。なお、ネットワーク12と情報処理ユニット11A内のネットワーク22aとは、異なるネットワークであり、互いに接続されている。ネットワーク12,22は、例えばIP(Internet Protocol)網などの通信網により構成されている。
複製記憶装置15は、ネットワーク14を介して、情報処理ユニット11に記憶されたデータの複製である複製データを記憶する。複製データを記憶することにより、情報処理ユニット11内に記憶されたデータを利用できない場合でも、代わりに複製データを利用して所定の処理を実行することができる。複製記憶装置15の詳細については後述する。
次に、図2を参照して情報処理ユニット11の構成について説明する。図2に示すように、情報処理ユニット11は、仮想マシン制御機能部51と、アドミニストレータ機能部52(制御手段)と、ステートフルプロキシ機能部53と、DNS(Domain Name(Naming) System(Server))機能部54と、OpenFlowコントローラ機能部55(通信経路指示装置)(以下、オープンフローコントローラ機能部55と記載する)と、ポリシサーバ機能部56(通信経路指示装置)と、フローテーブルサーバ機能部57(通信経路指示装置)と、を有する。なお、情報処理ユニット11内の各機能部(例えばオープンフローコントローラ機能部55)は、1つの情報処理装置21から構成されてもよいし、複数の情報処理装置21から構成されていてもよい。
仮想マシン制御機能部51は、情報処理ユニット11内部の仮想マシンおよび端末装置13の仮想マシンを生成し、制御する。図3は、仮想マシン制御機能部51の詳細な構成を示すブロック図である。図3に示すように、仮想マシン制御機能部51は、通信部61と、仮想マシン制御部62と、仮想マシンDB(Data Base)63と、を備える。仮想マシン制御機能部51の処理については後述して説明する。
ステートフルプロキシ機能部53とDNS機能部54とは、例えばSIP(Session Initiation Protocol)サーバであり、複数のユーザ端末の間の接続を制御する。オープンフローコントローラ機能部55は、例えばネットワーク12における通信経路を設計し、ネットワーク12内に配置されたオープンフロースイッチ31に対して、ネットワーク12内に通信経路を構築するように指示する通信経路指示処理を行う。ポリシサーバ機能部56は、ネットワーク12内の経路を設定するためのポリシ情報を記憶する。ポリシ情報については後述する。フローテーブルサーバ機能部57は、オープンフロースイッチ31に経路を指示するためのフローテーブルを記憶する。上記の各機能部の詳細については後述して説明する。
ここでは、端末装置13が、仮想マシン制御機能部51が提供する仮想マシンを利用する場合の処理について説明する。図4は、端末装置13の構成を示すブロック図である。図4に示すように、端末装置13は、演算部71と、入出力部72と、記憶部73と、通信部74と、を備える。演算部71は、記憶部73に予め記憶されたプログラムを実行することにより取得部81の機能を有する。端末装置13は、仮想マシン制御機能部51が提供するシンクライアント環境(例えばDaaS(Desktop as a Service))を利用する。このため、端末装置13は、少なくともCPU(Central Processing Unit)等の演算部71と、入出力部72と、通信部74とを備えていればよい。
はじめに、端末装置13の取得部81は、端末識別情報を取得する。端末識別情報は、例えば、ユーザID(Identification)とパスワード等、仮想マシン制御機能部51が端末装置13のユーザ等を認証するための情報である。この端末識別情報は、例えばユーザにより入出力部72を介して入力されてもよいし、予め記憶部73に記憶されていてもよい。続いて、端末装置13の通信部74は、取得した端末識別情報を、ネットワーク12を介して仮想マシン制御機能部51へ送信する。
次に、仮想マシン制御機能部51の通信部61は、端末装置13から送信された端末識別情報を受信する。続いて、仮想マシン制御機能部51の仮想マシン制御部62は、受信した端末識別情報に基づいて、端末装置13を認証する。なお、認証に失敗した場合、仮想マシンを生成する処理は終了する。認証に成功した場合、仮想マシン制御部62は、仮想マシンを生成する。例えば、仮想マシン制御部62は、仮想マシンを制御するハイパーバイザ等のプログラムを起動して仮想マシンを生成する。
そして、仮想マシン制御部62は、端末装置13の仮想マシン環境を仮想マシンDB63から読み出す。仮想マシンDB63には、例えばユーザIDに対応付けられた仮想OSやアプリケーション、端末設定情報や記憶情報等が記憶されている。続いて、仮想マシン制御機能部51の通信部61は、仮想マシンの起動完了を表す起動完了通知を端末装置13へ送信する。そして、端末装置13の通信部74は、起動完了通知を受信する。これにより、端末装置13は、仮想マシンを利用することができる。
次に、図5を参照して、オープンフロースイッチ31の構成について説明する。図5に示すように、オープンフロースイッチ31は、転送制御部91とフローテーブルDB92とを備えている。このフローテーブルDB92に記憶されたフローテーブルは、オープンフローコントローラ機能部55が、予め設定された通信経路指示処理を行うことで、記憶される情報である。そして、転送制御部91は、フローテーブルDB92に記憶されたフローテーブルに基づいてパケット情報を転送する。
図6は、フローテーブルDB92に記憶されるフローテーブル101の例を示す図である。図6に示すように、フローテーブル101は、「条件」と「処理内容」とが対応付けられている。フローテーブル101の各行は、フローエントリを示している。図6の例では、転送制御部91は、送信先IPアドレスが「xxxx」であるパケット情報を受信した場合に、受信したパケット情報を物理ポート3から転送(送信)する。また、転送制御部91は、オープンフロースイッチ31の物理ポート6からパケット情報の入力があった場合に、当該パケット情報を物理ポート2から転送する。さらに、転送制御部91は、受信したパケット情報に含まれるプロトコルが「ICMP(Internet Control Message Protocol)」である場合に、受信したパケット情報を破棄する。このように、転送制御部91は、フローテーブル101の各フローエントリに基づく転送処理を行うので、迅速かつ容易にパケット情報を転送することができる。
ここで、オープンフロースイッチ31を利用して通信を行う場合の処理について説明する。まず、最初に、端末装置13の取得部81は、通信元情報と通信先情報とを取得する。通信元情報は、例えば端末装置13のIPアドレスやMACアドレス、ポート番号等を含む。また、通信元情報は、例えばユーザが所属された会社を識別する会社IDや、会社内の各部門を識別する部門ID等を含む。なお、通信元情報は、複数の会社をまとめた会社群を識別するためのグループID等も含むことができる。通信先情報は、例えばIP電話を利用する場合には通信先の電話番号を含み、WEBを利用する場合にはURL等を含み、電子メールを利用する場合には通信先のメールアドレスを含む。
続いて、端末装置13の通信部74は、取得した通信元情報と通信先情報とをオープンフロースイッチ31へ送信する。次に、オープンフロースイッチ31の転送制御部91は、端末装置13から送信された通信元情報と通信先情報とを受信する。続いて、転送制御部91は、対応するフローエントリが記憶されているか否かを判定する。つまり、転送制御部91は、受信した通信元情報と通信先情報との少なくとも一方に基づく情報が、フローテーブルDB92に記憶されたフローエントリの「条件」に含まれているか否かを判定する。対応するフローエントリが記憶されている場合、転送制御部91は、フローエントリの内容に従い、端末装置13と通信先の端末装置13(通信先装置)との間の転送処理を行う。
一方、対応するフローエントリが記憶されていないと判定した場合、転送制御部91は、トポロジ情報を取得する。トポロジ情報は、オープンフロースイッチ31の接続状態を表す情報である。トポロジ情報は、例えば、オープンフロースイッチ31が有する各ポートに接続された他のオープンフロースイッチ31や端末装置13等の情報を表す。続いて、転送制御部91は、スイッチ情報を取得する。オープンフロースイッチ31のフローテーブルDB92に予め記憶されたフローテーブル101、または、フローテーブルDB92に最初に設定されたフローテーブルの情報を表す。
そして、転送制御部91は、通信元情報と通信先情報とトポロジ情報とスイッチ情報とを、転送設定情報としてアドミニストレータ機能部52へ送信する。次に、アドミニストレータ機能部52は、オープンフロースイッチ31から送信された転送設定情報を受信する。続いて、アドミニストレータ機能部52は、稼働状況判定処理を行う。この稼働状況判定処理は、例えば情報処理ユニット11内に輻輳や障害が発生しているか否かを判定する。稼働状況判定処理については図15を参照して後述する。
情報処理ユニット11内に輻輳や障害が発生していないと判定した場合、アドミニストレータ機能部52は、ステートフルプロキシ機能部53へアドレス解決処理を指示する。アドレス解決処理では、まず、ステートフルプロキシ機能部53は、アドミニストレータ機能部52から通信先情報を取得(受信)する。つまり、ステートフルプロキシ機能部53は、アドミニストレータ機能部52が受信した転送設定情報に含まれる通信先情報を抽出する。
続いて、ステートフルプロキシ機能部53は、取得した通信先情報をDNS機能部54へ出力する。そして、DNS機能部54は、通信先情報を取得し、通信先情報に対応付けて記憶された通信先アドレス(例えばIPアドレス)を取得する。続いて、DNS機能部54は、取得した通信先アドレスを、ステートフルプロキシ機能部53へ出力する。
次に、ステートフルプロキシ機能部53は、DNS機能部54から送信された通信先アドレスを取得し、取得した通信先アドレスを仮想マシン制御機能部51へ出力する。最後に、端末装置13の通信部74は、仮想マシンを介して、ステートフルプロキシ機能部53から送信された通信アドレスを受信する。これにより、端末装置13は、通信先装置のアドレス情報を取得することができる。
また、アドミニストレータ機能部52は、ステートフルプロキシ機能部53へネットワーク解決処理を指示する。なお、ネットワーク解決処理は、上述したアドレス解決処理と並列に実行することができる。
ネットワーク解決処理では、まず、ステートフルプロキシ機能部53は、アドミニストレータ機能部52から転送設定情報を取得(受信)し、取得した転送設定情報をオープンフローコントローラ機能部55へ出力する。
続いて、オープンフローコントローラ機能部55は、転送設定情報を取得し、フローエントリ取得処理を実行する。フローエントリ取得処理では、まずオープンフローコントローラ機能部55は、対応するフローエントリが記憶されているか否かを判定する。つまり、オープンフローコントローラ機能部55は、取得した転送設定情報に含まれる通信元情報と通信先情報との少なくとも一方に基づく情報が、フローテーブルサーバ機能部57に記憶されたフローエントリ(例えば図6)の「条件」に含まれているか否かを判定する。
対応するフローエントリが記憶されていると判定した場合、オープンフローコントローラ機能部55は、フローテーブルサーバ機能部57に記憶されたフローエントリを取得する。一方、対応するフローエントリが記憶されていないと判定した場合、オープンフローコントローラ機能部55は、ポリシ情報を取得する。ポリシ情報は、会社などの組織において情報セキュリティを確保するための規定を表す。ポリシ情報は、例えば、通信元情報に対応付けられた、通信可能および/または通信不可能な接続先や優先的に接続する接続先等の情報を含む。
続いて、オープンフローコントローラ機能部55は、フローエントリを生成する。つまり、オープンフローコントローラ機能部55は、転送設定情報に基づいて、通信元装置と通信先装置との間の経路を設定し、設定した経路にてパケット情報を転送するための「条件」と「処理内容」とを設定する。これにより、オープンフローコントローラ機能部55は、例えばネットワーク12内の通信経路を設計する。なお、オープンフローコントローラ機能部55は、ネットワーク12内の全てのオープンフロースイッチ31のそれぞれに対応するフローエントリを生成する。そして、オープンフローコントローラ機能部55は、生成したフローエントリをフローテーブルサーバ機能部57に記憶するとともに、フローエントリをステートフルプロキシ機能部53へ出力する。
続いて、ステートフルプロキシ機能部53は、オープンフローコントローラ機能部55から出力されたフローエントリを取得し、取得したフローエントリを、例えば仮想マシン制御機能部51の通信部61を介してオープンフロースイッチ31へ出力する。なお、ステートフルプロキシ機能部53は、ネットワーク12内の全てのオープンフロースイッチ31へ、対応するフローエントリを出力する。また、ステートフルプロキシ機能部53は、対応するフローエントリが存在しないオープンフロースイッチ31には、フローエントリを送信しなくてよい。
次に、オープンフロースイッチ31の転送制御部91は、出力されたフローエントリを受信し、受信したフローエントリをフローテーブルDB92に記憶する。これにより、オープンフロースイッチ31は、フローテーブルDB92に記憶されたフローエントリに基づいて、端末装置13と通信先装置との間でパケット情報を転送する転送処理を行うことができる。
また、オープンフロースイッチ31は、端末装置13へ応答を通知する。この応答は、端末装置13と通信先装置との間でパケット情報の転送が可能になったことを通知するための情報である。端末装置13の通信部74は、応答を受信すると、オープンフロースイッチ31へ所定のパケット情報を送信する。これにより、端末装置13は、通信先装置との間でパケット情報を送受信することが可能になる。
例えば、図7に示すように、端末装置13aが通信先装置として端末装置13dと通信する場合、ユーザが仮想マシン121上で所定の処理を行い、端末装置13から所定のパケット情報をオープンフロースイッチ31aに送信する。このとき、オープンフロースイッチ31aは、自身に記憶されたフローテーブルを参照して、端末装置13から受信したパケット情報をオープンフロースイッチ31bへ転送する。同様に、オープンフロースイッチ31bは、自身に記憶されたフローテーブルを参照して、オープンフロースイッチ31dへパケット情報を転送する。そして、端末装置13dと直接通信するオープンフロースイッチ31dは、自身に記憶されたフローテーブルを参照して、受信したパケット情報を端末装置13dへ転送する。このように、端末装置13間で所定のパケット情報を通信することができる。
なお、端末装置13は、通信先装置との通信が終了した場合、通信終了をアドミニストレータ機能部52へ通知する。そして、オープンフローコントローラ機能部55は、フローテーブルサーバ機能部57に記憶されたフローテーブルと、各オープンフロースイッチ31に記憶されたフローテーブルを最適化するように、オープンフローテーブルを再設定することができる。この結果、フローテーブルの数が増加しすぎることを防ぐことができる。
次に、アドミニストレータ機能部52の稼働判定処理について詳細に説明する。まず、アドミニストレータ機能部52は、負荷を検出する。この負荷は、情報処理ユニット11が有する機能部のうち、予め設定された機能部の負荷を表す。例えば、アドミニストレータ機能部52は、ステートフルプロキシ機能部53と、DNS機能部54と、オープンフローコントローラ機能部55と、の負荷を検出する。続いて、アドミニストレータ機能部52は、取得した負荷が予め設定された負荷閾値よりも大きいか否かを判定する。
負荷が閾値よりも大きくないと判定した場合、アドミニストレータ機能部52は、予め設定された機能部の障害の発生を検出する。続いて、障害が発生していないと判定した場合、上述したように、ステートフルプロキシ機能部53へアドレス解決処理とネットワーク解決処理を指示する。
一方、障害が発生したと判定した場合、または、負荷が閾値よりも大きいと判定した場合、アドミニストレータ機能部52は、例えば、情報処理ユニット11A(通信経路指示装置が配置されたネットワーク)とは異なる情報処理ユニット11B(異なるネットワーク内に配置された他の通信経路指示装置)を決定し、決定した情報処理ユニット11B(例えば通信経路指示装置)に通信経路指示処理を行うよう指示する(例えば図8(2))。これにより、稼働状況判定処理は終了し、他の情報処理ユニット11(例えば情報処理ユニット11Bのアドミニストレータ機能部52B)が、情報処理ユニット11(例えば情報処理ユニット11Aのアドミニストレータ機能部52A)の代わりに上述した通信経路指示処理を行う。なお、アドミニストレータ機能部52は、他の情報処理ユニット11Bに対して、通信経路指示処理の全てを行うように指示することに限られず、通信経路指示処理のうちの少なくとも一部の処理を行うように指示すればよい。
例えば、他の情報処理ユニット11Bのアドミニストレータ機能部52Bは、情報処理ユニット11Aのアドミニストレータ機能部52Aから転送設定情報を受信し、情報処理ユニット11Bについて稼働状況判定処理を行う。なお、アドミニストレータ機能部52が、常に他のアドミニストレータ機能部52の稼働状況を監視し、輻輳および/または障害が発生していない他の情報処理ユニット11(例えば、最も負荷が小さい情報処理ユニット)へ指示をした場合には、稼働状況判定処理は省略することができる。
そして、アドミニストレータ機能部52Bは、ステートフルプロキシ機能部53Bにアドレス解決処理とネットワーク解決処理とを指示する。情報処理ユニット11B(ステートフルプロキシ機能部53B)がアドレス解決処理を行う場合、DNS機能部54Bが通信先情報に対応する通信先アドレスを取得することができないことがある。このようにDNS機能部54Bが通信先アドレスを取得できない場合には、ステートフルプロキシ機能部53Bは、DNS機能部54Bの代わりに、図9の複製記憶装置15のDNSデータベース111に対して、通信先情報を出力し、通信先アドレスを取得する。なお、例えば端末装置13xが、端末装置13aが配置されたネットワーク12とは異なるネットワークに配置されている場合に、ステートフルプロキシ機能部53Aは、DNS機能部54Aの代わりに、複製記憶装置15のDNSデータベース111に対して、通信先情報を出力し、通信先アドレスを取得することができる。
また、同様に、情報処理ユニット11Bがネットワーク解決処理を行う場合、ポリシサーバ機能部56Bとフローテーブルサーバ機能部57Bとのそれぞれには、転送設定情報に対応するポリシ情報とフローエントリとが記憶されていない場合がある。このように、オープンフローコントローラ機能部55Bが、フローエントリを参照することができず、ポリシ情報を取得できない場合には、ポリシサーバ機能部56Bとフローテーブルサーバ機能部57Bとの代わりに、図9の複製記憶装置15のポリシデータベース112とフローテーブルデータベース113とのそれぞれにアクセスして、フローエントリを取得するための情報を取得する。なお、例えば端末装置13xが、端末装置13aが配置されたネットワーク12とは異なるネットワークに配置されている場合に、オープンフローコントローラ機能部55Aは、ポリシサーバ機能部56Aとフローテーブルサーバ機能部57Aとの代わりに、複製記憶装置15のポリシデータベース112とフローテーブルデータベース113とのそれぞれにアクセスして、フローエントリを取得するための情報を取得することができる。
このように、情報処理ユニット11Aが平常に動作している場合は、情報処理ユニット11Aが複数のユーザ端末との間で所定の通信経路指示処理を実行する(例えば図8の(1))。一方、所定のタイミングにて情報処理ユニット11Aは、他の情報処理ユニット11Bに通信経路指示処理を指示し(例えば図8の(2))、通信経路指示処理を行う情報処理ユニット11を切り替える。そして、他の情報処理ユニットが、複数のユーザ端末間との間で所定の通信経路指示処理を実行する(例えば図8の(3))。従って、例えばオープンフローコントローラ機能部55等の負荷が過大になった場合、又は、オープンフローコントローラ機能部55等に障害が発生した場合でも、端末装置13間の通信を行うことができる。
なお、通信経路指示装置(例えばオープンフローコントローラ機能部55とポリシサーバ機能部56と、フローテーブルサーバ機能部57)は、通信経路指示処理のうちの少なくとも一部の処理をそれぞれ行う複数の情報処理装置21から構成されていてもよい。そして、アドミニストレータ機能部52は、通信経路指示装置が一部の処理(機能)を利用できない場合に、他の通信経路指示装置に、通信経路指示処理のうち利用できなくなった少なくとも一部の処理を代わりに行うように指示する。
例えば、アドミニストレータ機能部52は、情報処理ユニット11Aのオープンフローコントローラ機能部55Aに輻輳や障害が発生し、利用できない場合に、情報処理ユニット11Bのオープンフローコントローラ機能部55Bに対して、オープンフローコントローラ機能部55Aの代わりに通信経路指示処理のうちの少なくとも一部の処理を行うように指示する。また例えば、アドミニストレータ機能部52は、情報処理ユニット11Aのオープンフローコントローラ機能部55Aを構成する複数の情報処理装置21のうちの一つに障害等が発生し、利用できない場合に、当該情報処理装置21と同様の機能を有する情報処理ユニット11Bのオープンフローコントローラ機能部55Bを構成する情報処理装置21に対して、通信経路指示処理のうちの少なくとも一部の処理を行うように指示する。
さらに、例えば、アドミニストレータ機能部52は、情報処理ユニット11Aのポリシサーバ機能部56に輻輳や障害が発生し、利用できない場合に、ポリシサーバ機能部56に記憶されたポリシ情報の複製を記憶する複製記憶装置15のポリシデータベース112にアクセスして、ポリシサーバ機能部56の代わりに通信経路指示処理のうちの少なくとも一部の処理を行うように指示する。
これにより、アドミニストレータ機能部52は、通信経路指示装置のうちの一部の処理が利用できない場合(所定のタイミング)に、利用できなくなった機能を行うことができる、上記通信経路指示装置とは異なる他の通信経路指示装置に、通信経路指示処理のうちの少なくとも一部の処理を行うように指示するので、通信経路指示装置の一部に輻輳や障害等が発生しても、確実に端末装置13間の通信を行うことができる。
なお、通信システム1は、通信システム1の外部状況に応じて、通信経路指示処理を他の情報処理ユニット11に指示することができる。以下に、外部状況に応じて通信経路指示処理を行う情報処理ユニット11を切り替える場合について説明する。なお、情報処理ユニット11は、外部状況情報を取得するための外部状況情報取得部(図示せず)を備えているとする。外部状況情報は、例えば、情報処理ユニット11(自身)が設置されている場所の時刻や、情報処理ユニットが設置されている場所において生じた外部状況(例えば事故や災害)、あるいは、情報処理ユニットが設置されている場所において生じうる外部状況(例えばイベント)を表す情報である。そして、アドミニストレータ機能部52は、外部状況情報取得部にて取得した外部状況情報に基づいて、通信経路指示処理を指示する他の情報処理ユニット11を特定し、特定した他の情報処理ユニット11に通信経路指示処理を実行するように指示する。以下、具体的に説明する。
外部状況情報取得部は、情報処理ユニット11(所定の情報処理装置)が設置されている場所における外部状況情報を取得する。例えば、外部状況情報取得部は、情報処理ユニット11が設置されている場所の現在の時刻を外部状況情報として取得する。外部状況情報取得部は、情報処理ユニット11自身に内蔵された時計を参照して現在の時刻を取得してもよいし、時刻を配信するタイムサーバ等から現在の時刻を取得してもよい。また、外部状況情報取得部は、情報処理ユニット11が設置されている場所を表す位置情報を取得する。情報処理ユニット11の位置情報は、例えば、予め記憶されているものとする。そして、外部状況情報取得部は、例えば、位置情報として日本国内の所定の場所を取得し、外部状況情報として現在の時刻「12時00分」を取得したとする。この場合、時刻「12時00分」は昼間の時間帯(例えば「9時〜17時」)であるので、アドミニストレータ機能部52は、他の情報処理ユニット11の条件として夜間の時間帯(例えば「0時〜5時」,「21時〜23時」)を取得する。
そして、アドミニストレータ機能部110は、取得した条件に対応する他の情報処理ユニット11を特定する。具体的には、まず、アドミニストレータ機能部52は、予め記憶された時差の情報に基づいて、日本国内にて「12時00分」であるときに夜間の時間帯になる場所(国)を特定する。例えば、アドミニストレータ機能部52は、日本国内にて「12時00分」であるときに時刻が「3:00」になる「英国」を特定する。これにより、アドミニストレータ機能部52は、「英国」に設置された情報処理ユニット11を他の情報処理ユニット11として特定する。次に、アドミニストレータ機能部52は、予め記憶された「英国」の情報処理ユニット情報を参照して、「英国」の情報処理ユニット11と通信するためのアドレス等の情報を取得する。
そして、アドミニストレータ機能部52は、取得した情報処理ユニット情報に基づいて、特定した他の情報処理ユニット11に複数の端末装置13間の通信経路指示処理を行うよう指示する。これにより、夜間の時間帯に大半の設備が遊休となる情報処理ユニットを利用することができるので、情報処理ユニット11の設備にコストをかける必要がなく、各情報処理ユニット11のコストを低減することができ、情報処理ユニット11の利用効率の向上を図ることができる。
また、外部状況情報取得部は、予め設定されたタイミングにて(例えば定期的に)、他の情報処理ユニットが設置されている場所の時刻(外部状況情報)を取得する。外部状況情報取得部は、例えば、他の情報処理ユニット11から送信された、他の情報処理ユニット11が設置された場所の時刻を取得する。そして、他の情報処理ユニット11が設置されている場所の時刻が夜間の時間帯である場合に、アドミニストレータ機能部52は、当該他の情報処理ユニット11に通信経路指示処理を行うよう指示することができる。
また、アドミニストレータ機能部52は、予め設定された算出基準に基づいて他の情報処理ユニット11の条件を取得することができる。例えば、アドミニストレータ機能部52は、情報処理ユニット11の外部状況情報として取得した現在の時刻「12:00」に「12時間」を加算(または減算)し、算出した時刻「0:00」を他の情報処理ユニットの条件として取得する。そして、アドミニストレータ機能部110は、現在の時刻が「0:00」(例えば時刻「0:00」から±2時間の範囲内)になる場所(国)に設置された情報処理ユニットを他の情報処理ユニットとして特定してもよい。
さらに、アドミニストレータ機能部52が取得する外部状況情報は時刻に限られず、イベントや、災害等の情報でもよい。例えば、外部状況情報取得部は、インターネット等を介してイベント等を管理するイベント管理サーバと接続し、イベント情報を取得し、記憶する。そして、アドミニストレータ機能部52は、外部状況情報取得部がイベントの内容とイベントの日時を取得した場合、他の情報処理ユニット11の条件として、情報処理ユニット11自身が設置されている場所においてイベントが行われる(指示対象状況を表す情報に該当する)ときに、他の情報処理ユニットが設置されている場所においてイベントが行われていないという条件を取得する。続いて、アドミニストレータ機能部52は、取得した情報処理ユニット11のイベントの日時と、他の情報処理ユニット11のイベントの日時と、が一致するか否かを判定する。そして、イベントの日時が一致していないと判定した場合、すなわち情報処理ユニット11が設置されている場所においてイベントが行われるときに、他の情報処理ユニット11が設置されている場所においてイベントが行われていない場合に、アドミニストレータ機能部52は、他の情報処理ユニット11に通信経路指示処理を行うよう指示する。
次に、事故、事件、および、災害等の外部状況情報を取得する場合について説明する。外部状況情報取得部は、所定のタイミングにて(例えば定期的に)、インターネット等を介して予め記憶されたURL(Uniform Resource Locator)や、事故、事件、および、災害等の情報を配信するサーバ装置を参照して情報処理ユニット11が設置されている場所において生じた事故、事件、および、災害等の外部状況情報を取得する。また、外部状況情報取得部は、地震計等の災害を検出する装置を利用して情報処理ユニットが設置されている場所において生じた外部状況を取得してもよい。
そして、アドミニストレータ機能部110は、外部状況情報取得部が事故、事件、および、災害等の外部状況情報を取得した場合に、他の情報処理ユニット11の条件として、情報処理ユニット11が設置されている場所において事故、事件、および、災害等が発生している(指示対象状況を表す情報に該当する)ときに、他の情報処理ユニット11が設置されている場所において事故、事件、および、災害等が発生していない(または、他の情報処理ユニットの外部状況情報を取得していない)という条件を取得する。
そして、アドミニストレータ機能部52は、取得した情報処理ユニット11の外部状況情報と、他の情報処理ユニット11の外部状況情報と、に基づいて、取得した条件を満たすか否かを判定する。すなわち、アドミニストレータ機能部52は、情報処理ユニット11が設置されている場所において事故、事件、および、災害等が発生しているときに、他の情報処理ユニット11が設置されている場所において事故、事件、および、災害等が発生しているか否かを判定する。そして、他の情報処理ユニット11が設置されている場所において事故、事件、および、災害等が発生していない場合に、アドミニストレータ機能部52は、他の情報処理ユニットに通信経路指示処理を行うよう指示する。
これにより、例えば、夜間の時間帯や、イベントが行われる場合、または、災害等が発生した場合に、アドミニストレータ機能部52は、他の情報処理ユニット11に通信経路指示処理を行うよう指示する。この結果、確実に端末装置13間の通信を行うことができる。
なお、通信システム1の情報処理ユニット11は、例えばUC(Unified Communication)を実現するための機能を備えることができる。通信システムがUCを実現するための機能を備える場合の例について図10を参照して説明する。
図10に示すように、情報処理ユニット131は、中継機能部141を備える点が図2の情報処理ユニット11に対して相違している。従って、以下、かかる相違点を中心として説明する。
中継機能部141は、例えば、UCを実現するためのサーバであり、様々な通信手段やコミュニケーション手段を備え、それらを統合することで効率的なコミュニケーションを実現する。コミュニケーション手段は、例えば、WEB会議、TV(Television)会議、多者会議、チャット、IVR(Interactive Voice Response)、及び、コンタクトセンター等である。
まず、UCの機能を利用する場合、複数の端末装置13のそれぞれは、複数の端末装置13が利用する中継機能部141の識別情報を含む通信先情報を、情報処理ユニット131(アドミニストレータ機能部52)へ送信する。そして、ステートフルプロキシ機能部53は、アドミニストレータ機能部52を介して、複数の端末装置13のそれぞれの通信先情報を取得し、DNS機能部54へ出力する。続いて、DNS機能部54は、通信先情報に基づく通信先アドレスを取得し、ステートフルプロキシ機能部53へ出力し、ステートフルプロキシ機能部53は、通信先アドレスを中継機能部141へ出力する。
また、ステートフルプロキシ機能部53は、転送設定情報をオープンフローコントローラ機能部55へ出力する。そして、オープンフローコントローラ機能部55は、フローエントリ取得処理を実行し、複数の端末装置13のそれぞれと、中継機能部141と、を接続するためのフローエントリを生成する。続いて、ステートフルプロキシ機能部53は、オープンフローコントローラ機能部55にて生成されたフローエントリを取得し、取得したフローエントリを、例えば仮想マシン制御機能部51の通信部61を介してオープンフロースイッチ31へ出力する。なお、ステートフルプロキシ機能部53は、ネットワーク12内の全てのオープンフロースイッチ31へ、対応するフローエントリを出力する。
そして、中継機能部141は、複数の端末装置13のそれぞれから、オープンフロースイッチ31を介して、応答(ネットワーク解決した旨の通知)を受信した場合に、ステートフルプロキシ機能部53から取得した通信先アドレスに基づいて、複数の端末装置13のそれぞれを接続する。そして、中継機能部141は、複数の端末装置13により選択されたコミュニケーション手段を複数の端末装置13のそれぞれに提供する。これにより、複数の端末装置13のユーザは、複数の端末装置13間にて所定の情報を通信することができる。
なお、アドミニストレータ機能部52は、稼働状況として中継機能部141の負荷を表す負荷情報と、中継機能部141における障害の発生と、の少なくとも一方を取得することができる。アドミニストレータ機能部52は、取得した負荷情報が表す負荷が予め定められた閾値よりも大きい場合、または、中継機能部141における障害の発生を検出した場合、他の情報処理ユニット131(が含む中継機能部141)へ、複数の端末装置13の間の通信を中継するように指示する。これによれば、輻輳や障害の発生を回避して、端末装置13間の通信を行うことができる。
(動作)
次に、図11乃至図18を参照して、通信システム1の動作について説明する。図11は、仮想マシンを生成する処理を説明するシーケンス図である。
まず、端末装置13の取得部81は、端末識別情報を取得する(ステップS1)。端末識別情報は、例えば、ユーザIDとパスワード等、仮想マシン制御機能部51が端末装置13のユーザ等を認証するための情報である。この端末識別情報は、例えばユーザにより入出力部72を介して入力されてもよいし、予め記憶部73に記憶されていてもよい。
続いて、端末装置13の通信部74は、ステップS1の処理にて取得した端末識別情報を、ネットワーク12を介して仮想マシン制御機能部51へ送信する(ステップS2)。次に、仮想マシン制御機能部51の通信部61は、ステップS2の処理にて端末装置13から送信された端末識別情報を受信する(ステップS11)。
続いて、仮想マシン制御機能部51の仮想マシン制御部62は、ステップS11の処理にて受信した端末識別情報に基づいて、端末装置13を認証する(ステップS12)。なお、認証に失敗した場合、処理は終了する。次に、仮想マシン制御部62は、仮想マシンを生成する(ステップS13)。例えば、仮想マシン制御部62は、仮想マシンを制御するハイパーバイザ等のプログラムを起動する。
そして、仮想マシン制御部62は、端末装置13の仮想マシン環境を仮想マシンDB63から読み出す(ステップS14)。仮想マシンDB63には、例えばユーザIDに対応付けられた仮想OSやアプリケーション、設定情報や記憶情報等が記憶されている。続いて、仮想マシン制御機能部51の通信部61は、仮想マシンの起動完了を表す起動完了通知を端末装置13へ送信する(ステップS15)。そして、端末装置13の通信部74は、起動完了通知を受信する(ステップS3)。これにより、端末装置13は、仮想マシンを利用することができる。
次に、図12を参照して、端末装置13の接続要求処理について説明する。最初に、取得部81は、通信元情報と通信先情報とを取得する(ステップS31)。通信元情報は、端末装置13のIPアドレスやMACアドレス、ポート番号等を含む。また、通信元情報は、例えば、ユーザが所属された会社を識別する会社IDや、会社内の各部門を識別する部門ID等を含む。なお、通信元情報は、複数の会社をまとめた会社群を識別するためのグループID等も含むことができる。通信先情報は、例えばIP電話を利用する場合には通信先の電話番号を含み、WEBを利用する場合にはURL等を含み、電子メールを利用する場合には通信先のメールアドレスを含む。
続いて、通信部74は、ステップS31の処理にて取得した通信元情報と通信先情報とをオープンフロースイッチ31へ送信する(ステップS32)。次に、図13を参照し、オープンフロースイッチ31の転送制御部91は、図12のステップS32の処理にて送信された通信元情報と通信先情報とを受信する(ステップS41)。
続いて、転送制御部91は、対応するフローエントリが記憶されているか否かを判定する(ステップS42)。つまり、転送制御部91は、ステップS41の処理にて受信した通信元情報と通信先情報との少なくとも一方に基づく情報が、フローテーブルDB92に記憶されたフローエントリの「条件」に含まれているか否かを判定する。
対応するフローエントリが記憶されていないと判定した場合(ステップS42:No)、転送制御部91は、トポロジ情報を取得する(ステップS43)。トポロジ情報は、オープンフロースイッチ31の接続状態を表す情報である。トポロジ情報は、例えば、オープンフロースイッチ31が有する各ポートに接続された他のオープンフロースイッチ31や端末装置13等の情報を表す。
続いて、転送制御部91は、スイッチ情報を取得する(ステップS44)。オープンフロースイッチ31のフローテーブルDB92に予め記憶されたフローテーブル101、または、フローテーブルDB92に最初に設定されたフローテーブルの情報を表す。そして、転送制御部91は、通信元情報と通信先情報とトポロジ情報とスイッチ情報とを、転送設定情報としてアドミニストレータ機能部52へ送信する(ステップS45)。
次に、図14を参照して、アドミニストレータ機能部52の処理について説明する。アドミニストレータ機能部52は、図13のステップS45の処理にてオープンフロースイッチ31から送信された転送設定情報を受信する(ステップS61)。続いて、アドミニストレータ機能部52は、稼働状況判定処理を行う(ステップS62)。稼働状況判定処理は、例えば情報処理ユニット11内に輻輳や障害が発生しているか否かを判定する。稼働状況判定処理については図15を参照して後述する。
情報処理ユニット11内に輻輳や障害が発生していないと判定した場合、アドミニストレータ機能部52は、ステートフルプロキシ機能部53へアドレス解決処理を指示する。図16を参照して、アドレス解決処理について説明する。
図16のアドレス解決処理では、まず、ステートフルプロキシ機能部53は、アドミニストレータ機能部52から通信先情報を取得(受信)する(ステップS81)。つまり、ステートフルプロキシ機能部53は、アドミニストレータ機能部52が受信した転送設定情報に含まれる通信先情報を抽出する。
続いて、ステートフルプロキシ機能部53は、ステップS81の処理にて取得した通信先情報をDNS機能部54へ出力する(ステップS82)。次に、DNS機能部54は、ステップS82の処理にて出力された通信先情報を取得する(ステップS91)。そして、DNS機能部54は、通信先情報に対応付けて記憶された通信先アドレス(例えばIPアドレス)を取得する(ステップS92)。そして、DNS機能部54は、ステップS92の処理にて取得した通信先アドレスを、ステートフルプロキシ機能部53へ出力する(ステップS93)。
続いて、ステートフルプロキシ機能部53は、ステップS93の処理にてDNS機能部54から送信された通信先アドレスを取得する(ステップS83)。そして、ステートフルプロキシ機能部53は、ステップS83の処理にて取得した通信先アドレスを仮想マシン制御機能部51へ出力する(ステップS84)。
最後に、端末装置13の通信部74は、仮想マシンを介して、ステップS84の処理にてステートフルプロキシ機能部53から送信された通信アドレスを受信する(図12のステップS33)これにより、端末装置13は、通信先装置のアドレス情報を取得することができる。
また、図14のステップS64において、アドミニストレータ機能部52は、ステートフルプロキシ機能部53へネットワーク解決処理を指示する(ステップS64)。図17と図18を参照して、ネットワーク解決処理について説明する。なお、ネットワーク解決処理は、図16のアドレス解決処理と並列に実行することができる。
図17のネットワーク解決処理では、まず、ステートフルプロキシ機能部53は、アドミニストレータ機能部52から転送設定情報を取得(受信)する(ステップS111)。続いて、ステートフルプロキシ機能部53は、ステップS111の処理にて受信した転送設定情報をオープンフローコントローラ機能部55へ出力する(ステップS112)。
続いて、オープンフローコントローラ機能部55は、図17のステップS112の処理にて出力された転送設定情報を取得する(ステップS121)。次に、オープンフローコントローラ機能部55は、フローエントリ取得処理を実行する(ステップS122)。図18を参照して、フローエントリ取得処理について説明する。
図18のフローエントリ取得処理では、まずオープンフローコントローラ機能部55は、対応するフローエントリが記憶されているか否かを判定する(ステップS131)。つまり、オープンフローコントローラ機能部55は、ステップS121の処理にて取得した転送設定情報に含まれる通信元情報と通信先情報との少なくとも一方に基づく情報が、フローテーブルサーバ機能部57に記憶されたフローエントリの「条件」に含まれているか否かを判定する。
対応するフローエントリが記憶されていると判定した場合(ステップS131:Yes)、オープンフローコントローラ機能部55は、フローテーブルサーバ機能部57に記憶されたフローエントリを取得し(ステップS132)、以下に説明するステップS133乃至S135の処理は省略し、処理は図17のステップS93に進む。
一方、対応するフローエントリが記憶されていないと判定した場合(ステップS131:No)、オープンフローコントローラ機能部55は、ポリシ情報を取得する(ステップS133)。ポリシ情報は、会社などの組織において情報セキュリティを確保するための規定を表す。ポリシ情報は、例えば、通信元情報に対応付けられた、通信可能および/または通信不可能な接続先や優先的に接続する接続先等の情報を含む。
続いて、オープンフローコントローラ機能部55は、フローエントリを生成する(ステップS134)。つまり、オープンフローコントローラ機能部55は、転送設定情報に基づいて、通信元装置と通信先装置との間の経路を設定し、設定した経路にてパケット情報を転送するための「条件」と「処理内容」とを設定する。
続いて、オープンフローコントローラ機能部55は、ステップS134の処理にて生成したフローエントリを記憶する(ステップS135)。ステップS135の処理の後、処理は図17のステップS93に進む。そして、オープンフローコントローラ機能部55は、ステップS93の処理にて取得したフローエントリを、ステートフルプロキシ機能部53へ出力する(ステップS123)。
続いて、ステートフルプロキシ機能部53は、ステップS123の処理にてオープンフローコントローラ機能部55から出力されたフローエントリを取得する(ステップS113)。そして、ステートフルプロキシ機能部53は、ステップS113の処理にて取得したフローエントリを、仮想マシン制御機能部51の通信部61を介してオープンフロースイッチ31へ出力する(ステップS114)。
次に、図13のステップS46において、オープンフロースイッチ31の転送制御部91は、図17のステップS114の処理にて出力されたフローエントリを受信し(ステップS46)、受信したフローエントリをフローテーブルDB92に記憶する(ステップS47)。
続いて、オープンフロースイッチ31は、端末装置13へ応答を通知する(ステップS48)。この応答は、端末装置13と通信先装置との間でパケット情報の転送が可能になったことを通知するための情報である。これ以降、オープンフロースイッチ31は、フローテーブルDB92に記憶されたフローエントリに基づいて、端末装置13と通信先装置との間でパケット情報を転送する転送処理を行うことができる。
続いて、図12のステップS34において、端末装置13の通信部74は、図13のステップS48の処理にて通知された応答を受信する(ステップS34)。ステップS34の処理の後、端末装置13の接続要求処理は終了する。これ以降、端末装置13は、通信先アドレスを含むパケット情報をオープンフロースイッチ31へ送信することで、通信先装置との間でパケット情報を送受信することが可能になる。
次に、図15の稼働判定処理について詳細に説明する。図15に示すように、まず、アドミニストレータ機能部52は、負荷を検出する(ステップS71)。この負荷は、情報処理ユニット11が有する機能部のうち、予め設定された機能部の負荷を表す。例えば、アドミニストレータ機能部52は、ステートフルプロキシ機能部53と、DNS機能部54と、オープンフローコントローラ機能部55と、ポリシサーバ機能部56と、フローテーブルサーバ機能部57と、のうちの少なくとも一つの負荷を検出する。続いて、アドミニストレータ機能部52は、取得した負荷が予め設定された負荷閾値よりも大きいか否かを判定する(ステップS72)。
負荷が負荷閾値よりも大きくないと判定した場合(ステップS72:No)、アドミニストレータ機能部52は、予め設定された機能部の障害の発生を検出する(ステップS73)。障害が発生していないと判定した場合(ステップS74:No)、処理は上述した図14のステップS63に進み、それ以降の処理を繰り返す。
一方、ステップS74において障害が発生したと判定した場合(ステップS74:Yes)、及び、ステップS72において負荷が負荷閾値よりも大きいと判定した場合(ステップS72:Yes)、アドミニストレータ機能部52は、他の情報処理ユニット(例えば情報処理ユニット11B)へ通信経路通知処理を行うよう指示する(ステップS75)。より具体的には、アドミニストレータ機能部52は、他の情報処理ユニットにアドレス解決処理とネットワーク解決処理とを行うよう指示する。ステップS75の処理の後、稼働状況判定処理は終了し、他の情報処理ユニット(例えば情報処理ユニット11Bのアドミニストレータ機能部52B)により図14の制御処理が改めて実行される。
例えば、他の情報処理ユニット11Bのアドミニストレータ機能部52Bは、情報処理ユニット11Aのアドミニストレータ機能部52Aから転送設定情報を受信し(ステップS61)、情報処理ユニット11Bについて稼働状況判定処理を行う(ステップS62)。なお、アドミニストレータ機能部52が、常に他のアドミニストレータ機能部52の稼働状況を監視し、輻輳および/または障害が発生していない他の情報処理ユニット11(例えば、最も負荷が小さい情報処理ユニット)へ指示をした場合には、このステップS62の稼働状況判定処理は省略することができる。
そして、アドミニストレータ機能部52Bは、ステートフルプロキシ機能部53Bにアドレス解決処理とネットワーク解決処理とを指示する(ステップS63,S64)。情報処理ユニット11B(ステートフルプロキシ機能部53B)がアドレス解決処理を行う場合、DNS機能部54Bが通信先情報に対応する通信先アドレスを取得することができないことがある。このようにDNS機能部54Bが通信先アドレスを取得できない場合には、ステートフルプロキシ機能部53Bは、DNS機能部54Bの代わりに、複製記憶装置15のDNSデータベース111に対して、通信先情報を出力し、通信先アドレスを取得する。
また、同様に、情報処理ユニット11Bがネットワーク解決処理を行う場合、ポリシサーバ機能部56Bとフローテーブルサーバ機能部57Bとのそれぞれには、転送設定情報に対応するポリシ情報とフローエントリとが記憶されていない場合がある。このように、オープンフローコントローラ機能部55Bが、フローエントリを参照することができず、ポリシ情報を取得できない場合には、ポリシサーバ機能部56Bとフローテーブルサーバ機能部57Bとの代わりに、複製記憶装置15のポリシデータベース112とフローテーブルデータベース113とのそれぞれにアクセスして、フローエントリを取得するための情報を取得する。
このように、オープンフローコントローラ機能部55等の利用が困難な場合でも、確実にフローエントリを生成し、オープンフロースイッチ31へ送信することができる。この結果、例えば端末装置13間の通信を確実に行うことができる
<第2実施形態>
次に、本発明の第2実施形態に係る通信システムについて説明する。第2実施形態に係る情報処理システムでは、図19に示すように、情報処理ユニット201が、所定のデータを記憶するためのデータサーバ機能部211(データ記憶装置)を有する点が、上記第1実施形態に係る情報処理ユニット11とは相違する。従って、以下、かかる相違点について説明する。
この情報処理ユニット201は、例えば、ネットワークに接続された機械同士がユーザを介さず相互に情報交換し、自動的に最適な制御を行うM2M(Machine-to-MachineまたはMachine-to-Management)の技術や、企業内のあらゆる経営資源(人員、物的資産、資金、情報)を企業全体で統合的に管理し、最適に配置・配分するERP(Enterprise Resource Planning)の技術にて利用される。M2Mの技術を利用する場合、データサーバ機能部211は、端末装置13としての機械から送信されたデータを記憶する機械サーバの機能を有する。また、ERPの技術を利用する場合、データサーバ機能部211は、端末装置13から送信されたERPデータを記憶するERPサーバの機能を有する。
上述した技術を利用する場合、情報処理ユニット201のオープンフローコントローラ機能部55は、端末装置13とオープンフロースイッチ31とを介して、アドミニストレータ機能部52から受信した転送設定情報に基づいて、端末装置13とデータサーバ機能部211との間を接続するためのフローエントリを生成する。例えば、オープンフローコントローラ機能部55は、データサーバ機能部211の通信先アドレスを「条件」として、所定の転送処理を行うフローエントリを生成する。そして、端末装置13から所定のデータがデータサーバ機能部211へ送信され、記憶される。データサーバ機能部211に記憶されるデータは、例えば、売上情報や在庫情報等である。
そして、データサーバ機能部211に格納されたデータを利用する担当者が、端末装置13からデータサーバ機能部211へのアクセスを要求してきた場合、情報処理ユニット201は、まずアドレス解決処理を行い、担当者が保持する端末装置13へデータサーバ機能部211の通信先アドレスを出力する。
続いて、端末装置13は、オープンフロースイッチ31と、ステートフルプロキシ機能部53と、を介してデータサーバ機能部211にアクセスし、データサーバ機能部211に記憶された所定のデータを取得する。このように、情報処理ユニット201内にて所定の情報を一元管理することができ、例えば担当者が、如何なる場所からでも所定の情報を取得することができる。
なお、例えば情報処理ユニット201Aは、他の情報処理ユニット201Bへ、上述した処理を行うよう指示することができる。例えば、情報処理ユニット201Aのアドミニストレータ機能部52Aは、所定のタイミングにて情報処理ユニット201Bのアドミニストレータ機能部52Bへ、端末装置13から取得した転送設定情報を出力する(図20A(2))。そして、情報処理ユニット201Bが、複製記憶装置15を参照して、アドレス解決処理とネットワーク解決処理を行う。なお、複製記憶装置15は、情報処理ユニット201Aのデータサーバ機能部211に記憶されたデータの複製を記憶する外部データサーバ記憶部221(外部記憶装置)を備えているものとする。
つまり、他の情報処理ユニット201Bが、アドレス解決処理とネットワーク解決処理とを行うことにより、端末装置13と外部データサーバ記憶部221との間の接続を行うフローエントリを生成し、ネットワーク12のオープンフロースイッチ31に通知する(図20A(3))。また、端末装置13から出力されたデータを外部データサーバ記憶部221に記憶する(図20A(4))。
そして、担当者等が外部データサーバ記憶部221に記憶されたデータを取得する場合、情報処理ユニット201Bは、情報処理ユニット201Aを介して転送設定情報を取得する(図20B(2))。そして、転送設定情報に基づいてアドレス解決処理を行い、担当者が保持する端末装置13へデータサーバ機能部211の通信先アドレスを出力する(図20B(3))。
続いて、端末装置13は、オープンフロースイッチ31を介して外部データサーバ記憶部221にアクセスし、外部データサーバ記憶部221に記憶された所定のデータを取得する(図20B(4))。このように、例えば情報処理ユニット201A内の負荷が過大になった場合、又は、情報処理ユニット201A内に障害が発生した場合でも、端末装置13から所定のデータを記憶することができるとともに、記憶したデータを確実に読み出すことができる。
<第3実施形態>
次に、本発明の第3実施形態に係る通信システムについて図21を参照して説明する。
第3実施形態に係る通信システム301は、
所定のネットワーク311内に配置されたネットワーク機器312に対して、当該ネットワーク311内に通信経路を構築するよう指示する通信経路指示処理を行う通信経路指示装置313Aと、
通信経路指示装置313Aからの指示に応じて、ネットワーク311内に通信経路を構築して所定の送受信データを処理するネットワーク機器312と、
所定のタイミングにて、通信経路指示装置313Aとは異なる他の通信経路指示装置313Bへ、通信経路指示処理のうちの少なくとも一部の処理を行うように指示する制御部321(制御手段)と、
を備える。
上記構成によれば、通信経路指示装置313Aは、所定のネットワーク311内に配置されたネットワーク機器312に対して、当該ネットワーク311内に通信経路を構築するよう指示する通信経路指示処理を行う。そして、ネットワーク機器312は、通信経路指示装置313Aからの指示に応じて、ネットワーク311内に通信経路を構築して所定の送受信データを処理する。また、制御部321は、所定のタイミングにて、通信経路指示装置313Aとは異なる他の通信経路指示装置313Bへ、通信経路指示処理のうちの少なくとも一部の処理を行うように指示する。このため、例えば、輻輳や障害が発生し、通信経路指示装置の利用が困難な場合でも、代わりに他の通信経路指示装置がネットワーク機器へ通信経路を指示することができる。この結果、例えば端末装置間の通信を確実に行うことができる。
以上、上記実施形態を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成及び詳細に、本願発明の範囲内において当業者が理解し得る様々な変更をすることができる。
<付記>
上記実施形態の一部又は全部は、以下の付記のように記載され得るが、以下には限られない。
(付記1)
所定のネットワーク内に配置されたネットワーク機器に対して、当該ネットワーク内に前記通信経路を構築するよう指示する通信経路指示処理を行う通信経路指示装置と、
前記通信経路指示装置からの指示に応じて、前記ネットワーク内に前記通信経路を構築して所定の送受信データを処理するネットワーク機器と、
所定のタイミングにて、前記通信経路指示装置とは異なる他の前記通信経路指示装置へ、前記通信経路指示処理のうちの少なくとも一部の処理を行うように指示する制御手段と、
を備える通信システム。
上記構成によれば、通信経路指示装置は、所定のネットワーク内に配置されたネットワーク機器に対して、当該ネットワーク内に通信経路を構築するよう指示する通信経路指示処理を行う。そして、ネットワーク機器は、通信経路指示装置からの指示に応じて、ネットワーク内に通信経路を構築して所定の送受信データを処理する。また、制御手段は、所定のタイミングにて、通信経路指示装置とは異なる他の通信経路指示装置へ、通信経路指示処理のうちの少なくとも一部の処理を行うように指示する。このため、例えば、輻輳や障害が発生し、通信経路指示装置の利用が困難な場合でも、代わりに他の通信経路指示装置がネットワーク機器へ通信経路を指示することができる。この結果、例えば端末装置間の通信を確実に行うことができる。
(付記2)
付記1に記載の通信システムであって、
前記通信経路指示装置と前記制御手段とは、前記ネットワーク機器が配置された前記ネットワークとは異なるネットワーク内に配置される、
通信システム。
上記構成によれば、通信経路指示装置と制御手段とのそれぞれは、ネットワーク機器が配置されたネットワークとは異なるネットワーク内に配置されるので、ネットワークの一部に障害等が発生した場合でも、端末装置間の通信を確実に行うことができる。
(付記3)
付記1または2に記載の通信システムであって、
前記通信経路指示装置は、前記通信経路指示処理のうちの少なくとも一部の処理をそれぞれ行う複数の情報処理装置から構成され、
前記制御手段は、所定のタイミングにて、前記情報処理装置が行う前記通信経路指示処理のうちの少なくとも一部の処理を、当該情報処理装置とは異なる他の前記情報処理装置が行うように指示する、
通信システム。
上記構成によれば、通信経路指示装置は、通信経路指示処理のうちの少なくとも一部の処理をそれぞれ行う複数の情報処理装置から構成される。そして、制御手段は、所定のタイミングにて、情報処理装置が行う通信経路指示処理のうちの少なくとも一部の処理を、当該情報処理装置とは異なる他の情報処理装置が行うように指示する。このように、通信経路指示処理は複数の情報処理装置から構成されるので、ある情報処理装置に障害などが発生し、利用することができない場合でも、代わりに他の情報処理装置を利用して通信経路指示処理を行うことができる。
(付記4)
付記1乃至3のいずれかに記載の通信システムであって、
前記制御手段は、前記通信経路指示装置の負荷を検出し、検出した当該負荷が予め設定された閾値よりも大きくなった場合に、前記他の通信経路指示装置に、前記通信経路指示処理のうちの少なくとも一部の処理を行うように指示する、
通信システム。
上記構成によれば、制御手段は、通信経路指示装置の負荷を検出し、検出した当該負荷が予め設定された閾値よりも大きくなった場合に、他の通信経路指示装置に、通信経路指示処理のうちの少なくとも一部の処理を行うように指示する。このため、通信経路指示装置への負荷が過大になり、輻輳などが発生しうる場合でも、他の通信経路指示装置が通信経路指示処理のうちの少なくとも一部の処理を行う。この結果、輻輳を回避して端末装置間の通信を確実に行うことができる。
(付記5)
付記1乃至4のいずれかに記載の通信システムであって、
前記制御手段は、前記通信経路指示装置における障害の発生を検出し、障害の発生を検出した場合に、前記他の通信経路指示装置に、前記通信経路指示処理のうちの少なくとも一部の処理を行うように指示する、
通信システム。
上記構成によれば、制御手段は、通信経路指示装置における障害の発生を検出し、障害の発生を検出した場合に、他の通信経路指示装置に、通信経路指示処理のうちの少なくとも一部の処理を行うように指示する。このため、通信経路指示装置に障害が発生した場合でも、他の通信経路指示装置が通信経路指示処理のうちの少なくとも一部の処理を行う。この結果、障害を回避して端末装置間の通信を確実に行うことができる。
(付記6)
付記1乃至5のいずれかに記載の通信システムであって、
前記制御手段は、前記通信経路指示装置が設置されている場所における予め設定された外部情報を表す外部状況情報に基づいて、前記他の通信経路指示装置に、前記通信経路指示処理のうちの少なくとも一部の処理を行うように指示する、
通信システム。
上記構成によれば、制御手段は、通信経路指示装置が設置されている場所における予め設定された外部情報を表す外部状況情報に基づいて、他の通信経路指示装置に、通信経路指示処理のうちの少なくとも一部の処理を行うように指示する。このため、例えば通信経路指示装置の負荷が上昇し始めるタイミングで、他の通信経路指示装置に通信経路指示処理のうちの少なくとも一部の処理を行うように指示することができ、効率的に端末装置間の通信を行うことができる。
(付記7)
付記1乃至6のいずれかに記載の通信システムであって、
前記制御手段は、前記通信経路指示装置が配置されたネットワークとは異なるネットワーク内に配置された通信経路指示装置を前記他の通信経路指示装置として決定し、決定した前記他の通信経路指示装置に、前記通信経路指示処理のうちの少なくとも一部の処理を行うように指示する、
通信システム。
上記構成によれば、制御手段は、通信経路指示装置が配置されたネットワークとは異なるネットワーク内に配置された通信経路指示装置を他の通信経路指示装置として決定し、決定した他の通信経路指示装置に、通信経路指示処理のうちの少なくとも一部の処理を行うように指示する。このように、通信経路指示装置が配置されたネットワークとは異なるネットワーク内に配置された他の通信経路指示装置に、通信経路指示処理のうちの少なくとも一部の処理を行うように指示するので、輻輳や障害等を回避して端末装置間の通信を確実に行うことができる。
(付記8)
付記1乃至7のいずれかに記載の通信システムであって、
端末装置から送信された所定のデータを記憶するデータ記憶装置と、
前記データ記憶装置に記憶された前記データを複製した複製データを記憶する外部記憶装置と、を備え、
前記通信経路指示装置は、端末装置から前記データ記憶装置と接続するための接続要求情報を受信した場合に、当該端末装置と前記外部記憶装置とを接続するように通信経路情報を生成し、当該通信経路情報に基づいて、前記ネットワーク機器が配置された前記ネットワーク内に前記通信経路を構築するよう前記ネットワーク機器に指示する、
通信システム。
上記構成によれば、通信システムは、端末装置から送信された所定のデータを記憶するデータ記憶装置と、データ記憶装置に記憶されたデータを複製した複製データを記憶する外部記憶装置と、を備える。そして、他の通信経路指示装置は、端末装置からデータ記憶装置と接続するための接続要求情報を受信した場合に、当該端末装置と外部記憶装置とを接続するように通信経路情報を生成し、当該通信経路情報に基づいて、ネットワーク機器が配置されたネットワーク内に通信経路を構築するようネットワーク機器に指示する。このため、輻輳や障害が発生する等の所定のタイミングにて、データ記憶装置にアクセスできない場合でも、外部記憶装置にアクセスすることができる。この結果、データ記憶装置に記憶されたデータと同様のデータを取得することができる。
(付記9)
所定のネットワーク内に配置されたネットワーク機器に対して、当該ネットワーク内に前記通信経路を構築するよう指示する通信経路指示処理を行う通信経路指示手段と、
所定のタイミングにて、前記通信経路指示手段とは異なる他の前記通信経路指示手段へ、前記通信経路指示処理のうちの少なくとも一部の処理を行うように指示する制御手段と、
を備える通信装置。
(付記10)
通信経路指示装置が、所定のネットワーク内に配置されたネットワーク機器に対して、当該ネットワーク内に前記通信経路を構築するよう指示する通信経路指示処理を行い、
所定のタイミングにて、前記通信経路指示装置とは異なる他の前記通信経路指示装置へ、前記通信経路指示処理のうちの少なくとも一部の処理を行うように指示する、
情報処理方法。
(付記11)
通信装置に、
所定のネットワーク内に配置されたネットワーク機器に対して、当該ネットワーク内に前記通信経路を構築するよう指示する通信経路指示処理を行い通信経路指示手段と、
所定のタイミングにて、前記通信経路指示手段とは異なる他の前記通信経路指示手段へ、前記通信経路指示処理のうちの少なくとも一部の処理を行うように指示する制御手段と、
を実現させるためのプログラム。