(57)【要約】      （修正有）【課題】他の装置に組み込まれて使用される情報処理装置において、より汎用性の高いソフトウェア更新処理を行えるようにする。【解決手段】FTPデーモン４１は他の装置から複数のソフトウェアをまとめたソフトウェアパッケージを取得し、RAMに保持させる。ソフトウェアパッケージ展開処理部４２は、そのソフトウェアパッケージをRAM上で展開する。シェルスクリプト実行部４３は、ソフトウェアパッケージ展開処理部４２により展開されて得られたファイルに含まれるシェルスクリプトの記述を１行ずつ実行することにより、汎用プラットフォームにとって既知のROMに対する書き込みを、ROM書き込み制御部４４により行わせ、汎用プラットフォームにとって未知のROMに対する書き込みを更新プログラム実行部４５に、ソフトウェアパッケージに含まれる更新プログラムを実行させることにより行わせる。【選択図】図３
2007052518.tif 000002
【特許請求の範囲】
【請求項１】
他の装置に組み込まれて使用され、組み込み先の前記他の装置に対して所定の機能を提供する情報処理装置であって、
前記他の装置が前記情報処理装置以外の構成として有する書き換え可能な記憶媒体であり、前記情報処理装置にとって未知の構成である第１の記憶媒体に書き込む第１のソフトウェアとともに、前記第１のソフトウェアを前記第１の記憶媒体に書き込むためのプログラムを、前記他の装置の外部より取得する取得手段と、
前記取得手段により取得された前記プログラムを実行し、前記第１のソフトウェアを前記第１の記憶媒体に書き込むプログラム実行手段と
を備える情報処理装置。
【請求項２】
ソフトウェアの書き込み手順を指定するシェルスクリプトを実行するシェルスクリプト実行手段をさらに備え、
前記取得手段は、前記第１のソフトウェアおよび前記プログラムとともに、前記シェルスクリプトをさらに取得し、
前記シェルスクリプト実行手段は、前記取得手段により取得された前記シェルスクリプトを実行し、
前記プログラム実行手段は、前記シェルスクリプト実行手段により実行される前記シェルスクリプトの記述に従って、前記プログラムを実行し、前記第１のソフトウェアを前記第１の記憶媒体に書き込む
請求項１に記載の情報処理装置。
【請求項３】
前記情報処理装置にとって既知の構成として、書き換え可能な第２の記憶媒体を有し、
前記第２の記憶媒体にソフトウェアを書き込む書き込み手段をさらに備え、
前記取得手段は、前記第１のソフトウェアおよび前記プログラムとともに、前記第２の記憶媒体に書き込む第２のソフトウェアをさらに取得し、
前記書き込み手段は、前記第２のソフトウェアを前記第２の記憶媒体に書き込む
請求項１に記載の情報処理装置。
【請求項４】
前記第２の記憶媒体の記憶領域は、汎用の機能を提供するソフトウェアを記憶する共通機能用記憶領域と、前記他の装置固有の機能を提供するソフトウェアを記憶する固有機能用記憶領域とが互いに異なる領域として形成される
請求項３に記載の情報処理装置。
【請求項５】
複数のファイルがアーカイブされて１つにまとめられたファイルを展開する展開手段をさらに備え、
前記取得手段は、前記第１のソフトウェアおよび前記プログラムを、アーカイブされてまとめられた１つのソフトウェアパッケージとして取得し、
前記展開手段は、前記取得手段により取得された前記ソフトウェアパッケージを展開し、前記第１のソフトウェアおよび前記プログラムを分離する
請求項１に記載の情報処理装置。
【請求項６】
暗号化されたファイルを所定の方式で復号する復号手段をさらに備え、
前記取得手段は、暗号化された前記第１のソフトウェアおよび前記プログラムを取得し、
前記復号手段は、前記取得手段により取得された、暗号化された前記第１のソフトウェアおよび前記プログラムを所定の方式で復号し、
前記プログラム実行手段は、前記復号手段により復号された前記プログラムを実行し、前記復号手段により復号された前記第１のソフトウェアを前記第１の記憶媒体に書き込む
請求項１に記載の情報処理装置。
【請求項７】
前記取得手段による暗号化されていない平文の前記第１のソフトウェアおよび前記プログラムの取得を許可するかの設定を保持する設定保持手段と、
前記設定保持手段により保持されている前記設定を確認する設定確認手段と
をさらに備える請求項１に記載の情報処理装置。
【請求項８】
他の装置に組み込まれて使用され、組み込み先の前記他の装置に対して所定の機能を提供する情報処理装置の情報処理方法であって、
前記他の装置が前記情報処理装置以外の構成として有する書き換え可能な記憶媒体であり、前記情報処理装置にとって未知の構成である第１の記憶媒体に書き込む第１のソフトウェアとともに、前記第１のソフトウェアを前記第１の記憶媒体に書き込むためのプログラムを、前記他の装置の外部より取得し、
前記取得手段により取得された前記プログラムを実行し、前記第１のソフトウェアを前記第１の記憶媒体に書き込む
ステップを含む情報処理方法
【請求項９】
他の装置に組み込まれて使用され、組み込み先の前記他の装置に対して所定の機能を提供する処理をコンピュータに行わせるプログラムであって、
前記他の装置が前記情報処理装置以外の構成として有する書き換え可能な記憶媒体であり、前記情報処理装置にとって未知の構成である第１の記憶媒体に書き込む第１のソフトウェアとともに、前記第１のソフトウェアを前記第１の記憶媒体に書き込むためのプログラムを、前記他の装置の外部より取得し、
前記取得手段により取得された前記プログラムを実行し、前記第１のソフトウェアを前記第１の記憶媒体に書き込む
ステップを含むプログラム
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置および方法、並びにプログラムに関し、特に、より汎用性の高いソフトウェア更新処理を行うことができるようにする情報処理装置および方法、並びにプログラムに関する。
【背景技術】
【０００２】
従来、製品に組み込まれたソフトウェアを後から更新する方法として、イーサネット（登録商標）などのネットワークを介してファームウェアの転送を行い、転送されたファームウェアをフラッシュメモリやハードディスク等の記録媒体に記録するという方法がある（例えば、特許文献１参照）。
【０００３】
このような場合、ファームウェアの転送を行うプログラムと、ファームウェアを記録媒体に記録するプログラムは、予め（例えば、工場出荷時に）その製品に組み込まれている。
【０００４】
ところで、製品に組み込むソフトウェアの肥大化に伴い、ハードウェアだけでなくソフトウェアの共通化も行われ始めている。例えば、小型のCPU（Central Processing Unit）基板にさまざまな製品で共通利用されるソフトウェアを組み込んだ汎用のプラットフォーム（汎用のハードウェアおよびソフトウェアを含む構成）を共通開発し、これをさまざまな製品に組み込むことによって、各製品のハードウェアやソフトウェアの開発コストの低減や、開発期間の短縮を図る方法がある。
【０００５】
上述したようなソフトウェアを後から更新する方法（ソフトウェア更新機能）は、各装置において求められることであるので、このソフトウェア更新機能に関する開発コストの低減や開発期間の短縮を実現するために、上述した汎用のプラットフォームの共通ソフトウェアとして組み込まれることが望ましい。
【０００６】
【特許文献１】特開２００５−１１２０９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、汎用のプラットフォームが組み込まれる各製品は、一般的に製品固有の記憶媒体（フラッシュメモリ等）を有するが、通常、汎用のプラットフォームは、そのプラットフォームが組み込まれる各製品よりも前に開発される。従って、この製品固有の記憶媒体が、プラットフォームにとって未知の構成である場合がある。
【０００８】
このような場合、汎用のプラットフォームに共通ソフトウェアとして組み込まれたソフトウェア更新プログラムは、上述したような、汎用のプラットフォームにとって未知の、製品固有の記憶媒体を把握していないので、その記憶媒体に記憶されるソフトウェアの更新処理を行うことができない恐れがあった。つまり、このような製品固有の記憶媒体に記憶されるソフトウェアを更新するためには、専用のソフトウェア更新プログラムを製品毎に開発する必要があった。
【０００９】
本発明はこのような状況に鑑みてなされたものであり、より汎用性の高いソフトウェア更新処理を行うことができるようにするものである。
【課題を解決するための手段】
【００１０】
本発明の一側面の情報処理装置は、他の装置に組み込まれて使用され、組み込み先の前記他の装置に対して所定の機能を提供する情報処理装置であって、前記他の装置が前記情報処理装置以外の構成として有する書き換え可能な記憶媒体であり、前記情報処理装置にとって未知の構成である第１の記憶媒体に書き込む第１のソフトウェアとともに、前記第１のソフトウェアを前記第１の記憶媒体に書き込むためのプログラムを、前記他の装置の外部より取得する取得手段と、前記取得手段により取得された前記プログラムを実行し、前記第１のソフトウェアを前記第１の記憶媒体に書き込むプログラム実行手段とを備える。
【００１１】
ソフトウェアの書き込み手順を指定するシェルスクリプトを実行するシェルスクリプト実行手段をさらに備え、前記取得手段は、前記第１のソフトウェアおよび前記プログラムとともに、前記シェルスクリプトをさらに取得し、前記シェルスクリプト実行手段は、前記取得手段により取得された前記シェルスクリプトを実行し、前記プログラム実行手段は、前記シェルスクリプト実行手段により実行される前記シェルスクリプトの記述に従って、前記プログラムを実行し、前記第１のソフトウェアを前記第１の記憶媒体に書き込むようにすることができる。
【００１２】
前記情報処理装置にとって既知の構成として、書き換え可能な第２の記憶媒体を有し、前記第２の記憶媒体にソフトウェアを書き込む書き込み手段をさらに備え、前記取得手段は、前記第１のソフトウェアおよび前記プログラムとともに、前記第２の記憶媒体に書き込む第２のソフトウェアをさらに取得し、前記書き込み手段は、前記第２のソフトウェアを前記第２の記憶媒体に書き込むようにすることができる。
【００１３】
前記第２の記憶媒体の記憶領域は、汎用の機能を提供するソフトウェアを記憶する共通機能用記憶領域と、前記他の装置固有の機能を提供するソフトウェアを記憶する固有機能用記憶領域とが互いに異なる領域として形成されるようにすることができる。
【００１４】
複数のファイルがアーカイブされて１つにまとめられたファイルを展開する展開手段をさらに備え、前記取得手段は、前記第１のソフトウェアおよび前記プログラムを、アーカイブされてまとめられた１つのソフトウェアパッケージとして取得し、前記展開手段は、前記取得手段により取得された前記ソフトウェアパッケージを展開し、前記第１のソフトウェアおよび前記プログラムを分離するようにすることができる。
【００１５】
暗号化されたファイルを所定の方式で復号する復号手段をさらに備え、前記取得手段は、暗号化された前記第１のソフトウェアおよび前記プログラムを取得し、前記復号手段は、前記取得手段により取得された、暗号化された前記第１のソフトウェアおよび前記プログラムを所定の方式で復号し、前記プログラム実行手段は、前記復号手段により復号された前記プログラムを実行し、前記復号手段により復号された前記第１のソフトウェアを前記第１の記憶媒体に書き込むようにすることができる。
【００１６】
前記取得手段による暗号化されていない平文の前記第１のソフトウェアおよび前記プログラムの取得を許可するかの設定を保持する設定保持手段と、前記設定保持手段により保持されている前記設定を確認する設定確認手段とをさらに備えるようにすることができる。
【００１７】
本発明の一側面の情報処理方法は、他の装置に組み込まれて使用され、組み込み先の前記他の装置に対して所定の機能を提供する情報処理装置の情報処理方法であって、前記他の装置が前記情報処理装置以外の構成として有する書き換え可能な記憶媒体であり、前記情報処理装置にとって未知の構成である第１の記憶媒体に書き込む第１のソフトウェアとともに、前記第１のソフトウェアを前記第１の記憶媒体に書き込むためのプログラムを、前記他の装置の外部より取得し、前記取得手段により取得された前記プログラムを実行し、前記第１のソフトウェアを前記第１の記憶媒体に書き込むステップを含む。
【００１８】
本発明の一側面のプログラムは、他の装置に組み込まれて使用され、組み込み先の前記他の装置に対して所定の機能を提供する処理をコンピュータに行わせるプログラムであって、前記他の装置が前記情報処理装置以外の構成として有する書き換え可能な記憶媒体であり、前記情報処理装置にとって未知の構成である第１の記憶媒体に書き込む第１のソフトウェアとともに、前記第１のソフトウェアを前記第１の記憶媒体に書き込むためのプログラムを、前記他の装置の外部より取得し、前記取得手段により取得された前記プログラムを実行し、前記第１のソフトウェアを前記第１の記憶媒体に書き込むステップを含む。
【００１９】
本発明の一側面においては、他の装置が情報処理装置以外の構成として有する書き換え可能な記憶媒体であり、情報処理装置にとって未知の構成である第１の記憶媒体に書き込む第１のソフトウェアとともに、第１のソフトウェアを第１の記憶媒体に書き込むためのプログラムが、他の装置の外部より取得され、その取得されたプログラムが実行されて、第１のソフトウェアが第１の記憶媒体に書き込まれる。
【発明の効果】
【００２０】
本発明の一側面によれば、ソフトウェアを更新することができる。特に、より汎用性の高いソフトウェア更新処理を行うことができる。
【発明を実施するための最良の形態】
【００２１】
以下に本発明の実施の形態を説明するが、本明細書に記載の発明と、発明の実施の形態との対応関係を例示すると、次のようになる。この記載は、請求項に記載されている発明をサポートする実施の形態が本明細書に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、発明に対応するものとして、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その発明に対応するものではないことを意味するものではない。逆に、実施の形態が発明に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その発明以外の発明には対応しないものであることを意味するものでもない。
【００２２】
さらに、この記載は、本明細書に記載されている発明の全てを意味するものではない。換言すれば、この記載は、本明細書に記載されている発明であって、この出願では請求されていない発明の存在、すなわち、将来、分割出願されたり、補正により追加されたりする発明の存在を否定するものではない。
【００２３】
本発明の一側面の情報処理装置は、他の装置（例えば、図４の画像処理装置）に組み込まれて使用され、組み込み先の前記他の装置に対して所定の機能を提供する情報処理装置（例えば、図１の汎用プラットフォーム）であって、前記他の装置が前記情報処理装置以外の構成として有する書き換え可能な記憶媒体であり、前記情報処理装置にとって未知の構成である第１の記憶媒体（例えば、図５のROM）に書き込む第１のソフトウェア（例えば、図６のイメージデータ）とともに、前記第１のソフトウェアを前記第１の記憶媒体に書き込むためのプログラム（例えば、図６の更新プログラム）を、前記他の装置の外部より取得する取得手段（例えば、図３のFTPデーモン）と、前記取得手段により取得された前記プログラムを実行し、前記第１のソフトウェアを前記第１の記憶媒体に書き込むプログラム実行手段（例えば、図３の更新プログラム実行部）とを備える。
【００２４】
ソフトウェアの書き込み手順を指定するシェルスクリプト（例えば、図６のシェルスクリプト）を実行するシェルスクリプト実行手段（例えば、図３のシェルスクリプト実行部）をさらに備え、前記取得手段は、前記第１のソフトウェアおよび前記プログラムとともに、前記シェルスクリプトをさらに取得し、前記シェルスクリプト実行手段は、前記取得手段により取得された前記シェルスクリプトを実行し、前記プログラム実行手段は、前記シェルスクリプト実行手段により実行される前記シェルスクリプトの記述に従って、前記プログラムを実行し、前記第１のソフトウェアを前記第１の記憶媒体に書き込むようにすることができる。
【００２５】
前記情報処理装置にとって既知の構成として、書き換え可能な第２の記憶媒体（例えば、図１のROM）を有し、前記第２の記憶媒体にソフトウェアを書き込む書き込み手段（例えば、図３のROM書き込み制御部）をさらに備え、前記取得手段は、前記第１のソフトウェアおよび前記プログラムとともに、前記第２の記憶媒体に書き込む第２のソフトウェア（例えば、図６のイメージデータ）をさらに取得し、前記書き込み手段は、前記第２のソフトウェアを前記第２の記憶媒体に書き込むようにすることができる。
【００２６】
前記第２の記憶媒体の記憶領域は、汎用の機能を提供するソフトウェアを記憶する共通機能用記憶領域（例えば、図２の製品共通機能格納領域）と、前記他の装置固有の機能を提供するソフトウェアを記憶する固有機能用記憶領域（例えば、図２の製品固有機能格納領域）とが互いに異なる領域として形成されるようにすることができる。
【００２７】
複数のファイルがアーカイブされて１つにまとめられたファイルを展開する展開手段（例えば、図３のソフトウェアパッケージ展開処理部）をさらに備え、前記取得手段は、前記第１のソフトウェアおよび前記プログラムを、アーカイブされてまとめられた１つのソフトウェアパッケージ（例えば、図６のソフトウェアパッケージ）として取得し、前記展開手段は、前記取得手段により取得された前記ソフトウェアパッケージを展開し、前記第１のソフトウェアおよび前記プログラムを分離するようにすることができる。
【００２８】
暗号化されたファイルを所定の方式で復号する復号手段（例えば、図２２の復号処理部）をさらに備え、前記取得手段は、暗号化された前記第１のソフトウェアおよび前記プログラム（例えば、図１９の暗号文ソフトウェアパッケージ）を取得し、前記復号手段は、前記取得手段により取得された、暗号化された前記第１のソフトウェアおよび前記プログラムを所定の方式で復号し、前記プログラム実行手段は、前記復号手段により復号された前記プログラムを実行し、前記復号手段により復号された前記第１のソフトウェアを前記第１の記憶媒体に書き込むようにすることができる。
【００２９】
前記取得手段による暗号化されていない平文の前記第１のソフトウェアおよび前記プログラム（例えば、図１９の平文ソフトウェアパッケージ）の取得を許可するかの設定を保持する設定保持手段（例えば、図２０の設定値格納領域）と、前記設定保持手段により保持されている前記設定を確認する設定確認手段（例えば、図２２の設定確認部）とをさらに備えるようにすることができる。
【００３０】
本発明の一側面の情報処理方法またはプログラムは、他の装置（例えば、図４の画像処理装置）に組み込まれて使用され、組み込み先の前記他の装置に対して所定の機能を提供する情報処理装置（例えば、図１の汎用プラットフォーム）の情報処理方法であって、前記他の装置が前記情報処理装置以外の構成として有する書き換え可能な記憶媒体であり、前記情報処理装置にとって未知の構成である第１の記憶媒体（例えば、図５のROM）に書き込む第１のソフトウェア（例えば、図６のイメージデータ）とともに、前記第１のソフトウェアを前記第１の記憶媒体に書き込むためのプログラム（例えば、図６の更新プログラム）を、前記他の装置の外部より取得し（例えば、図９のステップＳ３１）、前記取得手段により取得された前記プログラムを実行し、前記第１のソフトウェアを前記第１の記憶媒体に書き込む（例えば、図９のステップＳ３５）ステップを含む。
【００３１】
以下、本発明の実施の形態について図を参照して説明する。
【００３２】
図１は、本発明を適用した汎用プラットフォームの一実施形態に係る構成例を示す図である。
【００３３】
図１において、汎用プラットフォーム１は、何らかの製品に組み込まれて使用されるユニットであり、汎用のハードウェアおよびソフトウェアにより構成され、例えば、通信機能や制御機能等、所定の汎用の機能をその製品に提供するプラットフォームである。つまり、この汎用プラットフォーム１が組み込まれた製品は、互いに異なる装置であっても、同じ機能を有する。
【００３４】
図１に示されるように、汎用プラットフォーム１は、バス１０を介して互いに接続されるCPU（Central Processing Unit）１１、ROM（Read Only Memory）１２、RAM（Random Access Memory）１３、およびイーサネット（登録商標）I/F（InterFace）１４を有する。
【００３５】
バス１０は、例えばPCI（Peripheral Components Interconnec）等の所定の規格のバスであり、CPU１１、ROM１２、RAM１３、およびイーサネット（登録商標）I/F１４の間で授受される情報を伝送する。また、バス１０は、汎用プラットフォーム１の外部の構成（汎用プラットフォーム１が組み込まれた製品固有の構成）とも接続され、それらの製品固有の構成と、CPU１１、ROM１２、RAM１３、およびイーサネット（登録商標）I/F１４との間で授受される情報も伝送する。
【００３６】
CPU１１は、例えば、ROM１２に記憶され、RAM１３にロードされたプログラム等を実行することにより、各部の動作を制御する処理部である。ROM１２は、例えばフラッシュメモリ等の不揮発性の書き換え可能な記憶媒体であり、プラットフォームとして構成され、製品共通の機能を提供する共通ソフトウェア（プログラムやデータ等）を記録する。また、ROM１２は、各製品固有の機能を提供する製品固有のソフトウェア（プログラムやデータ等）も記録する。ROM１２の詳細な構成については後述する。
【００３７】
RAM１３は、揮発性の半導体メモリにより構成される揮発性の記憶媒体である。例えば、RAM１３は、CPU１１に制御され、ROM１２より読み出されたソフトウェア（プログラムやデータ等）を一時的に保持し、必要に応じてCPU１１等に保持している情報を提供する。イーサネット（登録商標）I/F１４は、例えばイーサネット（登録商標）やインターネット等のネットワークを介して外部の装置（汎用プラットフォーム１が組み込まれている製品とネットワークを介して接続される装置）と通信処理を行い、その外部の装置と情報の授受を行う。例えば、イーサネット（登録商標）I/F１４は、ROM１２に記憶されているソフトウェアの更新データを外部の装置より取得し、バス１０を介して、それをRAM１３に保持させる。CPU１１は、そのRAM１３に保持されている更新データを用いてROM１２に記録されているソフトウェアを更新する。
【００３８】
なお、この汎用プラットフォーム１は、物理的に１つのユニットとして構成されるようにしてもよいが、複数のユニットとして構成されるようにしてもよく、各部の関係が図１に示される構成と実質的に同等となるのであれば、物理的な構成はどのようなものであってもよい。また、汎用プラットフォーム１が提供する汎用な機能は１つだけでなく、複数であってももちろんよい。
【００３９】
この汎用プラットフォーム１が組み込まれる製品としては、例えば、AV機器、パーソナルコンピュータ、冷蔵庫、若しくは洗濯機等の各種家庭電化製品、放送設備や交通管理システム等を構成する装置、または、自動車や飛行機等に組み込まれる電子制御装置等、様々な電子機器が考えられる。つまり、電子回路により制御や処理を行うものであればどのようなものであってもよい。
【００４０】
この汎用プラットフォーム１の開発方法としては様々な場合が考えられるが、ここでは、本発明に関する説明に限定するために、便宜上、汎用プラットフォーム１の開発においては、組み込み先となる製品の構成や機能（特に製品特有の機能）を特定しないものとする。
【００４１】
つまり、汎用プラットフォーム１のROM１２は、後述するように、組み込み先の製品固有の機能を実現するためのソフトウェアを記憶することも可能であるが、汎用プラットフォーム１の開発時においては、ROM１２にそのようなソフトウェアを記憶する記憶領域を設けるだけで、そのようなソフトウェア自体は開発しないものとする（組み込み先製品固有のソフトウェアはその製品の開発時に開発するものとする）。
【００４２】
汎用プラットフォーム１の組み込み先の製品の開発者は、その製品の開発時において、既に開発済みの汎用プラットフォーム１を用いることにより、その汎用の機能に関する開発を省略することができる。すなわち、製品の開発者は、汎用プラットフォーム１を製品に組み込むことにより、開発コストの低減や開発期間の短縮を実現する。
【００４３】
このとき、組み込み先の製品の開発者は、上述したように開発した製品固有のソフトウェアを製品固有のROMに記憶させることもできるが、ROM１２に記憶させることもできる。
【００４４】
なお、汎用プラットフォーム１の開発者と、汎用プラットフォーム１を組み込む製品の開発者とが同一人物であってももちろんよいが、ここでは説明の便宜上、それらが互いに異なるものとして説明する。
【００４５】
また、図１に示される汎用プラットフォーム１は、汎用の機能として、例えば、イーサネット（登録商標）I/F１４を利用した、組み込み先の製品の外部の装置との通信機能、並びに、ROM１２や組み込み先の製品固有のROMに情報を書き込む機能を提供する。すなわち、汎用プラットフォーム１は、例えば、組み込み先の製品の外部の装置よりソフトウェアを取得し、そのソフトウェアを用いて、各ROMが記憶するソフトウェアを更新することができる。
【００４６】
次に、このような機能を提供するためのソフトウェアが記憶されるROM１２の記憶領域の構成について説明する。図２は、ROM１２の記憶領域の構成例を示す模式図である。
【００４７】
図２において、ROM１２の記憶領域は、オペレーティングシステム格納領域２１、製品共通機能格納領域２２、および製品固有機能格納領域２３を有する。
【００４８】
オペレーティングシステム格納領域２１は、例えばLinux（登録商標）等のオペレーティングシステム（オペレーティングシステムとして構成されるソフトウェア）を格納する。製品共通機能格納領域２２は、汎用プラットフォーム１が組み込まれる、さまざまな製品に共通に利用される（共通の機能を提供する）ソフトウェア（プログラムやデータ等）を格納する。
【００４９】
製品共通機能格納領域２２は、FTP（File Transfer Protocol）サーバプログラム３１、展開処理プログラム３２、シェルスクリプト実行プログラム３３、汎用インストールプログラム３４、および設定値３５を有する。
【００５０】
FTPサーバプログラム３１は、CPU１１により実行されるプログラムである。CPU１１は、このFTPサーバプログラム３１を実行することにより、イーサネット（登録商標）I/F１４を制御し、FTPを利用したファイル転送サービスを提供するFTPサーバ機能を実現する。例えば、CPU１１は、イーサネット（登録商標）I/F１４を制御し、このFTPサーバ機能を利用して、ROM１２に記憶されているソフトウェアを更新するための情報を外部の装置より受け付ける。
【００５１】
展開処理プログラム３２は、CPU１１により実行されるプログラムである。CPU１１は、この展開処理プログラム３２を実行することにより、アーカイブされて１つのファイルにまとめられた複数のソフトウェアを展開（分離）する展開処理機能を実現する。例えば、CPU１１は、イーサネット（登録商標）I/F１４を介して取得した、複数のソフトウェアがアーカイブされて１つのファイルにまとめられたソフトウェアパッケージを、この展開処理機能を用いて展開し、分離された各ソフトウェアを互いに異なるファイルとしてRAM１３に保持させる。
【００５２】
シェルスクリプト実行プログラム３３は、CPU１１により実行されるプログラムである。CPU１１は、このシェルスクリプト実行プログラム３３を実行することにより、RAM１３に保持されているシェルスクリプトの記述を１行ずつ実行するシェルスクリプト実行機能を実現する。例えば、CPU１１は、このシェルスクリプト実行機能を利用して、ソフトウェア更新方法が記載されたシェルスクリプトに従って、ソフトウェア更新プログラムを実行する。
【００５３】
汎用インストールプログラム３４は、CPU１１により実行されるプログラムである。CPU１１は、この汎用インストールプログラム３４を実行することにより、ROM１２に各種ソフトウェアをインストールする、汎用インストール機能を実現する。ROM１２は、汎用プラットフォーム１を構成する記憶媒体であり、汎用プラットフォーム１（汎用プラットフォーム１の開発者）にとって既知である。つまり、汎用インストールプログラム３４は、汎用プラットフォーム１の開発時に既知のROM１２に対する書き込み処理を実現するプログラムである。換言すると、ROM１２が汎用プラットフォーム１の開発時において既知であるので、汎用プラットフォーム１の開発者は、そのROM１２にソフトウェアを書き込む処理を行う汎用インストールプログラム３４を、汎用プラットフォーム１の開発時に作成可能することができる。例えば、CPU１１は、この汎用インストールプログラム３４を実行することにより、ROM１２に記憶されている各種ソフトウェアを更新する。
【００５４】
設定値３５は、各種ソフトウェア（例えば上述したプログラム）の実行時に利用される設定値を含む。この設定値３５は、例えば各種ソフトウェアの実行時等、必要に応じて参照される。
【００５５】
製品固有機能格納領域２３は、その製品のみで利用される（製品特有の機能を提供する）ソフトウェア（プログラムやデータ等）を格納する。従って、汎用プラットフォーム１の開発時に組み込み先となる製品が特定されていない場合、この製品固有機能格納領域２３は空き領域となる。
【００５６】
CPU１１は、これらの領域に格納されるソフトウェア（プログラムやデータ等）をRAM１３にロードし、実行することにより、各種の機能を実現する。次に、このようにプログラムを実行することによりCPU１１が有する機能について説明する。図３は、図２に示される各種プログラムを実行することにより、CPU１１が有する機能を示す機能ブロックの構成例を示す図である。
【００５７】
図３に示されるように、CPU１１は、図２のFTPサーバプログラム３１、展開処理プログラム３２、シェルスクリプト実行プログラム３３、汎用インストールプログラム３４、および設定値３５をRAM１３にロードして実行することにより、機能ブロックである、FTPデーモン４１、ソフトウェアパッケージ展開処理部４２、シェルスクリプト実行部４３、ROM書き込み制御部４４、および更新プログラム実行部４５を有する。
【００５８】
FTPデーモン４１は、CPU１１が、FTPサーバプログラム３１を実行することにより得られる機能を示す機能ブロックである。FTPデーモン４１は、イーサネット（登録商標）I/F１４を制御して、FTPサーバとしての機能を提供する。FTPデーモン４１は、例えば、イーサネット（登録商標）I/F１４を制御し、他の装置からのFTPによるファイル転送を受け付け、複数のソフトウェアをまとめたソフトウェアパッケージを取得する。FTPデーモン４１は、その取得したソフトウェアパッケージをRAM１３に保持させ、処理をソフトウェアパッケージ展開処理部４２に渡す。
【００５９】
ソフトウェアパッケージ展開処理部４２は、CPU１１が、展開処理プログラム３２を実行することにより得られる機能を示す機能ブロックである。ソフトウェアパッケージ展開処理部４２は、アーカイブされて１つのファイル（ソフトウェアパッケージ）にまとめられた複数のソフトウェア（プログラムやデータ等）を展開し、それぞれを互いに異なるファイルとしてRAM１３に保持させる。例えば、ソフトウェアパッケージ展開処理部４２は、FTPデーモン４１が取得したソフトウェアパッケージをRAM１３上で展開し、処理をシェルスクリプト実行部４３に渡す。
【００６０】
シェルスクリプト実行部４３は、CPU１１が、シェルスクリプト実行プログラム３３を実行することにより得られる機能を示す機能ブロックである。シェルスクリプト実行部４３は、RAM１３に保持されているシェルスクリプトの記述を１行ずつ実行する。シェルスクリプトは、複数の処理をまとめて行う(バッチ処理)ときにその手順を示す記述により構成されるファイルであり、オペレーティングシステムのシェルが直接解釈することにより処理される。シェルスクリプト実行部４３は、例えば、ソフトウェアパッケージ展開処理部４２により展開されて得られたファイルに含まれるシェルスクリプトの記述を１行ずつ実行することにより、ROM書き込み制御部４４や更新プログラム実行部４５を必要に応じて制御し、複数の処理を連続して実行させる。
【００６１】
ROM書き込み制御部４４は、CPU１１が、汎用インストールプログラム３４を実行することにより得られる機能を示す機能ブロックである。ROM書き込み制御部４４は、ROM１２へのソフトウェアの書き込みに関する制御処理を行う。例えば、ROM書き込み制御部４４は、シェルスクリプト実行部４３に制御され、ROM１２やRAM１３を制御し、シェルスクリプトの記述により指定されたソフトウェアをROM１２に書き込む。
【００６２】
更新プログラム実行部４５は、CPU１１が実行するオペレーティングシステムの機能を示す機能ブロックである。更新プログラム実行部４５は、RAM１３に保持されている、ソフトウェア更新用のプログラムである更新プログラムを実行する。例えば、更新プログラム実行部４５は、シェルスクリプト実行部４３に制御され、RAM１３に保持されている、シェルスクリプトの記述により指定された更新プログラムを実行し、その更新プログラムに対応するROM（例えば、ROM１３以外の、製品固有のROM）に記憶されている、シェルスクリプトの記述により指定されたソフトウェアを更新する。
【００６３】
この更新プログラムは、汎用プラットフォーム１の組み込み先の製品の開発時に作成されるソフトウェアであり、汎用プラットフォーム１の開発時において未知であった製品固有のROM（汎用プラットフォーム１にとって未知のROM）の情報を有し、その未知のROMに対する書き込みを実現するためのプログラムである。
【００６４】
つまり、汎用プラットフォーム１のCPU１１は、汎用プラットフォーム１にとって既知のROM１３に対する書き込みを、汎用インストールプログラム３４を実行することにより実現し（ROM書き込み制御部４４により行い）、汎用プラットフォーム１にとって未知のROM（製品固有のROM）に対する書き込みを、更新プログラムを実行することにより実現する（更新プログラム実行部４５により行う）。
【００６５】
CPU１１は、ROM１２の各プログラムを実行することにより、上述したような機能を実現する。なお、設定部３５は、上述した各処理を行う際に適宜参照される。また、図３に示されるような各機能ブロックの一部または全部をハードウェアにより実現するようにしてももちろん良い。
【００６６】
次に、上述した汎用プラットフォームの具体的な使用例について説明する。
【００６７】
図４は、汎用プラットフォーム１の具体的な使用例を示す図である。
【００６８】
図４において、汎用プラットフォーム１は、画像処理装置５１に組み込まれている。汎用プラットフォーム１は、ネットワーク５０を介してパーソナルコンピュータ５２および画像提供装置５３に接続されており、画像処理装置５１において、他の装置との通信に関する処理を行う。例えば、汎用プラットフォーム１は、ネットワーク５０を介して画像提供装置５３と通信を行い、画像提供装置５３より、画像処理装置５１において処理する画像データを取得する。
【００６９】
また、例えば、汎用プラットフォーム１は、ネットワーク５０を介してパーソナルコンピュータ５２と通信を行い、パーソナルコンピュータ５２より、画像処理装置５１のソフトウェア（ファームウェア）を更新するためのソフトウェアパッケージを取得し、そのソフトウェアパッケージを用いて画像処理装置５１が有するソフトウェアを更新する処理を行う。
【００７０】
つまり、画像処理装置５１は、ソフトウェア（ファームウェア）の更新が可能であり、その機能は、汎用プラットフォーム１が提供する。このとき、汎用プラットフォーム１は、上述したハードウェアやソフトウェアを有しており、既知のROM１２に記憶されるソフトウェアだけでなく、画像処理装置５１固有のROMに記憶されるソフトウェアも更新することができる。以下において、その具体的な例を説明する。
【００７１】
図５は、画像処理装置５１の内部の構成例を示すブロック図である。
【００７２】
図５に示されるように、画像処理装置５１は、汎用プラットフォーム１の他にデコーダユニット６０を有する。デコーダユニット６０は、画像処理装置５１固有のデコーダ機能を実現するユニットであり、汎用プラットフォーム１が画像提供装置５３より取得する画像データに対してデコード処理を行う。デコーダユニット６０は、FPGA（Field Programmable Gate Array）６１、デコーダ６２、RAM６３、およびROM６４を有している。
【００７３】
FPGA６１は、例えば、ROM６４に記憶されているソフトウェアをRAM６３にロードして実行することにより、デコーダ６２、RAM６３、およびROM６４の各部を制御する等、各種の処理を実現する処理部である。例えば、FPGA６１は、汎用プラットフォーム１のバス１０に接続され、このバス１０を介してイーサネット（登録商標）I/F１４から供給される画像データをデコーダ６２に供給する。
【００７４】
デコーダ６２は、FPGA６１に制御され、所定の方式で符号化された画像データを復号する処理部である。例えば、デコーダ６２は、FPGA６１より供給される画像データを復号し、それを画像処理装置５１の外部に出力する。
【００７５】
RAM６３は、FPGA６１より供給されるソフトウェア（プログラムやデータ）を一時的に保持する。ROM６４は、FPGA６１に制御され、FPGA６１により実行されるプログラムや、その際に必要なデータ等を含む、画像処理装置５１固有の機能を実現するためのソフトウェア（例えば、デコーダ６２におけるデコード処理を制御するプログラム）を記憶する。
【００７６】
汎用プラットフォーム１のCPU１１は、汎用プラットフォーム１のROM１２に記憶されるソフトウェアだけでなく、画像処理装置５１固有のROMであり、汎用プラットフォーム１にとって未知のROM６４に記憶されるソフトウェアの更新も行う。
【００７７】
図６は、パーソナルコンピュータ５２より供給されるソフトウェアパッケージの構成例を示す模式図である。
【００７８】
図６において、ソフトウェアパッケージ７０は、ROM１２およびROM６４に記憶されているソフトウェアを更新するためのプログラムやデータである、シェルスクリプト７１、更新プログラム７２、イメージデータ７３、およびイメージデータ７４がアーカイブされたファイルである。
【００７９】
シェルスクリプト７１（update.sh）は、後述するように、ROM１２およびROM６４の更新手順を示す記述により構成されるスクリプトファイルである。更新プログラム７２（fpga_update）は、画像処理装置５１固有の構成であり、FPGA６１の制御下にあるROM６４に記憶されるソフトウェアを更新する処理を行うプログラムファイルである。イメージデータ７３（app.image）は、ROM１２に書き込まれるソフトウェアである。イメージデータ７４（fpga.image）は、ROM６４に書き込まれるソフトウェアである。
【００８０】
CPU１１は、このような構成のソフトウェアパッケージ７０を取得し、展開して各ファイルを復元すると、シェルスクリプト７１の記述に従って、イメージデータ７３をROM１２に書き込んだり、更新プログラム７２を実行してイメージデータ７４をROM６４に書き込んだりする。
【００８１】
これらのソフトウェアのうち、少なくともシェルスクリプト７１、更新プログラム７２、およびイメージデータ７４は、画像処理装置５１固有の構成であるデコーダユニット６０の構成が既知の状態で（例えば、画像処理装置５１開発後に）作成されたものである。もちろん、イメージデータ７３も、例えば、製品固有機能格納領域２３に記憶される画像処理装置５１固有のソフトウェアであるような場合、画像処理装置５１固有の構成であるデコーダユニット６０の構成が既知である必要がある場合もあるが、いずれにせよ、汎用プラットフォーム１の開発時においては、図２に示されるように、図６に示される構成のソフトウェアパッケージ７０を処理することができるような構成が用意されるのみであり、図６に示されるソフトウェアパッケージ７０（およびソフトウェアパッケージ７０を構成する各ファイル）自体は作成されていない。
【００８２】
つまり、汎用プラットフォーム１は、図６に示されるような、画像処理装置５１固有の構成を踏まえて作成されたソフトウェアパッケージ７０を処理することにより、汎用プラットフォーム１にとって未知のROM６４に対しても書き込み処理を行うことができる。すなわち、汎用プラットフォーム１は、上述した構成を有することにより、より汎用性の高いソフトウェア更新処理を行うことができる。
【００８３】
より具体的には、汎用プラットフォーム１のCPU１１は、予め用意された汎用インストールプログラム３４を用いて、既知のROM１２にイメージデータ７３を書き込むことができるだけでなく、イメージデータ７４とともに供給される更新プログラム７２を実行することにより、汎用プラットフォーム１にとって未知のROM６４にイメージデータ７４を書き込むこともできる。さらに、CPU１１がこれらの処理を連続して実行するための、シェルスクリプト７１が用意されているので、汎用プラットフォーム１は、キーボードやディスプレイ等、ユーザによる操作を受け付けるための構成を必要とせずに、上述した書き込み処理（ソフトウェア更新処理）を実行することができる。
【００８４】
なお、図６において示されるソフトウェアパッケージ７０の構成は、あくまでも一例であり、これ以外のどのような構成であってももちろんよい。例えば、ROM６４のソフトウェアのみを更新する場合、イメージデータ７３は省略することができるし、ROM１２のソフトウェアのみを更新する場合、更新プログラム７２やイメージデータ７４は省略することができる。
【００８５】
ソフトウェア更新の流れをさらに具体的に説明するために、次に、シェルスクリプトの記述の例を説明する。図７は、図６のシェルスクリプト７１（update.sh）の記述例を示す模式図である。
【００８６】
図７において、シェルスクリプト７１の１行目には、「#!/bin/sh」と記述されており、このファイルがシェルスクリプトであることが示されている。シェルスクリプト実行部４３は、このシェルスクリプト７１の各行の記述を上から順に実行する。つまり、CPU１１は、シェルスクリプト実行プログラム３３を実行し、シェルスクリプト７１の記述に従った制御処理を行う。
【００８７】
シェルスクリプト７１の２行目には「update app.image」と記述されており、「update」というプログラムを「app.image」という引数つきで実行せよという指示が示されている。シェルスクリプト実行部４３は、この記述に基づいて、ROM書き込み制御部４４に「update」処理を実行させ、イメージデータ７３（app.image）をROM１２に書き込ませる。つまり、CPU１１は、この記述に基づいて、汎用インストールプログラム３４を実行し、「update」コマンドに対応する処理を実行し、イメージデータ７３（app.image）をROM１２に書き込む。
【００８８】
シェルスクリプト７１の３行目には「fpga_update fpga.image」と記述されており、「fpga_update」、すなわち更新プログラム７２を「fpga.image」という引数つきで実行せよという指示が示されている。シェルスクリプト実行部４３は、この記述に基づいて、更新プログラム実行部４５に「fpga_update」処理を実行させ、イメージデータ７４（fpga.image）をROM６４に書き込ませる。更新プログラム７２には、画像処理装置５１特有の構成であるROM６４にソフトウェアを書き込むための処理が含まれている。つまり、CPU１１は、シェルスクリプト７１の３行目の記述に基づいて、更新プログラム７２（fpga_update）を実行することにより、イメージデータ７４（fpga.image）を、プラットフォーム１の開発時に想定されていない（プラットフォーム１にとって未知である）ROM６４に書き込む。
【００８９】
なお、図７において示されるシェルスクリプト７１の記述は、あくまでも一例であり、これ以外のどのような記述であってももちろんよい。例えば、コマンド名や、引数の種類や記述方式などは、予め定められており、CPU１１が処理可能であるならば、どのようなものであってもよい。
【００９０】
次に、図４に示される構成例について、画像処理装置５１のソフトウェア更新処理の具体的な流れの例を、図８のフローチャートを参照して説明する。
【００９１】
ROM１２およびROM６４に記憶されているソフトウェアを更新するためのソフトウェアパッケージ７０は、図４に示されるように、パーソナルコンピュータ５２よりネットワーク５０を介して供給される。つまり、パーソナルコンピュータ５２は、汎用プラットフォーム１のFTPデーモン４１が提供するFTPサーバ機能を利用して、ソフトウェアパッケージを汎用プラットフォーム１にFTP転送する。FTPデーモン４１は、予め固有のアドレス（例えばIPアドレスやMACアドレス等）を有している。パーソナルコンピュータ５２は、図８のステップＳ１１において、そのアドレスに対してFTP開始コマンド（例えば、「ftp」コマンドや「open」コマンド）を送信し、画像処理装置５１（汎用プラットフォーム１）と、FTPファイル転送処理を行うための通信の接続を確立する。この処理に対して、FTPデーモン４１は、ステップＳ２１の処理を行い、接続を確立するための応答処理を行う。
【００９２】
FTP接続が確立すると、パーソナルコンピュータ５２は、次に、ステップＳ１２において、汎用プラットフォーム１に対して、ファイル転送を要求する転送要求コマンド（例えば「put」コマンド）を送信し、ソフトウェアパッケージ７０を汎用プラットフォーム１に送信（転送）する。
【００９３】
この送信処理に対して、画像処理装置５１は、ステップＳ２２において、インストール処理を実行する。
【００９４】
次に、図８のステップＳ２２において実行されるインストール処理の詳細な流れの例について、図９のフローチャートを参照して説明する。なお、ここでは、図６に示される構成のソフトウェアパッケージ７０を受信する場合について説明する。このとき、ソフトウェアパッケージ７０に含まれるシェルスクリプト７１には、図７に示されるスクリプトが記述されている。
【００９５】
汎用プラットフォーム１のFTPデーモン４１は、パーソナルコンピュータ５２より「put」コマンドを受け取ると、ステップＳ３１において、イーサネット（登録商標）I/F１４を制御し、ソフトウェアパッケージ７０の受信処理を行う。パーソナルコンピュータ５２より供給されたソフトウェアパッケージ７０を取得すると、FTPデーモン４１は、それをRAM１３に保持させ、処理をステップＳ３２に進める。ステップＳ３２において、ソフトウェアパッケージ展開処理部４２は、RAM１３が保持しているソフトウェアパッケージ７０を展開し、シェルスクリプト７１、更新プログラム７２、イメージデータ７３、およびイメージデータ７４を復元し、それらを互いに異なるファイルとしてRAM１３に保持させる。ソフトウェアパッケージを展開させると、ソフトウェアパッケージ展開処理部４２は、処理をステップＳ３３に進める。
【００９６】
シェルスクリプト実行部４３は、ステップＳ３３において、そのRAM１３に保持されたシェルスクリプト７１を実行する。図７に示されるように、シェルスクリプト７１の２行目には、ROM１２への書き込みが指示されている。従って、ROM書き込み制御部４４は、ステップＳ３４において、シェルスクリプト７１の２行目の記述（update app.image）を実行するシェルスクリプト実行部４３に制御され、イメージデータ７３をROM１２に書き込む。また、図７に示されるように、シェルスクリプト７１の３行目には、更新プログラム７２の実行（ROM６４への書き込み）が指示されている。従って、更新プログラム実行部４５は、ステップＳ３５において、シェルスクリプト７１の３行目の記述（fpga_update fpga.image）を実行するシェルスクリプト実行部４３に制御され、イメージデータ７４をFPGA６１のROM６４に書き込む。ステップＳ３５の処理を終了し、シェルスクリプトの実行が終了すると、シェルスクリプト実行部４３は、インストール処理を終了する。
【００９７】
以上のように、汎用プラットフォーム１は、画像処理装置５１のソフトウェアを更新するソフトウェアとともに、そのソフトウェアを、画像処理装置５１の所定のROMに書き込むための更新プログラムを取得し、その更新プログラムを用いてソフトウェアの更新を行うことができるので、汎用プラットフォーム１が組み込まれた製品固有の、汎用プラットフォーム１にとって未知のROMに記憶されるソフトウェアを更新することができる。つまり、汎用プラットフォーム１は、上述した構成を有し、上述した処理を実行することにより、どのような構成の製品に組み込まれても、その製品固有のROMに記憶されるソフトウェアを更新することができる。すなわち、汎用プラットフォーム１は、より汎用性の高いソフトウェア更新処理を行うことができる。
【００９８】
その際、汎用プラットフォーム１は、シェルスクリプト７１を用いて複数の処理を連続して実行するので、ユーザによる指示を必要とせずに、上述した一連の書き込み処理（ソフトウェア更新処理）を連続して実行することができる。従って、ソフトウェア更新処理の流れをシェルスクリプトの記述により制御することができるので、ソフトウェアパッケージの開発も容易になるし、ソフトウェア更新処理を行うユーザも、その更新作業が容易になる。
【００９９】
なお、一般的に、汎用プラットフォーム１は、様々な製品に組み込まれることが想定されるので、例えば組み込み先の製品の製造コストを低減させるためにも、その構成は必要最小限であることが望ましい。汎用プラットフォーム１は、上述したようにシェルスクリプト７１を用いることにより、キーボードやディスプレイ等の、ユーザによる操作を受け付けるための構成が不要になるので、ソフトウェア更新のための構成の増加を抑制することができる。
【０１００】
また、汎用プラットフォーム１は、イーサネット（登録商標）I/F１４を有し、ネットワーク５０を介して組み込み先の製品（画像処理装置５１）以外の装置（パーソナルコンピュータ５２）から上述したソフトウェアパッケージ７１を取得することができるので、組み込み先の製品がキーボードやディスプレイ等の操作受付に関する構成を有していない場合であっても、ソフトウェア更新作業を行うユーザが、例えば、そのソフトウェア更新のためだけにノート型パーソナルコンピュータをその製品にUSB（Universal Serial Bus）ケーブル等を用いて接続し、そのノート型パーソナルコンピュータを操作する等の煩雑な作業を必要とせずに、容易にソフトウェアの更新を行うことができる。
【０１０１】
さらに、汎用プラットフォーム１は、FTPサーバプログラム３１を有しており、それを実行することにより、FTPデーモン４１としての機能も有するので、ソフトウェア更新作業を行うユーザは、ネットワーク５０を介して汎用プラットフォーム１に接続されるパーソナルコンピュータ５２を操作し、上述したソフトウェアパッケージ７０を汎用プラットフォーム１にFTP転送するだけで、容易に画像処理装置５１のソフトウェアの更新を行うことができる。
【０１０２】
なお、図２に示されるように、ROM１２は、製品共通機能格納領域２２と、製品固有機能格納領域２３を互いに異なる領域として有している。つまり、ROM１２は、汎用なソフトウェアと、製品固有のソフトウェアを互いに異なる領域に記憶する。従って、例えば、製品固有のソフトウェアの更新において、更新処理が失敗して終了したり、ソフトウェアの更新先をROM１２とROM６４とで誤ったり等の不具合が発生しても、ソフトウェア更新を行うプログラムが記憶される製品共通機能格納領域２２の情報は破壊されないので、CPU１１は、再度更新処理を行うことができる。つまり、汎用プラットフォーム１は、より確実に正しいソフトウェア更新処理を行うことができる。
【０１０３】
なお、以上においては、ROM（フラッシュメモリ等の不揮発性記憶媒体）に記憶されるソフトウェアを更新する場合について説明したが、これに限らず、例えば、ROMにソフトウェアを新たに書き込む場合や、ROMに記憶されるソフトウェアを削除する場合も同様である。つまり、汎用プラットフォーム１は、組み込み先の製品の構成を踏まえて作成されたプログラムを実行し、汎用プラットフォーム１にとって未知の、組み込み先の製品固有のROMに対するソフトウェアの書き込み、削除、および更新を行うことができる。
【０１０４】
以上においては、汎用プラットフォーム１がFTPを用いてソフトウェアパッケージ７０を取得するように説明したが、このファイル転送のプロトコルは何であってもよい。例えば、HTTP（HyperText Transfer Protocol）を利用してファイル転送が行われるようにしてもよい。
【０１０５】
また、このファイル転送（ソフトウェアパッケージの授受）の際に、汎用プラットフォーム１が、送信元を認証する認証処理を行うようにしてもよい。
【０１０６】
以下に、図１０乃至図１５を参照して、汎用プラットフォーム１が、HTTPを用いてファイル転送を行い、さらに、ファイル転送の際に認証処理を行う例について説明する。
【０１０７】
図１０は、その場合の、ROM１２の記憶領域の構成例を示す模式図である。
【０１０８】
図１０に示されるように、この場合のROM１２も、図２の場合と同様に、オペレーティングシステム格納領域２１、製品共通機能格納領域２２、および、製品固有機能格納領域２３を有し、製品共通機能格納領域２２に、展開処理プログラム３２、シェルスクリプト実行プログラム３３、汎用インストールプログラム３４、および設定値３５を記憶する。ただし、図１０の場合のROM１２は、図２の場合と異なり、製品共通機能格納領域２２に、図２に示されるFTPサーバプログラム３１の代わりに、HTTPサーバプログラム８１および認証処理プログラム８２を記憶する。
【０１０９】
HTTPサーバプログラム８１は、CPU１１により実行されるプログラムである。CPU１１は、このHTTPサーバプログラム８１を実行することにより、イーサネット（登録商標）I/F１４を制御し、HTTPを利用したファイル転送サービスを提供するHTTPサーバ機能を実現する。例えば、CPU１１は、イーサネット（登録商標）I/F１４を制御し、このHTTPサーバ機能を利用して、ファイル転送指示を受け付けるためのGUI（Graphical User Interface）を外部の装置に提供したり、そのGUIに基づいてファイル転送指示が受け付けられて供給されたソフトウェアの更新に関する情報を取得したりする。
【０１１０】
認証処理プログラム８２は、CPU１１により実行されるプログラムである。CPU１１は、この認証処理プログラム８２を実行することにより、外部の装置より供給された情報に基づいた認証処理を行う。例えば、CPU１１は、この認証処理プログラム８２を実行することにより、イーサネット（登録商標）I/F１４を制御し、外部の装置より取得したソフトウェア更新に関する情報とともに取得した認証鍵の認証処理を行い、ソフトウェア更新に関する情報の送信元を認証する。
【０１１１】
つまり、この場合、図１１に示されるように、CPU１１は、図３のFTPデーモン４１の代わりに、HTTPデーモン９１、認証処理部９２、およびソフトウェアパッケージ抽出部９３を有する。なお、この場合もCPU１１は、図３の場合と同様に、ソフトウェアパッケージ展開処理部４２、シェルスクリプト実行部４３、ROM書き込み制御部４４、および更新プログラム実行部４５も有する。
【０１１２】
HTTPデーモン９１は、CPU１１が、HTTPサーバプログラム８１を実行することにより得られる機能を示す機能ブロックである。HTTPデーモン９１は、イーサネット（登録商標）I/F１４を制御して、HTTPサーバとしての機能を提供する。HTTPデーモン９１は、例えば、イーサネット（登録商標）I/F１４を制御し、ファイル転送指示受け付け用のGUIを他の装置に供給したり、他の装置からのHTTPを用いて転送されるソフトウェアパッケージを取得したりする。このとき、ソフトウェアパッケージは、後述するように、テキストデータの中にバイナリデータを包含するような形式のMIME（Multipurpose Internet Mail Extension）マルチパートデータとして転送される。HTTPデーモン９１は、その取得したMIMEマルチパートデータ（ソフトウェアパッケージ）をRAM１３に保持させ、処理を認証処理部９２に渡す。
【０１１３】
認証処理部９２は、CPU１１が、認証処理プログラム８２を実行することにより得られる機能を示す機能ブロックである。認証処理部９２は、イーサネット（登録商標）I/F１４を介して供給された認証鍵について認証処理を行う。認証処理部９２は、例えば、イーサネット（登録商標）I/F１４を制御し、ソフトウェアパッケージとともに供給された認証鍵の認証処理を行うことにより、ソフトウェアパッケージの送信元が正当であるか否かを判定する。認証処理部９２は、その認証鍵が認証された場合、つまり、ソフトウェアパッケージの送信元が正当であると判定した場合、処理をソフトウェアパッケージ抽出部９３に渡す。
【０１１４】
ソフトウェアパッケージ抽出部９３は、CPU１１が、HTTPサーバプログラム８１を実行することにより得られる機能を示す機能ブロックである。ソフトウェアパッケージ抽出部９３は、RAM１３に保持されているMIMEマルチパートデータよりソフトウェアパッケージを抽出する。ソフトウェアパッケージ抽出部９３は、ソフトウェアパッケージを抽出すると、処理をソフトウェアパッケージ展開処理部４２に渡す。
【０１１５】
それ以降の処理は、図３の場合と同様に行われる。なお、ソフトウェアパッケージの構成例や、そのソフトウェアパッケージに含まれるシェルスクリプトの記述例については、図６および図７を参照して説明した場合と同様であるので、それらについての説明は省略する。
【０１１６】
次に、以上のように汎用プラットフォーム１がHTTPを用いてファイル転送を行い、さらに送信元の認証処理を行う場合の、図４に示される例における画像処理装置５１のソフトウェア更新処理の具体的な流れの例を、図１２のフローチャートを参照して説明する。
【０１１７】
この場合、パーソナルコンピュータ５２は、ステップＳ４１において、画像処理装置５１（汎用プラットフォーム１）に対してアップロード画面を要求する。アップロード画面は、ファイル転送指示を受け付けるためのGUI画像であり、そのデータは、例えばHTML（HyperText Markup Language）等の記述により構成される。画像処理装置５１のHTTPデーモン９１は、ステップＳ５１においてこの要求を受け付けると、ステップＳ５２において要求されたアップロード画面のデータをパーソナルコンピュータ５２に供給する。パーソナルコンピュータ５２は、ステップＳ４２においてそのアップロード画面のデータを取得すると、ステップＳ４３において、例えばWEBブラウザ等を用いて、取得したアップロード画面を表示し、例えばユーザからのファイル転送指示入力を受け付ける。
【０１１８】
図１３は、アップロード画面の構成例を示す模式図である。図１３において、アップロード画面１００は、パーソナルコンピュータ５２において、ディスプレイ等に表示されたアップロード画面の構成例を示している。
【０１１９】
図１３に示されるように、アップロード画面１００の上側には、このGUI画面がアップロード画面であることを示す「ソフトウェア  アップデート」というタイトルが表示される。また、アップロード画面１００の、そのタイトルの下には、「ファイルを選んでください」というメッセージとともに、ファイル名入力欄１０１と、参照ボタン１０２が表示される。ファイル名入力欄１０１には、汎用プラットフォーム１に転送するファイルとして指定されたソフトウェアパッケージのファイル名が、そのパスとともに表示される。つまり、ユーザは、キーボードやマウスを操作してこのファイル名入力欄１０１にファイル名をパス名とともに入力するか、若しくは、参照ボタン１０２を操作して他のウィンドウを立ち上げさせ、そのウィンドウに表示されるGUI上で選択的に指定したファイル名およびパス名をファイル名入力欄１０１に表示させることにより、転送するソフトウェアパッケージを指定する。
【０１２０】
さらに、アップロード画面１００のファイル名入力欄１０１の下側には、アップロードボタン１０３が設けられている。ユーザがアップロードボタン１０３を操作することにより、ファイル名入力欄１０１にファイル名およびパス名が表示されているソフトウェアパッケージ（ユーザにより選択されたソフトウェアパッケージ）がアップロード（汎用プラットフォーム１に転送）される。
【０１２１】
また、アップロード画面１００のアップロードボタン１０３より下側に、さらに、インストールキー入力欄１０４乃至インストールキー入力欄１０６が設けられている。インストールキーは、ソフトウェアパッケージのアップロードの際に、汎用プラットフォーム１において認証処理が行われる場合に必要な、ソフトウェアパッケージの送信元を認証するための認証鍵である。
【０１２２】
ユーザは、アップロードボタン１０３を操作する前に、これらのインストールキー入力欄１０４乃至インストールキー入力欄１０６のいずれかにこのインストールキーを１つの入力欄に１つずつ必要な数だけ入力する。つまり、入力するインストールキーの数は、０個であってもよいし、１つであってもよいし、複数であっても良い。ユーザが、インストールキーを入力した後、アップロードボタン１０３を操作すると、パーソナルコンピュータ５１は、ソフトウェアパッケージとともに、そのインストールキーもMIMEマルチパートデータに含めて、汎用プラットフォーム１にアップロード（転送）する。
【０１２３】
以上のような構成のアップロード画面１００において、ファイル転送指示を受け付けると、パーソナルコンピュータ５２は、指定されたソフトウェアパッケージを、バイナリデータとしてテキストデータに埋め込み、MIMEマルチパートデータとして画像処理装置５１に送信（転送）する。
【０１２４】
図１４は、MIMEマルチパートデータの構成例を示す模式図である。図１４に示されるように、MIMEマルチパートデータ１１１は、テキストデータの間の「（バイナリデータ）」の記載の部分にバイナリデータとしてソフトウェアパッケージやインストールキーが埋め込まれている。なお、「（バイナリデータ）」の記述は、バイナリデータであるソフトウェアパッケージやインストールキーの埋め込み位置を示すものであり、実際には存在しない。
【０１２５】
これに対して、画像処理装置５１は、ステップＳ５３においてインストール処理を行い、このようなMIMEマルチパートデータ１１１を取得する。
【０１２６】
次に、図１２のステップＳ５３において実行されるインストール処理の詳細な流れの例について、図１５のフローチャートを参照して説明する。なお、ここでは、図６に示される構成のソフトウェアパッケージ７０やインストールキーを含むMIMEマルチパートデータ１１１を受信する場合について説明する。このとき、ソフトウェアパッケージ７０に含まれるシェルスクリプト７１には、図７に示されるスクリプトが記述されている。
【０１２７】
汎用プラットフォーム１のHTTPデーモン９１は、ステップＳ６１において、イーサネット（登録商標）I/F１４を制御し、MIMEマルチパートデータ１１１の受信処理を行う。パーソナルコンピュータ５２より供給されたMIMEマルチパートデータ１１１を取得すると、HTTPデーモン９１は、それをRAM１３に保持させ、処理をステップＳ６２に進める。ステップＳ６２において、認証処理部９２は、MIMEマルチパートデータ１１１よりインストールキーを抽出し、その抽出したインストールキーを用いて認証処理を行う。インストールキーが認証されると、ソフトウェアパッケージ抽出部９３は、MIMEマルチパートデータ１１１よりソフトウェアパッケージを抽出し、それをRAM１３に保持させる。
【０１２８】
ソフトウェアパッケージが抽出された、それ以降の、ステップＳ６４乃至ステップＳ６７の処理は、図９のフローチャートのステップＳ３２乃至ステップＳ３５の処理と同様に実行させるので、それらの説明を省略する。
【０１２９】
以上のように、汎用プラットフォーム１は、HTTPを用いてソフトウェアパッケージを取得するようにすることもできる。このようにすることにより、パーソナルコンピュータ５２のユーザは、FTPコマンドを知らなくても、容易にソフトウェアパッケージを汎用プラットフォーム１にアップロードすることができる。
【０１３０】
また、汎用プラットフォーム１は、ソフトウェアパッケージのアップロードの際に、インストールキーを用いてソフトウェアパッケージの送信元の認証処理を行うことができる。従って、汎用プラットフォーム１は、不正なソフトウェア更新を抑制し、より安全なソフトウェア更新処理を行うようにすることができる。
【０１３１】
なお、汎用プラットフォーム１が組み込まれる製品の、製品固有の構成は、図５に示される例のデコーダユニット６０以外であってももちろんよく、どのようなものであってもよい。
【０１３２】
図１６は、汎用プラットフォーム１の組み込み先の製品固有の構成の他の例を示すブロック図である。
【０１３３】
図１６において、汎用プラットフォーム１は、バス１０により、制御ユニット１２１に接続されている。制御ユニット１２１は、専用のバス１３０、バス１３０を介して互いに接続されるCPU１３１、ROM１３２、およびRAM１３３、並びに、バス１０とバス１３０との中継処理を行うバスブリッジ１３４を有している。
【０１３４】
CPU１３１は、バス１３０を介してROM１３２やRAM１３３を制御し、図示せぬ他の構成を制御する制御処理等を実行する。ROM１３２は、フラッシュメモリ等の書き換え可能な不揮発性の記憶媒体により構成され、CPU１３１において実行する装置固有のソフトウェアを記憶する。RAM１３３は、CPU１３１がソフトウェアを実行する際に、そのソフトウェアを一時的に保持する。
【０１３５】
この場合も、CPU１１は、ソフトウェア更新処理を、上述した場合と同様に実行する。従って、この場合のソフトウェアパッケージ１４０は、図１７に示されるように、図６の場合と同様に、シェルスクリプト１４１（update.sh）、更新プログラム１４２（app2_update）、イメージデータ７３（app.image）、およびイメージデータ１４４（app2.image）を有する。これらの各ファイルは、図６に示される各ファイルと内容が異なるだけで、基本的に同種のソフトウェアである。従って、図１７に示されるソフトウェアパッケージ１４０の構成は、図６のソフトウェアパッケージ７０の構成と同様である。
【０１３６】
つまり、ソフトウェアパッケージの開発者は、ソフトウェアパッケージに含まれる各ソフトウェアを、汎用プラットフォーム１の組み込み先の製品の構成に応じて変更するだけで、どのような製品に対しても基本的に同様に開発することができる。
【０１３７】
図１８は、シェルスクリプト１４１の記述例を示す模式図である。図１８に示される例においては、図７に示される例と比較して、汎用プラットフォーム１の組み込み先の製品固有のROMに対する書き込み処理を指示している３行目記述のみが異なっている。このように、ソフトウェアパッケージの開発者は、汎用プラットフォーム１の組み込み先の製品の構成に応じてシェルスクリプトの記述を更新することにより、容易に、ソフトウェアパッケージの各ソフトウェアを製品の構成に対応させ、イメージデータを目的のROMに書き込むことができるようにすることができる。すなわち、汎用プラットフォーム１は、より汎用性の高いソフトウェア更新処理を提供することができる。
【０１３８】
なお、以上においては、ROM１２が、各プログラムで使用される設定値３５をROM１２の製品共通機能格納領域２２に記憶するように説明したが、更新頻度の高い設定値３５をオペレーティングシステム格納領域２１、製品共通機能格納領域２２、および製品固有機能格納領域２２以外の領域に記憶するようにしてもよい。このように記憶することにより、ROM１２は、設定値３５の更新の失敗による他のプログラムの破壊を抑制することができる。
【０１３９】
また、以上においては、図１９Ａに示されるように、パーソナルコンピュータ５２から、画像処理装置５１の汎用プラットフォーム１に、ネットワーク５０を介して、平文のソフトウェアパッケージである平文ソフトウェアパッケージ１５１（XXX.tar.gz）が転送されるように説明したが、このソフトウェアパッケージ１５１が暗号化されていてもよい。
【０１４０】
また、その場合、汎用ぶらっとフォーム１が、図１９Ｂに示されるように、暗号化されたソフトウェアパッケージである暗号文ソフトウェアパッケージ１５２（YYY.elp）と平文ソフトウェアパッケージ１５１の両方を受信することができるモードと、暗号文ソフトウェアパッケージ１５２のみ受信することができるモードの２つのモードを有するようにし、いずれか一方のモードでソフトウェア更新処理を行うようにしてもよい。
【０１４１】
なお、図１９において、暗号文ソフトウェアパッケージ１５２（YYY.elp）は、平文ソフトウェアパッケージ１５１（XXX.tar.gz）を、例えばDES（Data Encryption Standard）等の所定の方式で暗号化したものである。
【０１４２】
図２０は、この場合のROM１２の記憶領域の構成例を示す模式図である。ROM１２は、オペレーティングシステム格納領域２１、製品共通機能格納領域２２、および製品固有機能格納領域２２以外に、設定値格納領域１６１を有している。
【０１４３】
設定値格納領域１６１は、各種ソフトウェアの実行時等に参照される各種の設定値を保持する記憶領域である。このように更新頻度の高い設定値の記憶領域が他の情報の記憶領域と区別されていることにより、汎用プラットフォーム１は、設定値の更新時における他のソフトウェアの破壊を抑制するなど、ROM１２の安全性を向上させることができる。
【０１４４】
また、上述したように暗号文ソフトウェアパッケージ１５２を処理することができるように、ROM１２の製品共通機能格納領域２２には、図２に示されるFTPサーバプログラム３１乃至汎用インストールプログラム３４の他に、復号処理プログラム１７１および設定確認プログラム１７２をさらに記憶している。
【０１４５】
復号処理プログラム１７１は、CPU１１により実行されるプログラムである。CPU１１は、この復号処理プログラム１７１を実行することにより、所定の方式で暗号化されたソフトウェアを復号し、平文のソフトウェアを得る復号処理機能を実現する。例えば、CPU１１は、イーサネット（登録商標）I/F１４を介して取得した、暗号文ソフトウェアパッケージ１５２を、この復号処理機能を用いて復号し、暗号化される前の平文ソフトウェアパッケージ１５１を復元する。なお、この暗号化処理および復号処理は、所定の秘密鍵を用いて行うものとし、汎用プラットフォーム１は、この暗号化処理に用いられた秘密鍵、または暗号化処理に用いられた秘密鍵に対応する復号処理用の秘密鍵を予め有している。例えば、復号処理プログラム１７１にこの秘密鍵が予め埋め込まれており、CPU１１は、復号処理プログラム１７１を実行する際に、この秘密鍵を抽出して使用することができるようになされている。
【０１４６】
設定確認プログラム１７２は、CPU１１により実行されるプログラムである。CPU１１は、この設定確認プログラム１７２を実行することにより、設定値格納領域１６１に格納される設定値を確認する設定確認機能を実現する。例えば、CPU１１は、設定値格納領域１６１を参照し、平文ソフトウェアパッケージ１５１を受け付けるか否かの設定を確認する。
【０１４７】
図２１は、設定値格納領域１６１に格納される設定値の例を示す模式図である。図２１において設定値１８１は、汎用プラットフォーム１によるソフトウェアパッケージの取得に関する設定の値であり、１行目の記述「MAC Address = 00:11:22:33:44:55」は、汎用プラットフォーム１のイーサネット（登録商標）I/F１４のMACアドレスが「00:11:22:33:44:55」であることを示しており、２行目の記述「IP Address = 192.168.0.1」は、イーサネット（登録商標）I/F１４（FTPデーモン４１）のIPアドレスが「192.168.0.1」であることを示している。
【０１４８】
また、３行目の記述「shipping = no」は、この汎用プラットフォーム１の状態が、一般に販売される「出荷」状態ではないことを示している。開発後の汎用プラットフォーム１は、組み込み先の製品の開発用に用いられる開発向けの状態と、その汎用プラットフォーム１が組み込まれた製品が一般に販売される販売向けの状態とがある。つまり、汎用プラットフォーム１自体が開発済みであっても、その汎用プラットフォーム１の組み込み先の製品が開発中である場合と、開発済みで販売中である場合との２つの場合が考えられる。
【０１４９】
例えば、組み込み先の製品が開発済みであり、販売（出荷）するために汎用プラットフォーム１を組み込む場合、汎用プラットフォーム１は、平文ソフトウェアパッケージ１５１を拒否し、暗号文ソフトウェアパッケージ１５２のみを受け付けるようにすれば、例えばエンドユーザ等の第３者による不正なソフトウェアパッケージの作成を抑制することができるだけでなく、さらに、第３者が作成した不正なフトウェアパッケージを拒否することができるので、第３者による不正なハッキングを防止することができ、より安全にソフトウェア更新を行うことができる。
【０１５０】
しかしながら、組み込み先の製品の開発時において、このように暗号文ソフトウェアパッケージ１５２のみを受け付けるようにすると、ソフトウェアパッケージを用いて組み込み先の製品のソフトウェア（ファームウェア）を更新する度に、暗号文ソフトウェアパッケージ１５２を用意しなければならず、その更新処理に煩雑な作業を伴うだけでなく、暗号文ソフトウェアパッケージ１５２は、ユーザがこのファイルを直接参照しても内容を確認することができないので、ソフトウェアパッケージの管理が困難になる恐れがある。従って、組み込み先の製品の開発時においては、汎用プラットフォーム１は、平文ソフトウェアパッケージ１５１および暗号文ソフトウェアパッケージ１５２の両方を受け付けることができるようにすることにより、組み込み先の製品の開発コストの低減や開発期間の短縮を実現することができる。
【０１５１】
図２１の設定値１８１の「shipping」は、このような２つの状態を区別するための設定である。なお、図２１において、設定値１８１の３行目の記述「shipping = no」は、組み込み先の製品が開発中であり、汎用プラットフォーム１の状態が、一般に販売される「出荷」状態ではないことを示している。
【０１５２】
この場合の、CPU１１の機能ブロックの構成例を図２２に示す。
【０１５３】
図２２に示されるように、CPU１１は、図２０に示される各プログラムをRAM１３にロードして実行することにより、図３に示される機能ブロックの他に、復号処理部１９１および設定確認部１９２を有する。
【０１５４】
復号処理部１９１は、CPU１１が、復号処理プログラム１７１を実行することにより得られる機能を示す機能ブロックである。復号処理部１９１は、暗号化されたソフトウェアを所定の方式で復号する復号機能を提供する。復号処理部１９１は、例えば、FTPデーモン４１により取得された暗号文ソフトウェアパッケージ１５２を、所定の秘密鍵を用いて復号し、平文ソフトウェアパッケージ１５１を取得する。復号処理部１９１は、その取得した平文ソフトウェアパッケージ１５１をRAM１３に保持させ、処理をソフトウェアパッケージ展開部４２に渡す。
【０１５５】
また、復号処理部１９１は、FTPデーモン４１が取得したソフトウェアパッケージが平文ソフトウェアパッケージ１５１である場合、復号処理を行わずに、処理を設定確認部１９２に渡す。
【０１５６】
設定確認部１９２は、CPU１１が、設定確認プログラム１７２を実行することにより得られる機能を示す機能ブロックである。設定確認部１９２は、ROM１２の設定値格納領域１６１に格納される設定値１８１を確認し、その確認結果に応じてソフトウェアの更新を行うか否かを判定する。
【０１５７】
次に、この場合の汎用プラットフォームのインストール処理の流れの例について図２３のフローチャートを参照して説明する。なお、ソフトウェアパッケージの転送については、平文の場合も暗号文の場合も図８のフローチャートを参照して説明した場合と同様であるので、その説明は省略する。
【０１５８】
汎用プラットフォーム１のFTPデーモン４１は、ステップＳ８１において、ステップＳ３１と同様に、イーサネット（登録商標）I/F１４を制御し、ソフトウェアパッケージの受信処理を行う。パーソナルコンピュータ５２より供給されたソフトウェアパッケージを取得すると、FTPデーモン４１は、それをRAM１３に保持させ、処理をステップＳ８２に進める。ステップＳ８２において、復号処理部１９１は、受信したソフトウェアパッケージが暗号文ソフトウェアパッケージ１５２であるか否かを判定し、暗号文ソフトウェアパッケージ１５２であると判定した場合、処理をステップＳ８３に進め、その、暗号文ソフトウェアパッケージ１５２を復号し、暗号化される前の平文ソフトウェアパッケージ１５１を復元する。復号処理を終了すると、復号処理部１９１は、処理をステップＳ８５に進める。
【０１５９】
また、ステップＳ８２において、受信したソフトウェアパッケージが暗号文ソフトウェアパッケージ１５２ではない（平文ソフトウェアパッケージ１５１である）と判定した場合、復号処理部１９１は、復号処理を省略して処理をステップＳ８４に進める。
【０１６０】
ステップＳ８４において、設定確認部１９２は、設定値格納領域１６１に格納されている設定値１８１を参照し、設定項目「shipping」の値が「YES」であるか否かを判定する。すなわち、設定確認部１９２は、汎用プラットフォーム１の状態が出荷状態であるか否か（組み込み先の製品の開発が終了しているか否か）を判定する。設定項目「shipping」の値が「NO」であると判定した場合、設定確認部１９２は、その平文ソフトウェアパッケージ１５１を受け付けることを許可し、処理をステップＳ８５に進める。
【０１６１】
CPU１１の各機能ブロックは、ステップＳ８５乃至ステップＳ８８の処理を、図９のステップＳ３２乃至ステップＳ３５と同様に行うことによって上述したようにソフトウェアの更新処理を行い、インストール処理を終了する。また、ステップＳ３５において、設定項目「shipping」の値が「YES」であると判定した場合、すなわち、組み込み先の製品の開発が終了して出荷状態にあると判定した場合、設定確認部１９２は、ステップＳ８５乃至ステップＳ８８の処理を省略し、インストール処理を終了する。
【０１６２】
以上のように、汎用プラットフォーム１は、暗号化されたソフトウェアパッケージを用いてソフトウェアの更新を行うので、第３者によるハッキングを防止する等、より安全にソフトウェアの更新処理を行うことができる。また、汎用プラットフォーム１の組み込み先の製品が販売状態（出荷状態）であるか否かによって、平文ソフトウェアパッケージ１５１を受け付けるか否かを決定するようにすることにより、汎用プラットフォーム１の組み込み先の製品の開発が複雑になることを抑制したまま、より安全にソフトウェアの更新処理を行うようにすることができる。
【０１６３】
なお、以上においては汎用プラットフォーム１の組み込み先の製品が出荷状態にあるか否かによって、平文ソフトウェアパッケージ１５１を受け付けるか否かを決定するように説明したが、これに限らず、例えば、組み込み先製品のソフトウェアの追加や更新を行うユーザによって、平文ソフトウェアパッケージ１５１を受け付けるか否かを決定するようにしてもよい。このようにすることにより、ソフトウェアの追加や更新を行うユーザ毎にセキュリティレベルを調節することができる。また、追加や更新を行うソフトウェア毎に平文ソフトウェアパッケージ１５１を受け付けるか否かを決定するようにしてもよい。また、上述した以外の他の条件を用いるようにしてもよい。さらに、これらの各種の条件を組み合わせて利用するようにしてももちろんよい。
【０１６４】
また、以上においては、汎用プラットフォーム１が、平文ソフトウェアパッケージ１５１を受け付けるか否かのみを設定するように説明したが、それと同時に、暗号文ソフトウェアパッケージ１５２を受け付けるか否かも設定するようにしてもよいし、暗号文ソフトウェアパッケージ１５２を受け付けるか否かのみを設定するようにしてもよい。
【０１６５】
さらに、以上においては、汎用プラットフォーム１が、イーサネット（登録商標）I/F１４を介して、他の装置であるパーソナルコンピュータ５２より、更新処理用のソフトウェアパッケージを取得するように説明したが、これに限らず、例えば、図２４に示される汎用プラットフォーム２０１のように、所定のリムーバブルメディア２１２に対応したドライブ２１１を有し、このリムーバブルメディア２１２に記録されているソフトウェアパッケージを取得するようにしてもよい。
【０１６６】
つまり、上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできるが、上述した一連の処理をソフトウェアにより実行させる場合には、上述したソフトウェアが、記録媒体からインストールされるようにしてもよい。
【０１６７】
この記録媒体は、例えば、図２４に示されるように、装置本体とは別に、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む）、光磁気ディスク（ＭＤ（Mini-Disk）（登録商標）を含む）、もしくは半導体メモリなどよりなるリムーバブルメディア２１２により構成される。
【０１６８】
ただし、この場合、汎用プラットフォーム２０１がユーザからの指示を受け付ける構成を必要としないように、CPU１１が、ドライブ２１１に装着されたリムーバブルメディア２１２に記録されているソフトウェアパッケージを読み出す処理を自動実行する（リムーバブルメディア２１２に記録されているソフトウェアパッケージを自動再生する）ことができるようになされているのが望ましい。
【０１６９】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０１７０】
また、本明細書において、システムとは、複数のデバイス（装置）により構成される装置全体を表すものである。なお、以上において、一つの装置として説明した構成を分割し、複数の装置として構成するようにしてもよい。逆に、以上において複数の装置として説明した構成をまとめて一つの装置として構成されるようにしてもよい。また、各装置の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置の構成の一部を他の装置の構成に含めるようにしてもよい。
【図面の簡単な説明】
【０１７１】
【図１】本発明を適用した汎用プラットフォームの一実施形態に係る構成例を示す図である。
【図２】図１のROMの記憶領域の構成例を示す模式図である。
【図３】図１のCPUが有する機能を示す機能ブロックの構成例を示す図である。
【図４】図１の汎用プラットフォーム１の具体的な使用例を示す図である。
【図５】図４の画像処理装置の内部の構成例を示すブロック図である。
【図６】ソフトウェアパッケージの構成例を示す模式図である。
【図７】図６のシェルスクリプトの記述例を示す模式図である。
【図８】ソフトウェア更新処理の流れの例を説明するフローチャートである。
【図９】インストール処理の詳細な流れの例を説明するフローチャートである。
【図１０】図１のROMの記憶領域の、他の構成例を示す模式図である。
【図１１】図１のCPUが有する機能を示す機能ブロックの、他の構成例を示す図である。
【図１２】ソフトウェア更新処理の流れの、他の例を説明するフローチャートである。
【図１３】アップロード画面の構成例を示す模式図である。
【図１４】MIMEマルチパートデータの構成例を示す模式図である。
【図１５】インストール処理の詳細な流れの、他の例を説明するフローチャートである。
【図１６】汎用プラットフォームの組み込み先の製品固有の構成の他の例を示すブロック図である。
【図１７】ソフトウェアパッケージの、他の構成例を示す模式図である。
【図１８】図６のシェルスクリプトの、他の記述例を示す模式図である。
【図１９】ソフトウェアパッケージの転送の様子の例を示す図である。
【図２０】図１のROMの記憶領域の、さらに他の構成例を示す模式図である。
【図２１】図２０の設定値格納領域に格納される設定値の例を示す模式図である。
【図２２】図１のCPUが有する機能を示す機能ブロックの、さらに他の構成例を示す図である。
【図２３】インストール処理の詳細な流れの、さらに他の例を説明するフローチャートである。
【図２４】本発明を適用した汎用プラットフォームの一実施形態に係る、他の構成例を示す図である。
【符号の説明】
【０１７２】
１  汎用プラットフォーム，  １０  バス，  １１  CPU，  １２  ROM，  １３  RAM，  １４  イーサネット（登録商標）I/F，  ２１  オペレーティングシステム格納領域，  ２２  製品共通機能格納領域，  ２３  製品固有機能格納領域，  ３１  FTPサーバプログラム，  ３２  展開処理プログラム，  ３３  シェルスクリプト実行プログラム，  ３４  汎用インストールプログラム，  ３５  設定値，  ４１  FTPデーモン，  ４２  ソフトウェアパッケージ展開処理部，  ４３  シェルスクリプト実行部，  ４４  ROM書き込み制御部，  ４５  更新プログラム実行部，  ５０  ネットワーク，  ５１  画像処理装置，  ５２  パーソナルコンピュータ，  ５３  画像提供装置，  ６０  デコーダユニット，  ６１  FPGA，  ６２  デコーダ，  ６３  RAM，  ６４  ROM，  ７０  ソフトウェアパッケージ，  ７１  シェルスクリプト，  ７２  更新プログラム，  ７３および７４  イメージデータ，  ８１  HTTPサーバプログラム，  ８２  認証処理プログラム，  ９１  HTTPデーモン，  ９２  認証処理部，  ９３  ソフトウェアパッケージ抽出部，  １００  アップロード画面，  １１１  MIMEマルチパートデータ，  １２１  制御ユニット，  １３０  バス，  １３１  CPU，  １３２  ROM，  １３３  RAM，  １３４  バスブリッジ，  １４０  ソフトウェアパッケージ，  １４１  シェルスクリプト，  １４２  更新プログラム，  １４４  イメージデータ，  １５１  平文ソフトウェアパッケージ，  １５２  暗号文ソフトウェアパッケージ，  １６１  設定値格納領域，  １７１  復号処理プログラム，  １７２  設定確認プログラム，  １８１  設定値，  １９１  復号処理部，  １９２  設定確認部，２０１  汎用プラットフォーム，  ２１１  ドライブ，  ２１２  リムーバブルメディア
【図１】
2007052518.tif 000003
【図２】
2007052518.tif 000004
【図３】
2007052518.tif 000005
【図４】
2007052518.tif 000006
【図５】
2007052518.tif 000007
【図６】
2007052518.tif 000008
【図７】
2007052518.tif 000009
【図８】
2007052518.tif 000010
【図９】
2007052518.tif 000011
【図１０】
2007052518.tif 000012
【図１１】
2007052518.tif 000013
【図１２】
2007052518.tif 000014
【図１３】
2007052518.tif 000015
【図１４】
2007052518.tif 000016
【図１５】
2007052518.tif 000017
【図１６】
2007052518.tif 000018
【図１７】
2007052518.tif 000019
【図１８】
2007052518.tif 000020
【図１９】
2007052518.tif 000021
【図２０】
2007052518.tif 000022
【図２１】
2007052518.tif 000023
【図２２】
2007052518.tif 000024
【図２３】
2007052518.tif 000025
【図２４】
2007052518.tif 000026