(57)【要約】【課題】全ステータスをポーリングするとキャッシュする情報量が多くなり、コストと通信帯域へ負荷が増える。また必要なステータス項目だけをキャッシュすると、ステータス要求時に毎回アクセスを行わなければならず、デバイスの制御とネットワーク負荷、ステータス返答遅延が発生する。【解決手段】印刷ジョブを処理する印刷装置のステータス情報として、前記印刷装置のデバイスステータス情報と前記印刷装置で処理されている印刷ジョブのジョブステータス情報とを取得するステータス取得手段と、前記ステータス取得手段によって取得されたステータス情報を解析するステータス解析手段と、前記ステータス取得手段によって取得されたステータス情報から、キャッシュに保持するキャッシュデータを生成するステータスキャッシュデータ生成手段と、前記ステータス解析手段によって解析された情報から前記ステータス取得手段にて取得するステータス情報に含まれるステータス項目を変更する変更手段とを有する。【選択図】図３
2013089192.tif 000002
【特許請求の範囲】
【請求項１】
印刷ジョブを処理する印刷装置のステータス情報を管理する管理装置であって、
前記ステータス情報として、前記印刷装置のデバイスステータス情報と前記印刷装置で処理されている印刷ジョブのジョブステータス情報とを取得するステータス取得手段と、
前記ステータス取得手段によって取得されたステータス情報を解析するステータス解析手段と、
前記ステータス取得手段によって取得されたステータス情報から、キャッシュに保持するキャッシュデータを生成するステータスキャッシュデータ生成手段と、
前記ステータス解析手段によって解析された情報から前記ステータス取得手段にて取得するステータス情報に含まれるステータス項目を変更する変更手段と
を有することを特徴とする管理装置。
【請求項２】
前記ステータス取得手段は、ステータス取得要求に応じて、当該ステータス取得要求に対応する複数のデバイスステータス情報を、ステータス項目がグルーピングされた関連ステータステーブルに基づき取得することを特徴とする請求項１に記載の管理装置。
【請求項３】
前記ステータス取得手段は、取得するステータス項目と条件とをグループ単位で記憶するポーリング対象テーブルに基づき、前記デバイスステータス情報と前記ジョブステータス情報とを取得することを特徴とする請求項１に記載の管理装置。
【請求項４】
前記デバイスステータス情報と前記ジョブステータス情報のステータス項目において、関連するステータス項目をグループ単位でまとめた関連ステータステーブルを有し、
前記ステータス取得手段は、前記ステータス情報を、前記関連ステータステーブルに定義されたグループ単位で取得することを特徴とする請求項１に記載の管理装置。
【請求項５】
前記変更手段は、前記ステータス取得手段で取得するステータス項目を前記関連ステータステーブルに定義されたグループ単位で変更することを特徴とする請求項４に記載の管理装置。
【請求項６】
各ステータス項目それぞれに対して取得間隔が定義され、
前記ステータス取得手段は、前記取得間隔に従って前記ステータス情報を取得することを特徴とする請求項１乃至５のいずれか一項に記載の管理装置。
【請求項７】
各ステータス項目それぞれに対して取得期限が定義され、
前記ステータス取得手段は、前記取得期限に従って前記ステータス項目の取得を中止することを特徴とする請求項1乃至６のいずれか一項に記載の管理装置。
【請求項８】
値が不変であるステータス項目を不変ステータスとして作成し、
前記ステータス取得手段は、前記不変ステータスは取得せず、
前記ステータスキャッシュデータ生成手段は、作成された前記不変ステータスの値を用いて前記ステータスキャッシュデータを生成する
ことを特徴とする請求項１乃至７のいずれか一項に記載の管理装置。
【請求項９】
処理が終了した印刷ジョブに関するステータス情報は、前記不変ステータスとして扱うことを特徴とする請求項８に記載の管理装置。
【請求項１０】
前記不変ステータスは、直近に取得したステータス項目に対して作成されることを特徴とする請求項９に記載の管理装置。
【請求項１１】
未送信の印刷ジョブに関するステータス情報は、前記不変ステータスとして扱うことを特徴とする請求項８に記載の管理装置。
【請求項１２】
前記不変ステータスは、予め定義されたステータス項目に対して作成されることを特徴とする請求項８に記載の管理装置。
【請求項１３】
印刷ジョブを処理する印刷装置のステータス情報を管理する管理方法であって、
ステータス取得手段が、前記ステータス情報として、前記印刷装置のデバイスステータス情報と前記印刷装置で処理されている印刷ジョブのジョブステータス情報とを取得するステータス取得工程と、
ステータス解析手段が、前記ステータス取得工程にて取得されたステータス情報を解析するステータス解析工程と、
ステータスキャッシュデータ生成手段が、前記ステータス取得工程にて取得されたステータス情報からキャッシュに保持するキャッシュデータを生成するステータスキャッシュデータ生成工程と、
変更手段が、前記ステータス解析工程にて解析された情報から前記ステータス取得工程にて取得するステータス情報に含まれるステータス項目を変更する変更工程と
を有することを特徴とする管理方法。
【請求項１４】
コンピュータを、
印刷ジョブを処理する印刷装置のステータス情報として、前記印刷装置のデバイスステータス情報と前記印刷装置で処理されている印刷ジョブのジョブステータス情報とを取得するステータス取得手段、
前記ステータス取得手段によって取得されたステータス情報を解析するステータス解析手段、
前記ステータス取得手段によって取得されたステータス情報からキャッシュに保持するキャッシュデータを生成するステータスキャッシュデータ生成手段、
前記ステータス解析手段によって解析された情報から前記ステータス取得手段にて取得するステータス情報に含まれるステータス項目を変更する変更手段
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷装置に関するステータスを効率的に管理するための管理装置、管理方法、およびプログラムに関する。
【背景技術】
【０００２】
従来、印刷装置のステータスを通知する方法として、必要なステータスをその都度取得する形態や一定間隔で印刷装置からステータス情報を取得する方法が知られている。例えば、特許文献１に開示された技術では、印刷装置のステータス情報に対して、ユーザがその表示単位を選択したときに特定のステータスを取得する方法が提案されている。また特許文献２に開示された技術では、監視装置であるホストコンピュータが一定間隔で印刷装置にアクセスして印刷装置の状態を監視する方法が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１０−３０３９３１号公報
【特許文献２】特開２００２−２９７３３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、印刷装置のステータス項目が多くなるとキャッシュデータが増大することになり、物理的なハードウェアのコストアップや印刷装置でのステータス応答処理に負荷がかかる。その結果、他の印刷処理などに影響を与える場合ある。さらにネットワークで接続された印刷装置から情報を取得しようとすると、ネットワークに大量のデータがやり取りされることになり通信障害を発生させる可能性があった。
【０００５】
そこで、本発明ではステータスデータの取得において、効率の良いキャッシュデータの生成を行うステータス管理方法を提供する。
【課題を解決するための手段】
【０００６】
上述のような課題を解決するための本発明は、以下の構成を有する。すなわち、印刷ジョブを処理する印刷装置のステータス情報を管理する管理装置であって、前記ステータス情報として、前記印刷装置のデバイスステータス情報と前記印刷装置で処理されている印刷ジョブのジョブステータス情報とを取得するステータス取得手段と、前記ステータス取得手段によって取得されたステータス情報を解析するステータス解析手段と、前記ステータス取得手段によって取得されたステータス情報から、キャッシュに保持するキャッシュデータを生成するステータスキャッシュデータ生成手段と、前記ステータス解析手段によって解析された情報から前記ステータス取得手段にて取得するステータス情報に含まれるステータス項目を変更する変更手段とを有する。
【発明の効果】
【０００７】
本発明によれば、装置間の通信を抑制し、キャッシュデータの増大を防止することができる。
【図面の簡単な説明】
【０００８】
【図１】システムの構成例の図。
【図２】プリントサーバのハードウェア構成例の図。
【図３】プリントサーバのブロック図。
【図４】プリントサーバが保持するポーリング対象テーブルの一例の図。
【図５】プリントサーバが保持する関連ステータステーブルの一例の図。
【図６】プリントサーバが保持するジョブ管理ステーブルの一例の図。
【図７】ステータス取得制御処理のフローチャート。
【図８】ステータスキャッシュデータ更新制御処理のフローチャート。
【図９】ステータス項目登録・解除制御処理のフローチャート。
【図１０】プリントサーバが保持するアクションテーブルの一例の図。
【図１１】クライアントＰＣからステータス取得を行った場合の動作シーケンス図。
【図１２Ａ】クライアントＰＣからリスナ登録・解除を行った場合の動作シーケンス図。
【図１２Ｂ】クライアントＰＣからリスナ登録・解除を行った場合の動作シーケンス図。
【図１３Ａ】クライアントＰＣから印刷指示を行った場合の動作シーケンス図。
【図１３Ｂ】クライアントＰＣから印刷指示を行った場合の動作シーケンス図。
【図１３Ｃ】クライアントＰＣから印刷指示を行った場合の動作シーケンス図。
【図１４Ａ】クライアントＰＣから印刷指示を行った場合の動作シーケンス図。
【図１４Ｂ】クライアントＰＣから印刷指示を行った場合の動作シーケンス図。
【図１４Ｃ】クライアントＰＣから印刷指示を行った場合の動作シーケンス図。
【図１５Ａ】プリンタで紙なしエラーが発生した場合の動作シーケンス図。
【図１５Ｂ】プリンタで紙なしエラーが発生した場合の動作シーケンス図。
【図１６Ａ】クライアントＰＣから印刷キャンセル指示を行った場合の動作シーケンス図。
【図１６Ｂ】クライアントＰＣから印刷キャンセル指示を行った場合の動作シーケンス図。
【図１７】ジョブ管理制御部で保持するジョブステータス情報の一例の図。
【発明を実施するための形態】
【０００９】
以下、添付図面を参照して本発明の実施の形態の一例を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【００１０】
＜実施形態＞
（システム構成）
本実施形態のシステム構成の例について図１のブロック図を参照して説明する。図１では、クライアントＰＣ１０１とプリントサーバ１０２及びプリンタ１０３がネットワーク（ＬＡＮ）１０４を介して接続された形態を示している。クライアントＰＣ１０１は、オペレータが利用し、印刷処理を指示するためのアプリケーションが稼働している。プリントサーバ１０２は、プリンタ１０３による印刷処理の管理、中継を行うプリントサーバ装置である。プリンタ１０３は、プリントサーバ１０２からの印刷指示に従って、実際の印刷処理を行う。
【００１１】
クライアントＰＣ１０１は、印刷作業を行う作業者（以下「オペレータ」と称す）、あるいは印刷指示装置（不図示）からの指示を受け、印刷処理の指示を行う。また、クライアントＰＣ１０１は、指示された印刷文書の内容やプリンタ１０３の稼働状況を踏まえながら各印刷指示に対する印刷処理のスケジュールを作成する。続いてクライアントＰＣ１０１は、作成した印刷処理のスケジュールに従い、プリントサーバ１０２に対して印刷指示を行う。なお、クライアントＰＣ１０１からプリントサーバ１０２に対する印刷指示は、印刷処理のスケジュールに合わせてクライアントＰＣ１０１が自動的に行うか、或いは、オペレータの操作を介して行われる。
【００１２】
プリントサーバ１０２は、クライアントＰＣ１０１から受けた印刷指示をプリンタ１０３が解釈可能な体裁の命令に変換する機能、プリンタ１０３に対して印刷指示を行う機能を有する。また、プリントサーバ１０２は、プリンタ１０３からプリンタの稼働状況や印刷ジョブの進捗状況を取得する機能と、取得したステータスをクライアントＰＣ１０１に通知する機能を有する。なお、プリンタの稼働状況や印刷ジョブの進捗状況を包括して「ステータス」と称し、デバイスに関するステータスを「デバイスステータス」、印刷ジョブに関するステータスを「ジョブステータス」と称する。更に、プリントサーバ１０２は、プリンタ１０３に印刷指示済みの印刷ジョブを中断させる機能も有する。なお、プリントサーバ１０２は、更なる機能を有していてもよい。
【００１３】
プリンタ１０３は、プリントサーバ１０２からの印刷指示を受けると、印刷ジョブとして指定された印刷設定に応じて印刷出力を行う。なお、プリンタ１０３は、印刷機能を有する複合機（ＭＦＰ：ＭｕｌｔｉＦｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）などであっても構わない。
【００１４】
（ハードウェア構成）
図２はプリントサーバ１０２のハードウェア構成の一例を示す図である。ＣＰＵ２０１は、記憶部であるＨＤ（ハードディスク）２０５に格納されているアプリケーションプログラム、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）、ネットワークプリンタ制御プログラム等を実行する。また、ＣＰＵ２０１は、ＲＡＭ２０３にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。
【００１５】
ＲＯＭ２０２は、基本Ｉ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）プログラム等のプログラム、文書処理の際に使用するフォントデータ、テンプレート用データ等の各種データを記憶する。
【００１６】
ＲＡＭ２０３は、ＣＰＵ２０１の主メモリ、ワークエリア等として機能する。ＲＡＭ２０３には、例えば、後述するジョブ管理テーブル３１５や後述するステータスキャッシュデータ３１４等が一時的に記憶、又は保持される。ＲＡＭ２０３は、一時記憶装置の一例である。
【００１７】
外部記憶ドライブ２０４は、ＤＶＤやＵＳＢメモリ等の記録媒体に記憶されたプログラム等をプリントサーバ１０２にロードすることができる。ＨＤ２０５は、アプリケーションプログラム、ＯＳ、制御プログラム、及びそれらの関連プログラム等を格納する記憶部であり、種々のデータを格納可能である。
【００１８】
キーボード２０６は、オペレータがプリントサーバ１０２に対する各種命令等を入力指示するためのものである。オペレータは、キーボード２０６以外に、ポインティングデバイス（不図示）やマイクロホン等他の入力デバイス（不図示）を介して、プリントサーバ１０２に各種命令を入力することができる。これらの入力デバイスは、システムバス２０８に結合されたシリアルポートインタフェース（不図示）を介してＣＰＵ２０１に接続される。或いは、入力デバイスは、パラレルポート、ＵＳＢ等、他のインタフェースで接続してもよい。
【００１９】
ディスプレイ２０７は、キーボード２０６から入力した情報や、ステータス等を表示する。システムバス２０８は、プリントサーバ１０２内の各構成要素間におけるデータの流れを司る。ネットワークインタフェース２０９は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）或いは、インターネットに接続するための通信インタフェースである。ＣＰＵ２０１が、プログラムに基づき処理を実行することによって、後述するプリントサーバ１０２の機能及びフローチャートの処理が実現される。
【００２０】
なお、クライアントＰＣ１０１のハードウェア構成も図２に示したプリントサーバ１０２のハードウェア構成と同様である。クライアントＰＣ１０１のＣＰＵがクライアントＰＣ１０１のＨＤ等に記憶されているプログラムに基づき処理を実行することによって、クライアントＰＣ１０１の印刷指示機能等が実現される。同様に、プリンタ１０３もＣＰＵやメモリ等を有し、プリンタ１０３のＣＰＵがプリンタ１０３のメモリ等に記憶されているプログラムに基づき処理を実行することによって、プリンタ１０３の機能等が実現される。
【００２１】
（プリントサーバのモジュール構成）
図３は、プリントサーバ１０２上で稼働する各モジュールのブロック図である。ステータス取得部３０１は、プリンタ１０３などのデバイスからステータスを定期的に取得し、そのステータスを実ステータスデータ３１１として保持しておく。ステータス取得部３０１がデバイスから取得するステータス項目及び取得の条件はポーリング対象テーブル３１２で管理されている。ステータス取得部３０１はポーリング対象テーブル３１２に記載されているステータス項目をデバイスから取得する。
【００２２】
図４は、ポーリング対象テーブル３１２の構成例を示す。ポーリング対象テーブル３１２には、プリンタ１０３から取得するステータス項目及びその条件がグループ単位（以下、ステータスグループ）で登録されている。ここでは、複数のステータスグループそれぞれに対し、ポーリングを中止するまでの取得期限とステータスを取得する取得間隔（以下ポーリング間隔と称す）が登録されている。例えば、図４において、ステータスグループとして「インク情報グループ」が登録されているが、ステータスを取得する期限として“時刻１３：１０”が、ポーリング間隔として“４秒”が登録されている。これは時刻が１３：１０になるまで４秒間隔で「インク情報グループ」のステータス項目をプリンタ１０３から取得する設定になっている。
【００２３】
ポーリング対象テーブル３１２に登録されるステータスグループは、更に図５のような関連ステータステーブル３１３に示されているステータス項目を包含している。本実施形態にて取得されるステータス項目は、プリンタ１０３などのデバイスに関するデバイスステータス情報と、デバイスが実行している印刷ジョブに関するジョブステータス情報とが含まれる。関連ステータステーブル３１３は、各ステータスグループに関連するステータス項目をグルーピングしたもので、例えば「インク情報グループ」では、「すべてのインクの稼働情報」、「すべてのインクの残量情報」がグルーピングされている。このとき、ポーリング対象テーブル３１２に「インク情報グループ」が登録されている場合は、ステータス取得部３０１が、すべてのインク種別について、その稼働状態とインクの残量情報のステータス項目をプリンタ１０３から取得する。ここでのすべてのインク種別とは、例えば、４種のインクを扱うプリンタにおいては、ブラックインク、シアンインク、マゼンタインク、イエローインクが相当する。また、インク種別に対する稼働状態としては、正常動作中、警告発生中、エラー状態などの状態が挙げられる。
【００２４】
ステータス取得部３０１は、デバイスから取得した実ステータスデータ３１１を解析し、解析結果に基づいて各モジュールにステータス変化の通知を行う。このステータス解析の通知は、ステータスに変化が起こっていない場合でも、行うようにしても構わない。
【００２５】
ステータスキャッシュデータ生成部３０２は、実ステータスデータ３１１やジョブ管理部３０６で管理されているジョブ管理テーブル３１５の情報からステータスキャッシュデータ３１４を生成する。ステータスキャッシュデータ３１４は、キャッシュに保持されるステータスに関するキャッシュデータであり、その役割については、処理フローと共に後述する。
【００２６】
ジョブ管理テーブル３１５は、プリントサーバ１０２でジョブ制御を管理するための情報を含み、図６のような形態で保持されている。ジョブ管理テーブル３１５は、印刷ジョブに割り当てられたジョブＩＤとプリントサーバ１０２やプリンタ１０３での印刷ジョブの管理状況とが対応付けて保持されている。ジョブＩＤは、各印刷ジョブを管理するためのＩＤであり、印刷ジョブ毎に個別の値をジョブ管理部３０６が付与している。この印刷ジョブＩＤは、クライアントＰＣ１０１からの印刷指示を受けて発行される。印刷ジョブの管理状況としては、「受付中」、「送信中」、「送信完了」、「印刷完了」、「終了」、「キャンセル中」、「キャンセル終了」などがある。
【００２７】
管理状況のステータスとして、「受付中」は、クライアントＰＣ１０１から印刷指示を受け付けてプリンタ１０３に送信をするまでの状態を示す。「送信中」は、プリンタ１０３に印刷ジョブの発行を開始しプリンタ１０３に印刷データを送信している状態を示す。「送信完了」は、印刷データの送信が完了しプリンタ１０３で印刷が完了するまでの状態を示す。「印刷完了」は、プリンタ１０３で印刷が完了してから出力トレイから印刷物を取り除かれるまでの状態を示す。「終了」は、すべての印刷物を取り除いた状態を示す。「キャンセル中」は、印刷ジョブが途中でキャンセルされた場合に、キャンセル処理を行っている状態を示し、「キャンセル終了」は、キャンセル処理が完了した状態を示す。さらに図６には明記していないが、各印刷ジョブに対しては、印刷ジョブ名や発行者、印刷設定や使用する給紙口、使用するメディアなどの印刷ジョブの各種情報と紐付けされている。
【００２８】
ポーリング対象テーブル管理部３０３は、ポーリング対象テーブル３１２の管理を行い、アクションテーブル３１６に従ってポーリング対象テーブル３１２のステータス項目の登録、削除を行う。アクションテーブル３１６についての詳細は図１０を用いて後述するが、イベントとイベント発生時のポーリング対象テーブル３１２の操作が定義されている。
【００２９】
ステータス取得要求受付部３０４は、クライアントＰＣ１０１からのステータス取得要求を受け付ける。そして、ステータス取得要求受付部３０４は、ステータスキャッシュデータ生成部３０２が作成するステータスキャッシュデータ３１４を参照し、該当するステータス項目の情報をクライアントＰＣ１０１に返却する。
【００３０】
リスナ処理部３０５は、クライアントＰＣ１０１が指定したステータス項目に対してステータスキャッシュデータ３１４の情報が変化した場合、クライアントＰＣ１０１へ通知を行う。また、クライアントＰＣ１０１からのリスナ登録解除が行われた場合、リスナ処理部３０５は、指定されたステータス項目のリスナ登録を解除し、それ以降ステータス変化が発生しても変化通知をクライアントＰＣ１０１に通知しない。
【００３１】
ジョブ管理部３０６は、クライアントＰＣ１０１から印刷指示や中断指示など印刷ジョブの制御指示を受け付け、印刷ジョブに対応する印刷データをプリンタ１０３が解釈できる形に変換してプリンタ１０３に転送する。また、プリントサーバ１０２とプリンタ１０３の印刷ジョブの進捗に合わせてジョブ管理テーブル３１５を更新し、各印刷ジョブの管理を行う。
【００３２】
（ステータス取得部３０１）
以下、プリントサーバ１０２でのステータスデータの更新方法について説明する。図７にステータス取得部３０１によるステータスデータの更新に係るフローチャートを示す。本処理は、プリントサーバ１０２が備えるＣＰＵ２０１がＨＤ２０５等に記憶されたプログラムを読み出すことで実行される。
【００３３】
ステータス取得部３０１は、ポーリング対象テーブル３１２を参照し、取得すべきステータス項目が存在するかを確認する（Ｓ７０１）。ポーリング対象のステータス項目がない場合（Ｓ７０１にてＮＯ）、Ｓ７１１へ進む。ポーリング対象のステータス項目がある場合は（Ｓ７０１にてＹＥＳ）、ステータス取得部３０１は、保持している実ステータスデータ３１１（前回取得したステータスデータ）を削除する（Ｓ７０２）。その後、ステータス取得部３０１は、デバイスからポーリング対象テーブル３１２に示されているステータス項目を取得する（Ｓ７０３）。このとき、ステータス取得部３０１は、ジョブ管理テーブル３１５を参照し、「受付中」の印刷ジョブについてはポーリング対象テーブル３１２に「ジョブステータスグループ」が登録されていても取得しない。これは「受付中」の印刷ジョブは、プリンタ１０３に転送される前であるため「受付中」の印刷ジョブの「ジョブステータスグループ」の情報がプリンタ１０３に存在しないためである。また「印刷中」、「終了」、「キャンセル終了」の印刷ジョブについてもこれらの印刷ジョブの「ジョブステータスグループ」がポーリング対象テーブル３１２に登録されていてもプリンタ１０３から取得しない。詳細は後述するがこれらの「ジョブステータスグループ」の情報はジョブ管理部３０６で既に保持されているためプリンタ１０３から取得しない。なお、これら「ジョブステータスグループ」をプリンタ１０３から取得する／取得しないを示す情報については、ジョブ管理テーブル３１５とは別のテーブルにて管理する方法であってもよい。
【００３４】
ステータス取得部３０１は、Ｓ７０３にて、プリンタ１０３からステータスが取得できたか否かを判定する（Ｓ７０４）。ステータスが取得できた場合は（Ｓ７０４にてＹＥＳ）、ステータス取得部３０１は、取得したステータスデータを実ステータスデータ３１１として登録する（Ｓ７０５）。その後、ステータス取得部３０１は、実ステータスデータ３１１の解析を行う（Ｓ７０６）。そして、ステータス取得部３０１は、解析の結果、ステータスが変化したかを判断する（Ｓ７０７）。ステータスの変化がない場合は（Ｓ７０７にてＮＯ）、Ｓ７１０へ進む。ステータスの変化がある場合は（Ｓ７０７にてＹＥＳ）、ステータス取得部３０１は、他のモジュールに対してステータスの変化を通知する（Ｓ７０８）。そして、処理は、Ｓ７１０へ進む。
【００３５】
一方、ステータスが取得できなかった場合は（Ｓ７０４にてＮＯ）、ステータス取得部３０１は、デバイスとオフライン状態になっていると判断し、実ステータスデータ３１１にオフライン状態を登録する（Ｓ７０９）。そして、処理は、Ｓ７１０へ進む。
【００３６】
次に、ステータス取得部３０１は、ポーリング対象テーブル３１２に示されているポーリング間隔を参照し、待機時間を取得する（Ｓ７１０）。
【００３７】
Ｓ７１１にて、ステータス取得部３０１は、他モジュールからのステータス更新通知があるか確認する。もしステータス更新通知があれば（Ｓ７１１にてＹＥＳ）、Ｓ７０１へ戻り、ステータス取得部３０１は、再度ステータス更新処理を行う。ステータス更新通知がない場合は（Ｓ７１１にてＮＯ）、Ｓ７１２へ進み、ステータス取得部３０１は、Ｓ７１０で取得した待機時間が経過しているか確認する。待機時間が経過していなければ（Ｓ７１２にてＮＯ）、Ｓ７１１へ戻り、ステータス取得部３０１は、ステータス更新通知を確認し、待機時間経過まで繰り返す。待機時間が経過している場合は（Ｓ７１２にてＹＥＳ）、Ｓ７０１へ戻る。
【００３８】
（ステータスキャッシュデータ生成部３０２）
次にステータスキャッシュデータ生成部３０２の処理を図８に示す。本処理は、プリントサーバ１０２が備えるＣＰＵ２０１がＨＤ２０５等に記憶されたプログラムを読み出すことで実行される。
【００３９】
まず、ステータスキャッシュデータ生成部３０２は、ジョブ管理テーブル３１５もしくは実ステータスデータ３１１が更新されているかを確認する（Ｓ８０１）。更新されているか否かについては、更新時の通知やデータの更新日時の確認などによって行うことができる。双方とも更新されていない場合は（Ｓ８０１にてＮＯ）、Ｓ８０１へ戻り、更新されるまで待機する。ジョブ管理テーブル３１５又は実ステータスデータ３１１のいずれか、もしくは双方が更新されていた場合は（Ｓ８０１にてＹＥＳ）、Ｓ８０２にて、ステータスキャッシュデータ生成部３０２は、前回作成したステータスキャッシュデータ３１４のコピーを生成する。この生成されたコピーをこれ以降、「コピーキャッシュ」と称する。このとき、前回作成したステータスキャッシュデータ３１４がない場合は、ステータスキャッシュデータ生成部３０２は、ステータス情報が何も登録されていない空のコピーキャッシュを生成する。
【００４０】
次に、ステータスキャッシュデータ生成部３０２は、実ステータスデータ３１１が更新されているか確認する（Ｓ８０３）。更新されているか否かについては、更新時の通知やデータの更新日時の確認などによって行うことができる。更新されていなければ（Ｓ８０３にてＮＯ）、Ｓ８０８へ進む。実ステータスデータ３１１が更新されている場合は（Ｓ８０３にてＹＥＳ）、Ｓ８０４にて、ステータスキャッシュデータ生成部３０２は、実ステータスデータ３１１を参照し、オフライン状態かどうかを判断する。オフライン状態の確認は、図７のＳ７０４でステータス取得部３０１が実ステータスデータ３１１に登録した情報を用いて判断する。オフライン状態である場合は（Ｓ８０４にてＹＥＳ）、ステータスキャッシュデータ生成部３０２は、コピーキャッシュの接続情報の項目に「オフライン」を格納する（Ｓ８０５）。その後、処理は、Ｓ８０８へ進む。
【００４１】
オンライン状態である場合は（Ｓ８０４にてＮＯ）、ステータスキャッシュデータ生成部３０２は、コピーキャッシュの接続情報の項目にて「オンライン」を格納する（Ｓ８０６）。そして、ステータスキャッシュデータ生成部３０２は、コピーキャッシュの情報を実ステータスデータ３１１の情報により更新する（Ｓ８０７）。このとき、実ステータスデータ３１１になくコピーキャッシュだけにあるステータス項目については削除してもよいが、そのまま残す構成にしても良い。その後、処理はＳ８０８へ進む。
【００４２】
次に、Ｓ８０８にて、ステータスキャッシュデータ生成部３０２は、ジョブ管理テーブル３１５の情報が更新されているか確認する。更新されているか否かについては、更新時の通知やデータの更新日時の確認などによって行うことができる。更新されていない場合は（Ｓ８０８にてＮＯ）、Ｓ８１４に進む。ジョブ管理テーブル３１５の情報が更新されている場合（Ｓ８０８にてＹＥＳ）、ステータスキャッシュデータ生成部３０２は、ジョブ管理テーブル３１５から「受付中」、「印刷完了」、「終了」、「キャンセル終了」のステータスの印刷ジョブを特定する（Ｓ８０９）。さらにＳ８１０にて、ステータスキャッシュデータ生成部３０２は、ポーリング対象テーブル３１２を参照して、「受付中」、「印刷完了」、「終了」、「キャンセル終了」の印刷ジョブに関する「ジョブステータスグループ」の項目があるか否かを判定する。上記ステータスの印刷ジョブがある場合は（Ｓ８１０にてＹＥＳ）、ステータスキャッシュデータ生成部３０２は、ジョブ管理部３０６が保持しているこれらの印刷ジョブの「ジョブステータスグループ」情報をコピーキャッシュに格納する（Ｓ８１１）。
【００４３】
なお、ジョブ管理部３０６では、「受付中」、「印刷完了」、「終了」、「キャンセル終了」のステータスである各印刷ジョブについては、「ジョブステータスグループ」情報を保持している。ジョブステータスグループ情報の詳細については、図１７を用いて後述する。
【００４４】
さらに、Ｓ８１２にてステータスキャッシュデータ生成部３０２は、ジョブ管理テーブル３１５に「受付中」、「印刷完了」、「終了」、「キャンセル終了」の印刷ジョブがあり、ポーリング対象テーブル３１２に「ジョブリスト」が登録されているかを判定する。上記ステータスの印刷ジョブがあり、「ジョブリスト」が登録されている場合（Ｓ８１２にてＹＥＳ）、ステータスキャッシュデータ生成部３０２は、コピーキャッシュの「ジョブリスト」に上記ステータスの印刷ジョブのジョブＩＤを追加する（Ｓ８１３）。
【００４５】
Ｓ８１４にて、ステータスキャッシュデータ生成部３０２は、Ｓ８０２で生成したコピーキャッシュを最新のステータスキャッシュデータ３１４として登録し、旧ステータスキャッシュデータを削除する。そしてＳ８０１に戻り、ステータスキャッシュデータ生成部３０２は、ジョブ管理テーブル３１５、実ステータスデータ３１１が更新されるまで待機する。
【００４６】
（ポーリング対象テーブル管理部３０３）
続いて図９を用いてポーリング対象テーブル管理部３０３のフローを説明する。本処理は、プリントサーバ１０２が備えるＣＰＵ２０１がＨＤ２０５等に記憶されたプログラムを読み出すことで実行される。
【００４７】
Ｓ９０１にて、ポーリング対象テーブル管理部３０３は、ジョブ管理テーブル３１５の更新、実ステータスデータ３１１の更新、もしくは、ステータス取得要求受付部３０４またはリスナ処理部３０５からの通知があるか否かを確認する。もしこれらの更新もしくは通知がない場合は（Ｓ９０１にてＮＯ）、Ｓ９０４へ進む。
【００４８】
テーブルの更新、もしくは、各処理部からの通知がある場合は（Ｓ９０１にてＹＥＳ）、ポーリング対象テーブル管理部３０３は、図１０のアクションテーブル３１６に定義された変化が発生しているか確認する（Ｓ９０２）。アクションテーブル３１６に記載された変化が発生していた場合は（Ｓ９０２にてＹＥＳ）、ポーリング対象テーブル管理部３０３は、アクションテーブル３１６に定義された情報に従ってポーリング対象テーブル３１２を更新する（Ｓ９０３）。
【００４９】
アクションテーブル３１６には、図１０に示すようにステータス変化イベントもしくは通知イベントとそれらが発生した場合にポーリング対象テーブル３１２の変更処理が定義されている。例えば図１０において、ジョブ管理テーブル３１５を参照して、「新たな印刷ジョブ発行を受け付けた」と判断したとする。この場合、「デバイスステータスグループを、対象印刷ジョブが終了状態になるまで、２０秒間隔で取得する」、「ジョブリストを、対象印刷ジョブが終了状態になるまで、１２秒間隔で取得する」という情報がポーリング対象テーブル３１２に登録される。
【００５０】
Ｓ９０４にて、ポーリング対象テーブル管理部３０３は、ポーリング対象テーブル３１２を参照し、登録されている各ステータス項目の期限になっていないか確認する。期限の判断は、ジョブ管理テーブル３１５やステータス取得部３０１からのステータス変化などによって判断する。もしステータス項目が設定された期限になっていれば（Ｓ９０４にてＹＥＳ）、ポーリング対象テーブル管理部３０３は、該当のステータス項目をポーリング対象テーブル３１２から削除する（Ｓ９０５）。例えば前述の「デバイスステータスグループ」と「ジョブリスト」は、「対象印刷ジョブが終了状態になる」とポーリング対象テーブル３１２から削除される。
【００５１】
Ｓ９０６にて、ポーリング対象テーブル管理部３０３は、ポーリング対象テーブル３１２に新たなステータス項目が追加されたかを確認する。Ｓ９０３の処理により新たなステータス項目が追加されていた場合は（Ｓ９０６にてＹＥＳ）、ポーリング対象テーブル管理部３０３は、ステータス取得部３０１に対して実ステータスを取得するように通知を行う（Ｓ９０７）。その後、Ｓ９０１へ戻り、ポーリング対象テーブル管理部３０３は、上記一連の動作を繰り返す。
【００５２】
（ステータス取得シーケンス）
続いて、クライアントＰＣ１０１からプリントサーバ１０２に対してステータス取得を行った場合のシーケンスについて説明する。ここでは「ブラックインクの残量」情報を要求した例の処理について図１１を用いて説明する。
【００５３】
クライアントＰＣ１０１がプリントサーバ１０２に対して「ブラックインクの残量」情報を要求すると、プリントサーバ１０２のステータス取得要求受付部３０４がその要求を受け付ける（Ｓ１１０１）。ステータス取得要求受付部３０４は、ステータスキャッシュデータ３１４を参照し、「ブラックインクの残量」情報があるかを確認する（Ｓ１１０２）。このとき、ステータスキャッシュデータ３１４に「ブラックインクの残量」の情報があればクライアントＰＣ１０１にステータスキャッシュデータ３１４の情報を返却する。ここではステータスキャッシュデータ３１４に「ブラックインクの残量」情報がない場合の処理について述べる。
【００５４】
ステータス取得要求受付部３０４は、ポーリング対象テーブル管理部３０３に対してステータス取得要求のイベントを通知する（Ｓ１１０３）。ポーリング対象テーブル管理部３０３は、図９で示したアクションテーブル３１６のステータス取得要求イベントを参照し、「ブラックインクの残量」情報の関連ステータスである「インク情報グループ」をポーリング対象テーブル３１２に登録する（Ｓ１１０４）。その後、ポーリング対象テーブル管理部３０３は、ステータス取得部３０１に対してステータス更新通知を行う（Ｓ１１０５）。
【００５５】
ステータス取得部３０１は、ステータス更新通知を受けて、プリンタ１０３からステータスを取得する。このとき、ステータス取得部３０１は、ポーリング対象テーブル３１２に登録されている「インク情報グループ」の情報、つまり「全インクの稼働情報」と「全インクの残量情報」をプリンタ１０３から取得する（Ｓ１１０６）。実ステータスデータ３１１が更新されると、ステータスキャッシュデータ生成部３０２は、「インク情報グループ」が含まれたステータスキャッシュデータ３１４を生成する（Ｓ１１０７）。
【００５６】
ステータス取得要求受付部３０４は、ステータス取得部３０１からのステータス変化（この場合「インク情報」を取得したため）を受ける（Ｓ１１０８）。これにより、ステータス取得要求受付部３０４は、ステータスキャッシュデータ３１４から「ブラックインクの残量」情報を取得する（Ｓ１１０９）。そして、ステータス取得要求受付部３０４は、クライアントＰＣ１０１へ取得した情報を通知する（Ｓ１１１０）。
【００５７】
一方、Ｓ１１０４では「インク情報グループ」の情報をポーリング間隔４秒で、１分経過後まで取得するようにポーリング対象テーブル３１２に登録されている。このため、Ｓ１１０４から４秒経過した時点であるＳ１１１１では、ステータス取得部３０１は、「インク情報グループ」の情報をプリンタ１０３から取得する。これに伴い、ステータスキャッシュデータ生成部３０２は、取得した情報をステータスキャッシュデータ３１４にも保存する（Ｓ１１１２）。
【００５８】
その後もステータス取得部３０１は「インク情報グループ」の情報をプリンタ１０３から所定の間隔で、取得し続ける。Ｓ１１０４から１分経過すると、ポーリング対象テーブル管理部３０３は「インク情報グループ」をポーリング対象テーブル３１２から削除する（Ｓ１１１３）。このため、その後のステータス取得部３０１によるステータス取得処置では「インク情報グループ」はプリンタ１０３から取得されない（Ｓ１１１４）。そして、「インク情報グループ」は、ステータスキャッシュデータ生成部３０２により、ステータスキャッシュデータ３１４からも削除される（Ｓ１１１５）。
【００５９】
（リスナ登録・解除シーケンス）
次に図１２Ａ、１２Ｂを用いてリスナ登録・解除について説明する。図１２Ａ、１２ＢではクライアントＰＣ１０１が「デバイス稼働情報」をリスナ登録・解除した例を示している。図１２Ａは、リスナ登録に関するシーケンスを示し、図１２Ｂは、リスナ解除に関するシーケンスを示している。
【００６０】
クライアントＰＣ１０１が「デバイス稼働情報」のリスナ登録をプリントサーバ１０２に通知すると、プリントサーバ１０２のリスナ処理部３０５が受け付ける（Ｓ１２０１）。リスナ処理部３０５は、「デバイス稼働情報」がリスナ登録されたことを保持する（Ｓ１２０２）。そして、リスナ処理部３０５は、ポーリング対象テーブル管理部３０３にリスナ登録のイベントを通知する（Ｓ１２０３）。また、リスナ処理部３０５は、クライアントＰＣ１０１に対してリスナ登録の完了を通知する（Ｓ１２０４）。
【００６１】
ポーリング対象テーブル管理部３０３は、アクションテーブル３１６のリスナ登録イベントを参照し、関連ステータスグループである「デバイスステータスグループ」をポーリング対象テーブル３１２に登録する（Ｓ１２０５）。ここでポーリング対象テーブル３１２に登録される項目は、「デバイス稼働情報」と「デバイスエラー情報」である。その後、ポーリング対象テーブル管理部３０３は、ステータス取得部３０１に対してステータス更新通知を行う（Ｓ１２０６）。
【００６２】
ステータス取得部３０１は、ポーリング対象テーブル管理部３０３からのステータス更新通知を受けて、プリンタ１０３からステータスを取得する。このとき、ステータス取得部３０１は、ポーリング対象テーブル３１２に登録されている「デバイスステータスグループ」の情報を取得する（Ｓ１２０７）。実ステータスデータ３１１が更新されると、ステータスキャッシュデータ生成部３０２は、「デバイスステータスグループ」の情報が含まれたステータスキャッシュデータ３１４を生成する（Ｓ１２０８）。
【００６３】
ステータス取得要求受付部３０４は、ステータス取得部３０１からのステータス変化（この場合「デバイスステータスグループ」情報を取得したため）を受ける（Ｓ１２０９）。そして、リスナ処理部３０５は、ステータスキャッシュデータ３１４から「デバイス稼働情報」情報を取得（Ｓ１２１０）する。このとき、取得した情報が変化していた場合は、リスナ処理部３０５は、クライアントＰＣ１０１へその情報を通知する（Ｓ１２１１）。
【００６４】
一方、Ｓ１２０５で、「デバイスステータスグループ」の情報を４秒間隔で取得するようにポーリング対象テーブル３１２に登録されている。そのため、ポーリング対象テーブル管理部３０３は、Ｓ１２０５の処理以降も４秒間隔で「デバイスステータスグループ」の情報をプリンタ１０３から取得する（Ｓ１２１２）。そして、ステータスキャッシュデータ生成部３０２は、取得された情報を、ステータスキャッシュデータ３１４に反映する（Ｓ１２１３）。このとき、ステータスキャッシュデータ３１４の「デバイス稼動情報」が変化するとその都度、リスナ処理部３０５からクライアントＰＣ１０１に通知される。
【００６５】
クライアントＰＣ１０１がリスナ解除をプリントサーバ１０２に通知すると、プリントサーバ１０２のリスナ処理部３０５が受け付ける（Ｓ１２２１）。リスナ処理部３０５は、Ｓ１２０２で保持した「デバイス稼働情報」の登録情報を破棄する（Ｓ１２２２）。そして、リスナ処理部３０５は、ポーリング対象テーブル管理部３０３にリスナ解除のイベントを通知する（Ｓ１２２３）。また、リスナ処理部３０５は、クライアントＰＣ１０１に対してリスナ解除の完了を通知する（Ｓ１２２４）。
【００６６】
ポーリング対象テーブル管理部３０３は、アクションテーブル３１６のリスナ解除イベントを参照し、対象項目である「デバイスステータスグループ」をポーリング対象テーブル３１２から削除する（Ｓ１２２５）。その後において、ステータス取得部３０１は、次のステータス取得タイミングで「デバイスステータスグループ」の情報は取得しない（Ｓ１２２６）。実ステータスデータ３１１が更新されると、ステータスキャッシュデータ生成部３０２は、「デバイスステータスグループ」の情報を含まないステータスキャッシュデータ３１４を生成する（Ｓ１２２７）
（印刷ジョブ処理シーケンス１）
次に図１３Ａ〜１３Ｃを用いてクライアントＰＣ１０１から印刷指示を受けた際の処理を説明する。
【００６７】
クライアントＰＣ１０１がプリントサーバ１０２に対して印刷指示を行うと、プリントサーバ１０２のジョブ管理部３０６が受け付ける（Ｓ１３０１）。ジョブ管理部３０６は、印刷指示を受け付けるとジョブＩＤを発行し、ジョブ管理テーブル３１５に登録する（Ｓ１３０２）。ここでは、印刷ジョブのジョブＩＤを“０１７”とし、以下、対応する印刷ジョブを“印刷ジョブ０１７”と記載する。このとき、印刷ジョブの管理情報は、「受付中」にて登録される。このとき、ジョブ管理部３０６は、印刷指示で受けた設定情報についても、印刷ジョブ０１７に対応付けて登録する。さらに、ジョブ管理部３０６は、図１７（ａ）に示すような「受付中ジョブステータス」を生成する（Ｓ１３０３）。この「受付中ジョブステータス」において、「ジョブ進捗情報」に「Ｓｐｏｏｌｉｎｇ」、「ジョブエラー情報」に「Ｎｏｎｅ（エラーなし）」、「出力ページ数」に「０」が設定される。そして、ジョブ管理部３０６は、クライアントＰＣ１０１にジョブＩＤを通知し、印刷指示を受け付けたことを通知する（Ｓ１３０４）。
【００６８】
一方、ポーリング対象テーブル管理部３０３は、ジョブ管理テーブル３１５に新たに受付中の印刷ジョブ０１７が登録されたことにより、アクションテーブル３１６を参照する。そして、ポーリング対象テーブル管理部３０３は、「デバイスステータスグループ」と「ジョブリスト」をポーリング対象テーブル３１２に登録する（Ｓ１３０５）。ここでの図５に示すように「デバイスステータスグループ」の項目として、「デバイス稼働情報）と「デバイスエラー情報」が対応する。そして、ポーリング対象テーブル管理部３０３は、ステータス取得部３０１にステータス更新通知を行う（Ｓ１３０６）。
【００６９】
ステータス取得部３０１は、受信したステータス更新通知に応じて、「デバイスステータスグループ」と「ジョブリスト」を新たにプリンタ１０３から取得する（Ｓ１３０７）。ここでは、「デバイス稼働情報（ＤｅｖｉｃｅＳｔａｔｕｓ）」に対し、「Ｒｕｎｎｉｎｇ」の情報が取得される。同様に、「デバイスエラー情報（ＤｅｖｉｃｅＥｒｒｏｒ）」に対し「Ｎｏｎｅ」、「ジョブリスト（ＪｏｂＬｉｓｔ）」としてジョブＩＤ“０１４”、“０１５”、“０１６”の情報が取得される。
【００７０】
ステータス取得部３０１がステータスを取得することで実ステータスデータ３１１が更新されると、ステータスキャッシュデータ生成部３０２は、ステータスキャッシュデータ３１４を作成する（Ｓ１３０８）。図８のＳ８０８で説明した通り、Ｓ１３０７で取得された「ジョブリスト」情報にジョブＩＤ“０１７”の情報が追加される。
【００７１】
Ｓ１３０５においてポーリング間隔が１２秒で登録されているため、Ｓ１３０５から１２秒間隔ごとに、Ｓ１３０７、Ｓ１３０８と同様に実ステータスデータ３１１とステータスキャッシュデータ３１４が更新される（Ｓ１３０９、Ｓ１３１０）。
【００７２】
なお、図１３では記載していないが、Ｓ１３０９、Ｓ１３１０の間にクライアントＰＣ１０１から印刷ジョブ０１７のジョブステータス情報が取得された場合には、以下のように処理する。つまり、図８で説明したように、ステータスキャッシュデータ生成部３０２は、Ｓ１３０３で生成した「受付中ジョブステータス」をステータスキャッシュデータ３１４に付加する。そして、ステータスキャッシュデータ生成部３０２は、付加した情報をクライアントＰＣ１０１に通知する。
【００７３】
クライアントＰＣ１０１は、Ｓ１３０４でプリントサーバ１０２からジョブＩＤを受け取ると、印刷データをプリントサーバ１０２に送信する（Ｓ１３１１）。そして、その応答として、ジョブ管理部３０６は、印刷データを受信した旨をクライアントＰＣ１０１に通知する（Ｓ１３１２）。更に、ジョブ管理部３０６は、プリンタ１０３に対して印刷ジョブの発行を通知する（Ｓ１３１３）。
【００７４】
プリンタ１０３は、プリントサーバ１０２から印刷ジョブの受付を行うと、プリントサーバ１０２のジョブ管理部３０６に印刷ジョブ受付完了通知を行う（Ｓ１３１４）。プリンタ１０３はジョブリスト情報に受け付けた印刷ジョブを追加するため、ステータス取得部３０１は印刷ジョブ受付後にステータス取得を行い、ジョブリストに印刷ジョブ０１７を含んだ情報を取得する（Ｓ１３１５）。ステータス取得部３０１は、ステータス変化通知をジョブ管理部３０６に行う（Ｓ１３１６）。
【００７５】
ジョブ管理部３０６は、ステータス取得部３０１からステータス変化通知を受けてジョブ管理テーブル３１５のジョブＩＤ“０１７”の情報を「送信中」に変更する（Ｓ１３１７）。さらに、ジョブ管理部３０６は、Ｓ１３０３で作成した「受付中ジョブステータス」を破棄する（Ｓ１３１８）。
【００７６】
ポーリング対象テーブル管理部３０３は、Ｓ１３１７のジョブ管理テーブル３１５の変更を受けて、プリンタ１０３で印刷ジョブを受け付けたと判断する。これにより、ポーリング対象テーブル管理部３０３は、アクションテーブル３１６を参照し、ポーリング対象テーブル３１２に印刷ジョブ０１７の「ジョブステータスグループ」と「給紙口情報」、「出力トレイ情報」を登録する（Ｓ１３１９）。さらに、ポーリング対象テーブル管理部３０３は、ステータス取得部３０１にステータス更新通知を行う（Ｓ１３２０）。これにより、ステータス取得部３０１は、ポーリング対象テーブル３１２に登録されたステータス情報をプリンタ１０３から取得する（Ｓ１３２１）。さらにステータスキャッシュデータ生成部３０２は、ステータスキャッシュデータ３１４にもこれらの情報を格納する（Ｓ１３２２）。
【００７７】
その後、ジョブ管理部３０６は、Ｓ１３１１で受け取った印刷データをプリンタ１０３が解釈できる形に変換する（Ｓ１３２３）そして、ジョブ管理部３０６は、プリンタ１０３へ変換した印刷データを送信する（Ｓ１３２４）。印刷データの送信が完了すると、ジョブ管理部３０６は、ジョブ管理テーブル３１５において印刷ジョブ０１７のステータスを「送信完了」に更新する（Ｓ１３２５）。
【００７８】
プリンタ１０３は、Ｓ１３２４で印刷データを受信すると、受信した印刷データに従って印刷処理を開始する（Ｓ１３２６）。
【００７９】
一方、ステータス取得部３０１は、Ｓ１３１９のタイミングで４秒毎にステータス取得するようポーリング対象テーブル３１２が変更されているので、Ｓ１３１９から４秒間隔でステータスを取得する（Ｓ１３２７）。それを受けて、ステータスキャッシュデータ生成部３０２は、ステータスキャッシュデータ３１４が更新される（Ｓ１３２８）。
【００８０】
（印刷ジョブ処理シーケンス２）
次に図１４Ａ〜１４Ｃを用いて図１３Ａ〜１３Ｃ以降の印刷ジョブのシーケンスについて説明する。さらにここではクライアントＰＣ１０１から印刷ジョブ０１７の「ジョブ進捗情報」がリスナ登録され、印刷ジョブの「ジョブ進捗情報」が変化する度にクライアントＰＣ１０１に通知する例を示している。
【００８１】
Ｓ１４０１にて、クライアントＰＣ１０１は、リスナ登録指示を行うと、プリントサーバ１０２のリスナ処理部３０５が指示を受け付ける。そして、リスナ処理部３０５は、リスナ登録イベントをポーリング対象テーブル管理部３０３に通知する（Ｓ１４０２）。リスナ処理部３０５は、クライアントＰＣ１０１にリスナ登録完了の通知を行う（Ｓ１４０３）。その後、リスナ処理部３０５は、ステータスキャッシュデータ３１４にある印刷ジョブ０１７の「ジョブ進捗情報」が変化することを監視する。
【００８２】
Ｓ１４０２でリスナ登録イベントを受けたポーリング対象テーブル管理部３０３は、リスナ登録イベントとして、印刷ジョブ０１７の「ジョブステータスグループ」の情報をポーリング対象テーブル３１２に登録する（Ｓ１４０４）。ただし、印刷ジョブ０１７の「ジョブステータスグループ」は、プリンタ１０３で印刷ジョブを受け付けたタイミング（図１３ＢのＳ１３１９）にて登録されているので、期限の情報（「リスナ登録解除まで」）が追加で登録される。
【００８３】
プリンタ１０３にて印刷ジョブ０１７の印刷が完了すると（Ｓ１４０５）、ステータス取得部３０１は、その情報を取得する（Ｓ１４０６）。そして、ステータスキャッシュデータ生成部３０２は、ステータスキャッシュデータ３１４を更新する（Ｓ１４０７）。ステータス取得部３０１は、ジョブ管理部３０６およびリスナ処理部３０５にステータス変化通知を行う（Ｓ１４０８）。
【００８４】
ステータス変化通知を受けたジョブ管理部３０６は、ジョブ管理テーブル３１５の印刷ジョブ０１７の管理情報を「印刷完了」に変更する（Ｓ１４０９）。さらに、ジョブ管理部３０６は、ステータスキャッシュデータ３１４の情報を参照し、図１７（ｂ）のような印刷ジョブ０１７の「印刷完了ジョブステータス」を生成し、保持する（Ｓ１４１０）。
【００８５】
Ｓ１４０９でジョブ管理テーブル３１５が更新されると、ポーリング対象テーブル管理部３０３は、プリンタ１０３での印刷処理が完了したと判断する。これに伴い、ポーリング対象テーブル管理部３０３は、アクションテーブル３１６を参照する。そして、ポーリング対象テーブル管理部３０３は、ポーリング対象テーブル３１２から「ジョブリスト」と印刷ジョブ０１７の「ジョブステータスグループ」、使用する給紙口１の「給紙口情報グループ」を削除する（Ｓ１４１１）。ただし、印刷ジョブ０１７の「ジョブステータスグループ」は、Ｓ１４０４でリスナ登録されている。そのため、期限の情報だけ更新され、「ジョブステータスグループ」はポーリング対象テーブル３１２から削除されない。
【００８６】
Ｓ１４０８でステータス変化通知を受け取ったリスナ処理部３０５は、ステータスキャッシュデータ３１４の「ジョブ進捗情報」を参照し、印刷ジョブ０１７の「ジョブ進捗情報」が印刷完了になったことを検知する（Ｓ１４１２）。その後、リスナ処理部３０５は、クライアントＰＣ１０１にその情報を通知する（Ｓ１４１３）。
【００８７】
ステータス取得部３０１はＳ１４１４でステータス取得を行う。このとき、印刷ジョブ０１７は完了しているため、図７で説明した通りジョブ管理テーブル３１５の情報からポーリング対象テーブル３１２に登録されている印刷ジョブ０１７の「ジョブステータスグループ」の情報は取得しない。ステータスキャッシュデータ生成部３０２は、Ｓ１４１４で取得した実ステータスデータ３１１からステータスキャッシュデータ３１４を生成する際、Ｓ１４１０でジョブ管理部３０６が保持している「印刷完了ジョブステータス」をステータスキャッシュデータ３１４に付加する（Ｓ１４１５）。
【００８８】
その後、プリンタ１０３において、オペレータにより印刷ジョブ０１７の印刷物が全て取り除かれる（Ｓ１４１６）。これにより、Ｓ１４１７にて、実ステータスデータ３１１の出力トレイ５の「積載量情報」が“０”になる。なお、ここで印刷物が取り除かれたか否かは、例えば、プリンタ１０３に備えられたセンサなどにより検出する。これを受けて、ステータスキャッシュデータ生成部３０２により、ステータスキャッシュデータ３１４も更新される（Ｓ１４１８）。ステータス取得部３０１は、ジョブ管理部３０６とリスナ処理部３０５にステータス変化の通知を行う（Ｓ１４１９）
ジョブ管理部３０６は、ステータス取得部３０１からのステータス変化通知を受けてジョブ管理テーブル３１５の印刷ジョブ０１７の管理情報を「終了」状態に更新する（Ｓ１４２０）。さらに、ジョブ管理部３０６は、Ｓ１４１０で生成した「印刷完了ジョブステータス」を削除する。そして、ジョブ管理部３０６は、ステータスキャッシュデータ３１４の情報を参照して、図１７（ｃ）のような「終了ジョブステータス」を作成し、保持する（Ｓ１４２１）。
【００８９】
ポーリング対象テーブル管理部３０３は、ジョブ管理テーブル３１５の変更を受けて印刷ジョブ０１７が終了したと判断する。これに伴い、ポーリング対象テーブル管理部３０３は、「デバイスステータスグループ」と「出力トレイ情報グループ」をポーリング対象テーブル３１２から削除する（Ｓ１４２２）。その結果、ポーリング対象テーブル３１２にはＳ１４０４のリスナ登録イベントで登録した印刷ジョブ０１７の「ジョブステータスグループ」情報のみとなる。
【００９０】
Ｓ１４１９でステータス変化通知を受け取ったリスナ処理部３０５は、ステータスキャッシュデータ３１４の「ジョブ進捗情報」を参照し、印刷ジョブ０１７の「ジョブ進捗情報」が終了になったことを検知する（Ｓ１４２３）。その後、リスナ処理部３０５は、クライアントＰＣ１０１にその情報を通知する（Ｓ１４２４）。
【００９１】
その後、ステータス取得部３０１は、印刷ジョブ０１７は完了しているため、図７で説明した通りポーリング対象テーブル３１２に登録されている印刷ジョブ０１７の「ジョブステータスグループ」の情報は取得しない（Ｓ１４２５）。ステータスキャッシュデータ生成部３０２は、ステータスキャッシュデータ３１４を生成する際、Ｓ１４２１でジョブ管理部３０６が保持した「終了ジョブステータス」をステータスキャッシュデータ３１４に格納する（Ｓ１４２６）。
【００９２】
（印刷ジョブ処理シーケンス３）
次に図１５Ａ、１５Ｂを用いて図１３Ａ〜１３Ｃ以降の印刷ジョブで紙なしエラーが発生した場合のシーケンスについて説明する。
【００９３】
プリンタ１０３の給紙口１（不図示）で紙なしエラーが発生すると（Ｓ１５０１）、ステータス取得部３０１はその情報を取得する（Ｓ１５０２）。さらに、ステータスキャッシュデータ生成部３０２は、ステータスキャッシュデータ３１４にその情報を反映する（Ｓ１５０３）。
【００９４】
ステータス取得部３０１は、紙なしエラーが発生したことをポーリング対象テーブル管理部３０３に通知する（Ｓ１５０４）。そして、ポーリング対象テーブル管理部３０３は、紙なしエラーが発生したイベントとしてアクションテーブル３１６を参照し、全給紙口の「給紙口情報グループ」をポーリング対象テーブル３１２に登録する（Ｓ１５０５）。その後、ポーリング対象テーブル管理部３０３は、ステータス取得部３０１に対してステータス更新通知を行う（Ｓ１５０６）。
【００９５】
ステータス取得部３０１は、ポーリング対象テーブル３１２に定義されている全給紙口の「給紙口情報グループ」の情報を取得する（Ｓ１５０７）。ステータス取得部３０１によるステータスの取得により実ステータスデータ３１１が更新されると、ステータスキャッシュデータ生成部３０２は、全給紙口の「給紙口情報グループ」の情報をステータスキャッシュデータ３１４に格納する（Ｓ１５０８）。
【００９６】
オペレータがプリンタ１０３における紙なしエラーを解除すると（Ｓ１５０９）、ステータス取得部３０１は、その情報を取得する（Ｓ１５１０）。これに伴い、ステータスキャッシュデータ生成部３０２は、ステータスキャッシュデータ３１４にも紙なしエラーが解除された情報を格納する（Ｓ１５１１）。
【００９７】
紙なしエラー解除を検知したステータス取得部３０１は、ポーリング対象テーブル管理部３０３にステータス変化通知を行う（Ｓ１５１２）。そして、ポーリング対象テーブル管理部３０３は、Ｓ１５０５で登録した全給紙口の「給紙口情報グループ」をポーリング対象テーブル３１２から削除する（Ｓ１５１３）。ただし、給紙口１の「給紙口情報グループ」は図１３のＳ１３１９で登録された情報として印刷ジョブ０１７が印刷終了するまで残るためポーリング対象テーブル３１２からは削除されない。
【００９８】
その後、ステータス取得部３０１は、ポーリング対象テーブル３１２に登録された情報のみをプリンタ１０３から取得する（Ｓ１５１４）。そして、ステータス取得部３０１によるステータスの取得に伴い、ステータスキャッシュデータ生成部３０２は、ステータスキャッシュデータ３１４にその情報を反映する（Ｓ１５１５）。
【００９９】
（印刷ジョブ処理シーケンス４）
次に図１６Ａ、１６Ｂを用いて図１３Ａ〜１３Ｃ以降の印刷ジョブ０１７でクライアントＰＣ１０１から印刷ジョブ０１７をキャンセルした場合のシーケンスについて説明する。
【０１００】
Ｓ１６０１でクライアントＰＣ１０１から印刷ジョブ０１７の印刷キャンセル指示を行うと、プリントサーバ１０２のジョブ管理部３０６が受け付ける。これに伴い、ジョブ管理部３０６は、プリンタ１０３に対して印刷キャンセル指示を通知する（Ｓ１６０２）。そして、ジョブ管理部３０６は、クライアントＰＣ１０１に対して印刷キャンセルを受け付けたことを通知する（Ｓ１６０３）。
【０１０１】
プリンタ１０３は、ジョブ管理部３０６からの印刷キャンセル指示を受けると印刷ジョブ０１７のキャンセル処理を開始する（Ｓ１６０４）。
【０１０２】
ステータス取得部３０１は、プリンタ１０３からステータスを取得する際に、印刷ジョブ０１７の「ジョブ進捗情報」から印刷ジョブ０１７がキャンセル処理中である情報を取得する（Ｓ１６０５）。これに伴い、ステータスキャッシュデータ生成部３０２は、ステータスキャッシュデータ３１４にもその情報を格納する（Ｓ１６０６）。
【０１０３】
ステータス取得部３０１は、印刷ジョブ０１７がキャンセル処理中になったことをジョブ管理部３０６に通知する（Ｓ１６０７）。ステータス変化通知を受けたジョブ管理部３０６は、ジョブ管理テーブル３１５の印刷ジョブ０１７の管理情報を「キャンセル中」に変更する（Ｓ１６０８）。
【０１０４】
ポーリング対象テーブル管理部３０３は、ジョブ管理テーブル３１５の情報が変化したことを受けて、印刷ジョブ０１７がキャンセル中になったと判断する。これにより、ポーリング対象テーブル管理部３０３は、「ジョブリスト」と使用する給紙口１の「給紙口情報グループ」、使用する出力トレイ０５の「出力トレイ情報グループ」をポーリング対象テーブル３１２から削除する（Ｓ１６０９）。
【０１０５】
その後、ステータス取得部３０１は、Ｓ１６０９で更新されたポーリング対象テーブル３１２に登録してある「デバイスステータスグループ」と印刷ジョブ０１７の「ジョブステータスグループ」の情報をプリンタ１０３から取得する（Ｓ１６１０）。これに伴い、ステータスキャッシュデータ生成部３０２は、ステータスキャッシュデータ３１４にもその情報を反映する（Ｓ１６１１）。
【０１０６】
プリンタ１０３での印刷ジョブ０１７のキャンセル処理が完了すると（Ｓ１６１２）、ステータス取得部３０１はその情報を取得する（Ｓ１６１３）。これに伴い、ステータスキャッシュデータ生成部３０２は、ステータスキャッシュデータ３１４にもその情報を反映する（Ｓ１６１４）。
【０１０７】
ステータス取得部３０１は、キャンセル処理が完了したためジョブ管理部３０６にステータス変化通知を行う（Ｓ１６１５）。ステータス変化通知を受けたジョブ管理部３０６は、ジョブ管理テーブル３１５にある印刷ジョブ０１７の管理情報を「キャンセル終了」に変更する（Ｓ１６１６）。さらに、ジョブ管理部３０６は、ステータスキャッシュデータ３１４を参照して、図１７（ｄ）のような「キャンセル終了ジョブステータス」を生成し、保持する（Ｓ１６１７）。
【０１０８】
ポーリング対象テーブル管理部３０３は、ジョブ管理テーブル３１５の変化を検知し、印刷ジョブ０１７がキャンセル終了したと判断する。これにより、ポーリング対象テーブル管理部３０３は、「デバイスステータスグループ」と印刷ジョブ０１７の「ジョブステータスグループ」をポーリング対象テーブル３１２から削除する（Ｓ１６１８）。
【０１０９】
なお、これ以降にクライアントＰＣ１０１から印刷ジョブ０１７のジョブステータス情報が取得された場合、以下のように処理される。つまり、図８で説明したようにステータスキャッシュデータ生成部３０２は、Ｓ１６１６で生成した「キャンセル終了ジョブステータス」をステータスキャッシュデータ３１４に付加する。そして、付加された情報がクライアントＰＣ１０１に通知される。
【０１１０】
本実施形態においては、画像処理装置であるプリントサーバが、印刷装置であるプリンタのステータスを、効率よく管理する例を示した。しかし、この構成に限定するものではなく、例えば、プリントサーバとして示した機能を印刷装置の内部に配置することも可能である。その場合、外部からのステータスの取得に限らず、印刷装置内部における、ステータス取得が効率よく管理できることになる。
【０１１１】
以上述べてきたように、ポーリング対象テーブル３１２を使用することにより、必要な情報だけを取得し、ステータスキャッシュデータ３１４の肥大化を防ぐことができる。
【０１１２】
さらに、関連ステータステーブル３１３を使用して関連するステータス項目の情報を同時に取得するため、関連するステータス項目の取得要求が一括して行われることにより、印刷装置であるプリンタ１０３へのアクセス回数を減らすことができる。
【０１１３】
さらに、ポーリング対象テーブル３１２に取得するステータス項目毎に取得の条件（ポーリング間隔、取得する期限など）を持つ。これにより、ステータスキャッシュデータ３１４の肥大化、プリンタ１０３への無駄なアクセスを防止することができる。なお、ポーリング対象テーブル３１２にて指定される条件は、図４に示したものに限定するものではなく、他の条件を追加しても構わない。
【０１１４】
さらに、ジョブステータス、デバイスステータスを関連ステータステーブル３１３、ポーリング対象テーブル３１２で一括して管理するためステータス管理の簡素化を実現することができる。
【０１１５】
さらに、ジョブ管理テーブル３１５を使用して印刷ジョブの進捗を管理し、プリンタ１０３へ未送信のジョブについてのジョブステータスを生成する。これに基づき、未送信のジョブに関するステータスを取得するためのアクセスを停止することができる。また、未送信のジョブやジョブの完了後なども含め、ジョブステータスが変化しない印刷ジョブの情報を不変ステータスとして定義する。これにより、不変ステータスについては、プリンタ１０３から取得しないように制御することで、プリンタ１０３への無駄なアクセスを停止することができる。この場合、最初の１回のみステータスを取得し、以降のステータス取得を中止する。そして、最初に取得した値を継続的に保持するようにしても構わない。また、不変ステータスは、予め対象となるステータス項目を定義しておいてもよいし、取得した直近のステータス項目を対象としても構わない。
【０１１６】
さらにアクションテーブル３１６にステータス変化などのイベントに対するポーリング対象テーブル３１２の制御を保持することによって、取得するステータス項目の一元的な管理が可能となる。
【０１１７】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2013089192.tif 000003
【図２】
2013089192.tif 000004
【図３】
2013089192.tif 000005
【図４】
2013089192.tif 000006
【図５】
2013089192.tif 000007
【図６】
2013089192.tif 000008
【図７】
2013089192.tif 000009
【図８】
2013089192.tif 000010
【図９】
2013089192.tif 000011
【図１０】
2013089192.tif 000012
【図１１】
2013089192.tif 000013
【図１２Ａ】
2013089192.tif 000014
【図１２Ｂ】
2013089192.tif 000015
【図１３Ａ】
2013089192.tif 000016
【図１３Ｂ】
2013089192.tif 000017
【図１３Ｃ】
2013089192.tif 000018
【図１４Ａ】
2013089192.tif 000019
【図１４Ｂ】
2013089192.tif 000020
【図１４Ｃ】
2013089192.tif 000021
【図１５Ａ】
2013089192.tif 000022
【図１５Ｂ】
2013089192.tif 000023
【図１６Ａ】
2013089192.tif 000024
【図１６Ｂ】
2013089192.tif 000025
【図１７】
2013089192.tif 000026