(57)【要約】      （修正有）【課題】バージョンの異なるアプリケーション間での設定データのインポートを安全に行うことを可能にすること。【解決手段】画像形成装置１は、ストレージ１０４に、アプリケーションの情報として、アプリケーションごとに、metaファイル（設定データバージョン、設定データ互換バージョンを含む）を記憶する。画像形成装置1のアプリケーション管理部は、アプリケーションの設定データをインポートする場合、インポート対象の設定データのインポートの可否を、該設定データのバージョン、該インポート対象の設定データに対応するアプリケーションの情報として記憶される設定データバージョン及び設定データ互換バージョンを用いて判定し、判定結果に応じて、インポート対象の設定データのインポートを行うか否かを制御する。【選択図】図１
2019212242.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションをインストールして実行可能な情報処理装置であって、
前記アプリケーションの情報として、アプリケーションごとに、該アプリケーションの設定データバージョンを示す第１バージョン情報と、該アプリケーションに互換性のある設定データバージョンを特定可能な第２バージョン情報を記憶可能な記憶手段と、
前記アプリケーションの設定データをインポートする場合、インポート対象の設定データのインポートの可否を、該インポート対象の設定データのバージョンと、該インポート対象の設定データに対応するアプリケーションの情報として前記記憶手段に記憶される情報を用いて判定し、該判定の結果に基づいて該設定データのインポートを行うか否かを制御する制御手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記制御手段は、前記アプリケーションの設定データをインポートする場合、前記インポート対象の設定データのバージョンが、該インポート対象の設定データに対応するアプリケーションの情報として前記記憶手段に記憶される前記第１バージョン情報と前記第２バージョン情報により特定されるバージョンの範囲に含まれる場合には、該設定データのインポートが可能と判定し、前記範囲に含まれない場合には該設定データのインポートが可能でないと判定することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記制御手段は、前記アプリケーションの設定データをインポートする場合、前記記憶手段に、前記インポート対象の設定データに対応するアプリケーションの情報として前記第１バージョン情報が記憶されていない場合、前記判定に用いる前記第１バージョン情報を予め決められたバージョンとすることを特徴とする請求項１又は２のいずれか１項に記載の情報処理装置。
【請求項４】
前記制御手段は、前記アプリケーションの設定データをインポートする場合、前記記憶手段に、前記インポート対象の設定データに対応するアプリケーションの情報として前記第２バージョン情報が記憶されていない場合、前記判定に用いる前記第２バージョン情報を予め決められたバージョンとすることを特徴とする請求項１〜３のいずれか１項に記載の情報処理装置。
【請求項５】
前記制御手段は、前記アプリケーションの設定データをエクスポートする場合、エクスポート対象のアプリケーションの設定データに、該アプリケーションの情報として前記記憶手段に記憶される前記第１バージョン情報を付加してエクスポートすることを特徴とする請求項１〜４のいずれか１項に記載の情報処理装置。
【請求項６】
前記制御手段は、前記アプリケーションの設定データをエクスポートする場合、前記記憶手段に、前記エクスポート対象のアプリケーションの情報として前記第１バージョン情報が記憶されていない場合、前記エクスポートで付加する前記第１バージョン情報を予め決められたバージョンとすることを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記制御手段は、前記アプリケーションの設定データをエクスポートする場合、エクスポート対象のアプリケーションの情報として前記記憶手段に記憶されている前記第１バージョン情報が特定のバージョンを示す場合には、前記エクスポートを禁止することを特徴とする請求項５又は６に記載の情報処理装置。
【請求項８】
前記記憶手段は、前記アプリケーションの情報として、アプリケーションごとに、該アプリケーションの識別情報を記憶可能であり、
前記制御手段は、前記アプリケーションの設定データをエクスポートする場合、エクスポート対象のアプリケーションの設定データに、該アプリケーションの情報として前記記憶手段に記憶される前記アプリケーションの識別情報を付加し、
さらに、前記制御手段は、前記アプリケーションの設定データをインポートする場合、インポート対象の設定データに付加されているアプリケーションの識別情報に基づいて、該インポート対象の設定データに対応するアプリケーションを特定することを特徴とする請求項５〜７のいずれか１項に記載の情報処理装置。
【請求項９】
画像形成装置であることを特徴とする請求項１〜８のいずれか１項に記載の情報処理装置。
【請求項１０】
アプリケーションをインストールして実行可能であり、前記アプリケーションの情報として、アプリケーションごとに、該アプリケーションの設定データバージョンを示す第１バージョン情報と、該アプリケーションに互換性のある設定データバージョンを特定可能な第２バージョン情報を記憶可能な記憶手段を有する情報処理装置の制御方法であって、
前記アプリケーションの設定データをインポートする場合、インポート対象の設定データのインポートの可否を、該インポート対象の設定データのバージョンと、該インポート対象の設定データに対応するアプリケーションの情報として前記記憶手段に記憶される情報を用いて判定する判定ステップと、
前記判定ステップでの判定の結果に基づいて該設定データのインポートを行うか否かを制御する制御ステップと、
を有することを特徴とする情報処理装置の制御方法。
【請求項１１】
コンピュータを、請求項１〜９のいずれか１項に記載の制御手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションをインストールして実行可能な情報処理装置、情報処理装置の制御方法及びプログラムに関する。
【背景技術】
【０００２】
従来から、画像形成装置に拡張プログラムをアドインし、画像形成装置の機能を拡張できるシステムが普及している。こうしたシステムにおいては、画像形成装置の制御プログラムとは別に、拡張プログラムを動かす実行環境を持つ。
拡張プログラムには、設定データやリソースデータ等が付随しており、これらをまとめて拡張アプリケーションが構成される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−６９０７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、拡張アプリケーションでは、機能の追加や向上、不具合の修正等のため、バージョンが更新されることがある。例えば、以前のバージョンには存在していなかった機能を新しいバージョンで採用したり、以前のバージョンに存在していた機能を新しいバージョンで廃止したりすることなどがある。このような場合、拡張アプリケーションの設定データには、新たに採用された機能に関する設定データや、既に廃止された機能に関する設定データを含むものや含まないものが存在することになる。このため、バージョンの異なる拡張アプリケーションの設定データをインポートすると、拡張アプリケーションが不正に動作してしまう可能性がある。この課題は画像形成装置に限定されるものではなく、アプリケーションプログラムをインストールして実行可能な情報処理装置に共通の課題である。
【０００５】
本発明は、上記の課題を解決するためになされたものである。本発明は、バージョンの異なるアプリケーション間であっても設定データのインポートを安全に行うことができる仕組みを提供することを目的とするものである。
【課題を解決するための手段】
【０００６】
本発明は、アプリケーションをインストールして実行可能な情報処理装置であって、前記アプリケーションの情報として、アプリケーションごとに、該アプリケーションの設定データバージョンを示す第１バージョン情報と、該アプリケーションに互換性のある設定データバージョンを特定可能な第２バージョン情報を記憶可能な記憶手段と、前記アプリケーションの設定データをインポートする場合、インポート対象の設定データのインポートの可否を、該インポート対象の設定データのバージョンと、該インポート対象の設定データに対応するアプリケーションの情報として前記記憶手段に記憶される情報を用いて判定し、該判定の結果に基づいて該設定データのインポートを行うか否かを制御する制御手段と、を有することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、バージョンの異なるアプリケーション間であっても設定データのインポートを安全に行うことができる。この結果、バージョンの異なる拡張アプリケーションの設定データをインポートすることに起因する拡張アプリケーションの不正動作を防止することが可能となる。
【図面の簡単な説明】
【０００８】
【図１】本実施形態の画像形成装置のハードウェア構成図。
【図２】本実施形態の画像形成装置の拡張アプリケーションの実行環境を示す図。
【図３】本実施形態の画像形成装置で動作するソフトウェアモジュールの構成図。
【図４】本実施形態の画像形成装置を含む印刷システムの構成図。
【図５】拡張アプリケーションの設定処理を例示するフローチャート。
【図６】拡張アプリケーションの設定データを例示する図。
【図７】画像形成装置の操作部に表示される操作画面を例示する図。
【図８】拡張アプリケーションを起動する際の処理を例示するフローチャート。
【図９】拡張アプリケーション実行処理の詳細を例示するフローチャート。
【図１０】画像形成装置に記憶される拡張アプリケーションの情報を例示する図。
【図１１】拡張アプリケーションの静的な情報を例示する図。
【図１２】metaファイルの構成を例示する図。
【図１３】設定データのエクスポート及びインポート処理を説明する図。
【図１４】機能が追加された拡張アプリケーションの処理を例示するフローチャート。
【図１５】機能が追加された拡張アプリケーションの設定データを例示する図。
【図１６】機能が追加され拡張アプリケーションのmetaファイルの情報を例示する図。
【図１７】本実施形態のエクスポート処理を例示するフローチャート。
【図１８】本実施形態のエクスポート処理で生成された設定情報の構成図。
【図１９】本実施形態のインポート処理を例示するフローチャート。
【図２０】本実施形態における設定データのインポート処理の可否を説明する図。
【発明を実施するための形態】
【０００９】
以下、本発明を実施するための形態について図面を用いて説明する。
図１は、本発明の情報処理装置の一実施形態を示す画像形成装置の主要なハードウェア構成の一例を示すブロック図である。なお、本実施形態では、一例として画像形成装置を用いて説明するが、本発明はこれに限定されるものではなく、アプリケーションプログラムをインストールして実行可能な情報処理装置であれば適用可能である。
【００１０】
図１に示すように、本実施形態の画像形成装置1は、コントローラユニット100を含む。
コントローラユニット100には、画像入力デバイスであるスキャナ170と、画像出力デバイスであるプリンタ195が接続されるとともに、操作部112が接続される。
コントローラユニット100は、スキャナ170で読み取られた画像データを、プリンタ195により印刷出力するコピー機能等の各種機能を実現するための制御を行う。
【００１１】
コントローラユニット100は、CPU101を有する。CPU101は、ROM103に格納されているブートプログラムにより、オペレーティングシステム（OS）を立ち上げる。そして、CPU101は、OS上で、ストレージ104等に格納されているプログラムを実行し、これにより各種の処理を実行する。
【００１２】
CPU101の作業領域としては、RAM102が用いられる。RAM102は、作業領域を提供するとともに、画像データを一時記憶するための画像メモリ領域を提供する。
ストレージ104は、プログラムや画像データ、その他各種データを格納する。
【００１３】
CPU101には、システムバス107を介して、各種デバイスが接続される。例えば、CPU101には、RAM102とROM103とストレージ104が接続される。また、CPU101には、操作部I／F（操作部インターフェース）106、ネットワークI／F（ネットワークインターフェース）110、USBホストI／F（USBホストインターフェース）113が接続される。さらに、CPU101には、画像バスI／F（画像バスインターフェース）105も接続される。
【００１４】
操作部I／F106は、タッチパネルを有する操作部112とのインターフェースであり、操作部112に表示すべき画像データを操作部112に対して出力する。また、操作部I／F106は、操作部112においてユーザーにより入力された情報をCPU101に送出する。
ネットワークI／F110は、画像形成装置をLANに接続するためのインターフェースである。
【００１５】
USBホストI／F113は、USBストレージ114と通信するインターフェースである。USBホストI／F113は、ストレージ104に格納されているデータをUSBストレージ114に記憶させるための出力部でもある。また、USBホストI／F113は、USBストレージ114に格納されているデータを入力し、CPU101にそれを送信する。
USBストレージ114は、データを格納する外部記憶装置であり、USBホストI／F113に対して着脱可能である。USBホストI／F113には、USBストレージ114を含む複数のUSBデバイスが接続可能である。
【００１６】
画像バスI／F105は、システムバス107と、画像データを高速で転送する画像バス108とを接続し、データ形式を変換するためのバスブリッジである。
画像バス108は、例えばPCIバスまたはIEEE1394などによって構成される。画像バス108上には、デバイスI／F120、スキャナ画像処理部180、プリンタ画像処理部190が設けられる。
【００１７】
デバイスI／F120には、スキャナ170およびプリンタ195が接続される。デバイスI／F120は、画像データの同期系／非同期系の変換を行う。
スキャナ画像処理部180は、入力画像データに対し補正、加工、編集を行う。
プリンタ画像処理部190は、プリント出力画像データに対して、プリンタ195に応じた補正、解像度変換などを行う。
【００１８】
図２は、本実施形態の画像形成装置1の拡張アプリケーションの実行環境の一例を示すソフトウェア・ブロック図である。図２に示す各モジュールは、ストレージ104等に記憶されているプログラムを、CPU101がRAM102にロードし、実行することにより実現される。
【００１９】
オペレーティングシステムであるOS201上では、プリンタ、FAX、スキャナなどのような、画像処理ユニットを制御するためのネイティブプログラム210が動作している。OS201上では、さらに、仮想マシン（Virtual Machine；VM）230が動作している。VM230は、拡張アプリケーションの実行環境として機能する。
【００２０】
VM230は、拡張アプリケーション240を制御するプログラムを理解し実行するモジュールである。拡張アプリケーション240は、必ずVM230上で動作する。VM230で動作するプログラムは、CPU101で動作する命令とは異なり、VM230専用の命令で動作する。この命令をバイトコードと呼ぶ。一方、CPU専用の命令をネイティブコードと呼ぶ。
【００２１】
CPU101上ではネイティブコードが動作する。一方、VM230では、VM230がバイトコードを逐次解釈し処理することで、バイトコードが動作する。VMには、バイトコードをそのまま逐次解釈して処理するタイプと、バイトコードをネイティブコードに変換してから処理するタイプとがある。図２におけるVM230は前者のタイプ（逐次解釈処理するタイプ）であるが、後者のタイプ（バイトコードをネイティブコードに変換後処理するタイプ）であってもよい。
【００２２】
一般的に、CPUで動作する命令には互換性がないように、VMで動作する命令にも互換性がない。すなわち、あるVMで動作する命令であっても、種別の異なるVMでは動作しない。
また、図２におけるVM230は、CPU101上で動作するソフトウェアモジュールであるが、ハードウェアモジュールであってもよい。
【００２３】
ネイティブプログラム210内では、プリンタ、FAX、スキャナのような画像処理ユニットを制御するためのネイティブスレッド214と、VM230を動かすためのVMスレッド215が生成される。VMスレッド215は、VM230の数に対応する数だけ生成される。図２の例では、VMスレッドA-1（211）、VMスレッドA-2（212），VMスレッドB-1（213）の3つのVMスレッドが生成されている。
【００２４】
VMシステムサービス220は、拡張アプリケーションから共通利用されるユーティリティライブラリである。拡張アプリケーション240からVMシステムサービス220の機能を呼び出すことにより、画像形成装置の各モジュールへアクセスすること等が可能となる。なお、VMシステムサービス220を利用することにより、拡張アプリケーションを開発する手間を省くことが可能である。
【００２５】
VMシステムサービス220には、VMとして最低限動作させる標準VMシステムサービス221と、画像形成装置の各モジュールへのアクセスやOSの機能を提供する拡張VMシステムサービス222がある。
標準ＶＭシステムサービス221は、拡張アプリケーションをロードする機能も含む。VM230が拡張アプリケーション240内のバイトコードで指示されているAPI（Application Program Interface）を実行することにより、APIに関連付けられているVMシステムサービス220が呼び出される。
【００２６】
VM230は、拡張アプリケーション240を実行する。VM230は、拡張アプリケーションのスレッド毎に生成される。図２に示す例では、拡張アプリケーションA241の２つのスレッド、VMスレッドA-1（211）、VMスレッドA-2（212）に対応してVM A-1（231）、VM A-2（232）が生成されている。また、拡張アプリケーションB242の１つのスレッド、VMスレッドB-1（213）に対応してVM B-1（233）が生成されている。
【００２７】
また、画像形成装置1の操作部112に表示されるメインメニュー画面には、拡張アプリケーションごとのアイコンが表示される。
操作部I／F106は、操作部112を介して、ユーザーがアイコンを選択したことを検知すると、その旨をCPU101に送信する。その旨を受信したCPU101は、ユーザーにより選択されたアイコンに対応するプログラム（例えば拡張アプリケーション）を起動する。
【００２８】
図３は、本実施形態の画像形成装置1のCPU101上で動作するソフトウェアモジュールの構成の一例を示す図である。図３に示す各モジュール301〜306は、図２のネイティブプログラム210に対応する。
【００２９】
標準機能制御部301は、画像形成装置1の標準機能であるコピーやFAXの制御や、その他の画像形成装置1に必要な制御（例えば、USBホストI／F113の制御）を行うモジュールである。
アプリケーション管理部302は、拡張アプリケーションのインストールやインストールされている拡張アプリケーションの起動などの管理を行うモジュールである。
【００３０】
UI制御部303は、操作部112に画面を表示するとともに、ユーザーからの操作を受け付けて、標準機能制御部301とアプリケーション管理部302とのいずれかの適切なモジュールにその操作情報を通知するモジュールである。
【００３１】
サーブレットサービス304は、画像形成装置がネットワークI／F110を介してリクエストを受け付けた際に、そのリクエストを標準機能制御部301かアプリケーション管理部302かのいずれかに振り分けるモジュールである。このリクエストの振り分けは、HTTPアクセスされたURLに応じて行われる。
【００３２】
アプリケーション実行制御部305は、アプリケーション管理部302により起動された拡張アプリケーションの実行制御を行うモジュールである。具体的には、アプリケーション実行制御部305は、VMスレッド215、VMシステムサービス220、VM230、拡張アプリケーション240を制御する。
【００３３】
ストレージ制御部306は、画像形成装置1の設定情報の記録・管理をするモジュールである。上記の各モジュールは、ストレージ制御部306にアクセスし、設定値の参照、設定を行う。
【００３４】
図４は、本実施形態の画像形成装置を含む印刷システムの構成の一例を示す図である。
本実施形態の印刷システムは、複数の画像形成装置（ここではMFP401、MFP404）と、情報処理装置（PC）402とを含む。MFPは、Multifunction Peripheralの略称である。なお、MFP401、MFP404は、図１〜図３で示した画像形成装置1と同様の構成を備える。
【００３５】
MFP401、404には、画像形成装置の機能を拡張するプログラムである拡張アプリケーション（アプリケーションA、アプリケーションB）がインストールされている。
PC402は、MFP401、404にアクセスし、これらにインストールされている拡張アプリケーションの設定を行うことが可能である。PC402は、例えばパーソナルコンピュータや、タブレット型コンピュータ、スマートフォン等である。
【００３６】
アプリケーションA431、434は、同じアプリケーションであるが、バージョンが異なり、機能に差異がある。アプリケーションA431は、設定データ441を用いて動作する。また、アプリケーションA434は、設定データ444を用いて動作する。この設定データにもバージョンがあり、設定データ441と設定データ444とは異なるバージョンである。
アプリケーションB411、414も、同じアプリケーションであるが、バージョンが異なり、機能に差異がある。また、アプリケーションB411の設定データ421と、アプリケーションB414の設定データ424にもバージョンがあり、設定データ421と設定データ424は異なるバージョンである。
【００３７】
図５は、本実施形態の画像形成装置にインストールされている拡張アプリケーションの設定を行う際の処理の一例を示すフローチャートである。
また、以下では、拡張アプリケーションの例として、ユーザーが登録した印刷フォームで画像データを印刷するフォーム印刷アプリケーションを用いる。なお、拡張アプリケーションの設定処理は、拡張アプリケーションに応じて細かい処理内容は異なるが、基本的な処理はここで示す処理と同様である。
【００３８】
拡張アプリケーションの設定を行う際には、ユーザーは、PC402上で動作するWebブラウザから、設定対象の画像形成装置（MFP401や404、以下単に「画像形成装置」という）に接続して、Webブラウザを介してアプリケーションの設定を行う。PC402のWebブラウザは、PC402の図示しないCPUが記憶装置に格納されるプログラムを実行することにより実現される。また、画像形成装置側の各処理は、画像形成装置のCPU101がROM103やストレージ104に格納されてプログラムを必要に応じてRAM102にロードして実行することにより実現される。
【００３９】
まず、ユーザーは、PC402上のWebブラウザから画像形成装置のサーブレットサービス304に対して、拡張アプリケーションの設定を行うための設定用URLをリクエストする操作を行う。この操作に応じて、PC402のWebブラウザがMFP401のサーブレットサービス304に対して設定用URLをリクエストする（S501）。
すると、サーブレットサービス304は、リクエストを受け取ると、リクエストに応じた処理を、アプリケーション管理部302に依頼する（S502）。
【００４０】
アプリケーション管理部302は、処理の依頼を受けると、リクエストされているURLから該当する拡張アプリケーション（ここではフォーム印刷アプリケーション）を特定する。そして、フォーム印刷アプリケーションのアプリケーションサーブレットを起動する（S503）。フォーム印刷アプリケーションのアプリケーションサーブレットは、フォーム印刷アプリケーションの一部であり、フォーム印刷アプリケーション内のサーブレット処理を担当する。ここでは詳細は省略するが、フォーム印刷アプリケーションのアプリケーションサーブレットの起動は、後述する図８に示すフォーム印刷アプリケーションの起動手順と同様の手順で行われる。
【００４１】
フォーム印刷アプリケーションは、要求されたURLのリクエストに対するレスポンス処理を行う（S504）。ここでは、設定用URLに対するHTMLリソースを返信する準備を行う。HTMLリソースには、図６に示すようなフォーム印刷アプリケーションの処理に必要な情報（設定データ）を参照・設定するためのHTML FORMが記述されている。
そして、フォーム印刷アプリケーションは、上記S504で準備したHTMLリソースをアプリケーション管理部302に返信する（S505）。
【００４２】
アプリケーション管理部302は、フォーム印刷アプリケーションからレスポンスを受信すると、フォーム印刷アプリケーションから受信したレスポンスをそのままサーブレットサービス304に送信する（S506）。
さらに、サーブレットサービス304は、アプリケーション管理部302からレスポンスを受信すると、アプリケーション管理部302から受信したレスポンスをそのままWebブラウザに送信する（S507）。
【００４３】
Webブラウザは、サーブレットサービス304からレスポンス（フォーム印刷アプリケーションが準備したHTMLリソース）を受信すると、HTMLリソースに基づく表示を行う。フォーム印刷アプリケーションが準備したHTMLリソースに基づく画面がWebブラウザに表示されると、ユーザーは、Webブラウザに表示された画面を編集操作し、アプリケーションの設定を変更する（S508）。ここでは、ユーザーが、新しい印刷フォームを登録する操作を行ったとする。
Webブラウザは、ユーザーの操作にしたがい、設定情報登録リクエストをサーブレットサービス304に要求する（S509）。
【００４４】
サーブレットサービス304は、Webブラウザから設定情報登録リクエストを受信すると、該リクエストに対応する処理を、アプリケーション管理部302に依頼する（S510）。
【００４５】
アプリケーション管理部302は、処理の依頼を受けると、要求されたURLから該当する拡張アプリケーション（ここではフォーム印刷アプリケーション）を特定する。そして、フォーム印刷アプリケーションのアプリケーションサーブレットを起動する（S511）。
【００４６】
フォーム印刷アプリケーションは、Webブラウザから送信された設定情報登録リクエストに基づく登録処理を行う（S512）。この登録処理では、フォーム印刷アプリケーションは、例えば図６に示すような設定情報を追加する。そして、フォーム印刷アプリケーションは、登録処理の結果をレスポンスとしてアプリケーション管理部302に返信する（S513）。
【００４７】
アプリケーション管理部302は、フォーム印刷アプリケーションからレスポンスを受信したら、フォーム印刷アプリケーションから受信したレスポンスをそのままサーブレットサービス304に送信する（S514）。
さらに、サーブレットサービス304は、アプリケーション管理部302からレスポンスを受信したら、アプリケーション管理部302から受信したレスポンスをそのままWebブラウザに送信する（S515）。
【００４８】
なお、フォーム印刷アプリケーションは、ユーザーが設定した設定情報（ここでは印刷フォーム）に対応するアイコンを登録するために、アプリケーション管理部302にアイコン情報更新通知を送信する（S506）。
アプリケーション管理部302は、フォーム印刷アプリケーションから受信したアイコン情報更新通知に基づいて、アイコン更新処理を行う（S517）。この処理により、後述する図７のような操作画面が構成される。
【００４９】
以上、図５に示した一連の処理によって、フォーム印刷アプリケーションは、ユーザーのリクエストに応じて設定データを変更することができる。
【００５０】
図６は、拡張アプリケーションの設定データの一例を示す図である。
図６ではJSON（JavaScript（登録商標） Object Notation）のフォーマットで示しているが、設定データのフォーマットは拡張アプリケーションが自由に決めてよい。例えば、独自のバイナリ形式でもよいし、XMLのフォーマットでもよい。
なお、拡張アプリケーションの設定データは、図５のフローチャートにおけるS512の処理によって更新される。
【００５１】
図６の例では、設定データとして２つの印刷フォームが登録されている。フォーム印刷アプリケーションは、この設定に応じてフォーム印刷処理を行う。
601〜604は、１つ目の印刷フォームの登録情報を示している。ここでは、一例として、score（五線譜）の印刷を行うための印刷フォームの登録情報が記載されている。
601は、アイコンを識別するボタンIDを示しており、押下されたボタンを識別する際に使用する。
602は、印刷フォームの内容を示すフォーム名を示しており、ユーザーが登録する。
603は、フォーム印刷で印刷する対象の画像ファイルを示しており、ユーザーが登録する。
604は、フォーム印刷する際のカラーモードや部数などをまとめた印刷設定を示しており、ユーザーが登録する。
【００５２】
611〜614は、２つ目の印刷フォームの登録情報を示しており、それらが示す内容は601〜604と同様である。この例では、form1という印刷フォームを印刷するための登録情報が記載されている。
【００５３】
図７は、本実施形態の画像形成装置の操作部112に表示される操作画面の一例を示す図である。
ここでは、標準機能であるコピー702、FAX703、Send704の各種アイコンに加えて、拡張アプリケーションに対応するPrint Scoreアイコン701、Print Form1アイコン705が表示されている。Print Scoreアイコン701は、フォーム印刷アプリケーションの設定情報（図６の601〜604）に対応する。Print Form1アイコン705は、フォーム印刷アプリケーションの設定情報（図６の611〜614）に対応する。ユーザーがこれらのアイコンを押下することで、それぞれに対応するアプリケーションが起動する。
【００５４】
図８は、本実施形態の画像形成装置において拡張アプリケーションを起動する際の処理の一例を示すフローチャートである。このフローチャートの処理は、画像形成装置のCPU101がROM103やストレージ104に格納されてプログラムを必要に応じてRAM102にロードして実行することにより実現される。
【００５５】
ユーザーが、操作部112に表示されるアイコン（例えば図７の701や705）を押下して、拡張アプリケーションの起動を要求する。すると、その操作をUI制御部303が検知して、該押下されたアイコンの情報（押下されたボタンのアプリケーション識別情報とボタンIDを含む）をアプリケーション管理部302に通知する。そして、アプリケーション管理部302からネイティブスレッド214に拡張アプリケーションの起動の要求が通知される（S801）。この通知には、押下されたボタンのアプリケーション識別情報と、ボタンIDが含まれる。
【００５６】
ネイティブスレッド214は、拡張アプリケーションの起動を要求する通知を受信すると、VMスレッド215を生成する処理を行う（S802）。この処理において、ネイティブスレッド214は、OS201に対してスレッドの生成を要求する。この要求には、アプリケーション識別情報とボタンIDが含まれる。
【００５７】
スレッドの生成要求を受けたOS201は、VMスレッド215の生成を行う（S803）。この際、VMスレッド215に、アプリケーション識別情報とボタンIDが渡される。
生成されたVMスレッド215は、スレッドの初期化を行う（S804）。
続いて、VMスレッド215は、VM230を生成する（S805）。この際、VM230に、アプリケーション識別情報とボタンIDが渡される。
【００５８】
生成されたVM230は、拡張アプリケーションの読み込み処理を行う（S806）。VM230は、この拡張アプリケーションの読み込み処理において、標準VMシステムサービス221に対して読み込み要求を出す。この読み込み要求には、どのアプリケーションを読み込むのかを指示するための情報として、アプリケーション識別情報が含まれる。
【００５９】
読み込み要求を受信した標準VMシステムサービス221は、指示された拡張アプリケーションのデータをVM230に読み込む（S807）。この処理により、指示されたアプリケーション識別情報に対応する拡張アプリケーションがVM230にロードされる。なお、この時に読み込まれる拡張アプリケーションのデータ名は、拡張アプリケーション毎に共通する固定の名前となる。各拡張アプリケーションは、データとして、必ず固有の名前を有する。
【００６０】
続いて、VM230は、上記S806、S807により読み込んだ拡張アプリケーションを実行する（S808）。該S808において実行される内容は、拡張アプリケーションのプログラムに応じて異なる。この時、VM230は、どのボタンIDが押下されたのかを拡張アプリケーションに通知する。拡張アプリケーションは、通知されたボタンIDの情報に基づいて、押下されたアイコンを判断し、処理内容を決定する。詳細は図９に示す。
【００６１】
図９は、図８のS808に示した拡張アプリケーション実行処理の詳細を例示するフローチャートである。
ここでは、図７の操作画面において、フォーム印刷アプリケーションのボタン（Print Scoreアイコン701）が押下された際の例について説明する。
【００６２】
フォーム印刷アプリケーションは、VM230から通知されたボタンIDに対応する設定データを読み込み、アプリケーションにどのような設定がされているかを認識する（S901）。設定データとしては、例えば、図６で示したような内容が記録されている。フォーム印刷アプリケーションは、通知されているボタンIDに基づいて、ボタンIDに対応する設定データ（上述の例では図６の601〜604に示した設定データ）が抽出される。
【００６３】
続いてフォーム印刷アプリケーションは、抽出した設定データに基づいてフォーム印刷を行うために、ジョブを投入する（S902）。上述の例では、フォーム印刷アプリケーションが、図６の603に示す画像ファイル”score.bin”を、図６の604に示す印刷設定”setting1.js”で印刷する印刷ジョブを投入する。
以上の処理により、フォーム印刷アプリケーションは、登録されている印刷フォームを印刷することができる。例えば画像ファイル”score.bin”を印刷設定”setting1.js”で印刷することができる。
【００６４】
図１０は、本実施形態の画像形成装置のストレージ104に格納されている拡張アプリケーションの情報の一例を示す図である。
ストレージ104は、ファイルシステムで管理され、ディレクトリ構造でデータを格納する。拡張アプリケーションのデータは、アプリケーションごとにディレクトリに分けて管理されている。アプリケーションAのデータは、ディレクトリ1001〜1003に格納されている。
【００６５】
ディレクトリ1001は、アプリケーションAのデータを管理するルートディレクトリである。
各アプリケーションのルートディレクトリには、dataディレクトリ1002と、packageディレクトリ1003がある。
【００６６】
dataディレクトリ1002は、アプリケーションの設定データなど動的に生成される情報を保持するディレクトリである。dataディレクトリにどのような情報を書き込むか、また、どのようなデータフォーマットで書き込むかはアプリケーションによって異なる。
packageディレクトリ1003は、アプリケーションの動作を記述するスクリプトファイルや、画面に表示する画像データのリソースファイルなど、静的な情報を保持するディレクトリである。スクリプトファイルや、リソースファイルなどは、packageディレクトリ1003内のpackage.bin1004の一つのファイルにアーカイブされる。
アプリケーションBのデータは、同様に、ディレクトリ1011〜1013に格納されている。
【００６７】
図１１は、図１０に示した拡張アプリケーションの静的な情報を保持するファイルであるpackage.bin内の構成の一例を示す図である。
【００６８】
package.bin1101は、アプリケーションの静的な情報を保持するアーカイブであり、図１０に示したpackage.bin1004や1014に対応する。package.bin1101には、アプリケーションの識別情報やバージョンを示すmetaファイル1102が含まれる。さらに、package.bin1101には、アプリケーションの動作を記述するスクリプトファイル1103、1104、及び、画像データや表示メッセージを格納するリソースファイル1105、1106が含まれる。
【００６９】
図１２は、図１１に示したmetaファイル1102の構成の一例を示す図である。
1201は、アプリケーションを識別するためのIDを示す。
1202は、アプリケーション名を示す。
1203は、アプリケーションのバージョン情報（アプリケーションバージョン）を示す。アプリケーションバージョンは、アプリケーションの機能を追加する際や、不具合を修正する際などに、更新される。
【００７０】
1204は、アプリケーションの設定データのバージョン情報（設定データバージョン）を示す。設定データバージョンは、設定データの項目の追加やフォーマット変更などにより、データの互換を行う際に何らかの処理が必要な場合に更新する。
【００７１】
なお、1203のアプリケーションバージョンと、1204のアプリケーションの設定データバージョンとは、同期することなく更新される。例えば、アプリケーションの不具合を修正した際に、1203が更新されたとしても、設定データが変わらない場合には、1204は更新されない。
1205は、インポート可能な設定データバージョンを特定可能な情報（設定データ互換バージョン）を示す。なお、インポートについては後述する。
なお、metaファイルには、上記1201〜1205に示した情報を記憶可能であるが、設定データバージョン1204や設定データ互換バージョン1205が含まれていない場合もある。
【００７２】
図１３は、MFP404にインストールされている拡張アプリケーションの設定データをMFP401に反映する処理の概要を説明する図である。
まず、MFP404のアプリケーション管理部302が、MFP404に設定されているアプリケーション設定データ444、424から、設定情報1301を生成する。
設定情報1301には、アプリケーションAの設定データ444を復元するための設定データ1302と、アプリケーションBの設定データ424を復元するための設定データ1303が含まれる。
【００７３】
具体的には、アプリケーション管理部302は、図１０に示したアプリケーションのdataディレクトリ1002、1012に保持されている情報に基づいて、設定データ1302、1303を生成する。ここで、アプリケーション管理部302は、ファイルの種別（設定データであるか、リソースデータであるか）を識別せずに処理する。
【００７４】
次に、MFP401のアプリケーション管理部302が、設定情報1301をMFP401に反映させる。これにより、MFP401の設定データは、アプリケーションAについては設定データ441から設定データ1304に書き換えられる。同様に、アプリケーションBについては設定データ421から設定データ1305に書き換えられる。
【００７５】
なお、これは、反映元の設定情報1301に含まれるアプリケーション設定データ1302、1303と、反映先の設定データ441、421との設定データバージョンに互換性がある場合の処理である。互換性がないアプリケーション設定データは、書き換えられずに、元の設定データのままとなる。
【００７６】
なお、MFP404の設定データ444、424から設定情報1301を生成することをエクスポートと言う。また、設定情報1301をMFP401の設定データ441、421に反映することをインポートと言う。エクスポートやインポートの指示は、ユーザーが操作部112又はPC402のWebブラウザから行うことができる。
【００７７】
図１４は、パスワード認証機能が追加された拡張アプリケーションの処理の一例を示すフローチャートである。
ここでは、拡張アプリケーションとしてフォーム印刷アプリケーションを用いて説明する。パスワード認証機能は、印刷フォームを登録する際にフォーム情報と一緒にパスワードを登録することにより、フォーム印刷の使用をパスワードを知るユーザーに限定することを目的とする。なお、本フローチャートの処理は、フォーム印刷アプリケーションにより実行制御される。すなわち、このフローチャートの処理は、画像形成装置のCPU101がROM103やストレージ104に格納されてプログラムを必要に応じてRAM102にロードして実行することにより実現される。
【００７８】
まず、S1401において、フォーム印刷アプリケーションは、設定データを読み込む。
次に、S1402において、フォーム印刷アプリケーションは、上記S1401で読み込んだ設定データにパスワードが指定されているか否かを判定する。設定データにパスワードが指定されていないと判定した場合（S1402でNoの場合）、フォーム印刷アプリケーションは、S1405に処理を進める。
【００７９】
一方、設定情報にパスワードが指定されていると判定した場合（S1402でYesの場合）、フォーム印刷アプリケーションは、S1403に処理を進める。
【００８０】
S1403において、フォーム印刷アプリケーションは、ユーザーからのパスワードの入力を受け付け、パスワードの入力があると、S1404に処理を進める。
S1404において、フォーム印刷アプリケーションは、入力されたパスワードが設定されているパスワードと一致するか否かを判定する。入力されたパスワードが設定されているパスワードと一致すると判定した場合（S1404でYesの場合）、フォーム印刷アプリケーションは、S1405に処理を進める。
S1405において、アプリケーション管理部302は、登録されているフォームの印刷ジョブを投入し、本フローチャートの処理を終了する。
【００８１】
一方、入力されたパスワードが設定されているパスワードと一致しないと判定した場合（S1404でNoの場合）、フォーム印刷アプリケーションは、ジョブの投入を行うことなく、本フローチャートの処理を終了する。
【００８２】
図１５は、パスワード認証機能を追加した後のフォーム印刷アプリケーションの設定データの一例を示す図である。
図１５に示す設定データと、パスワード認証機能を追加する前のフォーム印刷アプリケーションの設定データである図６とを比較すると、1501に示す情報が追加されている。1501は、ボタンIDが”2”に登録されている印刷フォームにパスワードが設定されていることを示している。前述した図１４のフローチャートのS1402では、この設定の有無が判定される。
【００８３】
図１６は、パスワード認証機能を追加した後のフォーム印刷アプリケーションのmetaファイル1102の情報の一例を示す図である。
図１６において、1601は、フォーム印刷アプリケーションのバージョン（アプリケーションバージョン）を示している。ここでは、パスワード認証機能が追加されたため「2」に更新されている。
【００８４】
1602は、設定データのバージョン（設定データバージョン）を示している。パスワードが登録されている設定データを、パスワード認証機能を追加する前の古いアプリケーションにインポートすると、パスワード認証されずに印刷されてしまい、セキュリティ上の問題がある。そのため、設定データバージョンが「2」に更新されている。
1603は、設定データの互換性のバージョン（設定データ互換バージョン）を示している。ここでは、パスワード認証機能を追加する前の古いバージョンのアプリケーションの設定データを読み込むことが可能であるため、設定データ互換バージョンが「1」に設定されている。
【００８５】
図１７は、本実施形態の画像形成装置における設定情報のエクスポート処理の一例を示すフローチャートである。この処理は、アプリケーション管理部302により実行される。すなわち、このフローチャートの処理は、画像形成装置のCPU101がROM103やストレージ104に格納されてプログラムを必要に応じてRAM102にロードして実行することにより実現される。
【００８６】
ユーザーが操作部112又はPC402のWebブラウザからエクスポートの指示を行うと、その旨がアプリケーション管理部302に通知され、本フローチャートの処理が開始される。なお、エクスポートの指示には、エクスポート先の指定が含まれているものとする。また、エクスポート先としては、例えばUSBストレージ114やPC、クラウド等のネットワーク上の記憶領域などが指定可能である。
【００８７】
まず、S1701において、アプリケーション管理部302は、まだ処理されていないアプリケーションの有無を判定する。まだ処理していないアプリケーションがあると判定した場合（S1701でYesの場合）、アプリケーション管理部302は、S1702に処理を進める。
【００８８】
S1702において、アプリケーション管理部302は、未処理のアプリケーションを１つエクスポート対象として選択し、該アプリケーションのmetaファイル1102から、設定データバージョン（図１２の1204に対応）を取得する。上記エクスポート対象として選択したアプリケーションを以下「現在のアプリケーション」という。
【００８９】
次にS1703において、アプリケーション管理部302は、上記S1702で取得した設定データバージョンにバージョン指定がされている否かを判定する。設定データバージョンにバージョン指定がされていると判定した場合（S1702でYesの場合）、アプリケーション管理部302は、S1704に処理を進める。
【００９０】
S1704において、アプリケーション管理部302は、上記S1702で取得した設定データバージョンの値が「0」であるか否かを判定する。設定データバージョンの値が「0」であると判定した場合（S1704でYesの場合）、アプリケーション管理部302は、エクスポート処理が禁止されていると判断し、エクスポート処理をすることなく、S1701に処理を戻す。
【００９１】
一方、上記S1704において、設定データバージョンの値が「0」以外であると判定した場合（S1704でNoの場合）の場合、アプリケーション管理部302は、S1706に処理を進める。
【００９２】
また、上記S1703において、設定データバージョンにバージョンの指定がないと判定した場合（S1703でNoの場合）、アプリケーション管理部302は、S1705において、設定データバージョンを「1」とし、S1706に処理を進める。設定データバージョンが指定されていない場合は、エクスポート機能に対応する前に開発されていたアプリケーションのバージョンであると考えられる。そこで、本実施形態では、そのようなバージョンのアプリケーションでもエクスポート処理できるように、設定データバージョンを「1」とする。
【００９３】
S1706において、アプリケーション管理部302は、現在のアプリケーションのdataディレクトリ（例えば図１０の1002や1012）内に存在するすべてのファイルと、上記設定データバージョン、アプリケーションの識別IDをアーカイブする。ここでアーカイブした結果は、図１３に示したアプリケーションの設定データ1302（あるいは1303）に対応する。即ち、現在のアプリケーションのエクスポートデータが生成される。なお、すべてのアプリケーションに対して処理を行うことで、設定情報1301が生成される。
【００９４】
上記S1706の処理の後、アプリケーション管理部302は、S1701に処理を戻す。
そして、上記S1701において、アプリケーション管理部302が、アプリケーションがすべてエクスポート処理済みと判定した場合（S1701でNoの場合）、本フローチャートの処理を終了する。なお、上記S1706でアプリケーションごとにアーカイブされた各エクスポートを逐次エクスポート先に出力してもよいし、全てのアプリケーションについての処理が完了した時点で全てのエクスポートデータをエクスポート先に出力してもよい。
【００９５】
図１８は、図１７に示したエクスポート処理により生成された図１３の設定情報1301の構成の一例を示す図である。
設定情報1301には、アプリケーションAの設定データを復元するための情報1302が含まれる。情報1302のアーカイブ内部には、アプリケーション識別ID1810、設定データのバージョン1811と、dataディレクトリ内のファイル1812（アプリケーションの設定データを含む）が格納されている。
同様に、設定情報1301には、アプリケーションBの設定データを復元するための情報1303があり、その内部には各情報1820〜1822が格納されている。
【００９６】
このように、エクスポート処理では、エクスポート対象のアプリケーションの設定データ（1812、1822に含まれる）に、該アプリケーションの情報として記憶される設定データバージョン（1811、1821）を付加してエクスポートできる。
【００９７】
図１９は、本実施形態の画像形成装置における設定情報のインポート処理の一例を示すフローチャートである。このフローチャートの処理は、アプリケーション管理部302の制御により実行される。すなわち、このフローチャートの処理は、画像形成装置のCPU101がROM103やストレージ104に格納されてプログラムを必要に応じてRAM102にロードして実行することにより実現される。なお、ここでは、設定情報として1301を用いて説明する。
【００９８】
ユーザーが操作部112又はPC402のWebブラウザからインポートの指示を行うと、その旨がアプリケーション管理部302に通知され、本フローチャートの処理が開始される。なお、インポートの指示には、インポート対象の設定情報の指定が含まれているものとする。また、インポート対象の設定情報としては、例えばUSBストレージ114やPC、クラウド等のネットワーク上の記憶領域などに記憶されている設定情報（例えば図１８の設定情報1301）が指定可能である。
【００９９】
まず、S1901において、アプリケーション管理部302は、インポート対象として指定された設定情報1301をアプリケーションごとのインポートデータ（図１８の情報1302、1303）に分割する。そして、アプリケーション管理部302は、まだ処理していないインポートデータがあるか否かを判定する。まだ処理していないインポートデータがあると判定した場合（S1901でYesの場合）、アプリケーション管理部302は、未処理のインポートデータの１つをインポート対象として選択し（以下「現在のインポートデータ」）、S1902に処理を進める。
【０１００】
S1902において、アプリケーション管理部302は、現在のインポートデータを読み出し、該インポートデータからアプリケーション識別IDを取得する。
次にS1903において、アプリケーション管理部302は、上記S1902で取得したアプリケーション識別ID（図１８の例では1810や1820）に該当する拡張アプリケーションを特定する（以下「現在の拡張アプリケーション」という）。さらに、アプリケーション管理部302は、現在の拡張アプリケーションの情報として、ストレージ104に記憶される情報からmeta情報（図１１の1102に対応）を取得する。
【０１０１】
次にS1904において、アプリケーション管理部302は、上記S1903で取得したmeta情報に設定データバージョン指定（図１２の1204に対応）があるか否かを判定する。meta情報に設定データバージョン指定がないと判定した場合（S1904でNoの場合）、アプリケーション管理部302は、S1905に処理を進める。
S1905において、アプリケーション管理部302は、設定データバージョンを「1」とし、S1906に処理を進める。
【０１０２】
一方、上記S1904において、meta情報に設定データバージョン指定があると判定した場合（S1904でYesの場合）、アプリケーション管理部302は、そのままS1906に処理を進める。
S1906において、アプリケーション管理部302は、現在のアプリケーションの設定データバージョンを、meta情報で指定されたバージョン又は上記S1905で指定したバージョンに確定する。以下、この設定データバージョンを「X」という。
【０１０３】
次にS1907において、アプリケーション管理部302は、上記meta情報に設定データ互換バージョン指定（図１２の1205に対応）があるか否かを判定する。設定データ互換バージョン指定がないと判定した場合（S1907でNoの場合）、アプリケーション管理部302は、S1908に処理を進める。
S1908において、アプリケーション管理部302は、設定データ互換バージョンを「1」とし、S1909に処理を進める。
【０１０４】
一方、S1907において、設定データ互換バージョン指定があると判定した場合（S1907でYesの場合）、アプリケーション管理部302は、S1909に処理を進める。
【０１０５】
S1909において、アプリケーション管理部302は、現在のアプリケーションの設定データ互換バージョンをmeta情報で指定されたバージョン又は上記S1908で指定したバージョンに確定する。以下、この設定データ互換バージョンを「Z」という。
【０１０６】
次にS1910において、アプリケーション管理部302は、現在の設定データの設定データバージョンが、以下の式を満たすか否かを判定する（設定データ互換バージョンチェック）。
X ≧ 設定データバージョン1811 ≧ Z
すなわち、アプリケーション管理部302は、現在の設定データの設定データバージョンが、上記S1906で確定した設定データバージョン「X」と、上記S1909で確定した設定データ互換バージョン「Z」に基づく範囲内にあるか否かを判定する。
【０１０７】
上記式の条件を満たす場合（現在の設定データの設定データバージョンがXとZに基づく範囲内にある場合）、アプリケーション管理部302は、現在の設定データが反映先に対して互換性があるとみなし、インポートを許可し、S1911に処理を進める。
【０１０８】
S1911において、アプリケーション管理部302は、現在の設定データをインポート処理するため、現在の拡張アプリケーションのdataディレクトリ（アプリケーションAの場合図１０の1002）内のファイルをすべて削除する。さらに、アプリケーション管理部302は、現在の設定データ内のdataディレクトリ内のファイルを展開して、現在の拡張アプリケーションのdataディレクトリ内のファイルを更新する（インポート）。そして、アプリケーション管理部302は、S1901に戻り、設定情報1301内の残りの設定データについても同様の処理を行う。
【０１０９】
一方、上記S1910において、上記式の条件を満たさない場合（現在の設定データの設定データバージョンがXとZに基づく範囲外と判定した場合）、アプリケーション管理部302は、現在の設定データが反映先に対して互換性がないとみなす。この場合、アプリケーション管理部302は、インポートを禁止し、現在の設定データを現在のアプリケーションに反映させることなく、S1901に処理を戻す。
【０１１０】
そして、上記S1901において、アプリケーション管理部302が、既にすべてのインポートデータを処理したと判定した場合（S1901でNoの場合）、本フローチャートの処理を終了する。
【０１１１】
図２０は、本実施形態において設定データのインポート処理の可否について説明する図である。なお、ここでは、フォーム印刷アプリケーションのパスワード認証機能を追加する前と、追加した後のバージョンとの間での、設定データのインポート処理の可否を例に説明する。
【０１１２】
MFP401、404には、それぞれフォーム印刷アプリケーションである「アプリケーションA」がインストールされているものとする。そして、パスワード認証機能が追加される前のバージョン（Ver.1）をアプリケーションA2001とする。また、パスワード認証機能を追加された後のバージョン（Ver.2）をアプリケーションA2011とする。
【０１１３】
また、各アプリケーションA2001、2011には、それぞれ印刷フォームの情報として設定データ2002、2012が登録されているものとする。設定データ2002、2012の具体的な登録内容は、それぞれ2003、2013に示されるとおりである。設定情報2004、2014は、それぞれ、アプリケーションA2001、2011からエクスポートされた設定情報であり、それぞれのデータを復元するためのアプリケーション設定データ2005、2015が含まれる。
【０１１４】
矢印2020は、パスワード認証機能を追加した後のバージョン（Ver.2）のアプリケーションA2011の設定情報2014は、MFP401にインポートができないことを意味している。これは、設定情報2014に保持されている設定データ2015のバージョンが、MFP401にインストールされているアプリケーションA2001と互換性のある設定データバージョンの範囲外である（すなわち互換性がない）ためである。
【０１１５】
一方、矢印2021は、パスワード認証機能を追加する前のバージョン（Ver.1）のアプリケーションA2001の設定情報2004は、MFP404にインポート可能であることを意味している。これは、設定情報2004に保持されている設定データの2005バージョンが、MFP404にインストールされているアプリケーションA2011と互換性のある設定データバージョンの範囲内であるためである。
【０１１６】
また、矢印2022は、アプリケーションA2011の設定データ2012(具体的には2013)が、設定データ2005（具体的には2003）のインポート処理によって、設定データ2023のように書き換えられる（更新される）ことを示している。
【０１１７】
以上のように、本実施形態の画像形成装置では、システム側で、アプリケーションの情報として、アプリケーションごとに、metaファイル1102（設定データバージョン1204、設定データ互換バージョン1205を含む）等を記憶する。またインポートの際、インポート対象の設定データの互換性を、該設定データのバージョンと、インポート対象の設定データに対応するアプリケーションの情報（設定データバージョン1204及び設定データ互換バージョン1205）を用いて判定する。すなわち、インポートの可否を判定する。そして、判定結果に応じて、インポート対象の設定データのインポートを行う（許可する）、又は、行わない（禁止する）ように制御する。この構成により、例えば、パスワード認証機能を追加する前の設定データ2003を、互換性のあるパスワード認証機能を追加した後のフォーム印刷アプリケーション（アプリケーションA2011）へインポートすることを可能にする。一方、パスワード認証機能を追加した後の設定データ2013を、互換性のないパスワード認証機能を追加する前のフォーム印刷アプリケーション（アプリケーションA2001）へインポートすることを禁止できる。このように、本実施形態によれば、バージョンの異なる拡張アプリケーション間で設定データをインポートする場合、安全にインポートすることができるもの（互換性のあるもの）のみをインポートすることができる。したがって、バージョンの異なる拡張アプリケーションの設定データをインポートすることに起因する拡張アプリケーションの不正動作を防止することができる。よって、複数の装置間でアプリケーションの設定データを安全にインポートすることが可能となる。
【０１１８】
さらに、本実施形態の画像形成装置等の情報処理装置では、以下のような使用も可能である。例えば、情報処理装置内のOSやアプリケーションの設定データを、USBストレージやPC、クラウド等のネットワーク上の記憶領域等にバックアップしておき、OSやアプリケーションの更新後に、バックアップデータをインポートする場合にも使用できる。この場合、更新後、インポート可能な設定データのみを安全にインポートすることができ、OSやアプリケーションの不正動作を防止することができる。
【０１１９】
なお、本実施形態の画像形成装置では、アプリケーションの設定データのインポート／エクスポート機能を画像形成装置のシステムが備えるため、アプリケーション自体にインポート／エクスポート機能を作成する必要がない。このため、アプリケーションの開発の負担を軽減することができる。
【０１２０】
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されていてもよい。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
また、上記各実施形態を組み合わせた構成も全て本発明に含まれるものである。
【０１２１】
（その他の実施形態）
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路（例えば、ASIC）によっても実現可能である。
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施形態の有機的な組合せを含む）が可能であり、それらを本発明の範囲から除外するものではない。即ち、上述した各実施形態及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【０１２２】
240    拡張アプリケーション
302    アプリケーション管理部
401，404    画像形成装置（MFP）
【図１】
2019212242.tif 000003
【図２】
2019212242.tif 000004
【図３】
2019212242.tif 000005
【図４】
2019212242.tif 000006
【図５】
2019212242.tif 000007
【図６】
2019212242.tif 000008
【図７】
2019212242.tif 000009
【図８】
2019212242.tif 000010
【図９】
2019212242.tif 000011
【図１０】
2019212242.tif 000012
【図１１】
2019212242.tif 000013
【図１２】
2019212242.tif 000014
【図１３】
2019212242.tif 000015
【図１４】
2019212242.tif 000016
【図１５】
2019212242.tif 000017
【図１６】
2019212242.tif 000018
【図１７】
2019212242.tif 000019
【図１８】
2019212242.tif 000020
【図１９】
2019212242.tif 000021
【図２０】
2019212242.tif 000022