(57)【要約】      （修正有）【課題】サーバの管理ジョブ数を節約でき、サーバのジョブリストに２つの空きがあれば、無限数のグループジョブが印刷できるプリントシステムを提供する。【解決手段】グループジョブの先頭のジョブと最後のＪｏｂのみをサーバのスケジュールジョブリストに登録することによってサーバのジョブリストを圧縮し、先頭のジョブがスケジュールアップし、送信中になったタイミングで、同一グループの全てのメンバＪｏｂを１つのセッションでデバイスへ送信し、デバイスのネットワークインタフェース上に位置するプリンタシステムのサーバでは自身のスケジュールジョブリストに依らず、デバイスからのジョブイベントを監視し、クライアントへ通知する機能を持たせることにより、クライアントがサーバに登録したジョブのみならず、登録せずにデバイスへ送信したジョブに関しても正しくジョブの状態（結果）をクライアントへ通知する事が可能となる。【選択図】図６
2007058417.tif 000002
【特許請求の範囲】
【請求項１】
複数のクライアントからの印刷ジョブのスケジューリングをデバイスのネットワークインタフェース上で行うプリントシステムで、複数の印刷ジョブをグループジョブとし、グループジョブ内の複数のジョブを、コンピュータからプリンタデバイスに転送する時に、印刷プロトコルの一つのセッションで送信するプリントシステムにおいて、グループジョブの先頭の印刷ジョブと最後の印刷ジョブのみをサーバのスケジュールリストに登録ことによってサーバのジョブリストを圧縮する手段を有することを特徴とするプリントシステム。
【請求項２】
請求項１に記載のプリントシステムであって、先頭の印刷ジョブと最後の印刷ジョブ以外のグループジョブのメンバジョブも一つのセッションでデバイスに送信する手段を有することを特徴とするプリントシステム。
【請求項３】
請求項１または２に記載のプリントシステムであって、先頭の印刷ジョブと最後の印刷ジョブ以外のグループジョブのメンバジョブは上記のサーバのスケジュールリストに登録せず、直接デバイスのデバイスのジョブキューにジョブを投入することによりジョブグルーピング印刷を行う手段を有することを特徴とするプリントシステム。
【請求項４】
請求項１から３のいずれかに記載のプリントシステムであって、個々の印刷ジョブの終了通知を取得し、クライアントに通知し、スケジュールリストに登録されていない先頭、最後以外のメンバジョブも含めてグループジョブの終了通知取得する手段を有することを特徴とするプリントシステム。
【請求項５】
請求項１から４のいずれかに記載のプリントシステムであって、印刷ジョブを管理するデバイスのネットワークインタフェース上のサーバにスケジュールリストを有し、印刷を投入するクライアントにクライアントのジョブ管理リストを有することを特徴とするプリントシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はプリントシステムに関し、特に複数のクライアントからの印刷ジョブのスケジューリングをデバイスのネットワークインタフェースカード上で行うプリントシステムにおけるジョブのグルーピングに関するものである。
【背景技術】
【０００２】
プリンタデバイスで印刷する場合、プリンタデバイスは、ホストから送信された印刷ジョブを受付け、ジョブを受け付けた順に印刷を行っている。そのため、複数のホストから、ホスト毎に複数の印刷ジョブをプリンタデバイスに送信すると、複数のホストからの印刷ジョブが排紙トレイに混在し、他ホストから送信した印刷ジョブと区別するために印刷ジョブの仕分けを行わなければならなかった。また、印刷ジョブの仕分けミスにより、他ホストから印刷したジョブを間違って持っていくという問題も発生していた。
【０００３】
そのため、複数の連続印刷を行いたい印刷ジョブを１セッションで送信し、そして印刷し、他のクライアントからの割り込み印刷を行わせないグループジョブ印刷という方式がある。例えば特許文献１が提案されている。従来のこのグループジョブ方式は、印刷ジョブを１セッションに送るが、グループジョブのメンバジョブは全てサーバのスケジュールリストに登録する。そのため複数のジョブをグループ化してもスケジュールリストを圧縮されていない。
【特許文献１】特開２００５−１７４１２２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来の、グループジョブ印刷は、印刷ジョブを１セッションに送るが、グループジョブのメンバジョブは全てサーバのスケジュールリストに登録するため複数のジョブをグループ化してもスケジュールリストを圧縮されていなかった。
【０００５】
また、スケジュールリストの最大値が小さいデバイス上に実装するプリントシステムのサーバではスケジュールリストの圧縮は大きな問題となっている。
【０００６】
本発明は、以上の点に着目して成されたもので、サーバの管理ジョブ数を節約でき、サーバのジョブリストに２つの空きがあれば、無限数のグループジョブを印刷できるプリントシステムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
複数のクライアントからの印刷ジョブのスケジューリングをデバイスのネットワークインタフェース上で行うプリントシステムで、複数の印刷ジョブをグループジョブとし、グループジョブ内の複数のジョブを、コンピュータからプリンタデバイスに転送する時に、印刷プロトコルの一つのセッションで送信するプリントシステムにおいて、グループジョブの先頭の印刷ジョブと最後の印刷ジョブのみをサーバのスケジュールリストに登録ことによってサーバのジョブリストを圧縮する手段と、先頭の印刷ジョブと最後の印刷ジョブ以外のグループジョブのメンバジョブも一つのセッションでデバイスに送信する手段と、先頭の印刷ジョブと最後の印刷ジョブ以外のグループジョブのメンバジョブは上記のサーバのスケジュールリストに登録せず、直接デバイスのデバイスのジョブキューにジョブを投入することによりジョブグルーピング印刷を行う手段と、個々の印刷ジョブの終了通知を取得し、クライアントに通知し、スケジュールリストに登録されていない先頭、最後以外のメンバジョブも含めてグループジョブの終了通知取得する手段と、印刷ジョブを管理するデバイスのネットワークインタフェース上のサーバにスケジュールリストを有し、印刷を投入するクライアントにクライアントのジョブ管理リストを有することを特徴とする。
【発明の効果】
【０００８】
本発明はプリンタシステムのグループジョブ印刷においてグループジョブの印刷時にグループジョブの先頭と最後のＪｏｂのみ登録すればよいため、サーバの管理ジョブ数を節約でき、サーバのジョブリストに２つの空きがあれば、無限数のグループジョブを印刷できる。
【発明を実施するための最良の形態】
【０００９】
以下本発明を実施するための最良の形態を、実施例により詳しく説明する。
【実施例】
【００１０】
図１は、実施形態に係る印刷処理システムのネットワーク構成である。
【００１１】
同図において、１０１、１０２、１０３、１０４は、ネットワーク１０７に接続され、相互に通信可能なネットワークコンピュータであり、典型的にはパーソナルコンピュータ（ＰＣ）であり、それぞれイーサネット（登録商標）などのネットワークケーブルによってネットワーク１０７に接続され、アプリケーションプログラム等の各種のプログラムを実行可能であり、印刷データをプリンタに対応するプリンタ言語に変換する機能を有するプリンタドライバを搭載している。
【００１２】
ここで、各コンピュータは複数のプリンタドライバをサポートするものとする。また、プリンタに対応するプリンタ言語に変換にした印刷データを１０７ネットワークプリンタに転送する機能を有する。
【００１３】
１０５は、印刷制御装置としてのネットワークプリンタであり、１０６のネットワークインタフェースを介してネットワーク１０７と接続されており、クライアントコンピュータから送信されてくる印字データを含む印刷ジョブを解析し、１ページずつドットイメージに変換して印刷する。なお、同図にネットワークプリンタ１０５は１台しか示されていないが、他のネットワークプリンタが複数接続されているものとする。各ネットワークプリンタの機能は相違するものであってもよい。
【００１４】
また、１０７はネットワークであり、コンピュータ１０１〜１０４、ネットワークプリンタ１０５等と接続している。
【００１５】
図２は、コンピュータ１０１〜１０４の構成を説明するブロック図である。
【００１６】
図２において、２００は装置全体の制御を行うＣＰＵであり、ハードディスク（ＨＤ）２０５に格納されているアプリケーションプログラム、プリンタドライバプログラム、ＯＳや、本実施形態のネットワークプリンタ制御プログラム等を実行し、ＲＡＭ２０２にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。
【００１７】
２０１は記憶手段としてのＲＯＭであり、内部には、基本Ｉ／Ｏプログラム等のプログラム、文書処理の際に使用するフォントデータ、テンプレート用データ等の各種データを記憶する。２０２は一時記憶手段としてのＲＡＭであり、ＣＰＵ２００の主メモリ、ワークエリア等として機能する。
【００１８】
２０３は記憶媒体読み込み手段としてのフロッピー（登録商標）ディスクドライブであり、後述する図５に示すようにＦＤドライブ２０３を通じて、記憶媒体としてのＦＤ２０４に記憶されたプログラム等を本コンピュータにロードすることができる。２０４は記憶媒体であるフロッピー（登録商標）ディスク（ＦＤ）であり、コンピュータが読み取り可能にプログラムが格納された記憶媒体である。なお、記憶媒体はＦＤに限らず、ＣＤ−ＲＯＭ、ＣＤＲ、ＣＤＲＷ、ＰＣカード、ＤＶＤ、ＩＣメモリカード、ＭＯ、メモリスティック等、任意である。
【００１９】
２０５は外部記憶手段の一つであり、大容量メモリとして機能するハードディスク（ＨＤ）であり、アプリケーションプログラム、プリンタドライバプログラム、ＯＳ、ネットワークプリンタ制御プログラム、関連プログラム等を格納している。更に、スプール手段であるスプーラはここに確保される。スプール手段は、クライアントではクライアントスプーラのことであり、プリントサーバではサーバスプーラのことである。また、プリントサーバでは、クライアントから受けたジョブ情報を格納し、順序制御を行うためのテーブルもこの外部記憶手段に生成されて格納される。
【００２０】
２０６は指示入力手段であるキーボードであり、ユーザがクライアントコンピュータに対して、また、オペレータや管理者がプリントサーバに対して、デバイスの制御コマンドの命令等を入力指示するものである。２０７は表示手段であるディスプレイであり、キーボード２０６から入力したコマンドや、プリンタの状態等を表示したりするものである。
【００２１】
２０８はシステムバスであり、クライアントやプリントサーバであるコンピュータ内のデータの流れを司るものである。２０９は入出力手段であるインタフェースであり、該インタフェース２０９を介して情報処理装置は外部装置とのデータのやり取りを行う。
【００２２】
なお、上記コンピュータの構成はその一例であり、図２の構成例に限定されるものではない。例えば、データやプログラムの格納先は、その特徴に応じてＲＯＭ、ＲＡＭ、ＨＤなどで変更することも可能である。
【００２３】
図３は、図２に示したＲＡＭ２０２のメモリマップの一例を示す図であり、ＦＤ２０４からロードされる上記ネットワークプリンタ制御プログラムが、ＲＡＭ２０２にロードされ実行可能となった状態のメモリマップである。
【００２４】
なお、本実施形態では、ネットワークプリンタ制御プログラムおよび関連データをＦＤ２０４から直接ＲＡＭ２０２にロードして実行させる例を示すが、これ以外にも、ネットワークプリンタ制御プログラムを動作させる度に、既にネットワークプリンタ制御プログラムがＦＤ２０４からインストールされているＨＤ２０５から、ＲＡＭ２０２にロードするようにしてもよい。また、本ネットワークプリンタ制御プログラムを記憶する媒体は、ＦＤ以外にＣＤ−ＲＯＭ、ＣＤＲ、ＰＣカード、ＤＶＤ、ＩＣメモリカードであってもよい。
【００２５】
さらに、本ネットワークプリンタ制御プログラムをＲＯＭ２０１に記憶しておき、これをメモリマップの一部となすように構成し、直接ＣＰＵ２００で実行することも可能である。また、以上の各装置と同等の機能を実現するソフトウェアをもって、ハードウェア装置の代替として構成することもできる。
【００２６】
また、以下では、本ネットワークプリンタ制御プログラムのことを、簡単に印刷制御プログラムまたはプリンタドライバと呼ぶこともある。印刷制御プログラムは、クライアントにおいては、印刷ジョブの印刷先の変更を指示したり、印刷順序を変更する指示をするための制御を行うプログラムを含む。一方、プリントサーバにおいては、印刷ジョブの順序制御を行ったり、印刷ジョブの印刷終了や印刷先変更要求などを通知するためのプログラムを含んでいる。
【００２７】
また、このような制御を行う本実施形態の印刷制御プログラムは、クライアントにインストールされるモジュールと、プリントサーバにインストールされるモジュールを別々に分けてもよいし、ひとつの印刷制御プログラムが、実行される環境によりクライアント用として機能したり、プリントサーバ用として機能するようにしてもよい。あるいは、一台のコンピュータに、クライアント用の機能を持つモジュールとプリントサーバ用として機能するモジュールとをともにインストールし、同時にあるいは時分割で、擬似的に平行動作させる構成も可能である。
【００２８】
３０１は基本Ｉ／Ｏプログラムであり、コンピュータの電源がＯＮされたときに、ＨＤ２０５からＯＳがＲＡＭ２０２に読み込まれ、ＯＳの動作を開始させるＩＰＬ（イニシャルプログラムローデイング）機能などを有しているプログラムが入っている領域である。
【００２９】
３０２はオペレーティングシステム（ＯＳ）であり、３０３はネットワークプリンタ制御プログラムで、ＲＡＭ２０２上に確保される領域に記憶される。３０４は関連データで、ＲＡＭ２０２上に確保される領域に記憶される。３０５はワークエリアで、ＣＰＵ２００が本プリンタ制御プログラムを実行する領域が確保されている。
【００３０】
図４は、図２に示したＦＤ２０４のメモリマップの一例を示す図である。
【００３１】
図４において、４０１はデータの情報を示すボリューム情報であり、４０２はディレクトリ情報、４０３は本実施形態で説明する印刷制御プログラムであるネットワークプリンタ制御プログラム、４０４はその関連データである。ネットワークプリンタ制御プログラム４０３は、本実施形態で説明するフローチャートに基づいてプログラム化したものであり、本実施形態では、クライアント及びサーバ共に、同様の構成をとっている。
【００３２】
図５は、図１に示したクライアントＰＣ（１０１〜１０４）とネットワークプリンタ（１０５）の内部モジュール構成について示す図である。
【００３３】
図５において、通常、印刷の指示がされると、アプリケーションプログラムは一連の描画命令をＯＳを介して生成させる。この生成された描画命令はプリンタドライバを経て所定の形式に変換された後、ウインドウズ（登録商標）スプーラ（Ｗｉｎｄｏｗｓ（登録商標）  Ｓｐｏｏｌｅｒ）に渡される。
【００３４】
Ｗｉｎｄｏｗｓ（登録商標）  Ｓｐｏｏｌｅｒは、ユーザがユーザインタフェースを介して選択し指示したポートモニタにプリントジョブデータを渡して、プリンタデバイスに送信させる手順をとる。本実施形態では、今述べた通常の動作に対してユーザはあらかじめ印刷ジョブ制御システム用のポートモニタ５０４（以降、ジョブ制御ポートモニタと略記）を指定して印刷を指示する。
【００３５】
アプリケーションプログラム５０１は一連の描画命令をＯＳを介して生成させる。ここで、ＯＳを介して生成された描画命令は、ＰＤＬＤｒｉｖｅｒ５０２に引き渡させる。
【００３６】
ＯＳを介して生成された描画命令を受け取ったＰＤＬＤｒｉｖｅｒ５０２では、デバイスで印刷するためのページ記述言語を生成し、プリンタデバイスへプリントジョブデータを送信する従来のポートモニタではなく、ジョブ制御ポートモニタ５０４にプリントジョブデータとして送信する。また、プリンタドライバインタフェースを介して設定された用紙サイズ、ステープル指示等の印刷設定情報も、ジョブ制御ポートモニタ５０４に送信される。
【００３７】
印刷ジョブ制御システム用プリントマネージャ５０５（以降、ジョブ制御プリントマネージャと略記）は、ユーザがジョブ制御プリントサービス５０６内部でプリントジョブがどのような状態にあるかを調べたり、プリントジョブを操作したりするためのユーザインタフェースを提供するプログラムである。ジョブ制御プリントマネージャ５０５は、ジョブ制御プリントサービス５０６のソフトウェアのインタフェース（ＡＰＩ：Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）を介して、ジョブ制御プリントサービス５０６と情報・指示をやり取りしている。
【００３８】
更に詳細な処理としては、プリントマネージャ５０５がジョブ制御プリントサービス５０６に対してデバイスを指定してのイベントを発行し、ジョブ制御プリントサービス５０６は発行されたイベントに基づくデバイスのステータスを監視して、該監視に基づく結果をプリントマネージャ５０５に通知する。
【００３９】
ネットワークプリンタ１０５装着されているネットワークインタフェースカード１０６上にプリントシステムのサーバとなる印刷制御モジュール５０７がある。この印刷制御モジュール５０７にはデバイス状態、ジョブ状態を監視し、クライアントのジョブ制御プリントサービス５０６から要求があるとデバイス状態、ジョブ状態をジョブ制御プリントサービス５０６に通知する。この時、印刷制御モジュール５０７はプリンタコントローラ５１３からデバイスの状態を取得する。また、印刷制御モジュール５０７には印刷ジョブのスケジューリングを行うジョブスケジューラ５０８がありクライアントから印刷要求があるとスケジュールリストにジョブを登録する。
【００４０】
また、印刷制御モジュール５０７はＪａｖａ(登録商標)プラットフォーム５１０上に実装されている。さらにネットワークインタフェースカード１０６にはプリンタコントローラ５１３に対し印刷を行う印刷モジュール（ＬＰＲ／ＲＡＷ）５１１とプリンタコントローラ５１３と通信を行うデバイス通信モジュール５１２を備える。
【００４１】
図６は、本発明における印刷処理のスケジュールリストへの登録動作を図で示す。
【００４２】
図６においてクライアントＰＣ（１０１〜１０４）のからユーザがグループジョブの印刷を行うとジョブ制御プリントサービス５０６はジョブ制御モジュール５０７にスケジュール要求が出される。ジョブ制御モジュール５０７は印刷要求のあったクライアントのプリンタキュー６０５にあるグループジョブ６０１内の先頭のジョブと最後のジョブをスケジュールリスト６０２に登録する。
【００４３】
図７は、本発明におけるグループジョブのサーバ上の印刷処理の動作を図で示す。
【００４４】
図７においてグループジョブ６０１の先頭ジョブ（ＪｏｂＡ）がスケジュールリスト６０２転送中になるとジョブ制御サービス５０６はスケジュールリスト６０２に登録していないＪｏｂＢ，Ｃ，Ｄもプリンタキュー６０５からデバイスＪｏｂキュー６０３にジョブを転送する。そして最後にＪｏｂＥをデバイスＪｏｂキュー６０３に送信する。
【００４５】
図８は、本発明におけるグループジョブの印刷処理の終了イベントを返す動作について図で示す。
【００４６】
図８では、印刷が終了するとネットワークプリンタ１０５のコントローラ８０１が終了イベントを発行し、そのイベントをイベントハンドラ５０９が受け取り、スケジュールリスト６０２に登録されているＪｏｂＡ，Ｅはスケジュールモジュール５０８でスケジュールリストからＪｏｂジョブ情報が削除される。またＪｏｂＡ，Ｂ，Ｃ，Ｄ，Ｅの各Ｊｏｂが終了したらイベントハンドラ５０９からクライアントのジョブ制御プリントサービス５０６に終了通知を送信する。
【００４７】
図９は、ジョブリスト６０４のジョブのグルーピング処理を表したフローチャートである。
【００４８】
ステップＳ９０１は、ジョブを受け付けるときにアプリケーション５０１がジョブのグルーピング開始を示すジョブ制御プリントサービス５０６のＡＰＩ（ＳｔａｒｔＧｒｏｕｐＪｏｂ）が呼び出されたかを判断する。ＳｔａｒｔＧｒｏｕｐＪｏｂが呼ばれていればステップＳ９０２に移行し、ＳｔａｒｔＧｒｏｕｐＪｏｂが呼び出されたことの通知を出力ポート５０８に行う。
【００４９】
また、プリンタキュー情報１４０１のグループＩＤ１４０５にグループＩＤを設定する。グループＩＤは、Ｊｏｂリスト６０４で管理しており、各グループ毎に任意のグループＩＤを設定する。さらに、アプリケーションがグループモードの指定をＪｏｂリスト６０４のグループモード１３０８に設定する（図１４参照）。
【００５０】
ステップＳ９０３において、ジョブ制御ポート５０４からプリントジョブデータを受信する。ステップＳ９０４では、受信したジョブに関するＪｏｂリスト６０４を作成し、ジョブＩＤ１３０２、ドキュメント名１３０４、スプールファイルパス１３０５を設定する（図１３参照）。
【００５１】
ステップＳ９０５では、プリンタキュー情報１４０１のグループＩＤ１４０５からグループＩＤを参照し、その値をＪｏｂリスト６０４のグループモード１４０６に設定する。また、プリンタキュー情報１４０１のグループモード１４０６の値を、Ｊｏｂリスト６０４のグループモード１３０８に設定する。
【００５２】
ステップＳ９０６では、Ｊｏｂリスト６０４のグループモード１３０８を参照し、どのグループモードであるかを確認する。モードの種類は以下のものである。
【００５３】
モード１．アプリケーションがジョブのグルーピングの指示を開始すると、セッションを開始するモード
モード２．グループジョブの内、１つのジョブのスプールが完了すると、セッションを開始するモード
モード３．全てのジョブのスプールが完了してからセッションを開始するモード
モード１、２であれば、ステップＳ９０７へ処理を移行する。
【００５４】
ステップＳ９０７では、出力ポート５０８に対して、ステップＳ９０３で受け付けたジョブの送信を行う。送信時には、Ｊｏｂリスト６０４のジョブＩＤ１３０２の情報をあわせて通知する。
【００５５】
ステップＳ９０８では、アプリケーション５０１がグルーピングの終了を指示したかを判断し、グルーピング終了の指示が行われていなければ、まだ、送信するグループジョブが存在すると判断し、ステップＳ９０３に処理を移行する。また、ステップＳ９０８において、アプリケーション５０１がグルーピング終了を指示していたと判断した場合には、ステップＳ９０９に処理を移行し、グループ終了フラグ１３０７を設定し、グループ終了通知を出力ポート５０８に発行する。
【００５６】
更に、ステップＳ９１５に処理を移行し、グループモードをプリンタキュー情報１４０１のグループＩＤ１４０５、グループモード１４０６をクリアして、処理を終了する。
【００５７】
また、ステップＳ９０６では、Ｊｏｂリスト６０４のグループモード１３０８を参照し、モード３であれば、ステップＳ９１０へ処理を移行する。
【００５８】
モード３は、全てのジョブのスプールが完了してからセッションを開始するモードであるため、ステップＳ９１０において、アプリケーション５０１がグルーピングの終了を指示したかを判断し、グルーピング終了の指示が行われていなければ、受け付けるジョブがあるとして、ステップＳ９０３に処理を移行し、ジョブの受け付ける処理を行う。
【００５９】
ステップＳ９１０で、グルーピング終了の指示が行われていれば、全てのグルーピングするジョブを受け付けたとして、ステップＳ９１１に処理を移行する。
【００６０】
ステップＳ９１１では、受け付けたジョブのＪｏｂリスト６０４のグループモード１３０８を参照し、同じグループＩＤの全てのジョブの送信指示をジョブを受け付けた順に出力ポート５０８に対して発行する。送信指示には、Ｊｏｂリスト６０４のジョブＩＤ１３０２の情報をあわせて通知する。また、その際、アプリケーションが、ジョブの削除や一時停止を指定されたジョブがあれば、そのジョブの送信指示を行わない。
【００６１】
また、ステップＳ９０１において、アプリケーション５０１がジョブのグルーピング開始を示すジョブ制御プリントサービス５０５のＡＰＩ（ＳｔａｒｔＧｒｏｕｐＪｏｂ）が呼び出されたかを判断し、ＳｔａｒｔＧｒｏｕｐＪｏｂが呼ばれていなければ、グルーピングを指定されていないジョブであると認識し、ステップＳ９１２に処理を移行し、ジョブ制御ポート５０４からプリントジョブデータを受信する。
【００６２】
ステップＳ９１３では、受信したジョブに関するＪｏｂｒリスト６０４を作成し、ジョブＩＤ１３０２，ドキュメント名１３０４、スプールファイルパス１３０５を設定する。ステップＳ９１４では、出力ポート５０８に対して、ステップＳ９１２で受け付けたジョブの送信指示を行い処理を終了する。送信指示には、Ｊｏｂｒリスト６０４のジョブＩＤ１３０２の情報をあわせて通知する。
【００６３】
図１０は、出力ポート５０８のジョブのグルーピング処理を示すフローチャートである。
【００６４】
ステップＳ１００１でプリンタキュー６０５からステップＳ９０７、Ｓ９１１、Ｓ９１４で発行した送信指示であるか、または、ステップＳ９０２で発行したＳｔａｒｔＧｒｏｕＪｏｂの指示であるかを判断する。ＳｔａｒｔＧｒｏｕｐＪｏｂの指示であれば処理をステップＳ１００７に移行し、ステップＳ１００２で通知された送信指示に指定されているジョブＩＤに対応するＪｏｂリスト６０４のグループモード１３０８を参照し、モード１であれば、ステップＳ１００８で、プリンタキュー情報１４０１のデバイスＩＰアドレス１４０４に対して接続処理を行う。ステップＳ１００２でモード２、モード３であれば、ステップＳ１００１に処理を移行し、送信指示を待機する。
【００６５】
ステップＳ１００２では、送信指示に指定されたジョブＩＤに該当する、Ｊｏｂリスト６０４のグループＩＤ１３０６を参照し、グループＩＤが設定されているかを確認する。グループＩＤが設定されていれば、ステップＳ１００３に処理を移行する。
【００６６】
ステップＳ１００３では、出力ポート５０８が既にグループジョブを転送するためのセッションを接続しているかを確認する。接続済みでなければ、ステップＳ１０１１で、プリンタキュー情報１４０１のデバイスＩＰアドレス１４０４に対して接続処理を行う。
【００６７】
ステップＳ１０１２では、スプールファイルパス１３０５のファイルの転送を行い、ステップＳ１００５に処理を移行する。
【００６８】
ステップＳ１００５では、ステップＳ９０９で発行されたグループ終了通知が通知されているかを確認し、グループ終了通知が発行されていなければ、まだ、送信するグルーピングのジョブがあると判断し、処理をステップＳ１００１に移行する。
【００６９】
ステップＳ１００５で、グループ終了通知が発行されていれば、送信するグループのジョブが無いと判断し、ステップＳ１００６に移行する。
【００７０】
ステップＳ１００６において、グループ終了通知が発行されていれば、送信するグルーピングされたジョブが無いと判断して、ステップＳ１０１１やステップＳ１００８、ステップＳ１００９で接続を会したセッションを切断し処理を終了する。
【００７１】
ステップＳ１０１３では、グルーピングした全てのジョブのＪｏｂリスト６０４を削除し処理を終了する。
【００７２】
ステップＳ１００３において、グループジョブを転送するためのセッションが接続されていなければ、ステップＳ１００４に処理を移行し、スプールファイルパス１３０５のファイルの転送を行い、ステップＳ１００５に処理を移行する。
【００７３】
ステップＳ１００２において、グループＩＤが設定されていなければ、ステップＳ１００９に処理を移行し、プリンタキュー情報１４０１のデバイスＩＰアドレス１４０４に対して接続処理を行う。ステップＳ１０１２では、スプールファイルパス１３０５のファイルの転送を行い、ステップＳ１００５に処理を移行する。
【００７４】
図１１はジョブのグルーピング処理のスケジュールアップについての示すフローチャートである。
【００７５】
Ｓ９０７の送信指示、またＳ１０１０、Ｓ１０１２、Ｓ１００４のジョブ転送が行われるとジョブ制御モジュールサービス５０６はジョブ制御モジュール５０７に対しスケジュール要求を行う。この時ステップＳ１１０１でグループジョブであり且つ、ジョブ数が３以上であるかを判断し、３以上の場合は、ステップＳ１１０２のグループジョブの先頭と最後のＪｏｂのスケジュールの登録を行う。また、２以下の場合はグループジョブの全てのジョブのスケジュール登録を行う。
【００７６】
ステップＳ１１０４で、ジョブ制御モジュール５０７からデバイスジョブＩＤを受信するとＪｏｂリスト６０４のデバイスジョブＩＤ１５０２にデバイスジョブＩＤを設定する。次にステップＳ１１０７でジョブ制御モジュール５０７から印刷送信指示を受けるとグループジョブのメンバジョブを全てデバイスに送信する。ステップＳ１１０８でジョブ制御モジュール５０７から終了イベントを受けた後、ステップＳ１１０９でグループジョブの数の終了通知を受けたかを確認する。グループジョブの数の終了通知を受け取っていない場合は、ステップＳ１１０８に移行する。
【００７７】
図１２は、プリントシステムのサーバであるジョブ制御モジュール５０７の処理のフローチャートを示した図である。
【００７８】
ステップＳ１２０１でクライアントのジョブ制御プリントサービス５０６からスケジュール要求を受け取るとステップＳ１２０２でデバイス固有の任意のＩＤをデバイスジョブＩＤを作成する。ステップＳ１２０３ではスケジュール登録完了とデバイスジョブＩＤをジョブ制御プリントサービス５０６に通知する。ジョブ制御プリントサービス５０６はＪｏｂリスト６０４のデバイスジョブＩＤ１５０２にこの値をセットする。
【００７９】
これと同時にステップＳ１２０４でスケジュールリスト６０２にジョブを登録する。スケジュールリストで前のジョブの印刷が終わると、ステップＳ１２０５でジョブの送信指示をジョブ制御プリントサービス５０６に送る。
【００８０】
デバイス１０５から印刷完了イベントをイベントハンドラ５０９が受け取るとステップＳ１２０７でこのイベントに対するジョブがグループジョブかを確認し、グループジョブの先頭ジョブ、終了ジョブの場合はスケジュールリストの状態を“印刷終了”に変更する（ステップＳ１２０８）。また、イベントハンドラ５０９はクライアントに個々のジョブごとに印刷終了をジョブ制御モジュール５０７に送る（ステップＳ１２０９）。
【００８１】
図１３は、ジョブ制御サービス５０５が管理するＪｏｂリストの構成の一例を示した図である。
【００８２】
本実施形態で使用されるジョブ情報テーブル６０４は、ジョブ制御ポート５０４からプリントジョブデータがジョブ制御プリントサービス５０６に送信されるとプリンタキュー６０５を作成する。
【００８３】
ジョブＩＤ１３０２は、プリンタキュー６０５が管理するＪｏｂリストジョブ情報テーブルに割り当てる任意のＩＤであり、ジョブを識別するＩＤとして使用される。
【００８４】
ドキュメント名１３０４は、アプリケーション５０１が印刷するドキュメントの名前で、ジョブ制御ポート５０４がジョブ制御プリントサービス５０６にプリントジョブデータを送信するときにプリンタキュー６０５に通知する。
【００８５】
スプールファイルパス１３０５は、ジョブ制御ポート５０４がジョブ制御プリントサービス５０６に送信したプリントジョブデータを、ジョブ制御サービスがＨＤ２０５に保存したファイルパスである。
【００８６】
グループＩＤ１３０６は、アプリケーション５０１がジョブのグルーピング指定したときにプリンタキュー６０５が発行した任意のグループＩＤである。また、このグループＩＤによってジョブのグループを識別することができる。
【００８７】
グループ終了フラグ１３０７は、グループジョブ内の最後のジョブを示すフラグである。
【００８８】
グループモード１３０８はジョブグルーピング機能のモードを表しており、アプリケーション５０１がジョブのグルーピングを指定したときに指定することができる。モードには以下のものがある。
【００８９】
１．アプリケーションがジョブのグルーピングの指示を開始すると、セッションを開始するモード
２．グループジョブの内、１つのジョブのスプールが完了すると、セッションを開始するモード
３．全てのジョブのスプールが完了してからセッションを開始するモード
【００９０】
これらのモードは、夫々以下の特徴がある。
【００９１】
１．１ページめの印刷が早くなる。つまり、ＦｉｒｓｔＰｒｉｎｔが速くなる。
【００９２】
２．１よりセッションを保持する時間が減り、他のホストからの印刷を妨げない、尚且つＦｉｒｓｔＰｒｉｎｔが３より速くなる。
【００９３】
３．１，２ではアプリケーションが、グループジョブに途中で失敗すると、最初のジョブなどは印刷されてしまい、無駄な印刷が発生するのを解消できる。
【００９４】
図１４は、プリンタキュー６０５で受付た印刷ジョブの動作を決めるプリンタキュー情報１４０１を示す図である。
【００９５】
ここで、プリンタキュー情報１４０１の設定内容の、プリンタ名１４０２、ドライバ名１４０３、デバイスＩＰアドレス１４０４について説明する。
【００９６】
プリンタ名１４０２は、Ｗｉｎｄｏｗｓ（登録商標）のプリンタオブジェクトの名前を示しており、プリンタオブジェクト毎に異なる名前であり、プリンタオブジェクトを識別することができる。
【００９７】
ドライバ名１４０３は、プリンタオブジェクトに設定されているドライバの名前である。
【００９８】
デバイスＩＰアドレス１４０４は、対応するネットワークプリンタ（デバイス）１０５のＩＰアドレスである。
【００９９】
図１５は、サーバ上のジョブのスケジュールリストを示す一例である。
【０１００】
スケジュールリスト６０２は個々のデバイス固有の任意のＩＤであり、ジョブを識別するＩＤとして使用される。図１３のデバイスＩＤ１５０２も同じＩＤであり、このＩＤはクライアントのＪｏｂリスト６０４とサーバのスケジュールリスト６０２にそれぞれ登録される。
【０１０１】
ジョブ状態１５０２はジョブの状態を示す情報である。
【０１０２】
図１６は、ジョブ制御プリントサービス５０６が、ジョブグルーピング機能を実現するために、フローチャート図９の処理によって行われる、印刷プロトコルの流れを示す図である。印刷プロトコルの１つのセッションの中で、複数のプリントジョブデータを送信している。
【図面の簡単な説明】
【０１０３】
【図１】本発明の実施の一形態に係る印刷処理システムのネットワーク構成図である。
【図２】本発明におけるネットワークコンピュータのハードウェア構成図である。
【図３】本発明におけるＲＡＭ２０２のメモリマップを表す図である。
【図４】本発明におけるＦＤ２０４のメモリマップを表す図である。
【図５】本発明におけるクライアントＰＣ内のプリントシステムクライアントのモジュール構成図とネットワークデバイス内のプリントシステムサーバのモジュール構成図である。
【図６】本発明における印刷処理のスケジュールリストへの登録の動作図である。
【図７】本発明におけるグループジョブのサーバ上の印刷処理を示す図である。
【図８】本発明における印刷処理の終了イベントを返す動作図である。
【図９】本発明におけるクライアントのジョブのグルーピング処理のフローチャートである。
【図１０】本発明におけるクライアントの出力ポートのジョブグルーピング処理のフローチャートである。
【図１１】本発明におけるクライアントのジョブのグルーピング処理のスケジュールアップの処理のフローチャートである。
【図１２】本発明におけるサーバの印刷制御モジュールのフローチャートである。
【図１３】本発明におけるクライアントのＪｏｂリストを示す図である。
【図１４】本発明におけるクライアントのプリンタキュー情報を示す図である。
【図１５】本発明におけるサーバのスケジュールリストを示す図である。
【図１６】本発明における印刷プロトコルのセッションを表す図である。
【符号の説明】
【０１０４】
１０１  クライアントＰＣ
１０２  クライアントＰＣ
１０３  クライアントＰＣ
１０４  クライアントＰＣ
１０５  ネットワークプリンタ
５０６  ジョブ制御プリントサービス
５０７  ジョブ制御モジュール
５０８  ジョブスケジューラ
５０９  イベントハンドラ
６０１  グループジョブ
６０２  スケジュールリスト
６０３  Ｊｏｂキュー
６０４  Ｊｏｂリスト
６０５  プリンタキュー
【図１】
2007058417.tif 000003
【図２】
2007058417.tif 000004
【図３】
2007058417.tif 000005
【図４】
2007058417.tif 000006
【図５】
2007058417.tif 000007
【図６】
2007058417.tif 000008
【図７】
2007058417.tif 000009
【図８】
2007058417.tif 000010
【図９】
2007058417.tif 000011
【図１０】
2007058417.tif 000012
【図１１】
2007058417.tif 000013
【図１２】
2007058417.tif 000014
【図１３】
2007058417.tif 000015
【図１４】
2007058417.tif 000016
【図１５】
2007058417.tif 000017
【図１６】
2007058417.tif 000018