米国特許情報 | 欧州特許情報 | 国際公開(PCT)情報 | Google の米国特許検索
 
     特許分類
A 農業
B 衣類
C 家具
D 医学
E スポ−ツ;娯楽
F 加工処理操作
G 机上付属具
H 装飾
I 車両
J 包装;運搬
L 化学;冶金
M 繊維;紙;印刷
N 固定構造物
O 機械工学
P 武器
Q 照明
R 測定; 光学
S 写真;映画
T 計算機;電気通信
U 核技術
V 電気素子
W 発電
X 楽器;音響


  ホーム -> 計算機;電気通信 -> キヤノン株式会社

発明の名称 印刷制御装置、印刷制御方法および印刷制御プログラム
発行国 日本国特許庁(JP)
公報種別 公開特許公報(A)
公開番号 特開2007−4680(P2007−4680A)
公開日 平成19年1月11日(2007.1.11)
出願番号 特願2005−186589(P2005−186589)
出願日 平成17年6月27日(2005.6.27)
代理人 【識別番号】100090538
【弁理士】
【氏名又は名称】西山 恵三
発明者 八木田 隆
要約 課題
プルプリント要求を依頼した印刷装置におけるユーザに対して、プルプリントの印刷ジョブを明確に認識させる。

解決手段
サーバにおいて、プリンタからプルプリント要求を受け付けると、プルプリントジョブを生成すると共に、停止コマンドのジョブを生成してプリンタへ送信し、プリンタをオフライン状態にする。
特許請求の範囲
【請求項1】
印刷装置とネットワークを介して通信可能であり、印刷すべき情報ファイルを格納している印刷制御装置であって、
前記印刷装置からプルプリント要求を受け付ける受付手段と、
前記受付手段でプルプリント要求を受けた場合に、該プリント要求に該当する印刷すべき情報ファイルを印刷ジョブとして前記印刷装置に送信するジョブ送信手段と、
前記ジョブ送信手段により印刷ジョブを前記印刷装置に送信する際に、前記印刷装置における当該印刷ジョブの印刷時に印刷装置を停止状態させるべく、前記印刷装置で解釈可能な所定の停止コマンドを生成する生成手段と、
を備えることを特徴とする印刷制御装置。
【請求項2】
前記生成手段は、前記停止コマンドを前記印刷ジョブ中に付加するか、前記印刷ジョブの送信前に当該印刷ジョブとは独立したジョブに前記停止コマンドを付加することを特徴とする請求項1記載の印刷制御装置。
【請求項3】
前記停止コマンドは、前記印刷装置で前記印刷ジョブの印刷が行われる前、もしくは印刷が行われた後に、前記印刷装置を所定の操作が行われるまで印刷を行わない停止状態にさせるコマンドであることを特徴とする請求項1または2に記載の印刷制御装置。
【請求項4】
前記生成手段は、前記印刷装置が停止状態でいる間に前記印刷装置の操作部にプルプリント印刷処理である旨を表示するためのメッセージを前記停止コマンドと共に生成することを特徴とする請求項1乃至3のいずれか1項に記載の印刷制御装置。
【請求項5】
前記生成手段は、前記印刷装置が停止状態になったときに前記印刷装置においてビープ音を鳴らすためのコマンドを前記停止コマンドと共に生成することを特徴とする請求項1乃至3のいずれか1項に記載の印刷制御装置。
【請求項6】
前記受付手段で受け付けたプルプリント要求に該当する印刷すべき情報ファイルがない場合に、前記生成手段は、印刷すべき情報ファイルがない旨を表示するためのメッセージを含むジョブを生成することを特徴とする請求項1乃至5のいずれか1項に記載の印刷制御装置。
【請求項7】
印刷装置とネットワークを介して通信可能であり、印刷すべき情報ファイルを格納している印刷制御装置における印刷制御方法であって、
前記印刷装置からプルプリント要求を受け付ける受付工程と、
前記受付工程でプルプリント要求を受けた場合に、該プリント要求に該当する印刷すべき情報ファイルを印刷ジョブとして前記印刷装置に送信するジョブ送信工程と、
前記ジョブ送信工程により印刷ジョブを前記印刷装置に送信する際に、前記印刷装置における当該印刷ジョブの印刷時に印刷装置を停止状態させるべく、前記印刷装置で解釈可能な所定の停止コマンドを生成する生成工程と、
を備えることを特徴とする印刷制御方法。
【請求項8】
前記生成工程は、前記停止コマンドを前記印刷ジョブ中に付加するか、前記印刷ジョブの送信前に当該印刷ジョブとは独立したジョブに前記停止コマンドを付加することを特徴とする請求項7記載の印刷制御方法。
【請求項9】
前記停止コマンドは、前記印刷装置で前記印刷ジョブの印刷が行われる前、もしくは印刷が行われた後に、前記印刷装置を所定の操作が行われるまで印刷を行わない停止状態にさせるコマンドであることを特徴とする請求項7または8に記載の印刷制御方法。
【請求項10】
前記生成工程は、前記印刷装置が停止状態でいる間に前記印刷装置の操作部にプルプリント印刷処理である旨を表示するためのメッセージを前記停止コマンドと共に生成することを特徴とする請求項7乃至9のいずれか1項に記載の印刷制御方法。
【請求項11】
前記生成工程は、前記印刷装置が停止状態になったときに前記印刷装置においてビープ音を鳴らすためのコマンドを前記停止コマンドと共に生成することを特徴とする請求項7乃至9のいずれか1項に記載の印刷制御方法。
【請求項12】
前記受付工程で受け付けたプルプリント要求に該当する印刷すべき情報ファイルがない場合に、前記生成工程は、印刷すべき情報ファイルがない旨を表示するためのメッセージを含むジョブを生成することを特徴とする請求項7乃至11のいずれか1項に記載の印刷制御装置。
【請求項13】
印刷装置とネットワークを介して通信可能であり、印刷すべき情報ファイルを格納している印刷制御装置で読み取り実行可能な印刷制御プログラムであって、
前記印刷装置からプルプリント要求を受け付ける受付工程と、
前記受付工程でプルプリント要求を受けた場合に、該プリント要求に該当する印刷すべき情報ファイルを印刷ジョブとして前記印刷装置に送信するジョブ送信工程と、
前記ジョブ送信工程により印刷ジョブを前記印刷装置に送信する際に、前記印刷装置における当該印刷ジョブの印刷時に印刷装置を停止状態させるべく、前記印刷装置で解釈可能な所定の停止コマンドを生成する生成工程と、
を前記印刷制御装置に実行させるためのコンピュータ読み取り実行可能な印刷制御プログラム。
発明の詳細な説明
【技術分野】
【0001】
本発明は、印刷制御装置、印刷制御方法および印刷制御プログラムに関し、特に、プルプリント要求に応じて印刷ジョブを印刷装置に送信するプルプリントシステムの印刷制御装置、印刷制御方法および印刷制御プログラムに関するものである。
【背景技術】
【0002】
コンピュータネットワーク技術の発展に伴い、様々な情報メディアや情報サービス等を通じて、様々な情報を自由に入手できるようになり、これらの情報はリアルタイムに日々更新される。
【0003】
ユーザが常に新しい情報を入手するには、定期的にコンピュータ上で、情報資源にアクセスするような操作を繰り返し行う必要があった。このような場合、ユーザが入手した情報を印刷することもしばしばある。
【0004】
しかし、このような手間を解決するために、従来、予めユーザがネットワークに接続された画像出力装置に情報資源にアクセスする時間や情報資源の位置情報(URL:uniform resource locator)を設定しておき、画像出力装置が自動的に指定された情報資源を取得して印刷する装置が提案されている。こういった装置を利用することで、ユーザは情報資源を紙に出力した状態で手にすることが自動的に出来るようになった。
【0005】
また、このような情報資源の取得、印刷を自動的に行う装置においては、情報資源が以前取得したものより更新されている場合のみ、情報資源の取得、印刷を実行するような装置も提案され、余計なユーザコストを削減するような画像出力装置も提案されている(例えば特許文献1)。
【特許文献1】特開2000−194530号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
特許文献1に示されるように、ユーザがプリンタの前でオペレーションしプルプリントサーバからドキュメントを取得するプルプリントシステムでは、複数のページの印刷ジョブまたは複数の印刷ジョブが印刷される場合、ユーザがどの時点でプルプリントが終了したかを確認する手段がなかった。そのため、まだ印刷されるジョブまたはページが残っているのに、ユーザは印刷が終了したと思いその場を立ち去り、重要なドキュメントをプリンタ上に残してしまうという問題や、後続の他人のジョブが連続で印刷されてしまい、自分のジョブと他人のジョブの区別がつかず、他人のジョブを持っていってしまうという問題がある。
【0007】
また、ユーザがプルプリント指定しても、指定された位置情報(URL)に印刷すべきジョブ(文書データ)が無い場合、プリンタに印刷ジョブが投入されず、ジョブが無いことをユーザが認識することができず、ユーザはどうして印刷されないのか認識することができないという問題がある。
【0008】
本発明は上記課題を鑑みてなされたものであり、プルプリント要求を依頼した印刷装置におけるユーザに対して、プルプリントの印刷ジョブを明確に認識させる仕組みを提供することを目的とする。
【0009】
また、印刷装置に転送されたプルプリントの印刷ジョブに後続する印刷ジョブがプリンタにスプ−ルされている場合であっても、プルプリント終了後に、後続の印刷ジョブを直ちに印刷させずに一時停止させ、次の印刷ジョブの出力との区切りを明確にする。
【0010】
また、ユーザがプルプリントした際、プルプリントサーバに印刷すべきドキュメントがない場合には、プリンタにジョブがない旨をユーザに通知する。
【課題を解決するための手段】
【0011】
上記課題を解決するために、本願発明の印刷制御装置は、印刷装置とネットワークを介して通信可能であり、印刷すべき情報ファイルを格納している印刷制御装置であって、前記印刷装置からプルプリント要求を受け付ける受付手段と、前記受付手段でプルプリント要求を受けた場合に、該プリント要求に該当する印刷すべき情報ファイルを印刷ジョブとして前記印刷装置に送信するジョブ送信手段と、前記ジョブ送信手段により印刷ジョブを前記印刷装置に送信する際に、前記印刷装置における当該印刷ジョブの印刷時に印刷装置を停止状態させるべく、前記印刷装置で解釈可能な所定の停止コマンドを生成する生成手段とを備える。
【0012】
また、前記生成手段は、前記停止コマンドを前記印刷ジョブ中に付加するか、前記印刷ジョブの送信前に当該印刷ジョブとは独立したジョブに前記停止コマンドを付加する。
【0013】
また、前記停止コマンドは、前記印刷装置で前記印刷ジョブの印刷が行われる前、もしくは印刷が行われた後に、前記印刷装置を所定の操作が行われるまで印刷を行わない停止状態にさせるコマンドである。
【0014】
また、前記生成手段は、前記印刷装置が停止状態でいる間に前記印刷装置の操作部にプルプリント印刷処理である旨を表示するためのメッセージを前記停止コマンドと共に生成する。
【0015】
また、前記生成手段は、前記印刷装置が停止状態になったときに前記印刷装置においてビープ音を鳴らすためのコマンドを前記停止コマンドと共に生成する。
【0016】
また、前記受付手段で受け付けたプルプリント要求に該当する印刷すべき情報ファイルがない場合に、前記生成手段は、印刷すべき情報ファイルがない旨を表示するためのメッセージを含むジョブを生成する。
【0017】
上記課題を解決するために、本願発明の印刷制御方法は、印刷装置とネットワークを介して通信可能であり、印刷すべき情報ファイルを格納している印刷制御装置における印刷制御方法であって、前記印刷装置からプルプリント要求を受け付ける受付工程と、前記受付工程でプルプリント要求を受けた場合に、該プリント要求に該当する印刷すべき情報ファイルを印刷ジョブとして前記印刷装置に送信するジョブ送信工程と、前記ジョブ送信工程により印刷ジョブを前記印刷装置に送信する際に、前記印刷装置における当該印刷ジョブの印刷時に印刷装置を停止状態させるべく、前記印刷装置で解釈可能な所定の停止コマンドを生成する生成工程とを備える。
【0018】
上記課題を解決するために、本願発明の印刷制御プログラムは、印刷装置とネットワークを介して通信可能であり、印刷すべき情報ファイルを格納している印刷制御装置で読み取り実行可能な印刷制御プログラムであって、前記印刷装置からプルプリント要求を受け付ける受付工程と、前記受付工程でプルプリント要求を受けた場合に、該プリント要求に該当する印刷すべき情報ファイルを印刷ジョブとして前記印刷装置に送信するジョブ送信工程と、前記ジョブ送信工程により印刷ジョブを前記印刷装置に送信する際に、前記印刷装置における当該印刷ジョブの印刷時に印刷装置を停止状態させるべく、前記印刷装置で解釈可能な所定の停止コマンドを生成する生成工程とを前記印刷制御装置に実行させる。
【発明の効果】
【0019】
プルプリント要求を受けた場合に、印刷制御装置から印刷装置に対する停止コマンドを生成して、印刷装置に送信するため、印刷装置側では、印刷装置の停止状態によりプルプリントの印刷ジョブであることをユーザが容易に認識することができ、複数のドキュメントが連続して印刷される環境でも、プルプリント単位の区切りを明確にすることで、他のユーザのジョブとの混在を防止することが可能となる。
【発明を実施するための最良の形態】
【0020】
以下、本発明の実施の形態を図面に基づいて説明する。
【0021】
<システム構成>
図1は、本発明の実施形態に係るプリントシステムの全体構成を示すブロック図である。本プリントシステムは、本発明の印刷制御装置に好適なサーバ(コンピュータ)101〜102と、印刷装置(プリントデバイス)に好適なネットワークプリンタ103〜105とを含み、これらが互いに接続されている。
【0022】
サーバ(コンピュータ)101〜102には、印刷制御プログラムが実行可能に格納されており、本プリントシステムに含まれるネットワークプリンタ103〜105を管理する機能のほか、ネットワークで使用されるファイルを蓄積したり、ネットワークの使用状態を監視したりする機能を有する。具体的には、サーバ(コンピュータ)101〜102は、ネットワークプリンタ103〜105のエージェントからのプルプリント要求を受けると、印刷すべき情報ファイル(例えば、HTML形式の文書ファイル)からプリンタが解釈可能なページ記述言語(以下、PDLと呼ぶ)形式の印刷ジョブを作成する。そして、サーバは、ネットワークプリンタ103〜105のスケジューラにスケジュール要求を発行する機能と、ネットワークプリンタ103〜105のスケジューラからの指示により、印刷データの転送を開始する機能を有する。
【0023】
ネットワークプリンタ103〜105は、サーバ(コンピュータ)101〜102から、印刷データを含む印刷ジョブを受信し、受信した印刷ジョブを解析して印刷する物理的な装置としてのプリントデバイスである。ネットワークプリンタ103〜105としては、電子写真方式を採用したレーザービームプリンタやインクジェット方式を採用したインクジェットプリンタや熱転写方式を利用したプリンタ等、あらゆる方式の印刷装置を採用することができる。
【0024】
また、ネットワークプリンタ103〜105は、複数のサーバ(コンピュータ)101〜102からの印刷要求を受け付け、受け付けた印刷要求の順序を決定し、印刷指示を発行する機能、ネットワークプリンタ103〜105に転送された印刷ジョブ、ネットワークプリンタ103〜105の状態を監視し、
印刷の終了やプリンタ状態をサーバ(コンピュータ)101〜102に通知する機能を有する。
【0025】
なお、本プリントシステムに含まれる装置間の通信は、イーサネット(登録商標)ケーブルなどを利用した有線通信でもよいし、電波や光などを利用した無線通信でもよい。
【0026】
<プリンタ及びサーバの構成>
図2は、図1に示したサーバ(コンピュータ)101〜102のハードウェア構成を説明するブロック図である。
【0027】
図2において、CPU200は、HD(ハードディスク)205に格納されているアプリケーションプログラム、プリンタドライバプログラム、OSや印刷制御プログラム等を読出して実行し、RAM202にプログラムの実行に必要な情報、ファイル等を一時的に格納制御を行うための制御手段である。
【0028】
ROM201は、基本I/Oプログラム等のプログラム、文書処理の際に使用するフォントデータ、テンプレート用データ等の各種データを記憶する記憶手段である。RAM202は、CPU200の主メモリやワークエリア等として機能する一時記憶手段である。
【0029】
FD(フロッピー(登録商標)ディスク)ドライブ203は、後述する図5に示すように記憶媒体としてのFD204に記憶されたプログラム等を本コンピュータシステムにロードするための記憶媒体読み込み手段である。なお、サーバ(コンピュータ)101〜102は、FDドライブ203に代えて、或いはFDドライブ203と共に、他の記憶媒体読込手段を備えてもよい。他の記憶媒体としては、CD−ROM、CD−R、CD−RW、PCカード、DVD、ICメモリカード、MO、メモリスティック等、コンピュータが読み取り可能なあらゆる記憶媒体が挙げられる。
【0030】
HD205は、大容量メモリとして機能する外部記憶手段であり、アプリケーションプログラム、プリンタドライバプログラム、OS、印刷制御プログラム、及び関係プログラム等を格納している。さらに、スプール手段であるスプーラはここに確保される。なお、サーバ(コンピュータ)101〜102ではスプール手段としてスプーラが確保される。
【0031】
キーボード206は、ユーザがサーバ(コンピュータ)101〜102に対して、デバイスの制御コマンドの命令等を入力指示するための指示入力手段である。
【0032】
ディスプレイ207は、キーボード206から入力したコマンドや、プリンタ103〜105の状態等を表示する表示手段である。尚、実際にはサーバ(コンピュータ)101〜102上で稼動するオペレーティングシステムを介して表示手段に表示指示がなされ、このオペレーティングシステムに本印刷処理プログラムによりリソースファイルの表示指示が行われ、後述する各表示が実現される。208はシステムバスであり、サーバ(コンピュータ)101〜102としてのコンピュータ内のデータの流れを司るものである。
【0033】
またインタフェース209は、入出力手段であり、サーバ101〜102は、インタフェース209を介してネットワーク上の他の装置とのデータのやり取りを行う。
【0034】
<メモリマップ等の説明>
図3は、図2に示したRAM202のメモリマップの一例を示す図であり、印刷制御プログラムが、RAM202にロードされ実行可能となった状態のメモリマップである。
【0035】
印刷制御プログラム及び関係データは、予めFD204からHD205にインストールされて、HD205からRAM202にロードするようにしてもよいしFD204から直接RAM202にロードして実行させてもよい。さらに、印刷制御プログラムをROM201に記憶しておき、これをメモリマップの一部となすように構成し、直接CPU200で実行することも可能である。また、以上の各装置と同等の機能を実現するソフトウェアをもって、ハードウェア装置の代替として構成することもできる。
【0036】
印刷制御プログラムは、サーバ101〜102においては、印刷データを転送したり、印刷ジョブの印刷先の変更を指示したり、印刷順序を変更したりする指示をするための制御を行う。
【0037】
301は基本I/Oプログラムを記憶するための領域である。基本I/Oプログラムは、装置(サーバ101〜102)の電源がONされたときに、HD205からOSがRAM202に読み込まれ、OSの動作を開始させるIPL(イニシャルプログラムローデイング)機能などを有しているプログラムである。
【0038】
302はOS(オペレーティングシステム)を記憶する領域であり、303は印刷制御プログラムを記憶する領域である。304は、関係データを記憶する領域である。305はワークエリアで、CPU200が各種のプログラムを実行するための領域である。
【0039】
図4は、図2に示したFD204のメモリマップの一例を示す図である。図4において、400はFD204のデータ内容であり、データの情報を示すボリューム情報401と、ディレクトリ情報402と、印刷制御プログラム403と、その関係データ404を含んでいる。
【0040】
図5は、本発明の実施形態に関わる印刷システムのハードウェア構成を説明するブロック図である。500はプリンタで、内部で大きくネットワークプリンタサーバ部520とプリンタコントローラ部519から構成されており、それぞれが異なる制御系で動作する。ネットワークプリントサーバ520において、501はネットワークプリントサーバ用CPUである。このネットワークプリントサーバ用CPUは、書き換え可能なFlashROM503に記憶された制御プログラムに基づいて、システムバス504に接続されるネットワークコントローラ505を介してローカルエリアネットワーク512に接続されたホストコンピュータと通信する。そして、ホストコンピュータから送られる印刷データやプリンタ制御命令等の各種データ送受信要求を統括的に制御し、拡張インタフェースコントローラ(EXPC507)を介して接続されるプリンタコントローラ519に対して適切なデータ転送制御を行う。
【0041】
RAM502はCPU501の主メモリ、ワークエリア等の一時記憶領域をして用いられる。
【0042】
LED506はネットワークプリントサーバの動作状態を示す表示部として用いられており、例えばネットワークコントローラ505とローカルエリアネットワーク512の電気的な接続状態(LINK)やネットワーク通信モード(10Baseや100Base、全二重、半二重)等の各種動作状態をLEDの点滅パターンや色で示すこと可能となっている。
【0043】
さらにネットワークプリントサーバ520とプリンタコントローラ519を繋ぐ拡張インタフェース517は、図示しないコネクタで構成されておりネットワークプリントサーバ520のみが着脱し、同じ構成を持つ別のプリンタ500にネットワークプリントサーバ520を装着することも可能な構成となっている。
【0044】
プリンタコントローラ519において、508はプリンタコントローラ用CPUで、ROM509に記憶された制御プログラム等あるいはディスクコントローラ(DKC515)を介して接続された外部メモリ510に記憶された制御プログラムやリソースデータ(資源情報)等に基づいてシステムバス511に接続される各種デバイスとのアクセスを統括的に制御する。そして、拡張インタフェースコントローラ(EXPC513)を介して接続されるネットワークプリントサーバ520から受信される印刷データを基にラスタコントローラ512によって出力画像情報を生成し、プリントエンジン516に対して画像信号を出力する。
【0045】
514はCPU508の主メモリ、ワークエリア等として機能するRAMで、図示しない増設ポートに接続されるオプションRAMによりメモリ容量を拡張することができるように構成されている。
【0046】
518は操作パネル(操作部)でプリンタ500の動作モード等の設定や印刷データの取り消し等の操作を行なうためのボタンおよびプリンタ500の動作状態を示す液晶パネルやLED等の表示部が配されている。
【0047】
なお、本図で示したプリンタエンジン516は既知の印刷技術を利用するものであり、好適な実施系として例えば電子写真方式(レーザービーム方式)やインクジェット方式、昇華方(熱転写)方式等が挙げられる。
【0048】
519は外部装置520と情報のやり取りを行う外部I/Oインタフェースである。
【0049】
次に、本プリントシステムのサーバのソフトウェア構成について説明する。図6は、サーバ101〜102におけるソフトウェア構成の一例を示す図である。それぞれの構成間の矢印は、アプリケーションから発行された描画コマンドを含む印刷ジョブが、どのように処理されるかを示したものである。また、各ブロックで示されたソフトウェア構成は、図2のCPU200によって実行され、所望の機能を実現する。本発明の印刷制御プログラムは、以下で説明する印刷アプリケーションプログラム601とPDLドライバ602とポートモニタ604のソフトウェアモジュールを含むものとする。尚、ポートモニタ604は、後述するように、印刷ジョブをプリンタへ送信制御するためのソフトウェアであり、OSが提供する一般的なポートモニタを用いることも可能であり、本発明の印刷制御プログラムには必須ではない。
【0050】
通常、印刷アプリケーションプログラム601は印刷の指示を受け付けると、一連の第一の描画コマンド(GDI関数と呼ばれる)を生成し、OSに出力する。OSでは、アプリケーションからの第一の描画コマンドを受けると、PDLドライバが解釈可能な第二の描画コマンド(DDI関数と呼ばれる)を生成する。OSを介して生成された第二の描画コマンドを受け取ったPDLドライバ602は、一連の第二の描画コマンドに基づいてネットワークプリンタ103〜105で解釈可能なPDLファイルを含む印刷ジョブを生成する。なお、以下の説明ではPDLドライバを例に説明を行うが、これに限定されるものではなく、例えば、バンド毎の中間言語データとして生成されるBDL(Band description Language)形式や、圧縮ビットマップ形式の印刷データを作成するプリンタドライバであってもよい。また、アプリケーション及びOSによりプリンタドライバを介さずに印刷データを生成する形態などにも適用可能であることはいうまでもない。
【0051】
また、本発明の印刷制御プログラムの1つのソフトウェアモジュールである印刷アプリケーションは、プルプリントユーザの印刷ジョブを作成するアプリケーションである。このアプリケーションは、プルプリントサーバにプルプリント用印刷ジョブを作成し、その印刷ジョブに該当するプルプリントユーザの識別情報を設定する機能を保持している例で示す。印刷アプリケーションはユーザ識別情報と印刷すべき印刷データの関係などの情報は、印刷アプリケーションが連携しているデータベースやWebアプリケーションからの指示により保持することが可能であるが、本件では詳細を説明しない。
【0052】
PDLドライバ602は、プリントデバイスへ印刷ジョブを送信するためにスプーラ603に渡す。
【0053】
ここではOSをウィンドウズ(登録商標)と仮定しているのでスプーラ603はウィンドウズ(登録商標)スプーラである。ただし、本発明を適用するコンピュータのOSはWindows(登録商標)に限定されるものではなく、描画命令を備えるものであれば他のOSも適用可能であることは言うまでもない。
【0054】
スプーラ603は、ユーザがユーザインタフェースを介して選択し指示したポートモニタ604に印刷ジョブを渡して、ネットワークプリンタ103〜105等のプリントデバイスに送信させる手順をとる(矢印a)。
【0055】
ここでは、ユーザはあらかじめプルプリントサーバ605に印刷データを転送する、ポートモニタ604(以降、ジョブ制御ポートモニタと略記)を指定して印刷を指示したものとして説明を進める。
【0056】
また、プリンタドライバインタフェースを介して設定された用紙サイズ、ステープル指示等の印刷設定情報も、ジョブ制御ポートモニタ604に送信される。ジョブ制御ポートモニタ604はプリントサーバ605に送信する(矢印b)。
【0057】
また、サーバ101〜102において印刷アプリケーション601は、API610を介し、プルプリントサーバ601に、前記印刷指示した印刷ジョブに対して、印刷ジョブの所有者を示すユーザ識別情報の情報を設定する(矢印c)。
【0058】
プルプリントサーバ605は、印刷ジョブ及びデバイスの状態を管理する機能を備える。また、プリントデバイスから通知されるデバイス状態やジョブの状態などの情報を管理したり、また、プリントデバイスに対して所定の命令をする機能も備える。これは、複数のネットワークプリンタ103〜105のデバイス情報やジョブ情報を管理する機能に相当する。
【0059】
そして、プリンタデバイス606からのプルプリント要求(矢印d)が来ると、プリンタデバイス606が持つ印刷ジョブの順序管理機能に印刷の要求を発行し、順序管理機能に基づき順番が到来した場合には、プリンタデバイス606からの印刷指示により、ネットワークプリンタ103〜105に印刷データを送信する(矢印e、f、g)。
【0060】
プリンタデバイス606は、印刷データの完了を確認すると印刷完了の通知をプルプリントサーバ605に通知(矢印h)したり、また、プリンタデバイス606の状態を通知する(矢印h)。
【0061】
プリントマネージャ607は、ユーザが、プルプリントサーバ605内部でプリントジョブがどのような状態にあるかを調べたり、プリントジョブを操作したりするためのユーザインタフェースを提供するプログラムである。プリントマネージャ607は、プルプリントサーバ605のソフトウェアのインタフェース(API:Application Program Interface)を介して、プルプリントサーバ605と情報・指示をやり取りしている。
【0062】
そして、主に、プルプリントサーバ605が管理するネットワークプリンタ104〜105の状態情報をイベントとして取得する機能を備える。イベントの通知の種別としては、トナー残量が少なくなった警告、サーバとデバイスとの通信障害、メモリ不足、排紙トレイ満載などのエラー/警告情報の通知や、エラー状態から正常状態に復帰した正常情報の通知などが想定される。ここでのプルプリントサーバ605はネットワークを介して通信可能な各プリンタデバイス(印刷装置)の印刷実行中、電力制御状態、障害情報(紙ジャム)等のステータスの通知を受け付ける機能を備える。
【0063】
更に詳細な処理としては、プリントマネージャ609がプルプリントサーバ605に対してデバイスを指定したイベントを発行し、プルプリントサーバ605は発行されたイベントに基づくデバイスのステータスを認識して、監視に基づく結果をプリントマネージャ609に通知する。
【0064】
<印刷ジョブの流れ>
次に、図7を用いてアプリケーション601からプリントデバイスまでの印刷ジョブの流れについて説明する。ここで、図6と同じソフトウェア構成について同じ参照番号を付与しており、その機能については詳説しない。
【0065】
図7に示すように、概念的には、PDLドライバ602、スプーラ603、ジョブ制御ポートモニタ604は、プリントデバイス607、607Aごとに用意されている。OSがウィンドウズ(登録商標)の場合には、これらをまとめてウィンドウズ(登録商標)プリントシステム700と称する場合もある。
【0066】
プルプリントサーバ605には、PDLドライバ102に対応する数のプリントキュー701、701Aが含まれており、プリンタデバイス607、607Aからのプルプリント要求により決定した宛先のプリンタデバイス607、607Aに印刷データを送信するユニバーサル出力ポート702が含まれている。また、プリントキュー702、702Aは1401に示されるようなテーブルでプルプリントサーバ605が管理している。
【0067】
印刷を行う場合、アプリケーション601は、印刷ジョブにユーザ識別情報を指定し印刷指示を発行する。この印刷指示に基づいてPDLドライバ602によって生成された印刷ジョブがジョブ制御ポートモニタ604からプルプリントサーバ605に渡されると、その印刷ジョブ情報は、まずプリントキュー701に保持される。
【0068】
プリンタデバイス607からプルプリント要求が発行されると、プルプリント要求を発行したプリンタの宛先を指定して、ユニバーサル出力ポート702に印刷ジョブの出力指示を出す。出力ポート702は、出力指示を受け付けると、指定された宛先に該当する、プリンタデバイス606の後述するスケジューラに対してスケジュールの要求を発行する。プリンタデバイス606の後述するスケジューラは、自身が持つスケジューリング機能に基づいて、複数のプリントサーバ101〜102から受け付けたジョブのスケジューリング処理を行い、ユニバーサル出力ポート702に対して印刷指示を発行する。印刷指示を受け付けた出力ポート702はプリンタデバイス606に印刷データを送信する。
【0069】
図8は、本発明の実施形態に好適な印刷システムにおけるプリンタ500内の制御機器であるネットワークプリントサーバ520およびプリンタコントローラ519の各記憶デバイスに記憶された制御プログラム内のソフトウェア構成を説明するブロック図である。なお上記各制御プログラムは各制御機器のCPUによってプログラムが解析され処理される。
【0070】
801はネットワークプリントサーバ520の基本的なデータの入出力制御を統括するオペレーティングシステムである。さらに前記オペレーティングシステム801内にはプログラム/データ記憶部509との入出力制御を行なうファイルシステム805、プリンタコントローラ519と拡張インタフェース517を介して通信制御を行う拡張インタフェースドライバ807、ローカルエリアネットワーク512の通信媒体を介して不図示のホストコンピュータ等の外部装置と通信を行うネットワークインタフェースドライバ806を内包している。
【0071】
802はアプリケーションプログラムインタフェース(API)であり、ネットワークプリントサーバ502で動作するユーザアプリケーション803やプリンタ500やユーザアプリケーションの登録・管理を行う管理アプリケーション等のアプリケーションプログラムに対して前記オペレーティングシステムが備える各種機能を提供する。また前記アプリケーションプログラムインタフェース802で提供される機能は、印刷データの送受信機能を提供するデータ転送API、ビットマップ画像や表示メッセージ等のリソースデータの入出力制御を行うリソース制御API、プリンタ500の再起動や設定値の初期化や設定等の制御を行うプリンタ制御API、印刷ジョブの取り消しや再印刷指示などを制御するジョブ制御API、ネットワークプリントサーバ520の再起動や設定値の初期化や設定、およびアプリケーションプログラムの起動、登録、削除を行うプリントサーバ制御APIを備える。
【0072】
812はプリンタコントローラ519の各種処理制御を統括するオペレーティングシステムであり、内部にプリントエンジンとの通信制御を行うプリントエンジン制御部814およびネットワークプリントサーバ520から参照されるビットマップ画像やエラーメッセージ等の機種依存リソースおよびネットワークプリントサーバ上で動作する機種依存アプリケーションプログラム等を記憶する機種依存リソース/プログラム記憶部との入出力制御を行うファイルシステム815を内包している。
【0073】
813は拡張インタフェース制御部であり、拡張インタフェース517を介してネットワークプリントサーバ520との通信制御を行う。さらに前記拡張インタフェース制御部は、制御種別毎に印刷データの入出力を制御するデータ転送論理インタフェース、機種依存リソース/プログラム記憶部509に記憶された各種データの入出力を制御するリソース制御論理インタフェース、プリンタ500の再起動や設定値の初期化や設定等の制御を行うプリンタ制御論理インタフェース、印刷ジョブの取り消しや再印刷指示などを制御するジョブ制御論理インタフェースを備えており、各論理インタフェースを介してプルプリントサーバ520から要求された命令をオペレーティングシステム812に対して転送し、その処理結果をネットワークプリントサーバ520に対して返信する。
【0074】
818はUSB制御部であり、USBケーブルで接続された外部機器としての認証情報読み取り装置820を介し、認証情報記録媒体821からユーザ識別情報を取得する。
【0075】
811は、ネットワークインタフェースドライバ806がLAN512を介してサーバ101〜102からの受信の通知を受け付けるネットワーク制御部であり、どのサーバからの通信を判断することや、通信の制御を行うことができるモジュールである。
【0076】
810は、サーバ101〜102が送信する印刷データを受け付けるプロトコルを制御するモジュールであり、受け付けた印刷データをプリンタコントローラに渡すことができる。
【0077】
また、アプリケーション803はプリントコントローラ519のプログラム記憶部816またはネットワークプリントサーバ520のプログラム記憶部808に格納される。プリンタ500が起動するとプログラム記憶部808または、に格納されたアプリケーションが持つライセンスと、ライセンス記憶部809やプログラム記憶部816やライセンス記憶部817が持つライセンスと比較し一致しているかどうかを判断する。一致していた場合は適正アプリケーションプログラムであると判断し、アプリケーションプログラムをネットワークプリントサーバ520のRAM514にロードされる。
【0078】
次に、図9を用いて、本プリントシステムの印刷装置519におけるスケジューリング機能およびサーバ101〜102から受け付けた印刷ジョブの管理機能を持つデバイス上のユーザアプリケーションであるデバイススケジューラ900と、プルプリントエージェント906のソフトウェア構成について説明する。
【0079】
901は、印刷するサーバ101〜102の接続状況や、サーバ101〜102に通知すべき情報を管理する通信接続管理部901であり、接続しているサーバ情報1902をサーバ管理キュー1901で管理する。通信接続管理部901は、プログラムアプリケーションインタフェース802のデータ転送API、ネットワークインタフェースドライバ806を経由してサーバと通信を行う。
【0080】
902は、サーバ101〜102から受け付けた印刷ジョブのスケジューリングを行うスケジュール管理部であり、ジョブ管理部903、デバイス管理部904を持つ。
【0081】
903は、サーバ101〜102が発行したスケジュール要求や、サーバ101〜102が印刷したジョブを管理するジョブ管理部903である。ジョブ管理部903は、サーバが印刷するジョブの情報2002をジョブ管理キュー2001で管理している。
【0082】
904は、プリンタコントローラ519が持つプリンタの状態や受け付けた印刷ジョブの状態をイベントハンドラ905経由で受け付けるデバイス管理部であり、プリンタコントローラ519から受け付けたイベントを通信接続管理部901やジョブ管理部903に通知する。
【0083】
907はUSB管理部であり818USB制御部を介し、認証情報記憶媒体821からユーザ識別情報やプルプリントサーバのアドレスを取得しサーバ通信部908に渡す。909はデバイスのアドレス情報等を取得しサーバ管理部908に渡す。サーバ管理部908は取得した情報をプルプリントサーバ605に送信する。
【0084】
図10は、通信接続管理部901が管理する、サーバ101〜102のサーバ情報1002と、複数の接続するサーバ101〜102のサーバ情報1002を管理するサーバ管理キュー1001である。
【0085】
1002は、接続するサーバ毎に接続管理部が割り振ったサーバID、接続するサーバ101〜102のIPアドレス、接続するサーバが登録したイベントの種類などの情報を持つサーバ情報である。イベントの種類とは、プリンタコントローラが発行するデバイス状態のイベントやジョブ状態のイベントの種類を表す。
【0086】
1001は、接続したサーバ101〜102のサーバ情報をキューの形式で保持する管理キューである。サーバとのセッションが開始されると、該当するサーバの情報が本管理キューに登録され、切断すると該当するサーバ情報が削除されるようになっている。
【0087】
図11は、ジョブ管理部903が管理する情報で、サーバ101〜102が印刷すべく発行したスケジュール要求に対応するジョブ情報1102と、複数発生するジョブ情報を管理するジョブ管理キュー1101を示す図である。
【0088】
1102は、サーバ101〜102が印刷を開始するために発行するスケジュール要求に付加される印刷ジョブの情報である。このジョブ情報1102は、印刷ジョブのドキュメント名、ジョブ管理部903が発行したジョブID、サーバで印刷を開始したユーザ名、ジョブのページ数、印刷ジョブの状況を表すジョブ状態、サーバ101〜102が転送する印刷データに含まれるジョブデータID、印刷したサーバのIPアドレスが登録される。
【0089】
ジョブ状態は、サーバ101〜102が印刷のスケジュール要求を発行してからジョブがプリンタから無くなるまでの状態を表しており、印刷待機中、スケジュールアップ状態、転送中、転送済み、印刷完了などの状態が存在する。
【0090】
ジョブデータIDは、印刷データに含まれるジョブのIDで、プリンタコントローラ519内でのジョブ状態を通知するときなど、付加させるIDである。
【0091】
1101は、複数のジョブ情報1102を管理する管理キューであり、サーバ101〜102からのスケジュール要求を受け付けるとジョブ情報1102が管理キューに登録され、印刷ジョブが印刷終了すると、該当するプリンタ情報が削除されるようになっている。
【0092】
図12は、プルプリントサービス605が管理するジョブ情報と、複数のジョブ情報を管理するジョブ管理キューを表している。
【0093】
1202は、印刷アプリケーション601が印刷したジョブの情報とデバイススケジューラにジョブイベントと登録すると通知される他のサーバの印刷ジョブのジョブ情報である。ジョブ情報1202には、印刷ジョブのドキュメント名、ジョブID、ジョブのページ数、印刷ジョブの状況を表すジョブ状態、印刷データに含まれるジョブデータID、印刷アプリケーションがジョブに設定するユーザ識別情報が含まれる。
【0094】
ジョブ状態は、サーバ101〜102が印刷を開始してからジョブがプリンタから無くなるまでの状態を表しており、スプール中、印刷待機中、スケジュールアップ状態、転送中、転送済み、印刷完了などの状態が存在する。
【0095】
ジョブデータIDは、印刷データに含まれるジョブのIDで、デバイススケジューラからのジョブイベントに設定される通知される情報である。
【0096】
1201は、複数のジョブ情報1202を管理する管理キューであり、自サーバの印刷アプリケーション601から印刷したジョブのジョブ情報とデバイススケジューラから通知される他サーバのジョブ情報1202が登録される。
【0097】
図13は、プルプリントサービス605が管理するプリンタキューの情報を表している。1301は、ジョブ制御プリンタサービスが管理するそれぞれのプリンタキューの情報を表していて、PDLドライバ602に該当するプリンタ名などの情報が含まれている。
【0098】
図14は、認証情報読み取り装置820で認証情報記録媒体821を検知した後にプルプリントエージェント906がプルプリントサーバ605に送信する情報である。
【0099】
デバイスアドレスは、プルプリントエージェントが登録されているプリンタデバイスのIPアドレス情報などである。
【0100】
ユーザ識別情報は認証情報記録媒体821から読み取った情報である。
【0101】
図15は、認証情報記録媒体821に含まれる情報の例である。ユーザ識別情報は、認証情報記録媒体821の所有者を識別する情報が含まれる。
【0102】
プルプリントサーバ情報は、プルプリントする印刷データを管理するサーバのIPアドレスなどの情報が含まれる。
【0103】
図16では、印刷アプリケーション601がプルプリント用印刷ジョブをプルプリントサーバ605に登録するするまでの処理の流れを示す図である。
【0104】
ステップS1601では、プルプリント用印刷ジョブを発行する必要が発生すると、図6で示したように印刷処理を開始する。
【0105】
ステップS1602において、印刷された印刷データをジョブ制御ポートモニタが受け付けると、図7で説明したようにプリントキュー701にジョブを登録する。プリントキューは、ジョブ情報1202を作成し、関連する情報を設定する。また、そのジョブ情報1202をジョブ管理キュー1201で管理する。
【0106】
ステップS1603において、印刷アプリケーション601は、印刷したジョブに対して、該当するユーザ識別情報を通知すると、ステップS1604においてプルプリントサーバ605は、該当するジョブ情報1202のユーザ識別情報を設定する。
【0107】
ステップ5S160では、プリントキューは印刷ジョブの受け付けを終了すると印刷ジョブを停止状態とし印刷ジョブを保持する。
【0108】
以上のようにプルプリントサーバ605は、印刷アプリケーション601からユーザ識別情報と関連した印刷ジョブを保持し、プルプリントエージェントからのプルプリント要求を待機することになる。
【0109】
図17は、プルプリントユーザが認証記憶媒体821を、認証読み取り装置820にセットすると、プルプリントエージェント906がプルプリントサーバ605にプルプリント要求を発行する処理の流れを示す図である。
【0110】
ステップS1701では、プルプリントユーザが認証記憶媒体821を、認証読み取り装置820にセットすると、認証読み取り装置820がそれを検知し、ステップS1702において、図15で示す認証記憶媒体の情報を読み取る。
【0111】
ステップS1703では、プルプリントエージェント906が登録されているプリンタデバイスのIPアドレスを取得する。
【0112】
ステップS1704では、プルプリントエージェント906は、ステップS1702で取得した認証記憶媒体の情報に含まれるユーザ識別情報、ステップS1703で取得したプリンタのIPアドレスを図14に示す形式でプルプリント要求に付加し、ステップS1702で取得した認証記憶媒体の情報に含まれる、プルプリントサーバのアドレスに対してプルプリント要求を発行する。
【0113】
図18では、プルプリントサーバ605がプルプリントエージェント906からプルプリント要求を受け付けてから印刷データの転送までの流れを示している。
【0114】
ステップS1801では、プルプリントエージェント906からのプルプリント要求か、または、デバイススケジューラ900からのスケジュールアップの受け付けを待機しており、プルプリントエージェントからのプルプリント要求が来ればステップS1802に処理を移行する。スケジュールUPのコマンドを受け付けるとステップS1809に処理を移行する。
【0115】
ステップS1802では、プルプリント要求に付加されている情報、デバイスアドレス、ユーザ識別情報を取得する。
【0116】
ステップS1803では、図16で登録された印刷ジョブの中で、ステップS1802で取得したユーザ識別情報に該当するジョブが存在するかを検索する。該当するジョブが1つ以上存在する場合にはS1804に移行する。該当するジョブが存在しない場合は、S1805でプルプリントエージェント906に停止ジョブを送信しステップS1801に処理を移行する。
【0117】
停止ジョブとは、プリンタデバイスでそのジョブが処理されると、プリンタが印刷を一旦停止してプリンタのパネルなどにメッセージを表示するジョブのことである。停止ジョブによりプリンタが停止したときにパネルなどに表示するメッセージは停止ジョブに指定することが可能であり、この際は、プルプリントユーザのIDやプルプリントするジョブが無いことを説明するメッセージなどを設定することが可能である。
【0118】
また、停止ジョブの変わりにプリンタ停止コマンドを、印刷ジョブの先頭(ヘッダ部分)に付加してもよい。この停止コマンドや停止ジョブはプリンタの種類によって様々であり、対象のプリンタによって切り替えることも可能である。
【0119】
次に、ステップS1804では、デバイススケジューラに接続し、接続要求コマンドを発行する。サーバが接続要求を発行すると、サーバの情報がデバイススケジューラのサーバ管理キューに登録され、以降、サーバとデバイススケジューラ間で情報のやり取りを行うことができる。
【0120】
ステップS1806では、デバイススケジューラに対して、ジョブイベント、デバイスイベントを登録する。ジョブイベントを登録すると、自サーバが印刷するジョブや、他のサーバが印刷するジョブの状態の変化の通知がデバイススケジューラ605より通知されることになる。また、デバイスイベントを登録すると、プリンタデバイス606の状態の変化を通知されるようになる。
【0121】
ステップS1807では、デバイススケジューラで管理しているジョブ管理キューに登録されているジョブのリストを取得する。このジョブリストとジョブイベントにより、デバイススケジューラが管理するジョブの印刷状況を把握することが可能となる。
【0122】
以上の処理により、印刷する準備が整い、ステップS1808において印刷するジョブのスケジュール要求をデバイススケジューラに行い、ステップS1801で次の指示を待機する。この際、ステップS1803で見つけた該当ジョブが複数存在すれば、複数のジョブのスケジュール要求を発行する。
【0123】
デバイススケジューラは、図19で説明するように、スケジュール要求を受け付けたジョブをスケジューリングして、転送開始してもよいと判断すると、プルプリントサーバにスケジュールアップを発行する。ステップS1801においてデバイススケジューラから印刷データの転送指示であるスケジュールUPのコマンドを受け付けるとステップS1809に処理を移行する。ステップS1809では、印刷ジョブをプリンタに転送するためのLPRなどのセッションの接続処理を行う。
【0124】
次にステップS1810において送信するジョブが先頭ジョブであるかを判断する。ステップS1803でプルプリントするジョブが単数あるいは複数ある場合も先頭ジョブかどうかを判断する。送信開始するジョブが先頭ジョブである場合には、ステップS1816で、先頭ジョブを送信する前に停止ジョブを送信する。ここで、前述したように、印刷ジョブと独立した停止ジョブを送信せずに、印刷ジョブの先頭部分(ヘッダ部分)に、プリンタが解釈可能な停止コマンドを付加してもよい。
【0125】
停止ジョブによりプリンタが停止したときにパネルなどに表示するメッセージは停止ジョブに指定することが可能であり、この際は、プルプリントユーザのIDなどを設定することが可能である。
【0126】
また、停止ジョブにメッセージを付加することなく、停止コマンドと共にメッセージを生成し、印刷ジョブの先頭部分(ヘッダ部分)に付加してもよい。停止ジョブ中のメッセージもしくは印刷ジョブの先頭部分に付加されているメッセージを、プリンタが解釈することにより、プリンタは自身の操作部に、プルプリント印刷処理である旨を表示することが可能となる。尚、前述したように、このメッセージを、停止ジョブに入れるか印刷ジョブの先頭に入れるかは、プリンタの種類によって様々であり、対象のプリンタによって切り替えることも可能である。
【0127】
ステップS1811以降の処理では、送信すべきジョブ、つまりステップS1803でユーザ識別子が一致するジョブを順次送信していく。
【0128】
ステップS1811では、ジョブの転送を開始する。ステップS1812では、図24で示すようにデバイススケジューラに転送が開始されたことを通知するために、転送開始状態を通知する。
【0129】
ステップS1813で印刷データの転送が終了するとステップS1814においてデバイススケジューラに転送が終了したことを通知し、ステップS1815に処理を移行する。
【0130】
ステップS1815では、ステップS1803でユーザ識別子が一致するジョブを順次送信していくがそのジョブの最終ジョブであるかを確認し、最終ジョブでなければ、ステップS1810に処理を移行し、順次ジョブを転送していく。ステップS1815において、転送するジョブが最終ジョブであれば、ステップS1817に処理を移行し、停止ジョブを送信する。ステップS1817で送信する停止ジョブは、ステップS1816で送信した停止ジョブと同じであるが、最終ジョブを送信後の場合は、パネルに表示するメッセージをプルプリントが終了したことなどを伝える内容にすることが考えられる。
【0131】
停止ジョブを送信すると、ステップS1818において、ステップ1810で接続した印刷ジョブを転送するためのセッションを切断し処理をステップS1801に移行する。
【0132】
図19では、プルプリントサービス605のスケジュール要求の受け付けから、スケジュールUPを発行するまでのデバイススケジューラのスケジュール管理部の処理の流れについて説明する。
【0133】
ステップS1901において、プルプリントサービス605からの接続を受け付けると、スケジュール要求の通知なのか、転送済み状態の通知なのかを判断する。スケジュール要求の通知であれば、ステップS1902に処理を移行し、転送済み状態の通知であればステップS1903に処理を移行する。
【0134】
ステップS1902では、ジョブ管理部903で発行したジョブIDを設定したジョブ情報を作成し、スケジュール要求に付加された情報をジョブ情報に設定して、スケジュール要求を受け付けた順でジョブ管理キューに登録する。
【0135】
次に、ステップS1903で、ジョブ管理キューに登録されたジョブ情報のジョブ状態を確認する。ジョブ状態がスケジュールUP、転送中のものがあれば、既にあるサーバに印刷データを転送するように指示しているため、ステップS1901に処理を移行する。ジョブ状態がスケジュールUP、または転送中のものがなければステップS1904に処理を移行し、スケジュールUPの発行の準備を行う。
【0136】
ステップS1904では、ジョブ管理キューで先にスケジュール要求を受け付けた順からジョブを確認し、スケジュール待機中のジョブが見つかるとステップS1905に処理を移行する。スケジュール待機中のジョブが無ければ、ステップS1901に処理を移行する。
【0137】
更に、ステップS1905で該当するサーバに対して印刷データの転送を開始させるスケジュールUPを通知し、ステップS1906で、該当するジョブ情報のジョブ状態をスケジュールUP状態に更新し、ステップS1901に処理を移行する。
【0138】
図20は、デバイススケジューラからの通知やコマンドを受け付けた場合のプルプリントサービス605の処理の流れについて説明している。
【0139】
ステップS2001では、デバイススケジューラからジョブイベントの通知または、ジョブリストが返送されてくるかを判断しており、ジョブイベントが来ると、ステップS2002に処理を移行し、ジョブリストが来るとステップS2008に処理を移行する。
【0140】
ステップS2008では、ジョブリストが返送されてくるとプルプリントサービス605が管理するジョブ管理キュー1701にジョブリストから得られたジョブ情報を設定する。
【0141】
ステップS2002では、デバイススケジューラから通知されたジョブイベント通知の内、ジョブ完了通知であるか、ジョブ状態変更通知であるかを判断し、ジョブ状態変更通知であれば、ステップS2009において、該当するジョブ情報のジョブ状態を更新する。
【0142】
ステップS2002において、受け付けたイベント通知がジョブ完了通知であれば、ステップS2003において、該当するジョブ情報を、ジョブ管理キュー1701から削除する。
【0143】
ステップS2004では、ジョブ管理キュー1701に、印刷が終了していない自サーバのジョブが残されているかを確認し、残されていれば、まだデバイススケジューラとのやり取りが必要であるため、デバイススケジューラとの接続を継続するために、ステップS2001に処理を移行する。
【0144】
ステップS2004で、自サーバのジョブがなければ、ステップS2005に処理を移行し、デバイススケジューラとの接続を終了するための処理を開始する。
【0145】
ステップS2005では、接続を開始したときにデバイススケジューラに登録したジョブイベント、デバイスイベントの登録解除を依頼する。デバイススケジューラは、この依頼によりサーバ情報のイベント登録の内容を削除する。このイベント登録の情報がなければ、デバイススケジューラが管理するジョブの状態が変化されてもイベントが通知されてくることはない。
【0146】
次にステップS2006において、デバイススケジューラに対して切断の要求を発行する。デバイススケジューラが切断要求を受け付けると、サーバ管理キューから該当するサーバ情報を削除する。
【0147】
ステップS2007では、デバイススケジューラとのセッションを切断する処理を行い、処理をステップS2001で待機する。
【0148】
図21では、後述するデバイス管理からのジョブ状態通知イベントの受け付けからプルプリントサービス605からのジョブリスト要求の受け付けに対するジョブ管理部903の処理を示している。
【0149】
ステップS2101では、通信接続管理部901やデバイス管理部904からの通知を受け付けると、デバイス管理部904からのジョブ状態通知であるか、ジョブリスト要求であるかを判断する。
【0150】
デバイス管理部904からのジョブ状態通知であれば、ステップS2102に処理を移行し、該当するジョブ情報のジョブ状態を更新する。更にステップS2103に処理を移行し、印刷完了の通知であるかを判断する。印刷完了でなければ処理をステップS2104に移行し、接続管理部にジョブの状態のイベントをサーバに発行するように通知する。
【0151】
ステップS2103で、印刷完了の通知であれば、ステップS2105に処理を移行し、ジョブ管理キューから該当するジョブを削除し、ステップS2106で、接続管理部にジョブの完了イベントをサーバに発行するように通知し、処理をステップS2101に移行する。
【0152】
ステップS2101で、プルプリントサービス605からのジョブリスト要求の受け付けると、ステップS2107において、ジョブ管理キューに登録されたジョブ情報のリストを要求元のサーバに送信するように接続管理部にジョブ情報リストを通知する。
【0153】
図22は、プリンタコントローラからのデバイス状態とジョブ状態通知をイベントハンドラを経由して受け付け、ジョブ管理部903や通信接続管理部901に通知するデバイススケジューラ900の処理について記載する。
【0154】
ステップS2201では、デバイススケジューラが起動すると、デバイス管理部904がイベントハンドラを経由してプリンタコントローラに対して、デバイスの状態が変更した場合や、プリンタコントローラが処理する印刷ジョブの状態が変更したばあいにそれらの状態を通知するようにイベント登録の処理を行う。
【0155】
ステップS2202では、プリンタコントローラで発生したイベントをイベントハンドラ905経由で受け付けると、スケジュール管理部902は、ジョブのイベントであるかデバイスのイベントであるかを判断する。ジョブのイベントであれば、ステップS2203でスケジュール管理部902は、ジョブ管理部903にジョブイベントを通知し、ステップS2202に処理を移行する。デバイスのイベントであれば、処理をステップS2204に移行し、スケジュール管理部902は、デバイスの状態をデバイス管理部904で保持した後、ステップS2205で通信接続管理部901にデバイスイベントを通知し、処理をステップS2202に移行する。
【0156】
図23は、サーバ101〜102からの要求や通知、デバイス管理部904からの通知、ジョブ管理部903への要求や通知を処理するデバイススケジューラ901の通信接続管理部901の処理の流れについて記載する。
【0157】
ステップS2301では、通信接続管理部901は、サーバ101〜102やデバイス管理部904、ジョブ管理部903からの通知や要求を受け付け、どの通知や要求であるかを判断する。
【0158】
ステップS2301において受け付けた要求やイベントがサーバ101〜102からの接続要求であれば、ステップS2302に移行し、サーバ管理キューに通信接続管理部901で発行したサーバIDと、要求を発したサーバのIPアドレスを設定し、サーバ管理キューにサーバ情報を登録する。
【0159】
ステップS2301において受け付けた要求やイベントがサーバ101〜102からのイベント登録であれば、ステップS2303に処理を移行し、該当するサーバ情報の登録イベントに通知するイベントの種類を設定する。イベントの種類には、ジョブの状態の変化を通知するジョブイベント、デバイスの状態の変化を通知するデバイスイベントがある。
【0160】
ステップS2301において受け付けた要求やイベントがデバイス管理部904からのデバイスイベントやジョブ管理部903からのジョブイベントであれば、ステップS2304において、これらのイベントを通知すべきサーバを認識するために、サーバ管理キューに登録された全てのサーバ情報から、サーバ情報の登録イベントの設定を参照し通知すべきかどうかを判断する。通知すべきであると判断した場合には、サーバのIPアドレスを保持し、ステップS1705において通知すべき全てのサーバに対してイベントを送信する。
【0161】
ステップS2301において受け付けた要求やイベントがサーバからの切断要求であればステップS2306に処理を移行し、サーバ管理キューから該当するサーバのサーバ情報を削除する。
【0162】
図24では、これまで説明してきた各コンポーネントのフローの全体の流れの概略を示した図である。サーバ101〜102のプルプリントサービス605が、ジョブを受け付け後、プリンタデバイス606にスケジュール要求を発行するところから、プリンタで印刷が終了するところまでのやり取りについて記載する。
【0163】
プルプリントサービス605は、印刷データを受け付けると、デバイススケジューラ900とセッション接続を開始する。サーバの情報を通知する接続要求コマンド、ジョブ/デバイス状態を通知してもらうためのイベント登録、デバイススケジューラがスケジュール管理するジョブの情報を取得するジョブリスト取得コマンドを発行する。
【0164】
デバイススケジューラは、接続要求を受け付けると、サーバ情報をサーバ管理キューに登録し、イベントの登録を受け付けると該当するサーバ情報の登録イベントに設定する。ジョブリスト要求を受け付けると、ジョブ管理キューに登録されているジョブ情報のリストを送信する。
【0165】
次に、サーバ101〜102が印刷を予約するためのスケジュール要求のコマンドを発行する。デバイススケジューラはスケジュール要求を受け付けると、ジョブ管理キューにジョブ情報を登録する。ジョブ情報には、ドキュメント名等の情報を設定する。デバイススケジューラは、後述する判断でプリンタデバイス606が印刷データを受け付けられるようになるとスケジュールUPを発行し、プルプリントサービス605に対して印刷データの送信を開始するように促す。また、スケジュールUPを発行すると、ジョブ情報のジョブ状態をスケジュールUP状態に更新する。
【0166】
プルプリントサービス605は、スケジュールUPを受け付けるとLPD/RAWに印刷データの転送を開始し、転送が始まるとデバイススケジューラに対して転送開始の通知を行う。デバイススケジューラは、転送開始通知を受けると、ジョブ情報のジョブ状態に転送中の状態に更新する。
【0167】
LPD/RAWが印刷データを受け付けるとプリンタコントローラにデータを転送し、プリンタコントローラで印刷が開始される。プリンタコントローラは、印刷が開始されるとジョブの状態をデバイススケジューラに通知する。デバイススケジューラは、サーバ情報の登録イベントの情報を基に、サーバにジョブの印刷状態を通知する。
【0168】
また、プルプリントサービス605は印刷データの転送が終了するとデバイススケジューラに対して、転送終了通知を送信する。デバイススケジューラは、転送終了通知を受けると、ジョブ情報のジョブ状態に転送済の状態に更新する。
【0169】
プリンタコントローラで印刷処理が終了すると、ジョブの状態として印刷完了の通知をデバイススケジューラに通知する。デバイススケジューラは、サーバ情報の登録イベントの情報を基に、サーバにジョブの印刷完了の状態を通知する。
【0170】
プルプリントサービス605は、上記通知により印刷が完了したことを確認すると、デバイスからの通知が必要なくなるので、デバイススケジューラからのイベント通知の登録を解除するための解除要求を発行する。イベント解除要求を受け付けた、デバイススケジューラは、サーバ情報の登録イベントにイベントを通知しない旨の情報を設定する。
【0171】
その後、プルプリントサービス605は、デバイススケジューラとの接続を終了するための切断要求を発行し、セッションを終了する。
【0172】
デバイススケジューラは、切断要求を受け付けると、サーバ管理キューから該当するサーバ情報を削除し、該サーバとの処理を終了する。
【0173】
プルプリント処理で複数のジョブを送信すべき場合は、上記印刷データ転送開始から転送終了通知までの処理を複数回繰り返すことで対応することができ、また、複数の印刷データを転送する際は、複数のジョブを1つの印刷プロトコルのセッションで送信することも容易に考えられる。
【0174】
図25は、プルプリントサーバ605がプルプリント要求を受け取った際、そのプルプリント要求を行ったユーザに該当するジョブがデバイスに転送されている場合、その該当ジョブの状態によって、そのジョブに対して削除、代行などの処理を説明するためのフローチャートある。
【0175】
ステップ2501において、プルプリントサーバ605は、プリンタ(印刷デバイス)からのプルプリント要求を待つ。プルプリント要求を受け付けるとステップ2502において、プルプリントサーバ605は、プルプリント要求に付加されているユーザ識別情報とデバイスのIPアドレスを取得する。
【0176】
ステップ2503においてステップ2502で取得したユーザ識別情報に該当する情報ファイルの印刷ジョブが、プルプリントサーバ605のプリントキューに存在し、その印刷ジョブが印刷デバイスに転送されているかどうか確認する。プリントキューに印刷ジョブが存在し、印刷デバイスに転送されていると判断された場合は、ステップ2504に処理を移行する。一方、プリントキューに印刷ジョブが存在しないと判断された場合は、プルプリント要求に応答することができないため、ステップ2501に処理を移行する。
【0177】
ステップ2504では、ステップ2502で取得したプルプリント要求を発行したデバイスのアドレスと、ステップ2503で見つけた印刷デバイスに転送されている印刷ジョブのデバイスアドレスと同じであるかを確認する。同じジョブであればステップ2505に移行し、異なればステップ2508に処理を移行する。
【0178】
ステップ2505では、プルプリントサーバ605は、ステップ2503で見つけた印刷ジョブが転送されている印刷デバイスの状態を確認する。印刷デバイスの状態は、前述の通りデバイススケジューラからイベントで通知されている。確認したデバイスの状態が正常であれば、ステップ2506に処理を移行する。ステップS2506において、プルプリントサーバ605は、ステップ2503で見つけたデバイスに転送された該当ジョブ全ての一時停止要求をデバイススケジューラに発行し、該当ジョブ全てを一時停止状態にする。
【0179】
ステップ2505で確認したデバイスの状態が用紙無しなどのエラー状態であれば、ステップ2507に処理を移行しデバイスに転送された該当ジョブ全てのキャンセル要求をデバイススケジューラに発行し、該当ジョブ全てを削除する。
【0180】
ステップ2504で、ステップ2502で取得したプルプリント要求を発行したデバイスのアドレスと、ステップ2503で見つけたデバイスに転送されているジョブのデバイスアドレスと同じであるかを確認する。アドレスが異なればステップ2508に移行する。
【0181】
ステップ2508では、ステップ2503で見つけたジョブが転送されているデバイスの状態を確認する。確認したデバイスの状態が正常であれば、ステップ2509に処理を移行し、ステップ2503で見つけたデバイスに転送された該当ジョブで、印刷待機中の状態のジョブ、つまり、まだ印刷処理がされていないジョブを、プルプリント要求を発行したプリンタに対して印刷処理を開始し、ステップ2510において、もともと転送していたプリンタの該ジョブを削除する。ステップ2509、ステップ2510の組み合わせ処理によって、元々印刷していたプリンタの先頭ジョブつまりまさに印刷処理されているジョブと、後続で待機していたジョブが別のプリンタに移動され、2台のプリンタで並行して印刷されることになる。つまり、プルプリントによる負荷分散印刷となる。
【0182】
ステップ2508で確認したデバイスの状態が異常であれば、ステップ2511に処理を移行する。
【0183】
プリンタが用紙無しなどのエラーで止まっており、プリンタの先頭のジョブを含め、プリンタが正常な状態に戻るまで印刷が待たされた状態となっている。ステップ2511では、先頭ジョブを含め、プルプリント要求を発行したプリンタに対して印刷処理を開始し、ステップ2512において、もともと転送していたプリンタの該ジョブを削除する。ステップ2511、ステップ2512の組み合わせ処理によって、元々印刷していたプリンタの先頭ジョブつまりまさに印刷処理されているジョブと、後続で待機していたジョブが別のプリンタに移動され、代行印刷されることになる。先頭ジョブを別のプリンタで代行する場合には、当然、そのジョブの先頭から代行されるようにすることも、途中のページから代行することも動作的に可能であることはいうまでもない。
【0184】
プルプリントシステムでは、ユーザがプリンタまで出向いて処理をするため、その場でジョブ制御を行うことができない。そのため以上説明したように、本実施例によれば、認証情報読み取り装置に認証情報記録媒体を通すことで、デバイスの状態によってジョブの制御を指定することが可能となり、プルプリントシステムの利便性を向上させることになる。
【0185】
本実施形態における制御は、上述したように、各ソフトウェアプログラムによって実現されることが望ましい。そして、その場合、CD−ROMやフラッシュメモリやFD等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【0186】
以上のように、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【0187】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0188】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、CD−RW、DVD、磁気テープ、不揮発性のメモリカード、ROM、EEPROM等を用いることができる。
【0189】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0190】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【0191】
【図1】本発明の実施形態としてのプリントシステムの全体構成を示すブロック図である。
【図2】サーバのハードウェア構成を説明するブロック図である。
【図3】図2に示したRAM202のメモリマップの一例を示す図である。
【図4】図2に示したFD204のメモリマップの一例を示す図である。
【図5】プリンタのハードウェア構成を説明するブロック図である。
【図6】サーバのプリントシステムのソフトウェア構成の例を示す図である。
【図7】サーバの印刷時の印刷ジョブの流れを示す図である。
【図8】プリンタのソフトウェア構成の例を示す図である。
【図9】プリンタのユーザアプリケーションのソフトウェア構成の例を示す図である。
【図10】デバイススケジューラで管理するサーバ情報とサーバ管理キューを示す図である。
【図11】デバイススケジューラで管理するジョブ情報とジョブ管理キューを示す図である。
【図12】プルプリントサーバが管理するジョブ情報とジョブ管理キューを示す図である。
【図13】プルプリントサーバが管理するプリンタキューの情報を表す図である。
【図14】プルプリントエージェントがプルプリントサーバに送信する情報を示す図である。
【図15】認証情報記憶媒体が記憶している情報を示す図である。
【図16】プルプリントサーバがプルプリントジョブを印刷アプリケーションから受け付ける処理を示すフローチャートである。
【図17】プルプリントエージェントの処理の流れを示す図である。
【図18】プルプリントサーバがプルプリント要求を受け付けてから印刷データを送信するまでの処理の流れを示す図である。
【図19】デバイススケジューラがジョブを受け付け、スケジュールアップする処理の流れを示す図である。
【図20】プルプリントサーバのジョブ転送後の処理を示す図である。
【図21】ジョブ管理部のジョブ状態通知イベントの受け付けからジョブリスト要求の受け付けに対する処理を示すフローチャートである。
【図22】デバイススケジューラのイベント登録処理に関する処理の流れを示す図である。
【図23】サーバからの要求や通知、デバイス管理部からの通知、ジョブ管理部903への要求や通知を処理する通信接続管理部の処理を示すフローチャートある。
【図24】プルプリントサーバとデバイススケジューラ、LPD/RAW、プリンタコントローラ間の印刷シーケンスを示す図である。
【図25】プルプリントサーバにおける動作を説明するためのフローチャートである。




 

 


     NEWS
会社検索順位 特許の出願数の順位が発表

URL変更
平成6年
平成7年
平成8年
平成9年
平成10年
平成11年
平成12年
平成13年


 
   お問い合わせ info@patentjp.com patentjp.com   Copyright 2007-2013