(57)【要約】システムに新しいシステムコンポーネントがロードされると、システムはシステムコンポーネント及びシステムのコンフィギュレーションについての情報を遠隔受入サーバへ送信する。受入サーバは、例えば重要なシステムデータを損傷する不法な命令又はコンフィギュレーションで利用可能でない関数を含むか否かを調べることにより、システムコンポーネントを含みコンフィギュレーションについての情報に従って設定されたシステムが相互運用性の規準を満たすか否かを確認する。サーバはシステムへ受入信号を送信する。受入信号は、コンピュータプログラムによって処理される多数のイベントのうちのどれが受入可能に処理されるかについて述べる。システムは、例えば新しいシステムコンポーネントの動作又は受入信号に従って受入可能に処理されないイベントを無効とすることにより、受入信号に依存してシステムコンポーネントの動作を認定する。
2004537083.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを有するシステムに新しいシステムコンポーネントをロードする段階と、
前記ロード段階に応じて、前記システムコンポーネント及びを有するシステムのコンフィギュレーションについての情報を遠隔通信ネットワークを介して受入サーバへ送る段階と、
前記受入サーバにより、システムコンポーネントを含みコンフィギュレーションについての情報によって設定されたシステムが相互運用性の規準を満たすかどうかを確認する段階と、
遠隔通信ネットワークを介して、受入サーバからの受入信号をコンピュータを有するシステムへ送る段階と、
システムコンポーネントを含むコンピュータを有するシステムの動作を受入信号に従って認定する段階とを含む、
コンピュータシステムの完全性を保護する方法。
【請求項２】
制御可能な装置がローカル通信ネットワークを介してコンピュータを有するシステムに結合されているとき、制御可能な装置を制御するコンピュータプログラムを決定する情報を制御可能な装置からコンピュータを有するシステムへ送信する段階と、
前記システムコンポーネントはコンピュータプログラムであり、受入サーバはコンピュータプログラムが相互運用性の規準に従ったコンフィギュレーションで実行されるかどうかを確認させられる段階と、
コンピュータプログラムが受入信号によって認定されているときコンピュータを有するシステムによって制御可能な装置の動作を制御する段階とを含む、請求項１記載の方法。
【請求項３】
システムに新しいシステムコンポーネントを導入する手段と、
受入サーバと、
遠隔通信ネットワークと、
遠隔通信ネットワークを介して受入サーバに結合され、前記ロードに応じて、前記システムコンポーネント及びコンピュータを有するシステムのコンフィギュレーションについての情報を遠隔通信ネットワークを介して受入サーバへ送るよう配置される装置とを含む、コンピュータを有するシステムであって、
前記受入サーバは、システムコンポーネント及びコンフィギュレーションについての情報に従って設定されたコンピュータを有するシステムが相互運用性の規準を満たすかを確認し、遠隔通信ネットワークを介してコンピュータを有するシステムへ受入信号を送るよう配置され、
装置は、受入信号に従ってシステムコンポーネントを含むコンピュータを有するシステムの動作を認定するよう配置される、コンピュータを有するシステム。
【請求項４】
コンピュータと、
コンピュータによる実行のためにコンピュータプログラムを受信する入力と、
遠隔受入サーバへの通信のための通信インタフェースとを含む、
コンピュータを有するシステムにおいて使用される装置であって、
装置は、コンピュータプログラム及び装置のコンフィギュレーションについての情報を受入サーバへ送信し、前記情報と引き替えに受入サーバを受け取るよう配置され、装置は、受入信号に従ってコンピュータによるコンピュータプログラムの実行を認定するよう配置される、装置。
【請求項５】
制御可能な装置への接続用の接続を含み、接続は、コンピュータプログラムを受信する前記入力を含み、コンピュータプログラムは制御可能な装置を接続を介して制御するプログラムであり、装置は受入信号に従って制御可能な装置の制御を認定する、請求項４記載の装置。
【請求項６】
コンフィギュレーションについての情報は装置の種類を識別し、前記規準はコンフィギュレーションについての情報によって識別されるような装置の互換性及びコンピュータプログラムについての副規準を含む、請求項４記載の装置。
【請求項７】
コンピュータプログラムは、複数の機能のうちの選択可能な機能を実行するよう配置され、受入信号は機能のうちの夫々の受入可能性の識別情報を含み、前記認定段階は夫々の機能に対して選択的である、請求項４記載の装置。
【請求項８】
前記認定段階は、受入信号によって受入可能でないと識別されるかぎりは、コンピュータプログラムの一部又は全体の実行を無効とする、請求項４記載の装置。
【請求項９】
前記認定段階は、ユーザがコンピュータプログラム又はその部分の動作を生じさせようとしたときにコンピュータプログラム又はその部分についてユーザに対する警告信号を発すること、及び／又は、受入信号の受信の後の任意の最初のユーザアクションがあったときに警告信号を発することを含む、請求項４記載の装置。
【請求項１０】
装置は、受入サーバから受信される受入信号を受信するまで、コンピュータプログラムの少なくとも一部の認定されていない実行を有効とすることを実行するよう配置される、請求項４記載の装置。
【請求項１１】
通信ネットワークに結合される受入サーバを設ける段階と、
サーバによって、通信ネットワークを介してコンピュータを有するシステムのコンフィギュレーション及びそのシステムの新しいシステムコンポーネントについての情報を受信する段階と、
サーバによって、システムコンポーネント及びコンフィギュレーションについての情報によって設定された、が相互運用性の規準を満たすかを調べる段階と、
前記相互運用性の規準を満たすかを示す受入信号をサーバから前記情報の源へ戻るよう送信する段階とを含む、
コンピュータを有するシステムをサポートする方法。
【請求項１２】
サーバはネットワークアドレスを用いて通信ネットワークを通じて選択的に到達可能であり、ネットワークアドレスは所定の装置の型、又は装置の型のファミリに特定的であり、規準は前記ファミリに対して専門化される、請求項１１記載の方法。
【請求項１３】
新しいコンポーネントはコンピュータプログラムであり、情報は前記プログラムのコードの少なくとも一部を含み、方法は、コンピュータを有するシステムによって実行されたときにその効果が規準をみたすかどうかを決定するためにサーバにより実行可能なコードを解析することを含む、請求項１１記載の方法。
【請求項１４】
コンピュータプログラムは一組のイベントのうちの選択可能なイベントを取り扱うよう配置され、サーバはどのイベントを取り扱うことが規準を満たすかを決定し、受入信号はどのイベントが受入可能であるかを特殊化する、請求項１３記載の方法。
【発明の詳細な説明】
【０００１】
本発明は、コンピュータを含むシステム、このシステムのコンポーネント、及びシステムとそのコンポーネントを動作させる方法に関連する。本発明は、特に、コンポーネント、特にプログラムがシステムの一部として安全に動作されうるか否かを確認することに関する。
【０００２】
２０００年７月に「コンピュータ（Ｃｏｍｐｕｔｅｒ）」第３３巻、第７号、第１０８−１１０頁に発表されたジョン・アール・ミッチェナー（Ｊｏｈｎ．  Ｒ．  Ｍｉｃｈｅｎｅｒ）及びトルガ・エイカー（Ｔｏｌｇａ  Ａｃａｒ）による「システム及びアクティブコンテンツの完全性の管理（Ｍａｎａｇｉｎｇ  Ｓｙｓｔｅｍ  ａｎｄ  Ａｃｔｉｖｅ  Ｃｏｎｔｅｎｔ  Ｉｎｔｅｇｒｉｔｙ）」と題された文献は、システム完全性（インテグリティ）の問題について、即ち、うまく機能しないソフトウエアコンポーネントをシステムに組み込むことによる誤用又はシステム損傷からコンピュータシステムを保護することについて記載している。この文献は、信頼のある出所のプログラム（文献中の用語ではモジュール）のみがコンピュータシステム上で実行されることが許されることを確実とすることにより、コンピュータシステムの完全性について扱う。信頼性のある出所は、このようなプログラムが意図的にはシステムリソースを誤用又は更には損傷させようとしないことが保証されたものであると考えられる。また、より新しいバージョンでは修正されている既知のバグを防止するため、全ての出所の古いバージョンのプログラムの実行は回避されるべきである。
【０００３】
ミッチェナー外による文献は、強いローダー及びインテグリティサーバを使用することについて記載している。強いローダーは、プログラムが実行されうる前にそれらをシステムにロードするために必要である。ロードの前に、強いローダーはインテグリティサーバからコンフィギュレーション管理ファイルを取得する。コンフィギュレーション管理ファイルは、ロード可能なプログラムのリストを含む。これは、これらのプログラムの受入可能なバージョンの番号とプログラムが改竄されていないかどうかを調べることを可能とする情報を指定する。強いローダーは、コンフィギュレーション管理ファイル中で指定される情報にプログラムが対応する場合にのみ、そのプログラムをロードする。
【０００４】
ミッチェナー外によって示された技術は、比較的閉じたシステムを想定しており、即ち、インテグリティサーバは全ての受入可能なプログラムをそれらがコンピュータシステムにロードされうる前に知らねばならない。未知のプログラムは受け入れられず、プログラムの最新のバージョン、又はある範囲の最新のバージョン、のみが受入される。プログラムは、インテグリティサーバからコンフィギュレーション管理ファイルが受信されてからのみ実行されうる。
【０００５】
これは、一般的には熟練していない消費者が様々な製造メーカー製の装置及びソフトウエア（これは一般的にはシステムのコンポーネントと称される）を統合することが可能でなくてはならずコンポーネント及び製造メーカーがいずれも先験的に未知であるホームネットワークといった非常にオープンなシステムでは不利である。
【０００６】
例えばＨＡＶｉシステムといったホームネットワークシステムでは、システムは一般的には、ゲーム等のソフトウエアと、通信網によって接続されたセットトップボックス、テレビジョン、ビデオレコーダ等の装置とを含む。第１の装置を操作することにより第２の装置上のプログラムが実行されることがありえ、例えば、第１の装置におけるコンピュータ又はユーザインタフェース装置の費用を回避するために第２の装置から第１の装置の動作が制御される。
【０００７】
一般的には、このようなシステムは、種々の製造メーカー製のより古いコンポーネントと、より新しいコンポーネントが混ざったものとなる。異なる消費者は、例えばセットトップボックスといった全体的に同じ機能を有するコンポーネントが、コンポーネントの製造メーカー及びバージョンによってシステム毎に異なる機能を有する異なるコンフィギュレーションを有することとなる。
【０００８】
かかるシステムの完全性は、新しいコンポーネントが追加されるたびに単一の製造メーカー製の自分のシステム全体を更新することを消費者に要求することなく、出来る限り保護されることが望ましい。これは潜在的な誤動作について消費者に警告するために及び／又は潜在的な誤動作から消費者を保護するため、消費者にとって有益なサービスであり、また、製品は、単に何らかの不特定の原因によって壊れて消費者から悪意のない製造メーカーに対する不満を起こさせるのではなく、潜在的な誤動作について明らかな警告を与えるため、製造メーカーにとっても有益である。
【０００９】
しかしながら、ミッチェナー外による文献に記載された完全性保護は、かかるオープンな消費者システムにはあまりよく適していない。第一には、この完全性保護は、システムへロードされうる一組のプログラムを単純に識別することによってシステムの完全性が保証されうると想定している。これは、例えばコンピュータプログラムの製造メーカー製の装置を用いた場合はプログラムがシステムの１つのコンフィギュレーションでは完全に機能的であり得るのに対して同じプログラムが他のコンフィギュレーションでは機能的ではない非常にオープンなシステムにおける状況を反映していない。消費者は、全てのコンポーネントの最新のバージョンを常に有していると想定することはできない。
【００１０】
第二に、ミッチェナーの完全性保護は、消費者が完全性の問題を見つけ解決するのに役立たない。実際、既存の装置で新しいコンピュータプログラムが実行されることを必要とする新しいコンポーネントを追加した後は、消費者にとっては既存の装置が誤動作するように見えるが問題であるのは新しいコンポーネントによって導入された新しいコンピュータプログラムのうちの１つである場合がある。これは、明らかに、現在存在している状況の製造メーカーにとっては自己には非がないのに消費者の信用を失うため、望ましくない状況である。
【００１１】
第三に、ミッチェナーの完全性保護は、新しい製造メーカーが信頼のある出所として認定されない場合は、完全に機能的であり得る新しい製造メーカー製のソフトウエアを排除させる。これは、消費者の選択の範囲を不必要に制限する。
【００１２】
第四に、ミッチェナー外の完全性保護は、強いローダーを必要とし、これは消費者に対して目に見える機能性を追加することなくシステムの費用を増加しうる。
【００１３】
本発明は、コンピュータを有するシステムにおける実行のためにコンピュータプログラムの受入可能性のより柔軟な検査を提供することを目的とする。
【００１４】
本発明は、
コンピュータを有するシステムに新しいシステムコンポーネントをロードする段階と、
ロード段階に応じて、システムコンポーネント及びを有するシステムのコンフィギュレーションについての情報を遠隔通信ネットワークを介して受入サーバへ送る段階と、
受入サーバにより、システムコンポーネントを含みコンフィギュレーションについての情報によって設定されたシステムが相互運用性の規準を満たすかどうかを確認する段階と、
遠隔通信ネットワークを介して、受入サーバからの受入信号をコンピュータを有するシステムへ送る段階と、
システムコンポーネントを含むコンピュータを有するシステムの動作を受入信号に従って認定する段階とを含む、
コンピュータシステムの完全性を保護する方法を提供する。
【００１５】
本発明によれば、システムは遠隔受入サーバを使用する。システムに新しいコンポーネントが導入されると、システムは受入サーバにメッセージを送信し、受入サーバはコンポーネントがシステムに組み込まれたときに問題が発生することが予想されるかどうかを知らせる受入信号によって応答する。
【００１６】
メッセージは、新しいコンポーネント及びシステムのコンフィギュレーションについて、例えば新しいコンピュータプログラムが実行されねばならない装置の型及び／又は製造メーカーについて、受入サーバに通知する。受入サーバは、新しいコンポーネントが識別されたコンフィギュレーションで受入可能に動作するか否か、即ち、もしあるのであれば新しいコンポーネントの最新のバージョンがロードされているかだけを調べるのではない。例えば、受入サーバは、指定された製造メーカーの指定された装置が新しいコンピュータプログラムを実行することが可能であるか、また、コンピュータプログラムによって壊されないかについて調べうる。このチェックの結果は、他の製造メーカー製の略同様であるが同一ではない装置についての対応する結果とは異なるものでありうる。実際は、コンピュータプログラムの古いバージョンがシステム上で完璧に実行されること、又はコンピュータプログラムの最新のバージョンが、例えば他のシステムコンポーネントが最新のバージョンに適応されていないために受入可能に実行されないことがある。
【００１７】
次に、システムは受入サーバから受信した受入信号に従ってその動作を認定する。第１の実施例では、認定は、新しいコンポーネントについて受入可能でないと信号が発せられた場合にはこの新しいコンポーネントを無効とすることを含む。他の実施例では、システムは、コンポーネントが相互運用性を有さない危険性を伴うことを単にユーザに知らせる。他の実施例では、受入信号は、新しいコンポーネントによって実行される複数の機能のうちのどれに相互運用性がないかを識別し、これらの識別された機能のみを無効にするかそれについて警告を行う。認定は即時である必要はなく、即ち、一実施例では、システムは、その動作を受入信号の受信の後に認定するためだけに受入信号が受信される前に新しいコンポーネントを組み込み、実行し始めることができる。これは、特に、新しいコンポーネントのうちの幾つかに相互運用性がないことのみが脅かされ実際の損傷がない場合に当てはまる。一般的には、新しいコンポーネントの主な機能は正しく動作し、あまり頻繁に実行されない（従ってあまり完全にはテストされない）機能についてのみ非相互運用性が生ずることが予想されるべきである。ユーザが相互運用性のない機能を、後にのみ、おそらくは受入信号が受信された後にのみ作動させるという予想のもと、受入信号の受信の前に動作が開始されうる（これはシステムのセキュリティではなくシステムの誤動作の数の減少が問題となるときは克服できない問題ではない）。
【００１８】
本発明は、特に、ＨＡＶｉシステムのようなネットワークシステムに新しい装置が追加され、新しい装置の制御のためにシステム中の既存の装置に制御プログラムをアップロードする場合に適用されうる。通常は、この制御プログラムは、新しい装置自体の制御のためにアップロードさせられるため、新しい装置に適したものであると予想される。しかしながら、制御プログラムは、例えば既存の装置が古い型であるか予想されない製造メーカー製のものであるために既存の装置上で動作可能でないか部分的に動作可能でない場合がありうる。この場合、本発明は、システムがクラッシュすることなく新しい装置、又はその相互運用性のない機能を無効とすることを可能とする。
【００１９】
受入信号は、コンフィギュレーションと新しいコンポーネントの組合せのリストによって形成されうるが、不明な組合せの場合、受入サーバは、非相互運用性の問題を識別するために指定されたコンフィギュレーションにおけるコンポーネントの動作を実際にシミュレートしてもよい。このようなシミュレーションは、あまり頻繁でないよう実行されねばならないため、多くの消費者システムに利用可能なサーバによって行われることが望ましい。このようなサーバは、サーバが１つの製造メーカー製の装置に対して利用可能とされ、その製造メーカー製の装置が装置によって実行されねばならない新しいコンピュータプログラムに遭遇するたびにその装置により（例えばインターネットを通じて）コンタクトされれば、有益な消費者サポート機能が加えられうる。或いは、かかるサーバは、例えば様々な製造メーカー製の装置と共に加入者に利用可能な独立したサービスとして実行されうる。
【００２０】
以下、添付の図面を参照して、本発明によるシステム、方法、及び装置の上述及び他の有利な面について詳述する。
【００２１】
図１は、コンピュータ１１を含む第１の装置１０、第２の装置１２、ローカル通信バス１４、遠隔通信ネットワーク１６（望ましくはインターネット）及びサーバ１８を有するシステムを示す。第１の装置１０及び第２の装置１２は、バス１４を介して互いに接続される。第１の装置は、遠隔通信ネットワーク１６を介してサーバ１８に接続される。単一のバス１４を有するシステムが例として図示されているが、本発明は一般的な通信網構造に適用されることが理解されよう。
【００２２】
動作上、第１の装置１０は例えばＪａｖａ（登録商標）Ｂｙｔｅコードといったコンピュータプログラムを実行するためにコンピュータ１１を使用する。プログラムのうちの１つ又はそれ以上は、通信バス１４を介して第２の装置１２を制御する制御プログラムでありうる。このようなプログラムの実行は、例えば、第１の装置１０にユーザインタフェースを発生し示すこと、第１の装置１０でユーザコマンドを受信すること、コマンドを制御メッセージへ翻訳すること、及び制御メッセージを第２の装置１２へ送ることを含む。このプログラムの実行はまた、第２の装置１２からメッセージを受信すること、これらのメッセージを処理しそれに応じてユーザに対して情報を表示すること、通信バス１４上の他の装置（図示せず）を制御すること、及び／又は、制御メッセージを第２の装置１２へ戻すことを含みうる。
【００２３】
第１の装置１０は、例えば、大きい動作メモリを有するＭＩＰＳプロセッサといったパワフルなコンピュータ１１を有するセットトップボックスである。第２の装置１２は、例えば、かかるパワフルなプロセッサ又はかかる大きなメモリ又はユーザインタフェース機能を含まない、ビデオレコーダ又はコーヒーマシン等の単純な家庭用電化製品である。第３の装置（図示せず）は、セットトップボックスによって制御されユーザに対してユーザインタフェースを表示するために使用される通信バス１４に接続されたディスプレイ画面でありうる。第４の装置（図示せず）は第１の装置１０へユーザコマンドを送信するために使用される遠隔制御ユニットでありうる。
【００２４】
第２の装置１２を制御するための制御プログラムは、第２の装置１２から第１の装置１０へアップロードされうる。このようにして、パワフルなコンピュータ又はユーザインタフェースハードウエアは必要でないため、第２の装置１２の費用は低く保たれうる。制御プログラムは、例えばＪａｖａ（登録商標）Ｂｙｔｅコードプログラムである。第１の装置１０は第２の装置１２については知識なしに設計され、製造され、販売されるが、第１の装置１０は第２の装置を制御するために使用されうる。これにより、第１の装置１０の一般費用は節約され、制御される第２の装置１０が設計又は製造される前に第１の装置１０が製造されることが可能となる。
【００２５】
制御プログラムは、例えば、装置の（人間である）ユーザから受信される異なるコマンドを取り扱うために異なるイベントハンドラへ分割されうる。例えば、制御プログラムは、「記録開始」コマンド用のイベントハンドラ、「再生」コマンド用のイベントハンドラ等を有しうる。
【００２６】
図２は、アップロードの場合のシステムの動作のフローチャートを示す図である。フローチャートは、制御フローの４つの流れ、即ち、第２の装置１２における第１の制御の流れ２０、第１の装置１０における第２及び第３の制御の流れ２１、２２、並びに、サーバ１８における第４の制御の流れ２４を示す。
【００２７】
第２の装置１２が（例えばバス１４への物理的な接続又は電源投入により）システムに接続されると、第１の流れ２０が始動される。第１の流れ２０では、第２の装置１２は、第２の装置１２から第１の装置１０へ制御プログラムをアップロードするために第１のステップ２０１を実行する。（或いは、第２の装置１２は、第１の装置が制御プログラムをもってくることができる場所を示す参照情報、例えば制御プログラムを含むファイルのインターネットｆｔｐアドレス、を第１の装置１０へ送信してもよい）。続いて、第２の装置１２は、バス１４を介して受信される制御メッセージを待つ第２のステップ２０２を開始する。このようなメッセージが受信されると、第２の装置１２は第３のステップ２０３を実行し、第２のステップ２０２から繰り返すことによって次のコマンドを待つ。
【００２８】
第１のステップ２０１によって開始されたアップロードは、第１の装置１０における第２の流れ２１の実行をトリガする。第１の装置１０は、遠隔通信ネットワーク１６（例えばインターネット）への接続を開き、それ自身について及びアップロードされた制御プログラムについての情報をサーバ１８に送信する第４のステップ２１１を実行する。続いて、図２に示す実施例では、第１の装置１０は、アップロードされたプログラムへ制御を移す第５のステップ２１２を実行する。第１の装置１０がこれを送る宛先のアドレスは第１の装置に予めプログラムされており、例えば第１の装置１０の製造メーカーによって与えられるインターネットアドレスとされる。或いは、アップロードされたプログラムを用いて第２の装置１２によってサイトが指定されてもよいが、この場合は第１の装置は正しく動作することについての保証に対する制御を失うという不利点がある。
【００２９】
第１の装置１０によってサーバ１８へ送信される情報は、サーバ１８に第４の流れ２４を実行させることをトリガする。第４の流れ２４は、サーバ１８が第１の装置１０及びアップロードされたプログラムについての情報を受信する第７のステップ２４１から開始する。第８のステップ２４２において、サーバ１８は、アップロードされたプログラムと装置の組合せのエントリを含むリストを調べ、各エントリは、望ましくはプログラム中で利用可能な機能の数について特殊化された組合せの受入可能性についての情報を含む。このリストは、サーバ１８中にコンピュータ読み取り可能な媒体（図示せず）上に格納される。第１の装置１０からの情報の中で識別される組合せが格納されたリストである場合、第１の装置１０へ受入信号が送られる。受入信号は、第１の装置及びアップロードされたプログラムの組合せの受入可能性についての情報を含む。任意に、この情報は明確なユーザコマンドの実行を行うアップロードされたプログラムの様々な部分について特殊化される。望ましくは、受入信号は少なくとも受入可能でない部分の実行の開始点を示す。リストは、アップロード可能なソフトウエア（のバージョン）と装置（のバージョン）の種々の組合せと、それらのコンフィギュレーションの確認によって、自動的に発生されうる。しかし、かかるリストは予めコンパイルされ人間が介在することによって格納されてもよい。
【００３０】
格納されたリストの中に組合せがない場合、サーバは、第１の装置１０から受信された情報に従ってそのコンフィギュレーションで、アップロードされたプログラムが第１の装置１０について確認される第１０のステップ２４４を実行することが望ましい。確認は、アップロードされたプログラムの全ての可能な実行分岐の実行又はアップロードされたプログラムの部分の実行をトリガするユーザコマンドといった全ての可能なイベントの応答をシミュレートし、これらの分岐又はイベントが不法な動作を生じさせるか又はシステムをハングアップ又はクラッシュさせるかどうかを検出することを含みうる。不法な動作に対する命令は、例えば、重要なシステムデータを上書きする命令、第２の装置１２とは関係のないファイルを消去する命令、第１の装置１０の利用可能でない機能を呼び出す命令、ハードウエアに損傷を生じさせうる一連の命令を含む。コンピュータプログラムの受入可能性についての規準は、コンピュータプログラムがこのような命令を含まないということである。
【００３１】
このために、第１の装置１０は、アップロードされたプログラムの命令をサーバ１８に通信するか、少なくともサーバがこのプログラムをどこから持ってくることができるかに関する参照情報を与えることが必要である。
【００３２】
アップロードされたプログラムが、異なるユーザコマンドといった異なるイベントに応答するよう配置されているとき、どのイベントが受入可能に取り扱われうるか、どのイベントがそうでないかを決定するために、各イベントに対して別々にシミュレーションが行われうる。
【００３３】
プログラムをシミュレートする代わりに、サーバ１８は不法な又は相互運用可能でない動作を命令しうる命令についてアップロードされたプログラムをスキャンし、命令が実行されてはならない状況でこれらの命令が達成可能であるかどうか（例えば、アップロードされたプログラムが関数呼び出し命令を含む場合、関数が第１の装置１０中で利用可能であるか、またこの関数呼び出しの引数が当該装置についての受入可能な範囲にあるか、アップロードされたプログラムがバスに接続された他の装置のアドレスといった本質的なシステムデータを変更する命令を含む場合は、かかる変更がアップロードしている装置が有効とされる変更に限られているかどうか）を決定する。サーバ１８は、スキャン又はシミュレーションの結果をリストに入力し、第９のステップ２４３を行う。
【００３４】
サーバ１８から第１の装置１０への受入信号の送信は、第３の流れ２２の実行をトリガする。第３の流れ２２を実行すると、第１の装置１０は第１１のステップ２２１において受入信号を受信する。続いて、第１２のステップ２２２において、アップロードされたプログラムが第１の装置１０において受入可能に実行されないことを受入信号が示す場合は、第１の装置１０はアップロードされたプログラム、又は受入信号中で受入可能でないと識別されたその関数又はイベントハンドラを無効（disable）とする。無効とすることは、例えば、アップロードされたプログラムのうち受入信号中で受入可能でないと識別されたアップロードされたプログラムのうちの一部の実行を開始する点に例外を与える命令を挿入することによって行われる。
【００３５】
受入信号を処理した後、第３の流れ２１は、第６のステップ２１２へ続く。第６のステップ２１２において、アップロードされたプログラムが完全に受入可能でないと受入信号が示していないかぎり、アップロードされたプログラムへ制御が与えられる。アップロードされたプログラムがユーザコマンドに応じて作動されるべきであるとき、第１の装置１０は受入信号の中でユーザコマンドの実行が受入可能でないと示されているかどうかを調べる。受入可能でない場合は、第１の装置１０はユーザコマンドを実行しない。望ましくは、第１の装置は、アップロードされたソフトウエアが受入可能でないとして無効とされていることをユーザに知らせる代わりに、警告を発行する。
【００３６】
図示の実施例では、アップロードされたプログラム全体は、第１の装置１０が第２の流れ２１においてアップロードされたプログラムを実行する場合は認定なしに、即ち第１の装置１０が受入信号をサーバ１８から受け取る前に実行される。これは、受入可能でないことがユーザにとっての不便さ、例えば応答がないこと、の問題であり、ハングアップしているシステム又はシステムのクラッシュは更なるユーザアクションを負担すれば克服することができ、重大利益を危険にさらすような問題ではない状況を意図している。従って、受入信号が一旦サーバ１８から受信された後は、ユーザは不便さからは保護されるが、その時点まではユーザが受入可能でない機能を作動させたときはいくらかの不便さが生ずる危険性はある。
【００３７】
他の実施例では、第１の装置１０は受入信号を受信するまではアップロードされたソフトウエアを無効とする。従って、ユーザは受入可能でない機能に対してはより完全に保護されるが、アップロードされたプログラムが利用可能でない期間を犠牲にする。
【００３８】
受入可能でないアップロードされたプログラム又はかかるプログラム中の実行の流れのために様々な他の実施例がある。即ち、
・アップロードされたプログラムの受入可能でない部分を（上述のように）無効とする。
・受入可能でない部分の実行の前に警告を発する。
・重大な影響がある受入可能でない部分を無効とし、あまり重大でない影響がある受入可能でない部分について警告を発する。
・受入可能でない部分の実行を、第１の装置１０又はサーバ１８によって与えられる他の命令の実行によって置き換える。
【００３９】
他の実施例では、受入可能でない機能は、受入信号の受信によっては無効とされないが、受入可能でない命令の実行を含むという警告を受信したときにユーザがコマンドの実行を中止することを可能とする警告信号が加えられる。更なる実施例では、警告信号と無効とすることが組み合わされる。この実施例では、サーバは、アップロードされたプログラムの無効とされるべき部分と警告されるべき部分（例えば回復できない損傷を生じさせる部分と単に不便さを生じさせる部分）を区別する。
【００４０】
アップロードされたプログラムの部分は、代替となるものがある機能を実行する場合が多い（例えば情報を出力するためにプリンタの代わりにディスプレイを使用すること）。この場合、アップロードされたプログラム中のこのような機能が受入信号中で受入可能であるとして示されている場合、受入信号は受入可能な代替となるものを示すことが望ましい。その場合、第１の装置１０は、受入可能でない機能を受入可能な代替となるものによって置き換える。
【００４１】
本発明は、特定の実施例について上述したが、本発明はこの実施例に限られるものではないことが明らかとなろう。例えば、第１の装置１０とサーバ１８の間の通信は、遠隔通信ネットワーク１６に接続された更なる装置（図示せず）を介しても行われうる。バスシステムと、第２の装置がバスシステムに接続されたときにアップロードされるコンピュータプログラムとについて、システムを説明したが、受入サーバの原理は、他の状況においても、例えば第２の装置１２が取り付けられることなく例えばＣＤ−ＲＯＭといった何らかのコンピュータ読み取り可能な媒体から又はインターネットを介して新しいプログラム（又はこのようなプログラムの新しいバージョン）が第１の装置へロードされる場合にも使用されうる。しかしながら、本発明は、様々な装置を用いた消費者バスシステムにおいて、それらの接続が他の装置への１つ又は複数のプログラムのロードを生じさせる場合に、特に有利であることが認められるであろう。これは、かかるシステムが、一般的には、かかる接続がプログラムのアップロードを含むことを消費者に対してマスクするよう配置され、言うまでもなくアップロードされたプログラムがかならずしも受入可能でないことが消費者にとって明らかとされるためである。（マスク動作は、物理的接続であれ電源投入であれ装置１２の接続によって装置１２がアップロードをトリガするようアップロードを自動化し、ユーザからの命令なしにアップロードを実行することによって行われる）。
【００４２】
更に、テレビ受像機、ビデオレコーダ、家庭電化製品といった種々の消費者装置に接続する家庭バスシステムといった消費者ネットワークシステムは、様々な製造メーカー製の標準化されていないプログラムによって実行される標準化されていない機能を有する装置を含む傾向がある。結果として、かかるプログラムの相互運用性は、一般的には、一番最近のバージョン番号について調べるよりもこれらのプログラムが実行されるコンフィギュレーション（利用可能な装置の性質、ソフトウエアのバージョン）について評価される必要がある。
【００４３】
実施例に示すように、第１の装置１０は、そのコンフィギュレーションをサーバ１８に報告する。サーバ１８が第１の装置１０の製造メーカー（又は販売者）によって提供される場合、サーバ１８は特定の製造メーカーの第１の装置についての情報のみを与えるため、第１の装置１０の種類についての情報はサーバ１８に到達するために第１の装置１０によって使用されるアドレスの中に暗黙的に入っている。
【００４４】
このような装置の製造メーカー又は販売者によって提供されるサーバ１８は、消費者にとっての第１の装置１０の価値をかなり高める販売後のカスタマーサービスを与える。或いは、サーバは、異なる製造メーカー製の装置のための（加入料又は一件ごとの料金のための）一般的なサービスとして提供されうる。
【図面の簡単な説明】
【００４５】
【図１】コンピュータを有するシステムを示す図である。
【図２】システムの動作を示すフローチャートである。
【国際公開パンフレット】
2004537083.tif 000003
2004537083.tif 000004
2004537083.tif 000005
2004537083.tif 000006
2004537083.tif 000007
2004537083.tif 000008
2004537083.tif 000009
2004537083.tif 000010
2004537083.tif 000011
2004537083.tif 000012
2004537083.tif 000013
2004537083.tif 000014
2004537083.tif 000015
2004537083.tif 000016
2004537083.tif 000017
2004537083.tif 000018
2004537083.tif 000019
2004537083.tif 000020
【国際公開パンフレット（コレクトバージョン）】
2004537083.tif 000021
2004537083.tif 000022
【国際調査報告】
2004537083.tif 000023
2004537083.tif 000024
2004537083.tif 000025