(57)【特許請求の範囲】
【請求項１】
第一の操作パネルを有する情報処理装置であって、
前記第一の操作パネルは、当該第一の操作パネルと種別の異なる第二の操作パネルのハードウェアの構成要素のうち、当該第一の操作パネルのハードウェアの構成要素との差分に係る構成要素を表示し、
前記差分に係る構成要素又は前記第一の操作パネルの構成要素に対する入力を示す通知情報を、プログラムに通知する通知手段を有し、
前記通知手段は、前記第一の操作パネルに表示された前記差分に係る構成要素に対する入力に応じて当該情報処理装置より通知される通知情報に含まれる当該構成要素の識別情報を、前記第二の操作パネルにおいて当該構成要素に対応するハードウェアの構成要素の識別情報に変換して、当該通知情報を、前記プログラムに通知することを特徴とする情報処理装置。
【請求項２】
前記第一の操作パネルの表示領域の表示能力は、前記第二の操作パネルの表示領域の表示能力よりも高い請求項１記載の情報処理装置。
【請求項３】
前記第一の操作パネルは、
当該第一の操作パネルの表示領域に表示される前記第二の操作パネルの表示領域に、前記プログラムより表示要求される操作画面を表示させ、
前記通知手段は、前記操作画面に対する入力に応じて当該情報処理装置より通知される通知情報を、前記プログラムに通知する請求項１又は２記載の情報処理装置。
【請求項４】
前記第二の操作パネルのハードウェア構成のうち、前記第一の操作パネルのハードウェアの構成要素との差分は、前記第二の操作パネルが有する液晶パネル及びハードキーを含むことを特徴とする請求項１乃至３いずれか一項記載の情報処理装置。
【請求項５】
第一の操作パネルを有する情報処理装置が実行する情報処理方法であって、
前記第一の操作パネルと種別の異なる第二の操作パネルのハードウェアの構成要素のうち、前記第一の操作パネルのハードウェアの構成要素との差分に係る構成要素を前記第一の操作パネルに表示する表示手順と、
前記差分に係る構成要素又は前記第一の操作パネルの構成要素に対する入力を示す通知情報を、プログラムに通知する通知手順とを有し、
前記通知手順は、前記第一の操作パネルに表示された前記差分に係る構成要素に対する入力に応じて当該情報処理装置より通知される通知情報に含まれる当該構成要素の識別情報を、前記第二の操作パネルにおいて当該構成要素に対応するハードウェアの構成要素の識別情報に変換して、当該通知情報を、前記プログラムに通知することを特徴とする情報処理方法。
【請求項６】
前記第一の操作パネルの表示領域の表示能力は、前記第二の操作パネルの表示領域の表示能力よりも高い請求項５記載の情報処理方法。
【請求項７】
前記表示手順は、前記第一の操作パネルの表示領域に表示される前記第二の操作パネルの表示領域に、前記プログラムより表示要求される操作画面を表示させ、
前記通知手順は、前記操作画面に対する入力に応じて当該情報処理装置より通知される通知情報を、前記プログラムに通知する請求項５又は６記載の情報処理方法。
【請求項８】
前記第二の操作パネルのハードウェア構成のうち、前記第一の操作パネルのハードウェアの構成要素との差分は、前記第二の操作パネルが有する液晶パネル及びハードキーを含むことを特徴とする請求項５乃至７いずれか一項記載の情報処理方法。
【請求項９】
第一の操作パネルを有する情報処理装置に、
前記第一の操作パネルと種別の異なる第二の操作パネルのハードウェアの構成要素のうち、前記第一の操作パネルのハードウェアの構成要素との差分に係る構成要素を前記第一の操作パネルに表示する表示手順と、
前記差分に係る構成要素又は前記第一の操作パネルの構成要素に対する入力を示す通知情報を、プログラムに通知する通知手順とを実行させ、
前記通知手順は、前記第一の操作パネルに表示された前記差分に係る構成要素に対する入力に応じて当該情報処理装置より通知される通知情報に含まれる当該構成要素の識別情報を、前記第二の操作パネルにおいて当該構成要素に対応するハードウェアの構成要素の識別情報に変換して、当該通知情報を、前記プログラムに通知することを特徴とする情報処理プログラム。
【請求項１０】
前記第一の操作パネルの表示領域の表示能力は、前記第二の操作パネルの表示領域の表示能力よりも高い請求項９記載の情報処理プログラム。
【請求項１１】
前記表示手順は、前記第一の操作パネルの表示領域に表示される前記第二の操作パネルの表示領域に、前記プログラムより表示要求される操作画面を表示させ、
前記通知手順は、前記操作画面に対する入力に応じて当該情報処理装置より通知される通知情報を、前記プログラムに通知する請求項９又は１０記載の情報処理プログラム。
【請求項１２】
前記第二の操作パネルのハードウェア構成のうち、前記第一の操作パネルのハードウェアの構成要素との差分は、前記第二の操作パネルが有する液晶パネル及びハードキーを含むことを特徴とする請求項９乃至１１いずれか一項記載の情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、及び情報処理プログラムに関し、特にプログラムの実行環境を有する情報処理装置、情報処理方法、及び情報処理プログラムに関する。
【背景技術】
【０００２】
近年、主として複合機又は融合機と呼ばれる画像形成装置においては、公開されたＡＰＩを備えたアプリケーションプラットフォーム（アプリケーション実行環境）が搭載されている。したがって、画像形成装置のメーカー以外のサードベンダ等によって開発されたアプリケーションも画像形成装置上で利用することが可能である。
【０００３】
斯かるアプリケーションプラットフォームが提供するＡＰＩは、画像形成装置の機種に対して独立していることが望ましい。すなわち、機種Ａ上のアプリケーションプラットフォームＡと、機種Ｂ上のアプリケーションプラットフォームＢとではＡＰＩが共通していることが望ましい。ＡＰＩが共通していることにより、ＡＰＩを利用して動作するアプリケーションは、機種の違いに対する互換性を確保することができるからである。
【０００４】
しかし、機種間におけるハードウェア構成の違いがＡＰＩの違い（ＡＰＩの非互換部分）となって現れてしまうことが避けられない場合がある。特に、操作パネルの構成の違いは、ＡＰＩに与える影響が大きい。操作パネルが備える液晶パネルの表示能力の違いに応じて表示可能な表示要素が異なる場合があるからである。
【０００５】
したがって、操作パネルの構成（主として液晶パネルの表示能力）が従来のものと大きく異なる画像形成装置上にアプリケーションプラットフォームを実装（移植）する場合、従来のアプリケーションプラットフォーム上で動作していたアプリケーションについても非互換部分に関する移植作業、又は新規にアプリケーションを作り直すための作業が必要とされる。
【０００６】
斯かるアプリケーション及びアプリケーションプラットフォームの開発作業に関して、リリース時期と開発期間との関係により、アプリケーションの開発及びテスト等が、当該アプリケーションプラットフォームの開発に先行して又は並行して行われる場合がある。
【０００７】
そのような場合、従来においては、アプリケーションプラットフォームの振る舞いを模したスタブと呼ばれるプログラムを利用してアプリケーションの開発が行われていた。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、スタブは全てのＡＰＩに関して実際のアプリケーションプラットフォームの振る舞いを表面上模しているものである。したがって、従来のアプリケーションプラットフォームと新規なアプリケーションプラットフォームとの間で互換性の有る部分についても、スタブによって実行される処理は実際のアプリケーションプラットフォームとは異なる。斯かるスタブを利用したアプリケーションの開発が行われた場合、実際のアプリケーションプラットフォーム上における当該アプリケーションの評価（テスト）の段階において予期せぬ不具合が発生することが多く、開発効率が低下するという問題があった。
【０００９】
本発明は、上記の点に鑑みてなされたものであって、プログラムの実行環境が整っていない場合におけるプログラムの開発作業を効率化することのできる情報処理装置、情報処理方法、及び情報処理プログラムの提供を目的とする。
【課題を解決するための手段】
【００１０】
そこで上記課題を解決するため、本発明は、第一の操作パネルを有する情報処理装置であって、前記第一の操作パネルは、当該第一の操作パネルと種別の異なる第二の操作パネルの構成要素のうち、当該第一の操作パネルの構成要素との差分に係る構成要素を表示し、前記差分に係る構成要素又は前記第一の操作パネルの構成要素に対する入力を示す通知情報を、プログラムに通知する通知手段を有し、前記通知手段は、前記第一の操作パネルの構成要素に対する入力に応じて当該情報処理装置より通知される通知情報に含まれる当該構成要素の識別情報を、前記第二の操作パネルにおいて当該構成要素に対応する構成要素の識別情報に変換して、当該通知情報を、前記プログラムに通知することを特徴とする。
【００１１】
このような情報処理装置では、プログラムの実行環境が整っていない場合におけるプログラムの開発作業を効率化することができる。
【発明の効果】
【００１２】
本発明によれば、プログラムの実行環境が整っていない場合におけるプログラムの開発作業を効率化することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施の形態における画像形成装置のハードウェア構成例を示す図である。
【図２】本発明の実施の形態における画像形成装置のソフトウェア構成例を示す図である。
【図３】本実施の形態における操作パネルの構成例を示す図である。
【図４】異機種への移植後のＳＤＫプラットフォームの構成例を示す図である。
【図５】移植後のＳＤＫプラットフォーム上におけるアプリＣによる表示制御の処理手順を説明するためのシーケンス図である。
【図６】移植後のＳＤＫプラットフォーム上におけるアプリＣによる入力制御の処理手順を説明するためのシーケンス図である。
【図７】アプリＣと移植前のＳＤＫプラットフォームとの関係を示す図である。
【図８】本実施の形態におけるラッパーモジュールの構成例を示す図である。
【図９】アプリＣによるラッパーモジュールを用いた表示制御処理の処理手順を説明するためのシーケンス図である。
【図１０】ラッパーモジュールによるウィンドウの表示要求処理の処理手順を説明するためのフローチャートである。
【図１１】パネル構成情報の例を示す図である。
【図１２】異機種の操作パネルとの差分が液晶パネル内に表示された操作パネルの例を示す図である。
【図１３】ラッパーモジュールを介したアプリＣによる入力制御の処理手順を説明するためのシーケンス図である。
【図１４】ＳＤＫアプリが対応する操作パネルと画像形成装置が有する操作パネルとの差分のラッパーモジュールによる動的な判定の様子を示す図である。
【図１５】画像形成装置のエミュレータを有するＰＣ上でアプリＣを動作させる場合のソフトウェア構成例を示す図である。
【発明を実施するための形態】
【００１４】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、本発明の実施の形態における画像形成装置のハードウェア構成例を示す図である。図１において、画像形成装置１０は、コントローラ１１、スキャナ１２、プリンタ１３、モデム１４、操作パネル１５、ネットワークインタフェース１６、及びＳＤカードスロット１７等のハードウェアを有する。
【００１５】
コントローラ１１は、ＣＰＵ１１１、ＲＡＭ１１２、ＲＯＭ１１３、及びＨＤＤ１１４等を有する。ＲＯＭ１１３には、各種のプログラムやプログラムによって利用されるデータ等が記録されている。ＲＡＭ１１２は、プログラムをロードするための記憶領域や、ロードされたプログラムのワーク領域等として用いられる。ＣＰＵ１１１は、ＲＡＭ１１２にロードされたプログラムを処理することにより、各種の機能を実現する。ＨＤＤ１１４には、プログラムやプログラムが利用する各種のデータ等が記録される。
【００１６】
スキャナ１２は、原稿より画像データを読み取るためのハードウェアである。プリンタは１３、印刷データを印刷用紙に印刷するためのハードウェアである。モデム１４は、電話回線に接続するためのハードウェアであり、ＦＡＸ通信による画像データの送受信を実行するために用いられる。操作パネル１５は、ユーザからの入力の受け付けを行うめのボタン等の入力手段や、液晶パネル等の表示手段（表示領域）を備えたハードウェアである。ネットワークインタフェース１６は、ＬＡＮ等のネットワーク（有線又は無線の別は問わない。）に接続するためのハードウェアである。ＳＤカードスロット１７は、ＳＤカード８０に記録されたプログラムを読み取るために利用される。すなわち、画像形成装置１０では、ＲＯＭ１１３に記録されたプログラムだけでなく、ＳＤカード８０に記録されたプログラムもＲＡＭ１１２にロードされ、実行されうる。
【００１７】
図２は、本発明の実施の形態における画像形成装置のソフトウェア構成例を示す図である。同図において、画像形成装置１０は、標準アプリ１２１、ＳＤＫアプリ１２２、ＳＤＫプラットフォーム１２３、コントロールサービス１２４、及びＯＳ１２５等を有する。
【００１８】
標準アプリ１２１は、画像形成装置１０に標準的に（出荷時に予め）実装されているアプリケーションの集合である。同図では、スキャンアプリ１２１１、印刷アプリ１２１２、コピーアプリ１２１３、及びＦＡＸアプリ１２１４が例示されている。スキャンアプリ１２１１は、スキャンジョブを実行する。印刷アプリ１２１２は印刷ジョブを実行する。コピーアプリ１２１３は、コピージョブを実行する。ＦＡＸアプリ１２１４は、ＦＡＸの送信ジョブ又は受信ジョブを実行する。
【００１９】
コントロールサービス１２４は、各種のハードウェアリソース等を制御するための機能を上位アプリケーション等に対して提供するソフトウェアモジュール群であり、例えば、ネットワーク通信に関する機能、スキャナの制御機能、プリンタの制御機能、メモリの管理機能等を有する。
【００２０】
ＳＤＫアプリ１２２は、画像形成装置１０の出荷後において、画像形成装置１０の機能拡張を図るためのプラグインとして追加的にインストールされるアプリケーションである。同図では、ＳＤＫアプリ１２２として、アプリＡ１２２１、アプリＢ１２２２、アプリＣ１２２３、及びラッパーモジュール１２２４が例示されている。各ＳＤＫアプリ１２２の本実施の形態における位置付けについては後述する。
【００２１】
ＳＤＫプラットフォーム１２３は、ＳＤＫアプリ１２２の実行環境を提供する、ＳＤＫアプリ１２２のアプリケーションプラットフォーム（プログラム実行手段）である。各ＳＤＫアプリ１２２は、ＳＤＫプラットフォーム１２３が提供するＡＰＩ（Application Program Interface）を利用して開発される。ＳＤＫプラットフォーム１２３のＡＰＩは公開されており、サードベンダ等によってもＳＤＫアプリ１２２は開発されうる。ＡＰＩとは、具体的には、関数又はメソッド等の集合である。また、広義においては、画像形成装置１０において非同期に発生するイベント等をＳＤＫアプリ１２２に通知するための仕組み等もＡＰＩに含まれる。
【００２２】
同図において、ＳＤＫプラットフォーム１２３は、スキャンサービス部１２３１、印刷サービス部１２３２、及びパネルサービス部１２３３等を含む。スキャンサービス部１２３１は、画像形成装置１０のスキャン機能に関する制御を行うためのインタフェース（ＡＰＩ）をＳＤＫアプリ１２２に提供する。印刷サービス部１２３２は、画像形成装置１０の印刷機能に関する制御を行うためのインタフェースをＳＤＫアプリ１２２に提供する。パネルサービス部１２３３は、操作パネル１５に関する制御を行うためのインタフェースをＳＤＫアプリ１２２に提供する。なお、実際は、他の多様なインタフェースもＳＤＫプラットフォーム１２３によって提供されるが、本実施の形態ではその説明は便宜上省略する。
【００２３】
ＯＳ１２５は、いわゆるＯＳ（Operating System）である。画像形成装置１０上の各ソフトウェアは、ＯＳ１２５上においてプロセス又はスレッドとして動作する。
【００２４】
図２において例示されている各ＳＤＫアプリ１２２の位置付けについて説明する。前提として、本実施の形態における画像形成装置１０は、特定の機種に属する画像形成装置であるとする。アプリＡ１２２１及びアプリＢ１２２２は、画像形成装置１０が属する機種（画像形成装置１０が属する機種用のＳＤＫプラットフォーム１２３）に対応して開発されたＳＤＫアプリ１２２の例示である。一方、アプリＣ１２２３は、画像形成装置１０とは異なる機種の画像形成装置２０（後に図示される。）のＳＤＫプラットフォームに対応して開発中のＳＤＫアプリ１２２の例示である。なお、アプリＣ１２２３は、特定の一つのＳＤＫアプリ１２２を示すものではなく、開発中のＳＤＫアプリ１２２全般を示す。
【００２５】
本実施の形態において画像形成装置１０と画像形成装置２０とのＳＤＫプラットフォームのＡＰＩの間には非互換部分が存在する。ラッパーモジュール１２２４は、当該非互換部分を吸収するためのプログラムモジュールである。すなわち、ラッパーモジュール１２２４は、当該非互換部分について、画像形成装置２０のＳＤＫプラットフォームが提供するＡＰＩと同じＡＰＩをアプリＣ１２２３に対して提供する。
【００２６】
本実施の形態において、非互換部分とは、操作パネルの制御に関する部分である。すなわち、画像形成装置１０の操作パネル１５と画像形成装置２０の操作パネルとは、その構成（種別）が異なる。
【００２７】
図３は、本実施の形態における操作パネルの構成例を示す図である。同図において、上側が画像形成装置１０の操作パネル１５を示し、下側が画像形成装置２０の操作パネル２５を示す。
【００２８】
操作パネル１５は、液晶パネル１５１、テンキー１５２、スタートキー１５３、クリアキー１５４等を備える。液晶パネル１５１は、操作パネル１５における表示領域である。液晶パネル１５１の解像度は、例えばＷＶＧＡ程度であり、各種のＧＵＩ（Graphical User Interface）を表示可能な能力を有する。また、液晶パネル１５１には、タッチパネルを備えている。したがって、液晶パネル１５１には、タッチパネルを介して操作可能な表示要素を含む各種の操作画面を表示可能である。テンキー１５２は、いわゆるテンキーである。スタートキー１５３は、ジョブの実行開始指示を受け付けるためのボタンである。クリアキー１５４は、ジョブの中断指示等を受け付けるためのボタンである。
【００２９】
一方、操作パネル２５は、液晶パネル２５１、テンキー２５２、スタートキー２５３、及びクリアキー２５４に加え、ｅ１〜ｅ１４で示される各種の構成要素（ボタン等）を備える。操作パネル２５が操作パネル１５に比較して多くのハード的な構成要素を有するのは、液晶パネル２５１の性能に起因する。すなわち、液晶パネル２５１は、タッチパネルを備えていない。また、液晶パネル２５１は、４行分の文字列等を表示可能な表示能力を有し、表示可能な表示要素は所定のボタンや文字列等に限られている。そのため、操作パネル２５は、各種の動作モード等を設定するためのユーザインタフェースとしてｅ１〜ｅ１４で示される構成要素を有するのである。なお、テンキー２５２、スタートキー２５３、及びクリアキー２５４の用途及び機能は、操作パネル１５１のテンキー１５２、スタートキー１５３、クリアキー１５４と同様である。また、本実施の形態における液晶パネル１５１及び液晶パネル２５１の性能（表示能力、タッチパネルの有無等）はあくまでも例示であり、本発明の適用範囲を限定するものではない。液晶パネル１５１は、操作パネル２５の全部、又は操作パネル２５において操作パネル１５との共通部分を除く部分をソフト的（仮想的）に再現可能な表示能力を有していればよい。
【００３０】
本実施の形態では、画像形成装置２０に対して、ＳＤＫプラットフォーム１２３の移植が行われる場合を想定する。移植後のＳＤＫプラットフォーム１２３は、図４に示されるような構成を有する。
【００３１】
図４は、異機種への移植後のＳＤＫプラットフォームの構成例を示す図である。同図に示されるように、画像形成装置２０におけるＳＤＫプラットフォーム２２３は、スキャンサービス部２２３１、印刷サービス部２２３２、及び４行パネルサービス部２２３３等を含む予定である。スキャンサービス部２２３１は、画像形成装置２０のスキャン機能に関する制御を行うためのインタフェース（ＡＰＩ）をアプリＣ１２２３に提供する。印刷サービス部２２３２は、画像形成装置２０の印刷機能に関する制御を行うためのインタフェースをアプリＣ１２２３に提供する。４行パネルサービス部２２３３は、操作パネル２５に関する制御を行うためのインタフェースをアプリＣ１２２３に提供する。
【００３２】
画像形成装置２０は、必ずしも複数の機能が実装された複合機でなくてもよい。例えば、プリンタ又はスキャナ等の単体の機能を実現する機器であってもよい。この場合、ＳＤＫプラットフォーム２２３は、スキャンサービス部２２３１又は印刷サービス部２２３２のいずれか一方を有していればよい。なお、複合機でなくてもよいのは画像形成装置１０についても同様である。
【００３３】
ＳＤＫプラットフォーム２２３の移植が完了した場合、アプリＣ１２２３がＳＤＫプラットフォーム２２３上においてどのように表示制御処理及び入力制御処理を実行するかについて説明する。
【００３４】
図５は、移植後のＳＤＫプラットフォーム上におけるアプリＣによる表示制御の処理手順を説明するためのシーケンス図である。同図のシーケンスにおけるステップは、便宜上簡略化されている。
【００３５】
ステップＳ１０１において、アプリＣ１２２３は、ウィンドウの作成を４行パネルサービス部２２３３に対して要求する。ウィンドウの作成要求においては、当該ウィンドウの属性情報（サイズ等）も指定される。４行パネルサービス部２２３３は、当該要求に応じてウィンドウを作成する（Ｓ１０２）。厳密には、ウィンドウの管理データがメモリ内に作成される。したがって、この段階では表示は行われない。４行パネルサービス部２２３３は、作成されたウィンドウの識別子（ウィンドウＩＤ）をアプリＣ１２２３に返却する（Ｓ１０３）。
【００３６】
続いて、アプリＣ１２２３は、表示要素（ボタン等の表示部品）の作成を４行パネルサービス部２２３３に対して要求する（Ｓ１０４）。表示要素の作成要求においては、当該表示要素の属性情報（サイズ等）も指定される。４行パネルサービス部２２３３は、当該要求に応じて表示要素を作成する（Ｓ１０５）。厳密には、表示要素の管理データがメモリ内に作成される。４行パネルサービス部２２３３は、作成された表示要素の識別子（要素ＩＤ）をアプリＣ１２２３に返却する（Ｓ１０６）。その他にも表示要素を表示させる場合、ステップＳ１０４〜Ｓ１０６と同様の処理が繰り返される（Ｓ１０７〜Ｓ１０９）。
【００３７】
続いて、アプリＣ１２２３は、ウィンドウＩＤ及び要素ＩＤを指定して、ウィンドウに対する表示要素の登録を４行パネルサービス部２２３３に要求する（Ｓ１１０）。４行パネルサービス部２２３３は、指定されたウィンドウＩＤに対応するウィンドウに対して、指定された要素ＩＤに対応する表示要素を登録する（関連付ける）（Ｓ１１１）。４行パネルサービス部２２３３は、表示要素の登録処理の実行結果をアプリＣ１２２３に返却する（Ｓ１１２）。
【００３８】
続いて、アプリＣ１２２３は、ウィンドウＩＤを指定して、ウィンドウの表示を４行パネルサービス部２２３３に要求する（Ｓ１１３）。４行パネルサービス部２２３３は、指定されたウィンドウＩＤに対応するウィンドウの管理データ及び当該ウィンドウに登録されている表示要素の管理データに基づいて、液晶パネル２５１にウィンドウを表示させる（Ｓ１１４）。その結果、例えば図３に示されるような画面が液晶パネル２５１に表示される。続いて、４行パネルサービス部２２３３は、ウィンドウの表示処理の処理結果をアプリＣ１２２３に返却する（Ｓ１１５）。
【００３９】
また、図６は、移植後のＳＤＫプラットフォーム上におけるアプリＣによる入力制御の処理手順を説明するためのシーケンス図である。
【００４０】
ユーザによって、操作パネル２５上のいずれかのハードキーが押下されると、ハードキーの押下イベント（ハードキーの押下の通知情報）はＳＤＫプラットフォーム２２３の４行パネルサービス部２２３３に通知される（Ｓ２０１）。イベントには、押下されたハードキーの識別子が含まれている。なお、ハードキーとは、ハード的な構成要素のうち、操作可能なものをいう。４行パネルサービス部２２３３は、液晶パネル２５１を現在占有しているアプリＣ１２２３に対して当該イベントを通知する（Ｓ２０２）。続いて、アプリＣ１２２３は、押下されたハードキーに応じた処理を実行し（Ｓ２０２）、必要に応じてＳＤＫプラットフォーム２２３を呼び出す（Ｓ２０３）。例えば、液晶パネル２５の表示内容を変更する場合は、４行パネルサービス部２２３３が呼び出される。この場合、図５の処理が実行される。または、スキャン条件を設定する場合は、スキャンサービス部２２３１が呼び出される。
【００４１】
なお、図５及び図６において、アプリＣ１２２３と４行パネルサービス部２２３３若しくはＳＤＫプラットフォーム２２３との間の矢印が、ＳＤＫプラットフォーム２２３によって提供されているインタフェースを示す。
【００４２】
ＳＤＫプラットフォーム２２３において、スキャンサービス部２２３１及び印刷サービス部２２３２は、画像形成装置１０のＳＤＫプラットフォーム１２３におけるスキャンサービス部１２３１又は印刷サービス部１２３２と共通のインタフェースを備える。一方、４行パネルサービス部２２３３のインタフェースは、操作パネル１５と操作パネル２５との構成の違いの影響を受けてパネルサービス部１２３３のインタフェースとは異なる。すなわち、ＳＤＫプラットフォーム２２３において、４行パネルサービス部２２３３のインタフェースがＳＤＫプラットフォーム１２３に対する非互換部分に相当する。したがって、ラッパーモジュール１２２４は、当該非互換部分を吸収する。すなわち、ラッパーモジュール１２２４は、パネルサービス部１２３３が実装された画像形成装置１０上（ＳＤＫプラットフォーム１２３上）において、４行パネルサービス部２２３３のインタフェースをアプリＣ１２２３に対して提供する。したがって、ＳＤＫプラットフォーム２２３に対応させて開発されているアプリＣ１２２３は、図７に示されるようにＳＤＫプラットフォーム１２３を利用する。
【００４３】
図７は、アプリＣと移植前のＳＤＫプラットフォームとの関係を示す図である。同図に示されるように、アプリＣ１２２３は、スキャンサービス部１２３１及び印刷サービス部１２３２については直接呼び出すことができる。スキャンサービス部１２３１及び印刷サービス部１２３２のインタフェースは、スキャンサービス部２２３１又は印刷サービス部２２３２のインタフェースと共通化されているからである。一方、アプリＣ１２２３は、パネルサービス部１２３３は直接呼び出すことはできない。アプリＣ１２２３は、４行パネルサービス部２２３３を呼び出すように実装されているからである。したがって、アプリＣ１２２３は、４行パネルサービス部２２３３と同一のインタフェースを提供するラッパーモジュール１２２４を呼び出す。ラッパーモジュール１２２４は、アプリＣ１２２３からの要求をパネルサービス部１２３３に対する要求に変換し、パネルサービス部１２３３を呼び出す。パネルサービス部１２３３は、ラッパーモジュール１２２４からの要求に応じて液晶パネル１５１に対する表示制御を実行する。これにより、アプリＣ１２２３が要求する表示内容が液晶パネル１５１上において実現される。
【００４４】
なお、図４において４行パネルサービス部２２３３に付された点線、及び図７においてラッパーモジュール１２２４に付された点線は、４行パネルサービス部２２３３のインタフェースを表現している。
【００４５】
続いて、ラッパーモジュール１２２４について詳しく説明する。図８は、本実施の形態におけるラッパーモジュールの構成例を示す図である。
【００４６】
同図において、ラッパーモジュール１２２４は、操作画面表示部１２２４ａ、イベント処理部１２２４ｂ、差分表示部１２２４ｃ、差分判定部１２２４ｄ、装置情報取得部１２２４ｅ、アプリ情報取得部１２２４ｆ、及びパネル構成情報記憶部１２２４ｇ等を有する。
【００４７】
操作画面表示部１２２４ａ及びイベント処理部１２２４ｂは、アプリＣ１２２３に対して４行パネルサービス部２２３３のインタフェースを提供する部分である。操作画面表示部１２２４ａは、表示制御に関するインタフェースを提供する。イベント処理部１２２４ｂは、入力に応じたイベントの通知に関するインタフェースを提供する。
【００４８】
差分表示部１２２４ｃは、操作パネル１５と操作パネル２５との差分（相違部分）の表示制御を行う。具体的には、操作パネル２５が有しており、操作パネル１５が有していないハードキーをソフト的に液晶パネル１５１に表示させる。したがって、差分表示部１２２４ｃによって操作パネル２５が有するハードキーの一部が操作パネル１５に表示される。差分判定部１２２４ｄは、装置情報取得部１２２４ｅによって取得される情報、アプリ情報取得部１２２４ｆによって取得される情報、及びパネル構成情報記憶部１２２４ｇに記録されている情報に基づいて、ラッパーモジュール１２２４が動作している装置（画像形成装置１０）が有する操作パネル（操作パネル１５）と、アプリＣ１２２３が対応している操作パネル（操作パネル２５）との差分を判定する。パネル構成情報記憶部１２２４ｇは、ＨＤＤ１１４において、操作パネルの種別ごとに操作パネルの構成情報を記憶する記憶領域（例えば、ファイル）である。装置情報取得部１２２４ｅは、ラッパーモジュール１２２４が動作する画像形成装置１０より操作パネル１５の種別を示す情報（種別情報）を動的に取得する。アプリ情報取得部１２２４ｆは、ラッパーモジュール１２２４を利用して操作画面を表示させようとするアプリＣ１２２３が対応する操作パネルの種別情報を取得する。
【００４９】
以下、画像形成装置１０上においてアプリＣ１２２３を動作させる際の処理手順について説明する。図９は、アプリＣによるラッパーモジュールを用いた表示制御処理の処理手順を説明するためのシーケンス図である。同図において、アプリＣ１２２３とラッパーモジュール１２２４とのやりとりは、図５におけるアプリＣ１２２３と４行パネルサービス部２２３３とのやりとりと一致する。
【００５０】
ステップＳ３０１において、アプリＣ１２２３は、ウィンドウの作成をラッパーモジュール１２２４の操作画面表示部１２２４ａに対して要求する。操作画面表示部１２２４ａは、パネルサービス部１２３３のインタフェースに従ってウィンドウの作成要求をパネルサービス部１２３３に入力する（Ｓ３０２）。パネルサービス部１２３３は、当該要求に応じてウィンドウを作成する（Ｓ３０３）。厳密には、ウィンドウの管理データがメモリ内に作成される。したがって、この段階では表示は行われない。パネルサービス部１２３３は、作成されたウィンドウの識別子（ウィンドウＩＤ）を操作画面表示部１２２４ａに返却する（Ｓ３０４）。続いて、操作画面表示部１２２４ａは、ウィンドウＩＤをアプリＣ１２２３に返却する（Ｓ３０５）。但し、４行パネルサービス部２２３３のインタフェースに係るウィンドウＩＤと、パネルサービス部１２３３のインタフェースに係るウィンドウＩＤとのデータ形式が異なったり、ＩＤ体系が異なったりする場合、操作画面表示部１２２４ａは、斯かる相違点を吸収するための変換を実行し、変換後のウィンドウＩＤをアプリＣ１２２３に返却する。斯かる変換は、後述される要素ＩＤについても実行されうる。
【００５１】
続いて、アプリＣ１２２３は、表示要素の作成を操作画面表示部１２２４ａに対して要求する（Ｓ３０６）。操作画面表示部１２２４ａは、当該表示要素が、パネルサービス部１２３３によって提供される表示要素と一対一に対応する場合、パネルサービス部１２３３のインタフェースに従って当該表示要素の作成要求をパネルサービス部１２３３に入力する（Ｓ３０７）。パネルサービス部１２３３は、当該要求に応じて表示要素を作成する（Ｓ３０８）。厳密には、表示要素の管理データがメモリ内に作成される。パネルサービス部１２３３は、作成された表示要素の識別子（表示要素ＩＤ）を操作画面表示部１２２４ａに返却する（Ｓ３０９）。続いて、操作画面表示部１２２４ａは、表示要素ＩＤをアプリＣ１２２３に返却する（Ｓ３１０）。
【００５２】
更に表示要素を表示させる必要が有る場合、アプリＣ１２２３は、当該表示要素の作成を操作画面表示部１２２４ａに対して要求する（Ｓ３１１）。当該表示要素が、パネルサービス部１２３３によって提供される表示要素と一対一に対応しない場合、操作画面表示部１２２４ａは、当該表示要素又は当該表示要素の擬似的に表現する表示要素を表示させるためにパネルサービス部１２３３の複数のインタフェースを呼び出す。図９では、操作画面表示部１２２４ａは、ステップＳ３１２及びＳ３１５において表示要素の作成をパネルサービス部１２３３に要求している。パネルサービス部１２３３は、それぞれの要求に応じて表示要素（表示要素の管理データ）を作成し（Ｓ３１３、Ｓ３１６）、各表示要素の要素ＩＤを操作画面表示部１２２４ａに返却している（Ｓ３１４、Ｓ３１７）。すなわち、この例では、アプリＣ１２２３から要求された一つの表示要素は、パネルサービス部１２３３においては二つの表示要素で構成可能な場合が示されている。
【００５３】
続いて、操作画面表示部１２２４ａは、パネルサービス部１２３３より返却された二つの要素ＩＤに対して一つの要素ＩＤを生成し、生成された要素ＩＤをアプリＣ１２２３に返却する（Ｓ３１８）。なお、ラッパーモジュール１２２４は、パネルサービス部１２３３より返却された二つの要素ＩＤと、当該二つの要素ＩＤに対して生成した一つの要素ＩＤとを関連付けてＲＡＭ１１２に記録しておく。
【００５４】
続いて、アプリＣ１２２３は、操作画面表示部１２２４ａより返却されたウィンドウＩＤ及び要素ＩＤを指定して、ウィンドウに対する表示要素の登録を操作画面表示部１２２４ａに要求する（Ｓ１１０）。操作画面表示部１２２４ａは、当該ウィンドウＩＤ及び要素ＩＤを必要に応じて変換し、変換後のウィンドウＩＤ及び要素ＩＤを指定して、ウィンドウに対する表示要素の登録をパネルサービス部１２３３に要求する（Ｓ３２０）。本実施の形態では、少なくとも、ステップＳ３１８においてアプリＣ１２２３に返却された要素ＩＤについて、当該要素ＩＤに関連付けられてＲＡＭ１１２に記録されている二つの要素ＩＤへの変換が行われる。
【００５５】
続いて、パネルサービス部１２３３は、指定されたウィンドウＩＤに対応するウィンドウに対して、指定された要素ＩＤに対応する表示要素を登録する（関連付ける）（Ｓ３２１）。パネルサービス部１２３３は、表示要素の登録処理の実行結果を操作画面表示部１２２４ａに返却する（Ｓ３２２）。操作画面表示部１２２４ａは、当該実行結果をアプリＣ１２２３に返却する（Ｓ３２３）。なお、実行結果を示すデータについて、パネルサービス部１２３３のインタフェースと４行パネルサービス部２２３３のインタフェースの間でデータ型等が異なる場合、操作画面表示部１２２４ａは、斯かる相違を吸収するための変換を行う。この点については、後述されるステップＳ３２８においても同様である。
【００５６】
続いて、アプリＣ１２２３は、ウィンドウＩＤを指定して、ウィンドウの表示を操作画面表示部１２２４ａに要求する（Ｓ３２４）。操作画面表示部１２２４ａは、必要に応じてウィンドウＩＤの変換を行い、変換後のウィンドウＩＤを指定してウィンドウの表示をパネルサービス部１２３３に要求する（Ｓ３２４）。続いて、アプリＣ１２２３は、ウィンドウＩＤを指定して、ウィンドウの表示を４行パネルサービス部２２３３に要求する（Ｓ３２５）。パネルサービス部１２３３は、指定されたウィンドウＩＤに対応するウィンドウの管理データ及び当該ウィンドウに登録されている表示要素の管理データに基づいて、液晶パネル１５１にウィンドウを表示させる（Ｓ３２６）。続いて、パネルサービス部１２３３は、ウィンドウの表示処理の処理結果を操作画面表示部１２２４ａに返却する（Ｓ３２７）。操作画面表示部１２２４ａは、ウィンドウの表示処理の処理結果をアプリＣ１２２３に返却する（Ｓ３２８）。
【００５７】
続いて、ステップＳ３２５の詳細について説明する。図１０は、ラッパーモジュールによるウィンドウの表示要求処理の処理手順を説明するためのフローチャートである。
【００５８】
アプリＣ１２２３からのウィンドウの表示要求に応じ、操作画面表示部１２２４ａは、操作パネル１５とアプリＣ１２２３が対応している操作パネル（操作パネル２５）との差分は、液晶パネル１５１に表示されているか否かを判定する（Ｓ４０１）。当該判定は、液晶パネル１５１の表示状態を確認することによって行われてもよいし、差分が表示中であるか否かを管理するためのフラグ変数等を参照して行われてもよい。
【００５９】
差分は表示中ではない場合（Ｓ４０１でＮｏ）、装置情報取得部１２２４ｅは、ＳＤＫプラットフォーム１２３を介して画像形成装置１０が備えている操作パネル１５の種別情報（以下、「装置側種別情報」という。）を取得する（Ｓ４０２）。例えば、装置側種別情報として「ＷＶＧＡ」といった識別子が取得される。なお、装置側種別情報は、画像形成装置１０のＲＯＭ１１３又はＨＤＤ１１４に記録されている。
【００６０】
続いて、アプリ情報取得部１２２４ｆは、ウィンドウの表示要求元のアプリＣ１２２３が対応している操作パネル２５の種別情報（以下、「アプリ側種別情報」という。）を取得する（Ｓ４０３）。例えば、アプリ側種別情報として「４ＬＩＮＥＳ」といった識別子が取得される。なお、アプリ側種別情報は、アプリＣ１２２３に関連付けられてＳＤカード８０又はＨＤＤ１１４に記録されているアプリＣ１２２３の属性情報ファイルより取得される。又は、アプリＣ１２２３に対して動的に問い合わせることにより取得されてもよい。
【００６１】
続いて、差分判定部１２２４ｄは、装置側種別情報、アプリ側種別情報、及びパネル構成情報記憶部１２２４ｇに記録されているパネル構成情報に基づいて、操作パネル１５と操作パネル２５との差分を判定する（Ｓ４０４）。
【００６２】
図１１は、パネル構成情報の例を示す図である。同図に示されるように、パネル構成情報には、操作パネルの種別（パネル種別）ごとに、構成情報が記録されている。構成情報としては、構成要素ごとにその識別子が記録されている。例えば、パネル種別が「ＷＶＧＡ」である操作パネルは、ＷＶＧＡ、ＳＴＡＲＴ、ＣＬＥＡＲ、１、２、３等のハードキーを有することが示されている。ＷＶＧＡは液晶パネル、ＳＴＡＲＴはスタートキー、ＣＬＥＡＲはクリアキー、１、２、３等は、テンキーの各ボタンを示す。
【００６３】
なお、同図では、各構成要素の識別子のみが記録されている例が示されているが、構成要素ごとに、操作パネル上における位置情報（座標情報）、色、形状、及びサイズ等の属性情報についても、例えば、各構成要素の識別子に続いて記録されている。
【００６４】
また、本実施の形態では、液晶パネルの種別がパネル種別の識別子として利用されているが、これは便宜的なものである。液晶パネルの種別と操作パネルの構成とが一対一に対応しない場合は、液晶パネルに依存しないパネル種別の識別子を別途設ければよい。例えば、画像形成装置の機種名をパネル種別の識別子としてもよい。基本的に機種と操作パネルとの構成との間には対応関係が有るからである。
【００６５】
差分判定部１２２４ｄは、装置側種別情報の「ＷＶＧＡ」とアプリ側種別情報の「４ＬＩＮＥＳ」とをパネル構成情報のパネル種別に当てはめることにより、それぞれに対応する構成情報を取得する。差分判定部１２２４ｄは、二つの構成情報を比較し、アプリ側種別情報に係る構成情報に含まれていて、装置側種別情報に係る構成情報に含まれていない構成要素を差分として抽出する。構成要素の一致又は不一致は、構成要素の識別子に基づいて判定される。したがって、構成要素の属性情報は考慮されない。但し、構成要素の属性情報についても、当該一致又は不一致の判定材料としてもよい。
【００６６】
本実施の形態では、図１１の「４ＬｉＮＥＳ」に係る構成情報の中で、破線で囲まれた部分が差分として抽出される。当該差分は、図３において、ｅ１〜ｅ１４で示される構成要素、及び液晶パネル２５１である。但し、図１１においては、便宜上、ｅ１〜ｅ１４に対応する全ての構成要素の識別子は記載されていない。
【００６７】
続いて、差分表示部１２２４ｃは、差分に含まれている構成要素の表示要求をパネルサービス部１２３３に要求する（Ｓ４０５）。ステップＳ４０５では、差分に含まれている構成要素の数に応じて、パネルサービス部１２３３に対して複数回の表示要求が入力されうる。また、構成要素の種別等に応じて複数種類の表示要求（関数又はメソッドの呼び出し）がパネルサービス部１２３３に対して行われうる。差分に含まれる構成要素と完全に一致する構成要素を表示させるためのインタフェースがパネルサービス部１２３３に無い場合、差分表示部１２２４ｃは、当該構成要素に類似した構成要素を表示可能なインタフェースを呼び出す。
【００６８】
続いて、操作画面表示部１２２４ａは、アプリＣ１２２３より要求されたウィンドウの表示要求をパネルサービス部１２３３に要求する（Ｓ４０６）。当該ウィンドウは、差分としてソフト的（仮想的）に再現された液晶パネル２５１の中に表示される。
【００６９】
一方、既に差分は表示されている場合（Ｓ４０１でＹｅｓ）、ステップＳ４０２〜Ｓ４０５は実行されることなくステップＳ４０６が実行される。
【００７０】
図１０の処理の結果、操作パネル１５は、図１２に示されるような状態となる。図１２は、異機種の操作パネルとの差分が液晶パネル内に表示された操作パネルの例を示す図である。
【００７１】
図１２中、図３と同一部分には同一符号を付し、その説明は省略する。同図に示されるように、操作パネル１５の液晶パネル１５１内には、操作パネル２５との差分であるハードウェア（液晶パネル２５１及びハードキー等）がソフト的に再現されている。ソフト的に再現された液晶パネル２５１内には、アプリＣ１２２３より要求された表示要素が表示されている。
【００７２】
液晶パネル１５１内に差分のみが表示されることにより、操作パネル１５上において実際の操作パネル２５に近い操作感をユーザに提供することができる。また、各構成要素をより大きく表示させることができる。すなわち、仮に、操作パネル２５の全部を液晶パネル１５内に表示させようとした場合、各構成要素のサイズは小さくせざるを得ない。
【００７３】
なお、差分は、パネル構成情報に基づいて判定されるため、テンキー２５２やスタートキー２５３等も液晶パネル１５１に表示させたい場合は、ＷＶＧＡに係る構成情報より、テンキー１５２やスタートキー１５３に対応する識別子等を削除すればよい。
【００７４】
続いて、図１２に示されるような状態の操作パネル１５において操作指示が入力された際の処理手順について説明する。
【００７５】
図１３は、ラッパーモジュールを介したアプリＣによる入力制御の処理手順を説明するためのシーケンス図である。
【００７６】
ユーザによって、操作パネル１５上のいずれかのハードキーが押下されると、ハードキーの押下イベント（ハードキーの押下の通知情報）はＳＤＫプラットフォーム１２３のパネルサービス部１２３３に通知される（Ｓ５０１）。パネルサービス部１２３３は、現在液晶パネル１５１を占有しているラッパーモジュール１２２４のイベント処理部１２２４ｂに対して当該イベントを通知する（Ｓ５０２）。イベント処理部１２２４ｂは、最後のウィンドウの表示要求元であるアプリＣ１２２３にイベントを通知する（Ｓ５０３）。すなわち、ラッパーモジュール１２２４の操作画面表示部１２２４ａは、ウィンドウの表示要求を受けた際に、表示要求元の識別子をＲＡＭ１１２に記録しておく。なお、操作パネル１５と操作パネル２５とにおいて共通するハードキーであっても、パネルサービス部１２３３と４行パネルサービス部２２３３とにおいてイベントのデータ形式や割り当てている識別子等が異なる場合がある。斯かる場合、ラッパーモジュール１２２４は、当該相違点を吸収するための変換を行い、変換後のイベントをアプリＣ１２２３に通知する。
【００７７】
続いて、アプリＣ１２２３は、押下されたハードキーに応じた処理を実行し（Ｓ５０４）、必要に応じてラッパーモジュール１２２４の操作画面表示部１２２４ａ又はＳＤＫプラットフォーム１２３を呼び出す。例えば、ソフト的に再現されている液晶パネル２５１の表示内容を変更する場合は、ラッパーモジュール１２２４の操作画面表示部１２２４ａが呼び出される（Ｓ５０５）。当該呼び出しに応じ、図９において説明した処理が実行される。また、スキャンサービス部１２３１又は印刷サービス部１２３２等、ＳＤＫプラットフォーム２２３とインタフェースが共通する部分（互換性を有する部分）を呼び出す必要が有る場合、アプリＣ１２２３は、ＳＤＫプラットフォーム１２３を直接呼び出す。
【００７８】
また、ユーザによって、液晶パネル１５１上にソフト的（仮想的）に再現された操作パネル２５１のいずれかのハードキー（以下、「仮想ハードキー」という。）が押下されると、仮想ハードキーの押下イベントはＳＤＫプラットフォーム１２３のパネルサービス部１２３３に通知される（Ｓ２０１）。パネルサービス部１２３３は、現在液晶パネル１５１を占有しているイベント処理部１２２４ｂに対して当該イベントを通知する（Ｓ５１２）。ここで、イベント処理部１２２４ｂには、当該イベントは表示要素に対する押下イベントとして通知される。仮想ハードキーは、パネルサービス部１２３３にとっては液晶パネル１５１上の表示要素だからである。したがって、イベント処理部１２２４ｂは、イベントの内容を表示要素に関するものから、操作パネル２５１におけるハードキーに関するものに変換する。当該変換のための対応情報（表示要素とハードキーとの対応情報）は、差分表示部１２２４ｃが差分の表示要求をパネルサービス部１２３３に行った際にＲＡＭ１１２に記録される。すなわち、差分表示部１２２４ｃは、ハードキーに対する構成要素の表示要求に対してパネルサービス部１２３３より返却される要素ＩＤと、ハードキーの識別子（パネル構成情報に記録されている識別子）とを対応情報をＲＡＭ１１２に記録しておく。イベント処理部１２２４ｂは、当該対応情報に基づいて、イベントの内容を変換する。
【００７９】
続いて、イベント処理部１２２４ｂは、最後のウィンドウの表示要求元であるアプリＣ１２２３に変換後のイベントを通知する（Ｓ５１３）。続いて、アプリＣ１２２３は、押下された仮想ハードキーに応じた処理を実行し（Ｓ５１４）、必要に応じてラッパーモジュール１２２４の操作画面表示部１２２４ａ又はＳＤＫプラットフォーム１２３を呼び出す（Ｓ５１５）。
【００８０】
なお、本実施の形態の内容は、本実施の形態において説明した操作パネルと異なる操作パネルを備えた画像形成装置とアプリＣ１２２３との間においても適用可能である。装置側種別情報及びアプリ側種別情報は、ラッパーモジュール１２２４によって動的に取得され、ラッパーモジュール１２２４が有するパネル構成情報に基づいて動的に判定されるからである。この点について図１４を用いて説明する。
【００８１】
図１４は、ＳＤＫアプリが対応する操作パネルと画像形成装置が有する操作パネルとの差分のラッパーモジュールによる動的な判定の様子を示す図である。
【００８２】
同図では、機種Ａの画像形成装置４０ａ、機種Ｂの画像形成装置４０ｂ、及び機種Ｃの画像形成装置４０ｃにおいてアプリＣ１２２３が実装されている例が示されている。機種毎に操作パネルの構成は異なるものとする。なお、ＳＤＫプラットフォーム１２３等は便宜上省略されている。
【００８３】
画像形成装置４０ａにおいてアプリＣ１２２３が動作する場合、ラッパーモジュール１２２４の差分判定部１２２４ｄは、アプリＣ１２２３より取得されるアプリ側種別情報１２２３ｆと、画像形成装置４０ａより取得され装置側種別情報４１ａと、ラッパーモジュール１２２４のパネル構成情報記憶部１２２４ｇに記録されているパネル構成情報とに基づいて、アプリＣ１２２３が対応する操作パネル２５と画像形成装置４０ａが備える操作パネルとの差分を判定する。
【００８４】
また、画像形成装置４０ｂにおいてアプリＣ１２２３が動作する場合、ラッパーモジュール１２２４の差分判定部１２２４ｄは、アプリＣ１２２３より取得されるアプリ側種別情報１２２３ｆと、画像形成装置４０ｂより取得され装置側種別情報４１ｂと、ラッパーモジュール１２２４のパネル構成情報記憶部１２２４ｇに記録されているパネル構成情報とに基づいて、アプリＣ１２２３が対応する操作パネル２５と画像形成装置４０ｂが備える操作パネルとの差分を判定する。
【００８５】
更に、画像形成装置４０ｃにおいてアプリＣ１２２３が動作する場合、ラッパーモジュール１２２４の差分判定部１２２４ｄは、アプリＣ１２２３より取得されるアプリ側種別情報１２２３ｆと、画像形成装置４０ｃより取得され装置側種別情報４１ｃと、ラッパーモジュール１２２４のパネル構成情報記憶部１２２４ｇに記録されているパネル構成情報とに基づいて、アプリＣ１２２３が対応する操作パネル２５と画像形成装置４０ｃが備える操作パネルとの差分を判定する。
【００８６】
したがって、アプリＣ１２２３がどのような機種の画像形成装置上で動作する場合であっても、画像形成装置２０の操作パネル２５に近い操作感が各画像形成装置上で再現される。
【００８７】
また、画像形成装置２０の操作パネル２５を再現可能な装置は、操作パネルを備えた画像形成装置に限定されない。例えば、図１５に示されるようなソフトウェア構成を有するＰＣ（Personal Computer）等のコンピュータにおいても画像形成装置２０の操作パネルの再現は可能である。
【００８８】
図１５は、画像形成装置のエミュレータを有するＰＣ上でアプリＣを動作させる場合のソフトウェア構成例を示す図である。
【００８９】
図１５中、図２と同一部分には同一符号を付し、その説明は省略する。同図においてＰＣ５０は、画像形成装置１０のエミュレータ１２６を備える。したがって、ＰＣ５０には、エミュレータ１２６上において、画像形成装置１０に実装されているソフトウェアを実行可能である。
【００９０】
このようなソフトウェア構成を有するＰＣ５０は、上述した画像形成装置１０と同様の処理手順を実行することができる。したがって、アプリＣ１２２３を実行する際に、ＰＣ５０に接続された表示装置に画像形成装置２０の操作パネルを再現することができる。なお、画像形成装置１０の操作パネル１５の表示機能が予めエミュレータ１２６に実装されている場合がある。この場合、エミュレータ１２６が表示する仮想的な操作パネルが、ＰＣ５０が備える操作パネルに相当する。エミュレータ１２６が表示する仮想的な操作パネルについても、その構成情報をパネル構成情報記憶部１２２４ｇに記録（登録）しておけばよい。ラッパーモジュール１２２４の差分判定部１２２４ｄは、エミュレータ１２６より取得される装置側種別情報をパネル構成情報に当てはめることにより、エミュレータ１２６が表示可能な操作パネルの構成を判定すればよい。そうすることにより、差分判定部１２２４ｄは、エミュレータ１２６が表示可能な操作パネルと、アプリＣ１２２３が対応する操作パネル２５との差分を動的に判定することができる。
【００９１】
すなわち、本実施の形態を実現するための装置は、画像形成装置やコンピュータ等を含む情報処理装置であればよい。
【００９２】
なお、ラッパーモジュール１２２４の実装形態としては、独立して一つのソフトウェアコンポーネントとして実装されてもよいし、ＳＤＫプラットフォーム１２３の一部として実装されてもよいし、ラッパーモジュール１２２４が適用されるアプリＣ１２２３の一部として実装されてもよい。独立して一つのソフトウェアコンポーネントとして実装される場合、又はＳＤＫプラットフォーム１２３の一部として実装される場合、複数のアプリＣ１２２３によって一つのラッパーモジュール１２２４を共用できるという利点がある。アプリＣ１２２３の一部として実装される場合、ラッパーモジュール１２２４の存在をユーザが特に意識する必要はないという利点がある。例えば、アプリＣ１２２３をインストールすれば、ラッパーモジュール１２２４を利用可能な状態が実現される。
【００９３】
上述したように、本実施の形態によれば、実際のＳＤＫプラットフォーム１２３上においてアプリＣ１２２３の動作確認及び評価を行うことができる。ＳＤＫプラットフォーム１２３は、移植後のＳＤＫプラットフォーム２２３と完全に同一なものではないが、スタブに比べればその類似度は著しく高い。したがって、アプリＣ１２２３をＳＤＫプラットフォーム２２３上で動作させた場合に予期せぬ不具合が発生する可能性を著しく低減させることができる。よって、開発効率を向上させることができる。
【００９４】
また、非互換部分については、ラッパーモジュール１２２４によって適切に吸収される。ラッパーモジュール１２２４は、単に操作パネル２５の画像を操作パネル１５の液晶パネル１５１上に表示させるのではなく、操作パネル２５と操作パネル１５との差分の画像を液晶パネル１５１に表示させる。したがって、操作パネル２５に近い操作感をユーザに与えることができる。斯かる点においても、アプリＣ１２２３を画像形成装置２０上で動作させた場合における予期せぬ不具合の低減を期待することができる。
【００９５】
また、図１５に示されるようにエミュレータ１２６を利用する場合においても、ラッパーモジュール１２２４の存在により、既存のエミュレータ１２６（すなわち、画像形成装置１０のエミュレータ）をそのまま利用することができる。したがって、画像形成装置２０のエミュレータを改めて開発する必要を無くすことができる。
【００９６】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００９７】
１０、２０    画像形成装置
１１          コントローラ
１２          スキャナ
１３          プリンタ
１４          モデム
１５、２５    操作パネル
１６          ネットワークインタフェース
１７          ＳＤカードスロット
８０          ＳＤカード
１１１        ＣＰＵ
１１２        ＲＡＭ
１１３        ＲＯＭ
１１４        ＨＤＤ
１２１        標準アプリ
１２２        ＳＤＫアプリ
１２３        ＳＤＫプラットフォーム
１２４        コントロールサービス
１２５        ＯＳ
１２６        エミュレータ
１５１、２５１    液晶パネル
１５２、２５２  テンキー
１５３、２５３    スタートキー
１５４、２５４    クリアキー
１２１１      スキャンアプリ
１２１２      印刷アプリ
１２１３      コピーアプリ
１２１４      ＦＡＸアプリ
１２２１      アプリＡ
１２２２      アプリＢ
１２２３      アプリＣ
１２２４      ラッパーモジュール
１２２４ａ    操作画面表示部
１２２４ｂ    イベント処理部
１２２４ｃ    差分表示部
１２２４ｄ    差分判定部
１２２４ｅ    装置情報取得部
１２２４ｆ    アプリ情報取得部
１２２４ｇ    パネル構成情報記憶部
１２３１      スキャンサービス部
１２３２      印刷サービス部
１２３３      パネルサービス部
２２３１      スキャンサービス部
２２３２      印刷サービス部
２２３３      ４行パネルサービス部
【先行技術文献】
【特許文献】
【００９８】
【特許文献１】特開２００５−３２１９５４号公報
【図１】
0005637280.tif 000002
【図２】
0005637280.tif 000003
【図３】
0005637280.tif 000004
【図４】
0005637280.tif 000005
【図５】
0005637280.tif 000006
【図６】
0005637280.tif 000007
【図７】
0005637280.tif 000008
【図８】
0005637280.tif 000009
【図９】
0005637280.tif 000010
【図１０】
0005637280.tif 000011
【図１１】
0005637280.tif 000012
【図１２】
0005637280.tif 000013
【図１３】
0005637280.tif 000014
【図１４】
0005637280.tif 000015
【図１５】
0005637280.tif 000016