(57)【特許請求の範囲】
【請求項１】
複数のファイルを連続且つ循環してキャルセルとして出力する情報サーバにおいて、
１以上のファイルをまとめてページとして複数のページが定義され、前記各々のページに対して前記キャルセルの出力順序をページ番号として定義し、前記各々のページ毎にこれに属する１以上のファイルにおいて出力すべきファイルを選択するための条件を属性として定義するテーブルを記憶する記憶部と、
前記記憶部に記憶された前記テーブルを前記ページ番号の順序で連続して参照し、参照したページに対して属性として定義された条件に従って、前記ページ番号に対応するページに属する前記ファイルを出力するキャルセルビルダと、
を備えることを特徴とする情報サーバ。
【請求項２】
前記属性は、
ページが参照されると常にこのページに関連付けられたアドレスにより示されるファイルを出力するよう選択する正常属性と、
ページが参照される毎に前回選択されたアドレスと異なるアドレスにより示されるファイルを出力するよう選択する循環属性とを備える
ことを特徴とする請求項１に記載の情報サーバ。
【請求項３】
前記属性は、ページが参照されると常にこのページに関連付けられたアドレスにより示されるファイルを出力するとともに、前記アドレスにより示されるファイルのコンテントが更新されたとき当該ファイルを出力するよう選択する即時属性をさらに備える
ことを特徴とする請求項２に記載の情報サーバ。
【請求項４】
記憶部により、１以上のファイルのアドレスと、前記ファイルの表示の順序を表す情報としてのページと、前記ページを循環するごとに出力する前記ファイルの選択方法を決定する属性とを互いに関連付けてテーブルに記憶するステップと、
キャルセルビルダにより、前記キャルセルの前記ページを連続して参照し、各ページに関連する属性に従って前記アドレスにより示されるファイルを出力するステップと、
を備えるキャルセルファイル出力方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報サーバ及びキャルセル（carousel）情報配列方法に関し、特に、例えば、ファイルのキャルセルのトランスポートストリーム表示の中のシーケンスから追加ファイルが挿入されたり、例えば、キャルセルの特徴が決定される情報サーバ及びキャルセル情報配列方法に関する。
【０００２】
【従来の技術】
トランスポートストリームの選択されたチャネルの中に情報を供給する情報サーバを提供する方法が提案されている。例えば、ビデオデータ等を放送するため、様々なデータファイルがトランスポートストリームの特定のチャネルの中に供給されている。
【０００３】
【発明が解決しようとする課題】
現在、例えば、キャルセルを用いて多数の異なるデータファイルを次々と伝送することが提案されている。ところで、現在のアプリケーションは、キャルセルのページのコンテントにいくらかの柔軟性が必要であることを認識している。特に、本発明によれば、ファイルを他の所定のファイルのキャルセルに挿入することを可能にするべきであるということが提案されている。残念ながら、もとのキャルセルファイルからトランスポートストリームのペイロードで生じる変換のために、全体のトランスポートストリームを混乱させないで追加ペイロード情報をただ挿入することは不可能である。
【０００４】
本発明は、上述した問題点に鑑みてなされたものであり、キャルセルを用いて多数の異なるデータファイルを次々と伝送するする際、全体のトランスポートストリームを混乱させないで追加ペイロード情報を挿入することのできる情報サーバ及びキャルセル情報配列方法を提供する。
【０００５】
【課題を解決するための手段】
本発明によれば、構築中にトランスポートストリーム表示のペイロードリストの中の挿入点を決定するステップと、追加ファイルのトランスポートストリームペイロードを計算するステップと、次の挿入点で、トランスポートストリーム表示の中のトランスポートストリームペイロードを挿入するステップと、を有するファイルのキャルセルのあらかじめ構築されていたトランスポートストリーム表示のシーケンスから追加ファイルを挿入する方法が提供される。
【０００６】
本発明によれば、ファイルのキャルセルのトランスポートストリーム表示のトランスポートストリームペイロードを構築するキャルセルビルダと、ファイルのキャルセルに挿入される挿入ファイルのトランスポートストリームペイロードを構築するペイロードビルダとを備え、キャルセルビルダは、挿入ファイルのペイロードが次の利用可能な挿入点で挿入されるように、ペイロードの構築中にトランスポートストリーム表示の挿入点を決定することを特徴とする出力トランスポートストリームの中の情報を供給する情報サーバが提供される。
【０００７】
このようにして、挿入点は、全体のトランスポートストリームのコンテントを混乱させることなく、追加ペイロードを出力トランスポートストリームの中に挿入させることができる。さらに、挿入点は、追加ファイルが比較的速く挿入されるように、比較的短い間隔でキャルセルを介して供給される。
【０００８】
好ましくは、情報サーバは、キャルセルビルダによって計算されるペイロードを循環して参照し、伝送するトランスポートストリームパケットを構築するマルチプレクサ／パケタイザをさらに備える。マルチプレクサは、挿入点を参照し、挿入ファイルのペイロードを次の利用可能な挿入点で挿入する。
【０００９】
このようにして、大きな再計算の必要がなくなり、マルチプレクサ／パケタイザは、次の利用可能な挿入点上で、要求されるペイロード情報を単に挿入することができる。
【００１０】
情報サーバは、例えば、トランスポートストリームを発生する少なくとも一つのストリーム発生器を備え、ストリーム発生器は、上述したように決定された少なくとも一つのキャルセルビルダとマルチプレクサとを備える。
【００１１】
マルチプレクサは、好ましくは伝送する計算されたペイロードからのＭＰＥＧ２トランスポートストリームパケットを形成し、挿入ファイルは、ＤＣＭＣＣオブジェクトであり、キャルセルビルダは、オブジェクトキャルセルのＤＣＭＣＣセクションの完全なセットを構築する。
【００１２】
ユーザは、異なる方法で、キャルセルの様々なページを決定することを望むことができる。例えば、上述したように、いくつかのファイルは、例えば更新ファイルをちょうど受け取ったときに即時に挿入を要求する。同様に、キャルセルのいくつかのページは、連続するバージョンがキャルセルの各ラウンド上に出力されるように多数のバージョンを有する。
【００１３】
本発明によれば、参照名とともにキャルセルの各ページを決定するステップと、  各参照名の１又は２以上のファイルアドレスを決定するステップと、各参照名に属性を割り当てて出力の特徴を決定するステップと、キャルセルのページを連続して参照し、各ページに関連する属性に従ってアドレスによって決定されたファイルを出力するステップと、を備えるキャルセルのファイルを出力する方法が提供される。
【００１４】
本発明によれば、参照名とともにキャルセルの各ページを決定し、各参照名の１又は２以上のファイルアドレスを決定し、属性を各参照名に割り当ててそのページの出力の特徴を決定するレジスタと、キャルセルのページを連続して参照し、各ページに関連する属性に従ってアドレスによって決定されたファイルを出力するキャルセルビルダと、を備えるキャルセルのファイルを出力する情報サーバが提供される。
【００１５】
このようにして、ユーザは、キャルセルの構成を簡単に決定することができる。
【００１６】
好ましくは、属性は、各ページの各アドレスによって示されたファイルのみがキャルセルの各ラウンドに出力されることを示す通常属性と、キャルセルの各ラウンドのために、各ページのリストされたファイルアドレスからの連続ファイルが出力されることを示す循環属性とを備える。
【００１７】
属性は、キャルセルが各参照名に到着したときファイルアドレスによって示されるファイルが出力されるだけでなく、ファイルアドレスのコンテントが更新されたときはいつもその参照名のファイルアドレスによって示されたファイルも出力される即時属性を備えていてもよい。
【００１８】
このようにして、キャルセルの各ページは、そのコンテントに関してだけでなく、キャルセルの各ラウンド上にどのように出力されるかに関しても簡単に決定される。
【００１９】
以前は、処理リソース又は伝送帯域幅に順位をつけて並べるため、タスク又はデータファイルがそれらの相対的な重要性を示す値とセットされている。例えば、データの伝送では、一つのデータソースは例えば利用可能な帯域幅の８０％に割り当てられ、他のデータソースは残りの２０％の利用可能な帯域幅に割り当てられる。同様に、プロセッサが多数の異なるタスクを実行しなければならないところでは、特定のタスクが例えば利用可能な処理時間の特定の割合に割り当てられる。
【００２０】
このシステムがタスク又はデータソースがあまり変化しないシステム、常時再構成されるシステムのために十分に機能したとしても、この方法は計算上非能率的である。特に、データソース又はタスクが追加されたり削除されるところでは、このシステムは、帯域幅又は処理時間の割合割り当てを再計算しなければならない。
【００２１】
本発明は、データオペレーションの相対的な優先度は変化せず、データオペレーションが追加されたり削除されたとしても再計算の必要がないように、最初にデータオペレーションに優先度を指定する必要性を認識する。
【００２２】
本発明によれば、例えば、所定の数の概念的なタイムスロットの循環配列を構築するステップと、各データオペレーションに概念的なタイムスロットの配列に関する周波数値を指定し、一連の連続する概念的なタイムスロットでの配列の中の各データオペレーションを周波数値に従って決定された間隔とともに登録するステップと、１又は２以上のデータオペレーションが登録されている配列の各概念的なタイムスロットを連続して参照し、データオペレーションが登録されて現在の概念的な時間のために選択されたときはいつもデータオペレーションを実行するステップと、を有する処理又は伝送等のデータオペレーションに優先度を指定する方法が提供される。
【００２３】
また、本発明によれば、例えば、所定の数の概念的なタイムスロットの循環配列と、各データオペレーションにタイムスロットの配列に関する周波数値を割り当てる入力装置と、一連の連続する概念的なタイムスロットでの配列の中の各データオペレーションを周波数値に従って決定された間隔とともに登録し、１又は２以上のデータオペレーションが登録されている配列の各概念的なタイムスロットを連続して参照し、データオペレーションが登録されて概念的な時間の進行に従って選択されたときデータオペレーションを開始する制御装置と、を備える処理又は伝送等のデータオペレーションに優先度を指定するシステムが提供される。
【００２４】
このようにして、データオペレーションの優先度が配列の概念的なタイムスロットに関して全てセットされる。一つのデータオペレーションに対する入力がｎ番目の入力ごとで起こり、他のデータオペレーションに対する入力がｍ番目の入力ごとで起こったとき、二つの入力の相対的な発生は、たとえ、明らかに、最初の二つのデータのオペレーションの実際の割り当てが減少されたとしても、入力が他のデータオペレーションのために行われたかどうかにかかわらず同じになる。よって、この方法及びシステムは、他のデータオペレーションが追加されたり削除されたときに全体的な割当てを再計算するような計算を必要とすることなく、様々なデータオペレーションの相対的な優先度を与える。
【００２５】
好ましくは、このシステムは、例えば、データソースの選択からトランスポートストリームパケットを構築するストリーム発生器を備え、周波数値は、各データソースに指定され、ストリーム発生器は、制御に従ってトランスポートストリームペイロードのデータを取るデータソースを選択する。
【００２６】
トランスポートストリームの中の伝送するためのデータソースに優先度を指定することによって、トランスポートストリーム上でさらに帯域幅を有するあるデータソースを割り当てることができる。データソースからのデータが繰返して伝送されるところでは、特定のデータソースからのデータが伝送される相対的な周波数を制御するために用いることができる。
【００２７】
上述した方法によって、用いられているデータソースにすでに割り当てられている相対的な伝送帯域幅を変更することなく、異なる優先度を伴った異なるデータソースが簡単に選択されるか削除される。
【００２８】
好ましくは、ＤＶＢ／ＭＰＥＧ２等の出力トランスポートストリームの中の情報を供給する情報サーバは、例えば、このようなシステムを備えることができ、また、このような方法を実行することができる。情報サーバは、好ましくは、ＤＶＢに適合する出力ストリームを発生することが好ましい。
【００２９】
データオペレーションを実行する際、処理時間又は伝送帯域幅のプロポーショニングが重大かもしれないが、即時のアクションを要求する感覚において、いくつかのデータオペレーションはさらに時間に依存している。例えば、ビデオディスプレイ及びワード処理オペレーションを扱うプロセッサにとって、ビデオ処理オペレーションがワード処理オペレーションの前に行われることはさらに重要なことかもしれない。同様に、ニュース項目の伝送のために帯域幅のほんのわずかな部分を割り当てた情報サーバにとって、特定のニュース速報が帯域幅の予定される割り当てを待つより、即時に帯域幅に割り当てられることのほうが非常に重要なことかもしれない。
【００３０】
このように、データオペレーションに優先度を指定する必要性は、本出願によって初めて認められた。
【００３１】
各データオペレーションにデータオペレーションの相対的な緊急度を示す呼び出し時間が割り当てられ、また、実行される次のデータオペレーションの選択が少なくとも呼び出し時間の値に基づいて決定される処理又は伝送などのデータオペレーションに優先度を指定する方法及びシステムが提案されている。
【００３２】
このようにして、プロセッサ又はトランスミッタは、例えば、次に行う最も重要なデータオペレーションはどれかということをを決定することができる。
【００３３】
トランスポートストリームの選択されたチャネルの中の情報を供給する情報サーバを提供する方法が提案されている。例えば、ビデオデータ等を放送するため、例えば、様々なデータファイルがトランスポートストリームの特定のチャネルの中に供給されている。多数の異なるデータファイルをシーケンスの中でキャルセルを通して伝送することが望まれている。また、キャルセルの個々のファイルが時々変更されるべきであるということが望まれている。ところで、残念ながら、トランスポートストリームパケットを形成するプロトコルスタックを介してのファイルの伝送のため、もとのファイルとトランスポートストリームパケットの間で直接の通信は行われない。よって、個々のファイルの交換は、トランスポートストリームの中の重要な変更となる。
【００３４】
また、本発明によれば、例えば、ファイルからのデータをプロトコルスタックを介してトランスポートストリームパケットに変換するステップと、変換の中で用いられている各ファイルに対し、変換によって生じる変換データを示す依存リンクを記憶し、変換データをさらに形成するための変換の中で用いられるどんな変換データに対しても、キャルセルの中のファイルが変更されたとき、依存リンクが変更によって起こる再計算を要求するどんな変換データをも示すように、さらなる変換データを示す依存リンクを記憶するステップと、を有するファイルのキャルセルからトランスポートストリームを構築する方法が提供される。
【００３５】
また、本発明によれば、ファイルからのデータをプロトコルスタックを介して変換してトランスポートストリームパケットを形成する少なくとも一つのキャルセルビルダと、一連のレジスタと、変換の中で用いられている各ファイルに対し、変換によって生じる変換データを示す依存リンクを記憶し、さらなる変換データを形成する変換の中で用いられるどんな変換データに対しても、キャルセルの中のファイルが変更されたとき、レジスタに記憶された依存リンクが変更によって起こる再計算を要求するどんな変換データをも示すように、さらなる変換データをを示す依存リンクを記憶する依存機構と、を備えるトランスポートストリームの中のファイルのキャルセルを出力する情報サーバが提供される。
【００３６】
このようにして、ファイルが変更されるか交換されると、単純な構成が供給され、再計算を要求するトランスポートストリームの全体の変換のこれらの部分のみを示す。言い換えれば、ファイルが変更されたとき、全体のトランスポートストリームのための変換を再計算する必要はない。
【００３７】
大きなキャルセルに対し、全体の対応するトランスポートストリームの再計算には、非常に長い時間がかかる。しかしながら、再計算を必要とするトランスポートストリームのこれらの部分のみを識別することによって、例えば、キャルセルの中の個々のファイルを素早く更新する情報サーバを提供することが可能となる。
【００３８】
好ましくは、レジスタは、キャルセルのファイルに基づいた主要なノードと、プロトコルスタックの連続レイヤでの変換されたデータに基づいた計算されたノードとを備える依存ノードからなる依存ネットワークの一部を形成する。
【００３９】
依存ノードは、好ましくは、ビットストリームへのコンテント参照としてはたらくポインタを、ファイルのキャルセルのビットストリーム表示の特定の一部に記憶する。好ましくは、依存表示は、依存ネットワークの一部として記憶され、どのようにビットストリームの一部が用いられてビットストリームの他の部分を計算するかを示す。
【００４０】
このようにして、依存ネットワークは、情報サーバの計算上簡単な機構を提供し、トランスポートストリームへ挿入するためのビットストリームの要求される部分を識別する。依存構造に続くことによって、もとのファイルのページが簡単に説明される。
【００４１】
好ましくは、キャルセルは、依存ノードのコンテント参照ポインタがＤＳＭＣＣオブジェクトキャルセルのビットストリーム表示の特定のサブパートを指し、主要なノードがＤＳＭＣＣファイルのコンテント参照及びディレクトリオブジェクトを含むように、ＤＳＭＣＣオブジェクトキャルセルを備える。
【００４２】
また、もう一度、これは、トランスポートストリームパケットの中に挿入する適切なデータを識別する計算上簡単なシステムを提供する。
【００４３】
キャルセルのファイルの少なくとも一つは、例えば、異なるバージョンがキャルセル放送の連続するラウンドに伝送されるように、このファイルの異なるバージョンを備える。この場合には、好ましくは、この又は他の少なくとも一つのキャルセルビルダは、トランスポートストリームパケットの連続するバージョンがキャルセル放送の各ラウンド上で選択されるように、このバージョンの各データを変換し、依存構成が各バージョンの依存リンクを記憶する。
【００４４】
このように、情報サーバは、キャルセル放送の各ラウンド上で、要求されるペイロード及びトランスポートストリームパケットを再計算する必要はない。依存構成は、出力トランスポートストリームがキャルセルの各ラウンド上で簡単に変更されるように、情報サーバが異なるバージョンに関して単にポインタを変更することを許可する。
【００４５】
様々なソースからビデオ及び／又はオーディオデータ取り出し、これらをＭＰＥＧ２などのトランスポートストリームパケットに配列し、トランスポートストリームのそれぞれのチャネルとして伝送することが知られている。
【００４６】
様々な形の情報をそのようなトランスポートストリームの中に伝送することが提案されている。その情報は映像、Ｊａｖａアプリケーション等を備えている。
【００４７】
本発明によれば、外部ホストコントローラからコントトール及びデータを受け取るＡＰＩサーバと、少なくともこのデータを記憶する記憶装置と、ＡＰＩサーバの制御のもとにこのデータからトランスポートストリームパケットを構築するストリーム発生器と、を備える出力トランスポートストリームの中に情報を供給する情報サーバが提供される。
【００４８】
このようにして、情報サーバは、例えば、ビデオ情報の他のトランスポートストリームの他の同様な情報サーバ又はプロバイダとともに簡単に多重化される分離された統合ユニットとして供給される。ＡＰＩサーバによって、情報サーバは、外部ホストコンピュータによって制御され構成される。情報サーバによる伝送のためのどんな情報でもホストコントトーラから情報サーバの記憶装置に転送される。同様に、ストリーム発生器は、ホストコントローラによって要求されるように、また、ＡＰＩサーバの制御のもとに、選択された情報をトランスポートストリームの選択されたチャネルの中に挿入することができる。情報を繰り返して伝送したり、異なる情報を循環して伝送するところでは、伝送の各時間ごとにトランスポートストリームデータが構築される必要がないように、トランスポートストリームのためのすでに計算されたペイロードがストリーム発生器の中に記憶されることが可能である。
【００４９】
好ましくは、各ストリーム発生器は、トランスポートストリームの中の循環伝送のための一連のペイロードを構築する少なくとも１つのキャルセルビルダを備える。
【００５０】
キャルセルビルダは、例えば、ＤＳＭＣＣオブジェクトキャルセル及び／又はＤＳＭＣＣデータキャルセルを構築し、入力データファイルからのＤＳＭＣＣセクションを構築する。
【００５１】
このようにして、例えば、一連のペイロードが準備され、トランスポートストリームのチャネルの中に循環伝送される。２以上のキャルセルビルダが供給されるところでは、例えば、多数の異なるキャルセルのページがトランスポートストリームチャネルの中に供給される。
【００５２】
好ましくは、各ストリーム発生器は、トランスポートストリームパケットの中のペイロードを配列してそれらを多重化しトランスポートストリームを形成するマルチプレクサ／パケタイザを備える。
【００５３】
特に、例えば、多数のキャルセルビルダ及び／又は記憶装置から生のデータを伝送するように、データの様々なソースがストリーム発生器の中に供給されるところでは、様々なページがともに多重化され、トランスポートストリームパケットに供給されることが可能である。
【００５４】
好ましくは、ＡＰＩサーバ及び少なくとも１つのストリーム発生器は、情報サーバがオペレーションシステム抽象レイヤを単に変更することによって異なるオペレーションシステムと動作することができるような、複数のオペレーションシステムの１つとインターフェースを行うオペレーションシステム抽象レイヤを備える。
【００５５】
このように、情報サーバは、ＩＲＩＸ、ＬＩＮＵＸ、ＳＯＬＡＲＩＳ、ＷｉｎｄｏｗｓＮＴ等の多数のオペレーションシステムのどの上でも構築される。情報サーバは、Ｃ＋＋のようなプラットホームに基づいているが、オペレーションシステム抽象レイヤを単に変更することによって、情報サーバの構成を変更することなくオペレーションシステムを変更することが可能となる。
【００５６】
好ましくは、ストリーム発生器は、例えば、ドライバ抽象レイヤを変更することによって情報サーバが異なるドライバとともに用いられるような、ＤＶＢエンコーダの複数のドライバの１つとインターフェースを行うドライバ抽象レイヤを備える。
【００５７】
このようにして、ドライバ抽象レイヤを変更することによって、情報サーバの他の部分を変更することなく、ともに情報サーバが用いられるドライバを変更することができる。
【００５８】
【発明の実施の形態】
以下、本発明に係る情報サーバ及びキャルセル情報配列方法を、添付図面を参照して詳細に説明する。
【００５９】
特に、ＤＣＭＣＣデータ及びオブジェクトキャルセルを含むＤＶＢコンプライアントトランスポートストリームを発生させることができ、情報サーバと呼ばれるＤＶＢコンプライアントデータサーバのアーキテクチャが提案されている。さらに、この情報サーバは、ＤＣＭＣＣデータ及びオブジェクトキャルセルが流れ出ていく間に、ＤＣＭＣＣデータ及びオブジェクトキャルセル内のコンテントの動的な更新をサポートする。
【００６０】
図１は、情報サーバ１８が組み込まれたＤＶＢシステムの一部の具体的な構成を示すブロック図である。ここで、情報サーバ１８は、例えばケーブルネットワーク又は地上波ネットワークなど他のＤＶＢネットワーク、また、ＤＶＢネットワークでないネットワークにも組み込むことができる。
【００６１】
プレイアウトセクション２には、例えば、多数のビデオ／オーディオソース４及びライブソース６が組み込まれている。これらのソースからの、例えばＭＰＥＧ２トランスポートストリームパケットの形状のデータは、マルチプレクサ８に供給され、プレイアウトセクション２から出力される。マルチプレクサ８で多重化されたデータのストリームは変調器１０ａに供給されてから例えば人工衛星１２に送信され、人工衛星１２から地上に送信される。この送信された信号は、次に、テレビジョン受像機１６のセットアップボックス１４によって受信される。他の多数の変調器１０ｍ、１０ｎ等からの信号も一緒に人工衛星に送信される。
【００６２】
このシステムでは、情報サーバ１８を供給することも可能である。ビデオ／オーディオソース４及び６と同様に、情報サーバ１８は、ＭＰＥＧ２トランスポートストリームパケットの形状のデータをデータストリームに挿入して送信するためにマルチプレクサ８に供給する。情報サーバ１８は、あらゆる形状のデータの放送に用いられるが、特に、例えばＭＨＥＧ５アプリケーション、ＨＴＭＬページ、Ｊａｖａアプリケーション、ＩＲＤソフトウェアアップグレード、及びデータキャルセル上のＤＣＭＣＣオブジェクトの形状のデータサービスの放送に用いられる。図１に示すように、ホストコンピュータ２０は、情報サーバ１８から出力されるデータのコンテント及び特徴を制御するとともに、情報サーバ１８の動作を制御する。
【００６３】
情報サーバ１８は、エサーネットによるＴＣＰ／ＩＰ等のいくつかの制御ネットワークを用いたホストコンピュータ２０によって制御される。発生されたトランスポートストリームは、エサーネット、ＤＶＢ  ＡＳＩ、ＤＶＢ  ＬＶＤＳ又はＡＴＭ等のストリーミングネットワークによって受信機（ＰＣ、ＳＴＢ等）で再生される。
【００６４】
図２は、情報サーバ１８の全体のアーキテクチャの具体的な構成を示すブロック図である。
【００６５】
ＡＰＩサーバ２２には、ホストコンピュータ２０から制御信号及びデータが供給される。データは、その後の検索のため、記憶装置２４に転送される。ＭＰＥＧ２データストリームを出力するために、少なくとも一つのストリーム発生器２６が設けられている。従って、ＡＰＩサーバは、その動作において、例えば一連の画像データなどのデータを受けとり、これらの画像データを記憶装置２４に転送する。各ストリーム発生器２６は、キャルセルの記述に基づいて、ＡＰＩサーバ２２の制御のもとにデータのストリームを発生する。特に、ＡＰＩサーバ２２は、ホストコンピュータ２０から制御信号を受けとり、ストリーム発生器２６を順番に適切に制御する。後に詳細に説明するが、ストリーム発生器２６は、例えば、キャルセルビルダを備え、記憶装置２４からのデータを正しい順番で伝送する。
【００６６】
ＡＰＩサーバの目的は、ＴＣＰ／ＩＰによってホストコンピュータ（例えばＰＣ）２０に遠隔アクセスが可能なソフトウェアインターフェースを提供するためのものである。ソフトウェアインターフェースは、ＲＰＣプロトコルを用いることによって実現され、情報サーバ１８のユーザにソフトウェアの抽象のセットを提供し、このソフトウェアの抽象のセットは、トランスポートビットストリームから独立しているが、むしろキャルセルによって放送されなければならないコンテントから始まるキャルセルの概念構造にフォーカスするような方法で、ユーザがオブジェクト及びデータキャルセルを決定できる。
【００６７】
さらに、ＡＰＩサーバは、情報サーバ１８のコンテントディスク上にあるコンテントデータを管理する。
【００６８】
アーキテクチャの観点から見ると、ＡＰＩサーバは、ＲＰＣレイヤ及びＡＰＩインプリメンテーションの二つの主なモジュールを含む単一のスレッデッドプロセスとして実現される。ＲＰＣレイヤは、一つ又は多数のホストコンピュータ２０との制御ネットワーク接続を管理する。各接続はセッションと呼ばれる。各セッションは、ホストコンピュータセションからＲＰＣ要求を受け取り、それらの要求をシリアルにし、それらが有効かどうかをチェックし、それらの要求のデータ（アーギュメント）をディマーシャルし、ＡＰＩインプリメンテーションの中の適切なエントリーポイントを呼び出し、ＡＰＩインプリメンテーションから結果（又はエラー）を受け取り、受け取られた結果をＲＰＣ応答にマーシャルし、最後にその応答をホストコンピュータ２０に送り返す。ＡＰＩインプリメンテーションは、情報サーバＡＰＩの機能を実行する機能のセットを供給する。ＡＰＩインプリメンテーションは、コンテントディスクと相互作用し、コンテントディスクに対しデータの読み出し／書き込みを行い、各ＡＰＩコールのアーギュメントの妥当性をチェックする。
【００６９】
ストリーム発生器２６からプレイアウトセクション２のマルチプレクサ８へのストリームの伝送は、多数の異なるフォームを取る。ストリーミングが情報サーバ１８への分離されたユニットとして供給されることが提案されている。よって、ストリーミングは、例えば、ＤＶＡ−ＡＳＩから（ソニーディジタルネットワークソルーションズジャパンから生産されている）ＰＲＩＳＭボード、ＤＶＢ−ＬＶＤＳ、ＡＴＭ又はエサーネットによって選択されている。
【００７０】
情報サーバ１８は、標準の４Ｕ１９インチラックマウントとして供給されることが提案されている。ホストコンピュータ２０と情報サーバ１８の間の制御ネットワークは、例えばエサーネット又はＡＴＭである。
【００７１】
図３は、一つのホストコンピュータ２０が多数のストリームを発生するいくつかの情報サーバ１８を制御する様子を示した説明図である。
【００７２】
図４は、一つのストリーム発生器２６に視点を置いた情報サーバ１８の具体的な構成を示すブロック図である。ＡＰＩサーバ２２は、ＡＰＩ２７がホストコンピュータ２０によってアクセスされるようにするＲＰＣ(Remote Procedure Call)プロトコル２３を有する。ＩＩＯＰはさらにポピュラーになったので、コントロールＡＰＩは、例えばＩＩＯＰとともに実行されることが可能である。このように、ＡＰＩサーバ２２は、遠隔ホストコンピュータ２０からデータ及び制御信号を受けとる。また、ＡＰＩサーバ２２は、オペレーティングシステムアブストラクションレイヤ２５、すなわちＯＳＡＬ２５のもとで実行される。ＯＳＡＬ２５は、情報サーバ１８が多数の異なるオペレーティングシステム上で実行されることを許可するために供給される。特に、情報サーバ１８が異なるオペレーティングシステム上で実行されるように適合させるためには、ＯＳＡＬ２５を変更することが必要である。
【００７３】
ストリーム発生器２６は、未加工のトランスポートストリームデータを出力することが可能である。特に、ＡＰＩサーバ２２のコマンドのもとで、ストリーム発生器２６は、単に記憶装置２４からのデータを検索して、そのコンテントを識別しないで出力する。ところで、ストリーム発生器２６は、例えば、ＤＳＭＣＣオブジェクトキャルセル及びＤＳＭＣＣデータキャルセルなどのキャルセルを構築することができるように意図されている。したがって、ストリーム発生器２６は、少なくとも一つのキャルセルビルダ２８を備える。
【００７４】
図５は、ストリーム発生器２６のスレッドの具体的な構成を示すブロック図である。ストリーム発生器２６は、データ／オブジェクトキャルセルの概念的な記述から始まるトランスポートビットストリームを動的に構築する義務がある。ストリーム発生器２６のアーキテクチャは、多数の同時に実行されるスレッドからなり、具体的には以下のようなスレッドがある。
【００７５】
１、ＳＧメインスレッド４２：このスレッドは、ＡＰＩサーバと通信する義務がある。ＳＧメインスレッド４２は、ＡＰＩサーバからコマンドを受け取り、オブジェクトキャルセルを開始又は停止し、ランニングストリームからキャルセルを落とすか、又はランニングストリームの中のいくつかのコンテントを更新する。さらに、ＳＧメインスレッド４２は、他のスレッドを管理する義務がある。これは、これらのスレッドの開始／停止を含み、これらのスレッドの同期をコントロールする。
【００７６】
２、キャルセルビルダ（ＣＢ）スレッド４４：このスレッドは、オブジェクトキャルセルを構成する（二値の）ＤＳＭＣＣセクションを構築する義務がある。ＣＢスレッド４４は、ＳＧメインスレッド４２からキャルセルの記述を受け取る。いったんＤＳＭＣＣセクションが構築されると、それらはペイロードとしてのＭｕｘスレッド４８に運ばれる（以下を参照）。ＣＢスレッド４４は、ＳＩスレッド４６とも通信し、適切なサービス情報をＳＩスレッド４６で管理されるテーブルに挿入する。
【００７７】
３、ＳＩスレッド４６：このスレッドは、サービス情報（ＳＩ）テーブルを発生及び更新する義務がある。ＳＩスレッド４６は、ＳＩテーブルを構成するＭＰＥＧ２セクションを構築し、このペイロードとしてのＭＰＥＧ２セクションをＭｕｘスレッド４８に送る。現在、ＰＡＴ及びＰＭＴの二つのテーブルがＳＩスレッド４６によって管理されている。ＣＢスレッド４４は、ＣＢスレッド４４からの要求を受け取ってＰＭＴの中のプログラム番号を予約し、キャルセルのＰＩＤを予約し、キャルセルを識別するのに必要なＰＭＴの記述を加えるか削除する。
【００７８】
４、Ｍｕｘスレッド４８：このスレッドは、ＣＢスレッド４４及びＳＩスレッド４６からペイロードを受け取り、このペイロードをＭＰＥＧ２トランスポートストリームパケットの中に多重化する。さらに、このＭｕｘスレッド４８は、物理ディバイスドライバと通信し、物理インターフェースエサーネットＡＳＩ、ＡＴＭによってトランスポートストリームパケットをポンプアウトする。
【００７９】
ストリーム発生器２６の各構成要素（ＳＧメインスレッド４２、ＳＩスレッド４６、キャルセルビルダスレッド４４、Ｍｕｘスレッド４８）は、他のスレッドとともに同時に実行される別個のスレッドである。ＳＩスレッド４６、キャルセルビルダスレッド４４は、「プッシュ」モードの中で働く。これらは、トランスポートビットストリームの一部を計算し、それらを前方のＭｕｘスレッド４８に押し出す。Ｍｕｘスレッド４８は「プル」モードの中で働く。データがＳＩスレッド４６又はキャルセルビルダスレッド４４のいずれかから入手可能となったと同時に、このデータをプルオフしてペイロードをトランスポートストリームパケットの中に多重化することを開始する。
【００８０】
図６は、キャルセルの具体的な構成を示す図である。各キャルセルビルダ２８は、例えば図６に示すように、情報のキャルセルを構築することができる。キャルセルビルダ２８は、一連のＤＳＭＣＣファイルが順番に伝送されるようにトランスポートストリームデータを適切に構築する。例えば、図６に示された各ページは、ＭＨＥＧ又はＨＴＭＬファイル、又はＪａｖａアプリケーションを備える。この結果、このストリーム発生器２６で発生されたストリームは、これらのページの各ページを順番に有する。
【００８１】
キャルセルビルダ２８は、ページからなるメインキャルセルの各ローテーションにおいて、特定のページ自体が一連のサブページを介して回転するようになされるサブキャルセルを構築することができる。
【００８２】
各出力ストリームが多数の異なるキャルセルを有することができるので、多数の異なるキャルセルビルダ２８が供給されてもよい。マルチプレクサ／パケタイザ３０は様々なキャルセルビルダ２８からのデータを出力ストリームの中に配列する。
【００８３】
図４及び図５に示すように、ストリーム発生器２６も、オペレーティングシステム抽象レイヤを用いる。さらに、ストリーム発生器２６は、ドライバー抽象レイヤを用いる。このように、出力ドライバーは、例えば情報サーバ１８の全体の構成を変更することなくオペレーティングシステムとともに変更される。ただ、その代わりに、ドライバーインプリメンテーションを変更する必要がある。
【００８４】
ドライバ３２は、トランスポートストリームデータをＤＶＢエンコーダボードに運ぶ。
【００８５】
各キャルセルビルダ２８は、例えばそれらの独自のデータとともに動作し、マルチプレクサは、トランスポートストリームの様々なキャルセルの間のスケジュールを扱う。
【００８６】
キャルセルビルダ２８は、それら自身のメモリを効果的に所有する。実際に、キャルセルのページを記憶装置２４の中のデータから構成しているので、例えば、これらのページのトランスポートストリームは、例えばキャルセルビルダ２８によって格納される。このように、キャルセルのページがホストコンピュータ２０からのＡＰＩサーバの指示のもとで変更されたとき、全体のキャルセルのデータを再計算する必要はなく、変更されたページのみを再計算する必要がある。一つのページのデータが他のページに依存しているときでさえ、同様に、すべてのページではなく変更を要求するページのみのデータを再計算する必要があるように、依存構造を組み込むことが提案されている。
【００８７】
各キャルセルビルダ２８は、コンテント及びコンテントの記述を読み込み、ＤＳＭＣＣオブジェクトキャルセルを構築し、適切なＤＳＩ、ＤＩＩ、ＤＤＢセクションを用意する。
【００８８】
ＳＩテーブルマネージャ３４は、ＰＡＴ／ＰＭＴセクション、プログラム番号及びＰＩＤを管理する。マルチプレクサ／パケタイザ３０は、セクションをパケットに細長く分割し、分割されたパケットをドライバ３２のスロットの中で構築する。
【００８９】
上述したように、情報サーバ１８は、オペレーティングシステム抽象レイヤＯＳＡＬを有することが好ましい。これは、例えば、オブジェクト指向のＣ＋＋に基づいたクラスライブラリーである。Ｗｉｎｄｏｗｓ９５、ＷｉｎｄｏｗｓＮＴ、ＵＮＩＸ、ＬＩＮＵＸ等の様々なオペレーティングシステムによって提供される本質的なオペレーティングシステムサービスのいくつかを抽象するＡＰＩを供給するＯＳＡＬが提案されている。ＯＳＡＬは、スレッド、セマフォ、ファイル、ディレクトリ、プロセッサ、ファイルシステム独立パス名及びインタープロセスメッセージ要求の抽象を供給することが提案されている。
【００９０】
ＯＳＡＬスレッド抽象は、単一のプロセスのアドレススペース内の実行の独立ユニットの作成及び破棄をサポートする。スレッドスケジューリングは、優先度クラスの離散番号に基づいた単純な優先度体系に続く。
【００９１】
ＯＳＡＬセマフォ抽象は、イントラプロセス、バウンデッド及びアンバウンデッドカウンティングセマフォ及び異なるスレッドの実行状態を同期させるために用いられる関連したＷａｉｔ／Ｓｉｇｎａｌ動作をサポートする。
【００９２】
ＯＳＡＬファイル／ディレクトリ抽象は、単純な仮想ファイルシステムに階層ディレクトリ構造及び読み込み／書き込み／実行ファイル／ディレクトリ許可を供給する。ファイルシステム独立パス名は、異なる物理ファイルシステム機構上にマップされことが可能なオペレーティングシステム独立ネーミング体系を供給する。ファイルを作成／削除、ファイルから／ファイルへバイトシーケンスの読み込み／書き込みをするために、オペレーションが特定のバイト番号の位置に供給され、ファイルのサイズを検索する。ディレクトリからのオペレーションは、成分ファイル／ディレクトリからの作成／削除及び繰り返しを含む。
【００９３】
ＯＳＡＬプロセス抽象は、例えば、アドレススペースの一部であることが必要な仮想アドレススペース及びコード／データセグメントの概念をサポートする。例えば、オペレーションが供給され、プロセスを開始／停止し、その状態（実行、終了）を問い合わせる。
【００９４】
ＯＳＡＬｍキュー抽象は、例えば、バイト指向のファーストインファーストアウトメッセージキューに基づいたインター／プロセス通信を実行する手段を提供する。例えば、オペレーションが供給され、キューからの可変長バイトストリングを入れるか検索し、各キューで入手可能なメッセージ／バイトの全番号をチェックする。
【００９５】
各ＯＳＡＬ抽象は、例えば、異なる強いタイプのＣ＋＋ハンドルクラスによってサポートされる。ハンドルクラスは、オペレーティングシステム抽象上にオブジェクト指向の視覚を供給する。ＯＳＡＬの先頭に書き込まれた強いタイピングアプリケーションのため、ＡＰＩは、ストリンジェントコンパイル時間タイプチェッキングから利益を得る。ハンドルクラスの例は、オペレーティングシステム依存のエンティティを表し、オペレーティングシステムサービスは、ハンドルクラス上の方法として表される。ハンドクラスは、インプリメンテーションがオペレーティングシステム（Ｗｉｎｄｏｗｓ９５、ＷｉｎｄｏｗｓＮＴ、Ｕｎｉｘ）規定である低レベルＡＰＩを用いているので、ハンドクラスのインプリメンテーションは、ＡＮＳＩＣ＋＋規格をサポートするすべてのプラットホームで軽く、能率的でありポータブルである。たいていの場合、低レベルＡＰＩは、ＯＳＡＬによって課されたオーバーヘッドが最小になるように、下位のオペレーティングシステムにサポートされたサービス上に直接マップする。
【００９６】
ＯＳＡＬクラスライブラリ及びＡＰＩは、例えば、ＤＳＭＣＣオブジェクト及びデータキャルセルによってＨＴＭＬ、Ｊａｖａ、ＭＨＥＧ及び他のデータの送付をサポートするＤＶＢ−コンプライアントデータ放送サーバのクロス−プラットホームインプリメンテーションを構築するために用いられる。スレッド抽象は、例えば、（ａ）コンテントデータからＤＳＭＣＣオブジェクトキャルセルビットストリームを発生する多数のスレッド、（ｂ）ＤＶＢサービス情報を発生する専用のスレッド、及び（ｃ）ＤＳＭＣＣセクション及びテーブルデータをトランスポートストリームパケットに多重化するスレッドをサポートするために用いられる。セマフォ抽象は、これらのスレッド間を同期させるために用いられる。ファイル及びディレクトリ抽象は、サーバのファイルシステムの永続的なコンテントへのアクセスを実行するために用いられる。プロセス抽象は、ネットワーク通信専用のプロセス及びサーバから出力されるトランスポートストリームの発生を扱うもう一つのプロセスを実行するために用いられる。ｍｑｕｅｕｅ抽象は、ネットワーキングスタック及びビットストリームの発生の間の通信を実行するために用いられる。ＯＳＡＬクラスライブラリ及びＡＰＩを用いて、データ放送サーバアプリケーションコードは、ＯＳＡＬが現在サポートしている各オペレーティングシステム上に変更されずに流れている。
【００９７】
上述したように、例えば、ストリーム発生器２６は、多数のキャルセルビルダ２８を備えている。一つキャルセルのページが他のキャルセルのページよりも多く伝送されることが望まれる。これを実行するため、マルチプレクサ／パケタイザ３０は、例えば、一つのキャルセルからのトランスポートストリームパケットを他のキャルセルからのトランスポートストリームパケットよりも多く取り入れている。例えば、二つのキャルセルしかなく、一つのキャルセルが他のキャルセルの３倍の重みを有するときで、トランスポートストリームパケットを満たそうとするき、マルチプレクサ／パケタイザ３０は、重みの７５％を一つのキャルセルに割り当て、そのキャルセルからのデータを三つのパケットに満たすとともに他キャルセルからのデータも三つのパケットに満たすようにする。
【００９８】
残念ながら、このシステムは、トランスポートストリームに伝送されたデータの特徴に変更が行われたとき、計算上高価である。例えば、上述した例によれば、すでに用いられている重要性の低いキャルセルと同様の重要性を有する第３のキャルセルが追加されたとき、このシステムは、この三つのキャルセルにそれぞれ伝送時間の６０％、２０％及び２０％を与えられるように再計算されなければならない。言い換えれば、キャルセルの重要性が変更されるか、キャルセルが追加されたり削除されるときは、マルチプレクサ／パケタイザ３０によって実行される比率割り当てを再計算しなくてはならない。
【００９９】
情報サーバ１８の中では、パケットのスケジューリングのため、新しいアルゴリズムが提案される。
【０１００】
図７は、様々なデータソースの重要性を割り当てるデータ配列を示す図である。
【０１０１】
一連の概念的なタイムスロットｔが配列される。配列された各タイムスロットｔは、例えばキャルセル、記憶装置２４からの未加工のデータなどの一又は二以上のデータソースの登録を許可する。各データソースに概念的な周波数に基づいた相対的な優先度を割り当てることによって、様々なデータの優先度が簡単に指定される。
【０１０２】
図７の例の中では、データソース１は優先度４として割り当てられ、よって、四つの概念的なタイムスロットごとに現れる。同様に、データソース２は優先度３として与えられ、データソース３は優先度２として与えられる。マルチプレクサ／パケタイザ３０は、配列に沿って指定されたデータソースの連続に従い、空の観念のタイムスロットをどれも無視して、ＭＰＥＧパケットを作成する。例えば、図７に示すデータソースに従うと、マルチプレクサ／パケタイザ３０は、パケットをデータソース１からのデータで満たし、次にパケットをデータソース２からのデータで満たし、次にパケットをデータソース３からのデータで満たし、次にパケットをデータソース２からのデータで満たし、次にパケットをデータソース３からのデータで満たし、次にパケットをデータソース１等からのデータで満たす。このようにして、データソース１からのデータは、データソース２から４回伝送されるごとに、またデータソース３から６回伝送されるごとに３回伝送される。
【０１０３】
上述したように配列を用いることによって、データソースが追加されるか又は削除されるとき、あるいはデータソースの優先度が変更されたときに、再計算は要求されない。例えば、データソースが削除されたとき、データソース１及び２の間の相対的な優先度は維持される。同様に、例えば、割り当て１のような非常に高い優先度のもとに四つ目のデータソースが伝送されたとき、たとえ以前の半分の周波数でデータソース１、２、３が全て伝送されたとしても、それらの相対的な優先度及び周波数は同じのままである。このように、データオペレーションに優先度を指定するシステムは計算上さらに能率的になる。
【０１０４】
このシステムを上述した情報サーバ１８のストリーム発生器２６で用いることによって、帯域幅を例えば様々なキャルセルビルダ２８のような様々なデータソースに割り当てることが簡単になる。一方、ＣＰＵの中の処理時間を割り当てることも、同様に可能になる。特に、実行を要求する様々なタスクは、帯域幅が割り当てられた方法と同じ方法で優先度が割り当てられる。
【０１０５】
例えば、処理又は帯域幅などのリソースを得る能力は、リソースの相対的なシェアのみだけでなく、最初のアクセスの呼び出し時間にも基づく必要はない。すなわち、いくつかのプロセスは、他のプロセスよりもっと速急にアクションを要求する。例えば、ＣＰＵ処理時間の低い呼び出し時間割り当ては、マルチ−メディアアプリケーションのスムーズな動作を確実にする際に重要である。例えば、ワードプロセシング及びビデオ表示の二つの処理に処理時間の所定の割合が割り当てられたら、ビデオ表示に処理を行うさらに速急のアクセスを与えられることがさらに必要になってくる。
【０１０６】
この必要性を明らかにするため、データ処理であろうがデータ伝送であろうが、例えば、追加のパラメータが各リソース消費者又はデータ動作に割り当てられる。このパラメータは、リソースアクセスの呼び出し時間を決定するために意図されている。
【０１０７】
このようにして、各リソース又はデータオペレーションには、どれを最初に行うかを決定するために多数のリソース顧客が比べられたり、又は同様に、どれを最初に伝送するかを決定するために多数のリソース顧客が比べられたりして、呼び出し時間値が与えられる。上述した情報サーバ１８の場合、できるだけ速く伝送されて受け取られなければならない非常に重要な情報片があるところでは、このデータがマルチプレクサ／パケタイザ３０によってデータストリームの中にできるだけ速く挿入されるように、適切なデータソースに非常に高い呼び出し時間値が与えられる。
【０１０８】
上述したキャルセルビルダ２８の中で、各キャルセルビルダ２８は、それぞれマルチプレクサ／パケタイザ３０に供給するための複数のＤＶＢセクションを構築する。これらのセクションは、その特定のキャルセルビルダ２８のキャルセルを表示するデータを含む。情報サーバ１８又はキャルセルビルダ２８自身がキャルセルの中のページの一、又は二以上を変更するか又は交換することができるということが望まれている。ところが、上述したように、キャルセルビルダ２８が記憶装置２４の中のデータから適切なキャルセルをいったん構築したとき、そのデータは、再計算されないで循環伝送のためにただ単に格納される。キャルセルの中のページ又はファイルを変更するために、そのキャルセルの全てのデータを再計算することは可能である。ところが、新しいキャルセルが伝送される前は、好ましくない遅延となる。
【０１０９】
図８は、キャルセルビルダ２８によって行われたデータ変更の処理を示す図である。データファイルは、ＤＳＭＣＣオブジェクトキャルセルの一部としてのＢＩＯＰを作成するため、これらのデータファイルに追加されたヘッダを有する。これらのデータファイルは、次に、一諸にグループ化されＤＳＭＣＣデータキャルセルのモジュールを作成し、これらのモジュールは、次に、マルチプレクサに順番に送られるようにＤＶＢセクションに分割される。
【０１１０】
明らかなことであるが、ファイル１が変更されたとき、後に作成されるモジュール及びセクションとともに、ＢＩＯＰファイル１も同様に変更される。ところが、ファイル２及び３のＢＩＯＰは、変更されないままになる。したがって、ファイル１への変更のあと、キャルセルビルダ２８がファイル２及び３のＢＩＯＰを再計算する必要がなくなる。
【０１１１】
キャルセルビルダ２８が不必要な再計算を避けるようにするため、依存機構が提案されている。この機構を用いることによって、更新を例えばファイルディレクトリ等の成分に用いることによって、ＤＳＭＣＣオブジェクトキャルセルのビットストリーム表示を速く更新することができる。
【０１１２】
依存構造は、一連のノード及びポインタによってキャルセルビルダ２８の中に配列される。特に、依存ネットワークは、二種類のエンティティ、すなわち（ａ）コンテント参照と呼ばれるポインタをＤＳＭＣＣオブジェクトキャルセルのビットストリーム表示の特定のサブパートに格納する依存ノード、及び（ｂ）他のセットのコンテント参照を計算するために一つのコンテント参照のセットがどのように用いられるかを示す依存リンク、からなる。依存ノード自身は二つのタイプからなり、すなわち、（１）ＤＳＭＣＣオブジェクトキャルセルの成分（すなわち、ＤＳＭＣＣファイル及びディレクトリオブジェクト）へのコンテント参照を含む主要ノード、及び（２）他のノードのコンテント参照への変換を含む計算されたノード、からなる。変換は、一つのセットのコンテント参照に応用され、ＤＳＭＣＣオブジェクトキャルセルビットストリームの新しいパートを指す新しいコンテント参照のセットになる。
【０１１３】
キャルセルビルダ２８が適切なデータを構築したとき、ＤＳＭＣＣオブジェクトキャルセルビットストリーム（たとえば、モジュール）の一片がどのようにしてビットストリームの他の一片（例えば、同モジュールの圧縮されたモジュール）に達するかを示すために、依存リンクが記憶される。依存リンクは、依存ネットワークの計算されたノードによって変換が実行されたときに確立される。特に、依存ノードの変換が他のノード（主要ノード又は計算されたノード）に関連したコンテント参照を用いた場合、用いられたノードと変換を計算するノードの間で依存が確立される。依存リンクは、用いられたノードに関して記憶され、依存リンクのために用いられたノードを示す。
【０１１４】
依存リンクは、オブジェクトキャルセルの成分が変化したとき、すなわち主要ノードのデータが変化したとき、新しいビットストリームを計算するために、依存機構が再び応用することが必要な変換のセットを速く決定することを許可する。
【０１１５】
更新が行われると、ＤＳＭＣＣファイル及びディレクトリオブジェクトのいくつかが変更される。この結果、これらの変更に関連している主要ノードが変更される。変更が起こったこれらの主要ノードのために、これらの主要ノードに関連した依存リンクが続き、その結果のあらゆる計算されたノードをマークする。計算されたノードが届いたところでは、その計算されたノードの依存リンクが用いられてさらに計算されたノードに向かって再び前進する。このようにして届いた全ての計算されたノードは、前方のあらゆる依存リンクとともにクリアされる。この結果、依存ネットワークは、あるリンクされ計算された空のノードを有する。よって、キャルセルビルダ２８は、現在空のこれらの計算されたノードのもとの計算処理を繰り返す。この結果、計算されたノードがコンテント参照の新しいセットを再計算するためにそれらの変換を再び適用するとき、依存ノードがそれらが参照したノードから再び確立される。
【０１１６】
主要ノードが変更されないか、又は計算されたノードが削除されないとき、その結果の計算されたノードは、変更されていない主要の又は計算されたノードを単に参照する。このように、計算されたノードが変更されていない主要の計算されたノードをただ参照するとき、それは、変換を再び適用することなく直接用いられる。結果が依存するコンテント参照が変更されない限り、結果は、それを再計算する必要なく更新されたビットストリームの中で直接再び用いられる。更新によって影響されないキャルセルの一部がすでに依存ネットワークの中に格納されているので、依存ネットワークはＤＳＭＣＣオブジェクトキャルセルのコンテントを速く更新することを許可する。
【０１１７】
このようにして、依存機構は、オブジェクトキャルセルを構成するＤＳＭＣＣセクションのビットストリーム表示を構築するのに用いられる。ビットストリーム表示は、異なるセクションを指すコンテント参照のリストからなる。コンテント参照は、ＤＳＭＣＣセクションをＭＰＥＧトランスポートストリームにパケット化するマルチプレクサに送られる。この機構は、ＤＳＭＣＣオブジェクトキャルセルの成分部（すなわち、ファイル及びディレクトリ）が変化したとき、変更されたＤＳＭＣＣセクションを再計算するのに用いられる。この技術をＤＳＭＣＣデータキャルセルに適用することも可能である。
【０１１８】
図９は、データ伝送の依存構造を示す図である。特に、主要ノードｎ４を変更し、依存リンクを参照することによって、計算されたノードｎ７のコンテントが変更されなければならないことは明らかである。計算されたノードｎ７の依存リンクを参照することによって、計算されたノードｎ８のコンテントが変更されなければならないことも明らかである。削除された計算されたノードｎ７及びｎ８のコンテントとともに、また、新しいコンテント参照を含む主要ノードｎ４とともに、計算されたノードｎ７は主要ノードｎ４及びｎ５のコンテント参照を用いることによって再計算される。計算されたノードｎ８のコンテント参照は、計算されたノードｎ６及びｎ７のコンテント参照から再計算される。このプロセスの中で、計算されたノードｎ６のコンテント参照を再計算する必要がないことがわかる。
【０１１９】
情報サーバ１８の各ストリーム発生器２６のために、トランスポートストリームによって伝送されるＤＳＭＣＣファイルオブジェクトを更新する際、いくつかの柔軟性をさらに供給することが好ましい。
【０１２０】
上述したように、このストリーム発生器２６は、一又は二以上のキャルセルビルダ２８と、結果として生じるＭＰＥＧトランスポートストリームを構築するマルチプレクサ／パケタイザ３０とを備える。さらに、依存ネットワークは、ペイロードと呼ばれ、ＤＳＭＣＣレベルでビットストリームを構築するＤＳＭＣＣオブジェクトキャルセルの要求されるＤＳＭＣＣセクションを計算するプロセスの中に組み込まれる。
【０１２１】
ＤＳＭＣＣファイルオブジェクトの「ホット挿入(hot insertion)」を供給することが望まれている。これは、ＤＳＭＣＣファイルオブジェクトの放送ビットストリームの中へのできるだけ速い帯域外挿入である。
【０１２２】
上述したように、ＤＳＭＣＣオブジェクトキャルセルの要求されるＤＳＭＣＣセクションがキャルセルのために計算されると、それらはただ単に記憶され、循環して再伝送される。ＤＳＭＣＣレベルビットストリームは、それから再計算されなければならないので、ＤＳＭＣＣファイルオブジェクトをただ単にキャルセルのオブジェクトの中にホット挿入することは望まれていない。一方、ＤＳＭＣＣセクションをすでに確立されたビットストリームにホット挿入することはＤＳＭＣＣキャルセルの伝送を堕落させることになる。
【０１２３】
マルチプレクサは、計算されたペイロードのリストを介して繰り返しループし、ペイロードを伝送のためにＭＰＥＧ２トランスポートストリームパケットの中に動的にチョップアップする。ＤＳＭＣＣファイルオブジェクトの「ホット挿入」を許可するため、オブジェクトキャルセルのＤＳＭＣＣセクションの完全なセットのペイロードリストの中で「挿入点」が決定される。これらの「挿入点」は、マルチプレクサが帯域外のＤＳＭＣＣファイルオブジェクトのための追加のペイロードを安全に挿入することができるマーカーである。
【０１２４】
よって、帯域外更新のペイロードが計算され、マルチプレクサに送られる。マルチプレクサは、次の利用可能なマークされた挿入点を待ち、そして帯域外ペイロードを挿入する。これによる効果は、コンテントに干渉することなく残りのキャルセルデータの伝送を送らせることである。
【０１２５】
上述したように、一つのＤＳＭＣＣファイルオブジェクトの循環更新を供給することも好ましい。言い換えれば、キャルセル放送のすべてのラウンドで、例えば、特定のＤＳＭＣＣファイルの異なるバージョンが伝送されてもよい。
【０１２６】
上述した依存ネットワークに関しては、循環更新は、ＤＳＭＣＣオブジェクトの各バージョンのペイロードを計算するのに用いられる依存ネットワークの中の分離されたノードを有することによって達成される。ペイロードの完全なリストはマルチプレクサに示されるが、このリストは、オブジェクトキャルセルの次のサイクルの中でマルチプレクサが要求するときはいつも、次のペイロード値を送るように内部で機構化される。キャルセルの各ラウンドのためのＤＳＭＣＣオブジェクトの更新バージョンを計算するより、ポインタは単に適切なペイロードを示すので、この機構は非常に効果的である。
【０１２７】
放送順番、放送周波数及びホット更新に関連するＤＳＭＣＣファイルオブジェクトの選択は、ユーザによって実行されることが好ましい。このため、データは以下に示したテーブルによる方法で入力されることが好ましい。
【０１２８】
【表１】
0004460702.tif 000002
【０１２９】
表１からわかるように、テーブルは三つの列からなる。最初の列は、放送の受信者によって取り扱われるので、ＤＳＭＣＣファイルオブジェクトの参照名をリストしている。参照名の完全なリストは、受信者が操作する仮想名スペースからなる。第２の列は、参照名によって参照されたアイテムの属性を規定する。三つの属性、すなわち正常、循環及び即時を提供することが提案されている。これらは、以下に示される。第３の列は、フルネームのリスト、言い換えれば物理ファイルネームを規定する。
【０１３０】
属性の「ノーマル(normal)」は、参照ページが常にリストされたファイルを出力することを意味している。一方、「サイクリック(cyclic)」の属性に関しては、テーブルは、キャルセルの各サイクルの中で、そのページのためにリストされた次のフルネームが含まれるように、二つつ以上のフルネームを有する。属性の「イミディイット(immediate)」は、そのページのために一つのファイルが伝送される点で「ノーマル」と同じ効果を有する。一方、そのページのために更新が受信されたあとすぐに参照ページが属性の「イミディイット」を有するところでは、そのページは「ホット挿入」として挿入されるがキャルセルの中の正常な位置まで再び現れない。
【０１３１】
以上の例では、キャルセル構成テーブルは、ページ１、ページ２、ページ３の名前の３ページから構成される論理キャルセルを決定する。放送の順序は、第１の列によって決定され、すなわちページ１−ページ２−ページ３−ページ２、そしてページ１に戻る。しかしながら、キャルセルの各サイクルの循環ページのために、フルネームのリストからの次の項目である（第３の列が取られる）。よって、コンテントの観点からみると、キャルセルの順序は、／スポーツ／イントロ−／ニュース／アイテム１−／ギャンブリング／ホース−／ニュース／アイテム５−／スポーツ／イントロ−／ニュース／アイテム２−／ギャンブリング／ホース−／ニュース／アイテム６−／スポーツ／イントロ−／ニュース／アイテム３−／ギャンブリング／ホース−／ニュース／アイテム５−／スポーツ／イントロ−／ニュース／アイテム４−／ギャンブリング／ホース−／ニュース／アイテム６となる。
【０１３２】
キャルセル構成テーブルのデータの入力に続き、適切なキャルセルビルダ２８は、上述した依存ネットワークに応じて、要求されるＤＳＭＣＣセクションを計算する。特に、参照名によって決定されるページは主要ノードとしてセットアップされる。一つのページが循環と決定されるところでは、キャルセルビルダ２８は、循環の各オブジェクトに対応して同様の重複ページをセットアップする。キャルセルビルダ２８は、そのページの適切なモジュールを計算する。好ましくは、そのモジュールを計算する際、各サイクルで、再計算が最小に保たれるように同様の循環ページが分離したモジュールに割り当てられる。「イミディイット」の属性を有する同様のページは分離したモジュールに割り当てられ、必要なとき挿入を容易にする。
【０１３３】
【発明の効果】
以上の説明から明らかなように、本発明に係る情報サーバ及びキャルセル情報配列方法によれば、キャルセルを用いて多数の異なるデータファイルを次々と伝送するする際、全体のトランスポートストリームを混乱させないで追加ペイロード情報を挿入することのできる。
【図面の簡単な説明】
【図１】本発明が適用された放送ネットワークを示す図である。
【図２】本発明が適用された情報サーバのプレイアウトセクションを示す図である。
【図３】本発明が適用された情報サーバの配列を示す図である。
【図４】本発明が適用された情報サーバを示す図である。
【図５】本発明が適用された情報サーバを示す図である。
【図６】本発明が適用されたオブジェクト／データキャルセルを示す図である。
【図７】データオペレーションに優先度を割り当てる概念的なタイムスロットの配列を示す図である。
【図８】ファイルからのＤＶＢセクションの構築を示す図である。
【図９】データ伝送の依存構造を示す図である。
【符号の説明】
２２  ＡＰＩサーバ、２３  ＲＰＣ、２４  記憶装置、２５  ＯＳＡＬ、２６ストリーム発生器、２７  ＡＰＩ、２８  キャルセルビルダ、３０  マルチプレクサ／パケタイザ、３２  ドライバ、３４  ＳＩテーブルマネージャ、
【図１】
0004460702.tif 000003
【図２】
0004460702.tif 000004
【図３】
0004460702.tif 000005
【図４】
0004460702.tif 000006
【図５】
0004460702.tif 000007
【図６】
0004460702.tif 000008
【図７】
0004460702.tif 000009
【図８】
0004460702.tif 000010
【図９】
0004460702.tif 000011