JP3785101B2 - 通信コネクション確立方法及び通信制御装置並びに記録媒体及び制御プログラム - Google Patents
通信コネクション確立方法及び通信制御装置並びに記録媒体及び制御プログラム Download PDFInfo
- Publication number
- JP3785101B2 JP3785101B2 JP2002036005A JP2002036005A JP3785101B2 JP 3785101 B2 JP3785101 B2 JP 3785101B2 JP 2002036005 A JP2002036005 A JP 2002036005A JP 2002036005 A JP2002036005 A JP 2002036005A JP 3785101 B2 JP3785101 B2 JP 3785101B2
- Authority
- JP
- Japan
- Prior art keywords
- agent
- communication
- proxy
- service
- shadow
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Description
【発明の属する技術分野】
本発明は、ネットワーク上で接続された複数の端末同士がサーバアプリケーション及びクライアントアプリケーションにより通信するシステムにおいて、通信経路の切替などのために用いられる通信コネクション確立方法及び通信制御装置に関する。
【0002】
【従来の技術】
利用者が通信を行っているアプリケーション(プログラム)の利用をやめて他のアプリケーションで通信を行おうとする場合には、通信を中断してから、他のアプリケーションで通信を再開する必要がある。しかしながら、この場合は通信が切断されてしまうので、相手のアプリケーションとの通信手続きを最初からやり直す必要がある。すなわち、あるアプリケーションに対する通信サービスを途中から他のアプリケーションに切り替えることはできない。
【0003】
例えば、ノートパソコンやPDAのような移動端末は持ち運びができるため様々な場所で利用される可能性があるし、移動しながら利用される場合もある。このような移動端末をオンラインで利用する場合には、例えばイーサネット(登録商標),構内無線LAN(Local Area Network),公衆無線通信(例えばPHS(Personal Handy-phone System))等に対応する通信アダプタを用いて移動端末をネットワークに接続する必要がある。
【0004】
移動端末が利用される様々な場所においては、1つ又は複数の通信媒体を利用して移動端末をネットワークに接続することが可能である。予め複数種類の通信媒体に対応する複数の通信アダプタを搭載しておけば、1台の移動端末を様々な場所で、必要に応じて通信方式を切り替えてネットワークに接続することができる。
【0005】
実際に複数の端末同士がサーバアプリケーション及びクライアントアプリケーションにより通信する場合には、まず端末のハードウェアをネットワークに接続し、サービスを提供するサーバアプリケーションと前記サービスを利用するクライアントアプリケーションとの間に通信コネクションを確立する必要がある。
また、例えば障害などによって一時的に通信が途絶えた場合でも通信の継続を可能にするために、サーバアプリケーションとクライアントアプリケーションとの間にプロキシと呼ばれる中継装置を介在するように通信経路を構築するのが一般的である。
【0006】
このような従来の通信システムにおいては、サーバアプリケーションとクライアントアプリケーションとの間の通信を開始する際にその通信経路が決定される。従って、通信の途中では利用するサーバアプリケーション,クライアントアプリケーション及びプロキシの組み合わせを変更することはできない。
サーバアプリケーション,クライアントアプリケーション又はプロキシを変更する場合には、通信を一旦終了し、通信コネクションを解放し、サーバアプリケーションとクライアントアプリケーションとの間の各通信コネクションをつなぎ直す必要がある。
【0007】
しかしながら、移動端末が移動しながら通信する場合には、移動に伴ってサーバアプリケーション,クライアントアプリケーション及びプロキシの位置関係が変わるため、冗長な通信経路が形成される可能性がある。例えば、不必要なプロキシを中継して通信を継続する場合が生じる。
また、例えば通信中の端末に障害が発生した場合には、通信を一旦終了し、通信コネクションを解放し、障害が生じた端末のアプリケーションやプロキシの機能を他の端末で置き換えるように通信経路を再構築して最初から通信をやり直す必要がある。
【0008】
また、例えばユーザが利用する端末を画面の小さい移動端末から画面の大きい固定端末(例えばデスクトップパソコン)に切り替えようとする場合にも、移動端末の通信を終了し、通信コネクションを解放し、固定端末を用いて新たな通信経路を構築し、通信を最初からやり直す必要がある。
ところで、従来より故障を想定したフォールトトレラントシステムにおいては、実行系及び待機系のシステム並びにそれらを切り替える管理システムが設けられている。すなわち、クライアントからの接続に対して実行系と待機系の両方のシステムで処理し、管理システムは実行系の異常を感知した場合に、待機系システムに切り替える。
【0009】
また、ロードバランシングを想定したフォールトトレラントシステムにおいては、多数の実行サーバと管理システムとが設けられている。管理システムは、実行サーバにクライアントからの要求処理を均等に割り振るため、クライアントからのリクエストを一斉に複数の実行サーバに転送し、もっとも早く返答がきた実行サーバに処理をまかせる。
【0010】
【発明が解決しようとする課題】
しかし、本発明では故障やロードバランシングだけでなく、ネットワークに接続された様々なノード(通信装置)の移動,ネットワークの分割,統合,ノードのネットワークからの離脱,ノード自体の変更等のネットワーク環境の変化に対応してサービスを継続することを想定している。
【0011】
従って、各ノード上のサーバアプリケーションとクライアントアプリケーションとの間の通信は常に不安定な状況を想定する必要があり、さらに各ノードの能力についても均一なものを想定できない。
従来の故障を想定したフォールトトレラントシステムにおいては、クライアントアプリケーションと管理システムとの間のネットワークが変化した場合や、管理システムと実行系,待機系システムとの間のネットワークが変化した場合や、管理システム自体がネットワークから分離された場合にはサービスを継続することができない。
【0012】
また、従来のロードバランシングを想定したフォールトトレラントシステムにおいても、同様に実行サーバ,管理システム間のネットワークの変化や、管理システムとクライアントアプリケーションとの間のネットワークの変化や、管理システム自体のネットワークからの分離に対してサービス継続することができなくなる。
【0013】
また上記のいずれのシステムにおいてもサーバノードとしては均一なものを想定しているので、能力の低いサーバノードがそれよりも能力の高いサーバノードを探して、能力を補完するようなことはできない、
また、サーバノード間のネットワークが変化した場合に、他の通信手段に切り替えたり、他のサーバノードに切り替えたりして、サーバノード間の通信を維持することはできない。
【0014】
更に、いずれのシステムにおいてもクライアントノードが変わった場合に新しいクライアントノード上のアプリケーション上でサービスを継続しながら再開するようなことはできない。
また、多くの企業や機関ではネットワーク層(IPレベル)の通信を遮断するファイアウォール(ネットワークの防護壁)が設置されているが、エンド−エンドのアプリケーションがネットワーク層で提供される通信機能で完結する通信はこのファイアウォールを超えて動作することができない。
【0015】
本発明は、ネットワークに接続された様々なノードの移動,ネットワークの分割,統合,ノードのネットワークからの離脱,ノード自体の変更等が発生する場合であっても通信サービスを継続することが可能な通信コネクション確立方法及び通信制御装置を提供するとともに、プロキシで構成される通信ネットワークを用いることにより、ファイアウォールを超える通信を可能にすることを目的とする。
【0016】
【課題を解決するための手段】
本発明においては、所定のサービスを提供するプログラムである複数のアプリケーションエージェントと、それらを接続可能なネットワークとが設けられた通信システムにおいて、ネットワーク上にマスターエージェントとシャドーエージェントとが存在する場合を想定している。
【0017】
マスターエージェントとは1つのアプリケーションエージェント、すなわちアプリケーションプログラムのことである。シャドーエージェントは、親となる1つのマスターエージェントから複製されたアプリケーションプログラムである。シャドーエージェントは、前記マスターエージェントが提供するサービスの少なくとも一部の機能を備える。
【0018】
すなわち、請求項1では、所定のサービスを提供するプログラムである複数のアプリケーションエージェントと、通信を中継する複数のプロキシと、それらを接続可能なネットワークとが設けられた通信システムの制御に用いる通信コネクション確立方法であって、マスターエージェントとなる1つのアプリケーションエージェントから複製され、前記マスターエージェントが提供するサービスの少なくとも一部の機能を備えるシャドーエージェントが存在する場合に、同じ種類のサービスを提供するマスターエージェントとシャドーエージェントとの対応関係を表す情報をルーチングテーブルとしてマスターエージェントまたはシャドーエージェントで管理し、送信元から指定された宛先への通信回線の接続を行う際、もしくは通信中に宛先のマスターエージェント又はシャドーエージェントが利用できない状態が発生した場合には、通信を中継する少なくとも1つのプロキシの制御により、マスターエージェントまたはシャドーエージェントで管理された前記ルーチングテーブルから該当するシャドーエージェント又はマスターエージェントを検索し、見つかったシャドーエージェント又はマスターエージェントとの間で通信経路を確立し、通信サービスを提供する通信経路を切り替える場合には、前記通信経路上に配置されたプロキシが、切替元のマスターエージェント又はシャドーエージェントにおけるサービス中断位置に関する情報を切替先のマスターエージェント又はシャドーエージェントに通知し、前記プロキシが切替先との間の通信コネクションを該当する通信サービスの通信コネクションと結び付ける。
【0019】
請求項1においては、送信元から指定された宛先への通信回線の接続を行う際に、もしくは通信中に宛先のマスターエージェント又はシャドーエージェントが利用できない状態が発生した場合には、前記ルーチングテーブルに基づいて検索されたシャドーエージェント又はマスターエージェントに対して通信経路を確立することができる。
【0020】
また、通信経路を切り替える場合には、切替元がサービスを中断した位置の情報が切替先のマスターエージェント又はシャドーエージェントに通知されるので、切替先では中断された位置から通信を再開しサービスを継続することができる。
従って、ノードの移動,ネットワークの分割,統合,ノードのネットワークからの離脱,ノード自体の変更等が発生し、目的とするマスターエージェントが利用できなくなった場合であっても、そのままサービスを継続することができる。
【0021】
また、請求項1では通信を中継するプロキシが制御を行うので、サービスを提供するアプリケーションプログラムやそれが存在するノードが完全にネットワークが切り離された場合であってもサービスを継続することができる。
さらに、請求項1では、通信サービスを提供する通信経路上に存在する第1のプロキシ及び第2のプロキシの間の通信回線に変化が生じた場合には、前記第1のプロキシと第2のプロキシとの間の通信コネクションに関する情報を自動的に更新する。
【0022】
すなわち、第1のプロキシと第2のプロキシとの間の通信回線が例えば無線LANから有線LANに切り替わったような場合であっても、それらの間の通信コネクションに関する情報がプロキシの制御により自動的に更新されるので、通信サービスをそのまま継続することができる。
また、請求項1では、新たなシャドーエージェントが生成された場合には、前記シャドーエージェント及び複製元のマスターエージェントの少なくとも一方が配置されている装置に存在するルーチングテーブルの内容が追加もしくは更新される。
すなわち、新たに生成されたシャドーエージェントの情報が前記シャドーエージェント及び/又は複製元のマスターエージェントが配置されている装置に存在するルーチングテーブルに登録されるので、生成されたシャドーエージェントをすぐに利用できる。
【0023】
請求項2は、請求項1の通信コネクション確立方法において、各装置に存在する通信デバイスのネットワークアドレスをロケーションテーブルとして管理し、マスターエージェントが存在する第1の装置上でネットワークアドレスが変更された場合には、前記マスターエージェントから複製されたシャドーエージェントを前記ルーチングテーブルに基づいて検索し、前記第1の装置から前記シャドーエージェントが存在する第2の装置にネットワークアドレスの変更を通知し、前記第2の装置が前記通知に基づいて前記ロケーションテーブルの内容を更新することを特徴とする。
【0024】
例えば利用する端末が移動に伴って通信デバイス(携帯電話,PHS,無線LANなど)を切り替えるような場合にはネットワークアドレス(例えばIPアドレス)が変化する。
請求項2においては、通信相手のエージェントがネットワークから切断され、しかも代わりのマスターエージェントのネットワークアドレスが変化しているような場合であっても、前記ルーチングテーブル及びロケーションテーブルに基づいてマスターエージェントを探しそれに切り替えることができる。
【0025】
請求項3は、請求項1の通信コネクション確立方法において、各装置に存在する通信デバイスのネットワークアドレスをロケーションテーブルとして管理し、シャドーエージェントが存在する第1の装置上でネットワークアドレスが変更された場合には、前記シャドーエージェントの複製元のマスターエージェントを前記ルーチングテーブルに基づいて検索し、前記第1の装置から前記マスターエージェントが存在する第2の装置にネットワークアドレスの変更を通知し、前記第2の装置が前記通知に基づいて前記ロケーションテーブルの内容を更新することを特徴とする。
請求項3においては、通信相手のエージェントがネットワークから切断され、しかも代わりのシャドーエージェントのネットワークアドレスが変化しているような場合であっても、前記ルーチングテーブル及びロケーションテーブルに基づいてシャドーエージェントを探しそれに切り替えることができる。
【0026】
請求項4は、マスターエージェントで保持されるサービステーブルで、前記マスターエージェントにおいて提供可能な複数のサービスが複製されたシャドーエージェントで提供可能なサービスか提供不可能なサービスかを区別し、第1のシャドーエージェントがサービスの提供を要求された場合には、第1のシャドーエージェントが当該サービス提供の可否を前記サービステーブルに基づいて識別し、第1のシャドーエージェントがサービスの提供が不可能な場合には、第1のシャドーエージェントがサービスの提供が前記ルーチングテーブルに基づいて第2のシャドーエージェントもしくはマスターエージェントを検索し、前記第1のシャドーエージェントを第2のシャドーエージェントもしくはマスターエージェントに接続し、前記第1のシャドーエージェントではサービス要求元と第2のシャドーエージェントもしくはマスターエージェントとの間でデータの中継を実行する。
【0027】
請求項4においては、各シャドーエージェントがマスターエージェントの一部のサービスを実行する機能だけを備える場合を想定している。従って、シャドーエージェントには要求されたサービスを提供する能力がない場合もある。
しかし、そのような場合、請求項4では要求を受けた第1のシャドーエージェントがサービステーブル及びルーチングテーブルに基づいて検索した第2のシャドーエージェントもしくはマスターエージェントに接続し、前記第1のシャドーエージェントはデータの中継を実行する。
【0028】
従って、サービスを提供する能力がない第1のシャドーエージェントに接続した場合であっても、第1のシャドーエージェントで中継して第2のシャドーエージェントもしくはマスターエージェントがサービスを提供するので、要求側からは第1のシャドーエージェントがサービスを提供しているように見える。
つまり、提供可能なサービスが限定されるシャドーエージェントを利用する場合であっても、マスターエージェントを利用するのと同じように扱うことができる。
【0029】
請求項5は、請求項4の通信コネクション確立方法において、新たなシャドーエージェントが生成された場合には、前記シャドーエージェント及び複製元のマスターエージェントの少なくとも一方が配置されている装置に存在するルーチングテーブル及びサービステーブルの内容を追加もしくは更新することを特徴とする。
【0030】
請求項5においては、新たに生成されたシャドーエージェントの情報が前記シャドーエージェント及び/又は複製元のマスターエージェントが配置されている装置に存在するルーチングテーブルに登録されるので、生成されたシャドーエージェントをすぐに利用できる。
従って、例えば通信相手のエージェントがネットワークから切断された場合であっても、複製された別のシャドーエージェントをルーチングテーブルから探して通信相手を切り替えてサービスを継続することができる。
【0031】
請求項6は、所定のサービスを提供するプログラムである複数のアプリケーションエージェント及び通信を中継する複数のプロキシが所定のネットワークを介して接続される通信システムに用いられ、少なくとも1つのプロキシを備える通信制御装置において、マスターエージェントとなる1つのアプリケーションエージェントから複製され、前記マスターエージェントが提供するサービスの少なくとも一部の機能を備えるシャドーエージェントが通信システム上に存在する場合に、同じ種類のサービスを提供するマスターエージェントとシャドーエージェントとの対応関係を表す情報を管理するルーチングテーブルと、送信元から指定された宛先への通信回線の接続を行う際、もしくは通信中に宛先のマスターエージェント又はシャドーエージェントが利用できない状態が発生した場合には、通信を中継する少なくとも1つのプロキシの制御により、前記ルーチングテーブルから該当するシャドーエージェント又はマスターエージェントを検索し、見つかったシャドーエージェント又はマスターエージェントとの間で通信経路を確立する回線接続手段と、通信サービスを提供する通信経路を切り替える場合には、前記通信経路上に配置されたプロキシが、切替元のマスターエージェント又はシャドーエージェントにおけるサービス中断位置に関する情報を切替先のマスターエージェント又はシャドーエージェントに通知し、前記プロキシが切替先との間の通信コネクションを該当する通信サービスの通信コネクションと結び付ける通信コネクション制御手段とが設けられる。
【0032】
請求項6の通信制御装置を用いることにより請求項1の通信コネクション確立方法を実施できる。
また、請求項6では、前記通信コネクション制御手段は、通信サービスを提供する通信経路上に存在する第1のプロキシ及び第2のプロキシの間の通信回線に変化が生じた場合には、前記第1のプロキシと第2のプロキシとの間の通信コネクションに関する情報が自動的に更新される。
【0033】
請求項6の通信制御装置を用いることにより請求項1の通信コネクション確立方法を実施できる。
さらに、請求項6では、新たなシャドーエージェントが生成された場合には、前記シャドーエージェント及び複製元のマスターエージェントの少なくとも一方が配置されている装置に存在するルーチングテーブルの内容を追加もしくは更新するテーブル更新手段が更に設けられる。
請求項6の通信制御装置を用いることにより請求項1の通信コネクション確立方法を実施できる。
【0034】
請求項7は、請求項6の通信制御装置において、各装置に存在する通信デバイスのネットワークアドレスを管理するロケーションテーブルと、マスターエージェントが存在する第1の装置上でネットワークアドレスが変更された場合には、前記マスターエージェントから複製されたシャドーエージェントを前記ルーチングテーブルに基づいて検索するエージェント検索手段と、前記第1の装置から前記シャドーエージェントが存在する第2の装置にネットワークアドレスの変更を通知するネットワークアドレス変更通知手段と、前記第2の装置が前記通知に基づいて前記ロケーションテーブルの内容を更新するためのロケーションテーブル更新手段とを更に設けたことを特徴とする。
【0035】
請求項7の通信制御装置を用いることにより請求項2の通信コネクション確立方法を実施できる。
請求項8は、請求項6の通信制御装置において、各装置に存在する通信デバイスのネットワークアドレスを管理するロケーションテーブルと、シャドーエージェントが存在する第1の装置上でネットワークアドレスが変更された場合には、前記シャドーエージェントの複製元のマスターエージェントを前記ルーチングテーブルに基づいて検索するエージェント検索手段と、前記第1の装置から前記マスターエージェントが存在する第2の装置にネットワークアドレスの変更を通知するネットワークアドレス変更通知手段と、前記第2の装置が前記通知に基づいて前記ロケーションテーブルの内容を更新するためのロケーションテーブル更新手段とを更に設けたことを特徴とする。
請求項8の通信制御装置を用いることにより請求項3の通信コネクション確立方法を実施できる。
【0036】
請求項9では、マスターエージェントが提供可能な複数のサービスのうち前記マスターエージェントから複製されたシャドーエージェントが提供可能なサービスと提供不可能なサービスとを区別するための情報を管理するサービステーブルと、第1のシャドーエージェントがサービスの提供を要求された場合には、当該サービス提供の可否を前記サービステーブルに基づいて識別するサービス識別手段と、提供不可能なサービスを要求された場合には、前記ルーチングテーブルに基づいて第2のシャドーエージェントもしくはマスターエージェントを検索し、前記第1のシャドーエージェントを第2のシャドーエージェントもしくはマスターエージェントに接続する中継接続手段と、前記第1のシャドーエージェントがサービス要求元と第2のシャドーエージェントもしくはマスターエージェントとの間でデータの中継を実行するためのデータ中継処理手段とが更に設けられる。
【0037】
請求項9の通信制御装置を用いることにより請求項4の通信コネクション確立方法を実施できる。
請求項10は、請求項9の通信制御装置において、新たなシャドーエージェントが生成された場合には、前記シャドーエージェント及び複製元のマスターエージェントの少なくとも一方が配置されている装置に存在するルーチングテーブル及びサービステーブルの内容を追加もしくは更新するテーブル更新手段を更に設けたことを特徴とする。
請求項10の通信制御装置を用いることにより請求項5の通信コネクション確立方法を実施できる。
【0038】
請求項11は、所定のサービスを提供するプログラムである複数のアプリケーションエージェントと、通信を中継する複数のプロキシと、それらを接続可能なネットワークとが設けられた通信システムを制御するコンピュータで実行可能な制御プログラムを記録した記録媒体であって、前記制御プログラムには、マスターエージェントとなる1つのアプリケーションエージェントから複製され、前記マスターエージェントが提供するサービスの少なくとも一部の機能を備えるシャドーエージェントが存在する場合に、同じ種類のサービスを提供するマスターエージェントとシャドーエージェントとの対応関係を表す情報をルーチングテーブルとして管理する手順と、送信元から指定された宛先への通信回線の接続を行う際、もしくは通信中に宛先のマスターエージェント又はシャドーエージェントが利用できない状態が発生した場合には、通信を中継する少なくとも1つのプロキシの制御により、前記ルーチングテーブルから該当するシャドーエージェント又はマスターエージェントを検索し、見つかったシャドーエージェント又はマスターエージェントとの間で通信経路を確立する手順と、通信サービスを提供する通信経路を切り替える場合には、前記通信経路上に配置されたプロキシが、切替元のマスターエージェント又はシャドーエージェントにおけるサービス中断位置に関する情報を切替先のマスターエージェント又はシャドーエージェントに通知し、前記プロキシが切替先との間の通信コネクションを該当する通信サービスの通信コネクションと結び付ける手順とを設けたことを特徴とする。
【0039】
請求項11の記録媒体に記録された制御プログラムを実行することにより請求項1の方法を実施できる。
請求項12は、所定のサービスを提供するプログラムである複数のアプリケーションエージェントと、通信を中継する複数のプロキシと、それらを接続可能なネットワークとが設けられた通信システムを制御するコンピュータで実行可能な制御プログラムであって、マスターエージェントとなる1つのアプリケーションエージェントから複製され、前記マスターエージェントが提供するサービスの少なくとも一部の機能を備えるシャドーエージェントが存在する場合に、同じ種類のサービスを提供するマスターエージェントとシャドーエージェントとの対応関係を表す情報をルーチングテーブルとして管理する手順と、送信元から指定された宛先への通信回線の接続を行う際、もしくは通信中に宛先のマスターエージェント又はシャドーエージェントが利用できない状態が発生した場合には、通信を中継する少なくとも1つのプロキシの制御により、前記ルーチングテーブルから該当するシャドーエージェント又はマスターエージェントを検索し、見つかったシャドーエージェント又はマスターエージェントとの間で通信経路を確立する手順と、通信サービスを提供する通信経路を切り替える場合には、前記通信経路上に配置されたプロキシが、切替元のマスターエージェント又はシャドーエージェントにおけるサービス中断位置に関する情報を切替先のマスターエージェント又はシャドーエージェントに通知し、前記プロキシが切替先との間の通信コネクションを該当する通信サービスの通信コネクションと結び付ける手順とを設けたことを特徴とする。
【0040】
請求項12の制御プログラムを実行することにより請求項1の方法を実施できる。
【0041】
【発明の実施の形態】
本発明の実施の形態について以下に説明する。この形態は全ての請求項に対応する。
【0042】
この形態では、請求項6におけるルーチングテーブル及び回線接続手段は、それぞれプロキシルーチングテーブルPRT及びコネクション管理部504に対応する。
また、請求項9のサービステーブル,サービス識別手段,中継接続手段及びデータ中継処理手段は、それぞれサービステーブルAST,ステップS152,ステップS155及びステップS159に対応する。
【0043】
また、請求項6及び請求項10のテーブル更新手段はステップS412,S422,S432,S433,S442,S452,S454,S462に対応する。
また、請求項7のロケーションテーブル,エージェント検索手段,ネットワークアドレス変更通知手段及びロケーションテーブル更新手段は、それぞれロケーションテーブルLCT,ステップS471,ステップS472及びステップS475に対応する。
【0044】
また、請求項8のロケーションテーブル,エージェント検索手段,ネットワークアドレス変更通知手段及びロケーションテーブル更新手段は、それぞれロケーションテーブルLCT,ステップS481,ステップS482及びステップS483に対応する。
本発明の特徴的な説明に入る前に、本発明を実施する際に必要とされる基本技術について説明する。
【0045】
(第1の基本技術)
図30〜図49を参照して説明する。
図30はプロキシ及びアプリケーションを切り替える場合の制御シーケンスを示すシーケンス図である。図31はプロキシ及びアプリケーションを切り替える場合の通信経路の例を示すブロック図である。図32はセッションにプロキシを追加する場合の制御シーケンスを示すシーケンス図である。図33はセッションにプロキシを追加する場合の通信経路の例を示すブロック図である。
【0046】
図34はセッションからプロキシを削除する場合の制御シーケンスを示すシーケンス図である。図35はセッションからプロキシを削除する場合の通信経路の例を示すブロック図である。図36はセッション上のプロキシを置換する場合の制御シーケンスを示すシーケンス図である。図37はセッション上のプロキシを置換する場合の通信経路の例を示すブロック図である。
【0047】
図38は通信システムの構成例を示すブロック図である。図39は移動端末の構成例を示すブロック図である。図40はサービス管理部SRが保持する情報の例を示す模式図である。図41は位置管理部LRが保持する情報の例を示す模式図である。図42はセッション管理部SMが保持する情報の例を示す模式図である。
【0048】
図43は通信システムの構成例を示すブロック図である。図44はネットワークの構成例を示すブロック図である。図45はノード及びサービスの移動モデルを示すブロック図である。図46は端末の移動時の位置情報更新手順を示すシーケンス図である。
この形態では、例えば図38に示すような通信システムを利用する場合を想定している。図38の例では、3種類のサブネットワーク51,52,53が広域ネットワーク54を介して互いに接続されている。
【0049】
サブネットワーク51においては、イーサネット(登録商標)の規格に沿って構成された通信インタフェースを介して、有線で多数の端末(55,56)を互いに通信可能な状態で接続することができる。
サブネットワーク52は無線LANを構成している。この規格に適合する無線通信インタフェースを備える移動端末59,60は、基地局57,58との間で無線通信が可能であり、無線でサブネットワーク52と接続される。勿論、特定の通信可能エリアの外では基地局57,58との通信はできない。
【0050】
サブネットワーク53は、公衆無線通信システムであるPHSのネットワークである。図38の例では、サブネットワーク53には移動端末61,固定端末62及びTAP(PIAFS用ターミナルアダプタ)63が接続され、TAP63には基地局64,65が接続されている。PHSの通信規格に沿って構成された無線通信インタフェースを備える移動端末66,67は、基地局64,65との間で無線通信が可能である。勿論、特定の通信可能エリアの外では基地局64,65との通信はできない。
【0051】
例えば、図38に示す移動端末59が移動端末55の近傍に移動した場合には、移動端末59は基地局57との無線通信ができなくなる可能性がある。しかし、その位置では移動端末59を有線でサブネットワーク51に接続することができる。
一般的なシステムの場合、端末が通信のために利用するネットワークをサブネットワーク51,52,53の間で切り替える場合には、アプリケーションの通信を一旦終了して通信経路を再構築する必要があるため手間がかかる。
【0052】
ここで説明する技術を用いることにより、端末が通信のために利用するネットワークをサブネットワーク51,52,53の間で切り替える場合であっても、アプリケーションの通信を終了することなく自動的に切替を行うことができる。また、例えば移動端末55及び固定端末56に同一のアプリケーションプログラムが存在する場合には、一人のユーザが移動端末55上のアプリケーションプログラムを利用して通信している途中で、固定端末56上のアプリケーションプログラムに切り替えて継続的に通信を行うこともできる。
【0053】
ここで用いる各端末(この例では移動端末)は、図39のように構成される。図39の移動端末は、サブネットワーク51との接続を可能にするためにイーサネット(登録商標)通信アダプタ21を備え、サブネットワーク52との接続を可能にするために無線LANアダプタ22を備え、サブネットワーク53との接続を可能にするためにPHS通信アダプタ23を備えている。
【0054】
また、図39の移動端末はソフトウェア10としてサーバアプリケーション11,クライアントアプリケーション12,プロキシ13,エージェント14,リンク切替部15,リンク16,17,18,位置管理部LR,セッション管理部SM及びサービス管理部SRを備えている。
サーバアプリケーション11は、特定のアプリケーションのサービスを提供するためのプログラムである。クライアントアプリケーション12は、特定のアプリケーションについてサーバが提供するサービスを利用するためのプログラムである。
【0055】
プロキシ13は、ある送信元からある受信先への通信の中継を行うとともに通信の内容をそれ自身の記憶装置に蓄積する。例えば、一時的にプロキシ13と受信先との間の通信が不能になった場合であっても、送信元からプロキシ13に入力される通信の内容はプロキシ13に蓄積されるので、プロキシ13と受信先との間の通信が回復した場合には、プロキシ13に蓄積された情報を受信先に送信し通信を継続することができる。
【0056】
図39のプロキシ13は、サーバアプリケーション11の通信又はクライアントアプリケーション12の通信を中継することができる。
リンク切替部15は他の端末との間の通信に利用するリンク16,17,18を切り替える。リンク16はイーサネット(登録商標)通信アダプタ21と接続され、リンク17は無線LANアダプタ22と接続され、リンク18はPHS通信アダプタ23と接続されている。
【0057】
リンク16及びイーサネット(登録商標)通信アダプタ21を利用して通信する場合には、サブネットワーク51を介して通信することができ、リンク17及び無線LANアダプタ22を介して通信する場合には、サブネットワーク52を介して通信することができ、リンク18及びPHS通信アダプタ23を利用する場合には、サブネットワーク53を介して通信することができる。
【0058】
つまり、リンク切替部15で使用するリンク16,17,18を切り替えることにより通信方式を切り替えて、サブネットワーク51,52,53のいずれかに接続することができる。
通信を行う各端末には、それぞれIP(Internet Protocol)アドレスが割り当てられる。また、端末が通信方式を切り替える際には、アドレスの割り当て単位であるサブネットの境界を超えて端末がネットワーク上を移動することになるため、切替のたびに新たなアドレスを用いる。
【0059】
サービス管理部SRは各端末に備わっているサーバアプリケーション11,クライアントアプリケーション12及びプロキシ13の種類や機能の情報を管理している。
実際には、例えば図40に示す内容がサービス管理部SRに保持される。図40の例では、端末A11はアプリケーションプログラムとしてサーバB11を保持し、プロキシC11を備えている。また、端末A12はアプリケーションプログラムとしてサーバB12を保持し、プロキシC12を備えている。更に、端末A13はアプリケーションプログラムとしてクライアントB13を保持し、プロキシC13を備えている。
【0060】
位置管理部LRは端末毎にIPアドレスを管理する。位置管理部LRは、それを備えた端末だけでなく、多数の端末のIPアドレスを管理することができる。但し、位置管理の効率向上のため、ならびにリソースの少ない端末でも位置の管理ができるようにするため、端末の移動量及び位置管理に関する記憶可能容量の管理も行う。更に、管理する端末の範囲を限定するために複数の端末をグループで区分して管理する。
【0061】
実際には、例えば図41に示すように、端末の識別名E10,グループ名E11,IPアドレスE12,各IPアドレスの状態(利用可否)E13,移動量E14,LRの記憶容量及び更新時刻の情報が管理している特定グループの端末毎に保持される。
また、端末の移動などに伴って通信デバイスを切り替えた場合にはその端末のIPアドレスが変化するので、この場合には位置管理部LRの保持する内容を更新する。同時に、通信相手が存在する場合には、その通信相手に対して位置情報の更新命令を送信する。すなわち、図46に示す更新手順を実行する。
【0062】
また、各端末が位置情報の更新命令を送信する場合には、所定の優先順位を考慮して命令を送信する順序を決定する。例えば、固定端末(デスクトップパソコンなど)56のように移動量の少ない端末については高い優先順位を与える。また、位置情報の記憶容量(E15)が大きい端末についても高い優先順位を与える。
【0063】
位置管理部LRの管理に用いられる各々のグループには、サブネットの境界を超える範囲に存在する複数の端末を含めることができる。また、1つのサブネット内には複数のグループを共存させることができる。
新たにグループに加入しようとする端末(X1)は、そのIPアドレスを取得し、グループ検索要求をサブネットワーク内にブロードキャストするか、又は既知の特定の端末(X2)に対してグループ検索要求を送信する。
【0064】
その後、端末(X1)はグループ検索要求を受け取った端末(X2)からの応答を受信すると、その内容からグループの情報を取得し、加入するグループを選択する。
また、端末(X1)は端末(X2)に対して選択したグループへの登録要求を送信する。端末(X2)はこの登録要求を送信した端末(X1)の位置情報を取得する。
【0065】
また、登録要求を受信した端末(X2)がそれに含まれる位置管理部LRの情報を端末(X1)に送信し、加入した端末(X1)の位置情報を位置管理部LRの内容に追加することによりグループへの加入手続きが完了する。
各端末に関する位置情報の検索を行う場合には、その端末自身に含まれる位置管理部LRの保持している情報から位置情報の検索を行う。検索できなかった場合には、位置管理部LRの保持している情報に含まれる任意の端末に対して検索要求を送出する。この検索要求に対して結果が返ってきたら、その位置情報を位置管理部LRに追加する。
【0066】
また、サブネット内の同じグループに属している端末を検索する場合には、ブロードキャストパケットを送信し、それに対する応答に基づいて位置管理部LRに位置情報を登録する。
位置管理部LRには、次に示す機能が含まれている。
(1)端末位置の移動などに伴うIPアドレスの変更
(2)ノードの離脱,回線断,障害などに伴うIPアドレスの状態の変更
(3)エージェント14に対する変更の通知
(4)グループへの参加及び離脱
(5)グループ内のノードの位置管理部LRとの間の位置情報の送受信
図39のセッション管理部SMは、各々の通信についてその通信経路の全体をセッションとして管理している。例えば、図44においては、セッション103を用いてアプリケーション101とアプリケーション102との間で通信することができる。この場合、セッション103にはプロキシ104,105,106が含まれている。
【0067】
また、セッション103は通信コネクション107,108,109,110を利用する。通信コネクション107は、アプリケーション102とプロキシ104との間に確立された通信路である。通信コネクション108は、プロキシ104,105の間に確立された通信路である。通信コネクション109は、プロキシ105,106の間に確立された通信路である。通信コネクション110は、アプリケーション101とプロキシ106との間に確立された通信路である。
【0068】
実際のセッション管理部SMは、例えば図42に示すような情報G11〜G18を保持している。情報G11は、複数のセッションを区別するための識別子である。情報G12は、利用するサーバアプリケーションが存在するノード(端末)の名称を表す。情報G13は、利用するサーバアプリケーションに与えられたポート番号を表す。
【0069】
また、情報G14は利用するクライアントアプリケーションが存在するノードの名称を表す。情報G15は、利用するクライアントアプリケーションに与えられたポート番号を表す。情報G16は、利用するプロキシが存在するノードの名称を表す。情報G17は、利用するプロキシに与えられたポートの番号を表す。また、複数のプロキシを中継するように1つのセッションの通信経路を構成している場合には、利用する複数プロキシのそれぞれのノード名,ポート番号及び複数プロキシの接続状態が1つのセッションID(G11)に関連付けられてセッション管理部SMに保持される。
【0070】
セッション管理部SMが実行する機能としては、各セッションに対するプロキシの追加,プロキシの削除,プロキシの切替や、他の端末に存在するセッション管理部SMとの間の通信がある。
図39のエージェント(アプリケーションとは異なる)14は、位置管理部LR,セッション管理部SM,サービス管理部SRが保持している様々な情報を仲介し、それらの情報の総合的な判断により、プロキシ13及びリンク切替部15を制御する。
【0071】
例えば、所定の通信サービスを継続した状態でそのサービスを現在提供しているサーバアプリケーションを終了させたい場合には、それと同じ種類の代わりのサーバアプリケーションについてサービス管理部SRを用いて検索することができる。
また、位置管理部LRには端末の識別名及びそのIPアドレスが保持されているので、切替先のサーバアプリケーションが存在する端末の位置を特定できる。更に、セッション管理部SMで管理されている特定のセッションの情報を利用して後述する処理を行うことにより、サーバアプリケーションを切り替えて通信サービスを継続することができる。
【0072】
エージェント14は、リンク切替部15に対してリンク切替を命令するとともに、リンク切替後、プロキシに通信コネクションの再開処理を依頼する。リンク切替部15は、新しいリンクへの接続,リンクの切断,ルーティング管理などの機能を有している。また、プロキシは、コネクション下のリンクの切断や変更を隠蔽する機能を有している(図45参照)。
【0073】
ある移動元からある移動先にサービスを移動する場合には、そのサービスの通信で利用しているセッションから、移動先のアプリケーション又はプロキシ上に構築されるサービスに対して移動元のサービスの状態を転送することで実現することができる。転送すべきサービスの状態としては、セッションを構成しているアプリケーション及びプロキシの接続状態,送受信しているデータのバイト数,フレーム数などがある。
【0074】
例えば、携帯型の移動端末を用い、無線回線及びネットワークを介して特定のサーバアプリケーションからストリームデータを受信し閲覧している場合には、端末の表示能力が低いため品質の高いサービスを受けることができない。しかし、ユーザが移動端末から画面の大きい固定端末にサービスを移動すれば、品質の高いサービスを受けることができる。このような移動の場合でも、継続的にサービスを利用することができる。
【0075】
また、同じサーバアプリケーションが複数の端末に存在する場合には、サーバ側の端末及びアプリケーションを切り替えるようにサービスの提供に利用される通信経路を切り替えることもできる。端末の切替により、サービスの通信速度を改善することも可能である。
【0076】
サービスの提供に利用される通信経路を切り替える場合や、サーバアプリケーション又はクライアントアプリケーションを切り替える場合の具体例について以下に説明する。ここでは、図43に示すような通信システムを想定する。
図43においては移動端末30(1)〜30(5)のそれぞれの機能を簡略化して表してある。実際には、移動端末30(1)〜30(5)のそれぞれは図39に示す移動端末と同様の機能を有している。
【0077】
但し、サーバアプリケーション11は移動端末30(1)だけに設けてあり、クライアントアプリケーション12は移動端末30(2)及び30(3)だけに設けてある。また、移動端末30(5)にはセッション管理部SMが備わっていない。なお、移動端末30(5)のプロキシ13を利用する場合には、移動端末30(5)以外の移動端末30に備わったセッション管理部SMを利用して制御を行えばよい。
【0078】
まず、プロキシ及びアプリケーションを切り替える場合について説明する。具体的には、切替前の状態では図31において移動端末30(1)のサーバアプリケーション11(1)とプロキシ13(1)との間に通信コネクション201が確立され、プロキシ13(1)とプロキシ13(2)との間に通信コネクション202が確立され、クライアントアプリケーション12(2)とプロキシ13(2)との間に通信コネクション203が確立され、サーバアプリケーション11(1)−プロキシ13(1)−プロキシ13(2)−クライアントアプリケーション12(2)の通信経路を通るようにセッションが形成されている場合を想定している。
【0079】
ここで、移動端末30(2)上のクライアントアプリケーション12(2)の代わりに移動端末30(3)上のクライアントアプリケーション12(3)を利用して継続的にサーバアプリケーション11(1)のサービスを受けようとする場合には、セッション管理部SM(2)の機能を利用して、図30に示す制御シーケンスを実行する。すなわち、プロキシ13(2)からプロキシ13(3)に切り替える。
【0080】
ユーザの利用状態及び端末間の接続状態を管理している端末のエージェント14は、必要に応じて(例えばユーザの指示により)アプリケーション(AP)の切替要求を発生する。
この切替要求は、例えばセッション管理部SM(2)に通知される。この場合、セッション管理部SM(2)は図30のステップS11を実行する。すなわち、切替先のクライアントアプリケーション12(3)との間で通信コネクション204が確立された切替先のプロキシ13(3)に切り替えるために、プロキシ13(3)に対して切替に関する問い合わせを行う。この問い合わせの際には、該当するセッションのセッションIDやプロキシの接続状態の情報もパラメータとしてセッション管理部SM(2)からプロキシ13(3)に送信する。
【0081】
このパラメータには、切替元のプロキシ13(2)が転送を中継しているファイルのファイル名及び転送を終了したバイト数(ファイル上の現在の転送位置)も含まれている。
問い合わせを受けたプロキシ13(3)は、受信したパラメータに基づいて、必要なプロセス等を起動し、ステップS12で通信の中継をするための準備を行う。このプロキシ13(3)は、受信したパラメータに基づいて切替元のプロキシ13(2)の状態を継承する。
【0082】
また、この準備においては、必要なアプリケーション12(3)が起動していない場合には、そのアプリケーション12(3)をプロキシ13(3)が起動する。また、アプリケーション12(3)とプロキシ13(3)との間の通信コネクション204が確立していない場合には、通信コネクション204を確立する。
準備が完了したら、ステップS13でプロキシ13(3)はセッション管理部SM(2)に対して準備完了通知を送信する。
【0083】
セッション管理部SM(2)は、準備完了通知を受信するとステップS14で、切替元のプロキシ13(2)との間で通信コネクション202を確立していたプロキシ13(1)に対して切替要求を送信する。この切替要求には、パラメータとして切替先のプロキシ13(3)に関するノード名(G16)及びポート番号(G17)が含まれている。
【0084】
プロキシ13(1)は、切替要求を受信した場合には、切替要求のパラメータ及びセッションIDを利用して、プロキシ13(3)の接続ポイント(端末のIPアドレスとプロキシ13(3)のポート番号)に対して通信コネクション205を確立する(S15)。
プロキシ13(3)はプロキシ13(1)との間で通信コネクション205が確立すると、通信コネクション205の確立の際に受信したセッションIDで定まる特定のセッションについて、通信コネクション204及びクライアントアプリケーション12(3)を関連付ける(S16)。これにより、通信コネクション205と通信コネクション204との間の通信を中継(蓄積転送)するためのプロキシ13(3)の準備が完了する。
【0085】
また、プロキシ13(1)はそれまでに通信コネクション202を介して行っていた全ての通信を通信コネクション205に切り替える(S17)。この切替が完了した後、プロキシ13(1)はセッション管理部SM(2)に対して切替の完了通知を送信する(S18)。
セッション管理部SM(2)は、完了通知を受信すると管理しているテーブルの内容を更新する(S19)。すなわち、セッションIDで定まる特定のセッション(今回の処理で切替を行ったセッション)について、切替後のクライアントアプリケーション12(3)及びプロキシ13(3)のノード名及びポート番号ならびにそれらの接続関係を反映するように情報を更新する。
【0086】
また、セッション管理部SM(2)は、変更を行ったセッションの情報を管理している他のセッション管理部SM(1),SM(3),SM(4)に対して変更した情報を通知する(S21)。
以上の制御シーケンスの結果、図31に示すようにサーバアプリケーション11(1)とクライアントアプリケーション12(2)との間の通信で提供していたサービスが、サーバアプリケーション11(1)とクライアントアプリケーション12(3)との間の通信に切り替わるようにセッション(通信経路)の内容が変更される。
【0087】
次に、セッションにプロキシを追加する場合について説明する。具体的には、追加前の状態では図33に示すようにサーバアプリケーション11(1)とプロキシ13(1)との間に通信コネクション211が確立され、プロキシ13(1),13(2)の間に通信コネクション212が確立され、プロキシ13(2)とクライアントアプリケーション12(2)との間に通信コネクション213が確立され、2つのプロキシ13(1),13(2)がサーバアプリケーション11(1)とクライアントアプリケーション12(2)との間の通信をを中継するようにセッションが構築されている。
【0088】
その状態から、通信を継続したままプロキシ13(1)とプロキシ13(2)との間にプロキシ13(3)を追加する場合には、セッション管理部SM(2)の機能を利用して、図32に示す制御シーケンスを実行する。
端末のエージェント14は、必要に応じて(例えばユーザの指示により)プロキシの追加要求を発生する。この追加要求は、例えばセッション管理部SM(2)に通知される。この場合、セッション管理部SM(2)は図32のステップS31を実行する。
【0089】
すなわち、追加すべきプロキシ13(3)に追加の準備をさせるために、セッション管理部SM(2)は追加の問い合わせを行う。この問い合わせの際には、該当するセッションのセッションIDやプロキシの接続状態の情報もパラメータとしてセッション管理部SM(2)からプロキシ13(3)に送信する。
このパラメータには、プロキシ13(2)が転送を中継しているファイルのファイル名及び転送を終了したバイト数(ファイル上の現在の転送位置)も含まれている。
【0090】
問い合わせを受けたプロキシ13(3)は、受信したパラメータに基づいて、必要なプロセス等を起動し、ステップS32で通信の中継をするための準備を行う。このプロキシ13(3)は、受信したパラメータに基づいてプロキシ13(2)の状態を継承する。準備が完了したら、ステップS33でプロキシ13(3)はセッション管理部SM(2)に対して準備完了通知を送信する。
【0091】
セッション管理部SM(2)は、準備完了通知を受信すると、ステップS34,S35で、追加するプロキシ13(3)と接続すべきプロキシ13(1),13(2)に対して切替要求を送信する。この切替要求には、パラメータとして追加するプロキシ13(3)に関するノード名(G16)及びポート番号(G17)が含まれる。
プロキシ13(1)及び13(2)は、切替要求を受信すると、切替要求のパラメータ及びセッションIDを利用して、プロキシ13(3)の接続ポイント(端末のIPアドレスとプロキシ13(3)のポート番号)に対して通信コネクション214又は215を確立する(S36,S37)。
【0092】
プロキシ13(3)は通信コネクション214,215が確立すると、それらのコネクションの確立の際に受信したセッションIDで定まる特定のセッションについて、通信コネクション214と通信コネクション215とを関連付ける(S38)。これにより、通信コネクション214と通信コネクション215との間の通信を中継(蓄積転送)するためのプロキシ13(3)の準備が完了する。
【0093】
一方、プロキシ13(1)はそれまでに通信コネクション212を介して行っていた全ての通信を通信コネクション214に切り替える(S41)。この切替が完了した後、プロキシ13(1)はセッション管理部SM(2)に対して切替の完了通知を送信する(S44)。
同様に、プロキシ13(2)はそれまでに通信コネクション212を介して行っていた全ての通信を通信コネクション215に切り替える(S40)。この切替が完了した後、プロキシ13(2)はセッション管理部SM(2)に対して切替の完了通知を送信する(S42)。
【0094】
セッション管理部SM(2)は、完了通知を受信すると管理しているテーブルの内容を更新する(S45)。すなわち、セッションIDで定まる特定のセッション(今回の処理でプロキシの追加を行ったセッション)について、追加したプロキシ13(3)のノード名及びポート番号ならびにプロキシ間の接続関係を反映するように情報を更新する。
【0095】
また、セッション管理部SM(2)は、変更を行ったセッションの情報を管理している他のセッション管理部SM(1),SM(3),SM(4)に対して変更した情報を通知する(S46)。
以上の制御シーケンスの結果、図33に示すようにサーバアプリケーション11(1)とクライアントアプリケーション12(2)との間の通信がプロキシ13(1)−プロキシ13(3)−プロキシ13(2)の経路で中継されるようにセッションの内容が変更される。
【0096】
次に、セッションからそれまで利用していたプロキシを削除する場合について説明する。具体的には、追加前の状態では図35に示すようにサーバアプリケーション11(1)とプロキシ13(1)との間に通信コネクション221が確立され、プロキシ13(1),13(3)の間に通信コネクション222が確立され、プロキシ13(3),13(2)の間に通信コネクション223が確立され、プロキシ13(2)とクライアントアプリケーション12(2)との間に通信コネクション224が確立され、3つのプロキシ13(1),13(3),13(2)がサーバアプリケーション11(1)とクライアントアプリケーション12(2)との間の通信をを中継するようにセッションが構築されている。
【0097】
その状態から、通信を継続したままプロキシ13(1)とプロキシ13(2)との間のプロキシ13(3)を削除(セッションから除外)する場合には、セッション管理部SM(2)の機能を利用して、図34に示す制御シーケンスを実行する。
端末のエージェント14は、必要に応じて(例えばユーザの指示により)プロキシの削除要求を発生する。この削除要求は、例えばセッション管理部SM(2)に通知される。この場合、セッション管理部SM(2)は図34のステップS51から順に処理を実行する。
【0098】
セッション管理部SM(2)は、削除対象のプロキシ13(3)との間で通信コネクション222,223を確立しているプロキシ13(1)及び13(2)のそれぞれに対して、プロキシ13(3)に関する削除要求を送信する(S51,S52)。
プロキシ13(2)は、削除要求を受信すると、セッションIDを利用して、プロキシ13(2)とプロキシ13(1)との間の通信コネクション225を確立する(S53)。
【0099】
更に、プロキシ13(2)はそれまでに通信コネクション223を介して行っていた全ての通信を通信コネクション225に切り替える(S54)。この切替が完了した後、プロキシ13(2)はセッション管理部SM(2)に対して切替の完了通知を送信する(S58)。プロキシ13(2)とプロキシ13(3)との間の通信コネクション223はプロキシ13(2)によって切断される(S56)。
【0100】
同様に、プロキシ13(1)はそれまでに通信コネクション222を介して行っていた全ての通信を通信コネクション225に切り替える(S55)。この切替が完了した後、プロキシ13(1)はセッション管理部SM(2)に対して切替の完了通知を送信する(S59)。プロキシ13(1)とプロキシ13(3)との間の通信コネクション222はプロキシ13(1)によって切断される(S57)。
【0101】
セッション管理部SM(2)は、完了通知を受信すると管理しているテーブルの内容を更新する(S60)。すなわち、セッションIDで定まる特定のセッション(今回の処理でプロキシの削除を行ったセッション)について、プロキシ間の接続関係に削除の結果を反映するように情報を更新する。
また、セッション管理部SM(2)は、変更を行ったセッションの情報を管理している他のセッション管理部SM(1),SM(3),SM(4)に対して変更した情報を通知する(S61)。
【0102】
以上の制御シーケンスの結果、図35に示すようにサーバアプリケーション11(1)とクライアントアプリケーション12(2)との間の通信がプロキシ13(1)−プロキシ13(2)の経路で中継されるようにセッションの内容が変更される。
次に、特定のセッション上で利用しているプロキシを他のプロキシに置き換える場合について説明する。具体的には、追加前の状態では図37に示すようにサーバアプリケーション11(1)とプロキシ13(1)との間に通信コネクション231が確立され、プロキシ13(1),13(4)の間に通信コネクション232が確立され、プロキシ13(4),13(2)の間に通信コネクション233が確立され、プロキシ13(2)とクライアントアプリケーション12(2)との間に通信コネクション234が確立され、3つのプロキシ13(1),13(4),13(2)がサーバアプリケーション11(1)とクライアントアプリケーション12(2)との間の通信をを中継するようにセッションが構築されている。
【0103】
その状態から、通信を継続したまま利用しているプロキシ13(4)をプロキシ13(5)に置換する場合には、セッション管理部SM(2)の機能を利用して、図36に示す制御シーケンスを実行する。
端末のエージェント14は、必要に応じて(例えばユーザの指示により)プロキシの置換要求を発生する。この置換要求は、例えばセッション管理部SM(2)に通知される。この場合、セッション管理部SM(2)は図36のステップS71を実行する。
【0104】
すなわち、置換先のプロキシ13(5)に中継の準備をさせるために、セッション管理部SM(2)は置換の問い合わせを行う。この問い合わせの際には、該当するセッションのセッションIDやプロキシの接続状態の情報もパラメータとしてセッション管理部SM(2)からプロキシ13(5)に送信する。
このパラメータには、置換元のプロキシ13(4)が転送を中継しているファイルのファイル名及び転送を終了したバイト数(ファイル上の現在の転送位置)も含まれている。
【0105】
問い合わせを受けたプロキシ13(5)は、受信したパラメータに基づいて、必要なプロセス等を起動し、ステップS72で通信の中継をするための準備を行う。このプロキシ13(5)は、受信したパラメータに基づいて置換元のプロキシ13(4)の状態を継承する。準備が完了したら、ステップS73でプロキシ13(5)はセッション管理部SM(2)に対して準備完了通知を送信する。
【0106】
セッション管理部SM(2)は、準備完了通知を受信すると、ステップS74,S75で、置換元のプロキシ13(4)との間に通信コネクション232,233を確立しているプロキシ13(1),13(2)に対して切替要求を送信する。この切替要求には、パラメータとして置換先のプロキシ13(5)に関するノード名(G16)及びポート番号(G17)が含まれる。
【0107】
プロキシ13(1)及び13(2)は、切替要求を受信すると、切替要求のパラメータ及びセッションIDを利用して、プロキシ13(5)の接続ポイント(端末のIPアドレスとプロキシ13(3)のポート番号)に対して通信コネクション235又は236を確立する(S76,S77)。
置換先のプロキシ13(5)は、通信コネクション235,236が確立すると、それらのコネクションの確立の際に受信したセッションIDで定まる特定のセッションについて、通信コネクション235と通信コネクション236とを関連付ける(S78)。これにより、通信コネクション235と通信コネクション236との間の通信を中継(蓄積転送)するためのプロキシ13(5)の準備が完了する。
【0108】
一方、プロキシ13(2)はそれまでに通信コネクション233を介して行っていた全ての通信を通信コネクション236に切り替える(S80)。この切替が完了した後、プロキシ13(2)はセッション管理部SM(2)に対して切替の完了通知を送信する(S82)。
同様に、プロキシ13(1)はそれまでに通信コネクション232を介して行っていた全ての通信を通信コネクション235に切り替える(S81)。この切替が完了した後、プロキシ13(1)はセッション管理部SM(2)に対して切替の完了通知を送信する(S83)。
【0109】
通信コネクション232,233から通信コネクション235,236への切替が終了した後で、不要になった通信コネクション232,233は切断される(S84,S85)。
セッション管理部SM(2)は、完了通知を受信すると管理しているテーブルの内容を更新する(S86)。すなわち、セッションIDで定まる特定のセッション(今回の処理でプロキシの置換を行ったセッション)について、プロキシ間の接続関係に置換の結果を反映するように情報を更新する。
【0110】
また、セッション管理部SM(2)は、変更を行ったセッションの情報を管理している他のセッション管理部SM(1),SM(3),SM(4)に対して変更した情報を通知する(S87)。
以上の制御シーケンスの結果、図37に示すようにサーバアプリケーション11(1)とクライアントアプリケーション12(2)との間の通信がプロキシ13(1)−プロキシ13(5)−プロキシ13(2)の経路で中継されるようにセッションの内容が変更される。
【0111】
なお、サーバアプリケーション11とクライアントアプリケーション12との間で行われる通信には、セッション毎に異なる固有のセッションIDが割り当てられる。また、プロキシの接続ポイントは、ネットワーク上での位置と接続要求の受付ポートを表す。プロトコルとしてTCP/IPを想定する場合には、接続ポイントはIPアドレスとプロキシがリッスンしているポート番号になる。
【0112】
また、例えばセッションの通信経路を切り替えるために通信コネクションを切り替える際には一時的に通信ができなくなるが、そのセッションに含まれている少なくとも1つのプロキシがアプリケーションの送出する通信内容を蓄積し、通信が可能になったときには蓄積された情報を送信して通信回復作業を自動的に行う。従って、通信の途中で通信経路を切り替える場合であっても、ユーザが特別な操作を行うことなくそのまま通信を継続することができる。
【0113】
ここで説明している機能の概略は、図45に示す移動モデルで表すことができる。すなわち、ユーザが使用する端末が移動して通信方式が切り替わった場合や、ユーザが使用する端末を切り替えた場合でも、同じサービスを継続的に同じユーザに提供することができる。
ここで扱うサービスとは、各セッションを通してアプリケーション間で送受信される通信内容,それに付随する通信プロトコル(http等)及び表現方法(再生,ブラウジング等)を意味する。
【0114】
サービスを移動する場合には、同じセッションIDで示される移動元のセッションから移動先のセッションに対してサービスの状態を転送することにより、同じ状態でサービスを継続することができる。
各端末(ノード)は、図45に示すようにリンク層のアドレス空間にマッピングされる。従って、ノードの移動はノードとアドレスとの対応関係を変更することで実現できる。また、各端末は複数の通信デバイスをもつことが可能であり、それぞれが固有のアドレスを保持することができる。
【0115】
このような通信システムにおける位置管理の方式について性能を評価するために、計算機を用いてシミュレーションを実施した。シミュレーションの条件は次の通りである。
(1)端末の移動間隔:グループを構成している多数の端末のうち(1/3)は平均移動時間が30分、残りの(2/3)の端末は平均移動時間を10分とする。
【0116】
(2)端末の通信待機時間は20分とし、通信時間は50分とする。
(3)位置管理部LRの記憶容量:多数の端末のうち(1/3)のLRは全ての端末の位置情報を保持可能、他の(1/3)の端末のLRは(1/2)の端末の位置情報を保持可能、残りの(1/3)の端末のLRは(1/4)の端末の位置情報を保持可能と仮定する。
【0117】
(4)1200分間に発行された位置情報更新命令の数及び位置管理部LRの検索成功率を400試行分測定した。但し、最初の100分間については統計から除外。
(5)位置管理部LRが位置情報更新命令を送出する際には、自らが保持している全ての位置情報を送信する。受信側のLRでは、位置情報のタイムスタンプにより取捨選択して保持している位置情報を更新する。
【0118】
(6)位置情報更新命令を発行する際の端末の優先順位については2種類の方式を評価する。「Method A」の方式では位置管理部LRが自らの保持する位置情報を更新した場合に全ての端末に対して位置情報更新命令を発行する。「Method B」の方式では、移動間隔が30分でかつ全ての端末の位置情報を保持可能な記憶容量を有する端末のLRのみが全ての端末に対して位置情報更新命令を発行し、残りの端末の位置管理部LRについては、移動間隔が30分でかつ全ての端末の位置情報を保持可能な記憶容量を有する端末のみに対して位置情報更新命令を発行する。
【0119】
なお、「Method A」の方式では各端末の位置が更新されるたびに全ての端末に位置更新命令が発行されるので通信量は多くなるが、優れた位置管理能力が得られる。
上記シミュレーションの結果が図47〜図49に示されている。図47は、位置情報更新命令の発行数を示している。また、図48及び図49は位置検索成功率を示している。図48の位置検索成功率は、特定の端末の位置管理部LRが保持している位置情報の検索及び他の端末の位置管理部LRの検索によって相手端末の位置情報の取得に成功した割合である。また、図49の位置検索成功率は、特定の端末の位置管理部LRが保持している位置情報のみを検索して相手端末の位置情報の取得に成功した割合である。
【0120】
図47,図48を参照すると、「Method A」に比べて「Method B」の方が通信コストが低減(60〜80%減)され、位置検索能力の劣化も許容できる範囲であることが分かる。また、この効果はグループを構成している端末数が大きいほど顕著であり、位置検索成功率の差も小さくなる。従って、各端末の移動量や位置管理部LRの記憶容量を考慮して位置情報更新命令の発行対象となる端末を制限することにより、各端末の位置管理の負荷を分担するとともに通信量を抑制することができる。
【0121】
また、図49から分かるように、他の端末に存在する位置情報を検索しなくても、25〜45%の端末の位置を正しく検出することができる。従って、端末が一時的にネットワークから離脱している場合であっても、それ自身の位置管理部LRが保持する位置情報のみの検索により、ネットワークへの再接続の手がかりを得ることが可能である。
【0122】
(第2の基本技術)
次に図51及び図52を参照して説明する。
この形態では、HTTPの通信を行うことを想定しているので、アプリケーションとしてブラウザ5及びWebサーバ7を用いる。
図51の例では、ノード8(A),8(B)にはクライアントアプリケーションとして動作するブラウザ5が配置されているので、ノード8(A),8(B)はクライアントノードとして機能する。また、ノード8(C)にはサーバアプリケーションとして動作するWebサーバ7が配置されているので、ノード8(C)はサーバノードとして機能する。
【0123】
また、図52の例では、ノード8(A)にはクライアントアプリケーションとして動作するブラウザ5(A),5(B)が配置されているので、ノード8(A)はクライアントノードとして機能する。また、図52のノード8(C)にはサーバアプリケーションとして動作するWebサーバ7が配置されているので、ノード8(C)はサーバノードとして機能する。
【0124】
図51の例について動作を説明する。
まず、ブラウザ5(A)からプロキシ6(A),6(B)を介してWebサーバ7に要求を行う(C11)。この要求に対するWebサーバ7の応答が、プロキシ6(C),6(A)を介してブラウザ5(A)に伝送される(C12)。このとき、セッションが成立する。また、セッション毎にそれを区別するためのセッションIDが割り当てられる。
【0125】
この後で、プロキシ6(C)がサービス移動要求を受け付ける(C13)。その場合、プロキシ6(C)は通信を中断し(C14)、移動先のノード8(B)のプロキシ6(B1)に接続する(C15)。
この場合、移動先のプロキシ6(B1)は該当するセッションのセッションIDを含むURLを引数として、ブラウザ5(B)を起動する(C16)。
【0126】
起動されたブラウザ5(B)は、起動の際に指定されたURLを用いてプロキシ6(B2)に接続する(C17)。このプロキシ6(B2)は、セッションIDに基づいて、ブラウザ5(B)の通信とサーバノードであるノード8(C)のプロキシ6(C)とを結び付けてデータの転送を行う(C18)。
このようにして、サービスの連続性を確保したまま、クライアントノード簡をサービスが移動する。
【0127】
次に、図52の例について動作を説明する。
まず、ブラウザ5(A)からプロキシ6(A),6(C)を介してWebサーバ7に要求を行う(C21)。それに対するWebサーバ7の応答が、プロキシ6(C),6(A)を介してブラウザ5(A)に転送される(C22)。このとき、セッションが設立する。また、セッション毎にそれを区別するためのセッションIDが割り当てられる。
【0128】
この後で、プロキシ6(A)がサービス移動要求を受け付ける(C23)。その場合、プロキシ6(A)は該当するセッションのセッションIDを含むURLを引数として、ブラウザ5(B)を起動する(C24)。
【0129】
起動されたブラウザ5(B)は、起動の際に指定されたURLを用いてプロキシ6(B2)に接続する(C25)。このプロキシ6(B2)は、セッションIDに基づいて、ブラウザ5(B)の通信とサーバノードであるノード8(C)のプロキシ6(C)とを結び付けてデータの転送を行う(C26)。
このようにして、サービスの連続性を確保したまま、クライアントノード簡をサービスが移動する。
【0130】
(第3の基本技術)
次に図53〜図55を参照して説明する。
図53は、セッションにプロキシを追加する場合の簡略化された制御シーケンスを示すシーケンス図である。図54は、セッションからプロキシを削除する場合の簡略化された制御シーケンスを示すシーケンス図である。図55は、セッション上のプロキシを置換する場合の簡略化された制御シーケンスを示すシーケンス図である。
【0131】
この形態は、前記第1の基本技術の変形例であり、制御シーケンスの内容が第1の実施の形態よりも簡略化されている。また、この形態においても図39に示すような構成の移動端末を用いることを想定している。但し、図39に示す位置管理部LR,サービス管理部SR,リンク切替部15については必ずしも必要とはしない。
【0132】
図53〜図55に示す動作の内容については第1の基本技術と同様であるが、各図の制御の内容について以下に説明する。
まず、図33の場合と同様にセッションにプロキシ13(3)を追加する場合について、図53を参照して説明する。
この例では、図33において、クライアントアプリケーション12(2),プロキシ13(2),プロキシ13(1),サーバアプリケーション11(1)の順に通信コネクションが確立され、クライアントアプリケーション12(2)とサーバアプリケーション11(1)との間にセッションが構築されている状態から、クライアントアプリケーション12(2),プロキシ13(2),プロキシ13(3),プロキシ13(1),サーバアプリケーション11(1)の順に通信コネクションが確立されて、クライアントアプリケーション12(2)とサーバアプリケーション11(1)との間のセッションの経路が変更される場合を想定している。
【0133】
すなわち、プロキシ13(2)とプロキシ13(1)との間にもう1つのプロキシ13(3)を追加するための動作を表している。
エージェントソフトウェア(図39の14)は、ユーザ又は端末間の接続状態に関する命令や管理を制御している。このエージェントソフトウェアからのプロキシ切替要求を移動端末30(2)が受信すると、移動端末30(2)はそれをセッション管理部SM(2)に通知する。
【0134】
この場合、セッション管理部SM(2)は、追加されるプロキシ13(3)に接続されるプロキシ13(1),13(2)に対して、プロキシ13(3)の名前と接続ポイントをパラメータとして切替要求を送信する(S34,S35)。切替要求を受信したプロキシ13(1),13(2)は、受信したパラメータとセッション識別子(ID)を用いてプロキシ13(3)の接続ポイントに対して、セッション識別子に対応する通信コネクションを確立する(S36,S37)。
【0135】
その後、プロキシ13(1)はプロキシ13(2)との間の通信コネクションで行っていた通信を全てプロキシ13(3)の通信コネクションに切り替える(S40,S41)。
追加されるプロキシ13(3)には2つの通信コネクションが確立される。このプロキシ13(3)は、通信コネクションの確立時に受信したセッション識別子に基づいて、2つの通信コネクションを関連付け、蓄積転送が可能な状態にする。
【0136】
次に、図35の場合と同様にセッションからプロキシ13(3)を削除する場合について、図54を参照して説明する。
この例では、図35において、クライアントアプリケーション12(2),プロキシ13(2),プロキシ13(3),プロキシ13(1),サーバアプリケーション11(1)の順に通信コネクションが確立され、クライアントアプリケーション12(2)とサーバアプリケーション11(1)との間のセッションが構築されている状態から、クライアントアプリケーション12(2),プロキシ13(2),プロキシ13(1),サーバアプリケーション11(1)の順に通信コネクションが確立されて、クライアントアプリケーション12(2)とサーバアプリケーション11(1)との間にセッションの経路が変更される場合を想定している。
【0137】
すなわち、セッションからプロキシ13(3)を削除するための動作を表している。
エージェントソフトウェアからのプロキシ削除要求を移動端末30(2)が受信すると、移動端末30(2)はそれをセッション管理部SM(2)に通知する。
この場合、セッション管理部SM(2)は、プロキシ13(1),13(2)に対して削除要求を送信する(S51,S52)。
【0138】
プロキシ13(2)は、削除要求を受信すると、セッション識別子を用いてプロキシ13(1)との間でコネクションを確立する。また、プロキシ13(3)との間で行われていた通信を全てプロキシ13(1)との間の通信コネクションに切り替える。
また、プロキシ13(1)が削除要求を受信するとともにプロキシ13(2)から通信コネクションを確立された場合には、プロキシ13(1)はプロキシ13(3)との間の通信コネクションで行われていた通信を全てプロキシ13(2)との間の通信コネクションに切り替える。
【0139】
次に、図37の場合と同様にセッション上のプロキシ13(4),13(5)を置換する場合について、図55を参照して説明する。
この例では、図37において、クライアントアプリケーション12(2),プロキシ13(2),プロキシ13(4),プロキシ13(1),サーバアプリケーション11(1)の順に通信コネクションが確立され、クライアントアプリケーション12(2)とサーバアプリケーション11(1)との間にセッションが構築されている状態から、クライアントアプリケーション12(2),プロキシ13(2),プロキシ13(5),プロキシ13(1),サーバアプリケーション11(1)の順に通信コネクションが確立されて、クライアントアプリケーション12(2)とサーバアプリケーション11(1)との間のセッションの経路が変更される場合を想定している。
【0140】
すなわち、セッション上のプロキシ13(4)をプロキシ13(5)に置換するための動作を表している。
エージェントソフトウェアからのプロキシ置き換え要求を移動端末30(2)が受信すると、移動端末30(2)はそれをセッション管理部SM(2)に通知する。
【0141】
この場合、セッション管理部SM(2)は、通信コネクションを持っているプロキシ13(1),13(2)に対してプロキシ13(5)の名前及び接続ポイントをパラメータとして含む切替要求を送信する(S74,S75)。
切替要求を受信したプロキシ13(1),13(2)は、受信したパラメータに基づいて、プロキシ13(5)の接続ポイントに対してセッション識別子に対応する通信コネクションを確立する。
【0142】
その後、プロキシ13(1)はプロキシ13(4)との間の通信コネクションで行っていた通信を全てプロキシ13(5)との間の通信コネクションに切り替える。
【0143】
同様に、プロキシ13(2)はプロキシ13(4)との間の通信コネクションで行っていた通信を全てプロキシ13(5)との間の通信コネクションに切り替える。
セッションに追加されるプロキシ13(5)は、2つの通信コネクションが確立された後で、コネクション確立時に受信したセッション識別子に基づいて2つの通信コネクションを関連付け、蓄積転送が可能な状態にする。
【0144】
(実施例)
次に、本発明の特徴を含む具体的な実施例について図1〜図29を参照して説明する。
図1はマスター,シャドーエージェントが存在する場合のプロキシの動作を示すフローチャートである。図2はマスター,シャドーエージェントの動作を示すフローチャートである。図3はマスター,シャドーエージェントが利用するサービステーブルの構成例を示す模式図である。図4はシャドーエージェント生成シーケンスの例を示すシーケンス図である。図5はシャドーエージェント生成シーケンスの例を示すシーケンス図である。
【0145】
図6はメッセージ転送シーケンスの例を示すシーケンス図である。図7はマルチキャストに関するプロキシの動作(1)を示すフローチャートである。図8はマルチキャストに関するプロキシの動作(2)を示すフローチャートである。図9はルーチングに関するプロキシの動作(1)を示すフローチャートである。図10はルーチングに関するプロキシの動作(2)を示すフローチャートである。図11はルーチングに関するプロキシの動作(3)を示すフローチャートである。
【0146】
図12はネットワークの構成例を示すブロック図である。図13は各ノードにおけるテーブルの構成例(1)を示す模式図である。図14は各ノードにおけるテーブルの構成例(2)を示す模式図である。図15はサービス提供のための基本通信シーケンスを示すシーケンス図である。図16はサービスの動的な変化例を示すブロック図である。
【0147】
図17はマスター,シャドーエージェントが存在する場合の通信シーケンスを示すシーケンス図である。図18はマルチキャストの通信シーケンスを示すシーケンス図である。図19は分岐テーブルを用いた通信経路の構成例を示すブロック図である。図20はプロキシの基本動作(1)を示すフローチャートである。図21はプロキシの基本動作(2)を示すフローチャートである。図22はプロキシの基本動作(3)を示すフローチャートである。
【0148】
図23はプロキシの機能構成を示すブロック図である。図24はコネクション管理を示すブロック図である。図25はコネクション管理における変化を示す模式図である。図26はノード上の各テーブルの構成を示す模式図である。図27はプロキシ間フレームの構成を示す模式図である。図28は制御コマンドの構成を示す模式図である。図29はプロキシ間メッセージの構成を示す模式図である。
【0149】
ここで想定しているネットワークは、前述のように動的に変化するネットワークであり、サービスを提供している途中でネットワークアドレスが変更されたり通信するノード(通信装置)が変化する可能性がある。
なお、以下の説明で使用される各用語は次のように定義される。
セッションIDはセッションをノードで一意に識別するための識別名であり、ノードIDとノード内番号との組で構成される。また、同一セッションでもノードが異なればセッションIDは異なる。
【0150】
サービスアドレスはプロキシ,アプリケーションを一意に識別する名前である。
ノードIDは、ノードを一意に識別する名前である。
ネットワークアドレスは、ノード間で通信コネクションを形成するのに必要なアドレス(TCP/IPを想定するとIPアドレス)である。
セッションはアプリケーション間で構成される通信を表す。
【0151】
コネクションは、プロキシ間又はアプリケーションとプロキシとの間の通信を表す。
プロキシ間フレームは、サービスに伴いプロキシ間でコネクションを通して送受信されるデータフレームを表す。
プロキシ間メッセージは、テーブルの内容の更新又は検索のためにプロキシ間でやり取りされるメッセージを表す。
【0152】
ここで想定している通信システムの基本的な構成及び動作は次の通りである。
(1)物理的なネットワークの上に、仮想的なネットワークを構成する。
(2)通信はアプリケーション間で行われる。
(3)構成要素はアプリケーション及びプロキシである。アプリケーションはノード上のソフトウェアとして構成されている。
【0153】
(4)セッションはアプリケーション間の通信で構成され、アプリケーション間の通信は複数のプロキシによって中継される。
(5)セッションを構成しているアプリケーションやプロキシはいつでも他のアプリケーション又はプロキシと交換可能であり、その構成は自由に変化する。さらにその際セッションは維持される。
【0154】
(6)プロキシ間での通信はシーケンス番号により送受信が管理されており、プロキシ間の接続(コネクション)が変化した場合(図24,図25のCASE1,CASE2,CASE3の場合)、それまでに受信したシーケンス番号を確認しシーケンス番号が不連続にならないように次に送るべきシーケンス番号をコネクション接続先のプロキシに要求し再送してもらう。これにより、データの欠損なくサービスが継続される。
【0155】
この形態では、図24,図25に示すCASE1,CASE2,CASE3の3種類の移動がネットワーク上で生じる場合を想定している。
具体的なネットワークとしては、図12に示すような構成が想定される。図12の例では7つのノードが互いに接続されている。各々のノードには互いに異なるノードIDが割り当ててある。
【0156】
各ノードに備わったアプリケーション及びプロキシは次の通りである。
ノードID:1001のノード:アプリケーションPA,プロキシPF
ノードID:1002のノード:アプリケーションPC,プロキシPG
ノードID:1003のノード:アプリケーションPB,プロキシPH
ノードID:1004のノード:アプリケーションPD,プロキシPI
ノードID:1005のノード:アプリケーションPL,プロキシPJ
ノードID:1006のノード:アプリケーションPE
ノードID:1007のノード:プロキシPK
各ノードには図26に示すような様々なテーブルが備わっている。代表的なテーブルの内容の概略は次の通りである。
【0157】
1.セッションテーブルSST:セッションIDとサービスアドレスの対応。
2.プロキシルーチングテーブルPRT:サービスアドレスと次ホップのサービスアドレスとの対応、並びにマスターエージェントとシャドーシャドーエージェントとの対応。
3.リソーステーブルRST:ノードIDとサービスアドレスとの対応。
【0158】
4.ロケーションテーブルLCT:ノードIDとネットワークアドレスの対応。
5.分岐テーブルJCT:受信サービスアドレスと送信サービスアドレスの対応。
プロキシ間で転送される各フレームは図27に示すように構成される。すなわち、コマンド,送信元ノードID,送信元セッションID,送信先ノードID,送信先セッションID,送信シーケンス番号,受信シーケンス番号,データ長及びデータが各フレームに含まれている。
【0159】
また、通信を制御するための制御コマンドとして、図28に示す切替要求及び切断要求がある。これらの制御コマンドはプロキシに与えられる。
また、プロキシ間で転送されるメッセージは図29に示すように構成される。すなわち、コマンド,メッセージ長,ホップ数,検索方法及びパラメータがメッセージに含まれている。
【0160】
図23に示すように、各プロキシには主要な構成要素として、プロキシ制御部501,セッション管理部502,キャッシュ管理部503,コネクション管理部504,セッションテーブルSST,プロキシルーチングテーブルPRT,リソーステーブルRST,ロケーションテーブルLCT及び分岐テーブルJCTが備わっている。
【0161】
図23におけるキャッシュ管理部503は、接続コネクション毎にキャッシュを構築する。各キャッシュは、未送信のデータを送信が完了するか又はキャッシュ解放の命令が来るまで蓄積する。各キャッシュは、プロキシに接続されている接続コネクション毎に存在し管理される。特に、マルチキャスト通信では接続コネクション毎に複数のキャッシュが存在することが考えられ、受信したデータは分岐テーブルJCTの記述に従って各キャッシュに分配され送信される。これらのキャッシュは独立に動作するため、送信できない通信コネクションが存在した場合には、その通信コネクションに割り当てられたキャッシュは蓄積状態を維持し、他の送信可能な通信コネクションのキャッシュに蓄積されたデータは読み出されて送信される。
【0162】
図12のネットワークに示された各ノードに備わっている主要な各テーブルの内容の具体例は図13及び図14に示されている。
前述の各基本技術に対応する機能を実現するために、各ノードに設けられるプロキシは図20,図21,図22に示す基本動作を実行する。図20〜図22に示すプロキシの基本動作について以下に説明する。
【0163】
プロキシは、接続フレーム(図27参照)を受信した場合には図20のステップS111からS112の処理に進み、サービス不能フレームを受信した場合にはステップS116からS117に進む。
受信した接続フレームの送信先のセッションID(SID)がヌル(NULL)の場合には初めての接続なのでステップS112からS113に進み、それ自身が属するノード上で一意なセッションIDを生成する。また、次のステップS114でセッションID及び宛先のサービスアドレス(SA)をセッションテーブルSSTに追加する。そして次のステップS115で「接続処理」を実行する。この「接続処理」の内容は図21に示されている。
【0164】
一方、受信した接続フレームの送信先のセッションID(SID)がヌルでなければ、ステップS112からS119に進む。
また、サービス不能フレームを受信した場合には、ステップS117で受信したプロキシとの間のコネクションを切断する。更に、ステップS118で受信したサービス不能フレーム内のサービスアドレスをキーとしてプロキシルーチングテーブルPRTを検索し、該当するサービスアドレスの記載部分に利用不可フラグを立てる。すなわち、そのサービスアドレスのプロキシ又はアプリケーションが利用できない状態にあることを把握する。
【0165】
ステップS119では、送信先セッションIDをキーにセッションテーブルSSTの現宛先サービスアドレス(エンド,エンドのSA)を検索する。
ステップS120では、セッション現宛先SAと接続フレーム宛先SAとを比較する。両者が等しい場合には、接続先の変更はないのでステップS120からS115に進み、異なる場合には接続先が変更されているのでセッションテーブルSSTの宛先SAを新しい宛先SAに変更してからステップS115に進む。
【0166】
図21に示す「接続処理」について説明する。
ステップS131では、宛先SAをキーにプロキシルーチングテーブルPRTを検索し、次ホップのプロキシ(又はアプリケーション)のSAを複数取得する。例えば、図12のネットワークに示すアプリケーションPAが他のアプリケーションPEに対して接続しようとする場合のプロキシPFの動作を想定すると、プロキシPFの次ホップはプロキシPIになる。従ってプロキシPIのSAをステップS131で取得する。
【0167】
また、ステップS131では取得したSAの中にコネクション確立済みのプロキシが存在するか否かを識別する。コネクション確立済みのプロキシが存在する場合にはステップS131からS132に進み、存在しない場合にはステップS133に進む。
ステップS132では、接続フレームを送ってきたプロキシと次のプロキシとの間でデータフレームの中継転送を開始する。
【0168】
ステップS133では、ステップS131で取得したSAの中に自プロキシのSAがあり既に宛先SAのアプリケーションへのコネクションがあるか否かを識別する。yesであればステップS133からS134に進み、noであればS135に進む。
ステップS134では、接続フレームを送ってきたプロキシと次の宛先のアプリケーションとの間でデータフレームの中継転送を開始する。
【0169】
ステップS135では、既に次ホップとは違うコネクションが存在するか否かを識別する。存在する場合には、次のステップS136でそのコネクションを切断する。
接続が完了しない場合には、図21におけるステップS137以降の処理は全ての次ホップSAについて繰り返し実行される。
【0170】
ステップS139では、未処理の次ホップSAを1つ選択する。ステップS140では選択されたSAを自ノードのプロキシのSAと比較する。一致する場合にはステップS140からS142に進み、一致しなければS141に進む。
ステップS141では「プロキシへの接続処理」を実行し、ステップS142では「アプリケーションへの接続処理」を実行する。これらの処理の内容は図22に示されている。
【0171】
また、全ての次ホップSAについて接続を試みた後でも依然として接続が完了しない場合には、ステップS137からS138に進み、サービス不能フレームを到来したフレームとは逆方向のコネクションに向かって通知する。
次に、図22を参照して説明する。
「プロキシへの接続処理」においては、最初のステップS151で次ホップのSAをキーにリソーステーブルRSTを検索し、次ホップ先のノードIDを取得する。
【0172】
次のステップS152では、次ホップのプロキシのあるノードIDをキーにロケーションテーブルLCTを検索し、接続先のIPアドレスを取得する。また、ステップS153ではロケーションテーブルLCTから自ノードのIPアドレスを取得する。
ステップS154では、得られたIPアドレスを用いて次ホップSAのプロキシに接続フレームを送信して接続する。
【0173】
「アプリケーションへの接続処理」においては、最初のステップS156でリソーステーブルRSTを宛先SAをキーとして検索しノードIDを取得する。
次のステップS157では、ノードIDをキーとしてロケーションテーブルLCTを検索し、接続先のIPアドレスを取得する。また、ステップS158ではロケーションテーブルLCTから自ノードのIPアドレスを取得する。
【0174】
ステップS159では、得られたIPアドレスを用いて宛先SAに接続する。
次に、図15に示す基本通信シーケンスについて説明する。図15に示すPA,PF,PI,PD,PK,PH,PBは、図12に示された各ノードのアプリケーション又はプロキシを表している。これらのアプリケーション及びプロキシはサービスアドレスにより特定される。
【0175】
図15の例では、最初にアプリケーションPAがプロキシPFに接続し、プロキシPFが接続フレームを次ホップのプロキシPIに送信している。これにより、プロキシPIはアプリケーションPDに接続する。
従って、アプリケーションPAとアプリケーションPDとの間にセッションが形成され、そのセッションを用いてサービス提供が開始される。この場合、通信経路上のプロキシPF,PIは通信を中継する。
【0176】
例えば、ノードの移動,ノードのネットワークからの離脱などが発生すると、ノードのネットワークアドレスの変化又は通信デバイスの利用可否の変化が生じる。これは図24,図25に示すCASE3に該当するので、図25に示すようにプロキシのSA又はノードIDとネットワークアドレスとの対応が変わり、コネクションを構成するリンクが変わる。
【0177】
従って、図15に示すCASE3の切替要求に対しては、プロキシPF,PIの間で通信路の変更が生じるが、変更の後でもプロキシPF,PIを中継してアプリケーションPAとアプリケーションPDとの間でサービス提供が継続される。
一方、ユーザが利用しているノードを変更すると、利用するアプリケーションが変わる。これは図24,図25に示すCASE1に該当するので、図25に示すようにセッションIDとエンド−エンドのアプリケーション(AP)のSAとの対応が変わる。
【0178】
図15においては、プロキシPFに対する切替要求(CASE1)に対して、プロキシPFが接続フレームをプロキシPKに送信し、それを受信したプロキシPKはプロキシPHに対して接続フレームを転送している。
従って、プロキシPHがアプリケーションPBに接続し、アプリケーションPAとアプリケーションPBとの間にセッションが形成され、そのセッションを用いてサービス提供が継続される。
【0179】
次に、シームレスなサービス提供のためにネットワークの形態の変化に応じて動的に生成されるアプリケーションプログラム(サーバ)の複製がネットワーク上に配置される場合について説明する。
ここでは、アプリケーションプログラムのモジュールをアプリケーションエージェントと呼ぶ。また、1つのアプリケーションエージェントからその複製を作成した場合に、複製により新たに生成されたアプリケーションエージェントをシャドーエージェントと呼び、複製元のアプリケーションエージェントをマスターエージェントと呼ぶ。
【0180】
また、1つのマスターエージェントから複製されたシャドーエージェントは、マスターエージェントのサービス提供機能の一部分もしくは全てを備えるように構成される。また、1つのマスターエージェント及びそこから複製された全てのシャドーエージェントを1つのグループとして管理する。そのグループをサービスグループと呼ぶ。
【0181】
更に、この形態ではマスターエージェント,シャドーエージェントについて次のように扱う。
(1)シャドウエージェントはマスターエージェントのサービスの全て又は一部を行うことができるように構成する。
(2)マスターエージェントがネットワークの状態やリソースの競合によって利用できない場合には、シャドーエージェントを利用してマスターエージェントと同じサービスを提供する。また、マスターエージェントとシャドーエージェントとの切り替えは、通信中であっても動的に行う。
【0182】
(3)アプリケーションエージェントとシャドーエージェント、マスターエージェント間の通信もプロキシによる中継によって行う。ノードの変更が発生した場合には、プロキシを介して各エージェントを切り替え、継続的にサービスを提供する。
(4)シャドーエージェントは自エージェントで十分にサービスを達成できない場合には、他のシャドーエージェント又はマスターエージェントに対して接続し自エージェントでは中継を行う。これにより、あたかも自エージェントでサービスを行っているように見せることができる。また、シャドーエージェントと他のシャドーエージェント又はマスターエージェント間の通信はプロキシにより中継する場合もあり、ネットワークアドレスの変更や、ノードの変更が発生した場合においても、継続的にサービスを提供する。このような機能を実現するために、サービスの一部しか行うことのできないシャドーエージェントについては、自分の提供できるサービスと同じサービスグループに属する他のエージェントに接続しないと提供できないサービスとを識別するためにサービステーブルASTを保持する。
【0183】
(5)マスターエージェントとシャドーエージェントの対応関係は各ノードのプロキシルーチングテーブルPRTに保持する。
(6)シャドーエージェントが作成された場合、マスターエージェント又はシャドーエージェント又は双方のエージェントが存在するノードのロケーションテーブルLCT、プロキシルーチングテーブルPRT、リソーステーブルRSTに、相手のエージェントのノードID,ネットワークアドレス,エージェントのサービスアドレス,シャドー/マスターの対応関係を記述する。
【0184】
(7)マスタエージェントが存在するノードのネットワークアドレスが変更された場合には、同じサービスグループに存在するシャドーエージェントをプロキシルーチングテーブルPRTから得た後、そのシャドーエージェントの属するノードにネットワークアドレスの変更を通知する。通知されたノードはロケーションテーブルLCTを変更する。これにより、マスターエージェントの位置が変化した場合においても把握できる。
【0185】
(8)シャドーエージェントが存在するノードのネットワークアドレスが変更された場合には、同じサービスグループに存在するマスターエージェントをプロキシルーチングテーブルPRTから得た後、そのマスターエージェントの属するノードにネットワークアドレスの変更を通知する。通知されたノードはロケーションテーブルを変更する。これによりシャドーエージェントの位置が変化した場合においても把握できる。
【0186】
図26に示すようにプロキシルーチングテーブルPRTにはマスターサービスアドレス(マスターエージェントのSA)とシャドーサービスアドレス(シャドーエージェントのSA)との対応関係が記述されている。
例えば、図13に示すノードID:1001のプロキシルーチングテーブルPRTに記述されている「PE:PD(S)」及び「PE:PB(S)」は、それぞれ図12に示されたアプリケーションPD及びPBがマスターエージェントである同じアプリケーションPEから複製されたシャドーエージェントであることを表している。
【0187】
従って、プロキシルーチングテーブルPRTを検索することにより、同じサービスグループに属するマスターエージェントとシャドーエージェントとの関係を調べることができる。
一方、サービステーブルASTには例えば図3に示すような情報が記述される。この例では、同じサービスグループに属するマスターエージェントは
http://hogehoge.com/undoukai.mpg
http://hogehoge.com/ensoku.mpg
http://hogehoge.com/yuuenchi.mpg
のURLでそれぞれ特定される3つの映像サービスを提供する機能を備え、このサービステーブルASTを参照するシャドーエージェントは「yes」で示された2つの映像サービスだけを提供できる場合を表している。このシャドーエージェントは「no」で示された
http://hogehoge.com/ensoku.mpg
の映像サービスを提供できないが、この映像サービスについては同じサービスグループに属する他のシャドーエージェント又はマスターエージェントを利用すれば提供できる。
【0188】
ネットワーク上にマスターエージェント及びシャドーエージェントが存在する場合には、プロキシは図1に示す動作を実行する。プロキシの基本的な動作は既に説明した図20〜図22と同じであるが、図21のステップS131が図1のステップS131Bのように変更されている。
図1のステップS131Bにおいては、宛先SAのマスターエージェント又はシャドーエージェントが存在する場合には、該当するエージェントのSAをキーにプロキシルーチングテーブルPRTを検索し、次ホップのサービスを得る。但し、宛先はキーとしたエージェントのSAとする。なお、利用不可フラグが立っている情報については参照しない。
【0189】
これ以外のプロキシの動作は図20〜図22と同じである。
一方、マスターエージェント及びシャドーエージェントは図2に示す処理を実行する。図2の処理について説明する。
ステップS151で自エージェント(マスターエージェント又はシャドーエージェント)がユーザからのデータを受信すると、次のステップS152でサービステーブルASTを参照し、受信したデータに該当するサービスを提供する機能が自エージェントに備わっているか否かを調べる。
【0190】
サービスを提供する機能が自エージェントに備わっている場合には、ステップS152からS153に進み、自エージェントがサービスを提供するための処理を実施する。
サービスを提供する機能が自エージェントに備わっていない場合には、ステップS152からS154に進む。ステップS154では、プロキシルーチングテーブルPRTを参照し同じサービスグループに属する他のマスターエージェント又はシャドーエージェントを検索する。
【0191】
検索に成功した場合にはステップS154からS155に進み、見つかった他のエージェントに接続する。また、該当するエージェントが見つからない場合にはステップS156に進みサービス不能を通知する。
【0192】
ステップS157では、ユーザから受信したデータフレームをステップS155で接続した他のエージェントに対して転送する。
ステップS155で接続した他のエージェントに該当するサービスを提供する機能が備わっている場合には、そのエージェントの処理によってユーザに対するサービスが提供されるので、ステップS158からS159に進む。
【0193】
ステップS155で接続した他のエージェントに該当するサービスを提供する機能が備わっていない場合には、サービスは提供されないのでステップS158からS154に進み再びその他のエージェントをプロキシルーチングテーブルPRTから検索する。
ステップS159では、データフレームの中継伝送を実施する。すなわち、ユーザのデータを中継するプロキシとステップS155で接続した他のエージェントとの間でデータフレームを中継する。
【0194】
これにより、自エージェント自身はデータフレームの中継を行うだけであるが、接続した他のエージェントがサービスを提供するので、サービスの提供を受けるユーザからみると自エージェントがサービスを提供しているように見える。
新たなシャドーエージェントを生成する場合には、図4及び図5に示すような様々なシーケンスを実行することができる。
【0195】
すなわち、複製を生成した直後に、複製元のマスターエージェント及び/又は複製されたシャドーエージェントがプロキシルーチングテーブルPRTにマスターエージェントとシャドーエージェントとの対応関係を記述する。
これにより、プロキシルーチングテーブルPRTを参照することにより、生成されたシャドーエージェントとマスターエージェントとの関係を把握できるので、シャドーエージェントを利用できる。
【0196】
また、複製元のマスターエージェント及び/又は複製されたシャドーエージェントが自ノードのロケーションテーブルLCT及びリソーステーブルRSTに相手ノードのネットワークアドレス(NA),ノードID,エージェントのサービスアドレス(SA)を記述する。
これにより、生成されたシャドーエージェントがマスターエージェントと異なるノードに配置された場合であっても、シャドーエージェントを検索して利用することができる。
【0197】
一方、マスターエージェント又はシャドーエージェントが動作しているノードにおいてネットワークアドレス(NA)が変化した場合には、図6に示すようなメッセージ転送シーケンスを実行する。
すなわち、マスターエージェントが動作しているノードにおいてネットワークアドレスが変化した場合には、ステップS471でシャドーエージェントを検索し、同じサービスグループの全てのシャドーエージェントに対してNA更新メッセージを送信する。メッセージを受信した各シャドーエージェントは、メッセージに従ってロケーションテーブルLCTの内容を変更する。
【0198】
また、シャドーエージェントが動作しているノードにおいてネットワークアドレスが変化した場合には、ステップS481でマスターエージェントを検索し、同じサービスグループのマスターエージェントに対してNA更新メッセージを送信する。メッセージを受信したマスターエージェントは、メッセージに従ってロケーションテーブルLCTの内容を変更する。
【0199】
マスターエージェント及びシャドーエージェントを利用することにより、ネットワークの動的な変化に対して例えば図16に示すように通信経路の構成を変更し、サービスの提供を継続することができる。
ネットワーク上にマスターエージェント及びシャドーエージェントが存在する場合には、例えば図17に示すような通信シーケンスが実行される。
【0200】
図17の例では、ステップS701でアプリケーションPAとアプリケーション(マスターエージェント又はシャドーエージェント)PDとの間でサービス提供の通信を行っている状態からアプリケーションPDがサービス提供不能になると、アプリケーションPDがプロキシPIに接続し、プロキシPIが接続フレームをプロキシPJに送信し、プロキシPJはアプリケーション(マスターエージェント又はシャドーエージェント)PLに接続するので、アプリケーションPD−PL間が接続され、アプリケーションPLによってサービスが提供される。
【0201】
また、ステップS702でアプリケーションPAとアプリケーションPLとの間でサービス提供の通信を行っている状態からアプリケーションPLがサービス提供不能になると、アプリケーションPDがプロキシPIに接続し、プロキシPIが接続フレームをプロキシPJに送信し、プロキシPJはアプリケーション(マスターエージェント又はシャドーエージェント)PEに接続するので、アプリケーションPD−PE間が接続され、アプリケーションPEによってサービスが提供される。
【0202】
なお、次のような条件の検出によってサービス提供不可能な状態を認識できる。例えば、サービス提供先にアクセスしたが応答なしの場合、サービス提供先からの通知(明示的なものやTCPレイヤの接続終了メッセージなどを含む)を検出した場合、要求したサービスがサービステーブルでサービス可能になっていなかった場合などがある。
【0203】
ステップS703では、サービス提供を継続したままアプリケーションPDはノードを離脱することができる。
また、プロキシPF,PI,PJを経由してアプリケーションPA,PEの間でサービスを提供している途中で、プロキシPIが離脱するようなネットワークの変化が発生すると(S705)、プロキシPFがプロキシPJに対して切替通知を送信する。この切替通知によってプロキシPFとプロキシPJとの間の通信経路からプロキシPIが離脱し、そのままアプリケーションPA,PEの間のサービス提供が継続される。
【0204】
更に、サービスを提供している途中でプロキシPFに切替要求が発生すると(S706)、プロキシPFの送信した接続フレームがプロキシPKに転送され、プロキシPKの送信した接続フレームがプロキシPHに転送され、プロキシPHはアプリケーションPBと接続する。従って、アプリケーションPAとアプリケーションPBとの間にプロキシPF,PK,PHを介して通信経路が形成され、アプリケーションPAとアプリケーションPBとの間の通信にサービスが移動する。
【0205】
すなわち、アプリケーションPAとアプリケーションPEとの間に形成されたセッション(アプリケーション間の1つの通信サービス)を、アプリケーションPAとアプリケーションPBとの間に形成されたセッションに切り替える。この場合、切替を行うプロキシPFは、アプリケーションPEで行われていた通信サービスが中断された地点(データ転送なら転送したバイト数)の状態を切替先のアプリケーションPBに通知する。これにより、アプリケーションPBは中断されたアプリケーションPEの通信サービスを引き継ぐことができる。
【0206】
また、切替を行うプロキシPFは、切替元のアプリケーションPEにつながるコネクションの連鎖の中でプロキシPFに隣接して接続されているプロキシPJ(途中に他のプロキシが存在しない場合にはアプリケーションPE)との間に形成されている通信コネクションを、切替先のアプリケーションPBにつながるコネクションの連鎖の中でプロキシPFに隣接して接続されているプロキシPK(途中に他のプロキシが存在しない場合にはアプリケーションPB)との間に形成されている通信コネクションに切り替える。更に、切り替えた通信コネクションをアプリケーションPA(途中に他のプロキシが介在する場合にはPFに隣接するプロキシ)と直接接続されている通信コネクションと結び付け、各通信コネクションの間で通信を中継する。これによりサービスを継続できる。
【0207】
また、通信サービスの提供に利用している経路上に存在する2つのプロキシ(例えばPK,PH)の間を接続するリンクが、例えば無線LANから有線LANに切り替わったような場合には、2つのプロキシPK,PHの間の通信コネクションを再構築する(各テーブルの内容を更新したりネットワークアドレスなどを変更する)ことで通信サービスを継続できる。
【0208】
次に、プロキシがマルチキャストのデータ配信を制御する場合について説明する。
プロキシが備わったノードには、図13,図14,図23,図26に示すような分岐テーブルJCTが備わっている。この分岐テーブルJCTには、図26に示すようにセッションID毎に区別して入力側サービスアドレス(SA)と出力側サービスアドレスとの対応関係が記述される。
【0209】
すなわち、プロキシは入力側サービスアドレスから入力されたデータフレームを出力側サービスアドレスのプロキシ又はアプリケーションに転送するようにデータの入出力を制御する。
なお、分岐テーブルJCTには入力側サービスアドレス及び出力側サービスアドレスを複数記述することができる。
【0210】
分岐テーブルJCTを用いてマルチキャストの通信経路を制御する場合の具体例について、図19を参照して説明する。図19に示す各分岐テーブルJCTは、矢印の左側及び右側が、それぞれ入力側サービスアドレス及び出力側サービスアドレスを表している。
図19(a)におけるプロキシPGは、分岐テーブルJCTに従ってプロキシPDから入力されたデータフレームをプロキシPEに出力し、プロキシPDから入力されたデータフレームをプロキシPFに出力し、プロキシPEから入力されたデータフレームをプロキシPDに出力し、プロキシPFから入力されたデータフレームをプロキシPDに出力する。
【0211】
このため、図19(a)の例ではアプリケーションPAから送出されたマルチキャストのデータフレームはプロキシPDを介してプロキシPGに入力され、プロキシPGの部分で2系統に分岐され、プロキシPE,PFにそれぞれ送出される。これにより、アプリケーションPAから送出されたデータフレームは2つのアプリケーションPB,PCにそれぞれ届けられる。
【0212】
一方、アプリケーションPBから送出されたデータフレームはアプリケーションPAのみに届き、アプリケーションPCから送出されたデータフレームもアプリケーションPAのみに届く。
また、図19(b)におけるプロキシPGは、分岐テーブルJCTに従ってプロキシPDから入力されたデータフレームをプロキシPEに出力し、プロキシPDから入力されたデータフレームをプロキシPFに出力し、プロキシPEから入力されたデータフレームをプロキシPDに出力し、プロキシPFから入力されたデータフレームをプロキシPDに出力し、プロキシPEから入力されたデータフレームをプロキシPFに出力し、プロキシPFから入力されたデータフレームをプロキシPEに出力する。
【0213】
このため、図19(b)の例ではアプリケーションPAから送出されたマルチキャストのデータフレームはプロキシPDを介してプロキシPGに入力され、プロキシPGの部分で2系統に分岐され、プロキシPE,PFにそれぞれ送出される。
また、アプリケーションPBから送出されたマルチキャストのデータフレームはプロキシPEを介してプロキシPGに入力され、プロキシPGの部分で2系統に分岐され、プロキシPD,PFにそれぞれ送出される。
【0214】
また、アプリケーションPCから送出されたマルチキャストのデータフレームはプロキシPFを介してプロキシPGに入力され、プロキシPGの部分で2系統に分岐され、プロキシPD,PEにそれぞれ送出される。
従って、プロキシが配置された各ノードの分岐テーブルJCTの内容を書き換えるだけで、マルチキャストのデータ配信先を制御することができる。
【0215】
また、例えばプロキシPG,PDの間の通信リンクが一定時間途切れた場合には、プロキシPGは分岐テーブルに基づいて中継する際に、プロキシPDへの送信データは内部のキャッシュに蓄積しておき、アプリケーションPBとアプリケーションPCとの間の通信のみを中継する。プロキシPG,PDの間のリンクが再構築され、通信コネクションが再構築された場合には、プロキシPGは内部のキャッシュに蓄積されているデータを読み出して送信し、3つのアプリケーションPA,PB,PCの間のマルチキャスト通信サービスを継続する。
【0216】
また、通信の途切れたプロキシPDの代わりとなる他のプロキシPxが存在する場合には、プロキシPGはプロキシPDとの間の通信コネクションをプロキシPxへの通信コネクションに変更し、プロキシPxを介してアプリケーションPAとの間の通信路を確保する。この場合、プロキシPGはプロキシPxとの間の通信コネクションを、アプリケーションPB又はそれに続く通信コネクションの連鎖の中でプロキシPGと直接接続されているプロキシPEとの通信コネクション、並びにアプリケーションPC又はそれに続く通信コネクションの連鎖の中でプロキシPGと直接接続されているプロキシPFとの通信コネクションと結び付け、分岐テーブルに基づいて通信の中継を行う。
【0217】
図19(a)のような通信経路を形成することにより、アプリケーションPAを放送型サーバとする通信サービスを提供することが可能になる。また、図19(b)のような通信経路を形成することにより、チャット通信のようなサービスの提供が可能になる。
分岐テーブルJCTを用いてマルチキャストを制御する場合のプロキシの動作は図7及び図8に示す通りである。まず図7を参照してマルチキャストに特有な動作を説明する。
【0218】
ステップS201でマルチキャストの接続フレームを受信すると、ステップS202に進み複数の宛先SAが含まれているか否かを識別する。複数の宛先SAが含まれているマルチキャストの接続フレームを受信した場合には、所定の処理を行った後、ステップS206以降の処理に進む。ステップS206以降では、マルチキャストの接続フレームで指定された複数の宛先SAのそれぞれについて接続処理を実行する。
【0219】
この接続処理の内容は図8に示されている。図8の処理について説明する。
ステップS221では、宛先SAをキーにプロキシルーチングテーブルPRTを検索し、次ホップのSAを複数取得する。
ステップS222では取得したSAの中にコネクションが確立済みのプロキシが存在するか否かを識別する。
【0220】
それが存在する場合には、ステップS224で分岐テーブルJCTに前ホップSA(入力側サービスアドレス)及び次ホップSA(出力側サービスアドレス)を追加する。
また、次のステップS225では接続フレームを送ってきたプロキシと次のプロキシとの間でデータフレームの中継転送を開始する。ステップS226では、現在処理している宛先SAを含むマルチキャスト接続フレームを送信する。
【0221】
一方、ステップS223ではステップS221で得られたSAの中に自プロキシのSAがあり宛先SAのアプリケーションへのコネクションがあるか否かを識別する。yesであればステップS227に進み、分岐テーブルJCTに前ホップSA(入力側サービスアドレス)及び次ホップSA(出力側サービスアドレス)を追加する。
【0222】
次のステップS228では、接続フレームを送ってきたプロキシと次の宛先のアプリケーションとの間でデータフレームの中継転送を開始する。
ステップS221で得られたSAの中で、コネクションが確立していない宛先SAについては、ステップS229以降の処理において「プロキシへの接続」もしくは「アプリケーションへの接続」を実行してコネクションを確立する。
【0223】
また、接続に成功した場合には、ステップS234で分岐テーブルJCTに前ホップSA(入力側サービスアドレス)及び次ホップSA(出力側サービスアドレス)を追加する。
マルチキャストを処理する場合には、例えば図18に示す通信シーケンスが実行される。すなわち、アプリケーションPCとアプリケーションPDとの通信にもう1つのアプリケーションPAが加わる場合には、サービスの途中でアプリケーションPAがプロキシPFに接続し、プロキシPFがプロキシPIに接続フレームを送る。これにより、プロキシPIのノード上の分岐テーブルJCTが変更され、プロキシPIの分岐処理によってアプリケーションPAにもデータが配信される。
【0224】
また、アプリケーションPDが2つのアプリケーションPA,PCに接続する場合には、アプリケーションPDがプロキシPIに接続し、プロキシPIが2つのプロキシPF,PGにそれぞれ接続フレームを送り、プロキシPFはアプリケーションPAに接続し、プロキシPGはアプリケーションPCに接続する。これにより、3つのアプリケーションPD,PA,PCの間でマルチキャストのデータ配信サービスを行うことができる。
【0225】
次に、ルーチングに関する具体的な制御について説明する。この形態では各ノードにプロキシルーチングテーブルPRT,リソーステーブルRST,ロケーションテーブルLCTが備わっているが、ネットワークの変化に対応するために、自ノードのテーブルで取得できない情報については他のノードに備わったテーブルを利用して検索する。また、自ノードのネットワークアドレスなどが変化した場合には、それに伴うテーブルの更新を他のノードに通知する。
【0226】
プロキシは図9,図10及び図11に示す動作を行う。具体的な動作は次の通りである。
他ノードのテーブルを検索する場合には、リソーステーブルRST,ロケーションテーブルLCTに記述されているノードIDを持つノード間で検索を実行する。
【0227】
他ノードのテーブルを検索する場合には、プロキシはリソーステーブルRST又はロケーションテーブルLCTに記載されているノードに対し、検索メッセージを発行する(S305)。
検索メッセージを発行する場合又は検索メッセージを受信したが、該当する検索結果を持っていなかった場合には、ステップS304以降の処理を行う。
【0228】
検索メッセージに該当する結果を持っていた場合には、検索メッセージを発行したノードに対してステップS306で検索の結果を通知する。
また、同一の検索メッセージを複数受信した場合には最初の検索メッセージに対してのみ処理をおこない、残りは無視する。
実際の検索や情報の通知の方法には次に示すようにいくつかの種類がある。転送されるメッセージには、検索あるいは通知の方法を指定するための情報が含まれているので、メッセージを受信したプロキシは、ステップS305又はS316においてメッセージ内で指定された方法に従ってメッセージの転送を行う。
【0229】
(方法(1))ホップ数制限による検索,通知:メッセージを発行するノードは最大のホップ数を定める。メッセージを受信したノードはホップ数を1つ減じ、ホップ数が0でなかったら、リソーステーブルRST又はロケーションテーブルLCTに記載されているノードに対しさらにメッセージを送信する。
(方法(2))ホップ致制限と送信ノード制限による検索,通知:方法(1)に加え、各ノードで同一メッセージを送信するノードを一定数以内に制限する。
【0230】
(方法(3))ホップ数制限と検索済みノード情報による検索,通知:方法(1)に加え、メッセージが通ってきたノードの履歴をそのメッセージに含めて送信する。メッセージを受信したノードは、そのメッセージが既に通過したノードに対してはメッセージの転送を行わない。
【0231】
(方法(4)) ホップ数制限とノード間の類似度又は重要度情報を用いた検索,通知:方法(1)に加え、リソーステーブルRST又はロケーションテーブルLCTに、重要度又は類似度に関する項目を加え、重要度,類似度の高いノードに対してだけメッセージを送信する。この場合の重要度は、該当するノードとの通信頻度によって増減する。増減する割合は増減率による。類似度は、各ノード間リソーステーブルRST又はロケーションテーブルLCTに記載のノードがどのぐらいの割合で重複しているかを表す。
【0232】
一方、各ノードを構成する通信装置における各テーブルの記憶容量には限りがある。また、大容量の記憶装置を備えると通信装置のコストが高くなる。従って、ルーチングの効率が低下しないように配慮しながら各テーブルに保持する情報の容量を制限する必要がある。
そこで、この形態ではリソーステーブルRST又はロケーションテーブルLCTに重要度及び増減率の項目を加える。この重要度は該当するノードとの通信頻度によって増減する(S325,S327)。増減する割合は増減率による。
【0233】
そして、テーブルの容量が各ノードによって予め決められた容量を超えた場合には、ステップS322で重要度の低いノードの情報から優先的に削除し、テーブル容量が規定以内におさまるように管理する。
この形態では、ルーチングにおけるノード間の距離は物理的な距離とは異なり、特定のノードと他の特定のノードとがしばしば通信を行うといった、ユーザの利用頻度や使いやすさといった尺度が非常に重要になる。
【0234】
ところで、現在、多くの企業や機関ではネットワーク層(IPレベル)の通信を遮断するファイアウォールが設置されているが、本発明のプロキシで構成される通信ネットワークは、このファイアウォールを超えて通信することが可能である。
ファイアウォールを超える通信を可能にするための具体的な方法は次の通りである。
【0235】
(1)プロキシをファイアウォールとともに設置する。
(2)ファイアウォールを超えることができる設定になっているHTTPなどのトランスポートプロトコルを用いてHTTPプロキシ等(本発明のプロキシとは全く別のもの)を通過することで、プロキシ間の通信を実現する。
【0236】
【発明の効果】
本発明においては、シャドーエージェントはマスターエージェントの全ての機能を持つ必要はなく、例えば同じサービスグループの他のエージェントヘのインターフェースを持つだけでもよい。従って、マスターエージェントの無駄な複製処理を減少させるとともに、能力の低いノードにあるエージェントにおいてもその能力にあった役割を担わせることが可能である。
【0237】
また、シャドーエージェントは不足している機能を所属しているサービスグループの他のシャドー又はマスターエージェントに問い合わせることで機能を補完するすることができる。その場合、機能補完を受けたシャドーはあたかも自身でサービスを行っているように振舞う。従って、通信相手のクライアントアプリケーションはサービスグループ内の通信に関して関与する必要がないし、マスターエージェントの複製度が低いシャドーエージェントにアクセスしても、シャドーエージェントがサービスグループに属する他のエージェントに自律的に問い合わせてサービスを提供するため、その時のネットワークの状態に応じて最善のサービスを享受することが可能である。
【0238】
また、ネットワークの状態に応じて最善のサービスを提供するこが可能であり、サービスグループ内で処理を分散することもできる。それぞれのエージェント間の通信にはプロキシを用いた中継を用いることができ、通信中にネットワークアドレスの変更,ノードの変更のようなネットワークの動的な変更を吸収し、サービスを継続することができる。
【0239】
また、現在、多くの企業や機関ではネットワーク層(IPレベル)の通信を遮断するファイアウォールが設置されているが、本発明のようなプロキシで構成される通信ネットワークでは、ファイアウォールを超えて動作することが可能である。また、このファイアウォールがプロキシで構成されるネットワークの通信を許したとしても、ネットワーク層の通信に比べて通信方法や手順が限定されるため、一定のセキュリティを確保しつつ、ユーザの利便性を向上させることができる。
【図面の簡単な説明】
【図1】マスター,シャドーエージェントが存在する場合のプロキシの動作を示すフローチャートである。
【図2】マスター,シャドーエージェントの動作を示すフローチャートである。
【図3】マスター,シャドーエージェントが利用するサービステーブルの構成例を示す模式図である。
【図4】シャドーエージェント生成シーケンスの例を示すシーケンス図である。
【図5】シャドーエージェント生成シーケンスの例を示すシーケンス図である。
【図6】メッセージ転送シーケンスの例を示すシーケンス図である。
【図7】マルチキャストに関するプロキシの動作(1)を示すフローチャートである。
【図8】マルチキャストに関するプロキシの動作(2)を示すフローチャートである。
【図9】ルーチングに関するプロキシの動作(1)を示すフローチャートである。
【図10】ルーチングに関するプロキシの動作(2)を示すフローチャートである。
【図11】ルーチングに関するプロキシの動作(3)を示すフローチャートである。
【図12】ネットワークの構成例を示すブロック図である。
【図13】各ノードにおけるテーブルの構成例(1)を示す模式図である。
【図14】各ノードにおけるテーブルの構成例(2)を示す模式図である。
【図15】サービス提供のための基本通信シーケンスを示すシーケンス図である。
【図16】サービスの動的な変化例を示すブロック図である。
【図17】マスター,シャドーエージェントが存在する場合の通信シーケンスを示すシーケンス図である。
【図18】マルチキャストの通信シーケンスを示すシーケンス図である。
【図19】分岐テーブルを用いた通信経路の構成例を示すブロック図である。
【図20】プロキシの基本動作(1)を示すフローチャートである。
【図21】プロキシの基本動作(2)を示すフローチャートである。
【図22】プロキシの基本動作(3)を示すフローチャートである。
【図23】プロキシの機能構成を示すブロック図である。
【図24】コネクション管理を示すブロック図である。
【図25】コネクション管理における変化を示す模式図である。
【図26】ノード上の各テーブルの構成を示す模式図である。
【図27】プロキシ間フレームの構成を示す模式図である。
【図28】制御コマンドの構成を示す模式図である。
【図29】プロキシ間メッセージの構成を示す模式図である。
【図30】プロキシ及びアプリケーションを切り替える場合の制御シーケンスを示すシーケンス図である。
【図31】プロキシ及びアプリケーションを切り替える場合の通信経路の例を示すブロック図である。
【図32】セッションにプロキシを追加する場合の制御シーケンスを示すシーケンス図である。
【図33】セッションにプロキシを追加する場合の通信経路の例を示すブロック図である。
【図34】セッションからプロキシを削除する場合の制御シーケンスを示すシーケンス図である。
【図35】セッションからプロキシを削除する場合の通信経路の例を示すブロック図である。
【図36】セッション上のプロキシを置換する場合の制御シーケンスを示すシーケンス図である。
【図37】セッション上のプロキシを置換する場合の通信経路の例を示すブロック図である。
【図38】通信システムの構成例を示すブロック図である。
【図39】移動端末の構成例を示すブロック図である。
【図40】サービス管理部SRが保持する情報の例を示す模式図である。
【図41】位置管理部LRが保持する情報の例を示す模式図である。
【図42】セッション管理部SMが保持する情報の例を示す模式図である。
【図43】通信システムの構成例を示すブロック図である。
【図44】ネットワークの構成例を示すブロック図である。
【図45】ノード及びサービスの移動モデルを示すブロック図である。
【図46】端末の移動時の位置情報更新手順を示すシーケンス図である。
【図47】位置情報更新命令の発行数を示すグラフである。
【図48】位置検索成功率を示すグラフである。
【図49】位置検索成功率を示すグラフである。
【図50】ネットワークの構成例を示すブロック図である。
【図51】サービスの移動例(1)を示すシーケンス図である。
【図52】サービスの移動例(2)を示すシーケンス図である。
【図53】セッションにプロキシを追加する場合の簡略化された制御シーケンスを示すシーケンス図である。
【図54】セッションからプロキシを削除する場合の簡略化された制御シーケンスを示すシーケンス図である。
【図55】セッション上のプロキシを置換する場合の簡略化された制御シーケンスを示すシーケンス図である。
【符号の説明】
1,3 アプリケーション
2 プロキシ
4 ノード
5 ブラウザ
6 プロキシ
7 Webサーバ
8 ノード
9 データベース
10 ソフトウェア
11 サーバアプリケーション
12 クライアントアプリケーション
13 プロキシ
14 エージェント
15 リンク切替部
16,17,18 リンク
21 イーサネット(登録商標)通信アダプタ
22 無線LANアダプタ
23 PHS通信アダプタ
30 移動端末
40 ネットワーク
51,52,53 サブネットワーク
54 広域ネットワーク
55,59,60,61,66,67 移動端末
56,62 固定端末
57,58,64,65 基地局
63 TAP
101,102 アプリケーション
103 セッション
104,105,106 プロキシ
107,108,109,110 通信コネクション
LR 位置管理部
SM セッション管理部
SR サービス管理部
501 プロキシ制御部
502 セッション管理部
503 キャッシュ管理部
504 コネクション管理部
505 パス管理部
506 リンク管理部
507 通信デバイス
PRT プロキシルーチングテーブル
RST リソーステーブル
LCT ロケーションテーブル
JCT 分岐テーブル
SST セッションテーブル
AST サービステーブル
Claims (12)
- 所定のサービスを提供するプログラムである複数のアプリケーションエージェントと、通信を中継する複数のプロキシと、それらを接続可能なネットワークとが設けられた通信システムの制御に用いる通信コネクション確立方法であって、
マスターエージェントとなる1つのアプリケーションエージェントから複製され、前記マスターエージェントが提供するサービスの少なくとも一部の機能を備えるシャドーエージェントが存在する場合に、
同じ種類のサービスを提供するマスターエージェントとシャドーエージェントとの対応関係を表す情報をルーチングテーブルとしてマスターエージェントまたはシャドーエージェントで管理し、
送信元から指定された宛先への通信回線の接続を行う際、もしくは通信中に宛先のマスターエージェント又はシャドーエージェントが利用できない状態が発生した場合には、通信を中継する少なくとも1つのプロキシの制御により、マスターエージェントまたはシャドーエージェントで管理された前記ルーチングテーブルから該当するシャドーエージェント又はマスターエージェントを検索し、見つかったシャドーエージェント又はマスターエージェントとの間で通信経路を確立し、
通信サービスを提供する通信経路を切り替える場合には、前記通信経路上に配置されたプロキシが、切替元のマスターエージェント又はシャドーエージェントにおけるサービス中断位置に関する情報を切替先のマスターエージェント又はシャドーエージェントに通知し、前記プロキシが切替先との間の通信コネクションを該当する通信サービスの通信コネクションと結び付け、
前記通信サービスを提供する通信経路上に存在する第1のプロキシ及び第2のプロキシの間の通信回線に変化が生じた場合には、前記第1のプロキシと前記第2のプロキシとの間の通信コネクションに関する情報を自動的に更新する
新たなシャドーエージェントが生成された場合には、前記シャドーエージェント及び複製元のマスターエージェントの少なくとも一方が配置されている装置に存在するルーチングテーブルの内容を追加もしくは更新する
ことを特徴とする通信コネクション確立方法。 - 請求項1の通信コネクション確立方法において、
各装置に存在する通信デバイスのネットワークアドレスをロケーションテーブルとして管理し、
マスターエージェントが存在する第1の装置上でネットワークアドレスが変更された場合には、
前記マスターエージェントから複製されたシャドーエージェントを前記ルーチングテーブルに基づいて検索し、
前記第1の装置から前記シャドーエージェントが存在する第2の装置にネットワークアドレスの変更を通知し、
前記第2の装置が前記通知に基づいて前記ロケーションテーブルの内容を更新する
ことを特徴とする通信コネクション確立方法。 - 請求項1の通信コネクション確立方法において、
各装置に存在する通信デバイスのネットワークアドレスをロケーションテーブルとして管理し、
シャドーエージェントが存在する第1の装置上でネットワークアドレスが変更された場合には、
前記シャドーエージェントの複製元のマスターエージェントを前記ルーチングテーブルに基づいて検索し、
前記第1の装置から前記マスターエージェントが存在する第2の装置にネットワークアドレスの変更を通知し、
前記第2の装置が前記通知に基づいて前記ロケーションテーブルの内容を更新する
ことを特徴とする通信コネクション確立方法。 - 所定のサービスを提供するプログラムである複数のアプリケーションエージェントと、通信を中継する複数のプロキシと、それらを接続可能なネットワークとが設けられた通信システムの制御に用いる通信コネクション確立方法であって、
マスターエージェントとなる1つのアプリケーションエージェントから複製され、前記マスターエージェントが提供するサービスの少なくとも一部の機能を備えるシャドーエージェントが存在する場合に、
同じ種類のサービスを提供するマスターエージェントとシャドーエージェントとの対応関係を表す情報をルーチングテーブルとしてマスターエージェントまたはシャドーエージェントで管理し、
送信元から指定された宛先への通信回線の接続を行う際、もしくは通信中に宛先のマスターエージェント又はシャドーエージェントが利用できない状態が発生した場合には、通信を中継する少なくとも1つのプロキシの制御により、マスターエージェントまたはシャドーエージェントで管理された前記ルーチングテーブルから該当するシャドーエージェント又はマスターエージェントを検索し、見つかったシャドーエージェント又はマスターエージェントとの間で通信経路を確立し、
通信サービスを提供する通信経路を切り替える場合には、前記通信経路上に配置されたプロキシが、切替元のマスターエージェント又はシャドーエージェントにおけるサービス中断位置に関する情報を切替先のマスターエージェント又はシャドーエージェントに通知し、前記プロキシが切替先との間の通信コネクションを該当する通信サービスの通信コネクションと結び付け、
マスターエージェントで保持されるサービステーブルで、前記マスターエージェントにおいて提供可能な複数のサービスが複製されたシャドーエージェントで提供可能なサービスか提供不可能なサービスかを区別し、
第1のシャドーエージェントがサービスの提供を要求された場合には、第1のシャドーエージェントが当該サービス提供の可否を前記サービステーブルに基づいて識別し、
第1のシャドーエージェントがサービスの提供が不可能な場合には、
第1のシャドーエージェントが前記ルーチングテーブルに基づいて第2のシャドーエージェントもしくはマスターエージェントを検索し、前記第1のシャドーエージェントを第2のシャドーエージェントもしくはマスターエージェントに接続し、
前記第1のシャドーエージェントではサービス要求元と第2のシャドーエージェントもしくはマスターエージェントとの間でデータの中継を実行する
ことを特徴とする通信コネクション確立方法。 - 請求項4の通信コネクション確立方法において、
新たなシャドーエージェントが生成された場合には、前記シャドーエージェント及び複製元のマスターエージェントの少なくとも一方が配置されている装置に存在するルーチングテーブル及びサービステーブルの内容を追加もしくは更新する
ことを特徴とする通信コネクション確立方法。 - 所定のサービスを提供するプログラムである複数のアプリケーションエージェント及び通信を中継する複数のプロキシが所定のネットワークを介して接続される通信システムに用いられ、少なくとも1つのプロキシを備える通信制御装置において、
マスターエージェントとなる1つのアプリケーションエージェントから複製され、前記マスターエージェントが提供するサービスの少なくとも一部の機能を備えるシャドーエージェントが通信システム上に存在する場合に、
同じ種類のサービスを提供するマスターエージェントとシャドーエージェントとの対応関係を表す情報を管理するルーチングテーブルと、
送信元から指定された宛先への通信回線の接続を行う際、もしくは通信中に宛先のマスターエージェント又はシャドーエージェントが利用できない状態が発生した場合には、通信を中継する少なくとも1つのプロキシの制御により、前記ルーチングテーブルから該当するシャドーエージェント又はマスターエージェントを検索し、見つかったシャドーエージェント又はマスターエージェントとの間で通信経路を確立する回線接続手段と、
通信サービスを提供する通信経路を切り替える場合には、前記通信経路上に配置されたプロキシが、切替元のマスターエージェント又はシャドーエージェントにおけるサービス中断位置に関する情報を切替先のマスターエージェント又はシャドーエージェントに通知し、前記プロキシが切替先との間の通信コネクションを該当する通信サービスの通信コネクションと結び付ける通信コネクション制御手段と、
新たなシャドーエージェントが生成された場合には、前記シャドーエージェント及び複製元のマスターエージェントの少なくとも一方が配置されている装置に存在するルーチングテーブルの内容を追加もしくは更新するテーブル更新手段とを備え、
前記通信コネクション制御手段は、
通信サービスを提供する通信経路上に存在する第1のプロキシ及び第2のプロキシの間の通信回線に変化が生じた場合には、前記第1のプロキシと第2のプロキシとの間の通信コネクションに関する情報を自動的に更新する
ことを特徴とする通信制御装置。 - 請求項6に記載の通信制御装置において、
各装置に存在する通信デバイスのネットワークアドレスを管理するロケーションテーブルと、
マスターエージェントが存在する第1の装置上でネットワークアドレスが変更された場合には、前記マスターエージェントから複製されたシャドーエージェントを前記ルーチングテーブルに基づいて検索するエージェント検索手段と、
前記第1の装置から前記シャドーエージェントが存在する第2の装置にネットワークアドレスの変更を通知するネットワークアドレス変更通知手段と、
前記第2の装置が前記通知に基づいて前記ロケーションテーブルの内容を更新するためのロケーションテーブル更新手段と
を更に設けたことを特徴とする通信制御装置。 - 請求項6に記載の通信制御装置において、
各装置に存在する通信デバイスのネットワークアドレスを管理するロケーションテーブルと、
シャドーエージェントが存在する第1の装置上でネットワークアドレスが変更された場合には、前記シャドーエージェントの複製元のマスターエージェントを前記ルーチングテーブルに基づいて検索するエージェント検索手段と、
前記第1の装置から前記マスターエージェントが存在する第2の装置にネットワークアドレスの変更を通知するネットワークアドレス変更通知手段と、
前記第2の装置が前記通知に基づいて前記ロケーションテーブルの内容を更新するためのロケーションテーブル更新手段と
を更に設けたことを特徴とする通信制御装置。 - 所定のサービスを提供するプログラムである複数のアプリケーションエージェント及び通信を中継する複数のプロキシが所定のネットワークを介して接続される通信システムに用いられ、少なくとも1つのプロキシを備える通信制御装置において、
マスターエージェントとなる1つのアプリケーションエージェントから複製され、前記マスターエージェントが提供するサービスの少なくとも一部の機能を備えるシャドーエージェントが通信システム上に存在する場合に、
同じ種類のサービスを提供するマスターエージェントとシャドーエージェントとの対応関係を表す情報を管理するルーチングテーブルと、
送信元から指定された宛先への通信回線の接続を行う際、もしくは通信中に宛先のマスターエージェント又はシャドーエージェントが利用できない状態が発生した場合には、通信を中継する少なくとも1つのプロキシの制御により、前記ルーチングテーブルから該当するシャドーエージェント又はマスターエージェントを検索し、見つかったシャドーエージェント又はマスターエージェントとの間で通信経路を確立する回線接続手段と、
通信サービスを提供する通信経路を切り替える場合には、前記通信経路上に配置されたプロキシが、切替元のマスターエージェント又はシャドーエージェントにおけるサービス 中断位置に関する情報を切替先のマスターエージェント又はシャドーエージェントに通知し、前記プロキシが切替先との間の通信コネクションを該当する通信サービスの通信コネクションと結び付ける通信コネクション制御手段と、
マスターエージェントが提供可能な複数のサービスのうち前記マスターエージェントから複製されたシャドーエージェントが提供可能なサービスと提供不可能なサービスとを区別するための情報を管理するサービステーブルと、
第1のシャドーエージェントがサービスの提供を要求された場合には、当該サービス提供の可否を前記サービステーブルに基づいて識別するサービス識別手段と、
提供不可能なサービスを要求された場合には、前記ルーチングテーブルに基づいて第2のシャドーエージェントもしくはマスターエージェントを検索し、前記第1のシャドーエージェントを第2のシャドーエージェントもしくはマスターエージェントに接続する中継接続手段と、
前記第1のシャドーエージェントがサービス要求元と第2のシャドーエージェントもしくはマスターエージェントとの間でデータの中継を実行するためのデータ中継処理手段と
を備えたことを特徴とする通信制御装置。 - 請求項9の通信制御装置において、
新たなシャドーエージェントが生成された場合には、前記シャドーエージェント及び複製元のマスターエージェントの少なくとも一方が配置されている装置に存在するルーチングテーブル及びサービステーブルの内容を追加もしくは更新するテーブル更新手段を備えた
ことを特徴とする通信制御装置。 - 所定のサービスを提供するプログラムである複数のアプリケーションエージェントと、通信を中継する複数のプロキシと、それらを接続可能なネットワークとが設けられた通信システムを制御するコンピュータで実行可能な制御プログラムを記録した記録媒体であって、
前記制御プログラムには、
マスターエージェントとなる1つのアプリケーションエージェントから複製され、前記マスターエージェントが提供するサービスの少なくとも一部の機能を備えるシャドーエージェントが存在する場合に、同じ種類のサービスを提供するマスターエージェントとシャドーエージェントとの対応関係を表す情報をルーチングテーブルとして管理する手順と、
送信元から指定された宛先への通信回線の接続を行う際、もしくは通信中に宛先のマスターエージェント又はシャドーエージェントが利用できない状態が発生した場合には、通信を中継する少なくとも1つのプロキシの制御により、前記ルーチングテーブルから該当するシャドーエージェント又はマスターエージェントを検索し、見つかったシャドーエージェント又はマスターエージェントとの間で通信経路を確立する手順と、
通信サービスを提供する通信経路を切り替える場合には、前記通信経路上に配置されたプロキシが、切替元のマスターエージェント又はシャドーエージェントにおけるサービス中断位置に関する情報を切替先のマスターエージェント又はシャドーエージェントに通知し、前記プロキシが切替先との間の通信コネクションを該当する通信サービスの通信コネクションと結び付ける手順とを設けた
ことを特徴とする記録媒体。 - 所定のサービスを提供するプログラムである複数のアプリケーションエージェントと、通信を中継する複数のプロキシと、それらを接続可能なネットワークとが設けられた通信システムを制御するコンピュータで実行可能な制御プログラムであって、
マスターエージェントとなる1つのアプリケーションエージェントから複製され、前記マスターエージェントが提供するサービスの少なくとも一部の機能を備えるシャドーエージェントが存在する場合に、同じ種類のサービスを提供するマスターエージェントとシャドーエージェントとの対応関係を表す情報をルーチングテーブルとして管理する手順と、
送信元から指定された宛先への通信回線の接続を行う際、もしくは通信中に宛先のマス ターエージェント又はシャドーエージェントが利用できない状態が発生した場合には、通信を中継する少なくとも1つのプロキシの制御により、前記ルーチングテーブルから該当するシャドーエージェント又はマスターエージェントを検索し、見つかったシャドーエージェント又はマスターエージェントとの間で通信経路を確立する手順と、
通信サービスを提供する通信経路を切り替える場合には、前記通信経路上に配置されたプロキシが、切替元のマスターエージェント又はシャドーエージェントにおけるサービス中断位置に関する情報を切替先のマスターエージェント又はシャドーエージェントに通知し、前記プロキシが切替先との間の通信コネクションを該当する通信サービスの通信コネクションと結び付ける手順とを設けた
ことを特徴とする制御プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002036005A JP3785101B2 (ja) | 2002-02-13 | 2002-02-13 | 通信コネクション確立方法及び通信制御装置並びに記録媒体及び制御プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002036005A JP3785101B2 (ja) | 2002-02-13 | 2002-02-13 | 通信コネクション確立方法及び通信制御装置並びに記録媒体及び制御プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003244204A JP2003244204A (ja) | 2003-08-29 |
JP3785101B2 true JP3785101B2 (ja) | 2006-06-14 |
Family
ID=27778032
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002036005A Expired - Fee Related JP3785101B2 (ja) | 2002-02-13 | 2002-02-13 | 通信コネクション確立方法及び通信制御装置並びに記録媒体及び制御プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3785101B2 (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7483369B2 (en) | 2003-09-30 | 2009-01-27 | Avaya Inc. | Method and apparatus for migrating to an alternate call controller |
US7366110B2 (en) | 2004-09-30 | 2008-04-29 | Avaya Technology Corp. | Method and apparatus for merging call components during call reconstruction |
US7457249B2 (en) | 2005-01-04 | 2008-11-25 | Avaya, Inc. | Alternate routing of media connections within a single communications system across public or private network facilities |
US7613106B2 (en) | 2005-01-04 | 2009-11-03 | Avaya Inc. | Dial plan transparency for fragmented networks |
US7564793B2 (en) | 2005-01-04 | 2009-07-21 | Avaya Inc. | In-band call association signaling for a single number destination |
US7496056B2 (en) | 2005-01-04 | 2009-02-24 | Avaya Inc. | Conference connections using dynamic topology switching for IP and circuit-switched fabrics |
US8462637B1 (en) | 2005-01-04 | 2013-06-11 | Sheridan Ross P.C. | Dial plan routing for fragmented networks |
US9686183B2 (en) * | 2005-12-06 | 2017-06-20 | Zarbaña Digital Fund Llc | Digital object routing based on a service request |
KR101205590B1 (ko) | 2007-01-08 | 2012-11-27 | 에스케이플래닛 주식회사 | 휴대단말에서 데이터 저장의 안정성 보장 방법 및 장치 |
US8984105B2 (en) | 2008-05-27 | 2015-03-17 | Qualcomm Incorporated | FMC architecture for CDMA network |
US8116252B2 (en) * | 2008-05-29 | 2012-02-14 | Qualcomm Incorporated | Fixed mobile convergence (FMC) architectures |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08320800A (ja) * | 1995-05-25 | 1996-12-03 | Hitachi Ltd | メッセージ回復処理方式 |
JP3248446B2 (ja) * | 1997-03-13 | 2002-01-21 | ヤマハ株式会社 | サーバコンピュータ |
JP2000099435A (ja) * | 1998-09-18 | 2000-04-07 | Nippon Telegr & Teleph Corp <Ntt> | サーバ切り替え装置および方法とサーバ切り替えプログラムを記録した記録媒体 |
JP2001045023A (ja) * | 1999-08-02 | 2001-02-16 | Matsushita Electric Ind Co Ltd | ビデオサーバシステム及びビデオデータ配信方法 |
JP3732745B2 (ja) * | 2000-06-07 | 2006-01-11 | 日本電信電話株式会社 | 通信コネクション確立方法 |
-
2002
- 2002-02-13 JP JP2002036005A patent/JP3785101B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003244204A (ja) | 2003-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5572528A (en) | Mobile networking method and apparatus | |
CN111615066B (zh) | 一种基于广播的分布式微服务注册及调用方法 | |
US7859992B2 (en) | Router redundancy in data communication networks | |
JP3785101B2 (ja) | 通信コネクション確立方法及び通信制御装置並びに記録媒体及び制御プログラム | |
TW200534637A (en) | Redundant routing capabilities for a network node cluster | |
KR20010109080A (ko) | 정상 상태에서 토폴로지 메시지 트래픽 없는 분산형컴퓨팅 환경에서의 토폴로지 전파 | |
CN111787079B (zh) | 基于通信群组的通信方法、装置、服务器、系统及介质 | |
EP2911346B1 (en) | Method and network device for establishing virtual cluster | |
JP3732745B2 (ja) | 通信コネクション確立方法 | |
CN101521616A (zh) | 边界网关协议bgp分布式系统中邻居迁移的方法和系统 | |
JP3672534B2 (ja) | ルーチング制御方法及びルーチング制御装置並びに記録媒体及び制御プログラム | |
CN112214377B (zh) | 一种设备管理方法及系统 | |
TW202103475A (zh) | 終端設備管理方法、伺服器及終端設備 | |
CN111343019A (zh) | 一种重连方法、装置和存储介质 | |
JP3500369B2 (ja) | 通信制御装置及び通信制御方法 | |
JP4373060B2 (ja) | 分散処理システム並びに分散処理システムにおける代理ノード、利用者側ノードおよび方法 | |
WO2024140698A1 (zh) | 一种会话处理方法、系统、装置及存储介质 | |
CN114090342A (zh) | 存储容灾的链路管理方法及消息执行节点、存储控制集群 | |
CN103107942B (zh) | 一种静态路由的跟踪方法和设备 | |
JP3712983B2 (ja) | マルチキャスト通信制御方法及び通信制御装置並びに記録媒体及び制御プログラム | |
JP4579850B2 (ja) | ブレード型システムおよびコネクション管理方法 | |
US20130336194A1 (en) | Synchronization of Mobile Client Multicast | |
WO2013037318A1 (zh) | 一种数据处理方法和数据处理节点 | |
CN114079584A (zh) | 用户端保活的方法及装置 | |
CN102821118A (zh) | 一种具备异构节点的网络中业务备份的方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20041018 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041102 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041228 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050517 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050719 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060314 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060316 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090324 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100324 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110324 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110324 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120324 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |