(57)【要約】【課題】  プル型配信とプッシュ型配信の長所を兼ね備えたデータ配信システムを提供する。【解決手段】  送受信データを一時的に蓄積する蓄積装置T1120等を備えた複数の通信中継装置T1110等から構成される通信中継装置群T1000と、複数の端末装置T2100等とから構成される。端末装置T2100がサーバとなってデータを他の端末装置に配信する場合、端末装置T2100は、通信中継装置T1110等にデータをプッシュ型で配信した後、配信したデータの識別子を通信中継装置群T1000を通じて１以上の他の端末装置にマルチキャストで通知する。他の端末装置は、通信中継装置の蓄積装置に蓄積されたデータをプル型の配信で取得する。【選択図】  図１
2006311013.tif 000002
【特許請求の範囲】
【請求項１】
送受信データを一時的に蓄積する蓄積装置を備えた１以上の通信中継装置から構成される通信中継装置群と、該通信中継装置群を通じて相互に通信可能に接続される複数の端末装置とから構成されたネットワークシステムにおいて、
ａ）第１の端末装置が、前記通信中継装置にデータをプッシュ型で配信した後、配信したデータの識別子を前記通信中継装置群を通じて１以上の第２の端末装置にマルチキャストで通知するステップ、
ｂ）前記第２の端末装置が、前記通信中継装置の前記蓄積装置に蓄積された前記データをプル型の配信で取得するステップ、
を含むことを特徴とするデータ配信方法。
【請求項２】
マルチキャストグループ毎のキャッシュテーブルの集合を前記蓄積装置に備え、前記通信中継装置は、前記第２の端末装置がプル型の配信で取得できるデータを、前記第２の端末装置が属するマルチキャストグループのキャッシュテーブルの集合内に蓄積されたデータに制限することを特徴とする請求項１記載のデータ配信方法。
【請求項３】
前記通信中継装置は、前記第１の端末装置がプッシュ型で配信したデータを送信の経路情報を付加して自装置の前記蓄積装置に蓄積し、前記第２の端末装置から取得を要求されたデータが自装置の前記蓄積装置に存在しなかった場合は隣接する他の前記通信中継装置にデータを要求し、隣接する他の前記通信中継装置からデータを要求された場合は自装置の前記蓄積装置にデータが存在し且つデータの要求元が前記経路情報に記載されたデータの送信元でないときに限って要求データを応答することを特徴とする請求項１記載のデータ配信方法。
【請求項４】
送受信データを一時的に蓄積する蓄積装置を備えた１以上の通信中継装置から構成される通信中継装置群と、
前記通信中継装置にデータをプッシュ型で配信した後、配信したデータの識別子を前記通信中継装置群を通じて１以上の他の端末装置にマルチキャストで通知する第１の端末装置と、
前記通信中継装置の前記蓄積装置に蓄積された前記データをプル型の配信で取得する第２の端末装置とから構成されることを特徴とするデータ配信システム。
【請求項５】
マルチキャストグループ毎のキャッシュテーブルの集合を前記蓄積装置に備え、前記通信中継装置は、前記第２の端末装置がプル型の配信で取得できるデータを、前記第２の端末装置が属するマルチキャストグループのキャッシュテーブルの集合内に蓄積されたデータに制限することを特徴とする請求項４記載のデータ配信システム。
【請求項６】
前記通信中継装置は、前記第１の端末装置がプッシュ型で配信したデータを送信の経路情報を付加して自装置の前記蓄積装置に蓄積し、前記第２の端末装置から取得を要求されたデータが自装置の前記蓄積装置に存在しなかった場合は隣接する他の前記通信中継装置にデータを要求し、隣接する他の前記通信中継装置からデータを要求された場合は自装置の前記蓄積装置にデータが存在し且つデータの要求元が前記経路情報に記載されたデータの送信元でないときに限って要求データを応答することを特徴とする請求項４記載のデータ配信システム。
【請求項７】
自装置と１以上の端末装置および１以上の他の通信中継装置とを通信可能に接続する接続手段と、マルチキャストグループに属する端末装置の情報を記憶するセッション情報記憶装置と、該セッション情報記憶装置を参照してグループ通信を管理するセッション管理手段と、自装置の送受信データのキャッシュ装置として使用する蓄積装置と、キャッシュ制御を行うキャッシュ制御手段と、前記接続手段で受信された通信データ中のコマンドを解析し、前記マルチキャストグループに属する第１の端末装置および他の通信中継装置から、送信先が通信中継装置でキャッシュすることを要求するコマンドを含むデータを受信した場合には、受信したデータの識別子をキーにして受信したデータに含まれるデータ本体を前記蓄積装置に蓄積すると共に他の通信中継装置へ転送する制御を行い、前記第１の端末装置および他の通信中継装置から前記配信したデータの識別子を含みマルチキャストで配信することを要求するデータを受信した場合には、受信したデータを前記マルチキャストグループに属する第２の端末装置および他の通信中継装置に送信する制御を行い、前記第２の端末装置および他の通信中継装置から前記データの識別子を含みキャッシュデータを要求するデータを受信した場合には、前記蓄積装置に前記識別子をキーとするデータが蓄積されていれば、該蓄積されているデータを要求元へ送信する制御を行うコマンド解析手段とを備えることを特徴とする通信中継装置。
【請求項８】
送受信データを一時的に蓄積する蓄積装置を備えた通信中継装置と自端末とを相互に通信可能に接続する接続手段と、前記通信中継装置にデータをプッシュ型で配信した後、配信したデータの識別子を前記通信中継装置を通じて１以上の他の端末装置にマルチキャストで通知する動作と、他の端末装置からマルチキャストで通知された識別子のデータを前記通信中継装置の前記蓄積装置からプル型の配信で取得する動作との少なくとも一方を制御する制御手段とを備えることを特徴とする端末装置。
【請求項９】
マルチキャストグループに属する端末装置の情報を記憶するセッション情報記憶装置と、自装置の送受信データのキャッシュ装置として使用する蓄積装置とを有する通信中継装置を構成するコンピュータを、自装置と１以上の端末装置および１以上の他の通信中継装置とを通信可能に接続する接続手段、前記セッション情報記憶装置を参照してグループ通信を管理するセッション管理手段、キャッシュ制御を行うキャッシュ制御手段、前記接続手段で受信された通信データ中のコマンドを解析し、前記マルチキャストグループに属する第１の端末装置および他の通信中継装置から、送信先が通信中継装置でキャッシュすることを要求するコマンドを含むデータを受信した場合には、受信したデータの識別子をキーにして受信したデータに含まれるデータ本体を前記蓄積装置に蓄積すると共に他の通信中継装置へ転送する制御を行い、前記第１の端末装置および他の通信中継装置から前記配信したデータの識別子を含みマルチキャストで配信することを要求するデータを受信した場合には、受信したデータを前記マルチキャストグループに属する第２の端末装置および他の通信中継装置に送信する制御を行い、前記第２の端末装置および他の通信中継装置から前記データの識別子を含みキャッシュデータを要求するデータを受信した場合には、前記蓄積装置に前記識別子をキーとするデータが蓄積されていれば、該蓄積されているデータを要求元へ送信する制御を行うコマンド解析手段、として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ配信システム及びその方法に関し、特にサーバから多数の端末にデータを配信するときに、途中に配置した通信中継装置に対してデータをプッシュ型で配信して蓄積した後、配信したデータの識別子をサーバから複数の端末へマルチキャスト配信し、端末から通信中継装置内のデータをプル型の配信で取得するデータ配信システム及びその方法に関する。
【背景技術】
【０００２】
データの配信元であるサーバからデータの配信先である端末へデータを配信する方式には、プル型とプッシュ型の２通りの方式がある。プル型は、端末からサーバに対してデータの取得を要求し、この要求を契機にサーバが端末へデータを送信する方式である。これに対してプッシュ型は、端末からの要求なしに、サーバが一方的に端末に対してデータを送信する方式である。
【０００３】
プル型配信の従来技術の一例が特許文献１および特許文献２に記載されている。特許文献１に記載される従来技術では、端末とサーバとが中継装置を通じて接続され、サーバに蓄積されたコンテンツを一時的に蓄積するキャッシュ装置が中継装置に設けられている。端末からサーバ宛に出されたコンテンツ取得要求を受信した中継装置は、要求されたコンテンツがキャッシュ装置に蓄積されていれば、この蓄積されているデータをキャッシュ装置から読み出して端末へ応答し、蓄積されていなければ、サーバにコンテンツ取得要求を転送し、サーバから送られてくるコンテンツをキャッシュ装置に蓄積すると同時に端末へ送信する。特許文献２に記載される従来技術も特許文献１とほぼ同じであるが、中継装置に相当するプロキシサーバノードにおいて、端末からの要求とは非同期にサーバに対してコンテンツ取得要求を送信することにより、コンテンツを事前に取得してキャッシュ装置に蓄積しておく点が相違する。
【０００４】
プッシュ型配信の従来技術の一例が特許文献３に記載されている。特許文献３に記載される従来技術では、多地点接続装置を通じて接続された複数の会議端末間で会議資料データを配信する際にプッシュ型の配信を利用している。具体的には、或る端末が会議資料データを多地点接続装置に送信して他端末への配布を依頼すると、多地点接続装置が受信した会議資料データを、配信元端末以外の全ての端末へ送信する。
【特許文献１】特開２００４−３８４３９号公報
【特許文献２】特開２００４−２８０８４７号公報
【特許文献３】特許第３０７２１３７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
プッシュ型配信の利点は、最新のデータをリアルタイムに配信できることと、マルチキャスト通信を使用すれば多数の端末に対し効率的にデータの配信が行えることである。しかし、プッシュ型の配信では、サーバからマルチキャスト配信されるデータを端末毎に選択（フィルタリング）することができないため、端末によっては不必要なデータも受信してしまうという課題がある。
【０００６】
これに対してプル型の配信は、取得したいデータを端末毎に選択することができる利点がある。しかしその反面、最新のデータのリアルタイム配信には不向きである。何故なら、特許文献１および特許文献２に示すように、中継装置にキャッシュ装置を設けることでサーバ負荷の軽減とデータ転送時間の短縮を図っても、端末側ではキャッシュ装置に最新のデータが蓄積されたことが分からないため、データ取得要求を適切なタイミングで送出することができないからである。
【０００７】
このようにプル型配信とプッシュ型配信にはそれぞれ一長一短がある。
【０００８】
本発明はこのような事情に鑑みて提案されたものであり、その目的は、プル型配信とプッシュ型配信の長所を兼ね備えたデータ配信システムおよびその方法、つまり、最新のデータをほぼリアルタイムにサーバから多数の端末に配信でき、しかもサーバから配信を受けるデータを端末毎に選択することができるデータ配信システムおよびその方法を提供することにある。
【課題を解決するための手段】
【０００９】
本発明の第１のデータ配信方法は、上記目的を達成するために、送受信データを一時的に蓄積する蓄積装置を備えた１以上の通信中継装置から構成される通信中継装置群と、該通信中継装置群を通じて相互に通信可能に接続される複数の端末装置とから構成されたネットワークシステムにおいて、ａ）第１の端末装置が、前記通信中継装置にデータをプッシュ型で配信した後、配信したデータの識別子を前記通信中継装置群を通じて１以上の第２の端末装置にマルチキャストで通知するステップ、ｂ）前記第２の端末装置が、前記通信中継装置の前記蓄積装置に蓄積された前記データをプル型の配信で取得するステップ、を含むことを特徴とする。
【００１０】
本発明の第２のデータ配信方法は、他のマルチキャストグループに通信データが漏洩しないようにするために、第１のデータ配信方法において、マルチキャストグループ毎のキャッシュテーブルの集合を前記蓄積装置に備え、前記通信中継装置は、前記第２の端末装置がプル型の配信で取得できるデータを、前記第２の端末装置が属するマルチキャストグループのキャッシュテーブルの集合内に蓄積されたデータに制限することを特徴とする。
【００１１】
本発明の第３のデータ配信方法は、キャッシュデータのサーバからの更新とキャッシュデータの再取得がネットワーク上で相互に逆方向に発生してキャッシュデータの一貫性が崩れることを防止するため、第１のデータ配信方法において、前記通信中継装置は、前記第１の端末装置がプッシュ型で配信したデータを送信の経路情報を付加して自装置の前記蓄積装置に蓄積し、前記第２の端末装置から取得を要求されたデータが自装置の前記蓄積装置に存在しなかった場合は隣接する他の前記通信中継装置にデータを要求し、隣接する他の前記通信中継装置からデータを要求された場合は自装置の前記蓄積装置にデータが存在し且つデータの要求元が前記経路情報に記載されたデータの送信元でないときに限って要求データを応答することを特徴とする。
【００１２】
本発明の第１のデータ配信システムは、上記の目的を達成するために、送受信データを一時的に蓄積する蓄積装置を備えた１以上の通信中継装置から構成される通信中継装置群と、前記通信中継装置にデータをプッシュ型で配信した後、配信したデータの識別子を前記通信中継装置群を通じて１以上の他の端末装置にマルチキャストで通知する第１の端末装置と、前記通信中継装置の前記蓄積装置に蓄積された前記データをプル型の配信で取得する第２の端末装置とから構成されることを特徴とする。
【００１３】
本発明の第２のデータ配信システムは、他のマルチキャストグループに通信データが漏洩しないようにするために、第１のデータ配信システムにおいて、マルチキャストグループ毎のキャッシュテーブルの集合を前記蓄積装置に備え、前記通信中継装置は、前記第２の端末装置がプル型の配信で取得できるデータを、前記第２の端末装置が属するマルチキャストグループのキャッシュテーブルの集合内に蓄積されたデータに制限することを特徴とする。
【００１４】
本発明の第３のデータ配信システムは、キャッシュデータのサーバからの更新とキャッシュデータの再取得がネットワーク上で相互に逆方向に発生してキャッシュデータの一貫性が崩れることを防止するため、第１のデータ配信システムにおいて、前記通信中継装置は、前記第１の端末装置がプッシュ型で配信したデータを送信の経路情報を付加して自装置の前記蓄積装置に蓄積し、前記第２の端末装置から取得を要求されたデータが自装置の前記蓄積装置に存在しなかった場合は隣接する他の前記通信中継装置にデータを要求し、隣接する他の前記通信中継装置からデータを要求された場合は自装置の前記蓄積装置にデータが存在し且つデータの要求元が前記経路情報に記載されたデータの送信元でないときに限って要求データを応答することを特徴とする。
【００１５】
本発明の通信中継装置は、上記目的を達成するために、自装置と１以上の端末装置および１以上の他の通信中継装置とを通信可能に接続する接続手段と、マルチキャストグループに属する端末装置の情報を記憶するセッション情報記憶装置と、該セッション情報記憶装置を参照してグループ通信を管理するセッション管理手段と、自装置の送受信データのキャッシュ装置として使用する蓄積装置と、キャッシュ制御を行うキャッシュ制御手段と、前記接続手段で受信された通信データ中のコマンドを解析し、前記マルチキャストグループに属する第１の端末装置および他の通信中継装置から、送信先が通信中継装置でキャッシュすることを要求するコマンドを含むデータを受信した場合には、受信したデータの識別子をキーにして受信したデータに含まれるデータ本体を前記蓄積装置に蓄積すると共に他の通信中継装置へ転送する制御を行い、前記第１の端末装置および他の通信中継装置から前記配信したデータの識別子を含みマルチキャストで配信することを要求するデータを受信した場合には、受信したデータを前記マルチキャストグループに属する第２の端末装置および他の通信中継装置に送信する制御を行い、前記第２の端末装置および他の通信中継装置から前記データの識別子を含みキャッシュデータを要求するデータを受信した場合には、前記蓄積装置に前記識別子をキーとするデータが蓄積されていれば、該蓄積されているデータを要求元へ送信する制御を行うコマンド解析手段とを備えることを特徴とする。
【００１６】
本発明の端末装置は、上記目的を達成するために、送受信データを一時的に蓄積する蓄積装置を備えた通信中継装置と自端末とを相互に通信可能に接続する接続手段と、前記通信中継装置にデータをプッシュ型で配信した後、配信したデータの識別子を前記通信中継装置を通じて１以上の他の端末装置にマルチキャストで通知する動作と、他の端末装置からマルチキャストで通知された識別子のデータを前記通信中継装置の前記蓄積装置からプル型の配信で取得する動作との少なくとも一方を制御する制御手段とを備えることを特徴とする。
【００１７】
『作用』
本発明にあっては、第１の端末装置がサーバとなって他の１以上の第２の端末装置にデータを配信する場合、通信中継装置にデータをプッシュ型で配信した後、配信したデータの識別子を通信中継装置を通じて第２の端末装置にマルチキャストで通知するため、第２の端末装置では、通信中継装置の蓄積装置に最新のデータが蓄積されたこと及び蓄積されたデータの識別子を認識できる。このため、そのデータを必要とする第２の端末装置が直ぐにデータ取得要求を送出してプル型の配信で通信中継装置の蓄積装置に蓄積されたデータを取得すれば、ほぼリアルタイムにデータの配信が可能になる。また、識別子によりデータの取捨選択が可能になるため、配信を受けるデータを端末毎に選択することが可能になる。
【発明の効果】
【００１８】
本発明によれば、最新のデータをほぼリアルタイムにサーバから多数の端末に配信できる。その理由は、配信先の端末からはプル型の配信でデータを取得するが、取得すべきタイミングはサーバとなる端末装置から配信先の端末装置にマルチキャストされる通知で認識できるため、最新のデータを直ぐに引き取ることが可能であり、しかもデータは通信中継装置の蓄積装置まで届いているためである。
【００１９】
また本発明によれば、配信を受けるデータを端末毎に選択することができる。その理由は、サーバから通信中継装置まではプッシュ型で配信されるが、通信中継装置から配信先の端末まではプル型で配信するからである。
【発明を実施するための最良の形態】
【００２０】
次に本発明の実施の形態について図面を参照して詳細に説明する。
【００２１】
図１を参照すると、本発明の実施の形態にかかるデータ配信システムは、通信中継装置群T1000と端末装置群T2000とから構成される。
【００２２】
通信中継装置群T1000は、複数の通信中継装置をネットワーク網で接続したものである。図１では、通信中継装置T1110と通信中継装置T1210とを接続し、通信中継装置T1110と通信中継装置T1310とを接続している。通信中継装置は、１以上の端末装置を接続することが可能である。図１では、通信中継装置T1110は端末装置T2100を接続し、通信中継装置T1210は端末装置T2200を接続し、通信中継装置T1３10は端末装置T2300と端末装置T2400を接続している。通信中継装置は、複数の端末装置間で行われる通信および端末装置グループのマルチキャスト通信を中継する。これにより端末装置は、通信中継装置のネットワーク網を介して、他の端末装置との間でデータの送受信を行うことができる。図１の通信中継装置網T1000には、３台の通信中継装置が接続されているが、１以上の任意台数の通信中継装置を接続することができる。一般的に、接続する端末装置群T2000の端末数が増えるにつれて通信中継装置が増やされる。
【００２３】
通信中継装置T1110、T1210、T1310は、それぞれハードディスク装置等で構成される蓄積装置T1120、T1220、T1320を具備する。蓄積装置T1120は、通信中継装置T1110にて送受信されるデータを一時的に蓄積するキャッシュ装置、蓄積装置T1220は、通信中継装置T1210にて送受信されるデータを一時的に蓄積するキャッシュ装置、蓄積装置T1320は、通信中継装置T1310にて送受信されるデータを一時的に蓄積するキャッシュ装置として、それぞれ使用される。
【００２４】
本実施の形態における特徴的なデータ配信方法では、同じ端末装置グループに属する複数の端末装置の或る端末装置がデータの配信元であるサーバとなって、同グループの他の端末装置へ通信中継装置群T1000を通じてデータを配信する際、まず、サーバから各通信中継装置にデータを配信して蓄積装置に蓄積し、次いで、前記配信したデータの識別子を含む配信通知をサーバから端末装置へ通信中継装置群T1000を通じて配信し、次いで、この配信通知を受信した各端末装置が個別にデータの識別子を指定して、最寄りの通信中継装置の蓄積装置からデータを取得する。
【００２５】
図２を参照すると、通信中継装置S1000は、接続装置S1100、セッション管理装置S1200、コマンド解析装置S1300、キャッシュ制御装置S1400およびセッション情報記憶装置S1500から構成される。ここで通信中継装置S1000は、図１の通信中継装置T1110、T1210、T1310に相当する。
【００２６】
接続装置S1100は、自通信中継装置S1000と１以上の端末装置S3000および１以上の他の通信中継装置S4000とを通信路を通じて相互に通信可能に接続する。通信中継装置S1000が他の通信中継装置S4000と接続し、他の通信中継装置S4000が更に別の通信中継装置と繋がることを繰り返すことで、規模の大きな通信網が構成される。接続装置S1100は、端末装置S3000および他の通信中継装置S4000からデータを受信すると、直ちにセッション管理装置S1200にデータを転送し、セッション管理装置S1200からデータを受け取ると、指定された端末装置S3000或いは他の通信中継装置S4000にデータを転送する。
【００２７】
図３（ｂ）を参照すると、端末装置および通信中継装置の装置間で送受信される通信データのフォーマットS5000は、グループID S5001、チャネルID S5002、送信先S5003、発信元S5004、コマンドS5005、データ識別子S5006、サイズS5007および本体S5008で構成される。S5001〜S5005の項目は必須であるが、S5006〜S5008の項目はコマンドの種類によっては省略される。
【００２８】
グループID S5001は、通信グループを識別するためのIDであり、通信網で唯一の値を取る。チャネルID S5002は、通信グループ内の通信をアプリケーションごとに仮想化するものであり、同一グループID内で唯一の値を取る。異なるチャネルIDを用いることで、１グループに複数のチャネルを設定することができる。グループIDとチャネルIDの組でマルチキャストグループが特定される。
【００２９】
送信先S5003は、通信データを届ける通信相手先を記述するフィールドであり、以下の３つの指定方法がある。１つは、特定の端末装置を送信先に指定するもので、１以上の端末装置のリストを記載することができる。もう１つは、通信中継装置群の通信中継装置だけにデータを届けることを指定するもので、その時点では末端の端末装置までデータは届けられない。この指定は、各通信中継装置の蓄積装置にデータをキャッシュするときに利用される。本実施の形態では、送信先S5003に［MCU］と記述されていた場合、本指定がなされたものと解釈する。この場合、通信中継装置群を構成する全ての通信中継装置の蓄積装置にデータがキャッシュされる。なお、送信元の端末装置から、グループIDとチャネルIDの組で特定されるマルチキャストグループに属する端末装置に至る経路上に存在する通信中継装置の蓄積装置だけにデータをキャッシュするようにしても良い。最後の１つは、マルチキャスト指定である。この指定の場合、グループID S5001とチャネルID S5002の組で特定されるマルチキャストグループに属する全ての端末装置にデータが届けられる。
【００３０】
発信元S5004は、通信データを送信した端末装置あるいは通信中継装置を記述するフィールドである。
【００３１】
データ識別子S5006は、通信データを他の通信データと区別するための識別子であり、同じグループＩＤとチャネルＩＤの組内で一意に設定される。本体S5008は、テキスト、画像、音声データなど、端末装置が他の端末装置へ送信するデータ本体であり、サイズS5007はそのデータのサイズである。
【００３２】
コマンドS5005は、通信データを受信した装置に対する指示などである。本実施の形態の場合、図１１に示される番号０から番号８までの９種類のコマンド、すなわち、NoCache、CacheUpdate、SendRequest、CacheData、CacheMis、CacheClear、Reject、Login、Logoutが使用される。各々の機能は以下の通りである。
【００３３】
NoCacheコマンドは、通信データを通信中継装置の蓄積装置にキャッシュしないことを指示するコマンドであり、通常のデータ通信を行う場合に使用される。これに対しCacheUpdateコマンドは、通信データを通信中継装置の蓄積装置にキャッシュすることを指示するコマンドである。このコマンドを含む通信データを受信した通信中継装置は、受信したデータと同じグループＩＤとチャネルＩＤの組に対応するキャッシュ領域を調べ、同じデータ識別子のデータが存在しなければ新たに蓄積し、同じデータ識別子のデータが既に存在すれば、受信したデータでキャッシュ領域を更新する。なお、前述したように送信先S5003に［MCU］が指定されていれば、通信データは端末装置まで送信されず、通信中継装置の蓄積装置にキャッシュされるだけである。
【００３４】
SendRequestコマンドは、データ識別子S5006で特定されるデータの送信を依頼するコマンドであり、CacheDataコマンド、CacheMisコマンドおよびRejectコマンドは、何れもSendRequestコマンドに対する応答コマンドである。このうち、CacheDataコマンドは肯定応答、CacheMisコマンドは否定応答、Rejectコマンドは拒絶応答にそれぞれ使用される。CacheDataコマンドは、データ識別子S5006で特定されるデータがキャッシュにあった等の理由で、要求されたデータを返答する場合に使用される。CacheMisコマンドは、データ識別子S5006で特定されるデータがキャッシュにない等の理由で、要求されたデータを返答できない場合に使用される。Rejectコマンドは、データ識別子S5006で特定されるデータの送信元が今回のSendRequestコマンドの送信元であったとき、キャッシュデータの逆流を防止するために使用される。
【００３５】
CacheClearコマンドは、データ識別子S5006で特定されるデータのキャッシュをクリアするコマンドである。
【００３６】
Loginコマンドは、端末装置がマルチキャストグループに参加するときに使用するコマンドであり、Logoutコマンドは、端末装置がマルチキャストグループから脱退するときに使用するコマンドである。
【００３７】
再び図２を参照すると、セッション情報記憶装置S1500は、自通信中継装置S1000に接続される端末装置のうち、ログインしてきた端末装置の識別情報をログインしたマルチキャストグループ（グループIDとチャネルIDの組）に対応してセッション情報として保持する。
【００３８】
セッション管理装置S1200は、接続装置S1100から転送されたLoginコマンドを含むデータ中のグループIDおよびチャネルIDに対応付けて、このデータ中の発信元S5004に記述された端末装置の識別情報をセッション情報としてセッション情報記憶装置S1500に登録し、以後、このセッション情報を参照してグループ通信を管理する。またセッション管理装置S1200は、接続装置S1100から転送されたデータをコマンド解析装置S1300に転送し、コマンド解析装置S1200から送り返されてくるデータについて、グループIDとチャネルID、送信先およびセッション情報記憶装置S1500のセッション情報に基づいて、転送先を決定し接続装置S1100に送信を依頼する。このとき、送信先に設定された端末装置がセッション情報記憶装置S1500に登録されている端末装置S3000の場合には、その端末装置S3000にデータを送信し、送信先に設定された端末装置がセッション情報記憶装置S1500に登録されていない端末装置の場合には、隣接する全ての他の通信中継装置S4000に送信する。また、送信先に指定がなく、マルチキャスト送信の場合は、セッション情報記憶装置S1500に登録された同一のグループID、チャネルIDの端末装置S3000に対してデータの送信を行い、他の通信中継装置S4000にも送信を行う。なお、送信先が［MCU］の場合には、端末装置S3000への送信は行わずに、通信中継装置S4000にだけ送信し、通信中継装置網にだけデータを配布して蓄積装置S2000にキャッシュする。
【００３９】
コマンド解析装置S1300は、セッション管理装置S1200から転送されてきた通信データのコマンドS5005に従って自通信中継装置S1000全般の制御を行うことにより、送受信されるデータのプロトコルを管理する。コマンドS5005には、前述したように、キャッシュをしないNoCache、キャッシュを更新しながら送信するCacheUpdate、キャッシュをクリアするCacheClear、キャッシュデータを上位の蓄積装置から送信していることを示すCacheData、キャッシュがどこにもないことを示すCacheMis、キャッシュデータの取得を要求するSendRequest、キャッシュデータの送信要求に対してキャッシュデータの送信経路ではないことを示すReject、マルチキャストグループへのログインを要求するLogin、そのログアウトを要求するLogoutが存在する。
【００４０】
コマンド解析装置S1300は、コマンドがLoginおよびLogoutの場合、直ちにセッション管理装置S1200に送り返し、セッション情報記憶装置S1500へのセッション情報の登録、削除を行わせる。またコマンド解析装置S1300は、コマンドがNoCacheの場合はキャッシュをしない通常のデータ送信であるので、この場合も直ちにセッション管理装置S1200に送り返す。コマンドがCacheUpdateの場合、コマンド解析装置S1300は、キャッシュ制御装置S1400にキャッシュを更新するように依頼し、その後、セッション管理装置S1200にデータを転送して送信先に従ったデータの配信を行わせる。ただし、送信先が［MCU］の場合は端末装置まで送信されず、通信中継装置S1000のキャッシュだけが更新される。また、キャッシュからの取得待ちをしていた端末装置あるいは通信中継装置に対しては、キャッシュが到達したのでCacheDataを送信する。コマンドがCacheClearの場合、コマンド解析装置S1300は、キャッシュ制御装置S1400に転送して蓄積装置S2000から該当データをクリアさせ、セッション管理装置S1200にデータを転送して送信先に転送させる。コマンドがCacheDataの場合、コマンド解析装置S1300は、キャッシュ制御装置S1400にキャッシュの更新を通知し、キャッシュからの取得待ちをしていた端末装置あるいは通信中継装置に対しては、送信先を指定してCacheDataを送信する。コマンドがCacheMisの場合はキャッシュに存在しなかったときの処理であり、キャッシュからの取得待ちをしていた端末装置あるいは通信中継装置に対して、送信先を指定してCacheMisを送信する。
【００４１】
コマンドがSendRequestの場合、コマンド解析装置S1300は、キャッシュ制御装置S1400からデータを取得する。キャッシュ制御装置S1400にキャッシュデータが存在する場合は直ちにCacheDataをSendRequestの送信元に返信する。ただし、キャッシュにあった場合でも、そのキャッシュデータが今回のSendRequestの送信元から送信されてきたものであれば、Rejectを送信する。逆流を防ぎキャッシュの一貫性を保つためである。送信元からの再配信要求を拒絶しなければ、データの一貫性が崩れる可能性がある。仮に拒絶しなければ、キャッシュデータを再度更新するシーケンスが発生した場合に、データの配信途中で古いデータと新しいデータが通信中継装置間でクロスして送受信される可能性があり、一貫性が崩れてしまう。また、キャッシュ制御装置S1400にキャッシュデータが存在しない場合、コマンド解析装置S1300は、このキャッシュデータの送信元に対して送信依頼を行うために、送信元を通信中継装置S1000に設定してSendRequestを送信する。なお、キャッシュデータの送信先が通信中継装置S1000に登録されていない場合は、他の通信中継装置S4000に送信元を通信中継装置S1000に設定してSendRequestを送信する。コマンドがRejectの場合、通信中継サーバS1000に接続している他の通信中継サーバS4000のすべてからRejectが帰ってきた時点で、コマンド解析装置S1300は、CacheMisを送信する。
【００４２】
蓄積装置S2000は、自通信中継装置にて送受信されるデータをキャッシュするための記憶装置であり、キャッシュ制御部S1400はその制御を行う装置である。蓄積装置S2000は、グループIDとチャネルIDの組ごとに生成されるキャッシュテーブルの集合を保有しており、キャッシュ制御部S1400は、コマンド解析装置S1300から転送されるデータのグループID S5001とチャネルID S5002の組に対応するキャッシュテーブルの集合に対して制御を行い、異なるグループIDとチャネルIDの組に対応するキャッシュテーブルに対する制御は行わない。このため、セッション管理装置S1200で管理されたグループIDとチャネルIDが異なればキャッシュテーブルを参照することができないので、他のグループまたは他のチャネルから蓄積装置S2000のデータを取得することはできない。
【００４３】
図３（ａ）を参照すると、蓄積装置S2000が備えるキャッシュテーブルS2100は、状態S2101、識別子S2102、時間S2103、経路情報S2104、要求送信経路S2105、要求待ちリストS2106、サイズS2107およびデータへのポインタS2108で構成される。
【００４４】
状態S2101は、キャッシュテーブルの使用状況を示し、キャッシュあり、キャッシュ要求中、未使用の３種類のステータスが入る。
【００４５】
識別子S2102には、データ識別子S5006が入り、一意な値をとる。キャッシュ制御装置S1400は、識別子S2102をキャッシュテーブルのキーとしてキャッシュの制御を行う。
【００４６】
時間S2103には、更新された時間、アクセスされた時間が入る。キャッシュ制御装置S1400は、新たなデータをキャッシュするための未使用のキャッシュテーブルがない場合、時間S2103の最も古いキャッシュデータを削除してキャッシュテーブルを再利用する。
【００４７】
経路情報S2104は、キャッシュデータがどこから送信されてきたかを示す経路情報を保持する。キャッシュ制御装置S1400は、経路情報S2104を参照して、若しキャッシュデータの送信元からキャッシュデータの取得要求があった場合、要求を拒否することでキャッシュデータの逆流を防ぐ。
【００４８】
要求送信経路S2105には、自通信中継装置S1000からSendRequestを転送した他の通信中継装置S4000等が列挙される。すべてからRejectが帰ってきた場合、あるいはCacheMisが帰ってきた場合に、CacheMisを要求元に送信するために利用される。
【００４９】
要求待ちリストS2106には、自通信中継装置S1000に対してSendRequestを発行した要求元が列挙される。キャッシュデータを取得したときに要求元にCacheDataを送信するため、或いは前述のようにCacheMisを要求元に送信するために利用される。
【００５０】
サイズS2107およびデータへのポインタS2108は、キャッシュデータの本体を格納するために利用される。例えば、データへのポインタS2108はキャッシュデータ本体の先頭アドレスを示し、サイズS2107はキャッシュデータ本体のサイズを示す。
【００５１】
次に端末装置S3000について説明する。端末装置S3000は、通信中継装置S1000を介して他の端末装置とデータの送受信を行う。送信するデータのコマンドとしては、NoCache、CacheUpdate、SendRequestを使用する。また、NoCache、CacheUpdate、SendRequest、CacheData、CacheMisのコマンドを含むデータを受信する。NoCache、CacheUpdateの送受信は、通常のデータの送受信と同等に処理する。SendRequestは、データの送信依頼であり、通信中継装置群内にキャッシュがあれば、通信中継装置S1000または他の通信中継装置S4000にて折り返される。どの通信中継装置にも存在しない場合は、送信要求先の端末装置まで送信され、キャッシュとしてデータを送信する場合は、CacheDataを送信し、なければCacheMisを送信する。
【００５２】
図１２を参照すると、端末装置S3000の一例は、接続装置S3101と、記憶装置S3102と、入力装置S3103と、出力装置S3104と、制御装置S3105とから構成されている。接続装置S3101は、自端末装置S3000と通信中継装置とを通信路を通じて相互に通信可能に接続するもので、制御装置S3105から送信データが渡されると、接続先の通信中継装置へ送信データを送信し、接続先の通信中継装置からデータを受信すると、受信データを制御装置S3105へ伝達する。記憶装置S3102は、端末装置S3000で送受信されるデータなどを記憶する。入力装置S3103は、キーボード、マイクロフォン、ビデオカメラなどで構成され、出力装置S3104は、表示装置、スピーカ、プリンタなどで構成される。制御装置S3105は、入力装置S3103から入力されたデータに基づいて送信データを記憶装置S3102上で組み立て、接続装置S3101を通じて通信中継装置へ送信したり、接続装置S3101で受信されたデータを記憶装置S3102に保存し、受信データ中の本体S5008を出力装置S3104から出力する。本実施の形態の特徴として、制御装置S3105は、自端末がサーバとなって他の端末にデータを配信する場合、通信中継装置S1000にデータをプッシュ型で配信した後、引き続き自動的に、配信したデータの識別子を通信中継装置S1000を通じて１以上の他の端末装置にマルチキャストで通知する動作を制御する。また、自端末がサーバからデータの配信を受ける端末の場合、他の端末装置からマルチキャストでデータ識別子S5006が通知されると、このデータ識別子を出力装置S3104から出力し、入力装置S3103から取得するデータの識別子が入力されると、この識別子のデータを通信中継装置S1000の蓄積装置S2000からプル型の配信で取得する動作を制御する。
【００５３】
通信中継装置S4000は、通信中継装置S1000に接続している他の通信中継装置であり、動作は通信中継装置S1000と全く同じである。
【００５４】
次に図４および図５のフローチャートを参照して、本実施の形態における通信中継装置の動作について詳細に説明する。
【００５５】
端末装置S3000または他の通信中継装置S4000から受信したデータが接続装置S1100で受信され、セッション管理装置S1200を通じてコマンド解析装置S1300に転送されると、コマンド解析装置S1300は、そのデータのコマンドS5005の種別によって処理を振り分ける（F1000）。
【００５６】
コマンドがNoCacheであった場合（F1100）、コマンド解析装置S1300は、キャッシュ制御装置S1400の関与は必要ないので、データを直ぐにセッション管理装置S1200に戻し、セッション管理装置S1200はデータを送信先に送付する（F1110）。
【００５７】
コマンドがCacheUpdateであった場合（F1200）、コマンド解析装置S1300は、キャッシュ制御装置S1400によりキャッシュの更新を行い（F1210）、キャッシュ更新が済むとセッション管理装置S1200により、CacheUpdateを指定したデータを送信先に転送し（F1220）、またキャッシュの要求待ちになっている端末装置あるいは他の通信中継装置に対してはCacheDataを送信する（F1230）。
【００５８】
コマンドがCacheClearであった場合（F1300）、コマンド解析装置S1300は、キャッシュ制御装置S1400により該当キャッシュをクリアし（F1310）、セッション管理装置S1200によりデータを配信先に転送する（F1320）。
【００５９】
コマンドがCacheDataであった場合（F1400）、コマンド解析装置S1300は、キャッシュ制御装置S1400によりキャッシュを更新し（F1410）、セッション管理装置S1200により、キャッシュの要求待ちになっている端末装置あるいは他の通信中継装置に対してCacheDataを送信する（F1420）。CacheUpdateとCacheDataの違いは、CacheUpdateはキャッシュを更新しながら指定した送信先にデータを送信するのに対して、CacheDataはSendRequestを出して要求待ちをした端末装置あるいは他の通信中継装置に対してだけ送信することである。必要ない端末装置には送信しない。
【００６０】
コマンドがCacheMisであった場合（F1500）、コマンド解析装置S1300は、キャッシュの要求待ちになっている端末装置あるいは他の通信中継装置に対してCacheMisを直ちに送信する（F1520）。
【００６１】
コマンドがSendRequestの場合（F1600）、コマンド解析装置S1300は図５（ａ）のフローに従った制御を行い、コマンドがRejectの場合（F1700）、コマンド解析装置S1300は図５（ｂ）のフローに従った制御を行う。
【００６２】
図５（ａ）を参照すると、まずコマンド解析装置S1300は、キャッシュ制御装置S1400により、SendRequestが設定されたデータのグループID S5001とチャネルID S5002の組に対応するキャッシュテーブルの集合内に、データ識別子S5006と同じ識別子S2102が設定され且つ状態S2101が「キャッシュあり」になっているキャッシュテーブルが存在するかどうかを検査する（F1610）。そのようなキャッシュテーブルが存在した場合、コマンド解析装置S1300は、存在したキャッシュテーブルの経路情報S2104からキャッシュデータの送信元を読み出し、今回のSendRequestコマンドの要求元と比較する（F1620）。キャッシュデータの送信元とSendRequestコマンドの要求元とが異なる場合、セッション管理装置S1200および接続装置S1100を通じてSendRequestコマンドの要求元に対して、CacheDataコマンドを設定したデータを送信する（F1630）。この送信されるデータの本体S5008には、前記存在したキャッシュテーブルのデータへのポインタS2108に従って読み出したデータが設定される。他方、キャッシュデータの送信元とSendRequestコマンドの要求元とが同じである場合、セッション管理装置S1200および接続装置S1100を通じてSendRequestコマンドの要求元に対して、Rejectコマンドを設定したデータを送信する（F1640）。
【００６３】
キャッシュ検査の結果、該当するキャッシュテーブルが存在しなかった場合、コマンド解析装置S1300は、他のSendRequestの処理を実施中かどうかを判定する（F1650）。具体的には、今回のSendRequestが設定されたデータのグループID S5001とチャネルID S5002の組に対応するキャッシュテーブルの集合内に、データ識別子S5006と同じ識別子S2102が設定され且つ状態S2101が「キャッシュ要求中」になっているキャッシュテーブルが存在するかどうかを判定する。若し、他のSendRequestの処理を実施中であれば、前記存在したキャッシュテーブルの要求待ちリストS2106に、今回SendRequestを送信してきた装置の情報を追加する（F1660）。他方、他のSendRequestの処理を実施中でなく、今回のSendRequestが最初のものであれば、今回のSendRequestが設定されたデータのグループID S5001とチャネルID S5002の組に対応するキャッシュテーブルの集合内に、今回のSendRequestで要求されたデータをキャッシュするための１つのキャッシュテーブルを確保し、以下の処理を実施する。
【００６４】
まず、今回のSendRequestのデータの送信先S5003で示される要求先になっている端末装置が、自通信中継装置S1000に接続しているかどうかを調べる（F1670）。これは、今回のSendRequestが設定されたデータのグループID S5001とチャネルID S5002の組に対応して、今回のSendRequestのデータの送信先S5003で示される要求先になっている端末装置が、セッション情報記憶装置S1500に登録されているかどうかを調べることで行われる。もし接続している場合には、今回のSendRequestを送信してきた装置を、新たに生成した或いはキャッシュミスしたキャッシュテーブルの要求待ちリストS2106に追加し（F1680）、要求先の端末装置にSendRequestを転送する（F1681）。なお、SendRequestを転送するときは、発信元S5004を自通信中継装置S1000に再設定し、このSendRequestの折り返しの応答である端末装置からのCacheDataを受信したら、その送信先S5003は自通信中継装置S1000になっているので、それを今回のSendRequestの送信元に再設定して、今回のSendRequestの送信元に送信する。当該キャッシュテーブルの要求待ちリストS2106に複数の要求待ちが登録されている場合には、送信先を要求元に応じて随時変えながら転送していくことで、SendRequestをした端末にだけCacheDataを送信する。複数の要求元から同じデータについて複数のSendRequestがあっても、自通信中継装置S1000からは１つのSendRequestを送信し、その応答であるCacheDataを各要求元に分配するので、効率的にCacheDataを送信することができる。
【００６５】
要求先の端末装置が自通信中継装置S1000に接続していない場合、コマンド解析装置S1300は、他の通信中継装置が自通信中継装置S1000に接続しているかどうかを調べ（F1690）、接続されていれば、今回のSendRequestを送信してきた装置を、新たに生成した或いはキャッシュミスしたキャッシュテーブルの要求待ちリストS2106に追加し（F1691）、自通信中継装置S1000に接続している全ての他の通信中継装置にSendRequestを送信する（F1692）。若し他の通信中継装置が自通信中継装置S1000に１つも接続されていなければ、コマンド解析装置S1300は、セッション管理装置S1200および接続装置S1100を通じてCacheMisを今回のSendRequestの要求元に送信する。
【００６６】
図５（ｂ）を参照すると、コマンドがRejectであった場合（F1700）、コマンド解析部S1300は、自通信中継装置S1000がSendRequestを送信した全ての他の通信中継装置からRejectが返信されてきたかを調査し（F1710）、まだRejectが帰ってきていない他の通信中継装置が存在したら何もせず、すべてからRejectが帰ってきたら、セッション管理装置S1200および接続装置S1100を通じてSendRequestの要求元に対してCacheMisを送信する（F1720）。
【００６７】
再び図４を参照すると、コマンドがLoginであった場合（F1800）、コマンド解析装置S1300は、データを直ぐにセッション管理装置S1200に戻す。セッション管理装置S1200は、データからグループID S5001とチャネルID S5002と発信元S5004を抽出し、抽出したグループID S5001とチャネルID S5002の組に対応付けて、抽出した発信元S5004が示す端末装置の情報をセッション情報記憶装置S1500に登録する（F1810）。
【００６８】
また、コマンドがLogoutであった場合（F1900）、コマンド解析装置S1300は、データを直ぐにセッション管理装置S1200に戻す。セッション管理装置S1200は、データからグループID S5001とチャネルID S5002と発信元S5004を抽出し、抽出したグループID S5001とチャネルID S5002の組に対応付してセッション情報記憶装置S1500に登録されている端末装置の情報から、抽出した発信元S5004が示す端末装置の情報を削除する（F1910）。
【実施例１】
【００６９】
次に、具体的な実施例を用いて本発明を実施するための最良の形態の動作を図６、図７、図８、図９、図１０を参照して説明する。
【００７０】
今、図６に示されるように、端末装置T1が通信中継装置C1に接続し、通信中継装置C1が通信中継装置C2および通信中継装置C3に接続し、通信中継装置C2が端末装置T2に接続し、通信中継装置C3が端末装置T3に接続しているネットワークにおいて、端末装置T1と端末装置T2と端末装置T3とがグループID＝Ga、チャネルID＝Caで特定されるマルチキャストグループを形成しているものとする。このとき、端末装置T1からのLoginコマンドを受信した通信中継装置C1では自装置のセッション情報記憶装置に、グループID＝Ga、チャネルID＝Caに対応して端末装置T1の情報を記憶している。同様に、端末装置T2、T3からのLoginコマンドを受信した通信中継装置C2、C3では自装置のセッション情報記憶装置に、グループID＝Ga、チャネルID＝Caに対応して端末装置T2、T3の情報を各々に記憶している。
【００７１】
上記の状態で、端末装置T1がサーバとなって端末装置T2と端末装置T3とに選択的に資料データXをマルチキャスト配信する場合を考える。この配信は、図７に示されるように、大きく分けて４つのフローで達成される。
【００７２】
まず、資料データXを通信中継装置網にキャッシュさせるフローがF2010、F2020、F2030である。端末装置T1からCacheUpdateコマンドを含む通信データをマルチキャスト配信して通信中継装置C1〜C3の蓄積装置に格納する（図７では、通信中継装置C3、端末装置T3は図示を省略している）。このとき送信先S5003を[MCU]とすることで、端末装置T2、T3まで到達せずに、通信中継装置網の蓄積装置に資料データXがキャッシュされる。より詳細な動作は次の通りである。
【００７３】
端末装置T1からは、図３（ｂ）の通信データフォーマットにおいて、グループID S5001にGa、チャネルID S5002にCa、送信先S5003に[MCU]、発信元S5004に自端末、コマンドS5005にCacheUpdate、データ識別子S5006に資料データの識別子X、サイズS5007に資料データXのサイズ、本体S5008に資料データXを設定し、通信中継装置C1へ送信する。通信中継装置C1では、データを受信すると、自装置の蓄積装置に資料データXを蓄積し、送信先S5003が[MCU]なので、データを通信中継装置C2と通信中継装置C3に転送する。通信中継装置C2は、データを受信すると、自装置の蓄積装置に資料データXを蓄積し、送信先S5003が[MCU]なので、端末装置T2へはデータを転送しない。通信中継装置C3も、データを受信すると、自装置の蓄積装置に資料データXを蓄積し、送信先S5003が[MCU]なので、端末装置T3へはデータを転送しない。蓄積装置の資料データXを蓄積するキャッシュテーブルでは、状態S2101が「キャッシュあり」、識別子S2102がX、時間S2103がキャッシュした時刻、経路情報S2104は、通信中継装置C1では端末装置T1、通信中継装置C2、C3では通信中継装置C1になっている。また、要求送信経路S2105と要求待ちリストS2106はNULL、サイズS2107は資料データXのサイズ、データへのポインタS2108は資料データXの記憶アドレスになっている。
【００７４】
次に、資料データXを直ちに取得するよう要求するアプリケーションコマンドを端末装置T1から配信するのがF2040、F2050、F2060、F2070のフローである。アプリケーションコマンドには、取得を要求するデータの識別子が含まれる。このアプリケーションコマンドは、端末装置T1から送信先を指定せずにマルチキャスト配信され、同じマルチキャストグループに接続している全ての端末装置T2、T3に送信される。ここでは、アプリケーションコマンドをCacheUpdateで送信しているが、NoCacheで送信することもできる。NoCacheで送信すると、キャッシュされないので、この時点で動作している端末装置だけがこのアプリケーションコマンドを受信できる。上記のF2040、F2050、F2060、F2070のフローのより詳細な動作は次の通りである。
【００７５】
端末装置T1からは、図３（ｂ）の通信データフォーマットにおいて、グループID S5001にGa、チャネルID S5002にCa、送信先S5003にマルチキャストの指定、発信元S5004に自端末、コマンドS5005にCacheUpdate、データ識別子S5006にアプリケーションコマンドの識別子、サイズS5007にアプリケーションコマンドのサイズ、本体S5008にアプリケーションコマンドを設定し、通信中継装置C1へ送信する。通信中継装置C1では、データを受信すると、CacheUpdateなので自装置の蓄積装置にアプリケーションコマンドをキャッシュする。また、送信先S5003がマルチキャスト指定なので、自装置のセッション情報記憶装置を参照し、グループID＝GaとチャネルID＝Caの組に対応するマルチキャストグループに属する端末装置は端末装置T1だけが記録されているので、自装置に接続される他の端末装置へは送信せずにデータを通信中継装置C2と通信中継装置C3に転送する。通信中継装置C2は、データを受信すると、自装置の蓄積装置にアプリケーションコマンドをキャッシュし、自装置のセッション情報記憶装置を参照し、グループID＝GaとチャネルID＝Caの組に対応するマルチキャストグループに属する端末装置として端末装置T2が記録されているので、端末装置T2へデータを転送する。図７には図示されていないが、通信中継装置C3も、データを受信すると、自装置の蓄積装置にアプリケーションコマンドをキャッシュし、自装置のセッション情報記憶装置を参照し、グループID＝GaとチャネルID＝Caの組に対応するマルチキャストグループに属する端末装置として端末装置T3が記録されているので、端末装置T3へデータを転送する。
【００７６】
次に、端末装置T2において、資料データXを取得するために、通信中継装置C2に対してSendRequestを実施するフローがF2080、F2090である。今の場合、通信中継装置C2は既に該当データをキャッシュしているので、直ちにCacheDataを端末装置T2に送信する。これがF2100、F2110のフローである。より詳細な動作は次の通りである。
【００７７】
端末装置T1からは、図３（ｂ）の通信データフォーマットにおいて、グループID S5001にGa、チャネルID S5002にCa、送信先S5003にサーバとして動作している端末装置T1、発信元S5004に自端末、コマンドS5005にSendRequest、データ識別子S5006に資料データの識別子X、サイズS5007と本体S5008は省略して、通信中継装置C2へ送信する。通信中継装置C2では、データを受信すると、グループID＝GaとチャネルID＝Caとの組に対応するキャッシュテーブルの集合から識別子Xを識別子S2102に持つキャッシュテーブルを検索し、検索が成功し且つ状態S2101がキャッシュありであれば、データへのポインタS2108で示される場所から資料データXを読み出し、CacheDataコマンドで端末装置T2に送信する。つまり、図３（ｂ）の通信データフォーマットにおいて、グループID S5001にGa、チャネルID S5002にCa、送信先S5003に端末装置T2、発信元S5004に自装置、コマンドS5005にCacheData、データ識別子S5006に資料データの識別子X、サイズS5007に資料データXのサイズ、本体S5008に資料データXを設定し、端末装置T2に送信する。
【００７８】
図７には、端末装置T3のフローは図示されていないが、端末装置T3においても資料データXを必要とする場合には、通信中継装置C3にSendRequestを送出することで資料データXを直ちに取得することができる。但し、端末装置によっては、例えば既に資料データXを取得しているので改めて取得する必要がない、或いは自端末は機能が制限された携帯端末であり資料を取得しても有効に表示できないなどの理由で、資料データXを必要としない場合がある。そのような端末装置の場合、F2080のフローは発生する必要がない。このようにして、必要な端末装置にだけ効率的にマルチキャスト配信することができる。
【００７９】
次に、図８を用いて新たに端末装置が参加したときの動作を説明する。ここでは、端末装T1〜T3のグループに端末装置T2’が途中から参加するものとして説明する。CacheUpdateをマルチキャスト配信して資料データXを通信中継装置の蓄積装置に格納するフローF3010、F3020、F3030は図７のフローF2010、F2020、F2030と同じであり、資料データXを直ちに取得するよう要求するアプリケーションコマンドを配信するフローF3040、F3050、F3060は図７のフローF2040、F2050、F2060のフローと同じである。しかし、端末装置T2’はこの時点ではまだグループID＝GaとチャネルID＝Caの組に対応するマルチキャストグループに参加していないので、資料データXおよび資料取得のアプリケーションコマンドは受信していない。端末装置T2’が参加すると、端末装置T1はF3070、F3080、F3090、F3100のフローにより、初期データを新規参加端末の端末装置T2’に配信する。この初期データは最初に何を取得するべきかの情報が格納されている。例えば、この情報はF3010およびF3040のフローにより送信されたデータの識別子を含んでいる。端末装置T2’はF3110、F3120のフローにより、通信中継装置C2に対してキャッシュデータの送信を依頼し、F3130、F3140のフローにより通信中継装置C2からキャッシュデータが端末装置T2’に送信される。以上のフローにより、端末装置T2’が途中から参加した場合でも、サーバとしての端末装置T1にかかる負荷を最小限にして、参加前に他の端末装置間で送受信されたデータを取得することができる。
【００８０】
次に図９を用いて端末装置T2が接続している直近の通信中継装置C2がキャッシュミスをした場合の動作を説明する。F4010にてSendRequestが送信されると、F4020にて通信中継装置C2がキャッシュミスする。キャッシュにない場合は、F4030にて他の通信中継装置C1に対してSendRequestを送信する。通信中継装置C1にてキャッシュにヒットした場合はF4040にてCacheDataをSendRequestの送信先に送付する。F4050ではSendRequest待ちをしている端末装置T2に対してCacheDataを転送し、F4060にて端末装置T2がデータを取得する。
【００８１】
次に、図６の構成において端末装置T3から他の端末装置T1、T2へ資料データYを、CacheUpdate、送信先＝［MCU］でマルチキャスト配信し、資料データYを取得するために端末装置T1がSendRequestを送信した際に、通信中継装置C1でキャッシュミスした場合を想定して、キャッシュデータの逆流を阻止する動作を説明する。
【００８２】
図１０において、端末装置T1からSendRequestするフローがF5010である。このとき端末装置T1から送信されるデータの送信先S5003は端末装置T3である。F5020にてSendRequestが通信中継装置C1でキャッシュミスした場合には、F5030において通信中継装置C1が接続している通信中継装置C2にSendRequestを送信し、同時にF5040にて通信中継装置C3に対してSendRequestを送信する。これは、通信中継装置C1には送信先S5003で指定された端末装置T3が接続されていないためである。このようにSendRequestを接続する全ての通信中継装置に送付することで、すべての通信中継装置が膨大なすべての端末装置の接続経路を記憶しておく必要がない。F5030では通信中継装置C2にてSendRequestに対してキャッシュにヒットしたがRejectを送信する。これは、端末装置T3から送信された資料データYは、通信中継装置C3→通信中継装置C1→通信中継装置C2という経路で通信中継装置C2に届いており、キャッシュされている資料データYの送信元は通信中継装置C1であったからである。このように送信元からの再配信要求を拒絶しなければ、データの一貫性が崩れる可能性がある。仮に拒絶しなければ、キャッシュデータを再度更新するシーケンスが発生した場合に、データの配信途中で古いデータと新しいデータが通信中継装置間でクロスして送受信される可能性があり、一貫性が崩れてしまう。F5060では通信中継装置C3においてキャッシュにヒットした場合に、F5070にてCacheDataを送信する。通信接続装置C3は接続している通信接続装置C1に対してF5080にてCachedataを送信し、F5090にてCacheDataが端末装置T1に到達する。
【００８３】
以上本発明の実施の形態および実施例について説明したが、本発明は以上の例に限定されず、その他各種の付加変更が可能である。また、本発明の通信中継装置および端末装置は、その有する機能をハードウェア的に実現することは勿論、コンピュータとプログラムとで実現することができる。通信中継装置用プログラムは、磁気ディスクや半導体メモリ等のコンピュータ可読記録媒体に記録されて提供され、通信中継装置を構成するコンピュータの立ち上げ時などにコンピュータに読み取られ、そのコンピュータの動作を制御することにより、そのコンピュータを前述した実施の形態における通信中継装置の接続装置、セッション管理装置、コマンド解析装置およびキャッシュ制御装置として機能させる。また、端末装置用プログラムは、磁気ディスクや半導体メモリ等のコンピュータ可読記録媒体に記録されて提供され、端末装置を構成するコンピュータの立ち上げ時などにコンピュータに読み取られ、そのコンピュータの動作を制御することにより、そのコンピュータを前述した実施の形態における端末装置の接続装置および制御装置として機能させる。
【産業上の利用可能性】
【００８４】
本発明によれば、多人数が参加する大規模なリアルタイム電子会議システムにおいて、会議サーバとなる端末装置から資料データを効率的にマルチキャスト配信して、特定の会議端末だけがネットワーク上の通信網から資料データをプル取得するといった用途に適用できる。また、リアルタイムな映像配信システムにおいて、途中の中継装置に映像のシーンを蓄積しておいて、映像の再生装置である端末装置が通信網からシーンをプル取得し、リアルタイムに通知しなければならないトリガ情報は映像の再生装置にまでマルチキャストプッシュ配信するといった用途に適用できる。
【図面の簡単な説明】
【００８５】
【図１】本発明の実施の形態のブロック図である。
【図２】本発明の実施の形態における通信中継装置のブロック図である。
【図３】本発明の実施の形態におけるキャッシュテーブルおよび通信データの構成を示す図である。
【図４】本発明の実施の形態にかかる通信中継装置の動作を示すフロー図である。
【図５】本発明の実施の形態にかかる通信中継装置の動作を示すフロー図である。
【図６】本発明の実施例の構成図である。
【図７】本発明の実施例の基本的な動作を示すフロー図である。
【図８】本発明の実施例において端末が途中参加した時の動作を示すフロー図である。
【図９】本発明の実施例において通信中継装置でキャッシュミスした時の動作を示すフロー図である。
【図１０】本発明の実施例においてキャッシュデータの逆流を阻止する動作を示すフロー図である。
【図１１】本発明の実施の形態における通信データに含まれるコマンドの説明図である。
【図１２】本発明の実施の形態における端末装置のブロック図である。
【符号の説明】
【００８６】
T1000…通信中継装置群
T1110、T1210、T1310、S1000、S4000…通信中継装置
T1120、T1220、T1320、S2000…蓄積装置
T2000…端末装置群
T2100、T2200、T2300、T2400、S3000…端末装置
S1100…接続装置
S1200…セッション管理装置
S1300…コマンド解析装置
S1400…キャッシュ制御装置
S1500…セッション情報記憶装置
【図１】
2006311013.tif 000003
【図２】
2006311013.tif 000004
【図３】
2006311013.tif 000005
【図４】
2006311013.tif 000006
【図５】
2006311013.tif 000007
【図６】
2006311013.tif 000008
【図７】
2006311013.tif 000009
【図８】
2006311013.tif 000010
【図９】
2006311013.tif 000011
【図１０】
2006311013.tif 000012
【図１１】
2006311013.tif 000013
【図１２】
2006311013.tif 000014