JP2006031481A - 情報処理システム及び情報処理方法、並びにコンピュータプログラム - Google Patents

情報処理システム及び情報処理方法、並びにコンピュータプログラム Download PDF

Info

Publication number
JP2006031481A
JP2006031481A JP2004210762A JP2004210762A JP2006031481A JP 2006031481 A JP2006031481 A JP 2006031481A JP 2004210762 A JP2004210762 A JP 2004210762A JP 2004210762 A JP2004210762 A JP 2004210762A JP 2006031481 A JP2006031481 A JP 2006031481A
Authority
JP
Japan
Prior art keywords
information processing
information
function
processing apparatus
program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2004210762A
Other languages
English (en)
Other versions
JP4599923B2 (ja
Inventor
Ryohei Okada
良平 岡田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2004210762A priority Critical patent/JP4599923B2/ja
Priority to US11/180,218 priority patent/US8380817B2/en
Priority to CNB2005101067118A priority patent/CN100424681C/zh
Publication of JP2006031481A publication Critical patent/JP2006031481A/ja
Application granted granted Critical
Publication of JP4599923B2 publication Critical patent/JP4599923B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

【課題】 仮想的な1台の情報処理装置における余剰の処理能力や機器の接続状態などのシステム状態に応じた機能プログラムを実行する。
【解決手段】 仮想的な1台の機器における余剰の処理能力や機器の接続状態などのシステム状態がある所定の起動条件を満たす場合に、あらかじめ設定しておいた機能プログラムを動作させる。また、機能プログラムの種類、実行日時、負荷率、余剰能力、接続装置、ユーザ情報など、機能プログラムの利用時の履歴として記録可能なデータについて、利用履歴保存設定情報に基づいて、指定されたデータを利用履歴情報として情報処理装置内の外部記憶装置に保存する。
【選択図】 図16

Description

本発明は、ネットワーク接続されている2以上の機器間における動作を連携させる情報処理システム及び情報処理方法、並びにコンピュータプログラムに係り、特に、ネットワーク接続されている複数の機器が協調動作により分散処理を行なうことで、仮想的に1台の機器として動作する情報処理システム及び情報処理方法、並びにコンピュータプログラムに関する。
さらに詳しくは、本発明は、ネットワーク接続された複数の機器により構成される仮想的な1台の機器における余剰の処理能力を利用して所定の機能を実行する情報処理システム及び情報処理方法、並びにコンピュータプログラムに係り、特に、ネットワーク接続された複数の機器により構成される仮想的な1台の機器における余剰の処理能力や機器の接続状態により変動するシステム状態に応じた機能を実現する情報処理システム及び情報処理方法、並びにコンピュータプログラムに関する。
複数のコンピュータ同士をネットワークで相互接続することにより、情報資源の共有、ハードウェア資源の共有、複数のユーザ間でのコラボレーションが実現することが知られている。コンピュータ間の接続メディアとして、LAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどさまざまである。
特に最近では、一般家庭内にもコンピュータやネットワークなどの技術が深く浸透してきている。家庭内のパーソナル・コンピュータやPDA(Personal Digital Assistants)などの情報機器、さらにはテレビ受像機やビデオ再生装置などAV機器や、各種の情報家電、CE(Consumer Electronics)機器などがホームネットワーク経由で相互接続されている。また、このようなホームネットワークは、多くの場合、ルータ経由でインターネットを始めとする外部の広域ネットワークに相互接続されている。
上述したようにホームネットワーク上に複数のAV機器が接続されるという利用形態が想定されるが、いままでは、AV機器間で充分な連携がなされていない、という問題がある。このような問題に対し、最近では、ネットワーク上の機器同士を連携させるために、機器の協調動作により高い演算性能を実現するというグリッドコンピューティング技術に関する研究開発が進められている(例えば、特許文献1〜5を参照のこと)。
このグリッドコンピューティング技術によれば、ネットワーク上の複数の情報処理装置が強調動作して分散処理を行ない、ユーザからは仮想的に1台の情報処理装置として動作することができる。
例えば、録画予約機能を持つ複数台の情報処理装置がネットワーク上に接続されている場合、録画予約の連携動作を実現することができる。すなわち、複数台の情報処理装置がホームネットワーク経由で録画予約の動作を連携させている場合、ホームネットワーク上では仮想的に1台の録画機器として動作する。そして、ユーザは、いずれかの機器のユーザ・インターフェースを用いて、ホームネットワークに接続されている任意の機器を用いて録画予約を行なうことができる。
さらにこのような録画予約機能の連携により、予約時間が重複した番組(いわゆる裏番組)を同時録画することが可能である。同様に、記録したコンテンツの再生動作を複数の機器間で連携させ、同時・同期的なコンテンツ再生を実現することができる。このコンテンツ再生機能の連携により、別々の機器で記録されたコンテンツの再生を同時、同期的に進行させることにより、コンテンツ再生においてチャンネル切り換えの概念を導入することができる。
このような仮想的な1台の情報処理装置によれば、1台の機器のハードウェア資源や処理能力だけではユーザからの要求に応じることができない場合であっても、ネットワーク上で連携・協調動作する他の機器における余剰の処理能力を活用することで、ユーザの要求に応じることができ、さらに通常の1台の機器では現実的ではないサービスを実現することができる。
ここで、仮想的な1台の情報処理装置上で実現可能な機能は、ネットワーク接続されている機器の種類や台数、各機器における余剰の処理能力などのシステム状態に応じて変動していく。ところが、連携動作する各々の情報処理装置がネットワークを介して物理空間上に散在していることなどから、システム状態が可視化されておらず、ユーザにとって分かりづらい、という問題がある。また、システム状態に応じてどのような機能を実行することが可能となるのかをユーザが理解するのは困難である。
例えば、仮想的な1台の情報処理装置上で、余剰能力がある所定の条件を満たす場合に、あらかじめ設定しておいた機能プログラムを動作させたいという要求がある。所定のシステム状態に到来したことに応じて、情報処理装置内で規定のプログラムを実行するということは従来より行なわれている。しかしながら、このときのプログラムの起動条件を自由に且つ容易に変更する手法は存在しない。
例えば、ポイント付与の条件、あるいはイベント達成条件を店舗側の管理者が自由に設定でき、その内容を顧客が自由に知りうる販売促進方法について提案がなされている(例えば、特許文献6を参照のこと)。しかしながら、ここでの条件設定は単純な固定のイベントにのみに特化されており、情報処理装置の状態変化のような変動するステータスに関しての条件などは考慮されていない。
また、受信側に属性を登録し、センター側から番組を送る際に属性を付加して送り、番組の放送において受信端末を選別できる放送システム(例えば、特許文献7を参照のこと)や、ネットワークサービスを多様な形で利用できる属性情報利用システム(例えば、特許文献8を参照のこと)について提案がなされている。しかしながら、これらはいずれも、属性情報にのみ依存し、変動する状態変化については考慮されていない。
特開2002−342165号公報 特開2002−351850号公報 特開2002−358289号公報 特開2002−366533号公報 特開2002−366534号公報 特開2003−316994号公報 特開平10−75219号公報 特開2003−223590号公報
本発明の目的は、ネットワーク接続されている複数の機器が協調動作により分散処理を行なうことで、仮想的に1台の機器として好適に動作することができる、優れた情報処理システム及び情報処理方法、並びにコンピュータプログラムを提供することにある。
本発明のさらなる目的は、ネットワーク接続された複数の機器により構成される仮想的な1台の機器における余剰の処理能力を利用して所定の機能を実行することができる、優れた情報処理システム及び情報処理方法、並びにコンピュータプログラムを提供することにある。
本発明のさらなる目的は、ネットワーク接続された複数の機器により構成される仮想的な1台の機器における余剰の処理能力や機器の接続状態により変動するシステム状態に応じた機能を自動的に起動し実行することができる、優れた情報処理システム及び情報処理方法、並びにコンピュータプログラムを提供することにある。
本発明は、上記課題を参酌してなされたものであり、その第1の側面は、ネットワーク接続される複数の情報処理装置の連携動作により1台の仮想情報処理装置として動作する情報処理システムであって、
前記仮想情報処理装置における余剰能力と前記ネットワークに接続される情報処理装置の構成を含むシステム状態を監視する手段と、
前記仮想情報処理装置におけるシステム状態と実行可能な機能との関係を設定する起動条件設定手段と、
システム状態があらかじめ設定した起動条件を満たすことに応じて該当する機能を実行する機能実行手段と、
前記機能実行手段により機能を実行したときの履歴情報を取得する機能利用履歴情報取得手段と、
を具備することを特徴とする情報処理システムである。
但し、ここで言う「システム」とは、複数の装置(又は特定の機能を実現する機能モジュール)が論理的に集合した物のことを言い、各装置や機能モジュールが単一の筐体内にあるか否かは特に問わない。
本発明は、グリッドコンピューティング技術に関するものであり、ネットワーク上の複数の情報処理装置が強調動作して分散処理を行ない、ユーザからは仮想的に1台の情報処理装置として動作することができる。このような仮想的な1台の情報処理装置によれば、1台の機器のハードウェア資源や処理能力だけではユーザからの要求に応じることができない場合であっても、ネットワーク上で連携・協調動作する他の機器における余剰の処理能力を活用することで、ユーザの要求に応じることができ、さらに通常の1台の機器では現実的ではないサービスを実現することができる。
仮想的な1台の情報処理装置上で実現可能な機能は、ネットワーク接続されている機器の種類や台数、各機器における余剰の処理能力などのシステム状態に応じて変動していく。ところが、連携動作する各々の情報処理装置がネットワークを介して物理空間上に散在していることなどから、システム状態が可視化されておらず、ユーザにとって分かりづらい、という問題がある。また、システム状態に応じてどのような機能を実行することが可能となる、あるいはどのような機能を実行することが必要であるのかを、ユーザが理解し選択することは困難である。
これに対し、本発明によれば、仮想的な1台の機器における余剰の処理能力や機器の接続状態などのシステム状態がある所定の起動条件を満たす場合に、あらかじめ設定しておいた機能プログラムを選択的に起動することができる。また、起動条件を自由に且つ容易に変更する手段を用意することにより、ユーザの利便性を高めることができる。
本発明に係る情報処理システムでは、機能プログラムの種類、実行日時、負荷率、余剰能力、接続装置、ユーザ情報など、履歴として記録可能なデータについて、利用履歴保存設定情報に基づいて、指定されたデータを利用履歴情報として情報処理装置内の外部記憶装置に保存する。
また、ネットワーク上に情報提供サーバを配置しておき、所定のタイミングで、起動条件設定情報や、機能の起動時に用いるソフトウェアやデータ、利用履歴保存設定情報などを情報提供サーバから取得できるようにする。
また、ネットワーク上に情報収集サーバを配置し、利用履歴情報を所定のタイミングで情報収集サーバ宛てへ送出するようにする。この情報収集サーバでは、収集した利用履歴情報を基に、どのような情報処理装置の組み合わせでどの機能プログラムがどの程度利用されたかなどを示す利用統計情報を生成する。この利用統計情報に基づいて、各々のユーザ環境に応じた機能選択情報を生成することができる。
また、本発明の第2の側面は、ネットワーク接続される複数の情報処理装置の連携動作により1台の仮想情報処理装置として動作するための処理をコンピュータシステム上で実行するようにコンピュータ可読形式で記述されたコンピュータプログラムであって、
前記仮想情報処理装置における余剰能力と前記ネットワークに接続される情報処理装置の構成を含むシステム状態を監視するステップと、
前記仮想情報処理装置におけるシステム状態と実行可能な機能との関係を設定する起動条件設定ステップと、
システム状態があらかじめ設定した起動条件を満たすことに応じて該当する機能を実行する機能実行ステップと、
前記機能実行ステップにおいて機能を実行したときの利用履歴情報を保存する機能利用履歴情報保存ステップと、
を具備することを特徴とするコンピュータプログラムである。
本発明の第2の側面に係るコンピュータプログラムは、コンピュータシステム上で所定の処理を実現するようにコンピュータ可読形式で記述されたコンピュータプログラムを定義したものである。換言すれば、本発明の第2の側面に係るコンピュータプログラムをコンピュータシステムにインストールすることによって、コンピュータシステム上では協働的作用が発揮され、本発明の第1の側面に係る情報処理システムと同様の作用効果を得ることができる。
本発明によれば、ネットワーク接続されている複数の機器が協調動作により分散処理を行なうことで、仮想的に1台の機器として好適に動作することができる、優れた情報処理システム及び情報処理方法、並びにコンピュータプログラムを提供することができる。
また、本発明によれば、ネットワーク接続された複数の機器により構成される仮想的な1台の機器における余剰の処理能力を利用して所定の機能を実行することができる、優れた情報処理システム及び情報処理方法、並びにコンピュータプログラムを提供することができる。
また、本発明によれば、ネットワーク接続された複数の機器により構成される仮想的な1台の情報処理装置における余剰の処理能力や機器の接続状態に応じて変動するシステム状態に応じた機能を実現することができる、優れた情報処理システム及び情報処理方法、並びにコンピュータプログラムを提供することができる。
本発明によれば、ある特定の情報処理装置が接続され、且つ、仮想情報処理装置としての余剰能力がある条件を満たす場合にのみ、設定した機能プログラムを動作させたいという要求に対し、これら起動条件を自由に且つ容易に設定し、実現することが可能となる。
また同時に、ユーザの利用状態を収集して統計処理を施すことで、例えば、どのような情報処理装置の組合せで、どのような機能プログラムがどの程度利用されたかなどを表す利用統計情報を生成することができる。そして、このようにして得られた利用統計情報をユーザに還元し、さらに利便性の高い使用方法の情報提供も可能となる。例えば、利用統計情報からさらに機能選択情報を生成し、この機能選択情報に基づいて、起動条件設定情報や利用履歴保存設定情報の項目を更新することで、当該機能プログラム起動に関するサービス内容をさらに充実させ、ユーザの利便性を向上することができる。
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施形態や添付する図面に基づくより詳細な説明によって明らかになるであろう。
以下、図面を参照しながら本発明の実施形態について詳解する。
A.システム構成
本発明は、2以上の情報処理装置間における動作をホームネットワーク経由で好適に連携させることにより、別々の場所に設定されている各機器における録画予約操作を簡易且つ効率的にするものである。ネットワーク上の機器同士を連携させるために、機器の協調動作により高い演算性能を実現するためのグリッドコンピューティング技術を活用する。
図1には、グリッドコンピューティングを適用して構成される、ネットワークシステムの構成を模式的に示している。
ネットワークは、インターネットやその他の広域ネットワーク、並びに、広域ネットワークとはゲートウェイなどを介して接続されるLAN(Local Area Network)やホームネットワークなどのプライベートなネットワークで構成される。ホームネットワークは、物理的には、10BaseTや100BaseTX、Giga eatherなどの標準的なネットワークインターフェースで構成することができる。また、ホームネットワーク上で他の機器を発見する仕組みとしてUpnp(Universal Plug and Play)を利用することができる。Upnpによれば、ネットワーク接続された機器間で、XML(eXtended Markup Language)形式で記述された定義ファイルを交換し、アドレッシング処理、ディスカバリ処理、サービス要求処理を経て相互認証を行なう。あるいは同一セグメント内での規定の機器情報を記述したパケットのブロードキャストすることによっても実現可能である。
ネットワーク上には、複数の情報処理装置が接続されている。情報処理装置の例として、DVDレコーダやHDレコーダのような、記録メディアを搭載し録画予約機能を備えたAV機器、あるいはコンパクト・ディスクなどの記録機能を持たない再生専用のAV機器、その他の情報処理装置が挙げられる。また、情報処理装置の他の例は、PDAやパーソナル・コンピュータなどの計算機処理システムを挙げることができる。図1に示す例では、ネットワーク9を介して複数の情報処理装置1、2、3、4が接続されている。
A−1.情報処理装置及び情報処理コントローラ
情報処理装置1、2、3、4は、例えば各種のAV(Audio and Visual)機器やポータブル機器である(後述)。
図示の通り、情報処理装置1は、コンピュータ機能部として情報処理コントローラ11を備える。情報処理コントローラ11は、メインプロセッサ21−1、サブプロセッサ23−1、23−2、23−3、DMAC(ダイレクトメモリアクセスコントローラ)25−1、及びDC(ディスクコントローラ)27−1を備えている。情報処理コントローラ11は、ワンチップIC(集積回路)として構成することが望ましい。
メインプロセッサ21−1は、サブプロセッサ23−1、23−2、23−3によるプログラム実行(データ処理)のスケジュール管理と、情報処理コントローラ11(情報処理装置1)の全般的な管理とを行なう。但し、メインプロセッサ21−1内で管理を行なうためのプログラム以外のプログラムが動作するように構成することもできる。この場合、メインプロセッサ21−1はサブプロセッサとしても機能することになる。メインプロセッサ21−1は、LS(ローカル・ストレージ)22−1を備えている。
1台の情報処理装置に備わるサブプロセッサは1つでもよいが、望ましくは複数とする。図示の例では、複数の場合である。各サブプロセッサ23−1、23−2、23−3は、メインプロセッサ21−1の制御下で、並列的且つ独立にプログラムを実行し、データを処理する。さらに、場合によってメインプロセッサ21−1内のプログラムがサブプロセッサ23−1、23−2、23−3内のプログラムと連携して動作することもできる。各サブプロセッサ23−1、23−2、23−3も、それぞれLS(ローカルストレージ)24−1、24−2、24−3を備えている。
DMAC(直接メモリアクセスコントローラ)25−1は、情報処理コントローラ11に接続されたDRAM(ダイナミックRAM)などからなるメインメモリ26−1に格納されているプログラム及びデータにプロセッサの介在なしにアクセスするものである。また、DC(ディスクコントローラ)27−1は、情報処理コントローラ11に接続された外部記録部28−1、28−2へのアクセス動作を制御する。
外部記録部28−1、28−2は、固定ディスク(ハードディスク)、あるいはリムーバブルディスクのいずれの形態でもよい。また、リムーバブルディスクとして、MO(磁気ディスク)、CD±RW、DVD±RWなどの光ディスク、メモリディスク、SRAM(スタティックRAM)、ROMなど各種の記録メディアを用いることができる。DC27−1は、ディスクコントローラと称するが、要するに外部記録部コントローラである。図1に示すように、外部記録部28を複数接続できるように、情報処理コントローラ11を構成することができる。
メインプロセッサ21−1、各サブプロセッサ23−1、23−2、23−3、DMAC25−1、及びDC27−1は、バス29−1によって相互接続されている。
情報処理コントローラ11には、当該情報処理コントローラ11を搭載する情報処理装置1をネットワーク全体を通して一意に識別できる識別子が、情報処理装置IDとして割り当てられている。また、メインプロセッサ21−1及び各サブプロセッサ23−1、23−2、23−3に対しても同様に、それぞれを特定できる識別子が、メインプロセッサID及びサブプロセッサIDとして割り当てられる。
他の情報処理装置2、3、4も同様に構成されるので、ここでは説明を省略する。ここで、親番号が同一であるユニットは枝番号が異なっていても、特に断りがない限り同じ働きをするものとする。また、以下の説明において枝番号が省略されている場合には、枝番号の違いによる差異を生じないものとする。
A−2.各サブプロセッサからメインメモリへのアクセス
上述したように、1つの情報処理コントローラ内の各サブプロセッサ23は、独立にプログラムを実行し、データを処理するが、異なるサブプロセッサがメインメモリ26内の同一領域に対して同時に読み出し又は書き込みを行なった場合には、データの不整合を生じ得る。そこで、サブプロセッサ23からメインメモリ26へのアクセスは、以下のような手順によって行なう。
図2(A)には、メインメモリ26内のロケーションを示している。同図に示すように、メインメモリ26は複数のアドレスを指定できるメモリロケーションによって構成され、各メモリロケーションに対してデータの状態を示す情報を格納するための追加セグメントが割り振られる。追加セグメントは、F/Eビット、サブプロセッサID及びLSアドレス(ローカル・ストレージアドレス)を含むものとされる。また、各メモリロケーションには、後述のアクセス・キーも割り振られる。F/Eビットは、以下のように定義される。
F/Eビット=0は、サブプロセッサ23によって読み出されている処理中のデータ、又は空き状態であるため最新データではない無効データであり、読み出し不可であることを示す。また、F/Eビット=0は、当該メモリ・ロケーションにデータ書き込み可能であることを示し、書き込み後に1に設定される。
F/Eビット=1は、当該メモリロケーションのデータがサブプロセッサ23によって読み出されておらず、未処理の最新データであることを示す。当該メモリ・ロケーションのデータは読み出し可能であり、サブプロセッサ23によって読み出された後に0に設定される。また、F/Eビット=1は、当該メモリ・ロケーションがデータ書き込み不可であることを示す。
さらに、上記F/Eビット=0(読み出し不可/書き込み可)の状態において、当該メモリ・ロケーションについて読み出し予約を設定することは可能である。F/Eビット=0のメモリロケーションに対して読み出し予約を行なう場合には、サブプロセッサ23は、読み出し予約を行なうメモリロケーションの追加セグメントに、読み出し予約情報として当該サブプロセッサ23のサブプロセッサID及びLSアドレスを書き込む。
その後、データ書き込み側のサブプロセッサ23により、読み出し予約されたメモリ・ロケーションにデータが書き込まれ、F/Eビット=1(読み出し可/書き込み不可)に設定されたとき、あらかじめ読み出し予約情報として追加セグメントに書き込まれたサブプロセッサID及びLSアドレスに読み出される。
複数のサブプロセッサによってデータを多段階に処理する必要がある場合、このように各メモリロケーションのデータの読み出し/書き込みを制御することにより、前段階の処理を行なうサブプロセッサ23が処理済みのデータをメインメモリ26上の所定のアドレスに書き込んだ後に即座に、後段階の処理を行なう別のサブプロセッサ23が前処理後のデータを読み出すことが可能となる。
また、図2(B)には、各サブプロセッサ23内のLS24におけるメモリロケーションを示している。同図に示すように、各サブプロセッサ23内のLS24も、複数のアドレスを指定できるメモリロケーションによって構成される。各メモリロケーションに対しては、同様に追加セグメントが割り振られる。追加セグメントは、ビジービットを含むものとされる。
サブプロセッサ23がメインメモリ26内のデータを自身のLS24のメモリロケーションに読み出すときには、対応するビジービットを1に設定して予約する。ビジービットが1であるメモリロケーションには、他のデータは格納することができない。LS24のメモリロケーションに読み出し後、ビジービットは0になり、任意の目的に使用できるようになる。
図2(A)に示すように、さらに、各情報処理コントローラと接続されたメインメモリ26には、メインメモリ26内の領域を画定する複数のサンドボックスが含まれる。メインメモリ26は、複数のメモリロケーションから構成されるが、サンドボックスは、これらのメモリロケーションの集合である。各サンドボックスは、サブプロセッサ23毎に割り当てられ、該当するサブプロセッサが排他的に使用することができる。すなわち、各々のサブプロセッサ23は、自身に割り当てられたサンドボックスを使用できるが、この領域を超えてデータのアクセスを行なうことはできない。
さらに、メインメモリ26の排他的な制御を実現するために、図2(C)に示すようなキー管理テーブルが用いられる。キー管理テーブルは、情報処理コントローラ内のSRAMのような比較的高速のメモリに格納され、DMAC25と関連付けられる。キー管理テーブル内の各エントリには、サブプロセッサID、サブプロセッサ・キー及びキーマスクが含まれる。
サブプロセッサ23がメインメモリ26を使用する際のプロセスは、以下の通りである。まず、サブプロセッサ23はDMAC25に、読み出し又は書き込みのコマンドを出力する。このコマンドには、自身のサブプロセッサIDと、使用要求先であるメインメモリ26のアドレスが含まれる。
DMAC25は、このコマンドを実行する前にキー管理テーブルを参照し、使用要求元のサブプロセッサのサブプロセッサキーを調べる。次に、DMAC25は、調べた使用要求元のサブプロセッサキーと、使用要求先であるメインメモリ26内の図2(A)に示したメモリロケーションに割り振られたアクセスキーとを比較して、2つのキーが一致した場合にのみ、上記のコマンドを実行する。
図2(C)に示したキー管理テーブル上のキーマスクは、その任意のビットが1になることによって、そのキーマスクに関連付けられたサブプロセッサキーの対応するビットが0又は1になることができる。
例えば、サブプロセッサキーが1010であるとする。通常、このサブプロセッサキーによって1010のアクセスキーを持つサンドボックスへのアクセスだけが可能になる。しかし、このサブプロセッサキーと関連付けられたキーマスクが0001に設定されている場合には、キーマスクのビットが1に設定された桁のみにつき、サブプロセッサキーとアクセスキーとの一致判定がマスクされ、このサブプロセッサキー1010によってアクセスキーが1010又は1011のいずれかであるアクセスキーを持つサンドボックスへのアクセスが可能となる。
以上のようにして、メインメモリ26のサンドボックスの排他性が実現される。すなわち、1つの情報処理コントローラ内に配置された複数のサブプロセッサによってデータを多段階に処理する必要がある場合、前段階の処理を行なうサブプロセッサと、後段階の処理を行なうサブプロセッサのみが、メインメモリ26の所定アドレスにアクセスできるようになり、データを保護することができる。
このようなメモリの排他制御は、例えば以下のように使用することができる。まず、情報処理装置の起動直後においては、キーマスクの値はすべてゼロである。メインプロセッサ内のプログラムが実行され、サブプロセッサ内のプログラムと連携動作するものとする。第1のサブプロセッサにより出力された処理結果データを一旦メインメモリに格納し、第2のサブプロセッサに入力したいときには、該当するメインメモリ領域は、当然どちらのサブプロセッサからもアクセス可能である必要がある。このような場合に、メインプロセッサ内のプログラムは、キーマスクの値を適切に変更し、複数のサブプロセッサからアクセスできるメインメモリ領域を設けることにより、サブプロセッサによる多段階的の処理を可能にする。
より具体的には、他の情報処理装置からのデータ→第1のサブプロセッサによる処理→第1のメインメモリ領域→第2のサブプロセッサによる処理→第2のメインメモリ領域、という手順で多段階処理が行なわれるときには、以下のような設定のままでは、第2のサブプロセッサは第1のメインメモリ領域にアクセスすることができない。
第1のサブプロセッサのサブプロセッサ・キー:0100、
第1のメインメモリ領域のアクセス・キー :0100、
第2のサブプロセッサのサブプロセッサ・キー:0101、
第2のメインメモリ領域のアクセス・キー :0101
そこで、第2のサブプロセッサのキーマスクを0001にすることにより、第2のサブプロセッサによる第1のメインメモリ領域へのアクセスを可能にすることができる。
A−3.ソフトウェアセルの生成及び構成
図1のネットワークシステムでは、情報処理装置1、2、3、4間での分散処理のために、情報処理装置1、2、3、4間でソフトウェアセルが伝送される。すなわち、ある情報処理装置内の情報処理コントローラに含まれるメインプロセッサ21は、コマンド、プログラム及びデータを含むソフトウェアセルを生成し、ネットワーク9を介して他の情報処理装置に送信することによって、処理を分散することができる。
図3には、ソフトウェアセルの構成の一例を示している。図示のソフトウェアセルは、送信元ID、送信先ID、応答先ID、セルインターフェース、DMAコマンド、プログラム、及びデータによって構成される。
送信元IDには、ソフトウェアセルの送信元である情報処理装置のネットワークアドレス及び当該情報処理装置内の情報処理コントローラの情報処理装置ID、さらに、当該情報処理装置内の情報処理コントローラが備えるメインプロセッサ21及び各サブプロセッサ23の識別子(メインプロセッサID及びサブプロセッサID)が含まれる。
送信先ID及び応答先IDには、ソフトウェアセルの送信先である情報処理装置、及びソフトウェアセルの実行結果の応答先である情報処理装置についての同じ情報がそれぞれ含まれる。
セルインターフェースは、ソフトウェアセルの利用に必要な情報であり、グローバルID、必要なサブプロセッサの情報、サンドボックスサイズ、及び前回のソフトウェアセルIDで構成される。
グローバルIDは、ネットワーク全体を通して当該のソフトウェアセルを一意的に識別できるものであり、送信元IDと、ソフトウェアセルの作成又は送信の日時(日付及び時刻)に基づいて作成される。
必要なサブプロセッサの情報は、当該ソフトウェアセルの実行に必要なサブプロセッサの数が設定される。サンドボックスサイズは、当該ソフトウェアセルの実行に必要なメインメモリ26内及びサブプロセッサ23のLS24内のメモリ量が設定される。
前回のソフトウェアセルIDは、ストリーミングデータなどのシーケンシャルな実行を要求する1グループのソフトウェアセル内の、前回のソフトウェアセルの識別子である。
ソフトウェアセルの実行セクションは、DMAコマンド、プログラム及びデータで構成される。DMAコマンドには、プログラムの起動に必要な一連のDMAコマンドが含まれ、プログラムには、サブプロセッサ23によって実行されるサブプロセッサプログラムが含まれる。ここでのデータは、このサブプロセッサプログラムを含むプログラムによって処理されるデータである。
さらに、DMAコマンドには、ロードコマンド、キックコマンド、機能プログラム実行コマンド、ステータス要求コマンド、及びステータス返信コマンドが含まれる。
ロードコマンドは、メインメモリ26内の情報をサブプロセッサ23内のLS24にロードするコマンドであり、ロードコマンド自体の他に、メインメモリアドレス、サブプロセッサID及びLSアドレスを含む。メインメモリアドレスは、情報のロード元であるメインメモリ26内の所定領域のアドレスを示す。サブプロセッサID及びLSアドレスは、情報のロード先であるサブプロセッサ23の識別子及びLS24のアドレスを示す。
キックコマンドは、プログラムの実行を開始するコマンドであり、キックコマンド自体の他に、サブプロセッサID及びプログラムカウンタを含む。サブプロセッサIDは、キック対象のサブプロセッサ23を識別し、プログラムカウンタは、プログラム実行用プログラムカウンタのためのアドレスを与える。
機能プログラム実行コマンドは、ある情報処理装置が他の情報処理装置に対して、機能プログラムの実行を要求するコマンドである(後述)。機能プログラム実行コマンドを受信した情報処理装置内の情報処理コントローラは、機能プログラムID(後述)によって、起動すべき機能プログラムを識別する。
ステータス要求コマンドは、送信先IDで示される情報処理装置の現在の動作状態(状況)に関する装置情報を、応答先IDで示される情報処理装置宛に送信要求するコマンドである。機能プログラムについては後述するが、図6に示す情報処理コントローラのメインメモリ26が記憶するソフトウェアの構成図において機能プログラムにカテゴライズされるプログラムである。機能プログラムは、メインメモリ26にロードされ、メインプロセッサ21により実行される。
ステータス返信コマンドは、上記のステータス要求コマンドを受信した情報処理装置が、自身の装置情報を当該ステータス要求コマンドに含まれる応答先IDで示される情報処理装置に応答するコマンドである。ステータス返信コマンドは、実行セクションのデータ領域に装置情報を格納する。
図4には、DMAコマンドがステータス返信コマンドである場合におけるソフトウェアセルのデータ領域の構造を示している。
情報処理装置IDは、情報処理コントローラを備える情報処理装置を識別するための識別子であり、ステータス返信コマンドを送信する情報処理装置のIDを示す。情報処理装置IDは、電源投入時に、その情報処理装置内の情報処理コントローラに含まれるメインプロセッサ21によって、電源投入時の日時、情報処理装置のネットワークアドレス及び情報処理装置内の情報処理コントローラに含まれるサブプロセッサ23の数などに基づいて生成される。
情報処理装置種別IDには、当該情報処理装置の特徴を表す値が含まれる。ここで言う情報処理装置の特徴とは、例えば、ハードディスクレコーダ(後述)、PDA(Personal Digital Assistants)、ポータブルCD(Compact Disc)プレーヤなどである。また、情報処理装置種別IDは、映像音声記録、映像音声再生など、情報処理装置が持つ機能を表すものであってもよい、情報処理装置の特徴や機能を表す値はあらかじめ決められているものとし、情報処理装置種別IDを呼び出すことにより当該情報処理装置の特徴や機能を把握することが可能である。
MS(マスター/スレーブ)ステータスは、後述するように情報処理装置がマスター装置又はスレーブ装置のいずれで動作しているかを表すもので、これが0に設定されている場合にはマスター装置として動作していることを示し、1に設定されている場合にはスレーブ装置として動作していることを示す。
メインプロセッサ動作周波数は、情報処理コントローラ内のメインプロセッサ21の動作周波数を表す。メインプロセッサ使用率は、メインプロセッサ21で現在動作しているすべてのプログラムについての、メインプロセッサ21での使用率を表す。メインプロセッサ使用率は、対象メインプロセッサの全処理能力に対する使用中の処理能力の比率を表した値で、例えばプロセッサ処理能力評価のための単位であるMIPS[Million Instructions Per Second]を単位として算出され、又は単位時間当りのプロセッサ使用時間に基づいて算出される。後述のサブプロセッサ使用率についても同様である。
サブプロセッサ数は、当該の情報処理コントローラが備えるサブプロセッサ23の数を表す。サブプロセッサIDは、当該の情報処理コントローラ内の各サブプロセッサ23を識別するための識別子である。
サブプロセッサステータスは、各サブプロセッサ23の状態を表すものであり、unused、reserved,busyなどの状態がある。unusedは、当該サブプロセッサが現在使用されてなく、使用の予約もされていないことを示す。reservedは、現在は使用されていないが、予約されている状態を示す。busyは、現在使用中であることを示す。
サブプロセッサ使用率は、当該のサブプロセッサで現在実行している、又は当該のサブプロセッサに実行が予約されているプログラムについての、当該サブプロセッサでの使用率を表す。すなわち、サブプロセッサ使用率は、サブプロセッサステータスがbusyである場合には、現在の使用率を示し、サブプロセッサステータスがreservedである場合には、後に使用される予定の推定使用率を示す。
サブプロセッサID、サブプロセッサステータス及びサブプロセッサ使用率は、1つのサブプロセッサ23に対して一組設定され、1つの情報処理コントローラ内のサブプロセッサ23に対応する組数が設定される。
メインメモリ総容量及びメインメモリ使用量は、それぞれ、当該の情報処理コントローラに接続されているメインメモリ26の総容量及び現在使用中の容量を表す。
外部記録部数は、当該の情報処理コントローラに接続されている外部記録部28の数を表す。外部記録部IDは、当該の情報処理コントローラに接続されている外部記録部28を一意的に識別する情報である。外部記録部種別IDは、当該の外部記録部の種類(例えば、ハードディスク、CD±RW、DVD±RW、メモリディスク、SRAM、ROMなど)を表す。
外部記録部総容量及び外部記録部使用量は、それぞれ外部記録部IDによって識別される外部記録部28の総容量及び現在使用中の容量を表す。
外部記録部ID、外部記録部種別ID、外部記録部総容量及び外部記録部使用量は、1つの外部記録部28に対して1組設定されるものであり、当該情報処理コントローラに接続されている外部記録部28の数の組数だけ設定される。すなわち、1つの情報処理コントローラに複数の外部記録部が接続されている場合、それぞれの外部記録部には異なる外部記録部IDが割り当てられ、外部記録部種別ID、外部記録部総容量及び外部記録部使用量も別々に管理される。
A−4ソフトウェアセルの実行
ある情報処理装置内の情報処理コントローラに含まれるメインプロセッサ21は、上述したような構成のソフトウェアセルを生成し、ネットワーク9を介して他の情報処理装置及び当該装置内の情報処理コントローラに送信する。送信元の情報処理装置、送信先の情報処理装置、応答先の情報処理装置、及び各装置内の情報処理コントローラは、それぞれ、上記の送信元ID、送信先ID及び応答先IDによって識別される。
ソフトウェアセルを受信した情報処理装置内の情報処理コントローラに含まれるメインプロセッサ21は、そのソフトウェアセルをメインメモリ26に格納する。さらに、送信先のメインプロセッサ21は、ソフトウェアセルを読み出し、それに含まれるDMAコマンドを処理する。
具体的には、送信先のメインプロセッサ21は、まず、ロードコマンドを実行する。これによって、ロードコマンドで指示されたメインメモリアドレスから、ロードコマンドに含まれるサブプロセッサID及びLSアドレスで特定されるサブプロセッサ内のLS24の所定領域に情報がロードされる。ここでロードされる情報は、受信したソフトウェアセルに含まれるサブプロセッサプログラム又はデータ、あるいはその他の指示されたデータである。
次に、メインプロセッサ21は、キックコマンドを、これに含まれるサブプロセッサIDで指示されたサブプロセッサに、同様にキックコマンドに含まれるプログラムカウンタとともに出力する。
指示されたサブプロセッサは、そのキックコマンド及びプログラムカウンタに従って、サブプロセッサプログラムを実行する。そして、実行結果をメインメモリ26に格納した後、実行を完了したことをメインプロセッサ21に通知する。
なお、送信先の情報処理装置内の情報処理コントローラにおいてソフトウェアセルを実行するプロセッサはサブプロセッサ23に限定されるものではなく、メインプロセッサ21がソフトウェアセルに含まれる機能プログラムなどのメインメモリ用プログラムを実行するように指定することも可能である。
この場合には、送信元の情報処理装置は、送信先の情報処理装置宛に、サブプロセッサプログラムの代わりに、メインメモリ用プログラム及びそのメインメモリ用プログラムによって処理されるデータを含み、DMAコマンドがロードコマンドであるソフトウェアセルを送信し、メインメモリ26にメインメモリ用プログラム及びそれによって処理されるデータを記憶させる。
次に、送信元の情報処理装置は、送信先の情報処理装置宛てに、送信先の情報処理装置内の情報処理コントローラについてのメインプロセッサID、メインメモリ・アドレス、メインメモリ用プログラムを識別するための後述の機能プログラムIDなどの識別子、及びプログラムカウンタを含み、DMAコマンドがキックコマンド又は機能プログラム実行コマンドであるソフトウェアセルを送信し、メインプロセッサ21に当該メインメモリ用プログラムを実行させる。
以上のように、本実施形態に係るネットワークシステムでは、送信元の情報処理装置は、サブプロセッサプログラム又はメインメモリ用プログラムをソフトウェアセルによって送信先の情報処理装置に送信するとともに、当該サブプロセッサプログラムを送信先の情報処理装置内の情報処理コントローラに含まれるサブプロセッサ23にロードさせ、当該サブプロセッサプログラム又は当該メインメモリ用プログラムを送信先の情報処理装置に実行させることができる。
送信先の情報処理装置内の情報処理コントローラでは、受信したソフトウェアセルに含まれるプログラムがサブプロセッサプログラムである場合には、当該サブプロセッサプログラムを指定されたサブプロセッサにロードさせる。そして、ソフトウェアセルに含まれるサブプロセッサプログラム又はメインメモリ用プログラムを実行させる。
したがって、ユーザが送信先の情報処理装置を操作しなくても、当該サブプロセッサプログラム又は当該メインメモリ用プログラムを送信先の情報処理装置内の情報処理コントローラにおいて自動的に実行させることができる。
このようにして情報処理装置は、自装置内の情報処理コントローラがサブプロセッサプログラム又は機能プログラムなどのメインメモリ用プログラムを備えていない場合には、ネットワークに接続された他の情報処理装置からそれらを取得することができる。さらに、各サブプロセッサ間ではDMA方式によりデータ転送を行ない、また上述したサンドボックスを使用することにより、1つの情報処理コントローラ内でデータを多段階に処理する必要がある場合でも、高速且つ高セキュリティに処理を実行することができる。
A−5.ネットワークシステムとしての分散処理
図5には、複数の情報処理装置が仮想的な1台の情報処理装置として動作している様子を示している。ソフトウェアセルの使用による分散処理の結果、同図の上段に示すように、ネットワーク9に接続されている複数の情報処理装置1、2、3、4は、同図の下段に示すように、仮想的な1台の情報処理装置7として動作する。但し、このような仮想的な動作を実現するためには、以下のような構成によって、以下のような処理が実行される必要がある。
A−6.システムのソフトウェア構成とプログラムのロード
図6には、個々の情報処理コントローラのメインメモリ26が記憶するソフトウェアの構成を示している。これらのソフトウェア(プログラム)は、情報処理装置に電源が投入される前に、当該の情報処理コントローラに接続される外部記録部28に記録されているものである。各プログラムは、機能又は特徴により、制御プログラム、機能プログラム及びデバイスドライバに分類される。
制御プログラムは、各情報処理コントローラが同じものを備え、各情報処理コントローラのメインプロセッサ21が実行するもので、後述のMS(マスター/スレーブ)マネージャ及び能力交換プログラムを含む。
機能プログラムは、メインプロセッサ21が実行するもので、記録用、再生用、素材検索用など、情報処理コントローラ毎に情報処理装置に応じたものが備えられる。
デバイスドライバは、情報処理コントローラ(情報処理装置)の入出力(送受信)用で、放送受信、モニタ出力、ビットストリーム入出力、ネットワーク入出力など、情報処理コントローラ毎に情報処理装置に応じたものが備えられる。
ケーブルの差し込みなどによって情報処理装置が物理的にネットワーク9に接続された状態で、情報処理装置に主電源が投入され、情報処理装置が電気的・機能的にもネットワーク9に接続されると、その情報処理装置の情報処理コントローラのメインプロセッサ21は、制御プログラムに属する各プログラム、及びデバイスドライバに属する各プログラムを、メインメモリ26にロードする。
プログラムのロード手順としては、メインプロセッサ21は、まず、DC27に読み出し命令を実行させることによって、外部記録部28からプログラムを読み出し、次に、DMAC25に書き込み命令を実行させることによって、そのプログラムをメインメモリ26に書き込む。
機能プログラムに属する各プログラムについては、必要なときに必要なプログラムだけをメモリにロードするように構成してもよく、あるいは他のカテゴリに属するプログラムと同様に、主電源投入直後に各プログラムをロードするように構成してもよい。
機能プログラムに属する各プログラムは、ネットワークに接続されたすべての情報処理装置の外部記録部28に記録されている必要はなく、いずれか1つの情報処理装置の外部記録部28に記録されていれば、前述の方法によって他の情報処理装置からロードすることができるので、結果的に図5の下段に示すように、仮想的な1台の情報処理装置7として機能プログラムを実行することができる。
ここで、前述したようにメインプロセッサ21によって処理される機能プログラムは、サブプロセッサ23によって処理されるサブプロセッサプログラムと連携動作する場合がある。そこでメインプロセッサ21が外部記録部28から機能プログラムを読み出し、メインメモリ26に書き込む際に対象となる機能プログラムと連携動作するサブプロセッサプログラムが存在する場合には、当該サブプロセッサプログラムも併せて同じメインメモリ26に書き込むものとする。この場合、連携動作するサブプロセッサプログラムは1個である場合もあるし、複数個であることもあり得る。複数個である場合には、すべての連携動作するサブプロセッサプログラムをメインメモリ26に書き込むことになる。メインメモリ26に書き込まれたサブプロセッサプログラムはその後、サブプロセッサ23内のLS24に書き込まれ、メインプロセッサ21によって処理される機能プログラムと連携動作する。
そして、サブプロセッサプログラムにもサブプロセッサプログラムIDが割り当てられ、これによりサブプロセッサプログラムを一意的に識別可能である。割り当てられるサブプロセッサプログラムIDは、連携動作する相手となる機能プログラムの機能プログラムIDと関連性のある識別子、例えば機能プログラムIDを親番号とした上で最後尾に枝番号を付加させたものなどであることもあり得るし、連携動作する相手となる機能プログラムの機能プログラムIDとは関連性のない識別子であってもよい。いずれにしても機能プログラムとサブプロセッサプログラムが連携動作する場合には、両者とも相手の識別子であるプログラムIDを自プログラム内に互いに記憶しておく必要がある。機能プログラムが複数個のサブプロセッサプログラムと連携動作する場合にも、当該機能プログラムは複数個あるすべてのサブプロセッサプログラムのサブプロセッサプログラムIDを記憶しておくことになる。
図3のソフトウェアセルに示したように、機能プログラムには、プログラム毎にプログラムを一意的に識別できる識別子が機能プログラムIDとして割り当てられる。機能プログラムIDは、機能プログラムの作成の段階で、作成日時や情報処理装置IDなどから決定される。
メインプロセッサ21は、自身が動作する情報処理装置の装置情報(動作状態に関する情報)を格納するための領域をメインメモリ26に確保し、当該情報を自装置の装置情報テーブルとして記録する。ここで言う装置情報は、図4に示したステータス返信コマンドのデータ領域における情報処理装置ID以下の各情報である。
A−7.システムにおけるマスター/スレーブの決定
上述したネットワークシステムでは、ある情報処理装置への主電源投入時、その情報処理装置の情報処理コントローラのメインプロセッサ21は、マスター/スレーブマネージャ(以下、MSマネージャ)をメインメモリ26にロードし、実行する。
MSマネージャは、自身が動作する情報処理装置がネットワーク9に接続されていることを検知すると、同じネットワーク9に接続されている他の情報処理装置の存在を確認する。ここでの「接続」又は「存在」は、上述したように、情報処理装置が物理的にネットワーク9に接続されているだけでなく、電気的・機能的にもネットワーク9に接続されていることを示す。
また、自身が動作する情報処理装置を自装置、他の情報処理装置を他装置と称する。当該装置も、当該情報処理装置を示すものとする。
MSマネージャが同じネットワーク9に接続されている他の情報処理装置の存在を確認する方法について以下に説明する。
MSマネージャは、DMAコマンドがステータス要求コマンドであり、送信元ID及び応答先IDが当該情報処理装置で、送信先IDを特定しないソフトウェアセルを生成し、当該情報処理装置が接続されたネットワーク上に送信し、ネットワーク接続確認用のタイマーを設定する。タイマーのタイムアウト時間は、例えば10分である。
当該ネットワークシステム上に他の情報処理装置が接続されている場合、その他装置は、上記ステータス要求コマンドのソフトウェアセルを受信し、上記応答先IDで特定されるステータス要求コマンドを発行した情報処理装置に対して、DMAコマンドがステータス返信コマンドで、且つデータとして自身(その他装置)の装置情報を含むソフトウェアセルを送信する。このステータス返信コマンドのソフトウェアセルには、少なくとも当該他装置を特定する情報(情報処理装置ID、メインプロセッサに関する情報、サブプロセッサに関する情報など)、及び当該他装置のMSステータスが含まれる。
ステータス要求コマンドを発行した情報処理装置のMSマネージャは、上記ネットワーク接続確認用のタイマーがタイムアウトするまで、当該ネットワーク上の他装置から送信されるステータス返信コマンドのソフトウェアセルの受信を監視する。その結果、MSステータス=0(マスター装置)を示すステータス返信コマンドが受信された場合には、自装置の装置情報テーブルにおけるMSステータスを1に設定する。これによって、当該装置はスレーブ装置となる。
一方、上記ネットワーク接続確認用のタイマーがタイムアウトするまでの間にステータス返信コマンドがまったく受信されなかった場合、又はMSステータス=0(マスター装置)を示すステータス返信コマンドが受信されなかった場合には、自装置の装置情報テーブルにおけるMSステータスを0に設定する。これによって、当該装置はマスター装置となる。
すなわち、いずれの装置もネットワーク9に接続されていない状態、又はネットワーク9上にマスター装置が存在しない状態において、新たな情報処理装置がネットワーク9に接続されると、当該装置は自動的にマスター装置として設定される。一方、ネットワーク9上に既にマスター装置が存在する状態において、新たな情報処理装置がネットワーク9に接続されると、当該装置は自動的にスレーブ装置として設定される。
マスター装置及びスレーブ装置のいずれについても、MSマネージャは、定期的にステータス要求コマンドをネットワーク9上の他装置に送信してステータス情報を照会することにより、他装置の状況を監視する。この結果、ネットワーク9に接続されている情報処理装置の主電源が遮断され、又はネットワーク9から情報処理装置が切り離されることにより、あらかじめ判定用に設定された所定期間内に特定の他装置からステータス返信コマンドが返信されなかった場合や、ネットワーク9に新たな情報処理装置が接続された場合など、ネットワーク9の接続状態に変化があった場合には、その情報を後述の能力交換プログラムに通知する。
A−8.マスター装置及びスレーブ装置における装置情報の取得
メインプロセッサ21は、MSマネージャから、ネットワーク9に接続された他の情報処理装置の照会及び自装置のMSステータスの設定完了の通知を受けると、能力交換プログラムを実行する。
能力交換プログラムは、自装置がマスター装置である場合には、ネットワーク9に接続されている他のすべての情報処理装置についての装置情報、すなわち各スレーブ装置の装置情報を取得する。
他装置の装置情報の取得は、上述したように、DMAコマンドがステータス要求コマンドであるソフトウェアセルを生成して他装置に送信し、その後、DMAコマンドがステータス返信コマンドで、且つデータとして他装置の装置情報を含むソフトウェアセルを他装置から受信することによって可能である。
能力交換プログラムは、マスター装置である自装置の装置情報テーブルと同様に、ネットワーク9に接続されている他のすべての装置(各スレーブ装置)についての装置情報を格納するための領域を自装置のメインメモリ26に確保し、これら情報を他装置(スレーブ装置)の装置情報テーブルとして記録する。すなわち、マスター装置のメインメモリ26には、自装置を含むネットワーク9に接続されているすべての情報処理装置の装置情報が装置情報テーブルとして記録される。
一方、能力交換プログラムは、自装置がスレーブ装置である場合には、ネットワーク9に接続されている他のすべての装置についての装置情報、すなわちマスター装置及び自装置以外の各スレーブ装置の装置情報を取得し、これら装置情報に含まれる情報処理装置ID及びMSステータスを、自装置のメインメモリ26に記録する。すなわち、スレーブ装置のメインメモリ26には、自装置の装置情報が、装置情報テーブルとして記録されるとともに、自装置以外のネットワーク9に接続されているマスター装置及び各スレーブ装置についての情報処理装置ID及びMSステータスが、別の装置情報テーブルとして記録される。
また、マスター装置及びスレーブ装置のいずれについても、能力交換プログラムは、上記のようにMSマネージャから、新たにネットワーク9に情報処理装置が接続されたことが通知されたときには、その情報処理装置の装置情報を取得し、上述したようにメインメモリ26に記録する。
なお、MSマネージャ及び能力交換プログラムは、メインプロセッサ21で実行されることに限らず、いずれかのサブプロセッサ23で実行されてもよい。また、MSマネージャ及び能力交換プログラムは、情報処理装置の主電源が投入されている間は常時動作する常駐プログラムであることが望ましい。
A−9.情報処理装置がネットワークから切断された場合
マスター装置及びスレーブ装置のいずれについても、能力交換プログラムは、上記のようにMSマネージャから、ネットワーク9に接続されている情報処理装置の主電源が遮断され、又はネットワーク9から情報処理装置が切り離されたことが通知されたときには、その情報処理装置の装置情報テーブルを自装置のメインメモリ26から削除する。
さらに、このようにネットワーク9から切断された情報処理装置がマスター装置である場合には、以下のような方法によって、新たにマスター装置が決定される。
例えば、ネットワーク9から切断されていない情報処理装置は、それぞれ、自装置及び他装置の情報処理装置IDを数値に置き換え、自装置の情報処理装置IDを他装置の情報処理装置IDと比較し、自装置の情報処理装置IDがネットワーク9から切断されていない情報処理装置中で最小である場合、そのスレーブ装置は、マスター装置に移行し、MSステータスを0に設定し、マスター装置として、上述したように、ネットワーク9に接続されている他のすべての情報処理装置(各スレーブ装置)から装置情報を取得して、メインメモリ26に記録する。
A−10.装置情報に基づく分散処理
図5の下段に示したようにネットワーク9に接続されている複数の情報処理装置1、2、3、4を仮想的な1台の情報処理装置7として動作させるためには、マスター装置がユーザの操作及びスレーブ装置の動作状態を把握する必要がある。
図7には、4台の情報処理装置が仮想的な1台の情報処理装置7として動作する様子を示している。図示の例では、情報処理装置1がマスター装置、情報処理装置2、3、4がスレーブ装置A、B、Cとしてそれぞれ動作しているものとする。
ユーザがネットワーク9に接続されている情報処理装置を操作した場合、操作対象がマスター装置1であれば、その操作情報はマスター装置1において直接把握される。また、操作対象がスレーブ装置であれば、その操作情報は操作されたスレーブ装置からマスター装置1に送信される。すなわち、ユーザの操作対象がマスター装置1とスレーブ装置のいずれであるかにかかわらず、その操作情報は常にマスター装置1において把握される。操作情報の送信は、例えば、DMAコマンドが操作情報送信コマンドであるソフトウェアセルによって行なわれる。
そして、マスター装置1内の情報処理コントローラ11に含まれるメインプロセッサ21−1は、その操作情報に従って、実行する機能プログラムを選択する。その際、必要であれば、マスター装置1内の情報処理コントローラ11に含まれるメインプロセッサ21−1は、上記の方法によって自装置の外部記録部28−1、28−2からメインメモリ26−1に機能プログラムをロードするが、他の情報処理装置(スレーブ装置)がマスター装置1に機能プログラムを送信してもよい。
機能プログラムには、その実行単位毎に必要となる、情報処理装置種別ID、メインプロセッサ又はサブプロセッサの処理能力、メインメモリ使用量、外部記録部に関する条件などの装置に関する要求スペック(図4を参照のこと)が規定されている。
マスター装置1内の情報処理コントローラ11に含まれるメインプロセッサ21−1は、各機能プログラムについて必要となる上記の要求スペックを読み出す。また、あらかじめ能力交換プログラムによってメインメモリ26−1に記録された装置情報テーブルを参照し、各情報処理装置の装置情報を読み出す。ここでの装置情報は、図4に示した情報処理装置ID以下の各情報を示し、メインプロセッサ、サブプロセッサ、メインメモリ及び外部記録部に関する情報である。
マスター装置1内の情報処理コントローラ11に含まれるメインプロセッサ21−1は、ネットワーク9上に接続された各情報処理装置の上記装置情報と、機能プログラム実行に必要となる上記要求スペックとを順次比較する。
例えば、機能プログラムが録画機能を必要とする場合には、情報処理装置種別IDに基づいて、録画機能を有する情報処理装置のみを特定して抽出する。さらに、機能プログラムを実行するために必要なメインプロセッサ又はサブプロセッサの処理能力、メインメモリ使用量、外部記録部に関する条件を確保できるスレーブ装置を、実行要求候補装置として特定する。ここで、複数の実行要求候補装置が特定された場合には、当該候補装置から1つの実行要求候補装置を特定して選択する。
実行要求するスレーブ装置が特定されたら、マスター装置1内の情報処理コントローラ11に含まれるメインプロセッサ21−1は、その特定されたスレーブ装置について、自装置内の情報処理コントローラ11に含まれるメインメモリ26−1に記録されている当該スレーブ装置の装置情報テーブルを更新する。
さらに、マスター装置1内の情報処理コントローラ11に含まれるメインプロセッサ21−1は、DMAコマンドが機能プログラム実行コマンドであるソフトウェアセルを生成し、当該ソフトウェアセルのセルインターフェースに、当該機能プログラムに関する必要なサブプロセッサの情報及びサンドボックスサイズ(図3を参照のこと)を設定し、上記実行要求されるスレーブ装置に対して送信する。
機能プログラムの実行を要求されたスレーブ装置は、その機能プログラムを実行するとともに、自装置の装置情報テーブルを更新する。その際、必要であれば、スレーブ装置内の情報処理コントローラに含まれるメインプロセッサ21は、上記の方法によって自装置の外部記録部28からメインメモリ26に機能プログラム及び当該機能プログラムと連携動作するサブプロセッサプログラムをロードする。
機能プログラムの実行を要求されたスレーブ装置の外部記録部28に必要な機能プログラム又は当該機能プログラムと連携動作するサブプロセッサプログラムが記録されていない場合には、他の情報処理装置が当該機能プログラム又はサブプロセッサプログラムをその機能プログラム実行要求先スレーブ装置に送信するように、システムを構成すればよい。
サブプロセッサプログラムについては、前述のロードコマンド及びキックコマンドを利用して他の情報処理装置に実行させることもできる。
機能プログラムの実行終了後、機能プログラムを実行したスレーブ装置内の情報処理コントローラに含まれるメインプロセッサ21は、終了通知をマスター装置1内の情報処理コントローラ11に含まれるメインプロセッサ21−1に送信するとともに、自装置の装置情報テーブルを更新する。マスター装置1内の情報処理コントローラ11に含まれるメインプロセッサ21−1は、その終了通知を受信して、機能プログラムを実行したスレーブ装置の装置情報テーブルを更新する。
マスター装置1内の情報処理コントローラ11に含まれるメインプロセッサ21−1は、自装置及び他装置の装置情報テーブルの参照結果から、当該の機能プログラムを実行することができる情報処理装置として、自身を選択する場合もあり得る。その場合には、マスター装置1が当該の機能プログラムを実行する。
図7に示した例で、ユーザがスレーブ装置A(情報処理装置2)を操作し、当該操作に応じた機能プログラムを別のスレーブ装置B(情報処理装置3)が実行する場合の分散処理について、図8を参照しながら説明する。
図8に示す例では、ユーザがスレーブ装置Aを操作することにより、スレーブ装置Aを含むネットワークシステム全体の分散処理が開始し、まず、スレーブ装置Aは、その操作情報をマスター装置1に送信する(ステップ81)。
マスター装置1は、その操作情報を受信し(ステップ72)、さらに自装置のメインメモリ26−1に記録されている自装置及び他装置の装置情報テーブルから各情報処理装置の動作状態を調べ、受信した操作情報に応じた機能プログラムを実行することができる情報処理装置を選択する(ステップ73)。図示の例では、スレーブ装置Bが選択される場合を示している。
次に、マスター装置1は、その選択したスレーブ装置Bに対して機能プログラムの実行を要求する(ステップ74)。
スレーブ装置Bは、その実行要求を受信し(ステップ95)、さらに、実行要求された機能プログラムを実行する(ステップ96)。
以上のように、ユーザは、1台の情報処理装置のみを操作することによって、他の情報処理装置を操作することなく、複数の情報処理装置1、2、3、4を仮想的な1台の情報処理装置7として動作させることができる。
A−11.各情報処理装置及びシステムの具体例
ネットワーク9を介して互いに接続される情報処理装置1、2、3、4は、上記のような情報処理コントローラ11、12、13、14によって情報処理を行なうものであれば、基本的にはどのような構成でもよい。図9には、情報処理装置の一構成例を示している。
情報処理コントローラ11を備える情報処理装置1の一例は、ハードディスクレコーダである。図10並びに図11には、同図中のハードディスクレコーダのハードウェア構成及びソフトウェア構成をそれぞれ示している。ハードディスクレコーダのハードウェア構成としては、図1に示した外部記録部28−1としてハードディスクを内蔵し、図1に示した外部記録部28−2としてDVD±R/RW、CD±R/RW、Bluray−Disc(登録商標)などの光ディスクを装着できるように構成されるとともに、情報処理コントローラ11のバス29−1に接続されたバス31−1に、放送受信部32−1、映像入力部33−1、音声入力部34−1、映像出力部35−1、音声出力部36−1、操作パネル部37−1、リモコン受光部38−1及びネットワーク接続部39−1が接続されている。
放送受信部32−1、映像入力部33−1及び音声入力部34−1は、放送信号を受信し、又は情報処理装置1の外部から映像信号及び音声信号を入力し、それぞれ所定フォーマットのデジタルデータに変換し、情報処理コントローラ11での処理のためにバス31−1に送出する。映像出力部35−1及び音声出力部36−1は、情報処理コントローラ11からバス31−1に送出された映像データ及び音声データを処理して、デジタルデータのまま、又はアナログ信号に変換して、情報処理装置1の外部に送出するものであり、リモコン受光部38−1は、リモコン送信器43−1からのリモコン(遠隔操作)赤外線信号を受信する。
図9及び図10に示すように、情報処理装置(ハードディスクレコーダ)1の映像出力部35−1及び音声出力部36−1には、モニタ表示装置41及びスピーカ装置42が接続される。
図9に例示した情報処理コントローラ12を備える情報処理装置2も、ハードディスクレコーダで、図10において括弧内に参照番号を付して示すように、情報処理装置1と同様に構成される。但し、図9に示すように、情報処理装置(ハードディスクレコーダ)2には、モニタ表示装置及びスピーカ装置は接続されない。
情報処理装置(ハードディスクレコーダ)1及び2、すなわち情報処理コントローラ11及び12のソフトウェア構成としては、図11に示すように、制御プログラムとして、MSマネージャ及び能力交換プログラムを備え、機能プログラムとして、映像音声記録、映像音声再生、素材検索及び番組録画予約のためのプログラムを備え、デバイスドライバとして、放送受信、映像出力、音声出力、外部記録部入出力及びネットワーク入出力のためのプログラムを備える。
また、情報処理コントローラ13を備える情報処理装置3の他の例は、PDA(Personal Digital Assistants)である。図12には、PDAとして構成される情報処理装置3のハードウェア構成を示している。同図に示す例では、図1に示した外部記録部28−5として、メモリカードディスクを装着できるように構成され、情報処理コントローラ13のバス29−3に接続されたバス51に、液晶表示部52、音声出力部53、カメラ部54、音声入力部55、キーボード部56及びネットワーク接続部57が接続されている。
なお、図1では内部を省略した情報処理コントローラ13は、メインプロセッサ21−3、サブプロセッサ23−7、23−8、23−9、DMAC(ダイレクトメモリアクセスコントローラ)25−3、DC(ディスクコントローラ)27−3及びバス29−3を備え、そのメインプロセッサ21−3は、LS(ローカル・ストレージ)22−3を有し、各サブプロセッサ23−7、23−8、23−9は、LS(ローカル・ストレージ)24−7、24−8、24−9を備えている。
また、図13には、情報処理装置(PDA)3、すなわち情報処理コントローラ13のソフトウェア構成を示している。同図に示すように、制御プログラムとして、MSマネージャ及び能力交換プログラムを備え、機能プログラムとして、映像音声記録、映像音声再生、電話帳、ワープロ及び表計算のためのプログラム、及びWebブラウザを備え、デバイスドライバとして、映像出力、音声出力、カメラ映像入力、マイク音声入力及びネットワーク入出力のためのプログラムを備えている。
また、情報処理コントローラ14を備える情報処理装置4は、ポータブルCDプレーヤである。図14には、ポータブルCDプレーヤのハードウェア構成を示している。図示の例では、ポータブルCDプレーヤは、図1に示した外部記録部28−6として、CD(Compact Disc)を装着できるように構成され、情報処理コントローラ14のバス29−4に接続されたバス61に、液晶表示部62、音声出力部63、操作ボタン部64及びネットワーク接続部65が接続されている。
なお、図1では内部を省略した情報処理コントローラ14は、メインプロセッサ21−4、サブプロセッサ23−10、23−11、23−12、DMAC25−4、DC27−4及びバス29−4を備え、そのメインプロセッサ21−4は、LS22−4を有し、各サブプロセッサ23−10、23−11、23−12は、LS24−10、24−11、24−12を有する。
図15には、情報処理装置(ポータブルCDプレーヤ)4、すなわち情報処理コントローラ14のソフトウェア構成を示している。図示のように、制御プログラムとして、MSマネージャ及び能力交換プログラムを備え、機能プログラムとして、音楽再生のためのプログラムを備え、デバイスドライバとして、音声出力、CD制御及びネットワーク入出力のためのプログラムを備える。
図9に例示したネットワークシステムでは、情報処理装置1、3及び4がネットワーク9上に接続されており、情報処理装置1がマスター装置(MSステータス=0)として、情報処理装置3及び4がスレーブ装置(MSステータス=1)として、設定されているものとする。
この状態で、新たに情報処理装置2がネットワーク9に接続されると、上述した方法によって、情報処理装置2内の情報処理コントローラ12に含まれるメインプロセッサ21−2で実行されているMSマネージャは、他の情報処理装置1、3及び4にMSステータスを照会して、情報処理装置1が既にマスター装置として存在することを認識し、自装置(情報処理装置2)をスレーブ装置(MSステータス=1)に設定する。また、マスター装置に設定されている情報処理装置1は、新たに追加された情報処理装置2を含む各装置の装置情報を収集して、メインメモリ26−1内の装置情報テーブルを更新する。
このような状態で、ユーザによってスレーブ装置である情報処理装置(PDA)3で2時間の放送番組を録画予約するための操作が行なわれた場合について、以下に説明する。
この場合、スレーブ装置である情報処理装置(PDA)3は、ユーザから録画開始時刻、録画終了時刻、録画対象放送チャネル、録画品質などの情報を含む録画予約情報の入力を受け付け、当該録画予約情報及びDMAコマンドとしての録画予約コマンドを含むソフトウェアセルを生成して、マスター装置である情報処理装置1に送信する。
DMAコマンドが録画予約コマンドであるソフトウェアセルを受信した情報処理装置1内の情報処理コントローラ11に含まれるメインプロセッサ21−1は、録画予約コマンドを読み出すとともに、メインメモリ26−1内の装置情報テーブルを参照し、当該録画予約コマンドを実行可能な情報処理装置を特定する。
まず、メインプロセッサ21−1は、装置情報テーブルに含まれる各情報処理装置1、2、3、4の情報処理装置種別IDを読み出して、録画予約コマンドに対応する機能プログラムを実行可能な情報処理装置を抽出する。ここでは、録画機能を示す情報処理装置種別IDを有する情報処理装置1、2が候補装置として特定され、情報処理装置3、4は候補装置から除外される。
次に、マスター装置である情報処理装置1内の情報処理コントローラ11に含まれるメインプロセッサ21−1は、装置情報テーブルを参照して、情報処理装置1、2のメインプロセッサ又はサブプロセッサの処理能力、メインメモリに関する情報などの装置に関する情報を読み出し、情報処理装置1、2が録画予約コマンドに対応する機能プログラムの実行に必要な要求スペックを満足するか否かを判断する。ここでは、情報処理装置1、2とも、録画予約コマンドに対応する機能プログラムの実行に必要な要求スペックを満足するものとする。
さらに、メインプロセッサ21−1は、装置情報テーブルを参照して、情報処理装置1、2の外部記録部に関する情報を読み出し、外部記録部の空き容量が当該録画予約コマンドの実行に必要な容量を満足するか否かを判断する。情報処理装置1、2はハードディスクレコーダであるので、それぞれハードディスク28−1、28−3の、総容量と使用量との差分が、それぞれの空き容量に相当する。
この場合、情報処理装置1のハードディスク28−1の空き容量が、録画時間に換算して10分であり、情報処理装置2のハードディスク28−3の空き容量が、録画時間に換算して20時間であるとする。
このとき、マスター装置である情報処理装置1内の情報処理コントローラ11に含まれるメインプロセッサ21−1は、当該録画予約コマンドの実行に必要な2時間分の空き容量を確保できる情報処理装置を、実行要求先スレーブ装置として特定する。
その結果、情報処理装置2のみが実行要求先スレーブ装置として選択され、マスター装置である情報処理装置1内の情報処理コントローラ11に含まれるメインプロセッサ21−1は、ユーザにより操作された情報処理装置3から送信された録画予約情報を含む当該録画予約コマンドを情報処理装置2に送信して、上記2時間の放送番組の録画予約の実行を要求する。
そして、情報処理装置2内の情報処理コントローラ12に含まれるメインプロセッサ21−2は、当該録画予約コマンドを解析して、録画に必要な機能プログラムを外部記録部であるハードディスク28−3からメインメモリ26−2にロードし、録画予約情報に従って録画を実行する。その結果、録画予約された2時間の放送番組の映像音声データが情報処理装置2のハードディスク28−3に記録される。
このように、図9の例のネットワークシステムにおいても、ユーザは、1台の情報処理装置のみを操作することによって、他の情報処理装置を操作することなく、複数の情報処理装置1、2、3、4を仮想的な1台の情報処理装置7として動作させることができる。
B.起動条件に応じた機能プログラムの実行
上述したように、本発明によれば、ネットワーク接続された複数の情報処理装置が互いに連携することで1台の仮想的な情報処理装置を実現することができる。本発明のさらなる実施形態として、ネットワーク接続された複数の機器により構成される仮想的な1台の機器における余剰の処理能力や機器の接続状態などからなるシステム状態を監視し、時々刻々と変動するシステム状態に応じた機能を実現することができる。すなわち、仮想的な1台の機器における余剰の処理能力や機器の接続状態などのシステム状態がある所定の起動条件を満たす場合に、あらかじめ設定しておいた機能プログラムを動作させることができる。また、起動条件を自由に且つ容易に変更する手段を用意することにより、ユーザの利便性を高めることができる。
B−1.システム構成
図16には、本発明の一実施形態に係るネットワークシステムの構成を模式的に示している。図示のネットワークシステムは、ホームネットワークなどのローカルネットワーク30により相互接続された複数の情報処理装置10、11…が互いに連携することで1台の仮想的な情報処理装置20を構築している。
情報処理装置10、11…のうち1台はマスター装置として動作し、それ以外はすべてスレーブ装置として動作する(前述)。
仮想情報処理装置20は、各情報処理装置の総和として構成されるシステムにおいて、各機能の実行に必要な性能情報を取得する手段を備えている。具体的には、マスター装置として動作する情報処理装置が主体となってこの手段を実現する。
仮想情報処理装置20は、インターネットなどの通信ネットワーク40経由でサーバに接続することが可能である。サーバは、さまざまの情報を公開することができるが、本実施形態では、特に情報提供サーバ50や、情報収集サーバ60を装備している。
情報提供サーバ50には、起動条件設定データベース70、情報提供データベース71、並びに利用履歴保存設定データベース72が装備されている。仮想情報処理装置20は、情報提供サーバ50を介してこれらのデータベース70〜72から目的とするデータやソフトウェアを取得することが可能となる.
また、情報収集サーバ60は、仮想情報処理装置20から送出された利用履歴データを利用履歴データベース80に保存している。さらに、この利用履歴データベース80から生成された統計情報を統計情報データベース81で管理する。そして、ここで得られた情報から有益と思われる情報を情報提供サーバ50内の起動条件設定データベース70、情報提供データベース71に反映させる。
B−2.情報処理装置の構成
図17には、仮想情報処理装置20を構成する情報処理装置10の構成を模式的に示している。なお、図示しないが、他方の情報処理装置11も基本的には同様の構成を備えているものとする。
情報処理装置10は、自己のローカルストレージ上に展開されたプログラムを実行可能な1以上のサブプロセッサと、サブプロセッサにプログラムの実行を命令するメインプロセッサとを備えたマルチプロセッサ構成である。このようなマルチプロセッサ構成によれば、各サブプロセッサの連携により、1つのプロセッサでは負荷の高い処理を分散して実現可能となり、あるいは関連する2以上のデータ処理を同期・協調して実行することができるようになるので、ユーザに対し高機能・高付加価値のサービスを提供することができる。
各プロセッサはシステムバスを介してメインメモリを共有しており、システムの処理データはメインメモリ上に展開される。メインプロセッサは、メインメモリ上のデータ処理を各サブプロセッサに割り当て、その処理実行を指示する。サブプロセッサは、データ処理を実行するためのサブプロセッサプログラムをロードし、メインプロセッサからの指示によりプログラムを起動して、メインメモリ上のデータの処理を実行する。
ここで、メインメモリは、比較的大容量であり、記憶量当たりの単価の低いDRAM(Dynamic RAM)が使用される。このため、サブプロセッサとメインメモリ間のレイテンシが大きい、サブプロセッサ同士のメインメモリへのアクセス競合といった問題がある。そこで、メインプロセッサ並びに各サブプロセッサはそれぞれ専用のローカルストレージを備え、メインメモリ上にあるデータの処理を行なう際に、自己のローカルストレージをいわゆるキャッシュメモリとして使用することで、メインメモリへのアクセス競合やシステムバスのトラフィック増加を抑止する。図示のシステムでは、以下の特徴を持つものとする。
(1)サブプロセッサ毎に専用のローカルストレージを有する。
(2)サブプロセッサは自己のローカルストレージ以外に直接アクセスしない。
(3)メインメモリはDRAMのような比較的低速のメモリ素子が使用される。
(4)サブプロセッサは必要に応じてメインメモリの一部のエリアをローカルストレージにキャッシュする機構を有する。
また、各プロセッサは、ハードディスクなどで構成される大容量の外部記録装置を、システムバスを介して共有している。この外部記録装置へのアクセス動作は、ディスクコントローラ(DC)を介して行なわれる。
情報処理装置10は、ローカルネットワーク30上に接続されている情報処理装置11と連携して仮想情報処理装置20を構築することが可能である。この連携動作の過程で、図18に示されるような情報処理装置11の装置情報を取得する。
ここで、情報処理装置IDは、自身の装置情報を応答する情報処理装置を識別するための識別子である。また、情報処理装置種別IDには、情報処理装置の特徴を表す値が含まれる。情報処理装置の特徴とは、例えば、ハードディスクレコーダ、PDA、テレビなどといった商品を表す場合もあれば、画像処理、映像記録再生などといった機能を表す場合もある。
MSステータスは、情報処理装置がマスターあるいはスレーブのどちらで動作しているかを表す。0の場合は情報処理装置がマスターとして動作していることを表し、1の場合はスレーブとして動作していることを表している。
メインCPU動作周波数はメインCPUの動作周波数を表す。メインCPU使用率は、メインCPUで現在動作しているすべてのプログラムの、メインCPUの使用率を表す.
サブプロセッサ数は、情報処理装置が具備するサブプロセッサの数を表す。サブプロセッサIDは、情報処理装置におけるサブプロセッサを識別するための識別子である。サブプロセッサ使用率は、当該サブプロセッサで動作しているプログラムのサブプロセッサの使用率を表す。サブプロセッサID、サブプロセッサ使用率は一組であり、サブプロセッサ数だけ存在する。
メモリ総容量とメモリ使用量は、情報処理装置と接続されているメインメモリの総容量と現在使用中の量を表す。
マスターとなった情報処理装置10は、これら各装置情報を収集し、仮想情報処理装置20としての余剰処理能力を算出することができる。
さらに、マスターとなった情報処理装置10は、通信ネットワーク40を介し、情報提供サーバ50から、起動条件設定データベース70、情報提供データベース71、利用履歴保存設定データベース72にアクセスする機構を備えており、取得したデータやソフトウェアはメインメモリ若しくは外部記憶装置に保存される。
仮想情報処理装置20を構成した際、マスターとなる情報処理装置10は、定常的に能力プログラムを実行することにより、スレーブとなる他方の情報処理装置11の装置情報を監視することがでてきる。
また、スレーブとなる情報処理装置11は、自装置の装置情報にある一定以上の変化を生じた場合に、マスターの情報処理装置10にその旨を通知する手段を備えている。
また、情報処理装置10は、利用履歴保存設定情報に基づいて機能利用履歴データを外部記憶装置に保存し、通信ネットワーク40を介して、情報収集サーバ60へ送出する機構を備えている。
B−3.サーバの構成
情報提供サーバ50には、起動条件設定データベース70、情報提供データベース71、並びに利用履歴保存設定データベース72が装備されている。
起動条件設定データベース70には、機能プログラム、若しくはイベントの起動条件に関する設定データが格納されている。情報提供データベース71には、起動時に動作させるソフトウェア、イベントに使用する情報データなどが格納されている。利用履歴保存設定データベース72には、機能プログラムの種類、実行日時、負荷率、余剰能力、接続装置、ユーザ情報など、履歴として記録可能なデータについて、どのデータを情報処理装置内にある外部保存記憶装置に記録するかを指定する利用履歴保存設定情報が格納されている。
情報提供サーバ50は、情報処理装置10、情報処理装置11、若しくは仮想情報処理装置20から要求があった際、あるいは情報提供サーバ50内に設定された所定のタイミングで、各情報処理装置10、11、…又は仮想情報処理装置20に必要なデータやソフトウェアを提供する。
また、情報収集サーバ60は、利用履歴データベース80と、統計情報データベース81を備えている。利用履歴データベース80には、各情報処理装置内に保存され、所定のタイミングで情報収集サーバ60宛てに送出された利用履歴データが格納される。統計情報データベース81には、この利用履歴データベース80からアプリケーション別、ユーザ情報の属性別など、設定したカテゴリ単位で集計された統計情報データが格納される。統計情報データベース81で得られたデータの一部は情報提供サーバ50内の起動条件設定データベース70や情報提供データベース71に反映される。
なお、ここでは便宜上、情報提供サーバ50と情報収集サーバ60を分離して説明したが、実際に構築する際は1つのサーバ装置で実装しても良い。
B−4.運用形態
図16に示したシステム構成によれば、仮想情報処理装置20において機能プログラムを設定するための余剰処理能力や機器の接続状態などのシステム状態を、起動条件としてあらかじめ設定している。したがって、システム状態がある所定の起動条件を満たす場合に、あらかじめ設定しておいた機能プログラムを動作させることができる。また、仮想情報処理装置20は、起動条件を規定する起動条件設定情報や、起動時に用いるソフトウェアやデータなどを、情報提供サーバ50から取得することができる。
また、仮想情報処理装置20において、所定の起動条件が満たされ、機能プログラムを実行する際には、機能プログラムの種類や実行日時、負荷率、余剰能力、接続装置、ユーザ情報などの利用履歴を、機能利用履歴情報として保存するようになっている。
また、仮想情報処理装置20において、機能プログラムを実行する際に、履歴として記録が可能なデータ、若しくは履歴として保存すべき情報を、利用履歴保存設定情報として規定することができる。仮想情報処理装置20は、履歴として記録すべきデータ属性を規定する利用履歴保存設定情報を、情報提供サーバ50から取得することができる。
そして、このような機能利用履歴情報は、情報収集サーバ60で収集され、統計処理が施され、利用統計情報が生成される。利用統計情報は、例えば、どのような情報処理装置の組合せで、どのような機能プログラムがどの程度利用されたかなどを表す。このような利用統計情報に基づいて、各々のユーザ環境に応じた機能選択情報を生成し、仮想情報処理装置20のユーザに提供することにより、ユーザの利便性を向上することができる。
以下、本実施形態におけるシステムの運用形態について説明する。
仮想情報処理装置20において、マスターとなる情報処理装置10は能力交換プログラムを実行することによって、ローカルネットワーク30(例えば、ホームネットワーク)に接続されている他の情報処理装置の装置情報を取得すると、仮想情報処理装置20としての余剰処理能力の総計を算出する。
また、情報処理装置10は、所定のタイミング(例えば、ユーザが設定した期間が経過した後、若しくは情報提供サーバ50側で情報処理装置10への情報更新が要求されたことを契機とする時点など)で、情報提供サーバ50から、起動条件設定データベース70、情報提供データベース71、利用履歴保存設定データベース72をそれぞれ取得する。
仮想情報処理装置20内でマスターとなる情報処理装置10は、機能プログラムの起動条件を定めた起動条件設定情報を、起動条件設定データベース70から取得する。ここで得られた起動条件と、仮想情報処理装置20の現在の装置情報、並びに余剰処理能力値とを比較する。そして、起動条件を満たしていれば、設定されている機能プログラムを実行する監視プログラムを起動する。
図19には、仮想情報処理装置20のシステム状態を監視し、起動条件を満たしたかに応じて機能プログラムを実行するための処理手順をフローチャートの形式で示している。
マスターとなる情報処理装置10は、能力交換プログラム(前述)の実行により、ネットワーク上で連携するすべての情報処理装置の装置情報を取得する(ステップS1)。ここで、装置情報として、仮想情報処理装置20としての余剰の処理能力や、ネットワークに接続されている情報処理装置の個数や種類などからなるシステム状態を取得する。
そして、取得された装置情報と、起動条件設定情報とを比較し、機能プログラムを起動するための条件を満たすか否かを判別する(ステップS2)。
そして、起動条件を満たす場合には、指定された機能プログラムを実行する(ステップS3)。
一方、設定された起動条件を満たしていない場合は、ステップS1に戻り、あらかじめ設定された所定の間隔で能力交換プログラムを起動させ、定期的に装置情報を監視する。あるいは、スレーブである情報処理装置20が自装置の装置情報に変化があった場合にマスター情報処理装置20に通知する手段を備えることで、装置情報の変動に対応する。
以下の表1には、ステップS2において参照する起動条件設定情報の一例を示している。同表では、メインCPU動作周波数、メインメモリ容量、空きサブプロセッサ数、外部記憶装置使用量、ネットワーク接続されている装置IDの他に、適用すべきユーザ属性(性別や年齢など)、機能の起動有効日時などの条件を、機能プログラム毎に記述している。起動条件設定情報は、マスターとなる情報処理装置10上で設定されているが、情報提供サーバ50の起動条件データベース70から取得することもできる。
Figure 2006031481
起動条件を満たす場合には、指定された機能プログラムを実行する。この際、機能プログラムの実行に必要なソフトウェアやデータは、マスター情報処理装置10内の外部記憶装置にあらかじめ保持させておいても良いし、あるいは情報提供サーバ50の情報提供データベース71から提供されても良い。
仮想情報処理装置20を構成するいずれかの情報処理装置10、11…上で何らかの機能プログラムが実行された場合、マスターとなる情報処理装置10上では、機能利用履歴データが生成され、情報処理装置10内の外部記憶装置に保存され、機能利用履歴データが生成される。
機能プログラムの実行時に利用履歴として保存すべきデータ項目は、利用履歴保存設定情報として規定される。利用履歴保存設定情報は、マスターとなる情報処理装置10上で設定されているが、情報提供サーバ50の利用履歴保存設定データベース72から取得することもできる。
以下の表2には、利用履歴保存設定情報の一例を示している。同表に示す例では、機能プログラムを利用したユーザ、負荷率(メインCPU負荷率、メインメモリ使用量、サブプロセッサ使用数、外部記憶使用量)、接続機器の識別情報などの保存可能なデータ項目などのうち利用履歴として保存すべきか否かを示した設定情報を、履歴保存有効日時とともに、機能プログラム毎に規定している。
Figure 2006031481
例えば、機能IDがA0010の機能部グラムの利用履歴保存設定情報では、指定した履歴保存有効日時において、機能プログラムを利用したユーザ、負荷率(メインCPU負荷率、メインメモリ使用量、サブプロセッサ使用数、がイブ記憶使用量)、接続機器IDを保存するよう取り決めている。
以下の表3には、表2に示した利用履歴保存設定情報に従って、機能プログラムの実行時に保存された機能利用履歴情報の一例を示している。同表に示す例では、実行した機能プログラム毎に履歴IDが付され、機能IDと利用したユーザのユーザID、当該機能プログラムの使用日時とともに、利用履歴保存設定情報で保存が指定されている各データ項目についての利用履歴が記録されている。
Figure 2006031481
なお、利用履歴保存設定情報には、保存する履歴データの指定の他に、データの統計処理方法を含むことも可能である。この場合、この利用履歴保存設定情報を変更することで、必要最小限の履歴データの保存、新規に追加された項目の追加指定などが容易に行なうことができる。
各情報処理装置内に保存された機能利用履歴データは、情報処理装置10、11…が接続可能なネットワーク上にある情報収集サーバ60宛てへ、所定のタイミングで利用履歴データを送出する。
情報収集サーバ60では、取得した利用履歴データを利用履歴データベース80に保存し、装置情報や余剰能力別に分類した利用情報を生成する。これにより、ユーザがどのような環境下でどのような情報処理装置を接続しているか、また、ある機能がどのくらいの頻度で利用されているか、などの統計情報が取得可能となる。
このようにして情報収集サーバ60で得られた統計情報を基に、ある条件下での他のユーザも含めた使用頻度の高い機能を実行可能な条件を算出し、各々のユーザの環境に応じた機能選択情報を生成する。これを情報提供サーバ50内の起動条件設定データベース70、情報提供データベース71に反映させることで、次回、ユーザが同様の接続環境、若しくはステータスになった場合に、設定された機能プログラムが起動しこれら情報を通知する、などの利便性向上が可能となる。
図20には、上述したシステム運用形態を実現するための動作手順を示している。
情報提供サーバ50から、仮想情報処理装置20のマスターとして動作する情報処理装置へ、起動条件設定情報や利用履歴設定情報などの各種設定情報や、仮想情報処理装置20上で実行する機能プログラム並びに使用するデータを送信する(ステップS11)。
情報処理装置10は、これらを受信すると、起動条件設定情報や利用履歴設定情報などの各種設定項目(表1、表2を参照のこと)を更新する(ステップS12)。
そして、情報処理装置10は、仮想情報処理装置20のマスターとして能力交換プログラムを実行し、スレーブとして動作する情報処理装置11に装置情報を要求する(ステップS13)。これに対し、情報処理装置11は、要求された装置情報を返信する(ステップS14)。なお、仮想情報処理装置20は、情報処理装置11以外に複数のスレーブ装置を含んでいてもよいが、図面の簡素化のため省略している。
マスターである情報処理装置10で動作する能力交換プログラムは、装置情報テーブルと同様に、すべてのスレーブ装置についての装置情報(図4を参照のこと)を格納するための領域を自装置のメインメモリに確保し、これら情報をスレーブ装置の装置情報テーブルとして記録する。一方、スレーブ装置のメインメモリには、自装置の装置情報が、装置情報テーブルとして記録されるとともに、マスター装置及び各スレーブ装置についての情報処理装置ID及びMSステータスが、別の装置情報テーブルとして記録される。
また、マスター装置及びスレーブ装置のいずれについても、能力交換プログラムは、上記のようにMSマネージャから、新たにネットワークに情報処理装置(図示しない)が接続されたことが通知されたときには、その情報処理装置の装置情報を取得し、上述したようにメインメモリ26に記録する。
情報処理装置10は、各スレーブ装置から受信した装置情報を基に、仮想情報処理装置としての余剰の処理能力や、ネットワーク接続されている装置の種類や台数などからなるシステム状態を取得することができる。そして、マスターである情報処理装置10は、得られたシステム状態がステップS12において設定した起動条件を満たすかどうかの起動条件判定処理を行なう(ステップS15)。
ここで、仮想情報処理装置20のシステム状態が起動条件を満たす場合には、該当する機能プログラムの実行を行なう(ステップS16)。
機能プログラムの実行は、マスターである情報処理装置10自身で行なってもよいが、余剰能力のあるスレーブ装置に機能プログラムの実行を要求するようにしてもよい。後者の場合、マスターである情報処理装置10は、スレーブである情報処理装置11に対し、機能プログラムのロードを要求する。情報処理装置11は、ロード要求を受信すると、該当する機能プログラムをロードし、ロード完了通知を返信する。そして、情報処理装置10は、完了通知を受信すると、今度は機能プログラムの実行を命令し、情報処理装置11は機能プログラムを実行する。
情報処理装置10又は11が機能プログラムを実行する際、当該機能プログラムについて利用履歴保存設定情報(表2を参照のこと)に従い、機能利用履歴情報が保存される(ステップS17)。スレーブ装置側で機能プログラムが実行された場合には、機能プログラムの実行終了後に、マスターである情報処理装置10において機能利用履歴情報が保管されるものとする。
情報処理装置10は、機能履歴情報を、所定のタイミングで情報収集サーバ60に送信する(ステップS18)。
情報収集サーバ60側では、収集した利用履歴情報に対し所定の統計処理を施し、利用統計情報を生成する(ステップS19)。この利用統計情報は、例えば、どのような情報処理装置の組合せで、どのような機能プログラムがどの程度利用されたかなどを表す。
情報収集サーバ60は、さらに利用統計情報に基づいて、各々のユーザ環境に応じた機能選択情報を生成する(ステップS20)。そして、この機能選択情報を情報提供サーバ50に送信する(ステップS21)。
情報提供サーバ50は、機能選択情報に基づいて、起動条件設定情報や利用履歴保存設定情報などの各種設定情報の設定項目などを更新する(ステップS22)。この結果、当該機能プログラム起動に関するサービス内容をさらに充実させ、ユーザの利便性を向上することができる。すなわち、ユーザの利用履歴情報から得られる利用統計情報がユーザに還元されることになる。
最後に、本実施形態に係る仮想情報処理装置における起動条件の設定並びに利用履歴情報の保存に関するユースケースについて説明する。
起動条件設定の一例:
例えば、仮想情報処理装置20としての余剰能力として、メインプロセッサの動作周波数が256MHz、メインメモリの容量が512Mバイト、サブプロセッサ残数が2、外部記憶装置の残量が20Gバイトのときで、且つ、装置IDがZ0030という装置がスレーブとして接続されているというシステム状態において、ユーザが男性であり、年齢が40代〜60代、日時が2004/3/20〜3/31のときに、ある機能プログラム(ID:A0010)を実行させたいとする。この場合には、表1に示した起動条件設定情報テーブルの最上段(起動ID:320)に示すような設定を行なう。
同様に、余剰能力としてメインプロセッサの動作周波数が128MHz、メインメモリの容量が256Mバイト、サブプロセッサ残数が0、外部記憶装置残量5Gバイトというシステム状態のときで、且つ、日時が2004/4/10までのときに機能プログラム(ID:B0010)を実行させたい場合には、同起動条件設定情報テーブルの2段目(起動ID:321)に示すような設定となる.
ここでのユースケースとして、仮想情報処置装置20がハードディスクレコーダである場合について説明する。
ある番組を録画する際、仮想情報処理装置20が装備する機能として、(1)マルチチャンネル録画、(2)高画質化処理、(3)ノイズ除去処理という複数の機能があったとする。ここで、仮想情報処理装置20の余剰能力の観点からは、これら複数の機能プログラムのうちいずれか1つしか実行可能でない、という制約があるとする。
このような場合に、ユーザ属性や過去のユーザの利用頻度に応じて、優先的に選択する機能を変更するような起動条件設定情報を用意する。例えば、起動条件の1つとして、画質にこだわる年配のユーザ向けには高解像度化処理を行なうという設定情報を用意する。また、さまざまな興味を持つ若者層ユーザにはマルチチャンネル録画を行なうという設定情報を用意する。これによって、ユーザに応じた利便性の向上を図ることができる.
また、その他のユースケースとして、同じく仮想情報処置装置20がハードディスクレコーダである場合について説明する。
ある番組を録画しようとした際、その時点での仮想情報処理装置20が持つ余剰能力ではユーザが望む高画質化処理が行なうことができないとする。ここで、当該余剰能力下において、情報提供サーバ50に対し新規プログラムが登録されていないか確認する機能プログラムを起動する、という起動条件設定情報を設定する。
このような場合、情報提供サーバ50側で処理量を減らした簡易版の高解像度化処理プログラムを用意しておく。そして、仮想情報処理装置20側では、ある余剰能力条件下になった際には、マスターである情報処理装置10が簡易版プログラムを自動的にダウンロードし、既存の機能プログラムと置き換えて使用する。これによって、ユーザは、余計な手間を必要としないまま、仮想情報処理装置20の余剰能力を意識せずに、目的とする機能の実行が可能となる。
利用履歴保存設定の一例:
仮想情報処理装置20としてある機能を他の情報処理装置と組み合わせて実行しようとした際、どの情報処置装置と接続されるケースが最も多いのか、また、ある機能が実行される際にメインメモリはどれくらい使用されているケースが多いのかなど、機能実行時の利用履歴に関する情報は、アプリケーション若しくは機能プログラムの開発側の立場からは、実際のユーザの使用環境を知ることは非常に有益である。その際に必要とする(履歴を保存すべき)データ項目も、アプリケーション若しくは機能プログラムによってさまざまである。
そこで、それら機能に応じて保存する履歴を利用履歴保存設定情報として設定することで、無駄なデータを残すことなく、本当に必要なデータのみ蓄積することが可能になる。また、利用履歴情報の集計を行なう情報提供サーバ60へ履歴を送信する際の負荷や、情報提供サーバ60における利用履歴情報の統計処理や利用統計情報に基づく機能選択情報の生成における処理負荷も軽減される。
ここで、前述の表2を例に挙げる。機能ID:A0010が新機能で開発側が詳細に履歴を必要とする場合には、メインCPU負荷率、メインメモリ使用量、サブプロセッサ使用数、接続機器IDなど多くの項目に対し保存設定を行なう。
また、単純にその機能が利用されたかどうかだけが履歴として必要な機能ID:B0010については、ユーザIDのみの保存で、余剰能力としての履歴保存は行なわないように、利用履歴保存設定情報を設定する。
以上、特定の実施形態を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施形態の修正や代用を成し得ることは自明である。
本明細書では、自己のローカルストレージ上に展開されたプログラムを実行可能な1以上のサブプロセッサと、前記サブプロセッサにプログラムの実行を命令するメインプロセッサとを備えたマルチプロセッサ構成を備えた複数の情報処理装置が連携して1台の仮想情報処理装置として動作するシステムを例にとって、本発明の一実施形態について説明してきたが、本発明の要旨はこれに限定されるものではない。上述したアーキテクチャ以外の情報処理装置からなるシステム上においても、余剰の処理能力や接続されている機器などのシステム状態からなる起動条件に応じて所定の機能プログラムを起動させたい場合において、本発明を適用することにより、同様の作用効果を奏することができる。
要するに、例示という形態で本発明を開示してきたのであり、本明細書の記載内容を限定的に解釈するべきではない。本発明の要旨を判断するためには、特許請求の範囲を参酌すべきである。
図1は、本発明の一実施形態に係るネットワーク・システムの構成を示した図である。 図2は、サブプロセッサ23からメインメモリ24へのアクセス手順を説明するための図である。 図3は、ソフトウェアセルの構成例を示した図である。 図4は、DMAコマンドがステータス返信コマンドである場合のソフトウェアセルのデータ領域を示した図である。 図5は、複数の情報処理装置が仮想的な1台の情報処理装置として動作する様子を示した図である。 図6は、情報処理コントローラのソフトウェア構成の一例を示した図である。 図7は、4台の情報処理装置が仮想的な1台の情報処理装置として動作する様子を示した図である。 図8は、図7に示したシステムにおける分散処理の例を示した図である。 図9は、各情報処理装置及びシステムの具体例を示した図である。 図10は、図9中のハード・ディスク・レコーダのハードウェア構成を示した図である。 図11は、図9中のハード・ディスク・レコーダのソフトウェア構成を示した図である。 図12は、図9中のPDAのハードウェア構成を示した図である。 図13は、図9中のPDAのソフトウェア構成を示した図である。 図14は、図9中のポータブルCDプレーヤのハードウェア構成を示した図である。 図15は、図9中のポータブルCDプレーヤのソフトウェア構成を示した図である。 図16は、本発明の一実施形態に係るネットワークシステムの構成を模式的に示した図である。 図17は、仮想情報処理装置20を構成する情報処理装置10の構成を模式的に示した図である。 図18は、装置情報の一覧を示した図である。 図19は、仮想情報処理装置20のシステム状態を監視し、起動条件を満たしたかに応じて機能プログラムを実行するための処理手順を示したフローチャートである。 図20は、本発明に係る仮想情報処理装置におけるシステム運用形態を実現するための動作手順を示した図である。
符号の説明
10,11,12…情報処理装置
20…仮想情報処理装置
30…ローカルネットワーク
40…通信ネットワーク
50…サーバ
60…機能情報データベース
61…ソフトウェアデータベース
71…情報処理装置機能データベース
72…機能データベース
73…連携機能データベース

Claims (16)

  1. ネットワーク接続される複数の情報処理装置の連携動作により1台の仮想情報処理装置として動作する情報処理システムであって、
    前記仮想情報処理装置における余剰能力と前記ネットワークに接続される情報処理装置の構成を含むシステム状態を監視する手段と、
    前記仮想情報処理装置におけるシステム状態と実行可能な機能との関係を設定する起動条件設定手段と、
    システム状態があらかじめ設定した起動条件を満たすことに応じて該当する機能を実行する機能実行手段と、
    前記機能実行手段により機能を実行したときの利用履歴情報を保存する機能利用履歴情報保存手段と、
    を具備することを特徴とする情報処理システム。
  2. 前記ネットワーク経由で接続される情報提供サーバから情報の提供を受ける、
    ことを特徴とする請求項1に記載の情報処理システム。
  3. 前記起動条件設定手段に設定する起動条件設定情報を前記情報提供サーバより取得する、
    ことを特徴とする請求項2に記載の情報処理システム。
  4. 前記機能実行手段が起動する機能プログラム又は機能プログラムが使用するデータを前記情報提供サーバより取得する、
    ことを特徴とする請求項2に記載の情報処理システム。
  5. 利用履歴として保存すべきデータ項目を定めた利用履歴保存設定情報を前記情報提供サーバより取得し、
    前記機能利用履歴情報保存手段は、前記利用履歴保存設定情報により指定されたデータ項目を利用履歴として保存する、
    ことを特徴とする請求項2に記載の情報処理システム。
  6. 前記機能利用履歴情報保存手段は、保存しておいた利用履歴情報を前記ネットワーク上に接続された情報収集サーバに送出する、
    ことを特徴とする請求項1に記載の情報処理システム。
  7. 前記情報収集サーバは、収集した利用履歴情報を基に、どのような情報処理装置の組み合わせでどの機能プログラムがどの程度利用されたかなどを示す利用統計情報を生成する、
    ことを特徴とする請求項6に記載の情報処理システム。
  8. 前記情報収集サーバにより生成された利用統計情報をユーザに還元する手段をさらに備える、
    ことを特徴とする請求項7に記載の情報処理システム。
  9. ネットワーク接続される複数の情報処理装置の連携動作により1台の仮想情報処理装置として動作するための情報処理方法であって、
    前記仮想情報処理装置における余剰能力と前記ネットワークに接続される情報処理装置の構成を含むシステム状態を監視するステップと、
    前記仮想情報処理装置におけるシステム状態と実行可能な機能との関係を設定する起動条件設定ステップと、
    システム状態があらかじめ設定した起動条件を満たすことに応じて該当する機能を実行する機能実行ステップと、
    前記機能実行ステップにおいて機能を実行したときの利用履歴情報を保存する機能利用履歴情報保存ステップと、
    を具備することを特徴とする情報処理方法。
  10. 前記ネットワーク経由で接続される情報提供サーバから情報の提供を受ける情報取得ステップをさらに備える、
    ことを特徴とする請求項9に記載の情報処理方法。
  11. 前記情報取得ステップでは、前記起動条件設定ステップにおいて設定する起動条件設定情報を取得する、
    ことを特徴とする請求項10に記載の情報処理方法。
  12. 前記情報取得ステップでは、前記機能実行ステップにおいて起動する機能プログラム又は機能プログラムが使用するデータを取得する、
    ことを特徴とする請求項10に記載の情報処理方法。
  13. 前記情報取得ステップでは、利用履歴として保存すべきデータ項目を定めた利用履歴保存設定情報を取得し、
    前記機能利用履歴情報保存ステップでは、前記利用履歴保存設定情報により指定されたデータ項目を利用履歴として保存する、
    ことを特徴とする請求項10に記載の情報処理方法。
  14. 前記機能利用履歴情報保存ステップにおいて保存した利用履歴情報を前記ネットワーク上に接続された情報収集サーバに送出するステップをさらに備える、
    ことを特徴とする請求項9に記載の情報処理方法。
  15. 前記情報収集サーバにおいて収集した利用履歴情報を基に生成される、どのような情報処理装置の組み合わせでどの機能プログラムがどの程度利用されたかなどを示す利用統計情報を取得し、ユーザに還元するステップをさらに備える、
    ことを特徴とする請求項14に記載の情報処理方法。
  16. ネットワーク接続される複数の情報処理装置の連携動作により1台の仮想情報処理装置として動作するための処理をコンピュータシステム上で実行するようにコンピュータ可読形式で記述されたコンピュータプログラムであって、
    前記仮想情報処理装置における余剰能力と前記ネットワークに接続される情報処理装置の構成を含むシステム状態を監視するステップと、
    前記仮想情報処理装置におけるシステム状態と実行可能な機能との関係を設定する起動条件設定ステップと、
    システム状態があらかじめ設定した起動条件を満たすことに応じて該当する機能を実行する機能実行ステップと、
    前記機能実行ステップにおいて機能を実行したときの利用履歴情報を保存する機能利用履歴情報保存ステップと、
    を具備することを特徴とするコンピュータプログラム。
JP2004210762A 2004-07-16 2004-07-16 情報処理システム及び情報処理方法、並びにコンピュータプログラム Expired - Fee Related JP4599923B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2004210762A JP4599923B2 (ja) 2004-07-16 2004-07-16 情報処理システム及び情報処理方法、並びにコンピュータプログラム
US11/180,218 US8380817B2 (en) 2004-07-16 2005-07-13 Information processing system, information processing method, and computer program used therewith
CNB2005101067118A CN100424681C (zh) 2004-07-16 2005-07-18 信息处理系统、信息处理方法和其使用的计算机程序

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004210762A JP4599923B2 (ja) 2004-07-16 2004-07-16 情報処理システム及び情報処理方法、並びにコンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2006031481A true JP2006031481A (ja) 2006-02-02
JP4599923B2 JP4599923B2 (ja) 2010-12-15

Family

ID=35600735

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004210762A Expired - Fee Related JP4599923B2 (ja) 2004-07-16 2004-07-16 情報処理システム及び情報処理方法、並びにコンピュータプログラム

Country Status (3)

Country Link
US (1) US8380817B2 (ja)
JP (1) JP4599923B2 (ja)
CN (1) CN100424681C (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011082610A (ja) * 2009-10-02 2011-04-21 Toshiba Corp 複数のプロセサを利用する映像装置および画像処理方法
JP2015521778A (ja) * 2012-06-29 2015-07-30 インテル・コーポレーション アクション候補の予測のためにアプリケーションにより提供されるコンテキスト
JP2016035649A (ja) * 2014-08-01 2016-03-17 京セラドキュメントソリューションズ株式会社 情報処理システム及び情報処理プログラム

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7110940B2 (en) * 2002-10-30 2006-09-19 Microsoft Corporation Recursive multistage audio processing
US20070280135A1 (en) * 2006-06-01 2007-12-06 Alcatel Apparatus and method for monitoring status of a network element
JP2008060971A (ja) * 2006-08-31 2008-03-13 Fujitsu Ltd 情報処理システム、情報処理装置、情報処理方法およびプログラム
US20080320088A1 (en) * 2007-06-19 2008-12-25 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Helping valuable message content pass apparent message filtering
JP2009071531A (ja) * 2007-09-12 2009-04-02 Ricoh Co Ltd 通信装置および通信方法
JP5414305B2 (ja) * 2009-02-25 2014-02-12 キヤノン株式会社 情報処理装置、仮想記憶管理方法及びプログラム
JP5141830B2 (ja) * 2009-12-14 2013-02-13 富士通株式会社 通信装置、統計情報収集制御装置および統計情報収集制御方法
KR101748318B1 (ko) * 2010-11-22 2017-06-27 삼성전자 주식회사 휴대 단말기의 어플리케이션 실행 방법 및 장치
JP6293992B2 (ja) * 2012-08-01 2018-03-14 ソニー株式会社 表示制御装置、表示制御方法およびプログラム
EP3052019B1 (en) * 2013-10-01 2018-03-07 Koninklijke Philips N.V. System and method for myocardial perfusion pathology characterization
US9829947B1 (en) * 2014-04-04 2017-11-28 Google Llc Selecting and serving a content item based on device state data of a device
JP6561433B2 (ja) * 2014-05-15 2019-08-21 ソニー株式会社 複数のハードウェアのエレメントを連係動作させることによって機能を実現させるための方法、システム、端末装置、およびサーバ
CN107025189B (zh) * 2016-01-29 2020-02-28 佛山市顺德区顺达电脑厂有限公司 机箱的控制系统
CN107133065B (zh) * 2017-03-31 2020-10-30 北京奇艺世纪科技有限公司 一种开启软件功能的方法及装置
CN111221594B (zh) * 2019-12-30 2023-12-12 智车优行科技(北京)有限公司 一种主从设备功能插件化注册方法及主设备、从设备
US11658833B1 (en) * 2022-12-06 2023-05-23 Citibank, N.A. Systems and methods for conducting cryptographically secure actions in public, non-permissioned blockchains using bifurcated self-executing programs
US11748491B1 (en) 2023-01-19 2023-09-05 Citibank, N.A. Determining platform-specific end-to-end security vulnerabilities for a software application via a graphical user interface (GUI) systems and methods
US11874934B1 (en) 2023-01-19 2024-01-16 Citibank, N.A. Providing user-induced variable identification of end-to-end computing system security impact information systems and methods

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1075219A (ja) * 1996-07-03 1998-03-17 Matsushita Electric Ind Co Ltd 放送システム、サービス提供装置及び受信端末装置
JP2002342165A (ja) * 2001-03-22 2002-11-29 Sony Computer Entertainment Inc コンピュータ処理システム及びコンピュータで実行される処理方法
JP2002351850A (ja) * 2001-03-22 2002-12-06 Sony Computer Entertainment Inc プロセッサでのデータ処理方法及びデータ処理システム
JP2002358289A (ja) * 2001-03-22 2002-12-13 Sony Computer Entertainment Inc プロセッサ装置内で一時的に専用パイプラインを設定する方法及びシステム
JP2002366533A (ja) * 2001-03-22 2002-12-20 Sony Computer Entertainment Inc コンピュータ・ネットワーク及びコンピュータ可読媒体
JP2002366534A (ja) * 2001-03-22 2002-12-20 Sony Computer Entertainment Inc コンピュータ・プロセッサ及び処理装置
JP2003223590A (ja) * 2001-11-21 2003-08-08 Matsushita Electric Ind Co Ltd 属性情報利用システムと装置
JP2003316994A (ja) * 2002-04-25 2003-11-07 Alphameric:Kk 販売促進方法および販売促進支援システム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07160657A (ja) * 1993-12-08 1995-06-23 Fujitsu Ltd クラスタ間通信制御装置
US6282578B1 (en) * 1995-06-26 2001-08-28 Hitachi, Ltd. Execution management method of program on reception side of message in distributed processing system
JPH09167141A (ja) * 1995-12-18 1997-06-24 Hitachi Ltd 負荷分散制御方法
US6067477A (en) * 1998-01-15 2000-05-23 Eutech Cybernetics Pte Ltd. Method and apparatus for the creation of personalized supervisory and control data acquisition systems for the management and integration of real-time enterprise-wide applications and systems
US7181743B2 (en) * 2000-05-25 2007-02-20 The United States Of America As Represented By The Secretary Of The Navy Resource allocation decision function for resource management architecture and corresponding programs therefor
JP3688571B2 (ja) * 2000-09-20 2005-08-31 株式会社東芝 情報処理装置
JP2003315994A (ja) 2002-04-23 2003-11-06 Tokyo Ohka Kogyo Co Ltd ポジ型ホトレジスト組成物
JP4852226B2 (ja) * 2002-12-27 2012-01-11 セイコーエプソン株式会社 デバイス監視システム
US7406691B2 (en) * 2004-01-13 2008-07-29 International Business Machines Corporation Minimizing complex decisions to allocate additional resources to a job submitted to a grid environment
US7810099B2 (en) * 2004-06-17 2010-10-05 International Business Machines Corporation Optimizing workflow execution against a heterogeneous grid computing topology

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1075219A (ja) * 1996-07-03 1998-03-17 Matsushita Electric Ind Co Ltd 放送システム、サービス提供装置及び受信端末装置
JP2002342165A (ja) * 2001-03-22 2002-11-29 Sony Computer Entertainment Inc コンピュータ処理システム及びコンピュータで実行される処理方法
JP2002351850A (ja) * 2001-03-22 2002-12-06 Sony Computer Entertainment Inc プロセッサでのデータ処理方法及びデータ処理システム
JP2002358289A (ja) * 2001-03-22 2002-12-13 Sony Computer Entertainment Inc プロセッサ装置内で一時的に専用パイプラインを設定する方法及びシステム
JP2002366533A (ja) * 2001-03-22 2002-12-20 Sony Computer Entertainment Inc コンピュータ・ネットワーク及びコンピュータ可読媒体
JP2002366534A (ja) * 2001-03-22 2002-12-20 Sony Computer Entertainment Inc コンピュータ・プロセッサ及び処理装置
JP2003223590A (ja) * 2001-11-21 2003-08-08 Matsushita Electric Ind Co Ltd 属性情報利用システムと装置
JP2003316994A (ja) * 2002-04-25 2003-11-07 Alphameric:Kk 販売促進方法および販売促進支援システム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011082610A (ja) * 2009-10-02 2011-04-21 Toshiba Corp 複数のプロセサを利用する映像装置および画像処理方法
JP2015521778A (ja) * 2012-06-29 2015-07-30 インテル・コーポレーション アクション候補の予測のためにアプリケーションにより提供されるコンテキスト
JP2016035649A (ja) * 2014-08-01 2016-03-17 京セラドキュメントソリューションズ株式会社 情報処理システム及び情報処理プログラム

Also Published As

Publication number Publication date
US8380817B2 (en) 2013-02-19
US20060015585A1 (en) 2006-01-19
CN100424681C (zh) 2008-10-08
JP4599923B2 (ja) 2010-12-15
CN1741005A (zh) 2006-03-01

Similar Documents

Publication Publication Date Title
JP4599923B2 (ja) 情報処理システム及び情報処理方法、並びにコンピュータプログラム
KR101089965B1 (ko) 네트워크 시스템, 분산 처리 방법, 및 정보 처리 장치
US8103771B2 (en) Distributing processing apparatus, method, and system
JP2005242598A (ja) 情報処理システム及び情報処理方法、並びにコンピュータ・プログラム
TWI261464B (en) Information processing system, information processing method, and computer program
KR101119870B1 (ko) 정보 처리 시스템 및 정보 처리 방법
KR20060042399A (ko) 콘텐츠 처리 시스템 및 콘텐츠 처리 방법과, 컴퓨터 프로그램
KR20060053894A (ko) 정보 처리 시스템, 정보 처리 방법, 및 그와 함께 사용되는컴퓨터 프로그램
TWI276969B (en) Information processing apparatus, method, system and information processing program of accessible media
JP2005339174A (ja) 情報処理システム及び情報処理方法、並びにコンピュータプログラム
JP4649850B2 (ja) コンテンツ再生装置、コンテンツ記録装置、ネットワークシステム、およびコンテンツ記録・再生方法
JP2005252402A (ja) コンテンツ記録システム及びコンテンツ記録方法、並びにコンピュータ・プログラム
JP2005267150A (ja) 情報処理システム及び情報処理方法、並びにコンピュータ・プログラム
JP2005311479A (ja) ネットワークシステム、番組録画予約方法および情報処理装置
JP2005244577A (ja) 情報処理システム及び情報処理方法、並びにコンピュータ・プログラム
JP2005235246A (ja) サーバ装置
JP2005251163A (ja) 情報処理装置、情報処理方法、情報処理システムおよび情報処理用プログラム
JP2005301678A (ja) ネットワークシステム、代理表示方法、情報処理装置
JP2005293418A (ja) 情報処理装置、ネットワークシステム、処理能力呈示方法および処理能力呈示用プログラム
JP2007004241A (ja) 分散処理システム、計算機資源管理サーバ、ユーザ端末、分散処理方法、及びそれらのプログラム
KR20060071069A (ko) 정보 처리 장치, 정보 처리 방법, 정보 처리 시스템 및정보 처리용 컴퓨터 프로그램

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070712

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100629

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100813

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100831

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100913

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131008

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131008

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees