JP2011180771A - 情報処理装置、エミュレーションシステム、及びエミュレーションプログラム - Google Patents
情報処理装置、エミュレーションシステム、及びエミュレーションプログラム Download PDFInfo
- Publication number
- JP2011180771A JP2011180771A JP2010043279A JP2010043279A JP2011180771A JP 2011180771 A JP2011180771 A JP 2011180771A JP 2010043279 A JP2010043279 A JP 2010043279A JP 2010043279 A JP2010043279 A JP 2010043279A JP 2011180771 A JP2011180771 A JP 2011180771A
- Authority
- JP
- Japan
- Prior art keywords
- processing apparatus
- image processing
- information processing
- application
- operation module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Accessory Devices And Overall Control Thereof (AREA)
- Debugging And Monitoring (AREA)
Abstract
【課題】アプリケーション開発を行いながら、同時に実機による動作確認が行える情報処理装置、エミュレーションシステム、及びエミュレーションプログラムを提供する。
【解決手段】情報処理装置200は、機能を実現する動作モジュール30の動作環境として仮想マシン211を搭載する画像処理装置100と同一の仮想マシン212が実装され、動作モジュール30を利用して機能を実現する画像処理装置100のアプリケーション222bを開発する装置であって、当該装置で実行された開発中のアプリケーション222bから、アプリケーション動作時に利用する動作モジュール30の実行要求を受け付けると、受け付けた実行要求に従って、画像処理装置100に対し、動作モジュール30の実行を要求し、実行された動作モジュール30の実行結果を、画像処理装置100から受信する。
【選択図】図4
【解決手段】情報処理装置200は、機能を実現する動作モジュール30の動作環境として仮想マシン211を搭載する画像処理装置100と同一の仮想マシン212が実装され、動作モジュール30を利用して機能を実現する画像処理装置100のアプリケーション222bを開発する装置であって、当該装置で実行された開発中のアプリケーション222bから、アプリケーション動作時に利用する動作モジュール30の実行要求を受け付けると、受け付けた実行要求に従って、画像処理装置100に対し、動作モジュール30の実行を要求し、実行された動作モジュール30の実行結果を、画像処理装置100から受信する。
【選択図】図4
Description
本発明は、情報処理装置に関し、特に、画像処理装置をエミュレートする技術に関するものである。
近年の画像処理装置は、使用用途の多様化に伴い、様々な機能を実現するアプリケーションが搭載可能なソフトウェア環境を備えている。また、これらのアプリケーションは、機器の製造元であるメーカの他、様々なソフトウェアベンダにより開発され提供されている。
そこで、アプリケーション開発を行うための環境として、画像処理装置のエミュレーション環境が知られている。例えば、特許文献1には、開発したアプリケーションプログラムの命令に対する画像処理装置の動作に相当する動作を情報処理装置に実行させるエミュレータが開示されている。
しかしながら、従来のエミュレーション環境では、画像処理装置の機能動作(例えば「コピー」など機能の動作)をスタブ処理で実現している。例えば、コピー要求を行うアプリケーションを開発した場合、従来のエミュレーション環境でアプリケーションを動作させても、スタブ処理により、コピーした旨の実行結果のみが要求元に応答されるだけである。そのため、実際のコピー機能と連携した動作確認を行うことができない。すなわち、従来では、開発アプリケーションを画像処理装置へインストール後に動作確認を行い、動作結果が記録された動作ログを基に問題を発見し、プログラムを修正(デバッグ)すると言う作業を繰り返し行っている。
このように、従来の環境では、開発者が、アプリケーション開発を行いながら、同時に実機による動作確認を行うことができないため、アプリケーション開発を効率良く行うことができなかった。
本発明は上記従来技術の問題点を鑑み提案されたものであり、その目的とするところは、アプリケーション開発を行いながら、同時に実機による動作確認が行える情報処理装置、エミュレーションシステム、及びエミュレーションプログラムを提供することにある。
上記目的を達成するため、本発明に係る情報処理装置は、機能を実現する動作モジュールの動作環境として仮想マシンを搭載する画像処理装置と同一の仮想マシンが実装され、前記動作モジュールを利用して機能を実現する前記画像処理装置のアプリケーションを開発する情報処理装置であって、当該情報処理装置で実行された開発中のアプリケーションから、アプリケーション動作時に利用する前記動作モジュールの実行要求を受け付ける受付手段と、前記受付手段により受け付けた実行要求に従って、前記画像処理装置に対し、前記動作モジュールの実行を要求する要求手段と、前記要求手段により実行された前記動作モジュールの実行結果を、前記画像処理装置から受信する受信手段と、を有している。
このような構成によって、本発明に係る情報処理装置は、アプリケーションの動作環境である画像処理装置と通信を行う通信インタフェース部を介して、開発中のアプリケーションから、画像処理装置の機能(開発アプリケーションの機能を実現するために利用する下位機能)に対し、動作要求を行う。その結果、情報処理装置は、通信インタフェース部を介して、画像処理装置から、要求に応じた実際の動作結果を得る。このように、情報処理装置は、開発アプリケーションを動作させた際に、開発アプリケーションで利用する画像処理装置の機能を遠隔で動作させ、画像処理装置をエミュレートする。
これによって、本発明に係る情報処理装置では、アプリケーション開発を行いながら、同時に実機による動作確認を行うことができる。
上記目的を達成するため、本発明に係るエミュレーションシステムは、機能を実現する動作モジュールの動作環境として仮想マシンを搭載する画像処理装置と、前記画像処理装置と同一の仮想マシンが実装され、前記動作モジュールを利用して機能を実現する前記画像処理装置のアプリケーションを開発する情報処理装置とが、所定のデータ伝送路で接続されるエミュレーションシステムであって、前記情報処理装置が、前記情報処理装置で実行された開発中のアプリケーションから、アプリケーション動作時に利用する前記動作モジュールの実行要求を受け付ける受付手段と、前記受付手段により受け付けた実行要求に従って、前記画像処理装置に対し、前記動作モジュールの実行を要求する要求手段と、前記動作モジュールの実行結果を、前記画像処理装置から受信する受信手段と、を有し、前記画像処理装置が、前記要求手段により実行された前記動作モジュールの実行結果を、前記情報処理装置に応答する応答手段を有している。
このような構成によって、本発明に係るエミュレーションシステムは、アプリケーションの動作環境である画像処理装置と通信を行う通信インタフェース部を介して、開発中のアプリケーションから、画像処理装置の機能に対し、動作要求を行い、画像処理装置から、要求に応じた実際の動作結果を得ると言うエミュレーション環境を実現する。
これによって、本発明に係るエミュレーションシステムでは、アプリケーション開発を行いながら、同時に実機による動作確認が可能な環境を提供できる。
本発明によれば、開発アプリケーションを実行した際に、開発アプリケーションで利用する画像処理装置の機能を遠隔実行し、実機による実際の実行結果が得られるようにしたことで、アプリケーション開発を行いながら、同時に実機による動作確認が行える情報処理装置、エミュレーションシステム、及びエミュレーションプログラムを提供することができる。
以下、本発明の好適な実施の形態(以下「実施形態」と言う)について、図面を用いて詳細に説明する。
[第1の実施形態]
<システム構成>
図1は、本実施形態に係るエミュレーションシステム1の構成例を示す図である。
図1には、画像処理装置100と情報処理装置200とが、ネットワークなどのデータ伝送路Nを介して接続されるシステム構成例が示されている。
<システム構成>
図1は、本実施形態に係るエミュレーションシステム1の構成例を示す図である。
図1には、画像処理装置100と情報処理装置200とが、ネットワークなどのデータ伝送路Nを介して接続されるシステム構成例が示されている。
情報処理装置200は、画像処理装置100で機能するアプリケーションの開発や動作確認を行う機器である。つまり、情報処理装置200は、画像処理装置100をエミュレートするエミュレータ(エミュレーション環境)であり、アプリケーション開発環境である。それに対して、画像処理装置100は、アプリケーションの動作環境であり、開発アプリケーションの動作確認環境である。
このように、本実施形態に係るエミュレーションシステム1では、上記システム構成により、情報処理装置200で開発中のアプリケーションから、画像処理装置100が有する開発アプリケーションの下位モジュールにあたる動作モジュールを遠隔実行可能な環境を提供できる。
<ハードウェア構成>
図2は、本実施形態に係る情報処理装置(エミュレータ)100のハードウェア構成例を示す図である。
図2に示すように、情報処理装置200は、入力装置201、表示装置202、ドライブ装置203、RAM(Random Access Memory)204、ROM(Read Only Memory)205、CPU(Central Processing Unit)206、インタフェース装置207、及びHDD(Hard Disk Drive)208などを備え、それぞれがバスBで相互に接続されている。
図2は、本実施形態に係る情報処理装置(エミュレータ)100のハードウェア構成例を示す図である。
図2に示すように、情報処理装置200は、入力装置201、表示装置202、ドライブ装置203、RAM(Random Access Memory)204、ROM(Read Only Memory)205、CPU(Central Processing Unit)206、インタフェース装置207、及びHDD(Hard Disk Drive)208などを備え、それぞれがバスBで相互に接続されている。
入力装置201は、キーボード及びマウスなどを含み、情報処理装置200に各操作信号を入力するのに用いられる。表示装置202は、ディスプレイなどを含み、情報処理装置200による処理結果を表示する。
インタフェース装置207は、情報処理装置200をデータ伝送路Nに接続するインタフェースである。これにより、情報処理装置200は、インタフェース装置207を介して、通信装置を備えた他の機器(画像処理装置)とデータ通信を行うことができる。
HDD208は、各種プログラム及びデータを格納している不揮発性の記憶装置である。格納されるプログラム及びデータには、例えば、情報処理装置200全体を制御する情報処理システム(「Windows(登録商標:以下略)」や「UNIX(登録商標:以下略)」などの基本ソフトウェアであるOS:Operating System)、及び情報処理システム上において各種機能を提供するアプリケーション(ソフトウェア開発アプリ)などがある。また、HDD208は、格納している上記プログラム及びデータを、所定のファイルシステム及び/又はDB(Data Base)により管理している。
ドライブ装置203は、着脱可能な記録媒体203aとのインタフェースである。これにより、情報処理装置200は、ドライブ装置203を介して、記録媒体203aの読み取り及び/又は書き込みを行うことができる。
ROM205は、電源を切っても内部データを保持することができる不揮発性の半導体メモリ(記憶装置)である。ROM205には、情報処理装置200が起動されるときに実行されるBIOS(Basic Input/Output System)や、情報処理装置200のシステム設定及びネットワーク関連設定などのデータが格納されている。
RAM204は、上記各種記憶装置から読み出されたプログラム及びデータを一時保持する揮発性の半導体メモリ(記憶装置)である。CPU206は、ROM205やHDD208からRAM204上に読み出したプログラムを実行することにより、情報処理装置200の全体制御及び各種搭載機能の動作を実現する。
このように、情報処理装置200では、上記ハードウェア構成により、アプリケーション開発を含む各種情報処理を行うサービス(情報処理機能)を提供できる。
<ソフトウェア構成>
図3は、本実施形態に係るエミュレーションシステム1のソフトウェア構成例(その1)を示す図である。
図3には、アプリケーションの動作環境として、仮想マシン(VM:Virtual Machine)環境が実装された画像処理装置100のソフトウェア構成例が示されている。よって、画像処理装置100のアプリケーションを開発する情報処理装置200には、画像処理装置100と同一の仮想マシン環境が実装されたソフトウェア構成となっている。なお、仮想マシンとは、1台の物理コンピュータ上に、あたかもコンピュータが複数稼働しているかのような疑似システムを構築する仮想化技術により実現される擬似的な情報処理システム環境(論理コンピュータ)を言う。
図3は、本実施形態に係るエミュレーションシステム1のソフトウェア構成例(その1)を示す図である。
図3には、アプリケーションの動作環境として、仮想マシン(VM:Virtual Machine)環境が実装された画像処理装置100のソフトウェア構成例が示されている。よって、画像処理装置100のアプリケーションを開発する情報処理装置200には、画像処理装置100と同一の仮想マシン環境が実装されたソフトウェア構成となっている。なお、仮想マシンとは、1台の物理コンピュータ上に、あたかもコンピュータが複数稼働しているかのような疑似システムを構築する仮想化技術により実現される擬似的な情報処理システム環境(論理コンピュータ)を言う。
仮想マシン環境は、OS10上で仮想マシン環境を実現するプログラムを動作させることで実現される。本実施形態では、組み込み型システムの開発環境として使用頻度の高いJava(登録商標:以下略)VM21を動作させることで実現している。なお、OS10は、組み込み系の基本ソフトウェアであり、例えば、Linux(登録商標)などである。情報処理装置200が有するOS102の場合には、上述したWindowsやUNIXなどであってもよい。
このように、本実施形態に係る情報処理装置200では、画像処理装置100で動作するJavaVM211と同一のJavaVM212を動作させることで、画像処理装置100に実装された仮想マシン環境、すなわち、アプリケーションの動作環境を擬似的に実現している。
以降では、画像処理装置100のJavaVM211を「第1仮想マシン211」、情報処理装置200のJavaVM212を「第2仮想マシン212」に置き換え説明する。また、第1仮想マシン211及び第2仮想マシン212を総称する際には、「仮想マシン21」とする。同様に、各仮想マシン21上で動作するソフトウェア(例えば「プログラム」や「データ」)及び使用される記憶領域についても、同じソフトウェア名や記憶領域名を総称する際には、共通する名称と参照符号を用いることとする。
仮想マシン21は、仮想マシン21上でJavaコンポーネント22を動作させるためのヒープメモリ211を有している。ヒープメモリ211は、仮想マシン21上で動作するアプリケーションが自由に確保できるメモリ領域である。
仮想マシン21上で動作するJavaコンポーネント22には、プラットフォーム及びアプリケーション(Javaプラットフォーム221及びJavaアプリケーション222)の各機能を実現するための複数のJavaプログラムが含まれる。
Javaプラットフォーム221は、仮想マシン21が実現するシステムの基本機能として動作する。Javaアプリケーション222は、基本機能などを利用したユーザ提供機能として動作する。Javaアプリケーション222は、提供する機能構成に応じてインストール/アンインストールが可能である。
以上のように、本実施形態に係る情報処理装置200では、上記方法で画像処理装置100の動作環境を擬似的に構築することにより、画像処理装置100で動作するアプリケーションの開発や動作確認を行うことができる。
次に、上記ソフトウェア構成の詳細について説明する。
図4は、本実施形態に係るエミュレーションシステム1のソフトウェア構成例(その2)を示す図である。
図4は、本実施形態に係るエミュレーションシステム1のソフトウェア構成例(その2)を示す図である。
例えば、画像処理装置100が、MFP(Multifunction Peripheral)であった場合、第1仮想マシン211では、コピーやFAX配信などの標準機能が動作する。
第1仮想マシン211上で動作するJavaコンポーネント221が有するJavaアプリケーション2221は、標準アプリケーション222a1及びSDK(Software Development Kit)アプリケーション222b1を含む。Javaプラットフォーム2211は、Javaモジュール群(動作モジュール群)221a1及びSDK API(SDK Application Program Interface)221b1を含む。
標準アプリケーション222a1は、ユーザ提供機能のうち、MFPの標準機能を実現するソフトウェアであり、主に、画像処理装置100の製造元であるメーカにより開発され提供される。標準アプリケーション222a1は、機能実現のために、プラットフォームが有するJavaモジュール群221a1の動作モジュール30を利用する。例えば、Javaモジュール群221a1には、プリンタモジュール30a、スキャナモジュール30b、及びFAXモジュール30cなどが、基本機能を実現する動作モジュール30として含まれる。これにより、例えば、標準アプリケーション222a1は、Javaモジュール群221a1のプリンタモジュール30a及びスキャナモジュール30bを利用し、コピー機能(コピーアプリ)を実現できる。
SDKアプリケーション222b1は、ユーザ提供機能のうち、MFPの拡張機能を実現するソフトウェアであり、ソフトウェアベンダにより開発され提供される。よって、このSDKアプリケーション222b1が、情報処理装置200で開発されるアプリケーションである。SDKアプリケーション222b1は、メーカからソフトウェアベンダに提供されたSDKを用いて開発される。よって、SDKアプリケーション222b1は、機能実現のために、SDK API221b1を介して、プラットフォームが有するJavaモジュール群221a1の動作モジュール30を利用する。なお、SDK API221b1は、ソフトウェアを開発する際に使用できる命令や関数の集合である。これにより、例えば、SDKアプリケーション222b1は、SDK API221b1を介して、Javaモジュール群221a1のプリンタモジュール30aを利用し、認証モジュール(非図示)と合わせて、印刷の利用認証機能(セキュアプリントアプリ)を実現できる。
これに対して情報処理装置200には、開発するSDKアプリケーション222bを動作させる第2仮想マシン212が実装され、画像処理装置100の動作環境が擬似的に構築されている。
<エミュレーション機能>
従来のエミュレーション環境では、第2仮想マシン212で動作するSDKアプリケーション222b2に対して、下位モジュールのスタブ処理が、Javaモジュール群221a2に含まれるモジュールにより行われていた。具体的には、Javaモジュール群221a2が、プリンタ、スキャナ、FAXなどの基本機能のスタブ処理を行う擬似モジュールを有し、SDKアプリケーション222b2が実行されると、実行時に利用される基本機能の動作結果を、擬似モジュールがSDKアプリケーション222b2に返す。
従来のエミュレーション環境では、第2仮想マシン212で動作するSDKアプリケーション222b2に対して、下位モジュールのスタブ処理が、Javaモジュール群221a2に含まれるモジュールにより行われていた。具体的には、Javaモジュール群221a2が、プリンタ、スキャナ、FAXなどの基本機能のスタブ処理を行う擬似モジュールを有し、SDKアプリケーション222b2が実行されると、実行時に利用される基本機能の動作結果を、擬似モジュールがSDKアプリケーション222b2に返す。
上述したように、このような環境では、開発者が、アプリケーション開発を行いながら、同時に実機による動作確認が行えず、アプリケーション開発を効率良く行うことができない。
そこで、本実施形態に係る情報処理装置200では、開発アプリケーションを動作させた際に、開発アプリケーションで利用する画像処理装置100の機能を遠隔で動作させ、画像処理装置100をエミュレートする。具体的には、情報処理装置200において、開発したSDKアプリケーション222b2を実行した際に、SDKアプリケーション222b2で利用する画像処理装置100の動作モジュール30を遠隔実行し、実機による実際の実行結果が得られると言うエミュレーション環境を有している。
これによって、本実施形態に係る情報処理装置200では、アプリケーション開発を行いながら、同時に実機による動作確認を行うことができる。
また、本実施形態に係る情報処理装置200が有するエミュレーション環境では、次のような利点もある。
従来のエミュレーション環境では、開発アプリケーションからの利用を想定し、画像処理装置100が有する全ての基本機能をエミュレートするため、各機能のスタブ処理を行う擬似モジュールを用意しなければならなかった。しかし、本実施形態に係るエミュレーション環境では、画像処理装置100が有する実際の動作モジュール30を用いて、画像処理装置100をエミュレートするため、疑似モジュールを用意する必要がない。これにより、環境構築や維持に係るコストを削減できる。
また、従来のエミュレーション環境では、デバッグ用の動作ログをソフトウェアベンダに提供する必要があり、その動作ログに画像処理装置100の内部情報が含まれるため、第三者への情報漏洩の危険性があり、情報の機密性を確保するのが困難であった。しかし、本実施形態に係るエミュレーション環境では、画像処理装置100が有する実際の動作モジュール30を用いて、画像処理装置100をエミュレートするため、エミュレーション環境と異なる装置で情報を管理することができる。これにより、第三者に対して開示される情報を制限することができる。
このような本実施形態に係るエミュレーション環境を実現するためには、開発アプリケーションが動作する情報処理装置200と、開発アプリケーションが利用する基本機能を搭載した画像処理装置100との間で、実行要求及び実行結果をやり取りする(データ通信を行う)必要がある。
装置間で行うデータ通信への対応方法には、画像処理装置100の各動作モジュール30に対応する通信モジュールを、情報処理装置200の第2仮想マシン212上で動作させる方法(動作モジュール単位で対応する方法)が考えられる。しかし、この方法では、画像処理装置100が多くの動作モジュール30を有している場合、搭載数に合わせた通信モジュールを用意する必要があり、現実的な対応方法ではない。また、たとえ通信モジュールが用意できたとしても、障害が発生した場合など、エミュレーション環境の管理・保守が煩雑なものとなる。さらに、情報処理装置200で多くの通信モジュールが動作すると、情報処理装置200が備える記憶リソースを無駄に消費することになる。
そこで、本実施形態では、開発アプリケーションと開発アプリケーションが利用する基本機能との間でデータ通信を行うインタフェース部が、各装置に設けられている。このインタフェース部が、各仮想マシン21上で動作するJavaプラットフォーム221が有するJavaモジュール群221aのサブセットモジュール(通信インタフェース部)41である。
《サブセットモジュール》
各仮想マシン21上で動作するサブセットモジュール41は、同一モジュールである。つまり、サブセットモジュール41は、画像処理装置100と情報処理装置200とで共通化されたモジュールである。また、各仮想マシン21上では、1つのサブセットモジュール41が動作する。つまり、サブセットモジュール41は、画像処理装置100が有する動作モジュール30に対して共通化されたモジュールである。
各仮想マシン21上で動作するサブセットモジュール41は、同一モジュールである。つまり、サブセットモジュール41は、画像処理装置100と情報処理装置200とで共通化されたモジュールである。また、各仮想マシン21上では、1つのサブセットモジュール41が動作する。つまり、サブセットモジュール41は、画像処理装置100が有する動作モジュール30に対して共通化されたモジュールである。
サブセットモジュール41は、情報処理装置200で開発アプリケーションを実行した場合、開発アプリケーションと開発アプリケーションが利用する基本機能との間で、次のように動作する。
SDKアプリケーション222b2は、第2仮想マシン212上のサブセットモジュール412を介して、第1仮想マシン211上のサブセットモジュール411に対し、実行条件を送信することで、動作モジュール30による処理の実行を要求する。第1仮想マシン211上のサブセットモジュール411は、受信した実行要求に従って、利用指定された動作モジュール30に対し、受信した実行条件に従って、処理の実行を要求する。動作モジュール30は、第1仮想マシン211上のサブセットモジュール411を介して、第2仮想マシン212上のサブセットモジュール412に対し、実行結果を送信する。第2仮想マシン212上のサブセットモジュール412は、受信した実行結果をSDKアプリケーション222b2に渡す。
ここからは、サブセットモジュール41が有する機能について詳細に説明する。
図5は、本実施形態に係るサブセットモジュール41の機能構成例を示す図である。
図5に示すように、サブセットモジュール41は、要求受付部411、仮想マシン判定部412、通信部413、及び処理要求部414などを有している。
図5は、本実施形態に係るサブセットモジュール41の機能構成例を示す図である。
図5に示すように、サブセットモジュール41は、要求受付部411、仮想マシン判定部412、通信部413、及び処理要求部414などを有している。
要求受付部411は、SDK API221を介して、SDKアプリケーション222bからの実行要求を受け付ける機能部(受付手段)である。要求受付部411は、SDKアプリケーション222bから実行条件を受け取ることで、実行要求を受け付ける。要求受付部411は、受け取った実行条件を仮想マシン判定部412に渡す。
仮想マシン判定部412は、サブセットモジュール自身が動作する仮想マシン21が、第2仮想マシン212か否かを判定する機能部(判定手段)である。つまり、仮想マシン判定部412は、サブセットモジュール41が、開発環境(エミュレーション環境)である情報処理装置200で動作しているか否かを判定している。仮想マシン判定部412は、判定結果に基づき、実行条件を、通信部413又は処理要求部414のどちらか一方に渡す。
本実施形態では、画像処理装置100と情報処理装置200とが、同一のサブセットモジュール41を搭載する構成としている。そのため、サブセットモジュール41では、仮想マシン判定部412による判定結果に基づき、装置間のデータ通信を制御される。
具体的には、次のように制御される。情報処理装置200が有するサブセットモジュール412では、仮想マシン判定部4122により、自身が情報処理装置200で動作していると判定される。その結果、サブセットモジュール412では、装置間のデータ通信を行う必要があるとし、SDKアプリケーション222b2から受け取った実行条件が、通信部4132により、画像処理装置100に送信される。一方、画像処理装置100が有するサブセットモジュール411では、仮想マシン判定部4121により、自身が情報処理装置200で動作していないと判定される。その結果、サブセットモジュール411では、装置間のデータ通信を行う必要がないとし、SDKアプリケーション222b1から受け取った実行条件に従って、処理要求部4141により、動作モジュール30の処理を実行する。
このように、サブセットモジュール41では、自身の動作環境を判別することで、SDKアプリケーション222bが実行された際に、装置間のデータ通信を行う必要があるか否かを判定している(データ通信要否判定機能)。
通信部413は、装置間でデータ通信を行う機能部(要求手段、受信手段)である。通信部413は、開発アプリケーションが実行された際に、情報処理装置200からの実行条件及び画像処理装置100からの実行結果を送受信する。なお、通信部413は、設定されたネットワーク識別情報(例えば「IPアドレス」(Internet Protocol Address))に基づき、データ通信を行う。例えば、ネットワーク識別情報は、エミュレーションシステム1を構築する際に、各装置が有するサブセットモジュール41の通信部413に設定される。通信部413によるデータ通信は、仮想マシン判定部412の判定結果に基づき制御される。
具体的には、次のように制御される。情報処理装置200が有するサブセットモジュール412の通信部4132は、仮想マシン判定部4122により、サブセットモジュール自身が第2仮想マシン212で動作しているとの判定結果に基づき、実行条件を、画像処理装置100に送信し、動作モジュール30の実行を要求する。その結果、画像処理装置100が有するサブセットモジュール411の通信部4131は、受信した実行条件に従って、動作モジュール30により処理された実行結果を、要求元の情報処理装置200に送信する。このとき、通信部4131は、情報処理装置200から受信した印刷条件を処理要求部4141に渡す。
このように、サブセットモジュール41では、判別された動作環境が情報処理装置200(エミュレーション環境)であった場合に、開発アプリケーションで利用する画像処理装置100(開発アプリ動作確認環境)の機能に対して動作を要求し(遠隔動作要求機能)、画像処理装置100をエミュレートする。その結果、サブセットモジュール41では、画像処理装置100から応答された実機による実際の動作結果を得る(動作結果受信機能)。
なお、通信部413は、通信データの機密性を高めるために、暗号化機能を有していてもよい。
処理要求部414は、受け取った実行条件に従って、利用指定された動作モジュール30に対して処理の実行を要求する機能部である。処理要求部414は、実行条件を、仮想マシン判定部412又は通信部413から受け取る。処理要求部414による実行要求は、仮想マシン判定部412又は通信部413のどちらの機能部から実行条件を受け取ったかに基づき制御される。
具体的には、次のように制御される。画像処理装置100が有するサブセットモジュール411の処理要求部4141は、仮想マシン判定部4121から実行条件を受け取ると、実行条件に従って、利用指定された動作モジュール30に対して処理の実行を要求する。このとき、処理要求部4141は、画像処理装置100の搭載アプリケーションによる通常動作であると判断する。また、画像処理装置100が有するサブセットモジュール411の処理要求部4141は、通信部4131から実行条件を受け取ると、実行条件に従って、利用指定された動作モジュール30に対して処理の実行を要求し、得られた実行結果を通信部4131に渡す。このとき、処理要求部4141は、情報処理装置200の開発アプリケーションによる確認動作であると判断する。
このように、サブセットモジュール41では、判別された動作環境が画像処理装置100(開発アプリ動作確認環境)であった場合に、実行条件の受け取り経路に応じて、動作モジュール30による実行結果を要求元に応答する(実行結果応答機能)。
以上のように、サブセットモジュール41が有するデータ通信要否判定機能、遠隔動作要求機能、動作結果受信機能、及び実行結果応答機能は、上記各機能部が連係動作することにより実現される。
ここからは、本実施形態に係るエミュレーションシステム1の詳細な動作(サブセットモジュールが有する機能部群の連携動作を含む)について、処理手順を示すシーケンス図を用いて説明する。
本実施形態に係るエミュレーション機能は、画像処理装置100及び情報処理装置200の各仮想マシン21上でサブセットモジュール41が動作することにより実現される機能である。仮想マシン環境は、各装置に搭載(インストール)されるプログラムが、制御部(例えば「CPU」)により、格納先(例えば「HDD」)からメモリ(例えば「RAM」)上に読み出され、実行されることで機能する。サブセットモジュール41は、この環境下において、Javaプラットフォーム221が有するJavaモジュール群221aの1つとして起動される。また、開発アプリケーションは、情報処理装置200の第2仮想マシン212において、Javaアプリケーション2222が有するSDKアプリケーション222b2の1つとして起動される。
以下の説明では、開発中のアプリケーションを情報処理装置200(エミュレーション環境)で実行し、同時に、アプリケーションの動作環境である画像処理装置100(開発アプリ動作確認環境)での動作確認を行う場合のエミュレーション処理について説明する。
図6は、本実施形態に係るエミュレーションの処理手順例を示すシーケンス図である。なお、図6に示す処理例では、情報処理装置200で起動されたサブセットモジュール412では、要求受付部4112、仮想マシン判定部4122、及び通信部4132が機能する。一方、画像処理装置100で起動されたサブセットモジュール411では、通信部4131及び処理要求部4141が機能する。
図6に示すように、情報処理装置200では、第2仮想マシン212上で開発中のSDKアプリケーション222b2を実行させることで、動作確認を開始する(ステップS11)。
情報処理装置200では、動作確認中のSDKアプリケーション222b2により、画像処理装置100が有する動作モジュール30を利用する処理が開始されると、第2仮想マシン212上で動作するサブセットモジュール412に対して、利用する動作モジュール30の実行要求が通知される(ステップS12)。このとき、SDKアプリケーション222b2から、サブセットモジュール412に対して、利用する動作モジュール30の実行条件が渡される。
サブセットモジュール412は、SDKアプリケーション222b2からの実行要求通知を、要求受付部4112により受け付ける。要求受付部4112は、受け付けた実行要求を仮想マシン判定部4122に通知し、サブセットモジュール412が動作する仮想マシン21の判定を要求する(ステップS13)。
仮想マシン判定部4122は、サブセットモジュール412が動作する仮想マシン21が、エミュレーション環境の第2仮想マシン212であるか否かを判定する(ステップS14)。その結果、仮想マシン判定部4122は、エミュレーション環境の「第2仮想マシンである」と判定し、実行要求を通信部4132に通知する(ステップS15)。
通信部4132は、実行要求通知時に受け取った実行条件を、画像処理装置100に送信する(ステップS16)。このようにして、情報処理装置200は、画像処理装置100が有する動作モジュール30に対して、遠隔実行を要求する。
画像処理装置100では、第1仮想マシン211上で動作するサブセットモジュール411により、情報処理装置200からの実行要求を受け付ける。
サブセットモジュール411は、情報処理装置200から送信された実行条件を、通信部4131により受信する。通信部4131は、受け付けた実行要求を処理要求部4141に通知する(ステップS17)。このとき、通信部4131から、処理要求部4141に対して、利用する動作モジュール30の実行条件が渡される。
処理要求部4141は、受け付けた実行要求を解析する(ステップS18)。具体的には、次のような解析を行う。処理要求部4141は、実行条件に基づき、利用指定された動作モジュール30と、実行する際に動作モジュール30に設定する処理条件とを特定する。
処理要求部4141は、特定した動作モジュール30の処理条件を設定し、動作モジュール30に対して処理の実行を要求する(ステップS19)。その結果、動作モジュール30は、要求処理を行い(ステップS20)、実行結果を要求元の処理要求部4141に通知する(ステップS21)。
処理要求部4141は、受け付けた実行結果を通信部4131に通知し、情報処理装置200への実行結果応答を要求する(ステップS22)。
通信部4131は、実行結果通知時に受け取った実行結果を、情報処理装置200に送信する(ステップS23)。このようにして、画像処理装置100は、情報処理装置200で動作確認中のSDKアプリケーション222b2に対して、実機による実際の実行結果を応答する。
情報処理装置200では、第2仮想マシン212上で動作するサブセットモジュール412により、画像処理装置100からの実行結果を受け付ける。
サブセットモジュール412は、画像処理装置100から送信された実行結果を、通信部4132により受信する。通信部4132は、受け付けた実行結果を仮想マシン判定部4122及び要求受付部4112を介して、SDKアプリケーション222b2に通知する(ステップS24,S25,S26)。
以上のように、情報処理装置200は、アプリケーションの動作環境である画像処理装置100と通信を行う通信インタフェース部を介して、開発中のアプリケーションから、画像処理装置100の機能に対し、動作要求を行い、画像処理装置100から、要求に応じた実際の動作結果を得る。
<まとめ>
以上のように、本実施形態に係る情報処理装置200によれば、アプリケーションの動作環境である画像処理装置100と通信を行うサブセットモジュール41を介して、開発中のSDKアプリケーション222b2から、画像処理装置100が有する動作モジュール30(開発アプリケーションの機能を実現するために利用する下位モジュール)に対し、動作要求を行う。その結果、情報処理装置200は、サブセットモジュール41を介して、画像処理装置100から、要求に応じた実際の動作結果を得る。このように、情報処理装置200は、開発アプリケーションを動作させた際に、開発アプリケーションで利用する画像処理装置100の機能を遠隔で動作させ、画像処理装置100をエミュレートする。
以上のように、本実施形態に係る情報処理装置200によれば、アプリケーションの動作環境である画像処理装置100と通信を行うサブセットモジュール41を介して、開発中のSDKアプリケーション222b2から、画像処理装置100が有する動作モジュール30(開発アプリケーションの機能を実現するために利用する下位モジュール)に対し、動作要求を行う。その結果、情報処理装置200は、サブセットモジュール41を介して、画像処理装置100から、要求に応じた実際の動作結果を得る。このように、情報処理装置200は、開発アプリケーションを動作させた際に、開発アプリケーションで利用する画像処理装置100の機能を遠隔で動作させ、画像処理装置100をエミュレートする。
これによって、本実施形態に係る情報処理装置200では、アプリケーション開発を行いながら、同時に実機による動作確認を行うことができる。その結果、ソフトウェアベンダでは、アプリケーション開発を効率良く行うことができる。
<変形例>
ここからは、本実施形態に係るエミュレーションシステム1の変形例について説明する。
図7は、本変形例に係るエミュレーションシステム1の構成例を示す図である。
図7に示すように、例えば、エミュレーションシステム1には、上記実施形態に示した画像処理装置100と情報処理装置200とが1台ずつのシステム構成の他に、複数台のシステム構成も考えられる。
ここからは、本実施形態に係るエミュレーションシステム1の変形例について説明する。
図7は、本変形例に係るエミュレーションシステム1の構成例を示す図である。
図7に示すように、例えば、エミュレーションシステム1には、上記実施形態に示した画像処理装置100と情報処理装置200とが1台ずつのシステム構成の他に、複数台のシステム構成も考えられる。
(A)には、エミュレーション環境である1台の情報処理装置200に対して、動作環境である画像処理装置100が、データ伝送路Nを介して、複数台接続されるシステム構成例が示されている。(A)に示すシステム構成では、次のようなアプリケーション開発が可能である。例えば、開発中のアプリケーションを、複数台の実機で動作確認することができる。また、1台の情報処理装置200において、画像処理装置100の機種ごとに複数のアプリケーションを開発し、各機種の実機で動作確認を行うこともできる。このように、(A)に示すシステム構成では、より効率的なアプリケーション開発が行える。
また、(A)に示すシステム構成の場合には、情報処理装置200において、実行要求先を切替制御する必要がある。切替制御方法には、次のような方法が挙げられる。例えば、情報処理装置200で動作するサブセットモジュール412により、実行要求先となる画像処理装置100を切り替える。情報処理装置200では、画像処理装置100のネットワーク識別情報に基づき、遠隔実行を要求している。そのため、情報処理装置200は、まず、ブロードキャストなどによるネットワーク検索を行う。続いて、情報処理装置200は、検索結果として得られた画像処理装置100のネットワーク識別情報(1又は複数の情報)を、サブセットモジュール412に設定保持する。その結果、情報処理装置200では、設定保持されたネットワーク識別情報に基づき、画像処理装置100を切り替え、実行条件を送信し、実行要求が行える。
また、検索結果としてMIB(Management Information Base)情報などを得る場合には、ネットワーク識別情報の他に、"機器名"や"機種名"などの機器情報も得ることができる。よって、情報処理装置200では、これらの機器情報も、ネットワーク識別情報と同じように、サブセットモジュール412に設定保持しておくことで、より細かい切替制御を行うことができる。例えば、情報処理装置200では、設定保持されたネットワーク識別情報及び機種識別情報(機種名)に基づき、機種に応じて画像処理装置100を切り替え、実行条件を送信し、機種ごとの実機に実行要求が行える。
(B)には、1台の画像処理装置100に対して、情報処理装置200が、データ伝送路Nを介して、複数台接続されるシステム構成例が示されている。(B)に示すシステム構成では、次のようなアプリケーション開発が可能である。例えば、複数の開発者により開発中の複数のアプリケーションを、1台の実機で動作確認することができる。このように、(B)に示すシステム構成では、開発アプリ動作確認環境(画像処理装置)の導入にかかるコストを軽減できる。
なお、図示しないが、エミュレーションシステム1には、複数の画像処理装置100と複数の情報処理装置200とがデータ伝送路Nを介して接続されるシステム構成も考えられる。
ここまで、上記実施形態の説明を行ってきたが、「エミュレーション機能」は、図を用いて説明を行った各処理手順を動作環境(プラットフォーム)にあったプログラミング言語でコード化したプログラムが、各装置の制御部(例えば「CPU」)により実行されることで実現される。
例えば、情報処理装置200の場合、上記プログラムは、コンピュータが読み取り可能な記録媒体203aに格納することができる。上記記録媒体203aには、例えば、フロッピー(登録商標)ディスク、CD(Compact Disk)、DVD(Digital Versatile Disk)、SDメモリカード(SD Memory Card)、及びUSB(Universal Serial Bus)メモリなどがある。
よって、上記プログラムは、記録媒体203aを読み取り可能なドライブ装置203を介して、情報処理装置200にインストールすることができる。また、情報処理装置200は、インタフェース装置207を備えていることから、電気通信回線を用いて上記プログラムをダウンロードし、インストールすることもできる。
最後に、上記実施形態に挙げた形状や構成に、その他の要素との組み合わせなど、ここで示した要件に、本発明が限定されるものではない。これらの点に関しては、本発明の主旨をそこなわない範囲で変更することが可能であり、その応用形態に応じて適切に定めることができる。
1 エミュレーションシステム
10 OS(1:画像処理装置側、2:情報処理装置側)
21 JavaVM
211 ヒープメモリ
22 Javaコンポーネント
221 Javaプラットフォーム
221a Javaモジュール群
221b SDK API
222 Javaアプリケーション
222a 標準アプリケーション(1:画像処理装置側)
222b SDKアプリケーション
30 動作モジュール(a:プリンタ、b:スキャナ、c:FAX)
41 サブセットモジュール
411 要求受付部
412 仮想マシン判定部
413 通信部
414 処理要求部
100 画像処理装置
200 情報処理装置
201 入力装置
202 表示装置
203 ドライブ装置(a:記録媒体)
204 RAM(揮発性の半導体メモリ)
205 ROM(不揮発性の半導体メモリ)
206 CPU(中央処理装置)
207 インタフェース装置(NIC:Network I/F Card)
208 HDD(不揮発性の記憶装置)
B バス
N データ伝送路
10 OS(1:画像処理装置側、2:情報処理装置側)
21 JavaVM
211 ヒープメモリ
22 Javaコンポーネント
221 Javaプラットフォーム
221a Javaモジュール群
221b SDK API
222 Javaアプリケーション
222a 標準アプリケーション(1:画像処理装置側)
222b SDKアプリケーション
30 動作モジュール(a:プリンタ、b:スキャナ、c:FAX)
41 サブセットモジュール
411 要求受付部
412 仮想マシン判定部
413 通信部
414 処理要求部
100 画像処理装置
200 情報処理装置
201 入力装置
202 表示装置
203 ドライブ装置(a:記録媒体)
204 RAM(揮発性の半導体メモリ)
205 ROM(不揮発性の半導体メモリ)
206 CPU(中央処理装置)
207 インタフェース装置(NIC:Network I/F Card)
208 HDD(不揮発性の記憶装置)
B バス
N データ伝送路
Claims (6)
- 機能を実現する動作モジュールの動作環境として仮想マシンを搭載する画像処理装置と同一の仮想マシンが実装され、前記動作モジュールを利用して機能を実現する前記画像処理装置のアプリケーションを開発する情報処理装置であって、
当該情報処理装置で実行された開発中のアプリケーションから、アプリケーション動作時に利用する前記動作モジュールの実行要求を受け付ける受付手段と、
前記受付手段により受け付けた実行要求に従って、前記画像処理装置に対し、前記動作モジュールの実行を要求する要求手段と、
前記要求手段により実行された前記動作モジュールの実行結果を、前記画像処理装置から受信する受信手段と、を有することを特徴とする情報処理装置。 - 装置間でデータ通信を行う前記画像処理装置が有する通信インタフェース部と同一の通信インタフェース部を有し、
前記通信インタフェース部は、
装置間でデータ通信を行う必要があるか否かを判定する判定手段を有し、
前記判定手段は、
前記通信インタフェース部が、当該情報処理装置で動作している場合に、前記画像処理装置とデータ通信を行う必要があると判定することを特徴とする請求項1に記載の情報処理装置。 - 前記要求手段は、
前記判定手段により、前記画像処理装置とデータ通信を行う必要があると判定された場合に、
前記画像処理装置に対して、アプリケーション動作時に利用する前記動作モジュールの実行条件を送信し、前記動作モジュールの実行を要求することを特徴とする請求項1又は2に記載の情報処理装置。 - 前記仮想マシンがJava(登録商標)VM(Java Virtual Machine)であり、
前記アプリケーションがJava(登録商標)アプリケーションであることを特徴とする請求項1ないし3のいずれか一項に記載の情報処理装置。 - 機能を実現する動作モジュールの動作環境として仮想マシンを搭載する画像処理装置と、前記画像処理装置と同一の仮想マシンが実装され、前記動作モジュールを利用して機能を実現する前記画像処理装置のアプリケーションを開発する情報処理装置とが、所定のデータ伝送路で接続されるエミュレーションシステムであって、
前記情報処理装置が、
前記情報処理装置で実行された開発中のアプリケーションから、アプリケーション動作時に利用する前記動作モジュールの実行要求を受け付ける受付手段と、
前記受付手段により受け付けた実行要求に従って、前記画像処理装置に対し、前記動作モジュールの実行を要求する要求手段と、
実行された前記動作モジュールの実行結果を、前記画像処理装置から受信する受信手段と、を有し、
前記画像処理装置が、
前記要求手段により実行された前記動作モジュールの実行結果を、前記情報処理装置に応答する応答手段を有することを特徴とするエミュレーションシステム。 - 機能を実現する動作モジュールの動作環境として仮想マシンを搭載する画像処理装置と同一の仮想マシンが実装され、前記動作モジュールを利用して機能を実現する前記画像処理装置のアプリケーションを開発する情報処理装置におけるエミュレーションプログラムであって、
コンピューターを、
当該情報処理装置で実行された開発中のアプリケーションから、アプリケーション動作時に利用する前記動作モジュールの実行要求を受け付ける受付手段と、
前記受付手段により受け付けた実行要求に従って、前記画像処理装置に対し、前記動作モジュールの実行を要求する要求手段と、
前記要求手段により実行された前記動作モジュールの実行結果を、前記画像処理装置から受信する受信手段として機能させるエミュレーションプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010043279A JP2011180771A (ja) | 2010-02-26 | 2010-02-26 | 情報処理装置、エミュレーションシステム、及びエミュレーションプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010043279A JP2011180771A (ja) | 2010-02-26 | 2010-02-26 | 情報処理装置、エミュレーションシステム、及びエミュレーションプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011180771A true JP2011180771A (ja) | 2011-09-15 |
Family
ID=44692219
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010043279A Pending JP2011180771A (ja) | 2010-02-26 | 2010-02-26 | 情報処理装置、エミュレーションシステム、及びエミュレーションプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011180771A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014134857A (ja) * | 2013-01-08 | 2014-07-24 | Konica Minolta Inc | プログラム試用支援装置 |
JP2014179002A (ja) * | 2013-03-15 | 2014-09-25 | Ricoh Co Ltd | 情報処理装置、情報処理システム、情報処理方法、情報処理プログラム及び記録媒体 |
JP2015230623A (ja) * | 2014-06-05 | 2015-12-21 | 株式会社リコー | 情報処理装置、情報処理システム、情報処理プログラム、および情報処理方法 |
US11474762B2 (en) * | 2018-10-11 | 2022-10-18 | Mimaki Engineering Co., Ltd. | Printing system and managing method for printing system |
-
2010
- 2010-02-26 JP JP2010043279A patent/JP2011180771A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014134857A (ja) * | 2013-01-08 | 2014-07-24 | Konica Minolta Inc | プログラム試用支援装置 |
JP2014179002A (ja) * | 2013-03-15 | 2014-09-25 | Ricoh Co Ltd | 情報処理装置、情報処理システム、情報処理方法、情報処理プログラム及び記録媒体 |
JP2015230623A (ja) * | 2014-06-05 | 2015-12-21 | 株式会社リコー | 情報処理装置、情報処理システム、情報処理プログラム、および情報処理方法 |
US11474762B2 (en) * | 2018-10-11 | 2022-10-18 | Mimaki Engineering Co., Ltd. | Printing system and managing method for printing system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101130370B1 (ko) | 공용 오퍼레이팅 시스템을 제공하기 위한 방법 및 시스템 | |
US20180039507A1 (en) | System and method for management of a virtual machine environment | |
US7146512B2 (en) | Method of activating management mode through a network for monitoring a hardware entity and transmitting the monitored information through the network | |
CA2534792C (en) | A system and method for transferring a computing environment between computers of dissimilar configurations | |
US7421620B2 (en) | Configuration proxy service for the extended firmware interface environment | |
US7543048B2 (en) | Methods and apparatus for enabling of a remote management agent independent of an operating system | |
US8429717B2 (en) | Method for activating virtual machine, apparatus for simulating computing device and supervising device | |
JP2011123842A (ja) | 画像形成装置、機能追加方法、及びプログラム | |
JP5365237B2 (ja) | エミュレーション装置及びエミュレーションシステム | |
US20210089345A1 (en) | Method and Apparatus for Virtual Machine Emulator Upgrading Virtualization Emulator | |
KR20150128256A (ko) | 실제 스마트기기의 디바이스에서 발생하는 이벤트에 따라 응용프로그램을 실행하는 가상 안드로이드 장치를 구비한 서버 시스템 | |
JP5321021B2 (ja) | 機器管理装置、機器管理システム、機器情報取得方法、機器情報取得プログラム、及びそのプログラムを記録した記録媒体 | |
JP2011180771A (ja) | 情報処理装置、エミュレーションシステム、及びエミュレーションプログラム | |
JP5720835B2 (ja) | 機器管理装置、機器管理システム、及び機器管理方法 | |
US9141321B1 (en) | Configurable printer server device | |
US20100162236A1 (en) | Using Stored State To Instantiate A Virtual Computer | |
KR100759816B1 (ko) | 임베디드 리눅스 커널 및 응용 프로그램의 통합 설정을위한 웹 기반의 개발환경 제공 시스템 및 방법 | |
JP2011107834A (ja) | 画像処理装置、仮想マシン間の動作モジュール実行制御方法、及び動作モジュール実行制御プログラム | |
US11347496B2 (en) | Driver update via sideband processor | |
JP2009177375A (ja) | 画像処理装置および画像処理装置への機能追加方法 | |
AU2021336308B2 (en) | Computer system communication via sideband processor | |
JP6397094B1 (ja) | ネットワーク・ブートの方法、コンピュータおよびコンピュータ・プログラム | |
KR20230064825A (ko) | 가상화 기술에 기반한 데이터 센터 장치 통합 관리 시스템 및 방법 | |
CN117389677A (zh) | 一种基于云计算技术的服务器以及云系统 | |
JP2006185387A (ja) | プログラム及びデータ処理装置 |