次に発明の実施の形態について説明する。図1は、本発明の一実施形態に係る中継通信システムの全体構成を示す説明図である。
本実施形態の中継通信システムは、装置又は機械の遠隔保守を目的として構築された遠隔保守システムであり、コールセンターと、前記装置又は機械の設置先(客先工場)と、サービスマン派遣先と、の3拠点を、インターネットを介して接続するものである。
なお、コールセンターとは、客先工場に導入した装置又は機械の保守を行うためのサービス拠点であり、例えば前記装置又は機械の製造元メーカーに設置される。サービスマン派遣先はサービスマンが派遣される場所であり、遠隔保守サービスを提供するための拠点としてコールセンターとは別に設置される。本実施形態の中継通信システムは、客先工場の装置又は機械を、サービスマン派遣先に待機しているサービスマンがインターネットを介して遠隔保守する、といった状況を想定して構築されている。
図1に示すように、中継通信システムは、WANに接続された複数のLAN91〜93で構成されている。WAN(Wide Area Network)は、異なるLANを相互に接続するネットワークである。本実施形態ではWANとしてインターネットが使用されている。LAN(Local Area Network)は、限定された場所で構築されるネットワークである。LANは複数存在し、互いに物理的に離れた場所に構築されている。
LAN(コールセンターLAN)91はコールセンターに構築され、LAN(派遣先LAN)92はサービスマン派遣先に構築され、LAN(客先LAN)93は客先工場に構築されている。これら3つのLAN91,92,93は、グローバルなネットワークであるインターネットにそれぞれ接続されている。
また、LAN91〜93には、それぞれ中継サーバ1が設置されている。以下の説明において、各LANに配置される中継サーバ1を区別するために、LAN91に配置された中継サーバ1のことをコールセンターサーバ(relay server 1)R1と呼ぶことがある。また、LAN92に配置された中継サーバ1のことを派遣先サーバ(relay server 2)R2と呼び、LAN93に配置された中継サーバ1のことを客先サーバ(relay server 3)R3と呼ぶことがある。
コールセンターサーバR1には、中継通信を行うための各種の設定等を行うクライアント端末5がLAN91を介して接続されている。派遣先サーバR2には、サービスマンが遠隔保守を行う際に直接操作するクライアント端末5がLAN92を介して接続されている。
客先工場には、サービスマンが遠隔保守を行う対象であるクライアント端末5が配置されている。この客先工場のクライアント端末5そのものが製造元メーカーが製造した装置又は機械であることもあれば、客先工場のクライアント端末5は装置又は機械を制御するための制御端末に過ぎない場合もある。何れの場合であっても、サービスマンは、この客先工場のクライアント端末5にアクセスすることにより、遠隔保守サービスを提供する。客先工場に配置されるクライアント端末5は、LAN93を介して客先サーバR3に接続されている。
それぞれのLAN91〜93に接続されるクライアント端末5はユーザが直接操作できる端末であり、例えばユーザによって日々の業務に使用されるパーソナルコンピュータ(PC)等が該当する。従って、LAN内には通常多数のクライアント端末5が存在する。各クライアント端末5には、同一のLANの中で一意に管理されたプライベートIPアドレスが付与されている。
なお、図1に図示されているコールセンターサーバR1、派遣先サーバR2及び客先サーバR3以外にも、物理的に離れた場所にLANが構築されており、当該LANに中継サーバ1が配置されている。これらの中継サーバ1は、外部サーバ2にインターネットを介して複数接続されている。
より具体的には、図1で示すサービスマン派遣先にはLAN92が設置されているが、これ以外にも図示しない派遣先が幾つか存在する。そして、図示されない派遣先においてもそれぞれLANが構築されるとともに、当該LANにも、派遣先サーバとしての中継サーバ1が(図1のLAN92の場合と同様に)接続される。また、図1で示す客先工場にはLAN93が設置されているが、これ以外にも図示しない客先工場(保守対象の機械又は装置が設置されている客先)が存在する。そして、図示されない客先工場にもそれぞれLANが設置されるとともに、当該LANにも、客先サーバとしての中継サーバ1が(図1のLAN93の場合と同様に)接続されている。
そして、本実施形態においては、客先サーバ(中継サーバ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〜93に配置される中継サーバ1の構成について説明する。LAN91〜93に配置される各中継サーバ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と、アクセス許可情報データベース513と、通信管理情報データベース515と、通信内容情報データベース516と、を主要な構成要素として備えている。
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からの通信を許可している。
前記制御部503は、例えば、派遣先サーバR2から接続要求があった場合は、アクセス許可情報データベース513に登録されている情報に基づいてアクセス許可リストを作成し、当該派遣先サーバR2に送信する。このアクセス許可リストは、派遣先サーバR2からの通信が許可されている中継サーバ1、及び当該通信条件を示すリストである。
なお、制御部503は、アクセス許可リストを作成せずに、アクセス許可情報データベース513に登録されている情報を派遣先サーバR2に送信しても良い。派遣先サーバR2は、この情報に対して適宜の処理を行うことで、自らが通信可能な客先サーバを把握することができる。
通信管理情報データベース(接続管理情報記憶部)515は、客先サーバと派遣先サーバの接続時間及び接続状況等を管理するデータベースである。
通信管理情報データベース515について、図8を参照して具体的に説明する。図8は、通信管理情報データベース515の内容を示した表である。図8の表において、それぞれの行が、中継サーバ1間に確立されたメディアセッションを示している。activeの列にはアクセスを要求した側の中継サーバ1が、passiveの列にはアクセスを要求された側の中継サーバ1が、それぞれ記載されている。また、start−timeの列にはメディアセッションの開始時刻が、end−timeの列にはメディアセッションの終了時刻が記載されている。なお、メディアセッションが継続中の場合、end−timeの列には「connecting」と記録されている。
通信内容情報データベース(通信内容情報記憶部)516は、派遣先サーバと客先サーバとが通信中にやり取りした情報、及びその関連情報を記憶するデータベースである。
派遣先サーバR2及び客先サーバR3は、LANインタフェースと、WANインタフェースと、制御部と、を備えている。派遣先サーバR2及び客先サーバR3の構成は、図3に示すコールセンターサーバR1の構成からアクセス許可情報データベース513及び通信管理情報データベース515を省略した構成にほぼ相当しているので、各部の構成の説明は省略する。
次に、本実施形態の中継通信システムにおけるパケットのルーティング制御について説明する。本実施形態においては、遠隔地のLANに属するクライアント端末5同士で、WANを意識することなく相互に通信可能とするために、アプリケーション層でパケットのルーティング処理を行うことが可能に構成されている。以下、図9を参照して説明する。なお、以下の説明において、各クライアント端末5を区別するため、符号の末尾にアルファベットを付して、クライアント端末5a、クライアント端末5b・・・のように表示する場合がある。
以下の説明では、サービスマンが客先工場のクライアント端末5を遠隔保守する場合を想定し、派遣先LAN92と客先LAN93との間でパケットのルーティングを行う場合について説明する。なお、以下のルーティングに関する説明において、派遣先サーバR2と客先サーバR3との間には、既にメディアセッションが確立されているものとする。派遣先サーバR2と客先サーバR3との間でメディアセッションを確立するための処理については、後述する。
本実施形態の中継通信システムにおいて、WANを介して互いに接続されたLAN91〜93には、それぞれプライベートIPアドレスが割り振られている。なお、各プライベートアドレスは、中継通信システムの中で一意に決まるように管理されている。例として図5に示すように、派遣先LAN92のアドレスは「172.16.1.0/24」、客先LAN93のアドレスは「172.30.2.0/24」である場合を想定して説明する。
本実施形態の中継通信システムにおいて、前記アプリケーション層でのパケットのルーティングを実現するため、ルーティングの対象となるLANには、ルーティング装置として機能できる中継サーバ1又はクライアント端末5が少なくとも1つ用意されている。例えば本実施形態の場合、派遣先LAN92内では派遣先サーバR2が、客先LAN93内ではクライアント端末5dが、それぞれルーティング装置として機能できるものとする。
本実施形態の中継通信システムにおいて、パケットのルーティングを行う際には、まず、ルーティング可能なLANの検索を行う。具体的には、何れかのクライアント端末5から中継サーバ1に対して、ルーティング可能LAN検索コマンド(以下、単にLAN検索コマンド)を送信する。以下では、具体的に、クライアント端末5bが、派遣先サーバR2に対してルーティング可能LAN検索コマンドを送信したとして説明する。
ここで、「ルーティング可能なLAN」とは、ルーティング装置としての中継サーバ1又はクライアント端末5を備えているLANのことである。なお、図9においては、派遣先LAN92及び客先LAN93は1つずつとして説明しているが、実際には、各中継サーバ1には複数のLANが接続され得るし、それぞれの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検索結果情報の例を、図10に示す。LAN検索結果情報においては、routing_networkタグを親要素とする子要素のnetworkタグが記述されている。各networkタグには、ルーティング可能なLANのプライベートIPアドレス情報(「addr」)が記載されている。このように、LAN検索コマンドの送信元のクライアント端末において、中継通信システムの中でルーティング可能なLANのプライベートIPアドレスを特定することができる。例えば本実施形態では、図10に示すように、派遣先LAN92(addr=“172.16.1.0/24”)及び客先LAN93(addr=“172.30.2.0/24”)が、ルーティング可能なLANとして特定される。
次に、ルーティング可能なLANを特定したクライアント端末5bにおいて、ルーティング経路の探索(より詳細に言うと、ルーティングポイントの特定)が行われる。当該クライアント端末5bは、ルーティング可能なLANの中からルーティング対象LANを指定したうえで、ルーティング経路探索コマンド(以下、単に経路探索コマンド)を派遣先サーバR2に送信する。以下、ルーティング対象LANとして、派遣先LAN92と客先LAN93が指定された場合について説明する。
経路探索コマンドを受信した派遣先サーバR2は、中継グループ情報を参照することにより、中継グループを構成する他の中継サーバ1(コールセンターサーバR1、客先サーバR3)に対して経路探索コマンドを転送する。
そして、経路探索コマンドを受信した各中継サーバ1(コールセンターサーバR1、派遣先サーバR2、客先サーバR3)は、クライアント端末情報データベース511に登録された各クライアント端末5と通信することにより、自身が接続されているLANの中に、ルーティング対象LANとして指定されたLANのルーティング装置として機能できるクライアント端末5が存在するか否かを調べる。
例えば本実施形態の場合、クライアント端末5dは、ルーティング対象LANとして指定されたLAN(客先LAN93)のルーティング装置として機能できる。このようにルーティング対象LANのルーティング装置として機能できるクライアント端末5dは、指定されたLANの間(派遣先LAN92と客先LAN93の間)でパケットをルーティングする際のルーティングポイントとして機能することができる。ルーティングポイントとして機能できるクライアント端末5dが見つかった場合、客先サーバR3は、当該客先LAN93のプライベートIPアドレスと、当該クライアント端末5dの識別情報と、を関連付けた経路探索応答情報を生成する。
一方、ルーティング対象LANとして指定されたLANのルーティング装置として中継サーバ1自身が機能できる場合、当該中継サーバ1は、自身がルーティングポイントとして機能できる。例えば本実施形態では、派遣先サーバR2は、ルーティング対象LANとして指定されたLAN(派遣先LAN92)のルーティング装置として機能できる。このような場合、当該派遣先サーバR2は、当該派遣先LAN92のプライベートIPアドレスと、自身の識別情報と、を関連付けた経路探索応答情報を生成する。
続いて、客先サーバR3は、生成した経路探索応答情報を派遣先サーバR2へ送信する。派遣先サーバR2においては、客先サーバR3から受信した経路探索応答情報と、自身が生成した経路探索応答情報と、を合成した合成経路探索応答情報を生成する。派遣先サーバR2は、当該合成経路探索応答情報を、クライアント端末5bに転送する。クライアント端末5bには、この合成経路探索応答情報に基づいて、経路探索結果情報が生成されて記憶される。
クライアント端末5bに記憶される経路探索結果情報の例を、図11に示す。経路探索結果情報においては、routing_networkタグを親要素とする子要素のnetworkタグが記述されている。各networkタグには、ルーティング可能なLANのプライベートIPアドレス情報(「addr」)と、ルーティングポイントとして機能できる装置の識別情報(「router」)と、が関連付けられて記載されている。このように、ルーティング対象LANとして指定したLANの間でのルーティング経路の探索(即ちルーティングポイントの特定)を実現することができる。
次に、ルーティングセッションの確立を行う。ルーティングセッションとは、本実施形態の中継通信システムでパケットのルーティング制御に用いられるメディアセッションである。
ルーティングセッションを確立するため、クライアント端末5bは、ルーティングセッションで用いるルーティングポイントを指定する情報を、派遣先サーバR2へ送信する。派遣先サーバR2においては、上記経路探索結果情報に基づいて、ルーティンググループ情報が生成される。ルーティンググループ情報は、中継通信システムを利用したルーティング制御を実行するためのルーティング設定情報であり、ルーティンググループ情報データベース522に格納される。
ルーティンググループ情報データベース522に格納されるルーティンググループ情報の例を、図12に示す。ルーティンググループ情報において、networkタグには、ルーティング対象LANのローカルIPアドレスと、ルーティングポイントと使用する装置の識別情報と、が関連付けられて記述されている。routing_sessionタグを親要素とする子要素のsessionタグには、当該ルーティングセッションの始点(「start」)と終点(「end」)が記述されている。
続いて、派遣先サーバR2は、ルーティンググループ情報を、次のルーティングポイントであるクライアント端末5dに転送する。これにより、各ルーティングポイントにおいて、ルーティング対象LANの間のルーティング経路に関する情報が共有される。
各ルーティングポイントが前記ルーティンググループ情報を受信した後、当該ルーティングポイントの間で、複数のメディアセッションからなるルーティングセッションが確立される。具体的には、客先サーバR3とクライアント端末5dとの間でメディアセッションが確立される。また前述のように、派遣先サーバR2と客先サーバR3との間には、既にメディアセッションが確立されている。この2つのメディアセッションにより、ルーティングポイント同士(派遣先サーバR2とクライアント端末5d)を結ぶルーティングセッションが構成される。
次に、派遣先LAN92内の端末5aから、客先LAN93内のクライアント端末5fに対して、ルーティングセッションを介してパケットを送信する場合について説明する。この場合、クライアント端末5aは、クライアント端末5fのプライベートIPアドレス(172.30.2.3)を指定したパケットを作成する。続いて、クライアント端末5aは、当該クライアント端末5a自身が属しているLAN(派遣先LAN92)のルーティングポイントである派遣先サーバR2へ、パケットを転送する。
ルーティングポイントとしての派遣先サーバR2は、ルーティングの対象となるパケットを受信した場合、宛先のプライベートIPアドレス(172.30.2.3)に基づいて、当該パケットを届けるべきLANを特定する。今回の説明では、パケットの届け先のLANは客先LAN93(プライベートIPアドレスは172.30.2.0/24)となる。次に、派遣先サーバR2は、前記ルーティンググループ情報を参照することにより、客先LAN93との間で有効なルーティングセッションが確立されているか否かを判定する。例えば現在説明中の例では、ルーティンググループ情報を参照することにより、客先LAN93との間に既にルーティングセッションが確立されていることがわかるので、当該ルーティングセッションを用いてパケットの送信を行えば良いことになる。なお、ここでルーティングセッションが確立されていない場合は、ルーティングセッションを介したパケットの送信が不可能であるためエラーとなる。
パケットの送信に使用するルーティングセッションを特定した後、ルーティングポイントとしての派遣先サーバR2は、クライアント端末5aから受信したパケットを、ルーティングセッションを介して送り出す。これにより、前記パケットは、次のルーティングポイントであるクライアント端末5dに受信される。
次のルーティングポイントであるクライアント端末5dは、宛先として指定されたプライベートIPアドレス(172.30.2.3)に対して、当該パケットを転送する。これにより、クライアント端末5fにパケットが届けられる。なお、逆方向への通信(クライアント端末5fからクライアント端末5aへパケットを送信する場合)も同様に、ルーティングセッションを介してパケットのルーティングを行うことができる。
以上で説明したルーティング関係の処理、即ち、ルーティング可能なLANの検索、ルーティング経路の探索等の処理などは、アプリケーション層で行われる。このように、本実施形態では、アプリケーション層のルーティングセッションで、ルーティング対象のデータを流すように構成されている。従って、以上で説明したルーティングは、通常のIPルーティングとは異なっている。
このようにアプリケーション層でルーティングを行うことにより、WANを意識することなく遠隔地のLAN同士がプライベートIPアドレスを利用して相互に通信できるだけでなく、ルーティング経路等を中継通信システムの構成に応じて柔軟に構築できる。なお、ルーティングセッションを確立するまでもない単発的な情報の送受信を行う場合には、上記のルーティングを行わない通常の方法でパケットを送受信しても良いことは勿論である。
本実施形態において、サービスマン派遣先のサービスマンは、以上で説明したルーティングセッションを介して、客先工場のクライアント端末5の遠隔保守を行うことができる。ところで、上記のようにして確立されたルーティングセッションには、中継サーバ1同士のメディアセッションが含まれている。例えば上記の例では、クライアント端末5aとクライアント端末5fとの間でパケットの送受信を行う際のルーティングセッションには、派遣先サーバR2と客先サーバR3との間に確立されたメディアセッションが含まれている。従って、サービスマンは、派遣先サーバR2と客先サーバR3との間に確立されたメディアセッションを介して、遠隔保守を行うと言うことができる。なお、以下の説明においては、サービスマンが遠隔保守を行う場合であっても、ルーティングセッション全体の説明は省略し、派遣先サーバR2と客先サーバR3との間に確立されたメディアセッションの部分のみを説明する場合がある。
このように、派遣先サーバR2と客先サーバR3との間にメディアセッションが確立されると、客先サーバR3のクライアント端末5に対して、稼動状況の確認及びソフトウェアの更新等のリモートメンテナンス作業を行うことができる。また、クライアント端末5に不具合が生じた場合は、復旧用のアプリケーションを適用する等の復旧作業を行うこともできる。
次に、図13を参照して本実施形態の通信処理を説明する。図13は、保守作業の前半部の通信処理を示すシーケンス図である。
リモートメンテナンス等の遠隔保守を行う場合、サービスマンは、クライアント端末5を操作し、派遣先サーバR2を介して、コールセンターサーバR1を送信先としたアクセス許可リスト要求(GETメソッド)を送信する(シーケンス番号1)。
このように、本実施形態ではクライアント端末5から各中継サーバ1を介して要求等が送信されることがあるが、以下の説明においては、クライアント端末5を操作する処理の具体的な説明を省略することがある。
また、このアクセス許可リスト要求では、送信先のコールセンターサーバR1のアカウントが指定されている。外部サーバ2は、中継サーバアカウント情報データベース203を参照することでコールセンターサーバR1のグローバルIPアドレスを取得し、派遣先サーバR2からの上記要求をコールセンターサーバR1に中継する。
以上のように、本実施形態の各中継サーバ1間の通信は外部サーバ2を経由して行われ、以下においても同様である。従って、以下の説明では、外部サーバ2を経由する通信処理の具体的な説明を省略することがある。
上記のアクセス許可リスト要求を受信したコールセンターサーバR1は、アクセス許可情報データベース513に基づいて、派遣先サーバR2がアクセス可能な中継サーバを示したアクセス許可リストを作成する。そして、コールセンターサーバR1は、このアクセス許可リストを派遣先サーバR2へ送信する。
そして、サービスマンは、このアクセス許可リストに基づいて、自らが通信すべき客先サーバを選択する。本実施形態においては、この接続先の客先サーバとして客先サーバR3が選択されたとする。
しかし、前述のとおり、客先サーバR3はコールセンターサーバR1以外からの通信を通常は受け付けていない。この通信を開始するためには、コールセンターサーバR1から客先サーバR3へアクセス元(派遣先サーバR2)が通知される必要がある。そのため、サービスマンは、派遣先サーバR2を介して、アクセス先通知(Accessメソッド)をコールセンターサーバR1に対して送信する(シーケンス番号2)。
なお、客先サーバの選択及びアクセス先の通知は、予め設定された方法によって、派遣先サーバR2又はクライアント端末5が自動的に行う構成にしても良い。
この通知を受信したコールセンターサーバR1は、派遣先サーバR2が客先サーバR3に対する通信を希望している旨を通信管理情報データベース515に格納する。そして、コールセンターサーバR1は、客先サーバR3へ、派遣先サーバR2に対するアクセス許可要求(ACCESS_PERMITメソッド)を送信する(シーケンス番号2.2)。
このアクセス許可要求を受信した客先サーバR3は、派遣先サーバR2からの通信を受け付ける処理を行うとともに、コールセンターサーバR1に対してOKレスポンスを返す。コールセンターサーバR1は、客先サーバR3からOKレスポンスを受信した後、前記アクセス許可要求に対するOKレスポンスを派遣先サーバR2に対して返す。
派遣先サーバR2は、このOKレスポンスを受けると、客先サーバR3に対して接続要求(INVITEメソッド)を送信する(シーケンス番号3)。これに対するOKレスポンスを受信した派遣先サーバR2は、客先サーバR3に対して、INVITEに対する最終レスポンス(ACKメソッド)を送信する(シーケンス番号4)。そして、客先サーバR3が派遣先サーバR2に対してMediaSessionコマンドを送信する。このコマンドによって、派遣先サーバR2と客先サーバR3との間に通信経路(ルーティングセッション)が確立される(シーケンス番号5)。
通信経路が確立されると、派遣先サーバR2は、コールセンターサーバR1に対して、ルーティングセッションの確立を通知する(NOTIFY_ESTABLISHMENTメソッド、シーケンス番号5.1)。そして、コールセンターサーバR1は、派遣先サーバR2が客先サーバR3に対して中継通信を行っている旨を通信管理情報データベース515へ格納し、ルーティングセッション確立の通知に対するOKレスポンスを派遣先サーバR2に対して返す。
そして、サービスマンは、派遣先サーバR2を介して、客先サーバR3(又は、客先サーバR3に接続されているクライアント端末5)に対して保守作業を行う。このような保守作業においては、派遣先サーバR2から客先サーバR3に対してメンテナンス等に用いられる情報が送信されるだけでなく、客先サーバR3から派遣先サーバR2に対してもサービスマンからの要求に答える形で情報が送信されている。例えば、サービスマンが、客先サーバR3等に対して稼動状況を要求し、客先サーバR3がその稼動状況レポートを送信すること等が考えられる。
ところで、本実施形態のコールセンターサーバR1は、派遣先サーバと客先サーバとの間でやり取りされた情報及びこの情報の概略を示す情報を、通信内容情報として受信して通信内容情報データベース516に記憶している。この概略を示す情報としては様々な種類があり、例えば、通信経路を介してやり取りされた情報の、保守内容の概略を示す情報、データサイズを示す情報、等がある。以下の説明では、「実際にやり取りされた情報の概略を示す情報」を「通信概略情報」と称することがある。
また、コールセンターサーバR1は、通信管理情報データベース515に記憶されている通信管理情報に基づいて、通信内容情報を要求する対象の中継サーバ1を選択している。通信管理情報からは、前述のとおり、どの派遣先サーバがどの客先サーバと接続したか、又は接続しているかを知ることができる。
どの中継サーバ1から通信内容情報及び通信概略情報を受信するかは、コールセンターサーバR1が任意に選択することができる。ただし、この選択は、一部の中継サーバ1に負担が集中しないように行われることが好ましい。以下では、通信内容情報を要求する対象の中継サーバ1として、接続中の派遣先サーバR2及び客先サーバR3が選択され、特に、通信概略情報は派遣先サーバR2から受信し、実際にやり取りされた情報は客先サーバR3から受信するようにそれぞれ選択された場合で説明する。
以下、コールセンターサーバR1がこの通信内容情報を受信する以降の通信処理について図14を参照して具体的に説明する。図14は、保守作業の後半部の通信処理を示すシーケンス図である。
初めに、コールセンターサーバR1は、派遣先サーバR2に対して、通信概略情報(session info)を指定して、要求(GETメソッド)を送信する(シーケンス番号6)。この要求では、通信概略情報の種類についても指定されており、要求を受信した派遣先サーバR2は、この種類に対応した通信概略情報をコールセンターサーバR1に対して送信する。なお、図14においては通信概略情報の要求が1回分しか描かれていないが、実際は必要に応じた回数の要求が行われている。
例えば、この通信概略情報の種類として保守内容の概略が指定され、どのサービスマンが客先工場のクライアント端末5eに対してどのようなアプリケーションを適用して保守作業を行ったか等の情報が得られたとする。この情報を通信内容情報データベース516に記憶しておくことで、同様の保守作業を同一人に行わせる等、保守作業の効率化を実現することができる。更に、この情報と、クライアント端末5eに適用可能なアプリケーションのリストと、を比較することで、適切なアプリケーションを適用しているか否かを判断することができる。
なお、上記の分析は、本実施形態ではコールセンターサーバR1が自動的に行う構成となっているが、コールセンターにおいて作業者が判断する構成にすることもできる。
以上のような分析が行われ、例えば異常の発生が疑われる場合等、より詳細な情報を取得する必要が生じると、コールセンターサーバR1と客先サーバR3との間に通信経路を確立する処理が行われる(シーケンス番号7〜9)。なお、この処理は、派遣先サーバR2と客先サーバR3との間に通信経路が確立される処理と同様であるため、説明を省略する。
コールセンターサーバR1と客先サーバR3との間に通信経路が確立されると、客先サーバR3は、派遣先サーバR2から受信した情報(receiveData)及び、派遣先サーバR2へ送信した情報(sendData)、をコールセンターサーバR1へ同時進行的に送信する(シーケンス番号10,11)。具体的には、客先サーバR3は、派遣先サーバR2から情報を受信したときは、同時にそのコピーをコールセンターサーバR1へ送信する。また、客先サーバR3は、派遣先サーバR2へ情報を送信するときは、同時にコールセンターサーバR1に対しても、その情報のコピーを送信している。
そして、コールセンターの作業者は、得られた情報に基づいて、例えば異常が本当に発生しているか等の判定、及び保守作業に用いたデータのバックアップ等を行う。ここで、通信詳細情報をこれ以上受信する必要がないと判断されると、客先サーバR3に対し通信切断要求(BYEメソッド)を送信し、これによって、確立されていた通信経路が切断される(シーケンス番号12)。以上により通信が終了する。
そして、サービスマンは、保守作業が終了した後に、派遣先サーバR2を介して、客先サーバR3に対し通信切断要求(BYEメソッド)を送信し、これによって、確立されていた通信経路が切断される(シーケンス番号13)。そして、派遣先サーバR2は、コールセンターサーバR1に対して、ルーティングセッションの終了を通知する(NOTIFY_TERMINATIONメソッド、シーケンス番号13.1)。これを受信したコールセンターサーバR1は、派遣先サーバR2と客先サーバR3との間の通信経路が切断された旨を通信管理情報データベース515へ格納する。
以上に説明したように、本実施形態のコールセンターサーバR1は、通信管理情報データベース515と、通信内容情報データベース516と、制御部503と、を備える。通信管理情報データベース515は、中継サーバ1同士の接続状況を記憶する。通信内容情報データベース516は、中継サーバ1同士の通信中にやり取りされた通信内容に関する情報である通信内容情報を記憶する。制御部503は、通信管理情報データベース515に記憶された接続状況に基づいて派遣先サーバR2及び客先サーバR3を選択して、通信内容情報を受信し、通信内容情報データベース516に記憶する。
これにより、コールセンターサーバR1が中継サーバ1同士の通信内容情報を記憶するため、コールセンターサーバR1が通信内容情報を一元的に管理することができる。そのため、通信内容情報データベース516の内容に基づいて、客先工場の状態に応じた適切なサービスマンを選択することができる。更に、サービスマン及び客先工場からも、それぞれの中継サーバ1を通じて通信内容情報データベース516を利用することができる。また、通信内容情報データベース516に記憶された通信内容に基づいて、客先サーバR3及びそのクライアント端末5の稼動状況を分析することができる。そのため、異常が発生した場合及び不適切な通信が行われた場合においても、その原因を容易に究明することができる。
また、本実施形態のコールセンターサーバR1においては、制御部503は、互いに通信する中継サーバ1のうち少なくとも何れかに対して、通信内容に関する情報のうち必要な情報を通信内容情報として要求する。そして、制御部503は、当該通信内容情報を受信して、通信内容情報データベース516に記憶する。
これにより、コールセンターサーバR1は、自機にとって都合の良いタイミングで、通信内容情報を取得することができる。また、中継サーバ1の管理に必要な情報は、当該中継サーバ1をどのように管理するかに応じて異なるが、通信内容に関する情報のうち必要な情報を選択して要求することで、様々な管理内容に柔軟に対応して管理を行うことができる。
また、本実施形態のコールセンターサーバR1は、派遣先サーバR2と客先サーバR3とが通信している間に、通信内容情報を受信する。
これにより、コールセンターサーバR1は、派遣先サーバR2及び客先サーバR3で適切な通信が行われているか否かを、当該通信中に判断することができる。そのため、不適切な通信が行われた場合においても、当該通信中に検知することができる。
また、本実施形態のコールセンターサーバR1においては、制御部503は、派遣先サーバR2と客先サーバR3との通信中に、客先サーバR3と通信経路を確立し、通信内容情報を同時進行的に受信する。
これにより、中継サーバ同士で、不必要な情報の送受信が行われる等の異常が発生したことを、コールセンターサーバR1側で迅速に知ることができる。また、客先サーバR3としては、通信内容情報の送信は、派遣先サーバR2と通信するごとにコールセンターサーバR1に同時進行的に行えば足りる。従って、客先サーバR3は、派遣先サーバR2とやり取りされた通信内容情報のうち不必要になった通信内容情報を素早く破棄することができる。
次に、上記実施形態の変形例を説明する。図15は、変形例の通信処理を示すシーケンス図である。なお、図15において、シーケンス番号11からシーケンス番号16.1までは、図13及び図14と同様であるため、説明を省略する。
上記実施形態においては、派遣先サーバR2と客先サーバR3との間に通信経路が確立されている間に通信内容情報の受信が行われているが、本変形例においては、この通信経路が切断されてから通信内容情報の受信が行われている。
具体的には、派遣先サーバR2から通信経路が切断された旨が通知されると、コールセンターサーバR1は、この通知に対するOKレスポンスを返す。そして、本変形例の派遣先サーバR2は、客先サーバR3から受信した情報(receiveData)、及び客先サーバR3へ送信した情報(sendData)を、コールセンターサーバR1へ送信する(シーケンス番号17.1,17.2)。
そして、コールセンターサーバR1は、通信内容情報の受信が完了した後に、派遣先サーバR2に対して、受信が完了した旨のOKレスポンスを返す。
なお、本変形例における通信内容情報の送信時には、派遣先サーバR2と客先サーバR3との間の通信経路が切断されているため、派遣先サーバR2と客先サーバR3との間でこれ以上情報のやり取りが行われることはない。そのため、シーケンス番号17.1及び17.2で送受信される情報は、派遣先サーバR2と客先サーバR3との間に通信経路が確立されている間に送受信された情報を全て含んでいる。
従って、本変形例で送信される通信内容情報は、データサイズが大きくなり、この情報を記憶し続けることは派遣先サーバR2にとって負担になってしまう。そのため、本変形例では、コールセンターサーバR1からの要求の送信に対応する構成ではなく、派遣先サーバR2から通信内容情報の送信を行う構成になっている。
なお、派遣先サーバR2に代えて、客先サーバR3から通信内容情報を受信することもできる。どちらの中継サーバ1から受信を行うかは、コールセンターサーバR1によって予め選択され、選択された中継サーバ1に対して、その旨の通知がされている。
以上に示したように、本変形例のコールセンターサーバR1は、派遣先サーバR2と客先サーバR3との通信が終了した後に、通信内容情報を受信する。
これにより、コールセンターサーバR1は、通信中の派遣先サーバR2及び客先サーバR3に負荷を掛けずに通信内容情報を受信することができる。
以上に本発明の実施形態及び変形例を説明したが、上記の構成は更に以下のように変更することができる。
上記クライアント端末情報、中継サーバ情報、中継グループ情報、ルーティンググループ情報等は、図面を参照して説明する際にXML形式のデータとして説明したが、上記各情報を格納する形式はこれに限定されず、適宜の形式で各情報を格納することができる。
上記実施形態では、図14のシーケンス番号6において通信概略情報が要求されるように構成されているが、この要求の対象として、概略ではなく、実際にやり取りされた情報を要求しても良い。この場合、リアルタイムで受信することは通信量等の観点から適切でない場合があるので、特定の時間帯を指定して、情報の要求はその時間帯にのみ行うようにしても良い。
上記実施形態及び変形例では、コールセンターサーバR1は、派遣先サーバR2と客先サーバR3とでやり取りされた情報及びその関連情報を受信したが、その他の中継サーバ1間でやり取りされた情報に対しても同様に受信することができる。
上記変形例では、図15のシーケンス番号17.1及び17.2において、コールセンターサーバR1は、客先サーバR3と派遣先サーバR2との間でやり取りされた情報を全て受信している。しかし、データサイズ及び情報の内容等に応じて、情報を適宜選択して受信しても良い。