(57)【要約】【課題】エミュレータの開発において、上位モジュールである実モジュールに修正を加えずに下位モジュールから上位モジュールへ依存した処理を実現する。【解決手段】情報処理装置は、機器上で動作する所定の処理を実行するためのプログラムの動作を再現する情報処理装置であって、前記機器が動作させる前記プログラムのモジュールと同等のモジュールである上位モジュールと、当該情報処理装置上で前記プログラムの動作を再現させるための下位モジュールとを備え、前記モジュールを識別する識別情報と前記下位モジュールから前記上位モジュールへのアクセスを可能にするアクセス情報とを対応付けて管理するアクセス情報管理手段と、前記下位モジュールからのアクセス対象の前記上位モジュールの前記識別情報に対応する前記アクセス情報に基づき、前記下位モジュールから前記上位モジュールにアクセスするアクセス手段とを有する。【選択図】図６
2014179002.tif 000002
【特許請求の範囲】
【請求項１】
機器上で動作する所定の処理を実行するためのプログラムの動作を再現する情報処理装置であって、
前記機器が動作させる前記プログラムのモジュールと同等のモジュールである上位モジュールと、当該情報処理装置上で前記プログラムの動作を再現させるための下位モジュールとを備え、
前記モジュールを識別する識別情報と前記下位モジュールから前記上位モジュールへのアクセスを可能にするアクセス情報とを対応付けて管理するアクセス情報管理手段と、
前記下位モジュールからのアクセス対象の前記上位モジュールの前記識別情報に対応する前記アクセス情報に基づき、前記下位モジュールから前記上位モジュールにアクセスするアクセス手段とを有する情報処理装置。
【請求項２】
前記上位モジュールが起動された場合、該上位モジュールの起動に用いられた前記アクセス情報を、該上位モジュールの前記識別情報とともに、前記アクセス情報管理手段に通知するアクセス情報通知手段を有し、
前記アクセス情報管理手段は、前記アクセス情報通知手段により通知された前記識別情報と前記アクセス情報とを対応付けて管理する請求項１記載の情報処理装置。
【請求項３】
前記下位モジュールに対して前記上位モジュールへのアクセスを要求する操作が行われた場合、前記上位モジュールの前記識別情報に基づき、前記アクセス情報管理手段から前記アクセス情報を取得するアクセス情報取得手段を有する請求項１又は２記載の情報処理装置。
【請求項４】
前記アクセス情報は、クラスローダである請求項１乃至３のいずれか一項に記載の情報処理装置。
【請求項５】
前記クラスローダは、階層構造を有し、
上位のクラスローダにより起動されたモジュールから、該上位のクラスローダを用いることによる下位のクラスローダにより起動されたモジュールへのアクセスは不可である請求項４記載の情報処理装置。
【請求項６】
前記下位モジュールは、前記機器において前記機器が動作させる前記プログラムのモジュールがアクセスする他のモジュールの代用であるスタブモジュールである請求項１乃至５のいずれか一項に記載の情報処理装置。
【請求項７】
前記同等のモジュールは、前記機器が動作させる前記プログラムのモジュールと同一の機能を有するモジュールである請求項１乃至６のいずれか一項に記載の情報処理装置。
【請求項８】
所定の処理を実行するためのプログラムを動作させる機器と、該プログラムの動作を再現する情報処理装置とを有する情報処理システムであって、
前記情報処理装置は、
前記機器が動作させる前記プログラムのモジュールと同等のモジュールである上位モジュールと、当該情報処理装置上で前記プログラムの動作を再現させるための下位モジュールとを備え、
前記モジュールを識別する識別情報と前記下位モジュールから前記上位モジュールへのアクセスを可能にするアクセス情報とを対応付けて管理するアクセス情報管理手段と、
前記下位モジュールからのアクセス対象の前記上位モジュールの前記識別情報に対応する前記アクセス情報に基づき、前記下位モジュールから前記上位モジュールにアクセスするアクセス手段とを有する情報処理システム。
【請求項９】
機器上で動作する所定の処理を実行するためのプログラムの動作を再現し、前記機器が動作させる前記プログラムのモジュールと同等のモジュールである上位モジュールと、当該情報処理装置上で前記プログラムの動作を再現させるための下位モジュールとを備える情報処理装置が実行する情報処理方法であって、
前記モジュールを識別する識別情報と前記下位モジュールから前記上位モジュールへのアクセスを可能にするアクセス情報とを対応付けて管理するアクセス情報管理ステップと、
前記下位モジュールからのアクセス対象の前記上位モジュールの前記識別情報に対応する前記アクセス情報に基づき、前記下位モジュールから前記上位モジュールにアクセスするアクセスステップとを有する情報処理方法。
【請求項１０】
機器上で動作する所定の処理を実行するためのプログラムの動作を再現し、前記機器が動作させる前記プログラムのモジュールと同等のモジュールである上位モジュールと、当該情報処理装置上で前記プログラムの動作を再現させるための下位モジュールとを備える情報処理装置において実行される情報処理プログラムであって、
前記情報処理装置を、
前記モジュールを識別する識別情報と前記下位モジュールから前記上位モジュールへのアクセスを可能にするアクセス情報とを対応付けて管理するアクセス情報管理手段、
前記下位モジュールからのアクセス対象の前記上位モジュールの前記識別情報に対応する前記アクセス情報に基づき、前記下位モジュールから前記上位モジュールにアクセスするアクセス手段として機能させる情報処理プログラム。
【請求項１１】
前記情報処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理システム、情報処理方法、情報処理プログラム及び記録媒体に関する。
【背景技術】
【０００２】
開発環境において、電子機器に搭載されるアプリケーションの動作検証を行うため、実機（電子機器）を使用せず、例えばＰＣ（Personal  Computer）上で動作するエミュレータによる動作検証が行われている。なお、電子機器は、例えばＭＦＰ（Multifunction  Peripheral）等の画像形成装置やサーバ等の情報処理装置である。このエミュレータは、アプリケーションの開発範囲を明確化するために、上位モジュールとなる実モジュールに手を加えずに、下位モジュールをスタブ化することで作成される。
【０００３】
また、実機では上位モジュールから下位モジュールを参照する依存関係のみが存在しているが、エミュレータの設計をより単純明瞭化するため、エミュレーションを行う場合にのみ下位モジュールであるスタブモジュールから上位モジュールである実モジュールへの依存関係を新たに設定したい場合がある。
【０００４】
しかしながら、そのような場合、上位モジュールである実モジュールに修正を加えずに下位モジュールから上位モジュールへの依存関係を設定すると、下位モジュールから上位モジュールへの参照ができない場合が生じ得る問題があり、エミュレータの設計を複雑化させてしまっている。
【０００５】
そこで、特許文献１には、開発したプログラムの挙動を画像形成装置により近い挙動を実現することにより、複合機の開発作業を効率化することを目的として、上位モジュールは実際の複合機と同等の実モジュールを用い、下位モジュールはＰＣ上で動作するためにエミュレートしたスタブモジュールを用いた構成にすることで、複合機のエミュレータを実現する技術が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に記載の技術では、下位モジュールであるスタブモジュールから上位モジュールである実モジュールへの依存関係を新たに設定する場合、下位モジュールから上位モジュールへの参照ができない場合が生じ得るという問題を解消できない。
【０００７】
そこで、本発明は上記の点に鑑みてなされたものであって、エミュレータの開発において、上位モジュールである実モジュールに修正を加えずに下位モジュールから上位モジュールへ依存した処理を実現することを目的とする。
【課題を解決するための手段】
【０００８】
そこで上記課題を解決するため、情報処理装置は、機器上で動作する所定の処理を実行するためのプログラムの動作を再現する情報処理装置であって、前記機器が動作させる前記プログラムのモジュールと同等のモジュールである上位モジュールと、当該情報処理装置上で前記プログラムの動作を再現させるための下位モジュールとを備え、前記モジュールを識別する識別情報と前記下位モジュールから前記上位モジュールへのアクセスを可能にするアクセス情報とを対応付けて管理するアクセス情報管理手段と、前記下位モジュールからのアクセス対象の前記上位モジュールの前記識別情報に対応する前記アクセス情報に基づき、前記下位モジュールから前記上位モジュールにアクセスするアクセス手段とを有する。
【発明の効果】
【０００９】
本発明の実施形態によれば、エミュレータの開発において、上位モジュールである実モジュールに修正を加えずに下位モジュールから上位モジュールへ依存した処理を実現できる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施形態におけるエミュレーションシステムの構成の一例を示す図である。
【図２】クラスローダの構造の一例を示す図である。
【図３】従来のモジュール間の参照可否の状況を説明するための一例を示す図である。
【図４】本発明の実施形態におけるモジュール間の参照処理の動作概要の一例を示す図である。
【図５】本発明の実施形態における情報処理装置のハードウェア構成の一例を示す図である。
【図６】本発明の実施形態における情報処理装置の機能構成の一例を示す図である。
【図７】本発明の実施形態におけるクラスローダ情報管理テーブルに記憶される情報の一例を示す図である。
【図８】本発明の実施形態における情報処理装置のエミュレータの起動後の動作手順の一例を示すシーケンス図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態（以下、「実施形態」という。）を図面に基づいて説明する。
【００１２】
［システム構成］
図１は、本発明の実施形態におけるエミュレーションシステム１のシステム構成の一例を示す図である。エミュレーションシステム１は、情報処理装置１０と、画像形成装置２０とを有する。情報処理装置１０と画像形成装置２０とは、ＬＡＮ（Local  Area  Network）又はインターネット等のネットワークＮ１を介して接続されている。
【００１３】
画像形成装置２０は、印刷、スキャン、コピー及びファクス（ＦＡＸ）通信等のうちの一以上の機能を一台の筐体によって実現するプリンタや複合機ＭＦＰ（Multifunction  Peripheral）等の電子機器である。画像形成装置２０は、汎用ＯＳ（Operating  System）２１及びアプリケーション２２等を有し、アプリケーション２２には上位モジュール２２及び下位モジュール２３が含まれる。汎用ＯＳ２１は、画像形成装置２０のアプリケーション２２とハードウェアとを仲介し、コンピュータデバイスのリソースの共有の管理、各リソースにアクセスするためのインタフェースの提供、他のアプリケーションに対するサービスの提供を行う汎用ＯＳである。アプリケーション２２は、汎用ＯＳ２１上で動作するプログラムであり、例えばＪａｖａ（登録商標）アプリケーションである。アプリケーション２２に含まれる上位モジュール２３は、下位モジュール２４を利用するモジュールである。なお、アプリケーション２２、上位モジュール２３及び下位モジュール２４は、複数存在してもよい。
【００１４】
情報処理装置１０は、例えば画像形成装置２０の開発環境において用いられる、画像形成装置２０に搭載されたモジュールを仮想的に実行するコンピュータである。情報処理装置１０は、例えばＰＣ（Personal  Computer）等である。情報処理装置１０は、ＯＳ１１、アプリケーション１２及びエミュレータ１６等を有し、アプリケーション１２には上位モジュール（実モジュール）１３、下位モジュール（スタブモジュール）１４及び管理モジュール１５が含まれる。ＯＳ１１は、情報処理装置に搭載されたＯＳである。アプリケーション１２は、ＯＳ１１上で動作するプログラムであり、例えばＪａｖａアプリケーションである。アプリケーション１２に含まれる上位モジュール（実モジュール）１３は、画像形成装置２０が備える上位モジュール２３と同等の実モジュールである。なお、上位モジュール（実モジュール）１３は、例えば画像形成装置２０が備える上位モジュール２３がコピーされたものであり、上位モジュール２３の機能（インタフェースを含む）と同一の機能を有するモジュールである。下位モジュール（スタブモジュール）１４は、実モジュールである上位モジュール（実モジュール）１３により利用される（呼び出される）画像形成装置２０が備える下位モジュール２４の代用とされる仮のモジュールである。管理モジュール１５は、モジュールをロードするクラスローダの情報を管理する。また、クラスローダは、モジュール間の参照（アクセス）を可能にするアクセス情報である。エミュレータ１６は、画像形成装置２０が備えるアプリケーション２２が実行される環境を、情報処理装置１０で仮想的に構築するプログラムである。情報処理装置１０は、ネットワークＮ１を介して、取得（コピー）した画像形成装置２０が備える上位モジュール２３に基づき、上位モジュール（実モジュール）１３を生成する。但し、上位モジュール２３が記録された外部記録媒体を用いて、情報処理装置１０に上位モジュールを移管させてもよい。この場合、情報処理装置１０と画像形成装置２０とは、ネットワークＮ１を介して接続していなくてもよい。
【００１５】
エミュレーションシステム１は、画像形成装置２０の開発環境で用いられ、画像形成装置２０が有するモジュールを、情報処理装置１０により構築された仮想環境において実行させるシステムである。エミュレーションシステム１により、例えば、画像形成装置２０のオペレーションパネルの表示部への表示命令に対しては、情報処理装置１０のエミュレータ１６が画像形成装置２０上に表示する画面と同様の画面を情報処理装置１０のディスプレイ上に表示する。但し、開発環境である情報処理装置１０は画像形成装置２０におけるエンジン（スキャナ、プリンタ等）を備えていないため、例えばプリント命令に対しては、情報処理装置１０の画面上にプリントを行う画像を表示したり、情報処理装置１０に接続されているデフォルトのプリンタに印刷したりする。また、ユーザがコピー操作を情報処理装置１０のエミュレータ画面上で行った場合は、例えば、ユーザにコピー対象となるファイルをローカルファイルシステムから選ぶように通知し、コピーの宛先を尋ねるダイアログボックスを表示し、選択されたファイルをその指定された宛先にコピーする。
【００１６】
［動作概要］
次に本発明の実施形態におけるエミュレーションシステム１の動作概要を、従来の動作と比較して説明する。
【００１７】
クラス（モジュール）をロードするクラスローダは、図２に示されるような階層構造（ツリー構造）を有する。図２は、クラスローダの構造の一例を示す図である。図２の例では、ブートスラップクラスローダはシステムクラスローダ以下のクラスローダに対して上位のクラスローダであり、システムクラスローダは共有コンポーネントクラスローダ以下のクラスローダに対して上位のクラスローダである。逆にシステムクラスローダは、ブートストラップクラスローダの下位のクラスローダである。なお、図２に示したクラスローダの名称及び構造は一例であって、クラスローダの名称及び構造は図２の例に限らない。
【００１８】
このクラスローダの階層構造により、下位のクラスローダでロードされたモジュールは上位のクラスローダでロードされたモジュールを参照（アクセス）できるが、逆に、上位のクラスローダでロードされたモジュールは、下位のクラスローダでロードされたモジュールを参照できない。例えば、図３に従来のモジュール間の参照可否の状況を説明するための一例を示す。図３に示されるように、下位のクラスローダ（例えば「クラスローダＡ」）によりロードされた上位モジュール（実モジュール）１３に対して、上位のクラスローダ（例えば「クラスローダＢ」）によりロードされた下位モジュール（スタブモジュール）１４から上位のクラスローダ（クラスローダＢ）を用いて参照（アクセス）することはできない。一方、上位モジュール（実モジュール）１３から下位モジュール（スタブモジュール）１４への参照（アクセス）は可能である。このように、モジュールとクラスローダの階層との関係によっては、必ずしも下位モジュールから上位モジュールへの参照ができない場合が生じる。
【００１９】
一方、本発明の実施形態における下位モジュール（スタブモジュール）１４から上位モジュール（実モジュール）１３への参照（アクセス）処理の動作概要を図４に示す。まず、下位のクラスローダ（クラスローダＡ）によりロードされた上位モジュール（実モジュール）１３は、自身をロードしたクラスローダ（クラスローダＡ）を、管理モジュール１３に通知する（Ｓ１）。次に、下位モジュール（スタブモジュール）１４は、管理モジュール１５から、上位モジュール（実モジュール）１３がロードされたクラスローダ（クラスローダＡ）を取得する（Ｓ２）。そして、下位モジュール（スタブモジュール）１４は、取得したクラスローダ（クラスローダＡ）を用いて、上位モジュール（実モジュール）１３を参照する。
【００２０】
このように、本発明の実施形態では、下位モジュール（スタブモジュール）１４から上位モジュール（実モジュール）１３への参照（アクセス）時に、下位モジュール（スタブモジュール）１４は、実際に上位モジュール（実モジュール）１３をロードしたクラスローダを用いて、参照（アクセス）を行う。これにより、クラスローダの階層（上位又は下位）に依存せず、確実に、下位モジュール（スタブモジュール）１４から上位モジュール（実モジュール）１３を参照（アクセス）できる。
【００２１】
［ハードウェア構成］
図５は、本発明の実施形態における情報処理装置１０のハードウェア構成の一例を示す図である。情報処理装置１０は、それぞれバスBで相互に接続されているドライブ装置１００と、補助記憶装置１０２と、メモリ装置１０３と、ＣＰＵ１０４と、インタフェース装置１０５と、表示装置１０６と、入力装置１０７とを有する。
【００２２】
情報処理装置１０での処理を実現するプログラムは、ＣＤ−ＲＯＭ等の記録媒体１０１によって提供される。プログラムを記憶した記録媒体１０１がドライブ装置１００にセットされると、プログラムが記録媒体１０１からドライブ装置１００を介して補助記憶装置１０２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体１０１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置１０２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００２３】
メモリ装置１０３は、プログラムの起動指示があった場合に、補助記憶装置１０２からプログラムを読み出して格納する。ＣＰＵ１０４は、メモリ装置１０３に格納されたプログラムに従って情報処理装置１０に係る機能を実行する。インタフェース装置１０５は、有線又は無線ＬＡＮ等のネットワークに接続するためのインタフェースとして用いられる。表示装置１０６は、例えば液晶ディスプレイや有機ＥＬディスプレイ等のユーザに情報を表示出力するハードウェアである。入力装置１０７は、例えばマウスやキーボード等のユーザからの情報の入力を受け付けるためのハードウェアである。
【００２４】
［機能構成］
図６は、本発明の実施形態におけるエミュレーションシステムの機能構成の一例を示す図である。
【００２５】
情報処理装置１０は、上位モジュール（実モジュール）１３に含まれるクラスローダ通知手段１３１及び下位モジュール参照手段１３２と、下位モジュール（スタブモジュール）１４に含まれるクラスローダ取得手段１４１及び上位モジュール参照手段１４２と、管理モジュール１５に含まれるクラスローダ受付手段１５１、クラスローダ管理手段１５２、クラスローダ送信手段１５３及びクラスローダ情報管理テーブル１５４と、エミュレータ１６に含まれるクラスローダ手段１６１とを有する。各機能はＣＰＵ１０４がプログラムを実行し、ハードウェアと協働することで実現される。
【００２６】
エミュレータ１６に含まれるクラスローダ手段１６１は、モジュール（上位モジュール（実モジュール）１３、下位モジュール（スタブモジュール）１４、管理モジュール１５）毎に関連付けられたクラスローダに従い、情報処理装置１０が備えるメモリ装置１０３に、各モジュールをロードする。
【００２７】
上位モジュール（実モジュール）１３に含まれるクラスローダ通知手段１３１は、上位モジュール（実モジュール）１３がクラスローダによりロードされると、ロードに用いられたクラスローダ情報を、管理モジュール１５に通知する。ここでクラスローダ情報とは、各モジュールを識別するためのモジュール識別子及びロードに用いられたクラスローダ（例えば、クラスローダ名）である。
【００２８】
下位モジュール参照手段１３２は、スタブモジュールである下位モジュール（スタブモジュール）１４を参照する。
【００２９】
管理モジュール１５に含まれるクラスローダ受付手段１５１は、上位モジュール（実モジュール）１３から通知されたクラスローダ情報を受け付けると、クラスローダ管理手段１５２に通知する。
【００３０】
クラスローダ管理手段１５２は、図７に示されるクラスローダ情報管理テーブル１５４を用いて、クラスローダ情報を管理し、要求に応じてクラスローダの読み出しや書き込み処理を行う。図７は、本発明の実施形態におけるクラスローダ情報管理テーブル１５４に記憶される情報の一例を示す図である。図７に示されるように、クラスローダ情報管理テーブル１５４には、「モジュール識別子」に対応付けて「クラスローダ」が記憶されている。
【００３１】
図６に戻り説明する。
【００３２】
クラスローダ送信手段１５３は、下位モジュール（スタブモジュール）１４から送信される、上位モジュール（実モジュール）１３のモジュール識別子を含むクラスローダ取得要求を受け付けると、クラスローダ管理手段１５２を介してクラスローダ情報管理テーブル１５４からクラスローダ取得要求に含まれるモジュール識別子に対応するクラスローダを取得する。そして、クラスローダ送信手段１５３は、取得したクラスローダを、下位モジュール（スタブモジュール）１４に送信する。
【００３３】
下位モジュール（スタブモジュール）１４に含まれるクラスローダ取得手段１４１は、下位モジュール（スタブモジュール）１４に対するユーザからの操作を受け付けた場合、参照先とする上位モジュール（実モジュール）１３のモジュール識別情報を含むクラスローダ取得要求を管理モジュール１５に送信する。そして、クラスローダ取得手段１４１は、クラスローダ取得要求に対する応答として、参照先とする上位モジュール（実モジュール）１３がロードされたクラスローダを取得すると、上位モジュール参照手段に取得した取得したクラスロード名を通知する。
【００３４】
上位モジュール参照手段１４２は、クラスローダ取得手段１４１から通知された上位モジュールのクラスローダに基づき、上位モジュールを参照する。
【００３５】
［動作手順］
図８は、本発明の実施形態における情報処理装置１０のエミュレータ１６の起動後の動作手順の一例を示すシーケンス図である。
【００３６】
まずユーザは、情報処理装置１０のキーボード等の入力装置１０７を操作し（Ｓ１０１）、エミュレータ１６を起動させる（Ｓ１０２）。
【００３７】
エミュレータ１６が起動されると、各モジュール（上位モジュール（実モジュール）１３、下位モジュール（スタブモジュール）１４、管理モジュール１５）に関連付けられたクラスローダを用いて、各モジュールをメモリ装置１０３にロードする（Ｓ１０３、Ｓ１０４、Ｓ１０５）。ここで、例えば上位モジュール（実モジュール）１３をロードしたクラスローダを「クラスローダＡ」、下位モジュール（スタブモジュール）１４をロードしたクラスローダを「クラスローダＢ」とする。また、「クラスローダＡ」は「クラスローダＢ」の下位のクラスローダ（上位：クラスローダＢ、下位：クラスローダＡ）であるとする。したがって、この状態では、上位のクラスローダＢによりロードされた下位モジュール（スタブモジュール）１４からは、下位のクラスロードＡによりロードされた上位モジュール（実モジュール）１３を参照できない。
【００３８】
次に、上位モジュール（実モジュール）１３のクラスローダ通知手段１３１は、「クラスローダＡ」によりロードされ初期化処理が行われると、初期化処理中にロードに用いられたクラスローダ（「クラスローダＡ」）及び上位モジュール（実モジュール）１３のモジュール識別子（例えば「モジュールＡ」とする）を含むクラスローダ情報を、管理モジュール１５に通知する（Ｓ１０６）。
【００３９】
管理モジュール１５のクラスローダ受付手段１５１は、上位モジュール（実モジュール）１３からのクラスローダ情報を受け付けると、クラスローダ管理手段１５２を介してクラスローダ情報管理テーブル１５４に、モジュール識別子（「モジュールＡ」）とクラスローダ（「クラスローダＡ」）とを対応付けて記憶する（Ｓ１０７）。
【００４０】
次に、ユーザが下位モジュール（スタブモジュール）１４から上位モジュール（実モジュール）１３にアクセス（参照）させる操作を行う（Ｓ１０８）と、エミュレータ１６はユーザからの入力指示に基づく操作を下位モジュール（スタブモジュール）１４に要求する（Ｓ１０９）。
【００４１】
下位モジュール（スタブモジュール）１４がエミュレータ１６から操作の要求を受け付けると、クラスローダ取得手段１４１は、管理モジュール１５に、上位モジュール（実モジュール）１３のモジュール識別子（「モジュールＡ」）を含むクラスローダ取得要求を行う（Ｓ１１０）。
【００４２】
管理モジュール１５のクラスローダ送信手段１５３は、クラスローダ管理手段１５２を介し、クラスローダ情報管理テーブル１５４からクラスローダ取得要求に含まれるモジュール識別子（「モジュールＡ」）に対応するクラスローダ（「クラスローダＡ」）を取得する。そして、クラスローダ送信手段１５３は、クラスローダ取得要求に対する応答として、クラスローダ（「クラスローダＡ」）を送信する（Ｓ１１１）。
【００４３】
下位モジュール（スタブモジュール）１４のクラスローダ取得手段１４１が上位モジュール（実モジュール）１３のクラスローダ（「クラスローダＡ」）を取得すると、上位モジュール参照手段１４２に取得したクラスローダを通知する。そして、上位モジュール参照手段１４２は、上位モジュール（実モジュール）１３がロードされたクラスローダ（「クラスローダＡ」）を用いて参照する（Ｓ１１２）。
【００４４】
上述したように、本発明の実施形態のエミュレーションシステム１によれば、下位モジュール（スタブモジュール）１４が上位モジュール（実モジュール）１３を参照する場合、上位モジュール（実モジュール）１３がロードされたクラスローダを管理モジュール１５が管理し、下位モジュール（スタブモジュール）１４が上位モジュール（実モジュール）１３をロードしたクラスローダを管理モジュール１５から取得する。そして、下位モジュール（スタブモジュール）１４は、取得した上位モジュール（実モジュール）１３がロードされたクラスロードを用いて上位モジュール（実モジュール）１３を参照する。
【００４５】
したがって、下位モジュール（スタブモジュール）１４は、下位モジュール（スタブモジュール）１４をロードしたクラスローダと、上位モジュール（実モジュール）１３をロードしたクラスローダとの関係（上位又は下位）に依存せず、上位モジュール（実モジュール）１３をロードしたクラスローダを用いることで確実に上位モジュール（実モジュール）１３を参照できる。
【００４６】
これにより、画像形成装置２０等の電子機器のエミュレータの開発を行う際に、上位モジュール（実モジュール）１３である実モジュールに修正を加えずとも、下位モジュール（スタブモジュール）１４から上位モジュール（実モジュール）１３へ依存したあらゆる処理を実装できる。
【００４７】
なお、上記各実施の形態は機器の一例として画像形成装置を説明に用いただけであり、例えば、プロジェクタ、スマートフォン、携帯電話又はデジタルカメラ等のようなプログラムがインストールされる画像形成装置１０以外の様々な電子機器に適用されてもよい。
【００４８】
以上、本発明の実施形態について詳述したが、本発明はかかる特定の実施の形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形、変更が可能である。
【符号の説明】
【００４９】
１          エミュレーションシステム
１０        情報処理装置
１３        上位モジュール（実モジュール）
１３１      クラスローダ通知手段
１３２      下位モジュール参照手段
１４        下位モジュール（スタブモジュール）
１４１      クラスローダ取得手段
１４２      上位モジュール参照手段
１５        管理モジュール
１５１      クラスローダ受付手段
１５２      クラスローダ管理手段
１５３      クラスローダ送信手段
１５４      クラスローダ情報管理テーブル
１６        エミュレータ
１６１      クラスローダ手段
２０        画像形成装置
【先行技術文献】
【特許文献】
【００５０】
【特許文献１】特開２０１０−２１８４６９号公報
【図１】
2014179002.tif 000003
【図２】
2014179002.tif 000004
【図３】
2014179002.tif 000005
【図４】
2014179002.tif 000006
【図５】
2014179002.tif 000007
【図６】
2014179002.tif 000008
【図７】
2014179002.tif 000009
【図８】
2014179002.tif 000010