(57)【特許請求の範囲】
【請求項１】
ホスト機器と外部機器が接続されたシステムにおけるプログラム更新方法において、前記外部機器に付属機器が接続された時に前記外部機器は前記ホスト機器に対して付属機器が増設されたことを通知し、通知を受けた前記ホスト機器は前記付属機器を動作させるために必要なプログラムを前記外部機器に対して送り、前記外部機器は前記ホスト機器から送られてきたプログラムをメモリに格納し、前記外部機器は、同じ種類の付属機器がすでに装着されており、装着されている付属機器と共存できる場合には、前記ホスト機器へ前記付属機器が追加されたことを通知せずに既存のプログラムを用いることを特徴とするプログラム更新方法。
【請求項２】
前記外部機器は、接続された付属機器がすでに装着されている同じ種類の付属機器と共存できない場合は、前記ホスト機器へ前記付属機器が追加されたことを通知せずに前記付属機器を無効とすることを特徴とすることを特徴とする請求項１に記載のプログラム更新方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、パーソナルコンピュータやワークステーションなどに代表されるホスト機器と、プリンタやスキャナなどに代表される外部機器がＩＥＥＥ１２８４やＵＳＢなどの所定の方法で接続されたシステムにおいて、その外部機器にＦＡＸモデムやＢｌｕｅｔｏｏｔｈなどに代表される各種の方法によって付属機器が着脱されるシステムに関するものである。特に、外部機器に対して付属機器が着脱された際に、当該付属機器を動作させるために必要なアプリケーションソフトウェアやデバイスドライバなどのプログラムを外部機器にインストールし、あるいは不要となったプログラムを削除するプログラム更新方法と、そのようなプログラム更新方法の機能を搭載したホスト装置及び外部機器に関するものである。
【０００２】
【従来の技術】
プリンタやスキャナなどに代表される外部機器を使用する場合には、パーソナルコンピュータやワークステーションなどに代表されるホスト機器とＩＥＥＥ１２８４ケーブルやＵＳＢケーブルなどを用いてローカル接続することによって使用される場合が一般的である。また、ホスト機器と外部機器の両機器にＥｔｈｅｒｎｅｔ（登録商標）インタフェースを実装することによりＥｔｈｅｒｎｅｔ（登録商標）によるネットワーク接続で外部機器を使用することも一般的である。
【０００３】
一方、プリンタやスキャナなどに代表される外部機器は機能が多様化してきており、単機能のプリンタやスキャナだけではなく、プリント機能、スキャン機能、ＦＡＸ機能、Ｅ−Ｍａｉｌ配信機能などの様々な機能が複合化した機器も一般的に利用されている。このような機能の多様化に伴い、外部機器に接続するための付属機器も増えてきており、ユーザの使用環境に応じて必要な付属機器を外部機器に接続し、必要な機能を実現するという使い方が一般的となっている。
【０００４】
しかし、外部機器に付属機器を接続しても、その付属機器を動作させるためのソフトウエアが外部機器上に搭載されていなければ、事実上その付属機器を使用することはできない。そのため、従来は次に示すような手法が取られていた。
【０００５】
図３０は、従来のプログラム更新方法の第１の例の説明図である。図中、１は外部機器、２はホスト機器、３は付属機器である。図３０（Ａ）において、上述のようにホスト機器２と外部機器１は所定の接続方法によって接続されており、外部機器１に対して付属機器３が接続されるものとする。
【０００６】
この例では、図３０（Ｂ）に示すように外部機器１には、接続可能なすべての付属機器に対応したデバイスドライバー・アプリケーションなどのプログラムが最初から内部のＲＯＭ等に書き込まれており、その状態で外部機器１は出荷される。これによって、付属機器３が接続されると、その接続された付属機器３に対応したプログラムが動作し、付属機器３が利用可能となる。
【０００７】
しかしこのような構成では、後から開発された付属機器に対応できないという問題がある。例えば、出荷時には予想されていなかった付属機器が開発された場合、その付属機器が接続されてもプログラムが外部機器１上に存在しないため、その付属機器を動作させることができないという問題がある。また、上述のような構成では、すべての付属機器に対応させるためのプログラムをＲＯＭに搭載するので、ＲＯＭの容量が膨大となり、コストアップとなるという問題もあった。
【０００８】
図３１は、従来のプログラム更新方法の第２の例の説明図である。図中の符号は図３０と同様である。この第２の例では、図３１（Ｂ），（Ｃ）に示すように、外部機器１内のＲＯＭを交換する例を示している。すなわち、図３１（Ｂ）では付属機器３用のプログラムがＲＯＭに搭載されていないので、図３１（Ｃ）に示すように付属機器３用のプログラムが搭載されたＲＯＭに交換するものである。これによって、利用しない付属機器のプログラムまでＲＯＭに書き込んでおく必要はないし、後で開発された付属機器についてもプログラムを提供することができる。
【０００９】
しかし、通常はＲＯＭは基板上に搭載されており、その交換には筐体を取り外すなどして基板を露出させなければならない。また、感電などの危険性も高く、ユーザが容易に交換できない場合も多い。そのため、カスタマーエンジニアが客先に出向いて交換することも行われているが、そのための時間や労力などのコストが高くなるという問題がある。
【００１０】
図３２は、従来のプログラム更新方法の第３の例の説明図である。図中の符号は図３０と同様である。この第３の例では、外部機器１に接続する付属機器３にＣＰＵやＲＯＭ，ＲＡＭを搭載し、インテリジェント型の付属機器３を提供する例を示している。従来よりよく利用されている構成である。このような構成では、上述の各例における問題点を解決できるとともに、外部機器１を安価に構成でき、かつ外部機器１のソフトウェアを変更する必要が無いという利点がある。しかし逆に、付属機器３が高価になるという問題があった。
【００１１】
図３３は、従来のプログラム更新方法の第４の例の説明図である。図中の符号は図３０と同様である。この第４の例は、例えば特開平５−２２４９１２号公報などに記載されている方法であり、付属機器３にＲＯＭを搭載して、付属機器３のＲＯＭから外部機器１のＲＯＭ中のデータを書き換えるものである。外部機器１を安価に構成することができるが、付属機器３にＲＯＭを搭載するなど、付属機器３が高価になるという問題を有している。
【００１２】
図３４は、従来のプログラム更新方法の第５の例の説明図である。図中の符号は図３０と同様である。４は外部記憶装置である。この第５の例では、外部機器１にＦＤドライブなどの外部記憶装置４を接続し、ＦＤ等で供給される接続された付属機器３に対応するプログラムを外部記憶装置４から外部機器１に転送して外部機器１のＲＯＭを書き換えるものである。
【００１３】
このような構成では、外部機器１に接続される外部記憶装置４が必要となってしまうという問題がある。また、ユーザが操作することになるので、例えば付属機器３の接続の度に行うような、頻繁なプログラムの書き換えは煩わしいものとなる。または、１度接続された付属機器３については、取り外された後も対応するプログラムを保存しておく場合もあるが、その場合には外部機器１のＲＯＭとして大容量が必要となるという問題があった。
【００１４】
図３５は、従来のプログラム更新方法の第６の例の説明図である。図中の符号は図３４と同様である。この第６の例では、ホスト機器２に接続されている外部記憶装置４を利用し、ＦＤ等で供給される外部機器１に接続された付属機器３に対応するプログラムをホスト機器２からダウンロードして外部機器１のＲＯＭを書き換えるものである。
【００１５】
通常、ホスト機器２には外部記憶装置４が付属したものも多いため、新たに外部記憶装置４を設ける場合は少ないと考えられる。しかし、第５の例と同様に、外部機器１に接続された付属機器３に対応するプログラムをホスト機器２からダウンロードするための操作はユーザが行うことになる。また、従来は外部機器１への付属機器３の着脱は、外部機器１は知ることができるものの、ホスト機器２には通知されておらず、ユーザがプログラムを外部機器１へ転送する指示をいちいち行わなければならなかった。そのため、例えば付属機器３の接続の度に転送の指示を行うような、頻繁なプログラムの書き換えはユーザにとって煩わしいものとなる。または、１度接続された付属機器３については、その後のプログラム転送を省略するため、取り外された後も対応するプログラムを保存しておく場合もあるが、その場合には外部機器１のＲＯＭとして大容量が必要となるという問題があった。
【００１６】
近年では、ＵＳＢ、ＩＥＥＥ１３９４、ＰＣ−Ｃａｒｄなどの活線挿抜が可能なインタフェースが標準化（規格化）され、外部機器においても付属機器とのインタフェースとして使用するようになってきた。さらにＵＳＢ、ＩＥＥＥ１３９４、ＰＣ−Ｃａｒｄなどの活線挿抜が可能なインタフェースに対応した付属機器も増えてきており、外部機器においても頻繁に付属機器を装着・脱着して利用できる仕組みが必要とされている。
【００１７】
【発明が解決しようとする課題】
本発明は、上述した事情に鑑みてなされたもので、外部機器に接続して利用する付属機器を安価に構成でき、かつ外部機器におけるプログラムの更新を容易に行うことができるプログラム更新方法を提供することを目的とするものである。
【００１８】
【課題を解決するための手段】
本発明は、ホスト機器と外部機器が接続されたシステムにおけるプログラム更新方法において、前記外部機器に付属機器が接続された時に前記外部機器は前記ホスト機器に対して付属機器が増設されたことを通知し、通知を受けた前記ホスト機器は前記付属機器を動作させるために必要なプログラムを前記外部機器に対して送り、前記外部機器は前記ホスト機器から送られてきたプログラムをメモリに格納し、前記外部機器は、同じ種類の付属機器がすでに装着されており、装着されている付属機器と共存できる場合には、前記ホスト機器へ前記付属機器が追加されたことを通知せずに既存のプログラムを用いることを特徴とするものである。
【００１９】
なお、前記外部機器は、接続された付属機器がすでに装着されている同じ種類の付属機器と共存できない場合は、前記ホスト機器へ前記付属機器が追加されたことを通知せずに前記付属機器を無効とするように構成することができる。
【００３４】
【発明の実施の形態】
図１は、本発明が適用されるシステムの基本構成例を示すブロック図である。図中の符号は図３０と同様である。ホスト機器２に対し、接続、切り離し可能な外部機器１が接続されており、更に、外部機器１には、着脱可能な付属機器３が接続されている。外部機器１とホスト機器２との接続や外部機器１と付属機器３との接続は、それぞれ、任意のインタフェースを用いて行うことができる。
【００３５】
外部機器１は、付属機器３の着脱を検知する機能を持っており、またホスト機器２に対して付属機器３の着脱状況を通知する機能を有している。ホスト機器２は、外部機器１の通知を元に必要なソフトウェア等のプログラムや、その他の各種のデータなどを準備し、外部機器１に対して転送する。外部機器１は、ホスト機器２より送られてくるソフトウェア等のプログラムやその他のデータなどを受け取って内部のメモリに格納すると、付属機器３の制御準備や、必要な処理動作に移り、該当する機能の制御を開始する。
【００３６】
以下、このような基本構成例を用いた本発明の実施の形態について示す。なお、以下に示す実施の形態において示した構成は、それぞれを適宜組み合わせることも可能であり、組み合わせた構成も本発明に含まれるものである。
【００３７】
図２は、本発明の第１の実施の形態を示すブロック図である。図中、図１と同様の部分には同じ符号を付してある。１１は記憶部、１２は転送部、１３は判断部、１４は認識部、２１は記憶部、２２は制御部、２３は転送部、３１は通知情報、３２はデータである。
【００３８】
外部機器１がホスト機器２に接続されている。外部機器１には付属機器３が着脱される。付属機器３の着脱は通知情報３１としてホスト機器２に通知される。ホスト機器２は通知情報３１を受けて、付属機器３に対応するプログラムを含むデータ３２を外部機器１に転送する。
【００３９】
外部機器１は、記憶部１１、転送部１２、判断部１３、認識部１４などにより構成されている。記憶部１１は、各種のデータやアプリケーション、ドライバなどのプログラムを記憶する。転送部１２は、プログラムを含む各種のデータ３２や通知情報３１などをホスト機器２との間で送受信する。判断部１３は、自由に着脱される付属機器３の種類を判別する。認識部１４は、付属機器３の物理的な着脱または論理的な着脱を検知する。
【００４０】
一方、ホスト機器２においては、記憶部２１、制御部２２、転送部２３などによって構成されている。記憶部２１は、外部機器１に対してダウンロードする各種データやプログラムを一時または長期的に記憶しておく。制御部２２は、各種処理やデータの制御指示などを行う。転送部２３は、外部機器１とプログラムを含む各種のデータ３２や通知情報３１などの送受信を行う。
【００４１】
本発明の第１の実施の形態における動作の一例について説明する。付属機器３が外部機器１に接続された場合、認識部１４は接続が発生したことを判断部１３に通知する。判断部１３は、認識部１４から通知される情報、または、認識部１４に対して詳細情報を要求することによって得られる情報を元に、接続された機器を特定する。そして、判断部１３は特定した機器の情報を転送部１２に渡し、ホスト機器２に対し、通知情報３１として転送させる。
【００４２】
ホスト機器２は、外部機器１からの通知情報３１を転送部２３にて受け取る。制御部２２は、転送部２３が受け取った通知情報３１を解釈し、記憶部２１に格納されているデータ、プログラムなどから該当するものを選び出す。選び出されたデータ、プログラムは、必要なら制御部２２により加工され、転送部２３に渡される。転送部２３は与えられたデータ、プログラムをデータ３２として外部機器１に送信する。
【００４３】
外部機器１は、転送部１２にてデータ３２を受け取る。受け取ったデータ３２は記憶部１１に格納され、外部機器１にて使用または実行される。このようにして、外部機器１に接続された付属機器３に対応するプログラムが外部機器１に転送され、外部機器１を利用できるようになる。
【００４４】
図３は、本発明の第２の実施の形態を示すブロック図である。図中、図２と同様の部分には同じ符号を付してある。４１はファイル、４２はホスト用ドライバ部、４３は外部機器用ソフトウェア部である。外部機器１がホスト機器２に接続されている。外部機器１には付属機器３が着脱される。付属機器３からは付属機器３が接続されたときに通知情報３１がホスト機器２に送られてくる。また、ホスト機器２は通知情報３１に従い、データ、プログラムなどをデータ３２として外部機器１に送信する。ファイル４１はホスト機器２が保持するデータであり、記憶部２１に格納されている。ファイル４１は、ホスト機器２で動作するホスト用ドライバ部４２と外部機器１で動作する外部機器用ソフトウェア部４３にて構成されている。
【００４５】
ホスト機器２に外部機器１用のドライバソフトウェアがインストールされると、このドライバソフトウェアは、ファイル４１として記憶部２１に格納される。ホスト機器２は、ファイル４１のホスト用ドライバ部４２を使用して、外部機器１の制御、通信を行う。外部機器１より付属機器が接続された旨の通知情報３１を受け取ると、制御部２２は記憶部２１に格納されているファイル４１の中から、外部機器用ソフトウェア部４３を検索し、通知情報３１に対応するデータやプログラムを取り出す。なお、あらかじめファイル４１から外部機器用ソフトウェア部４３を切り出しておいてもよい。制御部２２は、取り出したデータやプログラムを転送部２３に渡し、データ３２として外部機器１に送信する。
【００４６】
このようにして、ユーザは外部機器のドライバソフトウェアをインストールしておくだけで、付属機器を動作させるのに必要なプログラムを意識することなく、外部機器のプログラムを更新することができる。換言すれば、ユーザはホスト機器２上で動作する外部機器１に対応するドライバソフトウェアを、外部機器１に添付の記憶媒体や外部機器メーカーのホームページなどからダウンロードしてインストールするだけで、付属機器３を動作させるのに必要なプログラムが外部機器１に転送され、プログラムを更新することができる。
【００４７】
図４は、本発明の第３の実施の形態を示すブロック図である。図中、図２と同様の部分には同じ符号を付してある。１５，２４は警告部である。外部機器１がホスト機器２と接続されている。付属機器３は外部機器１に着脱される。外部機器１に付属機器３が接続されると、ホスト機器２に対して通知情報３１が送られる。外部機器１より通知情報３１が送られて来ると、ホスト機器２は制御部２２にて、記憶部２１に該当するデータやプログラムがあるか否かを検索する。検索の結果、該当するデータやプログラムがない場合、制御部２２は警告部２４に対し、警告を行うように指示する。警告部２４は、制御部２２の指示に従い、ユーザに対して警告を発する。
【００４８】
制御部２２は更に、警告データを用意し、転送部２３に対し、外部機器１へ警告データをデータ３２として送るように指示する。転送部２３は、データ３２を外部機器１に転送する。外部機器１は転送部１２にてデータ３２を受け取る。警告部１５は、転送部１２よりデータ３２を受け取り、警告を発する。また、警告部１５は付属機器３の接続を無効にする。
【００４９】
このようにして付属機器３に対応するデータやプログラムが存在しない場合に、ユーザに対して警告を発することによって、接続した付属機器３が動作しないことをユーザに報知することができる。また、ユーザは、警告が発せられたときのみ、例えば外部機器１用のデバイスドライバなどをダウンロード及びインストールすればよい。なお、この例ではホスト機器２と外部機器１の２ヶ所で警告を発しているが、どちらか一方でも構わない。また、付属機器３の無効化を必ずしも行う必要はない。
【００５０】
図５は、本発明の第４の実施の形態を示すブロック図である。図中、図２と同様の部分には同じ符号を付してある。３３は問い合わせ情報である。外部機器１とホスト機器２が接続されている。外部機器１に付属機器３が接続されると、外部機器１は接続情報を保持しておく。ホスト機器２は定期的、または不定期に外部機器１に対して、付属機器３の状態変化を確認するために問い合わせ情報３３を送信する。外部機器１は問い合わせ情報３３を受け取ると、機器の接続変化があった場合は通知情報３１をホスト機器２に返し、データ、プログラムを要求する。機器の接続変化がなかった場合は、通知情報３１に変化がなかったことを示す通知情報３１をホスト機器２に返すか、何も返さない。
【００５１】
機器の接続の変化があった場合に通知情報３１を外部機器１からホスト機器２へ送った後は、上述の各実施の形態と同様に、ホスト機器２は、外部機器１に接続されている付属機器３を動作させるために必要なデータ及びプログラム等をデータ３２として外部機器１に転送し、プログラムの更新を行う。
【００５２】
このような構成によって、ホスト機器２の動作にあわせて外部機器１内のプログラムを更新することができる。例えばホスト機器２における準備が整う前に外部機器１から付属機器が追加された旨の通知３１を受けてしまうといった不具合を防ぐことができる。
【００５３】
図６は、本発明の第５の実施の形態を示すブロック図である。図中、図２と同様の部分には同じ符号を付してある。１６は検索部である。外部機器１にホスト機器２が接続されている。また、外部機器１には着脱可能な付属機器３が着脱される。外部機器１は、記憶部１１、転送部１２、判断部１３、認識部１４とともに、検索部１６を具備している。記憶部１１、転送部１２、判断部１３、認識部１４は上述の第１の実施の形態と同様である。検索部１６は、ソフトウェアの有無やそのバージョンを検索する。なお、ホスト機器２の構成は上述の第１の実施の形態と同様である。
【００５４】
この第５の実施の形態における動作の一例を説明する。付属機器３が外部機器１に接続された場合、認識部１４は接続が発生したことを判断部１３に通知する。判断部１３は、認識部１４から通知される情報または認識部１４に対して詳細情報を要求して得られる情報を元に、接続された機器を特定する。判断部１３は、特定した機器の情報を検索部１６に渡す。検索部１６は、記憶部１１の中に存在するデータやプログラムを調べ、付属機器３に必要なデータやプログラムが既に存在しているか否かを確認する。付属機器３に必要なデータやプログラムが存在した場合、検索部１６は更に、そのデータやプログラムのバージョン情報を検索する。検索部１６は、接続された付属機器３の種類と、関連データ、プログラムの有無、および存在する場合はバージョンを転送部１２に渡し、ホスト機器２に対して通知情報３１として転送させる。
【００５５】
ホスト機器２は、外部機器１からの通知情報３１を転送部２３にて受け取る。制御部２２は転送部２３が受け取った通知情報３１を解釈し、記憶部２１に格納されているデータ、プログラムなどから該当するものを選び出す。選び出されたデータ、プログラムは、制御部２２によりバージョンのチェックを受ける。データやプログラムが通知情報３１との比較の結果、新しいバージョンであることが判明した場合、制御部２２は必要に応じて記憶部２１に格納されているデータ、プログラムを転送用に加工し、転送部２３に渡す。転送部２３は与えられたデータ、プログラムをデータ３２として外部機器１に送信する。
【００５６】
外部機器１は転送部１２にてデータ３２を受け取る。受け取ったデータ３２は記憶部１１に格納され、古いバージョンのデータやソフトウェアがある場合はそれを置きかえる。記憶部１１に格納されたデータ、プログラムは外部機器１にて使用または実行される。このようにして、最新のプログラムやデータが外部機器１に転送されるので、外部機器１では常に最新のプログラムによって更新され、仕様または実行することができる。
【００５７】
図７は、本発明の第６の実施の形態を示すブロック図である。図中、図２と同様の部分には同じ符号を付してある。３４は調査手順情報である。外部機器１にホスト機器２が接続されている。外部機器１には付属機器３が着脱される。付属機器３の着脱は通知情報３１としてホスト機器２に通知される。ホスト機器２は通知情報３１を受けて、接続された付属機器３を特定する手順を示した調査手順情報３４を外部機器１に転送する。外部機器１では、受け取った調査手順情報３４に従って接続された付属機器３を特定し、特定した付属機器３の情報を含む通知情報３１をホスト機器２に通知する。ホスト機器２は通知情報３１を受けて、接続された付属機器３に対応するデータやプログラムをデータ３２として外部機器１に転送する。なお、外部機器１及びホスト機器２の構成は上述の第１の実施の形態と同様である。
【００５８】
この第６の実施の形態における動作の詳細の一例を説明する。付属機器３が外部機器１に接続された場合、認識部１４は接続が発生したことを判断部１３に通知する。判断部１３は、認識部１４から受け取った接続情報、または最低限のインタフェース情報を転送部１２に渡し、ホスト機器２に対して通知情報３１として転送させる。
【００５９】
ホスト機器２は、外部機器１からの通知情報３１を転送部２３にて受け取る。制御部２２は、転送部２３が受け取った通知情報３１を解釈し、付属機器３を調査する手順（アクセスの仕方、取り出したデータの解釈方法など）を記憶部２１の中から選び出し、転送部２３に渡す。転送部２３は与えられた調査方法に関するデータを調査手順情報３４として外部機器１に送信する。
【００６０】
外部機器１は、転送部１２にて調査手順情報３４を受け取る。受け取った調査手順情報３４は記憶部１１に格納され、判断部１３にて実行される。判断部１３は、認識部１４を通して、接続された付属機器３を手順に従って特定する。判断部１３は、特定した機器の情報を転送部１２に渡し、ホスト機器２に対し、再び通知情報３１として転送させる。
【００６１】
ホスト機器２は、外部機器１からの通知情報３１を転送部２３にて受け取る。制御部２２は、転送部２３が受け取った通知情報３１を解釈し、記憶部２１に格納されているデータ、プログラムなどから該当するものを選び出す。選び出されたデータ、プログラムは、必要なら制御部２２により加工され、転送部２３に渡される。転送部２３は、与えられたデータ、プログラムをデータ３２として外部機器１に送信する。外部機器１は、転送部１２にてデータ３２を受け取る。受け取ったデータ３２は記憶部１１に格納され、外部機器１にて使用または実行される。
【００６２】
このようにして、付属機器３が接続されるとホスト機器２から調査手順情報３４を外部機器１に転送して、付属機器３の調査を行う。例えばＵＳＢやＩＥＥＥ１３９４などのインタフェースの規格がバージョンアップした場合などのように、付属機器の種別を調べる手順やフォーマットが変更されることが予想される。調査手順情報３４をホスト機器２から転送することによって、このようなインタフェースのバージョンアップにも対応し、外部機器１は常に正しい手順で付属機器３の調査を行って、正しいプログラムの更新を行うことができる。
【００６３】
図８は、本発明の第７の実施の形態を示すブロック図である。図中、図２と同様の部分には同じ符号を付してある。３−１，３−２は付属機器である。外部機器１にホスト機器２が接続されている。外部機器１には着脱可能な付属機器３−１が接続されており、更に同じく付属機器３−２が着脱される。外部機器１及びホスト機器２の構成は上述の第１の実施の形態と同様であるが、判断部１３は自由に着脱される付属機器３−１と付属機器３−２の種類を判別し処理内容を判断する。また認識部１４は、付属機器３−１及び付属機器３−２の物理的な着脱または論理的な着脱を検知する。
【００６４】
この第７の実施の形態における動作の詳細の一例を説明する。付属機器３−１が外部機器１に接続された状態で、付属機器３−１と同じ種類の付属機器３−２が接続された場合、認識部１４は接続が発生したことを判断部１３に通知する。判断部１３は、認識部１４から通知される情報または認識部１４に対して詳細情報を要求して得られる情報を元に、接続された付属機器３−２を特定する。判断部１３は、特定した付属機器３−２の情報を元に、記憶部１１の中に存在するデータやプログラムを調べ、付属機器３−２に必要なデータやプログラムが既に存在しているか否かを確認する。データやプログラムが存在していた場合、判断部１３は転送部１２に対し、機器接続の通知を伝えない。判断部１３は、付属機器３−２が付属機器３−１と共存できる機器であるか否かを判断し、できない場合は無効とする。また、共存できる場合には、既存のデータやプログラムによって付属機器３−２についても動作させる。
【００６５】
なお、付属機器３−２に必要なデータやプログラムが記憶部１１の中に存在していない場合には、ホスト機器２に対して通知情報を送り、ホスト機器２から付属機器３−２に必要なデータやプログラムを受け取って記憶部１１に格納し、外部機器１によって仕様または実行される。
【００６６】
このように、同じ種類の付属機器がすでに外部機器に装着されている場合などのように、接続された付属機器に必要なデータやプログラムがすでに存在する場合には、そのデータやプログラムを利用することによって、ホスト機器２とのデータ転送を減少させるとともに、外部機器において無駄なメモリ領域の使用を防止することができる。
【００６７】
図９は、本発明の第８の実施の形態を示すブロック図である。図中、図２と同様の部分には同じ符号を付してある。１７は設定部である。外部機器１にホスト機器２が接続されている。外部機器１には付属機器３が着脱される。この実施の形態では、外部機器１に設定部１７が設けられている。設定部１７は、ユーザが付属機器の扱いを設定するために使用するものであり、例えば外部機器１に設けられたコントロールパネルなどによって構成することができる。そのほかの構成は上述の第１の実施の形態と同様である。
【００６８】
付属機器３が外部機器１に接続された場合、認識部１４は接続が発生したことを判断部１３に通知する。判断部１３は、認識部１４から通知される情報または認識部１４に対して詳細情報を要求して得られた情報を元に、接続された機器を特定する。一方、ユーザは設定部１７にて、付属機器３の接続をホスト機器２に通知するか否かを予め設定しておく。設定情報は記憶部１１に格納されているものとする。判断部１３は、特定した機器の情報をホスト機器２に通知するか否かを、記憶部１１に格納されている設定情報を元に判断する。通知が不許可の場合、判断部１３は転送部１２に対して付属機器が接続された旨を通知しない。また、通知が許可されている場合には、上述の各実施の形態と同様に、判断部１３は転送部１２に対して付属機器が接続された旨を通知し、転送部１２は通知情報３１としてホスト機器２へ通知する。そしてホスト機器２から送られてくるデータやプログラムなどのデータ３２を受け取って記憶部１１に格納し、使用または実行することになる。
【００６９】
例えば、外部機器に付属機器を接続したとしても、その他の機器を準備しなければ使用することができない場合、あらかじめユーザが設定部１７を使用してホスト機器２に対する通知を不許可にしておくことができる。そして他の機器の準備が完了し、使用できる状態となったとき、最後の付属機器の接続前に、ユーザが設定部１７を使用してホスト機器２に対する通知を許可しておけばよい。最後の付属機器の接続によって、必要なプログラムがホスト機器２から外部機器１に転送されて、付属機器が使用可能となる。
【００７０】
図１０は、本発明の第９の実施の形態を示すブロック図である。図中、図２と同様の部分には同じ符号を付してある。５１は機器情報、５２は格納場所情報である。外部機器１にホスト機器２が接続されている。外部機器１には付属機器３が着脱される。外部機器１及びホスト機器２の構成は上述の第１の実施の形態と同様である。ホスト機器２に通知される通知情報３１は、付属機器３に関する機器情報５１と、データやプログラムの格納されている場所が示されている格納場所情報５２を含んで構成されている。
【００７１】
付属機器３が外部機器１に接続された場合、認識部１４は接続が発生したことを判断部１３に通知する。判断部１３は認識部１４から通知される情報または認識部１４に対して詳細情報を要求して得られる情報を元に、接続された付属機器３を特定する。このとき、付属機器３が格納場所情報５２を持っている場合は、判断部１３にて付属機器３から格納場所情報５２を取得する。付属機器３が格納場所情報５２を持っていない場合は、記憶部１１の中を検索し、過去のダウンロードにおいて該当するものがあるか否かを調べる。該当するものがある場合は格納場所情報５２として付加する。判断部１３は、特定した機器情報５１と格納場所情報５２を通知情報３１として加工し、転送部１２に渡し、ホスト機器２に対し、通知情報３１として転送させる。ホスト機器２は、外部機器１からの通知情報３１を受け取る。ホスト機器２は受け取った通知情報３１から、必要に応じて格納場所情報５２を取り出し、その格納場所情報５２によって示されている場所、例えばＵＲＬであればインターネットからプログラムをダウンロードし、あるいはファイルロケーションであればそのファイルを取得する。そして必要に応じて加工した後、外部機器１に対してデータ３２として転送され、外部機器１のプログラムが更新される。
【００７２】
このようにして、格納場所情報５２をホスト機器２へ転送することによって、例えば格納場所情報５２がＵＲＬであれば、常に最新のプログラムをダウンロードして外部機器１におけるプログラムの更新を行うことができる。また、格納場所情報５２がファイルロケーション等であれば、最適なプログラムを選択して外部機器１におけるプログラムの更新を行うことができる。
【００７３】
図１１は、本発明の第１０の実施の形態を示すブロック図である。図中、図２と同様の部分には同じ符号を付してある。２５は再構成部である。この第１０の実施の形態から第２１の実施の形態までにおいては、外部機器１に転送するプログラムをホスト機器２において再構成してから転送する例を示している。
【００７４】
ホスト機器２に対し、接続、切り離し可能な外部機器１が接続されており、更に、外部機器１には、着脱可能な付属機器３が接続されている。外部機器１は付属機器３の着脱検知をする機能を持っており、ホスト機器２に対し、付属機器３の着脱状況を通知する。ホスト機器２は、外部機器１の通知を元に必要なソフトウェアやその他のデータなどを準備し、外部機器１に対して転送する。外部機器１は、ホスト機器２より送られてくるソフトウェアやその他のデータなどを受け取ると、内部のメモリに格納し、付属機器３の制御準備や、必要な処理動作に移り、該当する機能の制御を開始する。
【００７５】
ホスト機器２には再構成部２５が設けられている。この再構成部２５は、外部機器１に送るデータやプログラムを単純に用意するのではなく、組み替えや最適化してオブジェクトを再構成する機能を持っている。なお、その他の構成は上述の第１の実施の形態などと同様である。
【００７６】
第１０の実施の形態における動作の一例を説明する。外部機器１がホスト機器２に接続されている。外部機器１には付属機器３が着脱される。付属機器３の着脱は通知情報３１としてホスト機器２に通知される。ホスト機器２は外部機器１からの通知情報３１を転送部２３にて受け取る。制御部２２は転送部２３が受け取った通知情報３１を解釈し、記憶部２１に格納されているデータ、プログラムのオブジェクト（実行ファイル）から必要なもの全てを選び出す。選び出されたデータ、プログラムは、再構成部２５に渡され、実行用オブジェクトに再構成される。再構成されたオブジェクトは再構成部２５から制御部２２を通じて転送部２３に渡される。転送部２３は与えられたデータ、プログラムオブジェクトをデータ３２として外部機器１に送信する。外部機器１はデータ３２を受け取り，使用または実行する。なお、ここで使われる必要なプログラムやデータの特定方法は、ホスト機器が管理していてもよいし、外部機器から与えられてもよい。
【００７７】
このようにホスト機器２においてプログラムオブジェクトを再構成して外部機器１に転送することによって、外部機器１と付属機器３を動作させるプログラムを、動作速度やメモリ使用量などの点で最適な形態で転送し、更新することができるという利点を有している。
【００７８】
図１２は、本発明の第１１の実施の形態を示すブロック図である。図中、図２と同様の部分には同じ符号を付してある。２６は他ＣＰＵ用再構成部である。外部機器１がホスト機器２と接続されている。外部機器１からは付属機器３が接続されたときに通知情報３１が送られてくる。また、ホスト機器２は通知情報３１に従い、データ、プログラムなどをデータ３２として外部機器１に送信する。
【００７９】
ホスト機器２には、他ＣＰＵ用再構成部２６が設けられている。他ＣＰＵ用再構成部２６は、各種データやプログラムを外部機器１用のＣＰＵ（またはコントローラなど）の仕様に合わせた形で再構築する。例えば外部機器１用のＣＰＵ（またはコントローラなど）に対応したコンパイラやリンカなどの再構成環境を提供している。そのほかの構成は、上述の第１及び第１０の実施の形態などと同様である。
【００８０】
付属機器３が外部機器１に接続された場合、付属機器３は通知情報３１をホスト機器２に送る。ホスト機器２は外部機器１からの通知情報３１を転送部２３にて受け取る。制御部２２は、転送部２３が受け取った通知情報３１を解釈し、記憶部２１に格納されているデータ、プログラムのオブジェクト（実行ファイル）から必要なもの全てを選び出す。選び出されたデータ、プログラムは、他ＣＰＵ用再構成部２６に渡され、外部機器１のＣＰＵやコントローラで実行できるオブジェクトに再構成される。再構成されたオブジェクトは他ＣＰＵ用再構成部２６から制御部２２を通じて転送部２３に渡される。転送部２３は与えられたデータ、プログラムオブジェクトをデータ３２として外部機器１に送信する。外部機器１はデータ３２を受け取り、使用または実行する。なお、ここで使われる必要なプログラムやデータの特定方法は、ホスト機器が管理していてもよいし、外部機器から与えられてもよい。
【００８１】
このように、外部機器１に転送されるプログラムオブジェクトは、外部機器１のＣＰＵやコントローラに最適な再構成が施されているので、動作速度やメモリ使用量などの点で最適なプログラムによって更新することができる。
【００８２】
図１３は、本発明の第１２の実施の形態を示すブロック図である。図中、図２及び図１１と同様の部分には同じ符号を付してある。外部機器１がホスト機器２と接続されている。外部機器１からは付属機器３が接続されたときに通知情報３１が送られてくる。また、ホスト機器２は通知情報３１に従い、データ、プログラムなどをデータ３２として外部機器１に送信する。
【００８３】
ホスト機器２には、再構成部２５が設けられている。この第１２の実施の形態においては、再構成部２５は、外部機器１に転送するプログラムをソースファイルからコンパイルしてオブジェクトを再構成（リメイク）する。そのほかの構成は、上述の第１及び第１０の実施の形態などと同様である。
【００８４】
付属機器３が外部機器１に接続された場合、付属機器３は通知情報３１をホスト機器２に送る。ホスト機器２は、外部機器１からの通知情報３１を転送部２３にて受け取る。制御部２２は転送部２３が受け取った通知情報３１を解釈し、記憶部２１に格納されているデータ、プログラム（ソースファイル）から必要なもの全てを選び出す。選び出されたデータ、プログラム（ソースファイル）は再構成部２５に渡され、オブジェクトにコンパイルされる。コンパイルされたオブジェクトは更にリンクされ外部機器１用のオブジェクトとしてまとめられる。再構成されたオブジェクトは再構成部２５から制御部２２を通じて転送部２３に渡される。転送部２３は与えられたデータ、プログラムオブジェクトをデータ３２として外部機器１に送信する。外部機器１はデータ３２を受け取り、使用または実行する。なお、ここで使われる必要なプログラムやデータの特定方法は、ホスト機器が管理していてもよいし、外部機器から与えられてもよい。
【００８５】
このようにソースファイルから再構成（リメイク）することによって、外部機器で使用しているＣＰＵが複数の種類であっても、外部機器と付属機器を動作させるソフトウェアをソースコードで配布しておけば、各ユーザが使用している外部機器のＣＰＵの種類に合わせて、プログラムオブジェクトを再構成することができる。
【００８６】
図１４は、本発明の第１３の実施の形態を示すブロック図である。図中、図２及び図１１と同様の部分には同じ符号を付してある。６１は管理情報、６２，６３は機器情報、６４は新規接続機器情報である。外部機器１がホスト機器２と接続されている。外部機器１からは付属機器３が接続されたときに通知情報３１が送られてくる。また、ホスト機器２は通知情報３１に従い、データ、プログラムなどをデータ３２として外部機器１に送信する。なお、外部機器１及びホスト機器２の構成は、上述の第１及び第１０の実施の形態などと同様であるが、外部機器１の記憶部１１には、外部機器１に接続されている付属機器３の機器情報が管理情報６１として保持されている。
【００８７】
付属機器３が外部機器１に接続された場合、認識部１４は接続が発生したことを判断部１３に通知する。判断部１３は認識部１４から通知される情報または認識部１４に対して詳細情報を要求して得られる情報を元に、接続された付属機器３を特定する。判断部１３は、特定した付属機器３の情報を新規接続機器情報６４として記憶部１１に保持し、既に記憶保持している管理情報６１を調べる。管理情報６１の例を図１４（Ｂ）に示しており、ここでは機器情報６２，６３が格納されている。判断部１３は、管理情報６１から既に接続されている機器情報６２，６３や必要なソフトウェア情報を取り出し、一時保持した新規接続機器情報６４と共に通知情報３１としてまとめる。まとめられた通知情報３１を図１４（Ｃ）に示している。通知情報３１は転送部１２に渡され、ホスト機器２に対して転送される。
【００８８】
ホスト機器２は、外部機器１からの通知情報３１を転送部２３にて受け取る。制御部２２は、転送部２３が受け取った通知情報３１を解釈し、記憶部２１に格納されているデータ、プログラムから必要なもの全てを選び出す。選び出されたデータ、プログラムは、再構成部２５に渡され、外部機器１用のオブジェクトとして再構成される。再構成されたオブジェクトは再構成部２５から制御部２２を通じて転送部２３に渡される。転送部２３は与えられたデータ、プログラムオブジェクトをデータ３２として外部機器１に送信する。外部機器１はデータ３２を受け取り、使用または実行する。なお、データ３２を受け取った時点で、新規接続機器情報６４は管理情報６１に機器情報として登録される。
【００８９】
このように、新規に接続された付属機器の情報だけでなく、すでに組み込まれている付属機器やすでにインストールされているソフトウェア情報などをホスト機器２に通知することによって、これらの機器構成において最適なプログラムオブジェクトを再構成して外部機器１に転送し、プログラムの更新を行うことができる。
【００９０】
図１５は、本発明の第１４の実施の形態を示すブロック図である。図中、図２及び図１１と同様の部分には同じ符号を付してある。７１は管理情報、７２，７３は機器情報である。外部機器１がホスト機器２と接続されている。外部機器１からは付属機器３が接続されたときに通知情報３１が送られてくる。また、ホスト機器２は通知情報３１に従い、データ、プログラムなどをデータ３２として外部機器１に送信する。なお、外部機器１及びホスト機器２の構成は、上述の第１及び第１０の実施の形態などと同様であるが、ホスト機器２の記憶部２１には、外部機器１に接続されている付属機器３の機器情報が管理情報７１として保持されている。図１５（Ｃ）に示す例では機器情報７２，７３が保持されている例を示している。
【００９１】
付属機器３が外部機器１に接続された場合、認識部１４は接続が発生したことを判断部１３に通知する。判断部１３は、認識部１４から通知される情報または認識部１４に対して詳細情報を要求して得られた情報を元に、接続された付属機器３を特定する。判断部１３は特定した付属機器３の情報を通知情報３１として転送部１２に渡し、ホスト機器２に対して転送させる。この第１４の実施の形態では、通知情報３１は図１５（Ｂ）に示すように新たに接続された付属機器３の情報を新規接続機器情報６４として含んでいる。
【００９２】
ホスト機器２は、外部機器１からの通知情報３１を転送部２３にて受け取る。制御部２２は、転送部２３が受け取った通知情報３１を解釈する。更に、制御部２２は記憶部２１に保持してある管理情報７１を調べ、現在外部機器１に接続されている、新規以外の付属機器３および関連プログラムについての情報を得る。制御部２２は、この新規以外の付属機器３および関連プログラムについての情報と、通知情報３１として受け取った新規接続機器情報６４の２つの情報を元に、記憶部２１に格納されているデータ、プログラムから必要なもの全てを選び出す。選び出されたデータ、プログラムは、再構成部２５に渡され、外部機器１用のオブジェクトとして再構成される。再構成されたオブジェクトは、再構成部２５から制御部２２を通じて転送部２３に渡される。転送部２３は与えられたデータ、プログラムオブジェクトをデータ３２として外部機器１に送信する。外部機器１はデータ３２を受け取り、使用または実行する。なお、データ３２を送った時点または、外部機器１からデータ３２の受け取り完了通知があった時点で、新規接続機器情報６４は管理情報７１に機器情報として登録される。
【００９３】
このように、すでに組み込まれている付属機器やすでにインストールされているソフトウェア情報などをホスト機器２において管理し、新規に接続された付属機器の情報のみを外部機器１からホスト機器２に通知するので、通知情報３１のデータ量を低減することができる。また、すでに組み込まれている付属機器の情報と新たに接続された付属機器の情報の両方を用いることによって、これらの機器構成において最適なプログラムオブジェクトを再構成して外部機器１に転送し、プログラムの更新を行うことができる。
【００９４】
図１６は、本発明の第１５の実施の形態を示すブロック図である。図中、図２及び図１１と同様の部分には同じ符号を付してある。２７は圧縮部である。外部機器１がホスト機器２と接続されている。外部機器１からは付属機器３が接続されたときに通知情報３１が送られてくる。また、ホスト機器２は通知情報３１に従い、データ、プログラムなどをデータ３２として外部機器１に送信する。
【００９５】
ホスト機器２には、圧縮部２７が設けられている。圧縮部２７は、再構築するプログラムの一部または全部を必要に応じて圧縮する。なお、ホスト機器２のその他の構成、及び外部機器１の構成は、上述の第１及び第１０の実施の形態などと同様である。
【００９６】
付属機器３が外部機器１に接続された場合、認識部１４は接続が発生したことを判断部１３に通知する。判断部１３は、認識部１４から通知される情報または認識部１４に対して詳細情報を要求して得られる情報を元に、接続された付属機器３を特定する。判断部１３は、特定した付属機器３の情報と、プログラム（オブジェクト）の保存用として割り当てられる記憶部１１中の大きさを通知情報３１として転送部１２に渡し、ホスト機器２に対して転送させる。
【００９７】
ホスト機器２は、外部機器１からの通知情報３１を転送部２３にて受け取る。制御部２２は、転送部２３が受け取った通知情報３１を解釈する。制御部２２は、記憶部２１に格納されているデータ、プログラムから必要なものを選び出す。選び出されたデータ、プログラムは、再構成部２５に渡され、外部機器１用のオブジェクトとして再構成される。再構成されたオブジェクトは、その大きさが制御部２２によりチェックされる。オブジェクトの大きさが、外部機器１から与えられたものより大きい場合は、再構成部２５を経由し、圧縮部２７にて圧縮される。圧縮またはフルサイズのオブジェクトは転送部２３に渡される。転送部２３は、与えられたデータ、プログラムオブジェクトをデータ３２として外部機器１に送信する。外部機器１はデータ３２を受け取り、使用または実行する。実行時には圧縮されたプログラムは展開されるものとする。なお、この例では外部機器１側で記憶部１１の空き領域の大きさを管理しているが、これはホスト機器２側で管理してもよい。
【００９８】
このような構成によって、外部機器１の記憶部１１の容量を越えるプログラムも外部機器１に転送することができ、また、記憶部１１の容量を変更することなくプログラムの更新を行うことができる。
【００９９】
図１７は、本発明の第１６の実施の形態を示すブロック図である。図中、図２及び図１１と同様の部分には同じ符号を付してある。８１は優先情報である。外部機器１がホスト機器２と接続されている。外部機器１からは付属機器３が接続されたときに通知情報３１が送られてくる。また、ホスト機器２は通知情報３１に従い、データ、プログラムなどをデータ３２として外部機器１に送信する。なお、外部機器１及びホスト機器２の構成、及び外部機器１の構成は、上述の第１及び第１０の実施の形態などと同様であるが、ホスト機器２の記憶部２１には、外部機器１に接続される付属機器３ごとの優先情報８１が格納されている。図１７（Ｂ）に示す例では、機器１と機器２についての優先情報８１が格納されている例を示している。
【０１００】
付属機器３が外部機器１に接続された場合、通知情報３１がホスト機器２に対し転送されてくる。この通知情報３１には、外部機器１に接続されている全ての付属機器３の情報が含まれているものとする。ホスト機器２は、外部機器１からの通知情報３１を転送部２３にて受け取る。制御部２２は、転送部２３が受け取った通知情報３１を解釈する。更に、制御部２２は記憶部２１に保持してある優先情報８１を調べ、現在、外部機器１に接続されている全ての付属機器３および関連プログラムについて、それぞれの優先順位を得る。制御部２２は、通知情報３１を元に、記憶部２１に格納されているデータ、プログラムから必要なもの全てを選び出し、優先順位に従った再構成の指示とともに再構成部２５に渡す。再構成部２５は、制御部２２からの指示に従い、プログラムの再構成を行って、外部機器１用のオブジェクトを作り出す。このとき、指示された優先順位に従って付属機器を駆動するデバイスドライバの割り込み優先順位を割り付ける。再構成されたオブジェクトは再構成部２５から制御部２２を通じて転送部２３に渡される。転送部２３は、与えられたデータ、プログラムオブジェクトをデータ３２として外部機器１に送信する。外部機器１はデータ３２を受け取り、使用または実行する。
【０１０１】
このように、付属機器３の優先順位に従ってプログラムオブジェクトを再構成して外部機器１に転送するので、例えば動作速度や動作順序などの優先順の観点で最適なプログラムにより外部機器１のプログラムを更新することができる。
【０１０２】
なお、上述の例では優先情報８１はホスト機器２側が有していたが、例えば外部機器１側で保持しておき、優先情報８１も通知情報３１としてホスト機器２に転送するように構成してもよい。また上述の説明では、通知情報３１として外部機器１に接続されているすべての付属機器３の情報をホスト機器２に転送するものとしたが、例えば新規に接続された付属機器３の情報だけをホスト機器２に転送するように構成してもよい。
【０１０３】
図１８は、本発明の第１７の実施の形態を示すブロック図である。図中、図２及び図１１と同様の部分には同じ符号を付してある。２８は外部検索部、９１は格納場所情報である。外部機器１がホスト機器２と接続されている。外部機器１からは付属機器３が接続されたときに通知情報３１が送られてくる。また、ホスト機器２は通知情報３１に従い、データ、プログラムなどをデータ３２として外部機器１に送信する。
【０１０４】
ホスト機器２は、外部検索部２８を有するとともに、ネットワークなどを介して外部に接続されている。外部検索部２８は、ネットワークなどを通じ、外部のホームページの検索、通信、データのダウンロード等を行う。また記憶部２１には、各付属機器３毎に当該付属機器３に対応する各種データやプログラムの格納場所を示す格納場所情報９１が格納されている。図１８（Ｂ）に示す例では機器１と機器２に対応する各種データやプログラムなどの格納場所が登録されている例を示している。なお、ホスト機器２のその他の構成、及び外部機器１の構成は、上述の第１及び第１０の実施の形態などと同様である。
【０１０５】
付属機器３が外部機器１に接続された場合、通知情報３１がホスト機器２に対し転送されてくる。ホスト機器２は、外部機器１からの通知情報３１を転送部２３にて受け取る。制御部２２は転送部２３が受け取った通知情報３１を解釈する。更に、制御部２２は、記憶部２１に保持されている格納場所情報９１を調べ、最新の関連データ、プログラムが格納されている場所を知る。制御部２２は、この情報を外部検索部２８に渡す。外部検索部２８は、与えられた情報に従い、ネットワーク上や、各ホームページから該当するデータの格納場所を探し出し、最新のデータがあればダウンロードする。データがダウンロードされた場合は、古いバージョンのものと置き替える。制御部２２は、データのダウンロード終了、または変更なしの応答を待って、新たな、または既存のデータやプログラムから必要なものを全て選び出し、再構成部２５に渡す。再構成部２５は、プログラムの再構成を行い、外部機器１用のオブジェクトを作り出す。再構成されたオブジェクトは再構成部２５から制御部２２を通じて転送部２３に渡される。転送部２３は、与えられたデータ、プログラムオブジェクトをデータ３２として外部機器１に送信する。外部機器１はデータ３２を受け取り、使用または実行する。なお、この例では格納場所情報９１をホスト機器２側が保持している例を示したが、外部機器１側で格納場所情報９１を保持しておき、通知情報３１とともにホスト機器２へ転送しても構わない。
【０１０６】
このように、格納場所情報９１に従って最新のデータやプログラムを自動検索することによって、常に最新のプログラムによって更新し、常に最新の状態で外部機器１及び付属機器３を動作させることができる。
【０１０７】
図１９は、本発明の第１８の実施の形態を示すブロック図である。図中、図２、図８、図１１、図１４と同様の部分には同じ符号を付してある。１８は計測部、５３は機器使用情報である。外部機器１がホスト機器２と接続されている。外部機器１からは付属機器３が接続されたときに通知情報３１が送られてくる。また、ホスト機器２は通知情報３１に従い、データ、プログラムなどをデータ３２として外部機器１に送信する。
【０１０８】
外部機器１は、計測部１８を有している。計測部１８は、付属機器３−１や付属機器３−２などの付属機器の使用状況を計測する。その他の外部機器１の構成は上述の第１，第７，第１３の実施の形態などと同様であるが、第１３の実施の形態と同様に記憶部１１には接続されている付属機器３−１，３−２などの機器情報６２，６３を管理情報６１（図１９（Ｂ））として保持している。また、ホスト機器２に転送する通知情報３１には、図１９（Ｃ）に示すように、新たに接続された付属機器に関する情報である新規接続機器情報６４とともに。計測部１８による計測結果に基づいた機器使用情報５３が含まれている。ホスト機器２の構成も上述の第１，第１０の実施の形態などと同様である。
【０１０９】
付属機器３−１が予め接続されている状況で、付属機器３−２が外部機器１に接続された場合、通知情報３１がホスト機器２に対し転送される。このとき、付属機器３−１が予め定められた一定時間以上動作していない場合、計測部１８は付属機器３１が非稼動であるとして、記憶部１１に格納されている管理情報６１の付属機器３１に対応する機器情報、例えば機器情報６２に非稼動であることを示しておく。
【０１１０】
外部機器１から通知情報３１がホスト機器２に対し転送されるとき、判断部１３は、管理情報６１から各付属機器の稼動状態を検索する。いま、機器情報６２に付属機器３−１が非稼動であることが記されているとすれば、判断部１３はホスト機器２に転送する通知情報３１に、新たに接続された付属機器３−２の情報である新規接続機器情報６４と、付属機器３−１が非稼動であることを示す機器使用情報５３を転送部１２に渡す。
【０１１１】
ホスト機器２は、外部機器１からの通知情報３１を転送部２３にて受け取る。制御部２２は、転送部２３が受け取った通知情報３１を解釈する。制御部２２は、自らが管理する付属機器の管理情報と、外部機器１から新たに送られてきた通知情報３１を元に、記憶部２１に保持してある関連データ、プログラムを検索し、必要なものから再構成部２５にてオブジェクトを生成しなおす。このとき、非稼動の付属機器（この例では付属機器３−１）に関連するものは選択されない。再構成されたオブジェクトは再構成部２５から制御部２２を通じて転送部２３に渡される。転送部２３は与えられたデータ、プログラムオブジェクトをデータ３２として外部機器１に送信する。外部機器１はデータ３２を受け取り、使用または実行する。
【０１１２】
このようにして、あらかじめ決められた時間、動作していない付属機器についてはその付属機器を動作させるためのプログラムを組み込まずにオブジェクトを再構成するので、外部機器１においては使用するプログラムのみで構成されたプログラムによって常に更新され、メモリの使用を常に最適化することができる。
【０１１３】
なお、機器の管理情報は外部機器１側、ホスト機器２側の双方またはどちらか一方が持っていてもよい。また、通知情報に付加される情報には、全ての付属機器に関するデータが含まれていても、変化した（新たに接続され、あるいは新たに非稼働とされた）付属機器のデータのみが含まれていても構わない。
【０１１４】
図２０は、本発明の第１９の実施の形態を示すブロック図である。図中、図２、図８、図１１、図１４、図１９と同様の部分には同じ符号を付してある。１９は検知部、５４は機器故障情報である。外部機器１が２ホスト機器２と接続されている。外部機器１からは付属機器３が接続されたときに通知情報３１が送られてくる。また、ホスト機器２は通知情報３１に従い、データ、プログラムなどをデータ３２として外部機器１に送信する。
【０１１５】
外部機器１は、検知部１９を有している。検知部１９は、付属機器３−１や付属機器３−２などの付属機器の故障状況を検知する。その他の外部機器１の構成は上述の第１，第７，第１３，第１８の実施の形態などと同様であるが、第１３、第１９の実施の形態と同様に記憶部１１には接続されている付属機器３−１，３−２などの機器情報６２，６３を管理情報６１（図２０（Ｂ））として保持している。また、ホスト機器２に転送する通知情報３１には、図２０（Ｃ）に示すように、新たに接続された付属機器に関する情報である新規接続機器情報６４とともに、検知部１９で故障が検知された付属機器に関する機器故障情報５４が含まれている。ホスト機器２の構成も上述の第１，第１０の実施の形態などと同様である。
【０１１６】
付属機器３−１が予め接続されている状況で、付属機器３−２が外部機器１に接続された場合、通知情報３１がホスト機器２に対して転送される。このとき、付属機器３−１が機能していない場合、検知部１９は付属機器３−１が故障中であるとして、記憶部１１に格納されている管理情報６１の付属機器３−１に対応する機器情報（ここでは機器情報６２）に故障中であることを示しておく。通知情報３１がホスト機器２に対して転送されるとき、判断部１３は、管理情報６１より、各付属機器の稼動状態を検索する。いま、機器情報６２に付属機器３−１が故障中であることが記されているとすると、判断部１３はホスト機器２に転送する通知情報３１に、新たに接続された付属機器３−２の情報である新規接続機器情報６４と、付属機器３−１の故障を示す機器故障情報５４を転送部１２に渡す。
【０１１７】
ホスト機器２は、外部機器１からの通知情報３１を転送部２３にて受け取る。制御部２２は、転送部２３が受け取った通知情報３１を解釈する。制御部２２は、自らが管理する付属機器の管理情報と、外部機器１から新たに送られてきた通知情報３１を元に、記憶部２１に保持してある関連データ、プログラムを検索し、必要なものから再構成部２５にてオブジェクトを再構成する。このとき、故障中の付属機器に関連するものは選択されない。再構成されたオブジェクトは再構成部２５から制御部２２を通じて転送部２３に渡される。転送部２３は、与えられたデータ、プログラムオブジェクトをデータ３２として外部機器１に送信する。外部機器１はデータ３２を受け取り、使用または実行する。
【０１１８】
このようにして、障害の発生した付属機器については、その旨をホスト機器２に伝えて、その付属機器を動作させるためのプログラムを組み込まずにオブジェクトを再構成するので、外部機器１においては常に安定動作が可能なプログラムのみで動作することができる。また、動作可能な付属機器に対応するプログラムのみによって常に更新されるため、メモリの使用を常に最適化することができる。
【０１１９】
なお、付属機器の管理情報は外部機器１側、ホスト機器２側の双方またはどちらか一方が持っていてもよい。また、通知情報３１に付加される情報には、全ての付属機器に関するデータが含まれていても、変化した付属機器（新たに接続された付属機器、及び、新たに障害が発生あるいは障害が復旧した付属機器）のデータのみが含まれていても構わない。また、ここでは新規に接続された付属機器がある場合をトリガーにして故障した機器の情報をホスト側に送っているが、これに限らず、例えば故障が発覚あるいは復旧を検知した時点で行ったり、定期的に行う構成でも構わない。
【０１２０】
図２１は、本発明の第２０の実施の形態を示すブロック図である。図中、図２、図１１と同様の部分には同じ符号を付してある。２９は計測部である。外部機器１がホスト機器２と接続されている。外部機器１からは付属機器３が接続されたときに通知情報３１が送られてくる。また、ホスト機器２は通知情報３１に従い、データ、プログラムなどをデータ３２として外部機器１に送信する。
【０１２１】
ホスト機器２には、計測部２９が設けられている。計測部２９は、一定の時間ごとに制御部２２に通知する機能を有している。そのほかの構成については、上述の第１，第１０の実施の形態と同様である。
【０１２２】
ホスト機器２において計測部２９が一定の時間が過ぎたことを制御部２２に通知する。通知を受けた制御部２２は転送部２３に対し、通知情報３１を送信してくるように命令を与えるデータを送信させる。命令を受けた外部機器１は、現在の付属機器の接続状況を通知情報３１として送り返す。ホスト機器２は、送り返されてきた通知情報３１を元に、必要なら記憶部２１からデータ、プログラムを取り出し、再構成部２５に与え、オブジェクトを作り直す。新たなオブジェクトはデータ３２として転送部２３より外部機器１に送られる。
【０１２３】
このような構成によって、プログラムオブジェクトの再構成及び外部機器１のプログラムの更新を所定の時間毎に行うことができ、外部機器１では常に最新の状態で動作することが可能になる。なお、ここでは、ホスト機器２側が再構成のタイミングを計測しているが、これは外部機器１側で計測してもよい。
【０１２４】
図２２は、本発明の第２１の実施の形態を示すブロック図である。図中、図２、図１０、図１１と同様の部分には同じ符号を付してある。外部機器１にホスト機器２が接続されている。外部機器１には付属機器３が着脱される。なお、外部機器１及びホスト機器２の構成は、上述の第１，第１０の実施の形態と同様である。この例では、外部機器１からホスト機器２に転送される通知情報３１は、図２２（Ｂ）に示すように、付属機器３に関する機器情報５１とともに、付属機器３に対応するデータやプログラムが格納されている場所を示す格納場所情報５２が通知される。
【０１２５】
付属機器３が外部機器１に接続された場合、認識部１４は接続が発生したことを判断部１３に通知する。判断部１３は認識部１４から通知される情報または認識部１４に対して詳細情報を要求して得られる情報を元に、接続された付属機器３を特定する。このとき、付属機器３が格納場所情報５２を持っている場合は、判断部１３にて取得する。付属機器３が格納場所情報５２を持っていない場合は、記憶部１１の中を検索し、過去のプログラムの更新において該当するものがあるか否かを調べる。該当するものがある場合は格納場所情報５２として付加する。判断部１３は、特定した付属機器３に対応する機器情報５１と格納場所情報５２を通知情報３１として加工して転送部１２に渡し、ホスト機器２に対して通知情報３１として転送させる。ホスト機器２は、外部機器１からの通知情報３１を受け取る。ホスト機器２は、受け取った通知情報３１から、必要に応じて格納場所情報５２を取り出し、例えば格納場所情報５２がＵＲＬであればインターネットなどから最新のプログラムのダウンロードし、また格納場所情報５２がファイルロケーションであればそのファイルロケーションからプログラムファイルを取得し、オブジェクトを再構成して、外部機器１に送り返す。
【０１２６】
このようにして、所定の場所から最新の、また最適な、プログラムを外部機器１に転送し、利用することができる。
【０１２７】
図２３は、本発明の第２２の実施の形態を示すブロック図である。図中、図２と同様の部分には同じ符号を付してある。１０１はＳ／Ｗ管理領域である。この第２２の実施の形態から第２８の実施の形態においては、外部機器１から付属機器３が取り外されたときに、外部機器１が自動的に付属機器３に対応するプログラムを削除する例を示している。この第２２の実施の形態はその基本構成を示すものである。なお、外部機器１及びホスト機器２の構成は上述の第１の実施の形態などと同様であるが、外部機器１の記憶部１１には、図２３（Ｂ）、（Ｃ）に示すように、各付属機器３毎にその有効または無効を示すソフトウェア（Ｓ／Ｗとして示す）情報を保持するＳ／Ｗ管理領域１０１が設けられており、これによりプログラムの管理が行われている。
【０１２８】
ホスト機器２に対し、接続、切り離し可能な外部機器１が接続されており、更に、外部機器１には、着脱可能な付属機器３が接続されている。外部機器１は、付属機器３の着脱検知をする機能を持っており、ホスト機器２に対し、必要に応じて付属機器３の着脱状況を通知する。また、現在稼動中、または保持しているデータやプログラムの中から、外された付属機器に関連するものを必要に応じて削除する機能も合わせ持っている。ホスト機器２は、外部機器１からの通知情報３１を元に必要なソフトウェアやその他データなどを準備し、外部機器１に対して転送する。また、外部機器１からの状態通知などを受け、対応する。
【０１２９】
例えば付属機器３が外部機器１から外された場合、認識部１４は取り外しが発生したことを判断部１３に通知する。判断部１３は認識部１４から通知される情報または認識部１４に対して詳細情報を要求して得られる情報を元に、取り外された付属機器３を特定する。判断部１３は、特定した付属機器３の機器情報を記憶部１１に保持し、既に記憶保持しているＳ／Ｗ管理情報１０１を調べる。判断部１３は、Ｓ／Ｗ管理情報１０１から接続されている付属機器や関連するソフトウェア情報を取り出し、一時保持しておいた取り外された付属機器３の機器情報に該当する部分を特定する。そして判断部１３は、特定した部分を無効状態にする（解放する）。例えば、Ｓ／Ｗ管理領域１０１のＳ／Ｗ３という領域が該当部分である場合、図２３（Ｃ）に示すようにＳ／Ｗ３を無効状態とする。これにより、取り外された付属機器３に関する領域を解放する。なお、判断部１３は必要であるなら転送部１２に対して取り外された付属機器３の情報をホスト機器２に対して送らせる。
【０１３０】
このようにして、付属機器が取り外された場合に、不要となったプログラムを自動的に削除し、外部機器１内のプログラムを更新することができる。再び付属機器が接続された場合には、上述の各実施の形態で述べたようにしてホスト機器２からプログラムの転送を受けて、プログラムの更新を行えばよい。
【０１３１】
図２４は、本発明の第２３の実施の形態を示すブロック図である。図中、図２、図２３と同様の部分には同じ符号を付してある。１０２はＳ／Ｗ管理テーブル、１０３は空き管理テーブルである。外部機器１がホスト機器２に接続されている。外部機器１には付属機器３が着脱される。なお、外部機器１及びホスト機器２の構成は上述の第１の実施の形態などと同様であるが、外部機器１の記憶部１１には、図２４（Ｂ）、（Ｃ）に示すようにＳ／Ｗ管理テーブル１０２及び空き管理テーブル１０３が設けられている。Ｓ／Ｗ管理テーブル１０２は、ドライバやその他のプログラムに割り当てる記憶領域を管理するテーブルである。また空き管理テーブル１０３は、未使用の記憶領域を管理するテーブルである。これらのテーブルにより記憶領域の管理が行われている。割り当てられる記憶領域の実体は、例えば図２４（Ｄ）に示すように、各管理テーブルの要素がポインタとして実領域を示しているものとする。
【０１３２】
付属機器３が外部機器１から外された場合、認識部１４は取り外しが発生したことを判断部１３に通知する。判断部１３は認識部１４から通知される情報または認識部１４に対して詳細情報を要求して得られる情報を元に、取り外された付属機器３を特定する。判断部１３は特定した付属機器３の機器情報を記憶部１１に保持し、既に記憶保持しているＳ／Ｗ管理テーブル１０２を調べる。判断部１３は、Ｓ／Ｗ管理テーブル１０２から接続されている付属機器や関連するソフトウェア情報を引き出し、一時的に保持している取り外された付属機器３の機器情報に該当する部分を特定する。判断部１３は、特定した部分を無効状態にする（解放する）。例えば、Ｓ／Ｗ管理テーブル１０２のＳ／Ｗ３という領域が該当部分である場合、図２４（Ｃ）に示すようにＳ／Ｗ３を無効状態とする。更に、判断部１３は、先ほど無効にした部分を、空き管理テーブル１０３に登録し、他の用途に使えるようにする。例えば、空き管理テーブル１０３の非登録領域に、Ｓ／Ｗ管理テーブル１０２に登録されていたＳ／Ｗ３の領域を空き３領域として登録する。これにより、取り外された付属機器３に関する領域を新たな使用可能な空き領域として登録する。なお、判断部１３は必要であるなら転送部１２に対して、取り外された付属機器３の情報を送り、ホスト機器２に対して通知情報を送らせる。
【０１３３】
このようにして、付属機器が取り外された場合に、不要となったプログラムを自動的に削除するとともに、削除したプログラムが存在していた領域を空き領域として他の用途に利用することができる。なお、この実施の形態においても、再び付属機器が接続された場合には、上述の各実施の形態で述べたようにしてホスト機器２からプログラムの転送を受けて、プログラムの更新を行えばよい。
【０１３４】
図２５は、本発明の第２４の実施の形態を示すブロック図である。図中、図２、図２３、図２４と同様の部分には同じ符号を付してある。外部機器１がホスト機器２に接続されている。外部機器１には付属機器３が着脱される。なお、外部機器１及びホスト機器２の構成は上述の第１の実施の形態などと同様であるが、外部機器１の記憶部１１には、第２３の実施の形態と同様に、Ｓ／Ｗ管理テーブル１０２及び空き管理テーブル１０３が設けられている。これらのテーブルにより記憶領域の管理が行われている。割り当てられる記憶領域の実体は、例えば図２５（Ｄ）に示すように、各管理テーブルの要素がポインタとして実領域を示しているものとする。
【０１３５】
付属機器３が外部機器１から外された場合、認識部１４は取り外しが発生したことを判断部１３に通知する。判断部１３は認識部１４から通知される情報または認識部１４に対して詳細情報を要求して得られる情報を元に、取り外された付属機器３を特定する。判断部１３は、特定した付属機器３の機器情報を記憶部１１に保持し、既に記憶保持しているＳ／Ｗ管理テーブル１０２を調べる。判断部１３は、Ｓ／Ｗ管理テーブル１０２から接続されている機器や関連するソフトウェア情報を取り出し、一時的に保持している取り外された付属機器３の機器情報に該当する部分を特定する。そして判断部１３は、特定した部分を無効状態にする（解放する）。例えば、Ｓ／Ｗ管理テーブル１０２のＳ／Ｗ３という領域が該当部分である場合、図２５（Ｃ）に示すようにＳ／Ｗ３が指し示していた領域を無効状態とする。更に、判断部１３は先ほど無効にした部分を、空き管理テーブル１０３に登録し、他の用途に使えるようにする。例えば、空き管理テーブル１０３の非登録領域に、Ｓ／Ｗ管理テーブル１０２でＳ／Ｗ３が指し示していた領域を空き３領域として登録する。このとき、新たに登録される空き領域については、その実領域は特定の値に書き替えられる、例えば図２５（Ｄ）に示すように、新規に空き管理テーブル１０３に登録される領域を示すポインタを「空き領域」とすると、その実体である記憶領域１は、ある特定の「値」によって埋められる（クリアされる）。この後、取り外された付属機器３に関する領域を新たな使用可能な空き領域として登録する。なお、判断部１３は必要であるなら転送部１２に対して、取り外された付属機器３の情報を転送し、ホスト機器２に対して通知情報を送らせる。
【０１３６】
この第２４の実施の形態のように、空き領域として解放される領域については、所定の値によって書き換え、クリアしてから解放することができる。
【０１３７】
図２６は、本発明の第２５の実施の形態を示すブロック図である。図中、図２、図１９，図２３、図２４と同様の部分には同じ符号を付してある。１０４はＳ／Ｗ管理フラグである。外部機器１がホスト機器２に接続されている。外部機器１には付属機器３が着脱される。なお、外部機器１及びホスト機器２の構成は上述の第１の実施の形態などと同様であるが、外部機器１は計測部１８を有している。この計測部１８は、この第２５の実施の形態では、付属機器３が外されてからの時間を計測する。また、外部機器１の記憶部１１には、第２３の実施の形態と同様に、Ｓ／Ｗ管理テーブル１０２が設けられるとともに、Ｓ／Ｗ管理フラグ１０４が設けられている。Ｓ／Ｗ管理フラグ１０４は、それぞれの付属機器３の着脱状態を示すフラグである。これらのテーブル及びフラグにより記憶領域の管理が行われている。
【０１３８】
付属機器３が外部機器１から外された場合、認識部１４は取り外しが発生したことを判断部１３に通知する。判断部１３は、認識部１４から通知される情報または認識部１４に対して詳細情報を要求して得られる情報を元に、取り外された付属機器３を特定する。判断部１３は特定した付属機器３の機器情報を記憶部１１に保持し、Ｓ／Ｗ管理フラグ１０４から該当するフラグを見つけ出してＯＮとする。例えば図２６（Ｂ）に示すように、該当するフラグがフラグ３であった場合、ここをＯＮとする。判断部１３は、計測部１８に対して、取り外された付属機器について外されてからの経過時間の計測開始を指示する。計測部１８は一定時間経過後、判断部１３に対し、時間経過を伝えて停止する。判断部１３は、Ｓ／Ｗ管理フラグ１０４の該当フラグ、例えばフラグ３を図２６（Ｃ）に示すようにＯＦＦとし、他の管理に使えるよう解放する。更に、判断部１３はＳ／Ｗ管理テーブル１０２の使用領域、例えば図２６（Ｄ）に示すＳ／Ｗ３の領域を、図２６（Ｅ）に示すように解放して、他のソフトウェアなどで使用できるようにする。
【０１３９】
計測部１８が計測を終えるまでに、先ほど取り外された付属機器３が再度接続された場合、判断部１３はＳ／Ｗ管理フラグ１０４を図２６（Ｃ）に示すようにＯＦＦにし、更に計測部１８の計測を停止させる。この場合、Ｓ／Ｗ管理テーブル１０２は変更しない。これにより、再接続された付属機器は再起動する。なお、判断部１３は、必要であるなら転送部１２に対して、取り外された付属機器の情報、状態を転送し、ホスト機器２に対して送らせる。
【０１４０】
このように、取り外されてから所定時間が経過しても再挿入されなかった場合に、対応するプログラムを削除して外部機器１の記憶部１１の領域を他の用途で利用することができる。また、取り外されてから所定時間内に付属機器３が再挿入された場合には、そのまま動作させることができる。
【０１４１】
図２７は、本発明の第２６の実施の形態を示すブロック図である。図中、図２、図２３ないし図２６と同様の部分には同じ符号を付してある。外部機器１がホスト機器２に接続されている。外部機器１には付属機器３が着脱される。なお、外部機器１及びホスト機器２の構成は上述の第１の実施の形態などと同様であるが、外部機器１の記憶部１１には、第２５の実施の形態と同様に、Ｓ／Ｗ管理テーブル１０２が設けられるとともに、Ｓ／Ｗ管理フラグ１０４が設けられている。これらのテーブル及びフラグにより記憶領域の管理が行われている。
【０１４２】
付属機器３が外部機器１から外された場合、認識部１４は取り外しが発生したことを判断部１３に通知する。判断部１３は、認識部１４から通知される情報または認識部１４に対して詳細情報を要求して得られる情報を元に、取り外された付属機器３を特定する。判断部１３は、特定した付属機器３の機器情報を記憶部１１に保持し、Ｓ／Ｗ管理フラグ１０４から該当するフラグを見つけ出し、ＯＦＦとする。例えば、該当するフラグがフラグ３であった場合、図２７（Ｂ）に示すように、このフラグ３をＯＦＦとする。判断部１３はここで一旦処理を終える。
【０１４３】
外部機器１に新たに付属機器３が取り付けられた場合、認識部１４が新たな接続を検知し、判断部１３に通知する。判断部１３は、認識部１４から通知された情報、または必要な情報を問いあわせて取得し、接続された付属機器３を特定する。特定された付属機器３が取り外されたものと同じ場合、判断部１３は、Ｓ／Ｗ管理フラグ１０４の該当フラグを再びＯＮに戻す。特定された付属機器３がそれまでに取り外された機器と異なる場合、判断部１３は、Ｓ／Ｗ管理フラグ１０４の該当フラグを登録から抹消し、更にＳ／Ｗ管理テーブル１０２に登録してある関連プログラムも削除し、領域を解放する。例えば、図２７（Ｂ）、（Ｄ）の状態において、接続された付属機器がそれまでに取り外された付属機器３と異なる場合、図２７（Ｃ）に示すように付属機器３に対応するＳ／Ｗ管理フラグ１０４のフラグ３の登録を抹消し、また図２７（Ｅ）に示すように付属機器３に対応するＳ／Ｗ管理テーブル１０２のＳ／Ｗ３も解放する。なお、判断部１３は必要であるならば、転送部１２に対して取り外された付属機器の情報、状態と、新規接続された機器の情報を転送し、ホスト機器２に対して送らせる。
【０１４４】
通常、新たな付属機器が接続された場合に、その付属機器に対応するプログラムが必要になる。そのため、新たな付属機器が接続された時点で、それまでに取り外された付属機器に関するデータやプログラムを削除し、空き領域を確保することができる。また、データやプログラムが削除される前に再挿入された場合には、プログラムの更新を行わずにそのまま動作させることが可能である。
【０１４５】
図２８は、本発明の第２７の実施の形態を示すブロック図である。図中、図２、図２３ないし図２６と同様の部分には同じ符号を付してある。外部機器１がホスト機器２に接続されている。外部機器１には付属機器３が着脱される。なお、外部機器１及びホスト機器２の構成は上述の第１の実施の形態などと同様であるが、第２５、第２６の実施の形態と同様に、外部機器１の記憶部１１には、Ｓ／Ｗ管理テーブル１０２及びＳ／Ｗ管理フラグ１０４が設けられている。これらのテーブル及びフラグにより記憶領域の管理が行われている。
【０１４６】
付属機器３が外部機器１から外された場合、認識部１４は取り外しが発生したことを判断部１３に通知する。判断部１３は、認識部１４から通知される情報または認識部１４に対して詳細情報を要求して得られる情報を元に、取り外された付属機器３を特定する。判断部１３は、特定した付属機器３の機器情報を記憶部１１に保持し、Ｓ／Ｗ管理フラグ１０４から該当するフラグを見つけ出し、図２８（Ｂ）に示すようにＯＦＦとする。
【０１４７】
新たな付属機器が接続されてきた場合、判断部１３はまず、Ｓ／Ｗ管理フラグ１０４とＳ／Ｗ管理テーブル１０２の空き領域を選び、ここを登録済みにする。例えば、図２８（Ｃ）に示すようにＳ／Ｗ管理フラグ１０４の空き領域にフラグ４とし、また図２８（Ｄ）のようにＳ／Ｗ管理テーブル１０２の空き領域に、図２８（Ｅ）に示すようにＳ／Ｗ４として登録する。Ｓ／Ｗ管理フラグ１０４とＳ／Ｗ管理テーブル１０２に空き領域が無かった場合、判断部１３はＳ／Ｗ管理フラグ１０４内でＯＦＦとなっている領域と、これに該当するＳ／Ｗ管理テーブル１０２の領域を新たな登録領域として使用する。なお、判断部１３は必要であるなら転送部１２に対して、取り外された付属機器の機器情報、状態を転送し、ホスト機器２に対して送らせる。
【０１４８】
このような構成によって、新しい付属機器が接続された場合でも、外部機器１内の記憶部１１に新しい付属機器用のプログラムを格納する領域が存在する場合には、取り外された付属機器用のプログラムを削除しないようにすることができる。そのため、取り外されている付属機器が再挿入されたとき、多くの場合にはプログラムの更新を行うことなく、そのまま動作させることができるようになる。
【０１４９】
図２９は、本発明の第２８の実施の形態を示すブロック図である。図中、図２、図４、図２３と同様の部分には同じ符号を付してある。３５は中止命令である。外部機器１がホスト機器２と接続されている。外部機器１からは付属機器３が接続されたときに通知情報３１が送られてくる。また、ホスト機器２は通知情報３１に従い、データ、プログラムなどをデータ３２として外部機器１に送信する。外部機器１及びホスト機器２には、ソフトウェアなどの削除に対して警告を表示する警告部１５及び警告部２４が設けられている。このほかの外部機器１及びホスト機器２の構成は、上述の第１，第２２の実施の形態と同様である。
【０１５０】
付属機器３が外部機器１から外された場合、認識部１４は取り外しが発生したことを判断部１３に通知する。判断部１３は認識部１４から通知される情報または認識部１４に対して詳細情報を要求して得られる情報を元に、取り外された付属機器３を特定する。判断部１３は、警告部１５に対し、関連するソフトウェアなどの削除警告を表示させ、転送部１２に対してホスト機器２へ警告通知を行うように指示する。転送部１２は、通知情報３１をホスト機器２に送る。
【０１５１】
ホスト機器２は、転送部２３にて通知情報３１を受け取る。制御部２２は受け取った情報を解釈し、警告部２４に外部機器１でのソフトウェアなどの削除警告を出させる。この警告に対し、不許可の指示がなされた場合、制御部２２は、転送部２３に対し、中止命令３５を送信させる。転送部２３は中止命令３５を外部機器１に送る。
【０１５２】
外部機器１は、中止命令３５を受けた場合には、ソフトウェアなどの削除処理を中止し、警告部１５の表示を取り消す。中止命令３５以外の命令が返された場合は、警告表示したソフトウェアなどを削除し、警告部１５の表示を取り消す。なお、判断部１３は必要であるならば、転送部１２に対して取り外された付属機器の情報、状態と、新規接続された機器の情報を転送し、ホスト機器２に対して送らせる。また、ここでの警告とその取り消し、継続は、外部機器１、ホスト機器２の双方の協調でも、各機器単体の扱いであっても構わない。
【０１５３】
このように、プログラムを削除する際にユーザに対して警告を発することによって、ユーザの意図によるプログラムの存続あるいは削除を可能にすることができる。
【０１５４】
【発明の効果】
以上の説明から明らかなように、本発明によれば、外部機器に付属機器が接続された時に、外部機器と接続されているホスト機器から、付属機器を動作させるために必要なデバイスドライバやアプリケーションソフトウェアなどのプログラムを外部機器に対して送り、外部機器内のプログラムを自動的に更新することができる。これによって、外部機器に接続して利用する付属機器にはプログラムを搭載しておく必要がないので、付属機器を安価に構成できる。また、付属機器を接続するたびにプログラムの更新を行う必要がなく、ユーザの手間を軽減することができる。また外部機器では不必要なプログラムによりメモリを占有されることもなくなり、メモリを有効に利用することができるようになる。さらに、例えばネットワークなどを介して最新のプログラムをダウンロードできる環境においては、常に最新のプログラムをダウンロードして更新することができる。さらにまた、付属機器が後で開発された場合や、インタフェースが後でバージョンアップするような場合についても、容易に対応することが可能である。
【０１５５】
また、本発明によれば、外部機器に対して転送するプログラムを、ホスト機器側で再構成してから転送することができる。これによって、外部機器において動作速度やメモリ使用量など、最適な形態でのプログラムによって更新することが可能になる。例えば、接続されていない付属機器に対応する不必要なプログラムを削除したプログラムオブジェクトを再構成して、外部機器に転送することができる。また、ソースファイルから外部機器のＣＰＵなどに合わせて再構成（リメイク）することによって、異なるＣＰＵなどを搭載した外部機器に対してもソースファイルを配布するだけで対応することができるようになる。さらに、外部機器のメモリ容量が不足する場合には、圧縮して転送するなど、種々の加工を施したプログラムを外部機器に転送することが可能である。
【０１５６】
さらに本発明によれば、外部機器から付属機器が外された場合に、外された付属機器を動作させていたプログラムを削除して、メモリ領域を有効に活用することができる。この場合、取り外された時点で削除せず、新たに付属機器が接続された場合や、メモリ領域が不足した時点で削除することもでき、その場合には、再挿入時にプログラムが残っていればプログラムの更新を行わずに、すぐに動作させることができる。
【０１５７】
本発明によれば、これらの効果以外にも、発明の実施の形態などで述べたように種々の効果がある。
【図面の簡単な説明】
【図１】  本発明が適用されるシステムの基本構成例を示すブロック図である。
【図２】  本発明の第１の実施の形態を示すブロック図である。
【図３】  本発明の第２の実施の形態を示すブロック図である。
【図４】  本発明の第３の実施の形態を示すブロック図である。
【図５】  本発明の第４の実施の形態を示すブロック図である。
【図６】  本発明の第５の実施の形態を示すブロック図である。
【図７】  本発明の第６の実施の形態を示すブロック図である。
【図８】  本発明の第７の実施の形態を示すブロック図である。
【図９】  本発明の第８の実施の形態を示すブロック図である。
【図１０】  本発明の第９の実施の形態を示すブロック図である。
【図１１】  本発明の第１０の実施の形態を示すブロック図である。
【図１２】  本発明の第１１の実施の形態を示すブロック図である。
【図１３】  本発明の第１２の実施の形態を示すブロック図である。
【図１４】  本発明の第１３の実施の形態を示すブロック図である。
【図１５】  本発明の第１４の実施の形態を示すブロック図である。
【図１６】  本発明の第１５の実施の形態を示すブロック図である。
【図１７】  本発明の第１６の実施の形態を示すブロック図である。
【図１８】  本発明の第１７の実施の形態を示すブロック図である。
【図１９】  本発明の第１８の実施の形態を示すブロック図である。
【図２０】  本発明の第１９の実施の形態を示すブロック図である。
【図２１】  本発明の第２０の実施の形態を示すブロック図である。
【図２２】  本発明の第２１の実施の形態を示すブロック図である。
【図２３】  本発明の第２２の実施の形態を示すブロック図である。
【図２４】  本発明の第２３の実施の形態を示すブロック図である。
【図２５】  本発明の第２４の実施の形態を示すブロック図である。
【図２６】  本発明の第２５の実施の形態を示すブロック図である。
【図２７】  本発明の第２６の実施の形態を示すブロック図である。
【図２８】  本発明の第２７の実施の形態を示すブロック図である。
【図２９】  本発明の第２８の実施の形態を示すブロック図である。
【図３０】  従来のプログラム更新方法の第１の例の説明図である。
【図３１】  従来のプログラム更新方法の第２の例の説明図である。
【図３２】  従来のプログラム更新方法の第３の例の説明図である。
【図３３】  従来のプログラム更新方法の第４の例の説明図である。
【図３４】  従来のプログラム更新方法の第５の例の説明図である。
【図３５】  従来のプログラム更新方法の第６の例の説明図である。
【符号の説明】
１…外部機器、２…ホスト機器、３，３−１，３−２…付属機器、４…外部記憶装置、１１…記憶部、１２…転送部、１３…判断部、１４…認識部、１５…警告部、１６…検索部、１７…設定部、１８…計測部、１９…検知部、２１…記憶部、２２…制御部、２３…転送部、２４…警告部、２５…再構成部、２６…他ＣＰＵ用再構成部、２７…圧縮部、２８…外部検索部、２９…計測部、３１…通知情報、３２…データ、３３…問い合わせ情報、３４…調査手順情報、３５…中止命令、４１…ファイル、４２…ホスト用ドライバ部、４３…外部機器用ソフトウェア部、５１…機器情報、５２…格納場所情報、５３…機器使用情報、５４…機器故障情報、６１…管理情報、６２，６３…機器情報、６４…新規接続機器情報、７１…管理情報、７２，７３…機器情報、８１…優先情報、９１…格納場所情報、１０１…Ｓ／Ｗ管理領域、１０２…Ｓ／Ｗ管理テーブル、１０３…空き管理テーブル、１０４…Ｓ／Ｗ管理フラグ。
【図１】
0004032217.tif 000002
【図２】
0004032217.tif 000003
【図３】
0004032217.tif 000004
【図４】
0004032217.tif 000005
【図５】
0004032217.tif 000006
【図６】
0004032217.tif 000007
【図７】
0004032217.tif 000008
【図８】
0004032217.tif 000009
【図９】
0004032217.tif 000010
【図１０】
0004032217.tif 000011
【図１１】
0004032217.tif 000012
【図１２】
0004032217.tif 000013
【図１３】
0004032217.tif 000014
【図１４】
0004032217.tif 000015
【図１５】
0004032217.tif 000016
【図１６】
0004032217.tif 000017
【図１７】
0004032217.tif 000018
【図１８】
0004032217.tif 000019
【図１９】
0004032217.tif 000020
【図２０】
0004032217.tif 000021
【図２１】
0004032217.tif 000022
【図２２】
0004032217.tif 000023
【図２３】
0004032217.tif 000024
【図２４】
0004032217.tif 000025
【図２５】
0004032217.tif 000026
【図２６】
0004032217.tif 000027
【図２７】
0004032217.tif 000028
【図２８】
0004032217.tif 000029
【図２９】
0004032217.tif 000030
【図３０】
0004032217.tif 000031
【図３１】
0004032217.tif 000032
【図３２】
0004032217.tif 000033
【図３３】
0004032217.tif 000034
【図３４】
0004032217.tif 000035
【図３５】
0004032217.tif 000036