JP2008107921A - プルプリントサーバとその制御方法 - Google Patents

プルプリントサーバとその制御方法 Download PDF

Info

Publication number
JP2008107921A
JP2008107921A JP2006288039A JP2006288039A JP2008107921A JP 2008107921 A JP2008107921 A JP 2008107921A JP 2006288039 A JP2006288039 A JP 2006288039A JP 2006288039 A JP2006288039 A JP 2006288039A JP 2008107921 A JP2008107921 A JP 2008107921A
Authority
JP
Japan
Prior art keywords
job
print
printing
server
print job
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
Application number
JP2006288039A
Other languages
English (en)
Inventor
Takashi Yakida
隆 八木田
Original Assignee
Canon Inc
キヤノン株式会社
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc, キヤノン株式会社 filed Critical Canon Inc
Priority to JP2006288039A priority Critical patent/JP2008107921A/ja
Publication of JP2008107921A publication Critical patent/JP2008107921A/ja
Withdrawn legal-status Critical Current

Links

Images

Abstract

【課題】プルプリントシステムでは、プリンタの傍にプルしたジョブを制御/参照するPCが無くジョブ操作できず、一時停止、削除、移動や代行など、プリンタに転送されたジョブを制御する手段がない。
【解決手段】プルプリント要求対象の印刷ジョブが既にプリンタでスケジュールされている場合には(S2504−Y)、指示元のプリンタとジョブの送信先が一致していれば(S2504−Y)、当該ジョブを中止し(S2506,2507)、一致していなければ指示元のプリンタに当該ジョブを移動する(S2509,2511)。
【選択図】図25

Description

本発明は、プルプリントサーバとその制御方法に関する。
一般的なプリントシステムでは、ホストコンピュータがイニシエータとなって印刷データをプリンタに送信し、プリンタにより印刷が実行される。これに対してプルプリントシステムと呼ばれるプリントシステムがある。プルプリントシステムでは、たとえば、オペレータが識別データを入力するための操作パネルがプリンタに備えられている。また、ホストコンピュータには、識別データが付加されたプリントデータが保存されている。プリンタにおいて識別データを入力すると、プリンタは、入力された識別データと一致する印刷データを持つ印刷ジョブをホストコンピュータから引き出して、その印刷ジョブを実行する(たとえば特許文献1等参照)。
特開平10−16355号公報
このようなプルプリントシステムでは、プリンタのそばに実行中の印刷ジョブの送信元であるホストコンピュータがあるとは限らない。そのため、印刷の一時停止や削除、移動や代行など、プリンタに転送された印刷ジョブをその場で制御することができない場合がある。印刷ジョブを制御するためには、印刷ジョブの送信元のホストコンピュータで操作を行う必要があるが、印刷データの作成者と印刷指示者とが相異なる場合、印刷ジョブの送信元のホストコンピュータが分からないことがある。そのような場合には、印刷指示を行った者はいったん開始された印刷を制御することは困難であった。
本発明は上記従来例に鑑みてなされたものである。すなわち、デバイスの状況およびジョブの状況に応じて、プリンタから印刷ジョブの制御を行うことが可能となり、操作性を向上させることのできるプルプリントサーバとその制御方法を提供することを目的とする。
上記目的を達成するために、本発明は以下の構成を備える。すなわち、印刷装置から印刷を起動可能な印刷ジョブを提供するプルプリントサーバであって、
一または複数の印刷ジョブを保持し、保持された印刷ジョブのうち印刷装置からの印刷開始要求に応じた印刷ジョブを印刷装置に送信するジョブ送信手段と、
印刷ジョブの変更要求を受信し、受信した変更要求および当該変更要求の対象となる印刷ジョブの状態に応じて、当該印刷ジョブの中断、中止または他のプリンタへの転送を行う要求処理手段とを備える。
本発明によれば、デバイスの状況およびジョブの状況に応じて、プリンタに接続された認証情報読み取り装置などを使用してジョブの制御を行うことが可能となり、プルプリントの操作性が向上する。
<システム構成>
図1は、本発明の実施形態に係るプリントシステムの全体構成を示すブロック図である。本プリントシステムは、情報処理装置としてのサーバ(コンピュータ)101〜102と、印刷装置(プリントデバイス)としてのネットワークプリンタ103〜105と、クライアントPC107とを含む。これらが互いに接続されてネットワークを構成している。
サーバ(コンピュータ)101〜102には、印刷制御プログラムが実行可能に格納されている。印刷制御プログラムは、本プリントシステムに含まれるネットワークプリンタ103〜105を管理する機能のほか、ネットワークで使用されるファイルを蓄積したり、ネットワークの使用状態を監視したりする機能を有する。具体的には、サーバ(コンピュータ)101〜102は印刷ジョブを作成する。そして、ネットワークプリンタ103〜105のエージェントからのプルプリント要求をもとに、ネットワークプリンタ103〜105のスケジューラに対してスケジュール要求を発行する機能を有する。さらに、ネットワークプリンタ103〜105のスケジューラからの指示により、印刷データの転送を開始する機能を有する。本実施形態でいう印刷制御プログラムは、図6に示すプルプリントサーバ605に該当する。
ネットワークプリンタ103〜105は、サーバ(コンピュータ)101〜102から、印刷データを含む印刷ジョブを受信し、受信した印刷ジョブを解析して印刷する物理的な装置としてのプリントデバイスである。ネットワークプリンタ103〜105としては、電子写真方式を採用したレーザービームプリンタやインクジェット方式を採用したインクジェットプリンタや熱転写方式を利用したプリンタ等、あらゆる方式の印刷装置を採用することができる。
また、ネットワークプリンタ103〜105は、複数のサーバ(コンピュータ)101〜102からの印刷要求を受け付け、受け付けた印刷要求の順序を決定し、印刷指示を発行する機能を有する。また、ネットワークプリンタ103〜105に転送された印刷ジョブ、ネットワークプリンタ103〜105の状態を監視し、印刷の終了やプリンタ状態をサーバ(コンピュータ)101〜102に通知する機能を有する。
クライアントPC107は、たとえば文書処理アプリケーションなどを実行することで印刷対象となる文書データを作成する。また、作成した文書データをサーバ101,102に登録することができる。文書データからは印刷ジョブが作成されて、プルプリント要求に応じて出力される。
なお、本プリントシステムに含まれる装置間の通信は、イーサネット(登録商標)ケーブルなどを利用した有線通信でもよいし、電波や光などを利用した無線通信でもよい。
<プリンタ及びサーバの構成>
図2は、図1に示したサーバ(コンピュータ)101〜102のハードウェア構成を説明するブロック図である。
図2において、CPU200は、HD(ハードディスク)205に格納されているアプリケーションプログラム、プリンタドライバプログラム、OSや印刷制御プログラム等を読出して実行する制御手段である。CPU200は、RAM202にプログラムの実行に必要な情報、ファイル等を一時的に格納制御を行う。
ROM201は、基本I/Oプログラム等のプログラム、文書処理の際に使用するフォントデータ、テンプレート用データ等の各種データを記憶する記憶手段である。RAM202は、CPU200の主メモリやワークエリア等として機能する一時記憶手段である。 FD(フレキシブルディスク)ドライブ203は、後述する図5に示すように記憶媒体としてのFD204に記憶されたプログラム等を本コンピュータシステムにロードするための記憶媒体読み込み手段である。なお、サーバ(コンピュータ)101〜102は、FDドライブ203に代えて、或いはFDドライブ203と共に、他の記憶媒体読込手段を備えてもよい。他の記憶媒体としては、CD−ROM、CD−R、CD−RW、PCカード、DVD、ICメモリカード、MO、メモリスティック等、コンピュータが読み取り可能なあらゆる記憶媒体が挙げられる。
HD205は、大容量メモリとして機能する外部記憶手段であり、アプリケーションプログラム、プリンタドライバプログラム、OS、印刷制御プログラム、及び関係プログラム等を格納している。さらに、スプール手段であるスプーラはここに確保される。なお、サーバ(コンピュータ)101〜102ではスプール手段としてスプーラが確保される。
キーボード206は、ユーザがサーバ(コンピュータ)101〜102に対して、デバイスの制御コマンドの命令等を入力指示するための指示入力手段である。
ディスプレイ207は、キーボード206から入力したコマンドや、プリンタ103〜105の状態等を表示する表示手段である。尚、実際にはサーバ101〜102上で稼動するオペレーティングシステムを介して表示手段に表示指示がなされ、このオペレーティングシステムに本印刷処理プログラムによりリソースファイルの表示指示が行われ、後述する各表示が実現される。システムバス208は、サーバ(コンピュータ)101〜102としてのコンピュータ内のデータの流れを司る。
またインターフェース209は、入出力手段であり、サーバ101〜102は、インターフェース209を介してネットワーク上の他の装置とのデータのやり取りを行う。
<メモリマップ等の説明>
図3は、図2に示したRAM202のメモリマップの一例を示す図であり、印刷制御プログラム303がRAM202にロードされ実行可能となった状態のメモリマップである。
印刷制御プログラム303及び関係データ304は、予めFD204からHD205にインストールされて、HD205からRAM202にロードするようにしてもよいしFD204から直接RAM202にロードして実行させてもよい。さらに、印刷制御プログラム303をROM201に記憶しておき、これをメモリマップの一部となすように構成し、直接CPU200で実行することも可能である。また、以上の各装置と同等の機能を実現するソフトウェアをもって、ハードウェア装置の代替として構成することもできる。
印刷制御プログラム303は、サーバ101〜102においては、印刷データを転送したり、印刷ジョブの印刷先の変更を指示したり、印刷順序を変更したりする指示をするための制御を行う。
基本I/Oプログラム301は、装置(サーバ101〜102)の電源がONされたときに、HD205からOSがRAM202に読み込まれ、OSの動作を開始させるIPL(イニシャルプログラムローデイング)機能などを有しているプログラムである。
OS(オペレーティングシステム)302は、コンピュータの有する資源を管理する。印刷制御プログラム303は、本実施形態で説明するような手順を実行するプログラムである。関係データ304は、印刷制御プログラム303実行時に参照されるデータである。ワークエリア305は、CPU200が各種のプログラムを実行するための領域である。
図4は、図2に示したFD204のメモリマップの一例を示す図である。図4において、データ内容400はFD204に記録された内容であり、データの情報を示すボリューム情報401と、ディレクトリ情報402と、印刷制御プログラム403と、その関係データ404を含んでいる。
<コンピュータのハードウェア>
図5は、本発明の実施形態に関わる印刷システムのハードウェア構成を説明するブロック図である。プリンタ500は、ネットワークプリントサーバ520とプリンタコントローラ519という異なる2つの制御系で構成されている。ネットワークプリントサーバ520において、ネットワークプリントサーバ用CPU501は、制御プログラムに基づいて外部装置であるサーバ600から送られる印刷データやプリンタ制御命令等の各種データ送受信要求を統括的に制御する。また、拡張インタフェースコントローラ(EXPC507)を介して接続されるプリンタコントローラ519に対して適切なデータ転送制御を行う。サーバ600は、ネットワークコントローラ(LANC505)に接続されたローカルエリアネットワーク(LAN512)上のサーバ101,102などのホストコンピュータ等である。これらサーバ600とは所定のネットワーク通信プロトコルを用いて通信する。
RAM502はCPU501の主メモリ、ワークエリア等の一時記憶領域をして用いられる。フラッシュROM503には制御プログラムやデータが保存されている。LED506はネットワークプリントサーバの動作状態を示す表示部として用いる。LED506は、例えばネットワークコントローラ(LANC505)とローカルエリアネットワーク(LAN512)の電気的な接続状態や、ネットワーク通信モード等の各種動作状態を点滅パターンや色で示す。I/Oインターフェース521は、ホストコンピュータとローカル接続するためなどに使用される。本実施形態では使用しない。
さらにネットワークプリントサーバ520とプリンタコントローラ519とを繋ぐ拡張インターフェース517は、図示しないコネクタで構成されている。拡張インターフェース517は、ネットワークプリントサーバ520のみが着脱し、同じ構成を持つ別のプリンタ500にネットワークプリントサーバ520を装着することも可能な構成となっている。
プリンタコントローラ519において、プリンタコントローラ用CPU508は、制御プログラムやリソースデータ等に基づいて、システムバス511に接続される各種デバイスとのアクセスを統括的に制御する。ラスタコントローラ523は、拡張インタフェースコントローラ(EXPC513)を介して接続されるネットワークプリントサーバ520から受信される印刷データを基に、出力画像データを生成する。ラスタコントローラ523は生成した画像データをプリントエンジン516に対して出力する。制御プログラムやリソースデータは、ROM509あるいはディスクコントローラ(DKC515)を介して接続された外部メモリ510に記憶されている。
RAM514は、CPU508の主メモリ、ワークエリア等として機能するRAMである。RAM514は、図示しない増設ポートに接続されるオプションRAMによりメモリ容量を拡張することができるように構成されている。
操作パネル(操作部)518は、プリンタ500の動作モード等の設定や印刷データの取り消し等の操作を行うためのボタンと、プリンタ500の動作状態を示す液晶パネルやLED等の表示部とを有する。操作は液量パネルに重畳されたタッチパネルから行うこともできる。
プリンタエンジン516は既知の印刷技術を利用するものであり、好適な実施系として例えば電子写真方式(レーザービーム方式)やインクジェット方式、昇華方(熱転写)方式等が挙げられる。
<サーバのソフトウェア構成>
次に、本プリントシステムのサーバのソフトウェア構成について説明する。図6のサーバ600は、サーバ101〜102におけるソフトウェア構成の一例を示す図である。それぞれの構成間の矢印は、アプリケーションから発行された描画コマンドを含む印刷ジョブが、どのように処理されるかを示す。また、各ブロックで示されたソフトウェア構成は、図2のCPU200によって実行され、所望の機能を実現する。
通常、印刷アプリケーションプログラム601は印刷の指示を受け付けると、一連の描画コマンドをOSを介して生成する。OSを介して生成された描画コマンドを受け取ったPDLドライバ602は、一連の描画コマンドに基づいてネットワークプリンタ103〜105で解釈可能なPDLファイルを含む印刷ジョブを生成する。なお、以下の説明ではPDLドライバを例に説明を行うが、これに限定されるものではない。例えば、BDL(Band description Language)や、圧縮ビットマップを作成するプリンタドライバ、或いは、アプリケーション及びOSによりプリンタドライバを介さずに印刷データを生成する形態などにも適用可能である。
また、本提案の印刷アプリケーション601は、プルプリントユーザの印刷ジョブを作成するアプリケーションである。印刷アプリケーション601は、プルプリントサーバ605で提供されるプルプリント用印刷ジョブを作成し、その印刷ジョブに該当するプルプリントユーザの識別情報を設定する機能を有する。印刷アプリケーション601は、ユーザ識別情報と印刷すべき印刷データの関係などの情報を、印刷アプリケーション601が連携しているデータベースやWebアプリケーションからの指示により保持することが可能である。
PDLドライバ602は、プリンタ500(ネットワークプリンタ103〜105に相当する)へ印刷ジョブを送信するためにスプーラ603に渡す。
ここではOSをウィンドウズ(登録商標)と仮定しているので、スプーラ603はウィンドウズ(登録商標)スプーラである。ただし、本発明を適用するコンピュータのOSはウィンドウズ(登録商標)に限定されるものではなく、描画命令を備えるものであれば他のOSも適用可能である。
スプーラ603は、ユーザがユーザインターフェースを介して選択し指示したポートモニタ604に印刷ジョブを渡して、ネットワークプリンタ103〜105等のプリントデバイスに送信させる(矢印a)。ここでは、ユーザはあらかじめプルプリントサーバ605に印刷データを転送するポートモニタ604を指定して印刷を指示したものとして説明を進める。なお、プリントサーバ605にジョブを送信するポートモニタを特にジョブ制御ポートモニタと呼ぶことにする。また、プリンタドライバが提供するユーザインターフェースを介して設定された用紙サイズ、ステープル指示等の印刷設定情報も、ジョブ制御ポートモニタ604に送信される。ジョブ制御ポートモニタ604はプリントサーバ605に印刷ジョブ及び印刷設定情報を送信する(矢印b)。プリントサーバ605は、印刷ジョブをごとに、たとえばジョブIDを関連づけて印刷データをハードディスク205に保存する。
印刷アプリケーション601が印刷指示を行う際には、その指示と共に印刷ジョブに関連付けられるべきユーザ識別情報を引き渡す。プルプリントサーバ605は、引き渡されたユーザ識別情報を印刷ジョブと関連づけて保存する。
プルプリントサーバ605は、印刷ジョブ及びデバイスの状態を管理する機能を備える。また、プリントデバイスから通知されるデバイス状態やジョブの状態などの情報を管理したり、また、プリントデバイスに対して所定の命令をする機能も備える。これは、複数のネットワークプリンタ103〜105のデバイス情報やジョブ情報を管理する機能に相当する。管理機能には、たとえばデバイスから取得した情報をデバイスに関連づけて保存し、要求に応じてそれを出力したり削除したりする機能を含む。
そして、プリンタ500からのプルプリント要求(矢印d)が来ると、プリンタ500が持つ印刷ジョブの順序管理機能に対して印刷の要求(スケジュール要求)を発行する。順序管理機能に基づき順番が到来した場合には、プリンタ500からの印刷指示により、ネットワークプリンタ103〜105に印刷データを送信する(矢印e、g)。
プリンタ500は、印刷データの完了を確認すると印刷完了の通知をプルプリントサーバ605に通知したり、また、プリンタ500の状態を通知する(矢印h)。
プリントマネージャ607は、ユーザが、プルプリントサーバ605内部でプリントジョブがどのような状態にあるかを調べたり、プリントジョブを操作したりするためのユーザインターフェースを提供するプログラムである。プリントマネージャ607は、プルプリントサーバ605のソフトウェアのインターフェース(API:Application Program Interface)を介して、プルプリントサーバ605と情報・指示をやり取りしている。
そして、プリントマネージャ607は、主に、プルプリントサーバ605が管理するネットワークプリンタ103〜105の状態情報をイベントとして取得する機能を備える。イベントの通知の種別としては、トナー残量が少なくなった警告、サーバとデバイスとの通信障害、メモリ不足、排紙トレイ満載などのエラー/警告情報の通知や、エラー状態から正常状態に復帰した正常情報の通知などが想定される。ここでのプルプリントサーバ605はネットワークを介して通信可能な各プリンタデバイス(印刷装置)の印刷実行中、電力制御状態、障害情報(紙ジャム)等のステータスの通知を受け付ける機能を備える。
更に詳細な処理としては、プリントマネージャ607がプルプリントサーバ605に対してデバイスを指定したイベントを発行する。プルプリントサーバ605は発行されたイベントに基づくデバイスのステータスを認識して、監視に基づく結果をプリントマネージャ609に通知する。
クライアントPC608はジョブ登録アプリケーション609を備えており、不図示のプリンタドライバで作成された印刷ジョブを、サーバ600のプルプリントサーバ605に送信する(矢印f)。プルプリントサーバ605は、受信した印刷ジョブをプルプリント対象の印刷ジョブとしてハードディスク205に保存する。プルプリントサーバ605は、印刷ジョブの発行元がサーバ自身であるかクライアントであるかを区別することはない。
<印刷ジョブの流れ>
次に、図7を用いてアプリケーション601からプリントデバイスまでの印刷ジョブの流れについて説明する。ここで、図6と同じソフトウェア構成について同じ参照番号を付与しており、その機能については詳説しない。
図7に示すように、概念的には、PDLドライバ602、スプーラ603、ジョブ制御ポートモニタ604は、プリントデバイス607、607Aごとに用意されている。OSがウィンドウズ(登録商標)の場合には、これらをまとめてウィンドウズ(登録商標)プリントシステム700と称する場合もある。
プルプリントサーバ605には、PDLドライバ102に対応する数のプリントキュー701、701Aが含まれている。また、プリンタ500、500Aからのプルプリント要求により決定した宛先のプリンタ500、500Aに印刷データを送信するユニバーサル出力ポート702が含まれている。また、プリントキュー702、702Aは、プルプリントサーバ605により、図12に示すジョブ管理キュー1201の形式で印刷ジョブが管理されている。
印刷を行う場合、アプリケーション601は、印刷ジョブにユーザ識別情報を指定し印刷指示を発行する。この印刷指示に基づいてPDLドライバ602によって生成された印刷ジョブがジョブ制御ポートモニタ604からプルプリントサーバ605に渡されると、その印刷ジョブ情報は、まずプリントキュー701に保持される。
プリンタ500は、プルプリントの要求が入力されると、出力ポート702に対してプルプリント要求を発行する。そのプルプリント要求には、プルプリント要求を発行したプリンタの宛先が指定されている。出力ポート702は、プルプリント要求を受け付けると、指定された宛先に該当するプリンタ500の有するスケジューラに対して、スケジュールの要求を発行する。プリンタ500のスケジューラは、そのスケジューリング機能により、複数のプリントサーバ101〜102から受け付けたジョブのスケジューリング処理を行い、出力ポート702に対して印刷指示を発行する。印刷指示を受け付けた出力ポート702はプリンタ500に印刷データを送信する。
<プリンタのソフトウェア>
図8は、本発明の実施形態に好適な印刷システムにおけるプリンタ500内のネットワークプリントサーバ520およびプリンタコントローラ519の各記憶デバイスに記憶された制御プログラムのソフトウェア構成を説明するブロック図である。なお上記各制御プログラムは各制御機器のCPUによってプログラムが解析され処理される。
オペレーティングシステム801は、ネットワークプリントサーバ520の基本的なデータの入出力制御を統括するオペレーティングシステムである。オペレーティングシステム801内にはプログラム/データ記憶部509との入出力制御を行うファイルシステム805、プリンタコントローラ519と拡張インターフェース517を介して通信制御を行う拡張インタフェースドライバ807がある。また、オペレーティングシステム801は、ローカルエリアネットワーク(LAN512)の通信媒体を介して不図示のホストコンピュータ等の外部装置と通信を行うネットワークインターフェースドライバ806を有する。
アプリケーションプログラムインタフェース(API)802は、アプリケーションプログラムに対してOS801が備える各種機能を提供する。アプリケーションプログラムには、ネットワークプリントサーバ502で動作するデバイススケジューラ900やプルプリントエージェント906が含まれる。また、プリンタ500やユーザアプリケーションの登録・管理を行う管理アプリケーション804等も含まれる。API802には、印刷データの送受信機能を提供するデータ転送API、ビットマップ画像や表示メッセージ等のリソースデータの入出力制御を行うリソース制御APIが含まれる。さらに、プリンタ500の再起動や設定値の初期化や設定等の制御を行うプリンタ制御API、印刷ジョブの取り消しや再印刷指示などを制御するジョブ制御APIが含まれる。また、ネットワークプリントサーバ520の再起動や設定値の初期化や設定、およびアプリケーションプログラムの起動、登録、削除を行うプリントサーバ制御APIが含まれる。
USB制御部818は、USBケーブル819で接続された外部機器である、認証情報読み取り装置820を介し、認証情報記録媒体821からユーザ識別情報を取得する。認証情報読み取り装置820はたとえばカードリーダなど、記録媒体821に記録されたデータを読み取るためのデバイスである。
ネットワーク制御モジュール811は、ネットワークインターフェースドライバ806がLAN512を介してサーバ101〜102からの受信の通知を受け付けるネットワーク制御部である。どのサーバからの通信を判断することや、通信の制御を行うことができるモジュールである。
LPD/RAWモジュール810は、サーバ101〜102が送信する印刷データを受け取るために、所定のプロトコルに従った制御手順を実行するモジュールであり、受け付けた印刷データをプリンタコントローラに渡すことができる。
デバイススケジューラ900は、プリントコントローラ519のプログラム記憶部816またはネットワークプリントサーバ520のプログラム記憶部808に格納される。アプリケーションプログラムは、プリンタ500が起動すると、プログラム記憶部808に格納されたアプリケーションが持つライセンスと、ライセンス記憶部809に保存されているライセンスと比較し一致しているかどうかを判断する。一致していた場合は適正アプリケーションプログラムであると判断し、アプリケーションプログラムをネットワークプリントサーバ520のRAM514にロードされる。これは、プリンタコントローラ519についても同様であり、プログラム記憶部816に記憶されたアプリケーションのライセンスと、ライセンス記憶部817に記憶されたライセンスとが比較される。
一方プリンタコントローラ519には、プリンタコントローラ519の各種処理制御を統括するオペレーティングシステム812が実行されている。OS812は、その内部にプリントエンジン制御部814およびファイルシステム815を内包している。プリントエンジン制御部814はプリントエンジンとの通信制御を行う。ファイルシステム815は、機種依存リソース/プログラム記憶部816との入出力制御を行う。機種依存リソース/プログラム記憶部816には、ネットワークプリントサーバ520から参照されるビットマップ画像やエラーメッセージ等の機種依存リソースが記憶されている。またネットワークプリントサーバ520上で動作する機種依存アプリケーションプログラム等も記憶されている。
拡張インターフェース制御部813は、拡張インターフェース517を介してネットワークプリントサーバ520との通信制御を行う。拡張インターフェース制御部517は、制御種別毎に印刷データの入出力を制御するデータ転送論理インターフェース、機種依存リソース/プログラム記憶部509に記憶された各種データの入出力を制御するリソース制御論理インターフェースを含む。また、拡張インターフェース制御部517は、プリンタ500の再起動や設定値の初期化や設定等の制御を行うプリンタ制御論理インターフェース、印刷ジョブの取り消しや再印刷指示などを制御するジョブ制御論理インターフェースを備えている。拡張インターフェース制御部517は、各論理インターフェースを介してプルプリントサーバ520から要求された命令をオペレーティングシステム812に対して転送し、その処理結果をネットワークプリントサーバ520に対して返信する。
<デバイススケジューラ>
次に、デバイススケジューラ900とプルプリントエージェント906のソフトウェア構成について説明する。これらのアプリケーションプログラムは、本プリントシステムのスケジューリング機能やサーバ101〜102から受け付けた印刷ジョブの管理機能を持つデバイス上のユーザアプリケーションである。
図9において、デバイススケジューラ900の通信接続管理部901は、印刷するサーバ101〜102の接続状況や、サーバ101〜102に通知すべき情報を管理する。具体的には、サーバ101、102の接続状況の情報や、サーバ101〜102に通知すべき情報を取得し、保存し、要求に応じて出力する。接続しているサーバ情報はサーバ管理キューで管理される。通信接続管理部901は、プログラムアプリケーションインターフェース802のデータ転送API、ネットワークインターフェースドライバ806を経由してサーバと通信を行う。
スケジュール管理部902は、サーバ101〜102から受け付けた印刷ジョブのスケジューリングを行うであり、ジョブ管理部903、デバイス管理部904を持つ。
ジョブ管理部903は、サーバ101〜102が発行したスケジュール要求や、サーバ101〜102が印刷したジョブを管理する。ジョブ管理部903は、サーバが印刷するジョブの情報2002をジョブ管理キュー1101(図11)で管理している。
デバイス管理部904は、プリンタコントローラ519が持つプリンタの状態や受け付けた印刷ジョブの状態をイベントハンドラ905経由で受け付ける。またデバイス管理部904は、プリンタコントローラ519から受け付けたイベントを通信接続管理部901やジョブ管理部903に通知する。
またプルプリントエージェント906において、USB管理部907は、USB制御部818を介し、認証情報記憶媒体821からユーザ識別情報やプルプリントサーバのアドレスを取得してサーバ通信部908に渡す。デバイス管理部909は、デバイスのアドレス情報等を取得しサーバ管理部908に渡す。サーバ管理部908は取得した情報をプルプリントサーバ605に送信する。
<サーバ管理キュー>
図10は、通信接続管理部901が管理する、サーバのサーバ情報1002と、サーバ情報1002を管理するためのサーバ管理キュー1001である。
サーバ情報1002は、接続されているサーバ毎に通信接続管理部901が割り振ったサーバIDと、接続されているサーバそれぞれのIPアドレス、接続されているサーバが登録したイベントの種類などの情報を持つ。イベントの種類とは、プリンタコントローラ519が発行するデバイス状態のイベントやジョブ状態のイベントの種類を表す。
サーバ管理キュー1001は、接続されているサーバ101〜102のサーバ情報を、キューの形式で保持する。サーバとの通信のセッションが開始されると、該当するサーバの情報がサーバ管理キュー1001およびサーバ情報1002に登録され、切断すると該当するサーバ情報が削除されるようになっている。
<デバイススケジューラのジョブ管理キュー>
図11は、ジョブ管理部903が管理する情報で、接続されているサーバ101〜102が発行したスケジュール要求に対応するジョブ情報1102と、複数発生するジョブ情報を管理するジョブ管理キュー1101とを示す図である。
ジョブ情報1102は、サーバ101〜102が印刷を開始するために発行するスケジュール要求に付加される印刷ジョブの情報である。このジョブ情報1102は、印刷ジョブのドキュメント名、ジョブ管理部903が発行したジョブID、サーバで印刷を開始したユーザ名、ジョブのページ数、印刷ジョブの状況を表すジョブ状態を含む。さらに、サーバ101〜102が転送する印刷データに含まれるジョブデータID、印刷したサーバのIPアドレスが登録される。
ジョブ状態は、サーバ101〜102が当該印刷ジョブのスケジュール要求を発行してから、その印刷ジョブがプリンタ500から無くなるまでの状態を表している。ジョブ状態には、印刷待機中、スケジュールアップ状態、転送中、転送済み、印刷完了などの状態が存在する。
ジョブデータIDは、印刷データに含まれるジョブのIDで、プリンタコントローラ519内でのジョブ状態を通知するときなど付加させるIDである。
ジョブ管理キュー1101は、複数のジョブ情報1102を管理するための管理キューである。サーバ101〜102から印刷ジョブのスケジュール要求を受け付けると、受け付けたジョブIDがジョブ管理キュー1101に登録され、対応するジョブ情報1102がジョブ情報1002に登録される。印刷ジョブが印刷終了すると、該当するジョブIDがジョブ管理キュー1101から削除され、対応するジョブ情報も削除される。
<プルプリントサーバのジョブ管理キュー>
図12は、プルプリントサーバ605が管理するジョブ情報と、複数のジョブ情報を管理するジョブ管理キュー(プリントキュー701に相当する)を表している。
ジョブ情報1202は、印刷アプリケーション601が印刷指示したジョブの情報と、デバイススケジューラ900から、ジョブイベントと登録すると通知される他のサーバの印刷ジョブのジョブ情報である。ジョブ情報1202には、印刷ジョブのドキュメント名、ジョブID、ジョブのページ数、印刷ジョブの状況を表すジョブ状態、印刷データに含まれるジョブデータID、印刷アプリケーションがジョブに設定するユーザ識別情報が含まれる。
ジョブ状態は、サーバ101〜102が印刷を開始してからジョブがプリンタから無くなるまでの状態を表している。ジョブ状態には、スプール中、印刷待機中、スケジュールアップ状態、転送中、転送済み、印刷完了などの状態がある。ジョブがプリンタにいったん転送された後(印刷待機中、スケジュールアップ状態、転送中、転送済み、印刷完了などの状態)には、転送先のプリンタアドレスもジョブ状態に含まれる。プリンタアドレスは独立した項目としてジョブ情報に含めても良い。ジョブデータIDは、印刷データに含まれるジョブのIDで、デバイススケジューラからのジョブイベントに設定される通知される情報である。
ジョブ管理キュー1201は、複数のジョブ情報1202を管理するための管理キューであり、自サーバの印刷アプリケーション601から印刷指示したジョブのジョブ情報とデバイススケジューラから通知される他サーバのジョブIDが登録される。ジョブ情報1202には、ジョブ管理キューに登録された印刷ジョブの状態が登録される。
<プリンタ情報>
図13は、プルプリントサービス605が管理するプリンタ情報を表している。プリンタ情報1301は、ジョブ制御プリンタサービスが管理するそれぞれのプリンタキューの情報を表していて、PDLドライバ602に該当するプリンタ名などの情報が含まれている。
<プルプリント要求>
図14は、認証情報読み取り装置820で認証情報記録媒体821を検知した後にプルプリントエージェント906がプルプリントサーバ605に送信するプルプリント要求1402の図である。プルプリント要求1402には、デバイスアドレスとユーザ識別情報とが含まれる。デバイスアドレスは、プルプリントエージェント906が登録されているプリンタ500のIPアドレス情報などである。ユーザ識別情報は認証情報記録媒体821から読み取った情報である。
図15は、認証情報記録媒体821に含まれる情報の形式の一例である。ユーザ識別情報は、認証情報記録媒体821の所有者を識別する情報が含まれる。プルプリントサーバ情報は、プルプリントする印刷データを管理するサーバのIPアドレスなどの情報が含まれる。
<プルプリント印刷ジョブの登録>
図16は、印刷アプリケーション601がプルプリント用印刷ジョブをプルプリントサーバ605に登録するするまでの処理の流れを示す図である。
ステップS1601では、プルプリント用印刷ジョブを発行する必要が発生すると、アプリケーション601は、図6で示したように印刷処理を開始する。ステップS1602において、印刷データをジョブ制御ポートモニタ604が受け付けると、プルプリントサーバ605にジョブが引き渡される。ここまでは、印刷要求を発行したコンピュータのプリントシステムで実行される。これ以降は、ジョブ制御ポートモニタ604の送信先のプルプリントサーバ605により実行される。したがって、印刷要求元がクライアントコンピュータである場合には、
ステップS1603では、プルプリントサーバ605は、図7で説明したようにプリントキュー701にジョブを登録する。プリントキューは、ジョブ情報1202を作成し、関連する情報を設定する。また、そのジョブ情報1202をジョブ管理キュー1201で管理する。
ステップS1604において、印刷アプリケーション601が印刷ジョブに付したユーザ識別情報を、プルプリントサーバ604が受け取る。ユーザ識別情報は、印刷ジョブに付して送信しても良いし、印刷ジョブとは別に送信しても良い。ステップS1605においてプルプリントサーバ605は、該当するジョブIDのジョブ情報1202に受け取ったユーザ識別情報を設定する。
ステップS1606では、プリントキューは印刷ジョブの受け付け、ジョブ管理キュー1201及びジョブ情報1202への登録を終了すると、ジョブ情報1202のジョブ状態を「停止状態」とする。
以上のようにプルプリントサーバ605は、印刷アプリケーション601からユーザ識別情報と関連した印刷ジョブを保持し、プルプリントエージェントからのプルプリント要求を待機することになる。
<プルプリント要求処理>
図17は、プルプリントユーザが認証記憶媒体821を、認証読み取り装置820にセットすると、プルプリントエージェント906がプルプリントサーバ605にプルプリント要求を発行する処理の流れを示す図である。図17は、プリンタ500、特にプルプリントエージェント906で実行される。
ステップS1701では、プルプリントユーザが認証記憶媒体821を認証読み取り装置820にセットすると、認証読み取り装置820がそれを検知する。ステップS1702において、図15で示す認証記憶媒体の情報を読み取る。
ステップS1703では、プルプリントエージェント906が登録されているプリンタデバイスのIPアドレスを取得する。ステップS1704では、プルプリントエージェント906は、ステップS1702で取得した認証記憶媒体の情報に含まれる、プルプリントサーバのアドレスに対してプルプリント要求を発行する。プルプリント要求には、ステップS1702で取得した認証記憶媒体の情報に含まれるユーザ識別情報と、ステップS1703で取得したプリンタのIPアドレスが、図14に示す形式で付加されている。
図18には、プルプリントサーバ605がプルプリントエージェント906からプルプリント要求を受け付けてから印刷データを転送するまでの流れを示している。図18は、印刷開始時に受けるプルプリント要求に対応した処理を説明するもので、図25に示すような、ジョブがプリンタにキューイングされている際に当該ジョブに関して受けた再度のプルプリント要求に対する処理は含まれていない。図25においては、その場合処理も含めて説明する。
ステップS1801では、プルプリントエージェント906からのプルプリント要求か、または、デバイススケジューラ900からのスケジュールアップの受け付けを待機する。プルプリントエージェントからのプルプリント要求を受け付ければステップS1802に処理を移行する。スケジュールUPのコマンドを受け付けるとステップS1809に処理を移行する。
ステップS1802では、プルプリント要求の内容を読み、それに付加されているデバイスアドレス、ユーザ識別情報を取得する。ステップS1803では、図16でプリントキューに登録された印刷ジョブの中から、ステップS1802で取得したユーザ識別情報に該当するジョブが存在するかを検索する。検索はジョブ情報を対象にして行い、ヒットしたなら該当するジョブIDが保存される。
該当するジョブが存在する場合には、S1804に移行する。該当するジョブが存在しない場合は、S1805でプルプリントエージェント906にエラーを通知しステップS1801に処理を移行する。
ステップS1804では、デバイススケジューラ900に接続し、接続要求コマンドを発行する。サーバが接続要求コマンドを発行すると、サーバの情報がデバイススケジューラ900のサーバ管理キュー1001に登録される。これ以降、サーバとデバイススケジューラ901間で情報のやり取りを行うことができる。
ステップS1806では、デバイススケジューラ900に対して、ジョブイベント、デバイスイベントを登録する。ジョブイベントを登録すると、自サーバが印刷するジョブや、他のサーバが印刷するジョブの状態の変化の通知がデバイススケジューラ900より各サーバに通知されるようになる。また、デバイスイベントを登録すると、プリンタ500の状態の変化がサーバに通知されるようになる。
ステップS1807では、デバイススケジューラ900で管理しているジョブ管理キュー1101に登録されているジョブのリスト(ジョブ管理キュー1101そのもので良い)を取得する。このジョブリストとジョブイベントにより、デバイススケジューラ900が管理するジョブの進捗状況を把握することが可能となる。
以上の処理により、印刷する準備が整う。ステップS1808においては、印刷するジョブのスケジュール要求をデバイススケジューラ900に行い、ステップS1801で次の指示を待機する。この際、ステップS1803で見つけた該当ジョブが複数存在すれば、複数のジョブのスケジュール要求を発行する場合もある。
ステップS1801において、デバイススケジューラ900から印刷データの転送指示であるスケジュールUPのコマンドを受け付けるとステップS1807に処理を移行する。ステップS1809では、印刷指示を受けたジョブの印刷データの転送を開始する。
印刷データの送信が開始されるとステップS1810において、デバイススケジューラ900に対して、転送が開始されたことを通知するために転送開始状態を通知する。
ステップS1811で印刷データの転送が終了すると、ステップS1812においてデバイススケジューラに転送が終了したことを通知し、処理をステップS1801に移行する。
この手順により、プリンタ500から受信したプルプリント要求に対してスケジュール要求を発行する。また、スケジュール要求によりスケジュールされた印刷ジョブが、その実行タイミングに達することで送信されるスケジュールアップメッセージに対して、印刷データの送信を行う。
<スケジュール管理>
図19では、プルプリントサービス605のスケジュール要求の受け付けから、スケジュールUPを発行するまでの、デバイススケジューラ900のスケジュール管理部902により実行される処理の流れについて説明する。
ステップS1901において、プルプリントサーバ605からのメッセージを受け付けると、それがスケジュール要求の通知(S1808)なのか、転送済み状態の通知(S1812)なのかを判断する。スケジュール要求の通知であれば、ステップS1902に処理を移行し、転送済み状態の通知であればステップS1903に処理を移行する。
ステップS1902では、ジョブ管理部903で発行したジョブIDを設定したジョブ情報1102を作成し、スケジュール要求に付加された情報をジョブ情報1102に設定して、スケジュール要求を受け付けた順でジョブ管理キュー1101に登録する。
次に、ステップS1903で、ジョブ管理キュー1201に登録されたジョブ情報のジョブ状態を確認する。ジョブ状態がスケジュールUP、転送中のものがあれば、既にあるサーバに印刷データを転送するように指示しているため、ステップS1901に処理を移行する。ジョブ状態がスケジュールUP、または転送中のものがなければステップS1904に処理を移行し、スケジュールUPの発行の準備を行う。
ステップS1904では、ジョブ管理キュー1201で、先にスケジュール要求を受け付けた順にジョブ状態を確認し、スケジュール待機中のジョブが見つかるとステップS1905に処理を移行する。すなわち、待機中のジョブの内キューの先頭にあるジョブに着目する。スケジュール待機中とはジョブ状態が「停止状態」であるようなジョブである。スケジュール待機中のジョブが無ければ、ステップS1901に処理を移行する。
ステップS1905では、処理の順番に達したジョブについて、該当するサーバのプルプリントサーバ605に対して、印刷データの転送を開始させるスケジュールUPを通知する。ステップS1906で、該当するジョブ情報のジョブ状態を「スケジュールUP」状態に更新し、ステップS1901に処理を移行する。
<プルプリントサーバ処理>
図20は、デバイススケジューラ900からの通知やコマンドを受け付けた場合のプルプリントサーバ605の処理の流れについて説明している。なお図20の処理は図18の処理とマージすることもできる。その場合には、図18のステップS1801においてステップS2001の判定も合わせて行い、条件に応じた処理に分岐させる。
ステップS2001では、デバイススケジューラ900からのメッセージを待機し、ジョブイベントの通知があるか、またはジョブリストが返送されてくるかを判断する。ジョブイベントが来ると、ステップS2002に処理を移行し、ジョブリストが来るとステップS2008に処理を移行する。
ジョブリストが返送されてくると、ステップS2008で、プルプリントサーバ605が管理するジョブ管理キュー1201のジョブ情報1202に、受信したジョブリストから得られたジョブ情報を設定する。
ステップS2002では、デバイススケジューラ900から通知されたジョブイベント通知が、ジョブ完了通知であるか、ジョブ状態変更通知であるかを判断する。ジョブ状態変更通知であれば、ステップS2009において、該当するジョブ情報のジョブ状態を、通知された状態へと変更する。
ステップS2002において、受け付けたイベント通知がジョブ完了通知であれば、ステップS2003において、該当するジョブ情報を、ジョブ管理キュー1201から削除する。同時に削除したジョブのジョブ情報をジョブ情報1202から削除する。
ステップS2004では、ジョブ管理キュー1201に、印刷が終了していない自サーバのジョブが残されているかを判定する。残されていれば、まだデバイススケジューラ900とのやり取りが必要であるため、デバイススケジューラ900との接続を継続するために、ステップS2001に処理を移行する。
ステップS2004で、自サーバのジョブがなければ、ステップS2005に処理を移行し、デバイススケジューラ900との接続を終了するための処理を開始する。
ステップS2005では、接続を開始したときにデバイススケジューラ900に登録したジョブイベント、デバイスイベントの登録解除を依頼する。デバイススケジューラ900は、この依頼に応じて、サーバ情報のイベント登録の内容を削除する。このイベント登録の情報がなければ、デバイススケジューラ900が管理するジョブの状態が変化してもイベントが通知されてくることはない。
次にステップS2006において、デバイススケジューラ900に対して切断の要求を発行する。デバイススケジューラ900は、切断要求に応じて、サーバ管理キューから該当するサーバ情報を削除する。
ステップS2007では、デバイススケジューラ900とのセッションを切断する処理を行い、処理をステップS2001で待機する。
<ジョブ管理処理>
図21では、後述するデバイス管理からのジョブ状態通知イベントの受け付けからプルプリントサーバ605からのジョブリスト要求の受け付けに対するジョブ管理部903の処理を示している。
ステップS2101では、通信接続管理部901やデバイス管理部904からの通知を受け付けると、デバイス管理部904からのジョブ状態通知であるか、ジョブリスト要求であるかを判断する。
デバイス管理部904からのジョブ状態通知であれば、ステップS2102に処理を移行し、該当するジョブ情報1102のジョブ状態を更新する。更にステップS2103に処理を移行し、印刷完了の通知であるかを判断する。印刷完了でなければ処理をステップS2104に移行し、接続管理部901に、ジョブの状態のイベントをサーバに発行するように通知する。
ステップS2103で、印刷完了の通知であれば、ステップS2105に処理を移行し、ジョブ管理キュー1101から該当するジョブを削除する。ステップS2106で、接続管理部901にジョブの完了イベントをサーバに発行するように通知し、処理をステップS2101に移行する。
ステップS2101で、プルプリントサーバ605からのジョブリスト要求の受け付けると、ステップS2107に分岐する。ステップS2107においては、ジョブ管理キュー1101に登録されたジョブ情報1102のリストを要求元のサーバに送信するように接続管理部901にジョブ情報リストを通知する。
<イベント通知処理>
図22は、プリンタコントローラ519からのデバイス状態、ジョブ状態通知をイベントハンドラ905を経由して受け付け、ジョブ管理部903や通信接続管理部901に通知するデバイス管理部904の処理である。
デバイススケジューラ900が起動されると、ステップS2201では、デバイス管理部904が、イベントハンドラ905を経由してプリンタコントローラ519に対して、イベント登録の処理を行う。イベント登録は、デバイスの状態が変更した場合や、プリンタコントローラ519が処理する印刷ジョブの状態が変更したばあいにそれらの状態を通知するように行われるものである。
ステップS2202では、プリンタコントローラ519で発生したイベントをイベントハンドラ905経由で受け付けると、ジョブのイベントであるかデバイスのイベントであるかを判断する。ジョブのイベントであれば、ステップS2203でジョブ管理部903にジョブイベントを通知し、ステップS2202に処理を移行する。デバイスのイベントであれば、処理をステップS2204に移行する。ステップS2204では、デバイスの状態をデバイス管理部904で保持した後、ステップS2205で通信接続管理部901にデバイスイベントを通知し、処理をステップS2202に移行する。
<プリンタにおける受信処理>
図23は、サーバ101〜102からの要求や通知、デバイス管理部904からの通知、ジョブ管理部903への要求や通知を処理する通信接続管理部901の処理の流れについて記載する。
ステップS2301では、サーバ101〜102やデバイス管理部904、ジョブ管理部903からの通知や要求を受け付け、どの通知や要求であるかを判断する。
ステップS2301において受け付けた要求やイベントがサーバ101〜102からの接続要求であれば、ステップS2302に移行する。ステップS2302では、サーバ管理キュー1001に、通信接続管理部901で発行したサーバIDと、要求を発したサーバのIPアドレスを設定し、サーバ管理キュー1001にサーバ情報を登録する。
ステップS2301において受け付けた要求やイベントがサーバ101〜102からのイベント登録であれば、ステップS2303に処理を移行する。ステップS2303では、該当するサーバ情報1002の登録イベントとして、通知されたイベントの種類を登録する。イベントの種類には、ジョブの状態の変化を通知するジョブイベント、デバイスの状態の変化を通知するデバイスイベントがある。
ステップS2301において受け付けた要求やイベントがデバイス管理部904からのデバイスイベントやジョブ管理部903からのジョブイベントであれば、ステップS2304に分岐する。ステップS2304では、これらのイベントを通知すべきサーバを認識するために、サーバ管理キュー1001に登録された全てのサーバ情報から、サーバ情報1002の登録イベントの設定を参照して、通知すべきかどうかを判断する。通知すべきであると判断されたサーバについて、そのIPアドレスを保持し、ステップS1705において、通知すべき全てのサーバに対してイベントを送信する。
ステップS2301において受け付けた要求やイベントがサーバからの切断要求であればステップS2306に処理を移行し、サーバ管理キュー1001から該当するサーバのサーバ情報を削除する。
<プルプリントの処理シーケンス>
図24は、これまで説明してきた各コンポーネントのフローの全体の流れの概略を示した図である。サーバ101〜102のプルプリントサーバ605が、ジョブを受け付け後、プリンタデバイス606にスケジュール要求を発行するところから、プリンタで印刷が終了するところまでのやり取りについて図24に記載する。
プルプリントサーバ605は、印刷データを受け付けると、デバイススケジューラ900とセッション接続2401を開始する。サーバの情報を通知する接続要求コマンド2402、ジョブ/デバイス状態を通知してもらうためのイベント登録2403、デバイススケジューラがスケジュール管理するジョブの情報を取得するジョブリスト取得コマンド2404を発行する。
デバイススケジューラ900は、接続要2402求を受け付けると、サーバ情報をサーバ管理キュー1001に登録し、イベントの登録2403を受け付けると該当するサーバ情報1002の登録イベントに設定する。ジョブリスト要求2404を受け付けると、ジョブ管理キューに登録されているジョブ情報のリストを送信する。
次に、サーバ101〜102が印刷を予約するためのスケジュール要求2405のコマンドを発行する。デバイススケジューラ900はスケジュール要求2405を受け付けると、ジョブ管理キュー1101にジョブIDを登録する。ジョブ情報1102には、ドキュメント名等の情報を設定する。デバイススケジューラ900は、プリンタ500が印刷データを受け付けられるようになるとスケジュールUP2406を発行し、プルプリントサーバ605に対して印刷データの送信を開始するように促す。また、スケジュールUP2406を発行すると、ジョブ情報のジョブ状態をスケジュールUP状態に更新する。
プルプリントサーバ605は、スケジュールUPを受け付けるとLPD/RAW810に印刷データ2407の転送を開始し、転送が始まるとデバイススケジューラに対して転送開始通知2409を送る。デバイススケジューラ900は、転送開始通知2409を受けると、ジョブ情報のジョブ状態に転送中の状態に更新する。
LPD/RAW810が印刷データ2407を受け付けるとプリンタコントローラ519にデータ2408を転送し、プリンタコントローラ519で印刷が開始される。プリンタコントローラ519は、印刷が開始されるとジョブ状態2410をデバイススケジューラ900に通知する。デバイススケジューラ900は、サーバ情報1002の登録イベントの情報を基に、サーバにジョブの印刷状態2411を通知する。
また、プルプリントサーバ605は印刷データ2412の転送が終了するとデバイススケジューラ900に対して、転送終了通知2414を送信する。デバイススケジューラ900は、転送終了通知2414を受けると、ジョブ情報のジョブ状態に転送済の状態に更新する。
プリンタコントローラ900で印刷処理が終了すると、ジョブの状態として印刷完了の通知2413をデバイススケジューラ900に通知する。デバイススケジューラ900は、サーバ情報1102の登録イベントの情報を基に、サーバにジョブの印刷完了の状態2416を通知する。
プルプリントサーバ605は、上記通知により印刷が完了したことを確認すと、プリンタ500からの通知が必要なくなるので、デバイススケジューラ900からのイベント通知の登録を解除要求2417を発行する。イベント解除要求2417を受け付けたデバイススケジューラ900は、サーバ情報1002の登録イベントにイベントを通知しない旨の情報を設定する。
その後、プルプリントサーバ605は、デバイススケジューラ900との接続を終了するための切断要求2418を発行し、セッションを終了する。
デバイススケジューラ900は、切断要求2418を受け付けると、サーバ管理キュー1101及びサーバ情報1102から該当するサーバ情報を削除し、該サーバとの処理を終了する。
<印刷ジョブの中断あるいは移動処理>
図25は、プルプリントサーバ605がプルプリント要求を受け取った際、そのプルプリント要求を行ったユーザに該当するジョブがプリンタ500に転送されている場合、該当ジョブに対して削除、代行などの処理を行うフローである。この処理は、ネットワークプリンタからプルプリントサーバへのプルプリント要求をトリガにして実行される。すなわち、プリンタにキューイングされているジョブに対するプルプリント要求は、当該ジョブの中断あるいは他のプリンタへの転送などの指示として解釈される。
ステップS2501において、プルプリント要求を待機する。プルプリント要求が来るとステップS2502において、プルプリント要求に付加されているユーザ識別情報とデバイスのIPアドレスを取得する。ここで受信するプルプリント要求としては、あるジョブに対して初めてのプルプリント要求である場合と、あるジョブに対しての再度のプルプリント要求である場合がある。この再度のプルプリント要求はジョブ処理に係る変更要求に該当する。ここで、S2502におけるプルプリント要求に係る情報の取得方法は、図17で説明した通りである。
ステップS2503においてステップS2502で取得したユーザ識別情報に該当するジョブがプリントキュー(ジョブ管理キュー1201)に存在するか判定される。存在すればステップS2513に処理を移行し、存在しなければ、ステップS2501に処理を移行する。
ステップS2513では、ステップS2503でプリントキューに存在すると判定されたジョブが、いずれかのプリンタに転送されているか判定する。この判定は、デバイススケジューラ900が管理するプリントキュー(図12)を参照することで可能である。ジョブ情報(ジョブ状態)にプリンタアドレスが登録されていれば、そのジョブは転送済みである。プリンタに転送済みであれば、ステップS2504に分岐する。転送済みでなければ、図18のステップS1801に分岐する。ステップS1801ではプルプリント要求に応じてプリンタにジョブをスケジュールさせる。
ステップS2504では、ステップS2502で取得したプルプリント要求を発行したプリンタのアドレスと、ステップS2503で見つけたプリンタに転送されているジョブのデバイスアドレスとが同じであるかを判定する。同じアドレスであればステップS2505に移行し、異なればステップS2508に処理を移行する。同じアドレスであるとは、或るジョブについてプルプリントを要求したプリンタと、当該ジョブについて再度プルプリント要求を発行したプリンタとが同一であることを意味する。
ステップS2505では、ステップS2503で見つけたジョブが転送されているプリンタの状態を判定する。プリンタの状態は、前述の通りデバイススケジューラ900からイベントで通知されている。プリンタの状態が正常であれば、ステップS2506に処理を移行し、ステップS2503で見つけたプリンタに転送された該当ジョブ全ての一時停止要求をデバイススケジューラに発行し、該当ジョブ全てを一時停止状態にする。一時停止されたジョブが実行中の場合には、その後にキューされたジョブが繰り上げられて実行されることが望ましい。それというのは、実行中のジョブも含めて印刷の一時的な中断は、たとえばオフラインキーなどを用いて指示可能なプリンタが多いためである。
ステップS2505で確認したプリンタの状態が用紙無しなどのエラー状態であれば、ステップS2507に処理を移行し、プリンタに転送された該当ジョブのキャンセル要求をデバイススケジューラ900に発行し、該当ジョブを削除する。
ステップS2508では、ステップS2503で見つけたジョブが転送されているプリンタの状態を確認する。確認したプリンタの状態が正常であれば、ステップS2509に処理を移行する。ステップS2509では、ステップS2503で見つけたジョブで、印刷待機中の状態のジョブ、つまり、まだ印刷処理がされていないジョブを、プルプリント要求の発行元のプリンタに対して送信する。すなわちそのプリンタによる印刷処理を開始させる。それとともに、ステップS2510において、そのジョブがもともと転送されているプリンタのジョブ管理キューから、そのジョブを削除する。ステップS2509、ステップS2510の組み合わせ処理によって、あるプリンタで待機しているジョブは別のプリンタに移動される。そのため、先頭ジョブつまりまさに印刷処理されているジョブと、2台のプリンタで並行して印刷されることになる。プルプリントによる負荷分散印刷となる。
ステップS2508で確認したデバイスの状態が異常であれば、ステップS2511に処理を移行する。たとえばプリンタが用紙無しなどのエラーで止まっており、プリンタの先頭のジョブを含め、プリンタが正常な状態に戻るまで印刷が待たされた状態となっている。
ステップS2511では、先頭ジョブを含め、プルプリント要求を発行したプリンタに対して印刷処理を開始する。ステップS2512において、もともと転送していたプリンタの該ジョブを削除する。ステップS2511、ステップS2512の組み合わせ処理によって、元々印刷していたプリンタの先頭ジョブつまりまさに印刷処理されているジョブと、後続で待機していたジョブが別のプリンタに移動され、代行印刷されることになる。先頭ジョブを別のプリンタで代行する場合には、当然、そのジョブの先頭から代行されるようにすることも、途中のページから代行することも動作的に可能であることはいうまでもない。
以上のように、従来のプルプリントシステムでは、ユーザがプリンタまで出向いて処理をするため、その場でジョブ制御を行うことができない。これに対して本実施形態によれば、認証情報読み取り装置に認証情報記録媒体を通すことで、プリンタから、ジョブの削除や停止、あるいは代行印刷や振替印刷が可能となる。このためプリンタの状態に応じてよってジョブの制御を指定することが可能となり、プルプリントシステムの利便性を向上させることになる。
具体的には、プルプリントジョブがプリンタにスケジュールされた状態でプリンタから発行されたプルプリント要求は、ジョブの変更要求として解釈される。その変更要求は更に、プルプリント要求元のプリンタとジョブの状態とに応じて、中断要求或いは転送要求として解釈される。すなわちプルプリントを開始させる指示と、印刷ジョブの中断、中止または転送指示とは同一の操作で行われる。そのため、従来のプルプリントサービスに対応したプリンタが有するユーザインターフェースを変更することなく、プリンタからジョブの中断や転送の指示を行うことができる。また、プリンタからジョブの中断や転送の指示が可能になったことで、プルプリントの利便性を向上させることができる。
[他の実施形態]
なお本発明は、複数の機器(例えばホストコンピュータ、インターフェース機器、リーダ、プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機、ファクシミリ装置など)に適用してもよい。また本発明の目的は、前述の実施形態の機能を実現するプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータが記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体およびプログラムコードを記憶した記憶媒体は本発明を構成することになる。
また、本発明には、プログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた場合についても、本発明は適用される。その場合、書き込まれたプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される。
本発明の実施形態としてのプリントシステムの全体構成を示すブロック図である。 サーバのハードウェア構成を説明するブロック図である。 図2に示したRAM202のメモリマップの一例を示す図である。 図2に示したFD204のメモリマップの一例を示す図である。 プリンタのハードウェア構成を説明するブロック図である。 サーバのプリントシステムのソフトウェア構成の例を示す図である。 サーバの印刷時の印刷ジョブの流れを示す図である。 プリンタのソフトウェア構成の例を示す図である。 プリンタのユーザアプリケーションのソフトウェア構成の例を示す図である。 デバイススケジューラで管理するサーバ情報とサーバ管理キューを示す図である。 デバイススケジューラで管理するジョブ情報とジョブ管理キューを示す図である。 ルプリントサーバが管理するジョブ情報とジョブ管理キューを示す図である。 プルプリントサーバが管理するプリンタキューの情報を表す図である。 プルプリントエージェントがプルプリントサーバに送信する情報を示す図である。 認証情報記憶媒体が記憶している情報を示す図である。 プルプリントサーバがプルプリントジョブを印刷アプリケーションから受け付けるフローを示す図である。 プルプリントエージェントの処理の流れを示す図である。 プルプリントサーバがプルプリント要求を受け付けてから印刷データを送信するまでの処理の流れを示す図である。 デバイススケジューラがジョブを受け付け、スケジュールアップする処理の流れを示す図である。 プルプリントサーバのジョブ転送後の処理を示す図である。 ジョブ管理部のジョブ状態通知イベントの受け付けからジョブリスト要求の受け付けに対する処理を示すフローチャートである。 デバイススケジューラのイベント登録処理に関する処理の流れを示す図である。 サーバからの要求や通知、デバイス管理部からの通知、ジョブ管理部903への要求や通知を処理する通信接続管理部の処理を示すフローチャートある。 プルプリントサーバとデバイススケジューラ、LPD/RAW、プリンタコントローラ間の印刷シーケンスを示す図である。 プルプリントサーバのジョブ制御に関する処理の流れを示す図である。

Claims (10)

  1. 印刷装置から印刷を起動可能な印刷ジョブを提供するプルプリントサーバであって、
    一または複数の印刷ジョブを保持し、保持された印刷ジョブのうち印刷装置からの印刷開始要求に応じた印刷ジョブを印刷装置に送信するジョブ送信手段と、
    印刷ジョブの変更要求を受信し、受信した変更要求および当該変更要求の対象となる印刷ジョブの状態に応じて、当該印刷ジョブの一時的な中断または中止または他のプリンタへの転送を行う要求処理手段と
    を備えることを特徴とするプルプリントサーバ。
  2. 前記変更要求の対象となる印刷ジョブが、前記印刷装置に送信されており、該印刷ジョブが送信されている印刷装置と、前記印刷ジョブの変更要求の発行元の印刷装置とが同一である場合には、前記要求処理手段は、前記印刷ジョブの変更要求に応じて、該当する印刷ジョブを中止または一時的に中断させることを特徴とする請求項1に記載のプルプリントサーバ。
  3. 前記変更要求の対象となる印刷ジョブが、前記印刷装置に送信されており、該印刷ジョブが送信されている印刷装置と、前記印刷ジョブの変更要求の発行元の印刷装置とが同一でない場合には、前記要求処理手段は、前記印刷ジョブの変更要求に応じて、該当する印刷ジョブを前記変更要求の発行元の印刷装置に転送することを特徴とする請求項1に記載のプルプリントサーバ。
  4. 前記プルプリントサーバは、前記印刷装置に対して転送前の印刷ジョブを、ユーザ識別情報と関連づけて保存するジョブ保存手段を更に備え、
    前記要求処理手段は、前記変更要求とともに受信したユーザ識別情報に基づいて、変更要求の対象となる印刷ジョブを特定することを特徴とする請求項1に記載のプルプリントサーバ。
  5. 印刷装置から印刷を起動可能な印刷ジョブを提供するためのプルプリントサーバの制御方法であって、
    ジョブ送信手段が、一または複数の印刷ジョブを保持し、保持された印刷ジョブのうち印刷装置からの印刷開始要求に応じた印刷ジョブを印刷装置に送信するジョブ送信工程と、
    要求処理手段が、印刷ジョブの変更要求を受信し、受信した変更要求および当該変更要求の対象となる印刷ジョブの状態に応じて、当該印刷ジョブの一時的な中断または中止または他のプリンタへの転送を行う要求処理工程と
    を有することを特徴とするプルプリントサーバの制御方法。
  6. 前記変更要求の対象となる印刷ジョブが、前記印刷装置に送信されており、該印刷ジョブが送信されている印刷装置と、前記印刷ジョブの変更要求の発行元の印刷装置とが同一である場合には、前記要求処理工程では、前記印刷ジョブの変更要求に応じて、該当する印刷ジョブを中止または一時的に中断させることを特徴とする請求項5に記載の方法。
  7. 前記変更要求の対象となる印刷ジョブが、前記印刷装置に送信されており、該印刷ジョブが送信されている印刷装置と、前記印刷ジョブの変更要求の発行元の印刷装置とが同一でない場合には、前記要求処理工程では、前記印刷ジョブの変更要求に応じて、該当する印刷ジョブを前記変更要求の発行元の印刷装置に転送することを特徴とする請求項5に記載の方法。
  8. 前記プルプリントサーバは、前記印刷装置に対して転送前の印刷ジョブを、ユーザ識別情報と関連づけて保存するジョブ保存工程を更に備え、
    前記要求処理工程では、前記変更要求とともに受信したユーザ識別情報に基づいて、変更要求の対象となる印刷ジョブを特定することを特徴とする請求項5に記載の方法。
  9. 請求項5乃至8のいずれか1項に記載の方法における各工程をコンピュータにより実行させるためのプログラム。
  10. 請求項5乃至8のいずれか1項に記載の方法における各工程をコンピュータにより実行させるためのプログラムを記憶したことを特徴とする記憶媒体。
JP2006288039A 2006-10-23 2006-10-23 プルプリントサーバとその制御方法 Withdrawn JP2008107921A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006288039A JP2008107921A (ja) 2006-10-23 2006-10-23 プルプリントサーバとその制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006288039A JP2008107921A (ja) 2006-10-23 2006-10-23 プルプリントサーバとその制御方法

Publications (1)

Publication Number Publication Date
JP2008107921A true JP2008107921A (ja) 2008-05-08

Family

ID=39441247

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006288039A Withdrawn JP2008107921A (ja) 2006-10-23 2006-10-23 プルプリントサーバとその制御方法

Country Status (1)

Country Link
JP (1) JP2008107921A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010108104A (ja) * 2008-10-28 2010-05-13 Canon Inc 印刷システム及びその制御方法
CN102298511A (zh) * 2010-06-28 2011-12-28 株式会社东芝 服务器装置、图像形成系统和图像形成数据的管理方法
US9323480B2 (en) 2011-01-20 2016-04-26 Ricoh Company, Limited Image forming system, print data management device, and method of controlling print data management device
JP2017062825A (ja) * 2012-03-22 2017-03-30 株式会社リコー 情報処理装置及びクラウドシステム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010108104A (ja) * 2008-10-28 2010-05-13 Canon Inc 印刷システム及びその制御方法
CN102298511A (zh) * 2010-06-28 2011-12-28 株式会社东芝 服务器装置、图像形成系统和图像形成数据的管理方法
US9323480B2 (en) 2011-01-20 2016-04-26 Ricoh Company, Limited Image forming system, print data management device, and method of controlling print data management device
JP2017062825A (ja) * 2012-03-22 2017-03-30 株式会社リコー 情報処理装置及びクラウドシステム

Similar Documents

Publication Publication Date Title
JP4869031B2 (ja) 印刷システム、サーバ装置及びジョブ制御方法
US8014007B2 (en) Information processing apparatus, substitute print job management method, information processing program, and recording medium
JP3854963B2 (ja) 情報処理装置、印刷システム、負荷分散印刷方法、及び制御プログラム
JP5344575B2 (ja) 画像形成装置
JP3774702B2 (ja) 印刷制御プログラム及び情報処理装置
JP4827615B2 (ja) 情報処理装置、印刷システム、監視方法、プログラム及び記憶媒体
JP3927949B2 (ja) 情報処理装置、負荷分散印刷方法、プログラム、及び記憶媒体
JP2006056069A (ja) 印刷制御装置および印刷制御方法
JP4971778B2 (ja) 印刷管理装置、印刷管理方法、及びコンピュータプログラム
JP2009037488A (ja) 印刷ジョブの制御方法及びその印刷システムと情報処理装置と印刷装置
JP2008107921A (ja) プルプリントサーバとその制御方法
JP2011253568A (ja) 印刷システム、サーバ装置及びジョブ制御方法
JP4298738B2 (ja) クライアントコンピュータ及び情報処理方法
JP4618778B2 (ja) 印刷装置、ネットワーク接続装置、印刷制御方法及び印刷制御プログラム
JP2008059372A (ja) 印刷制御装置およびその方法
JP2007025970A (ja) プルプリントシステム
JP2006209410A (ja) 印刷システム
JP4164479B2 (ja) 印刷制御プログラム、及び、処理方法、及び、記憶媒体、及び、情報処理装置、並びに、印刷システム
JP2007004680A (ja) 印刷制御装置、印刷制御方法および印刷制御プログラム
JP2008097226A (ja) 情報処理装置及び情報処理方法
JP2008077355A (ja) 情報処理装置及びプリントシステム並びに印刷ジョブの転送制御方法
JP2005333447A (ja) 情報処理装置
JP4110021B2 (ja) 部門管理を伴う印刷処理を行う印刷処理プログラム及び情報処理装置及び情報処理方法並びに記憶媒体
JP2006056072A (ja) 印刷システム及び印刷ジョブの制御方法
JP2021192190A (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: 20100105