(57)【要約】【課題】効率良く高い信頼性でデータを同報配信できるようにすること。【解決手段】ブロードキャスト（マルチキャスト）を利用した１対多のデータ配信において、再送制御をクライアント主導で実現するようにしている。すなわちファイルサーバ４ｄから、配信されるデータの属性を予めクライアント端末に通知し、その属性に基づいてクライアント端末が不達のデータブロックの有無を判定して、適切なタイミングでファイルサーバ４ｄに再送要求を出す。【選択図】      図３
2010154161.tif 000002
【特許請求の範囲】
【請求項１】
配信元のサーバから配信先の複数のクライアントに向けデータを同報的に配信するためのデータ配信方法において、
前記サーバは、前記データを分割した複数のデータブロックを前記クライアントの各々に向け各データブロックごとの送達確認を待たずに送信し、
前記クライアントの各々は、一定の期間内で不達のデータブロックの再送を前記サーバに要求し、
前記サーバは、再送を要求されたデータブロックのみを要求元のクライアントに再送信することを特徴とするデータ配信方法。
【請求項２】
配信元のサーバから配信先の複数のクライアントに向けデータを同報的に配信するためのデータ配信方法において、
前記サーバは、前記データを分割した複数のデータブロックを前記クライアントの各々に向け各データブロックごとの送達確認を待たずに送信し、
前記クライアントの各々は、不達のデータブロックが一定数に達すればそれらの不達のデータブロックの再送を前記サーバに要求し、
前記サーバは、再送を要求されたデータブロックのみを要求元のクライアントに再送信することを特徴とするデータ配信方法。
【請求項３】
前記サーバは、前記複数のデータブロックの総数を含む前記データの属性を前記クライアントの各々に通知し、
前記クライアントの各々は、不達のデータブロックの有無を前記通知された属性に基づいて判定することを特徴とする請求項１および２のいずれか記載のデータ配信方法。
【請求項４】
前記クライアントの各々は、不達のデータブロックの再送を前記サーバに互いにランダムなタイミングで要求することを特徴とする請求項１および２のいずれかに記載のデータ配信方法。
【請求項５】
複数のクライアントに向けデータを同報的に配信するサーバコンピュータに読み込まれるプログラムであって、
前記サーバコンピュータに、
前記データを分割した複数のデータブロックを前記クライアントの各々に向け各データブロックごとの送達確認を待たずに送信する処理を実行させる命令と、
再送を要求されたデータブロックのみを要求元のクライアントに再送信する処理を実行させる命令とを含むことを特徴とするプログラム。
【請求項６】
さらに、前記複数のデータブロックの総数を含む前記データの属性を前記クライアントの各々に通知する処理を前記サーバコンピュータに実行させる命令を含むことを特徴とする請求項５記載のプログラム。
【請求項７】
データを分割した複数のデータブロックを同報的に配信するサーバから前記データブロックを受信するクライアントコンピュータに読み込まれるプログラムであって、
前記クライアントコンピュータに、
一定の期間内で不達のデータブロックの再送を前記サーバに要求する処理を実行させる命令を含むことを特徴とするプログラム。
【請求項８】
データを分割した複数のデータブロックを同報的に配信するサーバから前記データブロックを受信するクライアントコンピュータに読み込まれるプログラムであって、
前記クライアントコンピュータに、
不達のデータブロックが一定数に達すればそれらの不達のデータブロックの再送を前記サーバに要求する処理を実行させる命令を含むことを特徴とするプログラム。
【請求項９】
さらに、前記サーバから通知される前記データブロックの総数を含む前記データの属性に基づいて不達のデータブロックの有無を判定する処理を前記クライアントコンピュータに実行させる命令を含むことを特徴とする請求項７および８のいずれか記載のプログラム。
【請求項１０】
さらに、不達のデータブロックの再送を他のクライアントコンピュータと互いにランダムなタイミングで要求する処理を前記クライアントコンピュータに実行させる命令を含むことを特徴とする請求項７および８のいずれかに記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、データ配信方法と、この方法をコンピュータに実施させるためのプログラムに関する。
【背景技術】
【０００２】
近年のデータ通信の殆どはＩＰ（Internet Protocol）ネットワーク上で行われ、ＴＣＰ（Transmission Control Protocol）、あるいはＵＤＰ（Use Datagram protocol）が目的に応じて使い分けられる。前者は信頼性を、後者はリアルタイム性を重視する通信に相性が良い。例えば特許文献１ではＵＤＰを利用することで道路交通情報通信システムへの好適な応用を図っている。
【０００３】
特許文献１ではピアツーピアでの通信を想定しており、このような形態でのファイル転送にはＨＴＴＰ（HyperText Transfer Protocol）あるいはＦＴＰ（File Transfer Protocol）が利用される。しかしながらネットワーク上の通信はクライアントとサーバとが１対１で結ばれる形態だけではなく、１対多、あるいは多対多での通信形態も頻繁に生じ得る。このような形態でのデータ転送にはＨＴＴＰ、ＦＴＰのいずれも不向きである。そこでマルチキャスト（ＩＰマルチキャスト）、あるいはブロードキャストが用いられる。
【０００４】
サーバから複数のネットワークノードに同じデータを配信するにはマルチキャストが有効である。例えばアンチウイルスソフトのウイルスパターンファイルをサーバからクライアントにダウンロードする、というアプリケーションでは、転送先を指定可能なマルチキャストが用いられる。
【特許文献１】特開２００１−３３９４３４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
既存のマルチキャストあるいはブロードキャストによれば、サーバの主導による再送制御を伴うので、全てのデータ配信先からの応答を管理する必要がある。特に、ＴＣＰで採用されるスライディングウインドウ方式はピアツーピアでは効率良くデータを配信できるものの、同じ手法をブロードキャストに当てはめると応答確認を取れない機器がタイムラグを生み、ウインドウをスムーズにスライドできない。比較的サイズの大きいデータを高い信頼性で、かつ多数のクライアントに効率よく配信可能な技術の提供が待たれている。
【０００６】
この発明は上記事情によりなされたもので、その目的は、効率良く高い信頼性でデータを配信することの可能なデータ配信方法とその実現のためのプログラムを提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するためにこの発明の一態様によれば、配信元のサーバから配信先の複数のクライアントに向けデータを同報的に配信するためのデータ配信方法において、前記サーバは、前記データを分割した複数のデータブロックを前記クライアントの各々に向け各データブロックごとの送達確認を待たずに送信し、前記クライアントの各々は、一定の期間内で不達のデータブロックの再送を前記サーバに要求し、前記サーバは、再送を要求されたデータブロックのみを要求元のクライアントに再送信することを特徴とするデータ配信方法が提供される。
【０００８】
このような手段を講じることにより、例えばマルチキャスト、あるいはブロードキャストといったデータの同報送信処理において、各データブロックごとの送達確認が省略される。その代わりに、各クライアントにおいて一定の期間内における不達のデータブロックが管理され、例えばその期間を周期とするタイミングごとに、不達のデータブロックの再送がサーバに要求される。クライアントにおいては不達のデータブロックの有無を、予めサーバから通知されるデータの属性（データブロックの総数など）に基づいて判定することができる。このような手法によれば同報送信においてクライアントの主導による再送制御が実現され、送達確認のためのメッセージ授受にかかる時間を短縮して効率を高められるとともに、不達のデータに対しては再送制御がなされるので、信頼性を高めることも可能になる。
【発明の効果】
【０００９】
この発明によれば、効率良く高い信頼性でデータを配信することの可能なデータ配信方法とその実現のためのプログラムを提供することができる。
【発明を実施するための最良の形態】
【００１０】
図１は、この発明に係わるデータ配信方法が実施される通信システムの一例を示す図である。図１において、互いに異なるネットワーク１ｃ、２ｃ、３ｃ、４ｃは、それぞれルータ１ａ、２ａ、３ａ、４ａを介してインターネット（Ｉｎｔｅｒｎｅｔ）に接続される。このうちネットワーク４ｃは、ＬＡＮ（Local Area Network）上に設けられる複数のクライアント端末と、これらの端末にファイルサーバ３ｄとを備える。他のネットワーク１ｃ、２ｃ、３ｃも複数のクライアント端末を備える。
【００１１】
以下では、ネットワーク４ｃに属するクライアント端末４ｂと、ネットワーク３ｃに属するクライアント端末３ｂとに、ファイルサーバ４ｄからのデータファイルを同報で配信するケースを考える。この配信にあたりブロードキャストあるいはマルチキャストの手法を一部流用できる。
【００１２】
図２は、図１のファイルサーバ４ｄおよびクライアント端末３ｂの実施の形態を示す機能ブロック図である。図２において、ファイルサーバ４ｄは通信インタフェース１５を介してインターネットに接続され、各クライアント端末と双方向に通信する。またファイルサーバ４ｄはプログラムメモリ１０、ストレージユニット１１、およびＣＰＵ（Central Processing Unit）１６を備える。ＣＰＵ１６はプログラムメモリ１０に記憶されるプログラムに記載された命令を処理し、この実施形態に必要な種々の処理機能を実現する。ストレージユニット１１は例えばハードディスクドライブ（ＨＤＤ）などの記録メディアであり、クライアント端末に送出すべきデータファイル１１ａを記憶する。このデータファイル１１ａのサイズは一つのパケットで送信することはできない程度に大きいと想定する。よってファイルサーバはこのデータファイル１１ａを複数のデータブロックに分割し、それぞれに通し番号を付与してブロードキャストパケットを生成する。ブロードキャストパケットを利用することで同時に複数のクライアントへの配信が可能になる。
【００１３】
プログラムメモリ１０はこの実施形態に係わるプログラムブロックとして、送信処理ブロック１２、再送処理ブロック１３、および通知処理ブロック１４を備える。これらの処理ブロックがコンピュータとしてのファイルサーバ４ｄにロードされＣＰＵ１６により実行されることで、ＣＰＵ１６は、ファイルサーバとしての処理機能を提供する。
【００１４】
送信処理ブロック１２は、データファイル１１ａを分割した複数のデータブロックを、クライアント端末（ここでは３ｂ、４ｂ）の各々に向けて送信する。通常では個々のデータブロックごとに送達確認シーケンスを要するが、ここでは送信処理ブロック１２は、各データブロックを送達確認を待たずに、いわば垂れ流し的に送信する。
【００１５】
再送処理ブロック１３は、クライアント端末から例えば一定期間ごとに通知される再送要求に対してのみ、要求されたデータブロックを要求元のクライアント端末に再送信する。通知処理ブロック１４は、データ配信にあたり最初に実施されるシーケンスにおいて、データファイル１１ａの属性を配信先のクライアント端末の各々に通知する。データファイル１１ａの属性には、例えばそのサイズ、拡張子、データ種別、あるいは分割したデータブロックの総数、通し番号などが挙げられる。
【００１６】
図２におけるクライアント端末３ｂもコンピュータ端末であり、ファイルサーバ４ｄから配信される複数のデータブロックを受信してデータファイルを再生する。クライアント端末３ｂは通信インタフェース３０を介してインターネットに接続され、表示部３１、キーボード３２、マウス３３、制御部３４、およびメモリ３５を備える。表示部３１は例えば液晶ディスプレイである。
【００１７】
メモリ３５はこの実施形態に係わるプログラムブロックとして、再送要求処理ブロック３５ａと、判定処理ブロック３５ｂとを備える。これらの処理ブロックが制御部３４にロードされ実行されることで、制御部３４はクライアントとしての処理機能を提供する。  
再送要求処理ブロック３５ａは、例えば一定の期間内で不達のデータブロックの有無を監視し、不達のデータブロックが生じればその再送をファイルサーバ４ｄに要求する。あるいは再送要求処理ブロック３５ａは、不達のデータブロックが一定数に達すれば、それらの不達のデータブロックの再送をファイルサーバ４ｄに要求する。その際、再送要求処理ブロック３５ａは、ファイルサーバ４ｄに宛てた再送要求メッセージを他のクライアント端末とは異なるランダムなタイミングで送信する。
【００１８】
判定処理ブロック３５ｂは、ファイルサーバ４ｄから通知される、データファイル１１ａの属性に基づいて、不達のデータブロックの有無を判定する。具体的には、例えば通し番号の欠落などにより不達のデータブロックの有無を検出することができる。なおクライアント端末４ｂを含む他のクライアント端末も、クライアント端末４ｂと同様の構成を持つ。次に、上記構成における作用を説明する。
【００１９】
図３は、図２のファイルサーバ４ｄとクライアント端末３ｂ、４ｂとの間で実施される処理手順を示すシーケンス図である。図３においてファイルサーバ４ｄは、データファイル１１ａの配信に先立ち、このデータファイル１１ａの属性を示す情報を情報通知メッセージによりクライアント端末３ｂ、４ｂにブロードキャストで通知する。次いでファイルサーバ４ｄは各クライアント端末３ｂ、４ｂからの、情報通知メッセージに対する受領確認メッセージの到来を待つ。受領確認メッセージの返信の無いままタイムアウトすれば、ファイルサーバ４ｄは再び情報通知メッセージを送出し、このメッセージが宛先のクライアント端末に届いたことが確認されるまでこの処理を繰り返す。ここまでは多数のクライアントの存在に対応するため、ファイルサーバ４ｄが主体となって再送制御を行う。
【００２０】
次に、クライアント端末３ｂ、４ｂからの受領確認メッセージを受けると、ファイルサーバ４ｄはデータブロックの配信を開始する。すなわちファイルサーバ４ｄは、通し番号を付与したデータブロックを先頭の番号から順次配信する。その際、ファイルサーバ４ｄはクライアント端末から応答を待たずに、次々とデータブロックを送信する。
【００２１】
クライアント端末３ｂ、４ｂは、受信したデータブロックの通し番号の欠落を監視し、不達のデータブロックの有無を判定する。一定期間内（例えば１０秒）に不達のデータブロックがあれば、これを検出したクライアント端末はそのデータブロックに対する再送要求を直ちに出すことをせず、その通し番号のみを蓄積する。そして一定期間が経過すれば、蓄積した通し番号を含む再送要求メッセージをファイルサーバ４ｄに送信する。
【００２２】
図３では、クライアント端末３ｂが不達のデータブロックを検出し、再送要求メッセージを送出したことが示される。これを受けたファイルサーバ４ｄは、通知された通し番号のデータブロックに再送フラグを立て、このデータブロックを要求元のクライアント端末３ｂに返送したのち、引き続きデータブロックの配信を継続する。
【００２３】
以上説明したようにこの実施形態によれば、ブロードキャスト（マルチキャスト）を利用した１対多のデータ配信において、再送制御をクライアント主導で実現するようにしている。すなわちファイルサーバ４ｄから、配信されるデータの属性を予めクライアント端末に通知し、その属性に基づいてクライアント端末が不達のデータブロックの有無を判定して、適切なタイミングでファイルサーバ４ｄに再送要求を出すようにしている。
【００２４】
このようにクライアント主導で再送制御を実施するようにしたので、ファイルサーバ側で応答を管理する必要が無くなる。従って、スライディングウインドウ方式を採用せずとも効率の良いデータ配信を実現することが可能になる。これらのことから、効率良く高い信頼性でデータを同報配信することの可能なデータ配信方法とその実現のためのプログラムを提供することが可能となる。
【００２５】
なお、この発明は上記実施の形態に限定されるものではない。例えばデータファイルを分割して生成されるブロードキャストパケットのサイズは、固定長でも、あるいはネットワークの状態（主に負荷）によって可変するようにしてもよい。いずれの方式にするかをシステム運用者の設定により切り替えられるようにしてもよい。ネットワークの負荷を計測するには、例えばルータ１ａ〜４ａの機能を利用すればよい。
【００２６】
またデータファイルの種別は如何なるものでも良く、信頼性を要するデータのほか、比較的制約の緩い映像、音声などのマルチメディアデータであってもよい。  
さらにこの発明は、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。
【図面の簡単な説明】
【００２７】
【図１】この発明に係わるデータ配信方法が実施される通信システムの一例を示す図。
【図２】図１のファイルサーバ４ｄおよびクライアント端末３ｂの実施の形態を示す機能ブロック図。
【図３】図２のファイルサーバ４ｄとクライアント端末３ｂとの間で実施される処理手順を示すシーケンス図。
【符号の説明】
【００２８】
１ｃ，２ｃ，３ｃ，４ｃ…ネットワーク、１ａ，２ａ，３ａ，４ａ…ルータ、３ｂ，４ｂ…クライアント端末、１１…ストレージユニット、１１ａ…データファイル、１０…プログラムメモリ、１２…送信処理ブロック、１３…再送処理ブロック、１４…通知処理ブロック、１５…通信インタフェース、１６…ＣＰＵ、３０…通信インタフェース、３１…表示部、３２…キーボード、３３…マウス、３４…制御部、３５…メモリ、３５ａ…再送要求処理ブロック、３５ｂ…判定処理ブロック
【図１】
2010154161.tif 000003
【図２】
2010154161.tif 000004
【図３】
2010154161.tif 000005