以下、本発明を図示する実施形態に基づいて説明する。なお、ここで述べる実施形態は、PCT/JP2016/055960に基づく優先権主張を伴う国際出願PCT/JP2017/006131、以下、先願となる国際出願と呼ぶ)に記載された発明(以下、先願基本発明と呼ぶ)を基礎とするものである。本発明の特徴は、この先願基本発明に用いられている接続仲介装置を複数組設けて接続仲介処理を分散させることにより、各接続仲介装置の処理負荷を軽減し、任意の端末装置間の接続仲介処理を円滑に運ぶことができるようにした点にある。
このような事情から、ここでは、先願基本発明を基礎とした本発明の実施形態を、本発明の好ましい一実施形態として述べることにする。そこで、以下の§1〜§4において、まず、先願基本発明の説明を行い、§5以降において、本発明に固有の特徴について述べることにする。したがって、以下の§1〜§4で述べる内容(図1〜図20に示す内容)は、実質的に先願となる国際出願PCT/JP2017/006131に記載された実施形態と同じものである。
<<< §1. 先願基本発明の第1の実施形態 >>>
<1−1. 先願基本発明の第1の実施形態の構成>
図1は、先願基本発明の第1の実施形態に係るネットワーク通信システムの全体構成を示すブロック図である。図示のとおり、このネットワーク通信システムは、接続仲介装置100と複数の端末装置200A〜200Dによって構成されており、これらの各装置はいずれもネットワークN(この例では、インターネット)を介して相互に接続することが可能である。
図では、説明の便宜上、4台の端末装置200A〜200Dを用いた例を示すことにするが、実用上は、より多数の端末装置を利用するのが一般的である。各端末装置200A〜200Dは、共通の構成を有する同一の装置である。そこで、ここでは、この共通の端末装置について言及する場合は符号200を用いて示し、相互に区別する必要がある場合には、符号末尾にA〜Dを付して示すことにする。端末装置200の内部構成要素を示す各符号についても同様である。
結局、このネットワーク通信システムは、ネットワークNを介して相互に接続可能な複数の端末装置200A〜200Dと、これら複数の端末装置間の接続を仲介する接続仲介装置100と、を備えたシステムということになる。端末装置200としては、パソコン、携帯電話、タブレット型端末など、ネットワークNに接続して通信を行う機能を有する様々な電子機器を利用することができる。一方、接続仲介装置100は、これら各端末装置200A〜200DからネットワークNを介してアクセスを受けるサーバコンピュータによって構成されている。
各端末装置200A〜200Dには、個々の端末装置を相互に識別するための端末IDがそれぞれ付与されており、接続仲介装置100は、この端末IDを利用して通信元となる端末装置と通信先となる端末装置との間の接続を仲介する処理を実行する。ここでは、図示のとおり、端末装置200A,200B,200C,200Dには、それぞれ「0010」,「0020」,「0030」,「0040」なる端末IDが付与されているものとする。
なお、先願基本発明を実施する上で、端末IDは、個々の端末装置を相互に識別することができる情報であれば、どのような情報であってもかまわない。図示の例では、4台の端末装置しか用いられていないため、「0010」のような4桁の数字を端末IDとして用いれば十分であるが、各端末装置を相互に識別するためには、ユニークなIDを用いる必要があるので、実用上は、より桁数の多い数字もしくは数字とアルファベットの組み合わせを用いるのが好ましい。具体的には、個々の端末装置に内蔵されているCPUのシリアル番号、通信インターフェイスに付与されたMACアドレス、携帯電話を端末装置として用いる場合は電話番号やSIMカードのシリアル番号、などを端末IDとして用いることが可能である。
各端末装置200A〜200Dには、それぞれ自己のネットワーク上での所在を示す所在アドレスが付与されている。図示の例の場合、端末装置200A,200B,200C,200Dには、それぞれAD1,AD2,AD3,AD4なる所在アドレスが付与されている。所在アドレスとしては、ネットワーク上で当該端末装置の所在を一義的に決定できるアドレスであれば、どのようなアドレスを用いてもよい。図示の例のように、ネットワークNとしてインターネットを用い、通信プロトコルとしてIPを利用する場合は、個々の端末装置200のネットワークN上での所在を示す所在アドレスとして、グローバルIPアドレスもしくはNAT−IDを用いるのが好ましい。
端末IDが、個々の端末装置を相互に識別するために必要な情報であるのに対して、所在アドレスは、ネットワークNを介して個々の端末装置をアクセスするために必要な情報である。しかも多くの端末装置の場合、所在アドレスは常に一定ではなく、時事刻々と変化する。たとえば、携帯電話やモバイルパソコンなどの携帯型端末装置の場合、移動とともに交信相手となる基地局が変化するため、所在アドレスも時間的に変化する。また、デスクトップ型パソコンのような定点設置型の端末装置の場合も、プロバイダから付与されるIPアドレスなどが更新されるため、やはり所在アドレスが時間的に変化するのが一般的である。
後述するように、先願基本発明に用いる端末装置200は、自己のネットワーク上での所在を示す所在アドレスを、ネットワークNを介して接続仲介装置100に通知する機能を有している。このため、接続仲介装置100は、各端末装置200A〜200Dの最新アドレスを常に把握することができ、必要に応じて、各端末装置200A〜200Dにアクセスすることが可能である。
図示のとおり、接続仲介装置100には、アドレステーブル格納部110、アドレステーブル更新部120、通信先アドレス返信部130が設けられている。前述したとおり、この接続仲介装置100は、実際には、サーバコンピュータなどのコンピュータによって構成される。したがって、図に個々のブロックとして示されている各構成要素は、実際には、コンピュータに専用のプログラムを組み込むことにより構築されることになる。
アドレステーブル格納部110には、各端末装置200A〜200Dのそれぞれについて、端末IDと所在アドレスとを対応づけたアドレステーブルTが格納されており、アドレステーブル更新部120は、各端末装置200A〜200Dからの通知に基づいて、このアドレステーブルTの内容を更新する処理を行う。また、通信先アドレス返信部130は、各端末装置200A〜200Dから接続仲介依頼があると、アドレステーブルTを参照することにより、通信先アドレスを返信する処理を行う。
図には、アドレステーブルTとして、4台の端末装置200A〜200Dのそれぞれについて、端末IDと所在アドレスとの対応関係を示す情報が格納されている。具体的には、端末装置200Aについては端末ID「0010」と所在アドレス「AD1」とが対応づけられ、端末装置200Bについては端末ID「0020」と所在アドレス「AD2」とが対応づけられ、端末装置200Cについては端末ID「0030」と所在アドレス「AD3」とが対応づけられ、端末装置200Dについては端末ID「0040」と所在アドレス「AD4」とが対応づけられている。
続いて、図2を参照しながら、端末装置200の詳細構成および個々の構成要素の具体的な処理動作を説明する。図示のとおり、端末装置200には、接続仲介依頼部210、通信要求受付部220、通信先セッション確立部230、通信開始要求部240、自己アドレス通知部250、通信元セッション確立部260が設けられている。
この端末装置200も、実際には、種々のコンピュータ(携帯電話などの機器も含む)によって構成され、図に個々のブロックとして示されている各構成要素は、実際には、コンピュータに専用のプログラムを組み込むことにより構築される。なお、実際の端末装置200には、この他にも種々の構成要素が組み込まれている。たとえば、端末装置200がスマートフォンであれば、様々なアプリケーションプログラムを組み込むことにより、様々な処理機能をもった構成要素が付加されることになるが、ここでは、先願基本発明に直接関係する構成要素のみを図にブロックとして示すことにし、その他の構成要素についての説明は省略する。もちろん、端末装置200には、ユーザからの指示入力や文字入力を行う入力インターフェイスや、ユーザに情報を提示するためのディスプレイなどの構成要素も備わっているが、これらの構成要素についての説明も省略する。
結局、図2において、端末装置200内に6つのブロックとして描かれている構成要素は、先願基本発明に係る端末装置200において必須の機能要素ということになる。このブロック図には、各ブロック間の信号の流れを示す矢印として、太線矢印、細線矢印、白抜矢印の3通りの矢印が用いられている。ここで、太線矢印は、端末装置200と接続仲介装置100との間でやりとりされる、通信セッション確立前の信号の流れを示しており、細線矢印は、一対の端末装置200の間でやりとりされる、通信セッション確立前の信号の流れを示している。そして、白抜矢印は、一対の端末装置200の間でやりとりされる、通信セッション確立後の信号の流れを示している。
また、図2では、端末装置200内の6つの構成要素が、楕円、矩形、二重矩形という3通りのブロックを用いて描かれているが、これは、各構成要素の役割分担を示すための便宜である。具体的には、楕円ブロックで示されている構成要素は、端末装置200が「アドレス通知」の処理を実行するための構成要素であり、矩形ブロックで示されている構成要素は、端末装置200が「通信元」として機能する場合に必要な処理を実行する構成要素であり、二重矩形ブロックで示されている構成要素は、端末装置200が「通信先」として機能する場合に必要な処理を実行する構成要素である。
本願において、「通信元」および「通信先」という用語は、2台の端末装置が相互に通信を行う場合に、これら2台を区別するために用いる用語であり、自発的に通信を開始するための処理を行う側を「通信元」と呼び、この「通信元」からの働きかけに応じて、当該「通信元」と通信を行うために必要な処理を行う側を「通信先」と呼んでいる。たとえば,2台の端末装置を電話として使う場合、発呼側の装置が「通信元」であり、着呼側の装置が「通信先」になる。「通信元」の端末装置は、特定の「通信先」を指定して、自発的に通信を開始するための処理を行うことになる。
もちろん、端末装置200は、「通信元」になったり「通信先」になったりする。「通信元」になったときには、図2に矩形ブロックで示されている構成要素による処理が行われ、「通信先」になったときには、図2に二重矩形ブロックで示されている構成要素による処理が行われる。以下、端末装置200の6つの構成要素の各機能を順に説明する。
上述したように、楕円ブロックで示されている自己アドレス通知部250は、「アドレス通知」の処理を実行するための構成要素であり、自己のネットワーク上での所在を示す所在アドレスを、接続仲介装置100に対して通知する処理を実行する。所在アドレスとしてIPアドレスを用いるのであれば、自己アドレス通知部250は、現時点で自己に付与されたIPアドレスをネットワークNを介して接続仲介装置100に通知する処理を行うことになる。
通常、インターネットに接続可能な端末装置200には、インターネットプロバイダから所定のグローバルIPアドレスが付与されるので、自己アドレス通知部250は、端末装置200に付与されたグローバルIPアドレスを、所在アドレスとして接続仲介装置100に対して通知すればよい。また、ルータのNAT機能を利用して、プライベートIPアドレスが付与されている場合には、NAT−IDを所在アドレスとして接続仲介装置100に対して通知すればよい。所在アドレスを通知する際には、端末IDを同時に送信するようにする。
図1に示すアドレステーブル更新部120は、このような通知を受けて、アドレステーブルTの更新を行う。たとえば、端末装置200Aから接続仲介装置100に対して、端末ID「0010」と所在アドレス「AD1」とが通知された場合、アドレステーブル更新部120は、端末ID「0010」と所在アドレス「AD1」とを対応づけてアドレステーブルTに格納する処理を行う。
前述したとおり、一般的な端末装置200の場合、所在アドレスが時間的に変化する。したがって、実用上は、自己アドレス通知部250には、所定周期で繰り返して、現時点の自己(端末装置200)の所在アドレスを通知する機能をもたせておくのが好ましい。たとえば、自己アドレス通知部250が1分おきに繰り返し通知を行うようにすれば、アドレステーブルTは1分おきに最新の情報に更新されることになる。
あるいは、自己アドレス通知部250には、自己(端末装置200)の所在アドレスが変更になったときに、現時点の所在アドレスを通知する機能をもたせておくようにしてもよい。すなわち、初めて所在アドレスが付与された段階で、当該所在アドレスを初期状態のアドレスとして通知させ、その後は、所在アドレスが変更になるたびに新たな所在アドレスを通知させるようにすればよい。もちろん、所定周期で繰り返し通知する運用と、所在アドレスが変更になったときに通知する運用とを組み合わせてもかまわない。
次に、図2に矩形ブロックで示されている4つの構成要素について説明する。上述したように、これら4つの構成要素は、端末装置200が「通信元」として機能する場合に必要な処理を実行する。
まず、通信要求受付部220は、自己を通信元として、通信先の別な端末装置に対する通信要求を受け付ける処理を行う。たとえば、端末装置200(通信元)のユーザが、特定の相手に電話をかけたい場合、当該相手が所持する別な端末装置(通信先)に対して通信を行いたい旨の通信要求を行うことになる。この通信要求は、たとえば、図示されていない入力インターフェイスを介したユーザの操作入力(たとえば、タッチパネル上での操作)として与えられ、相手先の端末装置を特定するための何らかの情報を含むものになる。
接続仲介依頼部210は、通信要求受付部220によって通信要求が受け付けられたときに、接続仲介装置100に対して、通信先の別な端末装置の端末IDを特定するための通信先特定情報を含む接続仲介依頼を送信する。ここで、接続仲介依頼に含まれる通信先特定情報は、通信先の別な端末装置の端末IDであってもよいし、当該端末IDを特定することが可能な別な情報であってもかまわない(詳細は、§3−1で述べる)。
こうして、接続仲介依頼部210から送信された接続仲介依頼は、ネットワークNを介して接続仲介装置100へと伝達される(前述したように、図における太線矢印は、端末装置200と接続仲介装置100との間でやりとりされる、通信セッション確立前の信号の流れを示している)。すると、接続仲介装置100からは、図に太線矢印で示すように、通信先となる別な端末装置のネットワーク上での所在を示す通信先アドレスが返信されてくる。これは、図1に示す通信先アドレス返信部130の機能によるものである。
すなわち、通信先アドレス返信部130は、端末装置200の接続仲介依頼部210から、接続仲介依頼が送信されてきたときに、アドレステーブルTを参照して、接続仲介依頼に含まれている通信先特定情報によって特定される端末IDに対応づけられている所在アドレスを通信先アドレスとして返信する処理を行う。もちろん、返信の相手先は、接続仲介依頼を行った端末装置200である。要するに、通信先アドレス返信部130は、通信元の端末装置から通信先を特定した接続仲介依頼があると、アドレステーブルTを用いて、当該通信先の現時点での所在アドレスを検索し、これを通信元の端末装置に返信する処理を行うことになる。
このように、接続仲介依頼部210によって接続仲介依頼を行うと、接続仲介装置100からは、通信先の別な端末装置のネットワーク上での所在を示す通信先アドレスが返信されてくる。こうして返信されてきた通信先アドレスは、通信開始要求部240によって受信される。通信開始要求部240は、この通信先アドレスにネットワークNを介してアクセスして通信開始要求を行う。図に細線矢印で示すとおり、この通信開始要求は、1台の端末装置200(通信元)から別な1台の端末装置200(通信先)に宛てた信号ということになる。
このように、通信開始要求部240によって、通信先の別な端末装置に対して通信開始要求を送信すると、当該通信先の別な端末装置からは、この通信開始要求に応じて、通信開始受諾確認が返信されてくる(図の右側の細線矢印:この返信処理については、通信先の別な端末装置の通信先セッション確立部230の処理として後述する)。こうして返信されてきた通信開始受諾確認は、通信元セッション確立部260によって受信される。通信元セッション確立部260は、この通信開始受諾確認を受信したら、当該通信先の別な端末装置との間に通信セッションを確立して通信を開始する。図2の右端に描かれた白抜矢印は、このようにして通信セッションが確立した後の両端末間の信号(通信パケット)の流れを示している。
以上、図2に矩形ブロックで示されている4つの構成要素、すなわち、端末装置200が「通信元」として機能する場合に処理を実行する構成要素について説明したが、続いて、図2に二重矩形ブロックで示されている構成要素、すなわち、端末装置200が「通信先」として機能する場合に処理を実行する構成要素について説明する。
図2において、二重矩形ブロックで示されている構成要素は、通信先セッション確立部230である。この通信先セッション確立部230は、通信元の別な端末装置から、自己を通信先とする通信開始要求がなされたら(図の左側の下向き細線矢印)、当該通信元の別な端末装置に対して通信開始受諾確認を送信し(図の左側の上向き細線矢印)、当該通信元の別な端末装置との間に通信セッションを確立して通信を開始する。図2の左端に描かれた白抜矢印は、このようにして通信セッションが確立した後の両端末間の信号(通信パケット)の流れを示している。
結局、通信元端末装置と通信先端末装置との間の通信セッション確立後の通信は、通信元端末装置の通信元セッション確立部260と通信先端末装置の通信先セッション確立部230との間で行われることになる。別言すれば、図2の右端の白抜矢印は、ネットワークNを介して、図2の左端の白抜矢印に連なることになる。
<1−2. 第1の実施形態における具体的な通信手順>
これまで、図1および図2を参照しながら、先願基本発明の第1の実施形態に係るネットワーク通信システムの構成要素である接続仲介装置100および端末装置200の各構成要素およびその機能を説明した。ここでは、この第1の実施形態に係るネットワーク通信システムにおける通信手順を、具体例に即して説明することにする。
図3は、図2に示す端末装置における自己アドレス通知部250の機能を示すブロック図である。図の上段には接続仲介装置100が示され、図の下段には2組の端末装置200A,200Bが示されている。ここでは、端末装置200C,200Dの図示は省略するが、自己アドレス通知部250の機能は同じである。なお、前述したとおり、接続仲介装置100と各端末装置200A,200Bとの間の情報のやりとり(太線矢印で示す)は、実際にはネットワークNを介して行われるが、ここでは説明の便宜上、ネットワークNの図示は省略する。
図3に示す端末装置200A,200Bは、図2に示す端末装置200と同様に6つの構成要素を有している。すなわち、端末装置200Aは、構成要素210A〜260Aを有し、端末装置200Bは、構成要素210B〜260Bを有しており、これら各構成要素は、図2に示す構成要素210〜260と同一のものである(符号末尾のA,Bは、いずれの端末装置の構成要素であるかを区別するために付したものである)。なお、この図3は、端末装置200A,200Bの自己アドレス通知機能を説明するための図であるので、自己アドレス通知部250A,250B以外の構成要素のブロックは破線で示してある。
自己アドレス通知部250A,250Bは、自己のネットワーク上での所在を示す所在アドレスを、接続仲介装置100内のアドレステーブル更新部120に対して通知する処理を行う。図3には、自己アドレス通知部250Aからアドレステーブル更新部120への通知として、「0010:AD1」なるデータが送信されている例が示されているが、これは、自己の端末ID「0010」とともに自己の現時点での所在アドレス「AD1」を送信していることを示している。同様に、自己アドレス通知部250Bからアドレステーブル更新部120への通知として、「0020:AD2」なるデータが送信されている例が示されているが、これは、自己の端末ID「0020」とともに自己の現時点での所在アドレス「AD2」を送信していることを示している。
各端末装置200A,200Bの自己アドレス通知部250A,250Bから、このような通知を受けたアドレステーブル更新部120が、当該通知に基づいて、アドレステーブルTの内容を更新する処理を行う点は、既に§1−1で述べたとおりである。また、自己アドレス通知部250A,250Bが、所定周期で繰り返して、もしくは、所在アドレスが変更になったときに、現時点の所在アドレスを通知する処理を行う点も§1−1で述べたとおりである。
このように、自己アドレス通知部250が行う所在アドレスの通知処理は、端末装置間の通信を開始するための直接的な処理ではないが、いつでも通信を開始できるようにするための準備処理ということができる。この通知処理を行うことにより、接続仲介装置100内のアドレステーブルTを最新の状態に保つことができ、実際に、特定の端末装置間で通信を行う必要が生じたときに、接続仲介装置100による正しい仲介処理が実現できるのである。
続いて、特定の端末装置間で実際に通信を開始する際の処理手順を説明する。図4は、図1に示すネットワーク通信システムにおいて、通信元端末装置200Aと通信先端末装置200Bとの間の通信セッション確立の手順を示すブロック図である。この図4においても、図の上段には接続仲介装置100が示され、図の下段には2組の端末装置200A,200Bが示されている。ここでも、接続仲介装置100と端末装置200Aとの間の情報のやりとり(太線矢印で示す)や、端末装置200A,200B間の情報のやりとり(細線矢印で示す)は、実際にはネットワークNを介して行われるが、説明の便宜上、ネットワークNの図示は省略する。
また、ここでは、説明の便宜上、端末装置200Aを通信元、端末装置200Bを通信先とした場合の手順を説明する。このため、図4では、通信元端末装置200A内の構成要素については、通信元として必要な処理を実行する構成要素(矩形ブロックの構成要素)のみを実線で示し、通信先端末装置200B内の構成要素については、通信先として必要な処理を実行する構成要素(二重矩形ブロックの構成要素)のみを実線で示すことにし、それ以外の構成要素のブロックは破線で示してある。
一方、図5は、図4のブロック図に示されている通信セッション確立手順を時系列で説明する流れ図である。以下、図4のブロック図を参照しながら、図5の流れ図に従って、第1の実施形態における具体的な通信手順を説明する。なお、図4のブロック図において、各矢印に付された符号S1〜S7は、図5の流れ図における各ステップS1〜S7に対応するものである。逆に、図5の流れ図の各ステップにおいて、括弧書きで示された符号は、図4のブロック図における特定のブロックに対応するものであり、当該ステップの内容に関連する特定の構成要素を示すものである。
まず、ステップS1において、通信要求受付処理が行われる。これは、図4に示す通信要求受付部220Aによって行われる処理であり、たとえば、通信元端末装置200AのユーザAが、通信先端末装置200BのユーザBに対して電話をしたい、という場合に、ユーザAの操作入力に基づいて行われる処理である。たとえば、各端末装置200A,200Bが携帯電話であり、端末IDとして、それぞれの電話番号を用いている場合は、ユーザAは端末装置200Aに対して、端末装置200Bの端末ID(電話番号)を入力する操作を伴う通信要求S1を行えばよい。すなわち、端末装置200Aの通信要求受付部220Aは、自己を通信元として、通信先の別な端末装置200Bに対する通信要求S1を受け付ける処理を行うことになる。
なお、通信要求受付部220Aが通信要求S1を受け付けるのは、必ずしもユーザAが電話をかけるための操作入力を行った場合に限られるわけではない。たとえば、ユーザA,Bが通信対戦型のゲームをプレイしている場合は、当該ゲーム用のアプリケーションプログラムから通信要求受付部220Aに対して通信要求S1が与えられることになる。あるいは、端末装置200A,200Bが何らかのビジネス処理を行うパソコンであり、パソコン200Aに組み込まれたビジネス処理用のアプリケーションプログラムが、パソコン200Bに対して自動的に定時報告を行うような場合、当該アプリケーションプログラムから通信要求受付部220Aに対して通信要求S1が与えられることになる。このように、先願基本発明における通信要求は、必ずしもユーザによって与えられるものではなく、端末装置に組み込まれているプログラムによって与えられる場合もある。
こうして、ステップS1において通信要求受付が行われると、続くステップS2において、接続仲介依頼が行われる。これは、図4に示す接続仲介依頼部210Aによって行われる処理であり、既に述べたとおり、接続仲介装置100に対して、通信先の別な端末装置200Bの端末IDを特定するための通信先特定情報を含む接続仲介依頼S2を送信する処理である。
なお、一般に、ネットワークを介して接続された二者間で情報の送受を行う場合、情報の送信側は自分のアドレスを受信側に伝達し、受信側は当該送信側アドレス宛にアクノレッジ信号を返信する処理を行う。したがって、接続仲介依頼部210Aから接続仲介依頼S2を送信する際には、自己の所在アドレス「AD1」が接続仲介装置100側に伝達されることになる。後述するステップS4における返信処理は、この所在アドレス「AD1」宛に行われる。
こうして、通信元端末装置200Aの接続仲介依頼部210Aから、接続仲介装置100へ接続仲介依頼が送信されてくると、ステップS3において、この接続仲介依頼を受けた通信先アドレス返信部130が、アドレステーブル格納部110に格納されているアドレステーブルを参照して、当該接続仲介依頼に含まれている通信先特定情報によって特定される端末ID(この例では、「0020」)に対応づけられている所在アドレスを通信先アドレスとして認識する。たとえば、その時点におけるアドレステーブルTが、図1に示すようなものであったとすると、端末ID「0020」に対応づけられているアドレス「AD2」が通信先アドレスとして認識される。
そこで、ステップS4において、通信先アドレス返信部130が、ステップS3で認識した通信先アドレス「AD2」を返信する処理を行う。もちろん、返信相手は、ステップS2において接続仲介依頼を行った通信元端末装置200Aである。前述したとおり、接続仲介依頼S2には通信元端末装置200Aの所在アドレス「AD1」の情報が含まれているので、通信先アドレス返信部130は、当該所在アドレス「AD1」宛に、通信先アドレス「AD2」を返信することができる。
こうして、通信先アドレス返信部130から通信先アドレス返信S4(通信先アドレス「AD2」を伝達する情報)が送信されてくると、当該通信先アドレス返信S4は、通信開始要求部240Aによって受信される。結局、通信元端末装置200Aが、接続仲介装置100に対して接続仲介依頼S2を行うと、この接続仲介依頼S2に応じて、接続仲介装置100から、通信先端末装置200Bのネットワーク上での所在を示す通信先アドレス「AD2」が返信されてくることになる。接続仲介装置100に用意されているアドレステーブルTは、常に最新の状態に更新されているので、返信されてきた通信先アドレス「AD2」は、通信先端末装置200Bの最新の所在アドレスということになる。
そこで、この通信先アドレス返信S4により、通信先アドレス「AD2」を取得した通信開始要求部240Aは、ステップS5において、通信先端末装置200Bに対して通信開始要求S5を行う。すなわち、ネットワークNを介して、通信先アドレス「AD2」宛にアクセスを行い、相手方に通信開始の要求を伝える。このとき、自己の所在アドレス(通信元アドレス「AD1」)も併せて伝達されることになる。
通信先アドレス「AD2」宛に行われた通信開始要求S5は、通信先端末装置200Bの通信先セッション確立部230Bによって受信される。通信先セッション確立部230Bは、通信元端末装置200Aから、自己(端末装置200B)を通信先とする通信開始要求S5がなされたら、まず、ステップS6において、ネットワークNを介して通信元端末装置200Aに対して通信開始受諾確認S6を送信する。そして、続くステップS7において、通信元端末装置200Aとの間に通信セッションを確立して通信S7を開始する。
一方、通信元端末装置200A宛に送信されてきた通信開始受諾確認S6は、通信元セッション確立部260Aによって受信される。そして、ステップS7では、この通信開始受諾確認S6を受信した通信元セッション確立部260Aが、通信先端末装置200Bとの間に通信セッションを確立して通信S7を開始する処理も行われる。要するに、通信元端末装置200A側では、通信開始要求S5に応じて、通信先端末装置200Bから通信開始受諾確認S6が返信されてきたら、当該通信先端末装置200Bとの間に通信セッションを確立して通信を開始する処理を行うことになる。
かくして、通信元端末装置200Aと通信先端末装置200Bとの間に通信セッションが確立され、両者間での通信S7が行われることになる。この図5に示す流れ図において、接続仲介装置100が行った処理は、ステップS3のアドレステーブル参照処理とステップS4の通信先アドレス返信処理だけである。すなわち、接続仲介装置100が行う仲介処理は、通信元端末装置200Aからの接続仲介依頼S2を受けて、アドレステーブルTを参照し(ステップS3)、得られた通信先アドレスを通信元端末装置200Aに対して返信する(ステップS4)だけである。接続仲介装置100がこのような仲介処理を行うだけで、通信元端末装置200Aと通信先端末装置200Bとの間に通信セッションが確立され、両者間での通信が開始することになる。
このように、先願基本発明の第1の実施形態に係るネットワーク通信システムでは、接続仲介装置100の処理負荷は極めて軽くなる。前述したように、SIPを利用して両端末間の接続仲介処理を行うシステムでは、従来型の中継処理に比べれば、その処理負荷は軽減されることになるが、両端末間にセッションが確立するまで関与する必要があり、多数の端末装置からの仲介依頼が集中すると、その処理負荷はかなり重くなってくる。これに対して、先願基本発明の第1の実施形態に係るシステムの場合、接続仲介装置100は、両端末間に通信セッションが確立するまで関与する必要はなく、通信元端末装置に対して通信先アドレスを伝達する処理を行えば足りる。このため、一対の端末装置間の接続を仲介する際の処理負荷を、より軽減することが可能になる。
このように、先願基本発明の第1の実施形態に係るネットワーク通信システムでは、接続仲介装置100が通信セッション確立まで関与しないため、接続仲介装置100は、両端末装置間に通信セッションが確立し、支障なく通信が行われているか否かを把握することはできない。そこで、もし必要があれば、通信セッション確立後に、通信元セッション確立部260Aもしくは通信先セッション確立部230Bから接続仲介装置100に対して、支障なく通信セッションが確立した旨の報告を行うようにしてもよい。
なお、上述の実施例では、通信先セッション確立部230Bが、通信元端末装置200Aから、自己を通信先とする通信開始要求S5がなされた時に、ステップS6において、当該通信元端末装置200Aに対して通信開始受諾確認を送信する、という説明を行ったが、場合によっては、通信開始要求S5を受諾せずに拒絶し、通信開始受諾確認を送信しないようにしてもよい(あるいは、通信開始受諾確認の代わりに、通信開始拒絶通知を送信するようにしてもよい)。すなわち、通信先セッション確立部230Bに何らかの条件判断機能をもたせておき、通信開始要求S5がなされた場合、所定の条件を満たしている場合に限り、通信開始受諾確認を送信する処理を行わせるようにすればよい。
たとえば、通信先端末装置200BのユーザBが、通信先セッション確立部230に対して、着信拒否の設定を行えるようにし、「着信拒否の設定がなされていない」という条件を満たす場合にのみ、通信開始受諾確認を送信する処理が行われるようにすればよい。また、通信開始要求S5に、通信元端末装置200Aを特定するための何らかの通信元特定情報(たとえば、端末ID)を含ませるようにしておけば、通信先セッション確立部230Bは、通信開始要求S5を行った通信元に応じて、当該要求を受諾したり拒絶したりする処理が可能になる。
たとえば、通信先セッション確立部230Bに、通信開始要求S5を常に拒絶する通信元リスト(いわゆるブラックリスト)や通信開始要求S5を常に受諾する通信元リスト(いわゆるホワイトリスト)を用意しておけば、通信先セッション確立部230Bは、当該リストを参照することにより、通信開始要求S5を受諾するか拒絶するかの判断を行うことができる。
また、§3−3で述べるように、セキュリティを向上させる変形例を採用する場合は、通信開始要求S5に何らかのセキュリティ上の問題が存在する場合には、これを拒絶する運用を採用することも可能である。
<<< §2.先願基本発明の第2の実施形態 >>>
<2−1. 先願基本発明の第2の実施形態の構成>
続いて、先願基本発明の第2の実施形態を説明する。図6は、この第2の実施形態に係るネットワーク通信システムの全体構成を示すブロック図である。図示のとおり、このネットワーク通信システムは、接続仲介装置300と複数の端末装置400A〜400Dによって構成されており、これらの各装置はいずれもネットワークN(この例では、インターネット)を介して相互に接続することが可能である。
ここでも、説明の便宜上、4台の端末装置400A〜400Dを用いた例を示すことにするが、実用上は、より多数の端末装置を利用するのが一般的である。各端末装置400A〜400Dは、共通の構成を有する同一の装置であり、この共通の端末装置について言及する場合は符号400を用いて示し、相互に区別する必要がある場合には、符号末尾にA〜Dを付して示すことにする。端末装置400の内部構成要素を示す各符号についても同様である。
この図6に示すネットワーク通信システムは、ネットワークNを介して相互に接続可能な複数の端末装置400A〜400Dと、これら複数の端末装置間の接続を仲介する接続仲介装置300と、を備えたシステムということになる。やはり端末装置400としては、パソコン、携帯電話、タブレット型端末など、ネットワークNに接続して通信を行う機能を有する様々な電子機器を利用することができる。また、接続仲介装置300は、これら各端末装置400A〜400DからネットワークNを介してアクセスを受けるサーバコンピュータによって構成されている。
各端末装置400A〜400Dには、個々の端末装置を相互に識別するための端末IDがそれぞれ付与されており、接続仲介装置300は、この端末IDを利用して通信元となる端末装置と通信先となる端末装置との間の接続を仲介する処理を実行する。端末IDとしては、前述したとおり、個々の端末装置を相互に識別することができる情報であれば、どのような情報を利用してもかまわない。ここでは、前述した第1の実施形態の場合と同様に、端末装置400A,400B,400C,400Dには、それぞれ「0010」,「0020」,「0030」,「0040」なる端末IDが付与されているものとする。
また、各端末装置400A〜400Dには、それぞれ自己のネットワーク上での所在を示す所在アドレスが付与されている。ここでも、前述した第1の実施形態の場合と同様に、端末装置400A,400B,400C,400Dに、それぞれAD1,AD2,AD3,AD4なる所在アドレスが付与されているものとする。この所在アドレスは、ネットワーク上で当該端末装置の所在を一義的に決定できるアドレスであれば、どのようなアドレスを用いてもよいが、実用上は、グローバルIPアドレスもしくはNAT−IDを用いればよい。前述したとおり、この所在アドレスは、時間的に変化する。
図示のとおり、接続仲介装置300には、アドレステーブル格納部310、アドレステーブル更新部320、通信元アドレス送信部330が設けられている。この接続仲介装置300は、実際には、サーバコンピュータなどのコンピュータによって構成される。したがって、図に個々のブロックとして示されている各構成要素は、実際には、コンピュータに専用のプログラムを組み込むことにより構築されることになる。
アドレステーブル格納部310は、図1に示すアドレステーブル格納部110と同じ構成要素であり、各端末装置400A〜400Dのそれぞれについて、端末IDと所在アドレスとを対応づけたアドレステーブルTを格納する機能を有する。図6に示すアドレステーブルTは、図1に示すアドレステーブルTと全く同じものである。アドレステーブル更新部320は、図1に示すアドレステーブル更新部120と同じ構成要素であり、各端末装置400A〜400Dからの通知に基づいて、アドレステーブルTの内容を更新する処理を行う。このように、図6に示す構成要素310,320は、実質的に図1に示す構成要素110,120と同じものであるため、ここでは詳細な説明は省略する。
一方、通信元アドレス送信部330は、図1に示す通信先アドレス返信部130に類似した機能を有する構成要素であるが、若干異なる動作を行う。すなわち、通信元アドレス送信部330は、各端末装置400A〜400Dから接続仲介依頼があると、アドレステーブルTを参照することにより通信先アドレスを認識し、当該通信先アドレス宛に、通信元アドレスを送信する処理を行う。この処理のより詳細な説明は後述する。
続いて、図7を参照しながら、端末装置400の詳細構成および個々の構成要素の具体的な処理動作を説明する。図示のとおり、端末装置400には、接続仲介依頼部410、通信要求受付部420、通信元セッション確立部430、通信開始要求部440、自己アドレス通知部450、通信先セッション確立部460が設けられている。
この端末装置400も、実際には、種々のコンピュータ(携帯電話などの機器も含む)によって構成され、図に個々のブロックとして示されている各構成要素は、実際には、コンピュータに専用のプログラムを組み込むことにより構築される。もちろん、この端末装置400にも、必要に応じて、図示されていない種々の構成要素や入出力インターフェイスが組み込まれているが、ここでは、先願基本発明に直接関係する構成要素のみを図にブロックとして示すことにし、その他の構成要素についての説明は省略する。
この図7においても、図2と同様に、各ブロック間の信号の流れを示す太線矢印は、端末装置400と接続仲介装置300との間でやりとりされる、通信セッション確立前の信号の流れを示しており、細線矢印は、一対の端末装置400の間でやりとりされる、通信セッション確立前の信号の流れを示している。そして、白抜矢印は、一対の端末装置400の間でやりとりされる、通信セッション確立後の信号の流れを示している。
また、図2と同様に、図7に楕円ブロックで示されている構成要素は、端末装置400が「アドレス通知」の処理を実行するための構成要素であり、矩形ブロックで示されている構成要素は、端末装置400が「通信元」として機能する場合に必要な処理を実行する構成要素であり、二重矩形ブロックで示されている構成要素は、端末装置400が「通信先」として機能する場合に必要な処理を実行する構成要素である。端末装置400が、「通信元」になったときには、図7に矩形ブロックで示されている構成要素による処理が行われ、「通信先」になったときには、図7に二重矩形ブロックで示されている構成要素による処理が行われる。以下、図7に示す端末装置400の6つの構成要素の各機能を順に説明する。
まず、楕円ブロックで示されている自己アドレス通知部450は、「アドレス通知」の処理を実行するための構成要素であり、自己のネットワーク上での所在を示す所在アドレスを、接続仲介装置300に対して通知する処理を実行する。この自己アドレス通知部450の機能は、図2に示す自己アドレス通知部250の機能と全く同じであるため、ここでは詳しい説明は省略する。図6に示すアドレステーブル更新部320は、この通知を受けて、アドレステーブルTの更新を行う。
次に、図7に矩形ブロックもしくは二重矩形ブロックで示されている5つの構成要素について説明する。上述したように、矩形ブロックで示されている3つの構成要素は、端末装置400が「通信元」として機能する場合に必要な処理を実行し、二重矩形ブロックで示されている2つの構成要素は、端末装置400が「通信先」として機能する場合に必要な処理を実行する。
まず、通信要求受付部420は、自己を通信元として、通信先の別な端末装置に対する通信要求を受け付ける処理を行う構成要素であり、図2に示す通信要求受付部220と全く同じ機能をもつ構成要素である。また、接続仲介依頼部410は、通信要求受付部420によって通信要求が受け付けられたときに、接続仲介装置300に対して、通信先の別な端末装置の端末IDを特定するための通信先特定情報を含む接続仲介依頼を送信する構成要素であり、図2に示す接続仲介依頼部210と全く同じ機能をもつ構成要素である。
こうして、接続仲介依頼部410から送信された接続仲介依頼は、ネットワークNを介して接続仲介装置300へと伝達される(図における太線矢印は、端末装置400と接続仲介装置300との間でやりとりされる、通信セッション確立前の信号の流れを示している)。すると、接続仲介装置300からは、図に太線矢印で示すように、通信元アドレスが送信されてくる。この通信元アドレスは、通信開始要求部440によって受信される。
ここで留意すべき点は、接続仲介装置300からの通信元アドレスの送信先は、接続仲介依頼を行った通信元の端末装置ではなく、通信先となる別な端末装置である点である。すなわち、図7に示す例において、矩形ブロックで示す接続仲介依頼部410は、通信元端末装置内の構成要素であるのに対して、二重矩形ブロックで示す通信開始要求部440は、別な通信先端末装置内の構成要素ということになる。したがって、上述の説明において、接続仲介依頼を発する接続仲介依頼部410と、これに応じて接続仲介装置300から送信されてくる通信元アドレスを受信する通信開始要求部440とは、それぞれ異なる端末装置400に所属していることになる。
要するに、図6に示されている通信元アドレス送信部330は、ある端末装置400の接続仲介依頼部から接続仲介依頼が送信されてきたときに、アドレステーブルTを参照して、当該接続仲介依頼に含まれている通信先特定情報によって特定される端末IDに対応づけられている所在アドレスに対して、当該接続仲介依頼を送信した通信元の端末装置の端末IDに対応づけられている所在アドレスを通信元アドレスとして送信する処理を行うことになる。
この通信元アドレス送信部330の処理機能をより明確にするため、ここでは、図6に示す端末装置400Bを通信元、端末装置400Aを通信先とした具体例(たとえば、端末装置400BのユーザBが発呼側となり、端末装置400AのユーザAを着呼側として電話をかけたような場合)について、上記手順を説明しよう。
この場合、通信元端末装置400Bから接続仲介装置300に対して、端末装置400Aを通信先として指定する接続仲介依頼が送信されることになる。当該接続仲介依頼を受けた通信元アドレス送信部330は、アドレステーブルTを参照することにより、通信先として指定された端末装置400Aの所在アドレス「AD1」を認識する。前述した第1の実施形態における通信先アドレス返信部130は、こうして認識した通信先の所在アドレスを通信元(接続仲介依頼の送信元)に返信する処理を行っていた。これに対して、図6に示す第2の実施形態における通信元アドレス送信部330は、認識した通信先の所在アドレス「AD1」に宛てて、通信元端末装置400Bの所在を示す通信元アドレス「AD2」(これは、接続仲介依頼の送信元のアドレスとして認識できる)を送信する。
結局、上例の場合、通信元端末装置400Bから接続仲介装置300に対して接続仲介依頼を行うと、接続仲介装置300から通信先端末装置400Aに対して通信元アドレス(通信元端末装置400Bの所在アドレス「AD2」)が送信されることになる。ここが、前述した第1の実施形態と大きく異なる点である。
こうして送信されてきた通信元アドレスは、図7に示すとおり、通信先端末装置400A内の通信開始要求部440によって受信される。通信開始要求部440は、この通信元アドレス(通信元端末装置400Bのアドレス)に対して通信開始要求を行う。すなわち、通信開始要求部440は、接続仲介装置300から、通信元の別な端末装置のネットワーク上での所在を示す通信元アドレスが送信されてきたときに、ネットワークNを介して、当該通信元アドレスにアクセスして通信開始要求を行うことになる。図に細線矢印で示すとおり、この通信開始要求は、1台の端末装置400(通信先)から別な1台の端末装置400(通信元)に宛てた信号ということになる。
一方、通信先の別な端末装置(上例の場合、端末装置400A)から通信開始要求がなされた端末装置(上例の場合、端末装置400B)は、当該通信開始要求を通信元セッション確立部430で受信する(図の左側の下向き細線矢印)。そして、この通信元セッション確立部430は、通信先の別な端末装置(上例の場合、端末装置400A)に対して通信開始受諾確認を返信し(図の左側の上向き細線矢印)、当該通信先の別な端末装置との間に通信セッションを確立して通信を開始する。図7の左端に描かれた白抜矢印は、このようにして通信セッションが確立した後の両端末間の信号(通信パケット)の流れを示している。
こうして、通信元端末装置400Bから通信先端末装置400Aに対して返信された通信開始受諾確認は、通信先端末装置400Aの通信先セッション確立部460によって受信される(図の右側の細線矢印)。通信先セッション確立部460は、この通信開始受諾確認を受信したら、通信元の別な端末装置400Bとの間に通信セッションを確立して通信を開始する。図7の右端に描かれた白抜矢印は、このようにして通信セッションが確立した後の両端末間の信号(通信パケット)の流れを示している。
かくして、通信元端末装置と通信先端末装置との間の通信セッション確立後の通信は、通信元端末装置の通信元セッション確立部430と通信先端末装置の通信先セッション確立部460との間で行われることになる。別言すれば、図7の左端の白抜矢印は、ネットワークNを介して、図7の右端の白抜矢印に連なることになる。
<2−2. 第2の実施形態における具体的な通信手順>
これまで、図6および図7を参照しながら、先願基本発明の第2の実施形態に係るネットワーク通信システムの構成要素である接続仲介装置300および端末装置400の各構成要素およびその機能を説明した。ここでは、この第2の実施形態に係るネットワーク通信システムにおける通信手順を、具体例に即して説明することにする。
まず、図7に示す端末装置における自己アドレス通知部450の機能であるが、これは図3を用いて説明した自己アドレス通知部250A,250Bの機能と全く同じであるため、ここでは説明を省略する。
そこで以下、特定の端末装置間で実際に通信を開始する際の処理手順を説明する。図8は、図6に示すネットワーク通信システムにおいて、通信元端末装置400Bと通信先端末装置400Aとの間の通信セッション確立の手順を示すブロック図である。この図8では、図の上段に接続仲介装置300が示され、図の下段に2組の端末装置400A,400Bが示されている。ここでも、接続仲介装置300と各端末装置400A,400Bとの間の情報のやりとり(太線矢印で示す)や、端末装置400A,400B間の情報のやりとり(細線矢印で示す)は、実際にはネットワークNを介して行われるが、説明の便宜上、ネットワークNの図示は省略する。
また、ここでは、説明の便宜上、端末装置400Bを通信元、端末装置400Aを通信先とした場合の手順を説明する。このため、図8では、通信元端末装置400B内の構成要素については、通信元として必要な処理を実行する構成要素(矩形ブロックの構成要素)のみを実線で示し、通信先端末装置400A内の構成要素については、通信先として必要な処理を実行する構成要素(二重矩形ブロックの構成要素)のみを実線で示すことにし、それ以外の構成要素のブロックは破線で示してある。
一方、図9は、図8のブロック図に示されている通信セッション確立手順を時系列で説明する流れ図である。以下、図8のブロック図を参照しながら、図9の流れ図に従って、第2の実施形態における具体的な通信手順を説明する。なお、図8のブロック図において、各矢印に付された符号S11〜S17は、図9の流れ図における各ステップS11〜S17に対応するものである。逆に、図9の流れ図の各ステップにおいて、括弧書きで示された符号は、図8のブロック図における特定のブロックに対応するものであり、当該ステップの内容に関連する特定の構成要素を示すものである。
まず、ステップS11において、通信要求受付処理が行われる。これは、図8に示す通信要求受付部420Bによって通信要求を受け付ける処理であり、図5のステップS1で述べた処理と同様であるため説明は省略する。続くステップS12では、この通信要求に基づいて、接続仲介依頼S12が行われる。これは、図8に示す接続仲介依頼部410Bによって行われる処理であり、図5のステップS2で述べた処理と同様であるため説明は省略する。
こうして、通信元端末装置400Bの接続仲介依頼部410Bから、接続仲介装置300へ接続仲介依頼S12(図示の例では、通信先特定情報として、通信先端末装置400Aの端末ID「0010」が含まれている)が送信されてくると、ステップS13において、この接続仲介依頼S12を受けた通信元アドレス送信部330が、アドレステーブル格納部310に格納されているアドレステーブルを参照して、当該接続仲介依頼に含まれている通信先特定情報によって特定される端末ID(この例では、「0010」)に対応づけられている所在アドレスを通信先アドレスとして認識する(S13)。たとえば、その時点におけるアドレステーブルTが、図6に示すようなものであったとすると、端末ID「0010」に対応づけられているアドレス「AD1」が通信先アドレスとして認識される。
そこで、ステップS14において、通信元アドレス返信部330が、ステップS13で認識した通信先アドレス「AD1」宛に、接続仲介依頼S12を送信した通信元端末装置400Bの端末ID「0020」に対応づけられている所在アドレス「AD2」を通信元アドレスとして送信する(S14)。
前述したとおり、一般に、ネットワークを介して接続された二者間で情報の送受を行う場合、情報の送信側は自分のアドレスを受信側に伝達し、受信側は当該送信側のアドレス宛にアクノレッジ信号を返信する処理を行う。したがって、通信元アドレス送信部330は、接続仲介依頼S12を受信した時点で、その送信元である端末装置400Bの所在アドレス「AD2」を認識することができるので、通信元アドレス送信S14を行う際には、この認識した所在アドレス「AD2」をデータとして送信すればよい。
このように、通信元端末装置400Bが、接続仲介装置300に対して接続仲介依頼S12を行うと、この接続仲介依頼S12に応じて、接続仲介装置300から、通信先端末装置400A宛に(アドレステーブルTで検索した所在アドレス「AD1」宛に)、通信元端末装置400Bの所在を示す通信元アドレス「AD2」が送信されることになる。接続仲介装置300に用意されているアドレステーブルTは、常に最新の状態に更新されているので、通信元アドレス送信S14は、常に通信先端末装置400Aの最新の所在アドレスに対して行われることになる。
こうして、通信元アドレス送信部330から通信元アドレス送信S14(通信元アドレス「AD2」を伝達する情報)が送信されてくると、当該通信元アドレス送信S14は、通信先端末装置400Aの通信開始要求部440Aによって受信される。
この通信元アドレス送信S14により、通信元アドレス「AD2」を取得した通信開始要求部440Aは、ステップS15において、通信元端末装置400Bに対して通信開始要求S15を行う。すなわち、ネットワークNを介して、通信元アドレス「AD2」宛にアクセスを行い、相手方に通信開始の要求を伝える。このとき、自己の所在アドレス(通信元アドレス「AD1」)も併せて伝達されることになる。
通信元アドレス「AD2」宛に行われた通信開始要求S15は、通信元端末装置400Bの通信元セッション確立部430Bによって受信される。通信元セッション確立部430Bは、通信先端末装置400Aから、自己(端末装置400B)を通信元とする通信開始要求S15がなされたら、まず、ステップS16において、ネットワークNを介して通信先端末装置400Aに対して通信開始受諾確認S16を送信する。そして、続くステップS17において、通信先端末装置400Aとの間に通信セッションを確立して通信S17を開始する。
一方、通信先端末装置400A宛に送信されてきた通信開始受諾確認S16は、通信先セッション確立部460Aによって受信される。そして、ステップS17では、この通信開始受諾確認S16を受信した通信先セッション確立部460Aが、通信元端末装置400Bとの間に通信セッションを確立して通信S17を開始する処理も行われる。要するに、通信先端末装置400A側では、通信開始要求S15に応じて、通信元端末装置400Bから通信開始受諾確認S16が返信されてきたら、当該通信元端末装置400Bとの間に通信セッションを確立して通信を開始する処理を行うことになる。
かくして、通信元端末装置400Bと通信先端末装置400Aとの間に通信セッションが確立され、両者間での通信S17が行われることになる。この図9に示す流れ図において、接続仲介装置300が行った処理は、ステップS13のアドレステーブル参照処理とステップS14の通信元アドレス送信処理だけである。すなわち、接続仲介装置300が行う仲介処理は、通信元端末装置400Bからの接続仲介依頼S12を受けて、アドレステーブルTを参照し(ステップS13)、得られた通信先アドレスに宛てて、通信元アドレスのデータを送信する(ステップS14)だけである。接続仲介装置300がこのような仲介処理を行うだけで、通信元端末装置400Bと通信先端末装置400Aとの間に通信セッションが確立され、両者間での通信が開始することになる。
このように、先願基本発明の第2の実施形態に係るネットワーク通信システムでは、第1の実施形態に係るネットワーク通信システムと同様に、接続仲介装置300の処理負荷は極めて軽くなる。前述したように、SIPを利用して両端末間の接続仲介処理を行うシステムでは、従来型の中継処理に比べれば、その処理負荷は軽減されることになるが、両端末間にセッションが確立するまで関与する必要があり、多数の端末装置からの仲介依頼が集中すると、その処理負荷はかなり重くなってくる。これに対して、先願基本発明の第2の実施形態に係るシステムの場合、接続仲介装置300は、両端末間に通信セッションが確立するまで関与する必要はなく、通信先端末装置に対して通信元アドレスを伝達する処理を行えば足りる。このため、一対の端末装置間の接続を仲介する際の処理負荷を、より軽減することが可能になる。
このように、先願基本発明の第2の実施形態に係るネットワーク通信システムでは、接続仲介装置300が通信セッション確立まで関与しないため、接続仲介装置300は、両端末装置間に通信セッションが確立し、支障なく通信が行われているか否かを把握することはできない。そこで、もし必要があれば、通信セッション確立後に、通信元セッション確立部430Bもしくは通信先セッション確立部460Aから接続仲介装置300に対して、支障なく通信セッションが確立した旨の報告を行うようにしてもよい。
なお、上述の実施例では、通信先端末装置400Aの通信開始要求部440Aが、接続仲介装置300からの通信元アドレス送信S14を受信したときに、ステップS15において、自動的に通信開始要求S15を送信しているが、場合によっては、通信開始要求部440Aに何らかの条件判断機能をもたせておき、通信元アドレス送信S14を受信したときに、所定の条件を満たしている場合に限り、通信開始要求S15を送信するようにしてもよい。あるいは、所定の条件を満たしていない場合には、通信開始要求S15の代わりに、通信開始拒絶通知を送信するようにしてもよい。
たとえば、通信開始要求部440Aに、通信開始を常に拒絶する通信元リスト(いわゆるブラックリスト)や通信開始を常に許可する通信元リスト(いわゆるホワイトリスト)を用意しておけば、通信開始要求部440Aは、当該リストを参照することにより、通信元アドレス送信S14によって送信されてきた通信元アドレスが、ブラックリストに掲載されていた場合には、通信開始要求S15の送信を行わない処理をするか、通信開始拒絶通知を送信する運用を行うことができる。あるいは、通信元アドレスが、ホワイトリストに掲載されていた場合にのみ、通信開始要求S15を送信するような運用を行うことも可能である。
また、上述の実施例では、通信元セッション確立部430Bが、通信先端末装置400Aから、自己を通信元とする通信開始要求S15がなされた時に、ステップS16において、当該通信先端末装置400Aに対して通信開始受諾確認を送信する、という説明を行ったが、場合によっては、通信開始要求S15を受諾せずに拒絶し、通信開始受諾確認を送信しないようにしてもよい(あるいは、通信開始受諾確認の代わりに、通信開始拒絶通知を送信するようにしてもよい)。
たとえば、§3−4で述べるように、セキュリティを向上させる変形例を採用する場合は、通信開始要求S15に何らかのセキュリティ上の問題が存在する場合には、これを拒絶する運用を採用することも可能である。
<<< §3. 先願基本発明の第1および第2の実施形態の変形例 >>>
ここでは、§1で述べた先願基本発明の第1の実施形態および§2で述べた先願基本発明の第2の実施形態について、いくつかの変形例を述べる。
<3−1. 端末IDに関する変形例>
これまで述べてきたように、図1の接続仲介装置100内のアドレステーブル格納部110には、アドレステーブルTが格納されている。図6の接続仲介装置300内のアドレステーブル格納部310も同様である。このアドレステーブルTは、個々の端末装置のそれぞれについて、端末IDと所在アドレスとを対応づけたテーブルであり、通信先アドレス返信部130もしくは通信元アドレス送信部330は、受信した接続仲介依頼に含まれている通信先特定情報に基づいてアドレステーブルTを参照し、通信先の所在アドレスを取得する。
たとえば、図4に示す第1の実施形態の場合、接続仲介依頼S2には、通信先端末装置200Bの端末ID「0020」が通信先特定情報として含まれており、通信先アドレス返信部130は、アドレステーブルTを参照することにより、端末ID「0020」に対応する所在アドレス「AD2」を取得することができる。同様に、図8に示す第2の実施形態の場合、接続仲介依頼S12には、通信先端末装置400Aの端末ID「0010」が通信先特定情報として含まれており、通信元アドレス送信部330は、アドレステーブルTを参照することにより、端末ID「0010」に対応する所在アドレス「AD1」を取得することができる。
このように、これまで述べてきた実施形態では、接続仲介依頼に含ませる通信先特定情報として、通信先端末装置の端末IDを用いていた。この端末IDは、個々の端末装置を相互に識別するための情報であり、具体的には、個々の端末装置に内蔵されているCPUのシリアル番号、通信インターフェイスに付与されたMACアドレス、携帯電話として機能する端末装置の場合は電話番号やSIMカードのシリアル番号、などを端末IDとして用いることができる。
ただ、一般に、ユーザが、他のユーザの端末装置についての端末IDを記憶することは困難である。したがって、通信要求を行う際に、これらの端末IDを、ユーザ自身に直接入力させることは好ましくない。そこで、実用上は、通信要求を行う際に、端末IDで通信先を指定する代わりに、ユーザIDで通信先を指定させるようにするのが好ましい。端末IDが個々の端末装置を識別するためのIDであるのに対して、ユーザIDは個々のユーザを識別するためのIDである。一般的には、ユーザ名やニックネームをユーザIDとして用いることができる。
端末IDの代わりにユーザIDを用いて通信要求を行うことができるようにするには、通信要求受付部220,420内に、ユーザIDと端末IDとの対応表を用意しておけばよい。そして、ユーザが特定のユーザID(たとえば、ユーザ名)を指定して通信要求を行ったときに、通信要求受付部220,420が、用意されている対応表を利用してユーザIDを端末IDに変換して接続仲介依頼部210,410へ引き渡すようにすればよい。そうすれば、接続仲介依頼部210,410は、端末IDを含む接続仲介依頼を送信することができる。このようなユーザID(たとえば、ユーザ名)から端末ID(たとえば、電話番号)への変換処理機能は、一般的な携帯電話に「電話番号登録機能」として備わっている公知の機能であるため、ここでは詳しい説明は省略する。
端末IDの代わりにユーザIDを利用できるようにする別な方法として、ユーザIDと端末IDとの対応表を接続仲介装置100,300側に用意する方法を採ることもできる。たとえば、アドレステーブル格納部110,310内に、図1や図6に示すアドレステーブルTの代わりに、図10に示すようなアドレステーブルT1を格納しておくようにする。このアドレステーブルT1は、個々の端末装置のそれぞれについて、当該端末装置のユーザを特定するユーザIDと、当該端末装置の端末IDと、を対応づける情報を含むテーブルである。
図10では、説明の便宜上、ユーザIDとして、「John」,「Mary」のようなユーザ名を用いた例を示すが、実際には、テーブルに収録されている個々のユーザを相互に識別できるように、各ユーザのフルネームをユーザIDとして登録しておくようにし、もし同姓同名のユーザがいた場合には、相互に区別できるようなユーザIDを登録するようにする。実際には、端末装置200,400の自己アドレス通知部250,450に、このようなユーザIDを接続仲介装置100,300側に申告する機能を設けておき、アドレステーブル更新部120,320に、申告を受けたユーザIDをアドレステーブルT1に登録する機能を設けておけば、図10に示すようなアドレステーブルT1を用意することが可能になる。
アドレステーブルT1を用意しておけば、通信元となる端末装置側では、通信先となる端末装置の端末IDを認識する必要はない。たとえば、図4に示す例において、通信元端末装置200Aから通信先端末装置200Bに対して発呼する場合、通信元端末装置200AのユーザA(John)は、通信先端末装置200BのユーザBのユーザ名「Mary」(ユーザID)を通信先として指定した通信要求を行えばよい。この場合、端末ID「0020」の代わりに、「Mary」なるユーザIDを通信先特定情報として含む接続仲介依頼S2が、接続仲介依頼部210Aから接続仲介装置100へ送信されることになる。
このような接続仲介依頼S2を受信した通信先アドレス返信部130は、図10に示すアドレステーブルT1を参照することにより、通信先特定情報として含まれていたユーザ名「Mary」に対応する端末ID「0020」を認識することができ、更に、この端末ID「0020」をもつ通信先端末装置200Bの所在アドレス「AD2」を認識することができる。
図11は、ユーザIDの代わりにアカウントIDを用いたアドレステーブルT2を示す図である。ユーザIDが、個々のユーザを特定する情報であるのに対して、アカウントIDは、個々のユーザが開設したユーザアカウントを特定する情報である。たとえば、図示の例における「U11111」なるアカウントIDは、ユーザ「John」が開設したユーザアカウントを示すIDであり、「U22222」なるアカウントIDは、ユーザ「Mary」が開設したユーザアカウントを示すIDである。もちろん、個々のユーザは、必要があれば複数のアカウントを開設することが可能である。
端末装置200,400の自己アドレス通知部250,450に、このようなアカウントを開設するための申込機能を設けておき、アドレステーブル更新部120,320に、当該申込に応じて、所定のユーザアカウントを設定し、アカウントIDをアドレステーブルT2に登録する機能を設けておけば、図11に示すようなアドレステーブルT2を用意することが可能になる。
図4に示す例において、アドレステーブル格納部110内に図11に示すようなアドレステーブルT2を用意しておけば、接続仲介依頼部210Aは、端末ID「0020」の代わりに、「U22222」なるアカウントIDを通信先特定情報として含む接続仲介依頼S2を接続仲介装置100へ送信すればよい。
このように、先願基本発明において、接続仲介依頼部から送信される接続仲介依頼には、通信先となる別な端末装置の端末IDを特定する役割を果たす何らかの「通信先特定情報」が含まれていれば足りる。この「通信先特定情報」は、端末ID自身であってもよいし、上例のように、ユーザIDやアカウントIDであってもかまわない。
結局、この§3−1で述べた変形例を§1で述べた第1の実施形態に適用する場合は、図4に示す構成において、アドレステーブル格納部110に、個々の端末装置のそれぞれについて、当該端末装置のユーザを特定するユーザIDもしくはユーザアカウントを特定するアカウントIDと、当該端末装置の端末IDと、を対応づける情報を含むアドレステーブルT1(図10)もしくはT2(図11)を格納しておくようにする。また、接続仲介依頼部210Aは、通信先特定情報として、通信先の端末装置のユーザを特定するユーザIDもしくはユーザアカウントを特定するアカウントIDを用いた接続仲介依頼S2を送信するようにする。そして、通信先アドレス返信部130は、接続仲介依頼部210Aから接続仲介依頼S2が送信されてきたときに、アドレステーブルT1もしくはT2を参照して、接続仲介依頼S2に含まれていたユーザIDもしくはアカウントIDに対応づけられている端末IDを決定し、決定された端末IDに対応づけられている所在アドレスを通信先アドレスとして返信する処理を行うようにすればよい。
一方、この§3−1で述べた変形例を§2で述べた第2の実施形態に適用する場合は、図8に示す構成において、アドレステーブル格納部310に、個々の端末装置のそれぞれについて、当該端末装置のユーザを特定するユーザIDもしくはユーザアカウントを特定するアカウントIDと、当該端末装置の端末IDと、を対応づける情報を含むアドレステーブルT1(図10)もしくはT2(図11)を格納しておくようにする。また、接続仲介依頼部410Bは、通信先特定情報として、通信先の端末装置のユーザを特定するユーザIDもしくはユーザアカウントを特定するアカウントIDを用いた接続仲介依頼S12を送信するようにする。そして、通信元アドレス送信部330は、接続仲介依頼部410Bから接続仲介依頼S12が送信されてきたときに、アドレステーブルT1もしくはT2を参照して、接続仲介依頼S12に含まれていたユーザIDもしくはアカウントIDに対応づけられている端末IDを決定し、決定された端末IDに対応づけられている所在アドレス宛に、通信元アドレスを送信する処理を行うようにすればよい。
<3−2. 代替端末を利用する変形例>
前述したとおり、先願基本発明に利用可能な端末装置は、パソコン、携帯電話、タブレット型端末など多岐にわたり、最近は、同一のユーザが複数の端末装置を使い分けることも珍しくなくなってきている。ここでは、そのような状況を考慮して、特定の端末装置に対する着呼があったときに、当該着呼を同一ユーザの別な端末装置へ誘導する仕組をもった変形例を述べることにする。
ここで述べる変形例を実施する際には、予め、図12に示すようなアドレステーブルT3を用意しておく。このアドレステーブルT3の場合、4組のユーザID「John」,「Mary」,「Frank」,「Susie」について、それぞれ端末IDおよび所在アドレスが登録されているが、ユーザID「John」については2つの端末ID「0010」,「0011」が登録され、ユーザID「Frank」については3つの端末ID「0030」,「0031」,「0032」が登録されている。これは、ユーザJohnが、このネットワーク通信システムに利用可能な2台の端末装置を所有し、ユーザFrankが、3台の端末装置を所有しているためである。
ここで、同一のユーザIDに対応づけられて登録されている複数の端末IDを、1つのグループに所属する端末IDとして把握し、同じグループに所属する1つの端末IDを別な1つの端末IDについての代替端末IDと呼ぶことにすれば、図12に示すアドレステーブルT3は、特定の端末IDについて、1つもしくは複数の代替端末IDを登録したアドレステーブルということができる。要するに、同一のユーザ名で複数の端末IDの登録があった場合には、これらの端末IDを同一のグループに所属するものとして把握し、相互に代替端末IDとして認識する取り扱いを行うようにすればよい。
たとえば、図12に示す例の場合、端末ID「0010」については1つの代替端末ID「0011」が登録されており、逆に、端末ID「0011」については1つの代替端末ID「0010」が登録されていることになる。一方、端末ID「0030」については2つの代替端末ID「0031」,「0032」が登録されており、端末ID「0031」については2つの代替端末ID「0030」,「0032」が登録されており、端末ID「0032」については2つの代替端末ID「0030」,「0031」が登録されていることになる。
ここで述べる変形例に係るシステムでは、このような代替端末IDを登録しておくことにより、利用不都合な状態にある端末装置宛に発呼があったときに、当該発呼を代替となる別な端末装置宛に転送させることができる。
たとえば、ユーザJohnが、スマートフォンからなる第1の端末装置(端末ID「0010」)とパソコンからなる第2の端末装置(端末ID「0011」)とを所有しており、通常は、いずれの端末装置も利用可能な状態になっているものとしよう。ところが、ある日、スマートフォンからなる第1の端末装置について、バッテリ切れで一時的に利用できない状態になったとする。この場合、もし、ユーザMaryが、自己の端末装置を通信元として、ユーザJohnのスマートフォンを通信先とする通信要求を行ったとしても、ユーザJohnのスマートフォンに対する正常な接続を行うことはできない。
ここで述べる変形例に係るシステムでは、このような場合、接続仲介装置が、ユーザJohnのスマートフォンの代わりに、その代替となるユーザJohnのパソコンに代替接続する処理を実行することができる。
この§3−2で述べる変形例を§1で述べた先願基本発明の第1の実施形態に適用する場合は、図4に示す構成に対して、次のような変更を施せばよい。
まず、アドレステーブル格納部110には、特定の端末IDについて、1つもしくは複数の代替端末IDを登録したアドレステーブル(たとえば、図12に示すアドレステーブルT3)を格納しておく。そして、通信先アドレス返信部130には、個々の端末装置について利用不都合な状態にあるか否かを判定する機能を付加しておく。具体的には、たとえば、判定対象となる端末装置に対して試験アクセスを行い、正常な返信があった場合には問題なしと判断するが、正常な返信が得られなかった場合には利用不都合な状態にあるとの判断を行うようにすればよい。
通信先アドレス返信部130は、接続仲介依頼S2が送信されてきたときに、通信先特定情報で特定される本来の端末IDが付与された端末装置について、利用不都合な状態にあるか否かを判定する処理を行う。そして、もし、本来の端末IDが付与された端末装置が利用不都合な状態にある場合には、当該本来の端末IDに代えて代替端末IDに対応づけられている所在アドレスを通信先アドレスとして返信する処理を行うようにする。
たとえば、図12に示すアドレステーブルT3が用意されている状態において、通信先特定情報として本来の端末ID「0010」(ユーザJohnのスマートフォン)を含む接続仲介依頼が送信されてきた場合、通信先アドレス返信部130は、まず、端末ID「0010」に対応する所在アドレス「AD1」に試験アクセスを行い、正常な返信があった場合には問題なしと判断し、通常の手順に従って、所在アドレス「AD1」を通信先アドレスとして返信する処理を行えばよい。この場合、通信元端末装置は、本来の端末ID「0010」が付与されたユーザJohnのスマートフォンを通信先として通信を行うことができる。
ところが、試験アクセスに対して正常な返信が得られなかった場合には、本来の端末ID「0010」が付与された端末装置(ユーザJohnのスマートフォン)が利用不都合な状態にあると判断し、本来の端末ID「0010」に代えて、アドレステーブルT3において端末ID「0010」についての代替端末IDとして登録されている端末ID「0011」に対応づけられている所在アドレス「AD5」を通信先アドレスとして返信する処理を行うようにする。この場合、通信元端末装置は、本来の端末ID「0010」が付与されたユーザJohnのスマートフォンではなく、代替端末ID「0011」が付与されたユーザJohnのパソコンを通信先として通信を行うことができる。
一方、この§3−2で述べる変形例を§2で述べた先願基本発明の第2の実施形態に適用する場合は、図8に示す構成に対して、次のような変更を施せばよい。
まず、アドレステーブル格納部310には、特定の端末IDについて、1つもしくは複数の代替端末IDを登録したアドレステーブル(たとえば、図12に示すアドレステーブルT3)を格納しておく。そして、通信元アドレス送信部330には、個々の端末装置について利用不都合な状態にあるか否かを判定する機能を付加しておく。具体的には、上述したように、判定対象となる端末装置に対して試験アクセスを行い、正常な返信があった場合には問題なしと判断するが、正常な返信が得られなかった場合には利用不都合な状態にあるとの判断を行うようにすればよい。
通信元アドレス送信部330は、接続仲介依頼S12が送信されてきたときに、通信先特定情報で特定される本来の端末IDが付与された端末装置について、利用不都合な状態にあるか否かを判定する処理を行う。そして、もし、本来の端末IDが付与された端末装置が利用不都合な状態にある場合には、当該本来の端末IDに代えて代替端末IDに対応づけられている所在アドレスに対して、接続仲介依頼S12を送信した通信元端末装置の所在アドレスを通信元アドレスとして送信する処理を行うようにする。
たとえば、図12に示すアドレステーブルT3が用意されている状態において、通信先特定情報として本来の端末ID「0010」(ユーザJohnのスマートフォン)を含む接続仲介依頼が送信されてきた場合、通信元アドレス送信部330は、まず、端末ID「0010」に対応する所在アドレス「AD1」に試験アクセスを行い、正常な返信があった場合には問題なしと判断し、通常の手順に従って、所在アドレス「AD1」宛に通信元アドレスの送信を行えばよい。この場合、通信元端末装置は、本来の端末ID「0010」が付与されたユーザJohnのスマートフォンを通信先として通信を行うことができる。
ところが、試験アクセスに対して正常な返信が得られなかった場合には、本来の端末ID「0010」が付与された端末装置(ユーザJohnのスマートフォン)が利用不都合な状態にあると判断し、本来の端末ID「0010」に代えて、アドレステーブルT3において端末ID「0010」についての代替端末IDとして登録されている端末ID「0011」に対応づけられている所在アドレス「AD5」宛に通信元アドレスの送信を行うようにする。この場合、通信元端末装置は、本来の端末ID「0010」が付与されたユーザJohnのスマートフォンではなく、代替端末ID「0011」が付与されたユーザJohnのパソコンを通信先として通信を行うことができる。なお、図12に示すユーザFrankのように、複数の代替端末IDが登録されている場合は、予め優先順位を定めておき、優先順位の高い順に実際に利用する代替端末IDを決定すればよい。
なお、上述の実施例では、通信先アドレス返信部130や通信元アドレス送信部330は、接続仲介依頼を受信した時点で、本来の通信先に対する試験アクセスを行い、利用不都合な状態にあるか否かを判定する処理を行っているが、その代わりに、個々の端末装置に対して定期的な試験アクセスを行うようにし、利用不都合な状態にある端末装置については、その時点でアドレステーブルにその旨の記録を行うようにしてもよい。この場合、各端末装置は、接続仲介依頼の有無にかかわらず、定期的に試験アクセスを受け、利用不都合な状態にあるか否かのチェックを受けることになり、チェック結果がアドレステーブルに記録されることになる。したがって、実際に接続仲介依頼があった場合は、このアドレステーブルの記録に基づいて利用不都合な状態にあるか否かを判定することができる。
なお、この変形例にいう「利用不都合な状態」とは、バッテリ切れの状態やネットワークへの接続障害が生じた状態のように「利用不能な状態」のみを意味するものではない。たとえば、端末装置の機能としては正常に利用可能な状態ではあるが、ユーザが恣意的に利用したくないと考え、そのような設定を行った状態も含むものである。たとえば、ユーザが自分の意思で「着信拒否」を設定した場合、当該端末装置は「利用不都合な状態」になる。したがって、上例の場合、ユーザJohnが所持するスマートフォンおよびパソコンがいずれも正常動作可能な状態であっても、もしユーザJohnが、スマートフォンに対して「着信拒否」を設定した場合、当該スマートフォンは「利用不都合な状態」になる。
この「着信拒否」の設定(「利用不都合な状態」の設定)は、個々の端末装置内にのみ記録しておいてもよいが、接続仲介装置内のアドレステーブルに記録するようにしてもよい。アドレステーブルに記録しておけば、各端末装置への試験アクセスを行うことなしに、「利用不都合な状態」にあることを認識できる。
<3−3. セキュリティを向上させる変形例(その1)>
ここでは、よりセキュリティを向上させたネットワーク通信システムを構築するための変形例を述べる。一般に、電子機器間でネットワークを介して情報のやりとりを行う場合、相手方の真正性を担保することは重要である。真正性が担保されない相手との交信は、クラッカーの攻撃を招くおそれがあり、セキュリティ上問題である。先願基本発明に係るネットワーク通信システムの場合、個々の端末装置と接続仲介装置との間の交信や、通信元端末装置と通信先端末装置との間の交信が不可欠であり、実用上、これら装置間通信におけるセキュリティ確保は重要である。
図13は、図4に示す第1の実施形態に係るネットワーク通信システムについて、セキュリティを向上させた変形例を示すブロック図である。この変形例では、第1の実施形態に係るネットワーク通信システムに対して、セキュリティを向上させるための2つの対策が施されている。
第1の対策は、相互認証処理の付加であり、図に破線の矢印で示されている情報を送受する際に、両者間で相手方の真正性を確認するための相互認証処理が行われる。具体的には、まず、通信元端末装置200Aから接続仲介装置100に対して接続仲介依頼S2を送信するときに、通信元端末装置200Aと接続仲介装置100との間で、相互に相手方の装置の真正性を確認するための相互認証処理が行われる。接続仲介依頼S2を示す矢印が破線になっているのは、この相互認証処理が行われることを示している。したがって、各端末装置200および接続仲介装置100には、このような認証処理機能が備わっていることになる。
なお、図示の例の場合、接続仲介装置100から通信元端末装置200Aに対して通信先アドレス返信S4を行う際の相互認証処理は省略されている(通信先アドレス返信S4を示す矢印は実線で描かれている)。これは、接続仲介依頼S2を送信するときに、通信元端末装置200Aと接続仲介装置100との間の相互認証処理が既に完了しており、相手方の装置の真正性が確認済みとなっているためである。もちろん、通信先アドレス返信S4を行う際にも、再び相互認証処理を実行するようにしてもかまわない。
また、図13に示すシステムの場合、通信元端末装置200Aから通信先端末装置200Bに対して通信開始要求S5を送信するときにも、通信元端末装置200Aと通信先端末装置200Bとの間で、相互に相手方の装置の真正性を確認するための相互認証処理が行われる。通信開始要求S5を示す矢印が破線になっているのは、この相互認証処理が行われることを示している。したがって、各端末装置200には、このような認証処理機能が備わっていることになる。
なお、図示の例の場合、通信先端末装置200Bから通信元端末装置200Aに対して通信開始受諾確認S6を行う際の相互認証処理は省略されている(通信開始受諾確認S6を示す矢印は実線で描かれている)。これは、通信開始要求S5を送信するときに、通信元端末装置200Aと通信先端末装置200Bとの間の相互認証処理が既に完了しており、相手方の装置の真正性が確認済みとなっているためである。もちろん、通信開始受諾確認S6を行う際にも、再び相互認証処理を実行するようにしてもかまわない。
ネットワークを介して接続された一対の装置間において、相手方の真正性を確認するための相互認証処理としては、既に種々の方法が知られているため、ここでは詳しい説明は省略する。一般的には、相手方の暗号鍵を利用した相互認証処理が利用されることが多い。たとえば、公開鍵暗号方式を利用した相互認証処理では、一方の装置で特定の平文データを相手方装置の公開鍵を用いて暗号化し、得られた暗号文データを相手方に送信し、これを受信した他方の装置では、当該暗号文データを自己の暗号鍵を用いて復号し、元の平文データが復元できることを確認する、といった処理手順を採ることができる。この処理手順を双方で行えば、相互に相手方の真正性を確認することができる。
なお、通信元端末装置200Aと通信先端末装置200Bとの間の相互認証処理を、それぞれの暗号鍵を用いて行った場合は、当該暗号鍵を利用して、通信セッション確立後の両者間の通信S7を暗号化通信によって行うようにすれば、セキュリティを更に向上させることができる。具体的には、通信開始要求S5を送信するときの相互認証処理を、通信元端末装置200Aについての暗号鍵および通信先端末装置200Bについての暗号鍵を用いた処理によって行うようにし、通信元端末装置200Aと通信先端末装置200Bとの間における通信セッション確立後の通信S7が、上記相互認証処理で用いた暗号鍵を用いて暗号化されたパケットを送受するパケット通信によって行われるようにすればよい。
図13に示すシステムにおいて、セキュリティを向上させるために施された第2の対策は、接続仲介装置100による仲介証明書の発行である。図示の例の場合、接続仲介装置100は、通信元端末装置200Aと通信先端末装置200Bとの間の接続を仲介する役割を果たす。仲介証明書は「そのような仲介を確かに行った」という事実を証明するために接続仲介装置100が発行する証明書である。通信先端末装置200Bは、この仲介証明書により、接続仲介装置100による仲介が正しく行われていることを確認することができる。以下、その仕組を順に説明する。
まず、接続仲介依頼部210Aから通信先アドレス返信部130に対して、接続仲介依頼S2があると、通信先アドレス返信部130は、この接続仲介依頼S2の送信を受けて、通信元となる特定の端末装置200Aから通信先となる特定の端末装置200Bへの仲介処理を実行したことを示す仲介証明書を発行する。そして、通信先アドレス返信S4を行う際に、通信先アドレス「AD2」とともにこの仲介証明書を、通信元端末装置200Aに返信する。
したがって、通信開始要求部240Aは、通信先アドレス「AD2」とともに、この仲介証明書を受信することになる。そこで、通信開始要求部240Aは、当該通信先アドレス「AD2」に対して通信開始要求S5を行う際に、この仲介証明書を併せて送信する。そうすると、通信先セッション確立部230Bは、通信開始要求S5とともに仲介証明書を受信することになる。
通信先セッション確立部230Bは、通信元の別な端末装置200Aから、自己を通信先とする通信開始要求S5とともに仲介証明書が送信されてきたら、この仲介証明書の正当性が確認されることを条件として、当該通信元の別な端末装置200Aに対して通信開始受諾確認S6を送信し、当該通信元の別な端末装置200Aとの間に通信セッションを確立して通信S7を開始するようにする。もちろん、仲介証明書の正当性が確認されない場合は、通信開始受諾確認S6の送信を行わず、通信S7も開始しない。
前述したとおり、上例の場合の仲介証明書は、接続仲介装置100が「端末装置200Aから端末装置200Bへの仲介処理を実行した」ことを証明するものであるから、通信先セッション確立部230Bは、通信開始要求S5の内容が、当該仲介証明書の証明内容に合致しているか否かを判定することにより、当該仲介証明書の正当性確認を行うことができる。上例の場合、通信開始要求S5は端末装置200Aから送信されてきており、自分自身は端末装置200Bであるから、「端末装置200Aから端末装置200Bへの仲介処理を実行した」との仲介証明書は正しいと判断することができる。
通信先端末装置200B内の通信先セッション確立部230Bは、通信元端末装置200Aからの通信開始要求S5を受信して、通信元端末装置200Aに対して通信開始受諾確認S6を送信し、通信セッションを確立して通信S7を行う。このとき、受信した通信開始要求S5が正規の信号であれば問題ないが、クラッカーによる偽装信号であった場合、不正行為の被害に遭うおそれがある。また、通信元端末装置200Aがマルウェアに感染していた場合、クラッカーに乗っ取られた状態になり、接続仲介装置100を経由した正規の手順を踏まずに、不正な方法により通信開始要求S5がなされる可能性もある。上述した仲介証明書を発行する対策を講じておけば、このようなクラッカーによる不正行為を防止する上で効果的である。
仲介証明書のこのような役割を考慮すると、通信先アドレス返信部130は、たとえば次のような方法で仲介証明書を作成すればよい。まず、接続仲介依頼S2に基づいて、通信元となる特定の端末装置200Aの所在アドレス(図示の例では「AD1」)および通信先となる特定の端末装置200Bの所在アドレス(図示の例では「AD2」)を認識する。そして、これら両所在アドレスを含む仲介証明用データを作成する。たとえば、両所在アドレスの文字列をそのまま連結して「AD1」+「AD2」のような文字列を仲介証明用データとしてもよいし、更に、別な秘密文字列「HAPPY」を付加して、「AD1」+「AD2」+「HAPPY」のような文字列を仲介証明用データとしてもよい。
続いて、こうして作成した仲介証明用データに対して、所定の暗号鍵を利用した一方向性関数を作用させることにより得られたデータを仲介証明書とすればよい。たとえば、一方向性関数としては、通信元端末装置200Aについての暗号鍵もしくは通信先端末装置200Bについての暗号鍵、または、これら双方の暗号鍵を利用したハッシュ関数を用いることができる。
たとえば、仲介証明用データが、「AD1」+「AD2」+「HAPPY」という文字列によって構成され、当該文字列に、通信先端末装置200Bの公開鍵を利用したハッシュ関数を作用させることにより仲介証明書を作成した場合を例にとってみよう。こうして作成された仲介証明書は、仲介証明用データのハッシュ値ということになる。
一方、通信開始要求S5とともに、上記仲介証明書を受信した通信先セッション確立部230Bは、次のような手順で、当該仲介証明書の正当性を確認することができる。まず、通信開始要求S5の送信元のアドレスとして、通信元端末装置200Aの所在アドレス「AD1」を認識することができる。また、自分自身の所在アドレス「AD2」も認識することができる。そして、予め取り決めがなされていた上記秘密文字列「HAPPY」(この秘密文字列は、当該ネットワーク通信システムの各構成装置のみが知り得るように管理されている)を用いることにより、「AD1」+「AD2」+「HAPPY」という文字列からなる仲介証明用データを作成する。
続いて、この仲介証明用データに対して自分自身の公開鍵を用いたハッシュ関数を作用させることにより仲介証明書を作成する。そして最後に、こうして作成した仲介証明書が通信開始要求S5とともに送信されてきた仲介証明書と一致することを確認すればよい。両者が一致すれば、仲介証明書の正当性が確認されたことになる。もちろん、不一致であれば、正当性は確認できないので、何らかの不正が行われている可能性があると判断できる。すなわち、仲介証明書の正当性が確認できない場合は、通信先セッション確立部230Bが受信した通信開始要求S5は、接続仲介装置100による正規の仲介処理に基づいてなされたものではない、と判断することができる。そのような場合、通信先セッション確立部230Bは、通信開始受諾確認S6の送信を行わず、通信セッションの確立を拒絶することになる。
なお、上例では、「AD1」+「AD2」+「HAPPY」なる仲介証明用データについてのハッシュ値を仲介証明書として用いているが、もちろん、上記仲介証明用データそのものを仲介証明書として用いることも可能である。ただ、十分なセキュリティを確保する上では、仲介証明用データそのものではなく、そのハッシュ値を仲介証明書として用いるのが好ましい。仲介証明用データには、「AD1」や「AD2」といった所在アドレスが含まれているので、クラッカーによる改竄を受けやすい。したがって、実用上は、上例のように、何らかの暗号鍵を利用した一方向性関数を作用させて仲介証明書を作成するのが好ましい。
ハッシュ関数などの一方向性関数を用いて仲介証明書を作成すれば、元の仲介証明用データを復元することはできないので、仲介証明書がクラッカーの手に渡ったとしても、不正な改竄を受ける可能性を低減することができる。不正な改竄を防止するという点では、上例の「HAPPY」のような秘密文字列を付加して仲介証明用データを作成することは有効である。もちろん、仲介証明書を発行した日付、時間、曜日などの変動要素を秘密文字列として用いることも可能である。
<3−4. セキュリティを向上させる変形例(その2)>
上述した§3−3では、§1で述べた先願基本発明の第1の実施形態についてセキュリティを向上させた変形例を述べた。ここでは、§2で述べた先願基本発明の第2の実施形態について、同様の方法でセキュリティを向上させた変形例を述べることにする。
図14は、図8に示す第2の実施形態に係るネットワーク通信システムについて、セキュリティを向上させた変形例を示すブロック図である。この変形例では、第2の実施形態に係るネットワーク通信システムに対して、セキュリティを向上させるための2つの対策が施されている。
第1の対策は、相互認証処理の付加であり、図に破線の矢印で示されている情報を送受する際に、両者間で相手方の真正性を確認するための相互認証処理が行われる。具体的には、まず、通信元端末装置400Bから接続仲介装置300に対して接続仲介依頼S12を送信するときに、通信元端末装置400Bと接続仲介装置300との間で、相互に相手方の装置の真正性を確認するための相互認証処理が行われる。接続仲介依頼S12を示す矢印が破線になっているのは、この相互認証処理が行われることを示している。
同様に、接続仲介装置300から通信先端末装置400Aに対して通信元アドレス送信S14を行うときにも、接続仲介装置300と通信先端末装置400Aとの間で、相互に相手方の装置の真正性を確認するための相互認証処理が行われる。接続仲介依頼S14を示す矢印が破線になっているのは、この相互認証処理が行われることを示している。したがって、各端末装置400および接続仲介装置300には、上述した認証処理機能が備わっていることになる。
また、図14に示すシステムの場合、通信先端末装置400Aから通信元端末装置400Bに対して通信開始要求S15を送信するときにも、通信先端末装置400Aと通信元端末装置400Bとの間で、相互に相手方の装置の真正性を確認するための相互認証処理が行われる。通信開始要求S15を示す矢印が破線になっているのは、この相互認証処理が行われることを示している。したがって、各端末装置400には、このような認証処理機能が備わっていることになる。
なお、図示の例の場合、通信元端末装置400Bから通信先端末装置400Aに対して通信開始受諾確認S16を行う際の相互認証処理は省略されている(通信開始受諾確認S16を示す矢印は実線で描かれている)。これは、通信開始要求S15を送信するときに、通信先端末装置400Aと通信元端末装置400Bとの間の相互認証処理が既に完了しており、相手方の装置の真正性が確認済みとなっているためである。もちろん、通信開始受諾確認S16を行う際にも、再び相互認証処理を実行するようにしてもかまわない。
相互認証処理の具体的な方法は、既に§3−3で述べたとおりである。また、この図14に示す変形例の場合も、相互認証処理に用いた暗号鍵を利用して、通信セッション確立後の両端末装置間の通信S17を暗号化通信によって行うようにしてもよい。
図14に示すシステムにおいて、セキュリティを向上させるために施された第2の対策は、接続仲介装置300による仲介証明書の発行である。図示の例の場合、接続仲介装置300は、通信元端末装置400Bと通信先端末装置400Aとの間の接続を仲介する役割を果たす。仲介証明書は「そのような仲介を確かに行った」という事実を証明するために接続仲介装置300が発行する証明書である。通信元端末装置400Bは、この仲介証明書により、接続仲介装置300による仲介が正しく行われていることを確認することができる。以下、その仕組を順に説明する。
まず、接続仲介依頼部410Bから通信元アドレス送信部330に対して、接続仲介依頼S12があると、通信元アドレス送信部330は、この接続仲介依頼S12の送信を受けて、通信元となる特定の端末装置400Bから通信先となる特定の端末装置400Aへの仲介処理を実行したことを示す仲介証明書を発行する。そして、通信元アドレス返信S14を行う際に、通信元アドレス「AD2」とともにこの仲介証明書を、通信先端末装置400Aに返信する。
したがって、通信開始要求部440Aは、通信元アドレス「AD2」とともに、この仲介証明書を受信することになる。そこで、通信開始要求部440Aは、当該通信元アドレス「AD2」に対して通信開始要求S15を行う際に、この仲介証明書を併せて送信する。そうすると、通信元セッション確立部430Bは、通信開始要求S15とともに仲介証明書を受信することになる。
通信元セッション確立部430Bは、通信先の別な端末装置400Aから、自己を通信元とする通信開始要求S15とともに仲介証明書が送信されてきたら、この仲介証明書の正当性が確認されることを条件として、当該通信先の別な端末装置400Aに対して通信開始受諾確認S16を送信し、当該通信先の別な端末装置400Aとの間に通信セッションを確立して通信S17を開始するようにする。もちろん、仲介証明書の正当性が確認されない場合は、通信開始受諾確認S16の送信を行わず、通信S17も開始しない。
前述したとおり、上例の場合の仲介証明書は、接続仲介装置300が「端末装置400Bから端末装置400Aへの仲介処理を実行した」ことを証明するものであるから、通信元セッション確立部430Bは、通信開始要求S15の内容が、当該仲介証明書の証明内容に合致しているか否かを判定することにより、当該仲介証明書の正当性確認を行うことができる。上例の場合、通信開始要求S15は端末装置400Aから送信されてきており、自分自信は端末装置400Bであるから、「端末装置400Bから端末装置400Aへの仲介処理を実行した」との仲介証明書は正しいと判断することができる。
通信元端末装置400B内の通信元セッション確立部430Bは、通信先端末装置400Aからの通信開始要求S15を受信して、通信先端末装置400Aに対して通信開始受諾確認S16を送信し、通信セッションを確立して通信S17を行う。このとき、受信した通信開始要求S15が正規の信号であれば問題ないが、クラッカーによる偽装信号であった場合、不正行為の被害に遭うおそれがある。また、通信先端末装置400Aがマルウェアに感染していた場合、クラッカーに乗っ取られた状態になり、接続仲介装置300を経由した正規の手順を踏まずに、不正な方法により通信開始要求S15がなされる可能性もある。上述した仲介証明書を発行する対策を講じておけば、このようなクラッカーによる不正行為を防止する上で効果的である。
仲介証明書の具体的な作成方法は、§3−3で述べたとおりである。すなわち、この図14に示す変形例の場合も、通信元アドレス送信部330は、通信元となる特定の端末装置400Bの所在アドレス「AD2」および通信先となる特定の端末装置400Aの所在アドレス「AD1」を含む仲介証明用データ(必要に応じて、その他の秘密文字列を付加してもよい)に対して、所定の暗号鍵を利用した一方向性関数を作用させることにより仲介証明書を作成すればよい。一方向性関数としては、通信元についての暗号鍵もしくは通信先についての暗号鍵、または、これら双方の暗号鍵を利用したハッシュ関数を用いることができる。このような仲介証明書を用いた正当性確認の具体的な手順は、既に§3−3で述べたとおりであり、ここでは説明を省略する。
<<< §4. ルータを用いた実用的な実施形態 >>>
これまで述べてきた先願基本発明の第1の実施形態や第2の実施形態では、各発明の基本原理を示す便宜上、各端末装置200A〜200D,400A〜400DがネットワークN(インターネット)に直接接続されている状態を示す図(図1,図6参照)を用いて説明を行ってきた。しかしながら、通常、各端末装置は、ルータを介してネットワークN(インターネット)に接続される。そこで、ここでは、先願基本発明について、端末装置をルータを介してネットワークに接続した実用的な実施形態を説明する。
<4−1. ルータを用いた基本的な実施例>
図15は、端末装置をルータを介してネットワークNに接続した先願基本発明の一実施形態を示すブロック図である。具体的には、この図15には、3台の端末装置200E,200F,200Gが、同一のルータRを介してネットワークN(インターネット)に接続された状態が示されている。
既に述べたとおり、先願基本発明における端末装置200は、パソコン、携帯電話、タブレット型端末など、ネットワークNに接続して通信を行う機能を有する電子機器であれば、どのような装置であってもかまわない。最近は、企業内LANや家庭内LANが普及し、パソコンやタブレット型端末は、通常、企業や家庭に設置されたルータ経由でインターネットへ接続される。また、最近の携帯電話通信網では、ルータの機能を有する基地局が利用されてきており、携帯電話は、このルータ機能を有する基地局経由でインターネットに接続することができる。
したがって、先願基本発明に利用される各端末装置は、実用上は、図15に例示するように、ルータRを介してインターネットに接続されることになる。ルータRは、LANを構築する機能を有し、図示の例の場合、ルータRより左側に描かれた部分が1つのサブネットを構成しており、クラスCのプライベートIPアドレスが付与されている。具体的には、各端末装置には、「192.168」なるネットワーク部と「0.11」,「0.12」,「0.13」なるホスト部とを有するIPアドレスが付与されている。このサブネット内の装置同士の交信は、ルータRを介さずに行うことができるが、サブネット外の装置にアクセスする場合は、ルータRを介した交信が必要になる。
図示の例の場合、端末装置200E(端末ID:0050)には、「192.168.0.11」なるプライベートIPアドレスが付与され、端末装置200F(端末ID:0060)には、「192.168.0.12」なるプライベートIPアドレスが付与され、端末装置200G(端末ID:0070)には、「192.168.0.13」なるプライベートIPアドレスが付与されている。また、実際の通信には、これらのIPアドレスとともにポート番号が利用される。図には、端末装置200Eの1本の通信路にポート番号P1、端末装置200Fの2本の通信路にポート番号P2,P3、端末装置200Gの4本の通信路にポート番号P4〜P7が付与された例が示されている。
ポート番号は、2バイトのデータからなり、通信のエンドポイントを特定するために利用される。たとえば、図に示す端末装置200Fには、所定のOSプログラムの下で動作する2組のアプリケーションプログラムAPP1,APP2がインストールされており、APP1についての通信路にはポート番号P2が割り当てられ、APP2についての通信路にはポート番号P3が割り当てられている。したがって、同じIPアドレス「192.168.0.12」を用いた通信であっても、ポート番号P2/P3の違いにより、APP1についての通信か、APP2についての通信かを区別することができる。
一方、図に示す端末装置200Gには、やはり2組のアプリケーションプログラムAPP1,APP2がインストールされているが、APP1については2組のポート番号P4,P5が割り当てられ、APP2については2組のポート番号P6,P7が割り当てられている。このように、同一のアプリケーションプログラムに複数のポート番号を割り当てて、複数の通信路を相互に区別することも可能である。たとえば、アプリケーションプログラムAPP1がWebブラウザプログラムであった場合、第1のWebページについての通信にはポート番号P4を割り当て、第2のWebページについての通信にはポート番号P5を割り当てる、という運用を行えば、それぞれ別のWebサーバに対して別個独立した通信が可能になる。このように、ポート番号は、個々のアプリケーションプログラムの都合に応じて任意に割り当てることができる。
ここでは、図示されているアプリケーションプログラムAPP2が、先願基本発明に係るネットワーク通信システムとしての機能を果たすための専用の通信アプリケーションプログラムであるものとして以下の説明を続ける。別言すれば、図示の端末装置200F,200Gは、所定のOSプログラムの管理下で動作する汎用のパソコン、スマートフォン、タブレット型端末などの装置であり、当該装置に専用の通信アプリケーションプログラムAPP2をインストールすることにより、これらの装置が先願基本発明に係る端末装置として機能することになる。
この場合、図2に示す端末装置200の構成要素である自己アドレス通知部250、通信要求受付部220、接続仲介依頼部210、通信開始要求部240、通信元セッション確立部260、通信先セッション確立部230による処理機能は、この通信アプリケーションプログラムAPP2を実行することにより実現される(一部の処理機能は、OSプログラムの実行により実現されるようにしてもよい)。同様に、図7に示す端末装置400の構成要素である自己アドレス通知部450、通信要求受付部420、接続仲介依頼部410、通信開始要求部440、通信元セッション確立部430、通信先セッション確立部460による処理機能は、この通信アプリケーションプログラムAPP2を実行することにより実現される(一部の処理機能は、OSプログラムの実行により実現されるようにしてもよい)。
図15には、このアプリケーションプログラムAPP2を示すブロックおよびその通信路を太線で示してある。各端末装置200E,200F,200Gとサブネット外の装置との間の通信は、ルータRを介して行われる。ルータRは、ネットワークアドレス変換機能(NAT(Network Address Translation)機能)を有しており、内側(図におけるルータRの左側)に接続された通信路について付与されたプライベートIPアドレスを、外側(図におけるルータRの右側)に接続された通信路について付与されたグローバルIPアドレスに変換するとともに、その逆の変換も行う。
図示の例の場合、ルータRの内側について付与された「192.168.0.11」〜「192.168.0.13」なるプライベートIPアドレスと、ルータRの外側について付与された「xx.73.5.111」なるグローバルIPアドレス(以下、ADxと記す)との間のアドレス変換が行われている。なお、上記グローバルIPアドレス内のxxは、任意の1バイトデータを示す(本願では、固有のグローバルIPアドレスの特定を避けるため、グローバルIPアドレスについては、その一部をxx,yy,zz等の記号で示すことにする)。また、上記アドレス変換の際には、一般にNAPT(Network Address Port Translation)と呼ばれている機能により、ポート番号についての変換も行われる。
たとえば、端末装置200Fの通信アプリケーションプログラムAPP2からの通信路に付与されたプライベートIPアドレスとポート番号との組み合わせ「192.168.0.12(P3)」は、グローバルIPアドレスADxとポート番号との組み合わせ「xx.73.5.111(P13)」に変換されている。したがって、ネットワーク(インターネット)Nを介して接続された外部装置に対して、端末装置200FのAPP2は、「xx.73.5.111(P13)」なる所在アドレス(IPアドレスにポート番号を付加した情報)で特定されることになる。同様に、端末装置200GのAPP2は、「xx.73.5.111(P16)」もしくは「xx.73.5.111(P17)」なる所在アドレスで特定されることになる。
図示の例の場合、ルータRの外側の複数の通信路には、いずれも同じグローバルIPアドレスADx(具体的には、「xx.73.5.111」)が付与されているが、ポート番号がそれぞれ異なるため、相互に区別することができる。ルータRの外側の装置から内側の装置に対するアクセスがあった場合には、逆に、グローバルIPアドレスADxをプライベートIPアドレスに変換する処理が行われる。たとえば、外部装置から「xx.73.5.111(P16)」なる所在アドレス宛のアクセスがあった場合、当該所在アドレスは、「192.168.0.13(P6)」に変換され、端末装置200Gの通信アプリケーションプログラムAPP2の第1番目の通信路宛のアクセスとして処理される。このようなNAPT機能は、広く利用されている既存の技術であるため、ここでは詳しい説明は省略する。
さて、先願基本発明に係るネットワーク通信システムの構成要素となる端末装置200には、図2に示すとおり、自己アドレス通知部250が含まれており、この自己アドレス通知部250により、自己のネットワーク上での所在を示す所在アドレスを、接続仲介装置100に対して通知する処理が行われる。前述したとおり、この通知処理は、実際には端末装置200にインストールされている通信アプリケーションプログラムAPP2によって実行される。
したがって、図15に示す実施例の場合も、通信アプリケーションプログラムAPP2によって、接続仲介装置100宛に所在アドレスの通知が行われ、これを受けて、接続仲介装置100内のアドレステーブル更新部120が、各端末装置のそれぞれについて、端末IDと所在アドレスとを対応づけた情報を、アドレステーブル格納部110内のアドレステーブルTに書き込む処理を実行する。
図15に示す実施例の場合、端末装置200F,200Gは、ルータRを介してネットワークNに接続されているため、自己アドレス通知部250は、ルータRが管理するLAN(サブネット)内のプライベートIPアドレスを所在アドレスとして通知する処理を行う。ただ、このプライベートIPアドレスは、ルータRによるNAT機能によりグローバルIPアドレスADxに変換されてネットワークNに送信される。したがって、接続仲介装置100に届くアドレスは、プライベートIPアドレスではなく、グローバルIPアドレスADxということになり、アドレステーブル更新部120は、このグローバルIPアドレスADxを、所在アドレスとしてアドレステーブルTに格納する処理を行う。
また、図15に示す実施例の場合、各端末装置のネットワーク上での所在を示す所在アドレスとして、IPアドレスにポート番号を付加した情報が用いられている。このため、自己アドレス通知部250は、プライベートIPアドレスにポート番号を付加した情報を所在アドレスとして通知する処理を行い、当該情報がルータRによって、グローバルIPアドレスにポート番号を付加した情報に変換され、接続仲介装置100に届くことになる。したがって、アドレステーブルTには、グローバルIPアドレスにポート番号を付加した情報が所在アドレスとして書き込まれることになる。
図16は、図15に示す実施形態において、IPアドレスにポート番号を付加した情報を所在アドレスとして用いる場合のアドレステーブルの例を示す図である。図16(a) に示すアドレステーブルT41は、図15に示す端末装置200F(端末ID:0060)内の自己アドレス通知部250(通信アプリケーションプログラムAPP2)からの通知に基づいて、「端末ID:0060」に対応する所在アドレス(IPアドレスADxとポート番号P13との組み合わせ)の書き込みを行うとともに、端末装置200G(端末ID:0070)内の自己アドレス通知部250(通信アプリケーションプログラムAPP2)からの通知に基づいて、「端末ID:0070」に対応する所在アドレス(IPアドレスADxとポート番号P16との組み合わせ、及びIPアドレスADxとポート番号P17との組み合わせ)の書き込みを行った例である。
図15に示す例の場合、各端末装置200F,200G内の自己アドレス通知部250(通信アプリケーションプログラムAPP2)は、プライベートIPアドレスにポート番号を付加した情報を所在アドレスとして送信する処理を行うが、ルータRによって、グローバルIPアドレスにポート番号を付加した情報に変換されるため、実際にアドレステーブルT41に格納される所在アドレスは、図示のとおり、グローバルIPアドレスADxと変換後のポート番号との組み合わせになる。
たとえば、端末装置200Fの自己アドレス通知部250からは、送信元である自己の所在を示す所在アドレスとして「192.168.0.12」なるプライベートIPアドレスにポート番号「P3」を付加した情報が、端末ID「0060」を示す情報とともに送信されてくるが、ルータRを通過する際に、送信元である自己の所在を示す所在アドレスが、「xx.73.5.111」なるグローバルIPアドレスにポート番号「P13」を付加した情報に変換されることになる。したがって、アドレステーブルT41には、端末ID「0060」に対応する所属アドレスとして、「xx.73.5.111」なるグローバルIPアドレスADxと「P13」なるポート番号との組み合わせが書き込まれることになる。
図16(b) に示すアドレステーブルT42は、図16(a) に示すアドレステーブルT41の所在アドレス欄の情報を具体的なデータとして例示したものである。前述したとおり、図15に示す例の場合、ルータRの外側の通信路には、「xx.73.5.111」なるグローバルIPアドレスが付与されているため、図16(b) に示すアドレステーブルT42のIPアドレス欄には、いずれも「xx.73.5.111」なるデータが格納されている。一方、ルータRの外側の通信路に付与されるポート番号は、ルータRによって相互に重複しないように発生された2バイトの番号であり、図16(b) に示す例では、62801〜62803なるデータが格納されている。
結局、図15に示す接続仲介装置100には、端末装置200F,200Gについて、図16(b) に示すようなアドレステーブルT42が格納されることになる。そこで、図示されていない外部の通信元から、通信先特定情報として端末ID「0060」を含む接続仲介依頼があると、接続仲介装置100内の通信先アドレス返信部130は、アドレステーブルT42を参照することにより、端末ID「0060」に対応した所在アドレス(IPアドレス「xx.73.5.111」にポート番号「62801」を付加した情報)を通信先アドレスとして返信する。そこで、通信元となる端末装置は、IPアドレス「xx.73.5.111」およびポート番号「62801」で特定される通信先に対して、通信開始要求を行うことができる。
以上、主として図1に示す第1の実施形態(接続仲介装置100と端末装置200を用いる実施形態)においてルータRを用いた例を述べたが、図7に示す第2の実施形態(接続仲介装置300と端末装置400を用いる実施形態)においてルータRを用いた場合も同様である。
なお、接続仲介装置100,300内のアドレステーブル更新部120,320は、各端末装置の自己アドレス通知部250,450から所在アドレスの通知を受けるたびに、図16に例示したアドレステーブルを更新する処理を行う。前述したとおり、図15に示す実施例の場合、端末装置200F,200Gの自己アドレス通知部の処理機能は、所定のOSプログラムの管理下で動作する通信アプリケーションプログラムAPP2を実行することにより実現される。
そこで、実用上は、自己アドレス通知部250,450による自己アドレスの通知処理は、図17の表に示すタイミングで行うのが好ましい。図示の表におけるタイミング(1) は、通信アプリケーションプログラムAPP2に対するユーザによる操作入力時である。たとえば、通信アプリケーションプログラムAPP2を起動した後、「通信準備を行いますか(Yes/No)?」のようなメッセージを表示し、ユーザが「Yes」を指示する操作入力を行った時点で、自己アドレスの通知処理を行うようにすればよい。通常、通信アプリケーションプログラムAPP2が起動された時点では、既に端末装置のプライベートIPアドレスや、これに対応するグローバルIPアドレスが定まっており、自己アドレスの通知処理を行う環境が整っている。
図示の表におけるタイミング(2) は、通信アプリケーションプログラムAPP2の起動時である。このタイミング(2) を採用した場合、上述したメッセージの表示やユーザによる操作入力を待たずして、自動的に自己アドレスの通知処理が実行されることになる。実際には、プログラムAPP2の起動ルーチンに自己アドレス通知部250,450としての処理機能を組み込んでおけばよい。
図示の表におけるタイミング(3) は、OSプログラムの起動時であり、実質的には、端末装置の起動時ということになる。このタイミング(3) を採用する場合、OSプログラムの起動ルーチンに自己アドレス通知部250,450としての処理機能を組み込んでおけばよい。通常、OSプログラムの起動ルーチンにおいて、端末装置のプライベートIPアドレスや、これに対応するグローバルIPアドレスを決定する処理が行われるため、その後に、自己アドレス通知処理を自動的に行うようにしておけばよい。
<4−2. VPNを利用した実施例>
続いて、先願基本発明に係るネットワーク通信システムにおいて、VPN(Virtual Private Network)を利用した実施例を述べる。図15には、ルータRを介して端末装置をネットワークNに接続した実施例を例示した。この例の場合、ルータRの内側(図の左側)に構築されたローカルネットワークが1つのプライベートネットワークを構成しており、各端末装置200E,200F,200Gには、いずれも「192.168」なるネットワーク部で始まるプライベートIPアドレスが付与されている。このようなプライベートネットワークを、インターネットNなどの公衆ネットワークを跨いで拡張する方法として、VPNの技術が普及している。
図18は、先願基本発明に係るネットワーク通信システムにおいて、VPNを利用した実施形態の全体構成を示すブロック図である。ここでは、説明の便宜上、ある企業の東京本社に設定された3台の端末装置200H,200I,200J(端末IDは、それぞれ0081,0082,0083)と、パリ支社に設置された1台の端末装置200K(端末IDは、0091)という合計4台の端末装置によって、VPNを構築した単純な例を示すことにする。また、東京本社に設置された3台の端末装置200H,200I,200Jを第1グループに所属する第1の端末装置と呼び、パリ支社に設置された1台の端末装置200Kを第2グループに所属する第2の端末装置と呼ぶことにする。
図示のとおり、第1の端末装置200H,200I,200Jは、第1のルータR1を介してネットワーク(インターネット)Nに接続されており、第2の端末装置200Kは、第2のルータR2を介してネットワーク(インターネット)Nに接続されている。したがって、基本的には、図において第1のルータR1より上方に配置されている第1の端末装置200H,200I,200Jは、第1のルータR1が管理する第1のLAN内のホストということになり、図において第2のルータR2より下方に配置されている第2の端末装置200Kは、第2のルータR2が管理する第2のLAN内のホストということになる。
このため、第1の端末装置200H,200I,200Jには、第1のルータR1が管理する第1のLAN内のプライベートIPアドレスが付与され、第2の端末装置200Kには、第2のルータR2が管理する第2のLAN内のプライベートIPアドレスが付与されている。また、図15に示す例と同様に、IPアドレスとともにポート番号も付与されている。
図示の例の場合、第1のLANについては、クラスBのプライベートIPアドレスが付与されており、第1の端末装置200H,200I,200Jには、それぞれ「172.16.6.11(P1)」,「172.16.6.12(P2)」,「172.16.6.13(P3)」なるIPアドレスおよびポート番号が付与されている(ポート番号P1,P2,P3等は、実際には2バイトのデータである)。これらの情報は、第1のルータR1によって、それぞれ「yy.88.105.19(P11)」,「yy.88.105.19(P12)」,「yy.88.105.19(P13)」なるグローバルIPアドレスADyとポート番号との組み合わせに変換された後、インターネットNへ接続される。一方、図示の例の場合、第2のLANについては、クラスCのプライベートIPアドレスが付与されており、第2の端末装置200Kには、「192.168.99.11(P4)」なるIPアドレスおよびポート番号が付与されている。この情報は、第2のルータR2によって、「zz.99.214.28(P21)」なるグローバルIPアドレスADzとポート番号との組み合わせに変換された後、インターネットNへ接続される。
このままの状態では、第1グループに所属する第1の端末装置200H,200I,200Jが所属する第1のLANと、第2グループに所属する第2の端末装置200Kが所属する第2のLANとは、それぞれ別個独立したプライベートネットワークになるが、図示する実施例の場合、第1のLANの範囲をインターネットNを跨いで拡張するためのVPNが構築されている。すなわち、第2の端末装置200Kには、第2のルータR2が管理する第2のLAN内のプライベートIPアドレスおよびポート番号「192.168.99.11(P4)」が付与されるとともに、第1のルータR1が管理する第1のLAN内のプライベートIPアドレスおよびポート番号「172.16.6.14(P5)」が、VIPアドレスとして仮想的に付与されており、第1の端末装置200H,200I,200Jと第2の端末装置200Kとの間には、このVIPアドレスを用いて相互に交信することが可能となるようにVPNの設定がなされている。
したがって、図に破線で示すように、パリ支社に設置された端末装置200Kは、東京本社に設置された端末装置200H,200I,200Jと同様に、第1のルータR1が管理する第1のLAN内の端末装置として取り扱うことができる。図19は、図18に示す実施形態におけるVNP通信の原理を示す図である。図示の例は、東京本社に設置された端末装置200Hとパリ支社に設置された端末装置200Kとの間のVPN通信を示している。
図19に示すように、端末装置200HにはVPN通信部201Hが、端末装置200KにはVPN通信部201Kが、それぞれ設けられており、両者間にVPN暗号通信路が開設される。両者間でやりとりされるデータは暗号化されるため、実際には、インターネットNなどの公衆ネットワークを介して情報が伝達されるにもかかわらず、あたかもプライベートネットワークを介した利便性・安全性をもった情報の送受が可能になる。VPN通信部201H,201Kは、実際には、各端末装置にインストールされた専用のVPN用アプリケーションプログラムによって構築される。このようなVPNの具体的な仕組は公知の技術であるため、ここでは詳しい説明は省略する。
さて、このようなVPNの仕組を先願基本発明に係るネットワーク通信システムにおいて利用する場合は、接続仲介装置100内に格納されるアドレステーブルTに、VIPアドレスを格納しておくようにすると便利である。図20は、図18に示す実施形態に用いるために、VIPアドレスを追加したアドレステーブルの例を示す図である。図20(a) に示すアドレステーブルT51は、VPNの構成メンバーである端末装置200H〜200K内の自己アドレス通知部250からの通知に基づいて、各端末IDに対応する所在アドレス(IPアドレスとポート番号)を格納したものである。
ここで、端末装置200H〜200J(端末ID:0081〜0083)は、東京本社に構築された第1のLANに所属する装置であるが、端末装置200K(端末ID:0091)は、パリ支社に構築された第2のLANに所属する装置である。ただ、上述したVPNの仕組により、第1のLANは端末装置200Kまで仮想的に拡張されており、端末装置200Kには、「VIP(200K)」なるVIPアドレスが付与されている。このため、図20(a) に示すアドレステーブルT51の端末ID「0091」については、更に、VIP欄に「VIP(200K)」なるVIPアドレスが格納されている。
図20(b) に示すアドレステーブルT52は、図20(a) に示すアドレステーブルT51の所在アドレス欄およびVIP欄の情報を具体的なデータとして例示したものである。図18に示す例の場合、第1のルータR1の外側の各通信路には、「yy.88.105.19」なるグローバルIPアドレスADyに、ポート番号P11〜P13を付加した情報が所在アドレスとして付与されているため、図20(b) に示すアドレステーブルT52の端末ID「0081〜0083」のIPアドレス欄には、いずれも「yy.88.105.19」なるデータが格納されており、ポート番号欄には、第1のルータR1によって発生された2バイトの番号「54701〜54703」が格納されている。
一方、第2のルータR2の外側の各通信路には、「zz.99.214.28」なるグローバルIPアドレスADzに、ポート番号P21を付加した情報が所在アドレスとして付与されているため、図20(b) に示すアドレステーブルT52の端末ID「0091」のIPアドレス欄には、「zz.99.214.28」なるデータが格納されており、ポート番号欄には、第2のルータR2によって発生された2バイトの番号「61999」が格納されている。そして、更に、端末ID「0091」のVIP欄には、「172.16.6.14」なるVIPアドレス(VPNの設定により、端末装置200Kに対して付与された第1のLANについての仮想的なプライベートアドレス)が格納されている。
このように、アドレステーブルT52のVIP欄に「172.16.6.14」なるVIPアドレスを格納するには、第2の端末装置200Kの自己アドレス通知部250に、接続仲介装置100に対して、VPNの設定により付与されたVIPアドレスを通知する機能をもたせておき、アドレステーブル更新部120に、このVIPアドレスを第2の端末装置200Kの所在アドレスと対応づけてアドレステーブルT52に格納する機能をもたせておけばよい。
このように、アドレステーブルT52に第2の端末装置200KのVIPアドレスを格納しておくようにすれば、たとえば、第1の端末装置200Hが第2の端末装置200Kを通信先として通信を行う際に、第1の端末装置200Hの接続仲介依頼部210が、第2の端末装置200KのVIPアドレス「VIP(200K)」を通信先特定情報として用いて通信先の特定を行うことができる。
具体的には、端末装置200Hの接続仲介依頼部210が、通信先特定情報として「172.16.6.14」なるVIPアドレスを含む接続仲介依頼を行うようにすれば、接続仲介装置100内の通信先アドレス返信部130は、図20(b) に示すアドレステーブルT52を参照することにより、VIPアドレス「172.16.6.14」に対応する所在アドレス「zz.99.214.28(61999)」を通信先アドレスとして返信することができる。通常、VPNの設定を行った場合、アプリケーションプログラムのレイヤーでは、端末装置200Kは、「172.16.6.14」なるVIPアドレスをもった装置として認識されているので、このVIPアドレスを用いて接続仲介依頼を行うことができれば便利である。
もちろん、必要があれば、VIPアドレス「172.16.6.14」とともに、ポート番号「P5」を格納しておくようにしてもよい。そうすれば、「172.16.6.14(P5)」なる情報を用いて、特定のポート番号の指定を含む接続仲介依頼を行うことができる。
以上、図1に示す先願基本発明の第1の実施形態(接続仲介装置100と端末装置200を用いる実施形態)においてVPNの設定を行い、プライベートネットワークの範囲を仮想的に拡張する例を述べたが、図7に示す先願基本発明の第2の実施形態(接続仲介装置300と端末装置400を用いる実施形態)においてVPNの設定を行う場合も同様である。
<<< §5. 本発明の第1の実施形態 >>>
これまで、国際出願PCT/JP2017/006131に記載されている先願基本発明に係るネットワーク通信システムを説明してきた。しかしながら、この先願基本発明に係るシステムでは、多数の端末装置からの接続仲介依頼が集中すると、接続仲介装置は輻輳状態に陥り、仲介処理を円滑に運ぶことが困難になる。
たとえば、図1には、説明の便宜上、接続仲介装置100が、ネットワークNに接続された4台の端末装置200A〜200Dについての接続仲介処理を行う例が示されているが、実用上、端末装置200の台数はより多数になる。特に、近年は、IoT(Internet of Things)という考え方が普及し始めており、様々な物がそれぞれ独立した端末装置としての機能をもち、相互に通信を行うようになってゆくことが予想される。本発明をこのような通信インフラとして利用した場合、システムに含まれる端末装置は膨大な数にのぼり、多数の端末装置からの接続仲介依頼が集中すると、接続仲介装置100は輻輳状態に陥り、円滑な仲介処理を阻む要因になる。
本発明は、このような問題を対処するための技術であり、その基本概念は、接続仲介装置100を複数組設けて接続仲介処理を分散させることにより、各接続仲介装置100の処理負荷を軽減し、任意の端末装置間の接続仲介処理を円滑に運ぶことができるようにする点にある。
<5−1. 本発明の第1の実施形態の基本構成>
図21は、本発明の第1の実施形態に係るネットワーク通信システムの全体構成を示すブロック図である。ここに示すネットワーク通信システムは、§1で述べた先願基本発明の第1の実施形態に、上述した本発明の基本概念を適用したものである。
図示のとおり、このネットワーク通信システムは、ネットワークN(この例では、インターネット)を介して相互に接続可能な複数の端末装置200A〜200Iと、これら複数の端末装置間の接続を仲介する複数の接続仲介装置100X,100Y,100Zと、を備えている。図1に示す先願基本発明に係るネットワーク通信システムでは、1台の接続仲介装置100が4台の端末装置200A〜200Dについての接続仲介処理を実行するのに対して、図21に示す本発明に係るネットワーク通信システムでは、3台の接続仲介装置100X,100Y,100Zが9台の端末装置200A〜200Iについての接続仲介処理を実行することになる。
ここで、各接続仲介装置100X,100Y,100Zによる接続仲介処理の手順は、§1で述べた先願基本発明に係る接続仲介装置100による接続仲介処理の手順と全く同じである。
すなわち、各端末装置200A〜200Iには、個々の端末装置を相互に識別するための端末IDがそれぞれ付与されており、各接続仲介装置100X,100Y,100Zは、この端末IDを利用して通信元となる端末装置と通信先となる端末装置との間の接続を仲介する処理を実行する。具体的には、図示の例の場合、各端末装置200A〜200Iには、それぞれ端末ID「0010」〜「0090」が付与されており、各端末装置200A〜200Iは、これら端末IDにより特定されることになる。
また、各端末装置200A〜200Iには、それぞれネットワーク上での所在を示す所在アドレスが設定されている。図示の例の場合、各端末装置200A〜200Iの所在アドレスは、各ブロックの右上に記したように、アドレス「AD1」〜「AD9」になっている。これらのアドレスは、時間的に変動が生じない固定アドレスであってもよいし、時間的に変動が生じる浮動アドレスであってもよい。端末装置がモバイル端末である場合は、通常、浮動アドレスが設定される。
§1で述べたように、浮動アドレスが設定された端末装置についても、常にその所在アドレスを把握することができるように、各端末装置200A−200Iのそれぞれについて端末IDと所在アドレスとを対応づけたアドレステーブルが用意される。具体的には、図21に示す実施例の場合、図22(a) に示すように、各端末ID「0010」〜「0090」に各所在アドレス「AD1」〜「AD9」を対応づけたアドレステーブルTが用意される。
本発明では、この図22(a) に示すようなアドレステーブルTの他に、図22(b) に示すような担当テーブルUが用意される。この担当テーブルUは、各端末装置200A〜200Iのそれぞれについて、当該端末装置を担当する担当接続仲介装置を示す情報を含むテーブルである。図21に示す実施例の場合、9台の端末装置200A〜200Iのそれぞれを、3台の接続仲介装置100X,100Y,100Zのいずれかによって担当させることになる。
図示の例は、端末装置200A〜200Dを接続仲介装置100Xによって担当させ、端末装置200E,200Fを接続仲介装置100Yによって担当させ、端末装置200G〜200Iを接続仲介装置100Zによって担当させたものである。したがって、図22(b) に示す担当テーブルUでは、各端末ID「0010」〜「0090」に、仲介装置IDとして、「100X」,「100Y」,「100Z」のいずれかが対応づけられている。各接続仲介装置100X,100Y,100Zには、仲介装置IDがそれぞれ付与されている。ここで、仲介装置IDは、個々の接続仲介装置を相互に識別することができるIDであれば、どのような情報を用いてもかまわない。ここでは説明の便宜上、図21において各接続仲介装置に付した参照符号「100X」,「100Y」,「100Z」をそのまま仲介装置IDとして用いることにする。
もちろん、仲介装置IDとして、各接続仲介装置のネットワーク上での所在を示す所在アドレスを用いることも可能である。図21に示す実施例の場合、各接続仲介装置100X,100Y,100Zの所在アドレスは、各ブロックの右上に記したように、アドレス「ADX」,「ADY」,「ADZ」になっている。これら接続仲介装置のアドレスも、端末装置のアドレスと同様に、時間的に変動が生じない固定アドレスであってもよいし、時間的に変動が生じる浮動アドレスであってもよい。
図示の例の場合、接続仲介装置100Xの所在アドレス「ADX」は固定アドレス、接続仲介装置100Yおよび100Zの所在アドレス「ADY」,「ADZ」は浮動アドレスになっている。実用上は、このように、複数の接続仲介装置のうちの少なくとも1台には固定アドレスを付与しておくのが好ましい。そうすれば、端末装置が自己を担当する接続仲介装置にアクセスを行ったときに、当該担当接続仲介装置に付与された所在アドレスが浮動アドレスであったためにアドレスが変更されており、アクセスに失敗した場合でも、固定アドレスが付与された接続仲介装置に代替アクセスを行うことができるようになる。
要するに、複数の接続仲介装置を、固定アドレスが設定された固定接続仲介装置と、浮動アドレスが設定された浮動接続仲介装置とによって構成しておくようにすれば、浮動接続仲介装置に対するアクセスに失敗しても、常に固定接続仲介装置に対する代替アクセスが可能になる。このような代替アクセスを行うためには、すべての端末装置200A〜200Iに、固定接続仲介装置100Xの固定アドレスADXを記録しておくようにすればよい。
たとえば、図21に示す実施例の場合、端末装置200Gの接続仲介依頼部210が、自己の担当となる浮動接続仲介装置100Zに対して浮動アドレスADZを用いたアクセスを行ったときに、浮動アドレスADZが変更になっていると、アクセスに失敗してしまう。このようにアクセスに失敗した場合、端末装置200Gは、固定接続仲介装置100Xに対して固定アドレスADXを用いた再アクセスを行うことにより、固定接続仲介装置100Xに対して接続仲介依頼を行うことが可能になる。
各端末装置200A〜200Iには、いずれかの接続仲介装置から、少なくとも自己を担当する接続仲介装置の所在アドレスもしくは当該所在アドレスを認識するために必要な情報が通知される。たとえば、端末装置200Eには、担当接続仲介装置100Yの所在アドレス「ADY」が通知される。あるいは、当該所在アドレス「ADY」を認識するために必要な情報を通知してもよい。具体的には、担当接続仲介装置100Yの所在アドレス「ADY」を通知する代わりに、仲介装置ID「100Y」を通知してもよい。この場合、図22(a) に示すアドレステーブルTに、仲介装置IDとその所在アドレスとの対応関係も記録しておくようにする。そうすれば、端末装置200Eは、通知された仲介装置ID「100Y」に基づいて、このアドレステーブルTを参照することにより、担当接続仲介装置100Yの所在アドレス「ADY」を認識することができる。
もちろん、浮動アドレスが付与されている接続仲介装置については、その所在アドレスが変更された場合、担当する端末装置にその旨を通知するか、アドレステーブルTの内容を逐次更新する処理を行うようにする。たとえば、浮動アドレスが付与されている接続仲介装置100Yの所在アドレス「ADY」が「ADY′」に変更された場合、接続仲介装置100Yが変更後のアドレスを、担当する端末装置に通知するか、アドレステーブルTの内容を更新する処理を行うようにすればよい。
後述するように、必要に応じて、担当テーブルUの内容も変更することが可能である。たとえば、図21に示す例の場合、接続仲介装置100Xは4台の端末装置200A〜200Dを担当しているが、接続仲介処理の負荷が増大して輻輳が生じる事態になった場合には、たとえば、端末装置200Dの担当を、余力のある接続仲介装置100Yに変更することができる。この場合、図22(b) に示す担当テーブルUにおいて、端末ID「0040」に対応する仲介装置IDの欄を「100X」から「100Y」に書き換えればよい。
なお、図22には、端末IDと所在アドレスとを対応づけたアドレステーブルT(図(a) )と端末IDと仲介装置IDとを対応づけた担当テーブルU(図(b) )とを別個のテーブルとして用意した例を示したが、各テーブルの形態は、この図22に示す例に限定されるものではない。たとえば、図23は、端末ID、所在アドレス、仲介装置IDの三者を相互に対応づけた融合テーブルMを用意した例である。この融合テーブルMの場合、端末IDと所在アドレスとの対応部分(第2欄と第3欄)をアドレステーブルTとして利用し、端末IDと仲介装置IDとの対応部分(第1欄と第2欄)を担当テーブルUとして利用することができる。
図22に示すアドレステーブルTおよび担当テーブルUや、図23に示す融合テーブルMは、基本的には、各接続仲介装置100X,100Y,100Z内に格納しておくのが好ましいが、後述する変形例(§5−3:図25参照)のように、各接続仲介装置100X,100Y,100Zとは別個にテーブル格納装置500を設け、このテーブル格納装置500内に各テーブルを格納することも可能である。要するに、これらのテーブルは、各接続仲介装置によって参照可能な場所に用意されていれば足りる。
一方、図21に示す各端末装置200A〜200Iの構成および機能は、§1で述べた先願基本発明に係る各端末装置200A〜200Dの構成および機能と全く同じである。具体的には、図21に示す各端末装置200A〜200Iは、いずれも、図2に示す端末装置200と同様に、接続仲介依頼部210、通信要求受付部220、通信先セッション確立部230、通信開始要求部240、自己アドレス通知部250、通信元セッション確立部260を有している。
ここで、自己アドレス通知部250は、自己のネットワーク上での所在を示す所在アドレスを通知する機能を果たす構成要素である。前述のとおり、端末装置200がモバイル端末であるような場合、付与される所在アドレスは浮動アドレスになるため、新たな所在アドレスが付与されるたびに、自己アドレス通知部250によって当該新アドレスが通知されることになる。
ただ、この自己アドレス通知部250による所在アドレスの通知先は、図2に示す先願基本発明の場合、単一の接続仲介装置100だけになるが(図3参照)、本発明の場合、若干の修正が必要である。自己アドレス通知部250によって所在アドレスを特定の外部装置(アドレステーブルを格納している装置)に通知する目的は、当該特定の外部装置に格納されているアドレステーブルTを更新するためである。図2に示す先願基本発明の場合、アドレステーブルTは単一の接続仲介装置100に格納されているため、通知先は接続仲介装置100だけでかまわない。
これに対して、本発明では、アドレステーブルTの格納場所を、各接続仲介装置の内部とする運用(§5−2:図24参照)を採ることもできるし、各接続仲介装置とは別個に設けたテーブル格納装置500の内部とする運用(§5−3:図25参照)を採ることもできる。前者の運用を採る場合、自己アドレス通知部250による所在アドレスの通知先は、接続仲介装置100X,100Y,100Zになるが、後者の運用を採る場合、自己アドレス通知部250による所在アドレスの通知先は、テーブル格納装置500になる。
一方、図4で説明したとおり、通信要求受付部220Aは、自己(端末装置200A)を通信元として、通信先の別な端末装置(200B)に対する通信要求S1を受け付ける役割を果たし、接続仲介依頼部210Aは、この通信要求S1が受け付けられたときに、接続仲介装置100に対して、通信先の別な端末装置(200B)の端末ID「0020」を特定するための通信先特定情報を含む接続仲介依頼S2を送信する。
ただ、図4に示す先願基本発明の場合、接続仲介依頼S2の送信先は単一の接続仲介装置100ということになるが、本発明の場合、複数の接続仲介装置100X,100Y,100Zが存在するため、送信先をいずれかに絞る必要がある。前述したとおり、本発明では、各端末装置について、担当接続仲介装置が定められているので、接続仲介依頼S2の送信先は、当該担当接続仲介装置ということになる。
たとえば、図21に示す実施例の場合、端末装置200Eの担当は、接続仲介装置100Yであるので、端末装置200E内の接続仲介依頼部210には、予め担当接続仲介装置100Yの所在アドレス「ADY」もしくは当該所在アドレスを認識するために必要な情報(たとえば、仲介装置IDである「100Y」)が通知されており、接続仲介依頼部210内には、これらの情報が格納されている。そこで、接続仲介依頼部210は、この担当接続仲介装置100Yに対して接続仲介依頼S2を送信することになる。
結局、図21に示す実施例の場合、端末装置200A〜200Dは、担当接続仲介装置100Xに対して接続仲介依頼S2を送信し、端末装置200E,200Fは、担当接続仲介装置100Yに対して接続仲介依頼S2を送信し、端末装置200G〜200Iは、担当接続仲介装置100Zに対して接続仲介依頼S2を送信することになり、以後の接続仲介処理は、それぞれ担当接続仲介装置によって実行される。このように、本発明では、複数台の端末装置からの接続仲介依頼が、それぞれの担当接続仲介装置によって振り分けられて分散処理されることになる。このため、特定の接続仲介装置に接続仲介依頼が集中して輻輳状態に陥ることを防ぐことができ、任意の端末装置間の接続仲介処理を円滑に運ぶことが可能になる。
図4に示す通り、接続仲介依頼S2を受けた担当接続仲介装置100Xは、通信先となる別な端末装置200Bのネットワーク上での所在を示す通信先アドレス「AD2」を返信してくる。通信開始要求部240Aは、この通信先アドレス「AD2」の返信があったときに、ネットワークNを介して、当該アドレス「AD2」にアクセスして通信開始要求S5を行うことになる。そして、通信元セッション確立部260Aは、上記通信開始要求S5に応じて、通信先の別な端末装置(200B)から、通信開始受諾確認S6が返信されてきたときに、この通信先の別な端末装置(200B)との間に通信セッションを確立して通信S7を開始する。
一方、通信先セッション確立部230Bは、端末装置が通信先(200B)となった場合に機能する構成要素であり、通信元の別な端末装置(200A)から、自己を通信先とする通信開始要求S5がなされたら、通信元の別な端末装置(200A)に対して通信開始受諾確認S6を送信し、通信元の別な端末装置(200A)との間に通信セッションを確立して通信S7を開始する。
このように、本発明に係るネットワーク通信システムの構成要素となる複数の端末装置200A〜200Iの基本機能は、図2に示す先願基本発明の端末装置200と同じである。ただ、本発明の場合、各端末装置が接続仲介の依頼を行う際に、自己を担当する担当接続仲介装置に対して接続仲介依頼を行うことになる。
続いて、本発明に係るネットワーク通信システムの構成要素となる複数の接続仲介装置100X,100Y,100Zの機能について説明する。図21の右上のブロックに吹き出しとして記載されているように、接続仲介装置100Xには、アドレステーブル参照機能、担当テーブル参照機能、通信先アドレス返信機能、担当通知機能が備わっている。図には示されていないが、接続仲介装置100Y,100Zにも、全く同様の機能が備わっている。
ここで、アドレステーブル参照機能は、各端末装置200A〜200Iのそれぞれについて端末IDと所在アドレスとを対応づけたアドレステーブルT(たとえば、図22(a) に示すテーブル)を参照する機能であり、担当テーブル参照機能は、端末装置200A〜200Iのそれぞれについて当該端末装置を担当する担当接続仲介装置を示す情報を含む担当テーブルU(たとえば、図22(b) に示すテーブル)を参照する機能である。前述したとおり、これらのテーブルT,Uは、各接続仲介装置100X,100Y,100Z内に格納しておいてもよいし、別個に設けられたテーブル格納装置500内に格納しておいてもよい。
また、通信先アドレス返信機能は、たとえば図4に示す例のように、通信元となる端末装置200Aの接続仲介依頼部210Aから、接続仲介依頼S2が送信されてきたときに、アドレステーブルTの参照結果に基づいて、接続仲介依頼S2に含まれている通信先特定情報によって特定される端末ID「0020」に対応づけられている所在アドレス「AD2」を通信先アドレスとして返信する機能である。
接続仲介装置としての接続仲介処理は、上記通信先アドレス返信機能の実行により完了することになるが、本発明に係る接続仲介装置には、更に、担当通知機能が設けられている。この担当通知機能は、送信元となる端末装置200Aから接続仲介依頼S2を受信したときに、担当テーブルUの参照結果に基づいて、自己が、通信元となる端末装置200Aについての担当接続仲介装置であるか否かを判定し、自己が担当接続仲介装置でない場合には、通信元となる端末装置200Aに対して、担当接続仲介装置を通知する機能である。
前述したとおり、各端末装置の接続仲介依頼部は、担当接続仲介装置に対して、接続仲介依頼S2を送信することになるので、基本的には、特定の端末装置からの接続仲介依頼S2を受信した接続仲介装置は、当該特定の端末装置についての担当接続仲介装置になっているはずである。しかしながら、担当変更が行われた直後などでは、端末装置からの接続仲介依頼S2が旧担当接続仲介装置に対して送信される場合もある。このような場合、旧担当接続仲介装置は、通信先アドレス返信機能の実行により接続仲介処理を完了するとともに、担当通知機能により、通信元となる端末装置に対して、新担当接続仲介装置を通知する処理を行う。
各端末装置の接続仲介依頼部210は、以後、この担当通知機能によって通知された新担当接続仲介装置に対して、接続仲介依頼S2を送信する。要するに、接続仲介依頼部210は、常に、担当通知機能による最新の通知によって示された接続仲介装置を担当接続仲介装置として、接続仲介依頼S2を送信することになる。
結局、本発明の第1の実施形態に係るネットワーク通信システムに用いられる各接続仲介装置100X,100Y,100Zは、ネットワークNを介して相互に接続可能な複数の端末装置200A〜200Iについて、通信元端末装置と通信先端末装置との間の接続を仲介する役割を果たす装置ということになる。
そして、この接続仲介装置は、端末装置のそれぞれについて個々の端末装置を相互に識別するための端末IDと個々の端末装置のネットワーク上での所在を示す所在アドレスとを対応づけたアドレステーブルTを参照するアドレステーブル参照手段と、各端末装置のそれぞれについて当該端末装置を担当する担当接続仲介装置を示す情報を含む担当テーブルUを参照する担当テーブル参照手段と、通信元端末装置から通信先端末装置に対する接続仲介依頼が送信されてきたときに、アドレステーブルTの参照結果に基づいて得られる通信先端末装置の所在アドレスを、通信元端末装置に返信する通信先アドレス返信手段と、通信元端末装置から通信先端末装置に対する接続仲介依頼が送信されてきたときに、担当テーブルUの参照結果に基づいて、自己が、通信元端末装置についての担当接続仲介装置であるか否かを判定し、自己が担当接続仲介装置でない場合には、通信元端末装置に対して、担当接続仲介装置を通知する担当通知手段と、を有している。
実際には、各接続仲介装置100X,100Y,100Zは、ネットワークNに接続されたサーバコンピュータに、上記各手段としての機能を果たすための専用プログラムを組み込むことにより構成することができる。
<5−2. 各テーブルを接続仲介装置の内部に格納した実施例>
上述した§5−1では、図21を参照しながら、本発明の第1の実施形態に係るネットワーク通信システムの全体構成を説明した。そして、各接続仲介装置100X,100Y,100Zが、アドレステーブル参照機能と担当テーブル参照機能を有する点を説明し、各テーブルT,Uの格納場所は任意の場所でよい点を述べた。ここでは、各テーブルT,Uを接続仲介装置の内部に格納した実施例を説明する。
図24は、図21に示すネットワーク通信システムにおいて、アドレステーブルTおよび担当テーブルUを接続仲介装置100Xの内部に格納した実施例を示すブロック図である。この図24では、便宜上、接続仲介装置100Y,100Zの図示は省略しているが、図21に示す例と同様に、接続仲介装置100Y,100Zが設けられている。これら接続仲介装置100Y,100Zの構成および動作は、接続仲介装置100Xの構成および動作と同様であり、図24に示すネットワーク通信システムは、図21に示すネットワーク通信システムと同様に、3台の接続仲介装置100X,100Y,100Zによって、9台の端末装置200A〜200Iについての接続仲介処理を実行するシステムである。なお、図24の右下には、管理用端末装置200Sが描かれているが、この管理用端末装置200Sの機能については、§5−4で述べる。
図24に示すとおり、この実施例における接続仲介装置100Xは、アドレステーブル格納部110と、アドレステーブル更新部120と、通信先アドレス返信部130Xと、担当テーブル格納部140Xと、担当テーブル更新部150Xと、を有しており、ネットワークN上において所在アドレス「ADX」が付与されている。
アドレステーブル格納部110は、前述したアドレステーブルTを格納する構成要素であり、図24には、図22(a) に示すアドレステーブルTが格納された状態が示されている。同様に、担当テーブル格納部140Xは、前述した担当テーブルUを格納する構成要素であり、図24には、図22(b) に示す担当テーブルUが格納された状態が示されている。
一方、アドレステーブル更新部120は、各端末装置200A〜200Iの自己アドレス通知部250からの通知に基づいて、アドレステーブルTの内容を更新する構成要素である。図3に示すように、自己アドレス通知部250は、自己のネットワーク上での所在を示す所在アドレスを、外部装置に対して通知する役割を果たす。モバイル端末等では、所在アドレスが時間的に変化するが、自己アドレス通知部250が所定周期で繰り返して現時点の所在アドレスを通知するようにしておき、アドレステーブル更新部120がこの通知に基づいて、アドレステーブル格納部110に格納されているアドレステーブルTの内容を書き換えるようにしておけば、アドレステーブルTを常に最新の状態に維持することができる。
また、担当テーブル更新部150Xは、与えられた担当変更指示に基づいて、担当テーブルUの内容を更新する構成要素である。ここに示す実施例の場合、管理用端末装置200Sによって接続仲介装置100Xに対する担当変更指示が与えられる。担当テーブル更新部150Xは、この担当変更指示に従って、担当テーブル格納部140Xに格納されている担当テーブルUの内容を書き換える処理を行う。
そして、通信先アドレス返信部130Xは、図4に示す接続仲介装置100内の通信先アドレス返信部130と同様に、接続仲介依頼S2のあった端末装置に対して、通信先アドレスを返信する構成要素である。たとえば、図4に示すように、端末装置200Aの接続仲介依頼部210Aから、接続仲介依頼S2が送信されてきた場合は、アドレステーブル格納部110に格納されているアドレステーブルTを参照して、接続仲介依頼S2に含まれている通信先特定情報によって特定される端末ID「0020」に対応づけられている所在アドレス「AD2」を、通信先アドレスとして、端末装置200Aの通信開始要求部240Aに対して返信する処理を実行する。
このように、図24に示す通信先アドレス返信部130Xは、図4に示す通信先アドレス返信部130と同様に、接続仲介依頼S2のあった端末装置に対して、通信先アドレス返信S4を行う通信先アドレス返信機能を有しているが、それに加えて、前述した担当通知機能も有している。すなわち、通信元となる端末装置から接続仲介依頼S2を受信したときに、担当テーブル格納部140Xに格納されている担当テーブルUを参照して、自己が、通信元となる端末装置についての担当接続仲介装置であるか否かを判定し、自己が担当接続仲介装置でない場合には、通信元となる端末装置に対して、担当接続仲介装置を通知する処理を実行する。
§5−1で述べたとおり、各端末装置の接続仲介依頼部210は、基本的には、最新の通知によって示された接続仲介装置を担当接続仲介装置として、接続仲介依頼S2を送信する。ところが、担当変更が行われた直後などでは、担当テーブルU上では既に担当変更が反映されていたとしても、担当変更の情報が各端末装置には伝達されていない可能性もある。このような場合、端末装置からは、担当外の接続仲介装置に対して接続仲介依頼S2が送信されることになる。そこで、端末装置から担当外の接続仲介装置に対して接続仲介依頼S2が送信された場合には、当該担当外の接続仲介装置による担当通知機能によって、その時点での正しい担当接続仲介装置(その時点での担当テーブルUによって担当とされている接続仲介装置)を当該端末装置に対して通知する処理が行われる。
ここで重要な点は、担当外の接続仲介装置に対して接続仲介依頼S2が送信された場合でも、通信先アドレス返信機能による返信処理は実行される点である。別言すれば、各接続仲介装置は、自分が担当する端末装置から接続仲介依頼S2を受けた場合でも、自分が担当しない端末装置から接続仲介依頼S2を受けた場合でも、当該接続仲介依頼S2に応じて通信先アドレスを返信することになる。要するに、通信先アドレス返信機能による返信処理は、どの端末装置からの接続仲介依頼S2に対しても区別なく実行されることになる。
ただ、各接続仲介装置は、自分が担当しない端末装置から接続仲介依頼S2を受けた場合には、担当通知機能によって、現時点での正しい担当を通知する処理を行うので、以後、当該通知を受けた端末装置は、正しい担当接続仲介装置に対して接続仲介依頼S2を送信することになる。かくして、以後は、輻輳状態が緩和されることになる。
端末装置からの接続仲介依頼S2が、できるだけ正しい担当接続仲介装置に対してなされるようにするには、担当テーブルUの更新により担当変更が生じたときに、その旨を遅滞なく端末装置に通知するようにすればよい。そのためには、担当変更が生じた時点で直ちに、接続仲介装置から端末装置に対して担当変更を知らしめる通知(いわゆる、プッシュ型配信)を行えばよい。
しかしながら、現実的には、このようなプッシュ型配信による通知を行うことは困難である。端末装置に対してプッシュ型配信を行うためには、当該端末装置が通信可能状態になっている必要がある。すなわち、端末装置の電源がON状態となっており、ネットワークNに接続されており(モバイル端末の場合、通信圏外ではない状態)、接続仲介装置からの通知を受信可能な状態になっている必要がある。ところが、パソコン、スマートフォン、タブレットなどの一般的な端末装置は、必ずしも、そのような状態になっているとは限らない。このため、実用上は、端末装置から接続仲介装置に対してアクセスがあったとき(たとえば、接続仲介依頼S2があったとき)に、その返信として、接続仲介装置から端末装置に対して担当変更を知らしめる通知(いわゆる、プル型配信)を行わざるを得ない。本発明における接続仲介装置の担当通知機能は、このようなプル型配信を行う機能に他ならない。
たとえば、図21に示すように、当初は、接続仲介装置100Xが4台の端末装置200A〜200Dを担当していたが、その接続仲介処理の負荷が増大して輻輳が生じる事態になったため、端末装置200Dの担当を、余力のある接続仲介装置100Yに変更した場合を考えてみよう。この場合、各接続仲介装置100X,100Y,100Zに格納されている担当テーブルUにおいて、端末ID「0040」に対応する仲介装置IDの欄が「100X」から「100Y」に書き換えられる。そして、本来であれば、その時点で、端末装置200Dに対して、担当接続仲介装置が100Xから100Yに変更になった旨の通知(仲介装置ID「100Y」もしくはその所在アドレス「ADY」の通知)を行うべきである。
しかしながら、そのような通知は、プッシュ型配信による通知になるため、現実的には困難である。このため、各接続仲介装置100X,100Y,100Zに格納されている担当テーブルU上では、端末装置200Dの担当が100Yに変更されているにもかかわらず、端末装置200D自身には、その旨の通知がなされていない状態が生じることになる。すなわち、端末装置200D内の接続仲介依頼部210には、担当接続仲介装置が依然として100Xである旨の記録がなされていることになる。
したがって、端末装置200Dが他のいずれかの端末装置に対して通信を行う必要が生じた場合、端末装置200Dから旧担当接続仲介装置100Xに対して、接続仲介依頼S2が送信されることになる。この接続仲介依頼S2を受信した旧担当接続仲介装置100Xは、担当外からの依頼であるが、前述したとおり、通信先アドレス返信機能によって、端末装置200Dに対して通信先アドレスを返信する。そして、担当通知機能によって、端末装置200Dに対して、正しい担当接続仲介装置が100Yである旨を通知する(仲介装置ID「100Y」もしくはその所在アドレス「ADY」の通知)。接続仲介依頼部210は、当該通知に基づいて、新たな担当接続仲介装置が100Yである旨の記録を行う。かくして、接続仲介依頼部210は、以後の接続仲介依頼S2を新たな担当接続仲介装置が100Y宛に行うことになる。
なお、前述したように、図24に示す実施例では、実際には、図示されている接続仲介装置100Xと全く同じ構成を有する接続仲介装置100Y,100Zが設けられており、接続仲介処理は、3台の接続仲介装置100X,100Y,100Zの分担作業によって行われる。ここで、3台の接続仲介装置100X,100Y,100Zには、それぞれ独立したアドレステーブルTおよび担当テーブルUが格納されることになるが、これらアドレステーブルTおよび担当テーブルUについては、相互に内容が一致するような同期処理がなされる。
すなわち、3台の接続仲介装置100X,100Y,100Zには、それぞれ独立してアドレステーブル更新部および担当テーブル更新部が設けられることになるが、このアドレステーブル更新部および担当テーブル更新部は、必要に応じて別な接続仲介装置のアドレステーブル更新部および担当テーブル更新部と通信する機能を有しており、この相互通信によって、すべての接続仲介装置内のアドレステーブルTおよび担当テーブルUの内容が一致するような同期処理が行われる。
各接続仲介装置100X,100Y,100Zは、実際には、ネットワークNに常時接続されたサーバコンピュータによって構成されており、常に相互通信が可能な状態におかれている。したがって、ある1台の接続仲介装置内のアドレステーブルTもしくは担当テーブルUの内容が更新されると、更新内容が相互通信によって直ちに別な接続仲介装置にも伝達されるようになっている。このため、任意の1台の接続仲介装置内のテーブルが書き換えられると、厳密には若干の遅延が生じるものの、ほぼ同時にすべての接続仲介装置内のテーブルを書き換える同期処理が実行される。したがって、アドレステーブルTもしくは担当テーブルUの内容更新は、3台の接続仲介装置100X,100Y,100Zのいずれに対して行ってもかまわない。
たとえば、アドレステーブルTは、図3で説明したように、各端末装置200A〜200Iの自己アドレス通知部250が、自己のネットワーク上での所在を示す所在アドレスを随時通知することによって最新の状態に書き換えられる。この場合、各端末装置200A〜200Iの自己アドレス通知部250は、所在アドレスの通知を3台の接続仲介装置100X,100Y,100Zのいずれに対して行ってもかまわない。上述したように、いずれかの接続仲介装置のアドレステーブルTがアドレステーブル更新部120によって書き換えられると、同期処理によって、他の接続仲介装置のアドレステーブルTも書き換えられることになるので、自己アドレス通知部250からの通知は、任意の接続仲介装置に対して行えば十分である。
したがって、各端末装置200A〜200Iの自己アドレス通知部250は、たとえば、自己を担当する担当接続仲介装置に対して所在アドレスの通知を行うようにすればよい。
あるいは、図21に示す実施例のように、固定アドレスが設定された固定接続仲介装置100Xと、浮動アドレスが設定された浮動接続仲介装置100Y,100Zとが設けられている場合は、自己を担当する担当接続仲介装置の代わりに、固定接続仲介装置に対して通知するような運用を行ってもよい。このような運用を行うと、図21に示す実施例の場合、すべての端末装置200A〜200Iの自己アドレス通知部250は、自己のネットワーク上での所在を示す所在アドレスを、固定接続仲介装置100Xに対して通知することになるが、上述した同期処理により、固定接続仲介装置100X内のアドレステーブルTに対する更新内容は、浮動接続仲介装置100Y,100Z内のアドレステーブルTにも直ちに反映されることになる。
このように、自己アドレス通知部250による所在アドレスの通知先を常に固定接続仲介装置100Xとする運用を採用すると、常に確実な通知が可能になるというメリットが得られる。図21に示す実施例の場合、浮動接続仲介装置100Yおよび100Zの所在アドレス「ADY」,「ADZ」は浮動アドレスであるため、将来、変更される可能性がある。もちろん、変更があった場合には、その旨を各端末装置200A〜200Iに通知すればよいが、実際には、前述したように、このような通知をプッシュ型配信によって直ちに行うことは困難である。したがって、自己アドレス通知部250による所在アドレスの通知先が浮動接続仲介装置100Y,100Zであると、アドレスADY,ADZの変更により、通知に失敗する可能性がある。これに対して、固定接続仲介装置100XのアドレスADXは常に固定されたアドレスであるため、アドレス変更による通知の失敗が生じることはない。
もちろん、自己アドレス通知部250による所在アドレスの通知先を、担当接続仲介装置(固定接続仲介装置である場合もあるし、浮動接続仲介装置である場合もある)としておき、もし通知に失敗した場合には、改めて固定接続仲介装置に対して通知を行うような運用も可能である。このような運用を行うには、すべての端末装置の自己アドレス通知部250に、固定接続仲介装置100XのアドレスADXを記録しておくようにすればよい。
<5−3. 各テーブルをテーブル格納装置に格納した実施例>
上述した§5−2では、図24を参照しながら、アドレステーブルTおよび担当テーブルUを、個々の接続仲介装置100X,100Y,100Zの内部に格納した実施例を述べた。このように、アドレステーブルTおよび担当テーブルUを、各接続仲介装置の内部に格納しておけば、各接続仲介装置は、通信元端末装置から接続仲介依頼を受けたときに、これらのテーブルT,Uを参照することにより、通信先端末装置の所在アドレスを直ちに認識することができ、また、自己が、通信元端末装置についての担当接続仲介装置であるか否かを直ちに判定することができる。
しかしながら、各接続仲介装置のそれぞれに別個独立したアドレステーブルTおよび担当テーブルUが存在するため、テーブルの内容を変更する必要が生じた場合には、すべての接続仲介装置に格納されている個々のテーブルをそれぞれ更新して各テーブルの内容を一致させる同期処理が必要になる。以下に述べる実施例は、アドレステーブルTおよび担当テーブルUを一元管理し、同期処理を不要にする形態を採るものである。
図25は、図21に示すネットワーク通信システムにおいて、各接続仲介装置とは別にテーブル格納装置500を設け、アドレステーブルTおよび担当テーブルUをこのテーブル格納装置500の内部に格納した実施例を示すブロック図である。図24に示す実施形態では、接続仲介装置100X内にアドレステーブル格納部110および担当テーブル格納部140Xが設けられ、アドレステーブルTおよび担当テーブルUが格納されている(図示されていないが、接続仲介装置100Y,100Zも同様)。これに対して、図25に示す実施形態では、新たにテーブル格納装置500が設けられ、このテーブル格納装置500内にアドレステーブルTおよび担当テーブルUが格納されている。
図示のとおり、テーブル格納装置500は、アドレステーブルTを格納するアドレステーブル格納部510と、アドレステーブルTを更新するアドレステーブル更新部520と、照会回答部530と、担当テーブルUを格納する担当テーブル格納部540と、担当テーブルUを更新する担当テーブル更新部550と、を備えている。実際には、このテーブル格納装置500は、ネットワークNに接続されたサーバコンピュータに専用のプログラムを組み込むことにより構成される。
アドレステーブル格納部510に格納されているアドレステーブルTは、図24に示すアドレステーブルTと全く同一のテーブルである。アドレステーブル更新部520は、各端末装置200A〜200Iの自己アドレス通知部250からの通知に基づいて、このアドレステーブルTの内容を更新する処理を実行する。また、担当テーブル格納部540に格納されている担当テーブルUは、図24に示す担当テーブルUと全く同一のテーブルである。担当テーブル更新部550は、外部から与えられた担当変更指示に基づいて、この担当テーブルUの内容を更新する処理を実行する。図示の実施例の場合、担当変更が必要な場合、管理用端末装置200Sから担当テーブル更新部550に対して担当変更指示が与えられ、担当テーブルUの内容が更新される。
この実施例の場合、アドレステーブルTおよび担当テーブルUは、テーブル格納装置500内に格納されて一元管理され、個々の接続仲介装置100X′,100Y′,100Z′内には、アドレステーブルTおよび担当テーブルUは存在しない。すなわち、図24に示す接続仲介装置100Xには、アドレステーブル格納部110、アドレステーブル更新部120、担当テーブル格納部140X、担当テーブル更新部150Xが設けられているが、図25に示す接続仲介装置100X′には、これらの構成要素は設けられておらず、実質的に、通信先アドレス返信部130Xと同等の機能を果たす構成要素だけが設けられている。接続仲介装置100Y′,100Z′も同様である。
もっとも、図24に示す通信先アドレス返信部130Xは、接続仲介装置100X内に格納されているアドレステーブルTおよび担当テーブルUを参照することにより、その機能を果たすことができるが、図25に示す接続仲介装置100X′,100Y′,100Z′は、内部にアドレステーブルTおよび担当テーブルUを格納していないため、外部のテーブル格納装置500に対する照会を行うことにより、アドレステーブルTの参照および担当テーブルUの参照を行うことになる。テーブル格納装置500の照会回答部530は、接続仲介装置100X′,100Y′,100Z′から照会があった場合に、この照会に基づいて、アドレステーブル格納部510内のアドレステーブルTもしくは担当テーブル格納部540内の担当テーブルUを参照し、参照結果を照会元に回答する処理を行う。
結局、図25に示す接続仲介装置100X′,100Y′,100Z′は、アドレステーブルTを参照するアドレステーブル参照機能と、担当テーブルUを参照する担当テーブル参照機能と、端末装置から接続仲介依頼S2が送信されてきたときに、アドレステーブルTの参照結果に基づいて通信先アドレスを返信する通信先アドレス返信機能と、担当外の端末装置から接続仲介依頼S2が送信されてきたときに、担当接続仲介装置を通知する担当通知機能と、を有する装置であるという観点では、図24に示す接続仲介装置100X,100Y,100Zと変わりはないが、アドレステーブルTおよび担当テーブルUの参照を、外部のテーブル格納装置500に対して行う点が異なっている。
このように、図24に示す実施例と図25に示す実施例とでは、「アドレステーブルTおよび担当テーブルUをどこに格納するか」という考え方において根本的な相違があり、それぞれ一長一短を有する。前者では、各接続仲介装置がテーブルT,Uを保有しているため、外部への問い合わせは不要になるが、テーブルT,Uの内容に変更が生じた場合、全接続仲介装置内のテーブルを更新する同期処理が必要になる。これに対して後者では、共通のテーブルT,Uがテーブル格納装置500において一元管理されるため、複数のテーブルを同期させる処理は不要になるが、各接続仲介装置は、テーブルT,Uを参照するために外部のテーブル格納装置500に照会を行う必要がある。
図25に示すとおり、テーブル格納装置500も、ネットワークNに接続された構成要素であり(図において、ネットワークNの楕円ブロックの右端から伸びる実線を参照)、ネットワークNを介して、各端末装置200A〜200I,200Sや、各接続仲介装置100X′,100Y′,100Z′と交信することができる。ただ、上述したとおり、各接続仲介装置100X′,100Y′,100Z′は、テーブルT,Uを参照する必要が生じるたびに、外部のテーブル格納装置500に対して照会を行う必要があり、システムの実運用時には、このような照会およびこれに対する回答が頻繁に行われることになる。
そこで、図25に示す実施例では、各端末装置200A〜200I,200Sと、各接続仲介装置100X′,100Y′,100Z′との間、および端末装置200A〜200I,200Sと、テーブル格納装置500との間、をインターネットNを介して接続する(図の細い実線参照)とともに、各接続仲介装置100X′,100Y′,100Z′とテーブル格納装置500との間(具体的には、照会回答部530との間)を、インターネットNより高速な通信が可能な高速通信線Hによって接続している(図の太い実線参照)。
このように、一部に高速通信線Hを設けるようにすれば、各接続仲介装置100X′,100Y′,100Z′とテーブル格納装置500(照会回答部530)との間の交信を高速に行うことが可能になる。すなわち、各接続仲介装置100X′,100Y′,100Z′から照会回答部530に対する照会や、照会回答部530から照会元への回答は、この高速通信線Hを介して高速に行うことができるので、システムの実運用時に照会や回答が頻繁に行われることになっても、処理の遅延を抑制することができる。
<5−4. 管理用端末装置の機能>
図24に示す実施例や図25に示す実施例には、端末装置200A〜200Iとは別個に、管理用端末装置200Sが設けられている。ここで、端末装置200A〜200Iは、このネットワーク通信システムを利用する個々のユーザの端末装置であるのに対して、管理用端末装置200Sは、このネットワーク通信システムの運営者がシステムを管理するために用いる端末装置である。
具体的には、管理用端末装置200Sは、新たな接続仲介装置をシステムに追加する追加処理、既存の接続仲介装置をシステムから削除する削除処理、各接続仲介装置の担当を変更する担当変更処理を行う機能を有する。図示のとおり、この管理用端末装置200Sも、所定の所在アドレスADsをもってネットワークNに接続された装置であり、たとえば、パソコンなどに専用のプログラムを組み込むことにより構成される。
図21には、3台の接続仲介装置100X,100Y,100Zによって9台の端末装置200A〜200Iについての接続仲介処理を実行する例を示したが、実用上は、より多数の端末装置についての接続仲介処理を行うことになる。このため、実運用を開始した後に、たとえば端末装置の数が増加した場合や各端末装置の通信頻度が増加した場合は、3台の接続仲介装置だけではその処理能力の限界を超えて輻輳状態に陥ることがある。このような場合、4台目、5台目といった新たな接続仲介装置を追加して、各接続仲介装置の処理負荷を分散させる必要がある。
このように、接続仲介装置の追加処理を行う際には、追加対象となる新たな接続仲介装置を用意した上で、当該新たな接続仲介装置が担当することになる端末装置を決定し、当該決定に基づいて、担当テーブルUの内容を更新する必要がある。新たな接続仲介装置を用意するには、新たなサーバコンピュータをネットワークNに接続し、必要な専用ソフトウエアを組み込めばよい。そして、担当テーブルUについては、既存の接続仲介装置がこれまで担当していた端末装置の一部を、追加した新たな接続仲介装置の担当に変更するような担当変更を行えばよい。
図24に示す実施例の場合、管理用端末装置200Sによって担当変更処理が実行される。具体的には、管理用端末装置200Sから各接続仲介装置100X,100Y,100Zの担当テーブル更新部に対して担当変更指示がなされ、担当テーブルUの更新が行われる。あるいは、管理用端末装置200Sから代表となる接続仲介装置(たとえば、接続仲介装置100X)の担当テーブル更新部に対して担当変更指示を行い、各担当テーブル更新部による同期処理により、各担当テーブルUの内容を同期させるようにしてもかまわない。もちろん、新たに追加された接続仲介装置にも、更新後の担当テーブルUが格納されることになる。
一方、図25に示す実施例の場合、管理用端末装置200Sからテーブル格納装置500内の担当テーブル更新部550に対して担当変更指示がなされ、担当テーブルUの更新が行われる。この実施例では、担当テーブルUはテーブル格納装置500によって一元管理されているため、テーブル格納装置500内の担当テーブルUを更新するだけで足りる。
このように接続仲介装置を増加させる必要が生じるケースとは逆に、接続仲介装置を減少させる必要が生じるケースもありうる。たとえば端末装置の数が減少した場合や各端末装置の通信頻度が減少した場合は、各接続仲介装置の処理負荷が減少することになる。このような処理負荷の減少により技術的な問題が生じることはない。ただ、実際には必要のない無用なハードウエア資源を投入していることになるので、運用コストが嵩むという経済的な問題が生じることになる。このような場合、より効率的な運営を行うという見地から、既存の接続仲介装置の一部を削除する必要がある。
このように、接続仲介装置の削除処理を行う際には、削除対象となる既存の接続仲介装置を撤去するとともに、当該既存の接続仲介装置が担当していた端末装置について新たな担当を決定し、当該決定に基づいて、担当テーブルUの内容を更新するための担当変更指示を行うようにすればよい。前述したとおり、図24に示す実施例の場合、このような担当変更指示は、管理用端末装置200Sによって、接続仲介装置100X,100Y,100Z(もしくは、これらのうちの代表)の担当テーブル更新部に対してなされる。また、図25に示す実施例の場合、管理用端末装置200Sからテーブル格納装置500内の担当テーブル更新部550に対して担当変更指示がなされる。
以上述べた新たな接続仲介装置の追加処理および既存の接続仲介装置の削除処理や、これに付随する担当変更の処理は、このネットワーク通信システムを管理するオペレータの指示に基づいて行うことができる。オペレータは、各接続仲介装置の稼働状態を監視しながら接続仲介装置の増減の必要性を判断し、追加処理や削除処理のために必要な作業を行うとともに、これに付随して必要な担当変更を管理用端末装置200Sに対して指示する。管理用端末装置200Sは、オペレータからの指示に基づいて、追加処理および削除処理を実行し、オペレータからの指示に基づいて、担当テーブルUの内容を更新するための担当変更指示を行う。
もちろん、接続仲介装置の追加や削除を行わずに、担当変更指示のみを行うことも可能である。たとえば、図21に示す実施例において、接続仲介装置100Xの処理負荷が増加して逼迫する可能性が高まっているのに対し、接続仲介装置100Yの処理負荷が減少しているような場合は、接続仲介装置100Xの担当となっている端末装置の一部を接続仲介装置100Yの担当に変更する担当変更指示を行えばよい。そうすれば、接続仲介装置の追加や削除を行うことなしに、円滑な仲介処理を実現することができる。
このように、オペレータは、自己の判断に基づいて管理用端末装置200Sに対して指示を行うことにより、接続仲介装置の追加や削除あるいは担当変更についての的確な管理を行うことができる。もっとも、このような管理を、オペレータの手を煩わせずに、管理用端末装置200Sによって自動的に実行させるようにすることも可能である。
具体的には、追加処理を自動化するには、管理用端末装置200Sに、既存の各接続仲介装置100X,100Y,100Zの負荷を適宜モニタする機能をもたせておき、モニタの結果、負荷が所定の上限値を超えるオーバーロード接続仲介装置の存在が判明した場合には、新たな接続仲介装置をシステムに追加する追加処理を実行し、このオーバーロード接続仲介装置が担当していた一部の端末装置を、追加した新たな接続仲介装置に担当させる担当変更指示を行う機能をもたせておくようにすればよい。
なお、各接続仲介装置100X,100Y,100Zの負荷をモニタするには、たとえば、各接続仲介装置100X,100Y,100Zから管理用端末装置200Sに対して、定期的に自己の処理負荷を報告させるようにすればよい。
もちろん、管理用端末装置200Sは、あくまでもソフトウエア的な処理を行う装置であり、新たな接続仲介装置を物理的に設置するようなハードウエア的な処理を行うことはできない。したがって、管理用端末装置200Sによる接続仲介装置の追加処理を自動化する場合は、予め接続仲介装置として機能しうるサーバコンピュータなどを待機装置として準備しておき、必要に応じて、管理用端末装置200Sによるソフトウエア的な処理によって、この待機装置を新たな接続仲介装置として稼働させることになる。
一方、削除処理を自動化するには、管理用端末装置200Sに、既存の各接続仲介装置100X,100Y,100Zの負荷を適宜モニタする機能をもたせておき、モニタの結果、負荷が所定の下限値を下まわるアンダーロード接続仲介装置の存在が判明した場合には、アンダーロード接続仲介装置をシステムから削除する削除処理を実行し、アンダーロード接続仲介装置が担当していた端末装置を別な接続仲介装置に担当させる担当変更指示を行う機能をもたせておくようにすればよい。削除対象となった接続仲介装置は待機状態となるが、必要があれば、追加処理によって再び稼働することになる。
また、管理用端末装置200Sは、接続仲介装置の追加や削除を行わずに、担当変更処理だけを自動的に行うこともできる。担当変更処理を自動化するには、管理用端末装置200Sに、既存の各接続仲介装置100X,100Y,100Zの負荷を適宜モニタする機能をもたせておき、モニタの結果を踏まえて、各接続仲介装置100X,100Y,100Zの負荷が分散されるような担当変更指示を行う機能をもたせておくようにすればよい。
どの端末装置をどの接続仲介装置に担当させるかは、予め定められた効率的なアルゴリズムに基づいて決定すればよい。具体的には、たとえば、所在アドレスに基づいて各端末装置の地理的な位置を推定し、個々の端末装置について、地理的に近い位置に設置されている接続仲介装置を担当にするアルゴリズムを採用することができる。一般に、インターネットを介した二者通信では、中継局を介したホッピングが行われるが、ホッピング数が少ないほど、通信に必要な時間を短縮することができる。したがって、地理的に近い接続仲介装置を担当にすれば、接続仲介処理の時間を短縮することができる。
もちろん、各端末装置の担当を決定する際には、その他のアルゴリズムを採用してもかまわない。たとえば、過去の通信履歴を参照することにより、互いに親密な端末装置(過去に頻繁に通信が行われた端末装置)を同一の接続仲介装置に担当させる方法を採ることもできる。
<5−5. 仲介自律管理部の機能>
上述した§5−4では、管理用端末装置200Sによって、接続仲介装置の追加処理や削除処理、担当変更処理を行う例を述べた。ここでは、接続仲介装置自身が自律的に、これらの各処理を行う例を説明する。
図26は、図21に示すネットワーク通信システムにおいて、接続仲介装置の内部に仲介自律管理部を設けた例である。図26には、ネットワークNに9台の端末装置200A〜200Iと、3台の接続仲介装置100X'',100Y,100Zが接続された状態が示されている。ここで、図26に示す端末装置200A〜200Iは、図24に示す端末装置200A〜200Iと同一の構成要素である。また、図26に示す接続仲介装置100Y,100Zは、図24に示す接続仲介装置100Xと同一の構成要素である(もちろん、格納されているテーブルT,Uの内容は異なる)。
これに対して、図26に示す接続仲介装置100X''は、図24に示す接続仲介装置100Xに、新たな構成要素である仲介自律管理部160Xを付加したものである。この仲介自律管理部160Xは、必要に応じて、新たな接続仲介装置をシステムに追加する追加処理、既存の接続仲介装置をシステムから削除する削除処理、各接続仲介装置についての担当変更処理を自動的に行う機能を有しており、接続仲介装置の増減や担当変更といった仲介処理の基幹部分の管理を自律的に行う構成要素である。
具体的には、仲介自律管理部160Xは、追加処理を行う際には、追加対象となる新たな接続仲介装置が担当することになる端末装置を決定し、当該決定に基づいて、担当テーブルUの内容を更新するため担当変更指示を行い、削除処理を行う際には、削除対象となる既存の接続仲介装置が担当していた端末装置について新たな担当を決定し、当該決定に基づいて、担当テーブルUの内容を更新するための担当変更指示を行う。以下、この仲介自律管理部160Xの処理機能を具体的な事例について説明する。
ここでは説明の便宜上、図26において、接続仲介装置100X''を「親接続仲介装置」と呼び、接続仲介装置100Y,100Zを「子接続仲介装置」と呼ぶことにする。このように各接続仲介装置を「親」と「子」に区別して取り扱うのは、親接続仲介装置100X''に備わっている仲介自律管理部160Xによって、子接続仲介装置100Y,100Zの追加処理や削除処理が行われ、また、各接続仲介装置についての担当変更処理が行われるためである。別言すれば、子接続仲介装置100Y,100Zは、親接続仲介装置100X''の管理下にあることになる。
図26には、このネットワーク通信システムに、既に子接続仲介装置100Y,100Zが追加された状態が示されているが、ここでは、この追加に至るプロセスを説明するために、子接続仲介装置100Y,100Zが追加される前の状態を考えてみる。追加前の状態では、親接続仲介装置100X''のみによって、すべての端末装置についての仲介処理が行われることになる。したがって、親接続仲介装置100X''内に格納されている担当テーブルUでは、端末ID「0010」〜「0090」のすべてについて、仲介装置ID「100X''」が対応づけられている。
この場合、仲介処理の負荷が、親接続仲介装置100X''の処理能力に見合ったものであればよいが、端末装置が増加したり、通信量が増加したりすると、親接続仲介装置100X''の処理能力を超える負荷がかかるようになり、輻輳が生じる事態になる。たとえば、このネットワーク通信システムに新たな端末装置200J,200K,200L,… を追加する際には、図24に示す管理用端末装置200Sによって、担当テーブルUに、当該新たな端末装置200J,200K,200L等についての端末IDとこれを担当する接続仲介装置の仲介装置ID「100X''」を追加する処理を行えばよいが、親接続仲介装置100X''の担当が増えるため、それだけ処理負荷は増大することになる。もちろん、新たな端末装置の追加がなくても、個々の端末装置の通信量が増加すれば、親接続仲介装置100X''の処理負荷は増大する。以下、この親接続仲介装置100X''の処理負荷(たとえば、通信先アドレス返信部130Xに対してなされる接続仲介依頼の件数)を「親負荷」と呼ぶことにする。
接続仲介装置100X''に含まれる仲介自律管理部160Xは、当該接続仲介装置100X''自身の負荷である親負荷が所定の上限値を超えるオーバーロード状態である場合に、自己を「親接続仲介装置100X''」として新たに「子接続仲介装置100Y」をシステムに追加する追加処理を実行する。いわば「親100X''が、子供100Yに手伝いをさせる」運用ということができる。
もちろん、仲介自律管理部160Xは、あくまでもソフトウエア的な処理を行う構成要素であり、新たな接続仲介装置を物理的に設置するようなハードウエア的な処理を行うことはできない。したがって、仲介自律管理部160Xによる自律的な追加処理を行う場合は、予め接続仲介装置として機能しうるサーバコンピュータなどを待機装置として準備しておき、必要に応じて、仲介自律管理部160Xによるソフトウエア的な処理によって、この待機装置を新たな接続仲介装置として稼働させることになる。
こうして、待機装置を新たに子接続仲介装置100Yとして稼働させる際には、仲介自律管理部160Xによって、当該待機装置内に必要なプログラムや情報を組み込む処理が行われるとともに、これまで親接続仲介装置100X''が担当していた一部の端末装置を子接続仲介装置100Yに担当させる担当変更指示が行われる。具体的には、予め定められた所定のアルゴリズムに基づいて、どの端末装置をどの接続仲介装置に担当させるかを決定し、担当テーブル更新部150Xに担当変更指示を与えればよい。前述したように、担当テーブル更新部150Xは、すべての接続仲介装置内の担当テーブルUの内容を一致させる同期処理を行う機能を有しているので、親接続仲介装置100X''内の担当テーブルUが更新されると、その内容は、新たに設置された子接続仲介装置100Y内の担当テーブルUにも反映されることになる。
かくして、親接続仲介装置100X''がオーバーロード状態になると、仲介自律管理部160Xによる自律的な処理機能により、子接続仲介装置100Yが自動的に追加されて稼働状態になり、接続仲介処理の役割分担が図られることになる。これによって、親接続仲介装置100X''の処理負荷は軽減され、輻輳状態は解消する。もちろん、子接続仲介装置100Yを追加した当初は輻輳状態は解消していたものの、その後、親接続仲介装置100X''が再びオーバーロード状態になった場合には、仲介自律管理部160Xによる自律的な処理機能により、更に別な子接続仲介装置100Zを追加する処理が自動的に行われる。このような運用は、いわば「親100X''が、長男100Yの手伝いだけでは足りず、次男100Zにも手伝いをさせる」運用ということができる。
図26には、こうして、親接続仲介装置100X''によって、2台の子接続仲介装置100Y,100Zが追加された状態が示されている。2台目の子接続仲介装置100Zを追加する際には、これまで親接続仲介装置100X''が担当していた端末装置の一部を子接続仲介装置100Zに担当させるだけでなく、必要があれば、これまで子接続仲介装置100Yが担当していた端末装置の一部を子接続仲介装置100Zに担当させるような担当変更を行うことも可能である。
もちろん、親接続仲介装置100X''と子接続仲介装置100Yとの2台が稼働中の状態において、子接続仲介装置100Yがオーバーロード状態になった場合に、新たに子接続仲介装置100Zを追加して、合計3台を稼働させるような追加処理を行うことも可能である。たとえば、子接続仲介装置100Yから親接続仲介装置100X''に対して、定期的に自己の処理負荷を報告させるような運用を行えば、親接続仲介装置100X''内の仲介自律管理部160Xは、親接続仲介装置100X''の親負荷だけでなく、子接続仲介装置100Yの子負荷を把握できるので、子接続仲介装置100Yがオーバーロード状態に陥ったことを認識することができる。
したがって、仲介自律管理部160Xは、既存の子接続仲介装置100Yの負荷である子負荷が所定の上限値を超えるオーバーロード状態である場合に、自己を親接続仲介装置100X''として、既存の子接続仲介装置100Yとは別の新たな子接続仲介装置100Zをシステムに追加する追加処理を実行し、当該既存の子接続仲介装置100Yが担当していた一部の端末装置を新たな子接続仲介装置100Zに担当させる担当変更指示を行うことができる。このような運用は、いわば「親100X''が、長男100Yの苦労を見かねて、次男100Zに長男100Yの手伝いをさせる」運用ということができる。
なお、上記運用では、親接続仲介装置100X''が、子接続仲介装置100Yの子負荷を監視してオーバーロード状態を認識するという方法を採っているが、この子接続仲介装置100Yが、当該子接続仲介装置100Y自身の負荷である子負荷が所定の上限値を超えるオーバーロード状態である場合に、親接続仲介装置100X''に対して援助要請を行うようにすることも可能である。この場合、親接続仲介装置100X''に含まれる仲介自律管理部160Xは、上記援助要請を受けたときに、別の新たな子接続仲介装置100Zをシステムに追加する追加処理を実行することになる。このような運用は、いわば「親100X''が、長男100Yからの援助要請に応えて、次男100Zに長男100Yの手伝いをさせる」運用ということができる。
以上、接続仲介装置の処理負荷がオーバーロード状態になったときに、新たな接続仲介装置を追加する追加処理について述べたが、逆に、接続仲介装置の処理負荷がアンダーロード状態になったときには、既存の接続仲介装置を削除する削除処理が行われる。たとえば端末装置の数が減少した場合や各端末装置の通信頻度が減少した場合は、各接続仲介装置の処理負荷が減少することになるので、そのままの状態で稼働させておくと、運用コストが嵩むという経済的な問題が生じる。このような場合は、より効率的な運営を行うという見地から、既存の接続仲介装置の一部を削除するのが好ましい。
そこで、たとえば図26に示すように、3台の接続仲介装置100X'',100Y,100Zが稼働中の状態において、親接続仲介装置100X''に含まれる仲介自律管理部160Xが、親接続仲介装置100X''自身の負荷である親負荷と子接続仲介装置100Y,100Zの負荷である子負荷を監視するようにし、親負荷と子負荷の合計が所定の下限値を下まわるアンダーロード状態である場合には、特定の子接続仲介装置をシステムから削除する削除処理を実行し、削除された子接続仲介装置が担当していた端末装置を親接続仲介装置100X''もしくは削除されなかった子接続仲介装置に担当させる担当変更指示を行うようにするのが好ましい。
すなわち、3台の接続仲介装置100X'',100Y,100Zの処理負荷の合計が低減し、2台の接続仲介装置で処理してもその処理能力内に収まる程度であるならば、3台の接続仲介装置を稼働しておく必要はないので、1台について削除処理を行うのが効率的である。図26に示す例の場合、3台の合計負荷がアンダーロード状態であると判断された場合には、仲介自律管理部160Xによる削除処理が実行され、たとえば、子接続仲介装置100Zが削除される(ソフトウエア的に削除され、稼働装置から待機装置に移行する)。そして、これまで子接続仲介装置100Zが担当していた端末装置を、親接続仲介装置100X''もしくは子接続仲介装置100Yに担当させる担当変更処理がなされることになる。
仲介自律管理部160Xは、新たな接続仲介装置を追加する追加処理や、既存の接続仲介装置を削除する削除処理のみならず、接続仲介装置の稼働台数を変更せずに維持したまま、担当変更のみを行う機能も有している。すなわち、図26において、親接続仲介装置100X''に含まれる仲介自律管理部160Xは、親接続仲介装置100X''自身の負荷である親負荷と子接続仲介装置100Y,100Zの負荷である子負荷について偏りが生じている場合に、負荷の偏りが分散されるような担当変更指示を行う機能を有する。
たとえば、子接続仲介装置100Yの処理負荷が、親接続仲介装置100X''の処理負荷や子接続仲介装置100Zの処理負荷に比べて大きいと判断された場合には、子接続仲介装置100Yの担当の一部を親接続仲介装置100X''の担当や子接続仲介装置100Zの担当に変更することにより、負荷分散を図ることができる。このような負荷分散は、将来、特定の接続仲介装置がオーバーロードにより輻輳状態になる可能性を低減する上で有益である。
上記負荷分散を自動的に行うには、子接続仲介装置100Y,100Zに、当該子接続仲介装置100Y,100Z自身の負荷である子負荷が所定の警戒値を超える警戒状態である場合に、親接続仲介装置100X''に対して警戒状態報告を行い、子負荷が所定の余裕値を下まわる余裕状態である場合に、親接続仲介装置100X''に対して余裕状態報告を行う機能を設けておけばよい。そうすれば、親接続仲介装置100X''に含まれる仲介自律管理部160Xは、警戒状態報告を行った子接続仲介装置が担当する端末装置の一部を、余裕状態報告を行った子接続仲介装置の担当に変更する担当変更指示を行うことができる。
この場合、警戒状態報告には、所定の警戒値を超える程度を示す数値を含ませておき、余裕状態報告には、所定の余裕値を下まわる程度を示す数値を含ませておくのが好ましい。そうすれば、仲介自律管理部160Xは、これらの数値を勘案することにより、担当変更すべき端末装置の合理的な台数を算出することができる。
以上、図26に示す実施例を参照しながら、親接続仲介装置100X''の管理下に子接続仲介装置100Y,100Zを設置した例を説明したが、子接続仲介装置100Y,100Zにも仲介自律管理部160Xと同等の機能をもった仲介自律管理部160Y,160Zを設けるようにすれば、これら仲介自律管理部160Y,160Zによって、孫接続仲介装置を追加したり削除したりすることも可能になる。もちろん、孫接続仲介装置にも仲介自律管理部を設けておけば、更にひ孫接続仲介装置等を設置することも可能である。
また、図26に示す実施例は、図24に示す実施例(§5−2で述べた各テーブルを接続仲介装置の内部に格納した実施例)について仲介自律管理部を設けた変形例であるが、図25に示す実施例(§5−3で述べた各テーブルをテーブル格納装置に格納した実施例)についても、仲介自律管理部を設けた変形例を適用することが可能である。この場合、仲介自律管理部160Xからの担当変更指示は、テーブル格納装置500内の担当テーブル更新部550に対して与えられることになる。
<<< §6. 本発明の第2の実施形態 >>>
§1では、先願基本発明の第1の実施形態を説明し、§2では、先願基本発明の第2の実施形態を説明した。ここで、両者の相違点は、第1の実施形態では、図4に示すように、通信元端末装置200Aから接続仲介装置100に対して接続仲介依頼S2があると、接続仲介装置100から通信元端末装置200Aに対して、通信先端末装置200BのアドレスAD2を示す通信先アドレス返信S4があるのに対して、第2の実施形態では、図8に示すように、通信元端末装置400Bから接続仲介装置300に対して接続仲介依頼S12があると、接続仲介装置300から通信先端末装置400Aに対して、通信元端末装置400BのアドレスAD2を示す通信元アドレス送信S14がある点である。
そして、§5では、「接続仲介装置を複数組設けて接続仲介処理を分散させ、各接続仲介装置の処理負荷を軽減する」という本発明の基本概念を、先願基本発明の第1の実施形態に適用した例を、本発明の第1の実施形態として説明した。そこで、この§6では、上記本発明の基本概念を、先願基本発明の第2の実施形態に適用した例を、本発明の第2の実施形態として述べることにする。もっとも、第1の実施形態と第2の実施形態との違いは、接続仲介装置から通信元に通信先のアドレスを返信するか、通信先に通信元のアドレスを送信するか、という点だけなので、この相違点を除けば、ここで述べる第2の実施形態についても、§5で述べた第1の実施形態に関する種々の実施形態を適用することが可能である。
要するに、本発明の第2の実施形態に係るネットワーク通信システムに用いられる各接続仲介装置は、ネットワークを介して相互に接続可能な複数の端末装置について、通信元端末装置と通信先端末装置との間の接続を仲介する役割を果たす装置という点において、第1の実施形態で用いられる各接続仲介装置と共通している。
また、この第2の実施形態に係る接続仲介装置は、端末装置のそれぞれについて個々の端末装置を相互に識別するための端末IDと個々の端末装置のネットワーク上での所在を示す所在アドレスとを対応づけたアドレステーブルTを参照するアドレステーブル参照手段と、各端末装置のそれぞれについて当該端末装置を担当する担当接続仲介装置を示す情報を含む担当テーブルUを参照する担当テーブル参照手段と、通信元端末装置から通信先端末装置に対する接続仲介依頼が送信されてきたときに、担当テーブルUの参照結果に基づいて、自己が、通信元端末装置についての担当接続仲介装置であるか否かを判定し、自己が担当接続仲介装置でない場合には、通信元端末装置に対して、担当接続仲介装置を通知する担当通知手段と、を有する点においても、第1の実施形態で用いられる各接続仲介装置と共通している。
ただ、第2の実施形態で用いられる各接続仲介装置は、第1の実施形態で用いられる各接続仲介装置が有していた通信先アドレス返信手段の代わりに、通信元端末装置から通信先端末装置に対する接続仲介依頼が送信されてきたときに、アドレステーブルTの参照結果に基づいて得られる通信先端末装置の所在アドレスに対して、通信元端末装置の所在アドレスを送信する通信元アドレス送信手段を有している点が異なっている。もちろん、実際には、この第2の実施形態で用いられる各接続仲介装置も、ネットワークに接続されたサーバコンピュータに、上記各手段としての機能を果たすための専用プログラムを組み込むことにより構成することができる。
図21に示すネットワーク通信システムの実施例は、第1の実施形態に係る実施例であるが、これを第2の実施形態に変更するには、各接続仲介装置の「通信先アドレス返信機能(通信元端末装置に通信先のアドレスを返信する機能)」を「通信元アドレス送信機能(通信先端末装置に通信元のアドレスを送信する機能)」に変更すればよい。
そのような変更を施したネットワーク通信システムは、ネットワークを介して相互に接続可能な複数の端末装置と、これら複数の端末装置間の接続を仲介する複数の接続仲介装置と、を備えたネットワーク通信システムということになり、複数の端末装置には、個々の端末装置を相互に識別するための端末IDがそれぞれ付与されており、複数の接続仲介装置は、この端末IDを利用して通信元となる端末装置と通信先となる端末装置との間の接続を仲介する処理を実行する。
ここで、複数の端末装置のそれぞれは、自己のネットワーク上での所在を示す所在アドレスを、特定の外部装置(接続仲介装置300やテーブル格納装置500などのアドレステーブルを格納している装置)に対して通知する自己アドレス通知部450(図7参照)と、自己を通信元として、通信先の別な端末装置に対する通信要求S11を受け付ける通信要求受付部420B(図8参照、以下同様)と、通信要求受付部420Bによって通信要求S11が受け付けられたときに、担当接続仲介装置300に対して、通信先の別な端末装置400Aの端末ID「0010」を特定するための通信先特定情報を含む接続仲介依頼S12を送信する接続仲介依頼部410Bと、接続仲介装置300から、通信元の別な端末装置400Bのネットワーク上での所在を示す通信元アドレスAD2が送信されてきたときに、ネットワークNを介して、通信元アドレスAD2にアクセスして通信開始要求S15を行う通信開始要求部440Aと、通信開始要求S15に応じて、通信元の別な端末装置400Bから、通信開始受諾確認S16が返信されてきたら、通信元の別な端末装置400Bとの間に通信セッションを確立して通信S17を開始する通信先セッション確立部460Aと、通信先の別な端末装置400Aから、自己を通信元とする通信開始要求S15がなされたら、通信先の別な端末装置400Aに対して通信開始受諾確認S16を送信し、通信先の別な端末装置400Aとの間に通信セッションを確立して通信S17を開始する通信元セッション確立部430Bと、を有している。
一方、複数の接続仲介装置のそれぞれは、端末装置のそれぞれについて端末IDと所在アドレスとを対応づけたアドレステーブルTを参照するアドレステーブル参照機能と、端末装置のそれぞれについて当該端末装置を担当する担当接続仲介装置を示す情報を含む担当テーブルUを参照する担当テーブル参照機能と、端末装置400Bの接続仲介依頼部410Bから、接続仲介依頼S12が送信されてきたときに、アドレステーブルTの参照結果に基づいて、接続仲介依頼S12に含まれている通信先特定情報によって特定される端末ID「0010」に対応づけられている所在アドレスAD1に対して、接続仲介依頼S12を送信した通信元の端末装置400Bの端末ID「0020」に対応づけられている所在アドレスAD2を通信元アドレスとして送信する通信元アドレス送信機能と、接続仲介依頼S12を受信したときに、担当テーブルUの参照結果に基づいて、自己が、通信元となる端末装置についての担当接続仲介装置であるか否かを判定し、自己が担当接続仲介装置でない場合には、通信元となる端末装置に対して、担当接続仲介装置を通知する担当通知機能と、を有している。
そして、端末装置400B内の接続仲介依頼部410Bは、接続仲介装置の担当通知機能による最新の通知によって示された接続仲介装置を担当接続仲介装置として、接続仲介依頼S12を送信することになる。
もちろん、この第2の実施形態においても、§5−2で述べたように、各テーブルT,Uを接続仲介装置の内部に格納する形態を採ることができる。この場合、接続仲介装置には、アドレステーブルTを格納するアドレステーブル格納部と、担当テーブルUを格納する担当テーブル格納部と、端末装置の自己アドレス通知部からの通知に基づいて、前記アドレステーブルTの内容を更新するアドレステーブル更新部と、与えられた担当変更指示に基づいて、担当テーブルUの内容を更新する担当テーブル更新部と、端末装置の接続仲介依頼部から、接続仲介依頼が送信されてきたときに、アドレステーブルTを参照して、接続仲介依頼に含まれている通信先特定情報によって特定される端末IDに対応づけられている所在アドレスに対して、接続仲介依頼を送信した通信元の端末装置の端末IDに対応づけられている所在アドレスを通信元アドレスとして送信する通信元アドレス送信部と、を設ければよい。
このとき、アドレステーブル更新部および前記担当テーブル更新部には、必要に応じて別な接続仲介装置のアドレステーブル更新部および担当テーブル更新部と通信することにより、すべての接続仲介装置内のアドレステーブルTおよび担当テーブルUの内容が一致するような同期処理を行う機能を設けておくようにする。また、通信元アドレス送信部には、担当テーブルUを参照して、自己が、通信元となる端末装置についての担当接続仲介装置であるか否かを判定し、自己が担当接続仲介装置でない場合には、通信元となる端末装置に対して、担当接続仲介装置を通知する機能を設けておくようにする。
もちろん、この第2の実施形態においても、§5−3で述べたように、各テーブルT,Uをテーブル格納装置500に格納する形態を採ることもできる。また、§5−4で述べたように、管理用端末装置を設ける形態を採ることもできるし、§5−5で述べたように、仲介自律管理部を設ける形態を採ることもできる。これらの各形態については、内容が重複するため、ここでは説明を省略する。
なお、実用上は、第1の実施形態と第2の実施形態とを混合させた混合実施形態を採ることも可能である。具体的には、たとえば、図21に示す実施形態において、接続仲介装置100Xについては第1の実施形態を適用し、接続仲介装置100Y,100Zについては第2の実施形態を適用することにより、3台の接続仲介装置100X,100Y,100Zによって接続仲介システムを構成することが可能である。この場合、接続仲介装置100Xには、図示のとおり、通信先端末装置の所在アドレスを通信元端末装置に返信する「通信先アドレス返信機能」を設けておき、接続仲介装置100Y,100Zには、この「通信先アドレス返信機能」の代わりに、通信先端末装置の所在アドレスに対して通信元端末装置の所在アドレスを送信する「通信元アドレス送信機能」を設けておけばよい。