(57)【要約】【課題】ディストリビューションネットワーク上でのコンテンツ配信のスケジューリングのための方法および装置。【解決手段】ディストリビューションネットワーク上での配信のためのプレゼンテーションをスケジュールする方法が提供される。方法は、選択された持続時間を備えるコンタクトウィンドウを生成することと、コンタクトウィンドウにプレゼンテーションを割り付けるために割り付けサイクルを実行することと、プレゼンテーションが割り付けられることができるかどうかを決定することと、もしプレゼンテーションが割り付けられることができない場合はコンタクトウィンドウの選択された持続時間を調整することと、前記の実行すること、決定すること、および、調整することを、プレゼンテーションが割り付けられることができるまで繰り返すことと、を備える。【選択図】      図１１
2008533595.tif 000002
【特許請求の範囲】
【請求項１】
ディストリビューションネットワーク上での配信のためのプレゼンテーションをスケジュールする方法であって、
選択された持続時間を備えるコンタクトウィンドウを生成することと、
前記コンタクトウィンドウに前記プレゼンテーションを割り付けるために割り付けサイクルを実行することと、
前記プレゼンテーションが割り付けられることができるかどうかを決定することと、
もし前記プレゼンテーションが割り付けられることができない場合は前記コンタクトウィンドウの前記選択された持続時間を調整することと、
前記の実行すること、決定すること、および、調整することを、前記プレゼンテーションが割り付けられることができるまで繰り返すことと、
を備える方法。
【請求項２】
前記実行することは、
１つ以上のタイムユニットを備える前記コンタクトウィンドウを定義することと、
前記プレゼンテーションが割り付けられるまで、前記プレゼンテーションの選択された部分を、前記１つ以上のタイムユニットの各々における利用可能な帯域幅に割り付けることと、
を備える、請求項１記載の方法。
【請求項３】
選択された均一性ファクタを達成するために前記コンタクトウィンドウ内に前記プレゼンテーションを再割り付けすること、を更に備える請求項１記載の方法。
【請求項４】
ディストリビューションネットワーク上での配信のためのプレゼンテーションをスケジュールするための装置であって、
１つ以上のパラメータを決定するように構成されたロジックと；
選択された持続時間を備えるコンタクトウィンドウを生成することと、
前記コンタクトウィンドウに前記プレゼンテーションを割り付けるために割り付けサイクルを実行することと、
前記プレゼンテーションが割り付けられることができるかどうかを決定することと、
もし前記プレゼンテーションが割り付けられることができない場合は、前記コンタクトウィンドウの前記選択された持続時間を調整することと、
前記の実行すること、決定すること、および、調整することを、前記プレゼンテーションが割り付けられることができるまで繰り返すことと、
を備える方法を実行するために、
前記１つ以上のパラメータを処理するように構成されたロジックと；
を備える装置。
【請求項５】
前記実行することは、
１つ以上のタイムユニットを備える前記コンタクトウィンドウを定義することと、
前記プレゼンテーションが割り付けられるまで、前記プレゼンテーションの選択された部分を、前記１つ以上のタイムユニットの各々における利用可能な帯域幅に割り付けることと、
を備える、請求項４記載の装置。
【請求項６】
選択された均一性ファクタを達成するために前記コンタクトウィンドウ内に前記プレゼンテーションを再割り付けするように構成されたロジック、を更に備える請求項４記載の装置。
【請求項７】
ディストリビューションネットワーク上での配信のためのプレゼンテーションをスケジュールするための装置であって、
選択された持続時間を備えるコンタクトウィンドウを生成するための手段と、
前記コンタクトウィンドウに前記プレゼンテーションを割り付けるために割り付けサイクルを実行するための手段と、
前記プレゼンテーションが割り付けられることができるかどうかを決定するための手段と、
もし前記プレゼンテーションが割り付けられることができない場合は前記コンタクトウィンドウの前記選択された持続時間を調整するための手段と、
前記の実行すること、決定すること、および、調整することを、前記プレゼンテーションが割り付けられることができるまで繰り返すための手段と、
を備える装置。
【請求項８】
前記の実行するための手段は、
１つ以上のタイムユニットを備える前記コンタクトウィンドウを定義するための手段と、
前記プレゼンテーションが割り付けられるまで、前記プレゼンテーションの選択された部分を、前記１つ以上のタイムユニットの各々における利用可能な帯域幅に割り付けるための手段と、
を備える、請求項７記載の装置。
【請求項９】
選択された均一性ファクタを達成するために前記コンタクトウィンドウ内に前記プレゼンテーションを再割り付けするための手段、を更に備える請求項７記載の装置。
【請求項１０】
少なくとも１つのプロセッサによって実行されるとき、ディストリビューションネットワーク上での配信のためのプレゼンテーションをスケジュールするように動作するコンピュータプログラムを有するコンピュータ可読媒体であって、前記コンピュータプログラムが、
選択された持続時間を備えるコンタクトウィンドウを生成するためのインストラクションと、
前記コンタクトウィンドウに前記プレゼンテーションを割り付けるために割り付けサイクルを実行するためのインストラクションと、
前記プレゼンテーションが割り付けられることができるかどうかを決定するためのインストラクションと、
もし前記プレゼンテーションが割り付けられることができない場合は前記コンタクトウィンドウの前記選択された持続時間を調整するためのインストラクションと、
前記の実行すること、決定すること、および、調整することを、前記プレゼンテーションが割り付けられることができるまで繰り返すためのインストラクションと、
を備える、
コンピュータ可読媒体。
【請求項１１】
前記実行するためのインストラクションは、
１つ以上のタイムユニットを備える前記コンタクトウィンドウを定義するためのインストラクションと、
前記プレゼンテーションが割り付けられるまで、前記プレゼンテーションの選択された部分を、前記１つ以上のタイムユニットの各々における利用可能な帯域幅に割り付けるためのインストラクションと、
を備える、請求項１０記載のコンピュータプログラム。
【請求項１２】
選択された均一性ファクタを達成するために前記コンタクトウィンドウ内に前記プレゼンテーションを再割り付けするためのインストラクション、を更に備える請求項１０記載のコンピュータプログラム。
【請求項１３】
ディストリビューションネットワーク上での配信のためのプレゼンテーションをスケジュールする方法を実行するように構成された、少なくとも１つのプロセッサであって、前記方法は、
選択された持続時間を備えるコンタクトウィンドウを生成することと、
前記コンタクトウィンドウに前記プレゼンテーションを割り付けるために割り付けサイクルを実行することと、
前記プレゼンテーションが割り付けられることができるかどうかを決定することと、
もし前記プレゼンテーションが割り付けられることができない場合は前記コンタクトウィンドウの前記選択された持続時間を調整することと、
前記の実行すること、決定すること、および、調整することを、前記プレゼンテーションが割り付けられることができるまで繰り返すことと、
を備える、
少なくとも１つのプロセッサ。
【請求項１４】
前記実行することは、
１つ以上のタイムユニットを備える前記コンタクトウィンドウを定義することと、
前記プレゼンテーションが割り付けられるまで、前記プレゼンテーションの選択された部分を、前記１つ以上のタイムユニットの各々における利用可能な帯域幅に割り付けることと、
を備える、請求項１３記載の方法。
【請求項１５】
選択された均一性ファクタを達成するために前記コンタクトウィンドウ内に前記プレゼンテーションを再割り付けすること、を更に備える請求項１３記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
（米国特許法１１９条のもとでの優先権の主張）
本特許出願は、本譲受人に譲渡され、ここに参照することによりここに明示的に組み込まれる、２００５年３月１０日に出願された「サービスプランニングおよび分析のための方法および装置(A METHOD AND APPARATUS FOR A SERVICE PLANNING AND ANALYSIS)」と題される米国特許仮出願第６０／６６０，７４０号の優先権を主張する。
【０００２】
（分野）
本発明は、一般に、データネットワークのオペレーションに関連し、より具体的には、監視無線通信システム上でのストリームデータの配信に関し、より具体的には、サービスプランニングおよび分析のための方法および装置に関係する。
【背景技術】
【０００３】
（背景）
無線通信ネットワークのようなデータネットワークは、一つの端末用にカスタマイズされたサービスと多数の端末に提供されるサービスとの間でトレードオフする必要がある。例えば、多くのモバイル端末（加入者）へのコンテンツの配信(distribution)は複雑な問題である。これは、比較的低速の無線の通信リンク(over-the-air communication links)を使用して通信するモバイル端末の場合は、特にあてはまる。それ故に、様々なモバイル端末にコンテンツを効率的に配信する方法を有することが、コンテンツプロバイダにとって非常に重要である。
【０００４】
現在のコンテンツ配信／メディアディストリビューションシステム(content delivery/media distribution systems)では、コンテンツプロバイダは、ネットワークリソース上でプレゼンテーション(presentations)を配信する。然しながら、ネットワークローディング(network loading)のために、プレゼンテーションを配信するのに利用可能な様々な量の帯域幅があり得る。典型的には、デバイスは、選択されたプレゼンテーションを得るためにディストリビューションシステムとコンタクトをとる(contact)。然しながら、多数のデバイスが、同時にコンテンツを得ることを試みるとき、様々なスケジューリング問題(scheduling problems)が発生する。例えば、もしプレゼンテーションを配信するのに十分な帯域幅がない場合は、デバイスは、プレゼンテーションを得ることに失敗するかもしれない。現在の配信システムは、ネットワークローディング、システムにおけるデバイスの数、サポートされるべきプレゼンテーションの数、および他のネットワーク特性を説明しないので、ネットワークは、低品質のパフォーマンスを配信し、帯域幅を無駄にするするかもしれない。
【０００５】
従って、必要とされるものは、ディストリビューションネットワーク(distribution network)上でのデバイスへの配信のためのコンテンツを、柔軟に且つ効率的にスケジュールするように動作するシステムであり、そこでは、ファクタ(factors)、例えば、サポートされるべきサービスの数、加入者の数、ネットワークローディング、および他のネットワーク特性など、が説明される。
【発明の開示】
【０００６】
［概要］
１つ以上の実施形態においては、ディストリビューションネットワーク上でのコンテンツのプランニング(planning)、スケジューリング(scheduling)、および配信(delivery)のために柔軟で且つ効率的なシステムを供給するように動作する、サービスプランニングおよび分析（ＳＰＡ）システムが提供される。
【０００７】
一態様においては、ディストリビューションネットワーク上での配信のためのプレゼンテーションをスケジュールする(for scheduling)方法が提供される。方法は、選択された持続時間(selected time duration)を備えるコンタクトウィンドウ(contact window)を生成することと、コンタクトウィンドウにプレゼンテーションを割り付ける(allocate)ために割り付けサイクル(allocation cycle)を実行することと、プレゼンテーションが割り付けられることができるかどうかを決定することと、もしプレゼンテーションが割り付けられることができない場合はコンタクトウィンドウの選択された持続時間を調整することと、前記の実行すること、決定すること、および、調整することを、プレゼンテーションが割り付けられることができるまで繰り返すことと、を備える。
【０００８】
別の態様においては、ディストリビューションネットワーク上での配信のためのプレゼンテーションをスケジュールするための装置が提供される。装置は、１つ以上のパラメータを決定するように構成されたロジックを備える。装置はまた、選択された持続時間を備えるコンタクトウィンドウを生成することと、コンタクトウィンドウにプレゼンテーションを割り付けるために割り付けサイクルを実行することと、プレゼンテーションが割り付けられることができるかどうかを決定することと、もしプレゼンテーションが割り付けられることができない場合はコンタクトウィンドウの選択された持続時間を調整することと、前記の、実行すること、決定すること、および、調整することを、プレゼンテーションが割り付けられることができるまで繰り返すことと、を備える方法を実行するために、１つ以上のパラメータを処理するように構成されたロジックも備える。
【０００９】
別の態様においては、ディストリビューションネットワーク上での配信のためのプレゼンテーションをスケジュールするための装置が提供される。装置は、選択された持続時間を備えるコンタクトウィンドウを生成するための手段と、コンタクトウィンドウにプレゼンテーションを割り付けるために割り付けサイクルを実行するための手段とを備える。装置はまた、プレゼンテーションが割り付けられることができるかどうかを決定するための手段と、もしプレゼンテーションが割り付けられることができない場合はコンタクトウィンドウの選択された持続時間を調整するための手段とを備える。装置はまた、前記の実行すること、決定すること、および、調整することを、プレゼンテーションが割り付けられることができるまで繰り返すための手段を備える。
【００１０】
別の態様においては、少なくとも１つのプロセッサによって実行されるとき、ディストリビューションネットワーク上での配信のためのプレゼンテーションをスケジュールするように動作するコンピュータプログラムを有するコンピュータ可読媒体(computer-readable medium)が提供される。コンピュータプログラムは、選択された持続時間を備えるコンタクトウィンドウを生成するためのインストラクションと、コンタクトウィンドウにプレゼンテーションを割り付けるために割り付けサイクルを実行するためのインストラクションとを備える。コンピュータプログラムはまた、プレゼンテーションが割り付けられることができるかどうかを決定するためのインストラクションと、もしプレゼンテーションが割り付けられることができない場合はコンタクトウィンドウの選択された持続時間を調整するためのインストラクションと、前記の実行すること、決定すること、および、調整することを、プレゼンテーションが割り付けられることができるまで繰り返すためのインストラクションと、を備える。
【００１１】
別の態様においては、ディストリビューションネットワーク上での配信のためのプレゼンテーションをスケジュールする方法を実行するように構成された、少なくとも１つのプロセッサが提供される。方法は、選択された持続時間を備えるコンタクトウィンドウを生成することと、コンタクトウィンドウにプレゼンテーションを割り付けるために割り付けサイクルを実行することとを備える。方法はまた、プレゼンテーションが割り付けられることができるかどうかを決定することと、もしプレゼンテーションが割り付けられることができない場合はコンタクトウィンドウの選択された持続時間を調整することと、前記の実行すること、決定すること、および、調整することを、プレゼンテーションが割り付けられることができるまで繰り返すことと、を備える。
【００１２】
実施形態の他の態様は、以下に記載された詳細な説明、図面の簡単な説明、及び添付の特許請求の範囲の調査検討の後に明らかになるであろう。
【００１３】
［詳細な説明］
ここに説明された実施形態の上記の態様は、添付の図面と併せて、以下の詳細な説明を参照することによって、より容易に明らかになるであろう。
【００１４】
１つ以上の実施形態においては、ディストリビューションネットワーク上でのコンテンツのプランニング、スケジューリング、および配信のために柔軟で且つ効率的なシステムを供給するように動作するサービスプランニングおよび分析（ＳＰＡ）システムが認可されたデバイスに対し提供される。システムは、無線ネットワーク環境での使用に特によく適しているが、通信ネットワーク、インターネットのような公共ネットワーク、仮想プライベートネットワーク（ＶＰＮ）のようなプライベートネットワーク、ローカルエリアネットワーク、広域ネットワーク、ロングホールネットワーク(long haul networks)、あるいは他のタイプのデータネットワークを、これらに限定されることなく、含む、任意のタイプのネットワーク環境において使用されることができる。
【００１５】
図１は、ＳＰＡシステムの一実施形態を備えるネットワーク１００を示す。ネットワーク１００は、ディストリビューションネットワーク１０４上でコンテンツを配信する(distribute)ように動作するコンテンツ配信システム(content delivery system)１０２を備える。一実施形態においては、コンテンツ配信システム１０２は、１つ以上のサービスに関連しているプレゼンテーションの形式でコンテンツを配信する。ネットワーク１０４は、任意のタイプの有線及び／又は無線のネットワークを備えることができる。ネットワーク１０４は、様々なデバイス１０６と通信している。例えば、デバイス１０６は、ＰＤＡ１０８、モバイル電話１１０、およびノートブックコンピュータ１１２を備える。ネットワーク１０４は、任意の適切な無線通信技術を備えることができる無線通信リンク１１４を使用して、デバイス１０６と通信する。このように、ディストリビューションネットワーク１０４は、任意のタイプあるいは数の認可されたデバイスを備えることができる認可されたデバイス(authorized devices)に、コンテンツを配信するように動作可能である。
【００１６】
コンテンツ配信システム１０２は、サーバ１１６を含む１つ以上のサーバを備え、それは、ネットワーク１０４上で、スケジュールされたプレゼンテーションの形式でコンテンツを配信するように動作する。例えば、コンテンツ配信システムは、任意の適切なタイプの通信技術を備える通信リンク１２４を使用して、ネットワークと通信する。コンテンツ配信システムはまた、ＳＰＡロジック１１８を備えており、それは、コンテンツ配信システム１０２が、効率的な方法で、ネットワーク１０４上でコンテンツをプランし(plan)、スケジュールし(schedule)、かつ配信する(deliver)ことを可能にするように、サービスプランニングおよび分析を提供するように動作する。
【００１７】
一実施形態においては、ＳＰＡロジック１１８は、コンテンツの配信をプランするためのセントラルポイント(central point)を提供する。ＳＰＡロジック１１８の実施形態は、次の３つの主機能を提供する：
１．  サービスに関連するプレゼンテーションをスケジュールすること(scheduling)
２．  サービスに必要なトータルなメモリをコンピュータで計算すること(computing)
３．  プレゼンテーションのためのアベイラビリティ持続期間(availability duration)を導き出すこと(deriving)
【００１８】
ＳＰＡロジック１１８を使用して、オペレータ(operator)は、どれだけ多くのサービスがネットワーク１０４によってサポートされることができるのかを決めることができ、サービスに関連する各スケジュールされたプレゼンテーションのコンタクトウィンドウを生成する。例えば、コンタクトウィンドウは、コンテンツがネットワーク１０４上で認可されたデバイス(authorized devices)に利用可能である時間間隔(time interval)を定義する(defines)。一実施形態においては、コンタクトウィンドウは、システム情報最新版(system information update)をとおしてデバイス１０６に送られる。このように、加入登録されたデバイス(subscribed device)は、選択されたプレゼンテーションを取り出す(retrieve)ために、ネットワーク１０４にいつコンタクトをとるか(when to contact)を決定するため、コンタクトウィンドウを使用する。一実施形態においては、ＳＰＡロジック１１８は、プレゼンテーションをスケジュールし、関連するコンタクトウィンドウを導き出すためのコンテンツ配信スケジューリングアルゴリズムを含んでいる。スケジューリングアルゴリズムのより詳細な説明はこのドキュメントの別のセクション中で提供される。
【００１９】
一実施形態においては、ＳＰＡロジック１１８は、デバイスユーザがサービスに加入登録する(subscribe)ために、デバイス上で必要とされるメモリの総量をコンピュータで計算する(computes)。コンピュータ計算(computation)は、プレゼンテーションバッファリング(presentation buffering)が必要とされるのかどうかを考慮する。メモリ要件(memory requirements)もまた、デバイス１０６に送られる、それ故、各デバイスは、サービスの加入を続ける(proceed)ために、それが十分なメモリを有するかどうかを決定できる。一実施形態においては、ＳＰＡロジック１１８は、プレゼンテーションがユーザビューイングに利用可能なままであるのがどれくらいの期間であるのかを示すアベイラビリティ持続期間値(availability duration value)をコンピュータで計算する。
【００２０】
一実施形態においては、オペレータが、利用可能なサービスの数と１日当たりのコンテンツ更新(content updates)の数との間におけるようなトレードオフを行なうことによって何らかの状況を仮定したシナリオをたてる(do what-if scenarios)ことを、そして、どのシナリオが望ましいシステム性能、サービスモデル、及び／又は、収益ポイント(revenue point)を最も良く達成するのかを決定することを、可能にするように、ＳＰＡロジック１１８は、ネットワークされていないモードで動作する。
【００２１】
一実施形態においては、ＳＰＡロジック１１８は、オペレータからオペレータ入力(operator input)１２０をとおして入力を受け取り、サービスラインアップ(Service Line-Up)（ＳＬＵ）１２２を出力する。ＳＬＵ１２２は、各サービスについてスケジュールされることができるプレゼンテーションの数と共にサービスのリストと、各プレゼンテーションのためのコンタクトウィンドウとを含んでいる。オペレータがＳＬＵ１２２に満足すると、オペレータは、それをセーブし(save)、新しいＳＬＵが有効になる時間を指定することができる。
【００２２】
ＳＰＡロジック１１８の実施形態は、コンテンツ配信システムサービスが展開される前に、最初のサービスプランニングを行うために使用されることができる。また、それは、既に加入者を有する現存のサービスにインパクトを与えることなく新しいサービスが付加されることができるかどうかを決定するために、その後に使用されることができる。更に、オペレータは、システムにおいて既にあるサービスのコンテンツ更新スケジュールを修正するためにＳＰＡロジック１１８を使用することができる。
【００２３】
一実施形態において、ＳＰＡロジック１１８は、以下のとおり２つのモードで動作する。
【００２４】
１．  非ネットワークモード
２．  ネットワークモード
【００２５】
非ネットワークモードでは、ＳＰＡロジック１１８は、コンテンツ配信システム１０２から切断され(disconnected)、コンテンツ配信システム１０２によって供給される何れの情報にも依存しない。ＳＰＡロジック１１８を動かすオペレータ入力データも、ＳＰＡロジック１１８からのどんなＳＬＵ出力も、ローカルにセーブされる(locally saved)。
【００２６】
ネットワークモードでは、ＳＰＡロジック１１８は、コンテンツ配信システム１０２に接続しており、配信システムデータベース（示されていない）に情報を読み書きしている。このモードにおいては、オペレータはデータベースにおいてＳＬＵをセーブでき、あるいはデータベースから現存するＳＬＵを読み取ることができる。
【００２７】
一実施形態においては、オペレータは、コンテンツ配信システム１０２によって提供されるべきサービスをプランする間に、非ネットワークモード（すなわち、オフライン）においてＳＰＡロジック１１８を動かすことができる。オペレータが、生成されるＳＬＵに満足すると、オペレータは、ＳＰＡロジック１１８をコンテンツ配信システム１０２に接続し、データベースにＳＬＵを委託する(commit)ことができる。
【００２８】
別の実施形態においては、オペレータは、現存するＳＬＵを取り出すために、ＳＰＡロジック１１８をコンテンツ配信システム１０２に最初に接続することができる。ＳＬＵが取り出された後、オペレータは、何らかの状況を仮定したシナリオを研究するために、あるいはそうでなければ、新しいＳＬＵを生成するためにＳＬＵを変更する又は修正するために、非ネットワークモードにおけるＳＰＡロジック１１８を使用することができる。
【００２９】
一実施形態においては、ＳＬＵを生成するために使用されるパラメータをオペレータが入力することを可能にするように、ＳＰＡロジック１１８は、オペレータ入力１２０を使用する。これらのパラメータは、任意の適切なフォーマットにあることができ、以下に示されるように、「グローバルパラメータ(Global parameters)」および「特定サービス」パラメータ("Service- specific" parameters)として分類される。  
グローバルパラメータ
・    平均順方向リンクセクタスループット(Average forward link sector throughput)  −  これは、単一のアンテナ受信機のためのセクタ当たりの順方向リンク容量の平均値(average amount of forward link capacity per sector)である。  
・    非コンテンツ配信システムトラフィック利用の比率(percentage)  −  非コンテンツ配信システムトラフィックによって使用されるセクタ容量の比率。このファクタは、その日の各時間に入力される。未使用比率(unused percentage)は、コンテンツ配信システム使用のために利用可能なセクタ容量の値(amount of sector capacity)である。  
・    セクタの数  −  コンテンツ配信システムサービスのために機能している(serving)セクタの総数。  
・    サービスＩＤ(Service ID's)  −  コンテンツ配信システムにおけるサービスを識別する(identifies)。  
・    サービスランクリスト  −  順番にランクされた(ranked in order)サービスのリスト  
・    サービスラインアップ有効時間(effective time)  −  ＳＬＵが有効になる時間(time)  
特定サービス用パラメータ
・    予測された加入者(projected subscribers)の数  −  サービスのコンテンツ配信システム加入者の予測された数。  
・    最大プレゼンテーションサイズ  −  Ｋバイトでのプレゼンテーションの最大サイズ、この値(value)は、各プレゼンテーションに対し入力される。  
・プレゼンテーションビューイングタイム(Presentation viewing time)  −  ビューイングのプレゼンテーションが利用可能であると、コンテンツ配信システム番組案内（ＰＧ）が通知する時間(time)。この値は、各プレゼンテーションに対し入力される。  
・    プレゼンテーションデッドラインタイム(Presentation deadline time)  −  認可されたデバイスへの配信用のコンテンツサーバでコンテンツが入手可能な時間(time)。この値は、各プレゼンテーションに対し入力される。  
・    フェッチデッドラインタイム(Fetch Deadline time)  −  プレゼンテーションビューイングタイムからフェッチデッドラインタイムを減少させることにより、プレゼンテーションデッドラインタイムを計算するために使用される時間値(time value)（分で）
【００３０】
一実施形態においては、「非コンテンツ配信システムトラフィック」セクタ利用の量(amount)は、２４時間期間(24-hour period)、毎時、入力される。オペレータは、無線システムオペレータからこの情報を得ることができる。プレゼンテーション情報は、任意の時間期間(time period)、例えば、７日、３０日、６か月、あるいは１年の時間期間、入力される。
【００３１】
ＳＰＡロジック１１８は、ＳＬＵ１２２を生成するためにオペレータによって入力された情報を使用する。一実施形態においては、ＳＬＵ１２２は、次の情報を備える。  
・    コンタクトウィンドウ開始タイム(Contact window start time)  −  プレゼンテーションをダウンロードするために、デバイスがネットワークとコンタクトをとることができる時間(time)。この値は、各スケジュールされたプレゼンテーションに対し提供される。スケジュールされていないプレゼンテーションの場合は、０のコンタクトウィンドウ開始タイム。  
・    コンタクトウィンドウ持続期間(Contact window duration)  −  プレゼンテーションをダウンロードするために、デバイスがネットワークとコンタクトをとることができる時間間隔(time interval)。この値は、各スケジュールされたプレゼンテーションに対し提供される。スケジュールされていないプレゼンテーションの場合は、コンタクトウィンドウ持続期間は０に設定される。  
・    加入登録されたメモリ(Subscribed memory)  −  サービスに加入登録するために必要とされるメモリの量。一実施形態においては、メモリの量は、成功裏にスケジュールされるプレゼンテーションに対してのみ決定される。  
・    プレゼンテーションアベイラビリティ持続期間(Presentation availability duration)  −  ビューイングのプレゼンテーション利用可能な時間間隔(time interval)。この値は各プレゼンテーションに対して提供される。スケジュールされていないプレゼンテーションの場合は、プレゼンテーションアベイラビリティ持続期間は０に設定される。
【００３２】
上記の出力に加えて、ＳＬＵ１２２は、同様に、全ての入力パラメータを含んでいる。オペレータが、現存するＳＬＵを再ロードし、何らかの状況を仮定した研究(what-if studies)を行うために入力パラメータのうちのいずれかを修正したい場合は、入力パラメータは維持される。
【００３３】
このように、ＳＰＡシステムの実施形態は、ＳＬＵが、生成され、保存され、修正され、アクティブにされ(activated)、あるいは、何らかの状況を仮定したシナリオを提供するように使用されることを可能にするように、動作する。ＳＬＵは、認可されたデバイスにディストリビューションネットワーク上でスケジュールされたコンテンツを配信するために、コンテンツ配信システムによって使用される。したがって、ＳＰＡシステムは、ディストリビューションネットワーク上でのコンテンツのプランニング、スケジューリングおよび配信について柔軟で効率的なシステムを提供するように動作する。ネットワーク１００は、単に１つのインプリメンテーションを例示しているということに、また、他のインプリメンテーションが実施形態の範囲内で可能であるということに、注意されるべきである。
【００３４】
図２は、ＳＰＡシステムの一実施形態を備えるコンテンツ配信システム２００の一実施形態を示す。コンテンツ配信システム２００は、１つ以上のコンテンツプロバイダ２０８、コンテンツサーバ２１０、データベース２０６、サービスプロビジョニングサーバ(service provisioning server)２０４およびサービスプロビジョニングマネージャ(service provisioning manager)２０２を備える。一実施形態においては、ＳＰＡロジック２１２は、サービスプロビジョニングサーバ２０４の一部として提供される。例えば、ＳＰＡロジック２１２は、図１の中で示されるＳＰＡロジック１１８であってもよい。ＳＰＡロジック２１２は、スタンドアローンロジック(stand alone logic)であってもよいし、あるいは、配信システム２００の任意の他のコンポーネントの一部であってもよい、ということに注意すべきである。
【００３５】
一実施形態においては、コンテンツが、ディストリビューションネットワーク上で、認可されたデバイスに、柔軟に且つ効率的に配信されることができるように、ＳＰＡロジック２１２は、他の配信システムコンポーネントによる使用のために、プランニング、スケジューリング、および分析を提供するよう動作する。例えば、一実施形態においては、ＳＰＡシステムは、次の一連の機能をイネーブルにする(enable)ように動作する。  
１．  ＳＰＡロジック２１２は、ＳＬＵ２１４を生成するために、サービスプロビジョニングマネージャ２０２を介してオペレータ入力を受理する。ＳＰＡロジック２１２を使用し、オペレータは、どれが最も望ましいＳＬＵをもたらす(yields)のかを決めるために、入力パラメータの様々なセットを試みることができる。  
２．  オフラインモードと仮定すると、一旦受理可能なＳＬＵ２１４が得られれば、オペレータが望ましいＳＬＵ２１４をデータベース２０６に掲載する(publishes)前に、オペレータがＳＬＵ２１４において生成した各サービスに対して、オペレータは、サービス結合プロセス(service binding process)を行なう。  
４．  オペレータはＳＬＵ２１４を受理し、そして、もしＳＰＡシステムがネットワークモード中で操作される場合は、オペレータは、ＳＬＵ２１４をデータベース２０６に委託する(commit)ことができる。  
５．  ＳＬＵ２１４がデータベース２０６に成功裏に書き込まれる場合、プロビジョニングサーバ２０４は、新しいＳＬＵ２１４が利用可能であることを示すメッセージを、コンテンツサーバ２１０に送る。  
６．  コンテンツプロバイダが、新しいＳＬＵ２１４が有効になる前に、前もって(ahead of time)通知される、と仮定する。コンテンツサーバは、新しいＳＬＵ２１４に基づいてコンテンツプロバイダ２０８から番組案内を受け取る。１つよりも多いＳＬＵがデータベース２０６に存在することは可能である。然しながら、どの時間でも、１つのＳＬＵのみがアクティブ(active)である。  
７．  有効なＳＬＵに従ってプレゼンテーションがコンテンツサーバ２１０に利用可能にされることを保証するために、コンテンツサーバ２１０は、ＳＬＵ２１４と比較して(against the SLU 214)コンテンツプロバイダ２０８から受け取られた情報を確認する(verifies)。
【００３６】
新しいＳＬＵ２１４の通知が、コンテンツサーバ２１０によって使用され、プレゼンテーションデッドラインタイム（プレゼンテーションが、デバイスへの配信のために、コンテンツサーバ２１０上で利用可能である必要がある時(time)）に適合するために、いつ、それがコンテンツプロバイダ２０８からコンテンツを引き出し始めるかを決める。一実施形態においては、コンテンツサーバ２１０は、新しい情報、例えば、番組案内、プレゼンテーション、およびプログラムレコードなど、について、周期的に、コンテンツプロバイダ２０８に対しポーリングする(polls)。例えば、コンテンツサーバ２１０は、それがプログラムを受け取る数日前に、プレゼンテーション番組案内を受け取ることができる。番組案内を受け取るとすぐに、コンテンツサーバ２１０は、新しいＳＬＵ２１４と比較して番組案内における情報を確認し、且つ、コンテンツプロバイダ２０８からコンテンツを引き出す適切な時間(time)を設定するように動作する。
【００３７】
もしコンテンツサーバ２１０が、ＳＬＵ２１４の中で示された最大サイズよりも大きいプレゼンテーションを受け取れば、コンテンツサーバ２１０は、プレゼンテーションを取り止め、システムアラームを発生する。もしコンテンツサーバ２１０が、コンテンツプロバイダ２０８からのプレゼンテーションを、ＳＬＵ２１４において示されるようなプレゼンテーションデッドラインよりもより遅く受け取れば、コンテンツサーバ２１０はシステムアラームを発生する。プレゼンテーションが利用可能でないとき、コンテンツディストリビューションネットワークとコンタクトをとるデバイスは、任意の適切な再試行スケジュールに基づいて取り出しを自動的に再度試みる。
【００３８】
このように、ＳＰＡシステムは、ディストリビューションネットワーク上でのコンテンツのプランニング、スケジューリング、および配信のための、柔軟で効率的なシステムを供給するように動作する。配信システム２００は単に１つのインプリメンテーションを示しているということに、そして、他のインプリメンテーションが実施形態の範囲内で可能であるということに、注意すべきである。
【００３９】
図３は、ＳＰＡシステムの実施形態において使用されるためのＳＰＡロジック３００の一実施形態を示す。例えば、ＳＰＡロジック３００は、図１において示されるＳＰＡロジック１１８あるいは図２において示されるＳＰＡロジック２１２としての使用に適している。ＳＰＡロジック３００は、プロセッシングロジック(processing logic)３０２、スケジューリングロジック(scheduling logic)３１０、オペレータインタフェース（Ｉ／Ｆ）ロジック３１２、メモリ３１４、および通信ロジック３１６を備え、全てがデータバス３１８に結合されている。一実施形態においては、スケジューリングロジック３１０は、更に、アベイラビリテイロジック(availability logic)３０４、メモリロジック３０６、プライオリティロジック(priority logic)３０８を備える、
【００４０】
１つ以上の実施形態においては、プロセッシングロジック３０２は、ＣＰＵ、プロセッサ、ゲートアレイ、ハードウェアロジック、メモリエレメント、バーチャルマシーン、ソフトウェア、及び／又は、ハードウェアとソフトウェアの任意の組合せ、を備える。このように、プロセッシングロジック３０２は、一般に、機械可読インストラクション(machine-readable instructions)を実行するために、また、内部データバス３１８を介してＳＰＡロジック３００の１つ以上の他の機能エレメントをコントロールする、又は、と通信するために、ロジックを備える。
【００４１】
通信ロジック３１６は、ハードウェアロジック及び／又はソフトウェアを備え、それらは、ＳＰＡロジック３００が、通信リンク３２０を使用する遠隔のデバイスあるいはシステムと、データ及び／又は他の情報を送受信すること、を可能にするように動作する。例えば、一実施形態においては、通信リンク３２０は、ＳＰＡロジック３００が、コンテンツ配信システムの他のエンティティ(entities)と通信することを可能にする任意の適切なタイプの通信リンクを備える。
【００４２】
メモリ３１４は、任意のタイプの情報を保存するのに動作可能な任意の適切なメモリデバイスを備える。例えば、メモリ３０８は、ＲＡＭ、フラッシュメモリ、ＥＥＰＲＯＭ、ハードディスク、及び／又は、任意の他のタイプの記憶装置、を備えることができる。一実施形態においては、メモリ３１４は、ＳＰＡロジック３００のオペレーションの一部として生成されるＳＬＵ３２２の１つ以上のバージョンを保存するように動作する。
【００４３】
オペレータＩ／Ｆ３１２は、ハードウェアロジック及び／又はソフトウェアを備え、それらは、ＳＰＡロジック３００が、ＳＰＡシステムの実施形態において使用される１つ以上のパラメータを受け取るためにオペレータと対話する(interact)ことを可能にするように動作する。例えば、一実施形態においては、オペレータＩ／Ｆ３１２は、ＳＰＡロジック３００が非ネットワークモード（すなわち、オフラインあるいはスタンドアローン）において操作されるとき、オペレータ入力を受け取るために使用される。非ネットワークモードにおいて、オペレータは、何らかの状況を仮定したシナリオを実行する(perform what-if scenarios)ためにＳＰＡロジック３００にパラメータを入力することが可能である。
【００４４】
スケジューリングロジック３１０は、ＣＰＵ、プロセッサ、ゲートアレイ、ハードウェアロジック、メモリエレメント、バーチャルマシーン、ソフトウェア、及び／又は、ハードウェアとソフトウェアの任意の組合せ、を備える。１つ以上の実施形態においては、スケジューリングロジック３１０は、ＳＬＵ３２２を生成するためにスケジューリングアルゴリズムを実行するように動作する。スケジューリングアルゴリズムおよびＳＬＵ３２２の、より詳細な説明が、このドキュメントの別のセクション中で提供される。
【００４５】
プライオリティロジック３０８は、ＣＰＵ、プロセッサ、ゲートアレイ、ハードウェアロジック、メモリエレメント、バーチャルマシーン、ソフトウェア、及び／又は、ハードウェアとソフトウェアの任意の組合せ、を備える。１つ以上の実施形態においては、プライオリティロジック３０８は、スケジューリングロジック３１０が選択された順にコンテンツプレゼンテーションをスケジュールすることを可能にするために、コンテンツ優先順位(content priority)を決定するように動作する。プライオリティロジック３０８のオペレーションのより詳細な説明が、このドキュメントの別のセクション中で提供される。
【００４６】
メモリロジック３０６は、ＣＰＵ、プロセッサ、ゲートアレイ、ハードウェアロジック、メモリエレメント、バーチャルマシーン、ソフトウェア、及び／又は、ハードウェアとソフトウェアの任意の組合せ、を備える。１つ以上の実施形態においては、メモリロジック３０６は、ＳＬＵにおいて記述されたコンテンツを受け取ることを試みるデバイス用のメモリ要件を決定するように動作する。メモリロジック３０６のオペレーションのより詳細な説明が、このドキュメントの別のセクション中で提供される。
【００４７】
アベイラビリテイロジック３０４は、ＣＰＵ、プロセッサ、ゲートアレイ、ハードウェアロジック、メモリエレメント、バーチャルマシーン、ソフトウェア、及び／又は、ハードウェアとソフトウェアの任意の組合せ、を備える。１つ以上の実施形態においては、アベイラビリテイロジック３０４は、どのぐらい長い期間、デバイスが受け取るためにコンテンツが利用可能であるのかを示す、アベイラビリティ持続期間を決定するように動作する。アベイラビリテイロジック３０４のオペレーションのより詳細な説明が、このドキュメントの別のセクション中で提供される。
【００４８】
オペレーションの間、ＳＰＡロジック３００は、次の機能の１つ以上を実行するように動作する。  
１．  オペレータＩ／Ｆ３１２を介してオペレータ入力を受け取る。オペレータ入力は、ＳＰＡロジック３００のためのオペレーティングモードを選ぶことができる、あるいは、グローバル用の、特定サービス用の、または他のパラメータを与えることができる。  
２  配信されるべきコンテンツのコンテンツ優先順位を決定する。  
３．  コンテンツ配信用のコンタクトウィンドウを生成する。  
４．  コンテンツ優先順位に基づいてコンテンツプレゼンテーションのためのＳＬＵを生成するためにスケジューリングアルゴリズムを実行する。  
５．  ＳＬＵに基づいてメモリ要件を決定する。  
６．  プレゼンテーションのためのアベイラビリティ持続期間を決定する。
【００４９】
一実施形態においては、ＳＰＡシステムは、コンピュータ可読媒体上に保存された１つ以上のプログラムインストラクション(program instructions)（「プログラムインストラクション」）を有するコンピュータプログラムを備えており、それは、少なくとも１つのプロセッサ、例えばプロセッシングロジック３０２、によって実行されるとき、ここに記載された機能を提供する。例えば、プログラムインストラクションは、フロッピー（登録商標）ディスク、ＣＤＲＯＭ、メモリカード、ＦＬＡＳＨメモリデバイス、ＲＡＭ、ＲＯＭ、あるいは、ＳＰＡロジック３００にインタフェースをとる任意の他のタイプのメモリデバイスまたはコンピュータ可読媒体などのコンピュータ可読媒体から、ＳＰＡロジック３００にロードされることができる。別の実施形態においては、プログラムインストラクションは、外部装置あるいはネットワークリソースから、ＳＰＡロジック３００にダウンロードされることができる。プログラムインストラクションは、プロセッシングロジック３０２によって実行されるとき、ここに説明されるようなＳＰＡシステムの実施形態を提供する。
【００５０】
このように、ＳＰＡロジック３００は、ディストリビューションネットワーク上でのコンテンツのプランニング、スケジューリングおよび配信のための、柔軟で効率的なシステムを供給するように動作する。ＳＰＡロジック３００は単に１つのインプリメンテーションを示しているということ、そして、他のインプリメンテーションが実施形態の範囲内で可能であるということ、に注意すべきである。
【００５１】
セクタスループット
【００５２】
図４は、ＳＰＡシステムの実施形態において使用されるセクタスループット(sector throughput)を説明するグラフ４００を示す。グラフ４００は、二次元のビン(bin)として、２４時間期間の各部分における平均セクタスループットを説明する。ビンの高さは、平均セクタスループットを表わし、そして、ビンの幅は、２４時間期間の選択された部分を表わす。「非コンテンツ配信システム(non-content delivery system)」トラフィックである、２４時間期間の間のトラフィックは、概して、網掛け領域(shaded region)４０２として示される。これは、他のネットワークシステムあるいは機能の結果として生じるトラフィックである。コンテンツ配信システムがコンテンツを配信するために利用可能な帯域幅の量は、４０４で示される。このエリアは、非コンテンツ配信システムトラフィック４０２によって占められないビンエリア(bin area)を表わす。
【００５３】
ＳＰＡスケジューリングアルゴリズム
【００５４】
一実施形態においては、スケジューリングロジック３１０は、利用可能なセクタ帯域幅内に、スケジュールできるだけの多くの(as many)プレゼンテーション（オブジェクト）をスケジュールする（すなわち、圧縮する）ために、スケジューリングアルゴリズムを供給するように動作する。一実施形態においては、スケジューリングアルゴリズムは、非コンテンツ配信システムトラフィックによる、平均セクタスループットおよびセクタの容量の平均使用の仮定に基づいて、１つ以上のコンタクトウィンドウを導き出す。例えば、無線ネットワーク環境では、順方向リンクセクタスループットは、順方向リンク上で送られたトラフィックのタイプおよびチャネル条件のファンクション(function)として変わる。一般に、全てのセクタユーザがＦＴＰユーザであるとき、そして、それらが、ダウンロードする無限のファイルを有するときに、最大の順方向リンクセクタスループットが生じる。ＦＴＰ、ＷＡＰ、およびＨＴＴＰのユーザのミックス(mix)の状態でのトラフィックモデルと比較すると、この特定のトラフィックモデルは、全てのユーザがデータのみを受け取りつつあるので、より高いセクタスループット生み出す。プログラムダウンロードの間にトラフィックミックス(traffic mix)を予言することは可能ではないかもしれないので、アルゴリズムは、セクタスループットに対して平均値を仮定する。この平均値は、スケジューリングの２４時間期間の間一定であると仮定され、コンテンツ配信システムのために機能している全てのセクタに対して同じである。然しながら、２４時間期間にわたって複数のセクタスループットの値を利用するために、且つ／又は、コンテンツ配信システムのために機能する異なるセクタに対して異なるスループットの値を提供するために、アルゴリズムの実施形態が調整されることができる、ということに注意すべきである。
【００５５】
コンテンツ配信システムは、セクタ容量を使用する唯一のデータサービスではないかもしれないので、スケジューリングアルゴリズムは、順方向リンクリソースのために競合している他の非コンテンツ配信システムトラフィックを考慮するように動作する。一実施形態においては、オペレータは、時間当たりの、セクタ容量を利用する非コンテンツ配信システムトラフィックの比率を入力する。一実施形態においては、アルゴリズムは、これらの値がコンテンツ配信システムのために機能している全てのセクタに対して同じである、と仮定する。実際には、トラフィックタイプのミックス(mix of traffic type)と非コンテンツ配信システムユーザのトラフィックローディング(traffic loading)が同じではないので、非コンテンツ配信システムトラフィック使用は、セクタからセクタによって変わり得る。然しながら、スケジューリングアルゴリズムの実施形態は、セクタ固有の情報を利用せずに動作してもよい、というのは、この情報は動的に変化しているからである。このように、好ましい実施形態においては、平均セクタスループットおよび平均非コンテンツ配信システムトラフィック使用は、コンテンツ配信システムのために機能しているネットワーク全体に対して代表的であると、アルゴリズムは仮定する。
【００５６】
一実施形態においては、アルゴリズムは更に、コンテンツ配信システムのために機能しているセクタの全てにわたって、コンテンツ配信システム加入者の均等分布(uniform distribution)を仮定する。一般に、他のセクタよりもより高い密度のコンテンツ配信システム加入者を有するセクタがあるであろうことが、また、セクタ当たりの加入者の数が１日を通して動的に変わるであろうことが、予想される。然しながら、好ましい実施形態においては、スケジューリングアルゴリズムは、ネットワーク全体に対してただ１つのコンテンツ配信スケジュールを提供するように動作する。然しながら、他の実施形態においては、アルゴリズムはセクタ固有の情報を利用することができる、ということに注意すべきである。
【００５７】
アルゴリズム表記(Algorithm Notations)
【００５８】
１つ以上の実施形態において、ＳＰＡシステムは、次のパラメータの１つ以上を利用するコンテンツ配信スケジューリングアルゴリズムを提供する。
【００５９】
・    Ｃ：時間当たりの平均セクタスループット
・    Ｎｓ：サービスの総数
・    ｊ：サービスｊ、但しｊ∈Ｎｓ
・    Ｎｐｊ：サービスｊについて１週間の期間(a one week period)にスケジュールされるために必要とされるプレゼンテーションの総数、但しｊ∈Ｎｓ
・    Ｐｉｊ：サービスｊに属するプレゼンテーションｉ、但しｉ∈Ｎｐｊ、ｊ∈Ｎｓ
・    ｋｉｊ：サービスｊに属するプレゼンテーションｉの最大サイズ、但しｉ∈Ｎｐｊ、ｊ∈Ｎｓ
・    ｓｉｊ：プレゼンテーションＰｉｊのためのコンタクトウィンドウの開始タイム(start time)、但しｉ∈Ｎｐｊ、ｊ∈Ｎｓ
・    ｅｉｊ：プレゼンテーションＰｉｊのためのコンタクトウィンドウの終了タイム(end time)、但しｅｉｊ＞ｓｉｊ、且つｉ∈Ｎｐｊ、ｊ∈Ｎｓ
・    Ｗｉｊ＝［ｓｉｊ，ｅｉｊ］：プレゼンテーションＰｉｊのためのコンタクトウィンドウ、但しｉ∈Ｎｐｊ、ｊ∈Ｎｓ
・    ｖｉｊ：プレゼンテーションＰｉｊのビューイングタイム(viewing time)。これは、プレゼンテーションがユーザビューイングのために利用可能であると、ＰＧにおいて通知される時間(time)である。但し、ｉ∈Ｎｐｊ、ｊ∈Ｎｓ
・    ｄｉｊ：プレゼンテーションＰｉｊのためのデッドライン(deadline)、但しｉ∈Ｎｐｊ、ｊ∈Ｎｓ。これは、プレゼンテーションが、デバイスへの配信のためにコンテンツサーバ上で利用可能である必要がある時間(time)である。
【００６０】
・    Ｔｉｊ＝［ｄｉｊ，ｖｉｊ］：配信ウィンドウ。これは、プレゼンテーションＰｉｊの配信をスケジュールするために利用可能な総時間(total time)を、定義する、但しｉ∈Ｎｐｊ、ｊ∈Ｎｓ
・    Ｇｉｊ：プレゼンテーションＰｉｊを配信するために必要とされる順方向エアリンクリソース(forward air link resource)の総量、但しｉ∈Ｎｐｊ、ｊ∈Ｎｓ
・    ｎｊ：サービスｊについての加入者の総数、但しｊ∈Ｎｓ
・    ｚ：コンテンツ配信システムサービスのために機能しているセクタの数
・    ｂ(ｋ)：時間ｋ(hourｋ)の非コンテンツ配信システムトラフィックの比率、但しｋ∈｛１,２，・・・，２４｝
【００６１】
ＴｉｊがプレゼンテーションＰｉｊの配信をスケジュールするために利用可能な総時間を表示することに注意してください。間隔Ｔｉｊの間の、スケジューリングアルゴリズムのオペレーション、および、非コンテンツ配信システムトラフィック利用の量、に応じて、次のケースが発生し得る。  
１．    プログラムＰｉｊのためのコンタクトウィンドウＷｉｊが、配信ウィンドウよりも小さい又は等しい（Ｗｉｊ≦Ｔｉｊ）。  
２．    プログラムＰｉｊがスケジュールされることができるコンタクトウィンドウは存在しない、すなわち、Ｗｉｊ＝０である。  
【００６２】
図５は、ＳＰＡシステムの実施形態において使用されるためのコンタクトウィンドウ５０２と配信ウィンドウ５０４との関係を説明する。上記のケース１は、アルゴリズムが成功裏にプレゼンテーションをスケジュールする場合のシナリオを説明する。図５において示されるように、コンタクトウィンドウ５０２は配信ウィンドウ５０４よりも小さいことがあり得る、ということに注意してください。
【００６３】
上記のケース２は、他のプレゼンテーションが同じ時間間隔中に既にスケジュールされているか、または、配信ウィンドウ内に多量の非コンテンツ配信システムトラフィックがあるので、アルゴリズムが、指定された配信ウィンドウＴｉｊ内でプレゼンテーションをスケジュールできない場合のシナリオを説明する。例えば、図５において、Ｔｉは配信ウィンドウ５０４である、但しｖｉはｄｉと等しいかそれよりも大きい、また、Ｗｉはコンタクトウィンドウ５０２である、但しｅｉはｓｉと等しいかそれよりも大きい。配信ウィンドウ５０４は、プレゼンテーションの配信における柔軟性を可能とするために、コンタクトウィンドウ５０２をサイズで通常は超えないであろう。
【００６４】
プレゼンテーションＰｉｊを配信するために要求される、セクタ当たりのトータルな順方向エアリンクリソースは、Ｇｉｊであり、これは次のとおり導き出される。
【００６５】
プレゼンテーションＰｉｊ、かつｉ∈Ｎｐ、ｊ∈Ｎｓの場合、
【数１】
2008533595.tif 000003
【００６６】
式中の第１項は、プレゼンテーションＰｉｊを全ての加入者に一度に配信するために必要とされるセクタ当たりのトータルの順方向エアリンクリソース（バイト）を示す。
【００６７】
第２項θｉｊは、最初の伝送においてコンテンツを受け取らなかったデバイスのサブセット(subset)にプレゼンテーションＰｉｊを再送信する、セクタ当たりの追加の順方向エアリンクリソースを示す。値θｉｊはゼロであると仮定されるであろう。
【００６８】
一実施形態においては、スケジューリングアルゴリズムは、もし次のプロパティ(property)が続けば、ＮｐＪ、∀ｊ∈Ｎｓをスケジュールすることができる。
【数２】
2008533595.tif 000004
【００６９】
上記の式は、もしコンテンツ配信システムトラフィックのトータルサム(total sum)が選択されたスケジューリング期間の利用されていない(un-utilized)セクタ帯域幅の総数(total amount)以下である場合は、全てのプレゼンテーションはスケジュールされることができる、ということを表わす。いつプレゼンテーションが配信されるべきか（配信デッドライン）に関連する制約のために、上記のプロパティが真(true)を保持したとしても、必ずしも全てのプレゼンテーションがスケジュールされることができるとは限らない、ということに注意すべきである。
【００７０】
プレゼンテーションの優先順位ランキング(Priority Ranking)
【００７１】
一実施形態においては、アルゴリズムは、プレゼンテーション優先順位(presentation priority)の順にスケジュールする。例えば、プライオリティロジック３０８は、プレゼンテーションをスケジュールするスケジューリングアルゴリズムによって使用されるプレゼンテーション優先順位を決定するように動作する。より高い優先順位ランキングを備えたプレゼンテーションは、より低い優先順位ランキングを備えたプレゼンテーションの前にスケジュールされる。一実施形態においては、プライオリティロジック３０８は、サービスランキング(service ranking)の順序でプレゼンテーションに優先順位をつけるように動作する。例えば、もしサービスが１つより多くのプレゼンテーションを含んでいる場合、最も早いプレゼンテーションビューイングタイムを備えたプレゼンテーションが、より高い優先順位を割り当てられる(assigned)。スケジューリングアルゴリズムは、任意の特性あるいは条件に基づいてプレゼンテーションをランク付けし(rank)、それに応じて優先順位を割り当て、それによってスケジューリング順位に影響を与えるように、動作することができる、ということに注意すべきである。
【００７２】
図６は、ＳＰＡシステムの実施形態において、優先順位がどのようにプレゼンテーションに割り当てられるかを説明するタイムテーブル６００を示す。例えば、タイムテーブル６００において示される優先順位は、プライオリティロジック３０８によって生成される。タイムテーブル６００は、３つのサービス、すなわち、サービス＃１、サービス＃２、およびサービス＃３のためのプレゼンテーションタイムを示す。この例において、サービスは、サービスランキング順位に従ってランク付けされる。サービス＃１は、最も高いランキングを有し、次にサービス＃２、そしてその次にサービス＃３がランキングを有する。サービス＃１は、７：００、９：００、および１１：００のビューイングタイムを備えた３つのプレゼンテーションを有する。サービス＃１の第１のプレゼンテーションは、それが最も高いサービスランキングを備えたサービスに属し、最も早いビューイングタイムを有するので、（６０２で示されるように）１(one(1))のプレゼンテーション優先順位を割り当てられる。サービス＃３の第２のプレゼンテーションは、それが最も低いサービスランキングを備えたサービスに属し、最後のビューイングタイムを有するので、（６０４で示さるように）最も低い優先順位を有する。残りのプレゼンテーションは、同様の方法で優先順位をつけられる。然しながら、タイムテーブル６００は優先順位を設定するための単に１つの技術を説明しているということにも、そして、ＳＰＡシステムは任意の他の適切な技術あるいは基準を使用して、優先順位を割り当てるように動作することができるということにも、また注意されるべきである。
【００７３】
アルゴリズムオペレーションの例
【００７４】
以下のことは、ＳＰＡシステムの一実施形態によって提供されるスケジューリングアルゴリズムの一実施形態のオペレーションの一例である。例えば、スケジューリングロジックは、そのオペレーションが以下に説明されるスケジューリングアルゴリズムを提供するように動作する。１つ以上の実施形態においては、スケジューリングアルゴリズムは、次の目標の１つ以上を達成するためにコンテンツ配信スケジュールを生成するように構成される。  
１．    できるだけビューイングタイムに近いコンタクトウィンドウを生成する。アルゴリズムは、ビューイングタイムから始まり、そして、それがプレゼンテーションデッドラインタイムに到達するまでリソースを割り付ける。これは、最も近いコンテンツ(the most recent content)がビューイングタイムにできるだけ接近して配信されることを可能にする。
【００７５】
２．    時間内に(in time)コンタクトウィンドウを隣接し(contiguous)かつ均一に保つようにスケジュールを生成する。どんな加入登録されたデバイスも、コンタクトウィンドウが開いている間、いつでも、コンテンツを「とりだす(pull)」ことができるので、システムがどんなデバイスの要求も満たすことを可能にするために、コンテンツは、配信ウィンドウ全体にわたって(across the delivery window)均一に分散される(distributed)べきである。  
３．    できるだけ広くコンタクトウィンドウを維持するようにスケジュールを生成する。コンタクトウィンドウが広いほど、コンテンツは、均一に分散されることができる。これは、次に、ネットワークリソースのより均一なローディングを結果としてもたらす。ロードスパイク(load spike)を回避することにより、ネットワーク上のローディングは均一に分散され、成功する配信についてより高い機会を提供する。
【００７６】
この例においては、スケジューリングアルゴリズムは、割り付けサイクルにつき、１メガバイト（Ｍｂｙｔｅ）のスケジューリングユニットで、かつ、半時間の時間粒度(time granularity)で、実行するように構成される。然しながら、スケジューリングアルゴリズムは、異なる時間粒度およびメモリユニットサイズで実行するように構成されることができるということに注意すべきである。時間粒度が半時間で設定されるので、プレゼンテーションのビューイングタイムは、スケジューリングにおいて半時間に丸められる(rounded down)。一実施形態においては、プレゼンテーションは、選択された基準に基づいて、最初に順位付けされる。例えば、プライオリティロジック３０８は、上記に説明されたようにプレゼンテーションを順位付けするように動作する。スケジューリングアルゴリズムが、そのあと、以下の方法において説明されるように動作する。
【００７７】
図７は、ＳＰＡシステムの実施形態における使用のためのスケジューリングアルゴリズムを提供するための方法７００の一実施形態を示す。例えば、一実施形態において、方法７００が、スケジューリングロジック３１０のオペレーションによって提供されており、スケジューリングロジック３１０を参照しながら以下に説明される。方法７００は、次のパラメータを前提としている。  
コンタクトウィンドウ開始タイム：Ｓｉ
コンタクトウィンドウ終了タイム：ｅｉ
プログラムフェッチデッドライン(Program fetch deadline)：ｄｉ
プログラムビューイングタイム：  ｖｉ
配信ウィンドウ：                Ｔｉ＝ｖｉ  ―ｄｉ                         
粒度ユニット(Granularity Unit)：Ｔｕ
【００７８】
方法はブロック７０２で始まり、そこでは、選択されたパラメータが初期化される。例えば、コンタクトウィンドウ開始タイムは、プログラムフェッチデッドラインに設定され、また、コンタクトウィンドウ終了タイムは、プログラムビューイングタイムに設定される。更に、粒度時間は３０分に設定される。
【００７９】
ブロック７０４では、プレゼンテーションのトータルサイズ(total size)がコンタクトウィンドウ内のタイムユニットの間に広がる(is spread)まで、１つ以上の割り付けサイクルが実行される。一実施形態においては、割り付けサイクルは、コンタクトウィンドウ終了タイムから始まり、そしてコンタクトウィンドウ開始タイムまで進む。アルゴリズムは、スケジューリングユニット（バイト）を、割り付けサイクル当たりのコンタクトウィンドウ内の各タイムユニット(time unit)に適用する。プレゼンテーションのトータルサイズが、コンタクトウィンドウ内のタイムユニットの間に広がるまで、そのプロセスが繰り返される。
【００８０】
ブロック７０６では、プレゼンテーションのトータルサイズがコンタクトウィンドウ全体にわたって(across the contact window)割り付けられることができるかどうかを決定するためにテストが実行される。もしプレゼンテーションが割り付けられる場合は、プレゼンテーションは成功裏にスケジュールされ、そして、方法は、ブロック７０８で終了する。もしプレゼンテーションがコンタクトウィンドウ全体にわたって割り付けられることができない場合は、方法はブロック７１０に進む。
【００８１】
ブロック７１０では、コンタクトウィンドウ開始タイムは、粒度ユニットによって増やされる(increased)。例えば、コンタクトウィンドウ開始タイムは、３０分増やされる。
【００８２】
ブロック７１２では、コンタクトウィンドウ開始タイムがコンタクトウィンドウ終了タイムと等しいかどうかを決定するためにテストが実行される。もしコンタクトウィンドウ開始タイムがコンタクトウィンドウ終了タイムと等しくない場合、方法は、スケジューリングプロセスを再度試みるためにブロック７０４に戻る。もしコンタクトウィンドウ開始タイムがコンタクトウィンドウ終了タイムと等しい場合は、方法は、ブロック７１４に進む。
【００８３】
ブロック７１４では、コンタクトウィンドウ終了タイムは、粒度時間によって減らされる(decreased)。例えば、コンタクトウィンドウ終了タイムは、３０分減らされる。
【００８４】
ブロック７１６では、コンタクトウィンドウ終了タイムがプログラムフェッチデッドラインと等しいかどうかを決定するためにテストが行なわれる。もしコンタクトウィンドウ終了タイムがプログラムフェッチデッドラインと等しい場合、そのときは、プレゼンテーションはスケジュールされることができず、方法はブロック７１８に進む。もしコンタクトウィンドウ終了タイムがプログラムフェッチデッドラインと等しくない場合、そのときは、方法はブロック７２０に進む。
【００８５】
ブロック７２０では、コンタクトウィンドウ開始タイムはプログラムフェッチデッドラインに設定される。方法は、そのあと、スケジューリングプロセスを再び試みるために、ブロック７０４に進む。
【００８６】
このように、方法７００は、ＳＰＡシステムの実施形態において使用するためにスケジューリングアルゴリズムの一実施形態を提供するように動作する。方法７００は単に１つのインプリメンテーションであるということに、そして、他のインプリメンテーションが実施形態の範囲内で可能であるということに、注意すべきである。例えば、方法７００の機能のうちのいずれも、実施形態の範囲内で、追加され、変更され、削除され、修正され、結合され、あるいは、そうでなければ調整されることができる。
【００８７】
図８−１０は、方法７００のオペレーションの間に起こりうる３つのスケジューリングのケースを説明するグラフを、それぞれ示す。方法７００によって提供されるスケジューリングアルゴリズムが、コンタクトウィンドウ終了タイムから始まってコンタクトウィンドウ開始タイムまで割り付けサイクル当たりのコンタクトウィンドウ全体にわたって各タイムユニット上でスケジューリングユニット（バイト）を適用していることを、全てのケースは説明する。全メディアミニュッツ(total media minutes)が完全かつ成功裏に割り付けられるまで、このプロセスは繰り返す。最後の割り付けサイクルで、メディアミニュッツの残りの部分は、コンテンツに割り付けるためにより多くのリソースを有するタイムユニットの間で均一に分配される(distributed)。
【００８８】
図８は、方法７００によって提供されるスケジューリングアルゴリズムが、８０２で示されるように、最初の割り付けサイクル上の５：３０から６：００までのタイムユニットでコンテンツを割り付けることができない、第１のケースを説明している。方法７００によって提供されるスケジューリングアルゴリズムは、そのとき、コンタクトウィンドウ開始タイムを６：００へシフト(shifts)し、かつ、スケジューリングファンクションを繰り返す。全メディアミニュッツが新しいコンタクトウィンドウ上で割り付けられるか、または全メディアミニュッツがスケジュールされることができないまで、このプロセスは繰り返される。
【００８９】
図９は、コンタクトウィンドウ終了タイムが９：３０から８：００までシフトした後に、方法７００によって提供されるスケジューリングアルゴリズムが成功する、第２のケースを説明する。例えば、９０２で示されるように、コンテンツが８：００から８：３０までのタイムユニットで割り付けられることができなかった時に、コンテンツウィンドウ終了タイムはシフトされた。
【００９０】
図１０は、全メディアミニュッツが新しいコンタクトウィンドウ全体にわたって割り付けられることを可能にするようにそれに応じてコンタクトウィンドウ開始および終了の両方のタイムが変更された後に、方法７００によって提供されるスケジューリングアルゴリズムが成功する、第３のケースを説明する。例えば、コンテンツは、１００２で示されるように、５：００から５：３０までのタイムユニットで割り付けられることができなかったので、そのため、コンタクトウィンドウ開始タイムが５：３０にシフトされる。更に、コンテンツは、１００４で示されるように、８：００から８：３０までのタイムユニットで割り付けられることができなかったので、そのため、コンタクトウィンドウ終了タイムが８：００にシフトされる。
【００９１】
均一性ファクタ(Uniformity Factor)
【００９２】
方法７００によって提供されるスケジューリングアルゴリズムは均一性ファクタを考慮に入れない。デバイスがコンテンツを受け取るためにネットワークとコンタクトをとることができる時間間隔を示すコンタクトウィンドウを、各デバイスは与えられる。ネットワークとコンタクトをとる、コンタクトウィンドウ開始タイムとコンタクトウィンドウ終了タイムとの間に均一に分散される(distributed)ランダムタイム(random time)を、デバイスは選ぶ(picks)。従って、ネットワークリソース割り付けは、コンタクトウィンドウ内で均一に分配される(distributed)。方法７００によって提供されるアルゴリズムの最初のパス(pass)では、アルゴリズムは、配信ウィンドウ内でネットワークリソースを割り付けようとする。一旦それが成功すれば、その結果生じるコンタクトウィンドウ全体にわたってリソースを均一に割り付けるためにそれは第２のパスをとるだろう。
【００９３】
一実施形態においては、コンタクトウィンドウは、不均一(non-uniform)であるように選択される。サーバは、そのあと、ウィンドウの不均一の性質をデバイスに伝えるように動作する。したがって、デバイスは、サーバに接続するとき、コンタクトウィンドウの不均一性(non-uniformity)に重み付けをする(weight)ように動作する。一実施形態においては、不均一のコンタクトウィンドウは、より多くのプレゼンテーションが配信のためにスケジュールされることができるので、さらに帯域幅効率(bandwidth efficient)がよい。
【００９４】
図１１は、ＳＰＡシステムの実施形態において使用されるためのコンテンツをスケジュールするために均一性ファクタを利用する、スケジューリングアルゴリズムを提供する方法１１００の一実施形態を示す。例えば、方法１１００は、０．８の仮定された均一性ファクタを使って、どのように均一性が達成されることができるかを示す。一実施形態においては、スケジューリングロジック３１０は、以下に説明される方法１１００の機能を提供するように動作する。
【００９５】
ブロック１１０２では、タイムユニットは、最大偏差(largest deviation)を有するコンタクトウィンドウ内で選択されている。ブロック１１０４では、選択されたタイムユニットがコンタクトウィンドウの端に(at the edge)あるかどうかを決定するためにテストが実行される。もしタイムユニットがコンタクトウィンドウの端にある場合は、方法は、ブロック１１０６に進む。もしタイムユニットがコンタクトウィンドウの端にない場合は、方法はブロック１１０８に進む。
【００９６】
ブロック１１０６では、選択されたタイムユニットに関連するバイトは、コンタクトウィンドウ内の他のタイムユニット全体にわたって均一に割り付けられる。コンタクトウィンドウ開始あるいは終了タイムもまたそれに応じて更新される(updated)。
【００９７】
ブロック１１１０では、割り付けが成功したかどうかを決定するためにテストが実行される。もし割り付けが成功した場合は、方法はブロック１１１２に進む。もし割り付けが成功しなかった場合は、プログラムがスケジュールされることができないので、方法はブロック１１１４で終了する。
【００９８】
ブロック１１１２では、コンタクトウィンドウ全体にわたって偏差が（１  −  均一性ファクタ）未満であるかどうかを決定するためにテストが実行される。例えば、均一性ファクタは０．８であると仮定される。もしコンタクトウィンドウ全体にわたって偏差が（１  −  均一性ファクタ）未満でない場合は、方法はブロック１１０２に戻る。もしコンタクトウィンドウ全体にわたって偏差が（１  −  均一性ファクタ）未満である場合、プログラムは成功裏にスケジュールされており、方法は、ブロック１１１６で終了する。
【００９９】
ブロック１１０８では、パラメータ（Ａ）の値は、選択されたタイムユニットを含んで、選択されたタイムユニットの左側(the left)の合計タイムユニットバイト(total time unit bytes)に等しく設定される。ブロック１１１８では、パラメータ（Ｂ）の値は、選択されたタイムユニットを含んで、選択されたタイムユニットの右側(the right)の合計タイムユニットバイトに等しく設定される。
【０１００】
ブロック１１２０では、パラメータＡがパラメータＢ以下であるかどうかを決定するためにテストが実行される。もしパラメータＡがパラメータＢ以下である場合は、方法はブロック１１２４に進む。もしパラメータＡがパラメータＢ以下でない場合は、方法はブロック１１２２に進む。
【０１０１】
ブロック１１２４では、Ａの中の合計バイト(total bytes)が、選択されたタイムユニットの右側に均一に割り付けられ、そして、コンタクトウィンドウ開始タイムがそれに応じて更新される。ブロック１１２６では、割り付けが成功したかを決定するためにテストが実行される。もし割り付けが成功した場合は、方法はブロック１１１２に進む。もし割り付けが成功しなかった場合は、方法はブロック１１３０に進む。
【０１０２】
ブロック１１３０では、合計バイトは、選択されたタイムユニットの反対側に割り付けられ、コンタクトウィンドウはそれに応じて更新される。ブロック１１３２では、割り付けが成功したかを決定するためにテストが実行される。もし割り付けが成功した場合は、方法はブロック１１１２に進む。もし割り付けが成功しなかった場合は、プログラムはスケジュールされることができず、そして、方法はブロック１１１４で終了する。
【０１０３】
ブロック１１２２では、Ｂの中の合計バイトは、選択されたタイムユニットの左側に均一に割り付けられ、そして、コンタクトウィンドウ終了タイムがそれに応じて更新される。ブロック１１２８では、割り付けが成功したかを決定するためにテストが実行される。もし割り付けが成功した場合は、方法はブロック１１１２に進む。もし割り付けが成功しなかった場合は、方法はブロック１１３０に進む。
【０１０４】
このように、方法１１００は、ＳＰＡシステムの実施形態において使用されるための選択された均一性ファクタを利用する、スケジューリングアルゴリズムの一実施形態を提供するように動作する。方法１１００は単に１つのインプリメンテーションであるということに、そして、他のインプリメンテーションが実施形態の範囲内で可能であるということに、注意すべきである。例えば、方法１１００の機能のうちのいずれも、実施形態の範囲内で、追加され、変更され、削除され、変更された、修正され、結合され、あるいはそうでなければ調整されることができる。
【０１０５】
図１２−１４は、図１１において示される方法１１００のオペレーションを説明するグラフを示す。
【０１０６】
図１２は、コンタクトウィンドウ全体にわたって偏差が（１  −  均一性ファクタ）よりも大きいときの方法１００のオペレーションを説明するグラフを示す。この結果として、ユニット「ａ６」は、（１２０２で示されるように）選択されたタイムユニットであり、方法１１００のブロック１１０２のオペレーションの間に決定される。
【０１０７】
タイムユニット「ａ６」を選択した後に、パラメータＡおよびＢの値が計算され、それらは、方法１１００のブロック１１０８および１１１８のオペレーションにそれぞれ対応する。したがって、ＡとＢの値は、次のように表わされることができる。
【０１０８】
Ａ＝ａｌ＋ａ２＋ａ３＋ａ４＋ａ５＋ａ６
Ｂ＝ａ６＋ａ７＋ａ８
【０１０９】
Ａ＞Ｂであり、そのため、Ｂにおける全タイムユニットはユニットａ６の左側に均一に割り付けられるべきであると仮定され、それは、方法１１００のブロック１１２２のオペレーションに対応する。
【０１１０】
図１３は、どのようにして、Ｂにおける全タイムユニットがユニットａ６の左側に均一に割り付けられるかを説明するグラフを示す。例えば、１３０２で示されるように、タイムユニットａ６、ａ７、およびａ８は、ブロックｂｌ、ｂ２、ｂ３、ｂ４、およびｂ５の中へと、ａ６の左側に割り付けられる。更に、１３０４で示されるように、コンタクトウィンドウの終了タイムは更新される。
【０１１１】
この成功した割り付けの後、コンタクトウィンドウ中で偏差は依然と（１  −  均一性ファクタ）よりも大きい。この決定(determination)は、方法１１００のブロック１１１２で実行されたテストに対応する。次に、方法１１００のブロック１１０２の機能が実行されるとき、ユニット「ｂ３」が選択される。
【０１１２】
ユニット「ｂ３」を選択した後に、パラメータＡおよびＢの値は計算され、それらは、方法１１００のブロック１１０８および１１１８のオペレーションにそれぞれ対応する。したがって、ＡとＢの値は次のように表わされることができる。  
Ａ＝ｂｌ＋ｂ２＋ｂ３
Ｂ＝ｂ３＋ｂ４＋ｂ５
【０１１３】
Ａ＜＝Ｂであり、そのため、Ａにおける全タイムユニットはユニットｂ３の右側に均一に割り付けられるべきであると仮定され、それは、方法１１００のブロック１１２４のオペレーションに対応する。
【０１１４】
図１４は、どのようにして、Ａにおける全タイムユニットがユニットｂ３の右側に均一に割り付けられるかを説明するグラフを示しており、方法１１００のブロック１１２４のオペレーションに対応する。例えば、１４０２で示されるように、タイムユニットｂｌ、ｂ２、およびｂ３は、ブロックｃ４およびｃ５の中へと、ｂ３の右側に割り付けられる。更に、１４０４で示されるように、コンタクトウィンドウの開始タイムは更新される。
【０１１５】
この成功した割り付けの後、コンタクトウィンドウ中で偏差は、（１  −  均一性ファクタ）未満である。このようにして、プレゼンテーションは成功裏にスケジュールされ、それは、方法１１００のブロック１１１６に対応する。
【０１１６】
加入登録されたメモリの取り出しおよびアベイラビリティ持続期間
【０１１７】
一実施形態においては、メモリロジック３０６は、サービス当たり必要とされる、加入登録されたメモリを決定するように動作する。サービス当たりの加入登録されたメモリは、デバイスユーザがサービスに加入できる前に、デバイス上で利用可能であるのに必要であるメモリの総量である。サービス当たりデバイス上で保存されることができるプレゼンテーションの数は、バッファリングフラグ(buffering flag)に依存する(is depended on)。例えば、バッファリングフラグは、１からＮまでの範囲の値を有するかもしれない。一実施形態においては、バッファリングフラグは、どれだけ多くのプレゼンテーションがいつでもデバイスに保存されることができるのかを決定し、それ故、デバイスが選択されたスケジューリング期間に対して利用可能な、デバイスが有さなければならないメモリの量を示す。
【０１１８】
一実施形態においては、アベイラビリテイロジック(availability logic)３０４は、プレゼンテーションがビューイングに利用可能な持続時間(time duration)を記述するアベイラビリティ持続期間(availability duration)、を決定するように動作する。一実施形態においては、アベイラビリティ持続期間は、バッファリングフラグに基づく。
【０１１９】
図１５は、ＳＰＡシステムの実施形態において使用されるＳＬＵ１５００の一実施形態を示す。例えば、ＳＬＵ１５００は、図３において示されるＳＬＵ３２２であってよい。一実施形態においては、ＳＬＵ１５００は、スケジューリングロジック３１０によって生成される。
【０１２０】
ＳＬＵ１５００は、各プレゼンテーションのためのパラメータシーケンス(parameter sequence)の１つ以上のインスタンス(instances)を備える。一実施形態においては、パラメータシーケンスは、コンタクトウィンドウ開始タイム１５０２、コンタクトウィンドウ持続期間タイム(contact window duration time)１５０４、加入登録されたメモリサイズ(subscribed memory size)１５０６、アベイラビリティ持続期間タイム(availability duration time)１５０８、および関連するパラメータ１５１０、を備える。例えば、関連するパラメータ１５１０は、スケジューリングアルゴリズムを初期化するオペレータによるパラメータ入力を備えることができる。ＳＬＵ１５００は単に１つのインプリメンテーションを表わしているということに、そして、他のインプリメンテーションが実施形態の範囲内で可能であるということに、注意すべきである。
【０１２１】
図１６は、ＳＰＡシステムの実施形態において使用されるＳＰＡロジック１６００の一実施形態を示す。ＳＰＡロジック１６００は、コンタクトウィンドウを生成するための手段１６０２、割り付けを実行するための手段１６０４、決定するための手段１６０６、調整するための手段１６０８、および、繰り返すための手段１６１０、を備える。
【０１２２】
一実施形態においては、コンタクトウィンドウを生成するための手段１６０２は、ハードウェア及び／又はソフトウェアを備えており、そして、選択された持続時間を備えるコンタクトウィンドウを生成するように動作する。
【０１２３】
一実施形態においては、割り付けを実行するための手段１６０４は、ハードウェア及び／又はソフトウェアを備えており、そして、プレゼンテーションをコンタクトウィンドウに割り付ける割り付けサイクルを実行するように動作する。
【０１２４】
一実施形態においては、決定するための手段１６０６は、ハードウェア及び／又はソフトウェアを備えており、そして、プレゼンテーションが割り付けられることができるかどうかを決定するように動作する。
【０１２５】
一実施形態においては、調整のための手段１６０８は、ハードウェア及び／又はソフトウェアを備えており、そして、もしプレゼンテーションが割り付けられることができない場合は、コンタクトウィンドウの選択された持続時間を調整するように動作する。
【０１２６】
一実施形態においては、繰り返すための手段１６１０は、ハードウェア及び／又はソフトウェアを備えており、そして、プレゼンテーションが割り付けられることができるまで、それらのオペレーションを繰り返す手段１６０４、１６０６、および１６０８を制御するように動作する。
【０１２７】
ＳＰＡロジック１６００は単に１つのインプリメンテーションを表わしているということに、そして、他のインプリメンテーションが実施形態の範囲内で可能であるということに、注意すべきである。
【０１２８】
ここに開示された実施形態に関連して説明された、種々の説明のためのロジック、論理ブロック、モジュール、及び回路は、汎用プロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、又は他のプログラマブルロジックデバイス、ディスクリートゲート又はトランジスタロジック、ディスクリートハードウェアコンポーネント、又はここに説明された機能を実行するように設計されたこれらの任意の組み合わせで、実施或いは実行されることが出来る。汎用プロセッサは、マイクロプロセッサであってもよい、しかし別の方法では、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、又は状態機械でもよい。プロセッサは又、コンピューティングデバイスの組み合わせ、例えばＤＳＰとマイクロプロセッサとの組み合わせ、複数のマイクロプロセッサ、ＤＳＰコアと併用された１以上のマイクロプロセッサ、又は任意の他のそのようなコンフィギュレーション（configuration）として実施されることが出来る。
【０１２９】
ここで開示された実施形態と関連して説明された方法あるいはアルゴリズムのステップは、ハードウェアで直接的に、プロセッサによって実行されるソフトウェアモジュールで、又は、上記２つの組み合わせで実施されることができる。ソフトウェアモジュールは、ＲＡＭメモリ、フラッシュメモリ、ＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、レジスタ、ハードディスク、取り外し可能なディスク、ＣＤ−ＲＯＭ、又は本技術分野で知られている任意の他の形態の記憶媒体、に常駐することができる。例示的な記憶媒体は、プロセッサが、記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことが出来るように、プロセッサに結合される。別の方法では、記憶媒体はプロセッサと一体となっていてもよい。プロセッサと記憶媒体はＡＳＩＣに常駐することもできる。ＡＳＩＣはユーザ端末に常駐してもよい。別の方法では、プロセッサと記憶媒体は、ユーザ端末中のディスクリートコンポーネントとして常駐することができる。
【０１３０】
開示された実施形態の以上の説明は、どんな当業者も本発明を作り又は使用することができるように提供されている。これら実施形態の様々な変形は当業者には容易に明らかであるかもしれない、そして、ここに定義された包括的な原理は、本発明の精神或いは範囲を逸脱することなく他の実施形態、例えば、インスタントメッセージサービス、あるいは任意の一般の無線データ通信アプリケーション、に適用されることが出来る。このように、本発明は、ここで示された実施形態に限定されるように意図されてはおらず、ここに開示された原理及び新規な特徴と整合する最も広い範囲が与えられるべきものである。用語「例示的な(exemplary)」は、「例(example)、インスタンス(instance)、または例証(illustration)として機能している」を意味するようにこのなかでは専ら使用されている。「例示的な」としてここに説明されるいずれの実施形態も、他の実施形態よりも好ましい、あるいは有利であるとして必ずしも解釈されるべきでない。
【０１３１】
従って、ＳＰＡシステムの実施形態がここに示され、説明されたが、それらの精神あるいは本質的特性から逸脱することなく、様々な変更が実施形態にされることができることは認識されるだろう。従って、ここでの開示および説明は、添付の特許請求の範囲において記載された本発明の範囲を、例証するように意図されているが、限定するものではない。
【図面の簡単な説明】
【０１３２】
【図１】図１は、ＳＰＡシステムの一実施形態を備えるネットワークを示す。
【図２】図２は、ＳＰＡシステムの一実施形態を備えるコンテンツ配信システムの一実施形態を示す。
【図３】図３は、ＳＰＡシステムの実施形態において使用するためのＳＰＡロジックの一実施形態を示す。
【図４】図４は、ＳＰＡシステムの実施形態において使用するためのセクタスループットを説明するグラフを示す。
【図５】図５は、ＳＰＡシステムの実施形態において使用するためのコンタクトウィンドウと配信ウィンドウとの関係を説明する。
【図６】図６は、ＳＰＡシステムの実施形態において、どのように優先順位がプレゼンテーションに割り当てられるかを説明するタイムテーブルを示す。
【図７】図７は、ＳＰＡシステムの実施形態において使用するためのスケジューリングアルゴリズムを提供する方法の一実施形態を示す。
【図８】図８は、図７において示される方法のオペレーションの間に起こりうる、３つのスケジューリングのケースのうちの１つ（第１のケース）を説明するグラフ、を示す。
【図９】図９は、図７において示される方法のオペレーションの間に起こりうる、３つのスケジューリングのケースのうちの１つ（第２のケース）を説明するグラフ、を示す。
【図１０】図１０は、図７において示される方法のオペレーションの間に起こりうる、３つのスケジューリングのケースのうちの１つ（第３のケース）を説明するグラフ、を示す。
【図１１】図１１は、ＳＰＡシステムの実施形態において使用されるコンテンツをスケジュールするために均一性ファクタを利用する、スケジューリングアルゴリズムを提供する方法の一実施形態を示す。
【図１２】図１２は、図１１において示される方法のオペレーションを説明するグラフを示す。
【図１３】図１３は、図１１において示される方法のオペレーションを説明するグラフを示す。
【図１４】図１４は、図１１において示される方法のオペレーションを説明するグラフを示す。
【図１５】図１５は、ＳＰＡシステムの実施形態において使用するためのＳＬＵの一実施形態を示す。
【図１６】図１６は、ＳＰＡシステムの実施形態において使用するためのＳＰＡロジックの一実施形態を示す。
【図１】
2008533595.tif 000005
【図２】
2008533595.tif 000006
【図３】
2008533595.tif 000007
【図４】
2008533595.tif 000008
【図５】
2008533595.tif 000009
【図６】
2008533595.tif 000010
【図７】
2008533595.tif 000011
【図８】
2008533595.tif 000012
【図９】
2008533595.tif 000013
【図１０】
2008533595.tif 000014
【図１１】
2008533595.tif 000015
【図１２】
2008533595.tif 000016
【図１３】
2008533595.tif 000017
【図１４】
2008533595.tif 000018
【図１５】
2008533595.tif 000019
【図１６】
2008533595.tif 000020
【国際調査報告】
2008533595.tif 000021
2008533595.tif 000022