(57)【要約】      （修正有）【課題】画像形成装置のアプリケーションの動作を確認するにあたり、動作可能なシミュレータのみ選択できるようにする。【解決手段】複数のデバイスのシミュレータを有する開発環境を提供する情報処理装置は、開発するアプリケーションの設定情報を参照する参照手段と、前記複数のデバイスそれぞれのデバイス情報を管理するデバイス情報管理手段と、前記参照手段にて参照したアプリケーションの設定情報と前記デバイス情報管理手段にて管理されているデバイス情報とを比較し、当該アプリケーションが動作可能なデバイスを特定する特定手段と、前記開発環境が有する複数のシミュレータのうち、前記特定手段により特定されたデバイスに対応しないシミュレータは選択できず、前記特定手段により特定されたデバイスに対応するシミュレータは選択できる選択画面を表示する表示手段とを有する。【選択図】図４
2013069078.tif 000002
【特許請求の範囲】
【請求項１】
デバイスにて動作するアプリケーションの開発を行う際に用いられ、複数のデバイスのシミュレータを有する開発環境を提供する情報処理装置であって、
開発するアプリケーションの設定情報を参照する参照手段と、
前記複数のデバイスそれぞれのデバイス情報を管理するデバイス情報管理手段と、
前記参照手段にて参照したアプリケーションの設定情報と前記デバイス情報管理手段にて管理されているデバイス情報とを比較し、当該アプリケーションが動作可能なデバイスを特定する特定手段と、
前記開発環境が有する複数のシミュレータのうち、前記特定手段により特定されたデバイスに対応しないシミュレータは選択できず、前記特定手段により特定されたデバイスに対応するシミュレータは選択できる選択画面を表示する表示手段と
を有することを特徴とする情報処理装置。
【請求項２】
前記アプリケーションの設定情報は、前記アプリケーションを動作させるデバイスの識別子、前記アプリケーションが利用するサービス、前記アプリケーションを動作させるデバイスの機能のうちの少なくとも一つが設定されていることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記特定手段は、前記アプリケーションの設定情報に設定されたデバイスの識別子が、前記デバイス情報管理手段にて管理されたデバイスの識別子と一致するか否かを判定する識別子判定手段を備えることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記識別子判定手段は、識別子が一致しないと判定した場合、当該アプリケーションにエラーがあるとして、その旨を示すエラー画面を表示することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記特定手段は、前記設定情報に設定された、前記アプリケーションが利用するデバイスの機能と、デバイスが提供可能な機能とにおいて、少なくとも一つが一致しているか否かを判定する機能判定手段を備えることを特徴とする請求項２乃至４のいずれか一項に記載の情報処理装置。
【請求項６】
前記機能判定手段は、デバイスの機能が一つも一致しないと判定した場合、当該アプリケーションにエラーがあるとして、その旨を示すエラー画面を表示することを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記特定手段は、前記設定情報にて設定された、当該アプリケーションが利用するすべてのサービスが、デバイスに登録された別のアプリケーションにより利用可能であるかどうかを確認するサービス確認手段を備えることを特徴とする請求項２乃至６のいずれか一項に記載の情報処理装置。
【請求項８】
前記サービス確認手段は、
類似するサービス間の対応情報を管理する類似サービス情報管理手段と、
前記アプリケーションの設定情報に設定されたサービスを、前記対応情報に従って、対応する類似サービスに変更する変更手段と
を備え、
前記変更手段は、前記設定情報に設定されたサービスがデバイスにて利用できず、かつ、当該設定されたサービスの類似サービスが当該デバイスにて利用可能である場合、前記類似サービスに変更するか否かの指示をユーザから受け付けるための画面を表示し、当該画面を介して変更すると指示された際に、当該アプリケーションの設定情報のサービスを前記類似サービスに変更することを特徴とする請求項７に記載の情報処理装置。
【請求項９】
前記特定手段は、アプリケーションを構成する命令文において、デバイスの機能にて利用可能な設定値が設定されているか否かを、前記デバイス情報に基づき確認するプログラム確認手段を備えることを特徴とする請求項１乃至８のいずれか一項に記載の情報処理装置。
【請求項１０】
前記プログラム確認手段は、デバイスの機能にて利用可能な設定値が設定されていない場合、その旨を通知する警告画面を表示することを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
前記特定手段は、前記アプリケーションのプログラムをデバイスもしくは当該デバイスに対応するシミュレータにて用いられる形式に変換する際に実行され、
前記特定手段にてエラーが発生した場合に、当該形式への変換を中止することを特徴とする請求項１乃至１０のいずれか一項に記載の情報処理装置。
【請求項１２】
デバイスにて動作するアプリケーションの開発を行う際に用いられ、複数のデバイスのシミュレータを有する開発環境を提供する情報処理装置の制御方法であって、
参照手段が、開発するアプリケーションの設定情報を参照する参照工程と、
デバイス情報管理手段が、前記複数のデバイスそれぞれのデバイス情報を管理するデバイス情報管理工程と、
特定手段が、前記参照工程にて参照したアプリケーションの設定情報と前記デバイス情報管理工程にて管理されているデバイス情報とを比較し、当該アプリケーションが動作可能なデバイスを特定する特定工程と、
表示手段が、前記開発環境が有する複数のシミュレータのうち、前記特定手段により特定されたデバイスに対応しないシミュレータは選択できず、前記特定手段により特定されたデバイスに対応するシミュレータは選択できる選択画面を表示する表示工程と
を有することを特徴とする制御方法。
【請求項１３】
コンピュータを、
開発するアプリケーションの設定情報を参照する参照手段、
複数のデバイスそれぞれのデバイス情報を管理するデバイス情報管理手段、
前記参照手段にて参照したアプリケーションの設定情報と前記デバイス情報管理手段にて管理されているデバイス情報とを比較し、当該アプリケーションが動作可能なデバイスを特定する特定手段、
複数のデバイスのシミュレータのうち、前記特定手段により特定されたデバイスに対応しないシミュレータは選択できず、前記特定手段により特定されたデバイスに対応するシミュレータは選択できる選択画面を表示する表示手段
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置にて動作させるアプリケーションの開発環境を提供する情報処理装置およびその制御方法、並びにプログラムに関する。
【背景技術】
【０００２】
従来、画像形成装置、及び画像形成装置の制御においては、リアルタイムＯＳ上にさらに別の組み込みシステム向けの実行環境（例えばＪａｖａ（登録商標）など）を構築することを可能にしている。さらには、画像形成装置の制御を行うことのできるアプリケーションを外部からダウンロードして追加できるアプリケーション・プラットフォームが搭載されるようになった（非特許文献１）。
【０００３】
このようなアプリケーション・プラットフォーム上でアプリケーションを開発する際、動作確認には、テスト工数や開発費削減の観点からＰＣ上で動作するシミュレータを使用する。画像形成装置のような機種ごとに異なる機能を持つ組込み機器においては、その組込み機器に対応したシミュレータを用いる必要がある。従来、開発者がメニュー画面にて動作確認を実施したいシミュレータを選択することで、シミュレータを構成する各モジュールをサーバから収集し、シミュレータを生成する仕組みを提供しているものがある（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−５３７２９号公報
【非特許文献】
【０００５】
【非特許文献１】キヤノン株式会社、“ＭＥＡＰ  ＡＤＶＡＮＣＥとは”、［ｏｎｌｉｎｅ］、２０１１年、キヤノン株式会社、［平成２３年９月６日検索］、インターネット＜ＵＲＬ：ｈｔｔｐ：／／ｃｗｅｂ．ｃａｎｏｎ．ｊｐ／ｍｅａｐ／ａｄｖａｎｃｅ／ｍｅａｐ．ｈｔｍｌ＞
【発明の概要】
【発明が解決しようとする課題】
【０００６】
開発者が、アプリケーションの動作を確認するにあたり、選択対象のシミュレータが増えるにつれて、動作対象外のシミュレータを選択してしまうことがある。このような場合、アプリケーションのインストールに失敗することもあるし、動作確認時にエラーが見つかって初めて間違ったシミュレータを選択したことに気づくことになる。こうなると、シミュレータの起動および動作確認を最初からやり直す必要があり、手戻りが発生する。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明は以下の構成を有する。すなわち、デバイスにて動作するアプリケーションの開発を行う際に用いられ、複数のデバイスのシミュレータを有する開発環境を提供する情報処理装置であって、開発するアプリケーションの設定情報を参照する参照手段と、前記複数のデバイスそれぞれのデバイス情報を管理するデバイス情報管理手段と、前記参照手段にて参照したアプリケーションの設定情報と前記デバイス情報管理手段にて管理されているデバイス情報とを比較し、当該アプリケーションが動作可能なデバイスを特定する特定手段と、前記開発環境が有する複数のシミュレータのうち、前記特定手段により特定されたデバイスに対応しないシミュレータは選択できず、前記特定手段により特定されたデバイスに対応するシミュレータは選択できる選択画面を表示する表示手段とを有する。
【発明の効果】
【０００８】
本発明によれば、開発者が開発しているアプリケーションが特定の組込み機器で動作するかをアプリケーションの生成時に確認する。そして、アプリケーションの動作確認時には、動作可能なシミュレータのみ選択できるようになる。これにより、シミュレータの選択間違いによる手戻りを防げる。
【図面の簡単な説明】
【０００９】
【図１】画像形成装置の内部構成の一例を表すブロック図。
【図２】画像形成装置のＨＤＤに記憶されたソフトウェア構造の例を示す図。
【図３】画像形成装置と接続された開発用ＰＣのハードウェア構成例を示す図。
【図４】統合開発環境システムのソフトウェア構成の例を示す図。
【図５】統合開発環境システムの操作画面例を示す図。
【図６】マニフェストファイルの構成要素の例を示す図。
【図７】アプリ生成手段によるアプリ生成処理のフローチャート。
【図８】アプリとアプリが動作対象とする画像形成装置との対応関係を示す図。
【図９】画像形成装置が有する属性値を画像形成装置ごとに示す図。
【図１０】整合性確認手段の構成様子を示す図。
【図１１】ＤＩＤチェッカーの処理に係るフローチャート。
【図１２】ＤＩＤチェッカーの処理に関する画面例を示す図。
【図１３】ＡＰＩチェッカーの処理に係るフローチャート。
【図１４】ＡＰＩチェッカーの処理に関するテーブルおよび画面例を示す図。
【図１５】サービスチェッカーの処理に係るフローチャート。
【図１６】サービスチェッカーの処理に係るテーブルおよび画面例を示す図。
【図１７】仕様バージョンチェッカーの処理に係るフローチャート。
【図１８】仕様バージョンチェッカーの処理に係るテーブルおよび画面例を示す図。
【図１９】シミュレータランチャーの起動処理に係るフローチャート。
【図２０】シミュレータの起動用ランチャーの例を示す図。
【発明を実施するための形態】
【００１０】
以下、図面を参照して本発明の実施の形態を詳しく説明する。尚、以下の実施の形態は特許請求の範囲に係る発明を限定するものでなく、また実施の形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。
【００１１】
［画像形成装置のハードウェア構成］
以下、本発明の実施の形態について図面を参照して詳細に説明する。図１は、本発明の実施形態に係る画像形成装置の内部構成の一例を示すブロック図である。
【００１２】
図１に示す画像形成装置１は、基本的な構成として、画像形成装置１内の各部を制御するコントローラユニット１００と、操作部１１２と、スキャナ部１２３と、プリンタ部１２５とを備える。操作部１１２は、例えば、数字を入力するためのテンキーや処理の実行を行うためのスタートキーなどのハードキーや液晶タッチパネルで構成され、ユーザが画像形成装置１を操作するためのユーザインタフェースを提供する。操作部１１２のタッチパネルに表示される各設定項目を表すアイコンやボタン（もしくはハードキー）をタッチ（押下）することで、画像形成装置１に設定や情報の入力を行うことが可能である。
【００１３】
スキャナ部１２３は、原稿等の画像を画像データとして読み取る。プリンタ部１２５は、記録用紙を搬送し、その記録用紙に画像データを可視画像として印刷する。
【００１４】
コントローラユニット１００は、バス１２２を介してスキャナ部１２３に接続され、またバス１２４を介してプリンタ部１２５に接続される。また、コントローラユニット１００は、ＬＡＮ１１３や公衆回線（ＷＡＮ）１１４や無線１１５を介して他の機器に接続して、画像情報やデバイス情報の入出力制御を行う。
【００１５】
ＣＰＵ１０１は、システム全体を制御するコントローラである。ＲＡＭ１０２は、ＣＰＵ１０１が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもある。ＲＯＭ１０３はブートＲＯＭである。ＲＯＭ１０３には、システムのブートプログラムが格納されている。ＨＤＤ１０４は、ハードディスクドライブであり、システムソフトウェアや画像データ、後述する通信部１１１が有するすべての無線通信に関する情報（無線通信の仕様）を格納する。
【００１６】
画像形成装置１では、使用したい機能を実装したアプリケーション（以下、「アプリ」と呼ぶ）をインストールすることで機能を増やすことができる。アプリのインストールにより、画像形成装置上で各種機能を動かすためのアプリプログラムがＲＡＭ１０２やＨＤＤ１０４に記憶される。
【００１７】
操作部Ｉ／Ｆ１０６は、ユーザインタフェース（ＵＩ）である操作部１１２との間のインタフェース部であり、操作部１１２に表示すべきデータを操作部１１２に対して出力する。また、操作部１１２からユーザが入力した情報を、ＣＰＵ１０１に伝える役割を行う。Ｎｅｔｗｏｒｋ部１０９は、ＬＡＮ１１３に接続され、情報の入出力を行う。ＭＯＤＥＭ１１０は、公衆回線１１４に接続され、情報の入出力を行う。
【００１８】
通信部１１１は、不図示のアンテナを介して無線（ＷＩＲＥＬＥＳＳ）１１５に接続され、情報の入出力を行う。また、通信部１１１は、複数種類の無線通信を行うことが可能である。上記各デバイスがシステムバス１０７上に配置される。
【００１９】
イメージバス（ＩｍａｇｅＢｕｓ）Ｉ／Ｆ１０５は、システムバス１０７と、画像データを高速で転送する画像バス１０８とを接続し、データ構造を変換するバスブリッジである。画像バス１０８は、ＰＣＩバスまたはＩＥＥＥ１３９４等で規定されるバスである。
【００２０】
画像バス１０８上に配置される各デバイスにおいて、ラスターイメージプロセッサ（ＲＩＰ）１１６は、ＰＤＬコードをビットマップイメージに展開する。デバイスＩ／Ｆ部１１７は、スキャナ部１２３またはプリンタ部１２５をコントローラユニット１００に接続し、画像データの同期系／非同期系の変換を行う。
【００２１】
スキャナ画像処理部１１８は、入力画像データに対して補正、加工、または編集を行う。プリンタ画像処理部１１９は、プリント出力画像データに対して、プリンタ部１２５に合った補正、解像度変換等を行う。画像回転部１２０は、画像データの回転を行う。画像処理部１２１は、画像データに対する、ＪＰＥＧ、ＪＢＩＧ、ＭＭＲ、ＭＨ等の圧縮伸張処理や、ＰＤＦ、ＴＩＦＦ、ＯＣＲ、暗号化等のフォーマット変換処理を行う。
【００２２】
［画像形成装置のソフトウェア構成］
図２は本発明の画像形成装置の一例である画像形成装置のＨＤＤ１０４に記憶されたソフトウェア構造図である。ＯＳ（オペレーティングシステム）２０１には、一般的なリアルタイムＯＳが使用される。また、ＯＳとして、Ｌｉｎｕｘ（登録商標）等の汎用ＯＳが使用されても構わない。仮想マシン２０２は、Ｊａｖａ（登録商標）に代表される仮想マシンであり、アプリの実行環境を提供する。
【００２３】
アプリフレームワーク２０３は、アプリのライフサイクルを管理する機能を提供する。システムサービス２０４は、画像形成装置１に事前に登録されているアプリであり、他のアプリに機能を提供するものや、単独で機能するものがある。他のアプリに機能を提供するものとして、例えば、エラー発生時の処理を代替するエラーリカバリーサービス（以下、「ＥＲＳ」と呼ぶ）２０５や操作部１１２を制御するアプレットビュワーサービス（以下、「ＡＶＳ」と呼ぶ）２０６などがある。また、電源等を制御するシステムインタフェースサービス（以下、「ＳＩＳ」と呼ぶ）２０７がある。また、単独で機能するものとして、ＰＣからブラウザを使用してアクセスされ、所定のアプリファイルを受信するサービスマネジメントサービス（以下、「ＳＭＳ」と呼ぶ）２０８などがある。アプリＡ２０９およびアプリＢ２１０は、ＳＭＳ２０８によってインストールされたアプリであり、画像形成装置１上で様々な機能を提供する。アプリＡ２０９およびアプリＢ２１０はＡＶＳ２０６を実行時に参照し、操作部１１２を介してユーザとやり取りを行うことが可能である。
【００２４】
また、アプリＡ２０９およびアプリＢ２１０は、ＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）２１１を介して、画像形成装置１が提供するシステムライブラリ２１２を参照できる。システムライブラリ２１２には、例えば、プリント処理やコピー処理やスキャン処理といったジョブ制御ライブラリ２１３が含まれる。アプリＡ２０９およびアプリＢ２１０は、ジョブ制御ライブラリ２１３を利用することで画像形成装置１が持つＮｅｔｗｏｒｋ部１０９を介して、ＰＣなどからデータを受信し、プリンタ部１２５を使って印刷することも可能である。
【００２５】
［ＰＣのハードウェア構成］
図３は、画像形成装置１とネットワークで接続された情報処理装置としての開発用ＰＣ３００のハードウェア構成を示す図である。画像形成装置用アプリの開発を行う場合、通常、開発用ＰＣ３００にて統合開発環境を動作させてプログラム作成・テスト・デバッグなどを行う。また、アプリのテストを行う場合は、開発用ＰＣ３００から画像形成装置１にＮｅｔｗｏｒｋ部１０９経由でアプリをインストールして画像形成装置１上でアプリを動作させてテストを行う。
【００２６】
ＣＰＵ３０１は、開発用ＰＣ３００上の各処理を司る中央演算装置である。ＲＯＭ３０２は、開発用ＰＣ３００の各処理に関わるプログラムやデータを記憶する。ＲＡＭ３０３は、開発用ＰＣ３００の各処理に関わる一時的なデータを記憶する。ＨＤＤ３０４は、開発用ＰＣ３００の各処理に関わるプログラムやデータ、および一時的なデータ、本発明に関わるプログラムモジュールが格納される。入力装置３０５は、開発用ＰＣ３００への指示入力を受け付けるキーボードやポインティングデバイスである。表示部３０６は、開発用ＰＣ３００の動作状況や、開発用ＰＣ３００上で動作する各プログラムが出力する情報を表示する。ネットワークＩ／Ｆ３０７は、ネットワーク経由でＬＡＮおよびインタネットに接続し、外部と情報交換を行う。ＵＳＢＨ  Ｉ／Ｆ３０８は、ＵＳＢホストインタフェースであり、さまざまなＵＳＢデバイスを接続する。上記の要素がシステムバス３０９により結び付き、データの送受信を行う。
【００２７】
［統合開発環境システムにおけるソフトウェア構成］
図４は本発明の統合開発システムの一例である統合開発環境システム４００のソフトウェア構成図である。本実施形態において、この統合開発環境システム４００は、開発用ＰＣ３００上で構成される。統合開発環境システム４００は、統合開発基盤４０１、統合開発基盤４０１に利用される内部ツールＡ４０２、並びに外部ツール４０４と連携する内部ツールＢ４０３を有する。さらには、これら内部ツールと同様の位置づけで組み込みアプリ開発支援ツール４０５を有する。
【００２８】
統合開発環境システム４００は、例えば、Ｅｃｌｉｐｓｅ（登録商標）が利用できるが、これに限定されない。なお、Ｅｃｌｉｐｓｅ（登録商標）とは、オープンソースの統合ソフトウェア開発環境であり、ソフトウェア開発の共通プラットフォームである。Ｅｃｌｉｐｓｅ（登録商標）は、２種類のツールを利用することで様々な機能を提供する。２種類のツールとは、Ｅｃｌｉｐｓｅにプラグインとして登録・提供されている内部ツールと、Ｗｉｎｄｏｗｓ（登録商標）、ＵＮＩＸ（登録商標）などが提供するデバッガやコンパイラといったＥｃｌｉｐｓｅ（登録商標）内には存在しない外部ツールである。
【００２９】
統合開発基盤４０１は、開発しているアプリの管理や各ツールを連携させるためのインタフェースなどを含んでいる。外部ツールの例としては、Ｊａｖａ（登録商標）のコンパイルやデバッグを行うために用いられるＪＤＫ（登録商標）（Ｊａｖａ  Ｄｅｖｅｌｏｐｍｅｎｔ  ｋｉｔ）がある。
【００３０】
内部ツールは、統合開発基盤４０１が提供するインタフェースを介して、外部ツール４０４の機能を利用することもできる。なお、本実施形態においては、開発者によって統合開発環境システム４００に外部ツール４０４としてＪＤＫが既に設定済みであり、内部ツールから統合開発基盤４０１を介して利用できる。なお、図４で示している統合開発環境システム４００が持つ内部ツールや外部ツールの構成などは、一つの例にすぎず、これに限定されない。
【００３１】
ここで、組込みアプリ開発支援ツール４０５は、例えば、画像形成装置のような組込み機器で動作可能なアプリの生成やテスト支援の機能を有する。アプリ操作手段４０６は、開発しているアプリを画像形成装置もしくは対応するシミュレータへインストールする機能を有する。その他、画像形成装置および画像形成装置向けシミュレータで動作しているアプリの開始、停止、デバッグ機能を有する。アプリ生成手段４０７は、開発中のアプリが動作対象としている画像形成装置で動作可能かどうかを整合性確認手段４０８で判断し、アプリを生成する。ここで、アプリを生成するとは、デバイス（もしくは、デバイスのシミュレータ）にて実行可能な形式にすることを意味する。さらに、アプリ生成手段４０７は、アプリが正しく生成された際には、アプリ情報テーブル４１０に、生成したアプリと動作可能な画像形成装置との組み合わせ情報を保存する。
【００３２】
整合性確認手段４０８は、デバイス情報テーブル４１１を参照し、アプリが動作可能な画像形成装置を判断する。整合性確認手段４０８の詳細については後述する。シミュレータランチャー起動手段４０９は、アプリ情報テーブル４１０を参照し、アプリが動作可能な画像形成装置の一覧を含んだシミュレータランチャーを起動する。マニフェストファイル参照手段４１２は、統合開発基盤４０１を介して後述するアプリが持つ設定ファイルであるマニフェストファイルをＲＡＭ３０３に格納する。そして、マニフェストファイル参照手段４１２は、組込みアプリ開発支援ツール４０５内の構成要素から参照できるようにする。
【００３３】
［統合開発環境システムにおける操作画面］
図５は、表示部３０６に表示される統合開発環境システム４００の操作画面の一例である。マニフェストファイル編集画面５０１では、アプリを構成するＪＡＲファイルに含まれるマニフェストファイルの編集ができる。ここで、「マニフェストファイル」とは、アプリの持つ各種の設定情報が記載されたファイルであり、本実施形態にて用いられる各種情報の詳細については後述する。また、「ＪＡＲファイル」とは、Ｊａｖａ（登録商標）のソースファイルをコンパイルして生成されるクラスファイルとマニフェストファイルがパッケージングして圧縮されたファイルである。ＪＡＲファイルは、ファイルの拡張子が“．ｊａｒ”として示される。
【００３４】
プロジェクト・エクスプローラ５０２には、開発中のアプリの一覧が表示されている。なお、開発中のアプリは、「プロジェクト」という単位で扱われ、ソースファイル、マニフェストファイル、クラスファイル、ＪＡＲファイルなどが管理される。また、入力装置３０５を介してプロジェクト・エクスプローラ５０２内の開発対象プロジェクトを選択すると表示されるプロパティウィンドウに、アプリ生成ボタン５０３およびシミュレータランチャー起動ボタン５０４が表示される。アプリ生成ボタン５０３が選択されると、統合開発環境システム４００は、アプリ生成手段４０７を内部的に呼び出し、アプリを画像形成装置１で利用可能なＪＡＲファイル形式にする。シミュレータランチャー起動ボタン５０４が選択されると、シミュレータランチャー起動手段４０９を内部的に呼び出す。
【００３５】
［マニフェストファイル］
図６は、マニフェストファイル６０１の構成要素を表す。各要素は、属性と属性値とが対になって列挙されたものである。アプリ名６０２は、アプリの名称を記述する要素である。デバイス仕様ＩＤ（以下、「ＤＩＤ」と呼ぶ）６０３は、画像形成装置の機種ごとに割り当てられている、機種を一意に識別するための識別子を記述するための要素である。開発者は、アプリに対応する画像形成装置の属性値として、アプリの動作対象となるＤＩＤを、列挙する。アプリは、マニフェストファイルに記述されたＤＩＤ以外の画像形成装置にはインストールができない。
【００３６】
インポートサービス６０５は、アプリが利用するシステムサービス２０４を記述するための要素である。開発者は、利用するシステムサービス２０４を列挙する。インポートサービス６０５に、対応する画像形成装置にて利用できないシステムサービスが記述された場合、アプリの実行時にエラーとなる。仕様バージョン６０４は、アプリが利用可能な画像形成装置ごとに定義されている機能に割り当てられた番号である。例えば、ＳＳＬ機能であれば“５”、画像変換処理機能であれば“１０”、といったものである。開発者は、アプリが使用する上述した機能の番号を仕様バージョンとして列挙する。なお、列挙された仕様バージョンが、１つも画像形成装置に割り当てられていない場合、そのアプリはインストールできない。
【００３７】
最小コンソールサイズ６０６は、アプリがＡＶＳ２０６を用いて操作部１１２上で制御可能なＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を提供する場合に必要な要素であり、動作に必要な最低限値を記述する。ここで、コンソールサイズとは、アプリが利用可能な操作部１１２上の領域を表す。アプリは、記述されたコンソールサイズより小さい画像形成装置にはインストールできない。なお、マニフェストファイル６０１が持つ属性情報は上述した要素に限定されない。
【００３８】
［アプリ生成フロー］
図７は、アプリ生成手段４０７が、統合開発基盤４０１より選択通知を受けたアプリ生成ボタン５０３により要求を受けて、アプリを生成する処理を示したフローチャートである。なお、本処理フローは、開発用ＰＣ３００が備えるＣＰＵ３０１が、記憶部であるＨＤＤ３０４等に格納されたプログラムを読み出し、実行することによって実現される。
【００３９】
Ｓ７０１では、アプリ生成手段４０７は、マニフェストファイル参照手段４１２を介して統合開発基盤４０１に対して、プロジェクト・エクスプローラ５０２で選択されているプロジェクトのマニフェストファイルの所在を問い合わせる。その結果を受けて、アプリ生成手段４０７は、ＨＤＤ３０４に格納されたマニフェストファイルをＲＡＭ３０３に読み込む。
【００４０】
Ｓ７０２からＳ７０５では、整合性確認手段４０８がアプリのマニフェストファイルとデバイス情報テーブル４１１を比較し、整合性の確認を行う。なお、デバイス情報テーブル４１１の詳細については、図９で後述する。さらに、整合性確認手段４０８は、ソースファイルから利用している機能を解析し、対象とする画像形成装置で、その機能が利用可能かを確認する。Ｓ７０２からＳ７０５は、それぞれ、ＤＩＤチェッカー１００１、ＡＰＩチェッカー１００２、サービスチェッカー１００３、および仕様バージョンチェッカー１００４を実行することで実現している。各種チェッカーの処理の詳細は後述する。
【００４１】
Ｓ７０６では、アプリ生成手段４０７は、統合開発基盤４０１に対して、アプリのビルドを要求する。統合開発基盤４０１は、内部ツールからＪＤＫ（登録商標）を呼び出し、ＣＰＵ３０１を介してＪａｖａ（登録商標）のソースファイルをＲＡＭ３０３に読み込み、コンパイルする。さらに、統合開発基盤４０１は、コンパイルして生成されたクラスファイルとマニフェストファイルおよび必要に応じてアプリが有する画像ファイルや音声ファイルなどをひとまとめにするようにＪＡＲファイルの形式に変換する。そして、統合開発基盤４０１は、変換したＪＡＲファイルをＨＤＤ３０４に保存する。Ｓ７０７では、アプリ生成手段４０７は、後述する図８で表すようにアプリ情報テーブル４１０を更新する。
【００４２】
［テーブル構造］
図８は、アプリと当該アプリが動作可能な画像形成装置との対応関係を示すアプリ情報テーブル４１０の構造を表す。図８では、アプリＡは、画像形成装置Ａ、画像形成装置Ｂ、画像形成装置Ｄで動作可能であることを表す。アプリＢは、画像形成装置Ｃのみで動作可能であることを表す。アプリＮは、画像形成装置Ａ、画像形成装置Ｃ、画像形成装置Ｎで動作可能であることを表す。このように、アプリ情報テーブル４１０は、統合開発環境システム４００に登録されている画像形成装置向けプロジェクトで管理されるアプリごとに、動作可能な画像形成装置の組み合わせ情報を保存している。
【００４３】
図９は、各画像形成装置が備える各サービスや仕様を示すデバイス情報テーブル４１１の構造を表す。本実施形態では、このデバイス情報テーブル４１１を用いて、デバイス情報管理を行う。図９では、例えば、ＤＩＤが“１”である画像形成装置Ａは、コンソールサイズが“６４０ｘ４８０”であり、インポートサービスとして、“サービスＡ、サービスＢ、サービスＣ”が利用可能である。さらに、仕様バージョンとして、“５、１０”が割り当てられている。
【００４４】
また、ジョブ制御仕様９０１は、ジョブ制御ライブラリ２１３で利用可能なジョブ制御の種類や、ジョブ制御において設定可能な上限値などを表す属性である。例えば、ＤＩＤが“１”である画像形成装置Ａでは、両面印刷、両面原稿の読み取り、Ａ３サイズの用紙まで出力可能であることを表す。一方で、ＤＩＤが“ｎ−１”である画像形成装置Ｙでは、両面印刷が可能である一方で、両面／片面いずれの読み取り機能も持たず、Ａ４サイズの用紙まで出力可能であることを表している。
【００４５】
このようにデバイス情報テーブル４１１は、ＤＩＤが“１”である画像形成装置を画像形成装置Ａ、ＤＩＤが“２”である画像形成装置を画像形成装置Ｂ、といったようにＤＩＤが割り当てられた画像形成装置ごとの属性情報を保存している。なお、図９で示したデバイス情報テーブル４１１の構成は一例にすぎず、各属性に対応する値は、上述した内容に限定されるものではない。例えば、ジョブ制御仕様９０１として、ＦＡＸが利用可能であることを表す「ＦＡＸ送受信」といった値が設定されていてもかまわない。
【００４６】
［チェッカーの動作］
図１０では、整合性確認手段４０８が、ＤＩＤチェッカー１００１、ＡＰＩチェッカー１００２、サービスチェッカー１００３、仕様バージョンチェッカー１００４から構成されることを表す。各チェッカーの動作について以下で説明する。
【００４７】
（ＤＩＤチェッカー）
図１１は、アプリ生成手段４０７から実行通知を受けたＤＩＤチェッカー１００１の処理であり、図７のＳ７０２の詳細を表すフローチャートである。本実施形態において、ＤＩＤチェッカー１００１は、識別子判定を行う。Ｓ１１０１では、ＤＩＤチェッカー１００１は、デバイス情報テーブル４１１からすべてのＤＩＤをＲＡＭ３０３に読み込み、Ｄ−ＤＩＤとして参照できるようにする。Ｓ１１０２では、ＤＩＤチェッカー１００１は、ＲＡＭ３０３に格納されたマニフェストファイルのＤＩＤを、Ｍ−ＤＩＤとして参照できるようにする。Ｓ１１０３では、ＤＩＤチェッカー１００１は、ＣＰＵ３０１にＭ−ＤＩＤとＤ−ＤＩＤの読み取りを指示し、Ｍ−ＤＩＤに列挙されたすべてのＤＩＤがＤ−ＤＩＤに存在するかを確認する。つまり、Ｍ−ＤＩＤにて示されるＤＩＤの全てが、Ｄ−ＤＩＤに含まれるＤＩＤのいずれかと一致するか否かを判定する。
【００４８】
確認の結果、Ｍ−ＤＩＤがＤ−ＤＩＤに含まれる場合（Ｓ１１０３にてＹＥＳ）、ＤＩＤチェッカー１００１は、ＤＩＤのチェックを正常終了する。この場合、図７に示す以降の処理が継続されることとなる。
【００４９】
一方で、Ｍ−ＤＩＤがＤ−ＤＩＤに含まれない場合（Ｓ１１０３にてＮＯ）、ＤＩＤチェッカー１００１は、Ｓ１１０４にて、統合開発環境システム４００を介して図１２に示すエラー画面１１１０を表示部３０６に表示する。そして、ＤＩＤチェッカー１００１は、ＤＩＤのチェックに失敗したものとして異常終了する。この場合、図７に示す以降の処理は、中止されることとなる。なお、図１２に示したエラー画面の構成は一例であり、他の表示画面であっても構わない。
【００５０】
（ＡＰＩチェッカー）
図１３は、アプリ生成手段４０７から実行通知を受けたＡＰＩチェッカー１００２の処理であり、図７のＳ７０３の詳細を表すフローチャートである。本実施形態において、ＡＰＩチェッカー１００２は、アプリのプログラムに含まれる設定値の確認を行う。これにより、プログラム確認を行う。Ｓ１２０１では、ＡＰＩチェッカー１００２は、統合開発基盤４０１に対して、入力装置３０５を介して選択されたプロジェクトのすべてのソースファイルのＨＤＤ３０４上の所在を問い合わせる。ＡＰＩチェッカー１００２は、その結果から得られたＨＤＤ３０４上のソースファイルをＲＡＭ３０３上に読み込む。
【００５１】
Ｓ１２０２では、ＡＰＩチェッカー１００２は、デバイス情報テーブル４１１からジョブ制御仕様９０１をＲＡＭ３０３上に読み込む。Ｓ１２０３では、ＡＰＩチェッカー１００２は、ＲＡＭ３０３上に読み込まれたソースファイルの解析をＣＰＵ３０１に要求する。このとき、ＣＰＵ３０１は、ソースファイルを１ステートメントごとに分解し、ＲＡＭ３０３上に保存する。なお、「ステートメント」とは、ソースファイルに含まれる一つの命令文を指す。
【００５２】
Ｓ１２０４では、ＡＰＩチェッカー１００２は、解析により抽出されたすべてのステートメントに対して、ジョブ制御ライブラリ２１３で利用する属性値が含まれているかを確認する。つまり、各画像形成装置のジョブ制御仕様９０１にて指定された属性値が利用されているかを判定する。属性値が含まれていれば（Ｓ１２０４にてＹＥＳ）、Ｓ１２０５へ進む。例えば、抽出したステートメントが以下であった場合、属性値が含まれると判定される。
【００５３】
該当するステートメント例    ｎｅｗ  Ｐｌｅｘ（）．ｓｅｔＰｌｅｘ（Ｐｌｅｘ．ＰＬＥＸ＿ＤＵＰＬＥＸ）；
ここで、Ｐｌｅｘというのは、ジョブに対する属性値を設定するためのジョブ制御ライブラリ２１３に含まれるクラスの１つで、両面印刷を表す、Ｐｌｅｘ．ＰＬＥＸ＿ＤＵＰＬＥＸという属性値が設定されていることを表す。
【００５４】
一方、ソースファイルに一切の属性値が含まれないのであれば（Ｓ１２０４にてＮＯ）、ジョブ制御に関しては、画像形成装置の種類に関わらず影響を受けないため、ＡＰＩチェッカー１００２は、処理を正常終了する。
【００５５】
Ｓ１２０５では、ＡＰＩチェッカー１００２は、ＲＡＭ３０３に格納されたマニフェストファイルのＤＩＤを、Ｍ−ＤＩＤとして参照できるようにする。Ｓ１２０６では、ＡＰＩチェッカー１００２は、抽出された属性値がＭ−ＤＩＤに対応する画像形成装置のジョブ制御仕様９０１に存在するかを比較し、結果をＲＡＭ３０３に保存する。このとき、結果は、図１４（Ａ）のようなテーブル形式で格納される。
【００５６】
図１４（Ａ）に示すテーブル１２１５は、アプリがジョブ制御ライブラリ２１３に対して設定している属性値と、アプリが動作対象としている画像形成装置のジョブ制御仕様９０１の対応関係を示している。この場合、アプリは、両面印刷、両面読み込み、Ａ３出力に対応する属性値をソースファイルに記述している。そして、アプリが動作対象としている画像形成層装置Ａでは、この３つの機能がすべて利用できるのに対し、画像形成装置Ｙでは、両面読み込みが利用できないことを表す。ここで、ある画像形成装置において、利用できない機能をＮＧ項目として示す。
【００５７】
Ｓ１２０７では、ＡＰＩチェッカー１００２は、ＲＡＭ３０３に保存された結果にＮＧ項目があるかを確認する。ＮＧ項目がなければ（Ｓ１２０７にてＮＯ）、ＡＰＩチェッカー１００２は、ジョブ制御に関しては、動作対象としているすべての画像形成装置で違反がないため正常終了する。ＮＧ項目がある場合（Ｓ１２０７にてＹＥＳ）、Ｓ１２０８で、ＡＰＩチェッカー１００２は、統合開発環境システム４００を介して図１４（Ｂ）の警告画面１２２０を表示部３０６に表示する。
【００５８】
なお、ソースファイル上に特定の画像形成装置で利用不可能な属性値が記述されていたとしても、開発者が画像形成装置ごとに処理を分岐させてアプリを生成する場合がある。この場合、実行中には、利用不可能な属性値は参照されることがない。このため、ここでは、ＡＰＩチェッカー１００２は、エラー画面ではなく、警告画面を表示する。Ｓ１２０９では、ＡＰＩチェッカー１００２は、図１４（Ｂ）に示す警告画面１２２０を介したユーザからの指示を判定する。ユーザがＯＫボタン１２２１を押下した場合（Ｓ１２０９にてＹＥＳ）、ＡＰＩチェッカー１００２は、処理を正常終了する。ユーザがｃａｎｃｅｌボタン１２２２を押下した場合（Ｓ１２０９にてＮＯ）、ＡＰＩチェッカー１００２は、Ｓ１２１０にて、エラー画面（不図示）を表示し、異常終了する。ここでのエラー画面は、例えば、図１２に示すエラー画面１１１０に相当するような構成としてもよい。
【００５９】
なお、本処理フローにおいて、正常終了した場合には、図７に示す以降の処理を継続する。一方、異常終了した場合には、図７に示す以降の処理を中止する。
【００６０】
（サービスチェッカー）
図１５は、アプリ生成手段４０７から実行通知を受けたサービスチェッカー１００３の処理であり、図７のＳ７０４の詳細を表すフローチャートである。本実施形態では、サービスチェッカー１００３は、画像形成装置にて提供可能なサービスがアプリにて指定されているか、もしくは類似するサービスにて代行できるかを確認する。これにより、サービス確認を行う。Ｓ１３０１では、サービスチェッカー１００３は、デバイス情報テーブル４１１からアプリが動作対象とする各画像形成装置のインポートサービスをＤ−Ｓｅｒｖｉｃｅ１、Ｄ−Ｓｅｒｖｉｃｅ２、・・・、Ｄ−ＳｅｒｖｉｃｅＮとしてＲＡＭ３０３に保存する。サービスチェッカー１００３は、Ｄ−Ｓｅｒｖｉｃｅをアプリが動作対象とする画像形成装置の数だけ用意する。そして、それぞれのＤ−Ｓｅｒｖｉｃｅには、デバイス情報テーブル４１１を参照して対応する画像形成装置のインポートサービスが格納される。
【００６１】
Ｓ１３０２では、サービスチェッカー１００３は、マニフェストファイル６０１に列挙されているインポートサービスをＲＡＭ３０３に読み込み、Ｍ−Ｓｅｒｖｉｃｅとして参照できるようにする。Ｓ１３０３では、サービスチェッカー１００３は、Ｍ−Ｓｅｒｖｉｃｅに列挙されたすべてのインポートサービスがＤ−Ｓｅｒｖｉｃｅそれぞれに対して存在するかを確認する。このとき、サービスチェッカー１００３は、図１６（Ａ）のようなテーブル形式でサービスの対応関係をＲＡＭ３０３に格納する。すべてのインポートサービスが存在する場合は（Ｓ１３０３にてＹＥＳ）、インポートサービスに関しては問題がないため、処理を正常終了する。インポートサービスが存在しない場合は（Ｓ１３０３にてＮＯ）、Ｓ１３０４へ進む。
【００６２】
図１６（Ａ）に示すテーブル１３１０は、アプリがマニフェストファイル６０１で設定したインポートサービス６０５と、アプリが動作対象としている画像形成装置で利用可能なインポートサービス６０５の対応関係を示している。テーブル１３１０に示す例の場合、アプリは、ＡＶＳ２０６、ＳＩＳ２０７、ＥＲＳ２０５をインポートしている。そして、アプリが動作対象としている画像形成層装置Ａでは、この３つのサービスがすべて利用できるのに対し、画像形成装置Ｙでは、ＡＶＳ２０６、ＳＩＳ２０７が利用できないことを表す。ここで、ある画像形成装置において利用できないサービスをＮＧ項目として示している。
【００６３】
Ｓ１３０４では、サービスチェッカー１００３は、該当する画像形成装置において利用できないサービスに類似する類似サービスが、当該画像形成装置にて利用できるかを確認する。類似サービスが存在しない場合（Ｓ１３０４にてＮＯ）、Ｓ１３０６に処理を進める。なお、ここでの類似サービスとは、同様な機能を提供するシステムサービス２０４を指す。
【００６４】
例えば、ＡＶＳ２０６は、画面全体を制御できるフレームバッファを備えた画像形成装置の操作部１１２を制御可能である。一方で、ＡＶＳ２０６は、走査線１本分ずつでしか制御できないラインバッファを備えた低価格な画像形成装置の操作部１１２を制御できない。このため、システムサービス２０４として同じ画面制御であったとしてもラインバッファに特化したＬＡＶＳ（Ｌｉｇｈｔｗｅｉｇｈｔ  ＡＶＳ）が画像形成装置に組み込まれている。このように、画像形成装置には同様な処理であっても異なるシステムサービスが備えられている。
【００６５】
サービスチェッカー１００３は、このような、サービス間における類似サービスの対応関係を類似サービス対応情報テーブル１３２０として、図１６（Ｂ）のようなテーブル形式で、予め保持している。図１６（Ｂ）の類似サービス対応情報テーブル１３２０では、ＡＶＳに対応する類似サービスとして、ＬＡＶＳが存在することを示している。同様に、ＳＩＳに対しては、ＬＳＩＳが存在する。なお、図１６（Ｂ）の類似サービス対応情報テーブル１３２０に示した対応関係は、類似サービスの一例でありこれに限定されない。この類似サービス対応情報テーブル１３２０により、類似サービス情報管理を行う。
【００６６】
Ｓ１３０５では、サービスチェッカー１００３によって検出された類似サービスが、該当する画像形成層装置に存在するかを確認する。類似サービスが存在しなければ（Ｓ１３０５にてＮＯ）、Ｓ１３０６に処理を進める。Ｓ１３０６にて、サービスチェッカー１００３は、統合開発環境システム４００を介して、図１６（Ｃ）のエラー画面１３３０を表示部３０６に表示し、異常終了する。一方で、類似サービスが、該当する画像形成装置に存在する場合（Ｓ１３０５にてＹＥＳ）、Ｓ１３０７で、サービスチェッカー１００３は、統合開発環境システム４００を介して、図１６（Ｄ）の代替サービス提案画面１３４０を表示部３０６に表示する。
【００６７】
Ｓ１３０８では、サービスチェッカー１００３は、図１６（Ｄ）に示す代替サービス提案画面１３４０を介したユーザからの指示を判定する。ユーザがｃａｎｃｅｌボタン１３４２を押下した場合（Ｓ１３０８にてＮＯ）、サービスチェッカー１００３は、Ｓ１３０６へ進む。ユーザがＯＫボタン１３４１を押下した場合（Ｓ１３０８にてＹＥＳ）、Ｓ１３０９へ進む。Ｓ１３０９にて、サービスチェッカー１００３は、ＲＡＭ３０３上に読み込んだマニフェストファイル６０１のインポートサービスを類似サービスに変更し、ＨＤＤ３０４上にファイルとして出力し、処理を正常終了する。
【００６８】
なお、本処理フローにおいて、正常終了した場合には、図７に示す以降の処理を継続する。一方、異常終了した場合には、図７に示す以降の処理を中止する。
【００６９】
（仕様バージョンチェッカー）
図１７は、アプリ生成手段４０７から実行通知を受けた仕様バージョンチェッカー１００４の処理であり、図７のＳ７０５の詳細を表すフローチャートである。本実施形態では、仕様バージョンチェッカー１００４は、アプリにて指定されたデバイスの機能と使用するデバイスとの機能とが一致するか否かを判定する。これにより、機能判定を行う。Ｓ１４０１では、仕様バージョンチェッカー１００４は、デバイス情報テーブル４１１からアプリが動作対象とする画像形成装置ごとの仕様バージョンをＲＡＭ３０３に、Ｄ−Ｓｐｅｃ１、Ｄ−Ｓｐｅｃ２、・・・、Ｄ−ＳｐｅｃＮとして保存する。仕様バージョンチェッカー１００４は、Ｄ−Ｓｐｅｃをアプリが動作対象とする画像形成装置の数だけ用意する。そして、それぞれのＤ−Ｓｐｅｃには、デバイス情報テーブル４１１を参照して対応する画像形成装置の仕様バージョンが格納される。
【００７０】
Ｓ１４０２では、仕様バージョンチェッカー１００４は、マニフェストファイル６０１に列挙されている仕様バージョン６０４をＲＡＭ３０３に読み込み、Ｍ−Ｓｐｅｃとして参照できるようにする。Ｓ１４０３では、仕様バージョンチェッカー１００４は、Ｍ−Ｓｐｅｃに列挙された仕様バージョンのうち１つでもＤ−Ｓｐｅｃに含まれるかを確認する。このとき、仕様バージョンチェッカー１００４は、図１８（Ａ）のようなテーブル形式で仕様バージョンの対応関係をＲＡＭ３０３に格納する。１つでも対応する仕様バージョンがＤ−Ｓｐｅｃに存在する場合は（Ｓ１４０３にてＹＥＳ）、仕様バージョンに関しては問題がないため、仕様バージョンチェッカー１００４は、処理を正常終了する。仕様バージョンが存在しない場合は（Ｓ１４０３にてＮＯ）、Ｓ１４０４へ進む。
【００７１】
ここで、図１８（Ａ）の仕様バージョンテーブル１４１０は、アプリがマニフェストファイル６０１で設定した仕様バージョンと、アプリが動作対象としている画像形成装置で利用可能な仕様バージョンの対応関係を示している。この場合、アプリは５，１０，５０を仕様バージョンとして設定している。そして、アプリが動作対象としている画像形成層装置Ａでは、５、１０が定義されているが、画像形成装置Ｙでは、５０が定義されている。この場合、画像形成装置Ａおよび画像形成装置Ｙともに少なくとも１つ以上の項目でＯＫとなっているため、仕様バージョンが存在すると判断する。
【００７２】
一方、Ｓ１４０４では、仕様バージョンチェッカー１００４は、統合開発環境システム４００を介して、図１８（Ｂ）のエラー画面１４２０を表示部３０６に表示し、異常終了する。なお、図１８（Ｂ）に示すエラー画面１４２０の構成は一例であり、これに限定するものではない。
【００７３】
なお、本処理フローにおいて、正常終了した場合には、図７に示す以降の処理を継続する。一方、異常終了した場合には、図７に示す以降の処理を中止する。
【００７４】
［シミュレータランチャーの起動処理］
図１９は、シミュレータランチャー起動手段４０９が、統合開発環境システム４００上で、開発者からの選択通知を受けたシミュレータランチャー起動ボタン５０４によりシミュレータランチャーの起動要求を受けた時のフローチャートである。Ｓ１５０１では、シミュレータランチャー起動手段４０９は、統合開発環境システム４００上で選択されているプロジェクト情報を、統合開発基盤４０１を介して取得し、ＲＡＭ３０３に保存する。シミュレータランチャー起動手段４０９は、プロジェクト情報からマニフェストファイルのアプリ名６０２を参照し、アプリ情報テーブル４１０からアプリに対応する画像形成装置情報を取得する。
【００７５】
Ｓ１５０２では、シミュレータランチャー起動手段４０９は、画像形成装置の情報をランチャーに登録して、シミュレータの起動用ランチャーコンポーネントを生成する。シミュレータランチャー起動手段４０９は、生成した起動用ランチャーコンポーネントを用い、統合開発環境システム４００を介して、図２０に示したシミュレータの起動用ランチャー１５１０を表示部３０６に表示する。この画像形成装置の選択画面としての起動用ランチャー１５１０を用いて、ユーザは、開発するアプリのシミュレータを呼び出すこととなる。図２０に示すシミュレータの起動用ランチャー１５１０は、アプリ情報テーブル４１０のアプリＡが選択された状態で起動した場合の構成を示している。ここでは、アプリ情報テーブル４１０のアプリＡに対応する画像形成装置である、画像形成装置Ａ、画像形成装置Ｂおよび画像形成装置Ｄのみ選択できる状態になっている。
【００７６】
また、図２０に示す表示例では、選択できるシミュレータのみを表示するようにしているが、これに限定するものではない。例えば、搭載している全てのシミュレータを表示しつつ、選択できないものは、グレーアウトするように、対応していない旨を表示する構成であっても構わない。また、選択までは可能としても、起動ボタンが押下された時点でエラー等の警告を表示するような構成であっても構わない。つまり、誤ったシミュレータの防止が可能であれば、どのような表示形態であっても構わない。
【００７７】
以上により、画像処理装置のアプリ開発者は、統合開発環境システム４００に登録された組込みアプリ開発支援ツール４０５を使うことで、動作対象としている画像処理装置に則したアプリを生成できる。例えば、ＤＩＤチェッカー１００１により、開発者が対象としている画像形成装置が実存するものであるかを事前に確認できる。このため、誤ったＤＩＤをマニフェストファイルに記載してしまい、アプリを生成し直すといった状況を回避できる。
【００７８】
また、ＡＰＩチェッカー１００２を用いることで、開発中のアプリが対象としている画像形成装置上で利用できないジョブ制御に関する属性を設定しているかどうかを確認できるようになる。これにより、アプリ実行時になってから定義されていない属性を利用していたことに気づくという状況を回避できるため、誤った属性の設定によるテストやり直しを防げる。
【００７９】
さらに、サービスチェッカー１００３を用いることで、対象とする画像形成装置に搭載されていないシステムサービス２０４を利用することを回避できる。これにより、誤ったシステムサービスをマニフェストファイルに記載してしまい、アプリのインストールに失敗するという状況を回避できる。
【００８０】
また、マニフェストファイルに誤って記述されたサービスに対して、サービスチェッカー１００３は必要に応じて類似サービスを提案できる。さらに、統合開発環境システム側で、マニフェストファイルを自動で修正することにより、ユーザによる類似サービスを探すための作業や、手動で直す手間を省ける。
【００８１】
また、仕様バージョンチェッカー１００４を用いることで、マニフェストファイルに記述されたすべての仕様バージョンが画像形成装置に割り当てられていないかを確認できる。これにより、確実に誤った仕様バージョンを事前に検出できるようになり、誤った仕様バージョンの記述によるアプリのインストール失敗という状況を回避できる。
【００８２】
また、マニフェストファイルに含まれる他の記述に基づいたチェッカーを更に設けても構わない。例えば、最小コンソールサイズの値に基づいて、画像形成装置にて対応しているか否かのチェッカーを設けても構わない。また、図７に示した各チェッカーによる確認の順番は、これに限定されるものではなく、必要に応じて並び替えても構わない。
【００８３】
そして、アプリ開発者は、シミュレータ起動ランチャーをアプリと画像処理装置の対応関係から、動作可能な画像形成装置のシミュレータのみが選択できる状態で起動できる。このため、動作対象外のシミュレータを選択したことによる、アプリのインストールの失敗や、テストのやり直しといった手戻りを防げる。
【００８４】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2013069078.tif 000003
【図２】
2013069078.tif 000004
【図３】
2013069078.tif 000005
【図４】
2013069078.tif 000006
【図５】
2013069078.tif 000007
【図６】
2013069078.tif 000008
【図７】
2013069078.tif 000009
【図８】
2013069078.tif 000010
【図９】
2013069078.tif 000011
【図１０】
2013069078.tif 000012
【図１１】
2013069078.tif 000013
【図１２】
2013069078.tif 000014
【図１３】
2013069078.tif 000015
【図１４】
2013069078.tif 000016
【図１５】
2013069078.tif 000017
【図１６】
2013069078.tif 000018
【図１７】
2013069078.tif 000019
【図１８】
2013069078.tif 000020
【図１９】
2013069078.tif 000021
【図２０】
2013069078.tif 000022