(57)【要約】【課題】エミュレート装置の開発の手間をより低減する。【解決手段】エミュレート装置２０では、仮想印刷指令ＰＣ４０から取得した指令側形式の指令を解析部５４が第１機種リソース情報３９に基づいて解析し、解析結果に適した所定の実行側形式の指令に変換してコア部５２へ出力する。これを受けたコア部５２は、実行側形式の指令に基づいて仮想プリンター５０の処理を仮想的に実行し、この実行した処理に関する情報を実行側形式の応答として出力する。取得した実行側形式の応答を第１機種リソース情報３９に基づいて解析し、解析結果に適した指令側形式の応答に変換して仮想印刷指令ＰＣ４０側へ出力する。改変しないよう予め定めた実行側形式のコマンドをコア部５２が理解可能であり、特定機種について個別に設定された第１機種リソース情報３９を用いて実行側形式の指令と指令側形式の指令との間で適した形式に解析部５４が変換する。【選択図】図２
2011243039.tif 000002
【特許請求の範囲】
【請求項１】
処理を指令する処理指令装置から出力された該指令を取得して処理を実行する、１以上の機種のうちの特定機種の処理実行装置の動作をエミュレート可能なエミュレート装置であって、
所定の実行側形式の指令を理解可能であり該実行側形式の指令を取得して前記処理実行装置の処理を仮想的に実行し、該実行した処理に関する情報を所定の実行側形式の応答として出力可能なエミュレート実行手段と、
前記特定機種の処理実行装置について個別に設定され前記処理指令装置が指令する指令側形式の指令内容を格納したリソース情報を記憶する記憶手段と、
前記処理指令装置に規定されている指令側形式の指令を前記処理指令装置側から取得すると前記特定機種の処理実行装置に対応しているリソース情報を前記記憶手段から読み出し該取得した指令側形式の指令を該リソース情報に基づいて解析し該解析した結果に適した前記実行側形式の指令に変換して前記エミュレート実行手段へ出力し、前記エミュレート実行手段から前記実行側形式の応答を取得すると前記リソース情報を前記記憶手段から読み出し該取得した実行側形式の応答を該リソース情報に基づいて解析し該解析した結果に適した前記処理指令装置に規定されている指令側形式の応答に変換して前記処理指令装置側へ出力する解析実行手段と、を備えたエミュレート装置。
【請求項２】
前記リソース情報はＸＭＬ形式で記述されている、請求項１に記載のエミュレート装置。
【請求項３】
前記処理指令装置は印刷指令装置であり、前記処理実行装置は印刷実行装置である、請求項１又は２に記載のエミュレート装置。
【請求項４】
前記処理指令装置は印刷実行装置であり、前記処理実行装置は印刷指令装置である、請求項１又は２に記載のエミュレート装置。
【請求項５】
処理を指令する処理指令装置から出力された該指令を取得して処理を実行する、１以上の機種のうちの特定機種の処理実行装置の動作を、所定の実行側形式の指令を理解可能であり該実行側形式の指令を取得して前記処理実行装置の処理を仮想的に実行し該実行した処理に関する情報を所定の実行側形式の応答として出力可能なエミュレート実行手段と、前記特定機種の処理実行装置について個別に設定され前記処理指令装置が指令する指令側形式の指令内容を格納したリソース情報を記憶する記憶手段と、を利用してエミュレートするエミュレート方法であって、
（ａ）前記処理指令装置に規定されている指令側形式の指令を前記処理指令装置側から取得すると前記特定機種の処理実行装置に対応しているリソース情報を前記記憶手段から読み出し該取得した指令側形式の指令を該リソース情報に基づいて解析し該解析した結果に適した前記実行側形式の指令に変換して前記エミュレート実行手段へ出力するステップと、
（ｂ）前記エミュレート実行手段から前記実行側形式の応答を取得すると前記リソース情報を前記記憶手段から読み出し該取得した実行側形式の応答を該リソース情報に基づいて解析し該解析した結果に適した前記処理指令装置に規定されている指令側形式の応答に変換して前記処理指令装置側へ出力するステップと、を含むエミュレート方法。
【請求項６】
処理を指令する処理指令装置から出力された該指令を取得して処理を実行する、１以上の機種のうちの特定機種の処理実行装置の動作をエミュレートするプログラムであって、
所定の実行側形式の指令を理解可能であり該実行側形式の指令を取得して前記処理実行装置の処理を仮想的に実行し、該実行した処理に関する情報を所定の実行側形式の応答として出力可能なエミュレート実行モジュールと、
前記特定機種の処理実行装置について個別に設定され前記処理指令装置が指令する指令側形式の指令内容を格納したリソース情報と、
前記処理指令装置に規定されている指令側形式の指令を前記処理指令装置側から取得すると前記特定機種の処理実行装置に対応しているリソース情報を読み出し該取得した指令側形式の指令を該リソース情報に基づいて解析し該解析した結果に適した前記実行側形式の指令に変換して前記エミュレート実行手段へ出力し、前記エミュレート実行手段から前記実行側形式の応答を取得すると前記リソース情報を読み出し該取得した実行側形式の応答を該リソース情報に基づいて解析し該解析した結果に適した前記処理指令装置に規定されている指令側形式の応答に変換して前記処理指令装置側へ出力する解析実行モジュールと、を備えたプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エミュレート装置、エミュレート方法及びそのプログラムに関する。
【背景技術】
【０００２】
従来、エミュレート装置としては、要求のあったリソースがＨ／Ｗエミュレーター環境と既存の環境のうちのどの環境で使用されているのかを自動認識し、周辺装置単位でそれぞれのリソースを一括管理することにより、リソースの競合を回避するものが提案されている（例えば特許文献１参照）。このエミュレート装置では、エミュレーターデバイスドライバーからの要求があった場合に、デバイス管理部がリソース情報を基にエミュレーター周辺装置を管理し、エミュレーターリソース管理部がリソースを管理する。そして、エミュレーターリソース設定部はエミュレーター周辺装置にリソース情報を提供するとしている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平９−９１２３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述の装置では、デバイス管理部がどのようにエミュレーター周辺装置を管理するかや、エミュレーターリソース管理部がどのようにリソースを管理するかなどが明確でなかった。また、例えば、エミュレーターデバイスドライバーの指令形式に変更があった場合には、デバイス管理部やエミュレーター周辺装置、エミュレーターリソース管理部、エミュレーターリソース設定部の全てを、デバイスドライバーの指令形式に適合するように改変をしなければならないことがあった。この場合、それぞれの改変の整合性を確認する必要があるなどエミュレート装置の開発の負担が大きかった。
【０００５】
本発明は、このような課題に鑑みなされたものであり、開発の手間をより低減することができるエミュレート装置、エミュレート方法及びそのプログラムを提供することを主目的とする。
【課題を解決するための手段】
【０００６】
本発明は、上述の主目的を達成するために以下の手段を採った。
【０００７】
本発明のエミュレート装置は、
処理を指令する処理指令装置から出力された該指令を取得して処理を実行する、１以上の機種のうちの特定機種の処理実行装置の動作をエミュレート可能なエミュレート装置であって、
所定の実行側形式の指令を理解可能であり該実行側形式の指令を取得して前記処理実行装置の処理を仮想的に実行し、該実行した処理に関する情報を所定の実行側形式の応答として出力可能なエミュレート実行手段と、
前記特定機種の処理実行装置について個別に設定され前記処理指令装置が指令する指令側形式の指令内容を格納したリソース情報を記憶する記憶手段と、
前記処理指令装置に規定されている指令側形式の指令を前記処理指令装置側から取得すると前記特定機種の処理実行装置に対応しているリソース情報を前記記憶手段から読み出し該取得した指令側形式の指令を該リソース情報に基づいて解析し該解析した結果に適した前記実行側形式の指令に変換して前記エミュレート実行手段へ出力し、前記エミュレート実行手段から前記実行側形式の応答を取得すると前記リソース情報を前記記憶手段から読み出し該取得した実行側形式の応答を該リソース情報に基づいて解析し該解析した結果に適した前記処理指令装置に規定されている指令側形式の応答に変換して前記処理指令装置側へ出力する解析実行手段と、を備えたものである。
【０００８】
このエミュレート装置では、解析実行手段は、処理指令装置に規定されている指令側形式の指令を処理指令装置側から取得すると、特定機種の処理実行装置に対応しているリソース情報を読み出し、取得した指令側形式の指令をこのリソース情報に基づいて解析し、この解析結果に適した所定の実行側形式の指令に変換してエミュレート実行手段へ出力する。これを受けたエミュレート実行手段は、取得した実行側形式の指令に基づいて処理実行装置の処理を仮想的に実行し、この実行処理に関する情報を所定の実行側形式の応答として出力する。続いて、エミュレート実行手段から実行側形式の応答を取得すると、解析実行手段は、リソース情報を読み出し、この取得した実行側形式の応答をこのリソース情報に基づいて解析し、この解析結果に適した、処理指令装置に規定されている指令側形式の応答に変換して処理指令装置側へ出力する。このように、エミュレート実行手段は所定の実行側形式の指令を理解可能であり、解析実行手段は、特定機種の処理実行装置について個別に設定されたリソース情報を用いて実行側形式の指令と指令側形式の指令との間で適した形式に変換し、エミュレートを行うのである。ここで、例えば、処理指令装置が開発対象で指令側形式の指令内容を変更した場合、新たな指令内容に解析実行手段が対応可能であれば、解析実行手段が実行可能となるようにリソース情報を変更すればよいし、新たな指令側形式の指令内容を解析実行手段が解析したり変換したりできない場合には、エミュレート実行手段が指令内容を理解可能となるように、リソース情報と解析実行手段を変更すればよい。このため、エミュレート装置全体を改変する場合に比して、エミュレート装置の開発の手間をより低減することができる。
【０００９】
本発明のエミュレート装置において、前記リソース情報はＸＭＬ形式で記述されているものとしてもよい。こうすれば、ＸＭＬ形式を利用して比較的簡単にリソース情報を変更することが可能であり、より開発しやすい。このとき、前記リソース情報は、各コマンドでのユニークなＩＤとコマンドの名称を格納するものとしてもよい。
【００１０】
本発明のエミュレート装置において、前記処理指令装置は印刷指令装置であり、前記処理実行装置は印刷実行装置であるものとしてもよい。こうすれば、印刷指令装置を開発対象とする場合に、印刷実行装置をエミュレートするエミュレート装置の開発の手間をより低減することができる。あるいは、本発明のエミュレート装置において、前記処理指令装置は印刷実行装置であり、前記処理実行装置は印刷指令装置であるものとしてもよい。こうすれば、印刷実行装置を開発対象とする場合に、印刷指令装置をエミュレートするエミュレート装置の開発の手間をより低減することができる。
【００１１】
本発明のエミュレート方法は、
処理を指令する処理指令装置から出力された該指令を取得して処理を実行する、１以上の機種のうちの特定機種の処理実行装置の動作を、所定の実行側形式の指令を理解可能であり該実行側形式の指令を取得して前記処理実行装置の処理を仮想的に実行し該実行した処理に関する情報を所定の実行側形式の応答として出力可能なエミュレート実行手段と、前記特定機種の処理実行装置について個別に設定され前記処理指令装置が指令する指令側形式の指令内容を格納したリソース情報を記憶する記憶手段と、を利用してエミュレートするエミュレート方法であって、
（ａ）前記処理指令装置に規定されている指令側形式の指令を前記処理指令装置側から取得すると前記特定機種の処理実行装置に対応しているリソース情報を前記記憶手段から読み出し該取得した指令側形式の指令を該リソース情報に基づいて解析し該解析した結果に適した前記実行側形式の指令に変換して前記エミュレート実行手段へ出力するステップと、
（ｂ）前記エミュレート実行手段から前記実行側形式の応答を取得すると前記リソース情報を前記記憶手段から読み出し該取得した実行側形式の応答を該リソース情報に基づいて解析し該解析した結果に適した前記処理指令装置に規定されている指令側形式の応答に変換して前記処理指令装置側へ出力するステップと、を含むものである。
【００１２】
このエミュレート方法では、上述したこのエミュレート装置と同様に、例えば、処理指令装置が開発対象で指令側形式の指令内容を変更した場合、新たな指令内容に各ステップが対応可能であれば、各ステップで実行可能となるようにリソース情報を変更すればよいし、新たな指令側形式の指令内容を各ステップで解析したり変換したりできない場合には、エミュレート実行手段が指令内容を理解可能となるように、リソース情報と各ステップを変更すればよい。このため、エミュレート装置全体を改変する場合に比して、エミュレート装置の開発の手間をより低減することができる。なお、このエミュレート方法において、上述したエミュレート装置の種々の態様を採用してもよいし、また、上述したエミュレート装置の各機能を実現するようなステップを追加してもよい。
【００１３】
本発明のプログラムは、
処理を指令する処理指令装置から出力された該指令を取得して処理を実行する、１以上の機種のうちの特定機種の処理実行装置の動作をエミュレートするプログラムであって、
所定の実行側形式の指令を理解可能であり該実行側形式の指令を取得して前記処理実行装置の処理を仮想的に実行し、該実行した処理に関する情報を所定の実行側形式の応答として出力可能なエミュレート実行モジュールと、
前記特定機種の処理実行装置について個別に設定され前記処理指令装置が指令する指令側形式の指令内容を格納したリソース情報と、
前記処理指令装置に規定されている指令側形式の指令を前記処理指令装置側から取得すると前記特定機種の処理実行装置に対応しているリソース情報を読み出し該取得した指令側形式の指令を該リソース情報に基づいて解析し該解析した結果に適した前記実行側形式の指令に変換して前記エミュレート実行手段へ出力し、前記エミュレート実行手段から前記実行側形式の応答を取得すると前記リソース情報を読み出し該取得した実行側形式の応答を該リソース情報に基づいて解析し該解析した結果に適した前記処理指令装置に規定されている指令側形式の応答に変換して前記処理指令装置側へ出力する解析実行モジュールと、を備えたものである。
【００１４】
このプログラムでは、例えば、処理指令装置が開発対象で指令側形式の指令内容を変更した場合、新たな指令内容に解析実行モジュールが対応可能であれば、解析実行モジュールが利用可能となるようにリソース情報を変更すればよいし、新たな指令側形式の指令内容を解析実行モジュールが解析したり変換したりできない場合には、エミュレート実行モジュールが指令内容を理解可能となるように、リソース情報と解析実行モジュールを変更すればよい。このため、エミュレート装置全体を改変する場合に比して、エミュレート装置の開発の手間をより低減することができる。なお、このプログラムにおいて、上述したエミュレート装置の種々の態様を採用してもよいし、また、上述したエミュレート装置の各機能を実現するような構成を追加してもよい。
【図面の簡単な説明】
【００１５】
【図１】エミュレート装置２０の構成の概略の一例を示す構成図。
【図２】エミュレート装置２０の機能構成の一例を示すブロック図。
【図３】ＸＭＬ形式で記述された第１機種リソース情報３９の一例の説明図。
【図４】各機種におけるリソース情報の一例の説明図。
【図５】各処理及び通信の様子をシーケンシャルに示す説明図。
【図６】エミュレート装置２０の改変経過の説明図。
【図７】エミュレート装置２０Ｂの構成の概略の一例を示す構成図。
【発明を実施するための形態】
【００１６】
次に、本発明の実施の形態を図面を用いて説明する。図１は、本発明の一実施形態であるエミュレート装置２０の構成の概略の一例を示す構成図である。図２は、エミュレート装置２０の機能構成の一例を示すブロック図である。図３は、ＸＭＬ形式で記述された第１機種リソース情報３９の一例の説明図である。図４は、各機種におけるリソース情報の一例の説明図である。本実施形態のエミュレート装置２０は、周知の汎用パソコンであり、開発対象をプリンタードライバーとし、このプリンタードライバーによるプリンターの動作をエミュレートする処理を行うように構成されている。このエミュレート装置２０は、図１に示すように、各種制御を実行するＣＰＵ２２や、各種制御プログラムを記憶するＲＯＭ２３、データを一時的に記憶するＲＡＭ２４、各種アプリケーションプログラムや各種データファイルを記憶する大容量メモリーであるＨＤＤ２５、外部機器との間で信号の送受信が可能なインターフェイス（Ｉ／Ｆ）２６などを備えている。また、エミュレート装置２０は、ユーザーが各種指令を入力するキーボード及びマウス等の入力装置２７や、各種情報を画面表示するディスプレイ２８などを備えている。このエミュレート装置２０は、ディスプレイ２８に表示されたカーソル等をユーザーが入力装置２７を介して入力操作するとその入力操作に応じた動作を実行する機能を有している。このＣＰＵ２２、ＲＯＭ２３、ＲＡＭ２４，ＨＤＤ２５、Ｉ／Ｆ２６，入力装置２７及びディスプレイ２８などは、バス２９によって電気的に接続され、各種制御信号やデータのやりとりができるように構成されている。
【００１７】
ＨＤＤ２５には、エミュレート装置２０で仮想的に動作する仮想プリンター５０（図２参照）に指令を出力する開発対象プログラム３２や、仮想的にプリンターの動作を行うプリンターエミュレートプログラム３６などが記憶されている。開発対象プログラム３２には、このプログラムで規定されている指令側形式のコマンド（指令）をプリンターへ出力するプリンタードライバーとして機能するプリンタードライバーモジュール３３などが組み込まれている。プリンターエミュレートプログラム３６には、プリンターの処理を仮想的に実行するコアモジュール３７や、コマンドの形式を第１機種リソース情報３９を用いて解析及び変換する第１解析モジュール３８、特定機種のプリンターに対して個別に設定されたコマンド内容を格納した第１機種リソース情報３９などが組み込まれている。図２に示すように、ＣＰＵ２２が開発対象プログラム３２を実行すると、プリンタードライバーモジュール３３により、仮想印刷指令パソコン（ＰＣ）４０として仮想的に動作する。また、ＣＰＵ２２がプリンターエミュレートプログラム３６を実行すると、コアモジュール３７、第１解析モジュール３８及び第１機種リソース情報３９などによって、仮想プリンター５０として仮想的に動作する。ここで、仮想プリンター５０は、着色剤としてのインクを圧電素子の変形によって加圧し用紙へ吐出するインクジェットプリンターとして構成されているものとした。このとき、ＣＰＵ２２がプリンタードライバーモジュール３３を実行すると仮想印刷指令ＰＣ４０ではプリンタードライバー部４２として機能する。また、ＣＰＵ２２がコアモジュール３７を実行すると仮想プリンター５０ではコア部５２として機能し、第１解析モジュール３８を実行すると、解析部５４として機能する。ここでは、説明の便宜のため、図２の仮想印刷指令ＰＣ４０のプリンタードライバー部４２及び仮想プリンター５０のコア部５２及び解析部５４を用いて具体的に説明する。
【００１８】
コア部５２は、プリンターの有する基本的な処理、例えば用紙の搬送処理、処理内容の画面表示処理、着色剤による用紙への画像形成処理などを仮想的に実行可能に構成されている。このコア部５２は、のちにも改変しないよう予め定めた実行側形式のコマンドを理解可能に構成されている。解析部５４は、プリンタードライバー部４２から取得した指令側形式のコマンドをコア部５２が理解可能な実行側形式のコマンドへ変換したり、コア部５２から取得した実行側形式のコマンドをプリンタードライバー部４２側で定義されている指令側形式のコマンドへ変換したりする処理を行う。第１機種リソース情報３９は、特定機種のプリンターについて個別に設定されプリンタードライバー部４２が指令する指令側形式のコマンドの内容を格納している。この第１機種リソース情報３９は、図３に示すように、ＸＭＬ（eXtensible Markup Language）形式で記述されている。第１機種リソース情報３９では、コマンド記述部分にはリモートなど各種のコマンドの種別を記述し、コマンドごとにユニークなＩＤと、コマンドの名称などが記述されている。この第１機種リソース情報３９では、特定機種に対応付けられた、各コマンドに続くパラメーターのフォーマット（バイト数）などが記述されている。この第１機種リソース情報３９には、機種に応じた指令側形式のコマンドの内容のほか、このコマンドに対応付けられた機種特有の設定値（例えば、所定の印刷条件に対応する１頁に要する印刷時間）なども記述されている。図４に示すように、例えば、特定の第１機種、第２機種、第３機種のプリンターでは、同一コマンドであっても、そのあとに規定されるパラメータの長さや種別がその機種に適合する機能に対応して規定されている。例えば、第１機種リソース情報では、コマンドの次にプリンター状態、スキャナー状態、カバー状態が各４桁の数字で規定され、第２機種リソース情報では、コマンドの次にプリンター状態、カバー状態、インク状態が各４桁の数字で規定され、第３機種リソース情報では、コマンドの次にプリンター状態、スキャナー状態、カバー状態が各２桁の数字で規定されている、などである。解析部５４は、プリンタードライバー部４２から取得した指令側形式のコマンドを、第１機種リソース情報３９に規定されているコマンド種別やパラメーターなどの内容を参照することにより、取得したコマンドの内容を解析し、解析した結果に適した実行側形式のコマンドへの変換処理を行う。このため、第１機種リソース情報３９で規定されていないコマンドがプリンタードライバー部４２側から誤って出力されると、完全ではないコマンド変換が行われることもありうる。
【００１９】
次に、こうして構成された本実施形態のエミュレート装置２０の動作、特に仮想印刷指令ＰＣ４０と仮想プリンター５０との動作について説明する。図５は、ドライバー部４２、コア部５２及び解析部５４における各処理及び通信の様子をシーケンシャルに示す説明図である。ここでは、プリンタードライバー及びその指令を受けるプリンターの双方を開発中であり、現物のプリンターがない状況において、開発中のプリンターの動作をエミュレートするプリンターエミュレートプログラム３６を用いてプリンタードライバーモジュール３３を有する開発対象プログラム３２の動作確認を行う場合について説明する。ここでは、仮想印刷指令ＰＣ４０の開発対象プログラム３２から印刷指令を出力し、これを受けた仮想プリンター５０が印刷処理を実行すると共に、印刷処理の途中経過及び結果を仮想印刷指令ＰＣ４０へ出力する場合を主たる具体例として説明する。まず、ユーザーは、入力装置２７を操作し、開発対象プログラム３２及びプリンターエミュレートプログラム３６を起動する（図１参照）。すると、ＣＰＵ２２は、開発対象プログラム３２を実行し、ディスプレイ２８の一部領域に図示しない印刷設定画面を表示すると共に、プリンターエミュレートプログラム３６を実行し、ディスプレイ２８の他の領域にプリンターの起動画面を表示する。以下、図５に示すように、仮想印刷指令ＰＣ４０（プリンタードライバー部４２）と仮想プリンター５０（コア部５２、解析部５４）との間の処理として説明する。
【００２０】
次に、ユーザーは、印刷実行指令を図示しない印刷設定画面で入力する。すると、図５に示すように、プリンタードライバー部４２は、指令側形式のコマンドを作成し（ステップＳ１００）、作成した指令側形式のコマンドをコア部５２へ出力する（ステップＳ１１０）。ここでは、印刷実行コマンドと印刷データとをコア部５２へ出力するものとした。これを受けたコア部５２は、取得した指令側形式のコマンドを一時的に記憶して、解析部５４へ受け渡す。解析部５４は、指令側形式のコマンドを取得すると（ステップＳ３００）、第１機種リソース情報３９をＨＤＤ２５から読み出し（ステップＳ３１０）、取得した指令側形式のコマンドを第１機種リソース情報３９に基づいて解析する（ステップＳ３２０）。解析部５４は、第１機種リソース情報３９で規定される特定機種に対応したコマンドであるか否かを第１機種リソース情報３９に基づいて判定し（ステップＳ３３０）、特定機種に対応していないときには、第１機種リソース情報３９のコマンド内容を用いて、指令側形式のエラーリプライコマンドを作成してプリンタードライバー部４２へ出力する（ステップＳ３４０）。一方、特定機種に対応しているときには、解析部５４は、取得したコマンドの種別を第１機種リソース情報３９を用いて把握すると共に、コマンドに続くパラメーターのフォーマットを用いて指令側形式のコマンドを、コア部５２で理解可能な実行側形式のコマンドに変換し（ステップＳ３５０）、変換したコマンドをコア部５２へ出力する（ステップＳ３６０）。このとき、コマンドに対応付けられた機種特有の設定値も含めた実行側形式のコマンドに変換するものとした。この処理では、指令側形式のコマンドを第１機種リソース情報３９に基づいて解析し、解析した結果に適した実行側形式のコマンドに変換するものとした。ここでは、具体的には、解析部５４は、印刷データの頁数と１頁あたりの印刷時間などを含めた実行側形式のコマンドに変換し、出力するものとした。ここで、プリンタードライバーモジュール３３に不備があるなどの理由によって、プリンタードライバー部４２から不備のあるコマンドを取得した場合、例えば、取得したコマンド自体は特定機種に対応するものであっても、このコマンドに、特定機種に対応していない不要なパラメーターがついている場合や必要なパラメーターがついていない場合などには、これを無視してもコマンド変換を実行するものとしてもよい。
【００２１】
実行側形式のコマンドを取得すると（ステップＳ２００）、コア部５２は、取得したコマンドを仮想的に実行する、即ちエミュレートする（ステップＳ２１０）。ここでは、コア部５２は、コマンドに含まれている１頁あたりの印刷時間に応じて１頁ごと印刷処理を行うようプリンターの各部を仮想的に動作させる。例えば、給紙ローラーの駆動を開始し、用紙を印刷位置へ搬送するよう駆動モーターの駆動信号を出力すると共に、印刷データに基づいてインクを吐出するよう印刷ヘッドの圧電素子の駆動信号を仮想的に出力し、その状態を詳細にＲＡＭ２４の所定領域へ格納する。このように、コマンドに応じた処理を仮想的に実行していることから、処理の途中でプリンタードライバー部４２から他のコマンド、例えば、状態確認のコマンドが出力された場合でも、これに適切に応答することができる。次に、コア部５２は、実行側形式のリプライコマンドを作成し（ステップＳ２２０）、作成したコマンドを解析部５４へ出力する（ステップＳ２３０）。ここでは、リプライコマンドとしては、印刷経過として１頁の印刷終了ごとにプリンタードライバー部４２側へその旨の通知を行うものとした。
【００２２】
実行側形式のリプライコマンドを取得すると（ステップＳ３７０）、解析部５４は、第１機種リソース情報３９を読み出し（ステップＳ３８０）、取得したリプライコマンドを第１機種リソース情報３９に基づいて解析する（ステップＳ３９０）。そして、解析結果に基づいて実行側形式のリプライコマンドを指令側形式のリプライに変換し（ステップＳ４００）、変換した指令側形式のリプライコマンドをプリンタードライバー部４２へ出力する（ステップＳ４１０）。ここでは、１頁の印刷が終了するたびに、印刷済みの頁数のリプライコマンドをプリンタードライバー部４２へ出力する。このリプライコマンドを受けたプリンタードライバー部４２において、予定と異なる応答結果を取得した場合には、実機のプリンターが完成していない状態であっても、プリンタードライバー部４２に何らかの不備（例えば不適正なコマンドを作成してしまうなど）があることを確認することができる。
【００２３】
図６は、エミュレート装置２０の改変経過の説明図である。図６に示すように、例えば、第１機種リソース情報３９を第２機種リソース情報６２に代えて上述したエミュレート処理を実行すれば、第２機種のプリンターに対するプリンタードライバー部４２の不備を確認することができる（図６中段）。このように、第１解析モジュール３８と各機種に応じたリソース情報とを用いて、エミュレート装置２０の汎用性を高めることができる。また、その後、新機種の開発において新たなコマンドを創設した場合などには、第１解析モジュール３８を新たなコマンドに対応する第２解析モジュール６４に切り替えればよい。このとき、第２解析モジュール６４は、第２解析モジュール６４に合わせて作成した第１機種リソース情報６６を用いることにより、コアモジュール３７で定められている実行側形式のコマンドに変換するものとすれば、コアモジュール３７の変更する必要がなく、開発工数の低減を図ることができる。
【００２４】
ここで、本実施形態の構成要素と本発明の構成要素との対応関係を明らかにする。本実施形態のコア部５２が本発明のエミュレート実行手段に相当し、ＨＤＤ２５が記憶手段に相当し、解析部５４が解析実行手段に相当し、仮想印刷指令ＰＣ４０が処理指令装置に相当し、仮想プリンター５０が処理実行装置に相当する。なお、本実施形態では、エミュレート装置２０の動作を説明することにより本発明のエミュレート方法の一例も明らかにしている。
【００２５】
以上詳述した本実施形態のエミュレート装置２０によれば、改変しないよう予め定めた実行側形式のコマンドをコア部５２が理解可能であり、特定機種について個別に設定された第１機種リソース情報３９を用いて実行側形式のコマンドとプリンタードライバー部４２で規定されている指令側形式のコマンドとの間で適した形式に解析部５４が変換し、エミュレートを行う。ここで、例えば、プリンタードライバー部４２が開発対象で指令側形式のコマンドを変更した場合、新たなコマンドに解析部５４が対応可能であれば、解析部５４が実行可能となるように第１機種リソース情報３９を変更すればよいし、新たな指令側形式のコマンドを解析部５４が解析したり変換したりできない場合には、コア部５２がコマンドを理解可能となるように、第１機種リソース情報３９と解析部５４とを変更すればよい。このため、エミュレート装置全体を改変する場合に比して、エミュレート装置の開発の手間をより低減することができる。また、第１機種リソース情報３９はＸＭＬ形式で記述されているため、各コマンドの内容及びそのパラメーターの意味を直感的に理解することができ、比較的簡単にリソース情報を変更することが可能であり、より開発しやすい。更に、プリンタードライバー部４２を開発対象とする場合に、プリンターをエミュレートするエミュレート装置の開発の手間をより低減することができる。更にまた、仮想プリンター５０には複数の機種があり、特定機種に対応付けられた第１機種リソース情報３９を用いるため、例えば、コアモジュール３７及び第１解析モジュール３８を流用し第１機種リソース情報３９を他の機種に対応するリソース情報に切替可能であり、プリンターエミュレートプログラム３６の汎用化をより図ることができる。
【００２６】
なお、本発明は上述した実施形態に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の態様で実施し得ることはいうまでもない。
【００２７】
例えば、上述した実施形態では、開発対象の処理指令装置が仮想印刷指令ＰＣ４０（プリンタードライバー部４２）であり、エミュレート対象の処理実行装置が仮想プリンター５０であるものとしたが、特にこれに限定されず、開発対象の処理指令装置がプリンターであり、エミュレート対象の処理実行装置がプリンタードライバー部４２であるものとしてもよい。図７は、エミュレート装置２０Ｂの構成の概略の一例を示す構成図である。エミュレート装置２０Ｂは、コアモジュール３３Ｂ、解析モジュール３４Ｂ及びリソース情報３５Ｂを有するプリンタードライバーエミュレートプログラム３２Ｂと、プリンター制御モジュール３７Ｂが組み込まれた開発対象プログラム３６ＢとがＨＤＤ２５に記憶されている。この解析モジュール３４Ｂやリソース情報３５Ｂは、上述した第１解析モジュール３８や第１機種リソース情報３９の内容の一部又は全部を流用可能である。こうすれば、プリンタードライバーをエミュレートするプリンタードライバーエミュレートプログラム３２Ｂの開発の手間をより低減することができる。
【００２８】
また、上述した実施形態では、開発対象とエミュレート対象とをプリンタードライバーとプリンターとしたが、処理を指令する処理指令装置と、指令を受けて処理を実行する処理実行装置とすれば、特にこれに限定されない。
【００２９】
上述した実施形態では、開発対象プログラム３２とプリンターエミュレートプログラム３６とをＨＤＤ２５に格納し、仮想印刷指令ＰＣ４０と仮想プリンター５０とを１つのＰＣ上に実現するものとしたが、特にこれに限定されず、複数のＰＣをネットワークを介して接続し、一方のＰＣに開発対象プログラム３２を記憶させ、他方のＰＣにプリンターエミュレートプログラム３６を記憶させ、仮想印刷指令ＰＣ４０と仮想プリンター５０とを別々のＰＣ上に実現するものとしてもよい。
【００３０】
上述した実施形態では、開発対象としての仮想印刷指令ＰＣ４０とエミュレート対象としての仮想プリンター５０との１対１でやりとりを行うものとしたが、特にこれに限定されず、開発対象とエミュレート対象とを１対複数としてやりとりを行ってもよいし、開発対象とエミュレート対象とを複数対１としてやりとりを行うものとしてもよい。
【００３１】
上述した実施形態では、仮想プリンター５０には複数の機種があり、特定機種に対応付けられた第１機種リソース情報３９を用いる、即ちリソース情報を切替可能としたが、特にこれに限定されず、例えばエミュレート対象の処理実行装置には１つの機種しかなく、これに対応するリソース情報を用いるものとすることができる。こうしても、エミュレート装置の開発の手間をより低減することができる。
【００３２】
上述した実施形態では、仮想プリンター５０は、インクジェット方式としたが、電子写真方式や、熱転写方式、ドットインパクト方式としてもよい。また、上述した実施形態では、エミュレート装置２０として説明したが、エミュレート方法としてもよいし、エミュレート方法を実行するプログラムとしてもよい。
【符号の説明】
【００３３】
２０，２０Ｂ  エミュレート装置、２２  ＣＰＵ、２３  ＲＯＭ、２４  ＲＡＭ、２５  ＨＤＤ、２６  インターフェイス（Ｉ／Ｆ）、２７  入力装置、２８  ディスプレイ、３２  開発対象プログラム、３２Ｂ  プリンタードライバーエミュレートプログラム、３３  プリンタードライバーモジュール、３３Ｂ  コアモジュール、３４Ｂ  解析モジュール、３５Ｂ  リソース情報、３６  プリンターエミュレートプログラム、３６Ｂ  開発対象プログラム、３７  コアモジュール、３７Ｂ  プリンター制御モジュール、３８  第１解析モジュール、３９  第１機種リソース情報、４０  仮想印刷指令パソコン（ＰＣ）、４２  プリンタードライバー部、５０  仮想プリンター、５２  コア部、５４  解析部、６２  第２機種リソース情報、６４  第２解析モジュール、６６  第１機種リソース情報。
【図１】
2011243039.tif 000003
【図２】
2011243039.tif 000004
【図３】
2011243039.tif 000005
【図４】
2011243039.tif 000006
【図５】
2011243039.tif 000007
【図６】
2011243039.tif 000008
【図７】
2011243039.tif 000009