JP2010218469A - 情報処理装置、情報処理方法、プログラムおよび記録媒体 - Google Patents

情報処理装置、情報処理方法、プログラムおよび記録媒体 Download PDF

Info

Publication number
JP2010218469A
JP2010218469A JP2009067122A JP2009067122A JP2010218469A JP 2010218469 A JP2010218469 A JP 2010218469A JP 2009067122 A JP2009067122 A JP 2009067122A JP 2009067122 A JP2009067122 A JP 2009067122A JP 2010218469 A JP2010218469 A JP 2010218469A
Authority
JP
Japan
Prior art keywords
program
information processing
application
emulation
virtual machine
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
Application number
JP2009067122A
Other languages
English (en)
Inventor
Akimine Kan
暁峰 韓
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2009067122A priority Critical patent/JP2010218469A/ja
Publication of JP2010218469A publication Critical patent/JP2010218469A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】開発したプログラムの挙動を画像形成装置により近い挙動を実現することにより、複合機の開発作業を効率的に行うこと。
【解決手段】PCは、プログラムを解釈し、複合機の動作を実行する仮想マシン1(111)と、プログラムの命令に対する複合機の動作に相当する動作の処理であるエミュレーション処理を実行する仮想マシン2(112)と、エミュレーション処理を仮想マシン2(112)に実行させるエミュレータ130とを備えた。
【選択図】図1

Description

本発明は、画像形成装置で実行されるプログラムを開発するために使用される情報処理装置、情報処理方法、プログラムおよび記録媒体に関する。
近年では、プリンタ、コピー、ファクシミリ、スキャナなどの各装置の機能を1つの筐体内に収納した画像形成装置(以下、「複合機」という。)が知られている。この複合機は、1つの筐体内に表示部、印刷部および撮像部などを設けるとともに、プリンタ、コピーおよびファクシミリ装置にそれぞれ対応した3種類のソフトウェアを設け、これらのソフトウェアを切り替えることによって、当該装置をプリンタ、コピー、スキャナ又はファクシミリ装置として動作させるものである。
このような従来の複合機では、予め提供される機能が定められていたため、利用者が複合機に対して行う操作も大きな変更はなく、複合機の動作をカスタマイズする必要性はない。このため、従来の複合機にはカスタマイズ機能は搭載されていなかった。
ところで、このような従来の複合機では、プリンタ、コピー、スキャナおよびファクシミリ装置に対応するソフトウェアをそれぞれ別個に設けているため、各ソフトウェアの開発に多大の時間を要する。このため、出願人は、表示部、印刷部および撮像部などの画像形成処理で使用されるハードウェア資源を有し、プリンタ、コピー又はファクシミリなどの各ユーザサービスにそれぞれ固有の処理を行うアプリケーションを複数搭載し、これらのアプリケーションとハードウェア資源との間に介在して、ユーザサービスを提供する際に、アプリケーションの少なくとも2つが共通に必要とするハードウェア資源の管理、実行制御並びに画像形成処理を行う各種コントロールサービスからなるプラットホームを備えた画像形成装置(複合機)を発明した。なお、各種コントロールサービスが行う処理をシステム側の処理と呼ぶ。
このような新規な複合機では、アプリケーションと、ハードウェア資源にアクセスするような開発が難しい処理を行うコントロールサービスとを別個に設けているため、複合機の出荷後にユーザもしくは第三者であるサードベンダが画像形成処理などにかかるアプリケーションとして新規な外部アプリケーションを開発して複合機に搭載可能な構成となっている。
このため、新たに開発された外部アプリケーションの起動や実行中に、例えば、操作表示部における画面表示やタッチ操作等によって、予め提供されている機能とは異なる実行処理を行わせたい場合がある。このように、新規な複合機では、カスタマイズという、出荷後に外部アプリケーションを搭載することを想定していない従来の複合機では問題にならなかった新規な課題が生じてくる。
このようなカスタマイズを、外部アプリケーションの開発段階でソースコードを記述し、ソースコードをコンパイルおよびリンクすることによって行うことが考えられる例えば、外部アプリケーションの開発段階で、外部アプリケーション自体の処理の中に操作表示部のタッチ操作に伴う実行処理を開発する場合が多くなる。
この場合、操作表示部のタッチ操作に伴う実行処理の検証を逐次行いながら外部アプリケーション自体の開発を進めていくことがプログラム開発効率上好ましい。
しかしながら、タッチ操作に伴う実行処理に障害を検出するたびに、ソースコードの修正、再コンパイル、再リンクを行って、開発対象の複合機に再インストールし、動作検証を行わなければならないとすると、プログラム開発の効率が悪くなるという問題がある。
また、複合機のカスタマイズに限らず、複合機とは別のPC等の環境でのプログラムの作成と、複合機での動作検証とによる従来のプログラム開発は効率が悪いという問題がある。
上記問題を解決するために、画像形成装置で実行されるプログラムを解釈し、実行する仮想マシンと、当該プログラムの命令に対する画像形成装置の動作に相当する動作を前記情報処理装置に実行させるエミュレータを備える情報処理装置が特許文献1に開示されている。
しかしながら、複合機のプリンタ、コピー、ファクシミリ、スキャナなどの各装置の機能を実行するネイティブ実行部のエミュレーションが上記仮想マシンのリソースを使用することになるため、実際に複合機にインストールした時のプログラムの挙動をエミュレーションできない場合があり、複合機の開発作業を効率的に行うことができないという問題がある。
本発明は、上記に鑑みてなされたものであって、開発したプログラムの挙動を画像形成装置により近い挙動を実現することにより、複合機の開発作業を効率的に行うことができる情報処理装置、情報処理方法、プログラムおよび記録媒体を提供することを目的とする。
上記課題を解決するために、本発明にかかる情報処理装置は、画像形成装置で実行されるプログラムを開発するために使用される情報処理装置であって、プログラムを解釈し、前記画像形成装置の動作を実行する第1実行手段と、前記プログラムの命令に対する前記画像形成装置の動作に相当する動作の処理であるエミュレーション処理を実行する第2実行手段と、前記エミュレーション処理を前記第2実行手段に実行させるエミュレータと、を備えたことを特徴とする。
また、本発明にかかる情報処理方法は、画像形成装置で実行されるプログラムを開発するために使用される情報処理装置で実行される情報処理方法であって、第1実行手段が、プログラムを解釈し、前記画像形成装置の動作を実行する第1実行ステップと、第2実行手段が、前記プログラムの命令に対する前記画像形成装置の動作に相当する動作の処理であるエミュレーション処理を実行する第2実行ステップと、エミュレータが、前記エミュレーション処理を前記第2実行手段に実行させるエミュレーションステップと、を含むことを特徴とする。
また、本発明にかかる情報処理プログラムは、画像形成装置で実行されるプログラムを開発するために使用されるコンピュータを、プログラムを解釈し、前記画像形成装置の動作を実行する第1実行手段と、前記プログラムの命令に対する前記画像形成装置の動作に相当する動作の処理であるエミュレーション処理を実行する第2実行手段と、前記エミュレーション処理を前記第2実行手段に実行させるエミュレータとして機能させる。
本発明によれば、第1実行手段が、プログラムを解釈し、画像形成装置の動作を実行し、第2実行手段が、プログラムの命令に対する画像形成装置の動作に相当する動作の処理であるエミュレーション処理を実行し、エミュレータが、エミュレーション処理を第2実行手段に実行させることで、開発したプログラムの挙動を画像形成装置により近い挙動を実現することにより、複合機の開発作業を効率的に行うことができるという効果を奏する。
図1は、本実施の形態にかかるPCにおけるJava(登録商標)開発環境250と複合機におけるJava(登録商標)実行環境240を主とした機能的構成を示すブロック図である。 図2は、クラスライブラリ101,102の詳細を示す説明図である。 図3は、エミュレータ130によりPCに表示されるオペレーションパネル画面を示す図である。 図4−1は、アプリケーション部131の起動コマンドを示す説明図である。 図4−2は、アプリケーション命令エミュレーション部134の起動コマンドを示す説明図である。 図5−1は、アプリケーション部131の起動コマンドの一例を示す説明図である。 図5−2は、アプリケーション命令エミュレーション部134の起動コマンドの一例を示す説明図である。 図6は、本実施の形態の複合機200の構成を示すブロック図である。 図7は、Java(登録商標)アプリの実行処理の手順を示すフローチャートである。 図8は、本実施の形態にかかる複合機200のハードウェア構成を示すブロック図である。 図9は、Java(登録商標)開発環境の他の例を示すブロック図である。
以下に添付図面を参照して、この発明にかかる情報処理装置、情報処理方法、プログラムおよび記録媒体の最良な実施の形態を詳細に説明する。
本実施の形態は、複合機とPC(Personal Computer )などのクライアント端末とがインターネットに接続され、PC等のクライアント端末から複合機の操作表示部等のカスタマイズプログラムの入力およびデバッグ作業を行うことを可能としたものである。
本実施の形態では、アプリをPC(Personal Computer)等で開発して、開発したアプリを複合機上で実行する構成となっている。すなわち、Java(登録商標)アプリケーションをPC等で開発し、それを複合機にダウンロードしてJava(登録商標)実行環境240を用いて実行する。なお、このPCは、CPU、メモリ、ハードディスクなどを有する一般的なコンピュータである。
図1は、本実施の形態にかかるPCにおけるJava(登録商標)開発環境250と複合機におけるJava(登録商標)実行環境240の機能的構成を示すブロック図である。図1に示すように、複合機におけるJava(登録商標)実行環境240は、汎用OS221の下、共通サービス260(後述)上で動作する。複合機におけるJava(登録商標)実行環境240は、図1に示すように、クラスライブラリ171、仮想マシン181、アプリケーション管理部180、アプリケーション命令ネイティブ実行部191を備えている。ここで、図1において、アプリケーション部192は、Java(登録商標)アプリが実行された状態を示している。
クラスライブラリ171は、Java(登録商標)アプリが容易に複合機を操作するためのサービスを提供するために用いられるクラスライブラリである。本実施の形態におけるクラスライブラリ171は、例えば、操作パネルクラス、イベントクラス、複合機制御クラス、ネットワークトランザクションクラス、基本的なJava(登録商標)クラスライブラリ等から構成される。
なお、Java(登録商標)アプリ自身もクラスの集合であり、そのクラスがクラスライブラリのクラスを呼び出すことにより、アプリの処理が実行される。Java(登録商標)アプリに、それが使用するクラスライブラリのクラスの機能を全て含めることにより、クラスライブラリ171を搭載しない構成もあり得る。
Java(登録商標)のソースコードプログラムはコンパイルして中間コード形式のバイトコードにされ、複合機にロードされる。仮想マシン181はそのバイトコードを解釈・実行する。
アプリケーション管理部190は、Java(登録商標)アプリを管理する機能を有しており、例えば、Java(登録商標)アプリのリスト表示、起動や強制終了などのJava(登録商標)アプリ実行管理、Java(登録商標)アプリのロードやバージョンアップ、インストール済みのJava(登録商標)アプリの削除、アプリケーション登録のためのパスワード設定等を行う機能を有している。
アプリケーション命令ネイティブ実行部191は、仮想マシン181で実行されるJava(登録商標)コードが、C言語などの他のプログラミング言語で書かれたアプリケーションやライブラリと相互運用するための機能を有している。このアプリケーション命令ネイティブ実行部191の機構を用いて、アプリは共通サービス260の中のコントロールサービスのAPIにアクセスできる。
一方、PCのJava(登録商標)開発環境250は、OS160と、エミュレータ130と、アプリケーション管理部140と、仮想マシン1(111)と、仮想マシン2(112)と、クラスライブラリ101と、クラスライブラリ102と、Java(登録商標)コンパイラ150とを備えている。
アプリケーション管理部140は、Java(登録商標)の実行環境240のアプリケーション管理部190と同様に、Java(登録商標)アプリを管理する機能を有している。
図2は、クラスライブラリ101,102の詳細を示す説明図である。クラスライブラリ101は、Java(登録商標)の実行環境240のクラスライブラリ171と同様のクラスライブラリであり、操作パネルクラス、イベントクラス、複合機制御クラス、ネットワークトランザクションクラス、基本的なJava(登録商標)クラスライブラリ等から構成される。
クラスライブラリ102は、Java(登録商標)の実行環境240のクラスライブラリ171とは異なるクラスライブラリであり、エミュレータ130によるエミュレーション処理で用いるエミュレーション用のクラスを有している。
仮想マシン1(111)は、Java(登録商標)の実行環境240における仮想マシン181と同様の機能を有し、Java(登録商標)アプリのバイトコードを解釈、複合機の動作を実行する。
仮想マシン2(112)は、Java(登録商標)の実行環境240における仮想マシン181と異なる機能を有し、エミュレータ130の下、Java(登録商標)アプリのバイトコードの命令に対する複合機の動作に相当する動作をエミュレートするエミュレーション処理を実行する。
エミュレータ130は、Java(登録商標)アプリによる複合機の操作をエミュレートするものであり、エミュレーション処理を仮想マシン2(112)に実行させるアプリケーション命令エミュレーション部134を有している。ここで、図1におけるアプリケーション部131は、Java(登録商標)アプリが実行された状態を示している。
アプリケーション命令エミュレーション部134は、アプリケーション部131(Java(登録商標)アプリ)側からの命令を受信し、それに応じた動作を行うように記述したプログラムとして構成される。すなわち、複合機のコアの部分をエミュレーションする処理は、アプリケーション部131からアプリケーション命令エミュレーション部134に実行依頼され、アプリケーション命令エミュレーション部134が仮想マシン2(112)に実行させる。
例えば、複合機のオペレーションパネルの表示部への表示命令に対しては、仮想マシン2(112)およびアプリケーション命令エミュレーション部134が複合機上に表示する画面と同様の画面をPCのディスプレイ上に表示する。ただし、開発環境であるPCには複合機におけるエンジン(スキャナ、プリンタなど)がないので、例えば、Java(登録商標)アプリからのプリント命令に対しては、PCの画面上にプリントを行う画像を表示したり、PC自身に接続されているデフォルトのプリンタに印刷を行う。また、ユーザがコピー操作をPCのエミュレータ画面上でした場合には、例えば、ユーザにコピー対象となるファイルをローカルファイルシステムから選ぶように通知し、コピーのあて先を尋ねるダイアログボックスを表示し、選択されたファイルをその指定された宛先にコピーする。
このように、アプリケーション命令エミュレーション部134は、複合機に搭載されるJava(登録商標)アプリを実行したアプリケーション部131では存在しない処理、例えば、エミュレータ130のハードキー、メニューバーとスクリーンなどを構築する処理の実行依頼をアプリケーション部131から受信し、当該処理を仮想マシン2(112)に実行させる。これによりアプリケーション部131は、複合機に載せる機能と同等の機能の処理しか実行しないことになり、エミュレーション処理によって仮想マシン1(111)のリソースを使用せず、Java(登録商標)開発環境250上で最大限に複合機上のアプリケーション部192を実現できるようになっている。
このようなエミュレータ130のハードキー、メニューバーとスクリーンなどを構築する処理は、アプリケーション命令エミュレーション部134が起動するときに実行される。図3は、エミュレータ130によりPCに表示されるオペレーションパネル画面を示す。この画面に表示されるボタンなどの要素は、実際の複合機のものと同等である。
図1に戻り、Java(登録商標)コンパイラ150は、Java(登録商標)ソースコードからバイトコードを生成するものである。
このJava(登録商標)開発環境250で開発されたJava(登録商標)アプリは、ICカード等の記録媒体を介して複合機のJava(登録商標)実行環境240にロードでき、また、ネットワークを介してロードすることもできる。
次に、アプリケーション部131とアプリケーション命令エミュレーション部134の起動方法について説明する。アプリケーション部131は、図4−1に示す起動コマンドで起動し、アプリケーション命令エミュレーション部134は図4−2に示す起動コマンドで起動する。
すなわち、アプリケーション部131では、図4−1に示すように、仮想マシン1起動ファイルが仮想マシン1(111)を起動し、アプリケーション部131の実行用のJarファイルであるアプリケーションJarファイルを仮想マシン1(111)の専有領域にロードし、アプリケーション起動クラスを起動する流れとなっている。ここで、アプリケーションJarファイルは、Java(登録商標)コンパイラでコンパイルしたクラスファイルをまとめたJarファイルであり、アプリケーション部131の実行に必要となるクラスが含まれている。アプリケーション起動クラスは、メインメソッドが含まれるクラスであり、上述した操作パネルクラス、イベントクラス、複合機制御クラス等である。
また、アプリケーション命令エミュレーション部134では、図4−2に示すように、仮想マシン2起動ファイルが仮想マシン2(112)を起動し、エミュレーション用のJarファイルであるエミュレーション用Jarファイルを仮想マシン2(112)の専有領域にロードし、エミュレーション用起動クラスを起動する流れとなっている。ここで、エミュレーション用Jarファイルは、Java(登録商標)コンパイラでコンパイルしたクラスファイルをまとめたJarファイルであり、エミュレーション処理の実行に必要となるクラスが含まれている。エミュレーション用起動クラスは、メインメソッドが含まれるクラスであり、上述したエミュレーション用クラス等である。
図5−1は、アプリケーション部131の起動コマンドの一例を示し、図5−2は、アプリケーション命令エミュレーション部134の起動コマンドの一例を示している。
次に、本実施の形態にかかる複合機200の全体の機能的構成について説明する。図6は、本実施の形態の複合機200の構成を示すブロック図である。図6に示すように、複合機200は、白黒ラインプリンタ(B&W LP)201と、カラーラインプリンタ(Color LP)202と、ハードディスク装置(HDD)203と、スキャナ、ファクシミリ、メモリ、ネットワークインタフェースなどのハードウェアリソース204を有するとともに、プラットホーム220と、アプリケーション230と、複合機初期化部229と、プログラム起動部230と、各種コントロールサービスとを主に備えている。
プラットホーム220は、アプリケーションからの処理要求を解釈してハードウェア資源の獲得要求を発生させるコントロールサービスと、一又は複数のハードウェア資源の管理を行い、コントロールサービスからの獲得要求を調停するシステムリソースマネージャ(SRM)123と、汎用OS121とを有する。ここで、各種コントロールサービスとSRM223とが共通サービス260を構成する。
コントロールサービスは、複数のサービスモジュールから形成され、SCS(システムコントロールサービス)222と、ECS(エンジンコントロールサービス)224と、MCS(メモリコントロールサービス)225と、OCS(オペレーションパネルコントロールサービス)226と、FCS(ファックスコントロールサービス)227と、NCS(ネットワークコントロールサービス)228とから構成される。また、プログラミングサービス232も、コントロールサービス層に含まれている。なお、このプラットホーム220は、あらかじめ定義された関数によりアプリケーション230から処理要求を受信可能とするアプリケーションプログラムインタフェース(API)を有する。
汎用OS221は、UNIX(登録商標)などの汎用オペレーティングシステムであり、プラットホーム220並びにアプリケーション230の各ソフトウェアをそれぞれプロセスとして並列実行する。
SRM223のプロセスは、SCS222とともにシステムの制御およびリソースの管理を行うものである。SRM223のプロセスは、スキャナ部やプリンタ部などのエンジン、メモリ、HDDファイル、ホストI/O(セントロI/F、ネットワークI/F 、IEEE1394 I /F、RS232C I/Fなど)のハードウェア資源を利用する上位層からの要求にしたがって調停を行い、実行制御する。
具体的には、このSRM223は、要求されたハードウェア資源が利用可能であるか(他の要求により利用されていないかどうか)を判断し、利用可能であれば要求されたハードウェア資源が利用可能である旨を上位層に伝える。また、SRM223は、上位層からの要求に対してハードウェア資源の利用スケジューリングを行い、要求内容(例えば、プリンタエンジンにより紙搬送と作像動作、メモリ確保、ファイル生成など)を直接実施している。
SCS222のプロセスは、アプリ管理、操作部制御、システム画面表示、LED表示、リソース管理、割り込みアプリ制御などを行う。
ECS224のプロセスは、白黒ラインプリンタ(B&W LP)201、カラーラインプリンタ(Color LP)202、スキャナ、ファクシミリなどからなるハードウェアリソース203のエンジンの制御を行う。
MCS225のプロセスは、画像メモリの取得および解放、ハードディスク装置(HDD)の利用、画像データの圧縮および伸張などを行う。
FCS227のプロセスは、システムコントローラの各アプリ層からPSTN/ISDN 網を利用したファクシミリ送受信、BKM (バックアップSRAM)で管理されている各種ファクシミリデータの登録/引用、ファクシミリ読みとり、ファクシミリ受信印刷、融合送受信を行うためのAPIを提供する。
NCS228のプロセスは、ネットワークI/O を必要とするアプリケーションに対して共通に利用できるサービスを提供するためのプロセスであり、ネットワーク側から各プロトコルによって受信したデータを各アプリケーションに振り分けたり、アプリケーションからデータをネットワーク側に送信する際の仲介を行う。具体的には、ftpd、lpd、snmpd、telnetd、smtpdなどのサーバデーモンや、同プロトコルのクライアント機能などを有している。
OCS226のプロセスは、オペレータ(ユーザ)と本体制御間の情報伝達手段となるオペレーションパネル(操作パネル)の制御を行う。OCS226は、オペレーションパネルからキー押下(又はタッチ操作)をキーイベントとして取得し、取得したキーに対応したキーイベント関数をSCS222に送信するOCSプロセスの部分と、アプリケーション230又はコントロールサービスからの要求によりオペレーションパネルに各種画面を描画出力する描画関数やその他オペレーションパネルに対する制御を行う関数などがあらかじめ登録されたOCSライブラリの部分とから構成される。このOCSライブラリは、アプリケーション230およびコントロールサービスの各モジュールにリンクされて実装されている。なお、OCS226のすべてをプロセスとして動作させるように構成しても良く、あるいはOCS226のすべてをOCSライブラリとして構成しても良い。
アプリケーション230は、ページ記述言語(PDL)、PCLおよびポストスクリプト(PS)を有するプリンタ用のアプリケーションであるプリンタアプリ211と、コピー用アプリケーションであるコピーアプリ212と、ファクシミリ用アプリケーションであるファックスアプリ213と、スキャナ用アプリケーションであるスキャナアプリ214と、ネットワークファイル用アプリケーションであるネットファイルアプリ215と、工程検査用アプリケーションである工程検査アプリ216 とを有している。
アプリケーション230の各プロセス、コントロールサービスの各プロセスは、関数呼び出しとその戻り値送信およびメッセージの送受信によってプロセス間通信を行いながら、コピー、プリンタ、スキャナ、ファクシミリなどの画像形成処理にかかるユーザサービスを実現している。
このように、本実施の形態にかかる複合機200には、複数のアプリケーション230および複数のコントロールサービスが存在し、いずれもプロセスとして動作している。そして、これらの各プロセス内部には、一又は複数のスレッドが生成されて、スレッド単位の並列実行が行われる。そして、コントロールサービスがアプリケーション230に対し共通サービスを提供しており、このため、これらの多数のプロセスが並列動作、およびスレッドの並列動作を行って互いにプロセス間通信を行って協調動作をしながら、コピー、プリンタ、スキャナ、ファクシミリなどの画像形成処理にかかるユーザサービスを提供するようになっている。
また、複合機200のアプリケーション層には、上述したJava(登録商標)実行環境240が設けられ、複合機200の顧客、サードベンダなどの第三者がコントロールサービス層の上のアプリケーション層にJava(登録商標)アプリ260等の外部アプリを開発して搭載して実行可能となっている。
なお、本実施の形態にかかる複合機200では、複数のアプリケーション230のプロセスと複数のコントロールサービスのプロセスとが動作しているが、アプリケーション230とコントロールサービスのプロセスがそれぞれ単一の構成とすることも可能である。また、各アプリケーション230は、アプリケーションごとに追加又は削除することができる。
また、複合機200はインストーラ(不図示)を含む。インストーラは、第三者が開発したJava(登録商標)アプリ260等の外部アプリを、HDD203にインストールするものである。本実施の形態にかかる複合機200では、フラッシュカードなどのICカードの記憶媒体にJava(登録商標)アプリ260を格納し、インストーラによってJava(登録商標)アプリ260をHDD203にインストールし、プログラム起動部230によって、HDD203からJava(登録商標)アプリ250を起動してアプリケーション層で動作させるようになっている。一方、プリンタアプリ211、コピーアプリ212、ファックスアプリ213、スキャナアプリ214、ネットファイルアプリ215、工程検査アプリ216などの複合機200の出荷時に提供されるアプリケーション230、各コントロールサービスおよびプログラム起動部230、フラッシュメモリに出荷時に組み込まれており、複合機200の起動時(電源投入時)に複合機初期化部229によって起動されるようになっている。
なお、WebサーバにJava(登録商標)開発環境250で開発したJava(登録商標)アプリ260を格納しておき、Java(登録商標)実行環境240からWebサーバにアクセスしてJava(登録商標)アプリ260をロードするように構成できる。また、Webサーバの代わりにFTPサーバを使用することもできる。
次に、Java(登録商標)開発環境におけるJava(登録商標)アプリの開発は以下のように行われる。まず、Java(登録商標)のソースコードをJava(登録商標)ファイルとして作成し、これをJava(登録商標)コンパイラ150でコンパイルし、クラスファイルとする。そして、複数のクラスをまとめてJarファイルとする。なお、Jarファイルにはmainルーチンを持つクラスを示すファイルを含めておくことが好ましい。
本実施の形態では、このようにして作成したJava(登録商標)アプリを、エミュレータ130を用いることにより、ターゲットである複合機を用いずにPC上でJava(登録商標)アプリのデバッグをすることが可能である。これは、Java(登録商標)では、仮想マシンを使用する構成となっているため、実行環境をエミュレートすることが比較的容易であることによる。エミュレータを用いた開発が完了したら、Java(登録商標)アプリ(バイトコード)をネットワーク又はICカードを介して複合機にロードすることにより、複合機を用いた評価を行うことが可能である。
次に、以上のように構成された本実施の形態のPCのJava(登録商標)開発環境250によるJava(登録商標)アプリの実行処理について説明する。図7は、Java(登録商標)アプリの実行処理の手順を示すフローチャートである。
図4−1、図5−1の例で示す起動コマンドにより仮想マシン1(111)が起動される(ステップS11)。これにより、アプリケーション部131が実行されることになる。一方、図4−2、図5−2の例で示す起動コマンドにより仮想マシン2(112)が起動される(ステップS11)。これにより、アプリケーション命令エミュレーション部134が実行されることになる。
仮想マシン1(111)は、Java(登録商標)アプリのバイトコードの命令を逐次読み出して(ステップS12)、読み出した命令を解釈する(ステップS13)。
そして、仮想マシン1(111)は、解釈した命令がエミュレーション処理が必要ないか否かを判断する(ステップS14)。そして、解釈した命令がエミュレーション処理が必要な場合には(ステップS14:Yes)、アプリケーション命令エミュレーション部134へその命令の実行依頼を送出する(ステップS15)。
アプリケーション命令エミュレーション部134では、起動後はアプリケーション部131からの命令実行依頼の受信待ちとなっており(ステップS22)、アプリケーション部131からの命令実行依頼を受信すると(ステップS22:Yes)、当該命令のPC上でエミュレーション処理を仮想マシン2(112)により実行する(ステップS23)。
一方、ステップS14において、解釈した命令がエミュレーション処理が必要ない場合には(ステップS14:No)、仮想マシン1(111)はその命令を実行する(ステップS16)。
そして、以上のステップS12からS16までの処理を命令が終了するまで繰り返す(ステップS17)。
このように本実施の形態では、Java(登録商標)開発環境250において、複合機の仮想マシン181と同じ機能を有する仮想マシン1(111)と、複合機の仮想マシン181と異なる機能を有する仮想マシン2(112)とを設け、エミュレータ130によって複合機に搭載されるJava(登録商標)アプリでは存在しない処理を仮想マシン2(112)に実行させているので、エミュレーション処理によって仮想マシン1(111)のリソースを使用せず、Java(登録商標)開発環境250上で最大限に複合機上のアプリケーション部192を実現できる。このため、開発したJava(登録商標)アプリの挙動を複合機200により近い挙動を実現することにより、複合機の開発作業を効率的に行うことができる。
本実施の形態のPCは、CPUなどの制御装置と、ROM(Read Only Memory)やRAMなどの記憶装置と、HDD、CDドライブ装置などの外部記憶装置と、ディスプレイ装置などの表示装置と、キーボードやマウスなどの入力装置を備えており、通常のコンピュータを利用したハードウェア構成となっている。
本実施形態のPCで実行される仮想マシン1(111)、仮想マシン2(112)、クラスライブラリ101,102、エミュレータ130、アプリケーション管理部140からなる情報処理プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
また、本実施の形態のPCで実行される情報処理プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、本実施形態の〜装置で実行される〜プログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
また、本実施の形態のPCで実行される情報処理プログラムを、ROM等に予め組み込んで提供するように構成してもよい。
本実施の形態のPCで実行される情報処理プログラムは、上述した各部(仮想マシン1(111)、仮想マシン2(112)、クラスライブラリ101,102、エミュレータ130、アプリケーション管理部140)を含むモジュール構成となっており、実際のハードウェアとしてはCPU(プロセッサ)が上記記憶媒体から情報処理プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、仮想マシン1(111)、仮想マシン2(112)、クラスライブラリ101,102、エミュレータ130、アプリケーション管理部140が主記憶装置上に生成されるようになっている。
図8は、本実施の形態にかかる複合機200のハードウェア構成を示すブロック図である。本図に示すように、この複合機200は、コントローラ10とエンジン部(Engine)60とをPCI(Peripheral Component Interface)バスで接続した構成となる。コントローラ10は、複合機200全体の制御と描画、通信、図示しない操作部からの入力を制御するコントローラである。エンジン部60は、PCIバスに接続可能なプリンタエンジンなどであり、たとえば白黒プロッタ、1ドラムカラープロッタ、4ドラムカラープロッタ、スキャナまたはファックスユニットなどである。なお、このエンジン部60には、プロッタなどのいわゆるエンジン部分に加えて、誤差拡散やガンマ変換などの画像処理部分が含まれる。
コントローラ10は、CPU11と、ノースブリッジ(NB)13と、システムメモリ(MEM−P)12と、サウスブリッジ(SB)14と、ローカルメモリ(MEM−C)17と、ASIC(Application Specific Integrated Circuit)16と、ハードディスクドライブ(HDD)18とを有し、ノースブリッジ(NB)13とASIC16との間をAGP(Accelerated Graphics Port)バス15で接続した構成となる。また、MEM−P12は、ROM(Read Only Memory)12aと、RAM(Random Access Memory)12bと、をさらに有する。
CPU11は、複合機200の全体制御をおこなうものであり、NB13、MEM−P12およびSB14からなるチップセットを有し、このチップセットを介して他の機器と接続される。
NB13は、CPU11とMEM−P12、SB14、AGP15とを接続するためのブリッジであり、MEM−P12に対する読み書きなどを制御するメモリコントローラと、PCIマスタおよびAGPターゲットとを有する。
MEM−P12は、プログラムやデータの格納用メモリ、プログラムやデータの展開用メモリ、プリンタの描画用メモリなどとして用いるシステムメモリであり、ROM12aとRAM12bとからなる。ROM12aは、プログラムやデータの格納用メモリとして用いる読み出し専用のメモリであり、RAM12bは、プログラムやデータの展開用メモリ、プリンタの描画用メモリなどとして用いる書き込みおよび読み出し可能なメモリである。
SB14は、NB13とPCIデバイス、周辺デバイスとを接続するためのブリッジである。このSB14は、PCIバスを介してNB13と接続されており、このPCIバスには、ネットワークインターフェース(I/F)部なども接続される。
ASIC16は、画像処理用のハードウェア要素を有する画像処理用途向けのIC(Integrated Circuit)であり、AGP15、PCIバス、HDD18およびMEM−C17をそれぞれ接続するブリッジの役割を有する。このASIC16は、PCIターゲットおよびAGPマスタと、ASIC16の中核をなすアービタ(ARB)と、MEM−C17を制御するメモリコントローラと、ハードウェアロジックなどにより画像データの回転などをおこなう複数のDMAC(Direct Memory Access Controller)と、エンジン部60との間でPCIバスを介したデータ転送をおこなうPCIユニットとからなる。このASIC16には、PCIバスを介してFCU(Facsimile Control Unit)30、USB(Universal Serial Bus)40、IEEE1394(the Institute of Electrical and Electronics Engineers 1394)インターフェース50が接続される。操作表示部20はASIC16に直接接続されている。
MEM−C17は、コピー用画像バッファ、符号バッファとして用いるローカルメモリであり、HDD(Hard Disk Drive)18は、画像データの蓄積、プログラムの蓄積、フォントデータの蓄積、フォームの蓄積を行うためのストレージである。
AGP15は、グラフィック処理を高速化するために提案されたグラフィックスアクセラレーターカード用のバスインターフェースであり、MEM−P12に高スループットで直接アクセスすることにより、グラフィックスアクセラレーターカードを高速にするものである。
なお、本実施の形態のエミュレータ130は、図1に示すように仮想マシン1(111),仮想マシン2(112)とクラスライブラリ101,102とは別のプラグラムとして実装したが、図9に示すように、クラスライブラリ801の中のアプリケーションクラス831として実装し、クラスライブラリ802の中のエミュレータクラス832として実装することもできる。
また、上記実施の形態では、本発明の画像形成装置を、コピー機能、プリンタ機能、スキャナ機能およびファクシミリ機能のうち少なくとも2つの機能を有する複合機に適用した例を挙げて説明するが、複写機、プリンタ、スキャナ装置、ファクシミリ装置等の画像形成装置であればいずれにも適用することができる。
101,102,171,801,802 クラスライブラリ
181 仮想マシン
111 仮想マシン1
112 仮想マシン2
140,190 アプリケーション管理部
130 エミュレータ
131,192 アプリケーション部
134 アプリケーション命令エミュレーション部
150 Java(登録商標)コンパイラ
191 アプリケーション命令ネイティブ実行部
200 複合機
201 白黒ラインプリンタ
202 カラーラインプリンタ
203 ハードディスク装置(HDD)
204 ハードウェアリソース
211 プリンタアプリ
212 コピーアプリ
213 ファックスアプリ
214 スキャナアプリ
215 ネットファイルアプリ
216 工程検査アプリ
220 プラットホーム
221 汎用OS
222 SCS
223 SRM
224 ECS
225 MCS
226 OCS
227 FCS
228 NCS
229 複合機初期化部
230 アプリケーション
231 プログラム起動部
232 プログラミングサービス
240 Java(登録商標)実行環境
250 Java(登録商標)開発環境
260 共通サービス
280 Java(登録商標)アプリ
特開2004−185595号公報

Claims (16)

  1. 画像形成装置で実行されるプログラムを開発するために使用される情報処理装置であって、
    プログラムを解釈し、前記画像形成装置の動作を実行する第1実行手段と、
    前記プログラムの命令に対する前記画像形成装置の動作に相当する動作の処理であるエミュレーション処理を実行する第2実行手段と、
    前記エミュレーション処理を前記第2実行手段に実行させるエミュレータと、
    を備えたことを特徴とする情報処理装置。
  2. 前記第1実行手段は、前記画像形成装置が備える仮想マシンと同等の機能を有する第1仮想マシンであることを特徴とする請求項1に記載の情報処理装置。
  3. 前記第2実行手段は、前記画像形成装置が備える前記仮想マシンと異なる第2仮想マシンであることを特徴とする請求項2に記載の情報処理装置。
  4. 前記エミュレータは、
    前記プログラムとして実行されるアプリケーション部と、
    前記エミュレーション処理を前記第2実行手段に実行させるエミュレーション部と
    を備えたことを特徴とする請求項1〜3のいずれか一つに記載の情報処理装置。
  5. 前記アプリケーション部は、前記プログラムの命令が前記エミュレーション処理を必要か否かを判断し、必要と判断した場合に前記プログラムの命令の実行依頼を前記エミュレーション部に送出し、
    前記エミュレーション部は、前記実行依頼のあった前記プログラムの命令に対する前記エミュレーション処理を前記第2実行手段に実行させることを特徴とする請求項4に記載の情報処理装置。
  6. 前記プログラムのソースコードを、前記第1仮想マシンおよび前記第2仮想マシンが実行可能なコードに変換するコンパイラを更に備えた請求項1〜3のいずれか一つに記載の情報処理装置。
  7. 前記プログラムはJava(登録商標)プログラムであり、当該Java(登録商標)プログラムが参照するクラスライブラリを更に備えたことを特徴とする請求項4に記載の情報処理装置。
  8. 画像形成装置で実行されるプログラムを開発するために使用される情報処理装置で実行される情報処理方法であって、
    第1実行手段が、プログラムを解釈し、前記画像形成装置の動作を実行する第1実行ステップと、
    第2実行手段が、前記プログラムの命令に対する前記画像形成装置の動作に相当する動作の処理であるエミュレーション処理を実行する第2実行ステップと、
    エミュレータが、前記エミュレーション処理を前記第2実行手段に実行させるエミュレーションステップと、
    を含むことを特徴とする情報処理方法。
  9. 前記第1実行手段は、前記画像形成装置が備える仮想マシンと同等の機能を有する第1仮想マシンであることを特徴とする請求項8に記載の情報処理方法。
  10. 前記第2実行手段は、前記画像形成装置が備える前記仮想マシンと異なる第2仮想マシンであることを特徴とする請求項9に記載の情報処理装置。
  11. 前記エミュレーションステップは、前記プログラムとして実行されるステップと、
    前記エミュレーション処理を前記第2実行手段に実行させるステップと、
    を備えたことを特徴とする請求項8〜10のいずれか一つに記載の情報処理方法。
  12. 前記アプリケーションステップは、前記プログラムの命令が前記エミュレーション処理を必要か否かを判断し、必要と判断した場合に前記プログラムの命令の実行依頼を前記エミュレーション部に送出し、
    前記エミュレーションステップは、前記実行依頼のあった前記プログラムの命令に対する前記エミュレーション処理を前記第2実行手段に実行させることを特徴とする請求項11に記載の情報処理方法。
  13. 前記プログラムのソースコードを、前記第1仮想マシンおよび前記第2仮想マシンが実行可能なコードに変換するステップを更に備えた請求項8〜10のいずれか一つに記載の情報処理方法。
  14. 前記プログラムはJava(登録商標)プログラムであり、当該Java(登録商標)プログラムが参照するクラスライブラリを更に備えたことを特徴とする請求項11に記載の情報処理方法。
  15. 画像形成装置で実行されるプログラムを開発するために使用されるコンピュータを、
    プログラムを解釈し、前記画像形成装置の動作を実行する第1実行手段と、
    前記プログラムの命令に対する前記画像形成装置の動作に相当する動作の処理であるエミュレーション処理を実行する第2実行手段と、
    前記エミュレーション処理を前記第2実行手段に実行させるエミュレータと、
    して機能させるための情報処理プログラム。
  16. 前記情報処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
JP2009067122A 2009-03-18 2009-03-18 情報処理装置、情報処理方法、プログラムおよび記録媒体 Pending JP2010218469A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009067122A JP2010218469A (ja) 2009-03-18 2009-03-18 情報処理装置、情報処理方法、プログラムおよび記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009067122A JP2010218469A (ja) 2009-03-18 2009-03-18 情報処理装置、情報処理方法、プログラムおよび記録媒体

Publications (1)

Publication Number Publication Date
JP2010218469A true JP2010218469A (ja) 2010-09-30

Family

ID=42977201

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009067122A Pending JP2010218469A (ja) 2009-03-18 2009-03-18 情報処理装置、情報処理方法、プログラムおよび記録媒体

Country Status (1)

Country Link
JP (1) JP2010218469A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014179002A (ja) * 2013-03-15 2014-09-25 Ricoh Co Ltd 情報処理装置、情報処理システム、情報処理方法、情報処理プログラム及び記録媒体
US9626282B2 (en) 2014-09-17 2017-04-18 Ricoh Company, Ltd. Data processing apparatus and data processing method

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004185595A (ja) * 2002-07-26 2004-07-02 Ricoh Co Ltd 情報処理装置およびそのプログラム
JP2008217574A (ja) * 2007-03-06 2008-09-18 Ricoh Co Ltd 開発プログラム、記録媒体、開発装置および開発方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004185595A (ja) * 2002-07-26 2004-07-02 Ricoh Co Ltd 情報処理装置およびそのプログラム
JP2008217574A (ja) * 2007-03-06 2008-09-18 Ricoh Co Ltd 開発プログラム、記録媒体、開発装置および開発方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014179002A (ja) * 2013-03-15 2014-09-25 Ricoh Co Ltd 情報処理装置、情報処理システム、情報処理方法、情報処理プログラム及び記録媒体
US9626282B2 (en) 2014-09-17 2017-04-18 Ricoh Company, Ltd. Data processing apparatus and data processing method

Similar Documents

Publication Publication Date Title
US7554685B2 (en) Image forming apparatus, information processing apparatus, program execution method and program producing method
US7533381B2 (en) Image forming apparatus and method for operating image forming apparatus by using remote application
JP5293344B2 (ja) 画像処理装置、ソフトウェア配信システム、インストール処理方法およびプログラム
US8094330B2 (en) Image forming apparatus that can launch external applications selectively after shipment of the apparatus
US8817279B2 (en) Image forming apparatus, method for controlling the image forming apparatus, and storage medium
US11140291B2 (en) Information processing apparatus, control method thereof, and storage medium
JP4344203B2 (ja) 画像形成装置および情報表示方法
JP2011170465A (ja) ソフトウェア配信システム、ソフトウェア配信方法およびプログラム
JP2004185595A (ja) 情報処理装置およびそのプログラム
JP2004118237A (ja) 画像形成装置およびアプリケーションインストール方法
JP4198551B2 (ja) 画像形成装置およびプログラム実行方法
JP4394740B2 (ja) 画像形成装置、方法、及びプログラム
JP4512565B2 (ja) 画像形成装置およびアプリケーションインストール方法
JP2004185593A (ja) 画像形成装置およびアプリケーション実行方法
JP4128506B2 (ja) 画像形成装置およびアプリケーション情報取得方法
JP2010218469A (ja) 情報処理装置、情報処理方法、プログラムおよび記録媒体
JP4676977B2 (ja) 画像形成装置、アプリケーション情報取得方法、及びプログラム
JP4542180B2 (ja) 画像形成装置、プログラム、及び記録媒体
JP4133085B2 (ja) 画像形成装置およびカスタマイズプログラム試験方法
JP2009194862A (ja) 情報取得方法、画像形成装置、および画像形成システム
JP2006271005A (ja) 画像形成装置およびアプリケーションインストール方法
US20210042131A1 (en) Information processing apparatus, method of controlling the same, and storage medium
US20230036834A1 (en) Information processing system, apparatus, and storage medium having combinational and non-combinational applications
JP4080739B2 (ja) 画像形成装置用アプリケーション生成方法およびその方法をコンピュータに実行させるプログラム
US11811994B2 (en) Information processing system and apparatus to manage combined application

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120228

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120621

A977 Report on retrieval

Effective date: 20130624

Free format text: JAPANESE INTERMEDIATE CODE: A971007

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130702

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130902

A02 Decision of refusal

Effective date: 20140311

Free format text: JAPANESE INTERMEDIATE CODE: A02