(57)【要約】【課題】  簡単な構成で複数の印刷ジョブをグルーピングする。【解決手段】  コンピュータにおいて、複数のプリントジョブデータをグルーピングし、グループジョブとして管理し、そのグループジョブを所定の印刷プロトコルにおける１つのセッションでプリンタデバイスへ転送するように制御する。【選択図】      図９
2005174122.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置と画像形成装置とで構成される印刷システムにおける情報処理装置の転送制御方法であって、
アプリケーションデータに基づく印刷ジョブを複数受け取る工程と、
前記受け取る工程において受け取った複数の印刷ジョブをグルーピングし、グループジョブとして管理する工程と、
前記グループジョブを所定の印刷プロトコルを用いて１つのセッションで画像形成装置へ転送するように制御する工程とを有することを特徴とする情報処理装置の転送制御方法。
【請求項２】
前記管理する工程では、前記グループジョブの開始及び終了を示す情報を設定し、
前記制御する工程では、前記グループジョブの開始及び終了を示す情報に基づいて前記グループジョブを前記１つのセッションで画像形成装置へ転送するように制御することを特徴とする請求項１に記載の情報処理装置の転送制御方法。
【請求項３】
前記管理する工程は、前記グループジョブの開始を示す情報としてグループＩＤを設定し、前記グループジョブの終了を示す情報として終了フラグを設定することを特徴とする請求項２に記載の情報処理装置の転送制御方法。
【請求項４】
前記制御する工程では、グループジョブの開始後、順次受け取る複数のジョブの個々のジョブＩＤを指定したジョブデータのプリントデバイスへの送信指示を行うことを特徴とする請求項１乃至請求項３の何れか一項に記載の転送制御方法。
【請求項５】
前記制御する工程では、前記順次受け取る複数のジョブＩＤに基づく指示にグループジョブの終了が含まれている場合に、前記セッションの切断を行わせることを特徴とする請求項１乃至請求項３の何れか一項に記載の転送制御方法。
【請求項６】
グループジョブが指定されていない場合に、アプリケーションデータに基づく単独の印刷ジョブを受け取り、該受け取った印刷ジョブを１つのセッションで画像形成装置に転送するように制御する第２制御工程を有することを特徴とする請求項１乃至請求項５の何れか一項に記載の転送制御方法。
【請求項７】
情報処理装置と画像形成装置とで構成される印刷システムにおける情報処理装置であって、
アプリケーションデータに基づく印刷ジョブを複数受け取る手段と、
前記受け取る手段により受け取った複数の印刷ジョブをグルーピングし、グループジョブとして管理する管理手段と、
前記グループジョブを所定の印刷プロトコルを用いて１つのセッションで画像形成装置へ転送するように制御する制御手段とを有することを特徴とする情報処理装置。
【請求項８】
コンピュータに、請求項１乃至請求項６の何れか一項に記載された情報処理装置の転送制御方法を実行させるためのプログラム。
【請求項９】
請求項８に記載されたプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の印刷ジョブをグルーピングする技術に関するものである。
【背景技術】
【０００２】
従来からプリンタデバイスに印刷ジョブのデータを送信する方法として様々な層における様々な種類のプロトコルが考案されている。そして、プリンタデバイスで印刷する場合、プリンタデバイスは、ホストから送信された印刷ジョブを受け付け、印刷ジョブを受け付けた順に印刷を行っている。
【０００３】
一方、ホスト側では、複数のドキュメントを夫々異なる印刷要求として発行するため、複数ドキュメントの印刷要求の間に他のユーザの印刷要求が割り込んでしまい、出力結果の途中に他のユーザの印刷結果が混在してしまうという問題点があった。
【０００４】
そこで、このような問題点に鑑み、ホスト側で複数の印刷ジョブを１つにまとめて出力する、以下に述べるような「ジョブグルーピング」の仕組みが提案されている。
（１）ドキュメント結合方式
プリンタデバイスに送信する前に、ホストにおいて、複数の印刷ジョブを、中間形式のデータを介して１つのドキュメントとして結合してしまい、１つのドキュメントに基づく印刷データを作成し、作成した印刷データをプリンタデバイスに投入する方式。
（２）ＩＰＰ（Internet Printing Protocol）方式
ホストが複数の印刷ジョブをプリントサーバに送信するときに、印刷ジョブを結合するコマンドを送り、プリントサーバで印刷ジョブの結合処理を行って排紙する方式。
【０００５】
代表的な例として、例えばインターネットを通じて遠隔地にあるプリントサーバに対して印刷を行うことや遠隔地からの印刷を受けることができるＩＰＰが知られている。このＩＰＰ方式においては、マルチドキュメント宣言のコマンドを用いて複数のドキュメント（Microsoft Word（登録商標）、Microsoft Excel（登録商標）で作成された文書など）をサーバへ送る機能（１ジョブマルチドキュメント機能）などが知られている。
【０００６】
この１ジョブマルチドキュメント機能では、予めプリントサーバ（プリンタに装着されるネットワークカードを含む）にCreate Jobコマンドを通知し、その通知に応答してサーバ側から返答されるジョブＩＤを各々のジョブ（ドキュメント）に含め、各々のジョブをプリントサーバに送信する。
【０００７】
一方、プリントサーバ側では、Create Jobのコマンドに対応して生成したジョブＩＤに対応する器を作成すると共にクライアント側に通知し、ジョブＩＤが含まれる任意の印刷ジョブがクライアントから個々送信されてきた場合、その印刷ジョブを器の中に一旦格納する。そして、Job Endのコマンドが送信されてきた場合に、それまで器の中に格納した印刷ジョブを他のジョブの出力が割り込まないように制御する。
（３）特許文献１に記載された方法
プリントサーバがプリントサーバに登録された複数ホストからの印刷ジョブの順序制御を行い、印刷ジョブをグループ単位にプリンタデバイスに送信することで、プリンタデバイスで排紙される印刷ジョブがグループ毎にまとまって排紙される方式。
【０００８】
特許文献１には印刷するドキュメントをグループ化し、他の印刷要求を割り込ませないようにして印刷を行う仕組みが記載されている。
【特許文献１】特開２００２−１８２８７８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、従来のグルーピング方式では、上記（１）の場合、１つのドキュメントを中間形式のデータを介してホスト側で作成し、その後作成した中間形式のデータを印刷データに変換する処理が介入するため、スループットが落ちると言う問題点があった。
【００１０】
また、上記（２）の場合、ＩＰＰのコマンドに従った処理をプリントサーバ側に設ける必要がある。例えば、設けたとしてもプリンタＩＤに基づく煩雑な処理をプリントサーバ側で行う必要があるという問題点があった。
【００１１】
更に、上記（３）では、プリントサーバでグループ毎に印刷ジョブの制御を行う場合に、プリントサーバが管理していないホストや他のプリントサーバからデバイスへ印刷する印刷ジョブの割り込みが発生し、印刷ジョブのグルーピングが正確に行われないケースやプリントサーバがなければ実現できないケースなどがあった。
【００１２】
一方、FTP（File Transfer Protocol）に準じた通信を行うことにより複数の電子ファイルをまとめて送信することができるが、これを印刷システムに適用した場合に、個々のアプリケーションデータから個々の印刷データファイルをプリンタドライバなどを利用して作成し、かつ、作成した複数の印刷データファイルをプリンタ装置にFTPを用いてプリンタに送信するようユーザが操作を行う必要があり、煩雑な作業を要するなど現実的ではなかった。
【００１３】
本発明は、簡単な構成で複数の印刷ジョブをグルーピングすることを目的とする。
【課題を解決するための手段】
【００１４】
本発明は、情報処理装置と画像形成装置とで構成される印刷システムにおける情報処理装置の転送制御方法であって、アプリケーションデータに基づく印刷ジョブを複数受け取る工程と、前記受け取る工程において受け取った複数の印刷ジョブをグルーピングし、グループジョブとして管理する工程と、前記グループジョブを所定の印刷プロトコルを用いて１つのセッションで画像形成装置へ転送するように制御する工程とを有することを特徴とする。
【００１５】
また、本発明は、情報処理装置と画像形成装置とで構成される印刷システムにおける情報処理装置であって、アプリケーションデータに基づく印刷ジョブを複数受け取る手段と、前記受け取る手段により受け取った複数の印刷ジョブをグルーピングし、グループジョブとして管理する管理手段と、前記グループジョブを所定の印刷プロトコルを用いて１つのセッションで画像形成装置へ転送するように制御する制御手段とを有することを特徴とする。
【発明の効果】
【００１６】
本発明によれば、簡単な構成で複数の印刷ジョブをグルーピングすることができる。
【発明を実施するための最良の形態】
【００１７】
以下、図面を参照しながら発明を実施するための最良の形態について詳細に説明する。
【００１８】
＜印刷処理システムの構成例＞
図１は、本実施形態における情報処理システムの構成を示すブロック図である。図１において、１０２、１０３、１０４はそれぞれ情報処理装置であり、クライアント・サーバシステムのクライアントとして機能する。各クライアントは、イーサネット（登録商標）などのネットワークケーブルによってネットワーク１０６に接続され、アプリケーションプログラム等の各種プログラムを実行可能である。
【００１９】
尚、本システムにおけるクライアントはパーソナルコンピュータであり、１台又は複数台が接続されているものとする。また各クライアントのことを「クライアントＰＣ」とも称す。またネットワークインタ１０６はイーサネット（登録商標）ケーブルなどを提供できるが、イーサーネットケーブルに限定されるものではなく、例えば、ＲＳ２３２Ｃインタフェースに準じた通信ケーブルや、無線通信を利用するようにしてもよい。
【００２０】
また、クライアントＰＣは、印刷データをプリンタに対応するプリンタ言語に変換する機能を有するプリンタドライバを搭載している。尚、プリンタドライバは複数のプリンタドライバをサポートするものとする。
【００２１】
１０１は情報処理装置であり、クライアント・サーバシステムのサーバとして機能する。また、サーバ１０１はネットワークケーブルによってネットワーク１０６に接続され、ネットワーク１０６上のクライアントで使用されるファイルを蓄積したり、ネットワーク１０６の使用状態を監視したりする。尚、このサーバ１０１はネットワーク１０６に接続されている複数のプリンタを管理するプリントサーバとしても機能する。
【００２２】
本実施形態のクライアントＰＣ１０２〜１０４及びプリントサーバ１０１は、一般的な情報処理装置であり、クライアントＰＣとプリントサーバにはそれぞれ異なる制御を行う印刷制御プログラムが実行可能に格納されている。また、プリントサーバ１０１はクライアントＰＣ１０２〜１０４の機能を同時に持つこともできる。
【００２３】
本実施形態におけるプリントサーバ１０１は、更に各クライアントＰＣ１０２、１０３、１０４から印刷要求が出された印字データを含む印刷ジョブを格納して印刷する機能、又はクライアントＰＣ１０２、１０３、１０４から印字データを含まないジョブ情報のみ受け取り、クライアントＰＣ１０２、１０３、１０４の印刷順序を管理し、印刷順序になったクライアントＰＣに対して印字データを含む印刷ジョブの送信許可を通知する機能、或いは後述するネットワークプリンタのステータスや印刷ジョブの各種情報などを取得し、クライアントＰＣ１０２、１０３、１０４に通知する機能などを有する。
【００２４】
１０５は印刷装置であるネットワークプリンタであり、ネットワークインタフェース（不図示）を介してネットワーク１０６と接続され、後述の図６乃至８のフローチャートに基づきクライアントＰＣから送信される印字データを含む印刷ジョブを解析して１ページずつドットイメージに変換し、１ページ毎に印刷する。１０６はネットワークであり、サーバ１０１、クライントＰＣ１０２、１０３、１０４、ネットワークプリンタ１０５等を接続している。
【００２５】
尚、印刷装置１０５としては、電子写真方式を採用したものや、インクジェット方式を採用したものなど様々な印字方式を採用した印刷装置を適用可能とする。また印刷データを受信し、該受信した印刷データに基づく印刷データをどのような仕組みをもって行うかについては既に周知の技術を流用すれば実現することができ、詳しい説明は省略する。
【００２６】
＜ネットワークコンピュータのハードウェア構成例＞
図２は、本実施形態における情報処理装置の構成を示すブロック図である。尚、上述した情報処理装置であるプリントサーバ１０１、クライントＰＣ１０２、１０３、１０４も同様或いは同等のハードウェア構成とする。よって、クライアントとサーバの構成を示すブロック図として説明する。
【００２７】
図２において、２００は情報処理装置の制御手段であるＣＰＵであり、後述するハードディスク（ＨＤ）に格納されているアプリケーションプログラム、プリンタドライバプログラム、オペレーティングシステム（ＯＳ）やネットワークプリンタ制御プログラム等を実行し、ＲＡＭ２０２にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。
【００２８】
２０１は記憶手段であるＲＯＭであり、内部には基本Ｉ／Ｏプログラム等のプログラム、文書処理の際に使用するフォントデータ、テンプレート用データ等の各種データを記憶する。２０２は一時記憶手段であるＲＡＭであり、ＣＰＵ２００の主メモリ、ワークエリア等として機能する。
【００２９】
２０３は記録媒体読み込み手段としてのフレキシブルディスク（ＦＤ）ドライブであり、ＦＤドライブ２０３を通じて記録媒体としてのＦＤ２０４に記録されたプログラム等を本コンピュータシステムにロードすることができる。尚、記録媒体はＦＤだけに限らず、例えばＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＰＣカード、ＤＶＤ、ＩＣメモリカード、ＭＯ、メモリスティック等、任意である。また、ＦＤからのロードに関しては図５を参照して更に後述する。
【００３０】
２０４は記録媒体であるフレキシブルディスク（ＦＤ）であり、コンピュータが読み取り可能なプログラムが格納された記録媒体である。２０５は外部記憶手段の一つであり、大容量メモリとして機能するハードディスク（ＨＤ）であり、アプリケーションプログラム、プリンタドライバプログラム、ＯＳ、ネットワークプリンタ制御プログラム、関連プログラム等を格納している。
【００３１】
尚、スプール手段であるスプーラはここに確保される。スプール手段は、クライアントＰＣではクライアントスプーラのことであり、プリントサーバ１０１ではサーバスプーラのことである。また、プリントサーバ１０１では、各クライアントＰＣから受けたジョブ情報を格納し、順序制御を行うための各種テーブルもこの外部記憶手段に生成されて格納される。
【００３２】
２０６は指示入力手段であるキーボードであり、ユーザがクライアントＰＣに対して、或いはオペレータや管理者がプリントサーバ１０１に対して、デバイスの制御コマンドの命令等を入力指示するものである。
【００３３】
２０７は表示手段であるディスプレイであり、キーボード２０６から入力したコマンドや、プリンタの状態等を表示したりするものである。
【００３４】
２０８はシステムバスであり、クライアントＰＣやプリントサーバである情報処理装置内のデータの流れを司るものである。２０９は入出力手段であるインタフェースであり、このインタフェース２０９を介して外部装置とのデータのやり取りを行う。
【００３５】
本実施形態では、ＦＤ２０４からネットワークプリンタ制御プログラム及び関連データを直接ＲＡＭ２０２にロードして実行させる例を示すが、これ以外にも、ＦＤ２０４からネットワークプリンタ制御プログラムを動作させる度に、既にネットワークプリンタ制御プログラムがインストールされているＨＤ２０５からＲＡＭ２０２にロードするようにしても良い。
【００３６】
また、このネットワークプリンタ制御プログラムを記録した媒体は、ＦＤ以外にＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＰＣカード、ＤＶＤ、ＩＣメモリカードであっても良い。更に、このネットワークプリンタ制御プログラムをＲＯＭ２０１に記憶させておき、メモリマップの一部となすように構成し、直接ＣＰＵ２００で実行することも可能である。
【００３７】
また、以上の各装置と同等の機能を実現するソフトウェアにより、ハードウェア装置の代替として構成することもできる。
【００３８】
また、このネットワークプリンタ制御プログラムのことを、簡単に印刷制御プログラムと呼ぶこともある。この印刷制御プログラムは、クライアントＰＣにおいて印刷ジョブの印刷先の変更を指示したり、印刷順序を変更する指示をするための制御を行うプログラムを含み、プリントサーバ１０１において、印刷ジョブの順序制御を行ったり、印刷ジョブの印刷終了や印刷先変更要求などを通知するためのプログラムを含んでいる。
【００３９】
また、このような制御を行う印刷制御プログラムは、クライアントＰＣにインストールされるモジュールと、プリントサーバ１０１にインストールされるモジュールとを別々に分けても良いし、１つの印刷制御プログラムが、実行される環境によりクライアントＰＣ用として機能したり、プリントサーバ用として機能するようにしても良い。或いは一台のコンピュータに、クライアントＰＣ用の機能を持つモジュールとプリントサーバ用として機能するモジュールを一緒にインストールし、同時に、或いは時分割で擬似的に平行動作させる構成も可能である。
【００４０】
また、制御プログラムは、クライアントにインストールされるモジュールと、プリントサーバにインストールされるモジュールとが協働することによって実現するようにしても良いし、クライアント或いはプリントサーバにインストールされるモジュール単独で実現するようにしても良い。
【００４１】
＜印刷処理システムにおけるソフトウェア構成例＞
ここで、本実施形態で用いる用語の技術的意味について説明する。アプリケーションにおける印刷指示に応じてWindows（登録商標）などのＯＳのグラフィックエンジンを介して出力される描画命令（一般的にＤＤＩ：Device Driver Interface或いはＧＤＩ：Graphic Device Interfaceと呼ばれている）を解釈し、ページ記述言語（ＰＤＬ）を生成してプリンタへ出力させるようなドライバを通常「プリンタドライバ」と呼び、このプリンタを通常「デバイス」と呼ぶ。
【００４２】
尚、ＯＳとしてはWindows（登録商標）に限定されるものではなく、描画命令を備えるＯＳであれば適用可能であることは言うまでもない。
【００４３】
また、デバイスであるプリンタとは区別して、プリンタドライバとプリンタ出力ポート（ポートモニタ）との組み合わせを「プリンタ」と呼ぶこともある。
【００４４】
次に、本実施形態におけるクライアント・サーバシステムにおけるＤＯＭＳ（Document Output Management Service：文書出力管理サービス）で処理される印刷ジョブ（文書などを印刷するアプリケーションから発行された描画コマンドを含む）の流れについて説明する。
【００４５】
図３は、印刷処理システムにおける印刷ジョブの流れを説明するための図である。通常、ユーザがクライアントＰＣで印刷の指示を行うと、アプリケーションプログラムが一連の描画命令をＯＳのグラフィックエンジンを介して生成し、その描画命令はプリンタドライバを経てＯＳのスプーラに渡される。そして、ＯＳのスプーラは、ユーザが印刷を指示する際に選択したポートモニタにプリントジョブデータを渡してプリンタデバイスに送信させる手順をとる。
【００４６】
尚、上述のポートモニタを設定するユーザインタフェースとしては、例えばWindows（登録商標）にインストールされているプリンタのプロパティーを設定する設定画面などが一例として挙げられる。
【００４７】
本実施形態では、ユーザは予め印刷ジョブ制御システム用のポートモニタ３２１（以降、「ジョブ制御ポートモニタ」と略記）を指定して印刷を指示する。アプリケーションプログラム３０１は、一連の描画命令をＯＳのグラフィックエンジンを介して生成させる。そして、ＯＳのグラフィックエンジンを介して生成された描画命令は、プリンタドライバ（ＰＤＬ Driver）３０２に引き渡される。
【００４８】
一方、ＯＳのグラフィックエンジンを介して生成された描画命令を受け取ったプリンタドライバ３０２は、デバイスで印刷するためのページ記述言語データを生成し、スプーラ３０４へ出力するが、生成されたデータは、従来のポートモニタ３０５ではなく、ジョブ制御ポートモニタ３２１に対してプリンタデバイス１０５へプリントジョブデータとして送信される。また、プリンタドライバ３０２によって提供されるユーザインタフェースを介して設定された用紙サイズ、ステープル指示などの印刷設定情報も、ジョブ制御ポートモニタ３２１に送信される。
【００４９】
ジョブ制御ポートモニタ３２１は、プリントジョブデータをプリンタデバイス１０５に送信するのではなく、印刷ジョブ制御システム用プリントサービス３２２（以降、「ジョブ制御プリントサービス」と略記）に渡す。具体的にはジョブ制御ポートモニタがスプールファイルパス５０４をジョブ制御プリントサービス３２２に通知し、ジョブ制御プリントサービス３２２は通知されたスプールファイルパス５０４に基づき格納された印刷ジョブを受け取る。ジョブ制御プリントサービス３２２は、ジョブ制御ポートモニタ３２１からプリントジョブデータを受け、対応するプリンタデバイスに受けたプリントジョブデータを送信する。ジョブ制御プリントサービス３２２による所定のプリントデバイスに対する再印刷が行われる場合には、以前に通知されたスプールファイルパス５０４に基づきＨＤ２０５から再度印刷ジョブを読み出しプリンタデバイスに読み出した印刷ジョブを転送する。
【００５０】
印刷ジョブ制御システム用プリントマネージャ３２３（以降、「プリントマネージャ」と略記）は、ジョブ制御プリントサービス３２２内部でプリントジョブがどのような状態にあるかを調べ、調べた内容をグラフィックユーザインタフェースに表示したり、ユーザがプリントジョブを操作したりするためのユーザインタフェースを提供するプログラムである。このプリントマネージャ３２３は、ジョブ制御プリントサービス３２２のソフトウェアのインタフェース（API:Application Program Interface）を介してジョブ制御プリントサービス３２２と情報や指示をやり取りしている。ＡＰＩにやるやり取りは、ジョブ制御プリントサービス３２２に対してのポーリングでも、ジョブ制御プリントサービス３２２からのイベント通知によるものであっても良い。また更に詳細な処理としては、プリントマネージャ３２３がジョブ制御プリントサービス３２２に対してデバイスを指定したイベントを発行し、ジョブ制御プリントサービス３２２がそのイベントに基づくデバイスのステータスを監視し、監視結果をプリントマネージャ３２３に通知する。
【００５１】
尚、デバイス情報コントロールモジュール３０６、３２６は、プリンタデバイス１０５と通信を行い、各デバイス内の印刷ジョブや動作状態に関する情報を入手したり、操作を行ったりする。また、入手した情報は、ジョブ制御プリントサービス３２２に渡すことができる。
【００５２】
図４は、ジョブ制御プリントサービス３２２の主要な機能の構成を示す図である。図４において、４０１はジョブ管理部であり、ジョブ制御ポートモニタ３２１から受信したプリントジョブデータを管理し、データ送信部４０２に送信指示を行うモジュールである。また、プリントマネージャ３２３がジョブリストを表示するときの情報を渡すモジュールでもある。４０２はデータ送信部であり、ジョブ管理部４０１から印刷指示を入力すると、プリンタデバイス１０５に印刷プロトコルを使用してプリントジョブデータを所定の通信プロトコルで送信するモジュールである。
【００５３】
尚、データ送信部４０２が、Windows（登録商標）などの所定のオペレーティングシステムに設けられる場合には、オペレーティングシステムのデータ通信モジュールを用いるようにしても良く、その場合にはデータ送信部４０２はオペレーティングシステムのデータ通信モジュールを稼動させるよう指示を行えばよい。また、印刷プロトコルとしては、例えばＲＡＷプロトコルなどが挙げられる。また、ＬＰＲプロトコルも例として挙げられる。
【００５４】
次に、アプリケーション３０１が複数の印刷ジョブをグルーピングし、ジョブ制御プリントサービス３２２がグルーピングされたグループジョブをプリンタデバイス１０５との通信のコネクションを切断することなく、プリンタデバイス１０５へプリントジョブデータを転送する処理について説明する。まず、ジョブ制御プリントサービス３２２のジョブ管理部４０１で管理される印刷ジョブ情報テーブルについて説明する。
【００５５】
図５は、ジョブ管理部４０１が管理する印刷ジョブ情報テーブルの構成の一例を示す図である。本実施形態における印刷ジョブ情報テーブル５０１は、ジョブ制御ポートモニタ３２１からプリントジョブデータがジョブ制御プリントサービス３２２へ出力されると、ジョブ管理部４０１によって作成されるテーブルである。
【００５６】
尚、この印刷ジョブ情報テーブル５０１は、プリントジョブデータが後述するグループジョブの場合、そのグループジョブを構成する個々のプリントジョブデータに対して発行されるものである。
【００５７】
図５に示す印刷ジョブ情報テーブル５０１において、ジョブＩＤ５０２は、ジョブ管理部４０１が管理する印刷ジョブ情報テーブルに割り当てる任意のＩＤであり、印刷ジョブを識別するＩＤとして使用される。ドキュメント名５０３は、アプリケーション３０１が印刷するドキュメント（ドキュメントファイル）の名前であり、ジョブ制御ポートモニタ３２１からジョブ制御プリントサービス３２２へプリントジョブデータが送信された際にジョブ制御ポートモニタ３２１からジョブ管理部４０１に通知される。スプールファイルパス５０４は、ジョブ制御ポートモニタ３２１からジョブ制御プリントサービス３２２へ送信されたプリントジョブデータをジョブ制御プリントサービス３２２がＨＤ２０５に保存した際のファイルパスであり、ファイルの格納場所を特定する情報として利用される。
【００５８】
グループＩＤ５０５は、アプリケーション３０１が複数の印刷したいファイルをグルーピング指定したときに、ジョブ管理部４０１が発行した任意のグループＩＤである。また、このグループＩＤ５０５によって個々のプリントジョブデータをグループジョブとして識別するものである。そして、グループ終了フラグ５０６は、グループジョブにおける最後のプリントジョブデータを示すフラグである。このフラグは、グルーピング指定された複数のプリントジョブデータのうち、最後にグルーピング対象となるプリントジョブに付加される。
【００５９】
次に、アプリケーション３０１がジョブ制御プリントサービス３２２へ所定のコマンド指示を行うことにより、複数の印刷したいファイルを及びそれに基づく印刷ジョブをグルーピングする方法について説明する。
【００６０】
図６は、グルーピング指定処理を示すフローチャートである。まず、ステップＳ６０１において、グループジョブの開始を指定するジョブ制御プリントサービス３２２のＡＰＩ（StartGroupJob）を呼び出す。そして、ステップＳ６０２において、アプリケーション３０１が通常の印刷と同じように印刷を行う。アプリケーション３０１による印刷の仕組みについては図３において説明した通りとする。
【００６１】
次に、ステップＳ６０３において、アプリケーション３０１がグルーピングしたいグルーピングして印刷したファイルが残っているか判断し、残っていればステップＳ６０２に戻り、上述した処理を繰り返す。
【００６２】
尚、グルーピングして印刷したいファイルの数は、予めアプリケーション３０１を介して所定数に設定され確定しているものとする。
【００６３】
また、グルーピングして印刷したいファイルが残っていなければステップＳ６０４へ進み、グループジョブの終了を示すジョブ制御プリントサービス３２２のＡＰＩ（EndGroupJob）を呼び出し、この処理を終了する。
【００６４】
以下、図７、８を用いて、ジョブ制御ポートモニタ３２１からのアプリケーションデータに基づく印刷ジョブをジョブ制御プリントサービス３２２で順次複数個受け取り、順次受け取った複数の印刷ジョブをグループジョブとして管理し、この管理に基づきグループジョブを所定の印刷プロトコルを用い１つのセッションで画像形成装置へ転送するように制御する処理について説明する。
【００６５】
まず、図７を用いてジョブ制御プリントサービス３２２のジョブ管理部４０１において、複数の印刷ジョブのグルーピングを実現する方法について説明する。
【００６６】
図７は、ジョブ管理部４０１のジョブ処理を示すフローチャートである。まずステップＳ７０１において、印刷ジョブを受け付けるときにアプリケーション３０１が印刷ジョブのグルーピング開始を示すジョブ制御プリントサービス３２２のＡＰＩ（StartGroupJob）を呼び出したか否かを判断する。ここで、アプリケーション３０１がStartGroupJobを呼び出した場合はステップＳ７０２へ進み、グループジョブの開始後ジョブ制御ポートモニタ３２１からプリントジョブデータを順次受け取りし、グループジョブとして受け付ける。そして、ステップＳ７０３において、順次受け取ったプリントジョブデータの個々に関する印刷ジョブ情報テーブル５０１を作成し、そのテーブル５０１内にジョブＩＤ５０２，ドキュメント名５０３、スプールファイルパス５０４を設定する。
【００６７】
次に、ステップＳ７０４において、受け付けたプリントジョブデータがグループジョブであるため、グループＩＤ５０５を設定する。このグループＩＤは、グルーピングされた個々の印刷ジョブに対して同じＩＤが設定されるものとする。そして、ステップＳ７０５において、データ送信部４０２に対して、ステップＳ７０２で受け付けたプリントジョブデータの送信指示をジョブＩＤ５０２を伴わせて行う。このステップＳ７０５の送信指示は後述するステップＳ８０１に対応する。そして、ステップＳ７０６において、アプリケーション３０１がグルーピングの終了を指示したか否かを判断し、グルーピング終了の指示が行われていなければ、まだ送信するグループジョブが存在すると判断し、ステップＳ７０２に戻り、上述した処理を繰り返す。
【００６８】
繰り返しの処理について詳しく説明すると、次のプリントジョブデータをジョブ制御ポートモニタ３２１から受信する。そして、新たに受信したプリントジョブデータに関する印刷ジョブ情報テーブル５０１を作成し、そのテーブル５０１内に最初のグループジョブにおけるプリントジョブデータとは異なるジョブＩＤ５０２，ドキュメント名５０３、スプールファイルパス５０４を設定し、上に説明したステップＳ７０４、７０５の処理を繰り返し行う。ステップＳ７０５の処理においては、データ送信部４０２において、生成された前回指定したジョブＩＤ５０２とは異なるジョブＩＤ５０２を併せてプリントジョブデータの送信指示を行う。
【００６９】
また、ステップＳ７０６において、アプリケーション３０１がグルーピング終了を指示（EndGroupJob）したと判断した場合にはステップＳ７０７へ進み、グループ終了フラグ５０６を設定し、この処理を終了する。
【００７０】
一方、ステップＳ７０１において、アプリケーション３０１が印刷ジョブのグルーピング開始を示すジョブ制御プリントサービス３２２のＡＰＩ（StartGroupJob）を呼び出していなければ、グルーピングを指定されていない印刷ジョブであると認識し、ステップＳ７０８へ進む。尚、ステップＳ７０１の判断には、グループジョブではなく、通常の単独のデータファイルを印刷するという識別子を認識させるようにしても良い。
【００７１】
ステップＳ７０８では、ジョブ制御ポートモニタ３２１からプリントジョブデータを受信し、通常の印刷ジョブとして受け付ける。そして、ステップＳ７０９において、受信したプリントジョブデータに関する印刷ジョブ情報テーブル５０１を作成し、そのテーブル５０１内にジョブＩＤ５０２，ドキュメント名５０３、スプールファイルパス５０４を設定する。次に、ステップＳ７１０において、データ送信部４０２に対して、ステップＳ７０８で受け付けたプリントジョブデータの送信指示を行い、この処理を終了する。このステップＳ７０８及びＳ７０９の処理において、グループジョブが指定されていない場合に、アプリケーションデータに基づく単独の印刷ジョブを受け取り、該受け取った印刷ジョブを１つのセッションで画像形成装置に転送するようにし、画像形成装置に印刷出力を行わせることができる。
【００７２】
このように本形態によれば、ジョブ制御プリントサービス３２２の機能を設けることにより、グループジョブと、各々のプリントジョブで通信セッションを個別に接続及び切断するプリントジョブと、の双方を特にプリンタデバイスに特別な仕組みを設けることなく実現することができる。
【００７３】
次に、ジョブ制御プリントサービス３２２のデータ送信部４０２がグルーピングされた複数のプリントジョブデータをプリンタデバイス１０５との通信のコネクションを切断することなく、プリンタデバイス１０５へ転送する処理について説明する。
【００７４】
図８は、データ送信部４０２の転送処理を示すフローチャートである。この処理は図７のフローチャートのステップＳ７０５において、ジョブ管理部４０１からデータ送信部４０２に対して送信指示が行われることに応じて実行される。
【００７５】
まずステップＳ８０１において、ステップＳ７０５の送信指示によりジョブ管理部４０１から送信指示を受け付けると、該当する印刷ジョブ情報テーブル５０１をステップＳ７０５で指定されたジョブＩＤ５０２に基づき取得し、ステップＳ８０２において、グループジョブであるか否かを判断する。ここで、検索された印刷ジョブ情報テーブル５０１のグループＩＤ５０６が設定されていればグループジョブであると判断し、ステップＳ８０３へ進む。
【００７６】
このステップＳ８０３では、図９に示すように、プリンタデバイス１０５に対して印刷プロトコルに従いプリントジョブデータを送信するための送信コネクション接続を行う。そして、ステップＳ８０４において、ステップＳ８０１で指示されたプリントジョブデータをプリンタデバイス１０５へ転送する。次に、ステップＳ８０５において、このプリントジョブデータでグループジョブの終了か否かを判断する。ここで、処理中の指定されたジョブＩＤ５０２に基づく印刷ジョブ情報テーブル５０１のグループ終了フラグ５０６が設定されていなければ、ステップＳ８０６へ進み、ジョブ管理部４０１からの印刷指示を受けると、ステップＳ８０４へ進み、グルーピングされたプリントジョブデータを転送する。
【００７７】
また、ステップＳ８０５において、指定されたジョブＩＤ５０２に基づく印刷ジョブ情報テーブル５０１のグループ終了フラグ８０６が設定されていれば、グループジョブの終了であると判断する。このステップＳ８０５の処理は、ステップＳ８０１において指定されたジョブＩＤ５０２に基づき特定される印刷ジョブ情報テーブル５０１にグループ終了フラグ８０６が設定されているか否かを判断することにより実現される。そして、ステップＳ８０７へ進み、図９に示すように、プリンタデバイス１０５と接続していた通信プロトコルのセッションを切断し、処理を終了する。
【００７８】
一方、ステップＳ８０２において、グループジョブでないと判断した場合はステップＳ８０８へ進み、通常の印刷ジョブとしてプリンタデバイス１０５に対して印刷プロトコルのコネクション接続を行う。そして、ステップＳ８０９において、プリントジョブデータを送信し、ステップＳ８０７において、プリンタデバイス１０５とのコネクションを切断する。
【００７９】
尚、上述した図８における説明では、ジョブ管理部４０１からデータ送信部に対して、ジョブＩＤ５０２をグループジョブの数だけ指定して、該当する印刷ジョブ情報テーブル５０１を取得させるように説明してきたがこれには限定されない。例えば、Ｓ７０５の処理に伴いグループジョブＩＤ５０５をデータ送信部４０２に指定し、データ送信部４０２に指定されたグループジョブＩＤを含む印刷ジョブ情報テーブル５０１を検索させ取得させるようにしてもよい。つまり、グルーピングされた印刷ジョブ情報テーブルをデータ送信部４０２が取得できる方法であれば適宜様々な方式を適用できる。
【００８０】
図９は、データ送信部とプリンタデバイスとの間でジョブグルーピング機能を実現するための印刷プロトコルの流れを示す図である。図９に示すように、１つの通信セッションの中で、複数のプリントジョブデータを送信している。
【００８１】
尚、Windows（登録商標）の標準ＴＣＰ／ＩＰポートモニタにジョブを投入すると個々の印刷ジョブでセッション開始と切断が繰り返されるが、本実施形態では、独自のジョブ制御ポートモニタ３２１を介してデータ送信部４０２に印刷ジョブを投入することを実現し、複数の印刷ジョブのセッションをジョブ毎に切断することなく、１つのセッションで送信できるように構成されている。
【００８２】
図１０は、プリントジョブデータの構成の一例を示す図である。図１０に示すように、ジョブスタート（job Start）、印刷設定情報、記述データ及びジョブエンド（Job End）で構成される。図９におけるプリントジョブデータがこの図１０に示されるプリントジョブデータに相当する。
【００８３】
図１１は、プリンタデバイスへ転送されるジョブパケットの構成を示す図である。尚、このジョブパケット（以降、「パケット」と略記）は、ＴＣＰ／ＩＰ層とは別に図１０に示すプリントジョブデータそのものがパケット化されて送信される場合のパケットの構造を示すものである。
【００８４】
図１１に示す縦軸はバイトを示し、横軸は各バイトのビットを示している。以下、順にパケットの構造について説明する。
【００８５】
まず、０〜１バイト目のオペレーションコードは、パケットの機能を示す長さ２バイトのＩＤである。このオペレーションコートとしては、以下の値を取ることができる。
【００８６】
0x0201  ジョブ開始オペレーション
0x0202  ジョブ属性設定オペレーション
0x0204  ＰＤＬデータ送信オペレーション
0x0205  ジョブ終了オペレーション。
【００８７】
次に、２〜３バイト目のブロック番号はパケットを送信した側が返答を要求する場合に、受信側からの返答が送信側のどの返答要求に対するものであるか、その対応を取るために使用する番号である。例えば、ブロック番号＝１，２，３というパケットを立て続けに送信した時に、ブロック番号＝２というエラーパケットが帰ってきた場合、送信側では、２番目に送ったジョブパケットにエラーが発生したことを特定することが可能である。
【００８８】
次に、４〜５バイト目のパラメータ長はデータ部のバイト長さを示す領域で、０〜６４Ｋバイトまでを示すことが可能である。
【００８９】
次に、６〜７バイト目はパケットの各種フラグを示す領域で、それぞれ以下の値を示す。
【００９０】
エラーフラグ：この値が「１」の場合、プリンタデバイスで何らかのエラーが発生したことを示す。このフラグはプリンタデバイスからコンピュータへ送られる返信パケットに付加される。
【００９１】
通知フラグ：この値が「１」の場合、コンピュータからの要求パケットに対する返答ではなく、プリンタデバイスが何らかの通知事項があることをコンピュータに通知することを示している。
【００９２】
継続フラグ：この値が「１」の場合、データ部にすべてのデータが入らなかったため、次のパケットで残りのデータが送られることを示す。尚、次のパケットは前のパケットと同じオペレーション・コード、ブロック番号を設定しなくてはならない。
【００９３】
返答要求：コンピュータからプリンタデバイスに対して返答パケットが必要な場合に、「１」をセットする。「０」のときは要求パケットが正常に処理された場合であり、返答は返さない。また、プリンタデバイスでエラーが発生した場合には、返答要求の０／１に関わらず、常にエラーフラグを「１」に設定した返答パケットを送出する。
【００９４】
次に、８〜９バイト目のユーザＩＤ及び１０〜１１バイト目のパスワードは、要求パケットでできる操作にセキュリティ的制限を設ける際の認証に使われる領域である。本実施形態には影響しない。
【００９５】
次に、１２バイト目以降はオペレーションコードに対応した追加データを格納する領域である。ジョブ開始オペレーションの場合、追加データとしてジョブの実行モードが記述される。ここで、指定可能な実行モードを以下に挙げる。
【００９６】
0x01：ジョブの通常実行
当該ジョブは通常ジョブとして印刷装置のキューの最後に追加され、スケジューリングが回ってきたら印刷処理を行う。
【００９７】
0x04：ジョブの割り込み実行
当該ジョブは割り込みジョブとして扱い、すべてのジョブを処理を停止して当該ジョブの印刷を優先して実行する。
【００９８】
以上説明したように、実施形態によれば、コンピュータ（クライアントＰＣやプリントサーバ）において、複数の印刷ジョブをグルーピングし、グループジョブとしてプリンタデバイスへ転送することで、複数のコンピュータからコンピュータ毎に複数の印刷ジョブが送信されたとしても、プリンタデバイスではコンピュータ毎にグルーピングされた印刷ジョブを受信し、確実に印刷処理を行うことができる。
【００９９】
尚、本発明は複数の機器（例えば、ホストコンピュータ，インタフェース機器，リーダ，プリンタなど）から構成されるシステムに適用しても、１つの機器からなる装置（例えば、複写機，ファクシミリ装置など）に適用しても良い。
【０１００】
また、本発明の目的は前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（ＣＰＵ若しくはＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【０１０１】
この場合、記録媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【０１０２】
このプログラムコードを供給するための記録媒体としては、例えばフロッピー（登録商標）ディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【０１０３】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１０４】
更に、記録媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【０１０５】
【図１】本実施形態における情報処理システムの構成を示すブロック図である。
【図２】本実施形態における情報処理装置の構成を示すブロック図である。
【図３】印刷処理システムにおける印刷ジョブの流れを説明するための図である。
【図４】ジョブ制御プリントサービスの構成を示す図である。
【図５】ジョブ管理部４０１が管理する印刷ジョブ情報テーブルの構成の一例を示す図である。
【図６】グルーピング指定処理を示すフローチャートである。
【図７】ジョブ管理部４０１のジョブ処理を示すフローチャートである。
【図８】データ送信部４０２の転送処理を示すフローチャートである。
【図９】データ送信部とプリンタデバイスとの間でジョブグルーピング機能を実現するための印刷プロトコルの流れを示す図である。
【図１０】プリントジョブデータの構成の一例を示す図である。
【図１１】プリンタデバイスへ転送されるジョブパケットの構成を示す図である。
【符号の説明】
【０１０６】
１０１  プリントサーバ
１０２  クライアントＰＣ
１０３  クライアントＰＣ
１０４  クライアントＰＣ
１０５  ネットワークプリンタ
１０６  ネットワーク
２００  ＣＰＵ
２０１  ＲＯＭ
２０２  ＲＡＭ
２０３  ＦＤドライブ
２０４  ＦＤ
２０５  ＨＤ
２０６  キーボード
２０７  ディスプレイ
２０８  システムバス
２０９  インタフェース
３０１  アプリケーションプログラム
３０２  プリンタドライバ
３０４  スプーラ
３０５  ＯＳポートモニタ
３０６  デバイス情報コントロールモジュール
３２１  ジョブ制御ポートモニタ
３２２  ジョブ制御プリントサービス
３２３  プリンとマネージャ
３２６  デバイス情報コントロールモジュール
４０１  ジョブ管理部
４０２  データ送信部
【図１】
2005174122.tif 000003
【図２】
2005174122.tif 000004
【図３】
2005174122.tif 000005
【図４】
2005174122.tif 000006
【図５】
2005174122.tif 000007
【図６】
2005174122.tif 000008
【図７】
2005174122.tif 000009
【図８】
2005174122.tif 000010
【図９】
2005174122.tif 000011
【図１０】
2005174122.tif 000012
【図１１】
2005174122.tif 000013