(57)【特許請求の範囲】
【請求項１】
出力装置に対してジョブの投入処理を行う複数のジョブ投入装置の何れかに、クライアントから出力が要求されたジョブの投入を依頼するジョブ投入依頼装置であって、
前記クライアントから出力が要求されたジョブの投入先となる出力装置に対してジョブの投入処理を行っているジョブ投入装置があるか否かを判定する判定手段と、
前記判定手段により、前記クライアントから出力が要求されたジョブの投入先となる出力装置に対してジョブの投入処理を行っているジョブ投入装置があると判定されると、前記クライアントから出力が要求されたジョブの投入を、そのジョブ投入装置に依頼する依頼手段とを有することを特徴とするジョブ投入依頼装置。
【請求項２】
ジョブの投入処理を実行しているジョブ投入装置の情報と、当該ジョブの投入先となる出力装置の情報とが対応付けられて登録されるデータベースの登録内容に基づいて、前記クライアントから出力が要求されたジョブの投入先となる出力装置に対してジョブの投入処理を実行しているジョブ投入装置を探索する探索手段を有し、
前記判定手段は、前記探索手段により探索された結果に基づいて、前記クライアントから出力が要求されたジョブの投入先となる出力装置に対してジョブの投入処理を行っているジョブ投入装置があるか否かを判定することを特徴とする請求項１に記載のジョブ投入依頼装置。
【請求項３】
前記判定手段により、前記クライアントから要求されたジョブの投入先となる出力装置に対してジョブの投入処理を行っているジョブ投入装置がないと判定されると、前記クライアントから出力が要求されたジョブを投入するジョブ投入装置を決定することを、前記複数のジョブ投入装置の負荷分散を行う負荷分散装置に依頼する第２の依頼手段を有することを特徴とする請求項１又は２に記載のジョブ投入依頼装置。
【請求項４】
請求項１〜３の何れか１項に記載のジョブ投入依頼装置から、ジョブの投入の依頼を受け付ける受付手段と、
前記受付手段により投入の依頼が受け付けられたジョブの投入処理を、当該ジョブの投入先である出力装置に対して行う投入処理手段と、
前記投入処理手段により行われる投入処理の進行状況を、データベースに登録することを指示する登録指示手段とを有し、
前記登録指示手段は、前記データベースに登録された投入処理の進行状況を、前記投入処理手段により行われている投入処理の進行状況に応じて更新することを特徴とするジョブ投入装置。
【請求項５】
前記登録指示手段は、前記ジョブの投入処理の進行状況と、当該ジョブの投入処理を実行しているジョブ投入装置の情報と、当該ジョブの投入先となる出力装置の情報とが対応付けられて登録されたデータベースに対して情報の登録を指示し、
前記投入処理手段により、前記ジョブの投入処理が開始すると、前記ジョブの投入処理を実行しているジョブ投入装置の情報として、自身が属しているジョブ投入装置の情報を前記データベースに登録することを指示し、
前記投入処理手段により、前記ジョブの投入が終了すると、前記自身が属しているジョブ投入装置の情報を、前記データベースから削除することを指示することを特徴とする請求項４に記載のジョブ投入装置。
【請求項６】
請求項１〜３の何れか１項に記載のジョブ投入依頼装置と、請求項４又は５に記載のジョブ投入装置と、ジョブの投入処理を実行しているジョブ投入装置の情報と、当該ジョブの投入先となる出力装置の情報とが対応付けられて登録されるデータベースとを有することを特徴とするジョブ投入システム。
【請求項７】
出力装置に対してジョブの投入処理を行う複数のジョブ投入装置の何れかに、クライアントから出力が要求されたジョブの投入を依頼するジョブ投入依頼方法であって、
前記クライアントから出力が要求されたジョブの投入先となる出力装置に対してジョブの投入処理を行っているジョブ投入装置があるか否かを判定する判定ステップと、
前記判定ステップにより、前記クライアントから出力が要求されたジョブの投入先となる出力装置に対してジョブの投入処理を行っているジョブ投入装置があると判定されると、前記クライアントから出力が要求されたジョブの投入を、そのジョブ投入装置に依頼する依頼ステップとを有することを特徴とするジョブ投入依頼方法。
【請求項８】
出力装置に対してジョブの投入処理を行う複数のジョブ投入装置の何れかに、クライアントから出力が要求されたジョブの投入を依頼することをコンピュータに実行させるためのコンピュータプログラムであって、
前記クライアントから出力が要求されたジョブの投入先となる出力装置に対してジョブの投入処理を行っているジョブ投入装置があるか否かを判定する判定ステップと、
前記判定ステップにより、前記クライアントから出力が要求されたジョブの投入先となる出力装置に対してジョブの投入処理を行っているジョブ投入装置があると判定されると、前記クライアントから出力が要求されたジョブの投入を、そのジョブ投入装置に依頼することを通信手段に指示する依頼ステップとをコンピュータに実行させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ジョブ投入依頼装置、ジョブ投入依頼方法、及びコンピュータプログラムに関し、特に、クライアントから出力が要求されたジョブの出力装置への投入を、複数のジョブ投入装置の何れかに依頼するために用いて好適なものである。
【背景技術】
【０００２】
従来から、プリントサーバを用いて、多数のプリンタに対し、印刷ジョブを配信することが行われている。大量の印刷ジョブの制御を、１台のプリントサーバで行うとプリントサーバが高負荷となり、各印刷ジョブの排紙までに多大な時間がかかってしまう。これを回避するために、複数のプリントサーバを用いて、プリントサーバにかかる負荷を分散させる負荷分散環境（例えばネットワークロードバランサを用いた環境）を構築する必要がある。
【０００３】
このような負荷分散環境で印刷を制御するシステムの従来の技術として、特許文献1に記載されている技術がある。特許文献１に記載されている技術では、複数の出力サーバ（プリントサーバ）を配置すると共に、複数の出力サーバの上位に、複数の出力サーバを管理する管理サーバを配置する。そして、管理サーバから出力サーバへ出力要求を送信する。出力サーバは、その出力要求を一旦キューイングし、１台のプリンタに対し、１多重で印刷プロセスを起動する。印刷プロセスが起動すると出力サーバは、管理サーバから印刷前データを取り出し、その印刷前データに基づいて、プリンタに印刷を実行させる。従来の技術では、このようにして出力サーバの負荷分散を実現すると共に、管理サーバが印刷順の制御を行うことにより印刷順を守るようにしている。
【０００４】
【特許文献１】特開２００６−３１３４４２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、前述した従来の技術では、印刷順を制御する１台の管理サーバが、複数の出力サーバを管理するため、この管理サーバの負荷を分散することが考慮されていない。多数の遠離にあるプリンタを用いて、大量の印刷ジョブの印刷を行うには、この管理サーバの負荷が多大なリスクとなる。そのため、印刷順を含めた印刷制御を複数のプリントサーバで行い、システム全体として負荷分散を行う負荷分散環境の印刷システムを実現することが望まれていた。
【０００６】
しかしながら、このような負荷分散環境の印刷システムを実現するためには、次のような課題があった。
すなわち、複数のクライアントから同じプリンタに対し印刷指示が行われた場合、必ずしも印刷指示を行った順番に印刷ジョブの出力（排紙）ができないという課題があった。
例えば、プリントサーバＡが、プリンタａとは異なる他のプリンタｂに印刷ジョブを投入し印刷を実行させている最中に、クライアントから、第１の印刷ジョブ、第２の印刷ジョブの順番で、プリンタａに対する印刷指示がなされた場合を考える。この場合、プリントサーバに処理を振り分けるバランサの動作により、第１の印刷ジョブについてはプリントサーバＡに振り分けられ、第２の印刷ジョブについてはプリントサーバＢに振り分けられることがある。そうすると、プリントサーバＡは、プリンタｂに印刷ジョブを投入する処理が終わってから、振り分けられた第１の印刷ジョブをプリンタａに投入することになる。よって、第２の印刷ジョブの方が、第１の印刷ジョブよりも先にプリンタａに投入されることになる。この結果、後から印刷指示が行われた第２のジョブの方が早く排紙（印刷完了）する。プリントサーバは、同じプリンタに対する印刷ジョブについては、クライアントからリクエストされた順に印刷ジョブをプリンタに投入しなければならない。したがって、以上のように印刷順序を守れないケースがあるのは大きな問題となる。また、印刷順も制御するプリントサーバをロードバランシィングすることは、従来の技術では困難であった。
【０００７】
このように従来の技術では、プリンタ（出力装置）にジョブを投入する複数のプリントサーバ（ジョブ投入装置）の夫々が、複数のプリンタ（出力装置）の何れかにジョブを投入できる負荷分散環境を構築すると、次のような問題点が生じた。すなわち、クライアントから同一のプリンタ（出力装置）に対して出力が要求された複数のジョブを、クライアントからの要求順にそのプリンタ（出力装置）に投入することができなくなる虞があるという問題点があった。
【０００８】
そこで、本発明は、複数のジョブ投入装置の夫々が、複数の出力装置の何れかにジョブを投入できる環境であっても、同一の出力装置に対して出力が要求された複数のジョブを、クライアントからの要求順にその出力装置に投入できるようにすることを目的とする。
【課題を解決するための手段】
【０００９】
本発明のジョブ投入依頼装置は、出力装置に対してジョブの投入処理を行う複数のジョブ投入装置の何れかに、クライアントから出力が要求されたジョブの投入を依頼するジョブ投入依頼装置であって、前記クライアントから出力が要求されたジョブの投入先となる出力装置に対してジョブの投入処理を行っているジョブ投入装置があるか否かを判定する判定手段と、前記判定手段により、前記クライアントから出力が要求されたジョブの投入先となる出力装置に対してジョブの投入処理を行っているジョブ投入装置があると判定されると、前記クライアントから出力が要求されたジョブの投入を、そのジョブ投入装置に依頼する依頼手段とを有することを特徴とする。
本発明のジョブ投入装置は、前記ジョブ投入依頼装置から、ジョブの投入の依頼を受け付ける受付手段と、前記受付手段により投入の依頼が受け付けられたジョブの投入処理を、当該ジョブの投入先である出力装置に対して行う投入処理手段と、前記投入処理手段により行われる投入処理の進行状況を、データベースに登録することを指示する登録指示手段とを有し、前記登録指示手段は、前記データベースに登録された投入処理の進行状況を、前記投入処理手段により行われている投入処理の進行状況に応じて更新することを特徴とする。
本発明のジョブ投入システムは、前記ジョブ投入依頼装置と、前記ジョブ投入装置と、前記ジョブ投入装置で行われるジョブの投入処理の進行状況が登録されるデータベースとを有することを特徴とする。
【００１０】
本発明のジョブ投入方法は、出力装置に対してジョブの投入処理を行う複数のジョブ投入装置の何れかに、クライアントから出力が要求されたジョブの投入を依頼するジョブ投入依頼方法であって、前記クライアントから出力が要求されたジョブの投入先となる出力装置に対してジョブの投入処理を行っているジョブ投入装置があるか否かを判定する判定ステップと、前記判定ステップにより、前記クライアントから出力が要求されたジョブの投入先となる出力装置に対してジョブの投入処理を行っているジョブ投入装置があると判定されると、前記クライアントから出力が要求されたジョブの投入を、そのジョブ投入装置に依頼する依頼ステップとを有することを特徴とする。
【００１１】
本発明のコンピュータプログラムは、出力装置に対してジョブの投入処理を行う複数のジョブ投入装置の何れかに、クライアントから出力が要求されたジョブの投入を依頼することをコンピュータに実行させるためのコンピュータプログラムであって、前記クライアントから出力が要求されたジョブの投入先となる出力装置に対してジョブの投入処理を行っているジョブ投入装置があるか否かを判定する判定ステップと、前記判定ステップにより、前記クライアントから出力が要求されたジョブの投入先となる出力装置に対してジョブの投入処理を行っているジョブ投入装置があると判定されると、前記クライアントから出力が要求されたジョブの投入を、そのジョブ投入装置に依頼することを通信手段に指示する依頼ステップとをコンピュータに実行させることを特徴とする。
【発明の効果】
【００１２】
本発明によれば、クライアントから出力が要求されたジョブの投入先となる出力装置に対してジョブの投入処理を行っているジョブ投入装置がある場合には、前記クライアントから出力が要求されたジョブの投入を、そのジョブ投入装置に依頼するようにした。したがって、複数のジョブ投入装置を稼動させても同じ出力装置へのジョブ投入順序を守ることが可能となる
【発明を実施するための最良の形態】
【００１３】
以下に、図面を参照しながら、本発明の一実施形態について説明する。
図１は、本発明の実施形態に係る配信印刷システム（ジョブ投入システム）のネットワーク構成の一例を示すブロック図である。
図１において、配信印刷システムは、情報処理装置１０１〜１０８と、プリンタ（印刷装置）等の画像形成装置１１６〜１１９とを含む。また、配信印刷システムは、外部のＨＤＤ（Hard Disk Drive）等の記憶装置１１２、１１３と、ネットワークロードバランサ装置（以下、バランサと称する）１１４、１１５も含む。これらがネットワーク１２０を介して互いに接続されている。
【００１４】
情報処理装置１０１〜１１１は、コンピュータを備え、印刷ジョブの印刷リクエストを行ったり、印刷ジョブを投入したり、印刷状態表示を行ったり、画像形成装置１１６〜１１９を監視したりする。また、情報処理装置１０１〜１１１には、印刷制御等を行うプログラムが実行可能な状態で格納されている。また、印刷ジョブ、印刷設定情報、及び印刷ジョブ情報等は、記憶装置１１２、１１３に保持される。
【００１５】
具体的に、情報処理装置１０９〜１１１は、印刷ジョブの印刷（出力）のリクエスト等を行うクライアントＰＣである。情報処理装置１０１〜１０３は、情報処理装置１０７、１０８で管理され、記憶装置１１２、１１３で保持されている印刷ジョブのジョブ情報をＷｅｂブラウザ介して提供するＷｅｂサーバである。情報処理装置１０９〜１１１（クライアントＰＣ）が情報処理装置１０１〜１０３（Ｗｅｂアプリケーションサーバ）にＷｅｂブラウザを経由して所望の印刷ジョブの印刷のリクエストを行う。そうすると、情報処理装置１０４〜１０６は、情報処理装置１０７、１０８から印刷ジョブのデータを取得する。そして、情報処理装置１０４〜１０６は、取得した印刷ジョブを画像形成装置１１６〜１１９に投入する。
【００１６】
また、情報処理装置１０４〜１０６は、画像形成装置１１６〜１１９から印刷ジョブの状態を取得し、記憶装置１１２、１１３に記録する。画像形成装置１１６〜１１９は、情報処理装置１０４〜１０６から、印刷データを含む印刷ジョブを受信し、受信した印刷ジョブを解析して印刷する物理的な装置としてのプリントデバイスである。画像形成装置１１６〜１１９としては、電子写真方式を採用したレーザービームプリンタやインクジェット方式を採用したインクジェットプリンタや熱転写方式を利用したプリンタ等、あらゆる方式の印刷装置を採用することができる。
尚、配信印刷システムに含まれる装置間の通信は、イーサネット（登録商標）ケーブル等を利用した有線通信でもよいし、電波や光等を利用した無線通信でもよい。
【００１７】
図２は、本発明の実施形態に係る配信印刷システムの情報処理装置１０１〜１１１のハードウェア構成の一例を示す図である。
図２において、ＣＰＵ２０２は、情報処理装置の全体の制御を行う。ＣＰＵ２０２は、ハードディスク（ＨＤＤ）２０５に格納されているアプリケーションプログラムや、ＯＳ（Operating System）等を実行し、プログラムの実行に必要な情報や、ファイル等をＲＡＭ２０３に一時的に格納する制御を行う。
【００１８】
ＲＯＭ２０４は、例えば、基本Ｉ／Ｏプログラム等のプログラムや、文書処理の際に使用されるフォントデータ・テンプレート用データ等の各種データを記憶する。ＲＡＭ２０３は、ＣＰＵ２０２の主メモリ、ワークエリア等として機能する。
ハードディスク（ＨＤＤ）２０５は、大容量メモリとして機能する。ＨＤＤ２０５は、例えば、アプリケーションプログラム、Ｗｅｂサーバプログラム、データベースプログラム、プリンタドライバプログラム、ＯＳ、ネットワークプリンタ制御プログラム、及び関連プログラム等のうち、少なくとも何れか１つを格納している。
【００１９】
ディスプレイ２０６は、キーボード２０７から入力されたコマンドや、画像形成装置１１６〜１１９（例えばプリンタ）の状態等を表示するものである。
インターフェース２０８は、外部装置とのインターフェースである。このインターフェース２０８により、例えば、プリンタ、ＵＳＢ（Universal Serial Bus）機器、周辺機器と、情報処理装置とが相互に接続される。
キーボード２０７は、ユーザによる指示を入力する。尚、情報処理装置は、ユーザによる指示を入力する手段としてキーボード２０７の他にマウス等を有している。
【００２０】
システムバス２０１は、配信印刷システムの情報処理装置内のデータの流れを司るものである。
ネットワークインタフェースカード（ＮＩＣ）２０９は、通信手段の一例であり、ネットワーク１２０を介して外部装置とデータのやり取りを行う。
尚、図２に示した情報処理装置の構成は一例であり、情報処理装置の構成は、図２に示したものに限定されるものではない。例えば、データやプログラムの格納先は、その特徴に応じてＲＯＭ２０４、ＲＡＭ２０３、及びＨＤＤ２０５等の何れの記憶媒体であってもよく、適宜変更することができる。
【００２１】
図３は、本発明の実施形態に係る配信印刷システムの画像形成装置１１６〜１１９のハードウェア構成の一例を示す図である。
コントローラ３０１は、画像形成装置の制御系を司る機器である。コントローラ３０１は、ＣＰＵ３０２、ＲＡＭ３０３、ＲＯＭ３０４、ＨＤＤ３０５、ＬＥＤ３０６、ラスタコントローラ３０７、ＤＫＣ３０８、及び機器インターフェース３０９を含む。
ＣＰＵ３０２は、画像形成装置の全体の制御を行う。ＣＰＵ３０２は、ＲＯＭ３０４に記憶された制御プログラムや、ＤＫＣ３０８を介して外部メモリ３１４に記憶された制御プログラムや、リソースデータ等に基づいて、システムバス３１０に接続される各種デバイスとのアクセスを統括的に制御する。
ＲＡＭ３０３は、ＣＰＵ３０２の主メモリ、ワークエリア等として機能する。図示しない増設ポートに接続されるオプションＲＡＭによりＲＡＭ３０３のメモリ容量を拡張することができるように構成されている。
【００２２】
ＨＤＤ３０５は、大容量メモリとして機能する。ＨＤＤ３０５は、例えば、ジョブ自動印刷プログラム、印刷制御プログラム、投入された印刷ジョブ、及び関係プログラム等を格納している。
ラスタコントローラ３０７は、ＰＤＬ（Page Description Language）言語である印刷データを画像データに変換するコントローラである。
ディスクコントローラ（ＤＫＣ）３０８は、外部メモリ３１４における記憶動作を制御する。
機器インターフェース３０９は、ＵＳＢ等で接続可能な外部機器とのインターフェースである。
【００２３】
操作パネル３１３（操作部）は、画像形成装置の動作モード等の設定や、複写指定等の操作をユーザが行うためのボタンと、画像形成装置の動作状況等の表示を行うための液晶パネルとを備えている。尚、操作パネル３１３は、タッチパネルを備えていてもよい。
ＬＥＤ３０６は、画像形成装置の動作状況等に応じて点消灯する。
【００２４】
ネットワークインタフェースカード（ＮＩＣ）３１１は、外部装置とのインターフェースである。画像形成装置は、ＮＩＣ３１１を介して外部装置とのデータのやり取りを行う。
プリントエンジン３１２は、既知の印刷技術を利用して用紙に画像を印刷するものである。プリントエンジン３１２の好適な実施形態としては、例えば電子写真方式（レーザービーム方式）やインクジェット方式、昇華（熱転写）方式等を利用したプリントエンジンが挙げられる。
【００２５】
図４は、本発明の実施形態に係る配信印刷システムのシステム構成の一例をより具体的に示した図である。
クライアントＰＣ４０１〜４０３は、図１に示した情報処理装置１０９〜１１１に対応する。クライアントＰＣ４０１〜４０３は、Ｗｅｂブラウザプログラムを内部に保持する。そして、クライアントＰＣ４０１〜４０３は、Ｗｅｂアプリケーションサーバ４０４〜４０６に対し、Ｗｅｂページのリクエストを行う。これにより、クライアントＰＣ４０１〜４０３が備えるディスプレイ２０６にＷｅｂページが表示される。Ｗｅｂページでは、印刷ジョブ情報の表示、印刷ジョブ情報の選択、選択された印刷ジョブの出力を行うプリンタの選択、印刷情報の設定、印刷リクエスト、印刷中の印刷ジョブの優先度の変更、印刷の中止、保存された印刷ジョブの削除指示等を行える。尚、Ｗｅｂアプリケーションサーバ４０４〜４０６は、図１に示した情報処理装置１０１〜１０３に対応する。
【００２６】
Ｗｅｂアプリケーションサーバ４０４〜４０６は、クライアントＰＣ４０１〜４０３のＷｅｂブラウザで指示された処理を実行する。具体的にＷｅｂアプリケーションサーバ４０４〜４０６（後述する図６のＷｅｂサーバ６０１）は、Ｗｅｂブラウザで指示されたリクエストを受け取り、そのリクエストの処理を行う。Ｗｅｂブラウザで指示されたリクエストは、バランサ４１１を経由して、Ｗｅｂアプリケーションサーバ４０４〜４０６に送信される。このとき、バランサ４１１は、数種類のバランシィング（例えば、ラウンドロビン方式、最少コネクション方式等）でＷｅｂアプリケーションサーバ４０４〜４０６に接続を行う。尚、バランサ４１１は、図１に示したバランサ１１４に対応する。
【００２７】
印刷ジョブ情報（図７を参照）の表示を行う場合、Ｗｅｂアプリケーションサーバ４０４〜４０６は、データベースサーバ４１３を介して、ＨＤＤ４１５から印刷ジョブ情報を取得する。
この際、Ｗｅｂアプリケーションサーバ４０４〜４０６は、Ｗｅｂアプリケーションサーバ４０４〜４０６にログインしたユーザが参照可能な印刷ジョブ情報を、データベースサーバ４１３から取得する。尚、データベースサーバ４１３は、図１に示した情報処理装置１０７に対応し、ＨＤＤ４１５は、図１に示した記憶装置１１２に対応する。
【００２８】
図４に示す配信印刷システムでは、プリンタ４１７〜４２２の情報（図９を参照。以下、必要に応じてプリンタ情報と称する。）も、ＨＤＤ４１５に保存されている。Ｗｅｂアプリケーションサーバ４０４〜４０６は、データベースサーバ４１３を経由して、ＨＤＤ４１５からプリンタ情報を取得することができる。
【００２９】
また、印刷先のプリンタの候補をクライアントＰＣ４０１〜４０３のＷｅｂブラウザで表示する。このＷｅｂブラウザを参照してユーザが印刷先のプリンタを指定すると、Ｗｅｂアプリケーションサーバ４０４〜４０６は、印刷のリクエストをプリントサーバ４０７〜４１０に送信する。尚、プリントサーバ４０７〜４１０は、図１に示した情報処理装置１０４〜１０６に対応し、プリンタ４１７〜４２２は、図１に示した画像形成装置１１６〜１１９に対応する。
【００３０】
プリントサーバ４０７〜４１０は、指定されたプリンタ４１７〜４２２のプリンタ情報（図９を参照）と、印刷ジョブ情報（図７を参照）とを、データベースサーバ４１３から取得する。更にプリントサーバ４０７〜４１０は、指定された印刷ジョブのデータを、ジョブデータ保存サーバ４１４を介して、ＨＤＤ４１６から取得する。Ｗｅｂアプリケーションサーバ４０４〜４０６からプリントサーバ４０７〜４１０への印刷リクエストは、図１に示したバランサ１１５を経由して行われる。このとき、バランサ４１２は、数種類のバランシィング（例えば、ラウンドロビン方式、最少コネクション方式等）でプリントサーバ４０７〜４１０に接続を行う。
尚、プリントサーバ４０７〜４１０は、図１に示した情報処理装置１０４〜１０６に対応し、ジョブデータ保存サーバ４１４は、図１に示した情報処理装置１０８に対応し、ＨＤＤ４１６は、図１に示した記憶装置１１３に対応する。また、バランサ４１２は、図１に示したバランサ１１５に対応する。
プリントサーバ４０７〜４１０は、取得した印刷ジョブのデータを、指定されたプリンタに対して投入する。この処理の際、プリントサーバ４０７〜４１０は、プリンタ４１７〜４２２の監視も行う。
【００３１】
図５は、プリントサーバ４０７〜４１０の機能構成の一例を示す図である。
図５において、印刷リクエスト受付部５０１は、Ｗｅｂアプリケーションサーバ４０４〜４０６からの印刷リクエスト（ジョブの投入依頼）を受け付ける。印刷リクエストを受け付けるとジョブデータ取得部５０２は、データベースサーバ４１３から、印刷リクエストで指定された印刷ジョブの印刷ジョブ情報（図７を参照）を、データベースサーバ４１３を介してＨＤＤ４１５から取得する。また、ジョブデータ取得部５０２は、印刷リクエストで指定された印刷ジョブのデータを、ジョブデータ保存サーバ４１４を介してＨＤＤ４１６から取得する。ジョブ送信部５０４は、印刷リクエストで指定されたプリンタに、印刷ジョブのデータを送信し、ジョブを投入する。
【００３２】
また、ジョブスケジューリング部５０７は、印刷ジョブのスケジュールを管理し、ジョブ監視部５０５は、印刷処理を実行中の印刷ジョブを監視する。ジョブ監視部５０５は、印刷処理が実行されると、データベースサーバ４１３を介してＨＤＤ４１５にアクセスし、印刷ジョブ情報が記述されたジョブ情報テーブル（図７を参照）のステータスを更新する。プリントサーバ４０７〜４１０が起動している最中は、必要に応じてデバイス監視部５０６でプリンタ４１７〜４２２の状態を監視する。
以上のように本実施形態では、プリントサーバ４０７〜４１０によって、ジョブ投入装置が実現される。
【００３３】
図６は、Ｗｅｂアプリケーションサーバ４０４〜４０６の機能構成の一例を示す図である。
Ｗｅｂアプリケーションサーバ４０４〜４０６は、クライアントＰＣ４０１〜４０３（Ｗｅｂブラウザ）からのリクエスト（ジョブの出力要求）を受け付けるＷｅｂサーバ６０１を有している。更に、Ｗｅｂアプリケーションサーバ４０４〜４０６は、そのリクエストに対し実際の処理を行うアプリケーションサーバ６０４とを有している。
Ｗｅｂサーバ６０１は、ブラウザリクエスト受付部６０２と、ページ送信部６０３と有している。一方、アプリケーションサーバ６０４は、ページ生成部６０５と、セッション管理部６０６と、プログラム実行部６０７とを有している。
【００３４】
ブラウザリクエスト受付部６０２は、Ｗｅｂブラウザからのリクエストを受け付ける。ページ生成部６０５は、リクエストに対するレスポンスとなるＷｅｂページを生成する。ページ送信部６０３は、Ｗｅｂブラウザに対し、ページ生成部６０５で生成されたＷｅｂページを送信する。セッション管理部６０６は、Ｗｅｂブラウザからのセッションを管理し、セッション情報の保持を行う。
【００３５】
プログラム実行部６０７は、通信部６０８を有する。プログラム実行部６０７は、通信部６０８を用いて、データベースサーバ４１３に対し、ユーザが所望する印刷ジョブ情報の取得をリクエストしたり、プリントサーバ４０７〜４１０に対し、印刷リクエスト（ジョブの投入依頼）を行ったりする。このとき通信部６０８は、データベースサーバ４１３、及びプリントサーバ４０７〜４１０に対する通信を、決められた通信プロトコルを使用して行う。
以上のように本実施形態では、Ｗｅｂアプリケーションサーバ４０４〜４０６によって、ジョブ投入依頼装置が実現される。
【００３６】
図７は、印刷ジョブ情報が記述されたジョブ情報テーブルの構成の一例を示す図である。このジョブ情報テーブルは、データベースサーバ４１３が管理するＨＤＤ４１５で保持される。
図７において、ジョブ情報テーブル７０１は、印刷ジョブ情報を保持するテーブルであり、このジョブ情報テーブル７０１には、複数のジョブ情報レコード７０２ａ、７０２ｂが登録される。ジョブ情報レコード７０２には、ジョブ識別ＩＤ７０３、ジョブ名７０４、プリンタ識別情報７０５、プリントサーバ７０６、及びステータス７０７が含まれる。これらジョブ情報レコード７０２の登録内容について、以下に詳述する。
【００３７】
ジョブ識別ＩＤ７０３は、印刷ジョブをユニークに識別するためのＩＤであり、配信印刷システムでユニークなＩＤとなる。ジョブ名７０４は、印刷ジョブの名称である。プリンタ識別情報７０５は、印刷を行うプリンタを識別する情報である。印刷を行うプリンタは、Ｗｅｂブラウザに対して、ユーザが指定する。プリントサーバ４０７〜４１０は、その指定されたプリンタに対して印刷ジョブを投入する。そして、プリントサーバ４０７〜４１０は、投入した印刷ジョブの監視を行う。また、プリントサーバ４０７〜４１０は、プリンタ４１７〜４２２の監視を行う。
プリンタ識別情報としては、例えば、プリンタ４１７〜４２２のＩＰアドレス、ホスト名等が使用される。
【００３８】
ステータス７０７は、印刷ジョブのステータスであり、例えば、"待機中"、"スケジュール待機中"、"転送中"、"転送済み"、"印刷中"、"正常終了"、"エラー終了"等の印刷ジョブの状態を表すステータス情報である。印刷ジョブの監視を行うプリントサーバ４０７〜４１０からの指示によって、印刷ジョブの状況に応じてこのステータス７０７の値が更新される。
以上のような印刷ジョブ情報は、データベースサーバ４１３からＷｅｂアプリケーションサーバ４０４〜４０６に送信され、Ｗｅｂブラウザで参照することが可能である。
以上のように本実施形態では、プリンタ識別情報７０５により、ジョブの投入先となる出力先の情報が実現される。また、プリントサーバ７０６により、ジョブの投入処理を実行しているジョブ投入装置の情報が実現される。更に、ステータス７０７により、ジョブの投入処理の進行状況が実現される。そして、これらプリンタ識別情報７０５、プリントサーバ７０６、ステータス７０７が互いに対応付けられて、ジョブ情報テーブル７０１（ＨＤＤ４１５）に登録されている。
【００３９】
図８は、配信印刷システム全体の情報が記述されたシステム情報テーブルの構成の一例を示す図である。このシステム情報テーブルは、データベースサーバ４１３が管理するＨＤＤ４１５で保持される。
図８において、システム情報テーブル８０１には、バランサのＩＰアドレス（仮想ＩＰアドレス）８０２ａ、８０２ｂ、データベース接続アカウント８０３、及びデータベース接続パスワード８０４が含まれている。尚、バランサのＩＰアドレス（仮想ＩＰアドレス）８０２の数は、配信印刷システムに設けられているバランサの数と同数となる。
【００４０】
Ｗｅｂアプリケーションサーバ４０４〜４０６は、プリントサーバ４０７〜４１０に対し、印刷リクエストを行う際に、通常は、図４に示したバランサ４１２に対応するＩＰアドレス（仮想ＩＰアドレス）８０２に対し接続を行う。バランサ４１２は、数種類のバランシィング方法を使用して、接続するプリントサーバ４０７〜４１０を決め、そのプリントサーバとの接続を行う。数種類のバランシィング方法としては、例えば、ラウンドロビン方式、重み付けラウンドロビン方式、最速応答時間／最小サーバ負荷方式、及び最少コネクション方式等がある。
【００４１】
ラウンドロビン方式とは、各サーバに均等にトラフィックを振り分ける方式であると一般的に言われているものである。重み付けラウンドロビン方式とは、各サーバに優先順位を付け、各サーバに振り分けるトラフィック量を優先順位に応じてサーバ毎に変えることができる方式であると一般的に言われているものである。最速応答時間／最小サーバ負荷方式とは、最も速くレスポンスがあったサーバ、最も負荷の小さいサーバ等、サーバの稼働状況によってトラフィックを振り分ける方法であると一般的に言われているものである。最少コネクション方式とは、トラフィックをサーバに振り分けながらコネクションの状況をテーブルとして管理し、そのテーブルの情報から最もコネクションが少ないサーバを抽出してトラフィックを振り分ける方法であると一般的に言われているものである。
以上のように本実施形態では、バランサ４１２によって、プリントサーバ４０７〜４１０における負荷分散を行う負荷分散装置が実現される。
【００４２】
データベース接続アカウント８０３、データベース接続パスワード８０４は、Ｗｅｂアプリケーションサーバ４０４〜４０６又はプリントサーバ４０７〜４１０がデータベースサーバ４１３にログインするときのログイン認証情報として使用される。データベース接続アカウント８０３、データベース接続パスワード８０４の値は、データベース上では暗号化されて保持される。
【００４３】
図９は、プリンタ情報が記述されたプリンタ情報テーブルの構成の一例を示す図である。このプリンタ情報テーブルは、データベースサーバ４１３が管理するＨＤＤ４１５で保持される。
図９において、プリンタ情報テーブル９０１は、複数のプリンタ４１７〜４２２の夫々についてプリンタ情報を保持する。各プリンタ４１７〜４２２のプリンタ情報のレコードとしては、例えば、プリンタ名９０２、プリンタ識別情報９０３、ステータス９０４、及びドライバ名９０５等がある。
【００４４】
プリンタ名９０２は、配信印刷システムに設けられたプリンタ４１７〜４２２の名称である。また、プリンタ識別情報９０３は、プリンタ４１７〜４２２のＩＰアドレス、又はホスト名等、ネットワーク１２０上でプリンタ４１７〜４２２を識別するための情報である。
ステータス９０４は、プリンタ４１７〜４２２の状態を表す情報（値）である。プリントサーバ４０７〜４１０のデバイス監視部５０６が、プリンタ４１７〜４２２の状態を検知すると、検知した状態を表す値に、ステータス９０４の値を更新する。ドライバ名９０５は、プリントサーバ４０７〜４１０が、印刷する際に使用するドライバの名称である。
【００４５】
図１０は、クライアントＰＣ４０１〜４０３（Ｗｅｂブラウザ）から、Ｗｅｂアプリケーションサーバ４０４〜４０６に対し印刷指示を行う際に送る印刷リクエスト情報の一例を示す図である。この印刷リクエスト情報は、Ｗｅｂアプリケーションサーバ４０４〜４０６がプリントサーバ４０７〜４１０に印刷リクエストをする際に送る印刷リクエスト情報でもある。
図１０において、印刷リクエスト情報１００１には、プリンタ名１００２とジョブ識別ＩＤ１００３とが含まれている。プリンタ名１００２は、図９に示したプリンタ情報テーブル９０１のプリンタ名９０２と一致する情報である。Ｗｅｂアプリケーションサーバ４０４〜４０６は、このプリンタ名１００２から、プリンタ識別情報９０３を特定する。ジョブ識別ＩＤ１００３は、図７に示したジョブ情報テーブル７０１のジョブ識別ＩＤ７０３と一致する情報である。ジョブ識別ＩＤ１００３は、印刷ジョブをユニークに識別するためのＩＤであり、配信印刷システムでユニークなＩＤとなる。
【００４６】
図１１は、クライアントＰＣ（Ｗｅｂブラウザ）４０１〜４０３からバランサ４１１を介して、Ｗｅｂアプリケーションサーバ４０４〜４０６に対して印刷指示を行う際の配信印刷システムにおける処理の一例を説明するフローチャートである。
まず、ステップＳ１１０１において、クライアントＰＣは、Ｗｅｂページの印刷実行ページで"印刷実行"ボタンが押下されるまで待機する。すなわち、クライアントＰＣは、印刷の実行が指示されるまで待機する。
【００４７】
印刷の実行が指示されると、ステップＳ１１０２に進み、クライアントＰＣは、Ｗｅｂアプリケーションサーバに対し、印刷リクエスト情報１００１を送信する。図１０に示したように、印刷リクエスト情報１００１には、プリンタ名１００２とジョブ識別ＩＤ１００３とが含まれる。
【００４８】
次に、ステップＳ１１０３において、クライアントＰＣは、Ｗｅｂアプリケーションサーバから、ステップＳ１１０２で送信した印刷リクエスト情報１００１に対するレスポンスの結果を取得するまで待機する。印刷リクエスト情報１００１に対するレスポンスの結果を取得すると、ステップＳ１１０４に進み、クライアントＰＣは、その結果を示すＷｅｂページをＷｅｂブラウザで表示する。
【００４９】
図１２は、Ｗｅｂアプリケーションサーバからプリントサーバに対し印刷リクエストを行う際の配信印刷システムにおける処理の一例を説明するフローチャートである。
ステップＳ１２０１において、Ｗｅｂアプリケーションサーバは、印刷リクエスト情報１００１を、クライアントＰＣのＷｅｂブラウザから受信するまで待機する。
【００５０】
そして、印刷リクエスト情報１００１を受信すると、ステップＳ１２０２に進む。そして、Ｗｅｂアプリケーションサーバは、ステップＳ１２０１で受信された印刷リクエスト情報１００１に、プリンタ名１００２とジョブ識別ＩＤ１００３との両方が含まれているか否かを判定する。この判定の結果、プリンタ名１００２とジョブ識別ＩＤ１００３との少なくとも何れか一方が印刷リクエスト情報１００１に含まれていない場合には、図１２のフローチャートによる処理を終了する。
【００５１】
一方、プリンタ名１００２とジョブ識別ＩＤ１００３との双方が印刷リクエスト情報１００１に含まれている場合には、ステップＳ１２０３に進む。そして、Ｗｅｂアプリケーションサーバは、受信した印刷リクエスト情報１００１に含まれるプリンタ名１００２に対応するプリンタ識別情報９０３の取得を、データベースサーバ４１３に対してリクエストする。データベースサーバ４１３は、ＨＤＤ４１５内のプリンタ情報テーブル９０１を参照し、プリンタ名１００２と一致するプリンタ名９０２のレコードからプリンタ識別情報９０３を抽出する。そして、データベースサーバ４１３は、抽出したプリンタ識別情報９０３をリクエストに対するレスポンスとして、Ｗｅｂアプリケーションサーバ４０４〜４０６に送信する。プリンタ識別情報９０３を受信したＷｅｂアプリケーションサーバは、そのプリンタ識別情報９０３に対応する印刷ジョブ情報の取得を、データベースサーバ４１３に対してリクエストする。データベースサーバ４１３は、ＨＤＤ４１５内のジョブ情報テーブル７０１を参照し、プリンタ識別情報９０３と一致するプリンタ識別情報７０５が属するジョブ情報レコード７０２を抽出する。そして、データベースサーバ４１３は、抽出したジョブ情報レコード７０２をリクエストに対するレスポンスとして、Ｗｅｂアプリケーションサーバ４０４〜４０６に送信する。尚、プリンタ識別情報９０３と一致するプリンタ識別情報７０５が属するジョブ情報レコード７０２がない場合、データベースサーバ４１３は、そのことを、リクエストに対するレスポンスとして、Ｗｅｂアプリケーションサーバ４０４〜４０６に送信する。
尚、ここでは、Ｗｅｂアプリケーションサーバが、リクエストを２回行うようにしたが、１回のリクエストとしてもよい。この場合、データベースサーバ４１３は、プリンタ情報テーブル９０１から抽出したプリンタ識別情報９０３に基づいて、ジョブ情報テーブル７０１からジョブ情報レコード７０２を抽出することになる。
【００５２】
次に、ステップＳ１２０４において、Ｗｅｂアプリケーションサーバは、ジョブ情報レコード７０２が抽出されたか否かを判定する。この判定の結果、ジョブ情報レコード７０２が抽出されなかった場合には、後述するステップＳ１２０９に進む。
一方、ジョブ情報レコード７０２が抽出された場合には、ステップＳ１２０５に進む。そして、Ｗｅｂアプリケーションサーバは、抽出されたジョブ情報レコード７０２内のプリントサーバ７０６を参照する。
以上のように本実施形態では、ステップＳ１２０３〜Ｓ１２０５の処理を行うことによって探索手段が実現される。
【００５３】
次に、ステップＳ１２０６において、Ｗｅｂアプリケーションサーバは、参照したプリントサーバ７０６の値が空でないかどうかを判定する。この判定の結果、参照したプリントサーバ７０６の値が空である場合には、ステップＳ１２０４に戻る。
一方、参照したプリントサーバ７０６の値が空でない場合には、ステップＳ１２０７に進む。そして、Ｗｅｂアプリケーションサーバは、参照したプリントサーバ７０６で特定されるプリントサーバに対し通信コネクションをはり、印刷リクエスト情報１００１を送信する。
以上のように本実施形態では、ステップＳ１２０６の処理を行うことによって、判定手段が実現され、ステップＳ１２０７の処理を行うことによって、依頼手段が実現される。
次に、ステップＳ１２０８において、バランサ４１２は、印刷リクエスト情報１００１を送信したＷｅｂアプリケーションサーバと、指定されたプリントサーバとを通信可能に接続する。これにより、Ｗｅｂアプリケーションサーバと、プリントサーバとの通信が可能になる。そして、後述するステップＳ１２１１に進む。
【００５４】
ステップＳ１２０４において、ジョブ情報レコード７０２が抽出されなかったと判定された場合には、ステップＳ１２０９に進む。そして、Ｗｅｂアプリケーションサーバは、バランサ４１２のＩＰアドレスの取得を、データベースサーバ４１３に対してリクエストする。データベースサーバ４１３は、ＨＤＤ４１５内のシステム情報テーブル８０１を参照し、バランサ４１２のＩＰアドレス８０２を抽出する。そして、データベースサーバ４１３は、抽出したバランサ４１２のＩＰアドレス８０２をリクエストに対するレスポンスとして、Ｗｅｂアプリケーションサーバに送信する。バランサ４１２のＩＰアドレス８０２を受信すると、Ｗｅｂアプリケーションサーバ４０４〜４０６は、バランサ４１２のＩＰアドレス８０２に、印刷リクエスト情報１００１を送信する。
以上のように本実施形態では、ステップＳ１２０９の処理を行うことによって、第２の依頼手段が実現される。
次に、ステップＳ１２１０において、バランサ４１２は、数種類のバランシィング方法（例えば、ラウンドロビン方式、最少コネクション方式等）に基づいて決定したプリントサーバと、Ｗｅｂアプリケーションサーバ４０４〜４０６とを通信可能に接続する。そして、ステップＳ１２１１に進む。
【００５５】
ステップＳ１２１１に進むと、Ｗｅｂアプリケーションサーバは、印刷リクエスト情報１００１の受け付けに成功したことを示す情報をプリントサーバから受信したか否かを判定する。この判定の結果、印刷リクエスト情報１００１の受け付けに成功したことを示す情報を受信した場合には、図１２のフローチャートによる処理を終了する。
一方、印刷リクエスト情報１００１の受け付けに成功したことを示す情報を受信していない場合には、ステップＳ１２１２に進む。そして、プリントサーバは、Ｗｅｂアプリケーションサーバに対し、エラー通知と、指定されたプリンタに対し印刷処理を実行している最中のプリントサーバの情報とを返す。Ｗｅｂアプリケーションサーバは、プリントサーバから受け取ったプリントサーバの情報に対応するプリントサーバに対し印刷リクエスト情報１００１を再度送信する。
【００５６】
次に、ステップＳ１２１３において、Ｗｅｂアプリケーションサーバ４０４〜４０６は、印刷リクエスト情報１００１の受け付けに成功したことを示す情報をプリントサーバから受信したか否かを判定する。この判定の結果、印刷リクエスト情報１００１の受け付けに成功したことを示す情報を受信した場合には、図１２のフローチャートによる処理を終了する。
一方、印刷リクエスト情報１００１の受け付けに成功したことを示す情報を受信していない場合には、ステップＳ１２１２に戻る。
【００５７】
図１３は、ジョブデータ保存サーバ４１４が管理するＨＤＤ４１６内で保持される印刷ジョブのデータの保存構成の一例を示す図である。
図１３に示す例では、印刷ジョブを配信印刷システム内でユニークに識別するためのジョブ識別ＩＤ１３１２と、印刷ジョブのデータ（ジョブデータ）１３１３とを含むデータ保存構成１３１１となっている。
【００５８】
図１４は、プリントサーバ４０７〜４１０がプリンタ４１７〜４２２に対し印刷処理を実行する際の配信印刷システムにおける処理の一例を説明するフローチャートである。
ステップＳ１４０１において、プリントサーバは、Ｗｅｂアプリケーションサーバから、印刷リクエスト情報１００１を受信するまで待機する。印刷リクエスト情報１００１を受信すると、ステップＳ１４０２に進む。
以上のように本実施形態では、ステップＳ１４０１の処理を行うことによって、ジョブの投入の依頼を受け付ける受付手段が実現される。
そして、プリントサーバは、ステップＳ１４０１で受信した印刷リクエスト情報１００１のジョブ識別ＩＤ１００３に対応するジョブ情報レコードの取得を、データベースサーバ４１３に対してリクエストする。データベースサーバ４１３は、ＨＤＤ４１５内のジョブ情報テーブル７０１を参照し、ジョブ識別ＩＤ１００３に一致するジョブ識別ＩＤ７０３を有するジョブ情報レコード７０２をジョブ情報テーブル７０１から抽出する。そして、データベースサーバ４１３は、抽出したジョブ情報レコード７０２をリクエストに対するレスポンスとして、プリントサーバに送信する。そして、プリントサーバは、送信されたジョブ情報レコード７０２からプリントサーバ７０６の情報を参照する。
【００５９】
次に、ステップＳ１４０３において、プリントサーバは、ステップＳ１４０２で参照したプリントサーバ７０６の値が空であるか否かを判定する。この判定の結果、プリントサーバ７０６の値が空でない場合には、ステップＳ１４０６に進む。そして、プリントサーバは、プリントサーバ７０６の情報を取得し、エラー通知と共に、取得したプリントサーバ７０６の情報を、Ｗｅｂアプリケーションサーバに送信する。
【００６０】
ステップＳ１４０３において、ステップＳ１４０２で参照したプリントサーバ７０６の値が空である場合には、ステップＳ１４０４に進む。そして、プリントサーバは、ジョブ情報レコード７０２のプリントサーバ７０６に自身のＩＰアドレス（又はホスト名）を書き込むことを、データベースサーバ４１３にリクエストする。データベースサーバ４１３は、ジョブ情報テーブル７０１を参照し、リクエストのあったプリントサーバのＩＰアドレス（又はホスト名）を、該当するプリントサーバ７０６に書き込む。
以上のように本実施形態では、ステップＳ１４０４の処理を行うことにより登録指示手段（の一部）が実現される。
【００６１】
次に、ステップＳ１４０５において、プリントサーバは、ステップＳ１４０１で受信した印刷リクエスト情報１００１に含まれるプリンタ名１００２で指定されたプリンタに対し、印刷ジョブのスケジュールの取得を要求する。このとき、プリントサーバは、データベースサーバ４１３に対し、ジョブ情報テーブル７０１のステータス７０７を"スケジュール待機中"に更新することをリクエストする。データベースサーバ４１３は、ジョブ情報テーブル７０１を参照し、該当するステータス７０７を"スケジュール待機中"に更新する。
以上のように本実施形態では、ステップＳ１４０５の処理を行うことにより登録指示手段（の一部）が実現される。
【００６２】
次に、ステップ１４０７において、プリントサーバは、印刷ジョブのスケジュールの取得を要求したプリンタから、印刷ジョブのスケジュールを受信したか否かを判定する。この判定の結果、印刷ジョブのスケジュールを受信しなかった場合には、図１４のフローチャートによる処理を終了する。
一方、印刷ジョブのスケジュールを受信した場合には、ステップＳ１４０８に進む。そして、プリントサーバは、ステップＳ１４０１で受信した印刷リクエスト情報１００１に含まれるジョブ識別ＩＤ１００３に対応する印刷ジョブのデータの取得を、ジョブデータ保存サーバ４１４にリクエストする。ジョブデータ保存サーバ４１４は、ＨＤＤ４１６に記憶されているデータ保存構成１３１１（テーブル）を参照し、ジョブ識別ＩＤ１００３と一致するジョブ識別ＩＤ１３１２に対応する印刷ジョブのデータ（ジョブデータ）１３１３を抽出する。そして、ジョブデータ保存サーバ４１４は、印刷ジョブのデータ（ジョブデータ）１３１３を、リクエストに対するレスポンスとして、プリントサーバに送信する。これにより、プリントサーバは、ステップＳ１４０１で受信した印刷リクエスト情報１００１に含まれるジョブ識別ＩＤ１００３に対応する印刷ジョブのデータを取得する。
【００６３】
次に、ステップＳ１４０９において、プリントサーバは、印刷ジョブのデータ（ジョブデータ）１３１３の取得に成功したか否かを判定する。この判定の結果、印刷ジョブのデータ（ジョブデータ）１３１３の取得に失敗した場合には、図１４のフローチャートによる処理を終了する。一方、印刷ジョブのデータ（ジョブデータ）１３１３の取得に成功した場合には、ステップＳ１４１０に進む。そして、プリントサーバは、ステップＳ１４０１で受信した印刷リクエスト情報１００１に含まれるプリンタ名１００２と一致するプリンタのプリンタ情報の取得を、データベースサーバ４１３に対しリクエストする。データベースサーバ４１３は、プリンタ情報テーブル９０１を参照し、プリンタ名１００２と一致するプリンタのレコード（プリンタ情報）を抽出する。データベースサーバ４１３は、抽出したレコード（プリンタ情報）をリクエストに対するレスポンスとして、プリントサーバ４０７〜４１０に送信する。これにより、プリントサーバは、印刷リクエスト情報１００１に含まれるプリンタ名１００２と一致するプリンタのプリンタ情報を取得する。そして、プリントサーバは、取得したプリンタ情報に含まれるプリンタ識別情報９０３で識別されるプリンタに対し、取得した印刷ジョブのデータ（ジョブデータ）１３１３を送信する。このとき、プリントサーバは、データベースサーバ４１３に対し、ジョブ情報テーブル７０１のステータス７０７を"転送中"に更新することをリクエストする。データベースサーバ４１３は、ジョブ情報テーブル７０１を参照し、該当するステータス７０７を"転送中"に更新する。
以上のように本実施形態では、ステップＳ１４１０の処理を行うことにより登録指示手段（の一部）が実現される。
【００６４】
次に、ステップＳ１４１１において、プリントサーバは、印刷ジョブのデータ（ジョブデータ）１３１３の送信に成功したか否かを判定する。この判定の結果、印刷ジョブのデータ（ジョブデータ）１３１３の送信に失敗した場合には、図１４のフローチャートによる処理を終了する。
一方、印刷ジョブのデータ（ジョブデータ）１３１３の送信に成功した場合（印刷ジョブのデータ（ジョブデータ）１３１３の転送が正常に完了した場合）には、ステップＳ１４１２に進む。そして、プリントサーバは、データベースサーバ４１３に対し、ジョブ情報テーブル７０１のステータス７０７を"転送済み"に更新することをリクエストする。データベースサーバ４１３は、ジョブ情報テーブル７０１を参照し、該当するステータス７０７を"転送済み"に更新する。更に、プリントサーバは、データベースサーバ４１３に対し、プリントサーバ７０６の情報を削除する（空にする）ことをリクエストする。データベースサーバ４１３は、ジョブ情報テーブル７０１を参照し、該当するプリントサーバ７０６の情報を削除する（空にする）。
以上のように本実施形態では、ステップＳ１４１２の処理を行うことにより登録指示手段（の一部）が実現される。また、本実施形態では、ステップＳ１４０４で転送処理が開始し、ステップＳ１４１３で転送処理が終了する（ただし、ジョブの投入は、ステップＳ１４１２で終了する）。すなわち、本実施形態では、ステップＳ１４０４〜Ｓ１４１３の処理を行うことにより投入処理手段が実現される。
【００６５】
次に、ステップＳ１４１３において、プリントサーバは、印刷ジョブのデータ（ジョブデータ）１３１３を送信したプリンタからジョブ完了通知を受信すると、次の処理を行う。すなわち、プリントサーバは、データベースサーバ４１３に対し、ジョブ情報テーブル７０１のステータス７０７を"印刷完了"に更新することをリクエストする。データベースサーバ４１３は、ジョブ情報テーブル７０１を参照し、該当するステータス７０７を"印刷完了"に更新する。
【００６６】
図１５は、本発明の実施形態に係る配信印刷システムにおけるプリントサーバ４０７〜４１０によって更新される印刷ジョブのステータス７０７の遷移の一例を示す図である。ステータス７０７は、印刷処理の進行状況を表すものであり、プリントサーバ４０７〜４１０の処理状況や、デバイス監視部５０６がプリンタから受信したプリンタ４１７〜４２２のステータスが反映され更新されていくものである。
【００６７】
図１１のステップＳ１１０１において、印刷の実行が指示される前の状態では、印刷ジョブのステータス７０７は、待機中１５０１になる。すなわち、どのプリントサーバ４０７〜４１０も印刷処理を行っていない印刷ジョブのステータス７０７は、待機中１５０１になる。図１１、図１２のフローチャートを経て図１４のステップＳ１４０７〜Ｓ１４１０のようなプリントサーバ４０７〜４１０における印刷処理が始まると、ステップＳ１４０５で、印刷ジョブのステータス７０７は、スケジュール待機中１５０２となる。
【００６８】
図１４のステップＳ１４１０で、プリントサーバからプリンタに印刷ジョブのデータ（ジョブデータ）１３１３が転送されると、印刷ジョブのステータス７０７は、転送中１５０３となる。そして、ステップＳ１４１２で、印刷ジョブのデータ（ジョブデータ）１３１３の送信が完了すると、印刷ジョブのステータス７０７は、転送済み１５０４になる。更に、ステップＳ１４１３で、プリンタで印刷完了（排紙済み）になるとプリントサーバはそのプリンタから印刷完了の通知を受け、この通知に基づいて印刷ジョブのステータス７０７は、正常終了１５０６又はエラー終了１５０７となる。
【００６９】
図１２に示したＷｅｂアプリケーションサーバ４０４〜４０６の処理（ステップＳ１２０６）において、プリントサーバ７０６の値が空でない場合、印刷ジョブのステータス７０７は、スケジュール待機中１５０２、転送中１５０３、又は転送済み１５０４である。印刷ジョブのステータス７０７が、その他のステータスの場合は、プリントサーバ７０６の値は空となる。本実施形態では、Ｗｅｂアプリケーションサーバ４０４〜４０６が印刷リクエスト情報１００１を、ロードバランスされた複数のプリントサーバ４０７〜４１０のどれかに送信する際に、印刷ジョブのステータス７０７に応じて、送信するプリントサーバを決定する。印刷ジョブのステータス７０７が、スケジュール待機中１５０２、転送中１５０３、及び転送済み１５０４の場合、つまりプリントサーバ７０６の情報が存在する場合は、プリントサーバ７０６で識別されるプリントサーバに印刷リクエスト情報１００１を送信する。一方、プリントサーバ７０６の情報が空の場合、つまり、印刷ジョブのステータス７０７が、待機中１５０１、転送済み１５０４、印刷中１５０５、正常終了１５０６、エラー終了１５０７の場合、バランサ４１２に対し、印刷リクエスト情報１００１を送信する。
【００７０】
以上のように本実施形態では、Ｗｅｂアプリケーションサーバ４０４〜４０６は、クライアントＰＣ４０１〜４０３から、印刷リクエスト情報１００１を受信する。そして、Ｗｅｂアプリケーションサーバ４０４〜４０６は、受信した印刷リクエスト情報１００１内のプリンタ名１００２に対応するジョブ情報レコード７０２を取得する。ジョブ情報レコード７０２は、印刷ジョブに関する情報を示すものである。ジョブ情報レコード７０２には、印刷ジョブに対する印刷処理を行っているプリントサーバを示すレコード（プリントサーバ７０６）がある。そして、このプリントサーバ７０６の値が空でない場合、Ｗｅｂアプリケーションサーバ４０４〜４０６は、そのプリントサーバ７０６の値で識別されるプリントサーバに対し、印刷リクエスト情報１００１を送信して印刷処理を指示する。このように本実施形態では、印刷ジョブの投入先として指定されたプリンタに対して印刷処理を行っているプリントサーバが存在する場合には、そのプリントサーバに対して、印刷処理の実行を指示するようにした。したがって、同一のプリンタに対する印刷リクエスト情報１００１については、発行順にプリントサーバ４０７〜４１１に到着するようになる。よって、複数のプリントサーバ４０７〜４１０の夫々がプリンタ４１７〜４２２に投入する印刷ジョブを制御する環境において、同一のプリンタに対する印刷ジョブをクライアントＰＣ４０１〜４０３からの要求順にそのプリンタに投入することができる。
【００７１】
（本発明の他の実施形態）
前述した本発明の実施形態におけるジョブ投入依頼装置、ジョブ投入装置、ジョブ投入システムを構成する各手段、並びにジョブ投入方法の各ステップは、コンピュータのＲＡＭやＲＯＭなどに記憶されたプログラムが動作することによって実現できる。このプログラム及び前記プログラムを記録したコンピュータ読み取り可能な記録媒体は本発明に含まれる。
【００７２】
また、本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
【００７３】
尚、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム（実施形態では図１１、図１２、図１４に示すフローチャートに対応したプログラム）を、システムあるいは装置に直接、あるいは遠隔から供給する。そして、そのシステムあるいは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
【００７４】
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【００７５】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であってもよい。
【００７６】
プログラムを供給するための記録媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷなどがある。また、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などもある。
【００７７】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【００７８】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【００７９】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【００８０】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【００８１】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
【００８２】
尚、前述した各実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【図面の簡単な説明】
【００８３】
【図１】本発明の実施形態を示し、配信印刷システムのネットワーク構成の一例を示すブロック図である。
【図２】本発明の実施形態を示し、情報処理装置のハードウェア構成の一例を示す図である。
【図３】本発明の実施形態を示し、画像形成装置のハードウェア構成の一例を示す図である。
【図４】本発明の実施形態を示し、配信印刷システムのシステム構成の一例をより具体的に示した図である。
【図５】本発明の実施形態を示し、プリントサーバの機能構成の一例を示す図である。
【図６】本発明の実施形態を示し、Ｗｅｂアプリケーションサーバの機能構成の一例を示す図である。
【図７】本発明の実施形態を示し、印刷ジョブ情報が記述されたジョブ情報テーブルの構成の一例を示す図である。
【図８】本発明の実施形態を示し、配信印刷システム全体の情報が記述されたシステム情報テーブルの構成の一例を示す図である。
【図９】本発明の実施形態を示し、プリンタ情報が記述されたプリンタ情報テーブルの構成の一例を示す図である。
【図１０】本発明の実施形態を示し、印刷リクエスト情報の一例を示す図である。
【図１１】本発明の実施形態を示し、クライアントＰＣ（Ｗｅｂブラウザ）からバランサを介して、Ｗｅｂアプリケーションサーバに対して印刷指示を行う際の配信印刷システムにおける処理の一例を説明するフローチャートである。
【図１２】本発明の実施形態を示し、Ｗｅｂアプリケーションサーバからプリントサーバに対し印刷リクエストを行う際の配信印刷システムにおける処理の一例を説明するフローチャートである。
【図１３】本発明の実施形態を示し、ジョブデータ保存サーバが管理するＨＤＤ内で保持される印刷ジョブのデータの保存構成の一例を示す図である。
【図１４】本発明の実施形態を示し、プリントサーバがプリンタに対し印刷処理を実行する際の配信印刷システムにおける処理の一例を説明するフローチャートである。
【図１５】本発明の実施形態を示し、プリントサーバによって更新される印刷ジョブのステータスの遷移の一例を示す図である。
【符号の説明】
【００８４】
４０１〜４０３  クライアントＰＣ（Ｗｅｂブラウザ)
４０４〜４０６  Ｗｅｂアプリケーションサーバ
４０７〜４１０  プリントサーバ
４１１、４１２  バランサ
４１３  データベースサーバ
４１４ジョブデータ保存サーバ
４１５、４１６  ＨＤＤ
４１７〜４２２  プリンタ（画像形成装置）
７０１  ジョブ情報テーブル
７０２  ジョブ情報レコード
８０１  システム情報テーブル
９０１  プリンタ情報テーブル
１００１  印刷リクエスト情報
【図１】
0004916401.tif 000002
【図２】
0004916401.tif 000003
【図３】
0004916401.tif 000004
【図４】
0004916401.tif 000005
【図５】
0004916401.tif 000006
【図６】
0004916401.tif 000007
【図７】
0004916401.tif 000008
【図８】
0004916401.tif 000009
【図９】
0004916401.tif 000010
【図１０】
0004916401.tif 000011
【図１１】
0004916401.tif 000012
【図１２】
0004916401.tif 000013
【図１３】
0004916401.tif 000014
【図１４】
0004916401.tif 000015
【図１５】
0004916401.tif 000016