(57)【要約】【課題】サーバーコンピュータがデータストリームを連続的に発生する分散コンピューティングシステムを提供すること。【解決手段】販売のため現在提供されているとしてアイテムとアイテム識別子とを表示又は説明する情報を含むアイテムのデータをサーバーから受信するデータ受信機と、アイテムのデータの少なくとも一部をユーザに提示するデータ処理システムと、ユーザにより実行される１つのアクションに係る制御イベントを検出するイベント検出手段と、クライアントの永久メモリからユーザのパーソナル情報を抽出し、サーバーからデータストリームを介し以前に受信したアイテムのデータと、クライアントの永久メモリに以前に格納されたユーザのパーソナル情報とを合成し、アイテムの注文を生成及び送信して応答するイベント処理モジュールとを有するコンピュータシステムが提供される。【選択図】図４
2011028759.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのクライアントと少なくとも１つのサーバーとを含む分散計算システムを使用したアイテムの発注を実現する方法であって、
販売のため現在提供されているとして前記アイテムと前記アイテムを特定するアイテム識別子とを前記クライアントを介し表示又は説明する情報を含む前記アイテムのデータを、前記サーバーからのデータストリームを介し受信するステップと、
前記アイテムのデータの少なくとも一部をユーザに提示するステップと、
前記アイテムのデータの少なくとも一部の提示に応答して、前記ユーザにより実行される１つのアクションに係る制御イベントを受信するステップと、
前記１つのアクションに対して、前記クライアントの永久メモリから前記ユーザのパーソナル情報を抽出し、前記サーバーから前記データストリームを介し以前に受信した前記アイテムのデータと、前記クライアントの永久メモリに以前に格納された前記ユーザのパーソナル情報とを合成し、前記アイテムの注文を生成し、前記クライアントから前記アイテムの注文を送信することによって応答するステップと、
を有する方法。
【請求項２】
前記１つのアクションは、１つのボタンの選択と、テレビのリモコン上の１つのボタンの押下とを含む群の１つである、請求項１記載の方法。
【請求項３】
前記ユーザに関するパーソナル情報は、ユーザの名前、アドレス、支払い方法及び支払口座番号を含む群の少なくとも１つを含む、請求項１記載の方法。
【請求項４】
前記ユーザに関するパーソナル情報は、前記クライアントのメモリに格納される、請求項１記載の方法。
【請求項５】
前記分散計算システムは、インタラクティブテレビシステムであり、
前記アイテムの表示又は説明は、少なくとも部分的にはテレビ信号による、請求項１記載の方法。
【請求項６】
前記クライアントは、補助データプロセッサと、クライアントコンピュータとを有する、請求項１記載の方法。
【請求項７】
前記クライアントは、少なくともセットトップボックスに関連付けされ、
前記ユーザに関するパーソナル情報は、前記セットトップボックスに格納される、請求項１記載の方法。
【請求項８】
前記セットトップボックスは、ローカルコンピュータと関連付けされるストレージと通信し、
当該方法はさらに、前記ローカルコンピュータ及び前記関連付けされるストレージとの１以上から情報を抽出するステップを有する、請求項７記載の方法。
【請求項９】
当該方法はさらに、前記ローカルコンピュータを使用して前記クライアントを制御するステップを有する、請求項８記載の方法。
【請求項１０】
前記ローカルコンピュータは、ローカルエリアネットワークの一部である、請求項８記載の方法。
【請求項１１】
前記分散コンピュータシステムはさらに、前記サーバーと通信する中央処理装置を有し、
当該方法はさらに、前記クライアントから前記中央処理装置に前記注文を処理するのに使用される情報を送信するステップを有する、請求項１記載の方法。
【請求項１２】
前記クライアントにおいて注文確認を受信するステップをさらに有する、請求項１記載の方法。
【請求項１３】
前記中央処理装置を介し前記クライアントと前記サーバーとの間で情報を通信するステップをさらに有する、請求項１１記載の方法。
【請求項１４】
電話システムが、前記中央処理装置として機能する、請求項１３記載の方法。
【請求項１５】
前記アイテムのデータは、コードとコマンドとを含む識別子群の少なくとも１つを含む、請求項１記載の方法。
【請求項１６】
前記データストリームを介し前記サーバーから前記アイテムのデータを受信するステップは、前記アイテムのデータをテレビ信号を介し受信することを含む、請求項１記載の方法。
【請求項１７】
アイテムを発注するためのコンピュータシステムであって、
販売のため現在提供されているとして前記アイテムと前記アイテムを特定するアイテム識別子とを表示又は説明する情報を含む前記アイテムのデータを、サーバーからのデータストリームを介し受信するデータ受信機と、
前記アイテムのデータの少なくとも一部をユーザに提示するデータ処理システムと、
前記アイテムのデータの少なくとも一部の提示に応答して、前記ユーザにより実行される１つのアクションに係る制御イベントを検出するイベント検出手段と、
前記１つのアクションに対して、前記クライアントの永久メモリから前記ユーザのパーソナル情報を抽出し、前記サーバーから前記データストリームを介し以前に受信した前記アイテムのデータと、前記クライアントの永久メモリに以前に格納された前記ユーザのパーソナル情報とを合成し、前記アイテムの注文を生成し、前記クライアントから前記アイテムの注文を送信することによって応答するイベント処理モジュールと、
を有するコンピュータシステム。
【請求項１８】
前記１つのアクションは、１つのボタンの選択と、テレビのリモコン上の１つのボタンの押下とを含む群の１つである、請求項１７記載のシステム。
【請求項１９】
前記ユーザに関するパーソナル情報は、ユーザの名前、アドレス、支払い方法及び支払口座番号を含む群の少なくとも１つを含む、請求項１７記載のシステム。
【請求項２０】
前記ユーザに関するパーソナル情報は、前記クライアントのメモリに格納される、請求項１７記載のシステム。
【請求項２１】
当該コンピュータシステムは、インタラクティブテレビシステムであり、
前記データ処理システムによる前記アイテムの表示又は説明は、少なくとも部分的にテレビ信号を利用して実行される、請求項１７記載のシステム。
【請求項２２】
前記クライアントは、少なくともセットトップボックスに関連付けされ、
前記ユーザに関するパーソナル情報は、前記セットトップボックスに格納される、請求項１７記載のシステム。
【請求項２３】
前記セットトップボックスは、ローカルコンピュータ及び関連付けされるストレージと通信し、
前記クライアントは、前記ローカルコンピュータと前記関連付けされるストレージとの１以上から情報を抽出する、請求項２２記載のシステム。
【請求項２４】
前記ローカルコンピュータは、前記クライアントを制御する、請求項２３記載のシステム。
【請求項２５】
前記ローカルコンピュータは、ローカルエリアネットワークの一部である、請求項２３記載のシステム。
【請求項２６】
前記サーバーと通信する中央処理装置を有し、
前記クライアントは、前記中央処理装置に前記注文を処理するのに使用される情報を送信する、請求項１７記載のシステム。
【請求項２７】
前記サーバーは、前記注文を確認するため、前記ユーザに注文確認を送信する、請求項２６記載のシステム。
【請求項２８】
前記中央処理装置は、前記クライアントと前記サーバーとの間で情報を通信する、請求項２６記載のシステム。
【請求項２９】
電話システムが、前記中央処理装置として機能する、請求項２８記載のシステム。
【請求項３０】
前記データ受信機は、前記ユーザが、前記クライアントに関する前記１つのアクションによって前記アイテムを注文することを可能にする情報を含むデータを受信する、請求項１７記載のシステム。
【請求項３１】
前記データ受信機は、前記データから前記表示又は説明するための情報を抽出する補助データ抽出手段と、前記データから前記可能にする情報を抽出するパケットデータ抽出手段とを含む、請求項３０記載のシステム。
【請求項３２】
前記補助データ抽出手段は、前記表示又は説明するための情報を前記データ処理システムに提供し、
前記パケットデータ抽出手段は、前記可能にする情報を前記クライアントに提供する、請求項３１記載のシステム。
【請求項３３】
前記アイテム識別子は、コードとコマンドとを含む識別子群の少なくとも１つを含む、請求項１７記載のシステム。
【請求項３４】
前記データストリームは、テレビ信号の形式である、請求項１７記載のシステム。
【請求項３５】
マシーンにより実行されると、少なくとも１つのクライアントと少なくとも１つのサーバーとを含む分散計算システム内でアイテムの発注を前記マシーンに実現させる命令シーケンスを実現するマシーン可読媒体であって、
前記アイテムの発注は、
販売のため現在提供されているとして前記アイテムと前記クライアントが前記アイテムを特定するのを可能にするアイテム識別子とを前記クライアントを介し表示又は説明する情報を含む前記アイテムのデータを、前記サーバーから受信するステップと、
前記アイテムのデータの少なくとも一部を提示するステップと、
前記アイテムのデータの少なくとも一部の提示に応答して、前記ユーザにより実行される１つのアクションに係る制御イベントを受信するステップと、
前記１つのアクションに対して、前記クライアントの永久メモリから前記ユーザのパーソナル情報を抽出し、前記サーバーから前記データストリームを介し以前に受信した前記アイテムのデータと、前記クライアントの永久メモリに以前に格納された前記ユーザのパーソナル情報とを合成し、前記アイテムの注文を生成し、前記クライアントから前記アイテムの注文を送信することによって応答するステップと、
を実行することにより実現されるマシーン可読媒体。
【請求項３６】
当該媒体は、大容量記憶装置を含む、請求項３５記載のマシーン可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はクライアントサーバー分散コンピュータシステムに関する。かかるコンピュータは放送マルチメディア分野に適用される。
【背景技術】
【０００２】
初期のコンピュータシステムは、一般的にメインフレームコンピュータからなるスタンドアロン・システムである。その後、数台のメインフレームコンピュータが多数のタイムシェアリング利用者による多量のコンピューティングジョブを処理するため密接に結合又はクラスター化された。パーソナルコンピュータの出現と共に、多数の比較的低性能のスタンドアロン・コンピュータシステムはその利用者によって直接制御されるようになった。次いで、かかる多数のパーソナルコンピュータは、個々のパーソナルコンピュータの利用者と、かかる利用者と既存のメインフレームコンピュータとの間に共有資源及び通信機能を提供するコンピュータネットワークに結合された。
【０００３】
上記のネットワークの一形態には、一般的に大容量記憶装置を有するサーバーと呼ばれる中央コンピュータが含まれる。ネットワーク利用者によって使用されるプログラムはサーバー上の大容量記憶装置に集中的に記憶される。利用者がプログラムの実行を望む場合に、利用者のコンピュータはサーバーから上記プログラムの複製が送られることを要求する。かかる要求に応じて、サーバーはプログラムの複製をその大容量記憶装置から上記利用者のパーソナルコンピュータの主メモリに転送し、そのパーソナルコンピュータ上でプログラムが実行される。データもサーバーに集中的に記憶され、ネットワーク上の全ての利用者により共有される。上記データはサーバーの大容量記憶装置に記憶され、要求に応じて全てのネットワーク利用者によるアクセスが許可される。かかるサーバーは、ネットワーク利用者間のメッセージ（電子メール）の通信の中枢としても機能する。かかるシステムのサーバーは、プログラム、データ及びメッセージの記憶と配布を取り扱うが、利用者の実際のコンピューティングタスクに対する処理機能には全く関与しない。即ち、利用者は、パーソナルコンピュータ上で実行される何れかの処理タスクがサーバーコンピュータによって実行されることは期待し得ない。かかるネットワークは価値のある機能を実行するが、相互接続されたコンピュータが唯一のコンピュータタスクを実行するため協働する分散コンピューティングシステムではない。
【０００４】
かかるネットワークを改良するため、ネットワーク上の利用者がサーバー又はネットワークに接続された他のパーソナルコンピュータでプログラムを実行することを要求し得るようにネットワークを構成することができる。これは、要求元から離れたコンピュータ（サーバー又は他のパーソナルコンピュータ）が要求元からの要求に応じてプログラムを実行するので遠隔実行と呼ばれる。かかるシステムにおいて、遠隔実行が要求されたプログラムは、要求元から遠隔コンピュータに送られるか、或いは、遠隔コンピュータの要求に応じてサーバーから取り出される。プログラムは受けられると実行される。この方法により、コンピューティング機能を実行する際に協働するよう数台のコンピュータを組み込むことが可能である。
【０００５】
近年、単一のコンピューティング機能を実行するために必要な実際のコンピューティングタスクを分散させるプログラムが知られている。例えば、データベースがサーバーの大容量記憶装置に記憶されているようなデータベースのプログラムにおいて、利用者がデータベースの問い合わせを要求する際に、上記利用者のパーソナルコンピュータ上のデータベース管理プログラム部は、サーバーに送られる問い合わせ要求を発生する。サーバー上のデータベース管理プログラム部は、問い合わせ処理を実行、例えば、問い合わせ要求を解析し、問い合わせ要求において指定されたデータがその大容量記憶装置のどの場所に存在するかを位置決めし、そのデータにアクセスし、得られた結果をネットワークを介して要求元のパーソナルコンピュータに送り返す。次いで、パーソナルコンピュータ上のデータベース管理プログラム部はサーバーから受けたデータを処理、例えば、そのデータをフォーマット化し、スクリーン上に表示又はプリンタに印刷する。サーバーが上記問い合わせ要求を処理している間に、パーソナルコンピュータは自由に他の処理を実行し、パーソナルコンピュータが問い合わせ要求を発生し、サーバーから受けた得られたデータを処理する間に、サーバーは自由に他のパーソナルコンピュータからの問い合わせ要求を処理する。
【０００６】
さらに、別の種類のプログラムがクライアントサーバーコンピューティングと呼ばれる上記の形の分散コンピューティングに適合する。パーソナルコンピュータとサーバーとの間で処理タスクを共有することにより、ネットワークに及ぶ全体のコンピューティング性能は改善される。上記のクライアントサーバコンピュータシステムと、遠隔実行ネットワークは、数台のコンピュータ（サーバー及び／又は夫々の周辺コンピュータ）が、例えば、データベース管理の如くのコンピューティング機能を実行するため協働するので分散コンピューティングシステムと呼んでもよい。
【０００７】
近年、放送マルチメディア番組、より詳細には双方向テレビジョン（ＴＶ）番組が提案されている。双方向ＴＶ番組は、テレビジョン番組の視聴者がその番組と対話し得るようにする。双方向ＴＶシステムにおいて、中央放送局（ＴＶネットワーク、ローカルＴＶスタジオ、ケーブルシステム等）は、サーバーコンピュータに対応し、ＴＶ（ビデオ及びオーディオ）信号と同時に放送されるべき双方向ＴＶ番組に関係する信号を発生する中央コンピュータを有する。かかる信号は双方向ＴＶ番組を表わすデータを搬送し、視聴者の対話を制御するためのコマンド、実行可能なプログラムコード及び／又はデータを含むことがある。各視聴者局は、クライアントコンピュータに対応し、中央コンピュータからコマンドと、実行可能なコード及び／又はデータを受け、実行可能なコードを実行し、受けたデータを処理し、利用者からの入力を受け、ＴＶスクリーンにより利用者にデータを提供する。利用者からの入力は、放送局においてコンピュータに送り返され、利用者は双方向ＴＶ番組と対話し得るようになる。
【０００８】
1990年10月23日にハーベイ(Harvey)他に発行された米国特許第４９６５８２５号「信号処理装置及び方法」には双方向ＴＶシステムが記載され、ここで、中央放送局は、例えば、視聴者局のコンピュータシステムで受信するためのテレビジョン信号の垂直ブランキング間隔にコマンド、実行可能なコード及びデータを搬送する信号を含める。視聴者局のコンピュータは、上記コマンド、コード及びデータを取得し、データを処理し、利用者と対話するため上記コードを実行する。かかるシステムは、利用者コンピュータが双方向ＴＶ番組に取り込まれ中央局によって制御される上述の分散コンピュータシステムの遠隔実行機能と同等である。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
上述の全てのシステムにおいて、中央コンピュータは、ネットワークを介してそれに接続された周辺コンピュータを制御し、又は、そこからの要求に応答する。即ち、周辺コンピュータ（パーソナルコンピュータ）は、プログラムの遠隔実行を要求し、別のコンピュータからのファイル又はメッセージを要求し、或いは、別のコンピュータに問い合わせ要求を送る。要求に応答するときだけ、別のコンピュータは、例えば、遠隔実行、要求されたファイル、メッセージ又は検索データの如くの応答を発生する。その上、サーバーが別の記憶装置としてのみ機能するか、或いは、精々コンピューティングタスクの一部を共有する場合に、一般的に、周辺コンピュータは所望のプログラムを完全に、或いは、略完全に実行するため必要な全ての資源を有することが必要とされる。
【００１０】
本発明人は、サーバーコンピュータがデータストリームを連続的に発生する分散コンピューティングシステムを提案する。
【課題を解決するための手段】
【００１１】
上記データストリームはそれを受けるクライアントコンピュータに対し大容量記憶装置として機能する。かかるデータストリームは、実行可能なコード及びデータを含むクライアントコンピュータが参加する分散コンピューティングアプリケーションを表わすデータを繰り返し含む。高速かつ一方向の通信路を含むトランスポート機構はサーバーからクライアントにデータストリームを搬送する。上記クライアントはデータストリームを受け、分散コンピューティング表示データを取得し、分散コンピューティングアプリケーションを実行する。
【００１２】
本発明の原理によれば、分散コンピュータシステムは、分散コンピューティングアプリケーションを表わすデータを繰り返し含む連続的なデータストリーム源と、上記データストリームを受け、上記データストリームから分散コンピューティングアプリケーション表示データを取得し、取得された分散コンピューティングアプリケーションを実行するクライアントコンピュータとからなる。
【００１３】
本発明の分散コンピューティングシステムによれば、クライアントコンピュータ装置は、全部のプログラムを実行するため必要な全ての資源、特に、主メモリ及び大容量記憶装置を有する必要はない。或いは、大容量記憶装置は上記データストリームが大容量記憶装置の機能を提供するので必要ではなく、主メモリの必要量は、メモリに記憶される必要があるのは現在実行中のプログラム部だけであるので大きくはない。現在実行中の部分が終了すると、メモリ空間は解放され、次の実行部はデータストリームから取得され、その部分の実行が開始される。
【００１４】
その上、本発明による分散コンピューティングシステムは、クライアントコンピュータの利用者が分散コンピューティングタスクに加わる選択の自由を与える。参加を望む場合、クライアントコンピュータは、前述の如く、分散コンピューティングアプリケーションを表わすデータを取得し、分散コンピューティングアプリケーションを実行する。参加を望まない場合、データストリームは単に無視され、利用者により所望される処理が実行されるか、或いは、何も実行されない。かかる分散コンピューティングシステムによれは、参加するクライアントコンピュータの各々は、何時でも分散コンピューティング機能に参加することが可能であり、それ自体のコンピューティング機能を実行する際にそれ自体のペースで進めることができる。
【発明の効果】
【００１５】
本発明による分散コンピューティングシステムは、特に、双方向ＴＶアプリケーションに適する。その理由は、視聴者は何時でも双方向ＴＶチャンネルに合わせることが可能であり、必要であれば何時でも対話に参加することができ（或いは、全く参加しなくてもよく）、全視聴者は夫々の異なるペースで処理し得るからである。これにより、双方向のコマーシャルがそれ自体の実行可能なコードとデータと共に双方向番組に表わされるとき、或いは、視聴者がチャンネルの切換えを望むとき、特に有利な環境が得られる。
【図面の簡単な説明】
【００１６】
【図１】本発明による分散コンピューティングシステムのブロック図である。
【図２】図１に示すサーバーコンピュータのブロック図である。
【図３】図１に示す分散コンピューティングシステムのサーバーコンピュータにより処理されたデータを示すタイミングチャートである。
【図４】図１に示すクライアントコンピュータのブロック図である。
【発明を実施するための形態】
【００１７】
図１は本発明による分散コンピューティングシステムのブロック図である。同図において、場合によっては大規模なコンピュータシステムを含むサーバーコンピュータ１０は、トランスポート機構３０を介して複数のクライアントコンピュータ２０に接続される。上記サーバーコンピュータ１０は、図１に示す４台以上のクライアントコンピュータ２０に接続されてもよく、複数のクライアントコンピュータ２０は地理的に広範囲に散在していてもよい。クライアントコンピュータ２２はローカルコンピュータ４０、補助データ処理装置５０及び中央処理装置６０と双方向に接続される。中央処理装置６０は図１に示すサーバーコンピュータ１０以外の装置に接続されてもよい。ローカルコンピュータ４０は大容量記憶装置７０に更に双方向に接続される。クライアントコンピュータ２２は、表示スクリーン又は他の出力装置（図示せず）を介して利用者８０に情報を提供し、キーボード又は他の入力装置（図示せず）を介して利用者８０からの情報を受けることによって利用者８０と対話する。
【００１８】
クライアントコンピュータ２４及び２６も利用者と対話する（図面を簡単化するため図示していない）。その上、コンピュータ２４及び２６は中央処理装置６０に双方向に接続されている。しかしながら、かかる結合は自由に選択し得る。全てのクライアントコンピュータ２０に対し必要なことは、利用者との対話方法と、トランスポート機構３０への接続だけである。ローカルコンピュータ、補助データ装置及び中央処理装置６０への接続は全て自由に選択され、複数のクライアントコンピュータ２０の各々で存在することは必要ではない。
【００１９】
トランスポート機構３０は、サーバーコンピュータ１０から複数のクライアントコンピュータ２０への直接的な光ファイバー、或いは、ディジタル衛星リンクの如くの単一方向高速ディジタルデータリンクを有する。データはパケットデータシステムによってトランスポート機構３０を介して伝送される。かかるシステムにおいて、特に、パケットに含まれるデータのタイプ及び実際のデータを示す識別情報を各々に含むデータパケットのストリームは、上記データリンクを介して伝送される。かかるパケットデータシステムによって、パケット内の識別情報によって各々が識別される複数の別個のデータのストリームは、単一のパケットのストリーム内で時分割多重化することが可能である。
【００２０】
その上、複数の上記パケットストリームはトランスポート機構３０を形成する同一物理媒体（光ファイバー又は衛星無線リンク）の夫々のチャンネル上に多重化させることが可能である。例えば、異なるデータストリームは異なる周波数を有する搬送波信号上に変調することが可能である。上記の変調された搬送波は、例えば、衛星リンク上の夫々のトランスポンダーを介して伝送することが可能である。さらに、特定のトランスポンダーが充分な能力を有する場合、複数のデータストリームを単一の変調搬送波上に時分割多重化させ得る。
【００２１】
クライアントコンピュータ２０の各々は、トランスポート機構３０を介して伝送されたパケットのストリームの中から一つを選択し、上記選択されたパケットのストリームを受け、その中に含まれるデータを取得するデータ受信器を有する。上記の例に続いて、データ受信器は、衛星リンクから夫々の変調搬送波の中の一つを受ける整調し得る復調器を含んでもよい。その上、データ受信器は上記変調搬送波によって搬送される夫々のデータストリームを時分割多重化する回路を含む場合がある。
【００２２】
動作時に、サーバー１０は、複数のクライアントコンピュータ２０に対しパケットのストリームの形式で連続的なデータストリームを発生する。サーバー１０は、分散コンピューティングアプリケーションを表わすデータと、少なくとも一の実行可能なコードモジュールとを含むパケット又は一連のパケットを上記データストリームに繰り返し挿入する。かかるコードモジュールはクライアントコンピュータ２０の実行可能なコードを含む。例えば、クライアントコンピュータ２２のデータ受信器は、トランスポート機構３０上のデータストリーム中のパケットを連続的に監視する。パケットがクライアントコンピュータ２２により必要とされるコードモジュール（又はコードモジュールの一部）を含むことを示す識別情報を含むパケットがデータストリーム中に現われたとき、クライアントコンピュータ２２はそのパケットの出現を検知し、そのパケットからコードモジュール（又はコードモジュールの一部）を取得し、主メモリに記憶する。コードモジュールが完全に受け取られると、クライアントコンピュータ２２はコードモジュールの実行を開始する。
【００２３】
各々が分散コンピューティングアプリケーションの異なる部分を含む２以上のコードモジュールを連続的なデータストリームに置いてもよい。例えば、同時に必要な一部分だけが同時に実行されるよう分散コンピューティングアプリケーションを小さい部分に分割することが可能である。現在実行する必要がある分散コンピューティングアプリケーション部は、クライアントコンピュータ２２のメモリにロードされる。その部分の実行が終了すると、分散コンピューティングアプリケーションの次の部分に対する実行可能なコードを含むコードモジュールがデータストリームから取得され、メモリに記憶され、実行される。各部分は必要に応じてデータストリームから取得される。クライアントコンピュータ２２に充分なメモリが存在する場合、数通りのコードモジュールをメモリにロードし、データフローからコードモジュールを取得することなくそれらの間で切り換えることが可能であるが、このようにすることが不可欠という訳ではない。上記の方法で分散コンピューティングアプリケーションを構成することにより、必要とされるクライアントコンピュータ２２のメモリは最小限に抑えることが可能である。
【００２４】
サーバー１０はデータストリームに少なくとも一つのデータモジュールを含む少なくとも一のパケットを含ませることも可能である。上記データモジュールはコードモジュールの実行可能なコードによって処理されるべきデータを含む。先に取得されたコードモジュールのコードの実行の前、或いは、実行中に、クライアントコンピュータ２２は少なくとも一つのデータモジュール内のデータへのアクセスを要求することが可能である。かかる場合に、クライアントコンピュータ２２は要求された少なくとも一つのデータモジュールを得るためデータストリームを監視する。少なくとも一つのデータモジュール（或いは、少なくとも一つのデータモジュールの一部）を含むパケットがデータストリームに現われるときに、それらは取得され、その内容はクライアントコンピュータ２２の主メモリに記憶される。必要とされる全てのデータモジュールが完全に受け取られたとき、クライアントコンピュータ２２は、受け取られた少なくとも一つのモジュールのデータを処理するためコードモジュールからのコードの実行を開始、又は、継続する。コードモジュールの場合に、クライアントコンピュータ２２に充分なメモリが存在するならば、２以上のデータモジュールをメモリに記憶させるとが可能である。
【００２５】
サーバー１０は、更に、データストリームに現在含まれているコード及びデータモジュールのディレクトリ含む少なくとも一つのパケットをデータストリームに繰り返し含めることが可能である。上記ディレクトリはデータストリームに存在する全てのコード及びデータモジュールの一欄をそのモジュールに関する情報と共に含む。データストリームにディレクトリが存在する場合に、そのデータストリームのあらゆるコード又はデータモジュールを実行する前に、クライアントコンピュータ２２は上記ディレクトリを得るために上記データストリームを監視する。ディレクトリ（又はディレクトリの一部）を含むパケットがデータストリームにあるときに、それらは取得され、そのデータはクライアントコンピュータ２２の主メモリに記憶される。上記ディレクトリが完全に受け取られたとき、クライアントコンピュータ２２はディレクトリへの記載事項を評価し、上記データストリームの最初のコード及び／又はデータモジュールを要求し、上述の如く、処理を実行する。
【００２６】
あらゆるクライアントコンピュータ２０は、パケットストリームによって表わされる分散コンピューティング機能に何時でも参加することが可能であり、クライアントコンピュータ２０の各々は、一般的に利用者８０に応じてそれ自体の速度で動作し得る。このために、サーバー１０は、クライアントコンピュータ２０がその分散コンピューティング機能の一部を実行するために必要とするディレクトリと、全てのコード及びデータモジュールとをトランスポート機構３０上のデータストリームに繰り返し配列する。クライアントコンピュータ２０の中の一つが分散コンピューティング機能に参加するときには何時でも、ディレクトリモジュールを得るためトランスポート機構３０上の新たに選択されたパケットを監視し、それを取得し、上述の如くそれを処理する。実行中に、クライアントコンピュータ２０の中の一つが新しいコード及び／又はデータモジュールを要求するときは何時でも、新たに要求されたコード及び／又はデータモジュールを得るためトランスポート機構３０上のデータストリームを監視し取得し、上述の如く、そのデータストリームがコードモジュールである場合には実行し、それがデータモジュールである場合には処理する。
【００２７】
パケットデータストリームは補助データのパケットを含む場合がある。このデータはコードを実行するためにクライアントコンピュータ２２によって要求されることはないが、利用者８０は受信された補助データに基づいてクライアントコンピュータ２２上の実行プログラムと対話することができるので実行に関係している場合がある。クライアントコンピュータ２２のデータストリーム受信器はトランスポート機構３０上のデータストリーム内の補助データパケットを認め、補助データ処理装置５０に直接送る。補助データ処理装置５０はクライアントコンピュータ２２とは無関係にそのパケットを処理する。補助データを利用者８０に提示する必要がある場合、補助データ処理装置５０は、利用者に単一の情報表示を提供するためクライアントコンピュータ２２と共有するそれ自体の表示装置（図示せず）を備えるか、或いは、クライアントコンピュータ２２に関係する表示装置（図示せず）が補助データ処理装置５０と共有されてもよい。補助データ処理装置５０は、データのタイプに依存する点を除いて他の例示される素子への接続（図示せず）があってもよい。
【００２８】
双方向ＴＶシステムにおいて、例えば、補助データは基礎となるテレビジョン信号のビデオ及びオーディオ部を含む。例えば、補助データは、ＭＰＥＧ（ムービングピクチャーエキスパートグループ）又はＭＰＥＧ相当のテレビジョン画像を表わす符号化されたデータを含むビデオパケットと、ディジタル符号化されたオーディオを含むオーディオパケットとを有する。その上、ステレオ、第２オーディオ番組（ＳＡＰ）又は多国語機能用の夫々のオーディオチャンネルを搬送する数種類の異なるオーディオパケットストリームが存在する場合が考えられる。かかるシステムの補助データ処理装置５０において、ビデオパケットは、テレビジョン受像機又はビデオモニタ（図示せず）に供給される標準ビデオ信号を発生する周知のＭＰＥＧ（又は同等の）デコーダ（図示せず）に供給される。オーディオパケットは、テレビジョン受像機又はスピーカー（図示せず）用の標準オーディオ信号を発生する周知のオーディオデコーダ（図示せず）に供給される。
【００２９】
上記の双方向ＴＶシステムにおいて、クライアントコンピュータ２２は、実行可能なコードモジュールの実行に応じて、利用者８０に情報を提供するためグラフィック表示を発生する。上記のグラフィック表示は、周知の方法でＭＰＥＧデコーダからの標準ビデオ信号と組み合わせてもよく、組み合わされた画像はテレビジョン受像機又はビデオモニタに表示される。クライアントコンピュータ２２は他の情報を利用者に提供するためサウンドを発生してもよい。発生されたサウンドは、周知の方法で、オーディオデコーダからの標準オーディオ信号と組み合わされ、組み合わされたサウンドはテレビジョン受像機又はスピーカーを通して鳴らされる。
【００３０】
その上、時間的コードのデータがテレビジョン補助パケットデータストリームと、双方向ＴＶアプリケーションを表わすパケットデータストリームの一方又は両方に含まれる可能性がある。これにより、クライアントコンピュータ２２によって発生される全てのグラフィック画像又はサウンドと、補助データからのテレビジョン信号との同期が可能になる。かかる場合に、クライアントコンピュータ２２は上記時間的コードのデータにアクセスし、時間的コードのデータによって供給されるような所望の時間に現われるようグラフィック画像及び／又はサウンドの発生を制御する。
【００３１】
上記の双方向ＴＶシステムにおいて、クライアントコンピュータ２２と補助データプロセッサ５０の両方は、テレビジョン受像機の如くの一つの筐体、或いは、テレビジョンセットの上部のデコーダボックスに収容される。テレビジョン受像機又はデコーダボックスは、ローカルコンピュータ又は他の機器に取り付けるためのコネクタを有する。利用者８０は実行中にクライアントコンピュータ２２上で走るプログラムに入力を与える。かかるデータは分散コンピューティング機能に影響を与えるためサーバー１０によって要求される可能性がある。双方向ＴＶシステムにおいて、例えば、利用者８０はハンドヘルド遠隔制御ユニットを用いてクライアントコンピュータに入力を与える。
【００３２】
利用者データは中央処理装置６０を介してサーバーコンピュータ１０に転送される。一実施例において、データは中央処理装置６０として機能する電話システムを介するモデムを用いてクライアントコンピュータ２０からサーバーコンピュータ１０に送られる。サーバーコンピュータ１０は、分散コンピューティング機能の一部を実行中にクライアントコンピュータ２０からデータを受け、受けたデータを処理する。
【００３３】
サーバーコンピュータ１０は、上記の受けられたデータに基づいて、以下に記載する方法でトランスポート機構３０上のデータストリームに新しいコード及び／又はデータモジュールを発生、或いは、既存のコード及び／又はデータモジュールを修正することが可能である。或いは、サーバーコンピュータ１０は、中央処理装置６０を通るもう一方の向きでクライアントコンピュータ２０に即座に情報を戻すことが可能である。新たに発生されたコード及び／又はデータモジュールの情報は、分散コンピューティング機能に参加する全てのクライアントコンピュータ２０によって処理される。中央処理装置６０を介してサーバーコンピュータ１０からクライアントコンピュータ２０に送られる情報は、特に、その情報が送られたクライアントコンピュータ（２２，２４，２６）に関係する。
【００３４】
他の一実施例において、中央処理装置６０はそれ自体のコンピュータシステムを含む場合があり、電話システムを介してクライアントコンピュータ２０とサーバーコンピュータ１０の両方にモデムを用いて接続される。上述の何れの実施例においても、中央処理装置６０は、電話システムを介して別のコンピュータへのアクセス又は処理の便宜を与える。かくして、分散コンピューティング機能を実行するため別のコンピュータ装置からの情報が必要である場合に、かかるコンピュータ装置はクライアントコンピュータ２０又はサーバーコンピュータ１０の何れによっても電話システムを介してモデムを用いてアクセスすることが可能である。
【００３５】
クライアントコンピュータ２２上のＩ／Ｏ（入力／出力）ポートは、ローカルコンピュータ４０の対応するポートに接続される。ローカルコンピュータ４０はクライアントコンピュータ２２に併置される。ローカルコンピュータ４０は、クライアントコンピュータ２２の利用者８０によって使用されるパーソナルコンピュータでもよく、或いは、クライアントコンピュータ２０と同じ場所に置かれたより大規模のコンピュータ又はコンピュータネットワークでもよい。これによって、クライアントコンピュータ２２は、パーソナルコンピュータ又はクライアントコンピュータ２２側に設置されたネットワーク上のコンピュータの付属大容量記憶装置７０のデータにアクセスし得るようになる。その上、クライアントコンピュータ２２は後で取り出すべきデータの記憶のためローカルコンピュータ４０の大容量記憶装置７０を使用することが可能である。ローカルコンピュータ４０は、コンピュータのモニタの如くの出力装置（図示せず）と、コンピュータのキーボードの如くの入力装置（図示せず）の両方を含む可能性が高い。これらは何れも、前述の如く、クライアントコンピュータ２２及び／又は補助データプロセッサ５０と共有することができる。
【００３６】
例えば、図１に例示する分散コンピューティングシステムは、広域的な企業のコンピューティングシステムであり、サーバー１０はその企業の中枢的な場所に置かれている場合がある。クライアントコンピュータ２２は遠隔の場所に置くことが可能であり、ローカルコンピュータ４０はかかる遠隔の場所でパーソナルコンピュータネットワークに接続してもよい。遠隔の場所における従業者は、共有データ（例えば、財務情報）を上記ネットワークに接続されたサーバーに記憶させることができる。分散コンピューティング機能には、遠隔の位置のクライアントコンピュータから局部的な財務情報を収集し、上記財務情報を処理し、総合的な財務結果をクライアントコンピュータに戻すことを含むことが可能である。かかる応用例において、クライアントコンピュータ２２上で実行された実行可能なコードは、Ｉ／Ｏポートを介してローカルコンピュータ４０（或いは、それに付属する大容量記憶装置７０又はネットワークの何れか）からデータを取得し、中央処理装置６０を介してそのデータをサーバーコンピュータ１０に送る。サーバーコンピュータ１０は、クライアントコンピュータ２２（及び別のクライアントコンピュータ２０）から受けた情報に基づいてその処理を継続し、中央処理装置６０又はトランスポート機構３０上のデータストリームの何れかを介してその処理結果をクライアントコンピュータ２０に戻す。
【００３７】
他の一実施例において、分散コンピューティングシステムは分散コンピューティングアプリケーションとしてホームショッピングショーを放送する双方向テレビジョンシステムである。かかる場合に、補助データは、販売のため提供される品目を表示し説明するテレビジョン信号のビデオ及びオーディオ部分を搬送し、かかるテレビジョン信号のビデオ及びオーディオ部には、本物の俳優と中央スタジオで生成された重ね合わせ用のグラフィックの両方が含まれる可能性がある。双方向テレビジョンアプリケーションを作り上げるコード及びデータモジュールは、ショー又はショーの一部の間に販売のため提供される品物に関するデータと、以下の方法で利用者と対話するための実行可能なコードとを含むことが可能である。
【００３８】
視聴者はある品目の注文をしたい場合、ＴＶ遠隔制御器のボタンを押す。このボタンは、例えば、品目番号、視聴者の名前・住所、支払い方法、（必要であれば）クレジットカードの番号等の注文をするため必要な情報の請求に必要な一連の指示及びメニューを表示するようクライアントコンピュータ２２に通知する。上記の指示はテレビジョンビデオ画像上に重ねられるグラフィックとしてクラアントコンピュータにおいて生成される。その上、ボイスオーバー、又は、テレビジョンオーディオの置換によって、コンピュータ合成音声を生成しテレビジョンオーディオと組み合わせることも可能である。視聴者はＴＶ遠隔制御器を用いて要求された情報を与えることにより上記命令に応答する。画面上の表示及び／又は音声の指示により要求された上記情報が視聴者によって入力されたとき、その情報はクライアントコンピュータのモデムを介して中央コンピュータに送られる。注文の確認は中央コンピュータから反対向きに送られる。
【００３９】
或いは、視聴者に関する不変的な情報（即ち、名前、住所、支払い方法及びクレジットカード番号）は利用者が一旦事前に入力してもよいので、注文を行う度にかかる情報を請求する必要はない。上記情報はクライアントコンピュータの常駐メモリに記憶される。この例の場合、注文が行われるとき、かかる情報は常駐メモリから取り出され、品目番号が付与されて中央コンピュータに伝送される。その上、データストリーム中に挿入された時間的コード又は他のコマンドを利用して、クライアントコンピュータはどの品目が現在販売のため提供されているかを知る。この場合、視聴者はＴＶ遠隔制御器上の一つのボタンを押すだけで注文を行うことができる。応答として、クライアントコンピュータは、現在販売のため提供されている品目に関係する事前に受けた情報と視聴者に関係する事前に記憶した個人情報を結合し、中央コンピュータに注文を送り、折り返し確認を受けることが可能である。
【００４０】
ホームショッピング番組に関係するコード及びデータモジュールはデータストリームに繰り返し挿入されるので、視聴者は何時でも上記番組を受信し、対話的に参加することができる。視聴者は対話的に参加することが必要である訳ではなく、ショーの対話部分は無視するだけでも構わない。クライアントコンピュータ２２はローカルコンピュータ４０から制御情報を受けることも可能である。例えば、ローカルコンピュータ４０を利用する利用者８０は、トランスポート機構３０上のデータストリームの中の所望の一つを選択し、ローカルコンピュータ４０に接続された入力及び出力装置（図示せず）を介して利用者８０と対話をし、上記データストリームに現在放送されている番組を処理するため、Ｉ／Ｏポートを介してクライアントコンピュータ２２を制御することが可能である。
【００４１】
その上、利用者８０は、トランスポート機構３０上のデータストリームの代わりに中央処理装置６０を介して、クライアントコンピュータ２２をサーバーコンピュータ１０にアクセスさせ、この双方向リンクを介してコード及びデータモジュールを受けることが可能である。図２は図１に例示したサーバーコンピュータ１０を説明するブロック図である。図２において、分散コンピューティングアプリケーションのコード及びデータ源１０１は、アプリケーションコンパイラとソフトウェア管理モジュールとを含み（図示せず）、フロービルダー(flow  builder)１０２の入力端子に接続された出力端子を有する。フロービルダー１０２の出力端子はトランスポートパケット化器１０４の入力端子に接続される。トランスポートパケット化器１０４の出力端子は、パケットマルチプレクサ１０６の第１の入力端子に接続される。パケットマルチプレクサ１０６の出力端子はトランスポートマルチプレクサ１１０の入力端子に接続される。トランスポートマルチプレクサ１１０の出力端子は、（図１の）トランスポート機構３０を構成する物理的媒体に接続される。パケットマルチプレクサ１０６の第２の入力は補助データパケット源１０７に接続される。クロック１０９は、トランスポートパケット化器１０４と補助データソース１０７の対応する入力端子に夫々接続された出力端子を有する。データトランシーバー１０３は、（図１の）中央処理装置６０に接続された第１の双方向端子と、アプリケーションコード及びデータソース１０１に接続された第２の双方向端子とを有する。
【００４２】
図２において点線の四角形で示されるアプリケーションコード及びデータソース１０１と、フロービルダー１０２と、トランスポートパケット化器１０４と、補助データソース１０７と、クロック１０９と、パケットマルチプレクサ１０６の組合せは、トランスポート機構に対するチャンネルソース１０８を形成する。チャンネルソース１０８において例示したのと同様の構成要素を含む他のチャンネルソースは、図１には示されていないが、別の点線の四角形１０８ａによって示されている。他のチャンネルソース（１０８ａ）は、トランスポートマルチプレクサ１１０の他の入力端子に接続された出力端子を有し、データトランシーバーを介して中央処理装置に接続された入力端子を有する場合がある。
【００４３】
動作中、分散コンピューティングアプリケーションを表わすデータと、トランスポート機構３０を介するプログラムの伝送に関係するデータは、アプリケーションソース１０１からフロービルダー１０２に供給される。かかるデータは、コード及びデータモジュールを表わすデータを含むファイル、又は、上記コード及びデータモジュールを構成する方法に関する情報又は別の同様の情報を提供するスクリプトのいずれかの形式で供給することができる。コード及びデータモジュールは、中央コンピューティング装置６０及び／又は別源を介してクライアントコンピュータ２０から受けられた入力に基づいて、一定或いは動的に変わる。実行可能なコード及びデータモジュールのファイルは、アプリケーションプログラマによってプログラムされたソースの言語に応じて、コンパイラ、インタープリタ、又は、アセンブラによって周知の方法で生成することができる。モジュールの伝送に関係するデータファイルは、データストリームに含めるべきディレクトリと、コード及びデータのモジュールに対する所望の繰り返しレートと；各モジュールを記憶し、アプリケーションプログラムを完全に実行するため必要とされるクライアントコンピュータ２０の主メモリのサイズと；モジュールがコードモジュールである場合にモジュールに対する優先レベルの如くの情報を含む。
【００４４】
フロービルダー１０２はアプリケーションソース１０１からのデータを処理する。応答として、フロービルダー１０２はディレクトリモジュールを構築し、アプリケーションプログラムの全画像を与える。ディレクトリモジュールの情報には、例えば、データストリーム内に繰り返し伝送される全てのコード及びデータモジュールの識別子と、そのサイズと、場合によってはそのモジュールに関係する別の情報とが含まれる。次いで、アプリケーションプログラム表示データはコード及びデータモジュールを生成するよう処理される。ディレクトリ、コード及びデータモジュールは、かくして構築され、各モジュールにモジュールヘッダとエラー検出及び／又は訂正コードを追加することによってフォーマット化される。伝送スケジュールも生成される。上記処理の終了後、ディレクトリモジュールとコード及びデータモジュールとを表わすデータは、事前に生成されたスケジュールに従ってトランスポートパケット化器１０４に繰り返し与えられる。
【００４５】
トランスポートパケット化器１０４は、ディレクトリモジュールと、コード及びデータモジュールがフロービルダー１０２から送出される際に、そのディレクトリモジュールと、コード及びデータモジュールを表わすパケットのストリームを生成する。各パケットは一定の所定の長さを有し、フロービルダーからのデータストリームをビットのグループに分割し、パケットに含まれる情報を識別する情報を伴うパケットヘッダと、エラー検出及び／又は訂正コード等を各グループに追加することによって生成されるので、各パケットは同一の所定の長さを有する。フロービルダー１０２からのデータがパケットを完全に充填するのに充分ではない場合、パケットにはヌル(null)データが詰められる。かかるパケットは、パケットマルチプレクサ１０６において単一のパケットストリームを形成するよう周知の方法で補助データパケットと時分割多重化される。その上、生成されるパケットの長さを可変長にすることも可能である。この場合、各パケットのパケットヘッダにはパケットの長さが含まれる。その上、時間的コードのデータパケットは、クロック１０９から受けたデータに基づいてデータストリームパケット及び／又は補助データパケットに置かれる。
【００４６】
全チャンネルソース（１０８，１０８ａ）からのパケットストリームは、トランスポート機構３０を介して伝送される単一のトランスポートチャンネルに多重化される。前述の如く、パケットストリームは、全搬送波が衛星リンクを用いてクライアントコンピュータ２０に搬送される場合に、周知の方法で各パケットストリームに異なる周波数で搬送波信号を変調させることによって周波数分割多重化を行ってもよい。その上、一つの搬送波チャンネル内に充分な容量があるならば、数個のパケットストリームを周知の方法で統計的に時分割多重化し、単一の搬送波を変調するため使用してもよい。例えば、単一の衛星リンクを通る最大で８個の対話式テレビジョンデータストリームを時分割多重化させることが提案されている。
【００４７】
クライアントコンピュータ２０からのデータは、（図１の）中央処理装置６０を介してサーバーコンピュータ１０でそれ自体のプロセッサ（図示せず）を有するデータトランシーバー１０３によって受けられる。即時の応答が生成される場合に、トランシーバー１０３のプロセッサは中央処理装置６０を介して特定のクライアントコンピュータ（２２−２６）、複数のクライアントコンピュータ２０の特定の組、或いは、順々に全てのクライアントコンピュータ２０にその応答を戻す。しかし、全てのクライアントコンピュータ２０に対する通常の応答が望まれる場合には、アプリケーションプログラマーは、アプリケーションコンパイラーを使用するアプリケーションコード及びデータソース１０１のコード及びデータファイルを補正してもよい。上記の補正されたファイルは、別のフローを再び生成するためフロービルダーによって処理される。その上、アプリケーションソース１０１のコード及びデータファイルは、トランシーバー１０３から受けられたデータに応じて自動的かつ動的（即ち、実時間）に補正することが可能であり、データがクライアントコンピュータ２０から受けられる際にフローが更新される。
【００４８】
図３は図１に示す分散コンピューティングシステムのサーバーコンピュータ１０により処理されるデータストリームを説明するブロック図である。図３において、サーバーコンピュータ１０は複数のパケットストリーム３２−３８を同時に発生するよう示されている。各パケットストリーム（３２−３８）は、同一の間隔及びビット数を有するパケットに分割された水平方向の帯として示されている。上述の如く、あらゆるパケットストリーム内のパケットのサイズは搬送すべきデータ量と共に変わる場合がある。同図において、パケットの開始時点は同期していないことが分かる。パケットを同期させることは可能ではあるが、必要という訳ではない。同図において、ディレクトリを表わすデータを搬送するパケットはＤＩＲで示され、コードモジュールを表わすデータを搬送するパケットはＣＭで示され、データモジュールを表わすデータを搬送するパケットはＤＭで示され、補助データを搬送するパケットはＡＵＸで示される。
【００４９】
上段の一連のパケット３２において、左端のパケットはコードモジュールＣＭを表わすデータを含む。補助データＡＵＸを有する３個のパケットが上記パケットに続き、更にコードモジュールＣＭを表わすデータを含む別のパケットが続く。一連のパケット３２から、コードモジュールは繰り返し生成されることが分かる。多少のパケットがコードモジュールパケットＣＭの一連の繰り返しの間に存在していても構わないことが分かる。繰り返しのレートは、アプリケーションをプログラムする際にプログラマによる指定が可能であり、アプリケーションの実行中に変えられてもよい。
【００５０】
次の一連のパケット３４において、左端のパケットは補助データＡＵＸを含む。次の二つのパケットは、夫々コードモジュール（ＣＭ１，ＣＭ２）の一部を含む。最後のパケットは補助データＡＵＸを含む。一連のパケット３４を参照するに、コードモジュールが長すぎて単一のパケットに収容できない場合には、各々のパケットがコードモジュールの一部分を含む二つ以上のパケットによって搬送してもよいことが分かる。一連のパケット３４には、コードモジュール（ＣＭ１，ＣＭ２）を収容するよう二つのパケットが例示されているが、サイズに依存してコードモジュールを搬送するため任意の個数のパケットを使用し得る。上述の如く、コードモジュール（ＣＭ１，ＣＭ２）を搬送する二つのパケットが一連のパケット３４において繰り返し伝送される（図示せず）。
【００５１】
一連のパケット３６において、左端のパケットはコードモジュール（ＣＭ）を表わすデータを収容する。次のパケット（ＤＭ１）はデータモジュールを表わすデータを収容する第１のパケットである。次のパケットは補助データＡＵＸを含む。次のパケット（ＤＭ２）は、データモジュールを表わす残りのデータを収容する第２のパケットである。一連のパケット３６を参照するに、コードモジュール（ＣＭ）に関連するデータモジュール（ＤＭ１，ＤＭ２）は、パケットストリームに収容し得ることが分かる。コードモジュール（ＣＭ）と、データモジュール（ＤＭ１，ＤＭ２）の両方は、一連のパケット３６で繰り返し伝送される（図示せず）。コードモジュール（ＣＭ）の繰り返しのレートは、データモジュール（ＤＭ１，ＤＭ２）の繰り返しのレートと異なっていてもよく、両方のレートはアプリケーションプログラマによって指定され、アプリケーションの実行中に変えることが可能である。
【００５２】
その上、データモジュールが長すぎて単一のパケットに収容できない場合に、各々がデータモジュールの一部を含む２以上のパケットによって搬送し得ることが分かる。一連のパケット３６には、データモジュール（ＤＭ１，ＤＭ２）を収容するよう二つのパケットが例示されているが、サイズに依存してデータモジュールを搬送するため任意の個数のパケットを使用し得る。さらに、データモジュールを搬送するパケットは連続的に伝送される必要はなく、パケットストリームに介在するパケットがあっても構わない。このことは、コードモジュール又はディレクトリモジュールを搬送する多数のパケットに対しても同様に言える（図示せず）。
【００５３】
最下段の一連のパケット３８において、左端のパケットはディレクトリ（ＤＩＲ）を表わすデータを収容する。次のパケットはコードモジュール（ＣＭ）を表わすデータを含み、補助データ（ＡＵＸ）を含むパケットと、データモジュール（ＤＭ）を表わすデータを含むパケットが次に続く。一連のパケット３８において、単一のパケットストリーム内にディレクトリモジュール（ＤＩＲ）と、コードモジュール（ＣＭ）と、データモジュール（ＤＭ）の全てが示されている。上記３種類のモジュールの夫々の繰り返しレートは、アプリケーションのプログラマによって指定される如く異なっていてもよく、アプリケーションの実行中に変えることが可能である。
【００５４】
図４は図１に例示する如くのクライアントコンピュータ２２のブロック図である。同図において、（図１の）トランスポート機構３０はストリームセレクタ２０２の入力端子に接続される。ストリームセレクタ２０２の出力端子は、補助データ取得器２０４とパケットデータ取得器２０６の夫々の入力端子に接続される。補助データ取得器２０４の出力端子は（図１の）補助データ処理装置５０に接続される。パケットデータ取得器２０６の双方向端子は、対応するストリームＩ／Ｏアダプタ２０８の端子に接続される。ストリームＩ／Ｏアダプタ２０８の制御出力端子は、対応するストリームセレクタ２０２の入力端子に接続される。ストリームセレクタ２０２と、補助データ取得器２０４と、パケットデータ取得器２０６の組合せは、図４に点線で示す如く、クライアントコンピュータ２２のデータストリーム受信器２０７を形成する。
【００５５】
ストリームＩ／Ｏアダプタ２０８は、図４に点線で示す如く、クライアントコンピュータ２２内に処理ユニット２２４の一部分を形成する。ストリームＩ／Ｏアダプタ２０８に加えて、処理ユニット２２４は、システムバス２１６を介して周知の方法で互いに接続されたプロセッサ２１０と、ＲＡＭ（リード／ライトメモリ）２１２と、ＲＯＭ（読み出し専用メモリ）２１４を含む。その上、入力及び出力装置は、（図１の）ローカルプロセッサ４０に接続されたＩ／Ｏポート２１８と；利用者８０と通信するためのユーザＩ／Ｏアダプタ２２０と；（図１の）中央処理装置６０に接続されたモデム２２２とにより設けられ、その全て周知の方法でシステムバス２１６に接続されている。処理ユニット２２４に別の機能を与えるため別のアダプタ（図示せず）をシステムバス２１６に接続してもよい。
【００５６】
上述の如く、補助データ取得器２０４と、Ｉ／Ｏポート２１８と、モデム２２は、本発明によるクライアントコンピュータ２０に必須という訳ではない。これらは任意の付加的機能を示すため図１及び４に例示されている。動作中に、処理ユニット２２４のプロセッサ２１０は周知の方法で、常駐的にＲＯＭ２１４、又は、一時的にＲＡＭ２１２に記憶されたプログラム指令を取り出し、取り出された命令を実行し、ＲＡＭ２１２及び／又はＲＯＭ２１４からデータを読み出し、ＲＡＭ２１２にデータを書込み、及び／又は、Ｉ／Ｏポート２１８、ユーザＩ／Ｏアダプタ２２０及び／又はモデム２２２を介して、外部ソースからデータを受け、外部ソースにデータを供給する。
【００５７】
プログラム制御の下でプロセッサ２１０は、（図１の）トランスポート機構３０を介してクライアントコンピュータ２２に供給されたデータストリームのコード及び／又はデータモジュールを要求することができる。かかるデータを取り出すため、プロセッサ２１０は、ユーザＩ／Ｏアダプタ２２０からの利用者の入力に応答し得る場合に、最初にストリームＩ／Ｏアダプタ２０８が選択制御信号をストリームセレクタ２０２に送るよう指示する。次いで、プロセッサ２１０はストリームＩ／Ｏアダプタ２０８に対し特定のコード又はデータモジュールの要求を出す。ストリームＩ／Ｏアダプタ２０８はかかる要求をパケットデータ取得器２０４に中継する。
【００５８】
（図１の）トランスポート機構３０は、搬送する複数のパケットストリームの全て（図３の３２−３８）をストリームセレクタ２０２に供給し、ストリームセレクタ２０２は選択されたパケットストリームだけを通過させる。補助データ取得器２０４は、選択されたパケットストリームを監視し、そこから補助データパケットを取得し、それらを（図１の）補助データプロセッサ５０に直接供給する。パケットデータ取得器２０６は、選択されたパケットストリームを同様に監視し、ストリームＩ／Ｏアダプタ２０８によって要求されたディレクトリ、コード及び／又はデータモジュールのパケットを取得し、ストリームＩ／Ｏアダプタ２０８に供給する。ストリームＩ／Ｏアダプタ２０８に戻されたパケット内のデータはＲＡＭ２１２に供給される。全部のモジュールがパケットストリーム（上述の如く数個のパケットを要求する場合がある）から取り出されたときに、プロセッサ２１０はストリームＩ／Ｏアダプタ２０８によってその受取りを通知される。プロセッサ２１０はかかるプログラムの実行を継続することができる。
【００５９】
図１に示す分散コンピューティングシステム内のデータストリームは、従来技術のシステムにおける大容量記憶装置の場合と同様である。プロセッサ２１０上で実行されるアプリケーションプログラムは、かかるプログラムが従来技術の装置において大容量記憶装置に事前に記憶されたコード又はデータモジュールを含むファイルを要求するのと類似する方法で、ディレクトリに挙げられたモジュールを要求する。データストリーム受信器２０７は大容量記憶装置と類似し、ストリームＩ／Ｏ２０８は、所望のデータを位置決めし、そのデータをシステムメモリ内の所定の場所（Ｉ／Ｏバッファ）に転送し、プロセッサに取り出しの終了を通知することによって、従来技術の装置における大容量記憶装置アダプタと類似した方法で機能する。しかし、ストリームＩ／Ｏアダプタ２０８は、データストリームからコード及びデータを取り出すことができるだけであり、データをデータストリームに書き込むことはできない。
【００６０】
上述の如く、分散コンピューティングアプリケーションは、各々が分散コンピューティングアプリケーションの別の部分に対する実行可能なコードを含む２以上のコードモジュールに分割することが可能である。特定のコードモジュールが望まれる場合に、プロセッサ２１０はストリームＩ／Ｏアダプタ２０８の上記コードモジュールを要求する。上記モジュールの実行が終了すると、プロセッサ２１０はストリームＩ／Ｏアダプタの次のモジュールを要求する。コード及びデータモジュールはデータストリーム上に繰り返し搬送されるため、モジュールは、後で必要とされるならば必要な時にデータストリームから再び取り出すことができる。従って、モジュールは、一時的に記憶する必要がなく現在必要でない場合には、ＲＡＭ２１２から削除してもよい。しかし、ＲＡＭ２１２が充分な容量を有するならば、プロセッサ２１０は数種類のコードモジュールをＲＡＭ２１２に同時にロードするようストリームＩ／Ｏアダプタに対し要求することが可能である。上記の如く行われる場合に、プロセッサ２１０は、ストリームＩ／Ｏアダプタ２０８がデータストリームからコードモジュールを取得するのを待つことなく、コードモジュール間で切替わる。
【００６１】
上述の如く、他のＩ／Ｏアダプタを周知の方法でシステムバス２１６に接続してもよい。例えば、双方向ＴＶシステムにおいて、グラフィックアダプタがシステムバス２１６に接続される場合がある。グラフィックアダプタは、プロセッサ２１０からの指示に応じて、周知の方法でグラフィカル画像を表わす信号を発生する。その上、上記信号は、双方向ＴＶシステムの補助データ処理装置５０の（上述の）ビデオデコーダによって発生された標準ビデオ信号と結合することが可能である。グラフィカル画像表示信号と、標準ビデオ信号とが結合されるときに得られる信号は画像を表わし、その画像中、グラフィックアダプタによって生成された画像は放送ビデオ信号によって表わされた画像の上に重ね合わせられる。上記二つの画像表示信号をプロセッサ２１０の制御の下で選択的に結合することも可能である。
【００６２】
双方向ＴＶシステムはシステムバス２１６に接続されたサウンドアダプタを含む場合がある。サウンドアダプタは、プロセッサ２１０からの指示に応じて周知の方法で、（音楽、合成音声又は他の音の如くの）コンピュータ合成音を表わす信号を発生する。その上、上記信号は、双方向ＴＶシステムの補助データ処理装置５０において（上述の）オーディオデコーダによって発生された標準オーディオ信号と結合することができる。サウンド表示信号と、標準オーディオ信号が結合されるときに、得られる信号はサウンドアダプタによって発生されたサウンドと、放送オーディオ信号との組合せを表わす。上記二つのサウンド表示信号をプロセッサ２１０の制御の下で選択的に結合することも可能である。
【００６３】
グラフィック画像及びサウンド表示信号の発生及び表示のタイミングは、データストリームから時間的コードのデータを受けることによって制御することができる。これにより、実行可能なコードモジュールは、プロセッサ合成画像の表示と、プロセッサ合成サウンドの演奏を放送ビデオ及びオーディオと同期させることが可能になる。プロセッサ２１０において現在実行されているコードの中断を生じさせる特殊化されたパケットをデータストリームに挿入することによって、双方向ＴＶアプリケーションの動作を同期させることも可能である。ストリームＩ／Ｏアダプタ２０８は、上記の特殊化されたパケットを得るためデータストリームを監視し、周知の方法でプロセッサ２１０に対する割り込みを発生する。プロセッサ２１０はＩＳＲ（割り込みサービスルーチン）を実行することにより周知の方法で上記割り込みに応答する。かかるＩＳＲは双方向ＴＶアプリケーションの同期、又は、別の目的のために使用してもよい。
【００６４】
図１に示す如くの分散コンピューティングシステムのクライアントコンピュータ２２は、大容量記憶装置、又は、大規模なＲＡＭ２１２の何れも必要としない。かかるシステムは、クライアントコンピュータのコストを低下させ、低価格のクライアントコンピュータの機能を増強する。その上、かかるクライアントコンピュータは分散コンピューティングシステムに自由に参加し、分散コンピューティング機能に何時でも参加（又は、離脱し、後で復帰）することができ、クライアントコンピュータのペースで参加することが可能である。
【符号の説明】
【００６５】
１０  サーバーコンピュータ
２０，２２，２４，２６  クライアントコンピュータ
３０  トランスポート機構
４０  ローカルコンピュータ
５０  補助データ処理装置
６０  中央処理装置
７０  大容量記憶装置
８０  利用者
１０１  アプリケーションソース
１０２  フロービルダー
１０３  トランシーバー
１０４  トランスポートパケット化器
１０６  パケットマルチプレクサ
１０７  補助データソース
１０８，１０８ａ  チャンネルソース
１０９  クロック
１１０  トランスポートマルチプレクサ
２０２  ストリームセレクタ
２０４  補助データ取得器
２０６  パケットデータ取得器
２０７  データストリーム受信器
２０８  ストリームＩ／Ｏアダプタ
２１０  プロセッサ
２１２  ＲＡＭ
２１４  ＲＯＭ
２１６  システムバス
２１８  Ｉ／Ｏポート
２２０  ユーザＩ／Ｏアダプタ
２２２  モデム
２２４  処理ユニット
【図１】
2011028759.tif 000003
【図２】
2011028759.tif 000004
【図３】
2011028759.tif 000005
【図４】
2011028759.tif 000006
【手続補正書】
【提出日】平成22年9月16日(2010.9.16)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
一部のパケットはビデオプログラムを表す補助データを含み、他のパケットは前記ビデオプログラムに関連する分散計算アプリケーションを含む時分割多重化されたパケットの系列を提供するデータストリームのソースと、
前記ビデオプログラムを表す補助データを含むパケットを選択し、ビデオ信号プロセッサに提供し、前記関連する分散計算アプリケーションを含むパケットを選択し、さらなるプロセッサに提供する、前記ソースに接続されるパケットセレクタを有するクライアントコンピュータと、
前記分散計算アプリケーションを構成し、前記分散計算アプリケーションの実行により前記ビデオプログラムが変更されるインタラクティブビデオプログラムを生成するため、前記分散計算アプリケーションを実行する手段を有する前記さらなるプロセッサと、
を有する分散コンピュータシステムであって、
前記分散計算アプリケーションは、前記ビデオプログラムの送信期間中、クライアントコンピュータ装置の受信に関係なく繰り返し送信される分散コンピュータシステム。
【請求項２】
前記さらなるプロセッサは、グラフィカル画像を生成し、前記グラフィカル画像と前記ビデオプログラムとをインタラクティブに合成するグラフィックアダプタを有する、請求項１記載の分散コンピュータシステム。
【請求項３】
前記ビデオプログラムはテレビプログラムであり、
前記さらなるプロセッサは、グラフィカル画像を生成し、前記グラフィカル画像と前記テレビプログラムとをインタラクティブに合成するグラフィックアダプタを有する、請求項１記載の分散コンピュータシステム。
【請求項４】
前記さらなるプロセッサは、合成された音声を生成し、前記合成された音声と前記ビデオプログラムとをインタラクティブに合成するサウンドアダプタを有する、請求項１記載の分散コンピュータシステム。
【請求項５】
前記さらなるプロセッサは、プログラム制御と、これに応答する前記データストリームからのコード及び／又はデータモジュールに対する前記パケットセレクタのリクエストとを格納するためのメモリを有する、請求項１記載の分散コンピュータシステム。
【請求項６】
各分散計算アプリケーションがクライアントコンピュータ装置の受信に関係なく繰り返し送信され、パケットの系列の形態を有する複数の分散計算アプリケーションを含む時分割多重化されたパケット信号のソースと、
実行可能コードモジュールを表すデータを含む各系列の第１パケットであって、該第１パケットが前記実行可能コードモジュールを表すデータを含むことを示す識別情報を含む第１パケットと、
データモジュールを表すデータを含む前記系列の第２パケットであって、該第２パケットが前記データモジュールを表すデータを含むことを示す識別情報を含む第２パケットと、
補助データを含む前記系列の第３パケットであって、該第３パケットが補助データを含むことを示す識別情報を含む第３パケットと、
前記複数の分散計算アプリケーションの１つのパケットを選択し、前記選択されたパケットに含まれる前記対応する分散計算アプリケーションを表すデータを抽出し、前記抽出した分散計算アプリケーションを実行するため前記データにコンピュータプログラム制御装置を適用するデータ受信機を含むクライアントコンピュータと、
を有する分散コンピュータシステムであって、
前記データ受信機は、前記データストリームの補助パケットから補助データを抽出し、補助データプロセッサに供給する分散コンピュータシステム。
【請求項７】
信号の一部がクライアントコンピュータ装置の受信に関係なく繰り返し送信される分散計算アプリケーションを表すデータを含む複数の時分割多重化された信号を表すパケットの系列を含むデータストリームを生成するデータストリームソースと、
前記データストリームを受信し、前記データストリームから前記分散計算アプリケーションを表すデータを抽出し、前記抽出した分散計算アプリケーションを実行するクライアントコンピュータと、
を有する分散コンピュータシステムであって、
前記分散計算アプリケーションを表す信号のパケットの少なくとも１つは、前記分散計算アプリケーションに関連する情報インターレイティングパケットを含むディレクトリモジュールを含み、
前記クライアントコンピュータは、前記データストリームから前記ディレクトリモジュールを抽出し、前記ディレクトリモジュールに含まれるデータを用いて、前記分散計算アプリケーションに関連するパケットを抽出し、前記分散計算アプリケーションを構成及び実行する分散コンピュータシステム。
【請求項８】
前記パケットの系列の第１系列は、実行可能コードモジュールを表すデータを含み、前記第１系列が実行可能コードモジュールを表すデータを含むことを示す識別情報を含み、
前記パケットの系列の第２系列は、データモジュールを表すデータを含み、前記第２系列がデータモジュールを表すデータを含むことを示す識別情報を含み、
前記パケットの系列の第３系列は、１つの分散計算アプリケーションに関連する前記ディレクトリモジュールのインターレイティング送信モジュールを表すデータを含み、前記第３系列が前記ディレクトリモジュールを示すデータを含むことを示す識別情報を含み、
前記パケットの系列の第４系列は、補助データを含み、前記第４系列が補助データを含むことを示す識別情報を含む、請求項７記載の分散コンピュータシステム。
【請求項９】
分散コンピュータシステムにおけるクライアントコンピュータであって、
当該クライアントコンピュータに関係なく繰り返し送信される分散計算アプリケーションを表すデータのパケットであって、該パケットの少なくとも１つが前記分散計算アプリケーションを含む情報インターレイティングパケットを含むディレクトリモジュールを含む前記パケットと時間多重化されたビデオ信号のパケットを含むパケットデータストリームを受信する入力ターミナルと、
前記入力ターミナルに接続され、前記データストリームを受信し、前記ビデオ信号と前記分散計算アプリケーションとの別々のデータストリームを提供し、前記ディレクトリモジュールを抽出し、前記ディレクトリに応じて、前記分散計算アプリケーションを表すデータを含むパケットを抽出するデータストリーム受信機と、
前記データストリーム受信機に接続され、前記分散計算アプリケーションを構成及び実行する処理ユニットと、
を有し、
前記処理ユニットは、
システムバスと、
前記システムバスに接続されるリード／ライトメモリと、
前記データストリーム受信機と前記システムバスとの間に接続され、前記データストリーム受信機から前記抽出された分散計算アプリケーションを表すデータを受信し、前記リード／ライトメモリに格納するデータストリーム入出力アダプタであって、選択制御信号を生成するデータストリームセレクタの選択制御入力ターミナルに接続される制御出力ターミナルを有するデータストリーム入出力アダプタと、
前記システムバスに接続され、前記複数のデータストリームの指定された１つを選択する選択制御信号を生成するよう前記データストリーム入出力アダプタを制御し、前記リード／ライトメモリに格納されている前記分散計算アプリケーションを構成及び実行するプロセッサと、
を有するクライアントコンピュータ。