(57)【要約】【課題】  外部接続I/Fを介して受け取った更新データによるプログラムの更新失敗時に破壊したプログラムを即時に元の機能に復旧可能とする。【解決手段】    更新処理の際、外部接続I/Fを介して受け取った更新データから更新対象プログラムオブジェクトを特定し、このオブジェクトを退避機能により予め外部サーバへ退避させる（Ｓ３０１）。更新処理後、処理に失敗した場合、復旧機能によって外部サーバから退避させておいた更新前オブジェクトを受信し、ＲＯＭに書き戻すことにより復旧させる（Ｓ３０３）。更新対象のオブジェクトだけでなく、機器が有する機能の核となるプログラムオブジェクト群を退避させ、復旧させる機能を付加した発明を含む。【選択図】          図４
2005235110.tif 000002
【特許請求の範囲】
【請求項１】
外部接続インタフェースを介してファームウェアの更新データを受け取り、更新データによりプログラムを書き換えることが可能な電子機器であって、受け取った更新データ中の更新対象となるプログラムオブジェクトを特定する手段と、特定されたプログラムオブジェクトを機器内のプログラムオブジェクト格納部から取り出す手段と、取り出したプログラムオブジェクトを外部接続インタフェースを介してサーバに送る手段と、更新処理が成功したか、否かをチェックする手段と、更新処理を失敗した際に外部接続インタフェースを介してサーバから更新前のプログラムオブジェクトを受け取る手段と、受け取ったプログラムオブジェクトを機器内のプログラムオブジェクト格納部へ書き込む手段を備えたことを特徴とする電子機器。
【請求項２】
請求項１に記載された電子機器において、ファームウェアにより実現する機能の核となるプログラムオブジェクト群を設定する手段と、前記核となるプログラムオブジェクト群を外部接続インタフェースを介してサーバに送る手段と、更新処理後にファームウェアに搭載した核となるプログラムオブジェクト群のデータ破壊を検知する手段と、データ破壊が検知されたオブジェクト群のデータとしてサーバにあるオブジェクト群のデータを書き込む手段を備えたことを特徴とする電子機器。
【請求項３】
請求項１又は２に記載された電子機器において、外部接続インタフェースを介して送受信するデータに対するデータ圧縮・伸長手段を備えたことを特徴とする電子機器。
【請求項４】
請求項１乃至３のいずれかに記載された電子機器において、外部接続インタフェースを介して送受信するデータに対するデータ暗号化・復号化手段を備えたことを特徴とする電子機器。
【請求項５】
請求項１乃至４のいずれか記載された電子機器において、サーバへのデータ送信と更新処理を並行動作させる制御手段を備えたことを特徴とする電子機器。
【請求項６】
外部接続インタフェースを介してファームウェアの更新データを受け取り、更新データによりプログラムを書き換えることを可能とした電子機器が有するコンピュータに、外部接続インタフェースを介して受け取った更新データ中の更新対象となるプログラムオブジェクトを特定する手順と、特定されたプログラムオブジェクトを機器内のプログラムオブジェクト格納部から取り出す手順と、取り出したプログラムオブジェクトを外部接続インタフェースを介してサーバに送る手順と、更新処理が成功したか、否かをチェックする手順と、更新処理を失敗した際に外部接続インタフェースを介してサーバから更新前のプログラムオブジェクトを受け取る手順と、受け取ったプログラムオブジェクトを機器内のプログラムオブジェクト格納部へ書き込む手順を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファームウェアにより動作を制御する電子機器に関し、より特定すれば、外部接続インタフェースを介して受け取った更新データによりファームウェアのプログラムの更新処理を可能にした電子機器及び該機器の更新処理に用いるプログラムに関する。
【背景技術】
【０００２】
今日、諸種の電子機器で多機能化が進展し、機能をファームウェアにより実現することが一般的になっている。機器を動作させるファームウェアに用いるプログラムは、電源が供給されなくてもこれらが消えない様なデバイス（例えば、不揮発性のフラッシュＲＯＭ等）内にデータ列として予め格納する方式が、従来から普通に採用されている。  また、電子機器に搭載したファームウェアのプログラムは、機能拡張などの目的でプログラムを変更する必要が生じるが、ＲＯＭに格納している場合には、格納されたデータを書き換えることによって対応している。
このような、電子機器に搭載したＲＯＭ等に格納したデータの書き換えによるプログラム更新処理を迅速、正確かつ容易に行うことを目的とした提案が従来からなされており、下記特許文献１、２を例示することができる。  特許文献１、２は、いずれも、プログラムを書き換えるために外部から入力される更新データには、装置が搭載する機能にとって不要なデータが含まれているので、搭載した機能（モジュール）に応じた更新データを選定して、選定したデータの更新処理を行うＲＯＭ更新処理手順を装備するものである。また、外部からの更新データの入力方式を、特許文献１ではネットワーク経由で行い、特許文献２では、フラッシュカードを更新データのメディアとしたカード入力により行うことを記述している。
【特許文献１】特開2003-182191号公報
【特許文献２】特開2003-223386号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、上記した従来例にも示される、外部から更新データを入力する方式を採用する場合、ネットワーク経由、或いはフラッシュカード入力いずれの場合もデータを受信する過程があり、さらに受信したデータによってＲＯＭ等の不揮発性記憶手段に格納されたデータを書き換える内部の処理過程があるということで、更新処理過程で様々な障害が発生することが考えられ、必ずしも更新処理が適正に行われるとは限らない。特に、更新対象となる元のプログラムを抽出した後に発生した障害で更新処理が失敗し、元のプログラムの破壊や消失によって、プログラムの復旧ができなくなるといった状況が生じることがある。従来、こうした場合への対応を考慮した更新処理を行うことがなく、プログラムの復旧に手間と時間を要していた。
また、上記特許文献１、２は、いずれも、書き換えたデータのチェックをして、書き換えに不備があれば、成功するまで処理を繰り返すような手順を用意しているが、失敗時に破壊や消失したプログラムの復旧については、問題としていない。従って、更新処理失敗時におけるプログラムの復旧の問題は、依然として未解決のままになっている。
本発明は、外部接続インタフェースを介してファームウェアの更新データを受け取り、更新データによりプログラムを書き換えることが可能な電子機器における上記した従来の更新処理において生じる問題に鑑み、これを解決するためになされたもので、その解決課題は、更新処理失敗時に破壊や消失したプログラムを即時に元の機能が利用できる状態に復旧させることを可能にすることにある。
【課題を解決するための手段】
【０００４】
請求項１の発明は、外部接続インタフェースを介してファームウェアの更新データを受け取り、更新データによりプログラムを書き換えることが可能な電子機器であって、受け取った更新データ中の更新対象となるプログラムオブジェクトを特定する手段と、特定されたプログラムオブジェクトを機器内のプログラムオブジェクト格納部から取り出す手段と、取り出したプログラムオブジェクトを外部接続インタフェースを介してサーバに送る手段と、更新処理が成功したか、否かをチェックする手段と、更新処理を失敗した際に外部接続インタフェースを介してサーバから更新前のプログラムオブジェクトを受け取る手段と、受け取ったプログラムオブジェクトを機器内のプログラムオブジェクト格納部へ書き込む手段を備えたことを特徴とする電子機器である。
請求項２の発明は、請求項１に記載された電子機器において、ファームウェアにより実現する機能の核となるプログラムオブジェクト群を設定する手段と、前記核となるプログラムオブジェクト群を外部接続インタフェースを介してサーバに送る手段と、更新処理後にファームウェアに搭載した核となるプログラムオブジェクト群のデータ破壊を検知する手段と、データ破壊が検知されたオブジェクト群のデータとしてサーバにあるオブジェクト群のデータを書き込む手段を備えたことを特徴とするものである。
【０００５】
請求項３の発明は、請求項１乃至３のいずれかに記載された電子機器において、外部接続インタフェースを介して送受信するデータに対するデータ暗号化・復号化手段を備えたことを特徴とするものである。
請求項４の発明は、  請求項１又は２に記載された電子機器において、外部接続インタフェースを介して送受信するデータに対するデータ圧縮・伸長手段を備えたことを特徴とするものである。
請求項５の発明は、  請求項１乃至４のいずれか記載された電子機器において、サーバへのデータ送信と更新処理を並行動作させる制御手段を備えたことを特徴とするものである。
【０００６】
請求項６の発明は、外部接続インタフェースを介してファームウェアの更新データを受け取り、更新データによりプログラムを書き換えることを可能とした電子機器が有するコンピュータに、外部接続インタフェースを介して受け取った更新データ中の更新対象となるプログラムオブジェクトを特定する手順と、特定されたプログラムオブジェクトを機器内のプログラムオブジェクト格納部から取り出す手順と、取り出したプログラムオブジェクトを外部接続インタフェースを介してサーバに送る手順と、更新処理が成功したか、否かをチェックする手順と、更新処理を失敗した際に外部接続インタフェースを介してサーバから更新前のプログラムオブジェクトを受け取る手順と、受け取ったプログラムオブジェクトを機器内のプログラムオブジェクト格納部へ書き込む手順を実行させるためのプログラムである。
【発明の効果】
【０００７】
請求項１，６の発明によると、更新対象となる特定のプログラムオブジェクトを処理の間サーバに退避させ、更新処理に失敗しても、退避させておいたプログラムオブジェクトを書き戻す処理を、更新処理の一環として行うようにしたことにより、即時に元の状態に復することが可能になる。また、復旧（退避）用のデータの格納場所をサーバとし、内部に持つ必要がないので、内部の不揮発性記憶手段の容量が小さくて済む。
また、請求項２の発明によると、退避させるプログラムオブジェクトとして、ファームウェアにより実現する機能の核となるプログラムオブジェクト群を加えたことにより、より完全に目的を遂行することが可能になる。
また、請求項３の発明により、外部に出るデータの機密を保持することが可能になり、請求項４の発明により、外部の資源を効率的に利用することが可能になり、請求項５の発明により、迅速な更新処理が可能になり、これらの機能の実現によって機器のパフォーマンスを向上させることが可能になる。
【発明を実施するための最良の形態】
【０００８】
本発明を添付する図面とともに示す以下の実施形態に基づき説明する。なお、以下には要点となるプログラム更新処理機能、即ち、電子機器に搭載したファームウェアのプログラムを管理する機能の一部として装備する当該機能に関する実施形態を示し、ファームウェアにより実現される特定の電子機器の動作そのものに関しては、公知技術に属することである。
プログラム更新処理機能に関する実施形態として、以下に３つの形態を示す。「実施形態１」には、更新対象となる特定のプログラムオブジェクトの退避、復旧を可能とした更新処理の基本的な実施形態を、「実施形態２」、「実施形態３」には、ファームウェアによる機能の核となるプログラムオブジェクト群の退避を付加した実施形態の異なる例を、さらに「実施形態４」には、退避させるプログラムオブジェクトのデータに対するデータ暗号化・復号化及びデータ圧縮・伸長を付加した実施形態を示す。
【０００９】
「実施形態１」
図1は、本実施形態に係わる電子機器の起動部の概略図であり、プログラム更新処理機能に関連する構成要素を示す。
電子機器における起動部１００は、図１に示すように、ＲＯＭモニタ１１０と、プログラム起動部１２０と、ＳＣＳ（System Control Service）１３０と、ＲＯＭ更新部１４０とから構成される既存の構成部(図中破線で囲まれた部分)と、本例に特有の要素として設けた更新前オブジェクト退避部１６０及び更新前オブジェクト復旧部１５０よりなる。なお、外部接続インタフェースを介してファームウェアの更新データを受け取り、更新データによりプログラムを書き換えることを可能とした電子機器は、既に特開2003-182191号公報（以下、先行例という）に開示されるように公知であり、この先行例に示される起動部(図１中破線で囲まれた部分)を適用することにより、本例を実施し得る。従って、詳細は先行例を参照することとする。
また、先行例では、外部接続Ｉ／Fとしてネットワークインタフェース経由でフラッシュメモリのＲＯＭ更新要求パケットを受信する、としているが、本実施形態では外部接続Ｉ／Fとして、無線を含む諸種のネットワークやUSB、IEEE1284、IEEE1394、光ケーブルなどを用いることが可能である。
【００１０】
ＲＯＭモニタ１１０は、例えば、更新データパケットに記録されたＲＯＭモニタ起動命令を実行することにより起動され、ハードウェアの初期化、コントローラボードの診断、ソフトウェアの初期化、汎用ＯＳの起動などを行う。
プログラム起動部１２０は、汎用ＯＳから呼び出されるものであり、起動モード設定、サービス層の起動、アプリの起動、アプリ起動情報の設定等の機能を実現する。
ＳＣＳ１３０のＲＯＭ更新モードスレッドがプログラム起動部１２０によって起動されると、電子機器で動作するコントロールサービスやアプリを判断して、外部接続Ｉ／F経由で受信した更新データから機器のファームウェア構成に応じた更新データを選定する。また、ＳＣＳ１３０のＲＯＭ更新モードスレッドは、ＲＯＭ更新部１４０を起動して、ＲＯＭ更新部１４０に対して選定した更新データの情報とともにＲＯＭ更新命令を発する。
ＲＯＭ更新部１４０は、ＳＣＳ１３０のＲＯＭ更新モードスレッドにより起動され、ＳＣＳ１３０からＲＯＭ更新命令を受け取って、更新データでフラッシュＲＯＭ等に格納したファームウェアのプログラムを更新するものである。ＲＯＭ更新部１４０は、ＳＣＳ１３０からのＲＯＭ更新命令を解析するＲＯＭ更新命令解読部と、更新先アドレスと解析したＲＯＭ更新命令に基づいてフラッシュＲＯＭのプログラムを更新するＲＯＭ更新処理部と、ＲＯＭ更新中の管理情報をＳＲＡＭへ格納するＳＲＡＭ処理部と、ＲＯＭ更新処理中の進捗をユーザに対し表示する表示制御部とからなる。
【００１１】
更新前オブジェクト退避部１６０及び更新前オブジェクト復旧部１５０の機能を実現するためのオブジェクトは、ＲＯＭ更新部１４０にあっても良いし、ＲＯＭモニタ１１０やプログラム起動部１２０にあっても良い。
更新前オブジェクト退避機能は、更新処理の際、更新対象となるオブジェクトを格納したＲＯＭから抽出し、その元のデータをコピーしてサーバに送信することにより、退避させる動作を行う。
図２は、更新前オブジェクト退避機能による処理を示すフロー図である。図２を参照すると、更新前オブジェクト退避部１６０は指令を受けると、先ず更新データとして受け取ったデータが、電子機器装置内のファームウェアのどのオブジェクトに対応するか、更新対象となるオブジェクトを特定する（ステップＳ１０１）。即ち、更新対象となるオブジェクトがあるか、否かをチェックし、ない場合には（ステップＳ１０１-NO）、更新対象がないので、この処理フローを抜けるが、あれば、退避処理を実行する。オブジェクトを特定するための手段としては、サーバから受け取る更新データ内に予めオブジェクト名を埋め込んでおく方法や、外部接続Ｉ／Fを介して別途、更新対象となるオブジェクトを特定する為のデータを受け取る方法等によりオブジェクト名を得、この名のオブジェクトがファームウェア格納部であるＲＯＭに格納されているか、否かをチェックする。
退避処理を実行する場合には、この名の（更新対象）オブジェクトを電子機器内のファームウェア格納部から抽出し、機器内の作業用ＲＡＭ上にそのコピーデータを生成する（ステップＳ１０２）。
次いで、更新対象となるオブジェクトを退避させるために、コピーを生成したオブジェクトのデータを外部接続Ｉ／F経由で外部のサーバへ送信する（ステップＳ１０３）。更新対象オブジェクトの抽出、サーバへの送信処理を更新対象となるオブジェクトが無くなるまで繰り返し、処理を終える。なお、オブジェクトが複数の場合は、これらのデータをまとめてから送信しても良い。
【００１２】
更新前オブジェクト復旧機能は、更新処理に失敗した場合に、退避させておいた更新対象オブジェクトの元のデータを退避先のサーバから得、そのデータをＲＯＭに書き戻すことにより、更新処理前に復する動作を行う。
図３は、更新前オブジェクト復旧機能による処理を示すフロー図である。図３を参照すると、更新前オブジェクト復旧部１５０は指令を受けると、プログラム更新が成功したか失敗したかを判断する（ステップＳ２０１）。更新処理の成功を判断する方法としては、オブジェクトにＳＵＭ値やＣＲＣ値などを予め埋め込んでおく方法や、一旦電子機器をリブートして、機器の再起動が正常に完了することを確認する方法などを適用することにより実施可能である。
即ち、更新処理が成功した場合には（ステップＳ２０１-YES）、復旧処理の必要がないので、この処理フローを抜けるが、あれば、復旧処理を実行する。
復旧処理を実行する場合には（ステップＳ２０１-NO）、外部接続Ｉ／Fを介して退避させておいた更新対象オブジェクトの元のデータをサーバより受信する（ステップＳ２０２）。
次いで、受信した元のオブジェクトのデータを電子機器内のファームウェア格納部であるＲＯＭに書き戻し、元の形で保存し（ステップＳ２０３）、保存が完了したところで復旧処理を終了する。      
【００１３】
次に、上記した更新前オブジェクト退避部１６０及び更新前オブジェクト復旧部１５０の機能を利用して行うプログラム更新処理についてその例を示す。
図４は、本実施形態のプログラム更新処理のフロー図である。図４を参照すると、更新処理の際に、更新前オブジェクト退避機能により、予めオブジェクトをサーバへ退避させる（ステップＳ３０１）。この退避動作は、図２を参照して上記で説明した処理フローに従う。
次いで、プログラム更新処理を行なう（ステップＳ３０２）。この更新処理は、外部接続インタフェースを介してファームウェアの更新データを受け取り、更新データによりプログラムを書き換える、という処理が可能であれば、特定の処理に限定されるものではなく、どのような処理でも良いが、例えば、先に示した先行例（特開2003-182191号公報）を適用することが可能である。  プログラム更新処理に引き続き、更新前オブジェクト復旧機能により、更新が失敗した場合のリカバリを行なう（ステップＳ３０３）。この復旧動作は、図３を参照して上記で説明した処理フローに従う。
ファームウェア格納部のＲＯＭに元のオブジェクトを格納させ、復旧が済んだところで処理を終了する。
【００１４】
「実施形態２」
本実施形態には、ファームウェアによる機能の核となるプログラムオブジェクト群の退避機能を付加した実施形態を示す。ここでは、退避させるプログラムオブジェクトとして、更新対象のオブジェクトだけではなく、ファームウェアにより実現する機能の核となるプログラムオブジェクト群を加えることにより、復旧をより完全に遂行することを意図するものである。
図５は、本実施形態に係わる電子機器の起動部の概略図であり、プログラム更新処理機能に関連する構成要素を示す。
電子機器における起動部１００は、図５に示すように、本実施形態に特有の要素として設けた核プログラムオブジェクト群退避部１７０及び核プログラムオブジェクト群復旧部１８０を付加した以外は、上記実施形態１の起動部と同一の要素を備える。上記実施形態１の起動部と同一の要素部分は、図５中、破線で囲んだ部分であり、これらの要素については、上記実施形態１（図１、参照）で説明した通りであり、記載を省略する。
【００１５】
核プログラムオブジェクト群退避部１７０及び核プログラムオブジェクト群復旧部１８０の機能を実現するためのオブジェクトは、ＲＯＭ更新部１４０にあっても良いし、ＲＯＭモニタ１１０やプログラム起動部１２０にあっても良い。
核プログラムオブジェクト群退避機能は、更新処理の際、更新対象となるオブジェクトが核プログラムオブジェクト群に属する場合に、プログラムオブジェクトを格納したＲＯＭ等の記憶メディアからその群に属する核プログラムを、更新対象であるか否かを問わず抽出し、更新前の元のデータとして、これらをコピーしてサーバに送信することにより、退避させる動作を行う。なお、ここでは、核プログラムオブジェクト群は予め定められており、プログラム名を記載したテーブル等を用いる方式で用意しておく。
【００１６】
図６は、核プログラムオブジェクト群退避機能による処理を示すフロー図である。図６を参照すると、核プログラムオブジェクト群退避部１７０は指令を受けると、先ず、予め設けられている核プログラムオブジェクト群を定めた収集用テーブルを読み込む（ステップＳ４０１）。
次いで、更新データとして受け取ったデータが、電子機器装置内のファームウェアとして格納された核プログラムオブジェクト群のどの群に属するか、上記収集用テーブルを参照して更新対象となるオブジェクトの属する核プログラムオブジェクト群を特定し、特定した群に属するオブジェクトで退避処理の対象として存在するものを見つけ出す（ステップＳ４０２）。即ち、特定した核プログラムオブジェクト群を示した収集用テーブルを順次検索し、ＲＯＭ等に格納された中に処理対象となるオブジェクトがあるか、否かのチェックを対象となるオブジェクトが無くなるまで行い（ステップＳ４０２-NO）、この処理フローを抜ける。
処理対象となるオブジェクトが見つかれば（ステップＳ４０２-YES）、退避処理を実行する。退避処理を実行する場合には、退避処理の対象となった核プログラムオブジェクトの名称の付いたオブジェクトを電子機器内のファームウェアの格納部から抽出し、機器内の作業用ＲＡＭ上にそのコピーデータを生成する（ステップＳ４０３）。
次いで、対象となったオブジェクトを退避させるために、コピーを生成したオブジェクトのデータを外部接続Ｉ／F経由で外部のサーバへ送信する（ステップＳ４０４）。退避対象オブジェクトの抽出、サーバへの送信処理を対象となるオブジェクトが無くなるまで繰り返し、処理を終える。なお、退避対象オブジェクトのデータをまとめてから送信しても良い。
【００１７】
核プログラムオブジェクト群収集用テーブルについて、以下に例を示す。
図７は、核プログラムオブジェクト群収集用テーブルの１例を説明する概念図を示す。なお、同図では、TEXT文書により、目に見える形式で表しているが、バイナリ形式などでも構わない。
このテーブルは、更新処理の対象となるオブジェクトが核プログラムオブジェクトであるかを判断すること、核プログラムオブジェクト群に属するオブジェクトを定めること、核プログラムオブジェクト群に属するオブジェクトの格納場所やデータ量（サイズ）を示すことを可能にするために機能する。
このために、図７に示すように、核プログラムオブジェクト群に属するオブジェクトをまとめて、オブジェクト名７１、格納場所７２、格納アドレス７３、データサイズ７４をテーブルの記載事項としている。オブジェクト名７１は、プログラム更新時に使用される名前を使用する。格納場所７２は、ファイルシステム上に見える場合は、そのディレクトリからのパスを記述し、ファイルシステム上見えない場合は、何も記載をしない／特殊文字列を使用する。格納アドレス７３は、そのオブジェクトの物理的な配置場所を記述し、デバイス上の格納位置を先頭アドレスで表す。データサイズ７４は、そのオブジェクトのサイズを記述し、データ量で表す。
【００１８】
核プログラムオブジェクト群復旧機能は、更新処理に失敗した場合に、退避させておいた核プログラムオブジェクト群のデータを退避先のサーバから得、そのデータをＲＯＭの元の場所に書き戻すことにより、更新処理前に復する動作を行う。
図８は、核プログラムオブジェクト群復旧機能による処理を示すフロー図である。図７を参照すると、核プログラムオブジェクト群復旧部１８０は指令を受けると、プログラム更新が成功したか失敗したかを判断する（ステップＳ５０１）。更新処理の成功を判断する方法としては、オブジェクトにＳＵＭ値やＣＲＣ値などを予め埋め込んでおく方法や、一旦電子機器をリブートして、機器の再起動が正常に完了することを確認する方法などを適用することにより実施可能である。また、予め退避の対象になった全オブジェクト群のＣＲＣ値を別の場所に保存しておき、チェック時に用いる、という方法でも構わない。
更新処理が成功した場合には（ステップＳ５０１-YES）、復旧処理の必要がないので、この処理フローを抜けるが、あれば、復旧処理を実行する。
復旧処理を実行する場合には（ステップＳ５０１-NO）、外部接続Ｉ／Fを介して退避させておいた核プログラムオブジェクト群のデータをサーバより受信する（ステップＳ５０２）。
この後、受信した核プログラムオブジェクト群のデータを電子機器内のファームウェア格納部であるＲＯＭに書き戻し、元の形で保存する処理を行う。
この復旧処理を行うための手順は、先ず、核プログラムオブジェクト群収集用テーブル（図７、参照）を読み込む（ステップＳ５０３）。次いで、受信した核プログラムオブジェクトが格納されていた元の格納部の領域を収集用テーブルの参照によって取得し、得た格納場所へ受信オブジェクトをコピーする（ステップＳ５０４）。
上記の処理を全オブジェクトに対して行い、その保存が完了したところで（ステップＳ５０５-YES）、復旧処理を終了する。
【００１９】
次に、上記した核プログラムオブジェクト群退避部１７０及び核プログラムオブジェクト群復旧部１８０の機能を利用して行うプログラム更新処理についてその１例を示す。本実施形態では、更新の対象となるオブジェクトが「核プログラムオブジェクトであるか、そうでないか」によって、それぞれ別の手続きを行うような処理形態を採用している。即ち、“核プログラムオブジェクト群退避機能”を用いた処理（図６）か、“更新前オブジェクト退避機能” を用いた処理（図２）かに分けて行う。この処理形態は、核プログラムオブジェクト群と他のプログラムオブジェクトが別の記憶メディアに存在し、他のプログラムオブジェクト更新が核プログラムオブジェクト群に影響しないという場合に好適な形態である。
図９は、本実施形態のプログラム更新処理のフロー図である。図９を参照すると、本例では、更新の対象となるオブジェクトが核プログラムオブジェクトであるか、否かによって、処理を分岐するので、先ず、この判定をする（ステップＳ６０１）。この判定は、上記した核プログラムオブジェクト群収集用テーブル（図７、参照）を用いて、テーブルに載っているオブジェクトであるか否かによって、核プログラムオブジェクトであるか、否かを判定する。
判定の結果、核プログラムオブジェクトであれば、“核プログラムオブジェクト群退避機能”を用いた処理（図６）を行うことによって（ステップＳ６０２）、電子機器内に格納された核プログラムに属するオブジェクト群を外部接続Ｉ／Fより、サーバに送出、退避させる。
他方、判定の結果、核プログラムオブジェクトでなければ、“核”という概念のない、 “更新前オブジェクト退避機能” を用いた処理（図２）を行うことによって（ステップＳ６０３）、更新対象のオブジェクトのみ退避させる。
【００２０】
上記のように、退避機能により、オブジェクトの種類に応じて退避処理を行った後、プログラム更新処理を行なう（ステップＳ６０４）。この更新処理は、外部接続インタフェースを介してファームウェアの更新データを受け取り、更新データによりプログラムを書き換える、という処理が可能であれば、特定の処理に限定されるものではなく、どのような処理でも良いが、例えば、先に示した先行例（特開2003-182191号公報）を適用することが可能である。  プログラム更新処理に引き続き、更新処理を失敗した場合には、オブジェクト復旧機能により、更新を行う前の状態にオブジェクトを戻す復旧処理を行う。本実施形態では、この場合にも、更新の対象となるオブジェクトが核プログラムオブジェクトであるか、否かによって、処理を分岐するので、上記ステップＳ６０１と同様のオブジェクトの判定を行う（ステップＳ６０６）。
判定の結果、核プログラムオブジェクトであれば、“核プログラムオブジェクト復旧機能”を用いた処理（図８）を行うことによって（ステップＳ６０７）、退避させた核プログラムのオブジェクト群を元の格納場所に戻す。
他方、判定の結果、核プログラムオブジェクトでなければ、“更新前オブジェクト復旧機能” を用いた処理（図３）を行うことによって（ステップＳ６０８）、更新対象のオブジェクトを元の格納場所に戻す。
ファームウェア格納部のＲＯＭに元のオブジェクトを格納させ、復旧が済んだところで処理を終了する。
【００２１】
「実施形態３」
本実施形態は、上記した核プログラムオブジェクト群退避部１７０及び核プログラムオブジェクト群復旧部１８０の機能を利用して行うプログラム更新処理の他の例を示す。上記実施形態２では、更新の対象となるオブジェクトが「核プログラムオブジェクトであるか、そうでないか」によって、それぞれ別の手続きを行うような処理形態を採用していたが、本実施形態では、更新の対象となるオブジェクトがどんな種類のものであるかに係わらず、必ず核プログラムオブジェクト群の退避を行なわせるような処理形態にしている。この処理形態は、核プログラムオブジェクト群と他のプログラムオブジェクトが同一記憶メディアに存在する場合など、他のプログラムオブジェクト更新が核プログラムオブジェクトに影響する場合に好適な形態である。
図１０は、本実施形態のプログラム更新処理のフロー図である。図１０を参照すると、本例では、更新の対象となるオブジェクトが核プログラムオブジェクトであるか、否かに係わらず、“更新前オブジェクト退避機能” を用いた処理（図２）を行い（ステップＳ７０１）。さらに、“核プログラムオブジェクト群退避機能”を用いた処理（図６）を行う（ステップＳ７０２）。従って、更新処理を行うたび毎に、機器が核プログラムオブジェクト群収集用テーブル（図７、参照）に載せられているプログラムを搭載していれば、そのオブジェクト群を必ず退避させる。
【００２２】
上記のように、２つの退避機能を用いて退避処理を行った後、プログラム更新処理を行なう（ステップＳ７０３）。  プログラム更新処理を行った後、更新処理に失敗した場合には（ステップＳ７０４-NO）、オブジェクト復旧機能により、更新を行う前の状態にオブジェクトを戻す復旧処理を行う。本実施形態では、この場合、退避時に“更新前オブジェクト退避機能”と“核プログラムオブジェクト群退避機能”を用いた処理を行っているので、これらに対応して、“更新前オブジェクト復旧機能”を用いた処理（図３）を行い（ステップＳ７０５）、さらに“核プログラムオブジェクト復旧機能”を用いた処理（図８）を行う（ステップＳ７０６）ことによって、退避させた更新前オブジェクト及び核プログラムのオブジェクト群を元の格納場所に戻す。
ファームウェア格納部のＲＯＭに元のオブジェクトを格納させ、復旧が済んだところでこの処理フローを終了する。
なお、上記した処理手順（図１０）において、“更新前オブジェクト退避機能”を用いた処理（ステップＳ７０１）、“核プログラムオブジェクト群退避機能”を用いた処理（ステップＳ７０２）及びプログラム更新処理（ステップＳ７０３）は、それぞれ順番を入れ替えたり、並行動作させたりすることが可能であり、こうした変更を行っても、課題を解決するための基本機能に変わりがない。退避処理と更新処理の並行動作は、迅速な処理を可能にする。
また、“更新前オブジェクト復旧機能”を用いた処理（ステップＳ７０５）と“核プログラムオブジェクト復旧機能”を用いた処理（ステップＳ７０６）についても、同様に順番を入れ替えたり、並行動作させたりすることが可能である。
【００２３】
「実施形態４」
本実施形態には、外部に出るデータの機密の保持を可能とし、また、外部の資源の効率的な利用及び迅速な更新処理を意図して、退避させるプログラムオブジェクトのデータに対するデータ暗号化・復号化及びデータ圧縮・伸長機能を付加した実施形態を示す。
図１１は、本実施形態に係わる電子機器の起動部の概略図であり、プログラム更新処理機能に関連する構成要素を示す。
電子機器における起動部１００は、図１１に示すように、本実施形態に特有の要素として設けたデータ暗号化／復号化部２１０及びデータ圧縮／伸長部２２０を付加した以外は、上記実施形態２の起動部（図５参照）と同一の要素を備える。上記実施形態２の起動部と同一の要素部分は、図１１中、破線で囲んだ部分であり、これらの要素については、上記実施形態２（図５参照）で説明した通りであり、記載を省略する。
【００２４】
データ暗号化／復号化部２１０及びデータ圧縮／伸長部２２０の機能を実現するためのプログラムオブジェクトは、此の種の電子機器が搭載する公知の機能を適用することにより実施し得る。また、電子機器が同種の機能を既に搭載している場合には、兼用しても構わない。
データ暗号化／復号化部２１０及びデータ圧縮／伸長部２２０は、外部接続インタフェースを介してサーバへデータを退避させ、退避させたデータを復旧に用いるために戻すという、外部のサーバとやり取りするオブジェクトのデータに対して適用するものであるから、上記した各実施形態の退避処理フロー（図２、図６）及び復旧処理フロー（図３、図８）で実行するサーバへの送信及びサーバからの受信それぞれの処理において、これらの機能を用いた処理が追加される。
また、送受信の処理の際に、暗号化と圧縮を両方行なうようにする方式でもよいし、単独の機能として使用する方式でも良い。暗号化と圧縮を両方行なうようにする方式の場合、処理順を入れ替える等のバリエーションも実施形態に含む。
【図面の簡単な説明】
【００２５】
【図１】本発明の実施形態１に係わる電子機器の起動部の概略図を示す。
【図２】更新前オブジェクト退避機能（実施形態１）による処理を示すフロー図である。
【図３】更新前オブジェクト復旧機能（実施形態１）による処理を示すフロー図である。
【図４】プログラム更新処理（実施形態１）のフロー図である。
【図５】本発明の実施形態２に係わる電子機器の起動部の概略図を示す。
【図６】核プログラムオブジェクト群退避機能（実施形態２）による処理を示すフロー図である。
【図７】核プログラムオブジェクト群収集用テーブルの１例を説明する概念図を示す。
【図８】核プログラムオブジェクト群復旧機能（実施形態２）による処理を示すフロー図である。
【図９】プログラム更新処理（実施形態２）のフロー図である。
【図１０】プログラム更新処理（実施形態３）のフロー図である。
【図１１】本発明の実施形態４に係わる電子機器の起動部の概略図を示す。
【符号の説明】
【００２６】
１１０・・ＲＯＭモニタ、              １２０・・プログラム起動部、
１３０・・ＳＣＳ（System Control Service）、
１４０・・ＲＯＭ更新部、              １５０・・更新前オブジェクト復旧部、
１６０・・更新前オブジェクト退避部、
１７０・・核プログラムオブジェクト群退避部、
１８０・・核プログラムオブジェクト群復旧部、
２１０・・データ暗号化／復号化部、        ２２０・・データ圧縮／伸長部。
【図１】
2005235110.tif 000003
【図２】
2005235110.tif 000004
【図３】
2005235110.tif 000005
【図４】
2005235110.tif 000006
【図５】
2005235110.tif 000007
【図６】
2005235110.tif 000008
【図７】
2005235110.tif 000009
【図８】
2005235110.tif 000010
【図９】
2005235110.tif 000011
【図１０】
2005235110.tif 000012
【図１１】
2005235110.tif 000013