以下に、本願の開示するルータ装置、通信経路選択方法および通信経路選択プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
[全体構成例]
図1は、実施例1に係るシステムの全体構成例を示す図である。図1に示すように、このシステムは、位置管理サーバ10、アドレス解決サーバ20、端末30、GW(GateWay)装置40、端末50、GW装置60、VPNサーバ70、SIPサーバ80を有する。
位置管理サーバ10は、GW装置40およびGW装置60の位置情報を管理するサーバであり、インターネットなどの物理網に接続される。アドレス解決サーバ20は、各端末から送信されるグローバルIP(Internet Protocol)アドレス解決要求に対して、GW装置のグローバルIPアドレスを応答するサーバであり、インターネットなどの物理網に接続される。
端末30およびGW装置40は、ネットワーク1内に存在し、端末50およびGW装置60はネットワーク2内に存在する。VPNサーバ70およびSIPサーバ80は、ネットワーク3内に存在する。ネットワーク1やネットワーク2は、例えば、社外ネットワークまたは社内ネットワークであり、ネットワーク3は、社内ネットワークである。
つまり、端末30および端末50は、VPNサーバ70等と同じ社内ネットワーク内に存在する場合もあれば、社外ネットワークに存在する場合もある。また、いずれかの端末だけが、社内ネットワークに存在する場合もある。
端末30および端末50は、VoIPアプリケーション(以下、単に「VoIPアプリ」と記載する場合がある)を実行して、発呼処理や着呼処理を実行して、音声通信を実行する端末であり、例えば携帯電話、スマートフォンなどの移動端末である。これらの端末は、GW装置を介して物理網やVPNに接続し、各サーバと通信を実行する。例えば、各端末は、テザリング等を用いてGW装置に接続する。なお、本実施例では、端末30が発呼端末、端末50が着呼端末として説明する。
GW装置40は、ルータ機能を有し、端末30と各種装置との通信を中継する装置であり、例えばモバイルルータなどである。例えば、GW装置40は、物理網を用いて、端末30と位置管理サーバ10やアドレス解決サーバ20との通信を中継する。GW装置40は、VPNサーバ70が確立するVPN6を介して、SIPサーバ80と接続する。また、GW装置40は、物理網やVPN6を介してGW装置60と接続し、端末30と端末50との音声通信を中継する。
GW装置60は、ルータ機能を有し、端末50と各種装置との通信を中継する装置であり、例えばモバイルルータなどである。例えば、GW装置60は、物理網を用いて、端末50と位置管理サーバ10やアドレス解決サーバ20との通信を中継する。GW装置60は、VPNサーバ70が確立するVPN6を介して、SIPサーバ80と接続する。また、GW装置60は、物理網やVPN6を介してGW装置40と接続し、端末30と端末50との音声通信を中継する。
VPNサーバ70は、各GW装置との間でVPN6を確立し、VPN6を用いてGW装置とネットワーク3とを接続するサーバである。SIPサーバ80は、VPNサーバ70を介して各GW装置と接続される。また、SIPサーバ80は、VPNサーバ70を経由する経路を用いて、端末間でIPアドレスを交換させる。
また、各GW装置は、NAT(Network Address Translation)機能を有し、各端末が実行するVoIPアプリは、NAT機能を用いて音声通信を実行する。ここで、図2を用いて、NAT変換による音声通信の一例を説明する。図2は、実施例1に係るNAT変換による音声通信の一例を説明する図である。
図2に示すように、プライベートネットワークに接続した端末30のVoIPアプリは、端末30に割当てられているIPアドレスがプライベートIPアドレス「x.x.x.x」なので、GW装置40の外部とリアルタイム通信を実行することができない。これを解決するために、GW装置40は、NAT機能を有し、端末30のプライベートIPアドレス「x.x.x.x」とGW装置40のグローバルIPアドレス「y.y.y.y」とを変換して通信を実行する。
また、VoIPアプリには、GW装置40のグローバルIPアドレスを知る仕組みとして、STUN(Simple Traversal of UDP through NATs)やTURN(Traversal Using Relay NAT)が備わっている。このため、VoIPには、発着呼の際に、アドレス解決サーバ20にアクセスし、GW装置40のグローバルIPアドレス「y.y.y.y」を取得する。
そして、端末30のVoIPアプリは、GW装置40のグローバルIPアドレス「y.y.y.y」を自アドレスとして、端末50のVoIPアプリに発呼要求を送信する。この結果、端末50のVoIPアプリが、IPアドレス「y.y.y.y」に対して応答することができるので、端末30と端末50とが通信することができる。
このような状態において、端末30に接続されるGW装置40は、端末30が接続されるネットワークの種別と、端末30の接続先となる端末50が接続されるネットワークの種別とに基づいて、通信網を選択する。そして、GW装置40は、選択された通信網を使用して、端末30と端末50との通信を実行する。
例えば、GW装置40は、端末30が接続されるネットワークが社内ネットワークか社外ネットワークか、端末50が接続されるネットワークが社内ネットワークか社外ネットワークかによって、通信に使用する通信網を選択する。
[各装置の構成]
次に、図1に示した各装置の機能構成を説明する。なお、アドレス解決サーバ20は、STUNやTURNなどに準拠したサーバと同様の構成を有し、VPNサーバ70は、一般的なVPNサーバと同様の機能を有し、SIPサーバ80は、一般的なSIPサーバと同様の機能を有する。また、各端末についても一般的なスマートフォン等と同様の機能を有する。したがって、これらのサーバや端末についての詳細な説明は省略する。ここでは、位置管理サーバ10と各GW装置について説明する。
(位置管理サーバの機能構成)
図3は、実施例1に係る位置管理サーバの機能構成を示す機能ブロック図である。図3に示すように、位置管理サーバ10は、通信処理部11、記憶部12、制御部13を有する。
通信処理部11は、他の装置の通信を制御する処理部であり、例えばネットワークインタフェースカードなどである。例えば、通信処理部11は、各GW装置からGW装置のIPアドレスを受信して、各GW装置の位置情報を管理する。また、通信処理部11は、各端末から配備済みのアプリの情報を受信し、通信先を特定するアプリの監視定義等を送信する。
記憶部12は、メモリやハードディスクなどの記憶装置であり、位置管理DB(DataBase)12aを有する。また、記憶部12は、制御部13が実行するプログラム、各種データ等を記憶する。
位置管理DB12aは、各端末や各GW装置の位置情報を記憶するデータベースである。図4は、位置管理DBに記憶される情報の例を示す図である。図4に示すように、位置管理DB12aは、「端末装置、GW、位置」を対応付けて記憶する。ここで記憶される「端末装置」は、端末を特定する情報であり、例えば識別子や端末名などが設定される。「GW」は、各端末が使用する各GW装置を特定する情報であり、例えば識別子やGW名などが設定される。「位置」は、GW装置の位置を特定する情報である。
図4の場合、端末30は、社内に位置するGW装置40を経由して通信を実行することを示し、端末50は、社外に位置するGW装置60を経由して通信を実行することを示している。
制御部13は、位置管理サーバ10の全体的な制御を司る処理部であり、位置管理部14、位置判定部15、位置応答部16を有する。例えば、制御部13は、プロセッサなどの電子回路であり、各処理部は、プロセッサが有する電子回路やプロセッサが実行するプロセスなどに該当する。また、ここで示した処理部は、一例であり、これに限定されるものではなく、制御部13は、他の処理部を有していてもよい。
位置管理部14は、各端末や各GW装置の位置情報を管理する処理部である。具体的には、位置管理部14は、各GW装置から位置情報を受信し、受信した位置情報がグローバルIPアドレスかプライベートIPアドレスかを判定する。そして、位置管理部14は、判定した情報で位置管理DB12aを更新する。
位置判定部15は、発呼端末が接続されるGW装置からの要求に応じて、着呼端末の位置を判定する処理部である。具体的には、位置判定部15は、端末30が接続されるGW装置40から、端末50の位置情報が要求された場合に、位置管理DB12aを参照し、当該端末50に対応付けられるGW装置60の位置「社外」を特定する。そして、位置判定部15は、着呼端末である端末50の位置を「社外」と判定し、その結果を位置応答部16に通知する。
位置応答部16は、位置判定部15による判定結果を問い合わせ元に応答する処理部である。上記した例で説明すると、位置応答部16は、端末50の位置が「社外」であることを、問い合わせ元のGW装置40に送信する。
(GW装置の機能構成)
GW装置40とGW装置60とは同様の構成を有するので、ここではGW装置40について説明する。図5は、実施例1に係るGW装置の機能構成を示す機能ブロック図である。図5に示すように、GW装置40は、通信処理部41、記憶部42、制御部43を有する。
通信処理部41は、他の装置との通信を制御する処理部であり、例えばネットワークインタフェースカードなどである。この通信処理部41は、物理網と接続する物理インタフェースと、VPN6と接続するVPNインタフェースとを有する。
例えば、通信処理部41は、物理インタフェースを介して、位置管理サーバ10、アドレス解決サーバ20、GW装置60と接続される。また、通信処理部41は、VPNインタフェースを介して、VPNサーバ70、SIPサーバ80と接続される。
記憶部42は、メモリやハードディスクなどの記憶装置であり、判定基準DB42a、ルーティングDB42bを有する。また、記憶部42は、制御部43が実行するプログラム、各種データ等を記憶する。
判定基準DB42aは、端末30に応答するIPアドレスを決定する判定基準を記憶する。図6は、判定基準DBに記憶される情報の例を示す図である。図6に示すように、判定基準DB42aは、発呼元が接続されるGW装置の位置と着呼先のGW装置の位置との組み合わせによって、発呼元である端末30に応答するIPアドレスを定義する。なお、社内、社外の情報は、端末が利用するGW装置の位置を示す。
つまり、GW装置40の位置が社内かつGW装置60の位置が社内の場合、端末30には物理インタフェースのIPアドレスが応答されるので、双方がVPNを経由せず社内網で音声通話が実行される。
また、GW装置40の位置が社内かつGW装置60の位置が社外の場合、端末30には物理インタフェースのIPアドレスが応答されるので、端末30が物理網経由で端末50がVPN6経由で音声通話が実行される。
また、GW装置40の位置が社外かつGW装置60の位置が社内の場合、端末30にはVPNインタフェースのIPアドレスが応答されるので、端末30がVPN6経由で端末50が物理網経由で音声通話が実行される。
また、GW装置40の位置が社外かつGW装置60の位置が社外の場合、端末30にはNAT用インタフェースのIPアドレスが応答されるので、双方がVPN6を使用せずにGW装置を介した物理網を経由する。つまり、NAT越えの音声通話が実行される。
ルーティングDB42bは、GW装置40が端末間通信を実現するためのルーティング情報を記憶する。図7は、ルーティングDBに記憶される情報の例を示す図である。図7に示すように、ルーティングDB42bは、「IPアドレス、通信網」を対応付けて記憶する。
ここで記憶される「IPアドレス」は、送信先のIPアドレスである。「通信網」は、使用する選択網である。図7の場合、送信先アドレスがプライベートIPアドレス(PIP)の場合には、VPN6で送信することを示し、送信先アドレスがグローバルIPアドレス(GIP)の場合には、物理網で送信することを示す。
制御部43は、GW装置40の全体的な制御を司る処理部であり、取得部44、問合せ部45、特定部46、応答部47、ルーティング制御部48、アドレス更新部49を有する。例えば、制御部43は、プロセッサなどの電子回路であり、各処理部は、プロセッサが有する電子回路やプロセッサが実行するプロセスなどに該当する。また、ここで示した処理部は、一例であり、これに限定されるものではなく、制御部43は、他の処理部を有していてもよい。
取得部44は、端末30がアドレス解決サーバ20に送信したパケットを取得する処理部である。具体的には、取得部44は、端末30のVoIPアプリがアドレス解決サーバ20に対して送信した、NAT超えのためのグローバルIPアドレスの取得リクエストをフックする。そして、取得部44は、当該取得リクエストを取得したことを問合せ部45に出力する。
問合せ部45は、位置管理サーバ10に対して、自装置であるGW装置40と通信先であるGW装置60の位置情報を問い合わせる処理部である。具体的には、問合せ部45は、取得部44からグローバルIPアドレスの取得リクエストが取得されたことが通知されると、着呼端末50が利用するGW装置60の位置情報を位置管理サーバ10に問い合わせる。
この際、問合せ部45は、発呼端末30に対して、着呼端末がどの端末であるかを問合せ、その結果を用いて位置管理サーバ10への問合せを実行する。なお、発呼端末30は、各アプリの挙動を監視し、発呼を行う際に使用されたアプリを検出すると、当該アプリに対して予め指定された位置から着呼端末50を特定する。なお、詳細な処理については後述する。
特定部46は、問合せ部45が送信した問合せに対する問合せ結果を位置管理サーバ10から受信し、受信した問合せ結果に基づいて端末30に応答するIPアドレス特定する処理部である。
具体的には、特定部46は、通信先のGW装置60が社内か社外かのいずれに位置するかを位置管理サーバ10から受信する。また、特定部46は、発呼端末30が使用する自GW装置40が社内か社外のいずれに位置するかを、GW装置40に設定されているIPアドレスの体系等から特定する。
その後、特定部46は、図6に示した判定基準を参照し、発呼端末30に対して応答するIPアドレスを特定する。このとき、具体的なIPアドレスについては、システムの取り決め等にしたがって任意に設定したり、どのようなIPアドレスを使用するかを予めGW装置40に設定しておくことができる。
例えば、特定部46は、VPNアドレスであればプライベートIPアドレスとして「x.x.x.x」を使用すると予め設定することができる。また、特定部46は、物理インタフェースのIPアドレスであればグローバルIPアドレスとして「y.y.y.y」、NAT用アドレスであればグローバルIPアドレスとして「z.z.z.z」を使用すると予め設定することができる。
応答部47は、特定部46が特定したIPアドレスを発呼端末30に応答する処理部である。具体的には、応答部47は、発呼端末30が送信したグローバルIPアドレスの取得リクエストに対する応答として、特定部46が特定したIPアドレスを応答する。なお、端末30は、ここで応答されたIPアドレスを使用してSIPサーバ80に対して通信し、着呼端末50とIPアドレスを交換して、当該IPアドレスを用いて音声通信を実行する。
ルーティング制御部48は、ルーティングDB42に格納されるルーティング情報にしたがって通信網を選択してパケットを送信する処理部である。具体的には、ルーティング制御部48は、発呼端末30からパケットを受信すると、当該パケットから宛先のIPアドレスを抽出する。そして、ルーティング制御部48は、ルーティングDB42bを参照し、抽出したIPアドレスに対応する通信網を用いて当該パケットを送信する。
例えば図7の場合、ルーティング制御部48は、送信先のIPアドレスがプライベートIPアドレスである場合には、VPN6が接続されるインタフェースを用いて、パケットを送信する。また、ルーティング制御部48は、送信先のIPアドレスがグローバルIPアドレスである場合には、物理網が接続されるインタフェースを用いて、パケットを送信する。なお、ルーティング制御部48は、NAT変換機能を有し、NAT変換を行ってパケットを送受信することもできる。
アドレス更新部49は、GW装置40のIPアドレスが更新された場合に、ルーティングDB42bの更新や位置管理サーバ10へのIPアドレス通知を実行する処理部である。具体的には、アドレス更新部49は、管理者等によってIPアドレスの更新を受け付けると、該当するインタフェースに対するIPアドレスの設定を変更する。そして、アドレス更新部49は、更新したIPアドレスを位置管理サーバ10に送信する。
また、アドレス更新部49は、更新されたIPアドレスがプライベートIPアドレスである場合には、すべての送信先アドレスに対して物理網を利用するように、ルーティングDB42bを更新する。また、アドレス更新部49は、更新されたIPアドレスがグローバルIPアドレスである場合には、プライベートIPアドレスについてはVPN6を利用し、グローバルIPアドレスについては物理網を利用するように、ルーティングDB42bを更新する。
[処理の流れ]
次に、図1に示したシステムで実行される処理について説明する。ここでは、発着呼処理、GW装置のIPアドレス更新処理、位置管理サーバのIPアドレス更新処理について説明する。
(発着呼処理)
図8は、実施例1に係るシステムが実行する発着呼処理の流れを示すフローチャートである。図8に示すように、発呼端末30のVoIPアプリまたは着呼端末50のVoIPが、発呼または着呼を開始し、データ通信に使用するIPアドレスの取得リクエストを各GW装置に送信する(S101)。
そして、各GW装置は、自端末すなわち自GW装置が社内にある場合(S102:Yes)、要求元の端末に対して物理インタフェースのIPアドレスを返却する(S103)。つまり、GW装置は、物理網で使用するIPアドレスを端末に応答する。
その後、各端末のVoIPアプリは、GW装置から返却されたIPアドレスを使用してSIPサーバ80に音声通信に関するパケットを送信する(S104)。具体的には、各端末のVoIPアプリは、INVITEリクエストやOKレスポンスをSIPサーバ80に送信し、通信相手とIPアドレスを交換する。
一方、各GW装置は、自端末すなわち自GW装置が社外にある場合(S102:No)、リクエストから送信元の端末を特定して、当該端末に通信相手を問い合わせる(S105)。
この問合せを受けた端末は、アプリの挙動から通信相手を特定する(S106)。例えば、端末は、バルーンに表示される相手を画面表示等から取得して特定する。また、端末は、特定した通信相手の情報として例えばIPアドレスや端末名などを、GW装置に応答する。
各GW装置は、端末から受信した通信相手の位置を位置管理サーバ10に問い合わせる(S107)。そして、各GW装置は、位置管理サーバ10から受信した応答によって、相手端末が社内であると判定された場合には(S108:Yes)、VPN6のIPアドレスを端末に返却する(S109)。
一方、各GW装置は、位置管理サーバ10から受信した応答によって、相手端末が社外であると判定された場合には(S108:No)、グローバルIPアドレスをアドレス解決サーバ20から取得して、それを端末に返却する(S110)。すなわち、各GW装置は、NAT用のIPアドレスを応答する。
なお、S109およびS110の後は、S104の処理が実行される。また、図8の処理以降は、各端末のVoIPアプリは、返却されたIPアドレスを用いてパケットを送信し、GW装置は、ルーティングDB42bに格納されるルーティング情報にしたがって通信網を選択してパケットを送信する。
(GW装置のIPアドレス更新処理)
図9は、実施例1に係るGW装置のIPアドレス更新処理の流れを示すフローチャートである。ここではGW装置40を例にして説明する。
図9に示すように、GW装置40のアドレス更新部49は、IPアドレスの変更通知を受信すると(S201:Yes)、当該GW装置のIDと更新後のIPアドレスとを位置管理サーバ10に送信する(S202)。
続いて、アドレス更新部49は、更新後のIPアドレスがプライベートIPアドレスである場合(S203:Yes)、すべての送信先のIPアドレスが物理網にルーティングされるように、ルーティングDB42bを更新する(S204)。
一方、アドレス更新部49は、更新後のIPアドレスがグローバルIPアドレスである場合(S203:No)、S205を実行する。具体的には、アドレス更新部49は、送信先のIPアドレスがプライベートIPアドレスである場合には、VPN6にルーティングするように、ルーティングDB42bを更新する。また、アドレス更新部49は、送信先のIPアドレスがグローバルIPアドレスである場合には、物理網にルーティングするように、ルーティングDB42bを更新する。なお、S204およびS205の後は、S201に戻って同様の処理が実行される。
(位置管理サーバのIPアドレス更新処理)
図10は、実施例1に係る位置管理サーバのIPアドレス更新処理の流れを示すフローチャートである。この処理は、GW装置のIPアドレスが変更された場合に、位置管理サーバが実行する処理である。
図10に示すように、位置管理サーバ10の位置管理部14は、GW装置からIDとIPアドレスとを受信すると(S301:Yes)、位置管理DB12aに該当するGWのエントリがあるかを判定する(S302)。そして、位置管理部14は、該当するエントリがない場合(S302:No)、処理を終了する。
そして、位置管理部14は、該当するエントリがある場合(S302:Yes)、受信したGW装置の更新後IPアドレスがプライベートIPアドレスか否かを判定する(S303)。
ここで、位置管理部14は、GW装置の更新後IPアドレスがプライベートIPアドレスであると判定した場合(S303:Yes)、位置管理DB12aにおいて当該GW装置の位置を社内に変更する(S304)。
一方、位置管理部14は、GW装置の更新後IPアドレスがプライベートIPアドレスではないと判定した場合(S303:No)、位置管理DB12aにおいて当該GW装置の位置を社外に変更する(S305)。つまり、位置管理部14は、GW装置の更新後IPアドレスがグローバルIPアドレスである場合には、S305を実行する。
[効果]
このように、端末が社内または社外にいるかによって、VoIPアプリが交換するIPアドレスを切り替えることができる。また、GW装置が、VoIPアプリからのNAT超えのIPアドレス取得要求をフックして、IPアドレスを返却することができるので、VoIPアプリ自体に改良を加えることなく、実現することができる。また、アプリ自身が、自端末および通信相手の端末が社内または社外どちらにいるかを意識せずに、通信可能なIPアドレスを認識することができる。
したがって、GW装置を利用して端末間通信を行う際に、端末のアプリが社内または社外どちらにいても意識せずに、適切なネットワークの使い分けができる。VoIPアプリのNAT機能をONにしておくだけでよく、ユーザの使い勝手が向上し、汎用性も高い。
次に、端末がアプリを監視して通信先を特定する処理について具体的に説明する。図11は、実施例2に係る位置管理サーバが有するアプリの監視情報の例を示す図である。図11に示すように、位置管理サーバ10は、「アプリ名、プロトコル、通信相手の抽出方法」を対応付けて記憶する。
ここで「アプリ名」は、監視対象のアプリを特定する情報である。「プロトコル」は、アプリがNAT越えのためにグローバルIPアドレスを取得するためのプロトコルであり、監視対象のプロトコルを示す情報である。「通信相手の抽出方法」は、通信相手の抽出方法を指定する情報である。
図11の例では、アプリAがSTUNを利用した場合、当該通信において出力された発呼画面の「%%を呼び出し中です」から通信先を特定することが定義されている。また、アプリAがSTUNを利用した場合、当該通信において出力された着呼画面の「%%から着信中です」から通信先を特定することが定義されている。
位置管理サーバ10は、管理者等から定義された図11の情報を各端末に配信する。そうすることで、各端末は、VoIP等のアプリを監視し、GW装置からの要求に応じて通信先と特定して応答することができる。
図12は、実施例2に係る端末のGW接続時の初期化の流れを示すシーケンス図である。ここでは、端末30とGW装置40とを例にして説明する。図12に示すように、端末30は、配備済みのアプリ名を取得してGW装置40に送信する(S401とS402)。つまり、端末30は、インストール済みのアプリ名をGW装置に通知する。
GW装置40は、受信したアプリ名を位置管理サーバ10に送信する(S403とS404)。位置管理サーバ10は、図11に示した情報を用いて、アプリのプロトコルと通信相手の抽出方法を取得し、GW装置40に返却する(S405とS406)。
GW装置40は、アプリが使用するプロトコルのうち、まだ有効化されていないインタフェース(IF)があるかチェックする(S407)。そして、GW装置40は、有効化されていないIFがある場合(S408:Yes)、該当IFを有効化する(S409)。なお、GW装置40は、有効化されていないIFがない場合(S408:No)、S410が実行される。
その後、GW装置40は、各アプリの通信相手の抽出方法を端末30に返却する(S410とS411)。そして、端末30は、各アプリの通信相手の抽出方法を設定し、アプリの監視を開始する(S412)。
このように、各GW装置は、アプリが使用するIFを適切に有効化することができ、各端末は、アプリを監視して通信先を特定することができる。また、アプリが使用するプロトコルを限定しないため、VoIPアプリに限らず、他の端末間通信サービスにも適用することができる。したがって、様々なリアルタイム通信系のアプリごとの通信相手の抽出方法を使い分けることができる。
実施例1では、位置管理サーバがGW装置の位置情報を管理して、通信相手が社内または社外にいるかを特定する例を説明した。実施例3では、通信先のGW装置がグローバルIPアドレスを使用しているか否かによって、通信相手が社内または社外にいるかを特定する例を説明する。
[全体構成例]
図13は、実施例3に係るシステムの全体構成例を示す図である。図13に示すように、このシステムは、IP管理サーバ100、アドレス解決サーバ20、端末30、GW装置400、端末50、GW装置600、VPNサーバ70、SIPサーバ80を有する。なお、アドレス解決サーバ20、端末30、端末50、VPNサーバ70、SIPサーバ80は実施例1と同様の構成を有する。
IP管理サーバ100は、各GW装置のグローバルIPアドレスを管理するサーバであり、インターネットなどの物理網に接続される。アドレス解決サーバ20は、実施例1と同様、各端末から送信されるグローバルIPアドレス解決要求に対して、GW装置のグローバルIPアドレスを応答するサーバであり、インターネットなどの物理網に接続される。
端末30およびGW装置400は、ネットワーク1内に存在し、端末50およびGW装置600はネットワーク2内に存在する。VPNサーバ70およびSIPサーバ80は、ネットワーク3内に存在する。実施例3では、ネットワーク1は社外ネットワークであり、ネットワーク2は、社外ネットワークまたは社内ネットワークであり、ネットワーク3は、社内ネットワークである例で説明する。
つまり、端末30は、VPNサーバ70等とは異なり、社外ネットワークに存在する。端末50は、VPNサーバ70等と同じ社内ネットワーク内に存在する場合もあれば、社外ネットワークに存在する場合もある。
端末30および端末50は、実施例1と同様、NAT機能を有するVoIPアプリケーションを実行して音声通信を実行する端末で、これらの端末は、GW装置を介して物理網やVPNに接続し、各サーバと通信を実行する。例えば、各端末は、テザリング等を用いてGW装置に接続する。なお、本実施例では、端末30が発呼端末、端末50が着呼端末として説明する。
GW装置400およびGW装置600は、実施例1と同様、各端末と各種装置との通信を中継する装置であり、NAT機能を実行する。例えば、GW装置400は、物理網を用いて、端末30とIP管理サーバ100やアドレス解決サーバ20との通信を中継する。GW装置400は、VPNサーバ70が確立するVPN6を介して、SIPサーバ80と接続する。
また、GW装置600は、物理網を用いて、端末50とIP管理サーバ100やアドレス解決サーバ20との通信を中継する。GW装置600は、VPNサーバ70が確立するVPN6を介して、SIPサーバ80と接続する。また、GW装置600は、物理網やVPN6を介してGW装置400と接続し、端末30と端末50との音声通信を中継する。
VPNサーバ70は、実施例1と同様、各GW装置との間でVPN6を確立し、VPN6を用いてGW装置間を接続するサーバである。SIPサーバ80は、実施例1と同様、VPNサーバ70を介して各GW装置と接続され、VPNサーバ70を経由する経路を用いて、端末間でIPアドレスを交換させる。
このような状態において、社外に位置するGW装置400は、端末30が自GW装置400を使用して音声通信を実行する状態で、通信先の端末50がGW装置600を使用して通信を実行するか否かを判定する。そして、GW装置400は、端末50がGW装置600を使用すると判定した場合、物理網を選択し、端末50がGW装置600を使用しないと判定した場合、VPN6を選択する。
[各装置の構成]
次に、図13に示した各装置の機能構成を説明する。なお、アドレス解決サーバ20は、STUNやTURNなどに準拠したサーバと同様の構成を有し、VPNサーバ70は、一般的なVPNサーバと同様の機能を有し、SIPサーバ80は、一般的なSIPサーバと同様の機能を有する。また、各端末についても一般的なスマートフォン等と同様の機能を有する。したがって、これらのサーバや端末については詳細な説明は省略する。ここでは、IP管理サーバ100と各GW装置について説明する。
(IP管理サーバの機能構成)
図14は、実施例3に係るIP管理サーバの機能構成を示す機能ブロック図である。図14に示すように、IP管理サーバ100は、通信処理部101、記憶部102、制御部103を有する。
通信処理部101は、他の装置の通信を制御する処理部であり、例えばネットワークインタフェースカードなどである。例えば、通信処理部101は、各GW装置からグローバルIPアドレスを受信して管理する。また、通信処理部101は、各GW装置からの要求に応じて、要求されたGW装置のグローバルIPアドレスが登録されているか否かを示す情報を送信する。
記憶部102は、メモリやハードディスクなどの記憶装置であり、IP管理DB102a、GW定義DB102b、ルール定義DB102cを有する。また、記憶部102は、制御部103が実行するプログラム、各種データ等を記憶する。
IP管理DB102aは、GW装置のグローバルIPアドレスを記憶するデータベースである。図15は、IP管理DBに記憶される情報の例を示す図である。図15に示すように、IP管理DB102aは、「使用IP、収集元、期限」を対応付けて記憶する。
ここで記憶される「使用IP」は、GW装置が使用するグローバルIPアドレスを示す情報である。「収集元」は、使用IPを収集したGW装置を特定する情報である。「期限」は、使用IPの有効期限を示す情報である。
図15の場合、GW装置400には、グローバルIPアドレスとして「GIP1」が設定されており、有効期限は設定されていないことを示す。また、GW装置600には、グローバルIPアドレスとして「GIP2」が設定されており、有効期限として「1時間(1hr)」が設定されていることを示す。
GW定義DB102bは、GW装置の定義情報を記憶するデータベースである。図16は、GW定義DBに記憶される情報の例を示す図である。図16に示すように、GW定義DB102bは、GW装置のIDを管理するテーブルとGW装置のタイプを管理するテーブルとが関連付けられている。
図16に示すように、GW定義DB102bは、GW装置のIDを管理するテーブルとして「GWID、GWタイプ、収集ルールID」を対応付けて記憶する。ここで記憶される「GWID」は、GW装置に設定されたGW装置を識別する識別子である。「GWタイプ」は、GW装置のタイプを示す情報である。「収集ルールID」は、後述するグローバルIPアドレスの収集ルールを特定する情報である。
また、GW定義DB102bは、GW装置のタイプを管理するテーブルとして「GWタイプ、収集ルール配備要否、共通の収集ルールID」を対応付けて記憶する。ここで記憶される「GWタイプ」は、GW装置のタイプを示す情報であり、例えば携帯型や設置型などが設定される。携帯型としては、例えばスマートフォンなどが挙げられ、設置型としては、例えば拠点用VPNルータなどが挙げられる。「収集ルールの配備要否」は、ルール定義DB102cに記憶される収集ルールを配備するか否かを示す情報である。「共通の収集ルールID」は、GWタイプに共通に設定される収集ルールを特定する情報である。
図16の場合、GW装置400は携帯型のGWであり、収集ルールIDとして「001」が設定されている。また、GW装置400のような携帯側のGWについては、収集ルールの配備することが指定されており、共通ルールとして「001」が設定されている。これらから、IP管理サーバ100は、GW装置400に対して、後述する収集ルールIDが「001」の収集ルールを配信することがわかる。
ルール定義DB102cは、GW装置がグローバルIPアドレスを収集する際に使用する収集ルールを記憶するデータベースである。図17は、ルール定義DBに記憶される情報の例を示す図である。図17に示すように、ルール定義DB102cは、「収集ルールID、抽出方法、監視箇所、通知条件、有効期限」を対応付けて記憶する。
ここで記憶される「収集ルールID」は、収集ルールを識別する識別子である。「抽出方法」は、グローバルIPアドレスを抽出する方法を指定する情報である。「監視箇所」は、監視するインタフェースを指定する情報である。「通知条件」は、IP管理サーバ100に通知するか否かを指定する情報である。「有効期限」は、通知した情報の有効期限を示す情報である。
図17の場合、収集ルールIDが「001(STUN応答)」については、端末側のネットワークインタフェースカードの出力を監視し、STUN応答パケットからグローバルIPアドレスを抽出することを示す。また、ここで抽出されたグローバルIPアドレスの有効期限が1時間であることを示す。
制御部103は、IP管理サーバ100の全体的な制御を司る処理部であり、通知受信部104、要求受信部105、ルール配信部106を有する。例えば、制御部103は、プロセッサなどの電子回路であり、各処理部は、プロセッサが有する電子回路やプロセッサが実行するプロセスなどに該当する。また、ここで示した処理部は、一例であり、これに限定されるものではなく、制御部103は、他の処理部を有していてもよい。
通知受信部104は、各GW装置からグローバルIPアドレスの通知を受信する処理部である。具体的には、通知受信部104は、GW装置からGWIDとグローバルIPアドレスとを受信する。また、通知受信部104は、GWIDをキーにしてGW定義DB102bを検索して収集ルールIDを特定し、特定したルールIDをキーにしてルール定義DB102cを検索して有効期限を特定する。そして、通知受信部104は、「使用IP=通知されたグローバルIPアドレス、収集元=GWIDに該当するGW装置、期限=特定した期限」を対応付けて、IP管理DB102aに格納する。
要求受信部105は、各GW装置から通知先のGW装置がグローバルIPアドレスを使用しているか否かの問合せを受信する処理部である。具体的には、要求受信部105は、発呼端末30が使用するGW装置400から、通信先のGW装置600のグローバルIPアドレスの登録状況の問合せを受信する。そして、具体的には、要求受信部105は、GW装置600のグローバルIPアドレスがIP管理DB102aに登録されている場合には「登録済み」をGW装置400に応答し、登録されていない場合には「未登録」をGW装置400に応答する。
ルール配信部106は、ルール定義DB102cに記憶される収集ルールを端末に配信する処理部である。具体的には、ルール配信部106は、GW定義DB102bを参照して、「収集ルール配備要否」が「要」となっているGWタイプに該当するGW装置を特定する。続いて、ルール配信部106は、特定したGW装置に対応付けられている「ルールID」を特定し、当該「ルールID」に対応する収集ルールをルール定義DB102cから読み込む。その後、ルール配信部106は、特定したGW装置に、読み込んだ収集ルールを配信する。
例えば、ルール配信部106は、GW定義DB102bを参照して、「収集ルール配備要否」が「要」となっているGWタイプ「携帯型」のGW装置400およびGW装置600を特定する。続いて、ルール配信部106は、GW装置400に対応付けられている「ルールID=001」を特定する。また、ルール配信部106は、「ルールID=001」に対応付けられる収集ルール「STUN応答」を読み出す。そして、ルール配信部106は、GW装置400に対して、収集ルール「STUN応答」を配信する。
同様に、ルール配信部106は、GW装置600に対応付けられている「ルールID=001と002」を特定する。また、ルール配信部106は、「ルールID=001」に対応付けられる収集ルール「STUN応答」と、「ルールID=002」に対応付けられる収集ルール「TURN応答」とを読み出す。そして、ルール配信部106は、GW装置600に対して、収集ルール「STUN応答」および「TURN応答」を配信する。
このようにすることで、各GW装置では、自装置に該当する収集ルールを配備することができ、効率的にアプリ監視やグローバルIPアドレスの収集を実行することができる。
(GW装置の機能構成)
図18は、実施例3に係るGW装置の機能構成を示す機能ブロック図である。GW装置400とGW装置600とは同様の構成を有するので、ここではGW装置400について説明する。図18に示すように、GW装置400は、通信処理部401、記憶部402、制御部403を有する。
通信処理部401は、他の装置との通信を制御する処理部であり、例えばネットワークインタフェースカードなどである。この通信処理部401は、物理網と接続する物理インタフェースと、VPN6と接続するVPNインタフェースとを有する。
例えば、通信処理部401は、物理インタフェースを介して、IP管理サーバ100、アドレス解決サーバ20、GW装置600と接続される。また、通信処理部401は、VPNインタフェースを介して、VPNサーバ70、SIPサーバ80と接続される。
記憶部402は、メモリやハードディスクなどの記憶装置であり、DNS情報DB402a、ルール定義DB402b、ルーティングDB402cを有する。また、記憶部402は、制御部403が実行するプログラム、各種データ等を記憶する。
DNS情報DB402aは、ドメイン名ごとに使用する通信網を記憶するデータベースである。図19は、DNS情報DBに記憶される情報の例を示す図である。図19に示すように、DNS情報DB402aは、「ドメイン名、通信網」を対応付けて記憶する。ここで記憶される「ドメイン名」は、図示しないDNSサーバによって名前解決されたドメイン名である。「通信網」は、通信に使用する通信網の情報である。
図19の場合、ドメイン名が「DDD」であるパケットについては、物理網を使用して送信されることを示す。また、ドメイン名が「D11」であるパケットについては、VPN6を使用して送信されることを示す。
ルール定義DB402bは、グローバルIPアドレスを収集してIP管理サーバ100に送信する際の収集ルールを記憶するデータベースである。ここで記憶される情報は、IP管理サーバ100から配信された情報であり、図17と同様の情報である。
ルーティングDB402cは、ルーティング情報を記憶するデータベースである。図20は、ルーティングDBに記憶される情報の例を示す図である。図20に示すように、ルーティングDB402cは、「送信元、宛先、通信網」を対応付けて記憶する。
ここで記憶される「送信元」は、送信対象のパケットの送信元を示すIPアドレスである。「宛先」は、送信対象のパケットの送信先を示すIPアドレスである。「通信網」は、送信対象のパケットに使用する通信網を示す情報である。
図20の場合、送信元IPアドレスが「IP−A」で、宛先IPアドレスが「IP−Z」のパケットについては、物理網を使用して送信することを示す。また、送信元IPアドレスが「IP−A」で、宛先IPアドレスが「IP−Y」のパケットについては、VPN6を使用して送信することを示す。
制御部403は、GW装置400の全体的な制御を司る処理部であり、種別判定部404、DNS中継部405、検出部406、GIP取得部407、GIP登録部408を有する。例えば、制御部403は、プロセッサなどの電子回路であり、各処理部は、プロセッサが有する電子回路やプロセッサが実行するプロセスなどに該当する。また、ここで示した処理部は、一例であり、これに限定されるものではなく、制御部403は、他の処理部を有していてもよい。
種別判定部404は、端末30が送信したパケットがDNS要求か通常のパケットかを判別する処理部である。具体的には、種別判定部404は、受信パケットのヘッダ等を参照し、図示しないDNSサーバへの名前解決リクエストを示すDNS要求か、音声通信等のパケットかを判別する。
そして、種別判定部404は、受信パケットがDNS要求である場合、受信パケットをDNS中継部405に出力する。また、種別判定部404は、受信パケットがSIPの音声パケットなどである場合、受信パケットをルーティング部409に出力する。
DNS中継部405は、種別判定部404から入力されたDNS要求をDNSサーバへ送信する処理部である。具体的には、DNS中継部405は、DNS要求を図示しないDNSサーバへ送信し、DNSサーバからドメイン名を含むDNS応答を受信する。そして、DNS中継部405は、受信したDNS応答を要求元の端末30に送信する。
また、DNS中継部405は、受信したDNS応答から名前解決されたドメイン名と、名前解決が要求されたIPアドレスとを抽出する。そして、DNS中継部405は、抽出したドメイン名に対応する通信網がDNS情報DB402aに登録されているかを判定する。
ここでDNS中継部405は、抽出したドメイン名に対応する通信網がDNS情報DB402aに登録されている場合、ルーティングDB402cへの登録を実行する。具体的には、DNS中継部405は、当該DNS要求の送信元のIPアドレスと、前解決されたドメイン名と、名前解決が要求されたIPアドレスとを対応付けてDNS情報DB402aに登録する。
検出部406は、ルール定義DB402bに記憶されるルールにしたがってアプリケーション等を監視し、グローバルIPアドレスの取得要求からグローバルIPアドレスを検出する処理部である。例えば、検出部406は、VoIPアプリ等の挙動を監視し、端末30から送信された発呼要求を受信して実行されたアプリケーションを検出する。
GIP取得部407は、検出部406によってアプリの起動が検出された場合に、着呼端末のVoIPアプリがアドレス解決サーバ20に対して実行するグローバルIPアドレスの取得要求を検出する。そして、GIP取得部407は、起動されたアプリに対応するルールをルール定義DB402bから読み込む。その後、GIP取得部407は、アドレス解決サーバ20が送信した、着呼端末のグローバルIPアドレスの取得要求に対する応答から、読み込んだルールにしたがってグローバルIPアドレスを取得する。
また、GIP取得部407は、読み込んだルールにしたがって、当該グローバルIPアドレスが通知対象か否かを判定し、その結果と取得後のグローバルIPアドレスとをGIP登録部408に出力する。
GIP登録部408は、GIP取得部407によって取得されたグローバルIPアドレスをIP管理サーバ100に登録する処理部である。例えば、GIP登録部408は、GIP取得部407から、取得されたグローバルIPアドレスを受信する。さらに、GIP登録部408は、GIP取得部407から当該グローバルIPアドレスが通知対象か否かの情報を受信する。
そして、GIP登録部408は、当該グローバルIPアドレスが通知対象である場合、当該グローバルIPアドレスをIP管理サーバ100に送信する。この結果、IP管理サーバ100に、端末が使用するグローバルIPアドレスが登録される。
ルーティング部409は、音声通信の各パケットを宛先に送信する処理部である。ルーティング部409は、発呼端末から音声パケットを受信した場合、送信先のIPアドレスがルーティングDB402cに登録されているかを判定する。ここで登録されている場合には、ルーティング部409は、登録されている通信網を利用して、音声パケットを宛先に送信する。
一方、ルーティング部409は、送信先のIPアドレスがルーティングDB402cに登録されていない場合、宛先のIPアドレスが「使用IP」として登録されているかをIP管理サーバ100に問い合わせる。
ここで宛先のIPアドレスがIP管理サーバ100に登録されている場合、ルーティング部409は、宛先が社外にいると判定して、物理網を介して、音声パケットを宛先に送信する。
一方、宛先のIPアドレスがIP管理サーバ100に登録されていない場合、ルーティング部409は、宛先が社内にいると判定して、VPN6を介して、音声パケットを宛先に送信する。
また、ルーティング部409は、着呼端末から音声パケットを受信した場合、発呼端末が音声パケットを送信した通信網を利用して、音声パケットを発呼端末に応答する。
[収集ルールの説明]
次に、GW装置が使用する収集ルールについて説明する。図21は、ルール定義および情報抽出を説明する図である。図21に示すように、収集ルールは、GWごとに定義される「GWID、GWタイプ、収集ルールID」と、GWタイプごとに定義される「GWタイプ、収集ルール配備要否、共通の収集ルールID」とを組み合わせて、GWごとに配備する収集ルールを特定する。
例えは、GW装置400は、携帯型のGWであり、収集ルールとして「001」が設定されている。また、携帯型のGWは、収集ルールの配備対象である。したがって、収集ルール「001」に対応する「STUN応答」の収集ルールがGW装置400には配備されることになる。
続いて、一例として「STUN応答」の収集ルールについて説明する。STUN応答に対する収集ルールでは、抽出対象としてSTUN応答パケットが設定されている。
具体的には、「STUN応答」に対しては、ポート番号が3478でUDP(User Datagram Protocol)で送信されたSTUN応答パケットのうち、メッセージタイプが0x0101のパケットから抽出することが定義されている。また、抽出位置は、IPフィールドの「attribute−type:0x001、Mapped Response」内のIPアドレスを抽出することが定義されている。
さらに、「STUN応答」に対しては、監視箇所として端末側NICが設定されている。これは、GW装置が有するインタフェースのうち、端末と接続されるローカルインタフェースを示している。なお、プロトコル別に定義された抽出方法の例は、例えばIP管理サーバ100の記憶部102やGW装置の記憶部等に予め記憶させておくことができる。
[処理の流れ]
次に、実施例3に係るシステムが実行する処理の流れを説明する。ここでは、GW装置のIPアドレス収集処理、IP管理サーバのIPアドレス収集処理、GW装置の使用網決定処理について説明する。
(GW装置のIPアドレス収集処理)
図22は、実施例3に係るGW装置のIPアドレス収集処理の流れを示すフローチャートである。ここでは、GW装置400を例にして説明する。
図22に示すように、GW装置400の検出部406は、IP管理サーバ100から配備されてルール定義DB402bに格納される収集ルールを読み込む(S501)。続いて、検出部406は、読み込んだ収集ルールにしたがってアプリの監視を開始する(S502)。
その後、検出部406は、パケットを受信すると(S503:Yes)、収集ルールにしたがって、グローバルIPアドレスなどの情報を抽出する(S504)。
そして、検出部406は、抽出したグローバルIPアドレスが通知対象であるなどの条件を満たす場合(S505:Yes)、抽出した情報をIP管理サーバ100に送信して(S506)、S503に戻る。一方、検出部406は、抽出した情報が条件を満たさない場合には(S505:No)、破棄してS503以降を繰り返す。
(IP管理サーバのIPアドレス収集処理)
図23は、実施例3に係るIP管理サーバのIPアドレス収集処理の流れを示すフローチャートである。
図23に示すように、IP管理サーバ100の通知受信部104は、GW装置からグローバルIPアドレスを含む情報を受信すると(S601:Yes)、ルール定義DB102cを参照し、条件を満たす通知か否かを判定する(S602)。
そして、通知受信部104は、条件を満たす通知である場合(S602:Yes)、受信した情報に含まれるグローバルIPアドレスをIP管理DB102aに格納する(S603)。続いて、通知受信部104は、登録したグローバルIPアドレスに対して、ルール定義DB102cに記憶される収集ルールにしたがって有効期限を設定し(S604)、S601に戻る。
なお、通知受信部104は、有効期限が満了した情報については、IP管理DB102aから随時削除する。また、S602において、通知受信部104は、条件を満たさない通知である場合(S602:No)、受信した情報を破棄してS601以降を繰り返す。
(GW装置の使用網決定処理)
図24は、実施例3に係るGW装置の使用網決定処理の流れを示すフローチャートである。ここでは、GW装置400を例にして説明する。
図24に示すように、GW装置400の種別判定部404は、端末30からパケットを受信すると(S701:Yes)、当該パケットがDNS要求か否かを判定する(S702)。
そして、DNS中継部405は、種別判定部404によって受信パケットがDNS要求と判定された場合(S702:Yes)、DNS処理を実行する(S703)。すなわち、DNS中継部405は、受信パケットをDNSサーバへ転送し、DNSサーバから受信した応答結果に含まれるドメイン名をDNS情報DB402aに登録する。
一方、ルーティング部409は、種別判定部404によって受信パケットがDNS要求ではない判定された場合(S702:No)、受信パケットの宛先に対応するルーティング情報がルーティングDB402cに登録されているかを判定する(S704)。
ここで、ルーティング部409は、受信パケットの宛先に対応するルーティング情報がルーティングDB402cに登録されている場合(S704:Yes)、ルーティング情報にしたがって通信網を選択して、受信パケットを宛先に転送する(S705)。
一方、ルーティング部409は、受信パケットの宛先に対応するルーティング情報がルーティングDB402cに登録されていない場合(S704:No)、S706を実行する。すなわち、ルーティング部409は、受信パケットの宛先となるGW装置600のグローバルIPアドレスが登録されているかをIP管理サーバ100に問い合わせる。
そして、ルーティング部409は、IP管理サーバ100から登録ありを示す情報を受信すると(S707:Yes)、通信経路を物理網に決定する(S708)。一方、ルーティング部409は、IP管理サーバ100から登録なしを示す情報を受信すると(S707:No)、通信経路をVPN6に決定する(S709)。
その後、ルーティング部409は、決定した通信経路と宛先と送信元とを対応付けて、ルーティングDB402cに登録する(S710)。そして、ルーティング部409は、決定した通信経路で、受信パケットを宛先に転送する(S711)。
[効果]
このように、端末がNAT越え用のグローバルIPアドレスの解決を行った場合に、その結果をGW装置がIP管理サーバ100に登録しておく。そして、GW装置は、端末が通信する際、そのIPアドレスが存在するか否かで使用する網を決定することができる。
具体的には、GW装置は、通信相手がGW装置を使用中の場合、すなわち社外にいる場合に、IPアドレスが登録済みとなるので、物理網を使用する。また、GW装置は、通信相手がGW装置を未使用の場合、すなわち社内にいる場合、IPアドレスが未登録となるので、VPN6を使用する。
したがって、GW装置は、既存のシステムを改造することなく、VoIP用の網使い分けを実現することができる。その結果、VoIPサービス利用時に、通信相手が社内外どこにいても、自動的にVPN機器およびプロキシサーバの負荷を軽減させ、サービスの品質低下を抑制することができる。また、アプリプロトコルを意識していないため、VoIPに限らず、他の端末間通信サービスにも適用することができる。
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施例を説明する。
(着側GW装置)
実施例1では、発側端末が利用するGW装置について具体的に説明したが、着側端末が利用するGW装置についても同様の処理を実行することができる。
(通信網)
上記実施例では、非暗号化通信であるインターネットなどの物理網と、暗号化通信であるVPN6などのセキュアな通信網とを選択して切替える例を説明したが、これに限定されるものではない。例えば、物理網とVLAN(Virtual Local Area Network)などを選択することもでき、異なるVLANを選択することもできる。
(システム)
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
(ハードウェア)
図25は、ハードウェア構成例を示す図である。ここで示すハードウェア構成例は、図1で説明した各GW装置や各サーバなどの構成例であり、ここでは情報処理装置900として説明する。なお、端末30および50は、一般的な携帯電話やスマートフォンなどの構成と同様なので、詳細な説明は省略する。
図25に示すように、情報処理装置900は、通信インタフェース900a、入力装置900b、表示装置900c、記憶部900d、プロセッサ900eを有する。なお、図25に示したハードウェア構成は一例であり、他のハードウェアを有していてもよい。
通信インタフェース900aは、他の装置との間で通信経路を確立して、データの送受信を実行するインタフェースであり、例えばネットワークインタフェースカードや無線インタフェースなどである。
入力装置900bは、ユーザ等からの入力を受け付ける装置であり、例えばマウスやキーボードなどである。表示装置900cは、各種情報を表示するディスプレイやタッチパネルなどである。
記憶部900dは、各GW装置または各サーバの各種機能を実行するためのデータや各種プログラムを格納する記憶装置である。例えば、記憶部900dは、図3、図5、図14、図18に示した各DBと同様の情報を記憶する。記憶部900dの一例としては、ROM、RAM、ハードディスクなどがある。
プロセッサ900eは、記憶部900dに記憶されるプログラムやデータを用いて、各GW装置としての処理または各センタサーバとしての処理を制御する。プロセッサ900eの一例としては、例えばCPUやMPUなどがある。このプロセッサ900eは、ROM等に記憶されるプログラムをRAMに展開して、各種処理に対応する各種プロセスを実行する。例えば、プロセッサ900eは、図3、図5、図14、図18に示した各処理部と同様の処理を実行するプロセスを動作させる。