(57)【要約】【課題】  印刷ジョブを複数の画像形成装置に振り分けるデータ処理装置、データ処理システム、および該データ処理装置を実現するためのプログラムを提供すること。【解決手段】  本データ処理装置１１０は、印刷ジョブの要求に応答して、出力先を決定し、要求された印刷ジョブを、決定された出力先となる画像形成装置に振り分ける振り分け手段２３０と、振り分けられる印刷ジョブの出力データに対し、該印刷ジョブを識別するジョブ識別値を付加する付加手段２６０と、画像形成装置から、ジョブ識別値で対応する印刷ジョブの状態情報を問い合わせ、該印刷ジョブの要求元に対し、得られた状態情報を通知する監視手段２５０とを含む。【選択図】  図３
2013196469.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して複数の画像形成装置に接続されるデータ処理装置であって、
印刷ジョブの要求に応答して、出力先を決定し、要求された印刷ジョブを、決定された出力先となる画像形成装置に振り分ける振り分け手段と、
振り分けられる印刷ジョブの出力データに対し、該印刷ジョブを識別するジョブ識別値を付加する付加手段と、
前記画像形成装置から、ジョブ識別値で対応する印刷ジョブの状態情報を問い合わせ、該印刷ジョブの要求元に対し、得られた状態情報を通知する監視手段と
を含む、データ処理装置。
【請求項２】
前記付加手段は、前記振り分け手段を経由してリモートドライバにより出力された出力データに対し、該出力データ中にジョブ識別値が含まれない場合に追跡用のジョブ識別値を付して、前記出力先の画像形成装置へ向けて、ジョブ識別値が付された出力データを送信するポートモニタ手段である、請求項１に記載のデータ処理装置。
【請求項３】
前記監視手段は、ジョブ識別値が付されていない印刷ジョブについて、出力先の画像形成装置の状態情報を問い合わせて、該印刷ジョブの状態情報を判定する、請求項１または２に記載のデータ処理装置。
【請求項４】
印刷ジョブのジョブ識別値と、該印刷ジョブの要求元識別値とを対応付けて登録するジョブ管理テーブルをさらに含み、
前記監視手段は、前記ジョブ管理テーブルに登録された印刷ジョブについて、定期的にまたは不定期に状態情報の問い合わせを行い、完了が検出されたレコードを削除する、請求項１〜３のいずれか１項に記載のデータ処理装置。
【請求項５】
複数の画像形成装置と、該画像形成装置に接続される１以上のサーバ装置とを含むデータ処理システムであって、
印刷ジョブの要求に応答して、出力先を決定し、要求された印刷ジョブを、決定された出力先となる画像形成装置に振り分ける振り分け手段と、
振り分けられた印刷ジョブの出力データに対し、該印刷ジョブを識別するジョブ識別値を付加する付加手段と、
前記画像形成装置から、ジョブ識別値で対応する印刷ジョブの状態情報を問い合わせ、該印刷ジョブの要求元に対し、得られた状態情報を通知する監視手段と
を含む、データ処理システム。
【請求項６】
ネットワークを介して複数の画像形成装置に接続されるデータ処理装置としてコンピュータを機能させるためのプログラムであって、前記プログラムは、コンピュータを、
印刷ジョブの要求に応答して、出力先を決定し、要求された印刷ジョブを、決定された出力先となる画像形成装置に振り分ける振り分け手段、
振り分けられた印刷ジョブの出力データに対し、該印刷ジョブを識別するジョブ識別値を付加する付加手段、および
前記画像形成装置から、ジョブ識別値で対応する印刷ジョブの状態情報を問い合わせ、該印刷ジョブの要求元に対し、得られた状態情報を通知する監視手段
として機能させるためのものである、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷出力のためのデータ処理技術に関する。本発明は、より詳細には、印刷ジョブを複数の画像形成装置に振り分けるデータ処理装置、データ処理システム、および該データ処理装置を実現するためのプログラムに関する。
【背景技術】
【０００２】
近年のオフィス環境においては、ＭＦＰ(Multi-Function Peripheral)、レーザプリンタ、プリントサーバなどがネットワークに接続され、複数の画像形成装置が利用可能とされていることが多い。このような複数のロケーションから複数の画像形成装置が利用可能な環境において、印刷が実行されたコンピュータ固有の情報等に従って出力先を決定し、決定された出力先の画像形成装置で印刷を実行する、振り分け印刷システムが知られている。
【０００３】
例えば、特開２０１０−２７１９８８号公報（特許文献１）は、ネットワークを介して出力するべき情報を取得し、取得した情報から出力要求元識別値を抽出する手段と、出力要求元識別値に紐付けられた出力先を選択する手段と、出力先で、デフォルト出力先を書換える手段と、出力先に対応したリモートドライバを呼び出して出力先に適合したフォーマットの出力データに変換して、出力先に送付する手段とを含むデータ処理装置を開示する。
【０００４】
しかしながら、上述した従来技術の出力先振り分けシステムにおいて、利用者は、出力を指示した印刷ジョブの処理結果を正確に知ることはできなかった。これは、実際の出力先となる画像形成装置のプリンタドライバとは異なる仮想プリンタドライバが介在するためである。上記特許文献１の従来技術においても、出力データを送付した後、出力先のステータスを監視し、エラーが発生した場合、データ処理装置の監視手段に対し、出力エラーの発生を通知している。しかしながら、利用者は、出力先の画像形成装置のステータスを知ることができるものの、自分が指示をした印刷ジョブの印刷ジョブ単位の処理結果を知ることができなかった。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、上記従来技術における不具合に鑑みてなされたものであり、本発明は、印刷データを振り分けるシステムにおいて、利用者が指示をした印刷ジョブの印刷ジョブ単位の処理結果を利用者に知らせることができる、データ処理装置、データ処理システムおよびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、上記課題を解決するために、下記特徴を有するデータ処理装置を提供する。本データ処理装置は、ネットワークを介して複数の画像形成装置に接続される。本データ処理装置は、印刷ジョブの要求に応答して、出力先を決定し、要求された印刷ジョブを、決定された出力先となる画像形成装置に振り分ける振り分け手段と、振り分けられる印刷ジョブの出力データに対し、該印刷ジョブを識別するジョブ識別値を付加する付加手段とを含む。本データ処理装置は、さらに、画像形成装置から、ジョブ識別値で対応する印刷ジョブの状態情報を問い合わせ、該印刷ジョブの要求元に対し、得られた状態情報を通知する監視手段とをさらに含む。
【発明の効果】
【０００７】
上記構成によれば、印刷データを振り分けるシステムにおいて、利用者が指示をした印刷ジョブの印刷ジョブ単位の処理結果を利用者に知らせることができる。
【図面の簡単な説明】
【０００８】
【図１】本実施形態によるデータ処理装置を含む振り分け印刷システムのネットワーク環境を示す図。
【図２】本実施形態によるデータ処理装置のハードウェア構成図。
【図３】本実施形態による振り分け印刷システムの機能ブロック図。
【図４】本実施形態によるデータ処理装置が実行する、振り分け印刷処理を示すフローチャート。
【図５】本実施形態において出力先制御部が管理する対応付けテーブル３００を例示する図。
【図６】本実施形態によるポートモニタが実行する処理を示すフローチャート。
【図７】本実施形態において、監視モジュールが管理するジョブ管理テーブルを例示する図。
【図８】本実施形態による監視モジュールが実行する、ジョブ監視処理を示すフローチャート。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態について説明するが、本発明の実施形態は、以下に説明する実施形態に限定されるものではない。なお、以下に説明する実施形態では、データ処理装置を含むデータ処理システムの一例として、複数の画像形成装置に印刷ジョブを振り分けるデータ処理を行うデータ処理装置１１０を含む、振り分け印刷システム１００を用いて説明する。
【００１０】
図１は、本実施形態によるデータ処理装置１１０を含む振り分け印刷システム１００のネットワーク環境を示す図である。振り分け印刷システム１００では、オフィスなどに配置される複数のクライアント１１２，１１４，１１６，１１８が、ネットワーク１３０に接続されている。図１に示すネットワーク環境では、ネットワーク１３０には、さらに、ＭＦＰ１２２、レーザプリンタ１２４，１２６、インクジェットプリンタ１２８などがリモートプリンタとして接続されている。以下、上記ＭＦＰ１２２およびプリンタ１２４〜１２８を、以下、リモートプリンタとして総称する。
【００１１】
データ処理装置１１０は、クライアント１１２〜１１８とプリンタサーバ１２０との間で、印刷ジョブ要求および印刷ジョブ要求に対応する印刷データを取得し、要求元のクライアント１１２〜１１８に対し割り当てられたリモートプリンタを決定し、該リモートプリンタに宛てて、出力データを送信する。送信される出力データは、適宜プリンタサーバ１２０を経由して、対応するリモートプリンタに送付される。クライアント１１２〜１１８に対応したリモートプリンタは、出力データを受信して、当該印刷ジョブにかかる印刷処理を実行する。
【００１２】
なお、本実施形態ではクライアント１１２〜１１８に対してリモートプリンタを割り当てる際には、例えばＩＰアドレス、ＭＡＣアドレス(Media Access Control Address)、ＵＵＩＤ（Universally Unique Identifier）、コンピュータ名などのクライアントを識別する端末固有識別値、クライアント１１２〜１１８を利用するユーザのログイン名などユーザ固有識別値を使用することができ、本実施形態では、これらの値を総じて、出力要求元識別値として参照する。
【００１３】
クライアント１１２〜１１８と、リモートプリンタ１２２〜１２８との割り当て方については種々の態様が考えられる。例えば、特定の実施形態では、クライアントまたはユーザを固有に識別する出力要求元識別値毎に出力先のリモートプリンタを割当てることができる。また、他の実施形態では、クライアントグループまたはユーザグループを設定し、これらのグループ単位で特定のリモートプリンタを割当てる態様も採用することができる。
【００１４】
なお、図１に示した実施形態では、クライアント１１２およびリモートプリンタ１２２が拠点１４０を構成し、その他のクライアントおよびリモートプリンタが対応付けられて、それぞれ拠点１５０および拠点１６０を構成している。クライアントは、拠点１４０〜１６０に複数存在することもでき、リモートプリンタについても各拠点に複数存在していてもよい。
【００１５】
図１に示す例示的なネットワーク環境では、ネットワーク１３０には、さらに、プリンタサーバ１２０が接続されている。プリンタサーバ１２０は、各リモートプリンタ１２２〜１２８を管理しており、印刷ジョブの要求元のに割当てられたリモートプリンタに対して出力データを送付し、印刷ジョブを実行させている。
【００１６】
上記ネットワーク１３０は、特に限定されるものではないが、１０００Ｂａｓｅ−ＴＸのイーサネット（登録商標）などの有線ネットワーク、ＩＥＥＥ８０２．１１などの規格の無線ネットワークを含む。クライアント１１２〜１１８、データ処理装置１１０およびリモートプリンタ１２２〜１２８は、ネットワーク１３０を介して、ＴＰＣ／ＩＰプロトコルに基づくパケット通信により相互通信を行う。
【００１７】
図２は、本実施形態によるデータ処理装置１１０のハードウェア構成を示す図である。データ処理装置１１０は、シングルコアやマルチコアのマイクロプロセッサ・ユニット（ＭＰＵ)１２と、ＢＩＯＳ（Basic Input Output System）を格納する不揮発性メモリ１４と、ＭＰＵ１２によるプログラム処理を可能とする実行記憶空間を提供するメモリ１６とを含む。ＭＰＵ１２は、起動時に、不揮発性メモリ１４からＢＩＯＳを読み出し、システム診断を行なうとともに入出力装置２６の管理を行う。
【００１８】
ＭＰＵ１２は、内部バス２２を介して記憶制御用インタフェース１８に接続され、ハードディスク２０が、ＭＰＵ１２からの入出力要求に応答してデータの書き込または読み出しを実行する。ＭＰＵ１２は、内部バス２２を介してＵＳＢ、ＩＥＥＥ１１６４などのシリアルまたはパラレル・インタフェース２４を制御して、キーボード、マウス、プリンタなどの入出力装置２６と通信し、ユーザからの入力を受け取る。
【００１９】
データ処理装置１１０は、さらにＶＲＡＭ２８とグラフィック・チップ３０とを含むことができる。グラフィック・チップ３０は、ＭＰＵ１２からの指令に応答してビデオ信号を処理し、ディスプレイ装置３２へと表示させている。ＭＰＵ１２は、また、内部バス２２を介してネットワークＩ／Ｆ（ＮＩＣ；Network Interface Card）３４と接続する。これにより、データ処理装置１１０を、ネットワーク１３０を通して、クライアント１１２〜１１８およびリモートプリンタ１２２〜１２８などの外部装置と通信させている。
【００２０】
データ処理装置１１０は、不揮発性メモリ１４やハードディスク２０、その他ＮＶ−ＲＡＭ（図示せず）やＳＤカード（図示せず）などの記憶装置に格納されたプログラム（図示せず）を読み出し、メモリ１６のメモリ領域に展開する。これにより、適切なオペレーティング・システム（ＯＳ）のもとで、後述する各機能手段および各処理を実現する。上記ＯＳとしては、Ｗｉｎｄｏｗｓ（登録商標）、ＵＮＩＸ（登録商標）またはＬＩＮＵＸ（登録商標）など、如何なるアーキテクチャを有するＯＳを採用することができる。
【００２１】
なお、詳細な説明は割愛するが、本実施形態のプリンタサーバ１２０についても、図２に示すハードウェア構成と同様の構成とすることができる。クライアント１１２〜１１８は、パーソナル・コンピュータやワークステーションなどの汎用コンピュータ、またはタブレット端末、ＰＤＡ（Personal Digital Assistance）やスマートフォンなどの携帯情報端末として構成することができる。詳細な説明は割愛するが、クライアント１１２〜１１８についても、図２に示すハードウェア構成と同様の構成とすることができる。
【００２２】
また、クライアント１１２〜１１８は、それぞれ同様の構成を有しており、いわゆるシンクライアントとして実装することができる。シンクライアントは、ＲＤＰ（Remote Desktop Protocol）などの適切な遠隔接続プロトコルを使用して、ターミナルサーバとして稼働するデータ処理装置１１０に接続し、データ処理装置１１０上で稼働するアプリケーションを実行する。オペレータは、シンクライアントを用いて、アプリケーションによる処理を完了した後、仮想プリンタドライバを指定して印刷要求を指示することができる。データ処理装置１１０は、シンクライアントからの指示に応答して、ジョブデータを作成し、仮想プリンタドライバに渡し、印刷処理を実行させる。なお、仮想プリンタドライバについては、より詳細に後述する。
【００２３】
説明する実施形態では、クライアント１１２〜１１８は、シンクライアントとして説明する。しかしながら、他の実施形態では、クライアント１１２〜１１８は、ファットクライアントとして実装されてもよい。ファットクライアントは、それぞれがアプリケーション・プログラムを実装し、各種処理を完結するパーソナル・コンピュータまたはワークステーションなどから構成することができる。
【００２４】
リモートプリンタ１２２〜１２８のハードウェア構成については、特に詳細な説明を行わないが、複合機、レーザプリンタ、インクジェットプリンタなどの対応するハードウェア構成を備える。図１に示した実施形態では、リモートプリンタ１２２〜１２８は、ネットワーク・インタフェース・カード（ＮＩＣ）を実装する。リモートプリンタ１２２〜１２８は、プリンタサーバ１２０からの出力データをネットワーク１３０を介して受信して、印刷ジョブにかかる作像処理を実行する。
【００２５】
なお、以下の説明では、クライアント１１２には、リモートプリンタ１２２が出力先として割り当てられ、クライアント１１４，１１６には、リモートプリンタ１２４が割り当てられており、クライアント１１６については、さらにリモートプリンタ１２６が割り当てられているものとする。クライアント１１６に関してリモートプリンタ１２４と、１２６のいずれかを出力先として選択するかは、印刷するべき文書ファイルの内容や印刷物の用途などにより選択する。
【００２６】
以下、図３〜図８を参照しながら、本実施形態の振り分け処理について説明する。図３は、本実施形態による振り分け印刷システム１００の機能ブロック図である。図３に示すように、データ処理装置１１０は、複数の機能手段を含んで構成される。これらの機能手段は、ＭＰＵ１２が、ハードディスク２０に格納されるプログラムをメモリ１６に読み込んで、該プログラムを実行することにより、コンピュータ上に実現される。
【００２７】
図３に示すように、データ処理装置１１０は、ネットワーク・インタフェース部２１０と、アプリケーション実行部２２０とを含む。図３に示した実施形態では、ネットワーク・インタフェース部２１０は、クライアント１１２〜１１８と、ネットワーク１３０を介して遠隔通信プロトコルなどに基づくデータ授受を行っている。アプリケーション実行部２２０は、クライアント１１２〜１１８からの指令に応答して対応する処理を実行し、実行結果を作成する。アプリケーション実行部２２０は、また、クライアント１１２〜１１８からの指示に応答して、実行結果からジョブデータを作成する。
【００２８】
データ処理装置１１０は、さらに、仮想プリンタドライバ２３０と、リモートプリンタ１２２〜１２８に対応したプリンタドライバ（以下、リモートドライバと参照する。）２４０ａ〜２４０ｎと、監視モジュール２５０と、ポートモニタ２６０とを含む。
【００２９】
仮想プリンタドライバ２３０は、アプリケーション実行部２２０からの呼び出しを受領すると起動され、印刷ジョブの要求を発行したクライアント１１２〜１１８、ユーザ名、または印刷データ自体が含む特定の情報（例えば、価格表、診療レセプト、発注伝票などのテキスト、イメージデータなど）から出力要求元識別値を取得し、出力要求元識別値に割当てられたリモートプリンタを判定する。その後、仮想プリンタドライバ２３０は、リモートドライバ２４０ａ〜２４０ｎの中から、決定されたリモートプリンタに対応したリモートドライバ２４０を呼び出す。仮想プリンタドライバ２３０は、本実施形態における振り分け手段を構成する。
【００３０】
リモートドライバ２４０ａ〜２４０ｎは、プリンタサーバ１２０からデータ処理装置１１０にダウンロードされ、仮想プリンタドライバ２３０によって呼び出されて、出力データの作成を実行する。作成された出力データは、リモートドライバ２４０ａ〜２４０ｎのスプーラおよびポートモニタ２６０を介してプリンタサーバ１２０に送付される。その後、出力データは、ネットワーク１３０を介して、出力先として決定されたリモートプリンタに送付され、該リモートプリンタにおいて、印刷出力が実行される。
【００３１】
上述した処理を実行するため、本実施形態では、仮想プリンタドライバ２３０は、中間ファイル作成部２３２と、中間ファイル管理部２３４と、出力データ発送部２３６と、出力先制御部２３８とを含む。中間ファイル作成部２３２は、アプリケーション実行部２２０が作成した実行結果を処理し、出力要求元識別値を抽出した後、ページイメージの中間ファイルを作成する。作成した中間ファイルは、出力要求元識別値に対応付けて中間ファイル管理部２３４に格納される。
【００３２】
中間ファイルの作成が終了した後、各中間ファイルには、固有のファイル名が生成されて、印刷要求を発行した出力要求元識別値とともにジョブ情報として統合され、中間ファイル管理部２３４に格納される。ジョブ情報は、作成したページイメージのファイル名、出力要求元識別値、およびジョブ情報などを参照させるリストファイルとして構成することができる。中間ファイル作成部２３２は、中間ファイルの作成が終了すると、出力データ発送部２３６に対して、作成したジョブ情報のファイル名などのジョブ情報を送付し、中間ファイル管理部２３４が管理する中間ファイルおよび出力要求元識別値の読み取りを可能とする。
【００３３】
出力データ発送部２３６は、ジョブ情報を参照して中間ファイル管理部２３４にアクセスし、中間ファイルおよび出力要求元識別値を読み込む。出力データ発送部２３６は、その後、出力先制御部２３８に対して出力要求元識別値を送付し、当該出力要求元識別値に割当てられたリモートプリンタを、対応付けテーブルをルックアップして検索させる。
【００３４】
出力先制御部２３８は、対応付けテーブルを参照して、リモートプリンタを指定するための構成情報を検索する。出力先制御部２３８は、検索した後、出力要求元識別値に対応するプリンタ構成情報を、出力先プリンタ情報として取得する。出力先制御部２３８は、その後、出力データ発送部２３６の出力先を指定するデータの記述位置を検索し、検索された記述位置の出力先を、検索された出力要求元識別値に割当てられた出力先プリンタ情報で書き換えることで、出力先を更新する。
【００３５】
出力データ発送部２３６は、出力先制御部２３８により出力先の更新が終了するまでその処理を待機しており、出力先の更新が終了した後、いずれか対応するリモートドライバ２４０を呼び出して、中間ファイルからの出力データの作成を実行し、スプーラおよびポートモニタ２６０を介して、ネットワーク１３０を介してプリンタサーバ１２０に発送する。
【００３６】
ポートモニタ２６０は、各リモートドライバ２４０ａ〜２４０ｎと関連付けられている。本実施形態によるポートモニタ２６０は、リモートドライバ２４０から印刷ジョブの出力データを受け取ると、リモートプリンタに振り分ける印刷ジョブの処理結果を追跡するために印刷ジョブを識別するジョブ識別値を生成および付加し、プリントサーバ１２０を経由して出力データを出力先リモートプリンタへ送信する。プリンタサーバ１２０は、リモートプリンタへの出力データを仲介し、出力データを受領して、対応するリモートプリンタに出力データを送付して、印刷ジョブを実行させる。
【００３７】
監視モジュール２５０は、プリンタサーバ１２０が管理するリモートプリンタ１２２〜１２８を監視し、問い合わせを行って、各リモートプリンタ１２２〜１２８に振り分けた印刷ジョブのステータスを取得する。監視モジュール２５０は、印刷ジョブのステータスを取得すると、その印刷ジョブの要求元に、得られたステータスを通知する。通知されるステータスとしては、印刷ジョブの成功裡な完了を示す完了ステータス、エラー・ステータスおよび待機ステータスなどを挙げることができる。
【００３８】
監視モジュール２５０は、ジョブ識別値が付加されている印刷ジョブについては、ジョブ識別値を用いて対応するリモートプリンタへ、印刷ジョブ単位のステータスを問い合わせて取得する。一方、ジョブ識別値が付加されていない印刷ジョブについては、対応するリモートプリンタ２４０へプリンタ単位のステータスを問い合わせて取得し、印刷ジョブ単位のステータスを判定する。例えば、リモートプリンタ２４０がレディ状態であれば、従前に振り分けたジョブが完了したということなので、印刷ジョブの完了ステータスを判定することができる。また、リモートプリンタがエラー状態であれば、印刷ジョブのエラー・ステータスを判定することができる。
【００３９】
要求元のクライアントがログオンしているデスクトップ上には、仮想プリンタドライバ２３０の印刷ジョブの進捗状況を表示するユーティリティが立ち上がる。このユーティリティは、上記ステータスの通知を受けて、完了ステータス、エラー・ステータス、または待機ステータスを表示する。
【００４０】
図４は、本実施形態によるデータ処理装置１１０が実行する、振り分け印刷処理を示すフローチャートである。図４に示す処理は、ステップＳ１０１から開始し、ステップＳ１０２では、仮想プリンタドライバ２３０は、クライアント１１２〜１１８からの指示に応答して、当該仮想プリンタドライバ２３０を出力先に選択して各種設定が登録された、文書ファイルを出力する印刷ジョブを受領し、ジョブデータとしてバッファに保存した後、中間ファイルの作成を開始する。
【００４１】
ステップＳ１０３では、仮想プリンタドライバ２３０は、受領した文書ファイルについて全部をページイメージである中間ファイルに変換したか否かに基づいて中間ファイルの作成が終了したか否かを判断する。ステップＳ１０３の判断で、中間ファイルの作成が終了していないと判断された場合（ＮＯ）は、ステップＳ１０４へ分岐させる。ステップＳ１０４では、仮想プリンタドライバ２３０は、中間ファイル作成部２３２にデータを戻し、中間ファイルの作成を継続させ、ステップＳ１０３で、中間ファイルの作成が終了した（ＹＥＳ）と判断されるまで処理を反復させる。
【００４２】
一方、ステップＳ１０３で中間ファイルの作成が終了したと判断された場合（ＹＥＳ）は、ステップＳ１０５へ処理を分岐させる。ステップＳ１０５では、仮想プリンタドライバ２３０は、作成した中間ファイルに固有のファイル名を付して、要求発行元のクライアントまたはユーザの出力要求元識別値、およびジョブ情報とともに、中間ファイル作成部２３２が管理する中間ファイル管理部２３４に格納させる。そして、格納した各情報を参照させるためのジョブ情報を作成する。その後、中間ファイルおよび出力要求発行元識別値の読み取りを可能とするため出力データ発送部２３６にジョブ情報を通知する。
【００４３】
ステップＳ１０６では、仮想プリンタドライバ２３０は、出力先制御部２３８に、出力データ発送部２３６から印刷要求元の出力要求元識別値を取得させ、対応付けテーブルを検索させる。仮想プリンタドライバ２３０は、リモートプリンタを固有に指定するローカルプリンタ名を取得し、取得したローカルプリンタ名を、リモートプリンタのネットワーク１３０での構成情報を登録するプリンタ情報リストから検索し、ローカルプリンタ名が一致した構成情報を出力先プリンタ情報として取得する。
【００４４】
ステップＳ１０７では、対応する出力先プリンタ情報が対応付けテーブルに登録されているか否かを判断する。ステップＳ１０７の判断の結果、対応付けテーブルに登録されていると判断された場合（ＹＥＳ）は、ステップＳ１０８に処理を進める。ステップＳ１０８では、仮想プリンタドライバ２３０は、データ処理装置１１０に出力先プリンタのリモートドライバが存在するか否かを判定する。
【００４５】
ステップＳ１０８の判定の結果、出力先プリンタに対応するリモートドライバが存在すると判断した場合（ＹＥＳ）は、ステップＳ１１０へ処理を進める。ステップＳ１１０では、仮想プリンタドライバ２３０は、出力先制御部２３８により、出力データ発送部２３６の出力先を出力先プリンタ情報で書き換えさせる。ステップＳ１１１では、仮想プリンタドライバ２３０は、出力データ発送部２３６の処理を再開させ、出力先プリンタに対応するリモートドライバ２４０を呼び出して、中間ファイルから出力データを作成させ、ステップＳ１１３で本処理を終了する。ステップＳ１０８で、出力先プリンタのリモートドライバが存在しないと判断された場合（ＮＯ）は、ステップＳ１０９で、出力先プリンタのリモートドライバを出力先プリンタに問い合わせてインストールする。
【００４６】
一方、ステップＳ１０７で、対応する出力先プリンタ情報が登録されていないと判断した場合（ＮＯ）は、ステップＳ１１２へ処理を分岐させる。ステップＳ１１２では、仮想プリンタドライバ２３０は、出力データ発送部２３６の処理を再開させ、出力データ発送部２３６の出力先プリンタ情報に対応する出力先プリンタのリモートドライバを起動して、出力データを作成させ、ステップＳ１１３で本処理を終了する。
【００４７】
図５は、本実施形態において、出力先制御部２３８が管理する対応付けテーブル３００を例示する。対応付けテーブル３００Ａは、クライアント１１２〜１１８の出力要求元識別値として、クライアントの端末固有情報であるＩＰアドレスを使用し、ＩＰアドレスと、当該ＩＰアドレスについて割り当てるべきプリンタのローカルプリンタ名とを対応付けて登録する。
【００４８】
対応付けテーブル３００Ｂは、出力要求元識別値として、ユーザ名を使用し、リモートプリンタを固有に識別するためのプリンタ名を、ローカルプリンタＡなどとして、対応付けて登録している。図５に示した対応付けテーブル３００は、データ処理装置１１０の管理者が、適切なデータベースを使用して入力することができる。また、本実施形態では、特定のＩＰアドレスが割り当てられたクライアントおよびユーザ名などを連結し、同一のユーザでも異なるクライアントで作業する場合には、異なる出力先プリンタに出力させる構成とすることもできる。
【００４９】
対応付けテーブル３００Ｃは、出力先の紐付けを行う際に、ユーザといった出力要求元識別値に加え、出力内容を組み合わせて制御するために使用する実施形態である。対応付けテーブル３００Ｃでは、さらにユーザに対して複数のネットワークプリンタが割り当てられていて、それぞれプリンタ名としてローカルプリンタＣおよびローカルプリンタＤとされている。
【００５０】
出力内容は、例えば帳票印刷や、ラベル印刷ではプリンタ機能も異なり、また帳票印刷であってもフォーマットや出力機能が異なるため、これらの相違に基づいて出力先を制御するために利用される。なお、出力内容は、ジョブ情報としてクライアントから渡されることもできるし、データ処理装置が、ジョブ情報の文書ファイルの内容を使用して判断することができる。また、複数のリモートプリンタが割り当てられている場合には、登録上位のプリンタ名をデフォルト設定として選択可能にクライアント１１２〜１１８に問い合わせおよび追加選択を可能とすることができる。
【００５１】
図６は、本実施形態によるポートモニタ２６０が実行する処理を示すフローチャートである。図６に示す処理は、図４に示したステップＳ１１１またはステップＳ１１２で、リモートドライバ２４０が起動され、出力データが生成されたことに応答して、ステップＳ２００から開始する。ステップＳ２０１では、ポートモニタ２６０は、仮想プリンタドライバ２３０からリモートドライバ２４０を経由して出力データを受け取る。
【００５２】
ステップＳ２０２では、ポートモニタ２６０は、出力データを解析し、出力データ内にジョブ識別値があるか否かを判定する。ステップＳ２０２の判定で、印刷ジョブ内にジョブ識別値がないと判定された場合（ＮＯ）は、ステップＳ２０３へ処理を進める。ステップＳ２０３では、ポートモニタ２６０は、印刷ジョブのステータス追跡用のジョブ識別値を生成し、出力データに付加し、ステップＳ２０４へ処理を進める。一方、ステップＳ２０２の判定で、出力データ内に既にジョブ識別値があると判定された場合（ＹＥＳ）は、ステップＳ２０４へ直接処理を進める。
【００５３】
ステップＳ２０４では、ポートモニタ２６０は、出力データ内に含まれていたジョブ識別値、または生成されたジョブ識別値を監視モジュール２５０に通知して、印刷ジョブのステータスの監視を依頼する。ステップＳ２０５では、ポートモニタ２６０は、ジョブ識別値を有する出力データを出力先のリモートプリンタへ送付し、ステップＳ２０６で、本処理を終了させる。
【００５４】
図７は、本実施形態において、監視モジュール２５０が管理するジョブ管理テーブル３１０を例示する。ジョブ管理テーブル３１０は、出力要求元識別値としてクライアントの端末固有情報であるユーザ名を使用し、ジョブ識別値と、要求元のユーザ名と、出力先のプリンタのローカルプリンタ名と、出力内容とを対応付けて登録している。図７に示したジョブ管理テーブル３１０は、振り分けられた印刷ジョブ毎に、ポートモニタ２６０からの通知に応答してレコードが登録される。監視モジュール２５０は、印刷ジョブのステータスを監視するためジョブ管理テーブル３１０を参照する。
【００５５】
図８は、本実施形態による監視モジュール２５０が実行する、ジョブ監視処理を示すフローチャートである。図８に示す処理は、例えばデータ処理装置１１０が起動し、監視モジュール２５０のサービスが起動されたことに応答して、ステップＳ３００から開始する。ステップＳ３０１では、監視モジュール２５０は、ジョブ管理テーブル３１０を参照して、該テーブル内の印刷ジョブのレコードを順に取得する。ステップＳ３０２では、監視モジュール２５０は、取得したレコードがジョブ識別値を有するか否かを判定する。
【００５６】
ステップＳ３０２の判定で、ジョブ識別値が有ると判定された場合（ＹＥＳ）には、ステップＳ３０３へ処理を進める。ステップＳ３０３では、監視モジュール２５０は、取得したレコード内から出力先リモートプリンタのローカルプリンタ名を取得し、出力先のリモートプリンタへジョブ識別値に対応する印刷ジョブの状態を問い合わせる。問い合わせに応答して、監視モジュール２５０は、印刷ジョブのステータスを取得する。
【００５７】
ステップＳ３０４では、監視モジュール２５０は、取得した印刷ジョブのステータスが待機状態を示しているか否かを判定する。ステップＳ３０４の判定で、待機状態を示すステータスであったと判定された場合（ＹＥＳ）は、ステップＳ３０５へ処理を進める。ステップＳ３０５では、監視モジュール２５０は、レコードの印刷要求発行元に待機ステータスを通知し、ステップＳ３０１へ処理をループさせて、ジョブ管理テーブル３１０の次のレコードへ処理を進める。
【００５８】
一方、ステップＳ３０４で、印刷ジョブのステータスが待機状態を示していないと判定された場合（ＮＯ）は、ステップＳ３０６へ処理が進められる。ステップＳ３０６では、監視モジュール２５０は、取得した印刷ジョブのステータスがエラー状態を示しているか否かを判定する。ステップ３０６の判定で、エラー状態を示していると判定された場合（ＹＥＳ）は、ステップＳ３０７へ処理が進められる。
【００５９】
ステップＳ３０７では、監視モジュール２５０は、エラー処理を実行する。エラー処理としては、ジョブ転送処理を挙げることができる。また、印刷ジョブがエラー状態であり転送を行った旨、またはエラー状態のため印刷ジョブが実行不可であるという結果を印刷要求発行元に通知することもできる。その後、ステップＳ３０１へ処理をループさせて、ジョブ管理テーブル３１０の次のレコードへ処理を進める。
【００６０】
一方、ステップＳ３０６で、印刷ジョブのステータスがエラー状態も示していないと判定された場合（ＮＯ）は、ステップＳ３０８へ処理が進められる。ステップＳ３０８では、監視モジュール２５０は、印刷ジョブが待機状態でもなくエラー状態でもないので、ジョブ完了ステータスを印刷要求発行元へ通知し、ジョブ管理テーブル３１０から当該印刷ジョブのレコードを削除する。
【００６１】
ステップＳ３０９では、監視モジュール２５０は、ジョブ管理テーブル３１０内にまだ監視すべき印刷ジョブのレコードが有るか否かを判定する。ステップＳ３０９で、レコードがまだ有ると判定された場合（ＹＥＳ）は、ステップＳ３０１へ処理をループさせて、ジョブ管理テーブル３１０の次のレコードへ処理を進める。なお、レコードの末端までたどり着いた場合は、再び先頭が対象とされる。
【００６２】
一方、ステップＳ３０２で、レコードにジョブ識別値が無いと判定された場合（ＮＯ）は、ステップＳ３１１へ処理を分岐させる。ステップＳ３１１では、監視モジュール２５０は、印刷ジョブのステータスに代えて、出力先リモートプリンタのステータスを取得する。ステップＳ３１２では、監視モジュール２５０は、プリンタのステータスが、レディ状態（Ｒｅａｄｙ）であるか否かを判定する。ステップＳ３１２の判定で、レディ状態であると判定された場合（ＹＥＳ）は、印刷ジョブが完了しているものとして、ステップＳ３０８へ処理が進められる。その後、ジョブ完了ステータスが印刷要求発行元へ通知され、ジョブ管理テーブル３１０から当該印刷ジョブのレコードが削除される。
【００６３】
ステップＳ３１２の判定で、レディ状態ではないと判定された場合（ＮＯ）は、ステップＳ３１３へ処理を進める。ステップＳ３１３では、監視モジュール２５０は、プリンタのステータスが、ビジー状態（Ｂｕｓｙ）であるか否かを判定する。ステップＳ３１３の判定で、ビジー状態であると判定された場合（ＹＥＳ）は、ステップＳ３０９へ処理が分岐される。この場合は、当該レコードのステータス確認をスキップして、次のレコードに進められる。
【００６４】
ステップＳ３１３の判定で、ビジー状態でもないと判定された場合（ＮＯ）は、ステップＳ３１４へ処理が進められる。ステップＳ３１４では、監視モジュール２５０は、プリンタのステータスが、エラー状態（Ｅｒｒｏｒ）であるか否かを判定する。ステップＳ３１４の判定で、電源切れ、トナー切れ、ジャムなどによりエラー状態であると判定された場合（ＹＥＳ）は、ステップＳ３１５へ処理が分岐される。ステップＳ３１５では、監視モジュール２５０は、エラー・ステータスを印刷要求発行元へ通知し、ジョブ管理テーブル３１０から当該印刷ジョブのレコードを削除する。
【００６５】
ステップＳ３０９で、ジョブ管理テーブル３１０内にレコードがもう無いと判定された場合（ＮＯ）は、ステップＳ３１０へ処理が分岐される。ステップＳ３１０では、監視モジュール２５０は、一定時間待機した後、ステップＳ３０９へループさせて、新たに印刷ジョブのレコードが登録されるのを待つ。
【００６６】
上述したように、各クライアント１１２〜１１８から仮想プリンタドライバ２３０を指定して印刷ジョブを要求した後、各要求元クライアント１１２〜１１８のデスクトップ上には、仮想プリンタドライバ２３０に要求した印刷ジョブの進捗状況を表示するユーティリティが立ち上がる。上記ユーティリティは、上述した監視モジュール２５０から、仮想プリンタドライバ２３０を経て、ステータス通知を受領する。上記ユーティリティは、上記ステータスの通知を受けて、完了ステータス、エラー・ステータス、または待機ステータスを表示し、印刷ジョブを要求したユーザに印刷ジョブ単位のステータスを知らしめる。
【００６７】
上記構成によれば、印刷ジョブの出力データに追跡用のジョブ識別値が付されて出力先のリモートプリンタへ送付されるので、監視モジュール２５０から、印刷ジョブのステータスを追跡することが可能となる。監視モジュール２５０が印刷ジョブのステータスを取得すると、要求元に通知されるので、利用者が出力を指示した印刷ジョブのステータスを利用者に印刷ジョブ単位で知らしめることができる。
【００６８】
以上説明したように、本実施形態によれば、印刷データを振り分けるシステムにおいて、利用者が指示をした印刷ジョブの印刷ジョブ単位の処理結果を利用者に知らせることができる、データ処理装置、データ処理システムおよびプログラムを提供することができる。
【００６９】
なお、上記機能部は、アセンブラ、Ｃ、Ｃ＋＋、Ｃ＃、Ｊａｖａ（登録商標）、などのレガシープログラミング言語やオブジェクト指向プログラミング言語などで記述されたコンピュータ実行可能なプログラムにより実現でき、ＲＯＭ、ＥＥＰＲＯＭ、ＥＰＲＯＭ、フラッシュメモリ、フレキシブルディスク、ＣＤ−ＲＯＭ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ブルーレイディスク、ＳＤカード、ＭＯなど装置可読な記録媒体に格納して、あるいは電気通信回線を通じて頒布することができる。
【００７０】
これまで本発明の実施形態について説明してきたが、本発明の実施形態は上述した実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【符号の説明】
【００７１】
１２…ＭＰＵ、１４…不揮発性メモリ、１６…メモリ、１８…記憶制御用インタフェース、２０…ハードディスク、２２…内部バス、２４…シリアルまたはパラレル・インタフェース、２６…入出力装置、３０…ＶＲＡＭ２８とグラフィック・チップ、３２…ディスプレイ装置、３４…ＮＩＣ、１００…振り分け印刷システム、１１０…データ処理装置、１１２〜１１８…クライアント、１２０…プリンタサーバ、１２２〜１２８…リモートプリンタ、１３０…ネットワーク、１４０，１５０，１６０…拠点、２１０…ネットワーク・インタフェース部、２２０…アプリケーション実行部、２３０…仮想プリンタドライバ、２３２…中間ファイル作成部、２３４…中間ファイル管理部、２３６…出力データ発送部、２３８…出力先制御部、２４０…リモートドライバ、２５０…監視モジュール、２６０…ポートモニタ、３００…対応付けテーブル、３１０…ジョブ管理テーブル
【先行技術文献】
【特許文献】
【００７２】
【特許文献１】特開２０１０−２７１９８８号公報
【図１】
2013196469.tif 000003
【図２】
2013196469.tif 000004
【図３】
2013196469.tif 000005
【図４】
2013196469.tif 000006
【図５】
2013196469.tif 000007
【図６】
2013196469.tif 000008
【図７】
2013196469.tif 000009
【図８】
2013196469.tif 000010