"アプリケーションプログラムと、翻訳用プログラムにより翻訳されたアプリケーションプログラムを逐次実行するための逐次実行用プログラムとが記憶されている記憶媒体から、前記アプリケーションプログラムと、前記逐次実行用プログラムとを画像形成装置内に起動させる起動制御手段を備える画像形成装置であって、前記起動制御手段は、前記記憶媒体に記憶されている前記アプリケーションプログラムを画像形成装置内に起動させる際、前記記憶媒体に記憶されている複数のバージョンの前記逐次実行用プログラムの内、当該画像形成装置と適合するバージョンの前記逐次実行用プログラムを自動選択して当該画像形成装置内に起動させることを特徴とする画像形成装置。前記アプリケーションプログラムはJava登録商標アプリケーションプログラムであり、前記翻訳用プログラムはJava登録商標コンパイラであり、前記逐次実行用プログラムはJava登録商標仮想マシンであることを特徴とする請求項1に記載の画像形成装置。前記起動制御手段は、当該画像形成装置の機種と適合するバージョンの前記逐次実行用プログラムを自動選択することを特徴とする請求項1に記載の画像形成装置。アプリケーションプログラムと、翻訳用プログラムにより翻訳されたアプリケーションプログラムを逐次実行するための逐次実行用プログラムとが記憶されている記憶媒体から、前記アプリケーションプログラムと、前記逐次実行用プログラムとを画像形成装置内に起動させる起動制御段階を備える情報処理方法であって、前記起動制御段階で、前記記憶媒体に記憶されている前記アプリケーションプログラムを画像形成装置内に起動させる際、前記記憶媒体に記憶されている複数のバージョンの前記逐次実行用プログラムの内、当該画像形成装置と適合するバージョンの前記逐次実行用プログラムを自動選択して当該画像形成装置内に起動させることを特徴とする情報処理方法。前記アプリケーションプログラムはJava登録商標アプリケーションプログラムであり、前記翻訳用プログラムはJava登録商標コンパイラであり、前記逐次実行用プログラムはJava登録商標仮想マシンであることを特徴とする請求項4に記載の情報処理方法。前記起動制御段階で、当該画像形成装置の機種と適合するバージョンの前記逐次実行用プログラムを自動選択することを特徴とする請求項4に記載の情報処理方法。請求項4乃至6のいずれか1項に記載の情報処理方法をコンピュータに実行させるプログラム。請求項4乃至6のいずれか1項に記載の情報処理方法をコンピュータに実行させるプログラムを記録したコンピュータ読取可能な記録媒体。アプリケーションプログラムを備える画像形成装置であって、当該アプリケーションプログラムが当該画像形成装置内で起動した際、当該アプリケーションプログラムは、当該アプリケーションプログラムのバージョンと当該画像形成装置のバージョンとを照合して、当該アプリケーションプログラムのバージョンと当該画像形成装置のバージョンとが適合する場合は起動を継続し、当該アプリケーションプログラムのバージョンと当該画像形成装置のバージョンとが適合しない場合は起動を解除することを特徴とする画像形成装置。前記アプリケーションプログラムは、当該画像形成装置のバージョンが、当該アプリケーションプログラムのバージョンと対応するバージョンである場合または当該アプリケーションプログラムのバージョンと対応するバージョンより新しいバージョンである場合は起動を継続し、当該画像形成装置のバージョンが、当該アプリケーションプログラムのバージョンと対応するバージョンより古いバージョンである場合は起動を解除することを特徴とする請求項9に記載の画像形成装置。前記アプリケーションプログラムは、当該画像形成装置のバージョンに係る情報を、当該画像形成装置内から取得することを特徴とする請求項9に記載の画像形成装置。アプリケーションプログラムを備える画像形成装置内で実行される情報処理方法であって、当該アプリケーションプログラムが当該画像形成装置内で起動した際、当該アプリケーションプログラムが、当該アプリケーションプログラムのバージョンと当該画像形成装置のバージョンとを照合して、当該アプリケーションプログラムのバージョンと当該画像形成装置のバージョンとが適合する場合は起動を継続し、当該アプリケーションプログラムのバージョンと当該画像形成装置のバージョンとが適合しない場合は起動を解除することを特徴とする情報処理方法。アプリケーションプログラムに相当するプログラムであって、当該プログラムが画像形成装置内で起動した際、当該プログラムは、当該プログラムのバージョンと当該画像形成装置のバージョンとを照合して、当該プログラムのバージョンと当該画像形成装置のバージョンとが適合する場合は起動を継続して、当該プログラムのバージョンと当該画像形成装置のバージョンとが適合しない場合は起動を解除することを特徴とするプログラム。アプリケーションプログラムに相当するプログラムを記録した記録媒体であって、当該プログラムが画像形成装置内で起動した際、当該プログラムは、当該プログラムのバージョンと当該画像形成装置のバージョンとを照合して、当該プログラムのバージョンと当該画像形成装置のバージョンとが適合する場合は起動を継続して、当該プログラムのバージョンと当該画像形成装置のバージョンとが適合しない場合は起動を解除することを特徴とする記録媒体。画像形成装置や画像形成装置用のアプリケーションには様々な機種や様々なバージョンが存在する。よって、あるバージョンのアプリケーションが、ある機種,あるバージョンの画像形成装置では正常に動作するのに、ある機種,あるバージョンの画像形成装置では正常に動作しないという事態が発生し得る。しかし、このような事態が頻発すると商品の信用が失墜してしまうため、このような事態はなるべく回避すべきである。本発明は、様々な機種や様々なバージョンが存在する画像形成装置や画像形成装置用のアプリケーションに関して、画像形成装置と画像形成装置用のアプリケーションの不適合に伴う不都合の発生を回避することを課題とする。そこで上記課題を解決するため、本発明は、アプリケーションプログラムと、翻訳用プログラムにより翻訳されたアプリケーションプログラムを逐次実行するための逐次実行用プログラムとが記憶されている記憶媒体から、前記アプリケーションプログラムと、前記逐次実行用プログラムとを画像形成装置内に起動させる起動制御手段を備える画像形成装置であって、前記起動制御手段は、前記記憶媒体に記憶されている前記アプリケーションプログラムを画像形成装置内に起動させる際、前記記憶媒体に記憶されている複数のバージョンの前記逐次実行用プログラムの内、当該画像形成装置と適合するバージョンの前記逐次実行用プログラムを自動選択して当該画像形成装置内に起動させることを特徴とする。また、上記課題を解決するため、本発明は、アプリケーションプログラムを備える画像形成装置であって、当該アプリケーションプログラムが当該画像形成装置内で起動した際、当該アプリケーションプログラムは、当該アプリケーションプログラムのバージョンと当該画像形成装置のバージョンとを照合して、当該アプリケーションプログラムのバージョンと当該画像形成装置のバージョンとが適合する場合は起動を継続し、当該アプリケーションプログラムのバージョンと当該画像形成装置のバージョンとが適合しない場合は起動を解除することを特徴とする。このような画像形成装置では、画像形成装置と画像形成装置用のアプリケーションの不適合に伴う不都合の発生を回避することができる。また、上記課題を解決するため、本発明は、上記画像形成装置における情報処理方法、前記情報処理方法を前記画像形成装置に実行させるためのプログラム、又は前記画プログラムを記録した記録媒体としてもよい。本発明は、様々な機種や様々なバージョンが存在する画像形成装置や画像形成装置用のアプリケーションに関して、画像形成装置と画像形成装置用のアプリケーションの不適合に伴う不都合の発生を回避することを可能にする。図1は、本発明の実施例に該当する融合機101を表す。図1の融合機101は、種々のハードウェア111と、種々のソフトウェア112と、融合機起動部113により構成される。融合機101のハードウェア111としては、撮像部121と、印刷部122と、その他のハードウェア123が存在する。撮像部121は、読取原稿から画像画像データを読み取るためのハードウェアである。印刷部122は、画像画像データを印刷用紙に印刷するためのハードウェアである。融合機101のソフトウェア112としては、種々のアプリケーション131と、種々のプラットフォーム132が存在する。これらのプログラムは、UNIX登録商標等のOSオペレーティングシステムによりプロセス単位で並列的に実行される。アプリケーション131としては、コピー用のアプリケーションであるコピーアプリ141、プリンタ用のアプリケーションであるプリンタアプリ142、スキャナ用のアプリケーションであるスキャナアプリ143、ファクシミリ用のアプリケーションであるファクシミリアプリ144、ネットワークファイル用のアプリケーションであるネットワークファイルアプリ145が存在する。そしてさらに、Webページの閲覧用のソフトウェアであるWebブラウザ181、Webページの配信用のソフトウェアであるWebサーバソフト182、CSDKアプリ146やJSDKアプリ147の制御用のソフトウェアであるSDKアプリケーションサービスSAS183が存在する。アプリケーション131は、専用のSDKソフトウェア開発キットを使用して開発することができる。SDKを使用して開発したアプリケーション131をSDKアプリと呼ぶ。専用のSDKとしては、C言語でアプリケーション131を開発するためのCSDKや、Java登録商標言語でアプリケーション131を開発するためのJSDKが提供される。CSDKを使用して開発したアプリケーション131をCSDKアプリと呼び、JSDKを使用して開発したアプリケーション131をJSDKアプリと呼ぶ。図1の融合機101にも、CSDKアプリ146と、JSDKアプリ147が存在する。図1の融合機101にはさらに、Java登録商標言語で記述されたJSDKアプリ147とC言語で記述された他のソフトウェア112との仲介を行うソフトウェア112として、JSDKプラットフォーム148が存在する。プラットフォーム132としては、種々のコントロールサービス151、システムリソースマネージャ152、種々のハンドラ153が存在する。コントロールサービス151としては、ネットワークコントロールサービスNCS161、ファクシミリコントロールサービスFCS162、デリバリコントロールサービスDCS163、エンジンコントロールサービスECS164、メモリコントロールサービスMCS165、オペレーションパネルコントロールサービスOCS166、サーティフィケーションコントロールサービスCCS167、ユーザディレクトリコントロールサービスUCS168、システムコントロールサービスSCS169が存在する。ハンドラ153としては、ファクシミリコントロールユニットハンドラFCUH171、イメージメモリハンドラIMH172が存在する。NCS161のプロセスは、ネットワーク通信の仲介を行う。FCS162のプロセスは、ファクシミリのAPIを提供する。DCS163のプロセスは、蓄積文書の配信処理に関する制御を行う。ECS164のプロセスは、撮像部121や印刷部122に関する制御を行う。MCS165のプロセスは、メモリやハードディスクドライブに関する制御を行う。OCS166のプロセスは、オペレーションパネルに関する制御を行う。CCS167のプロセスは、認証処理や課金処理に関する制御を行う。UCS168のプロセスは、ユーザ情報の管理に関する制御を行う。SCS169のプロセスは、システムの管理に関する制御を行う。アプリケーション131とプラットフォーム132の仲介を行うソフトウェア112として、仮想アプリケーションサービスVAS135が存在する。VAS135は、アプリケーション131をクライアントとするサーバプロセスとして動作すると共に、プラットフォーム132をサーバとするクライアントプロセスとして動作する。VAS135は、アプリケーション131から見てプラットフォーム132を隠蔽するラッピング機能を備え、プラットフォーム132のバージョンアップに伴うバージョン差を吸収する役割等を担う。融合機起動部113は、融合機101の電源投入時に最初に実行される。これにより、UNIX登録商標等のOSが起動され、アプリケーション131やプラットフォーム132が起動される。これらのプログラムは、ハードディスクドライブやメモリカードに蓄積されており、ハードディスクドライブやメモリカードから再生されて、メモリに起動されることになる。図2は、図1の融合機101に係るハードウェア構成図である。融合機101のハードウェア111としては、コントローラ201と、オペレーションパネル202と、ファクシミリコントロールユニットFCU203と、撮像部121と、印刷部122が存在する。コントローラ201は、CPU211、ASIC212、NB221、SB222、MEM-P231、MEM-C232、HDDハードディスクドライブ233、メモリカードスロット234、NICネットワークインタフェースコントローラ241、USBデバイス242、IEEE1394デバイス243、セントロニクスデバイス244により構成される。CPU211は、種々の情報処理用のICである。ASIC212は、種々の画像処理用のICである。NB221は、コントローラ201のノースブリッジである。SB222は、コントローラ201のサウスブリッジである。MEM-P231は、融合機101のシステムメモリである。MEM-C232は、融合機101のローカルメモリである。HDD233は、融合機101のストレージである。メモリカードスロット234は、メモリカード235をセットするためのスロットである。NIC241は、MACアドレスによるネットワーク通信用のコントローラである。USBデバイス242は、USB規格の接続端子を提供するためのデバイスである。IEEE1394デバイス243は、IEEE1394規格の接続端子を提供するためのデバイスである。セントロニクスデバイス244は、セントロニクス仕様の接続端子を提供するためのデバイスである。オペレーションパネル202は、オペレータが融合機101に入力を行うためのハードウェア操作部であると共に、オペレータが融合機101から出力を得るためのハードウェア表示部である。図3は、図1の融合機101に係る外観図である。図3には、撮像部121の位置と、印刷部122の位置と、オペレーションパネル202の位置が図示されている。図3には更に、読取原稿のセット先となる原稿セット部301と、印刷用紙の給紙先となる給紙部302と、印刷用紙の排紙先となる排紙部303が図示されている。オペレーションパネル202は、図4のように、タッチパネル311と、テンキー312と、スタートボタン313と、リセットボタン314と、機能キー315と、初期設定ボタン316により構成される。タッチパネル311は、タッチ操作で入力を行うためのハードウェアタッチ操作部であると共に、画面表示で出力を得るためのハードウェア画面表示部である。テンキー312は、キーボタン操作で数字入力を行うためのハードウェアである。スタートボタン313は、ボタン操作でスタート操作を行うためのハードウェアである。リセットボタン314は、ボタン操作でリセット操作を行うためのハードウェアである。機能キー315は、キーボタン操作でCSDKアプリ146やJSDKアプリ147による操作画面を表示させるためのハードウェアである。初期設定ボタン316は、ボタン操作で初期設定画面を表示させるためのハードウェアである。原稿セット部301は、ADF自動原稿搬送装置321と、フラットベッド322と、フラットベッドカバー323により構成される。給紙部302は、4個の給紙トレイにより構成される。排紙部303は、1個の排紙トレイにより構成される。ADF321には、複数枚の読取原稿を重ねてセットすることができる。フラットベッド322には、読取原稿を下向きにセットする。JSDK図5は、図1のJSDKアプリ147とJSDKプラットフォーム148のクラス図である。JSDKアプリ147とJSDKプラットフォーム148は、全体で1プロセスとして、同一プロセス上で実行される。JSDKアプリ147とJSDKプラットフォーム148中の各ブロックは、それぞれこの1プロセス上のスレッドとして、スレッド単位で並列的に実行マルチスレッドされる。JSDKアプリ147とJSDKプラットフォーム148は、Java登録商標コンパイラによりソースコードからバイトコードに一括翻訳されており、Java登録商標仮想マシンにより逐次実行される。JSDKアプリ147とJSDKプラットフォーム148は、Java登録商標2MicroEditionのPersonalBasisProfileをベースとする実装となっている。JSDKアプリ147としては、ユーザアプリ501と、JSDKGUIManager511と、TaskBarManager512等が存在する。ユーザアプリ501は、融合機101のユーザ例えばベンダがJSDKを使用して開発したJSDKアプリである。JSDKGUIManager511は、他のJSDKアプリユーザアプリ501等を操作対象とする操作画面の表示等を行うJSDKアプリである。TaskBarManager512は、他のJSDKアプリユーザアプリ501等を操作対象とするタスクバーの表示等を行うJSDKアプリである。ユーザアプリ501はここでは、スタンドアロンアプリケーションやアプレットと並ぶJava登録商標アプリケーションであるXletである。JSDKGUIManager511とTaskBarManager512はここでは、独自の拡張を施したXletXletExである。JSDKプラットフォーム148には、JSDKMain521と、JSDKEnvironment522と、LocaleManager523と、XletManager531と、MultiXletManager532と、JSDKManager533と、SendManager541と、EventManager542と、SystemEventManager543と、PanelManager544と、InstallManager545と、Server/ClientManager546等のクラスが存在する。JSDKMain521は、JSDKシステムの起動設定を行うクラスである。JSDKEnvironment522は、JSDKシステムの起動環境設定を行うクラスである。LocaleManager523は、国際化対応言語指定を行うクラスである。XletManager531は、1対1でXletのライフサイクルを管理するクラスである。ここでは、5個のXletのライフサイクルが1対1で5個のXletManager531によって管理される。MultiXletManager532は、全てのXletManager531のライフサイクルを管理するクラスである。ここでは、5個のXletManager531のライフサイクルが全て1個のMultiXletManager532によって管理される。JSDKManager533は、JSDKシステム全体のライフサイクルを管理するクラスである。例えば、MultiXletManager532,SendManager541,EventManager542,SystemEventManager543,PanelManager544,InstallManager545,Server/ClientManager546のライフサイクルが、JSDKManager533によって管理される。SystemEventManager543は、図1のプラットフォーム132からのシステムイベント電力モード等の管理を行うクラスである。PanelManager544は、1個のXletがオペレーションパネル202の画面を占有する際の調停等を行うクラスである。InstallManager545は、SDcardやWebからのインストールやアンインストールの管理を行うクラスである。図5のJSDKシステムでは、APIとして、JSDKAPI551とJSDKAPI552等が存在する。なお、XletとXletExの差異として、オブジェクトにアクセスするのにJSDKAPI551の利用とJSDKプラットフォーム148へのアクセスが可能である点が挙げられる。図1の融合機101にはさらに、図5のJSDKシステムに係る要素として、C言語とJava登録商標言語のインタフェースとなるJSDKSession553とNativeJSDKSession554等が存在する。図1の融合機101にはさらに、図5のJSDKシステムに係る要素として、Java登録商標コンパイラによりソースコードからバイトコードに一括翻訳されたJava登録商標プログラムを逐次実行するためのJava登録商標仮想マシンであるCVMコンパクト仮想マシン555等が存在する。JSDKアプリの起動制御以下、画像形成装置や画像形成装置用のアプリケーションの機種やバージョンについて解説した後、JSDKアプリ147の起動制御について説明する。図6により、画像形成装置や画像形成装置用のアプリケーションの機種やバージョンについて解説する。画像形成装置には、オフィス向けのカラー融合機、個人向けのモノクロ融合機、オフィス向けのデジタルプリンタ、個人向けのアナログプリンタ等の様々な機種が存在する。図1の融合機101も、様々な機種が存在する画像形成装置の一機種に相当する。当該融合機101のアプリケーション131やプラットフォーム132には、図6のように、ver1.0、ver1.1、ver1.2、ver2.0、ver3.0等の様々なバージョンが存在する。さて、当該融合機101のプラットフォーム132のバージョンをアップさせる場合、バージョンアップ前のプラットフォーム132とは適合していたアプリケーション131がバージョンアップ後のプラットフォーム132とは適合しなくなる事態は回避すべきである。そこで、当該融合機101のプラットフォーム132をバージョンをアップさせる場合には、当該融合機101のVAS135のバージョンもアップさせる事で、プラットフォーム132のバージョンアップ前後のバージョン差をVAS135に吸収させる事にしている。なお、当該融合機101では、当該融合機101のVAS135のバージョンをもって当該融合機101のバージョンとしている。1第1実施例図7は、JSDKアプリ147の起動制御の第1実施例に係る説明図である。第1実施例では、図7のJSDKアプリ147を題材として説明する。図7のJSDKアプリ147は、SDメモリカードスロット234に挿入されたSDメモリカード235に記憶されている。SAS183は、図7のJSDKアプリ147を、SDメモリカードスロット234に挿入されたSDメモリカード235から融合機101内に起動させる事ができる。図7のJSDKアプリ147は、ver1.0とver1.1とver1.2とver2.0とver3.0が存在するJSDKアプリのver2.0に相当するものとする。そして、図7のJSDKアプリ147のバージョンのver2.0に対応するVAS135のバージョンはver3.0であるものとする。したがって、図7のJSDKアプリ147は、VAS135のバージョンがver3.0以上ならば自身のバージョンと適合するので正常に動作することになるが、VAS135のバージョンがver3.0未満ならば自身のバージョンと適合しないので正常に動作しないことになる。そこで、図7のJSDKアプリ147が融合機101内で起動した際、図7のJSDKアプリ147は、自身のバージョンと当該融合機101のバージョン当該融合機101のVAS135のバージョンとを照合して、自身のバージョンと当該融合機101のバージョンとが適合する場合は起動を継続し、自身のバージョンと当該融合機101のバージョンとが適合しない場合は起動を解除するものとする。すなわち、図7のJSDKアプリ147は、当該融合機101のバージョンが、自身のバージョンと対応するバージョンである場合または自身のバージョンと対応するバージョンより新しいバージョンである場合は起動を継続し、当該融合機101のバージョンが、自身のバージョンと対応するバージョンより古いバージョンである場合は起動を解除することになる。これにより、融合機101とJSDKアプリ147の不適合に伴う不都合の発生を回避する事ができる。融合機101とJSDKアプリ147とが適合するか否かを、JSDKアプリ147が自身で確認し、融合機101とJSDKアプリ147とが適合しない場合には、JSDKアプリ147が自身で起動を解除するからである。起動制御の実行主体を融合機側ではなくアプリ側としているため、起動制御の対策分担が融合機のメーカーからアプリのベンダーに委任されていると言える。ここで、融合機101のAPIアプリケーションプログラムインタフェース133について補足しておく。図1の融合機101では、アプリケーション131からプラットフォーム132への処理要求の授受には、予め定義されている関数により処理要求を受容するAPI133が利用される。融合機101のAPI133は、数百種類にも至る様々な種類のAPIにより構成される。図1の融合機101では、融合機101のバージョンの上位互換性を保障すべく、融合機101のバージョンアップに伴ってAPIの追加は行うが削除は行わないものとする。これにより、図7のJSDKアプリ147は、自身のバージョンと対応するバージョン以上のバージョンの融合機101とは適合する事になると共に、自身のバージョンと対応するバージョン未満のバージョンの融合機101とは適合しない事になる。図8は、JSDKアプリ147の起動制御の第1実施例に係るフロー図である。融合機101の電源が投入S11されると、融合機起動部113がSAS183を起動S12させる。続いて、SAS183がCVM555を起動S13させる。続いて、SAS183がCVM555を利用してJSDKアプリ147を起動S14させる。続いて、JSDKアプリ147は、融合機101内のVAS135のバージョンに係る情報を、融合機101内のVAS135から取得S15する。VAS135は自身のバージョンに係る情報を保持しているものとする。続いて、JSDKアプリ147は、自身のバージョンと融合機101内のVAS135のバージョンとを照合S16する。JSDKアプリ147は自身のバージョンに係る情報を保持しているものとする。そして、JSDKアプリ147は、自身のバージョンと融合機101内のVAS135のバージョンとが適合する場合S17には起動を継続S18し、自身のバージョンと融合機101内のVAS135のバージョンとが適合しない場合S17には起動を解除S19する。2第2実施例図9は、JSDKアプリ147の起動制御の第2実施例に係る説明図である。第2実施例では、図9のJSDKアプリ147を題材として説明する。図9のJSDKアプリ147は、SDメモリカードスロット234に挿入されたSDメモリカード235に記憶されている。SAS183は、図9のJSDKアプリ147を、SDメモリカードスロット234に挿入されたSDメモリカード235から融合機101内に起動させる事ができる。図9Aの融合機101も図9Bの融合機101も図1の融合機101に相当するものとするが、図9Aの融合機101と図9Bの融合機101では機種が相違するものとする。図9Aの融合機101はカラー融合機であり、図9Bの融合機101はモノクロ融合機である。したがって、図9Aの融合機101と図9Bの融合機101ではサポートする機能の種類が相違する。大きい単位で言えば、図9Aの融合機101はモノクロコピー機能,カラーコピー機能,モノクロプリント機能,カラープリント機能等をサポートし、図9Bの融合機101はモノクロコピー機能,モノクロプリント機能等をサポートする。小さい単位で言えば、図9Aの融合機101はモノクロ向けのAPI,カラー向けのAPI等をサポートし、図9Bの融合機101はモノクロ向けのAPI等をサポートする。よって、図9A,BのJSDKアプリ147が図9A,Bの融合機101内でカラー向けの機能を利用しようとした場合、図9AのJSDKアプリ147は正常に動作することになるが、図9BのJSDKアプリ147は正常に動作しないことになる。そこで、図9のJSDKアプリ147が融合機101内で起動した際、図9のJSDKアプリ147は、当該融合機101でサポートされている機能の種類を確認し、当該融合機101でサポートされていない機能についてはその利用を回避することで、当該融合機101でサポートされている機能のみを利用するものとする。これにより、融合機101とJSDKアプリ147の不適合に伴う不都合の発生を回避する事ができる。融合機101でサポートされている機能の種類をJSDKアプリ147が自身で確認して、融合機101でサポートされていない機能についてはJSDKアプリ147が自身でその利用を回避するからである。JSDKアプリ147は、融合機101とJSDKアプリ147の不適合部分についてはその実行を回避する事で、融合機101とJSDKアプリ147の適合部分のみを実行する事になる。起動制御起動の際の機能利用制御の実行主体を融合機側ではなくアプリ側としているため、起動制御の対策分担が融合機のメーカーからアプリのベンダーに委任されていると言える。ただし、図9のJSDKアプリ147は、画像形成装置でサポートされているか否かが画像形成装置の各機種で共通する固定機能については、当該融合機101でサポートされているか否かを確認せず、画像形成装置でサポートされているか否かが画像形成装置の各機種で相違する拡張機能についてのみ、当該融合機101でサポートされているか否かを確認するものとする。なお、どの機能を固定機能としてどの機能を拡張機能とするかは任意である。例えば、画像形成装置の機種としてモノクロ融合機,カラー融合機,モノクロプリンタ,カラープリンタが想定される場合、モノクロプリント機能を固定機能として、カラープリント機能,モノクロコピー機能,カラーコピー機能,タッチパネル機能,ストレージ機能を拡張機能とすることが想定される。さらに、図9のJSDKアプリ147は、融合機101でサポートされていない機能についてその利用を回避する場合には、その事実をユーザインタフェースに反映させるようにしてもよい。例えば、カラーコピー機能の利用を回避する場合には、カラーコピー画面やカラーコピー開始ボタンを表示しないようにしてもよいし、カラーコピー画面やカラーコピー開始ボタンを操作するとエラーメッセージが表示されるようにしてもよい。図10は、JSDKアプリ147の起動制御の第2実施例に係るフロー図である。融合機101の電源が投入S21されると、融合機起動部113がSAS183を起動S22させる。続いて、SAS183がCVM555を起動S23させる。続いて、SAS183がCVM555を利用してJSDKアプリ147を起動S24させる。続いて、JSDKアプリ147は、融合機101でサポートされている機能に係る情報を、融合機101内のVAS135から取得S25する。VAS135は画像形成装置の機種名と画像形成装置でサポートされている機能の種類との対応表を保持しているものとする。続いて、JSDKアプリ147は、融合機101でサポートされている機能の種類を確認S26する。そして、JSDKアプリ147は、融合機101でサポートされている機能S27についてはその利用を回避せずS28、融合機101でサポートされていない機能S27についてはその利用を回避するS29。3第3実施例図11は、JSDKアプリ147の起動制御の第3実施例に係る説明図である。第3実施例では、図11のJSDKアプリ147,CVM555A,CVM555Bを題材として説明する。図11のJSDKアプリ147,CVM555A,CVM555Bは、SDメモリカードスロット234に挿入されたSDメモリカード235に記憶されている。SAS183は、図11のJSDKアプリ147,CVM555A,CVM555Bを、SDメモリカードスロット234に挿入されたSDメモリカード235から融合機101内に起動させる事ができる。画像形成装置の機種はここでは、2004年下半期機種群、2005年上半期機種群、2005年下半期機種群のように機種群として管理されているものとする。画像形成装置の開発を機種群単位で遂行するためである。よって、画像形成装置のJava登録商標の実行環境の変更も機種群単位で実施する。したがって、画像形成装置用のCVMのバージョンはここでは、2004年下半期機種群用CVM、2005年上半期機種群用CVM、2005年下半期機種群用CVMのように機種群単位で存在することになる。一方、本発明者は、JSDKアプリ147、JSDKプラットフォーム148、CVM555を1枚のSDメモリカード235に格納して販売するビジネスモデルについて検討している。この場合に懸案となるのがCVM555の機種群依存性である。ある機種群をリリースするごとに、その機種群用のCVM555を搭載したその機種群用のSDメモリカード235をリリースする事にすると、N種類の機種群のリリース後にはN種類のSDメモリカード235を取り扱う事になり面倒だからである。そこで、第3実施例では、ある機種群をリリースする場合には、その機種群がリリースされる迄にリリースされた全ての機種群のCVM555を1枚のSDメモリカード235に搭載したSDメモリカード235を、全ての機種群に共通のSDメモリカード235としてリリースする事にする。そして、第3実施例では、SAS183は、SDメモリカード235に記憶されているJSDKアプリ147を融合機101内に起動させる際、SDメモリカード235に記憶されている複数のバージョンのCVM555の内、当該融合機101の機種機種群と適合するバージョンのCVM555を自動選択して当該融合機101内に起動させるものとする。これにより、第3実施例では、複数のSDメモリカード235を取り扱う面倒から開放される事になる。ある機種群のリリース後には、その機種群に伴ってリリースされたSDメモリカード235だけを取り扱う事になるからである。また、第3実施例では、融合機101とJSDKアプリ147SDメモリカード235の不適合に伴う不都合の発生が回避される事になる。SDメモリカード235が共通化されていることで、SDメモリカード235の取り違えの問題が回避されているからである。図11を実例として詳細に説明する。図11のCVM555A,CVM555Bは2004年下半期機種群用CVM,2005年上半期機種群用CVMに相当する。すなわち、図11のSDメモリカード235は、2005年度上半期機種群に伴ってリリースされたSDメモリカード235に相当する。そして、図11の融合機101は2005年上半期機種群に属する機種の画像形成装置に相当する。したがって、図11のSAS183は、SDメモリカード235に記憶されているJSDKアプリ147を融合機101内に起動させる際、SDメモリカード235に記憶されている複数のバージョンのCVM555の内、当該融合機101の機種群2005年上半期機種群と適合するバージョン2005年上半期機種群用CVMのCVM555を自動選択して当該融合機101内に起動させるものとする。図12は、JSDKアプリ147の起動制御の第3実施例に係るフロー図である。融合機101の電源が投入S31されると、融合機起動部113がSAS183を起動S32させる。続いて、SAS183は、融合機101の機種名機種群名に係る情報を、融合機101内のVAS135から取得S33する。VAS135は融合機101の機種名機種群名に係る情報を保持しているものとする。続いて、SAS183は、SDメモリカード235に記憶されている複数のバージョンのCVM555の内、融合機101の機種機種群と適合するバージョンのCVM555を自動選択S34して融合機101内に起動S35させる。続いて、SAS183は、自動選択して起動させたそのCVM555を利用して、SDメモリカード235に記憶されているJSDKアプリ147を融合機101内に起動S36させる。4第4実施例図13は、JSDKアプリ147の起動制御の第4実施例に係る説明図である。第4実施例は、図13のJSDKアプリ147及びバージョンコントローラ136等を題材として説明する。図13のJSDKアプリ147は、SDメモリカードスロット234に挿入されたSDメモリカード235に記憶されている。一方、バージョンコントローラ136は、JSDKアプリ147が利用する機能と、融合機101においてサポートされている機能との不整合を調整するプログラムであり、SDメモリカード235、非図示のUSBメモリ、非図示のフラッシュメモリ、HDD233、又はイントラネット若しくはインターネット等のネットワークを介して接続されている他のコンピュータにおける記憶媒体上等、書き換え可能な記憶媒体に格納されており、更新可能とされている。なお、SAS183は、SDKアプリ147やバージョンコントローラ136等を融合機101内に起動させる事ができる。図14は、JSDKアプリ147の起動制御の第4実施例に係るフロー図である。融合機101の電源が投入S41されると、融合機起動部113がSAS183を起動S42させる。続いて、SAS183がCVM555とバージョンコントローラ136とを起動させるS43、S44。更に、SAS183は、CVM555を利用してJSDKアプリ147を起動S45させる。続いて、バージョンコントローラ147は、融合機101でサポートされている機能に係る情報以下、機器サポート情報という。を、融合機101内のVAS135から取得S46すると共に、JSDKアプリ147が利用する機能に係る情報以下、アプリ利用情報という。をJSDKアプリ147より取得するS47。図15は、機器サポート情報の例を示す図である。図15において、機器サポート情報600は、XML形式で記述された例が示されているが、その記述形式は特定のものに限定されない。機器サポート情報600において、inf_version要素601は、当該機器サポート情報600が従う文法構造のバージョン1.2を示す以下機器サポート情報バージョンという。。また、function_list要素602は、融合機101がサポートしている機能のリストを示す。当該リスト内では、各機能のバージョン情報が示されている。例えば、copy要素6021には、融合機101に現在実装されているコピーアプリ141のバージョン1.03が示されている。またCVM要素6024には、融合機101に現在実装されているCVM555のバージョン1.01が示されている。また、図16は、アプリ利用情報の例を示す図である。図16のアプリ利用情報700は、図15の機器サポート情報600と同様の文法構造にしたがう。すなわち、アプリ利用情報700において、inf_version要素701は、当該アプリ利用情報700が従う文法構造のバージョン1.3を示す以下アプリ利用情報バージョンという。。また、function_list要素702は、JSDKアプリ147が利用する機能とそのバージョン情報とのリストを示す。例えば、CVM要素7021には、JSDKアプリ147が使用するCVM555のバージョン1.02が示されている。続いて、バージョンコントローラ136は、機器サポート情報バージョンとアプリ利用情報バージョンとに基づいて、自らが当該機器サポート情報600及当該アプリ利用情報700とを解釈可能か否かを判定するS48。すなわち、機器サポート情報600やアプリ利用情報700の文法構造は、拡張等によって更新される可能性があり、バージョンコントローラ136には解釈できないタグ等が追加されている場合もあるからである。本実施例では、アプリ利用情報バージョンの方が新しいため、バージョンコントローラ136は、少なくともアプリ利用情報バージョン1.3以上のバージョンを解釈可能である必要がある。なお、バージョンコントローラ136には、当該バージョンコントローラ136が解釈可能なバージョンが組み込まれている。したがって、当該組み込まれているバージョンが、機器サポート情報バージョンとアプリ利用情報バージョンとの少なくともいずれか一方より古い場合S48でYes、バージョンコントローラ136は、自らは、機器サポート情報又はアプリ利用情報に対して古いものと判定し、その旨をSAS183に通知する。当該通知を受けたSAS183は、当該機器サポート情報バージョン及びアプリ利用情報バージョンに対応可能なバージョンコントローラ136を、例えば、ネットワークを介した所定のサーバよりダウンロードする。これによって、バージョンコントローラ13は自動的に更新されるS49。但し、バージョンコントローラ136は、ユーザによって手動で更新されてもよい。手動による更新の場合、ユーザからの指示は、オペレーションパネル202やWebページ等を介して入力される。ステップS47又はS49に続いてステップS50に進み、バージョンコントローラ136は、機器サポート情報600とアプリ利用情報700とを照合することにより、JSDK147アプリが利用する機能が、融合機101でサポートされているか否かを判定するS50。例えば、アプリ利用情報700においてリストアップされている機能が、機器サポート情報600においてリストアップされている機能に含まれており、かつ、機器における当該機能のバージョンがアプリが利用するバージョンと同じであるか新しい場合、当該機能は、融合機101でサポートされていると判定される。この場合、JSDKアプリ147は、当該機能の利用を回避しないS51。一方、上記以外の場合、すなわち、アプリ利用情報700においてリストアップされている機能が機器サポート情報600においてリストアップされていないか、又は、機器サポート情報600にリストアップされていたとしても、機器における当該機能のバージョンが、アプリが利用するバージョンより古い場合、当該機能は、融合機101でサポートされていないと判定される。この場合、ステップS52に進み、バージョンコントローラ136は、アクション情報を融合機101内の記録媒体より取得するS52。図17は、アクション情報の例を示す図である。図17のアクション情報800は、アプリ利用情報と機器サポート情報とに不一致が生じた場合に実行すべき処理が定義されている情報である。すなわち、アクション情報800のaction_list要素801には、機能毎に実行すべき定義がaction要素として定義されている。例えば、copy要素8012やCVM要素8013に含まれているaction要素の値は、upadteとされている。これは、当該機能にかかるプログラムをダウンロード等によって更新することにより、JSDKアプリ147に対応させることを意味する。なお、この場合、ダウンロード元を識別するための情報等も記述されうるが、図17においては便宜上省略されている。また、scan要素8012に含まれているaction要素の値は、ignoreとされている。これは、当該機能については、例えば、アプリケーション側と不整合があっても融合機101側での更新は行わず、アプリケーションの機能を制限することを意味する。したがって、ステップS52に続いて実行されるステップS53では、アクション情報800に応じた処理が実行される。なお、アクション情報800に従って融合機101側の機能を更新する際、バージョンコントローラ136は、融合機101の例えばフラッシュメモリ等の内部に記録されている、プロセス間の依存関係を示す情報以下プロセス依存情報という。に基づいて、更新する機能が依存関係を有する情報を同時に更新するようにしてもよい。図18は、プロセス依存情報を概念的に示す図である。図18のプロセス依存情報900では、矢印の元のプロセス機能が、矢印の先のプロセス機能に対して依存関係を有していることを示す。例えば、コピーアプリ141は、SCS169及びMCS165に依存関係を有している。また、CVM555は、VAS135に依存関係を有している。なお、図18において、プロセス依存情報900は、ツリー構造によって概念的に表現されているが、例えば、XML形式によって当該ツリー構造を表現してもよい。また、プロセス機能が更新されて、依存関係が更新される場合は、当該プロセス依存情報900も更新するようにするとよい。そうするためには、プロセス毎に、当該プロセスが依存関係を有するプロセスを特定するための情報を付加するようにすればよい。ここで、ステップS47においてバージョンコントローラ136が、JSDKアプリ147よりアプリ利用情報700を取得するための仕組みについて詳述する。一般的に、Java登録商標のプログラムは、.javaという拡張子の付いたソースファイルがコンパイルされることにより、当該ソースファイル内に定義されたクラスごとに.classという拡張子の付いたクラスファイルが生成される。そして、一つ以上のソースファイルより生成されたクラスファイルを機能単位でアーカイブ化し、.jarという拡張子の付いたjarファイルが生成される。当該jarファイルには、その一部に当該jarファイルの単位でのバージョン情報を管理する仕組みがある。したがって、このjarファイル単位でのバージョン情報に基づいて、アプリ利用情報が生成されてもよい。但し、jarファイル単位では、その内部に含まれているクラス単位によるバージョンまでは識別できない。したがって、クラス単位でのバージョンの識別が必要な場合は、各クラスのバージョンを示すようなクラスを別途定義し、jarファイルに含めておけばよい。そうすることにより、当該バージョンを示すクラスにjarファイルの外部よりアクセスすることで各クラスのバージョンを識別することができ、より細かい単位でのアプリ利用情報を作成することができる。上述したように、第4の実施例の融合機101によれば、アプリケーションが利用したい機能と融合機101がサポートしている機能との整合性の判断主体バージョンコントローラ136が、更新可能な構成とされているため、当該整合性を判断するために必要なプロトコルアプリ利用情報や機器サポート情報等に更新があった場合でも、当該バージョンコントローラ136を更新することで、柔軟に対応することができる。また、融合機101においてサポートされていない機能があった場合は、可能な範囲で当該機能を補充したり更新したりすることができるため、ユーザにとってより利便性の高いサービスを提供することができる。さらに、融合機101においてサポートされていない機能があった場合は、アクション情報900に基づいて、その後の動作が判断される。したがって、機能毎に柔軟な対処を行うことができる。"