(57)【要約】【課題】  仮想的な１台の機器における余剰の処理能力を容易に把握するとともに、機能拡張を効率的に行なう。【解決手段】  仮想情報処理装置の余剰処理能力を基に、使用可能な機能一覧を抽出し表示する。余剰処理能力の不足から動作不可能な機能が存在する場合、さらに必要な処理能力を算出し、どの情報処理装置を増設すれば該当機能が使用可能になるかを情報処理装置名や型番などで具体的に提示する。また、情報処理装置が接続可能なネットワーク上に情報提供サーバを配置し、所定のタイミングで各情報処理装置の性能・機能情報、ソフトウェアを取得する。【選択図】  図１６
2005250598.tif 000002
【特許請求の範囲】
【請求項１】
複数の機器で構成される情報処理システムであって、
前記のシステム全体としての装置情報を取得する装置情報取得手段と、
前記のシステムを構成する各機器を利用して実行される拡張機能を提示する拡張機能提示手段と、
各拡張機能を実行可能にするために必要となる性能又は装置構成を管理する機能管理手段と、
前記拡張機能提示手段により提示された拡張機能の実行を可能にするために必要な性能又は装置構成を抽出し、前記装置情報取得手段により取得された装置情報の総和と比較し、当該拡張機能が実行可能であるか否かを判別する実行可能性判別手段と、
を具備することを特徴とする情報処理システム。
【請求項２】
前記実行可能性判別手段による判別結果が否定的である場合に、当該拡張機能の実行を可能にするために追加が必要となる装置情報を提示する追加装置情報提示手段をさらに備える、
ことを特徴とする請求項１に記載の情報処理システム。
【請求項３】
前記情報処理システムはネットワーク接続される複数の情報処理装置の連携動作により仮想的に１台の仮想情報処理装置として動作し、
前記装置情報取得手段は、前記ネットワークに接続される各情報処理装置から装置情報又は余剰処理能力を取得する、
ことを特徴とする請求項２に記載の情報処理システム。
【請求項４】
前記機能管理手段は、各情報処理装置における性能並びに実行可能な機能、各機能を実現するために必要な情報処理装置の性能、複数の情報処理装置の連携動作により新たに実行可能になる機能をそれぞれ管理する、
ことを特徴とする請求項３に記載の情報処理システム。
【請求項５】
前記拡張機能提示手段は、前記ネットワークに接続される各情報処理装置が他の情報処理装置との連携動作により実行可能となる機能を拡張機能として抽出し、提示する、
ことを特徴とする請求項３に記載の情報処理システム。
【請求項６】
前記拡張機能提示手段は、前記ネットワーク上に接続されている情報処理装置とは異なる種類の情報処理装置が接続されたと仮定し、その組み合わせにより新たに使用可能となる拡張機能が存在する場合には、該当する情報処理装置を明示する情報を表示する、
ことを特徴とする請求項５に記載の情報処理システム。
【請求項７】
前記実行可能性判別手段は、拡張機能を実行するために必要となる性能又は装置構成と、前記ネットワークに接続される各情報処理装置の装置情報又は余剰処理能力の総和とを比較し、必要となる性能又は装置構成に対し当該装置情報の総和又は余剰処理能力が不足するか否かを以って当該拡張機能が実行可能であるか否かを判別する、
ことを特徴とする請求項３に記載の情報処理システム。
【請求項８】
前記追加装置情報提示手段は、拡張機能を実行するために不足する性能又は装置構成を満たし、当該拡張機能の実行を可能にする情報処理装置を探索し、提示する、
ことを特徴とする請求項７に記載の情報処理システム。
【請求項９】
前記追加装置情報提示手段は、探し出された情報処理装置の前記ネットワークへの接続を促す、
ことを特徴とする請求項８に記載の情報処理システム。
【請求項１０】
前記仮想情報処理装置内では過去に利用された機能の履歴並びに過去に前記ネットワークに接続された情報処理装置の履歴が管理されており、
前記追加装置情報提示手段は、情報処理装置を明示する情報を表示する際に、過去に接続されたことのある情報処理装置を優先的に表示する、
ことを特徴とする請求項７に記載の情報処理システム。
【請求項１１】
複数の機器による連携動作を処理するための情報処理方法であって、
前記の各機器から装置情報を取得する装置情報取得ステップと、
前記の各機器を利用して実行される拡張機能を提示する拡張機能提示ステップと、
各拡張機能を実行可能にするために必要となる性能又は装置構成を管理する機能管理ステップと、
前記拡張機能提示ステップにおいて提示された拡張機能の実行を可能にするために必要な性能又は装置構成を抽出し、前記装置情報取得ステップにおいて取得された装置情報の総和と比較し、当該拡張機能が実行可能であるか否かを判別する実行可能性判別ステップと、
を具備することを特徴とする情報処理方法。
【請求項１２】
前記実行可能性判別ステップにおける判別結果が否定的である場合に、当該拡張機能の実行を可能にするために追加が必要となる装置情報を提示する追加装置情報提示ステップをさらに備える、
ことを特徴とする請求項１１に記載の情報処理方法。
【請求項１３】
ネットワーク接続される複数の情報処理装置の連携動作により仮想的に１台として動作する仮想情報処理装置において、
前記装置情報取得ステップでは、前記ネットワークに接続される各情報処理装置から装置情報又は余剰処理能力を取得する、
ことを特徴とする請求項１２に記載の情報処理方法。
【請求項１４】
前記機能管理ステップでは、各情報処理装置における性能並びに実行可能な機能、各機能を実現するために必要な情報処理装置の性能、複数の情報処理装置の連携動作により新たに実行可能になる機能をそれぞれ管理する、
ことを特徴とする請求項１３に記載の情報処理方法。
【請求項１５】
前記拡張機能提示ステップでは、前記ネットワークに接続される各情報処理装置が他の情報処理装置との連携動作により実行可能となる機能を拡張機能として抽出し、提示する、
ことを特徴とする請求項１３に記載の情報処理方法。
【請求項１６】
前記拡張機能提示ステップでは、前記ネットワーク上に接続されている情報処理装置とは異なる種類の情報処理装置が接続されたと仮定し、その組み合わせにより新たに使用可能となる拡張機能が存在する場合には、該当する情報処理装置を明示する情報を表示する、
ことを特徴とする請求項１５に記載の情報処理方法。
【請求項１７】
前記実行可能性判別ステップでは、拡張機能を実行するために必要となる性能又は装置構成と、前記ネットワークに接続される各情報処理装置の装置情報又は余剰処理能力の総和とを比較し、必要となる性能又は装置構成に対し当該装置情報の総和又は余剰処理能力が不足するか否かを以って当該拡張機能が実行可能であるか否かを判別する、
ことを特徴とする請求項１３に記載の情報処理方法。
【請求項１８】
前記追加装置情報提示ステップでは、拡張機能を実行するために不足する性能又は装置構成を満たし、当該拡張機能の実行を可能にする情報処理装置を探索し、提示する、
ことを特徴とする請求項１７に記載の情報処理方法。
【請求項１９】
前記追加装置情報提示ステップでは、探し出された情報処理装置の前記ネットワークへの接続を促す、
ことを特徴とする請求項１８に記載の情報処理方法。
【請求項２０】
過去に利用された機能の履歴並びに過去に前記ネットワークに接続された情報処理装置の履歴を管理するステップ履歴管理ステップをさらに備え、
前記追加装置情報提示ステップでは、情報処理装置を明示する情報を表示する際に、過去に接続されたことのある情報処理装置を優先的に表示する、
ことを特徴とする請求項１７に記載の情報処理方法。
【請求項２１】
複数の機器による連携動作をコンピュータ・システム上で処理するようにコンピュータ可読形式で記述されたコンピュータ・プログラムであって、
前記の各機器から装置情報を取得する装置情報取得ステップと、
前記の各機器を利用して実行される拡張機能を提示する拡張機能提示ステップと、
各拡張機能を実行可能にするために必要となる性能又は装置構成を管理する機能管理ステップと、
前記拡張機能提示ステップにおいて提示された拡張機能の実行を可能にするために必要な性能又は装置構成を抽出し、前記装置情報取得ステップにおいて取得された装置情報の総和と比較し、当該拡張機能が実行可能であるか否かを判別する実行可能性判別ステップと、
を具備することを特徴とするコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク接続された２以上の機器間における動作を連携させる情報処理システム及び情報処理方法、並びにコンピュータ・プログラムに係り、特に、ネットワークで接続された２以上の機器間における動作を連携させる情報処理システム及び情報処理方法、並びにコンピュータ・プログラムに関する。
【０００２】
さらに詳しくは、本発明は、ネットワーク接続された複数の機器が協調動作により分散処理を行なうことで、仮想的に１台の機器として動作する情報処理システム及び情報処理方法、並びにコンピュータ・プログラムに係り、特に、ネットワーク接続された複数の機器により構成される仮想的な１台の機器における余剰の処理能力を把握するとともに、機能拡張を行なう情報処理システム及び情報処理方法、並びにコンピュータ・プログラムに関する。
【背景技術】
【０００３】
複数のコンピュータ同士をネットワークで相互接続することにより、情報資源の共有、ハードウェア資源の共有、複数のユーザ間でのコラボレーションが実現することが知られている。コンピュータ間の接続メディアとして、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどさまざまである。
【０００４】
特に最近では、一般家庭内にもコンピュータやネットワークなどの技術が深く浸透してきている。家庭内のパーソナル・コンピュータやＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔｓ）などの情報機器、さらにはテレビ受像機やビデオ再生装置などＡＶ機器や、各種の情報家電、ＣＥ（Ｃｏｎｓｕｍｅｒ  Ｅｌｅｃｔｒｏｎｉｃｓ）機器などがホームネットワーク経由で相互接続されている。また、このようなホームネットワークは、多くの場合、ルータ経由でインターネットを始めとする外部の広域ネットワークに相互接続されている。
【０００５】
このようにホームネットワーク上に複数のＡＶ機器が接続されるという利用形態が想定されるが、いままでは、ＡＶ機器間で充分な連携がなされていない、という問題がある。
【０００６】
このような問題に対し、最近では、ネットワーク上の機器同士を連携させるために、機器の協調動作により高い演算性能を実現するというグリッドコンピューティング技術に関する研究開発が進められている（例えば、特許文献１〜５を参照のこと）。
【０００７】
このグリッドコンピューティング技術によれば、ネットワーク上の複数の情報処理装置が強調動作して分散処理を行ない、ユーザからは仮想的に１台の情報処理装置として動作することができる。
【０００８】
例えば、録画予約機能を持つ複数台の情報処理装置がネットワーク上に接続されている場合、録画予約の連携動作を実現することができる。すなわち、複数台の情報処理装置がホームネットワーク経由で録画予約の動作を連携させている場合、ホームネットワーク上では仮想的に１台の録画機器として動作する。そして、ユーザは、いずれかの機器のユーザ・インターフェースを用いて、ホームネットワークに接続されている任意の機器を用いて録画予約を行なうことができる。
【０００９】
さらにこのような録画予約機能の連携により、予約時間が重複した番組（いわゆる裏番組）を同時録画することが可能である。同様に、記録したコンテンツの再生動作を複数の機器間で連携させ、同時・同期的なコンテンツ再生を実現することができる。このコンテンツ再生機能の連携により、別々の機器で記録されたコンテンツの再生を同時、同期的に進行させることにより、コンテンツ再生においてチャンネル切り換えの概念を導入することができる。
【００１０】
このような仮想的な１台の機器によれば、１台の機器のハードウェア資源や処理能力だけではユーザからの要求に応じることができない場合であっても、ネットワーク上で連携・協調動作する他の機器における余剰の処理能力を活用することで、ユーザの要求に応じることができ、さらに通常の１台の機器では現実的ではないサービスを実現することができる。
【００１１】
ところが、このような仮想的な１台の機器において、例えば機能拡張を行ないたい場合において、現在の処理能力が分かりづらいという問題がある。このため、利用可能となる拡張機能が何であるかや、拡張機能を実現するために必要となる装置構成が分かりづらい。
【００１２】
通常の１台の情報処理装置においては、ハードウェアやソフトウェアなどの装置構成を把握することは比較的容易である。これに対し、ネットワーク経由で複数の情報処理装置が協調動作している場合、ある装置からは他の装置の構成は視覚化されておらず、このため、仮想的な１台の情報処理装置における現在の余剰の処理能力を容易に把握することができない。
【００１３】
例えば、仮想的な１台の情報処理装置に対しある要求を行なおうとする場合、ネットワーク接続される情報処理装置間で互いの余剰の処理能力が判明するまで、実際にどのような機能が実現可能であるのかを判断することができない。
【００１４】
また、情報処理装置の組み合わせにより付加機能が実行可能になる場合であっても、接続前にはどのような機能が実行可能になるのか、あらかじめ提示されない。
【００１５】
一般には、情報処理装置は周辺機器の増設などにより、機能拡張を実現することができる。これに対し、仮想的な１台の情報処理装置においては、余剰機能の把握が困難であることから、ユーザが新たに要求する拡張機能に対し、いかなる機器をネットワークに新規接続すればよいのか判断が難しい。
【００１６】
【特許文献１】特開２００２−３４２１６５号公報
【特許文献２】特開２００２−３５１８５０号公報
【特許文献３】特開２００２−３５８２８９号公報
【特許文献４】特開２００２−３６６５３３号公報
【特許文献５】特開２００２−３６６５３４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１７】
本発明の目的は、ネットワーク接続された複数の機器が協調動作により分散処理を行なうことで、仮想的に１台の機器として動作することができる、優れた情報処理システム及び情報処理方法、並びにコンピュータ・プログラムを提供することにある。
【００１８】
本発明のさらなる目的は、ネットワーク接続された複数の機器により構成される仮想的な１台の機器における余剰の処理能力を容易に把握するとともに、機能拡張を効率的に行なうことができる、優れた情報処理システム及び情報処理方法、並びにコンピュータ・プログラムを提供することにある。
【課題を解決するための手段】
【００１９】
本発明は、上記課題を参酌してなされたものであり、その第１の側面は、複数の機器で構成される情報処理システムであって、
前記のシステム全体としての装置情報を取得する装置情報取得手段と、
前記のシステムを構成する各機器を利用して実行される拡張機能を提示する拡張機能提示手段と、
各拡張機能を実行可能にするために必要となる性能又は装置構成を管理する機能管理手段と、
前記拡張機能提示手段により提示された拡張機能の実行を可能にするために必要な性能又は装置構成を抽出し、前記装置情報取得手段により取得された装置情報の総和と比較し、当該拡張機能が実行可能であるか否かを判別する実行可能性判別手段と、
を具備することを特徴とする情報処理システムである。
【００２０】
本発明に係る情報処理システムは、前記実行可能性判別手段による判別結果が否定的である場合に、当該拡張機能の実行を可能にするために追加が必要となる装置情報を提示する追加装置情報提示手段をさらに備えている。
【００２１】
但し、ここで言う「システム」とは、複数の装置（又は特定の機能を実現する機能モジュール）が論理的に集合した物のことを言い、各装置や機能モジュールが単一の筐体内にあるか否かは特に問わない。
【００２２】
本発明に係る情報処理システムは、具体的には、ネットワーク接続される複数の情報処理装置の連携動作により仮想的に１台の仮想情報処理装置として動作する。このような場合、前記装置情報取得手段は、前記ネットワークに接続される各情報処理装置から装置情報又は余剰処理能力を取得し、システム全体の装置情報の総和を得ることができる。
【００２３】
したがって、本発明によれば、グリッドコンピューティング技術の適用により、ネットワーク接続された複数の情報処理装置が互いに連携することで１台の仮想的な情報処理装置を実現することができる。そして、仮想情報処理装置の性能や機能が連携し、各情報処理装置の総和として構成されるシステムにおいて、各機能の実行に必要な性能情報を取得する手段を設けることができる。このようなシステムの性能情報を取得する手段によれば、仮想的な１台の情報処理装置における余剰の処理能力を容易に把握するとともに、機能拡張を効率的に行なうことができ、ユーザの利便性を向上することができる。
【００２４】
ここで、前記機能管理手段は、各情報処理装置における性能並びに実行可能な機能、各機能を実現するために必要な情報処理装置の性能、複数の情報処理装置の連携動作により新たに実行可能になる機能をそれぞれデータベース管理するようにしてもよい。そして、これらのデータベースを通信ネットワーク上に配置し、所定のサーバ経由で利用できるようにしてもよい。
【００２５】
また、前記拡張機能提示手段は、前記ネットワークに接続される各情報処理装置が他の情報処理装置との連携動作により実行可能となる機能をデータベースから抽出し、拡張機能としてリストアップして提示することができる。
【００２６】
また、前記追加装置情報提示手段は、前記ネットワーク上に接続されている情報処理装置とは異なる種類の情報処理装置が接続されたと仮定し、その組み合わせにより新たに使用可能となる拡張機能が存在する場合には、該当する情報処理装置を明示する情報を表示するようにしてもよい。
【００２７】
また、前記仮想情報処理装置内では過去に利用された機能の履歴並びに過去に前記ネットワークに接続された情報処理装置の履歴を管理している場合には、前記追加装置情報提示手段は、情報処理装置を明示する情報を表示する際に、過去に接続されたことのある情報処理装置を優先的に表示することができる。
【００２８】
また、前記実行可能性判別手段は、拡張機能を実行するために必要となる性能又は装置構成と、前記ネットワークに接続される各情報処理装置の装置情報又は余剰処理能力の総和とを比較し、必要となる性能又は装置構成に対し当該装置情報の総和又は余剰処理能力が不足するか否かを以って当該拡張機能が実行可能であるか否かを判別することができる。
【００２９】
また、前記追加装置情報提示手段は、拡張機能を実行するために不足する性能又は装置構成を満たし、当該拡張機能の実行を可能にする情報処理装置をデータベースで探索し、その結果を提示することができる。このとき、前記追加装置情報提示手段は、探し出された情報処理装置の前記ネットワークへの接続を促すようなユーザ表示をおこなうようにしてもよい。
【００３０】
また、本発明の第２の側面は、複数の機器による連携動作をコンピュータ・システム上で処理するようにコンピュータ可読形式で記述されたコンピュータ・プログラムであって、
前記の各機器から装置情報を取得する装置情報取得ステップと、
前記の各機器を利用して実行される拡張機能を提示する拡張機能提示ステップと、
各拡張機能を実行可能にするために必要となる性能又は装置構成を管理する機能管理ステップと、
前記拡張機能提示ステップにおいて提示された拡張機能の実行を可能にするために必要な性能又は装置構成を抽出し、前記装置情報取得ステップにおいて取得された装置情報の総和と比較し、当該拡張機能が実行可能であるか否かを判別する実行可能性判別ステップと、
を具備することを特徴とするコンピュータ・プログラムである。
【００３１】
本発明の第２の側面に係るコンピュータ・プログラムは、コンピュータ・システム上で所定の処理を実現するようにコンピュータ可読形式で記述されたコンピュータ・プログラムを定義したものである。換言すれば、本発明の第２の側面に係るコンピュータ・プログラムをコンピュータ・システムにインストールすることによって、コンピュータ・システム上では協働的作用が発揮され、本発明の第１の側面に係る情報処理システムと同様の作用効果を得ることができる。
【発明の効果】
【００３２】
本発明によれば、ネットワーク接続された複数の機器が協調動作により分散処理を行なうことで、仮想的に１台の機器として動作することができる、優れた情報処理システム及び情報処理方法、並びにコンピュータ・プログラムを提供することができる。
【００３３】
また、本発明によれば、ネットワーク接続された複数の機器により構成される仮想的な１台の機器における余剰の処理能力を容易に把握するとともに、機能拡張を効率的に行なうことができる、優れた情報処理システム及び情報処理方法、並びにコンピュータ・プログラムを提供することができる。
【００３４】
本発明によれば、複数の情報処理装置の連携により新たなに使用可能となる機能を使用したい場合において、必要な情報処理装置の種類や数を、実際に機器をつなぐ前に把握できる。これにより、無駄な接続を行なうことなく、最短で必要な機能を得ることが可能となる。
【００３５】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施形態や添付する図面に基づくより詳細な説明によって明らかになるであろう。
【発明を実施するための最良の形態】
【００３６】
以下、図面を参照しながら本発明の実施形態について詳解する。
【００３７】
Ａ．システム構成
本発明は、２以上の情報処理装置間における動作をホームネットワーク経由で好適に連携させることにより、別々の場所に設定されている各機器における録画予約操作を簡易且つ効率的にするものである。ネットワーク上の機器同士を連携させるために、機器の協調動作により高い演算性能を実現するためのグリッドコンピューティング技術を活用する。
【００３８】
図１には、グリッドコンピューティングを適用して構成される、ネットワークシステムの構成を模式的に示している。
【００３９】
ネットワークは、インターネットやその他の広域ネットワーク、並びに、広域ネットワークとはゲートウェイなどを介して接続されるＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）やホームネットワークなどのプライベートなネットワークで構成される。ホームネットワークは、物理的には、１０ＢａｓｅＴや１００ＢａｓｅＴＸ、Ｇｉｇａ  ｅａｔｈｅｒなどの標準的なネットワークインターフェースで構成することができる。また、ホームネットワーク上で他の機器を発見する仕組みとしてＵｐｎｐ（Ｕｎｉｖｅｒｓａｌ  Ｐｌｕｇ  ａｎｄ  Ｐｌａｙ）を利用することができる。Ｕｐｎｐによれば、ネットワーク接続された機器間で、ＸＭＬ（ｅＸｔｅｎｄｅｄ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）形式で記述された定義ファイルを交換し、アドレッシング処理、ディスカバリ処理、サービス要求処理を経て相互認証を行なう。あるいは同一セグメント内での規定の機器情報を記述したパケットのブロードキャストすることによっても実現可能である。
【００４０】
ネットワーク上には、複数の情報処理装置が接続されている。情報処理装置の例として、ＤＶＤレコーダやＨＤレコーダのような、記録メディアを搭載し録画予約機能を備えたＡＶ機器、あるいはコンパクト・ディスクなどの記録機能を持たない再生専用のＡＶ機器、その他の情報処理装置が挙げられる。また、情報処理装置の他の例は、ＰＤＡやパーソナル・コンピュータなどの計算機処理システムを挙げることができる。図１に示す例では、ネットワーク９を介して複数の情報処理装置１、２、３、４が接続されている。
【００４１】
Ａ−１．情報処理装置及び情報処理コントローラ
情報処理装置１、２、３、４は、例えば各種のＡＶ（Ａｕｄｉｏ  ａｎｄ  Ｖｉｓｕａｌ）機器やポータブル機器である（後述）。
【００４２】
図示の通り、情報処理装置１は、コンピュータ機能部として情報処理コントローラ１１を備える。情報処理コントローラ１１は、メインプロセッサ２１−１、サブプロセッサ２３−１、２３−２、２３−３、ＤＭＡＣ（ダイレクトメモリアクセスコントローラ）２５−１、及びＤＣ（ディスクコントローラ）２７−１を備えている。情報処理コントローラ１１は、ワンチップＩＣ（集積回路）として構成することが望ましい。
【００４３】
メインプロセッサ２１−１は、サブプロセッサ２３−１、２３−２、２３−３によるプログラム実行（データ処理）のスケジュール管理と、情報処理コントローラ１１（情報処理装置１）の全般的な管理とを行なう。但し、メインプロセッサ２１−１内で管理を行なうためのプログラム以外のプログラムが動作するように構成することもできる。この場合、メインプロセッサ２１−１はサブプロセッサとしても機能することになる。メインプロセッサ２１−１は、ＬＳ（ローカル・ストレージ）２２−１を備えている。
【００４４】
１台の情報処理装置に備わるサブプロセッサは１つでもよいが、望ましくは複数とする。図示の例では、複数の場合である。各サブプロセッサ２３−１、２３−２、２３−３は、メインプロセッサ２１−１の制御下で、並列的且つ独立にプログラムを実行し、データを処理する。さらに、場合によってメインプロセッサ２１−１内のプログラムがサブプロセッサ２３−１、２３−２、２３−３内のプログラムと連携して動作することもできる。各サブプロセッサ２３−１、２３−２、２３−３も、それぞれＬＳ（ローカルストレージ）２４−１、２４−２、２４−３を備えている。
【００４５】
ＤＭＡＣ（直接メモリアクセスコントローラ）２５−１は、情報処理コントローラ１１に接続されたＤＲＡＭ（ダイナミックＲＡＭ）などからなるメインメモリ２６−１に格納されているプログラム及びデータにプロセッサの介在なしにアクセスするものである。また、ＤＣ（ディスクコントローラ）２７−１は、情報処理コントローラ１１に接続された外部記録部２８−１、２８−２へのアクセス動作を制御する。
【００４６】
外部記録部２８−１、２８−２は、固定ディスク（ハードディスク）、あるいはリムーバブルディスクのいずれの形態でもよい。また、リムーバブルディスクとして、ＭＯ（磁気ディスク）、ＣＤ±ＲＷ、ＤＶＤ±ＲＷなどの光ディスク、メモリディスク、ＳＲＡＭ（スタティックＲＡＭ）、ＲＯＭなど各種の記録メディアを用いることができる。ＤＣ２７−１は、ディスクコントローラと称するが、要するに外部記録部コントローラである。図１に示すように、外部記録部２８を複数接続できるように、情報処理コントローラ１１を構成することができる。
【００４７】
メインプロセッサ２１−１、各サブプロセッサ２３−１、２３−２、２３−３、ＤＭＡＣ２５−１、及びＤＣ２７−１は、バス２９−１によって相互接続されている。
【００４８】
情報処理コントローラ１１には、当該情報処理コントローラ１１を搭載する情報処理装置１をネットワーク全体を通して一意に識別できる識別子が、情報処理装置ＩＤとして割り当てられている。また、メインプロセッサ２１−１及び各サブプロセッサ２３−１、２３−２、２３−３に対しても同様に、それぞれを特定できる識別子が、メインプロセッサＩＤ及びサブプロセッサＩＤとして割り当てられる。
【００４９】
他の情報処理装置２、３、４も同様に構成されるので、ここでは説明を省略する。ここで、親番号が同一であるユニットは枝番号が異なっていても、特に断りがない限り同じ働きをするものとする。また、以下の説明において枝番号が省略されている場合には、枝番号の違いによる差異を生じないものとする。
【００５０】
Ａ−２．各サブプロセッサからメインメモリへのアクセス
上述したように、１つの情報処理コントローラ内の各サブプロセッサ２３は、独立にプログラムを実行し、データを処理するが、異なるサブプロセッサがメインメモリ２６内の同一領域に対して同時に読み出し又は書き込みを行なった場合には、データの不整合を生じ得る。そこで、サブプロセッサ２３からメインメモリ２６へのアクセスは、以下のような手順によって行なう。
【００５１】
図２（Ａ）には、メインメモリ２６内のロケーションを示している。同図に示すように、メインメモリ２６は複数のアドレスを指定できるメモリロケーションによって構成され、各メモリロケーションに対してデータの状態を示す情報を格納するための追加セグメントが割り振られる。追加セグメントは、Ｆ／Ｅビット、サブプロセッサＩＤ及びＬＳアドレス（ローカル・ストレージアドレス）を含むものとされる。また、各メモリロケーションには、後述のアクセス・キーも割り振られる。Ｆ／Ｅビットは、以下のように定義される。
【００５２】
Ｆ／Ｅビット＝０は、サブプロセッサ２３によって読み出されている処理中のデータ、又は空き状態であるため最新データではない無効データであり、読み出し不可であることを示す。また、Ｆ／Ｅビット＝０は、当該メモリ・ロケーションにデータ書き込み可能であることを示し、書き込み後に１に設定される。
【００５３】
Ｆ／Ｅビット＝１は、当該メモリロケーションのデータがサブプロセッサ２３によって読み出されておらず、未処理の最新データであることを示す。当該メモリ・ロケーションのデータは読み出し可能であり、サブプロセッサ２３によって読み出された後に０に設定される。また、Ｆ／Ｅビット＝１は、当該メモリ・ロケーションがデータ書き込み不可であることを示す。
【００５４】
さらに、上記Ｆ／Ｅビット＝０（読み出し不可／書き込み可）の状態において、当該メモリ・ロケーションについて読み出し予約を設定することは可能である。Ｆ／Ｅビット＝０のメモリロケーションに対して読み出し予約を行なう場合には、サブプロセッサ２３は、読み出し予約を行なうメモリロケーションの追加セグメントに、読み出し予約情報として当該サブプロセッサ２３のサブプロセッサＩＤ及びＬＳアドレスを書き込む。
【００５５】
その後、データ書き込み側のサブプロセッサ２３により、読み出し予約されたメモリ・ロケーションにデータが書き込まれ、Ｆ／Ｅビット＝１（読み出し可／書き込み不可）に設定されたとき、あらかじめ読み出し予約情報として追加セグメントに書き込まれたサブプロセッサＩＤ及びＬＳアドレスに読み出される。
【００５６】
複数のサブプロセッサによってデータを多段階に処理する必要がある場合、このように各メモリロケーションのデータの読み出し／書き込みを制御することにより、前段階の処理を行なうサブプロセッサ２３が処理済みのデータをメインメモリ２６上の所定のアドレスに書き込んだ後に即座に、後段階の処理を行なう別のサブプロセッサ２３が前処理後のデータを読み出すことが可能となる。
【００５７】
また、図２（Ｂ）には、各サブプロセッサ２３内のＬＳ２４におけるメモリロケーションを示している。同図に示すように、各サブプロセッサ２３内のＬＳ２４も、複数のアドレスを指定できるメモリロケーションによって構成される。各メモリロケーションに対しては、同様に追加セグメントが割り振られる。追加セグメントは、ビジービットを含むものとされる。
【００５８】
サブプロセッサ２３がメインメモリ２６内のデータを自身のＬＳ２４のメモリロケーションに読み出すときには、対応するビジービットを１に設定して予約する。ビジービットが１であるメモリロケーションには、他のデータは格納することができない。ＬＳ２４のメモリロケーションに読み出し後、ビジービットは０になり、任意の目的に使用できるようになる。
【００５９】
図２（Ａ）に示すように、さらに、各情報処理コントローラと接続されたメインメモリ２６には、メインメモリ２６内の領域を画定する複数のサンドボックスが含まれる。メインメモリ２６は、複数のメモリロケーションから構成されるが、サンドボックスは、これらのメモリロケーションの集合である。各サンドボックスは、サブプロセッサ２３毎に割り当てられ、該当するサブプロセッサが排他的に使用することができる。すなわち、各々のサブプロセッサ２３は、自身に割り当てられたサンドボックスを使用できるが、この領域を超えてデータのアクセスを行なうことはできない。
【００６０】
さらに、メインメモリ２６の排他的な制御を実現するために、図２（Ｃ）に示すようなキー管理テーブルが用いられる。キー管理テーブルは、情報処理コントローラ内のＳＲＡＭのような比較的高速のメモリに格納され、ＤＭＡＣ２５と関連付けられる。キー管理テーブル内の各エントリには、サブプロセッサＩＤ、サブプロセッサ・キー及びキーマスクが含まれる。
【００６１】
サブプロセッサ２３がメインメモリ２６を使用する際のプロセスは、以下の通りである。まず、サブプロセッサ２３はＤＭＡＣ２５に、読み出し又は書き込みのコマンドを出力する。このコマンドには、自身のサブプロセッサＩＤと、使用要求先であるメインメモリ２６のアドレスが含まれる。
【００６２】
ＤＭＡＣ２５は、このコマンドを実行する前にキー管理テーブルを参照し、使用要求元のサブプロセッサのサブプロセッサキーを調べる。次に、ＤＭＡＣ２５は、調べた使用要求元のサブプロセッサキーと、使用要求先であるメインメモリ２６内の図２（Ａ）に示したメモリロケーションに割り振られたアクセスキーとを比較して、２つのキーが一致した場合にのみ、上記のコマンドを実行する。
【００６３】
図２（Ｃ）に示したキー管理テーブル上のキーマスクは、その任意のビットが１になることによって、そのキーマスクに関連付けられたサブプロセッサキーの対応するビットが０又は１になることができる。
【００６４】
例えば、サブプロセッサキーが１０１０であるとする。通常、このサブプロセッサキーによって１０１０のアクセスキーを持つサンドボックスへのアクセスだけが可能になる。しかし、このサブプロセッサキーと関連付けられたキーマスクが０００１に設定されている場合には、キーマスクのビットが１に設定された桁のみにつき、サブプロセッサキーとアクセスキーとの一致判定がマスクされ、このサブプロセッサキー１０１０によってアクセスキーが１０１０又は１０１１のいずれかであるアクセスキーを持つサンドボックスへのアクセスが可能となる。
【００６５】
以上のようにして、メインメモリ２６のサンドボックスの排他性が実現される。すなわち、１つの情報処理コントローラ内に配置された複数のサブプロセッサによってデータを多段階に処理する必要がある場合、前段階の処理を行なうサブプロセッサと、後段階の処理を行なうサブプロセッサのみが、メインメモリ２６の所定アドレスにアクセスできるようになり、データを保護することができる。
【００６６】
このようなメモリの排他制御は、例えば以下のように使用することができる。まず、情報処理装置の起動直後においては、キーマスクの値はすべてゼロである。メインプロセッサ内のプログラムが実行され、サブプロセッサ内のプログラムと連携動作するものとする。第１のサブプロセッサにより出力された処理結果データを一旦メインメモリに格納し、第２のサブプロセッサに入力したいときには、該当するメインメモリ領域は、当然どちらのサブプロセッサからもアクセス可能である必要がある。このような場合に、メインプロセッサ内のプログラムは、キーマスクの値を適切に変更し、複数のサブプロセッサからアクセスできるメインメモリ領域を設けることにより、サブプロセッサによる多段階的の処理を可能にする。
【００６７】
より具体的には、他の情報処理装置からのデータ→第１のサブプロセッサによる処理→第１のメインメモリ領域→第２のサブプロセッサによる処理→第２のメインメモリ領域、という手順で多段階処理が行なわれるときには、以下のような設定のままでは、第２のサブプロセッサは第１のメインメモリ領域にアクセスすることができない。
【００６８】
第１のサブプロセッサのサブプロセッサ・キー：０１００、
第１のメインメモリ領域のアクセス・キー    ：０１００、
第２のサブプロセッサのサブプロセッサ・キー：０１０１、
第２のメインメモリ領域のアクセス・キー    ：０１０１
【００６９】
そこで、第２のサブプロセッサのキーマスクを０００１にすることにより、第２のサブプロセッサによる第１のメインメモリ領域へのアクセスを可能にすることができる。
【００７０】
Ａ−３．ソフトウェアセルの生成及び構成
図１のネットワークシステムでは、情報処理装置１、２、３、４間での分散処理のために、情報処理装置１、２、３、４間でソフトウェアセルが伝送される。すなわち、ある情報処理装置内の情報処理コントローラに含まれるメインプロセッサ２１は、コマンド、プログラム及びデータを含むソフトウェアセルを生成し、ネットワーク９を介して他の情報処理装置に送信することによって、処理を分散することができる。
【００７１】
図３には、ソフトウェアセルの構成の一例を示している。図示のソフトウェアセルは、送信元ＩＤ、送信先ＩＤ、応答先ＩＤ、セルインターフェース、ＤＭＡコマンド、プログラム、及びデータによって構成される。
【００７２】
送信元ＩＤには、ソフトウェアセルの送信元である情報処理装置のネットワークアドレス及び当該情報処理装置内の情報処理コントローラの情報処理装置ＩＤ、さらに、当該情報処理装置内の情報処理コントローラが備えるメインプロセッサ２１及び各サブプロセッサ２３の識別子（メインプロセッサＩＤ及びサブプロセッサＩＤ）が含まれる。
【００７３】
送信先ＩＤ及び応答先ＩＤには、ソフトウェアセルの送信先である情報処理装置、及びソフトウェアセルの実行結果の応答先である情報処理装置についての同じ情報がそれぞれ含まれる。
【００７４】
セルインターフェースは、ソフトウェアセルの利用に必要な情報であり、グローバルＩＤ、必要なサブプロセッサの情報、サンドボックスサイズ、及び前回のソフトウェアセルＩＤで構成される。
【００７５】
グローバルＩＤは、ネットワーク全体を通して当該のソフトウェアセルを一意的に識別できるものであり、送信元ＩＤと、ソフトウェアセルの作成又は送信の日時（日付及び時刻）に基づいて作成される。
【００７６】
必要なサブプロセッサの情報は、当該ソフトウェアセルの実行に必要なサブプロセッサの数が設定される。サンドボックスサイズは、当該ソフトウェアセルの実行に必要なメインメモリ２６内及びサブプロセッサ２３のＬＳ２４内のメモリ量が設定される。
【００７７】
前回のソフトウェアセルＩＤは、ストリーミングデータなどのシーケンシャルな実行を要求する１グループのソフトウェアセル内の、前回のソフトウェアセルの識別子である。
【００７８】
ソフトウェアセルの実行セクションは、ＤＭＡコマンド、プログラム及びデータで構成される。ＤＭＡコマンドには、プログラムの起動に必要な一連のＤＭＡコマンドが含まれ、プログラムには、サブプロセッサ２３によって実行されるサブプロセッサプログラムが含まれる。ここでのデータは、このサブプロセッサプログラムを含むプログラムによって処理されるデータである。
【００７９】
さらに、ＤＭＡコマンドには、ロードコマンド、キックコマンド、機能プログラム実行コマンド、ステータス要求コマンド、及びステータス返信コマンドが含まれる。
【００８０】
ロードコマンドは、メインメモリ２６内の情報をサブプロセッサ２３内のＬＳ２４にロードするコマンドであり、ロードコマンド自体の他に、メインメモリアドレス、サブプロセッサＩＤ及びＬＳアドレスを含む。メインメモリアドレスは、情報のロード元であるメインメモリ２６内の所定領域のアドレスを示す。サブプロセッサＩＤ及びＬＳアドレスは、情報のロード先であるサブプロセッサ２３の識別子及びＬＳ２４のアドレスを示す。
【００８１】
キックコマンドは、プログラムの実行を開始するコマンドであり、キックコマンド自体の他に、サブプロセッサＩＤ及びプログラムカウンタを含む。サブプロセッサＩＤは、キック対象のサブプロセッサ２３を識別し、プログラムカウンタは、プログラム実行用プログラムカウンタのためのアドレスを与える。
【００８２】
機能プログラム実行コマンドは、ある情報処理装置が他の情報処理装置に対して、機能プログラムの実行を要求するコマンドである（後述）。機能プログラム実行コマンドを受信した情報処理装置内の情報処理コントローラは、機能プログラムＩＤ（後述）によって、起動すべき機能プログラムを識別する。
【００８３】
ステータス要求コマンドは、送信先ＩＤで示される情報処理装置の現在の動作状態（状況）に関する装置情報を、応答先ＩＤで示される情報処理装置宛に送信要求するコマンドである。機能プログラムについては後述するが、図６に示す情報処理コントローラのメインメモリ２６が記憶するソフトウェアの構成図において機能プログラムにカテゴライズされるプログラムである。機能プログラムは、メインメモリ２６にロードされ、メインプロセッサ２１により実行される。
【００８４】
ステータス返信コマンドは、上記のステータス要求コマンドを受信した情報処理装置が、自身の装置情報を当該ステータス要求コマンドに含まれる応答先ＩＤで示される情報処理装置に応答するコマンドである。ステータス返信コマンドは、実行セクションのデータ領域に装置情報を格納する。
【００８５】
図４には、ＤＭＡコマンドがステータス返信コマンドである場合におけるソフトウェアセルのデータ領域の構造を示している。
【００８６】
情報処理装置ＩＤは、情報処理コントローラを備える情報処理装置を識別するための識別子であり、ステータス返信コマンドを送信する情報処理装置のＩＤを示す。情報処理装置ＩＤは、電源投入時に、その情報処理装置内の情報処理コントローラに含まれるメインプロセッサ２１によって、電源投入時の日時、情報処理装置のネットワークアドレス及び情報処理装置内の情報処理コントローラに含まれるサブプロセッサ２３の数などに基づいて生成される。
【００８７】
情報処理装置種別ＩＤには、当該情報処理装置の特徴を表す値が含まれる。ここで言う情報処理装置の特徴とは、例えば、ハードディスクレコーダ（後述）、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔｓ）、ポータブルＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）プレーヤなどである。また、情報処理装置種別ＩＤは、映像音声記録、映像音声再生など、情報処理装置が持つ機能を表すものであってもよい、情報処理装置の特徴や機能を表す値はあらかじめ決められているものとし、情報処理装置種別ＩＤを呼び出すことにより当該情報処理装置の特徴や機能を把握することが可能である。
【００８８】
ＭＳ（マスター／スレーブ）ステータスは、後述するように情報処理装置がマスター装置又はスレーブ装置のいずれで動作しているかを表すもので、これが０に設定されている場合にはマスター装置として動作していることを示し、１に設定されている場合にはスレーブ装置として動作していることを示す。
【００８９】
メインプロセッサ動作周波数は、情報処理コントローラ内のメインプロセッサ２１の動作周波数を表す。メインプロセッサ使用率は、メインプロセッサ２１で現在動作しているすべてのプログラムについての、メインプロセッサ２１での使用率を表す。メインプロセッサ使用率は、対象メインプロセッサの全処理能力に対する使用中の処理能力の比率を表した値で、例えばプロセッサ処理能力評価のための単位であるＭＩＰＳ［Ｍｉｌｌｉｏｎ Ｉｎｓｔｒｕｃｔｉｏｎｓ Ｐｅｒ Ｓｅｃｏｎｄ］を単位として算出され、又は単位時間当りのプロセッサ使用時間に基づいて算出される。後述のサブプロセッサ使用率についても同様である。
【００９０】
サブプロセッサ数は、当該の情報処理コントローラが備えるサブプロセッサ２３の数を表す。サブプロセッサＩＤは、当該の情報処理コントローラ内の各サブプロセッサ２３を識別するための識別子である。
【００９１】
サブプロセッサステータスは、各サブプロセッサ２３の状態を表すものであり、ｕｎｕｓｅｄ、ｒｅｓｅｒｖｅｄ，ｂｕｓｙなどの状態がある。ｕｎｕｓｅｄは、当該サブプロセッサが現在使用されてなく、使用の予約もされていないことを示す。ｒｅｓｅｒｖｅｄは、現在は使用されていないが、予約されている状態を示す。ｂｕｓｙは、現在使用中であることを示す。
【００９２】
サブプロセッサ使用率は、当該のサブプロセッサで現在実行している、又は当該のサブプロセッサに実行が予約されているプログラムについての、当該サブプロセッサでの使用率を表す。すなわち、サブプロセッサ使用率は、サブプロセッサステータスがｂｕｓｙである場合には、現在の使用率を示し、サブプロセッサステータスがｒｅｓｅｒｖｅｄである場合には、後に使用される予定の推定使用率を示す。
【００９３】
サブプロセッサＩＤ、サブプロセッサステータス及びサブプロセッサ使用率は、１つのサブプロセッサ２３に対して一組設定され、１つの情報処理コントローラ内のサブプロセッサ２３に対応する組数が設定される。
【００９４】
メインメモリ総容量及びメインメモリ使用量は、それぞれ、当該の情報処理コントローラに接続されているメインメモリ２６の総容量及び現在使用中の容量を表す。
【００９５】
外部記録部数は、当該の情報処理コントローラに接続されている外部記録部２８の数を表す。外部記録部ＩＤは、当該の情報処理コントローラに接続されている外部記録部２８を一意的に識別する情報である。外部記録部種別ＩＤは、当該の外部記録部の種類（例えば、ハードディスク、ＣＤ±ＲＷ、ＤＶＤ±ＲＷ、メモリディスク、ＳＲＡＭ、ＲＯＭなど）を表す。
【００９６】
外部記録部総容量及び外部記録部使用量は、それぞれ外部記録部ＩＤによって識別される外部記録部２８の総容量及び現在使用中の容量を表す。
【００９７】
外部記録部ＩＤ、外部記録部種別ＩＤ、外部記録部総容量及び外部記録部使用量は、１つの外部記録部２８に対して１組設定されるものであり、当該情報処理コントローラに接続されている外部記録部２８の数の組数だけ設定される。すなわち、１つの情報処理コントローラに複数の外部記録部が接続されている場合、それぞれの外部記録部には異なる外部記録部ＩＤが割り当てられ、外部記録部種別ＩＤ、外部記録部総容量及び外部記録部使用量も別々に管理される。
【００９８】
Ａ−４ソフトウェアセルの実行
ある情報処理装置内の情報処理コントローラに含まれるメインプロセッサ２１は、上述したような構成のソフトウェアセルを生成し、ネットワーク９を介して他の情報処理装置及び当該装置内の情報処理コントローラに送信する。送信元の情報処理装置、送信先の情報処理装置、応答先の情報処理装置、及び各装置内の情報処理コントローラは、それぞれ、上記の送信元ＩＤ、送信先ＩＤ及び応答先ＩＤによって識別される。
【００９９】
ソフトウェアセルを受信した情報処理装置内の情報処理コントローラに含まれるメインプロセッサ２１は、そのソフトウェアセルをメインメモリ２６に格納する。さらに、送信先のメインプロセッサ２１は、ソフトウェアセルを読み出し、それに含まれるＤＭＡコマンドを処理する。
【０１００】
具体的には、送信先のメインプロセッサ２１は、まず、ロードコマンドを実行する。これによって、ロードコマンドで指示されたメインメモリアドレスから、ロードコマンドに含まれるサブプロセッサＩＤ及びＬＳアドレスで特定されるサブプロセッサ内のＬＳ２４の所定領域に情報がロードされる。ここでロードされる情報は、受信したソフトウェアセルに含まれるサブプロセッサプログラム又はデータ、あるいはその他の指示されたデータである。
【０１０１】
次に、メインプロセッサ２１は、キックコマンドを、これに含まれるサブプロセッサＩＤで指示されたサブプロセッサに、同様にキックコマンドに含まれるプログラムカウンタとともに出力する。
【０１０２】
指示されたサブプロセッサは、そのキックコマンド及びプログラムカウンタに従って、サブプロセッサプログラムを実行する。そして、実行結果をメインメモリ２６に格納した後、実行を完了したことをメインプロセッサ２１に通知する。
【０１０３】
なお、送信先の情報処理装置内の情報処理コントローラにおいてソフトウェアセルを実行するプロセッサはサブプロセッサ２３に限定されるものではなく、メインプロセッサ２１がソフトウェアセルに含まれる機能プログラムなどのメインメモリ用プログラムを実行するように指定することも可能である。
【０１０４】
この場合には、送信元の情報処理装置は、送信先の情報処理装置宛に、サブプロセッサプログラムの代わりに、メインメモリ用プログラム及びそのメインメモリ用プログラムによって処理されるデータを含み、ＤＭＡコマンドがロードコマンドであるソフトウェアセルを送信し、メインメモリ２６にメインメモリ用プログラム及びそれによって処理されるデータを記憶させる。
【０１０５】
次に、送信元の情報処理装置は、送信先の情報処理装置宛てに、送信先の情報処理装置内の情報処理コントローラについてのメインプロセッサＩＤ、メインメモリ・アドレス、メインメモリ用プログラムを識別するための後述の機能プログラムＩＤなどの識別子、及びプログラムカウンタを含み、ＤＭＡコマンドがキックコマンド又は機能プログラム実行コマンドであるソフトウェアセルを送信し、メインプロセッサ２１に当該メインメモリ用プログラムを実行させる。
【０１０６】
以上のように、本実施形態に係るネットワークシステムでは、送信元の情報処理装置は、サブプロセッサプログラム又はメインメモリ用プログラムをソフトウェアセルによって送信先の情報処理装置に送信するとともに、当該サブプロセッサプログラムを送信先の情報処理装置内の情報処理コントローラに含まれるサブプロセッサ２３にロードさせ、当該サブプロセッサプログラム又は当該メインメモリ用プログラムを送信先の情報処理装置に実行させることができる。
【０１０７】
送信先の情報処理装置内の情報処理コントローラでは、受信したソフトウェアセルに含まれるプログラムがサブプロセッサプログラムである場合には、当該サブプロセッサプログラムを指定されたサブプロセッサにロードさせる。そして、ソフトウェアセルに含まれるサブプロセッサプログラム又はメインメモリ用プログラムを実行させる。
【０１０８】
したがって、ユーザが送信先の情報処理装置を操作しなくても、当該サブプロセッサプログラム又は当該メインメモリ用プログラムを送信先の情報処理装置内の情報処理コントローラにおいて自動的に実行させることができる。
【０１０９】
このようにして情報処理装置は、自装置内の情報処理コントローラがサブプロセッサプログラム又は機能プログラムなどのメインメモリ用プログラムを備えていない場合には、ネットワークに接続された他の情報処理装置からそれらを取得することができる。さらに、各サブプロセッサ間ではＤＭＡ方式によりデータ転送を行い、また上述したサンドボックスを使用することにより、１つの情報処理コントローラ内でデータを多段階に処理する必要がある場合でも、高速且つ高セキュリティに処理を実行することができる。
【０１１０】
Ａ−５．ネットワークシステムとしての分散処理
図５には、複数の情報処理装置が仮想的な１台の情報処理装置として動作している様子を示している。ソフトウェアセルの使用による分散処理の結果、同図の上段に示すように、ネットワーク９に接続されている複数の情報処理装置１、２、３、４は、同図の下段に示すように、仮想的な１台の情報処理装置７として動作する。但し、このような仮想的な動作を実現するためには、以下のような構成によって、以下のような処理が実行される必要がある。
【０１１１】
Ａ−６．システムのソフトウェア構成とプログラムのロード
図６には、個々の情報処理コントローラのメインメモリ２６が記憶するソフトウェアの構成を示している。これらのソフトウェア（プログラム）は、情報処理装置に電源が投入される前に、当該の情報処理コントローラに接続される外部記録部２８に記録されているものである。各プログラムは、機能又は特徴により、制御プログラム、機能プログラム及びデバイスドライバに分類される。
【０１１２】
制御プログラムは、各情報処理コントローラが同じものを備え、各情報処理コントローラのメインプロセッサ２１が実行するもので、後述のＭＳ（マスター／スレーブ）マネージャ及び能力交換プログラムを含む。
【０１１３】
機能プログラムは、メインプロセッサ２１が実行するもので、記録用、再生用、素材検索用など、情報処理コントローラ毎に情報処理装置に応じたものが備えられる。
【０１１４】
デバイスドライバは、情報処理コントローラ（情報処理装置）の入出力（送受信）用で、放送受信、モニタ出力、ビットストリーム入出力、ネットワーク入出力など、情報処理コントローラ毎に情報処理装置に応じたものが備えられる。
【０１１５】
ケーブルの差し込みなどによって情報処理装置が物理的にネットワーク９に接続された状態で、情報処理装置に主電源が投入され、情報処理装置が電気的・機能的にもネットワーク９に接続されると、その情報処理装置の情報処理コントローラのメインプロセッサ２１は、制御プログラムに属する各プログラム、及びデバイスドライバに属する各プログラムを、メインメモリ２６にロードする。
【０１１６】
プログラムのロード手順としては、メインプロセッサ２１は、まず、ＤＣ２７に読み出し命令を実行させることによって、外部記録部２８からプログラムを読み出し、次に、ＤＭＡＣ２５に書き込み命令を実行させることによって、そのプログラムをメインメモリ２６に書き込む。
【０１１７】
機能プログラムに属する各プログラムについては、必要なときに必要なプログラムだけをメモリにロードするように構成してもよく、あるいは他のカテゴリに属するプログラムと同様に、主電源投入直後に各プログラムをロードするように構成してもよい。
【０１１８】
機能プログラムに属する各プログラムは、ネットワークに接続されたすべての情報処理装置の外部記録部２８に記録されている必要はなく、いずれか１つの情報処理装置の外部記録部２８に記録されていれば、前述の方法によって他の情報処理装置からロードすることができるので、結果的に図５の下段に示すように、仮想的な１台の情報処理装置７として機能プログラムを実行することができる。
【０１１９】
ここで、前述したようにメインプロセッサ２１によって処理される機能プログラムは、サブプロセッサ２３によって処理されるサブプロセッサプログラムと連携動作する場合がある。そこでメインプロセッサ２１が外部記録部２８から機能プログラムを読み出し、メインメモリ２６に書き込む際に対象となる機能プログラムと連携動作するサブプロセッサプログラムが存在する場合には、当該サブプロセッサプログラムも併せて同じメインメモリ２６に書き込むものとする。この場合、連携動作するサブプロセッサプログラムは１個である場合もあるし、複数個であることもあり得る。複数個である場合には、すべての連携動作するサブプロセッサプログラムをメインメモリ２６に書き込むことになる。メインメモリ２６に書き込まれたサブプロセッサプログラムはその後、サブプロセッサ２３内のＬＳ２４に書き込まれ、メインプロセッサ２１によって処理される機能プログラムと連携動作する。
【０１２０】
そして、サブプロセッサプログラムにもサブプロセッサプログラムＩＤが割り当てられ、これによりサブプロセッサプログラムを一意的に識別可能である。割り当てられるサブプロセッサプログラムＩＤは、連携動作する相手となる機能プログラムの機能プログラムＩＤと関連性のある識別子、例えば機能プログラムＩＤを親番号とした上で最後尾に枝番号を付加させたものなどであることもあり得るし、連携動作する相手となる機能プログラムの機能プログラムＩＤとは関連性のない識別子であってもよい。いずれにしても機能プログラムとサブプロセッサプログラムが連携動作する場合には、両者とも相手の識別子であるプログラムＩＤを自プログラム内に互いに記憶しておく必要がある。機能プログラムが複数個のサブプロセッサプログラムと連携動作する場合にも、当該機能プログラムは複数個あるすべてのサブプロセッサプログラムのサブプロセッサプログラムＩＤを記憶しておくことになる。
【０１２１】
図３のソフトウェアセルに示したように、機能プログラムには、プログラム毎にプログラムを一意的に識別できる識別子が機能プログラムＩＤとして割り当てられる。機能プログラムＩＤは、機能プログラムの作成の段階で、作成日時や情報処理装置ＩＤなどから決定される。
【０１２２】
メインプロセッサ２１は、自身が動作する情報処理装置の装置情報（動作状態に関する情報）を格納するための領域をメインメモリ２６に確保し、当該情報を自装置の装置情報テーブルとして記録する。ここで言う装置情報は、図４に示したステータス返信コマンドのデータ領域における情報処理装置ＩＤ以下の各情報である。
【０１２３】
Ａ−７．システムにおけるマスター／スレーブの決定
上述したネットワークシステムでは、ある情報処理装置への主電源投入時、その情報処理装置の情報処理コントローラのメインプロセッサ２１は、マスター／スレーブマネージャ（以下、ＭＳマネージャ）をメインメモリ２６にロードし、実行する。
【０１２４】
ＭＳマネージャは、自身が動作する情報処理装置がネットワーク９に接続されていることを検知すると、同じネットワーク９に接続されている他の情報処理装置の存在を確認する。ここでの「接続」又は「存在」は、上述したように、情報処理装置が物理的にネットワーク９に接続されているだけでなく、電気的・機能的にもネットワーク９に接続されていることを示す。
【０１２５】
また、自身が動作する情報処理装置を自装置、他の情報処理装置を他装置と称する。当該装置も、当該情報処理装置を示すものとする。
【０１２６】
ＭＳマネージャが同じネットワーク９に接続されている他の情報処理装置の存在を確認する方法について以下に説明する。
【０１２７】
ＭＳマネージャは、ＤＭＡコマンドがステータス要求コマンドであり、送信元ＩＤ及び応答先ＩＤが当該情報処理装置で、送信先ＩＤを特定しないソフトウェアセルを生成し、当該情報処理装置が接続されたネットワーク上に送信し、ネットワーク接続確認用のタイマーを設定する。タイマーのタイムアウト時間は、例えば１０分である。
【０１２８】
当該ネットワークシステム上に他の情報処理装置が接続されている場合、その他装置は、上記ステータス要求コマンドのソフトウェアセルを受信し、上記応答先ＩＤで特定されるステータス要求コマンドを発行した情報処理装置に対して、ＤＭＡコマンドがステータス返信コマンドで、且つデータとして自身（その他装置）の装置情報を含むソフトウェアセルを送信する。このステータス返信コマンドのソフトウェアセルには、少なくとも当該他装置を特定する情報（情報処理装置ＩＤ、メインプロセッサに関する情報、サブプロセッサに関する情報など）、及び当該他装置のＭＳステータスが含まれる。
【０１２９】
ステータス要求コマンドを発行した情報処理装置のＭＳマネージャは、上記ネットワーク接続確認用のタイマーがタイムアウトするまで、当該ネットワーク上の他装置から送信されるステータス返信コマンドのソフトウェアセルの受信を監視する。その結果、ＭＳステータス＝０（マスター装置）を示すステータス返信コマンドが受信された場合には、自装置の装置情報テーブルにおけるＭＳステータスを１に設定する。これによって、当該装置はスレーブ装置となる。
【０１３０】
一方、上記ネットワーク接続確認用のタイマーがタイムアウトするまでの間にステータス返信コマンドがまったく受信されなかった場合、又はＭＳステータス＝０（マスター装置）を示すステータス返信コマンドが受信されなかった場合には、自装置の装置情報テーブルにおけるＭＳステータスを０に設定する。これによって、当該装置はマスター装置となる。
【０１３１】
すなわち、いずれの装置もネットワーク９に接続されていない状態、又はネットワーク９上にマスター装置が存在しない状態において、新たな情報処理装置がネットワーク９に接続されると、当該装置は自動的にマスター装置として設定される。一方、ネットワーク９上に既にマスター装置が存在する状態において、新たな情報処理装置がネットワーク９に接続されると、当該装置は自動的にスレーブ装置として設定される。
【０１３２】
マスター装置及びスレーブ装置のいずれについても、ＭＳマネージャは、定期的にステータス要求コマンドをネットワーク９上の他装置に送信してステータス情報を照会することにより、他装置の状況を監視する。この結果、ネットワーク９に接続されている情報処理装置の主電源が遮断され、又はネットワーク９から情報処理装置が切り離されることにより、あらかじめ判定用に設定された所定期間内に特定の他装置からステータス返信コマンドが返信されなかった場合や、ネットワーク９に新たな情報処理装置が接続された場合など、ネットワーク９の接続状態に変化があった場合には、その情報を後述の能力交換プログラムに通知する。
【０１３３】
Ａ−８．マスター装置及びスレーブ装置における装置情報の取得
メインプロセッサ２１は、ＭＳマネージャから、ネットワーク９に接続された他の情報処理装置の照会及び自装置のＭＳステータスの設定完了の通知を受けると、能力交換プログラムを実行する。
【０１３４】
能力交換プログラムは、自装置がマスター装置である場合には、ネットワーク９に接続されている他のすべての情報処理装置についての装置情報、すなわち各スレーブ装置の装置情報を取得する。
【０１３５】
他装置の装置情報の取得は、上述したように、ＤＭＡコマンドがステータス要求コマンドであるソフトウェアセルを生成して他装置に送信し、その後、ＤＭＡコマンドがステータス返信コマンドで、且つデータとして他装置の装置情報を含むソフトウェアセルを他装置から受信することによって可能である。
【０１３６】
能力交換プログラムは、マスター装置である自装置の装置情報テーブルと同様に、ネットワーク９に接続されている他のすべての装置（各スレーブ装置）についての装置情報を格納するための領域を自装置のメインメモリ２６に確保し、これら情報を他装置（スレーブ装置）の装置情報テーブルとして記録する。すなわち、マスター装置のメインメモリ２６には、自装置を含むネットワーク９に接続されているすべての情報処理装置の装置情報が装置情報テーブルとして記録される。
【０１３７】
一方、能力交換プログラムは、自装置がスレーブ装置である場合には、ネットワーク９に接続されている他のすべての装置についての装置情報、すなわちマスター装置及び自装置以外の各スレーブ装置の装置情報を取得し、これら装置情報に含まれる情報処理装置ＩＤ及びＭＳステータスを、自装置のメインメモリ２６に記録する。すなわち、スレーブ装置のメインメモリ２６には、自装置の装置情報が、装置情報テーブルとして記録されるとともに、自装置以外のネットワーク９に接続されているマスター装置及び各スレーブ装置についての情報処理装置ＩＤ及びＭＳステータスが、別の装置情報テーブルとして記録される。
【０１３８】
また、マスター装置及びスレーブ装置のいずれについても、能力交換プログラムは、上記のようにＭＳマネージャから、新たにネットワーク９に情報処理装置が接続されたことが通知されたときには、その情報処理装置の装置情報を取得し、上述したようにメインメモリ２６に記録する。
【０１３９】
なお、ＭＳマネージャ及び能力交換プログラムは、メインプロセッサ２１で実行されることに限らず、いずれかのサブプロセッサ２３で実行されてもよい。また、ＭＳマネージャ及び能力交換プログラムは、情報処理装置の主電源が投入されている間は常時動作する常駐プログラムであることが望ましい。
【０１４０】
Ａ−９．情報処理装置がネットワークから切断された場合
マスター装置及びスレーブ装置のいずれについても、能力交換プログラムは、上記のようにＭＳマネージャから、ネットワーク９に接続されている情報処理装置の主電源が遮断され、又はネットワーク９から情報処理装置が切り離されたことが通知されたときには、その情報処理装置の装置情報テーブルを自装置のメインメモリ２６から削除する。
【０１４１】
さらに、このようにネットワーク９から切断された情報処理装置がマスター装置である場合には、以下のような方法によって、新たにマスター装置が決定される。
【０１４２】
例えば、ネットワーク９から切断されていない情報処理装置は、それぞれ、自装置及び他装置の情報処理装置ＩＤを数値に置き換え、自装置の情報処理装置ＩＤを他装置の情報処理装置ＩＤと比較し、自装置の情報処理装置ＩＤがネットワーク９から切断されていない情報処理装置中で最小である場合、そのスレーブ装置は、マスター装置に移行し、ＭＳステータスを０に設定し、マスター装置として、上述したように、ネットワーク９に接続されている他のすべての情報処理装置（各スレーブ装置）から装置情報を取得して、メインメモリ２６に記録する。
【０１４３】
Ａ−１０．装置情報に基づく分散処理
図５の下段に示したようにネットワーク９に接続されている複数の情報処理装置１、２、３、４を仮想的な１台の情報処理装置７として動作させるためには、マスター装置がユーザの操作及びスレーブ装置の動作状態を把握する必要がある。
【０１４４】
図７には、４台の情報処理装置が仮想的な１台の情報処理装置７として動作する様子を示している。図示の例では、情報処理装置１がマスター装置、情報処理装置２、３、４がスレーブ装置Ａ、Ｂ、Ｃとしてそれぞれ動作しているものとする。
【０１４５】
ユーザがネットワーク９に接続されている情報処理装置を操作した場合、操作対象がマスター装置１であれば、その操作情報はマスター装置１において直接把握される。また、操作対象がスレーブ装置であれば、その操作情報は操作されたスレーブ装置からマスター装置１に送信される。すなわち、ユーザの操作対象がマスター装置１とスレーブ装置のいずれであるかにかかわらず、その操作情報は常にマスター装置１において把握される。操作情報の送信は、例えば、ＤＭＡコマンドが操作情報送信コマンドであるソフトウェアセルによって行なわれる。
【０１４６】
そして、マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、その操作情報に従って、実行する機能プログラムを選択する。その際、必要であれば、マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、上記の方法によって自装置の外部記録部２８−１、２８−２からメインメモリ２６−１に機能プログラムをロードするが、他の情報処理装置（スレーブ装置）がマスター装置１に機能プログラムを送信してもよい。
【０１４７】
機能プログラムには、その実行単位毎に必要となる、情報処理装置種別ＩＤ、メインプロセッサ又はサブプロセッサの処理能力、メインメモリ使用量、外部記録部に関する条件などの装置に関する要求スペック（図４を参照のこと）が規定されている。
【０１４８】
マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、各機能プログラムについて必要となる上記の要求スペックを読み出す。また、あらかじめ能力交換プログラムによってメインメモリ２６−１に記録された装置情報テーブルを参照し、各情報処理装置の装置情報を読み出す。ここでの装置情報は、図４に示した情報処理装置ＩＤ以下の各情報を示し、メインプロセッサ、サブプロセッサ、メインメモリ及び外部記録部に関する情報である。
【０１４９】
マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、ネットワーク９上に接続された各情報処理装置の上記装置情報と、機能プログラム実行に必要となる上記要求スペックとを順次比較する。
【０１５０】
例えば、機能プログラムが録画機能を必要とする場合には、情報処理装置種別ＩＤに基づいて、録画機能を有する情報処理装置のみを特定して抽出する。さらに、機能プログラムを実行するために必要なメインプロセッサ又はサブプロセッサの処理能力、メインメモリ使用量、外部記録部に関する条件を確保できるスレーブ装置を、実行要求候補装置として特定する。ここで、複数の実行要求候補装置が特定された場合には、当該候補装置から１つの実行要求候補装置を特定して選択する。
【０１５１】
実行要求するスレーブ装置が特定されたら、マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、その特定されたスレーブ装置について、自装置内の情報処理コントローラ１１に含まれるメインメモリ２６−１に記録されている当該スレーブ装置の装置情報テーブルを更新する。
【０１５２】
さらに、マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、ＤＭＡコマンドが機能プログラム実行コマンドであるソフトウェアセルを生成し、当該ソフトウェアセルのセルインターフェースに、当該機能プログラムに関する必要なサブプロセッサの情報及びサンドボックスサイズ（図３を参照のこと）を設定し、上記実行要求されるスレーブ装置に対して送信する。
【０１５３】
機能プログラムの実行を要求されたスレーブ装置は、その機能プログラムを実行するとともに、自装置の装置情報テーブルを更新する。その際、必要であれば、スレーブ装置内の情報処理コントローラに含まれるメインプロセッサ２１は、上記の方法によって自装置の外部記録部２８からメインメモリ２６に機能プログラム及び当該機能プログラムと連携動作するサブプロセッサプログラムをロードする。
【０１５４】
機能プログラムの実行を要求されたスレーブ装置の外部記録部２８に必要な機能プログラム又は当該機能プログラムと連携動作するサブプロセッサプログラムが記録されていない場合には、他の情報処理装置が当該機能プログラム又はサブプロセッサプログラムをその機能プログラム実行要求先スレーブ装置に送信するように、システムを構成すればよい。
【０１５５】
サブプロセッサプログラムについては、前述のロードコマンド及びキックコマンドを利用して他の情報処理装置に実行させることもできる。
【０１５６】
機能プログラムの実行終了後、機能プログラムを実行したスレーブ装置内の情報処理コントローラに含まれるメインプロセッサ２１は、終了通知をマスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１に送信するとともに、自装置の装置情報テーブルを更新する。マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、その終了通知を受信して、機能プログラムを実行したスレーブ装置の装置情報テーブルを更新する。
【０１５７】
マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、自装置及び他装置の装置情報テーブルの参照結果から、当該の機能プログラムを実行することができる情報処理装置として、自身を選択する場合もあり得る。その場合には、マスター装置１が当該の機能プログラムを実行する。
【０１５８】
図７に示した例で、ユーザがスレーブ装置Ａ（情報処理装置２）を操作し、当該操作に応じた機能プログラムを別のスレーブ装置Ｂ（情報処理装置３）が実行する場合の分散処理について、図８を参照しながら説明する。
【０１５９】
図８に示す例では、ユーザがスレーブ装置Ａを操作することにより、スレーブ装置Ａを含むネットワークシステム全体の分散処理が開始し、まず、スレーブ装置Ａは、その操作情報をマスター装置１に送信する（ステップ８１）。
【０１６０】
マスター装置１は、その操作情報を受信し（ステップ７２）、さらに自装置のメインメモリ２６−１に記録されている自装置及び他装置の装置情報テーブルから各情報処理装置の動作状態を調べ、受信した操作情報に応じた機能プログラムを実行することができる情報処理装置を選択する（ステップ７３）。図示の例では、スレーブ装置Ｂが選択される場合を示している。
【０１６１】
次に、マスター装置１は、その選択したスレーブ装置Ｂに対して機能プログラムの実行を要求する（ステップ７４）。
【０１６２】
スレーブ装置Ｂは、その実行要求を受信し（ステップ９５）、さらに、実行要求された機能プログラムを実行する（ステップ９６）。
【０１６３】
以上のように、ユーザは、１台の情報処理装置のみを操作することによって、他の情報処理装置を操作することなく、複数の情報処理装置１、２、３、４を仮想的な１台の情報処理装置７として動作させることができる。
【０１６４】
Ａ−１１．各情報処理装置及びシステムの具体例
ネットワーク９を介して互いに接続される情報処理装置１、２、３、４は、上記のような情報処理コントローラ１１、１２、１３、１４によって情報処理を行なうものであれば、基本的にはどのような構成でもよい。図９には、情報処理装置の一構成例を示している。
【０１６５】
情報処理コントローラ１１を備える情報処理装置１の一例は、ハードディスクレコーダである。図１０並びに図１１には、同図中のハードディスクレコーダのハードウェア構成及びソフトウェア構成をそれぞれ示している。ハードディスクレコーダのハードウェア構成としては、図１に示した外部記録部２８−１としてハードディスクを内蔵し、図１に示した外部記録部２８−２としてＤＶＤ±Ｒ／ＲＷ、ＣＤ±Ｒ／ＲＷ、Ｂｌｕｒａｙ−Ｄｉｓｃ（登録商標）などの光ディスクを装着できるように構成されるとともに、情報処理コントローラ１１のバス２９−１に接続されたバス３１−１に、放送受信部３２−１、映像入力部３３−１、音声入力部３４−１、映像出力部３５−１、音声出力部３６−１、操作パネル部３７−１、リモコン受光部３８−１及びネットワーク接続部３９−１が接続されている。
【０１６６】
放送受信部３２−１、映像入力部３３−１及び音声入力部３４−１は、放送信号を受信し、又は情報処理装置１の外部から映像信号及び音声信号を入力し、それぞれ所定フォーマットのデジタルデータに変換し、情報処理コントローラ１１での処理のためにバス３１−１に送出する。映像出力部３５−１及び音声出力部３６−１は、情報処理コントローラ１１からバス３１−１に送出された映像データ及び音声データを処理して、デジタルデータのまま、又はアナログ信号に変換して、情報処理装置１の外部に送出するものであり、リモコン受光部３８−１は、リモコン送信器４３−１からのリモコン（遠隔操作）赤外線信号を受信する。
【０１６７】
図９及び図１０に示すように、情報処理装置（ハードディスクレコーダ）１の映像出力部３５−１及び音声出力部３６−１には、モニタ表示装置４１及びスピーカ装置４２が接続される。
【０１６８】
図９に例示した情報処理コントローラ１２を備える情報処理装置２も、ハードディスクレコーダで、図１０において括弧内に参照番号を付して示すように、情報処理装置１と同様に構成される。但し、図９に示すように、情報処理装置（ハードディスクレコーダ）２には、モニタ表示装置及びスピーカ装置は接続されない。
【０１６９】
情報処理装置（ハードディスクレコーダ）１及び２、すなわち情報処理コントローラ１１及び１２のソフトウェア構成としては、図１１に示すように、制御プログラムとして、ＭＳマネージャ及び能力交換プログラムを備え、機能プログラムとして、映像音声記録、映像音声再生、素材検索及び番組録画予約のためのプログラムを備え、デバイスドライバとして、放送受信、映像出力、音声出力、外部記録部入出力及びネットワーク入出力のためのプログラムを備える。
【０１７０】
また、情報処理コントローラ１３を備える情報処理装置３の他の例は、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔｓ）である。図１２には、ＰＤＡとして構成される情報処理装置３のハードウェア構成を示している。同図に示す例では、図１に示した外部記録部２８−５として、メモリカードディスクを装着できるように構成され、情報処理コントローラ１３のバス２９−３に接続されたバス５１に、液晶表示部５２、音声出力部５３、カメラ部５４、音声入力部５５、キーボード部５６及びネットワーク接続部５７が接続されている。
【０１７１】
なお、図１では内部を省略した情報処理コントローラ１３は、メインプロセッサ２１−３、サブプロセッサ２３−７、２３−８、２３−９、ＤＭＡＣ（ダイレクトメモリアクセスコントローラ）２５−３、ＤＣ（ディスクコントローラ）２７−３及びバス２９−３を備え、そのメインプロセッサ２１−３は、ＬＳ（ローカル・ストレージ）２２−３を有し、各サブプロセッサ２３−７、２３−８、２３−９は、ＬＳ（ローカル・ストレージ）２４−７、２４−８、２４−９を備えている。
【０１７２】
また、図１３には、情報処理装置（ＰＤＡ）３、すなわち情報処理コントローラ１３のソフトウェア構成を示している。同図に示すように、制御プログラムとして、ＭＳマネージャ及び能力交換プログラムを備え、機能プログラムとして、映像音声記録、映像音声再生、電話帳、ワープロ及び表計算のためのプログラム、及びＷｅｂブラウザを備え、デバイスドライバとして、映像出力、音声出力、カメラ映像入力、マイク音声入力及びネットワーク入出力のためのプログラムを備えている。
【０１７３】
また、情報処理コントローラ１４を備える情報処理装置４は、ポータブルＣＤプレーヤである。図１４には、ポータブルＣＤプレーヤのハードウェア構成を示している。図示の例では、ポータブルＣＤプレーヤは、図１に示した外部記録部２８−６として、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）を装着できるように構成され、情報処理コントローラ１４のバス２９−４に接続されたバス６１に、液晶表示部６２、音声出力部６３、操作ボタン部６４及びネットワーク接続部６５が接続されている。
【０１７４】
なお、図１では内部を省略した情報処理コントローラ１４は、メインプロセッサ２１−４、サブプロセッサ２３−１０、２３−１１、２３−１２、ＤＭＡＣ２５−４、ＤＣ２７−４及びバス２９−４を備え、そのメインプロセッサ２１−４は、ＬＳ２２−４を有し、各サブプロセッサ２３−１０、２３−１１、２３−１２は、ＬＳ２４−１０、２４−１１、２４−１２を有する。
【０１７５】
図１５には、情報処理装置（ポータブルＣＤプレーヤ）４、すなわち情報処理コントローラ１４のソフトウェア構成を示している。図示のように、制御プログラムとして、ＭＳマネージャ及び能力交換プログラムを備え、機能プログラムとして、音楽再生のためのプログラムを備え、デバイスドライバとして、音声出力、ＣＤ制御及びネットワーク入出力のためのプログラムを備える。
【０１７６】
図９に例示したネットワークシステムでは、情報処理装置１、３及び４がネットワーク９上に接続されており、情報処理装置１がマスター装置（ＭＳステータス＝０）として、情報処理装置３及び４がスレーブ装置（ＭＳステータス＝１）として、設定されているものとする。
【０１７７】
この状態で、新たに情報処理装置２がネットワーク９に接続されると、上述した方法によって、情報処理装置２内の情報処理コントローラ１２に含まれるメインプロセッサ２１−２で実行されているＭＳマネージャは、他の情報処理装置１、３及び４にＭＳステータスを照会して、情報処理装置１が既にマスター装置として存在することを認識し、自装置（情報処理装置２）をスレーブ装置（ＭＳステータス＝１）に設定する。また、マスター装置に設定されている情報処理装置１は、新たに追加された情報処理装置２を含む各装置の装置情報を収集して、メインメモリ２６−１内の装置情報テーブルを更新する。
【０１７８】
このような状態で、ユーザによってスレーブ装置である情報処理装置（ＰＤＡ）３で２時間の放送番組を録画予約するための操作が行なわれた場合について、以下に説明する。
【０１７９】
この場合、スレーブ装置である情報処理装置（ＰＤＡ）３は、ユーザから録画開始時刻、録画終了時刻、録画対象放送チャネル、録画品質などの情報を含む録画予約情報の入力を受け付け、当該録画予約情報及びＤＭＡコマンドとしての録画予約コマンドを含むソフトウェアセルを生成して、マスター装置である情報処理装置１に送信する。
【０１８０】
ＤＭＡコマンドが録画予約コマンドであるソフトウェアセルを受信した情報処理装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、録画予約コマンドを読み出すとともに、メインメモリ２６−１内の装置情報テーブルを参照し、当該録画予約コマンドを実行可能な情報処理装置を特定する。
【０１８１】
まず、メインプロセッサ２１−１は、装置情報テーブルに含まれる各情報処理装置１、２、３、４の情報処理装置種別ＩＤを読み出して、録画予約コマンドに対応する機能プログラムを実行可能な情報処理装置を抽出する。ここでは、録画機能を示す情報処理装置種別ＩＤを有する情報処理装置１、２が候補装置として特定され、情報処理装置３、４は候補装置から除外される。
【０１８２】
次に、マスター装置である情報処理装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、装置情報テーブルを参照して、情報処理装置１、２のメインプロセッサ又はサブプロセッサの処理能力、メインメモリに関する情報などの装置に関する情報を読み出し、情報処理装置１、２が録画予約コマンドに対応する機能プログラムの実行に必要な要求スペックを満足するか否かを判断する。ここでは、情報処理装置１、２とも、録画予約コマンドに対応する機能プログラムの実行に必要な要求スペックを満足するものとする。
【０１８３】
さらに、メインプロセッサ２１−１は、装置情報テーブルを参照して、情報処理装置１、２の外部記録部に関する情報を読み出し、外部記録部の空き容量が当該録画予約コマンドの実行に必要な容量を満足するか否かを判断する。情報処理装置１、２はハードディスクレコーダであるので、それぞれハードディスク２８−１、２８−３の、総容量と使用量との差分が、それぞれの空き容量に相当する。
【０１８４】
この場合、情報処理装置１のハードディスク２８−１の空き容量が、録画時間に換算して１０分であり、情報処理装置２のハードディスク２８−３の空き容量が、録画時間に換算して２０時間であるとする。
【０１８５】
このとき、マスター装置である情報処理装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、当該録画予約コマンドの実行に必要な２時間分の空き容量を確保できる情報処理装置を、実行要求先スレーブ装置として特定する。
【０１８６】
その結果、情報処理装置２のみが実行要求先スレーブ装置として選択され、マスター装置である情報処理装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、ユーザにより操作された情報処理装置３から送信された録画予約情報を含む当該録画予約コマンドを情報処理装置２に送信して、上記２時間の放送番組の録画予約の実行を要求する。
【０１８７】
そして、情報処理装置２内の情報処理コントローラ１２に含まれるメインプロセッサ２１−２は、当該録画予約コマンドを解析して、録画に必要な機能プログラムを外部記録部であるハードディスク２８−３からメインメモリ２６−２にロードし、録画予約情報に従って録画を実行する。その結果、録画予約された２時間の放送番組の映像音声データが情報処理装置２のハードディスク２８−３に記録される。
【０１８８】
このように、図９の例のネットワークシステムにおいても、ユーザは、１台の情報処理装置のみを操作することによって、他の情報処理装置を操作することなく、複数の情報処理装置１、２、３、４を仮想的な１台の情報処理装置７として動作させることができる。
【０１８９】
Ｂ．仮想的な１台の情報処理装置における拡張機能の実現
上述したように、本発明によれば、ネットワーク接続された複数の情報処理装置が互いに連携することで１台の仮想的な情報処理装置を実現することができる。本発明のさらなる実施形態として、各情報処理装置の総和として構成される仮想情報処理装置において、各機能の実行に必要な性能情報を取得する手段を設けることができる。このようなシステムの性能情報を取得する手段によれば、仮想的な１台の情報処理装置における余剰の処理能力を容易に把握するとともに、複数の情報処理装置の連携により実行が可能となる拡張機能を容易且つ効率的に利用することができ、ユーザの利便性を向上することができる。
【０１９０】
図１６には、本発明の一実施形態に係るネットワークシステムの構成を模式的に示している。図示のネットワークシステムは、ホームネットワークなどのローカルネットワーク３０により相互接続された複数の情報処理装置１０、１１…が互いに連携することで１台の仮想的な情報処理装置２０を構築している。
【０１９１】
情報処理装置１０、１１…のうち１台はマスター装置として動作し、それ以外はすべてスレーブ装置として動作する（前述）。
【０１９２】
仮想情報処理装置２０は、各情報処理装置の総和として構成されるシステムにおいて、各機能の実行に必要な性能情報を取得する手段を備えている。具体的には、マスター装置として動作する情報処理装置が主体となってこの手段を実現する。
【０１９３】
仮想情報処理装置２０は、インターネットなどの通信ネットワーク４０経由でサーバ５０に接続することが可能である。サーバ５０は、さまざまの情報を公開することができるが、本実施形態では、特に機能情報データベース６０や、ソフトウェア・データベース６１を装備している。
【０１９４】
仮想情報処理装置２０は、目的とするデータやソフトウェアなどをサーバ５０から取得することが可能である。仮想情報処理装置２０は、サーバ５０から得られた情報に基づいて、現在使用可能な機能の一覧や、新たな情報処理装置の接続によっては使用可能になる機能の一覧などを適宜ユーザに提示することができる。データベースの内容がリアルタイム若しくは所定のタイミングで最新のものに更新されることにより、ユーザの利便性はさらに高まる。
【０１９５】
但し、この種のデータベースやサーバの存在は、本発明を実現する上で必須の構成要件ではなく、例えば、情報処理装置情報を検索・抽出するために使用するデータベースが仮想情報処理装置２０内に配設され、あるいはその他の形態で仮想情報処理装置２０に提供される構成であってもよい。
【０１９６】
各情報処理装置１０、１１…のハードウェア構成は、図１、図１０、図１２、図１４などに示した通りである。すなわち、個々の現実の情報処理装置１０、１１…は、１つのメインプロセッサ、１以上のサブプロセッサ、ＤＭＡＣ（ダイレクトメモリアクセスコントローラ）、ＤＣ（ディスクコントローラ）、ＤＲＡＭなどで構成されるメインメモリ、外部記録装置などを装備している。
【０１９７】
各情報処理装置１０、１１…は、ローカルネットワーク３０経由で相互接続されている他の情報処理装置と連携し、ＭＳマネージャ並びに能力交換プログラム（前述）の起動などを経て、仮想情報処理装置２０を構築することが可能である。この仮想情報処理装置２０を構築する過程で、各情報処理装置１０、１１…はそれぞれ自己の装置情報を取得することができる。
【０１９８】
図１７には装置情報の構成例を示している。
【０１９９】
情報処理装置ＩＤは、情報処理コントローラを備える情報処理装置を識別するための識別子であり、ステータス返信コマンドを送信する情報処理装置のＩＤを示す。
【０２００】
情報処理装置種別ＩＤには、当該情報処理装置の特徴を表す値が含まれる。ここで言う情報処理装置の特徴とは、例えば、ハードディスクレコーダ、ＰＤＡ、ポータブルＣＤプレーヤなどである。また、情報処理装置種別ＩＤは、映像音声記録、映像音声再生など、情報処理装置が持つ機能を表すものであってもよい、情報処理装置の特徴や機能を表す値はあらかじめ決められているものとし、情報処理装置種別ＩＤを呼び出すことにより当該情報処理装置の特徴や機能を把握することが可能である。
【０２０１】
ＭＳステータスは、情報処理装置がマスター装置又はスレーブ装置のいずれで動作しているかを表すもので、これが０に設定されている場合にはマスター装置として動作していることを示し、１に設定されている場合にはスレーブ装置として動作していることを示す。
【０２０２】
メインプロセッサ動作周波数は、情報処理コントローラ内のメインプロセッサの動作周波数を表す。メインプロセッサ使用率は、メインプロセッサで現在動作しているすべてのプログラムについての、メインプロセッサでの使用率を表す。メインプロセッサ使用率は、対象メインプロセッサの全処理能力に対する使用中の処理能力の比率を表した値で、例えばプロセッサ処理能力評価のための単位であるＭＩＰＳを単位として算出され、又は単位時間当りのプロセッサ使用時間に基づいて算出される。後述のサブプロセッサ使用率についても同様である。
【０２０３】
サブプロセッサ数は、当該の情報処理コントローラが備えるサブプロセッサの数を表す。サブプロセッサＩＤは、当該の情報処理コントローラ内の各サブプロセッサを識別するための識別子である。
【０２０４】
サブプロセッサステータスは、各サブプロセッサの状態を表すものであり、ｕｎｕｓｅｄ、ｒｅｓｅｒｖｅｄ，ｂｕｓｙなどの状態がある。ｕｎｕｓｅｄは、当該サブプロセッサが現在使用されてなく、使用の予約もされていないことを示す。ｒｅｓｅｒｖｅｄは、現在は使用されていないが、予約されている状態を示す。ｂｕｓｙは、現在使用中であることを示す。
【０２０５】
サブプロセッサ使用率は、当該のサブプロセッサで現在実行している、又は当該のサブプロセッサに実行が予約されているプログラムについての、当該サブプロセッサでの使用率を表す。すなわち、サブプロセッサ使用率は、サブプロセッサステータスがｂｕｓｙである場合には、現在の使用率を示し、サブプロセッサステータスがｒｅｓｅｒｖｅｄである場合には、後に使用される予定の推定使用率を示す。
【０２０６】
サブプロセッサＩＤ、サブプロセッサステータス及びサブプロセッサ使用率は、１つのサブプロセッサに対して一組設定され、１つの情報処理コントローラ内のサブプロセッサに対応する組数が設定される。
【０２０７】
メインメモリ総容量及びメインメモリ使用量は、それぞれ、当該の情報処理コントローラに接続されているメインメモリの総容量及び現在使用中の容量を表す。
【０２０８】
外部記録部数は、当該の情報処理コントローラに接続されている外部記録部２８の数を表す。外部記録部ＩＤは、当該の情報処理コントローラに接続されている外部記録部２８を一意的に識別する情報である。外部記録部種別ＩＤは、当該の外部記録部の種類（例えば、ハードディスク、ＣＤ±ＲＷ、ＤＶＤ±ＲＷ、メモリディスク、ＳＲＡＭ、ＲＯＭなど）を表す。
【０２０９】
外部記録部総容量及び外部記録部使用量は、それぞれ外部記録部ＩＤによって識別される外部記録部の総容量及び現在使用中の容量を表す。
【０２１０】
外部記録部ＩＤ、外部記録部種別ＩＤ、外部記録部総容量及び外部記録部使用量は、１つの外部記録部に対して１組設定されるものであり、当該情報処理コントローラに接続されている外部記録部の数の組数だけ設定される。すなわち、１つの情報処理コントローラに複数の外部記録部が接続されている場合、それぞれの外部記録部には異なる外部記録部ＩＤが割り当てられ、外部記録部種別ＩＤ、外部記録部総容量及び外部記録部使用量も別々に管理される。
【０２１１】
このような装置情報は、ＤＭＡコマンドの１つであるステータス要求コマンドを発行することにより要求することができる。すなわち、ステータス要求コマンドを受信した情報処理装置は、これに応答して、データ領域に図示の装置情報を格納したステータス返信コマンドを返信する。
【０２１２】
マスター装置として動作する情報処理装置は、ネットワーク上で連携・協調動作する各情報処理装置から装置情報を取得し、これらのリソースや処理能力を統合して、仮想情報処理装置２０としての余剰処理能力を算出する。
【０２１３】
さらに、マスター装置として動作する情報処理装置は、通信ネットワーク４０経由でサーバ５０から情報処理装置性能や機能（機能拡張）に関するデータや連携機能実行用ソフトウェアなどを取得することができる。また、このマスター装置は、サーバ５０から得られたデータやソフトウェアを自装置上のメインメモリ又は外部記憶装置に保存若しくはインストールしておく。
【０２１４】
また、仮想情報処理装置２０を構成するいずれかの情報処理装置１０、１１…上で何らかの機能が実行されると、マスター装置上では機能利用履歴が生成され、外部記憶装置に保存し、機能利用履歴データベースを構築する。以下の表１には、仮想情報処理装置２０における機能利用履歴データベースの構成例を示している。同表では、ユーザが２００４／０１／２０に「Ｚ００１１」の情報処理装置ＩＤを持つ情報処理装置と接続された状況で高解像度化処理を行なったことや、２００４／０１／２３に「Ｚ００２０」及び「Ｚ００２１」の情報処理装置ＩＤを持つ各情報処理装置との連携による録画予約動作によりマルチチャンネル録画処理を行なったことなどが記されている。
【０２１５】
【表１】
2005250598.tif 000003
【０２１６】
サーバ５０は、機能情報データベース６０やソフトウェアデータベース７０を備えている。機能情報データベース６０には、仮想情報処理装置２０に組み込むことができる個々の情報処理装置についての情報処理装置性能や機能、あるいは複数の情報処理装置の組み合わせとして実現される情報処理装置性能や機能に関するデータが格納されている。また、ソフトウェアデータベース７０には、複数の情報処理装置による連携機能を実行する際に必要となるソフトウェアが格納されている。
【０２１７】
サーバ５０は、仮想情報処理装置２０内でマスター装置として動作する情報処理装置から要求があった際、あるいはサーバ５０内に設定されたタイミングなどで、情報処理装置に必要なデータやソフトウェアを提供する。
【０２１８】
機能情報データベース６０は、例えば、情報処理装置機能データベース７１と、機能データベース７２と、連携機能データベース７３を備えている。情報処理装置機能データベース７１は、各情報処理装置がどのような性能を持ち、どの機能が実行可能であるかを示す情報を格納している。また、機能データベース７２は、各機能の実行に必要とされる性能を示す情報を格納している。また、連携機能データベース７３には、各情報処理装置の連携により新たに実行可能になる機能を示す情報を格納している。これらデータベース７１〜７３の構成例をそれぞれ以下の表２〜表４に示している。
【０２１９】
【表２】
2005250598.tif 000004
【０２２０】
【表３】
2005250598.tif 000005
【０２２１】
【表４】
2005250598.tif 000006
【０２２２】
まず、情報処理装置機能データベース７１の例では、情報処理装置（すなわち、仮想情報処理装置を構成する情報処理装置）毎に実行可能な機能についての情報が格納され、具体的には、情報処理装置エントリ毎に、メインプロセッサ動作周波数、メインメモリ総容量、サブプロセッサ総数、外部記憶容量、各情報処理装置単独で実行可能な機能プログラムＩＤなどの情報が記載されている。
【０２２３】
また、機能データベース７２の例では、各機能を実現するために仮想情報処理装置に要求される装置構成や余剰処理能力に関する情報が格納され。具体的には、機能エントリ毎に、必要とされるメインプロセッサ使用量、メインメモリ使用量、サブプロセッサ使用量、外部記憶使用量、並びに機能に関する説明などの情報が記載されている。
【０２２４】
仮想情報処理装置は、連携する情報処理装置の組み合わせに応じた連携機能すなわち拡張機能を実現することができる。連携機能データベース７３では、例えばマスター装置となる情報処理装置１０と他の情報処理装置１１、１２…との組み合わせによって実現可能となる新たな連携機能に関する情報が格納され、具体的には、マスター装置と組み合わされる情報処理装置エントリ毎に、情報処理装置ＩＤ、情報処理装置名、機能プログラムＩＤ、機能名などの情報が記載されている。
【０２２５】
本実施形態に係るネットワークシステムでは、複数の情報処理装置の連携・協調動作により構築される仮想情報処理装置において余剰の処理能力を把握するとともに、機能の実行に必要な性能情報を提供するサービスを提供することができる。
【０２２６】
例えば、ユーザが、仮想情報処理装置を構成するいずれかの情報処理装置上で操作を行なっている際に、最新の機能若しくは拡張機能の実行を要求したとする。このような場合、仮想情報処理装置において余剰の処理能力を把握し、当該機能の実行に必要な余剰能力が仮想情報処理装置に既に装備されているか否かを判断することができる。さらに、仮想情報処理装置において十分な装置構成が備わっていない場合には、当該機能の実行に必要となる性能情報を提供することができる。ユーザは、提供された性能情報を基に、ネットワークに新規の情報処理装置や周辺機器を増設するなどして、仮想情報処理装置の機能拡張を容易に行なうことができる。
【０２２７】
このような仮想情報処理装置の運用形態について、以下に詳解する。
【０２２８】
（１）情報処理装置１０は、マスター装置として動作している。そして、ネットワークコントローラや制御プログラムによって、ローカルネットワーク３０（例えば、ホームネットワーク）経由で相互接続され、スレーブ装置として連携動作する他の情報処理装置１１から装置情報を取得し、仮想情報処理装置２０としての余剰処理能力の総計を算出する。
【０２２９】
（２）また、情報処理装置１０は、所定のタイミングで（例えば、ユーザが設定した期間が経過した後、あるいはサーバ５０側で情報処理装置１０への情報更新が要求されたことを契機とする時点など）、サーバ５０から、情報処理装置機能データベース７１、機能データベース７２、連携機能データベース７３を取得する。また、他の情報処理装置との組み合わせにより連携機能が実現され、その実行の際に新たにソフトウェアを必要とする場合には、事前にソフトウェアデータベース６１から連携用ソフトウェアを取得する。これにより、ユーザが連携機能を利用しようとした際のソフトウェア・ダウンロードの待機時間が削減される。
【０２３０】
なお、ソフトウェアのダウンロードに際しては、ユーザの許諾、情報処理装置の残記憶容量などの条件を鑑みて、必要性を判断するものとする。 
【０２３１】
（３）仮想情報処理装置２０としては、余剰処理能力値や、情報処理装置機能データベース７１、機能データベース７２、連携機能データベース７３から、その時点での仮想情報処理装置２０として実行可能な機能リストを作成し、ユーザに適宜必要な情報を表示する。この表示処理は、例えば仮想情報処理装置２０を構成するいずれかの情報処理装置１０、１１…のモニタディスプレイを使用することができる。
【０２３２】
このとき、機能に関する表示形態は、ＧＵＩ（Ｇｒａｐｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）に応じて変化させて良く、アイコンや、メッセージボックス、リスト選択など形式には依らない。表３に示した連携機能データベース７３を例に挙げると、仮想情報処理装置２０が情報処理装置１０単独で構成される場合にはマルチチャンネル録画機能のみ可能であるが、情報処理装置１０がさらに情報処理装置１１と連携することで、高解像度化処理も可能になるので、実行可能機能リストには高解像度化処理のエントリが追加される。また、該当機能について、機能データベース７２を参照することで、機能に関する説明なども表示可能となる。
【０２３３】
（４）ユーザが仮想情報処理装置２０上である機能の実行、あるいはその予約を行おうとした際、仮想情報処理装置２０が保有している機能の中で処理能力の不足から実行不可能な機能が存在する場合には、あとどれ程の性能を持つ情報処理装置が接続されれば該当機能が使用可能になるかを（さらに連携を必要とする情報処理装置に関する情報）、情報処理装置機能データベース７１、機能データベース７２に基づいて調査し、追加・増設が必要とされる情報処理装置を明示する情報（例えば情報処理装置名や型番など）を表示する。
【０２３４】
例えば、仮想情報処理装置２０が高解像度化処理を行おうとした場合であって、当該仮想情報処理装置２０上では既に他の処理が行なわれている関係により高解像度化処理に必要なサブプロセッサ数に足りないときには、情報処理装置上、必要なサブプロセッサ数を保有する情報処理装置を情報処理装置機能データベース７１から抽出する。そして、仮に情報処理装置１２が要求に合致したならば、この情報処理装置情報をユーザに提示し、この装置１２をローカルネットワーク３０に接続して仮想情報処理装置２０内に組み込めば、希望する高解像度化処理を実行できる可能性があるということを表示する。
【０２３５】
（５）また、上記とは別に、同一のネットワーク上に接続されている情報処理装置とは異なる種類の情報処理装置が接続されたと仮定し、その組み合わせにより新たに使用可能となる連携機能が存在する場合には、連携機能データベース７２より、該当情報処理装置を明示する情報（例えば、情報処理装置名や型番など）とその情報処理装置との連携により実現される機能を表示する。
【０２３６】
例えば、情報処理装置１０と情報処理装置１１の連携で構成された仮想情報処理装置２０が既に連携し、現状の構成ではノイズ除去フィルタの実行が不可能である場合において、さらに情報処理装置１２が接続（すなわち連携が実現）されることによりノイズ除去フィルタを稼動できるとする。このような場合、その新規に動作可能になる機能名と、実行に必要な情報端末の具体的な情報処理装置名や型番などを表示する。
【０２３７】
（６）情報処理装置１０若しくは仮想情報処理装置２０は、実際に機能が実行された場合は、それらを表１で示すような機能利用履歴として情報処理装置内の外部記憶装置に保存する。そして、前述した新規付加機能や情報処理装置情報を表示する際には、情報処理装置内で作成された機能利用履歴・情報端末接続履歴に基づいて、以下に示すようなユーザにとってより有益と思われる情報を提供する。
【０２３８】
１．過去に接続されたことのある情報処理装置に関連した情報
２．利用履歴に追加機能が可能になる情報処理装置がない場合は、ユーザが行なおうとする動作に最も相応しい機能を行なえる情報処理装置
【０２３９】
図１９には、ネットワーク上の仮想情報処理装置２０とサーバ５０との協働的な動作により仮想情報処理装置における余剰の処理能力の把握と、機能の実行に必要な性能情報を提供するための動作手順について図解している。但し、仮想情報処理装置２０は、ローカルネットワーク３０上で相互接続される２台の情報処理装置１０、１１の連携動作により実現し、情報処理装置１０がマスター装置として、情報処理装置１１がスレーブ装置として動作しているものとする。また、仮想情報処理装置２０とサーバ５０とは、インターネットなどの通信ネットワーク４０経由で接続されている。
【０２４０】
サーバ５０は、表２、表３、並びに表４に示したように、各情報処理装置がどのような性能を持ち、どの機能が実行可能であるかを示す情報、各機能の実行に必要とされる性能を示す情報、各情報処理装置の連携により新たに実行可能になる機能を示す情報をそれぞれ管理している。
【０２４１】
マスター装置は、能力交換プログラム（前述）の実行により、ローカルネットワーク３０経由で連携しているすべての情報処理装置の装置情報を収集する。この装置情報の中にはモニタフラグ（＝０：モニタ機能なし、＝１：小モニタ機能あり、＝２：大モニタ機能あり）が含まれるものとする。さらに本実施形態では、マスター装置は、能力交換プログラムの実行により、仮想情報処理装置を構成するすべての情報処理装置（スレーブ装置）の装置情報を収集して、その総和を求め、これを仮想情報処理装置２０の処理能力として記憶する。例えば、ローカルネットワーク３０で連携する情報処理装置全体の総サブプロセッサ数が３２であるといった具合である。
【０２４２】
本実施形態では、マスター装置は、仮想情報処理装置における余剰の処理能力の把握と、機能の実行に必要な性能情報の取得を行なうために、連携動作プログラムをインストールし、このプログラムを実行する。この連携動作プログラムは、複数の装置による連携動作をプロモートするための処理を行なうように記述されたコンピュータ・プログラムであり、制御プログラムのカテゴリに属する。連携動作プログラムを実行するのはマスター装置のみでよいため、ＭＳマネージャ実行によりマスター装置となった装置のみが外部記録部からロードしてきてもよい。
【０２４３】
連携動作プログラムは、ローカルネットワーク３０上で動作する（すなわち仮想情報処理装置３０を構成する）すべての情報処理装置の情報処理装置ＩＤと情報処理装置種別ＩＤをサーバ５０へ送信する。
【０２４４】
これに対し、サーバ５０は、受信したすべての情報処理装置ＩＤと情報処理装置種別ＩＤを基に、当該仮想情報処理装置３０の処理能力を算出し、その余剰処理能力に基づいて使用可能な機能一覧を抽出する。そして、サーバ５０は、連携機能データベース７３を参照し、各情報処理装置について、他の情報処理装置との連携により新たに実行できる可能性がある機能すなわち拡張機能を抽出し、これらをまとめて拡張可能性表として作成する。そして、作成された拡張可能性表をマスター装置へ送信する。
【０２４５】
表５には、拡張可能性表の構成例を示している。同表に示す例では、マルチチャンネル録画、高解像度化、専用チャンネル受信などが拡張可能な機能としてエントリされ、各エントリでは、該当する拡張機能を実行するためにさらに追加すべきハードウェアやその他の仕様情報が記述されている。
【０２４６】
【表５】
2005250598.tif 000007
【０２４７】
マスター装置は、受信した拡張可能性表と、記憶しておいた装置情報の総和とを比較し、現状のローカルネットワーク３０に接続されている情報処理装置で構成される仮想情報処理装置において、その余剰能力に基づいて使用可能となる機能を拡張可能性表から抽出し、これを拡張可能な機能一覧としてモニタ表示する。例えば、図１９に示す例では、スレーブ装置のモニタ機能を使用して拡張可能機能が表示出力されるが、勿論、マスター装置のモニタ機能を使用することも可能である。
【０２４８】
拡張可能機能の表示は、一覧表示形式ではなく、例えば「機能ＸＸが実行可能です。実行しますか？」と問い合わせるダイアログ、あるいは「実行可能なので実行しました」と通知するダイアログであってもよい。実行の可否判定には、「ネットワーク内に情報処理装置ＩＤ：Ｚ００１２（＝専用チューナ）の装置が含まれること」なども有り得る。また、拡張機能を実行するために何らかの機能プログラム、サブプロセッサプログラムが必要となる場合には、サーバ５０に対してプログラムＩＤを送信し、ソフトウェアデータベース６１より取得するようにしてもよい。
【０２４９】
また、マスター装置は、拡張可能性表と仮想情報処理装置の装置情報の総和との比較により、現状のローカルネットワーク３０に接続されている情報処理装置で構成される仮想情報処理装置において、その余剰処理能力の不足により実行不可能であると判断された拡張機能については、サーバ５０に通知する。サーバ５０は、各機能の実行に必要とされる性能を示す情報を機能データベース７２で管理しており、当該拡張機能の実行を可能にするために適切な情報処理装置ＩＤと情報処理装置種別ＩＤを抽出し、これをマスター装置に返信する。
【０２５０】
そして、マスター装置は、サーバ５０から送られてきた拡張機能を実行可能にするために追加が必要となる情報処理装置に関する情報を表示する。
【０２５１】
拡張機能に関する情報表示に際しては、例えば以下のルールを適用するようにし、ユーザにとってより有益な情報を提示するようにしてもよい。
【０２５２】
（１）同一ネットワーク上に接続されている情報処理装置とは異なる種類の情報処理装置が接続されたと仮定し、その組み合わせにより新たに使用可能となる連携機能が存在する場合には、該当する情報処理装置を明示する情報（情報処理装置名や型番など）を表示する
（２）情報処理装置を明示する情報（情報処理装置名や型番など）を表示する際に、情報処理装置内で作成された機能利用履歴・情報端末接続履歴に基づいて、過去に接続されたことのある情報処理装置を優先的に表示する。
【０２５３】
例えば、「情報処理装置ＸＸを接続すれば、拡張機能ＹＹを実行可能です」などのダイアログにより、拡張機能に必要な情報処理装置を表示するようにしてもよい。さらに、このダイアログに対してユーザが肯定的な応答を行なった場合には、装置ＸＸを商品紹介し、あるいは商品購入へ導くようなサイトへのリンクを行なうようにしてもよい。
【０２５４】
図２０には、仮想情報処理装置２０において、能力交換プログラムの実行から、複数の情報処理装置の連携動作による拡張機能実現に必要な情報処理装置情報をユーザに提示するに至るまでの処理手順をフローチャートの形式で示している。
【０２５５】
まず、マスター装置は、能力交換プログラムの実行により（ステップＳ１）、ローカルネットワーク３０上で情報処理装置の装置情報を収集する。そして、仮想情報処理装置２０としての余剰処理能力や、連携している情報処理装置の情報処理装置ＩＤ、情報処理装置種別ＩＤなどの各パラメータを取得する（ステップＳ２）。ここで言う余剰処理能力は、表２に示した情報処理装置機能データベース７１の項目に挙げている、余剰となるサブプロセッサの総数、使用可能な外部記憶部容量などで表される。マスター装置は、取得した各情報処理装置の情報処理装置ＩＤおよび情報処理装置種別ＩＤをサーバ５０へ送信する。
【０２５６】
また、サーバ５０は、受信したローカルネットワーク３０上の各情報処理装置の情報処理装置ＩＤおよび情報処理装置種別ＩＤに基づき、例えば表４に示したような連携機能データベース７３を参照することで、仮想情報処理装置２０としての実行できる可能性のある連携機能のリストアップすなわち拡張可能性表を作成し、マスター装置へ送信する。マスター装置はこれを取得する（ステップＳ３）。
【０２５７】
例えば、表４に示した例では、仮想情報処理装置２０としては、仮想情報処理装置２０は、情報処理装置ＩＤ：Ｚ００１１と連携することで高解像度化処理を実行可能であり、また、情報処理装置ＩＤ：Ｚ００１２と連携することでノイズ除去処理を実行可能であることが分かる。
【０２５８】
さらに、サーバ５０は、仮想情報処理装置としての装置構成、すなわち先行ステップＳ２で得られた情報処理装置ＩＤ及び情報処理装置種別ＩＤと、表４に示した連携機能データベース７１とを照合し、情報処理装置の組み合わせの不一致から実行不可能な連携機能を拡張可能性表の中から抽出し、マスター装置へ送信する。マスター装置はその結果を取得する（ステップＳ４）。
【０２５９】
例えば、仮想情報処理装置を構成する情報処理装置の中に情報処理装置ＩＤ：Ｚ００１２が存在しない場合には、この仮想情報処理装置はノイズ除去フィルタを行なうことはできず、実行不可能な連携機能としてリストアップされる。
【０２６０】
さらに、マスター装置は、先行ステップＳ２で得られた余剰処理能力と、表３に示した機能データベース又は表５に示される拡張可能性表で挙げられている機能実行に必要な最小処理能力の項目を照合することで、処理能力の不足から実行不可能な機能を抽出する（ステップＳ５）。
【０２６１】
例えば、仮想情報処理装置を構成する情報処理装置の中に情報処理装置ＩＤ：Ｚ００１１が存在し、高解像度化処理を実行できる可能性はあるが、他の並列処理を行なっている関係で、余剰処理能力において求められているサブプロセッサ数を満たさない場合などは、処理能力不足の機能としてリストアップされることになる。
【０２６２】
以上の処理を行なった上で、マスター装置は、先行ステップＳ３において提示された拡張可能性表の中に実行不可能な機能が存在するか確認する（ステップＳ６）。そして、仕様的に可能とされている機能がすべて実行可能な状態であれば、先行ステップＳ３において提示された拡張可能性表にリストアップされているすべての拡張機能が実行可能であることを、何らかの形でユーザに提示する（ステップＳ７）。
【０２６３】
一方、拡張可能性表の中に実行不可能な機能が存在する場合には（ステップＳ６）、何らかの情報処理装置を新たにネットワーク接続すれば、現在実行できない当該機能が実行可能になるかどうかをさらに確認する（ステップＳ８）。
【０２６４】
例えば、マスター装置のメインメモリの余剰処理能力が必須容量に達しないなど、たとえ接続機器が増えても機能の実現に寄与しないような場合には、現在実行不可能な機能があり、その機能が実行できない理由などを何らかの形でユーザに提示する（ステップＳ９）。
【０２６５】
一方、ステップＳ８における判定処理で、何らかの情報処理装置を新たにネットワークに接続することで、現在実行できない当該拡張機能の実行が可能になると判断された場合には、その実行不可の原因が連携対象となる情報処理装置が存在しないためであれば、先行ステップＳ３で得られた情報処理装置の組み合わせの不一致から実行不可能な連携機能をキーにして、表４に示した連携機能データベース７３又は表５に示される拡張可能性表と照合し、どの情報処理装置が必要であるかを抽出する（ステップＳ１０）。連携機能データベース７３との照合は、例えばサーバ５０を介して行なわれる。
【０２６６】
先に挙げた例では、ノイズ除去処理が実行不可で、そのためには情報処理装置ＩＤ：Ｚ００１２が必要となる。また、情報処理装置の組み合わせの不一致ではなく、余剰処理能力の不足によって拡張機能の実行が不可である場合は、表２に示した情報処理装置機能データベース７１を照合し、必要とされる処理能力を満たす情報処理装置を抽出する（ステップＳ１１）。情報処理装置機能データベース７１との照合は、例えばサーバ５０を介して行なわれる。
【０２６７】
なお、上記の例では、対象となる機能の数が少なく、実行に必要な情報処理装置も１つに限られたが、実際の運用では１つの機能を行なうにも多種類の情報処理装置との組み合わせで実現可能になるケースが想定される。
【０２６８】
拡張機能の実行に必要な情報処理装置のリストを作成した後、当該リストを基に、ネットワークへ新たに接続することが推奨される情報処理装置を選択する（ステップＳ１２）。そして、この処理ステップで得られた情報処理装置の１つ又は複数を、ユーザに提示し、現在は実行できないが接続すれば実行可能になる旨を通知する（ステップＳ１３）。
【０２６９】
なお、ステップＳ１３における通知では、ダイアログなどを用いて具体的に「情報処理装置ＸＸを接続すれば、拡張機能ＹＹを実行可能です」と文章で表示する方法の他に、該当する情報処理装置のアイコンや情報処理装置写真などでも良い。また、表３に示した機能データベース７２を参照して連携機能を取り出し、この機能説明も併せて表示してもよい。
【０２７０】
図２１には、図２０に示したフローチャートのステップＳ１２において実行される、情報処理装置リスト中からネットワークへ新たに接続することが推奨される情報処理装置を選択するための処理手順をさらに詳細に示している。
【０２７１】
まず、接続候補の情報処理装置リスト中に、過去、当該ネットワークに接続しマスター装置と連携したことがある装置が存在するかどうかを確認する（ステップＳ１４）。この処理は、表１に示したような機能利用履歴データベースを基に照合することにより行なわれる。
【０２７２】
そして、機能利用履歴データベース内に対象となる機器が存在する場合には、機器選択の優先順位に基づいて選択する。この選択動作では、過去に最も多く接続された情報処理装置を優先して選択する（ステップＳ１５、Ｓ１６）。その次に、最も近い日時に接続された情報処理を優先して選択する（ステップＳ１７、Ｓ１８）。但し、本発明の要旨は必ずしもこの優先順位に限定されるものではなく、ユーザにとってより利便性が高いと思われる選択方法を設定すれば良い。
【０２７３】
また、ステップＳ１４において、機能利用履歴データベース内に情報処理装置リストで挙げられている機器が存在しないと判定された場合には、情報処理装置リストの中から任意に選択する（ステップＳ１９）。この場合、ユーザの性別や年齢、嗜好情報などを基に選択することが考えられる。さらに、ユーザが保有していないと思われる情報処理については、情報処理装置の詳細情報を提示しあるいは購入手続きへ導くようなＷｅｂページのリンクを表示し、購入促進の表示を行なうことも可能である。
【産業上の利用可能性】
【０２７４】
以上、特定の実施形態を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施形態の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、本明細書の記載内容を限定的に解釈するべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【図面の簡単な説明】
【０２７５】
【図１】図１は、本発明の一実施形態に係るネットワーク・システムの構成を示した図である。
【図２】図２は、サブプロセッサ２３からメインメモリ２４へのアクセス手順を説明するための図である。
【図３】図３は、ソフトウェアセルの構成例を示した図である。
【図４】図４は、ＤＭＡコマンドがステータス返信コマンドである場合のソフトウェアセルのデータ領域を示した図である。
【図５】図５は、複数の情報処理装置が仮想的な１台の情報処理装置として動作する様子を示した図である。
【図６】図６は、情報処理コントローラのソフトウェア構成の一例を示した図である。
【図７】図７は、４台の情報処理装置が仮想的な１台の情報処理装置として動作する様子を示した図である。
【図８】図８は、図７に示したシステムにおける分散処理の例を示した図である。
【図９】図９は、各情報処理装置及びシステムの具体例を示した図である。
【図１０】図１０は、図９中のハード・ディスク・レコーダのハードウェア構成を示した図である。
【図１１】図１１は、図９中のハード・ディスク・レコーダのソフトウェア構成を示した図である。
【図１２】図１２は、図９中のＰＤＡのハードウェア構成を示した図である。
【図１３】図１３は、図９中のＰＤＡのソフトウェア構成を示した図である。
【図１４】図１４は、図９中のポータブルＣＤプレーヤのハードウェア構成を示した図である。
【図１５】図１５は、図９中のポータブルＣＤプレーヤのソフトウェア構成を示した図である。
【図１６】図１６は、本発明の一実施形態に係るネットワークシステムの構成を模式的に示した図である。
【図１７】図１７は、装置情報の構成例を示した図である。
【図１８】図１８は、機能情報データベース６０の構成例を示した図である。
【図１９】図１９は、ネットワーク上の仮想情報処理装置２０とサーバ５０との協働的な動作により仮想情報処理装置における余剰の処理能力の把握と、機能の実行に必要な性能情報を提供するための動作手順を示したシーケンス図である。
【図２０】図２０は、仮想情報処理装置２０において、能力交換プログラムの実行から、複数の情報処理装置の連携動作による拡張機能実現に必要な情報処理装置情報をユーザに提示するに至るまでの処理手順を示したフローチャートである。
【図２１】図２１は、ネットワークへ新たに接続することが推奨される情報処理装置を選択するための処理手順を詳細に示したフローチャートである。
【符号の説明】
【０２７６】
１０，１１，１２…情報処理装置
２０…仮想情報処理装置
３０…ローカルネットワーク
４０…通信ネットワーク
５０…サーバ
６０…機能情報データベース
６１…ソフトウェアデータベース
７１…情報処理装置機能データベース
７２…機能データベース
７３…連携機能データベース
【図１】
2005250598.tif 000008
【図２】
2005250598.tif 000009
【図３】
2005250598.tif 000010
【図４】
2005250598.tif 000011
【図５】
2005250598.tif 000012
【図６】
2005250598.tif 000013
【図７】
2005250598.tif 000014
【図８】
2005250598.tif 000015
【図９】
2005250598.tif 000016
【図１０】
2005250598.tif 000017
【図１１】
2005250598.tif 000018
【図１２】
2005250598.tif 000019
【図１３】
2005250598.tif 000020
【図１４】
2005250598.tif 000021
【図１５】
2005250598.tif 000022
【図１６】
2005250598.tif 000023
【図１７】
2005250598.tif 000024
【図１８】
2005250598.tif 000025
【図１９】
2005250598.tif 000026
【図２０】
2005250598.tif 000027
【図２１】
2005250598.tif 000028