以下、本発明に係る通信システムの実施形態について図1乃至図16を参照して説明する。図1乃至図8は、通信システムの構成を説明するための図である。図9乃至図16は、通信システムの動作を説明するための図である。
<第1実施形態>
(構成)
図1に示すように、第1実施形態に係る通信システム1は、情報処理ユニット11と、ネットワーク12と、複数の端末装置13a,13b,…(以下、個々に区別しない場合、端末装置13と記載する。また、他の構成についても同様とする。)と、を備える。情報処理ユニット11(通信制御装置)は、複数の情報処理装置21a,21b,…を備える。複数の情報処理装置21は、情報処理ユニット11内のネットワーク22を介して通信可能に接続されている。本例では、複数の情報処理装置21のそれぞれは、ブレードサーバにより構成される。なお、情報処理ユニット11は、複数の情報処理装置21を備えるとしたが、1つの情報処理装置21(例えば情報処理装置21a)から構成されていてもよい。すなわち、1つの情報処理装置21が、後述する情報処理ユニット11の各機能部を実現するための構成を有していてもよい。複数の端末装置13a,13b,…は、ネットワーク12(例えばWAN(Wide Area Network))を介して情報処理ユニット11内の、ネットワーク12とは異なるネットワーク22に接続される。
各情報処理装置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と情報処理ユニット11内のネットワーク22とは、異なるネットワークであり、互いに接続されている。ネットワーク12,22は、例えばIP(Internet Protocol)網などの通信網により構成されている。
次に、図2を参照して情報処理ユニット11の構成について説明する。図2に示すように、情報処理ユニット11は、仮想マシン制御機能部51と、アドミニストレータ機能部52(制御手段)と、ステートフルプロキシ機能部53と、DNS(Domain Name(Naming) System(Server))機能部54と、OpenFlowコントローラ機能部55(通信経路指示装置)(以下、オープンフローコントローラ機能部55と記載する)と、ポリシサーバ機能部56(通信経路指示装置)と、フローテーブルサーバ機能部57(通信経路指示装置)と、通信サービス管理機能部58と、を有する。なお、情報処理ユニット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に経路を指示するためのフローテーブルを記憶する。
通信サービス管理機能部58は、予め設定された通信サービス情報をユーザ毎(または端末装置13毎)に対応付けて記憶し、所定のタイミングで通信サービス情報をオープンフローコントローラ機能部55へ出力する。通信サービス情報は、例えば、ユーザが利用中の通信サービスの通信性能(例えばスループット)を特定するための情報と、通信サービスに付加する通信機能(例えば電話の転送機能)を特定するための情報である。オープンフローコントローラ機能部55は、通信サービス管理機能部58から出力された通信サービス情報に基づく通信サービスを実現する通信経路を設計する。なお、例えばネットワーク12内には、複数の通信サービスのそれぞれを実現可能な通信経路が予め用意されているものとする。上記の各機能部の詳細については後述して説明する。
ここでは、端末装置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や、端末装置13を識別する端末ID、ユーザが所属する会社を識別する会社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は、ステートフルプロキシ機能部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は、転送設定情報に含まれる識別情報(例えばユーザIDや会社ID)に対応付けられたポリシ情報を取得する。ポリシ情報は、ユーザ個人や会社などの組織において情報セキュリティを確保するための規程を表す。ポリシ情報は、例えば、識別情報に対応付けられた、通信可能および/または通信不可能な接続先等の情報を含む。
続いて、オープンフローコントローラ機能部55は、通信サービス管理機能部58へ通信サービス解決処理を指示する。なお、オープンフローコントローラ機能部55は、通信サービス解決処理を指示する場合、当該指示とともに(または当該指示に含むように)上述した転送設定情報に含まれる少なくとも1つの識別情報を出力する。ここで、図7を参照して、通信サービス管理機能部58の構成について説明する。
図7は、通信サービス管理機能部58の構成を示すブロック図である。図7に示すように、通信サービス管理機能部58は、演算部111と、通信部112と、通信サービスDB113と、料金管理DB114と、を有する。また、演算部111は、取得部121(通信サービス情報取得手段)と、記憶制御部122と、課金部123(課金手段)と、を有する。通信サービスDB113には、予め識別情報に対応付けられた通信サービスの内容を表す通信サービス情報(通信サービス内容情報)が記憶される。通信サービス情報とは、例えば、ユーザが利用中の通信サービスの通信性能を特定するための情報(通信性能情報)と、通信サービスに付加する通信機能を特定するための情報(通信機能付加情報)である。
通信性能情報は、例えば、通信経路のスループット情報や、通信経路にて送受信する画像データの品質情報(画質)、音声データの品質情報(音質)、許容可能な遅延の度合い情報、通信サービスを利用可能な範囲情報、通信サービスのセキュリティ性能情報等の情報である。各通信性能情報には、予め複数の通信性能の度合いが設定されており、取得部121は、ユーザにより設定された通信性能の度合いを特定するための情報を通信サービス情報として取得する。そして、記憶制御部122は、取得部121にて取得した通信サービス情報をユーザID(識別情報)に対応付けて通信サービスDB113に記憶する。
例えば、通信経路のスループット情報の場合、上限が50Mbps(Bits Per Second)、100Mbps、500Mbps、…となる複数の通信性能の度合いが予め設定される。そして、例えば、取得部121は、スループット情報の度合いとしてスループットの上限「50Mbps」を取得する。続いて、記憶制御部122は、ユーザIDに対応付けてスループットの上限「50Mbps」の通信性能を通信サービスDB113に記憶する。勿論、スループットに設定される複数段階の通信性能は上記に限られない。また、上記各通信性能を実現する通信経路は、予めネットワーク(例えばネットワーク12)上に用意されているものとする。
また、例えば、通信サービスを利用可能な範囲情報の場合、例えば関東地方や、日本国内、所定の外国内(例えば米国内)等の通信サービスを利用可能な場所(地域)を示す情報が複数の通信性能の度合いとして予め設定される。さらに、通信サービスのセキュリティ性能情報の場合、例えば、通信サービスにおいて暗号化を適用する範囲等の情報が複数の通信性能の度合いとして予め設定される。
通信機能付加情報は、例えば、電話設定情報やセキュリティ機能情報等、通信サービスにて付加する通信機能を表す情報である。電話設定情報は、例えば、利用可能な内線通話網(例えば他社の内線通話網)や、通話の転送機能、ピックアップ機能等、ユーザが利用可能な複数種類の電話機能を示す情報である。そして、各電話設定情報のうちユーザにより選択された電話設定情報がユーザIDに対応付けられて通信サービスDB113に記憶される。また、セキュリティ機能情報は、例えば、暗号化に用いる暗号コードの種類を表す情報等を含む。このセキュリティ機能情報も、ユーザにより選択されたセキュリティ機能情報がユーザIDに対応付けられて通信サービスDB113に記憶される。
通信サービスDB113に通信サービス情報が記憶されると、通信サービス管理機能部58は課金処理を行う。ここで、通信サービス管理機能部58の課金処理について説明する。通信サービス管理機能部58の課金部123は、上述した処理により通信サービス情報が記憶された場合に、記憶した通信サービス情報(取得部121にて取得した通信サービス情報)に応じて課金する料金を決定する。この料金は、任意の期間(例えば1か月)の通信サービスの利用料金である。例えば、取得部121がスループット情報としてスループットの上限「50Mbps」を取得した場合、課金部123は、スループットの上限「50Mbps」に対応付けて予め設定された料金を課金する料金として決定する。そして、課金部123は、決定した料金を記憶する。具体的には、課金部123(または記憶制御部122)は、ユーザID等の識別情報に対応付けて、決定した料金を料金管理DB114に記憶する。
なお、取得部121がスループットの上限が「50Mbps」から「500Mbps」に設定された通信サービス情報を取得した場合、課金部123は、例えば提供する通信サービスの利用料金を増額するように、スループットの上限「500Mbps」に対応付けて予め設定された料金を課金する料金として決定する。また、取得部121がスループットの上限が「500Mbps」から「50Mbps」に設定された(戻された)通信サービス情報を取得した場合、課金部123は、提供する通信サービスの利用料金を減額するように課金する料金を決定する。さらに、取得部121が電話設定情報として、通話の転送機能が付加する通信サービス情報を取得した場合、課金部123は、「電話の転送機能」に対して予め設定された料金を追加して、通信サービスの利用料金を増額するように課金する料金を決定する。このように、設定された通信サービス情報(通信性能の度合い、付加する通信機能)に応じて、通信サービスの利用料金を決定するので、ユーザの多様なニーズに柔軟に対応可能な課金システムを提供することができる。
なお、課金部123は、通信サービスが変更された場合、予め設定された単位時間(例えば1時間)だけ通信サービスが利用されたものとして利用料金を決定する。例えば、通信サービス管理機能部58(記憶制御部122)は、通信サービスが変更されてから単位時間が経過するまでの間は、新たに通信サービスが設定されたとしても当該通信サービスへの変更を反映(記憶)しないようにすることができる。また、課金部123は、通信サービスの変更回数をカウントし、所定の期間(例えば1か月)内における通信サービスの変更回数に応じた追加料金を課金するようにすることができる。これにより、通信サービスが必要以上に変更されることを防ぎ、通信サービス管理機能部58の負荷を低減することができる。
次に、通信サービス情報に基づく通信経路を設定する場合の処理について説明する。オープンフローコントローラ機能部55が通信サービス解決処理を指示すると、通信サービス管理機能部58は、通信サービス解決処理を実行する。具体的には、まず、通信サービス管理機能部58の通信部112は、オープンフローコントローラ機能部55から出力された通信サービス解決処理の指示と、当該指示とともに(または当該指示に含まれるように)出力された識別情報と、を受け付ける。続いて、通信サービス管理機能部58の取得部121は、通信部112にて受け付けた識別情報に対応する通信サービス情報を通信サービスDB113から取得する。そして、通信部112は、取得部121にて取得した通信サービス情報をオープンフローコントローラ機能部55へ出力する。このように、通信サービス管理機能部58は、通信サービス解決処理を実行することで、ユーザが利用を所望する通信サービスをオープンフローコントローラ機能部55へ出力することができる。
続いて、オープンフローコントローラ機能部55は、通信サービス管理機能部58から通信サービス情報を受信し、フローエントリを生成する。つまり、オープンフローコントローラ機能部55は、転送設定情報に含まれる通信元情報および通信先情報と、ポリシ情報と、通信サービス情報と、に基づいて、通信元装置と通信先装置との間の通信経路を設定し、設定した経路にてパケット情報を転送するための「条件」と「処理内容」とを設定する。これにより、オープンフローコントローラ機能部55は、ネットワーク12内にユーザが利用を所望する通信サービスを実現する通信経路を設計する。例えば、オープンフローコントローラ機能部55は、スループットの上限が「50Mbps」に設定されている場合、スループットの上限が50Mbpsになる経路を選択して、通信元装置と通信先装置との間の通信経路を設計する。また、例えば、オープンフローコントローラ機能部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は、通信先装置との間でパケット情報を送受信することが可能になる。
なお、端末装置13(通信元装置)は、通信先装置との通信が終了した場合、通信終了をアドミニストレータ機能部52へ通知する。そして、オープンフローコントローラ機能部55は、フローテーブルサーバ機能部57に記憶されたフローテーブルと、各オープンフロースイッチ31に記憶されたフローテーブルを最適化するように、オープンフローテーブルを再設定することができる。この結果、フローテーブルの数が増加しすぎることを防ぐことができる。
次に、ユーザが通信サービスの内容を設定する場合の処理について説明する。通信サービスの内容を設定する場合、まず、端末装置13の取得部81は、ユーザ情報を取得する。このユーザ情報は、例えば、ユーザが利用中の通信サービスを特定するためのユーザID等の識別情報である。なお、端末装置13の取得部81は、ユーザ情報としてパスワード等の情報を取得することもできる。次に、端末装置13の通信部74は、取得部81にて取得したユーザ情報を、通信サービス管理機能部58へ送信する。
続いて、まず、通信サービス管理機能部58の通信部112は、端末装置13(または端末装置13にて操作可能な仮想マシン)から送信されたユーザ情報を受信する。なお、通信サービス管理機能部58は、ユーザ情報としてユーザIDとパスワードとを受信した場合、ユーザの認証処理を行うことができる。次に、通信サービス管理機能部58の取得部121は、端末装置13から受信したユーザ情報に基づいて、通信サービスDB113からユーザが利用する(利用中の)通信サービス情報を取得する。つまり、識別情報(ユーザID)に対応付けられた通信サービス情報を取得する。例えば、取得部121は、通信経路のスループットの上限が「50Mbps」に設定された通信サービス情報を取得する。
そして、通信サービス管理機能部58の通信部112は、取得部121にて取得した通信サービス情報を端末装置13へ送信する。通信サービス情報を端末装置13へ送信することで、ユーザが現在利用中の通信サービスを確認することができる。なお、識別情報に対応付けられた通信サービス情報が通信サービスDB113に記憶されていない場合、つまりユーザが初めて通信サービス情報を設定する場合、取得部121は、例えば、予め設定された新規ユーザ用の通信サービス情報を取得することができる。
続いて、端末装置13の通信部74は、通信サービス管理機能部58から送信された通信サービス情報を受信し、入出力部72は、受信した通信サービス情報を表示する。これにより、端末装置13を操作するユーザは現在利用している通信サービスの詳細を確認することができる。次に、端末装置13の取得部81は、入出力部72を介して、ユーザにより新たに選択された通信サービス情報を取得する。例えば、取得部81は、通信サービス情報として、スループットの上限を「500Mbps」に設定した通信サービス情報を、入出力部72を介して取得する。なお、通信サービスの内容が予め決まっている場合、通信サービス情報を予め記憶部73(または仮想マシンの記憶部)に記憶しておき、端末装置13の取得部81は、記憶された通信サービス情報を取得してもよい。
そして、端末装置13の通信部74は、取得部81にて取得した通信サービス情報を、通信サービス管理機能部58へ送信する。このように、ユーザが通信サービスを詳細に設定することができるので、ユーザの多様なニーズに対応した通信サービスを提供することができる。なお、新たに通信サービス情報を取得しなかった場合、つまり通信サービス情報に変更がない場合、処理は終了する。
続いて、通信サービス管理機能部58の通信部112は、端末装置13から送信された通信サービス情報を受信し、記憶制御部122は、受信した通信サービス情報に基づく新たな通信サービス情報を記憶する。例えば、記憶制御部122は、ユーザID(識別情報)に対応付けて、スループットの上限を「50Mbps」から「500Mbps」に設定した新たな通信サービス情報を通信サービスDB113に記憶する。
なお、記憶制御部122は、通信サービス情報を記憶する場合に、識別情報に対応付けられた設定(変更)前の通信サービス情報とは別に、識別情報に対応付けた、設定後の通信サービス情報を新たに記憶することができる。そして、1つの識別情報に対応付けて複数の通信サービス情報を記憶する場合には、記憶制御部122は、更新日時や優先順位等の通信サービス特定情報を取得し、識別情報に対応付けて記憶する。これにより、識別情報と通信サービス特定情報とに基づいて、複数の通信サービス情報からユーザが利用を所望する(つまり複数の通信サービス情報から選択する)通信サービス情報を特定することができる。
例えば、記憶制御部122は、上記したユーザIDに対応付けて、スループットの上限が「50Mbps」に設定された通信サービス情報と、スループットの上限が「500Mbps」に設定された通信サービス情報と、のそれぞれを記憶する。これにより、通信サービスDB113には、例えばユーザが通常時に利用する通信サービス情報(例えばスループットの上限が「50Mbps」)と、所定のタイミングで利用する通信サービス情報(例えばスループットの上限が「500Mbps」)と、のそれぞれが記憶されるので、例えば優先順位を変更する処理を行うだけで通信サービスを切り替えることができ、ユーザの利便性を向上させることができる。
そして、通信サービス管理機能部58の通信部112が、オープンフローコントローラ機能部55から出力された通信サービス情報の要求を受け付けると、取得部121は、通信サービス情報の要求に含まれる識別情報に対応する通信サービス情報を通信サービスDB113から取得する。なお、識別情報に対応付けられた通信サービス情報が複数ある場合には、取得部121は、更新日時が最新の通信サービス情報や、優先順位が最も高い通信サービス情報を取得する。そして、通信部112は、取得部121にて取得した通信サービス情報をオープンフローコントローラ機能部55へ出力する。
これ以降のオープンフローコントローラ機能部55の処理は、上述した処理と同様であるので簡単に説明する。つまり、オープンフローコントローラ機能部55は、通信サービス管理機能部58から通信サービス情報を受信し、転送設定情報に含まれる通信元情報および通信先情報と、ポリシ情報と、通信サービス情報と、に基づいて、通信元装置と通信先装置との間の通信経路を設定したフローエントリを生成する。そして、オープンフローコントローラ機能部55は、生成したフローエントリをフローテーブルサーバ機能部57に記憶するとともに、フローエントリをステートフルプロキシ機能部53へ出力する。これ以降の処理は上述した処理と同様であるので省略する。これにより、ユーザが通信サービスの変更を所望する場合に、通信サービス情報を入力するだけで、迅速かつ容易に、利用する通信サービスを変更することができる。この結果、ユーザの利便性を向上することができる。
なお、通信システム1の情報処理ユニット11は、例えばUC(Unified Communication)を実現するための機能を備えることができる。通信システムがUCを実現するための機能を備える場合の例について図8を参照して説明する。
図8に示すように、情報処理ユニット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間にて所定の情報を通信することができる。
(動作)
次に、図9乃至図16を参照して、通信システム1の動作について説明する。図9は、仮想マシンを生成する処理を説明するシーケンス図である。
まず、端末装置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は、仮想マシンを利用することができる。
次に、図10を参照して、通信サービス情報を設定する場合の処理について詳細に説明する。まず、端末装置13の取得部81は、ユーザ情報を取得する(ステップS21)。ユーザ情報は、例えば、ユーザが利用中の通信サービスを特定するためのユーザIDである。次に、端末装置13の通信部74は、ステップS21の処理にて取得したユーザ情報を送信する(ステップS22)。
続いて、通信サービス管理機能部58の通信部112は、ステップS22の処理にて端末装置13から送信されたユーザ情報を受信する(ステップS31)。次に、通信サービス管理機能部58の取得部121は、ステップS31の処理にて取得したユーザ情報に基づいて、通信サービスDB113からユーザが利用する通信サービス情報を取得する(ステップS32)。そして、通信サービス管理機能部58の通信部112は、ステップS32の処理にて取得した通信サービス情報を端末装置13へ送信する(ステップS33)。通信サービス情報を端末装置13へ送信することで、ユーザが利用中の通信サービスを確認することができる。
続いて、端末装置13の通信部74は、ステップS33の処理にて送信された通信サービス情報を受信し(ステップS23)、入出力部72は、受信した通信サービス情報を表示する(ステップS24)。これにより、ユーザは現在利用している通信サービスの詳細を確認することができる。次に、端末装置13の取得部81は、通信サービス情報を取得する(ステップS25)。例えば、取得部81は、通信サービス情報として、スループットの上限を「50Mbps」に設定した通信サービス情報を、入出力部72を介して取得する。そして、端末装置13の通信部74は、ステップS25の処理にて取得した通信サービス情報を通信サービス管理機能部58へ送信する(ステップS26)。
続いて、通信サービス管理機能部58の通信部112は、ステップS26の処理にて端末装置13から送信された通信サービス情報を受信する(ステップS34)。そして、記憶制御部122は、ユーザ情報に対応付けて、ステップS34の処理にて受信した通信サービス情報を記憶する(ステップS35)。具体的には、記憶制御部122は、ステップS31の処理にて受信したユーザID(ユーザ情報)に対応付けて、通信サービス情報を通信サービスDB113に記憶する。これにより、各ユーザ(各識別情報)に対応付けて通信サービス情報を設定することができる。
次に、通信サービス管理機能部58の課金部123は、ステップS35の処理にて記憶された通信サービス情報(取得部121にて取得した通信サービス情報)に応じて課金する料金を決定する(ステップS36)。例えば、取得部121がスループット情報としてスループットの上限「50Mbps」を取得した場合、課金部123は、スループットの上限「50Mbps」に対応付けて予め設定された料金を課金する料金として決定する。そして、課金部123は、ユーザ情報に対応付けて決定した料金を記憶する(ステップS37)。具体的には、課金部123は、ユーザID等の識別情報に対応付けて、決定した料金を料金管理DB114に記憶する。これにより、設定された通信サービス情報(通信性能の度合い、付加する通信機能)に応じて、通信サービスの利用料金を決定するので、ユーザの多様なニーズに柔軟に対応可能な課金システムを提供することができる。
次に、図11を参照して、端末装置13の接続要求処理について説明する。最初に、取得部81は、通信元情報と通信先情報とを取得する(ステップS41)。通信元情報は、端末装置13のIPアドレスやMACアドレス、ポート番号等を含む。また、通信元情報は、例えば、ユーザが所属された会社を識別する会社IDや、会社内の各部門を識別する部門ID等を含む。なお、通信元情報は、複数の会社をまとめた会社群を識別するためのグループID等も含むことができる。通信先情報は、例えばIP電話を利用する場合には通信先の電話番号を含み、WEBを利用する場合にはURL等を含み、電子メールを利用する場合には通信先のメールアドレスを含む。
続いて、通信部74は、ステップS41の処理にて取得した通信元情報と通信先情報とをオープンフロースイッチ31へ送信する(ステップS42)。次に、図12を参照し、オープンフロースイッチ31の転送制御部91は、図11のステップS42の処理にて送信された通信元情報と通信先情報とを受信する(ステップS51)。
続いて、転送制御部91は、対応するフローエントリが記憶されているか否かを判定する(ステップS52)。つまり、転送制御部91は、ステップS51の処理にて受信した通信元情報と通信先情報との少なくとも一方に基づく情報が、フローテーブルDB92に記憶されたフローエントリの「条件」に含まれているか否かを判定する。
対応するフローエントリが記憶されていないと判定した場合(ステップS52:No)、転送制御部91は、トポロジ情報を取得する(ステップS53)。トポロジ情報は、オープンフロースイッチ31の接続状態を表す情報である。トポロジ情報は、例えば、オープンフロースイッチ31が有する各ポートに接続された他のオープンフロースイッチ31や端末装置13等の情報を表す。
続いて、転送制御部91は、スイッチ情報を取得する(ステップS54)。オープンフロースイッチ31のフローテーブルDB92に予め記憶されたフローテーブル101、または、フローテーブルDB92に最初に設定されたフローテーブルの情報を表す。そして、転送制御部91は、通信元情報と通信先情報とトポロジ情報とスイッチ情報とを、転送設定情報としてアドミニストレータ機能部52へ送信する(ステップS55)。
次に、図13を参照して、アドミニストレータ機能部52の処理について説明する。アドミニストレータ機能部52は、図12のステップS55の処理にてオープンフロースイッチ31から送信された転送設定情報を受信する(ステップS61)。続いて、アドミニストレータ機能部52は、ステートフルプロキシ機能部53へアドレス解決処理を指示する(ステップS62)。図14を参照して、アドレス解決処理について説明する。
図14のアドレス解決処理では、まず、ステートフルプロキシ機能部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は、仮想マシン(仮想マシン制御機能部51)を介して、ステップS84の処理にてステートフルプロキシ機能部53から送信された通信アドレスを受信する(図11のステップS43)これにより、端末装置13は、通信先装置のアドレス情報を取得することができる。
また、図13のステップS63において、アドミニストレータ機能部52は、ステートフルプロキシ機能部53へネットワーク解決処理を指示する(ステップS63)。図15と図16を参照して、ネットワーク解決処理について説明する。なお、ネットワーク解決処理は、図14のアドレス解決処理と並列に実行することができる。
図15のネットワーク解決処理では、まず、ステートフルプロキシ機能部53は、アドミニストレータ機能部52から転送設定情報を取得(受信)する(ステップS111)。続いて、ステートフルプロキシ機能部53は、ステップS111の処理にて取得した転送設定情報をオープンフローコントローラ機能部55へ出力する(ステップS112)。
続いて、オープンフローコントローラ機能部55は、図15のステップS112の処理にて出力された転送設定情報を取得する(ステップS121)。次に、オープンフローコントローラ機能部55は、フローエントリ取得処理を実行する(ステップS122)。図16を参照して、フローエントリ取得処理について説明する。
図16のフローエントリ取得処理では、まずオープンフローコントローラ機能部55は、対応するフローエントリが記憶されているか否かを判定する(ステップS131)。つまり、オープンフローコントローラ機能部55は、ステップS121の処理にて取得した転送設定情報に含まれる通信元情報と通信先情報との少なくとも一方に基づく情報が、フローテーブルサーバ機能部57に記憶されたフローエントリの「条件」に含まれているか否かを判定する。
対応するフローエントリが記憶されていると判定した場合(ステップS131:Yes)、オープンフローコントローラ機能部55は、フローテーブルサーバ機能部57に記憶されたフローエントリを取得し(ステップS132)、以下に説明するステップS133乃至S137の処理は省略し、処理は図15のステップS123に進む。
一方、対応するフローエントリが記憶されていないと判定した場合(ステップS131:No)、オープンフローコントローラ機能部55は、ポリシ情報を取得する(ステップS133)。ポリシ情報は、会社などの組織において情報セキュリティを確保するための規定を表す。ポリシ情報は、例えば、通信元情報に対応付けられた、通信可能および/または通信不可能な接続先や優先的に接続する接続先等の情報を含む。
次に、オープンフローコントローラ機能部55は、通信サービス管理機能部58へ通信サービス解決処理を指示する(ステップS134)。オープンフローコントローラ機能部55が通信サービス解決処理を指示すると、通信サービス管理機能部58の通信部112は、オープンフローコントローラ機能部55から出力された通信サービス解決処理の指示と、当該指示とともに出力された識別情報と、を受け付ける。続いて、通信サービス管理機能部58の取得部121は、通信部112により受け付けた識別情報に対応する通信サービス情報を通信サービスDB113から取得する。そして、通信部112は、取得部121にて取得した通信サービス情報をオープンフローコントローラ機能部55へ出力する。
続いて、オープンフローコントローラ機能部55は、通信サービス情報を受け付け(ステップS135)、フローエントリを生成する(ステップS136)。つまり、オープンフローコントローラ機能部55は、転送設定情報とポリシ情報と通信サービス情報とに基づいて、通信元装置と通信先装置との間の経路を設定し、設定した経路にてパケット情報を転送するための「条件」と「処理内容」とを設定する。
続いて、オープンフローコントローラ機能部55は、ステップS136の処理にて生成したフローエントリをフローテーブルサーバ機能部57に記憶する(ステップS137)。ステップS137の処理の後、処理は図15のステップS123に進む。そして、オープンフローコントローラ機能部55は、ステップS122の処理にて取得したフローエントリを、ステートフルプロキシ機能部53へ出力する(ステップS123)。
続いて、ステートフルプロキシ機能部53は、ステップS123の処理にてオープンフローコントローラ機能部55から出力されたフローエントリを取得する(ステップS113)。そして、ステートフルプロキシ機能部53は、ステップS113の処理にて取得したフローエントリを、仮想マシン制御機能部51の通信部61を介してオープンフロースイッチ31へ出力する(ステップS114)。
次に、図12のステップS56において、オープンフロースイッチ31の転送制御部91は、図15のステップS114の処理にて出力されたフローエントリを受信し(ステップS56)、受信したフローエントリをフローテーブルDB92に記憶する(ステップS57)。
続いて、オープンフロースイッチ31は、端末装置13へ応答を通知する(ステップS58)。この応答は、端末装置13と通信先装置との間でパケット情報の転送が可能になったことを通知するための情報である。これ以降、オープンフロースイッチ31は、フローテーブルDB92に記憶されたフローエントリに基づいて、端末装置13と通信先装置との間でパケット情報を転送する転送処理を行うことができる。
続いて、図11のステップS44において、端末装置13の通信部74は、図12のステップS58の処理にて通知された応答を受信する(ステップS44)。ステップS44の処理の後、端末装置13の接続要求処理は終了する。これ以降、端末装置13は、通信先アドレスを含むパケット情報をオープンフロースイッチ31へ送信することで、通信先装置との間でパケット情報を送受信することが可能になる。
<第2実施形態>
次に、本発明に係る通信システムの他の実施形態について図17乃至図19を参照して説明する。なお、第2実施形態において第1実施形態と同様の構成を有するものには同じ符号が付されている。従って、第1実施形態との相違点を中心として説明する。
図17に示すように、第2実施形態に係る通信システム201は、情報処理ユニット11A,11B,…の複数の情報処理ユニット11と、外部通信網211と、複製記憶装置212と、を備える点が第1実施形態と異なる。例えば、情報処理ユニット11Aは、第1国(例えば日本)に配置される情報処理ユニット11であり、情報処理ユニット11Bは、第1国とは異なる第2国(例えば米国)に配置される情報処理ユニット11である。勿論、上記に限定されず、情報処理ユニット11が同じ国に配置されていてもよい。また、通信システム201では、情報処理ユニット11の数が2つに限られず、3つ以上の複数の情報処理ユニット11を備えていてもよい。
情報処理ユニット11Aは、複数の情報処理装置21aa,21ab,…を備える。同様に、情報処理ユニット11Bは、複数の情報処理装置21ba,21bb,…を備える。複数の情報処理装置21ba,21bb,…は、情報処理ユニット11B内のネットワーク22bを介して通信可能に接続されている。つまり、情報処理ユニット11Bが備える複数の情報処理装置21ba,21bb,…は、情報処理ユニット11Aが備える複数の情報処理装置21aa,12ab,…とは異なるネットワークに配置される。
複製記憶装置212は、外部通信網211を介して、情報処理ユニット11に記憶されたデータの複製である複製データを記憶する。図18を参照して、複製記憶装置212の構成について説明する。図18に示すように、複製記憶装置212は、DNSデータベース221と、ポリシデータベース222と、フローテーブルデータベース223と、通信サービスデータベース224と、料金管理データベース225と、を備える。DNSデータベース221は、情報処理ユニット11のDNS機能部54が記憶するDNS情報の複製データを記憶する。ポリシデータベース222は、ポリシサーバ機能部56が記憶するポリシ情報の複製データを記憶する。フローテーブルデータベース223は、フローテーブルサーバ機能部57が記憶するフローテーブルの複製データを記憶する。通信サービスデータベース224は、通信サービス管理機能部58の通信サービスDB113に記憶された通信サービス情報の複製データを記憶する。料金管理データベース225は、通信サービス管理機能部58の料金管理DB114に記憶された課金情報を記憶する。このように、複製記憶装置212は、複製データを記憶することにより、情報処理ユニット11内に記憶されたデータを利用できない場合でも、代わりに複製データを利用して所定の処理を実行することができる。
ここで、第2実施形態における処理について詳細に説明する。稼働判定処理では、例えば、アドミニストレータ機能部52(制御手段)が情報処理ユニット11Aの稼働状況等の動作状態を検出または取得し、動作状態に応じて(所定のタイミングにて)、情報処理ユニット11Aで実行する処理(例えば通信経路指示手段)を、情報処理ユニット11Aとは異なる他の情報処理ユニット11(例えば情報処理ユニット11B)に実行するよう指示する。以下、具体的に説明する。
まず、アドミニストレータ機能部52は、情報処理ユニット11が有する複数の機能部のうち、予め設定された機能部の負荷を取得する。例えば、アドミニストレータ機能部52は、ステートフルプロキシ機能部53と、DNS機能部54と、オープンフローコントローラ機能部55と、の負荷を検出する。続いて、アドミニストレータ機能部52は、取得した負荷が予め設定された負荷閾値よりも大きいか否かを判定する。
負荷が閾値よりも大きくないと判定した場合、アドミニストレータ機能部52は、予め設定された機能部の障害の発生を検出する。続いて、障害が発生していないと判定した場合、第1実施形態にて説明したように、ステートフルプロキシ機能部53へアドレス解決処理とネットワーク解決処理を指示する。
一方、障害が発生したと判定した場合、または、負荷が閾値よりも大きいと判定した場合、アドミニストレータ機能部52は、例えば、情報処理ユニット11A(通信経路指示装置が配置されたネットワーク)とは異なる情報処理ユニット11B(異なるネットワーク内に配置された他の通信経路指示手段)を決定し、決定した情報処理ユニット11Bに通信経路指示処理を行うよう指示する(例えば図19(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の代わりに、図18の複製記憶装置212のDNSデータベース221に対して、通信先情報を出力し、通信先アドレスを取得する。なお、例えば端末装置13xが、端末装置13aが配置されたネットワーク12とは異なる通信網に配置されている場合に、ステートフルプロキシ機能部53Aは、DNS機能部54Aの代わりに、複製記憶装置212のDNSデータベース221に対して、通信先情報を出力し、通信先アドレスを取得することができる。
また、同様に、情報処理ユニット11Bがネットワーク解決処理を行う場合、ポリシサーバ機能部56Bとフローテーブルサーバ機能部57Bとのそれぞれには、転送設定情報(例えばユーザID)に対応するポリシ情報とフローエントリとが記憶されていない場合がある。このように、オープンフローコントローラ機能部55Bが、フローエントリを参照することができず、ポリシ情報を取得できない場合には、ポリシサーバ機能部56Bとフローテーブルサーバ機能部57Bとの代わりに、図18の複製記憶装置212のポリシデータベース222とフローテーブルデータベース223とのそれぞれにアクセスして、フローエントリを取得するための情報を取得する。
なお、例えば端末装置13xが、端末装置13aが配置されたネットワーク12とは異なる通信網に配置されている場合に、オープンフローコントローラ機能部55Aは、ポリシサーバ機能部56Aとフローテーブルサーバ機能部57Aとの代わりに、複製記憶装置212のポリシデータベース222とフローテーブルデータベース223とのそれぞれにアクセスして、フローエントリを取得するための情報を取得することができる。
さらに、通信サービス管理機能部58Bの通信サービスDB113と料金管理DB114とに転送設定情報に対応する通信サービス情報と、課金情報とのそれぞれが記憶されていない場合がある。このような場合に、通信サービス管理機能部58Bは、例えば図18の複製記憶装置212の通信サービスデータベース224にアクセスして、通信サービス解決処理を実行する。また、通信サービス管理機能部58Bは、図18の複製記憶装置212の料金管理データベース225にアクセスして、課金処理を実行する。
このように、情報処理ユニット11Aが平常に動作している場合は、情報処理ユニット11Aが複数の端末装置13との間で所定の通信経路指示処理を実行する(例えば図19の(1))。一方、所定のタイミングにて情報処理ユニット11Aは、他の情報処理ユニット11Bに通信経路指示処理を指示し(例えば図19の(2))、通信経路指示処理を行う情報処理ユニット11を切り替える。そして、他の情報処理ユニットが、複数の端末装置13との間で所定の通信経路指示処理を実行する(例えば図19の(3))。従って、例えばオープンフローコントローラ機能部55等の負荷が過大になった場合、又は、オープンフローコントローラ機能部55等に障害が発生した場合でも、端末装置13間の通信を行うことができる。
なお、通信経路指示部(例えばオープンフローコントローラ機能部55とポリシサーバ機能部56とフローテーブルサーバ機能部57と通信サービス管理機能部58)は、通信経路指示処理のうちの少なくとも一部の処理をそれぞれ行う複数の情報処理装置21から構成されていてもよい。そして、アドミニストレータ機能部52は、通信経路指示部が一部の処理(機能)を利用できない場合に、他の通信経路指示部に、通信経路指示処理のうち利用できなくなった少なくとも一部の処理を代わりに行うように指示する。
例えば、アドミニストレータ機能部52は、情報処理ユニット11Aのオープンフローコントローラ機能部55Aに輻輳や障害が発生し、利用できない場合に、情報処理ユニット11Bのオープンフローコントローラ機能部55Bに対して、オープンフローコントローラ機能部55Aの代わりに通信経路指示処理のうちの少なくとも一部の処理を行うように指示する。また例えば、アドミニストレータ機能部52は、情報処理ユニット11Aのオープンフローコントローラ機能部55Aを構成する複数の情報処理装置21のうちの一つに障害等が発生し、利用できない場合に、当該情報処理装置21と同様の機能を有する情報処理ユニット11Bのオープンフローコントローラ機能部55Bを構成する情報処理装置21に対して、通信経路指示処理のうちの少なくとも一部の処理を行うように指示する。
さらに、例えば、アドミニストレータ機能部52は、情報処理ユニット11Aのポリシサーバ機能部56に輻輳や障害が発生し、利用できない場合に、ポリシサーバ機能部56に記憶されたポリシ情報の複製を記憶する複製記憶装置212のポリシデータベース222にアクセスして、ポリシサーバ機能部56の代わりに通信経路指示処理のうちの少なくとも一部の処理を行うように指示する。
これにより、アドミニストレータ機能部52は、通信経路指示装置のうちの一部の処理が利用できない場合(所定のタイミング)に、利用できなくなった機能を行うことができる、上記通信経路指示装置とは異なる他の通信経路指示装置に、通信経路指示処理のうちの少なくとも一部の処理を行うように指示するので、通信経路指示装置の一部に輻輳や障害等が発生しても、確実に複数の端末装置13間の通信を行うことができる。
なお、通信システム201は、通信システム201の外部状況に応じて(所定のタイミングにて)、通信経路指示処理を他の情報処理ユニット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間の通信を行うことができる。
このように、オープンフローコントローラ機能部55等の利用が困難な場合でも、他のオープンフローコントローラ機能部55等が代わりにフローエントリを生成し、オープンフロースイッチ31へ送信することができる。この結果、例えば端末装置13間の通信を確実に行うことができる。
<第3実施形態>
次に、本発明の第3実施形態に係る通信システムについて図20を参照して説明する。
第3実施形態に係る通信システム301は、
所定のネットワーク311内に配置されたネットワーク機器312に対して、所定の通信サービスを実現する通信経路を構築するよう指示する通信経路指示部313(通信経路指示手段)と、
通信経路指示部313からの指示に応じて、通信経路を構築して所定の送受信データを処理するネットワーク機器312と、
通信サービスの提供を受ける端末装置から、通信サービスの内容を表す通信サービス内容情報を取得する通信サービス情報取得部314(通信サービス情報取得手段)と、
を備え、
通信経路指示部313は、通信サービス情報取得部314にて取得した通信サービス内容情報に基づく通信サービスを実現する通信経路を構築するよう指示する。
上記構成によれば、所定の通信サービスの提供を受ける端末装置が当該通信サービスの内容を設定する場合(例えばスループットを500Mbpsに設定する場合)に、通信サービス情報取得部314が通信サービス内容情報を端末装置から取得し、通信経路指示部313が取得した通信サービス内容情報に基づく通信サービスを実現する通信経路を構築するように指示する。これにより、ユーザが通信サービスの内容を設定する場合に、通信サービス内容情報を入力するだけで、迅速かつ容易に、ユーザが利用を所望する通信サービスを設定することができる。この結果、ユーザの利便性を向上することができる。
以上、上記実施形態を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成及び詳細に、本願発明の範囲内において当業者が理解し得る様々な変更をすることができる。
<付記>
上記実施形態の一部又は全部は、以下の付記のように記載され得るが、以下には限られない。
(付記1)
所定のネットワーク内に配置されたネットワーク機器に対して、所定の通信サービスを実現する通信経路を構築するよう指示する通信経路指示手段と、
前記通信経路指示手段からの指示に応じて、前記通信経路を構築して所定の送受信データを処理するネットワーク機器と、
前記通信サービスの提供を受ける端末装置から、前記通信サービスの内容を表す通信サービス内容情報を取得する通信サービス情報取得手段と、
を備え、
前記通信経路指示手段は、前記通信サービス情報取得手段にて取得した前記通信サービス内容情報に基づく通信サービスを実現する通信経路を構築するよう指示する、
通信システム。
上記構成によれば、所定の通信サービスの提供を受ける端末装置が当該通信サービスの内容を設定する場合(例えばスループットを500Mbpsに設定する場合)に、通信サービス情報取得手段は、通信サービス内容情報を端末装置から取得し、通信経路指示手段は、取得した通信サービス内容情報に基づく通信サービスを実現する通信経路を構築するように指示する。これにより、ユーザが通信サービスの内容を設定する場合に、通信サービス内容情報を入力するだけで、迅速かつ容易に、ユーザが利用を所望する通信サービスを設定することができる。この結果、ユーザの利便性を向上することができる。
(付記2)
付記1に記載の通信システムであって、
前記通信サービス情報取得手段は、前記通信サービス内容情報として、予め設定された通信性能を特定するための情報を取得する、
通信システム。
上記構成によれば、通信サービス情報として、例えば通信経路の通信性能を向上させるための情報を取得し、取得した通信サービス情報に基づく通信サービスを提供する通信経路を構築するよう指示するので、ユーザの多様なニーズに対応した通信サービスを提供することができる。
(付記3)
付記1または2に記載の通信システムであって、
前記通信サービス情報取得手段は、前記通信サービス内容情報として、予め設定された通信性能の度合いを特定するための情報を取得する、
通信システム。
上記構成によれば、通信性能の度合いをユーザが設定し、設定された通信性能を実現するように通信経路を設定する。この結果、ユーザが利用を所望する通信サービスを簡単かつ詳細に設定することができ、ユーザの利便性を向上することができる。
(付記4)
付記1乃至3のいずれかに記載の通信システムであって、
前記通信サービス情報取得手段は、前記通信サービス内容情報として、前記通信サービスに付加する通信機能を特定するための情報を取得する、
通信システム。
上記構成により、複数種類の通信機能のうち、通信サービスに追加する通信機能をユーザが選択し、選択された通信機能を実現するように通信経路を設定するので、ユーザが利用を所望する通信機能を簡単に設定することができ、ユーザの利便性を向上することができる。
(付記5)
付記1乃至4のいずれかに記載の通信システムであって、
前記通信サービス情報取得手段にて取得した前記通信サービス内容情報に応じて課金する料金を決定する課金手段、
を備える通信システム。
上記構成によれば、ユーザにより設定された通信サービス情報に応じた料金を決定するので、例えば、所定の通信サービス情報を利用するとき以外は、通信性能を低くしたり、通信機能を外したりすることができる。この結果、ユーザの多様なニーズに対応可能な課金システムを構築することができる。
(付記6)
付記5に記載の通信システムであって、
前記課金手段は、前記通信サービス内容情報に含まれる前記通信サービスの通信性能の度合いに応じて課金する料金を決定する、
通信システム。
上記構成によれば、通信性能の度合いに応じた通信サービスの利用料金を決定するので、ユーザが利用を所望する通信性能を有する通信サービスを提供することができるとともに、当該通信サービスに対応する適切な利用料金を決定することができる。
(付記7)
付記1乃至6のいずれかに記載の通信システムであって、
前記通信サービス情報取得手段は、前記通信サービス内容情報として、前記通信経路にて送受信する画像データおよび/または音声データの品質情報と、前記通信経路のスループット情報と、前記通信サービスを利用可能な範囲情報と、前記通信サービスのセキュリティ性能情報と、のうちの少なくとも一つを取得する、
通信システム。
上記構成によれば、通信サービス内容情報として、画像・音声データの品質や、通信経路のスループット、通信サービスの利用可能範囲等の様々な通信性能の情報を詳細に設定することができるので、ユーザが最適な通信サービスの内容を選択することができ、ユーザの利便性を向上させることができる。
(付記8)
所定のネットワーク内に配置されたネットワーク機器に対して、所定の通信サービスを実現する通信経路を構築するよう指示する通信経路指示手段と、
前記通信サービスの提供を受ける端末装置から、前記通信サービスの内容を表す通信サービス内容情報を取得する通信サービス情報取得手段と、
を備え、
前記通信経路指示手段は、前記通信サービス情報取得手段にて取得した前記通信サービス内容情報に基づく通信サービスを実現する通信経路を構築するよう指示する、
通信制御装置。
(付記9)
通信サービスの提供を受ける端末装置から、前記通信サービスの内容を表す通信サービス内容情報を取得し、
所定のネットワーク内に配置されたネットワーク機器に対して、取得した前記通信サービス内容情報に基づく通信サービスを実現する通信経路を構築するよう指示する、
情報処理方法。
(付記10)
通信制御装置に、
所定のネットワーク内に配置されたネットワーク機器に対して、所定の通信サービスを実現する通信経路を構築するよう指示する通信経路指示手段と、
前記通信サービスの提供を受ける端末装置から、前記通信サービスの内容を表す通信サービス内容情報を取得する通信サービス情報取得手段と、
を実現させるとともに、
前記通信経路指示手段は、前記通信サービス情報取得手段にて取得した前記通信サービス内容情報に基づく通信サービスを実現する通信経路を構築するよう指示する、
ことを実現させるためのプログラム。