(57)【特許請求の範囲】
【請求項１】
複数のスレッドがそれぞれ、印刷リクエストのジョブに対応するアプリケーションを起動させる前にアプリケーション起動管理テーブル内の該当するアプリケーションのアプリケーション起動情報を参照し、そのアプリケーション起動情報に複数起動可又は未起動が記憶されていれば、そのアプリケーションを起動させてレンダリングを行わせ、起動中が記憶されており、複数起動可が記憶されていなければ、そのアプリケーションの起動は行わずに制御することにより、複数のアプリケーションのレンダリング処理を前記各スレッドにより同時に行うように制御する手段を設けたことを特徴とする印刷サーバ。
【請求項２】
請求項１記載の印刷サーバにおいて、前記各スレッドによってそれぞれレンダリング処理をする際に課金情報を記録する手段を設けたことを特徴とする印刷サーバ。
【請求項３】
コンピュータに、複数のスレッドがそれぞれ、印刷リクエストのジョブに対応するアプリケーションを起動させる前にアプリケーション起動管理テーブル内の該当するアプリケーションのアプリケーション起動情報を参照し、そのアプリケーション起動情報に複数起動可又は未起動が記憶されていれば、そのアプリケーションを起動させてレンダリングを行わせ、起動中が記憶されており、複数起動可が記憶されていなければ、そのアプリケーションの起動は行わずに制御することにより、複数のアプリケーションのレンダリング処理を前記各スレッドにより同時に行うように制御する手段として機能させるためのプログラム。
【請求項４】
コンピュータに、複数のスレッドがそれぞれ、印刷リクエストのジョブに対応するアプリケーションを起動させる前にアプリケーション起動管理テーブル内の該当するアプリケーションのアプリケーション起動情報を参照し、そのアプリケーション起動情報に複数起動可又は未起動が記憶されていれば、そのアプリケーションを起動させてレンダリングを行わせ、起動中が記憶されており、複数起動可が記憶されていなければ、そのアプリケーションの起動は行わずに制御することにより、複数のアプリケーションのレンダリング処理を前記各スレッドにより同時に行うように制御する手段として機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、画像データやテキストデータなどのページを構成するデータの集まりを文書として管理する文書管理システム，文書管理システムの文書を印刷するためのコンピュータ等の印刷サーバとその印刷サーバ上で動作するプログラムとそのプログラムを記録したコンピュータ読み取り可能な記録媒体とに関する。
【０００２】
【従来の技術】
従来、複数台のプリンタを接続しているパーソナルコンピュータ（ＰＣ）等の印刷サーバと、データベース上で画像ファイルもしくはアプリケーションファイル（ワープロ，表計算ソフト等のアプリケーションが作成するファイル）の集合を「文書」として管理する同じくＰＣ等の文書管理サーバと、上記印刷サーバ及び文書管理サーバ内の情報を操作者に表示し、文書管理サーバ内に蓄積された文書閲覧や、文書管理サーバ内に蓄積された文書やそれぞれ作成したデータを印刷サーバによって印刷指示を行わせるＰＣ等のクライアント端末装置を有するシステムがある。
【０００３】
このようなシステムにおいて、複数台のクライアント端末装置がネットワーク上で複数台のプリンタを共有するため、印刷サーバによって各クライアント端末装置からの印刷リクエストを各プリンタへ配給する印刷制御を行うメリットは、クライアント端末装置側に各プリンタのプリンタドライバをインストールする手間が必要ないこと、データをレンダリング（アプリケーション固有のフォーマットをそのアプリケーションを用いて印刷可能なフォーマットに変換すること）するためのアプリケーションをインストールしなくて済むことなどが挙げられる。（例えば、特開平１０−１１６１６１号公報，特開平１０−２８５３２４号公報，特開平１１−１１９９４５号公報，特開平１１−２５９２５８号公報，特開２０００−３５８７０号公報，特開２００１−１１７７４７号公報，特開２００１−２４３０３４号公報参照）
【０００４】
【発明が解決しようとする課題】
しかしながら、上述のような従来のシステムでは、印刷サーバ側で複数台のクライアント端末装置から同時に印刷ジョブを受けた場合に、印刷サーバ側に掛かる負担が大きいという問題があった。
また、印刷ジョブをひとつひとつ処理するので、アプリケーションを使ったレンダリングにおいて同時に複数のアプリケーション処理ができないという欠点もあった。
【０００５】
そこで、上述の問題を解消するために、印刷サーバ側に複数のキューを設け、その各キューを用いて複数種類のアプリケーションを起動するようにすると、アプリケーションによっては複数プロセスが起動できないという問題が新たに生じる。アプリケーションの起動を制御する必要がある。これはアプリケーションの構造によって同時起動ができるものとできないものがあるせいである。
例えば、アプリケーションＡは複数プロセスの起動ができるが、アプリケーションＢは複数プロセスの起動ができない（レンダリングのために複数プロセス起動すると、例えば終了処理ができないという制約があるためである）ということである。
【０００６】
具体的に、例えば、マイクロソフト社のワード（Ｍｉｃｒｏｓｏｆｔ  Ｗｏｒｄ：登録商標）は複数プロセス起動が可能だが、ロータス社のロータス１−２−３（Ｌｏｔｕｓ１−２−３：登録商標）は複数プロセスの起動を行うと、アプリケーションが終了せずにメモリに残るという問題がある。
この発明は上記の課題を解決するためになされたものであり、複数のアプリケーションファイルの同時レンダリング処理を効率良く行えるようにすることを目的とする。
【０００７】
【課題を解決するための手段】
この発明は上記の目的を達成するため、次の（１）と（２）の印刷サーバを提供する。
（１）  複数のスレッドがそれぞれ、印刷リクエストのジョブに対応するアプリケーションを起動させる前にアプリケーション起動管理テーブル内の該当するアプリケーションのアプリケーション起動情報を参照し、そのアプリケーション起動情報に複数起動可又は未起動が記憶されていれば、そのアプリケーションを起動させてレンダリングを行わせ、起動中が記憶されており、複数起動可が記憶されていなければ、そのアプリケーションの起動は行わずに制御することにより、複数のアプリケーションのレンダリング処理を上記各スレッドにより同時に行うように制御する手段を設けた印刷サーバ。
（２）  （１）の印刷サーバにおいて、上記各スレッドによってそれぞれレンダリング処理をする際に課金情報を記録する手段を設けた印刷サーバ。
【０００８】
さらに、次の（３）のプログラム及び（４）の記録媒体も提供する。
（３）  コンピュータに、複数のスレッドがそれぞれ、印刷リクエストのジョブに対応するアプリケーションを起動させる前にアプリケーション起動管理テーブル内の該当するアプリケーションのアプリケーション起動情報を参照し、そのアプリケーション起動情報に複数起動可又は未起動が記憶されていれば、そのアプリケーションを起動させてレンダリングを行わせ、起動中が記憶されており、複数起動可が記憶されていなければ、そのアプリケーションの起動は行わずに制御することにより、複数のアプリケーションのレンダリング処理を上記各スレッドにより同時に行うように制御する手段として機能させるためのプログラム。
（４）  コンピュータに、複数のスレッドがそれぞれ、印刷リクエストのジョブに対応するアプリケーションを起動させる前にアプリケーション起動管理テーブル内の該当するアプリケーションのアプリケーション起動情報を参照し、そのアプリケーション起動情報に複数起動可又は未起動が記憶されていれば、そのアプリケーションを起動させてレンダリングを行わせ、起動中が記憶されており、複数起動可が記憶されていなければ、そのアプリケーションの起動は行わずに制御することにより、複数のアプリケーションのレンダリング処理を上記各スレッドにより同時に行うように制御する手段として機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【０００９】
【発明の実施の形態】
以下、この発明の実施形態を図面に基づいて具体的に説明する。
図１は、この発明の一実施形態である印刷サーバの内部構成を示すブロック図である。
図２は、この発明の一実施形態である印刷サーバを備えたシステム構成の一例を示すブロック図である。
図２に示すように、このシステムは、ＰＣ等の印刷サーバ１と、同じくＰＣ等の複数台のクライアント端末装置（クライアントＡ〜Ｃ）２ａ〜２ｃと複数台のプリンタ（プリンタＡ〜Ｃ）３ａ〜３ｃがネットワークを介して接続されている。
【００１０】
印刷サーバ１は、ＣＰＵ，ＲＯＭ及びＲＡＭ等からなるマイクロコンピュータを内蔵し、そのマイクロコンピュータが後述する図１に示すような各機能部の機能を実現し、この発明に係る印刷制御を行う。
そこで、上記マイクロコンピュータのＲＯＭ等に複数のアプリケーションのレンダリング処理を複数のスレッドにより同時に行うように制御する手段として機能させるためのプログラムを格納する。また、上記プログラムを光ディスクやフロッピディスク等の記録媒体に記録し、その記録媒体を介してインストールするようにしても良い。
【００１１】
すなわち、印刷サーバ１が、複数のスレッドがそれぞれ、印刷リクエストのジョブに対応するアプリケーションを起動させる前にアプリケーション起動管理テーブル内の該当するアプリケーションのアプリケーション起動情報を参照し、そのアプリケーション起動情報に複数起動可又は未起動が記憶されていれば、そのアプリケーションを起動させてレンダリングを行わせ、起動中が記憶されており、複数起動可が記憶されていなければ、そのアプリケーションの起動は行わずに制御することにより、複数のアプリケーションのレンダリング処理を上記各スレッドにより同時に行うように制御する手段の機能を果たす。
また、上記各スレッドによってそれぞれレンダリング処理をする際に課金情報を記録する手段の機能も果たす。
【００１２】
各クライアント端末装置２ａ〜２ｃは、同じくマイクロコンピュータを内蔵し、印刷サーバ１へ印刷リクエストを要求する。
各プリンタ３ａ〜３ｃは、レーザプリンタ等の印刷装置であり、印刷サーバ１から送られる印刷データを印刷する。
図１に示すように、印刷サーバ１内部には、各プリンタ３ａ〜３ｃのそれぞれのプリンタドライバ（プリンタドライバＡ〜Ｃ）１３ａ〜１３ｃと、各クライアント端末装置２ａ〜２ｃからの印刷リクエストのジョブのレンダリング用の複数のアプリケーション群を管理するレンダリングアプリケーション管理プロセス１４とを備えている。
【００１３】
印刷サーバ１は、印刷管理プロセス１０が各クライアント端末装置２ａ〜２ｃから印刷のリクエストを受けると、各キュー１１ａ〜１１ｃに格納する。その印刷リクエストは、ジョブという形式のファイルである。
印刷サーバ１内には、使用可能な各プリンタ３ａ〜３ｃのそれぞれに対するキュー（キューＡ〜Ｃ）１１ａ〜１１ｃを備え、印刷管理プロセス１０の各スレッド（スレッドＡ〜Ｃ）１２ａ〜１２ｃによってそれぞれのキュー１１ａ〜１１ｃ内のジョブを監視する。ジョブには、印刷すべきアプリケーションファイル（ワープロ，表計算等のソフトウェアで作成されたファイル）が含まれる。
【００１４】
図３は、ジョブに格納されるデータ内容を示す説明図である。
ジョブのデータには、クライアント端末装置名，入力日時，リトライ回数等からなる「ジョブ情報」と、印刷すべきプリンタの識別子（例えば「プリンタＡ」等）である「プリンタ名」と、印刷部数，用紙サイズ等の「印刷情報」と、パンチ，ステープル等の印刷後に行う処理に関する情報である「後処理情報」と、レンダリングするアプリケーションを示すアプリケーション識別情報（拡張子，起動オプション等）である「アプリケーション情報」と、アプリケーションの実データ（印刷するデータ，アプリケーションファイルの内容）である「アプリケーションデータ」とからなる。このジョブはキューに入れるが、ジョブ自体はファイルでもメモリ上のデータでも良い。ジョブをどのような形式で管理するかは、キューの管理方式に依存する。この実施形態では、キューをファイルで管理することを前提にして説明を進める。
【００１５】
次に、この印刷サーバ１の機能について詳しく説明する。
この印刷サーバ１では、各クライアント端末装置２ａ〜２ｃから入力される印刷リクエストのジョブの処理を、プリンタ３ａ〜３ｃ毎に独立して行う。そのために、複数のキュー１１ａ〜１１ｃを所持し、それぞれのキュー１１ａ〜１１ｃには１台のプリンタに関するジョブを格納する。それぞれのキュー１１ａ〜１１ｃを、印刷管理プロセス１０から起動されたスレッド（並行処理プロセス）１２ａ〜１２ｃによって監視する。したがって、各スレッド１２ａ〜１２ｃと各キュー１１ａ〜１１ｃの数は１：１になる。
【００１６】
各スレッド１２ａ〜１２ｃは、それぞれのキュー１１ａ〜１１ｃ内のジョブを処理する際に、レンダリングアプリケーション管理プロセス１４に対してレンダリング可能か否かを問い合わせる。その問い合わせは、アプリケーション起動管理テーブル１５を参照し、その内容に基づいて判断する。
レンダリングアプリケーション管理プロセス１４には、ジョブをレンダリングする各種のレンダリングアプリケーションも格納している。図１には、一例としてワープロＡのレンダリングアプリケーション（アプリＡ）１４ａ，ワープロＢのレンダリングアプリケーション（アプリＢ）１４ｂ，表計算のレンダリングアプリケーション（アプリＣ）１４ｃ，ＣＡＤのレンダリングアプリケーション（アプリＤ）１４ｄを格納している。
各スレッド１２ａ〜１２ｃは、レンダリング可能なジョブの場合は、即時にレンダリングを実行させるが、他プロセスでアプリケーションが使用中で複数起動できない場合は、該当ジョブをキューに再投入して次のジョブを処理する。
【００１７】
次に、この印刷サーバ１におけるこの発明の請求項１に係る印刷制御処理について説明する。
その印刷制御処理は、クライアント端末装置から印刷リクエストされたジョブが、印刷サーバ１のキューに入り、レンダリングを行ってプリンタドライバに渡され、プリンタによって印刷されるまでの処理である。
各クライアント端末装置２ａ〜２ｃは、印刷サーバ１に対して、図３に示したフォーマットのジョブを送って印刷リクエストする。そのジョブは、印刷サーバ１内部の印刷管理プロセス１０が受け取る。
印刷管理プロセス１０は、ジョブの中の「プリンタ名」に基づいてキュー１１ａ〜１１ｃからジョブを投入するキューを選択（決定）し、そのキューにジョブをファイルの形式で格納する。
【００１８】
図５は、図１に示した印刷管理プロセス１０の処理を示すフローチャート図である。
印刷管理プロセス１０は、ステップ（図中「Ｓ」で示す）１でスレッドを起動し、ステップ２でクライアント端末装置からの印刷リクエストが有ったか否かを判断し、印刷リクエストが有ったら、ステップ３で印刷リクエストのジョブを取得し、ステップ４でそのジョブのプリンタ名からキューを選択し、ステップ５でその選択したキューにジョブファイル（ジョブのファイル）を作成して投入し、ステップ２へ戻る。
【００１９】
さらに、印刷管理プロセス１０は、キュー１１ａ〜１１ｃ毎にスレッド１２ａ〜１２ｃを起動する。各スレッド１２ａ〜１２ｃは、各々担当分のキューを監視し、キューの中にジョブが投入されると、アプリケーション起動管理テーブル１５を参照する。
【００２０】
図４は、アプリケーション起動管理テーブル１５のデータ内容を示す説明図である。
このアプリケーション起動管理テーブル１５には、レンダリングアプリーション管理プロセス１４に格納されたアプリケーション分のアプリケーション起動情報を格納する。各アプリケーション起動情報には、該当するレンダリングアプリケーションが予め複数起動可なら「複数起動可」を記憶し、複数起動不可なら「複数起動可」を記憶しない。また、該当するレンダリングアプリケーションが未起動なら「未起動」を、起動中なら「起動中」をそれぞれ記憶する。
【００２１】
スレッド１２ａ〜１２ｃは、ジョブに対応するレンダリングアプリケーションを起動させる前にアプリケーション起動管理テーブル１５内の該当するレンダリングアプリケーションのレンダリングアプリケーション起動情報を参照する。
レンダリングアプリケーション起動情報に「複数起動可」が記憶されていれば、該当するレンダリングアプリケーションの起動の有無にかかわらず、レンダリングアプリケーション起動情報を更新せずに、そのレンダリングアプリケーションを起動させてレンダリングを行わせる。
【００２２】
レンダリングアプリケーション起動情報に「未起動」が記憶されていれば、レンダリングアプリケーション起動情報を「起動中」に更新し、該当するレンダリングアプリケーションを起動させてレンダリングを行わせ、レンダリングの終了時にレンダリングアプリケーション起動情報を「未起動」に更新する。
レンダリングアプリケーション起動情報に「起動中」が記憶されており、「複数起動可」が記憶されていなければ、該当するレンダリングアプリケーションの起動は行わずに、レンダリングアプリケーション起動情報が「未起動」になるまで処理を待機させつつポーリングを行う。
【００２３】
上記待機として、スレッド１２ａ〜１２ｃは、レンダリングアプリケーションが使用中だった場合、そのジョブをキューの優先度を下げて、次のジョブをレンダリングアプリケーションへ渡す。キューの優先度を下げるには、ジョブをキューの最後列に入れたり、あるいはジョブデータを待避させておき、次のジョブを行った後に再度そのジョブを行うなどの処理をすると良い。
【００２４】
スレッド１２ａ〜１２ｃは、レンダリングアプリケーションを起動させるとき、ジョブから「アプリケーション情報」と「アプリケーションデータ」を取り出し、レンダリングアプリケーションにそれらのデータを渡し、レンダリングアプリケーションに印刷指示を出す。このとき、ジョブ内の「印刷情報」「後処理情報」をプリンタドライバ１３ａ〜１３ｃに設定する。
【００２５】
レンダリングアプリケーション１４ａ〜１４ｄは、アプリケーション固有のフォーマットから印刷可能なフォーマットに変換するアプリケーション群であり、ワープロ，表計算，ＣＡＤなどのソフトウェアからなる。それらのレンダリングアプリケーションは、自らの持つ印刷機能を利用し、スレッド１２ａ〜１２ｃから送られたアプリケーションデータを変換した後に指示されたプリンタドライバ１３ａ〜１３ｃへ渡して印刷指示を出す。なお、複数起動が不可のレンダリングアプリケーションが使用中の場合に、使用可能なレンダリングアプリケーションの中から代替できるものを選び出し、その代替レンダリングアプリケーションにレンダリングを行わせるようにしてもよい。
【００２６】
レンダリングアプリケーション１４ａ〜１４ｄから印刷指示を受けたプリンタドライバ１３ａ〜１３ｃは、それぞれ対応するプリンタ３ａ〜３ｃに対して印刷データを送付して印刷させる。あるいは、オペレーティングシステム（ＯＳ）によっては、ＯＳの印刷スプーラにデータを蓄積することにより印刷処理を完了するようにしてもよい。
【００２７】
このようにして、それぞれのプリンタに対するジョブを独立させ、複数のアプリケーションファイルによるレンダリングを同時に行うときの処理効率を向上することができる。
なお、従来の印刷サーバのようにキューがひとつの場合には、レンダリングはリクエストがあった順に処理される。この場合、どのプリンタに印刷リクエストが出されたかに関わらず、印刷ジョブの実行はキューに投入した順序で処理されるので、印刷処理を効率よく行えない。
【００２８】
次に、この印刷サーバ１において、プリンタ３ａ〜３ｃ毎のジョブと、レンダリングに使用したレンダリングアプリケーションの使用回数により、印刷処理にレンダリングを含めて課金することもできる。
例えば、レンダリングによる印刷が成功した場合に、印刷枚数，印刷条件（カラー，モノクロ等）とレンダリングアプリケーションの使用回数などの課金情報を保存することにより実現が可能となる。その課金情報は、印刷サーバ１内の図示を省略したＲＡＭ等のメモリに記録するようにすると良い。
【００２９】
図６は、この印刷サーバ１における印刷制御を示すフローチャート図である。ステップ（図中「Ｓ」で示す）１１でキューを監視し、ステップ１２でクライアント端末装置からの印刷リクエストによるジョブが有るか否かを判断し、有ればステップ１３でレンダリング先のレンダリングアプリケーションを選択し、ステップ１４で他のスレッドで使用中か否かを判断し、使用中ならステップ１９でジョブの優先度を下げてステップ１１へ戻る。
ステップ１４で他のスレッドで使用中でないと判断したら、ステップ１５で印刷ドライバに印刷条件（印刷情報，後処理情報）を設定し、ステップ１６でレンダリングアプリケーションを起動して変換と印刷を行い、ステップ１７で印刷が成功したか否かを判断し、成功しなければステップ２０でエラー処理してこの処理を終了し、印刷成功ならステップ１８で課金情報を記録して保存してこの処理を終了する。
【００３０】
上記ステップ１３〜１６及び１９の処理で次の処理を行うようにしても良い。スレッド１２ａ〜１２ｃは、ジョブに対応するレンダリングアプリケーションを起動させる前にアプリケーション起動管理テーブル１５内の該当するレンダリングアプリケーションのレンダリングアプリケーション起動情報を参照する。
レンダリングアプリケーション起動情報に「複数起動可」が記憶されていれば、該当するレンダリングアプリケーションの起動の有無にかかわらず、レンダリングアプリケーション起動情報を更新せずに、そのレンダリングアプリケーションさせてレンダリングを行わせる。
【００３１】
レンダリングアプリケーション起動情報に「未起動」が記憶されていれば、レンダリングアプリケーション起動情報を「起動中」に更新し、該当するレンダリングアプリケーションを起動させてレンダリングを行わせ、レンダリングの終了時にレンダリングアプリケーション起動情報を「未起動」に更新する。
レンダリングアプリケーション起動情報に「起動中」が記憶されており、「複数起動可」が記憶されていなければ、該当するレンダリングアプリケーションの起動は行わずに、レンダリングアプリケーション起動情報が「未起動」になるまで処理を待機させつつポーリングを行う。
【００３２】
このようにして、印刷結果のみならず、レンダリングアプリケーションのレンダリングに対しても課金を行うことにより、使用アプリケーションの使用料金をクライアント端末装置に分配することができる。これはアプリケーションサービスプロバイダ（ＡＳＰ）のように、印刷とレンダリングを含めてひとつのサービスとして提供する際に、レンダリングアプリケーションの使用料金も含めたサービス価格の設定を行いたい場合に有効である。
【００３３】
次に、この印刷サーバ１における他の処理について説明する。
この印刷サーバ１において、ジョブ処理のスケジューリングを行えば、夜間，休日等のサーバ負荷の少ない時間帯の印刷を行うことができる。
その場合、各スレッド１２ａ〜１２ｃ毎にジョブ処理ルールを設ける。各スレッド１２ａ〜１２ｃはジョブ処理ルールに基づいて印刷処理を行う。例えば、夜間処理のルールがあれば、キュー１１ａ〜１１ｃ内のジョブを処理する時間を夜間に設定して印刷を行う。
また、プリンタ３ａ〜３ｃについていずれか一台または複数台が使用不可の場合、他のプリンタに代替出力するようにしてもよい。
その場合、スレッド１２ａ〜１２ｃ間でジョブの受け渡しをすることにより、空いているプリンタを使用する。
【００３４】
印刷サーバ１において、キュー１１ａ〜１１ｃからジョブを取り出す制御を行っているのはそれぞれスレッド１２ａ〜１２ｃである。そこで、各スレッド１２ａ〜１２ｃに対してそれぞれのキュー１１ａ〜１１ｃからのジョブの取り出しの可否，動作時間の設定を行うことにより、印刷ジョブの実行の制御を行うことができる。
各スレッド１２ａ〜１２ｃはその動作において、スレッド実行定義ファイルを参照する。
【００３５】
図７は、スレッド実行定義ファイルのフォーマットを示す説明図である。
そのスレッド実行定義ファイルには、実行時間の定義やプリンタ停止時の動作が記述されており、「即時処理」「処理種別」「夜間処理時間」「週末処理時間」「代替処理」等の項目の設定情報がある。
スレッド１２ａ〜１２ｃは、レンダリングの前にスレッド実行定義ファイルより設定情報を読み取り、その設定情報から実行タイミングあるいはプリンタ３ａ〜３ｃが使用できない場合の処理を決める。
【００３６】
図８は、図１のスレッド１２ａ〜１２ｃの処理動作を示すフローチャート図である。
スレッド１２ａ〜１２ｃが起動されると、そのスレッドは、ステップ（図中「Ｓ」で示す）３１でスレッド情報定義ファイルを読み込んで取得し、遅延処理の情報，代替処理の情報を得る。
ステップ３２で即時処理か否かを判断し、即時処理でなければ図６に示したフローチャート図の処理へ移行し、即時処理ならステップ３３で処理可能時刻か否かを判断し、処理可能時刻でなければステップ３８でスリープ処理してステップ３２へ戻る。
【００３７】
ステップ３３で処理可能時刻と判断したら、ステップ３４で該当するプリンタが使用可能か否かを判断し、使用可能なら図６に示したフローチャート図の処理へ移行し、使用不可能ならステップ３５で代替印刷処理を行うか否かを判断し、代替印刷を行わないならステップ３９でエラー処理（プリンタ停止）を行ってこの処理を終了する。
ステップ３５で代替印刷を行うなら、ステップ３６で印刷機能は充分か否かを判断し、印刷機能が十分でなければステップ３９でエラー処理（プリンタ機能不足）を行ってこの処理を終了する。
【００３８】
ステップ３６で印刷機能が十分と判断したら、ステップ３７でジョブを更新して該当キューにそのジョブを登録して、この処理を終了する。
上述の処理で、スレッド実行定義ファィルの「即時処理」のレコードがＴＲＵＥの場合は、処理可能か否かの判断へ移行し、ＦＡＬＳＥの場合は図６の処理へ移行する。
また、「処理種別」のレコードが「夜間」「休日」処理の場合は、システム時刻と照らし合せ、現在の時刻が印刷処理を行うべき時刻かを判断し、印刷処理を行うべき時刻でなければ、ウェイトしながら処理時刻に達するまで待つスリープ処理を行う。遅延処理が必要でなければ、図６の処理を行う。
【００３９】
次に、プリンタ３ａ〜３ｃの使用可否を調査する。プリンタドライバにプリンタ３ａ〜３ｃのステータスを問い合わせるなどの手段でプリンタ３ａ〜３ｃの使用可否を判断し、プリンタ３ａ〜３ｃのいずれかが使用不可の場合は、スレッド実行定義ファイルの「代替処理」のレコードを参照する。「代替処理」のレコードがＦＡＬＳＥの場合は、プリンタ停止中のエラーで終了する。
「代替処理」のレコードがＴＲＵＥであれば、プリンタの処理機能のチェックを行う。例えば、パンチ，ステープルなどの付加機能が必要か否か、それが必要であれば代替するプリンタがそれらの機能を有するかのチェックを行う。
該当するジョブが他のプリンタで代替可能でなければ、代替プリンタ機能不足のエラーで終了する。また、該当するジョブが他のプリンタで代替可能であれば印刷ジョブの更新を行う。
【００４０】
図３に示したジョブのうち、「プリンタ名」を代替するプリンタのプリンタ名に書き換えて、代替するプリンタのキューに投入する、すなわち、他のスレッドにジョブを委託することにより処理を終了する。
このようにして、印刷サーバの負荷の少ない時間帯の印刷を行うことによってサーバ負荷を分散することができる。また、プリンタがメンテナンス中の場合などにジョブを停止させておき、余計なレンダリングの発生を防止することが可能になる。
さらに、接続されているプリンタのひとつが故障中（紙づまり等）あるいはメンテナンス中の場合に、他のプリンタに出力することにより、待ち時間の軽減が図れる。
【００４１】
【発明の効果】
以上説明してきたように、この発明の印刷サーバとプログラムと記録媒体によれば、複数のアプリケーションファイルの同時レンダリング処理を効率良く行えるようにすることができる。
【図面の簡単な説明】
【図１】この発明の一実施形態である印刷サーバの内部構成を示すブロック図である。
【図２】この発明の一実施形態である印刷サーバを備えたシステム構成の一例を示すブロック図である。
【図３】ジョブに格納されるデータ内容を示す説明図である。
【図４】図１に示したアプリケーション起動管理テーブル１５のデータ内容を示す説明図である。
【図５】図１に示した印刷管理プロセス１０の処理を示すフローチャート図である。
【図６】この印刷サーバ１における印刷制御を示すフローチャート図である。
【図７】スレッド実行定義ファイルのフォーマットを示す説明図である。
【図８】図１のスレッド１２ａ〜１２ｃの処理動作を示すフローチャート図である。
【符号の説明】
１：印刷サーバ          ２ａ〜２ｃ：クライアント端末装置
３ａ〜３ｃ：プリンタ    １０：印刷管理プロセス
１１ａ〜１１ｃ：キュー  １２ａ〜１２ｃ：スレッド
１３ａ〜１３ｃ：プリンタドライバ
１４：レンダリングアプリケーション管理プロセス
１４ａ〜１４ｄ：レンダリングアプリケーション
１５：アプリケーション起動管理テーブル
【図１】
0003978365.tif 000002
【図２】
0003978365.tif 000003
【図３】
0003978365.tif 000004
【図４】
0003978365.tif 000005
【図５】
0003978365.tif 000006
【図６】
0003978365.tif 000007
【図７】
0003978365.tif 000008
【図８】
0003978365.tif 000009