(57)【要約】【課題】リモート印刷とローカル印刷の統合的なスケジュール管理を実現する。【解決手段】画像処理装置は、外部装置により受信したジョブ情報を登録するスケジューラと、スケジューラに登録したジョブ情報の順序管理に基づき各ジョブ情報に対応するジョブデータを外部装置に送信許可し、外部装置から送信されてくるジョブデータを入力し、該入力されたジョブデータに基づく印刷要求を登録するコントローラと、コントローラに登録された印刷要求を順次印刷するプリンタエンジンとを有する。そして、不揮発性記憶装置に記憶された印刷データに印刷指示がなされた場合に、該印刷指示に対応するジョブ情報をスケジューラに登録し、該登録よりも以前にスケジューラに登録されたジョブ情報に基づくコントローラへのデータ転送の後に、当該印刷指示に対応するジョブ情報に基づくコントローラへのデータ転送を許可する。【選択図】    図１７
2007334608.tif 000002
【特許請求の範囲】
【請求項１】
外部装置により受信したジョブ情報を登録するスケジューラと、前記スケジューラに登録したジョブ情報の順序管理に基づき各ジョブ情報に対応するジョブデータを前記外部装置に送信許可し、外部装置から送信されてくるジョブデータを入力し、該入力されたジョブデータに基づく印刷要求を登録するコントローラと、前記コントローラに登録された印刷要求を順次印刷するプリンタエンジンとを有する画像処理装置であって、
印刷データを保存する不揮発性記憶手段と、
前記不揮発性記憶手段に記憶された印刷データに印刷指示がなされた場合に該印刷指示に対応するジョブ情報を前記スケジューラに登録する登録手段と、
前記登録手段による登録処理よりも前に前記スケジューラに登録されたジョブ情報に基づく前記コントローラへのデータ転送の後に、前記登録手段により登録されたジョブ情報に基づく前記コントローラへのデータ転送を許可する許可手段を有することを特徴とする画像処理装置。
【請求項２】
前記スケジューラはオプションとして追加可能であり、前記スケジューラが具備されていない場合には、前記不揮発性記憶手段に記憶された印刷データに印刷指示がなされた場合に該印刷指示に対応する印刷要求を前記スケジューラを介することなく投入する印刷要求投入手段を有することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
外部装置により受信したジョブ情報を登録するスケジューラと、前記スケジューラに登録したジョブ情報の順序管理に基づき各ジョブ情報に対応するジョブデータを前記外部装置に送信許可し、外部装置から送信されてくるジョブデータを入力し、該入力されたジョブデータに基づく印刷要求を登録するコントローラと、前記コントローラに登録された印刷要求を順次印刷するプリンタエンジンとを有する画像処理装置であって、
前記スケジューラを介することなく、前記コントローラに入力される印刷要求を監視し、該監視により検知された印刷要求を保留にすると共に、前記スケジューラに登録する第１監視手段と、
前記第１監視手段による印刷要求の保留前に前記スケジューラに登録されたジョブ情報に基づくジョブデータの前記コントローラへの転送処理を監視する第２監視手段と、
前記第２監視手段の前記転送処理の監視に基づき前記保留にした印刷要求の処理を再開させる再開制御手段とを有することを特徴とする画像処理装置。
【請求項４】
外部装置により受信したジョブ情報を登録するスケジューラと、前記スケジューラに登録したジョブ情報の順序管理に基づき各ジョブ情報に対応するジョブデータを前記外部装置に送信許可し、外部装置から送信されてくるジョブデータを入力し、該入力されたジョブデータに基づく印刷要求を登録するコントローラと、前記コントローラに登録された印刷要求を順次印刷するプリンタエンジンとを有する画像形成装置におけるジョブ管理方法であって、
印刷データを不揮発性記憶装置に保存する記憶工程と、
前記不揮発性記憶装置に記憶された印刷データに印刷指示がなされた場合に該印刷指示に対応するジョブ情報を前記スケジューラに登録する登録工程と、
前記登録工程による登録処理よりも前に前記スケジューラに登録されたジョブ情報に基づく前記コントローラへのジョブデータ転送の後に、前記登録工程により登録されたジョブ情報に基づく前記コントローラへのデータ転送を許可する許可工程を有することを特徴とするジョブ管理方法。
【請求項５】
前記スケジューラはオプションとして追加可能であり、前記スケジューラが具備されていない場合には、前記不揮発性記憶装置に記憶された印刷データに印刷指示がなされた場合に該印刷指示に対応する印刷要求を前記スケジューラを介することなく投入する印刷要求投入工程を有することを特徴とする請求項４に記載のジョブ管理方法。
【請求項６】
外部装置により受信したジョブ情報を登録するスケジューラと、前記スケジューラに登録したジョブ情報の順序管理に基づき各ジョブ情報に対応するジョブデータを前記外部装置に送信許可し、外部装置から送信されてくるジョブデータを入力し、該入力されたジョブデータに基づく印刷要求を登録するコントローラと、前記コントローラに登録された印刷要求を順次印刷するプリンタエンジンとを有する画像形成装置におけるジョブ管理方法であって、
前記スケジューラを介することなく、前記コントローラに入力される印刷要求を監視し、該監視により検知された印刷要求を保留にすると共に、前記スケジューラに登録する第１監視工程と、
前記第１監視工程による印刷要求の保留前に前記スケジューラに登録されたジョブ情報に基づくジョブデータの前記コントローラへの転送処理を監視する第２監視工程と、
前記第２監視工程の前記転送処理の監視に基づき前記保留にした印刷要求の処理を再開させる再開制御工程とを有することを特徴とするジョブ管理方法。
【請求項７】
請求項４乃至６のいずれかに記載のジョブ管理方法をコンピュータに実行させるための制御プログラム。
【請求項８】
請求項７に記載された制御プログラムを格納したことを特徴とするコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷システムにおけるジョブの実行スケジュール管理技術に関する。
【背景技術】
【０００２】
ネットワーク印刷システムでは、プリンタはネットワークを介して接続された複数のクライアントから印刷要求を受けるものとなっている。そのため、排紙された印刷物が他者の印刷物と混じり合ってしまうケースが多々ある。
【０００３】
上記のようなプリント環境においては、各印刷要求の優先度や投入順序によって適切な順序で印刷させるために、プリントサーバのようなスケジュール管理装置を用いることが多い。例えば特許文献２では、印刷ジョブ情報のみを、先に印刷制御装置側に登録しておき、該印刷制御装置が、各クライアントからの印刷ジョブ情報の順序管理を行ない、該順序管理に基づき各クライアントに印刷データの送信許可を行う技術が知られている。
【０００４】
一方、近年、オフィスなどにおいて使用される複写機やプリンタなどの様々な機能を１台に組み込む複合化が進められている。例えば、複写機の内部に画像処理機能を有するプリンタコントローラを組み込み、１台で複写機とプリンタとの両方の機能を有するデジタル複合機と呼ばれる画像処理装置が市場に登場している。このようなデジタル複合機では、プリンタ機能と複写機能が各々別のスケジュールとして印刷される。そのため、上述したプリントサーバのようなスケジュール管理装置を用いたとしても、複写機能等のローカル環境で出力された印刷物が、プリンタ機能等のリモート環境で出力された印刷物と交じり合ってしまうという課題が発生する。
【０００５】
そのため、特許文献１では、デジタル複写機とプリントサーバとを含む印刷システムにおいて、印刷ジョブと複写ジョブの状況を一度に把握するための機能が提案されている。特許文献１によれば、印刷ジョブを優先して印刷したり、複写ジョブを優先して印刷したりする機能が提案されている。
【特許文献１】特開２００３−１６２３９０号公報
【特許文献２】特開２００２−２０２８７３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
特許文献１に記載される従来技術では、複写ジョブと印刷ジョブが競合した場合にどちらを優先するかは、予め決定されたモードによって制御される。このため、ジョブそれぞれに設定された優先度によって印刷順序の入れ替えを行ったりすることはできず、スケジュール管理方法としてユーザが納得できるものではなかった。
【０００７】
また、近年、上述したデジタル複合機には大容量記憶装置が設置されており、ジョブをこの大容量記憶装置に蓄えておき、任意のタイミングで取り出して印刷する機能が実現されている。即ち、読み取りを行ったジョブやリモートから投入されたジョブを、紙媒体に印字するだけではなく、大容量記憶装置に蓄えておき、ユーザが希望するタイミングで取り出して印刷する機能（所謂ローカル印刷機能）が実現されている。しかしながら、基本的にプリンタにおける印刷順序は印刷データがプリンタに投入された順序に従うものである。このため、特許文献２等の技術では、印刷ジョブ情報の登録と実際の印刷データの投入との間に、例えば上記ローカル印刷機能による印刷が割り込んでしまうという問題があった。
【０００８】
また、デジタル複合機はＦＡＸの受信やメールの受信、Ｗｅｂページの受信、それぞれの印刷等、機能追加が盛んに行われている。従って、今後、スケジュール管理装置はこれら様々なジョブを統合的に管理しなければならない状況になってきている。
【０００９】
本発明は上記の課題に鑑みてなされたものであり、ローカル印刷機能によるローカル印刷が行われた場合にも、他の外部クライアントからの印刷要求順を考慮して統合的な印刷スケジュール管理を実現することを目的とする。
【課題を解決するための手段】
【００１０】
上記の目的を達成するための本発明による画像形成装置は以下の構成を備える。すなわち、
外部装置により受信したジョブ情報を登録するスケジューラと、前記スケジューラに登録したジョブ情報の順序管理に基づき各ジョブ情報に対応するジョブデータを前記外部装置に送信許可し、外部装置から送信されてくるジョブデータを入力し、該入力されたジョブデータに基づく印刷要求を登録するコントローラと、前記コントローラに登録された印刷要求を順次印刷するプリンタエンジンとを有する画像処理装置であって、
印刷データを保存する不揮発性記憶手段と、
前記不揮発性記憶手段に記憶された印刷データに印刷指示がなされた場合に該印刷指示に対応するジョブ情報を前記スケジューラに登録する登録手段と、
前記登録手段による登録処理よりも前に前記スケジューラに登録されたジョブ情報に基づく前記コントローラへのデータ転送の後に、前記登録手段により登録されたジョブ情報に基づく前記コントローラへのデータ転送を許可する許可手段を有する。
【００１１】
また、上記の目的を達成するための本発明による画像形成装置は以下の構成を備える。すなわち、
外部装置により受信したジョブ情報を登録するスケジューラと、前記スケジューラに登録したジョブ情報の順序管理に基づき各ジョブ情報に対応するジョブデータを前記外部装置に送信許可し、外部装置から送信されてくるジョブデータを入力し、該入力されたジョブデータに基づく印刷要求を登録するコントローラと、前記コントローラに登録された印刷要求を順次印刷するプリンタエンジンとを有する画像処理装置であって、
前記スケジューラを介することなく、前記コントローラに入力される印刷要求を監視し、該監視により検知された印刷要求を保留にすると共に、前記スケジューラに登録する第１監視手段と、
前記第１監視手段による印刷要求の保留前に前記スケジューラに登録されたジョブ情報に基づくジョブデータの前記コントローラへの転送処理を監視する第２監視手段と、
前記第２監視手段の前記転送処理の監視に基づき前記保留にした印刷要求の処理を再開させる再開制御手段とを有する。
【発明の効果】
【００１２】
本発明によれば、ローカル印刷機能によるローカル印刷が行われた場合にも、他の外部クライアントからの印刷要求順を考慮して統合的な印刷スケジュール管理を行うことができる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の好適な実施形態を添付の図面を参照して説明する。
【００１４】
＜第１実施形態＞
図１は第１実施形態に係る印刷システムの全体構成を示すブロック図である。この印刷システムは、情報処理装置としてのクライアント（コンピュータ）１０１〜１０３と、印刷装置（デジタル複合機）としてのデバイス１０４〜１０５とを含み、これらが互いに接続されていることにより、全体としてネットワークを構成している。
【００１５】
クライアント１０１〜１０３の夫々には印刷制御プログラムが実行可能に格納されており、本印刷システムに含まれるデバイス１０４〜１０５を管理する機能を有する。又、クライアント１０１〜１０３の夫々は、この他に、ネットワークで使用されるファイルを蓄積したり、ネットワークの使用状態を監視したりする機能を有する。より、具体的には、クライアント１０１〜１０３は、印刷ジョブを作成し、デバイス１０４、１０５のスケジュールを管理するスケジューラへスケジュール要求を発行する。スケジューラはこのスケジュール要求に応じてジョブ情報を登録し、ジョブの実行順序を管理する。そして、スケジューラは、実行すべきジョブ情報に対応するジョブデータをデバイス１０４，１０５へ送信するように、送信許可をクライアント１０１〜１０３に対して送信する。クライアント１０１〜１０３は、スケジューラからの指示（送信許可）により、ジョブデータ（印刷データを含む）の転送を開始する機能を有する。尚、スケジューラは、デバイス１０４〜１０５のアプリケーションとして当該印刷システムに実装されてもよいし、外部接続された情報処理装置として当該印刷システムに実装されてもよい。
【００１６】
デバイス１０４〜１０５は、クライアント１０１〜１０３から、印刷データを含むジョブデータを受信し、受信したジョブデータを解析して印刷する物理的な装置としてのデバイスであり、本実施形態ではデジタル複合機を利用している。また、デバイス１０４〜１０５は、デバイスコントローラ（後述のデジタル複合機制御部５０３に相当）を備え、該デバイスコントローラに登録された印刷要求を順次印刷するプリンタエンジンも備える。デバイス１０４はジョブデータを受信すると、該ジョブデータに基づく印刷要求として登録し、登録した順番に対応するジョブデータの印刷を実行していく。なお、本印刷システムに含まれる装置間の通信は、イーサネット（登録商標）ケーブルなどを利用した有線通信でも良いし、電波や光などを利用した無線通信でもよい。
【００１７】
図２は、図１で示したクライアント１０１〜１０３のハードウェア構成を説明するブロック図である。
【００１８】
図２において、ＣＰＵ２００は、ＨＤ（ハードディスク）２０５に格納されているアプリケーションプログラム、プリンタドライバプログラム、ＯＳや印刷制御プログラム等を読み出して各種処理を実行する。又、ＣＰＵ２００は、各種処理を実行するにおいて、ＲＡＭ２０２にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。ＲＯＭ２０１は、基本Ｉ／Ｏプログラム等のプログラム、文書処理の際に使用するフォントデータ、テンプレート用データ等の各種データを記憶する。ＲＡＭ２０２は、ＣＰＵ２００の主メモリやワークエリア等として機能する。
【００１９】
ＦＤ（フロッピー（登録商標）ディスク）ドライブ２０３は、記憶媒体としてのＦＤ２０４に記憶されたプログラム等を本コンピュータシステムにロードするための記憶媒体読取ユニットである。なお、クライアント１０１〜１０３において、ＦＤドライブ２０３に変えて、或いはＦＤドライブ２０３と共に、他の記憶媒体に対応した読取ユニットを備えても良い。他の記憶媒体としては、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＰＣカード、ＤＶＤ、ＩＣメモリカード、ＭＯ、メモリスティック等、コンピュータが読み取り可能なあらゆる記憶媒体が挙げられる。
【００２０】
ＨＤ２０５は、大容量メモリとして機能する外部記憶装置であり、アプリケーションプログラム、プリンタドライバプログラム、ＯＳ、印刷制御プログラム、及び関係プログラム等を格納している。さらに、印刷データのスプール機能を提供するスプーラは、このＨＤ２０５に確保される。
【００２１】
キーボード２０６は、ユーザがクライアント１０１〜１０３に対して、デバイスの制御コマンドの命令等を入力するための入力装置である。ディスプレイ２０７は、キーボード２０６から入力したコマンドや、デバイス１０４〜１０５の状態等を表示する。なお、実際にはクライアント１０１〜１０３上で稼動するオペレーティングシステムを介してディスプレイ２０７への表示指示がなされる。従って、このオペレーティングシステムに対して本実施形態の印刷処理プログラムによる表示指示が行われることにより後述する各表示が実現される。システムバス２０８は、クライアント１０１〜１０３内のデータの流れを司る。また、クライアント１０１〜１０３は、インタフェース２０９を介してネットワーク上の他の装置とデータのやり取りを行う。
【００２２】
図３は、図２に示したＲＡＭ２０２のメモリマップの一例を示す図である。図２は、印刷制御プログラムがＲＡＭ２０２にロードされ実行可能となった状態のメモリマップを示している。印刷制御プログラム及び関係データは、予めＦＤ２０４からＨＤ２０５にインストールされて、ＨＤ２０５からＲＡＭ２０２にロードするようにしても良いし、ＦＤ２０４から直接ＲＡＭ２０２にロードして実行させても良い。さらに、印刷制御プログラムをＲＯＭ２０１に記憶しておき、これがメモリマップの一部をなすように構成し、直接ＣＰＵ２００で実行することも可能である。
【００２３】
領域３０１には基本Ｉ／Ｏプログラムが格納される。基本Ｉ／Ｏプログラムは、クライアント１０１〜１０３の電源がＯＮされたときに、ＨＤ２０５からＯＳをＲＡＭ２０２にロードし、ＯＳの動作を開始させるＩＰＬ（イニシャルプログラムローディング）機能等を有しているプログラムである。領域３０２にＯＳ（オペレーティングシステム）が格納される。又、領域３０３には、印刷制御プログラムが格納される。印刷制御プログラムは、クライアントにおいては、印刷データを転送したり、印刷ジョブの印刷先の変更を指示したり、印刷順序を変更したりする指示をするための制御を行う。領域３０４は、関連データを記憶する領域である。３０５はワークエリアで、ＣＰＵ２００が各種のプログラムを実行するための領域である。
【００２４】
図４は、図２に示したＦＤ２０４のメモリマップの一例を示す図である。図４において、４００はＦＤ２０４のデータ内容を示しており、データの情報を示すボリューム情報４０１と、ディレクトリ情報４０２と、印刷制御プログラム４０３と、その関連データ４０４を含んでいる。
【００２５】
図５は図１におけるデバイス（デジタル複合機）１０４〜１０５の制御構成を示すブロック図である。図５において、画像形成部５０１は、紙媒体のハンドリングや、画像転写及び定着等の一連の画像形成プロセスを実行して、記録紙などの記憶媒体上に画像を形成する。又、画像形成部５０１は、形成した画像を、後述する外部記憶装置制御部５０９を介して大容量記憶装置５１０に保存する。画像形成部５０１は、例えばインクジェットプリンタや電子写真方式の画像形成ユニットを備えている。画像読取部５０２はスキャナ等を備え、原稿画像を光学的に読み取ってデジタル画像情報に変換する。得られたデジタル画像情報は、例えば画像形成部５０１に出力されて画像形成されたり、大容量記憶装置５１０に保存されたり、或はファックス部５０４やネットワークインタフェース部５０７に出力されて回線を介して伝送される。
【００２６】
デジタル複合機制御部５０３（以下、デバイスコントローラ）は、画像形成部５０１と画像読取部５０２の夫々の動作を制御する。例えば、デバイスコントローラ５０３は、画像読取部５０２で読み取った原稿情報を画像形成部５０１で複写するように制御する。又、デバイスコントローラ５０３は、ネットワークインタフェース部５０７、プリント処理部５０６、ファックス部５０４、操作部制御部５０５、外部記憶装置制御部５０９を有し、これら各部の間における情報のやり取りをも制御している。
【００２７】
ファックス部５０４は、ファクシミリ画像の送受信を行う。すなわち、ファクス部５０４は、画像読取部５０２で読み取ったデジタル画像情報をファクシミリ送信したり、外部より受信したファクシミリ信号を復号して画像形成部５０１で画像記録したりする等の処理を実行する。
【００２８】
操作部制御部５０５はデバイス１０４，１０５が具備する操作パネル５１１に対するユーザ操作に応じた信号を発生したり、また操作パネル５１１が具備する表示器に各種データやメッセージなどを表示したりする制御を行う。
【００２９】
プリント処理部５０６は例えばネットワークインタフェース部５０７を介して入力した印刷データや、外部記憶装置制御部５０９を介して大容量記憶装置５１０に保存した印刷データを処理し、ジョブ登録順で画像形成部５０１に出力して印刷する等の制御を行う。ネットワークインタフェース部５０７は通信回線を介して他の通信端末との間のデータの送受信を制御する。例えば、ネットワークインターフェース部５０７は、接続されたクライアント１０１〜１０３等の外部装置と所定のネットワーク通信プロトコルを用いて、外部装置から送られる印刷データやプリンタ制御命令等を含む各種データの送受信を行う。外部記憶装置制御部５０９は、接続した大容量記憶装置５１０に印刷データを保存したり、また逆に保存した印刷データを取り出して画像形成部５０１に出力したりする。本実施形態では、この大容量記憶装置５１０に、所謂ボックス機能における保存ジョブを保存する。
【００３０】
仮想マシン５０８はデバイスコントローラ５０３の上位に位置し、この仮想マシン５０８からデバイスコントローラ５０３を制御できるようになっている。またネットワークインタフェース５０７はデバイスコントローラ５０３と仮想マシン５０８の双方から直接利用可能であり、それぞれ独立して外部ネットワークにアクセスすることが可能であるように構成されている。
【００３１】
さらに、この仮想マシン５０８の上位には仮想マシン５０８が提供するＡＰＩ（Application Programming Interface）に対応したプログラミング言語で記述されたアプリケーションＡ〜Ｄが存在している。これらアプリケーションは、仮想マシン５０８を介して間接的にデバイスコントローラ５０３に働きかけることができ、また画像形成部５０１や画像読取部５０２を動作させることが可能になっている。
【００３２】
次に、本印刷システムのクライアントのソフトウェア構成について説明する。図６は、クライアント１０１〜１０３におけるソフトウェア構成の一例を示す図である。夫々の構成間の矢印は、アプリケーションから発行された描画コマンドを含む印刷ジョブもしくは保存ジョブが、どのように処理されるかを示している。又、各ブロックで示されたソフトウェア構成は、図２のＣＰＵ２００によって実現される。
【００３３】
通常、Microsoft Word（登録商標）等のＯＳ上で稼動する一般的なアプリケーションプログラム６０１は、印刷の指示を受け付けると、一連の描画コマンドを、ＯＳを介して生成する。ＯＳを介して生成された描画コマンドを受け取ったＰＤＬドライバ６０２は、一連の描画コマンドに基づいてデバイス１０４〜１０５で解釈可能なＰＤＬファイルを含む印刷ジョブを生成する。なお、以下の説明ではＰＤＬドライバを用いた例により説明を行うが、これに限定されるものではない。例えば、ＢＤＬ（Band description Language）や、圧縮ビットマップを作成するプリンタドライバ、或いは、アプリケーション及びＯＳによりプリンタドライバを介さずに印刷データを生成する形態などにも適用可能である。
【００３４】
ＰＤＬドライバ６０２は、デバイスへ印刷ジョブもしくは保存ジョブを送信するために、これらジョブをスプーラ６０３に渡す。ここではＯＳをWindows（登録商標）と仮定しているのでスプーラ６０３はウィンドウズスプーラである。ただし、本発明を適用するコンピュータのＯＳはWindows（登録商標）に限定されるものではなく、描画命令を備えるものであれば他のＯＳも適用可能であることは言うまでもない。
【００３５】
スプーラ６０３は、ユーザインタフェースを介してユーザによって選択指示されたジョブ制御ポートモニタ６０４に印刷ジョブを渡して、デバイス１０４〜１０５等に送信させる手順をとる（矢印ａ）。ここでは、ユーザは予めジョブ制御プリントサービス６０５に印刷データを転送するポートモニタ６０４（以降、ジョブ制御ポートモニタ）を指定して印刷を指示したものとして説明を進める。また、プリンタドライバインタフェースを介して設定された用紙サイズ、ステイプル指示等の印刷設定情報も、ジョブ制御ポートモニタ６０４に送信される。ジョブ制御ポートモニタ６０４は、受信したジョブをプリントサービス６０５（以降、ジョブ制御プリントサービスと称する）に送信する（矢印ｂ）。
【００３６】
また、クライアント１０１〜１０３においてジョブ制御プリントサービス６０５と別のクライアント６０８のジョブ登録アプリケーション６０９は、ジョブ制御プリントサービス６０５にＡＰＩ６１０を介して印刷データを投入する（矢印ｇ）。
【００３７】
ジョブ制御プリントサービス６０５は、転送された印刷ジョブもしくは保存ジョブ及びデバイスの状態を管理する機能を備える。また、ジョブ制御プリントサービス６０５は、デバイス１０４，１０５のスケジューラ（図８の８００）から通知されるデバイス状態やジョブの状態などの情報を管理したり、スケジューラに対して所定の命令をしたりする機能も備える。これは、複数のデバイス１０４〜１０５のデバイス情報やジョブ情報を管理する機能に相当する。
【００３８】
又、ジョブ制御プリントサービス６０５は、印刷データ（即ち、ジョブデータ）をデバイス１０４，１０５に送信する前に、デバイス１０４，１０５が持つ印刷ジョブもしくは保存ジョブの順序管理機能に相当するスケジューラに印刷の要求（スケジュール要求）を発行する。そして、スケジューラの順序管理機能に基づき順番が到来した場合には、スケジューラからの送信許可に応じて、デバイス１０４〜１０５にジョブデータを送信する（矢印ｃ、ｄ、ｅ）。
【００３９】
スケジューラは、印刷データの印刷完了を確認すると印刷完了の通知をジョブ制御プリントサービス６０５に通知（矢印ｆ）したり、また、デバイス１０４，１０５の状態を通知したりする（矢印ｆ）。
【００４０】
プリントマネージャ６０７は、ユーザが、ジョブ制御プリントサービス６０５内部でプリントジョブがどのような状態にあるかを調べたり、印刷ジョブや保存ジョブを操作したりするためのユーザインタフェースを提供するプログラムである。プリントマネージャ６０７は、ジョブ制御プリントサービス６０５のソフトウェアのインタフェース（ＡＰＩ：Application Program Interface）を介して、ジョブ制御プリントサービス６０５と情報・指示をやり取りしている。プリントマネージャ６０７は、主に、ジョブ制御プリントサービス６０５が管理するデバイス１０４〜１０５の状態情報をイベントとして取得する機能を備える。イベントの通知の種別としては、トナー残量が少なくなった警告、クライアントとデバイスとの通信障害、メモリ不足、排紙トレイ満載などのエラー／警告情報の通知や、エラー状態から正常状態に復帰した正常情報の通知などが想定される。ここでのジョブ制御プリントサービス６０５はネットワークを介して通信可能な各デバイス（印刷装置）の印刷実行中、電力制御状態、障害情報（紙ジャム）等のステータスの通知を受け付ける機能を備える。又、プリントマネージャ６０７は、ジョブ制御プリントサービス６０５に対してデバイスを指定したイベントを発行する。ジョブ制御プリントサービス６０５は発行されたイベントに基づくデバイスのステータスを認識して、そのステータスの監視に基づく結果をプリントマネージャ６０７に通知する。又、プリントマネージャ６０７が提供するユーザインターフェースにより、保存ジョブの指定、印刷実行を指示する（ボックス機能による印刷を指示する）ことができる。
【００４１】
次に、図７を用いてアプリケーション６０１からデバイス１０４，１０５までの印刷ジョブの流れについて説明する。ここで、図６と同じソフトウェア構成について同じ参照番号を付与している。
【００４２】
図７に示すように、概念的には、ＰＤＬドライバ６０２、スプーラ６０３、ジョブ制御ポートモニタ６０４は、デバイス１０４〜１０５ごとに用意されている。ＯＳがウィンドウズの場合には、これらをまとめてウィンドウズプリントシステム７００と称する場合もある。ジョブ制御プリントサービス６０５には、デバイス１０４〜１０５に対応する数のプリントキュー７０１、７０１Ａ及び出力ポート７０２、７０２Ａが含まれている。これらのプリントキュー７０１，７０１Ａや出力ポート７０２，７０２Ａは、ジョブ制御プリントサービス６０５が管理している。
【００４３】
印刷を行う場合、アプリケーション６０１はプリンタを指定して印刷指示を発行する。この印刷指示に基づいて、ＰＤＬドライバ６０２は生成した印刷ジョブをジョブ制御ポートモニタ６０４に渡し、ジョブ制御ポートモニタ６０４はその印刷ジョブをジョブ制御プリントサービス６０５に渡す。ジョブ制御プリントサービス６０５に渡された印刷ジョブ情報は、まずプリントキュー７０１に保持される。プリントキュー７０１は、出力ポート７０２に印刷ジョブを受け付けるよう指示を出す。出力ポート７０２は、印刷するジョブを受け付けると、出力ポートに設定されたＩＰアドレスに該当する、デバイス１０４，１０５のスケジューラ（図８の８００）に対してスケジュール要求を発行する。デバイス１０４，１０５のスケジューラは、スケジュール要求に応じて当該ジョブ情報を登録し、自身が持つスケジューリング機能に基づいて複数のジョブ制御プリントサービス６０５から受け付けたジョブのスケジューリング処理を行う。そして、スケジューラは、スケジューリングに則って出力ポート７０２に対してジョブデータの送信を許可する送信許可（印刷指示）を発行する。デバイス１０４，１０５（スケジューラ）からの送信許可を受け付けた出力ポート７０２はデバイス１０４，１０５にジョブデータを送信する。
【００４４】
次に、本印刷システムのスケジューリング機能やクライアント１０１〜１０３から受け付けた印刷ジョブの管理機能を持つスケジューラについて説明する。本実施形態では、スケジューラはデバイス上のユーザアプリケーションにより実現されており、以下、そのソフトウェア構成について説明する。
【００４５】
図８はスケジューラ８００の機能構成を示すブロック図である。スケジューラ８００は、仮想マシン５０８の上位の、仮想マシン５０８が提供するＡＰＩに対応したプログラミング言語で記述されたアプリケーションである。スケジューラ８００は、仮想マシン５０８を介して間接的にデバイスコントローラ５０３に働きかけることができ、また画像形成部５０１や画像読取部５０２を動作させることが可能である。
【００４６】
通信接続管理部８０１は、クライアント１０１〜１０３の接続状況や、クライアントに通知すべき情報を管理する。通信接続管理部８０１は、接続されているクライアントのクライアント情報１００２（図１０）をクライアント管理キュー１００１で管理する。通信接続管理部８０１は、仮想マシン５０８が提供するＡＰＩ、ネットワークインタフェース部５０７を経由してクライアントと通信を行う。
【００４７】
スケジュール管理部８０２は、クライアント１０１〜１０３から受け付けた印刷ジョブのスケジューリングを行う。スケジュール管理部８０２は、ジョブ管理部８０３とデバイス管理部８０４を具備する。ジョブ管理部８０３は、クライアント１０１〜１０３から発行されたスケジュール要求や、クライアント１０１〜１０３が印刷したジョブを管理する。ジョブ管理部８０３は、クライアントがスケジュール要求として発行したジョブの情報（ジョブ情報９０２、図９）をジョブ管理キュー９０１で管理している。デバイス管理部８０４は、デバイスコントローラ５０３が持つプリンタの状態や受け付けた印刷ジョブの状態をイベントハンドラ８０５経由で受け付ける。デバイス管理部８０４は、デバイスコントローラ５０３から受け付けたイベントを通信接続管理部８０１やジョブ管理部８０３に通知する。
【００４８】
また、スケジューラ８００は、デバイス１０４〜１０５に対してオプションとして追加可能であり、スケジューラ８００がデバイスに具備されている場合といない場合とではデバイスの動作は異なってくる。後述の図１５、図１６Ｂ、図１８、図１９等のフローチャート又はシーケンスはスケジューラ８００がオプションとしてデバイスに具備されている場合の処理を示す。一方、スケジューラ８００がデバイスに具備されていない状態でローカル印刷機能が利用された場合には、印刷指示に対応する印刷要求はスケジューラ８００を介することなくデバイスコントローラに直接投入される。スケジューラ８００がオプションとして具備されていない場合には、スケジューラ８００によるジョブスケジューリングが行われていないので、リモート印刷の印刷要求をデバイスコントローラに直接投入しても実質的に印刷順序という観点で問題は無い。
【００４９】
図９は、クライアント１０１〜１０３が印刷すべく発行したスケジュール要求に付加されるジョブ情報９０２と、複数発生するジョブ情報を管理するジョブ管理キュー９０１のデータ構成例を示す図である。ジョブ情報９０２は、クライアント１０１〜１０３が印刷を開始するために発行するスケジュール要求に付加される印刷ジョブの情報を含む。このジョブ情報９０２は、印刷ジョブの「ドキュメント名」、ジョブ管理部８０３が発行した「ジョブＩＤ」、クライアントにおいて印刷を開始した「ユーザ名」、ジョブの「ページ数」、印刷ジョブの状況を表す「ジョブ状態」、「優先度」等を含む。
【００５０】
「ジョブ状態」は、クライアント１０１〜１０３が印刷のスケジュール要求を発行してから当該ジョブがプリンタから無くなるまでの間の当該ジョブの状態を表す。「ジョブ状態」としては、印刷待機中、スケジュールアップ状態（送信許可状態）、転送中、転送済み、印刷完了、保存中、保存済などが挙げられる。「ジョブＩＤ」は、印刷データに含まれるジョブのＩＤであり、デバイスコントローラ５０３内でのジョブ状態を通知するとき等において用いられる。「優先度」はスケジューラ８００が印刷順序を制御する際に利用される。即ち、スケジューラ８００は、「優先度」の値の高いものから優先的にジョブデータの送信を許可していく。尚、「優先度」には、クライアントから発行され設定されるものと、スケジューラ８００の判断により設定されるものがある。また、以下では、スケジューラによるジョブデータの送信許可を「印刷許可」と称する。即ち、スケジューラによる「印刷許可」とは、印刷ジョブデータ又は印刷データの送信許可のことであり、クライアントからのジョブデータ（印刷データ）の転送と即印刷することとは必ずしも一致しない。
【００５１】
ジョブ管理キュー９０１は、複数のジョブ情報９０２を管理する管理キューである。スケジューラ８００（ジョブ管理部８０３）は、スケジュール要求を受け付けるとジョブ情報９０２をジョブ管理キュー９０１に登録し、印刷ジョブが印刷終了すると、該当するジョブ情報を削除する。
【００５２】
図１０は、通信管理部８０１が管理する、ジョブ制御プリントサービス６０５のクライアント情報１００２と、ジョブ制御プリントサービス６０５のクライアント情報１００２を管理するクライアント管理キュー１００１を示す図である。
【００５３】
クライアント情報１００２は、「クライアントＩＤ」、「クライアントＩＰアドレス」、「登録イベント」を有する。「クライアントＩＤ」は、接続するクライアント毎に通信接続管理部８０１が割り振ったＩＤである。又、「クライアントＩＰアドレス」は、ジョブ制御プリントサービス６０５のＩＰアドレスを示す。「登録イベント」は、接続するクライアントが登録したイベントの種類などの情報を持つ。ここで、イベントの種類とは、デバイスコントローラ５０３が発行するデバイス状態のイベントやジョブ状態のイベントの種類を表す。
【００５４】
クライアント管理キュー１００１は、接続したジョブ制御プリントサービス６０５のクライアント情報をキューの形式で保持する管理キューである。クライアントとのセッションが開始されると、該当するクライアントの情報がクライアント管理キュー１００１に登録され、切断すると該当するクライアント情報が削除されるようになっている。
【００５５】
図１１は、スケジューラ８００のスケジュール管理部８０２が、ジョブ制御プリントサービス６０５からスケジュール要求を受け付けてから印刷許可を発行するまでの処理を示すフローチャートである。
【００５６】
スケジュール管理部８０２は、ステップＳ１１０１において、ジョブ制御プリントサービス６０５からの通知を受け付けると、受け付けた通知がスケジュール要求の通知なのか、転送済み状態の通知なのかを判断する。スケジュール要求の通知であれば、ステップＳ１１０１からステップＳ１１０２に処理を移行する。ステップＳ１１０２において、スケジュール管理部８０２は、ジョブ管理部８０３で発行したジョブＩＤと、スケジュール要求に付加された情報を用いてジョブ情報９０２を生成する。そして、スケジュール要求を受け付けた順および、スケジュール要求に付加された優先度を考慮した順序で、生成したジョブ情報をジョブ管理キュー９０１に登録する。
【００５７】
次に、ステップＳ１１０３において、ジョブ管理キュー９０１に登録されているジョブ情報のジョブ状態を確認する。ジョブ状態が「印刷許可」、「転送中」のものがあれば、既にあるクライアントに印刷データを転送するように指示しているため、ステップＳ１１０１に処理を移行する。ジョブ状態が「印刷許可」或は「転送中」のものがなければ、ジョブ制御プリントサービス６０５から印刷データが送られてくる予定のジョブは無い。従って、スケジュール管理部８０２は、次のジョブに対する印刷許可の発行を行うべく、ステップＳ１１０４以降に処理を進める。
【００５８】
まず、ステップＳ１１０４において、スケジュール管理部８０２は、ジョブ管理キュー９０１にスケジュール待機中のジョブが存在するかどうかを調べる。スケジュール待機中のジョブがジョブ管理キュー９０１に存在しない場合は、印刷許可をすべきジョブが存在しないので、ステップＳ１１０１に処理を戻す。一方、スケジュール待機中のジョブが見つかった場合は、ステップＳ１１０５に処理を移行する。ステップＳ１１０５では、ジョブ管理キュー９０１から実行すべきジョブを検出し、そのジョブの発行元のクライアントに対して印刷データの転送を開始させる印刷許可を通知する。尚、スケジュール管理部８０２は、ジョブ管理キュー９０１を調べ、スケジュール要求を受け付けた順及び夫々のジョブに設定された優先度に基づいて、実行すべきジョブを決定する。その後、ステップＳ１１０６において、スケジュール管理部８０２は、該当するジョブ情報のジョブ状態を印刷許可状態に更新し、ステップＳ１１０１に処理を移行する。
【００５９】
図１２は、ジョブ管理部８０３が、デバイス管理部８０４からジョブ状態通知イベントを受け付けた際、及びジョブ制御プリントサービス６０５からジョブリスト要求を受け付けた際の処理を示すフローチャートである。
【００６０】
ステップＳ１２０１において、ジョブ管理部８０３は、通信接続管理部８０１やデバイス管理部８０４からの通知を受け付けると、ジョブ状態通知であるかジョブリスト要求であるかを判断する。ジョブ状態通知はデバイス管理部８０４が発行するイベントである。又、ジョブリスト要求は、クライアントのジョブ制御プリントサービス６０５から通信接続管理部８０１を介してジョブ管理部８０３に到達する。
【００６１】
デバイス管理部８０４からのジョブ状態通知であると判断された場合は、ステップＳ１２０２に処理を移行し、ジョブ管理部８０３は受信したジョブ状態通知に従って該当するジョブ情報のジョブ状態を更新する。そして、ステップＳ１２０３に進み、その通知が印刷完了の通知であるか否かを判断する。印刷完了でなければ処理をステップＳ１２０４に移行し、通信接続管理部８０１に更新されたジョブ状態を通知するためのイベントをクライアントへ発行するように通知する。
【００６２】
一方、ステップＳ１２０３において印刷完了の通知であると判断された場合は、ステップＳ１２０５に処理を移行する。ステップＳ１２０５では、ジョブ管理キュー９０１から該当するジョブを削除する。そして、ステップＳ１２０６で、通信接続管理部８０１にジョブの完了イベントをクライアントへ発行するように通知する。そして、処理をステップＳ１２０１に戻す。
【００６３】
一方、ステップＳ１２０１で、ジョブ制御プリントサービス６０５からのジョブリスト要求であると判断された場合は、ステップＳ１２０７へ進む。ステップＳ１２０７では、ジョブ管理キュー９０１に登録されたジョブ情報９０２のリストを通信接続管理部８０１に通知し、当該リストを要求元のクライアントへ送信させる。
【００６４】
図１３は、デバイス管理部８０４が、デバイスコントローラ５０３からイベントハンドラ８０５を経由してデバイス状態やジョブ状態通知を受け付け、ジョブ管理部８０３や通信接続管理部８０１に通知する処理を説明するフローチャートである。
【００６５】
ステップＳ１３０１において、スケジューラ８００が起動すると、デバイス管理部８０４はイベントハンドラ８０５を経由してデバイスコントローラ５０３に対してイベント登録の処理を行う。例えば、デバイスの状態が変化した場合や、デバイスコントローラ５０３が処理する印刷ジョブの状態が変化した場合に、それらの状態を通知するようにイベント登録の処理が行われる。
【００６６】
ステップＳ１３０２において、デバイス管理部８０４は、デバイスコントローラ５０３で発生したイベントをイベントハンドラ８０５経由で受け付けると、当該イベントがジョブのイベントであるかデバイスのイベントであるかを判断する。ジョブのイベントであれば、ステップＳ１３０３へ進み、ジョブ管理部８０３にジョブのイベントを通知し、ステップＳ１３０２に処理を移行する。デバイスのイベントであれば、処理をステップＳ１３０４に移行し、デバイスの状態をデバイス管理部８０４で保持する。そして、ステップＳ１３０５へ進み、通信接続管理部８０１にデバイスイベントを通知し、処理をステップＳ１３０２に戻す。
【００６７】
図１４は、ジョブ制御プリントサービス６０５からの要求や通知、デバイス管理部８０４からの通知、ジョブ管理部８０３への要求や通知を処理する通信接続管理部８０１の処理を説明するフローチャートである。
【００６８】
ステップＳ１４０１において、通信接続管理部８０１は、ジョブ制御プリントサービス６０５やデバイス管理部８０４、ジョブ管理部８０３からの通知や要求を受け付け、どこからの通知や要求であるかを判断する。ステップＳ１４０１において、受け付けた要求やイベントがジョブ制御プリントサービス６０５からの接続要求であると判定されると、ステップＳ１４０２に移行する。ステップＳ１４０２では、クライアント管理キュー１００１に通信接続管理部８０１で発行したクライアントＩＤと、要求を発したクライアントのＩＰアドレスを設定し、クライアント管理キュー１００１にクライアント情報を登録する。
【００６９】
又、ステップＳ１４０１において受け付けた要求やイベントがジョブ制御プリントサービス６０５からのイベント登録であれば、ステップＳ１４０３に処理を移行し、該当するクライアント情報の登録イベントに通知するイベントの種類を設定する。上述したように、イベントの種類には、ジョブの状態の変化を通知するジョブイベント、デバイスの状態の変化を通知するデバイスイベントがある。
【００７０】
又、ステップＳ１４０１において受け付けた要求やイベントがデバイス管理部８０４からのデバイスイベントやジョブ管理部８０３からのジョブイベントであれば、ステップＳ１４０４に進む。ステップＳ１４０４では、これらのイベントを通知すべきクライアントを認識するために、クライアント管理キュー１００１に登録された全てのクライアント情報１００２から、クライアント情報の登録イベントの設定を参照する。通知すべきクライアントが認識されたならば、通知すべき全てのクライアントのＩＰアドレスを保持する。そして、ステップＳ１４０５において通知すべき全てのクライアントに対して、ステップＳ１４０１で受け付けたイベントを送信する。
【００７１】
又、ステップＳ１４０１において受け付けた要求やイベントがクライアントからの切断要求であればステップＳ１４０６に処理を移行し、クライアント管理キューから該当するクライアントのクライアント情報を削除する。
【００７２】
次に、図１５のフローチャートを用いて本実施形態による、ローカル印刷ジョブとリモート印刷ジョブの統合的なスケジュール管理処理について説明する。尚、デバイスはネットワークを介して受信した印刷データを用紙に印刷するリモート印刷機能、ネットワークを介するか又は原稿を読み取って得た印刷データを記憶する印刷データ蓄積機能、記憶した印刷データを用紙に印刷するローカル印刷機能を持つ。なお、ローカル印刷機能に利用される印刷データ蓄積機能（不揮発性記憶装置）に記憶された印刷データとしては、例えば、ページ記述言語形式データ、又は、ビットマップ画像データ、又は、ＸＭＬ形式データ、又は、ＰＤＬデータ等から生成した中間言語データ等が想定される。これら印刷データ蓄積機能に蓄積された印刷データをドキュメントと呼ぶこともある。また、リモート印刷機能としては、特に上述の図１１のフローチャートに従い、ジョブ制御プリントサービス６０５及びスケジューラ８００間で行われるスケジュール処理に従う印刷処理が挙げられる。そして、リモート印刷とはリモート印刷機能による印刷であり、ローカル印刷とはローカル印刷機能による印刷を用いた印刷である。
【００７３】
スケジューラ８００は、ステップＳ１５０１においてクライアントもしくは操作パネル５１１からスケジュール要求を受信すると、ステップＳ１５０２においてスケジュールの種類を判断する。ここでのスケジュールの種類とは、ローカル印刷経路かリモート印刷経路かを指す。尚、クライアントからのスケジュール要求はネットワークインターフェース部５０７及び通信接続管理部８０１によりスケジューラ８００に受け付けられる。又、操作パネル５１１からのスケジュール要求は、操作部制御部５０５及び通信接続管理部８０１を介してスケジューラ８００に受け付けられる。上記判断の結果、リモート印刷の場合はステップＳ１５０７へ、ローカル印刷の場合はステップＳ１５０３へ処理を移行する。
【００７４】
ローカル印刷の場合、スケジューラ８００は、ステップＳ１５０３において、ローカル印刷のスケジュール要求に対応したジョブ情報をジョブ管理キュー９０１に登録する。このとき、ジョブ情報のドキュメント名としては保存ジョブのドキュメント名、ジョブＩＤとしては保存ジョブのジョブＩＤが登録される。尚、保存ジョブは大容量不揮発性記憶装置５１０に格納されたジョブである。例えば、所謂ボックス機能により、プリントデータに基づく画像データが保存ジョブとして保持される。ステップＳ１５０４で当該ジョブが印刷順序に達するまで待機する。印刷順序に達した場合、処理はステップＳ１５０５に進み、スケジューラ８００は自身に印刷許可を発行する。そして、ステップＳ１５０６においてデバイスコントローラ５０３に保存ジョブの印刷を指示する。例えば、ボックス機能は、印刷許可に応じて対応する印刷データをデバイスコントローラへ送信し、これを印刷させる。
【００７５】
ステップＳ１５０２においてリモート印刷が要求された場合は、まず、ステップＳ１５０７において、スケジューラ８００のジョブ管理キュー９０１にジョブ情報のスケジュール登録を行う。そして、ステップＳ１５０８において当該ジョブが印刷順序に達するまで待機する。当ジョブが印刷順序に達した場合は、ステップＳ１５０９において印刷許可を発行し、ステップＳ１５１０でスケジュール要求を行ったクライアントに対して印刷許可を通知する。尚、以上は単一のジョブに対する処理の観点から説明している。複数のジョブが存在する場合は、ジョブ管理キューに登録されたジョブの登録順序や優先度に従ってその実行順序が決定され、決定された順で各ジョブが実行される。
【００７６】
ステップＳ１５１１において、クライアント１０１〜１０３又は操作パネル５１１はユーザからの印刷の指示を受け付ける。受け付けた印刷指示がローカル印刷の場合は、ステップＳ１５１２からステップＳ１５１６へ進む。ステップＳ１５１６では、印刷対象の保存ジョブのドキュメント名およびジョブＩＤをデバイスコントローラ５０３から取得する。ここで取得されるドキュメント名は保存されたジョブの名称であり、ジョブＩＤはデバイスコントローラ５０３が保存ジョブに対して発行したものである。そして、当該保存ジョブのスケジュール要求をスケジューラ８００に対して発行し、本処理を終了する。
【００７７】
また、スケジュールの種類がリモート印刷の場合は、ステップＳ１５１２からステップＳ１５１３へ進む。ステップＳ１５１３では、スケジュール要求をスケジューラに発行し、ステップＳ１５１４においてスケジューラからの印刷許可を待つ。印刷許可（上述のステップＳ１５１０で発行される）を受信すると、ステップＳ１５１５において、クライアントはデバイスコントローラ５０３に対して対応するジョブデータ（印刷データを含む）を転送する。デバイスコントローラ５０３は受信したジョブデータ（印刷データ）を印刷要求として順次登録し、順次に印刷データを印刷していく。
【００７８】
上記処理により、リモート印刷機能と、印刷データ蓄積機能と、ローカル印刷機能を備えた画像処理装置において、リモート印刷とローカル印刷を統合的にスケジュール管理することが可能となる。即ち、スケジュール管理部８０２は、ネットワークを介して外部装置（クライアント１０１〜１０３）より受信したジョブデータを順次解析して印刷する処理を画像形成部５０１に行わせるための印刷要求を受信してジョブ管理キュー９０１に登録する。例えば、図１１のステップＳ１１０１、Ｓ１１０２、図１５のステップＳ１５０１，Ｓ１５０２，Ｓ１５０７に示したように、スケジュール管理部８０２は、リモート印刷に係るスケジュール要求の受信に応じ、対応するジョブ情報をジョブ管理キュー９０１に登録する。同様に、ローカル印刷に係るスケジュール要求を受信した場合も、スケジュール管理部８０２は、対応するジョブ情報をジョブ管理キュー９０１に登録する（図１５のステップＳ１５０１〜Ｓ１５０３）。そして、スケジュール管理部８０２は、ジョブ管理キュー９０１に登録されたリモート印刷及びローカル印刷のジョブの実行順序を、その受付順及び優先度に基づいて一元的に管理し、該実行順序に従って画像形成部５０１に印刷を実行させる。
【００７９】
以上説明したジョブ管理制御を実現する際の第１実施形態の印刷システムにおける動作を、各装置間の通信動作の観点から説明する。図１６Ａは、本印刷システムのリモート印刷における装置間の通信動作を説明する図である。又、図１７はジョブ管理に係る通信内容を説明する図である。図１６Ａ、図１７を参照して、クライアント１０１〜１０３のジョブ制御プリントサービス６０５がジョブを受け付けてデバイス１０４，１０５にスケジュール要求を発行してから、プリンタで印刷が終了するまでの通信内容を説明する。
【００８０】
クライアントのジョブ制御プリントサービス６０５（以下、単にクライアントということもある）は、印刷データを受け付けると、スケジューラ８００とセッション接続を開始する。そして、クライアントは、クライアントの情報を通知する接続要求コマンド、ジョブ／デバイス状態を通知してもらうためのイベント登録をスケジューラ８００に通知する。更に、クライアントは、スケジューラ８００がスケジュール管理するジョブの情報を取得するジョブリスト取得コマンドを発行する。
【００８１】
スケジューラ８００は、接続要求を受け付けると、当該クライアント情報をクライアント管理キュー１００１に登録する。又、イベントの登録を受け付けると該当するクライアント情報の登録イベントに設定する。又、ジョブリスト要求を受け付けると、ジョブ管理キューに登録されているジョブ情報のリストを送信する。
【００８２】
次に、クライアントは印刷を予約するためのスケジュール要求のコマンドを発行する（図１７の１７００，１７０１）。スケジューラ８００はスケジュール要求を受け付けると、ジョブ管理キュー９０１にジョブ情報を登録する（図１７の１７０２、１７０３）。ジョブ情報には、図９に示した情報が設定される。スケジューラ８００は、デバイス１０４，１０５が印刷データを受け付けられるようになったか否かを判断する。そして、スケジューラ８００は、デバイス１０４，１０５が印刷データを受け付けられるようになったと判断すると、クライアントに印刷許可を発行し、ジョブデータ（印刷データ）の送信を開始するように促す（図１７の１７０４，１７０５）。
【００８３】
また、スケジューラ８００は、印刷許可を発行すると、ジョブ管理キュー９０１で管理されているジョブ情報のジョブ状態を印刷許可状態に更新する。クライアントは、印刷許可を受け付けるとＬＰＤ／ＲＡＷへ印刷データの転送を開始する（図１７の１７０６，１７０７）。尚、ＬＰＤ／ＲＡＷはＬＰＤプロトコル或はＲＡＷプロトコルによる印刷データの転送を受信するユニットである。又、クライアントは印刷データの転送が開始されるとスケジューラ８００に対して転送開始の通知を行う。スケジューラ８００は、転送開始通知を受けると、ジョブ情報のジョブ状態を転送中に更新する。図１７の例では、印刷許可１７０４を受けたジョブJob1のデバイス（ＬＰＤ／ＲＡＷ）へのジョブ転送１７０６がまず実行され、これが転送済みになったら次のジョブJob2について印刷許可が通知され、ジョブ転送１７０７が実行される。このジョブ転送１７０７がデバイスコントローラに対する実際の印刷要求に相当する。
【００８４】
デバイス１０４，１０５において、ＬＰＤ／ＲＡＷは、印刷データを受け付けるとデバイスコントローラ５０３にデータを転送する。デバイスコントローラ５０３は、ＬＰＤ／ＲＡＷから転送されたデータにより画像形成部５０１を用いて印刷を開始する。デバイスコントローラ５０３は、印刷待機状態１７０８を経て印刷を開始すると、当該ジョブの状態（印刷状態１７０９）をスケジューラ８００に通知する。スケジューラ８００は、クライアント情報の登録イベントの情報を基に、クライアントにジョブの印刷状態を通知する。
【００８５】
ジョブ制御プリントサービス６０５は印刷データの転送が終了するとスケジューラ８００に対して、転送終了通知を送信する。スケジューラ８００は、転送終了通知を受けると、ジョブ情報のジョブ状態を転送済に更新する。
【００８６】
デバイスコントローラ５０３で印刷処理が終了すると、ジョブの状態として印刷完了の通知をスケジューラ８００に通知する。スケジューラ８００は、クライアント情報の登録イベントの情報を基に、クライアントにジョブの印刷完了の状態を通知する。
【００８７】
クライアントが上記印刷完了の状態の通知により印刷が完了したこと（図１７の例では２つのジョブ（Job1，Job2）の印刷の完了）を確認すると、以降は、デバイスからクライアントへの通知は不要となる。よって、クライアントは、スケジューラ８００に対して、イベント通知の登録の解除要求を発行する。イベント解除要求を受け付けた、スケジューラ８００は、クライアント情報の登録イベントにイベントを通知しない旨の情報を設定する。
【００８８】
その後、ジョブ制御プリントサービス６０５は、スケジューラ８００との接続を終了するための切断要求を発行し、セッションを終了する。スケジューラ８００は、切断要求を受け付けると、クライアント管理キューから該当するクライアント情報を削除し、該クライアントとの処理を終了する。
【００８９】
図１６Ｂは、ローカル印刷におけるシステムの通信を説明する図である。図１６Ｂ、図１７を参照して、デバイス１０４，１０５に接続された大容量記憶装置５１０に格納された保存ジョブの印刷処理におけるシステムの通信内容を説明する。図１６Ｂは、クライアント（コンピュータ）１０１〜１０３もしくはデバイス１０４，１０５に接続された操作部（デバイスパネル）からスケジュール要求を発行し、プリンタで印刷が終了するまでのやり取りを示している。
【００９０】
ジョブ制御プリントサービス６０５、もしくはデバイス１０４，１０５に接続されている操作部は、印刷の要求指示を受け付けると、スケジューラ８００とセッション接続を開始する。以下、ジョブ制御プリントサービス６０５、もしくはデバイス１０４，１０５に接続されている操作パネル５１１をまとめてクライアント／デバイスパネルと称する。
【００９１】
クライアント／デバイスパネルは、クライアントの情報を通知する接続要求コマンド、ジョブ／デバイス状態を通知してもらうためのイベント登録、スケジューラ８００がスケジュール管理するジョブの情報を取得するジョブリスト取得コマンドを発行する。
【００９２】
スケジューラ８００は、接続要求を受け付けると、クライアント情報をクライアント管理キューに登録する。又、スケジューラ８００は、イベントの登録を受け付けると、該当するクライアント情報の登録イベントを設定する。又、スケジューラ８００は、ジョブリスト要求を受け付けると、ジョブ管理キューに登録されているジョブ情報のリストをクライアントに送信する。
【００９３】
次に、クライアント／パネルは、保存ジョブ（図１７ではBoxJpb4）の印刷を予約するためのスケジュール要求のコマンドを発行する。即ち、クライアント又はデバイスの操作パネルから保存ジョブの指定及び印刷を指示することによりスケジューラ８００に対して保存ジョブのスケジュール要求が発行される（１７１０）。尚、このような保存ジョブの印刷機能は所謂ボックス印刷機能として知られたものであり、そのユーザインターフェース等の説明は省略する。
【００９４】
スケジューラ８００は保存ジョブのスケジュール要求（１７１０）を受け付けると、ジョブ管理キューにジョブ情報を登録する（１７１１）。なお、このとき、スケジューラ８００には、保存ジョブ及び外部のクライアントの双方から登録されたジョブ情報が混在して登録されている。ジョブ情報には、保存ジョブ名等の情報を設定する。スケジューラ８００は、デバイス１０４，１０５が、当該保存ジョブ１７１１の印刷を開始できるようになったか否かを判断する。スケジューラ８００は、デバイス１０４，１０５が印刷を開始できるようになったと判断すると、印刷許可を自身に発行し、保存ジョブの印刷開始を指示し（図１７の１７１２）、ジョブ情報のジョブ状態を印刷開始状態に更新する。
【００９５】
デバイスコントローラ５０３は、印刷開始が指示されると、大容量記憶装置５１０から当該スケジュール要求によって指定されている保存ジョブを読み出し、画像形成部５０１を用いて印刷要求を行う（１７１３）。デバイスコントローラ５０３は、印刷が開始されるとジョブの状態をスケジューラ８００に通知する。尚、当該スケジュール要求がクライアントから発行された場合、スケジューラ８００は、クライアント情報の登録イベントの情報を基に、クライアントにジョブの印刷状態を通知することになる。
【００９６】
デバイスコントローラ５０３は、印刷処理が終了すると、ジョブの状態として印刷完了の通知をスケジューラ８００に通知する。スケジューラ８００は、当該スケジュール要求がクライアントから発行された場合には、クライアント情報の登録イベントの情報を基に、クライアントにジョブの印刷完了の状態を通知する。
【００９７】
クライアントは、上記通知により印刷が完了したことを確認すると、以降はデバイスから通知を受ける必要なくなる。従って、クライアントは、スケジューラ８００からのイベント通知の登録の解除要求を発行する。イベント解除要求を受け付けたスケジューラ８００は、クライアント情報の登録イベントにイベントを通知しない旨の情報を設定する。
【００９８】
その後、クライアントは、スケジューラ８００との接続を終了するための切断要求を発行し、セッションを終了する。スケジューラ８００は、切断要求を受け付けると、クライアント管理キューから該当するクライアント情報を削除し、該クライアントとの処理を終了する。
【００９９】
以上のように、第１実施形態によれば、通常のリモート印刷のジョブ（図１７ではJob1，Job2）と、保存ジョブの印刷を行うローカル印刷（図１７のBoxJob4）のジョブをジョブ管理キュー９０１によって一元的に管理することができる。このため、例えば、Job1或はJob2のジョブ転送中（１７０７）にボックス印刷（BoxJob4）の指示が発生した場合に、Job1とJob2の間にBoxJob4が割り込んで印刷されてしまうといったような事態を防止できる。
【０１００】
また、リモート印刷とローカル印刷を統合的にスケジュール管理できるので、ジョブそれぞれに設定された優先度によって印刷順序の入れ替えを行ったりする等、リモート印刷とローカル印刷が混在する環境において多彩なジョブ管理を実現できる。例えば、スケジュール要求時に発行される優先度設定により、ローカル印刷ジョブは常時優先度を最高に設定することで、リモート印刷に割り込まれることなく印刷することが可能である。また、複数のリモート印刷ジョブに高優先度を設定することにより、それら複数のリモート印刷ジョブの間にローカル印刷ジョブが出力されることを防止できる。また、スケジューラに認証機能を設け、ログイン情報を利用することで、権限によって優先度を設定したりすることも可能であり、よりユーザビリティの高いスケジュール管理を行うことが可能である。
【０１０１】
なお、上述したように、スケジューラ８００がデバイスに具備されていない状態でローカル印刷機能が利用された場合には、印刷指示に対応する印刷要求はそのまま経路１７１２及び１７１３を経て、デバイスコントローラに投入されることになる。もともと、スケジューラ８００によるジョブスケジューリングが行われていないので、リモート印刷の印刷要求がデバイスコントローラに直接投入されても実質的に印刷順序という観点で問題は無い。
【０１０２】
＜第２実施形態＞
第２実施形態では、デバイスコントローラ５０３にジョブ生成イベントを予め登録しておき、ジョブ生成時に発生したイベントを検知することによりジョブの生成、スケジュールが行われる。そのため第２実施形態においては、保存ジョブ、印刷ジョブにとどまらず、その他のローカルジョブ、例えば複写ジョブやＦＡＸジョブ等、印刷が伴うあらゆるジョブのスケジュール管理が可能となる。
【０１０３】
図１８は第２実施形態におけるスケジューラ８００の処理を説明するフローチャートである。第２実施形態のスケジューラ８００は、デバイスコントローラ５０３におけジョブの生成を検知してスケジュール管理を行う。この生成が検知されるジョブには、第１実施形態で説明したローカル印刷（保存ジョブの印刷）のジョブが含まれる。更に、生成が検知されるジョブとして、コピー操作によって画像読取部５０２からの画像を画像形成部５０１によって記録するジョブ、ファックス部５０４によって受信されたＦＡＸデータに基づく画像を画像形成部５０１によって記録するジョブ等が挙げられる。尚、リモート印刷に係る動作は第１実施形態と同様である。
【０１０４】
デバイスコントローラ５０３は、複写指示やＦＡＸ受信による印刷処理の開始時に、ジョブ生成をスケジューラ８００に通知する。ステップＳ１７０１において、スケジューラ８００はデバイスコントローラ５０３からジョブ生成の通知を受信すると、ステップＳ１７０２においてデバイスコントローラ５０３へ当該ジョブの一時停止を指示する。そして、ステップＳ１７０３において当該ジョブのスケジュール登録を行う。即ち、ジョブ管理キュー９０１に当該ジョブに対応するジョブ情報を登録する。このとき、ジョブの種類によってはそのまま一時停止を解除して印刷するよう設定することもできるし、またジョブの種類によって印刷の優先度を自動設定することも可能である。
【０１０５】
次に、ステップＳ１７０４において、スケジューラ８００は、スケジュールした印刷ジョブが印刷順に達するまで待機し、印刷順序に達するとステップＳ１７０５で自身に印刷許可を発行する。ステップＳ１７０６において、先ほど一時停止したジョブの一時停止解除をデバイスコントローラ５０３に依頼する。
【０１０６】
次に、図１９及び図２０を参照して、デバイスコントローラ５０３におけるジョブの生成から、画像形成部５０１で印刷が終了するまでのやり取りについて説明する。尚、図２０において、Job1、Job2に関する動作は図１６Ａにより説明したとおりである。
【０１０７】
スケジューラ８００はデバイスコントローラ５０３の起動時、もしくはスケジューラ自身の起動時に予めジョブ生成を検知するためのイベント登録を行う。このイベント登録により、デバイスパネルやクライアントから印刷を伴うジョブが投入された場合に、デバイスコントローラ５０３はスケジューラ８００に対してジョブ生成のイベントを通知する。図２０では、デバイスパネルからのコピー指示２００１に応じてプリント処理部５０６が原稿を読み取って得られたイメージによるジョブをデバイスコントローラ５０３に生成させる（２００２）。或は、ファックス部５０４がファクシミリイメージによるジョブをデバイスコントローラ５０３に生成させる。デバイスコントローラ５０３は、ファックス部５０４又はプリント処理部５０６からの指示に応じてジョブ２０１０を生成すると、スケジューラ８００にジョブ生成通知を行う（２００３）。通知を受けたスケジューラ８００は当ジョブ２０１０の一時停止をデバイスコントローラ５０３に指示（図２０の一時停止指示２００４）して、当該ジョブ２０１０の印刷を停止させ、ジョブ管理キュー９０１に当該ジョブを登録する（図２０の２００５）。このとき、ジョブの種類によってはそのまま一時停止を解除して印刷するよう設定することもできるし、またジョブの種類によって印刷の優先度を自動設定することも可能である。
【０１０８】
スケジュール登録したジョブが印刷順序に達すると、スケジューラ８００は自身に印刷許可を発行し、デバイスコントローラ５０３に対して一時停止の解除を行う（２００６）。デバイスコントローラ５０３は、先のジョブ一時停止指示に応じて処理を停止していたジョブ２０１０の処理を開始し、印刷を行う。又、デバイスコントローラ５０３は、ジョブの状態の変化があるたびにスケジューラ８００に通知する。
【０１０９】
こうしてジョブの状態が完了に変化すると、その旨をデバイスコントローラ５０３はスケジューラ８００に通知し、その通知を受信したスケジューラは自身のジョブ管理キューに登録されたジョブ情報を削除する。
また、スケジューラ８００は自身の終了処理時に起動時に登録したイベントの解除をデバイスコントローラ５０３に依頼する。
【０１１０】
尚、第２実施形態において、リモート印刷は第１実施形態と同様の手順でスケジュール管理を行うものとしたが、リモート印刷及びローカル印刷を含む全てのジョブに関して第２実施形態の手順を適用してもよい。即ち、全てのジョブについて、デバイスコントローラ５０３からのジョブ発生検知を利用したスケジュール登録、管理を行うようにしてもよい。或は、リモート印刷及びボックス機能によるローカル印刷については第１実施形態によるスケジュール登録を適用し、ＦＡＸやコピーによって発生したジョブについては第２実施形態によるスケジュール登録を適用するという構成にしてもよい。
【０１１１】
上記処理により、リモート印刷機能と、印刷データ蓄積機能と、ローカル印刷機能を備えた画像処理装置において、リモート印刷とローカル印刷を統合的にスケジュール管理することが可能となる。ここで、リモート印刷機能とは、ネットワークを介して受信した印刷データを用紙に印刷する機能である。印刷データ蓄積機能とは、ネットワークを介するかもしくは原稿を読み取って得た印刷データを記憶する機能である。又、ローカル印刷機能とは、記憶した印刷データを用紙に印刷する機能である。又、第２実施形態によれば、コピー操作等によって実施される印刷や、ファックス受信によって実施される印刷等も、統合的なジョブ管理の対象としてのローカル印刷機能に含めることができ、利便性が向上する。
【０１１２】
以上、実施形態を詳述したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
又、上記実施形態では、デバイス１０４，１０５のスケジューラ８００がジョブの実行順序の管理を行う例を説明したがこれに限られるものではない。例えば、デバイス１０４，１０５とは別体のネットワークに接続されたプリントサーバにおいて上記ジョブ管理を実現するようにしてもよいことは明らかである。
【０１１３】
尚、本発明は、ソフトウェアのプログラムをシステム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによって前述した実施形態の機能が達成される場合を含む。この場合、供給されるプログラムは実施形態で図に示したフローチャートに対応したプログラムである。
【０１１４】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【０１１５】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であっても良い。
【０１１６】
プログラムを供給するための記録媒体としては以下が挙げられる。例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などである。
【０１１７】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムをハードディスク等の記録媒体にダウンロードすることが挙げられる。この場合、ダウンロードされるプログラムは、圧縮され自動インストール機能を含むファイルであってもよい。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【０１１８】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布するという形態をとることもできる。この場合、所定の条件をクリアしたユーザに、インターネットを介してホームページから暗号を解く鍵情報をダウンロードさせ、その鍵情報を使用して暗号化されたプログラムを実行し、プログラムをコンピュータにインストールさせるようにもできる。
【０１１９】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどとの協働で実施形態の機能が実現されてもよい。この場合、ＯＳなどが、実際の処理の一部または全部を行ない、その処理によって前述した実施形態の機能が実現される。
【０１２０】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれて前述の実施形態の機能の一部或いは全てが実現されてもよい。この場合、機能拡張ボードや機能拡張ユニットにプログラムが書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行なう。
【図面の簡単な説明】
【０１２１】
【図１】実施形態に係る印刷システムの全体構成を示すブロック図である。
【図２】実施形態によるクライアントのハードウェア構成を説明するブロック図である。
【図３】ＲＡＭ２０２のメモリマップの一例を示す図である。
【図４】ＦＤ２０４のメモリマップの一例を示す図である。
【図５】実施形態によるデバイス（デジタル複合機）の構成を示すブロック図である。
【図６】クライアントにおけるソフトウェア構成例を示す図である。
【図７】アプリケーションのソフトウェア構成例を示すブロック図である。
【図８】スケジューラのソフトウェア構成例を示すブロック図である。
【図９】ジョブ情報と管理するジョブ管理キューを示す図である。
【図１０】クライアント情報と管理するクライアント管理キューを示す図である。
【図１１】スケジューラのスケジュール管理部における処理のフローチャートである。
【図１２】スケジューラのジョブ管理部における処理のフローチャートである。
【図１３】スケジューラのデバイス管理部における処理のフローチャートである。
【図１４】スケジューラの通信接続管理部における処理のフローチャートである。
【図１５】ローカル印刷とリモート印刷の統合スケジュール管理処理を示すフローチャートである。
【図１６Ａ】リモート印刷の印刷要求から終了までのシーケンスを示す図である。
【図１６Ｂ】ローカル印刷の印刷要求から終了までのシーケンスを示す図である。
【図１７】第１実施形態のジョブ管理に係る通信内容を説明する図である。
【図１８】ジョブの生成を検知しスケジュール管理を行う処理を説明するフローチャートである。
【図１９】第２実施形態による、ジョブ生成検知から終了までのシーケンスを示す図である。
【図２０】第２実施形態のジョブ管理に係る通信内容を説明する図である。
【図１】
2007334608.tif 000003
【図２】
2007334608.tif 000004
【図３】
2007334608.tif 000005
【図４】
2007334608.tif 000006
【図５】
2007334608.tif 000007
【図６】
2007334608.tif 000008
【図７】
2007334608.tif 000009
【図８】
2007334608.tif 000010
【図９】
2007334608.tif 000011
【図１０】
2007334608.tif 000012
【図１１】
2007334608.tif 000013
【図１２】
2007334608.tif 000014
【図１３】
2007334608.tif 000015
【図１４】
2007334608.tif 000016
【図１５】
2007334608.tif 000017
【図１６Ａ】
2007334608.tif 000018
【図１６Ｂ】
2007334608.tif 000019
【図１７】
2007334608.tif 000020
【図１８】
2007334608.tif 000021
【図１９】
2007334608.tif 000022
【図２０】
2007334608.tif 000023