説明

中継通信システムおよび中継サーバ

【課題】互いに通信可能な複数の中継サーバを有する中継通信システムを構築する上で、仮想ネットワークを動的に作成する。
【解決手段】中継通信システムにおいてVLANグループを構成するVLANクライアント端末間でVLANグループ情報を共有させる。また、VLANグループ情報に基づきVLANクライアント端末のうち起動可能なVLANクライアント端末としてのVLANデバイス間においてVLANセッションを確立し、さらにVLANグループを起動する際に作成した仮想アドレス情報をVLANデバイス間で共有する処理を行う。さらに、VLANグループの起動が指示された場合に、VLANグループがすでに起動中であれば、起動指示の送信元である途中参加VLANクライアント端末に対してVLANグループへの途中参加信号を送信し、途中参加VLANクライアント端末に関する未確立のVLANセッションを確立する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、互いに通信可能な複数の中継サーバと、複数のクライアント端末と、クライアント端末を中継サーバに接続するLANとを有する中継通信システムに関し、さらに中継通信システムに用いられる中継サーバに関する。
【背景技術】
【0002】
遠隔のLANに接続されるクライアント端末が、WANを超えて通信することがある。VPN(Virtual Private Network)は、遠隔のLANが直接に接続されているかのようなネットワークを構築できる。しかし、VPNは、拡張性および柔軟性のあるネットワークを構築することが困難である。
【0003】
特許文献1が開示する中継通信システムは、VPNと同様に、遠隔のLANが直接に接続されているかのようなネットワークを構築できる。また、中継通信システムは、VPNと異なり、拡張性および柔軟性のあるネットワークを構築することが容易である。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2008−129991号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1が開示する中継通信システムにおいて、LANおよびクライアント端末の増減状態および接続状態が変化することがある。しかし、特許文献1では、クライアント端末および中継サーバが通信先を指定するにあたり、装置の増減状態および接続状態をリアルタイムに確認する具体的な手段は開示されていない。また、クライアント端末および中継サーバ間における仮想ネットワークを動的に構築するための具体的な手段は開示されていない。
【0006】
本発明の目的は、互いに通信可能な複数の中継サーバを有する中継通信システムを構築する上で、仮想ネットワークを動的に作成することである。
【課題を解決するための手段】
【0007】
以下に、課題を解決するための手段として複数の態様を説明する。これら態様は、必要に応じて任意に組み合せることができる。
【0008】
本発明の一見地に係る中継通信システムは、第1ネットワークと、第2ネットワークと、第1ネットワークに接続される第1中継サーバと、第2ネットワークに接続され、第3ネットワークを介して第1中継サーバと通信可能な第2中継サーバと、第1中継サーバと第1ネットワークを介して接続される一以上のクライアント端末と、第2中継サーバと第2ネットワークを介して接続される一以上のクライアント端末と、を備える。
第1中継サーバ、第2中継サーバ、第1中継サーバに接続される一以上のクライアント端末および第2中継サーバに接続される一以上のクライアント端末は、中継グループ情報格納部と、中継サーバ情報格納部と、情報共有部と、VLANグループ情報制御部と、を有する。中継グループ情報格納部には、第1中継サーバ、第2中継サーバ、第1中継サーバに接続される一以上のクライアント端末および第2中継サーバに接続される一以上のクライアント端末が中継グループを構成することを示す中継グループ情報が格納される。中継サーバ情報格納部には、第1中継サーバの起動情報と、第2中継サーバの起動情報と、第1中継サーバに接続される一以上のクライアント端末の起動・登録情報と、第2中継サーバに接続される一以上のクライアント端末の起動・登録情報と、を含む中継サーバ情報が格納される。情報共有部は、中継グループ情報および中継サーバ情報を、第1中継サーバ、第2中継サーバ、第1中継サーバに接続される一以上のクライアント端末および第2中継サーバに接続される一以上のクライアント端末の間で共有させる。VLANグループ情報制御部は、第1中継サーバに接続された一以上のクライアント端末および第2中継サーバに接続された一以上のクライアント端末のうち二以上のクライアント端末である中継グループにおいてVLANグループを構成するVLANクライアント端末間でVLANグループ情報を共有させる。VLANグループ情報は、VLANクライアント端末が接続された第1中継サーバの識別情報および第2中継サーバの識別情報を含むハブ情報と、第1中継サーバおよび第2中継サーバ間で確立されるセッションの接続側と被接続側を示すセッション情報と、VLANクライアント端末を識別する識別情報とを含む。
第1中継サーバおよび第2中継サーバは、VLANセッション制御部と、起動コマンド制御部とをさらに有する。VLANセッション制御部は、VLANグループの起動指示を受信した場合に、VLANグループが起動中でなければ、セッション情報に基づき第1中継サーバと第2中継サーバとの間にVLANセッションとしてのハブセッションを確立し、起動可能なVLANクライアント端末としてのVLANデバイスとVLANデバイスが接続された第1中継サーバまたは第2中継サーバとの間にVLANセッションとしてのデバイスセッションを確立する。起動コマンド制御部は、VLANグループの起動指示を受信した場合に、VLANグループが起動中であれば、起動指示の送信元である途中参加VLANクライアント端末に対してVLANグループへ途中参加を許可する途中参加信号を送信する。
第1中継サーバに接続される一以上のクライアント端末および第2中継サーバに接続される一以上のクライアント端末は、仮想アドレス制御部をさらに有する。仮想アドレス制御部は、自端末が途中参加VLANクライアント端末であって途中参加信号を受信した場合、起動中のVLANグループを構成するVLANデバイスに対して割り当てられた仮想アドレスを含む仮想アドレス情報に基づき作成した自端末用仮想アドレスを追加して仮想アドレス情報を更新する。そして、仮想アドレス制御部は、更新された仮想アドレス情報をVLANデバイスに対して送信する。
ここで、VLANセッション制御部は、途中参加VLANクライアント端末に関する未確立のVLANセッションをさらに確立する。また、途中参加VLANクライアント端末とVLANデバイスとは、更新された仮想アドレス情報と、ハブセッションおよびデバイスセッションを含む確立されたVLANセッションとを利用して通信する。
ここでは、VLANグループの起動の指示を送信した場合にVLANグループが起動中であっても、VLANクライアント端末は、起動中のVLANグループに途中参加できる。従って、VLANグループが重複して起動することを防止できる。
【0009】
起動コマンド制御部は、起動中のVLANグループのVLANデバイスに対して仮想アドレスが割り当てられているかどうかを判断し、仮想アドレスが割り当てられている場合に途中参加信号を途中参加VLANクライアント端末に対して送信してもよい。
仮想アドレス制御部は、仮想アドレス情報を参照して自端末仮想アドレスを作成可能かどうか判断し、仮想アドレスを作成できないと判断した場合、VLANグループへの途中参加の処理を終了してもよい。
【0010】
仮想アドレスは、仮想IPアドレスおよび仮想MACアドレスを含んでいてもよい。
【0011】
本発明の他の一見地に係る中継サーバは、第1ネットワークとして接続される第1中継サーバと通信可能であり、第2ネットワークに接続される第2中継サーバとして機能する中継サーバである。中継サーバは、中継グループ情報格納部と、中継サーバ情報格納部と、情報共有部と、VLANグループ情報制御部と、VLANセッション制御部と、起動コマンド制御部とを備える。中継グループ情報格納部には、第1中継サーバ、第2中継サーバ、第1中継サーバに接続される一以上のクライアント端末および第2中継サーバに接続される一以上のクライアント端末が中継グループを構成することを示す中継グループ情報が格納される。中継サーバ情報格納部には、第1中継サーバの起動情報と、第2中継サーバの起動情報と、第1中継サーバに接続される一以上のクライアント端末の起動・登録情報と、第2中継サーバに接続される一以上のクライアント端末の起動・登録情報と、を含む中継サーバ情報が格納される。情報共有部は、中継グループ情報および中継サーバ情報を、第1中継サーバ、第2中継サーバ、第1中継サーバに接続される一以上のクライアント端末、および第2中継サーバに接続される一以上のクライアント端末の間で共有させる。VLANグループ情報制御部は、第1中継サーバに接続された一以上のクライアント端末および第2中継サーバに接続された一以上のクライアント端末のうち二以上のクライアント端末である中継グループにおいてVLANグループを構成するVLANクライアント端末間でVLANグループ情報を共有させる。VLANグループ情報は、第1中継サーバの識別情報および第2中継サーバの識別情報を含むハブ情報と、第1中継サーバと第2中継サーバとの間で確立されるセッションの接続側と被接続側を示すセッション情報と、VLANクライアント端末を識別する識別情報とを含む。VLANセッション制御部は、VLANグループの起動指示を受信したとき、VLANグループが起動中でない場合には、セッション情報に基づき第1中継サーバとの間にVLANセッションとしてのハブセッションを確立し、自端末に接続された起動可能なVLANクライアント端末としてのVLANデバイスとの間にVLANセッションとしてのデバイスセッションを確立する。起動コマンド制御部は、VLANグループに関する起動指示を受信した場合に、VLANグループが起動中であれば、途中参加VLANクライアント端末に対してVLANグループへの途中参加信号を送信する。ここでVLANセッション制御部は、途中参加信号に対応して、起動中のVLANグループを構成するVLANクライアント端末のうち起動可能なVLANクライアント端末としてのVLANデバイスに対して割り当てられた仮想アドレスを含む仮想アドレス情報に対して途中参加VLANクライアント端末の仮想アドレスが追加されて更新された仮想アドレス情報を受信すれば、途中参加VLANクライアント端末に関する未確立のVLANセッションを確立する。また、途中参加VLANクライアント端末とVLANデバイスとは、仮想アドレス情報と、ハブセッションおよびデバイスセッションを含む確立されたVLANセッションとを利用して通信する。
【0012】
起動コマンド制御部は、起動中のVLANグループのVLANデバイスに対して仮想アドレスが割り当てられているかどうかを判断し、仮想アドレスが割り当てられている場合に途中参加信号を送信してもよい。
【0013】
仮想アドレスは、仮想IPアドレスおよび仮想MACアドレスを含んでいてもよい。
【発明の効果】
【0014】
本発明では、互いに通信可能な複数の中継サーバを有する中継通信システムを構築する上で、仮想ネットワークを動的に作成できる。
また、VLANグループの起動の指示を送信した場合にVLANグループが起動中であっても、VLANクライアント端末は、起動中のVLANグループに途中参加できる。従って、VLANグループが重複して起動することを防止できる。
【図面の簡単な説明】
【0015】
【図1】中継通信システムの全体構成を示す模式図。
【図2】第1中継サーバの構成を示すブロック図。
【図3】第1クライアント端末の構成を示すブロック図。
【図4】中継グループ情報の概略構成を示す図。
【図5】中継グループ情報の詳細構成を示す図。
【図6】中継サーバ情報の概略構成を示す図。
【図7】中継サーバ情報の詳細構成を示す図。
【図8】第1中継サーバに格納されたクライアント端末情報の概略構成を示す図。
【図9】第2中継サーバに格納されたクライアント端末情報の概略構成を示す図。
【図10】第3中継サーバに格納されたクライアント端末情報の概略構成を示す図。
【図11】VLANグループ情報の詳細構成を示す図。
【図12】仮想アドレス情報の詳細構成を示す図。
【図13】中継グループの構築に関わる処理の流れを示す図。
【図14】交換前の中継サーバ情報の詳細構成を示す図。
【図15】交換前の中継サーバ情報の詳細構成を示す図。
【図16】交換前の中継サーバ情報の詳細構成を示す図。
【図17】中継グループ情報および中継サーバ情報の共有に関わる処理の流れを示す図。
【図18】VLANグループ情報の作成処理を示すフローチャート。
【図19】VLANグループ情報の共有に関わる処理の流れを示す図。
【図20A】クライアント端末によるVLANセッションの確立処理を示すフローチャート(その1)。
【図20B】クライアント端末によるVLANセッションの確立処理を示すフローチャート(その2)。
【図21】VLANデバイスのIPアドレスとMACアドレスに関する第1抽出情報の一例を示す図。
【図22】第1抽出情報に自端末のIPアドレスおよびMACアドレスを追加した第2抽出情報の一例を示す図。
【図23A】初期化コマンドに対する中継サーバによる応答信号の送信処理を示すフローチャート(その1)。
【図23B】初期化コマンドに対する中継サーバによる応答信号の送信処理を示すフローチャート(その2)。
【図24】初期化コマンドを受信した中継サーバにおけるVLANセッションの確立処理を示すフローチャート。
【図25】途中参加コマンドを受信した中継サーバにおけるVLANセッションの確立処理を示すフローチャート。
【図26】VLANセッションの確立に関わる処理の流れの一例を示す図。
【発明を実施するための形態】
【0016】
1.本実施形態の概要
本実施形態における中継通信システムでは、ハブと同様の機能を実現する複数の中継サーバを介して、クライアント端末同士がWANを超えて互いに通信可能となる。
【0017】
2.中継通信システムの全体構成
以下、図面を参照しつつ、本発明の実施の形態について説明する。図1は、中継通信システムの全体構成を示す。中継通信システムは、第1LAN1と、第2LAN2と、第3LAN3と、WAN4とから構成される。第1LAN1、第2LAN2、第3LAN3は、遠隔に構築される小規模なネットワークである。WAN4は、インターネットなどの大規模なネットワークである。
この実施形態では、後に詳細に説明するが、第1LAN1の第1中継サーバAと、第2LAN2の第2中継サーバBと、第3LAN3の第3中継サーバCとが、中継グループとしての第1中継グループを構成している。
第1LAN1は、第4LAN6と第5LAN7とを有しており、第4LAN6と第5LAN7は第1汎用ルータ8により互いに接続されている。第4LAN6では、第1中継サーバAと、第1クライアント端末A1とが互いに接続されている。第5LAN7では、第2クライアント端末A2と、第2通信機器9とが互いに接続されている。
【0018】
第2LAN2は、第6LAN11と、第7LAN12と、第8LAN13とを有している。第6LAN11と第7LAN12とは第2汎用ルータ14により接続されていて、第6LAN11と第8LAN13とは第3汎用ルータ15により接続されている。第6LAN11には、第2中継サーバBが所属している。第7LAN12には、第3クライアント端末B1が接続されている。第8LAN13には、第4クライアント端末B2が接続されている。
第3LAN3では、第3中継サーバCと、第5クライアント端末C1とが互いに接続されている。
第1クライアント端末A1、第2クライアント端末A2、第3クライアント端末B1、第4クライアント端末B2および第5クライアント端末C1は、例えば、パーソナルコンピュータである。また、第2通信機器9も、例えばパーソナルコンピュータである。
【0019】
第1中継サーバA、第2中継サーバBおよび第3中継サーバCは、第1クライアント端末A1、第2クライアント端末A2、第3クライアント端末B1、第4クライアント端末B2および第5クライアント端末C1の相互間の通信を中継する。WAN4は、第1中継サーバA、第2中継サーバBおよび第3中継サーバCの相互間の通信を中継する。なお、第1中継サーバA、第2中継サーバBおよび第3中継サーバCの相互間の通信プロトコルは特に限定されない。
【0020】
3.中継サーバの構成要素
中継サーバは、LANだけでなくWANにも接続されており、同一のLANに接続されている各クライアント端末と通信可能であるとともに、他のLANに配置された中継サーバと通信可能になっている。そのため、各中継サーバには、プライベートIPアドレスに加えて、グローバルIPアドレスが付与されている。
【0021】
図2は、第1中継サーバAの構成要素を示す。
第1中継サーバAは、LANインターフェース121A、WANインターフェース121B、制御部122、データベース格納部123、表示部124および操作入力部125を有する。
LANインターフェース121Aは、プライベートIPアドレスを利用して、第1LAN1内の端末に対して通信を実行する。WANインターフェース121Bは、グローバルIPアドレスを利用して、WAN4に対して通信を実行する。
【0022】
制御部122は、例えば、制御および演算の機能を有するCPUであり、ロードされたプログラムにより各種処理を実行可能である。本実施形態の制御部122は、情報共有部131、VLANグループ情報制御部132、起動コマンド制御部133、仮想アドレス制御部134、VLANセッション制御部135、VLANグループ情報更新部136および中継サーバ通信制御部137を有する。
【0023】
情報共有部131は、後述する中継グループ情報、中継サーバ情報およびクライアント端末情報の作成および更新を行う。また、情報共有部131は、作成および更新された中継グループ情報を中継グループ内の中継サーバおよび中継サーバに接続されたクライアント端末と共有し、中継グループ情報格納部141(後述)に格納する。さらに情報共有部131は、作成および更新された中継サーバ情報を中継グループ内の中継サーバおよび中継サーバに接続されたクライアント端末と共有し、中継サーバ情報格納部142(後述)に格納する。さらに情報共有部131は、作成および更新されたクライアント端末情報を中継グループ内の中継サーバおよびクライアント端末と共有し、クライアント端末情報格納部143(後述)に格納する。
【0024】
VLANグループ情報制御部132は、後述するVLANグループ情報を中継グループ内におけるVLANクライアント端末およびVLANクライアント端末が接続された中継サーバとの間で共有し、VLANグループ情報格納部144(後述)に格納する。VLANクライアント端末とは、中継グループ内においてVLANグループを構成するクライアント端末である。
【0025】
起動コマンド制御部133は、ユーザからVLANグループの起動指示を受け付けたクライアント端末からVLANグループの起動情報を受信した場合、受信したVLANグループと同じVLANグループがすでに起動されているかどうかを判断する。起動情報には、VLANグループの起動コマンド、起動時刻およびVLANグループ情報が含まれる。ここで、起動コマンド制御部133は、VLANグループがすでに起動されている場合には、起動指示の送信元であるクライアント端末に対して途中参加信号を送信し、クライアント端末のVLANグループへの途中参加を許可する処理を実行する。途中参加信号とは、VLANグループへの途中参加を許可する信号であって、後述する仮想アドレス情報と共に送信される。
具体的に起動コマンド制御部133は、同じVLANグループがすでに起動されている場合、先にVLANグループを起動させた起動情報の起動時刻と受信した起動情報の起動時刻とを参照してより早い起動時刻を有する起動情報を有効と判断する。
その後起動コマンド制御部133は、有効でない起動情報の送信元であるクライアント端末に対しては、より早い起動時刻を有する有効な起動情報に関連した初期化コマンドおよび仮想アドレス情報をすでに受信しているかどうかを判断する。そして、初期化コマンドおよび仮想アドレス情報をすでに受信している場合には、有効でない起動情報の送信元であるクライアント端末に対して前述の途中参加信号を送信する。ここで、起動コマンド制御部133は、有効である起動情報に関して初期化コマンドおよび仮想アドレス情報を受信してない場合は、VLANグループへの途中参加の処理を終了する。
一方、受信した起動情報が有効であると判断した場合には、起動コマンド制御部133は、VLANグループの起動処理を実行する。起動コマンド制御部133は、まずVLANグループ情報から自端末に接続されているVLANクライアント端末を抽出する。また起動コマンド制御部133は、抽出したVLANクライアント端末が起動可能かどうかを判断する。起動可能なVLANクライアント端末とは、現在ログイン中でありかつ他のVLANグループに現在参加していないクライアント端末をいう。ここで起動コマンド制御部133は、中継サーバ情報格納部142に格納された中継サーバ情報を参照して、抽出したVLANクライアント端末がログイン中であるかどうかを判断する。さらに、起動コマンド制御部133は、後述する起動コマンドを送信して、抽出したVLANクライアント端末が起動可能かどうかを判断するが、詳細は後述する。以下、起動コマンド制御部133によって起動可能であると判断されたVLANクライアント端末をVLANデバイスという。VLANデバイスがあると判断した場合には、起動コマンド制御部133は、VLANデバイスのIPアドレスおよびMACアドレスを含めた応答信号を、VLANグループの有効な起動情報の送信元であるクライアント端末に送信する。VLANグループ情報の詳細は後述する。
【0026】
仮想アドレス制御部134は、仮想アドレス情報および初期化コマンドを受け取ると、自端末に接続されたVLANデバイスに仮想アドレス情報および初期化コマンドを送信する。また、仮想アドレス制御部134は、仮想アドレス情報を仮想アドレス情報格納部145(後述)に格納する。仮想アドレス情報の詳細は後述する。初期化コマンドとは、VLANインターフェース221Bの初期化に関するコマンドである。
【0027】
VLANセッション制御部135は、VLANグループ情報を参照して、VLANデバイスが接続された他の中継サーバとの間にVLANセッションとしてのハブセッションを確立する。また、VLANセッション制御部135は、VLANグループ情報を参照して、自端末と接続されたVLANデバイスとの間にVLANセッションとしてのデバイスセッションを確立する。ハブセッションとは、VLANデバイスが接続された中継サーバ間におけるセッションである。デバイスセッションとは、VLANデバイスとVLANデバイスが接続された中継サーバとの間におけるセッションである。
また、VLANセッション制御部135は後述する途中参加コマンドを受信した場合、途中参加コマンドの送信元であるクライアント端末が自端末に接続されている場合には、途中参加コマンドの送信元であるクライアント端末に関連するVLANセッションを確立する。
【0028】
VLANグループ情報更新部136は、VLANグループ情報に変更があった場合に、更新されたVLANグループ情報を、VLANクライアント端末およびVLANクライアント端末が接続されている中継サーバとの間で共有させる。
中継サーバ通信制御部137は、LANインターフェース121AおよびWANインターフェース121Bを介して行う様々な通信を制御する処理部であり、TCP/IP、UDPまたはSIPなどのプロトコルに従った様々な通信処理を制御する。
また中継サーバ通信制御部137は、仮想アドレス情報およびVLANセッションを利用したVLANデバイス間の通信を制御する。具体的には、中継サーバ通信制御部137は、自端末と接続されているクライアント端末からLANインターフェース121Aを介して受信した通信パケットを解析する。そして、通信パケットに仮想アドレスが含まれていれば、仮想アドレスを参照し、ハブセッションを介して他の中継サーバに通信パケットを送信する。また、中継サーバ通信制御部137は、他の中継サーバからWANインターフェース121Bを介して通信パケットを受信した場合、受信した通信パケットを解析する。そして、通信パケットに仮想アドレスが含まれていれば、中継サーバ通信制御部137は、仮想アドレスが割り当てられている自配下のクライアント端末のVLANインターフェース(後述)に対してデバイスセッションを介して通信パケットを送信する。一方、仮想アドレスが含まれていなければ、中継サーバ通信制御部137は、自配下のクライアント端末のLANインターフェース(後述)に対して通信パケットを送信する。
【0029】
データベース格納部123は、例えば、ハードディスクまたは不揮発RAMであり、各種データを保存可能である。データベース格納部123は、中継グループ情報格納部141、中継サーバ情報格納部142、クライアント端末情報格納部143、VLANグループ情報格納部144および仮想アドレス情報格納部145を有する。中継グループ情報格納部141、中継サーバ情報格納部142、クライアント端末情報格納部143、VLANグループ情報格納部144および仮想アドレス情報格納部145に格納される情報の詳細は後述する。また、第2中継サーバBおよび第3中継サーバCの構成要素は第1中継サーバAと同様であるので説明を省略する。
【0030】
4.クライアント端末の構成要素
クライアント端末は、ユーザが直接操作できる端末である。クライアント端末は、例えば、ユーザによって日々の業務に利用されるパーソナルコンピュータである。各クライアント端末には、同一のLAN内でユニークに管理されたプライベートIPアドレスが付与される。
【0031】
図3は、第1クライアント端末A1の構成要素を示す。第1クライアント端末A1は、LANインターフェース221A、VLANインターフェース221B、制御部222、データベース格納部223、表示部224および操作入力部225を有している。
【0032】
LANインターフェース221Aは、プライベートIPアドレスを利用して、第1LAN1内の第1中継サーバAおよび他の端末に対して通信を実行することができる。
VLANインターフェース221Bは、後述する仮想IPアドレスおよびデバイスセッションを利用して、第1中継サーバAを介して第1中継グループ内の他の端末に対して通信を実行することができる。
【0033】
制御部222は、例えば、制御および演算の機能を有するCPUであり、ロードされたプログラムにより各種処理を実行可能である。本実施形態の制御部222は、情報共有部231、VLANグループ情報制御部232、起動コマンド制御部233、仮想アドレス制御部234、VLANグループ情報更新部235、IPパケット処理部236、VLANセッション制御部237およびクライアント通信制御部238を有する。
【0034】
情報共有部231は、中継グループ情報を中継グループ内の中継サーバおよび中継サーバに接続されたクライアント端末と共有し、中継グループ情報格納部241(後述)に格納する。さらに情報共有部231は、中継サーバ情報を中継グループ内の中継サーバおよび中継サーバに接続されたクライアント端末と共有し、中継サーバ情報格納部242(後述)に格納する。さらに、情報共有部131は、クライアント端末情報を中継グループ内の中継サーバおよびクライアント端末と共有し、クライアント端末情報格納部243(後述)に格納する。
【0035】
VLANグループ情報制御部232は、中継グループ内のVLANクライアント端末とVLANクライアント端末が接続された中継サーバとの間でVLANグループ情報を共有し、VLANグループ情報格納部244(後述)に格納する。またVLANグループ情報制御部232は、VLANグループ情報を作成するVLANグループ情報作成部232aを有し、作成したVLANグループ情報をVLANクライアント端末に送信する。
【0036】
起動コマンド制御部233は、VLANグループの起動処理を行う。具体的には、起動コマンド制御部233は、起動するVLANグループの選択をユーザから受け付けると、VLANクライアント端末に接続された中継サーバのうち起動している中継サーバに対して起動コマンドを送信する。起動コマンドは、VLANグループの起動を通知するコマンドであって、起動時刻およびVLANグループのVLANグループ情報と共に送信される。ここで起動コマンド制御部233は、中継サーバ情報格納部242に格納された中継サーバ情報を参照して、抽出した中継サーバが起動可能かどうかを判断する。
また、起動コマンド制御部233は、起動コマンドに対応した応答信号を中継サーバから受信すれば、応答信号からVLANデバイスのIPアドレスとMACアドレスを抽出する。
【0037】
仮想アドレス制御部234は、VLANデバイスのIPアドレスおよびMACアドレスを含めた応答信号を受信した場合に仮想アドレス情報を作成する仮想アドレス作成部234aを有し、作成した仮想アドレス情報を自端末が接続された中継サーバに送信する。また仮想アドレス制御部234は、仮想アドレス情報および初期化コマンドを受信した場合、受信した仮想アドレス情報を仮想アドレス情報格納部245に格納する。
また、仮想アドレス制御部234は、仮想アドレス情報および途中参加信号を受信した場合には、仮想アドレス情報を参照して、自端末に対して仮想アドレスを決定できるかどうかを判断する。仮想アドレスを決定できると判断した場合には、仮想アドレス制御部234は、自端末に対して仮想アドレスを決定し、自端末の仮想アドレス情報を追加して仮想アドレス情報を更新する。その後、仮想アドレス制御部234は、自端末が接続された中継サーバに更新した仮想アドレス情報および途中参加コマンドを送信する。一方、仮想アドレス制御部234は、自端末に対して仮想アドレスを決定できないと判断した場合には、VLANグループへの途中参加の処理を終了する。
【0038】
VLANグループ情報更新部235は、VLANグループ情報に変更があった場合に、更新されたVLANグループ情報をVLANクライアント端末およびVLANクライアント端末が接続されている中継サーバとの間で共有する。
【0039】
IPパケット処理部236は、LANインターフェース221Aから受信した通信パケットをクライアント通信制御部238へ出力する。また、IPパケット処理部236は、VLANインターフェース221Bを介して仮想アドレスを含む通信パケットを受信した場合、VLANセッション制御部237に出力する。
VLANセッション制御部237は、仮想アドレスを含む通信パケットを処理し、デバイスセッションをVLANセッションとして機能させる。VLANセッション制御部237は、VLANセッションを利用して仮想アドレスを含む通信パケットを送信する場合には、VLANインターフェース221Bを介して通信パケットを送信する。
クライアント通信制御部238は、VLANセッション以外の通信パケットを処理し、LANインターフェース221Aを介して行うTCP/IP、UDPまたはSIPなどのプロトコルに従った様々な通信を制御する。
【0040】
データベース格納部223は、例えば、ハードディスクまたは不揮発RAMであり、各種データを保存可能である。データベース格納部223は、中継グループ情報格納部241、中継サーバ情報格納部242、クライアント端末情報格納部243と、VLANグループ情報格納部244および仮想アドレス情報格納部245を有する。中継グループ情報格納部241と、中継サーバ情報格納部242と、クライアント端末情報格納部243と、VLANグループ情報格納部244と、仮想アドレス情報格納部245とに格納される情報の詳細は後述する。
また、第2クライアント端末A2、第3クライアント端末B1、第4クライアント端末B2および第5クライアント端末C1は、第1クライアント端末A1と同様であるので説明を省略する。
【0041】
5.中継グループ情報
図4は、中継グループ情報20の概略構成を示す。中継グループ情報は、中継通信システムにおける各中継グループの概要を示す情報であって、中継サーバの中継グループ情報格納部141およびクライアント端末の中継グループ情報格納部241に格納される。図4は、第1中継グループが、第1中継サーバAと、第2中継サーバBと、第3中継サーバCとから構成されていることを示す。
【0042】
図5は、中継グループ情報20の詳細構成を示す。中継グループ情報20は、上位情報201、下位情報202から構成される。
【0043】
上位情報201は、第1中継グループ自体についての情報である。「group id」は、中継グループの識別情報を示す。「lastmod」は、中継グループ情報の最新更新時刻を示す。「name」は、中継グループの名称を示す。
【0044】
下位情報202は、第1中継サーバA、第2中継サーバB、第3中継サーバCについての情報である。「site id」は、各中継サーバの識別情報を示す。
【0045】
中継グループ情報20は、第1中継サーバAと、第2中継サーバBと、第3中継サーバCとの間で共有されて、各中継サーバの中継グループ情報格納部141に格納される。さらに、中継グループ情報20は、中継サーバとクライアント端末との間でも共有され、各クライアント端末の中継グループ情報格納部241に格納される。
【0046】
6.中継サーバ情報
図6は、中継サーバ情報30の概略構成を示す。中継サーバ情報30は、中継通信システムを構成する中継サーバおよびクライアント端末の概要を示す情報であって、中継サーバの中継サーバ情報格納部142およびクライアント端末の中継サーバ情報格納部242に格納される。
【0047】
図6に示すように、第1中継サーバAには、第1クライアント端末A1および第2クライアント端末A2が接続されている。第2中継サーバBには、第3クライアント端末B1および第4クライアント端末B2が接続されている。第3中継サーバCには、第5クライアント端末C1が接続されている。
【0048】
図7は、中継サーバ情報30の詳細構成を示す。中継サーバ情報30は、上位情報301−1、301−2、301−3、下位情報302−1、302−2、302−3から構成される。
【0049】
上位情報301−1、301−2、301−3は、中継サーバについての情報である。「site id」は、中継サーバの識別情報を示す。「name」は、中継サーバの名称を示す。「stat」は、中継サーバが起動しているか否かについての情報を示す。
【0050】
下位情報302−1、302−2、302−3は、クライアント端末についての情報である。「div」は、クライアント端末の部署名を示す。「group」は、クライアント端末が所属する中継グループの識別情報を示す。「id」は、クライアント端末の識別情報を示す。「name」は、クライアント端末の名称を示す。「site」は、クライアント端末がログオンしている場合にログオン先の中継サーバの識別情報を示す。
【0051】
中継サーバ情報30は、第1中継サーバA、第2中継サーバB、第3中継サーバC間で共有され、各中継サーバの中継サーバ情報格納部142において格納される。また、中継サーバ情報30は、中継サーバおよびクライアント端末間で共有され、各クライアント端末の中継サーバ情報格納部242に格納される。
【0052】
中継サーバが起動しているときには、上位情報301−1、301−2、301−3の「stat」が「active」になっている。中継サーバが起動していないときには、「stat」が空欄になっている。これにより、中継サーバが起動しているか否かについての情報が、中継通信システム全体として共有される。
【0053】
クライアント端末が中継サーバにログオンしているときには、下位情報302−1、302−2、302−3の「site」にクライアント端末のログオン先の中継サーバの識別情報が記載されている。クライアント端末が中継サーバにログオンしていないときには、「site」は空欄になっている。これにより、クライアント端末が中継サーバにログオンしているか否かについての情報が、中継通信システム全体として共有される。
【0054】
7.クライアント端末情報
図8、図9および図10は、クライアント端末情報の具体例として、クライアント端末情報40、50、60をそれぞれ示す。クライアント端末情報は、中継通信システムを構成するクライアント端末の詳細を示す情報であって、中継サーバのクライアント端末情報格納部143およびクライアント端末のクライアント端末情報格納部243に格納される。
【0055】
「addr」は、クライアント端末のアドレス情報であり、具体的にはクライアント端末のIPアドレスを示す。「div」は、クライアント端末の部署名を示す。「expr」は、クライアント端末の有効期限情報であり、具体的にはクライアント端末のレジスト有効期限を示す。「group」は、クライアント端末が所属する中継グループの識別情報を示す。「id」は、クライアント端末の識別情報を示す。「name」は、クライアント端末の名称を示す。「pass」は、クライアント端末のパスワードを示す。「port」は、クライアント端末ポート情報であり、具体的にはクライアント端末のポート番号を示す。
【0056】
クライアント端末情報40、50、60は、中継グループ内の中継サーバとクライアント端末との間で共有され、各中継サーバのクライアント端末情報格納部143および各クライアント端末のクライアント端末情報格納部243に格納される。
【0057】
8.VLANグループ情報
VLANグループ情報とは、VLANグループを構成するVLANクライアント端末の情報と、VLANクライアント端末が接続された中継サーバの情報と、中継サーバ間のセッション情報とが含まれた情報である。
【0058】
図11は、VLANグループ情報70の詳細構成を示す。VLANグループ情報70は、グループ情報71、VLANクライアント端末情報72およびセッション情報73を含む。
グループ情報71は、VLANグループに関する情報である。グループ情報71において、「group」は、VLANグループが構成される中継グループの識別情報である。「id」は、VLANグループの識別情報を示す。「lastmod」は、VLANグループ情報の最新更新時刻を示す。「name」は、VLANグループの名称を示す。
【0059】
VLANクライアント端末情報72は、VLANグループを構成するVLANクライアント端末に関する情報である。「dev id」とは、VLANクライアント端末の識別情報を示す。この例では、第1クライアント端末A1、第3クライアント端末B1、第4クライアント端末B2および第5クライアント端末C1がVLANクライアント端末である。
【0060】
セッション情報73には、ハブ情報および経路情報が含まれる。ハブ情報とは、VLANクライアント端末が接続された中継サーバの識別情報である。経路情報とは、中継サーバ間の通信経路を定義した情報であって、「sp」および「ep」が含まれる。「sp」とは、接続経路のスタートポイントであり、「sp」に示される中継サーバは、接続経路の接続側となる。「ep」とは、接続経路のエンドポイントであり、「ep」に示される中継サーバは、接続経路の被接続側となる。
【0061】
この例では、ハブ情報として第1中継サーバA、第2中継サーバBおよび第3中継サーバの識別情報が含まれる。また、経路情報として、スタートポイントが第1中継サーバAであり、エンドポイントが第2中継サーバBであるセッションが定義されている。さらに、スタートポイントが第1中継サーバAでありエンドポイントが第3中継サーバCであるセッションと、スタートポイントが第2中継サーバBであり、エンドポイントが第3中継サーバCであるセッションとが定義されている。このように、セッション情報73において、中継サーバ間の通信経路のスタートポイントとエンドポイントとを定義することで、中継サーバ間の通信経路が重複することが防げられている。
【0062】
VLANグループ情報70は、VLANクライアント端末およびVLANクライアント端末が接続された中継サーバ間で共有され、各VLANクライアント端末のVLANグループ情報格納部244および各中継サーバのVLANグループ情報格納部144に格納される。一方、VLANグループ情報70は、VLANクライアント端末間のみで共有されてもよい。
以下の本実施形態では、VLANグループ情報70がVLANクライアント端末間で共有され、各VLANクライアント端末のVLANグループ情報格納部244に格納される例を挙げる。VLANグループ情報70の作成および共有に関する処理は、後に詳述する。
【0063】
9.仮想アドレス情報
仮想アドレス情報は、VLANグループのクライアント端末として起動可能なVLANデバイスの識別情報、仮想IPアドレスおよび仮想MACアドレスから構成された情報である。仮想アドレス情報は、VLANデバイスの仮想アドレス情報格納部245に格納される。また、仮想アドレス情報は、中継サーバの仮想アドレス情報格納部145に格納されてもよい。
【0064】
図12は、仮想アドレス情報の詳細構成を示す。仮想アドレス情報80には、VLANデバイスの識別情報、仮想IPアドレスおよび仮想MACアドレスが対応付けられている。仮想IPアドレスおよび仮想MACアドレスは、VLANデバイスが実際に使用しているIPアドレスおよびMACアドレスと重複しないように付与される。また、仮想IPアドレスおよび仮想MACアドレスは、VLANグループ内でそれぞれ同士が重複しないように付与される。
【0065】
この例における仮想アドレス情報80では、VLANデバイスとしての第1クライアント端末A1、第3クライアント端末B1および第5クライアント端末C1に関する識別情報、仮想IPアドレスおよび仮想MACアドレスが対応付けられている。
後述するように、VLANデバイス間で仮想アドレス情報80が共有されることにより、異なるLANに所属するクライアント端末同士がVLANデバイスとして通信可能になる。仮想アドレス情報80の作成および共有に関する処理は、後に詳述する。
10.初期設定
図13のシーケンス図を用いて、第1中継グループの初期設定について説明する。具体的には、図13は、中継グループ情報、中継サーバ情報およびクライアント端末情報の作成に関連する処理の流れを示す。
【0066】
10.1 アカウントの作成
第1中継サーバAの管理者は、第1クライアント端末A1および第2クライアント端末A2のユーザに対して、アカウントを作成する(ステップS1、ステップS2:Create_Account())。第2中継サーバBの管理者は、第3クライアント端末B1および第4クライアント端末B2のユーザに対して、アカウントを作成する(ステップS3、ステップS4:Create_Account())。第3中継サーバCの管理者は、第5クライアント端末C1のユーザに対して、アカウントを作成する(ステップS5:Create_Account())。
【0067】
以上の処理において、第1中継サーバAは、中継サーバ情報を作成し保存する。第2中継サーバBは、中継サーバ情報を作成し保存する。第3中継サーバCは、中継サーバ情報を作成し保存する。また、第1中継サーバAはクライアント端末情報を作成して格納し、第2中継サーバBはクライアント端末情報を作成して格納し、第3中継サーバCはクライアント端末情報を作成して格納する。
【0068】
図14、図15および図16は、中継サーバ情報31−1、中継サーバ情報31−2および中継サーバ情報31−3をそれぞれ示す。中継サーバ情報31−1は、第1中継サーバAが作成し保存する情報である。中継サーバ情報31−2は、第2中継サーバBが作成し保存する情報である。中継サーバ情報31−3は、第3中継サーバCが作成し保存する情報である。
【0069】
図14は、中継サーバ情報31−1を示す。上位情報311−1は、第1中継サーバAについての情報である。「site id」として、「serverA@trial.net」が設定されている。「name」として、「ServerA」が設定されている。「stat」として、「active」が設定されている。
【0070】
下位情報312−1は、第1クライアント端末A1および第2クライアント端末A2についての情報である。
【0071】
第1クライアント端末A1についての情報は以下の通りである。「div」として、「dev」が設定されている。「group」として、「1279671471393.clientA1.rd.002@trial.net」が設定されている。「id」として、「clientA1.rd.002@ServerA.trial.net」が設定されている。「name」として、「clientA1」が設定されている。なお、図14において「site」は、「serverA.trial.net」が設定されており、第1クライアント端末A1のユーザは第1中継サーバAにログオンしていることになっているが、実際は図13のステップS1〜S5の段階では「site」は空欄になっている。
【0072】
第2クライアント端末A2についての情報は以下の通りである。「div」として、「dev」が設定されている。「group」として、「1279671471393.clientA1.rd.002@trial.net」が設定されている。「id」として、「clientA2.rd.002@serverA.trial.net」が設定されている。「name」として、「clientA2」が設定されている。なお、「site」の表記は、第1クライアント端末A1の場合と同様である。
中継サーバ情報31−2および中継サーバ情報31−3の内容は、中継サーバ情報31−1の内容と同様であるので、説明を省略する。
【0073】
10.2 中継グループ情報の作成
中継グループ情報、中継サーバ情報、クライアント端末情報の作成に関連する処理の流れを再び図13を参照して説明する。図13において、第1中継サーバAは、第2中継サーバBに対して、中継通信システムのグループ構築を要求する(ステップS6:Set_Group())。第1中継サーバAおよび第2中継サーバBは、中継グループ情報を作成して格納する。次に、第1中継サーバAは、第2中継サーバBに対して中継サーバ情報の交換を要求する(ステップS7:Exchange(db))。これにより、第1中継サーバAは第2中継サーバに対して中継サーバ情報を送信し、第2中継サーバBは第1中継サーバAに対して中継サーバ情報を送信する。第1中継サーバAおよび第2中継サーバBは、中継サーバ情報を合成して新たな中継サーバ情報として、それを保存する。なお、図示していないが、ステップS6およびステップS7と同様の処理は、第1中継サーバAと第3中継サーバCとの間でも実行され、さらに、第2中継サーバBと第3中継サーバCとの間でも実行される。その結果、第1中継サーバA、第2中継サーバBおよび第3中継サーバCの間で共通の中継サーバ情報が保有される。
【0074】
10.3 ログオン動作時における中継サーバ情報の更新
第2クライアント端末A2のユーザは、第2クライアント端末A2の識別情報とパスワードを入力して、第1中継サーバAにログオンする(ステップS8:Register)。第1中継サーバAは、クライアント端末情報を参照して、第2クライアント端末A2のユーザ認証を行う。第1中継サーバAは、クライアント端末情報を更新する。
【0075】
続いて、第2クライアント端末A2は、第1中継サーバAに対して、中継グループ情報および中継サーバ情報の提供を要求する(ステップS9:Get())。第1中継サーバAは、第2クライアント端末A2に対して、中継グループ情報および中継サーバ情報を送信する。第2クライアント端末A2は、中継グループ情報および中継サーバ情報を格納する。
【0076】
第1中継サーバAは、中継サーバ情報を参照し、第2中継サーバBに関する「site」が「active」になっていることを確認すれば、中継サーバ情報が更新されたことを第2中継サーバBに通知すべきと判断する。そして、第1中継サーバAは、第2中継サーバBに対して、中継サーバ情報が更新されたことを通知する(ステップS10:Notify())。第2中継サーバBは、中継サーバ情報を更新し、それを格納する。なお、第1中継サーバAは、中継サーバ情報が更新されたことを、第3中継サーバCにも通知する(ステップS11:Notify())。
【0077】
第1クライアント端末A1、第3クライアント端末B1、第4クライアント端末B2および第5クライアント端末C1のユーザが各中継サーバにログオンすれば、同様にして中継サーバにおける中継サーバ情報が更新される。また、同様にして、各クライアント端末のユーザがログオフした場合にも中継サーバにおける中継サーバ情報が更新される。
また、中継サーバ情報の更新は、ログオン中の各クライアント端末にも通知される。
【0078】
11.各情報の共有
11.1 中継グループ情報の共有
中継グループの情報が変更された場合の共有処理について、図17を参照して説明する。図17は、中継グループ情報および中継サーバ情報の共有に関わる処理の流れを示す図である。
図17において、第1中継グループに変更が生じると、例えば、第1中継サーバAは、第2中継サーバBに対して、変更された中継グループ情報を送信する(ステップS21:Set_Group(中継グループ情報))。すると、第2中継サーバBは、第3クライアント端末B1と第4クライアント端末B2に中継グループ情報を送信する(ステップS21.1およびステップS21.2:Set_Group(中継グループ情報))。第3クライアント端末B1および第4クライアント端末B2からそれぞれOKが返ってくると、第2中継サーバBは第1中継サーバAにOKを返す。
【0079】
さらに、第1中継サーバAは、変更された中継グループ情報を第2クライアント端末A2に送信する(ステップS22:Set_Group(中継グループ情報))。第2クライアント端末A2は第1中継サーバAにOKを返す。第1中継サーバAは、変更された中継グループ情報を第1クライアント端末A1に送信する(ステップS23:Set_Group(中継グループ情報))。第1クライアント端末A1は第1中継サーバAにOKを返す。
【0080】
第1中継サーバAは、第3中継サーバCに対して、変更された中継グループ情報を送信する(ステップS21.3:Set_Group(中継グループ情報))。すると、第3中継サーバCは、第5クライアント端末C1に中継グループ情報を送信する(ステップS21.3.1:Set_Group(中継グループ情報))。第5クライアント端末C1からOKが返ってくると、第3中継サーバCは第1中継サーバAにOKを返す。
以上の処理により、全ての中継サーバおよびクライアント端末が中継グループ情報を共有する。
【0081】
11.2 中継サーバ情報の共有
中継サーバ情報の共有について再び図17を参照して説明する。この例では、共有のための処理は、イベント通知のフレームワークを用いる。イベント通知において、購読者はリソースの状態通知を要求するエージェントであり、通知者はリソースの状態を通知するエージェントである。購読期間中にリソースの状態に変化があったときには、通知者から購読者に変化が通知される。
【0082】
第1中継サーバAは、第2中継サーバBに対して、中継サーバ情報の購読を申し込む(ステップS24:Subscribe())。第2中継サーバBは、中継サーバ情報が示す状態に変更があった場合には、自ら保持している中継サーバ情報を更新する。そして、第2中継サーバBは、更新した中継サーバ情報を第1中継サーバAに送信する。第1中継サーバAは、第2中継サーバBから送信されてきた中継サーバ情報を利用して、中継サーバ情報を更新する。第1中継サーバAは、中継サーバ情報が更新されたことを第1クライアント端末A1に通知し(ステップS25:Notify(中継サーバ情報))、さらに第2クライアント端末A2に通知する(ステップS26:Notify(中継サーバ情報))。
【0083】
次に、第1中継サーバAは、第3中継サーバCに対して、中継サーバ情報の購読を申し込む(ステップS27:Subscribe())。第3中継サーバCは、中継サーバ情報が示す状態に変更があった場合に、自ら保持している中継サーバ情報を更新する。そして、第3中継サーバCは、更新した中継サーバ情報を第1中継サーバAに送信する。第1中継サーバAは、第3中継サーバCから送信されてきた中継サーバ情報を利用して、中継サーバ情報を更新する。第1中継サーバAは、中継サーバ情報が更新されたことを第1クライアント端末A1に通知し(ステップS28:Notify(中継サーバ情報))、さらに第2クライアント端末A2に通知する(ステップS29:Notify(中継サーバ情報))。
【0084】
第2中継サーバBは、第1中継サーバAに対して、中継サーバ情報の購読を申し込む(ステップS30:Subscribe())。第1中継サーバAは、中継サーバ情報が示す状態に変更があった場合に、自ら保持している中継サーバ情報を更新する。そして、第1中継サーバAは、更新した中継サーバ情報を第2中継サーバBに送信する。第2中継サーバBは、第1中継サーバAから送信されてきた中継サーバ情報を利用して、中継サーバ情報を更新する。第2中継サーバBは、中継サーバ情報が更新されたことを第3クライアント端末B1に通知し(ステップS31:Notify(中継サーバ情報))、さらに第4クライアント端末B2に通知する(ステップS32:Notify(中継サーバ情報))。
【0085】
第2中継サーバBは、第3中継サーバCに対して、中継サーバ情報の購読を申し込む(ステップS33:Subscribe())。第3中継サーバCは、中継サーバ情報が示す状態に変更があった場合に、自ら保持している中継サーバ情報を更新する。そして、第3中継サーバCは、更新した中継サーバ情報を第2中継サーバBに送信する。第2中継サーバBは、第3中継サーバCから送信されてきた中継サーバ情報を利用して、中継サーバ情報を更新する。第2中継サーバBは、中継サーバ情報が更新されたことを第3クライアント端末B1に通知し(ステップS34:Notify(中継サーバ情報))、さらに第4クライアント端末B2に通知する(ステップS35:Notify(中継サーバ情報))。
【0086】
第3中継サーバCは、第2中継サーバBに対して、中継サーバ情報の購読を申し込む(ステップS36:Subscribe())。第2中継サーバBは、中継サーバ情報が示す状態に変更があった場合に、自ら保持している中継サーバ情報を更新する。そして、第2中継サーバBは、更新した中継サーバ情報を第3中継サーバCに送信する。第3中継サーバCは、第2中継サーバBから送信されてきた中継サーバ情報を利用して、中継サーバ情報を更新する。第3中継サーバCは、中継サーバ情報が更新されたことを第5クライアント端末C1に通知する(ステップS37:Notify(中継サーバ情報))。
【0087】
第3中継サーバCは、第1中継サーバAに対して、中継サーバ情報の購読を申し込む(ステップS38:Subscribe())。第1中継サーバAは、中継サーバ情報が示す状態に変更があった場合に、自ら保持している中継サーバ情報を更新する。そして、第1中継サーバAは、更新した中継サーバ情報を第3中継サーバCに送信する。第3中継サーバCは、第1中継サーバAから送信されてきた中継サーバ情報を利用して、中継サーバ情報を更新する。第3中継サーバCは、中継サーバ情報が更新されたことを第5クライアント端末C1に通知する(ステップS39:Notify(中継サーバ情報))。
【0088】
以上の処理により、第1中継サーバA、第2中継サーバBおよび第3中継サーバCは、中継サーバ情報が更新された場合にも、直ちに更新された中継サーバ情報を共有する。従って、第1中継サーバA、第2中継サーバBおよび第3中継サーバCは、他の中継サーバの起動状態、中継サーバに接続されているクライアント端末の種類およびログオン状態を常に知ることができる。
【0089】
11.3 情報共有のまとめ
中継通信システムにおいて、LANおよびクライアント端末の増減状態および接続状態が変化した場合には、一の中継サーバは、状態変化を認識したときには、その内容に応じて、中継グループ情報、中継サーバ情報、クライアント端末情報を直ちに更新する。
【0090】
そして、一の中継サーバは、中継グループ情報および中継サーバ情報に記載されている他の中継サーバに、中継グループ情報および中継サーバ情報が更新されたことを直ちに通知する。さらに、一の中継サーバは、クライアント端末情報に記載されているクライアント端末に、中継グループ情報および中継サーバ情報が更新されたことを直ちに通知する。
【0091】
しかし、一の中継サーバは、他の中継サーバが中継グループ情報および中継サーバ情報に記載されているとしても、他の中継サーバが未接続状態にあると判断したときには、他の中継サーバに直ちに通知することはない。さらに、一の中継サーバは、クライアント端末がクライアント端末情報に記載されているとしても、クライアント端末が未接続状態にあると判断したときには、クライアント端末に直ちに通知することはない。
【0092】
これにより、LANおよびクライアント端末の増減状態および接続状態についての情報は、中継通信システム全体としてリアルタイムに共有される。
【0093】
12.中継通信システムにおけるデータの送受信
上記のように中継通信システムにおいてLANおよびクライアント端末の増減状態および接続状態についての情報が共有された後に、クライアント端末を使用するユーザが他のクライアント端末を指定して通信するときには、以下のようにデータが送受信される。
【0094】
具体的にクライアント端末は、指定先のクライアント情報のクライアント端末情報と送信したいデータとを含む通信パケットを、自端末が接続された中継サーバに送信する。通信パケットを受信した中継サーバは、中継サーバ情報を参照し、指定されたクライアント端末が中継グループ内のどの中継サーバに配下にあるかを確認する。また、中継サーバは、指定されたクライアント端末を配下におく中継サーバが起動状態であるかどうか、および指定されたクライアント端末がログオン状態であるかどうかを確認する。具体的には、中継サーバ情報の上位情報「stat」が「active」に設定されていることを確認することによって、中継サーバが起動状態にあるかどうか判断できる。また、中継サーバ情報の下位情報「site」にクライアント端末のログオン先の中継サーバの識別情報が記載されているかどうかを確認することによって、クライアント端末がログオン状態にあるかどうか判断する。
【0095】
中継サーバの起動状態およびクライアント端末のログオン状態が確認できると、指定されたクライアント端末を配下におく中継サーバに対して受信した通信パケットが送信される。また、通信パケットを受信した中継サーバは、自配下にある指定されたクライアント端末に対して通信パケットを送信する。
【0096】
13.VLANグループ情報の作成および共有
次に、VLANグループ情報の作成および共有について、図18を参照して説明する。図18は、VLANグループ情報の作成処理を示すフローチャートである。以下では、第1中継グループ内で、LANおよびクライアント端末の増減状態および接続状態についての情報が共有された状態で(図17参照)、第1クライアント端末A1がVLANグループ情報を作成する例を挙げる。また、この例では、第1中継グループにおける第1クライアント端末A1、第3クライアント端末B1、第4クライアント端末B2および第5クライアント端末C1がVLANクライアント端末として、選択される。
【0097】
13.1 VLANグループ情報の作成
まず、第1クライアント端末A1のVLANグループ情報制御部232のVLANグループ情報作成部232aは、ユーザから中継グループの選択を受け付ける(ステップS101)。例えば、ユーザは、中継グループ情報格納部241に格納された中継グループ情報を参照して第1クライアント端末A1が備える表示部224および操作入力部225を介して中継グループを選択する。この例では、第1中継グループが中継グループとして選択される。
VLANグループ情報作成部232aは、第1中継グループの選択を受け付けると、中継サーバ情報格納部242に格納された中継サーバ情報を参照して第1中継グループの識別情報を抽出する。なお、ここで中継サーバ情報の代わりに、中継グループ情報が参照されてもよい。
【0098】
第1中継グループの選択を受け付けると、VLANグループ情報作成部232aは、中継サーバ情報を参照し、第1中継グループを構成するクライアント端末の一覧を表示部224に表示する(ステップS102)。その後VLANグループ情報作成部232aは、操作入力部225を介してユーザからVLANクライアント端末の選択を受け付ける(ステップS103)。このとき、VLANグループ情報作成部232aは、中継サーバ情報を参照して、選択を受け付けたVLANクライアント端末の識別情報を抽出する。
【0099】
VLANグループ情報作成部232aは、VLANクライアント端末の選択を受け付けた後、セッション情報を作成する(ステップS104)。具体的にVLANグループ情報作成部232aは、ハブセッションを確立するための中継サーバ間の経路構成を決定して、セッション情報を作成する。
【0100】
例えば、VLANグループ情報作成部232aは、第1中継サーバAと第2中継サーバBとのセッションに関して、第1中継サーバAを接続側、第2中継サーバBを被接続側と決定する。そして、VLANグループ情報作成部232aは、「sp」に第1中継サーバAの識別番号を入力し、「ep」に第1中継サーバBの識別番号を入力する。なお、VLANグループ情報作成部232aによって作成されたセッション情報は、操作入力部225等を介してユーザによって修正されてもよい。
セッション情報を作成した後、VLANグループ情報作成部232aは、VLANグループを識別する識別情報を作成する(ステップS105)。その後、VLANグループ情報作成部232aは、作成したVLANグループの識別情報と、VLANクライアント端末の識別情報と、セッション情報とを含むVLANグループ情報をVLANグループ情報格納部244に格納する(ステップS106)。
【0101】
この処理で作成されたVLANグループ情報の一例が、図11で示すVLANグループ情報70である。前述のとおり、VLANグループ情報70には、グループ情報71と、VLANクライアント端末情報72と、セッション情報73とが含まれる。具体的にグループ情報71は、第1中継グループの識別情報として「1279671471393.clientA1.rd.002@trial.net」を有する。また、グループ情報71は、VLANグループ識別情報として、「1279672104671.clientA1.rd.002@trial.net」、VLANグループの名称として「vlangroup1」を有する。以下、VLANグループ情報70が示すVLANグループを、第1VLANグループという。
【0102】
また、VLANクライアント端末情報72には、ユーザによって選択された第1クライアント端末A1、第3クライアント端末B1、第4クライアント端末B2および第5クライアント端末C1それぞれの識別情報が示される。
さらに、セッション情報73は、「sp」が第1中継サーバAであり「ep」が第2中継サーバBであるセッション情報を有する。また、セッション情報73は、「sp」が第1中継サーバAであり「ep」が第3中継サーバCであるセッション情報、および「sp」が第2中継サーバBであり「ep」が第3中継サーバCであるセッション情報を有する。
【0103】
上記のように作成されたVLANグループ情報は、その後VLANクライアント端末に送信される(ステップS107)。
【0104】
13.2 VLANグループ情報の共有
次に図19のシーケンス図を参照して、VLANクライアント端末間でVLANグループ情報70が共有される処理を説明する。図19は、VLANグループ情報の共有に関わる処理の流れを示す図である。VLANグループ情報70の共有に関わる処理は、各中継サーバのVLANグループ情報制御部132および各クライアント端末のVLANグループ情報制御部232によって制御される。
【0105】
VLANグループ情報70を作成した第1クライアント端末A1は、VLANクライアント端末である第3クライアント端末B1に対して、VLANグループ情報70を送信する。具体的には、第1クライアント端末A1は、まず第1中継サーバAに対してVLANグループ情報70を送信する(ステップS41:createVlanGroup(vlanGroup))。第1中継サーバAは、受信したVLANグループ情報70を第2中継サーバBに対して送信する(ステップS41.1:createVlanGroup(vlanGroup))。第2中継サーバBは、第3クライアント端末B1に対してVLANグループ情報70を送信する(ステップS41.1.1:createVlanGroup(vlanGroup))。VLANグループ情報70を受信した第3クライアント端末B1は、受信したVLANグループ情報70をVLANグループ情報格納部244に格納し、第2中継サーバBにOKを返す。また、第2中継サーバBは、第1中継サーバAにOKを返し、第1中継サーバAは第1クライアント端末A1にOKを返す。
【0106】
次に、第1クライアント端末A1は、VLANクライアント端末である第4クライアント端末B2に対してVLANグループ情報70を送信する。具体的には、第1クライアント端末A1は、第1中継サーバAに対してVLANグループ情報70を送信する(ステップS42:createVlanGroup(vlanGroup))。第1中継サーバAは、受信したVLANグループ情報70を第2中継サーバBに対して送信する(ステップS42.1:createVlanGroup(vlanGroup))。第2中継サーバBは、受信したVLANグループ情報70を第4クライアント端末B2に対して送信する(ステップS42.1.1:createVlanGroup(vlanGroup))。VLANグループ情報70を受信した第4クライアント端末B2は、受信したVLANグループ情報70をVLANグループ情報格納部244に格納し、第2中継サーバBにOKを返す。また、第2中継サーバBは、第1中継サーバAにOKを返し、第1中継サーバAは、第1クライアント端末A1にOKを返す。
【0107】
さらに、第1クライアント端末A1は、第5クライアント端末C1に対してVLANグループ情報70を送信する。具体的には、第1クライアント端末A1は、第1中継サーバAに対してVLANグループ情報70を送信する(ステップS43:createVlanGroup(vlanGroup))。第1中継サーバAは、受信したVLANグループ情報70を第3中継サーバCに対して送信する(ステップS43.1:createVlanGroup(vlanGroup))。第3中継サーバCは、受信したVLANグループ情報を第5クライアント端末C1に対して送信する(ステップS43.1.1:createVlanGroup(vlanGroup))。VLANグループ情報70を受信した第5クライアント端末C1は、受信したVLANグループ情報70をVLANグループ情報格納部244に格納し、第3中継サーバCにOKを返す。また、第3中継サーバCは、第1中継サーバAにOKを返し、第1中継サーバAは、第1クライアント端末A1にOKを返す。
【0108】
以上の処理により、VLANグループの構成するクライアント端末として選択された全てのVLANクライアント端末がVLANグループ情報70を共有する。このようにして、VLANグループ内のクライアント端末同士で行われるVLANセッションの準備が実現されたことになる。
なお、上記の処理において、VLANグループ情報70は、VLANクライアント端末間だけでなく、VLANクライアント端末が接続された中継サーバ間においても共有されてもよい。この場合、各中継サーバは、VLANグループ情報70を受信した際に、VLANグループ情報70をVLANグループ情報格納部144に格納すればよい。
【0109】
14.クライアント端末におけるVLANセッションの確立処理およびVLAN通信開始の処理
本実施形態の中継通信システムでは、上記の処理により作成し共有されたVLANグループ情報70に基づきVLANセッションが確立され、ハブの機能を実現する複数の中継サーバを介して、クライアント端末同士がVLANデバイスとして互いに通信可能となる。以下、VLANグループ情報の起動指示を受け付けたクライアント端末におけるVLANセッション確立処理およびVLAN通信開始の処理について、図20Aおよび図20Bを参照して説明する。図20Aおよび図20Bは、クライアント端末によるVLANセッションの確立処理を示すフローチャートを示す。
【0110】
VLANセッション確立の処理は、VLANグループを構成するいずれかのVLANクライアント端末またはVLANクライアント端末が接続された中継サーバが、ユーザからVLANグループの起動指示を受け付けることによって開始される。この例では、第1クライアント端末A1が、VLANグループ情報70に示される第1VLANグループに対する起動指示をユーザから受け付ける。またこの例では、第1クライアント端末A1、第3クライアント端末B1および第5クライアント端末C1がVLANデバイスである。
【0111】
14.1 起動コマンドの送信および応答信号受信
まず、第1クライアント端末A1の起動コマンド制御部233は、起動するVLANグループの選択を受け付ける(ステップS111)。具体的に起動コマンド制御部233は、表示部224にVLANグループ情報格納部244に格納されているVLANグループ情報の一覧を表示し、操作入力部225を介して起動すべきVLANグループの選択を受け付ける。この例では、VLANグループ情報70に示される第1VLANグループが選択される。
【0112】
第1VLANグループの選択を受け付けると、起動コマンド制御部233は、VLANグループ情報70から中継サーバの情報を読み出す(ステップS112)。具体的には、起動コマンド制御部233は、VLANグループ情報70のセッション情報73から、ハブの役割を果たす中継サーバの識別情報を読み出す。このとき、起動コマンド制御部233は、フィルタリング処理を介して中継サーバの識別情報が重複しないように読み出す。この例では、起動コマンド制御部233は、第1中継サーバA、第2中継サーバBおよび第3中継サーバCの識別情報を読み出す。
【0113】
次に、起動コマンド制御部233は、ステップS113〜ステップS116の処理を行う。具体的には、中継サーバ情報格納部242に格納されている中継サーバ情報を参照して、読み出した中継サーバのうち、自端末以外のVLANクライアント端末が接続されている中継サーバが起動しているかどうかを判断する(ステップS113)。そして、起動コマンド制御部233は、起動している中継サーバに対してステップS114〜ステップS116の処理を行う。この例では、第1クライアント端末A1以外のVLANクライアント端末が接続された第2中継サーバBおよび第3中継サーバCに対してステップS114〜ステップS116の処理が行われる。
【0114】
まず、起動コマンド制御部233は、中継サーバ情報格納部242に格納されている中継サーバ情報を参照して第2中継サーバBが起動しているかどうか判断する。具体的に起動コマンド制御部233は、中継サーバ情報の上位情報「stat」が「active」に設定されていることを確認することによって、第2中継サーバBが起動可能かどうかを判断する。第2中継サーバBが起動している場合には、起動コマンド制御部233は、起動コマンド、起動時刻およびVLANグループ情報70を含む起動情報を第2中継サーバBに送信する(ステップS114)。起動コマンドとは、VLANグループの起動を通知するコマンドである。
なおこの時、起動情報を受信した第2中継サーバBは、VLANグループ情報70をVLANグループ情報格納部144に格納する。一方、VLANグループ情報の共有処理において、VLANクライアント端末間だけでなく第2中継サーバBおよび第3中継サーバCにおいてもVLANグループ情報70が共有されている場合には、VLANグループ情報70の送信は省略され、第1VLANグループの識別情報のみが送信されてもよい。
【0115】
次に、起動コマンド制御部233は、第2中継サーバBからの応答信号を受信する。ここで第2中継サーバBからの応答信号には、第2中継サーバBに接続されたVLANクライアント端末のうち、VLANデバイスの識別情報とIPアドレスとMACアドレスとが含まれている。第2中継サーバBによる応答信号の作成処理は後述する。
起動コマンド制御部233は、第2中継サーバBからの応答信号を受信すれば(ステップS115でYes)、受信した応答信号から、VLANデバイスの識別情報、IPアドレスおよびMACアドレスを抽出する(ステップS116)。
【0116】
その後、起動コマンド制御部233は、中継サーバ情報を再び参照して、ステップS113〜ステップS116の処理が行われるべき他の中継サーバがあるかどうか判断する(ステップS117)。他に中継サーバがある場合は(ステップS117でYes)、起動コマンド制御部233は、他の中継サーバそれぞれに対してステップS113からステップS116の処理を行う。
以下、ステップS115において第2中継サーバBおよび第3中継サーバCから応答信号を受信した例を挙げて説明を続ける。
【0117】
図21は、VLANデバイスのIPアドレスとMACアドレスに関する第1抽出情報の一例を示す。第1抽出情報90には、ステップS116において応答信号から抽出したVLANデバイスの識別情報、IPアドレスおよびMACアドレスが含まれる。図21に示す第1抽出情報90−1は、第2中継サーバBから受信した応答信号から抽出した抽出情報であり、第1抽出情報90−2は、第3中継サーバCから受信した応答信号から抽出した抽出信号である。第1抽出情報90−1には、第2中継サーバBに接続されたVLANデバイスである第3クライアント端末B1の識別情報、IPアドレスおよびMACアドレスが含まれる。第1抽出情報90−2には、第3中継サーバCに接続されたVLANデバイスである第5クライアント端末C1の識別情報、IPアドレスおよびMACアドレスが含まれる。
【0118】
なお、中継サーバが起動していないと判断した場合(ステップS113でNo)には、ステップS117に進む。
【0119】
14.2 仮想アドレス情報の作成および送信
他の中継サーバがないと判断した場合(ステップS117でNo)は、次に仮想アドレス制御部234の仮想アドレス作成部234aによって仮想アドレス情報が作成される(ステップS118)。仮想アドレス情報には、各VLANデバイスに割り当てられる仮想IPアドレスおよび仮想MACアドレスが含まれる。
仮想アドレスの作成処理について、図12および図21と、さらに図22を参照して説明する。図22は、図21の第1抽出情報に自端末のIPアドレスおよびMACアドレスを追加した第2抽出情報の一例を示す。
【0120】
仮想アドレス作成部234aは、まず第1抽出情報90に、自端末である第1クライアント端末A1の識別情報、IPアドレスおよびMACアドレスを追加する。そして、仮想アドレス作成部234aは、第1クライアント端末A1およびステップS116で抽出したVLANデバイスの情報を全て合わせた第2抽出情報91を作成する。図22に示すとおり、第2抽出情報91では、第1クライアント端末A1、第3クライアント端末B1および第5クライアント端末C1それぞれの識別情報、IPアドレスおよびMACアドレスが一つのテーブルにまとめられている。
【0121】
次に仮想アドレス作成部234aは、第2抽出情報91に示されるIPアドレスおよびMACアドレスに基づいて仮想アドレス情報を作成する。具体的には、仮想アドレス作成部234aは、第2抽出情報91に示されるIPアドレスと重複しないIPアドレスを、仮想IPアドレスとして各VLANデバイスに割り当てる。また仮想アドレス作成部234aは、第2抽出情報91に示されるMACアドレスと重複しないMACアドレスを、仮想MACアドレスとして各VLANデバイスに割り当てる。さらに仮想アドレス作成部234aは、各VLANデバイス間で仮想IPアドレスおよび仮想MACアドレスが重複しないように、各VLANデバイスに仮想IPアドレスおよび仮想MACアドレスを割り当てる。この例では、仮想IPアドレスおよび仮想MACアドレスの末尾にそれぞれ異なる数字を割り当てることにより、VLANデバイス間の仮想アドレスの重複を防ぐ。
【0122】
上記の処理により作成された仮想アドレス情報が、図12に示す仮想アドレス情報80である。この例では、識別情報「clientA1.rd.002@trial.net」によって識別される第1クライアント端末A1に対して、仮想IPアドレス「117.112.0.1」および仮想MACアドレス「00.11.22:f0.00.01」が割り当てられる。また、識別情報「clientB1.rd.002@trial.net」によって識別される第3クライアント端末B1に対して、仮想IPアドレス「117.112.0.2」および仮想MACアドレス「00.11.22:f0.00.02」が割り当てられる。識別情報「clientC1.rd.002@trial.net」によって識別される第5クライアント端末C1に対して、仮想IPアドレス「117.112.0.3」および仮想MACアドレス「00.11.22:f0.00.03」が割り当てられる。
【0123】
14.3 VLANセッションの確立
次に、仮想アドレス制御部234は、作成した仮想アドレス情報80を初期化コマンドと共に、ハブを構成する中継サーバに送信する(ステップS119)。初期化コマンドとは、VLANインターフェースの初期化に関するコマンドであって、第1VLANグループの識別情報である「1279672104671.clientA1.rd.002@trial.net」が含まれる。この例では、仮想アドレス制御部234は、第1中継サーバA、第2中継サーバBおよび第3中継サーバCに対して作成した仮想アドレス情報80と初期化コマンドとを送信する。この時、仮想アドレス情報80と初期化コマンドを受信した第1中継サーバA、第2中継サーバBおよび第3中継サーバCは、VLANグループ情報70のセッション情報73を参照して中継サーバ間のハブセッションを確立する。中継サーバ間のハブセッションの確立については後に詳述する。
【0124】
その後VLANセッション制御部237は、自端末が接続されている第1中継サーバAとの間にデバイスセッションの確立処理を行う(ステップS120)。詳細には、第1中継サーバAからのデバイスセッションの確立要求に対してOKを返すことで、デバイスセッションをVLANセッションとして機能させる。なお、この際、第2中継サーバBと第3クライアント端末B1との間においてもデバイスセッションが確立される。また、第3中継サーバCと第5クライアント端末C1との間においてもデバイスセッションが確立される。
【0125】
14.4 VLAN通信の開始
以上のとおり、VLANグループ内においてハブセッションおよびデバイスセッションを含むVLANセッションが確立されると、VLANセッション制御部237は、自端末のVLANインターフェース221Bを初期化し、VLANインターフェース221Bに仮想アドレスを設定する。具体的には、VLANセッション制御部237は、自端末のVLANインターフェース221Bに、仮想アドレス情報80の仮想IPアドレスおよび仮想MACアドレスを設定する(ステップS121)。このとき、第3クライアント端末B1および第5クライアント端末C1も、自端末のVLANインターフェースに、仮想アドレス情報80の仮想IPアドレスおよび仮想MACアドレスを設定する。
以上の処理により各VLANデバイスにおいて仮想アドレスが設定されると、仮想アドレスとVLANセッションを使ってクライアント端末同士がVLANデバイスとして互いに通信可能となる(ステップS122)。
【0126】
14.5 VLANグループへの途中参加
上記の例において、第1クライアント端末A1が第1VLANグループの起動の選択を受け付けて起動情報を送信する場合において、すでに第1VLANグループが他のクライアント端末または中継サーバからの起動指示によって起動されている場合がある。このような場合、第1VLANグループの起動の重複を解消するために、以下の処理が行われる。
【0127】
すでに第1VLANグループが起動されている場合には、第2中継サーバBおよび/または第3中継サーバCから起動情報の送信に対する応答信号(ステップS114参照)は送信されない。従って、起動コマンド制御部233は、応答信号を受信せず(ステップS115でNo)、第2中継サーバBおよび/または第3中継サーバCから途中参加信号を受信したかどうかを判断する(ステップS123)。途中参加信号とは、第1VLANグループへの第1クライアント端末A1の途中参加を許可する信号である。途中参加信号には、先の第1VLANグループの起動によってすでに作成されている仮想アドレス情報が含まれている。
第1クライアント端末A1が第1VLANグループへ途中参加できるかどうかは、VLANクライアント端末が接続されていて起動しているいずれかの中継サーバによって判断される。例えば、第2中継サーバBによって途中参加の判断がなされた場合は、第1中継サーバAを介して第2中継サーバBから第1クライアント端末A1に対して途中参加信号が送信される。中継サーバによる途中参加信号の送信については、後に詳述する。
ここで、第2中継サーバBから途中参加信号を受信しない場合は(ステップS123でNo)、起動コマンド制御部233は、起動処理の重複エラーの処理を実行し、起動処理を終了する(ステップS125)。
【0128】
一方、途中参加信号を受信すれば、次に仮想アドレス制御部234は、途中参加信号とともに受信した仮想アドレス情報を読み出し(ステップS124)、仮想アドレス情報からVLANデバイスに割り当てられている仮想IPアドレスおよび仮想MACアドレスを抽出する(ステップS126)。
【0129】
次に仮想アドレス制御部234は、抽出した仮想IPアドレスおよび仮想MACアドレスを参照して、自端末に対して仮想アドレスを決定できるかどうかを判断する(ステップS127)。具体的には、仮想アドレス制御部234は、自端末が現在使用しているIPアドレスが、抽出した仮想IPアドレスと同じアドレス体系ではないかどうかを判断する。また、仮想アドレス制御部234は、自端末が現在使用しているMACアドレスが、抽出した仮想MACアドレスと同じアドレス体系ではないかどうかを判断する。ここで、例えば自端末のアドレスのセグメントと仮想アドレスのセグメントが同じである場合は、仮想アドレス制御部234は、起動エラーと判断してVLANグループへの途中参加の処理を終了する(ステップS128)。
【0130】
一方、自端末のIPアドレスおよびMACアドレスと、仮想IPアドレスおよび仮想MACアドレスとの間が異なるアドレス体系である場合は、仮想アドレス制御部234は、自端末に対して仮想アドレスを決定し仮想アドレス情報を更新する(ステップS129)。例えば、仮想アドレス制御部234は、抽出した仮想IPアドレスおよび仮想MACアドレスそれぞれの末尾を変更した仮想IPアドレスおよび仮想MACアドレスを自端末に割り当てる。そして、仮想アドレス制御部234は、割り当てた仮想IPアドレスおよび仮想MACアドレスと自端末の識別情報とを仮想アドレス情報に追加することにより、仮想アドレス情報を更新する。
【0131】
仮想アドレス情報を更新した後、仮想アドレス制御部234は、更新した仮想アドレス情報および途中参加コマンドを自端末が接続された第1中継サーバAに送信する(ステップS131)。途中参加コマンドは、VLANへの途中参加を示すコマンドであって、VLANグループの識別情報が含まれている。
第1中継サーバAからOKという応答を受信した場合には(ステップS132でYes)、ステップS120へ進み、VLANセッション制御部237によって、自端末が接続されている第1中継サーバAとの間におけるデバイスセッションの確立処理が行われる。一方、第1中継サーバAからOKという応答を受信しない場合には(ステップS132でNo)、仮想アドレス制御部234は、起動エラーと判断して処理を終了する(ステップS133)。
なお、更新した仮想アドレス情報および途中参加コマンドは、その後中継サーバを介して各VLANデバイスに送信される。
【0132】
上記のような処理を実行することにより、第1VLANグループの起動の重複を解消できる。また、第1VLANグループの起動指示が重複した場合であっても、後に起動指示を行ったクライアント端末は、自端末が使用するアドレスと先の第1VLANグループの起動によって作成された仮想アドレスとが同じアドレス体系でなければ、第1VLANグループに途中参加できる。
【0133】
15.中継サーバにおけるVLANセッションの確立処理およびVLAN通信開始の処理
次に、VLANグループの起動指示を受け付けたクライアント端末から起動情報を受信した中継サーバにおけるVLANセッション確立処理およびVLAN通信開始の処理について説明する。この例では、第1クライアント端末A1からの起動コマンド、起動時刻およびVLANグループ情報70を含む起動情報を受信した第2中継サーバBの処理を説明する(図20AのステップS114参照)。なお、第1クライアント端末A1から起動情報を受け付ける第3中継サーバCの処理については、第2中継サーバBと同様の処理であるためその説明を省略する。
【0134】
15.1 応答信号の送信
まず、図23Aおよび図23Bを参照して、起動情報に対する第2中継サーバBによる応答信号の送信処理について説明する。図23Aおよび図23Bは、起動情報に対する中継サーバによる応答信号の送信処理を示すフローチャートである。第2中継サーバBの起動コマンド制御部133は、第1クライアント端末A1から起動コマンド、起動時刻およびVLANグループ情報70を含む起動情報を受信した場合(ステップS141でYes)、VLANグループ情報70からVLANグループの識別情報を抽出する(ステップS142)。この例では、起動コマンド制御部133は、VLANグループ情報70から識別情報「1279672104671.clientA1.rd.002@trial.net」を抽出する。そして、起動コマンド制御部133は、この識別情報を有する第1VLANグループがすでに起動されているかどうかを確認する(ステップS143)。第1VLANグループが起動されていない場合には、第1VLANグループの起動処理が開始され(ステップS144)、後述するステップS151へ進む。
【0135】
一方、第1VLANグループがすでに起動されている場合には、起動コマンド制御部133は、第1クライアント端末A1から受信した起動時刻と、先に受信した第1VLANグループの起動情報に含まれている起動時刻とを比較する(ステップS145)。第1クライアント端末A1から受信した起動時刻が有効である場合は(ステップS146でYes)、すでに受信している起動時刻を第1クライアント端末A1から受信した起動時刻に上書きし(ステップS147)、ステップS151に進む。ここでは、より早い起動時刻が有効な起動時刻であると判断される。
【0136】
第1クライアント端末A1から受信した起動時刻が有効でない場合は(ステップS146でNo)、起動コマンド制御部133は、さらに初期化コマンドおよび仮想アドレス情報を受信しているかどうか判断する(ステップS148)。すなわち、起動コマンド制御部133は、先の第1VLANグループの起動が初期化コマンドおよび仮想アドレス情報の送付の処理まですでに実行されているかどうかを判断する。
【0137】
初期化コマンドおよび仮想アドレス情報を受信している場合には(ステップS148でYes)、起動コマンド制御部133は、第1クライアント端末A1に対して、途中参加信号と、受信した初期化コマンドおよび仮想アドレス情報を送信する(ステップS149)。前述のとおり、途中参加信号とは、第1VLANグループへの第1クライアント端末A1の途中参加を許可する信号である。
初期化コマンドおよび仮想アドレス情報を受信していない場合には(ステップS148でNo)、起動コマンド制御部133は、起動処理の重複エラー信号を第1クライアント端末A1に返信し、起動処理を終了する(ステップS150)。なぜなら、仮想アドレス情報を受信していない場合には、受信した仮想アドレス情報に基づく自端末への仮想アドレスの割り当て処理が実行できないからである(図20BのステップS127、ステップS129参照)。
【0138】
第1VLANグループの起動処理が開始され(ステップS144)、または起動時刻の上書き処理(ステップS147)がなされた場合、起動コマンド制御部133は、次にVLANグループ情報70から自端末に接続されているVLANクライアント端末の抽出処理を実行する(ステップS151)。自端末に接続されているVLANクライアント端末がある場合(ステップS152でYes)、起動コマンド制御部133は、VLANクライアント端末が起動できるか否かを判断する(ステップS154)。起動可能なVLANクライアント端末とは、現在ログイン中でありかつ他のVLANグループに現在参加していないクライアント端末である。以下、起動コマンド制御部133によって起動可能であると判断されたVLANクライアント端末をVLANデバイスという。この例では、起動コマンド制御部133は、VLANデバイスとして第3クライアント端末B1を抽出する。なお、VLANデバイスであるかどうかの判断に際して、起動コマンド制御部133は、中継サーバ情報格納部142に格納された中継サーバ情報を参照して、第3クライアント端末B1がログイン中であるかどうかを判断する。また、起動コマンド制御部133は、ログイン中である第3クライアント端末B1に起動コマンドを送信する。そして、第3クライアント端末B1から起動コマンドに対するOK信号を受信すれば、起動コマンド制御部133は、第3クライアント端末B1がVLANデバイスであると判断する。
【0139】
その後起動コマンド制御部133は、VLAN起動コマンドを第3クライアント端末B1に送信する(ステップS155)。VLAN起動コマンドとは、VLANクライアント端末をVLANデバイスとして起動させるコマンドである。第3クライアント端末B1よりOK応答を受信した場合(ステップS156でYes)、起動コマンド制御部133は、応答信号を第1クライアント端末A1へ送信する(ステップS157)。応答信号には、第3クライアント端末B1の識別情報、IPアドレスおよびMACアドレスが含まれる。ここで、起動コマンド制御部133は、ログイン中である第3クライアント端末B1とはLANを介してIP通信をしている。従って、起動コマンド制御部133は、第3クライアント端末B1のIPアドレスおよびMACアドレスを、第3クライアント端末B1に問い合わせることを要しない。なお、応答信号を受信した場合を受信した第1クライアント端末A1は、受信した応答信号から仮想アドレス情報80を作成する(図20AのステップS115およびステップS116参照)。
【0140】
自端末に接続されているVLANクライアント端末がない場合(ステップS152でNo)は、起動コマンド制御部133は、第1クライアント端末A1に対して起動OK信号を送信する。起動OK信号とは、単に受信した起動コマンドに対するOK応答を示す。また、VLANデバイスがない場合(ステップS154でNo)、またはVLAN起動コマンドの送信に対してOK応答を受信しない場合(ステップS156でNo)も同様に、起動コマンド制御部133は起動OK信号を送信する。
【0141】
15.2 VLANセッションの確立
次に、クライアント端末によって仮想アドレス情報が作成された後、中継サーバが行うVLANセッションの確立処理を説明する。
15.2.1 初期化コマンドを受信した場合の処理
まず、図24を参照して、第1クライアント端末A1が仮想アドレス情報80を作成した後に送信した仮想アドレス情報80および初期化コマンドを(図20AのステップS119参照)、第2中継サーバBが受信した場合の処理を説明する。図24は、初期化コマンドを受信した中継サーバにおけるVLANセッションの確立処理を示すフローチャートである。なお、第1クライアント端末A1から仮想アドレス情報80と初期化コマンドとを受信した場合の第3中継サーバCの動作は、以下に説明する第2中継サーバBの処理と同様であるので説明を省略する。
【0142】
第2中継サーバBのVLANセッション制御部135は、第1クライアント端末A1から仮想アドレス情報80と初期化コマンドとを受信すれば(ステップS161でYes)、初期化コマンドからVLANグループの識別情報を抽出する(ステップS162)。この例では、VLANセッション制御部135は、「1279672104671.clientA1.rd.002@trial.net」を抽出する。
【0143】
次にVLANセッション制御部135は、抽出した識別情報から識別される第1VLANグループが起動処理中であるかどうか判断する(ステップS163)。ここで、第1VLANグループが起動処理中でない場合は、第1クライアント端末A1に対してエラー応答を返信し(ステップS165)、処理を終了する。
【0144】
一方、第1VLANグループが起動処理中である場合は、VLANセッション制御部135は、仮想アドレス情報80からVLANデバイスを抽出する(ステップS164)。この例では、VLANセッション制御部135は、VLANデバイスである第1クライアント端末A1、第3クライアント端末B1および第5クライアント端末C1を抽出する。次にVLANセッション制御部135は、VLANグループ情報格納部144に格納されているVLANグループ情報70を参照して、上記抽出したVLANデバイスの中からさらに自配下である、すなわち自端末に接続されたVLANデバイスを抽出する(ステップS166)。この例では、第3クライアント端末B1が抽出される。その後VLANセッション制御部135は、第3クライアント端末B1に対して受信した初期化コマンドおよび仮想アドレス情報を転送する(ステップS167)。
【0145】
次に、VLANセッション制御部135は、VLANグループ情報70からセッション情報73を抽出する(ステップS168)。セッション情報73を抽出した後、VLANセッション制御部135は、セッション情報73を参照して、「sp」として自端末が設定されていてかつ未確立であるハブセッションを確立する(ステップS169)。この例では、VLANセッション制御部135は、「ep」として設定されている第3中継サーバCとの間にハブセッションを確立する。なお、このとき、第1中継サーバAにおいても、「sp」として自端末が設定されていてかつ未確立であるハブセッションを確立する処理が行われている。
【0146】
第3中継サーバCからハブセッションの確立に対するOKの応答信号を受信した後(ステップS170)、VLANセッション制御部135は、VLANグループ情報70を参照し、自端末と接続されたVLANデバイスとの間にデバイスセッションを確立する(ステップS171)。この例では、VLANセッション制御部135は、VLANグループ情報70のVLANクライアント端末情報72を参照し、VLANデバイスである第3クライアント端末B1との間にデバイスセッションを確立する。
第3クライアント端末B1からOKの応答信号を受信すれば、仮想アドレスとVLANセッションを使ってクライアント端末同士がVLANデバイスとして互いに通信可能となる(ステップS172)。
【0147】
15.2.2 途中参加コマンドを受信した場合の処理
次に、第1クライアント端末A1から更新した仮想アドレス情報および途中参加コマンド(図20BのステップS131参照)を受信した場合の第2中継サーバBの処理を、図25を参照して説明する。図25は、途中参加コマンドを受信した中継サーバにおけるVLANセッションの確立処理を示すフローチャートである。
【0148】
第2中継サーバBのVLANセッション制御部135は、第1クライアント端末A1から仮想アドレス情報および途中参加コマンドを受信すれば(ステップS181でYes)、途中参加コマンドからVLANグループの識別情報を抽出する(ステップS182)。
【0149】
次にVLANセッション制御部135は、抽出した識別情報から識別される第1VLANグループが起動処理中であるかどうか判断する(ステップS183)。ここで、第1VLANグループが起動処理中でない場合は、第1クライアント端末A1に対してエラー応答を返信し(ステップS185)、処理を終了する。
【0150】
一方、第1VLANグループが起動処理中である場合は、VLANセッション制御部135は、更新された仮想アドレス情報からVLANデバイスを抽出する(ステップS184)。次にVLANセッション制御部135は、VLANグループ情報格納部144に格納されているVLANグループ情報70を参照して、抽出したVLANデバイスの中からさらに自配下の、すなわち自端末に接続されたVLANデバイスを抽出する(ステップS186)。その後VLANセッション制御部135は、自配下の、すなわち自端末に接続されたVLANデバイスに対して途中参加コマンドおよび更新された仮想アドレス情報を送信する(ステップS187)。
【0151】
次に、VLANセッション制御部135は、VLANグループ情報70からセッション情報73を抽出する(ステップS188)。セッション情報73を抽出した後、VLANセッション制御部135は、セッション情報73を参照して、「sp」として自端末が設定されていてかつ未確立であるハブセッションを確立する(ステップS189)。すなわち、VLANセッション制御部135は、先の第1VLANグループの起動によってすでに確立されているハブセッションはそのまま利用し、途中参加が許可されたVLANクライアント端末の参加によって確立が必要となったハブセッションを新たに確立する。なお、このとき、ハブの役割を果たす他の中継サーバ間においても、ハブセッションを確立する処理が行われている。
【0152】
ハブセッションの接続先である中継サーバからOKの応答信号を受信した後(ステップS190)、VLANセッション制御部135は、VLANグループ情報70を参照し、自配下である、すなわち自端末と接続されたVLANデバイスがあるかどうかを判断する(ステップS191)。自配下のVLANデバイスがある場合は(ステップS191でYes)、VLANセッション制御部135は、自配下のVLANデバイスとの間にデバイスセッションを確立する(ステップS192)。
自配下のVLANデバイスとの間にデバイスセッションを確立した場合、または自配下のVLANデバイスがない場合は(ステップS191でNo)、その後仮想アドレスとVLANセッションを使ってクライアント端末同士がVLANデバイスとして互いに通信可能となる(ステップS193)。
【0153】
16.VLANセッションの一例
図26のシーケンス図を参照して、VLANセッションを確立する際のデータの流れを説明する。図26は、VLANセッションの確立に関わる処理の流れの一例を示す図である。
以下、第1VLANグループにおけるVLANセッションの確立処理を、以下の例を挙げて説明する。この例では、VLANグループ情報70が、第1クライアント端末A1、第3クライアント端末B1、第4クライアント端末B2および第5クライアント端末C1によって共有された状態で(図19参照)、第4クライアント端末B2が第1中継グループからログアウトする。その後第1VLANグループ間でVLANセッションが確立した後に、第4クライアント端末B2がログオンし、第4クライアント端末B2が第1VLANグループの起動指示をユーザから受け付ける。
なお、この間、第1中継グループ内における起動中の各中継サーバは、通常のIPアドレスおよびMACアドレスを利用して、WANインターフェースを介して第1中継グループ内の他の起動中の中継サーバと通信している。そして、各中継サーバ間で、第1中継グループ内における接続状態の変化を共有している。また、第1中継グループ内における起動中の各クライアント端末は、LANインターフェースを介して接続された中継サーバと通信している。そして、クライアント端末と中継サーバとの間で、中継通信システムにおける接続状態の変化が共有されている。
【0154】
まず、第4クライアント端末B2は、第1中継グループからログアウトする。具体的には、第4クライアント端末B2は、第2中継サーバBにログアウトを通知し(ステップS51:logout())、第2中継サーバBからOKを受信する。ログアウトが通知された第2中継サーバBは、中継サーバ情報を参照し、第3クライアント端末B1に第4クライアント端末B2のログアウトを通知する(ステップS52:notifyLogout(clientB2))。第3クライアント端末B1は、第2中継サーバBにOKを返す。また第2中継サーバBは、中継サーバ情報を参照し、第1中継サーバAに第4クライアント端末B2のログアウトを通知する(ステップS53:notifyLogout(clientB2))。第1中継サーバAは、中継サーバ情報を参照し、第1クライアント端末A1に第4クライアント端末B2のログアウトを通知する(ステップS53.1:notifyLogout(clientB2))。第1クライアント端末A1からOKが返ってくると、第1中継サーバAは第2中継サーバBにOKを返す。なお、この例では図示されていないが、第1中継サーバAは、中継サーバ情報を参照し、第1中継グループを構成する第2クライアント端末A2に対しても第4クライアント端末B2のログアウトを通知する。
さらに第2中継サーバBは、中継サーバ情報を参照し、第3中継サーバCに第4クライアント端末B2のログアウトを通知する(ステップS54:notifyLogout(clientB2))。第3中継サーバCは、中継サーバ情報を参照し、第5クライアント端末C1に第4クライアント端末B2のログアウトを通知する(ステップS54.1:notifyLogout(clientB2))。第5クライアント端末C1からOKが返ってくると、第3中継サーバCは第2中継サーバBにOKを返す。以上の処理により、第1中継グループ内の全ての中継サーバおよびクライアント端末が第4クライアント端末B2のログアウトを共有する。
【0155】
その後、第1クライアント端末A1が第1VLANグループの起動指示をユーザから受け付けると、第1VLANグループの起動処理が開始される。まず、第1クライアント端末A1は、第1中継サーバAを介して、VLANグループ内でハブの役割を果たし起動状態である第2中継サーバBに対して、起動コマンド、起動時刻およびVLANグループ情報70を含む起動情報を送信する(ステップS55:StartVlan(vlanGroupID)、ステップS55.1:StartVlan(vlanGroupID))。第2中継サーバBは、VLANグループ情報70を参照し、自端末に接続されているVLANクライアント端末である第3クライアント端末B1および第4クライアント端末B2を抽出する。そして、第2中継サーバBは、第3クライアント端末B1および第4クライアント端末B2がVLANデバイスであるかどうか判断した上で、VLANデバイスに起動情報を送信する。この例では、第4クライアント端末B2はログアウトしているので、第2中継サーバBは、VLANデバイスである第3クライアント端末B1に対して起動コマンド、起動時刻およびVLANグループ情報70を送信する(ステップS55.1.1:StartVlan(vlanGroupID))。
【0156】
第3クライアント端末B1よりOKを受信した場合、第2中継サーバBは、応答信号(OK(clientB1(ip,mac)))を、第1中継サーバAを介して第1クライアント端末A1へ送信する。応答信号には、第3クライアント端末B1の識別情報、IPアドレスおよびMACアドレスが含まれている。
【0157】
また、第1クライアント端末A1は、VLANグループ内でハブの役割を果たし起動状態である第3中継サーバCに対して、第1中継サーバAを介して、起動コマンド、起動時刻およびVLANグループ情報70を送信する(ステップS56:StartVlan(vlanGroupID)、ステップS56.1:StartVlan(vlanGroupID))。第3中継サーバCは、VLANグループ情報70を参照し、自端末に接続されているVLANクライアント端末である第5クライアント端末C1を抽出する。そして、第3中継サーバCは、第5クライアント端末C1がVLANデバイスであるかどうか判断した上で、第5クライアント端末C1に対して起動コマンド、起動時刻およびVLANグループ情報70を送信する(ステップS56.1.1:StartVlan(vlanGroupID))。
【0158】
第5クライアント端末C1よりOKを受信した場合、第3中継サーバCは、応答信号(OK(clientC1(ip,mac)))を、第1中継サーバAを介して第1クライアント端末A1へ送信する。応答信号には、第5クライアント端末C1の識別情報、IPアドレスおよびMACアドレスが含まれている。
【0159】
次に、第1クライアント端末A1は、応答信号からの抽出処理および仮想アドレス情報の作成処理を行い(図20AのステップS116、S118参照)、VLANデバイスおよびVLANデバイスが接続された中継サーバに対して初期化コマンドおよび作成した仮想アドレス情報80を送信する。ここで仮想アドレス情報80には、図12に示すような、第1クライアントA1端末、第3クライアント端末B1および第5クライアント端末C1それぞれの識別情報、仮想IPアドレスおよび仮想MACアドレスが含まれている。
【0160】
まず、第1クライアント端末A1は、第1中継サーバAを介して、第2中継サーバBに対して初期化コマンドおよび仮想アドレス情報80を送信する(ステップS57:configVlan(vlanGroupID,addrList)、ステップS57.1:configVlan(vlanGroupID,addrList))。次に第2中継サーバBは、抽出処理(図24ステップS161〜ステップS164およびステップS166参照)を経て抽出した第3クライアント端末B1に対して初期化コマンドおよび仮想アドレス情報80を送信する(ステップS57.1.1:configVlan(vlanGroupID,addrList))。第3クライアント端末B1よりOKを受信すれば、第2中継サーバBは第1中継サーバAにOKを返信する。OKを受信した第1中継サーバAは、第1クライアント端末A1にOKを返信する。
【0161】
また、第1クライアント端末A1は、第1中継サーバAを介して、第3中継サーバCに対して初期化コマンドおよび仮想アドレス情報80を送信する(ステップS58:configVlan(vlanGroupID,addrList)、ステップS58.1:configVlan(vlanGroupID,addrList))。次に第3中継サーバCは、上述した処理(図24のステップS161〜ステップS164およびステップS166参照)を経て抽出した第5クライアント端末C1に対して初期化コマンドおよび仮想アドレス情報を転送する(ステップS58.1.1:configVlan(vlanGroupID,addrList))。第5クライアント端末C1よりOKを受信すれば、第3中継サーバCは第1中継サーバAにOKを返信する。OKを受信した第1中継サーバAは、第1クライアント端末A1にOKを返信する。以上の処理により、第1VLANグループ内の全てのVLANデバイスに仮想アドレス情報が送信される。
【0162】
その後、VLANデバイスが接続された中継サーバは、VLANグループ情報70のセッション情報73を参照し、「sp」として自端末が設定されていてかつ未確立であるハブセッションを確立する。この例では、いずれのハブセッションも未確立であるので、まず「sp」として指定されている第1中継サーバAが、「ep」として指定されている第2中継サーバBに対してハブセッションの確立を要求する(ステップS59:createHubSsn(vlanGroupID))。第2中継サーバBからOKが返されると、第1中継サーバAと第2中継サーバBとの間にハブセッションが確立する。また、「sp」として指定されている第1中継サーバAは、「ep」として指定されている第3中継サーバCに対してハブセッションの確立を要求する(ステップS60:createHubSsn(vlanGroupID))。第3中継サーバCからOKが返されると、第1中継サーバAと第3中継サーバCとの間にハブセッションが確立する。
【0163】
さらに、「sp」として指定されている第2中継サーバBは、「ep」として指定されている第3中継サーバCに対してハブセッションの確立を要求する(ステップS61:createHubSsn(vlanGroupID))。第3中継サーバCからOKが返されると、第2中継サーバBと第3中継サーバCとの間にハブセッションが確立する。
【0164】
ハブセッションが確立されると、VLANデバイスが接続された中継サーバは、自端末に接続されているVLANデバイスとの間にデバイスセッションを確立する。まず、第1中継サーバAは、第1クライアント端末A1に対してデバイスセッションの確立を要求する(ステップS62:createDeviceSsn(vlanGroupID))。第1クライアント端末A1からOKが返信されると、第1中継サーバAと第1クライアント端末A1との間にデバイスセッションが確立する。
【0165】
また、第2中継サーバBは、第3クライアント端末B1に対してデバイスセッションの確立を要求する(ステップS63:createDeviceSsn(vlanGroupID))。第3クライアント端末B1からOKが返されると、第2中継サーバBと第3クライアント端末B1との間にデバイスセッションが確立する。さらに、第3中継サーバCは、第5クライアント端末C1に対してデバイスセッションの確立を要求する(ステップS64:createDeviceSsn(vlanGroupID))。第5クライアント端末C1からOKが返されると、第3中継サーバCと第5クライアント端末C1との間にデバイスセッションが確立する。
【0166】
上記のようにVLANグループ内でハブセッションおよびデバイスセッションを含むVLANセッションが確立されると、各VLANデバイスは、自端末のVLANインターフェースを初期化し、VLANインターフェースに仮想アドレスを設定する。各VLANデバイスにおいて仮想アドレスが設定されると、仮想アドレスとVLANセッションを使ってクライアント端末同士がVLANデバイスとして互いに通信可能となる。
【0167】
この状態で、第4クライアント端末B2が再びログオンする。具体的には、第4クライアント端末B2は、第2中継サーバBにログオンを通知し(ステップS65:login())、第2中継サーバBからOKを受信する。ログオンが通知された第2中継サーバBは、中継サーバ情報を参照し、第3クライアント端末B1に第4クライアント端末B2のログオンを通知する(ステップS66:notifyLogon(clientB2))。第3クライアント端末B1は、第2中継サーバBにOKを返す。また第2中継サーバBは、中継サーバ情報を参照し、第1中継サーバAに第4クライアント端末B2のログオンを通知する(ステップS67:notifyLogon(clientB2))。第1中継サーバAは、中継サーバ情報を参照し、第1クライアント端末A1に第4クライアント端末B2のログオンを通知する(ステップS67.1:notifyLogon(clientB2))。第1クライアント端末A1からOKが返ってくると、第1中継サーバAは第2中継サーバBにOKを返す。なお、この例では図示されていないが、第1中継サーバAは、中継サーバ情報を参照し、第1中継グループを構成する第2クライアント端末A2に対しても第4クライアント端末B2のログオンを通知する。
【0168】
さらに第2中継サーバBは、中継サーバ情報を参照し、第3中継サーバCに第4クライアント端末B2のログオンを通知する(ステップS68:notifyLogon(clientB2))。第3中継サーバCは、中継サーバ情報を参照し、第5クライアント端末C1に第4クライアント端末B2のログオンを通知する(ステップS68.1:notifyLogon(clientB2))。第5クライアント端末C1からOKが返ってくると、第3中継サーバCは第2中継サーバBにOKを返す。以上の処理により、第1中継グループ内の全ての中継サーバおよびクライアント端末が第4クライアント端末B2のログオンを共有する。
【0169】
その後、第4クライアント端末B4は、第1VLANグループの起動指示をユーザから受け付けると、第2中継サーバBに対して、起動コマンド、起動時刻およびVLANグループ情報70を送信する(ステップS69:StartVlan(VlanGroupID)。
このとき、第2中継サーバBは、受信した起動コマンド、起動時刻およびVLANグループ情報70を参照し、受信した起動時刻が有効であるかを判断する。さらに第2中継サーバBは、初期化コマンドおよび仮想アドレス情報を受信しているかどうかを判断した上で、途中参加信号(notifyJoin(addrList))を第4クライアント端末B2に送信する(図23AのステップS143〜S146、S148〜S149参照)。この例では、第4クライアント端末B2から受信した起動時刻は、ステップS55、S55.1において第1クライアント端末A1から受信した起動時刻より遅いため、第2中継サーバBは、第4クライアント端末B2から受信した起動時刻は有効でないと判断する。さらに、第2中継サーバBは、すでにステップS57、S57.1において初期化コマンドおよび仮想アドレス情報80を受信している。従って、第2中継サーバBは、第4クライアント端末B2に対して、初期化コマンド、仮想アドレス情報80および途中参加信号を送信する。
【0170】
途中参加信号を受信すれば、第4クライアント端末B2は、仮想アドレス情報80から抽出した割り当て済みの仮想アドレスを参照して、自端末に対して仮想アドレスを決定し、仮想アドレス情報を更新する。そして、第4クライアント端末B2は、更新した仮想アドレス情報を送信する(図20BのステップS123〜131参照)。この例では、第4クライアント端末B2は、自端末に対して仮想アドレスを決定が可能であると判断し、抽出した割り当て済み仮想IPアドレスおよび仮想MACアドレスそれぞれの末尾を変更した仮想IPアドレスおよび仮想MACアドレス(177.112.0.4、00−11−22−f0−00−04)を自端末に割り当てる。
【0171】
その後更新された仮想アドレス情報および途中参加コマンドが、更新された仮想アドレス情報およびVLANグループ情報70に基づき各VLANデバイスに送信される。まず、第4クライアント端末B2は、第2中継サーバBに更新された仮想アドレス情報および途中参加コマンドを送信する(ステップS70:JoinVlan(vlanGroupID,addrList))。第2中継サーバBは、更新された仮想アドレス情報および途中参加コマンドを第1中継サーバAに送信する(ステップS70.1:JoinVlan(vlanGroupID,addrList))。第1中継サーバAは、更新された仮想アドレス情報および途中参加コマンドを第1クライアント端末A1に送信する(ステップS70.1.1:JoinVlan(vlanGroupID,addrList))。第1クライアント端末A1からOKが返ってくると、第1中継サーバAは第2中継サーバBにOKを返す。
【0172】
また、第2中継サーバBは更新された仮想アドレス情報および途中参加コマンドを第3クライアント端末B1に送信する(ステップS70.2:JoinVlan(vlanGroupID,addrList))。第3クライアント端末B1は第2中継サーバBにOKを返す。
【0173】
さらに、第2中継サーバBは、更新された仮想アドレス情報および途中参加コマンドを第3中継サーバCに送信する(ステップS70.3:JoinVlan(vlanGroupID,addrList))。第3中継サーバCは、更新された仮想アドレス情報および途中参加コマンドを第5クライアント端末C1に送信する(ステップS70.3.1:JoinVlan(vlanGroupID,addrList))。第5クライアント端末C1からOKが返ってくると、第3中継サーバCは第2中継サーバBにOKを返す。第2中継サーバBは、第1クライアント端末A1、第3クライアント端末B1および第5クライアント端末C1からOKを受け取ると、第4クライアント端末B2にOKを返す。
以上の処理により、VLANデバイスに対して更新された仮想アドレス情報が送信される。
【0174】
その後、ハブの役割を果たす中継サーバは、VLANグループ情報70のセッション情報73を参照し、「sp」として自端末が設定されていてかつ未確立であるハブセッションを確立する。この例では、全てのハブセッションが確立済みである。また、ハブの役割を果たす中継サーバは、自端末に接続されているVLANデバイスとの間に未確立のデバイスセッションがある場合には、デバイスセッションを確立する。この例では、第2中継サーバBは第4クライアント端末B2との間にデバイスセッションを確立する(ステップS71:createDeviceSsn(vlanGroupID))。
上記のようにVLANグループ内でハブセッションおよびデバイスセッションを含むVLANセッションが確立されると、各VLANデバイスは、自端末のVLANインターフェースを初期化し、VLANインターフェースに仮想アドレスを設定する。各VLANデバイスにおいて仮想アドレスが設定されると、仮想アドレスとVLANセッションを使ってVLANデバイス同士がVLANデバイスとして互いに通信可能となる。
【0175】
例えば、仮想IPアドレスが「117.112.0.1」であり、仮想MACアドレス「00.11.22:f0:00:01」である第1クライアント端末A1は、VLANセッションを介して、仮想IPアドレスが「117.112.0.4」であり仮想MACアドレスが「00.11.22:f0:00:04」である第4クライアント端末B2にデータ転送が行える。具体的には、第1クライアント端末A1は、デバイスセッションを介して第1中継サーバAに通信パケットを送信する(ステップS72:sendData(packet01))。通信パケットには、送信先である第3クライアント端末B1の仮想アドレスと送信したいデータが含まれる。次に第1中継サーバAは、ハブセッションを介して第2中継サーバBに通信パケットを送信する(ステップS72.1:sendData(packet01))。その後第2中継サーバBは、デバイスセッションを介して第4クライアント端末B2に通信パケットを送信する(ステップS72.1.1:sendData(packet01))。
【0176】
本実施形態の中継システムでは、上記のとおりVLANグループ間でVLANグループ情報を共有する。また、VLANグループを起動させると、VLANデバイス間にVLANセッションを確立し、VLANグループを起動する際に作成した仮想アドレス情報をVLANデバイス間で共有する処理を行う。さらに、VLANデバイスのVLANインターフェースに仮想アドレスを設定する処理が行われ、VLANインターフェースおよびVLANセッションを介してVLANデバイス間でデータが送受信される。このように、本実施形態の中継システムでは、仮想アドレスおよびVLANセッションを使ってクライアント端末同士がVLANデバイスとして互いに通信可能となる。
また、本実施形態の中継システムでは、VLANグループの起動の重複を解消できる。そして、VLANグループの起動指示が重複した場合には、後に同じVLANグループに対して起動指示を行ったVLANクライアント端末は、自端末が実際に使用するアドレスと仮想アドレスとが同じアドレス体系でなければ、VLANグループに途中参加することができる。
【0177】
17.他の実施形態
以上、本発明の一実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、発明の要旨を逸脱しない範囲で種々の変更が可能である。特に、本明細書に書かれた複数の実施形態および変形例は必要に応じて任意に組合せ可能である。
【0178】
(1)中継サーバ情報に登録されたクライアント端末は、同じ中継グループを構成する中継サーバであれば、接続された中継サーバとは異なる他の中継サーバを介してリモートログインできる。従って、VLANグループ情報の作成時と、VLANグループの起動時とでは、VLANクライアント端末が異なる中継サーバを介してログインしている場合がある。このようにクライアント端末が他の中継サーバを介してログインしている状態は、中継サーバ情報の共有により同一中継グループ内で起動している中継サーバおよびクライアント端末間において共有されている。
【0179】
上記のような場合、起動するVLANグループの選択を受け付けたクライアント端末のVLANグループ情報更新部235は、セッション情報を、リモートログインを受け付けた中継サーバを含めたセッション情報へと更新する。そして更新したVLANグループ情報をVLANクライアント端末およびVLANクライアント端末が接続された中継サーバ間で共有させる。
【0180】
例えば、第1中継グループが、第1中継サーバA、第2中継サーバBおよび第3中継サーバCに加えてさらにVLANクライアント端末が接続されていない第4中継サーバから構成されていると仮定する。このような第1中継グループにおいて、第1クライアント端末A1が第1中継サーバAではなく第4中継サーバDを介して第1中継グループにリモートログインした場合、共有されているセッション情報には、第4中継サーバの識別情報は含まれていない。
そこで、上記のような状態でVLANグループの起動指示を受け付けた際には、VLANグループ情報更新部235は、セッション情報のハブ情報に第4中継サーバの識別情報を追加する。また、VLANグループ情報更新部235は、第4中継サーバとVLANデバイスが接続された中継サーバ間の経路情報を作成して、VLANグループ情報のセッション情報を更新する。そして、更新したVLANグループ情報をVLANデバイスおよびVLANデバイスが接続された中継サーバに対して送信する。
【産業上の利用可能性】
【0181】
本発明は、互いに通信可能な複数の中継サーバと、複数のクライアント端末と、クライアント端末を中継サーバに接続するLANとを有する中継通信システム、およびそれに用いられる中継サーバに広く適用できる。
【符号の説明】
【0182】
1 第1LAN
2 第2LAN
3 第3LAN
4 WAN
30 中継サーバ情報
40 クライアント端末情報
50 クライアント端末情報
60 クライアント端末情報
70 VLANグループ情報
80 仮想アドレス情報
A 第1中継サーバ
B 第2中継サーバ
C 第3中継サーバ
A1 第1クライアント端末
A2 第2クライアント端末
B1 第3クライアント端末
B2 第4クライアント端末
C1 第5クライアント端末

【特許請求の範囲】
【請求項1】
第1ネットワークと、
第2ネットワークと、
前記第1ネットワークに接続される第1中継サーバと、
前記第2ネットワークに接続され、第3ネットワークを介して前記第1中継サーバと通信可能な第2中継サーバと、
前記第1中継サーバと前記第1ネットワークを介して接続される一以上のクライアント端末と、
前記第2中継サーバと前記第2ネットワークを介して接続される一以上のクライアント端末と、
を備え、
前記第1中継サーバ、前記第2中継サーバ、前記第1中継サーバに接続される一以上のクライアント端末および前記第2中継サーバに接続される一以上のクライアント端末は、
前記第1中継サーバ、前記第2中継サーバ、前記第1中継サーバに接続される一以上のクライアント端末および前記第2中継サーバに接続される一以上のクライアント端末が中継グループを構成することを示す中継グループ情報を格納する中継グループ情報格納部と、
前記第1中継サーバの起動情報と、前記第2中継サーバの起動情報と、前記第1中継サーバに接続される一以上のクライアント端末の起動・登録情報と、前記第2中継サーバに接続される一以上のクライアント端末の起動・登録情報と、を含む中継サーバ情報を格納する中継サーバ情報格納部と、
前記中継グループ情報および前記中継サーバ情報を、前記第1中継サーバ、前記第2中継サーバ、前記第1中継サーバに接続される一以上のクライアント端末および前記第2中継サーバに接続される一以上のクライアント端末の間で共有させる情報共有部と、
前記第1中継サーバに接続された一以上のクライアント端末および前記第2中継サーバに接続された一以上のクライアント端末のうち二以上のクライアント端末は前記中継グループにおいてVLANグループを構成するVLANクライアント端末であって、前記VLANクライアント端末が接続された前記第1中継サーバの識別情報および前記第2中継サーバの識別情報を含むハブ情報と、前記第1中継サーバおよび前記第2中継サーバ間で確立されるセッションの接続側と被接続側を示すセッション情報と、前記VLANクライアント端末を識別する識別情報とを含むVLANグループ情報を、前記VLANクライアント端末間で共有させるVLANグループ情報制御部と、
を有し、
前記第1中継サーバおよび前記第2中継サーバは、
前記VLANグループの起動指示を受信した場合に、前記VLANグループが起動中でなければ、前記セッション情報に基づき前記第1中継サーバと前記第2中継サーバとの間にVLANセッションとしてのハブセッションを確立し、起動可能な前記VLANクライアント端末としてのVLANデバイスと前記VLANデバイスが接続された前記第1中継サーバまたは前記第2中継サーバとの間にVLANセッションとしてのデバイスセッションを確立するVLANセッション制御部と、
前記VLANグループの起動指示を受信した場合に、前記VLANグループが起動中であれば、前記起動指示の送信元である途中参加VLANクライアント端末に対して前記VLANグループへの途中参加を許可する途中参加信号を送信する起動コマンド制御部と、
をさらに有し、
前記第1中継サーバに接続される一以上のクライアント端末および前記第2中継サーバに接続される一以上のクライアント端末は、
自端末が前記途中参加VLANクライアント端末であって前記途中参加信号を受信した場合、起動中の前記VLANグループを構成する前記VLANデバイスに対して割り当てられた仮想アドレスを含む仮想アドレス情報に基づき作成した自端末用仮想アドレスを追加して前記仮想アドレス情報を更新し、前記更新された仮想アドレス情報を前記VLANデバイスに対して送信する仮想アドレス制御部をさらに有し、
前記VLANセッション制御部は、前記途中参加VLANクライアント端末に関する未確立のVLANセッションを確立し、
前記途中参加VLANクライアント端末と前記VLANデバイスとは、前記更新された仮想アドレス情報と、前記ハブセッションおよび前記デバイスセッションを含む確立された前記VLANセッションとを利用して通信する中継通信システム。
【請求項2】
前記起動コマンド制御部は、起動中の前記VLANグループの前記VLANデバイスに対して前記仮想アドレスが割り当てられているかどうかを判断し、前記仮想アドレスが割り当てられている場合に前記途中参加信号を前記途中参加VLANクライアント端末に対して送信する請求項1に記載の中継通信システム。
【請求項3】
前記仮想アドレス制御部は、前記仮想アドレス情報を参照して前記自端末用仮想アドレスを作成可能かどうか判断し、前記仮想アドレスを作成できないと判断した場合、前記VLANグループへの途中参加の処理を終了する請求項1または請求項2に記載の中継通信システム。
【請求項4】
前記仮想アドレスは、仮想IPアドレスおよび仮想MACアドレスを含む、請求項1〜3のいずれかに記載の中継通信システム。
【請求項5】
第1ネットワークとして接続される第1中継サーバと通信可能であり、第2ネットワークに接続される第2中継サーバとして機能する中継サーバであって、
前記第1中継サーバ、前記第2中継サーバ、前記第1中継サーバに接続される一以上のクライアント端末および前記第2中継サーバに接続される一以上のクライアント端末が中継グループを構成することを示す中継グループ情報を格納する中継グループ情報格納部と、
前記第1中継サーバの起動情報と、前記第2中継サーバの起動情報と、前記第1中継サーバに接続される一以上のクライアント端末の起動・登録情報と、前記第2中継サーバに接続される一以上のクライアント端末の起動・登録情報と、を含む中継サーバ情報を格納する中継サーバ情報格納部と、
前記中継グループ情報および前記中継サーバ情報を、前記第1中継サーバ、前記第2中継サーバ、前記第1中継サーバに接続される一以上のクライアント端末および前記第2中継サーバに接続される一以上のクライアント端末の間で共有させる情報共有部と、
前記第1中継サーバに接続された一以上のクライアント端末および前記第2中継サーバに接続された一以上のクライアント端末のうち二以上のクライアント端末は前記中継グループにおいてVLANグループを構成するVLANクライアント端末であって、前記VLANクライアント端末が接続された前記第1中継サーバの識別情報および前記第2中継サーバの識別情報を含むハブ情報と、前記第1中継サーバと前記第2中継サーバとの間で確立されるセッションの接続側と被接続側を示すセッション情報と、前記VLANクライアント端末を識別する識別情報とを含むVLANグループ情報を、前記VLANクライアント端末間で共有させるVLANグループ情報制御部と、
前記VLANグループの起動指示を受信した場合に、前記VLANグループが起動中でなければ、前記セッション情報に基づき前記第1中継サーバとの間にVLANセッションとしてのハブセッションを確立し、自端末に接続された前記VLANクライアント端末のうち起動可能なVLANクライアント端末としてのVLANデバイスとの間にVLANセッションとしてのデバイスセッションを確立するVLANセッション制御部と、
前記VLANグループに関する起動指示を受信した場合に、前記VLANグループが起動中であれば、前記起動指示の送信元である途中参加VLANクライアント端末に対して前記VLANグループへ途中参加を許可する途中参加信号を送信する起動コマンド制御部と、
前記VLANグループの通信を制御する中継サーバ通信制御部と、
を備え、
前記VLANセッション制御部は、前記途中参加信号に対応して、起動中の前記VLANグループを構成する前記VLANデバイスに対して割り当てられた仮想アドレスに前記途中参加VLANクライアント端末の仮想アドレスが追加されて更新された仮想アドレス情報を受信すれば、前記途中参加VLANクライアント端末に関する未確立のVLANセッションをさらに確立し、
前記中継サーバ通信制御部は、前記更新された仮想アドレス情報と、前記ハブセッションおよび前記デバイスセッションを含む確立された前記VLANセッションとを利用した前記途中参加VLANクライアント端末と前記VLANデバイスとの間の通信を制御する中継サーバ。
【請求項6】
前記起動コマンド制御部は、起動中の前記VLANグループの前記VLANデバイスに対して仮想アドレスが割り当てられているかどうかを判断し、前記仮想アドレスが割り当てられている場合に前記途中参加信号を前記途中参加VLANクライアント端末に対して送信する請求項5に記載の中継サーバ。
【請求項7】
前記仮想アドレスは、仮想IPアドレスおよび仮想MACアドレスを含む、請求項5または6に記載の中継サーバ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20A】
image rotate

【図20B】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23A】
image rotate

【図23B】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate


【公開番号】特開2012−129831(P2012−129831A)
【公開日】平成24年7月5日(2012.7.5)
【国際特許分類】
【出願番号】特願2010−280039(P2010−280039)
【出願日】平成22年12月16日(2010.12.16)
【出願人】(000006297)村田機械株式会社 (4,916)
【Fターム(参考)】