以下に、本発明の実施の形態を説明するが、請求項に記載の構成要件と、発明の実施の形態における具体例との対応関係を例示すると、次のようになる。この記載は、請求項に記載されている発明をサポートする具体例が、発明の実施の形態に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、構成要件に対応するものとして、ここには記載されていない具体例があったとしても、そのことは、その具体例が、その構成要件に対応するものではないことを意味するものではない。逆に、具体例が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その具体例が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
さらに、この記載は、発明の実施の形態に記載されている具体例に対応する発明が、請求項に全て記載されていることを意味するものではない。換言すれば、この記載は、発明の実施の形態に記載されている具体例に対応する発明であって、この出願の請求項には記載されていない発明の存在、すなわち、将来、分割出願されたり、補正により追加される発明の存在を否定するものではない。
請求項1に記載の情報処理装置は、
他の情報処理装置と通信網を介して情報を授受する情報処理装置(例えば、図1の端末11−1)であって、
ユーザからの録画の予約の指令に基づいて、番組の録画の予約を行う録画予約手段(例えば、図8のステップS12の処理を実行する図3の予約管理プログラム71)と、
前記他の情報処理装置に番組の録画の予約の要求を行う録画予約要求手段(例えば、図8のステップS15の処理を実行する図3の予約管理プログラム71)と、
前記録画予約手段による番組の録画の予約に基づいて、録画処理を実行する録画手段(例えば、図8のステップS17の処理を実行する図3の予約管理プログラム71)と、
前記録画手段により録画処理が失敗した場合、前記録画予約要求手段により番組の録画の予約の要求を行った前記他の情報処理装置に、録画データを送信するよう要求する録画データ送信要求手段(例えば、図9のステップS19、図24のステップS503,またはステップS506の処理を実行する図3の予約管理プログラム71)と、
前記録画手段により録画処理が成功した場合、または、前記録画データ送信要求手段による要求に対して前記他の情報処理装置から送信されてきた録画データを受信した場合、前記他の情報処理装置に対して、録画データを削除するよう要求する録画データ削除要求手段(例えば、図9のステップS22の処理を実行する図3の予約管理プログラム71)と、
前記録画手段により録画処理が成功した場合に得られる録画データ、または、前記録画データ送信要求手段による要求に対して前記他の情報処理装置から送信されてきた録画データを、録画済みデータとして記憶するよう制御する記憶制御手段(例えば、図9のステップS23の処理を実行する図3の予約管理プログラム71)と、
前記録画データを統合する統合手段(例えば、図24のステップS505の処理を実行する図3の予約管理プログラム71)と
を備え、
前記録画データ送信要求手段は、前記録画手段により録画処理が失敗した場合、かつ、前記録画予約要求手段により番組の録画の予約の要求を行った前記他の情報処理装置においても録画処理が失敗した場合、前記他の情報処理装置に、録画データを送信するよう要求し、(例えば、図24のステップS503)
前記統合手段は、前記録画手段により得られた録画データと、前記他の情報処理装置から送信されてきた録画データを統合し(例えば、図24のステップS505)、
前記記憶制御手段は、前記統合手段により統合された録画データを、録画済みデータとして記憶するよう制御する
ことを特徴とする。
請求項2に記載の情報処理装置の前記通信網は、セルネットワークである
ことを特徴とする。
請求項3に記載の情報処理装置は、
複数の前記他の情報処理装置にステータスを問い合わせるステータス問い合わせ手段(例えば、図8のステップS13の処理を実行する図3の予約管理プログラム71)と、
前記ステータス問い合わせ手段による問い合わせに対する応答に基づいて、複数の前記他の情報処理装置の中から番組の録画の予約の要求を行う前記他の情報処理装置を選択する選択する録画予約端末選択手段(例えば、図8のステップS14の処理を実行する図3の予約管理プログラム71)と
をさらに備え、
前記録画予約要求手段は、前記録画予約端末選択手段により選択された前記他の情報処理装置に、番組の録画の予約の要求を行う
ことを特徴とする。
請求項4に記載の情報処理装置は、
前記録画予約要求手段による番組の録画の予約の要求に対する、他の情報処理装置からの応答に基づいて、録画予約が成功したことを示す確認画面を表示する表示手段(例えば、図8のステップS16の処理を実行する図3の出力部57)をさらに備える
ことを特徴とする。
請求項5に記載の情報処理方法は、
他の情報処理装置と通信網を介して情報を授受する情報処理装置の情報処理方法であって、
ユーザからの録画の予約の指令に基づいて、番組の録画の予約を行う録画予約ステップ(例えば、図8のステップS12)と、
前記他の情報処理装置に番組の録画の予約の要求を行う録画予約要求ステップ(例えば、図8のステップS15)と、
前記録画予約ステップの処理による番組の録画の予約に基づいて、録画処理を実行する録画ステップ(例えば、図8のステップS17)と、
前記録画ステップの処理により録画処理が失敗した場合、前記録画予約要求ステップの処理により番組の録画の予約の要求を行った前記他の情報処理装置に、録画データを送信するよう要求する録画データ送信要求ステップ(例えば、図9のステップS19、図24のステップS503,またはステップS506)と、
前記録画ステップの処理により録画処理が成功した場合、または、前記録画データ送信要求ステップの処理による要求に対して前記他の情報処理装置から送信されてきた録画データを受信した場合、前記他の情報処理装置に対して、録画データを削除するよう要求する録画データ削除要求ステップ(例えば、図9のステップS22)と、
前記録画ステップの処理により録画処理が成功した場合に得られる録画データ、または、前記録画データ送信要求ステップの処理による要求に対して前記他の情報処理装置から送信されてきた録画データを、録画済みデータとして記憶するよう制御する記憶制御ステップ(例えば、図9のステップS23)と、
前記録画データを統合する統合ステップ(例えば、図24のステップS505)と
を含み、
前記録画データ送信要求ステップにおいて、前記録画ステップで録画処理が失敗した場合、かつ、前記録画予約要求ステップで番組の録画の予約の要求を行った前記他の情報処理装置においても録画処理が失敗した場合、前記他の情報処理装置に、録画データを送信するよう要求し(例えば、図24のステップS503)、
前記統合ステップにおいて、前記録画ステップにより得られた録画データと、前記他の情報処理装置から送信されてきた録画データを統合し(例えば、図24のステップS505)、
前記記憶制御ステップにおいて、前記統合ステップで統合された録画データを、録画済みデータとして記憶するよう制御する
ことを特徴とする。
請求項6に記載のプログラムは、
他の情報処理装置と通信網を介して情報を授受する情報処理装置を制御するプログラムであって、
ユーザからの録画の予約の指令に基づいて、番組の録画の予約を行う録画予約ステップ(例えば、図8のステップS12)と、
前記他の情報処理装置に番組の録画の予約の要求を行う録画予約要求ステップ(例えば、図8のステップS15)と、
前記録画予約ステップの処理による番組の録画の予約に基づいて、録画処理を実行する録画ステップ(例えば、図8のステップS17)と、
前記録画ステップの処理により録画処理が失敗した場合、前記録画予約要求ステップの処理により番組の録画の予約の要求を行った前記他の情報処理装置に、録画データを送信するよう要求する録画データ送信要求ステップ(例えば、図9のステップS19、図24のステップS503,またはステップS506)と、
前記録画ステップの処理により録画処理が成功した場合、または、前記録画データ送信要求ステップの処理による要求に対して前記他の情報処理装置から送信されてきた録画データを受信した場合、前記他の情報処理装置に対して、録画データを削除するよう要求する録画データ削除要求ステップ(例えば、図9のステップS22)と、
前記録画ステップの処理により録画処理が成功した場合に得られる録画データ、または、前記録画データ送信要求ステップの処理による要求に対して前記他の情報処理装置から送信されてきた録画データを、録画済みデータとして記憶するよう制御する記憶制御ステップ(例えば、図9のステップS23)と、
前記録画データを統合する統合ステップ(例えば、図24のステップS505)と
を含み、
前記録画データ送信要求ステップにおいて、前記録画ステップで録画処理が失敗した場合、かつ、前記録画予約要求ステップで番組の録画の予約の要求を行った前記他の情報処理装置においても録画処理が失敗した場合、前記他の情報処理装置に、録画データを送信するよう要求し(例えば、図24のステップS503)、
前記統合ステップにおいて、前記録画ステップにより得られた録画データと、前記他の情報処理装置から送信されてきた録画データを統合し(例えば、図24のステップS505)、
前記記憶制御ステップにおいて、前記統合ステップで統合された録画データを、録画済みデータとして記憶するよう制御する
処理をコンピュータに実行させることを特徴とする。
以下、図を参照して、本発明の実施の形態について説明する。
図1は、本発明を適用した一実施の形態の情報処理システムの構成例を説明する図である。
端末装置11−1は、端末装置11−2乃至端末装置11−5と、ホームネットワーク21を介して相互に接続されている。端末装置11−1乃至端末装置11−5は、それぞれホームネットワーク21を介して通信可能とされている。また、ホームネットワーク21は、インターネット22にも接続されており、端末装置11−1乃至端末装置11−5は、ホームネットワーク21とインターネット22を介して、インターネット22に接続されている端末装置11−6と通信する。なお、本実施の形態においては、ホームネットワーク21とインターネット22を個々に区別する必要がない場合、単にネットワーク(通信網)と称する。
端末装置11−1は、アンテナ12−1とHDD(Hard Disk Drive)13−1を有しており、端末装置11−2は、アンテナ12−2とHDD13−2を有している。以下、同様に、端末装置11−3乃至端末装置11−6は、それぞれ対応するアンテナ12−3乃至アンテナ12−6と、HDD13−3乃至HDD13−6を有している。
図1においては、端末装置11−1乃至端末装置11−4、並びに端末装置11−6のアンテナ12−1乃至アンテナ12−4、並びにアンテナ12−6が受信可能な状態とされており、端末装置11−5のアンテナ12−5は放送を受信することができない状態とされている。また、端末装置11−1乃至端末装置11−3、並びに端末装置11−5および端末装置11−6のHDD13−1乃至HDD13−3、並びにHDD13−5,HDD13−6は空き容量が十分ある状態とされており、端末装置11−4のHDD13−4の空き容量は少ない(または、ない)状態とされている。
なお、以下において、端末装置11−1乃至端末装置11−6、アンテナ12−1乃至アンテナ12−6、並びにHDD13−1乃至HDD13−6をそれぞれ個々に区別する必要がない場合、それぞれ、端末装置11、アンテナ12、およびHDD13と称する。また、以下において、端末装置11は、端末11とも称する。端末11は、放送されたテレビ番組を受信することが可能、かつ、DVD(Digital Versatile Disk)±RW(Re-writable)およびブルーレイディスクなどの記録装置や固定ディスク(HDD)に、受信したテレビ番組のデータを録画(記録)する機能を有するハードディスクレコーダなどの録画機器(ホームサーバ)である。
詳細は後述するが、この情報処理システムにおいては、ユーザから録画の予約を受け付けた端末11(例えば、端末11−1)が、複数の他の端末11(端末11−2乃至端末11−6)のうち、バックアップとして、録画の予約を依頼する端末11(例えば、端末11−2)を選択し、録画の予約を依頼することで、容易に録画予約を行うようにするものである。
図2は、図1の端末11の構成例を示すブロック図である。
図2において、CPU(Central Processing Unit)51は、ROM(Read Only Memory)52に記憶されているプログラム、または、HDD13からRAM(Random Access Memory)53にロードされたプログラムに従って各種の処理を実行する。RAM53にはまた、CPU51が各種の処理を実行する上において必要なデータなどが適宜記憶される。
CPU51、ROM52、およびRAM53は、内部バス54を介して相互に接続されている。この内部バス54にはまた、入出力インターフェース55も接続されている。
入出力インターフェース55には、キーボード、マウスなどよりなる入力部56、CRT,LCDなどよりなるディスプレイ、スピーカなどよりなる出力部57、ハードディスク13、並びに、モデム、ターミナルアダプタなどより構成される通信部58が接続されている。通信部58は、電話回線やCATVを含む各種のネットワークを介しての通信処理を行う。
入出力インターフェース55にはまた、必要に応じてドライブ59が接続され、磁気ディスク、光ディスク、光磁気ディスク、あるいは半導体メモリなどによりなるリムーバブルメディア61が適宜装着され、それから読み出されたコンピュータプログラムが、必要に応じてHDD13にインストールされる。
図3は、図2の端末11の機能的構成例(ソフトウェアの構成例)を示すブロック図である。
端末11には、予約管理プログラム71、GUI処理モジュール72、録画モジュール73、認証モジュール74、再生モジュール75、タイマ76、デバイス77、およびネットワークインタフェース78の他に、HDD13、入力部56、および出力部57がさらに設けられている。
予約管理プログラム71は、端末11の電源がオンされたとき(システム起動時)にHDD13から、RAM52に読み込まれ、CPU51(図2)で処理されるプログラムであり、録画予約に関する処理を実行する。また、予約管理プログラム71は、GUI処理モジュール72、録画モジュール73、認証モジュール74、タイマ76、デバイス77、およびHDD13の各部を制御する。
GUI処理モジュール72は、ユーザからの入力部56への操作を受け付けるための処理を実行したり、出力部57への出力を制御する処理を実行する。すなわち、GUI処理モジュール72は、ユーザからの録画予約の指示を受け付けたり、録画予約の結果の表示をするための制御処理を実行する。
録画モジュール73は、デバイス77やHDD13などを制御して録画処理を実行する。例えば、録画モジュール73は、デバイス77を制御して、アンテナ12から受信した(テレビ)番組のデータを、読み込み、HDD13に録画データとして記憶させる処理(すなわち、録画処理)を実行する。
認証モジュール74は、インターネット22(図1)を介する端末11(例えば、外部の端末11−6)との間で認証処理を実行する。
再生モジュール75は、予約管理プログラム71により予約され、録画された結果(すなわち、録画処理の結果)の録画データを(HDD13から)、再生する。
タイマ76は、時刻の管理を行う。例えば、タイマ76は、予約管理プログラム71からの指令に基づいて、録画する時刻(録画が予約される時刻、すなわち、録画予約時刻)を設定し、録画予約時刻になった場合に、予約管理プログラム71に通知する。
ネットワークインタフェース78は、ホームネットワーク21に接続するためのインターフェースである。
HDD13は、設定ファイル91、予約ファイル92、録画データリスト93、および録画データ94が記憶されている。また、HDD13には、図示せぬプログラムなどが記憶されている。HDD13は、補助記憶装置である。また、HDD13は、ネットワーク全体を通して(図1の例の場合、ホームネットワーク21およびインターネット22の全体を通して)、一意的に識別可能な端末IDを記憶している。
端末11の電源が投入(オン)されると、端末11の制御に必要な初期化処理が実行される。すなわち、端末11を制御するソフトウェアの1つとして、予約録画管理ソフトウェア(予約管理プログラム71を実行するためのソフトウェア)が、補助記憶装置(例えば、リムーバブルメディア61)からHDD13に読み込まれ、CPU51でHDD13に読み込まれた予約管理プログラム71を実行する。
このような端末11における録画予約処理を簡単に説明すると、ユーザからの入力部56に対する操作入力(例えば、録画予約を指令する操作)をGUI処理モジュール72が受け付け、GUI処理モジュール72は、受け付けた録画予約の指令を予約管理プログラム71に供給する。予約管理プログラム71では、その録画予約の指令に基づいて、タイマ76に予約時間をセットするとともに、HDD13に、録画の予約に関する情報を、予約ファイル92として書き込む。そして、予約管理プログラム71は、録画予約を受け付けたことを示す画面を、GUI処理モジュール72を制御して出力部57に出力させる。また、予約管理プログラム71は、タイマ76から予約時間になったことを表す通知が供給されると、録画モジュール73に対し、録画の指令を行う。録画モジュール73はこの録画の指令に基づいて、デバイス77を制御し、アンテナ12を介して受信した録画データを、HDD13に録画データ94として記憶させる。
次に、HDD13に記憶される設定ファイル91、予約ファイル92、録画データリスト93および録画データ94のデータ形式について、図4乃至図7を参照して説明する。
図4は、設定ファイル91のデータ形式の例を説明する図である。
設定ファイル91には、ソフトウェア管理に関する設定情報が含まれている。図4の例の場合、設定ファイル91には、バックアップ機構の有効・無効、重要度判定の自動・手動、連携範囲の内部・外部、外部連携の有効・無効、外部連携の認証コード、バックアップ連携の有効・無効、連携先リスト[1−x]:****、および連携認証コード[1−x]:****が含まれている。
端末11−1において、バックアップ機構が有効である場合(端末11−1の設定ファイル91のバックアップ機構が「有効」である場合)、端末11−1では、後述する2次端末としての動作が可能であることを示す。すなわち、この場合、端末11−1は、他の端末11−2乃至11−6に対して、ユーザから録画予約が指令された場合に、録画予約が指令された端末11(例えば、端末11−2)からの依頼に基づいて、録画予約を設定し、録画処理を実行する動作(バックアップ動作)が可能である。バックアップ機構が向こうである場合、2次端末としての動作は不可能である。すなわち、この場合、端末11−1は、バックアップ動作をすることが可能ではない。
重要度判定は、予約管理プログラム71がその番組の録画予約が重要であるか否かを判定してもよい場合に自動とされ、ユーザにより、その番組の録画予約が重要であるか否かが設定される場合に手動とされている。端末11−1において連携範囲が内部である場合、端末11−1は、ホームネットワーク21に接続された端末11−2乃至11−5のみに対して連携(例えば、バックアップの指令やステータスの問い合わせなど)可能であり、連携範囲が外部である場合、端末11−1は、ホームネットワーク21内部の端末11−2乃至端末11−5だけでなく、ホームネットワーク21外部の、インターネット22に接続されている端末11−6までも、連携可能であることを示す。外部連携の認証コードは、外部連携が有効である場合、端末11−1が、その外部の端末11−6と連携するための認証コードが設定されている。認証モジュール74は、この認証コードを用いて、他の端末との間で認証処理を行う。
端末11−1において、バックアップ連携が有効である場合、端末11−1は、他の端末11−2乃至端末11−5(または端末11−6)との間でバックアップ連携が可能であることを示し、バックアップ連携が無効である場合、端末11−2は、他の端末11−2乃至11−5(または端末11−6)との間でバックアップ連携が不可能であることを示す。連携先リストは、バックアップ連携が有効である場合に、その連携先の情報(例えば、端末ID)などが書き込まれている。また、連携先認証コードは、バックアップ連携が有効である場合に、その連携先との間の認証コードが書き込まれている。認証モジュール74は、この認証コードを用いて、他の端末11−2乃至端末11−5との間で認証処理を行う。
このように、図4の設定ファイル91には、ソフトウェアの管理に関する設定情報が含まれている。
図5は、予約ファイル92のデータ形式の例を説明する図である。
予約ファイル92には、1つの番組の録画の予約に関する情報が含まれている。図5の例の場合、予約ファイル92には、予約種類の1次・2次、録画結果の未・成功・失敗、1次予約端末ID、予約ID、重要度が1,2,3、録画開始時刻、録画終了時刻、記録モードがSP,LP、および番組情報(チャンネル他)が含まれている。なお、1次予約端末IDは、省略するようにしてもよい。
予約の種類が1次である場合、その予約ファイル92が設定されている端末11が、ユーザからの指令を受け付けた端末(後述する1次端末)であることを示し、予約の種類が2次である場合、その予約ファイル92が設定されている端末11が、ユーザからの指令を受け付けた1次端末からの指令に基づいて録画を予約する端末(後述する2次端末)であることを示す。
予約IDは、録画を予約する度に付される、録画予約を識別するためのIDである。重要度は、その録画予約に対する重要度を示している。記録モードがSP(スタンダードプレイ)である場合、通常録画が行われ、LP(ロングプレイ)の場合、フレームの間引きや低解像度による録画が行われる。番組情報は、チャンネルなどの番組情報(例えば、メタデータなどにより示される情報)である。
図6は、録画データリスト93の例を説明する図である。
録画データリスト93には、HDD13内に記録された録画データ94のリストが含まれている。図6の例の場合、録画データリスト93には、録画ID、録画開始時間、録画終了時間、記録モード、および番組情報が含まれている。なお、録画IDの代わりに、予約IDを用いるようにしてもよい。
図6の1行目の場合、録画IDがID1であり、録画開始時刻が2004/5/10 10:00:00であり、録画終了時刻が2004/5/10 11:00:00であり、記録モードがSPであり、番組情報が1ch(チャンネル)である。なお、録画終了時刻の代わりに、録画時間(録画開始時刻からの録画時間)を用いるようにしてもよい。
予約管理プログラム71は、録画予約が完了し、録画結果を保存する(録画データを記憶させる)場合に、録画データリスト93にその録画データに対する項目を追加する。また、再生モジュール75は、録画データリスト93に基づいて、再生するデータを選択させる。
図7は、録画データ94の例を説明する図である。
録画データ94には、録画ID、AVデータ、およびメタデータが含まれている。
録画データ94は、録画データリスト93に対応しており、予約管理プログラム71による、録画データリスト93の追加と同じタイミングで、録画データ94として追加される。すなわち、図6の録画IDと同じ録画IDのAVデータとメタデータは関連付けられており、録画データリスト93の録画ID1が選択された場合、図7の録画ID1のAVデータとメタデータが読み出される。
次に、図8と図9のフローチャートを参照して、図1の情報処理システムにおける、端末11の予約録画処理について説明する。なお、この処理は、ユーザから録画予約を指令する操作が入力部56に入力されたとき開始される。また、図8と図9の例では、ユーザが、端末11−1の入力部56に録画予約を指令する操作を入力した場合について説明する。さらに、本実施の形態においては、ユーザにより録画予約が直接操作されて指令された端末を、1次端末と称し、1次端末により、バックアップ端末として選択された端末を、2次端末と称する。
ステップS11において、端末11−1の予約管理プログラム71は、GUI処理モジュール72を介して、入力部56に入力されるユーザから録画予約の指令を受け付ける。すなわち、この例の場合、端末11−1が1次端末となる。
ステップS12において、端末11−1の予約管理プログラム71は、1次予約処理(1次端末における録画予約処理)を実行する。具体的には、予約管理プログラム71は、ユーザからの指令に基づいて、予約ファイル92を生成し、HDD13−1に記憶させるとともに、タイマ76に予約時間(予約ファイル92の録画開始時刻)をセットする。この処理は、後述するステップS17の録画処理を、予約するための処理である。
ステップS13において、端末11−1の予約管理プログラム71は、他の端末にステータスを問い合わせる。具体的には、予約管理プログラム71は、バックアップ端末を選択するために、認証モジュール74とネットワークインタフェース78を制御し、ホームネットワーク21を介して、他の端末11−2乃至端末11−5にステータスを問い合わせる。例えば、予約管理プログラム71は、図10に示されるような2次予約問い合わせパケットを、ステータスの問い合わせとして、他の端末11−2乃至端末11−5に送信する。
図10は、2次予約要求または2次予約問い合わせのための、パケットのフォーマットの例を示している。図10のパケットには、1次予約端末ID、予約ID、重要度:[1,2,3]、録画開始時刻、録画終了時刻、記録モード(SP,LP)、および番組情報(チャンネル他)が含まれている。1次予約端末IDは、この例の場合、端末11−1を特定するIDであり、予約IDは、ステップS12の処理で生成された予約ファイル92の予約IDであり、重要度、録画開始時刻、録画終了時刻、記録モード、および番組情報についても、予約ファイル92に対応している。図10のパケットは、2次予約問い合わせ、または2次予約要求のために利用される。すなわち、このステップS13の処理では、図10のパケットを、2次予約問い合わせパケットとして扱い、例えば、後述するステップS15の処理では、2次予約要求パケットとして扱う。
これに対し、端末11−2の予約管理プログラム71は、ステップS31において、ネットワークインタフェース78と認証モジュール74を介して、このステータスの問い合わせ(図10の2次予約問い合わせパケット)を受け付け、端末11−2内のHDD13−2の空き容量(録画データ94を記憶するための空き容量)と、設定ファイル91のバックアップ連携動作の有効フラグなどをチェックする。なお、端末11−2に補助記憶装置が設けられている場合、その空き容量をあわせてチェックするようにしてもよい。設定ファイル91のバックアップ連携動作のフラグが有効である場合、端末11−2は処理をステップS32に進める。
ステップS32において、端末11−2の予約管理プログラム71は、ステップS31の処理でチェックした結果(リソース情報を含む結果)を、2次予約問い合わせ応答としてステータスを問い合わせてきた端末11−1(2次予約問い合わせパケットを送信してきた1次端末)に送信(応答)する。
このとき応答される2次予約問い合わせ応答のパケットの例を図11に示す。図11の2次予約問い合わせ応答のパケットには、予約ID、要求の可・不可、自端末ID、および提供可能リソースが含まれている。予約IDは、ステップS31の処理で受信した図10の2次予約問い合わせパケットに含まれていた予約IDと同じIDであり(すなわち、その2次予約問い合わせ要求に対する応答であることを示すためのものであり)、要求の可・不可は、2次予約要求または2次予約問い合わせが、実行可能であるか、実行不可能であるか否かを、1次端末に通知するためのものであり、自端末IDは、ステップS31の処理で2次予約問い合わせパケットを受信した端末11−2(2次端末、すなわち、この処理を実行する端末)のIDであり、提供可能リソースは、要求を受けた端末11−2(自端末)における提供可能リソースを示すものである。このリソース情報の例を、図12を参照して説明する。
図12は、リソース情報72の例を示す図である。リソース情報72には、ハードディスク(HDD)空き容量、CPU使用率、および受信状況が含まれている。
ハードディスク空き容量には、予約要求を受けた2次端末(端末11−2)のHDD13−2の空き容量が書き込まれ、CPU使用率には、2次端末(端末11−2)のCPU51の使用率が書き込まれ、受信状況には、2次端末(端末11−2)のデバイス77を介して取得されたアンテナ12による放送の受信状況が書き込まれる。すなわち、このリソース情報は、2次端末11−2が1次端末11−1に提供可能な空きリソース情報となる。
なお、図11の2次予約問い合わせ応答のパケットは、図10の2次予約問い合わせパケットに対する応答だけでなく、図10の2次予約要求パケットに対する応答としても用いられる。
次に、端末11−1からのステップS13の処理によるステータス問い合わせを受けた端末11−3の予約管理プログラム71は、端末11−2によるステップS31とステップS32の処理と同様に、ステップS51においてステータスのチェックを行い、端末11−3におけるステータスを、図11の2次予約問い合わせ応答パケット(リソース情報を含むパケット)として、ステップS52において送信(応答)する。
また、端末11−1からのステップS13の処理によるステータス問い合わせを受けた端末11−4の予約管理プログラム71は、端末11−2によるステップS31の処理と同様に、ステップS61においてステータスのチェックを行う。端末11−4では、設定ファイル91のバックアップ連携フラグが無効であるので、ステータス(図11の2次予約問い合わせ応答パケット)の送信処理は実行されず、処理は終了される。すなわち、設定ファイル91のバックアップ連携フラグが無効である端末11−4は、2次端末となることはない。なお、この例では、端末11−4が図11の2次予約問い合わせ応答パケットを送信しないようにしたが、図11の2次予約問い合わせ応答パケットの「要求」を「不可」として、送信するようにしてもよい。
なお、端末11−5は、例えば、電源がオフされており、ホームネットワーク21に接続されていなかったものとする。
端末11−1は、端末11−2によりステップS32の処理で送信されたステータス(リソース情報を含む図11の2次予約問い合わせ応答パケット)と、端末11−3によりステップS52の処理で送信されたステータス(リソース情報を含む図11の2次予約問い合わせ応答パケット)とを受信すると、ステップS14において、2次端末を選択する。具体的には、端末11−1の予約管理プログラム71は、受信した端末11−2と端末11−3のリソース情報を含む図11の2次予約問い合わせ応答パケットから、バックアップ可能であり、かつ、最も空き容量を備える端末を、2次端末として選択する。この処理では、端末11−2が2次端末(バックアップ端末)として選択される。なお、本実施の形態では、1次端末(端末11−1)で実行される録画予約の動作を1次予約(1次録画予約)と称し、2次端末(端末11−2)で実行される録画予約の動作を2次予約(2次録画予約)と称する。
ステップS15において、端末11−1の予約管理プログラム71は、ステップS14の処理で選択した2次端末(端末11−2)へ予約要求を行う。例えば、端末11−1の予約管理プログラム71は、上述した図10に示されるようなパケットを、2次予約要求パケットとして、端末11−2に送信する。なお、端末11−3は、ステップS52でステータスを送信した後、端末11−1から予約要求がないため、処理を終了する。
これに対し、端末11−2の予約管理プログラム71は、ステップS33において、端末11−1からの2次予約要求(図10)を受け付け、2次予約処理(2次端末における録画予約処理)を実行する。2次予約処理の詳細は、ステップS12の1次予約処理と同様である。詳細は後述するが、端末11−2は、この処理の後、2次予約処理が完了したことを示す通知を端末11−1に送信する。
端末11−1の予約管理プログラム71は、ステップS15の処理の後、(端末11−2から2次予約処理が完了したことを示す通知を受け取ると)ステップS16において、予約状況確認画面を表示する。例えば、端末11−1の予約管理プログラム71は、GUI処理モジュール72を制御して、出力部57に、図13に示されるようなバックアップ受け付け完了画面を表示させる。
図13の画面には、「予約を受け付けました。」「信頼度:<高>、バックアップ端末に、端末11−2が選択されました。」というメッセージが表示されている。ユーザは、この画面を見ることで、バックアップ予約が実行されたことを確認することができる。
図8に戻って、端末11−1は、録画予約時刻(図5の予約ファイル92の録画開始時刻)になると、ステップS17において、録画処理を実行する。具体的には、端末11−1の予約管理プログラム71は、予約ファイル92に基づいて、録画モジュール73に録画処理を指令し、録画モジュール73は、この指令に基づいて、デバイス77を制御し、アンテナ12を介して放送されているテレビ番組のデータを受信する。そして、録画モジュール73は、受信したテレビ番組のデータを録画データとして保持する。
端末11−1の予約管理プログラム71は、録画終了後(すなわち、録画終了時刻になったら)、ステップS18において、録画モジュール73を制御して録画結果を確認する。この録画結果は、例えば、図5の予約ファイル92の録画結果に書き込まれる。すなわち、ステップS12で予約ファイル92が生成された時点では、録画結果は「未」であり、ステップS18の処理で、録画結果が「成功」または「失敗」に書き換えられる。
端末11−1の予約管理プログラム71は、ステップS19において、ステップS18の処理で確認した録画結果を、2次端末である端末11−2に通知する。録画結果には、後述する図14と同様に、「予約ID、端末ID(1次端末のID)、録画結果(成功または失敗)」が録画結果として通知される。また、端末11−1の予約管理プログラム71は、後述するステップS36の処理で端末11−2から送信されてくる録画結果(2次端末における録画結果)を受信する。
この端末11−1におけるステップS17,ステップS18,ステップS19と同様の処理が、端末11−2におけるステップS34,ステップS35,ステップS36で実行される。
ここで、ステップS36の処理で端末11−2により送信される、2次端末における2次録画結果のメッセージの例を、図14を参照して説明する。図14に示されるように、この2次録画結果のメッセージには、予約ID、端末ID(2次端末のID)、および録画結果(成功または失敗)が含まれている。端末11−1は、図14のメッセージを受け取ることで、2次端末(端末11−2)の録画結果を確認することができる。
端末11−2の予約管理プログラム71は、ステップS36の処理で、自分自身(2次端末)の録画結果の送信とともに、1次端末(端末11−1)から送信されてくる1次端末における録画結果を受信しているので、ステップS37において、1次端末で録画が成功したか否かを判定する。1次端末で録画が成功してない(すなわち、予約ファイル92の録画結果が失敗)であると判定された場合、ステップS38において、端末11−2の予約管理プログラム71は、録画モジュール73に保持されている録画データを、認証モジュール74とネットワークインタフェース78を制御し、ホームネットワーク21を介して端末11−1に転送する。ステップS37において、1次端末で録画が成功したと判定された場合、ステップS38の処理はスキップされる。
一方、端末11−1の予約管理プログラム71では、ステップS19の処理の後、ステップS20において、自分自身の録画が成功したか否かが判定される。すなわち、端末11−1の予約管理プログラム71は、ステップS18の処理で確認した結果、録画が成功したか否かを判定する。自分自身(1次端末)の録画が成功していない、すなわち、失敗したと判定された場合、端末11−2によりステップS38の処理で録画データが転送されてくるので、端末11−1の予約管理プログラム71は、ステップS21において、2次端末において録画された録画データを受け取る。すなわち、端末11−1によりステップS20においてNOと判定された場合、端末11−2においてもステップS37の処理でNOと判定され、ステップS38で録画データが転送される。
ステップS20において、自分自身の録画が成功したと判定された場合、またはステップS21の処理の後、端末11−1は、自分自身の録画データ、または、2次端末から送信されてきた録画データを受け取ったことで、録画データを得たことになるので、ステップS22において、2次端末の録画データ削除要求を行う。
すなわち、端末11−2では、ステップS37において1次端末で録画が成功したと判定された場合、またはステップS38の処理の後、バックアップ端末としての2次端末において保持されている録画データはもう必要ない。そこで、端末11−2の予約管理プログラム71は、端末11−1におけるステップS22の処理の録画データ削除要求に対応して、ステップS39において、録画データを削除する。例えば、録画モジュール73が保持していた録画データを削除する。そして、端末11−2における処理は終了される。このように、2次端末がステップS36の処理で通知する録画結果は、1次端末に対する2次端末における録画データ(2次録画データ)の削除の可否の問い合わせともなる。なお、録画モジュール73が保持せずに、HDD13に録画データ94と、録画データリスト93として記憶させるようにしてもよい。
端末11−1の予約管理プログラム71は、ステップS22の処理の後、ステップS23において、処理結果を録画済みデータとして登録する。例えば、録画データ(自分自身で録画した録画データ、または2次端末から受け取った録画データ)をHDD13の録画データ94として登録するとともに、録画データリスト93を更新する。その後、処理は終了される。
図8と図9の処理により、ユーザからの録画予約の指令の操作に対して、通常の予約処理(1次端末におけるステップS12)と同時に、バックアップとなる他の端末(2次端末、ここでは端末11−2)に対しても、録画予約を指令し(ステップS15)、録画処理に失敗した場合に(ステップS20でNOと判定された場合に)、他の端末から録画データを受信して記憶する(ステップS21,ステップS23)ようにしたので、容易かつ確実に録画を行うことができる。
また、バックアップとして動作する端末(2次端末)をユーザが指示する必要がないので、ユーザによる操作の手間を省くことができる。
さらに、ユーザが直接バックアップ端末(2次端末)に指令することなく、バックアップ端末を設定し、予約状況確認画面(図13)を表示する(ステップS16)ようにしたので、予約の信頼性が向上したことを、ユーザは知ることができる。
このように、ユーザは同一の録画予約を指令する操作を複数の端末に対して設定する必要がないので、録画予約を簡単な操作で、より確実に行うことができる。
また、ユーザが録画予約を指令した1次端末にのみ、成功した最終的な録画データが登録されるようにしたので(ステップS22,ステップS23)、ユーザは、録画予約が成功した端末を探す必要がない。
換言すれば、図8と図9の処理によれば、ユーザによる1回の録画予約の指令に対して、1次端末が(複数の)録画予約が可能な端末を選択し、選択した録画予約が可能な端末に対してバックアップ用の予約録画処理(2次予約処理)を実行させる。そして、1次端末は、録画終了後、自分自身の録画の成功・失敗を判定し、成功していた場合には、2次端末(バックアップ端末)の記録結果を削除させ、失敗していた場合には、成功している2次端末(バックアップ端末)の記録結果を、1次端末に転送させた後、2次端末の記録結果を削除させ、録画予約結果として保持するようにしたので、容易、かつ、確実に番組の録画を行うことができる。
なお、図8と図9の処理では、2次端末として1台の端末11−2が選択されたが、2次端末は複数としてもよい。
次に、図8と図9の処理で説明した端末11における処理の詳細を、図15乃至24を参照して説明する。
図15は、図3の端末11における処理(予約管理プログラム71の処理)として、例えば、端末11における録画予約の受け付け、予約の受け付けに伴う2次端末の選択、1次端末からの要求を2次端末として受け付ける処理などを説明するフローチャートである。なお、この処理は、ユーザにより端末11の電源がオン(投入)されたとき開始される。
端末11の電源が投入(オン)されると、ステップS101において、端末11の予約管理プログラム71は、電源投入時に実行する電源投入時処理を実行する。この処理の詳細は、図16を参照して説明する。
ステップS102において、予約管理プログラム71は、イベント待機処理を実行する。具体的には、予約管理プログラム71は、イベントが発生するまで処理を待機する。ここで、イベントとは、例えば、ユーザからの録画予約を指令する操作であったり、設定されている録画時刻(録画開始時刻)であったり、2次予約の問い合わせパケット(図10)が送信されてきたり、2次予約の要求パケット(図10)が送信されてきたり、2次予約の結果が送信されてきたりすることを示す。
イベントが発生した場合、ステップS103において、予約管理プログラム71は、予約処理が指令されたか否かを判定する。すなわち、予約管理プログラム71は、発生したイベントが、ユーザからの録画予約を指令する操作の入力であるか否かを判定する。予約処理が指令されたと判定された場合、ステップS104に進み、予約管理プログラム71は、録画を予約する予約処理を実行する。なお、この処理の詳細は、図19と図20を参照して後述する。
ステップS103において、予約処理が指令されていないと判定された場合、予約管理プログラム71は、ステップS105において、録画時刻になったか否かを判定する。すなわち、予約管理プログラム71は、発生したイベントが、設定されている録画時刻(録画開始時刻)になったことであるか否かを判定する。録画時刻になったと判定された場合、処理はステップS106に進み、予約管理プログラム71は、録画処理を実行する。なお、この処理の詳細は、図21を参照して後述する。
ステップS105において、録画時刻になっていないと判定された場合、予約管理プログラム71は、ステップS107において、2次予約の問い合わせ(パケット)が送信されてきたか否かを判定する。すなわち、予約管理プログラム71は、発生したイベントが、2次予約の問い合わせパケット(図10)が送信されてきたことであるか否かを判定する。2次予約の問い合わせが送信されてきたと判定された場合、処理はステップS108に進み、予約管理プログラム71は、2次予約問い合わせ受信処理を実行する。なお、この処理の詳細は、図22を参照して後述する。
ステップS107において、2次予約の問い合わせ(パケット)が送信されてきていないと判定された場合、予約管理プログラム71は、ステップS109において、2次予約の要求(パケット)が送信されてきたか否かを判定する。すなわち、予約管理プログラム71は、発生したイベントが、2次予約の要求パケット(図10)が送信されてきたことであるか否かを判定する。2次予約の要求が送信されてきたと判定された場合、処理はステップS110に進み、予約管理プログラム71は、2次予約要求受信処理を実行する。なお、この処理の詳細は、図23を参照して後述する。
ステップS109において、2次予約の要求(パケット)が送信されてきていないと判定された場合、予約管理プログラム71は、ステップS111において、2次予約の結果が送信されてきたか否かを判定する。すなわち、予約管理プログラム71は、発生したイベントが、2次予約の結果が送信されてきたことであるか否かを判定する。2次予約の結果が送信されてきたと判定された場合、処理はステップS112に進み、予約管理プログラム71は、2次予約結果受信処理を実行する。なお、この処理の詳細は、図24を参照して後述する。
ステップS104、ステップS106、ステップS108、ステップS110、ステップS112の処理の後、またはステップS111において2次予約の結果が送信されてきていないと判定された場合、処理は終了される。
図15の処理によれば、端末11は、発生したイベントに応じて、予約処理(ステップS104)、録画処理(ステップS106)、2次予約問い合わせ受信処理(ステップS108)、2次予約要求受信処理(ステップS110)、または2次予約結果受信処理(ステップS112)を実行する。
次に、図16のフローチャートを参照して、図15のステップS101の電源投入時処理の詳細を説明する。
ステップS151において、端末11の予約管理プログラム71は、録画予約に関するステータス(録画予約ステータス)を確認する。例えば、予約管理プログラム71は、HDD13に記憶されている予約ファイル92を参照し、実行されなかった録画予約がないか否かを確認し、必要なプロセスを確認する。
ステップS152において、予約管理プログラム71は、録画予約が失敗したか否かを判定する。具体的には、予約管理プログラム71は、図5の予約ファイル92に、録画開始時刻を過ぎていて、録画結果が「未」であったり、「失敗」であるという情報が書き込まれていた場合、録画予約が失敗したと判定する。ステップS152において、録画予約が失敗であると判定された場合、ステップS153において、予約管理プログラム71は、その失敗が1次予約の失敗であるか否かを判定する。具体的には、予約管理プログラム71は、ステップS152の処理で失敗であると判定された予約ファイル92の予約種類が1次であるか2次であるか否かに基づいてこれを判定する。
ステップS153において、1次予約の失敗であると判定された場合、処理はステップS154に進み、予約管理プログラム71は、1次録画予約終了処理を実行することで、予約を完結させる。この場合、この処理を実行する端末11は、1次端末となる。なお、この処理の詳細は、図17を参照して後述する。
ステップS153において、1次予約の失敗ではない、すなわち、2次予約の失敗であると判定された場合、処理はステップS155に進み、予約管理プログラム71は、2次録画予約終了処理を実行することで、1次端末へ失敗を通知する。この場合、この処理を実行する端末11は、2次端末となる。なお、この処理の詳細は、図18を参照して説明する。
ステップS152において、予約の失敗がないと判定された場合、ステップS154の処理の後、またはステップS155の処理の後、処理は終了される(例えば、図15のステップS101に戻る)。
次に、図17のフローチャートを参照して、図16のステップS154の1次録画予約終了処理の詳細を説明する。この処理は、1次予約録画処理が終了した後の処理であり、録画予約を完了するか、2次端末へ失敗の通知を行うものである。すなわち、この処理は、1次端末において実行される。
ステップS201において、端末11の予約管理プログラム71は、録画結果をチェックする。具体的には、録画データがHDD13に記憶(または録画モジュール73に保持)されているか、またその記憶されているデータが、録画予約された放送番組に合致するか、また、録画結果にエラー箇所がないか否かが確認される。録画予約された放送番組に合致するか否かの判定は、例えば、電子番組表(EPG)と、放送された番組に含まれるメタデータとの対応関係、また記憶された番組の長さなどに基づいて行われる。
ステップS202において、予約管理プログラム71は、ステップS201のチェック結果に基づいて、録画に成功したか否かを判定する。録画に成功したと判定された場合、ステップS203において、録画予約が完了したこととし、録画結果を保存する。具体的には、予約管理プログラム71は、録画データリスト93と録画データ94を録画ID(または予約ID)で対応付けてHDD13に保存する。また、予約管理プログラム71は、ステップS203の処理で完了した録画予約に対応する予約ファイル92を削除する。その後、処理は終了される。
ステップS202において、録画に成功していない、すなわち録画に失敗したと判定された場合、ステップS204において、予約管理プログラム71は、2次端末へ1次端末における録画予約の失敗を通知し、バックアップデータの要求を行う。その後、処理は終了される(例えば、図16のステップS154に戻る)。なお、ステップS204で行われる要求に対応する処理としては、上述した図15のステップS112の処理で上述した処理が実行される(詳細は図24で後述する)。例えば、2次端末から録画データ(バックアップデータ)が送信されてきた場合、録画データと録画データリストが対応付けられて記憶される。
次に、図18のフローチャートを参照して、図16のステップS155の2次録画予約終了処理の詳細を説明する。この処理は、2次録画予約処理が終了した後の処理であり、1次端末へ問い合わせを行い、2次録画結果を転送、または削除するものである。すなわち、この処理は、2次端末において実行される。
ステップS251において、端末11の予約管理プログラム71は、録画結果をチェックする。この処理は上述した図17のステップS201の処理と同様であるので、その説明は省略する。
ステップS252において、予約管理プログラム71は、ステップS251においてチェックした録画結果を1次端末へ通知する。例えば、上述した図14の2次端末における2次録画結果のメッセージが送信される。この処理は、2次端末における録画結果の扱いについて、1次端末へ問い合わせることと等価である。これに対して、1次端末では、図15のステップS112の処理(図24の処理)が実行される。
ステップS253において、予約管理プログラム71は、1次端末から応答があったか否かを判定し、1次端末から応答がないと判定された場合、処理はステップS252に戻り、予約管理プログラム71は、1次端末への録画結果の通知を繰り返す。この繰り返しは、1次端末が電源遮断などのトラブルにより、1次端末から応答がない場合に対応するためである。一定回数通知した場合においても、応答がない場合、かつ、所定の時間経過後、処理をステップS254に進める。なお、ステップS253の処理で受け付けられる応答は、後述する図24のステップS503、ステップS506の2次端末の録画結果の要求、または、ステップS510の2次録画データの削除要求である。なお、予約管理プログラム71は、応答がない場合に2次端末のGUI処理モジュール72を介して出力部57にメッセージを表示することで、ユーザへ問い合わせするようにしてもよい。
ステップS253において、1次端末から応答があったと判定された場合、ステップS254において、予約管理プログラム71は、1次録画は成功したか否かを判定する。1次録画が成功した場合、1次端末では、後述する図24のステップS510で2次録画データの削除要求が送信され、1次録画が失敗した場合、1次端末では、後述する図24のステップS503またはステップS506で2次録画データの送信要求が送信されるので、2次端末の予約管理プログラム71は、この応答に基づいて判定する。
ステップS254において、1次録画は成功していないと判定された場合、ステップS255において、予約管理プログラム71は、2次端末の録画データ(バックアップデータ)を、ホームネットワーク21を介して1次端末に転送する。
ステップS254において、1次録画は成功したと判定された場合、または、ステップS255の処理の後、2次端末における録画データは不要となるため、録画結果(録画データ)を削除する。このとき、対応する予約ファイル92も削除される。その後、処理は終了される(例えば、図16のステップS155に戻る)。
次に、図19と図20のフローチャートを参照して、図15のステップS104の予約処理の詳細を説明する。この処理は、ユーザから直接録画予約が指令される端末である、1次端末において実行される。ここでは、この処理を実行する端末11を、仮に端末11−1として説明する。
ステップS301において、端末11の予約管理プログラム71は、予約情報の入力を受け付ける。具体的には、予約管理プログラム71は、GUI処理モジュール72を介して、入力部56に入力されるユーザから録画予約の指令を予約情報として受け付ける。
ステップS302において、予約管理プログラム71は、入力された予約情報に基づいて、1次予約処理を実行する(録画予約キューに登録する)。具体的には、予約管理プログラム71は、ユーザからの指令に基づいて、予約ファイル92を生成し、HDD13に記憶させるとともに、タイマ76に予約時間(予約ファイル92の録画開始時刻)をセットする。
ステップS303において、予約管理プログラム71は、予約に成功したか否かを判定する。例えば、ステップS301で入力された予約情報の録画開始時間が、他の予約と重なった場合には、成功していないと判定される。ステップS303において、予約に成功していないと判定された場合、例えば、入力された予約情報の録画開始時間が、他の予約と重なった場合、予約管理プログラム71は、GUI処理モジュール72を介して出力部57にその旨を通知するメッセージを表示させ、ユーザに通知し、ステップS301に戻り、それ以降の処理を繰り返す。
ステップS303において、予約に成功したと判定された場合、ステップS304において、予約管理プログラム71は、HDD13にあらかじめ格納されている端末11における予約管理ソフトウェアの設定データである、設定ファイル91(図4)を参照し、バックアップ連携動作の有効・無効を確認し、バックアップは有効であるか否かを判定する。このとき、予約管理プログラム71は、予約ファイル92に含まれる番組情報(電子番組表から取得された番組情報)に基づいて、予約された番組の重要度を決定し、重要度が低い場合には、バックアップ連携動作を行わない、といった処理を行うようにしてもよい。重要度の選択には、例えば、ユーザの嗜好で評価が高い番組として、「連続ドラマ」があらかじめ設定されている場合、予約された番組が連続ドラマと一致した事により、重要度が高く設定され、逆に、興味が低い番組と当てはまる場合には、重要度が低く設定される。なお、ここで、バックアップ連携動作が不要と判断された場合、処理はステップS313に進む。ステップS304において、バックアップは有効であると判定された場合、すなわち、バックアップ連携が有効である場合、処理はステップS305に進む。
ステップS305において、予約管理プログラム71は、設定ファイル91(図4)を参照し、連携範囲が外部連携であるか否かを判定する。具体的には、設定ファイル91の外部連携が有効であるか否かが判定される。連携範囲は、ホームネットワーク21内(家庭内を想定しており、この処理では、インターネット22などの外部のネットワークを介さず、自分が所有している機器(例えば、端末11−1乃至端末11−6)のみが存在するネットワーク内)の機器に対して、バックアップ連携動作を実行させるか、インターネット22を介して、あらかじめ設定されている外部の端末(例えば、端末11−6)に対しても、バックアップ連携動作を行う端末として用いるか否かが判定される。図1において、端末11−1がユーザ操作端末(1次端末)である場合、連携範囲が外部連携でない場合、端末11−2乃至端末11−5がバックアップ連携動作の対象となり、連携範囲が外部連携である場合、端末11−2乃至端末11−6がバックアップ連携の対象となる。すなわち、バックアップ連携の対象となる端末が、後述するステップS307の2次予約問い合わせの対象の端末となる。
ステップS305において、連携範囲が外部連携であると判定された場合、ステップS306に進み、予約管理プログラム71は、認証モジュール74とネットワークインタフェース78を制御して、ホームネットワーク21およびインターネット22を介して、外部連絡先(例えば、図1の端末11−6)へ接続する。例えば、あらかじめ設定されている外部の連携先となる端末11−6に対して、セキュアなコネクションが確立される。具体的には、認証モジュール74が、ネットワークインタフェース78を介して、設定ファイル91に書き込まれている、接続先へのアドレス(連携先リスト)、および接続先の端末11−6との間であらかじめ取り決められた認証コード(連携認証コード)を用いて、暗号化を行ったうえで接続する。この処理は、例えば、SSHプロトコルなどを用いて実現することができる。
ステップS305において、連携範囲が外部連携でない、すなわち、設定ファイル91の外部連携が無効であると判定された場合、またはステップS306の処理の後、ステップS307において、予約管理プログラム71は、ホームネットワーク21と認証済み外部連絡先へ2次予約の問い合わせを行う。具体的には、予約管理プログラム71は、ホームネットワーク21内にブロードキャストで2次予約問い合わせパケット(図10)送信するとともに、ステップS306の処理で接続された接続先の端末11−6に対し、2次予約問い合わせパケット(図10)を送信する。なお、ステップS305において外部連携でないと判定された場合には、予約管理プログラム71は、外部接続先の端末には、2次予約問い合わせパケットを送信せず、単に、ホームネットワーク21内の端末(端末11−2乃至11−6)のみにブロードキャストで2次予約問い合わせパケット(図10)送信する。この問い合わせパケットに対し、2次端末側では、図15のステップS108の処理(図22の処理)が実行される。すなわち、ステップS307の処理で1次端末である端末11−1から2次予約問い合わせパケット(図10)が送信されてきた端末11−2乃至11−5(および端末11−6)(複数の2次端末候補)は、端末11−1に応答(図11の2次予約問い合わせ応答のパケット)を送信してくる。
そこで、ステップS308において、予約管理プログラム71は、予約問い合わせの応答(図11の2次予約問い合わせ応答のパケット)を受信する(一定時間受け付ける)。
ステップS309において、予約管理プログラム71は、ステップS308の処理で受信した複数の端末(2次端末候補)からの応答(図11の2次予約問い合わせ応答のパケット)に基づいて、2次端末(バックアップ端末)を選択する。このとき、ステップS304の処理で設定した重要度を用いて、2次端末の数を決定する。例えば、重要度が非常に高く設定された番組に関しては、可能な限り多くの端末を2次端末として設定し、通常の重要度の番組に関しては、1台の端末を2次端末として設定する。なお、ステップS301の処理でユーザから2次端末の数が指示された場合には、それに従うようにする。そして、予約管理プログラム71は、2次端末の問合せ応答(図11の2次予約問い合わせ応答のパケット)に含まれるリソース情報79(図12)に基づいて、応答してきた2次端末候補の中から、実際に2次端末として要求を出す端末を選択する。例えば、予約管理プログラム71は、HDDの空き容量が最大である端末11を選択したり、ホームネットワーク21において最も近い位置に接続されている端末11を選択したり、あるいはその組み合わせから選択する。
ステップS310において、予約管理プログラム71は、ステップS309の処理で選択した2次端末(バックアップ端末)へ録画予約要求を行う。具体的には、予約管理プログラム71は、図10のパケットを、の2次予約要求パケットとして、2次端末へ送信する。この2次予約要求パケットを受信した2次端末(例えば、端末11−2)では、図15のステップS110の処理(図23の処理)が実行され、バックアップ予約要求の応答(図11の2次予約問い合わせ応答パケット)が1次端末へ送信される(図23のステップS453またはステップS454)。
ステップS311において、予約管理プログラム71は、ステップS310で送信したバックアップ予約要求に対する2次端末からの応答(図11の2次予約問い合わせ応答パケット)を受信する。すなわち、2次端末から後述する図23のステップS453またはステップS454の処理により、予約要求を受け付けたか、予約要求を受け付けなかったかの応答が、図11の2次予約問い合わせ応答パケットとして送信されてくるので、1次端末の端末11−1は、これを受信する。この処理により、ステップS307の処理の後に、2次端末のステータスに変更があった場合に対応することができる。
そして、ステップS312において、予約管理プログラム71は、ステップS311の処理で受信した応答(図11の2次予約問い合わせ応答パケット)に基づいて、バックアップの予約(2次端末における録画予約)に成功したか否かを判定する。予約管理プログラム71は、例えば、受信した図11の2次予約問い合わせ応答パケットの「要求」が「可」であった場合、2次予約に成功したと判定し、「要求」が「不可」であった場合、2次予約に失敗したと判定する。ステップS312において、成功していない(または一定時間2次端末からの応答がない)と判定された場合、処理はステップS309に戻り、それ以降の処理が繰り返される。例えば、ステップS308で受信した端末のうち、別の2次端末候補がある場合には、ステップS309で、他の端末が2次端末として選択される。なお、別の2次端末候補がない場合には、2次予約は実行されない。
ステップS312においてバックアップの予約に成功したと判定された場合、またはステップS304においてバックアップは有効でないと判定された場合、処理はステップS313に進み、予約管理プログラム71は、GUI処理モジュール72を介して出力部57に、予約状況確認画面を表示させる。この処理がステップS312の処理の後の場合、予約管理プログラム71は、図13に示されるようなバックアップ端末の情報も含めた画面を表示させ、ステップS304の処理の後の場合、図13のバックアップ端末の記載に代えて、バックアップ端末がないことを説明するメッセージを表示させる。
次に、図21のフローチャートを参照して、図15のステップS106の録画処理の詳細を説明する。この処理は、録画予約された1次端末と2次端末の両方で実行される処理である。
ステップS351において、予約管理プログラム71は、録画を実行する。具体的には、予約管理プログラム71は、予約ファイル92に基づいて、録画モジュール73に録画処理を指令し、録画モジュール73は、この指令に基づいて、デバイス77を制御し、アンテナ12を介して放送されているテレビ番組のデータを受信する。そして、録画モジュール73は、受信したテレビ番組のデータを録画データとして保持する。
ステップS352において、予約管理プログラム71は、1次予約の録画であるか否かを判定する。予約管理プログラム71は、予約ファイル92の予約種類が「1次」であるか「2次」であるかによりこれを判定する。1次予約の録画である、すなわち、予約種類が1次であると判定された場合、処理はステップS353に進み、1次録画予約終了処理を実行する。この処理の詳細は、図17で上述した処理と同様であるので、その説明は省略する。
ステップS352において、1次予約の録画ではない(すなわち、2次予約の録画であり、予約種類が2次である)と判定された場合、ステップS354において、予約管理プログラム71は、2次録画予約終了処理を実行する。この処理の詳細は、図18で上述した処理と同様であるので、その説明は省略する。
次に、図22のフローチャートを参照して、図15のステップS108の2次予約問い合わせ受信処理を説明する。この処理は、自分自身(端末11)の空きリソースを調べ、2次予約が可能な能力を有するか否かを問い合わせてきた端末(図10の2次予約問い合わせパケットを送信してきた1次端末)に返答する処理である。すなわち、この処理を実行する端末11は、2次端末である。
ステップS401において、予約管理プログラム71は、2次予約問い合わせパケット(図10)を受信し、これに基づいて、連携動作は有効であるか否かを判定する。具体的には、予約管理プログラム71は、図10の2次予約問い合わせパケットを受信し、これに基づいて、HDD13の設定ファイル91を参照して、バックアップ連携が有効であるか否かに基づいて、連携動作が有効であるか否かを判定する。ステップS401において、連携動作が有効である(バックアップ連携が有効である)と判定された場合、ステップS402に進み、予約管理プログラム71は、提供可能リソースを確認する。具体的には、予約管理プログラム71は、2次予約問い合わせパケット(図10)に基づいて、2次予約処理に用いるリソースを確認する。例えば、予約管理プログラム71は、端末11内の既に録画予約されている番組と、予約問い合わせパケットに記載されている予約問い合わせ番組に重なりがないか否か、HDD13の空き容量(録画データ94を記憶するための空き容量)、予約問合せ番組の受信可否などを確認する。例えば、この処理を実行している端末11が端末11−4である場合、端末11−4は、HDD13の領域が不足していると認識し、もって、提供可能な条件を満たしていないと認識する。また、この処理を実行している端末11が端末11−5である場合、端末11−5は、予約問い合わせされた番組の受信ができないことを認識し、もって、2次予約問合せに対し、リソースの提供ができないものと認識する。なお、ここで、1次端末の要求の一部のみを実行することも可能であるか否かを判定してもよい。例えば、2次端末ですでに予約済みの時間と、1次端末の予約要求の一部が重複していた場合、重複していない時間に関してのみ、バックアップ動作に協力できると判定し、これを1次端末に対して通知するようにしてもよい。
ステップS403において、予約管理プログラム71は、ステップS402の処理で確認した結果、提供可能なリソースがあるか否かを判定し、提供可能なリソースがあると判定された場合、処理はステップS404に進み、予約管理プログラム71はステップS402の処理で確認した結果を、図11で示されるような2次予約問い合わせ応答パケットとして送信する。図11の2次予約問い合わせ応答パケットには、図12のリソース情報79も含まれている。このとき、予約管理プログラム71は、ネットワーク(ホームネットワーク21およびインターネット22)上で一意に選別可能な端末IDもあわせて送信している(図11の2次予約問い合わせ応答パケットに含まれている)ので、1次端末において、2次端末を識別することができる。また、このリソース情報79に基づいて、1次端末は、図19のステップS309で上述したような2次端末の選択を行うことができる。
ステップS403において、提供可能なリソースがないと判定された場合、またはステップS401において連携動作が有効でないと判定された場合、処理はステップS405に進み、予約管理プログラム71は提供不可であることを応答する(例えば、図11の2次予約問い合わせ応答パケットの「要求」を「不可」としたもものを送信する)。なお、応答自体を行わないように(すなわち、ステップS405の処理をスキップするように)してもよい。
ステップS404の処理の後、またはステップS405の処理の後、処理は終了される(例えば、図15のステップS108に戻る)。
次に、図23のフローチャートを参照して、図15のステップS110の2次予約要求受信処理の詳細を説明する。この処理は、1次端末から2次予約録画要求として、図10の2次予約要求パケットが送信されてきたとき開始される。すなわち、この処理を実行する端末11は、2次端末である。
ステップS451において、予約管理プログラム71は、図10の2次予約要求パケット(1次端末から送信されてきた2次予約要求パケット)を受信し、これに基づいて、2次録画予約処理を実行する。なお、この処理は、上述した図19のステップS302と同様であるのでその説明は省略する。
ステップS452において、予約管理プログラム71は予約に成功したか否かを判定する。この処理も上述した図19のステップS303の処理と同様であるので、その説明は省略する。ステップS452において、予約に成功したと判定された場合、処理はステップS453に進み、予約管理プログラム71は、予約の受け付けを完了したことを示す予約受付完了通知(例えば、図11の「要求」を「可」とした2次予約問い合わせ応答パケット)を1次端末に対して送信する。
ステップS452において、予約に成功していない、すなわち、予約に失敗したと判定された場合、ステップS454において、予約管理プログラム71は、予約に失敗したことを通知する、要求不可通知(例えば、図11の「要求」を「不可」とした2次予約問い合わせ応答パケット)を1次端末に対して送信する。これに対して1次端末では、上述したように図19のステップS312においてバックアップの予約に失敗したと判定して、処理をステップS309に戻し、別の2次端末へ予約要求を送信することになる。
ステップS453の処理の後、またはステップS454の処理の後、処理は終了される(例えば、図15のステップS110に戻る)。
次に、図24のフローチャートを参照して、図15のステップS112の2次予約結果受信処理の詳細を説明する。この処理は、2次録画結果の受信や、2次録画データの削除の指令などを実行する処理である。また、この処理は、2次端末における、図18の2次録画予約終了処理のステップS252の1次端末への録画結果の通知(図14の2次端末における2次録画結果のメッセージ)に対して実行される処理である。すなわち、この処理を実行する端末11は、1次端末である。
ステップS501において、1次端末の予約管理プログラム71は、1次端末で録画が成功したか否かを判定する。すでに1次録画が成功したか否かは、上述した図21のステップS353の詳細である図17のステップS201の処理で確認されているので、予約管理プログラム71は、この確認に基づいて判定する。上述した図17のステップS202の処理で録画に成功していない(NO)と判定された場合、図24のステップS501の処理でもNOと判定され、処理はステップS502に進む。
ステップS501において、1次端末で録画が成功していないと判定された場合、ステップS502において、予約管理プログラム71は、2次端末で録画が成功した可否かを判定する。この処理は、2次端末から録画結果が送信されてきた場合に開始されるものなので、その受信した2次端末の録画結果に基づいてこれを判定する。
ステップS502において、2次端末で録画が成功していないと判定された場合、ステップS503において、予約管理プログラム71は、2次端末へ録画データを要求する。これに対して、2次端末からは、録画データが送信されてくるので(例えば、上述した図18のステップS255の処理)、ステップS504において、予約管理プログラム71は、2次端末の録画データを、修復用データとして受信する。
ステップS505において、予約管理プログラム71は、ステップS504の処理で受信した録画データと、1次端末において録画した結果の録画データを比較し、録画データの欠落箇所をマージ(統合)することができるようであれば、図25に示されるように録画データのマージを行う。例えば、1次録画データの欠落箇所について、2次録画データのタイムライン上の一致箇所に欠落が無ければ、結果のマージが可能となる。図25はマージの例を説明する図である。
図25において、1次端末で録画した結果の録画データを録画結果Aとし、2次端末で録画した結果の録画データを録画結果Bとする。ここでは、録画結果Aと録画結果Bの両方で録画が成功していない(ステップS501,ステップS502ともにNOであったので、録画結果A,Bともに失敗している)。予約管理プログラム71は、録画結果Aで破損している箇所の時刻である01:00:12:15から01:00:20:05までの間のデータを、録画結果Bからマージデータとして補充し、1つの連続する録画データとする。これにより、1次端末と2次端末の両方で録画に失敗していた場合であっても、マージ(統合)可能であれば、録画データを作成することができる。
ステップS505の処理を実行する場合、予約ファイル92としては、「失敗」のステータスとしておき、マージされたデータを1次録画データとして保存しておく。このような状態において、2次端末が複数ある場合であって、別の成功した2次端末からの結果受信があったときには、処理を、ステップS506に進めればよい。
ステップS502において、2次端末で録画が成功したと判定された場合、ステップS506において、予約管理プログラム71は、2次端末へ録画データを要求する。
そして、2次端末で録画が成功していると言うことは、失敗した自分自身(1次端末)における録画データは不要となるので、ステップS507において、失敗した1次録画データを削除する。
また、ステップS502の2次端末への要求に対して、2次端末からは、録画データが送信されてくるので(例えば、上述した図18のステップS255の処理)、ステップS508において、予約管理プログラム71は、2次端末の録画データを録画結果として受信する。
ステップS509において、予約管理プログラム71は、録画予約を完了し、結果を保存する。具体的には、予約管理プログラム71は、予約ファイル92の録画結果を「成功」に変更したり、録画データリスト93に対応して、録画データ94を登録する。
ステップS501において、1次端末で録画が成功したと判定された場合、ステップS505の処理の後、またはステップS509の処理の後、処理はステップS510に進み、予約管理プログラム71は、2次端末へ2次録画データの削除を要求し、処理を終了する(例えば、図15のステップS112に戻る)。このステップS510の処理に対して、2次端末では、例えば、図18のステップS256の処理で、録画結果の削除が行われる。このように、1次端末にのみ録画データを保存するようにしたので、ユーザは、録画予約により録画した録画データがどの端末に記憶されているかを容易に判断することができる。
このように、本実施の形態によれば、ユーザからの録画予約の指令の操作に対して、通常の予約処理と同時に、バックアップとなる他の端末に対しても、録画予約を指令し、録画処理に失敗した場合に、他の端末から録画データを受信して記憶するようにしたので、容易かつ確実に録画を行うことができる。
次に、本発明を適用した他の一実施の形態について説明する。
図26は、本発明を適用した端末装置のハードウェア構成と、ホームネットワークを利用した通信システムの他の構成例を示すブロック図である。
図26において、端末装置201と、複数の他の端末装置203−1乃至端末装置203−nとは、ホームネットワーク202を介して相互に接続されている。この図26に示される通信システムは、図1に示されるシステムと基本的に同様に構成されており、図26の端末装置201、並びに端末装置203−1乃至端末装置203−nは、図1の端末装置11−1乃至端末装置11−6に対応し、図26のホームネットワーク202は、図1のホームネットワーク21およびインターネット22に対応する。
すなわち、図26に示される端末装置201、並びに端末装置203−1乃至端末装置203−nは、図示は省略するがテレビジョン放送番組等を受信可能な専用または汎用のチューナを有しており、図示せぬテレビジョン番組放送局において放送される番組(映像データや音声データ等を含むコンテンツデータ)を、図示せぬアンテナやケーブルを介して受信し、そのコンテンツデータを記録(録画)することができる。
図26において、端末装置201は、図1の例において説明した1次端末装置として動作させる端末装置であり、端末装置203−1乃至203−nは、図1の例において説明した2次端末装置として動作させる端末装置である。
端末装置201は、情報処理コントローラ211、メインメモリ212、記録部213、バス214、操作入力部215、通信部216、およびドライブ217を含むように構成される。他の端末装置203−1乃至203−nも基本的に端末装置201と同様の構成であるので、以下に示す端末装置201についての説明は他の端末装置203−1乃至203−nにも適用することができる。
情報処理コントローラ211は、メインメモリ212に記録されている各種のプログラムを実行し、端末装置201全体を制御する。情報処理コントローラ211は、他の端末装置203-1乃至端末装置203-nの情報処理コントローラ211と連携して動作する。これらの情報処理コントローラ211は、互いに共通のコンピューティング・モジュールから構成される。またこれらの情報処理コントローラ211は、好適には、ISA(Instruction Set Architecture)がすべて同じで、好適には同じ命令セットに従って処理を実行する。個々のプロセッサ内に含まれるモジュールの数は、そのプロセッサが必要とする処理性能(能力)によって決められる。
これらの情報処理コントローラ211は、1つの実行すべきプログラムを、任意の処理単位で分割し、セル化したソフトウェアセルを適宜分配して処理し、それぞれにおいて得られた処理結果をまとめることにより、1つのプログラムを互いに連携して実行することができる。
具体的な方法については後述するが、端末装置201の情報処理コントローラ211は、このとき、生成したソフトウェアセル(処理すべきプログラムの一部やデータ等を含むセル単位のソフトウェア)を、バス214を介して、通信部216に供給し、ホームネットワーク202を介して、端末装置203-1乃端末装置203-nに送信する。また、端末装置201の情報処理コントローラ211は、通信部216がホームネットワーク202を介して、端末装置203-1乃至端末装置203-nのうちのいずれかからソフトウェアセルを受信した場合、バス214を介して、その受信したソフトウェアセルを処理する。
例えば、情報処理コントローラ201は、その処理結果に基づいて端末装置201の各部の制御処理等を行い、端末装置203-1乃至端末装置203-nのいずれかより映像データや音声データを取得し、そのデータを、記録部213に供給して記憶させる等の処理を行う。また、情報処理コントローラ211は、処理結果に基づいて端末装置201の各部の制御処理等を行い、記録部213に記憶されている映像データや音声データを読み出し、通信部216を介して端末装置203-1乃至端末装置203-nに供給したりする。
なお、情報処理コントローラ211は、ソフトウェアセルを実行したり、実行したソフトウェアセルの処理結果に基づいて各部を制御したりするだけでなく、操作入力部215を介して入力されたユーザからの指示に基づいて各部を制御したりする。
なお、情報処理コントローラ211には、端末装置201を、ホームネットワーク202全体を通して一意的に特定できる装置ID(端末ID)が割り当てられている。
情報処理コントローラ211は、バス241、メインプロセッサ242、サブプロセッサ243−1乃至サブプロセッサ243−3、DMAC(Direct Memory Access Controller)244、キー管理テーブル記録部245、およびDC(Disk Controller)246を備えている。
メインプロセッサ242、サブプロセッサ243−1乃至サブプロセッサ243−3、DMAC244、キー管理テーブル記録部245、およびDC246は、バス241を介して、相互に接続されている。また、メインプロセッサ242には、メインプロセッサ242を特定するためのメインプロセッサIDが識別子として割り当てられる。同様に、サブプロセッサ243−1乃至サブプロセッサ243−3のそれぞれには、サブプロセッサ243−1乃至サブプロセッサ243−3のそれぞれを特定するためのサブプロセッサIDのそれぞれが識別子として割り当てられる。
メインプロセッサ242は、サブプロセッサ243−1乃至サブプロセッサ243−3によるプログラムの実行のスケジュール管理および情報処理コントローラ211(端末装置201)の全体の管理を行う。メインプロセッサ242は、ローカルストレージ251−1を備え、メインメモリ212からロードしたデータおよびプログラムを、ローカルストレージ251−1に一時的に記憶させる。メインプロセッサ242は、ローカルストレージ251−1からデータおよびプログラムを読み込み、読み込んだデータおよびプログラムを基に、各種の処理を実行する。
メインプロセッサ242は、例えば、後述するソフトウェアセルの管理に関する処理を行う。例えば、メインプロセッサ242は、ホームネットワーク202を介して端末装置203−1乃至端末装置203−nより供給されたソフトウェアセルをサブプロセッサ243−1乃至243−3に分配して処理させたり、それらのサブプロセッサにおいて得られた処理結果を収集したり、通信部216を制御することにより、それらの処理結果を、ホームネットワーク202を介して端末装置203−1乃至端末装置203−nに供給したりする。また、メインプロセッサ242は、管理のためのプログラム以外のプログラムを実行するように構成することもできる。この場合、メインプロセッサ242は、後述するサブプロセッサの1つとして機能することもできる。
サブプロセッサ243−1乃至サブプロセッサ243−3のそれぞれには、メインプロセッサ242の制御に基づいて、1つまたは互いに関連する複数のプログラムより生成されたプログラムの断片であり、必要なデータとともにまとめられたソフトウェアセルが割り当てられる。サブプロセッサ243−1乃至サブプロセッサ243−3は、メインプロセッサ242に制御されて、それぞれ割り当てられたソフトウェアセルを並列的かつ独立に実行する。更に、必要に応じて、メインプロセッサ242が実行するプログラムが、サブプロセッサ243−1乃至サブプロセッサ243−3のそれぞれが実行するプログラムのそれぞれと連携して動作するように構成することも可能である。
サブプロセッサ243−1乃至サブプロセッサ243−3のそれぞれは、ローカルストレージ251−2乃至ローカルストレージ251−4のそれぞれを備える。サブプロセッサ243−1乃至サブプロセッサ243−3のそれぞれは、ローカルストレージ251−2乃至ローカルストレージ251−4のそれぞれに、必要に応じて、データおよびプログラムを一時的に記憶させる。サブプロセッサ243−1乃至サブプロセッサ243−3のそれぞれは、ローカルストレージ251−2乃至ローカルストレージ251−4のそれぞれからデータおよびプログラムを読み込み、読み込んだデータおよびプログラムを基に、各種の処理を実行する。
以下、サブプロセッサ243−1乃至サブプロセッサ243−3のそれぞれを個々に区別する必要のないとき、単にサブプロセッサ243と称する。同様に、以下、ローカルストレージ251−1乃至ローカルストレージ251−4のそれぞれを個々に区別する必要のないとき、単にローカルストレージ251と称する。
DMAC244は、キー管理テーブル記録部245に記録されている、メインプロセッサキー、サブプロセッサキー、およびアクセスキーを基に、メインプロセッサ242およびサブプロセッサ243からのメインメモリ212に記憶されているプログラムおよびデータへのアクセスを管理する。
キー管理テーブル記録部245は、メインプロセッサキー、サブプロセッサキー、およびアクセスキーを記録している。なお、メインプロセッサキー、サブプロセッサキー、およびアクセスキーの詳細は後述する。
DC246は、メインプロセッサ242およびサブプロセッサ243からの記録部213−1へのアクセスを管理する。
メインメモリ212は、例えば、DRAM(Dynamic Random Access Memory)により構成される。メインメモリ212は、メインプロセッサ242およびサブプロセッサ243が実行する各種のプログラムおよびデータを一時的に記憶している。なお、メインメモリ212をスタティック・ランダム・アクセス・メモリ(SRAM(Static Random Access Memory))、磁気ランダム・アクセス・メモリ(MRAM(Magnetoresistive Random Access Memory))、光メモリまたはホログラフィ・メモリなどを用いて実現するようにしてももちろんよい。
記録部213は、例えば、ハードディスクなどの大容量磁気記録媒体により構成される。もちろん、記録部213は、データを記録することができるのであればどのような記録媒体であってもよく、それ以外にも、例えば、専用のドライブ等により構成されるようにし、そのドライブに装着されたDVD,CD、半導体メモリ、または磁気テープなどの、予め定められた所定のリムーバブルな記録媒体を利用するようにしていてもよい。記録部213は、DC246を介して供給される画像データや音声データ等のコンテンツデータを内蔵するハードディスクに記録したり、そのハードディスクに記録されているコンテンツデータを読み出し、DC246を介して他の処理部等に供給したりする。
記録部213には、また、上述したような放送局において放送される番組を受信可能なチューナやアンテナ等が含まれる。記録部213は、その内蔵するチューナを介して受信した放送番組(コンテンツデータ)をハードディスクに記録する。すなわち、記録部213は、内蔵するハードディスクやチューナを用いて、コンテンツデータの記録(録画)や再生に関する処理を行う。
さらに、記録部213は、メインプロセッサ242およびサブプロセッサ243が実行する各種のプログラムや各種データ等を内蔵するハードディスクに記録することもできる。
また、情報処理コントローラ211には、バス214を介して、操作入力部215、通信部216、およびドライブ217が接続されている。操作入力部215は、例えば、ボタンやダイヤルなどの操作入力デバイスや、図示しないリモートコマンダから送信される、ユーザの操作入力を示す赤外線信号または無線信号などを受信する受信部を備え、ユーザの操作入力(入力された各種の指示)を示す信号を、情報処理コントローラ211に供給する。
通信部216は、例えば、情報処理コントローラ211から供給されたソフトウェアセルを、ホームネットワーク202を介して端末装置203−1乃至端末装置203−n宛てに送信する。また、通信部216は、端末装置203−1乃至端末装置203−nから送信されてきたソフトウェアセルを、バス214を介して、情報処理コントローラ211に供給する。
ドライブ217は、磁気ディスク261、光ディスク262、光磁気ディスク263、あるいは半導体メモリ264などの所定のリムーバブルメディアが装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて、バス214を介して、情報処理コントローラ211に転送され、情報処理コントローラ211によって、記録部213に記録される。
次に、図27乃至図29を参照して、サブプロセッサ243がメインメモリ212にアクセスする場合の処理について説明する。
図27で示されるように、メインメモリ212には、複数のアドレスを指定できるメモリロケーションが配置される。各メモリロケーションに対しては、データの状態を示す情報を格納するための追加セグメントが割り振られる。追加セグメントは、F/Eビット、サブプロセッサIDおよびLSアドレス(ローカルストレージアドレス)を含む。また、各メモリロケーションには、後述するアクセスキーが割り振られる。
値が“0”であるF/Eビットは、サブプロセッサ243によって読み出されている処理中のデータ、または空き状態であるため最新データではない無効データであり、そのメモリロケーションから読み出し不可であることを示す。また、値が“0”であるF/Eビットは、そのメモリロケーションにデータ書き込み可能であることを示し、データが書き込まれると、F/Eビットの値は“1”に設定される。
値が“1”であるF/Eビットは、そのメモリロケーションのデータがサブプロセッサ243によって読み出されておらず、未処理の最新データであることを示す。F/Eビットの値が“1”であるメモリロケーションのデータは読み出し可能であり、サブプロセッサ243によって読み出されてから、F/Eビットの値は“0”に設定される。また、値が“1”であるF/Eビットは、メモリロケーションがデータ書き込み不可であることを示す。
さらに、F/Eビットの値が“0”(読み出し不可/書き込み可)である状態において、メモリロケーションについて読み出し予約を設定することが可能である。F/Eビットの値が“0”であるメモリロケーションに対して読み出し予約を行う場合には、サブプロセッサ243は、読み出し予約を行うメモリロケーションの追加セグメントに、読み出し予約情報としてサブプロセッサ243のサブプロセッサIDおよびLSアドレスを書き込む。そして、データを書き込むサブプロセッサ243によって、読み出し予約されたメモリロケーションにデータが書き込まれ、F/Eビットの値が“1”(読み出し可/書き込み不可)に設定されたとき、あらかじめ読み出し予約情報として追加セグメントに書き込まれているサブプロセッサIDおよびLSアドレスによって特定されるローカルストレージ251に読み出される。
複数のサブプロセッサ243によってデータを多段階に処理する必要がある場合、このように各メモリロケーションのデータの読み出しおよび書き込みを制御することによって、前段階の処理を行うサブプロセッサ243が、処理済みのデータをメインメモリ212における所定のアドレスに書き込んだ後に即座に、後段階の処理を行う別のサブプロセッサ243が前処理後のデータを読み出すことが可能となる。
また、図28で示されるように、サブプロセッサ243のローカルストレージ251は、複数のアドレスを指定できるメモリロケーションによって構成される。各メモリロケーションに対しては、同様に追加セグメントが割り振られる。追加セグメントは、ビジービットを含む。
サブプロセッサ243がメインメモリ212に記憶されているデータをサブプロセッサ243のローカルストレージ251のメモリロケーションに読み出すときには、対応するビジービットの値を“1”に設定して予約する。ビジービットの値が“1”であるメモリロケーションには、他のデータを格納することができない。ローカルストレージ251のメモリロケーションにデータが読み出されると、ビジービットの値は“0”に設定され、他のデータを格納することができるようになる。
更に、図27で示すように、情報処理コントローラ211に接続されているメインメモリ212には、複数のサンドボックスが含まれる。サンドボックスは、メインメモリ212内の領域を画定するものであり、各サンドボックスは、各サブプロセッサ243に割り当てられ、割り当てられたサブプロセッサ243が排他的に使用することができる。すなわち、サブプロセッサ243は、割り当てられたサンドボックスを使用できるが、この領域を超えてデータにアクセスすることはできない。
メインメモリ212は、複数のメモリロケーションから構成されるが、サンドボックスは、これらのメモリロケーションの集合である。
更に、メインメモリ212の排他的な制御を実現するために、図29で示されるキー管理テーブルが用いられる。キー管理テーブルは、キー管理テーブル記録部245に記録され、DMAC244と関連付けられる。キー管理テーブル内の各エントリには、サブプロセッサID、サブプロセッサキーおよびキーマスクが含まれる。
サブプロセッサ243がメインメモリ212にアクセスする場合、サブプロセッサ243はDMAC244に、読み出しまたは書き込みのコマンドを出力する。このコマンドには、サブプロセッサ243を特定するサブプロセッサIDおよびアクセス要求先であるメインメモリ212のアドレスが含まれる。
DMAC244は、サブプロセッサ243から供給されたコマンドを実行する場合、キー管理テーブルを参照して、アクセス要求元のサブプロセッサ243のサブプロセッサキーを調べる。そして、DMAC244は、調べたアクセス要求元のサブプロセッサキーと、アクセス要求先であるメインメモリ212のメモリロケーションに割り振られたアクセスキーとを比較して、2つのキーが一致した場合にのみ、サブプロセッサ243から供給されたコマンドを実行する。
図29に示されるキー管理テーブルに記録されているキーマスクは、その任意のビットの値が“1”になることによって、そのキーマスクと関連付けられたサブプロセッサキーの対応するビットの値を“0”または“1”(すなわち、任意の値)にすることができる。
例えば、サブプロセッサキーの値が“1010”であるとする。通常、このサブプロセッサキーによって値“1010”のアクセスキーを持つサンドボックスへのアクセスだけが可能になる。しかし、このサブプロセッサキーと関連付けられたキーマスクの値が“0001”に設定されている場合には、キーマスクのビットの値が“1”に設定された桁のみにつき、サブプロセッサキーとアクセスキーとの一致判定がマスクされ(キーマスクのビットの値が“1”に設定された桁について、判定されず)、このサブプロセッサキー“1010”によってアクセスキーの値が“1010”または“1011”のいずれかであるアクセスキーを持つサンドボックスへのアクセスが可能となる。
以上のようにして、メインメモリ212のサンドボックスの排他性が実現される。すなわち、複数のサブプロセッサ243によってデータを多段階に処理する必要がある場合、以上のように構成することによって、前段階の処理を行うサブプロセッサ243と、後段階の処理を行うサブプロセッサ243のみが、メインメモリ212の所定のアドレスにアクセスできるようになり、データを保護することができる。
例えば、キーマスクの値は、以下のように変更されることが考えられる。まず、図26の端末装置201の起動直後においては、キーマスクの値は全て“0”である。メインプロセッサ242にロードされたプログラムが実行され、サブプロセッサ243にロードされたプログラムと連携動作するものとする。サブプロセッサ243−1により出力された処理結果データを、メインメモリ212に記憶させ、メインメモリ212に記憶させた処理結果データを、サブプロセッサ243−2に入力したいときには、サブプロセッサ243−1により出力された処理結果データを記憶しているメインメモリ212の領域は、サブプロセッサ243−1およびサブプロセッサ243−2からアクセス可能である必要がある。そのような場合に、メインプロセッサ242は、キーマスクの値を適切に変更し、複数のサブプロセッサ243からアクセスできるメインメモリの領域を設けることにより、サブプロセッサ243による多段階的の処理を可能にする。
より具体的には、例えば、図26において、端末装置203−1乃至端末装置203−nから送信されてきたデータを基に、サブプロセッサ243−1が所定の処理実行し、処理が施されたデータをメインメモリ212の第1の領域に記憶させる。そして、サブプロセッサ243−2は、メインメモリ212の第1の領域から、記憶されているデータを読み出し、読み出したデータを基に、所定の処理を実行し、処理が施されたデータをメインメモリ212の第1の領域とは、異なる第2の領域に記憶させる。
ここで、サブプロセッサ243−1のサブプロセッサキーの値が“0100”であり、メインメモリ212の第1の領域のアクセスキーの値が“0100”であり、サブプロセッサ243−2のサブプロセッサキーの値が“0101”であり、メインメモリ212の第2の領域のアクセスキーの値が“0101”である場合、サブプロセッサ243−2は、メインメモリ212の第1の領域にアクセスすることができない。そこで、サブプロセッサ243−2のキーマスクの値を“0001”にすることによって、サブプロセッサ243−2は、メインメモリ212の第1の領域にアクセスすることができるようになる。
図30は、ソフトウェアセルの構成の例を示す図である。図30を参照して、端末装置201がソフトウェアセルを生成し、生成したソフトウェアセルを基に、端末装置203−1乃至端末装置203−nに分散処理を実行させる場合の処理について説明する。
端末装置201のメインプロセッサ242は、処理を実行するために必要なコマンド、プログラム、およびデータを含むソフトウェアセルを生成し、ホームネットワーク202を介して端末装置203−1乃至端末装置203−nに送信する。
ソフトウェアセルは、例えば、送信元ID、送信先ID、応答先ID、セルインターフェース、DMAコマンド、プログラム、およびデータを含むように構成される。
送信元IDには、ソフトウェアセルの送信元である端末装置201のネットワークアドレスおよび端末装置201の情報処理コントローラ211の装置ID、さらに、端末装置201の情報処理コントローラ211が備えるメインプロセッサ242およびサブプロセッサ243の識別子(メインプロセッサIDおよびサブプロセッサID)が含まれる。
送信先IDには、ソフトウェアセルの送信先である端末装置203−1乃至端末装置203−nのネットワークアドレス、端末装置203−1乃至端末装置203−nの情報処理コントローラ211の装置ID、および端末装置203−1乃至端末装置203−nの情報処理コントローラが備えるメインプロセッサおよびサブプロセッサの識別子が含まれる。
また、応答先IDには、ソフトウェアセルの実行結果の応答先である端末装置201のネットワークアドレス、端末装置201の情報処理コントローラ211の装置ID、および情報処理コントローラ211が備えるメインプロセッサ242およびサブプロセッサ243の識別子が含まれる。
セルインターフェースは、ソフトウェアセルの利用に必要な情報であり、グローバルID、必要なサブプロセッサの情報、サンドボックスサイズ、および前回のソフトウェアセルIDから構成される。
グローバルIDは、ホームネットワーク202全体を通してソフトウェアセルを一意的に識別できるものであり、送信元ID、およびソフトウェアセルの生成または送信の日時(日付および時刻)を基に、生成される。
必要なサブプロセッサの情報は、ソフトウェアセルの実行に必要なサブプロセッサの数が設定される。サンドボックスサイズは、ソフトウェアセルの実行に必要なメインメモリおよびサブプロセッサのローカルストレージのメモリ量が設定される。
前回のソフトウェアセルIDは、ストリーミングデータなどのシーケンシャルな実行を要求する1つのグループを構成するソフトウェアセル内の、前回のソフトウェアセルの識別子である。
ソフトウェアセルの実行セクションは、DMAコマンド、プログラムおよびデータから構成される。DMAコマンドには、プログラムの起動に必要な一連のDMAコマンドが含まれ、プログラムには、サブプロセッサによって実行されるサブプロセッサプログラムが含まれる。ここでのデータは、このサブプロセッサプログラムを含むプログラムによって処理されるデータである。
更に、DMAコマンドには、ロードコマンド、キックコマンド、機能プログラム実行コマンド、ステータス要求コマンド、およびステータス返信コマンドが含まれる。
ロードコマンドは、メインメモリが記憶している情報をサブプロセッサのローカルストレージにロードさせるコマンドであり、ロードコマンドのほかに、メインメモリアドレス、サブプロセッサIDおよびLSアドレスを含む。メインメモリアドレスは、情報のロード元であるメインメモリの所定の領域のアドレスを示す。サブプロセッサIDおよびLSアドレスは、情報のロード先であるサブプロセッサの識別子およびローカルストレージのアドレスを示す。
キックコマンドは、プログラムの実行を開始するコマンドであり、キックコマンドのほかに、サブプロセッサIDおよびプログラムカウンタを含む。サブプロセッサIDは、キック対象のサブプロセッサを識別し、プログラムカウンタは、プログラム実行用プログラムカウンタのためのアドレスを与える。
機能プログラム実行コマンドは、ある装置(例えば、端末装置201)が他の装置(例えば、端末装置203−1乃至端末装置203−n)に対して、例えば、所定の機能を利用してユーザに要約の作成が終了したことを通知するためなどに実行される機能プログラムの実行を要求するコマンドである。機能プログラム実行コマンドを受信した装置(例えば、端末装置203−1乃至端末装置203−n)のCPUや情報処理コントローラは、機能プログラムIDによって、起動すべき機能プログラムを識別する。
ステータス要求コマンドは、送信先IDで示される端末装置203−1乃至端末装置203−nの現在の動作状態(状況)に関する装置情報を、応答先IDで示される端末装置201あてに送信要求するコマンドである。
ステータス返信コマンドは、ステータス要求コマンドを受信した端末装置203−1乃至端末装置203−nが、装置情報をステータス要求コマンドに含まれる応答先IDで示される端末装置201に応答するコマンドである。ステータス返信コマンドは、実行セクションのデータ領域に装置情報を格納する。
図31に、DMAコマンドがステータス返信コマンドである場合におけるソフトウェアセルのデータ領域の構造を示す。
装置IDは、情報処理コントローラ211を備える端末装置を識別するための識別子であり、ステータス返信コマンドを送信する端末装置のIDを示す。端末装置IDは、電源投入時、その端末装置内の情報処理コントローラ211に含まれるメインプロセッサ242によって、電源投入時の日時、端末装置のネットワークアドレスおよび端末装置内の情報処理コントローラ211に含まれるサブプロセッサ243の数などに基づいて生成される。
端末装置種別IDには、当該の端末装置がハードディスクレコーダであること(当該端末装置の特徴)を表す値が含まれる。また、装置種別IDは、映像音声記録、映像音声再生など、端末装置が有する機能を表すものであってもよい。端末装置の特徴や機能を表す値は予め決定されているものとし、端末装置種別IDによって、各端末装置は、互いの特徴や機能を把握することが可能である。
MS(マスター/スレーブ)ステータスは、後述のように情報処理装置がマスター装置またはスレーブ装置のいずれで動作しているかを表すもので、この値が0に設定されている場合にはマスター装置として動作していることを示し、1に設定されている場合にはスレーブ装置として動作していることを示す。
メインプロセッサ動作周波数は、情報処理コントローラ内のメインプロセッサ242の動作周波数を表す。メインプロセッサ使用率は、メインプロセッサ242で現在動作している全てのプログラムについての、メインプロセッサ242での使用率を表す。メインプロセッサ使用率は、対象メインプロセッサの全処理能力に対する使用中の処理能力の比率を表した値で、例えばプロセッサ処理能力評価のための単位であるMIPS(Million Instructions Per Second)を単位として算出され、または単位時間あたりのプロセッサ使用時間に基づいて算出される。後述のサブプロセッサ使用率についても同様である。
サブプロセッサ数は、当該の情報処理コントローラが備えるサブプロセッサ243の数を表す。サブプロセッサIDは、当該の情報処理コントローラ211内の各サブプロセッサ243(サブプロセッサ243−1乃至243−3)を識別するための識別子である。
サブプロセッサステータスは、各サブプロセッサ243の状態を表すものであり、unused,reserved,busyなどの状態がある。unusedは、当該のサブプロセッサが現在使用されてなく、使用の予約もされていないことを示す。reservedは、現在は使用されていないが、予約されている状態を示す。busyは、現在使用中であることを示す。
サブプロセッサ使用率は、当該のサブプロセッサで現在実行している、または当該のサブプロセッサに実行が予約されているプログラムについての、当該サブプロセッサでの使用率を表す。すなわち、サブプロセッサ使用率は、サブプロセッサステータスがbusyである場合には、現在の使用率を示し、サブプロセッサステータスがreservedである場合には、後に使用される予定の推定使用率を示す。
サブプロセッサID、サブプロセッサステータスおよびサブプロセッサ使用率は、1つのサブプロセッサ243に対して一組設定され、1つの情報処理コントローラ内のサブプロセッサ243に対応する組数が設定される。
メインメモリ総容量およびメインメモリ使用量は、それぞれ、当該の情報処理コントローラ211に接続されるメインメモリ212の総容量および現在使用中の容量を表す。
記録部数は、当該の情報処理コントローラ211に接続されている記録部213の数を表す。記録部IDは、当該の情報処理コントローラに接続されている記録部213を一意的に識別する情報である。記録部種別IDは、当該の外部記録部の種類(例えば、ハードディスク、CD±RW、DVD±RW、メモリディスク、SRAM、ROMなど)を表す。
記録部総容量および記録部使用量は、それぞれ、記録部IDによって識別される記録部28の総容量および現在使用中の容量を表す。
記録部ID、記録部種別ID、記録部総容量および記録部使用量は、1つの記録部213に対して一組設定されるものであり、当該の情報処理コントローラ211に接続されている記録部213の数の組数だけ設定される。すなわち、1つの情報処理コントローラ213に複数の記録部が接続されている場合、各々の記録部213には異なる記録部IDが割り当てられ、記録部種別ID、記録部総容量および記録部使用量も別々に管理される。
図26において、端末装置201内の情報処理コントローラ211に含まれるメインプロセッサ242は、以上のような構成のソフトウェアセルを生成し、ホームネットワーク202を介して端末装置203−1乃至203−nおよび当該端末装置201内の情報処理コントローラ211に送信する。この場合、送信元となる端末装置201、送信先となる端末装置203、応答先となる端末装置203、および各装置内の情報処理コントローラ211は、それぞれ、上記の送信元ID、送信先IDおよび応答先IDによって識別される。
ソフトウェアセルを受信した情報処理装置内の情報処理コントローラに含まれるメインプロセッサ242は、そのソフトウェアセルをメインメモリ212に格納する。さらに、送信先のメインプロセッサ242は、ソフトウェアセルを読み出し、それに含まれるDMAコマンドを処理する。
具体的に、送信先のメインプロセッサ242は、まず、ロードコマンドを実行する。これによって、ロードコマンドで指示されたメインメモリアドレスから、ロードコマンドに含まれるサブプロセッサIDおよびLSアドレスで特定されるサブプロセッサ内のLS251の所定領域に、情報がロードされる。ここでロードされる情報は、受信したソフトウェアセルに含まれるサブプロセッサプログラムまたはデータ、あるいはその他の指示されたデータである。
次に、メインプロセッサ242は、キックコマンドを、これに含まれるサブプロセッサIDで指示されたサブプロセッサに、同様にキックコマンドに含まれるプログラムカウンタと共に出力する。
指示されたサブプロセッサは、そのキックコマンドおよびプログラムカウンタに従って、サブプロセッサプログラムを実行する。そして、実行結果をメインメモリ212に格納した後、実行を完了したことをメインプロセッサ242に通知する。
なお、送信先の端末装置内の情報処理コントローラ211においてソフトウェアセルを実行するプロセッサ242はサブプロセッサ243に限定されるものではなく、メインプロセッサ242がソフトウェアセルに含まれる機能プログラムなどのメインメモリ用プログラムを実行するように指定することも可能である。
この場合には、送信元の端末装置は、送信先の端末装置宛に、サブプロセッサプログラムの代わりに、メインメモリ用プログラムおよびそのメインメモリ用プログラムによって処理されるデータを含み、DMAコマンドがロードコマンドであるソフトウェアセルを送信し、メインメモリ212にメインメモリ用プログラムおよびそれによって処理されるデータを記憶させる。次に、送信元の端末装置は、送信先の端末装置宛に、送信先の端末装置内の情報処理コントローラ211についてのメインプロセッサID、メインメモリアドレス、メインメモリ用プログラムを識別するための後述の機能プログラムIDなどの識別子、およびプログラムカウンタを含み、DMAコマンドがキックコマンドまたは機能プログラム実行コマンドであるソフトウェアセルを送信して、メインプロセッサ242に当該メインメモリ用プログラムを実行させる。
以上のように、この発明のネットワークシステムでは、送信元の端末装置は、サブプロセッサプログラムまたはメインメモリ用プログラムをソフトウェアセルによって送信先の端末装置に送信するとともに、当該サブプロセッサプログラムを送信先の端末装置内の情報処理コントローラに含まれるサブプロセッサ243にロードさせ、当該サブプロセッサプログラムまたは当該メインメモリ用プログラムを送信先の端末装置に実行させることができる。
送信先の端末装置内の情報処理コントローラでは、受信したソフトウェアセルに含まれるプログラムがサブプロセッサプログラムである場合には、当該サブプロセッサプログラムを指定されたサブプロセッサにロードさせる。そして、ソフトウェアセルに含まれるサブプロセッサプログラムまたはメインメモリ用プログラムを実行させる。
したがって、ユーザが送信先の端末装置を操作しなくても自動的に、当該サブプロセッサプログラムまたは当該メインメモリ用プログラムを送信先の端末装置内の情報処理コントローラに実行させることができる。
このようにして端末装置は、自装置内の情報処理コントローラがサブプロセッサプログラムまたは機能プログラムなどのメインメモリ用プログラムを有していない場合には、ホームネットワーク202に接続された他の端末装置からそれらを取得することができる。さらに、各サブプロセッサ間ではDMA方式によりデータ転送を行い、また上述したサンドボックスを使用することによって、1つの情報処理コントローラ内でデータを多段階に処理する必要がある場合でも、高速かつ高セキュリティに処理を実行することができる。
以上のようにして、ソフトウェアセルを利用して分散処理を行うことにより、ホームネットワーク202に接続された端末装置201は、他の端末装置203−1乃至端末装置203−nと連携して動作し、1台の仮想的な端末装置として動作する。
例えば、図32に示されるように、それぞれが、上述した端末装置201や端末装置203−1乃至端末装置203−nと同様の構成および機能を有する4台の端末装置301乃至端末装置304が、上述したホームネットワーク202やインターネット等各種のネットワークを含むネットワーク310を介して互いに接続されている場合に、各端末装置301乃至端末装置304が、上述したようにソフトウェアセルを利用して互いに連携して動作することによって、図32の下段に示されるような1台の仮想的な端末装置321として動作する。
従って、この場合、各端末装置は、この1台の仮想的な端末装置として動作し、上述したような1つの録画予約に対して通常の録画処理だけでなく、バックアップ用の録画処理を行い、各録画データ(録画した映像データや音声データ)のマージンを取る処理を実行することができる。
例えば、図33に示されるように、ユーザが1台の端末装置(例えば、)を操作して通常の予約操作(図33中、白抜き矢印で示されるユーザ操作)を行うと、その操作情報がマスター装置として動作する端末装置301に供給される。端末装置301は、その操作情報に基づいて、処理するプログラムやデータを用意してそれらをソフトウェアセル化し、その生成したソフトウェアセルを、スレーブ装置A乃至スレーブ装置Cとして動作する端末装置302乃至端末装置304に供給し、それぞれ実行させる。その際、マスター装置301として動作する端末装置301は、スレーブ装置として動作する端末装置302乃至端末装置304のそれぞれのハードウェアリソース(チューナやハードディスク等のハードウェア資源)の使用状況を考慮し、利用されていないリソース(空きリソース)を利用するようにソフトウェアセルを生成し、それらを各端末装置に割り当てる。
このようにすることにより、実行される一連の処理は、ソフトウェアセル化され、各端末装置が有するハードウェアリソース(チューナやハードディスク等のハードウェア資源)の内、利用されていないリソース(空きリソース)を適宜利用して処理される。従って、このように実行されるプログラム(上述した各処理)は、仮想的な1台の端末装置において実行されるので、他の実施例において説明したような端末装置間の連携について考慮する必要がなく、そのような処理については省略することができる。
以上のように、ユーザからの録画予約の指令の操作に対して、通常の予約処理と同時に、バックアップとなる他の端末に対しても、録画予約を指令し、録画処理に失敗した場合に、他の端末から録画データを受信して記憶するようにしたので、容易かつ確実に録画を行うことができる。
また、バックアップとして動作する端末(2次端末)をユーザが指示する必要がないので、ユーザによる操作の手間を省くことができる。
さらに、ユーザが直接バックアップ端末(2次端末)に指令することなく、バックアップ端末を設定し、予約状況確認画面(図13)を表示する(図20のステップS313)ようにしたので、予約の信頼性が向上したことを、ユーザは知ることができる。
このように、ユーザは同一の録画予約を指令する操作を複数の端末に対して設定する必要がないので、録画予約を簡単な操作で、より確実に行うことができる。
また、ユーザが録画予約を指令した1次端末にのみ、成功した最終的な録画データが登録されるようにしたので(ステップS22,ステップS23)、ユーザは、録画予約が成功した端末を探す必要がない。
さらに、ユーザの録画予約操作に対し、通常の予約処理と同時に、バックアップとなる別の端末(2次端末)に対しても予約録画処理命令を1次端末が発行するようにしたので、電源トラブルなどの不意な録画失敗に備えることができる。
さらに、録画に失敗した(トラブルが発生した)場合には、バックアップとして録画処理された端末(2次端末)から、有効な録画データを受信する処理をユーザの指令なしに行うようにしたので、ユーザの手間を省くことができる。
また、不要となったバックアップ録画データを、ユーザの指令なしに削除するようにしたので、不要なデータを削除する必要もなく、ユーザの手間をさらに省くことができる。
さらに、バックアップとして動作する端末(2次端末)はユーザの指令なしに、選択するようにしたので、ユーザは、1次端末への録画予約の操作だけでよく、より、容易かつ確実に番組を録画することができる。
また、録画予約に重要度を設け、重要度に応じて、バックアップ処理の動作を決定するようにしたので、よりユーザのニーズに応じて録画を行うことができる。さらに、重要度の設定は、番組情報をもとに、あらかじめ設定された基準に沿って、1次端末において設定されるので、ユーザによる煩雑な操作は必要ない。
また、予約時に、1次端末でバックアップ端末を設定し、予約の信頼性が向上したことを、表示するようにしたので、ユーザはこれを知ることができる。
このように、ユーザは同一の予約操作を複数端末に対して設定する必要がなく、手間をかけることなく予約し、確実に番組を録画することができる。
また、予約録画命令を出した端末(1次端末)にのみ、成功した最終的な録画データが残る仕組みとしたので、ユーザは、予約録画の成功した端末を探す必要がない。
さらに、ユーザによる放送されたテレビ番組の記録要求操作(録画予約の操作)に対し、複数台の端末で同一コンテンツの記録処理(録画処理)を実行し、記録要求(録画予約の操作)を受け付けた端末で、記録処理に失敗した際に、同時に記録処理を行った別の端末から記録結果を受け取るようにしたので、ユーザは番組の録画予約を容易にすることができ、かつ、確実に番組を録画することができる。
なお、以上において、本発明を端末装置に適用した場合について説明したが、本発明は、情報を処理する情報処理装置にも適用することができる。
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、ネットワークや記録媒体からインストールされる。
この記録媒体は、図2に示されるように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されているリムーバブルメディア61よりなるパッケージメディアにより構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM52やHDD13などで構成される。
なお、本明細書において、コンピュータプログラムを記述するステップは、記載された順序に従って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
11 端末装置, 13 HDD, 21 ホームネットワーク, 22 インターネット, 56 入力部, 57 出力部, 71 予約管理プログラム, 72 GUI処理モジュール, 73 録画モジュール, 74 認証モジュール, 76 タイマ, 78 ネットワークインタフェース, 91 設定ファイル, 92 予約ファイル, 93 録画データリスト, 94 録画データ, 201 端末装置, 202 ホームネットワーク, 203 端末装置, 211 情報処理コントローラ