JP2005332227A - 情報処理装置及び管理方法及びプログラム並びに記憶媒体 - Google Patents
情報処理装置及び管理方法及びプログラム並びに記憶媒体 Download PDFInfo
- Publication number
- JP2005332227A JP2005332227A JP2004150337A JP2004150337A JP2005332227A JP 2005332227 A JP2005332227 A JP 2005332227A JP 2004150337 A JP2004150337 A JP 2004150337A JP 2004150337 A JP2004150337 A JP 2004150337A JP 2005332227 A JP2005332227 A JP 2005332227A
- Authority
- JP
- Japan
- Prior art keywords
- job
- information
- queue
- backup
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Accessory Devices And Overall Control Thereof (AREA)
Abstract
【課題】 負荷分散印刷等で、プリントキューがプリンタデバイスの変更に伴い変更されるような形態で、プリントキューの変更をアプリケーションで追跡するには、アプリケーションの負荷が大きくなるという問題点があった。
【解決手段】 負荷分散印刷でジョブが移動した場合に、ジョブ情報にアプリケーションが印刷を行ったプリンタ名と、そのとき発行された移動前のジョブIDを設定し、印刷完了や印刷ジョブのエラー等のイベントが発生した際に、ジョブ情報内の印刷を行ったプリンタ名を参照し、対応するプリントキューからアプリケーションにイベントを通知する。その際、移動前のジョブIDと、排紙が行われたプリンタ名も通知する。
【選択図】 図20
【解決手段】 負荷分散印刷でジョブが移動した場合に、ジョブ情報にアプリケーションが印刷を行ったプリンタ名と、そのとき発行された移動前のジョブIDを設定し、印刷完了や印刷ジョブのエラー等のイベントが発生した際に、ジョブ情報内の印刷を行ったプリンタ名を参照し、対応するプリントキューからアプリケーションにイベントを通知する。その際、移動前のジョブIDと、排紙が行われたプリンタ名も通知する。
【選択図】 図20
Description
本発明は、複数の印刷装置を効率よく利用するための印刷処理技術に関するものである。
従来から、文書を大量に印刷する必要のある状況において、1つの高速大量印刷装置を使用して大量印刷を行なうのではなく、複数の低価格中速印刷装置に印刷負荷を分散し、それら並列に動作させることにより安価に高速印刷を実現する負荷分散印刷システムが存在する。
また、個別に印刷ジョブの印刷確認を行なう業務システムのようなアプリケーションソフト(以下、単にアプリケーションと称する)は、印刷を行った際に、印刷完了や、印刷ジョブのエラー、印刷ジョブの削除等の確認を行っている。
特開平06−259206号公報
しかしながら、負荷分散印刷等で、プリントキューがプリンタデバイスの変更に伴い変更されるような形態で、プリントキューの変更をアプリケーションで追跡するには、アプリケーションの負荷が大きくなるという問題点があった。
一方、印刷ジョブを投入したプリントデバイスにかかっている負荷が大きい場合に、他の負荷が低いプリントデバイスに印刷ジョブが移動することがあるため、上記アプリケーションが印刷ジョブの行方を確認するためには、単に印刷ジョブを投入したプリントキューを監視するだけでは困難であり、また、印刷される全てのプリントキューを監視しても印刷ジョブを識別するためのジョブIDが、印刷ジョブが移動することによって変化してしまうことがあるため、印刷ジョブを追跡することができないという問題があった。
また、負荷分散印刷システムにおいても、ジョブIDの変化を管理するといった処理が必要となっていた。
本発明は上記の課題を解決するためになされたもので、負荷分散印刷等のプリントキューの変更及び変更に伴う印刷ジョブの再登録が行なわれるような形態で、アプリケーションにとって、効率よく、印刷ジョブの状態の追跡を行なえる仕組みを提供することを目的とする。
特に、印刷確認を行なう業務システムのようなアプリケーションが印刷ジョブを追跡することが可能にすることを目的とする。
上記目的を達成するために、負荷分散印刷でジョブが移動した場合に、ジョブ情報にアプリケーションが印刷を行ったプリンタ名と、そのとき発行された移動前のジョブIDを設定し、印刷完了や印刷ジョブのエラー等のイベントが発生した際に、ジョブ情報内の印刷を行ったプリンタ名を参照し、対応するプリントキューからアプリケーションにイベントを通知する。その際、移動前のジョブIDと、排紙が行われたプリンタ名も通知する。
本発明によれば、印刷確認を行なう業務システムのようなアプリケーションは、印刷ジョブを投入したプリントキューを監視するだけで、分散先の印刷ジョブを把握することが可能となり、印刷完了通知、出力先の通知、印刷ジョブのエラー通知、印刷ジョブの削除、再印刷等の印刷ジョブの操作が容易に可能となる。
さらに、印刷ジョブの監視手段が簡略化されるため、上記アプリケーションおよび、負荷分散印刷システム双方の処理負荷を軽減することが可能となる。
(第1の実施の形態)
以下に、図面を参照して、この発明の好適な実施の形態を例示的に詳しく説明する。ただし、この実施の形態に記載されている構成要素はあくまで例示であり、この発明の範囲をそれらのみに限定する趣旨のものではない。
以下に、図面を参照して、この発明の好適な実施の形態を例示的に詳しく説明する。ただし、この実施の形態に記載されている構成要素はあくまで例示であり、この発明の範囲をそれらのみに限定する趣旨のものではない。
なお、本明細書において、印刷データとはPDL等で記述された画像データであり、印刷ジョブ情報は、印刷データを出力したいプリンタ、印刷データの格納場所、及び印刷方法に関する情報であり、印刷ジョブは、印刷データと印刷ジョブ情報とを組み合わせたものである。
<概要>
本実施形態に係るプリントシステムは、プリントデバイス1台に対して、対応するプリントキューを備える。そして、複数のプリントデバイスに対応するプリントキューの何れか1つが基本プリントキューとして設定され、それ以外のプリントキューはバックアッププリントキューとして設定される。本実施形態では基本プリントキューを単にプリントキューと称し、基本プリントキューに対応するプリントデバイスを負荷分散用プリントデバイスと称する。また、バックアッププリントキューに対応するプリントデバイスをバックアッププリントデバイスと称する。アプリケーションが最初に印刷をする、基本プリントキューに対応するプリンタ名をオリジナルプリンタ名と称する。
本実施形態に係るプリントシステムは、プリントデバイス1台に対して、対応するプリントキューを備える。そして、複数のプリントデバイスに対応するプリントキューの何れか1つが基本プリントキューとして設定され、それ以外のプリントキューはバックアッププリントキューとして設定される。本実施形態では基本プリントキューを単にプリントキューと称し、基本プリントキューに対応するプリントデバイスを負荷分散用プリントデバイスと称する。また、バックアッププリントキューに対応するプリントデバイスをバックアッププリントデバイスと称する。アプリケーションが最初に印刷をする、基本プリントキューに対応するプリンタ名をオリジナルプリンタ名と称する。
アプリケーションが本発明のプリントシステムに対し印刷指示を行なうと、プリントシステムは印刷ジョブ情報を生成し、発行したジョブIDをアプリケーションに通知する。アプリケーションはそのジョブIDを元に印刷ジョブの管理を行なうことが可能となる。
プリンタドライバで生成された印刷ジョブの印刷ジョブ情報は、プリントシステム上でジョブIDを元に上記生成された印刷ジョブ情報と関連付けられ、優先的に基本プリントキューに登録され、同時にその印刷ジョブ情報のバックアップとしてのジョブ情報がバックアッププリントキューに生成される。この印刷ジョブ情報に対応するバックアップジョブ情報のことを、本実施形態では仮想ジョブ情報と称し、これと比較する意味で、バックアップではない通常の印刷ジョブ情報を実ジョブ情報と称する。実ジョブ情報は、印刷データの格納場所を含むが、仮想ジョブは、印刷データとの直接の関連性はなく、その代わりに実ジョブ情報の識別情報(実ジョブID)を含む。これにより、仮想ジョブ情報から実ジョブ情報を導き出すことができる。また、基本プリントキューに登録された実ジョブ情報のジョブIDを、オリジナルジョブIDと称する。
バックアッププリントキューを含む全てのプリントキューは、概念的に実ジョブ情報用のキュー(実ジョブキュー)と仮想ジョブ情報用のキュー(仮想ジョブキュー)に分かれている。ユーザが印刷ジョブの状態を確認するために一般的な方法でプリントキューを参照した場合には、仮想ジョブキューはユーザインタフェースには表示されず、実ジョブキューのみが表示される。従って、ユーザは通常、実ジョブ情報の状態のみを認識可能である。
負荷分散印刷の指示があると、その指示に含まれる印刷ジョブ情報を、プリントキュー内の実ジョブキューに実ジョブ情報として登録し、実ジョブ情報内に、オリジナルプリンタ名、オリジナルジョブIDを設定し、他の全てのバックアッププリントキュー内の仮想ジョブキューには、その実ジョブ情報に対応する仮想ジョブ情報を生成する。そして、プリントキュー内の実ジョブキューにおいて、先に登録された実ジョブ情報が全て対応するプリントデバイスに送信される前に、何れかのバックアッププリントキュー内の実ジョブキューが空になると、そのバックアッププリントキュー内の仮想ジョブキューに登録された仮想ジョブ情報が、対応する実ジョブ情報を引き継いで、実ジョブ情報に切り替わり、実ジョブキューに登録される。その際、オリジナルプリンタ名およびオリジナルジョブIDも設定する。そしてその直後、その実ジョブ情報に含まれる格納場所に格納された印刷データとともに、プリントデバイスに送信される。
印刷ジョブのエラーや印刷完了等のイベントが発生すると、プリントシステムでは印刷ジョブ情報内のオリジナルプリンタ名を参照し、オリジナルプリンタ名に対応する基本プリントキューからアプリケーションにイベントを通知する。また、イベントにはオリジナルジョブIDおよび排紙先プリンタ名を含む。
また、上記方法によってアプリケーションは自身が印刷指示をしたプリントキューを監視するだけで、印刷ジョブに起こったイベントの通知を受けることが可能となり、イベントに含まれるオリジナルジョブIDを参照することで、容易に印刷ジョブの管理を行なうことが可能となる。
<システム構成>
図1は、本発明の実施形態に係るプリントシステムの全体構成を示すブロック図である。本プリントシステムは、情報処理装置としてのプリントサーバ101と、印刷装置(プリントデバイス)としてのネットワークプリンタ102〜105と、クライアント(コンピュータ)107、108とを含み、これらが互いに接続されていることにより、全体としてネットワークを構成している。
図1は、本発明の実施形態に係るプリントシステムの全体構成を示すブロック図である。本プリントシステムは、情報処理装置としてのプリントサーバ101と、印刷装置(プリントデバイス)としてのネットワークプリンタ102〜105と、クライアント(コンピュータ)107、108とを含み、これらが互いに接続されていることにより、全体としてネットワークを構成している。
プリントサーバ101には、印刷制御プログラムが実行可能に格納されており、本プリントシステムに含まれるネットワークプリンタ102〜105を管理する機能のほか、ネットワークで使用されるファイルを蓄積したり、ネットワークの使用状態を監視したりする機能を有する。具体的には、プリントサーバ101は、自身により印刷ジョブを作成し、ネットワークプリンタ102〜105に転送する機能と、クライアント107で生成された印刷データを受信し、その印刷データを含む印刷ジョブを生成してスケジューリング処理によりネットワークプリンタ102〜105に転送する機能と、クライアント107、108で作成され、そこにスプールされている印刷ジョブに対してスケジューリング処理を行い、クライアント107、108からネットワークプリンタ102〜105に直接印刷ジョブを転送するよう指示する機能とを有する。プリントサーバ101は、必ずしもプリンタの管理に特化したコンピュータである必要はなく、プリント管理機能を備えた汎用のコンピュータであればよく、他のコンピュータとの関係でクライアントとして機能してもよい。
ネットワークプリンタ102〜105は、プリントサーバ101やクライアント107から、印刷データを含む印刷ジョブを受信し、受信した印刷ジョブを解析して印刷する物理的な装置としてのプリントデバイスである。ネットワークプリンタ102〜105としては、電子写真方式を採用したレーザービームプリンタやインクジェット方式を採用したインクジェットプリンタや熱転写方式を利用したプリンタ等、あらゆる方式の印刷装置を採用することができる。
クライアント107、108は、プリントサーバ101との関係でクライアントとして機能するコンピュータである。
なお、本プリントシステムに含まれる装置間の通信は、イーサネット(登録商標)ケーブルなどを利用した有線通信でもよいし、電波や光などを利用した無線通信でもよい。
<プリントサーバ及びクライアントの構成>
図2は、図1に示したプリントサーバ101及びクライアント107、108のハードウェア構成を説明するブロック図である。プリントサーバ101及びクライアント107、108は、ハードウェア構成上、特別な差異はないため、ここでは代表的に、プリントサーバ101の構成について説明する。
図2は、図1に示したプリントサーバ101及びクライアント107、108のハードウェア構成を説明するブロック図である。プリントサーバ101及びクライアント107、108は、ハードウェア構成上、特別な差異はないため、ここでは代表的に、プリントサーバ101の構成について説明する。
図2において、CPU200は、HD(ハードディスク)205に格納されているアプリケーションプログラム、プリンタドライバプログラム、OSや印刷制御プログラム等を読出して実行し、RAM202にプログラムの実行に必要な情報、ファイル等を一時的に格納制御を行なうための制御手段である。
ROM201は、基本I/Oプログラム等のプログラム、文書処理の際に使用するフォントデータ、テンプレート用データ等の各種データを記憶する記憶手段である。RAM202は、CPU200の主メモリやワークエリア等として機能する一時記憶手段である。
FD(フロッピー(登録商標)ディスク)ドライブ203は、後述する図5に示すように記憶媒体としてのFD204に記憶されたプログラム等を本コンピュータシステムにロードするための記憶媒体読み込み手段である。なお、プリントサーバ101及びクライアント107、108は、FDドライブ203に代えて、或いはFDドライブ203と共に、他の記憶媒体読込手段を備えてもよい。他の記憶媒体としては、CD−ROM、CD−R、CD−RW、PCカード、DVD、ICメモリカード、MO、メモリスティック等、コンピュータが読み取り可能なあらゆる記憶媒体が挙げられる。
HD205は、大容量メモリとして機能する外部記憶手段であり、アプリケーションプログラム、プリンタドライバプログラム、OS、印刷制御プログラム、及び関係プログラム等を格納している。さらに、スプール手段であるスプーラはここに確保される。なお、プリントサーバ101ではスプール手段としてサーバスプーラが確保され、クライアントではスプール手段としてクライアントスプーラが確保される。
キーボード206は、ユーザがプリントサーバ101やクライアント107、108に対して、デバイスの制御コマンドの命令等を入力指示するための指示入力手段である。
ディスプレイ207は、キーボード206から入力したコマンドや、プリンタ102〜105の状態等を表示する表示手段である。尚、実際にはプリントサーバ101及びクライアント107、108上で稼動するオペレーティングシステムを介して表示手段に表示指示がなされ、このオペレーティングシステムに本印刷処理プログラムによりリソースファイルの表示指示が行われ、後述する各表示が実現される。208はシステムバスであり、プリントサーバ101またはクライアント107,108としてのコンピュータ内のデータの流れを司るものである。
またインタフェース209は、入出力手段であり、プリントサーバ101またはクライアント107,108は、インタフェース209を介してネットワーク上の他の装置とのデータのやり取りを行なう。
<メモリマップ等の説明>
図3は、図2に示したRAM202のメモリマップの一例を示す図であり、印刷制御プログラムが、RAM202にロードされ実行可能となった状態のメモリマップである。 図5は、図2に示したFDドライブ203に対して挿入されるFD204との関係を示す図であり、図2と同一のものには同一の符号を付してある。同図において、FD204には、印刷制御プログラム及び関係データを格納している。
図3は、図2に示したRAM202のメモリマップの一例を示す図であり、印刷制御プログラムが、RAM202にロードされ実行可能となった状態のメモリマップである。 図5は、図2に示したFDドライブ203に対して挿入されるFD204との関係を示す図であり、図2と同一のものには同一の符号を付してある。同図において、FD204には、印刷制御プログラム及び関係データを格納している。
印刷制御プログラム及び関係データは、予めFD204からHD205にインストールされて、HD205からRAM202にロードするようにしてもよいしFD204から直接RAM202にロードして実行させてもよい。さらに、印刷制御プログラムをROM201に記憶しておき、これをメモリマップの一部となすように構成し、直接CPU200で実行することも可能である。また、以上の各装置と同等の機能を実現するソフトウェアをもって、ハードウェア装置の代替として構成することもできる。
印刷制御プログラムは、クライアントにおいては、印刷ジョブの印刷先の変更を指示したり、印刷順序を変更したりする指示をするための制御を行なう。一方、プリントサーバにおいては、印刷ジョブの順序制御を行ったり、印刷ジョブの印刷終了や印刷先変更要求などを通知したりする。また、印刷制御プログラムは、クライアントにインストールされるモジュールと、プリントサーバにインストールされるモジュールとを別々に含んでいてもよいし、ひとつの印刷制御プログラムが、実行される環境によりクライアント用として機能したり、プリントサーバ用として機能したりするようにしてもよい。あるいは、一台のコンピュータに、クライアント用の機能を持つモジュールとプリントサーバ用として機能するモジュールとをともにインストールし、同時にあるいは時分割で、擬似的に平行動作させる構成も可能である。
301は基本I/Oプログラムを記憶するための領域である。基本I/Oプログラムは、装置(プリントサーバ101またはクライアント107,108)の電源がONされたときに、HD205からOSがRAM202に読み込まれ、OSの動作を開始させるIPL(イニシャルプログラムローデイング)機能などを有しているプログラムである。
302はOS(オペレーティングシステム)を記憶する領域であり、303は印刷制御プログラムを記憶する領域である。304は、関係データを記憶する領域である。305はワークエリアで、CPU200が各種のプログラムを実行するための領域である。
図4は、図2に示したFD204のメモリマップの一例を示す図である。図4において、400はFD204のデータ内容であり、データの情報を示すボリューム情報401と、ディレクトリ情報402と、印刷制御プログラム403と、その関係データ404を含んでいる。
<プリントシステムのソフトウェア構成>
次に、本プリントシステムのソフトウェア構成について説明する。図6Aは、サーバ101或いはクライアント107,108におけるソフトウェア構成の一例を示す図である。それぞれの構成間の矢印は、アプリケーションから発行された描画コマンドを含む印刷ジョブが、どのように処理されるかを示したものである。また、各ブロックで示されたソフトウェア構成は、図2のCPU200によって実行され、所望の機能を実現する。
次に、本プリントシステムのソフトウェア構成について説明する。図6Aは、サーバ101或いはクライアント107,108におけるソフトウェア構成の一例を示す図である。それぞれの構成間の矢印は、アプリケーションから発行された描画コマンドを含む印刷ジョブが、どのように処理されるかを示したものである。また、各ブロックで示されたソフトウェア構成は、図2のCPU200によって実行され、所望の機能を実現する。
通常、Microsoft Word(登録商標)などの一般的なアプリケーションプログラム601は印刷の指示を受け付けると、一連の描画コマンドをOSを介して生成する。OSを介して生成された描画コマンドを受け取ったPDLドライバ602は、一連の描画コマンドに基づいてネットワークプリンタ102〜104で解釈可能なPDLファイルを含む印刷ジョブを生成する。なお、以下の説明ではPDLドライバを例に説明を行なうが、これに限定されるものではなく、例えば、BDL(Band description Language)や、圧縮ビットマップを作成するプリンタドライバ、或いは、アプリケーション及びOSによりプリンタドライバを介さずに印刷データを生成する形態などにも適用可能であることはいうまでもない。
PDLドライバ602は、プリントデバイスへ印刷ジョブを送信するためにOSが用意したジョブ制御ポートモニタ608ではなく、ジョブ制御ポートモニタ604に送信すべく、生成した印刷ジョブをスプーラ603に渡す。
ここではOSをウィンドウズ(登録商標)と仮定しているのでスプーラ603はウィンドウズ(登録商標)スプーラである。ただし、本発明を適用するコンピュータのOSはWindows(登録商標)に限定されるものではなく、描画命令を備えるものであれば他のOSも適用可能であることは言うまでもない。
スプーラ603は、ユーザがユーザインタフェースを介して選択し指示したポートモニタ604、608に印刷ジョブを渡して、ネットワークプリンタ102〜104等のプリントデバイスに送信させる手順をとる(矢印a)。ここでは、ユーザはあらかじめ負荷分散印刷用のポートモニタ604(以降、ジョブ制御ポートモニタと略記)を指定して印刷を指示したものとして説明を進める。
また、プリンタドライバインタフェースを介して設定された用紙サイズ、ステープル指示等の印刷設定情報も、ジョブ制御ポートモニタ604に送信される。
ジョブ制御ポートモニタ604は、印刷ジョブをそのままプリントデバイス102〜104に送信するのではなく、負荷分散印刷用のプリントサービス605(以降、ジョブ制御プリントサービスと称する)に送信する(矢印b)。
ジョブ制御プリントサービス605は、転送された印刷ジョブ及びデバイスの状態を管理する機能を備える。特にプリントデバイスとデータ転送元とがピアツーピアで接続され直接印刷ジョブをプリントデバイスに投入する場合には、プリントデバイスから通知されるデバイス状態やジョブの状態などの情報を管理したり、また、プリントデバイスに対して所定の命令をする機能も備える。これは、複数のネットワークプリンタ102〜104のデバイス情報やジョブ情報を管理する機能に相当する。そして、印刷ジョブの順序管理機能(負荷分散印刷機能)に基づき順番が到来した印刷ジョブをネットワークプリンタ102〜104に転送する(矢印c、d)。
ここで、ジョブ制御プリントサービス605が実現する印刷ジョブの順序管理機能について詳しく説明する。この順序管理機能には、複数のプリントデバイスに対応する複数のプリントキューのうち、負荷分散印刷用として設定されたプリントデバイスに対応するプリントキュー以外のプリントキューをバックアッププリントキューとして設定するプリントキュー設定機能と、
ジョブ制御ポートモニタ604から転送された印刷ジョブ情報を負荷分散印刷用プリントキュー(基本プリントキューとも呼ぶ)に登録する印刷ジョブ登録機能と、
負荷分散印刷用プリントキューに登録された印刷ジョブ情報に対応するバックアップジョブ情報を生成して、バックアッププリントキューに登録するバックアップジョブ登録機能と、
負荷分散印刷用プリントキュー及びバックアッププリントキューのそれぞれを管理し、印刷ジョブ情報が登録されているプリントキューにおいては、優先的に印刷ジョブ情報を対応する印刷装置に送信し、印刷ジョブ情報が登録されておらず、バックアップジョブ情報のみが登録されているプリントキューでは、そのバックアップジョブ情報を印刷ジョブ情報に変更して対応する印刷装置に送信するジョブ制御機能と、
負荷分散印刷用プリントキュー及びバックアッププリントキューにおいて、登録されている印刷ジョブ情報及びそれに対応するバックアップジョブ情報の何れか1つが印刷装置に送信された場合には、送信の対象とならなかった印刷ジョブ情報またはそれに対応するバックアップジョブ情報を全てのプリントキューから削除する削除機能と、
を含む。
ジョブ制御ポートモニタ604から転送された印刷ジョブ情報を負荷分散印刷用プリントキュー(基本プリントキューとも呼ぶ)に登録する印刷ジョブ登録機能と、
負荷分散印刷用プリントキューに登録された印刷ジョブ情報に対応するバックアップジョブ情報を生成して、バックアッププリントキューに登録するバックアップジョブ登録機能と、
負荷分散印刷用プリントキュー及びバックアッププリントキューのそれぞれを管理し、印刷ジョブ情報が登録されているプリントキューにおいては、優先的に印刷ジョブ情報を対応する印刷装置に送信し、印刷ジョブ情報が登録されておらず、バックアップジョブ情報のみが登録されているプリントキューでは、そのバックアップジョブ情報を印刷ジョブ情報に変更して対応する印刷装置に送信するジョブ制御機能と、
負荷分散印刷用プリントキュー及びバックアッププリントキューにおいて、登録されている印刷ジョブ情報及びそれに対応するバックアップジョブ情報の何れか1つが印刷装置に送信された場合には、送信の対象とならなかった印刷ジョブ情報またはそれに対応するバックアップジョブ情報を全てのプリントキューから削除する削除機能と、
を含む。
プリントマネージャ609は、ユーザが、ジョブ制御プリントサービス605内部でプリントジョブがどのような状態にあるかを調べたり、プリントジョブを操作したりするためのユーザインタフェースを提供するプログラムである。プリントマネージャ609は、ジョブ制御プリントサービス605のソフトウェアのインタフェース(API:Application Program Interface)を介して、ジョブ制御プリントサービス605と情報・指示をやり取りしている。
そして、主に、ジョブ制御プリントサービス605が管理するネットワークプリンタ102〜104の状態情報をイベントとして取得する機能を備える。イベントの通知の種別としては、トナー残量が少なくなった警告、クライアントとデバイスとの通信障害、メモリ不足、排紙トレイ満載などのエラー/警告情報の通知や、エラー状態から正常状態に復帰した正常情報の通知などが想定される。ここでのジョブ制御プリントサービス605はネットワークを介して通信可能な各デバイス(印刷装置)の印刷実行中、電力制御状態、障害情報(紙ジャム)等のステータスを監視する機能を備える。
更に詳細な処理としては、プリントマネージャ609がジョブ制御プリントサービス605に対してデバイスを指定したイベントを発行し、ジョブ制御プリントサービス605は発行されたイベントに基づくデバイスのステータスを監視して、監視に基づく結果をプリントマネージャ609に通知する。
マネージメントコンソール610は、ソフトウェアがアクセスするためのAPIを介して、ジョブ制御プリントサービス605と情報・指示をやり取りすることで、サーバ101またはクライアント107,108の全体を監視することができる。
また、ジョブ制御プリントサービス605は、デバイス情報コントロールモジュール606を用いて各ネットワークプリンタ102〜104と通信を行い、各プリンタ内の印刷ジョブや動作状態に関する情報を入手したりする機能を明示したものでありジョブ制御プリントサービス605に含めるように考えても良い。
一方、負荷分散印刷を行なわず、一般的なオペレーティングシステムに標準で搭載されるようなプリント機能を利用する場合においては、PDLプリンタドライバ602で生成されたPDLファイルはスプーラ603からジョブ制御ポートモニタ608を経て(矢印e)、ネットワークプリンタ102〜104に転送される(矢印f)。
次に、図6Aを用いて説明したシステムの変形例について、図6Bを参照して説明する。図6Bは、負荷分散印刷に必要な機能を、クライアント107,108とサーバ101とが分担し、それぞれが協力し合って実現する場合について表わしたものである。具体的には、クライアント107、108で作成し、サーバ101側のプリントキューに登録された印刷ジョブ情報に対し、プリントサーバ101がスケジューリング行なう場合のデータの流れを示している。なお、図6Aと同じ構成は同じ符号で表わしている。
図6Bのシステムでは、クライアント107,108は、マネージメントコンソール610やデバイス情報コントロールモジュール606をもつ必要はなく、サーバ101がそれらを有することにより、一括してプリントデバイスのデバイス情報を管理する。また、サーバ101は、ジョブ制御サーバ612を有し、デバイス情報コントロールモジュール606を用いて各プリントデバイス102〜104と通信を行い、各プリンタ内の印刷ジョブや動作状態に関する情報を入手したり、操作を行ったりする。入手した情報は、ジョブ制御プリントサービス605に渡し共有すことができる。
また、ジョブ制御サーバ612は、個々のクライアント107、108上のジョブ制御プリントサービス605がプリントデバイス102〜104に印刷ジョブを送信するタイミングを集中制御(スケジューリング)する。ジョブ制御サーバ612は基本的にジョブ制御プリントサービス605と同様の機能を備えており、論理的にジョブ制御プリントサービス605とジョブ情報を共有している。ここでジョブ情報とは、印刷対象となるドキュメント名や、印刷ジョブのIDや、印刷ジョブが投入されたプリンタ名など、印刷ジョブの各種属性情報である。
つまり、図6Aで説明した、印刷ジョブの順序管理機能(負荷分散印刷制御機能)は図6Bではサーバ101のみに設けられていてもよく、クライアント107,108で生成された一旦保持される印刷ジョブを、どういう順序でどのプリントデバイスへ投入すべきかが、ジョブ制御サーバ612からジョブ制御プリントサービス605に通知される。ジョブ制御プリントサービス605ではジョブ制御サーバ612からの指示に従い、印刷ジョブをネットワークプリンタ102〜104に対して転送する。
なお、プリントシステムのソフトウェア構成は、図6A、図6Bに限定されるものではなく、その他の様々な構成でも本発明を実現可能である。例えば、クライアントが、アプリケーション601からジョブ制御サポートモニタ604までの構成のみを備え、ジョブ制御プリントサービス605、プリントマネージャ609、マネージメントコンソール610、デバイス情報コントロールモジュール606をサーバ101が備えていてもよい。
<印刷ジョブの流れ>
次に、図7を用いてアプリケーション601からプリントデバイスまでの印刷ジョブの流れについて説明する。ここで、図6Aと同じソフトウェア構成について同じ参照番号を付与しており、その機能については詳説しない。
次に、図7を用いてアプリケーション601からプリントデバイスまでの印刷ジョブの流れについて説明する。ここで、図6Aと同じソフトウェア構成について同じ参照番号を付与しており、その機能については詳説しない。
図7に示すように、概念的には、PDLドライバ602、スプーラ603、ジョブ制御ポートモニタ604は、プリントデバイス102〜104ごとに用意されている。OSがウィンドウズ(登録商標)の場合には、これらをまとめてウィンドウズ(登録商標)プリントシステム700と称する場合もある。
ジョブ制御プリントサービス605には、プリントデバイス102〜104に対応する数のプリントキュー701、701A、701B及び出力ポート702、702A、702Bが含まれている。この出力ポートには対応する印刷装置のIPアドレス又は名前解決(DNS:Domain Name System)で使用されるネームが関連付けられている。そして、このIPアドレス又はネームに基づきジョブの送信先が特定されジョブの送信(出力)が行なわれる。プリントキューは、ある所定のジョブが投入された1つの基本プリントキュー701と複数のバックアッププリントキュー701A、701Bとに分類されている。なお、本実施形態では、物理的な装置であるプリントデバイス単位にプリントキューを設定することとしているが、本願発明はこれに限定されるものではなく、論理プリンタ単位にプリントキューを設定してもよい。つまり、複数のプリントデバイスに対して1つの論理プリンタを設定して、その論理プリンタについて1つのプリントキューを設定しても良いし、更には、1つのプリントデバイスに対して複数の論理プリンタを設定して、その複数の論理プリンタのそれぞれに対してプリントキューを設定してもよい。
負荷分散印刷を行なう場合、アプリケーション601は、負荷分散印刷の設定を持つプリンタを指定して印刷指示を発行する。この印刷指示に基づいてPDLドライバ602によって生成された印刷ジョブがジョブ制御ポートモニタ604からジョブ制御プリントサービス605に渡されると、その印刷ジョブ情報は、まずプリントキュー701に保持され、同時に、その印刷ジョブ情報に対応する仮想ジョブ情報がバックアッププリントキュー701A、701Bに生成される。そして、それらのジョブのうち何れか1つがプリントデバイス102〜104に送られる。バックアッププリントキューに対応するプリントデバイスは、バックアッププリンタと呼ばれ、ユーザが指定したプリントデバイスが混雑している場合などに利用される予備的なプリントデバイスを指す。
<各種の情報の内容>
I.プリントキューの実ジョブキューと仮想ジョブキュー
図8は、プリントキュー701内の実ジョブキュー801と仮想ジョブキュー802を示す図である。実ジョブキュー801と仮想ジョブキュー802は、負荷分散印刷処理を行なう場合に使用する、印刷ジョブ情報を管理するキューである。そして、各論理プリンタ毎に図8に示されるような実ジョブキューと仮想ジョブキューとから構成されるプリントキューが対応付けられることとなる。また、1つの印刷装置に対して論理プリンタが1つの場合には、図8に示されるプリントキューは印刷装置に対応するプリントキューに相当することとなる。そしてこのプリントキューがあると時は基本プリントキューとなり、ある時はバックアッププリントキューとして機能する。
I.プリントキューの実ジョブキューと仮想ジョブキュー
図8は、プリントキュー701内の実ジョブキュー801と仮想ジョブキュー802を示す図である。実ジョブキュー801と仮想ジョブキュー802は、負荷分散印刷処理を行なう場合に使用する、印刷ジョブ情報を管理するキューである。そして、各論理プリンタ毎に図8に示されるような実ジョブキューと仮想ジョブキューとから構成されるプリントキューが対応付けられることとなる。また、1つの印刷装置に対して論理プリンタが1つの場合には、図8に示されるプリントキューは印刷装置に対応するプリントキューに相当することとなる。そしてこのプリントキューがあると時は基本プリントキューとなり、ある時はバックアッププリントキューとして機能する。
上述したように、実ジョブ情報は、印刷データそのものは含まないが、スプールファイル名などの印刷データへのリンクを含む印刷ジョブ情報で、実ジョブキューで管理される。また、仮想ジョブ情報は実ジョブ情報へのリンク(実ジョブ情報のID)を含み、印刷データはもちろんのこと、印刷データへのリンクも含まない。そして、仮想ジョブ情報は、仮想ジョブキューで管理される。
II.プリントキュー情報
図9は、プリントキュー701で受け付けた印刷ジョブの動作を決めるプリントキュー情報を示す図である。ここで、プリントキュー情報の設定内容の、プリンタ名、プリンタドライバ名、プリントタイプ、及びバックアッププリンタ名について説明する。なお、図9の情報は図6Aのようなシステム形態では、ジョブ制御プリントサービス605において保持され、図6Bのようなシステム形態ではジョブ制御プリントサービス605及びジョブ制御サーバ612の双方において共有して保持されるものとする。
図9は、プリントキュー701で受け付けた印刷ジョブの動作を決めるプリントキュー情報を示す図である。ここで、プリントキュー情報の設定内容の、プリンタ名、プリンタドライバ名、プリントタイプ、及びバックアッププリンタ名について説明する。なお、図9の情報は図6Aのようなシステム形態では、ジョブ制御プリントサービス605において保持され、図6Bのようなシステム形態ではジョブ制御プリントサービス605及びジョブ制御サーバ612の双方において共有して保持されるものとする。
プリンタ名は、Windows(登録商標)のプリンタオブジェクトの名前を示しており、プリンタオブジェクト毎に異なる名前であり、プリンタオブジェクトを識別することができる。このプリンタ名を介して本印刷制御プログラムとOSとが対話できる。プリンタドライバ名は、プリンタオブジェクトに設定されているプリンタドライバの名前である。プリントタイプは、プリントキューで受け付けた印刷ジョブの動作を決定する設定である。バックアッププリンタ名は、負荷分散印刷処理などの場合に使用される負荷分散印刷するためのプリンタの名前である。プリントタイプに負荷分散印刷の設定がなされていて、プリントキュー701で印刷ジョブを受け付けると、後述する方式によって受け付けたプリントキュー(負荷分散プリントキューとする)とプリントキュー情報に設定されている複数のバックアッププリンタの中から、先に転送可能なプリンタに印刷ジョブを移動し、複数のプリンタの中で印刷の負荷を分散する処理を行なう。
III.実ジョブ情報
図10は、プリントキュー701の実ジョブキューに登録される印刷ジョブ情報を示す図である。図10の情報は図9と同様に図6Aのようなシステム形態では、ジョブ制御プリントサービス605において保持され、図6Bのようなシステム形態ではジョブ制御プリントサービス605及びジョブ制御サーバ612の双方において共有して保持される。
図10は、プリントキュー701の実ジョブキューに登録される印刷ジョブ情報を示す図である。図10の情報は図9と同様に図6Aのようなシステム形態では、ジョブ制御プリントサービス605において保持され、図6Bのようなシステム形態ではジョブ制御プリントサービス605及びジョブ制御サーバ612の双方において共有して保持される。
実ジョブは、所定の記憶領域にスプールされた印刷データを含む印刷ジョブであり、出力ポートに送られて実際に転送処理が行われプリンタで出力される印刷ジョブである。実ジョブ情報は、実ジョブに含まれる各種の設定情報であり、プリントキュー701に登録される。
以下、実ジョブ情報の設定内容(ドキュメント名、ジョブID、プリントタイプ、仮想ジョブID、オリジナルジョブID、オリジナルプリンタ名、スプールファイル名)について説明する。
ドキュメント名はアプリケーション701が印刷するジョブ(印刷データファイル)の名前である。
ジョブIDは実ジョブ情報に割り振られる任意のIDでジョブを識別するためのIDである。プリントキュー701が印刷ジョブを受け付けるとそのジョブにジョブIDを割り当てる。
プリントタイプは、図9と同様であり実ジョブの動作を決定する情報で、負荷分散印刷などの情報が設定される。プリントキュー701が実ジョブ情報を受け付けると、プリントタイプから情報を取得し実ジョブ情報のプリントタイプに設定する。
仮想ジョブIDは、負荷分散印刷処理を行なう場合に作成される仮想ジョブ情報のIDを設定する。複数の仮想ジョブ情報が発生する場合には、仮想ジョブIDは複数設定される。
オリジナルジョブIDは、基本プリントキューに投入された最初の実ジョブのIDを指しており、実ジョブが生成されるとき、仮想ジョブが実ジョブに変化するときに設定される。
オリジナルプリンタ名は、基本プリントキューに対応するプリンタの名前であり、最初にアプリケーションから印刷指示が投入されるプリンタの名前である。尚、オリジナルプリンタ名としては、オリジナルのプリントキューに対応する識別情報であれば、名称に限らず様々なものが適用できる。また、プリンタキューとプリンタ名とが対応するので、プリンタ識別情報とはプリンタキュー識別情報と定義することもできる。
スプールファイル名は、アプリケーションデータに基づき作成された印刷データからなるスプールファイルの名前であり、所定の記憶部に記憶されたスプールファイルを特定するために利用される。スプールファイル名の代わりにスプールファイルIDを採用するようにしても良い。実ジョブ情報に基づくジョブ出力が対応する印刷装置に対して行なわれる場合に、前記実ジョブ情報に関連付けられたスプールファイル名に基づき特定される印刷データが印刷装置に対して出力されるべく出力ポートに書きこまれる
IV.仮想ジョブ情報
図11は、プリントキュー701の仮想ジョブキューに登録される仮想ジョブ情報を示す図である。図11の情報は図9、10と同様に図6Aのようなシステム形態では、ジョブ制御プリントサービス605において保持され、図6Bのようなシステム形態ではジョブ制御プリントサービス605及びジョブ制御サーバ612の双方において共有して保持される。
IV.仮想ジョブ情報
図11は、プリントキュー701の仮想ジョブキューに登録される仮想ジョブ情報を示す図である。図11の情報は図9、10と同様に図6Aのようなシステム形態では、ジョブ制御プリントサービス605において保持され、図6Bのようなシステム形態ではジョブ制御プリントサービス605及びジョブ制御サーバ612の双方において共有して保持される。
仮想ジョブ情報は、負荷分散の実ジョブ情報と関連する情報で、負荷分散印刷処理でスケジュール管理するために必要な情報である。
以下、仮想ジョブ情報の設定内容のドキュメント名、ジョブID、プリントタイプ、実ジョブIDについて説明する。
ドキュメント名は、仮想ジョブ情報に対応する実ジョブ情報の印刷対象ドキュメント名であり、仮想ジョブ情報が作られるときに、実ジョブ情報からコピーされる。
ジョブIDは仮想ジョブ情報を識別するためのIDで、仮想ジョブ情報が作成されるときに設定される情報である。
プリントタイプは、仮想ジョブ情報に対応する実ジョブのプリントタイプであり、仮想ジョブが作成されるときに、実ジョブ情報のプリントタイプからコピーされる。
実ジョブIDは、仮想ジョブ情報と関連する実ジョブ情報のIDであり、仮想ジョブ情報が作成されるときに設定される情報である。
尚、図11中には、図10において説明した印刷データを特定するためのスプールファイル名が含まれていないが、事前に仮想ジョブ情報にスプールファイル名を含めるようにして、後述する実ジョブ情報の変更の際に、この事前に関連付けられたスプールファイル名を用いるようにしても良い。
<負荷分散処理>
本実施形態の負荷分散印刷処理では、アプリケーションが印刷指示を行ったプリンタの負荷分散印刷設定に従って、負荷分散プリンタのプリントキューに実ジョブ情報を、バックアッププリンタのバックアッププリントキューに仮想ジョブを生成し、その中で、転送開始指示(スケジュールアップ)の早い印刷ジョブがプリントデバイスに転送される。
本実施形態の負荷分散印刷処理では、アプリケーションが印刷指示を行ったプリンタの負荷分散印刷設定に従って、負荷分散プリンタのプリントキューに実ジョブ情報を、バックアッププリンタのバックアッププリントキューに仮想ジョブを生成し、その中で、転送開始指示(スケジュールアップ)の早い印刷ジョブがプリントデバイスに転送される。
図19は、本実施形態の負荷分散処理の、アプリケーション601の印刷指示からジョブ登録処理までのジョブ制御プリントサービス605における処理を示すフローチャートである。図21、図22の参照を示すが、各図の説明は後述する。
ステップS1901において、アプリケーション601が本実施形態の負荷分散印刷システムにおいて基本プリントキュー(ここでは、プリントキュー701)に印刷する場合、通常の印刷とは違い、アプリケーション601はWin32API(図22、2201)を通じてGDI(図22、2202)に印刷指示するのではなく、本発明のアプリケーションインタフェースであるAPIを通してジョブ制御プリントサービス605にドキュメント名 “ABC”の印刷指示を行なうことで、ジョブ制御プリントサービス605が印刷指示を受け付ける(図21シーケンス2104、図22矢印b)。
ステップS1902では、印刷指示を受け付けたジョブ制御プリントサービス605は該印刷指示に対応する印刷ジョブ情報(図10)を生成し、ジョブID(ここではこのジョブ情報のジョブIDを「7」とする)を発行する。この段階ではジョブ情報にはジョブIDのみ設定されている。
ステップS1903において、ドキュメント名(ここでは“ABC”)にジョブID(ここでは「7」)を付加し、APIを通してGDI2202に印刷開始を指示する(図21シーケンス2105、図22矢印c)。このとき、使用するドキュメント名としては、元のドキュメント名とジョブIDが判別できるものであれば形式は問わない。
ジョブ制御プリントサービス605はステップS1904において、アプリケーション601に発行したジョブID(ここでは「7」)を返す(図21シーケンス2107、図22矢印e)。
これらの処理によって、本発明の負荷分散印刷システムが管理するジョブIDをアプリケーション601に通知することが可能となる。
その後、アプリケーション601では通常の印刷処理と同じようにGDI2202に対して印刷データの転送開始、印刷データの転送、印刷データの転送終了を繰り返し行い(図21シーケンス2108、2109…、図22矢印f、g…)、すべての印刷が完了すると、ジョブ制御プリントサービス605に対して印刷終了を指示する。
ステップ1950において、ジョブ制御プリントサービス605はアプリケーション601から印刷終了を受け取る(図21シーケンス2112、図22矢印l)。そしてステップS1906において、GDIに対して印刷終了を指示する(図21シーケンス2113、図22矢印m)。
これでアプリケーション601の印刷処理は終了となる。
図12は、本実施形態の負荷分散印刷処理の印刷データ受付から仮想ジョブ作成までの処理を示すフローチャートである。
図13は、図12のフローチャートの処理を説明した図である。図13では、プリントキュー701の実ジョブキュー801にジョブIDが「1」の実ジョブ情報、別のプリントデバイスに対応するバックアッププリンタ701Aに実ジョブキュー801AにジョブIDが「5」の実ジョブ情報があり、それぞれの実ジョブ情報に対応する印刷データを、プリントデバイスへ転送中であるという前提で説明している。尚、このジョブID「5」の実ジョブ情報は、例えば他のクライアントから発行されたジョブがバックアッププリントキュー701Aに対応するプリントキューを基本プリントキューとして印刷指示を行った場合に登録されるものに対応する。その場合には、プリントキュー701および701Bが夫々バックアッププリントキューとされ夫々のバックアッププリントキューにおける仮想ジョブキューに仮想ジョブ情報が登録される。
アプリケーション601からの印刷が終了すると、ステップS1201において、ジョブ制御プリントサービス605は、スプーラ603、ジョブ制御ポートモニタ604経由で印刷ジョブを受け付ける(図22矢印p)。このとき、印刷ジョブのドキュメント名とは“ABC#JID7”である。
ジョブ制御プリントサービス605では、ステップS1202において、受け付けた印刷ジョブのドキュメント名に付加されているジョブID(ここでは「7」)を基にジョブ制御プリントサービス605が管理するジョブ情報を検索する。
ステップS1203において、ジョブ制御プリントサービス605は、検索したジョブID「7」のジョブ情報と受け付けた印刷ジョブを関連付け、印刷ジョブ情報のプリントキューに印刷ジョブを登録し、ステップS1204において、プリントキュー701は印刷ジョブを受け付ける。このとき、ジョブ制御ポートモニタ604から得たスプールファイル名を印刷ジョブ情報に設定する。
ステップS1205において、プリントキュー情報から、プリンタ名、プリントタイプを得て印刷ジョブ情報に設定し、プリントタイプを参照し、負荷分散印刷であるかを確認する。負荷分散印刷であれば、ステップS1206に処理を移行する。負荷分散印刷でなければ、ステップS1214に進む。ステップS1206では、複数のプリントキューのうちのジョブが投入されたプリンタのプリントキューが基本プリントキューとして設定され、この基本プリントキューの実ジョブキューに受け付けた印刷ジョブの実ジョブ情報を作成し、各情報を設定する。
ここで、ドキュメント名はジョブ制御ポートモニタからジョブを受け付けるときに取得したドキュメント名(ここでは“ABC#JID7”)からジョブIDを取り除いたもの(ここでは“ABC”)に設定し、ジョブIDはジョブ情報を作成するときに生成したジョブID(ここでは「7」)に設定する。また、オリジナルジョブIDにジョブID(ここではジョブID「7」)を設定し、オリジナルプリンタ名にプリンタ名(ここではプリンタ名「701」)を設定する。
本実施の形態の場合には、プリントキュー情報のプリントタイプは負荷分散印刷であるため、実ジョブ情報のプリントタイプには、負荷分散印刷が設定される。ステップS1207において作成された実ジョブ情報をプリントキュー701の実ジョブキュー801に登録する(図13のジョブID「7」のジョブ)。ステップS1208において、プリントキュー情報のバックアッププリンタ名を取得する。複数設定されている場合には、複数のバックアッププリンタ名を取得する。そして、バックアッププリンタ名に対応するプリントキューがバックアッププリントキューとして設定される。
次に、ステップS1209において、取得した複数のバックアッププリンタ名の各々から特定されるバックアッププリントキュー順に、仮想ジョブ情報を作成し、各情報を設定する。
ドキュメント名は、実ジョブ情報のドキュメント名から情報を取得し設定する。ジョブIDは仮想ジョブ情報を作成するときに生成し設定する。プリントタイプは、実ジョブ情報のプリントタイプの情報から取得し設定する。実ジョブIDは実ジョブ情報のジョブIDから取得し設定する。
ステップS1210において、実ジョブ情報の仮想ジョブIDに仮想ジョブ情報のジョブIDを設定する。仮想ジョブは複数発生する場合があるため、仮想ジョブが作成される順に仮想ジョブID1、仮想ジョブID2、…と設定していく。
ステップS1211において仮想ジョブ情報を仮想ジョブキュー802Aに登録する(図13のジョブID「8」のジョブ)。
ステップS1212において、ステップS1208で取得したバックアッププリンタ(バックアッププリントキュー)が残っていれば、ステップS1209に処理を移行する。
図13では、ステップS1208で取得したバックアッププリンタが2つある場合を想定して説明しているため、仮想ジョブ情報は、2つ作成され、夫々、仮想ジョブキュー802A、802BにジョブIDが「8」と「9」の仮想ジョブが作成され、実ジョブ(ジョブID が7)の実ジョブ情報に関連付けられた仮想ジョブには、「8」と「9」のジョブIDが設定される。また、ジョブIDが「8」と「9」の仮想ジョブ情報内の実ジョブIDには、「7」が設定される。
ステップS1212において、ステップS1208で取得したバックアッププリンタが残っていなければ、ステップS1213に移行し、作成した実ジョブと全ての仮想ジョブのスケジュール要求を発行する。
図14は、各プリントキュー701、701A、701Bの各々から発行されるアクションに対するスケジュール処理を示す図である。ジョブ制御プリントサービス605における処理に相当する。
ステップS1401では、各プリントキューのスケジュールの管理を行い、何れかのプリントキューにジョブを登録したモジュール(例えばジョブ制御ポートモニタ)からのスケジュール要求、印刷ジョブの送信完了(出力ポートからの、プリンタデバイスへ印刷データを送信終了したことを示す情報)、印刷ジョブの削除、印刷ジョブの完了(最終ページ排紙通知)、デバイス復帰通知(例えば電源OFFからON状態になった場合になど、動作不可能な状態から動作可能な状態に移行したことを示すイベント)などのアクションを監視する。各プリントキューに対する、上記アクションが発生すると、ステップS1402に処理を移行し、アクションが発生しない場合は、ステップS1401で待機処理を行なう。ここで、スケジュール要求のアクションは例えばジョブ制御ポートモニタから発生される。またジョブの削除は、プリントマネージャ609から発生される。また、印刷ジョブの送信完了及び印刷ジョブの完了はプリンタデバイスからの通知に応じて出力ポートを介して発生される。無論これに限定はされない。
ステップS1402において、上記アクションが発生したプリントキュー(701、701A、701Bの何れか)を確認し、実ジョブキュー(801、801A、801Bの何れか、仮想ジョブキュー(802、802A、802Bの何れか)の順に検索し、何らかのジョブ情報が存在していればステップS1403に処理を移行し、ジョブ情報が無ければステップS1401に移行する。
ステップS1403において、ネットワークプリンタ102〜104のうち、ステップS1401において所定のアクションが発生したプリントキューに対応するネットワークプリンタの動作ステータスを取得する。例えば、印刷ジョブの完了のアクションに応じてステータスを取得するようにする。
また、ステップS1403におけるデバイスステータスの取得で、デバイス制御コントロールモジュール606を介したポーリングを行い、このポーリングと所定のアクションの発生によるデバイスステータスの取得を併用するようにすれば、より迅速にプリンタデバイスが転送可能な動作ステータスになったか否かを調べることができる。
ステップS1404において前のステップにおいて取得されたステータスに基づいて、現在対象となっているプリントキューに対応するネットワークプリンタに印刷データを転送可能かどうかを判断する。ここでデータ転送可能ないと判断される動作ステータスとしては、例えば(1)紙無しやトナー無しなど消耗品不足を伴わない状態や、(2)画像記録を継続できない例えばジャム(紙詰まり)などの障害が発生している状態や、(3)印刷データを送信するチャネルがオフラインである状態や、(4)プリンタ側(ネットワークボードも含む)でこれ以上受信バッファに余裕がなくビジーの状態などが挙げられる。また、この(1)乃至(5)のステータスを任意に組み合わせてそれをデータ転送可能でないと判断するステータスとするようにしても良い。
ステップS1404において、アクション発生の対象となっているネットワークプリンタに印刷データを転送可能であれば、ステップS1405に処理を移行し、転送不可能であれば、処理をステップS1401に移行する。
ステップS1405において、ステップS1402で見つけたジョブに対して、スケジュールアップ要求を発行し、処理をステップS1401に移行する。
この時、実ジョブが見つかっていれば、仮想ジョブよりも先に実ジョブに対してスケジュールアップ要求を発行する。つまり、登録の順番に係わらず、実ジョブを仮想ジョブよりも優先する。
次に、図14のフローチャートの処理に基づき特にプリントキュー701でスケジュールアップ要求を受け付けてから、ネットワークプリンタ102〜104に印刷データを送信するまでの処理の流れについて説明する。図15は、プリントキュー701での負荷分散印刷処理について示すフローチャートである。また、図16、図17は、図15のフローチャートに関連した処理を表した図である。
負荷分散印刷では、予め設定された親のプリンタの実ジョブキューに実ジョブが登録され、バックアッププリンタの仮想ジョブキューに仮想ジョブが登録される。1つのプリントキューにおいて、これらのジョブの中で早くスケジュールアップ要求を受け付けた印刷ジョブがネットワークプリンタ102〜104に転送される。
ステップS1501では、スケジュール要求(スケジュールアップ)を受け付けたか判断する。スケジュールアップを受け付けると処理をS1502に移行し、スケジュールアップが来なければステップS1501で待機する。
ステップS1502では、スケジュールアップを受け付けた印刷ジョブが負荷分散ジョブかどうかを判断する。ジョブ情報のプリントタイプの情報を取得し、プリントタイプが負荷分散印刷であれば、ステップS1503に処理を移行する。負荷分散印刷でなければ、ステップS1511に処理を移行し、実ジョブに登録された実ジョブ情報に基づく印刷ジョブがネットワークプリンタに転送される。
ステップS1503では、スケジュールアップのジョブが仮想ジョブであるか、実ジョブであるかを判断する。仮想ジョブであれば、ステップ1504に処理を移行し、実ジョブであればステップS1513に処理を移行する。
ここで、仮想ジョブのスケジュールアップをユーザに通知してもよい。つまり、ユーザが指定した負荷分散プリントデバイスではなく、バックアッププリントデバイスにおいて印刷が実行されることを通知すれば、ユーザは印刷結果が出力されるプリンタを特定することができ、利便性が高い。
ステップS1504において、実ジョブ情報を参照するために仮想ジョブ情報中の実ジョブIDを取得する。ステップS1505では、ステップS1504で取得した実ジョブIDを用いて実ジョブ情報を参照し、実ジョブ情報に含まれる仮想ジョブIDを取得する。
ステップS1506では、ステップS1505で取得した仮想ジョブIDから、スケジュールアップ要求が発生した仮想ジョブ以外の同内容の仮想ジョブを認識し、スケジュールアップ要求を受けていない送信の対象とならなかった他の仮想ジョブを、順に削除する(図16の矢印g)。
ステップS1507において、ステップS1505で取得した仮想ジョブで、ステップS1506で削除していない仮想ジョブが残っていればステップS1506に処理を移行し、仮想ジョブが残っていなければ、ステップS1508に処理を移行する。これにより、スケジュールアップ要求が発生した仮想ジョブと同内容の他の全ての仮想ジョブを削除する。
ステップS1508、S1509、S1515では、スケジュールアップ要求が発生した仮想ジョブを実ジョブに切り替える処理を行なう。そしてこの切り替える処理により仮想ジョブ情報が実ジョブ情報になり、変更前の実ジョブ情報に基づくジョブの送信は行なわないようになる。
まず、ステップS1508において、仮想ジョブ情報を、実ジョブキュー801Bに登録する(図16の矢印h)。この時点で操作対象のジョブに関連した仮想ジョブ情報は全て無くなる。さらに、ステップS1509において、その仮想ジョブ情報中の実ジョブIDから対応する実ジョブ(ここではプリントキュー701に登録された実ジョブID「7」の実ジョブ)を特定し、その実ジョブ情報を取得し、実ジョブキュー801B内の仮想ジョブ情報(ここではID「9」)に情報をコピーする。この時点で、実ジョブキュー801Bには、ID「9」の実ジョブが格納されることになる。
また、ステップS1515において、該実ジョブ(ここでは実ジョブキュー801に登録されたジョブID「7」の実ジョブ)から、オリジナルジョブID(ここでは、ジョブID「7」)、オリジナルプリンタ名(ここでは、プリンタ名「701」)をコピーし、新しく生成された実ジョブ(ここでは、実ジョブキュー801Bに格納されたID「9」の実ジョブ)に設定する。尚、オリジナルプリンタ名は、元々最優先で印刷出力が行なわれるべきであった実ジョブキュー、ありは、プリンタ名を特定可能なものであればよく、プリンタ識別情報であれば、適宜適用することができる。
更にステップS1510において、スケジュールアップ要求が発生した仮想ジョブ情報の実ジョブIDに登録されていた実ジョブ(ここではプリントキュー701に登録された実ジョブID「7」の実ジョブ情報)を削除する(図16の矢印i)。これらの処理の結果、図17のような状況となる。そして、ステップS1511において、元々実ジョブの印刷ジョブ或いは実ジョブに変更された印刷ジョブを対応するネットワークプリンタに転送する。この転送について、より具体的に説明すると、最終的に対象となる図10の実ジョブ情報(ステップS1503でNoと判断された実ジョブ情報、或いは、ステップS1509において切り替えられた実ジョブ)から特定されるスプールファイル名の印刷データが、自ジョブ情報が登録されている実ジョブキュー(プリントキュー)に対応する論理プリンタの出力ポートに関連付けられたIPアドレス又は名前解決に利用するネームに基づき行なわれる。
そして、ジョブの転送が終了したらステップS1512でジョブの送信終了の通知を行なう。尚、図16の矢印iの処理が実行し終えるまで二つの実ジョブが存在するが、図16の矢印g〜図16の矢印iの処理を一筆書きのプログラム(コンテキストチェンジを発生させない)にするようにすれば問題は無い。無論、図16の矢印iとhの処理順序を逆にするようにしても良い。また、上に説明では不要となった仮想ジョブ情報及び実ジョブ情報を削除するよう説明してきたが、例えば、不要になったジョブ情報にそれを示すフラグを付加して、付加後のジョブ情報を対応する印刷装置に送信するようにし、プリンタ側でフラグを参照し受信したジョブ情報を破棄するようにしても良い。
負荷分散処理により発生した実ジョブと複数の仮想ジョブの内、スケジュールアップを受けたジョブが実ジョブの場合には、ステップS1503からステップS1513に移行する。ステップ1513では、実ジョブ情報から全ての仮想ジョブ情報を取得し、ステップS1514においてすべての仮想ジョブを削除し、ステップS1511においてスケジュールアップを受け付けた実ジョブを対応するネットワークプリンタに転送する。尚、上にも説明したようにステップS1506や、ステップS1514において実ジョブ或いは仮想ジョブを削除するように説明したが、スケジュールアップ要求を受けていない他のジョブ(実ジョブ或いは仮想ジョブ)に基づく印刷データが無いジョブ情報のみをネットワークプリンタに転送し、ネットワークプリンタにおいて削除するようにしても良い。
一方。ステップS1502においてスケジュールアップを受けた印刷ジョブのプリントタイプが負荷分散印刷でなければ、ステップS1511に処理を移行し、そのままネットワークプリンタに転送される。
図20は、本実施形態の負荷分散処理の、アプリケーションからの完了イベント受付からイベント通知までの処理を示したジョブ制御プリントサービスのフローチャートである。
ステップS2001において(図21のシーケンス2101〜2103)、アプリケーションはジョブ制御プリントサービスに対して完了イベントの登録を行なう。完了イベントが発生するタイミングとしては、印刷データを送信したプリンタデバイスから最終ページの排紙が完了したときや、印刷ジョブ送信に失敗した場合に発生する印刷ジョブのエラーしたとき等がある。
ステップS2002は、登録したイベントの発生を待つステップである。ここで、ジョブ制御プリントサービス605が管理している印刷ジョブに関して、印刷ジョブの完了を把握したらステップS2003へ移行する。完了していない場合はステップS2002へ処理を戻し、登録した完了イベントの発生を待つ。
ステップS2003において、ジョブ制御プリントサービス605では完了イベントを把握したジョブ情報の出力先プリンタ名(ここでは、プリンタ名「701B」と、オリジナルプリンタ名(ここでは、プリンタ名「701」を比較し、両者が同じ場合はステップS2004へ違う場合はステップS2005へ移行する。
ステップS2004においては、プリンタ名に対応するプリントキューから完了イベントを登録しているアプリケーションに、ジョブ情報内のドキュメント名、ジョブID、プリンタ名と、印刷完了/エラーなどの印刷ジョブでの結果を通知する。
ステップS2005では、オリジナルプリンタ名に対応する、アプリケーションが印刷を指示したプリントキュー(ここでは、プリントキュー「801」)を経由して完了イベントを登録しているアプリケーションにジョブ情報内のドキュメント名、ジョブID、プリンタ名、オリジナルジョブID、オリジナルプリンタ名と、印刷完了(終了)/エラーなどの印刷ジョブの状態を通知する。
上記処理により、アプリケーションは印刷を指示したプリントキューを監視するだけで、出力先が移動してもイベントの通知を受けることができる。
また、負荷分散印刷によって、ジョブIDが変化したとしても、印刷ジョブ情報にオリジナルジョブIDを持っているため、変化前のジョブIDを参照することが可能であり、印刷ジョブを容易に管理することが可能である。
また、印刷ジョブ情報に印刷出力したプリンタ名も持っているため、排紙先の通知を受けることも可能であり、ユーザは、どのプリンタ名で排紙出力が行なわれたかをアプリケーションユーザインタフェースを介して知ることが出来る。アプリケーションユーザインタフェースにおける表示様子は、通知されたジョブIDとプリンタ名と基づくものであればよく、ジョブID及びプリンタ名の文字列を表示するようにしても良いし、ジョブIDについては、ジョブIDに関連付けられたドキュメント名を表示させるようにしても良い。また、プリンタ名については、プリンタ名に対応するアイコンを表示させるようにしても良い。
図21はアプリケーション601、GDI2202、ジョブ制御プリントサービス605における、完了イベント登録、完了イベント通知および、印刷開始指示から印刷完了指示までのシーケンスの1例である。また、図22は図21のシーケンス例を説明したブロック図である。図6Aと同じソフトウェア構成について同じ参照番号を付与している。
シーケンス2101〜2103は、アプリケーションがジョブ制御プリントサービスにイベントを登録するまで処理である。
具体的な方法としては、シーケンス2101において、アプリケーション601はジョブ制御プリントサービス605に対して、APIを通してOpenPrinter(“701”)の指示を出し、シーケンス2102において、ジョブ制御プリントサービス605はプリンタキュー701のハンドルをアプリケーション601へ返す。ハンドルを受け取ったアプリケーション601は、シーケンス2103において、SubScribeEvent(handle、EVENT)の指示を出し、ハンドルを取得したプリンタキューに対して完了イベントの登録を行なう(図22、矢印a)。
また、シーケンス2116は、ジョブ制御プリントサービスからアプリケーションにイベントを通知する処理である。シーケンス2116において、ジョブ制御プリントサービスが登録されたイベントを把握すると、APIを通してアプリケーション601に通知される(図22、矢印p)。
シーケンス2104〜2107までは、印刷開始の処理である。通常の印刷では、アプリケーションがGDIにWin32APIを通してStartDoc()の指示を出すが、本発明では、ジョブ制御プリントサービスが、印刷ジョブを管理するためのジョブIDを取得するために以下のような処理を行なう。
シーケンス2104において、アプリケーション601はジョブ制御プリントサービス605に対して、APIを通してDmStartDoc(“ABC”)の指示を出し、ドキュメント名“ABC”の印刷開始を指示する(図22、矢印b)。
印刷指示を受け取ったジョブ制御プリントサービス605はジョブID7を発行しドキュメント名に付加した後、GDI2202に対して、シーケンス2105において、Win32API2201を通してStartDoc(“ABC#JID7”)の指示を出し、印刷開始を指示する(図22、矢印c)。
シーケンス2106において、GDI2202は、指示を受け取ったことをジョブ制御プリントサービス605に返す(図22、矢印d)。
シーケンス2107において、ジョブ制御プリントサービス605は、アプリケーション601に対して発行したジョブID7を返す(図22、矢印e)。
アプリケーションはこのジョブIDを使って、印刷ジョブの管理や操作をすることが可能となる。
アプリケーションはこのジョブIDを使って、印刷ジョブの管理や操作をすることが可能となる。
シーケンス2108〜2111は印刷データを記述する処理である。アプリケーション601は、GDI2202に対して、Win32API2201を通して、StartPage()、印刷データを送信、EndPage()の指示を、印刷データが全て送信されるまで繰り返す(シーケンス2108〜2111・・・、図22矢印f、g・・・)。
シーケンス2112〜2115は、印刷終了の処理である。
全ての印刷データを送信したアプリケーション601は、ジョブ制御プリントサービス601に対して、シーケンス2112において、DmEndDoc()の指示を出し、印刷終了を指示する(図22、矢印l)。
指示を受け取ったジョブ制御プリントサービス605は、GDI2202に対してEndDoc()の指示を出し、印刷終了を指示する(図22、矢印m)。
シーケンス2114において、GDI2202は指示を受け取ったことをジョブ制御プリントサービス605に返し(図22、矢印n)、ジョブ制御プリントサービス605は、シーケンス2115において、アプリケーション601に対して印刷終了指示が完了したことを返す(図22、矢印o)。
シーケンス2114において、GDI2202は指示を受け取ったことをジョブ制御プリントサービス605に返し(図22、矢印n)、ジョブ制御プリントサービス605は、シーケンス2115において、アプリケーション601に対して印刷終了指示が完了したことを返す(図22、矢印o)。
これら印刷終了処理を行なうことによって、ジョブ制御プリントサービスは管理している印刷ジョブのプリントキューへの印刷が終了したことを把握することができる。
印刷データは、GDI2201から、PDLドライバ602、Windows(登録商標)スプーラ603を経由してプリントデバイスが解釈できる形に変更され、ジョブ制御ポートモニタ604に送られる。
ジョブ制御ポートモニタ604は、ジョブ制御プリントサービスに対して、APIを通して、印刷ジョブを送信する(図22、矢印q)。
本実施形態は、独自に作成した送信出力ポートにスプールジョブを転送しても良いし、オペレーティングシステムに用意された送信出力ポートに対して印刷ジョブを転送させてもよい。
ここで、図13における複数のプリントキューを、例えば図6A、Bにおけるプリントマネージャ609に介して表示させた際に、仮想ジョブキューに登録された仮想ジョブ情報に基づく表示を行なわれず、実ジョブキューに登録された実ジョブ情報に基づく表示が選択的に行なわれる処理について説明する。
プリントマネージャ609からAPIを介してジョブ制御プリントサービス605に対してジョブの実行状況の要求が行なわれると、ジョブ制御プリントサービス605では、実ジョブキューに登録された実ジョブ情報とに仮想ジョブキューに登録されたジョブ情報とから、実ジョブキューに登録された実ジョブ情報の抽出が行なわれる。そして、抽出された実ジョブ情報がプリントマネージャ609に通知され、通知されたジョブジョブ情報に基づくジョブの実行状況の表示が行なわれるこれにより、実ジョブ情報のみをユーザに報知するため、ユーザの混乱を防ぐことができる。
また、プリントジョブマネージャー609からの要求に応じて表示が行なわれるようにしたが、ジョブ制御プリントサービス605からのプリントジョブマネージャー609に対する能動的な通知に基づきジョブの実行状況の表示を行なわせるようにして良い。また、ジョブ制御プリントサービス605からプリントジョブマネージャーに実ジョブ情報及び仮想ジョブ情報の双方を通知するように指定、実ジョブ情報の抽出をプリントマネージャ609自身に行なわせるようにしても良い。
図18に、図9に示される基本プリントキューに対応する所定のプリンタに対してバックアッププリントキューに対応するプリンタを関連付けるための、設定画面を示す。この図18は新規に論理プリンタを作成或いは追加する際に表示されるものであるが、既に作成された論理プリンタの設定を変更する場合などに表示させるようにしても良い。
1801は、プリンタ名を入力する入力欄である。キーボード等を介してユーザが任意に名前を指定することができる。1802は、プリンタドライバ名を表示する表示欄である。「ドライバの選択」ボタンを選択することにより、ユーザが選択可能な複数のプリンタドライバのリストが表示され、そのリストから選択されたプリンタドライバの名前が表示欄1802に表示される。
1806はプリンタドライバに関連付けるポートを選択する選択画面を表示させるための「ポートの選択」ボタンである。「ポートの選択」ボタン1806が選択されると、システムに登録されている複数のポートが選択可能な形態で提示される。
1803はプリンタの出力方法を選択するための選択欄である。この選択欄において、出力方法として「負荷分散印刷」を指定することができる。
1804は、1801、1806で設定された所定のプリンタに対するバックアッププリンタ(例えば図13のプリントキュー701A、701Bに対応)のリストを表示する表示欄である。1805は、バックアッププリンタを設定するための「バックアッププリンタ設定」ボタンである。「バックアッププリンタ設定」ボタン1805が選択されると、バックアッププリンタとして設定可能なプリンタのリストが表示される。そして、そのリスト中から選択されたプリンタがバックアッププリンタとして設定され、バックアッププリンタリスト表示欄1804に表示される。「バックアッププリンタ設定」ボタン1805が選択された場合に、指定されたプリンタドライバにより特定されるプリンタモデルやプリンタ言語に互換性のあるプリンタのみをリスト表示すれば、適切なバックアッププリンタをユーザに効率よく選択させることができる。
このように、図18を介して設定された設定情報は、図9や、図10や、図11の情報の各項目に反映される。
以上、説明したように、本実施の形態では、アプリケーションが負荷分散プリンタに印刷すると、負荷分散設定のプリンタに対応するプリントキューに実ジョブが、バックアッププリンタに対応するプリントキューに仮想ジョブが作成され、これらのジョブ情報の中で一番早くスケジュールアップを受け付けたジョブが実ジョブとしてネットワークプリンタに転送される。そのため、複数のネットワークプリンタ内で転送可能になるのが早いネットワークプリンタを効率的に選択して印刷ジョブが転送されることになる。その結果、大量の印刷ジョブを複数のネットワークプリンタで効率的に処理することができ、印刷ジョブが存在している間は複数のネットワークプリンタをフルに稼動することができる。
また、同じ印刷データを、複数のキューに重複して登録することもなく、メモリ容量及びメモリ処理の負荷を小さくできる。また、仮想ジョブ情報は表示されないため、一時的にでも、複数の同じ印刷データがキューを占有するということはなく、ユーザを混乱させることもない。更に、システム上に共有プリントキューという特別なキューを設定する必要もないため、ユーザは従来と同じ感覚で印刷を行なうことにより負荷分散印刷を行なうことができる。ユーザは、印刷アプリケーションに複雑な機能を組み込まなくても、複数の印刷装置を効率よく利用することができる。
また、印刷ジョブの完了通知を、印刷ジョブ情報のオリジナルプリンタ名を参照し、対応するプリントキューからアプリケーションに通知するため、印刷ジョブの移動があったとしても、アプリケーションはイベントの通知を受けることができる。
さらに、負荷分散印刷システムとしても、印刷ジョブ情報がオリジナルジョブIDを持っているため、ジョブIDの変化を管理するといった処理を必要とせずに印刷ジョブの管理が可能となる。
(第2の実施の形態)
上述の第1の実施の形態においては、基本プリントキューと、バックアッププリントキューを例に説明を行なってきたが、本願発明はこれに限定されるものではなく、第1、第2、・・の複数の基本プリントキューが存在し、この複数のプリントキュー間で印刷ジョブの登録が移動されるような形態でも適用可能であることはいうまでもない。
上述の第1の実施の形態においては、基本プリントキューと、バックアッププリントキューを例に説明を行なってきたが、本願発明はこれに限定されるものではなく、第1、第2、・・の複数の基本プリントキューが存在し、この複数のプリントキュー間で印刷ジョブの登録が移動されるような形態でも適用可能であることはいうまでもない。
つまり、第1の実施の形態と同様のアプリケーションから投入された第1プリントキューに登録された印刷ジョブの出力の代替として、第2プリントキューから前記登録された印刷ジョブを出力するようにする制御し、前記第2プリントキューに登録された印刷ジョブの情報に前記第1プリントキュー及び前記印刷ジョブのジョブIDを関連付け、前記第2プリントキューから出力された印刷ジョブの状態の変化を、前記ジョブIDを合わせて、前記関連付けら得た第1プリントキューを介して前記アプリケーションに通知するようにする通知するようにしても良い。
このとき、第1プリントキューから第2プリントキューへの印刷ジョブの登録の移動は、第1プリントキューへ登録された印刷ジョブの削除、及び、第2プリントキューへの印刷ジョブの新規追加により、実現される。
また、第2プリントキューへ新たに登録される印刷ジョブ情報は、第1プリントキューの印刷ジョブ中の必要な情報(もともとのジョブIDや第1プリントキューに対応するオリジナルプリンタ名等)を、第2プリントキューに登録される印刷ジョブのジョブ情報に含ませたものとなる。このとき、アプリケーションから投入された第1プリントキューに登録された印刷ジョブの出力の代替として、第2プリントキューから前記登録された印刷ジョブを出力するようにする制御手段が備えられることとなる。
さらに、このときの第1プリントキューを介してのアプリケーションの通知には、さらに、印刷出力の排紙が行なわれたプリンタ名(プリンタ識別情報)が含まれるようにしても良い。
尚、第2の実施の形態における、効果も第1の実施の形態と同様である。
(他の実施形態)
以上、本発明の実施形態について詳述したが、本発明は、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
以上、本発明の実施形態について詳述したが、本発明は、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置のコンピュータが供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。その場合、プログラムの機能を有していれば、形態は、プログラムである必要はない。
従って、本発明の機能処理をコンピュータで実現するために、コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明のクレームでは、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等、プログラムの形態を問わない。
プログラムを供給するための記録媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などがある。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明のクレームに含まれるものである。
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
Claims (10)
- 複数の印刷装置に印刷ジョブを送信可能な情報処理装置であって、
アプリケーションから投入された第1プリントキューに登録された印刷ジョブの出力の代替として、第2プリントキューから前記登録された印刷ジョブを出力するようにする制御手段と、
前記第2プリントキューに登録された印刷ジョブの情報に前記第1プリントキュー及び前記印刷ジョブのジョブIDを関連付ける手段と、
前記第2プリントキューから出力された印刷ジョブの状態の変化を、前記ジョブIDを合わせて、前記関連付けら得た第1プリントキューを介して前記アプリケーションに通知するようにする通知制御手段と、
を有することを特徴とする情報処理装置。 - 前記アプリケーションの通知には、さらに、印刷出力の排紙が行なわれたプリンタ識別情報が含まれることを特徴とする請求項1に記載の情報処理装置。
- 複数の印刷装置に印刷ジョブを送信可能な情報処理装置であって、アプリケーションから投入された印刷ジョブで、前記印刷装置に送信する前記印刷ジョブを識別するためのジョブIDを発行すると共に前記アプリケーションにジョブIDを通知する発行手段と、
前記複数の印刷装置に対応する複数のプリントキューについて、前記複数のプリントキューのうち何れか1つを基本プリントキューとして設定し、前記基本プリントキュー以外のプリントキューをバックアッププリントキューとして設定するプリントキュー設定手段と、
前記基本プリントキューに登録された前記印刷ジョブ情報に対応するバックアップジョブ情報を生成して、前記バックアッププリントキューに登録するバックアップジョブ登録手段と、
前記基本プリントキューおよび前記バックアッププリントキューのそれぞれにおいて、印刷ジョブ情報が登録されている場合には、優先的に前記印刷ジョブ情報に基づくジョブを対応する印刷装置に出力し、印刷ジョブ情報が登録されておらず、バックアップジョブ情報のみが登録されている場合には、そのバックアップジョブ情報を印刷ジョブ情報に変更して変更後のジョブ情報に基づくジョブを対応する印刷装置に出力するジョブ制御手段と、
前記ジョブ制御手段により、バックアップジョブ情報を印刷ジョブ情報に変更する際に、変更後の印刷ジョブ情報に、変更前の印刷ジョブ情報のジョブIDと、基本プリントキューに対応するプリンタ識別情報を参照可能にせしめる設定手段と、
印刷装置に出力された印刷ジョブの状態変化のイベントが発生した場合に、前記変更後の印刷ジョブ情報に前記設定手段により設定されているプリンタ識別情報を参照して、そのプリンタ識別情報に対応するプリントキューを介して前記アプリケーションに前記イベントを通知する手段と、
前記通知するイベントに前記変更前のジョブIDと排紙が行われたプリンタ識別情報とを含むことを特徴とする情報処理装置。 - 前記基本プリントキューおよび前記バックアッププリントキューにおいて、登録されている前記印刷ジョブ情報およびそれに対応するバックアップジョブ情報の何れか1つが印刷装置への出力対象とされた場合には、出力の対象とならなかった前記印刷ジョブ情報またはそれ対応するバックアップジョブ情報を前記基本プリントキューおよび前記バックアッププリントキューから削除する削除手段を有することを特徴とする請求項3に記載の情報処理装置。
- 前記プリンタ識別情報は、プリンタ名であることを特徴とする請求項3又は4に記載の情報処理装置。
- 前記印刷ジョブの状態変化には、印刷終了、印刷ジョブのエラーが含まれることを特徴とする請求項3から5の何れかに記載の情報処理装置。
- 複数の印刷装置に印刷ジョブを送信可能な情報処理装置における印刷ジョブの管理方法であって、アプリケーションから投入された第1プリントキューに登録された印刷ジョブの出力の代替として、第2プリントキューから前記登録された印刷ジョブを出力するようにする制御ステップと、
前記第2プリントキューに登録された印刷ジョブの情報に前記第1プリントキュー及び前記印刷ジョブのジョブIDを関連付けるステップと、
前記第2プリントキューから出力された印刷ジョブの状態の変化を、前記ジョブIDを合わせて、前記関連付けら得た第1プリントキューを介して前記アプリケーションに通知するようにする通知制御ステップと、
を有することを特徴とする管理方法。 - 複数の印刷装置に印刷ジョブを送信可能な情報処理装置であって、アプリケーションから投入された印刷ジョブで、前記印刷装置に送信する前記印刷ジョブを識別するためのジョブIDを発行すると共に前記アプリケーションにジョブIDを通知する発行ステップと、
前記複数の印刷装置に対応する複数のプリントキューについて、前記複数のプリントキューのうち何れか1つを基本プリントキューとして設定し、前記基本プリントキュー以外のプリントキューをバックアッププリントキューとして設定するプリントキュー設定ステップと、
前記基本プリントキューに登録された前記印刷ジョブ情報に対応するバックアップジョブ情報を生成して、前記バックアッププリントキューに登録するバックアップジョブ登録ステップと、
前記基本プリントキューおよび前記バックアッププリントキューのそれぞれにおいて、印刷ジョブ情報が登録されている場合には、優先的に前記印刷ジョブ情報に基づくジョブを対応する印刷装置に出力し、印刷ジョブ情報が登録されておらず、バックアップジョブ情報のみが登録されている場合には、そのバックアップジョブ情報を印刷ジョブ情報に変更して変更後のジョブ情報に基づくジョブを対応する印刷装置に出力するジョブ制御ステップと、
前記ジョブ制御ステップにより、バックアップジョブ情報を印刷ジョブ情報に変更する際に、変更後の印刷ジョブ情報に、変更前の印刷ジョブ情報のジョブIDと、基本プリントキューに対応するプリンタ識別情報を参照可能にせしめる設定ステップと、
印刷装置に出力された印刷ジョブの状態変化のイベントが発生した場合に、前記変更後の印刷ジョブ情報に前記設定ステップにおいて設定されているプリンタ識別情報を参照して、そのプリンタ識別情報に対応するプリントキューを介して前記アプリケーションに前記イベントを通知するステップと、
前記通知するイベントに前記変更前のジョブIDと排紙が行われたプリンタ識別情報とを含むことを特徴とする管理方法。 - 請求項7又は8の何れかに記載の管理方法をコンピュータに実行させるためのプログラム。
- 請求項9に記載のプログラムをコンピュータ可読の形態で記憶した記憶媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004150337A JP2005332227A (ja) | 2004-05-20 | 2004-05-20 | 情報処理装置及び管理方法及びプログラム並びに記憶媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004150337A JP2005332227A (ja) | 2004-05-20 | 2004-05-20 | 情報処理装置及び管理方法及びプログラム並びに記憶媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005332227A true JP2005332227A (ja) | 2005-12-02 |
Family
ID=35486843
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004150337A Withdrawn JP2005332227A (ja) | 2004-05-20 | 2004-05-20 | 情報処理装置及び管理方法及びプログラム並びに記憶媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005332227A (ja) |
-
2004
- 2004-05-20 JP JP2004150337A patent/JP2005332227A/ja not_active Withdrawn
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3854963B2 (ja) | 情報処理装置、印刷システム、負荷分散印刷方法、及び制御プログラム | |
JP3833213B2 (ja) | 情報処理装置、印刷システム、負荷分散印刷方法、及びプログラム並びに記憶媒体 | |
US7312886B2 (en) | Printer control method, information processing apparatus, program, and storage medium | |
US8045202B2 (en) | Information processing apparatus and print device control method | |
US7426046B2 (en) | Information processing apparatus, information processing method, information processing program, and storage medium | |
JP4420421B2 (ja) | 情報処理装置およびその制御方法 | |
JP3639772B2 (ja) | 情報処理装置および印刷システムおよび印刷制御方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体 | |
JP4854608B2 (ja) | 印刷制御装置、印刷制御方法、及びプログラム | |
JP5383254B2 (ja) | 情報処理装置及びその制御方法、並びにプログラム | |
EP1452956A2 (en) | print control system | |
JP3927949B2 (ja) | 情報処理装置、負荷分散印刷方法、プログラム、及び記憶媒体 | |
JP2004054909A (ja) | 情報処理装置、印刷システム、情報処理装置の印刷制御方法、及び印刷制御プログラム | |
JP3774702B2 (ja) | 印刷制御プログラム及び情報処理装置 | |
JP2006056069A (ja) | 印刷制御装置および印刷制御方法 | |
JP2003316545A (ja) | 情報処理装置及び方法 | |
US7839518B2 (en) | Print control method, information processing apparatus, printing system, print control program and record medium | |
JP3880575B2 (ja) | 印刷設定方法及びコンピュータ | |
JP4174523B2 (ja) | 情報処理装置、印刷システム、負荷分散印刷方法、及びプログラム、並びに記憶媒体 | |
JP2005332227A (ja) | 情報処理装置及び管理方法及びプログラム並びに記憶媒体 | |
JP4401640B2 (ja) | プリンタ管理方法、情報処理装置、プログラム及び記憶媒体 | |
JP3919780B2 (ja) | 情報処理装置および印刷制御方法およびコンピュータ読み出し可能な記憶媒体 | |
JP2006146716A (ja) | 情報処理装置、情報処理方法、ならびにプログラム、記憶媒体 | |
JP2005173921A (ja) | 情報処理装置、印刷システム、及び情報処理方法、及び制御プログラム | |
JP2005196439A (ja) | 印刷システムにおける印刷データの制御方法および制御プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20070807 |