以下、本発明を実施形態をもって説明するが、本発明は、後述する実施形態に限定されるものではない。図1は、本発明のデータ処理装置110を含むプリンタネットワークシステム100の実施形態を示す。プリンタネットワークシステム100は、オフィスなどに配置される複数のクライアントコンピュータ(以下、単にクライアントとして参照する。)112、114、116、118が、ネットワーク130に接続されて構成されている。ネットワーク130には、データ処理装置110の他、プリンタサーバ120および例示的な実施形態では、MFP122、レーザプリンタ124、126、インクジェットプリンタ128などのリモートプリンタが接続されている。本実施形態では、上述したMFP122、ページプリンタ124〜128を、以下、リモートプリンタとして総称する。
データ処理装置110は、図1に示す実施形態では、クライアント112〜118と、プリンタサーバ120との間で、印刷要求および印刷要求に対応する印刷データを取得する。クライアント112〜118に割当てられたリモートプリンタを判断し、当該クライアントに割当てられたリモートプリンタに宛てて、印刷データに対応するRAWデータを作成する。作成されたRAWデータは、例えばPDL(Page Description Language)コマンドの追加処理などが行われて出力データとされ、プリンタサーバ120を介して指定されたリモートプリンタ122〜128に送付される。その結果、クライアント112〜118に対応したリモートプリンタによって印刷処理が実行される。
なお、クライアント112〜118に対してリモートプリンタを割当てる際には、クライアントのハードウェア上の識別値、例えばIPアドレス、MACアドレス(Media Access Address)、クライアントに付されたコンピュータ名、またはユーザのログイン名などを使用することができ、本実施形態では、これらの値を固有識別値として総称する。
データ処理装置110は、好ましい実施形態では、サーバ装置として実装され、シングルコア、マルチコアのCPU、ROM、実行空間を提供するRAM、及びハードディスク装置などを含み、Windows(登録商標)200Xサーバ、UNIX(登録商標)、LINUX(登録商標)、又はSolaris(登録商標)などのオペレーティングシステム(OS)による制御の下、印刷データの出力先を制御する。また、データ処理装置110と、クライアント112〜118との間は、RDP(Remote Desktop Protocol)などの適切な遠隔接続プロトコルを使用してトランザクションが可能とされている。
クライアント112〜118と、リモートプリンタ122〜128の割当てについては種々の態様が考えられる。例えば、特定の実施形態では、クライアントまたはユーザを固有に識別する固有識別値ごとに出力先にリモートプリンタを割当てることができる。また、他の実施形態では、クライアントグループまたはユーザグループを設定し、これらのグループ単位で特定のリモートプリンタを割当てる態様も採用することができる。図1に示した実施形態では、クライアント112とリモートプリンタ122とが拠点140を構成する。他の各クライアントについてもプリンタと対応付けられて拠点150、160、170を構成する。クライアントは拠点140〜170に複数存在することもでき、リモートプリンタについても各拠点に複数存在していてもよい。
プリンタサーバ120は、各リモートプリンタを管理しており、クライアント112〜118からの印刷要求に基づいてデータ処理装置110より送信される印刷要求を受領する。プリンタサーバ120は、受領した印刷要求において印刷先とされているリモートプリンタに対して印刷データを送付し、印刷ジョブを実行させる。より詳しくは、プリンタサーバ120は、リモートプリンタごとに、当該リモートプリンタに対応したプリンタドライバを有する。データ処理装置110からの印刷要求の受信、及びリモートプリンタ122〜128への印刷データの送付は、印刷要求において印刷先とされているリモートプリンタに対応するプリンタドライバによって制御される。
プリンタサーバ120についても好まし実施形態では、サーバ装置として実装することができ、ハードウェア構成およびOS構成については、データ処理装置110と同様の構成とすることができる。なお、プリンタサーバ120は、必ずしもサーバ装置として実装される必要はなく、パーソナルコンピュータに、プリンタサーバアプリケーションを実装して構成することもできる。
クライアント112〜118は、それぞれ同様の構成を有している。クライアント112〜118は、ファットクライアント装置、例えば、それぞれがアプリケーションプログラムを実装し、各種処理を完結する、パーソナルコンピュータまたはワークステーションなどであってもよい。クライアント112〜118がファットクライアントである場合、各クライアント112〜118は、シングルコア、マルチコアのCPUを搭載し、RAM、ROM、ハードディスク装置、及びネットワークインタフェースカード(NIC)を含み、Windows(登録商標)、UNIX(登録商標)、LINUX(登録商標)、又はMac OS(登録商標)などの適切なOSの下で、各リモートプリンタ122〜128へ印刷処理を依頼する。
ファットクライアントであるクライアント112〜118は、ハードディスク装置などからアプリケーションプログラムおよびデータをRAMに読込んで、CPUがアプリケーションプログラムを実行させることにより、文書、イメージ、マルチメディアまたはこれらが複合的に組合わされた電子的データとして印刷対象とする印刷データを生成する。
また、他の実施形態では、クライアント112〜118は、いわゆるシンクライアントとしてもよい。シンクライアントは、ネットワーク接続モジュール、ユーザ認証機能、セッション生成モジュールなど、専らデータ処理装置110に対してサービス要求を発行し、処理結果を受領して印刷出力を要求する機能のみを有する。クライアント112〜118がシンクライアントである場合では、クライアント112〜118は、アプリケーションによる処理を完了した場合、データ処理装置110に対して印刷要求を発行する。
データ処理装置110は、シンクライアントの要求に対応して作成した印刷データを、仮想プリンタドライバ230に渡し、印刷処理を実行させる。なお、仮想プリンタドライバ230の詳細については後述する。
リモートプリンタ122〜128のうちページプリンタ124〜126は、ネットワークインタフェースカード(NIC)を有し、プリンタサーバ120からの印刷データを、ネットワーク130を介して受領し、印刷ジョブを実行する。MFP122は、ネットワークボードでネットワーク130に接続されたリモートプリンタとしてもよいし、プリント機能の他、プリンタサーバの機能を含んでいてもよい。
ネットワーク130は、1000Base−TXなどのイーサネット(登録商標)、光ネットワーク、又はIEEE802.11などの規格の無線ネットワークを含んで構成することができる。ネットワーク130は、フレームまたはTPC/IPプロトコルに基づくパケット通信によって、相互通信を行う。ネットワーク130は、LANの他、VPN(Virtual Private Network)などによるセキュア環境下でインターネットなどの広域ネットワークを含んで構成されていてもよい。
図2は、本実施形態のデータ処理装置110の機能ブロック200である。なお、図2に示すように、データ処理装置110は、複数の機能手段を含む。これらの機能手段は、RAMなどにプログラムが読み込まれ、CPUがプログラムを実行することによりコンピュータ上に実現される。
図2に示すように、データ処理装置110は、ネットワークインタフェース部210と、アプリケーション実行部220とを含む。ネットワークインタフェース部210は、ネットワーク130を介してTCP/IPプロトコルなどに基づくデータを受領し、アプリケーション実行部220の処理結果をネットワーク130を介して外部出力する。アプリケーション実行部220は、受領した処理要求およびデータを使用してクライアント112〜118の指令に対応する処理を実行し、実行結果を作成する。例えば、アプリケーション実行部220は、クライアント112〜118からの印刷要求に応答して、実行結果から印刷データを作成し、指定したリモートプリンタから印刷出力させる。
データ処理装置110は、さらに仮想プリンタドライバ230と、リモートプリンタの機種固有のRAWデータを作成するため、リモートプリンタ122〜128に対応したリモートドライバ240〜246とを含む。仮想プリンタドライバ230は、アプリケーション実行部220からの呼出に応じて起動され、印刷要求を発行したクライアント112〜118、ユーザ名、または印刷データ自体が含む特定の情報、例えば、価格表、診療レセプト、発注伝票などのテキスト、イメージデータなどから固有識別値を取得し、固有識別値に割当てられたリモートプリンタを識別する。その後、仮想ドライバは、識別されたリモートプリンタ122〜128に対応するリモートドライバ240〜246を呼出して、出力させるべきリモートプリンタの機種固有のRAWデータを作成させる。
リモートドライバ240〜246は、プリンタサーバ120がリモートプリンタごとに有するプリンタドライバに基づいてプリンタサーバ120よりデータ処理装置110にダウンロードされる。リモートドライバ240〜246は、仮想プリンタドライバ230によって呼出されて、RAWデータの作成を実行する。作成されたRAWデータには、適宜、PDLコマンドなどページ制御言語コマンドまたはプリンタ制御言語コマンドが追加されて出力データが生成される。生成された出力データは、リモートドライバ240〜246のスプーラおよびポートモニタを介して、プリンタサーバ112においてリモートドライバに対応するプリンタドライバに送付される。当該出力データは、プリンタサーバ112のプリンタドライバによってネットワーク130を介して指定されたリモートプリンタに送付され、指定されたリモートプリンタにおいて、印刷出力が実行される。
上述した処理を実行するため、本実施形態では、仮想プリンタドライバ230は、中間ファイル作成部232と、中間ファイル管理部234と、出力データ発送部236と、発送先制御部238とを含む。中間ファイル作成部232は、アプリケーション実行部220が作成した実行結果を処理し、テキストデータおよびイメージデータから、ページイメージを、ビットマップ、EMF(Enhanced Meta-Data Format)、GIF、TIFF、JPEG、又はJPEG2000などのフォーマットのページイメージの中間ファイルを作成する。中間ファイル作成部232は、受領した実行結果全部について、中間ファイルを作成するまで処理を反復する。
中間ファイルの作成が終了した後、各中間ファイルには、固有のファイル名が生成される。各中間ファイルは、印刷要求を発行したクライアントの固有識別値とともにファイル構成情報として統合され、中間ファイル管理部234に格納される。ファイル構成情報は、作成したページイメージ(中間ファイル)のファイル名、固有識別値、およびジョブ識別値などを参照させるリストファイルとして構成することができる。中間ファイル作成部232は、中間ファイルの作成が終了すると、出力データ発送部236に対して、作成した中間ファイルのファイル名などのファイル構成情報を送付し、中間ファイル管理部234が管理する中間ファイルおよびクライアントの固有識別値の読み取りを可能とする。
出力データ発送部236は、ファイル構成情報を参照して中間ファイル管理部234にアクセスし、中間ファイルおよびクライアントの固有識別値を読込んだ後、発送先制御部238に対してクライアントの固有識別値を送付する。発送先制御部238は、当該固有識別値に割当てられたリモートプリンタを、対応付けテーブルをルックアップして検索する。より詳しくは、発送先制御部238は、対応付けテーブルを参照して、リモートプリンタを指定するための構成情報を検索した後、固有識別値に対応するプリンタ構成情報を、出力先プリンタ情報として取得する。発送先制御部238は、その後、出力データ発送部236が管理するデータにおいて発送先を指定するデータの記述位置を検索し、検索された記述位置の発送先を、検索されたクライアントの固有識別値に割当てられた出力先プリンタ情報で書換えることで、発送先を更新する。
出力データ発送部236は、発送先制御部238による発送先の更新が終了するまでその処理をサスペンドしている。出力データ発送部236は、発送先の更新が終了した後、対応するリモートドライバ240〜246のいずれかを呼出して、中間ファイルからのRAWデータの作成、PDLコマンドの追加処理を実行させる。出力データは、スプーラ、ポートモニタを介してネットワーク130を介してプリンタサーバ120に発送される。プリンタサーバ120は、受領した出力データに関連付けられたリモートプリンタに出力データを送付し、印刷ジョブを実行させる。その結果、クライアントに割当てられたリモートプリンタによる印刷物の作成が可能となる。上述した発送制御部238は、既存のプリンタネットワークシステムへの追加を容易にするため、プラグインプログラムとして実装することができる。
なお、図2に示した仮想プリンタドライバ230の実装構成は、例示的な実施形態であり、本実施形態の仮想プリンタドライバ230の機能を提供することができる限り、図2に示すモジュール構成に限定されるものではない。
図3は、本実施形態のデータ処理装置110が実行する処理のフローチャートである。図3に示す処理は、ステップS300から開始する。ステップS301で、仮想プリンタドライバ230が、クライアント112〜118からの印刷要求を、実行結果とともに受領する。なお、図2に示した実施形態の場合、実行結果は、アプリケーション実行部220がクライアント112〜118からの要求に対応して作成し、仮想プリンタドライバ230に渡す。ステップS302で、仮想プリンタドライバ230は、実行結果を取得して中間ファイルの作成を開始する。ステップS303では、受領した実行結果について全部をページイメージの中間ファイルに変換したか否かに基づいて中間ファイルの作成が終了したか否かを判断する。ステップS303の判断で、中間ファイルの作成が終了していないと判断された場合(no)、ステップS307で、中間ファイルの作成が継続される。中間ファイルの作成は、ステップS303で中間ファイルの作成が終了したと判断されるまで処理を反復される。
一方、ステップS303で中間ファイルの作成が終了したと判断された場合(yes)、ステップS304で、中間ファイル作成部232は、作成した中間ファイルに固有のファイル名を付して、要求発行元のクライアントまたはユーザの固有識別値、およびジョブ識別値とともに、中間ファイル管理部234が管理する中間ファイル格納部に送付し格納させる。そして、中間ファイル作成部232は、格納した各情報を参照させるためのファイル構成情報を作成し、バッファリングする。その後、ステップS304では、中間ファイル作成部232は、中間ファイルおよびクライアントの固有識別値の読み取りを可能とするため出力データ発送部236にファイル構成情報を通知する。
ステップS305では、発送先制御部238は、出力データ発送部236から印刷要求元の固有識別値を取得して、対応付けテーブルからプリンタ名を取得する。そして、発送先制御部238は、取得したプリンタ名を検索キーとして使用し、リモートプリンタのネットワーク130での構成情報が登録されたプリンタ情報リストを参照し、プリンタ名が一致する構成情報を、出力先プリンタ情報として取得する。
その後、ステップS306では、発送先制御部238は、出力データ発送部236が管理する、発送先を示すデータを、出力先プリンタ情報で書換え、出力データ発送部236の処理を再開させる。出力データ発送部236は、出力先プリンタに対応するリモートドライバを起動させ、RAWデータ作成、PDLコマンド追加の処理をリモートドライバに実行させる。リモートドライバは、作成された出力データを、スプーラ及びポートモニタを介してプリンタサーバ120に送付する。出力データは、当該リモートドライバに対応するリモートプリンタに送付され、当該リモートプリンタによって印刷される。ステップS308で処理は終了する。
図4は、本実施形態で、発送先制御部238が管理する対応付けテーブルの実施形態を示す。図4に示した対応付けテーブル400Aは、クライアント112〜118の固有識別値として、IPアドレスを使用し、IPアドレスと、当該IPアドレスについて割当てるべきプリンタのプリンタ名とを対応付けて登録する。なお、IPアドレスは、対応付けテーブル400Aに示す様な単独の値ではなく、特定のグループなどに対応付けることができるように、サブネットマスクなどで指定されたIPアドレス範囲とすることができる。
対応付けテーブル400Bは、固有識別値として、MACアドレスを使用し、リモートプリンタのプリンタ名と対応付けて登録している。また、対応付けテーブル400Cは、固有識別値としてIPアドレス、MACアドレス、クライアントコンピュータ名などのハードウェアを識別する値ではなく、クライアントのユーザに固有の値、例えばユーザのログイン名に対応付けてリモートプリンタ名を登録する実施形態である。対応付けテーブル400A、400Bは、一定のIPアドレス範囲に対して特定のリモートプリンタを割当てる場合に好適に利用でき、対応付けテーブル400Cは、クライアント112〜118ではなく、ユーザごとに出力先を制御する実施形態の場合に好適に使用することができる。
図4に示したIPアドレスは、クライアント112〜118がデータ処理装置110にアクセスする場合に、アクセス要求を送付するパケットに含まれるIPアドレスを取得して、データ処理装置110が以後の処理のために利用することができる。また、対応付けテーブル400BのMACアドレスは、アクセス要求を送付するパケットの送信元MACアドレスを取得して、データ処理装置110の以後の処理に使用することができる。さらに、コンピュータ名やユーザIDは、例えばクライアントのアクセス制御装置に、ICカードをセットしてデータ処理装置110にアクセスする際にデータ処理装置110において、アクセス認証を行う場合に取得することができる。
また、他の実施形態では、データ処理装置110は、定期的にネットワークに接続されたクライアント112〜118に対して、PINGをブロードキャストまたはマルチキャスト送付する。データ処理装置110は、返信されたICMP応答の送信元IPアドレスを対応付けテーブル400Aの固有識別値カラムに登録する。このように登録されたIPアドレスに対してリモートプリンタ名を割り当てることで対応付けテーブル400Aが作成される。
対応付けテーブル400Bについては、データ処理装置110は、ARP(Address Resolution Protocol)コマンドを各IPアドレスに対して発行することによって得られるMACアドレスを対応付けテーブル400Bの固有識別値のカラムに登録する。このように登録されたMACアドレスに対してリモートプリンタ名を割り当てることで対応付けテーブル400Bが作成される。
なお、対応付けテーブル400Aを採用する場合、DHCPサーバなどによるIPアドレスのリース状態に対応できるように、DHCPサーバがリースできるIPアドレスの範囲ごとにリモートプリンタ名を設定してもよい。そうすれば、DHCPサーバによるIP自動割当てに対しても対応可能となる。
図4に示した実施形態のうち、固有識別値としてユーザIDを使用する場合には、対応付けテーブル400Cは、管理者がユーザIDを回収し、ユーザIDをそれぞれリモートプリンタ名に対応付けて登録することができる。図4に示した対応付けテーブル400A〜400Cは、いずれか1つを排他的に実装するのではなく、対応付けテーブル400A〜400Cの全てを実装してもよい。この場合、特定の目的に応じて、各対応付けテーブル400Aから400Cのいずれかを選択してもよいし、各テーブルの値の論理和または論理積を利用してもよい。
図5は、本実施形態の出力データ発送部236が使用するリモートプリンタを構成する構成情報が登録されたプリンタ情報リスト500の実施形態を示す。図5に示すプリンタ情報リスト500は、本実施形態では、発送先制御部238が管理する。プリンタ情報リスト500は、プリンタサーバ120からリモートプリンタに対応するリモートドライバのリースを受ける場合に、対応するプリンタの構成情報を登録するレコードが、自動的に作成されて実装することができる。フィールド510は、リモートプリンタ名が登録されるフィールドであり、フィールド520には、当該画像形成装置に付されたホスト名が登録され、フィールド530には、当該画像形成装置に割当てられたIPアドレスが登録される。
さらに、フィールド540には、画像形成装置に印刷データを送付する際の出力ポート名が登録されている。ホスト名は、例えばNETBEUIなどで名前解決プロトコルを使用して画像形成装置を検索する場合に使用され、IPアドレスは、TCP/IPプロトコルを使用して印刷データを画像形成装置に送付する際に使用される。また、出力ポート名は、設定されたIPアドレスに宛てて印刷データを送付するデバイスを呼出すためのハンドルまたはポインタとして使用される。
発送先制御部238は、出力データ発送部236から印刷要求の発行元の固有識別値の通知を受領すると、プリンタ情報リスト500をルックアップして出力先プリンタ情報を取得する。その後、発送先管理部238は、出力データ発送部236が作成した、例えばGDIインスタンスのリモートプリンタ情報の記述されている領域を検出し、当該リモートプリンタ情報を取得した出力先プリンタ情報で書換え、書換終了を出力データ発送部236に通知する。
当該通知を受領して出力データ発送部236は、書換えられた値に対応するリモートドライバを呼び出す。呼び出されたリモートドライバは、中間ファイルのRAWデータへの変換処理を実行するとともに必要なPDLコマンドの追加を実行し、スプーラ・ポートモニタを呼出してプリンタサーバ120へと印刷データを送付する。
図6は、本実施形態で、出力データ発送部236が実行する処理のフローチャートを示す。処理は、仮想プリンタドライバ230が呼出された時点であるステップS600から開始し、ステップS601で、中間ファイル作成部232から、中間ファイルのファイル構成情報を受領する。ファイル構成情報には、作成された中間ファイルに固有のファイル名、クライアント若しくはユーザの固有識別値、及びジョブ識別値などの読出しを可能とする情報が含まれる。ステップS602では、ファイル構成情報の格納情報を参照して中間ファイルおよび固有識別値を中間ファイル管理部234から読出し、固有識別値を発送先制御部238に送付する。
なお、デフォルト設定の出力先プリンタ情報としては、実際に接続されていないダミープリンタの値が設定されている。この結果、仮想プリンタドライバ230は、当初は対応するリモートドライバの呼出に失敗する。しかし、本実施形態では、仮想プリンタドライバ230は、リモートドライバの呼出しに失敗しても、所定のタイムアウト期間が経過するまでwaitし、リモートドライバの呼出に成功するまで当該プリントインスタンスを持続させる。
他の実施形態では、後述する発送先制御部238が出力先プリンタ情報の書換を完了した時点でプロセス間通信などにより出力データ発送部236に通知を行い、出力データ発送部236の処理を再開させることができる。また、仮想プリンタドライバ230が特定のプリントインスタンスを生成する場合に使用するDEVMODE構造体は、接続されているリモートプリンタの最上位機種に対応する設定のものが選択され、接続されているリモートプリンタの最上位機種にも対応する印刷処理を提供することが可能とされている。この際、下位機種については、当該下位機種が保有していない機能をスキップして、機種固有のRAWデータの作成およびPDLコマンドの追加が実行される。
ステップS603で、出力データ発送部236は、固有識別値に対応するリモートプリンタの構成情報により出力先プリンタ情報が書換えられると、書換えられたリモートドライバを呼出して出力データを作成する。なお、この際には、PDLコマンドの追加処理も実行することができる。その後、ステップS604で、出力データ発送部236は、作成した出力データをスプーラおよびポートモニタに渡し、対応するリモートプリンタに宛てて作成した出力データを送付し処理を終了する。
図7は、本実施形態の発送先制御部238が実行する処理のフローチャートである。図7の処理は、ステップS700から開始し、ステップS701で出力データ発送部から、ユーザ又はクライアントの固有識別値を受領する。ステップS702で、対応付けテーブル400A〜400Cのいずれかまたは複数をルックアップして、ユーザ又はクライアントに割当てられたリモートプリンタのプリンタ名を取得する。その後、プリンタ情報リスト500を、プリンタ名をキーとしてルックアップして対応するプリンタ名の構成情報を、出力先プリンタ情報として取得する。
ステップS703では、出力データ発送部236の出力先プリンタ情報を、取得したリモートプリンタ情報で書換える。書換が終了した後、発送先制御部238は処理をそのまま終了させるか、またはプロセス間通信を使用して、出力データ発送部236に対して通知を行い出力データ発送部236に対して明示的に処理開始を通知し、ステップS704で処理を終了する。
次に、発送先制御部238の他の実施形態について説明する。図8は、発送先制御部238が実行する処理の変形例のフローチャートである。図8中、図7と同一ステップには同一ステップ番号を付し、その説明は適宜省略する。
当該変形例では、ステップS701において、ユーザ又はクライアントの固有識別値と共に、中間ファイルを受領する。その後、ステップS705において、中間ファイルに含まれている文字列(テキストデータ)を抽出する。中間ファイルが画像データである場合、文字列の抽出にはOCR(Optical Character Recognition)技術を利用すればよい。ステップS706において、抽出された文字列中に、所定のキーワードが含まれているか否かを判定する。所定のキーワードとは、例えば、発送先制御部238が管理する印刷条件管理テーブルに登録されているキーワードである。
図9は、印刷条件管理テーブルの例を示す図である。同図において、印刷条件管理テーブルには、キーワードごとに印刷条件が登録されている。同図では、「社外秘」、「請求書」、「宛名 and 件名」等がキーワードとして例示されている。なお、「宛名 and 件名」は、「宛名」と「件名」の双方が含まれている場合に、当該キーワードが含まれていると判定すべきことを示す。
ステップS707では、抽出された文字列に含まれているキーワードに基づいて、印刷条件を判定する。すなわち、印刷条件管理テーブルにおいて、当該キーワードに対応付けられている印刷条件が判定される。したがって、図9を例とすると、「社外秘」が含まれている場合は、地紋印刷が有効とされることが判定される。「請求書」が含まれている場合は、給紙トレイはトレイ5とすることが判定される。「宛名」及び「件名」が含まれている場合は、集約及び両面印刷を行うことが判定される。
ステップS708では、判定された印刷条件を出力データ発送部236に設定する。印刷条件を設定された出力データ発送部236は、当該印刷条件をリモートドライバに設定後、RAWデータ作成及びPDLコマンド追加の処理等をリモートドライバに実行させる。これにより、RAWデータ内又はPDLコマンド内に、当該印刷条件を示す情報が含められる。その結果、リモートドライバからの出力データに基づく印刷ジョブでは、当該印刷条件に従った出力が行われる。
当該変形例によれば、印刷データに含まれている文字列に応じて印刷条件を自動的に変化させることができる。なお、印刷条件として「印刷中止」を指定可能とし、このような印刷条件に対応するキーワードが含まれていた場合は、印刷を中止するようにしてもよい。また、印刷条件として出力先のリモートプリンタのプリンタ名を指定可能としてもよい。このような印刷条件に対応するキーワードが含まれていた場合、出力先制御部238は、当該印刷条件が示すプリンタ名に対応する構成情報をプリンタ情報リスト500より取得し、当該構成情報を出力先プリンタ情報とすればよい。そうすることにより、印刷データに含まれている文字列に応じて出力先を変化させることができる。
図10は、本実施形態のプリンタネットワーク800の第2の実施形態を示す。プリンタネットワーク800は、ネットワーク840に接続されたアプリケーションサーバ810を含む。アプリケーションサーバ810は、ネットワーク840に接続された複数のクライアント812〜818からのアプリケーションサービス要求を専ら処理し、処理結果を要求元のクライアントに返す処理を行う。
クライアント812〜818は、図10の実施形態では、シンクライアントとすることもできるがファットクライアントとすることもでき、特に限定されるものではない。例えば、図10に示したアプリケーションサーバ810は、業務サーバまたはウェブ・サーバとすることもできる。アプリケーションサーバ810は、アプリケーションによる処理が完了した場合、クライアント812から818からの印刷要求を受領する。
アプリケーションサーバ810は、印刷要求を受領すると、アプリケーションサーバの実行結果を、例えば、FTPプロトコル、HTTPプロトコル、ソケットなどのネットワーク通信などを使用してデータ処理サーバ820に送付する。データ処理サーバ820は、本実施形態のデータ処理装置の機能を有する。データ処理サーバ820は、アプリケーションサーバ810から、実行結果および印刷要求を発行したクライアントのユーザのログイン名を受領すると、プリントセッションを生成する。
プリントセッションを生成した時点で、データ処理サーバ820は、アプリケーションサーバ810に対して、ログイン名を検索キーとして当該ログイン名で起動されているクライアントの固有識別値の送付を依頼する。この際の固有識別値は、アプリケーションサーバ810が、ログイン名と対応付けてセッション管理テーブルとして管理している。アプリケーションサーバ810は、ログイン名をキーとして対応付けられた固有識別値を取得すると、取得した固有識別値をデータ処理サーバ820に応答として返す。固有識別値は、図4に示したIPアドレス、MACアドレス、コンピュータ名などを使用することができる。
ネットワーク840には、プリンタサーバ830が接続されていて、第1の実施形態と同様に、接続されたリモートプリンタ812a、814a、816a、818aの制御および管理を実行する。なお、図10で説明する実施形態では、リモートプリンタ812aは、クライアント812からの印刷要求を処理し、クライアント814、816、818が、それぞれリモートプリンタ814a、816a、818aに出力を行うように制御されていて、各クライアントと、リモートプリンタとは、それぞれ拠点820、830、840、850を独立して構成している。図1の場合と同様に、クライアントは、拠点820〜850に複数存在することもでき、リモートプリンタについても各拠点に複数存在していてもよい。
なお、他の実施形態では、ログイン名をアプリケーションサーバ810に送付するのではなく、生成したプリントセッションのセッションIDをアプリケーションサーバに送付し、当該プリントセッションを要求したクライアントまたはログイン名をセッションIDをキーとして検索させ、応用として、IPアドレス、MACアドレス、コンピュータ名などを取得することができる。
図11は、本実施形態のデータ処理サーバ820の機能ブロック900を示す。データ処理サーバ820は、図2に示したデータ処理装置110に比較して、アプリケーション実行部220がアプリケーションサーバ810として分離されている点と、発送先制御部938の機能とを除き、概ね同様な機能を有する。
データ処理サーバ820は、アプリケーションサーバ810から印刷要求および実行結果を受領し、印刷要求に含まれるユーザのログイン名を抽出する。その後、仮想プリンタドライバ930を呼出して、実行結果から中間ファイルとしてページイメージを作成する。中間ファイルの作成終了後、中間ファイルに固有のファイル名およびログイン名を中間ファイル管理部934に格納する。その後、中間ファイル作成部932は、中間ファイルのファイル名およびログイン名などを含むファイル構成情報を、出力データ発送部936に送付する。
出力データ発送部936は、ファイル名およびログイン名を含むファイル構成情報を受領すると、発送先制御部938に対してログイン名を通知する。発送先制御部938は、ログイン名を受領すると、アプリケーションサーバ810の、セッション管理モジュール(SMM)950に対して問い合わせを発行し、当該ログイン名で識別されるクライアント812〜818のIPアドレス、MACアドレス、又はコンピュータ名等の固有識別値、及び印刷データを含む情報を取得する。なお、本実施形態では、この目的のために専用のセッション管理モジュールを実装するのではなく、例えば、FTPプロトコルやSNMPプロトコルを使用して、現在当該セッション名で指定されるジョブ内容を、例えばダウンロードファイルやMIBなどにコピーし、データ処理装置820に対して公開する形式として実装することができる。
その後、発送先制御部938は、取得した固有識別値を参照し、対応付けテーブル400A〜400Cのいずれかまたは複数を使用してリモートプリンタ名を決定し、さらにプリンタ情報リスト500を参照して出力先プリンタ情報を取得する。その後、発送先制御部938は、出力データ発送部936がその時点で管理するデフォルト設定の出力先プリンタ情報を、取得した出力先プリンタ情報で書換え、書換終了を出力データ発送部936に通知する。出力データ発送部936は、当該通知を受領した後、指定するリモートドライバ940〜946のいずれか呼び出して中間ファイルからRAWデータを作成し、PDLコマンドの追加処理を実行させ、スプーラ・ポートモニタを介してプリンタサーバ830に出力データを送付し、指定したリモートプリンタでの出力を可能としている。
図12は、本実施形態のデータ処理サーバ820が実行する発送先制御処理のフローチャートを示す。図12の処理は、ステップS1000でアプリケーションサーバ810からの接続要求を受領した時点から開始し、ステップS1001でアプリケーションサーバからシンクライアントの印刷要求を受領する。ステップS1002で、印刷要求に含まれるログイン名などを使用してクライアントの固有識別値を、アプリケーションサーバに問い合わせて取得し、ステップS1003で、固有識別値に対応付けられたIPアドレスまたはMACアドレスなどの固有識別値を取得する。
その後、ステップS1004で、取得した固有識別値をキーとして、対応付けテーブル400および出力先プリンタリスト500をルックアップして出力先プリンタ情報を取得する。その後、取得した出力先プリンタ情報で、出力データ発送部936の出力先プリンタ情報を書換え、書換えが終了した段階で、出力データ発送部936に通知する。そして、ステップS1005では、指定されたリモートドライバを呼出し、リモートドライバが作成したRAWデータに対してPDLコマンドなどを追加し、スプーラ・ポートモニタを介してプリンタサーバ830に出力データを送付した後、ステップS1006で処理を終了し、以後の印刷要求を待機する。
図13は、本実施形態のプリンタネットワークシステム1100の他の実施形態の機能ブロック図である。図13に示したプリンタネットワークシステム1100ではデータ処理装置1110は、図2および図11に示した仮想プリンタドライバ230、又は930が、仮想プリンタドライバ1140および印刷実行部1150に機能的に分離されていることを除き、図2および図11で説明した実施形態と共通する。このため、仮想プリンタドライバ1140および印刷実行部1150の機能について詳細に説明する。
仮想プリンタドライバ1140は、中間ファイル作成部1142と、中間ファイル管理部1144とを含み、専ら中間ファイルおよびファイル構成情報を作成し、ファイル構成情報を印刷実行部1150に送付する。印刷実行部1150は、出力データ発送部1146と、発送先制御部1148とを含む。出力データ発送部1146は、ファイル構成情報にしたがって中間ファイル管理部1144から中間ファイルを抽出する。発送先制御部1148は、印刷要求が含むクライアントの固有識別値を取得して発送先を選択する。また、データ処理装置1110がアプリケーション実行部220を含まず、他の情報処理装置として独立した構成とされている実施形態では、遠隔的に設置されたアプリケーションサーバが含むセッション管理モジュール(SMM)に個別識別値を問合わせ、個別識別値を取得して発送先を選択する。
その後、発送先制御部1148は、出力データ発送部1146がその時点で管理するデフォルト設定の出力先プリンタ情報を、取得した出力先プリンタ情報で書換え、書換終了を出力データ発送部1146に通知する。出力データ発送部1146は、当該通知を受領した後、指定するリモートドライバ1160〜1166のいずれか呼び出す。呼び出されたリモートドライバは、中間ファイルからRAWデータを作成し、PDLコマンドの追加処理を実行し、スプーラ・ポートモニタを介してプリンタサーバ1170に出力データを送付する。
図13に示した実施形態では、複数のクライアントが仮想プリンタドライバ1140に対して大量の印刷ジョブを送付した場合、仮に特定のリモートドライバがエラーで停止しても、他のジョブは影響を受ける可能性を低減でき、プリンタネットワークシステムのロバスト性を向上させることができる。
以上説明したように、本発明によれば、パーソナルコンピュータやシンクライアントが複数の画像形成装置にアクセスすることが可能な現在のネットワークプリント環境で、ネットワークを介して接続されるクライアントコンピュータが常時同一のプリンタから出力することを可能とし、出力業務ごとの管理を効率化し、さらに情報セキュリティの向上を可能とする、データ処理装置、プリンタネットワークシステム、データ処理方法、プログラムおよび記憶媒体が提供できる。また、本発明によれば、アプリケーションサーバに対するアプリケーションモジュールの追加を行うことなく、最小のコストで、出力先を制御することが可能なデータ処理装置、プリンタネットワークシステム、データ処理方法、プログラムおよび記憶媒体が提供できる。
さらに、本発明によれば、シンクライアントに対して印刷するべきリモートプリンタのプリンタドライバの追加実装を排除して、より柔軟なネットワーク構成に対応しつつ、印刷出力の出力先管理を可能とする、データ処理装置、プリンタネットワークシステム、データ処理方法、プログラムおよび記憶媒体が提供できる。
本実施形態の上記機能は、C、C++、C#、Java(登録商標)などのオブジェクト指向プログラミング言語などで記述された装置実行可能なプログラムにより実現でき、本実施形態のプログラムは、ハードディスク装置、CD−ROM、MO、フレキシブルディスク、EEPROM、EPROMなどの装置可読な記録媒体に格納して頒布することができ、また他装置が可能な形式でネットワークを介して伝送することができる。
これまで本実施形態につき説明してきたが、本発明は、上述した実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用効果を奏する限り、本発明の範囲に含まれるものである。