以下に、本発明の実施の形態を説明するが、請求項に記載の構成要件と、発明の実施の形態における具体例との対応関係を例示すると、次のようになる。この記載は、請求項に記載されている発明をサポートする具体例が、発明の実施の形態に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、構成要件に対応するものとして、ここには記載されていない具体例があったとしても、そのことは、その具体例が、その構成要件に対応するものではないことを意味するものではない。逆に、具体例が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その具体例が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
さらに、この記載は、発明の実施の形態に記載されている具体例に対応する発明が、請求項に全て記載されていることを意味するものではない。換言すれば、この記載は、発明の実施の形態に記載されている具体例に対応する発明であって、この出願の請求項には記載されていない発明の存在、すなわち、将来、分割出願されたり、補正により追加される発明の存在を否定するものではない。
請求項1に記載のネットワークシステム(例えば、図1のネットワークシステム)は、
第1の情報処理装置(例えば、図1の情報処理装置1)、前記第1の情報処理装置とネットワークを介して通信を行う複数の第2の情報処理装置(例えば、図1の情報処理装置3)、並びに前記第1,第2の情報処理装置と前記ネットワークを介して通信を行う複数の第3の情報処理装置(例えば、図1の情報処理装置4)からなるネットワークシステムであって、
前記第1の情報処理装置(例えば、図1の情報処理装置1)は、
前記第2の情報処理装置から送信される、地域を識別する情報である地域識別情報を含む、録画を予約する情報である録画予約情報を受信する録画予約情報受信手段(例えば、図21のステップS182の処理を実行する図10のネットワーク接続部39)と、
前記録画予約情報受信手段により受信された前記録画予約情報に基づいて、複数の前記第3の情報処理装置から、録画を実行可能な第3の情報処理装置を選択する録画装置選択手段(例えば、図21のステップS182の処理を実行する図10の情報処理コントローラ11)と、
前記録画装置選択手段により選択された前記第3の情報処理装置に、録画を依頼する情報である録画依頼情報を送信する録画依頼情報送信手段(例えば、図21のステップS184の処理を実行する図10のネットワーク接続部39)と、
前記録画依頼情報送信手段により送信された録画依頼情報に基づいて録画された放送番組に対応する録画予約情報を送信してきた複数の前記第2の情報処理装置から、放送番組を転送する第2の情報処理装置を選択する転送先選択手段(例えば、図21のステップS185の処理を実行する図10の情報処理コントローラ11)と、
前記転送先選択手段により選択された前記第2の情報処理装置に前記放送番組を転送するよう依頼する情報である転送依頼情報を、前記録画依頼情報に基づいて放送番組を録画した前記第3の情報処理装置に送信する転送依頼情報送信手段(例えば、図21のステップS186の処理を実行する図10のネットワーク接続部39)と
を備え、
前記第2の情報処理装置(例えば、図1の情報処理装置3)は、
ユーザからの指令に基づいて、前記録画予約情報を前記第1の情報処理装置に送信する録画予約情報送信手段(例えば、図21のステップS172の処理を実行する図10のネットワーク接続部39)と、
前記放送番組を録画した前記第3の情報処理装置から転送されてくる放送番組を受信する放送番組受信手段(例えば、図21のステップS173の受信処理を実行する図10のネットワーク接続部39)と、
前記放送番組受信手段により受信された前記放送番組を記憶する記憶手段(例えば、図21のステップS173の記憶処理を実行する図10のメインメモリ26)と
を備え、
前記第3の情報処理装置(例えば、図1の情報処理装置4)は、
前記第1の情報処理装置の前記録画依頼情報送信手段により送信される前記録画依頼情報を受信する録画依頼情報受信手段(例えば、図21のステップS202の受信処理を実行する図10のネットワーク接続部39)と、
前記録画依頼情報受信手段により受信された前記録画依頼情報に基づいて、放送番組を録画する録画手段(例えば、図21のステップS202の予約番組の録画処理を実行する図10の情報処理コントローラ11)と、
前記第1の情報処理装置の前記転送依頼情報送信手段により送信される前記転送依頼情報を受信する転送依頼情報受信手段(例えば、図21のステップS204の処理を実行する図10のネットワーク接続部39)と、
前記転送依頼情報受信手段により受信された前記転送依頼情報に基づいて、前記録画手段により録画された前記放送番組を、転送先の前記第2の情報処理装置に転送する放送番組転送手段(例えば、図21のステップS205の処理を実行する図10のネットワーク接続部39)と
を備えることを特徴とする。
請求項2に記載の情報処理装置(例えば、図1の情報処理装置1)は、
複数の他の第1の情報処理装置(例えば、図1の情報処理装置3)、並びに複数の他の第2の情報処理装置(例えば、図1の情報処理装置4)とネットワークを介して通信を行う情報処理装置であって、
前記他の第1の情報処理装置から送信される、地域を識別する情報である地域識別情報を含む、録画を予約する情報である録画予約情報を受信する録画予約情報受信手段(例えば、図21のステップS182の処理を実行する図10のネットワーク接続部39)と、
前記録画予約情報受信手段により受信された前記録画予約情報に基づいて、複数の前記他の第2の情報処理装置から、録画を実行可能な他の第2の情報処理装置を選択する録画装置選択手段(例えば、図21のステップS182の処理を実行する図10の情報処理コントローラ11)と、
前記録画装置選択手段により選択された前記他の第2の情報処理装置に、録画を依頼する情報である録画依頼情報を送信する録画依頼情報送信手段(例えば、図21のステップS184の処理を実行する図10のネットワーク接続部39)と、
前記録画依頼情報送信手段により送信された録画依頼情報に基づいて録画された放送番組に対応する録画予約情報を送信してきた複数の前記他の第1の情報処理装置から、放送番組を転送する他の第1の情報処理装置を選択する転送先選択手段(例えば、図21のステップS185の処理を実行する図10の情報処理コントローラ11)と、
前記転送先選択手段により選択された前記他の第1の情報処理装置に前記放送番組を転送するよう依頼する情報である転送依頼情報を、前記録画依頼情報に基づいて放送番組を録画した前記他の第2の情報処理装置に送信する転送依頼情報送信手段(例えば、図21のステップS186の処理を実行する図10のネットワーク接続部39)と
を備えることを特徴とする。
請求項3に記載の情報処理装置は、
複数の前記他の第1の情報処理装置がそれぞれ設けられている地域を識別する情報である地域識別情報(例えば、図13の地域ID)を含む装置情報を取得する装置情報取得手段(例えば、図21のステップS181の処理を実行する図10のネットワーク接続部39)をさらに備え、
前記転送先選択手段は、複数の前記他の第1の情報処理装置の各地域識別情報に基づいて、地域ごとに転送先が1台となるように、転送先の他の第1の情報処理装置を選択する(例えば、図20のステップS148)
ことを特徴とする。
請求項4に記載の情報処理装置は、
複数の他の第1の情報処理装置から、前記転送先選択手段により選択された前記他の第1の情報処理装置以外の他の第1の情報処理装置から放送番組が要求された場合、前記放送番組を記憶している他の第1の情報処理装置を特定する特定手段(例えば、図22のステップS187の処理を実行する図10の情報処理コントローラ11)をさらに備え、
前記転送依頼情報送信手段は、要求してきた他の情報処理装置に前記放送番組を転送するよう依頼する転送依頼情報を、前記放送番組保持装置特定手段により特定された前記他の第1の情報処理装置に送信する(例えば、図22のステップS188)
ことを特徴とする。
請求項5に記載の情報処理装置は、
複数の前記他の第1の情報処理装置がそれぞれ設けられている地域を識別する情報である地域識別情報(例えば、図13の地域ID)と、複数の前記他の第1の情報処理装置の残り記憶容量(例えば、図13の残記憶容量)に関する情報を含む装置情報を取得する装置情報取得手段(例えば、図21のステップS181の処理を実行する図10のネットワーク接続部39)をさらに備え、
前記転送先選択手段は、複数の前記他の第1の情報処理装置の各地域識別情報と残り記憶容量に基づいて、地域ごとに転送先が1台となるように、転送先の他の第1の情報処理装置を選択する(例えば、図20のステップS148)
ことを特徴とする。
請求項6に記載の情報処理方法は、
複数の他の第1の情報処理装置(例えば、図1の情報処理装置3)、並びに複数の他の第2の情報処理装置(例えば、図1の情報処理装置4)とネットワークを介して通信を行う情報処理装置(例えば、図1の情報処理装置1)の情報処理方法であって、
前記他の第1の情報処理装置から送信される、地域を識別する情報である地域識別情報を含む、録画を予約する情報である録画予約情報を受信する録画予約情報受信ステップ(例えば、図21のステップS182)と、
前記録画予約情報受信ステップの処理により受信された前記録画予約情報に基づいて、複数の前記他の第2の情報処理装置から、録画を実行可能な他の第2の情報処理装置を選択する録画装置選択ステップ(例えば、図21のステップS182)と、
前記録画装置選択ステップの処理により選択された前記他の第2の情報処理装置に、録画を依頼する情報である録画依頼情報を送信する録画依頼情報送信ステップ(例えば、図21のステップS184)と、
前記録画依頼情報送信ステップの処理により送信された録画依頼情報に基づいて録画された放送番組に対応する録画予約情報を送信してきた複数の前記他の第1の情報処理装置から、放送番組を転送する他の第1の情報処理装置を選択する転送先選択ステップ(例えば、図21のステップS185)と、
前記転送先選択ステップの処理により選択された前記他の第1の情報処理装置に前記放送番組を転送するよう依頼する情報である転送依頼情報を、前記録画依頼情報に基づいて放送番組を録画した前記他の第2の情報処理装置に送信する転送依頼情報送信ステップ(例えば、図21のステップS186)と
を含むことを特徴とする。
請求項7に記載のプログラムは、
複数の他の第1の情報処理装置(例えば、図1の情報処理装置3)、並びに複数の他の第2の情報処理装置(例えば、図1の情報処理装置4)とネットワークを介して通信を行う情報処理装置(例えば、図1の情報処理装置1)のプログラムであって、
前記他の第1の情報処理装置から送信される、地域を識別する情報である地域識別情報を含む、録画を予約する情報である録画予約情報を受信する録画予約情報受信ステップ(例えば、図21のステップS182)と、
前記録画予約情報受信ステップの処理により受信された前記録画予約情報に基づいて、複数の前記他の第2の情報処理装置から、録画を実行可能な他の第2の情報処理装置を選択する録画装置選択ステップ(例えば、図21のステップS182)と、
前記録画装置選択ステップの処理により選択された前記他の第2の情報処理装置に、録画を依頼する情報である録画依頼情報を送信する録画依頼情報送信ステップ(例えば、図21のステップS184)と、
前記録画依頼情報送信ステップの処理により送信された録画依頼情報に基づいて録画された放送番組に対応する録画予約情報を送信してきた複数の前記他の第1の情報処理装置から、放送番組を転送する他の第1の情報処理装置を選択する転送先選択ステップ(例えば、図21のステップS185)と、
前記転送先選択ステップの処理により選択された前記他の第1の情報処理装置に前記放送番組を転送するよう依頼する情報である転送依頼情報を、前記録画依頼情報に基づいて放送番組を録画した前記他の第2の情報処理装置に送信する転送依頼情報送信ステップ(例えば、図21のステップS186)と
を含む処理をコンピュータに実行させることを特徴とする。
請求項8に記載の情報処理装置(例えば、図1の情報処理装置3)は、
他の第1の情報処理装置(例えば、図1の情報処理装置1)、および他の第2の情報処理装置(例えば、図1の情報処理装置4)とネットワークを介して通信を行う情報処理装置において、
ユーザからの指令に基づいて、地域を識別する情報である地域識別情報を含む、録画を予約する情報である録画予約情報を前記他の第1の情報処理装置に送信する録画予約情報送信手段(例えば、図21のステップS172の処理を実行する図10のネットワーク接続部39)と、
前記録画予約情報送信手段により送信された前記録画予約情報に基づいて放送番組を録画した前記他の第2の情報処理装置から転送されてくる前記放送番組を受信する放送番組受信手段(例えば、図21のステップS173の受信処理を実行する図10のネットワーク接続部39)と、
前記放送番組受信手段により受信された前記放送番組を記憶する記憶手段(例えば、図21のステップS173の記憶処理を実行する図10のメインメモリ26)と
を備えることを特徴とする。
請求項9に記載の情報処理方法は、
他の第1の情報処理装置(例えば、図1の情報処理装置1)、および他の第2の情報処理装置(例えば、図1の情報処理装置4)とネットワークを介して通信を行う情報処理装置(例えば、図1の情報処理装置3)の情報処理方法であって、
ユーザからの指令に基づいて、地域を識別する情報である地域識別情報を含む、録画を予約する情報である録画予約情報を前記他の第1の情報処理装置に送信する録画予約情報送信ステップ(例えば、図21のステップS172)と、
前記録画予約情報送信ステップの処理により送信された前記録画予約情報に基づいて放送番組を録画した前記他の第2の情報処理装置から転送されてくる前記放送番組を受信する放送番組受信ステップ(例えば、図21のステップS173)と、
前記放送番組受信ステップの処理により受信された前記放送番組の記憶を制御する記憶制御ステップ(例えば、図21のステップS173)と
を含むことを特徴とする情報処理方法。
請求項10に記載のプログラムは、
他の第1の情報処理装置(例えば、図1の情報処理装置1)、および他の第2の情報処理装置(例えば、図1の情報処理装置4)とネットワークを介して通信を行う情報処理装置(例えば、図1の情報処理装置3)のプログラムであって、
ユーザからの指令に基づいて、地域を識別する情報である地域識別情報を含む、録画を予約する情報である録画予約情報を前記他の第1の情報処理装置に送信する録画予約情報送信ステップ(例えば、図21のステップS172)と、
前記録画予約情報送信ステップの処理により送信された前記録画予約情報に基づいて放送番組を録画した前記他の第2の情報処理装置から転送されてくる前記放送番組を受信する放送番組受信ステップ(例えば、図21のステップS173)と、
前記放送番組受信ステップの処理により受信された前記放送番組の記憶を制御する記憶制御ステップ(例えば、図21のステップS173)と
を含む処理をコンピュータに実行させることを特徴とする。
請求項11に記載の情報処理装置(例えば、図1の情報処理装置4)は、
他の第1の情報処理装置(例えば、図1の情報処理装置1)、および他の第2の情報処理装置(例えば、図1の情報処理装置3)とネットワークを介して通信を行う情報処理装置であって、
前記他の第1の情報処理装置から送信される、録画を依頼する情報である録画依頼情報を受信する録画依頼情報受信手段(例えば、図21のステップS202の受信処理を実行する図10のネットワーク接続部39)と、
前記録画依頼情報受信手段により受信された前記録画依頼情報に基づいて、放送番組を録画する録画手段(例えば、図21のステップS202の予約番組の録画処理を実行する図10の情報処理コントローラ11)と、
前記他の第1の情報処理装置から送信される、前記他の第2の情報処理装置に前記放送番組を転送するよう依頼する情報である転送依頼情報を受信する前記転送依頼情報受信手段(例えば、図21のステップS204の処理を実行する図10のネットワーク接続部39)と、
前記転送依頼情報受信手段により受信された前記転送依頼情報に基づいて、前記録画手段により録画された前記放送番組を、転送先の前記第2の情報処理装置に転送する放送番組転送手段(例えば、図21のステップS205の処理を実行する図10のネットワーク接続部39)と
を備えることを特徴とする。
請求項12に記載の情報処理方法は、
他の第1の情報処理装置(例えば、図1の情報処理装置1)、および他の第2の情報処理装置(例えば、図1の情報処理装置3)とネットワークを介して通信を行う情報処理装置(例えば、図1の情報処理装置4)の情報処理方法であって、
前記他の第1の情報処理装置から送信される、録画を依頼する情報である録画依頼情報を受信する録画依頼情報受信ステップ(例えば、図21のステップS202の受信処理)と、
前記録画依頼情報受信ステップの処理により受信された前記録画依頼情報に基づいて、放送番組を録画する録画ステップ(例えば、図21のステップS202の予約番組の録画処理)と、
前記他の第1の情報処理装置から送信される、前記他の第2の情報処理装置に前記放送番組を転送するよう依頼する情報である転送依頼情報を受信する前記転送依頼情報受信ステップ(例えば、図21のステップS204)と、
前記転送依頼情報受信ステップの処理により受信された前記転送依頼情報に基づいて、前記録画ステップの処理により録画された前記放送番組を、転送先の前記第2の情報処理装置に転送する放送番組転送ステップ(例えば、図21のステップS205)と
を含むことを特徴とする。
請求項13に記載のプログラムは、
他の第1の情報処理装置(例えば、図1の情報処理装置1)、および他の第2の情報処理装置(例えば、図1の情報処理装置3)とネットワークを介して通信を行う情報処理装置(例えば、図1の情報処理装置4)のプログラムであって、
前記他の第1の情報処理装置から送信される、録画を依頼する情報である録画依頼情報を受信する録画依頼情報受信ステップ(例えば、図21のステップS202の受信処理)と、
前記録画依頼情報受信ステップの処理により受信された前記録画依頼情報に基づいて、放送番組を録画する録画ステップ(例えば、図21のステップS202の予約番組の録画処理)と、
前記他の第1の情報処理装置から送信される、前記他の第2の情報処理装置に前記放送番組を転送するよう依頼する情報である転送依頼情報を受信する前記転送依頼情報受信ステップ(例えば、図21のステップS204)と、
前記転送依頼情報受信ステップの処理により受信された前記転送依頼情報に基づいて、前記録画ステップの処理により録画された前記放送番組を、転送先の前記第2の情報処理装置に転送する放送番組転送ステップ(例えば、図21のステップS205)と
を含む処理をコンピュータに実行させることを特徴とする。
〔ネットワークシステムおよび情報処理装置の基本的構成:図1乃至図4〕
図1は、本発明を適用したネットワークシステムの一例を示す図である。図1のネットワークシステムにおいては、ネットワーク9を介して複数の情報処理装置1、2、3、4が接続されている。
(情報処理装置および情報処理コントローラ)
情報処理装置1について示すと、情報処理装置1は、コンピュータ機能部として情報処理コントローラ11を備える。情報処理コントローラ11は、メインプロセッサ21−1、サブプロセッサ23−1,23−2,23−3、DMAC(ダイレクトメモリアクセスコントローラ)25−1およびDC(ディスクコントローラ)27−1を有する。
メインプロセッサ21−1は、サブプロセッサ23−1,23−2,23−3によるプログラム実行(データ処理)のスケジュール管理と、情報処理コントローラ11(情報処理装置1)の全般的な管理とを行う。ただし、メインプロセッサ21−1内で管理のためのプログラム以外のプログラムが動作するように構成することもできる。その場合には、メインプロセッサ21−1はサブプロセッサとしても機能することになる。メインプロセッサ21−1は、LS(ローカルストレージ)22−1を有する。
サブプロセッサは、1つでもよいが、望ましくは複数とする。この例は、複数の場合である。
各サブプロセッサ23−1,23−2,23−3は、メインプロセッサ21−1の制御によって並列的かつ独立に、プログラムを実行し、データを処理する。さらに、場合によってメインプロセッサ21−1内のプログラムがサブプロセッサ23−1,23−2,23−3内のプログラムと連携して動作するように構成することもできる。後述する機能プログラムもメインプロセッサ21−1内で動作するプログラムである。各サブプロセッサ23−1,23−2,23−3も、LS(ローカルストレージ)24−1,24−2,24−3を有する。
DMAC25−1は、情報処理コントローラ11に接続されたDRAM(ダイナミックRAM(Random Access Memory))などからなるメインメモリ26−1に格納されているプログラムおよびデータにアクセスするものであり、DC27−1は、情報処理コントローラ11に接続された外部記録部28−1,28−2にアクセスするものである。
外部記録部28−1,28−2は、固定ディスク(ハードディスク)でも、リムーバブルディスクでもよく、また、MO,CD±RW,DVD±RWなどの光ディスク、メモリディスク、SRAM(スタティックRAM)、ROM(Read Only Memory)など、各種のものを用いることができる。したがって、DC27−1は、ディスクコントローラと称するが、外部記録部コントローラである。
図1の例のように、情報処理コントローラ11に対して外部記録部28を複数接続できるように、情報処理コントローラ11を構成することができる。
メインプロセッサ21−1、各サブプロセッサ23−1,23−2,23−3、DMAC25−1およびDC27−1は、バス29−1によって接続される。
情報処理コントローラ11には、当該の情報処理コントローラ11を備える情報処理装置1を、ネットワーク全体を通して一意的に識別できる識別子が、情報処理装置IDとして割り当てられる。
メインプロセッサ21−1および各サブプロセッサ23−1,23−2,23−3に対しても同様に、それぞれを特定できる識別子が、メインプロセッサIDおよびサブプロセッサIDとして割り当てられる。
情報処理コントローラ11は、ワンチップIC(集積回路)として構成することが望ましい。
他の情報処理装置2、3、4も、同様に構成される。ここで、親番号が同一であるユニットは枝番号が異なっていても、特に断りがない限り同じ働きをするものとする。また、以下の説明において枝番号が省略されている場合には、枝番号の違いにいる差異を生じないものとする。
(各サブプロセッサからメインメモリへのアクセス)
上述したように、1つの情報処理コントローラ内の各サブプロセッサ23は、独立にプログラムを実行し、データを処理するが、異なるサブプロセッサがメインメモリ26内の同一領域に対して同時に読み出しまたは書き込みを行った場合には、データの不整合を生じ得る。そこで、サブプロセッサ23からメインメモリ26へのアクセスは、以下のような手順によって行う。
図2(A)に示すように、メインメモリ26は、複数のアドレスを指定できるメモリロケーションによって構成される。各メモリロケーションに対しては、データの状態を示す情報を格納するための追加セグメントが割り振られる。追加セグメントは、F/Eビット、サブプロセッサIDおよびLSアドレス(ローカルストレージアドレス)を含むものとされる。また、各メモリロケーションには、後述のアクセスキーも割り振られる。F/Eビットは、以下のように定義される。
F/Eビット=0は、サブプロセッサ23によって読み出されている処理中のデータ、または空き状態であるため最新データではない無効データであり、読み出し不可であることを示す。また、F/Eビット=0は、当該メモリロケーションにデータ書き込み可能であることを示し、書き込み後に1に設定される。
F/Eビット=1は、当該メモリロケーションのデータがサブプロセッサ23によって読み出されておらず、未処理の最新データであることを示す。当該メモリロケーションのデータは読み出し可能であり、サブプロセッサ23によって読み出された後に0に設定される。また、F/Eビット=1は、当該メモリロケーションがデータ書き込み不可であることを示す。
さらに、上記F/Eビット=0(読み出し不可/書き込み可)の状態において、当該メモリロケーションについて読み出し予約を設定することは可能である。F/Eビット=0のメモリロケーションに対して読み出し予約を行う場合には、サブプロセッサ23は、読み出し予約を行うメモリロケーションの追加セグメントに、読み出し予約情報として当該サブプロセッサ23のサブプロセッサIDおよびLSアドレスを書き込む。
その後、データ書き込み側のサブプロセッサ23によって、読み出し予約されたメモリロケーションにデータが書き込まれ、F/Eビット=1(読み出し可/書き込み不可)に設定されたとき、あらかじめ読み出し予約情報として追加セグメントに書き込まれたサブプロセッサIDおよびLSアドレスに読み出される。
複数のサブプロセッサによってデータを多段階に処理する必要がある場合、このように各メモリロケーションのデータの読み出し/書き込みを制御することによって、前段階の処理を行うサブプロセッサ23が、処理済みのデータをメインメモリ26上の所定のアドレスに書き込んだ後に即座に、後段階の処理を行う別のサブプロセッサ23が前処理後のデータを読み出すことが可能となる。
図2(B)に示すように、各サブプロセッサ23内のLS24も、複数のアドレスを指定できるメモリロケーションによって構成される。各メモリロケーションに対しては、同様に追加セグメントが割り振られる。追加セグメントは、ビジービットを含むものとされる。
サブプロセッサ23がメインメモリ26内のデータを自身のLS24のメモリロケーションに読み出すときには、対応するビジービットを1に設定して予約する。ビジービットが1であるメモリロケーションには、他のデータは格納することができない。LS24のメモリロケーションに読み出し後、ビジービットは0になり、任意の目的に使用できるようになる。
図2(A)に示すように、さらに、各情報処理コントローラと接続されたメインメモリ26には、複数のサンドボックスが含まれる。サンドボックスは、メインメモリ26内の領域を画定するものであり、各サンドボックスは、各サブプロセッサ23に割り当てられ、そのサブプロセッサが排他的に使用することができる。すなわち、各々のサブプロセッサ23は、自身に割り当てられたサンドボックスを使用できるが、この領域を超えてデータのアクセスを行うことはできない。
メインメモリ26は、複数のメモリロケーションから構成されるが、サンドボックスは、これらのメモリロケーションの集合である。
さらに、メインメモリ26の排他的な制御を実現するために、図2(C)に示すようなキー管理テーブルが用いられる。キー管理テーブルは、情報処理コントローラ内のSRAMのような比較的高速のメモリに格納され、DMAC25と関連付けられる。キー管理テーブル内の各エントリには、サブプロセッサID、サブプロセッサキーおよびキーマスクが含まれる。
サブプロセッサ23がメインメモリ26を使用する際のプロセスは、以下のとおりである。まず、サブプロセッサ23はDMAC25に、読み出しまたは書き込みのコマンドを出力する。このコマンドには、自身のサブプロセッサIDと、使用要求先であるメインメモリ26のアドレスが含まれる。
DMAC25は、このコマンドを実行する前に、キー管理テーブルを参照して、使用要求元のサブプロセッサのサブプロセッサキーを調べる。次に、DMAC25は、調べた使用要求元のサブプロセッサキーと、使用要求先であるメインメモリ26内の図2(A)に示したメモリロケーションに割り振られたアクセスキーとを比較して、2つのキーが一致した場合にのみ、上記のコマンドを実行する。
図2(C)に示したキー管理テーブル上のキーマスクは、その任意のビットが1になることによって、そのキーマスクに関連付けられたサブプロセッサキーの対応するビットが0または1になることができる。
例えば、サブプロセッサキーが1010であるとする。通常、このサブプロセッサキーによって1010のアクセスキーを持つサンドボックスへのアクセスだけが可能になる。しかし、このサブプロセッサキーと関連付けられたキーマスクが0001に設定されている場合には、キーマスクのビットが1に設定された桁のみにつき、サブプロセッサキーとアクセスキーとの一致判定がマスクされ、このサブプロセッサキー1010によってアクセスキーが1010または1011のいずれかであるアクセスキーを持つサンドボックスへのアクセスが可能となる。
以上のようにして、メインメモリ26のサンドボックスの排他性が実現される。すなわち、1つの情報処理コントローラ内の複数のサブプロセッサによってデータを多段階に処理する必要がある場合、以上のように構成することによって、前段階の処理を行うサブプロセッサと、後段階の処理を行うサブプロセッサのみが、メインメモリ26の所定アドレスにアクセスできるようになり、データを保護することができる。
例えば、以下のように使用することが考えられる。まず、情報処理装置の起動直後においては、キーマスクの値は全てゼロである。メインプロセッサ内のプログラムが実行され、サブプロセッサ内のプログラムと連携動作するものとする。第1のサブプロセッサにより出力された処理結果データを一旦メインメモリに格納し、第2のサブプロセッサに入力したいときには、該当するメインメモリ領域は、当然どちらのサブプロセッサからもアクセス可能である必要がある。そのような場合に、メインプロセッサ内のプログラムは、キーマスクの値を適切に変更し、複数のサブプロセッサからアクセスできるメインメモリ領域を設けることにより、サブプロセッサによる多段階的の処理を可能にする。
より具体的には、他の情報処理装置からのデータ→第1のサブプロセッサによる処理→第1のメインメモリ領域→第2のサブプロセッサによる処理→第2のメインメモリ領域、という手順で多段階処理が行われるときには、以下のような設定のままだと、第2のサブプロセッサは第1のメインメモリ領域にアクセスすることができない。
第1のサブプロセッサのサブプロセッサキー:0100
第1のメインメモリ領域のアクセスキー :0100
第2のサブプロセッサのサブプロセッサキー:0101
第2のメインメモリ領域のアクセスキー :0101
そこで、第2のサブプロセッサのキーマスクを0001にすることにより、第2のサブプロセッサによる第1のメインメモリ領域へのアクセスを可能にすることができる。
(ソフトウェアセルの生成および構成)
図1のネットワークシステムでは、情報処理装置1、2、3、4間での分散処理のために、情報処理装置1、2、3、4間でソフトウェアセルが伝送される。すなわち、ある情報処理装置内の情報処理コントローラに含まれるメインプロセッサ21は、コマンド、プログラムおよびデータを含むソフトウェアセルを生成し、ネットワーク9を介して他の情報処理装置に送信することによって、処理を分散することができる。
図3に、ソフトウェアセルの構成の一例を示す。この例のソフトウェアセルは、全体として、送信元ID、送信先ID、応答先ID、セルインタフェース、DMAコマンド、プログラム、およびデータによって構成される。
送信元IDには、ソフトウェアセルの送信元である情報処理装置のネットワークアドレスおよび当該装置内の情報処理コントローラの情報処理装置ID、さらに、その情報処理装置内の情報処理コントローラが備えるメインプロセッサ21および各サブプロセッサ23の識別子(メインプロセッサIDおよびサブプロセッサID)が含まれる。
送信先IDおよび応答先IDには、それぞれ、ソフトウェアセルの送信先である情報処理装置、およびソフトウェアセルの実行結果の応答先である情報処理装置についての、同じ情報が含まれる。
セルインタフェースは、ソフトウェアセルの利用に必要な情報であり、グローバルID、必要なサブプロセッサの情報、サンドボックスサイズ、および前回のソフトウェアセルIDから構成される。
グローバルIDは、ネットワーク全体を通して当該のソフトウェアセルを一意的に識別できるものであり、送信元ID、およびソフトウェアセルの作成または送信の日時(日付および時刻)に基づいて作成される。
必要なサブプロセッサの情報は、当該ソフトウェアセルの実行に必要なサブプロセッサの数が設定される。サンドボックスサイズは、当該ソフトウェアセルの実行に必要なメインメモリ26内およびサブプロセッサ23のLS24内のメモリ量が設定される。
前回のソフトウェアセルIDは、ストリーミングデータなどのシーケンシャルな実行を要求する1グループのソフトウェアセル内の、前回のソフトウェアセルの識別子である。
ソフトウェアセルの実行セクションは、DMAコマンド、プログラムおよびデータから構成される。DMAコマンドには、プログラムの起動に必要な一連のDMAコマンドが含まれ、プログラムには、サブプロセッサ23によって実行されるサブプロセッサプログラムが含まれる。ここでのデータは、このサブプロセッサプログラムを含むプログラムによって処理されるデータである。
さらに、DMAコマンドには、ロードコマンド、キックコマンド、機能プログラム実行コマンド、ステータス要求コマンド、およびステータス返信コマンドが含まれる。
ロードコマンドは、メインメモリ26内の情報をサブプロセッサ23内のLS24にロードするコマンドであり、ロードコマンド自体のほかに、メインメモリアドレス、サブプロセッサIDおよびLSアドレスを含む。メインメモリアドレスは、情報のロード元であるメインメモリ26内の所定領域のアドレスを示す。サブプロセッサIDおよびLSアドレスは、情報のロード先であるサブプロセッサ23の識別子およびLS24のアドレスを示す。
キックコマンドは、プログラムの実行を開始するコマンドであり、キックコマンド自体のほかに、サブプロセッサIDおよびプログラムカウンタを含む。サブプロセッサIDは、キック対象のサブプロセッサ23を識別し、プログラムカウンタは、プログラム実行用プログラムカウンタのためのアドレスを与える。
機能プログラム実行コマンドは、後述のように、ある情報処理装置が他の情報処理装置に対して、機能プログラムの実行を要求するコマンドである。機能プログラム実行コマンドを受信した情報処理装置内の情報処理コントローラは、後述の機能プログラムIDによって、起動すべき機能プログラムを識別する。機能プログラムについては後述されているが、図6に示される情報処理装置のメインメモリが記憶するソフトウェアの構成図において、機能プログラムのカテゴリに属するプログラムである。機能プログラムはメインメモリにロードされ、メインプロセッサにより実行される。
ステータス要求コマンドは、送信先IDで示される情報処理装置の現在の動作状態(状況)に関する装置情報を、応答先IDで示される情報処理装置宛に送信要求するコマンドである。機能プログラムについては後述するが、図6に示す情報処理コントローラのメインメモリ26が記憶するソフトウェアの構成図において機能プログラムにカテゴライズされるプログラムである。機能プログラムは、メインメモリ26にロードされ、メインプロセッサ21により実行される。
ステータス返信コマンドは、上記のステータス要求コマンドを受信した情報処理装置が、自身の装置情報を当該ステータス要求コマンドに含まれる応答先IDで示される情報処理装置に応答するコマンドである。ステータス返信コマンドは、実行セクションのデータ領域に装置情報を格納する。
図4に、DMAコマンドがステータス返信コマンドである場合におけるソフトウェアセルのデータ領域の構造を示す。
情報処理装置IDは、情報処理コントローラを備える情報処理装置を識別するための識別子であり、ステータス返信コマンドを送信する情報処理装置のIDを示す。情報処理装置IDは、電源投入時、その情報処理装置内の情報処理コントローラに含まれるメインプロセッサ21によって、電源投入時の日時、情報処理装置のネットワークアドレスおよび情報処理装置内の情報処理コントローラに含まれるサブプロセッサ23の数などに基づいて生成される。
情報処理装置種別IDには、当該の情報処理装置の特徴を表す値が含まれる。情報処理装置の特徴とは、例えば、ハードディスクレコーダ、PDA(Personal Digital Assistants)、ポータブルCD(Compact Disc)プレーヤ、PC(Personal Computer)などである。また、情報処理装置種別IDは、映像音声記録、映像音声再生など、情報処理装置の機能を表すものであってもよい。情報処理装置の特徴や機能を表す値は予め決定されているものとし、情報処理装置種別IDを読み出すことにより、当該情報処理装置の特徴や機能を把握することが可能である。
MS(マスター/スレーブ)ステータスは、後述のように情報処理装置がマスター装置またはスレーブ装置のいずれで動作しているかを表すもので、これが0に設定されている場合にはマスター装置として動作していることを示し、1に設定されている場合にはスレーブ装置として動作していることを示す。
メインプロセッサ動作周波数は、情報処理コントローラ内のメインプロセッサ21の動作周波数を表す。メインプロセッサ使用率は、メインプロセッサ21で現在動作している全てのプログラムについての、メインプロセッサ21での使用率を表す。メインプロセッサ使用率は、対象メインプロセッサの全処理能力に対する使用中の処理能力の比率を表した値で、例えばプロセッサ処理能力評価のための単位であるMIPSを単位として算出され、または単位時間あたりのプロセッサ使用時間に基づいて算出される。後述のサブプロセッサ使用率についても同様である。
サブプロセッサ数は、当該の情報処理コントローラが備えるサブプロセッサ23の数を表す。サブプロセッサIDは、当該の情報処理コントローラ内の各サブプロセッサ23を識別するための識別子である。
サブプロセッサステータスは、各サブプロセッサ23の状態を表すものであり、unused,reserved,busyなどの状態がある。unusedは、当該のサブプロセッサが現在使用されてなく、使用の予約もされていないことを示す。reservedは、現在は使用されていないが、予約されている状態を示す。busyは、現在使用中であることを示す。
サブプロセッサ使用率は、当該のサブプロセッサで現在実行している、または当該のサブプロセッサに実行が予約されているプログラムについての、当該サブプロセッサでの使用率を表す。すなわち、サブプロセッサ使用率は、サブプロセッサステータスがbusyである場合には、現在の使用率を示し、サブプロセッサステータスがreservedである場合には、後に使用される予定の推定使用率を示す。
サブプロセッサID、サブプロセッサステータスおよびサブプロセッサ使用率は、1つのサブプロセッサ23に対して一組設定され、1つの情報処理コントローラ内のサブプロセッサ23に対応する組数が設定される。
メインメモリ総容量およびメインメモリ使用量は、それぞれ、当該の情報処理コントローラに接続されているメインメモリ26の総容量および現在使用中の容量を表す。
外部記録部数は、当該の情報処理コントローラに接続されている外部記録部28の数を表す。外部記録部IDは、当該の情報処理コントローラに接続されている外部記録部28を一意的に識別する情報である。外部記録部種別IDは、当該の外部記録部の種類(例えば、ハードディスク、CD±RW、DVD±RW、メモリディスク、SRAM、ROMなど)を表す。
外部記録部総容量および外部記録部使用量は、それぞれ、外部記録部IDによって識別される外部記録部28の総容量および現在使用中の容量を表す。
外部記録部ID、外部記録部種別ID、外部記録部総容量および外部記録部使用量は、1つの外部記録部28に対して一組設定されるものであり、当該の情報処理コントローラに接続されている外部記録部28の数の組数だけ設定される。すなわち、1つの情報処理コントローラに複数の外部記録部が接続されている場合、各々の外部記録部には異なる外部記録部IDが割り当てられ、外部記録部種別ID、外部記録部総容量および外部記録部使用量も別々に管理される。
地域IDは、放送局の放送番組が地域によって異なることを前提として、情報処理装置が所在する地域を識別するための番号である。
(ソフトウェアセルの実行)
ある情報処理装置内の情報処理コントローラに含まれるメインプロセッサ21は、以上のような構成のソフトウェアセルを生成し、ネットワーク9を介して他の情報処理装置および当該装置内の情報処理コントローラに送信する。送信元の情報処理装置、送信先の情報処理装置、応答先の情報処理装置、および各装置内の情報処理コントローラは、それぞれ、上記の送信元ID、送信先IDおよび応答先IDによって識別される。
ソフトウェアセルを受信した情報処理装置内の情報処理コントローラに含まれるメインプロセッサ21は、そのソフトウェアセルをメインメモリ26に格納する。さらに、送信先のメインプロセッサ21は、ソフトウェアセルを読み出し、それに含まれるDMAコマンドを処理する。
具体的に、送信先のメインプロセッサ21は、まず、ロードコマンドを実行する。これによって、ロードコマンドで指示されたメインメモリアドレスから、ロードコマンドに含まれるサブプロセッサIDおよびLSアドレスで特定されるサブプロセッサ内のLS24の所定領域に、情報がロードされる。ここでロードされる情報は、受信したソフトウェアセルに含まれるサブプロセッサプログラムまたはデータ、あるいはその他の指示されたデータである。
次に、メインプロセッサ21は、キックコマンドを、これに含まれるサブプロセッサIDで指示されたサブプロセッサに、同様にキックコマンドに含まれるプログラムカウンタと共に出力する。
指示されたサブプロセッサは、そのキックコマンドおよびプログラムカウンタに従って、サブプロセッサプログラムを実行する。そして、実行結果をメインメモリ26に格納した後、実行を完了したことをメインプロセッサ21に通知する。
なお、送信先の情報処理装置内の情報処理コントローラにおいてソフトウェアセルを実行するプロセッサはサブプロセッサ23に限定されるものではなく、メインプロセッサ21がソフトウェアセルに含まれる機能プログラムなどのメインメモリ用プログラムを実行するように指定することも可能である。
この場合には、送信元の情報処理装置は、送信先の情報処理装置宛に、サブプロセッサプログラムの代わりに、メインメモリ用プログラムおよびそのメインメモリ用プログラムによって処理されるデータを含み、DMAコマンドがロードコマンドであるソフトウェアセルを送信し、メインメモリ26にメインメモリ用プログラムおよびそれによって処理されるデータを記憶させる。次に、送信元の情報処理装置は、送信先の情報処理装置宛に、送信先の情報処理装置内の情報処理コントローラについてのメインプロセッサID、メインメモリアドレス、メインメモリ用プログラムを識別するための後述の機能プログラムIDなどの識別子、およびプログラムカウンタを含み、DMAコマンドがキックコマンドまたは機能プログラム実行コマンドであるソフトウェアセルを送信して、メインプロセッサ21に当該メインメモリ用プログラムを実行させる。
以上のように、この発明のネットワークシステムでは、送信元の情報処理装置は、サブプロセッサプログラムまたはメインメモリ用プログラムをソフトウェアセルによって送信先の情報処理装置に送信するとともに、当該サブプロセッサプログラムを送信先の情報処理装置内の情報処理コントローラに含まれるサブプロセッサ23にロードさせ、当該サブプロセッサプログラムまたは当該メインメモリ用プログラムを送信先の情報処理装置に実行させることができる。
送信先の情報処理装置内の情報処理コントローラでは、受信したソフトウェアセルに含まれるプログラムがサブプロセッサプログラムである場合には、当該サブプロセッサプログラムを指定されたサブプロセッサにロードさせる。そして、ソフトウェアセルに含まれるサブプロセッサプログラムまたはメインメモリ用プログラムを実行させる。
したがって、ユーザが送信先の情報処理装置を操作しなくても自動的に、当該サブプロセッサプログラムまたは当該メインメモリ用プログラムを送信先の情報処理装置内の情報処理コントローラに実行させることができる。
このようにして情報処理装置は、自装置内の情報処理コントローラがサブプロセッサプログラムまたは機能プログラムなどのメインメモリ用プログラムを有していない場合には、ネットワークに接続された他の情報処理装置からそれらを取得することができる。さらに、各サブプロセッサ間ではDMA方式によりデータ転送を行い、また上述したサンドボックスを使用することによって、1つの情報処理コントローラ内でデータを多段階に処理する必要がある場合でも、高速かつ高セキュリティに処理を実行することができる。
〔ネットワークシステムとしての分散処理:図5乃至図15〕
ソフトウェアセルの使用による分散処理の結果、図5の上段に示すようにネットワーク9に接続されている複数の情報処理装置1、2、3、4は、図5の下段に示すように、仮想的な1台の情報処理装置7として動作する。ただし、そのためには、以下のような構成によって、以下のような処理が実行される必要がある。
(システムのソフトウェア構成とプログラムのロード)
図6に、個々の情報処理コントローラのメインメモリ26が記憶するソフトウェアの構成を示す。これらのソフトウェア(プログラム)は、情報処理装置に電源が投入される前においては、当該の情報処理コントローラに接続される外部記録部28に記録されているものである。
各プログラムは、機能または特徴によって、制御プログラム、機能プログラムおよびデバイスドライバにカテゴライズされる。
制御プログラムは、各情報処理コントローラが同じものを備え、各情報処理コントローラのメインプロセッサ21が実行するもので、後述のMS(マスター/スレーブ)マネージャおよび能力交換プログラムを含む。
機能プログラムは、メインプロセッサ21が実行するもので、記録用、再生用、素材検索用など、情報処理コントローラごとに情報処理装置に応じたものが備えられる。
デバイスドライバは、情報処理コントローラ(情報処理装置)の入出力(送受信)用で、放送受信、モニタ出力、ビットストリーム入出力、ネットワーク入出力など、情報処理コントローラごとに情報処理装置に応じたものが備えられる。
ケーブルの差し込みなどによって情報処理装置が物理的にネットワーク9に接続された状態で、情報処理装置に主電源が投入され、情報処理装置が電気的・機能的にもネットワーク9に接続されると、その情報処理装置の情報処理コントローラのメインプロセッサ21は、制御プログラムに属する各プログラム、およびデバイスドライバに属する各プログラムを、メインメモリ26にロードする。
ロード手順としては、メインプロセッサ21は、まず、DC27に読み出し命令を実行させることによって、外部記録部28からプログラムを読み出し、次に、DMAC25に書き込み命令を実行させることによって、そのプログラムをメインメモリ26に書き込む。
機能プログラムに属する各プログラムについては、必要なときに必要なプログラムだけをロードするように構成してもよく、または、他のカテゴリに属するプログラムと同様に、主電源投入直後に各プログラムをロードするように構成してもよい。
ここで、機能プログラムに属する各プログラムは、ネットワークに接続された全ての情報処理装置の外部記録部28に記録されている必要はなく、いずれか1つの情報処理装置の外部記録部28に記録されていれば、前述の方法によって他の情報処理装置からロードすることができるので、結果的に図5の下段に示すように、仮想的な1台の情報処理装置7として機能プログラムを実行することができる。
ここで前述したようにメインプロセッサ21によって処理される機能プログラムは、サブプロセッサ23によって処理されるサブプロセッサプログラムと連携動作する場合がある。そこでメインプロセッサ21が外部記録部28から機能プログラムを読み出し、メインメモリ26に書き込む際に対象となる機能プログラムと連携動作するサブプロセッサプログラムが存在する場合には、当該サブプロセッサプログラムも併せて同じメインメモリ26に書き込むものとする。この場合、連携動作するサブプロセッサプログラムは1個である場合もあるし、複数個であることもあり得る。複数個である場合には、全ての連携動作するサブプロセッサプログラムをメインメモリ26に書き込むことになる。メインメモリ26に書き込まれたサブプロセッサプログラムはその後、サブプロセッサ23内のLS24に書き込まれ、メインプロセッサ21によって処理される機能プログラムと連携動作する。
図3のソフトウェアセルに示したように、機能プログラムには、プログラムごとにプログラムを一意的に識別できる識別子が、機能プログラムIDとして割り当てられる。機能プログラムIDは、機能プログラムの作成の段階で、作成日時や情報処理装置IDなどから決定される。
そしてサブプロセッサプログラムにもサブプロセッサプログラムIDが割り当てられ、これによりサブプロセッサプログラムを一意的に識別可能である。割り当てられるサブプロセッサプログラムIDは、連携動作する相手となる機能プログラムの機能プログラムIDと関連性のある識別子、例えば機能プログラムIDを親番号とした上で最後尾に枝番号を付加させたもの等であることもあり得るし、連携動作する相手となる機能プログラムの機能プログラムIDとは関連性のない識別子であってもよい。いずれにしても機能プログラムとサブプロセッサプログラムが連携動作する場合には、両者とも相手の識別子であるプログラムIDを自プログラム内に互いに記憶しておく必要がある。機能プログラムが複数個のサブプロセッサプログラムと連携動作する場合にも、当該機能プログラムは複数個ある全てのサブプロセッサプログラムのサブプロセッサプログラムIDを記憶しておくことになる。
メインプロセッサ21は、自身が動作する情報処理装置の装置情報(動作状態に関する情報)を格納するための領域をメインメモリ26に確保し、当該情報を自装置の装置情報テーブルとして記録する。ここでの装置情報は、図4に示した情報処理装置ID以下の各情報である。
(システムにおけるマスター/スレーブの決定)
上述したネットワークシステムでは、ある情報処理装置への主電源投入時、その情報処理装置の情報処理コントローラのメインプロセッサ21は、マスター/スレーブマネージャ(以下、MSマネージャ)をメインメモリ26にロードし、実行する。
MSマネージャは、自身が動作する情報処理装置がネットワーク9に接続されていることを検知すると、同じネットワーク9に接続されている他の情報処理装置の存在を確認する。ここでの「接続」または「存在」は、上述したように、情報処理装置が物理的にネットワーク9に接続されているだけでなく、電気的・機能的にもネットワーク9に接続されていることを示す。
また、自身が動作する情報処理装置を自装置、他の情報処理装置を他装置と称する。当該装置も、当該情報処理装置を示すものとする。
MSマネージャが同じネットワーク9に接続されている他の情報処理装置の存在を確認する方法を以下に示す。
MSマネージャは、DMAコマンドがステータス要求コマンドであり、送信元IDおよび応答先IDが当該情報処理装置で、送信先IDを特定しないソフトウェアセルを生成して、当該情報処理装置が接続されたネットワーク上に送信して、ネットワーク接続確認用のタイマーを設定する。タイマーのタイムアウト時間は、例えば10分とされる。
当該ネットワークシステム上に他の情報処理装置が接続されている場合、その他装置は、上記ステータス要求コマンドのソフトウェアセルを受信し、上記応答先IDで特定されるステータス要求コマンドを発行した情報処理装置に対して、DMAコマンドがステータス返信コマンドで、かつデータとして自身(その他装置)の装置情報を含むソフトウェアセルを送信する。このステータス返信コマンドのソフトウェアセルには、少なくとも当該他装置を特定する情報(情報処理装置ID、メインプロセッサに関する情報、サブプロセッサに関する情報など)および当該他装置のMSステータスが含まれる。
ステータス要求コマンドを発行した情報処理装置のMSマネージャは、上記ネットワーク接続確認用のタイマーがタイムアウトするまで、当該ネットワーク上の他装置から送信されるステータス返信コマンドのソフトウェアセルの受信を監視する。その結果、MSステータス=0(マスター装置)を示すステータス返信コマンドが受信された場合には、自装置の装置情報テーブルにおけるMSステータスを1に設定する。これによって、当該装置は、スレーブ装置となる。
一方、上記ネットワーク接続確認用のタイマーがタイムアウトするまでの間にステータス返信コマンドが全く受信されなかった場合、またはMSステータス=0(マスター装置)を示すステータス返信コマンドが受信されなかった場合には、自装置の装置情報テーブルにおけるMSステータスを0に設定する。これによって、当該装置は、マスター装置となる。
すなわち、いずれの装置もネットワーク9に接続されていない状態、またはネットワーク9上にマスター装置が存在しない状態において、新たな情報処理装置がネットワーク9に接続されると、当該装置は自動的にマスター装置として設定される。一方、ネットワーク9上に既にマスター装置が存在する状態において、新たな情報処理装置がネットワーク9に接続されると、当該装置は自動的にスレーブ装置として設定される。
マスター装置およびスレーブ装置のいずれについても、MSマネージャは、定期的にステータス要求コマンドをネットワーク9上の他装置に送信してステータス情報を照会することにより、他装置の状況を監視する。その結果、ネットワーク9に接続されている情報処理装置の主電源が遮断され、またはネットワーク9から情報処理装置が切り離されることにより、あらかじめ判定用に設定された所定期間内に特定の他装置からステータス返信コマンドが返信されなかった場合や、ネットワーク9に新たな情報処理装置が接続された場合など、ネットワーク9の接続状態に変化があった場合には、その情報を後述の能力交換プログラムに通知する。
(マスター装置およびスレーブ装置における装置情報の取得)
メインプロセッサ21は、MSマネージャから、ネットワーク9上の他装置の照会および自装置のMSステータスの設定完了の通知を受けると、能力交換プログラムを実行する。
能力交換プログラムは、自装置がマスター装置である場合には、ネットワーク9に接続されている全ての他装置の装置情報、すなわち各スレーブ装置の装置情報を取得する。
他装置の装置情報の取得は、上述したように、DMAコマンドがステータス要求コマンドであるソフトウェアセルを生成して他装置に送信し、その後、DMAコマンドがステータス返信コマンドで、かつデータとして他装置の装置情報を含むソフトウェアセルを他装置から受信することによって可能である。
能力交換プログラムは、マスター装置である自装置の装置情報テーブルと同様に、ネットワーク9に接続されている全ての他装置(各スレーブ装置)の装置情報を格納するための領域を自装置のメインメモリ26に確保し、これら情報を他装置(スレーブ装置)の装置情報テーブルとして記録する。
すなわち、マスター装置のメインメモリ26には、自装置を含むネットワーク9に接続されている全ての情報処理装置の装置情報が、装置情報テーブルとして記録される。
一方、能力交換プログラムは、自装置がスレーブ装置である場合には、ネットワーク9に接続されている全ての他装置の装置情報、すなわちマスター装置および自装置以外の各スレーブ装置の装置情報を取得し、これら装置情報に含まれる情報処理装置IDおよびMSステータスを、自装置のメインメモリ26に記録する。
すなわち、スレーブ装置のメインメモリ26には、自装置の装置情報が、装置情報テーブルとして記録されるとともに、自装置以外のネットワーク9に接続されているマスター装置および各スレーブ装置についての情報処理装置IDおよびMSステータスが、別の装置情報テーブルとして記録される。
また、マスター装置およびスレーブ装置のいずれについても、能力交換プログラムは、上記のようにMSマネージャから、新たにネットワーク9に情報処理装置が接続されたことが通知されたときには、その情報処理装置の装置情報を取得し、上述したようにメインメモリ26に記録する。
なお、MSマネージャおよび能力交換プログラムは、メインプロセッサ21で実行されることに限らず、いずれかのサブプロセッサ23で実行されてもよい。また、MSマネージャおよび能力交換プログラムは、情報処理装置の主電源が投入されている間は常時動作する常駐プログラムであることが望ましい。
(情報処理装置がネットワークから切断された場合)
マスター装置およびスレーブ装置のいずれについても、能力交換プログラムは、上記のようにMSマネージャから、ネットワーク9に接続されている情報処理装置の主電源が遮断され、またはネットワーク9から情報処理装置が切り離されたことが通知されたときには、その情報処理装置の装置情報テーブルを自装置のメインメモリ26から削除する。
さらに、このようにネットワーク9から切断された情報処理装置がマスター装置である場合には、以下のような方法によって、新たにマスター装置が決定される。
具体的に、例えば、ネットワーク9から切断されていない情報処理装置は、それぞれ、自装置および他装置の情報処理装置IDを数値に置き換えて、自装置の情報処理装置IDを他装置の情報処理装置IDと比較し、自装置の情報処理装置IDがネットワーク9から切断されていない情報処理装置中で最小である場合、そのスレーブ装置は、マスター装置に移行して、MSステータスを0に設定し、マスター装置として、上述したように、ネットワーク9に接続されている全ての他装置(各スレーブ装置)の装置情報を取得して、メインメモリ26に記録する。
(装置情報に基づく分散処理)
図5の下段に示したようにネットワーク9に接続されている複数の情報処理装置1、2、3、4を仮想的な1台の情報処理装置7として動作させるためには、マスター装置がユーザの操作およびスレーブ装置の動作状態を把握する必要がある。
図7に、4台の情報処理装置が仮想的な1台の情報処理装置7として動作する様子を示す。情報処理装置1がマスター装置、情報処理装置2、3、4がスレーブ装置A、B、Cとして、動作しているものとする。
ユーザがネットワーク9に接続されている情報処理装置を操作した場合、操作対象がマスター装置1であれば、その操作情報は、マスター装置1において直接把握され、操作対象がスレーブ装置であれば、その操作情報は、操作されたスレーブ装置からマスター装置1に送信される。すなわち、ユーザの操作対象がマスター装置1とスレーブ装置のいずれであるかにかかわらず、その操作情報は常にマスター装置1において把握される。操作情報の送信は、例えば、DMAコマンドが操作情報送信コマンドであるソフトウェアセルによって行われる。
そして、マスター装置1内の情報処理コントローラ11に含まれるメインプロセッサ21−1は、その操作情報に従って、実行する機能プログラムを選択する。その際、必要であれば、マスター装置1内の情報処理コントローラ11に含まれるメインプロセッサ21−1は、上記の方法によって自装置の外部記録部28−1、28−2からメインメモリ26−1に機能プログラムをロードするが、他の情報処理装置(スレーブ装置)がマスター装置1に機能プログラムを送信してもよい。
機能プログラムには、その実行単位ごとに必要となる、図4に示した各情報として表される情報処理装置種別ID、メインプロセッサまたはサブプロセッサの処理能力、メインメモリ使用量、外部記録部に関する条件などの、装置に関する要求スペックが規定されている。
マスター装置1内の情報処理コントローラ11に含まれるメインプロセッサ21−1は、各機能プログラムについて必要となる上記要求スペックを読み出す。また、あらかじめ能力交換プログラムによってメインメモリ26−1に記録された装置情報テーブルを参照し、各情報処理装置の装置情報を読み出す。ここでの装置情報は、図4に示した情報処理装置ID以下の各情報を示し、メインプロセッサ、サブプロセッサ、メインメモリおよび外部記録部に関する情報である。
マスター装置1内の情報処理コントローラ11に含まれるメインプロセッサ21−1は、ネットワーク9上に接続された各情報処理装置の上記装置情報と、機能プログラム実行に必要となる上記要求スペックとを順次比較する。
そして、例えば、機能プログラムが録画機能を必要とする場合には、情報処理装置種別IDに基づいて、録画機能を有する情報処理装置のみを特定して抽出する。さらに、機能プログラムを実行するために必要なメインプロセッサまたはサブプロセッサの処理能力、メインメモリ使用量、外部記録部に関する条件を確保できるスレーブ装置を、実行要求候補装置として特定する。ここで、複数の実行要求候補装置が特定された場合には、当該候補装置から1つの実行要求候補装置を特定して選択する。
実行要求するスレーブ装置が特定されたら、マスター装置1内の情報処理コントローラ11に含まれるメインプロセッサ21−1は、その特定されたスレーブ装置について、自装置内の情報処理コントローラ11に含まれるメインメモリ26−1に記録されている当該スレーブ装置の装置情報テーブルを更新する。
さらに、マスター装置1内の情報処理コントローラ11に含まれるメインプロセッサ21−1は、DMAコマンドが機能プログラム実行コマンドであるソフトウェアセルを生成し、当該ソフトウェアセルのセルインタフェースに、当該機能プログラムに関する必要なサブプロセッサの情報およびサンドボックスサイズ(図3参照)を設定して、上記実行要求されるスレーブ装置に対して送信する。
機能プログラムの実行を要求されたスレーブ装置は、その機能プログラムを実行するとともに、自装置の装置情報テーブルを更新する。その際、必要であれば、スレーブ装置内の情報処理コントローラに含まれるメインプロセッサ21は、上記の方法によって自装置の外部記録部28からメインメモリ26に機能プログラムおよび当該機能プログラムと連携動作するサブプロセッサプログラムをロードする。
機能プログラムの実行を要求されたスレーブ装置の外部記録部28に、必要な機能プログラムまたは当該機能プログラムと連携動作するサブプロセッサプログラムが記録されていない場合には、他の情報処理装置が当該機能プログラムまたはサブプロセッサプログラムを、その機能プログラム実行要求先スレーブ装置に送信するように、システムを構成すればよい。
サブプロセッサプログラムについては、前述のロードコマンドおよびキックコマンドを利用して他の情報処理装置に実行させることもできる。
機能プログラムの実行終了後、機能プログラムを実行したスレーブ装置内の情報処理コントローラに含まれるメインプロセッサ21は、終了通知をマスター装置1内の情報処理コントローラ11に含まれるメインプロセッサ21−1に送信するとともに、自装置の装置情報テーブルを更新する。マスター装置1内の情報処理コントローラ11に含まれるメインプロセッサ21−1は、その終了通知を受信して、機能プログラムを実行したスレーブ装置の装置情報テーブルを更新する。
マスター装置1内の情報処理コントローラ11に含まれるメインプロセッサ21−1は、自装置および他装置の装置情報テーブルの参照結果から、当該の機能プログラムを実行することができる情報処理装置として、自身を選択する場合もあり得る。その場合には、マスター装置1が当該の機能プログラムを実行する。
図7の例で、ユーザがスレーブ装置A(情報処理装置2)を操作し、当該操作に応じた機能プログラムを別のスレーブ装置B(情報処理装置3)が実行する場合につき、図8に以上の分散処理の例を示す。
図8の例では、ユーザがスレーブ装置Aを操作することによって、スレーブ装置Aを含むネットワークシステム全体の分散処理が開始して、まず、スレーブ装置Aは、ステップS21で、その操作情報をマスター装置1に送信する。
マスター装置1は、ステップS11で、その操作情報を受信し、さらにステップS12に進んで、自装置のメインメモリ26−1に記録されている自装置および他装置の装置情報テーブルから、各情報処理装置の動作状態を調べて、受信した操作情報に応じた機能プログラムを実行することができる情報処理装置を選択する。この例は、スレーブ装置Bが選択される場合である。
次に、マスター装置1は、ステップS13で、その選択したスレーブ装置Bに対して機能プログラムの実行を要求する。
スレーブ装置Bは、ステップS31で、その実行要求を受信し、さらにステップS32に進んで、実行要求された機能プログラムを実行する。
以上のように、ユーザは、1台の情報処理装置のみを操作することによって、他の情報処理装置を操作することなく、複数の情報処理装置1、2、3、4を仮想的な1台の情報処理装置7として動作させることができる。
(各情報処理装置およびシステムの具体例)
ネットワーク9を介して互いに接続される情報処理装置1、2、3、4は、基本的に上記のような情報処理コントローラ11、12、13、14によって情報処理を行うものであれば、どのようなものでもよいが、図9に、その一例を示す。
この例は、情報処理コントローラ11を備える情報処理装置1、2,3、4としてハードディスクレコーダを採用したのである。図10に、この情報処理装置1として採用されたハードディスクレコーダのハードウェア構成の例を示す図である。
このハードディスクレコーダである情報処理装置1は、外部記録部28−1としてハードディスクドライブを内蔵し、外部記録部28−2としてDVD±R/RW、CD±R/RW、Bluray−Disc(登録商標)などの光ディスクに対してデータの読み書きを行う光ディスクドライブを内蔵している。情報処理コントローラ11のバス29−1に接続されたバス31−1には、放送受信部32−1、映像入力部33−1、音声入力部34−1、映像出力部35−1、音声出力部36−1、操作パネル部37−1、リモコン受光部38−1およびネットワーク接続部39−1が接続されている。
放送受信部32−1、映像入力部33−1および音声入力部34−1は、放送信号を受信し、または情報処理装置1の外部から映像信号および音声信号を入力し、それぞれ所定フォーマットのデジタルデータに変換して、情報処理コントローラ11での処理のためにバス31−1に送出するものであり、映像出力部35−1および音声出力部36−1は、情報処理コントローラ11からバス31−1に送出された映像データおよび音声データを処理して、デジタルデータのまま、またはアナログ信号に変換して、情報処理装置1の外部に送出するものであり、リモコン受光部38−1は、リモコン送信器43−1からのリモコン(遠隔操作)赤外線信号を受信するものである。ネットワーク接続部39−1は、ネットワーク9を介して、他の情報処理装置(例えば、情報処理装置2,3,4)から情報を受信したり、他の情報処理装置に情報を送信したりする。
さらに、映像出力部35−1および音声出力部36−1には、モニタ表示装置41およびスピーカ装置42が接続されている。
以上は情報処理装置1に採用されたハードディスクレコーダのハードウェア構成を示したが、図9のネットワークシステムにおける他の情報処理装置2、3、4であるハードディスクレコーダの構成も同様である。
図11は、このハードディスクレコーダである情報処理装置1のソフトウェア構成を示す図である。
同図に示すように、ハードディスクレコーダである情報処理装置1は、制御プログラムとして、MSマネージャおよび能力交換プログラムを備え、機能プログラムとして、映像音声記録、映像音声再生、素材検索および番組録画予約のためのプログラムを備え、デバイスドライバとして、放送受信、映像出力、音声出力、外部記録部入出力およびネットワーク入出力のためのプログラムを備える。
なお、ネットワークシステムにおける情報処理装置は、ハードディスクレコーダの他に、PDA(Personal Digital Assistants)、CD(Compact Disc)、PC(Personal Computer)であってもよい。これらの具体的なハードウェア、ソフトウェアの構成はここでは省略する。
(情報処理装置間での番組録画予約の処理)
以上のような図9の例のネットワークシステムにおいて、情報処理装置1がマスター装置(MSステータス=0)として、情報処理装置2、3、4がスレーブ装置(MSステータス=1)として設定されているものとする。番組録画予約の処理において、マスター装置は録画予約の管理を行う管理装置として機能する。
図12は、図9のネットワークシステムにおける番組録画予約の処理の例を説明するフローチャートである。なお、この処理では、情報処理装置1がマスター装置として動作し、情報処理装置2,3,4がスレーブ装置として動作する場合について説明する。
スレーブ装置である情報処置装置2は、ステップS61において、マスター装置である情報処理装置1に、装置情報を送信する。装置情報は、例えば、図13に示されるような情報により構成されている。図13の例の場合、装置情報には、情報処理装置名として「情報処理装置#2」、地域IDとして「ID2」、残記憶容量として「30GB(ギガバイト)」が含まれている。情報処理装置名は、情報処置装置を一意に特定するためのものであり、情報処理装置#2は、情報処理装置2に特有とされている。地域IDは、情報処理装置2が設けられている地域を特定するための、地域に特有のIDである。残記憶容量は、情報処理装置2の外部記憶部の残記憶容量である。各情報処理装置1,2,3,4には、このような装置情報が、あらかじめ記憶されている。
その他のスレーブ装置である情報処理装置3,4も、情報処理装置2と同様に、それぞれ、ステップS81およびステップS91において、それぞれに記憶されている装置情報を送信する。マスター装置である情報処理装置1は、ステップS71において、情報処理装置2,3,4から送信されてきた(それぞれステップS61,ステップS81,ステップS91の処理で送信された)装置情報を受信し、この受信した装置情報と、自分自身の装置情報(この例の場合、情報処理装置1の装置情報)に基づいて、番組録画予約用の装置情報テーブルを作成(または更新)し、メインメモリ26−1に格納する。
図14に、この番組録画予約用の装置情報テーブルの例を示す。図13に示すように、番組録画予約用の装置情報テーブルには、情報処理装置名、電源On/Off、地域ID、IP(Internet Protocol)アドレスなどのネットワークアドレス、外部記憶部の残記憶容量、前回電源Onからの経過時間、録画ID、および録画データ保持の有無が対応付けられて登録されている。
例えば、図13の1行目では、情報処理装置名が「情報処理装置#1(すなわち、情報処理装置1を一意に特定するID)」である情報処理装置1において、電源がOnであり、地域IDがID1であり、IPアドレスがaaa.aaa.aaa.aaaであり、残記憶容量が10GB(ギガバイト)であり、前回電源Onからの経過時間が30分であることがわかる。また、情報処理装置1が録画予約をした放送番組の録画IDがID11であり、情報処理装置1が、その録画IDに対応する録画データを保持している(○は、保持していることを示し、×は、保持していないことを示すので、この場合は保持している)ことがわかる。なお、前回電源Onからの経過時間とは、例えば、前回情報処理装置1がOnからOffに切り替えられた時刻から、現在までの経過時間であり、現在は電源がOnになっているので、この例の場合では、30分前に電源がOnからOffに切り替えられ、またその後、現在までに、電源がOnされた状態であることを示す。
ここで、図12に戻って、ユーザによってスレーブ装置である情報処理装置2で放送番組の録画予約の操作が行われた場合の動作を説明する。
情報処理装置2では、例えば全国の放送番組表のデータ(例えば、EPG(電子番組表))を、ネットワーク9などからダウンロードするなどして保持している。情報処理装置2は、ユーザから、地域ID、録画開始時刻、録画終了時刻、放送チャンネル、録画品質(例えば、LP(ロングプレイ)またはSP(スタンダードプレイ))などの情報を含む録画モードなどの情報の入力を受け付けると、ステップS62において、図15に示すように、上記の入力情報をデータとして含むDMAコマンドである録画予約コマンドを生成して、マスター装置である情報処理装置1に送信する。すなわち、スレーブ装置である情報処理装置2は、ユーザからの録画予約を指令する操作入力に基づいて、録画予約コマンド(図15)を生成し、マスター装置である情報処理装置1に送信する。
図15は、録画予約コマンドの例を示す図である。図15の例の場合、DMAコマンドとして、録画予約コマンドが設定され、データ部には、地域ID、録画開始時刻、録画終了時刻、放送チャンネル、および録画品質が設定されている。地域IDは、録画予約コマンドを生成する情報処理装置2の地域IDではなく、録画する放送番組が放送されている地域を特定するIDである。この地域IDは、上述した全国の放送番組表のデータから、ユーザが録画を予約する番組を選択した場合に特定される。
マスター装置である情報処理装置1は、ステップS72において、情報処理装置2から送信された録画予約コマンドを受信するとともに、番組録画予約用の装置情報テーブルを参照して、この録画を実行可能な1台以上の情報処理装置を選択する。この録画実行可能な情報処理装置を選択する処理の詳細は図19を参照して後述する。
続いて、マスター装置である情報処理装置1は、ステップS73において、録画依頼コマンドを送信するか否かを判定する。具体的には、既に、録画予約コマンドに対応する放送番組の録画依頼コマンドを送信していた場合には(後述する図19の処理で、同じ録画IDを付した場合には)、録画依頼コマンドを送信しないと判定し、録画予約コマンドに対応する放送番組の録画依頼コマンドを送信していない場合には(後述する図19の処理で、新たな録画IDを付した場合には)、録画依頼コマンドを送信すると判定する。ステップS73において、録画依頼コマンドを送信すると判定された場合、情報処理装置1は、ステップS74において、選択した1台以上の録画実行可能な情報処理装置(ステップS72の処理で選択した装置)に対して、図16に示すように、録画ID、録画開始時刻、録画終了時刻、放送チャンネル、録画品質などの情報を含む録画モードなどの情報をデータとして含むDMAコマンドである録画依頼コマンドを送信する。
図16の録画依頼コマンドに含まれる録画IDは、後述する図19の処理で付された録画IDであり、その放送番組を一意に特定するものである。詳細は図19を参照して後述するが、情報処理装置1は、ステップS72の処理で、図14の録画番組予約用の装置情報テーブルに、録画予約コマンドを送信してきた装置の装置名、電源On/Off、地域ID、IPアドレス、残記憶容量、前回電源Onからの経過時間、録画ID、録画データ保持の有無(○または×)を登録する。この例の場合、図13の録画番組予約用の装置情報テーブルの2行目に示されるような、情報処理装置#2、電源On、ID2、bbb.bbb.bbb.bbb、30GB、12時間、ID15、および×を登録する。
なお、図12は、録画実行可能な情報処理装置として2台の情報処理装置3、4が選択され、これらの情報処理装置3、4に録画依頼コマンドを送信した番組録画予約の処理例を示している。指定された録画の時間に対し、1台の情報処理装置の外部記憶部では残記憶容量が不足する場合には、このように複数の情報処理装置で時間を分けて録画を行うように、複数の情報処理装置に対して録画依頼コマンドが送信される。この際、一方の情報処理装置に対して送信される録画依頼コマンドの録画終了時刻と他方の情報処理装置に対して送信される録画依頼コマンドの録画開始時刻とには時間的な重なりを設けておくことが望ましい。
すなわち、ユーザによって指定された録画開始時刻が9:00、録画終了時刻が10:00だとした場合、例えば、一方の情報処理装置に対して送信される録画依頼コマンドの録画開始時刻を9:00、録画終了時刻を9:31とし、他方の情報処理装置に対して送信される録画依頼コマンドの録画開始時刻を9:30、録画終了時刻を10:00とする。このように一方の情報処理装置に対して送信される録画依頼コマンドの録画終了時刻と他方の情報処理装置に対して送信される録画依頼コマンドの録画開始時刻とには時間的な重なりを設けることで、録画完了後、2つの録画コンテンツをこれらに含まれているタイムスタンプを用いて一本のストリームにマージすることができる。
図12の例の場合、マスター装置である情報処理装置1は、ステップS74において、録画依頼コマンドを情報処理装置3と情報処理装置4に送信する。情報処理装置3と情報処理装置4は、それぞれステップS82とステップS92において、この録画依頼コマンドを受信し、この録画依頼コマンドにデータとして含まれている録画ID、録画開始時刻、録画終了時刻、放送チャンネル、録画品質などの情報を記憶し、この情報に基づいて予約番組の録画を実行し、ハードディスドライブ、光ディスクドライブなどの外部記録部に、録画IDと対応付けて録画データを蓄積する。予約番組の録画が完了すると、情報処理装置3、4は各々、ステップS83とステップS93において、マスター装置である情報処理装置1に対して、図17に示すように、録画IDと、自身の情報処理装置を識別するネットワークアドレスなどのID(例えば、図13の装置情報として情報処理装置3,4にあらかじめ設定されている装置を特定する名前(情報処理装置#3,4))をデータとして含むDMAコマンドである録画完了通知コマンドを送信する。
マスター装置である情報処理装置1は、ステップS75において、情報処理装置3,4からそれぞれステップS83,ステップS93の処理で送信された録画完了通知コマンドを受信すると、録画コンテンツ(録画されたコンテンツ)を転送する情報処理装置を、その録画コンテンツの録画予約コマンドを送信してきた装置の中から選択するための、転送先選択処理を実行する。図12の例の場合、転送先は情報処理装置2となる。
ステップS75の処理の後、ステップS76において、情報処理装置1は、図18に示すように、録画IDと、転送先の情報処理装置を識別するID(情報処理装置名)をデータとして含むDMAコマンドである録画コンテンツ転送依頼コマンドを、録画完了通知コマンドの送信元である情報処理装置3,4に送信する。このとき、転送先の情報処理装置は、番組予約元の情報処理装置2(情報処理装置2を識別するIDである情報処理装置#2)となる。
情報処理装置3,4はそれぞれ、ステップS84,ステップS94において、録画コンテンツ転送依頼コマンドを受信する。そして、情報処理装置3,4は、それぞれステップS85,ステップS95において、外部記録部に記録された該当する録画コンテンツのデータを転送先として指定された情報処理装置2に転送する。すなわち、情報処理装置3,4は、録画コンテンツ転送依頼コマンドに含まれる、転送先の情報処理装置に対して、録画した放送番組のデータ(録画コンテンツ)を転送する。
番組予約元の情報処理装置2は、ステップS63において、録画コンテンツのデータを受信すると、これをハードディスドライブ、光ディスクドライブなどの外部記録部に記録保存する。このとき、複数の情報処理装置3,4から録画コンテンツのデータを受信した場合には、情報処理装置1は、受信した2つの録画コンテンツのデータをこれらのタイムスタンプに基づいて1つのストリームにマージし、このマージしたデータを外部記録部に記録保存する。
一方、録画を実行した情報処理装置3,4は、ステップS85,ステップS95の処理による番組予約元の情報処理装置1への録画コンテンツのデータの転送が正常に終了したならば、それぞれステップS86,ステップS96において、各々の外部記録部から、録画コンテンツのデータを削除する。なお、番組予約元の情報処理装置2において録画コンテンツのデータの保存が正常に行われたことを確認してから、録画コンテンツのデータを削除するようにしてもよい。
図12の処理により、ユーザからの録画予約の指令を受け付けたスレーブ装置である情報処理装置2からの録画予約コマンドに基づいて、マスター装置である情報処理装置1が、録画装置を選択するとともに、録画依頼コマンドを送信し、転送先を選択し、録画コンテンツ転送依頼を行うようにしたので、スレーブ装置である情報処理装置3,4が予約番組を録画し、録画コンテンツを転送し、さらに、情報処理装置2が録画コンテンツを保存することができる。すなわち、情報処理装置2は、全国の放送番組のデータを保存することができる。換言すると、情報処理装置2は、自分自身の地域ではない地域で放送されている番組であっても、録画コンテンツを取得し、保存することができる。
なお、図12の例の場合、録画予約コマンドを送信する装置を1台(情報処理装置2)としたが、同じ放送番組の録画予約コマンドを送信する装置は1台に限らず、複数(2台以上)であってもよい。また、図12の例の場合、予約番組の録画を行う装置を2台(情報処理装置3,4)としたが、1台であってもよいし、3台以上であってもよい。
次に、図12のステップS72の録画実行可能な情報処理装置を選択する処理の詳細を、図19のフローチャートを参照して説明する。なお、この処理は、上述した図12のステップS62の処理で、情報処理装置2から録画予約コマンドが送信されてきたときに開始される処理であって、マスター装置である情報処理装置1が実行する処理である。
まず、マスター装置である情報処理装置1は、ステップS121において、情報処理装置2から送信されてきた録画予約コマンドを受信し、その録画予約コマンドで特定される放送番組が、既に録画依頼済みの番組であるか否かを判定する。例えば、情報処理装置1は、録画予約コマンドを参照すれば、その地域、録画開始時刻、録画終了時刻、放送チャンネルに基づいて放送番組を特定できるので、これに基づいて、既に同じ番組が依頼されていないかを判定する。既に録画依頼済みの番組は、その番組を特定する録画IDが付されるとともに、図14の番組予約用の装置情報テーブルに、その番組を依頼した装置が特定できるように登録されている。ステップS121において、既に録画依頼済みの番組であると判定された場合、ステップS122において、情報処理装置1は、同じ番組の録画IDと同じ録画IDを付し、例えば、図14に示す番組録画予約用の装置情報テーブルの一番下の行に、依頼してきた装置(例えば、情報処理装置2)を新たに登録する。
例えば、情報処理装置2が送信してきた録画予約コマンドが、図14の3行目の、録画IDがID18で特定される、情報処理装置#3(情報処理装置3)が録画予約した番組と同一の番組の録画を予約するものであった場合、情報処理装置1は、図14の5行目に、情報処理装置名が情報処理装置#2、電源がOn、地域IDがID2、IPアドレスがbbb.bbb.bbb.bbb、残記憶容量が30GB、前回電源Onからの経過時間が12時間、録画IDがID18、および録画データ保持が×というテーブルを追加する。すなわち、録画IDが、3行目の録画ID18と同一のIDとされる。このようにすることで、後述する処理で、録画IDにより、その放送番組の録画を依頼した装置を特定することができる。
ステップS121において、既に録画依頼済みの番組でないと判定された場合、すなわち、録画予約コマンドで特定される番組が、まだ録画依頼されたことがない番組であった場合、ステップS123において、情報処理装置1は、録画予約する番組に新たに録画IDを付す。この録画IDは、これまで付された録画IDとは異なるIDであり、その番組を一意に特定するものである。
ステップS124において、情報処理装置1は、図14の番組予約用の装置情報テーブルを参照し、現在電源がOnのものを抽出する。図14の例の場合、情報処理装置1,2,3,4が抽出される。そしてステップS125において、情報処理装置1は、抽出した電源Onの情報処理装置1、2,3,4のなかから、録画予約コマンドにデータとして含まれる地域IDと一致する情報処理装置を抽出する。例えば、録画予約コマンドにデータとして含まれる地域IDがID3であった場合、情報処理装置名が情報処理装置#3に対応する情報処理装置3が抽出される。
次に、マスター装置である情報処理装置1は、ステップS126において、録画予約コマンドにデータとして含まれる録画開始時刻と録画終了時刻とから総録画時間を算出し、ステップS127において、算出した総録画時間と、録画予約コマンドにデータとして含まれる録画モードなどから、録画に必要な記憶容量を算出する。
次に、ステップS128において、マスター装置である情報処理装置1は、番組録画予約用の装置情報テーブル(図14)を参照して、ステップS125で抽出された情報処理装置のなかから、外部記憶部の残記憶容量が、録画に必要な記憶容量よりも多いものを抽出する。
ステップS129において、マスター装置である情報処理装置1は、ここまでの処理で該当する装置があるか否かを判定する。例えば、マスター装置である情報処理装置1は、ステップS128までの処理において、1つ以上の情報処理装置を抽出できたのであれば、該当する装置がある(YES)と判定し、1つも情報処理装置を抽出できなかった場合には、該当する装置がない(NO)と判定する。ステップS129において、該当する装置があると判定された場合、マスター装置である情報処理装置1は、ステップS130において、番組録画予約用の装置情報テーブルを参照して、抽出された1つ以上の情報処理装置のなかから、前回電源Onからの経過時間が1番長いものを、録画実行可能な情報処理装置(録画装置)として選択する。
また、ステップS129において、該当する装置がない、すなわち、外部記憶部の残記憶容量が、録画に必要な記憶容量よりも大きい情報処理装置が存在しないと判定された場合、情報処理装置1は、1つの予約番組の録画を分担して行う複数の情報処理装置を判定するために、例えば、次のような処理を行う。まず、情報処理装置1は、ステップS131において、ステップS125の処理で抽出した情報処理装置のなかから、外部記録部の残記憶容量が録画に必要な記憶容量の半分の容量より大きいものをすべて抽出し、ステップS132において、抽出した情報処理装置のなかから、前回電源Onからの経過時間が長い2つの装置(すなわち、前回電源Onからの経過時間が1番長い装置と2番目に長い装置)を、録画実行可能な2つの情報処理装置(録画装置)として選択する。
ステップS122の処理の後、ステップS130の処理の後、またはステップS132の処理の後、処理は終了され、図12のステップS72に戻る。
図19の処理によれば、既に録画依頼済みの番組と同じ番組が録画予約された場合(録画予約コマンドが送信されてきた場合)には、録画依頼コマンドが重複して送信されずに、同じ録画IDが付されて、録画予約コマンドを送信して来たスレーブ装置としての情報処理装置2の情報がテーブルに追加され、まだ録画IDが付されていない番組が録画予約された場合には、新たな録画IDが付されるとともに、録画依頼コマンドが、予約された放送番組を受信録画可能な情報処理装置(例えば、情報処理装置3,4)に他の情報処理装置(情報処理装置2)からの録画予約を依頼するようにしたので、録画依頼コマンドの重複を避けることができ、効率をよくすることができる。
次に、図12のステップS75の転送先選択処理の詳細を、図20のフローチャートを参照して説明する。なお、この処理は、上述した図12のステップS83,ステップS93の処理で、それぞれ情報処理装置3,4から録画完了通知(図17)が送信されてきたときに開始される処理であって、例えば、マスター装置である情報処理装置1が実行する処理である。
ステップS141において、マスター装置である情報処理装置1は、情報処理装置3,4により、それぞれ図12のステップS83,ステップS93の処理で送信された録画完了通知(図17)を受信する。
ステップS142において、情報処理装置1は、図14の録画番組予約用の装置情報テーブルから、ステップS141の処理で受信した図17の録画完了通知に含まれる録画IDと同じ録画IDを検索する。例えば、受信した録画完了通知の録画IDがID15である場合、情報処理装置1は、図14のテーブルの録画IDがID15であるものを検索する。上述した処理で、同じ番組を録画予約した装置が複数あった場合には、図14の番組予約用の装置情報テーブルに同じ録画IDが複数登録されていることになるので、複数のID15が検出される。
ステップS143において、情報処理装置1は、検出した録画IDに基づいて、同じ番組を依頼した録画依頼装置を抽出する。すなわち、ステップS142の処理で、録画が完了した番組に対応する録画IDが検出されているので、情報処理装置1は、検出された録画IDに対応付けられている装置、すなわち、録画IDに対応する番組を依頼した録画依頼装置を抽出する。録画IDによれば、番組を特定することが可能であるので、同じ番組を依頼した録画依頼装置は、録画IDにより求めることができる。例えば、ステップS142の処理で、録画IDとしてID15が検出された場合、情報処理装置1は、ステップS143の処理では、録画IDがID15に対応付けられている情報処理装置を抽出する。図14の例の場合、録画ID15に対応付けられている情報処理装置2が抽出される。上述した処理で、同じ番組を録画予約した装置が複数あった場合には、複数のID15が検出されているので、ステップS143の処理により、複数の情報処理装置が抽出される。
ステップS144において、マスター装置である情報処理装置1は、同じ番組を依頼した録画依頼装置は1つであるか否かを判定する。すなわち、情報処理装置1は、ステップS143の処理で抽出した録画依頼装置が1台であるか否かを判定する。録画依頼装置が1台であると判定された場合、ステップS145において、情報処理装置1は、その1台の録画依頼装置を転送先として選択する。例えば、図14の例の場合、録画IDがID15である装置は、情報処理装置2のみであるので、転送先として、録画を依頼した情報処理装置2が選択される。
ステップS144において、同じ番組を依頼した録画依頼装置が1つではない、すなわち、同じ番組を依頼した録画依頼装置が複数あると判定された場合、処理はステップS146において、情報処理装置1は、録画依頼装置の地域IDが全て同じであるか否かを判定する。具体的には、情報処理装置1は、図14の番組予約用の装置情報テーブルを参照して、同じ番組を依頼した録画依頼装置(ステップS143で抽出された録画依頼装置)のうち、同じ地域IDを有する装置があるか否かを判定する。例えば、録画依頼装置が3台あり、1台目の録画依頼装置の地域IDがID15であり、2台目の録画依頼装置の地域IDがID18であり、3台目の録画依頼装置の地域IDがID18である場合、2台の録画依頼装置の地域IDは同じであるが、異なる地域IDを有する録画依頼装置もあるのでNOと判定される(すなわち、異なる地域IDを有する装置が1台でもあればNOと判定される)。
ステップS146において、録画依頼装置の地域IDが全て同じである(地域IDが全て同一である)と判定された場合、ステップS147において、情報処理装置1は、録画依頼装置の内、1番残記憶容量が多い装置を、図14の番組予約用の装置情報テーブルを参照して選択し、転送先とする。
ステップS146において、録画依頼装置の地域IDが全て同じではない(複数の地域IDがある)と判定された場合、ステップS148において、情報処理装置1は、各地域IDの中でそれぞれ1番残記憶容量が多い装置を選択し、転送先とする。例えば、録画依頼装置が3台あり、1台目の録画依頼装置の地域IDがID15であり、2台目の録画依頼装置の地域IDがID18であり、3台目の録画依頼装置の地域IDがID18である場合、ID18である2台の録画依頼装置から(ID18である2台の録画依頼装置のうち)、残記憶容量が多い方の装置と、ID15である1台目の録画依頼装置との2台の録画依頼装置が、転送先として選択される。
ステップS145の処理の後、ステップS147の処理の後、またはステップS148の処理の後、処理は終了され、図12のステップS75に戻る。
図20の処理により、マスター装置である情報処理装置1が図14の番組予約用の装置情報テーブルを有することで、録画IDを参照して、録画依頼した装置を特定し、さらに、その録画依頼装置の地域IDに基づいて、各地域IDの中でそれぞれ1番残記憶容量が多い装置が転送先として選択されるので、同じ地域IDを有する地域内では、1台の録画依頼装置だけが録画コンテンツを保存することになる。
このように、マスター装置である情報処理装置1は、録画完了通知に含まれる録画IDと同一の録画IDを抽出することで、その録画依頼をした複数の録画依頼装置を特定し、その複数の録画依頼装置の地域IDを比較し、全ての録画依頼装置の地域IDが同一である場合には、録画依頼装置の中で残記憶容量が1番多い装置を転送先として選択し、全ての録画依頼装置の地域IDが同一ではない場合には、各地域IDの録画依頼装置の中で、残記憶容量が1番多い装置を転送先として選択する。このように、転送先の装置としては、各地域IDにおいてそれぞれ1台ずつに限定したので、録画コンテンツの転送におけるネットワークの負荷を少なくすることができる。
上述した図12の例では、録画予約コマンドを送信する装置が1台(情報処理装置2)であり、予約番組を録画する装置(録画依頼コマンドを受信する装置、録画装置)が2台(情報処理装置3,4)である場合について説明したが、次に、録画依頼コマンドを送信する装置が2台(情報処理装置2,3)であり、予約番組を録画する装置(録画依頼コマンドを受信する装置)が1台(情報処理装置4)である場合について、図21を参照して説明する。
図21のフローチャートは、図9のネットワークシステムにおける番組録画予約の処理の他の例を説明するフローチャートである。なお、この処理では、情報処理装置1がマスター装置として動作し、情報処理装置2,3,4がスレーブ装置として動作する場合について説明する。
スレーブ装置である情報処理装置2におけるステップS161,ステップS162の処理は、上述した図12のステップS61,ステップS62の処理と同様であり、スレーブ装置である情報処理装置3におけるステップS171,ステップS172の処理は、上述した図12のステップS61,ステップS62の処理と同様であり、スレーブ装置である情報処理装置4のステップS201の処理は、上述した図12のステップS91の処理と同様であるので、その説明は省略する。マスター装置である情報処理装置1は、ステップS181において、情報処理装置2,3,4からそれぞれステップS161,ステップS171,ステップS201で送信された装置情報を受信し、装置情報テーブルの作成・更新を行う。この処理は、図12のステップS81の処理と同様であるので、その詳細は省略する。
マスター装置である情報処理装置1は、ステップS182において、録画装置選択処理を実行する。なお、詳細な図示は省略しているが、ステップS182乃至ステップS184の処理は、スレーブ装置である情報処理装置から録画予約コマンドが送信されてくる度に繰り返される。上述した図12のステップS72では、録画予約コマンドが1台の装置(情報処理装置2)から送信され、録画装置(録画依頼装置)として2台の装置(情報処理装置3,4)が選択されたが、図21の処理では、録画予約コマンドが2台の装置(情報処理装置2,3)から送信され、録画装置として1台の装置(情報処理装置4)が選択される。
より具体的な例として、情報処理装置2が、ステップS162において録画予約コマンドを送信し、その後、情報処理装置3が、ステップS172において、情報処理装置2がステップS162で送信した録画予約コマンドに対応する放送番組と同じ番組を録画予約し、録画予約コマンドを送信する場合について、情報処理装置1が実行するステップS182の処理を、その詳細である図19を参照して説明する。
最初に、情報処理装置2がステップS162において録画予約コマンドを送信すると、情報処理装置1は、1回目のステップS121において、それが、既に録画依頼済みの番組ではないと判定し、ステップS123において、録画予約する番組に録画ID(例えば録画ID15)を付す。その後の処理は上述した処理と同様であり、ステップS130またはステップS132で、録画装置を選択する。
その後、図21のステップS183で、情報処理装置1は、録画依頼コマンドを送信するか否かを判定する。この場合、図19において、録画装置を選択しているので、情報処理装置1は、録画依頼コマンドを送信すると判定し、ステップS184において、録画依頼コマンドを、選択した録画装置に送信される。このとき、録画依頼コマンドに含まれる録画IDは、1回目の図19のステップS123において付された録画IDと同一(例えば、録画ID15)である。
次に、情報処理装置3がステップS172において録画予約コマンドを送信すると、情報処理装置1は、2回目のステップS121(図19)において、それが既に録画依頼済みの番組であると判定し、ステップS122において、同じ番組の録画IDと同じ録画ID(例えば、録画ID15)を付す。ここでは、1回目のステップS123の処理で付した録画IDと同じ番組が依頼されているので、その録画IDと同じ録画IDが付される。そして、図21のステップS183で、情報処理装置1は、録画依頼コマンドを送信するか否かを判定する。この場合、録画装置を選択していないので(すなわち、既に録画装置に対して録画依頼コマンドを送信済みであるので)、情報処理装置1は、録画依頼コマンドを送信しないと判定し、ステップS184の処理をスキップする。
このようにして、情報処理装置1は、録画予約コマンドが送信されてくる度に、ステップS182乃至ステップS184の処理を繰り返す。
次に、情報処理装置1におけるステップS184の処理に対応して、情報処理装置4は、ステップS202で予約番組の録画を行い、ステップS203で録画完了通知を送信する。なお、この処理は、上述した図12のステップS92,ステップS93の処理と同様であるので、その詳細な説明は省略する。
マスター装置である情報処理装置1は、録画装置である情報処理装置4からステップS203の処理で録画完了通知が送信されると、ステップS185において、転送先選択処理を実行する。
より具体的な例を、ステップS185の処理の詳細である図20を参照して説明する。なお、基本的には、上述した図20の処理と同様である。
マスター装置である情報処理装置1は、ステップS141で情報処理装置4からの録画完了通知を受信し、ステップS142で、装置情報テーブル(番組予約用の装置情報テーブル)から同一の録画ID(例えば、録画ID15)を検索する。この場合、上述した図21のステップS182の処理で付された録画ID(例えば、録画ID15)が検出される。そして、ステップS143では、同じ番組を依頼した録画依頼装置として、図21の例の場合、情報処理装置2と情報処理装置3を抽出する。そして、ステップS144において、同じ番組を依頼した録画依頼装置は1つでないと判定し、ステップS146において、録画依頼装置の地域IDが同じであるか否かを判定する。情報処理装置1は、番組予約用の装置情報テーブルの情報処理装置2と情報処理装置3の地域IDを比較し、その地域IDが同じである場合には、ステップS147に進み、2つの装置のうち、残記憶容量が多い装置を選択し、転送先とする。例えば、情報処理装置2,3の地域IDが同じであった場合、情報処理装置1は、情報処理装置3を転送先として選択する。また、情報処理装置1は、番組予約用の装置情報テーブルの情報処理装置2と情報処理装置3の地域IDを比較し、その地域IDが異なる場合には、ステップS148に進み、各地域IDの中でそれぞれ1番残記憶容量が多い装置を選択し、転送先とする。この例の場合、情報処理装置2と情報処理装置3がともに、転送先として選択される。ここでは、情報処理装置2,3の地域IDが同じであり、情報処理装置3が転送先として選択された場合について、以降の図21の処理を説明していく。
図21のステップS185の処理で、情報処理装置3が転送先として選択された後、情報処理装置1は、ステップS186において、情報処理装置4に対して、録画コンテンツ転送依頼を行う。具体的には、情報処理装置1は、図18に示すように、録画IDと、転送先の情報処理装置を識別するID(情報処理装置名)をデータとして含むDMAコマンドである録画コンテンツ転送依頼コマンドを、録画完了通知コマンドの送信元である情報処理装置4に送信する。なお、転送先の情報処理装置は、ここでは、ステップS185の処理で選択された情報処理装置3(情報処理装置3を識別するIDである情報処理装置#3)である。情報処理装置1は、この録画コンテンツ転送依頼を行った後、図14の番組予約用の装置情報テーブルにおいて、録画コンテンツ転送先装置と録画IDが対応する箇所の録画データ保持の欄を○にする。例えば、情報処理装置3の録画IDがID18である箇所(すなわち、図14の3行目)の録画データ保持を「○」とする。このテーブルにより、情報処理装置1は、録画データを保持している(転送した)装置を特定することができる。
情報処理装置4は、ステップS204において録画コンテンツ転送依頼コマンドを受信すると、ステップS205において、外部記録部に記録された該当する録画コンテンツのデータを転送先として指定された情報処理装置3に転送する。すなわち、情報処理装置4は、録画コンテンツ転送依頼コマンドに含まれる、転送先の情報処理装置に対して、録画した放送番組のデータ(録画コンテンツ)を転送する。
番組予約元の情報処理装置3は、ステップS173において、録画コンテンツのデータを受信すると、これをハードディスドライブ、光ディスクドライブなどの外部記録部に記録保存する。このとき、複数の情報処理装置から録画コンテンツのデータを受信した場合には、情報処理装置3は、受信した2つの録画コンテンツのデータをこれらのタイムスタンプに基づいて1つのストリームにマージし、このマージしたデータを外部記録部に記録保存するが、この処理では、予約番組を録画するのは1台の情報処理装置であるので、情報処理装置3は、情報処理装置4から送信されてきた録画コンテンツを、そのまま保存する。
一方、録画を実行した情報処理装置4は、ステップS205の処理による録画コンテンツのデータの転送が正常に終了したならば、ステップS206において、外部記録部から録画コンテンツのデータを削除する。なお、番組予約元(転送先)の情報処理装置3において録画コンテンツのデータの保存が正常に行われたことを確認してから、録画コンテンツのデータを削除するようにしてもよい。
ここまでの処理で、同じ番組の録画予約が同じ地域IDを有する情報処理装置2,3により行われた場合には、それらの装置のうちの残記憶容量が多い方の情報処理装置3に録画コンテンツの転送が行われる。これにより、録画コンテンツは、各地域IDの録画依頼端末のいずれかに存在することになる。マスター装置である情報処理装置1は、図14の番組予約用の装置情報テーブルの録画データの有無「○または×」を参照することで、録画コンテンツを保持している端末を特定することができる。このように、同じ地域IDの複数の情報処理装置により同じ番組の録画予約が行われた場合には、その地域において1台のみの装置に録画コンテンツが転送される。すなわち、録画予約を行った情報処理装置2には、まだ録画コンテンツが転送されていないことになる。
そこで、録画コンテンツを保持していない録画依頼装置への録画コンテンツの転送手順について説明する。
例えば、図22のステップS163において、ユーザにより情報処理装置2に対して再生が指令された場合、情報処理装置2は、再生要求を、情報処理装置1に対して送信する。情報処理装置1は、これをステップS187において受信し、録画コンテンツ保持装置を特定する。具体的には、図14の番組予約用の装置情報テーブルを参照し、再生が要求された番組に対応する録画IDの録画データを有している(○になっている)装置を特定する。いまの例の場合、上述したステップS186の処理で、情報処理装置3の録画ID18で特定される番組の録画データ保持が○とされたので、情報処理装置1は、録画データを有している装置として、情報処理装置3を特定する。なお、図22のステップS163では、再生が指令された場合に情報処理装置2が再生要求を送信するようにしたが、情報処理装置2の電源がOnされたタイミングであって、録画予約した番組の録画時刻が既に過ぎている番組(再生リストに登録されている番組)の録画コンテンツが保持されていない場合に、録画コンテンツの要求を送信するようにしてもよい。すなわち、同じ地域であって、同じ番組を録画予約した録画依頼装置の電源がOnされ、再生リストに登録されている番組であって、録画コンテンツが記憶されていない場合に、録画依頼装置は、マスター装置に対して録画コンテンツの要求を送信するようにしてもよい。再生リストは、例えば、録画予約が行われた後、録画終了時刻が過ぎた後に、その番組を再生するために作成されるリストである。
その後、情報処理装置1は、ステップS188において、特定した録画コンテンツ保持装置に対して、録画コンテンツ転送依頼を送信する。このとき、図18の録画コンテンツ転送依頼コマンドの転送先の情報処理装置IDは、ステップS163で再生要求を送信してきた情報処理装置2とされる。
情報処理装置3は、ステップS174において、情報処理装置1から送信されてきた録画コンテンツ転送依頼コマンド(図18)を受信し、ステップS175において、録画コンテンツ転送依頼コマンドに含まれる転送先の情報処理装置IDと録画IDに基づいて、対応する録画コンテンツを読み出し、読み出した録画コンテンツを、転送先の情報処理装置である情報処理装置2に転送する。
情報処理装置2は、ステップS164において、情報処理装置3からの録画コンテンツを受信して保存し、ステップS165において、転送完了通知を、録画コンテンツを転送してきた装置である情報処理装置3と、マスター装置である情報処理装置1に送信する。その後、情報処理装置2の処理は終了される。
情報処理装置1は、ステップS189において、情報処理装置1からの転送完了通知を受信すると、装置情報テーブルを更新し、処理を終了する。具体的には、情報処理装置2が録画データを保持したことになるので、情報処理装置2と録画IDに対応する箇所に、録画データ保持「○」として更新し、情報処理装置3と録画IDに対応する箇所に、録画データ保持「×」として更新し、処理を終了する。装置情報テーブルにおいて、同じ地域IDを有する情報処理装置間では、同じ録画IDの録画データ保持の有無が「○」となる情報処理装置は1台である。
また、情報処理装置3は、ステップS176において、情報処理装置1からの転送完了通知を受信すると、ステップS177において、その録画IDに対応する録画コンテンツ(番組)を、再生リストから削除するか否かを判定する。例えば、情報処理装置3において、その番組が既に再生済みであった場合には、再生リストから削除すると判定される。ステップS177において、再生リストから削除すると判定された場合、ステップS178において、情報処理装置3は、ステップS175で転送した録画コンテンツを削除する。ステップS177において再生リストから削除しないと判定された場合、またはステップS178の処理の後、処理は終了される。
図21と図22の処理により、同じ地域IDの情報処理装置において同じ録画予約が行われた場合には、その地域IDの地域においては1台の情報処理装置(情報処理装置3)のみに、まず、録画コンテンツを転送するようにし、その後、情報処理装置(情報処理装置2)から再生の要求があった場合、同じ地域IDにおいて録画コンテンツを有する装置(情報処理装置3)から録画コンテンツの転送を受けるようにしたので、ネットワークの負荷を抑えることができる。具体的には、同じ地域(同じ地域ID)の情報処理装置同士における情報の授受と、異なる地域の情報処理装置同士における情報の授受では、同じ地域の情報処理装置同士の情報の授受の方がネットワークの負荷が少ない。また、録画装置(図21の例の場合情報処理装置4)が録画コンテンツを送信する場合、全ての録画依頼装置に対して録画コンテンツを送信した場合には、ネットワークの負荷が大きいが、各地域につき、1台の録画依頼装置に対して録画コンテンツを送信すれば、ネットワークの負荷を抑えることができる。
この具体例を、図23を参照して説明する。図23の情報処理装置101乃至107の構成は、上述した情報処理装置1と同様である。図23において、地域IDがID3である地域には、情報処理装置101,情報処理装置102が設けられており、地域IDがID6である地域には、情報処理装置103乃至106が設けられており、地域IDがID7である地域には、情報処理装置107が設けられており、地域IDがID8である地域には情報処理装置108が設けられている。また、地域ID3では、ネットワーク121を介して通信が行われ、地域ID6では、ネットワーク123を介して通信が行われ、地域ID7,ID8や、地域ID3,6の間では、ネットワーク121,122,123を介して通信が行われる。すなわち、同じ地域であれば、ネットワークの負荷が少なく、異なる地域であれば、ネットワークの負荷が大きい。
ここで、情報処理装置101乃至106が、それぞれ同じ放送番組を録画予約し、予約する放送番組の地域IDがID7であり、マスター装置が情報処理装置107である場合、マスター装置である情報処理装置107は、情報処理装置101乃至106からの録画予約コマンドを受け取ると、録画装置として、地域IDがID7である情報処理装置106を選択する(例えば、図21のステップS182)。そして、情報処理装置107は、情報処理装置106に対して、録画依頼コマンドを送信する(ステップS184)。情報処理装置106は、録画依頼コマンドに基づいて、予約番組を録画し、録画完了通知をマスター装置である情報処理装置107に送信する(ステップS202,ステップS203)。マスター装置である情報処理装置107は、録画完了通知を受け取り、転送先を選択する(ステップS185)。このとき、各地域IDの中でそれぞれ1番残記憶容量が多い装置を転送先として選択する。情報処理装置107は、例えば、地域IDがID3の地域では、情報処理装置101を転送先とし、地域IDがID6の地域では、情報処理装置103を転送先として選択する。情報処理装置107は、選択した転送先の装置(情報処理装置101,103)に対して録画コンテンツを転送するよう、情報処理装置106に依頼する。このとき、図18の録画コンテンツ転送依頼コマンドの録画IDは1つとされ、転送先の情報処理装置IDは2つとされる。
録画装置である情報処理装置106は、録画コンテンツ転送依頼を受け取ると(ステップS204)、録画コンテンツを、転送先である情報処理装置101と情報処理装置103に転送する。具体的には、情報処理装置106は、ネットワーク122,121を介して情報処理装置101に録画コンテンツを転送し、ネットワーク122,123を介して情報処理装置103に録画コンテンツを転送する。これにより、各地域に録画コンテンツが転送されたことになる。
その後、例えば、地域IDがID3であり、同じ番組(同じ録画ID)を依頼した録画依頼装置である情報処理装置102で再生が要求された場合(例えば、ユーザから再生が指令された場合、または、情報処理装置102の電源がOnされ、予約した番組の録画時刻を過ぎている場合)、情報処理装置102は、再生要求を、マスター装置である情報処理装置107に送信する。情報処理装置107は、要求してきた情報処理装置102と同じ地域IDを有する、録画コンテンツ保持装置が、情報処理装置101であることを特定し(ステップS187)、特定した録画コンテンツ保持装置である情報処理装置101に対して、録画コンテンツ転送依頼を行う(ステップS188)。これを受けた情報処理装置101は、ネットワーク121を介して情報処理装置102に録画コンテンツを転送する。その後、情報処理装置101では、録画コンテンツがもう必要ない場合、削除される。情報処理装置107から情報処理装置102に録画コンテンツを転送する場合には、ネットワーク122,121を介して転送することになるが、情報処理装置101から情報処理装置102に録画コンテンツを転送する場合には、ネットワーク121のみを介して転送することになるので、よって、後者よりネットワークの負荷を減らすことができる。
同様にして、情報処理装置104で再生が要求された場合、情報処理装置107は、録画コンテンツ保持装置として、情報処理装置104と同じ地域IDを有する情報処理装置103を特定し、情報処理装置103に録画コンテンツ転送依頼を行う。これに対して、情報処理装置103は、ネットワーク123を介して情報処理装置104に録画コンテンツを転送する。
このようにして、録画コンテンツを地域IDの地域内で授受しあうようにしたので、ネットワークの負荷を減らすとともに、全国の番組を録画予約し、保存することができる。
なお、以上の例では、録画実行可能な情報処理装置を2台まで抽出するものとしたが、外部記録部の残記憶容量が録画に必要な記憶容量の半分の容量より大きいものが1台しか存在しない場合、あるいは、1台も存在しないような場合には、3台以上の情報処理装置を録画実行可能な情報処理装置として決定し、各々の情報処理装置の残記憶容量に応じた時間だけ録画予約を依頼するようにしてもよい。
また、上記の録画実行可能な情報処理装置の選択処理の手順によれば、マスター装置である情報処理装置1や、番組予約元の情報処理装置2が録画実行可能な情報処理装置として選択される場合もあり得るが、マスター装置の負荷増大を防止するために、マスター装置である情報処理装置1は録画実行可能な情報処理装置として選択されないように制限を設けてもよい。
以上説明した本発明のネットワークシステムによれば、録画予約された放送番組を受信録画可能な情報処理装置に、他の情報処理装置からの録画予約を依頼し、依頼を受けた情報処理装置にて録画された録画コンテンツ(番組コンテンツ)を、ネットワークを通じて録画予約元の情報処理装置に転送するように構成したので、大容量の記憶装置を有するサーバ装置を要することなく、どの地域にある情報処理装置からでも全国の放送番組を録画予約して鑑賞することができる。
また、依頼を受けた情報処理装置にて録画された録画コンテンツ(番組コンテンツ)を転送する場合に、録画予約元の情報処理装置が複数あった場合、各地域IDの中でそれぞれ転送する装置を1台選択して、転送するように構成したので、大容量の記憶装置を有するサーバ装置を要することなく、さらに、ネットワークの負荷を抑えて、どの地域にある情報処理装置からでも全国の放送番組を録画予約して鑑賞することができる。
さらに、受信録画可能な情報処理装置の候補を、情報処理装置の地域IDのみならず、外部記録部の残記憶容量に基づいて特定することで、残記憶容量の不足によって録画が中断することのない、信頼性の高いシステムを実現できる。また、複数の情報処理装置が受信録画可能な情報処理装置の候補として判定された場合には、前回電源Onからの経過時間が1番長いものを、録画実行可能な情報処理装置として最終的に特定することで、特定の情報処理装置に録画依頼が集中することを回避することができる。
上記の実施の形態では、ネットワークに接続されている各情報処理装置がマスター装置かスレーブ装置かのいずれかに設定され、マスター装置がスレーブ装置からの録画予約の要求を受け、録画実行が可能な情報処理装置を特定してその情報処理装置に録画依頼を行う管理装置として機能するものとしたが、本発明は、このようなネットワークシステムへの適用に限定されるものでない。
例えば、図24に示すように、ハードディスクレコーダなどの複数の情報処理装置151、152、153とサーバ装置154とがネットワーク155を通じて接続されたネットワークシステムにおいて、サーバ装置154が録画予約の管理を行う管理装置として上記マスター装置と同様の動作を行い、各情報処理装置151、152、153が上述した実施の形態のスレーブ装置と同様の動作を行うように構成してもよい。この場合、サーバ装置154は、ネットワーク155に接続されている各情報処理装置151、152、153から定期的に送信される装置情報を受信し、この受信した装置情報を基に番組録画予約用の装置情報テーブルを作成し、これを保持する。
情報処理装置151では、例えば、全国の放送番組表のデータを、例えばネットワーク155などからダウンロードするなどして保持しており、ユーザから、地域ID、録画開始時刻、録画終了時刻、放送チャンネル、録画品質などの情報を含む録画モードなどの情報の入力を受け付けると、上記の入力情報をデータとして含む録画予約コマンドを生成し、サーバ装置154に送信する。
この録画予約コマンドを受信したサーバ装置154は、番組録画予約用の装置情報テーブルを参照して、当該録画を実行可能な1台以上の情報処理装置を選択する。この録画実行可能な情報処理装置を選択する処理の詳細は上述した実施の形態と同様である。
続いて、サーバ装置154は、選択した1台以上の録画実行可能な情報処理装置(仮に情報処理装置153とする。)に対して、録画ID、録画開始時刻、録画終了時刻、放送チャンネル、録画品質などの情報を含む録画モードなどの情報をデータとして含む録画依頼コマンドを送信する。
なお、指定された総録画時間に対し、1台の情報処理装置の外部記憶部では残記憶容量が不足する場合には、複数の情報処理装置で時間を分けて録画を行うように、複数の情報処理装置に対して録画依頼コマンドが送信される。この際、一方の情報処理装置に対して送信される録画依頼コマンドの録画終了時刻と他方の情報処理装置に対して送信される録画依頼コマンドの録画開始時刻とには時間的な重なりを設けておくことが望ましい。
録画依頼コマンドを受け取った情報処理装置153は、この録画依頼コマンドにデータとして含まれている録画ID、録画開始時刻、録画終了時刻、放送チャンネル、録画品質などの情報を記憶し、この情報に基づいて予約番組の録画を実行し、ハードディスドライブ、光ディスクドライブなどの外部記録部に、録画IDと対応付けて録画データを蓄積する。予約番組の録画が完了すると、情報処理装置153は、サーバ装置154に対して、録画IDと、自身の情報処理装置を識別するネットワークアドレスなどのIDをデータとして含む録画完了通知コマンドを送信する。
サーバ装置154は、録画完了通知コマンドを受信すると、同じ録画IDの番組を依頼した録画依頼装置の中で転送先を選択する。このとき、サーバ装置154は、各地域IDの中で、それぞれ1番残記憶容量が多い装置を選択する。そして、サーバ装置154は、録画IDと、転送先の情報処理装置を識別するID(選択した転送先の装置の装置ID)をデータとして含む録画コンテンツ転送依頼コマンドを、録画完了通知コマンドの送信元である情報処理装置153に送信する。なお、転送先の情報処理装置とは、この例の場合、番組予約元の情報処理装置151である。
情報処理装置153は、録画コンテンツ転送依頼コマンドを受信すると、外部記録部に記録された該当する録画コンテンツのデータを転送先として指定された情報処理装置151に転送する。
番組予約元の情報処理装置151は、録画コンテンツのデータを受信すると、これをハードディスドライブ、光ディスクドライブなどの外部記録部に記録保存する。このとき、複数の情報処理装置(例えば情報処理装置152および情報処理装置153)から録画コンテンツのデータを受信した場合には、情報処理装置151は、受信した2つの録画コンテンツのデータをこれらのタイムスタンプに基づいて1つのストリームにマージし、このマージしたデータを外部記録部に記録保存する。
一方、録画を実行した情報処理装置153は、番組予約元の情報処理装置151への録画コンテンツのデータの転送が正常に終了したならば、各々の外部記録部から、録画コンテンツのデータを削除する。好ましくは、番組予約元の情報処理装置151において録画コンテンツのデータの保存が正常に行われたことを確認してから、録画コンテンツのデータを削除するようにしてもよい。
なお、本発明は、上述の図示例にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
以上のように、ネットワークに接続された情報処理装置において、複数の情報処理装置からの同一番組の録画予約により録画された録画コンテンツ(録画データ)を、録画依頼した複数の情報処理装置で再生する際のデータの転送において、録画依頼装置の存在する地域ごと(地域IDごと)に転送先を最小限に限定し、その後、録画依頼した他の情報処理装置への転送は、転送先装置の再生もしくは電源起動をトリガとして芋づる式に転送を行うことで、ネットワークに大きな負荷をかけずに録画コンテンツの転送を行うことができる。
また、ネットワークを介して複数のスレーブ装置である情報処理装置とそれらを管理するマスター装置である情報処理装置(サーバ)が接続されている環境で、スレーブ装置から録画依頼を受け取ったマスター装置が、依頼された録画を行うことができるスレーブ装置を選択し、選択されたスレーブ装置に対してマスター装置が録画依頼を行うことにより、放送番組(テレビ番組)を録画することができる。
さらに、複数台のスレーブ装置からの同一番組の録画予約により録画された1つのコンテンツを、録画依頼した複数台のスレーブ装置で再生する際のデータの転送において、マスター装置が、各スレーブ装置の装置情報に基づいて、録画依頼した複数台の装置から録画コンテンツの転送先を選択し、録画コンテンツを保持しているスレーブ装置を特定するようにし、また、スレーブ装置が録画コンテンツの再生を行おうとした場合、自分自身に録画コンテンツが保存されていないとき(または、スレーブ装置の電源を起動した場合、再生リスト内に存在する録画コンテンツが自分自身に保存されていないとき)、マスター装置に録画コンテンツの転送要求を行うようにしたので、ネットワークに大きな負荷をかけずに、容易に全国の番組を予約し、保存することができる。
また、複数台のスレーブ装置からの同一番組の録画予約により録画された録画コンテンツを、録画依頼した他の複数台のスレーブ装置に転送を行う際、録画依頼した全てのスレーブ装置に一斉に転送を行うわけではなく、地域ごとに転送するようにしたので、ネットワークを集中的に使用することもなく、ネットワークの負荷を抑えることができる。
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。この場合、上述した一連の処理は、図25に示されるようなパーソナルコンピュータ200により実行される。
図25において、CPU201は、ROM202に記憶されているプログラム、または、記憶部208からRAM203にロードされたプログラムに従って各種の処理を実行する。RAM203にはまた、CPU201が各種の処理を実行する上において必要なデータなどが適宜記憶される。
CPU201、ROM202、およびRAM203は、内部バス204を介して相互に接続されている。この内部バス204にはまた、入出力インターフェース205も接続されている。
入出力インターフェース205には、キーボード、マウスなどよりなる入力部206、CRT,LCDなどよりなるディスプレイ、スピーカなどよりなる出力部207、ハードディスクなどより構成される記憶部208、並びに、モデム、ターミナルアダプタなどより構成される通信部209が接続されている。通信部209は、電話回線やCATVを含む各種のネットワークを介しての通信処理を行う。
入出力インターフェース205にはまた、必要に応じてドライブ210が接続され、磁気ディスク、光ディスク、光磁気ディスク、あるいは半導体メモリなどによりなるリムーバブルメディア221が適宜装着され、それから読み出されたコンピュータプログラムが、必要に応じて記憶部208にインストールされる。
一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、ネットワークや記録媒体からインストールされる。
この記録媒体は、図25に示されるように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されているリムーバブルメディア221よりなるパッケージメディアにより構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM202や記憶部208が含まれるハードディスクなどで構成される。
なお、本明細書において、コンピュータプログラムを記述するステップは、記載された順序に従って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
1乃至4 情報処理装置, 9 ネットワーク, 11乃至14 情報処理コントローラ, 21−1乃至21−3 メインプロセッサ, 22−1,22−2 LS, 23−1乃至23−6 サブプロセッサ, 25−1,25−2 DMAC, 26−1乃至26−4 メインメモリ, 28−1乃至28−6 外部記録部