(57)【特許請求の範囲】
【請求項１】
インストール済みの論理プリンタを検出する検出手段と、
前記検出手段によりインストール済みの論理プリンタが検出された場合、検出された論理プリンタのポートに設定されている設定情報を取得する取得手段と、
前記取得手段により取得された設定情報に基づき拡張機能を実現するためのプリントサーバ用のポートモニタを作成するポートモニタ作成手段と、
前記作成手段により作成されたポートモニタを用いて拡張機能を実現するための論理プリンタを作成する論理プリンタ作成手段とを有することを特徴とする情報処理装置。
【請求項２】
前記設定情報は、ＩＰアドレス、及びプリントジョブ送信方式情報を含むことを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記拡張機能は、プリントジョブデータを読み出し、分割し、システム内のプリンタに送出する機能を含むことを特徴とする請求項１記載の情報処理装置。
【請求項４】
前記論理プリンタ作成手段は、前記作成手段により作成されたポートモニタと検出された論理プリンタのドライバ名に基づき拡張機能を実現するための論理プリンタを作成することを特徴とする請求項１記載の情報処理装置。
【請求項５】
前記検出手段により検出された論理プリンタのポートモニタを前記作成手段により作成されたポートモニタに置き換える置き換え手段をさらに有することを特徴とする請求項１記載の情報処理装置。
【請求項６】
ネットワーク上のプリンタを検出する検出手段と、
前記検出手段により検出されたネットワーク上のプリンタに設定されている設定情報を取得する取得手段と、
前記取得手段により取得された設定情報を用いて拡張機能を実現するためのプリントサーバ用のポートモニタを作成するポートモニタ作成手段と、
前記作成手段により作成されたポートモニタを用いて拡張機能を実現するための論理プリンタを作成する論理プリンタ作成手段とを有することを特徴とする情報処理装置。
【請求項７】
前記設定情報は、ＩＰアドレス、及びプリンタ機種名を含むことを特徴とする請求項６記載の情報処理装置。
【請求項８】
前記拡張機能は、プリントジョブデータを読み出し、分割し、システム内のプリンタに送出する機能を含むことを特徴とする請求項６記載の情報処理装置。
【請求項９】
前記論理プリンタ作成手段は、前記作成手段により作成されたポートモニタと検出された論理プリンタのドライバ名に基づき拡張機能を実現するための論理プリンタを作成することを特徴とする請求項６記載の情報処理装置。
【請求項１０】
インストール済みの論理プリンタを検出する論理プリンタ検出手段と、
前記論理プリンタ検出手段によりインストール済みの論理プリンタが検出されない場合、ネットワーク上のプリンタを検出するネットワークプリンタ検出手段と、
前記論理プリンタ検出手段によりインストール済みの論理プリンタが検出された場合、検出された論理プリンタのポートに設定されている設定情報を取得する第１取得手段と、
前記ネットワークプリンタ検出手段により検出されたプリンタに設定されている設定情報を取得する第２取得手段と、
前記第１取得手段及び前記第２取得手段により取得された設定情報に基づき拡張機能を実現するためのプリントサーバ用のポートモニタを作成するポートモニタ作成手段と、
前記作成手段により作成されたポートモニタを用いて拡張機能を実現するための論理プリンタを作成する論理プリンタ作成手段とを有することを特徴とする情報処理装置。
【請求項１１】
インストール済みの論理プリンタを検出する検出ステップと、
前記検出ステップによりインストール済みの論理プリンタが検出された場合、検出された論理プリンタのポートに設定されている設定情報を取得する取得ステップと、
前記取得ステップにより取得された設定情報に基づき拡張機能を実現するためのプリントサーバ用のポートモニタを作成するポートモニタ作成ステップと、
前記作成ステップにより作成されたポートモニタを用いて拡張機能を実現するための論理プリンタを作成する論理プリンタ作成ステップとを有することを特徴とする情報処理装置で実行される設定方法。
【請求項１２】
前記設定情報は、ＩＰアドレス、及びプリントジョブ送信方式情報を含むことを特徴とする請求項１１記載の情報処理装置で実行される設定方法。
【請求項１３】
前記拡張機能は、プリントジョブデータを読み出し、分割し、システム内のプリンタに送出する機能を含むことを特徴とする請求項１１記載の情報処理装置で実行される設定方法。
【請求項１４】
前記論理プリンタ作成ステップは、前記作成ステップにより作成されたポートモニタと検出された論理プリンタのドライバ名に基づき拡張機能を実現するための論理プリンタを作成することを特徴とする請求項１１記載の情報処理装置で実行される設定方法。
【請求項１５】
前記検出ステップにより検出された論理プリンタのポートモニタを前記作成ステップにより作成されたポートモニタに置き換える置き換えステップをさらに有することを特徴とする請求項１１記載の情報処理装置で実行される設定方法。
【請求項１６】
ネットワーク上のプリンタを検出する検出ステップと、
前記検出ステップにより検出されたネットワーク上のプリンタに設定されている設定情報を取得する取得ステップと、
前記取得ステップにより取得された設定情報を用いて拡張機能を実現するためのプリントサーバ用のポートモニタを作成するポートモニタ作成ステップと、
前記作成ステップにより作成されたポートモニタを用いて拡張機能を実現するための論理プリンタを作成する論理プリンタ作成ステップとを有することを特徴とする情報処理装置で実行される設定方法。
【請求項１７】
前記設定情報は、ＩＰアドレス、及びプリントジョブ送信方式情報を含むことを特徴とする請求項１６記載の情報処理装置で実行される設定方法。
【請求項１８】
前記拡張機能は、プリントジョブデータを読み出し、分割し、システム内のプリンタに送出する機能を含むことを特徴とする請求項１６記載の情報処理装置で実行される設定方法。
【請求項１９】
前記論理プリンタ作成ステップは、前記作成ステップにより作成されたポートモニタと検出された論理プリンタのドライバ名に基づき拡張機能を実現するための論理プリンタを作成することを特徴とする請求項１６記載の情報処理装置で実行される設定方法。
【請求項２０】
インストール済みの論理プリンタを検出する論理プリンタ検出ステップと、
前記論理プリンタ検出ステップによりインストール済みの論理プリンタが検出されない場合、ネットワーク上のプリンタを検出するネットワークプリンタ検出ステップと、
前記論理プリンタ検出ステップによりインストール済みの論理プリンタが検出された場合、検出された論理プリンタのポートに設定されている設定情報を取得する第１取得ステップと、
前記ネットワークプリンタ検出ステップにより検出されたプリンタに設定されている設定情報を取得する第２取得ステップと、
前記第１取得ステップ及び前記第２取得ステップにより取得された設定情報に基づき拡張機能を実現するためのプリントサーバ用のポートモニタを作成するポートモニタ作成ステップと、
前記作成ステップにより作成されたポートモニタを用いて拡張機能を実現するための論理プリンタを作成する論理プリンタ作成ステップとを有することを特徴とする情報処理装置で実行される設定方法。
【請求項２１】
インストール済みの論理プリンタを検出する検出ステップと、
前記検出ステップによりインストール済みの論理プリンタが検出された場合、検出された論理プリンタのポートに設定されている設定情報を取得する取得ステップと、
前記取得ステップにより取得された設定情報に基づき拡張機能を実現するためのプリントサーバ用のポートモニタを作成するポートモニタ作成ステップと、
前記作成ステップにより作成されたポートモニタを用いて拡張機能を実現するための論理プリンタを作成する論理プリンタ作成ステップとをコンピュータに実行させることを特徴とするプログラム。
【請求項２２】
前記設定情報は、ＩＰアドレス、及びプリントジョブ送信方式情報を含むことを特徴とする請求項２１記載のプログラム。
【請求項２３】
前記拡張機能は、プリントジョブデータを読み出し、分割し、システム内のプリンタに送出する機能を含むことを特徴とする請求項２１記載のプログラム。
【請求項２４】
前記論理プリンタ作成ステップは、前記作成ステップにより作成されたポートモニタと検出された論理プリンタのドライバ名に基づき拡張機能を実現するための論理プリンタを作成することを特徴とする請求項２１記載のプログラム。
【請求項２５】
前記検出ステップにより検出された論理プリンタのポートモニタを前記作成ステップにより作成されたポートモニタに置き換える置き換えステップをさらに有することを特徴とする請求項２１記載のプログラム。
【請求項２６】
ネットワーク上のプリンタを検出する検出ステップと、
前記検出ステップにより検出されたネットワーク上のプリンタに設定されている設定情報を取得する取得ステップと、
前記取得ステップにより取得された設定情報を用いて拡張機能を実現するためのプリントサーバ用のポートモニタを作成するポートモニタ作成ステップと、
前記作成ステップにより作成されたポートモニタを用いて拡張機能を実現するための論理プリンタを作成する論理プリンタ作成ステップとをコンピュータに実行させることを特徴とするプログラム。
【請求項２７】
前記設定情報は、ＩＰアドレス、及びプリントジョブ送信方式情報を含むことを特徴とする請求項２６記載のプログラム。
【請求項２８】
前記拡張機能は、プリントジョブデータを読み出し、分割し、システム内のプリンタに送出する機能を含むことを特徴とする請求項２６記載のプログラム。
【請求項２９】
前記論理プリンタ作成ステップは、前記作成ステップにより作成されたポートモニタと検出された論理プリンタのドライバ名に基づき拡張機能を実現するための論理プリンタを作成することを特徴とする請求項２６記載のプログラム。
【請求項３０】
インストール済みの論理プリンタを検出する論理プリンタ検出ステップと、
前記論理プリンタ検出ステップによりインストール済みの論理プリンタが検出されない場合、ネットワーク上のプリンタを検出するネットワークプリンタ検出ステップと、
前記論理プリンタ検出ステップによりインストール済みの論理プリンタが検出された場合、検出された論理プリンタのポートに設定されている設定情報を取得する第１取得ステップと、
前記ネットワークプリンタ検出ステップにより検出されたプリンタに設定されている設定情報を取得する第２取得ステップと、
前記第１取得ステップ及び前記第２取得ステップにより取得された設定情報に基づき拡張機能を実現するためのプリントサーバ用のポートモニタを作成するポートモニタ作成ステップと、
前記作成ステップにより作成されたポートモニタを用いて拡張機能を実現するための論理プリンタを作成する論理プリンタ作成ステップとをコンピュータに実行させることを特徴とするプログラム。
【請求項３１】
請求項２１乃至３０のいずれかに記載のプログラムを記憶したコンピュータ読取可能な記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えば、コンピュータネットワークを介して分散印刷サービスを提供するプリントサーバ装置（以下、単に「プリントサーバ」ともいう）や、パーソナルコンピュータ等の端末装置とプリンタを機器制御言語による双方向通信可能に接続して構成される分散及び印刷システム等を稼動させるのに必要な設定手続きに用いられる出力管理装置設定装置及び方法等に関するものである。
【０００２】
【従来の技術】
近年においては、例えば、印刷品位の高いレーザービームプリンタが、低価格化の進展により印刷そのものを業務としないオフィスでも一般的に使用されるようになってきた。またオフィスで利用されるコンピュータ機器のネットワーク化も近年非常に著しい。これらを背景に、一般オフィスにおいて、複数のプリンタをネットワークに接続して使用するケースも珍しくなくなってきている。
このようなプリンタの使用形態が一般的になるにつれて、ネットワークに接続された複数のプリンタをいかに有効利用するかが新たな課題となってきている。
【０００３】
ネットワークシステムにおいて、ネットワーク端末であるパーソナルコンピュータ（ＰＣ）により印刷を行うために、ＰＣが自らプリンタとの間でプリントデータや制御情報等のやり取り行わずとも印刷を可能とすべくプリントサーバを用意したネットワークシステムも多い。プリントサーバを設けることで、次のような主なるメリット（１）及び（２）が得られる。
（１）クライアントＰＣで実行する個々のプリンタに依存した処理を最小限にし、その分の負荷をプリントサーバに負わせることができる。これにより、例えば、クライアントＰＣ側でユーザがドキュメントの印刷処理を行う際の当該クライアントＰＣの処理時間、すなわちユーザの待ち時間を短縮できる。
【０００４】
具体的には例えば、クライアントＰＣの基本ソフト（ＯＳ）として、"Ｍｉｃｒｏｓｏｆｔ Ｗｉｎｄｏｗｓ（Ｒ）"（"Ｗｉｎｄｏｗｓ"）を使用し、クライアントＰＣが、プリントサーバを介してプリンタで印刷処理する場合、クライアントＰＣは、そのプリンタが直接処理可能なプリンタ固有のデータファイル（当該プリンタ固有の制御コマンドを含むデータファイル）ではなく、プリンタに依存しない中間的なファイル（中間ファイル）を生成し、当該中間ファイルをプリントサーバに対して送信する。
【０００５】
プリントサーバは、クライアントＰＣからの中間ファイルに基づいて、プリンタ固有のデータを生成し、当該データ（プリンタ依存コマンド）をプリンタに対して送信する。したがって、クライアントＰＣは、プリントサーバを介すことで、プリンタを用いた印刷のための処理を軽減することができる。
（２）付加価値のあるプリントジョブの処理が可能となる。
【０００６】
例えば、プリントジョブ毎に処理の優先順序を設定することで、複数のプリントジョブが同時に処理待ち状態となった場合に、プリントジョブが有する優先順序に基づき処理順序を決定することができる。したがって、緊急に印刷処理する必要のあるドキュメント等のプリントジョブを優先的に印刷することが可能となる。また、例えば、プリントサーバが、クライアントＰＣから受け取ったプリントジョブを送信しようとしたプリンタでエラーが発生していた場合、他のプリンタを代わりに選択して印刷処理させるという代行印刷サービス、或いは印刷時間短縮のために一つのプリントジョブを論理的に分割して複数のプリンタに並行して印刷処理させるという分散印刷サービス等の提供が可能となる。
【０００７】
ここで、上記の分散印刷サービスについて具体的に説明する。例えば、ネットワークプリントシステムにおいて、クライアントＰＣ及びプリントサーバの基本ソフト（ＯＳ）として"Ｍｉｃｒｏｓｏｆｔ Ｗｉｎｄｏｗｓ（Ｒ）"（以下、単に"Ｗｉｎｄｏｗｓ"と略記する）を使用し、クライアントＰＣが、プリントサーバを介してプリンタで印刷処理するものとする。
【０００８】
先ず、システム管理者は、プリントサーバ上に一つまたは複数の論理プリンタを用意する。
【０００９】
一方、クライアントＰＣ上に対しては、プリントサーバに用意された論理プリンタに対応する論理プリンタを作成しておく。
【００１０】
ここでの"論理プリンタ"とは、物理的なプリンタをＯＳ、すなわち"Ｗｉｎｄｏｗｓ"上でモデル化したものであり、例えば、ドキュメントデータをプリンタに送信すべきデータに変換する際に使用するプリンタドライバや、プリントジョブのデータの出力先等の様々な情報を管理しているオブジェクトである。
【００１１】
"Ｗｉｎｄｏｗｓ"が稼働するクライアントＰＣのユーザは、アプリケーションプログラムによる印刷を実行するとき、論理プリンタプリンタを指定して印刷実行の指示を出す。
【００１２】
これにより、クライアントＰＣで稼動している"Ｗｉｎｄｏｗｓ"は、アプリケーションプログラムから受け取った描画コマンドをＥＭＦ形式と呼ばれるデータ形式に変換する。
【００１３】
"ＥＭＦ形式"とは、"Ｗｉｎｄｏｗｓ"の"ＧＤＩ"と呼ばれるデバイス（プリンタ等）に非依存なグラフィックスシステムの特徴を引き継いでおり、デバイスに依存するコマンドや情報を含まないデータ形式である。
【００１４】
そして、クライアントＰＣ側の"Ｗｉｎｄｏｗｓ"は、ＥＭＦ形式にデータ変換したプリントジョブデータをプリントサーバに対して転送する。
【００１５】
プリントサーバ側の"Ｗｉｎｄｏｗｓ"は、クライアントＰＣから受信したＥＭＦ形式のプリントジョブデータを、一旦ハードディスク等のメモリ上に保存し、その後、当該メモリからＥＭＦ形式のプリントジョブデータを読み出し、当該読出データを、印刷処理を実行しようとするプリンタのプリンタドライバを用いて、当該プリンタがサポートするページ記述言語（ＰＤＬ）のデータ形式に変換する。
【００１６】
続いて、プリントサーバ側の"Ｗｉｎｄｏｗｓ"は、上記の変換後のプリントジョブデータを、ポートモニタと呼ばれるモジュール介してプリンタに対して送信する。
【００１７】
尚、このとき対象となるプリンタがネットワークに直接接続されたネットワークプリンタである場合、ネットワークインタフェースであるＮＩＣ（ネットワークインターフェースカード）を介して、プリントジョブデータを送信することになる。
【００１８】
プリンタは、プリントサーバからプリントジョブデータ（ＰＤＬ形式のプリントジョブデータ）を受け取り、ＰＤＬを解釈して印刷処理を実行する。
【００１９】
尚、ここでの印刷処理の詳細については、"Ｗｉｎｄｏｗｓ"の各バージョンについて発行されている「リソースキット」と呼ばれる出版物に譲る。
【００２０】
上述のような"Ｗｉｎｄｏｗｓ"を用いたネットワークプリントシステム（プリンティングシステム）の構造に着目し、サードパーティにより、以下に説明するような機能拡張が行われている。
【００２１】
まず、プリントサーバ側の"Ｗｉｎｄｏｗｓ"で作成されているプリントオブジェクトに対しては、物理的なプリンタにプリントジョブデータを転送するプログラムモジュールとして、ポートモニタモジュールが通常設定されるが、このポートモニタモジュールを、プリントサーバ上で動作する他のプリントサービスプログラムに渡すモジュールに置き換える。このモジュールは、プリントジョブデータをプリンタには送信せず、例えば、ハードディスク上にファイルとして保存し、プリントサービスプログラムが、当該ファイルを読み出すことでプリントジョブデータを入手し、独自の処理を実行した後に、当該処理後のプリントジョブデータをプリンタに対して送信する、という機能を実施するモジュールである。
【００２２】
このような構成とすることで、プリントサービスプログラムは、"Ｗｉｎｄｏｗｓ"が持っていない機能を、プリントサーバの機能として付加し、機能拡張することができる。
【００２３】
分散印刷サービスにおける分散印刷機能は、上記の機能拡張を利用したものである。"分散印刷機能"は、一つのプリントジョブを論理的に分割して複数の分割ジョブを生成し、これらの分割ジョブを複数のプリンタに振り分け、当該複数のプリンタに対して印刷処理を実行させる機能である。これにより、プリントジョブに要する時間を短縮することができる。
【００２４】
一つのプリントジョブを論理的に分割する方法としては、いくつかの方法を適用可能であるが、代表的な方法としては、印刷部数に基づき分割する方法や、印刷するドキュメントをページ方向に分割する方法等が挙げられる。
【００２５】
印刷部数に基づき分割する方法の場合、それぞれのプリンタで印刷する部数の全てを合計したものが、分割前のプリントジョブで指定された印刷部数に等しくなる。
【００２６】
一方、印刷するドキュメントをページ方向に分割する方法の場合、それぞれのプリンタで印刷するページ範囲の全てを寄せ集めたものが、分割前のプリントジョブで印刷するドキュメントのページ範囲全体に等しくなる。
分散印刷機能では、もとのプリントジョブを分割して複数のプリンタに対して割り振る際の、分割割合を予め決めて設定する必要がある。このときの分割割合の設定方法としては、例えば、分散印刷の対象となる複数のプリンタに対して、出力枚数が均等になるように設定する方法や、プリンタの印刷速度性能に応じて、印刷速度の速いプリンタの出力枚数がより多くなるように傾斜配分する方法等が挙げられる。
【００２７】
上述した２つのプリントジョブの分割方法は、本来異なる分割の概念に基づいており、これら両者を組み合わせることも原理的に可能である。
【００２８】
例えば、出力結果が１部当たり１００枚となるドキュメントを１０部印刷するプリントジョブについて、当該プリントジョブを４台のプリンタで印刷する場合、先ず、印刷部数がそれぞれ５部である２つのジョブに分割し、さらにこれらの２つのジョブを、１〜５０枚目、及び５１〜１００枚目のジョブに分割し、この結果得られた４つのジョブ（分割ジョブ）を、４台のプリンタに対して割り当てる。
【００２９】
したがって、分散印刷機能におけるプリントジョブの分割割合の設定は、分割方法に応じて複数種類必要なことになる。
【００３０】
以上説明したようなネットワークプリントシステムにおける機能拡張により、次のような例の機能を追加したプリンタを挙げることができる。
・予め決定された機器の優先順位に従って代行印刷処理を実行するように構成されたプリンタ。
・プリンタのエラー発生時に、エラーが発生したプリンタに対応するアウトプットキューに登録されている未処理のファイル出力要求を他の正常なプリンタに対応するアウトプットキューに登録しなおして、出力先プリンタを変更するように構成されたプリンタ。
【００３１】
ところで以上の説明では、プリントサーバを複数のユーザが共有する使用形態を想定しているが、上述のような代行印刷機能のような付加価値印刷機能を提供するシステムを単一のエンドユーザが自分のマシン上で使用する形態も考えられる。
【００３２】
上記のプリントサーバを稼動させるためには、ソフトウェアを構成するモジュールをマシンにインストールするだけでなく、前にも述べたようにシステム管理者がプリントサーバマシン上に当該プリントサーバシステムで使用するための論理プリンタを作成する。また、付加価値印刷機能を持つシステムをエンドユーザのマシンで使用する場合にはそのエンドユーザ自身で論理プリンタの設定を行う。いずれの場合も、プリンタの種類やネットワーク上のアドレスなど、環境に応じて設定が必要になる。これはＷｉｎｄｏｗｓでは以下のような方法で行う。
【００３３】
まず、プリンタに送信するプリントデータを処理するためのポートモニタを作成する。これはプリントサーバに付属する設定ツールによって行う。設定ツールはユーザインタフェースを備え、ポートモニタの作成に必要な情報をユーザが入力する。この必要な情報としては少なくとも以下のものを含む。
・プリンタの機種名
・プリンタのネットワークインタフェースが持つ、ネットワークで一意に割り当てられたアドレス
・プリンタへプリントデータを転送する方法とそれに必要な設定情報
・作成しようとしているポートモニタのインスタンス名
（さらにプリントサーバの持つ機能によっては、プリンタに関するより詳細な情報を必要とする場合もあるがここでは省略する。）
次に、プリンタドライバをインストールする。これはポートモニタの作成時に指定されたプリンタの機種名から適切なものを選択して行う。この時、所望のプリンタドライバがすでにインストールされているかどうかをまず調べ、インストールされている場合には改めてインストールすることはせず、インストールされていない場合にだけ実際にインストールを行う。
【００３４】
最後に、論理プリンタのインスタンスの作成を行う。論理プリンタのインスタンスを作成する時には、その属性として以下の情報を指定する。
・ポートモニタのインスタンス名
・プリンタドライバの名前
・作成しようとしている論理プリンタのインスタンス名
なお、ここでも、さらにプリントサーバの持つ機能によっては、論理プリンタに関するより詳細な情報を必要とする場合もあるがここでは省略する。
【００３５】
上記の属性を見ればわかるように、使用しようとしているプリンタに関する情報をもとに作成またはインストールしておいたポートモニタ、プリンタドライバを論理プリンタでは指定する。ここで注意すべき点は、Ｗｉｎｄｏｗｓではプリンタデバイスの情報は論理プリンタ自身の設定情報には直接的には含まれず、プリンタデバイスの情報は論理プリンタに割り当てられているポートモニタに分離して管理され、ポートモニタを介して関連付けられる構造になっている点である。従って、ある論理プリンタに割り当てられているポートモニタのインスタンスを他のポートモニタに置き換えても、置き換え後のポートモニタに設定されたプリンタの機種が当該論理プリンタに割り当てられているプリンタドライバが対応する機種である限り機構上問題はない。
【００３６】
【発明が解決しようとする課題】
以上に述べたように、プリントサーバを導入することにより、ＯＳの印刷機能を拡張してＯＳがもともと持っていない機能を付加することができる。ただしそのためには、前記のようにシステム管理者が、プリントサーバが動作するマシン上に一つまたは複数の論理プリンタを作成してプリントサーバの環境をセットアップする必要がある。
【００３７】
また、上記のような付加価値印刷機能を提供するシステムを単一のユーザが使用する形態の場合には、そのユーザ自身がシステムのセットアップを行わなければならない。
【００３８】
しかしながら、論理プリンタの作成にはプリンタデバイスの機種名やアドレス、適切なプリンタドライバの名前等の情報を正確に入力する必要がある。このことは単に作業が面倒というだけでなく、エンドユーザ自身がシステムのセットアップを行う場合には、それらの情報の入手が難しい、あるいは入力が求められている情報についての理解不足によって困惑が生じるといった問題が起こりやすい。さらに、たとえ作業を行うのがシステム管理者であっても、作成しようとする論理プリンタの数が多くなるとその作業自体が煩雑になり、それだけ設定ミスが起きやすくなる。
【００３９】
本発明は、上記の欠点を解消するために成されたもので、プリントサーバあるいは付加価値印刷機能を提供するプリントシステムのコンピュータへのインストールの際に、ユーザに負担をかけずに、しかも誤りなくシステム設定を行うことのできる出力システム設定装置及び方法等を提供することを目的とする。
【００４０】
詳しくは、プリントサーバあるいは付加価値印刷機能を提供するプリントシステムのインストール以前に存在している論理プリンタのインスタンスに設定された情報を利用して、前記プリントサーバあるいは付加価値印刷機能を提供するプリントシステムのための論理プリンタのインスタンスの作成を容易にかつ迅速に行うことを可能にする出力システム設定装置及び方法等を提供することを第１の目的とする。
【００４１】
また、ネットワークに接続されているプリンタデバイスの探索を行い、それによって得られた情報を利用して、前記プリントサーバあるいは付加価値印刷機能を提供するプリントシステムのための論理プリンタのインスタンスの作成を容易に且つ迅速に行うことを可能にする出力管理装置設定装置及び方法等を提供することを第２の目的とする。
【００４２】
【課題を解決するための手段】
かかる目的下を実現するための本発明は次のような構成を有する。
【００４３】
第１の発明は、インストール済みの論理プリンタを検出する検出手段と、
前記検出手段によりインストール済みの論理プリンタが検出された場合、検出された論理プリンタのポートに設定されている設定情報を取得する取得手段と、
前記取得手段により取得された設定情報に基づき拡張機能を実現するためのプリントサーバ用のポートモニタを作成するポートモニタ作成手段と、
前記作成手段により作成されたポートモニタを用いて拡張機能を実現するための論理プリンタを作成する論理プリンタ作成手段とを有することを特徴とする情報処理装置にある。
【００４５】
第２の発明は、ネットワーク上のプリンタを検出する検出手段と、
前記検出手段により検出されたネットワーク上のプリンタに設定されている設定情報を取得する取得手段と、
前記取得手段により取得された設定情報を用いて拡張機能を実現するためのプリントサーバ用のポートモニタを作成するポートモニタ作成手段と、
前記作成手段により作成されたポートモニタを用いて拡張機能を実現するための論理プリンタを作成する論理プリンタ作成手段とを有することを特徴とする情報処理装置にある。
【００４６】
第３の発明は、インストール済みの論理プリンタを検出する論理プリンタ検出手段と、
前記論理プリンタ検出手段によりインストール済みの論理プリンタが検出されない場合、ネットワーク上のプリンタを検出するネットワークプリンタ検出手段と、
前記論理プリンタ検出手段によりインストール済みの論理プリンタが検出された場合、検出された論理プリンタのポートに設定されている設定情報を取得する第１取得手段と、
前記ネットワークプリンタ検出手段により検出されたプリンタに設定されている設定情報を取得する第２取得手段と、
前記第１取得手段及び前記第２取得手段により取得された設定情報に基づき拡張機能を実現するためのプリントサーバ用のポートモニタを作成するポートモニタ作成手段と、
前記作成手段により作成されたポートモニタを用いて拡張機能を実現するための論理プリンタを作成する論理プリンタ作成手段とを有することを特徴とする情報処理装置にある。
【００７４】
【発明の実施の形態】
［第１の実施形態］
第１の実施形態として、プリントサーバを実現するプログラムをコンピュータにインストールする際に、既存の論理プリンタを利用して、プリントサーバにより機能拡張された新たな論理プリンタを自動生成するためのプログラムについて説明する。
【００７５】
以下、本発明の実施の形態について図面を用いて説明する。
【００７６】
本発明は、例えば、図１に示すようなパーソナルコンピュータ（ＰＣ）１００に適用される。
【００７７】
本実施の形態のＰＣ１００は、図６に示したようなネットワークプリントシステムのプリントサーバ、または付加価値印刷機能を有するプリントシステムをインストールしたユーザマシンにおける設定ツールとして適用可能である。例えば、プリントサーバの設定ツールとして適用した場合、プリントサーバ上の論理プリンタの作成を行う機能において実施することができる。特に、本実施の形態のＰＣ１００は、論理プリンタの作成を、当該プリントサーバソフトウェアあるいは付加価値印刷機能を有するプリントシステムをインストールする前にすでに設定済みであった汎用の論理プリンタが持つ設定情報を用いることにより、論理プリンタの作成にかかわる情報をユーザが入力する必要をなくすことで、利便性を高めることを目的としている。
【００７８】
＜ネットワーク構成＞
まず、本実施形態のプリントサーバが使用されるネットワークシステムの構成を示す。図６は、プリントサーバを用いたネットワークプリントシステム（印刷システム）１３００の一般的な構成を示したものである。
【００７９】
ネットワークプリントシステム１３００では、図６に示すように、まず、ローカルエリアネットワーク（ＬＡＮ）１３５０，１３６０に対しては、不図示の様々な周辺機器が接続可能となっている。
【００８０】
開放型アーキテクチャを有するプリンタ１３０２は、共用プリンタとして、ネットワークインタフェース（ＮＩＣ）１３０１を介してＬＡＮ１３５０に接続されている。
【００８１】
ＮＩＣ１３０１は、例えば、"Ｅｔｈｅｒｎｅｔ"等のＬＡＮ１３５０に対して、"同軸コネクタ（１０Ｂａｓｅ−２）"や"ＲＪ−４５コネクタ（１０／１００Ｂａｓｅ−Ｔ）"等により接続されている。
【００８２】
プリントサーバ１３０８は、例えば、パーソナルコンピュータ（ＰＣ）から構成され、ローカル接続された複数のプリンタ１３０９（１），１３０９（２），・・・や、遠隔地に設置されているプリンタ１３０２等に対して印刷処理を実行させる。
【００８３】
ＰＣ１３０３及びＰＣ１３０４はそれぞれ、ＬＡＮ１３５０に接続されており、ネットワークオペレーティングシステムの制御により、プリントサーバ１３０８と通信可能である。
【００８４】
したがって、例えば、任意のＰＣ１３０３がプリンタ１３０２に対して印刷処理を実行させたい場合、ＰＣ１３０３は、自らＮＢ１３０１を介してプリンタ１３０５と通信してプリンタ１３０２との間でプリントデータや制御情報等のやり取り行わなくとも、次のようにして、その作業をプリントサーバ１３０８に任せることができる。
【００８５】
例えば、先ず、ＰＣ１３０３は、自側のアプリケーションウェア等の起動により作成されたプリントジョブのデータを、プリンタ１３０２ではなくプリントサーバ１３０８に対して送信する。
プリントサーバ１３０８は、ＰＣ１３０３からのプリントジョブのデータを、ハードディスク等のローカルなデータ保存メモリ（不図示）に一時的に保持する。
【００８６】
プリントサーバ１３０８は、上記保存メモリを使用することで、複数のプリントジョブを受け付けることが可能であるため、上記保存メモリ内に複数のプリントジョブが処理待ち状態で保持されている場合、所定の方針に従って、次に処理すべきプリントジョブを決定する。
【００８７】
プリントサーバ１３０８は、次に処理すべきであると決定したプリントジョブのデータを上記保存メモリから読み出し、当該プリントジョブを、ＮＢ１３０１を介してプリンタ１３０２に対して、或いは任意のプリンタ１３０９（ｘ）に対して送信する。
【００８８】
このとき、プリントサーバ１３０８は、必要に応じて、プリンタドライバにより、送信対象のプリントジョブのデータを、プリンタ１３０２又は１３０９（ｘ）がサポートするページ記述言語（ＰＤＬ）及び制御コマンドへと変換して送信する。
【００８９】
上述のようなＰＣ１３０３，１３０４、及びプリントサーバ１３０８はそれぞれ、一般的なＰＣの構成により、データファイルの生成、当該データファイルのＬＡＮ１３５０への送信、ＬＡＮ１３５０からのデータファイルの受信、及び当該データファイルの表示及び／又は処理を実行することが可能である。
【００９０】
例えば、ＰＣ１３０３，１３０４、及びプリントサーバ１３０８としては、ネットワークソフトウェアを実行するのに適切であるような、他のコンピュータ機器を適用可能である。さらに具体的には、ＵＮＩＸのソフトウェアを使用し、ＵＮＩＸワークステーションをネットワークに含み、当該ワークステーションを、適切な状況下でＰＣ１３０３，１３０４等と共に使用する。
【００９１】
ここで、ＬＡＮ１３２０、ＬＡＮ１３５０、及びＬＡＮ１３６０として使用している一般的なＬＡＮは、１つの建物内の１つの階又は連続した複数の階でのユーザグループ等の、比較的ローカルなユーザグループに対してサービスを提供する。
【００９２】
例えば、それぞれのユーザが他の建物や他県に居る場合等においては、あるユーザが他のユーザから離れるに従って、ワイドエリアネットワーク（ＷＡＮ）を形成する。ＷＡＮは、基本的には、いくつかのＬＡＮをサービス総合ディジタルネットワーク（ＩＳＤＮ）等の高速ディジタル回線で接続することにより形成された集合体である。
【００９３】
したがって、ネットワークプリントシステム１３００では、図６に示すように、ＬＡＮ１３２０、ＬＡＮ１３５０、及びＬＡＮ１３６０を、モデム／トランスポンダ１３３０ａ，１３３０ｂ及びバックボーン１３４０を介して接続することでＷＡＮを形成している。
【００９４】
ＬＡＮ１３６０に対しては、必要に応じて、ＰＣ１３１１、ＰＣ１３１２、ネットワークディスク１３１４が接続されたファイルサーバ１３１３、及び複数のプリンタ１３１６（１），１３１６（２）等が接続されたプリントサーバ１３１５が接続される。
【００９５】
また、ＬＡＮ１３２０に対しては、必要に応じて、ＰＣ１３２１及びＰＣ１３２２が接続される。
【００９６】
ＬＡＮ１３２０、ＬＡＮ１３５０、及びＬＡＮ１３６０に接続されている機器は、ＷＡＮ接続を介して、他のＬＡＮに接続された機器の機能にアクセスすることが可能である。
【００９７】
次に、本実施の形態のＰＣ１００の構成及び動作について具体的に説明する。
【００９８】
＜ＰＣ１００のハード構成＞
ＰＣ１００は、上記図１に示すように、ＣＰＵ１０１と、ＲＯＭ１０２と、ＲＡＭ１０３と、キーボード（ＫＢ）１０９のキーボードコントローラ（ＫＢＣ）１０５と、表示部としてのＣＲＴディスプレイ（ＣＲＴ）１１０のＣＲＴコントローラ（ＣＲＴＣ）１０６と、ハードディスク（ＨＤ）１１１及びフレキシブルディスク（ＦＤ）１１２のディスクコントローラ（ＤＫＣ）１０７と、ネットワーク（ＬＡＮ）２００との接続のためのネットワークインターフェースコントローラ（ＮＩＣ）１０８とが、システムバス１０４を介して互いに通信可能に接続された構成としている。
【００９９】
ＣＰＵ１０１は、ＲＯＭ１０２或いはＨＤ１１１に記憶されたソフトウェア、或いはＦＤ１１２により供給されるソフトウェア（プリントサーバプログラム等）を実行することで、システムバス１０４に接続された各構成部を総括的に制御する。
【０１００】
すなわち、ＣＰＵ１０１は、所定の処理シーケンスに従った処理プログラムを、ＲＯＭ１０２、或いはＨＤ１１１、或いはＦＤ１１２から読み出して実行することで、本実施の形態での動作を実現するための制御を行う。
【０１０１】
ＲＡＭ１０３は、ＣＰＵ１０１の主メモリ或いはワークエリア等として機能する。
【０１０２】
ＫＢＣ１０５は、ＫＢ１０９や図示していないポインティングデバイス等からの指示入力を制御する。
【０１０３】
ＣＲＴＣ１０６は、ＣＲＴ１１０の表示を制御する。
【０１０４】
ＤＫＣ１０７は、ブートプログラム、種々のアプリケーション、編集ファイル、ユーザファイル、ネットワーク管理プログラム、及び本実施の形態における所定の処理プログラム等を記憶するＨＤ１１１及びＦＤ１１２とのアクセスを制御する。
【０１０５】
ＮＩＣ１０８は、ＬＡＮ１１３上の装置或いはシステム（プリントサーバ、クライアントＰＣ、及びプリンタ等）と双方向にデータをやりとりする。
【０１０６】
ＨＤ１１１には、ＰＣ１００を、プリントサーバとして機能させるためのプリントサーバプログラムおよび本発明を適用したプリントサーバ設定プログラム等が格納される。すなわち、ＨＤ１１１内の当該プログラムがＣＰＵ１０１から読み出され実行されることで、ＰＣ１００はプリントサーバおよび本発明を適用したプリントサーバ設定プログラム等として機能する。
【０１０７】
したがって、後述の全ての説明において、特に断りのない限り、実行の主体はハード上はＣＰＵ１０１となる。一方、ソフトウェア上の制御の主体は、ＨＤ１１１内に格納されたプリントサーバプログラム等のソフトウェアとなる。
【０１０８】
本実施の形態では、ＰＣ１００のＯＳとして、例えば、米マイクロソフト社製"ＷｉｎｄｏｗｓＮＴ  ４．０  Ｓｅｒｖｅｒ（Ｒ）"を想定しているが、これに限るものではない。
【０１０９】
尚、プリントサーバプログラムおよび本発明を適用したプリントサーバ設定プログラム等のソフトウェアの格納先は、ＨＤ１１１に限られることはなく、例えば、ＦＤ１１２やＣＤ−ＲＯＭ等の任意の記憶媒体を適用可能である。この場合、ＣＰＵ１０１は、当該記憶媒体からプログラムを読み出してＨＤ１１１にインストールする。
【０１１０】
＜ＰＣ１００がプリントサーバ設定プログラムとして機能する場合のモジュール構成および動作＞
図２は、図１に示したＰＣ１００をプリントサーバとして稼動させた場合の、プリントサーバ上で実行するプリントサーバ設定プログラム（＝２００）の内部的なソフトウェアモジュール構成を具体的に示した図である。ここではプリントサーバ自体の構成の詳細は本発明の趣旨からははずれるため省略する。ただし、当該プリントサーバはＷｉｎｄｏｗｓにおけるポートモニタとして固有のものを割り当てた論理プリンタを使用することは留意する必要がある。
【０１１１】
全体制御モジュール２０１はプリントサーバ設定プログラム２００の内部処理の全体的な制御を司る。具体的には配下のインストール済み論理プリンタ解析モジュール２０２と論理プリンタ自動作成モジュール２１５に順次処理を行わせ、その結果として、当該プリントサーバ専用の論理プリンタを作成せしめる。
【０１１２】
全体制御モジュール２０１はまずインストール済み論理プリンタ解析モジュール２０２を呼び出す。インストール済み論理プリンタ解析モジュール２０２は、当該プリントサーバ専用の論理プリンタを作成しようとする以前に汎用的な論理プリンタが存在しているかどうかをまず調べ、存在する場合はその設定内容を抽出してインストール済み論理プリンタ情報記憶モジュール２１４に記憶させる。
【０１１３】
インストール済み論理プリンタ解析モジュール２０２は配下に論理プリンタ検出モジュール２０３、ポートモニタ解析モジュール２０４、インストール済み論理プリンタの対応機種判別モジュール２１１を持つ。
【０１１４】
論理プリンタ検出モジュール２０３はＯＳにインストールされている全ての論理プリンタを検出してインストール済み論理プリンタ解析モジュール２０２にその情報を渡す。
【０１１５】
ポートモニタ解析モジュール２０４はさらに配下にポートモニタタイプ判別モジュール２０５、ＩＰアドレス取得モジュール２０７、プリントジョブ送信方式取得モジュール２０９を持つ。
【０１１６】
ポートモニタタイプ判別モジュール２０５は検出された論理プリンタに割り当てられているポートモニタが、プリントサーバ設定プログラム２００が対応するものであるかどうかを判定する。対応する種類のポートモニタごとに、プラグインモジュールが存在する。本実施例ではＷｉｎｄｏｗｓ ２０００に標準で用意されているＳｔａｎｄａｒｄ ＴＣＰ／ＩＰポートのみに対応するものとし、図２にはＳｔａｎｄａｒｄ ＴＣＰ／ＩＰポート判別プラグインモジュール２０６のみを示す。
【０１１７】
ポートモニタ解析モジュール２０４は、ポートモニタタイプ判別モジュール２０５によって本プログラムがサポートするポートモニタが割り当てられていると判定された論理プリンタについて、ＩＰアドレス取得モジュール２０７を呼び出す。ＩＰアドレス取得モジュール２０７は、ポートモニタに設定されているＩＰアドレスをポートモニタのタイプに応じたＩＰアドレスプラグインモジュール（本実施例ではＳｔａｎｄａｒｄ ＴＣＰ／ＩＰポートＩＰアドレス取得プラグインモジュールを図示している）を介して取得してポートモニタ解析モジュール２０４に返す。さらに、プリントジョブ送信方式取得モジュール２０９も呼び出す。プリントジョブ送信方式取得モジュール２０９は、ポートモニタに設定されているＬＰＲあるいはＲＡＷのプリンタデバイスへのプリントジョブデータの転送方法、さらにＬＰＲの場合はキュー名、ＲＡＷの場合にはポート番号を取得する。これはポートモニタのタイプに応じたＩＰアドレスプラグインモジュール（本実施例ではＳｔａｎｄａｒｄ ＴＣＰ／ＩＰポートＩＰアドレス取得プラグインモジュールを図示している）を介して行われる。結果はポートモニタ解析モジュール２０４に返す。ポートモニタ解析モジュール２０４はポートモニタから収集したこれらの情報を上位のインストール済み論理プリンタ解析モジュール２０２に渡す。
【０１１８】
次に、インストール済み論理プリンタ解析モジュール２０２はポートモニタの解析が終わると、次にインストール済み論理プリンタ対応機種判別モジュール２１１を呼ぶ。インストール済み論理プリンタ対応機種判別モジュール２１１は、インストール済み論理プリンタのドライバ名取得モジュール２１２により当該論理プリンタに割り当てられているプリンタドライバ名をまず取得し、さらに機種／ドライバ名変換モジュール２１３を呼び出して、取得したプリンタドライバ名からプリンタデバイスの種類を割り出す。
【０１１９】
ポートモニタ解析モジュール２０４は、以上により得られたＩＰアドレス、ＬＰＲキュー名の情報を上位のインストール済み論理プリンタ解析モジュール２０２に返し、インストール済み論理プリンタ解析モジュール２０２は返された情報をインストール済み論理プリンタ情報記憶モジュール２１４に記憶させる。インストール済み論理プリンタ情報記憶モジュール２１４は、インストール済み論理プリンタ名により整理されたテーブルに記憶すべき情報を格納する。
【０１２０】
すなわち、論理プリンタ情報記憶モジュールに記憶される情報は、たとえば論理プリンタ毎に次のようなものとなる。
（１）サポート対象のポートモニタが割り当てられていると判定された論理プリンタのＩＰアドレス
（２）ポートモニタに設定されているＬＰＲあるいはＲＡＷのプリンタデバイスへのプリントジョブデータの転送方法
（３）データの転送方法がＬＰＲの場合はキュー名、ＲＡＷの場合にはポート番号
（４）論理プリンタに割り当てられているプリンタドライバ名
（５）論理プリンタに割り当てられているプリンタデバイスの種類。
【０１２１】
これら情報が、既に設定済みの論理プリンタから得られ、保持される。本実施形態では、プリンタサーバ設定プログラム２００はＴＣＰ／ＩＰにのみ対応するものとしていることから、ＩＰアドレス等を取得して記憶するものとなっている。しかしながら、既に設定されている論理プリンタについては、その論理プリンタに対応するポートが設定されており、上記（１）で記憶される項目は、その設定済ポートということになる。ＴＣＰ／ＩＰ対応の論理プリンタであればそのポートとしてＩＰアドレスが設定されていることから、そのＩＰアドレスが論理プリンタ情報記憶モジュールに記憶される。同様に、他のプロトコルに対応する論理プリンタであったとしても、プリンタサーバ設定プログラム２００の対応を条件として、論理プリンタ対応ポートが取得され記憶される。またプリンタサーバにローカル接続されたプリンタであっても同様である。すなわち、より一般的には次のように換言できる。
（１）論理プリンタのアドレス
（２）プリンタデバイスへのプリントデータの転送方法
（３）プリントデータの転送方法に応じた送信データのあて先
（４）論理プリンタに割り当てられているプリンタドライバ名
（５）論理プリンタに割り当てられているプリンタデバイスの種類。
【０１２２】
さて、全体制御モジュール２０１は、インストール済み論理プリンタ解析モジュール２０２の処理が終わると、次に論理プリンタ自動作成モジュール２１５を呼び出す。論理プリンタ自動作成モジュール２１５は、インストール済み論理プリンタ情報記憶モジュール２１４に格納された情報を読み出して以下の処理を行う。
【０１２３】
まず読み出したＩＰアドレス、プリンタデバイス機種名をプリントサーバ専用ポートモニタ作成モジュール２１６に渡してポートモニタを作成させる。次に、作成したポートモニタと、インストール済み論理プリンタ情報記憶モジュール２１４から読み出したプリンタドライバ名を用いて論理プリンタを作成する。これらの処理を、インストール済み論理プリンタ情報記憶モジュール２１４から読み出した各インストール済み論理プリンタにつき行う。
【０１２４】
＜プリントサーバ設定プログラム２００の処理フロー＞
図３は、上述したプリントサーバ設定プログラム２００の機能を具体的にフローチャートにより示したものである。図３のプログラムは、ユーザによって、分散印刷、代行印刷を行うソフトウエアをインストールする際に、オートセットアップが設定された場合に実行される環境設定プログラムである。オートセットアップが設定されない場合は、ユーザが手動で環境設定を行う。
【０１２５】
ステップＳ３０１：
全体制御モジュール２０１が、インストール済み論理プリンタ解析モジュール２０２を呼び出してインストール済みの論理プリンタを検出し、検出された論理プリンタから必要な情報を抽出して一時保存する。
【０１２６】
ステップＳ３０２：
ステップＳ３０１により抽出・一時保存された情報を用いて、当該プリントサーバで使用する専用の論理プリンタを作成する。
【０１２７】
図４は、上記のステップＳ３０１をそれぞれさらに詳細に示したものである。
【０１２８】
ステップＳ４０１：
論理プリンタ検出モジュール２０３が、Ｗｉｎｄｏｗｓ ＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ Ｐｒｏｇｒａｍ Ｉｎｔｅｒｆａｃｅ）２１７を介してＯＳ上にインストールされている論理プリンタ（２１８）のリスト情報を取得する。
【０１２９】
ステップＳ４０２：
インストール済み論理プリンタ解析モジュール２０２が、ステップＳ４０１の結果、論理プリンタが一つでも検出されたかどうかを判断する。
【０１３０】
ステップＳ４０３：
ステップＳ４０２で論理プリンタが一つ以上検出された場合には、インストール済み論理プリンタ解析モジュール２０２において、そのひとつひとつについてステップＳ４０４以下の処理を行うよう制御を行う。そのために、処理を行っていない論理プリンタが存在するかどうかを判断する。
【０１３１】
ステップＳ４０４：
処理を行っていない論理プリンタのなかから一つをプログラム内部で選択する。
【０１３２】
ステップＳ４０５：
ポートモニタタイプ判別モジュール２０５とそのプラグインモジュールであるＳｔａｎｄａｒｄ ＴＣＰ／ＩＰポート判別プラグインモジュールが、ステップＳ４０４で選択された論理プリンタに割り当てられたポートモニタがＳｔａｎｄａｒｄ ＴＣＰ／ＩＰポートであるかどうかを判断する。
【０１３３】
ステップＳ４０６：
インストール済み論理プリンタ解析モジュール２０２が、ポートモニタ解析モジュール２０４から受け取ったインストール済み論理プリンタの名称をインストール済み論理プリンタ情報記憶モジュール２１４に渡して記憶させる。
【０１３４】
ステップＳ４０７：
インストール済み論理プリンタ解析モジュール２０２が、ポートモニタ解析モジュール２０４から受け取ったインストール済み論理プリンタに割り当てられたポートモニタの持つＩＰアドレスをインストール済み論理プリンタ情報記憶モジュール２１４に渡して記憶させる。
【０１３５】
ステップＳ４０８：
インストール済み論理プリンタ解析モジュール２０２が、ポートモニタ解析モジュール２０４から受け取ったインストール済み論理プリンタに割り当てられたポートモニタの持つプリントジョブ送信方式とそれに関する情報をインストール済み論理プリンタ情報記憶モジュール２１４に渡して記憶させる。
【０１３６】
ステップＳ４０９：
インストール済み論理プリンタ解析モジュール２０２が、インストール済み論理プリンタの対応機種判別モジュール２１１から受け取ったプリンタデバイスの機種名をインストール済み論理プリンタ情報記憶モジュール２１４に渡して記憶させる。
【０１３７】
図５は、図３のステップＳ３０２をそれぞれさらに詳細に示したものである。
【０１３８】
ステップＳ５０１：
インストール済み論理プリンタ情報記憶モジュール２１４中に未処理のものがあるかどうかを判断する。
【０１３９】
ステップＳ５０２：
インストール済み論理プリンタ情報記憶モジュール２１４中の未処理のものをプログラムの内部的に一つ選択する。
【０１４０】
ステップＳ５０３：
インストール済み論理プリンタ情報記憶モジュール２１４から、ステップＳ５０２で選択した論理プリンタに関係するＩＰアドレスを取得する。
【０１４１】
ステップＳ５０４：
インストール済み論理プリンタ情報記憶モジュール２１４から、ステップＳ５０２で選択した論理プリンタに関係するプリントジョブの送信方式とそれに関する情報を取得する。
【０１４２】
ステップＳ５０５：
ステップＳ５０３、Ｓ５０４で取得した情報を用いて当該プリントサーバ専用のポートモニタを作成する。
【０１４３】
ステップＳ５０６：
インストール済み論理プリンタ情報記憶モジュール２１４から、ステップＳ５０２で選択した論理プリンタに割り当てられたプリンタドライバの名前を取得する。
【０１４４】
ステップＳ５０７：
ステップＳ５０５で作成したポートモニタと、ステップＳ５０６で取得したプリンタドライバ名をもとに新たに論理プリンタを作成する。
【０１４５】
以上の手順で、既登録論理プリンタから得た情報に基づいて、出力システムにおいて実現される拡張機能を実現する新たなポートモニタを生成し、その新たなポートモニタを割りあてた新たな論理プリンタを作成することができる。作成される新たなポートモニタは、例えば、本発明にかかるプリントサーバ設定プログラム２００によりあらかじめ用意されている、新たなポートモニタにおいて提供されるサービスのメンバ関数等が記述されたオブジェクトとして生成される。生成された新たなポートモニタのメンバ関数により実現されるサービスとしては、例えばプリントジョブデータをプリンタに送信せずにいったんプリントサーバのハードディスクに格納し、そのプリントジョブデータを読み出して、印刷指定時に同時に指定された指定ないように応じてジョブ分割等の独自処理を施し、システム内のプリンタに送出するなどの機能がある。そして、ポートモニタのインスタンスの生成時において、保持されているＩＰアドレスやデータの送信方法等は、そのメンバとして使用されている。
【０１４６】
こうして、既存の論理プリンタが登録されていれば、その論理プリンタの情報を用いることで、プリントサーバの設定時には、論理プリンタに関する設定をユーザが行うことなく、プリントサーバによって提供される拡張機能をユーザは享受することができる。
【０１４７】
以上説明したように本実施形態によれば、固有のポートモニタを割り当てた論理プリンタに用いるプリントサーバシステム、あるいは付加価値印刷機能を提供するシステムのための論理プリンタを作成する工程を、すでにインストールされている論理プリンタの情報を使用することで短縮することが可能となる。それにより、ユーザの設定作業にかかわる手間を低減させることに寄与する。
【０１４８】
［第１の実施形態の変形例］
以上述べてきた第１の実施形態では既存の論理プリンタとは別に新たにプリントサーバが用いる論理プリンタを作成した。しかしながら、論理プリンタ自動作成モジュール２１５が、図５のステップＳ５０７において、既存の論理プリンタのポートモニタをステップＳ５０５で作成したポートモニタに置き換えることも可能である。こうすることで、プリントサーバでは使用しない論理プリンタを残しておくことを防止でき、論理プリンタの誤用等に起因する、ユーザの意思と出力結果との齟齬などを防止できる。
【０１４９】
［第２実施形態］
次に第２の実施形態として、プリントサーバ２００を実現するためのプログラムをコンピュータにインストールする際に、ネットワークに接続されているプリンタデバイスの探索を行い、それによって得られた情報を利用して、前記プリントサーバあるいは付加価値印刷機能を提供するプリントシステムのための論理プリンタのインスタンスの作成を、容易かつ迅速に行うことを可能にするプリントサーバ設定プログラムについて説明する。
【０１５０】
＜ＰＣ１００がプリントサーバ設定プログラムとして機能する場合のモジュール構成および動作＞
図７は、第１実施形態と同じく図１に示したＰＣ１００をプリントサーバとして稼動させた場合の、プリントサーバ上で実行するプリントサーバ設定プログラム（＝７００）の内部的なソフトウェアモジュール構成を具体的に示した図である。ここではプリントサーバ自体の構成の詳細は本発明の趣旨からははずれるため省略する。ただし、当該プリントサーバはＷｉｎｄｏｗｓにおけるポートモニタとして固有のものを割り当てた論理プリンタを使用することは留意する必要がある。なお、プリントサーバが接続されるネットワークシステムも第１実施形態と同じく図６に示されるものである。
【０１５１】
全体制御モジュール７０１はプリントサーバ設定プログラム７００の内部処理の全体的な制御を司る。具体的には配下のプリンタデバイス情報収集モジュール７０２と論理プリンタ自動作成モジュール７０３に順次処理を行わせ、その結果として、当該プリントサーバ専用の論理プリンタ一つまたは複数個作成せしめる。
【０１５２】
全体制御モジュール７０１はまずプリンタデバイス情報収集モジュール７０２を呼び出す。呼ばれたプリンタデバイス情報収集モジュール７０２は配下のネットワークプリンタデバイス探索モジュール７０５を呼び出す。ネットワークプリンタデバイス探索モジュール７０５は、ネットワーク上に、ネットワーク管理プロトコルであるＳＮＭＰプロトコルに則ったパケットのブロードキャストを行うことにより、ネットワークに接続されているプリンタデバイスの検索を行う。ブロードキャストに応答したプリンタデバイスから返されるパケットはそのデバイスの機種名、ＩＰアドレスの情報を持っている。ネットワークプリンタデバイス探索モジュール７０５は全ての有効な応答パケットに含まれている機種名、ＩＰアドレスの情報をプリンタデバイス情報収集モジュール７０２に返す。プリンタデバイス情報収集モジュール７０２は返された前記の情報を論理プリンタ情報記憶モジュール７０４に保存させる。なおこのＳＮＭＰプロトコルによるデバイスの情報収集の手順は、ＩＥＴＦにより標準化されており、一般に用いられているものである。
【０１５３】
全体制御モジュール７０１は、プリンタデバイス情報収集モジュール７０２の処理が終わると、次に論理プリンタ自動作成モジュール７０３を呼び出す。論理プリンタ自動作成モジュール７０３は、論理プリンタ情報記憶モジュール７０４に格納された機種名とＩＰアドレスを読み出して以下の処理を行う。
【０１５４】
まず読み出した機種名が非サポート機種のものの場合にはこの論理プリンタ情報を無視して次のエントリの機種名を取得する。（次のエントリが存在しなければ全体制御モジュール７０１に戻る。）サポート機種の場合は、機種名をドライバ名変換モジュール７０６に渡し、機種名に対応するプリンタドライバの名称を取得する。次に、機種名をジョブ送信方式情報取得モジュール７０７に渡し、プリントジョブのプリンタデバイスへの送信方式とそれに関連する初期設定情報を取得する。本実施例では前者はＬＰＲまたはＲＡＷ、後者はＬＰＲの場合にはＬＰＲキュー名、ＲＡＷの場合にはポート番号を持つ。この取得する情報はジョブ送信方式情報取得モジュール７０７が管理する静的な情報であり、各機種に対してあらかじめ一意に決められている。
【０１５５】
論理プリンタ自動作成モジュール７０３は、論理プリンタ情報記憶モジュール７０４から取得したＩＰアドレスに加え、ジョブ送信方式情報取得モジュール７０７から得られた上記情報をプリントサーバ専用ポートモニタ作成モジュール７０８に渡す。プリントサーバ専用ポートモニタ作成モジュール７０８は配下のポートモニタ初期値取得モジュールに機種名とジョブ送信方式情報を渡して、ポートモニタの各種設定値の初期値を生成させ、入手する。これと前記のＩＰアドレス、ジョブ送信方式情報を用いてプリントサーバ専用のポートモニタを作成する。
【０１５６】
論理プリンタ自動作成モジュール７０３は、上記で作成されたポートモニタと上記で取得したプリンタドライバ名を用いて論理プリンタを作成する。
【０１５７】
＜プリントサーバ設定プログラム７００の処理フロー＞
図８は、プリントサーバ設定プログラム７００の機能を具体的にフローチャートにより示したものである。
【０１５８】
ステップＳ８０１：
全体制御モジュール７０１が、プリンタデバイス情報収集モジュール７０２を呼び出してネットワーク上のプリンタデバイスを検出し、その際入手したプリンタデバイスの情報を保存する。
【０１５９】
ステップＳ８０２：
ステップＳ８０１により入手・一時保存された情報を用いて、当該プリントサーバで使用する専用の論理プリンタを作成する。
【０１６０】
図９は、上記のステップＳ８０１をさらに詳細に示したものである。
【０１６１】
ステップＳ９０１：
ネットワークにＳＮＭＰ（Ｓｉｍｐｌｅ Ｎｅｔｗｏｒｋ Ｍａｎａｇｅｍｅｎｔ Ｐｒｏｔｏｃｏｌ）のパケットをブロードキャストし、その応答を受信することによって、ネットワーク上に動作しているプリンタデバイスを検出する。応答パケット内にはＭＩＢ（Ｍａｎａｇｅｍｅｎｔ Ｉｎｆｏｒｍａｔｉｏｎ Ｂａｓｅ）オブジェクトの値として機種名が含まれている。また、パケットの送信先を調べることによりＩＰアドレスを取得することができる。
【０１６２】
ステップＳ９０２：
ステップＳ９０１の結果、プリンタデバイスが一つでも検出されたかどうかを判断する。
【０１６３】
ステップＳ９０３：
ステップＳ９０２でプリンタデバイスが一つ以上検出された場合には、プリンタデバイス情報収集モジュール７０２において、そのひとつひとつについてステップＳ９０４以下の処理を行うよう制御を行う。そのために、処理を行っていないプリンタデバイスが存在するかどうかを判断する。
【０１６４】
ステップＳ９０４：
処理を行っていないプリンタデバイスのなかから一つをプログラム内部で選択する。
【０１６５】
ステップＳ９０５：
ステップＳ９０４で選択したプリンタデバイスの、ステップＳ９０１でデバイスから取得した機種名を見て、当該プリントサーバが対応していない機種の場合には次のプリンタデバイスの処理にスキップする。それ以外の場合はステップＳ９０６に進む。
【０１６６】
ステップＳ９０６：
ステップＳ９０１でネットワークプリンタデバイス探索モジュール７０５から取得したネットワーク上のプリンタデバイスのＩＰアドレスを、プリンタデバイス情報収集モジュール７０２がプリンタデバイス情報記憶モジュール７０４に渡して記憶させる。
【０１６７】
ステップＳ９０７：
ステップＳ９０１でネットワークプリンタデバイス探索モジュール７０５から取得したネットワーク上のプリンタデバイスの機種名を、プリンタデバイス情報収集モジュール７０２がプリンタデバイス情報記憶モジュール７０４に渡して記憶させる。
【０１６８】
図１０は、上記のステップＳ８０２をさらに詳細に示したものである。
【０１６９】
ステップＳ１００１：
プリンタデバイス情報記憶モジュール７０４中に未処理のものがあるかどうかを判断する。
【０１７０】
ステップＳ１００２：
プリンタデバイス情報記憶モジュール７０４中の未処理のものから、プログラムが内部的に一つ選択する。
【０１７１】
ステップＳ１００３：
プリンタデバイス情報記憶モジュール７０４からステップＳ１００２で選択したプリンタデバイスに関係する機種名とＩＰアドレスを取得する。
【０１７２】
ステップＳ１００４：
ドライバ名変換モジュール７０６が、ステップＳ１００３で取得された機種名をもとにドライバ名を生成して論理プリンタ自動作成モジュール７０３に返す。
【０１７３】
ステップＳ１００５：
ジョブ送信方式情報取得モジュール７０７が、ステップＳ１００３で取得された機種名をもとにジョブ送信方式とその設定情報を生成して論理プリンタ自動作成モジュール７０３に返す。
【０１７４】
ステップＳ１００６：
ポートモニタ初期値取得モジュール７０９が、ステップＳ１００３で取得された機種名をもとにポートモニタ設定の初期値を生成してプリントサーバ専用ポートモニタ作成モジュール７０８に返す。
【０１７５】
ステップＳ１００７：
ステップＳ１００３で取得されたＩＰアドレスと、ステップＳ１００６で生成されたポートモニタ設定の初期値をもとに新たにポートモニタを作成する。
【０１７６】
ステップＳ１００８：
ステップＳ１００４で取得されたドライバ名と、ステップＳ１００７で作成されたポートモニタとをもとに新たに論理プリンタを作成する。
【０１７７】
以上の手順で、ＳＮＭＰによりネットワークから収集した情報に基づいて、出力システムにおいて実現される拡張機能を実現する新たなポートモニタを生成し、その新たなポートモニタを割りあてた新たな論理プリンタを作成することができる。作成される新たなポートモニタは、例えば、本発明にかかるプリントサーバ設定プログラム７００によりあらかじめ用意されている、新たなポートモニタにおいて提供されるサービスのメンバ関数等が記述されたオブジェクトとして生成される。生成された新たなポートモニタのメンバ関数により実現されるサービスとしては、例えばプリントジョブデータをプリンタに送信せずにいったんプリントサーバのハードディスクに格納し、そのプリントジョブデータを読み出して、印刷指定時に同時に指定された指定ないように応じてジョブ分割等の独自処理を施し、システム内のプリンタに送出するなどの機能がある。そして、ポートモニタのインスタンスの生成時において、保持されているＩＰアドレスやデータの送信方法等は、そのメンバとして使用されている。
【０１７８】
以上説明したように本実施形態によれば、固有のポートモニタを割り当てた論理プリンタに用いるプリントサーバシステム、あるいは付加価値印刷機能を提供するシステムのための論理プリンタを作成する工程を、ネットワーク上に接続されているプリンタデバイスから得た情報をもとにプログラムが自動的に論理プリンタを作成することで非常に容易にすることが可能となる。それにより、ユーザの設定作業にかかわる手間を低減させることに寄与する。
【０１７９】
［第１及び第２の実施形態に共通の変形例］
以上述べてきた第１及び第２の実施形態では、プリントサーバを専用サーバマシン上で稼動させたときの、サーバマシン上における論理プリンタの作成について開示した。しかしながら、サーバマシンでなくても、ユーザマシン（クライアントコンピュータ）上に付加価値（拡張機能）印刷を提供するシステムを導入し、そのシステムが固有のポートモニタを使用する場合にも、上記第１実施形態及び第２実施形態における手順は適用できる。
【０１８０】
また第１の実施形態の処理（すでにポートモニタに設定してある情報を利用してポート、プリンタの設定を行う処理）でプリンタが見つからない場合、第２の実施形態の処理（ネットワーク上のプリンタから情報収集しポート、プリンタの設定を行う処理）を行うようにプログラムで実行することもできる。
【０１８１】
さらに、本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【０１８２】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（または記録媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。
【０１８３】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体およびプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１８４】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０１８５】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０１８６】
【発明の効果】
以上説明したように本発明によれば、出力管理装置の設定の際に、ユーザに負担をかけずに、しかも誤りなくシステム設定を行うことが可能となる。
【０１８７】
詳しくは、出力管理装置の設定以前に存在している論理出力装置のインスタンスに設定された情報を利用して、前記出力管理装置により使用される論理出力装置の作成を容易にかつ迅速に行うことを可能にする。
【０１８８】
また、ネットワークに接続されている出力デバイスの探索を行い、それによって得られた情報を利用して、前記出力管理装置により使用される論理出力装置の作成を容易にかつ迅速に行うことを可能にする。
【図面の簡単な説明】
【図１】本発明を適用したパーソナルコンピュータ（ＰＣ）の構成を示すブロック図である。
【図２】本発明を適用した第１実施形態におけるプリントサーバ設定プログラムのモジュール構成を示すブロック図である。
【図３】本発明を適用した第１実施形態におけるプリントサーバ設定プログラムにおける、論理プリンタ作成を手順の概要を示すフローチャートである。
【図４】図３に示したフローチャートのステップＳ３０１の詳細を示すフローチャートである。
【図５】図３に示したフローチャートのステップＳ３０２の詳細を示すフローチャートである。
【図６】ネットワークシステムの構成例を示す図である。
【図７】本発明を適用した第２実施形態におけるプリントサーバ設定プログラムのモジュール構成を示すブロック図である。
【図８】本発明を適用した第２実施形態におけるプリントサーバ設定プログラムにおける、論理プリンタ作成手順の概要を示すフローチャートである。
【図９】図８に示したフローチャートのステップＳ８０１の詳細を示すフローチャートである。
【図１０】図８に示したフローチャートのステップＳ８０２の詳細を示すフローチャートである。
【図１】
0003962612.tif 000002
【図２】
0003962612.tif 000003
【図３】
0003962612.tif 000004
【図４】
0003962612.tif 000005
【図５】
0003962612.tif 000006
【図６】
0003962612.tif 000007
【図７】
0003962612.tif 000008
【図８】
0003962612.tif 000009
【図９】
0003962612.tif 000010
【図１０】
0003962612.tif 000011