説明

管理装置、管理方法、およびプログラム

【課題】全ステータスをポーリングするとキャッシュする情報量が多くなり、コストと通信帯域へ負荷が増える。また必要なステータス項目だけをキャッシュすると、ステータス要求時に毎回アクセスを行わなければならず、デバイスの制御とネットワーク負荷、ステータス返答遅延が発生する。
【解決手段】印刷ジョブを処理する印刷装置のステータス情報として、前記印刷装置のデバイスステータス情報と前記印刷装置で処理されている印刷ジョブのジョブステータス情報とを取得するステータス取得手段と、前記ステータス取得手段によって取得されたステータス情報を解析するステータス解析手段と、前記ステータス取得手段によって取得されたステータス情報から、キャッシュに保持するキャッシュデータを生成するステータスキャッシュデータ生成手段と、前記ステータス解析手段によって解析された情報から前記ステータス取得手段にて取得するステータス情報に含まれるステータス項目を変更する変更手段とを有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、印刷装置に関するステータスを効率的に管理するための管理装置、管理方法、およびプログラムに関する。
【背景技術】
【0002】
従来、印刷装置のステータスを通知する方法として、必要なステータスをその都度取得する形態や一定間隔で印刷装置からステータス情報を取得する方法が知られている。例えば、特許文献1に開示された技術では、印刷装置のステータス情報に対して、ユーザがその表示単位を選択したときに特定のステータスを取得する方法が提案されている。また特許文献2に開示された技術では、監視装置であるホストコンピュータが一定間隔で印刷装置にアクセスして印刷装置の状態を監視する方法が提案されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平10−303931号公報
【特許文献2】特開2002−297336号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、印刷装置のステータス項目が多くなるとキャッシュデータが増大することになり、物理的なハードウェアのコストアップや印刷装置でのステータス応答処理に負荷がかかる。その結果、他の印刷処理などに影響を与える場合ある。さらにネットワークで接続された印刷装置から情報を取得しようとすると、ネットワークに大量のデータがやり取りされることになり通信障害を発生させる可能性があった。
【0005】
そこで、本発明ではステータスデータの取得において、効率の良いキャッシュデータの生成を行うステータス管理方法を提供する。
【課題を解決するための手段】
【0006】
上述のような課題を解決するための本発明は、以下の構成を有する。すなわち、印刷ジョブを処理する印刷装置のステータス情報を管理する管理装置であって、前記ステータス情報として、前記印刷装置のデバイスステータス情報と前記印刷装置で処理されている印刷ジョブのジョブステータス情報とを取得するステータス取得手段と、前記ステータス取得手段によって取得されたステータス情報を解析するステータス解析手段と、前記ステータス取得手段によって取得されたステータス情報から、キャッシュに保持するキャッシュデータを生成するステータスキャッシュデータ生成手段と、前記ステータス解析手段によって解析された情報から前記ステータス取得手段にて取得するステータス情報に含まれるステータス項目を変更する変更手段とを有する。
【発明の効果】
【0007】
本発明によれば、装置間の通信を抑制し、キャッシュデータの増大を防止することができる。
【図面の簡単な説明】
【0008】
【図1】システムの構成例の図。
【図2】プリントサーバのハードウェア構成例の図。
【図3】プリントサーバのブロック図。
【図4】プリントサーバが保持するポーリング対象テーブルの一例の図。
【図5】プリントサーバが保持する関連ステータステーブルの一例の図。
【図6】プリントサーバが保持するジョブ管理ステーブルの一例の図。
【図7】ステータス取得制御処理のフローチャート。
【図8】ステータスキャッシュデータ更新制御処理のフローチャート。
【図9】ステータス項目登録・解除制御処理のフローチャート。
【図10】プリントサーバが保持するアクションテーブルの一例の図。
【図11】クライアントPCからステータス取得を行った場合の動作シーケンス図。
【図12A】クライアントPCからリスナ登録・解除を行った場合の動作シーケンス図。
【図12B】クライアントPCからリスナ登録・解除を行った場合の動作シーケンス図。
【図13A】クライアントPCから印刷指示を行った場合の動作シーケンス図。
【図13B】クライアントPCから印刷指示を行った場合の動作シーケンス図。
【図13C】クライアントPCから印刷指示を行った場合の動作シーケンス図。
【図14A】クライアントPCから印刷指示を行った場合の動作シーケンス図。
【図14B】クライアントPCから印刷指示を行った場合の動作シーケンス図。
【図14C】クライアントPCから印刷指示を行った場合の動作シーケンス図。
【図15A】プリンタで紙なしエラーが発生した場合の動作シーケンス図。
【図15B】プリンタで紙なしエラーが発生した場合の動作シーケンス図。
【図16A】クライアントPCから印刷キャンセル指示を行った場合の動作シーケンス図。
【図16B】クライアントPCから印刷キャンセル指示を行った場合の動作シーケンス図。
【図17】ジョブ管理制御部で保持するジョブステータス情報の一例の図。
【発明を実施するための形態】
【0009】
以下、添付図面を参照して本発明の実施の形態の一例を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【0010】
<実施形態>
(システム構成)
本実施形態のシステム構成の例について図1のブロック図を参照して説明する。図1では、クライアントPC101とプリントサーバ102及びプリンタ103がネットワーク(LAN)104を介して接続された形態を示している。クライアントPC101は、オペレータが利用し、印刷処理を指示するためのアプリケーションが稼働している。プリントサーバ102は、プリンタ103による印刷処理の管理、中継を行うプリントサーバ装置である。プリンタ103は、プリントサーバ102からの印刷指示に従って、実際の印刷処理を行う。
【0011】
クライアントPC101は、印刷作業を行う作業者(以下「オペレータ」と称す)、あるいは印刷指示装置(不図示)からの指示を受け、印刷処理の指示を行う。また、クライアントPC101は、指示された印刷文書の内容やプリンタ103の稼働状況を踏まえながら各印刷指示に対する印刷処理のスケジュールを作成する。続いてクライアントPC101は、作成した印刷処理のスケジュールに従い、プリントサーバ102に対して印刷指示を行う。なお、クライアントPC101からプリントサーバ102に対する印刷指示は、印刷処理のスケジュールに合わせてクライアントPC101が自動的に行うか、或いは、オペレータの操作を介して行われる。
【0012】
プリントサーバ102は、クライアントPC101から受けた印刷指示をプリンタ103が解釈可能な体裁の命令に変換する機能、プリンタ103に対して印刷指示を行う機能を有する。また、プリントサーバ102は、プリンタ103からプリンタの稼働状況や印刷ジョブの進捗状況を取得する機能と、取得したステータスをクライアントPC101に通知する機能を有する。なお、プリンタの稼働状況や印刷ジョブの進捗状況を包括して「ステータス」と称し、デバイスに関するステータスを「デバイスステータス」、印刷ジョブに関するステータスを「ジョブステータス」と称する。更に、プリントサーバ102は、プリンタ103に印刷指示済みの印刷ジョブを中断させる機能も有する。なお、プリントサーバ102は、更なる機能を有していてもよい。
【0013】
プリンタ103は、プリントサーバ102からの印刷指示を受けると、印刷ジョブとして指定された印刷設定に応じて印刷出力を行う。なお、プリンタ103は、印刷機能を有する複合機(MFP:MultiFunction Peripheral)などであっても構わない。
【0014】
(ハードウェア構成)
図2はプリントサーバ102のハードウェア構成の一例を示す図である。CPU201は、記憶部であるHD(ハードディスク)205に格納されているアプリケーションプログラム、OS(Operating System)、ネットワークプリンタ制御プログラム等を実行する。また、CPU201は、RAM203にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。
【0015】
ROM202は、基本I/O(Input/Output)プログラム等のプログラム、文書処理の際に使用するフォントデータ、テンプレート用データ等の各種データを記憶する。
【0016】
RAM203は、CPU201の主メモリ、ワークエリア等として機能する。RAM203には、例えば、後述するジョブ管理テーブル315や後述するステータスキャッシュデータ314等が一時的に記憶、又は保持される。RAM203は、一時記憶装置の一例である。
【0017】
外部記憶ドライブ204は、DVDやUSBメモリ等の記録媒体に記憶されたプログラム等をプリントサーバ102にロードすることができる。HD205は、アプリケーションプログラム、OS、制御プログラム、及びそれらの関連プログラム等を格納する記憶部であり、種々のデータを格納可能である。
【0018】
キーボード206は、オペレータがプリントサーバ102に対する各種命令等を入力指示するためのものである。オペレータは、キーボード206以外に、ポインティングデバイス(不図示)やマイクロホン等他の入力デバイス(不図示)を介して、プリントサーバ102に各種命令を入力することができる。これらの入力デバイスは、システムバス208に結合されたシリアルポートインタフェース(不図示)を介してCPU201に接続される。或いは、入力デバイスは、パラレルポート、USB等、他のインタフェースで接続してもよい。
【0019】
ディスプレイ207は、キーボード206から入力した情報や、ステータス等を表示する。システムバス208は、プリントサーバ102内の各構成要素間におけるデータの流れを司る。ネットワークインタフェース209は、LAN(Local Area Network)或いは、インターネットに接続するための通信インタフェースである。CPU201が、プログラムに基づき処理を実行することによって、後述するプリントサーバ102の機能及びフローチャートの処理が実現される。
【0020】
なお、クライアントPC101のハードウェア構成も図2に示したプリントサーバ102のハードウェア構成と同様である。クライアントPC101のCPUがクライアントPC101のHD等に記憶されているプログラムに基づき処理を実行することによって、クライアントPC101の印刷指示機能等が実現される。同様に、プリンタ103もCPUやメモリ等を有し、プリンタ103のCPUがプリンタ103のメモリ等に記憶されているプログラムに基づき処理を実行することによって、プリンタ103の機能等が実現される。
【0021】
(プリントサーバのモジュール構成)
図3は、プリントサーバ102上で稼働する各モジュールのブロック図である。ステータス取得部301は、プリンタ103などのデバイスからステータスを定期的に取得し、そのステータスを実ステータスデータ311として保持しておく。ステータス取得部301がデバイスから取得するステータス項目及び取得の条件はポーリング対象テーブル312で管理されている。ステータス取得部301はポーリング対象テーブル312に記載されているステータス項目をデバイスから取得する。
【0022】
図4は、ポーリング対象テーブル312の構成例を示す。ポーリング対象テーブル312には、プリンタ103から取得するステータス項目及びその条件がグループ単位(以下、ステータスグループ)で登録されている。ここでは、複数のステータスグループそれぞれに対し、ポーリングを中止するまでの取得期限とステータスを取得する取得間隔(以下ポーリング間隔と称す)が登録されている。例えば、図4において、ステータスグループとして「インク情報グループ」が登録されているが、ステータスを取得する期限として“時刻13:10”が、ポーリング間隔として“4秒”が登録されている。これは時刻が13:10になるまで4秒間隔で「インク情報グループ」のステータス項目をプリンタ103から取得する設定になっている。
【0023】
ポーリング対象テーブル312に登録されるステータスグループは、更に図5のような関連ステータステーブル313に示されているステータス項目を包含している。本実施形態にて取得されるステータス項目は、プリンタ103などのデバイスに関するデバイスステータス情報と、デバイスが実行している印刷ジョブに関するジョブステータス情報とが含まれる。関連ステータステーブル313は、各ステータスグループに関連するステータス項目をグルーピングしたもので、例えば「インク情報グループ」では、「すべてのインクの稼働情報」、「すべてのインクの残量情報」がグルーピングされている。このとき、ポーリング対象テーブル312に「インク情報グループ」が登録されている場合は、ステータス取得部301が、すべてのインク種別について、その稼働状態とインクの残量情報のステータス項目をプリンタ103から取得する。ここでのすべてのインク種別とは、例えば、4種のインクを扱うプリンタにおいては、ブラックインク、シアンインク、マゼンタインク、イエローインクが相当する。また、インク種別に対する稼働状態としては、正常動作中、警告発生中、エラー状態などの状態が挙げられる。
【0024】
ステータス取得部301は、デバイスから取得した実ステータスデータ311を解析し、解析結果に基づいて各モジュールにステータス変化の通知を行う。このステータス解析の通知は、ステータスに変化が起こっていない場合でも、行うようにしても構わない。
【0025】
ステータスキャッシュデータ生成部302は、実ステータスデータ311やジョブ管理部306で管理されているジョブ管理テーブル315の情報からステータスキャッシュデータ314を生成する。ステータスキャッシュデータ314は、キャッシュに保持されるステータスに関するキャッシュデータであり、その役割については、処理フローと共に後述する。
【0026】
ジョブ管理テーブル315は、プリントサーバ102でジョブ制御を管理するための情報を含み、図6のような形態で保持されている。ジョブ管理テーブル315は、印刷ジョブに割り当てられたジョブIDとプリントサーバ102やプリンタ103での印刷ジョブの管理状況とが対応付けて保持されている。ジョブIDは、各印刷ジョブを管理するためのIDであり、印刷ジョブ毎に個別の値をジョブ管理部306が付与している。この印刷ジョブIDは、クライアントPC101からの印刷指示を受けて発行される。印刷ジョブの管理状況としては、「受付中」、「送信中」、「送信完了」、「印刷完了」、「終了」、「キャンセル中」、「キャンセル終了」などがある。
【0027】
管理状況のステータスとして、「受付中」は、クライアントPC101から印刷指示を受け付けてプリンタ103に送信をするまでの状態を示す。「送信中」は、プリンタ103に印刷ジョブの発行を開始しプリンタ103に印刷データを送信している状態を示す。「送信完了」は、印刷データの送信が完了しプリンタ103で印刷が完了するまでの状態を示す。「印刷完了」は、プリンタ103で印刷が完了してから出力トレイから印刷物を取り除かれるまでの状態を示す。「終了」は、すべての印刷物を取り除いた状態を示す。「キャンセル中」は、印刷ジョブが途中でキャンセルされた場合に、キャンセル処理を行っている状態を示し、「キャンセル終了」は、キャンセル処理が完了した状態を示す。さらに図6には明記していないが、各印刷ジョブに対しては、印刷ジョブ名や発行者、印刷設定や使用する給紙口、使用するメディアなどの印刷ジョブの各種情報と紐付けされている。
【0028】
ポーリング対象テーブル管理部303は、ポーリング対象テーブル312の管理を行い、アクションテーブル316に従ってポーリング対象テーブル312のステータス項目の登録、削除を行う。アクションテーブル316についての詳細は図10を用いて後述するが、イベントとイベント発生時のポーリング対象テーブル312の操作が定義されている。
【0029】
ステータス取得要求受付部304は、クライアントPC101からのステータス取得要求を受け付ける。そして、ステータス取得要求受付部304は、ステータスキャッシュデータ生成部302が作成するステータスキャッシュデータ314を参照し、該当するステータス項目の情報をクライアントPC101に返却する。
【0030】
リスナ処理部305は、クライアントPC101が指定したステータス項目に対してステータスキャッシュデータ314の情報が変化した場合、クライアントPC101へ通知を行う。また、クライアントPC101からのリスナ登録解除が行われた場合、リスナ処理部305は、指定されたステータス項目のリスナ登録を解除し、それ以降ステータス変化が発生しても変化通知をクライアントPC101に通知しない。
【0031】
ジョブ管理部306は、クライアントPC101から印刷指示や中断指示など印刷ジョブの制御指示を受け付け、印刷ジョブに対応する印刷データをプリンタ103が解釈できる形に変換してプリンタ103に転送する。また、プリントサーバ102とプリンタ103の印刷ジョブの進捗に合わせてジョブ管理テーブル315を更新し、各印刷ジョブの管理を行う。
【0032】
(ステータス取得部301)
以下、プリントサーバ102でのステータスデータの更新方法について説明する。図7にステータス取得部301によるステータスデータの更新に係るフローチャートを示す。本処理は、プリントサーバ102が備えるCPU201がHD205等に記憶されたプログラムを読み出すことで実行される。
【0033】
ステータス取得部301は、ポーリング対象テーブル312を参照し、取得すべきステータス項目が存在するかを確認する(S701)。ポーリング対象のステータス項目がない場合(S701にてNO)、S711へ進む。ポーリング対象のステータス項目がある場合は(S701にてYES)、ステータス取得部301は、保持している実ステータスデータ311(前回取得したステータスデータ)を削除する(S702)。その後、ステータス取得部301は、デバイスからポーリング対象テーブル312に示されているステータス項目を取得する(S703)。このとき、ステータス取得部301は、ジョブ管理テーブル315を参照し、「受付中」の印刷ジョブについてはポーリング対象テーブル312に「ジョブステータスグループ」が登録されていても取得しない。これは「受付中」の印刷ジョブは、プリンタ103に転送される前であるため「受付中」の印刷ジョブの「ジョブステータスグループ」の情報がプリンタ103に存在しないためである。また「印刷中」、「終了」、「キャンセル終了」の印刷ジョブについてもこれらの印刷ジョブの「ジョブステータスグループ」がポーリング対象テーブル312に登録されていてもプリンタ103から取得しない。詳細は後述するがこれらの「ジョブステータスグループ」の情報はジョブ管理部306で既に保持されているためプリンタ103から取得しない。なお、これら「ジョブステータスグループ」をプリンタ103から取得する/取得しないを示す情報については、ジョブ管理テーブル315とは別のテーブルにて管理する方法であってもよい。
【0034】
ステータス取得部301は、S703にて、プリンタ103からステータスが取得できたか否かを判定する(S704)。ステータスが取得できた場合は(S704にてYES)、ステータス取得部301は、取得したステータスデータを実ステータスデータ311として登録する(S705)。その後、ステータス取得部301は、実ステータスデータ311の解析を行う(S706)。そして、ステータス取得部301は、解析の結果、ステータスが変化したかを判断する(S707)。ステータスの変化がない場合は(S707にてNO)、S710へ進む。ステータスの変化がある場合は(S707にてYES)、ステータス取得部301は、他のモジュールに対してステータスの変化を通知する(S708)。そして、処理は、S710へ進む。
【0035】
一方、ステータスが取得できなかった場合は(S704にてNO)、ステータス取得部301は、デバイスとオフライン状態になっていると判断し、実ステータスデータ311にオフライン状態を登録する(S709)。そして、処理は、S710へ進む。
【0036】
次に、ステータス取得部301は、ポーリング対象テーブル312に示されているポーリング間隔を参照し、待機時間を取得する(S710)。
【0037】
S711にて、ステータス取得部301は、他モジュールからのステータス更新通知があるか確認する。もしステータス更新通知があれば(S711にてYES)、S701へ戻り、ステータス取得部301は、再度ステータス更新処理を行う。ステータス更新通知がない場合は(S711にてNO)、S712へ進み、ステータス取得部301は、S710で取得した待機時間が経過しているか確認する。待機時間が経過していなければ(S712にてNO)、S711へ戻り、ステータス取得部301は、ステータス更新通知を確認し、待機時間経過まで繰り返す。待機時間が経過している場合は(S712にてYES)、S701へ戻る。
【0038】
(ステータスキャッシュデータ生成部302)
次にステータスキャッシュデータ生成部302の処理を図8に示す。本処理は、プリントサーバ102が備えるCPU201がHD205等に記憶されたプログラムを読み出すことで実行される。
【0039】
まず、ステータスキャッシュデータ生成部302は、ジョブ管理テーブル315もしくは実ステータスデータ311が更新されているかを確認する(S801)。更新されているか否かについては、更新時の通知やデータの更新日時の確認などによって行うことができる。双方とも更新されていない場合は(S801にてNO)、S801へ戻り、更新されるまで待機する。ジョブ管理テーブル315又は実ステータスデータ311のいずれか、もしくは双方が更新されていた場合は(S801にてYES)、S802にて、ステータスキャッシュデータ生成部302は、前回作成したステータスキャッシュデータ314のコピーを生成する。この生成されたコピーをこれ以降、「コピーキャッシュ」と称する。このとき、前回作成したステータスキャッシュデータ314がない場合は、ステータスキャッシュデータ生成部302は、ステータス情報が何も登録されていない空のコピーキャッシュを生成する。
【0040】
次に、ステータスキャッシュデータ生成部302は、実ステータスデータ311が更新されているか確認する(S803)。更新されているか否かについては、更新時の通知やデータの更新日時の確認などによって行うことができる。更新されていなければ(S803にてNO)、S808へ進む。実ステータスデータ311が更新されている場合は(S803にてYES)、S804にて、ステータスキャッシュデータ生成部302は、実ステータスデータ311を参照し、オフライン状態かどうかを判断する。オフライン状態の確認は、図7のS704でステータス取得部301が実ステータスデータ311に登録した情報を用いて判断する。オフライン状態である場合は(S804にてYES)、ステータスキャッシュデータ生成部302は、コピーキャッシュの接続情報の項目に「オフライン」を格納する(S805)。その後、処理は、S808へ進む。
【0041】
オンライン状態である場合は(S804にてNO)、ステータスキャッシュデータ生成部302は、コピーキャッシュの接続情報の項目にて「オンライン」を格納する(S806)。そして、ステータスキャッシュデータ生成部302は、コピーキャッシュの情報を実ステータスデータ311の情報により更新する(S807)。このとき、実ステータスデータ311になくコピーキャッシュだけにあるステータス項目については削除してもよいが、そのまま残す構成にしても良い。その後、処理はS808へ進む。
【0042】
次に、S808にて、ステータスキャッシュデータ生成部302は、ジョブ管理テーブル315の情報が更新されているか確認する。更新されているか否かについては、更新時の通知やデータの更新日時の確認などによって行うことができる。更新されていない場合は(S808にてNO)、S814に進む。ジョブ管理テーブル315の情報が更新されている場合(S808にてYES)、ステータスキャッシュデータ生成部302は、ジョブ管理テーブル315から「受付中」、「印刷完了」、「終了」、「キャンセル終了」のステータスの印刷ジョブを特定する(S809)。さらにS810にて、ステータスキャッシュデータ生成部302は、ポーリング対象テーブル312を参照して、「受付中」、「印刷完了」、「終了」、「キャンセル終了」の印刷ジョブに関する「ジョブステータスグループ」の項目があるか否かを判定する。上記ステータスの印刷ジョブがある場合は(S810にてYES)、ステータスキャッシュデータ生成部302は、ジョブ管理部306が保持しているこれらの印刷ジョブの「ジョブステータスグループ」情報をコピーキャッシュに格納する(S811)。
【0043】
なお、ジョブ管理部306では、「受付中」、「印刷完了」、「終了」、「キャンセル終了」のステータスである各印刷ジョブについては、「ジョブステータスグループ」情報を保持している。ジョブステータスグループ情報の詳細については、図17を用いて後述する。
【0044】
さらに、S812にてステータスキャッシュデータ生成部302は、ジョブ管理テーブル315に「受付中」、「印刷完了」、「終了」、「キャンセル終了」の印刷ジョブがあり、ポーリング対象テーブル312に「ジョブリスト」が登録されているかを判定する。上記ステータスの印刷ジョブがあり、「ジョブリスト」が登録されている場合(S812にてYES)、ステータスキャッシュデータ生成部302は、コピーキャッシュの「ジョブリスト」に上記ステータスの印刷ジョブのジョブIDを追加する(S813)。
【0045】
S814にて、ステータスキャッシュデータ生成部302は、S802で生成したコピーキャッシュを最新のステータスキャッシュデータ314として登録し、旧ステータスキャッシュデータを削除する。そしてS801に戻り、ステータスキャッシュデータ生成部302は、ジョブ管理テーブル315、実ステータスデータ311が更新されるまで待機する。
【0046】
(ポーリング対象テーブル管理部303)
続いて図9を用いてポーリング対象テーブル管理部303のフローを説明する。本処理は、プリントサーバ102が備えるCPU201がHD205等に記憶されたプログラムを読み出すことで実行される。
【0047】
S901にて、ポーリング対象テーブル管理部303は、ジョブ管理テーブル315の更新、実ステータスデータ311の更新、もしくは、ステータス取得要求受付部304またはリスナ処理部305からの通知があるか否かを確認する。もしこれらの更新もしくは通知がない場合は(S901にてNO)、S904へ進む。
【0048】
テーブルの更新、もしくは、各処理部からの通知がある場合は(S901にてYES)、ポーリング対象テーブル管理部303は、図10のアクションテーブル316に定義された変化が発生しているか確認する(S902)。アクションテーブル316に記載された変化が発生していた場合は(S902にてYES)、ポーリング対象テーブル管理部303は、アクションテーブル316に定義された情報に従ってポーリング対象テーブル312を更新する(S903)。
【0049】
アクションテーブル316には、図10に示すようにステータス変化イベントもしくは通知イベントとそれらが発生した場合にポーリング対象テーブル312の変更処理が定義されている。例えば図10において、ジョブ管理テーブル315を参照して、「新たな印刷ジョブ発行を受け付けた」と判断したとする。この場合、「デバイスステータスグループを、対象印刷ジョブが終了状態になるまで、20秒間隔で取得する」、「ジョブリストを、対象印刷ジョブが終了状態になるまで、12秒間隔で取得する」という情報がポーリング対象テーブル312に登録される。
【0050】
S904にて、ポーリング対象テーブル管理部303は、ポーリング対象テーブル312を参照し、登録されている各ステータス項目の期限になっていないか確認する。期限の判断は、ジョブ管理テーブル315やステータス取得部301からのステータス変化などによって判断する。もしステータス項目が設定された期限になっていれば(S904にてYES)、ポーリング対象テーブル管理部303は、該当のステータス項目をポーリング対象テーブル312から削除する(S905)。例えば前述の「デバイスステータスグループ」と「ジョブリスト」は、「対象印刷ジョブが終了状態になる」とポーリング対象テーブル312から削除される。
【0051】
S906にて、ポーリング対象テーブル管理部303は、ポーリング対象テーブル312に新たなステータス項目が追加されたかを確認する。S903の処理により新たなステータス項目が追加されていた場合は(S906にてYES)、ポーリング対象テーブル管理部303は、ステータス取得部301に対して実ステータスを取得するように通知を行う(S907)。その後、S901へ戻り、ポーリング対象テーブル管理部303は、上記一連の動作を繰り返す。
【0052】
(ステータス取得シーケンス)
続いて、クライアントPC101からプリントサーバ102に対してステータス取得を行った場合のシーケンスについて説明する。ここでは「ブラックインクの残量」情報を要求した例の処理について図11を用いて説明する。
【0053】
クライアントPC101がプリントサーバ102に対して「ブラックインクの残量」情報を要求すると、プリントサーバ102のステータス取得要求受付部304がその要求を受け付ける(S1101)。ステータス取得要求受付部304は、ステータスキャッシュデータ314を参照し、「ブラックインクの残量」情報があるかを確認する(S1102)。このとき、ステータスキャッシュデータ314に「ブラックインクの残量」の情報があればクライアントPC101にステータスキャッシュデータ314の情報を返却する。ここではステータスキャッシュデータ314に「ブラックインクの残量」情報がない場合の処理について述べる。
【0054】
ステータス取得要求受付部304は、ポーリング対象テーブル管理部303に対してステータス取得要求のイベントを通知する(S1103)。ポーリング対象テーブル管理部303は、図9で示したアクションテーブル316のステータス取得要求イベントを参照し、「ブラックインクの残量」情報の関連ステータスである「インク情報グループ」をポーリング対象テーブル312に登録する(S1104)。その後、ポーリング対象テーブル管理部303は、ステータス取得部301に対してステータス更新通知を行う(S1105)。
【0055】
ステータス取得部301は、ステータス更新通知を受けて、プリンタ103からステータスを取得する。このとき、ステータス取得部301は、ポーリング対象テーブル312に登録されている「インク情報グループ」の情報、つまり「全インクの稼働情報」と「全インクの残量情報」をプリンタ103から取得する(S1106)。実ステータスデータ311が更新されると、ステータスキャッシュデータ生成部302は、「インク情報グループ」が含まれたステータスキャッシュデータ314を生成する(S1107)。
【0056】
ステータス取得要求受付部304は、ステータス取得部301からのステータス変化(この場合「インク情報」を取得したため)を受ける(S1108)。これにより、ステータス取得要求受付部304は、ステータスキャッシュデータ314から「ブラックインクの残量」情報を取得する(S1109)。そして、ステータス取得要求受付部304は、クライアントPC101へ取得した情報を通知する(S1110)。
【0057】
一方、S1104では「インク情報グループ」の情報をポーリング間隔4秒で、1分経過後まで取得するようにポーリング対象テーブル312に登録されている。このため、S1104から4秒経過した時点であるS1111では、ステータス取得部301は、「インク情報グループ」の情報をプリンタ103から取得する。これに伴い、ステータスキャッシュデータ生成部302は、取得した情報をステータスキャッシュデータ314にも保存する(S1112)。
【0058】
その後もステータス取得部301は「インク情報グループ」の情報をプリンタ103から所定の間隔で、取得し続ける。S1104から1分経過すると、ポーリング対象テーブル管理部303は「インク情報グループ」をポーリング対象テーブル312から削除する(S1113)。このため、その後のステータス取得部301によるステータス取得処置では「インク情報グループ」はプリンタ103から取得されない(S1114)。そして、「インク情報グループ」は、ステータスキャッシュデータ生成部302により、ステータスキャッシュデータ314からも削除される(S1115)。
【0059】
(リスナ登録・解除シーケンス)
次に図12A、12Bを用いてリスナ登録・解除について説明する。図12A、12BではクライアントPC101が「デバイス稼働情報」をリスナ登録・解除した例を示している。図12Aは、リスナ登録に関するシーケンスを示し、図12Bは、リスナ解除に関するシーケンスを示している。
【0060】
クライアントPC101が「デバイス稼働情報」のリスナ登録をプリントサーバ102に通知すると、プリントサーバ102のリスナ処理部305が受け付ける(S1201)。リスナ処理部305は、「デバイス稼働情報」がリスナ登録されたことを保持する(S1202)。そして、リスナ処理部305は、ポーリング対象テーブル管理部303にリスナ登録のイベントを通知する(S1203)。また、リスナ処理部305は、クライアントPC101に対してリスナ登録の完了を通知する(S1204)。
【0061】
ポーリング対象テーブル管理部303は、アクションテーブル316のリスナ登録イベントを参照し、関連ステータスグループである「デバイスステータスグループ」をポーリング対象テーブル312に登録する(S1205)。ここでポーリング対象テーブル312に登録される項目は、「デバイス稼働情報」と「デバイスエラー情報」である。その後、ポーリング対象テーブル管理部303は、ステータス取得部301に対してステータス更新通知を行う(S1206)。
【0062】
ステータス取得部301は、ポーリング対象テーブル管理部303からのステータス更新通知を受けて、プリンタ103からステータスを取得する。このとき、ステータス取得部301は、ポーリング対象テーブル312に登録されている「デバイスステータスグループ」の情報を取得する(S1207)。実ステータスデータ311が更新されると、ステータスキャッシュデータ生成部302は、「デバイスステータスグループ」の情報が含まれたステータスキャッシュデータ314を生成する(S1208)。
【0063】
ステータス取得要求受付部304は、ステータス取得部301からのステータス変化(この場合「デバイスステータスグループ」情報を取得したため)を受ける(S1209)。そして、リスナ処理部305は、ステータスキャッシュデータ314から「デバイス稼働情報」情報を取得(S1210)する。このとき、取得した情報が変化していた場合は、リスナ処理部305は、クライアントPC101へその情報を通知する(S1211)。
【0064】
一方、S1205で、「デバイスステータスグループ」の情報を4秒間隔で取得するようにポーリング対象テーブル312に登録されている。そのため、ポーリング対象テーブル管理部303は、S1205の処理以降も4秒間隔で「デバイスステータスグループ」の情報をプリンタ103から取得する(S1212)。そして、ステータスキャッシュデータ生成部302は、取得された情報を、ステータスキャッシュデータ314に反映する(S1213)。このとき、ステータスキャッシュデータ314の「デバイス稼動情報」が変化するとその都度、リスナ処理部305からクライアントPC101に通知される。
【0065】
クライアントPC101がリスナ解除をプリントサーバ102に通知すると、プリントサーバ102のリスナ処理部305が受け付ける(S1221)。リスナ処理部305は、S1202で保持した「デバイス稼働情報」の登録情報を破棄する(S1222)。そして、リスナ処理部305は、ポーリング対象テーブル管理部303にリスナ解除のイベントを通知する(S1223)。また、リスナ処理部305は、クライアントPC101に対してリスナ解除の完了を通知する(S1224)。
【0066】
ポーリング対象テーブル管理部303は、アクションテーブル316のリスナ解除イベントを参照し、対象項目である「デバイスステータスグループ」をポーリング対象テーブル312から削除する(S1225)。その後において、ステータス取得部301は、次のステータス取得タイミングで「デバイスステータスグループ」の情報は取得しない(S1226)。実ステータスデータ311が更新されると、ステータスキャッシュデータ生成部302は、「デバイスステータスグループ」の情報を含まないステータスキャッシュデータ314を生成する(S1227)
(印刷ジョブ処理シーケンス1)
次に図13A〜13Cを用いてクライアントPC101から印刷指示を受けた際の処理を説明する。
【0067】
クライアントPC101がプリントサーバ102に対して印刷指示を行うと、プリントサーバ102のジョブ管理部306が受け付ける(S1301)。ジョブ管理部306は、印刷指示を受け付けるとジョブIDを発行し、ジョブ管理テーブル315に登録する(S1302)。ここでは、印刷ジョブのジョブIDを“017”とし、以下、対応する印刷ジョブを“印刷ジョブ017”と記載する。このとき、印刷ジョブの管理情報は、「受付中」にて登録される。このとき、ジョブ管理部306は、印刷指示で受けた設定情報についても、印刷ジョブ017に対応付けて登録する。さらに、ジョブ管理部306は、図17(a)に示すような「受付中ジョブステータス」を生成する(S1303)。この「受付中ジョブステータス」において、「ジョブ進捗情報」に「Spooling」、「ジョブエラー情報」に「None(エラーなし)」、「出力ページ数」に「0」が設定される。そして、ジョブ管理部306は、クライアントPC101にジョブIDを通知し、印刷指示を受け付けたことを通知する(S1304)。
【0068】
一方、ポーリング対象テーブル管理部303は、ジョブ管理テーブル315に新たに受付中の印刷ジョブ017が登録されたことにより、アクションテーブル316を参照する。そして、ポーリング対象テーブル管理部303は、「デバイスステータスグループ」と「ジョブリスト」をポーリング対象テーブル312に登録する(S1305)。ここでの図5に示すように「デバイスステータスグループ」の項目として、「デバイス稼働情報)と「デバイスエラー情報」が対応する。そして、ポーリング対象テーブル管理部303は、ステータス取得部301にステータス更新通知を行う(S1306)。
【0069】
ステータス取得部301は、受信したステータス更新通知に応じて、「デバイスステータスグループ」と「ジョブリスト」を新たにプリンタ103から取得する(S1307)。ここでは、「デバイス稼働情報(DeviceStatus)」に対し、「Running」の情報が取得される。同様に、「デバイスエラー情報(DeviceError)」に対し「None」、「ジョブリスト(JobList)」としてジョブID“014”、“015”、“016”の情報が取得される。
【0070】
ステータス取得部301がステータスを取得することで実ステータスデータ311が更新されると、ステータスキャッシュデータ生成部302は、ステータスキャッシュデータ314を作成する(S1308)。図8のS808で説明した通り、S1307で取得された「ジョブリスト」情報にジョブID“017”の情報が追加される。
【0071】
S1305においてポーリング間隔が12秒で登録されているため、S1305から12秒間隔ごとに、S1307、S1308と同様に実ステータスデータ311とステータスキャッシュデータ314が更新される(S1309、S1310)。
【0072】
なお、図13では記載していないが、S1309、S1310の間にクライアントPC101から印刷ジョブ017のジョブステータス情報が取得された場合には、以下のように処理する。つまり、図8で説明したように、ステータスキャッシュデータ生成部302は、S1303で生成した「受付中ジョブステータス」をステータスキャッシュデータ314に付加する。そして、ステータスキャッシュデータ生成部302は、付加した情報をクライアントPC101に通知する。
【0073】
クライアントPC101は、S1304でプリントサーバ102からジョブIDを受け取ると、印刷データをプリントサーバ102に送信する(S1311)。そして、その応答として、ジョブ管理部306は、印刷データを受信した旨をクライアントPC101に通知する(S1312)。更に、ジョブ管理部306は、プリンタ103に対して印刷ジョブの発行を通知する(S1313)。
【0074】
プリンタ103は、プリントサーバ102から印刷ジョブの受付を行うと、プリントサーバ102のジョブ管理部306に印刷ジョブ受付完了通知を行う(S1314)。プリンタ103はジョブリスト情報に受け付けた印刷ジョブを追加するため、ステータス取得部301は印刷ジョブ受付後にステータス取得を行い、ジョブリストに印刷ジョブ017を含んだ情報を取得する(S1315)。ステータス取得部301は、ステータス変化通知をジョブ管理部306に行う(S1316)。
【0075】
ジョブ管理部306は、ステータス取得部301からステータス変化通知を受けてジョブ管理テーブル315のジョブID“017”の情報を「送信中」に変更する(S1317)。さらに、ジョブ管理部306は、S1303で作成した「受付中ジョブステータス」を破棄する(S1318)。
【0076】
ポーリング対象テーブル管理部303は、S1317のジョブ管理テーブル315の変更を受けて、プリンタ103で印刷ジョブを受け付けたと判断する。これにより、ポーリング対象テーブル管理部303は、アクションテーブル316を参照し、ポーリング対象テーブル312に印刷ジョブ017の「ジョブステータスグループ」と「給紙口情報」、「出力トレイ情報」を登録する(S1319)。さらに、ポーリング対象テーブル管理部303は、ステータス取得部301にステータス更新通知を行う(S1320)。これにより、ステータス取得部301は、ポーリング対象テーブル312に登録されたステータス情報をプリンタ103から取得する(S1321)。さらにステータスキャッシュデータ生成部302は、ステータスキャッシュデータ314にもこれらの情報を格納する(S1322)。
【0077】
その後、ジョブ管理部306は、S1311で受け取った印刷データをプリンタ103が解釈できる形に変換する(S1323)そして、ジョブ管理部306は、プリンタ103へ変換した印刷データを送信する(S1324)。印刷データの送信が完了すると、ジョブ管理部306は、ジョブ管理テーブル315において印刷ジョブ017のステータスを「送信完了」に更新する(S1325)。
【0078】
プリンタ103は、S1324で印刷データを受信すると、受信した印刷データに従って印刷処理を開始する(S1326)。
【0079】
一方、ステータス取得部301は、S1319のタイミングで4秒毎にステータス取得するようポーリング対象テーブル312が変更されているので、S1319から4秒間隔でステータスを取得する(S1327)。それを受けて、ステータスキャッシュデータ生成部302は、ステータスキャッシュデータ314が更新される(S1328)。
【0080】
(印刷ジョブ処理シーケンス2)
次に図14A〜14Cを用いて図13A〜13C以降の印刷ジョブのシーケンスについて説明する。さらにここではクライアントPC101から印刷ジョブ017の「ジョブ進捗情報」がリスナ登録され、印刷ジョブの「ジョブ進捗情報」が変化する度にクライアントPC101に通知する例を示している。
【0081】
S1401にて、クライアントPC101は、リスナ登録指示を行うと、プリントサーバ102のリスナ処理部305が指示を受け付ける。そして、リスナ処理部305は、リスナ登録イベントをポーリング対象テーブル管理部303に通知する(S1402)。リスナ処理部305は、クライアントPC101にリスナ登録完了の通知を行う(S1403)。その後、リスナ処理部305は、ステータスキャッシュデータ314にある印刷ジョブ017の「ジョブ進捗情報」が変化することを監視する。
【0082】
S1402でリスナ登録イベントを受けたポーリング対象テーブル管理部303は、リスナ登録イベントとして、印刷ジョブ017の「ジョブステータスグループ」の情報をポーリング対象テーブル312に登録する(S1404)。ただし、印刷ジョブ017の「ジョブステータスグループ」は、プリンタ103で印刷ジョブを受け付けたタイミング(図13BのS1319)にて登録されているので、期限の情報(「リスナ登録解除まで」)が追加で登録される。
【0083】
プリンタ103にて印刷ジョブ017の印刷が完了すると(S1405)、ステータス取得部301は、その情報を取得する(S1406)。そして、ステータスキャッシュデータ生成部302は、ステータスキャッシュデータ314を更新する(S1407)。ステータス取得部301は、ジョブ管理部306およびリスナ処理部305にステータス変化通知を行う(S1408)。
【0084】
ステータス変化通知を受けたジョブ管理部306は、ジョブ管理テーブル315の印刷ジョブ017の管理情報を「印刷完了」に変更する(S1409)。さらに、ジョブ管理部306は、ステータスキャッシュデータ314の情報を参照し、図17(b)のような印刷ジョブ017の「印刷完了ジョブステータス」を生成し、保持する(S1410)。
【0085】
S1409でジョブ管理テーブル315が更新されると、ポーリング対象テーブル管理部303は、プリンタ103での印刷処理が完了したと判断する。これに伴い、ポーリング対象テーブル管理部303は、アクションテーブル316を参照する。そして、ポーリング対象テーブル管理部303は、ポーリング対象テーブル312から「ジョブリスト」と印刷ジョブ017の「ジョブステータスグループ」、使用する給紙口1の「給紙口情報グループ」を削除する(S1411)。ただし、印刷ジョブ017の「ジョブステータスグループ」は、S1404でリスナ登録されている。そのため、期限の情報だけ更新され、「ジョブステータスグループ」はポーリング対象テーブル312から削除されない。
【0086】
S1408でステータス変化通知を受け取ったリスナ処理部305は、ステータスキャッシュデータ314の「ジョブ進捗情報」を参照し、印刷ジョブ017の「ジョブ進捗情報」が印刷完了になったことを検知する(S1412)。その後、リスナ処理部305は、クライアントPC101にその情報を通知する(S1413)。
【0087】
ステータス取得部301はS1414でステータス取得を行う。このとき、印刷ジョブ017は完了しているため、図7で説明した通りジョブ管理テーブル315の情報からポーリング対象テーブル312に登録されている印刷ジョブ017の「ジョブステータスグループ」の情報は取得しない。ステータスキャッシュデータ生成部302は、S1414で取得した実ステータスデータ311からステータスキャッシュデータ314を生成する際、S1410でジョブ管理部306が保持している「印刷完了ジョブステータス」をステータスキャッシュデータ314に付加する(S1415)。
【0088】
その後、プリンタ103において、オペレータにより印刷ジョブ017の印刷物が全て取り除かれる(S1416)。これにより、S1417にて、実ステータスデータ311の出力トレイ5の「積載量情報」が“0”になる。なお、ここで印刷物が取り除かれたか否かは、例えば、プリンタ103に備えられたセンサなどにより検出する。これを受けて、ステータスキャッシュデータ生成部302により、ステータスキャッシュデータ314も更新される(S1418)。ステータス取得部301は、ジョブ管理部306とリスナ処理部305にステータス変化の通知を行う(S1419)
ジョブ管理部306は、ステータス取得部301からのステータス変化通知を受けてジョブ管理テーブル315の印刷ジョブ017の管理情報を「終了」状態に更新する(S1420)。さらに、ジョブ管理部306は、S1410で生成した「印刷完了ジョブステータス」を削除する。そして、ジョブ管理部306は、ステータスキャッシュデータ314の情報を参照して、図17(c)のような「終了ジョブステータス」を作成し、保持する(S1421)。
【0089】
ポーリング対象テーブル管理部303は、ジョブ管理テーブル315の変更を受けて印刷ジョブ017が終了したと判断する。これに伴い、ポーリング対象テーブル管理部303は、「デバイスステータスグループ」と「出力トレイ情報グループ」をポーリング対象テーブル312から削除する(S1422)。その結果、ポーリング対象テーブル312にはS1404のリスナ登録イベントで登録した印刷ジョブ017の「ジョブステータスグループ」情報のみとなる。
【0090】
S1419でステータス変化通知を受け取ったリスナ処理部305は、ステータスキャッシュデータ314の「ジョブ進捗情報」を参照し、印刷ジョブ017の「ジョブ進捗情報」が終了になったことを検知する(S1423)。その後、リスナ処理部305は、クライアントPC101にその情報を通知する(S1424)。
【0091】
その後、ステータス取得部301は、印刷ジョブ017は完了しているため、図7で説明した通りポーリング対象テーブル312に登録されている印刷ジョブ017の「ジョブステータスグループ」の情報は取得しない(S1425)。ステータスキャッシュデータ生成部302は、ステータスキャッシュデータ314を生成する際、S1421でジョブ管理部306が保持した「終了ジョブステータス」をステータスキャッシュデータ314に格納する(S1426)。
【0092】
(印刷ジョブ処理シーケンス3)
次に図15A、15Bを用いて図13A〜13C以降の印刷ジョブで紙なしエラーが発生した場合のシーケンスについて説明する。
【0093】
プリンタ103の給紙口1(不図示)で紙なしエラーが発生すると(S1501)、ステータス取得部301はその情報を取得する(S1502)。さらに、ステータスキャッシュデータ生成部302は、ステータスキャッシュデータ314にその情報を反映する(S1503)。
【0094】
ステータス取得部301は、紙なしエラーが発生したことをポーリング対象テーブル管理部303に通知する(S1504)。そして、ポーリング対象テーブル管理部303は、紙なしエラーが発生したイベントとしてアクションテーブル316を参照し、全給紙口の「給紙口情報グループ」をポーリング対象テーブル312に登録する(S1505)。その後、ポーリング対象テーブル管理部303は、ステータス取得部301に対してステータス更新通知を行う(S1506)。
【0095】
ステータス取得部301は、ポーリング対象テーブル312に定義されている全給紙口の「給紙口情報グループ」の情報を取得する(S1507)。ステータス取得部301によるステータスの取得により実ステータスデータ311が更新されると、ステータスキャッシュデータ生成部302は、全給紙口の「給紙口情報グループ」の情報をステータスキャッシュデータ314に格納する(S1508)。
【0096】
オペレータがプリンタ103における紙なしエラーを解除すると(S1509)、ステータス取得部301は、その情報を取得する(S1510)。これに伴い、ステータスキャッシュデータ生成部302は、ステータスキャッシュデータ314にも紙なしエラーが解除された情報を格納する(S1511)。
【0097】
紙なしエラー解除を検知したステータス取得部301は、ポーリング対象テーブル管理部303にステータス変化通知を行う(S1512)。そして、ポーリング対象テーブル管理部303は、S1505で登録した全給紙口の「給紙口情報グループ」をポーリング対象テーブル312から削除する(S1513)。ただし、給紙口1の「給紙口情報グループ」は図13のS1319で登録された情報として印刷ジョブ017が印刷終了するまで残るためポーリング対象テーブル312からは削除されない。
【0098】
その後、ステータス取得部301は、ポーリング対象テーブル312に登録された情報のみをプリンタ103から取得する(S1514)。そして、ステータス取得部301によるステータスの取得に伴い、ステータスキャッシュデータ生成部302は、ステータスキャッシュデータ314にその情報を反映する(S1515)。
【0099】
(印刷ジョブ処理シーケンス4)
次に図16A、16Bを用いて図13A〜13C以降の印刷ジョブ017でクライアントPC101から印刷ジョブ017をキャンセルした場合のシーケンスについて説明する。
【0100】
S1601でクライアントPC101から印刷ジョブ017の印刷キャンセル指示を行うと、プリントサーバ102のジョブ管理部306が受け付ける。これに伴い、ジョブ管理部306は、プリンタ103に対して印刷キャンセル指示を通知する(S1602)。そして、ジョブ管理部306は、クライアントPC101に対して印刷キャンセルを受け付けたことを通知する(S1603)。
【0101】
プリンタ103は、ジョブ管理部306からの印刷キャンセル指示を受けると印刷ジョブ017のキャンセル処理を開始する(S1604)。
【0102】
ステータス取得部301は、プリンタ103からステータスを取得する際に、印刷ジョブ017の「ジョブ進捗情報」から印刷ジョブ017がキャンセル処理中である情報を取得する(S1605)。これに伴い、ステータスキャッシュデータ生成部302は、ステータスキャッシュデータ314にもその情報を格納する(S1606)。
【0103】
ステータス取得部301は、印刷ジョブ017がキャンセル処理中になったことをジョブ管理部306に通知する(S1607)。ステータス変化通知を受けたジョブ管理部306は、ジョブ管理テーブル315の印刷ジョブ017の管理情報を「キャンセル中」に変更する(S1608)。
【0104】
ポーリング対象テーブル管理部303は、ジョブ管理テーブル315の情報が変化したことを受けて、印刷ジョブ017がキャンセル中になったと判断する。これにより、ポーリング対象テーブル管理部303は、「ジョブリスト」と使用する給紙口1の「給紙口情報グループ」、使用する出力トレイ05の「出力トレイ情報グループ」をポーリング対象テーブル312から削除する(S1609)。
【0105】
その後、ステータス取得部301は、S1609で更新されたポーリング対象テーブル312に登録してある「デバイスステータスグループ」と印刷ジョブ017の「ジョブステータスグループ」の情報をプリンタ103から取得する(S1610)。これに伴い、ステータスキャッシュデータ生成部302は、ステータスキャッシュデータ314にもその情報を反映する(S1611)。
【0106】
プリンタ103での印刷ジョブ017のキャンセル処理が完了すると(S1612)、ステータス取得部301はその情報を取得する(S1613)。これに伴い、ステータスキャッシュデータ生成部302は、ステータスキャッシュデータ314にもその情報を反映する(S1614)。
【0107】
ステータス取得部301は、キャンセル処理が完了したためジョブ管理部306にステータス変化通知を行う(S1615)。ステータス変化通知を受けたジョブ管理部306は、ジョブ管理テーブル315にある印刷ジョブ017の管理情報を「キャンセル終了」に変更する(S1616)。さらに、ジョブ管理部306は、ステータスキャッシュデータ314を参照して、図17(d)のような「キャンセル終了ジョブステータス」を生成し、保持する(S1617)。
【0108】
ポーリング対象テーブル管理部303は、ジョブ管理テーブル315の変化を検知し、印刷ジョブ017がキャンセル終了したと判断する。これにより、ポーリング対象テーブル管理部303は、「デバイスステータスグループ」と印刷ジョブ017の「ジョブステータスグループ」をポーリング対象テーブル312から削除する(S1618)。
【0109】
なお、これ以降にクライアントPC101から印刷ジョブ017のジョブステータス情報が取得された場合、以下のように処理される。つまり、図8で説明したようにステータスキャッシュデータ生成部302は、S1616で生成した「キャンセル終了ジョブステータス」をステータスキャッシュデータ314に付加する。そして、付加された情報がクライアントPC101に通知される。
【0110】
本実施形態においては、画像処理装置であるプリントサーバが、印刷装置であるプリンタのステータスを、効率よく管理する例を示した。しかし、この構成に限定するものではなく、例えば、プリントサーバとして示した機能を印刷装置の内部に配置することも可能である。その場合、外部からのステータスの取得に限らず、印刷装置内部における、ステータス取得が効率よく管理できることになる。
【0111】
以上述べてきたように、ポーリング対象テーブル312を使用することにより、必要な情報だけを取得し、ステータスキャッシュデータ314の肥大化を防ぐことができる。
【0112】
さらに、関連ステータステーブル313を使用して関連するステータス項目の情報を同時に取得するため、関連するステータス項目の取得要求が一括して行われることにより、印刷装置であるプリンタ103へのアクセス回数を減らすことができる。
【0113】
さらに、ポーリング対象テーブル312に取得するステータス項目毎に取得の条件(ポーリング間隔、取得する期限など)を持つ。これにより、ステータスキャッシュデータ314の肥大化、プリンタ103への無駄なアクセスを防止することができる。なお、ポーリング対象テーブル312にて指定される条件は、図4に示したものに限定するものではなく、他の条件を追加しても構わない。
【0114】
さらに、ジョブステータス、デバイスステータスを関連ステータステーブル313、ポーリング対象テーブル312で一括して管理するためステータス管理の簡素化を実現することができる。
【0115】
さらに、ジョブ管理テーブル315を使用して印刷ジョブの進捗を管理し、プリンタ103へ未送信のジョブについてのジョブステータスを生成する。これに基づき、未送信のジョブに関するステータスを取得するためのアクセスを停止することができる。また、未送信のジョブやジョブの完了後なども含め、ジョブステータスが変化しない印刷ジョブの情報を不変ステータスとして定義する。これにより、不変ステータスについては、プリンタ103から取得しないように制御することで、プリンタ103への無駄なアクセスを停止することができる。この場合、最初の1回のみステータスを取得し、以降のステータス取得を中止する。そして、最初に取得した値を継続的に保持するようにしても構わない。また、不変ステータスは、予め対象となるステータス項目を定義しておいてもよいし、取得した直近のステータス項目を対象としても構わない。
【0116】
さらにアクションテーブル316にステータス変化などのイベントに対するポーリング対象テーブル312の制御を保持することによって、取得するステータス項目の一元的な管理が可能となる。
【0117】
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。

【特許請求の範囲】
【請求項1】
印刷ジョブを処理する印刷装置のステータス情報を管理する管理装置であって、
前記ステータス情報として、前記印刷装置のデバイスステータス情報と前記印刷装置で処理されている印刷ジョブのジョブステータス情報とを取得するステータス取得手段と、
前記ステータス取得手段によって取得されたステータス情報を解析するステータス解析手段と、
前記ステータス取得手段によって取得されたステータス情報から、キャッシュに保持するキャッシュデータを生成するステータスキャッシュデータ生成手段と、
前記ステータス解析手段によって解析された情報から前記ステータス取得手段にて取得するステータス情報に含まれるステータス項目を変更する変更手段と
を有することを特徴とする管理装置。
【請求項2】
前記ステータス取得手段は、ステータス取得要求に応じて、当該ステータス取得要求に対応する複数のデバイスステータス情報を、ステータス項目がグルーピングされた関連ステータステーブルに基づき取得することを特徴とする請求項1に記載の管理装置。
【請求項3】
前記ステータス取得手段は、取得するステータス項目と条件とをグループ単位で記憶するポーリング対象テーブルに基づき、前記デバイスステータス情報と前記ジョブステータス情報とを取得することを特徴とする請求項1に記載の管理装置。
【請求項4】
前記デバイスステータス情報と前記ジョブステータス情報のステータス項目において、関連するステータス項目をグループ単位でまとめた関連ステータステーブルを有し、
前記ステータス取得手段は、前記ステータス情報を、前記関連ステータステーブルに定義されたグループ単位で取得することを特徴とする請求項1に記載の管理装置。
【請求項5】
前記変更手段は、前記ステータス取得手段で取得するステータス項目を前記関連ステータステーブルに定義されたグループ単位で変更することを特徴とする請求項4に記載の管理装置。
【請求項6】
各ステータス項目それぞれに対して取得間隔が定義され、
前記ステータス取得手段は、前記取得間隔に従って前記ステータス情報を取得することを特徴とする請求項1乃至5のいずれか一項に記載の管理装置。
【請求項7】
各ステータス項目それぞれに対して取得期限が定義され、
前記ステータス取得手段は、前記取得期限に従って前記ステータス項目の取得を中止することを特徴とする請求項1乃至6のいずれか一項に記載の管理装置。
【請求項8】
値が不変であるステータス項目を不変ステータスとして作成し、
前記ステータス取得手段は、前記不変ステータスは取得せず、
前記ステータスキャッシュデータ生成手段は、作成された前記不変ステータスの値を用いて前記ステータスキャッシュデータを生成する
ことを特徴とする請求項1乃至7のいずれか一項に記載の管理装置。
【請求項9】
処理が終了した印刷ジョブに関するステータス情報は、前記不変ステータスとして扱うことを特徴とする請求項8に記載の管理装置。
【請求項10】
前記不変ステータスは、直近に取得したステータス項目に対して作成されることを特徴とする請求項9に記載の管理装置。
【請求項11】
未送信の印刷ジョブに関するステータス情報は、前記不変ステータスとして扱うことを特徴とする請求項8に記載の管理装置。
【請求項12】
前記不変ステータスは、予め定義されたステータス項目に対して作成されることを特徴とする請求項8に記載の管理装置。
【請求項13】
印刷ジョブを処理する印刷装置のステータス情報を管理する管理方法であって、
ステータス取得手段が、前記ステータス情報として、前記印刷装置のデバイスステータス情報と前記印刷装置で処理されている印刷ジョブのジョブステータス情報とを取得するステータス取得工程と、
ステータス解析手段が、前記ステータス取得工程にて取得されたステータス情報を解析するステータス解析工程と、
ステータスキャッシュデータ生成手段が、前記ステータス取得工程にて取得されたステータス情報からキャッシュに保持するキャッシュデータを生成するステータスキャッシュデータ生成工程と、
変更手段が、前記ステータス解析工程にて解析された情報から前記ステータス取得工程にて取得するステータス情報に含まれるステータス項目を変更する変更工程と
を有することを特徴とする管理方法。
【請求項14】
コンピュータを、
印刷ジョブを処理する印刷装置のステータス情報として、前記印刷装置のデバイスステータス情報と前記印刷装置で処理されている印刷ジョブのジョブステータス情報とを取得するステータス取得手段、
前記ステータス取得手段によって取得されたステータス情報を解析するステータス解析手段、
前記ステータス取得手段によって取得されたステータス情報からキャッシュに保持するキャッシュデータを生成するステータスキャッシュデータ生成手段、
前記ステータス解析手段によって解析された情報から前記ステータス取得手段にて取得するステータス情報に含まれるステータス項目を変更する変更手段
として機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12A】
image rotate

【図12B】
image rotate

【図13A】
image rotate

【図13B】
image rotate

【図13C】
image rotate

【図14A】
image rotate

【図14B】
image rotate

【図14C】
image rotate

【図15A】
image rotate

【図15B】
image rotate

【図16A】
image rotate

【図16B】
image rotate

【図17】
image rotate


【公開番号】特開2013−89192(P2013−89192A)
【公開日】平成25年5月13日(2013.5.13)
【国際特許分類】
【出願番号】特願2011−232125(P2011−232125)
【出願日】平成23年10月21日(2011.10.21)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】