(57)【要約】【課題】  操作する対象の機器との距離や位置関係に影響されることなく機器を遠隔制御することができるサーバ装置、遠隔制御システム及び遠隔制御方法を提供すること。【解決手段】  ホームサーバ３１は、ハードディスクレコーダ３３を遠隔制御するための機器制御情報としての赤外線データを、リモコン３４からオーディオプレーヤ３２を介して受信し、当該赤外線データに含まれる機器ＩＤから当該赤外線データを転送すべき機器が上記ハードディスクレコーダ３３であることを判断し、当該ハードディスクレコーダ３３へ当該赤外線データを転送することにより遠隔制御を行う。【選択図】  図１６
2005252901.tif 000002
【特許請求の範囲】
【請求項１】
ユーザが利用する機器を識別する機器識別情報を記憶する記憶手段と、
前記機器を遠隔制御するためのユーザからの機器制御情報を、当該機器の前記機器識別情報とともに受信する第１の受信手段と、
前記第１の受信手段により受信した前記機器制御情報及び前記機器識別情報を、当該機器識別情報により識別される前記機器へ転送する転送手段と
を具備することを特徴とするサーバ装置。
【請求項２】
請求項１に記載のサーバ装置であって、
前記第１の受信手段は、前記機器制御情報及び前記機器識別情報を、前記ユーザが所持する遠隔制御装置から受信することを特徴とするサーバ装置。
【請求項３】
請求項２に記載のサーバ装置であって、
前記機器はネットワーク上に複数存在し、
前記第１の受信手段は、前記機器制御情報及び前記機器識別情報を、前記遠隔制御装置から、第１の機器を介して受信し、
前記第転送手段は、前記機器制御情報及び前記機器識別情報を、第２の機器へ送信することを特徴とするサーバ装置。
【請求項４】
請求項２に記載のサーバ装置であって、
前記遠隔制御装置が記憶する前記機器識別情報の一覧を受信する第２の受信手段と、
前記第２の受信手段により受信した前記機器識別情報の一覧と、当該サーバ装置が記憶する前記機器識別情報の一覧とが同一か否かを判断する判断手段と、
前記判断手段により前記両一覧が同一でないと判断された場合に、前記第２の受信手段により受信した前記一覧を、前記サーバ装置が記憶する前記一覧へと更新する更新手段と、
前記更新手段により更新した前記一覧を、前記遠隔制御装置へ送信する送信手段とを更に具備することを特徴とするサーバ装置。
【請求項５】
ユーザが利用する機器を識別する機器識別情報を記憶する記憶手段と、前記機器を遠隔制御するためのユーザからの機器制御情報を、当該機器の前記機器識別情報とともに受信する第１の受信手段と、前記第１の受信手段により受信した前記機器制御情報及び前記機器識別情報を転送する転送手段とを有するサーバ装置と、
前記サーバ装置から前記機器制御情報及び前記機器識別情報を受信する第２の受信手段と、前記第２の受信手段により受信した前記機器制御情報に応じた制御を実行する制御手段とを有する機器と
を具備することを特徴とする遠隔制御システム。
【請求項６】
ユーザが利用する機器を識別する機器識別情報を記憶するステップと、
前記機器を遠隔制御するためのユーザからの機器制御情報を、当該機器の前記機器識別情報とともに受信するステップと、
前記受信した前記機器制御情報及び前記機器識別情報を、当該機器識別情報により識別される前記機器へ転送するステップと
を具備することを特徴とする遠隔制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機器を遠隔制御することができるサーバ装置、遠隔制御システム及び遠隔制御方法に関する。
【背景技術】
【０００２】
従来から、複数の機器を一つのリモートコントローラで遠隔制御する技術としては、リモートコントローラに、複数の機器への操作モードを切り替える切り替えボタンを設けて、当該切り替えボタンにより操作したい機器の操作モードに切り替えた上でリモートコントローラを操作する、というものが知られている。
【０００３】
また、各機器にＩＤを与えておき、当該ＩＤを示すために機器に付されたバーコードのパターン等から上記ＩＤをリモートコントローラが認識して、当該認識されたＩＤに対応する機器を制御するための画面をリモートコントローラのタッチパネルに自動的に表示させて、当該タッチパネルの操作により当該機器へ信号を送信する、という技術もある（例えば、特許文献１参照。）。
【特許文献１】特開２００１−８２７９号公報（段落[００７３]等）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記記述においては、遠隔制御したい対象の機器とリモートコントローラとの間に障害物が存在したり、対象の機器がリモートコントローラから遠く離れた位置にあったりする場合には、操作データが当該対象の機器に届かず、制御することができなかった。よって、リモートコントローラを所持するユーザは、操作する対象の機器の位置を常に意識して操作を行う必要があった。
【０００５】
以上のような事情に鑑み、本発明の目的は、操作する対象の機器との距離や位置関係に影響されることなく機器を遠隔制御することができるサーバ装置、遠隔制御システム及び遠隔制御方法を提供することにある。
【課題を解決するための手段】
【０００６】
上述の課題を解決するため、本発明のサーバ装置は、ユーザが利用する機器を識別する機器識別情報を記憶する記憶手段と、前記機器を遠隔制御するためのユーザからの機器制御情報を、当該機器の前記機器識別情報とともに受信する第１の受信手段と、前記第１の受信手段により受信した前記機器制御情報及び前記機器識別情報を、当該機器識別情報により識別される前記機器へ転送する転送手段とを具備することを特徴としている。
【０００７】
ここで、上記機器とは、例えば各種ＡＶ（Audio and Visual）機器、テレビ、ハードディスクレコーダ等の家電機器等、遠隔制御装置により遠隔制御が可能なあらゆる機器である。
【０００８】
また上記機器制御情報とは、例えばユーザが所持する遠隔制御装置から発せられる赤外線データであり、上記機器に対してユーザが所望する所定の制御信号を含んでいる。
【０００９】
この構成により、上記機器を遠隔制御するための機器制御情報及び機器識別情報を当該機器の代わりに受信して、上記機器識別情報に対応する当該機器へそれらの情報を転送することができるため、制御対象の機器がどのような位置に存在していても、上記サーバ装置を中継することで、ユーザは、当該機器の位置を意識することなく当該機器を遠隔制御することができる。
【００１０】
上記サーバ装置において、前記第１の受信手段は、前記機器制御情報及び前記機器識別情報を、前記ユーザが所持する遠隔制御装置から受信するようにしてもよい。これにより、上記機器に対する機器制御情報を上記遠隔制御装置から受信して当該機器へ転送することができる。よって、例えば当該遠隔制御装置と当該機器との間に障害物が存在したり、当該機器が当該遠隔制御装置から遠く離れた場所に存在したりする場合でも、ユーザは上記機器制御情報及び機器識別情報を上記サーバ装置に送信することで、当該機器を遠隔制御することができる。
【００１１】
上記サーバ装置において、前記機器はネットワーク上に複数存在し、前記第１の受信手段は、前記機器制御情報及び前記機器識別情報を、前記遠隔制御装置から、第１の機器を介して受信し、前記転送手段は、前記機器制御情報及び前記機器識別情報を、第２の機器へ送信するようにしてもよい。これにより、上記遠隔制御装置から送信された上記機器制御情報を、上記第１の機器を介して受信して、上記第２の機器へ転送することができるため、ユーザは、例えばユーザの近隣に存在する第１の機器に上記機器制御情報及機器識別情報を送信するだけで、離れた位置に存在する上記第２の機器の遠隔制御を行うことが可能となる。
【００１２】
上記サーバ装置は、前記遠隔制御装置が記憶する前記機器識別情報の一覧を受信する第２の受信手段と、前記第２の受信手段により受信した前記機器識別情報の一覧と、当該サーバ装置が記憶する前記機器識別情報の一覧とが同一か否かを判断する判断手段と、前記判断手段により前記両一覧が同一でないと判断された場合に、前記第２の受信手段により受信した前記一覧を、前記サーバ装置が記憶する前記一覧へと更新する更新手段と、前記更新手段により更新した前記一覧を、前記遠隔制御装置へ送信する送信手段とを更に具備するようにしてもよい。
【００１３】
ここで上記一覧とは、上記複数の機器の機器識別情報を記憶したデータベースを指し、一覧の更新とは、当該データベースを書き換えることを言う。
【００１４】
これにより、上記遠隔制御装置が記憶する各機器の上記機器識別情報が最新の情報でない場合に、当該機器識別情報を更新させることができるため、例えば上記機器の数が増加又は減少した場合等でも、遠隔制御装置が記憶する機器識別情報と当該サーバ装置が記憶する機器識別情報とを常に最新の情報に一致させることにより、上記機器を適切に遠隔制御することができる。
【００１５】
本発明の遠隔制御システムは、ユーザが利用する機器を識別する機器識別情報を記憶する記憶手段と、前記機器を遠隔制御するためのユーザからの機器制御情報を、当該機器の前記機器識別情報とともに受信する第１の受信手段と、前記第１の受信手段により受信した前記機器制御情報及び前記機器識別情報を転送する転送手段とを有するサーバ装置と、前記サーバ装置から前記機器制御情報及び前記機器識別情報を受信する第２の受信手段と、前記第２の受信手段により受信した前記機器制御情報に応じた制御を実行する制御手段とを有する機器とを具備することを特徴としている。
【００１６】
この構成により、上記サーバ装置は、ユーザが上記機器を制御するために送信する機器制御情報及び機器識別情報を受信して、それらの情報を、当該機器識別情報を基に上記機器へ転送し、一方上記機器は、サーバ装置から受信した情報を基に当該機器の制御を実行することができるため、制御対象の機器がどのような位置に存在していても、上記サーバ装置を中継することで、ユーザは、当該機器の位置を意識することなく当該機器を遠隔制御することができる。
【００１７】
本発明の遠隔制御方法は、ユーザが利用する機器を識別する機器識別情報を記憶するステップと、前記機器を遠隔制御するためのユーザからの機器制御情報を、当該機器の前記機器識別情報とともに受信するステップと、前記受信した前記機器制御情報及び前記機器識別情報を、当該機器識別情報により識別される前記機器へ転送するステップとを具備することを特徴としている。
【発明の効果】
【００１８】
本発明によれば、操作する対象の機器との距離や位置関係に影響されることなく機器を遠隔制御することができる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の実施の形態を図面に基づき説明する。
【００２０】
まず、本発明の一実施形態において前提となるネットワークシステムについて説明する。図１は、この発明のネットワークシステムの一例を示し、ネットワーク９を介して複数の情報処理装置１、２、３、４が接続されたものである。情報処理装置１、２、３、４は、例えば各種のＡＶ機器やポータブル機器である。
【００２１】
情報処理装置１について示すと、情報処理装置１は、コンピュータ機能部として情報処理コントローラ１１を備える。情報処理コントローラ１１は、メインプロセッサ２１−１、サブプロセッサ２３−１，２３−２，２３−３、ＤＭＡＣ（ダイレクトメモリアクセスコントローラ）２５−１及びＤＣ（ディスクコントローラ）２７−１を有する。
【００２２】
メインプロセッサ２１−１は、サブプロセッサ２３−１，２３−２，２３−３によるプログラム実行（データ処理）のスケジュール管理と、情報処理コントローラ１１（情報処理装置１）の全般的な管理とを行う。ただし、メインプロセッサ２１−１内で管理のためのプログラム以外のプログラムが動作するように構成することもできる。その場合には、メインプロセッサ２１−１はサブプロセッサとしても機能することになる。メインプロセッサ２１−１は、ＬＳ（ローカルストレージ）２２−１を有する。
【００２３】
サブプロセッサは、１つでもよいが、望ましくは複数とする。本例は、複数の場合である。各サブプロセッサ２３−１，２３−２，２３−３は、メインプロセッサ２１−１の制御によって並列的かつ独立にプログラムを実行し、データを処理する。更に、場合によってメインプロセッサ２１−１内のプログラムがサブプロセッサ２３−１，２３−２，２３−３内のプログラムと連携して動作するように構成することもできる。後述する機能プログラムもメインプロセッサ２１−１内で動作するプログラムである。各サブプロセッサ２３−１，２３−２，２３−３も、ＬＳ（ローカルストレージ）２４−１，２４−２，２４−３を有する。
【００２４】
ＤＭＡＣ２５−１は、情報処理コントローラ１１に接続されたＤＲＡＭ（ダイナミックＲＡＭ）などからなるメインメモリ２６−１に格納されているプログラム及びデータにアクセスするものであり、ＤＣ２７−１は、情報処理コントローラ１１に接続された外部記録部２８−１，２８−２にアクセスするものである。
【００２５】
外部記録部２８−１，２８−２は、固定ディスク（ハードディスク）でも、リムーバブルディスクでもよく、また、ＭＯ，ＣＤ±ＲＷ，ＤＶＤ±ＲＷなどの光ディスク、メモリディスク、ＳＲＡＭ（スタティックＲＡＭ）、ＲＯＭなど、各種のものを用いることができる。したがって、ＤＣ２７−１は、ディスクコントローラと称するが、外部記録部コントローラである。図１の例のように、情報処理コントローラ１１に対して外部記録部２８を複数接続できるように、情報処理コントローラ１１を構成することができる。
【００２６】
メインプロセッサ２１−１、各サブプロセッサ２３−１，２３−２，２３−３、ＤＭＡＣ２５−１及びＤＣ２７−１は、バス２９−１によって接続される。
【００２７】
情報処理コントローラ１１には、当該の情報処理コントローラ１１を備える情報処理装置１を、ネットワーク全体を通して一意的に識別できる識別子が、情報処理装置ＩＤとして割り当てられる。
【００２８】
メインプロセッサ２１−１及び各サブプロセッサ２３−１，２３−２，２３−３に対しても同様に、それぞれを特定できる識別子が、メインプロセッサＩＤ及びサブプロセッサＩＤとして割り当てられる。
【００２９】
情報処理コントローラ１１は、ワンチップＩＣ（集積回路）として構成することが望ましい。他の情報処理装置２、３、４も、上記と同様に構成される。ここで、図１において親番号が同一であるユニットは枝番号が異なっていても、特に断りがない限り同じ働きをするものとする。また、以下の説明において枝番号が省略されている場合には、枝番号の違いにいる差異を生じないものとする。
【００３０】
上述したように、１つの情報処理コントローラ内の各サブプロセッサ２３は、独立にプログラムを実行し、データを処理するが、異なるサブプロセッサがメインメモリ２６内の同一領域に対して同時に読み出しまたは書き込みを行った場合には、データの不整合を生じ得る。そこで、サブプロセッサ２３からメインメモリ２６へのアクセスは、以下のような手順によって行う。
【００３１】
図２（Ａ）に示すように、メインメモリ２６は、複数のアドレスを指定できるメモリロケーションによって構成される。各メモリロケーションに対しては、データの状態を示す情報を格納するための追加セグメントが割り振られる。追加セグメントは、Ｆ／Ｅビット、サブプロセッサＩＤ及びＬＳアドレス（ローカルストレージアドレス）を含むものとされる。また、各メモリロケーションには、後述のアクセスキーも割り振られる。Ｆ／Ｅビットは、以下のように定義される。
【００３２】
Ｆ／Ｅビット＝０は、サブプロセッサ２３によって読み出されている処理中のデータ、または空き状態であるため最新データではない無効データであり、読み出し不可であることを示す。また、Ｆ／Ｅビット＝０は、当該メモリロケーションにデータ書き込み可能であることを示し、書き込み後に１に設定される。
【００３３】
Ｆ／Ｅビット＝１は、当該メモリロケーションのデータがサブプロセッサ２３によって読み出されておらず、未処理の最新データであることを示す。当該メモリロケーションのデータは読み出し可能であり、サブプロセッサ２３によって読み出された後に０に設定される。また、Ｆ／Ｅビット＝１は、当該メモリロケーションがデータ書き込み不可であることを示す。
【００３４】
更に、上記Ｆ／Ｅビット＝０（読み出し不可／書き込み可）の状態において、当該メモリロケーションについて読み出し予約を設定することは可能である。Ｆ／Ｅビット＝０のメモリロケーションに対して読み出し予約を行う場合には、サブプロセッサ２３は、読み出し予約を行うメモリロケーションの追加セグメントに、読み出し予約情報として当該サブプロセッサ２３のサブプロセッサＩＤ及びＬＳアドレスを書き込む。
【００３５】
その後、データ書き込み側のサブプロセッサ２３によって、読み出し予約されたメモリロケーションにデータが書き込まれ、Ｆ／Ｅビット＝１（読み出し可／書き込み不可）に設定されたとき、予め読み出し予約情報として追加セグメントに書き込まれたサブプロセッサＩＤ及びＬＳアドレスに読み出される。
【００３６】
複数のサブプロセッサによってデータを多段階に処理する必要がある場合、このように各メモリロケーションのデータの読み出し／書き込みを制御することによって、前段階の処理を行うサブプロセッサ２３が、処理済みのデータをメインメモリ２６上の所定のアドレスに書き込んだ後に即座に、後段階の処理を行う別のサブプロセッサ２３が前処理後のデータを読み出すことが可能となる。
【００３７】
図２（Ｂ）に示すように、各サブプロセッサ２３内のＬＳ２４も、複数のアドレスを指定できるメモリロケーションによって構成される。各メモリロケーションに対しては、同様に追加セグメントが割り振られる。追加セグメントは、ビジービットを含むものとされる。
【００３８】
サブプロセッサ２３がメインメモリ２６内のデータを自身のＬＳ２４のメモリロケーションに読み出すときには、対応するビジービットを１に設定して予約する。ビジービットが１であるメモリロケーションには、他のデータは格納することができない。ＬＳ２４のメモリロケーションに読み出し後、ビジービットは０になり、任意の目的に使用できるようになる。
【００３９】
図２（Ａ）に示すように、さらに、各情報処理コントローラと接続されたメインメモリ２６には、複数のサンドボックスが含まれる。サンドボックスは、メインメモリ２６内の領域を画定するものであり、各サンドボックスは、各サブプロセッサ２３に割り当てられ、そのサブプロセッサが排他的に使用することができる。すなわち、各々のサブプロセッサ２３は、自身に割り当てられたサンドボックスを使用できるが、この領域を超えてデータのアクセスを行うことはできない。メインメモリ２６は、複数のメモリロケーションから構成されるが、サンドボックスは、これらのメモリロケーションの集合である。
【００４０】
更に、メインメモリ２６の排他的な制御を実現するために、図２（Ｃ）に示すようなキー管理テーブルが用いられる。キー管理テーブルは、情報処理コントローラ内のＳＲＡＭ等の比較的高速のメモリに格納され、ＤＭＡＣ２５と関連付けられる。キー管理テーブル内の各エントリには、サブプロセッサＩＤ、サブプロセッサキー及びキーマスクが含まれる。
【００４１】
サブプロセッサ２３がメインメモリ２６を使用する際のプロセスは、以下の通りである。まず、サブプロセッサ２３はＤＭＡＣ２５に、読み出しまたは書き込みのコマンドを出力する。このコマンドには、自身のサブプロセッサＩＤと、使用要求先であるメインメモリ２６のアドレスが含まれる。
【００４２】
ＤＭＡＣ２５は、このコマンドを実行する前に、キー管理テーブルを参照して、使用要求元のサブプロセッサのサブプロセッサキーを調べる。次に、ＤＭＡＣ２５は、調べた使用要求元のサブプロセッサキーと、使用要求先であるメインメモリ２６内の図２（Ａ）に示したメモリロケーションに割り振られたアクセスキーとを比較して、２つのキーが一致した場合にのみ、上記のコマンドを実行する。
【００４３】
図２（Ｃ）に示したキー管理テーブル上のキーマスクは、その任意のビットが１になることによって、そのキーマスクに関連付けられたサブプロセッサキーの対応するビットが０または１になることができる。例えば、サブプロセッサキーが１０１０であるとする。通常、このサブプロセッサキーによって１０１０のアクセスキーを持つサンドボックスへのアクセスだけが可能になる。しかし、このサブプロセッサキーと関連付けられたキーマスクが０００１に設定されている場合には、キーマスクのビットが１に設定された桁のみにつき、サブプロセッサキーとアクセスキーとの一致判定がマスクされ、このサブプロセッサキー１０１０によってアクセスキーが１０１０または１０１１のいずれかであるアクセスキーを持つサンドボックスへのアクセスが可能となる。
【００４４】
以上のようにして、メインメモリ２６のサンドボックスの排他性が実現される。すなわち、１つの情報処理コントローラ内の複数のサブプロセッサによってデータを多段階に処理する必要がある場合、以上のように構成することによって、前段階の処理を行うサブプロセッサと、後段階の処理を行うサブプロセッサのみが、メインメモリ２６の所定アドレスにアクセスできるようになり、データを保護することができる。
【００４５】
例えば、以下のように使用することが考えられる。まず、情報処理装置の起動直後においては、キーマスクの値は全てゼロである。メインプロセッサ内のプログラムが実行され、サブプロセッサ内のプログラムと連携動作するものとする。第１のサブプロセッサにより出力された処理結果データを一旦メインメモリに格納し、第２のサブプロセッサに入力したいときには、該当するメインメモリ領域は、当然どちらのサブプロセッサからもアクセス可能である必要がある。そのような場合に、メインプロセッサ内のプログラムは、キーマスクの値を適切に変更し、複数のサブプロセッサからアクセスできるメインメモリ領域を設けることにより、サブプロセッサによる多段階的な処理を可能にする。
【００４６】
より具体的には、他の情報処理装置からのデータ→第１のサブプロセッサによる処理→第１のメインメモリ領域→第２のサブプロセッサによる処理→第２のメインメモリ領域、という手順で多段階処理が行われるときには、
第１のサブプロセッサのサブプロセッサキー：０１００、
第１のメインメモリ領域のアクセスキー    ：０１００、
第２のサブプロセッサのサブプロセッサキー：０１０１、
第２のメインメモリ領域のアクセスキー    ：０１０１
というような設定のままだと、第２のサブプロセッサは第１のメインメモリ領域にアクセスすることができない。そこで、第２のサブプロセッサのキーマスクを０００１にすることにより、第２のサブプロセッサによる第１のメインメモリ領域へのアクセスを可能にすることができる。
【００４７】
図１のネットワークシステムでは、情報処理装置１、２、３、４間での分散処理のために、情報処理装置１、２、３、４間でソフトウェアセルが伝送される。すなわち、ある情報処理装置内の情報処理コントローラに含まれるメインプロセッサ２１は、コマンド、プログラム及びデータを含むソフトウェアセルを生成し、ネットワーク９を介して他の情報処理装置に送信することによって、処理を分散することができる。
【００４８】
図３に、ソフトウェアセルの構成の一例を示す。この例のソフトウェアセルは、全体として、送信元ＩＤ、送信先ＩＤ、応答先ＩＤ、セルインターフェース、ＤＭＡコマンド、プログラム及びデータによって構成される。
【００４９】
送信元ＩＤには、ソフトウェアセルの送信元である情報処理装置のネットワークアドレス及び当該情報処理装置の情報処理装置ＩＤ、更に、その情報処理装置内の情報処理コントローラが備えるメインプロセッサ２１及び各サブプロセッサ２３の識別子（メインプロセッサＩＤ及びサブプロセッサＩＤ）が含まれる。
【００５０】
送信先ＩＤ及び応答先ＩＤには、それぞれ、ソフトウェアセルの送信先である情報処理装置、及びソフトウェアセルの実行結果の応答先である情報処理装置についての、同じ情報が含まれる。
【００５１】
セルインターフェースは、ソフトウェアセルの利用に必要な情報であり、グローバルＩＤ、必要なサブプロセッサの情報、サンドボックスサイズ及び前回のソフトウェアセルＩＤから構成される。
【００５２】
グローバルＩＤは、ネットワーク全体を通して当該ソフトウェアセルを一意的に識別できるものであり、送信元ＩＤ及びソフトウェアセルの作成または送信の日時（日付及び時刻）に基づいて作成される。
【００５３】
必要なサブプロセッサの情報は、当該ソフトウェアセルの実行に必要なサブプロセッサの数を設定する。サンドボックスサイズは、当該ソフトウェアセルの実行に必要なメインメモリ２６内及びサブプロセッサ２３のＬＳ２４内のメモリ量を設定する。前回のソフトウェアセルＩＤは、ストリーミングデータなどのシーケンシャルな実行を要求する１グループのソフトウェアセル内の、前回のソフトウェアセルの識別子である。
【００５４】
ソフトウェアセルの実行セクションは、ＤＭＡコマンド、プログラム及びデータから構成される。ＤＭＡコマンドには、プログラムの起動に必要な一連のＤＭＡコマンドが含まれ、プログラムには、サブプロセッサ２３によって実行されるサブプロセッサプログラムが含まれる。ここでのデータは、このサブプロセッサプログラムを含むプログラムによって処理されるデータである。
【００５５】
更に、ＤＭＡコマンドには、ロードコマンド、キックコマンド、機能プログラム実行コマンド、ステータス要求コマンド、及びステータス返信コマンドが含まれる。
【００５６】
ロードコマンドは、メインメモリ２６内の情報をサブプロセッサ２３内のＬＳ２４にロードするコマンドであり、ロードコマンド自体のほかに、メインメモリアドレス、サブプロセッサＩＤ及びＬＳアドレスを含む。メインメモリアドレスは、情報のロード元であるメインメモリ２６内の所定領域のアドレスを示す。サブプロセッサＩＤ及びＬＳアドレスは、情報のロード先であるサブプロセッサ２３の識別子及びＬＳ２４のアドレスを示す。
【００５７】
キックコマンドは、プログラムの実行を開始するコマンドであり、キックコマンド自体のほかに、サブプロセッサＩＤ及びプログラムカウンタを含む。サブプロセッサＩＤは、キック対象のサブプロセッサ２３を識別し、プログラムカウンタは、プログラム実行用プログラムカウンタのためのアドレスを与える。
【００５８】
機能プログラム実行コマンドは、後述のように、ある情報処理装置が他の情報処理装置に対して、機能プログラムの実行を要求するコマンドである。機能プログラム実行コマンドを受信した情報処理装置内の情報処理コントローラは、後述の機能プログラムＩＤによって、起動すべき機能プログラムを識別する。
【００５９】
ステータス要求コマンドは、送信先ＩＤで示される情報処理装置の現在の動作状態（状況）に関する装置情報を、応答先ＩＤで示される情報処理装置宛に送信要求するコマンドである。機能プログラムについては後述するが、図６に示す情報処理コントローラのメインメモリ２６が記憶するソフトウェアの構成図において機能プログラムにカテゴライズされるプログラムである。機能プログラムは、メインメモリ２６にロードされ、メインプロセッサ２１により実行される。
【００６０】
ステータス返信コマンドは、上記のステータス要求コマンドを受信した情報処理装置が、自身の装置情報を当該ステータス要求コマンドに含まれる応答先ＩＤで示される情報処理装置に応答するコマンドである。ステータス返信コマンドは、実行セクションのデータ領域に装置情報を格納する。
【００６１】
図４に、ＤＭＡコマンドがステータス返信コマンドである場合におけるソフトウェアセルのデータ領域の構造を示す。
【００６２】
情報処理装置ＩＤは、情報処理コントローラを備える情報処理装置を識別するための識別子であり、ステータス返信コマンドを送信する情報処理装置のＩＤを示す。情報処理装置ＩＤは、電源投入時、その情報処理装置内の情報処理コントローラに含まれるメインプロセッサ２１によって、電源投入時の日時、情報処理装置のネットワークアドレス及び情報処理装置内の情報処理コントローラに含まれるサブプロセッサ２３の数などに基づいて生成される。
【００６３】
情報処理装置種別ＩＤには、当該情報処理装置の特徴を表す値が含まれる。情報処理装置の特徴とは、例えば、後述のハードディスクレコーダ、オーディオプレーヤ、ホームサーバ等である。また、情報処理装置種別ＩＤは、映像音声記録、映像音声再生等、情報処理装置の機能を表すものであってもよい。情報処理装置の特徴や機能を表す値は予め決定されているものとし、情報処理装置種別ＩＤを読み出すことにより、当該情報処理装置の特徴や機能を把握することが可能である。
【００６４】
ＭＳ（マスター／スレーブ）ステータスは、後述のように情報処理装置がマスター装置またはスレーブ装置のいずれで動作しているかを表すもので、これが０に設定されている場合にはマスター装置として動作していることを示し、１に設定されている場合にはスレーブ装置として動作していることを示す。
【００６５】
メインプロセッサ動作周波数は、情報処理コントローラ内のメインプロセッサ２１の動作周波数を表す。メインプロセッサ使用率は、メインプロセッサ２１で現在動作している全てのプログラムについての、メインプロセッサ２１での使用率を表す。メインプロセッサ使用率は、対象メインプロセッサの全処理能力に対する使用中の処理能力の比率を表した値で、例えばプロセッサ処理能力評価のための単位であるＭＩＰＳを単位として算出され、または単位時間あたりのプロセッサ使用時間に基づいて算出される。後述のサブプロセッサ使用率についても同様である。
【００６６】
サブプロセッサ数は、当該の情報処理コントローラが備えるサブプロセッサ２３の数を表す。サブプロセッサＩＤは、当該の情報処理コントローラ内の各サブプロセッサ２３を識別するための識別子である。
【００６７】
サブプロセッサステータスは、各サブプロセッサ２３の状態を表すものであり、ｕｎｕｓｅｄ，ｒｅｓｅｒｖｅｄ，ｂｕｓｙなどの状態がある。ｕｎｕｓｅｄは、当該のサブプロセッサが現在使用されてなく、使用の予約もされていないことを示す。ｒｅｓｅｒｖｅｄは、現在は使用されていないが、予約されている状態を示す。ｂｕｓｙは、現在使用中であることを示す。
【００６８】
サブプロセッサ使用率は、当該のサブプロセッサで現在実行している、または当該のサブプロセッサに実行が予約されているプログラムについての、当該サブプロセッサでの使用率を表す。すなわち、サブプロセッサ使用率は、サブプロセッサステータスがｂｕｓｙである場合には、現在の使用率を示し、サブプロセッサステータスがｒｅｓｅｒｖｅｄである場合には、後に使用される予定の推定使用率を示す。
【００６９】
サブプロセッサＩＤ、サブプロセッサステータス及びサブプロセッサ使用率は、１つのサブプロセッサ２３に対して一組設定され、１つの情報処理コントローラ内のサブプロセッサ２３に対応する組数が設定される。
【００７０】
メインメモリ総容量及びメインメモリ使用量は、それぞれ、当該の情報処理コントローラに接続されているメインメモリ２６の総容量及び現在使用中の容量を表す。
【００７１】
外部記録部数は、当該の情報処理コントローラに接続されている外部記録部２８の数を表す。外部記録部ＩＤは、当該の情報処理コントローラに接続されている外部記録部２８を一意的に識別する情報である。外部記録部種別ＩＤは、当該の外部記録部の種類（例えば、ハードディスク、ＣＤ±ＲＷ、ＤＶＤ±ＲＷ、メモリディスク、ＳＲＡＭ、ＲＯＭなど）を表す。
【００７２】
外部記録部総容量及び外部記録部使用量は、それぞれ、外部記録部ＩＤによって識別される外部記録部２８の総容量及び現在使用中の容量を表す。
【００７３】
外部記録部ＩＤ、外部記録部種別ＩＤ、外部記録部総容量及び外部記録部使用量は、１つの外部記録部２８に対して一組設定されるものであり、当該の情報処理コントローラに接続されている外部記録部２８の数の組数だけ設定される。すなわち、１つの情報処理コントローラに複数の外部記録部が接続されている場合、各々の外部記録部には異なる外部記録部ＩＤが割り当てられ、外部記録部種別ＩＤ、外部記録部総容量及び外部記録部使用量も別々に管理される。
【００７４】
ある情報処理装置内の情報処理コントローラに含まれるメインプロセッサ２１は、以上のような構成のソフトウェアセルを生成し、ネットワーク９を介して他の情報処理装置及び当該装置内の情報処理コントローラに送信する。送信元の情報処理装置、送信先の情報処理装置、応答先の情報処理装置、及び各装置内の情報処理コントローラは、それぞれ、上記の送信元ＩＤ、送信先ＩＤ及び応答先ＩＤによって識別される。
【００７５】
ソフトウェアセルを受信した情報処理装置内の情報処理コントローラに含まれるメインプロセッサ２１は、そのソフトウェアセルをメインメモリ２６に格納する。さらに、送信先のメインプロセッサ２１は、ソフトウェアセルを読み出し、それに含まれるＤＭＡコマンドを処理する。具体的には、送信先のメインプロセッサ２１は、まず、ロードコマンドを実行する。これによって、ロードコマンドで指示されたメインメモリアドレスから、ロードコマンドに含まれるサブプロセッサＩＤ及びＬＳアドレスで特定されるサブプロセッサ内のＬＳ２４の所定領域に、情報がロードされる。ここでロードされる情報は、受信したソフトウェアセルに含まれるサブプロセッサプログラムまたはデータ、あるいはその他の指示されたデータである。
【００７６】
次に、メインプロセッサ２１は、キックコマンドを、これに含まれるサブプロセッサＩＤで指示されたサブプロセッサに、同様にキックコマンドに含まれるプログラムカウンタと共に出力する。指示されたサブプロセッサは、そのキックコマンド及びプログラムカウンタに従って、サブプロセッサプログラムを実行する。そして、実行結果をメインメモリ２６に格納した後、実行を完了したことをメインプロセッサ２１に通知する。
【００７７】
なお、送信先の情報処理装置内の情報処理コントローラにおいてソフトウェアセルを実行するプロセッサはサブプロセッサ２３に限定されるものではなく、メインプロセッサ２１がソフトウェアセルに含まれる機能プログラムなどのメインメモリ用プログラムを実行するように指定することも可能である。
【００７８】
この場合には、送信元の情報処理装置は、送信先の情報処理装置宛に、サブプロセッサプログラムの代わりに、メインメモリ用プログラム及びそのメインメモリ用プログラムによって処理されるデータを含み、ＤＭＡコマンドがロードコマンドであるソフトウェアセルを送信し、メインメモリ２６にメインメモリ用プログラム及びそれによって処理されるデータを記憶させる。次に、送信元の情報処理装置は、送信先の情報処理装置宛に、送信先の情報処理装置内の情報処理コントローラについてのメインプロセッサＩＤ、メインメモリアドレス、メインメモリ用プログラムを識別するための後述の機能プログラムＩＤなどの識別子、及びプログラムカウンタを含み、ＤＭＡコマンドがキックコマンドまたは機能プログラム実行コマンドであるソフトウェアセルを送信して、メインプロセッサ２１に当該メインメモリ用プログラムを実行させる。
【００７９】
以上のように、この発明のネットワークシステムでは、送信元の情報処理装置は、サブプロセッサプログラムまたはメインメモリ用プログラムをソフトウェアセルによって送信先の情報処理装置に送信するとともに、当該サブプロセッサプログラムを送信先の情報処理装置内の情報処理コントローラに含まれるサブプロセッサ２３にロードさせ、当該サブプロセッサプログラムまたは当該メインメモリ用プログラムを送信先の情報処理装置に実行させることができる。
【００８０】
送信先の情報処理装置内の情報処理コントローラでは、受信したソフトウェアセルに含まれるプログラムがサブプロセッサプログラムである場合には、当該サブプロセッサプログラムを指定されたサブプロセッサにロードさせる。そして、ソフトウェアセルに含まれるサブプロセッサプログラムまたはメインメモリ用プログラムを実行させる。したがって、ユーザが送信先の情報処理装置を操作しなくても自動的に、当該サブプロセッサプログラムまたは当該メインメモリ用プログラムを送信先の情報処理装置内の情報処理コントローラに実行させることができる。
【００８１】
このようにして情報処理装置は、自装置内の情報処理コントローラがサブプロセッサプログラムまたは機能プログラムなどのメインメモリ用プログラムを有していない場合には、ネットワークに接続された他の情報処理装置からそれらを取得することができる。更に、各サブプロセッサ間ではＤＭＡ方式によりデータ転送を行い、また上述したサンドボックスを使用することによって、１つの情報処理コントローラ内でデータを多段階に処理する必要がある場合でも、高速かつ高セキュリティに処理を実行することができる。
【００８２】
ソフトウェアセルの使用による分散処理の結果、図５の上段に示すようにネットワーク９に接続されている複数の情報処理装置１、２、３、４は、図５の下段に示すように、仮想的な１台の情報処理装置７として動作する。ただし、そのためには、以下のような構成によって、以下のような処理が実行される必要がある。
【００８３】
図６に、個々の情報処理コントローラのメインメモリ２６が記憶するソフトウェアの構成を示す。これらのソフトウェア（プログラム）は、情報処理装置に電源が投入される前においては、当該の情報処理コントローラに接続される外部記録部２８に記録されているものである。各プログラムは、機能または特徴によって、制御プログラム、機能プログラム及びデバイスドライバにカテゴライズされる。
【００８４】
制御プログラムは、各情報処理コントローラが同じものを備え、各情報処理コントローラのメインプロセッサ２１が実行するもので、後述のＭＳ（マスター／スレーブ）マネージャ及び能力交換プログラムを含む。
【００８５】
機能プログラムは、メインプロセッサ２１が実行するもので、記録用、再生用、素材検索用など、情報処理コントローラごとに情報処理装置に応じたものが備えられる。
【００８６】
デバイスドライバは、情報処理コントローラ（情報処理装置）の入出力（送受信）用で、放送受信、モニタ出力、ビットストリーム入出力、ネットワーク入出力など、情報処理コントローラ毎に情報処理装置に応じたものが備えられる。
【００８７】
情報処理装置が物理的にネットワーク９に接続された状態で、情報処理装置に主電源が投入され、情報処理装置が電気的・機能的にもネットワーク９に接続されると、その情報処理装置の情報処理コントローラのメインプロセッサ２１は、制御プログラムに属する各プログラム、及びデバイスドライバに属する各プログラムを、メインメモリ２６にロードする。
【００８８】
ロード手順としては、メインプロセッサ２１は、まず、ＤＣ２７に読み出し命令を実行させることによって、外部記録部２８からプログラムを読み出し、次に、ＤＭＡＣ２５に書き込み命令を実行させることによって、そのプログラムをメインメモリ２６に書き込む。
【００８９】
機能プログラムに属する各プログラムについては、必要なときに必要なプログラムだけをロードするように構成してもよく、または、他のカテゴリに属するプログラムと同様に、主電源投入直後に各プログラムをロードするように構成してもよい。
【００９０】
ここで、機能プログラムに属する各プログラムは、ネットワークに接続された全ての情報処理装置の外部記録部２８に記録されている必要はなく、いずれか１つの情報処理装置の外部記録部２８に記録されていれば、前述の方法によって他の情報処理装置からロードすることができるので、結果的に図５の下段に示すように、仮想的な１台の情報処理装置７として機能プログラムを実行することができる。
【００９１】
また、前述したようにメインプロセッサ２１によって処理される機能プログラムは、サブプロセッサ２３によって処理されるサブプロセッサプログラムと連携動作する場合がある。そこでメインプロセッサ２１が外部記録部２８から機能プログラムを読み出し、メインメモリ２６に書き込む際に対象となる機能プログラムと連携動作するサブプロセッサプログラムが存在する場合には、当該サブプロセッサプログラムも併せて同じメインメモリ２６に書き込むものとする。この場合、連携動作するサブプロセッサプログラムは１個である場合もあるし、複数個であることもあり得る。複数個である場合には、全ての連携動作するサブプロセッサプログラムをメインメモリ２６に書き込むことになる。メインメモリ２６に書き込まれたサブプロセッサプログラムはその後、サブプロセッサ２３内のＬＳ２４に書き込まれ、メインプロセッサ２１によって処理される機能プログラムと連携動作する。
【００９２】
図３のソフトウェアセルに示したように、機能プログラムには、プログラムごとにプログラムを一意的に識別できる識別子が、機能プログラムＩＤとして割り当てられる。機能プログラムＩＤは、機能プログラムの作成の段階で、作成日時や情報処理装置ＩＤなどから決定される。
【００９３】
そしてサブプロセッサプログラムにもサブプロセッサプログラムＩＤが割り当てられ、これによりサブプロセッサプログラムを一意的に識別可能である。割り当てられるサブプロセッサプログラムＩＤは、連携動作する相手となる機能プログラムの機能プログラムＩＤと関連性のある識別子、例えば機能プログラムＩＤを親番号とした上で最後尾に枝番号を付加させたもの等であることもあり得るし、連携動作する相手となる機能プログラムの機能プログラムＩＤとは関連性のない識別子であってもよい。いずれにしても機能プログラムとサブプロセッサプログラムが連携動作する場合には、両者とも相手の識別子であるプログラムＩＤを自プログラム内に互いに記憶しておく必要がある。機能プログラムが複数個のサブプロセッサプログラムと連携動作する場合にも、当該機能プログラムは複数個ある全てのサブプロセッサプログラムのサブプロセッサプログラムＩＤを記憶しておくことになる。
【００９４】
メインプロセッサ２１は、自身が動作する情報処理装置の装置情報（動作状態に関する情報）を格納するための領域をメインメモリ２６に確保し、当該情報を自装置の装置情報テーブルとして記録する。ここでの装置情報は、図４に示した情報処理装置ＩＤ以下の各情報である。
【００９５】
上述したネットワークシステムでは、ある情報処理装置への主電源投入時、その情報処理装置の情報処理コントローラのメインプロセッサ２１は、マスター／スレーブマネージャ（以下、ＭＳマネージャ）をメインメモリ２６にロードし、実行する。
【００９６】
ＭＳマネージャは、自身が動作する情報処理装置がネットワーク９に接続されていることを検知すると、同じネットワーク９に接続されている他の情報処理装置の存在を確認する。ここでの「接続」または「存在」は、上述したように、情報処理装置が物理的にネットワーク９に接続されているだけでなく、電気的・機能的にもネットワーク９に接続されていることを示す。また、自身が動作する情報処理装置を自装置、他の情報処理装置を他装置と称する。当該装置も、当該情報処理装置を示すものとする。
【００９７】
ＭＳマネージャが同じネットワーク９に接続されている他の情報処理装置の存在を確認する方法を以下に示す。
【００９８】
ＭＳマネージャは、ＤＭＡコマンドがステータス要求コマンドであり、送信元ＩＤ及び応答先ＩＤが当該情報処理装置で、送信先ＩＤを特定しないソフトウェアセルを生成して、当該情報処理装置が接続されたネットワーク上に送信して、ネットワーク接続確認用のタイマーを設定する。タイマーのタイムアウト時間は、例えば１０分とされる。
【００９９】
当該ネットワークシステム上に他の情報処理装置が接続されている場合、その他装置は、上記ステータス要求コマンドのソフトウェアセルを受信し、上記応答先ＩＤで特定されるステータス要求コマンドを発行した情報処理装置に対して、ＤＭＡコマンドがステータス返信コマンドであり、かつデータとして自身（その他装置）の装置情報を含むソフトウェアセルを送信する。このステータス返信コマンドのソフトウェアセルには、少なくとも当該他装置を特定する情報（情報処理装置ＩＤ、メインプロセッサに関する情報、サブプロセッサに関する情報など）及び当該他装置のＭＳステータスが含まれる。
【０１００】
ステータス要求コマンドを発行した情報処理装置のＭＳマネージャは、上記ネットワーク接続確認用のタイマーがタイムアウトするまで、当該ネットワーク上の他装置から送信されるステータス返信コマンドのソフトウェアセルの受信を監視する。その結果、ＭＳステータス＝０（マスター装置）を示すステータス返信コマンドが受信された場合には、自装置の装置情報テーブルにおけるＭＳステータスを１に設定する。これによって、当該装置は、スレーブ装置となる。
【０１０１】
一方、上記ネットワーク接続確認用のタイマーがタイムアウトするまでの間にステータス返信コマンドが全く受信されなかった場合、またはＭＳステータス＝０（マスター装置）を示すステータス返信コマンドが受信されなかった場合には、自装置の装置情報テーブルにおけるＭＳステータスを０に設定する。これによって、当該装置は、マスター装置となる。
【０１０２】
すなわち、いずれの装置もネットワーク９に接続されていない状態、またはネットワーク９上にマスター装置が存在しない状態において、新たな情報処理装置がネットワーク９に接続されると、当該装置は自動的にマスター装置として設定される。一方、ネットワーク９上に既にマスター装置が存在する状態において、新たな情報処理装置がネットワーク９に接続されると、当該装置は自動的にスレーブ装置として設定される。
【０１０３】
マスター装置及びスレーブ装置のいずれについても、ＭＳマネージャは、定期的にステータス要求コマンドをネットワーク９上の他装置に送信してステータス情報を照会することにより、他装置の状況を監視する。その結果、ネットワーク９に接続されている情報処理装置の主電源が遮断され、またはネットワーク９から情報処理装置が切り離されることにより、予め判定用に設定された所定期間内に特定の他装置からステータス返信コマンドが返信されなかった場合や、ネットワーク９に新たな情報処理装置が接続された場合など、ネットワーク９の接続状態に変化があった場合には、その情報を後述の能力交換プログラムに通知する。
【０１０４】
メインプロセッサ２１は、ＭＳマネージャから、ネットワーク９上の他装置の照会及び自装置のＭＳステータスの設定完了の通知を受けると、能力交換プログラムを実行する。
【０１０５】
能力交換プログラムは、自装置がマスター装置である場合には、ネットワーク９に接続されている全ての他装置の装置情報、すなわち各スレーブ装置の装置情報を取得する。他装置の装置情報の取得は、上述したように、ＤＭＡコマンドがステータス要求コマンドであるソフトウェアセルを生成して他装置に送信し、その後、ＤＭＡコマンドがステータス返信コマンドで、かつデータとして他装置の装置情報を含むソフトウェアセルを他装置から受信することによって可能である。
【０１０６】
能力交換プログラムは、マスター装置である自装置の装置情報テーブルと同様に、ネットワーク９に接続されている全ての他装置（各スレーブ装置）の装置情報を格納するための領域を自装置のメインメモリ２６に確保し、これら情報を他装置（スレーブ装置）の装置情報テーブルとして記録する。すなわち、マスター装置のメインメモリ２６には、自装置を含むネットワーク９に接続されている全ての情報処理装置の装置情報が、装置情報テーブルとして記録される。
【０１０７】
一方、自装置がスレーブ装置である場合には、能力交換プログラムは、ネットワーク９に接続されている全ての他装置の装置情報、すなわちマスター装置及び自装置以外の各スレーブ装置の装置情報を取得し、これら装置情報に含まれる情報処理装置ＩＤ及びＭＳステータスを、自装置のメインメモリ２６に記録する。すなわち、スレーブ装置のメインメモリ２６には、自装置の装置情報が、装置情報テーブルとして記録されるとともに、自装置以外のネットワーク９に接続されているマスター装置及び各スレーブ装置についての情報処理装置ＩＤ及びＭＳステータスが、別の装置情報テーブルとして記録される。
【０１０８】
また、マスター装置及びスレーブ装置のいずれについても、能力交換プログラムは、上記のようにＭＳマネージャから、新たにネットワーク９に情報処理装置が接続されたことが通知されたときには、その情報処理装置の装置情報を取得し、上述したようにメインメモリ２６に記録する。
【０１０９】
なお、ＭＳマネージャ及び能力交換プログラムは、メインプロセッサ２１で実行されることに限らず、いずれかのサブプロセッサ２３で実行されてもよい。また、ＭＳマネージャ及び能力交換プログラムは、情報処理装置の主電源が投入されている間は常時動作する常駐プログラムであることが望ましい。
【０１１０】
マスター装置及びスレーブ装置のいずれについても、能力交換プログラムは、上記のようにＭＳマネージャから、ネットワーク９に接続されている情報処理装置の主電源が遮断され、またはネットワーク９から情報処理装置が切り離されたことが通知されたときには、その情報処理装置の装置情報テーブルを自装置のメインメモリ２６から削除する。
【０１１１】
更に、このようにネットワーク９から切断された情報処理装置がマスター装置である場合には、以下のような方法によって、新たにマスター装置が決定される。
【０１１２】
具体的には、例えば、ネットワーク９から切断されていない情報処理装置は、それぞれ、自装置及び他装置の情報処理装置ＩＤを数値に置き換えて、自装置の情報処理装置ＩＤを他装置の情報処理装置ＩＤと比較し、自装置の情報処理装置ＩＤがネットワーク９から切断されていない情報処理装置中で最小である場合、そのスレーブ装置は、マスター装置に移行して、ＭＳステータスを０に設定し、マスター装置として、上述したように、ネットワーク９に接続されている全ての他装置（各スレーブ装置）の装置情報を取得して、メインメモリ２６に記録する。
【０１１３】
図５の下段に示したようにネットワーク９に接続されている複数の情報処理装置１、２、３、４を仮想的な１台の情報処理装置７として動作させるためには、マスター装置がユーザの操作及びスレーブ装置の動作状態を把握する必要がある。
【０１１４】
図７に、４台の情報処理装置が仮想的な１台の情報処理装置７として動作する様子を示す。情報処理装置１がマスター装置、情報処理装置２、３、４がスレーブ装置Ａ、Ｂ、Ｃとして、動作しているものとする。
【０１１５】
ユーザがネットワーク９に接続されている情報処理装置を操作した場合、操作対象がマスター装置１であれば、その操作情報は、マスター装置１において直接把握され、操作対象がスレーブ装置であれば、その操作情報は、操作されたスレーブ装置からマスター装置１に送信される。すなわち、ユーザの操作対象がマスター装置１とスレーブ装置のいずれであるかにかかわらず、その操作情報は常にマスター装置１において把握される。操作情報の送信は、例えば、ＤＭＡコマンドが操作情報送信コマンドであるソフトウェアセルによって行われる。
【０１１６】
そして、マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、その操作情報に従って、実行する機能プログラムを選択する。その際、必要であれば、マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、上記の方法によって自装置の外部記録部２８−１、２８−２からメインメモリ２６−１に機能プログラムをロードするが、他の情報処理装置（スレーブ装置）がマスター装置１に機能プログラムを送信してもよい。
【０１１７】
機能プログラムには、その実行単位毎に必要となる、図４に示した各情報として表される情報処理装置種別ＩＤ、メインプロセッサまたはサブプロセッサの処理能力、メインメモリ使用量、外部記録部に関する条件等の、装置に関する要求スペックが規定されている。
【０１１８】
マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、各機能プログラムについて必要となる上記要求スペックを読み出す。また、予め能力交換プログラムによってメインメモリ２６−１に記録された装置情報テーブルを参照し、各情報処理装置の装置情報を読み出す。ここでの装置情報は、図４に示した情報処理装置ＩＤ以下の各情報を示し、メインプロセッサ、サブプロセッサ、メインメモリ及び外部記録部に関する情報である。
【０１１９】
マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、ネットワーク９上に接続された各情報処理装置の上記装置情報と、機能プログラム実行に必要となる上記要求スペックとを順次比較する。
【０１２０】
そして、例えば、機能プログラムが録画機能を必要とする場合には、情報処理装置種別ＩＤに基づいて、録画機能を有する情報処理装置のみを特定して抽出する。更に、機能プログラムを実行するために必要なメインプロセッサまたはサブプロセッサの処理能力、メインメモリ使用量、外部記録部に関する条件を確保できるスレーブ装置を、実行要求候補装置として特定する。ここで、複数の実行要求候補装置が特定された場合には、当該候補装置から１つの実行要求候補装置を特定して選択する。
【０１２１】
実行要求するスレーブ装置が特定されたら、マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、その特定されたスレーブ装置について、自装置内の情報処理コントローラ１１に含まれるメインメモリ２６−１に記録されている当該スレーブ装置の装置情報テーブルを更新する。
【０１２２】
更に、マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、ＤＭＡコマンドがロードコマンド及びキックコマンドであるソフトウェアセルを生成し、当該ソフトウェアセルのセルインターフェースに、機能プログラムに関する必要なサブプロセッサの情報及びサンドボックスサイズ（図３参照）を設定して、上記実行要求されるスレーブ装置に対して送信する。
【０１２３】
機能プログラムの実行を要求されたスレーブ装置は、その機能プログラムを実行するとともに、自装置の装置情報テーブルを更新する。その際、必要であれば、スレーブ装置内の情報処理コントローラに含まれるメインプロセッサ２１は、上記の方法によって自装置の外部記録部２８からメインメモリ２６に機能プログラムおよび当該機能プログラムと連携動作するサブプロセッサプログラムをロードする。
【０１２４】
機能プログラムの実行を要求されたスレーブ装置の外部記録部２８に、必要な機能プログラムまたは当該機能プログラムと連携動作するサブプロセッサプログラムが記録されていない場合には、他の情報処理装置が当該機能プログラムまたはサブプロセッサプログラムを、その機能プログラム実行要求先スレーブ装置に送信するように、システムを構成すればよい。
【０１２５】
サブプロセッサプログラムについては、前述のロードコマンドおよびキックコマンドを利用して他の情報処理装置に実行させることもできる。
【０１２６】
機能プログラムの実行終了後、機能プログラムを実行したスレーブ装置内の情報処理コントローラに含まれるメインプロセッサ２１は、終了通知をマスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１に送信するとともに、自装置の装置情報テーブルを更新する。マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、その終了通知を受信して、機能プログラムを実行したスレーブ装置の装置情報テーブルを更新する。
【０１２７】
マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、自装置及び他装置の装置情報テーブルの参照結果から、当該の機能プログラムを実行することができる情報処理装置として、自身を選択する場合もあり得る。その場合には、マスター装置１が当該機能プログラムを実行する。
【０１２８】
図７の例で、ユーザがスレーブ装置Ａ（情報処理装置２）を操作し、当該操作に応じた機能プログラムを別のスレーブ装置Ｂ（情報処理装置３）が実行する場合について、図８を用いてその分散処理の例を説明する。
【０１２９】
図８の例では、ユーザがスレーブ装置Ａを操作することによって、スレーブ装置Ａを含むネットワークシステム全体の分散処理が開始して、まず、スレーブ装置Ａは、ステップ８１で、その操作情報をマスター装置１に送信する。
【０１３０】
マスター装置１は、ステップ７２で、その操作情報を受信し、さらにステップ７３に進んで、自装置のメインメモリ２６−１に記録されている自装置及び他装置の装置情報テーブルから、各情報処理装置の動作状態を調べて、受信した操作情報に応じた機能プログラムを実行することができる情報処理装置を選択する。この例は、スレーブ装置Ｂが選択される場合である。
【０１３１】
次に、マスター装置１は、ステップ７４で、その選択したスレーブ装置Ｂに対して機能プログラムの実行を要求する。
【０１３２】
スレーブ装置Ｂは、ステップ９５で、その実行要求を受信し、さらにステップ９６に進んで、実行要求された機能プログラムを実行する。
【０１３３】
以上のように、ユーザは、１台の情報処理装置のみを操作することによって、他の情報処理装置を操作することなく、複数の情報処理装置１、２、３、４を仮想的な１台の情報処理装置７として動作させることができる。
【０１３４】
次に、上記ネットワークシステムを前提として、本発明を、家庭内の遠隔制御システムに適用した場合の実施の形態について説明する。
【０１３５】
図９は、本実施形態における遠隔制御システムの構成を示す図である。なお、同図において、上記図１で説明したネットワークシステムの構成及び機能等について同様のものは説明を簡略または省略し、異なる点を中心に説明する。
【０１３６】
同図に示すように、本実施形態に係る遠隔制御システムは、ホームサーバ３１と、オーディオプレーヤ３２、ハードディスクレコーダ３３といった家電機器により構成される。これらの機器は家庭内においてＬＡＮ（Local Area Network）３５により接続されて、互いに通信を行うことが可能となっている。また、各機器は、リモートコントローラ３４により遠隔制御される。なお、本システムを構成する家電機器は、上記オーディオプレーヤ３２及びハードディスクレコーダ３３に限られるものではなく、例えばテレビや冷蔵庫等、家庭内で上記リモートコントローラ３４（以下、リモコン３４と記述する）により制御することが可能ならばどのような機器であってもよい。
【０１３７】
本システムにおいては、ユーザが所持するリモコン３４から送信された機器制御情報としての赤外線データを、上記ホームサーバ３１が直接または上記機器を介して受信して、当該機器制御情報により制御される対象の他の機器へ転送することにより、当該機器の遠隔制御を行うものとする。
【０１３８】
なお、ホームサーバ３１は上述の図１等における情報処理装置１として、オーディオプレーヤ３２は情報処理装置２として、ハードディスクレコーダ３３は情報処理装置３として機能し、それぞれ上述のメインプロセッサ、サブプロセッサを含む情報処理コントローラを有し、上記ＤＭＡコマンド等によりソフトウェアセルを実行したり、各種データをやり取りしたりすることが可能である。よって、各機器には、上記情報処理装置ＩＤとして、それぞれを識別するための機器ＩＤが付与されている。
【０１３９】
ホームサーバ３１は、通信部３６、操作入力部３７及び機器情報処理部３８を有し、それらは情報処理コントローラ１１のバス２９−１に接続されたバス４０に接続されている。また、機器情報処理部３８には機器情報データベース３９が接続されている。
【０１４０】
上記通信部３６は、上記リモコン３４や機器から上記機器制御情報を受信したり、当該機器制御情報を、ＬＡＮ３５を介して上記オーディオプレーヤ３２及びハードディスクレコーダ３３またはその他の家電機器に転送したりする際のインターフェースとなる。
【０１４１】
上記操作入力部３７は、例えばキーボード、タッチパネル、プッシュボタン等であり、ユーザがホームサーバ３１の各種設定を行ったり、上記機器情報データベース３９を更新する際に入力を行ったりする際のインターフェースとなる。
【０１４２】
上記機器情報処理部３８は、本システムにおける家庭内の各機器に関する情報を、上記機器情報データベース３９により一括管理する。そして上記機器制御情報及び機器識別情報を受信した際には、当該情報の転送先である機器を判断し、上記通信部３６を介して、適切な機器に当該情報を転送する。
【０１４３】
図１０は、上記機器情報データベース３９に記憶されたデータの例を示した図である。
【０１４４】
同図に示すように、機器情報データベース３９には、家庭内の各機器を識別するための上記機器ＩＤと、当該機器のカテゴリを示すデータがそれぞれ対応付けられて記憶されている。当該データは、家庭内の機器ＩＤを与えられた機器の数だけ存在する。なお、当該ホームサーバ３１にもホームサーバ３１自身を識別するためのＩＤが与えられている。
【０１４５】
上記機器情報処理部３８は、当該機器情報データベース３９を参照して、上記機器制御情報を送信すべき機器を判断する。また、家庭内で遠隔制御する機器が追加された場合には、その都度例えば上記操作入力部３７により入力することにより、当該機器情報データベース３９中の機器ＩＤ及び機器カテゴリを追加してデータベースの更新を行う。
【０１４６】
図１１は、上記リモコン３４の構成を示した図である。
【０１４７】
同図に示すように、リモコン３４には、簡易機能ボタン４１、転送機能ボタン４２、タッチパネル４３、ジョグダイヤル４４及び指紋センサ部４５が設けられている。
【０１４８】
簡易機能ボタン４１には、上記機器識別情報が付された各機器に対応して、各機器のモードを切り替える機能が一対一で割り振られている。例えば同図のボタン１にはオーディオプレーヤ、ボタン２にはテレビというように、ユーザが各ボタンを押す毎にリモコン３４が当該ボタンに対応した機器のリモコンとして機能するようになっている。ユーザは、家庭内の機器のうち、例えば普段頻繁に利用する機器を当該簡易機能ボタン４１に設定しておくことで、後述のタッチパネルの操作によらなくても所望の機器のモードへ切り替えることができる。
【０１４９】
転送機能ボタン４２は、上記機器制御情報を上記サーバ３１に転送させるために、転送モードに切り替えるためのボタンである。なお、リモコン３４において、当該転送モードを利用しない場合には予め特定の機器のリモコンとして機能するようにオフセットが設定されている。例えば、当該リモコン３４を通常はオーディオプレーヤ３２のリモコンとして利用し、当該オーディオプレーヤ３２以外の機器を制御する場合には、転送機能ボタン４２を押して転送モードに切り替える。
【０１５０】
タッチパネル４３は、例えばＴＦＴ（Thin Film Transistor）等のＬＣＤ（Liquid Crystal Display）から成り、各機器を選択するためのメニュー画面や、当該タッチパネル４３または上記簡易機能ボタン４１で選択された機器のリモコンのイメージ画像が表示される。当該リモコン画像中の各ボタンには、実際のリモコンのボタンと同一の機能が割り振られており、ユーザは当該各ボタンを押下することにより、各機器を遠隔制御することが可能となっている。リモコン３４は、各機器のリモコンに対応するリモコン画像データを予め記憶しておく。また、上記転送モードであるか否かも当該タッチパネル上に表示される。
【０１５１】
ジョグダイヤル４４は、上記タッチパネル４３に表示される各種メニュー画面において選択を行ったり、また各機器のリモコン画像が表示されている場合には、例えばハードディスクレコーダ３３において、ビデオの録画予約時等に文字を入力したりする際に用いられる。
【０１５２】
指紋センサ部４５は、例えばリモコン３４を複数人で利用する場合に、ユーザの指紋データを認識することにより各ユーザを認識し、認識されたユーザのリモコンのモードへと切り替えるために用いられる。すなわち、予め特定のユーザしか利用できない機器を設定しておき、あるユーザが、家庭内の機器のうち当該特定のユーザが利用する機器のモードを選択して操作しようとした場合には、リモコン３４は上記指紋センサ部４５による認証を促し、使用権限を持つと認証された上記特定のユーザ以外のユーザは利用できないようにしておく。また、上記簡易機能ボタン４１の機能の割り当てもユーザ毎に異なることが考えられるため、当該簡易機能ボタン４１を設定する場合には、各ユーザは当該指紋センサ部４５の認識により自己のモードへ切り替えた上で設定を行う。
【０１５３】
図１２は、上記リモコン３４から発せられ、上記ホームサーバ３１及び各機器へ送信される赤外線データの例を示した図である。
【０１５４】
同図（ａ）に示すように、一般的な赤外線リモコンから発信される赤外線信号は、先頭から順に、リーダコード、カスタムコード、データコード、ストップコードで構成される。
【０１５５】
リーダコードは、赤外線データの送信開始を示すビットである。カスタムコードは、各メーカの名前と機種を特定するためのコードで、各メーカが自由に使用することができ、メーカ毎に重複しないようになっている。データコードは、例えば電源のＯＮ／ＯＦＦ、再生開始、録画予約等、各制御命令の内容を示すコードである。そしてストップコードは、赤外線データの送信終了を示すビットである。
【０１５６】
同図（ｂ）は、本実施形態のリモコン３４から上記転送モードの場合に発信される赤外線データの構成を示した図である。転送モードにおいては、上記（ａ）の一般的なリモコンの赤外線データに比べて、上記リーダコードとカスタムコードの間に、各機器を識別するための情報として、上記図１０で説明した機器ＩＤを示す機器ＩＤコードが付加されている。
【０１５７】
当該機器ＩＤコードを含む赤外線データを受信した機器は、その機器ＩＤが当該機器自身の機器ＩＤと一致するか否かを判断し、一致する場合には上記受信した赤外線データ中の上記データコードに含まれる制御命令を実行する。一方、機器ＩＤが一致しない場合には当該赤外線データを、ＬＡＮ３５を介して上記ホームサーバ３１へ送信する。そして当該赤外線データを受信したホームサーバ３１は、機器ＩＤを認識して、当該機器ＩＤに対応する機器へ赤外線データを転送することにより当該機器が遠隔制御される。
【０１５８】
上記（ａ）に示した赤外線データは、本実施形態においては、リモコン３４が上記転送モードではない場合に送信される。すなわち、ユーザが近隣の制御対象の機器を、他の機器及び上記ホームサーバ３１を介さずにリモコン３４により直接制御するような場合には、上記機器ＩＤコードは必要ないため、通常の一般的なリモコンと同様の赤外線データを送信すればよい。
【０１５９】
ところで、上記リモコン３４により各機器を遠隔制御するためには、上記ホームサーバ３１が記憶する上記機器情報データベース３９を当該リモコン３４の方でも記憶しておく必要がある。よって、リモコン３４は、上記ホームサーバ３１から当該機器情報データベース３９を予めダウンロードして記憶しておく。また、当該ダウンロード後に上記機器情報データベース３９が更新された場合には、リモコン３４もデータベースを更新する必要があるため、リモコン３４は、遠隔制御を行う前処理として、ホームサーバ３１に問い合わせて自身のデータベースが最新のものであるかを確認する。そして、ホームサーバ３１は、当該リモコン３４の保持するデータベースが古いデータである場合には、データベースを更新させる。図１３は当該更新を行う際のホームサーバ３１の動作を示したフロー図である。
【０１６０】
同図に示すように、まずホームサーバ３１は、上記通信部３６を介して、リモコン３４から問い合わせを受けるとともに、当該リモコン３４が記憶している機器情報のデータベースを受信する（ステップ５１）。この際リモコン３４は、上記ホームサーバ３１へ問い合わせを行うための画面を上記タッチパネル４３に表示させ、当該画面を通じて問い合わせ及びデータの送信を行う。当該画面は、例えばユーザが上記転送機能ボタン４２を押して転送モードにした後、「データ更新」といったメニューを用意して表示させるようにすればよい。
【０１６１】
次に、問い合わせを受けたホームサーバ３１は、受信したリモコン３４のデータベースと、上記機器情報データベース３９とを比較し、両データベースが同一（最新）のものか否かを確認する（ステップ５２）。データが同一でない場合には（ステップ５３のＮＯ）、ホームサーバ３１はリモコン３４へ最新の機器情報データを送信する（ステップ５４）。
【０１６２】
当該送信が完了し、リモコン３４のデータが全て更新されると、ホームサーバ３１はその旨をリモコン３４に通知して（ステップ５５）終了する。上記ステップ５３において両データが同一の場合には（ステップ５３のＹＥＳ）、そのまま更新終了を通知する。
【０１６３】
ホームサーバ３１から更新終了の通知があった場合には、リモコン３４のタッチパネル４３上にその旨が表示される。なお当該表示は、タッチパネル４３上でなくとも、例えば問い合わせを行っている間リモコン３４に設けたランプを点灯させ、問い合わせが終了したら当該ランプを消灯させるような態様であっても構わない。
【０１６４】
以上の動作により、リモコン３４が記憶する機器情報データが最新のものでない場合に、当該データを更新させることができるため、例えば家庭内の機器の数が増加又は減少した場合でも、リモコン３４が記憶する情報と当該サーバ装置が記憶する情報とを常に最新の情報に一致させることにより、上記機器を適切に遠隔制御することができる。
【０１６５】
次に、以上のような構成及び前処理を基に、上記ホームサーバ３１により上記機器が遠隔制御されるまでの動作について説明する。ここでは、ユーザの近隣にはオーディオプレーヤ３２が存在し、ユーザは離れた位置に存在するハードディスクレコーダ３３に対してテレビ番組の録画予約の操作を所望している場合を想定して説明する。
【０１６６】
この場合、ユーザはリモコン３４から、上記ハードディスクレコーダ３３への機器制御情報をまず近隣のオーディオプレーヤ３２に送信し、当該情報をオーディオプレーヤ３２がホームサーバ３１へ転送し、更にホームサーバ３１がハードディスクレコーダ３３へ転送することにより遠隔制御が行われ、これら３台の情報処理装置が仮想的な１台の情報処理装置として機能する。
【０１６７】
なお、この場合のマスター／スレーブ関係については、ホームサーバ３１がマスター装置、オーディオプレーヤ３２及びハードディスクレコーダ３３がスレーブ装置として動作するものとする。
【０１６８】
まず、この場合に、上記ホームサーバ３１、オーディオプレーヤ３２及びハードディスクレコーダ３３が、上記機器制御情報等のデータを互いにやり取りする際に送信される上記ソフトウェアセルについて述べる。
【０１６９】
図１４は、リモコン３４から上記ハードディスクレコーダ３３に対する機器制御情報としての赤外線データを受信した上記オーディオプレーヤ３２が、当該機器制御情報をホームサーバ３１に送信してハードディスクレコーダ３３への転送を要求する際のソフトウェアセルの例を示した図である。同図に示すように、このソフトウェアセルにおいて、送信元ＩＤはオーディオプレーヤ３２の機器ＩＤ、送信先ＩＤはホームサーバ３１の機器ＩＤ、応答先ＩＤはハードディスクレコーダ３３の機器ＩＤである。またＤＭＡコマンドとして機器制御情報転送要求コマンドを送信し、データとしてリモコン３４から受信した赤外線データを送信する。
【０１７０】
当該赤外線データには、上記図１２に示したように、機器ＩＤコードしてハードディスクレコーダ３３の機器ＩＤが含まれ、上記データコードにはハードディスクレコーダ３３への録画命令が含まれている。
【０１７１】
図１５は、上記オーディオプレーヤ３２から上記赤外線データの転送要求を受信したホームサーバ３１が、当該要求に応答して上記ハードディスクレコーダ３３へ転送を行う際のソフトウェアセルの例を示した図である。同図に示すように、このソフトウェアセルにおいて、送信元ＩＤはホームサーバ３１の機器ＩＤ、送信先ＩＤ及び応答先ＩＤはハードディスクレコーダ３３の機器ＩＤである。またＤＭＡコマンドとして機器制御情報転送応答コマンドを送信し、データとして上記赤外線データを送信する。更に、セルインターフェース中、前回のソフトウェアセルＩＤとして、上記オーディオプレーヤ３２が上記機器制御情報転送要求コマンドを送信した際のソフトウェアセルのグローバルＩＤを送信する。
【０１７２】
図１６は、上記ソフトウェアセルを用いて、上記ハードディスクレコーダ３３を遠隔制御する際の動作を示したシーケンス図である。
【０１７３】
同図に示すように、まず、ユーザはリモコン３４のモードを転送モードにした上で、ハードディスクレコーダ３３のリモコン画像をタッチパネル４３上に呼び出し、当該タッチパネル４３を操作し、機器制御情報として、録画予約を命令する赤外線データを近隣のオーディオプレーヤ３２へ送信する（ステップ６１）。
【０１７４】
オーディオプレーヤ３２は当該赤外線データを受信すると（ステップ６２）、当該赤外線データ中の機器ＩＤコードを参照して当該データがオーディオプレーヤ３２自身への制御命令か否かを確認する（ステップ６３）。この場合赤外線データにはハードディスクレコーダ３３の機器ＩＤコードが含まれており、自身の機器ＩＤではないため、オーディオプレーヤ３２は、当該赤外線データを他の適切な機器に転送させるため、上記機器制御情報転送要求コマンドを含むソフトウェアセルにより、ホームサーバ３１へ送信する（ステップ６４）。
【０１７５】
なお、上記赤外線データが例えばオーディオプレーヤ３２自身への制御命令である場合には、オーディオプレーヤ３２は自身の機器ＩＤを認識して、当該制御命令を基に自身の制御を行う。
【０１７６】
ホームサーバ３１が通信部３６を介して赤外線データを受信すると（ステップ６５）、上記機器情報処理部３８は上記機器ＩＤコードと機器情報データベース３９を参照して当該赤外線データを転送すべき機器を判断する（ステップ６６）。この場合、機器ＩＤに上記ハードディスクレコーダ３３の機器ＩＤが含まれているため、ホームサーバ３１は、上記赤外線データが当該ハードディスクレコーダ３３への制御命令であることを判断し、ハードディスクレコーダ３３へ当該赤外線データを転送する（ステップ６７）。
【０１７７】
ハードディスクレコーダ３３は、当該赤外線データを受信し（ステップ６８）、上記機器ＩＤが自身のＩＤであることを確認して、赤外線データ中のデータコードが示す制御命令に基づいて自身の制御を行う（ステップ６８）。すなわち、この場合は録画予約命令に基づいて番組の録画予約を行う。
【０１７８】
以上の動作により、上記ホームサーバ３１は、上記ハードディスクレコーダ３３への機器制御情報を上記オーディオプレーヤ３２から受信して、上記機器ＩＤを基に、機器制御情報を転送すべき対象が上記ハードディスクレコーダ３３であることを判断して転送することにより、当該ハードディスクレコーダ３３を遠隔制御することができる。
【０１７９】
これにより、例えば制御対象の機器がリモコン３４から遠く離れていたり、制御対象とリモコン３４の間に障害物が存在したりするような場合であっても、ホームサーバ３１を中継することで、ユーザは、当該機器の位置を意識することなく当該機器を遠隔制御することが可能となる。
【０１８０】
なお、本発明は以上説明した実施の形態には限定されるものではなく、種々の変形が可能である。
【０１８１】
上述の実施形態においてはハードディスクレコーダ３３の録画予約を遠隔制御により行う例を説明したが、例えば、ユーザが家庭内で２階にいる場合であって、１階のテレビの電源を切断したい場合に、２階のユーザの近隣の機器に上記リモコン３４から赤外線データを送信し、当該機器が当該赤外線データを上記ホームサーバ３１へ送信し、更に当該ホームサーバ３１を介してテレビに転送することにより、テレビの遠隔制御するようなことも可能である。
【０１８２】
また、上述の実施形態においては、ホームサーバ３１が、ユーザの近隣の機器から赤外線データを受信して当該赤外線データを他の適切な機器へ転送するような態様を説明したが、例えば、ユーザがホームサーバ３１の近隣に存在するような場合には、ユーザは機器への赤外線データを他の機器を介さずに直接ホームサーバ３１へ送信し、その後はホームサーバ３１が同様の動作で適切な機器へ赤外線データを転送することにより遠隔制御を行うような態様であっても勿論構わない。
【０１８３】
更に、上述の実施形態においては家庭内の遠隔制御システムについて説明したが、勿論、家庭以外でも、例えばオフィスや各種の店舗等、リモコンにより遠隔制御する機器が存在している環境であればどのような場所でも本発明を適用することが可能である。
【図面の簡単な説明】
【０１８４】
【図１】本発明において前提となるネットワークシステムの一例を示す図である。
【図２】情報処理装置が備える情報処理コントローラの説明に供する図である。
【図３】ソフトウェアセルの一例を示す図である。
【図４】ＤＭＡコマンドがステータス返信コマンドである場合のソフトウェアセルのデータ領域を示す図である。
【図５】複数の情報処理装置が仮想的な１台の情報処理装置として動作する様子を示す図である。
【図６】情報処理コントローラのソフトウェア構成の一例を示す図である。
【図７】４台の情報処理装置が仮想的な１台の情報処理装置として動作する様子を示す図である。
【図８】図７のシステムにおける分散処理の例を示す図である。
【図９】本発明の一実施形態における遠隔制御システムの構成を示す図である。
【図１０】機器情報データベース３９に記憶されたデータの例を示した図である。
【図１１】リモコン３４の構成を示した図である。
【図１２】リモコン３４から発せられ、上記ホームサーバ３１及び各機器へ送信される赤外線データについて示した図である。
【図１３】リモコン３４が機器情報データの更新を行う際のホームサーバ３１の動作を示したフロー図である。
【図１４】オーディオプレーヤ３２が機器制御情報をホームサーバ３１に送信してハードディスクレコーダ３３への転送を要求する際のソフトウェアセルの例を示した図である。
【図１５】ホームサーバ３１がハードディスクレコーダ３３へ機器制御情報の転送を行う際のソフトウェアセルの例を示した図である。
【図１６】ソフトウェアセルを用いて、上記ハードディスクレコーダ３３を遠隔制御する際の動作を示したシーケンス図である。
【符号の説明】
【０１８５】
３１…ホームサーバ
３２…オーディオプレーヤ
３３…ハードディスクレコーダ
３４…リモートコントローラ
３４…タッチパネル
３５…ＬＡＮ
３６…通信部
３７…操作入力部
３８…機器情報処理部
３９…機器情報データベース
４１…簡易機能ボタン
４２…転送機能ボタン
４３…タッチパネル
４４…ジョグダイヤル
４５…指紋センサ部
【図１】
2005252901.tif 000003
【図２】
2005252901.tif 000004
【図３】
2005252901.tif 000005
【図４】
2005252901.tif 000006
【図５】
2005252901.tif 000007
【図６】
2005252901.tif 000008
【図７】
2005252901.tif 000009
【図８】
2005252901.tif 000010
【図９】
2005252901.tif 000011
【図１０】
2005252901.tif 000012
【図１１】
2005252901.tif 000013
【図１２】
2005252901.tif 000014
【図１３】
2005252901.tif 000015
【図１４】
2005252901.tif 000016
【図１５】
2005252901.tif 000017
【図１６】
2005252901.tif 000018