(57)【要約】【課題】スケールアウト可能な分散プリントサーバにおいて、サーバを増やすごとに各プリントサーバにプリンタオブジェクトを登録するには多大な作業量がかかり、また資源の浪費でもある。【解決手段】印刷するデータによりプリンタオブジェクトの必要性を判断して、プリンタ言語に変換が必要なデータ種の場合に動的にプリンタオブジェクトを作成する。これにより、リソースを無駄に使用しない効率的なスケールアウト可能な分散印刷システムが実現可能となる。【選択図】図１
2015162026.tif 000002
【特許請求の範囲】
【請求項１】
システムにより提供される、プリンタに対応したプリンタオブジェクトを介して、あるいは介さずに前記プリンタによる印刷の指示を行う情報処理装置であって、
印刷対象の文書データが、指定されたプリンタに対応したプリンタオブジェクトを介さずに印刷可能な文書データであるか否かを判定する第１の判定手段と、
前記第１の判定手段により印刷可能ではないと判定された場合に、前記指定されたプリンタに対応したプリンタオブジェクトが存在するか否か判定する第２の判定手段と、
前記第２の判定手段により、前記指定されたプリンタに対応したプリンタオブジェクトが存在しないと判定された場合、当該プリンタオブジェクトを、前記システムにより生成させるための手段と
を有することを特徴とする情報処理装置。
【請求項２】
前記第１の判定手段は、前記印刷対象の文書データの種類が、前記指定されたプリンタにより印刷するためには変換が必要である場合に、前記指定されたプリンタに対応したプリンタオブジェクトを介さずに印刷可能な文書データではないと判定することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第１の判定手段は、前記印刷対象の文書データの種類がポータブルドキュメントフォーマット（ＰＤＦ）でありかつ前記指定されたプリンタがＰＤＦを印刷する機能を有しているか、あるいは前記印刷対象の文書データの種類が前記指定されたプリンタにより実行ができるページ記述言語である場合に、前記印刷対象の文書データの種類は前記指定されたプリンタにより印刷するために変換が必要ではないと判定し、それ以外の場合に、前記印刷対象の文書データの種類は前記指定されたプリンタにより印刷するために変換が必要であると判定ることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記第２の判定手段により、前記指定されたプリンタに対応したプリンタオブジェクトが存在しないと判定された場合、前記指定されたプリンタに対応した印刷ポートを前記システムにより生成させ、生成された前記プリンタオブジェクトに関連付ける手段を更に有することを特徴とする請求項１乃至３のいずれか一項に記載の情報処理装置。
【請求項５】
前記第２の判定手段により、前記指定されたプリンタに対応したプリンタオブジェクトが存在すると判定された場合、該プリンタオブジェクトに関連付けられた印刷ポートの有無を判定し、ない場合には、印刷ポートを前記システムにより生成させ、生成された前記印刷ポートを前記プリンタオブジェクトに関連付ける手段を更に有することを特徴とする請求項１乃至４のいずれか一項に記載の情報処理装置。
【請求項６】
前記第１の判定手段により、前記印刷対象の文書データが、指定されたプリンタに対応したプリンタオブジェクトを介さずに印刷可能な文書データであると判定された場合には、当該文書データを印刷の指示とともに前記指定されたプリンタに送信し、
前記第１の判定手段により、前記印刷対象の文書データが、指定されたプリンタに対応したプリンタオブジェクトを介さずに印刷可能な文書データではないと判定された場合には、当該文書データを前記指定されたプリンタに対応したプリンタオブジェクトに送信する手段を更に有することを特徴とする請求項１乃至５のいずれか一項に記載の情報処理装置。
【請求項７】
前記情報処理装置は、クライアント端末からの印刷要求がロードバランサにより分散して送信される複数の情報処理装置のひとつであることを特徴とする請求項１乃至５のいずれか一項に記載の情報処理装置。
【請求項８】
要求に応じて、前記システムにより前記プリンタオブジェクトを削除させるための手段と、
削除された前記プリンタオブジェクトの識別情報を他の情報処理装置と共有するための手段と、
他の情報処理装置と共有する、前記他の情報処理装置により削除された前記プリンタオブジェクトの識別情報で特定されるプリンタオブジェクトを前記システムにより削除させるための手段と
を更に有することを特徴とする請求項７に記載の情報処理装置。
【請求項９】
ユーザーの指定に応じて、指定されたプリンタに対応したプリンタ情報を削除し、前記プリンタ情報が削除された際に、削除されたプリンタ情報に関連付けられたプリンタオブジェクトを、予め指定された設定に応じて削除するための手段を更に有することを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
前記プリンタオブジェクトは、プリンタ及び印刷設定と関連付けられており、前記文書データを受信した場合には、前記プリンタのプリンタドライバにより前記文書データをページ記述言語に変換し、前記印刷設定にしたがって印刷する指示を対応するプリンタに送信することを特徴とする請求項１乃至９のいずれか一項に記載の情報処理装置。
【請求項１１】
クライアント端末と、
請求項１乃至１０に記載した複数の情報処理装置と、
前記クライアント端末からの印刷要求を前記複数の情報処理装置のいずれかに送信するロードバランサと、
前記情報処理装置から受信した指示に応じて文書データの印刷を実行するプリンタと
を含むことを特徴とする分散印刷システム。
【請求項１２】
システムにより提供される、プリンタに対応したプリンタオブジェクトを介して、あるいは介さずに前記プリンタによる印刷の指示を行う情報処理装置による印刷制御方法であって、
印刷対象の文書データが、指定されたプリンタに対応したプリンタオブジェクトを介さずに印刷可能な文書データであるか否かを判定する第１の判定工程と、
前記第１の判定工程により印刷可能ではないと判定された場合に、前記指定されたプリンタに対応したプリンタオブジェクトが存在するか否か判定する第２の判定工程と、
前記第２の判定工程により、前記指定されたプリンタに対応したプリンタオブジェクトが存在しないと判定された場合、当該プリンタオブジェクトを、前記システムにより生成させるための工程と
を有することを特徴とする印刷制御方法。
【請求項１３】
オペレーティングシステムにより提供される、プリンタに対応したプリンタオブジェクトを介して、あるいは介さずに、前記プリンタによる印刷の指示をコンピュータにより行わせるためのプログラムであって、
印刷対象の文書データが、指定されたプリンタに対応したプリンタオブジェクトを介さずに印刷可能な文書データであるか否かを判定する第１の判定手段と、
前記第１の判定手段により印刷可能ではないと判定された場合に、前記指定されたプリンタに対応したプリンタオブジェクトが存在するか否か判定する第２の判定手段と、
前記第２の判定手段により、前記指定されたプリンタに対応したプリンタオブジェクトが存在しないと判定された場合、当該プリンタオブジェクトを、前記オペレーティングシステムにより生成させるための手段と
してコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び分散印刷システム、印刷制御方法、プログラムに関する。
【背景技術】
【０００２】
複数のクライアント端末からの印刷リクエストに対しサーバで一括して印刷ジョブを扱うプリントサーバにおいて、プリントサーバを複数配備し、各サーバで分散して印刷処理を行う分散プリントシステムが実現されている。このような分散印刷システムでは、印刷を担当するプリンタを各プリントサーバで分担し管理することで印刷処理の負荷分散を実現している。サーバの分散構成をとることで、プリントサーバは大量の印刷ジョブを扱うことが可能であり、更に特定のプリントサーバの稼働状態に異常が発生した場合、他のプリントサーバが引き継いで印刷を行うことが可能なサーバの冗長構成を実現している。このように分散設置される複数の処理装置を介して文書データ等の出力を行うシステムの処理分散化技術について、例えば、特許文献１では、プリントサーバに対するプリンタの割当を管理し、プリントサーバ、プリンタの稼働状態、負荷状況により、プリントサーバに対するプリンタオブジェクト（または論理プリンタ）の割り当てを変更する技術が提案されている。なおプリンタオブジェクトすなわち論理プリンタとは、プリンタサーバのソフトウェアから見たプリンタであり、指定したプリンタオブジェクトに対してデータや指示等を含むメッセージを与えることでプリンタオブジェクトに対応したプリンタ（あるいは仮想的なプリンタ）により印刷が実行される。このような論理プリンタをソフトウェアにより作成して、それを通して印刷を行う技術は、例えばウインドウズ（登録商標）等のオペレーティングシステムにより提供されるが、ウインドウズ等に限られるものではない。
【０００３】
また、通常、プリントサーバで扱う文書データ等は、プリンタに印刷データを送る前にプリンタが解釈できるプリンタ言語にプリンタドライバを用いて変換するために、プリンタドライバに対応するプリンタオブジェクトが必要となる。プリンタオブジェクトはあらかじめプリントサーバに作成しておき、印刷時にそのプリンタオブジェクトを使用し印刷するのが一般的である。しかし、動的にプリンタオブジェクトを作成して印刷を行う技術として、特許文献２が提案されている。これはプリンタドライバをインストールしていないプリンタを用いて印刷を行うたびに、専用プリンタドライバに対応するプリンタオブジェクトを自動的に作成する方法を提案している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−２６０２１６号公報
【特許文献２】特開２０１１−７６２２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
スケールアウトが容易に可能な分散プリントサーバにおいて、印刷データをプリンタ言語に変換するためには、プリンタに対応したプリンタドライバごとのプリンタオブジェクトを複数ある各プリントサーバにあらかじめ登録しておく必要がある。しかし、この場合サーバを増やすごとに各プリントサーバにプリンタオブジェクトを登録するには多大な作業量がかかる。また、あらかじめ必要なプリンタオブジェクトを最大値登録しておくことは、印刷データの種類によりプリンタ言語に変換が不要でプリンタオブジェクトを使用しない印刷の場合でも無駄なリソースもサーバに登録することになりスプーラサービスに多大な負荷を与えてしまう。また、動的にプリンタオブジェクトを登録する技術として特許文献２があるが、この技術は、１サーバ内で動的にプリンタオブジェクトを登録する技術であり、分散サーバ構成における動的プリンタオブジェクト登録を実現することは困難である。
【０００６】
また、特許文献１に記載の、サーバを分散して動的にプリンタオブジェクトの割り当てを変更する技術では、各サーバが担当するプリンタの割り当てが決まっており、印刷量の増大に対するサーバのスケールアウトのためにサーバ構成を容易に変更することは難しい。
【０００７】
本発明は、これらの課題を解決する方法を提案することを目的としており、具体的には、リソースを無駄に使用しない、効率的なスケールアウト可能な分散印刷システムの実現を目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために本発明は以下の構成を備える。
【０００９】
ロードバランサ経由で印刷リクエストが分散される（Ｓ６０２、Ｓ６０３、Ｓ７０２、Ｓ７０３）、スケールアウト構成な分散プリントサーバ（１０３、１０４，１０５）において、印刷を行うデータ種（５０６）によりＰＤＬ変換必要なデータと必要でないデータを判断（Ｓ８０１、Ｓ８０２、Ｓ８０３）し、変換が必要なデータの場合に、ＰＤＬ変換を行うための印刷装置（１１０〜１１２）に対応したプリンタオブジェクト（４１２）がない場合は、プリンタオブジェクト（４１２）と印刷ポート（４１３）を動的に作成し印刷を行う手段と、
プリンタオブジェクト削除リクエストを受けた分散プリントサーバ（１０３、１０４，１０５）は、削除リクエストを受けていないプリントサーバ（１０３、１０４，１０５）がプリンタオブジェクト（４１２）を削除するための情報（９１１）を記録装置（１０６）に保存し、削除リクエストを受けていない各プリントサーバ（１０３、１０４，１０５）がバッチ処理で記録装置（１０６）に記録された削除プリンタオブジェクト情報（９１２）に従い、プリンタオブジェクト（４１２）を削除する手段を特徴とする印刷システム。
【発明の効果】
【００１０】
本発明によれば、印刷するデータによりプリンタオブジェクトの必要性を判断して、必要なデータ種の場合に動的にプリンタオブジェクトを作成して印刷を行うことで、リソースを無駄に使用しない効率的なスケールアウト可能な分散印刷システムが実現可能となる。
【図面の簡単な説明】
【００１１】
【図１】ネットワーク構成を示すブロック図
【図２】プリントサーバ、クライアント端末、プリンタのハードウェア構成図
【図３】プリントサーバ、プリントＷｅｂサーバのモジュール構成図
【図４】プリントサーバ、プリントＷｅｂサーバのソフトウェア構成図
【図５】プリントサーバで管理する文書情報、印刷ジョブ情報、印刷履歴情報、プリンタ情報の構成図
【図６】プリンタオブジェクトが必要ない文書種の印刷シーケンス図
【図７】プリンタオブジェクトが必要な文書種の印刷シーケンス図
【図８】プリンタオブジェクト作成フロー
【図９】プリンタ削除情報の構成図
【図１０】プリンタ情報、プリンタオブジェクト削除フロー
【発明を実施するための形態】
【００１２】
以下、本発明を実施するための形態について図面を用いて説明する。
【００１３】
［実施例１］
＜分散印刷システムの構成＞
図１は、本発明の実施の形態に係る印刷システムの全体構成を示す図である。
図１において、クライアント端末１０１〜１０２、プリントサーバ１０３〜１０５、記憶装置１０６、プリントＷｅｂサーバ１０７〜１０９、プリンタ１１０〜１１２、ロードバランサ１１３〜１１４は、ネットワーク１１５を介して接続されている。図において、クライアント端末１０１〜１０２、プリントサーバ１０３〜１０５、プリントＷｅｂサーバ１０７〜１０９、プリンタ１１０〜１１２、ロードバランサ１１３〜１１４は、複数台接続されていることを仮定している。クライアント端末１０１〜１０２、プリントサーバ１０３〜１０５、プリントＷｅｂサーバ１０７〜１０９、ロードバランサ１１３〜１１４は、例えば汎用コンピュータにそれぞれの機能に応じたソフトウェアをインストールすることで実現される。ネットワーク１１５は、例えば、インターネット等のＬＡＮ、ＷＡＮ、電話回線、専用デジタル回線、ＡＴＭやフレームリレー回線、ケーブルテレビ回線、データ放送用無線回線等のいずれである。またこれらの組み合わせにより実現される、いわゆる通信ネットワークである。ネットワーク１１５は、データの送受信が可能であればよい。そして、クライアント端末１０１〜１０２からロードバランサ１１４を介したプリントＷｅｂサーバ１０７〜１０９への通信手段、プリントサーバ１０３〜１０５からプリンタ１１０〜１１２への通信手段は異なっていてもよい。クライアント端末１０１〜１０２は、例えば、デスクトップパソコン、ノートパソコン、モバイル端末、ＰＤＡ（パーソナルデータアシスタント）等であるが、プログラムの実行環境が内蔵された携帯電話であってもよい。クライアント端末１０１〜１０２では、Ｗｅｂブラウザ（インターネットブラウザ、ＷＷＷブラウザ、Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂの利用に供するブラウザ）等のプログラムを実行する環境が内蔵されている。プリントＷｅｂサーバ１０７〜１０９は、印刷する文書を識別する情報と、出力先プリンタを印刷リクエスト（あるいは印刷要求あるいは印刷指示）と共にクライアント端末１０１〜１０２のＷｅｂブラウザからロードバランサ１１４を介して受ける。ロードバランサ１１４は、クライアント端末１０１〜１０２から受けたリクエストを、サーバ数均等、または、コネクション数均等、または、データ通信量均等、または応答時間が短いサーバへの分散、またはラウンドロビン等の分散方式によりプリントＷｅｂサーバ１０７〜１０９に振り分ける。また、ロードバランサ１１３は、プリントＷｅｂサーバ１０７〜１０９からの処理リクエストを前述の分散方式によりプリントサーバ１０３〜１０５に振り分ける。プリントサーバ１０３〜１０５は、プリントＷｅｂサーバ１０７〜１０９から受けた処理リクエストに従って文書データを印刷データに変換し、その印刷データをプリンタ１１０〜１１２に送る。または、プリントサーバ１０３〜１０５は、文書データの文書種によっては、印刷データに変換せずに、文書データそのものをプリンタ１１０〜１１２に送る。プリンタ１１０〜１１２はプリントサーバ１０３〜１０５から印刷データまたは、文書データを受け取ると印刷を行う。ストレージ１０６はハードディスクドライブ（HDD）ソリッドステートドライブ（SSD)等の記憶装置を備えたデータ保���領域でありNAS(Network Attached Storage)等のネットワーク接続ストレージである。プリントサーバ１０３〜１０５は他サービス、または他プログラムから投入された文書データをファイルとしてストレージ１０６に保持する。また、プリントサーバ１０３〜１０５は後述の文書情報５０１、印刷ジョブ情報５１１、印刷履歴情報５２１、プリンタ情報５３１をデータベースとしてストレージ１０６に保持する。文書データの文書種５０６としてはＰＤＦ(ポータブルドキュメントフォーマット、Portable Document Format)であったり、ＰＤＬ(ページ記述言語、page description language)であったり、アプリケーションデータフォーマットであったりする。この文書種５０６は文書情報５０１に保持する。
【００１４】
＜サーバ及びクライアントのハードウェア＞
図２は、本発明の実施形態に係る印刷システムのクライアント端末１０１〜１０２、プリントサーバ１０３〜１０５、プリントＷｅｂサーバ１０７〜１０９とプリンタ１１０〜１１２のハードウェア構成図である。図２において、装置全体の制御を行うＣＰＵ２０２は、ハードディスク（ＨＤＤ）２０５に格納されているアプリケーションプログラム、ＯＳ等を実行し、ＲＡＭ２０３にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。記憶手段としてのＲＯＭ２０４の内部には、基本Ｉ／Ｏプログラム等のプログラム、印刷処理の際に使用する印刷データ、プリンタ情報等の各種データを記憶する。一時記憶手段としてのＲＡＭ２０３は、ＣＰＵ２０２の主メモリ、ワークエリア等として機能する。ハードディスク（ＨＤＤ）２０５は外部記憶手段の一つであり、大容量メモリとして機能する。ハードディスク（ＨＤＤ）２０５は、Ｗｅｂブラウザ等のアプリケーションプログラム、プリントサーバプログラム、プリントＷｅｂサーバ、ＯＳ、関連プログラム等を格納している。表示手段であるディスプレイ２０６は、キーボード２０７から入力したコマンドや、プリントサーバ１０３〜１０５に入稿された文書情報等を表示したりするものである。外部装置Ｉ／Ｆ２０８は、プリンタ、ＵＳＢ機器、周辺機器を接続するためのＩ／Ｆである。キーボード２０７は指示入力手段であるキーボードである。システムバス２０１は、印刷システムのプリントサーバ内におけるデータの流れを司るものである。ネットワークインタフェースカード（ＮＩＣ）２０９は、該インタフェース２０９、ネットワーク１１５を介して外部装置とのデータのやり取りを行う。なお、上記コンピュータの構成はその一例であり、図２の構成例に限定されるものではない。例えば、データやプログラムの格納先は、その特徴に応じてＲＯＭ、ＲＡＭ、ＨＤＤなどで変更することも可能である。
【００１５】
また、プリンタ１１０〜１１２のコントローラ２０９は、プリンタの制御系を司る機器である。プリンタの装置全体の制御を行うＣＰＵ２１０は、システムバス２１８に接続される各種デバイスとのアクセスを統括的に制御する。この制御は、ROM２１２に記憶された制御プログラム等あるいはディスクコントローラ(DKC２１６)を介して接続された外部メモリ２２３に記憶された制御プログラムやリソースデータ(資源情報)等に基づく。ＲＡＭ２１１はCPU２１０の主メモリ、ワークエリア等として機能する。RAM２１１は、図示しない増設ポートに接続されるオプションRAMによりメモリ容量を拡張することができるように構成されている。外部記憶手段２１３は大容量メモリとして機能し、関係プログラム等を格納している。操作パネル（操作部）２２１には、プリンタ１１０〜１１２の動作モード等の設定やプリンタ１１０〜１１２の動作状況の表示、複写指定等の操作を行うためのボタンおよび液晶パネルやLED２１４等の表示部が配置される。ネットワークインタフェースカード（ＮＩＣ）２１９は、該インタフェース２１９を介して外部装置とのデータのやり取りを行う。なお、本図で示したプリントエンジン２２０は既知の印刷技術を利用するものであり、好適な実施系として例えば電子写真方式(レーザービーム方式)やインクジェット方式、昇華方(熱転写)方式等が挙げられる。ラスタコントローラ２１５は、ＰＤＬ言語・ＰＤＦ言語である印刷データを画像データに変換するコントローラである。機器I/F２１７は、USB等で接続可能な外部機器との接続I/Fである。
【００１６】
ここで、図３、図４、図５を用いて印刷システムにプリンタを登録する処理と、印刷システムに他サービス、または他プログラムから投入された文書データを保持する処理と、ユーザー操作によりＷｅｂブラウザ３０１から送られた印刷リクエストに対し、プリントサーバ１０３〜１０５が印刷データをプリンタに送信し、印刷を行う処理について説明する。図３はクライアント端末からの印刷要求に始まり、プリンタで印刷されるまでの処理の流れを、図４は、プリントＷｅｂサーバとプリントサーバそれぞれの機能ブロックを、図５はプリントサーバのジョブ管理サービス３０４で管理され、データベース管理部４０５により保存される各種情報の詳細を示す。本印刷システムはスケールアウト可能な分散構成をとったプリントサーバ１０３〜１０５を含み、プリントＷｅｂサーバ１０７〜１０９とプリントサーバ１０３〜１０５の前段にはロードバランサ１１３、１１４がそれぞれ配置され、リクエストはすべて分散されてプリントＷｅｂサーバ１０７〜１０９のいずれか、もしくはプリントサーバ１０３〜１０５の何れかが受ける構成をとる。プリントサーバ１０３〜１０５が管理する文書情報５０１、印刷ジョブ情報５１１、印刷履歴情報５２１、プリンタ情報５３１はそれぞれのプリントサーバ１０３〜１０５が共有情報としてアクセス可能なストレージ１０６に保持される。ただし、プリントサーバ１０３〜１０５配下で管理されるスプーラサービス３０５のプリンタオブジェクト４１２、印刷ポート４１３の各リソースはそれぞれのプリントサーバ１０３〜１０５が管理する。
【００１７】
＜プリンタの登録処理＞
まず、印刷システムにプリンタを登録する処理すなわちプリントサーバにプリンタを登録する処理について説明する。例えばプリンタを印刷システムに新たに追加した場合、存プリンタに関する情報（プリンタ情報）をプリントサーバに登録する。そのためにユーザー操作によりＷｅｂブラウザ３０１でプリンタ情報を指定するとその情報が、ロードバランサ１１３で振り分けられたプリントＷｅｂサーバ１０７〜１０９のＷｅｂアプリケーション１０８が受ける。プリンタ情報には、プリンタ名、ドライバ名、プリンタオブジェクト名、ポート名、ＩＰアドレス・ホスト名、機種名、ＰＤＦダイレクトプリント機能の有無を示すＰＤＦダイレクトプリント有無等の情報が含まれる。ＰＤＦダイレクトプリント機能とは、ＰＤＦ形式の文書データを、プリンタがそのまま印刷する機能である。詳しくは、Ｗｅｂアプリケーション１０８のリクエスト受付部４０１が指定されたプリンタ情報を受けて、その受信したプリンタ情報をプリントサーバ通信部４０３に送る。プリントサーバ通信部４０３は、プリンタ情報をロードバランサ１１４で振り分けられたプリントサーバ１０３〜１０５のジョブ管理サービス３０４に送信する。送られたプリンタ情報は、ジョブ管理サービス３０４の登録プリンタ管理部４１０が受け取る。登録プリンタ管理部４１０は、受け取ったプリンタ情報をデータベースサービス３０３のデータベース管理部４０５に送る。データベース管理部４０５は受け取ったプリンタ情報のプリンタ名５３２が既にデータベースに登録されているか確認し、登録されていない場合は、そのプリンタ情報をストレージ１０６のデータベースに新たなプリンタ情報５３１として保存する。ここで、プリンタ情報５３１には、プリンタ名５３２、ドライバ名５３３、ＩＰアドレスまたはホスト名５３６、機種名５３７、ＰＤＦダイレクト機能の有無５３８の各情報がある。プリンタ名５３２はシステムでユニーク文字列である。ＰＤＦダイレクト機能の有無５３８は、プリンタのオプション機能である、ＰＤＦダイレクト機能が装備されているかどうかを示すフラグである。この値が有の場合、ＰＤＦファイルを、ドライバを介することなく直接プリンタに送り印刷することが可能である。無の場合はドライバでＰＤＬに変換し、プリンタに送る印刷される。ここで、プリンタオブジェクト名とは、プリンタオブジェクトすなわち論理プリンタの識別情報である。プリンタオブジェクトは、プリンタサーバから見たソフトウェア上のプリンタ、すなわち論理プリンタであり、ドライバを用いた印刷の際には、特定したプリンタオブジェクトすなわち論理プリンタに対してデータや指示等を含むメッセージを与えることでプリンタオブジェクトに対応したプリンタにより印刷が実行される。またプリンタオブジェクトにはあらかじめ指定された印刷設定が関連付けられており、あるいは含まれており、プリンタオブジェクトを指定することで、使用するプリンタのほか印刷設定も指定される。この印刷設定は変更することもできる、ここでいうプリンタには、ソフトウェアで実現した仮想的なプリンタも含む。またプリンタに対応したドライバは、本例では予めインストールされているものとする。このドライバはアプリケーションデータをＰＤＬに変換する機能を有するものであるので、たとえプリンタ１１０〜１１２が複数の機種のプリンタであったとしても、同一のＰＤＬ（ページ記述言語）に対応したものであれば、共通のドライバを用いることができる。ここまでが、印刷システムにプリンタを登録する処理の説明となる。
【００１８】
＜文書データの投入及び保持＞
次に、印刷システムに他サービス、または他プログラムから投入された文書データをプリントサーバ１０３〜１０５が保持する処理について以下で説明する。印刷システムは、他サービス、または他プログラムから投入される文書データと文書情報である文書名５０３、文書種５０６をロードバランサ１１３で振り分けられたプリントＷｅｂサーバ１０７〜１０９のＷｅｂアプリケーション１０８が受ける。文書種とは文書データの種類であり、例えばＰＤＦファイルであることを示す情報である。もちろん示される情報はＰＤＦファイルに限らず、例えばＪＰＥＧファイルなど、プリンタドライバを用いずともプリンタ単独で印刷し得る文書とそうでない文書とを区別するための情報である。詳しくは、文書データおよび文書情報をＷｅｂアプリケーション１０８のリクエスト受付部４０１が受けて、その受信した文書データおよび文書情報をプリントサーバ通信部４０３に送る。プリントサーバ通信部４０３は、文書データおよび文書情報をロードバランサ１１４で振り分けられたプリントサーバ１０３〜１０５のジョブ管理サービス３０４に送信する。送られた文書データおよび文書情報は、ジョブ管理サービス３０４の文書データ管理部４０７が受け取る。文書データ管理部４０７は、文書ＩＤ５０２を発行し、文書名５０３、文書種５０６、受付日時５０５と、文書ステータス５０４として「待機中」の文書情報５０１を作成する。文書ステータス５０４としては、「待機中」「印刷待ち」「印刷中」「印刷済み」「エラー終了」「キャンセル終了」等がある。また、前述の文書情報５０１は、Ｗｅｂブラウザ３０１で文書情報一覧情報として表示する。文書データ管理部４０７は、文書情報５０１をデータベースサービス３０９のデータベース管理部４０５に送る。文書情報５０１を受け取ったデータベース管理部４０５は、ストレージ１０６のデータベースに保存する。また、文書データ管理部４０７は、文書データをデータベースサービス３０９のデータファイル管理部４０５に送る。データファイル管理部４０５は、受け取った文書データをストレージ１０６のファイルシステムに保存する。ここで、データベースサービス３０３は、ストレージ１０６に文書データおよび文書情報５０１、印刷ジョブ情報５１１、印刷履歴情報５２１、プリンタ情報５３１を管理する。このストレージ１０６は複数に分かれたプリントサーバ１０３〜１０５の各データベースサービス３０３から共有管理されている。ここまでが、印刷システムに他サービス、または他プログラムから投入された文書データをプリントサーバ１０３〜１０５が保存する処理の説明となる。
【００１９】
＜印刷処理＞
次に、ユーザー操作によりＷｅｂブラウザ３０１から送られた印刷リクエストに対し、プリントサーバ１０３〜１０５が印刷データをプリンタに送信し、印刷を行う処理すなわち印刷制御の手順について図６、７のシーケンス図を交えて説明する。図６は、文書種によりスプーラサービスを介さない印刷シーケンスであり、図７は文書種によりスプーラサービスを介し、印刷を行うシーケンス図となる。なお図は別々となっているが、後述のように処理はＳ６０６、Ｓ７０６から条件に応じて分岐すればよい。また、図７においては、ＰＤＬ生成ドライバ４１１、プリンタオブジェクト４１２、印刷ポート４１３が、それらを含むスプーラサービス３０５と同列に記載されているが、これは説明の便宜であって、図７のスプーラサービス３０５は、ＰＤＬ生成ドライバ４１１、プリンタオブジェクト４１２、印刷ポート４１３以外のモジュールによる機能を代表している。また図７のポートモニタは、図４には図示されていないが、例えばウインドウズ（登録商標）などのオペレーティングシステムにより提供され、要求に応じて印刷ポート４１３を作成し、あるいは削除するなどの機能を有する。これはウィンドウズ（登録商標）には限らず、他のオペレーティングシステムであっても同等な機能に対応している。
【００２０】
Ｓ６０１、Ｓ７０１において、Ｗｅｂブラウザ３０１からの印刷リクエストをロードバランサ１１４が受ける。印刷リクエストには、ユーザーがＷｅｂブラウザ３０１で表示される文書一覧と印刷プリンタ一覧から指定した印刷対象の文書データＩＤとプリンタ名というそれぞれの識別情報が含まれている。Ｓ６０２、Ｓ７０２において、ロードバランサ１１４は印刷リクエストを振り分け、印刷リクエストが振り分けられたプリントＷｅｂサーバのＷｅｂアプリケーション３０２のリクエスト受付部４０１が受ける。Ｓ６０３、Ｓ７０３で、Ｗｅｂアプリケーション３０２は、印刷リクエストに含まれた文書ＩＤ５０２とプリンタ名５３２をＷｅｂブラウザ３０１から受け取る。リクエスト受付部４０１は受信した文書ＩＤ５０２とプリンタ名５３２をプリントサーバ通信部４０３に送る。Ｓ６０３、Ｓ７０３において、プリントサーバ通信部４０３は、文書ＩＤ５０２とプリンタ名５３２を含む印刷指示をロードバランサ１１４に送信する。Ｓ６０４、Ｓ７０４において、ロードバランサ１１４は、プリントサーバの負荷等に応じて印刷指示を振り分け、プリントサーバ１０３〜１０５のいずれかのジョブ管理サービス３０４に送信する。ジョブ管理サービス３０４では、このデータを文書データ管理部４０７が受ける。Ｗｅｂ画面生成部４０４は印刷リクエストを受けた旨を表した画面を作成し、レスポンス送信部４０２を介し、Ｗｅｂブラウザ３０１にレスポンス画面を返す。
【００２１】
印刷リクエストを受けたジョブ管理サービス３０４の文書データ管理部４０７は、データベース管理部４０５から文書ＩＤ５０２を基に文書情報５０１を取得する。具体的には印刷リクエストに含まれた文書ＩＤを含む文書情報を取得する。また、文書データ管理部４０７は、文書情報５０１を取得できた場合にデータファイル管理部４０６から文書ＩＤ５０２に紐づく文書データを取得する。そして、文書データ管理部４０７は、文書情報５０１とプリンタ名５３２と文書データとを印刷ジョブ管理部４０９に送る。文書データ管理部４０７は、文書情報５０１のステータス５０４を「印刷待ち」に変更するため、変更リクエストをデータベース管理部４０５に送る。データベース管理部４０５は文書情報５０１のステータス５０４を「印刷待ち」に変更する。次に、文書情報５０１とプリンタ名５３２と文書データを受け取った印刷ジョブ管理部４０９は、印刷ジョブ情報５１１を作成する。この時、印刷ジョブ管理部４０９は、Ｓ６０５、Ｓ７０５において、印刷ジョブＩＤ５１２を発行し、新たな印刷ジョブを印刷ジョブ情報５１１に登録する。そしてその新たに登録した印刷ジョブ情報のステータス５１３を「スプール待ち」に設定する。ここで、ステータス５１２の値は、「スプール待ち」「スケジュール待機中」「転送中」「転送済み」「印刷中」等の値がある。そして、印刷開始日時５１４とプリンタ名５１５を設定し、データベース管理部４０５に印刷ジョブ情報５１１を送る。データベース管理部４０５では、この情報をストレージ１０６に保存する。
【００２２】
次に、印刷ジョブ管理部４０９は、Ｓ６０６、Ｓ７０６において、印刷対象の文書情報５０１から文書種５０６を確認する。すなわち文書種５０６を参照してプリンタドライバが必要な文書データであるか、具体的にはＰＤＦまたはＰＤＬ（ただし指定プリンタで処理可能なＰＤＬに限る。）のいずれかであるか否かを判定する。ＰＤＦの場合、印刷ジョブ管理部４０９は登録プリント管理部４１０に対し、プリンタ名５３２を渡しプリンタ情報５３１を取得する。登録プリント管理部４１０は、データベース管理部４０５からプリンタ名５３２を基にプリンタ情報５３１を取得し、印刷ジョブ管理部４０９に渡す。そして、印刷ジョブ管理部４０９はプリンタ情報５３１のＰＤＦダイレクト機能の有無５３８を判定する。ここで印刷対象がＰＤＦ文書であり、かつＰＤＦダイレクト機能があれば図６のＳ６０７から実行される。一方、印刷対象の文書がＰＤＦでないか、あるいはＰＤＦダイレクト機能がないなら、図７のＳ７０７から実行される。
【００２３】
印刷対象がＰＤＦ文書でありかつ使用するプリンタにＰＤＦダイレクト機能がある場合、または文書種５０６がＰＤＬの場合、印刷ジョブ管理部４０９はＳ６０７において、文書データと印刷ジョブＩＤ５１２とプリンタ情報５３１とをプリンタ制御サービス３０６の印刷リクエスト受付部４１４に送る。また、Ｓ６０７において、印刷ジョブ管理部４０９は文書種５０６がＰＤＬの場合も文書データと印刷ジョブＩＤ５１２とプリンタ情報５３１とをプリンタ制御サービス３０６の印刷リクエスト受付部４１４に送る。
【００２４】
Ｓ６０７において、印刷ジョブ管理部４０９から、ＰＤＬの文書データまたはＰＤＦの文書データと印刷ジョブＩＤ５１２とプリンタ情報５３１とを含む印刷リクエスト（印刷指示）を受け取ったプリンタ制御サービス３０６の印刷リクエスト受付部４１４は、Ｓ６０８において、印刷データ送信部４１５を介してその文書データをプリンタ１１０〜１１２に転送する。データを受け取ったプリンタ１１０〜１１２は、Ｓ６０９において印刷を行う。そして、プリント制御サービス３０６はこの状態を印刷ジョブ管理部４０９に通知する。印刷ジョブ管理部４０９はデータベース管理部４０５を介して印刷ジョブ情報５１１のステータス５１３を「スケジュール待機中」（プリンタ１１０〜１１２にデータを転送する前の状態）、「転送中」、「転送済み」、「印刷中」に順次変更する。
【００２５】
一方、Ｓ６０６、Ｓ７０６において、文書種５０６がＰＤＬデータではないか（例えばアプリケーションデータフォーマット）、またはＰＤＦであるが指定プリンタにＰＤＦダイレクト機能が無い場合、次の処理を行う。Ｓ７０７において、指定されたプリンタのプリンタ情報５３１のプリンタオブジェクト名５３４が空の場合は、つまりスプーラサービス３０５に指定されたプリンタのプリンタオブジェクト４１２が存在しない場合、印刷ジョブ管理部４０９は、Ｓ７０８において、プリンタ制御サービス３０６のプリンタ管理部４１６に対して、新たな印刷システムの印刷ポート作成要求を出す。Ｓ７０９において、プリンタ管理部４１６は、スプーラサービス３０５に対し印刷システムの印刷ポート作成要求を出す。Ｓ７１０において、スプーラサービス３０５は、印刷システムの印刷ポート４１３を作成する。そして、Ｓ７１１において、印刷ジョブ管理部４０９は、プリンタ制御サービス３０６のプリンタ管理部４１６に、指定されたプリンタに対応したプリンタオブジェクト４１２の登録リクエストを送る。Ｓ７１２において、プリンタ管理部４１６は、作成された印刷システムの印刷ポートに紐づく、プリンタオブジェクト４１２の登録リクエストをスプーラサービス３０５に対して送る。Ｓ７１３において、スプーラサービス３０５は、指定の印刷システムの印刷ポートに紐づくプリンタオブジェクト４１２を作成する。プリンタオブジェクトの作成は、例えばウインドウズ（登録商標）等のオペレーティングシステムにより提供される機能の一つである。スプーラサービス３０５は指定されたプリンタに対応するプリンタオブジェクトが生成されたことをプリンタ制御サービス３０６に応答する。その応答を受信したプリンタ制御サービス３０６は、Ｓ７１４において、プリンタ制御サービス３０６の印刷ジョブ管理部４０９は、登録されたプリンタオブジェクト４１２の名称を登録プリンタ管理部４１０に送る。登録プリンタ管理部４１０は、プリンタオブジェクト４１２の名称をプリンタ情報５３１のプリンタオブジェクト名５３４にデータベース管理部４０５を介して登録する。
【００２６】
ここで、Ｓ７０７において、プリンタ情報５３１にプリンタオブジェクト名５３４があると判定された場合は、つまりスプーラサービス３０５にプリンタオブジェクト４１２が存在する場合、印刷ジョブ管理部４０９は、プリンタ管理部４１６を介してスプーラサービス３０５からプリンタオブジェクト名５３４に紐づく印刷ポートの情報を取得する。印刷ジョブ管理部４０９は、取得した印刷ポート情報から印刷ポートが印刷システムの印刷ポート４１３であるか判定する。印刷システムの印刷ポート４１３でない場合は、Ｓ７０８において、印刷ジョブ管理部４０９は、プリンタ管理部４１６にスプーラサービス３０５に印刷システムの印刷ポート４１３の作成依頼を出す。Ｓ７０９において、プリンタ管理部４１６はスプーラサービス３０５に印刷システムの印刷ポート４１３の作成依頼を出す。スプーラサービス３０５は、Ｓ７１０において、印刷ポート４１３の作成を行う。そしてＳ７１１において、印刷ジョブ管理部４０９は、プリンタ管理部４１６にスプーラサービス３０５に作成された印刷ポートをプリンタオブジェクト４１２に紐づける設定変更依頼を出す。更に、Ｓ７１２において、プリンタ管理部４１６は、スプーラサービス３０５に印刷ポートをプリンタオブジェクト４１２に紐づける設定変更依頼を出す。Ｓ７１３において、スプーラサービス３０５は、印刷ポート設定変更依頼をプリンタオブジェクト４１２に出す。そして、プリンタオブジェクト４１２は、印刷ポートをプリンタオブジェクト４１２に紐づける。
【００２７】
ここで、前述のＳ７０７において、プリンタオブジェクト名５３４がある場合は、それに一致するプリンタオブジェクト４１２がスプーラサービス３０５に存在していることになる。しかし、このプリンタオブジェクト４１２が印刷システムの印刷ポート４１３でないケースがある。それは、ユーザーがプリンタオブジェクト４１２に直接設定可能な印刷属性を使用するために、印刷システムに自動的にプリンタオブジェクト４１２を作成させるのではなく、ユーザーが手動でプリンタオブジェクト４１２を登録しておいた場合である。この場合ユーザーは指定したプリンタのプリンタオブジェクト４１２に対する印刷ポートとしてはＯＳにデフォルトで登録されているポートを指定して登録しておく。そこで、印刷システムはプリンタオブジェクト４１２が存在したとしても印刷システムの印刷ポート４１３に紐づいているか判定し、紐づいていない場合は、印刷システムの印刷ポート４１３を作成し、プリンタオブジェクト４１２と紐づける。
【００２８】
次に、Ｓ７１５において、印刷ジョブ管理部４０９は、印刷ジョブＩＤ５１２、プリンタオブジェクト名５３４をプリンタ制御サービス３０６の印刷リクエスト受付部４１４に送る。更に、Ｓ７１６において、印刷ジョブ管理部４０９は、スプーラサービス３０５のプリンタオブジェクト４１２に対し、文書データ、印刷ジョブＩＤ５１２を送る。Ｓ７１７において、プリンタオブジェクト４１２は、ＰＤＬ作成ドライバ４１１に文書データを送る。Ｓ７１８において、ＰＤＬ作成ドライバ４１１は文書データをＰＤＬデータに変換し、印刷ポート４１３にＰＤＬデータに送る。そして、Ｓ７１９において、印刷ポート４１３は、プリント制御サービス３０６の印刷リクエスト受付部４１４に対してＰＤＬデータができた旨をジョブＩＤとともに通知する。Ｓ７２０において、印刷リクエスト受付部４１４はＰＤＬデータを取得し、印刷データ送信部４１５に送る。Ｓ７２１において、印刷データ送信部４１５は、ＰＤＬデータをプリンタ１１０〜１１２に転送する。データを受け取ったプリンタ１１０〜１１２は、Ｓ７２２において印刷を行う。そして、プリント制御サービス３０６はこの状態を印刷ジョブ管理部４０９に通知する。印刷ジョブ管理部４０９はデータベース管理部４０５を介して印刷ジョブ情報５１１のステータス５１３を「スケジュール待機中」（プリンタ１１０〜１１２にデータを転送する前の状態）、「転送中」、「転送済み」、「印刷中」に順次変更する。
【００２９】
次にプリンタ１１０〜１１２は印刷が終わるとＳ６１０、Ｓ７２３において、完了通知をプリント制御サービス３０６に送る。Ｓ６１１、Ｓ７２４において、プリント制御サービス３０６は、印刷ジョブＩＤ５１２とともに完了通知をジョブ管理サービス３０４の印刷ジョブ管理部４０９に送る。印刷ジョブ管理部４０９はデータベース管理部４０５を介して印刷ジョブ情報５１１のステータス５１３を「印刷済み」「エラー終了」「キャンセル終了」の何れかに変える。また、印刷ジョブ管理部４０９は印刷ジョブ情報５１１を元に印刷履歴情報５２１を作成し、データベース管理部４０５を介して登録する。印刷履歴情報５２１の印刷ジョブＩＤ５２２と印刷ジョブＩＤ５１２は同じ値であり、完了ステータス５２３は「印刷済み」「エラー終了」「キャンセル終了」の何れかとなる。また、印刷完了日時５２４は印刷完了時の日時であり、プリンタ名５２５は、印刷を行ったプリンタのプリンタ名５３２と同値である。
【００３０】
＜プリンタオブジェクト作成フロー＞
図８はひとつのプリントサーバにおいてスプーラサービスを介して印刷を行う場合の、プリントサーバにより実行される印刷時の処理フローである。これは図７のＳ７０６〜Ｓ７１４の処理手順を示したものである。
【００３１】
Ｓ８０１において、印刷対象の文書データの種類（文書種）がＰＤＦであるか判定する。ＰＤＦの場合、印刷ジョブ管理部４０９は登録プリント管理部４１０に対し、プリンタ名５３２を渡しプリンタ情報５３１を取得する。登録プリント管理部４１０は、データベース管理部４０５からプリンタ名５３２を基にプリンタ情報５３１を取得し、印刷ジョブ管理部４０９に渡す。そして、印刷ジョブ管理部４０９はプリンタ情報５３１のＰＤＦダイレクト機能の有無５３８を判定する。ここで印刷対象がＰＤＦ文書であり、かつＰＤＦダイレクト機能があれば図８の処理は終了して図６のＳ６０７から実行される。一方、印刷対象の文書がＰＤＦでないか、あるいはＰＤＦダイレクト機能がないなら、図７のＳ７０７から実行される。なおステップＳ８０１、Ｓ８０２の判定は、印刷対象の文書データが、プリンタドライバなしで印刷可能か否かのテストであり、可能であれば図８の処理は終了となる。
【００３２】
印刷対象がＰＤＦ文書でないかまたは使用するプリンタにＰＤＦダイレクト機能がなく、かつＰＤＬデータでもない場合には、文書種５０６がアプリケーションデータフォーマット、または、文書種がＰＤＦであっても指定プリンタにＰＤＦダイレクト機能が無い場合、次の処理を行う。まず、Ｓ８０３において、指定されたプリンタのプリンタ情報５３１のプリンタオブジェクト名５３４が空であるか判定する。空の場合、つまりスプーラサービス３０５に指定されたプリンタのプリンタオブジェクト４１２が存在しない場合、印刷ジョブ管理部４０９は、Ｓ８０５において、プリンタ制御サービス３０６のプリンタ管理部４１６に対して、新たな印刷システムの印刷ポート作成要求を出する。プリンタ管理部４１６は、スプーラサービス３０５に対し印刷システムの印刷ポート作成要求を出す。スプーラサービス３０５は、印刷システムの印刷ポート４１３を作成する。そして、Ｓ８０６において、印刷ジョブ管理部４０９は、プリンタ制御サービス３０６のプリンタ管理部４１６に、指定されたプリンタに対応したプリンタオブジェクト４１２の登録リクエストを送る。プリンタ管理部４１６は、作成された印刷システムの印刷ポートに紐づく、プリンタオブジェクト４１２の登録リクエストをスプーラサービス３０５に対して送る。スプーラサービス３０５は、指定の印刷システムの印刷ポートに紐づくプリンタオブジェクト４１２を作成する。
【００３３】
一方、Ｓ８０４において、プリンタ情報５３１にプリンタオブジェクト名５３４があると判定された場合は、つまりスプーラサービス３０５にプリンタオブジェクト４１２が存在する場合、印刷ジョブ管理部４０９は、Ｓ８０７において、プリンタ管理部４１６を介してスプーラサービス３０５からプリンタオブジェクト名５３４に紐づく印刷ポートの情報を取得し、取得した印刷ポート情報から印刷ポートが印刷システムの印刷ポート４１３であるか判定する。印刷システムの印刷ポート４１３でない場合は、Ｓ８０８において、印刷ジョブ管理部４０９は、プリンタ管理部４１６にスプーラサービス３０５に印刷システムの印刷ポート４１３の作成依頼を出す。プリンタ管理部４１６はスプーラサービス３０５に印刷システムの印刷ポート４１３の作成依頼を出す。スプーラサービス３０５は、Ｓ７１０において、印刷ポート４１３の作成を行う。そして印刷ジョブ管理部４０９は、プリンタ管理部４１６にスプーラサービス３０５に作成された印刷ポートをプリンタオブジェクト４１２に紐づける設定変更依頼を出す。更に、プリンタ管理部４１６は、スプーラサービス３０５に印刷ポートをプリンタオブジェクト４１２に紐づける設定変更依頼を出す。スプーラサービス３０５は、印刷ポート設定変更依頼をプリンタオブジェクト４１２に出す。そして、プリンタオブジェクト４１２は、新たに生成した印刷ポートをプリンタオブジェクト４１２に紐づける。
【００３４】
以上の手順により、印刷対象の文書データが、プリンタドライバを必要とするデータであり、指定されたプリンタに対応したプリンタオブジェクトすなわち論理プリンタがプリントサーバにない場合には、印刷リクエストに応じて新たに作成することができる。また、プリンタオブジェクトに対応した印刷ポートがない場合にも、印刷リクエストに応じて新たに作成することができる。このように、プリントサーバは、実際に印刷を行うトリガとなる印刷リクエストに応じてプリンタオブジェクトおよび／または印刷ポートが作成されるため、分散印刷システムの拡張に際して、プリントサーバにマニュアル操作でプリンタオブジェクトを用意し、また印刷ポートを割り当てることなく、印刷を実施できる。また、プリントサーバとプリンタとの対応関係も柔軟なものとなり、ロードバランサによるプリントサーバの選択の自由度を高くすることができる。
【００３５】
ここで、Ｗｅｂアプリケーション３０２、データベースサービス３０３、ジョブ管理サービス３０４、スプーラサービス３０５、プリンタ制御サービス３０６はそれぞれ独立したプログラムであり、それぞれ別々の情報処理装置に配置することが可能である。これらのプログラムはそれぞれネットワークに繋がった情報処理装置に配置し、それぞれのプログラム間で通信を行う。またこれらのプログラムを同情報処理装置に配置することも可能である。
【００３６】
以上が、ロードバランサを配置した分散構成の印刷システムにおける、プリンタを登録する処理と、印刷システムに他サービス、または他プログラムから投入された文書データを保持する処理と、ユーザー操作によりＷｅｂブラウザ３０１から送られた印刷リクエストに対し、プリントサーバ１０３〜１０５が文書種により、プリンタオブジェクトの必要性を判断して、必要な文書種の場合にプリンタオブジェクトを作成して印刷を行う分散印刷システムに関する説明となる。上記のように文書種により動的にプリンタオブジェクトを作成することにより、ロードバランサ経由でリクエストが分散されルスケールアウト可能な印刷システムが実現可能となる。
【００３７】
［実施例２］
ここでは、本発明における印刷システムのプリンタ削除処理について図９、図１０を用いて説明する。プリンタを本実施例の分散印刷システムから切り離した場合、そのプリンタ情報をプリントサーバから削除することで、資源の節約や存在しないプリンタの利用を防止できる。そのためにプリンタ削除処理すなわちプリンタ情報の削除が行われる。なお本実施例のプリンタ情報は、図９に示す通り削除フラグ９０１が図５のプリンタ情報に対して新たに加わっている。したがってプリンタの登録に際しては、この削除フラグ９０１も指定されている。削除フラグ９０１は、プリンタ情報の削除に際して、プリンタ情報に登録されたプリンタオブジェクトも併せて削除することを示すフラグである。
【００３８】
本印刷システムのプリンタ情報５３１は各プリントサーバ１０３〜１０５が共有しているストレージ１０６に管理されている。また、プリンタオブジェクト４１２、印刷ポート４１３は、各プリントサーバ１０３〜１０５配下にスプーラサービス３０５のリソースとして管理されている。クライアント端末からのプリンタ削除リクエストは、ロードバランサ経由でプリントＷｅｂサーバ１０７〜１０９を介してプリントサーバ１０３〜１０５の中の１台が受ける。削除リクエストには削除対象のプリンタ名が含まれている。まず、プリンタ削除リクエストを受けるとプリントサーバ１０３〜１０５の登録プリンタ管理部４１０が、Ｓ１００１において、データベース管理部４０５を介してプリンタ情報５３１の中から削除対象のプリンタ名を検索する。Ｓ１００２において、プリンタ情報５３１の中に削除対象のプリンタ名５３２が存在すると、Ｓ１００３において、登録プリンタ管理部４１０はデータベース管理部４０５を介して該当するプリンタ名を含むプリンタ情報５３１を削除する。なお削除前に、削除対象のプリンタ情報に含まれたプリンタオブジェクト名５３４およびポート名５３５および削除フラグ９０１については一時保存するなどして削除後にも参照できるようにしておく。Ｓ１００４において、削除したプリンタ情報５３１のプリンタオブジェクト名５３４に一致するプリンタオブジェクト名を有するプリンタ情報５３１を検索する。Ｓ１００５において、他にあるか判定し、ある場合は、そこで削除処理は終了する。「他にある場合」とは、印刷の際に同じプリンタオブジェクトを使用するプリンタ情報が他に登録されている場合であるので、そのプリンタオブジェクトは削除せず残しておく。
【００３９】
削除したプリンタ情報５３１のプリンタオブジェクト名５３４に一致するプリンタオブジェクト名を有するプリンタ情報が他にない場合は、Ｓ１００６において、保存しておいた削除フラグ９０１を参照する。このフラグは、前述のプリンタオブジェクト４１２の印刷設定を使用するユーザーが、プリンタオブジェクト４１２を印刷システムが自動的に削除しないで残しておくためのフラグである。Ｓ１００６において、削除フラグ９０１がＯＮの場合は、Ｓ１００７において、まず削除されたプリンタ情報に含まれたプリンタオブジェクト名のプリンタオブジェクトを削除する。そのために、登録プリンタ管理部４１０は削除するプリンタオブジェクト名５３４を、プリント制御サービス３０６のプリンタ管理部４１６に送信してプリンタ削除を依頼する。プリンタ管理部４１６は、スプーラサービス３０５に対しプリンタオブジェクト４１２の削除を依頼する。スプーラサービス３０５は指定されたプリンタオブジェクト４１２の削除を実行する。そして、登録プリンタ管理部４１０は、削除プリンタオブジェクト情報９１１のプリンタオブジェクト名９１２（図９参照）に、削除依頼したプリンタオブジェクト４１２のプリンタオブジェクト名５３４を登録する。そしてＳ１００８において、削除したプリンタ情報５３１に含まれたポート名５３５を持つ印刷ポートを削除する。そのために、印刷ジョブ管理部４０９は、プリンタ制御サービス３０６のプリンタ管理部４１６に対して、指定した印刷ポートの削除要求を出す。プリンタ管理部４１６は、スプーラサービス３０５に対し指定された印刷ポートの削除要求を出す。スプーラサービス３０５は、指定された印刷ポート４１３を削除する。さらに、削除プリンタオブジェクト情報９１１は、プリンタ削除リクエストを受け付けたプリントサーバ以外のプリントサーバに対しても送信などで拡散され、当該プリントサーバの有する削除プリンタオブジェクト情報９１１とマージされる。
【００４０】
一方、Ｓ１００６において削除フラグ９０１がＯＦＦの場合は、Ｓ１００９において、登録プリンタ管理部４１０は、削除したプリンタ情報５３１に登録されたプリンタオブジェクト名５３４を持つプリンタオブジェクト４１２の印刷ポートを、ＯＳにデフォルトで登録されているポート（例えばＬＰＴポート等）に変更する依頼をプリンタ管理部４１６に出す。プリンタ管理部４１６は、スプーラサービス３０５に該当するプリンタオブジェクト４１２のポート変更依頼を出す。スプーラサービス３０５はプリンタオブジェクト４１２のポート変更を実行する。ここまでが、プリンタ削除リクエストを受けた１台のプリントサーバ１０３〜１０５のプリンタ削除処理となる。
【００４１】
プリンタ削除リクエストを受けていない他のプリントサーバ１０３〜１０５は、１日１回の定期処理として特定の決められた時間になると、登録プリンタ管理部４１０が定刻に動作し、データベース管理部４０５を介して削除プリンタオブジェクト情報９１１のプリンタオブジェクト名９１２を参照する。そしてプリンタ管理部４１６を介してスプーラサービス３０５にプリンタオブジェクト名９１２の存在を判定し、このプリンタオブジェクト４１２が存在する場合は、そのプリンタオブジェクトの削除依頼を行う。削除プリンタオブジェクト情報９１１は、該当するプリンタオブジェクトの削除が完了した後で消去してもよい。
【００４２】
以上が、本印刷システムの処理によりプリンタ、プリンタオブジェクト削除処理の説明となる。これによりスケールアウトが可能な分散印刷システム構成であっても、リクエスト直接受けないプリントサーバのプリンタオブジェクト４１２の削除が可能となる。また、プリンタ情報の削除に伴い、当該プリンタに対応するプリンタオブジェクトを削除するか否かを、ユーザにより指定することができる。
【００４３】
［その他の実施例］
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2015162026.tif 000003
【図２】
2015162026.tif 000004
【図３】
2015162026.tif 000005
【図４】
2015162026.tif 000006
【図５】
2015162026.tif 000007
【図６】
2015162026.tif 000008
【図７】
2015162026.tif 000009
【図８】
2015162026.tif 000010
【図９】
2015162026.tif 000011
【図１０】
2015162026.tif 000012