(57)【要約】【解決手段】データネットワークにおけるマルチキャストとユニキャストとのハイブリッド送信のための方法及び装置。方法は、データネットワーク上のサーバを操作するために提供される。この方法は、マルチキャスト及びユニキャストによるデータ送信に関連するマルチキャストコストインジケータ及びユニキャストコストインジケータを計算することを含む。この方法は更に、マルチキャストコストインジケータが、ユニキャストコストインジケータ未満であると判定することと、データがデータネットワーク上でいつマルチキャストされるかを記述する送信スケジュールを生成することとを含む。この方法は更に、この送信スケジュールを送信することと、この送信スケジュールに従ってデータをマルチキャストすることとを含む。【選択図】      図３
2007538463.tif 000002
【特許請求の範囲】
【請求項１】
データネットワーク上のサーバを操作する方法であって、
マルチキャスト及びユニキャストによるデータ送信に関連するマルチキャストコストインジケータ及びユニキャストコストインジケータを計算することと、
前記マルチキャストコストインジケータが、前記ユニキャストコストインジケータ未満であると判定することと、
前記データが前記データネットワーク上でいつマルチキャストされるかを記述する送信スケジュールを生成することと、
前記送信スケジュールを送信することと、
前記送信スケジュールに従って前記データをマルチキャストすることと
を備える方法。
【請求項２】
前記送信スケジュールを送信するステップは、前記送信スケジュールを制御チャネルを経由して送信するステップを備える請求項１に記載の方法。
【請求項３】
ユニキャストセッションを確立する要求を受信することを更に備える請求項１に記載の方法。
【請求項４】
前記送信スケジュールを生成するステップは、前記データが、複数のマルチキャストサイクル中に前記データネットワーク上でマルチキャストされることを記述するために前記送信スケジュールを生成することを備える請求項１に記載の方法。
【請求項５】
前記送信スケジュールを生成するステップは、
前記ユニキャストコストインジケータが前記マルチキャストコストインジケータ未満になるまで、複数のマルチキャストサイクルについて、前記計算するステップと、前記判定するステップとを繰り返すことと、
前記データが、前記複数のマルチキャストサイクル中に前記データネットワーク上でマルチキャストされることを記述するために、前記送信スケジュールを生成することと
を備える請求項１に記載の方法。
【請求項６】
前記マルチキャストするステップは更に、
前進型誤り訂正を用いて前記データを符合化すること、及び前記データをインタリーブすることの任意の組み合わせを実行することを備える請求項１に記載の方法。
【請求項７】
前記ユニキャストコストインジケータが前記マルチキャストコストインジケータ未満であると判定することと、
前記データを取得するためにユニキャストセッションが確立される時間ウィンドウを記述するために前記送信スケジュールを生成することと
を更に備える請求項１に記載の方法。
【請求項８】
前記データネットワークは無線ネットワークである請求項１に記載の方法。
【請求項９】
データネットワーク上のサーバにおいて使用される装置であって、
マルチキャスト及びユニキャストによるデータ送信に関連するマルチキャストコストインジケータ及びユニキャストコストインジケータを計算するように動作するコスト推定器と、
前記マルチキャストコストインジケータが、前記ユニキャストコストインジケータ未満であると判定し、前記データが前記データネットワーク上でいつマルチキャストされるかを記述する送信スケジュールを生成するように動作する処理ユニットと、
前記送信スケジュールを送信し、前記送信スケジュールに従って前記データをマルチキャストするように動作する送信ロジックと
を備える装置。
【請求項１０】
前記送信ロジックは、前記送信スケジュールを送信するために使用される制御チャネルを備える請求項９に記載の装置。
【請求項１１】
ユニキャストセッションを確立する要求を受信するように動作する受信ロジックを更に備える請求項９に記載の装置。
【請求項１２】
前記処理ロジックは、前記データが、複数のマルチキャストサイクル中に前記データネットワーク上でマルチキャストされることを記述するために前記送信スケジュールを生成するように動作する請求項９に記載の装置。
【請求項１３】
前記処理ロジックは、複数のマルチキャストサイクルについて、前記マルチキャストコストインジケータが前記ユニキャストコストインジケータ未満であると判定し、前記データが、前記複数のマルチキャストサイクル中に前記データネットワーク上でマルチキャストされることを記述するために、前記送信スケジュールを生成するように動作する請求項９に記載の装置。
【請求項１４】
前記送信ロジックは更に、前進型誤り訂正を用いて前記データを符合化すること、及び前記データをインタリーブすることの任意の組み合わせを実行するロジックを備える請求項９に記載の装置。
【請求項１５】
前記処理ロジックは、前記ユニキャストコストインジケータが前記マルチキャストコストインジケータ未満であると判定し、前記データを取得するためにユニキャストセッションが確立される時間ウィンドウを記述するために前記送信スケジュールを生成するように動作する請求項９に記載の装置。
【請求項１６】
前記データネットワークは無線ネットワークである請求項９に記載の装置。
【請求項１７】
データネットワーク上のサーバにおいて使用される装置であって、
マルチキャスト及びユニキャストによるデータ送信に関連するマルチキャストコストインジケータ及びユニキャストコストインジケータを計算する手段と、
前記マルチキャストコストインジケータが、前記ユニキャストコストインジケータ未満であると判定する手段と、
前記データが前記データネットワーク上でいつマルチキャストされるかを記述する送信スケジュールを生成する手段と、
前記送信スケジュールを送信する手段と、
前記送信スケジュールに従って前記データをマルチキャストする手段と
を備える装置。
【請求項１８】
前記送信スケジュールを送信する手段は、前記送信スケジュールを制御チャネルを経由して送信する手段を備える請求項１７に記載の装置。
【請求項１９】
ユニキャストセッションを確立する要求を受信する手段を更に備える請求項１７に記載の装置。
【請求項２０】
前記送信スケジュールを生成する手段は、前記データが、複数のマルチキャストサイクル中に前記データネットワーク上でマルチキャストされることを記述するために前記送信スケジュールを生成する手段を備える請求項１７に記載の装置。
【請求項２１】
前記送信スケジュールを生成する手段は、
前記ユニキャストコストインジケータが前記マルチキャストコストインジケータ未満になるまで、複数のマルチキャストサイクルについて、前記計算するステップと判定するステップとを繰り返す手段と、
前記データが、前記複数のマルチキャストサイクル中に前記データネットワーク上でマルチキャストされることを記述するために、前記送信スケジュールを生成する手段と
を備える請求項１７に記載の装置。
【請求項２２】
前記マルチキャストする手段は更に、前進型誤り訂正を用いて前記データを符合化すること、及び前記データをインタリーブすることの任意の組み合わせを実行する手段を備える請求項１７に記載の装置。
【請求項２３】
前記ユニキャストコストインジケータが前記マルチキャストコストインジケータ未満であると判定する手段と、
前記データを取得するためにユニキャストセッションが確立される時間ウィンドウを記述するために前記送信スケジュールを生成する手段と
を更に備える請求項１７に記載の装置。
【請求項２４】
前記データネットワークは無線ネットワークである請求項１７に記載の装置。
【請求項２５】
サーバ内の処理ロジックによって実行されると、データネットワーク上でデータを送信するように動作する命令を備えたコンピュータ読取可能媒体であって、
マルチキャスト及びユニキャストによるデータ送信に関連するマルチキャストコストインジケータ及びユニキャストコストインジケータを計算する命令と、
前記マルチキャストコストインジケータが、前記ユニキャストコストインジケータ未満であると判定する命令と、
前記データが前記データネットワーク上でいつマルチキャストされるかを記述する送信スケジュールを生成する命令と、
前記送信スケジュールを送信する命令と、
前記送信スケジュールに従って前記データをマルチキャストする命令と
を備えるコンピュータ読取可能媒体。
【請求項２６】
前記送信スケジュールを送信する命令は、前記送信スケジュールを制御チャネルを経由して送信する命令を備える請求項２５に記載のコンピュータ読取可能媒体。
【請求項２７】
ユニキャストセッションを確立する要求を受信する命令を更に備える請求項２５に記載のコンピュータ読取可能媒体。
【請求項２８】
前記送信スケジュールを生成する命令は、前記データが、複数のマルチキャストサイクル中に前記データネットワーク上でマルチキャストされることを記述するために前記送信スケジュールを生成する命令を備える請求項２５に記載のコンピュータ読取可能媒体。
【請求項２９】
前記送信スケジュールを生成する命令は、
前記ユニキャストコストインジケータが前記マルチキャストコストインジケータ未満になるまで、複数のマルチキャストサイクルについて、前記計算するステップと、前記判定するステップとを繰り返す命令と、
前記データが、前記複数のマルチキャストサイクル中に前記データネットワーク上でマルチキャストされることを記述するために、前記送信スケジュールを生成する命令と
備える請求項２５に記載のコンピュータ読取可能媒体。
【請求項３０】
前記マルチキャストする命令は更に、前進型誤り訂正を用いて前記データを符合化すること、及び前記データをインタリーブすることの任意の組み合わせを実行する命令を備える請求項２５に記載のコンピュータ読取可能媒体。
【請求項３１】
前記ユニキャストコストインジケータが前記マルチキャストコストインジケータ未満であると判定する命令と、
前記データを取得するためにユニキャストセッションが確立される時間ウィンドウを記述するために前記送信スケジュールを生成する命令と
を更に備える請求項２５に記載のコンピュータ読取可能媒体。
【請求項３２】
前記データネットワークは無線ネットワークである請求項２５に記載のコンピュータ読取可能媒体。
【請求項３３】
データネットワーク上の受信端末を操作する方法であって、
データがどのように送信されるかを記述する送信スケジュールを受信することと、
前記データが、１つ又は複数のマルチキャストサイクル中に前記データネットワーク上でマルチキャストされるべきと判定することと、
前記１つ又は複数のマルチキャストサイクル中に、前記マルチキャストされたデータを受信することと
を備える方法。
【請求項３４】
前記受信するステップは、前記送信スケジュールを制御チャネルを経由して受信することを備える請求項３３に記載の方法。
【請求項３５】
前記１つ又は複数のマルチキャストサイクル中に、前記データの受信を失敗することと、
前記データを取得するために、ユニキャストセッションを確立する要求を送信することと
を更に備える請求項３３に記載の方法。
【請求項３６】
前記データがユニキャスト送信によって前記端末へ送信されるべきと判定することと、
前記データを取得するためにユニキャストセッションを確立することと
を更に備える請求項３３に記載の方法。
【請求項３７】
データネットワーク上の受信端末において使用される装置であって、
データがどのように送信されるかを記述する送信スケジュールを受信するロジックと、
前記データが、１つ又は複数のマルチキャストサイクル中に前記データネットワーク上でマルチキャストされるべきと判定するロジックと、
前記１つ又は複数のマルチキャストサイクル中に、前記マルチキャストされたデータを受信するロジックと
を備える装置。
【請求項３８】
前記送信スケジュールを受信するロジックは、前記送信スケジュールを制御チャネル経由で受信するロジックを備える請求項３７に記載の装置。
【請求項３９】
前記データが前記１つ又は複数のマルチキャストサイクル中に受信されていないと判定するロジックと、
前記データを取得するためにユニキャストセッションを確立する要求を送信するロジックと
を更に備える請求項３７に記載の装置。
【請求項４０】
前記データがユニキャスト送信によって前記端末へ送信されるべきと判定するロジックと、
前記データを取得するためにユニキャストセッションを確立するロジックと
を更に備える請求項３７に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、ネットワーク環境におけるコンテンツ配信に関し、更に詳しくは、データネットワークにおけるマルチキャストとユニキャストとのハイブリッド送信のための方法及び装置に関する。
【背景技術】
【０００２】
無線通信ネットワークのようなデータネットワークは、１つの端末用にカスタマイズされるサービスと、全ての端末へブロードキャスト／マルチキャストされるサービスとの間にトレードオフが存在する。多くの端末（加入者）へのコンテンツ（データ）の配信は複雑な問題である。マルチキャスト技術を実装するネットワークシステムは、広域にわたってデータを配信することができる。しかしながら、送信者が、この配信の成功又は失敗について知ることは困難であるので、コスト及びリソース利用は膨大であり、不経済かもしれない。
【０００３】
１つのタイプのマルチキャスト送信では、情報の１つのコピーが、何百あるいは何千もの受信機に同時に送信される。送信確実性を達成するために、一般に、以下に説明するような３つのアプローチに分類可能ないくつかの技術が提案された。
【０００４】
第１のアプローチでは、送信者は、マルチキャスト送信の各受信機から受信することを期待するアクノレッジメント応答（ＡＣＫ）を追跡することにより、マルチキャスト送信の各受信機の状態情報を保持する。このアクノレッジメント応答が、選択されたタイムアウト時間の終了前に受信されない場合、送信者は、マルチキャストグループへ情報を再送信する。受信人口が非常に多い場合、このアプローチはうまく行かず、送信者に極めて多くのアクノレッジメント応答が殺到する良く知られた「ＡＣＫインプロージョン」問題を被りやすくなる。更に、送信者は、マルチキャストグループのメンバ（受信機）が誰であるかを知らないことが多いので、送信者が受信機の状態情報を保持することを困難にする。
【０００５】
第２のアプローチでは、受信機が情報を誤りなく取得しなければ、否定的なアクノレッジメント信号（ＮＡＣＫ）を各受信機に送信させることにより、第１アプローチのスケーラビリティ問題が対処される。このアプローチのバリエーションは、下流のノードからの中間ノードアグリゲートＮＡＣＫ信号を有し、上流のノードに対して１つのＮＡＣＫのみを転送することである。その後、上流のノードは、情報を再送信するかもしれない。
【０００６】
第３のアプローチでは、冗長によって送信確実性が達成される。冗長の最も単純な形式は反復である。第３のアプローチでは反復を用いて、同じ情報が数回再送信される。別の形式すなわち冗長は、送信される情報について前進型誤り訂正（ＦＥＣ：forward error correction）を実施することである。巧妙な符号化メカニズムを用いて、同じ信頼度因子が、より少ない冗長情報を用いて達成される。
【０００７】
しかしながら、上記全てのアプローチにおいて、データの再送信が、受信機の全セットに送られる。この再送信メカニズムは、情報の１つのコピーのみを送信すればよいので、有線ネットワーク環境においては十分に動作するかもしれない。このネットワーク内の経路指定プロトコルは、配信ツリーのブランチにデータを配信するために、データパケットの複製を取り扱う。更に、ツリーの葉（最後のホップ）への情報の送信は、有線ネットワークの高帯域幅が与えられ、比較的安価である。
【０００８】
あいにく、有線ネットワークと異なり、無線ネットワークにおける最後のホップは、最も高価なリソースである。これは、基地局トランシーバと、複数のモバイル端末との間の無線（over-the-air）リソースである。無線ネットワークにおけるブロードキャスト送信は、具体的なセル受信地域及びフレーム誤り率を得るように設計されているので、送信電力制御に支配されない。したがって、無線ネットワークにおいてブロードキャストされた送信は、ブロードキャストされた送信が到着するように設定されている受信領域がより広いことによって、ユニキャスト送信よりも多くの電力を利用する。この結果、ブロードキャスト送信は、ユニキャスト送信よりも一般に高価である。
【０００９】
更に、無線ブロードキャスト送信では、受信端末からのアクノレッジメント応答が制限されている。確実性は、ＦＥＣ、あるいは反復ブロードキャストによって達成される。あいにく、高ＦＥＣ、あるいは反復ブロードキャストを用いても、何人かのユーザは、データを受信できないかもしれない。例えば、データを受信しなかったモバイル端末は、ブロードキャスト領域の外側に存在しているかもしれない。あるいは、ブロードキャストの受信が、音声サービス取り扱いのために中断されるかもしれない。したがって、これらの端末は、情報を受信できないので、この情報を再ブロードキャストすることは不経済だろう。この情報を受信しない端末の数が非常に少ない場合、情報を再ブロードキャストすることも不経済だろう。例えば、確実性を達成するために高ＦＥＣが使用される場合、所定のセクタにおいて情報を正確に受信することができないモバイル端末の数は、非常に少ないかもしれない。したがって、ほんの極く一部のモバイル端末へ情報を再ブロードキャストするためにブロードキャストチャネル全体を使用することは不経済だろう。
【００１０】
したがって、要求されるものは、ネットワーク環境で使用され、多数の受信端末へデータを送信するために、最もリソース効率及びコスト効率の良い方法を決定するように動作する配信システムである。例えば、このシステムは、無線ネットワーク環境において、多数の受信端末へデータを送信するために、ユニキャスト送信技術あるいはマルチキャスト送信技術を使用することが、より効率的及び／又はコスト効率が良いかを判定するように動作すべきである。
【発明の開示】
【００１１】
本願は、２００４年５月１８日に出願され、開示内容がそのまま本明細書に援用され、"METHOD AND APPARATUS FOR HYBRID MULTICAST AND UNICAST TRANSMISSION"と題された出願番号６０／５７２，４５３を有する同時係属中の米国仮特許出願からの優先権の利益を主張する。
【００１２】
一又は複数の実施形態では、データネットワーク内の複数の端末へデータを効率的に配信するように動作する方法及び装置を備えるデータ配信システムが提供される。一実施形態では、このシステムは、端末へデータ（又はコンテンツ）を配信するために、マルチキャストとユニキャストとからなるハイブリッド送信を使用する。このシステムは、基地局から複数のモバイル端末へのデータの無線送信が、高価な無線（over-the-air）リソースを適用する無線ネットワークにおける使用に特に良く適している。
【００１３】
一実施形態では、このシステムの送信者は、マルチキャスト送信又はユニキャスト送信を用いてデータをネットワーク内の複数の端末に送信するコストを決定するために、様々なパラメータを使用する。どの送信技術が高価ではないかに基づいて、送信者は、データがいつどのように送信されるかを特定する送信スケジュールを生成する。データがマルチキャストされる場合、送信者は、この送信スケジュールに従ってデータをマルチキャストする。データが送信された場合、端末がこのデータを受信できなければ、端末は、このデータを取得するために、送信者とのユニキャストセッションを確立するように要求する。一実施形態では、送信者が端末へデータをマルチキャストした後、送信者は、再送信がどのように行なわれるかを決定するために、再び送信コスト分析を使用しうる。したがって、それほど高価ではないユニキャストセッションが、データを十分な端末に配信し、所望のサービス品質要件を満足するのであれば、このシステムは、全ての端末へのデータの高価な再ブロードキャストを回避する。この結果、データの不経済な再ブロードキャストが回避されるので、貴重なエアリンクリソースが効率的に利用される。
【００１４】
一実施形態では、方法は、データネットワーク上のサーバを操作するために提供される。この方法は、マルチキャスト及びユニキャストによるデータ送信に関連するマルチキャストコストインジケータ及びユニキャストコストインジケータを計算することを備える。この方法は更に、マルチキャストコストインジケータが、ユニキャストコストインジケータ未満であると判定することと、データがデータネットワーク上でいつマルチキャストされるかを記述する送信スケジュールを生成することとを備える。この方法は更に、この送信スケジュールを送信することと、この送信スケジュールに従ってデータをマルチキャストすることとを備える。
【００１５】
一実施形態では、装置は、データネットワーク上のサーバにおける使用のために提供される。この装置は、マルチキャスト及びユニキャストによるデータ送信に関連するマルチキャストコストインジケータ及びユニキャストコストインジケータを計算するように動作するコスト推定器を備える。この装置は更に、マルチキャストコストインジケータが、ユニキャストコストインジケータ未満であると判定し、データがデータネットワーク上でいつマルチキャストされるかを記述する送信スケジュールを生成する処理ロジックを備える。この装置は更に、この送信スケジュールを送信し、この送信スケジュールに従ってデータをマルチキャストする送信ロジックを備える。
【００１６】
一実施形態では、装置は、データネットワーク上のサーバにおける使用のために提供される。この装置は、マルチキャスト及びユニキャストによるデータ送信に関連するマルチキャストコストインジケータ及びユニキャストコストインジケータを計算する手段と、マルチキャストコストインジケータが、ユニキャストコストインジケータ未満であると判定する手段とを備える。この装置は更に、データがデータネットワーク上でいつマルチキャストされるかを記述する送信スケジュールを生成する手段と、この送信スケジュールを送信する手段とを備える。この装置は更に、送信スケジュールに従ってデータをマルチキャストする手段を備える。
【００１７】
一実施形態では、コンピュータ読取可能媒体は、サーバ内の処理ロジックによって実行されると、データネットワーク上でデータを送信するように動作する命令を備える。このコンピュータ読取可能媒体は、マルチキャスト及びユニキャストによるデータ送信に関連するマルチキャストコストインジケータ及びユニキャストコストインジケータを計算する命令と、マルチキャストコストインジケータが、ユニキャストコストインジケータ未満であると判定する命令とを備える。このコンピュータ読取可能媒体はまた、データがデータネットワーク上でいつマルチキャストされるかを記述する送信スケジュールを生成する命令と、この送信スケジュールを送信する命令とを含む。このコンピュータ読取可能媒体はまた、送信スケジュールに従ってデータをマルチキャストする命令を備える。
【００１８】
一実施形態では、方法は、データネットワーク上の受信端末を操作するために提供される。この方法は、データがどのように送信されるかを記述する送信スケジュールを受信することを備える。この方法はまた、データが、１つ又は複数のマルチキャストサイクル中に、データネットワーク上でマルチキャストされるべきであると判定することと、このマルチキャストされたデータを、前記１つ又は複数のマルチキャストサイクルの間に受信することとを含む。
【００１９】
一実施形態では、装置は、データネットワーク上の受信端末における使用のために提供される。この装置は、データがどのように送信されるかを記述する送信スケジュールを受信するロジックを備える。この装置はまた、データが、１つ又は複数のマルチキャストサイクル中に、データネットワーク上でマルチキャストされるべきであると判定するロジックと、このマルチキャストされたデータを、前記１つ又は複数のマルチキャストサイクルの間に受信するロジックとを備える。
【００２０】
本発明の他の局面、利点、及び特徴は、後述する図面の簡単な説明、詳細説明、及び特許請求の範囲を検討した後に明白になるであろう。
【発明を実施するための最良の形態】
【００２１】
本明細書に記載された実施形態の前述した局面、及びそれに伴う利点は、以下の詳細記述を添付図面と連携して参照することによってより容易に明らかになるであろう。
【００２２】
以下に示す詳細記述は、無線ネットワークにおいて、送信サーバから、複数の端末へデータを効率的に配信するように動作するデータ配信システムの一又は複数の実施形態を説明する。一実施形態では、このシステムは、データを端末へ効率的に配信するためにマルチキャスト送信とユニキャスト送信とを組み合わせたハイブリッド送信技術を利用する。このシステムは、無線ネットワーク環境での使用に特に適しているが、限定される訳ではないが、通信ネットワーク、インターネットのような公衆ネットワーク、仮想プライベートネットワーク（ＶＰＮ）のようなプライベートネットワーク、ローカルエリアネットワーク、広域ネットワーク、長距離ネットワーク、あるいは他のタイプのデータネットワークを含む任意のタイプのネットワーク環境においても使用されうる。
【００２３】
以下に示す記述では、マルチキャスト送信は、以下に示すカテゴリのうちの１つ又は複数をカバーすると定義される。  
１．  １対多（１つの送信者と多くの受信機）。  
２．  多対多（多くの送信者と多くの受信機）。  
３．  多対１（多くの送信者と１つの受信機）。  
したがって、「ブロードキャスト」送信は、一般に、第１のタイプのマルチキャスト送信として定義される。しかしながら、用語「ブロードキャスト」はまた、本明細書においては、これら特定されたマルチキャストカテゴリのうちの何れかにおける送信を意味するためにも使用される。
【００２４】
図１は、データ配信システムの一実施形態を備えるデータネットワーク１００を示す。ネットワーク１００は、サーバ１０２と、データネットワーク１０４と、１０６で示される（１からＮまでの）端末とを備える。データネットワーク１０４は、サーバ１０２と端末１０６との間のデータ送信を可能にする有線ネットワークと無線ネットワークとのうちの任意のタイプ及び／又は任意の組み合わせでありうる。このネットワーク１０４は、通信チャネル１１０経由でネットワーク１０４に接続される基地局１０８を含む。この通信チャネル１１０は、基地局１０８がデータネットワーク１０４を介して通信することを可能にする任意のタイプの有線又は無線通信チャネルでありうる。基地局は、基地局１０８と端末１０６との間のデータの無線送信を可能にする無線通信リンク１１２によって端末１０６と通信する。一実施形態では、無線通信リンク１１２は、順方向通信チャネル、逆方向通信チャネル、制御チャネル、および基地局１０８と端末１０６との間で情報を通信するために使用されうる他の任意のタイプの通信チャネルを備える。
【００２５】
サーバ１０２は、有線及び／又は無線通信リンクでありうる通信リンク１１４を経由してデータネットワーク１０４と通信する。本記載の目的のために、サーバ１０２は、任意のタイプ又はフォーマットでありうる３つのデータファイル１１６（又は「コンテンツファイル」）Ｃ１，Ｃ２，Ｃ３を含むと仮定される。このデータ配信システムの一又は複数の実施形態では、データファイル１１６は、サーバ１０２によって、ネットワーク１０４を経由して端末１０６へ効率的に送信される。
【００２６】
一実施形態では、サーバ１０２は、サーバ１０２からマルチキャスト送信とユニキャスト送信との両方によってデータ１１６を送信するコストに関する送信コスト推定値を計算するコスト推定器１１８を含む。例えば、コスト推定器１１８は、より低コストの送信技術を決定するために比較されるマルチキャストコストインジケータとユニキャストコストインジケータとを計算するように動作する。コスト推定器は、送信コスト推定値を決定するために様々なネットワークパラメータ及びシステムパラメータを使用する。
【００２７】
コスト推定器１１８から出力されるコスト推定値は、選択ロジック１２０に入力される。選択ロジック１２０は、マルチキャスト１２２及びユニキャスト１２４から、端末１０６へデータを送信する送信ロジックを選択する。一実施形態では、選択ロジック１２０は、コスト推定値に基づいて、最も安価な送信技術を選択する。
【００２８】
選択されたサービスレベルを提供するために、サーバ１０２は、信頼度を示す信頼度因子を決定するように動作する。サーバ１０２は、この信頼度でデータを配信することを望む。この信頼度因子に基づいて、選択されたＦＥＣレベルがデータ１１６に適用され、この結果として符号化されるデータがインタリーブされ、選択された送信技術を用いて端末１０６へ送信されるデータストリーム１２６が生成される。
【００２９】
送信前にサーバ１０２は、データがいつどのように端末１０６へ送信されるかを記述する送信スケジュールを生成するように動作する。サーバ１０２は、この送信スケジュールを端末１０６に送信する。これによって、端末１０６は、データがどのように送信されるかを事前に知ることができる。この送信スケジュールの配信は、限定される訳ではないが、任意の制御チャネル、帯域外チャネル、あるいはサーバ１０２と端末１０６との間の別のタイプの送信チャネルを含む任意のタイプの送信チャネルを用いて実施されうる。データが端末へユニキャストされることになっているのであれば、送信スケジュールは、データ１１６を取得するために端末１０６がサーバとのユニキャストセッションを確立する時間ウィンドウを提供する。データが端末へマルチキャストされることになっているのであれば、送信スケジュールは、データ１１６がいつマルチキャストされるのかを特定する。これによって、端末は、適切な時間に注意を払い、データを受信することができる。
【００３０】
データがマルチキャストされる場合、データを受信していない任意の端末が、ユニキャスト送信を経由してデータを受信することを要求しうる。例えば、端末は、選択された送信範囲外にあるかもしれないし、あるいは送信干渉を経験しているかもしれないし、マルチキャストされたデータの受信を妨げる別のサービスを提供しているかもしれない。例えば、図１では、端末１及び端末Ｎは、マルチキャストされたデータを受信しておらず、これら端末は、経路１３０，経路１３２、及び経路１３４に示すように、サーバ１０２へ要求（Ｒｅｑ１及びＲｅｑ２）を送ると仮定される。これら要求は、サーバ１０２とのユニキャストセッションを確立するように要求する。この結果、データは、ユニキャスト送信を用いて、端末１及び端末Ｎによって取得されるようになる。
【００３１】
一実施形態では、データがマルチキャストされた後、サーバ１０２は、端末１０６とのユニキャストセッションを確立するための多くの要求を受信する。この要求をサーバ１０２が受信した後、コスト推定器１１８は、コスト効率がより良いのは、マルチキャスト送信を用いてデータを再送信することであるか、あるいは全ての要求を満足するのに必要な数のユニキャストセッションを確立することであるかを再び計算する。この決定後、データは、最もコスト効率の良い方法を用いて再送信される。例えば、マルチキャスト送信を用いた再ブロードキャストが最もコスト効率が良いのであれば、新たな送信スケジュールが生成され、再ブロードキャストの前に端末に送られる。ユニキャストセッションが最もコスト効率が良いのであれば、サーバ１０２は、受信した要求を満足するのに必要な数のユニキャストセッションを確立するように動作する。
【００３２】
したがって、一又は複数の実施形態では、このデータ配信システムは、データネットワーク上の端末へデータを送信する最もコスト効率の良い方法を決定するように動作する。この決定はまた、選択されたサービスレベルが達成された十分な数の端末にデータが与えられるまで、データの任意の再送信に関してなされうる。この結果、同じデータが、特定のネットワーク環境において最も効率的な送信方法に基づいてマルチキャスト及びユニキャストの両方がなされるので、このデータ配信システムの実施形態は、ハイブリッド送信システムを提供する。
【００３３】
図２は、データ配信システムの一実施形態での使用に適した送信サーバ２００の一実施形態の詳細ブロック図を示す。例えば、このサーバ２００は、図１におけるサーバ１０２でありうる。このサーバ２００は、処理ロジック２０２、デバイスリソース２０４、データメモリ２０６、送信ロジック２０８、及び受信ロジック２１０を備える。これらは全て内部データバス２１２に接続されている。サーバ２００はまた、コスト推定器２１４、及びＦＥＣ／インタリーバロジック２１６を備える。これらもまたデータバス２１２に接続されている。
【００３４】
一又は複数の実施形態では、処理ロジック２０２は、ＣＰＵ、プロセッサ、ゲートアレイ、ハードウェアロジック、メモリ素子、仮想マシン、ソフトウェア、及び／又はハードウェアとソフトウェアとの任意の組み合わせを備える。したがって、処理ロジック２０２は、一般に、マシン読取可能命令を実行し、かつ内部データバス２１２を経由してサーバ２００の１つ又は複数の他の機能要素を制御するロジックを備える。
【００３５】
デバイスリソース及びインタフェース２０４は、サーバ２００が内部システム及び外部システムと通信することを可能にするハードウェア及び／又はソフトウェアを備える。例えば、内部システムは、大容量記憶システム、メモリ、ディスプレイドライバ、モデム、あるいは他の内部デバイスリソースを含みうる。外部システムは、ユーザインタフェースデバイス、プリンタ、ディスクドライブ、あるいは他のローカルなデバイス又はシステムを含みうる。
【００３６】
データメモリ２０６は、任意のタイプのメモリデバイスを備え、データネットワーク上の１つ又は複数の端末へ送信されるデータ（又はコンテンツ）を含む。例えば、このコンテンツは、マルチメディアコンテンツ、又は他のタイプのコンテンツを備えうる。
【００３７】
送信ロジック２０８は、サーバ２００がデータ又は他の情報を遠隔のデバイス又はシステムに送信することを可能にするように動作するハードウェア及び／又はソフトウェアを備える。例えば、一実施形態では、送信ロジック２０８は、データ及び／又は他の情報を、例えばモバイル端末のような遠隔デバイスへ、マルチキャストチャネル２１８を介してマルチキャストするように動作するマルチキャストロジックを備える。このマルチキャストロジックは、例えば、サーバ２００が、データネットワークを介して複数の遠隔端末にマルチキャスト送信を送信することを可能にする。送信ロジック２０８はまた、データ及び／又は他の情報を、例えば遠隔端末のような遠隔デバイスへ、ユニキャストチャネル２２０を介してユニキャストするように動作するユニキャストロジックを備える。このユニキャストロジックは、例えば、サーバ２００が、ユニキャストチャネル２２０を介して１つ又は複数の遠隔端末へデータを送信するために、１つ又は複数のユニキャストセッションを確立することを可能にする。送信ロジック２０８はまた、制御チャネル２２２を介して遠隔デバイスへ制御情報を送信する制御チャネルロジックを備える。この制御チャネルロジックは、任意の適切なハードウェア及び／又はソフトウェアを備え、サーバ２００から１つ又は複数の遠隔端末へ情報を送信するのに適した任意のタイプの制御チャネルを実現しうる。
【００３８】
受信ロジック２１０は、サーバ２００が、データ及び他の情報を、遠隔デバイスから受信チャネル２２４を経由して受信することを可能にするように動作するハードウェア及び／又はソフトウェアを備える。例えば、受信ロジック２１０は、受信チャネル２２４を経由してデータネットワークにインタフェースし、遠隔端末デバイスから送信されたデータ要求をサーバ２００が受信することを可能にする。
【００３９】
コスト推定ロジック２１４は、ＣＰＵ、プロセッサ、ゲートアレイ、ハードウェアロジック、メモリ素子、仮想マシン、ソフトウェア、及び／又はハードウェアとソフトウェアとの任意の組み合わせを備える。コスト推定器２１４は、データネットワークを介して複数の遠隔端末へなされるコンテンツのマルチキャスト送信及びユニキャスト送信のコストを計算するように動作する。例えば、このコスト推定器は、マルチキャスト送信のコスト及びユニキャスト送信のコストを示すマルチキャストコストインジケータ及びユニキャストコストインジケータを含むコストインジケータを計算するために、様々なパラメータを使用する。このコストパラメータは、限定される訳ではないが、実際のコスト、帯域幅利用、ネットワーク利用、位置、遅延、電力、及び他のリソース使用、又はコストパラメータを含む。一実施形態では、このコストパラメータは、用途に応じて変わりうるが、任意のコスト計算機能を利用することができる。コスト推定器２１４から出力されるコストインジケータは、データを遠隔端末に送信する最も安価な方法を提供するのが、データのマルチキャストであるか、あるいはデータのユニキャストであるかを決定するために使用することができる。
【００４０】
ＦＥＣ／インタリーバロジック２１６は、ＣＰＵ、プロセッサ、ゲートアレイ、ハードウェアロジック、メモリ素子、仮想マシン、ソフトウェア、及び／又はハードウェアとソフトウェアとの任意の組み合わせを備える。ＦＥＣ／インタリーバ２１６は、選択されたサービス品質（ＱｏＳ）レベルでコンテンツが配信されるように、送信されるコンテンツにＦＥＣを提供するように動作する。一又は複数の実施形態では、ＦＥＣ／インタリーバ２１６は、送信されるコンテンツに任意のタイプのＦＥＣを提供しうる。更に、ダイバーシティを提供し、かつラインヘッド（ＨＯＬ：head of the line）閉塞を防ぐために、ＦＥＣ／インタリーバ２１６は、多数のコンテンツファイルをインタリーブするように動作する。したがって、ＦＥＣ／インタリーバ２１６は、送信ダイバーシティを提供する任意の適切なインタリーブ技術を提供しうる。
【００４１】
サーバ２００は、データネットワークを介して複数の端末にデータを効率的に配信するデータ配信システムの一又は複数の実施形態で使用するのに適切である。動作中、サーバ２００は、データメモリ２０６内に格納され、受信端末に配信されるコンテンツ（１、２、３）を有している。コスト推定ロジック２１４は、マルチキャスト送信及びユニキャスト送信を用いたコンテンツ送信に関するコストを示すコストインジケータを推定するために使用される。処理ロジック２０２は、コスト推定器２１４からコストインジケータを受け取り、遠隔端末にコンテンツを送信する最も安価な送信技術を選択する。一実施形態では、処理ロジック２０２は、コンテンツがいつどのようにして遠隔端末に送信されるのかを記述した送信スケジュールを生成する。例えば、一実施形態では、この送信スケジュールは、遠隔端末によって受信されるコンテンツの１つ又は複数のマルチキャストが、サーバによっていつ送信されるのかを記述する。別の実施形態では、送信スケジュールは、コンテンツを取得する目的で、端末がサーバとのユニキャストセッションの確立を許可されたウィンドウを記述する。このデータ配信システムの動作、及びサーバ２００の動作の更なる詳細記述は、本書の別のセクションで与えられる。
【００４２】
一実施形態では、データ配信システムは、コンピュータ読取可能媒体に格納され、処理ロジック２０２によって実行された時、ここで説明したサーバ２００の機能を提供するプログラム命令を備える。例えば、命令は、フロッピー（登録商標）ディスク、ＣＤＲＯＭ、メモリーカード、ＦＬＡＳＨメモリデバイス、ＲＡＭ、ＲＯＭ、あるいはデバイスリソース２０４を経由してサーバ２００に接続する他の任意のタイプのメモリデバイスかコンピュータ読取可能媒体のようなコンピュータ読取可能媒体からのサーバ２００へロードされうる。別の実施形態では、この命令は、受信ロジック２１０を経由してサーバ２００に接続するネットワークリソースからサーバ２００へダウンロードされうる。この命令は、処理ロジック２０２によって実行された時、ここで説明したようなデータ配信システムの一又は複数の実施形態を提供する。
【００４３】
図３は、データ配信システムの一実施形態においてサーバを操作する方法３００の一実施形態を示す。明確にするために、方法３００は、図２に示されるサーバ２００に関して説明される。一又は複数の実施形態では、処理ロジック２０２は、下記に述べる機能を実行するプログラム命令を実行する。
【００４４】
ブロック３０２では、マルチキャストサイクルインジケータ（Ｎ）が初期化される。例えば、マルチキャストサイクルインジケータ（Ｎ）はゼロに初期化される。一実施形態では、サイクルインジケータＮは、処理ロジック２０２によって格納及び初期化され、遠隔端末にデータを送信するために使用されるマルチキャスト送信サイクル数を示す。
【００４５】
ブロック３０４では、サーバは、複数の遠隔端末に送信されるコンテンツのユニキャスト（Ｕ）送信、及びマルチキャスト（Ｍ）送信のコストを計算する。マルチキャスト送信のコストは、ブロック３０６において計算され、ユニキャスト送信のコストは、ブロック３０８において計算される。各送信タイプの計算は、使用データ、受信機の故障確率、フレーム誤り率、加入者数、ＦＥＣ、プロトコルオーバヘッド等の入力を必要とする。例えば、コスト推定器２１４が、マルチキャストコストインジケータ及びユニキャストコストインジケータを計算するように動作する。
【００４６】
ブロック３１０では、マルチキャスト（Ｍ）送信、及びユニキャスト（Ｕ）送信のコストを比較するためにテストが行なわれる。例えば、このテストは、コスト推定器２１４から受け取られるコストインジケータに基づいて、処理ロジック２０２によって行なわれる。このテストが、ユニキャスト送信を用いてコンテンツを送ることがよりコスト効率が良いと判定すると、方法はブロック３１２に進む。このテストが、マルチキャスト送信を用いてコンテンツを送ることがよりコスト効率が良いと判定すると、方法はブロック３１４に進む。
【００４７】
ブロック３１２では、この方法が、最初のマルチキャストサイクルであるか、すなわちマルチキャストが全くスケジュールされていないかを判定するために、テストが行われる。例えば、このテストは、処理ロジック２０２によって行なわれる。マルチキャストサイクルが初期値であるゼロに設定されている場合、マルチキャストはスケジュールされておらず、方法はブロック３１６に進む。マルチキャストサイクルがゼロ以外の数に設定されている場合、１つ又は複数のマルチキャスト送信が既にスケジュールされており、方法はブロック３１８に進む。
【００４８】
ブロック３１６では、ユニキャスト送信を用いてコンテンツが遠隔端末に送信されるように、ユニキャスト送信スケジュールが生成される。例えば、処理ロジック２０２によって行われるコスト分析は、ユニキャスト送信を用いてコンテンツを送信することがよりコスト効率が良いと判定する。一実施形態では、処理ロジック２０２は、遠隔端末がユニキャスト送信を用いてコンテンツを取得するためのコンタクトウィンドウを含む送信スケジュールを生成する。コンタクトウィンドウは、遠隔端末がコンテンツを取得するためにサーバとのユニキャストセッションを設定することができる時間間隔を指定する。処理ロジック２０２は、遠隔端末とのユニキャストセッションを確立するように動作し、コンテンツはこれら端末へ、送信ロジック２０８及びユニキャストチャネル２２０を用いて送信される。この後、この方法は、ブロック３２０に進む。ブロック３２０では、制御チャネル２２２を用いて送信スケジュールが端末に送信され、それに応じてデータが送信される。
【００４９】
ブロック３１８では、サイクルインジケータＮがゼロに等しくないので、１つ又は複数のマルチキャストサイクルがスケジュールされる。したがって、処理ロジック２０２は、大多数の端末へコンテンツを送信するために必要とされるマルチキャストサイクル数を計算したが、必要なだけの追加端末にコンテンツを送信し、所望のサービスレベルを達成するために、ユニキャスト送信がよりコスト効率が良いと判定した。処理ロジック２０２は、各マルチキャストサイクルがいつ起こるかを記述する送信スケジュールを生成する。この送信スケジュールは遠隔端末へ送信され、これにより、遠隔端末は、適切な時間に、マルチキャストに対して注意を払うことができる。実際のマルチキャストの前にＦＥＣがコンテンツに適用されるかもしれない。そして、送信されるコンテンツファイルが多数存在する場合には、システム性能を改善するために、１つのコンテンツファイルからのマルチキャストサイクルの、他のコンテンツファイルからのマルチキャストサイクルを用いたインタリーブが、ＦＥＣ／インタリーバロジック２１６によって行なわれる。
【００５０】
全てのマルチキャストの終了後、１つ又は複数の遠隔端末がコンテンツを受信しない場合には、これら遠隔端末は、サーバからコンテンツを取得するために、ユニキャストセッションを必要とするかもしれない。したがって、このデータ配信システムは、１つ又は複数のマルチキャストが遠隔端末にデータを効率的に送信できるように動作する。マルチキャストを受信しない端末は、この後、サーバからデータを取得するためにユニキャストセッションを必要とするかもしれない。この結果、このシステムは、マルチキャストとユニキャストとのハイブリッド送信を用いて、データを送信するために最もコスト効率の良い方法を提供するように動作する。
【００５１】
ブロック３１４では、マルチキャストサイクルＮは１つインクリメントされる。例えば、処理ロジック２０２は、マルチキャストサイクルＮをインクリメントし、この値を格納する。この時点では、１つ又は複数のマルチキャストが、コンテンツを遠隔の受信機に送信するために使用される。そして、方法はブロック３０４に戻り、更なるマルチキャストがスケジュールされるかを判定するために、新たなコストインジケータが計算される。しかしながら、並列処理によって、ユニキャスト送信のコストの新たな計算がブロック３２２において開始される。
【００５２】
ブロック３２２では、前に計算されたマルチキャストサイクル中に、ネットワークが及ばない遠隔端末の数が計算される。例えば、処理ロジック２０２は、ブロック３２２からブロック３３０における機能を実行し、スケジュールされたマルチキャストの後、コンテンツを受信しないであろう未受信の遠隔端末の数を決定する。未受信の端末の数が計算された後、方法はブロック３０４に戻り、マルチキャスト送信とユニキャスト送信とのコストを計算する処理が繰り返される。例えば、３つのマルチキャストサイクルの後、データを受信していない未受信の端末がまだ存在するかもしれない。ブロック３０４における次のコスト計算の間、コンテンツの別のマルチキャストが、未受信の端末とのユニキャストセッションを確立することよりも高価であると判定されるかもしれない。このような場合、方法は、マルチキャストスケジュールが生成されるブロック３１８に進み、この後、マルチキャストが実行される。残りの未受信の端末も、データを取得するためにユニキャストセッションを確立することができる。
【００５３】
方法３００は、単に一実施形態を図示し、フロー要素の変更、追加、あるいは置換が、記載した実施形態の範囲から逸脱することなくなされうることが留意されるべきである。
【００５４】
図４は、データ配信システムの一実施形態で使用するのに適切な端末４００の一実施形態の詳細ブロック図を示す。端末４００は、処理ロジック４０２、データメモリ４０４、デバイスリソース及びインタフェース４０６、送信ロジック４０８、及び受信ロジック４１０を備える。これらは全て内部データバス４１２に接続されている。端末４００はまた、スケジューリングロジック４１４を備える。スケジューリングロジック４１４もまたデータバス４１２に接続されている。
【００５５】
一又は複数の実施形態では、処理ロジック４０２は、ＣＰＵ、プロセッサ、ゲートアレイ、ハードウェアロジック、メモリ素子、仮想マシン、ソフトウェア、及び／又はハードウェアとソフトウェアとの任意の組み合わせを備える。したがって、処理ロジック４０２は、一般に、マシン読取可能命令を実行し、かつ内部データバス４１２を経由して端末４００の１つ又は複数の他の機能要素を制御するロジックを備える。
【００５６】
デバイスリソース及びインタフェース４０６は、端末４００が内部システム及び外部システムと通信することを可能にするハードウェア及び／又はソフトウェアを備える。例えば、内部システムは、大容量記憶システム、メモリ、ディスプレイドライバ、モデム、又は他の内部デバイスリソースを含みうる。外部システムは、ユーザインタフェースデバイス、プリンタ、ディスクドライブ、あるいは他のローカルなデバイス又はシステムを含みうる。
【００５７】
送信ロジック４０８は、端末４００がデータ又は他の情報を外部のデバイス又はシステムに送信することを可能にするように動作するハードウェア及び／又はソフトウェアを備える。例えば、送信ロジック４０８は、データネットワークを介してデータ及び／又は他の情報を、サーバのような他のデバイスへ送信するロジックを備えうる。例えば、処理ロジック４０２は、送信ロジック４０８を使用し、データネットワークにおいてユニキャストセッションを確立するようにサーバへ要求を送信することができる。
【００５８】
受信ロジック４１０は、端末４００がデータ及び他の情報を、遠隔のデバイス又はシステムから受信することを可能にするように動作するハードウェア及び／又はソフトウェアを備える。例えば、一実施形態では、受信ロジック４１０は、例えばネットワークサーバのような遠隔デバイスから、マルチキャストチャネル４１８を介してマルチキャストされるデータ及び／又は情報を受信するように動作するマルチキャスト受信ロジックを備える。例えば、このマルチキャスト受信ロジックは、端末４００が、データネットワークを介してネットワークサーバからマルチキャスト送信を受信することを可能にする。受信ロジック４１０はまた、ユニキャストチャネル２２０を介して遠隔サーバからユニキャストデータ及び／又は他の情報を受信するように動作するユニキャストロジックを備える。例えば、このユニキャストロジックは、端末４００が、ユニキャストチャネル２２０を介して遠隔サーバからデータを受信する１つ又は複数のユニキャストセッションを確立することを可能にする。また受信ロジック４０８は、制御チャネル４２２を介して遠隔サーバから制御情報を受信する制御チャネルロジックを備える。この制御チャネルロジックは、任意の適切なハードウェア及び／又はソフトウェアを備え、遠隔サーバから情報を受信するのに適切な任意のタイプの制御チャネルを実現しうる。
【００５９】
データメモリ４０４は、端末４００において情報を格納するのに適切な任意のタイプのメモリを備える。例えば、この端末４００は、サーバからマルチキャスト送信で送信されたコンテンツを受信する。一実施形態では、処理ロジック４０２は、更なる処理のためにメモリ４０４内にこのコンテンツを格納するように動作する。
【００６０】
スケジューリングロジック４１４は、遠隔サーバからのデータの受信をスケジュールするように動作する。例えば、このスケジューリングロジック４１４は、制御チャネル４２２を経由した遠隔サーバからの送信スケジュールを受信する。この送信スケジュールは、端末４００によって受信されるデータがいつどのようにしてサーバから送信されるのかを記述している。データがユニキャストセッションで取得される時間ウィンドウを送信スケジュールが識別すると、スケジューリングロジック４１４は、処理ロジック４０２に対して、時間ウィンドウ内にデータを取得するために、サーバとのユニキャストセッションを確立するように警告する。データが１つ又は複数のマルチキャストサイクルでマルチキャストされるであろうことを送信スケジュールが示す場合には、スケジューリングロジック４１４は、処理ロジック４０２に対して、適切な時間に、データマルチキャストに対して注意を払うように警告する。
【００６１】
動作中、データ配信システムの一又は複数の実施形態に従って、端末４００は、データネットワーク上の送信サーバから効率的に送信されるデータを受信するように動作する。端末４００は、制御チャネル４２２を経由してサーバから送信スケジュールを受信する。処理ロジック４０２は、この送信スケジュールを処理し、データが端末へマルチキャストされるか、あるいはユニキャストされるかを決定する。データがユニキャストされるべきであれば、送信スケジュールは、データを取得するために端末４００がユニキャストセッションを確立すべき時間ウィンドウを示す。データがマルチキャストされるべきであれば、送信スケジュールは、データの１つ又は複数のマルチキャストがいつ起きるかを示す。一実施形態では、端末４００が、特定された送信技術に基づいてデータを取得できるように、スケジューリングロジック４１４は、受信した送信スケジュールを処理するように動作する。
【００６２】
データがマルチキャストされ、マルチキャストスケジュールの終了までに端末４００において受信されないのであれば、処理ロジック４０２は、このデータを取得するために、サーバとのユニキャストセッションを要求する。したがって、このデータ配信システムの実施形態によって、送信サーバは、リソース効率及びコスト効率の最も良い方法でデータを送信することが可能となり、端末４００は、これらの送信を受信するように動作する。
【００６３】
一実施形態では、データ配信システムは、コンピュータ読取可能媒体に格納され、処理ロジック４０２によって実行された時、ここで説明した端末４００の機能を提供するコンピュータプログラム命令を備える。例えば、命令は、フロッピーディスク、ＣＤＲＯＭ、メモリーカード、ＦＬＡＳＨメモリデバイス、ＲＡＭ、ＲＯＭ、あるいはデバイスリソース４０６を経由して端末４００に接続する他の任意のタイプのメモリデバイスかコンピュータ読取可能媒体のようなコンピュータ読取可能媒体から端末４００へロードされうる。別の実施形態では、この命令は、受信ロジック４１０を経由して端末４００に接続するネットワークリソースから端末４００へダウンロードされうる。この命令は、処理ロジック４０２によって実行された時、ここで説明したようなデータ配信システムの一又は複数の実施形態を提供する。
【００６４】
図５は、データ配信システムの一実施形態において端末を操作する方法５００の一実施形態を示す。明確にするために、方法５００は、図４に示す端末４００に関して説明される。一又は複数の実施形態では、処理ロジック４０２は、下記に述べる機能を実行するプログラム命令を実行する。
【００６５】
ブロック５０２では、データネットワーク内のサーバからの送信スケジュールが、端末において受信される。例えば、処理ロジック４０２は、受信ロジック４１０の制御チャネル４２２を経由して送信スケジュールを受信する。一実施形態では、この送信スケジュールは、コンテンツが端末によって受信されるように、コンテンツがサーバからいつ何回マルチキャストされるのかを記載する。コンテンツが端末へユニキャストされるべきであれば、送信スケジュールは、サーバからデータを取得するために端末がユニキャストセッションを確立する時間ウィンドウを記述する。
【００６６】
ブロック５０４では、コンテンツが端末へマルチキャストされるかを判定するテストが行われる。例えば、処理ロジック４０２は、送信スケジュールに従って受信された情報を用いてこのテストを行う。コンテンツがマルチキャストされるべきであれば、マルチキャストサイクルインジケータＮは、ゼロより大きくなり、方法はブロック５０８に進む。マルチキャストサイクルインジケータＮがゼロに等しい場合、コンテンツはユニキャストセッションにより送信され、方法はブロック５０６に進む。
【００６７】
ブロック５０６では、データが端末へ送信されるように、端末と送信サーバとの間にユニキャストセッションが確立される。例えば、スケジューリングロジック４１４は、受信された送信スケジュールに含まれる時間ウィンドウに基づいて、ユニキャストセッションが確立される時をスケジュールする。スケジューリングロジック４１４は、スケジュールされたユニキャスト時間について処理ロジック４０２に通知し、処理ロジック４０２は、送信ロジック４１６を用いてサーバとのユニキャストセッションを要求する。そして、受信ロジック４１０は、ユニキャストチャネル４２０を経由してサーバとのユニキャストセッションを確立する。
【００６８】
ブロック５０８では、端末はユニキャストセッションを経由してデータを取得する。例えば、処理ロジック４０２は、ユニキャストチャネル４２０を経由してデータを取得し、取得したデータをデータメモリ４０４に格納する。データが受信された後、方法はブロック５１４において終了する。
【００６９】
ブロック５０４では、マルチキャストサイクルインジケータＮがゼロに等しくなく、データが端末へマルチキャストされるべきと判定されれば、方法はブロック５０８に進む。
【００７０】
ブロック５０８では、端末は、マルチキャストサイクル中に、データの受信を試みる。例えば、スケジューリングロジック４１４は、処理ロジック４０２に対して、データがサーバからいつマルチキャストされるかを示す。処理ロジック４０２は、マルチキャストチャネル４１８を経由してマルチキャストを受信するために受信ロジック４１０を制御する。
【００７１】
ブロック５１２では、前のマルチキャストサイクル中に、端末がデータを受信できたかを判定するためにテストが行なわれる。例えば、処理ロジック４０２は、データが正確に受信されたかを判定する。一実施形態では、このデータはＦＥＣを用いて符号化され、及び／又はインタリーブされる。処理ロジック４０２は、このデータが誤りなく受信されたかを判定するために、これら動作を逆にするように動作する。データが誤りなく受信された場合、方法はブロック５１４で終了する。前のマルチキャストサイクル中に、データが正確に受信されなかった場合、方法はブロック５１６に進む。
【００７２】
ブロック５１６では、マルチキャストサイクルインジケータＮがデクリメントされる。例えば、処理ロジック４０２は、サイクルインジケータが、次に受信されるマルチキャストサイクルを示すことができるようにサイクルインジケータをデクリメントする。
【００７３】
ブロック５１８では、更なるマルチサイクルが残っているかを判定するためにテストが行われる。例えば、マルチキャストサイクルインジケータＮがゼロである場合、この他にマルチキャストサイクルは存在せず、方法はブロック５０６に進み、端末は、データを取得するために、送信サーバとのユニキャストセッションを確立する。サイクルインジケータＮがゼロでなければ、更にマルチキャストサイクルが行なわれ、方法はブロック５０８に進み、端末４００は、次のマルチサイクルにおいて、マルチキャストされたデータの正確な受信を試みる。
【００７４】
この方法は、データが、マルチキャスト送信によって受信されるか、あるいはユニキャスト送信によって受信されるかまで続く。したがって、方法５００は、データ配信システムの一実施形態で効率的に送信されたデータを端末が受信できるように動作する。方法５００は、単に一実施形態を図示し、フロー要素の変更、追加、あるいは置換が、記載した実施形態の範囲から逸脱することなくなされうることが留意されるべきである。
【００７５】
図６は、データ配信システムの一又は複数の実施形態を利用して達成されるコスト及びリソース効率を図示するグラフ６００を示す。例えば、グラフ６００は、ある回数のマルチキャストサイクルの後、連続したマルチキャスト送信で減衰リターンが存在することを示す。このグラフ６００は、最初のマルチキャスト送信サイクルの間、データを受信しない端末数が、ポイント６０２に達するまで減少することを示している。このデータ配信システムの一又は複数の実施形態に従うと、更なるマルチキャスト送信に関するコストは、ポイント６０２に達した後、ユニキャスト送信に関するコストを上回る。したがって、グラフに示す６０４では、ほんの少しの端末に到達するために、ネットワークの大幅なマルチキャストリソースが使用されるので、連続的なマルチキャスト送信は、非常に非効率的になる。
【００７６】
しかしながら、未受信の端末が、データを取得するためにユニキャストセッションを確立することを可能にするシステムを提供することによって、ポイント６０２で示されるように、約１００％の信頼性を達成する。したがって、一又は複数の実施形態では、データ配信システムは、非常に効率的なデータ配信の結果となるデータのハイブリッド送信を提供する。
【００７７】
したがって、データ配信システムの一又は複数の実施形態がここに図示され説明される一方、これら実施形態に対する様々な変更が、この精神又は本質的な特徴から逸脱することなくなされうることが理解されるであろう。したがって、本明細書における開示及び記載は、限定ではなく、特許請求の範囲に記載した本発明の範囲の実例であることが意図されている。
【図面の簡単な説明】
【００７８】
【図１】図１は、データ配信システムの一実施形態を備えるデータネットワークを示す。
【図２】図２は、データ配信システムの一実施形態における使用に適切な送信サーバの一実施形態の詳細ブロック図を示す。
【図３】図３は、データ配信システムの一実施形態においてサーバを操作する方法の一実施形態を示す。
【図４】図４は、データ配信システムの一実施形態における使用に適切な端末の一実施形態の詳細ブロック図を示す。
【図５】図５は、データ配信システムの一実施形態において端末を操作する方法の一実施形態を示す。
【図６】図６は、説明したデータ配信システムの一又は複数の実施形態を用いて達成されるコスト及びリソース効率を図示するグラフを示す。
【図１】
2007538463.tif 000003
【図２】
2007538463.tif 000004
【図３】
2007538463.tif 000005
【図４】
2007538463.tif 000006
【図５】
2007538463.tif 000007
【図６】
2007538463.tif 000008
【国際調査報告】
2007538463.tif 000009
2007538463.tif 000010
2007538463.tif 000011