(57)【要約】【課題】サーバからクライアントに対し、サーバの負荷を軽減しつつ、効率的なデータ配信を行う。【解決手段】サーバSは、配信するデータを分割するデータ分割手段12と、分割データの配信情報を表現したデータ配信情報を作成するデータ配信情報作成手段13、クライアントに分割データを配信するデータ配信手段を備え、クライアントCsは、サーバSからの分割データ等を受信するサーバデータ受信手段21と転送するクライアントを決定する転送先クライアント決定手段22と分割データを転送先クライアント決定手段により決定されたクライアントCdに転送するデータ転送手段23を備えると共に、転送先クライアントからの分割データを受信する転送データ受信手段31と受信した分割データから元データを復元するデータ復元手段32を備えるデータ配信システム。【選択図】図２
2009009297.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークで接続されたサーバから2台以上のクライアントにデータを配信する方法であって、
前記サーバにおいて、前記データを配信するクライアントを決定するクライアント決定ステップと、
前記データを分割し所定数の分割データを作成する分割データ作成ステップと、
前記決定された各々のクライアントに配信すべき前記分割データを決定すると共に、前記決定された各々のクライアントと前記決定された分割データの関係を規定するデータ配信情報を作成するデータ配信情報作成ステップと、
前記データ配信情報および当該データ配信情報により規定される前記分割データを当該分割データに対応する前記クライアントに配信するデータ配信ステップを備え、
前記クライアントにおいて、前記データ配信ステップにより配信された前記データ配信情報および前記分割データを受信するサーバデータ受信ステップと、
前記サーバデータ受信ステップにより受信した前記分割データを転送すべきクライアントである転送先クライアントを決定する転送先クライアント決定ステップと、
前記サーバデータ受信ステップにより受信した前記分割データを前記転送先クライアントに転送するデータ転送ステップと、
前記転送先クライアントにおいて、前記クライアントのデータ転送ステップにより転送された分割データを受信する転送データ受信ステップと、
前記サーバから受信した分割データおよび前記クライアントから受信した分割データから前記データ配信情報を用いて前記データを復元するデータ復元ステップを備えることを特徴とするデータ配信方法。
【請求項２】
前記サーバにおいて、前記データ配信情報作成ステップは、前記クライアント決定ステップにより決定された各々のクライアントのデータ送受信能力に基づいて、当該クライアントに配信する分割データを決定することを特徴とする請求項１記載のデータ配信方法。
【請求項３】
前記サーバは、前記各々のクライアントにおける分割データの送受信状況を管理すると共に前記クライアントからの問い合わせに対し、当該クライアントが前記サーバデータ受信ステップにより受信した前記分割データを転送すべきクライアントを決定し返答する転送データ管理ステップを備え、
前記クライアントにおいて、前記転送先クライアント決定ステップは、前記転送データ管理ステップへの問い合わせ結果を転送先クライアントと決定し、
前記データ転送ステップは、前記転送先クライアントに当該分割データを転送すると共に、前記転送データ管理ステップに当該転送先クライアントに当該分割データを転送したことを表す転送情報を送信することを特徴とする請求項１または請求項２記載のデータ配信方法。
【請求項４】
前記クライアントにおいて、前記転送先クライアント決定ステップは、前記データ配信情報により規定されるクライアントの情報を基に転送先クライアントを決定することを特徴とする請求項１から３のいずれか一項に記載のデータ配信方法。
【請求項５】
前記転送先クライアントにおいて、前記ネットワーク上の当該転送先クライアント以外のクライアントに対し、当該転送先クライアントが保持していない前記分割データの転送に関する情報の問い合わせを行う転送可能性情報取得ステップと、
前記転送可能性情報取得ステップにより取得された各々の前記クライアントの前記転送可能性情報を基に前記保持していない分割データの転送を依頼するクライアントである転送元クライアントを決定する転送元クライアント決定ステップと、
前記転送元クライアントに対し、当該保持していない分割データの転送を依頼する分割データ転送依頼ステップを備え、
前記転送先クライアント以外のクライアントにおいて、前記転送可能性情報取得ステップからの問い合わせに対し、当該転送先クライアントが保持していない分割データの有無および当該クライアントの送受信状況を示す転送可能性情報を送信する転送可能性情報配信ステップを備え、
前記転送元クライアントにおいて、前記転送依頼ステップからの転送依頼を受信する転送依頼受信ステップを備え、
転送先クライアント決定ステップは、転送依頼受信ステップにより受信した前記転送依頼を行ったクライアントを転送先クライアントと決定することを特徴とする請求項１から３のいずれか一項に記載のデータ配信方法。
【請求項６】
前記クライアントは、前記データ転送ステップにおけるデータの転送速度を測定する転送速度測定ステップと、
前記転送速度が所定の転送速度に満たない場合に、前記転送を中止すると共に前記サーバに前記中止した転送に関する情報である転送中止情報を送信する転送中止ステップを備え、
前記サーバは、前記転送中止ステップにより送信された転送中止情報を受信する転送中止情報受信ステップを備え、前記転送中止情報により規定されるクライアントに対し、前記転送中止情報により規定される分割データを配信することを特徴とする請求項１から５のいずれか一項に記載のデータ配信方法。
【請求項７】
ネットワークで接続されたサーバから2台以上のクライアントにデータを配信するシステムであって、
前記サーバにおいて、前記データを配信するクライアントを決定するクライアント決定手段と、
前記データを分割し所定数の分割データを作成する分割データ作成手段と、
前記決定された各々のクライアントに配信すべき前記分割データを決定すると共に、前記決定された各々のクライアントと前記決定された分割データの関係を規定するデータ配信情報を作成するデータ配信情報作成手段と、
前記データ配信情報および当該データ配信情報により規定される前記分割データを当該分割データに対応する前記クライアントに配信するデータ配信手段を備え、
前記クライアントにおいて、前記データ配信手段により配信された前記データ配信情報および前記分割データを受信するサーバデータ受信手段と、
前記サーバデータ受信手段により受信した前記分割データを転送すべきクライアントである転送先クライアントを決定する転送先クライアント決定手段と、
前記サーバデータ受信手段により受信した前記分割データを前記転送先クライアントに転送するデータ転送手段と、
前記転送先クライアントにおいて、前記クライアントのデータ転送手段により転送された分割データを受信する転送データ受信手段と、
前記サーバから受信した分割データおよび前記クライアントから受信した分割データから前記データ配信情報を用いて前記データを復元するデータ復元手段を備えることを特徴とするデータ配信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークにより接続されたサーバから複数のクライアントにデータを配信する技術に関する。
【背景技術】
【０００２】
現在、ネットワーク上で様々なサービスが展開されている。各クライアントにインストールされたプログラムの更新ファイルや各種更新データなども、ネットワーク上においてサーバからクライアントにファイルを配信することにより行われている場合も多い。特に、コンピュータウィルスの検出プログラムに利用されるパターンファイルやセキュリティホールに対する修正プログラムの配信では、可能な限り全てのクライアントへの同時配信が要求される。
【０００３】
しかしながら、サーバおよびネットワークの能力には限界があるため、データ等を配信すべきクライアントに対し、タイムラグなくデータを配信することは困難である。
このような問題を解決するために、サーバを複数設置することにより、個々のサーバの負荷を低減させる技術がある。
【０００４】
また、単一のサーバでデータの転送効率を向上させる技術として、クライアントからファイルの配信要求がサーバに送られた場合には、サーバは同じデータを既に他のクライアントに送っている場合には、クライアント間でデータの配信を行わせることでサーバの負荷を低減させるものがある（特許文献１）。
更に、特定のサーバの設置を不要とした技術として、ネットワーク上にデータを保持した機器を複数配置し、各クライアントはその複数の機器から所定のルールによりデータをダウンロードする機器を選択する。これにより、特定の機器にアクセスが集中することを防ぎ、ダウンロードの効率化を図るもの（特許文献２）や、ピアツーピアネットワークにおいて、各ピアにコンテンツを分割して配置すると共に、分割したコンテンツを復元するための関連情報を配置し、コンテンツを要求するピアは、関連情報を取得後、分割されたコンテンツを取得し、復元することによりコンテンツの取得を行うものがある（特許文献３）。
【０００５】
【特許文献１】特開２００４−２１３５０８（段落番号０００９、図１）
【特許文献２】特開２００５−１２２４１２（段落番号０００７−０００９、図１）
【特許文献３】特開２００６−１７８７８２（段落番号００１４−００１７、図７）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
このように、複数のサーバを用いるもの、単一のサーバを用いるもの、サーバを用いずにピアツーピアネットワークを用いるもの、様々な形態を用い、データ配信の効率化を図っている。
しかしながら、複数のサーバを設置した場合には、個々のサーバの負荷は低下するものの、負荷分散させるためのサーバが必要となると同時に、ネットワーク負荷の低減にはあまり寄与できない問題がある。また、特許文献１の技術では、各クライアントに配信した過去のデータを管理する必要があり、サーバに対し不要な負荷をかける恐れがあると共にクライアントの負荷が把握できていないので特定のクライアントに負荷をかける恐れもある。また、特許文献２および３の技術では、データのダウンロード時のサーバへの負荷軽減を図っているが、サーバからのデータ配信には対応できない。
本発明の課題は、これらの問題を解決するために、サーバの負荷を低減し、効率的なデータ配信技術を提供することである。
【課題を解決するための手段】
【０００７】
本発明は、ネットワークで接続されたサーバから２台以上のクライアントにデータを配信する方法であって、前記サーバにおいて、前記データを配信するクライアントを決定するクライアント決定ステップと、前記データを分割し所定数の分割データを作成する分割データ作成ステップと、前記決定された各々のクライアントに配信すべき前記分割データを決定すると共に、前記決定された各々のクライアントと前記決定された分割データの関係を規定するデータ配信情報を作成するデータ配信情報作成ステップと、前記データ配信情報および当該データ配信情報により規定される前記分割データを当該分割データに対応する前記クライアントに配信するデータ配信ステップを備え、前記クライアントにおいて、前記データ配信ステップにより配信された前記データ配信情報および前記分割データを受信するサーバデータ受信ステップと、前記サーバデータ受信ステップにより受信した前記分割データを転送すべきクライアントである転送先クライアントを決定する転送先クライアント決定ステップと、前記サーバデータ受信ステップにより受信した前記分割データを前記転送先クライアントに転送するデータ転送ステップと、前記転送先クライアントにおいて、前記クライアントのデータ転送ステップにより転送された分割データを受信する転送データ受信ステップと、前記サーバから受信した分割データおよび前記クライアントから受信した分割データから前記データ配信情報を用いて前記データを復元するデータ復元ステップを備えている。
このデータ配信方法では、サーバから各クライアントに対して配信すべきデータを分割した分割データが配信され、各クライアントはサーバから受信した分割データを他のクライアントに転送する。これにより、サーバの負荷が低減され、効率的なデータ配信が可能となる。
【０００８】
また、本発明のデータ配信方法は、前記データ配信情報作成ステップは、前記クライアント決定ステップにより決定された各々のクライアントのデータ送受信能力に基づいて、当該クライアントに配信する分割データを決定する。
このデータ配信方法では、各々のクライアントの送受信能力に基づき転送させるデータ量が決定され、分割データの転送の効率を高めることが可能となる。
【０００９】
また、本発明のデータ配信方法は、前記サーバは、前記各々のクライアントにおける分割データの送受信状況を管理すると共に前記クライアントからの問い合わせに対し、当該クライアントが前記サーバデータ受信ステップにより受信した前記分割データを転送すべきクライアントを決定し返答する転送データ管理ステップを備え、前記クライアントにおいて、前記転送先クライアント決定ステップは、前記転送データ管理ステップへの問い合わせ結果を転送先クライアントと決定し、前記データ転送ステップは、前記転送先クライアントに当該分割データを転送すると共に、前記転送データ管理ステップに当該転送先クライアントに当該分割データを転送したことを表す転送情報を送信する。
このデータ配信方法では、サーバは各々のクライアントの送受信状況を把握し、負荷の小さいクライアントへの転送を指示することができ、効率的なデータ配信が可能となる。
【００１０】
また、本発明のデータ配信方法は、前記クライアントにおいて、前記転送先クライアント決定ステップは、前記データ配信情報により規定されるクライアントの情報を基に転送先クライアントを決定する。
このデータ配信方法では、サーバや他のクライアントに負荷をかけることなく、容易に転送先のクライアントを決定することが可能となる。
【００１１】
また、本発明のデータ配信方法は、前記転送先クライアントにおいて、前記ネットワーク上の当該転送先クライアント以外のクライアントに対し、当該転送先クライアントが保持していない前記分割データの転送に関する情報の問い合わせを行う転送可能性情報取得ステップと、前記転送可能性情報取得ステップにより取得された各々の前記クライアントの前記転送可能性情報を基に前記保持していない分割データの転送を依頼するクライアントである転送元クライアントを決定する転送元クライアント決定ステップと、前記転送元クライアントに対し、当該保持していない分割データの転送を依頼する分割データ転送依頼ステップを備え、前記転送先クライアント以外のクライアントにおいて、前記転送可能性情報取得ステップからの問い合わせに対し、当該転送先クライアントが保持していない分割データの有無および当該クライアントの送受信状況を示す転送可能性情報を送信する転送可能性情報配信ステップを備え、前記転送元クライアントにおいて、前記転送依頼ステップからの転送依頼を受信する転送依頼受信ステップを備え、転送先クライアント決定ステップは、転送依頼受信ステップにより受信した前記転送依頼を行ったクライアントを転送先クライアントと決定する。
このデータ配信方法では、サーバに負荷をかけることなく、クライアント間通信のみで負荷の小さいクライアントを検出し、転送を依頼することにより効率的なデータ配信が可能となる。
【００１２】
また、本発明のデータ配信方法は、前記クライアントは、前記データ転送ステップにおけるデータの転送速度を測定する転送速度測定ステップと、前記転送速度が所定の転送速度に満たない場合に、前記転送を中止すると共に前記サーバに前記中止した転送に関する情報である転送中止情報を送信する転送中止ステップを備え、前記サーバは、前記転送中止ステップにより送信された転送中止情報を受信する転送中止情報受信ステップを備え、前記転送中止情報により規定されるクライアントに対し、前記転送中止情報により規定される分割データを配信する。
このデータ配信方法では、何らかの原因でクライアント間通信が遅いもしくは不通などの場合には、サーバから分割データを配信させることができ、効率的なデータ配信が可能となる。
【００１３】
さらに、本発明では、上述したデータ配信方法をコンピュータに実行させるプログラムやそのプログラムを記録した媒体も権利の対象とするものである。
【００１４】
さらに、本発明では、上述したデータ配信方法を組み込んだサーバおよびクライアントから構成されるシステムも権利の対象としており、そのようなデータ配信システムでは、前記サーバにおいて、前記データを配信するクライアントを決定するクライアント決定手段と、前記データを分割し所定数の分割データを作成する分割データ作成手段と、
前記決定された各々のクライアントに配信すべき前記分割データを決定すると共に、前記決定された各々のクライアントと前記決定された分割データの関係を規定するデータ配信情報を作成するデータ配信情報作成手段と、前記データ配信情報および当該データ配信情報により規定される前記分割データを当該分割データに対応する前記クライアントに配信するデータ配信手段を備え、前記クライアントにおいて、前記データ配信手段により配信された前記データ配信情報および前記分割データを受信するサーバデータ受信手段と、前記サーバデータ受信手段により受信した前記分割データを転送すべきクライアントである転送先クライアントを決定する転送先クライアント決定手段と、前記サーバデータ受信手段により受信した前記分割データを前記転送先クライアントに転送するデータ転送手段と、前記転送先クライアントにおいて、前記クライアントのデータ転送手段により転送された分割データを受信する転送データ受信手段と、前記サーバから受信した分割データおよび前記クライアントから受信した分割データから前記データ配信情報を用いて前記データを復元するデータ復元手段を備える。
当然ながら、このようなデータ配信システムは上述したデータ配信方法で述べた全ての作用効果を得ることができる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明のデータ配信方法を用いたシステムの実施形態を図面に基づいて説明する。図１に示すように、本実施形態によるファイル配信システムは、配信するデータＤを保持し、データをクライアントに配信するサーバＳ、前記データを受け取るクライアントＣから構成され、各々が通信ネットワークＮ（以下、ネットワークと称する）により接続されている。前記ネットワークＮは、企業や学校等の限られた施設内において情報を物理的に送るケーブルと、ＬＡＮスイッチやハブ等でなる中継機器を備えたＣＳＭＡ／ＣＤ（Carrier Sense Multiple Access with Collision Detection）方式のイーサネット（Ethernet）（商標）型のＬＡＮとして構成されたものであるが、このネットワークＮとしてイーサネット型のＬＡＮ以外に、インターネットの技術を用いたイントラネットで構築されたものや、ＷＡＮ（Wide Area Network）の技術によって構築されるものでも良い。本実施形態では、配信すべきデータはサーバＳに保持されているが、これに限定されるものではなく、別途ファイルサーバを設置し、ファイルサーバに配信すべきデータを保持させ、必要に応じてサーバＳがファイルサーバからデータを取得するようにしても構わない。
【００１６】
〔第１の実施形態〕
図２に本発明におけるデータ配信方法を用いたシステムの機能ブロック図を示す。本発明におけるデータ配信方法を用いたシステムの第１の実施形態では、サーバＳはデータの配信先クライアントを決定するクライアント決定手段１１、配信するデータを所定数に分割し分割データを作成するデータ分割手段１２、クライアント決定手段１１により決定されたクライアントに対して配信する分割データを決定すると共に、決定されたクライアントと決定された分割データの関係を規定するデータ配信情報を作成するデータ配信情報作成手段１３、データ配信情報作成手段１３により作成されたデータ配信情報に基づき分割データを配信するデータ配信手段１４を備えている。
【００１７】
図２では、クライアントは便宜上、転送元クライアントＣｓおよび転送先クライアントＣｄとして記載しているが、全てのクライアントＣは転送元クライアントＣｓおよび転送先クライアントＣｄの各手段を備えており、分割データを転送するときには転送元クライアントＣｓ、転送データを受信するときには転送先クライアントＣｄとして機能する。
【００１８】
転送元クライアントＣｓは、サーバＳのデータ配信手段１４から配信される分割データおよびデータ配信情報を受信するサーバデータ受信手段２１、サーバデータ受信手段により受信されたデータ配信情報を基にサーバデータ受信手段２１により受信された分割データを転送するクライアントを決定する転送先クライアント決定手段２２、転送先クライアント決定手段２２により決定されたクライアントにサーバデータ受信手段２１により受信された分割データを転送するデータ転送手段２３を備えている。
【００１９】
転送先クライアントＣｄは、転送元クライアントＣｓのデータ転送手段２３から転送される分割データを受信する転送データ受信手段３１、サーバＳのデータ配信手段１４から配信されサーバデータ受信手段２１により受信された分割データと転送元クライアントＣｓのデータ転送手段２３から転送された分割データから元データＤを復元するデータ復元手段３２を有している。
【００２０】
通常、サーバＳ、クライアントＣ（ＣｓおよびＣｄ）の各手段は、ソフトウェアで構成されているが、これらをソフトウェアおよびハードウェアとの組み合わせにより構成しても良いし、ロジック等を組み合わせたハードウェアのみで構成しても構わない。
【００２１】
次に、図３から図５のフローチャートを用いて本発明におけるデータ配信方法を用いたシステムの動作を説明する。サーバＳは、クライアント決定手段１１によりデータＤを配信するクライアントＣを決定する（＃０１）。配信先のクライアントＣの決定は、予めクライアントＣのリストを作成しておき、リストに登録されているクライアントＣに対し通信を行い、配信可能な状態にあるクライアントを抽出する、クライアントＣの起動時等にサーバＳに配信可能な旨が伝えられ、その情報に基づき配信するクライアントＣを決定する、ブロードキャストに応えたクライアントＣを配信するクライアントＣとする方法などを用いることができるが、これに限定されるものではなく、他の方法を用いても構わない。
【００２２】
データ分割手段１２では、配信するデータを分割し、所定数ｎの分割データＤｉ（ｉ＝１〜ｎ）を作成する（＃０２）。このとき、所定数ｎは、クライアント決定手段１１により決定されたクライアント数、予め決められた固定値などを用いることができるが、これに限定されるものではなく、他の方法により決定しても構わない。また、分割の方法は、配信するデータをｎ等分しても良いし、クライアント決定手段１１により決定されたクライアントのＣＰＵや接続されているネットワーク機器の能力等により決定される送受信応力を考慮して分割データのサイズを異ならせるなどしても構わない。図６の例では、所定数として固定値４を用い、Ｄ１からＤ４が作成されている。
【００２３】
データ配信情報作成手段１３では、クライアント決定手段１１により決定された各々のクライアントＣに配信する分割データＤｉを決定し、各々のクライアントＣと配信する分割データＤｉの関係を表したデータ配信情報が作成される（＃０３）。このとき、データ分割手段１２が、配信するデータＤを等分している場合には、各クライアントＣの送受信応力に応じて、配信する分割データＤｉの数を異ならせ、分割データサイズが各クライアントＣの送受信能力に応じて異なっている場合には、各クライアントＣの送受信能力に応じたサイズの分割データＤｉを割り当てることになる。図６の例では、前記の通り、データ分割手段１２は固定値４を用いて分割データＤｉを作成しており、クライアントＣ１の送受信能力が他のクライアントＣ２、Ｃ３に比べて高いため、クライアントＣ１には２つの分割データ、他のクライアントＣ２、Ｃ３には１つの分割データを配信するとしている。本実施形態では、各クライアントＣに配信する分割データＤｉは重複がないよう設定されているが、これに限定される訳ではなく、重複させても構わない。
【００２４】
配信先のクライアントＣｄが決定すると、データ配信情報作成手段１３により、データ配信情報Ｉが作成される。データ配信情報Ｉには、どのクライアントＣにどの分割データＤｉを送信するかが記載されている。データ配信情報Ｉは、本実施形態では図６のような表現を用いるが、この表現方法に限定されるものではなく、他の表現方法を用いても構わない。
【００２５】
データ配信手段１４では、データ配信情報Ｉに基づき、各クライアントＣに分割データＤｉが配信される。図６の例では、前記の通りｎ＝４であり、クライアントＣ１に分割データＤ１およびＤ２、クライアントＣ２に分割データＤ３、クライアントＣ３には分割データＤ４がサーバＳからデータ配信情報Ｉと共に配信される。
【００２６】
次に、転送元クライアントＣｓでは、サーバデータ受信手段２１により、データ配信手段１４により配信された分割データＤｉおよびデータ配信情報Ｉが受信される（＃１１）。転送先クライアント決定手段２２により、サーバデータ受信手段２１により受信した分割データＤｉの一つが選択され（＃１２）、受信したデータ配信情報Ｉに基づき、受信した分割データＤｉの転送先が決定される（＃１３）。図７の例で、クライアントＣ１が転送元クライアントＣｓであり、受信したデータ配信情報から自らを除外した残りのクライアントＣ２およびＣ３が分割データＤ１およびＤ２の転送先とされる。
【００２７】
データ転送手段２３では、転送先クライアント決定手段２２により決定されたクライアントＣにサーバデータ受信手段２１により受信した分割データＤｉを転送する（＃１４）。＃１３から＃１４の動作が、分割データＤｉを転送すべき全クライアントに転送される（＃１５のYes分岐）まで繰り返され、＃１２から＃１５の動作が、サーバデータ受信手段２１により受信した全分割データＤｉに対して行われるまで（＃１６のYes分岐）繰り返される。図７の例では、クライアントＣ２およびＣ３に分割データＤ１およびＤ２が転送される。また、クライアントＣ２を転送元クライアントＣｓであるとすると、前記の処理により、クライアントＣ１およびＣ３に分割データＤ３が転送される。
【００２８】
一方、転送先クライアントＣｄでは、サーバデータ受信手段２１によりデータ配信手段１４から配信された分割データＤｉおよびデータ配信情報Ｉが受信され（＃２１）、転送データ受信手段３１により転送元クライアントＣｓのデータ転送手段２３から転送された分割データＤｉが受信される（＃２２）。データ復元手段３２は、サーバデータ受信手段２１により受信したデータ配信情報Ｉを参照し、全分割データＤｉを受信し終える（＃２３のYes分岐）と、元データＤを復元する（＃２４）。図７の例では、クライアントＣ３は、クライアントＣ１から分割データＤ１およびＤ２、クライアントＣ２から分割データＤ３を受信すると、データ配信情報Ｉから分割データはＤ１からＤ４までの４個であると判明し、サーバＳから受信した分割データＤ４と合わせると全分割データが揃っているので、元データＤを復元する。
【００２９】
図８に本発明のデータ配信方法を用いたシステムによるデータ配信と通常の単一サーバからのデータ配信に要する時間を比較するための概念図を示す。横軸は、配信時間である。理解を容易にするため、サーバＳおよび各クライアントＣのデータの配信および転送は、並列には行わないものとする。サーバＳから３台のクライアントＣ１〜Ｃ３に対してデータＤを配信するためには、４分かかるとすると、通常の単一サーバで配信する場合には、４分×３＝１２分必要となる。
【００３０】
一方、図８の例における本発明のデータ配信方法を用いたシステムでは、データＤは分割データＤｉ（ｉ＝１〜４）に分割されるため、各分割データＤｉの配信に必要な時間は４分／４＝１分であり、全分割データを配信するために必要な時間は１分×４＝４分である。各クライアントは、分割データＤｉを受信すると転送を開始するので、図８の例の場合、クライアントＣ１は分割データＤ１を受信した時点（サーバからの配信開始から１分後）に、クライアントＣ２に対し分割データＤ１の転送を開始する。なお、クライアント間の転送時間は、送受信が同時に発生する可能性があるため、サーバからの配信速度の１／２であるとする。すなわち、サーバＳからクライアントＣ１に対して１分で配送できる分割データＤ１は、クライアントＣ１からクライアントＣ２に転送する場合には２分かかることになる。
【００３１】
このように転送が行われるとすると、クライアントＣ１からクライアントＣ２およびＣ３への分割データＤ１およびＤ２の転送は、２分×４＝８分必要であり、サーバＳからの配信開始から９分後に完了する。同様に、クライアントＣ２からの転送は、配信開始から７分後、クライアントＣ３からの転送は、配信開始から８分後に完了することとなり、全クライアントＣへの全分割データＤｉの配信完了は９分となる。この例からも分かるように、クライアントＣ間の転送がサーバＳからの配信よりも遅いと過程しても、サーバ１台から配信するよりも、本発明のデータ配信方法を用いたシステムの方が、データの配信を効率的に行うことが可能となっている。つまり、本発明のデータ配信方法を用いたシステムでは、サーバの負荷を低減させ、効率的なデータ配信が可能となる。
〔第２の実施形態〕
次に、図２の機能ブロック図および図９のフローチャートを用いて、本発明のデータ配信方法を用いたシステムの第２の実施形態を説明する。本実施形態のサーバＳは、第１の実施形態の手段に加え、各クライアントの送受信状況を管理し、各クライアントが次にどのクライアントに転送すべきかを決定する転送データ管理手段１５を備えている。
【００３２】
サーバＳの分割データＤｉの配信は、第１の実施形態における動作と同様なので説明は割愛する。転送元クライアントＣｓは、サーバデータ受信手段２１によりサーバＳのデータ配信手段１４からの分割データＤｉを受信する（＃３１）。転送先クライアント決定手段２２は、サーバＳに対し、受信した分割データＤｉをいずれのクライアントＣに転送すべきかを問い合わせる。転送先クライアント決定手段２２により問い合わせを受けたサーバＳは、転送データ管理手段１５により、管理している各クライアントＣ間の転送状況に基づき、転送すべきクライアントＣｄを決定し、クライアントＣｓに送信する（＃３２）。このとき、転送データ管理手段１５には、各クライアントＣがその時点で行っている分割データＤｉの送受信状況が管理されており、送受信負荷が小さなクライアントＣｄを選択し、転送先クライアント決定手段２２に返答する。転送先クライアント決定手段２２は、転送データ管理手段１５からの応答であるクライアントＣｄを転送先クライアントＣｄと決定する。
【００３３】
データ転送手段２３は、転送先クライアント決定手段２２により決定されたクライアントＣｄに対し、サーバデータ受信手段２１により受信した分割データＤｉを転送する（＃３３）。分割データの転送開始時と完了時には、サーバＳに対し、転送の状況を通知する（＃３４）。転送状況を通知されたサーバＳは、転送データ管理手段１５により、各クライアントＣ間の転送状況情報が更新される。サーバデータ受信手段２１により受信した全分割データＤｉの転送が完了する（＃３５のYes分岐）まで＃３２から＃３４までの処理が繰り返される。転送先クライアントＣｄの動作は、第１の実施形態と同様なので割愛する。
【００３４】
このように、本発明の第２の実施形態によると、サーバＳが各クライアントＣの分割データＤｉの送受信状況を把握することができ、転送元クライアントＣｓに対して、ネットワーク負荷の小さいクライアントＣを転送先クライアントＣｄとして転送を行うよう指示することができ、これによりネットワーク全体の利用効率を高めることが可能となる。
【００３５】
〔第３の実施形態〕
次に、本発明のデータ配信方法を用いたシステムの第３の実施形態を図２の機能ブロック図および図１０のフローチャートを用いて説明する。転送先クライアントＣｄは、第１の実施形態の手段に加え、他のクライアントＣに対し必要とする分割データＤｉを保持しているか否かおよび現在の送受信状況を問い合わせる転送可能性情報取得手段３３、転送可能性情報取得手段３３により取得された転送可能性情報を基に分割データＤｉの転送を依頼するクライアントＣを決定し、転送を依頼する転送元クライアント決定手段３４を備え、転送元クライアントＣｓは、転送先クライアントＣｄの転送可能性情報取得手段３３からの問い合わせに応える転送可能性情報送信手段２４、転送先クライアントＣｄの転送元クライアント決定手段３４の転送依頼を受信する転送依頼受信手段２５を有している。
【００３６】
サーバＳの分割データＤｉの配信は、第１の実施形態と同様なので説明は割愛する。転送先クライアントＣｄは、サーバデータ受信手段２１によりサーバＳのデータ配信手段１４から配信された分割データＤｉと共にデータ配信情報Ｉを受信する（＃４１）。転送先クライアントＣｄの転送可能性情報取得手段３３は、サーバデータ受信手段２１により受信されたデータ配信情報Ｉを基にデータＤを復元するために欠けている分割データＤｉを判別し、他のクライアントＣに対して分割データＤｉの転送に関連する情報を問い合わせる（＃４２）。問い合わせは、ネットワークＮにブロードキャストもしくはマルチキャストしても良いし、個々のクライアントＣに対しユニキャストしても構わない。
【００３７】
転送元クライアントＣｓの転送可能性情報送信手段２４は、転送先クライアントＣｄの転送可能性情報取得手段３３からの問い合わせを受信し、データＤｉの転送可能性に関して応答する（＃４３）。本実施形態では、転送可能性情報として、分割データＤｉの有無および問い合わせ時点の自身の送受信状態を用いるが、これに限定される訳ではなく、他の情報を用いても構わない。図１１の例では、クライアントＣ３から分割データＤ１の転送可能性の問い合わせが発せられている（図中（１））。この問い合わせに対し、クライアントＣ１およびＣ２が、転送可能性情報を応答している（図中（２））。
【００３８】
転送先クライアントＣｄの転送元クライアント決定手段３４は、各クライアントＣから送信された転送可能性情報を基に、分割データＤｉの転送を依頼するクライアントCを決定し、当該分割データＤｉの転送を決定されたクライアントＣｓに依頼する（＃４４）。図１１の例では、分割データＤ１の転送可能性情報の問い合わせがあり、クライアントＣ１はＤ１を保持、クライアントＣ２はＤ１を保持していない旨の応答があったので、転送元クライアント決定手段３４は、クライアントＣ１を転送元クライアントＣｓと決定し、クライアントＣ１に分割データＤ１の転送を依頼する。
【００３９】
図１２の例では、クライアントＣ３から分割データＤ１の転送可能性情報の問い合わせが発せられ、クライアントＣ１およびＣ２からは、図中の返答がなされる。Ｃ１およびＣ２共に分割データＤ１を保持しており、クライアントＣ１の送受信数は２、クライアントＣ２の送受信数は１となっている。転送元クライアント決定手段３４はネットワーク負荷の小さい、すなわち送受信数が小さいクライアントＣ２を転送元クライアントＣｓとして決定する。
【００４０】
転送元クライアントＣｓの転送依頼受信手段２５は、転送先クライアントＣｄの転送元クライアント決定手段３４からの転送依頼を受信し、データ転送手段２３により転送先クライアントＣｄに依頼された分割データＤｉを転送する（＃４５）。
【００４１】
転送先クライアントＣｄおよび転送元クライアントＣｓは、データＤの復元に必要な全ての分割データＤｉを受信するまで＃４２から＃４５の処理を繰り返し、復元に必要な全ての分割データＤｉを受信する（＃４６のYes分岐）とデータ復元手段３２によりデータＤが復元される（＃４７）。
【００４２】
このように、本発明の第３の実施形態では、各クライアントＣに対し、転送されていない分割データＤｉの有無およびネットワーク負荷を問い合わせ、それらの情報を基に転送を依頼するクライアントＣｓを決定することにより、サーバＳに負荷をかけることなく、効率的なデータ転送が可能となっている。
【００４３】
〔第４の実施形態〕
次に、本発明のデータ配信方法を用いたシステムの第４の実施形態を図２の機能ブロック図および図１３のフローチャートを用いて説明する。転送元クライアントＣｓは、第１の実施形態の手段に加え、分割データＤｉの転送速度を測定する転送速度測定手段２６と、転送速度測定手段２６により測定されている転送速度が所定の速度を下回った場合に、転送を中止すると共にサーバＳに転送を中止した旨を通知する転送中止手段２７を備えている。サーバＳは、第１の実施形態の手段に加え、転送元クライアントＣｓの転送中止手段２７からの転送中止情報を受信し、データ配信手段１４に対し、転送中止情報に規定された転送先クライアントＣｄに対し転送中止情報により規定される分割データＤｉを配信させる転送中止情報受信手段１６を備えている。
【００４４】
サーバＳからの分割データＤｉの配信に関しては、第１の実施形態と同じなので説明は割愛する。転送元クライアントＣｓは、サーバデータ受信手段２１により、サーバＳのデータ配信手段１４から分割データＤｉおよびデータ配信情報Ｉを受信し（＃５１）、転送先クライアント決定手段２２により転送先クライアントＣｄが決定される。この転送先クライアント決定手段２２の動作は、前記のいずれの実施形態を用いても構わない。次に、データ転送手段２３により、転送先クライアントＣｄに対し、分割データＤｉの転送が開始される（＃５２）。
【００４５】
転送元クライアントＣｓから分割データＤｉの転送が開始されると、転送速度測定手段２６によりデータ転送速度の測定が行われ（＃５３）、データ転送速度が所定の速度を下回った場合（＃５４のYes分岐）には、転送中止手段２７により分割データＤｉの転送が中止されると共にサーバＳに転送先クライアントＣｄに対する分割データＤｉの転送が中止された旨が通知される（＃５５）。転送元クライアントＣｓの転送中止手段２７からの転送中止情報を受信したサーバＳの転送中止情報受信手段１６は、データ配信手段１４に対し、転送先クライアントＣｄに対して分割データＤｉの配信を指示する（＃５６）。
【００４６】
また、転送先クライアントＣｄへの転送速度が所定速度以下になった場合若しくは転送先クライアントＣｄへの通信が不通の場合、直ちに転送を中止し、サーバＳに転送中止情報を通知するのではなく、何度かリトライした後、所定時間後、もしくは転送先クライアントＣｄの転送順序を変更し再転送した後などに、サーバＳに転送中止情報を通知しても構わない。
【００４７】
このように、本発明の第4の実施形態では、クライアント間のデータ転送速度を監視し、所定速度を下回った場合には、クライアント間転送を中止し、サーバクライアント間配信に切り替えることにより、ネットワークを効率的に利用し、データ配信効率を向上させることが可能となる。
【図面の簡単な説明】
【００４８】
【図１】本発明によるデータ配信方法を用いたシステムの構成図
【図２】本発明によるデータ配信方法を用いたシステムの機能要素を示す機能ブロック図
【図３】本発明の第１の実施形態におけるサーバの動作を表すフローチャート
【図４】本発明の第１の実施形態における転送元クライアントの動作を表すフローチャート
【図５】本発明の第１の実施形態における転送先クライアントの動作を表すフローチャート
【図６】サーバからの分割データ配信を示す図
【図７】各クライアント間の分割データ転送を示す図
【図８】サーバからの一括配信と本発明によるデータ配信方法を用いた場合の配信速度比較図
【図９】本発明の第２の実施形態における動作を表すフローチャート
【図１０】本発明の第３の実施形態における動作を表すフローチャート
【図１１】本発明の第３の実施形態における転送可能性情報取得動作を表す概念図
【図１２】本発明の第３の実施形態における転送可能性情報取得動作を表す概念図
【図１３】本発明の第4の実施形態における動作を表すフローチャート
【符号の説明】
【００４９】
Ｓ：サーバ
Ｃｓ：転送元クライアント
Ｃｄ：転送先クライアント
１１：クライアント決定手段
１２：データ分割手段
１３：データ配信情報作成手段
１４：データ配信手段
１５：転送データ管理手段
１６：転送中止情報受信手段
２１：サーバデータ受信手段
２２：転送先クライアント決定手段
２３：データ転送手段
２４：転送可能性情報送信手段
２５：転送依頼受信手段
２６：転送速度測定手段
２７：転送中止手段
３１：転送データ受信手段
３２：データ復元手段
３３：転送可能性情報取得手段
３４：転送元クライアント決定手段
【図１】
2009009297.tif 000003
【図２】
2009009297.tif 000004
【図３】
2009009297.tif 000005
【図４】
2009009297.tif 000006
【図５】
2009009297.tif 000007
【図６】
2009009297.tif 000008
【図７】
2009009297.tif 000009
【図８】
2009009297.tif 000010
【図９】
2009009297.tif 000011
【図１０】
2009009297.tif 000012
【図１１】
2009009297.tif 000013
【図１２】
2009009297.tif 000014
【図１３】
2009009297.tif 000015