米国特許情報 | 欧州特許情報 | 国際公開(PCT)情報 | Google の米国特許検索
 
     特許分類
A 農業
B 衣類
C 家具
D 医学
E スポ−ツ;娯楽
F 加工処理操作
G 机上付属具
H 装飾
I 車両
J 包装;運搬
L 化学;冶金
M 繊維;紙;印刷
N 固定構造物
O 機械工学
P 武器
Q 照明
R 測定; 光学
S 写真;映画
T 計算機;電気通信
U 核技術
V 電気素子
W 発電
X 楽器;音響


  ホーム -> 計算機;電気通信 -> キヤノン株式会社

発明の名称 ジョブ状態監視システム、ジョブ状態監視方法、プログラム及び記憶媒体
発行国 日本国特許庁(JP)
公報種別 公開特許公報(A)
公開番号 特開2007−11469(P2007−11469A)
公開日 平成19年1月18日(2007.1.18)
出願番号 特願2005−188290(P2005−188290)
出願日 平成17年6月28日(2005.6.28)
代理人 【識別番号】100090538
【弁理士】
【氏名又は名称】西山 恵三
発明者 川嵜 敬二
要約 課題
ランゲージモニタのような監視手段とアプリケーションとのやり取りをもってジョブの監視を行う場合、アプリケーションプログラムが複雑化してしまう。本発明は、簡易な仕組みによる適確なジョブ状態の監視を行える仕組みを提供する。

解決手段
オペレーティングシステムのスプーラ304に、ジョブ発行要求に応じて発行されるジョブをグラフィックドライバ33を介して出力し、プリンタに出力されたジョブの状態を監視するランゲージモニタ308が、監視に基づきスプーラ304を制御し、上位アプリは、スプーラ304からジョブの情報を取得することにより、ジョブ状態を認識する。
特許請求の範囲
【請求項1】
所定のオペレーティングシステムを稼動可能で、且つ、プリンタと通信可能なジョブ状態監視システムであって、
前記オペレーティングシステムのジョブ管理手段に、ジョブ発行要求に応じて発行されるジョブを出力するジョブ出力手段と、
前記プリンタに出力されたジョブの状態を監視する監視手段とを有し、前記監視手段は、前記ジョブの状態の監視に基づき前記ジョブ管理手段を制御し、所定のアプリケーション又はユーティリティを含む上位手段によって、前記制御に基づき前記ジョブ管理手段により管理されるジョブの状態の認識がなされ、該認識の結果に基づく表示制御が行われることを特徴とするジョブ状態監視システム。
【請求項2】
前記監視手段は前記ジョブの状態の監視に基づき、前記ジョブ管理手段により管理されるジョブの前記プリンタへの転送が終了したとしてもジョブの状態を終了と管理させないよう、前記ジョブ管理手段に指示を行うことを特徴とする請求項1に記載のジョブ状態監視システム。
【請求項3】
前記上位手段から発行されるジョブにはメンテナンスジョブが含まれ、前記監視手段は、前記プリンタにおけるメンテナンスジョブの状態を監視し、前記メンテナンスジョブの状態の監視に基づき前記オペレーティングシステムのジョブ管理手段を制御することを特徴とする請求項1又は2に記載のジョブ状態監視システム。
【請求項4】
前記監視手段は、記録媒体への印刷出力を伴う印刷ジョブを受けた場合、前記受けた印刷ジョブの状態の監視結果をステータス表示アプリケーションに伝達する為の処理を行い、前記ステータス表示アプリケーションは伝達された監視結果の解釈に基づき表示制御を行い、他方、メンテナンスジョブを受けた場合、前記受けたジョブの状態の監視結果に基づき前記ジョブ管理手段を制御することを特徴とする請求項1に乃至3の何れかに記載のジョブ状態監視システム。
【請求項5】
前記監視手段は、前記上位手段から発行されるコマンドを解析する解析部を含み、前記制御手段は、前記解析部により、メンテナンスジョブであると解析された場合には、メンテナンスジョブに対応した前記ジョブ管理手段の制御を行い、印刷ジョブであると解析された場合には、印刷ジョブに対応した前記ジョブ管理手段の制御を行うことを特徴とする請求項1乃至4の何れかに記載のジョブ状態監視システム。
【請求項6】
前記メンテナンスジョブには、プリンタにおけるプリントヘッドのクリーニング指示、又は、プリントヘッドのノズルチェックパターン印刷の指示、又は、プリントヘッドの位置調整指示、又は、電源制御指示、又は、プリンタの動作モード変更指示が含まれることを特徴とする請求項3乃至5の何れかに記載のジョブ状態監視システム。
【請求項7】
前記監視手段はランゲージモニタを含み、前記ジョブ管理手段は前記所定のオペレーティングシステムにおけるスプーラを含むことを特徴とする請求項1乃至6の何れかに記載のジョブ状態監視システム。
【請求項8】
所定のオペレーティングシステムを稼動可能で、且つ、プリンタと通信可能なジョブ状態監視システムであって、
前記オペレーティングシステムのジョブ管理手段に、ジョブ発行要求に応じて発行されるジョブ及び印刷出力処理に影響しないダミージョブを出力するジョブ出力手段と、
所定のアプリケーション又はユーティリティーを含む上位手段によって、前記ジョブ管理手段により管理される前記ダミージョブの状態の認識がなされ、該認識の結果に基づく表示制御が行われることを特徴とするジョブ状態監視システム。
【請求項9】
前記プリンタには、実行中のジョブの処理が終了することに応じて、次のジョブの受付の抑制を解除する機能が備えられていることを特徴とする請求項8に記載のジョブ状態監視システム。
【請求項10】
所定のオペレーティングシステムを稼動可能で、且つ、プリンタと通信可能なジョブ状態監視システムであって、
前記オペレーティングシステムのジョブ管理手段に、ジョブ発行要求に応じて発行されるジョブに前記プリンタが受信拒否を行うサイズのダミージョブを付加して出力するジョブ出力手段と、
所定のアプリケーション又はユーティリティーを含む上位手段によって、前記ジョブ管理手段により管理される前記ダミージョブの状態の認識がなされ、該認識の結果に基づく表示制御が行われることを特徴とするジョブ状態監視システム。
【請求項11】
前記プリンタと片方向通信で通信可能であり、前記受信拒否は前記プリンタによるインタフェースビジーにより行われることを特徴とする請求項10に記載のジョブ状態監視システム。
【請求項12】
ジョブ状態監視方法であって、
オペレーティングシステムのジョブ管理手段に、ジョブ発行要求に応じて発行されるジョブを出力するジョブ出力工程と、
前記プリンタに出力されたジョブの状態を監視する監視工程と、
前記監視工程における前記ジョブの状態の監視に基づき前記ジョブ管理手段を制御する制御工程とを有し、所定のアプリケーション又はユーティリティを含む上位手段によって、前記制御に基づき前記ジョブ管理手段により管理されるジョブの状態の認識がなされ、該認識の結果に基づく表示制御が行われることを特徴とするジョブ状態監視方法。
【請求項13】
前記制御工程は、前記ジョブの状態の監視に基づき、前記ジョブ管理手段により管理されるジョブの前記プリンタへの転送が終了したとしてもジョブの状態を終了と管理させないよう、前記ジョブ管理手段に指示を行うことを特徴とする請求項12に記載のジョブ状態監視方法。
【請求項14】
前記上位手段から発行されるジョブにはメンテナンスジョブが含まれ、前記監視工程は、前記プリンタにおけるメンテナンスジョブの状態を監視し、前記制御工程は、前記メンテナンスジョブの状態の監視に基づき前記オペレーティングシステムのジョブ管理手段を制御することを特徴とする請求項12又は13に記載のジョブ状態監視方法。
【請求項15】
前記制御工程は、記録媒体への印刷出力を伴う印刷ジョブを受けた場合、前記受けた印刷ジョブの状態の監視結果をステータス表示アプリケーションに伝達する為の処理を更に行い、前記ステータス表示アプリケーションは伝達された監視結果の解釈に基づき表示制御を行い、他方、制御工程は、メンテナンスジョブを受けた場合、前記受けたジョブの状態の前記監視工程における監視結果に基づき前記ジョブ管理手段を制御することを特徴とする請求項12乃至14の何れかに記載のジョブ状態監視方法。
【請求項16】
前記上位手段から発行されるコマンドを解析する解析工程を有し、前記制御工程は、前記解析工程で、メンテナンスジョブであると解析された場合には、メンテナンスジョブに対応した前記ジョブ管理手段の制御を行い、印刷ジョブであると解析された場合には、印刷ジョブに対応した前記ジョブ管理手段の制御を行うことを特徴とする請求項12乃至15の何れかに記載のジョブ状態監視方法。
【請求項17】
前記メンテナンスジョブには、プリンタにおけるプリントヘッドのクリーニング指示、又は、プリントヘッドのノズルチェックパターン印刷の指示、又は、プリントヘッドの位置調整指示、又は、電源制御指示、又は、プリンタの動作モード変更指示が含まれることを特徴とする請求項14乃至16の何れかに記載のジョブ状態監視方法。
【請求項18】
前記監視工程はランゲージモニタにより行われ、前記ジョブ管理手段は前記所定のオペレーティングシステムにおけるスプーラを含むことを特徴とする請求項12乃至17の何れかに記載のジョブ状態監視方法。
【請求項19】
ジョブ状態監視方法であって、
オペレーティングシステムのジョブ管理手段に、ジョブ発行要求に応じて発行されるジョブ及び印刷出力処理に影響しないダミージョブを出力するジョブ出力工程と、
所定のアプリケーション又はユーティリティーを含む上位手段によって、前記ジョブ管理手段により管理される前記ダミージョブの状態の認識がなされ、該認識の結果に基づく表示制御が行われることを特徴とするジョブ状態監視方法。
【請求項20】
前記プリンタには、実行中のジョブの処理が終了することに応じて、次のジョブの受付の抑制を解除する機能が備えられていることを特徴とする請求項19に記載のジョブ状態監視方法。
【請求項21】
ジョブ状態監視方法であって、
オペレーティングシステムのジョブ管理手段に、ジョブ発行要求に応じて発行されるジョブに前記プリンタが受信拒否を行うサイズのダミージョブを付加して出力するジョブ出力工程と、
所定のアプリケーション又はユーティリティーを含む上位手段によって、前記ジョブ管理手段により管理される前記ダミージョブの状態の認識がなされ、該認識の結果に基づく表示制御が行われることを特徴とするジョブ状態監視方法。
【請求項22】
前記プリンタと片方向通信で通信可能であり、前記受信拒否は前記プリンタによるインタフェースビジーにより行われることを特徴とする請求項21に記載のジョブ状態監視方法。
【請求項23】
請求項12乃至22の何れかに記載のジョブ状態監視方法をコンピュータに実行させるためのプログラム。
【請求項24】
請求項12乃至22の何れかに記載のジョブ状態監視方法をコンピュータに実行させるためのプログラムをコンピュータ可読の形態で記憶した記憶媒体。
発明の詳細な説明
【技術分野】
【0001】
本発明は、プリンタにおいて実行されるジョブの監視技術に関する。
【背景技術】
【0002】
従来からホストコンピュータにおいて印刷ジョブを作成し、該作成した印刷ジョブをプリンタに出力し、プリンタによって紙媒体への記録を行わせる印刷システムが知られている。
【0003】
そのような印刷システムにおいて、例えばユーザは、マイクロソフト社のWindows(登録商標)におけるプリントキューのグラフィカルユーザインタフェースで閲覧すれば、生成された印刷ジョブがプリンタに転送されたか否かを知ることが出来る。
【0004】
しかし、印刷キュー内でのジョブに係わる情報の監視による方法では、上位モジュール(例えばアプリケーション)にとって簡易にジョブ状態の監視を行えるものの、正確さという観点では不十分であった。例えば、上記のように、オペレーティングシステム上の印刷キュー内でのジョブの終了と、印刷装置の実際の処理の終了とが一致しないことがある。一方、この問題に対する1つの解決方法として、特許文献1には、ランゲージモニタを用いたジョブの監視技術が開示されている。
【0005】
図13のフローチャートは、そのランゲージモニタを利用したジョブの監視処理を示す。まずS1301でジョブを発行する。そしてステータス表示アプリケーションを起動する(S1302)。無論、S1301の前に事前に起動しても良い。ランゲージモニタは、プリンタ本体の状態を監視し、監視結果をステータ表示アプリケーションに伝達する。そして、ステータス表示アプリケーションは伝達された情報を入力し(S1303)、該入力情報に基づき表示内容を決定する(S1304)。
【特許文献1】特開2000−242443号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかし、ランゲージモニタのような監視手段とアプリケーションとのやり取りをもってジョブの監視を行う場合、以下の不都合がある。例えば、アプリケーションに、ランゲージモニタのような監視手段の様々な出力結果を識別する仕組みを取り入れる必要があり、アプリケーションプログラムが複雑化してしまう。
【課題を解決するための手段】
【0007】
本願発明は、簡易な仕組みにより適確にジョブの状態を監視できる仕組を提供することを目的とする。
【0008】
該目的を達成する為に、所定のオペレーティングシステムを稼動可能で、且つ、プリンタと通信可能なジョブ状態監視システムであって、前記オペレーティングシステムのジョブ管理手段に、ジョブ発行要求に応じて発行されるジョブを出力するジョブ出力手段と、前記プリンタに出力されたジョブの状態を監視する監視手段とを有し、前記監視手段は、前記ジョブの状態の監視に基づき前記ジョブ管理手段を制御し、所定のアプリケーション又はユーティリティを含む上位手段によって、前記制御に基づき前記ジョブ管理手段により管理されるジョブの状態の認識がなされ、該認識の結果に基づく表示制御が行われることを特徴とするジョブ状態監視システムを提供する。
【発明の効果】
【0009】
本願発明によれば、簡易な仕組みにより適確にジョブの状態を監視できる。
【発明を実施するための最良の形態】
【0010】
〔第1の実施形態〕
以下、本発明の発明を実施するための最良の形態について図面を用いて説明する。
【0011】
図1は、本実施例のプリントシステムのシステム構成図の一例である。図1において、クライアント装置は、複数台接続されている。
【0012】
107、108はクライアント装置であり、ネットワークケーブルによりネットワークに接続され、アプリケーションプログラム等の各種のプログラムを実行可能である。
【0013】
プリントサーバは、接続されたプリンタをネットワーク上の他のコンピュータと共有し、外部から利用できるようにすることができる。なおこのプリントサーバが無くても、ネットワークプリンタや、クライアントに接続されたプリンタに対して、ネットワークを介して印刷することも通常可能である。
【0014】
クライアント装置は、情報処理装置の好適な一例であるPCにより構成されている。ネットワークは、クライアント装置、ネットワークプリンタ等と接続している。
【0015】
102、104、105はネットワークプリンタであり、103はローカルプリンタである。あるクライアントから、ネットワークを介して、ネットワークプリンタ102、104,105、及びネットワーク中に存在する別のクライアントに接続された、または自身に接続されたローカルプリンタに対して印刷を行うことが可能である。本発明は、図1中のどのクライアントとプリンタの組み合わせにおいても適用可能である。
【0016】
<ネットワークコンピュータのハードウェア構成例>
図2は、プリントサーバ101、クライアント装置107、108の構成例を説明するブロック図である。
【0017】
図2において、200は装置全体の制御を行うCPUを示す。そして、ハードディスク(HD)205に格納されているアプリケーションプログラム、プリンタドライバプログラム、OSや、本実施の形態のネットワークプリンタ制御プログラム等を実行する。また、RAM202にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。
【0018】
201は記憶手段としてのROMであり、内部には、基本I/Oプログラム等のプログラム、文書処理の際に使用するフォントデータ、テンプレート用データ等の各種データを記憶する。202は一時記憶手段としてのRAMであり、CPU200の主メモリ、ワークエリア等として機能する。
【0019】
203は記憶媒体読み込み手段としてのフレキシブルディスクドライブであり、記憶媒体としてのフレキシブルディスク204に記憶されたプログラム等を本コンピュータにロードすることができる。204は記憶媒体であるフレキシブルディスク(FD)であり、コンピュータが読み取り可能にプログラムが格納された記憶媒体である。なお、記憶媒体はフレキシブルディスクに限らず、CD−ROM、CDR、CDRW、PCカード、DVD、ICメモリカード、MO、メモリスティック等、任意である。
【0020】
205は外部記憶手段の一つであり、大容量メモリとして機能するハードディスク(HD)であり、アプリケーションプログラム、プリンタドライバプログラム、OS、ネットワークプリンタ制御プログラム、関連プログラム等を格納している。
【0021】
206は指示入力手段であるキーボードであり、ユーザがクライアントコンピュータに対して、また、オペレータや管理者がプリントサーバに対して、デバイスの制御コマンドの命令等を入力指示するものである。207は表示手段であるディスプレイであり、キーボード206から入力したコマンドや、プリンタの状態等を表示したりするものである。
【0022】
208はシステムバスであり、コンピュータ内のデータの流れを司るものである。209は入出力手段であるインタフェースであり、該インタフェース209を介してコンピュータは外部装置とのデータのやり取りを行う。
【0023】
図3は、クライアント装置におけるソフトウェアブロック図、及び、プリンタの概略構成を示す図である。
【0024】
なお、この図3で例示では、パーソナルコンピュータ(本発明の情報処理装置に相当する)にMicrosoft社のWindows(登録商標)をオペレーティングシステム(以下、OSと呼ぶ)として使用している。また、印刷処理機能を有する任意のアプリケーション301がクライアント装置内にインストールされており、更に、このコンピュータにプリンタ309を接続した形態を想定している。プリンタ309には、図1で説明したネットワークプリンタ102、105、ローカルプリンタ103を該当させることができる。図中の310はプリンタ又は投入されたジョブの状態を検出し、且つ、外部装置に出力する状態管理部であり、状態検知センサ及びメモリ及び状態解析部及び通信部などから構成される。
【0025】
以下、各々のソフトウェアブロックについて説明する。
【0026】
アプリケーション301を介して印刷要求された描画データ(文書データ、画像データ等の印刷データ)は、OSの描画モジュールであるグラフィックデバイス・インターフェース(Graphics Device Interface:以下、「GDI」)302経由でジョブ出力手段としてのプリンタグラフィックドライバ303に渡される。プリンタグラフィックドライバ303は渡されたデータに基づき印刷ジョブを生成する。この生成された印刷ジョブはプリンタ309へ印刷要求として出力される。
【0027】
本実施形態におけるGDI302は、出力データを一旦EMF(Enhanced Meta File)データとしてスプールする。スプールされたデータは、OSのモジュールで構成されるジョブ管理機能を備えたスプーラ304に渡される。スプーラ304は渡されたジョブに関する情報をジョブが終了するまで保持し管理する。具体的な管理としては、例えば、プリンタ毎に、印刷ジョブのサイズ、ジョブ名等が管理され、印刷キュー305に表示される。また、紙ジャムなどのエラー発生時に備え、描画データを含むジョブそのものをジョブ終了まで保持するようにしても良い。
【0028】
なお、スプーラがスプールデータを受け取った以後の処理は、アプリケーションの処理とは別プロセスとして動作する。スプールが終了すると、プリントプロセッサ306に印刷要求を発行する。
【0029】
印刷要求の発行に基づき、プリントプロセッサ306は、スプーラ304から印刷出力情報と描画データをページ単位で読み込み、1ページずつGDI302を介してプリンタグラフィックドライバ303に出力して印刷するように要求する。このプリントプロセッサ306は、OSのモジュールとして用意されているが、プリンタベンダー等がカスタマイズしたものを用いても良い。
【0030】
プリントプロセッサ306から印刷が要求されたプリンタグラフィックドライバ303は、GDI303が持つ描画機能であるGDIレンダリングエンジンを用いて、その描画データをプリンタの印刷解像度に合わせてラスタイメージデータにレンダリングする。その後、色処理、プリンタコマンドの付加などを行い、印刷ジョブとして生成し、プリンタ309に出力する。
【0031】
実際にはグラフィックドライバ303から出力されたデータは、GDI302経由でランゲージモニタ308に送信依頼という形で出力される。
【0032】
ランゲージモニタ308は印刷ジョブを特定サイズのパケットに区切り、プリンタ309へ向け逐一出力する。
【0033】
他方、ランゲージモニタ308の機能として、プリンタ又はプリンタに投入されたジョブの各種状態情報を取得する機能がある。ここでのジョブとしては、印刷ジョブや、メンテナンスジョブが含まれる。
【0034】
メンテナンスジョブには、プリンタにおけるノズルの目詰まりを改善する為のプリントヘッドのクリーニング処理や、プリントヘッドの状態を確認する為のプリントヘッドのノズルチェックパターン印刷処理が含まれる。また、プリントヘッドの正常な位置に対する誤差を補正する為のプリントヘッドの位置調整処理も含まれる。また、プリンタの電源のON又はOFFをクライアント装置から指示する電源制御処理、又は、プリンタの動作音モード等のプリンタ本体の各種動作モード設定処理プリンタの動作モード変更処理もメンテナンスジョブに含まれる。
【0035】
ドライバUI307は、主に印刷ジョブに係わる各種設定を行えるアプリケーション又はユーティリティーである。また、プリンタ309に対して、上に説明したメンテナンスジョブを発行するジョブ出力手段としも機能し、発行したジョブの各種情報の取得も行う。ここで発行されたメンテナンスジョブもスプーラ304により管理される。なお、ドライバUI307は一例であり、ジョブを発行でき、且つ、スプーラ304からジョブの状態情報を取得できるアプリケーション又はユーティリティーであれば、適宜ドライバUI307の替わりに適用できる。
【0036】
<印刷キュー305、スプーラ304、ランゲージモニタ308との関係>
ここで、上に説明した印刷キュー305、スプーラ304、ランゲージモニタ308の関係についてより具体的に説明する。印刷キュー305はスプーラ304が現在保持しているスプールデータの状態を表示する役割を担う。
【0037】
スプーラ以後の処理は1つのプロセスとして実行されるため、スプーラ304に対して処理を返さなかったり、エラーを返したりすることにより、スプーラ304の処理を意図的に実質中断している状態とするなど制御できる。これにより、ランゲージモニタ308から印刷キュー305の状態を間接的に制御することが可能である。
【0038】
印刷キュー305はWindows(登録商標)OSが持つ標準的な機能であり、例えばグラフィックドライバ303やドライバUI307、アプリケーション301などから所定のインタフェース関数を用いて参照できる。参照を行った主体は、現在印刷キュー305において管理されているジョブの情報(キューの情報)を取得できる。
【0039】
以下、上に説明した印刷システムを基に、各種処理を説明する。なお、各フローチャートの各ステップの処理は、特に断りが無い限り、ROM201又はHD205に格納されたプログラムに基づく処理をCPU200が実行することにより実現されるものとする。
【0040】
<ジョブの見届け処理>
まず、図4のフローチャートの各ステップについて説明を行う。図4は、ドライバUI307がメンテナンスジョブを発行し、メンテナンス処理中にダイアログを表示する際の処理を示す。
【0041】
まずドライバUI307は、ドライバUI307を通してユーザからメンテナンスジョブを発行依頼があった場合に、メンテナンスジョブを発行する(S401)。
【0042】
次にメンテナンス中であることを示すダイアログをOSを介して表示させるよう指示する(S402)。
【0043】
S402において表示部に表示されるダイアログ例を図5に示す。ダイアログ501中には、メンテナンス中であり、他の動作を行わないようユーザに促すようなメッセージ502が含まれている。後述の処理によりメンテナンス終了に応じてダイアログ501を自動的に閉じることも可能であるが、ユーザによるOKボタン503への押下指示に応じて閉じることもできる。
【0044】
そして、ドライバUI307はS401で発行したメンテナンスジョブのジョブIDを印刷キュー内とは別の記憶領域に保存する(S403)。また、ジョブIDの保存期間は例えばジョブの発行からジョブの終了までの間とすることができる。また、ジョブの履歴を保存するという意味で、ジョブが終了した後もジョブIDを保存しても良い。
【0045】
本実施形態では、ランゲージモニタ308のスプーラ304に対する制御処理により、印刷キュー305内でのジョブの終了と、プリンタ309の実際の処理の終了とを概ね一致することができる。従って、ドライバUI307はS401で発行したメンテナンスジョブのジョブIDが印刷キュー305内に存在するかどうかを調べる(S404)。より具体的には、アプリケーション又はユーティリティーとしてのドライバUI307は、所定の関数を用いたり、予め定められた記憶領域を参照することにより、ジョブ管理手段としてのスプーラ304が管理している情報を取得する。そして取得したジョブ情報と、S403で保存したジョブ情報(ジョブID)を比較し調査を実行する。このS404の処理に基づき、メンテナンスジョブの終了を容易に検知できる。なお、ランゲージモニタ308のスプーラ304に対する制御処理については後述の図6乃至図8を用いて詳しく説明することとする。
【0046】
印刷キュー305内に、S403で保存したジョブIDが存在していた場合(S405でNo)、一定時間間隔で再びS404からの処理を行う。S405で保存したジョブIDがまだ存在するということは、ランゲージモニタ308の指示によりスプーラ304が管理下のジョブ状態を未だ終了と識別していることに対応する。
【0047】
一方、印刷キュー305内に、S403で保存したジョブIDが存在しなかった場合(S405でYes)、処理をS406に移行する。S405でS403で保存したジョブIDが無いということは、ランゲージモニタ308の指示によりスプーラ304が管理下の印刷ジョブの状態を終了と識別したことに対応する。
【0048】
S402で表示した、メンテナンス中であることを示す図5のダイアログ501を閉じるようOSを介して表示制御の指示を行う(S406)。該指示により適切なタイミングでメンテナンスジョブのダイアログが表示から消去されることとなる。
【0049】
<ランゲージモニタの詳細な処理>
以下、図6乃至8を用いて、監視手段の一例としてのランゲージモニタ308のスプーラ304に対する制御処理について説明する。以下では、このランゲージモニタ308によるスプーラ304に対する制御処理を、ランゲージモニタがプリンタに投入されたジョブの情報を最後まで見届け監視し、該監視結果をスプーラ304に反映させることを見届け処理と呼ぶ。
【0050】
まず、S301では各種コマンドの呼び出しが発生する。
【0051】
アプリケーション301やドライバUI307からジョブの開始の指示を表すコマンドが出力され、ランゲージモニタ308がその出力を受信すると、初期化処理を行い(S602)、処理を返す(S603)。その後は、実際の印刷データやメンテナンスコマンドなどのデータがランゲージモニタに対して出力されることとなる。
【0052】
一方、通常のデータを受信すると(S601でWriteと判定)、ランゲージモニタ308は受信したコマンドを解析する(S604)。次に、ジョブの種類によって見届けの手法が異なるため、ジョブの種類を認識する(S605)。ジョブの種類についての情報が無ければ、解析したコマンドから判断し、ジョブの種類を保存しておく(S606)。
【0053】
S607で、ランゲージモニタ308はジョブ種類を識別する。ランゲージモニタ308が識別するジョブは主に3種類に分けられる。
【0054】
1つ目は見届け処理を行わないようなメンテナンスジョブであり、特別な理由により見届け処理が好ましくないようなメンテナンスジョブが該当する。この場合、ランゲージモニタ308はプリンタ309にデータを出力し、処理を最初に戻す。例えば、プリンタの電源のON又はOFFをクライアント装置から指示する電源制御処理、プリンタの動作音モード等のプリンタ本体の各種動作モード設定処理などを例としてあげることが出来る。
【0055】
2つ目は見届け処理を行うようなメンテナンスジョブで、これは先ほどの未届けをしないメンテナンスジョブ以外のメンテナンスジョブが当てはまる。ノズルの目詰まりを改善する為のクリーニング処理、プリントヘッドの状態を確認する為のノズルチェックパターンの印刷処理、プリントヘッドの正常な位置に対する誤差を補正する為のヘッドの位置調整処理などを例として挙げることが出来る。
【0056】
3つ目は、メンテナンスなどのコマンドによって行われる特殊な動作ではない、通常の印刷である。これは、ビットマップ画像や、ページ記述言語や、マークアップ言語等の描画データを含む印刷データ出力手段(例えばプリンタグラフィックドライバ303)により生成された印刷ジョブを指す。
【0057】
このように、S607の判別処理に基づき、S604の処理でメンテナンスジョブであると解析した場合には、メンテナンスジョブに対応した図7の処理を行える。一方、通常の印刷ジョブと解析した場合には、通常印刷ジョブに対応した図8の処理を切替行うことができる。
【0058】
次に、見届け処理を行うようなメンテナンスジョブの図6以後のフローについて、図7を用いて説明する。ランゲージモニタ308はS604で既にコマンドを解析しており、その内容によって、今回のジョブ中の最後のWriteを示すものであるかどうかを判別することができる(S701)。
【0059】
最後のWriteでなかった場合、まだ見届けを行う必要は無いため、プリンタに通常通りデータを送信し(S702)、処理を返す。
【0060】
通常図7から図8にかけての処理が複数回呼ばれ、最後のWriteとなった場合、まずプリンタ本体に対して、指定されたサイズのデータを出力する(S704)。その後、プリンタ本体からステータス(ジョブの状態)を取得する(S705)。例えばプリンタ309が何らかの処理中であることを示すBusyのステータスが返ってきた場合(S706)、処理を返す時の戻り値として、指定されWriteできたサイズ未満のバイトの値をスプーラ304に対して返す(S707)。このS707の処理により、ランゲージモニタのジョブ状態の監視に基づき、スプーラ304により管理されるジョブのプリンタへの転送が終了していても、スプーラ304にジョブの状態を終了と管理(識別)させないようにできる。
【0061】
通常戻り値には、プリンタへ正常に出力できたバイト数を返すことで、スプーラ304は正しく送信が行われたことを確認する。しかしここではWriteできたサイズ未満のバイトを返すことで、スプーラ304はデータが全て正しく出力されなかったと認識し、最後の未出力バイトのデータを再び出力してくる。ランゲージモニタ308は既に全データ送信済みである場合(S703でYes)、実際のプリンタへのデータ出力処理は行わず、再びプリンタ本体のステータスを取得し調べる(S705)。
【0062】
S701乃至S706の処理を繰り返し、プリンタ本体から取得されるステータスがBusyで無くなったことに応じて(S706でNo)、スプーラ304への戻り値として指定されたサイズを返す(S708)。このS708の処理によりスプーラ304は全てのデータが正常に出力できたと判定し、対象とするジョブを管理外とする。即ち、印刷キュー305から対象とするジョブそのもの又はジョブの情報を削除/無効化する。
【0063】
このように、図7のフローチャートの処理は、スプーラ304がランゲージモニタ308に依頼した送信データを全て送信できない場合に依頼のリトライを試みる仕組みを利用している。そして、ランゲージモニタ308は全てのプリンタへ出力すべきデータを出力しているにも関わらず出力できない旨をスプーラ304に返すことで、スプーラ304に擬似的にジョブ終了を認識させないよう制御できる。
【0064】
また、ランゲージモニタ308は処理を返さないままで見届け処理を行っているのではなく、スプーラ304に処理を返しながら見届け処理を行っているため、同じプロセスの全ての処理を止めることなく見届けを可能としている。
【0065】
次に、図6のS607でジョブの種類が通常印刷であると識別された場合に実行される処理を図8のフローチャートを用いて説明する。
【0066】
まず、S801乃至805においては基本的には図7のメンテナンスジョブにおけるフローチャート処理と同様であり詳しい説明は省略する。
【0067】
S805でプリンタ本体から通信回線を介して状態を取得する。S806では、文書アプリケーションデータに基づく印刷ジョブを受けた場合に対応して、S805で取得した結果を、ステータス表示アプリケーションに伝達するべく、ランゲージモニタにより所定の記憶領域に書き込む。ステータスアプリケーションは、印刷要求元のアプリケーション301を該当させても良いし、印刷要求元のアプリケーション301とは別のアプリケーションを該当させても良い。また、必要であれば、ドライバUI307を該当させても良い。
【0068】
書き込まれた結果は、ステータス表示アプリケーションにより読み込まれ、ステータス表示アプリケーションは読み込んだ結果を解釈し、該解釈に基づきジョブの状態に係わる表示制御を行う。但し、この場合にステータス表示アプリケーションにはランゲージモニタ308の出力結果を解析する機能を含める必要がある。
【0069】
尚、上の説明では、ランゲージモニタは、取得したステータスの解析結果を所定の記憶領域に書き込み、それをステータス表示アプリケーションに読み込ませるよう説明したが、他の形態も考えられる。例えば、ステータス表示アプリケーションからの問合せがある度に、ランゲージモニタが応答するようにして、ジョブの状態をランゲージモニタからステータス表示アプリケーションに読み込ませるようにしても良い。
【0070】
そして、S806を経由した後にS807では、プリンタ本体から通信回線を介して取得される印刷中のページ番号を示すステータスを取得することによって検知する。
【0071】
このステータスは、印刷を行っていない間は値を持たない(例えば零)ため、それにより印刷中であるかどうかを検知できる。
【0072】
ノズルチェックパターン印刷をプリンタに実行させる場合、印刷出力するパターンをプリンタ309内部に保持している場合と、プリンタドライバやユーティリティー側で保持し、印刷ジョブとしてプリンタに送信する場合がある。前者の場合、ノズルチェックパターンの印刷指示はコマンドの送信によってクライアント側からプリンタに対して行われるため、図7に示されるフローチャートの処理を実行する。また、後者の場合、ノズルチェックパターンの印刷は通常の印刷ジョブとして実行されるため、図8に示されるフローチャートの処理を実行する。
【0073】
このようにランゲージモニタ308による見届け処理を行う事により、印刷キュー305のジョブの終了と、プリンタ309の実際の処理の終了をほぼ一致させることが可能である。
【0074】
ここで、図8のフローチャートに対応して、アプリケーション又はユーティリティー又はプリンタドライバにより実行される処理を図9に示す。以下、図4と異なる点について詳しく説明する。
【0075】
S901では、アプリケーション301からの印刷要求に応じて印刷ジョブが発行される。例えばプリンタグラフィックドライバ303により印刷ジョブが生成される。
【0076】
S902では、印刷ジョブの発行に伴い、印刷中のダイアログが表示される。
【0077】
S903乃至904では、発行された印刷ジョブに対して、メンテナンスジョブの場合と同様の処理が行われる。そしてランゲージモニタ308はS903で保存したジョブIDが、スプーラ304の管理下にあるジョブの情報に含まれるかを調査する。S905の処理と図8との対応関係について説明すると、図8のS809の処理が、ランゲージモニタにより実行されることに応じてS905でNoと判定される。また、図8の808が実行されることに応じてS905でYesと判定される。
【0078】
そして、S902で表示した印刷中のダイアログを閉じるようOSを介して表示制御の指示を行う(S906)。
【0079】
このように、図6乃至8、9のフローチャートを実行し、メンテナンスジョブのみではなく、印刷出力を伴う印刷ジョブに対しても、図7と同様の処理を行える。つまり、所定のアプリケーション又はユーティリティーにより、スプーラ304に管理されるジョブの状態の認識を行わせるという簡易な仕組みでジョブ状態を識別させることができる。結果、アプリケーション又はユーティリティーは、ランゲージモニタと直接的に対話しなくとも、ジョブの状態を適確に判断でき、且つ、その判断結果を例えばメッセージダイアログの表示制御に結びつけることができる。
【0080】
以上説明してきたように、上述の実施形態によれば、アプリケーション又はユーティリティーなどの上位手段は、スプーラ304によって管理されるジョブの状態を監視するという簡易な仕組みで、実際のジョブ終了を適確に判定できる。
【0081】
特に、メンテナンスジョブの発行に際しては、クライアント装置は短時間にメンテナンスコマンドの出力を終え、一方、プリンタ本体ではメンテナンス処理中の状態が長く続く。つまり、クライアント装置からのコマンド出力終了のタイミングと、プリンタにおけるメンテナンス処理終了のタイミングとが一致しない。しかし、上述の実施形態によれば、そのような事態を防ぐことが出来る。例えば、上位手段側に、プリンタのメンテナンス処理に要する時間を保持し、その時間経過に応じて、メンテナンス処理が終了したと見なす方法もあるが、上述の仕組によれば、より正確なジョブの状態を監視できる。
【0082】
さらに、上位手段側は、ランゲージモニタのような監視手段の出力仕様を考慮せずとも、ジョブ状態の監視をでき、監視手段の出力結果の解析処理を軽減できたり、また、上位手段の開発を容易にする。
【0083】
〔第2の実施形態〕
上に説明した実施形態では、クライアント装置側とプリンタ側とが、ランゲージモニタによる双方向通信を行えるという前提であった。しかしクライアント装置とプリンタとの通信インターフェースの種類によっては、双方向通信をサポートしない場合がある。また、インタフェースが双方向通信をサポートしていたとしてもOSの設定により双方向通信が禁止されていたり、プリンタを特定のプリントサーバに接続して用いている場合などクライアント側からプリンタ側への片方向通信に限定される場合がある。
【0084】
そして、双方向通信が行えないとクライアント装置側でプリンタからの各種状態情報を取得できない。本実施形態では双方向通信が行えない場合でも、アプリケーションが、簡易且つ適確にジョブの状態を監視できる仕組を説明する。
【0085】
図10は、各種アプリケーションや各種ユーティリティーなどの上位手段がジョブを発行し、発行したジョブの終了を検知する場合の、上位手段による処理を示す。尚、図10のフローチャートは、第1の実施形態で説明したメンテナンスジョブに適用できるが、ジョブとして印刷ジョブを例に説明する。また上位手段としてアプリケーションを例に説明する。
【0086】
まず、上位手段は印刷ジョブを発行する(S1001)。
【0087】
その後、印刷中にアプリケーションが独自で通知ダイアログを表示する(S1002)。ここで、表示するダイアログの一例を図11に示す。次にアプリケーションは、S1001で発行した印刷ジョブの終了を検知するための、プリンタが印刷処理をしないようなダミー印刷ジョブを発行する(S1003)。
【0088】
S1003で発行されるジョブは、ユーザが印刷毎に特に意識することなく自動的に発行される。ここでプリンタが印刷処理をしない印刷ジョブとは、先に発行した印刷出力処理に影響せず、且つ、プリンタが随時破棄できるようなデータを適用できる。
【0089】
アプリケーションは、S1003で発行したダミー印刷ジョブジョブIDを保存しておく(S1004)。当然のことながら、ダミー印刷ジョブのジョブIDはスプーラ304でも管理される。
【0090】
ここで、留意する点として、プリンタ309は、ある印刷ジョブを処理中に、次の印刷ジョブを受け付けない機能を備える。つまりプリンタは、ある印刷ジョブにかかる印刷データを全て受け取った後も、プリンタのインターフェースをビジーの状態にし、印刷処理が全て終了してから、ビジーを解除し、次のデータを受信する。そのためプリンタ309は、S1001で発行した印刷ジョブによる印刷を終了したことに応じて、S1003で発行したジョブを受け付けることとなる。
【0091】
次に、アプリケーションは一定間隔でOSの持つ印刷キュー205を調べ、S1004で保存したジョブIDを持つジョブが存在するかどうかを調べる(S1005)。
【0092】
S1005で存在すると判定した場合、アプリケーションは、S1001で発行したジョブが終了したと判定する。そして、該判定に応じてS1002で表示した印刷中に表示するためのダイアログを閉じる(S1006)。
【0093】
S1003で発行したジョブは、プリンタ309が印刷出力しないジョブであるため、プリンタ309が受信後、すぐに処理が終了となる。
【0094】
これにより、S1003で発行したジョブの終了と、S1001で発行したジョブ処理の終了タイミングが概ね一致する。
【0095】
〔第3の実施形態〕
第3の実施形態では、第2の実施形態の仕組みを更に発展させた、ジョブ状態の監視について説明する。
【0096】
例えばプリンタ309をネットワークプリンタとして利用し、複数のPCから参照可能であるような形態をとる場合、S1003で発行する終了検知用ジョブが、印刷キュー305中においてS1001で発行するジョブの次に来ることが保証されない。つまり、他のジョブに割り込まれたり、優先的に追い抜かれる可能性がある。
【0097】
このため、S1003で発行されるダミー印刷ジョブの終了を適確に検知できず、S1001で発行された印刷ジョブの処理が実際に終了してしばらく経過した後、ダミー印刷ジョブの終了を検知してしまう場合もある。第3の実施形態この問題をも解決できるジョブ状態の監視に関する。
【0098】
図12は、第3の実施形態で送信するジョブデータの内容例である。この図12には、ジョブ開始コマンド1201、印刷データ1202、ジョブ終了コマンド1203に加えて、プリンタ309が持つバッファよりも大きなサイズでプリンタ309による印刷処理が行われないデータ1204が含まれている。
【0099】
この図12の印刷ジョブは、アプリケーション301を介して印刷が行われた場合に、アプリケーション301が特に指定することなくグラフィックドライバ303によって作成される。
【0100】
図12のような印刷ジョブによれば、OSにしてみれば一つのジョブとして識別するので、1203と1204の間に、他の印刷ジョブが割り込まれるようなことはなく、第2の実施形態で想定されるような問題は解決される。
【0101】
プリンタ309はクライアント装置側から出力される受信データを解析し、印刷等の処理を行うが、その際ジョブの終了を示すコマンド1203が検出されると、一旦データ受信処理を中止する。データ受信処理の中止は、プリンタのインターフェースをビジーとし、ランゲージモニタ208から出力されるデータを受け付けなくすることにより行う。また、データの解析処理を一時中止することによって行っても良い。
【0102】
図12の場合には、ジョブ終了コマンド1203の後に、プリンタ309が持つバッファよりも大きなサイズのデータ1204が存在するため、印刷キュー305には、データの送信が完了していないままの状態となる。
【0103】
プリンタ309は、先に受信した印刷ジョブ(1201乃至1203)の実際の印刷処理が終了したことに応じて、中断していたデータ受信処理を再開すると共に受信したデータ解析も再開する。この時解析されるデータ1204はプリンタ209が解析しても印刷出力には影響を持たない為、印刷出力処理を行う場合と比較し、非常に短い時間で全て処理される。そして、1201乃至1204のデータに対する処理が終了することに応じて、印刷キュー305から発行された印刷ジョブの情報が削除される。
【0104】
よって、アプリケーションやユーティリティーは、図12のようなジョブに対して、スプーラ304により管理されるジョブの情報を監視するという簡易な仕組みにより、ジョブの状態を監視できる。また、第3の実施形態に説明した仕組みによれば例えランゲージモニタ308とプリンタ309との通信が片方向であっても、印刷キュー305におけるジョブの終了認識とプリンタ309の実際の印刷処理終了のタイミングとを概ね一致させることができる。
【0105】
また、さらなる応用例として、1202に印刷データではなくメンテナンスコマンドを適用することにより、第3の実施形態にメンテナンスジョブを適用することもできる。
【0106】
〔第4の実施形態〕
上に説明した第1乃至第3の実施形態では、図3に示されるような、クライアント装置にインストールされる各ソフトウェアモジュールが協働したジョブ状態監視システム、及び、ジョブ状態監視方法を説明してきたが、これを応用した形態も想定される。
【0107】
例えば、図3中のランゲージモニタ308を別のコンピュータにインストールしジョブ状態監視システムを構築するようにしても良い。この場合には、ランゲージモニタ308とスプーラ304とがプロセス間通信を行うことにより、上記各実施例と同様の効果を得ることが出来る。
【0108】
また、図3においては、ランゲージモニタ308や、スプーラ304の各々のソフトウェアモジュールを別々に示したが、例えば、1プロセスで実行される1ソフトウェアモジュールによって、ジョブ状態監視システムを構築するようにしても良い。
【0109】
このように、本発明は、ユーザのシステム環境に従って、様々なシステム形態をとり、ジョブ状態監視システムを構築することが出来る。
【0110】
〔その他の実施の形態〕
本発明の目的は前述したように、各実施形態の機能を実現するプログラムコードを記録した記憶媒体をシステムあるいは装置に提供し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フロッピィディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM,CD−R、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。
【0111】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)などが実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれている。
【0112】
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含む。
【図面の簡単な説明】
【0113】
【図1】実施形態におけるシステムの全体図である。
【図2】コンピュータにおけるハードウェア構成例を示す図である。
【図3】クライアント装置におけるソフトウェアモジュール構成例を示す図である。
【図4】メンテナンスジョブの終了を認識する処理のフローチャートである。
【図5】ジョブ実行中に表示されるダイアログの一例を示す図である。
【図6】監視手段によるジョブ状態監視処理のフローチャートである。
【図7】監視手段によるジョブ状態監視処理のフローチャートである。
【図8】監視手段によるジョブ状態監視処理のフローチャートである。
【図9】印刷ジョブの終了を認識する処理のフローチャートである。
【図10】終了検知用ジョブを利用したジョブの終了認識のフローチャートである。
【図11】ジョブ実行中に表示されるダイアログの一例を示す図である。
【図12】出力手段により出力されるダミー部を付加したジョブの一例を示す図である。
【図13】従来のジョブ監視処理を示すフローチャートである。




 

 


     NEWS
会社検索順位 特許の出願数の順位が発表

URL変更
平成6年
平成7年
平成8年
平成9年
平成10年
平成11年
平成12年
平成13年


 
   お問い合わせ info@patentjp.com patentjp.com   Copyright 2007-2013