(57)【要約】【課題】  画像形成装置の機種に適したプログラムを適切にインストールすることのできる画像形成装置、インストール方法、インストールプログラム、及び記録媒体の提供を目的とする。【解決手段】  プログラムのインストールが可能な画像形成装置であって、当該画像形成装置にセットされた記憶媒体又は当該画像形成装置にネットワークを介して接続する装置に格納されたプログラムのインストールに際し、当該画像形成装置のハードウェアに関する情報の確認の要否を前記プログラムに基づいて判断する判断手段と、前記判断手段によって前記ハードウェアに関する情報の確認は必要であると判断されたときに、前記ハードウェアに関する情報を確認するハードウェア確認手段とを有することにより上記課題を解決する。【選択図】  図２２
2006148865.tif 000002
【特許請求の範囲】
【請求項１】
プログラムのインストールが可能な画像形成装置であって、
当該画像形成装置にセットされた記憶媒体又は当該画像形成装置にネットワークを介して接続する装置に格納されたプログラムのインストールに際し、当該画像形成装置のハードウェアに関する情報の確認の要否を前記プログラムに基づいて判断する判断手段と、
前記判断手段によって前記ハードウェアに関する情報の確認は必要であると判断されたときに、前記ハードウェアに関する情報を確認するハードウェア確認手段とを有することを特徴とする画像形成装置。
【請求項２】
前記ハードウェア確認手段は、前記ハードウェアに関する情報を確認して前記プログラムのインストールの可否を判断することを特徴とする請求項１記載の画像形成装置。
【請求項３】
前記ハードウェア確認手段によって前記プログラムのインストールが可能であると判断されたときに、前記記憶媒体又は前記ネットワークを介して接続する装置に格納されたプログラムの中から当該画像形成装置に対応したプログラムをインストール対象として選択するプログラム選択手段を有することを特徴とする請求項２記載の画像形成装置。
【請求項４】
前記プログラム選択手段は、前記プログラムに含まれている当該プログラムを使用可能な画像形成装置を識別するための識別情報に基づいて前記プログラムを選択することを特徴とする請求項３記載の画像形成装置。
【請求項５】
前記識別情報は、前記プログラムのファイル名であることを特徴とする請求項４記載の画像形成装置。
【請求項６】
前記プログラム選択手段は、前記ハードウェア確認手段によって確認される前記ハードウェアに関する情報と、前記識別情報とを比較することにより前記プログラムを選択することを特徴とする請求項４又は５記載の画像形成装置。
【請求項７】
前記プログラムは、コンパイルされたハードウェア環境に依存しないプログラムを実行するための仮想マシンであることを特徴とする請求項１乃至６いずれか一項記載の画像形成装置。
【請求項８】
前記インストールは、前記プログラムのアップデートを含むことを特徴とする請求項１乃至７いずれか一項記載の画像形成装置。
【請求項９】
プログラムのインストールが可能な画像形成装置におけるインストール方法であって、
当該画像形成装置にセットされた記憶媒体又は当該画像形成装置にネットワークを介して接続する装置に格納されたプログラムのインストールに際し、当該画像形成装置のハードウェアに関する情報の確認の要否を前記プログラムに基づいて判断する判断手順と、
前記判断手順において前記ハードウェアに関する情報の確認は必要であると判断されたときに、前記ハードウェアに関する情報を確認するハードウェア確認手順とを有することを特徴とするインストール方法。
【請求項１０】
前記ハードウェア確認手順は、前記ハードウェアに関する情報を確認して前記プログラムのインストールの可否を判断することを特徴とする請求項９記載のインストール方法。
【請求項１１】
前記ハードウェア確認手順において前記プログラムのインストールが可能であると判断されたときに、前記記憶媒体又は前記ネットワークを介して接続する装置に格納されたプログラムの中から当該画像形成装置に対応したプログラムをインストール対象として選択するプログラム選択手順を有することを特徴とする請求項１０記載のインストール方法。
【請求項１２】
前記プログラム選択手順は、前記プログラムに含まれている当該プログラムを使用可能な画像形成装置を識別するための識別情報に基づいて前記プログラムを選択することを特徴とする請求項１１記載のインストール方法。
【請求項１３】
前記識別情報は、前記プログラムのファイル名であることを特徴とする請求項１２記載のインストール方法。
【請求項１４】
前記プログラム選択手順は、前記ハードウェア確認手順において確認される前記ハードウェアに関する情報と、前記識別情報とを比較することにより前記プログラムを選択することを特徴とする請求項１２又は１３記載のインストール方法。
【請求項１５】
前記プログラムは、コンパイルされたハードウェア環境に依存しないプログラムを実行するための仮想マシンであることを特徴とする請求項９乃至１４いずれか一項記載のインストール方法。
【請求項１６】
前記インストールは、前記プログラムのアップデートを含むことを特徴とする請求項９乃至１５いずれか一項記載のインストール方法。
【請求項１７】
画像形成装置にプログラムのインストールを実行させるインストールプログラムであって、
当該画像形成装置にセットされた記憶媒体又は当該画像形成装置にネットワークを介して接続する装置に格納されたプログラムのインストールに際し、当該画像形成装置のハードウェアに関する情報の確認の要否を前記プログラムに基づいて判断する判断手順と、
前記判断手順において前記ハードウェアに関する情報の確認は必要であると判断されたときに、前記ハードウェアに関する情報を確認するハードウェア確認手順とを有することを特徴とするインストールプログラム。
【請求項１８】
請求項１７記載のインストールプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コピー／プリンタ／スキャナ／ファクシミリ／複合機／融合機等の画像形成装置、情報処理方法、情報処理プログラム、ＳＤメモリカード等の記録媒体に関する。
【背景技術】
【０００２】
近年、コピー機能とプリンタ機能とスキャナ機能とファクシミリ機能を備える複合機や融合機が市販されるようになった。複合機や融合機は、コピーやプリンタとして機能する場合には、画像を印刷用紙に印刷することになり、コピーやスキャナとして機能する場合には、画像を読取原稿から読み取ることになり、ファクシミリとして機能する場合には、画像を電話回線を介して他の機器と授受することになる。
【特許文献１】特開２００２−８４３８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
近年、Ｊａｖａ（登録商標）プログラムを実行可能な画像形成装置が登場しつつある。Ｊａｖａ（登録商標）プログラムの特徴として、同一のＪａｖａ（登録商標）プログラムを様々な機器で実行できると言う互換性の高さを挙げることができる。画像形成装置には様々な機種が存在するのが通常なので、この恩恵は画像形成装置にとって極めて大きい。同一のＪａｖａ（登録商標）プログラムを様々な機器で実行するためには、機器間の差異を吸収するためのＪａｖａ（登録商標）仮想マシンを各機器に実装する必要がある。そのため、画像形成装置の出荷前から画像形成装置にＪａｖａ（登録商標）仮想マシンを実装しておくだけでなく、画像形成装置の出荷後に画像形成装置にＪａｖａ（登録商標）仮想マシンを実装できるようにしておくと便利なのだが、Ｊａｖａ（登録商標）仮想マシンの機種依存性の問題をどう処理するかなど課題が山積している。
【０００４】
本発明は、画像形成装置の機種に適したプログラムを適切にインストールすることのできる画像形成装置、インストール方法、インストールプログラム、及び記録媒体の提供を目的とする。
【課題を解決するための手段】
【０００５】
そこで上記課題を解決するため、本発明は、プログラムのインストールが可能な画像形成装置であって、当該画像形成装置にセットされた記憶媒体又は当該画像形成装置にネットワークを介して接続する装置に格納されたプログラムのインストールに際し、当該画像形成装置のハードウェアに関する情報の確認の要否を前記プログラムに基づいて判断する判断手段と、前記判断手段によって前記ハードウェアに関する情報の確認は必要であると判断されたときに、前記ハードウェアに関する情報を確認するハードウェア確認手段とを有することを特徴とする。
【０００６】
このような画像形成装置では、画像形成装置の機種に適したプログラムを適切にインストールすることができる。
【０００７】
また、上記課題を解決するため、本発明は、上記画像形成装置におけるインストール方法、前記インストール方法を前記画像形成装置に実行させるためのインストールプログラム、又は前記インストールプログラムを記録した記録媒体としてもよい。
【発明の効果】
【０００８】
本発明によれば、画像形成装置の機種に適したプログラムを適切にインストールすることのできる画像形成装置、インストール方法、インストールプログラム、及び記録媒体を提供することができる。
【発明を実施するための最良の形態】
【０００９】
図１は、本発明の実施例に該当する融合機１０１を表す。図１の融合機１０１は、種々のハードウェア１１１と、種々のソフトウェア１１２と、融合機起動部１１３により構成される。
【００１０】
融合機１０１のハードウェア１１１としては、撮像部１２１と、印刷部１２２と、その他のハードウェア１２３が存在する。撮像部１２１は、読取原稿から画像（画像データ）を読み取るためのハードウェアである。印刷部１２２は、画像（画像データ）を印刷用紙に印刷するためのハードウェアである。
【００１１】
融合機１０１のソフトウェア１１２としては、種々のアプリケーション１３１と、種々のプラットフォーム１３２が存在する。これらのプログラムは、ＵＮＩＸ（登録商標）等のＯＳ（オペレーティングシステム）によりプロセス単位で並列的に実行される。
【００１２】
アプリケーション１３１としては、コピー用のアプリケーションであるコピーアプリ１４１、プリンタ用のアプリケーションであるプリンタアプリ１４２、スキャナ用のアプリケーションであるスキャナアプリ１４３、ファクシミリ用のアプリケーションであるファクシミリアプリ１４４、ネットワークファイル用のアプリケーションであるネットワークファイルアプリ１４５が存在する。そしてさらに、Ｗｅｂページの閲覧用のソフトウェアであるＷｅｂブラウザ１８１、Ｗｅｂページの配信用のソフトウェアであるＷｅｂサーバソフト１８２、ＣＳＤＫアプリ１４６やＪＳＤＫアプリ１４７の制御用のソフトウェアであるＳＤＫアプリケーションサービス（ＳＡＳ）１８３が存在する。
【００１３】
アプリケーション１３１は、専用のＳＤＫ（ソフトウェア開発キット）を使用して開発することができる。ＳＤＫを使用して開発したアプリケーション１３１をＳＤＫアプリと呼ぶ。専用のＳＤＫとしては、Ｃ言語でアプリケーション１３１を開発するための「ＣＳＤＫ」や、Ｊａｖａ（登録商標）言語でアプリケーション１３１を開発するための「ＪＳＤＫ」が提供される。ＣＳＤＫを使用して開発したアプリケーション１３１を「ＣＳＤＫアプリ」と呼び、ＪＳＤＫを使用して開発したアプリケーション１３１を「ＪＳＤＫアプリ」と呼ぶ。図１の融合機１０１にも、ＣＳＤＫアプリ１４６と、ＪＳＤＫアプリ１４７が存在する。図１の融合機１０１にはさらに、Ｊａｖａ（登録商標）言語で記述されたＪＳＤＫアプリ１４７とＣ言語で記述された他のソフトウェア１１２との仲介を行うソフトウェア１１２として、ＪＳＤＫプラットフォーム１４８が存在する。
【００１４】
プラットフォーム１３２としては、種々のコントロールサービス１５１、システムリソースマネージャ１５２、種々のハンドラ１５３が存在する。コントロールサービス１５１としては、ネットワークコントロールサービス（ＮＣＳ）１６１、ファクシミリコントロールサービス（ＦＣＳ）１６２、デリバリコントロールサービス（ＤＣＳ）１６３、エンジンコントロールサービス（ＥＣＳ）１６４、メモリコントロールサービス（ＭＣＳ）１６５、オペレーションパネルコントロールサービス（ＯＣＳ）１６６、サーティフィケーションコントロールサービス（ＣＣＳ）１６７、ユーザディレクトリコントロールサービス（ＵＣＳ）１６８、システムコントロールサービス（ＳＣＳ）１６９が存在する。ハンドラ１５３としては、ファクシミリコントロールユニットハンドラ（ＦＣＵＨ）１７１、イメージメモリハンドラ（ＩＭＨ）１７２が存在する。
【００１５】
ＮＣＳ１６１のプロセスは、ネットワーク通信の仲介を行う。ＦＣＳ１６２のプロセスは、ファクシミリのＡＰＩを提供する。ＤＣＳ１６３のプロセスは、蓄積文書の配信処理に関する制御を行う。ＥＣＳ１６４のプロセスは、撮像部１２１や印刷部１２２に関する制御を行う。ＭＣＳ１６５のプロセスは、メモリやハードディスクドライブに関する制御を行う。ＯＣＳ１６６のプロセスは、オペレーションパネルに関する制御を行う。ＣＣＳ１６７のプロセスは、認証処理や課金処理に関する制御を行う。ＵＣＳ１６８のプロセスは、ユーザ情報の管理に関する制御を行う。ＳＣＳ１６９のプロセスは、システムの管理に関する制御を行う。
【００１６】
アプリケーション１３１とプラットフォーム１３２の仲介を行うソフトウェア１１２として、仮想アプリケーションサービス（ＶＡＳ）１３５が存在する。ＶＡＳ１３５は、アプリケーション１３１をクライアントとするサーバプロセスとして動作すると共に、プラットフォーム１３２をサーバとするクライアントプロセスとして動作する。ＶＡＳ１３５は、アプリケーション１３１から見てプラットフォーム１３２を隠蔽するラッピング機能を備え、プラットフォーム１３２のバージョンアップに伴うバージョン差を吸収する役割等を担う。
【００１７】
融合機起動部１１３は、融合機１０１の電源投入時に最初に実行される。これにより、ＵＮＩＸ（登録商標）等のＯＳが起動され、アプリケーション１３１やプラットフォーム１３２が起動される。これらのプログラムは、ハードディスクドライブやメモリカードに蓄積されており、ハードディスクドライブやメモリカードから再生されて、メモリに起動されることになる。
【００１８】
図２は、図１の融合機１０１に係るハードウェア構成図である。融合機１０１のハードウェア１１１としては、コントローラ２０１と、オペレーションパネル２０２と、ファクシミリコントロールユニット（ＦＣＵ）２０３と、撮像部１２１と、印刷部１２２が存在する。
【００１９】
コントローラ２０１は、ＣＰＵ２１１、ＡＳＩＣ２１２、ＮＢ２２１、ＳＢ２２２、ＭＥＭ−Ｐ２３１、ＭＥＭ−Ｃ２３２、ＨＤＤ（ハードディスクドライブ）２３３、メモリカードスロット２３４、ＮＩＣ（ネットワークインタフェースコントローラ）２４１、ＵＳＢデバイス２４２、ＩＥＥＥ１３９４デバイス２４３、セントロニクスデバイス２４４により構成される。
【００２０】
ＣＰＵ２１１は、種々の情報処理用のＩＣである。ＡＳＩＣ２１２は、種々の画像処理用のＩＣである。ＮＢ２２１は、コントローラ２０１のノースブリッジである。ＳＢ２２２は、コントローラ２０１のサウスブリッジである。ＭＥＭ−Ｐ２３１は、融合機１０１のシステムメモリである。ＭＥＭ−Ｃ２３２は、融合機１０１のローカルメモリである。ＨＤＤ２３３は、融合機１０１のストレージである。メモリカードスロット２３４は、メモリカード２３５をセットするためのスロットである。ＮＩＣ２４１は、ＭＡＣアドレスによるネットワーク通信用のコントローラである。ＵＳＢデバイス２４２は、ＵＳＢ規格の接続端子を提供するためのデバイスである。ＩＥＥＥ１３９４デバイス２４３は、ＩＥＥＥ１３９４規格の接続端子を提供するためのデバイスである。セントロニクスデバイス２４４は、セントロニクス仕様の接続端子を提供するためのデバイスである。
【００２１】
オペレーションパネル２０２は、オペレータが融合機１０１に入力を行うためのハードウェア（操作部）であると共に、オペレータが融合機１０１から出力を得るためのハードウェア（表示部）である。
【００２２】
図３は、図１の融合機１０１に係る外観図である。図３には、撮像部１２１の位置と、印刷部１２２の位置と、オペレーションパネル２０２の位置が図示されている。図３には更に、読取原稿のセット先となる原稿セット部３０１と、印刷用紙の給紙先となる給紙部３０２と、印刷用紙の排紙先となる排紙部３０３が図示されている。
【００２３】
オペレーションパネル２０２は、図４のように、タッチパネル３１１と、テンキー３１２と、スタートボタン３１３と、リセットボタン３１４と、機能キー３１５と、初期設定ボタン３１６により構成される。タッチパネル３１１は、タッチ操作で入力を行うためのハードウェア（タッチ操作部）であると共に、画面表示で出力を得るためのハードウェア（画面表示部）である。テンキー３１２は、キー（ボタン）操作で数字入力を行うためのハードウェアである。スタートボタン３１３は、ボタン操作でスタート操作を行うためのハードウェアである。リセットボタン３１４は、ボタン操作でリセット操作を行うためのハードウェアである。機能キー３１５は、キー（ボタン）操作でＣＳＤＫアプリ１４６やＪＳＤＫアプリ１４７による操作画面を表示させるためのハードウェアである。初期設定ボタン３１６は、ボタン操作で初期設定画面を表示させるためのハードウェアである。
【００２４】
原稿セット部３０１は、ＡＤＦ（自動原稿搬送装置）３２１と、フラットベッド３２２と、フラットベッドカバー３２３により構成される。給紙部３０２は、４個の給紙トレイにより構成される。排紙部３０３は、１個の排紙トレイにより構成される。ＡＤＦ３２１には、複数枚の読取原稿を重ねてセットすることができる。フラットベッド３２２には、読取原稿を下向きにセットする。
【００２５】
（融合機起動部）
図１の融合機起動部１１３について説明する。
【００２６】
融合機起動部１１３は、図５のように、メモリモニタ部５０１と、プログラム起動部５０２により構成される。
【００２７】
図１の融合機１０１の電源を投入すると、メモリモニタ部５０１を構成するＢＩＯＳとブートローダが起動されて、これにより、ＵＮＩＸ（登録商標）等のＯＳが起動される。続いて、プログラム起動部５０２を構成する起動処理用プログラムが起動されて、これにより、アプリケーション１３１やプラットフォーム１３２が適宜起動される。なお、ＵＮＩＸ（登録商標）が起動される場合には、ＵＮＩＸ（登録商標）のカーネルが起動され、ルートファイルシステムが展開され、アプリケーション１３１やプラットフォーム１３２に係るファイルシステムがルートファイルシステムにマウントされることになる。
【００２８】
アプリケーション１３１やプラットフォーム１３２に係るマウント処理や起動処理の例を挙げておく。プログラム起動部５０２は、ルートファイルシステム内のｅｔｃのマスタ設定ファイル「ｉｎｉｔ．ｃｏｎｆ」を読み込んで、マスタ設定ファイル内のコマンドに従ってマウント処理や起動処理を実行する。プログラム起動部５０２はさらに、マウントしたファイルシステム内の設定ファイル「ｉｎｉｔ．ｃｏｎｆ」や「ｉｎｉｔ．ｃｎｆ」を読み込んで、設定ファイル内のコマンドに従ってマウント処理や起動処理を実行すると共に、マウントしたファイルシステム内の設定ディレクトリ「ｉｎｉｔ．ｄ」の設定ファイル「＊＊＊．ｃｏｎｆ」や「＊＊＊．ｃｎｆ」を読み込んで、設定ディレクトリの設定ファイル内のコマンドに従ってマウント処理や起動処理を実行する。なお、設定ファイルの電子署名を書き込んだ認証ファイル「＊＊＊．ｌｉｃ」を用意しておいて、プログラム起動部５０２が、設定ファイル内のコマンドに従ってマウント処理や起動処理を実行するのに先立って、設定ファイルの電子署名チェックを実行するようにしてもよい。
【００２９】
（メモリカード）
図２のメモリカード用スロット２３４とメモリカード２３５について説明する。
【００３０】
メモリカード用スロット２３４は、アプリケーション１３１やプラットフォーム１３２等のプログラムが記憶されたメモリカード２３５をセット（挿入）するためのスロットである。
【００３１】
メモリカード２３５には、アプリケーション１３１やプラットフォーム１３２等のプログラムを、拡張子をｍｏｄとするｍｏｄファイル「＊＊＊．ｍｏｄ」として各モジュール毎に記憶させておくと共に、ｍｏｄファイルの電子署名を、拡張子をｍａｃとするｍａｃファイル「＊＊＊．ｍａｃ」として各モジュール毎に記憶させておく。
【００３２】
メモリカード２３５には、設定ファイル（融合機起動部の欄参照）を、拡張子をｃｎｆとするｃｎｆファイル「＊＊＊．ｃｎｆ」として記憶させておくと共に、設定ファイルの電子署名を書き込んだ認証ファイル（融合機起動部の欄参照）を、拡張子をｌｉｃとするｌｉｃファイル「＊＊＊．ｌｉｃ」として記憶させておく。
【００３３】
各ファイルの電子署名はここでは、ＭＤ５やＳＨＡ１等のハッシュ関数によって各ファイルから作成したメッセージダイジェストを、秘密鍵によって暗号化したものである。例えば、ｍｏｄファイルやｃｎｆファイルの電子署名は、ｍｏｄファイルやｃｎｆファイルから作成したメッセージダイジェストを、秘密鍵によって暗号化したものである。
【００３４】
各ファイルの電子署名チェックはここでは、各ファイルからＭＤ５やＳＨＡ１等のハッシュ関数によって作成したメッセージダイジェストと、各ファイルの電子署名を公開鍵によって復号化したメッセージダイジェストとの照合をもって実行可能である。例えば、ｍｏｄファイルやｃｎｆファイルの電子署名チェックは、ｍｏｄファイルやｃｎｆファイルから作成したメッセージダイジェストと、ｍａｃファイルやｌｉｃファイルに書き込んだ電子署名を公開鍵によって復号化したメッセージダイジェストとの照合をもって実行可能である。各ファイルの電子署名チェックは例えば、マウント処理や起動処理の一環としてプログラム起動部５０２が実行するようにする。
【００３５】
なお、メモリカード２３５としてＳＤメモリカードを採用する場合、ｃｎｆファイルの電子署名は、ｃｎｆファイルとＳＤシリアルＩＤとから作成したメッセージダイジェストを、秘密鍵によって暗号化したものでもよい。各ＳＤメモリカードのＳＤシリアルＩＤは各ＳＤメモリカードに固有なＩＤ（識別情報）なので、各ＳＤメモリカードに記憶させておくｌｉｃファイルが各ＳＤメモリカードに固有なファイルになり、ＳＤメモリカードのコピー防止に役立つ。この場合、ｃｎｆファイルの電子署名チェックは、ｃｎｆファイルとＳＤシリアルＩＤとから作成したメッセージダイジェストと、ｌｉｃファイルに書き込んだ電子署名を公開鍵によって復号化したメッセージダイジェストとの照合をもって実行可能である。各ＳＤメモリカードのＳＤシリアルＩＤは各ＳＤメモリカードに記憶されている。
【００３６】
メモリカード２３５としては、フラッシュメモリカードの一種であるＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）メモリカードを採用することにする。ＳＤメモリカードを採用することで例えば、大容量のメモリを安価で利用できるというメリットを享受できる。なお、メモリカード用スロット２３４としては、ＳＤメモリカード用スロットが採用される。
【００３７】
図１の融合機１０１には、図６のように、ＳＤメモリカード用スロット６０１とＳＤメモリカード６０２（メモリカード用スロット２３４とメモリカード２３５に相当する）に係るソフトウェアとして、ＳＤメモリカードアクセスドライバ（ＳＤａｃｃｅｓｓ）６１１と、ＳＤメモリカードステータスドライバ（ＳＤｓｔａｔｅｓ）６１２と、起動処理用プログラム６１３と、ＳＤメモリカードチェックプログラム（ＳＤｃｈｅｃｋ）６１４が存在する。
【００３８】
ＳＤａｃｃｅｓｓ６１１は、ＳＤメモリカード６０２の挿入・抜出を検知する等、ＳＤメモリカード６０２に対するアクセス制御を実行するドライバである。ＳＤｓｔａｔｅｓ６１２は、ＳＤメモリカード６０２の挿入・抜出・マウント・アンマウントに関する情報を管理するドライバである。起動処理用プログラム６１３は、図５のプログラム起動部５０２を構成するプログラムである。ＳＤｃｈｅｃｋ６１４は、ＳＤメモリカード６０２のマウント・アンマウントを実行するプログラムである。
【００３９】
ＳＤメモリカード用スロット６０１にＳＤメモリカード６０２が挿入された場合、ＳＤａｃｃｅｓｓ６１１は、ＳＤメモリカード６０２が挿入された事を検知（Ｓ１）すると共に、ＳＤｓｔａｔｅｓ６１２にその事を通知（Ｓ２）する。これに応じて、ＳＤｓｔａｔｅｓ６１２は、ＳＤメモリカード６０２が挿入された旨の情報を管理することにすると共に、起動処理用プログラム６１３にその旨を通知（Ｓ３）する。これに応じて、起動処理用プログラム６１３は、ＳＤメモリカード６０２のマウントを実行させるために、ＳＤｃｈｅｃｋ６１４を起動（Ｓ４）させる。これに応じて、ＳＤｃｈｅｃｋ６１４は、ＳＤメモリカード６０２のマウントを実行（Ｓ５）すると共に、ＳＤｓｔａｔｅｓ６１２にその事を通知（Ｓ６）する。これに応じて、ＳＤｓｔａｔｅｓ６１２は、ＳＤメモリカード６０２がマウントされた旨の情報を管理することにすると共に、起動処理用プログラム６１３等にその旨を通知（Ｓ７）する。
【００４０】
ＳＤメモリカード用スロット６０１からＳＤメモリカード６０２が抜き出された場合、ＳＤａｃｃｅｓｓ６１１は、ＳＤメモリカード６０２が抜き出された事を検知（Ｓ１）すると共に、ＳＤｓｔａｔｅｓ６１２にその事を通知（Ｓ２）する。これに応じて、ＳＤｓｔａｔｅｓ６１２は、ＳＤメモリカード６０２が抜き出された旨の情報を管理することにすると共に、起動処理用プログラム６１３にその旨を通知（Ｓ３）する。これに応じて、起動処理用プログラム６１３は、ＳＤメモリカード６０２のアンマウントを実行させるために、ＳＤｃｈｅｃｋ６１４を起動（Ｓ４）させる。これに応じて、ＳＤｃｈｅｃｋ６１４は、ＳＤメモリカード６０２のアンマウントを実行（Ｓ５）すると共に、ＳＤｓｔａｔｅｓ６１２にその事を通知（Ｓ６）する。これに応じて、ＳＤｓｔａｔｅｓ６１２は、ＳＤメモリカード６０２がアンマウントされた旨の情報を管理することにすると共に、起動処理用プログラム６１３等にその旨を通知（Ｓ７）する。
【００４１】
なお、ＳＤメモリカードを採用することで、いわゆる活線挿抜が可能になるというメリットを享受できる。すなわち、ＳＤメモリカード用スロット６０１にＳＤメモリカード６０２を挿入する操作と、ＳＤメモリカード用スロット６０１からＳＤメモリカード６０２を抜き出す操作が、融合機１０１の起動後に実行可能になる。
【００４２】
（ＪＳＤＫ）
図７は、図１のＪＳＤＫアプリ１４７とＪＳＤＫプラットフォーム１４８のクラス図である。ＪＳＤＫアプリ１４７とＪＳＤＫプラットフォーム１４８は、全体で１プロセスとして、同一プロセス上で実行される。ＪＳＤＫアプリ１４７とＪＳＤＫプラットフォーム１４８中の各ブロックは、それぞれこの１プロセス上のスレッドとして、スレッド単位で並列的に実行（マルチスレッド）される。ＪＳＤＫアプリ１４７とＪＳＤＫプラットフォーム１４８は、Ｊａｖａ（登録商標）コンパイラによりソースコードからバイトコードに一括翻訳されており、Ｊａｖａ（登録商標）仮想マシンにより逐次実行される。ＪＳＤＫアプリ１４７とＪＳＤＫプラットフォーム１４８は、Ｊａｖａ（登録商標）  ２  Ｍｉｃｒｏ  ＥｄｉｔｉｏｎのＰｅｒｓｏｎａｌ  Ｂａｓｉｓ  Ｐｒｏｆｉｌｅをベースとする実装となっている。
【００４３】
ＪＳＤＫアプリ１４７としては、ユーザアプリ７０１と、ＪＳＤＫ  ＧＵＩ  Ｍａｎａｇｅｒ７１１と、Ｔａｓｋ  Ｂａｒ  Ｍａｎａｇｅｒ７１２等が存在する。
【００４４】
ユーザアプリ７０１は、融合機１０１のユーザ（例えばベンダ）がＪＳＤＫを使用して開発したＪＳＤＫアプリである。ＪＳＤＫ  ＧＵＩ  Ｍａｎａｇｅｒ７１１は、他のＪＳＤＫアプリ（ユーザアプリ７０１等）を操作対象とする操作画面の表示等を行うＪＳＤＫアプリである。Ｔａｓｋ  Ｂａｒ  Ｍａｎａｇｅｒ７１２は、他のＪＳＤＫアプリ（ユーザアプリ７０１等）を操作対象とするタスクバーの表示等を行うＪＳＤＫアプリである。
【００４５】
ユーザアプリ７０１はここでは、スタンドアロンアプリケーションやアプレットと並ぶＪａｖａ（登録商標）アプリケーションであるＸｌｅｔである。ＪＳＤＫ  ＧＵＩ  Ｍａｎａｇｅｒ７１１とＴａｓｋ  Ｂａｒ  Ｍａｎａｇｅｒ７１２はここでは、独自の拡張を施したＸｌｅｔ（ＸｌｅｔＥｘ）である。
【００４６】
ＪＳＤＫプラットフォーム１４８には、ＪＳＤＫ  Ｍａｉｎ７２１と、ＪＳＤＫ  Ｅｎｖｉｒｏｎｍｅｎｔ７２２と、Ｌｏｃａｌｅ  Ｍａｎａｇｅｒ７２３と、Ｘｌｅｔ  Ｍａｎａｇｅｒ７３１と、Ｍｕｌｔｉ  Ｘｌｅｔ  Ｍａｎａｇｅｒ７３２と、ＪＳＤＫ  Ｍａｎａｇｅｒ７３３と、Ｓｅｎｄ  Ｍａｎａｇｅｒ７４１と、Ｅｖｅｎｔ  Ｍａｎａｇｅｒ７４２と、Ｓｙｓｔｅｍ  Ｅｖｅｎｔ  Ｍａｎａｇｅｒ７４３と、Ｐａｎｅｌ  Ｍａｎａｇｅｒ７４４と、Ｉｎｓｔａｌｌ  Ｍａｎａｇｅｒ７４５と、Ｓｅｒｖｅｒ／Ｃｌｉｅｎｔ  Ｍａｎａｇｅｒ７４６等のクラスが存在する。
【００４７】
ＪＳＤＫ  Ｍａｉｎ７２１は、ＪＳＤＫシステムの起動設定を行うクラスである。ＪＳＤＫ  Ｅｎｖｉｒｏｎｍｅｎｔ７２２は、ＪＳＤＫシステムの起動環境設定を行うクラスである。Ｌｏｃａｌｅ  Ｍａｎａｇｅｒ７２３は、国際化対応（言語指定）を行うクラスである。
【００４８】
Ｘｌｅｔ  Ｍａｎａｇｅｒ７３１は、１対１でＸｌｅｔのライフサイクルを管理するクラスである。ここでは、５個のＸｌｅｔのライフサイクルが１対１で５個のＸｌｅｔ  Ｍａｎａｇｅｒ７３１によって管理される。Ｍｕｌｔｉ  Ｘｌｅｔ  Ｍａｎａｇｅｒ７３２は、全てのＸｌｅｔ  Ｍａｎａｇｅｒ７３１のライフサイクルを管理するクラスである。ここでは、５個のＸｌｅｔ  Ｍａｎａｇｅｒ７３１のライフサイクルが全て１個のＭｕｌｔｉ  Ｘｌｅｔ  Ｍａｎａｇｅｒ７３２によって管理される。ＪＳＤＫ  Ｍａｎａｇｅｒ７３３は、ＪＳＤＫシステム全体のライフサイクルを管理するクラスである。例えば、Ｍｕｌｔｉ  Ｘｌｅｔ  Ｍａｎａｇｅｒ７３２，Ｓｅｎｄ  Ｍａｎａｇｅｒ７４１，Ｅｖｅｎｔ  Ｍａｎａｇｅｒ７４２，Ｓｙｓｔｅｍ  Ｅｖｅｎｔ  Ｍａｎａｇｅｒ７４３，Ｐａｎｅｌ  Ｍａｎａｇｅｒ７４４，Ｉｎｓｔａｌｌ  Ｍａｎａｇｅｒ７４５，Ｓｅｒｖｅｒ／Ｃｌｉｅｎｔ  Ｍａｎａｇｅｒ７４６のライフサイクルが、ＪＳＤＫ  Ｍａｎａｇｅｒ７３３によって管理される。
【００４９】
Ｓｙｓｔｅｍ  Ｅｖｅｎｔ  Ｍａｎａｇｅｒ７４３は、図１のプラットフォーム１３２からのシステムイベント（電力モード等）の管理を行うクラスである。Ｐａｎｅｌ  Ｍａｎａｇｅｒ７４４は、１個のＸｌｅｔがオペレーションパネル２０２の画面を占有する際の調停等を行うクラスである。Ｉｎｓｔａｌｌ  Ｍａｎａｇｅｒ７４５は、ＳＤｃａｒｄやＷｅｂからのインストールやアンインストールの管理を行うクラスである。
【００５０】
図７のＪＳＤＫシステムには、ＡＰＩとして、ＪＳＤＫ  ＡＰＩ７５１とＪＳＤＫ  ＡＰＩ７５２等が存在する。なお、ＸｌｅｔとＸｌｅｔＥｘの差異として、オブジェクトにアクセスするのにＪＳＤＫ  ＡＰＩ７５１の利用とＪＳＤＫプラットフォーム１４８へのアクセスが可能である点が挙げられる。図１の融合機１０１にはさらに、図７のＪＳＤＫシステムに係る要素として、Ｃ言語とＪａｖａ（登録商標）言語のインタフェースとなるＪＳＤＫ  Ｓｅｓｓｉｏｎ７５３とＮａｔｉｖｅ  ＪＳＤＫ  Ｓｅｓｓｉｏｎ７５４等が存在する。図１の融合機１０１にはさらに、図７のＪＳＤＫシステムに係る要素として、Ｊａｖａ（登録商標）コンパイラによりソースコードからバイトコードに一括翻訳されたＪａｖａ（登録商標）プログラムを逐次実行するためのＪａｖａ（登録商標）仮想マシンであるＣＶＭ（コンパクト仮想マシン）７５５等が存在する。
【００５１】
（ＳＡＳ）
図８は、図１のＳＡＳ１８３の機能ブロック図である。図１のＳＡＳ１８３には、インストール部８０１、アップデート部８０２等の機能ブロックが存在する。インストール部８０１は、融合機１０１にセットされたＳＤメモリカード又は融合機１０１に接続されたＷｅｂサーバからＣＶＭを取得して、当該ＣＶＭを当該融合機１０１にインストールする機能ブロックである。アップデート部８０２は、融合機１０１にセットされたＳＤメモリカード又は融合機１０１に接続されたＷｅｂサーバからＣＶＭを取得して、当該ＣＶＭで当該融合機１０１のＣＶＭ７５５（図７参照）をアップデートする機能ブロックである。インストール部８０１は、インストール判断部８１１、インストール制御部８１２、画面制御部８１３、通信制御部８１４等により構成される。アップデート部８０２は、アップデート判断部８２１、アップデート制御部８２２、画面制御部８２３、通信制御部８２４等により構成される。
【００５２】
なお、図８ではインストール部８０１とアップデート部８０２とを明確に区別している。また、後述においてもインストール処理とアップデート処理とを分けて説明する。しかし、これはインストールの概念よりアップデートを除外する趣旨ではない。アップデートはインストールの一形態として考えてよい。
【００５３】
図９は、ＳＡＳ１８３により実行される「インストール処理」について説明するための図である。
【００５４】
第１具体例では、融合機１０１のオペレータが、融合機１０１のＳＤメモリカードスロット６０１ＸにＳＤメモリカード６０２Ｘをセットして、ＳＡＳ１８３のインストール部８０１が、融合機１０１のＳＤメモリカードスロット６０１ＸにセットされたＳＤメモリカード６０２ＸからＣＶＭ７５５Ｘを取得し、当該ＣＶＭ７５５Ｘを当該融合機１０１のＳＤメモリカードスロット６０１にセットされたＳＤメモリカード６０２にインストールする。
【００５５】
第２具体例では先ず、ＰＣ９０１のオペレータが、ＰＣ９０１をＷｅｂサーバ９１１にネットワーク接続して、ＰＣ９０１のＷｅｂブラウザが、ＰＣ９０１にネットワーク接続されたＷｅｂサーバ９１１からＣＶＭ７５５Ｘを取得し、当該ＣＶＭ７５５Ｘを当該ＰＣ９０１のＳＤメモリカードスロット６０１ＸにセットされたＳＤメモリカード６０２Ｘ内に記憶する。次に、融合機１０１のオペレータが、融合機１０１のＳＤメモリカードスロット６０１ＸにＳＤメモリカード６０２Ｘをセットして、ＳＡＳ１８３のインストール部８０１が、融合機１０１のＳＤメモリカードスロット６０１ＸにセットされたＳＤメモリカード６０２ＸからＣＶＭ７５５Ｘを取得し、当該ＣＶＭ７５５Ｘを当該融合機１０１のＳＤメモリカードスロット６０１にセットされたＳＤメモリカード６０２にインストールする。
【００５６】
第３具体例では、融合機１０１のオペレータが、融合機１０１をＷｅｂサーバ９１１にネットワーク接続して、ＳＡＳ１８３のインストール部８０１が、融合機１０１にネットワーク接続されたＷｅｂサーバ９１１からＣＶＭ７５５Ｘを取得し、当該ＣＶＭ７５５Ｘを当該融合機１０１のＳＤメモリカードスロット６０１にセットされたＳＤメモリカード６０２にインストールする。
【００５７】
図１０は、ＳＡＳ１８３により実行される「アップデート処理」について説明するための図である。
【００５８】
第１具体例では、融合機１０１のオペレータが、融合機１０１のＳＤメモリカードスロット６０１ＸにＳＤメモリカード６０２Ｘをセットして、ＳＡＳ１８３のアップデート部８０２が、融合機１０１のＳＤメモリカードスロット６０１ＸにセットされたＳＤメモリカード６０２ＸからＣＶＭ７５５Ｘを取得し、当該ＣＶＭ７５５Ｘで当該融合機１０１のＳＤメモリカードスロット６０１にセットされたＳＤメモリカード６０２のＣＶＭ７５５をアップデートする。
【００５９】
第２具体例では先ず、ＰＣ９０１のオペレータが、ＰＣ１０１をＷｅｂサーバ９１１にネットワーク接続して、ＰＣ９０１のＷｅｂブラウザが、ＰＣ９０１にネットワーク接続されたＷｅｂサーバ９１１からＣＶＭ７５５Ｘを取得し、当該ＣＶＭ７５５Ｘを当該ＰＣ９０１のＳＤメモリカードスロット６０１ＸにセットされたＳＤメモリカード６０２Ｘ内に記憶する。次に、融合機１０１のオペレータが、融合機１０１のＳＤメモリカードスロット６０１ＸにＳＤメモリカード６０２Ｘをセットして、ＳＡＳ１８３のアップデート部８０２が、融合機１０１のＳＤメモリカードスロット６０１ＸにセットされたＳＤメモリカード６０２ＸからＣＶＭ７５５Ｘを取得し、当該ＣＶＭ７５５Ｘで当該融合機１０１のＳＤメモリカードスロット６０１にセットされたＳＤメモリカード６０２のＣＶＭ７５５をアップデートする。
【００６０】
第３具体例では、融合機１０１のオペレータが、融合機１０１をＷｅｂサーバ９１１にネットワーク接続して、ＳＡＳ１８３のアップデート部８０２が、融合機１０１にネットワーク接続されたＷｅｂサーバ９１１からＣＶＭ７５５Ｘを取得し、当該ＣＶＭ７５５Ｘで当該融合機１０１のＳＤメモリカードスロット６０１にセットされたＳＤメモリカード６０２のＣＶＭ７５５をアップデートする。
【００６１】
図１１は、ＳＡＳ１８３により実行される「インストール処理」の第１具体例のフローチャート図である。
【００６２】
融合機１０１のオペレータが、融合機１０１の電源をＯＦＦ（Ｓ１１１）にして、融合機１０１のＳＤメモリカードスロット６０１ＸにＳＤメモリカード６０２Ｘをセット（Ｓ１１２）して、融合機１０１の電源をＯＮ（Ｓ１１３）にすると、ＳＡＳ１８３のインストール判断部８１１が、インストール処理を実行可能かどうかを判断（Ｓ１１４）する。次に、ＳＡＳ１８３のインストール判断部８１１が、インストール処理を実行可能であると判断（Ｓ１１５）すると、ＳＡＳ１８３の画面制御部８１３が、オペレーションパネル２０２の画面上にインストール操作画面を表示（Ｓ１１６）する。次に、融合機１０１のオペレータが、オペレーションパネル２０２の画面上に表示されているインストール操作画面でインストール操作を実施（Ｓ１１７）すると、ＳＡＳ１８３のインストール制御部８１２が、インストール処理を実行（Ｓ１１８）する。即ち、融合機１０１のＳＤメモリカードスロット６０１ＸにセットされたＳＤメモリカード６０２ＸからＣＶＭ７５５Ｘを取得して、当該ＣＶＭ７５５Ｘを当該融合機１０１のＳＤメモリカードスロット６０１にセットされたＳＤメモリカード６０２にインストールする。
【００６３】
図１２は、ＳＡＳ１８３により実行される「インストール処理」の第２具体例のフローチャート図である。
【００６４】
ＰＣ９０１のオペレータが、ＰＣ９０１の画面に表示されているダウンロード操作画面でダウンロード操作を実施（Ｓ２０１）すると、ＰＣ９０１のＷｅｂブラウザが、ダウンロード処理を実行（Ｓ２０２）する。即ち、ＰＣ９０１にネットワーク接続されたＷｅｂサーバ９１１からＣＶＭ７５５Ｘを取得し、当該ＣＶＭ７５５Ｘを当該ＰＣ９０１のＳＤメモリカードスロット６０１ＸにセットされたＳＤメモリカード６０２Ｘ内に記憶する。
【００６５】
融合機１０１のオペレータが、融合機１０１の電源をＯＦＦ（Ｓ２１１）にして、融合機１０１のＳＤメモリカードスロット６０１ＸにＳＤメモリカード６０２Ｘをセット（Ｓ２１２）して、融合機１０１の電源をＯＮ（Ｓ２１３）にすると、ＳＡＳ１８３のインストール判断部８１１が、インストール処理を実行可能かどうかを判断（Ｓ２１４）する。次に、ＳＡＳ１８３のインストール判断部８１１が、インストール処理を実行可能であると判断（Ｓ２１５）すると、ＳＡＳ１８３の画面制御部８１３が、オペレーションパネル２０２の画面上にインストール操作画面を表示（Ｓ２１６）する。次に、融合機１０１のオペレータが、オペレーションパネル２０２の画面上に表示されているインストール操作画面でインストール操作を実施（Ｓ２１７）すると、ＳＡＳ１８３のインストール制御部８１２が、インストール処理を実行（Ｓ２１８）する。即ち、融合機１０１のＳＤメモリカードスロット６０１ＸにセットされたＳＤメモリカード６０２ＸからＣＶＭ７５５Ｘを取得して、当該ＣＶＭ７５５Ｘを当該融合機１０１のＳＤメモリカードスロット６０１にセットされたＳＤメモリカード６０２にインストールする。
【００６６】
図１３は、ＳＡＳ１８３により実行される「インストール処理」の第３具体例のフローチャート図である。
【００６７】
融合機１０１のオペレータが、オペレーションパネル２０２の表示画面上に表示されているダウンロード操作画面でダウンロード操作を実施（Ｓ３０１）すると、ＳＡＳ１８３の通信制御部８１４が、ダウンロード処理を実行（Ｓ３０２）する。即ち、融合機１０１にネットワーク接続されたＷｅｂサーバ９１１からＣＶＭ７５５Ｘを取得し、当該ＣＶＭ７５５Ｘを当該融合機１０１のテンポラリ記憶領域内に記憶する。
【００６８】
融合機１０１のオペレータが、融合機１０１の電源をＯＦＦ（Ｓ３１１）にして、融合機１０１の電源をＯＮ（Ｓ３１３）にすると、ＳＡＳ１８３のインストール判断部８１１が、インストール処理を実行可能かどうかを判断（Ｓ３１４）する。次に、ＳＡＳ１８３のインストール判断部８１１が、インストール処理を実行可能であると判断（Ｓ３１５）すると、ＳＡＳ１８３の画面制御部８１３が、オペレーションパネル２０２の表示画面上にインストール操作画面を表示（Ｓ３１６）する。次に、融合機１０１のオペレータが、オペレーションパネル２０２の表示画面上に表示されているインストール操作画面でインストール操作を実施（Ｓ３１７）すると、ＳＡＳ１８３のインストール制御部８１２が、インストール処理を実行（Ｓ３１８）する。即ち、融合機１０１のテンポラリ記憶領域内に記憶されているＣＶＭ７５５Ｘを取得して、当該ＣＶＭ７５５Ｘを当該融合機１０１のＳＤメモリカードスロット６０１にセットされたＳＤメモリカード６０２にインストールする。
【００６９】
図１４は、ＳＡＳ１８３により実行される「アップデート処理」の第１具体例のフローチャート図である。
【００７０】
融合機１０１のオペレータが、融合機１０１の電源をＯＦＦ（Ｓ４１１）にして、融合機１０１のＳＤメモリカードスロット６０１ＸにＳＤメモリカード６０２Ｘをセット（Ｓ４１２）して、融合機１０１の電源をＯＮ（Ｓ４１３）にすると、ＳＡＳ１８３のアップデート判断部８２１が、アップデート処理を実行可能かどうかを判断（Ｓ４１４）する。次に、ＳＡＳ１８３のアップデート判断部８２１が、アップデート処理を実行可能であると判断（Ｓ４１５）すると、ＳＡＳ１８３の画面制御部８２３が、オペレーションパネル２０２の画面上にアップデート操作画面を表示（Ｓ４１６）する。次に、融合機１０１のオペレータが、オペレーションパネル２０２の画面上に表示されているアップデート操作画面でアップデート操作を実施（Ｓ４１７）すると、ＳＡＳ１８３のアップデート制御部８２２が、アップデート処理を実行（Ｓ４１８）する。即ち、融合機１０１のＳＤメモリカードスロット６０１ＸにセットされたＳＤメモリカード６０２ＸからＣＶＭ７５５Ｘを取得して、当該ＣＶＭ７５５Ｘで当該融合機１０１のＳＤメモリカードスロット６０１にセットされたＳＤメモリカード６０２のＣＶＭ７５５をアップデートする。
【００７１】
図１５は、ＳＡＳ１８３により実行される「アップデート処理」の第２具体例のフローチャート図である。
【００７２】
ＰＣ９０１のオペレータが、ＰＣ９０１の画面に表示されているダウンロード操作画面でダウンロード操作を実施（Ｓ５０１）すると、ＰＣ９０１のＷｅｂブラウザが、ダウンロード処理を実行（Ｓ５０２）する。即ち、ＰＣ９０１にネットワーク接続されたＷｅｂサーバ９１１からＣＶＭ７５５Ｘを取得し、当該ＣＶＭ７５５Ｘを当該ＰＣ９０１のＳＤメモリカードスロット６０１ＸにセットされたＳＤメモリカード６０２Ｘ内に記憶する。
【００７３】
融合機１０１のオペレータが、融合機１０１の電源をＯＦＦ（Ｓ５１１）にして、融合機１０１のＳＤメモリカードスロット６０１ＸにＳＤメモリカード６０２Ｘをセット（Ｓ５１２）して、融合機１０１の電源をＯＮ（Ｓ５１３）にすると、ＳＡＳ１８３のアップデート判断部８２１が、アップデート処理を実行可能かどうかを判断（Ｓ５１４）する。次に、ＳＡＳ１８３のアップデート判断部８２１が、アップデート処理を実行可能であると判断（Ｓ５１５）すると、ＳＡＳ１８３の画面制御部８２３が、オペレーションパネル２０２の画面上にアップデート操作画面を表示（Ｓ５１６）する。次に、融合機１０１のオペレータが、オペレーションパネル２０２の画面上に表示されているアップデート操作画面でアップデート操作を実施（Ｓ５１７）すると、ＳＡＳ１８３のアップデート制御部８２２が、アップデート処理を実行（Ｓ５１８）する。即ち、融合機１０１のＳＤメモリカードスロット６０１ＸにセットされたＳＤメモリカード６０２ＸからＣＶＭ７５５Ｘを取得して、当該ＣＶＭ７５５Ｘで当該融合機１０１のＳＤメモリカードスロット６０１にセットされたＳＤメモリカード６０２のＣＶＭ７５５をアップデートする。
【００７４】
図１６は、ＳＡＳ１８３により実行される「アップデート処理」の第３具体例のフローチャート図である。
【００７５】
融合機１０１のオペレータが、オペレーションパネル２０２の表示画面上に表示されているダウンロード操作画面でダウンロード操作を実施（Ｓ６０１）すると、ＳＡＳ１８３の通信制御部８２４が、ダウンロード処理を実行（Ｓ６０２）する。即ち、融合機１０１にネットワーク接続されたＷｅｂサーバ９１１からＣＶＭ７５５Ｘを取得し、当該ＣＶＭ７５５Ｘを当該融合機１０１のテンポラリ記憶領域内に記憶する。
【００７６】
融合機１０１のオペレータが、融合機１０１の電源をＯＦＦ（Ｓ６１１）にして、融合機１０１の電源をＯＮ（Ｓ６１３）にすると、ＳＡＳ１８３のアップデート判断部８２１が、アップデート処理を実行可能かどうかを判断（Ｓ６１４）する。次に、ＳＡＳ１８３のアップデート判断部８２１が、アップデート処理を実行可能であると判断（Ｓ６１５）すると、ＳＡＳ１８３の画面制御部８２３が、オペレーションパネル２０２の表示画面上にアップデート操作画面を表示（Ｓ６１６）する。次に、融合機１０１のオペレータが、オペレーションパネル２０２の表示画面上に表示されているアップデート操作画面でアップデート操作を実施（Ｓ６１７）すると、ＳＡＳ１８３のアップデート制御部８２２が、アップデート処理を実行（Ｓ６１８）する。即ち、融合機１０１のテンポラリ記憶領域内に記憶されているＣＶＭ７５５Ｘを取得して、当該ＣＶＭ７５５Ｘで当該融合機１０１のＳＤメモリカードスロット６０１にセットされたＳＤメモリカード６０２のＣＶＭ７５５をアップデートする。
【００７７】
図１７は、ＳＡＳ１８３により表示される「インストール操作画面」の画面図である。インストール操作画面には、インストール処理を実行する旨のインストール操作用のＯＫボタン、インストール処理を中止する旨のインストール中止操作用のＣａｎｃｅｌボタン等が存在する。
【００７８】
図１８は、ＳＡＳ１８３により表示される「アップデート操作画面」の画面図である。アップデート操作画面には、アップデート処理を実行する旨のアップデート操作用のＯＫボタン、アップデート処理を中止する旨のアップデート中止操作用のＣａｎｃｅｌボタン等が存在する。
【００７９】
このように、図１の融合機１０１では、当該融合機１０１にＣＶＭをインストールする又は当該融合機１０１のＣＶＭをアップデートすると言う形で当該融合機１０１にＣＶＭを実装することができる。これにより、融合機１０１の出荷後に新規開発，不具合修正，機能向上，新機種対応等で作成されたＣＶＭを当該融合機１０１に実装することができるようになる。
【００８０】
以下、ＣＶＭの機種依存性について説明する。
【００８１】
図１９は、図１の融合機１０１のＣＶＭ７５５の機種依存性について説明するための図である。融合機１０１等の画像形成装置のＣＰＵ２１１の種類には二種類ある。Ｘ８６とＭＩＰＳである。融合機１０１等の画像形成装置の機種別では、高速かつ高価なＸ８６は６０ｐｐｍ以上の各機種に採用されており、低速かつ安価なＭＩＰＳは６０ｐｐｍ未満の各機種に採用されている。図１９では、融合機１０１ＡのＣＰＵ２１１Ａが「Ｘ８６」であり、融合機１０１ＢのＣＰＵ２１１Ｂが「ＭＩＰＳ」である。
【００８２】
そして、融合機１０１等の各画像形成装置で使用可能なＣＶＭ７５５は、融合機１０１等の各画像形成装置のＣＰＵ２１１の種類によって異なるものとする。そのため、融合機１０１等の各画像形成装置で使用可能なＣＶＭ７５５の種類には二種類あることになる。Ｘ８６採用機種用とＭＩＰＳ採用機種用である。これこそが、融合機１０１等の画像形成装置のＣＶＭ７５５の機種依存性である。図１９では、Ｘ８６採用機種の融合機１０１ＡのＣＶＭ７５５Ａが「Ｘ８６採用機種用」であり、ＭＩＰＳ採用機種の融合機１０１ＢのＣＶＭ７５５Ｂが「ＭＩＰＳ採用機種用」である。
【００８３】
ＳＡＳ１８３により実行されるインストール処理では、ＳＡＳ１８３のインストール部８０１は、各融合機１０１で使用可能なＣＶＭが各融合機１０１のＣＰＵ２１１の種類によって異なるような二種類のＣＶＭの内の一種類を融合機１０１にインストールすることになる。図１９では、Ｘ８６採用機種の融合機１０１Ａでは「Ｘ８６採用機種用ＣＶＭ」を当該融合機１０１Ａにインストールする事になり、ＭＩＰＳ採用機種の融合機１０１Ｂでは「ＭＩＰＳ採用機種用ＣＶＭ」を当該融合機１０１Ｂにインストールする事になる。図１１のＳ１１８，図１２のＳ２１８，図１３のＳ３１８がこれに相当する。
【００８４】
ＳＡＳ１８３により実行されるアップデート処理では、ＳＡＳ１８３のアップデート部８０２は、各融合機１０１で使用可能なＣＶＭが各融合機１０１のＣＰＵ２１１の種類によって異なるような二種類のＣＶＭの内の一種類で融合機１０１のＣＶＭ７５５をアップデートすることになる。図１９では、Ｘ８６採用機種の融合機１０１Ａでは「Ｘ８６採用機種用ＣＶＭ」で当該融合機１０１ＡのＸ８６採用機種用ＣＶＭ７５５Ａをアップデートする事になり、ＭＩＰＳ採用機種の融合機１０１Ｂでは「ＭＩＰＳ採用機種用ＣＶＭ」で当該融合機１０１ＢのＭＩＰＳ採用機種用ＣＶＭ７５５Ｂをアップデートする事になる。図１４のＳ４１８，図１５のＳ５１８，図１６のＳ６１８がこれに相当する。
【００８５】
なお、融合機１０１等の画像形成装置のＣＰＵ２１１の種類を三種類以上とし、融合機１０１等の各画像形成装置で使用可能なＣＶＭ７５５の種類を三種類以上としてもよい。また、融合機１０１等の各画像形成装置で使用可能なＣＶＭ７５５を、融合機１０１等の各画像形成装置のライブラリ（例えばＡＰＩ１３３）の種類によって異なるものとしてもよい。
【００８６】
図２０は、図１の融合機１０１のＣＶＭ７５５に係るファイルについて説明するための図である。融合機１０１ＡのＳＤメモリカードスロット６０１にセットされたＳＤメモリカード６０２には「ｃｖｍ＿ｘ８６．ｍｏｄ」と「ｃｖｍ＿ｘ８６．ｍａｃ」と「ｃｖｍ＿ｘ８６．ｃｎｆ」と「ｃｖｍ＿ｘ８６．ｌｉｃ」とが記憶されている。以上のファイルがＣＶＭ７５５Ａに係るファイルであり、ｃｖｍ＿ｘ８６．ｍｏｄにはＣＶＭ７５５Ａが格納されている。融合機１０１ＢのＳＤメモリカードスロット６０１にセットされたＳＤメモリカード６０２には「ｃｖｍ＿ｍｉｐｓ．ｍｏｄ」と「ｃｖｍ＿ｍｉｐｓ．ｍａｃ」と「ｃｖｍ＿ｍｉｐｓ．ｃｎｆ」と「ｃｖｍ＿ｍｉｐｓ．ｌｉｃ」とが記憶されている。以上のファイルがＣＶＭ７５５Ｂに係るファイルであり、ｃｖｍ＿ｍｉｐｓ．ｍｏｄにはＣＶＭ７５５Ｂが格納されている。
【００８７】
Ｘ８６採用機種用ＣＶＭ７５５Ａに係るファイルのファイル名は、ＣＶＭとＸ８６とを一体化したものになっており、そのファイル名からそのファイルがＸ８６採用機種で使用可能なＸ８６採用機種用ＣＶＭに係る物である事を識別可能である。ＭＩＰＳ採用機種用ＣＶＭ７５５Ｂに係るファイルのファイル名は、ＣＶＭとＭＩＰＳとを一体化したものになっており、そのファイル名からそのファイルがＭＩＰＳ採用機種で使用可能なＭＩＰＳ採用機種用ＣＶＭに係る物である事を識別可能である。このように、ＣＶＭ７５５に係るファイルのファイル名は、当該ＣＶＭ７５５を使用可能な融合機１０１等の画像形成装置を識別するための識別情報になっている。
【００８８】
なお、当該ＣＶＭ７５５を使用可能な融合機１０１等の画像形成装置を識別するための識別情報は、必ずしも当該ＣＶＭ７５５に係るファイルのファイル名でなくてもよい。例えば、当該ＣＶＭ７５５に係るファイル内に当該識別情報が格納されていてもよい。但し、この場合、当該識別情報を確認するためにはファイルのオープン処理が必要とされる。したがって、処理効率の観点からは当該識別情報はファイル名に含まれていることが好ましい。
【００８９】
ＳＡＳ１８３により実行されるインストール処理で、融合機１０１のＳＤメモリカードスロット６０１ＸにセットされるＳＤメモリカード６０２Ｘには「ｃｖｍ＿ｘ８６．ｍｏｄ」と「ｃｖｍ＿ｘ８６．ｍａｃ」と「ｃｖｍ＿ｘ８６．ｃｎｆ」と「ｃｖｍ＿ｘ８６．ｌｉｃ」と「ｃｖｍ＿ｍｉｐｓ．ｍｏｄ」と「ｃｖｍ＿ｍｉｐｓ．ｍａｃ」と「ｃｖｍ＿ｍｉｐｓ．ｃｎｆ」と「ｃｖｍ＿ｍｉｐｓ．ｌｉｃ」とが記憶されている。即ち、Ｘ８６採用機種用ＣＶＭに係るファイルの全４個、ＭＩＰＳ採用機種用ＣＶＭに係るファイルの全４個、計８個が記憶されている。ＳＡＳ１８３のインストール部８０１は、ＳＤメモリカード６０２Ｘ内に記憶されているＣＶＭの内のどのＣＶＭをインストールするかを、各ＣＶＭが格納されているファイルのファイル名に基づいて「自動選択」するものとする。ＣＶＭが格納されているファイルのファイル名は、当該ＣＶＭを使用可能な融合機１０１を識別するための識別情報になっており、ＣＶＭが格納されているファイルのファイル名を利用して、当該融合機１０１で使用可能なＣＶＭを「自動選択」することができるのである。図２０では、Ｘ８６採用機種の融合機１０１Ａでは「Ｘ８６採用機種用ＣＶＭ」が自動選択される事になり、ＭＩＰＳ採用機種の融合機１０１Ｂでは「ＭＩＰＳ採用機種用ＣＶＭ」が自動選択される事になる。図１１のＳ１１４，図１２のＳ２１４がこれに相当する。
【００９０】
ＳＡＳ１８３により実行されるアップデート処理で、融合機１０１のＳＤメモリカードスロット６０１ＸにセットされるＳＤメモリカード６０２Ｘには「ｃｖｍ＿ｘ８６．ｍｏｄ」と「ｃｖｍ＿ｘ８６．ｍａｃ」と「ｃｖｍ＿ｘ８６．ｃｎｆ」と「ｃｖｍ＿ｘ８６．ｌｉｃ」と「ｃｖｍ＿ｍｉｐｓ．ｍｏｄ」と「ｃｖｍ＿ｍｉｐｓ．ｍａｃ」と「ｃｖｍ＿ｍｉｐｓ．ｃｎｆ」と「ｃｖｍ＿ｍｉｐｓ．ｌｉｃ」とが記憶されている。即ち、Ｘ８６採用機種用ＣＶＭに係るファイルの全４個、ＭＩＰＳ採用機種用ＣＶＭに係るファイルの全４個、計８個が記憶されている。ＳＡＳ１８３のアップデート部８０２は、ＳＤメモリカード６０２Ｘ内に記憶されているＣＶＭの内のどのＣＶＭでアップデートするかを、各ＣＶＭが格納されているファイルのファイル名に基づいて「自動選択」するものとする。ＣＶＭが格納されているファイルのファイル名は、当該ＣＶＭを使用可能な融合機１０１を識別するための識別情報になっており、ＣＶＭが格納されているファイルのファイル名を利用して、当該融合機１０１で使用可能なＣＶＭを「自動選択」することができるのである。図２０では、Ｘ８６採用機種の融合機１０１Ａでは「Ｘ８６採用機種用ＣＶＭ」が自動選択される事になり、ＭＩＰＳ採用機種の融合機１０１Ｂでは「ＭＩＰＳ採用機種用ＣＶＭ」が自動選択される事になる。図１４のＳ４１４，図１５のＳ５１４がこれに相当する。
【００９１】
このように、図１の融合機１０１では、ＳＤメモリカード６０２Ｘ内に記憶されているＣＶＭの内のどのＣＶＭをインストールするか又はどのＣＶＭでアップデートするかを、各ＣＶＭが格納されているファイルのファイル名に基づいて自動選択する。これにより、二種類以上のＣＶＭを一種類のＳＤメモリカード６０２Ｘで提供することができるようになる。なお、アップデート用のＳＤメモリカード６０２Ｘについては、ｃｎｆファイルとｌｉｃファイルは記憶させておかず、ｍｏｄファイルとｍａｃファイルは一体化して記憶させておく（ｆｗｕファイル）ようにしてもよい。
【００９２】
図２１は、図１の融合機１０１のＣＶＭ７５５に係るｍｏｄファイルとｍａｃファイルについて説明するための図である。融合機１０１ＡのＳＤメモリカードスロット６０１にセットされたＳＤメモリカード６０２内には、ＣＶＭ７５５Ａに係るｍｏｄファイルから作成したメッセージダイジェストＭＤａと、ＣＶＭ７５５Ａに係るｍｏｄファイルのファイル名の「ｃｖｍ＿ｘ８６．ｍｏｄ」から作成したメッセージダイジェストＭＤｂと、ＣＶＭ７５５ＡのプロダクトＩＤから作成したメッセージダイジェストＭＤｃと、当該融合機１０１Ａの機体に固有な機体番号から作成したメッセージダイジェストＭＤｄとを混合して秘密鍵により暗号化して作成した「電子署名」が、ＣＶＭ７５５Ａに係るｍａｃファイルに格納されて記憶されている。融合機１０１ＢのＳＤメモリカードスロット６０１にセットされたＳＤメモリカード６０２内には、ＣＶＭ７５５Ｂに係るｍｏｄファイルから作成したメッセージダイジェストＭＤａと、ＣＶＭ７５５Ｂに係るｍｏｄファイルのファイル名「ｃｖｍ＿ｍｉｐｓ．ｍｏｄ」から作成したメッセージダイジェストＭＤｂと、ＣＶＭ７５５ＢのプロダクトＩＤから作成したメッセージダイジェストＭＤｃと、当該融合機１０１Ｂの機体に固有な機体番号から作成したメッセージダイジェストＭＤｄとを混合して秘密鍵により暗号化して作成した「電子署名」が、ＣＶＭ７５５Ｂに係るｍａｃファイルに格納されて記憶されている。  
ＳＡＳ１８３により実行されるインストール処理で、融合機１０１のＳＤメモリカードスロット６０１ＸにセットされるＳＤメモリカード６０２Ｘ内には、Ｘ８６採用機種用ＣＶＭに係るｍｏｄファイルから作成したＭＤａと、同ＣＶＭに係るｍｏｄファイルのファイル名の「ｃｖｍ＿ｘ８６．ｍｏｄ」から作成したＭＤｂと、同ＣＶＭのプロダクトＩＤから作成したＭＤｃと、当該融合機１０１の機体に固有な機体番号から作成したＭＤｄとを混合して秘密鍵により暗号化して作成した「電子署名」が、同ＣＶＭに係るｍａｃファイルに格納されて記憶されており、ＭＩＰＳ採用機種用ＣＶＭに係るｍｏｄファイルから作成したＭＤａと、同ＣＶＭに係るｍｏｄファイルのファイル名の「ｃｖｍ＿ｍｉｐｓ．ｍｏｄ」から作成したＭＤｂと、同ＣＶＭのプロダクトＩＤから作成したＭＤｃと、当該融合機１０１の機体に固有な機体番号から作成したＭＤｄとを混合して秘密鍵により暗号化して作成した「電子署名」が、同ＣＶＭに係るｍａｃファイルに格納されて記憶されている。ＳＡＳ１８３のインストール部８０１は、自動選択（図２０）したＣＶＭを実際にインストールするかどうかを、そのＣＶＭが格納されているファイルのファイル名等から作成されてＳＤメモリカード６０２Ｘ内に記憶されている「電子署名」が正当かどうかに基づいて「判断」するものとする。Ｘ８６採用機種用ＣＶＭに係るｍｏｄファイルに格納されているＣＶＭをインストールするかどうかは、Ｘ８６採用機種用ＣＶＭに係るｍａｃファイルに格納されている電子署名が正当かどうかに基づいて判断される事になり、ＭＩＰＳ採用機種用ＣＶＭに係るｍｏｄファイルに格納されているＣＶＭをインストールするかどうかは、ＭＩＰＳ採用機種用ＣＶＭに係るｍａｃファイルに格納されている電子署名が正当かどうかに基づいて判断される事になる。図１１のＳ１１４，図１２のＳ２１４がこれに相当する。
【００９３】
ＳＡＳ１８３により実行されるアップデート処理で、融合機１０１のＳＤメモリカードスロット６０１ＸにセットされるＳＤメモリカード６０２Ｘ内には、Ｘ８６採用機種用ＣＶＭに係るｍｏｄファイルから作成したＭＤａと、同ＣＶＭに係るｍｏｄファイルのファイル名の「ｃｖｍ＿ｘ８６．ｍｏｄ」から作成したＭＤｂと、同ＣＶＭのプロダクトＩＤから作成したＭＤｃと、当該融合機１０１の機体に固有な機体番号から作成したＭＤｄとを混合して秘密鍵により暗号化して作成した「電子署名」が、同ＣＶＭに係るｍａｃファイルに格納されて記憶されており、ＭＩＰＳ採用機種用ＣＶＭに係るｍｏｄファイルから作成したＭＤａと、同ＣＶＭに係るｍｏｄファイルのファイル名の「ｃｖｍ＿ｍｉｐｓ．ｍｏｄ」から作成したＭＤｂと、同ＣＶＭのプロダクトＩＤから作成したＭＤｃと、当該融合機１０１の機体に固有な機体番号から作成したＭＤｄとを混合して秘密鍵により暗号化して作成した「電子署名」が、同ＣＶＭに係るｍａｃファイルに格納されて記憶されている。ＳＡＳ１８３のアップデート部８０２は、自動選択（図２０）したＣＶＭで実際にアップデートするかどうかを、そのＣＶＭが格納されているファイルのファイル名等から作成されてＳＤメモリカード６０２Ｘ内に記憶されている「電子署名」が正当かどうかに基づいて「判断」するものとする。Ｘ８６採用機種用ＣＶＭに係るｍｏｄファイルに格納されているＣＶＭでアップデートするかどうかは、Ｘ８６採用機種用ＣＶＭに係るｍａｃファイルに格納されている電子署名が正当かどうかに基づいて判断される事になり、ＭＩＰＳ採用機種用ＣＶＭに係るｍｏｄファイルに格納されているＣＶＭでアップデートするかどうかは、ＭＩＰＳ採用機種用ＣＶＭに係るｍａｃファイルに格納されている電子署名が正当かどうかに基づいて判断される事になる。図１４のＳ４１４，図１５のＳ５１４がこれに相当する。
【００９４】
このように、図１の融合機１０１では、自動選択したＣＶＭを実際にインストールするかどうかまたは自動選択したＣＶＭで実際にアップデートするかどうかを、そのＣＶＭが格納されているファイルのファイル名から作成されてＳＤメモリカード６０２Ｘ内に記憶されている「電子署名」が正当かどうかに基づいて判断する。これにより、ＣＶＭが格納されているファイルのファイル名の改竄を防止することができるようになる。なお、電子署名チェックについては、電子署名全体について実行（ＭＤａ同士を照合，ＭＤｂ同士を照合，ＭＤｃ同士を照合，ＭＤｄ同士を照合）するようにしてもよいし、電子署名のファイル部分と電子書名のファイル名部分についてのみ実行（ＭＤａ同士を照合，ＭＤｂ同士を照合）するようにしてもよいし、電子署名のファイル名部分についてのみ実行（ＭＤｂ同士を照合）するようにしてもよい。
【００９５】
図２２は、ＳＡＳ１８３により実行される「インストール処理」のＳ１１４やＳ２１４について詳説するためのフローチャート図である。
【００９６】
Ｓ１１３やＳ２１３に続いて、ＳＡＳ１８３のインストール判断部８１１は、ＳＤメモリカード６０２Ｘに記憶されているプログラムのインストールに際し、当該融合機１０１のハードウェアに関する情報としてＣＰＵの種類をチェックする必要があるか否かを判断する（Ｓ７００）。すなわち、機種に依存しないプログラムのインストールの場合は当該融合機１０１のＣＰＵの種類は問題とはならない。一方、機種に依存するプログラムのインストールの場合は、当該融合機１０１のＣＰＵの種類によってインストール対象となるファイルが異なる。上述のようにＣＶＭは機種に依存するプログラムである。したがって、インストール判断部８１１は、ＳＤメモリカード６０２Ｘに記憶されているプログラムのプロダクトＩＤ、又はファイル名に基づいて、当該プログラムがＣＶＭであることを判断し、ＣＰＵの種類のチェックは必要であると判断する。
【００９７】
ＳＡＳ１８３のインストール判断部８１１は、ＣＰＵの種類のチェック必要であると判断すると、当該融合機１０１がＸ８６採用機種であるかＭＩＰＳ採用機種であるかを確認（Ｓ７０１）する。当該融合機１０１がＸ８６採用機種であるかＭＩＰＳ採用機種であるかを確認するための方法としては、例えばその判断情報をメモリカード２３５内に格納しておき、インストール判断部８１１が当該判断情報を参照して行っても良い。また、インストール判断部８１１がＣＰＵやコンとロールサービス１５１に問い合わせても良い。または、ＳＡＳ１８３にその判断情報をハードコーディングしておき、それに基づいて行ってもよい。
【００９８】
続いて、ＳＡＳ１８３のインストール判断部８１１は、ＳＤメモリカード６０２Ｘに記憶されているＣＶＭの内のどのＣＶＭをインストールするかを、各ＣＶＭに係るファイルのファイル名に基づいて選択（Ｓ７０２）する。すなわち、ステップＳ７０１において確認されたＣＰＵの種類と、各ＣＶＭの使用が可能な識別情報としての各ＣＶＭに係るファイルのファイル名とを比較することにより、当該融合機１０１に対応したＣＶＭをインストール対象として選択する。具体的には、当該融合機１０１がＸ８６採用機種であるとＸ８６採用機種用ＣＶＭを選択することになり、当該融合機１０１がＭＩＰＳ採用機種であるとＭＩＰＳ採用機種用ＣＶＭを選択することになる。
【００９９】
続いて、ＳＡＳ１８３のインストール判断部８１１は、選択したＣＶＭに係るファイルをメモリ展開（Ｓ７０３）する。続いて、ＳＡＳ１８３のインストール判断部８１１は、選択したＣＶＭに係るｍａｃファイルに格納されている電子署名のＭＤｂが正当かどうかを判断（Ｓ７０４）する。すなわち、選択したＣＶＭに係るｍｏｄファイルのファイル名が正当かどうかを判断する。ＭＤｂが正当かどうかは、ｍｏｄファイルのファイル名から作成したＭＤｂと、ｍａｃファイルに格納されている電子署名を公開鍵により復号化して作成したＭＤｂとの照合をもって判断することができる。続いて、ＳＡＳ１８３のインストール判断部８１１は、選択したＣＶＭに係るｍａｃファイルに格納されている電子署名のＭＤａが正当か否かを判断（Ｓ７０５）する。すなわち、選択したＣＶＭに係るｍｏｄファイルが正当か否かを判断する。ＭＤａが正当か否かは、ｍｏｄファイルから作成したＭＤａと、ｍａｃファイルに格納されている電子署名を公開鍵により復号化して作成したＭＤａとの照合をもって判断することができる。
【０１００】
ＳＡＳ１８３のインストール判断部８１１は、選択したＣＶＭに係るｍａｃファイルに格納されている電子署名の「ＭＤｂ部分」及び「ＭＤａ部分」が正当である場合（分岐１及び分岐２）には、そのＣＶＭをインストールすると判断（Ｓ７１１）することになり、Ｓ１１５やＳ２１５に続く。
【０１０１】
ＳＡＳ１８３のインストール判断部８１１は、選択したＣＶＭに係るｍａｃファイルに格納されている電子署名の「ＭＤｂ部分」又は「ＭＤａ部分」が正当でない場合（分岐１又は分岐２）には、そのＣＶＭをインストールしないと判断（Ｓ７１２）する事になり、Ｓ１１５やＳ２１５に続く。
【０１０２】
図２３は、ＳＡＳ１８３により実行される「アップデート処理」のＳ４１４やＳ５１４について詳説するためのフローチャート図である。
【０１０３】
Ｓ４１３やＳ５１３に続いて、ＳＡＳ１８３のアップデート判断部８２１は、ＳＤメモリカード６０２Ｘに記憶されているプログラムのアップデートに際し、当該融合機１０１のハードウェアに関する情報としてＣＰＵの種類をチェックする必要があるか否かを判断する（Ｓ８００）。すなわち、機種に依存しないプログラムのアップデートの場合は当該融合機１０１のＣＰＵの種類は問題とはならない。一方、機種に依存するプログラムのアップデートの場合は、当該融合機１０１のＣＰＵの種類によってアップデート対象となるファイルが異なる。上述のようにＣＶＭは機種に依存するプログラムである。したがって、アップデート判断部８２１は、ＳＤメモリカード６０２Ｘに記憶されているプログラムのプロダクトＩＤ、又はファイル名に基づいて、当該プログラムがＣＶＭであることを判断し、ＣＰＵの種類のチェックは必要であると判断する。
【０１０４】
ＳＡＳ１８３のアップデート判断部８２１は、ＣＰＵの種類のチェック必要であると判断すると、当該融合機１０１がＸ８６採用機種であるかＭＩＰＳ採用機種であるかを確認（Ｓ８０１）する。当該融合機１０１がＸ８６採用機種であるかＭＩＰＳ採用機種であるかを確認するための方法としては、例えばその判断情報をメモリカード２３５内に格納しておき、アップデート判断部８２１が当該判断情報を参照して行っても良い。また、アップデート判断部８２１がＣＰＵやコンとロールサービス１５１に問い合わせても良い。または、ＳＡＳ１８３にその判断情報をハードコーディングしておき、それに基づいて行ってもよい。
【０１０５】
続いて、ＳＡＳ１８３のアップデート判断部８２１は、ＳＤメモリカード６０２Ｘに記憶されているＣＶＭの内のどのＣＶＭでアップデートするかを、各ＣＶＭに係るファイルのファイル名に基づいて選択（Ｓ８０２）する。すなわち、ステップＳ８０１において確認されたＣＰＵの種類と、各ＣＶＭの使用が可能な識別情報としての各ＣＶＭに係るファイルのファイル名とを比較することにより、当該融合機１０１に対応したＣＶＭをアップデート対象として選択する。具体的には、当該融合機１０１がＸ８６採用機種であるとＸ８６採用機種用ＣＶＭを選択することになり、当該融合機１０１がＭＩＰＳ採用機種であるとＭＩＰＳ採用機種用ＣＶＭを選択することになる。
【０１０６】
続いて、ＳＡＳ１８３のアップデート判断部８２１は、選択したＣＶＭに係るファイルをメモリ展開（Ｓ８０３）する。続いて、ＳＡＳ１８３のアップデート判断部８２１は、選択したＣＶＭに係るｍａｃファイルに格納されている電子署名のＭＤｂが正当かどうかを判断（Ｓ８０４）する。すなわち、選択したＣＶＭに係るｍｏｄファイルのファイル名が正当かどうかを判断する。ＭＤｂが正当かどうかは、ｍｏｄファイルのファイル名から作成したＭＤｂと、ｍａｃファイルに格納されている電子署名を公開鍵により復号化して作成したＭＤｂとの照合をもって判断することができる。続いて、ＳＡＳ１８３のアップデート判断部８２１は、選択したＣＶＭに係るｍａｃファイルに格納されている電子署名のＭＤａが正当か否かを判断（Ｓ８０５）する。すなわち、選択したＣＶＭに係るｍｏｄファイルが正当か否かを判断する。ＭＤａが正当か否かは、ｍｏｄファイルから作成したＭＤａと、ｍａｃファイルに格納されている電子署名を公開鍵により復号化して作成したＭＤａとの照合をもって判断することができる。
【０１０７】
ＳＡＳ１８３のアップデート判断部８２１は、選択したＣＶＭに係るｍａｃファイルに格納されている電子署名の「ＭＤｂ部分」及び「ＭＤａ部分」が正当である場合（分岐１及び分岐２）には、そのＣＶＭでアップデートすると判断（Ｓ８１１）することになり、Ｓ４１５やＳ５１５に続く。
【０１０８】
ＳＡＳ１８３のアップデート判断部８２１は、選択したＣＶＭに係るｍａｃファイルに格納されている電子署名の「ＭＤｂ部分」又は「ＭＤａ部分」が正当でない場合（分岐１又は分岐２）には、そのＣＶＭでアップデートしないと判断（Ｓ８１２）する事になり、Ｓ４１５やＳ５１５に続く。
【０１０９】
（変形例）
図１の融合機１０１は、本発明「画像形成装置」の実施例に該当するものであり、図１の融合機１０１によって実行される情報処理は、本発明「情報処理方法」の実施例に該当するものである。図１のＳＡＳ１８３は、本発明「情報処理プログラム」の実施例に該当するものであり、図１のＳＡＳ１８３が記録されたＣＤ−ＲＯＭやＤＶＤ−ＲＯＭやＳＤメモリカードは、本発明「記録媒体」の実施例に該当するものである。
【図面の簡単な説明】
【０１１０】
【図１】本発明の実施例に該当する融合機を表す。
【図２】図１の融合機に係るハードウェア構成図である。
【図３】図１の融合機に係る外観図である。
【図４】オペレーションパネルを表す。
【図５】融合機起動部を表す。
【図６】ＳＤメモリカード用スロットとＳＤメモリカードに係るソフトウェアを表す。
【図７】図１のＪＳＤＫアプリとＪＳＤＫプラットフォームのクラス図である。
【図８】図１のＳＡＳの機能ブロック図である。
【図９】インストール処理について説明するための図である。
【図１０】アップデート処理について説明するための図である。
【図１１】インストール処理の第１具体例のフローチャート図である。
【図１２】インストール処理の第２具体例のフローチャート図である。
【図１３】インストール処理の第３具体例のフローチャート図である。
【図１４】アップデート処理の第１具体例のフローチャート図である。
【図１５】アップデート処理の第２具体例のフローチャート図である。
【図１６】アップデート処理の第３具体例のフローチャート図である。
【図１７】インストール操作画面の画面図である。
【図１８】アップデート操作画面の画面図である。
【図１９】図１の融合機のＣＶＭの機種依存性について説明するための図である。
【図２０】図１の融合機のＣＶＭに係るファイルについて説明するための図である。
【図２１】図１の融合機のＣＶＭに係るファイルについて説明するための図である。
【図２２】インストール処理のＳ１１４やＳ２１４に係るフローチャート図である。
【図２３】アップデート処理のＳ４１４やＳ５１４に係るフローチャート図である。
【符号の説明】
【０１１１】
１０１  融合機
１１１  ハードウェア
１１２  ソフトウェア
１１３  融合機起動部
１２１  撮像部
１２２  印刷部
１２３  その他のハードウェア
１３１  アプリケーション
１３２  プラットフォーム
１３３  アプリケーションプログラムインタフェース
１３４  エンジンインタフェース
１３５  仮想アプリケーションサービス
１４１  コピーアプリ
１４２  プリンタアプリ
１４３  スキャナアプリ
１４４  ファクシミリアプリ
１４５  ネットワークファイルアプリ
１４６  ＣＳＤＫアプリ
１４７  ＪＳＤＫアプリ
１４８  ＪＳＤＫプラットフォーム
１５１  コントロールサービス
１５２  システムリソースマネージャ
１５３  ハンドラ
１６１  ネットワークコントロールサービス
１６２  ファクシミリコントロールサービス
１６３  デリバリコントロールサービス
１６４  エンジンコントロールサービス
１６５  メモリコントロールサービス
１６６  オペレーションパネルコントロールサービス
１６７  サーティフィケーションコントロールサービス
１６８  ユーザディレクトリコントロールサービス
１６９  システムコントロールサービス
１７１  ファクシミリコントロールユニットハンドラ
１７２  イメージメモリハンドラ
１８１  Ｗｅｂブラウザ
１８２  Ｗｅｂサーバソフト
１８３  ＳＤＫアプリケーションサービス
２０１  コントローラ
２０２  オペレーションパネル
２０３  ファクシミリコントロールユニット
２１１  ＣＰＵ
２１２  ＡＳＩＣ
２２１  ＮＢ
２２２  ＳＢ
２３１  ＭＥＭ−Ｐ
２３２  ＭＥＭ−Ｃ
２３３  ＨＤＤ
２３４  メモリカードスロット
２３５  メモリカード
２４１  ＮＩＣ
２４２  ＵＳＢデバイス
２４３  ＩＥＥＥ１３９４デバイス
２４４  セントロニクスデバイス
３０１  原稿セット部
３０２  給紙部
３０３  排紙部
３１１  タッチパネル
３１２  テンキー
３１３  スタートボタン
３１４  リセットボタン
３１５  機能キー
３１６  初期設定ボタン
３２１  ＡＤＦ
３２２  フラットベッド
３２３  フラットベッドカバー
５０１  メモリモニタ部
５０２  プログラム起動部
６０１  ＳＤメモリカードスロット
６０２  ＳＤメモリカード
６１１  ＳＤメモリカードアクセスドライバ
６１２  ＳＤメモリカードステータスドライバ
６１３  起動処理用プログラム
６１４  ＳＤメモリカードチェックプログラム
７０１  ユーザアプリ
７１１  ＪＳＤＫ  ＧＵＩ  Ｍａｎａｇｅｒ
７１２  Ｔａｓｋ  Ｂａｒ  Ｍａｎａｇｅｒ
７２１  ＪＳＤＫ  Ｍａｉｎ
７２２  ＪＳＤＫ  Ｅｎｖｉｒｏｎｍｅｎｔ
７２３  Ｌｏｃａｌｅ  Ｍａｎａｇｅｒ
７３１  Ｘｌｅｔ  Ｍａｎａｇｅｒ
７３２  Ｍｕｌｔｉ  Ｘｌｅｔ  Ｍａｎａｇｅｒ
７３３  ＪＳＤＫ  Ｍａｎａｇｅｒ
７４１  Ｓｅｎｄ  Ｍａｎａｇｅｒ
７４２  Ｅｖｅｎｔ  Ｍａｎａｇｅｒ
７４３  Ｓｙｓｔｅｍ  Ｅｖｅｎｔ  Ｍａｎａｇｅｒ
７４４  Ｐａｎｅｌ  Ｍａｎａｇｅｒ
７４５  Ｉｎｓｔａｌｌ  Ｍａｎａｇｅｒ
７４６  Ｓｅｒｖｅｒ／Ｃｌｉｅｎｔ  Ｍａｎａｇｅｒ
７４７  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｍａｎａｇｅｒ
７５１  ＪＳＤＫ  ＡＰＩ
７５２  ＪＳＤＫ  ＡＰＩ
７５３  ＪＳＤＫ  Ｓｅｓｓｉｏｎ
７５４  Ｎａｔｉｖｅ  ＪＳＤＫ  Ｓｅｓｓｉｏｎ
７５５  ＣＶＭ
８０１  インストール部
８０２  アップデート部
８１１  インストール判断部
８１２  インストール制御部
８１３  画面制御部
８１４  通信制御部
８２１  アップデート判断部
８２２  アップデート制御部
８２３  画面制御部
８２４  通信制御部
９０１  ＰＣ
９１１  Ｗｅｂサーバ
【図１】
2006148865.tif 000003
【図２】
2006148865.tif 000004
【図３】
2006148865.tif 000005
【図４】
2006148865.tif 000006
【図５】
2006148865.tif 000007
【図６】
2006148865.tif 000008
【図７】
2006148865.tif 000009
【図８】
2006148865.tif 000010
【図９】
2006148865.tif 000011
【図１０】
2006148865.tif 000012
【図１１】
2006148865.tif 000013
【図１２】
2006148865.tif 000014
【図１３】
2006148865.tif 000015
【図１４】
2006148865.tif 000016
【図１５】
2006148865.tif 000017
【図１６】
2006148865.tif 000018
【図１７】
2006148865.tif 000019
【図１８】
2006148865.tif 000020
【図１９】
2006148865.tif 000021
【図２０】
2006148865.tif 000022
【図２１】
2006148865.tif 000023
【図２２】
2006148865.tif 000024
【図２３】
2006148865.tif 000025