(57)【要約】      （修正有）【課題】画像形成装置上で動作するアプリケーションを容易にシミュレーションする情報処理装置、方法及びプログラムを提供する。【解決手段】画像形成装置の画像処理の機能を利用するためのインタフェースを提供するプログラムを有する情報処理装置であって、画像形成装置のダミーの機器情報を生成し、画像形成装置の画像処理のダミーの実行結果を作成し、ダミーの機器情報およびダミーの実行結果に基づいて、画像形成装置において画像処理を実行したときの実行状態の画面を表示する。【選択図】図１０
2020087138.tif 000002
【特許請求の範囲】
【請求項１】
画像形成装置の画像処理の機能を利用するためのインタフェースを提供するプログラムを有する情報処理装置であって、
前記画像形成装置のダミーの機器情報を生成し、
前記画像形成装置の前記画像処理のダミーの実行結果を作成し、
前記ダミーの機器情報および前記ダミーの実行結果に基づいて、前記画像形成装置において前記画像処理を実行したときの実行状態の画面を表示するように構成された情報処理装置。
【請求項２】
あらかじめ登録された複数の機器情報に基づいて、前記ダミーの機器情報を生成し、
あらかじめ登録された複数の実行結果に基づいて、前記ダミーの実行結果を作成するようにさらに構成された請求項１に記載の情報処理装置。
【請求項３】
前記画像形成装置に前記画像処理の実行を指示する要求を受け付け、
前記画像処理の実行開始、実行中、実行終了を示す画面を連続して表示するようにさらに構成された請求項１または２に記載の情報処理装置。
【請求項４】
前記プログラムは、前記情報処理装置にインストールされた汎用エミュレータ上で動作する請求項１から３のいずれか一項に記載の情報処理装置。
【請求項５】
前記機器情報および前記実行結果は、前記汎用エミュレータが参照先に指定するフォルダにファイルとして格納され、
前記ファイルを別のファイルに置き換えてエミュレートを実行することで、前記プログラムが前記別のファイルの別の機器情報および別の実行結果を参照して、前記画像形成装置とは異なる別の画像形成装置の動作を前記汎用エミュレータでエミュレートする請求項４に記載の情報処理装置。
【請求項６】
画像形成装置の画像処理の機能を利用するためのインタフェースを提供するプログラムを有する情報処理装置が実行する方法であって、
前記画像形成装置のダミーの機器情報を生成するステップと、
前記画像形成装置の前記画像処理のダミーの実行結果を作成するステップと、
前記ダミーの機器情報および前記ダミーの実行結果に基づいて、前記画像形成装置において前記画像処理を実行したときの実行状態の画面を表示するステップと
を含む方法。
【請求項７】
画像形成装置の画像処理の機能を利用するためのインタフェースを提供するプログラムであって、
前記画像形成装置のダミーの機器情報を生成する処理と、
前記画像形成装置の前記画像処理のダミーの実行結果を作成する処理と、
前記ダミーの機器情報および前記ダミーの実行結果に基づいて、前記画像形成装置において前記画像処理を実行したときの実行状態を示す画面を表示する処理と
を情報処理装置に実行させるためのプログラム。
【請求項８】
前記プログラムは、汎用エミュレータ上で動作する請求項７に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、サードベンダ等によって、複合機（ＭＦＰ：Multifunction Peripheral）等の画像形成装置上で印刷やスキャン等の画像処理を行うためのアプリケーション（以下、ベンダーアプリケーションともいう）が開発されている。
【０００３】
画像形成装置では、印刷やスキャン等の画像処理を行うためのＡＰＩを備えたアプリケーション（例えば、特許文献１の機能提供アプリケーション）が用意されている。この機能提供アプリケーションは、ベンダーアプリケーションから呼び出されると、画像処理のためのユーザインタフェース（ＵＩ）を提供したり、画像処理のジョブの実行を要求したりする。そのため、サードベンダ等は、機能提供アプリケーションを利用することで、ベンダーアプリケーションを容易に開発することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記のようなベンダーアプリケーションの開発を行った場合、サードベンダ等は、開発したベンダーアプリケーションをシミュレーションする（つまり、動作テストを行う）ために、画像形成装置そのものを調達したり、あるいは、画像形成装置の動作や機能を模倣する専用のエミュレータをセットアップしたりしなければならないといった負担があった。
【０００５】
そこで、本発明の一実施形態では、画像形成装置上で動作するアプリケーションを容易にシミュレーションすることを目的とする。
【課題を解決するための手段】
【０００６】
上記の課題を解決するために、本発明の一実施形態は、画像形成装置の画像処理の機能を利用するためのインタフェースを提供するプログラムを有する情報処理装置であって、前記画像形成装置のダミーの機器情報を生成し、前記画像形成装置の前記画像処理のダミーの実行結果を作成し、前記ダミーの機器情報および前記ダミーの実行結果に基づいて、前記画像形成装置において前記画像処理を実行したときの実行状態の画面を表示するように構成されたことを特徴とする。
【発明の効果】
【０００７】
本発明の一実施形態によれば、画像形成装置上で動作するアプリケーションを容易にシミュレーションすることができる。
【図面の簡単な説明】
【０００８】
【図１】本実施形態に係る画像形成システムの全体構成の一例を示す図である。
【図２】本実施形態に係る画像形成装置のハードウェア構成の一例を示す図である。
【図３】本実施形態に係る情報処理装置のハードウェア構成の一例を示す図である。
【図４】本実施形態に係る画像形成装置の操作装置及び本体装置に含まれるソフトウェア群の階層構造の一例を示す図である。
【図５】本実施形態に係る画像形成装置に設けられているソフトウェアの一例を示す図である。
【図６】従来の機能提供アプリケーションによるシミュレーションを説明するための図である。
【図７】従来の機能提供アプリケーションによるシミュレーションを示すシーケンス図である。
【図８】本実施形態に係る機能提供アプリケーションによるシミュレーションを説明するための図である。
【図９】本実施形態に係る機能提供アプリケーションの機能ブロックの一例を示す図である。
【図１０】本実施形態に係る機能提供アプリケーションによるシミュレーションを示すシーケンス図である。
【図１１】本実施形態に係るベンダーアプリケーションの画面の一例を示す図である。
【図１２】本実施形態に係る設定画面の一例を示す図である。
【図１３】本実施形態に係るジョブ実行中画面の一例を示す図である。
【図１４】本実施形態に係る機能提供アプリケーションによるシミュレーションを説明するための図である。
【図１５】本実施形態に係るダミー情報の一例を示す図である。
【図１６】本実施形態に係るダミー情報の一例を示す図である。
【図１７】本実施形態に係る機能提供アプリケーションによるシミュレーション（ジョブ成功）を示すシーケンス図である。
【図１８】本実施形態に係る機能提供アプリケーションによるシミュレーション（ジョブ失敗）を示すシーケンス図である。
【図１９】本実施形態に係るエラー画面の一例を示す図である。
【発明を実施するための形態】
【０００９】
以下、本発明の実施の形態について、図面を参照しながら説明する。
【００１０】
＜全体構成例＞
図１は、本実施形態に係る画像形成システム１の全体構成の一例を示す図である。図１に示すように、本発明の一実施形態に係る画像形成システム１には、１以上の画像形成装置１０と、１以上の情報処理装置２０とが含まれる。また、画像形成装置１０と情報処理装置２０とは、任意のネットワーク３０を介して通信可能に接続されうる。
【００１１】
画像形成装置１０は、複合機等の電子機器である。なお、画像形成装置１０は、複合機に限られず、例えば、ＰＪ（Projector：プロジェクタ）、ＩＷＢ（Interactive White Board：相互通信が可能な電子式の黒板機能を有する白板）、デジタルサイネージ等の出力装置、ＨＵＤ（Head Up Display）装置、産業機械、製造装置、撮像装置、集音装置、医療機器、ネットワーク家電、ノートＰＣ（Personal Computer）、携帯電話、スマートフォン、タブレット端末、ゲーム機、ＰＤＡ（Personal Digital Assistant）、デジタルカメラ、ウェアラブルＰＣまたはデスクトップＰＣ等であってもよい。
【００１２】
情報処理装置２０は、ＰＣ（パーソナルコンピュータ）等のコンピュータである。後述するように、情報処理装置２０は、画像形成装置１０上で動作するアプリケーションを開発し、及び、そのアプリケーションをシミュレーションする際に用いられる。
【００１３】
なお、図１に示す画像形成システム１の構成は一例であって、他の構成であってもよい。
【００１４】
＜画像形成装置１０のハードウェア構成例＞
図２は、本実施形態に係る画像形成装置１０のハードウェア構成の一例を示す図である。図２に示すように、本発明の一実施形態に係る画像形成装置１０は、操作装置１１と、本体装置１２とを有している。
【００１５】
操作装置１１は、本体装置１２に実行させる画像処理機能の選択、画像処理機能を実行させるための各種設定値の入力、画像処理機能の実行を開始させるための実行指示の入力、表示画面の切り替え等、ユーザが各種操作を行う際に用いられる。
【００１６】
本体装置１２は、操作装置１１におけるユーザの各種操作に応じて、画像処理機能の実行等の各種の処理を実行する。
【００１７】
図２に示すように、画像形成装置１０の操作装置１１は、ＣＰＵ（Central Processing Unit）１１１と、ＲＯＭ（Read Only Memory）１１２と、ＲＡＭ（Random Access Memory）１１３とを有している。また、操作装置１１は、フラッシュメモリ１１４と、操作パネル１１５と、接続Ｉ／Ｆ１１６と、通信Ｉ／Ｆ１１７とを有している。これら各ハードウェアは、バス１１８を介して相互に接続されている。
【００１８】
ＣＰＵ１１１は、ＲＡＭ１１３をワークエリアとしてＲＯＭ１１２又はフラッシュメモリ１１４に記憶された各種プログラムを実行することで、操作装置１１全体を制御する演算装置である。
【００１９】
ＲＯＭ１１２は、電源を切ってもデータを保持することができる不揮発性の半導体メモリ（記憶装置）である。ＲＡＭ１１３は、プログラムやデータを一時保持する揮発性の半導体メモリ（記憶装置）である。
【００２０】
フラッシュメモリ１１４は、不揮発性の記憶装置であり、ＣＰＵ１１１が実行する各種プログラム（例えば、本実施形態を実現するプログラム等）や各種データを記憶する。
【００２１】
操作パネル１１５は、ユーザが各種操作を行う際に用いられる。また、操作パネル１１５は、ユーザに対して各種画面等を表示する。
【００２２】
接続Ｉ／Ｆ１１６は、通信路１３を介して本体装置１２と通信するためのインタフェースである。接続Ｉ／Ｆ１１６には、例えばＵＳＢ（Universal Serial Bus）規格のインタフェースが用いられる。
【００２３】
通信Ｉ／Ｆ１１７は、他の機器等と通信するためのインタフェースである。通信Ｉ／Ｆ１１７には、例えば、Ｗｉ−Ｆｉ規格の無線ＬＡＮ（Local Area Network）等が用いられる。
【００２４】
同様に、画像形成装置１０の本体装置１２は、ＣＰＵ１２１と、ＲＯＭ１２２と、ＲＡＭ１２３とを有している。また、本体装置１２は、ＨＤＤ（Hard Disk Drive）１２４と、画像処理エンジン１２５と、接続Ｉ／Ｆ１２６と、通信Ｉ／Ｆ１２７とを有している。これら各ハードウェアは、バス１２８を介して相互に接続されている。
【００２５】
ＣＰＵ１２１は、ＲＡＭ１２３をワークエリアとしてＲＯＭ１２２又はＨＤＤ１２４に記憶された各種プログラムを実行することで、本体装置１２全体を制御する演算装置である。
【００２６】
ＲＯＭ１２２は、電源を切ってもデータを保持することができる不揮発性の半導体メモリ（記憶装置）である。ＲＡＭ１２３は、プログラムやデータを一時保持する揮発性の半導体メモリ（記憶装置）である。
【００２７】
ＨＤＤ１２４は、不揮発性の記憶装置であり、ＣＰＵ１２１が実行する各種プログラム（例えば、本実施形態を実現するプログラム等）や各種データを記憶する。
【００２８】
画像処理エンジン１２５は、印刷機能、スキャン機能、コピー機能、及びＦＡＸ機能等の各種の画像処理機能を実現するための画像処理を行うハードウェアである。
【００２９】
画像処理エンジン１２５には、例えば、用紙等のシート材への印刷を行うプロッタ、原稿を光学的に読み取って画像データを生成するスキャナ、及びＦＡＸ通信を行うＦＡＸ通信装置等が含まれる。また、画像処理エンジン１２５には、例えば、印刷済みのシート材を仕分けるフィニッシャや原稿を自動給送するＡＤＦ（自動原稿給送装置）等が含まれていてもよい。
【００３０】
接続Ｉ／Ｆ１２６は、通信路１３を介して操作装置１１と通信するためのインタフェースである。接続Ｉ／Ｆ１２６には、例えば、ＵＳＢ規格のインタフェースが用いられる。
【００３１】
通信Ｉ／Ｆ１２７は、他の機器等と通信するためのインタフェースである。通信Ｉ／Ｆ１２７には、例えば、Ｗｉ−Ｆｉ規格の無線ＬＡＮ等が用いられる。
【００３２】
本実施形態に係る画像形成装置１０は、図２に示すハードウェア構成を有することにより、後述する各種処理を実現することができる。
【００３３】
なお、図２では、画像形成装置１０が操作装置１１を有している構成を一例として示したが、これに限られず、例えば、タブレット端末、スマートフォン、携帯電話、ＰＤＡ等の情報処理装置２０が画像形成装置１０の操作装置として機能してもよい。すなわち、これらの情報処理装置２０は、操作装置１１の通信Ｉ／Ｆ１１７又は本体装置１２の通信Ｉ／Ｆ１２７を介して画像形成装置１０と通信することにより、当該画像形成装置１０を制御することができてもよい。
【００３４】
＜情報処理装置２０のハードウェア構成例＞
図３は、本実施形態に係る情報処理装置２０のハードウェア構成の一例を示す図である。
【００３５】
図３に示すように、情報処理装置２０は、入力装置３１と、表示装置３２と、外部Ｉ／Ｆ３３と、ＲＡＭ３４と、ＲＯＭ３５と、ＣＰＵ３６と、通信Ｉ／Ｆ３７と、補助記憶装置３８とを有する。これら各ハードウェアは、それぞれがバス３９を介して通信可能に接続されている。
【００３６】
入力装置３１は、例えばキーボードやマウス、タッチパネル等であり、ユーザが各種操作を入力するのに用いられる。表示装置３２は、例えばディスプレイ等であり、情報処理装置２０の処理結果を表示する。
【００３７】
外部Ｉ／Ｆ３３は、外部装置とのインタフェースである。外部装置には、記録媒体３３ａ等がある。情報処理装置２０は、外部Ｉ／Ｆ３３を介して、記録媒体３３ａ等の読み取りや書き込みを行うことができる。
【００３８】
記録媒体３３ａには、例えば、フレキシブルディスク、ＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disk）、ＳＤメモリカード（Secure Digital memory card）、ＵＳＢ（Universal Serial Bus）メモリカード等がある。
【００３９】
ＲＡＭ３４は、プログラムやデータを一時保持する揮発性の半導体メモリである。ＲＯＭ３５は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリである。ＲＯＭ３５には、例えば、ＯＳ設定やネットワーク設定等が格納されている。
【００４０】
ＣＰＵ３６は、ＲＯＭ３５や補助記憶装置３８等からプログラムやデータをＲＡＭ３４上に読み出して処理を実行する演算装置である。
【００４１】
通信Ｉ／Ｆ３７は、情報処理装置２０をネットワーク３０に接続するためのインタフェースである。補助記憶装置３８は、例えばＨＤＤやＳＳＤ等であり、プログラムやデータを格納している不揮発性の記憶装置である。補助記憶装置３８に格納されているプログラムやデータには、例えば、ＯＳ、当該ＯＳ上において各種機能を実現するアプリケーションプログラム等がある。
【００４２】
＜画像形成装置１０のソフトウェア群の階層構造＞
図４は、本実施形態に係る画像形成装置１０の操作装置１１及び本体装置１２に含まれるソフトウェア群の階層構造の一例を示す図である。
【００４３】
図４は、操作装置１１に含まれるソフトウェア群の階層構造と、本体装置１２に含まれるソフトウェア群の階層構造とを示している。
【００４４】
この図４に示すように、本体装置１２は、アプリケーション層２０１と、サービス層２０２と、ＯＳ層２０３とを有する。アプリケーション層２０１、サービス層２０２及びＯＳ層２０３の実体は、ＲＯＭ１２２又はＨＤＤ１２４等に格納されている各種ソフトウェアである。ＣＰＵ１２１が、これらのソフトウェアを実行することにより、各種の機能が提供される。 
【００４５】
アプリケーション層２０１のソフトウェアは、ハードウェア資源を動作させて所定の機能を提供するためのアプリケーションソフトウェア（以下の説明では、単に「アプリケーション」と称する場合がある）である。例えばアプリケーションとしては、コピー機能を提供するためのコピーアプリケーション、スキャナ機能を提供するためのスキャナアプリケーション、ファクシミリ機能を提供するためのＦＡＸアプリケーション、印刷機能を提供するためのプリンタアプリケーション等が挙げられる。 
【００４６】
サービス層２０２のソフトウェアは、アプリケーション層２０１とＯＳ層２０３との間に介在し、アプリケーションに対し、本体装置１２が備えるハードウェア資源を利用するためのインタフェースを提供するソフトウェアである。具体的には、ハードウェア資源に対する動作要求の受け付け、動作要求の調停を行う機能を提供するためのソフトウェアである。サービス層２０２が受け付ける動作要求は、例えばスキャナによる読み取り又はプロッタによる印刷等の要求である。 
【００４７】
なお、サービス層２０２によるインタフェースの機能は、本体装置１２のアプリケーション層２０１だけではなく、操作装置１１のアプリケーション層１０１に対しても提供される。すなわち、操作装置１１のアプリケーション層１０１（アプリケーション）も、サービス層２０２のインタフェース機能を介して、本体装置１２のハードウェア資源（例えば画像処理エンジン１２５）を利用した機能を実現することができる。 
【００４８】
ＯＳ層２０３のソフトウェアは、本体装置１２が備えるハードウェアを制御する基本機能を提供するための基本ソフトウェア（オペレーティングシステム）である。サービス層２０２のソフトウェアは、各種アプリケーションからのハードウェア資源の利用要求を、ＯＳ層２０３が解釈可能なコマンドに変換してＯＳ層２０３に渡す。そして、ＯＳ層２０３のソフトウェアによりコマンドが実行されることで、ハードウェア資源は、アプリケーションの要求に従った動作を行う。 
【００４９】
同様に、操作装置１１は、アプリケーション層１０１と、ＯＳ層１０３とを有する。操作装置１１が備えるアプリケーション層１０１及びＯＳ層１０３も、階層構造については本体装置１２側と同様である。ただし、アプリケーション層１０１のアプリケーションにより提供される機能が受け付け可能な動作要求の種類は、本体装置１２側とは異なる。アプリケーション層１０１のアプリケーションは、操作装置１１が備えるハードウェア資源を動作させて所定の機能を提供するためのソフトウェアである。例えば、本体装置１２が備える機能（コピー機能、スキャナ機能、ファクシミリ機能、プリンタ機能）に関する操作及び表示を行うためのＵＩ（ユーザインタフェース）の機能を提供するためのソフトウェアである。 
【００５０】
また、本実施形態では、機能の独立性を保つために、本体装置１２側のＯＳ層２０３のソフトウェアと操作装置１１側のＯＳ層１０３のソフトウェアが互いに異なる。一例ではあるが、本体装置１２側のＯＳ層２０３のソフトウェアとしてＬｉｎｕｘ（登録商標）が設けられ、操作装置１１側のＯＳ層１０３のソフトウェアとしてＡｎｄｒｏｉｄ（登録商標）が設けられている。これにより、本体装置１２と操作装置１１は、別々のオペレーティングシステムで互いに独立して動作するようになっている。 
【００５１】
本体装置１２及び操作装置１１を、別々のオペレーティングシステムで動作させることで、本体装置１２と操作装置１１との間の通信は、共通の装置内のプロセス間通信ではなく、異なる装置間の通信として行われる。操作装置１１が受け付けた入力（ユーザからの指示内容）を本体装置１２へ伝達する動作（コマンド通信）及び本体装置１２が操作装置１１へイベントを通知する動作等がこれに該当する。ここでは、操作装置１１が本体装置１２へコマンド通信を行うことにより、本体装置１２の機能を使用することができる。また、本体装置１２から操作装置１１に通知するイベントには、本体装置１２における動作の実行状況、本体装置１２側で設定された内容等が挙げられる。
【００５２】
＜画像形成装置１０に設けられているソフトウェア＞
図５に、本実施形態に係る画像形成装置１０に設けられているソフトウェアの一例を示す。上述のように、本体装置１２は、アプリケーション層２０１、サービス層２０２及びＯＳ層２０３に分かれている。このうち、アプリケーション層２０１には、図２に示す画像処理エンジン１２５を制御して、原稿の読み取り制御又は印刷制御等を行うアプリケーションが記憶されている。具体的には、アプリケーション層２０１には、コピーアプリケーション１４１、スキャナアプリケーション１４２、プリンタアプリケーション１４３及びＦＡＸアプリケーション１４４が記憶されている。コピーアプリケーション１４１〜ＦＡＸアプリケーション１４４は、標準搭載のジョブ実行機能アプリケーションである。 
【００５３】
また、サービス層２０２には、省エネルギー管理プログラム（省エネ管理プログラム）１５１、メモリ管理プログラム１５２及びエンジン制御プログラム１５３等の、各アプリケーションが共通で行う処理に対応する各種プログラムが記憶されている。サービス層２０２は、省エネルギー管理及びメモリ管理等、各アプリケーションが共通で行う処理を行っている。
【００５４】
これに対して、操作装置１１は、アプリケーション層１０１及びＯＳ層１０３に分かれている。本体装置アプリケーションと操作装置アプリケーションの違いは、本体装置のアプリケーションでは画像処理エンジン制御等を行うことで、例えば読み取り及び印刷等の画像形成装置１０の機能を制御するのに対し、操作装置のアプリケーションではＵＩ制御を行っている。つまり、操作装置アプリケーションで画面表示を行うことでユーザの操作を受け付け、そのユーザ操作に基づいた画像処理エンジン制御を本体装置アプリケーションが行っている。
【００５５】
操作装置アプリケーションには、同じ機能を実現する複数のアプリケーションが存在することもある。これは機能が同じでもＵＩのデザイン（見た目）又は搭載した機能を変えている場合である。図５の例では、一例として操作装置１１に第１のコピー受付アプリケーション１３１と第２のコピー受付アプリケーション１３２が存在する。第２のコピー受付アプリケーション１３２は、第１のコピー受付アプリケーション１３１と比べて機能を少なくし、ＵＩの見た目を簡単にしたアプリケーションである。
【００５６】
この第１のコピー受付アプリケーション１３１と第２のコピー受付アプリケーション１３２の関係と同じように、例えばスキャナアプリケーション等に対して開発ベンダーが開発するベンダーアプリケーション１３７が存在する。また、ベンダーアプリケーション１３７の開発を簡単にするために、操作装置１１の第１のコピー受付アプリケーション１３１〜ＦＡＸ受付アプリケーション１３５と同等の機能をベンダー等に提供する機能提供アプリケーション１３６が設けられている。
【００５７】
すなわち、操作装置１１のアプリケーション層２０１には、ユーザインタフェースを介してユーザ操作を受け付けるアプリケーションが記憶されている。具体的には、アプリケーション層２０１には、ホームアプリケーション１３０、第１のコピー受付アプリケーション１３１、第２のコピー受付アプリケーション１３２、スキャナ受付アプリケーション１３３、プリンタ受付アプリケーション１３４、ＦＡＸ受付アプリケーション１３５、機能提供アプリケーション１３６及びベンダーアプリケーション１３７が記憶されている。機能提供アプリケーション１３６は、画像処理プログラムの一例である。また、機能提供アプリケーション１３６は、一例として操作装置１１のＲＯＭ１１２、ＲＡＭ１１３又はフラッシュメモリ１１４等の記憶部に記憶される。
【００５８】
ホームアプリケーション１３０は、所望の操作を指定するためのアイコン等が並べられたメイン画面（初期画面）を表示する。そして、ユーザによりアイコン操作を介して指定されたアプリケーションを起動する。第１のコピー受付アプリケーション１３１は、操作ボタン及び設定ボタンを介して、ユーザのコピー操作を受け付けるアプリケーションである。第２のコピー受付アプリケーション１３２は、主に使用頻度の高い操作ボタン及び設定ボタン等を表示することで、第１のコピー受付アプリケーション１３１よりも、表示する操作ボタン及び設定ボタンの数を減らし、視認性及び操作性の向上を図ったアプリケーションである。スキャナ受付アプリケーション１３３は、操作ボタン及び設定ボタン等を介して、ユーザのスキャナ操作を受け付けるアプリケーションである。プリンタ受付アプリケーション１３４は、操作ボタン及び設定ボタン等を介して、ユーザのスキャナ操作を受け付けるアプリケーションである。ＦＡＸ受付アプリケーション１３５は、操作ボタン及び設定ボタン等を介して、ユーザのファクシミリ送受信操作を受け付けるアプリケーションである。 
【００５９】
機能提供アプリケーション１３６は、上述のようにベンダーアプリケーション１３７の開発を容易化するために、操作装置１１の第１のコピー受付アプリケーション１３１〜ＦＡＸ受付アプリケーション１３５と同等の機能をベンダー等に提供する。
【００６０】
すなわち、機能提供アプリケーション１３６が例えばスキャナアプリケーション１４２に対応するアプリケーションの場合、通常の操作メニュー及び設定メニュー等のユーザインタフェースを表示する機能をベンダーに提供する。また、機能提供アプリケーション１３６が例えばプリンタアプリケーション１４３に対応するアプリケーションの場合、通常の操作メニュー及び設定メニュー等のユーザインタフェースを表示する機能をベンダーに提供する。 
【００６１】
このように画像形成装置１０の操作装置１１には、第１のコピー受付アプリケーション１３１〜ＦＡＸ受付アプリケーション１３５と同等の機能をベンダー等に提供するための機能提供アプリケーション１３６が設けられている。ベンダーアプリケーション１３７の開発ベンダーに対しては、機能提供アプリケーション１３６の機能を実現するＡＰＩ（Application  Programming  Interface）が公開されている。
【００６２】
＜従来の機能提供アプリケーション１７０によるシミュレーション＞
図６は、従来の機能提供アプリケーション１７０によるシミュレーションを説明するための図である。従来、サードベンダ等は、画像形成装置１０の本体装置１２そのものを用いて、あるいは、画像形成装置１０の本体装置１２の動作や機能を模倣する専用のエミュレータ１７４を用いて、開発したベンダーアプリケーション１３７をシミュレーション（動作テスト）していた。図６の左側は、画像形成装置１０の本体装置１２そのものを用いてシミュレーションする場合である。図６の右側は、情報処理装置２０にセットアップされた専用エミュレータ１７４を用いてシミュレーションする場合である。
【００６３】
上述のとおり、ベンダーアプリケーション１３７は、画像形成装置１０上で印刷やスキャン等の画像処理を行うためのアプリケーションである。このベンダーアプリケーション１３７がシミュレーション（動作テスト）される。ユーザ（つまり、動作テストを行う者）は、ベンダーアプリケーション１３７で、画像形成装置１０上で印刷やスキャン等の画像処理を行うための操作をする。ベンダーアプリケーション１３７は、ユーザがベンダーアプリケーション１３７で操作をすると、機能提供アプリケーション１７０を呼び出す。
【００６４】
機能提供アプリケーション１７０は、ベンダーアプリケーション１３７から呼び出されると、印刷やスキャン等の画像処理のためのＵＩ（ユーザインタフェース）を提供する。また、機能提供アプリケーション１７０は、ユーザによるＵＩの操作に従って、本体装置１２または専用エミュレータサーバ１７５と通信して、印刷やスキャン等の画像処理の要求を行う。
【００６５】
図６に示すように、従来の機能提供アプリケーション１７０は、ＵＩ（ユーザインタフェース）層１７１と、ロジック層１７２と、ＡＰＩ（Application  Programming  Interface）コール層１７３とに分かれている。ＵＩ層１７１は、設定画面といった印刷やスキャン等の画像処理のためのＵＩ（ユーザインタフェース）を提供する。ロジック層１７２は、印刷やスキャン等の画像処理のジョブの実行やエラーハンドリング等のロジックを構築する。ＡＰＩコール層１７３は、ロジック層１７２からの要求を受けて、本体装置１２または専用エミュレータサーバ１７５に印刷やスキャン等の画像処理の要求を行う。また、ＡＰＩコール層１７３は、本体装置１２または専用エミュレータサーバ１７５からジョブの実行状態やエラーの発生等の通知を受け、ロジック層１７２に通知する。以下、＜本体装置を用いた場合＞と＜専用エミュレータを用いた場合＞に分けて詳細に説明する。
【００６６】
＜本体装置を用いた場合＞
画像形成装置１０の本体装置１２そのものを用いてシミュレーションする場合、操作装置１１内の機能提供アプリケーション１７０は、ベンダーアプリケーション１３７から呼び出されると、本体装置１２に対して、印刷やスキャン等の画像処理の要求を行う。
【００６７】
＜専用エミュレータを用いた場合＞
専用エミュレータ１７４を用いてシミュレーションする場合、情報処理装置２０内の機能提供アプリケーション１７０は、ベンダーアプリケーション１３７から呼び出されると、専用エミュレータサーバ１７５に対して、印刷やスキャン等の画像処理の要求を行う。専用エミュレータ１７４は、画像形成装置１０の本体装置１２の動作や機能を模倣するエミュレータである。専用エミュレータサーバ１７５は、画像形成装置１０の本体装置１２を代替する。具体的には、専用エミュレータサーバ１７５は、機能提供アプリケーション１７０から印刷やスキャン等の画像処理のジョブの実行要求を受けて、それらのジョブを実行する。また、専用エミュレータサーバ１７５は、ジョブの実行状態（例えば、ジョブ実行開始、ジョブ実行中、ジョブ実行終了等）を機能提供アプリケーション１７０へ通知する。
【００６８】
図７は、従来の機能提供アプリケーション１７０によるシミュレーションを示すシーケンス図である。なお、上述の＜本体装置を用いた場合＞で説明するが、＜専用エミュレータを用いた場合＞も同様である。
【００６９】
ステップＳ１０１において、ベンダーアプリケーション１３７が起動する。
【００７０】
ステップＳ１０２において、ベンダーアプリケーション１３７上で、印刷やスキャン等の画像処理の設定を行うための設定ボタンが押下されたとする。
【００７１】
ステップＳ１０３において、ベンダーアプリケーション１３７は、機能提供アプリケーション１７０を起動する（呼び出す）。
【００７２】
ステップＳ１０４において、ＡＰＩコール層１７３は、機器情報（例えば、複合機等の画像形成装置１０のモデル名、ケイパビリティ（性能）情報、省エネ情報等）を返すよう本体装置１２に要求する。なお、Ｓ１０４は、図７のように機能提供アプリケーション１７０が呼び出されたときに行われてもよいし、本体装置１２が起動したときに行われてもよい。
【００７３】
ステップＳ１０５において、本体装置１２は、ＡＰＩコール層１７３に機器情報を返却する。
【００７４】
ステップＳ１０６において、ＡＰＩコール層１７３は、ロジック層１７２に機器情報を通知する。
【００７５】
ステップＳ１０７において、ロジック層１７２は、機器情報に基づいて、設定画面を表示するようＵＩ層１７１に要求する。
【００７６】
ステップＳ１０８において、ＵＩ層１７１は、設定画面を表示する。
【００７７】
ステップＳ１０９において、機能提供アプリケーション１７０上で、印刷やスキャン等の画像処理の実行を開始するためのスタートボタンが押下されたとする。
【００７８】
ステップＳ１１０において、ＵＩ層１７１は、スタートボタンが押下されたことをロジック層１７２に通知する。
【００７９】
ステップＳ１１１において、ロジック層１７２は、印刷やスキャン等の画像処理のＡＰＩの使用をＡＰＩコール層１７３に要求する。
【００８０】
ステップＳ１１２において、ＡＰＩコール層１７３は、本体装置１２に印刷やスキャン等の画像処理の実行を要求する。
【００８１】
ステップＳ１１３において、本体装置１２は、印刷やスキャン等の画像処理を実行する。
【００８２】
ステップＳ１１４において、本体装置１２は、ジョブ実行開始をＡＰＩコール層１７３に通知する。
【００８３】
ステップＳ１１５において、ＡＰＩコール層１７３は、ジョブ実行開始をロジック層１７２に通知する。
【００８４】
ステップＳ１１６において、ロジック層１７２は、ジョブ実行中画面を表示するようＵＩ層１７１に要求する。
【００８５】
ステップＳ１１７において、ＵＩ層１７１は、ジョブ実行中画面を表示する。
【００８６】
ステップＳ１１８において、本体装置１２は、ジョブ実行中（１枚目）をＡＰＩコール層１７３に通知する。
【００８７】
ステップＳ１１９において、ＡＰＩコール層１７３は、ジョブ実行中（１枚目）をロジック層１７２に通知する。
【００８８】
ステップＳ１２０において、ロジック層１７２は、ジョブ実行中画面（１枚目）を更新するようＵＩ層１７１に要求する。
【００８９】
ステップＳ１２１において、ＵＩ層１７１は、ジョブ実行中画面（１枚目）を更新する。
【００９０】
ステップＳ１２２において、本体装置１２は、ジョブ実行中（２枚目）をＡＰＩコール層１７３に通知する。
【００９１】
ステップＳ１２３において、ＡＰＩコール層１７３は、ジョブ実行中（２枚目）をロジック層１７２に通知する。
【００９２】
ステップＳ１２４において、ロジック層１７２は、ジョブ実行中画面（２枚目）を更新するようＵＩ層１７１に要求する。
【００９３】
ステップＳ１２５において、ＵＩ層１７１は、ジョブ実行中画面（２枚目）を更新する。
【００９４】
ステップＳ１２６において、本体装置１２は、ジョブ実行終了をＡＰＩコール層１７３に通知する。
【００９５】
ステップＳ１２７において、ＡＰＩコール層１７３は、ジョブ実行終了をロジック層１７２に通知する。
【００９６】
ステップＳ１２８において、ロジック層１７２は、ジョブ実行中画面を非表示にするようＵＩ層１７１に要求する。
【００９７】
ステップＳ１２９において、ＵＩ層１７１は、ジョブ実行中画面を非表示にする。
【００９８】
ステップＳ１３０において、ロジック層１７２は、ベンダーアプリケーション１３７にジョブ実行の結果を返却する。
【００９９】
ステップＳ１３１において、ベンダーアプリケーション１３７は、ベンダーアプリケーション１３７に固有の処理を行う。
【０１００】
＜本実施形態に係る機能提供アプリケーション１８０によるシミュレーション＞
図８は、本実施形態に係る機能提供アプリケーション１８０によるシミュレーションを説明するための図である。本発明の一実施形態では、サードベンダ等は、汎用のエミュレータ１８４を用いて、開発したベンダーアプリケーション１３７をシミュレーション（動作テスト）することができる。
【０１０１】
汎用エミュレータ１８４は、Ａｎｄｒｏｉｄ  Ｓｔｕｄｉｏで利用できるエミュレータ等、Ｊａｖａ（登録商標）で記述されたベンダーアプリケーション１３７を動作させることができる汎用的なエミュレータである。
【０１０２】
上述のとおり、ベンダーアプリケーション１３７は、画像形成装置１０上で印刷やスキャン等の画像処理を行うためのアプリケーションである。このベンダーアプリケーション１３７が情報処理装置２０においてシミュレーション（動作テスト）される。ユーザ（つまり、動作テストを行う者）は、ベンダーアプリケーション１３７で、画像形成装置１０上で印刷やスキャン等の画像処理を行うための操作をする。ベンダーアプリケーション１３７は、ユーザがベンダーアプリケーション１３７で操作をすると、機能提供アプリケーション１８０を呼び出す。
【０１０３】
機能提供アプリケーション１８０は、ベンダーアプリケーション１３７から呼び出されると、印刷やスキャン等の画像処理のためのＵＩ（ユーザインタフェース）を提供する。なお、本実施形態に係る機能提供アプリケーション１８０は、シミュレーションのために、本体装置１２または専用エミュレータサーバ１７５と通信して、印刷やスキャン等の画像処理の要求を行う必要がない。
【０１０４】
図８に示すように、本実施形態に係る機能提供アプリケーション１８０は、ＵＩ（ユーザインタフェース）層１８１と、ロジック層１８２と、ダミー層１８３とに分かれている。ＵＩ層１８１は、設定画面といった印刷やスキャン等の画像処理のためのＵＩ（ユーザインタフェース）を提供する。ロジック層１８２は、印刷やスキャン等の画像処理のジョブの実行やエラーハンドリング等のロジックを構築する。
【０１０５】
ダミー層１８３は、ロジック層１８２からの要求を受けて、ダミー層１８３で処理を行い（後述する）、処理の結果をロジック層１８２に通知する。
【０１０６】
このように、本実施形態に係る機能提供アプリケーション１８０は、本体装置１２と同じユーザインタフェースやロジックを有している。そのため、本体装置１２そのものや専用エミュレータ１７４を用いなくても、汎用エミュレータ１８４を用いてベンダーアプリケーション１３７をシミュレーション（動作テスト）することができる。
【０１０７】
＜機能提供アプリケーション１８０の機能＞
図９は、本実施形態に係る機能提供アプリケーション１８０の機能ブロックの一例を示す図である。情報処理装置２０のＣＰＵ３６は、例えばＲＯＭ３５、ＲＡＭ３４又は補助記憶装置３８等の記憶部に記憶されている機能提供アプリケーション１８０を実行することで、図９に示す受信部１６１、記憶制御部１６２、切り替え部１６３、設定処理部１６４、及び、表示制御部１６５を実現する。
【０１０８】
受信部１６１は、ユーザが操作装置１１の操作パネル１１５を介して行った入力操作に対応するコマンドを受信する。
【０１０９】
記憶制御部１６２は、画面表示要求のあったアプリケーションに対応する情報を、例えばＲＯＭ３５、ＲＡＭ３４又は補助記憶装置３８等の記憶部から読み出し又は保存等を行う。
【０１１０】
切り替え部１６３は、ユーザによる操作装置１１の操作パネル１１５の操作に応じて、操作装置１１の操作パネル１１５に表示する画面の切り替えを行う。
【０１１１】
設定処理部１６４は、設定画面を介してユーザにより設定された設定内容をベンダーアプリケーション１３７に通知する等の設定処理を行う。
【０１１２】
表示制御部１６６は、操作装置１１の操作パネル１１５に対してメイン画面又は設定画面等の表示制御を行う。 
【０１１３】
なお、この例では、受信部１６１〜表示制御部１６５をソフトウェアで実現することとしたが、受信部１６１〜表示制御部１６５のうち、一部又は全部を、ＩＣ（Integrated  Circuit）等のハードウェアで実現してもよい。 
【０１１４】
また、機能提供アプリケーション１８０は、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）等のコンピュータ装置で読み取り可能な記録媒体に記録して提供してもよい。また、ＣＤ−Ｒ、ＤＶＤ（Digital  Versatile  Disk）、ブルーレイディスク（登録商標）、半導体メモリ等のコンピュータ装置で読み取り可能な記録媒体に記録して提供してもよい。また、機能提供アプリケーション１８０は、インターネット等のネットワーク経由でインストールするかたちで提供してもよい。また、機能提供アプリケーション１８０は、機器内のＲＯＭ等に予め組み込んで提供してもよい。
【０１１５】
図１０は、本実施形態に係る機能提供アプリケーション１８０によるシミュレーションを示すシーケンス図である。
【０１１６】
ステップＳ２０１において、ベンダーアプリケーション１３７が起動する。
【０１１７】
ステップＳ２０２において、ベンダーアプリケーション１３７上で、印刷やスキャン等の画像処理の設定を行うための設定ボタンが押下されたとする。例えば、ユーザは、図１１に示されるようなベンダーアプリケーション１３７の画面上で印刷やスキャン等の画像処理の設定を行うための設定ボタンを押下する。
【０１１８】
ステップＳ２０３において、ベンダーアプリケーション１３７は、Ｓ２０２で設定ボタンが押下されると、機能提供アプリケーション１８０を起動する（呼び出す）。
【０１１９】
ステップＳ２０４において、ダミー層１８３は、ダミーの機器情報（例えば、複合機等の画像形成装置１０のモデル名、ケイパビリティ（性能）情報、省エネ情報等）を生成する。なお、Ｓ２０４は、図１０のように機能提供アプリケーション１８０が呼び出されたときに行われてもよいし、汎用エミュレータ１８４が起動したときに行われてもよい。
【０１２０】
ステップＳ２０５において、ダミー層１８３は、ロジック層１８２にダミーの機器情報を通知する。
【０１２１】
ステップＳ２０６において、ロジック層１８２は、ダミーの機器情報に基づいて、設定画面を表示するようＵＩ層１８１に要求する。
【０１２２】
ステップＳ２０７において、ＵＩ層１８１は、設定画面を表示する。
【０１２３】
ステップＳ２０８において、機能提供アプリケーション１８０上で、印刷やスキャン等の画像処理の実行を開始するためのスタートボタンが押下されたとする。例えば、ユーザは、図１２に示されるような設定画面上で印刷やスキャン等の画像処理の実行を開始するためのスタートボタンを押下する。
【０１２４】
ステップＳ２０９において、ＵＩ層１８１は、スタートボタンが押下されたことをロジック層１８２に通知する。
【０１２５】
ステップＳ２１０において、ロジック層１８２は、印刷やスキャン等の画像処理のＡＰＩの使用をダミー層１８３に要求する。
【０１２６】
ステップＳ２１１において、ダミー層１８３は、印刷やスキャン等の画像処理の実行結果のダミーデータ（例えば、ジョブの成功や失敗等の情報）を作成する。
【０１２７】
ステップＳ２１２において、ダミー層１８３は、ジョブ実行開始をロジック層１８２に通知する。
【０１２８】
ステップＳ２１３において、ロジック層１８２は、ジョブ実行中画面を表示するようＵＩ層１８１に要求する。
【０１２９】
ステップＳ２１４において、ＵＩ層１８１は、ジョブ実行中画面を表示する。例えば、ＵＩ層１８１は、図１３に示されるようなジョブ実行中画面を表示する。
【０１３０】
ステップＳ２１５において、ダミー層１８３は、ジョブ実行中（１枚目）をロジック層１８２に通知する。
【０１３１】
ステップＳ２１６において、ロジック層１８２は、ジョブ実行中画面（１枚目）を更新するようＵＩ層１８１に要求する。
【０１３２】
ステップＳ２１７において、ＵＩ層１８１は、ジョブ実行中画面（１枚目）を更新する。
【０１３３】
ステップＳ２１８において、ダミー層１８３は、ジョブ実行中（２枚目）をロジック層１８２に通知する。
【０１３４】
ステップＳ２１９において、ロジック層１８２は、ジョブ実行中画面（２枚目）を更新するようＵＩ層１８１に要求する。
【０１３５】
ステップＳ２２０において、ＵＩ層１８１は、ジョブ実行中画面（２枚目）を更新する。
【０１３６】
ステップＳ２２１において、ダミー層１８３は、ジョブ実行終了をロジック層１８２に通知する。
【０１３７】
ステップＳ２２２において、ロジック層１８２は、ジョブ実行中画面を非表示にするようＵＩ層１８１に要求する。
【０１３８】
ステップＳ２２３において、ＵＩ層１８１は、ジョブ実行中画面を非表示にする。
【０１３９】
ステップＳ２２４において、ロジック層１８２は、ベンダーアプリケーション１３７にジョブ実行の結果を返却する。
【０１４０】
ステップＳ２２５において、ベンダーアプリケーション１３７は、ベンダーアプリケーション１３７に固有の処理を行う。
【０１４１】
＜本実施形態に係る機能提供アプリケーションによるシミュレーション＞
図１４は、本実施形態に係る機能提供アプリケーション１８０によるシミュレーションをさらに説明するための図である。以下、図８と異なる点を説明する。
【０１４２】
図１４に示すように、任意のフォルダ（汎用エミュレータ１８４内の任意のフォルダ）に、複数のダミー情報１８５があらかじめ登録されている。ダミー情報１８５は、複合機等の画像形成装置１０の機器情報（例えば、複合機のモデル名、ケイパビリティ（性能）情報、省エネ情報等）、及び、印刷やスキャン等の画像処理の実行結果（例えば、ジョブの成功や失敗等の情報）である。ダミー情報は、例えば、ＸＭＬ（Extensible Markup Language）やＪＳＯＮ（JavaScript Object Notation）等で記述されている。
【０１４３】
複合機等の画像形成装置１０の機器情報、及び、印刷やスキャン等の画像処理の実行結果は、汎用エミュレータ１８４が参照先に指定するフォルダにファイルとして格納される。ファイルを別のファイルに置き換えてエミュレートを実行することで、機能提供アプリケーション１８０は別のファイルの別の機器情報及び別の実行結果を参照して、異なる画像形成装置１０の動作を汎用エミュレータ１８４でエミュレートすることができる。つまり、異なる機種の画像形成装置１０の実行結果をテストすることができる。
【０１４４】
ダミー情報は、例えば図１５に示されるような、機種名がモノクロ機であるという機器情報である。この場合、印刷の設定画面ではカラー印刷の設定項目が表示されない。また、ダミー情報は、例えば図１６に示されるような、原稿詰まりのエラーが発生したという実行結果である。この場合、原稿詰まりのエラーが発生したことを示すエラー画面が表示される。
【０１４５】
ダミー層１８３は、ダミー情報１８５を取得して、取得したダミー情報１８５に基づいて、ダミー機器情報を生成する。また、ダミー層１８３は、ダミー情報１８５を取得して、取得したダミー情報１８５に基づいて、印刷やスキャン等の画像処理の実行結果のダミーデータを作成する。
【０１４６】
このように、本実施形態では、汎用エミュレータ１８４を用いたシミュレーションであっても、複合機等の画像形成装置１０ごとの設定項目の違いの確認、画像処理の実行結果（つまり、ジョブの成功と失敗）によるジョブの実行状態の通知の違いの確認をすることができる。
【０１４７】
以下、ダミー情報１８５を用いたシミュレーションをジョブ成功とジョブ失敗との場合に分けて説明する。
【０１４８】
図１７は、本実施形態に係る機能提供アプリケーションによるシミュレーション（ジョブ成功）を示すシーケンス図である。
【０１４９】
ステップＳ３０１において、ベンダーアプリケーション１３７が起動する。
【０１５０】
ステップＳ３０２において、ベンダーアプリケーション１３７上で、印刷やスキャン等の画像処理の設定を行うための設定ボタンが押下されたとする。
【０１５１】
ステップＳ３０３において、ベンダーアプリケーション１３７は、Ｓ３０２で設定ボタンが押下されると、機能提供アプリケーション１８０を起動する（呼び出す）。
【０１５２】
ステップＳ３０４において、ダミー層１８３は、ダミー情報１８５を取得する。なお、Ｓ３０４は、図１７のように機能提供アプリケーション１８０が呼び出されたときに行われてもよいし、汎用エミュレータ１８４が起動したときに行われてもよい。
【０１５３】
ステップＳ３０５において、ダミー層１８３は、Ｓ３０４で取得したダミー情報１８５に基づいて、ダミーの機器情報（例えば、複合機等の画像形成装置１０のモデル名、ケイパビリティ（性能）情報、省エネ情報等）を生成する。
【０１５４】
ステップＳ３０６において、ダミー層１８３は、ロジック層１８２にダミーの機器情報を通知する。
【０１５５】
ステップＳ３０７において、ロジック層１８２は、ダミーの機器情報に基づいて、設定画面を表示するようＵＩ層１８１に要求する。例えば、ダミー情報が、図１５のような機種名がモノクロ機であるという機器情報であった場合、ロジック層１８２は、印刷の設定画面ではカラー印刷の設定項目を表示しない（つまり、カラー設定でフルカラーを選択肢として表示しない）。
【０１５６】
ステップＳ３０８において、ＵＩ層１８１は、設定画面を表示する。
【０１５７】
ステップＳ３０９において、機能提供アプリケーション１８０上で、印刷やスキャン等の画像処理の実行を開始するためのスタートボタンが押下されたとする。
【０１５８】
ステップＳ３１０において、ＵＩ層１８１は、スタートボタンが押下されたことをロジック層１８２に通知する。
【０１５９】
ステップＳ３１１において、ロジック層１８２は、印刷やスキャン等の画像処理のＡＰＩの使用をダミー層１８３に要求する。
【０１６０】
ステップＳ３１２において、ダミー層１８３は、ダミー情報１８５を取得する。
【０１６１】
ステップＳ３１３において、ダミー層１８３は、Ｓ１２で取得したダミー情報１８５に基づいて、印刷やスキャン等の画像処理の実行結果のダミーデータ（例えば、ジョブの成功や失敗等の情報）を作成する。
【０１６２】
ステップＳ３１４〜ステップＳ３２７は、図１０のステップＳ２１２〜ステップＳ２２５と同様であるので説明を省略する。
【０１６３】
図１８は、本実施形態に係る機能提供アプリケーションによるシミュレーション（ジョブ失敗）を示すシーケンス図である。
【０１６４】
ステップＳ４０１〜ステップＳ４１９は、図１７のステップＳ３０１〜ステップＳ３１９と同様であるので説明を省略する。
【０１６５】
ステップＳ４２０において、ダミー層１８３は、Ｓ４１２で取得したダミー情報１８５に基づいて、ジョブにエラーが発生したことをロジック層１８２に通知する。
【０１６６】
ステップＳ４２１において、ロジック層１８２は、エラー画面を表示するようＵＩ層１８１に要求する。
【０１６７】
ステップＳ４２２において、ＵＩ層１８１は、エラー画面を表示する。例えば、ＵＩ層１８１は、図１９に示されるようなエラー画面を表示する。ＵＩ層１８１は、ジョブ実行中画面に重ねてエラー画面を表示してもよいし、あるいは、ジョブ実行中画面を非表示にしてエラー画面を表示してもよい。
【０１６８】
ステップＳ４２３において、ダミー層１８３は、エラーが解除されたことをロジック層１８２に通知する。図１９のような原稿詰まりのエラーの場合、エミュレータ上ではエラーを解決することができないので、ダミー層１８３は、一定時間経過後に、エラー解除を通知する。
【０１６９】
ステップＳ４２４において、ロジック層１８２は、エラー画面を非表示にするようＵＩ層１８１に要求する。
【０１７０】
ステップＳ４２５において、ＵＩ層１８１は、エラー画面を非表示にする。
【０１７１】
ステップＳ４２６において、ダミー層１８３は、ジョブ実行中（２枚目）をロジック層１８２に通知する。
【０１７２】
ステップＳ４２７において、ロジック層１８２は、ジョブ実行中画面（２枚目）を更新するようＵＩ層１８１に要求する。
【０１７３】
ステップＳ４２８において、ＵＩ層１８１は、ジョブ実行中画面（２枚目）を更新する。
【０１７４】
ステップＳ４２９において、ダミー層１８３は、ジョブ実行終了をロジック層１８２に通知する。
【０１７５】
ステップＳ４３０において、ロジック層１８２は、ジョブ実行中画面を非表示にするようＵＩ層１８１に要求する。
【０１７６】
ステップＳ４３１において、ＵＩ層１８１は、ジョブ実行中画面を非表示にする。
【０１７７】
ステップＳ４３２において、ロジック層１８２は、ベンダーアプリケーション１３７にジョブ実行の結果を返却する。
【０１７８】
ステップＳ４３３において、ベンダーアプリケーション１３７は、ベンダーアプリケーション１３７に固有の処理を行う。
【０１７９】
このように、本発明の一実施形態では、複合機等の画像形成装置の専用エミュレータを用いなくても、汎用エミュレータを用いて、ベンダーアプリケーションのシミュレーションをすることができる。
【０１８０】
上記で説明した実施形態の各機能は、一又は複数の処理回路によって実現することが可能である。ここで、本明細書における「処理回路」とは、電子回路により実装されるプロセッサのようにソフトウェアによって各機能を実行するようプログラミングされたプロセッサや、上記で説明した各機能を実行するよう設計されたＡＳＩＣ（Application Specific Integrated Circuit）、ＤＳＰ（Digital single processor）、ＦＰＧＡ（field programmable gate array）や従来の回路モジュール等のデバイスを含むものとする。
【０１８１】
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【０１８２】
１        画像形成システム
１０      画像形成装置
２０      情報処理装置
３０      ネットワーク
１１      操作装置
１２      本体装置
１０１    アプリケーション層
１０３    ＯＳ層
２０１    アプリケーション層
２０２    サービス層
２０３    ＯＳ層
１３０    ホームアプリ
１３１    第１のコピー受付アプリ
１３２    第２のコピー受付アプリ
１３３    スキャナ受付アプリ
１３４    プリンタ受付アプリ
１３５    ＦＡＸ受付アプリ
１３６    機能提供アプリ
１３７    ベンダ―アプリ
１４１    コピーアプリ
１４２    スキャナアプリ
１４３    プリンタアプリ
１４４    ＦＡＸアプリ
１５１    省エネ管理
１５２    メモリ管理
１５３    エンジン制御
１６１    受信部
１６２    記憶制御部
１６３    切り替え部
１６４    設定処理部
１６５    表示制御部
１７０    従来の機能提供アプリケーション
１７１    ＵＩ層
１７２    ロジック層
１７３    ＡＰＩコール層
１７４    専用エミュレータ
１７５    専用エミュレータサーバ
１８０    機能提供アプリケーション
１８１    ＵＩ層
１８２    ロジック層
１８３    ダミー層
１８４    汎用エミュレータ
１８５    ダミー情報
【先行技術文献】
【特許文献】
【０１８３】
【特許文献１】特開２０１８−０４６５５１号公報
【図１】
2020087138.tif 000003
【図２】
2020087138.tif 000004
【図３】
2020087138.tif 000005
【図４】
2020087138.tif 000006
【図５】
2020087138.tif 000007
【図６】
2020087138.tif 000008
【図７】
2020087138.tif 000009
【図８】
2020087138.tif 000010
【図９】
2020087138.tif 000011
【図１０】
2020087138.tif 000012
【図１１】
2020087138.tif 000013
【図１２】
2020087138.tif 000014
【図１３】
2020087138.tif 000015
【図１４】
2020087138.tif 000016
【図１５】
2020087138.tif 000017
【図１６】
2020087138.tif 000018
【図１７】
2020087138.tif 000019
【図１８】
2020087138.tif 000020
【図１９】
2020087138.tif 000021