(57)【要約】【課題】  処理の段階に応じてジョブの単位が変わる場合において、各段階におけるジョブの情報を他の段階におけるジョブの情報と関連付けて提供することができる印刷処理装置の提供を目的とする。【解決手段】  ネットワークを介して接続されるクライアント装置からの印刷要求に基づく印刷ジョブの管理を印刷処理の段階に応じて行い、該管理される印刷ジョブの情報を前記クライアント装置に提供する印刷処理装置であって、前記クライアント装置からの印刷ジョブの一覧情報の提供要求に対し、前記印刷処理の段階における第一の段階のジョブの状態を識別する第一のジョブ状態識別情報と、前記第一の段階のジョブに基づき発生し、該ジョブとはその粒度を異にするジョブである第二の段階のジョブの状態を識別する第二のジョブ状態識別情報とを関連付けて前記クライアント装置に提供するジョブ情報提供手段を有することにより上記課題を解決する。【選択図】  図２
2005063411.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して接続されるクライアント装置からの印刷要求に基づく印刷ジョブの管理を印刷処理の段階に応じて行い、該管理される印刷ジョブの情報を前記クライアント装置に提供する印刷処理装置であって、
前記クライアント装置からの印刷ジョブの一覧情報の提供要求に対し、前記印刷処理の段階における第一の段階のジョブの状態を識別する第一のジョブ状態識別情報と、前記第一の段階のジョブに基づき発生し、該ジョブとはその粒度を異にするジョブである第二の段階のジョブの状態を識別する第二のジョブ状態識別情報とを関連付けて前記クライアント装置に提供するジョブ情報提供手段を有することを特徴とする印刷処理装置。
【請求項２】
前記第一の段階のジョブに基づいて、複数の前記第二の段階のジョブを発生させることを特徴とする請求項１記載の印刷処理装置。
【請求項３】
前記ジョブ情報提供手段は、所定のメソッドの呼び出しに応じて前記第一及び第二のジョブ状態識別情報を提供し、
前記クライアント装置からの要求は、前記所定のメソッドの呼び出し要求であることを特徴とする請求項１又は２記載の印刷処理装置。
【請求項４】
前記クライアント装置からの印刷ジョブの一覧情報の提供要求には、前記第一の段階のジョブを一意に識別する第一のジョブ識別情報が含まれており、
前記ジョブ情報提供手段は、前記第一のジョブ識別情報に対応する第一の段階のジョブの前記第一のジョブ状態識別情報と、該第一の段階のジョブに属する第二の段階のジョブを一意に識別する第二のジョブ識別情報とを前記クライアント装置に提供することを特徴とする請求項１乃至３いずれか一項記載の印刷処理装置。
【請求項５】
前記ジョブ情報提供手段は、前記クライアント装置からの印刷ジョブの一覧情報の提供要求に含まれている前記第一のジョブ識別情報に対応する第一の段階のジョブに属する前記第二の段階のジョブの数を示す情報を更に前記クライアント装置に提供することを特徴とする請求項４記載の印刷処理装置。
【請求項６】
前記所定のメソッドは、少なくとも前記第一のジョブ識別情報を入力情報とし、少なくとも前記第一のジョブ識別情報に対応する前記第一の段階のジョブの前記第一のジョブ状態識別情報と、該第一の段階のジョブに属する前記第二の段階のジョブの前記第二のジョブ識別情報とを出力情報に含むことを特徴とする請求項４又は５記載の印刷処理装置。
【請求項７】
前記所定のメソッドは、前記入力情報に指定された前記第一のジョブ識別情報に対応する第一の段階のジョブに属する前記第二の段階のジョブの数を示す情報を更に前記出力情報に含むことを特徴とする請求項６記載の印刷処理装置。
【請求項８】
前記第一の段階のジョブごとに前記第一のジョブ状態識別情報を管理するジョブ状態識別情報管理手段と、
前記第一の段階のジョブの状態が変化したときに、前記ジョブ状態識別情報管理手段における前記第一のジョブ状態識別情報の値を更新するジョブ状態識別情報更新手段とを有し、
前記ジョブ情報提供手段は、前記ジョブ状態識別情報管理手段より取得した前記第一のジョブ状態識別情報を前記クライアント装置に提供することを特徴とする請求項１乃至７いずれか一項記載の印刷処理装置。
【請求項９】
前記ジョブ状態識別情報更新手段は、前記第一の段階のジョブに基づいて前記第二の段階のジョブが発生したときに、前記ジョブ状態識別情報管理手段における該第一の段階のジョブの前記第一のジョブ状態識別情報の値を更新することを特徴とする請求項８記載の印刷処理装置。
【請求項１０】
前記ジョブ状態識別情報更新手段は、前記第一の段階のジョブに属する全ての前記第二の段階のジョブの状態が変化したときに、前記ジョブ状態識別情報管理手段における該第一の段階のジョブの前記第一のジョブ状態識別情報の値を更新することを特徴とする請求項８又は９記載の印刷処理装置。
【請求項１１】
前記第一の段階のジョブと該第一の段階のジョブに属する前記第二の段階のジョブとの対応付けを管理するジョブ対応付け管理手段を更に有することを特徴とする請求項１乃至１０いずれか一項記載の印刷処理装置。
【請求項１２】
前記クライアント装置からの前記第一の段階のジョブに対する所定の操作の実行要求に基づいて、該ジョブに対して前記所定の操作を実行するジョブ操作手段を更に有し、
前記ジョブ操作手段は、前記操作要求に係るジョブに前記第二の段階のジョブが存在しないときに、前記操作要求に係るジョブについて前記所定の操作を実行することを特徴とする請求項１乃至１１いずれか一項記載の印刷処理装置。
【請求項１３】
前記ジョブ操作手段は、前記操作要求に係るジョブに前記第二の段階のジョブが存在するときは、該第二の段階のジョブのうち、前記第二の段階のジョブに基づいて発生する第三の段階のジョブが存在しないジョブについて前記所定の操作を実行することを特徴とする請求項１２記載の印刷処理装置。
【請求項１４】
前記ジョブ操作手段は、前記所定の操作の実行対象となったジョブの状態に応じ、該ジョブについて前記所定の操作の実行が可能なときに、前記所定の操作を実行することを特徴とする請求項１２又は１３記載の印刷処理装置。
【請求項１５】
前記所定の操作は、前記ジョブのキャンセルであることを特徴とする請求項１２乃至１４いずれか一項記載の印刷処理装置。
【請求項１６】
前記第一の段階のジョブは、一つ以上の文書ファイルに対する印刷要求ごとに発生し、
前記第二の段階のジョブは、一つの文書ファイルごとに発生することを特徴とする請求項１乃至１５いずれか一項記載の印刷処理装置。
【請求項１７】
前記第一の段階のジョブは、前記印刷要求に基づいて、前記印刷要求に係る全ての文書ファイルを所定の画像処理装置が処理可能な印刷データに変換する処理に係るジョブであり、
前記第二の段階のジョブは、前記印刷データを保持するスプーラにおける処理に係るジョブであることを特徴とする請求項１６記載の印刷処理装置。
【請求項１８】
請求項１３記載の第三の段階のジョブは、前記画像処理装置に前記印刷データを印刷させる処理に係るジョブであることを特徴とする請求項１７記載の印刷処理装置。
【請求項１９】
前記画像処理装置に前記印刷データの印刷処理の状態を問い合わせる印刷状態問い合わせ手段を更に有し、
前記印刷状態問い合わせ手段による問い合わせ結果に基づいて、前記第三の段階のジョブの状態を変化させることを特徴とする請求項１８記載の印刷処理装置。
【請求項２０】
請求項１８又は１９記載の印刷処理装置からの要求に基づいて印刷処理を実行することを特徴とする画像処理装置。
【請求項２１】
請求項１９記載の印刷処理装置からの問い合わせに応じて、前記印刷処理の状態に関する情報を該印刷処理装置に送信することを特徴とする請求項２０記載の画像処理装置。
【請求項２２】
所定の文書ファイルを管理する文書管理装置であって、
請求項１乃至１９いずれか一項記載の印刷処理装置からの要求に応じて、前記印刷処理装置が所定の画像処理装置に印刷させる文書ファイルを前記印刷処理装置に送信することを特徴とする文書管理装置。
【請求項２３】
印刷要求に基づく印刷ジョブの管理を印刷処理の段階に応じて行う印刷処理装置と、前記印刷処理装置から提供される前記印刷ジョブの情報を表示させる表示データを生成する表示データ生成装置とを有する印刷処理システムであって、
前記印刷処理装置は、
前記表示データ生成装置からの前記印刷ジョブの一覧情報の提供要求に対し、前記印刷処理の段階における第一の段階のジョブの状態を識別する第一のジョブ状態識別情報と、前記第一の段階のジョブに基づき発生し、該ジョブとはその粒度を異にするジョブである第二の段階のジョブの状態を識別する第二のジョブ状態識別情報とを関連付けて前記表示データ生成装置に提供するジョブ情報提供手段を有し、
前記表示データ生成装置は、前記第一のジョブ状態識別情報と前記第二のジョブ状態識別情報とに基づいて前記第一の段階のジョブの状態と前記第二の段階のジョブの状態とを表示させる前記表示データを生成する表示データ生成手段を有することを特徴とする印刷処理システム。
【請求項２４】
前記表示データ生成装置は、前記表示データを表示させる表示手段を有する表示装置に対し、ネットワークを介して前記表示データを送信することを特徴とする請求項２３記載の印刷処理システム。
【請求項２５】
前記表示データは、前記第一の段階のジョブの状態と前記第二の段階のジョブの状態とを関連付けて表示させることを特徴とする請求項２３又は２４記載の印刷処理システム。
【請求項２６】
前記表示データは、前記第一の段階のジョブの状態と前記第二の段階のジョブの状態とを階層的に表示させることを特徴とする請求項２５記載の印刷処理システム。
【請求項２７】
ネットワークを介して接続されるクライアント装置からの印刷要求に基づく印刷ジョブの管理を印刷処理の段階に応じて行い、該管理される印刷ジョブの情報を前記クライアント装置に提供する印刷処理装置の制御方法であって、
前記クライアント装置からの印刷ジョブの一覧情報の提供要求に対し、前記印刷処理の段階における第一の段階のジョブの状態を識別する第一のジョブ状態識別情報と、前記第一の段階のジョブに基づき発生し、該ジョブとはその粒度を異にするジョブである第二の段階のジョブの状態を識別する第二のジョブ状態識別情報とを関連付けて前記クライアント装置に提供するジョブ情報提供手順を有することを特徴とする印刷処理装置の制御方法。
【請求項２８】
前記クライアント装置からの印刷ジョブの一覧情報の提供要求には、前記第一の段階のジョブを一意に識別する第一のジョブ識別情報が含まれており、
前記ジョブ情報提供手順は、前記第一のジョブ識別情報に対応する第一の段階のジョブの前記第一のジョブ状態識別情報と、該第一の段階のジョブに属する第二の段階のジョブを一意に識別する第二のジョブ識別情報とを前記クライアント装置に提供することを特徴とする請求項２７記載の印刷処理装置の制御方法。
【請求項２９】
前記ジョブ情報提供手順は、前記クライアント装置からの印刷ジョブの一覧情報の提供要求に含まれている前記第一のジョブ識別情報に対応する第一の段階のジョブに属する前記第二の段階のジョブの数を示す情報を更に前記クライアント装置に提供することを特徴とする請求項２８記載の印刷処理装置の制御方法。
【請求項３０】
前記第一の段階のジョブの状態が変化したときに、前記第一のジョブ状態識別情報の値を更新するジョブ状態識別情報更新手順を更に有することを特徴とする２７乃至２９いずれか一項記載の印刷処理装置の制御方法。
【請求項３１】
前記ジョブ状態識別情報更新手順は、前記第一の段階のジョブに基づいて前記第二の段階のジョブが発生したときに、該第一の段階のジョブの前記第一のジョブ状態識別情報の値を更新することを特徴とする請求項３０記載の印刷処理装置の制御方法。
【請求項３２】
前記ジョブ状態識別情報更新手順は、前記第一の段階のジョブに属する全ての前記第二の段階のジョブの状態が変化したときに、該第一の段階のジョブの前記第一のジョブ状態識別情報の値を更新することを特徴とする請求項３０又は３１記載の印刷処理装置の制御方法。
【請求項３３】
ネットワークを介して接続されるクライアント装置からの印刷要求に基づく印刷ジョブの管理を印刷処理の段階に応じて行い、該管理される印刷ジョブの情報を前記クライアント装置に提供する印刷処理装置に、
前記クライアント装置からの印刷ジョブの一覧情報の提供要求に対し、前記印刷処理の段階における第一の段階のジョブの状態を識別する第一のジョブ状態識別情報と、前記第一の段階のジョブに基づき発生し、該ジョブとはその粒度を異にするジョブである第二の段階のジョブの状態を識別する第二のジョブ状態識別情報とを関連付けて前記クライアント装置に提供するジョブ情報提供手順を実行させることを特徴とする印刷処理装置の制御プログラム。
【請求項３４】
ネットワークを介して接続されるクライアント装置からの印刷要求に基づく印刷ジョブの管理を印刷処理の段階に応じて行い、該管理される印刷ジョブの情報を前記クライアント装置に提供する印刷処理装置に、
前記クライアント装置からの印刷ジョブの一覧情報の提供要求に対し、前記印刷処理の段階における第一の段階のジョブの状態を識別する第一のジョブ状態識別情報と、前記第一の段階のジョブに基づき発生し、該ジョブとはその粒度を異にするジョブである第二の段階のジョブの状態を識別する第二のジョブ状態識別情報とを関連付けて前記クライアント装置に提供するジョブ情報提供手順を実行させることを特徴とする印刷処理装置の制御プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷処理装置、画像処理装置、文書管理装置、印刷処理システム、印刷処理装置の制御方法、印刷処理装置の制御プログラム及び記録媒体に関し、特に印刷要求に基づいて実行するジョブの情報を提供する印刷処理装置、画像処理装置、文書管理装置、印刷処理システム、印刷処理装置の制御方法、印刷処理装置の制御プログラム及び記録媒体に関する。
【背景技術】
【０００２】
文書データを印刷する場合、例えばＷｉｎｄｏｗｓ（登録商標）ＯＳ等においては、ユーザは、印刷する文書データを対象として当該文書データに対応したアプリケーションを起動し、印刷を指示する。文書データは、アプリケーションからの要求を受けたプリンタドライバによって、印刷先のプリンタが処理可能な印刷データに変換される。更に、印刷データはスプーラに対して出力され、スプーラからポートモニタを経てプリンタに送信される。
【０００３】
印刷要求を行ったユーザは、自分が要求した印刷処理が正常に行われたか否かをＯＳによって提供されているツールを用いて確認することができる。このツールによって閲覧対象となるのは、スプーラにおけるジョブであることが一般である。
【０００４】
なお、特許文献１には、一つの印刷要求に基づいて複数のプリンタに文書データを印刷させる場合に、当該印刷要求に対応する親ジョブと、それぞれのプリンタに対応する子ジョブとの関連が確認できるようにジョブ情報を提供する発明が示されている。
【特許文献１】特開２００２−１６６６３０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、ユーザが、複数の文書ファイルの印刷を一度に要求した場合、印刷要求に基づく処理の段階に応じて、印刷要求に係る全ての文書ファイルについての印刷処理を単位とする第一のジョブと、一つの文書ファイルに対する印刷処理を単位とする第二のジョブとを定義することができる。
【０００６】
すなわち、第一のジョブは、印刷要求を受け付けた段階において発生するジョブである。また、第二のジョブは、第一のジョブに基づいて文書ファイル単位で印刷処理を実行する段階において発生するジョブである。
【０００７】
ユーザがその状態を確認することができるスプーラにおけるジョブは、上記における第二のジョブに該当する。したがって、ユーザは、一つ一つの文書ファイルの印刷処理の状態について確認することはできたが、一つの印刷要求の対象とされた全ての文書ファイルに対する処理の完了を一目で確認することはできなかった。
【０００８】
特に、複数のクライアントからの要求を受けて印刷処理を実行するサーバ機におけるスプーラについては複数のユーザからの印刷要求が混在するため、当該スプーラにおける第二のジョブのそれぞれの状態を確認することができても、第一のジョブの状態を把握するのは非常に手間であったという問題がある。
【０００９】
また、特許文献１における発明は、印刷を実行させるプリンタにおけるジョブの状態の確認を容易にするためのものであり、処理の段階に応じてジョブの単位が変化する場合において各段階のジョブの状態を提供するものではない。
【００１０】
本発明は、上記の点に鑑みてなされたものであって、処理の段階に応じてジョブの単位が変わる場合において、各段階におけるジョブの情報を他の段階におけるジョブの情報と関連付けて提供することができる印刷処理装置、印刷処理システム、前記印刷処理装置の制御方法、前記印刷処理装置の制御プログラム及び記録媒体、並びに前記印刷処理装置からの要求に基づいて文書データを印刷する画像処理装置、前記印刷処理装置が前記画像処理装置に印刷させる対象とする文書データを前記印刷処理装置に提供する文書管理装置の提供を目的とする。
【課題を解決するための手段】
【００１１】
そこで上記課題を解決するため、本発明は、請求項１に記載されるように、ネットワークを介して接続されるクライアント装置からの印刷要求に基づく印刷ジョブの管理を印刷処理の段階に応じて行い、該管理される印刷ジョブの情報を前記クライアント装置に提供する印刷処理装置であって、前記クライアント装置からの印刷ジョブの一覧情報の提供要求に対し、前記印刷処理の段階における第一の段階のジョブの状態を識別する第一のジョブ状態識別情報と、前記第一の段階のジョブに基づき発生し、該ジョブとはその粒度を異にするジョブである第二の段階のジョブの状態を識別する第二のジョブ状態識別情報とを関連付けて前記クライアント装置に提供するジョブ情報提供手段を有することを特徴とする。
【００１２】
このような印刷処理装置では、クライアント装置からの印刷要求に応じて実行する印刷処理における第一の段階におけるジョブと、そのジョブに基づいて発生する第二の段階のジョブとの情報とを関連付けてクライアントに提供することができる。
【００１３】
また上記課題を解決するため、本発明は、上記印刷処理装置からの要求に基づいて文書データを印刷する画像処理装置、上記印刷処理装置が前記画像処理装置に印刷させる対象とする文書データを上記印刷処理装置に提供する文書管理装置、上記印刷処理装置を有する印刷処理システム、上記印刷処理装置の制御方法、前記印刷処理装置の制御方法をコンピュータに実行させるためのプログラム、又は前記プログラムを記録したコンピュータ読み取り可能な記録媒体としてもよい。
【発明の効果】
【００１４】
本発明によれば、処理の段階に応じてジョブの単位が変わる場合において、各段階におけるジョブの情報を他の段階におけるジョブの情報と関連付けて提供することができる印刷処理装置、印刷処理システム、前記印刷処理装置の制御方法、前記印刷処理装置の制御プログラム及び記録媒体、並びに前記印刷処理装置からの要求に基づいて文書データを印刷する画像処理装置、前記印刷処理装置が前記画像処理装置に印刷させる対象とする文書データを前記印刷処理装置に提供する文書管理装置を提供することができる。
【発明を実施するための最良の形態】
【００１５】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、本発明の実施の形態における印刷システムの構成例を示す図である。図１に示されるように、本実施の形態における印刷システム１は、印刷サーバ１０、文書管理サーバ２０、Ｗｅｂサーバ３０、及び端末４０等を有しており、それぞれはインターネットやＬＡＮ等のネットワーク（有線、無線の別を問わない）を介して接続されている。
【００１６】
印刷サーバ１０は、文書データ等をプリンタ５０に印刷させるための印刷機能等をＷｅｂサービスとして提供するコンピュータであり、かかる印刷機能等が実装されている印刷サービス１１を有している。文書管理サーバ２０は、文書データの管理機能をＷｅｂサービスとして提供するコンピュータであり、ＳＯＡＰリスナ２１、文書管理手段２２、及び文書管理ＤＢ２３等から構成されている。ＳＯＡＰリスナ２１は、文書管理手段２２の機能をＳＯＡＰのＲＰＣによって呼び出せるようにするための機能が実装されているモジュールである。文書管理手段２２は、文書管理ＤＢ２３を操作するためのインタフェースを提供するモジュールである。例えば、文書管理手段２２は、文書管理ＤＢ２３より文書データを取得するための文書取得メソッド、文書データの一覧情報を取得すための文書一覧取得メソッド、及び文書管理ＤＢ２３に文書データを登録するための文書登録メソッド等を有している。文書管理ＤＢ２３は、文書データが格納されているデータベースである。
【００１７】
Ｗｅｂサーバ３０は、データ管理サーバ１０や文書管理サーバ２０等の機能をＷｅｂページとして提供するためのいわゆるＷｅｂサーバであり、ｈｔｔｐｄ３１、Ｗｅｂアプリ３２、及びＳＯＡＰプロキシ３３等から構成されている。ｈｔｔｐｄ３１は、端末４０との間におけるＨＴＴＰによる通信を制御するデーモンプログラムである。ｈｔｔｐｄ３１は、端末４０からのＨＴＴＰリクエストを受信すると、ＨＴＴＰリクエストにおいて指定されたＵＲＬに対応するＷｅｂアプリ３２を呼び出し、Ｗｅｂアプリ３２が処理結果として出力したＷｅｂページを端末４０に送信する。
【００１８】
Ｗｅｂアプリ３２は、Ｗｅｂページの生成を主な機能とするいわゆるＷｅｂアプリケーションである。Ｗｅｂアプリ３２は、必要に応じて印刷サーバ１０や文書管理サーバ２０に対して所定の処理要求を行い、その結果を表示するＷｅｂページを生成する。例えば、Ｗｅｂアプリ３２は、文書管理サーバ２０の文書管理ＤＢ２３に管理されている文書データの一覧を表示するＷｅｂページ（以下、「文書一覧ページ」という。）等を生成する。
【００１９】
ＳＯＡＰプロキシ３３は、印刷サーバ１０や文書管理サーバ２０に実装されている各種メソッドをＳＯＡＰのＲＰＣにより呼び出すためのインタフェースをＷｅｂアプリ３２に対して提供するモジュールである。ＳＯＡＰプロキシ３３により、Ｗｅｂアプリ３２は、印刷サーバ１０や文書管理サーバ２０の機能を、ネットワーク通信を意識することなく、透過的にメソッド呼び出しすることが可能となっている。
【００２０】
なお、図中においては、Ｗｅｂアプリ３２は一つのブロックとして示されているが、インスタンスとしては複数存在する。例えば、文書管理一覧ページを生成するためのモジュールや、その他のＷｅｂページを生成するモジュール毎にソースコードが実装されている。
【００２１】
端末４０は、ユーザが印刷システム１を利用するためのインタフェース（Ｗｅｂページ）をＷｅｂブラウザ４１によって提供するＰＣ（Personal Computer）、ＰＤＡ（Personal Digital(Data) Assistants）、又は携帯電話等の通信機能を有する端末である。
【００２２】
なお、図中、端末４０やプリンタ５０は、一つのブロックとして示されているが、物理的に一台の端末やプリンタに限定されるという趣旨ではない。一般的な情報システムと同様、多数の端末やプリンタが接続され得る。
【００２３】
次に、印刷サーバ１０における印刷サービス１１の詳細について説明する。図２は、印刷サーバにおける印刷サービスの機能構成例を示す図である。図２に示されるように、印刷サービス１１は、ＳＯＡＰリスナ１１１、印刷要求受付手段１１２、印刷指示手段１１３、文書アプリ１１４、プリンタドライバ１１５、スプーラ１１６、ポートプログラム１１７、プリンタ制御手段１１８、ポート監視手段１１９、非同期管理手段１２０、文書管理接続手段１２１、印刷ジョブキュー１３１等から構成される。
【００２４】
ＳＯＡＰリスナ１１１は、印刷要求受付手段１１２が有する後述するメソッドを、Ｗｅｂサーバ３０等からＳＯＡＰ（Simple Object Access Protocol）のＲＰＣ（Remote Procedure Call）によって呼び出せるようにするための機能を提供するモジュールである。
【００２５】
印刷要求受付手段１１２は、印刷サービス１１の機能をＳＯＡＰのＲＰＣによって提供するためのメソッドが実装されているモジュールである。例えば、印刷要求受付手段１１２は、文書データの印刷要求をメソッド呼び出しにより受け付けるための印刷メソッドや、印刷要求に基づいて発生するジョブのステータス情報取得メソッド等が実装されている。印刷サービス１１の機能をＳＯＡＰのＲＰＣによって呼び出せるようにすることで、インターネット環境におけるシステム構築において、クライアント側の実装を容易にすることができる。
【００２６】
印刷指示手段１１３は、印刷要求受付手段１１２における印刷メソッド（以下、単に「印刷メソッド」という。）からの印刷要求に応じて、文書アプリ１１４に対して文書データの印刷指示を行うモジュールである（以下、印刷指示手段による印刷指示に係るジョブを「印刷ジョブ」という。）。但し、印刷指示手段１１３は、印刷メソッドから印刷要求を受けたときに直ちに印刷ジョブを実行するわけではない。印刷指示手段１１３は、後述する非同期管理手段１２０と印刷ジョブキュー１３１とを利用することによって、印刷要求とは非同期に印刷ジョブを実行する。
【００２７】
非同期管理手段１２０は、印刷指示手段１１３に対し定期的に印刷ジョブの実行を促すためのプログラムであり、独立したプロセスとして起動されている。
【００２８】
印刷ジョブキュー１３１は、印刷指示手段１１３が印刷メソッドから受けた印刷要求に含まれる、印刷ジョブの内容を規定する情報（以下、「印刷ジョブ情報」という。）を一時的に保存しておくためのファイルである。
【００２９】
文書アプリ１１４は、文書データの生成や編集に利用されるアプリケーションであり、例えば、ワープロソフト、表計算ソフト等の各種アプリケーションが該当する。プリンタドライバ１５は、プリンタを購入すると当該プリンタに添付されて提供されるいわゆるプリンタドライバであり、文書データを印刷先となるプリンタ５０が処理可能な形式の印刷データに変換するためのモジュールである。
【００３０】
スプーラ１１６は、Ｗｉｎｄｏｗｓ（登録商標）等のＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）によって提供されるいわゆるスプーラであり、プリンタドライバ１１５によって生成された印刷データを一時的に保存し、保存されている印刷データを順次ポートプログラム１１７に対して出力する。
【００３１】
ポートプログラム１１７は、一般的にポートモニタと呼ばれるモジュールの位置づけに相当するものであるが、本実施の形態においては予めＯＳによって提供されているポートモニタに代えて、独自に実装されたものが用いられている。すなわち、一般的なポートモニタは、スプーラから出力された印刷データをプリンタに対して出力することをその役割としているが、ポートプログラム１１７は、プリンタに対してではなく、プリンタ制御手段１１８に対して印刷データを出力するように実装されている。
【００３２】
なお、Ｗｉｎｄｏｗｓ（登録商標）においては、予め提供されているポートモニタではなく、独自に実施したモジュールをスプーラに呼び出させるように設定するための機能が提供されている。かかる機能を利用して、スプーラ１１６からポートプログラム１１７が呼び出されるようにしてもよい。
【００３３】
プリンタ制御手段１１８は、ポートプログラム１１７から出力された印刷データをプリンタ５０に対して送信するとともに、プリンタ５０の状態を常時監視するためのプログラムである。プリンタ制御手段１１８は、プリンタ５０に対して印刷データを送信したとき（すなわち、プリンタ５０に対して印刷要求を行ったとき）や、プリンタ５０におけるジョブの状態が変化したとき等に、かかる旨をポート監視手段１１９に通知する。
【００３４】
ポート監視手段１１９は、プリンタ制御手段１１８からの通知に基づいて、当該通知に応じた処理（詳細については後述する。）を実行するプログラムである。
【００３５】
文書管理接続手段１５は、文書管理サーバ２０における文書管理手段２２の機能をＳＯＡＰのＲＰＣによって呼び出すためのインタフェースを提供するモジュールである。
【００３６】
ところで、印刷サーバ１０においては、一つの印刷要求に基づいて実行される処理の段階に応じて、「直列的な関係」を有する複数の種類のジョブが発生する。一つは、印刷指示手段１１３によって処理される、上述した印刷ジョブである。また、一つは、スプーラ１１６によって処理されるジョブ（以下、「スプーラジョブ」という。）である。更に、プリンタ制御手段１１８においてもジョブ（以下、「プリンタジョブ」という。）が発生する。
【００３７】
なお、上記において「直列的な関係」とは、上記３種類のジョブが、それぞれ独立した（無関係な）事象に基づいて発生するのではなく、それぞれが一つ前の処理段階におけるジョブに基づいて発生することを意味している。すなわち、スプーラジョブは印刷ジョブに基づいて発生し、プリンタジョブはスプーラジョブに基づいて発生する。かかるジョブ間の直列的な関係を本実施の形態においてはジョブの親子関係と呼ぶこととする。従って、スプーラジョブは印刷ジョブの親ジョブであり、印刷ジョブはスプーラジョブの子ジョブとなる。同様に、スプーラジョブはプリンタジョブの親ジョブであり、プリンタジョブは印刷ジョブの子ジョブとなる。
【００３８】
印刷ジョブステータスファイル１３２、スプーラジョブステータスファイル１３３、及びプリンタジョブステータスファイル１３４は、それぞれ、印刷ジョブ、スプーラジョブ、プリンタジョブのステータス情報を管理するためのファイルであり、ジョブが発生するときにジョブごとに生成される。
【００３９】
ジョブ対応テーブル１３５は、３種類のジョブの対応づけを管理するためのテーブルである。
【００４０】
次に、印刷サーバ１０のハードウェア構成例について説明する。図３は、本発明の実施の形態における印刷サーバのハードウェア構成例を示す図である。図３の印刷サーバ１０は、それぞれバスBで相互に接続されているドライブ装置１００と、補助記憶装置１０２と、メモリ装置１０３と、演算処理装置１０４と、インタフェース装置１０５とを有するように構成される。
【００４１】
印刷サーバ１０において印刷データの生成処理を実現するプログラムは、CD―ROM等の記憶媒体１０１によって提供される。プログラムを記録した記憶媒体１０１がドライブ装置１００にセットされると、プログラムが記憶媒体１０１からドライブ装置１００を介して補助記憶装置１０２にインストールされる。
【００４２】
補助記憶装置１０２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。メモリ装置１０３は、プログラムの起動指示があったときに、補助記憶装置１０２からプログラムを読み出して格納する。演算処理装置１０４は、メモリ装置１０３に格納されたプログラムに従って印刷サーバ１０に係る機能を実行する。インタフェース装置１０５は例えばモデム、ルータ等で構成され、ネットワークに接続するために用いられる。
【００４３】
なお、文書管理サーバ２０やＷｅｂサーバ３０についても図３に示される印刷サーバ１０と同様のハードウェア構成をとることができる。
【００４４】
以下、図１及び図２の印刷システム１の処理手順について説明する。図４〜図７は、印刷システムにおける文書データの印刷処理を説明するためのシーケンス図である。
【００４５】
ステップＳ１１において、端末４０のユーザが、Ｗｅｂブラウザ４１に表示された文書一覧ページにおいて、印刷対象とする文書データ（以下、「対象データ」という。）を選択し、更に設定ページにおいて印刷処理を規定するパラメータ情報（以下、「印刷パラメータ情報」という。）を設定すると、Ｗｅｂブラウザ４１は、Ｗｅｂサーバ３０に対し対象データの印刷要求を送信する。
【００４６】
図８は、文書一覧ページの表示例を示す図である。文書一覧ページ４１０は、Ｗｅｂブラウザ４１に文書一覧ページ４１０のＵＲＬを入力することにより、Ｗｅｂブラウザ４１に表示させることができる。すなわち、Ｗｅｂブラウザ４１が、ユーザによるＵＲＬの入力に基づいて文書一覧ページ４１０の送信要求をＷｅｂサーバ３０に送信すると、Ｗｅｂサーバ３０のＷｅｂアプリ３２が、文書管理サーバ２０の文書管理手段２２を介して、文書管理ＤＢ２３の所定のフォルダの文書の一覧情報を取得する。Ｗｅｂアプリ３２は、取得した文書データの一覧情報を掲載したＷｅｂページ（文書一覧ページ４１０）を生成する。Ｗｅｂアプリ３２によって生成された文書一覧ページ４１０は、ｈｔｔｐｄ３１によって端末４０に送信され、Ｗｅｂブラウザ４１に表示される。
【００４７】
文書一覧ページ４１０では、領域４１１に各文書データがサムネール表示されている。ここで、一つの文書データが表示されている矩形領域を「セル（cell）」と呼ぶこととすると、各セルは、文書データを選択するためのチェックボタンと、文書データの名前（文書名）を表示する文書名表示領域と、アイコン表示領域とを有している。例えば、文書名が「文書３」の文書データが表示されているセルについては、チェックボタン４１３、文書名表示領域４１４、及びアイコン表示領域４１５がある。
【００４８】
また、アイコン表示領域には、当該文書データを構成する文書ファイルの数と、現在アイコンとして表示されている文書ファイルの順番を示す値とが分数の形式で表示されている。例えば、文書１のアイコン表示領域２１５においては、「１／２」と表示されているが、これは、「文書１は、２つの文書ファイルから構成されており、現在アイコンとして表示されているのは、その２つの文書ファイルのうちの１番目の文書ファイルある。」ということを示している。すなわち、本実施の形態において、「文書データ」とは、一つ以上の文書ファイル（ワープロソフト等により生成されたファイル）の集合に対する概念をいう。一つの文書データを構成する各文書ファイルは、同一のアプリケーションによって生成されたものでもよく、それぞれ異なるアプリケーションによって生成されたものでもよい。なお、本実施の形態においては、文書データを構成する各ファイルの一単位を「セクション」と呼ぶこととする。従って、文書１は、２つのセクションによって構成されている文書データであるということができる。
【００４９】
ユーザが、印刷対象とする文書データに対応するチェックボタンをチェックし（図８においては、文書１をチェック）、文書出力メニュー４１２をクリックすることにより表示される図示しないメニュー項目「印刷」を選択すると、Ｗｅｂブラウザ４１には、設定ページが表示される。
【００５０】
図９は、設定ページの表示例を示す図である。図９の設定ページ４２０は、対象文書表示領域４２１と、印刷条件設定領域４２２とから構成されている。対象文書表示領域４２１においては、文書一覧ページ４１０において印刷対象として選択された対象データの文書名の一覧が表示されている。
【００５１】
印刷条件設定領域４２２においては、印刷対象とするプリンタ、印刷対象とするセクション、原稿のサイズ、印刷方向、及び印刷開始位置等の設定が可能である。
【００５２】
ユーザが、設定ページ４２０において印刷パラメータ情報を設定し、ＯＫボタン４２３をクリックすると、Ｗｅｂブラウザ４１は、上述したステップＳ１１における印刷要求を、印刷パラメータ情報を伴ってＷｅｂサーバ３０に対して送信する。
【００５３】
ステップＳ１１に続いてステップＳ１２に進み、Ｗｅｂサーバ３０のＷｅｂアプリ３２は、印刷サーバ１０の印刷要求受付手段１１２の印刷メソッドをＳＯＡＰのＲＰＣによって呼び出すことにより、対象データの印刷を要求する。印刷メソッドの引数には、設定ページ４２０において設定された印刷パラメータ情報の値が指定される。
【００５４】
ステップＳ１２に続いてステップＳ１３に進み、印刷メソッドが呼び出された印刷サーバ１０の印刷要求受付手段１１２は、印刷指示手段１１３に対し、対象データの印刷を要求する。ステップＳ１３に続いてステップＳ１４に進み、印刷指示手段１１３は、印刷要求に応じて実行すべき印刷ジョブを一意に識別するためのジョブ識別情報としてジョブＩＤを採番する（以下、印刷ジョブに対するジョブＩＤを「印刷ジョブＩＤ」という。）。ここでは、印刷ジョブＩＤとして「００１」が採番されたこととし、印刷ジョブＩＤが００１である印刷ジョブを「印刷ジョブ００１」と呼ぶこととする。
【００５５】
ステップＳ１４に続いてステップＳ１５に進み、印刷指示手段１１３は、採番した印刷ジョブＩＤと印刷メソッドの引数に指定された印刷パラメータ情報とを対応付けた情報を印刷ジョブ情報として印刷ジョブキュー１３１に登録する（Ｓ１５）。
【００５６】
図１０は、印刷ジョブ情報の構成例を示す図である。図１０に示されるように印刷ジョブ情報１３１０は、ジョブＩＤ、対象データＩＤ、ユーザ名、プリンタ名及び対象データ取得先ＵＲＬ等から構成されている。
【００５７】
ジョブＩＤは、ステップＳ１４において採番した印刷ジョブＩＤである。対象データＩＤは、対象データを一意に識別する文書ＩＤである。ユーザ名は、印刷要求元である端末４０のユーザを印刷システム１において一意に識別するための名前である。プリンタ名は、印刷先のプリンタ５０を識別する名前である。対象データ取得先ＵＲＬは、対象データが保存されているサーバ（文書管理サーバ２０）のＵＲＬ（位置情報）を示す。
【００５８】
なお、印刷ジョブ情報には、その他にも設定ページ４２０において設定対象となっている印刷パラメータ情報が含まれるが、図１０においては便宜上省略している。
【００５９】
ステップＳ１５に続いてステップＳ１６に進み、印刷指示手段１１３は、印刷ジョブ００１のステータス情報を管理する印刷ジョブステータスファイル１３２を生成し、生成した印刷ジョブステータスファイル１３２に印刷ジョブ００１のステータス情報の初期値を登録する。
【００６０】
図１１は、印刷ジョブのステータス情報の構成例を示す図である。図１１において、左の列はステータス情報を構成する項目の項目名を示し、右の列はステップＳ１６において登録された各項目の値を示す。図１１に示されるように、ステータス情報は、ジョブＩＤ、ジョブステータス、子ジョブの数、子ジョブＩＤのリスト、ジョブの受付時刻、ジョブ名、クライアント名、及び操作可否フラグ等から構成されている。
【００６１】
ジョブＩＤは、印刷ジョブＩＤを示す。ジョブステータスは、印刷ジョブの状態を識別するための文字列（ジョブ状態識別情報）を示す。ここでは、印刷ジョブが、印刷ジョブキュー１３１において待機中である旨を示す「ｐｅｎｄｉｎｇ」が登録されている。子ジョブの数は、既に発生している子ジョブの数を示す。子ジョブＩＤのリストは、既に発生している子ジョブのジョブＩＤ（子ジョブＩＤ）のリストを示す。ジョブ受付時刻は、印刷ジョブを受け付けた時刻である。ジョブ名は、ユーザから見てジョブを一意に識別可能とするために各ジョブに付けられた名前であり、本実施の形態においては、対象データの文書名を用いている。クライアント名は、印刷要求を行った端末４０の名前である。操作可能フラグは、現在、印刷ジョブが削除や中断等の操作が可能な状態にあるか否かを示すフラグである。ｔｒｕｅのときは、操作可能であることを示し、ｆａｌｓｅのときは、操作できないことを示す。以上で、印刷サーバ１０において、一つの印刷要求に応じて一つの印刷ジョブが発生したことになる。
【００６２】
ステップＳ１６に続いてステップＳ１７に進み、印刷指示手段１１３は、ここでは印刷処理は実行せずに、新たに採番した印刷ジョブＩＤを印刷要求受付手段１１２に対して出力する。印刷ジョブＩＤは、印刷要求受付手段１１２によってＷｅｂアプリ３２に対して送信され、Ｗｅｂアプリ３２によってＷｅｂサーバ３０にユーザごとに保存される（Ｓ１８）。なお、Ｗｅｂサーバ３０に保存された印刷ジョブＩＤは、Ｗｅｂアプリ３２が印刷ジョブの状態を確認するとき等に用いられる。
【００６３】
ステップＳ１８に続いてステップＳ１９に進み、Ｗｅｂアプリ３２は、印刷要求に対する応答として、印刷要求を受け付けた旨を表示するＷｅｂページ（以下、「応答ページ」という。）をＷｅｂブラウザ４１に送信する。応答ページは、Ｗｅｂブラウザ４１によって表示され、ユーザは、印刷要求が正常に受け付けられたことを確認することができる。
【００６４】
一方、印刷サーバ１０においては、非同期管理手段１２０が定期的に印刷指示手段１１３に対して印刷ジョブの実行を促している（Ｓ２０）。非同期管理手段１２０からの呼び出しに基づいて、印刷指示手段１１３は、印刷ジョブキュー１３１を参照し、印刷ジョブキュー１３１に印刷ジョブ情報が登録されているときは、当該印刷ジョブ情報を取得する（Ｓ２１）。ここでは、印刷ジョブ００１のジョブ情報が取得されたこととする。
【００６５】
ステップＳ２１に続いてステップＳ２２に進み、印刷指示手段１１３は、取得した印刷ジョブ情報（図１０）における「対象データ取得先ＵＲＬ」によって特定される文書管理サーバ２０の文書管理手段２２から、同じく印刷ジョブ情報の「対象データＩＤ」によって特定される対象データを取得するため、文書管理手段２２のセッション開設メソッドをＳＯＡＰのＲＰＣによって呼び出すことにより、文書管理手段２２に対し、セッションの開設を要求する。
【００６６】
ステップＳ２２に続いてステップＳ２３に進み、文書管理手段２２は、印刷指示手段１１３とのセッションを開設し、セッション開設メソッドの戻り値として当該セッションを一意に識別するセッションＩＤを印刷指示手段１１３に対して送信する。（Ｓ２４）。ステップＳ２４に続いてステップＳ２５に進み、印刷指示手段１１３は、文書管理手段２２の文書取得メソッドを呼び出すことにより、文書管理手段２２に対し対象データの送信を要求する。文書管理手段２２は、文書管理ＤＢ２３より対象データを検索し、印刷指示手段１１３に対して送信する（Ｓ２７）。
【００６７】
ステップＳ２７に続いて図５のステップＳ２８に進み、印刷指示手段１１３は、文書管理サーバ２０より取得した対象データの中から一つの文書ファイルを取り出し（ここで取り出された文書ファイルを以下、「カレント文書ファイル」という。）、カレント文書ファイルの種別に対応する文書アプリ１１４に対してカレント文書ファイルの印刷を要求する。文書アプリ１１４が、プリンタドライバ１１５に対しカレント文書ファイルの印刷を要求すると（Ｓ２９）、プリンタドライバ１１５は、カレント文書ファイルの印刷データを生成し、生成した印刷データを一時的に保存する（Ｓ３０）。印刷データが保存されると、処理の制御が文書アプリ１１４を経て印刷指示制御手段１１２に復帰する（Ｓ３１、Ｓ３２）。
【００６８】
ステップＳ３２に続いてステップＳ３３に進み、印刷指示手段１１３は、一時的に保存されている印刷データを取得し、当該印刷データをスプーラ１１６に対して出力することによりスプーラ１１６に対して印刷要求を行う。印刷データがスプーラ１１６に対して出力されることにより、印刷ジョブ００１の子ジョブとして、スプーラ１１６において新たなスプーラジョブ（以下、新たに発生したスプーラジョブを「カレントスプーラジョブ」という。）が発生する。なお、印刷ジョブとスプーラジョブとは、処理の対象となるジョブの粒度が必ずしも一致しない。ここで、ジョブの粒度とは当該ジョブを構成する情報の情報量をいい、ジョブの粒度が一致しないとは、印刷ジョブからスプーラジョブへの遷移に応じてそれぞれのジョブを構成する情報の情報量が変化することをいう（以下、本実施の形態において同じ）。図１２〜図１４において各ジョブの粒度の関係を説明する。
【００６９】
図１２は、複数の文書データの印刷が要求されたときに複数の文書データをまとめて印刷する場合の例を示す図である。この場合は、印刷ジョブ、スプーラジョブ、プリンタジョブを通して、処理対象となるジョブの粒度は同じである。すなわち、それぞれのジョブは、印刷が要求された複数の文書に対して一対一に対応する。
【００７０】
また、図１３は、複数の文書データの印刷が要求されたときに文書データごとにまとめて印刷する場合の例を示す図である。この場合は、印刷ジョブが、印刷が要求された複数の文書データに対して一つ発生するのに対し、スプーラジョブ及びプリンタジョブは文書データごとに発生する。したがって、一つの印刷ジョブに基づいて複数のスプーラジョブが発生することになる。
【００７１】
更に、図１４は、セクションごとに印刷する場合の例を示す図である。この場合は、印刷ジョブが、印刷が要求された一つ又は複数の文書データに対して一つ発生するのに対し、スプーラジョブ及びプリンタジョブは、セクションごとに発生する。したがって、一つの印刷ジョブに基づいて図１３の場合よりも更に細かい粒度で複数のスプーラジョブが発生することになる。なお、本実施の形態においては、図１４のケースを例として説明する。
【００７２】
ステップＳ３３に続いてステップＳ３４に進み、スプーラ１１６は、印刷要求に対する応答としてカレントスプーラジョブのスプーラジョブＩＤを印刷指示手段１１３に対して出力する。スプーラ１１６は、周知なように印刷要求に対して非同期に印刷処理を実行するため、ステップＳ３４における応答は、スプーラ１１６が印刷処理を開始する前に行われる。
【００７３】
ステップＳ３４に続いてステップＳ３５に進み、印刷指示手段１１３は、カレントスプーラジョブに対応するスプーラジョブステータスファイルを生成し、生成したスプーラジョブステータスファイルにカレントスプーラジョブのステータス情報を登録する。
【００７４】
図１５は、スプーラジョブのステータス情報の構成例を示す図である。図１５に示されるステータス情報を構成する各項目については、図１１で説明したものと同様である。図１５より、カレントスプーラジョブのジョブＩＤ（スプーラジョブＩＤ）は、「１０」であることが分かる。また、ジョブステータスは、スプーラ１１６によって処理中であることを示す「ｐｒｏｃｅｓｓｉｎｇ」が初期値として登録されている。なお、ジョブ名は、「ファイルＡ」となっている。これは、当該スプーラジョブの処理対象となっている印刷データの元となる文書ファイルのファイル名に基づいている。
【００７５】
ステップＳ３５に続いてステップＳ３６に進み、印刷指示手段１１３は、ジョブ対応テーブル１３５に印刷ジョブ００１とカレントスプーラジョブの親子間の対応づけを登録する。
【００７６】
図１６は、ジョブ対応テーブルの構成例を示す図である。図１６に示されるように、ジョブ対応テーブル１３５は、印刷ジョブＩＤと、スプーラジョブＩＤと、プリンタジョブＩＤとを項目として有するテーブルである。ジョブ対応テーブル１３５の一つの行における各項目の値には親子関係を有するそれぞれのジョブのＩＤが登録される。図１６においては、印刷ジョブ００１の印刷ジョブＩＤとカレントスプーラジョブ（スプーラジョブ１０）のジョブＩＤとが登録された様子を示しており、これによって、印刷ジョブ００１とスプーラジョブ１０との親子関係がジョブ対応テーブル１３５に管理されたこととなる。なお、プリンタジョブについてはまだ発生していないため、プリンタジョブＩＤの値は空となっている。
【００７７】
ステップＳ３６に続いてステップＳ３７に進み、印刷指示手段１１３は、印刷ジョブ００１に対する印刷ジョブステータスファイル１３２（図１１）に登録されているステータス情報を更新する。この処理はフローチャートを用いて説明する。図１７は、ステータス情報の更新処理を説明するためのフローチャートである。
【００７８】
ステップＳ５０１において、印刷指示手段１１３は、ステータス情報における「子ジョブの数」の値をインクリメントする。ここでは、「子ジョブの数」の値は「１」になる。ステップＳ５０１に続いてステップＳ５０２に進み、印刷指示手段１１３は、子ジョブＩＤのリストに、新たに発生したスプーラジョブ１０のスプーラジョブＩＤを追加する。ステップＳ５０２に続いてステップＳ５０３に進み、印刷指示手段１１３は、全ての子ジョブに対する処理が完了したか否かを判断する。ここでの「子ジョブに対する処理」とは、ステップＳ２８からＳ３６（図５）までの処理、すなわち、対象データを構成する全ての文書ファイルに対する処理をいう。
【００７９】
まだ、未処理の文書ファイルが残っているときは（Ｓ５０３でＮｏ）、そのまま処理を抜ける。一方、全ての文書ファイルについて処理が完了したときは（Ｓ５０３でＹｅｓ）ステップＳ５０４に進み、ジョブステータスの値を「ｐｅｎｄｉｎｇ」から「ｐｒｏｃｅｓｓｉｎｇ」に更新する。すなわち、親ジョブのジョブステータスの値は、全ての子ジョブのジョブステータスの値が更新されたとき更新される。
【００８０】
本実施の形態において対象データとなっている文書１は、二つの文書ファイルから構成されている。従って、現時点（一つ目の文書ファイル（ファイルＡ）に対する処理のみが完了した時点）では、全の文書ファイルに対する処理は完了していないためステップＳ５０４の処理は実行されない。
【００８１】
図５に戻る。印刷指示手段１１３は、対象データを構成する残りの文書ファイルについてもステップＳ２８〜Ｓ３７までの処理を繰り返す（Ｓ３８）。したがって、本実施の形態においては、印刷ジョブ００１に基づいてもう一つのスプーラジョブが発生することとなる。その結果、もう一つのスプーラジョブステータスファイル１３３が生成され、ジョブ対応テーブル１３５には、新たなレコードが追加される。
【００８２】
図１８は、更に発生したスプーラジョブに対するスプーラジョブステータスファイルに登録されたステータス情報の例を示す図である。図１６より、更に発生したスプーラジョブのスプーラジョブＩＤは、「２０」であり、ジョブ名は「ファイルＢ」であることが分かる。また、ジョブステータスは、スプーラジョブ１０（図１５）と同様に「ｐｒｏｃｅｓｓｉｎｇ」が初期値として登録されている。
【００８３】
また、図１９は、更に発生したスプーラジョブと印刷ジョブとの対応づけを登録した対応テーブルの例を示す図である。図１９においてスプーラジョブＩＤの値が２０のレコードが更に追加されたレコードである。図１９のジョブ対応テーブル１３５より、現在印刷ジョブとしては印刷ジョブ００１が一つ存在し、印刷ジョブ００１の子ジョブであるスプーラジョブは、スプーラジョブ１０とスプーラジョブ２０とが存在することが分かる。
【００８４】
更に、対象データを構成する全ての文書ファイルに対する処理が完了すると、図１７のステップＳ５０４において説明したように、印刷ジョブ００１のジョブステータスの値が更新される。
【００８５】
図２０は、印刷ジョブの処理によって更新された印刷ジョブステータスファイルにおけるステータス情報の例を示す図である。図２０に示されるように印刷ジョブ００１のジョブステータスの値が、「ｐｅｎｄｉｎｇ」から「ｐｒｏｃｅｓｓｉｎｇ」に更新されている。また、子ジョブの数の値が「２」になっている。更に、子ジョブＩＤのリストとしてスプーラジョブ１０とスプーラジョブ２０とのスプーラジョブＩＤが登録されている。
【００８６】
以上で、印刷ジョブ００１に基づくスプーラ１１６に対するスプーラジョブの投入が完了し、続いてスプーラ１１６によってスプーラジョブが処理される。
【００８７】
図６のステップＳ４１に進み、スプーラ１１６は、一つのスプーラジョブに応じた印刷要求をポートプログラム１１７に対して行う。なお、印刷要求に伴って、印刷データやスプーラジョブＩＤ等がポートプログラム１１７に渡される。
【００８８】
ステップＳ４１に続いてステップＳ４２に進み、ポートプログラム１１７は、プリンタ制御手段１１８に対して印刷要求を行う。印刷要求に伴って、印刷データ及びスプーラジョブＩＤがプリンタ制御手段１１８に渡される。この印刷要求に基づいて、プリンタ制御手段１１８において、スプーラジョブの子ジョブとして新たなプリンタジョブが発生する。なお、本実施の形態においてはスプーラジョブとプリンタジョブとは１対１の関係である。したがって、プリンタ制御手段１１８は、それぞれのプリンタジョブにスプーラジョブＩＤを関連付けて管理しておく。
【００８９】
プリンタ制御手段１１８は、印刷要求に対して非同期に処理を実行するため、印刷処理を行う前にポートプログラム１１７に対して応答を行い（Ｓ４３）、更に、スプーラ１１６に処理の制御が復帰する（Ｓ４４）。
【００９０】
上述したステップＳ４１からＳ４４のまでの処理は、スプーラ１１６に保持されている全てのスプーラジョブに対して実行される（Ｓ４５）。したがって、本実施の形態においてはスプーラジョブ１０及び２０に基づいて、それぞれの子ジョブとして二つのプリンタジョブがプリンタ制御手段１１８において発生する。なお、この時点では、二つのプリンタジョブに対するジョブＩＤは採番されていないため、スプーラジョブ１０、スプーラジョブ２０のそれぞれの子ジョブとして発生したプリンタジョブを仮に「プリンタジョブＡ」、「プリンタジョブＢ」と呼ぶこととする。
【００９１】
以上で、スプーラ１１６によるスプーラジョブの処理が完了し、続いてプリンタ制御手段１１８によってプリンタジョブが処理される。
【００９２】
図７のステップＳ４６に進み、プリンタ制御手段１１８は、一つのプリンタジョブ（プリンタジョブＡ）に応じた印刷要求（すなわち、一つの文書ファイルに基づいて生成された印刷データの印刷要求）をプリンタ５０に対して送信する。この時点で、プリンタジョブに対するプリンタジョブＩＤが採番される。ここでは、プリンタジョブＡに対するプリンタジョブＩＤとして「ＡＢＣ」が採番されたこととする。したがって以下、プリンタジョブＡを「プリンタジョブＡＢＣ」と呼ぶ。
【００９３】
ステップＳ４６に続いてステップＳ４７に進み、プリンタ制御手段１１８は、プリンタジョブＡＢＣのプリンタジョブＩＤと共に、プリンタジョブＡＢＣに応じた印刷要求を完了した旨をポート監視手段１１９に対して通知する。
【００９４】
ステップＳ４７に続いてステップＳ４８に進み、ポート監視手段１１９は、プリンタ制御手段１１８に対してプリンタジョブＡＢＣのプリンタジョブＩＤを引数として、プリンタジョブＡＢＣの親ジョブのスプーラジョブＩＤを問い合わせることにより、プリンタジョブＡＢＣの親ジョブのスプーラジョブＩＤを取得する（Ｓ４９）。
【００９５】
ステップＳ４９に続いてステップＳ５０に進み、ポート監視手段１１９は、プリンタジョブＡＢＣに対応するプリンタジョブステータスファイル１３４を生成し、生成したプリンタジョブステータスファイル１３４にプリンタジョブＡＢＣのステータス情報を登録する。
【００９６】
図２１は、プリンタジョブのステータス情報の構成例を示す図である。図２１に示されるステータス情報を構成する各項目については、図１１で説明したものと同様である。図２１に示されるように、プリンタジョブＡＢＣのジョブステータスには、プリンタにおいて処理中であることを示す「ｅｘｅｃｕｔｉｎｇ」が初期値として登録されている。
【００９７】
ステップＳ５０に続いてステップＳ５１に進み、ポート監視手段１１９は、図１７において説明した処理手順と同様の処理によって、プリンタジョブＡＢＣの親ジョブであるスプーラジョブ１０に対するスプーラジョブステータスファイル１３３のステータス情報を更新する。
【００９８】
図２２は、プリンタジョブの処理によって更新されたスプーラジョブステータスファイルにおけるステータス情報の例を示す図である。図２２に示されるようにスプーラジョブ１０のジョブステータスは、「ｐｒｏｃｅｓｓｉｎｇ」から「ｅｘｅｃｕｔｉｎｇ」に更新されさている。また、子ジョブの数は「１」となり、子ジョブＩＤのリストには、プリンタジョブＡＢＣのプリンタジョブＩＤが登録されている。
【００９９】
ステップＳ５１に続いてステップＳ５２に進み、ポート監視手段１１９は、プリンタジョブＡＢＣのプリンタジョブＩＤを、スプーラジョブ１０に対応づけてジョブ対応テーブル１３５に登録する。
【０１００】
図２３は、プリンタジョブＡＢＣのプリンタジョブＩＤを登録したジョブ対応テーブルの例を示す図である。図２３に示されるように、新たにプリンタジョブＡＢＣのプリンタジョブＩＤ「ＡＢＣ」が、スプーラジョブ１０に対応づけて登録されている。既に、印刷ジョブとスプーラジョブとの対応づけは登録されているため、プリンタジョブＩＤを新たに登録することによって、プリンタジョブと印刷ジョブとの対応づけもジョブ対応テーブル１３５によって管理されたことになる。
【０１０１】
ステップＳ５２に続いてステップＳ５３に進み、ポート監視手段１１９は、プリンタジョブＡＢＣが属する印刷ジョブ００１に属する全てのスプーラジョブのステータスが更新されたか否かを確認することにより、印刷ジョブ００１のジョブステータスを更新する必要があるか否かを判断する。全てのスプーラジョブのステータスが更新されていれば、印刷ジョブ００１のジョブステータスを更新する必要があり、そうでなければ、印刷ジョブ００１のジョブステータスを更新する必要はない。
【０１０２】
なお、プリンタジョブＡＢＣの属する印刷ジョブが印刷ジョブ００１であることは、ジョブ対応テーブル１３５を参照して導き出すことができる。また、印刷ジョブ００１に属する全てのスプーラジョブについても同様にジョブ対応テーブル１３５を参照して導き出すことができる。
【０１０３】
この時点では、スプーラジョブ２０のジョブステータスはまだ更新されていない（「ｐｒｏｃｅｓｓｉｎｇ」のまま）ため、ポート監視手段１１９は、印刷ジョブ００１のジョブステータスは更新せずに、プリンタ制御手段１１８からの印刷要求完了通知（Ｓ４７）に対する応答を行う（Ｓ５４）。
【０１０４】
上述した、ステップＳ４６からＳ５３までの処理は、全てのプリンタジョブに対して実行される（Ｓ５５）。したがって、本実施の形態においては、更に、プリンタジョブＢに対して同様の処理が実行されることになる。
【０１０５】
プリンタジョブＢに対してジョブＩＤが採番され（プリンタジョブＢに対するプリンタジョブＩＤを「ＣＤＥ」とする。したがって、以下プリンタジョブＢを「プリンタジョブＣＤＥ」という。）、プリンタジョブＣＤＥについてステップＳ５２までの処理が実行されると、ステップＳ５３において、ポート監視手段１１９は、印刷ジョブ００１に属するすべてのスプーラジョブのステータスが「ｅｘｅｃｕｔｉｎｇ」に更新されたことを確認し、ステップＳ５６に進む。
【０１０６】
ステップＳ５６において、ポート監視手段１１９は、印刷ジョブ００１に対する印刷ジョブステータスファイルにおけるジョブステータスの値を「ｐｒｏｃｅｓｓｉｎｇ」から「ｅｘｅｃｕｔｉｎｇ」に更新する。
【０１０７】
図２４は、プリンタジョブの処理によって更新された印刷ジョブステータスファイルにおけるステータス情報の例を示す図である。図２４に示されるように、印刷ジョブ００１のジョブステータスの値が「ｅｘｅｃｕｔｉｎｇ」に更新されている。
【０１０８】
ポート監視手段１１９からの応答を受け取ると（Ｓ５７）、プリンタ制御手段１１８は、プリンタ５０における印刷処理の状態をポーリングする（Ｓ５８、Ｓ５９）。すなわち、プリンタ制御手段１１８が、プリンタ５０に対して印刷処理の状態の問い合わせを行い（Ｓ５８）、プリンタ５０が状態を示す応答を行う（Ｓ５９）という処理が繰り返される。
【０１０９】
したがって、プリンタ５０においてなんらかのイベント（例えば、印刷の完了、異常の発生等）が発生すると（Ｓ６０）、プリンタ制御手段１１８は、プリンタ５０からの応答によってその旨を検知する（Ｓ６１、Ｓ６２）。プリンタ制御手段１１８は、検知したイベントを当該イベントの対象となったプリンタジョブのプリンタジョブＩＤと共にポート監視手段１１９に通知する（Ｓ６３）。
【０１１０】
プリンタ制御手段１１８から通知を受け取ったポート監視手段１１９は、イベントの種類に対応させて、各ジョブのジョブステータスを更新する（Ｓ６４）。この処理はフローチャートによって説明する。
【０１１１】
図２５は、プリンタ制御手段から通知を受け取ったときのポート監視手段による処理を説明するためのフローチャートである。
【０１１２】
例えば、プリンタ制御手段１１８よりプリンタジョブＡＢＣに対する印刷の完了が通知されたとする。ステップＳ５１１において、ポート監視手段１１９は、プリンタジョブＡＢＣに対するプリンタジョブステータスファイル１３４におけるジョブステータスの値を「ｃｏｍｐｌｅｔｅｄ」（印刷完了）とする。
【０１１３】
ステップＳ５１１に続いてステップＳ５１２に進み、ポート監視手段１１９は、プリンタジョブＡＢＣの親ジョブであるスプーラジョブ１０に対するスプーラジョブステータスファイル１３３におけるジョブステータスの値を「ｃｏｍｐｌｅｔｅｄ」とする。
【０１１４】
ステップＳ５１２に続いてステップＳ５１３に進み、ポート監視手段１１９は、プリンタジョブＡＢＣが属する印刷ジョブ００１の全ての子ジョブ（スプーラジョブ）のジョブステータスが更新されたか（「ｃｏｍｐｌｅｔｅｄ」になったか）否かを判断する。
【０１１５】
全ての子ジョブのジョブステータスが更新されたときは、ポート監視手段１１９は、印刷ジョブ００１に対する印刷ジョブステータスファイル１３２におけるジョブステータスの値を「ｃｏｍｐｌｅｔｅｄ」に更新する（Ｓ５１４）。一方、全ての子ジョブのジョブステータスが更新されていないときは、印刷ジョブ００１のジョブステータスの値は更新されない。したがって、プリンタジョブＡＢＣに続いてプリンタジョブＣＤＥに対する印刷の完了が更に通知されたときに、印刷ジョブ００１のジョブステータスの値が「ｃｏｍｐｌｅｔｅｄ」に更新される。
【０１１６】
図２５の処理は、プリンタ制御手段１１８から通知があるたびに実行され、各ジョブのジョブステータスが随時更新されることになる。
【０１１７】
以上で、端末４０のＷｅｂブラウザ４１からの印刷要求に基づいて実行される印刷処理は終了する。上述したように、印刷サーバ１０においては、処理の段階に応じてジョブが発生するとともに、各ジョブのジョブステータスの値が変化する。ここで、処理の段階とジョブステータスの値との関係について改めて整理しておく。
【０１１８】
図２６は、印刷処理の段階とジョブステータスの値との関係を示す図である。図２６に示されるように、ｐｅｎｄｉｎｇ（待機中）は、印刷指示手段１１３が印刷要求を受け付けてからスプーラ１１６に対する印刷要求が行われるまでを表す。
【０１１９】
ｐｒｏｃｅｓｓｉｎｇ（処理中）は、スプーラ１１６が印刷要求を受け付けてから、プリンタ制御手段１１８によってプリンタ５０に対して印刷要求が行われる直前までを表す。
【０１２０】
ｅｘｅｃｕｔｉｎｇ（実行中）は、プリンタ制御手段１１８がプリンタ５０に対して印刷要求を行ってから、プリンタ５０において印刷等のイベントが発生する直前までを表す。
【０１２１】
ｃｏｍｐｌｅｔｅｄ（正常終了）は、プリンタ５０によって印刷が実行された以降を表わす。
【０１２２】
また、図２６において、各ジョブステータスの値の下には、それぞれのジョブステータスにおける操作可否フラグの値が示されている。操作可否フラグの値の表示より、ジョブステータスの値がｐｅｎｄｉｎｇ、ｐｒｏｃｅｓｓｉｎｇ、及びｅｘｅｃｕｔｉｎｇのときは、当該ジョブは操作可能であり、ｃｏｍｐｌｅｔｅｄのときは、当該ジョブは操作不能であることが分かる。
【０１２３】
以下、印刷サーバ１０内における各ジョブのステータス情報をＷｅｂサーバ３０に対して（あるいはＷｅｂサーバ３０を介して端末４０に対して）提供するときの処理について説明する。
【０１２４】
図２７は、印刷サーバがジョブのステータス情報を提供するときの処理を説明するためのシーケンス図である。
【０１２５】
ステップＳ１０１において、ユーザがＷｅｂブラウザ４１に、印刷サーバ１０におけるジョブのステータス情報の一覧を表示するＷｅｂページ（以下、「ジョブ一覧ページ」という。）のＵＲＬを入力すると、Ｗｅｂブラウザ４１は、Ｗｅｂサーバ３０に対してジョブ一覧ページの送信を要求する。ステップＳ１０１に続いてステップＳ１０２に進み、Ｗｅｂアプリ３２は、プリンタサーバ１０の印刷要求受付手段１１２のステータス情報取得メソッドをＳＯＡＰのＲＰＣによって呼び出すことにより、プリンタサーバ１０に対して、端末４０のユーザが過去に行った印刷要求に基づく印刷ジョブのステータス情報の取得を要求する。
【０１２６】
図２８は、ステータス情報取得メソッドのインタフェースを説明するための図である。図２８においては、ステータス情報取得メソッドの主な引数の一覧と、各引数が入力引数（メソッドの呼び出し側が指定する情報）であるか、出力引数（戻り値として返却される情報）であるかの別とを表示している。図２８より、ステータス情報取得メソッドは、親ジョブＩＤとジョブＩＤとを入力引数とし、ステータス情報を出力引数として有している。
【０１２７】
親ジョブＩＤには、ステータス情報の取得対象とするジョブが属する印刷ジョブの印刷ジョブＩＤを指定する。
【０１２８】
ジョブＩＤには、ステータス情報の取得対象とするスプーラジョブ又はプリンタジョブのジョブＩＤを指定する。但し、ステータス情報の取得対象とするジョブが印刷ジョブのときは、何も指定しない。上述した親ジョブＩＤにおいて、当該印刷ジョブの印刷ジョブＩＤが指定されているからである。
【０１２９】
ステータス情報は、ステータス情報の取得対象となったジョブのステータス情報ファイルに保存されているステータス情報（図１１等）の値である。ここで、ステータス情報には子ジョブＩＤのリストが含まれている。この子ジョブＩＤのリストによって、ステータス情報の取得対象とするジョブと当該ジョブの子ジョブのステータス情報との関連付けが実現されている。
【０１３０】
従って、ステップＳ１０２においては、Ｗｅｂアプリ３２は、各入力引数に以下のように値を指定してステータス情報取得メソッドを呼び出す。
【０１３１】
親ジョブＩＤ：  カレントユーザからの印刷要求に応じて印刷メソッドを呼び出したとき（図４：Ｓ１２）に返却され、Ｗｅｂアプリ３２が保存しておいた印刷ジョブＩＤ（Ｓ１８）。カレントユーザから過去に複数の印刷要求を受けているときは、複数の印刷ジョブＩＤのうちの一つ。
【０１３２】
ジョブＩＤ：  ＮＵＬＬ値
なお、Ｗｅｂアプリ３２がステータス情報収録メソッドをＳＯＡＰのＲＰＣによって呼び出すことにより図２９に示すようなＳＯＡＰメッセージが印刷要求受付手段１１２に対して送信される。
【０１３３】
図２９は、ステータス情報取得メソッドを呼び出すときのＳＯＡＰメッセージの例を示す図である。図２９のＳＯＡＰメッセージ７１０において、タグ７１１のタグ名である「ｇｅｔＪｏｂＬｉｓｔ」が、ステータス情報取得メソッドのメソッド名である。また、記述７１２、７１３及び７１４は、引数情報である。＜ｐａｒｅｎｔＪｏｂＩＤ＞タグで囲まれた記述７１２は、引数としての親ジョブＩＤに対応しており、その値は「００１」と指定されているのが分かる。＜ｊｏｂＩＤ＞タグで囲まれた記述７１３は、引数としてのジョブＩＤに対応しており、その値には何も指定されていないのが分かる。
【０１３４】
ステップＳ１０２に続いてステップＳ１０３に進み、ステータス情報取得メソッドを呼び出された印刷要求受付手段１１２は、ステータス情報取得メソッドに実装された処理を実行する。
【０１３５】
図３０は、ステータス情報取得メソッドにおける処理を説明するためのフローチャートである。
【０１３６】
まず、印刷要求受付手段１１２は、引数の親ジョブＩＤに値が指定されているか否を判断し（Ｓ５２１）、値が指定されていないときはエラーを返却する（Ｓ５３０）。親ジョブＩＤの値が指定されているときは、引数のジョブＩＤに値が指定されているか否かを判断する（Ｓ５２２）。ジョブＩＤが指定されていないときは、引数の親ジョブＩＤによって特定される印刷ジョブを対象ジョブとし、当該印刷ジョブに対する印刷ジョブステータスファイル１３２よりステータス情報を取得する（Ｓ５２３）。一方、引数のジョブＩＤに値が指定されているときは、当該ジョブＩＤがプリンタジョブＩＤであるか否かを判断する（Ｓ５２４）。ジョブＩＤがプリンタジョブＩＤであるか否かは引数のジョブＩＤがプリンタジョブＩＤの番号体系に沿ったものかによって判断すればよい。
【０１３７】
ジョブＩＤがプリンタジョブＩＤでないときは当該ジョブＩＤは、スプーラジョブＩＤであると判断できるため、当該ジョブＩＤによって特定されるスプーラジョブを対象ジョブとし、当該スプーラジョブに対するスプーラジョブステータスファイル１３３よりステータス情報を取得する（Ｓ５２５）。一方、プリンタジョブＩＤが指定されているときは、プリンタジョブＩＤによって特定されるプリンタジョブを対象ジョブとし、当該プリンタジョブに対するプリンタジョブステータスファイル１３４よりステータス情報を取得する（Ｓ５２６）。
【０１３８】
最後に、取得したステータス情報を出力引数にセットし、リターンする（Ｓ５２７）。したがって、ステップＳ１０３（図２７）においては、印刷ジョブのステータス情報が、ステータス情報取得メソッドの出力引数の値となる。
【０１３９】
図２７のステップＳ１０４に進み、印刷要求受付手段１１２は、ステータス情報取得メソッドの返却情報として出力引数（ステータス情報）の値を含むＳＯＡＰメッセージをＷｅｂアプリ３２に対して送信する。
【０１４０】
図３１は、ステータス情報取得メソッドの返却情報を含むＳＯＡＰメッセージを示す図である。図３１のＳＯＡＰメッセージ７２０において、符号７２１で示される部分がステータス情報である。すなわち、記述７２２においてジョブステータス（「ｅｘｅｃｕｔｉｎｇ」）が示されている。記述７２３にはジョブの受付日時が示されている。記述７２４には、子ジョブの数（「２」）が示されており、記述７２５には、子ジョブＩＤのリスト（「１０」、「２０」）が示されている。記述７２６、記述７２７にはそれぞれ操作可否フラグ（「ｔｒｕｅ」）、ジョブ名（「文書１」）が示されている。
【０１４１】
以上、ステップＳ１０２〜ステップＳ１０４までの処理は、Ｗｅｂアプリ３２において保存されているカレントユーザに対する印刷ジョブＩＤの数だけ繰り返される（Ｓ１０５）。従って、Ｗｅｂサーバ３０には、カレントユーザに対する全ての印刷ジョブのステータス情報が収集される。
【０１４２】
ステップＳ１０６に進み、Ｗｅｂアプリ３２は、ステータス情報取得メソッドを呼び出すことによって取得したステータス情報に基づいてジョブ一覧ページを生成し、Ｗｅｂブラウザ４１に送信する（Ｓ１０７）。ジョブ一覧ページ４１は、Ｗｅｂブラウザ４１によって表示され、ユーザは、過去に行った印刷要求に対する印刷ジョブの状態を確認することができる。
【０１４３】
図３２は、ジョブ一覧ページの表示例を示す図である。図３２に示されるようにジョブ一覧ページ４３０には、各印刷ジョブについてジョブ名、ジョブステータス、及び受付時間等の属性が表示されている。
【０１４４】
ジョブ名が文書１の印刷ジョブ（以下、「文書１ジョブ」という。他のジョブの呼び方についても同様とする。）のジョブステータスは「実行中」と表示されている。プリンタサーバ３０においては、印刷ジョブのジョブステータスは、当該印刷ジョブに属する全てのスプーラジョブのジョブステータスが更新されたときに更新される。また、一つのスプーラジョブは一つの文書ファイルに対応している。したがって、文書１ジョブのジョブステータスが「実行中」と表示されることによって、文書１を構成する全ての文書ファイルについて、少なくともプリンタ５０に対する印刷要求までは完了しているということが分かる（図２６参照）。
【０１４５】
同様に、文書２ジョブについては、文書２を構成する全ての文書ファイルについて、少なくともスプーラ１１６に対する印刷要求までは完了していることが分かる。また、文書３ジョブについては、まだ全ての文書ファイルについてスプーラ１１６まで処理が遷移していないことが分かる。
【０１４６】
ジョブ名が文書１ジョブと文書２ジョブのそれぞれの行の先頭には、「＞＞」のマークが表示されている。これは、当該ジョブには、子ジョブが存在することを示す。また、当該ジョブのジョブ名には下線が表示されているが、これは当該ジョブの子ジョブのステータス情報を表示させるためのリンク（リンク４３１）が張られていることを示す。すなわち、Ｗｅｂアプリ３２は、ジョブ一覧ページ４３０を生成するときに、ステータス情報取得メソッドにより取得したステータス情報に含まれる「子ジョブの数」を参照することにより、各ジョブに子ジョブが存在するか否かを判断し、その結果に基づいて「＞＞」マークやリンクの付加を行っている。
【０１４７】
なお、キャンセルボタン４３１及び一時停止ボタン４３２は、ジョブ一覧ページ４３０に表示されているジョブを操作するためのボタンであるが、詳細については後述する。
【０１４８】
図２７に戻り、端末４０のユーザが、文書１ジョブに属するスプーラジョブのジョブステータスを参照すべく、リンク４３１をクリックすると、Ｗｅｂブラウザ３２は、文書１ジョブに属するスプーラジョブのジョブステータスを表示したジョブ一覧ページの送信をＷｅｂサーバ３０に対して要求する（Ｓ１１１）。
【０１４９】
ステップＳ１１１に続いてステップＳ１１２に進み、Ｗｅｂアプリ３２は、印刷要求受付手段１１２のステータス情報取得メソッドをＳＯＡＰのＲＰＣによって呼び出すことにより、文書１ジョブに属するスプーラジョブのうちの一つのステータス情報の送信を印刷要求受付手段１１２に対して要求する。なお、ステータス情報取得メソッドの各引数（図２８）には以下の値が指定される。
【０１５０】
親ジョブＩＤ：  文書１ジョブの印刷ジョブＩＤ
ジョブＩＤ：  ステップＳ１０４において、出力引数として受信したステータス情報に含まれる子ジョブＩＤのリストのうちの一つ
ステップＳ１１２においてＷｅｂアプリ３２から印刷要求受付手段１１２に対して送信されるＳＯＡＰメッセージの例は、図３３に示される。図３３は、スプーラジョブのステータス情報を取得するためにステータス情報取得メソッドを呼び出すときのＳＯＡＰメッセージの例を示す図である。
【０１５１】
図３３のＳＯＡＰメッセージ７３０の構造は、図２９のＳＯＡＰメッセージ７１０と同様である。図３３に示されるように、親ジョブＩＤ（記述７３１）には、印刷ジョブＩＤである「００１」が、ジョブＩＤ（記述７３２）には、ステップＳ１０４において受信したステータス情報に含まれる子ジョブＩＤのリストのうちの一つである「１０」が指定されている。
【０１５２】
ステップＳ１１２に続いてステップＳ１１３に進み、印刷要求受付手段１１２は、図３０において説明した処理を実行し、ステータス情報取得メソッドの返却情報として、引数に指定された親ジョブＩＤ及びジョブＩＤによって特定されるスプーラジョブのステータス情報を含むＳＯＡＰメッセージをＷｅｂアプリ３２に対して送信する。
【０１５３】
図３４は、ステータス情報取得メソッドの返却情報を含むＳＯＡＰメッセージを示す図である。図３４のＳＯＡＰメッセージ７４０の構造は、図３１のＳＯＡＰメッセージ７２０とほぼ同様である。ＳＯＡＰメッセージ７４０より、ジョブステータスは、「ｃｏｍｐｌｅｔｅｄ」（記述７４１）、子ジョブの数は「１」個（記述７４２）、その子ジョブのＩＤは、「ＡＢＣ」（記述７４３）、操作可否フラグの値は、「ｆａｌｓｅ」（記述７４４）、ジョブ名は、「ファイルＡ」（記述７４５）であることが分かる。
【０１５４】
以上、ステップＳ１１２〜ステップＳ１１４までの処理は、文書１ジョブに属するスプーラジョブの数だけ繰り返される（Ｓ１１５）。従って、Ｗｅｂサーバ３０には、文書１ジョブに属する全てのスプーラジョブのステータス情報が収集される。
【０１５５】
ステップＳ１１６に進み、Ｗｅｂアプリ３２が、ステータス情報取得メソッドを呼び出すことによって取得したステータス情報に基づいてジョブ一覧ページを生成し、Ｗｅｂブラウザ４１に送信すると、ジョブ一覧ページ４１が、Ｗｅｂブラウザ４１によって表示される（Ｓ１１７）。
【０１５６】
図３５は、スプーラジョブのジョブステータスを表示したジョブ一覧ページの表示例を示す図である。図３５に示されるジョブ一覧ページ４４０の領域４４１には文書１ジョブに属するスプーラジョブの一覧が、文書１ジョブに関連付けられて、かつ、文書１ジョブとの親子関係が認識できるよう階層的に表示されている。領域４４１より、文書１ジョブに属するスプーラジョブとしては、ファイルＡジョブとファイルＢジョブが存在し、ファイルＡジョブについては、「正常終了」であることが分かり、ファイルＢジョブについては、「実行中」であることが分かる。
【０１５７】
図２７に戻り、ユーザがジョブ一覧ページ４４０上においてリンク４４３をクリックすると、Ｗｅｂブラウザ３２は、ファイルＢジョブに属するプリンタジョブのジョブステータスを表示するジョブ一覧ページの送信をＷｅｂサーバ３０に対して要求する（Ｓ１２１）。
【０１５８】
ステップＳ１２１に続いてステップＳ１２２に進み、Ｗｅｂアプリ３２は、印刷要求受付手段１１２のステータス情報取得メソッドを呼び出すことにより、ファイルＢジョブに属するプリンタジョブのステータス情報の送信を印刷要求受付手段１１２に対して要求する。なお、ステータス情報取得メソッドの各引数には以下の値が指定される。
【０１５９】
親ジョブＩＤ：  文書１ジョブの印刷ジョブＩＤ
ジョブＩＤ：  ステップＳ１１４において、出力引数として受信したステータス情報に含まれる子ジョブＩＤ
ステップＳ１２２に続いてステップＳ１２３に進み、印刷要求受付手段１１２は、図３０において説明した処理を実行し、引数に指定された親ジョブＩＤ及びジョブＩＤによって特定されるプリンタジョブのステータス情報を出力引数の値としてＷｅｂアプリ３２に対して送信する。
【０１６０】
なお、本実施の形態においては、スプーラジョブとプリンタジョブは１対１に対応しているため、ステップＳ１２２〜ステップＳ１２４までの処理は、上述したステップＳ１１２〜ステップＳ１２４と異なり、繰り返す必要はない。
【０１６１】
ステップＳ１２５に進み、Ｗｅｂアプリ３２が、ステータス情報取得メソッドを呼び出すことによって取得したステータス情報に基づいてジョブ一覧ページを生成し、Ｗｅｂブラウザ４１に送信すると、ジョブ一覧ページ４１が、Ｗｅｂブラウザ４１によって表示される（Ｓ１２６）。
【０１６２】
図３６は、プリンタジョブのジョブステータスを表示したジョブ一覧ページの表示例を示す図である。図３６に示されるジョブ一覧ページ４５０の領域４５１には、ファイルＢジョブに属するプリンタジョブのジョブステータスが表示されている。
【０１６３】
上述したように、本実施の形態における印刷サーバ１０によれば、印刷ジョブ、スプーラジョブ、及びプリンタジョブのそれぞれのステータス情報をＷｅｂサーバ３０等のクライアントに提供することができる。したがって、クライアント側では、それぞれのジョブの単位に応じて、ジョブの状態を確認することができる。
【０１６４】
特に、ユーザからの印刷要求に対応する印刷ジョブの状態を提供することによって、ユーザは、一つ一つの文書ファイルに対する処理状態を確認するまでもなく、自分が行った印刷要求に対する処理全体の総括的な状態を容易に確認することができる。
【０１６５】
更に、ステータス情報には、当該ジョブに属する子ジョブＩＤのリストが含まれているため、クライアントにおいて各ジョブの親子関係を認識することができる。したがって、クライアントにおいては、本実施の形態におけるジョブ一覧ページのような、各ジョブの親子関係をツリー形式等、階層的に表現できるユーザインタフェースを構築することができる。なお、ジョブ一覧ページ上におけるステータス情報の表示は、かならずしもツリー形式である必要はなく、各ジョブの親子関係が明確に認識しうる態様であれば、例えば、テーブル形式等であってもよい。
【０１６６】
次に、ユーザによってジョブのキャンセルが指示されたときの処理について説明する。図３７は、ジョブのキャンセルを実行するときの印刷システムにおける処理を説明するためのシーケンス図である。
【０１６７】
ユーザがジョブ一覧ページ４５０（図３６）において、チェックボタン４５３をチェックすることにより、印刷ジョブである文書１ジョブをキャンセル対象のジョブとして選択し、キャンセルボタン４５２をクリックすると、Ｗｅｂアプリ３２を介して文書１ジョブのキャンセル要求が印刷要求受付手段１１２に送信される（Ｓ１４１、Ｓ１４２）。なお、Ｗｅｂアプリ３２による印刷要求受付手段１１２に対するジョブのキャンセル要求は、Ｗｅｂアプリ３２が印刷要求受付手段１１２の有するキャンセルメソッドをＳＯＡＰのＲＰＣによって呼び出すことにより行われる。ステップＳ１４２に続いてステップＳ１４３に進み、キャンセルメソッドを呼び出された印刷要求受付手段１１２は、キャンセルメソッドに実装された処理を実行する。
【０１６８】
図３８は、キャンセルメソッドにおける処理を説明するためのフローチャートである。
【０１６９】
まず、印刷要求受付手段１１２は、キャンセル対象として指定されたジョブ（対象ジョブ）のジョブステータスファイルに登録されている「子ジョブの数」を参照することにより、キャンセル対象として指定されたジョブ（対象ジョブ）に子ジョブが存在するか否かを判断する（Ｓ５４１）。
【０１７０】
ここで、子ジョブが存在しないということは、処理の段階が対象ジョブより先には進んでいないことを意味する。したがって、このときは、対象ジョブの実行手段に対してジョブのキャンセルを通知すればよい。なお、対象ジョブの実行手段とは、対象ジョブが印刷ジョブのときは印刷指示手段１１３が、スプーラジョブのときはスプーラ１１６が、プリンタジョブのときはプリンタ制御手段１１８がそれぞれ該当する。
【０１７１】
一方、子ジョブが存在するということは、既に処理の段階が対象ジョブより先に進んでいるということを意味する。したがって、このときは対象ジョブの実行手段に対してではなく、先の段階の処理を実行する子ジョブの実行手段に対してジョブのキャンセルを通知する必要がある。
【０１７２】
対象ジョブに子ジョブが存在しないときはステップＳ５４２に進み、印刷要求受付手段１１２は、対象ジョブのジョブステータスファイルに登録されている操作可否フラグを参照することにより対象ジョブの操作が可能であるか否かを判断する。
【０１７３】
対象ジョブの操作フラグが「ｆａｌｓｅ」のとき（ステップＳ５４２でＮｏのとき）、すなわち、対象ジョブがもはや操作不能の処理段階に移っているときは、ジョブのキャンセルは不可能なため、印刷要求受付手段１１２は、キャンセルメソッドの処理から復帰する。
【０１７４】
対象ジョブの操作フラグが「ｔｒｕｅ」のとき（ステップＳ５４３でＹｅｓのとき）は、ステップＳ５４３に進み、印刷要求受付手段１１２は、ジョブのキャンセルを実行し、キャンセルメソッドの処理から復帰する。
【０１７５】
ここで、ステップＳ５４３における処理は、対象ジョブの種類によって異なる。対象ジョブが印刷ジョブのときは、印刷要求受付手段１１２が、対象ジョブの印刷ジョブステータスファイル１３２におけるジョブステータスの値を「ｃａｎｃｅｌｅｄ」（キャンセル）とすることにより、対象ジョブのキャンセルが実現される。印刷指示手段１１３は、ジョブステータスの値が「ｃａｎｃｅｌｅｄ」である印刷ジョブについては処理を行わないからである。
【０１７６】
また、対象ジョブがスプーラジョブ、又はプリンタジョブのときは、印刷要求受付手段１１２が、スプーラ１１６又はプリンタ制御手段１１８に対してジョブのキャンセルを指示し（ＡＰＩの呼び出し）、更に、対象ジョブのジョブステータスの値を「ｃａｎｃｅｌｅｄ」とすることにより、対象ジョブのキャンセルが実現される。
【０１７７】
一方、ステップＳ５４１において対象ジョブには子ジョブが存在すると判断したときは、ステップＳ５４５に進み、印刷要求受付手段１１２は、対象ジョブの全ての子ジョブについてステップＳ５４１からステップＳ５４３までの処理を実行する。したがって、対象ジョブの全ての子ジョブ及びさらにその子ジョブのうち、子ジョブの数が０で、かつ、操作可否フラグの値がｔｒｕｅのものについては、再帰的にキャンセル（Ｓ５４３）が実行される。
【０１７８】
ステップＳ５４５に続いてステップＳ５４６に進み、印刷要求受付手段１１２は、対象ジョブのジョブステータスの値を、キャンセルした子ジョブ以外の子ジョブのジョブステータスのうち最も処理が遅れているものと同じジョブステータスに更新し、キャンセルメソッドの処理から復帰する。但し、全ての子ジョブをキャンセルしたときは、対象ジョブステータスの値は、「ｃａｎｃｅｌｅｄ」となる。
【０１７９】
対象ジョブが文書１ジョブの場合（図３６）について、図３８の処理を当てはめてみる。文書１ジョブには子ジョブとして、スプーラジョブのファイルＡジョブとファイルＢジョブとが存在するため、これらの子ジョブに対してステップＳ５４５の処理（すなわちステップＳ５４１〜Ｓ５４３の処理）が再帰的に実行される。
【０１８０】
ここで、ファイルＡジョブのジョブステータスは、正常終了（ｃｏｍｐｌｅｔｅｄ）である。したがって、ファイルＡジョブの操作可否フラグの値は「ｆａｌｓｅ」ということになる（図２６参照）。よって、ファイルＡジョブについては、キャンセルは実行されない（Ｓ５４２）。
【０１８１】
一方、ファイルＢジョブには、子ジョブとしてプリンタジョブとしてのファイルＢジョブ（以下、「ファイルＢプリンタジョブ」という。）が存在する（Ｓ５４１）。したがって、ファイルＢプリンタジョブについて再帰的にステップＳ５４５の処理が実行される。その結果、ファイルＢプリンタジョブについては、ジョブのキャンセルが実行され（Ｓ５４３）。スプーラジョブとしてのファイルＢジョブのジョブステータスの値も「ｃａｎｃｅｌｅｄ」となる（Ｓ５４６）。
【０１８２】
更に、文書１ジョブの全ての子ジョブについてＳ５４５の処理が終了すると、文書１ジョブのジョブステータスが、キャンセルされたファイルＢジョブ以外のジョブ、すなわち、ファイルＡジョブの値と同じ、「ｃｏｍｐｌｅｔｅｄ」（正常終了）となる。
【０１８３】
図３７に戻る。ステップＳ１４４に進み、印刷要求受付手段１１２は、キャンセルメソッドの呼び出しに対する応答として、ジョブのキャンセルを実行した後の、対象ジョブ以下のステータス情報の一覧をＷｅｂアプリ３２に対して送信する。ステップＳ１４４に続いてステップＳ１４５に進み、Ｗｅｂアプリ３２が、ステータスがキャンセルになっているジョブを非表示としたジョブ一覧ページを生成し、Ｗｅｂブラウザ４１に送信すると、ジョブ一覧ページがＷｅｂブラウザ４１に表示される。
【０１８４】
図３９は、文書１ジョブに対してキャンセルを実行した後のジョブ一覧ページの表示例を示す図である。図３９のジョブ一覧ページ４６０を、図３６のジョブ一覧ページ４５０と比較すると、文書一覧ページ４６０においては、文書１ジョブの子ジョブであったファイルＢジョブ（スプーラジョブ）と、ファイルＢジョブ（スプーラジョブ）の子ジョブであるファイルＢプリンタジョブとが非表示となっている。
【０１８５】
また、文書１ジョブのジョブステータスの表示は、ファイルＡジョブのジョブステータスの値と同じ「正常終了」となっている。
【０１８６】
なお、上述においては、ジョブ一覧ページ４５０において印刷ジョブがキャンセルの対象として選択された場合について説明したが、スプーラジョブやプリンタジョブが選択された場合でも同様の手順（図２７、図３０）によってジョブをキャンセルすることができる。また、ジョブの操作はキャンセルだけに限らず、一時停止やその他様々な機能についても、上述した手順（図２７、図３０）によって実現することができる。
【０１８７】
上述したように、本実施の形態における、印刷システム１によれば、ユーザは、印刷処理の各段階におけるジョブを容易に操作することができる。特に、印刷要求に対応する印刷ジョブの単位でジョブの操作を行うことができるため、ユーザは、自らがおこなった印刷要求に係る全てのスプーラジョブをキャンセルしたい場合等に、それぞれのスプーラジョブを操作する必要はない。
【０１８８】
以上、本発明の好ましい実施例について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図面の簡単な説明】
【０１８９】
【図１】本発明の実施の形態における印刷システムの構成例を示す図である。
【図２】印刷サーバにおける印刷サービスの機能構成例を示す図である。
【図３】本発明の実施の形態における印刷サーバのハードウェア構成例を示す図である。
【図４】印刷システムにおける文書データの印刷処理を説明するためのシーケンス図である。
【図５】印刷システムにおける文書データの印刷処理を説明するためのシーケンス図である。
【図６】印刷システムにおける文書データの印刷処理を説明するためのシーケンス図である。
【図７】印刷システムにおける文書データの印刷処理を説明するためのシーケンス図である。
【図８】文書一覧ページの表示例を示す図である。
【図９】設定ページの表示例を示す図である。
【図１０】印刷ジョブ情報の構成例を示す図である。
【図１１】印刷ジョブのステータス情報の構成例を示す図である。
【図１２】複数の文書データの印刷が要求されたときに複数の文書データをまとめて印刷する場合の例を示す図である。
【図１３】複数の文書データの印刷が要求されたときに文書データごとにまとめて印刷する場合の例を示す図である。
【図１４】セクションごとに印刷する場合の例を示す図である。
【図１５】スプーラジョブのステータス情報の構成例を示す図である。
【図１６】ジョブ対応テーブルの構成例を示す図である。
【図１７】ステータス情報の更新処理を説明するためのフローチャートである。
【図１８】更に発生したスプーラジョブに対するスプーラジョブステータスファイルに登録されたステータス情報の例を示す図である。
【図１９】更に発生したスプーラジョブと印刷ジョブとの対応づけを登録した対応テーブルの例を示す図である。
【図２０】印刷ジョブの処理によって更新された印刷ジョブステータスファイルにおけるステータス情報の例を示す図である。
【図２１】プリンタジョブのステータス情報の構成例を示す図である。
【図２２】プリンタジョブの処理によって更新されたスプーラジョブステータスファイルにおけるステータス情報の例を示す図である。
【図２３】プリンタジョブＡＢＣのプリンタジョブＩＤを登録したジョブ対応テーブルの例を示す図である。
【図２４】プリンタジョブの処理によって更新された印刷ジョブステータスファイルにおけるステータス情報の例を示す図である。
【図２５】プリンタ制御手段から通知を受け取ったときのポート監視手段による処理を説明するためのフローチャートである。
【図２６】印刷処理の段階とジョブステータスの値との関係を示す図である。
【図２７】印刷サーバがジョブのステータス情報を提供するときの処理を説明するためのシーケンス図である。
【図２８】ステータス情報取得メソッドのインタフェースを説明するための図である。
【図２９】ステータス情報取得メソッドを呼び出すときのＳＯＡＰメッセージの例を示す図である。
【図３０】ステータス情報取得メソッドにおける処理を説明するためのフローチャートである。
【図３１】ステータス情報取得メソッドの返却情報を含むＳＯＡＰメッセージを示す図である。
【図３２】ジョブ一覧ページの表示例を示す図である。
【図３３】スプーラジョブのステータス情報を取得するためにステータス情報取得メソッドを呼び出すときのＳＯＡＰメッセージの例を示す図である。
【図３４】ステータス情報取得メソッドの返却情報を含むＳＯＡＰメッセージを示す図である。
【図３５】スプーラジョブのジョブステータスを表示したジョブ一覧ページの表示例を示す図である。
【図３６】プリンタジョブのジョブステータスを表示したジョブ一覧ページの表示例を示す図である。
【図３７】ジョブのキャンセルを実行するときの印刷システムにおける処理を説明するためのシーケンス図である。
【図３８】キャンセルメソッドにおける処理を説明するためのフローチャートである。
【図３９】文書１ジョブに対してキャンセルを実行した後のジョブ一覧ページの表示例を示す図である。
【符号の説明】
【０１９０】
１０      印刷サーバ
１１      印刷サービス
２０      文書管理サーバ
２１      ＳＯＡＰリスナ
２２      文書管理手段
２３      文書管理ＤＢ
３０      Ｗｅｂサーバ
３１      ｈｔｔｐｄ
３２      Ｗｅｂアプリ
３３      ＳＯＡＰプロキシ
４０      端末
４１      Ｗｅｂブラウザ
５０      プリンタ
１００    ドライブ装置
１０１    記憶媒体
１０２    補助記憶装置
１０３    メモリ装置
１０４    演算処理装置
１０５    インタフェース装置
１１１    ＳＯＡＰリスナ
１１２    印刷要求受付手段
１１３    印刷指示手段
１１４    文書アプリ
１１５    プリンタドライバ
１１６    スプーラ
１１７    ポートプログラム
１１８    プリンタ制御手段
１１９    ポート監視手段
１２０    非同期管理手段
１２１    文書管理接続手段
１３２    印刷ジョブステータスファイル
１３３    スプーラジョブステータスファイル
１３４    プリンタジョブステータスファイル
１３５    ジョブ対応テーブル
Ｂ    バス
【図１】
2005063411.tif 000003
【図２】
2005063411.tif 000004
【図３】
2005063411.tif 000005
【図４】
2005063411.tif 000006
【図５】
2005063411.tif 000007
【図６】
2005063411.tif 000008
【図７】
2005063411.tif 000009
【図８】
2005063411.tif 000010
【図９】
2005063411.tif 000011
【図１０】
2005063411.tif 000012
【図１１】
2005063411.tif 000013
【図１２】
2005063411.tif 000014
【図１３】
2005063411.tif 000015
【図１４】
2005063411.tif 000016
【図１５】
2005063411.tif 000017
【図１６】
2005063411.tif 000018
【図１７】
2005063411.tif 000019
【図１８】
2005063411.tif 000020
【図１９】
2005063411.tif 000021
【図２０】
2005063411.tif 000022
【図２１】
2005063411.tif 000023
【図２２】
2005063411.tif 000024
【図２３】
2005063411.tif 000025
【図２４】
2005063411.tif 000026
【図２５】
2005063411.tif 000027
【図２６】
2005063411.tif 000028
【図２７】
2005063411.tif 000029
【図２８】
2005063411.tif 000030
【図２９】
2005063411.tif 000031
【図３０】
2005063411.tif 000032
【図３１】
2005063411.tif 000033
【図３２】
2005063411.tif 000034
【図３３】
2005063411.tif 000035
【図３４】
2005063411.tif 000036
【図３５】
2005063411.tif 000037
【図３６】
2005063411.tif 000038
【図３７】
2005063411.tif 000039
【図３８】
2005063411.tif 000040
【図３９】
2005063411.tif 000041