(57)【要約】【課題】プリンタとコンピュータ装置との双方向通信が非同期で行われても、取得すべき機器情報とは異なる機器情報が情報処理装置に取得されてしまう不都合を抑制する。【解決手段】コンピュータ装置は、プリンタ２から取得したレスポンスデータと当該レスポンスデータのリクエストＩＤとを対応付けて記憶するスプーラ３６のキャッシュと、レスポンスデータを要求する要求手段（Ｓ１１）と、キャッシュに記憶されたレスポンスデータとリクエストＩＤとを、要求手段による要求に応じて通知する通知手段（Ｓ３２）と、通知手段によって通知されたリクエストＩＤに基づいて、キャッシュに記憶された状態情報を取得するか否かを判断する判断手段（Ｓ３３）と、を備える。【選択図】図８
2019016333.tif 000002
【特許請求の範囲】
【請求項１】
画像処理装置の状態を示す状態情報を取得する情報処理装置であって、
前記画像処理装置から取得した前記状態情報と当該状態情報の識別情報とを対応付けて記憶する記憶手段と、
前記状態情報を要求する要求手段と、
前記記憶手段に記憶された前記状態情報と前記識別情報とを、前記要求手段による要求に応じて通知する通知手段と、
前記通知手段によって通知された前記識別情報に基づいて、前記記憶手段に記憶された前記状態情報を取得するか否かを判断する判断手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記要求手段による要求に応じて前記識別情報を生成する識別情報生成手段と、
前記画像処理装置から取得した前記状態情報に前記識別情報を付加した付加後状態情報を、前記記憶手段に記憶させる記憶制御手段と、を備え、
前記判断手段は、前記付加後状態情報に含まれる前記識別情報と前記識別情報生成手段が生成した前記識別情報とが一致する場合、前記付加後状態情報に含まれる前記状態情報を取得すると判断することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記通知手段は、前記付加後状態情報に含まれる前記識別情報と前記識別情報生成手段が生成した前記識別情報とが不一致の場合、予め定められた待機時間の経過後に、前記記憶手段に記憶された前記付加後状態情報を通知することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記識別情報生成手段は、生成した前記識別情報を、前記付加後状態情報を生成する付加後状態情報生成手段及び前記判断手段から読み出し可能な識別情報記憶手段に記憶させることを特徴とする請求項２又は３に記載の情報処理装置。
【請求項５】
前記識別情報生成手段は、前記要求手段による要求が行われるごとに、前記識別情報を不規則な値で生成することを特徴とする請求項２から４の何れか１項に記載の情報処理装置。
【請求項６】
前記画像処理装置から前記状態情報を取得した場合に、前記識別情報を生成する識別情報生成手段と、
前記画像処理装置から取得した前記状態情報に前記識別情報を付加した付加後状態情報を、前記記憶手段に記憶させる第１記憶制御手段と、
前記記憶手段に記憶された前記付加後状態情報に含まれる前記識別情報を、識別情報記憶手段に記憶させる第２記憶制御手段と、を備え、
前記判断手段は、前記付加後状態情報に含まれる前記識別情報と前記識別情報記憶手段に記憶された前記識別情報とが不一致の場合に、前記付加後状態情報に含まれる前記状態情報を取得すると判断することを特徴とする請求項１に記載の情報処理装置。
【請求項７】
前記通知手段は、前記付加後状態情報に含まれる前記識別情報と前記識別情報記憶手段に記憶された前記識別情報とが一致する場合、予め定められた待機時間の経過後に、前記記憶手段に記憶された前記付加後状態情報を通知することを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記識別情報生成手段は、前記画像処理装置から前記状態情報を取得するごとに、前記識別情報を不規則な値で生成することを特徴とする請求項６又は７に記載の情報処理装置。
【請求項９】
画像処理装置の状態を示す状態情報を取得する情報処理方法であって、
前記画像処理装置から取得された状態情報と当該状態情報の識別情報とを対応付けて記憶手段に記憶させるステップと、
前記記憶手段に記憶された前記状態情報と前記識別情報とを、前記状態情報の取得要求に応じて通知するステップと、
通知された前記識別情報に基づいて、前記記憶手段に記憶された前記状態情報を取得するか否かを判断するステップと、
を備えることを特徴とする情報処理方法。
【請求項１０】
請求項９に記載の情報処理方法における各ステップをコンピュータに実行させることを特徴とするプログラム。
【請求項１１】
画像処理装置と、前記画像処理装置の状態を示す状態情報を取得する情報処理装置と、を備える画像処理システムであって、
前記情報処理装置は、
前記画像処理装置から取得された状態情報と当該状態情報の識別情報とを対応付けて記憶する記憶手段と、
前記状態情報を要求する要求手段と、
前記記憶手段に記憶された前記状態情報と前記識別情報とを、前記要求手段による要求に応じて通知する通知手段と、
前記通知手段によって通知された前記識別情報に基づいて、前記記憶手段に記憶された前記状態情報を取得するか否かを判断する判断手段と、
を備えることを特徴とする画像処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、プログラム、及び画像処理システムに関する。
【背景技術】
【０００２】
取得要求を画像処理装置（被制御装置の一種）に送信することで、画像処理装置の状態を示す状態情報を画像処理装置から取得する情報処理装置が知られている。特許文献１には、画像処理装置の状態情報を非同期の双方向通信で取得する情報処理装置が記載されている。
この情報処理装置において、画像処理装置の状態が変更されると当該画像処理装置では状態情報が更新されるが、双方向通信が非同期で行われることから、状態情報が更新される前に情報処理装置による状態情報の取得が行われてしまう場合がある。
この場合、取得すべき状態情報とは異なる状態情報が情報処理装置に取得されてしまう不都合が生じ得る。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本発明は、上述の事情に鑑みてなされたものであり、その目的は、画像処理装置と情報処理装置との双方向通信が非同期で行われても、取得すべき状態情報とは異なる状態情報が情報処理装置に取得されてしまう不都合を抑制することにある。
【課題を解決するための手段】
【０００４】
上記課題を解決するために、請求項１記載の発明は、画像処理装置の状態を示す状態情報を取得する情報処理装置であって、前記画像処理装置から取得した前記状態情報と当該状態情報の識別情報とを対応付けて記憶する記憶手段と、前記状態情報を要求する要求手段と、前記記憶手段に記憶された前記状態情報と前記識別情報とを、前記要求手段による要求に応じて通知する通知手段と、前記通知手段によって通知された前記識別情報に基づいて、前記記憶手段に記憶された前記状態情報を取得するか否かを判断する判断手段と、を備えることを特徴とする。
【発明の効果】
【０００５】
本発明によれば、被制御装置と情報処理装置との双方向通信が非同期で行われても、取得すべき状態情報とは異なる状態情報が情報処理装置に取得されてしまう不都合を抑制できる。
【図面の簡単な説明】
【０００６】
【図１】本発明の一実施形態に係る印刷システムの全体構成図である。
【図２】本発明の一実施形態に係る印刷システムが有するコンピュータ装置のハードウェア構成図である。
【図３】本発明の一実施形態に係る印刷システムが有するプリンタのハードウェア構成図である。
【図４】本発明の第１実施形態に係るコンピュータ装置の機能ブロック図である。
【図５】非同期の双方向通信における比較例のシーケンスを説明する図である。
【図６】双方向通信を実行可能なユーザインタフェースの表示例を説明する図である。
【図７】双方向通信を実行可能なユーザインタフェースの他の表示例を説明する図である。
【図８】本発明の第１実施形態に係る機器情報の取得シーケンスを説明する図である。
【図９】リクエストＩＤの一例を説明する図である。
【図１０】機器情報（レスポンスデータ）の一例を説明する図である。
【図１１】取得した機器情報の表示例を説明する図である。
【図１２】本発明の第２実施形態に係るコンピュータ装置の機能ブロック図である。
【図１３】本発明の第２実施形態に係る機器情報の取得シーケンスを説明する図である。
【発明を実施するための形態】
【０００７】
以下、本発明を図面に示した実施の形態により詳細に説明する。但し、この実施形態に記載される構成要素、種類、組み合わせ、形状、その相対配置などは特定的な記載がない限り、この発明の範囲をそれのみに限定する主旨ではなく単なる説明例に過ぎない。
【０００８】
＜印刷システムの構成＞
図１は、本発明の一実施形態に係る印刷システム１０の全体構成図である。図２は、本発明の一実施形態に係る印刷システム１０が有するコンピュータ装置１のハードウェア構成図である。図３は、本発明の一実施形態に係る印刷システム１０が有するプリンタ２のハードウェア構成図である。
図１に例示する印刷システム１０は、情報処理システム（画像処理システム）の一種であり、コンピュータ装置１と、プリンタ２とを備えている。コンピュータ装置１とプリンタ２との間は、通信路３を介して双方向通信可能に接続されている。
コンピュータ装置１は、情報処理装置の一種であるとともに、プリンタ２の動作を制御する印刷制御装置の一種でもある。コンピュータ装置１は、通信路３を介して接続されているプリンタ２と双方向通信を行うことで、プリンタ２に印刷を実施させたり、プリンタ２の機器情報を取得したりする。
【０００９】
プリンタ２は、印刷装置（画像処理装置）の一種であるとともに、コンピュータ装置１に制御される被制御装置の一種である。本実施形態のプリンタ２は、インク滴を吐出することでカラー印刷が可能なインクジェットプリンタであり、印刷用紙をストックする用紙トレイ（記録媒体を保持する媒体保持部）を複数備えている。したがって、ストックされる記録用紙のサイズや紙質を用紙トレイ毎に設定できる。
プリンタ２の機器情報は、プリンタ２の状態を表す状態情報であり、例えばプリンタ２に装着されたオプションの情報、プリンタ２に装着されたメモリの容量、及び用紙トレイ毎の用紙サイズの情報を含む。
【００１０】
通信路３は、例えばＵＳＢ（Universal Serial Bus）通信ケーブル（有線）によって形成される情報の伝送路である。通信路３は、コンピュータ装置１からプリンタ２をＵＳＢ機器と認識でき、且つ、プリンタ２からもコンピュータ装置１をＵＳＢ機器と認識できれば、ＵＳＢ通信ケーブルに限られない。例えば、コンピュータ装置１とプリンタ２のそれぞれにＵＳＢ無線通信アダプタを接続し、コンピュータ装置１とプリンタ２との間で無線による双方向通信を行ってもよい。また、通信路３は、コンピュータ装置１からプリンタ２を認識でき、且つ、プリンタ２からもコンピュータ装置１を認識できれば、ＵＳＢ通信ケーブルに限られない。
【００１１】
図２に示すように、コンピュータ装置１は、一般的な情報処理端末と同様の構成を有する。即ち、本実施形態に係るコンピュータ装置１は、ＣＰＵ（Central Processing Unit）１１、ＲＯＭ（Read Only Memory）１２、ＲＡＭ（Random Access Memory）１３、外部Ｉ／Ｆ（Interface）１４、ＵＳＢＩ／Ｆ（Universal Serial Bus Interface）１５、入力制御部１６、表示制御部１７、及び記憶装置１８を備えており、これらの各部がバスＢを介して情報を送受信可能に接続されている。
ＣＰＵ１１は演算手段であり、コンピュータ装置１における全体の動作を制御する。ＲＯＭ１２は、読み出し専用の不揮発性記憶媒体であり、ファームウェア等のコンピュータプログラム（以下プログラムと称する）が格納されている。ＲＡＭ１３は、情報の高速な読み書きが可能な揮発性の記憶媒体であり、ＣＰＵ１１が情報を処理する際の作業領域として用いられる。
【００１２】
外部Ｉ／Ｆ１４には、光学ドライブ４が通信可能に接続されている。光学ドライブ４は、ＣＤ−ＲＯＭ（Compact Disc Read only memory）やＤＶＤ（Digital Versatile Disc）などの光学ディスク（記憶媒体の一種）に記憶された情報を読み出したり、光学ディスクに情報を書き込んだりする。ＵＳＢＩ／Ｆ１５には、プリンタ２が双方向通信可能に接続されている。入力制御部１６には入力装置５が接続されている。入力装置５は、例えばキーボードやマウスであり、ユーザによる入力操作に応じた操作信号を出力する。入力制御部１６は、入力装置５から出力された入力信号を受信する。
表示制御部１７には表示装置６が接続されている。表示装置６は、各種の画像を表示する装置であり、例えば液晶ディスプレイである。表示装置６に表示された視覚的ユーザインタフェースにより、ユーザは、コンピュータ装置１の状態やプリンタ２の状態を確認することができる。表示制御部１７は、表示装置６に表示させる画像に応じた表示信号を出力する。
記憶装置１８は、ハードディスクドライブ装置等の情報の読み書きが可能な不揮発性の記憶媒体であり、ＯＳ（Operating System）、アプリケーションプログラム（以下、アプリケーションと称する）、プリンタドライバ、及びストアデバイスアプリ等の各種プログラムが格納されている。これらのプログラムは、光学ディスクに記録して提供されたり、サーバからネットワークを介してダウンロードされることによって配布されたりする。
なお、本実施形態におけるＯＳは、例えばＭｉｃｒｏｓｏｆｔ（登録商標）のＷｉｎｄｏｗｓ（登録商標）である。また、記憶装置１８に格納された各プログラムによって実現される機能については後述する。
【００１３】
図３に示すように、本実施形態に係るプリンタ２は、プリンタ２における全体の動作を制御するプリンタ側制御部２１と、印刷用紙に対する画像の印刷を行う印刷機構２２と、印刷機構２２による印刷動作に連動して印刷用紙を搬送する用紙搬送機構２３と、コンピュータ装置１（ＵＳＢＩ／Ｆ１５）と通信路３（ＵＳＢ通信ケーブル）を介して接続可能に構成され、プリンタ側制御部２１と双方向通信可能に接続されたＵＳＢＩ／Ｆ２４とを備えている。
上述したように、本実施形態のプリンタ２はインクジェットプリンタである。したがって、印刷機構２２は、例えば、インク色毎に形成されたノズル列を備えるインクジェットヘッドと、インクジェットヘッドが取り付けられたキャリッジを印刷用紙の搬送方向（副走査方向）と直交（又は交差）する主走査方向に移動させるキャリッジ移動機構とを備えている。
【００１４】
用紙搬送機構２３は、用紙トレイにストックされた印刷用紙を１枚ずつ取り出し、インクジェットヘッドの主走査方向への移動が行われた後、次の主走査方向への移動が開始されるまでの間に印刷用紙を副走査方向に所定距離搬送する。
プリンタ側制御部２１は、ＵＳＢＩ／Ｆ２４を介して取得したコンピュータ装置１からの各種情報にしたがって印刷機構２２や用紙搬送機構２３を制御し、印刷用紙の表面に画像を印刷させる。
【００１５】
また、プリンタ側制御部２１は、プリンタ２の機器情報の取得要求をコンピュータ装置１から受信した場合、プリンタ２の機器情報を取得要求に対するレスポンスデータとして送信する。例えば、プリンタ２に装着されたオプションの情報、プリンタ２に装着されたメモリの容量、及び用紙トレイ毎の用紙サイズ情報を含む機器情報をレスポンスデータとして送信する。
【００１６】
図４は、本発明の第１実施形態に係るコンピュータ装置１の機能ブロック図である。詳しくは、図４の機能ブロック図は、記憶装置１８に記憶された各種のプログラムをコンピュータ装置１のＣＰＵ１１が読み出し、ＲＡＭ１３に展開して実行することにより実現される。
コンピュータ装置１ではＯＳ３１が動作し、ＯＳ３１の上でアプリケーション３２、プリンタドライバ３３、及びストアデバイスアプリ３４が動作している。また、コンピュータ装置１には、アクセス可能領域３５が設定されているとともに、スプーラ３６、及び双方向スクリプト３７（ＵＳＢ  Ｂｉｄｉ  Ｊａｖａ（登録商標）ｓｃｒｉｐｔ）が動作している。
【００１７】
アプリケーション３２は、例えば文書作成ソフトや表計算ソフト等であり、作業結果をプリンタ２によって印刷用紙に印刷させることができる。プリンタドライバ３３は、コンピュータ装置１に接続された周辺機器を制御するためのドライバソフトウェアの一種である。すなわち、プリンタドライバ３３は、プリンタ２を制御するためのプログラムであり、例えばＶ４プリンタドライバである。詳細は後述するが、ユーザの入力操作によってプリンタドライバ３３のデバイスプロパティ画面が開かれた場合、プリンタドライバ３３は、プリンタ２の機器情報の取得を要求する双方向リクエスト（取得要求）をスプーラ３６に送信する。また、プリンタドライバ３３は、双方向リクエストを送信するごとに、送信する双方向リクエストを識別するためのリクエストＩＤ（取得要求を識別する識別情報）を生成し、アクセス可能領域３５に記憶させる。このリクエストＩＤは、双方向リクエストに基づいてプリンタ２から取得される機器情報について、この機器情報を識別する識別情報としても機能する。さらに、プリンタドライバ３３は、双方向リクエストを送信した後、予め定められた時間が経過した場合に、スプーラ３６に記憶されたＲＱＩＤ付レスポンスデータ（付加後状態情報）を取得する。
ストアデバイスアプリ３４は、プリンタドライバ３３と連携してプリンタ２の状態表示、印刷ジョブの管理、及びプリンタ２のメンテナンスを実行するためのプログラムである。アクセス可能領域３５は、プリンタドライバ３３や双方向スクリプト３７などがアクセス可能な記憶領域として設定される。アクセス可能領域３５については後で詳しく説明する。
【００１８】
スプーラ３６は、ＯＳ３１において印刷機能を管理するソフトウェアモジュール（以下、モジュールと称する）であり、プリンタドライバ３３と非同期で双方向通信を行う。プリンタドライバ３３から双方向リクエストを受信すると、スプーラ３６は、プリンタ２との双方向通信を行うため、双方向スクリプト３７を呼び出す。また、スプーラ３６には、ＲＱＩＤ付レスポンスデータなどのデータを一時的に記憶するキャッシュ３６ａが設けられている。
双方向スクリプト３７は、スプーラ３６から呼び出されるスクリプトプログラムであり、プリンタ２と双方向の同期通信を行う。例えば、スプーラ３６から双方向リクエストを受信すると、双方向スクリプト３７は、プリンタ２に双方向リクエストを送信した後、プリンタ２からのレスポンスデータ（機器情報）を取得する。双方向スクリプト３７は、アクセス可能領域３５に記憶されたリクエストＩＤを読み出し可能であるととともに、レスポンスデータにリクエストＩＤを付加（追加）してＲＱＩＤ付レスポンスデータを生成可能である。加えて、双方向スクリプト３７は、生成したＲＱＩＤ付レスポンスデータをスプーラ３６のキャッシュ３６ａに記憶させることができる。
【００１９】
プリンタドライバ３３について説明する。プリンタドライバ３３は、ＵＩ（User Interface）部３３ａ、禁則スクリプト部３３ｄ、及び描画部３３ｅを備えている。
ＵＩ部３３ａは、ＵＩ表示部３３ｂ、及び双方向通信部３３ｃをモジュールとして備えている。ＵＩ表示部３３ｂは、表示装置６にＵＩ画面を表示させるとともに、ユーザによる入力操作を受け付ける。受け付けた入力操作がプリンタ２との双方向通信を必要とする場合、ＵＩ表示部３３ｂは、プリンタ２との双方向通信が必要である旨を双方向通信部３３ｃへ伝える。例えば、ユーザが入力装置５を操作し、プリンタドライバ３３のデバイスプロパティ画面を開いた場合、ＵＩ表示部３３ｂは機器情報を取得するための要求を双方向通信部３３ｃに出力する。
【００２０】
当該要求を受けて、双方向通信部３３ｃは、プリンタ２との双方向通信を行うため双方向リクエスト（取得要求）を送信し、プリンタ２から機器情報（レスポンスデータ）を取得する。双方向通信部３３ｃは、例えば、プリンタドライバ３３のデバイスプロパティ画面を開く操作が行われた場合、双方向リクエストをスプーラ３６に送信する。また、双方向通信部３３ｃは、双方向リクエストの送信から予め定められた時間の経過後、スプーラ３６のキャッシュ３６ａに記憶されたＲＱＩＤ付レスポンスデータを取得する。双方向通信部３３ｃは、取得したＲＱＩＤ付レスポンスデータに含まれる機器情報を、ＵＩ表示部３３ｂと連携してＵＩ画面に表示させる。
禁則スクリプト部３３ｄは、印刷処理における各種の禁則設定を制御するスクリプトプログラムである。描画部３３ｅは、印刷対象の画像データを受け付け、印刷の設定に従って描画処理を行うモジュールである。描画部３３ｅによって、プリンタ２が解釈可能な印刷命令が生成される。
【００２１】
アクセス可能領域３５について説明する。本実施形態のアクセス可能領域３５は、プリンタドライバ３３がＶ４プリンタドライバであることから、記憶領域としてドライバプロパティバッグ３５ａ、キュープロパティバッグ３５ｂ、ユーザプロパティバッグ３５ｃ、及び独自領域３５ｄを備えている。このように、アクセス可能領域３５は複数の記憶領域を備えているが、アクセスできる権限はモジュールごとに異なっている。
ドライバプロパティバッグ３５ａは、プリンタドライバ３３による情報の読み出しのみが可能な記憶領域であり、ドライバ単位で割り当てられる。ドライバプロパティバッグ３５ａには、プリンタドライバ３３の構成ファイルを格納することができる。構成ファイルは、ドライバプロパティバッグ３５ａへの格納前に予め決定されている。
キュープロパティバッグ３５ｂは、プリンタドライバ３３による情報の読み出しと書き込み（書き込みは権限に依存する）の双方が可能な記憶領域であり、プリンタアイコン（論理プリンタ）単位で割り当てられる。キュープロパティバッグ３５ｂには、プリンタアイコンごとの情報を格納することができる。また、キュープロパティバッグ３５ｂに記憶された情報には、双方向スクリプト３７などの他のモジュールからアクセスすることができる。
【００２２】
ユーザプロパティバッグ３５ｃは、プリンタドライバ３３による情報の読み出しと書き込みの双方が可能な記憶領域であり、プリンタアイコン単位且つユーザ単位で割り当てられる。このため、ユーザプロパティバッグ３５ｃには、プリンタアイコンごとに複数のユーザの情報を格納することができる。そして、プリンタドライバ３３は、他ユーザの情報にはアクセスできない。
独自領域３５ｄは、独自に決められたフォーマットの情報を格納することができる記憶領域である。
【００２３】
＜非同期の双方向通信における比較例のシーケンスについて＞
ここで、プリンタドライバ３３による非同期の双方向通信について、一般的なＶ４プリンタドライバによる比較例のシーケンスを説明する。図５は、非同期の双方向通信における比較例のシーケンスを説明する図である。
図５に示すように、比較例のシーケンスでは、プリンタドライバ３３のデバイスプロパティ画面を開く操作をユーザが行うと（Ｓ１）、プリンタドライバ３３は、プリンタ２の機器情報の取得を要求する双方向リクエストをＯＳ３１に送信する（Ｓ２）。
デバイスプロパティ画面を開く操作としては、例えば、図６に示すドライバ印刷設定画面１０１が表示装置６に表示された状態でユーザが入力装置５を操作し、プリンタプロパティの開操作ボタン（Printer Propertiesボタン）１０１ａを選択して実行させる操作が挙げられる。ドライバ印刷設定画面１０１は、例えば印刷実行時に印刷設定を変えるため、ユーザがプリンタドライバ３３の印刷設定画面を開く操作を行った時に、ＵＩ表示部３３ｂが表示装置６に表示する。
デバイスプロパティ画面を開く他の操作としては、例えば、図７に示すように、プリンタアイコンの一覧画面１０２から設定対象プリンタのメニュー画面１０２ａを開いた状態で、ドライバプロパティの開操作ボタン（V4 Generic Driver Propertiesボタン）１０２ｂを選択して実行させる操作が挙げられる。メニュー画面１０２ａは、例えばプリンタ２における標準の印刷設定を変える場合に、ＵＩ表示部３３ｂが表示装置６に表示する。
プリンタドライバ３３とＯＳ３１との間では非同期通信が行われていることから、図５に示すように、プリンタドライバ３３は、双方向リクエストをＯＳ３１に送信すると双方向リクエストに対応するＯＳ３１からのレスポンスデータの受信を待たずに解放される。
【００２４】
ＯＳ３１は、プリンタドライバ３３から双方向リクエストを受信すると、プリンタ２に対して双方向リクエストを送信する（Ｓ３）。ＯＳ３１とプリンタ２との間では同期通信が行われていることから、ＯＳ３１は双方向リクエストを送信した後、プリンタ２からのレスポンスデータを待つ。プリンタ２は、ＯＳ３１から双方向リクエストを受信すると、機器情報を双方向リクエストに対するレスポンスデータとしてＯＳ３１に送信する（Ｓ４）。ＯＳ３１は、プリンタ２からのレスポンスデータ（機器情報）を受信したことに伴い、受信したレスポンスデータを記憶する。
プリンタドライバ３３は、ＯＳ３１への双方向リクエストの送信後、予め定められた時間が経過したことを条件に、ＯＳ３１からレスポンスデータを取得する（Ｓ５）。プリンタドライバ３３は、取得したレスポンスデータ（機器情報）をＵＩ画面に表示させる（Ｓ６）。
【００２５】
以上の比較例において、プリンタ２からのレスポンスデータをＯＳ３１が受信するよりも前に、プリンタドライバ３３がＯＳ３１からレスポンスデータを取得してしまった場合には、レスポンスデータが取得できなかったり、ＯＳ３１に一時記憶された古いレスポンスデータを誤って取得してしまったりする不都合が生じ得る。
【００２６】
本実施形態では、このような不都合を抑制するため、リクエストＩＤ（識別情報）を用いて夫々の双方向リクエスト（識別情報）を識別し、リクエストＩＤに基づいてプリンタ２の機器情報を取得するか否かを判断する構成を採っている。
図４に示すように、プリンタドライバ３３が備える双方向通信部３３ｃは、双方向リクエストを送信するごとに、アクセス可能領域３５（キュープロパティバッグ３５ｂ）にリクエストＩＤを書き込む。スプーラ３６に呼び出された双方向スクリプト３７は、プリンタ２からレスポンスデータを受信した場合、アクセス可能領域３５からリクエストＩＤを読み込むとともに、読み込んだリクエストＩＤをレスポンスデータに付加し、ＲＱＩＤ付レスポンスデータを生成する。そして、ＲＱＩＤ付レスポンスデータをスプーラ３６のキャッシュ３６ａに記憶させる。キャッシュ３６ａに記憶されたＲＱＩＤ付レスポンスデータは、双方向通信部３３ｃによる取得要求に応じて、双方向通信部３３ｃに取得（通知）される。双方向通信部３３ｃは、アクセス可能領域３５に書き込んだリクエストＩＤとキャッシュ３６ａに記憶されたＲＱＩＤ付レスポンスデータのリクエストＩＤとを比較し、両リクエストＩＤが同じであれば双方向リクエストに対するレスポンスデータ（機器情報）が得られたと判断し、ＲＱＩＤ付レスポンスデータからレスポンスデータを取得する。一方、両リクエストＩＤが異なっていれば、双方向リクエストに対するレスポンスデータは得られていないと判断し、ＲＱＩＤ付レスポンスデータからレスポンスデータを取得しない。
【００２７】
以下、プリンタ２の機器情報の取得について詳細に説明する。
＜第１実施形態における機器情報の取得シーケンス＞
図８は、本発明の第１実施形態に係る機器情報の取得シーケンスを説明する図である。上述したように、ＵＩ表示部３３ｂ及び双方向通信部３３ｃは、プリンタドライバ３３が備えるモジュールである。アクセス可能領域３５は、双方向通信部３３ｃや双方向スクリプト３７から情報の書き込みや読み出しが可能な記憶領域である。スプーラ３６はＯＳ３１のモジュールであり、双方向スクリプト３７はスプーラ３６によって呼び出されるスクリプトである。
図８に示すように、ユーザが入力装置５を操作し、プリンタドライバ３３のデバイスプロパティ画面を開く操作を行うと、ＵＩ表示部３３ｂは、機器情報を取得するための要求を双方向通信部３３ｃに出力する（Ｓ１１）。デバイスプロパティ画面を開く操作としては、例えば、図６で説明したプリンタプロパティの開操作ボタン１０１ａの実行操作、及び図７で説明したドライバプロパティの開操作ボタン１０２ｂの実行操作が挙げられる。
【００２８】
当該要求に応じて、双方向通信部３３ｃはリクエストＩＤを生成する（Ｓ１２）。リクエストＩＤは、双方向リクエストやプリンタ２からの機器情報を一意に識別する識別情報に相当し、ＵＩ表示部３３ｂから機器情報を取得するための要求が出力されるごとに生成される。リクエストＩＤは、双方向通信部３３ｃが生成する不規則な値であり、疑似乱数生成アルゴリズムにより生成される乱数や、双方向通信部３３ｃが双方向リクエスト（取得要求）を取得した日時の情報等に基づいて生成される不規則な値等である。図９には、生成されたリクエストＩＤの例として「９８５７３４０９８５７」という１１桁の不規則な数値が記載されている。リクエストＩＤの値は、一意な値を取ることができればよいので、数値に限らず文字や記号も使用できる。また、不規則な数値等に限らず、双方向リクエストを受信する度にインクリメント（＋１）されるカウントアップ値としてもよい。双方向通信部３３ｃは、リクエストＩＤの値については機器情報の取得要求が出力される毎に生成するが、同じ値のリクエストＩＤを連続して生成しない。
【００２９】
双方向通信部３３ｃは、生成したリクエストＩＤをアクセス可能領域３５（詳しくはキュープロパティバッグ３５ｂ）に記憶する（Ｓ１３）。リクエストＩＤをアクセス可能領域３５に記憶させる理由は、リクエストＩＤをスプーラ３６に対して直接送信することができないためである。双方向通信部３３ｃは、アクセス可能領域３５にリクエストＩＤを記憶させる場合、図９のようにキーと値のペアを指定する（キーと値のペアを指定することが書き込み命令に相当する）。これにより、アクセス可能領域３５におけるキーが指定する領域に、リクエストＩＤの値が記憶される。アクセス可能領域３５にリクエストＩＤを記憶させる場合、キーが固定であることから、リクエストＩＤの値がその都度上書きされることになる。その結果、アクセス可能領域３５には、最新のリクエストＩＤが記憶される。
【００３０】
リクエストＩＤを記憶させた後、双方向通信部３３ｃは、双方向リクエストをスプーラ３６に送信する（Ｓ１４）。スプーラ３６側の処理は双方向通信部３３ｃの処理とは非同期で行われるため、双方向通信部３３ｃは双方向リクエストに対応するレスポンスデータ（機器情報）を取得するまで処理を待たされることはなく、双方向リクエストの送信後に解放される。
なお、本実施形態において、双方向通信部３３ｃは、リクエストＩＤを記憶させた後に双方向リクエストを送信しているが、双方向リクエストの送信と略同時であれば、双方向リクエストの送信後にリクエストＩＤを記憶させてもよい。
【００３１】
双方向通信部３３ｃからの双方向リクエストを受信したスプーラ３６は、受信した双方向リクエストを双方向スクリプト３７に送信する（Ｓ２１）。スプーラ３６からの双方向リクエストを受信した双方向スクリプト３７は、プリンタ２に双方向リクエストを送信する（Ｓ２２）。双方向スクリプト３７とプリンタ２との間では同期通信が行われている。したがって、双方向スクリプト３７は、プリンタ２に双方向リクエストを送信した後、プリンタ２からレスポンスデータを取得する（Ｓ２３）。すなわち、プリンタ２は、双方向リクエストを受信した後、双方向スクリプト３７からの機器情報の取得要求に対して、機器情報をレスポンスデータとして送信する（Ｓ２３）。
【００３２】
プリンタ２は、例えば、図１０に示す機器情報をレスポンスデータとして送信する。図１０の例では、プリンタ２のオプションとして「両面印刷ユニット（ＤｕｐｌｅｘＵｎｉｔ）」及び「ハードディスクドライブ装置」が装着され、プリンタ２に装着された「メモリの容量が２５６ＭＢ」であり、「用紙トレイ１の用紙サイズがＡ４」であり、「手差しトレイの用紙サイズがＡ５」であることが表されている。
プリンタ２からのレスポンスデータ（機器情報）を受信した双方向スクリプト３７は、アクセス可能領域３５（キュープロパティバッグ３５ｂ）からリクエストＩＤを読み取る（Ｓ２４）。リクエストＩＤをアクセス可能領域３５から読み取る理由は、上述したようにリクエストＩＤを双方向通信部３３ｃから直接受信できないためである。双方向スクリプト３７は、アクセス可能領域３５からリクエストＩＤを読み取る場合、キー（図９の「ＢｉｄｉＲｅｑｕｅｓｔＩＤ」）のみを指定する（キーのみを指定することが読み出し命令に相当する）。したがって、キーに保存されているリクエストＩＤの値が読み取られる。
【００３３】
双方向スクリプト３７は、プリンタ２から受信したレスポンスデータに、アクセス可能領域３５から読み込んだリクエストＩＤの値を追加（付加）することでＲＱＩＤ付レスポンスデータを生成し（Ｓ２５）、ＲＱＩＤ付レスポンスデータをスプーラ３６に送信する（Ｓ２６）。スプーラ３６は、受信したＲＱＩＤ付レスポンスデータをキャッシュ３６ａに記憶する（Ｓ２６）。
双方向リクエストをスプーラ３６に送信した後、双方向通信部３３ｃは、予め定められた所定時間待機する（Ｓ３１）。待機時間は、スプーラ３６がＲＱＩＤ付レスポンスデータを記憶するまでに通常必要な一定時間に定められる。
【００３４】
一定時間待機した後、双方向通信部３３ｃは、スプーラ３６に対してＲＱＩＤ付レスポンスデータの取得要求を行う（Ｓ３２）。スプーラ３６から取得（通知）されるＲＱＩＤ付レスポンスデータは、ステップＳ３２の取得要求を行った時点でスプーラ３６のキャッシュ３６ａに記憶されているＲＱＩＤ付レスポンスデータである。
したがって、ステップＳ３２の取得要求を行った時点で、ステップＳ２１〜Ｓ２６の処理が終了していた場合、スプーラ３６から取得されるＲＱＩＤ付レスポンスデータは最新の機器情報を反映したデータとなる。一方、ステップＳ３２の取得要求を行った時点で、ステップＳ２１〜Ｓ２６の処理が終了していなかった場合、スプーラ３６から取得されるＲＱＩＤ付レスポンスデータは最新の機器情報を反映していない古いデータとなる。
【００３５】
双方向通信部３３ｃは、アクセス可能領域３５に記憶したリクエストＩＤとＲＱＩＤ付レスポンスデータに含まれるリクエストＩＤとを比較する（Ｓ３３）。両リクエストＩＤが同じ値の場合、双方向通信部３３ｃは、ステップＳ１４で送信した双方向リクエストに対応するＲＱＩＤ付レスポンスデータが返ってきたと判断する。この場合、双方向通信部３３ｃは、キャッシュ３６ａに記憶されたＲＱＩＤ付レスポンスデータに含まれるレスポンスデータを取得すると判断する。一方、両リクエストＩＤが異なる値の場合、双方向通信部３３ｃは、スプーラ３６から取得したＲＱＩＤ付レスポンスデータは、古いデータであったと判断する。言い換えれば、双方向通信部３３ｃは、スプーラ３６がプリンタ２から機器情報を取得する処理を完了していないと判断する。この場合、双方向通信部３３ｃは、キャッシュ３６ａに記憶されたＲＱＩＤ付レスポンスデータに含まれるレスポンスデータを取得しないと判断する。
したがって、両リクエストＩＤが同じ値の場合、双方向通信部３３ｃは、ＲＱＩＤ付レスポンスデータからレスポンスデータ（機器情報）を取得し、取得した機器情報をＵＩ表示部３３ｂに表示させる（Ｓ４１）。ＵＩ表示部３３ｂは、例えば図１１に示す表示画面１０３を表示装置６に表示させる。表示画面１０３には、オプションとして「両面印刷ユニット」及び「ハードディスクドライブ装置」が装着され、装着された「メモリの容量が２５６ＭＢ」であり、「用紙トレイ１の用紙サイズがＡ４」であり、「手差しトレイの用紙サイズがＡ５」であることが示されている。
【００３６】
一方、両リクエストＩＤが異なる値の場合、双方向通信部３３ｃは、ＲＱＩＤ付レスポンスデータからレスポンスデータを取得せず、再度一定時間待機（Ｓ３４）した後、スプーラ３６に対してＲＱＩＤ付レスポンスデータの取得要求を行う（Ｓ３５）。これにより、スプーラ３６からＲＱＩＤ付レスポンスデータが取得（通知）される。双方向通信部３３ｃは、アクセス可能領域３５に記憶したリクエストＩＤとＲＱＩＤ付レスポンスデータに含まれるリクエストＩＤとを比較する（Ｓ３６）。両リクエストＩＤが同じ値の場合、双方向通信部３３ｃは、ＲＱＩＤ付レスポンスデータからレスポンスデータ（機器情報）を取得し、取得した機器情報をＵＩ表示部３３ｂに表示させる（Ｓ４１´）。一方、両リクエストＩＤが異なる値の場合、ＲＱＩＤ付レスポンスデータからレスポンスデータを取得せず、上述したステップＳ３４〜Ｓ３６の処理を繰り返し行う。
【００３７】
以上の説明から明らかなように、第１実施形態の印刷システム１０では、プリンタドライバ３３の双方向通信部３３ｃが、双方向リクエストを送る際にアクセス可能領域３５にリクエストＩＤを書き込んでおり、双方向スクリプト３７が、アクセス可能領域３５に書き込まれたリクエストＩＤを読み込んで、ＲＱＩＤ付レスポンスデータとしてスプーラ３６のキャッシュ３６ａに記憶させている。
双方向通信部３３ｃは、ＲＱＩＤ付レスポンスデータに含まれるリクエストＩＤに基づいて、キャッシュ３６ａに記憶されたＲＱＩＤ付レスポンスデータに含まれるレスポンスデータ（機器情報）を取得するか否かを判断する。すなわち、双方向通信部３３ｃは、生成したリクエストＩＤとＲＱＩＤ付レスポンスデータに含まれるリクエストＩＤとを比較し、両リクエストＩＤが同じ値であれば、直近の双方向リクエストに対するレスポンスデータと判断し、当該ＲＱＩＤ付レスポンスデータに含まれるレスポンスデータを取得する。
その結果、同期通信のように双方向リクエストに対するレスポンスが得られ、プリンタ２とコンピュータ装置１との双方向通信が非同期で行われても、取得すべき機器情報とは異なる機器情報がコンピュータ装置１に取得されてしまう不都合を抑制できる。
【００３８】
＜第２実施形態について＞
第１実施形態の印刷システム１０では、デバイスプロパティ画面の開操作に応じて双方向通信部３３ｃが生成したリクエストＩＤを用いていたが、この構成に限定されない。例えば、プリンタ２からのレスポンスデータ（機器情報）の受信に応じて双方向スクリプト３７が生成したレスポンスＩＤ（機器情報を識別する識別情報）を用いてもよい。
以下、レスポンスＩＤを用いた第２実施形態の印刷システムについて説明する。以下の説明において、第１実施形態と同じ構成については、同じ符号を付して説明を適宜省略し、相違点を中心に説明する。
図１２は、本発明の第２実施形態に係る印刷システム１０Ａの機能ブロック図である。図１２に示すように、第２実施形態の印刷システム１０Ａは、コンピュータ装置１とプリンタ２とを備える。印刷システム１０Ａは、第１実施形態の印刷システム１０とは、アクセス可能領域３５を省略した点、及び双方向通信部３３ｆの構成が異なる。
【００３９】
コンピュータ装置１の各機能ブロックは、記憶装置１８に記憶された各種のプログラムをコンピュータ装置１のＣＰＵ１１が読み出し、ＲＡＭ１３に展開して実行することにより実現される。
コンピュータ装置１ではＯＳ３１が動作し、ＯＳ３１の上でアプリケーション３２、プリンタドライバ３３、ストアデバイスアプリ３４、スプーラ３６、及び双方向スクリプト３７が動作している。
プリンタドライバ３３は、例えばＶ４プリンタドライバであり、ＵＩ部３３ａ、禁則スクリプト部３３ｄ、及び描画部３３ｅを備える。ＵＩ部３３ａは、ＵＩ表示部３３ｂ、及び双方向通信部３３ｆをモジュールとして備える。
双方向通信部３３ｆは、スプーラ３６に双方向リクエスト（機器情報の取得要求）を送信する双方向リクエスト送信部３３ｇと、スプーラ３６からＲＳＩＤ付レスポンスデータ（後述）などを取得する双方向レスポンス取得部３３ｈと、レスポンスＩＤなどを記憶するレスポンスＩＤ記憶部３３ｉとを備える。
【００４０】
詳細は後述するが、第２実施形態において双方向スクリプト３７は、プリンタ２からレスポンスデータを受信する度にレスポンスＩＤを生成し、レスポンスデータにレスポンスＩＤを付加することでＲＳＩＤ付レスポンスデータを生成する。双方向スクリプト３７は、生成したＲＳＩＤ付レスポンスデータをスプーラ３６のキャッシュ３６ａに記憶させる。
双方向リクエスト送信部３３ｇは、ＵＩ表示部３３ｂから機器情報の取得要求を受け付けると、スプーラ３６に双方向リクエストを送信する。スプーラ３６は、双方向リクエストの受信に伴って、キャッシュ３６ａの記憶内容をキャッシュデータとして直ちに返信する。この時、キャッシュ３６ａにＲＳＩＤ付レスポンスデータが記憶されていれば、キャッシュデータとしてＲＳＩＤ付レスポンスデータが返信される。一方、キャッシュ３６ａにＲＳＩＤ付レスポンスデータが記憶されていなければ（プリンタ２との間で初回の双方向通信が行われる前であれば）、キャッシュデータとして空データ（例えばnullデータ）が返信される。
双方向レスポンス取得部３３ｈは、スプーラ３６がＲＳＩＤ付レスポンスデータを返信した場合、ＲＳＩＤ付レスポンスデータに含まれるレスポンスＩＤをレスポンスＩＤ記憶部３３ｉに記憶させる。なお、スプーラ３６が空データを返信した場合、双方向レスポンス取得部３３ｈは、空データをレスポンスＩＤ記憶部３３ｉに記憶させる。
【００４１】
双方向レスポンス取得部３３ｈは、キャッシュデータの受信から予め定められた所定時間待機した後にスプーラ３６からＲＳＩＤ付レスポンスデータを取得し、ＲＳＩＤ付レスポンスデータに含まれるレスポンスＩＤとレスポンスＩＤ記憶部３３ｉのレスポンスＩＤと比較する。
両レスポンスＩＤが不一致であった場合、双方向レスポンス取得部３３ｈは、レスポンスデータが更新されたと判断する。双方向レスポンス取得部３３ｈは、レスポンスデータが更新された場合にＲＳＩＤ付レスポンスデータからレスポンスデータを取得する。なお、双方向レスポンス取得部３３ｈは、レスポンスＩＤ記憶部３３ｉに空データが記憶された状態でＲＳＩＤ付レスポンスデータを受信した場合も、レスポンスデータが更新されたと判断する。
ＲＳＩＤ付レスポンスデータに含まれるレスポンスＩＤとレスポンスＩＤ記憶部３３ｉのレスポンスＩＤが一致している場合、双方向レスポンス取得部３３ｈは、レスポンスデータが更新されていないと判断する。この場合、双方向レスポンス取得部３３ｈは、ＲＳＩＤ付レスポンスデータからレスポンスデータを取得しない。
【００４２】
第２実施形態においても、第１実施形態と同様に、同期通信のように双方向リクエストに対するレスポンスが得られ、プリンタ２とコンピュータ装置１との双方向通信が非同期で行われても、取得すべき機器情報とは異なる機器情報がコンピュータ装置１に取得されてしまう不都合を抑制できる。
さらに、この第２実施形態では、第１実施形態で説明したキュープロパティバッグ３５ｂに対するアクセス権限がないユーザであっても、双方向通信を実現することができる。
【００４３】
以下、第２実施形態におけるプリンタ２の機器情報の取得について詳細に説明する。
＜第２実施形態における機器情報の取得シーケンス＞
図１３は、本発明の第２実施形態に係る機器情報の取得シーケンスを説明する図である。ＵＩ表示部３３ｂ、双方向リクエスト送信部３３ｇ、及び双方向レスポンス取得部３３ｈは、プリンタドライバ３３が備えるモジュールである。レスポンスＩＤ記憶部３３ｉは、双方向通信部３３ｆの記憶領域として設定される。スプーラ３６はＯＳ３１のモジュールであり、双方向スクリプト３７はスプーラ３６によって呼び出されるスクリプトである。
【００４４】
図１３に示すように、ユーザが入力装置５を操作し、プリンタドライバ３３のデバイスプロパティ画面を開く操作を行うと、ＵＩ表示部３３ｂは、機器情報を取得するための要求を双方向通信部３３ｃに出力する（Ｓ５１）。デバイスプロパティ画面を開く操作としては、例えば、図６で説明したプリンタプロパティの開操作ボタン１０１ａの実行操作、及び図７で説明したドライバプロパティの開操作ボタン１０２ｂの実行操作が挙げられる。
当該要求に応じて、双方向リクエスト送信部３３ｇは、双方向リクエストをスプーラ３６に送信する（Ｓ５２）。スプーラ３６は、双方向リクエストを受信すると、キャッシュデータ（キャッシュ３６ａに記憶されたＲＳＩＤ付レスポンスデータ）を返信する。双方向レスポンス取得部３３ｈは、ＲＳＩＤ付レスポンスデータからレスポンスＩＤを取得し（Ｓ５３）、レスポンスＩＤ記憶部３３ｉに記憶させる（Ｓ５４）。なお、キャッシュデータが空データであった場合、双方向レスポンス取得部３３ｈは、キャッシュデータに基づいて空データを取得し、レスポンスＩＤ記憶部３３ｉに記憶させる（後述するステップＳ７２、Ｓ９２において同じ）。
【００４５】
双方向リクエスト送信部３３ｇからの双方向リクエストを受信したスプーラ３６は、受信した双方向リクエストを双方向スクリプト３７に送信する（Ｓ６１）。スプーラ３６からの双方向リクエストを受信した双方向スクリプト３７は、プリンタ２に双方向リクエストを送信する（Ｓ６２）。双方向スクリプト３７とプリンタ２との間では同期通信が行われている。したがって、双方向スクリプト３７は、プリンタ２に双方向リクエストを送信した後、プリンタ２からレスポンスデータを取得する（Ｓ６３）。すなわち、プリンタ２は、双方向リクエストを受信した後、双方向スクリプト３７からの機器情報の取得要求に対して、機器情報をレスポンスデータとして送信する（Ｓ６３）。
双方向スクリプト３７は、プリンタ２からレスポンスデータを取得すると、レスポンスＩＤを生成する（Ｓ６４）。レスポンスＩＤは、プリンタ２から取得したレスポンスデータ（機器情報）を一意に識別する識別情報に相当する。レスポンスＩＤは、双方向スクリプト３７が生成する不規則な値であり、疑似乱数生成アルゴリズムにより生成される乱数や、双方向スクリプト３７がレスポンスデータを取得した日時の情報等に基づいて生成される不規則な値等である。レスポンスＩＤの値は、一意な値を取ることができればよいので、数値に限らず文字や記号も使用できる。また、不規則な数値等に限らず、レスポンスデータを取得する度にインクリメント（＋１）されるカウントアップ値としてもよい。双方向スクリプト３７は、レスポンスデータを取得する毎にレスポンスＩＤを生成するが、同じ値のレスポンスＩＤを連続して生成しない。
双方向スクリプト３７は、生成したレスポンスＩＤをレスポンスデータに追加（付加）することでＲＳＩＤ付レスポンスデータを生成する（Ｓ６５）。双方向スクリプト３７は、ＲＳＩＤ付レスポンスデータをスプーラ３６のキャッシュ３６ａに記憶させる（Ｓ６６）。
【００４６】
双方向レスポンス取得部３３ｈは、レスポンスＩＤをレスポンスＩＤ記憶部３３ｉに記憶させた後（Ｓ５４）、予め定められた所定時間待機する（Ｓ７１）。待機時間は、スプーラ３６のキャッシュ３６ａに新たなＲＳＩＤ付レスポンスデータが記憶されるまでに通常必要な一定時間に定められる。
一定時間待機した後、双方向レスポンス取得部３３ｈは、スプーラ３６に対してＲＳＩＤ付レスポンスデータの取得要求を行う（Ｓ７２）。この取得要求に応じてスプーラ３６からＲＳＩＤ付レスポンスデータが送信（通知）される。
ステップＳ７２の取得要求を行った時点でステップＳ６１〜Ｓ６６の処理が終了していた場合、スプーラ３６のキャッシュ３６ａには、最新のＲＳＩＤ付レスポンスデータが記憶される。この場合、スプーラ３６からは最新のＲＳＩＤ付レスポンスデータが送信される。一方、ステップＳ７２の取得要求を行った時点でステップＳ６１〜Ｓ６６の処理が終了していなかった場合、キャッシュ３６ａには、ステップＳ５２で取得したＲＳＩＤ付レスポンスデータが記憶されている。したがって、スプーラ３６から送信されるＲＳＩＤ付レスポンスデータは、前回から変更されない。
【００４７】
双方向レスポンス取得部３３ｈは、レスポンスＩＤ記憶部３３ｉに記憶されたレスポンスＩＤを読み取り（Ｓ７３）、ステップＳ７２で取得したＲＳＩＤ付レスポンスデータに含まれるレスポンスＩＤと比較する（Ｓ７４）。
比較したレスポンスＩＤが相違した場合、双方向レスポンス取得部３３ｈは、レスポンスデータが更新されたと判断する。言い換えれば、双方向レスポンス取得部３３ｈは、キャッシュ３６ａに記憶されたＲＳＩＤ付レスポンスデータに含まれるレスポンスデータを取得すると判断する。この場合、双方向レスポンス取得部３３ｈは、ＲＳＩＤ付レスポンスデータからレスポンスデータ（機器情報）を取得し、取得した機器情報をＵＩ表示部３３ｂに表示させる（Ｓ８１）。ＵＩ表示部３３ｂは、例えば図１１で説明した表示画面１０３を表示装置６に表示させる。
【００４８】
一方、比較したレスポンスＩＤが同じ場合、双方向レスポンス取得部３３ｈは、ＲＳＩＤ付レスポンスデータに含まれるレスポンスデータを取得しないと判断する。この場合、双方向レスポンス取得部３３ｈは、予め定められた所定時間待機する（Ｓ９１）。
所定時間待機した後、双方向レスポンス取得部３３ｈは、スプーラ３６に対してＲＳＩＤ付レスポンスデータの取得要求を行う（Ｓ９２）。この取得要求に応じてスプーラ３６からＲＳＩＤ付レスポンスデータが送信（通知）される。双方向レスポンス取得部３３ｈは、レスポンスＩＤ記憶部３３ｉに記憶されたレスポンスＩＤを読み取り（Ｓ９３）、ステップＳ９２で取得したＲＳＩＤ付レスポンスデータに含まれるレスポンスＩＤと比較する（Ｓ９４）。
比較したレスポンスＩＤが相違した場合、双方向レスポンス取得部３３ｈは、レスポンスデータが更新されたとして、ＲＳＩＤ付レスポンスデータからレスポンスデータ（機器情報）を取得し、取得した機器情報をＵＩ表示部３３ｂに表示させる（Ｓ８１´）。一方、比較したデータが同じ場合、双方向レスポンス取得部３３ｈは、上述したステップＳ９１〜Ｓ９４の処理を繰り返し行う。
【００４９】
以上の説明から明らかなように、第２実施形態の印刷システム１０Ａでは、双方向スクリプト３７が、プリンタ２からレスポンスデータ（機器情報）を取得した場合にレスポンスＩＤを生成するとともに、ＲＳＩＤ付レスポンスデータを生成する。さらに、双方向スクリプト３７は、ＲＳＩＤ付レスポンスデータをスプーラ３６のキャッシュ３６ａに記憶させる。双方向レスポンス取得部３３ｈは、キャッシュデータをキャッシュ３６ａから取得し、ＲＳＩＤ付レスポンスデータに含まれるレスポンスＩＤをレスポンスＩＤ記憶部３３ｉに記憶させる。さらに、双方向レスポンス取得部３３ｈは、キャッシュ３６ａから新たに取得したＲＳＩＤ付レスポンスデータのレスポンスＩＤとレスポンスＩＤ記憶部３３ｉのレスポンスＩＤとを比較し、レスポンスＩＤ記憶部３３ｉに記憶されたレスポンスＩＤとＲＳＩＤ付レスポンスデータのレスポンスＩＤが不一致の場合、レスポンスデータが更新されたと判断して、ＲＳＩＤ付レスポンスデータのレスポンスデータを取得する。
その結果、同期通信のように双方向リクエストに対するレスポンスが得られ、プリンタ２とコンピュータ装置１との双方向通信が非同期で行われても、取得すべき機器情報とは異なる機器情報がコンピュータ装置１に取得されてしまう不都合を抑制できる。
さらに、この第２実施形態では、第１実施形態のキュープロパティバッグ３５ｂに対するアクセス権限がないユーザであっても、双方向通信を実現することができる。
【００５０】
＜変形例について＞
上述の第１実施形態において、双方向通信部３３ｃは、ステップＳ３３の処理で、アクセス可能領域３５に記憶したリクエストＩＤとＲＱＩＤ付レスポンスデータに含まれるリクエストＩＤとを比較していたが、この構成に限定されない。例えば、ステップＳ１２の処理で生成したリクエストＩＤを双方向通信部３３ｃが備えるキャッシュに記憶させ、ステップＳ３３の処理では双方向通信部３３ｃのキャッシュに記憶したリクエストＩＤとＲＱＩＤ付レスポンスデータに含まれるリクエストＩＤとを比較してもよい。
上述の第２実施形態において、レスポンスＩＤは一時的なデータとしてスプーラ３６のキャッシュ３６ａ（＝揮発性の記憶手段）に記憶されていたが、この構成に限定されない。例えば、双方向スクリプト３７は、レスポンスＩＤを不揮発性の記憶手段にデータファイルとして記憶させてもよい。レスポンスＩＤをデータファイルで不揮発性の記憶手段に記憶させた場合、ステップＳ５１から開始される一連の処理が終了してもレスポンスＩＤを保持できるので、例えば、ステップＳ７４の比較処理やステップＳ９４の比較処理の後に、レスポンスＩＤを記憶させてもよい。
【００５１】
上述の第１実施形態において、リクエストＩＤは、アクセス可能領域３５が備えるキュープロパティバッグ３５ｂに記憶されるが、双方向通信部３３ｃからの読み出しと書き込みが許容され、双方向スクリプト３７からの読み出しが許容される記憶領域であれば、キュープロパティバッグ３５ｂ以外の記憶領域を用いてもよい。
上述の各実施形態では、プリンタ２として、インクジェットプリンタを例に挙げて説明したが、プリンタ２の種類はインクジェットプリンタに限定されない。例えば、電子写真方式のプリンタであってよい。
【００５２】
上述の各実施形態では、コンピュータ装置１に接続される周辺機器として、プリンタ２を例示したが、周辺機器はプリンタ２に限定されない。例えば、複合機、コピー機、スキャナ、デジタルスチルカメラ、プロジェクタ、及び電子黒板など、画像形成に係る処理を行う装置を挙げることができる。
上述の各実施形態では、コンピュータ装置１（情報処理装置）とプリンタ２（画像処理装置）とを備える印刷システム１０、１０Ａを例示したが、本発明の適用対象は印刷システム１０、１０Ａに限られない。例えば、画像処理に係る処理を行う画像処理システムに適用できる。
【００５３】
[本発明の実施態様例と作用、効果のまとめ]
＜第一の実施態様＞
本態様に係る情報処理装置［コンピュータ装置１］は、画像処理装置［プリンタ２］の状態を示す状態情報［機器情報］を取得するものであり、画像処理装置から取得した状態情報と当該状態情報の識別情報［リクエストＩＤ、レスポンスＩＤ］とを対応付けて記憶する記憶手段［スプーラ３６のキャッシュ３６ａ］と、状態情報を要求する要求手段［ＵＩ表示部３３ｂ（Ｓ１１、Ｓ５１）］と、記憶手段に記憶された状態情報と識別情報とを、要求手段による要求に応じて通知する通知手段［双方向通信部３３ｃ（Ｓ３２、Ｓ３５）、双方向レスポンス取得部３３ｈ（Ｓ７２、Ｓ９２）］と、通知手段によって通知された識別情報に基づいて、記憶手段に記憶された状態情報を取得するか否かを判断する判断手段［双方向通信部３３ｃ（Ｓ３３、Ｓ３６）、双方向レスポンス取得部３３ｈ（Ｓ７４、Ｓ９４）］と、を備えることを特徴とする。
本態様においては、記憶手段に状態情報と当該状態情報の識別情報とを対応付けて記憶し、通知手段によって通知された識別情報に基づいて記憶手段に記憶された状態情報を取得するか否かを判断しているので、情報処理装置と画像処理装置との間の通信が非同期で行われても、取得すべき状態情報とは異なる状態情報が情報処理装置に取得されてしまう不都合を抑制できる。
【００５４】
＜第二の実施態様＞
本態様に係る情報処理装置［コンピュータ装置１］において、要求手段による要求に応じて識別情報を生成する識別情報生成手段［双方向通信部３３ｃ（Ｓ１２）］と、画像処理装置から取得した状態情報に識別情報を付加した付加後状態情報［ＲＱＩＤ付レスポンスデータ］を、記憶手段に記憶させる記憶制御手段［双方向スクリプト３７（Ｓ２６）］と、を備え、判断手段［双方向通信部３３ｃ（Ｓ３３、Ｓ３６）］は、付加後状態情報に含まれる識別情報と識別情報生成手段が生成した識別情報とが一致する場合、付加後状態情報に含まれる状態情報を取得すると判断することを特徴とする。
本態様においては、両識別情報が一致する場合には、付加後状態情報は取得すべき状態情報であると判断でき、両識別情報が不一致の場合には、付加後状態情報は取得すべきでない状態情報であると判断できる。その結果、被制御装置と情報処理装置との双方向通信が非同期で行われても、取得すべき状態情報とは異なる状態情報が情報処理装置に取得されてしまう不都合を抑制できる。
【００５５】
＜第三の実施態様＞
本態様に係る情報処理装置［コンピュータ装置１］において、通知手段［双方向通信部３３ｃ（Ｓ３５）］は、付加後状態情報に含まれる識別情報と識別情報生成手段が生成した識別情報とが不一致の場合、予め定められた待機時間の経過後に、記憶手段に記憶された付加後状態情報を通知することを特徴とする。
本態様においては、付加後状態情報に含まれる識別情報と識別情報記憶手段に記憶された識別情報とが不一致であっても、その後、新たな付加後状態情報が状態情報記憶手段に記憶され、両識別情報が一致した場合には取得すべき状態情報を取得することができる。
【００５６】
＜第四の実施態様＞
本態様に係る情報処理装置［コンピュータ装置１］において、識別情報生成手段［双方向通信部３３ｃ（Ｓ１２、Ｓ１３）］は、生成した識別情報を、付加後状態情報を生成する付加後状態情報生成手段［双方向スクリプト３７（Ｓ２５）］及び判断手段から読み出し可能な識別情報記憶手段［アクセス可能領域３５のキュープロパティバッグ３５ｂ］に記憶させることを特徴とする。
本態様においては、識別情報を直接送受信できなくても、識別情報記憶手段を介して識別情報の受け渡しを行うことができる。
【００５７】
＜第五の実施態様＞
本態様に係る情報処理装置［コンピュータ装置１］において、識別情報生成手段［双方向通信部３３ｃ（Ｓ１２）］は、要求手段による要求［ＵＩ表示部３３ｂ（Ｓ１１）］が行われるごとに、識別情報を不規則な値で生成することを特徴とする。
本態様においては、要求手段による要求が行われるごとに、識別情報が不規則な値で生成されるので、取得すべき状態情報とは異なる状態情報が情報処理装置に取得されてしまう不都合を高いレベルで抑制できる。
【００５８】
＜第六の実施態様＞
本態様に係る情報処理装置［コンピュータ装置１］において、画像処理装置［プリンタ２］から状態情報［機器情報］を取得した場合に、識別情報［レスポンスＩＤ］を生成する識別情報生成手段［双方向スクリプト３７（Ｓ６４）］と、画像処理装置から取得した状態情報に識別情報を付加した付加後状態情報［ＲＳＩＤ付レスポンスデータ］を、記憶手段［スプーラ３６のキャッシュ３６ａ］に記憶させる第１記憶制御手段［双方向スクリプト３７（Ｓ６６）］と、記憶手段に記憶された付加後状態情報に含まれる識別情報を、識別情報記憶手段［レスポンスＩＤ記憶部３３ｉ］に記憶させる第２記憶制御手段［双方向レスポンス取得部３３ｈ（Ｓ５４）］と、を備え、判断手段［双方向レスポンス取得部３３ｈ（Ｓ７４、Ｓ９４）］は、付加後状態情報に含まれる識別情報と識別情報記憶手段に記憶された識別情報とが不一致の場合に、付加後状態情報に含まれる状態情報を取得すると判断することを特徴とする。
本態様においては、両識別情報が不一致の場合には、付加後状態情報は取得すべき状態情報であると判断でき、両識別情報が一致する場合には、付加後状態情報は取得すべきでない状態情報であると判断できる。その結果、被制御装置と情報処理装置との双方向通信が非同期で行われても、取得すべき状態情報とは異なる状態情報が情報処理装置に取得されてしまう不都合を抑制できる。
【００５９】
＜第七の実施態様＞
本態様に係る情報処理装置［コンピュータ装置１］において、通知手段［双方向レスポンス取得部３３ｈ（Ｓ９２）］は、付加後状態情報に含まれる識別情報と識別情報記憶手段に記憶された識別情報とが一致する場合、予め定められた待機時間の経過後に、記憶手段に記憶された付加後状態情報を通知することを特徴とする。
本態様においては、付加後状態情報に含まれる識別情報と識別情報記憶手段に記憶された識別情報とが一致しても、その後、新たな付加後状態情報が状態情報記憶手段に記憶され、両識別情報が不一致になった場合には取得すべき状態情報を取得することができる。
【００６０】
＜第八の実施態様＞
本態様に係る情報処理装置［コンピュータ装置１］において、識別情報生成手段［双方向スクリプト３７（Ｓ６４）］は、画像処理装置から状態情報を取得するごとに、識別情報を不規則な値で生成することを特徴とする。
本態様においては、画像処理装置から状態情報を取得するごとに、識別情報が不規則な値で生成されるので、取得すべき状態情報とは異なる状態情報が情報処理装置に取得されてしまう不都合を高いレベルで抑制できる。
【符号の説明】
【００６１】
１…コンピュータ装置（情報処理装置），２…プリンタ（画像処理装置），１０、１０Ａ…印刷システム（画像処理システム），３１…ＯＳ，３３…プリンタドライバ，３３ａ…ＵＩ部，３３ｂ…ＵＩ表示部（要求手段），３３ｃ…双方向通信部（通知手段、判断手段、識別情報生成手段），３３ｈ…双方向レスポンス取得部（通知手段、判断手段、第２記憶制御手段），３３ｉ…レスポンスＩＤ記憶部（識別情報記憶手段），３４…ストアデバイスアプリ，３５…アクセス可能領域（識別情報記憶手段），３５ａ…ドライバプロパティバッグ，３５ｂ…キュープロパティバッグ，３５ｃ…ユーザプロパティバッグ，３５ｄ…独自領域，３６…スプーラ，３６ａ…キャッシュ（記憶手段），３７…双方向スクリプト（記憶制御手段、第１記憶制御手段、識別情報生成手段、付加後状態情報生成手段）
【先行技術文献】
【特許文献】
【００６２】
【特許文献１】特開２０１６−２１１５７公報
【図１】
2019016333.tif 000003
【図２】
2019016333.tif 000004
【図３】
2019016333.tif 000005
【図４】
2019016333.tif 000006
【図５】
2019016333.tif 000007
【図６】
2019016333.tif 000008
【図７】
2019016333.tif 000009
【図８】
2019016333.tif 000010
【図９】
2019016333.tif 000011
【図１０】
2019016333.tif 000012
【図１１】
2019016333.tif 000013
【図１２】
2019016333.tif 000014
【図１３】
2019016333.tif 000015