(57)【特許請求の範囲】
【請求項１】
単数の配信サーバと不特定多数の端末装置とがネットワークを介して相互に接続され、前記配信サーバが複数のブロックに分割されて予め記憶された送信対象データをブロードキャスト方式によって前記各端末装置に対して送信するブロードキャスト配信システムであって、
前記各端末が、
前記配信サーバから前記各ブロックを受信して予め備えられた記憶手段に記憶するデータ受信部と、前記送信対象データの中でまだ受信していない前記ブロックがある場合に、その未受信のブロックを送信するよう前記配信サーバに要求する要求データを作成する要求データ生成部と、作成された前記要求データを前記配信サーバに送信する要求データ送信部と
を有すると共に、
前記配信サーバが、
前記各端末からの前記要求データを受信する要求データ受信部と、受信した前記要求データに基づいて前記各端末に対していずれの前記ブロックを送信するかを決定する送信データ制御部と、決定された前記ブロックを前記各端末に対して送信するデータ送信部と
を有し、
前記送信データ制御部が、
残り１ブロックを受信すれば前記送信対象データが全て揃う前記端末が存在する場合にはこれに該当する端末からの要求データで最も多く送信を要求されているブロックを送信するよう決定し、残り１ブロックを受信すれば前記送信対象データが全て揃う前記端末が存在しない場合には前記各ブロックの中で最も多くの端末からの要求データで送信を要求されているブロックを送信するよう決定する機能を有することを特徴とするブロードキャスト配信システム。
【請求項２】
前記配信サーバの前記送信データ制御部が、
前記端末からの前記要求データが受信されなくなった場合に前記送信対象データの送信を停止する機能を有することを特徴とする、請求項１に記載のブロードキャスト配信システム。
【請求項３】
前記各端末の前記要求データ生成部が、
送信を要求するブロックと当該ブロックの送信を要求した回数である要求回数とを前記要求データに含める機能を有すると共に、
前記配信サーバが、
前記要求回数が２以上である場合に当該ブロックをより小さい容量に分割するブロック分割結合部を有し、
前記送信データ制御部が、前記分割されたブロックを前記データ送信部に送信させることを特徴とする、請求項１に記載のブロードキャスト配信システム。
【請求項４】
前記配信サーバの前記送信データ制御部が、前記分割されたブロックが正常に受信された旨の応答を前記端末から得た場合に、前記ブロック分割結合部に前記分割されたブロックを元通りに結合させることを特徴とする、請求項３に記載のブロードキャスト配信システム。
【請求項５】
不特定多数の端末装置とネットワークを介して相互に接続され、複数のブロックに分割されて予め記憶された送信対象データをブロードキャスト方式によって前記各端末装置に対して送信する配信サーバであって、
前記各端末が前記送信対象データの中でまだ受信していない前記ブロックを送信するよう要求する要求データを受信する要求データ受信部と、
受信した前記要求データに基づいて前記各端末に対していずれの前記ブロックを送信するかを決定する送信データ制御部と、
決定された前記ブロックを前記各端末に対して送信するデータ送信部と
を有し、
前記送信データ制御部が、
残り１ブロックを受信すれば前記送信対象データが全て揃う前記端末が存在する場合にはこれに該当する端末からの要求データで最も多く送信を要求されているブロックを送信するよう決定し、残り１ブロックを受信すれば前記送信対象データが全て揃う前記端末が存在しない場合には前記各ブロックの中で最も多くの端末からの要求データで送信を要求されているブロックを送信するよう決定する機能を有することを特徴とする配信サーバ。
【請求項６】
単数の配信サーバと不特定多数の端末装置とがネットワークを介して相互に接続され、前記配信サーバが複数のブロックに分割されて予め記憶された送信対象データをブロードキャスト方式によって前記各端末装置に対して送信するブロードキャスト配信システムにあって、
前記各端末の要求データ作成部が、前記送信対象データの中でまだ受信していない前記ブロックがある場合に、その未受信のブロックを送信するよう前記配信サーバに要求する要求データを作成し、
前記各端末の要求データ送信部が、作成された前記要求データを前記配信サーバに送信し、
前記配信サーバの要求データ受信部が、前記各端末からの前記要求データを受信し、
前記配信サーバの送信データ制御部が、受信した前記要求データに基づいて、残り１ブロックを受信すれば前記送信対象データが全て揃う前記端末が存在する場合にはこれに該当する端末からの要求データで最も多く送信を要求されているブロックを送信するよう決定し、残り１ブロックを受信すれば前記送信対象データが全て揃う前記端末が存在しない場合には前記各ブロックの中で最も多くの端末からの要求データで送信を要求されているブロックを前記各端末に対して送信するよう決定し、
前記配信サーバのデータ送信部が、決定された前記ブロックを前記各端末に対して送信し、
前記各端末のデータ受信部が、前記配信サーバから前記各ブロックを受信して予め備えられた記憶手段に記憶する
ことを特徴とするブロードキャスト配信方法。
【請求項７】
単数の配信サーバと不特定多数の端末装置とがネットワークを介して相互に接続され、前記配信サーバが複数のブロックに分割されて予め記憶された送信対象データをブロードキャスト方式によって前記各端末装置に対して送信するブロードキャスト配信システムにあって、
前記配信サーバが備えるコンピュータに、
前記各端末が前記送信対象データの中でまだ受信していない前記ブロックを送信するよう要求する要求データを受信する手順、
受信した前記要求データに基づいて、残り１ブロックを受信すれば前記送信対象データが全て揃う前記端末が存在する場合にはこれに該当する端末からの要求データで最も多く送信を要求されているブロックを送信するよう決定し、残り１ブロックを受信すれば前記送信対象データが全て揃う前記端末が存在しない場合には前記各ブロックの中で最も多くの端末からの要求データで送信を要求されているブロックを前記各端末に対して送信するよう決定する手順、
および決定された前記ブロックを前記各端末に対して送信する手順
を実行させることを特徴とするブロードキャスト配信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はブロードキャスト配信システム、配信サーバ、端末装置、ブロードキャスト配信方法およびプログラムに関し、特にデータ送信に係る時間およびデータ量のロスを軽減することを可能とするブロードキャスト配信システム等に関する。
【背景技術】
【０００２】
一つのコンピュータからネットワークを介して他のコンピュータにデータを送信する方式には、大きく分けてユニキャスト、マルチキャスト、ブロードキャストと呼ばれる３通りがある。１台だけのコンピュータに対してデータを送信する場合をユニキャスト、不特定でない複数台のコンピュータに対して同一のデータを送信する場合をマルチキャスト、不特定多数のコンピュータに対して同一のデータを送信する場合をブロードキャストという。
【０００３】
ブロードキャスト方式によるデータ送信は、送信元が送信先のコンピュータのＩＰアドレスなどを一々指定する必要が無いので、たとえばファームウェアやオペレーティングシステムのアップデートなどのように、同一のデータを不特定多数のコンピュータ宛てに届ける必要のある場合には適している。
【０００４】
さらに、送信先のコンピュータの数がいくつであっても、送信経路上のルータがデータを必要数だけコピーするので、送信元から送信されるデータパケットは一つだけで済む。従って、ネットワークにかかる負担が小さくて済むという利点もある。
【０００５】
これに関連して、以下のような技術資料がある。その中でも特許文献１には、ファームウェアを複数のブロックに分割して同報通信で送信するというアップデート方法について記載されている。特許文献２には、複数のブロックに分割して同報通信で送信したファームウェアで、抜けブロックの発生を抑制するというアップデート方法が記載されている。
【０００６】
特許文献３には、ファームウェアをパッケージファイルとして送受信するというアップデート方法が記載されている。特許文献４には、ネットワークに接続されたダウンロードツールによって複数のネットワーク機器用のファームウェアをダウンロードするというダウンロードシステムが記載されている。
【０００７】
特許文献５には、一斉同報によってサーバから複数の移動端末にプログラムを配信するというダウンロードシステムが記載されている。そして非特許文献１には、前述したユニキャスト、マルチキャスト、ブロードキャストの各送信方式の違いについて解説されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１１−０６６５２９号公報
【特許文献２】特開２０１１−２８８０２６号公報
【特許文献３】特表２０１１−５２２３０２号公報
【特許文献４】特開２００４−１５７７３３号公報
【特許文献５】特開２００３−０５１７９６号公報
【非特許文献】
【０００９】
【非特許文献１】槻ノ木隆、「その３１『ブロードキャスト／マルチキャスト／ユニキャスト』」（「槻ノ木隆のＢＢっとＷＯＲＤＳ」より）、平成１７年３月２８日、インプレス株式会社、［平成２３年１２月２８日検索］、インターネット＜URL：http://bb.watch.impress.co.jp/cda/bbword/9021.html＞
【発明の概要】
【発明が解決しようとする課題】
【００１０】
前述のように、ブロードキャスト方式によるデータ送信は、たとえばファームウェアやオペレーティングシステムのアップデートなどのように、同一のデータを多数のコンピュータ宛てに届ける必要のある場合に行われることが多い。しかしながら、そのデータを受信する側の全ての端末が、同等の通信環境にあるわけではない。たとえば回線の種類、通信速度、通信品質、いずれも千差万別である。そのため、サーバが送信した同一のデータを、正常に受信できる端末と受信に失敗する端末とがどうしても出てくる。
【００１１】
加えて、そのデータを必要とする全ての端末が、同じタイミングで当該データの受信に加わることができるわけではない。たとえば、他の処理に時間を取られていたり、電源投入のタイミングが違っていたりなどで、当該データの受信を開始する時間が他のコンピュータと比べて遅れる場合も当然あり得る。
【００１２】
ブロードキャスト方式によるデータ送信では、サーバは同一のデータを連続して繰り返して送信するのが普通である。そのため、一部のデータを受信できなかった端末は、同じデータがサーバから再び送信されるまで待つ必要がある。これは時間的にも、また送信されるデータ量的にも、多大なロスとなる。
【００１３】
図１０は、一般的なブロードキャスト配信システム９０１の構成を示す説明図である。このブロードキャスト配信システム９０１は、サーバ９１０と、不特定多数の端末９２０とがネットワーク９３０を介して相互に接続されて構成されるが、この端末９２０は、サーバ９１０が繰り返し送信するデータを正常に受信し終えた端末群９２０Ａと、受信し終えていない端末群９２０Ｂとに分かれる。
【００１４】
この際、未受信の端末群９２０Ｂに属する端末９２０は、未受信のデータをサーバ９１０に直接要求して再送してもらうことはできない。サーバ９１０が全ての端末９２０からのそのような要求に一々対応すると、ブロードキャスト方式のメリットが損なわれ、ネットワークやサーバ９１０にかかる負担が一気に増大するからである。結局、端末群９２０Ｂに属する端末９２０は、サーバ９１０からそのデータが再び送信されるまで待つことになり、多大なロスが発生することとなる。
【００１５】
この問題を解決しうる技術は、前述の各文献には記載されていない。一つのプログラムを複数のブロックに分割して同報通信で送信するという技術は、特許文献１〜２などに記載されている。しかしながら、これらの技術では、各端末は未受信のデータの再送をサーバに依頼しているので、やはりネットワークやサーバにかかる負担が増大することになる。この点は、他の文献に記載の技術でも解決されない。
【００１６】
本発明の目的は、ネットワークやサーバにかかる負担を増大させることなく、各端末が未受信データの再送を待つことによって生じる時間およびデータ量のロスを軽減することを可能とするブロードキャスト配信システム、配信サーバ、端末装置、ブロードキャスト配信方法およびプログラムを提供することにある。
【課題を解決するための手段】
【００１７】
上記目的を達成するため、本発明に係るブロードキャスト配信システムは、単数の配信サーバと不特定多数の端末装置とがネットワークを介して相互に接続され、配信サーバが複数のブロックに分割されて予め記憶された送信対象データをブロードキャスト方式によって各端末装置に対して送信するブロードキャスト配信システムであって、各端末が、配信サーバから各ブロックを受信して予め備えられた記憶手段に記憶するデータ受信部と、送信対象データの中でまだ受信していないブロックがある場合に、その未受信のブロックを送信するよう配信サーバに要求する要求データを作成する要求データ生成部と、作成された要求データを配信サーバに送信するデータ送信部とを有すると共に、配信サーバが、各端末からの要求データを受信するデータ受信部と、受信した要求データに基づいて各端末に対していずれのブロックを送信するかを決定する送信データ制御部と、決定されたブロックを各端末に対して送信するデータ送信部とを有し、送信データ制御部が、残り１ブロックを受信すれば送信対象データが全て揃う端末が存在する場合にはこれに該当する端末からの要求データで最も多く送信を要求されているブロックを送信するよう決定し、残り１ブロックを受信すれば送信対象データが全て揃う端末が存在しない場合には各ブロックの中で最も多くの端末からの要求データで送信を要求されているブロックを送信するよう決定する機能を有することを特徴とする。
【００１８】
上記目的を達成するため、本発明に係る配信サーバは、不特定多数の端末装置とネットワークを介して相互に接続され、複数のブロックに分割されて予め記憶された送信対象データをブロードキャスト方式によって各端末装置に対して送信する配信サーバであって、各端末が送信対象データの中でまだ受信していないブロックを送信するよう要求する要求データを受信するデータ受信部と、受信した要求データに基づいて各端末に対していずれのブロックを送信するかを決定する送信データ制御部と、決定されたブロックを各端末に対して送信するデータ送信部とを有し、送信データ制御部が、残り１ブロックを受信すれば送信対象データが全て揃う端末が存在する場合にはこれに該当する端末からの要求データで最も多く送信を要求されているブロックを送信するよう決定し、残り１ブロックを受信すれば送信対象データが全て揃う端末が存在しない場合には各ブロックの中で最も多くの端末からの要求データで送信を要求されているブロックを送信するよう決定する機能を有することを特徴とする。
【００２０】
上記目的を達成するため、本発明に係るブロードキャスト配信方法は、単数の配信サーバと不特定多数の端末装置とがネットワークを介して相互に接続され、配信サーバが複数のブロックに分割されて予め記憶された送信対象データをブロードキャスト方式によって各端末装置に対して送信するブロードキャスト配信システムにあって、各端末の要求データ作成部が、送信対象データの中でまだ受信していないブロックがある場合に、その未受信のブロックを送信するよう配信サーバに要求する要求データを作成し、各端末のデータ送信部が、作成された要求データを配信サーバに送信し、配信サーバのデータ受信部が、各端末からの要求データを受信し、配信サーバの送信データ制御部が、受信した要求データに基づいて、残り１ブロックを受信すれば送信対象データが全て揃う端末が存在する場合にはこれに該当する端末からの要求データで最も多く送信を要求されているブロックを送信するよう決定し、残り１ブロックを受信すれば送信対象データが全て揃う端末が存在しない場合には各ブロックの中で最も多くの端末からの要求データで送信を要求されているブロックを各端末に対して送信するよう決定し、配信サーバのデータ送信部が、決定されたブロックを各端末に対して送信し、各端末のデータ受信部が、配信サーバから各ブロックを受信して予め備えられた記憶手段に記憶することを特徴とする。
【００２１】
上記目的を達成するため、本発明に係るブロードキャスト配信プログラムは、単数の配信サーバと不特定多数の端末装置とがネットワークを介して相互に接続され、配信サーバが複数のブロックに分割されて予め記憶された送信対象データをブロードキャスト方式によって各端末装置に対して送信するブロードキャスト配信システムにあって、配信サーバが備えるコンピュータに、各端末が送信対象データの中でまだ受信していないブロックを送信するよう要求する要求データを受信する手順、受信した要求データに基づいて、残り１ブロックを受信すれば送信対象データが全て揃う端末が存在する場合にはこれに該当する端末からの要求データで最も多く送信を要求されているブロックを送信するよう決定し、残り１ブロックを受信すれば送信対象データが全て揃う端末が存在しない場合には各ブロックの中で最も多くの端末からの要求データで送信を要求されているブロックを各端末に対して送信するよう決定する手順、および決定されたブロックを各端末に対して送信する手順を実行させることを特徴とする。
【発明の効果】
【００２３】
本発明は、上述したように、各端末が受信したいブロックを配信サーバに対して要求し、配信サーバは各端末からの要求に基づいて多数決で送信するブロックを決定するように構成したので、ネットワークやサーバにかかる負担を増大させないというブロードキャスト方式のメリットが損われることなく、送信するブロックを適切に選択して送信することができる。
【００２４】
これによって、ネットワークやサーバにかかる負担を増大させることなく、各端末が未受信データの再送を待つことによって生じる時間およびデータ量のロスを軽減することが可能であるという優れた特徴を持つブロードキャスト配信システム、配信サーバ、端末装置、ブロードキャスト配信方法およびプログラムを提供することができる。
【図面の簡単な説明】
【００２５】
【図１】本発明の第１の実施形態に係るブロードキャスト配信システムの構成を示す説明図である。
【図２】図１に示したサーバの送信データ格納部に記憶されている送信対象データの構成について示す説明図である。
【図３】図１に示したサーバおよび端末の相互間の動作について示すフローチャートである。
【図４】図３のステップＳ３０５として示された、送信データ制御部による「次にどのブロックを送信するか」を決定する動作についてより詳しく示すブロック図である。
【図５】図３〜４に示したサーバおよび端末の相互間の動作の例について示す説明図である。
【図６】図３〜４に示したサーバおよび端末の相互間の別の動作の例について示す説明図である。
【図７】本発明の第２の実施形態に係るブロードキャスト配信システムの構成を示す説明図である。
【図８】図７に示したサーバおよび端末の相互間の動作について示すフローチャートである。
【図９】図８のステップＳ８０７として示した動作で、ブロック分割結合部がそのブロックを２ブロックに分割して送信する動作について示す説明図である。
【図１０】一般的なブロードキャスト配信システム９０１の構成を示す説明図である。
【発明を実施するための形態】
【００２６】
（第１の実施形態）
以下、本発明の実施形態の構成について添付図１に基づいて説明する。
最初に、本実施形態の基本的な内容について説明し、その後でより具体的な内容について説明する。
本実施形態に係るブロードキャスト配信システム１は、単数の配信サーバ（サーバ１０）と不特定多数の端末装置（端末２０）とがネットワークを介して相互に接続され、配信サーバが複数のブロックに分割されて予め記憶された送信対象データをブロードキャスト方式によって各端末装置に対して送信するブロードキャスト配信システムである。各端末２０は、配信サーバから各ブロックを受信して予め備えられた記憶手段に記憶するデータ受信部２０１と、送信対象データの中でまだ受信していないブロックがある場合に、その未受信のブロックを送信するよう配信サーバに要求する要求データを作成する要求データ生成部２０３と、作成された要求データを配信サーバに送信する要求データ送信部２０４とを有する。また配信サーバ１０は、各端末からの要求データを受信する要求データ受信部１０２と、受信した要求データに基づいて各端末に対していずれのブロックを送信するかを決定する送信データ制御部１０４と、決定されたブロックを各端末に対して送信するデータ送信部１０１とを有する。そして送信データ制御部１０４は、各ブロックの中で最も多くの端末からの要求データで送信を要求されているブロックを送信するよう決定する機能を有する。
【００２７】
また、配信サーバ１０の送信データ制御部１０４は、残り１ブロックを受信すれば送信対象データが全て揃う端末が存在する場合に、その端末からの要求データで送信を要求されているブロックを送信するよう決定する機能を有する。さらに、配信サーバ１０の送信データ制御部１０４は、端末からの要求データが受信されなくなった場合に送信対象データの送信を停止する機能を有する。
【００２８】
以上の構成を備えることによって、本実施形態に係るブロードキャスト配信システム１は、ネットワークやサーバにかかる負担を増大させることなく、各端末が未受信データの再送を待つことによって生じる時間およびデータ量のロスを軽減することが可能ものとなる。
以下、これをより詳細に説明する。
【００２９】
図１は、本発明の第１の実施形態に係るブロードキャスト配信システム１の構成を示す説明図である。ブロードキャスト配信システム１は、サーバ１０と不特定多数の端末２０とがネットワーク３０を介して相互に接続されて構成される。サーバ１０は、単数のコンピュータ装置であっても複数のコンピュータ装置であってもよい。
【００３０】
端末２０は、不特定多数のコンピュータ装置であり、いずれもサーバ１０から同一のデータを受信しようとしているものである。紙面の都合で、図１には１台のサーバ１０および３台の端末２０についてのみ図示している。
【００３１】
サーバ１０は、コンピュータ装置としての基本的な構成を備えている。即ち、コンピュータプログラムの動作主体であるプロセッサ１１と、プログラムおよびデータを記憶する記憶手段１２と、ネットワーク３０を介して他の装置との通信を行う通信手段１３と、ネットワーク管理者が操作入力を行う入力手段１４とを備える。
【００３２】
このプロセッサ１１は、ブロードキャスト配信プログラムが動作することにより、データ送信部１０１、要求データ受信部１０２、要求データ解析部１０３、送信データ制御部１０４として機能する。また、記憶手段１２には、記憶領域として送信データ格納部１１１が確保されている。
【００３３】
端末２０もまた、コンピュータ装置としての基本的な構成を備えている。即ち、コンピュータプログラムの動作主体であるプロセッサ２１と、プログラムおよびデータを記憶する記憶手段２２と、ネットワーク３０を介して他の装置との通信を行う通信手段２３とを備える。
【００３４】
このプロセッサ２１は、ブロードキャスト受信プログラムが動作することにより、データ受信部２０１、受信データ制御部２０２、要求データ生成部２０３、要求データ送信部２０４として機能する。また、記憶手段２２には、記憶領域として受信データ格納部２１１が確保されている。
【００３５】
図２は、図１に示したサーバ１０の送信データ格納部１１１に記憶されている送信対象データ１２０の構成について示す説明図である。この送信対象データ１２０は、１２０ａ〜ｊの１０ブロックに分割されて、送信データ格納部１１１に記憶されている。ブロードキャスト配信システム１では、この送信対象データ１２０が、各々の端末２０が受信しようとしているデータである。
【００３６】
この例では、送信対象データ１２０は、各端末２０のファームウェア更新用データであるものとするが、たとえばオペレーティングシステムやアプリケーションソフトの更新用データなどでもよい。
【００３７】
図２で示した例では送信対象データ１２０を１０個のデータブロック（以後単にブロックという）に分割しているが、この分割数は、送信データ制御部１０４が１ブロック当たりのサイズを設定する事によって動的に決定することが可能である。ここでは、説明を平易なものとするために、１０ブロック固定に分割するものとしたに過ぎない。
【００３８】
図３は、図１に示したサーバ１０および端末２０の相互間の動作について示すフローチャートである。この図３も、サーバ１０および端末２０の各１台ずつについて示しているが、実際にはサーバ１０は全ての端末２０に対してこれと同様の動作を行っている。
【００３９】
まず、システム管理者がサーバ１０の側で、入力手段１４を操作して送信対象データ１２０を送信データ格納部１１１に記憶し、１ブロック当たりのサイズを設定してブロック１２０ａ〜ｊに分割して（ステップＳ３０１）、ブロードキャスト送信開始を指令すると、データ送信部１０１は最初にブロック１２０ａの送信を開始する（ステップＳ３０２）。通常の技術ではブロック１２０ａの次はブロック１２０ｂ、次いでブロック１２０ｃ…のように順次送信されていく所ではあるが、本実施形態での送信順の決定については後述する。
【００４０】
サーバ１０からのデータを受けた端末２０では（ステップＳ３５１）、データ受信部２０１がその受信したブロックを受信データ格納部２１１に記憶する（ステップＳ３５２）。そして、受信データ制御部２０２が、全てのブロックのデータが揃ったか否かについて判断する（ステップＳ３５３）。ここで、全てのブロックのデータが揃ったか否かを判断するための基準は、データ送信部１０１が各ブロックを送信する際に付与するデータヘッダで宣言されている送信対象データ１２０の総容量、総ブロック個数、１ブロック当たりのデータサイズなどである。
【００４１】
ステップＳ３５３で、全てのブロックのデータが揃ったと判断されれば、その全てのデータを利用して当該端末２０のファームウェアの更新を実行して（ステップＳ３５６）処理を終了する。全てのブロックのデータが揃っていないと判断されれば、要求データ生成部２０３が、その不足したデータを送信するようサーバ１０に要求するデータを作成し（ステップＳ３５４）、その要求データを要求データ送信部２０４がサーバ１０に向けて送信して（ステップＳ３５５）、端末２０側の処理はステップＳ３５１に戻って次のブロックの受信を待つ。
【００４２】
要求データを受けたサーバ１０では、要求データ受信部１０２がこの要求データを受信したか否かを判断し（ステップＳ３０３）、受信すれば要求データ解析部１０３がその要求データの内容を解析してどの端末２０がどのブロックを要求しているかについて解析し（ステップＳ３０４）、これに基づいて送信データ制御部１０４が次にどのブロックを送信するかを決定する（ステップＳ３０５、詳細は図４に後述）。
【００４３】
そして制御が前述のステップＳ３０２に戻り、ステップＳ３０５で決定されたブロックをデータ送信部１０１が送信する。以後この動作の繰り返しとなる。ステップＳ３０３で、要求データをどの端末２０からも受信しなかったら、全ての端末２０が送信対象データ１２０の受信を完了したことになるので、要求データ受信部１０２はサーバ１０による送信対象データ１２０の送信を終了させる。
【００４４】
図４は、図３のステップＳ３０５として示された、送信データ制御部１０４による「次にどのブロックを送信するか」を決定する動作についてより詳しく示すブロック図である。送信データ制御部１０４は、サーバ１０へアクセスする各端末２０からの要求データの統計を取り、最も多くの端末２０から要求されているデータブロックを算出することで、配信するデータブロックの優先度を制御する。
【００４５】
送信データ制御部１０４は、各端末２０から受信した要求データについて統計を取って、最も多くの端末から要求されている順に各ブロックの送信優先度を決定する（ステップＳ４０１）。そして、各端末２０の中に残りブロック数＝１の端末が存在するか否かを判断し（ステップＳ４０２）、存在しなければ後述のステップＳ４０５に進む。なお、残りブロック数＝１の端末が存在するか否かの判断には、各端末２０が各ブロックを受信成功した時にサーバ１０に返信するＡＲＰ応答などを記録して、各端末２０ごとの受信済ブロックを記憶するようにしてもよい。あるいは、各端末２０が要求データに残りブロック数を含めて送信するようにしてもよい。
【００４６】
ステップＳ４０２で残りブロック数＝１の端末が存在すれば、残りブロック数＝１の端末から最も多く要求されているブロックと、サーバ１０から次回送信される予定（送信優先度が最上位）のブロックとが一致するか否かを判断する（ステップＳ４０３）。一致すればそのまま後述のステップＳ４０５に進む。一致しなければ、残りブロック数＝１の端末から最も多く要求されているブロックの送信優先度を最上位として決定して（ステップＳ４０４）、後述のステップＳ４０５に進む。これによって、残りブロック数＝１の端末が存在する場合に、その端末に対して優先的にアップデートを促すことができる。
【００４７】
そして送信データ制御部１０４は、送信優先度が最上位であるブロックを、データ送信部１０１に送信させる（ステップＳ４０５）。以上で、図３のステップＳ３０５として示された、送信データ制御部１０４の動作は終了する。
【００４８】
図５は、図３〜４に示したサーバ１０および端末２０の相互間の動作の例について示す説明図である。この例では、サーバ１０が各端末２０に対して送信する送信対象データ１２０は、図２に示したようにブロック１２０ａ〜ｊ（Ａ〜Ｊ）の１０ブロックに分割されている。そして、３台の端末２０ａ、２０ｂ、２０ｃがその送信対象データ１２０を受信しようとしている。本来なら端末２０は不特定多数の台数がサーバ１０に接続されるものであるが、ここでは本発明の概念を平易に示すため、３台のみの端末２０ａ〜ｃを示している。
【００４９】
ブロードキャスト通信では、サーバ１０が各ブロック１２０ａ〜ｊ（Ａ〜Ｊ）のデータを繰り返して順番に送信する。端末２０ａおよび２０ｂは、同一のタイミングでサーバ１０にアクセスして送信対象データ１２０を受信しているが、端末２０ｃは他の端末２０ａおよび２０ｂと比べて、送信対象データ１２０の受信を開始するタイミングが異なっている。
【００５０】
そのため、端末２０ａおよび２０ｂはブロック１２０ａ、１２０ｂ、１２０ｃ、１２０ｄ（Ａ，Ｂ，Ｃ，Ｄ）の４ブロックの受信を正常に完了したが、端末２０ｃはブロック１２０ａ、１２０ｂ（Ａ，Ｂ）とブロック１２０ｉ、１２０ｊ（Ｉ，Ｊ）の４ブロックの受信を正常に完了している。即ち、送信対象データ１２０の受信を開始するタイミングが異なったため、各端末が受信を完了したブロックが一律ではないという状況が発生したことになる。
【００５１】
ここで、端末２０ａおよび２０ｂはブロック１２０ｅ（Ｅ）を、端末２０ｃは１２０ｃ（Ｃ）を、ステップＳ３５４〜３５５の要求データで、次に受信するデータとして要求する。ステップＳ３０３〜３０４の動作でこれら端末２０ａ〜ｃからの要求データを受けたサーバ１０では、ステップＳ３０５（図４）の動作で次に送信するブロックを決定する。
【００５２】
この例では、残りブロック数＝１である端末は存在せず、ブロック１２０ｅ（Ｅ）を要求する端末が２台、ブロック１２０ｃ（Ｃ）を要求する端末が１台であるので、ブロック１２０ｅ（Ｅ）が次に送信されるブロックとして決定され、データ送信部１０１がこれを送信する。
【００５３】
その結果、端末２０ａおよび２０ｂはブロック１２０ａ、１２０ｂ、１２０ｃ、１２０ｄ、１２０ｅ（Ａ，Ｂ，Ｃ，Ｄ，Ｅ）の受信を完了した。端末２０ｃはブロック１２０ａ、１２０ｂ、１２０ｅ、１２０ｉ、１２０ｊ（Ａ，Ｂ，Ｅ，Ｉ，Ｊ）の受信を完了した。そして、端末２０ａおよび２０ｂはブロック１２０ｆ（Ｆ）を、端末２０ｃは１２０ｃ（Ｃ）を、次に受信するデータとして要求する。サーバ１０はこれに応じて、ブロック１２０ｆを送信する。以後同様の動作を、端末２０ａ〜ｃの全てが送信対象データ１２０（ブロック１２０ａ〜ｊ）の全てを受信し終わるまで繰り返す。
【００５４】
図６は、図３〜４に示したサーバ１０および端末２０の相互間の別の動作の例について示す説明図である。図５と同様に、送信対象データ１２０はブロック１２０ａ〜ｊの１０ブロックに分割され、３台の端末２０ａ、２０ｂ、２０ｃがその送信対象データ１２０を受信しようとしている。その中で、端末２０ａのみがブロック１２０ａ〜ｉ（Ａ〜Ｉ）の９ブロックの受信を完了していて、端末２０ｂおよび２０ｃはブロック１２０ａ〜ｈ（Ａ〜Ｈ）の８ブロックの受信を完了したにとどまっている。
【００５５】
ここで、端末２０ａはブロック１２０ｊ（Ｊ）を、端末２０ｂおよび２０ｃは１２０ｉ（Ｉ）を、次に受信するデータとして要求する。これら端末２０ａ〜ｃからの要求データを受けたサーバ１０では、端末２０ａのみが残りブロック数＝１であるので、ブロック１２０ｊ（Ｊ）を要求する端末が１台、ブロック１２０ｉ（Ｉ）を要求する端末が２台であるが、ここではブロック１２０ｊ（Ｊ）の方が優先的に送信されることとなる。その結果、端末２０ａはブロック１２０ａ〜ｊ（送信対象データ１２０）の全てが揃い、優先的にファームウェアの更新を実行することができる。
【００５６】
（第１の実施形態の全体的な動作）
次に、上記の実施形態の全体的な動作について説明する。
本実施形態に係るブロードキャスト配信方法は、単数の配信サーバ１０と不特定多数の端末装置２０とがネットワークを介して相互に接続され、配信サーバが複数のブロックに分割されて予め記憶された送信対象データをブロードキャスト方式によって各端末装置に対して送信するブロードキャスト配信システム１にあって、各端末の要求データ作成部が、送信対象データの中でまだ受信していないブロックがある場合に、その未受信のブロックを送信するよう配信サーバに要求する要求データを作成し（図３・ステップＳ３５４）、各端末の要求データ送信部が、作成された要求データを配信サーバに送信し（図３・ステップＳ３５５）、配信サーバの要求データ受信部が、各端末からの要求データを受信し（図３・ステップＳ３０３）、配信サーバの送信データ制御部が、受信した要求データに基づいて、各ブロックの中で最も多くの端末からの要求データで送信を要求されているブロックを各端末に対して送信するよう決定し（図３・ステップＳ３０４〜３０５）、配信サーバのデータ送信部が、決定されたブロックを各端末に対して送信し（図３・ステップＳ３０２）、各端末のデータ受信部が、配信サーバから各ブロックを受信して予め備えられた記憶手段に記憶する（図３・ステップＳ３５１〜３５２）。
【００５７】
ここで、上記各動作ステップについては、これをコンピュータで実行可能にプログラム化し、これらを前記各ステップを直接実行する配信サーバ１０および端末２０のプロセッサ１１および２１に実行させるようにしてもよい。本プログラムは、非一時的な記録媒体、例えば、ＤＶＤ、ＣＤ、フラッシュメモリ等に記録されてもよい。その場合、本プログラムは、記録媒体からコンピュータによって読み出され、実行される。
この動作により、本実施形態は以下のような効果を奏する。
【００５８】
本実施形態によれば、サーバは各端末からの要求データに基づいて多数決で送信するブロックを決定する。これによって、サーバはより適切なブロックを選択して送信することができるようになり、各端末が未受信データの再送を待つことによって生じる時間およびデータ量のロスを軽減することが可能となる。
【００５９】
特に、あと１ブロックを受信すれば全ての送信対象データが揃うという端末に対しては、優先してその「残り１ブロック」を送信するので、たとえばファームウェアのアップデートなどのような用途で、より多くの端末に対してファームウェアの更新に入れるようにすることができる。
【００６０】
このことによるネットワークやサーバにかかる負担の増大は、この要求データの分のみである。通常のブロードキャスト方式によるデータ送信でも、各端末はＡＲＰ応答などのような応答パケットをサーバに対して送信しているので、これはネットワークやサーバにかかる負担を増大させるものではない。従って、ブロードキャスト方式のメリットを損なうことはなく、ネットワークやサーバにかかる負担を不用意に増大させることもない。
【００６１】
（第２の実施形態）
本発明の第２の実施形態に係るブロードキャスト配信システム５０１は、各端末５２０の要求データ生成部７０３が、送信を要求するブロックと当該ブロックの送信を要求した回数である要求回数とを要求データに含める機能を有すると共に、配信サーバ５１０が、要求回数が２以上である場合に当該ブロックをより小さい容量に分割するブロック分割結合部６０５を有し、送信データ制御部６０４が、分割されたブロックをデータ送信部に送信させる。さらに、配信サーバ５１０の送信データ制御部６０４が、分割されたブロックが正常に受信された旨の応答を端末から得た場合に、ブロック分割結合部に分割されたブロックを元通りに結合させる。
【００６２】
この構成によっても第１の実施形態と同一の効果が得られるのに加えて、さらに当該ブロックをより小さい容量に分割して送信することにより、送受信の成功率を向上させることが可能となる。
以下、これをより詳細に説明する。
【００６３】
図７は、本発明の第２の実施形態に係るブロードキャスト配信システム５０１の構成を示す説明図である。ブロードキャスト配信システム５０１は、第１の実施形態とは異なるサーバ５１０および端末５２０が、第１の実施形態と同一のネットワーク３０を介して相互に接続されて構成される。図１と同様に紙面の都合で、図７には１台のサーバ５１０および３台の端末５２０についてのみ図示している。
【００６４】
サーバ５１０および端末５２０は、ハードウェアとしては第１の実施形態のサーバ１０および端末２０と各々同一の構成を有する。また、ソフトウェアとしても一部が異なるのみで、大部分は第１の実施形態と同一である。従って、第１の実施形態と同一である要素については、同一の呼称および参照番号でいう。
【００６５】
サーバ５１０のプロセッサ１１で動作する各機能部は、データ送信部１０１および要求データ受信部１０２は第１の実施形態と同一であり、データ解析部６０３および送信データ制御部６０４は第１の実施形態と異なる。これに加えて、ブロック分割結合部６０５が新たに追加される。
【００６６】
端末５２０のプロセッサ２１で動作する各機能部は、データ受信部２０１、受信データ制御部２０２、および要求データ送信部２０４は第１の実施形態と同一であり、要求データ生成部７０３が第１の実施形態と異なる。以上の点以外は、第１の実施形態と同一である。
【００６７】
図８は、図７に示したサーバ５１０および端末５２０の相互間の動作について示すフローチャートである。これも、図３に示した第１の実施形態の動作と同一の処理については、同一のステップ番号でいう。サーバ５１０における動作は、ステップＳ３０１〜３０５が第１の実施形態の動作と同一である。同様に、端末５２０における動作も、ステップＳ３５１〜３５３が第１の実施形態の動作と同一である。
【００６８】
端末５２０において、要求データ生成部７０３は、サーバ５１０に送信する要求データとして、次に受信したいブロック番号だけでなく、送信対象データ１２０を構成するために受信する必要がある残りブロック数、およびそのブロックに対する受信要求が何回目であるかを示す要求回数を含めた要求データを生成し（ステップＳ８５４）、これを要求データ送信部２０４に渡してサーバ５１０に送信させる（ステップＳ８５５）。
【００６９】
これを受信したサーバ５１０では、データ解析部６０３がこの要求データに含まれる残りブロック数および要求回数を解析して送信データ制御部６０４に渡す（ステップＳ３０４５）。これを受けた送信データ制御部６０４は、第１の実施形態と同様にして次に送信するブロックを決定する（ステップＳ３０５）。そして、次に送信しようとするブロックが、端末５２０から受信した要求データで要求回数≧２であるか否か、即ち「端末５２０が受信に失敗して再送を要求する」ブロックであるか否かを判断する（ステップＳ８０６）。要求回数＝１であれば第１の実施形態と同様にそのブロックをデータ送信部１０１に送信させる。
【００７０】
ステップＳ８０６で、要求回数≧２であれば、ブロック分割結合部６０５がそのブロックを２ブロックに分割し、これをデータ送信部１０１に送信させる（ステップＳ８０７）。これによって、端末５２０の側で受信が成功する確率を高くすることが可能となる。そして、分割して送信した後で端末５２０から受信成功の旨が返信されたか否かをチェックし（ステップＳ８０８）、失敗したらステップＳ８０７に戻ってそのブロックの再送を繰り返す。成功したら、ブロック分割結合部６０５は分割していたブロックを再び結合して（ステップＳ８０９）元の処理を継続する。ちなみにステップＳ８０８でいう「受信成功の旨」とは、ＡＲＰ応答などのような通常の応答パケットでよい。
【００７１】
図９は、図８のステップＳ８０７として示した動作で、ブロック分割結合部６０５がそのブロックを２ブロックに分割して送信する動作について示す説明図である。この図９に示した例では、ブロック１２０ｅ（Ｅ）を２個のブロック「Ｅ１およびＥ２」に分割して、データ送信部１０１に送信させている。
【００７２】
なお、ステップＳ８０６で、要求回数が「２以上」ではなく「３以上」、あるいはその他の条件を再送要求と判断するようにしてもよいし、またブロック分割結合部６０５がそのブロックを３ブロック以上に分割するようにしてもよいし、そのブロックが送受信の失敗を繰り返すようならさらに細かく分割するように構成してもよい。さらに、均等な容量のブロックに分割する必要もない。
【００７３】
これまで本発明について図面に示した特定の実施形態をもって説明してきたが、本発明は図面に示した実施形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができる。
【００７４】
上述した実施形態について、その新規な技術内容の要点をまとめると、以下のようになる。なお、上記実施形態の一部または全部は、新規な技術として以下のようにまとめられるが、本発明は必ずしもこれに限定されるものではない。
【００７５】
（付記１）  単数の配信サーバと不特定多数の端末装置とがネットワークを介して相互に接続され、前記配信サーバが複数のブロックに分割されて予め記憶された送信対象データをブロードキャスト方式によって前記各端末装置に対して送信するブロードキャスト配信システムであって、
前記各端末が、
前記配信サーバから前記各ブロックを受信して予め備えられた記憶手段に記憶するデータ受信部と、前記送信対象データの中でまだ受信していない前記ブロックがある場合に、その未受信のブロックを送信するよう前記配信サーバに要求する要求データを作成する要求データ生成部と、作成された前記要求データを前記配信サーバに送信する要求データ送信部と
を有すると共に、
前記配信サーバが、
前記各端末からの前記要求データを受信する要求データ受信部と、受信した前記要求データに基づいて前記各端末に対していずれの前記ブロックを送信するかを決定する送信データ制御部と、決定された前記ブロックを前記各端末に対して送信するデータ送信部と
を有し、
前記送信データ制御部が、
前記各ブロックの中で最も多くの端末からの要求データで送信を要求されているブロックを送信するよう決定する機能を有することを特徴とするブロードキャスト配信システム。
【００７６】
（付記２）  前記配信サーバの前記送信データ制御部が、
残り１ブロックを受信すれば前記送信対象データが全て揃う前記端末が存在する場合に、その端末からの要求データで送信を要求されているブロックを送信するよう決定する機能を有することを特徴とする、付記１に記載のブロードキャスト配信システム。
【００７７】
（付記３）  前記配信サーバの前記送信データ制御部が、
前記端末からの前記要求データが受信されなくなった場合に前記送信対象データの送信を停止する機能を有することを特徴とする、付記１に記載のブロードキャスト配信システム。
【００７８】
（付記４）  前記各端末の前記要求データ生成部が、
送信を要求するブロックと当該ブロックの送信を要求した回数である要求回数とを前記要求データに含める機能を有すると共に、
前記配信サーバが、
前記要求回数が２以上である場合に当該ブロックをより小さい容量に分割するブロック分割結合部を有し、
前記送信データ制御部が、前記分割されたブロックを前記データ送信部に送信させることを特徴とする、付記１に記載のブロードキャスト配信システム。
【００７９】
（付記５）  前記配信サーバの前記送信データ制御部が、前記分割されたブロックが正常に受信された旨の応答を前記端末から得た場合に、前記ブロック分割結合部に前記分割されたブロックを元通りに結合させることを特徴とする、付記４に記載のブロードキャスト配信システム。
【００８０】
（付記６）  不特定多数の端末装置とネットワークを介して相互に接続され、複数のブロックに分割されて予め記憶された送信対象データをブロードキャスト方式によって前記各端末装置に対して送信する配信サーバであって、
前記各端末が前記送信対象データの中でまだ受信していない前記ブロックを送信するよう要求する要求データを受信するデータ受信部と、
受信した前記要求データに基づいて前記各端末に対していずれの前記ブロックを送信するかを決定する送信データ制御部と、
決定された前記ブロックを前記各端末に対して送信するデータ送信部と
を有し、
前記送信データ制御部が、
前記各ブロックの中で最も多くの端末からの要求データで送信を要求されているブロックを送信するよう決定する機能を有することを特徴とする配信サーバ。
【００８１】
（付記７）  複数のブロックに分割されて予め記憶された送信対象データをブロードキャスト方式によって送信する単数の配信サーバとネットワークを介して相互に接続された端末装置であって、
前記配信サーバから前記各ブロックを受信して予め備えられた記憶手段に記憶するデータ受信部と、
前記送信対象データの中でまだ受信していない前記ブロックがある場合に、その未受信のブロックを送信するよう前記配信サーバに要求する要求データを作成する要求データ生成部と、
作成された前記要求データを前記配信サーバに送信するデータ送信部と
を有することを特徴とする端末装置。
【００８２】
（付記８）  単数の配信サーバと不特定多数の端末装置とがネットワークを介して相互に接続され、前記配信サーバが複数のブロックに分割されて予め記憶された送信対象データをブロードキャスト方式によって前記各端末装置に対して送信するブロードキャスト配信システムにあって、
前記各端末の要求データ作成部が、前記送信対象データの中でまだ受信していない前記ブロックがある場合に、その未受信のブロックを送信するよう前記配信サーバに要求する要求データを作成し、
前記各端末の要求データ送信部が、作成された前記要求データを前記配信サーバに送信し、
前記配信サーバの要求データ受信部が、前記各端末からの前記要求データを受信し、
前記配信サーバの送信データ制御部が、受信した前記要求データに基づいて、前記各ブロックの中で最も多くの端末からの要求データで送信を要求されているブロックを前記各端末に対して送信するよう決定し、
前記配信サーバのデータ送信部が、決定された前記ブロックを前記各端末に対して送信し、
前記各端末のデータ受信部が、前記配信サーバから前記各ブロックを受信して予め備えられた記憶手段に記憶する
ことを特徴とするブロードキャスト配信方法。
【００８３】
（付記９）  単数の配信サーバと不特定多数の端末装置とがネットワークを介して相互に接続され、前記配信サーバが複数のブロックに分割されて予め記憶された送信対象データをブロードキャスト方式によって前記各端末装置に対して送信するブロードキャスト配信システムにあって、
前記配信サーバが備えるコンピュータに、
前記各端末が前記送信対象データの中でまだ受信していない前記ブロックを送信するよう要求する要求データを受信する手順、
受信した前記要求データに基づいて、前記各ブロックの中で最も多くの端末からの要求データで送信を要求されているブロックを前記各端末に対して送信するよう決定する手順、
および決定された前記ブロックを前記各端末に対して送信する手順
を実行させることを特徴とするブロードキャスト配信プログラム。
【００８４】
（付記１０）  単数の配信サーバと不特定多数の端末装置とがネットワークを介して相互に接続され、前記配信サーバが複数のブロックに分割されて予め記憶された送信対象データをブロードキャスト方式によって前記各端末装置に対して送信するブロードキャスト配信システムにあって、
前記各端末が備えるコンピュータに、
前記送信対象データの中でまだ受信していない前記ブロックがある場合に、その未受信のブロックを送信するよう前記配信サーバに要求する要求データを作成する手順、
作成された前記要求データを前記配信サーバに送信する手順、
および前記配信サーバから前記各ブロックを受信して予め備えられた記憶手段に記憶する手順
を実行させることを特徴とするブロードキャスト配信プログラム。
【産業上の利用可能性】
【００８５】
本発明は、ブロードキャスト方式によるデータ送信を行うシステムに対して適用可能である。特に、ファームウェアやオペレーティングシステムのアップデートなどのような用途に適している。
【符号の説明】
【００８６】
１、５０１  ブロードキャスト配信システム
１０、５１０  サーバ
１１、２１  プロセッサ
１２、２２  記憶手段
１３、２３  通信手段
１４  入力手段
２０、２０ａ〜ｃ、５２０、５２０ａ〜ｃ  端末
３０  ネットワーク
１０１  データ送信部
１０２  要求データ受信部
１０３、６０３  要求データ解析部
１０４、６０４  送信データ制御部
１１１  送信データ格納部
１２０  送信対象データ
１２０ａ〜ｊ  ブロック
２０１  データ受信部
２０２  受信データ制御部
２０３、７０３  要求データ生成部
２０４  要求データ送信部
２１１  受信データ格納部
６０５  ブロック分割結合部
【図１】
0005618217.tif 000002
【図２】
0005618217.tif 000003
【図３】
0005618217.tif 000004
【図４】
0005618217.tif 000005
【図５】
0005618217.tif 000006
【図６】
0005618217.tif 000007
【図７】
0005618217.tif 000008
【図８】
0005618217.tif 000009
【図９】
0005618217.tif 000010
【図１０】
0005618217.tif 000011