(57)【要約】【課題】  ＡＶサーバ上のコンテンツをモバイル機器で視聴するときの手間をはぶけるようにする。【解決手段】  ＡＶサーバ１０において、情報管理テーブルを用意する。この情報管理テーブルには、番組を選択して持ち出すときの条件を示す第１のデータと、この第１のデータにしたがって選択された番組を持ち出すときの再エンコードの条件を示す第２のデータとを用意する。ＡＶサーバ１０の番組のうち、第１のデータにより選択されたデジタルデータを、第２のデータの条件にしたがって再エンコードする。この再エンコード結果の番組を持ち出す。【選択図】  図５
2005235246.tif 000002
【特許請求の範囲】
【請求項１】
動画や音楽などのデジタルデータをデータ圧縮して蓄積ているとともに、この蓄積しているデジタルデータのうち、所望のデジタルデータをモバイル機器に提供するようにしたＡＶサーバにおいて、
上記モバイル機器の記録手段と接続するインターフェイスと、
エンコーダと、
情報管理テーブルと
を有し、
上記情報管理テーブルは、
上記デジタルデータを選択して上記記録手段に持ち出すときの条件を示す第１のデータと、
上記デジタルデータのうち、上記第１のデータにしたがって選択されたデジタルデータを上記記録手段に持ち出すときの再エンコードの条件を示す第２のデータと
を有し、
上記デジタルデータのうち、上記第１のデータにより選択されたデジタルデータを、上記エンコーダにより上記第２のデータの条件にしたがって再エンコードし、
この再エンコード結果のデジタルデータを上記インターフェイスを通じて上記記録手段に持ち出す
ようにしたサーバ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明はサーバ装置に関する。
【背景技術】
【０００２】
ＡＶサーバと呼ばれるサーバは、一般に、内蔵のハードディスクにテレビ番組を録画して蓄積しておくことができる。そして、ハードディスクの大容量化や複数のＡＶサーバが連携することにより、家庭におけるＡＶサーバに蓄積できる番組の数が飛躍的に増加している。
【０００３】
一方、モバイル機器として、動画や音楽（オーディオ）の再生ができるようにしたものがある。さらに、その動画や音楽のデジタルデータを、リライタブルな外部記録メディア、例えばメモリスティック（登録商標）などのメモリカードやカードサイズのハードディスク装置などに格納するようにしたものもある。
【０００４】
そこで、ＡＶサーバとモバイル機器とを連携させ、ＡＶサーバに蓄積されている番組のデジタルデータを、モバイル機器の外部記録メディアに持ち出す（コピーないし転送）するようにしたシステムが考えられている。つまり、そのようなシステムによれば、番組をＡＶサーバに録画しておき、これを戸外で視聴することができる。
【０００５】
なお、先行技術文献として例えば以下のものがある。
【特許文献１】特開２００１−２４３７０８号公報
【特許文献２】特開２００２−２３０８９９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところが、ＡＶサーバに蓄積されている番組の数が増加すると、その番組の中から目的とする番組を見つけてモバイル機器の外部記録メディアに持ち出すとき、かなりの手間がかかってしまう。
【０００７】
また、テレビ番組などの動画のデジタルデータをＡＶサーバやモバイル機器の外部記録メディアに格納する場合、一般に、そのデジタルデータをデータ圧縮している。そして、動画のデジタルデータをデータ圧縮する場合、ビットレートを高くするほど画質は良好になるが、それだけデジタルデータのデータ量が多くなる。
【０００８】
このため、実際のＡＶサーバは、ＡＶサーバから外部記録メディアに番組のデジタルデータを持ち出すとき、外部記録メディアの残りの記録容量に応じてビットレートを変更するようにしている。
【０００９】
ところが、そのように外部記録メディアの残りの記録容量に応じてビットレートを変更すると、ユーザが一番見たい部分が低ビットレートでデータ圧縮されてしまい、画質が低下してしまうことがある。
【００１０】
この発明は、以上のような問題点を解決しようとするものである。
【課題を解決するための手段】
【００１１】
この発明においては、
動画や音楽などのデジタルデータをデータ圧縮して蓄積ているとともに、この蓄積しているデジタルデータのうち、所望のデジタルデータをモバイル機器に提供するようにしたＡＶサーバにおいて、
上記モバイル機器の記録手段と接続するインターフェイスと、
エンコーダと、
情報管理テーブルと
を有し、
上記情報管理テーブルは、
上記デジタルデータを選択して上記記録手段に持ち出すときの条件を示す第１のデータと、
上記デジタルデータのうち、上記第１のデータにしたがって選択されたデジタルデータを上記記録手段に持ち出すときの再エンコードの条件を示す第２のデータと
を有し、
上記デジタルデータのうち、上記第１のデータにより選択されたデジタルデータを、上記エンコーダにより上記第２のデータの条件にしたがって再エンコードし、
この再エンコード結果のデジタルデータを上記インターフェイスを通じて上記記録手段に持ち出す
ようにしたサーバ装置
とするものである。
【発明の効果】
【００１２】
この発明によれば、サーバ上に大量に蓄積されたコンテンツの中からユーザが目的とするコンテンツを選んでモバイル機器で視聴するときの手間をはぶくことができる。
【発明を実施するための最良の形態】
【００１３】
〔１〕  構成
〔１−１〕  ＡＶサーバのハードウェア
図１において、符号１０はこの発明によるＡＶサーバの一例を示し、符号２０はモバイル機器、符号３０はモバイル機器２０で使用される外部記録メディアを示す。
【００１４】
そして、ＡＶサーバ１０はＣＰＵ１１を有し、このＣＰＵ１１には、システムバス１９を通じてメモリ１２が接続されるとともに、２次記録装置としてハードディスク装置１３が接続される。この場合、ハードディスク装置１３には、このＡＶサーバが管理および提供する番組などのデジタルデータが蓄積されるとともに、そのデジタルデータをモバイル機器に提供するためのプログラム（ソフトウェア）およびその管理情報などが保存される。
【００１５】
また、システムバス１９には、ユーザインターフェイス１４、チューナ１５およびネットワークインターフェイス１６が接続される。ユーザインターフェイス１４は、キーボードやマウスなどの入力デバイスと、ディスプレイやプリンタなどの出力デバイスとである。さらに、チューナ１５は、ＢＳ放送、ＣＳ放送、地上波デジタル放送などのテレビ放送を受信してテレビ番組のデジタルデータを出力するものである。
【００１６】
また、ネットワークインターフェイス１６は、イーサネット（登録商標）などのネットワーク４０に接続され、このネットワーク４０を通じて配信されるストリーミング放送などのデジタルデータを受けるものである。なお、図１においては、ネットワーク４０に、ＡＶサーバ１０と同様の別のＡＶサーバ１０Ａが接続されている場合である。
【００１７】
さらに、システムバス１９には、ＤＳＰ１７および外部記録メディアインターフェイス１８が接続される。この場合、ＤＳＰ１７は、ハードディスク装置１３に蓄積されている番組などのデジタルデータを再エンコードするためのものである。また、外部記録メディアインターフェイス１８は、外部記録メディア３０が差し込まれるスロットを有し、外部記録メディア３０が差し込まれたとき、その外部記録メディア３０に対するデジタルデータのアクセスを実現するためのものである。
【００１８】
また、外部記録メディア３０は、上述のようにメモリスティック（登録商標）などのメモリカードやカードサイズのハードディスク装置などであるが、この外部記録メディア３０にも、コンテンツの管理情報が保持される。
【００１９】
なお、モバイル機器２０は、外部記録メディア３０に持ち出された番組を再生できるものであれば、通常のものでよいので、構成などについては、説明を省略する。
【００２０】
〔１−２〕  ＡＶサーバにおける管理情報
図２Ａは、ＡＶサーバ１０における管理情報テーブルを示し、これはハードディスク装置１３に保持される。そして、この管理情報テーブルは、ハードディスク装置１３に蓄積されている番組ごとに「保存番組情報」を有するとともに、すべての番組に共通の「持ち出しコンテンツ自動リストアップフラグ」、「コンテンツ持ち出し外部記録メディア容量」、「持ち出しコンテンツ自動リストアップ条件」、「持ち出しコンテンツ再エンコード条件」、「前回コンテンツ持ち出し日時」、「持ち出しコンテンツリスト」を有する。
【００２１】
ここで、「保存番組情報」は、ハードディスク１３に蓄積されている番組ごとに、その番組に関する各種の情報をまとめたものであり、これらについては、後述する。また、「持ち出しコンテンツ自動リストアップフラグ」は、ハードディスク装置１３に蓄積されている番組のデジタルデータのうち、外部記録メディア３０に持ち出すデジタルデータではオン（持ち出し許可）とされ、持ち出さないデジタルデータではオフ（持ち出し不可）とされるフラグであり、「コンテンツ持ち出し外部記録メディア容量」は、外部記録メディア３０の容量である。
【００２２】
さらに、「持ち出しコンテンツ自動リストアップ条件」は、持ち出す番組を、例えば下記の条件(A)〜(C)のうち、どの条件にしたがって選択するかを示すものである。
【００２３】
(A) 前回のコンテンツの持ち出し日以降に、新規録画された番組のみリストアップする。  
(B) シリーズものの番組を初回から最新回までリストアップする。  
(C) ハードディスク装置１３に蓄積されている番組のうち、もっとも長い期間閲覧されていない番組をリストアップする。
【００２４】
すなわち、条件(A)が設定されると、ＡＶサーバ１０は前回コンテンツを持ち出した日時を内部に保持しておく。さらに、各番組の動画ファイルの作成日時と比較することにより新規録画された番組をリストアップする。また、条件(B)が設定されると、シリーズ録画機能を使って録画された番組について、ユーザがその番組名を指定すると、その番組の第１回から最新回までを検索する。さらに、条件(C)が設定されると、単純にファイルの作成日時の古いもの順にピックアップする。
【００２５】
また、「持ち出しコンテンツ再エンコード条件」は、ハードディスク装置１３から外部記録メディア３０にデジタルデータを持ち出すときに再エンコードする条件を、例えば下記の条件(D)〜(F)のうち、どれにするかを示すものである。
【００２６】
(D) すべて均等のビットレートで再エンコードする。  
(E) シリーズ最新番組のみ高ビットレートで再エンコードし、それ以前の回は低ビットレートで再エンコードする。  
(F) 各番組の最初の５分間だけ高ビットレートで再エンコードし、それ以降は低ビットレートで再エンコードする。
【００２７】
ここで、条件(E)は、例えば図４Ａに示すように、最新回は高ビットレートで保存し、それ以前の回は均等な低ビットレートで保存するように再エンコードする。なお、新しい回が追加されると、図４Ｂに示すように、古い回はさらに低ビットレートとなるように再エンコードしなおす。また、条件(F)は、録画内容のチェックを行うときに適した条件で、番組先頭の５分間のみ高ビットレートで再エンコードし、それ以降は番組全体が入るように低ビットレートで再エンコードする。
【００２８】
さらに、「前回コンテンツ持ち出し日時」は、最後にハードディスク装置１３から外部記録メディア３０にデジタルデータを持ち出したときの日時を示す。また、「持ち出しコンテンツリスト」は、ハードディスク装置１３から外部記録メディア３０に番組を持ち出すごとに新規に作成されるものであるが、詳細は後述する。
【００２９】
そして、管理情報テーブルにおける「保存番組情報」は、図２Ｂの上側に示すように、「番組ＩＤ」、「番組タイトル」、「録画日時」、「最終視聴日時／未視聴フラグ」、「保存ビットレート」、「シリーズＩＤ／非シリーズものフラグ」、「シリーズ通し回数」、「コンテンツサイズ」、「オプション情報」の各情報を有する。
【００３０】
ここで、「番組ＩＤ」および「番組タイトル」は、該当する番組の識別コードおよび番組名である。また、「録画日時」は、該当する番組を録画した日時を示し、「最終視聴日時／未視聴フラグ」は、該当する番組を視聴したかどうか、視聴したとすれば、最後に視聴した日時を示す。さらに、「保存ビットレート」は、該当する番組のデジタルデータをハードディスク装置１３に蓄積したときのビットレートを示し、「シリーズＩＤ／非シリーズものフラグ」は、該当する番組がシリーズ作品であるか単発作品であるか、シリーズ作品であれば、その識別コードを示す。
【００３１】
また、「シリーズ通し回数」は、該当する番組がシリーズ作品のとき、そのシリーズ内における通し回数を示し、「コンテンツサイズ」は、該当する番組のデータ量（バイト数）を示す。そして、「オプション情報」は、必要に応じて追加される情報である。
【００３２】
さらに、管理情報テーブルにおける「持ち出しコンテンツリスト」は、上記のように、ハードディスク装置１３から外部記録メディア３０に番組を持ち出すごとに新規に追加して作成されるものであるが、図２Ｂの下側に示すように、「持ち出しコンテンツリストＩＤ」、「持ち出しコンテンツ総サイズ」、「リスト作成日時」、「リスト未使用フラグ」、「持ち出し番組リスト」、「再エンコードビットレート条件」、「オプション情報」の各情報を有する。
【００３３】
ここで、「持ち出しコンテンツリストＩＤ」は、この「持ち出しコンテンツリスト」の識別コードを示し、「持ち出しコンテンツ総サイズ」は、１回の持ち出しでハードディスク装置１３から外部記録メディア３０に持ち出した番組の総データ量を示す。また、「リスト作成日時」は、この「持ち出しコンテンツリスト」の作成日時を示し、「リスト未使用フラグ」は、この「持ち出しコンテンツリスト」を使用したかどうかを示すフラグである。
【００３４】
さらに、「持ち出し番組リスト」は、ハードディスク装置１３から外部記録メディア３０に持ち出した番組ごとに、図２Ｃに示す内容の情報を有するものであり、詳細は後述する。また、「再エンコードビットレート条件」は、ハードディスク装置１３から外部記録メディア３０に番組を持ち出したときに実行した再エンコードが、上記の条件(D)〜(F)のうちのどれであるかを示す。また、「オプション情報」は、必要に応じて追加される情報である。
【００３５】
そして、「持ち出し番組リスト」は、持ち出した番組ごとに図２Ｃに示すように、「番組ＩＤ」、「番組タイトル」、「シリーズＩＤ／非シリーズものフラグ」、「シリーズ通し回数」、「再エンコードビットレート」、「視聴・未視聴フラグ」、「コンテンツサイズ」、「オプション情報」を有する。
【００３６】
ここで、「再エンコードビットレート」は、再エンコード時のビットレートを示し、「視聴・未視聴フラグ」は、該当する番組を視聴したかどうかを示すフラグである。そして、残る情報は、「保存番組情報」におけるそれと等しい。
【００３７】
〔１−３〕  外部記録メディアにおける管理情報
図３Ａは、外部記録メディア３０における管理情報テーブルを示し、この管理情報テーブルは、ＡＶサーバ１０の管理情報テーブルにおける持ち出しコンテンツリスト（図２Ｂの下）と同じ構成とされ、この管理情報テーブルにおける「持ち出し番組リスト」は、ＡＶサーバ１０の持ち出し管理リスト（図２Ｃ）と同じ構成とされる。
【００３８】
〔２〕  使用法および動作
図５は、ＡＶサーバ１０からモバイル機器２０の外部記録メディア３０に番組を持ち出すときのシーケンスを示し、その詳細は以下のとおりである。なお、以下の説明においては、ＡＶサーバ１０からＡＶサーバ１０Ａが利用可能であるとする。また、以下の説明における符号(1)〜(10)は、図５における符号(1)〜(10)に対応する。
【００３９】
すなわち、
(1) ユーザは、外部記録メディア３０の容量をＡＶサーバ１０に登録する。この登録は、ユーザがユーザインターフェイス１４を操作して行う。あるいは実際に使用する外部記録メディア３０をＡＶサーバ１０のメディアインターフェイス１８に差し込むことにより、ＡＶサーバ１０に容量を認識させて登録する。なお、この登録結果が、図２Ａの管理情報テーブルにおける「コンテンツ持ち出し外部記録メディア容量」である。  
(2) ユーザは、番組を外部記録メディア３０に持ち出すときの条件をＡＶサーバ１０に設定する。すなわち、持ち出しの候補の番組のリストを表示するときの条件を上記の条件(A)〜(C)から選択して設定する。また、番組を持ち出すときの再エンコードの条件を、条件(D)〜(F)から選択して設定する。
【００４０】
これらの設定は、ユーザインターフェイス１４を通じて行う。また、(1)、(2)項の設定は、番組の持ち出しの操作を行うときとは独立に、例えばこのシステムの導入時などに実行しておくこともでき、持ち出し時のデフォルトとされ、特に変更しないかぎり、最後に設定した内容が引き続き有効とされる。
【００４１】
(3) ＡＶサーバ１０は、ユーザの設定した条件に基づいて番組を検索する。すなわち、ＡＶサーバ１０は、ハードディスク装置１３に蓄積されている番組に対して、(2)項の条件を満たす番組の検索を行う。また、今の場合、ＡＶサーバ１０Ａも利用可能なので、ＡＶサーバ１０は、ＡＶサーバ１０Ａに、(2)項の条件を満たす番組の検索を依頼する。  
(4) 各ＡＶサーバは検索結果をＡＶサーバ１０に返す。  
(5) ＡＶサーバ１０は、検索結果とユーザが指定した再エンコードの条件とにしたがって各番組のデジタルデータを再エンコードするときのビットレートを決定する。  
(6) ＡＶサーバ１０は、(5)項で算出したビットレートを各ＡＶサーバに通知する。  
(7) 各ＡＶサーバは、(3)項の検索結果の番組のデジタルデータを、(6)項により通知されたビットレートで再エンコードする。  
(8) ＡＶサーバ１０Ａは、(7)項の再エンコード結果のデジタルデータをＡＶサーバ１０に転送する。ＡＶサーバ１０は転送されてきたデジタルデータをハードディスク装置１３に保存する。なお、ＡＶサーバ１０が(7)項で再エンコードした結果のデジタルデータもハードディスク装置１３に保存されている。  
(9) ＡＶサーバ１０は、ハードディスク装置１３に保存された(8)項のデジタルデータを、メディアインターフェイス１８を通じて外部記録メディア３０に書き込む。  
(10) ユーザは、ＡＶサーバ１０から外部記録メディア３０に取り出す。
【００４２】
以上が、ＡＶサーバ１０からモバイル機器２０の外部記録メディア３０に番組を持ち出すときのシーケンスである。
【００４３】
したがって、ＡＶサーバ１０に多数の番組が蓄積されている場合でも、ユーザの好み、つまり、条件(A)〜(F)を設定することにより、あるいは設定しておくことことにより、目的とする番組を簡単に選択することができ、効率よく、しかも、簡単に持ち出すことができる。
【００４４】
また、その持ち出しも、ユーザに興味のある番組は高ビットレートで行い、あまり興味はないがとりあえず視聴したい番組は低ビットレートで行うことができ、その点からも効率がよい。さらに、１つの番組であっても、ユーザが一番見たい部分を高ビットレートでデータ圧縮することにより、高画質で視聴することができる。また、ユーザがＡＶサーバ１０上のコンテンツをチェックし、何を削除し、何を残すかを決定するときの手助けを行うこともできる。
【００４５】
〔３〕  コンテンツの分散処理
〔３−１〕  システム構成
ここでは、複数の情報処理装置によりＡＶサーバシステムが構成されるとともに、そのＡＶサーバシステムがデジタルデータの分散処理を行う場合の一例について、図６により説明する。図６に示す例においては、３台の情報処理装置１００〜３００がネットワーク４００を通じて互いに接続され、これらの間で分散処理を行う場合である。
【００４６】
情報処理装置１００は、１つのメインプロセッサ１０１と、１つあるいは複数のサブプロセッサ、この例においては、３つのサブプロセッサ１１１〜１１３と、ＤＭＡコントローラ１２１と、ディスクコントローラ１２２とを有し、単一の集積回路に構成されている。
【００４７】
また、メインプロセッサ１０１およびサブプロセッサ１１１〜１１３は、それぞれローカルストレージ１３１を有している。そして、メインプロセッサ１０１は、サブプロセッサ１１１〜１１３によるプログラムあるいはデータの処理のスケジュール管理と、全般的な管理とを行う。サブプロセッサ１１１〜１１３は、メインプロセッサ１０１の制御にしたがって並列に、かつ、独立にプログラムあるいはデータの処理を実行する。
【００４８】
なお、メインプロセッサ１０１内でプログラムが動作する場合もある。また、メインプロセッサ１０１のプログラムが、サブプロセッサ１１１のプログラムと連携して動作する場合もある。
【００４９】
さらに、情報処理装置１００〜３００は、ネットワーク全体を通して当該情報処理装置を一意的に識別できる識別子が情報処理装置ＩＤとして割り当てられている。メインプロセッサ１０１およびサブプロセッサ１１１〜１１３も、同様に識別可能な識別子がメインプロセッサＩＤおよびサブプロセッサＩＤとして割り当てられている。
【００５０】
ＤＭＡコントローラ１２１は、メインメモリ１４１に格納されているプログラムあるいはデータへのアクセスを行う。なお、メインメモリ１４１は、情報処理装置１００の外部に接続されているもので、例えばＤＲＡＭとされている。
【００５１】
また、ディスクコントローラ１２２は、情報処理装置１００と接続されている外部記憶装置１４２へのアクセスを行う。外部記憶装置１４２には、固定ディスク（ハードディスク）、リムーバブルディスク、ＭＯ、ＣＤ±ＲＷ、ＤＶＤ±ＲＷなどの光ディスク、メモリディスクなどが想定され、ＳＲＡＭ、ＲＯＭなども含まれる。
【００５２】
そして、メインプロセッサ１０１、サブプロセッサ１１１〜１１３、ＤＭＡコントローラ１２１、ディスクコントローラ１２２はバス１０２によって接続されている。さらに、他の情報処理装置２００、３００も情報処理装置１００と同様に構成されているものであり、詳細は省略する。
【００５３】
〔３−２〕  データの不整合の回避
上述のように、サブプロセッサ１１１〜１１３は、独立にプログラムあるいはデータの処理を実行するが、もしも異なるサブプロセッサが同一メインメモリ１４１の同一領域に対して、同時に読み出しあるいは書き込みを行った場合には、データの不整合を生じる可能性がある。したがって、メインメモリ１４１にアクセスする場合には、ある手順が必要となるが、その手順について、図７により説明する。
【００５４】
図７Ａにおいて、メインメモリ１４１は、複数のアドレス指定可能な「メモリロケーション」から構成される。各メモリロケーションに対して、データの状態情報を格納するための「追加セグメント」が割り振られる。追加セグメントは、「Ｆ／Ｅビット」、「サブプロセッサＩＤ」、「ローカルストレージアドレス」（ＬＳアドレス）を含む。各メモリロケーションには「アクセスキー」も割り振られるが、これについては後述する。
【００５５】
そして、Ｆ／Ｅビットは、以下のように定義される。
【００５６】
・Ｆ／Ｅビット＝“０”のとき
サブプロセッサ（１１１〜１１３）により読み出され、処理中あるいは空き状態であるため、最新データではない無効データである。読み出し不可だが、予約は可能であり、“１”になったときにあらかじめ読み出し予約情報として追加セグメントに書き込まれたサブプロセッサＩＤ、ローカルストレージアドレスへ読み出される。
【００５７】
すなわち、複数のサブプロセッサによりデータを多段階に処理する必要がある場合、上記のように構成することにより、前段階の処理を行うサブプロセッサが、処理済みのデータをメインメモリ１４１の所定のアドレスへ書き込んだ直後に、ただちにそのデータが後段階の処理を行うサブプロセッサへ読み出されることになり、非常に好適である。また、書き込み可能であり、書き込み後、“１”になる。
【００５８】
・Ｆ／Ｅビット＝“１”のとき
サブプロセッサ（１１１〜１１３のどれか）により読み出されておらず、したがって、処理中ではない最新データである。読み出し可能であり、読み出し後、“０”になる。書き込み不可である。  
Ｆ／Ｅビットは、以上のように定義される。
【００５９】
図７Ｂに示すサブプロセッサ１１１のローカルストレージ１３１も、複数のアドレス指定可能なメモリロケーションから構成される。各メモリロケーションに対してはやはり、追加セグメントが割り振られる。追加セグメントは、メインメモリ１４１の追加セグメントの内容に加えてビジービットを含む。
【００６０】
メインメモリ１４１のデータをローカルストレージ１３１のメモリロケーションへ読み出すときには、対応するビジービットを“１”に設定し、予約する。ビジービットが“１”のメモリロケーションには他のデータは格納不可である。ローカルストレージ１３１のメモリロケーションへ読み出した後、ビジービットは“０”になり、任意の目的に使用可能になる。
【００６１】
さらに、図７Ａに示すように、情報処理装置１００のメインメモリ１４１には複数の「サンドボックス」が用意される。これらサンドボックスはメインメモリ１４１の領域を画定するものであり、各サンドボックスはサブプロセッサ１１１〜１１３に割り当てられ、排他的に使用可能とされる。すなわち、サブプロセッサ１１１〜１１３のそれぞれは、自身に割り当てられたサンドボックスを使用可能だが、前述の領域を超えてデータのアクセスを行えない。また、図７Ａに示すように、メインメモリ１４１は複数のメモリロケーションから構成されるが、サンドボックスはこれらのメモリロケーションの集合である。
【００６２】
さらに、メインメモリ１４１の排他制御を実現するために、図８に示すようなキー管理テーブルが用意される。このキー管理テーブルは、ＳＲＡＭのような比較的高速のメモリに用意され、ＤＭＡコントローラ１２１と関連付けられる。キー管理テーブルの各エントリには、サブプロセッサ１１１〜１１３を識別する「サブプロセッサＩＤ」、「サブプロセッサキー」および「キーマスク」が含まれる。なお、サブプロセッサ１１１〜１１３の場合には、Ｎ＝２である。
【００６３】
ここで、サブプロセッサ１１１〜１１３のうちの任意のサブプロセッサがメインメモリ１４１を使用するときのプロセスを図７および図８を用いて説明する。サブプロセッサはＤＭＡコントローラ１２１へ、読み出しあるいは書き込みコマンドを出力する。このコマンドには、そのサブプロセッサ自身のサブプロセッサＩＤと、使用要求対象先であるメインメモリ１４１のアドレスとが含まれる。ＤＭＡコントローラ１２１は、このコマンドを実行する前にキー管理テーブルを参照し、使用要求元であるサブプロセッサのサブプロセッサキーを調べる。
【００６４】
次いで、ＤＭＡコントローラ１２１は、調べたサブプロセッサキーと、サブプロセッサ１１１の使用要求先である図７に示されるメインメモリ１４１のメモリロケーションに割り振られたアクセスキーとを比較する。２つのキーが一致した場合のみ、前述のコマンドを実行する。
【００６５】
また、図８に示すキーマスクの使用方法として、キーマスクの任意のビットが“１”になることにより、関連付けられたサブプロセッサキーの対応するビットが“０”あるいは“１”になることができる。
【００６６】
例えば、サブプロセッサキーが“１０１０”であるとする。通常このサブプロセッサキーによって“１０１０”のアクセスキーを持つサンドボックスへのアクセスだけが可能になる。しかし、このサブプロセッサキーと関連付けられたキーマスクが“０００１”に設定されている場合、このサブプロセッサキーを用いて“１０１０”あるいは“１０１１”のいずれかのアクセスキーを持つサンドボックスへのアクセスが可能となる。以上のようにしてサンドボックスの排他性を実現する。
【００６７】
すなわち、前述の複数のサブプロセッサ１１１〜１１３によりデータを多段階に処理する必要がある場合、上述のように構成することにより、前段階の処理を行うサブプロセッサと、後段階の処理を行うサブプロセッサだけがメインメモリ１４１の所定のアドレスへアクセスでき、したがって、データの保護が可能となる。
【００６８】
例えば、以下のように使用することが考えられる。まず、情報処理装置１００の起動直後は、キーマスクの値はすべてゼロである。メインプロセッサ１０１のプログラムが実行され、サブプロセッサ１１１〜１１３のプログラムと連携動作するものとする。
【００６９】
第１のサブプロセッサ１１１により出力された処理結果データをいったんメインメモリ１４１に格納し、第２のサブプロセッサ１１２に入力する場合には、メインメモリ１４１の該当する領域は、どちらのサブプロセッサからもアクセスできる必要がある。
【００７０】
そのような場合、メインプロセッサ１０１のプログラムは、キーマスクの値を適切に変更し、メインメモリ１４１に複数のサブプロセッサからアクセスできる領域を設けて、サブプロセッサ１１１、１１２による多段階的な処理を可能にする。
【００７１】
より具体的には、例えば情報処理装置２００からのデータ→情報処理装置１００の第１のサブプロセッサ１１１による処理→第１のメインメモリ領域→第２のサブプロセッサ１１２による処理→第２のメインメモリ領域、という手順で多段階処理が行われる場合、
第１のサブプロセッサ１１１のサブプロセッサキー＝“０１００”
第１のメインメモリ領域のアクセスキー＝“０１００”
第２のサブプロセッサ１１２のサブプロセッサキー＝“０１０１”
第２のメインメモリ領域のアクセスキー＝“０１０１”
のような設定のままだと、第２のサブプロセッサ１１２は第１のメインメモリ領域にアクセスすることができない。
【００７２】
そこで、第２のサブプロセッサ１１２のキーマスクを“０００１”にすることにより、第２のサブプロセッサ１１２による第１のメインメモリ領域へのアクセスを可能にすることができる。
【００７３】
〔３−３〕  分散処理の手順
ここでは、図６のシステムにより分散処理を行う手順について説明する。ネットワーク上の情報処理装置１００〜３００の間では、ソフトウェアパケットが伝送される。ある情報処理装置は、コマンド、プログラムおよびデータを含むソフトウェアパケットを生成し、ネットワーク４００を通じて他の情報処理装置に送信することにより処理を分散できる。
【００７４】
ソフトウェアパケットは、例えば図９に示すように構成される。すなわち、「送信元ＩＤ」には、ソフトウェアパケットの送信元である情報処理装置のネットワークアドレスや情報処理装置ＩＤ、メインプロセッサＩＤ、サブプロセッサＩＤが含まれる。「送信先ＩＤ」および「応答先ＩＤ」には、ソフトウェアパケットの送信先である情報処理装置およびソフトウェアパケットの実行結果の応答先である情報処理装置について同じ情報が含まれる。
【００７５】
「セルインターフェイス」には、ソフトウェアパケットの利用に必要な情報が含まれ、「グローバルＩＤ」、「必要なサブプロセッサ」、「サンドボックスサイズ」、「前回のソフトウェアパケットＩＤ」から構成される。グローバルＩＤは、ネットワーク全体を通してソフトウェアパケットを一意的に識別できるものであり、送信元ＩＤおよびソフトウェアパケットの作成あるいは送信の日付と時刻に基づいて作成される。また、必要なサブプロセッサによって、ソフトウェアパケットの実行に必要な最低数のサブプロセッサが与えられる。
【００７６】
さらに、サンドボックスサイズによって、ソフトウェアパケットの実行に必要なメインメモリ１４１内およびサブプロセッサ１１１〜１１３のローカルストレージ１３１のメモリ量が与えられる。前回のソフトウェアパケットＩＤによって、ストリーミングデータなどのシーケンシャルな実行を要求する１グループのソフトウェアパケットの前回のソフトウェアパケットの識別子が提供される。
【００７７】
また、ソフトウェアパケットにおいて、「実行セクション」が、「ＤＭＡコマンド」、「プログラム」、「データ」から構成される。ＤＭＡコマンドには、プログラムの起動に必要な一連のＤＭＡコマンドが含まれ、プログラムには、サブプロセッサによって実行されるサブプロセッサプログラムが含まれる。また、データとは、これらのサブプロセッサプログラムを含むプログラムによって処理されるデータである。
【００７８】
さらに、ＤＭＡコマンドには、「ロードコマンド」、「キックコマンド」、「ステータスコマンド」、「ステータス返信コマンド」、「機能プログラム実行コマンド」がある。
【００７９】
ロードコマンドは、メインメモリ１４１の情報を、サブプロセッサのローカルストレージへロードするコマンドである。このため、ロードコマンドは、ロードコマンド本体の他に、「メインメモリアドレス」、「サブプロセッサＩＤ」、「ローカルストレージアドレス」（ＬＳアドレス）を含む。
【００８０】
なお、メインアドレスは、情報のロード元であるメインメモリ１４１の所定領域のアドレスを示す。サブプロセッサＩＤおよびローカルストレージアドレスは、情報のロード先であるサブプロセッサの識別子およびローカルストレージ１３１のアドレスを示す。
【００８１】
キックコマンドは、プログラムの実行を開始するコマンドであり、キックコマンド本体の他に「サブプロセッサＩＤ」と、「プログラムカウンタ」とを有する。なお、サブプロセッサＩＤは、キックする対象サブプロセッサを識別し、プログラムカウンタは、プログラムの実行用プログラムカウンタのためのアドレスを与える。
【００８２】
ステータスコマンドは、送信先ＩＤに示される情報処理装置の現在の状態（装置情報）を要求するコマンドであり、ステータス返信コマンドは、後述するとおりである。
【００８３】
また、機能プログラム実行コマンドは、マスタがスレーブに対して機能プログラムの実行を要求するコマンドである。機能プログラム実行コマンドを受信したスレーブは、後述する「機能プログラムＩＤ」によって、起動すべき機能プログラムを識別する。なお、機能プログラムについては後述するが、例えば図６および図１２に示す情報処理装置１００（および２００、３００）のメインメモリ１４１が記憶するソフトウェアの構成図において、機能プログラムのカテゴリに属するプログラムである。機能プログラムはメインメモリ１４１にロードされ、メインプロセッサ１０１により実行される。
【００８４】
そして、ステータス返信コマンドは、ステータスコマンドを受信した情報処理装置が、自身の装置情報を当該ステータスコマンドに含まれる応答先ＩＤに示される情報処理装置へ応答するコマンドである。ステータス返信コマンドは、実行セクションのデータ領域に装置情報を格納するが、そのときのデータ領域の構造の一例を図１０に示す。
【００８５】
この図１０を用いて、ＤＭＡコマンドがステータス返信コマンドである場合におけるソフトウェアパケットのデータ領域の構造について説明する。
【００８６】
「情報処理装置ＩＤ」は、自身の装置情報を応答する情報処理装置を識別するための識別子であり、電源投入時にメインプロセッサ１０１によって、電源投入時の日付、時刻、情報処理装置のネットワークアドレス、サブプロセッサの数などに基づいて生成される。「情報処理装置種別ＩＤ」には、情報処理装置の特徴を表す値が含まれる。この情報処理装置の特徴としては、例えば、ハードディスクレコーダー、ＰＤＡ、テレビなどといった商品を表す場合もあれば、画像処理、映像記録再生などといった機能を表す場合もある。
【００８７】
「ＭＳステータス」は、情報処理装置が、マスタあるいはスレーブのどちらで動作しているかを表し、“０”のときにはマスタとして動作し、“１”のときにはスレーブとして動作していることを表す。
【００８８】
「メインプロセッサ動作周波数」はメインプロセッサ１０１の動作周波数を表す。「メインプロセッサ使用率」はメインプロセッサ１０１で現在動作しているすべてのプログラムが、メインプロセッサ１０１を使用している割合を表す。「サブプロセッサ数」は、情報処理装置が有するサブプロセッサの数を表す。「サブプロセッサＩＤ」は、情報処理装置におけるサブプロセッサを識別するための識別子である。
【００８９】
「サブプロセッサステータス」はサブプロセッサの状態を表すものであり、unused、reserved、busyなどの状態がある。unusedは、当該サブプロセッサが未使用の場合であり。reservedは、現在は未使用であるが、予約されている場合、busyは使用中であることを示す。
【００９０】
「サブプロセッサ使用率」は、当該サブプロセッサで動作しているプログラムが、そのサブプロセッサを使用している割合を表す。ステータスがbusyの場合には、サブプロセッサ使用率は現在の使用率を示し、reservedの場合には、後に使用されるときの使用率を示す。そして、サブプロセッサＩＤ、サブプロセッサステータス、サブプロセッサ使用率は、これらを１組とし、サブプロセッサ数だけ存在する。
【００９１】
「メインメモリ総容量」および「メインメモリ使用量」は、情報処理装置に接続されているメインメモリ１４１の総容量および現在使用中の容量を表す。
【００９２】
「外部記憶装置数」は、情報処理装置に接続されている外部記憶装置１４２の数を表し、「外部記憶装置ＩＤ」は、情報処理装置に接続されている外部記憶装置１４２を一意的に識別する情報を表す。「外部記憶装置種別ＩＤ」には、対応する外部記憶装置１４２の種類を表す情報が含まれる。この外部記憶装置１４２の種類としては、前述のものが想定される。「外部記憶装置総容量」および「外部記憶装置使用量」は、外部記憶装置ＩＤにより識別される外部記憶装置１４２の総容量および現在使用中の容量を表す。
【００９３】
外部記憶装置ＩＤ、外部記憶装置種別ＩＤ、外部記憶装置総容量、外部記憶装置使用量は、これらを１組とし、外部記憶装置１４２の数だけ存在する。すなわち、１つの情報処理装置に複数の外部記憶装置が接続されている場合であっても、それぞれの外部記憶装置には異なる外部記憶装置ＩＤが割り当てられ、また、外部記憶装置種別ＩＤ、外部記憶装置総容量、外部記憶装置使用量も個別に管理されることになる。
【００９４】
〔３−４〕  ソフトウェアパケットの生成および実行
ここでは、ソフトウェアパケットを生成し、実行するまでのプロセスについて説明する。情報処理装置１００〜３００のうちのある情報処理装置のメインプロセッサ１０１はソフトウェアパケットを生成し、ネットワーク４００を通じて他の情報処理装置へ送信する。送信元である情報処理装置、送信先である情報処理装置および応答先である情報処理装置は、前述の送信元ＩＤ、送信先ＩＤおよび応答先ＩＤにより識別される。
【００９５】
ソフトウェアパケットを受信した他の情報処理装置のメインプロセッサ１０１は、メインメモリ１４１にそのソフトウェアパケットを格納する。メインプロセッサ１０１はソフトウェアパケットを評価し、それに含まれるＤＭＡコマンドを処理する。
【００９６】
具体的には、メインプロセッサ１０１は、まず、ロードコマンドを実行する。すると、ロードコマンドに含まれるメインメモリ１４１のメインメモリアドレスから、同様にロードコマンドに含まれるサブプロセッサＩＤと、ローカルストレージアドレスに対応するサブプロセッサのローカルストレージ１３１の所定領域へ情報がロードされる。ここで言う情報として、受信したソフトウェアパケットに含まれるサブプロセッサプログラムあるいはデータがあるが、その他のデータなどであってもよい。
【００９７】
次に、メインプロセッサ１０１は、キックコマンドを、このキックコマンドに含まれるサブプロセッサＩＤに対応するサブプロセッサ１１１へ、同様にキックコマンドに含まれるプログラムカウンタとともに出力する。サブプロセッサ１１１はキックコマンドおよびプログラムカウンタにしたがってサブプロセッサプログラムを実行する。そして、その実行結果をメインメモリ１４１に格納し、その後、実行完了したことをメインプロセッサ１０１へ通知する。
【００９８】
また、メインメモリ１４１において実行される機能プログラムなどのメインメモリ用プログラムを、ソフトウェアパケットを用いて他の情報処理装置へ送信することも考えられる。その場合には、サブプロセッサ１１１プログラムの代わりにメインメモリ１４１用プログラムを含むロードコマンドを送信することになる。
【００９９】
他の情報処理装置のメインメモリ１４１へ送信したメインメモリ用プログラムを実行するときには、例えば、メインプロセッサＩＤ、メインメモリアドレス、メインメモリ用プログラムを識別するための識別子、プログラムカウンタを含み、ＤＭＡコマンドが機能プログラム実行コマンドであるソフトウェアパケットを同様に他の情報処理装置へ送信する。
【０１００】
このようにしてソフトウェアパケットを使用することにより、ソフトウェアパケットの送信元である情報処理装置は、送信先である他の情報処理装置をユーザが操作する必要なく、サブプロセッサプログラムあるいはメインメモリ用プログラムを他の情報処理装置へ送信し、そのサブプロセッサプログラムを他の情報処理装置のサブプロセッサへロードさせ、そのサブプロセッサプログラムあるいはメインメモリ用プログラムを、他の情報処理装置により実行させることができる。
【０１０１】
以上のように、情報処理装置は、自身が機能プログラムまたはサブプロセッサプログラムを有していない場合には、ネットワークに接続された他の情報処理装置からそれらのプログラムを取得できる。さらに、各サブプロセッサ間においては、ＤＭＡ方式によりデータ転送を行うとともに、サンドボックスを採用することにより、１つの情報処理装置内でデータを多段階に処理する必要がある場合でも、高速、かつ、高セキュリティに処理を実行することができる。
【０１０２】
〔３−５〕  処理例
ここでは、ネットワーク４００に接続されている複数の情報処理装置、例えば図１１に示すように、３台の情報処理装置１００〜３００が仮想的な１台の情報処理装置として動作するための前提処理として、情報処理装置の電源投入後の処理を説明する。
【０１０３】
図１２は、情報処理装置１００〜３００のうちの任意の情報処理装置、例えば情報処理装置１００のメインメモリ１４１が記憶するソフトウェアの構成を示すものである。各プログラムは機能あるいは特徴によってカテゴライズされている。また、これらのプログラムは情報処理装置１００の電源投入前には、情報処理装置１００に接続されている外部記憶装置１４２に格納されている。
【０１０４】
電源を投入すると、メインプロセッサ１０１は、デバイスドライバのカテゴリに属する各プログラムおよび制御プログラムのカテゴリに属する各プログラムをメインメモリ１４１にロードする。各プログラムをメインメモリ１４１にロードする手順は、以下のとおりである。
【０１０５】
まず、メインプロセッサ１０１は、ディスクコントローラ１２２に対して読み出し命令を実行することにより外部記憶装置１４２からプログラムを読み出す。そして、ＤＭＡコントローラ１２１への書き込み命令を実行することにより、その読み出したプログラムをメインメモリ１４１にロードする。なお、機能プログラムのカテゴリに属する各プログラムについては、必要なときに必要なものだけをロードしてもよく、他のカテゴリに属する各プログラムと同様に、電源投入後にロードしてもよい。
【０１０６】
ここで、機能プログラムは、ネットワークに接続されたすべての情報処理装置の外部記録装置に記録されている必要はなく、どれか１つの情報処理装置の外部記録装置に記録されていれば、上述の方法により他の情報処理装置から機能プログラムをロードすることができるので、結果的に図１１の仮想的な１台の情報処理装置として機能プログラムを実行できる。
【０１０７】
さらに機能プログラムには、機能プログラムごとに一意な識別子が機能プログラムＩＤとして割り当てられている。機能プログラムＩＤは、日付や時刻、情報処理装置ＩＤなどから機能プログラムの作成の段階で決定される。
【０１０８】
メインプロセッサ１０１は、自身が動作する情報処理装置に関する装置情報を格納するための領域をメインメモリ１４１に確保し、その装置情報を自装置の装置情報テーブルとして記録する。ここでの装置情報とは、図１０に示される情報処理装置ＩＤ以下の情報である。
【０１０９】
そして、メインプロセッサ１０１は、メインメモリ１４１にロードされたマスタ／スレーブマネージャを実行する。マスタ／スレーブマネージャは処理が終了すると、終了通知をメインプロセッサ１０１へ送る。メインプロセッサ１０１はマスタ／スレーブマネージャから終了通知を受け取ると、次に、能力交換プログラムを実行する。マスタ／スレーブマネージャおよび能力交換プログラムは、情報処理装置１００の電源が切断されるまで動作する常駐プログラムである。
【０１１０】
マスタ／スレーブマネージャは、自身が動作する情報処理装置１００がネットワーク４００に接続されていることを検知すると、同一ネットワークに接続されている他の情報処理装置２００、３００の存在を確認する。マスタ／スレーブマネージャは、もしもネットワーク４００に他の情報処理装置が存在しないことを確認したときには、前述の自装置の装置情報テーブルにおけるＭＳステータスを“０”に設定する。ネットワークに他の情報処理装置が存在することを確認したときには、ＭＳステータスを“０”以外、例えば“１”に設定する。
【０１１１】
また、マスタ／スレーブマネージャは、常にネットワーク４００の状況を確認し、ネットワーク４００に新たに情報処理装置が接続されたことや、ネットワーク４００に接続されている情報処理装置の電源が切断されたこと、あるいはネットワーク４００から情報処理装置が切り離されたことを監視し、ネットワークの接続状態に変化があると、その情報を能力交換プログラムに通知する。
【０１１２】
マスタ／スレーブマネージャが同一ネットワークに接続されている他の情報処理装置の存在を確認するには、例えば次のようにすればよい。すなわち、各情報処理装置内のマスタ／スレーブマネージャは、送信先ＩＤとしてネットワークに接続された他のすべての情報処理装置に対して定期的に存在確認要求を送信する。存在確認要求を受信した各情報処理装置は、存在確認要求の送信元に対して自身の存在することを通知するための返信を行う。ネットワークから切り離された情報処理装置からは当然のことながら、返信が行われないことになる。このようにしてネットワークに接続されているすべての情報処理装置の存在を、互いに把握することができる。
【０１１３】
能力交換プログラムは、自身が動作する情報処理装置がマスタである場合、ネットワーク４００に接続されている他の情報処理装置に関する装置情報を取得する。装置情報の取得は、前述したように、ＤＭＡコマンドがステータスコマンドであるソフトウェアパケットを生成・送信し、その後ＤＭＡコマンドがステータス返信コマンドであり、データとして他の情報処理装置に関する装置情報を含むソフトウェアパケットを受信することで可能である。
【０１１４】
能力交換プログラムは、前述の自装置の装置情報テーブルと同様に、取得した他のすべての情報処理装置に関する装置情報を格納するための領域をメインメモリ１４１に確保し、当該情報を他装置の装置情報テーブルとして記録する。すなわち、マスタのメインメモリ１４１には、ネットワーク４００に接続されている自身を含むすべての情報処理装置の装置情報テーブルが記録される。
【０１１５】
一方、能力交換プログラムが動作する情報処理装置がスレーブである場合、ネットワーク４００に接続されているマスタの情報処理装置および自身以外のすべてのスレーブの情報処理装置に関する装置情報を取得する。そして装置情報に含まれる情報処理装置ＩＤおよびＭＳステータスをメインメモリ１４１に記録する。すなわち、スレーブには、自装置に関するすべての装置情報が装置情報テーブルとして記録されるとともに、ネットワーク４００に接続された自身以外のすべての情報処理装置について、その情報処理装置ＩＤおよびＭＳステータスが装置情報テーブルとして記録されることになる。
【０１１６】
また、能力交換プログラムは、ネットワーク４００に新たに情報処理装置が接続されたことを示すネットワーク状態の変化通知をマスタ／スレーブマネージャから受信すると、その情報処理装置に関する装置情報を取得する。同様にネットワーク４００から情報処理装置が切り離された、あるいは電源が切断されたというネットワーク状態の変化通知を受信すると、当該装置の装置情報テーブルをメインメモリ１４１から削除する。
【０１１７】
〔３−６〕  マスタおよびスレーブの制御フロー
ネットワーク４００に接続されている複数の情報処理装置を仮想的な１台の情報処理装置として動作させるために、マスタの情報処理装置（以下「マスタ」と呼ぶ）が、ユーザの操作およびスレーブとなる情報処理装置（以下「スレーブ」と呼ぶ）の動作状況を把握する必要がある。
【０１１８】
図１３は、ネットワーク４００に接続されている３台の情報処理装置１００〜３００が、仮想的な１台の情報処理装置として動作する様子を示すものである。この例においては、情報処理装置１００がマスタとして動作し、情報処理装置２００および情報処理装置３００がスレーブとして動作し、ユーザが情報処理装置２００を操作すると、この操作に応じた処理を情報処理装置３００が実行する場合である。また、図１４は、その場合のフローチャートを示す。
【０１１９】
ユーザが情報処理装置２００を操作すると、その操作された情報処理装置がマスタあるいはスレーブに関わらず、その操作情報は常にマスタに送信される。マスタにおけるメインプロセッサ１０１は、当該操作情報に従い、実行する機能プログラムを選択する。このとき、必要ならば、前述の方法にしたがい外部記憶装置１４２からメインメモリ１４１へ機能プログラムをロードする。実行時に機能プログラムは、自身が実行されるときに必要なメインプロセッサ１０１、サブプロセッサ１１１、メインメモリ１４１、外部記憶装置１４２に関する情報をメインプロセッサ１０１に通知する。ここでの情報とは、図１０に示される情報処理装置ＩＤ以下の情報である。
【０１２０】
機能プログラムがこれらの情報をメインプロセッサへ通知する方法としては、機能プログラムは自身が実行される実行要求の他に、情報通知要求にも対応している。メインプロセッサは機能プログラムへ当該情報通知要求を発行することにより、図１０に示される情報処理装置ＩＤ以下の情報を取得することができる。  メインプロセッサ１０１は、メインメモリ１４１に記録されている前述の自装置あるいは他装置の装置情報テーブルに基づき、当該機能プログラムを実行可能なスレーブを選択する。マスタは、選択されたスレーブへ機能プログラムの実行を要求する。このとき、マスタは、前述の機能プログラムの実行に必要な情報等に基づき、自身のメインメモリ１４１に記録された選択されたスレーブに関する装置情報テーブルを更新する。
【０１２１】
機能プログラムの実行を要求されたスレーブのメインプロセッサ１０１は、機能プログラムを実行する。その場合にも、必要ならばスレーブのメインプロセッサ１０１は、前述の方法にしたがい外部記憶装置１４２からメインメモリ１４１へ機能プログラムをロードする。
【０１２２】
ここで、機能プログラムの実行を要求されたスレーブと接続された外部記憶装置１４２に必要な機能プログラムが記録されていない場合には、他の情報処理装置１００が前述のメインメモリ用プログラムとして当該機能プログラムを機能プログラムの実行を要求されたスレーブへ送信してもよい。さらにメインメモリ用プログラムと同様に、サブプロセッサプログラムも必要ならば、ソフトウェアパケットを用いることにより他の情報処理装置１００へ送信して、この情報処理装置１００のサブプロセッサ１１１へロードさせ、サブプロセッサプログラムを他の情報処理装置１００により実行させることができる。
【０１２３】
そして、機能プログラムの処理終了後、終了通知をマスタに送信する。マスタは終了通知を受信することにより、機能プログラムを実行したスレーブに関する装置情報テーブルを更新する。
【０１２４】
また、マスタのメインプロセッサ１０１は、自装置あるいは他装置の装置情報テーブルに基づき、当該機能プログラムを実行可能な情報処理装置１００として自身を選択する場合もあり得る。その場合には、マスタが機能プログラムを実行する。その際にはスレーブのメインメモリ１４１に記録されたマスタに関する装置情報テーブルが、マスタの動作状況に応じて更新されることになる。
【０１２５】
このようにして、ユーザは、複数の情報処理装置のうちの１台の情報処理装置だけを操作することにより、他の情報処理装置を操作しなくても、複数の情報処理装置を仮想的な１台の情報処理装置として動作させることができる。
【０１２６】
〔３−７〕  情報処理装置の具体例
図１５は、仮想的な情報処理装置の具体例を示す。情報処理装置１００および２００は、ハードディスクドライブを有し、映像や音声をハードディスクに記録するハードディスクレコーダを構成している。ハードディスクレコーダ（情報処理装置）１００には、映像を表示するためのモニタ１５１と、音声を出力するためのスピーカ１５２とが接続されている。情報処理装置３００は、モバイル機器ないしＰＤＡ（個人情報端末）を構成し、情報処理装置４００は、携帯型のＣＤプレーヤを構成している。
【０１２７】
情報処理装置１００〜４００、すなわち、ハードディスクレコーダ１００、２００、ＰＤＡ３００、ＣＤプレイヤ４００のハードウェアの構成例を、図１６、図１７、図１８に示し、ハードディスクレコーダ１００、２００、ＰＤＡ３００、ＣＤプレイヤ４００のソフトウェアの構成例を、図１９、図２０、図２１に示す。なお、ハードディスクレコーダ１００、２００、ＰＤＡ３００、ＣＤプレイヤ４００において、図６の手段と対応する手段には同一符号を付ける。
【０１２８】
〔３−８〕  機能プログラムの起動
ここでは、機能プログラムの起動をマスタからスレーブに依頼する具体例を、図１５を用いて説明する。なお、前提条件として、マスタのハードディスクレコーダ１００のハードディスクの空き容量が録画時間に換算して10分とする。また、スレーブのハードディスクレコーダ２００のハードディスクの空き容量は、録画時間に換算して20時間とする。
【０１２９】
ユーザはハードディスクレコーダ１００に対して、２時間の番組録画予約の操作を行う。ハードディスクレコーダ１００はマスタであるので、ネットワークに接続された情報処理装置１００の情報テーブルから、２時間分の空きのあるハードディスクを有するセカンダリを検索する。この場合、検索される機器はハードディスクレコーダ２００となる。マスタはスレーブに対して２時間の番組予約の実行を依頼する。
【０１３０】
情報処理装置１００がネットワークから切り離された、あるいは主電源が切断された場合の処理を記述する。ネットワークから情報処理装置１００が切り離されると、それぞれの情報処理装置のマスタ／スレーブマネージャが、装置の切断を検知し、切断された情報処理装置ＩＤとともに、切断情報を能力交換プログラムに通知する。能力交換プログラムは、マスタ／スレーブマネージャから通知された情報処理装置ＩＤに対応した機器情報を、機器情報テーブルから削除する。
【０１３１】
ネットワークから切断された情報処理装置がマスタの場合、現在ネットワークに接続されている情報処理装置のうち、スレーブからマスタに変更する装置を決定する必要があるが、次にその処理を説明する。
【０１３２】
マスタ／スレーブマネージャから通知された切断情報がマスタであった場合、情報処理装置ＩＤを数値に置き換え、自身の情報処理装置ＩＤと、自身が管理する装置情報テーブルの情報処理装置ＩＤとを比較し、もしも、自身の情報処理装置ＩＤが、装置情報テーブルの情報処理装置ＩＤに比べて最小であった場合、そのスレーブはマスタに移行する。
【０１３３】
マスタに移行すべきスレーブは、マスタの動作に切り換わるために、ＭＳステータスを“０”に設定し、先述のマスタにおける装置情報の取得と同様に、ネットワークに接続されたすべての情報処理装置の装置情報を取得し、メインメモリ１４１に記録する。
【０１３４】
〔４〕  その他
上述においては、メディア３０が外部記録メディアであってモバイル機器２０から取り出しのできる場合であるが、モバイル機器２０に内蔵されていて取り出しのできない場合でも、そのモバイル機器２０を例えばＵＳＢケーブルによりＡＶサーバ１０に接続できるようにすれば、同様に番組の持ち出しができる。
【０１３５】
また、上述においては、テレビ番組のデジタルデータをＡＶサーバからモバイル機器の外部記録メディアに持ち出す場合であるが、他の動画や音声（オーディオ）などのデジタルデータを外部記録メディアに持ち出す場合にも、この発明を適用できる。
【０１３６】
〔略語の一覧〕
ＡＶ        ：Audio and Visual
ＢＳ        ：Broadcasting Satellite
ＣＤ        ：Compact Disc
ＣＤ±ＲＷ  ：CD +ReWritable, CD ReWritable
ＣＰＵ      ：Central Processing Unit
ＣＳ        ：Communication Satellite
ＤＭＡ      ：Direct Memory Access
ＤＲＡＭ    ：Dynamic RAM
ＤＳＰ      ：Digital Signal Processor
ＤＶＤ±ＲＷ：DVD +ReWritable, DVD ReWritable
ＩＤ        ：IDentification
ＭＯ        ：Magneto-Optical disk
ＲＡＭ      ：Random Access Memory
ＲＯＭ      ：Read Only Memory
ＳＲＡＭ    ：Static RAM
ＵＳＢ  ：Universal Serial Bus
【図面の簡単な説明】
【０１３７】
【図１】この発明の一形態を示す系統図である。
【図２】管理情報の一例を示す図である。
【図３】他の管理情報の一例を示す図である。
【図４】保存状態を説明するための図である。
【図５】この発明を説明するためのシーケンス図である。
【図６】コンピュータシステムの一例を示す系統図である。
【図７】図６のシステムを説明するための図である。
【図８】図６のシステムを説明するための図である。
【図９】図６のシステムを説明するための図である。
【図１０】図６のシステムを説明するための図である。
【図１１】仮想情報処理装置を説明するための図である。
【図１２】情報処理装置のソフトウェア構成の一例を示す図である。
【図１３】図１１の装置を説明するための図である。
【図１４】図１１の装置を説明するための図である。
【図１５】仮想情報処理装置を説明するための図である。
【図１６】情報処理装置のハードウェア構成の一例を示す図である。
【図１７】情報処理装置のハードウェア構成の一例を示す図である。
【図１８】情報処理装置のハードウェア構成の一例を示す図である。
【図１９】情報処理装置のソフトウェア構成の一例を示す図である。
【図２０】情報処理装置のソフトウェア構成の一例を示す図である。
【図２１】情報処理装置のソフトウェア構成の一例を示す図である。
【符号の説明】
【０１３８】
１０…ＡＶサーバ、１１…ＣＰＵ、１２…メモリ、１３…ハードディスク装置、１４…ユーザインターフェイス、１５…チューナ、１６…ネットワークインターフェイス、１７…ＤＳＰ、１８…外部記録メディアインターフェイス、２０…モバイル機器、３０…外部記録メディア、４０…ネットワーク
【図１】
2005235246.tif 000003
【図２】
2005235246.tif 000004
【図３】
2005235246.tif 000005
【図４】
2005235246.tif 000006
【図５】
2005235246.tif 000007
【図６】
2005235246.tif 000008
【図７】
2005235246.tif 000009
【図８】
2005235246.tif 000010
【図９】
2005235246.tif 000011
【図１０】
2005235246.tif 000012
【図１１】
2005235246.tif 000013
【図１２】
2005235246.tif 000014
【図１３】
2005235246.tif 000015
【図１４】
2005235246.tif 000016
【図１５】
2005235246.tif 000017
【図１６】
2005235246.tif 000018
【図１７】
2005235246.tif 000019
【図１８】
2005235246.tif 000020
【図１９】
2005235246.tif 000021
【図２０】
2005235246.tif 000022
【図２１】
2005235246.tif 000023