次に発明の実施の形態について説明する。図1は、本発明の一実施形態に係る中継通信システムの全体構成を示す説明図である。
本実施形態の中継通信システムは、装置又は機械の遠隔保守を目的として構築された遠隔保守システムであり、コールセンターと、前記装置又は機械の設置先(客先工場)と、サービスマン派遣先と、の3拠点を、インターネットを介して接続するものである。
なお、コールセンターとは、客先工場に導入した装置又は機械の保守を行うためのサービス拠点であり、例えば前記装置又は機械の製造元メーカーに設置される。サービスマン派遣先はサービスマンが派遣される場所であり、遠隔保守サービスを提供するための拠点としてコールセンターとは別に設置される。本実施形態の中継通信システムは、客先工場の装置又は機械を、サービスマン派遣先に待機しているサービスマンがインターネットを介して遠隔保守する、といった状況を想定して構築されている。
図1に示すように、中継通信システムは、WANに接続された複数のLAN91〜94で構成されている。WAN(Wide Area Network)は、異なるLANを相互に接続するネットワークである。本実施形態ではWANとしてインターネットが使用されている。LAN(Local Area Network)は、限定された場所で構築されるネットワークである。LANは複数存在し、互いに物理的に離れた場所に構築されている。
LAN(コールセンターLAN)91はコールセンターに構築され、LAN(派遣先LAN)92はサービスマン派遣先に構築され、LAN(第1客先LAN)93及びLAN(第2客先LAN)は客先工場に構築されている。これら4つのLAN91,92,93,94は、グローバルなネットワークであるインターネットにそれぞれ接続されている。
また、LAN91〜94には、それぞれ中継サーバ1が接続されている。以下の説明において、各LANに配置される中継サーバ1を区別するために、LAN91に接続された中継サーバ1のことをコールセンターサーバ(relay server 1)R1と呼ぶことがある。また、LAN92に接続された中継サーバ1のことを派遣先サーバ(relay server 2)R2と呼び、LAN93及びLAN94に接続された中継サーバ1のことを客先サーバ(relay server 3)R3と呼ぶことがある。
コールセンターサーバR1には、中継通信を行うための各種の設定等を行うクライアント端末5がLAN91を介して接続されている。派遣先サーバR2には、サービスマンが遠隔保守を行う際に直接操作するクライアント端末5がLAN92を介して接続されている。
客先工場には、サービスマンが遠隔保守を行う対象であるクライアント端末5が配置されている。この客先工場のクライアント端末5そのものが製造元メーカーが製造した装置又は機械であることもあれば、客先工場のクライアント端末5は装置又は機械を制御するための制御端末に過ぎない場合もある。何れの場合であっても、サービスマンは、この客先工場のクライアント端末5にアクセスすることにより、遠隔保守サービスを提供する。客先工場に配置されるクライアント端末5は、LAN93及びLAN94を介して客先サーバR3に接続されている。
それぞれのLAN91〜94に接続されるクライアント端末5はユーザが直接操作できる端末であり、例えばユーザによって日々の業務に使用されるパーソナルコンピュータ(PC)等が該当する。従って、LAN内には通常多数のクライアント端末5が存在する。各クライアント端末5には、同一のLANの中で一意に管理されたプライベートIPアドレスが付与されている。
なお、図1に図示されているコールセンターサーバR1、派遣先サーバR2及び客先サーバR3以外にも、物理的に離れた場所にLANが構築されており、当該LANに中継サーバ1が接続されている。これらの中継サーバ1は、外部サーバ2にインターネットを介して複数接続されている。
より具体的には、図1で示すサービスマン派遣先にはLAN92が設置されているが、これ以外にも図示しない派遣先が幾つか存在する。そして、図示されない派遣先においてもそれぞれ1つ又は複数のLANが構築されるとともに、当該LANにも、派遣先サーバとしての中継サーバ1が接続される。また、図1で示す客先工場にはLAN93及びLAN94が設置されているが、これ以外にも図示しない客先工場(保守対象の機械又は装置が設置されている客先)が存在する。そして、図示されない客先工場にもそれぞれ1つ又は複数のLANが設置されるとともに、当該LANにも、客先サーバとしての中継サーバ1が接続されている。
そして、本実施形態においては、客先サーバ(中継サーバ1)ごとに複数の派遣先サーバとしての中継サーバ1が設定されている。なお、以下の説明において、「派遣先サーバとしての中継サーバ1」を単に「派遣先サーバ」と称し、「客先サーバとしての中継サーバ1」を単に「客先サーバ」と称することがある。
次に、外部サーバ2の構成について説明する。この外部サーバ2は、各LANに接続された中継サーバ1間での通信に用いられる装置であり、インターネット上に設置されている。本実施形態の外部サーバ2は、SIP(Session Initiaion Protocol)サーバとしての機能を備えている。具体的には、外部サーバ2は、SIPメソッド及びレスポンス等を中継するSIPプロキシサーバとしての機能と、中継サーバ1のアカウントを登録するSIPレジストラサーバとしての機能を備える。
外部サーバ2は、図2に示すように、WANインタフェース201と、制御部202と、中継サーバアカウント情報データベース203と、を主要な構成として備えている。
WANインタフェース201は、グローバルIPアドレスを使用して、インターネットに接続された中継サーバ1等の各装置と通信を行うインタフェースである。
中継サーバアカウント情報データベース203は、中継通信システムを構成する中継サーバ1のアカウントをグローバルIPアドレスと対応付けて管理するデータベースである。本実施形態の中継サーバアカウント情報データベース203には、コールセンターサーバR1、派遣先サーバR2及び客先サーバR3のアカウントとグローバルIPアドレスとが、対応付けて中継サーバ1ごとにそれぞれ登録されている。
制御部202は、WANインタフェース201を介して行う様々な通信を制御する処理部であり、TCP/IP、UDP又はSIP等のプロトコルに従った通信処理を制御する。この制御部202は、例えば、それぞれの中継サーバ1から当該中継サーバ1のアカウントに関する情報を受信し、中継サーバアカウント情報データベース203に登録する処理を行う。また、中継サーバ1から送信された様々なSIPメソッド又はレスポンス等の通信データを他の中継サーバ1に中継する処理等を行う。
次に、LAN91〜94に配置される中継サーバ1の構成について説明する。LAN91〜94に配置される各中継サーバ1は、各LANに配置されているクライアント端末5に通信可能に接続されるとともに、インターネットにも接続されている。そして、各中継サーバ1(即ち、コールセンターサーバR1、派遣先サーバR2及び客先サーバR3)には、プライベートIPアドレスとグローバルIPアドレスの両方が付与されている。これにより、各中継サーバ1は、前記外部サーバ2を介して相互に中継通信を行うことが可能になっている。中継サーバ1はSIPレジストラサーバとしての機能を備えており、各中継サーバ1と各クライアント端末5との間の通信はSIPを使用して行われる。なお、各中継サーバ1と各クライアント端末5との間の通信はSIPを用いたものに限定される訳ではなく、TCP/IP、UDP等の適宜のプロトコルに従った通信を行うことも可能である。
図3を参照して、LAN91に接続されるコールセンターサーバR1を例にして中継サーバ1について説明する。図3はコールセンターサーバR1の機能ブロック図である。
コールセンターサーバR1は、図3に示すように、LANインタフェース501と、WANインタフェース502と、制御部503と、クライアント端末情報データベース511と、中継サーバ情報データベース512と、中継グループ情報データベース521と、ルーティンググループ情報データベース522と、アクセス許可情報データベース(アクセス許可情報登録部)513と、最大接続数データベース(最大接続数記憶部)514と、通信管理情報データベース(通信管理情報格納部)515と、を主要な構成要素として備えている。
LANインタフェース501は、自装置と同一のLANに接続されたクライアント端末5との通信を、プライベートIPアドレスを使用して行うインタフェースである。
WANインタフェース502は、グローバルIPアドレスを使用して、インターネットに接続された外部サーバ2等の各装置と通信を行うインタフェースである。
制御部503は、LANインタフェース501及びWANインタフェース502を介して行う様々な通信を制御する処理部であり、TCP/IP、UDP及びSIP等のプロトコルに従った様々な通信処理を制御する。
クライアント端末情報データベース511は、LAN91を介してコールセンターサーバR1とローカルに接続しているクライアント端末5のアカウント情報をプライベートIPアドレスと対応付けて管理するデータベースである。
クライアント端末情報データベース511に格納されるクライアント端末情報の記憶内容例を図4に示す。図4に示すように、クライアント端末情報においては、LAN91に接続しているクライアント端末5ごとに、当該クライアント端末5に関する属性情報を含むnodeタグが記述される。クライアント端末5に関する属性情報としては、クライアント端末5のプライベートIPアドレス(「addr」)、識別情報(「id」)、名称(「name」)及びポート情報(「port」)等がある。なお、図4に示す記憶内容例において、client11及びclient12以外のクライアント端末5の記述を省略したが、実際には、LAN91を介して中継サーバ1に接続している他のクライアント端末5(例えば、client13)に関する属性情報についても記述されている。
中継サーバ情報データベース512は、中継通信を行う中継サーバ1とそれぞれの中継サーバ1に接続されるクライアント端末5の情報を管理するデータベースである。
中継サーバ情報データベース512に格納される中継サーバ情報の記憶内容例を図5に示す。図5に示す中継サーバ情報は、中継通信を行う中継サーバ1(コールセンターサーバR1、派遣先サーバR2及び客先サーバR3等)のそれぞれで作成されたものを合成したものである。この中継サーバ情報は、コールセンターサーバR1が、中継通信を行う他の中継サーバ1から受信したそれぞれの中継サーバ情報に、コールセンターサーバR1自身で作成した中継サーバ情報を合成して作成したものである。
図5に示す中継サーバ情報においては、中継サーバ1ごとに記述されるsiteタグと、前記siteタグを親要素とする子要素のnodeタグと、が記述されている。siteタグには中継サーバ1に関する属性情報が含まれており、この属性情報としては、中継サーバ1の識別情報(「id」)、中継サーバ1の名称(「name」)及び起動情報(「stat」)等がある。siteタグの子要素であるnodeタグには、中継サーバ1にログオンするクライアント端末5に関する属性情報が含まれている。クライアント端末5に関する属性情報としては、当該クライアント端末5の識別情報(「id」)及びクライアント端末5の名称(「name」)等がある。なお、図5の記憶内容例において、relayserver1及びrelayserver2以外の中継サーバ1の記述を省略したが、実際には、外部サーバ2を介して接続される他の中継サーバ1(例えば、relayserver3)に関する属性情報についても記述されている。また、図5においては、図4と同様に、クライアント端末5に関する記述を一部省略している。
中継グループ情報データベース521は、中継通信を行う中継グループ情報を管理するデータベースである。
中継グループ情報データベース521に格納される中継グループ情報の記憶内容例を図6に示す。図6に示すように、中継グループ情報においては、groupタグと、このグループタグを親要素とする子要素のsiteタグと、が記述されている。groupタグには中継グループに関する属性情報が含まれており、この属性情報としては、中継グループの識別情報(「id」)及び中継グループの名称(「name」)等がある。siteタグには、中継グループに含まれる中継サーバ1に関する属性情報が含まれており、この属性情報としては、当該中継サーバ1の識別情報(「id」)等がある。また、中継グループは追加作成が可能であり、その場合、新しい中継グループには、他の中継グループと異なる一意の識別情報が付与される。これにより、中継グループ内だけでデータのやり取りを行う等の設定が可能になっている。
ルーティンググループ情報データベース522は、中継通信システムを利用したルーティング処理を行うために用いられるルーティンググループ情報を管理するデータベースである。なお、ルーティンググループ情報及びこのルーティンググループ情報を用いたルーティング処理の詳細については後述する。
なお、図4で示したクライアント端末情報の記憶内容例、図5で示した中継サーバ情報の記憶内容例及び図6で示した中継グループ情報の記憶内容例はあくまで一例であり、適宜の属性情報及び要素情報を追加又は削除できることは勿論である。
アクセス許可情報データベース513は、コールセンターサーバR1以外で通信が許可されている中継サーバの識別情報及びサブシステムを客先サーバごとに管理するデータベースである。ここでいう客先サーバは、図1に図示される客先サーバR3を含めた中継サーバ1を意味している。このアクセス許可情報データベース513は、例えば、どのサービスマン派遣先がどの客先工場の遠隔保守を担当するかが予め決まっている場合、担当のサービスマン派遣先のみが遠隔保守を実施できるように、客先サーバへのアクセス制限を行うためのものである。
このアクセス許可情報データベース513について、図7を参照して具体的に説明する。図7は、アクセス許可情報データベース513の内容を示した表である。
また、前述のように、本実施形態のコールセンターサーバR1は、派遣先サーバR2及び客先サーバR3に対してだけでなく、多数の中継サーバ1と接続されている。図7においては、これの中継サーバ1のうち、客先サーバを、relayserver3,31,32,33,34と表し、派遣先サーバを、relayserver2,21,22,23と表している。
図7の表において、targetの列には客先サーバが記述されている。一方、permitの列には派遣先サーバが記述されている。そして、この表では、ある客先サーバに対して通信が許可されている派遣先サーバが、当該客先サーバに対応付けられた形で記述されている。例えば、relayserver3は、relayserver2,21,23からの通信を許可している。
また、subsystemの列には、各客先サーバの配下にあるサブシステムのうち、前記permitの列に記述された派遣先サーバから接続可能なサブシステムが記述されている。サブシステムとは、客先サーバの配下にある装置、機器、ネットワーク等である。なお、以下の説明では、サブシステムは各客先サーバに対してLANを介して接続されたクライアント端末5のことであるとして説明する。例えば、図7の表では、relayserver3(客先サーバR3)の配下のサブシステムとして、relayserver2,21,23から接続可能な複数のクライアント端末(client31,client33)が記述されている。このように、アクセス許可情報データベース513は、サブシステムと、当該サブシステムにアクセス可能な各派遣先サーバと、を対応付けて記憶している。
前記制御部503は、例えば、派遣先サーバR2から接続要求があった場合は、アクセス許可情報データベース513に登録されている情報に基づいてアクセス許可リストを作成し、当該派遣先サーバR2に送信する。このアクセス許可リストは、派遣先サーバR2からの通信が許可されている中継サーバ1と各サブシステムを示すリストである。従って、コールセンターサーバR1の制御部は、アクセス許可情報送信部として機能すると言うことができる。
なお、制御部503は、アクセス許可リストを作成せずに、アクセス許可情報データベース513に登録されている情報を派遣先サーバR2に送信しても良い。派遣先サーバR2は、この情報に対して適宜の処理を行うことで、自らが通信可能な客先サーバを把握することができる。
最大接続数データベース514には、各客先サーバに対して接続することができる最大数と、各サブシステムに対して接続することができる最大数(最大接続数)が、各客先サーバ又は各サブシステムと関連付けて記憶されている。制御部503は、この最大接続数データベース514に記憶された最大接続数に基づいて、各客先サーバ及び各サブシステムに対する接続数制限を行う。この最大接続数は任意に決定することが可能であり、例えば、客先サーバ及びサブシステムの処理能力上の限界に基づいて決めても良いし、セキュリティ上の観点から決めても良い。なお、ある客先サーバの配下にサブシステムが1つしか存在しない場合、当該客先サーバと当該サブシステムの最大接続数は同じになるので、当該1つしか存在しないサブシステムには最大接続数を設定しなくても良い。即ち、客先サーバとは別にサブシステムに対して最大接続数を設定するのは、客先サーバの配下に複数のサブシステムがあるときである。なお以下の説明では客先サーバに対する接続数制限の説明は省略し、サブシステムに対する接続数制限について説明する。
通信管理情報データベース515は、派遣先サーバR2と客先サーバの各サブシステム(クライアント端末)の接続時間及び接続状況等を示す通信管理情報を記録したデータベースである。この通信管理情報を参照することにより、現在どの派遣先サーバR2とどのサブシステムとが接続しているか、といった情報を取得することができる。
派遣先サーバR2及び客先サーバR3は、LANインタフェースと、WANインタフェースと、制御部と、を備えている。派遣先サーバR2及び客先サーバR3の構成は、図3に示すコールセンターサーバR1の構成からアクセス許可情報データベース513及び通信管理情報データベース515を省略した構成にほぼ相当しているので、各部の構成の説明は省略する。
次に、本実施形態の中継通信システムにおけるパケットのルーティング制御について説明する。本実施形態においては、遠隔地のLANに属するクライアント端末5同士で、WANを意識することなく相互に通信可能とするために、アプリケーション層でパケットのルーティング処理を行うことが可能に構成されている。以下、図8を参照して説明する。なお、以下の説明において、各クライアント端末5を区別するため、符号の末尾にアルファベットを付して、クライアント端末5a、クライアント端末5b・・・のように表示する場合がある。
以下の説明では、サービスマンが客先工場のクライアント端末5を遠隔保守する場合を想定し、派遣先LAN92と第1客先LAN93との間でパケットのルーティングを行う場合について説明する。
本実施形態の中継通信システムにおいて、WANを介して互いに接続されたLAN91〜94には、それぞれプライベートIPアドレスが割り振られている。なお、各プライベートアドレスは、中継通信システムの中で一意に決まるように管理されている。例として図8に示すように、派遣先LAN92のアドレスは「172.16.1.0/24」、第1客先LAN93のアドレスは「172.30.1.0/24」、第2客先LAN94のアドレスは「172.30.2.0/24」である場合を想定して説明する。
本実施形態の中継通信システムにおいて、前記アプリケーション層でのパケットのルーティングを実現するため、ルーティングの対象となるLANには、ルーティング装置として機能できる中継サーバ1又はクライアント端末5が少なくとも1つ用意されている。例えば本実施形態の場合、派遣先LAN92内では派遣先サーバR2が、第1客先LAN93内ではクライアント端末5dが、第2客先LAN94内ではクライアント端末5fが、それぞれルーティング装置として機能できるものとする。
本実施形態の中継通信システムにおいて、パケットのルーティングを行う際には、まず、ルーティング可能なLANの検索を行う。具体的には、何れかのクライアント端末5から中継サーバ1に対して、ルーティング可能LAN検索コマンド(以下、単にLAN検索コマンド)を送信する。以下では、具体的に、クライアント端末5bが、派遣先サーバR2に対してルーティング可能LAN検索コマンドを送信したとして説明する。
ここで、「ルーティング可能なLAN」とは、ルーティング装置としての中継サーバ1又はクライアント端末5を備えているLANのことである。なお、図8においては、LAN92,93,94はそれぞれルーティング可能として説明しているが、それぞれのLANが必ずしもルーティング可能とは限らない。そこで、このようにルーティング可能なLANの検索が必要となる。
LAN検索コマンドを受信した派遣先サーバR2は、中継グループ情報を参照することにより、中継グループを構成する他の中継サーバ1(コールセンターサーバR1、客先サーバR3)に対してLAN検索コマンドを転送する。そして、LAN検索コマンドを受信した各中継サーバ1(コールセンターサーバR1、派遣先サーバR2、客先サーバR3)は、クライアント端末情報データベース511に登録された各クライアント端末5と通信を行い、自身が接続されているLANの中にルーティング装置として機能できるクライアント端末5が存在するか否かを調べる。ルーティング装置としての機能を備えたクライアント端末5が見つかった場合、当該クライアント端末5を備えるLANはルーティング可能なLANである。また、中継サーバ1自身がルーティング装置として機能できる場合も、当該中継サーバ1を備えるLANはルーティング可能なLANである。このような場合、中継サーバ1は、当該LANはルーティング可能なLANである旨と、当該LANのプライベートIPアドレスと、を関連付けたLAN検索応答情報を生成する。
続いて、コールセンターサーバR1及び客先サーバR3は、生成したLAN検索応答情報を派遣先サーバR2へ送信する。派遣先サーバR2においては、自身が生成したLAN検索応答情報と、各中継サーバ1から受信したLAN検索応答情報と、を合成した合成LAN検索応答情報を生成する。派遣先サーバR2は、当該合成LAN検索応答情報を、クライアント端末5bに転送する。クライアント端末5bには、この合成LAN検索応答情報に基づいて、LAN検索結果情報が生成されて記憶される。
クライアント端末5bに記憶されるLAN検索結果情報の例を、図9に示す。LAN検索結果情報においては、routing_networkタグを親要素とする子要素のnetworkタグが記述されている。各networkタグには、ルーティング可能なLANのプライベートIPアドレス情報(「addr」)が記載されている。このように、LAN検索コマンドの送信元のクライアント端末において、中継通信システムの中でルーティング可能なLANのプライベートIPアドレスを特定することができる。例えば本実施形態では、図9に示すように、派遣先LAN92(addr=“172.16.1.0/24”)、第1客先LAN93(addr=“172.30.1.0/24”)及び第2客先LAN94(addr=“172.30.2.0/24)が、ルーティング可能なLANとして特定される。
次に、ルーティング可能なLANを特定したクライアント端末5bにおいて、ルーティング経路の探索(より詳細に言うと、ルーティングポイントの特定)が行われる。当該クライアント端末5bは、ルーティング可能なLANの中からルーティング対象LANを指定したうえで、ルーティング経路探索コマンド(以下、単に経路探索コマンド)を派遣先サーバR2に送信する。以下、ルーティング対象LANとして、派遣先LAN92と第1客先LAN93が指定された場合について説明する。
経路探索コマンドを受信した派遣先サーバR2は、中継グループ情報を参照することにより、中継グループを構成する他の中継サーバ1(コールセンターサーバR1、客先サーバR3)に対して経路探索コマンドを転送する。
そして、経路探索コマンドを受信した各中継サーバ1(コールセンターサーバR1、派遣先サーバR2、客先サーバR3)は、クライアント端末情報データベース511に登録された各クライアント端末5と通信することにより、自身が接続されているLANの中に、ルーティング対象LANとして指定されたLANのルーティング装置として機能できるクライアント端末5が存在するか否かを調べる。
例えば本実施形態の場合、クライアント端末5dは、ルーティング対象LANとして指定されたLAN(第1客先LAN93)のルーティング装置として機能できる。このようにルーティング対象LANのルーティング装置として機能できるクライアント端末5dは、指定されたLANの間(派遣先LAN92と第1客先LAN93の間)でパケットをルーティングする際のルーティングポイントとして機能することができる。ルーティングポイントとして機能できるクライアント端末5dが見つかった場合、客先サーバR3は、当該第1客先LAN93のプライベートIPアドレスと、当該クライアント端末5dの識別情報と、を関連付けた経路探索応答情報を生成する。
一方、ルーティング対象LANとして指定されたLANのルーティング装置として中継サーバ1自身が機能できる場合、当該中継サーバ1は、自身がルーティングポイントとして機能できる。例えば本実施形態では、派遣先サーバR2は、ルーティング対象LANとして指定されたLAN(派遣先LAN92)のルーティング装置として機能できる。このような場合、当該派遣先サーバR2は、当該派遣先LAN92のプライベートIPアドレスと、自身の識別情報と、を関連付けた経路探索応答情報を生成する。
続いて、客先サーバR3は、生成した経路探索応答情報を派遣先サーバR2へ送信する。派遣先サーバR2においては、客先サーバR3から受信した経路探索応答情報と、自身が生成した経路探索応答情報と、を合成した合成経路探索応答情報を生成する。派遣先サーバR2は、当該合成経路探索応答情報を、クライアント端末5bに転送する。クライアント端末5bには、この合成経路探索応答情報に基づいて、経路探索結果情報が生成されて記憶される。
クライアント端末5bに記憶される経路探索結果情報の例を、図10に示す。経路探索結果情報においては、routing_networkタグを親要素とする子要素のnetworkタグが記述されている。各networkタグには、ルーティング可能なLANのプライベートIPアドレス情報(「addr」)と、ルーティングポイントとして機能できる装置の識別情報(「router」)と、が関連付けられて記載されている。このように、このようにルーティング対象LANとして指定したLANの間でのルーティング経路の探索(即ちルーティングポイントの特定)を実現することができる。
次に、ルーティングセッションの確立を行う。ルーティングセッションとは、本実施形態の中継通信システムでパケットのルーティング制御に用いられるメディアセッションである。
ルーティングセッションを確立するため、クライアント端末5bは、ルーティングセッションで用いるルーティングポイントを指定する情報を、派遣先サーバR2へ送信する。派遣先サーバR2においては、上記経路探索結果情報に基づいて、ルーティンググループ情報が生成される。ルーティンググループ情報は、中継通信システムを利用したルーティング制御を実行するためのルーティング設定情報であり、ルーティンググループ情報データベース522に格納される。
ルーティンググループ情報データベース522に格納されるルーティンググループ情報の例を、図11に示す。ルーティンググループ情報において、networkタグには、ルーティング対象LANのローカルIPアドレスと、ルーティングポイントとして使用する装置の識別情報と、が関連付けられて記述されている。routing_sessionタグを親要素とする子要素のsessionタグには、当該ルーティングセッションの始点(「start」)と終点(「end」)が記述されている。
続いて、派遣先サーバR2は、ルーティンググループ情報を、次のルーティングポイントであるクライアント端末5dに転送する。これにより、各ルーティングポイントにおいて、ルーティング対象LANの間のルーティング経路に関する情報が共有される。
各ルーティングポイントが前記ルーティンググループ情報を受信した後、当該ルーティングポイントの間で、複数のメディアセッションからなるルーティングセッションが確立される。具体的には、客先サーバR3とクライアント端末5dとの間でメディアセッションが確立される。また、派遣先サーバR2と客先サーバR3との間でメディアセッションが確立される。この2つのメディアセッションにより、ルーティングポイント同士(派遣先サーバR2とクライアント端末5d)を結ぶルーティングセッションが構成される。
次に、派遣先LAN92内の端末5aから、第1客先LAN93内のクライアント端末5eに対して、ルーティングセッションを介してパケットを送信する場合について説明する。この場合、クライアント端末5aは、クライアント端末5eのプライベートIPアドレス(172.30.1.2)を指定したパケットを作成する。続いて、クライアント端末5aは、当該クライアント端末5a自身が属しているLAN(派遣先LAN92)のルーティングポイントである派遣先サーバR2へ、パケットを転送する。
ルーティングポイントとしての派遣先サーバR2は、ルーティングの対象となるパケットを受信した場合、宛先のプライベートIPアドレス(172.30.1.2)に基づいて、当該パケットを届けるべきLANを特定する。今回の説明では、パケットの届け先のLANは第1客先LAN93(プライベートIPアドレスは172.30.1.0/24)となる。次に、派遣先サーバR2は、前記ルーティンググループ情報を参照することにより、第1客先LAN93との間で有効なルーティングセッションが確立されているか否かを判定する。例えば現在説明中の例では、ルーティンググループ情報を参照することにより、第1客先LAN93との間に既にルーティングセッションが確立されていることがわかるので、当該ルーティングセッションを用いてパケットの送信を行えば良いことになる。なお、ここでルーティングセッションが確立されていない場合は、ルーティングセッションを介したパケットの送信が不可能であるためエラーとなる。
パケットの送信に使用するルーティングセッションを特定した後、ルーティングポイントとしての派遣先サーバR2は、クライアント端末5aから受信したパケットを、ルーティングセッションを介して送り出す。これにより、前記パケットは、次のルーティングポイントであるクライアント端末5dに受信される。
次のルーティングポイントであるクライアント端末5dは、宛先として指定されたプライベートIPアドレス(172.30.1.2)に対して、当該パケットを転送する。これにより、クライアント端末5eにパケットが届けられる。なお、逆方向への通信(クライアント端末5eからクライアント端末5aへパケットを送信する場合)も同様に、ルーティングセッションを介してパケットのルーティングを行うことができる。
以上で説明したルーティング関係の処理、即ち、ルーティング可能なLANの検索、ルーティング経路の探索の処理などは、アプリケーション層で行われる。このように、本実施形態では、アプリケーション層のルーティングセッションで、ルーティング対象のデータを流すように構成されている。従って、以上で説明したルーティングは、通常のIPルーティングとは異なっている。
このようにアプリケーション層でルーティングを行うことにより、WANを意識することなく遠隔地のLAN同士がプライベートIPアドレスを利用して相互に通信できるだけでなく、ルーティング経路等を中継通信システムの構成に応じて柔軟に構築できる。なお、ルーティングセッションを確立するまでもない単発的な情報の送受信を行う場合には、上記のルーティングを行わない通常の方法でパケットを送受信しても良いことは勿論である。
本実施形態において、サービスマン派遣先のサービスマンは、以上で説明したルーティングセッションを介して、客先工場のクライアント端末5の遠隔保守を行うことができる。
次に、図12、図13のシーケンス図を参照して、本実施形態の中継通信システムを用いたサブシステムに対するアクセス数制限について説明する。以下、サービスマン派遣先のサービスマンが、クライアント端末5dに対して接続する場合について説明する。
まず、本実施形態の中継通信システムを用いた接続を行う前に、客先サーバの配下にある各サブシステムに対する最大接続数を予め設定しておく。この最大接続数の設定を客先サーバR3から行う場合、客先サーバR3は、自身の配下の各サブシステムに対して設定する最大接続数を指定したうえで、最大接続数設定要求(SETメソッド)をコールセンターサーバR1に対して送信する(シーケンス番号10)。最大接続数設定要求を受信したコールセンターサーバR1は、指定されたサブシステムと最大接続数を関連付けて、最大接続数データベース514に記憶する。なお、以下の説明で、「客先サーバR3の配下にあるサブシステム」のことを単に「客先のサブシステム」と呼ぶことがある。
リモートメンテナンス等の遠隔保守を行う場合、サービスマンはクライアント端末5を操作し、派遣先サーバR2を介して、コールセンターサーバR1を送信先としたアクセス許可リスト要求(GETメソッド)を送信する(シーケンス番号11)。
このように、本実施形態ではクライアント端末5から各中継サーバ1を介して要求等が送信されることがあるが、以下の説明においては、クライアント端末5を操作する処理の具体的な説明を省略することがある。
また、このアクセス許可リスト要求では、送信先のコールセンターサーバR1のアカウントが指定されている。外部サーバ2は、中継サーバアカウント情報データベース203を参照することでコールセンターサーバR1のグローバルIPアドレスを取得し、派遣先サーバR2からの上記要求をコールセンターサーバR1に中継する。
以上のように、本実施形態の各中継サーバ1間の通信は外部サーバ2を経由して行われ、以下においても同様である。従って、以下の説明では、外部サーバ2を経由する通信処理の具体的な説明を省略することがある。
上記のアクセス許可リスト要求を受信したコールセンターサーバR1の制御部は、アクセス許可情報データベース513に基づいて、派遣先サーバR2がアクセス可能な客先のサブシステムを示したアクセス許可リストを作成する。そして、コールセンターサーバR1の制御部は、このアクセス許可リストを派遣先サーバR2へ送信する。従って、コールセンターサーバR1の制御部は、アクセス許可情報送信部として機能すると言うことができる。
サービスマンは、前記アクセス許可リストに基づいて、自らが通信すべき客先のサブシステムを選択する。本実施形態においては、接続すべき客先のサブシステムとして、クライアント端末5dが選択されたとする。サービスマンは、派遣先サーバR2を介して、クライアント端末5dを接続先とする接続開始要求(Accessメソッド)をコールセンターサーバR1に対して送信する(シーケンス番号12)。
コールセンターサーバR1は、最大接続数データベース514を参照することにより、接続先として指定されたクライアント端末5dに設定された最大接続数を取得する。
続いて、コールセンターサーバR1の制御部は、通信管理情報データベース515に記録された通信管理情報に基づいて、クライアント端末5dに対して現在確立されている接続の数を取得する。このように、コールセンターサーバR1の制御部は、接続数取得部として機能すると言うことができる。
続いて、コールセンターサーバR1の制御部は、クライアント端末5dに対して確立されている接続の数が、当該クライアント端末5dに設定された最大接続数に達しているか否かを判断する(シーケンス番号12.1)。クライアント端末5dの接続数に余裕がある場合、派遣先サーバR2は、クライアント端末5dに接続することができる。
しかし、客先サーバR3はコールセンターサーバR1以外からの通信を通常は受け付けていない。この通信を開始するためには、コールセンターサーバR1から客先サーバR3へアクセス元(派遣先サーバR2)が通知される必要がある。そのため、コールセンターサーバR1は、客先サーバR3へ、派遣先サーバR2に対するアクセス許可要求(ACCESS_PERMITメソッド)を送信する(シーケンス番号12.2)。
このアクセス許可要求を受信した客先サーバR3は、派遣先サーバR2からの通信を受け付ける処理を行うとともに、コールセンターサーバR1に対してOKレスポンスを返す。コールセンターサーバR1は、客先サーバR3からOKレスポンスを受信した後、前記アクセス許可要求に対するOKレスポンスを派遣先サーバR2に対して返す。
派遣先サーバR2は、このOKレスポンスを受けると、客先サーバR3に対して、クライアント端末5dを指定して接続要求(INVITEメソッド)を送信する(シーケンス番号13)。これに対するOKレスポンスを受信した派遣先サーバR2は、クライアント端末5dに対して、INVITEに対する最終レスポンス(ACKメソッド)を送信する(シーケンス番号14)。そして、クライアント端末5dが派遣先サーバR2に対してMediaSessionコマンドを送信する。このコマンドによって、派遣先サーバR2と客先サーバR3との間に通信経路(ルーティングセッション)が確立される(シーケンス番号14.1)。
クライアント端末5dからMediaSessionコマンドを受信した派遣先サーバR2は、コールセンターサーバR1に対して、クライアント端末5dとの間で接続を開始した旨を通知する(NOTIFY_ESTABLISHMENTメソッド、接続状況通知、シーケンス番号14.1.1)。コールセンターサーバR1の制御部は、当該接続状況通知を受信する。従って、コールセンターサーバR1の制御部は、接続状況通知受信部として機能すると言うことができる。
続いて、コールセンターサーバR1の制御部は、クライアント端末が派遣先サーバR2に対して中継通信を行っている旨の通信管理情報を、通信管理情報データベース515へ格納する。続いて、コールセンターサーバR1は、ルーティングセッション確立の通知に対するOKレスポンスを派遣先サーバR2に対して返す。
派遣先サーバR2とクライアント端末5dとの間にルーティングセッションが確立されると、サービスマンは当該ルーティングセッションを利用して、客先工場に設置されたクライアント端末5dの遠隔保守(リモートメンテナンス)を行う。
次に、ルーティングセッションの終了(接続の切断)について説明する。遠隔保守の作業が終了した場合、サービスマンは、セッションを終了させる旨(BYEメソッド)を客先サーバR3に送信する(シーケンス番号15)。これに対して客先サーバR3はOKレスポンスを返し、通信を切断する。OKレスポンスを返された派遣先サーバR2は、客先サーバR3との接続が終了したことをコールセンターサーバR1に通知する(NOTIFY_TERMINATIONメソッド、接続状況通知、シーケンス番号16)。接続状況通知受信部としてのコールセンターサーバR1の制御部は、当該接続状況通知を受信する。
そして、コールセンターサーバR1は、派遣先サーバR2と客先サーバR3とのルーティングセッションが終了した旨の通信管理情報を通信管理情報データベース515に記録し、ルーティングセッション終了の通知に対するOKレスポンスを派遣先サーバR2に対して返す。
以上で説明したように、本実施形態では、派遣先サーバと、客先のサブシステムと、の間の接続状況を、コールセンターサーバR1で受信し、当該コールセンターサーバR1が備える通信管理情報データベース515に記録することで、サブシステムと派遣先サーバの間で行われている通信に関する通信管理情報を一元的に管理している。このように、コールセンターサーバは、通信管理情報データベース515を備えているので、管理機能付き中継サーバであると言うことができる。
そして、このようにコールセンターサーバR1で通信管理情報を一元的に管理しているので、どのサブシステムがどの派遣先サーバと通信を行っているのか、といった情報を、通信管理情報に基づいてコールセンターサーバR1側で把握することができる。従って、サブシステムに対していくつの接続が確立しているのかを、当該サブシステムに問い合わせることなくコールセンターサーバR1側で把握することができる。
次に、接続先として選択した客先のサブシステムの接続数が最大接続数に達していた場合について、図13を参照して説明する。なお、図13において、シーケンス番号20〜22は、上述のシーケンス番号10〜12の処理に対応しているので、説明を省略する。
コールセンターサーバR1の制御部は、派遣先サーバR2からクライアント端末5dを相手とした接続開始要求を受けると、クライアント端末5dに対して確立されている接続の数が、当該クライアント端末5dに関して設定された最大接続数に達しているか否かを判断する(シーケンス番号22.1)。
クライアント端末5dに対して確立されている接続数が、当該クライアント端末5dに関して設定されている最大接続数に達している場合、コールセンターサーバR1の制御部は、当該クライアント端末5dに対する新たな接続を制限する。具体的には、コールセンターサーバR1の制御部は、接続開始要求元の派遣先サーバR2に対して、接続数が上限に達しているため接続を許可できない旨の通知(ACCESS_NGメソッド)を行う(シーケンス番号3.2)。従って、コールセンターサーバR1の制御部は、接続数制限部として機能すると言うことができる。
以上で説明したように、本実施形態の中継通信システムは、1以上の派遣先サーバと、1以上の客先サーバと、コールセンターサーバR1と、を備える。前記コールセンターサーバR1は、アクセス許可情報データベース513と、通信管理情報データベース515と、最大接続数データベース514と、制御部と、を備える。アクセス許可情報データベース513は、客先サーバR3の配下にある複数のサブシステムに対するアクセスを許可された派遣先サーバR2を、前記サブシステムと関連付けたアクセス許可情報を記憶する。アクセス許可情報送信部としての制御部は、派遣先サーバR2からの要求に応じて、当該要求元の派遣先サーバR2に関する前記アクセス許可情報を、当該要求元の派遣先サーバR2に対して送信する。接続開始要求受信部としての制御部は、派遣先サーバR2から、前記サブシステムを接続先とした接続の開始を要求する接続開始要求を受信する。接続状況通知受信部としての制御部は、派遣先サーバR2とサブシステムとの間で接続が開始した場合と、当該接続が終了した場合に、派遣先サーバR2からの接続状況通知を受信する。通信管理情報データベース515は、前記接続状況通知の内容と、接続先であるサブシステムを特定する情報と、を対応付けた通信管理情報を記憶する。接続数取得部としての制御部は、前記通信管理情報に基づいて、前記サブシステムに対して行われている現在の接続数を求める。最大接続数データベース514は、前記サブシステムに対する最大接続数を記憶する。接続数制限部としての制御部は、前記サブシステムに対して行われている現在の接続数が前記最大接続数に達している場合、当該サブシステムに対する新たな接続を制限する。
以上の構成で、各サブシステムに関する最大接続数と通信管理情報を、コールセンターサーバR1で一元管理することができる。従って、コールセンターサーバR1は、前記通信管理情報に基づいて、サブシステムが現在行っている接続の数を取得することができる。そして、前記サブシステムが現在行っている接続の数と、前記最大接続数と、に基づいて、サブシステムに対する接続数に余裕があるか否かを、コールセンターサーバR1において判断することができる。これにより、サブシステムに負荷を掛けることなく、コールセンターサーバR1において、サブシステムに対する接続数制限を実現することができる。
また、本実施形態のコールセンターサーバR1は、以下のように構成されている。即ち、前記接続数制限部としての制御部は、前記サブシステムに対する接続数が前記最大接続数に達している場合であって、当該サブシステムを接続先とする接続開始要求を受信した場合、当該要求元の派遣先サーバR2に対して、接続を許可できない旨を通知する。
これにより、サブシステムに対して接続を試みようとした派遣先サーバR2において、接続先のサブシステムの接続数が最大接続数に達していることを、当該サブシステムに対して接続する前に知ることができる。
次に、上記実施形態の変形例について説明する。上記実施形態では、サブシステムに対する接続数が最大接続数に達している場合、接続要求元の派遣先サーバR2に接続を許可できない旨を通知することとしたが、この構成に代え、あるいはこの構成に加えて、以下のように構成しても良い。即ち、コールセンターサーバR1の制御部は、サブシステムに対する接続数が最大接続数に達していることを検出すると、それ以降にアクセス許可リスト要求への返信としてアクセス許可リストを返信する際には、当該アクセス許可リストから、接続数が最大接続数に達しているサブシステムに関する情報を除外して、アクセス許可リスト要求元の派遣先サーバR2に返信する。
これにより、派遣先サーバR2側において、接続するサブシステムをアクセス許可リストに基づいて選択する際に、接続数に余裕の無いサブシステムを選択してしまうことが無い。
以上で説明したように、コールセンターサーバR1の接続数制限部としての制御部は、前記サブシステムに対する接続数が前記最大接続数に達している場合であって、派遣先サーバR2からアクセス許可リストの要求を受けた場合、当該要求元の派遣先サーバR2に送信するアクセス許可情報の中から、前記接続数が最大接続数に達しているサブシステムに関する情報を除外しても良い。
これにより、アクセス許可情報を受信した接続元中継サーバは、接続数に余裕のあるサブシステムのみを知ることができる。従って、最大接続数に達したサブシステムを接続先とする無駄な接続開始要求がされることを防ぐことができる。
以上に本発明の好適な実施の形態及び変形例を説明したが、上記の構成は例えば以下のように変更することができる。
客先のサブシステムはクライアント端末として説明したが、サブシステムは、中継サーバの配下に属する構成であれば限定されず、その他の装置、機械、ネットワーク等でも良い。
上記の変形例において、最大接続数に達したサブシステムに関する情報をアクセス許可リストから除外する構成を説明したが、「アクセス許可リストから情報を除外する」とは、当該サブシステムに関する情報をアクセス許可リストから削除して全く含ませない場合のほか、例えば当該サブシステムに関する情報に除外フラグを付する等によって、当該サブシステムの情報が、アクセスを許可するサブシステムの情報から除外されていることを実質的に示す場合を含む。
上記クライアント端末情報、中継サーバ情報、中継グループ情報、ルーティンググループ情報等は、図面を参照して説明する際にXML形式のデータとして説明したが、上記各情報を格納する形式はこれに限定されず、適宜の形式で各情報を格納することができる。