(57)【要約】【課題】従来の印刷構成に必要な設定をしなくても、アプリケーションプログラムがネットワーク上で利用可能なプリンタに印刷することができるようにする。【解決手段】印刷データを処理する印刷ドライバの、コンピュータに実施させる方法である。印刷ドライバが印刷データの処理に使用するユーザ指定の設定を示す設定データを受け取る段階と、ネットワーク上で、印刷データの処理に利用できる一組の印刷装置をディスカバリする段階であって、ディスカバリは一組の印刷装置のうちの各印刷装置の識別情報と物理的場所の決定を含む段階と、一組の印刷装置を識別するデータを含むグラフィカルユーザインターフェイスを生成し、ユーザに一印刷装置を選択させる段階と、一印刷装置のユーザ選択を検出する段階と、印刷装置のユーザ選択の検出に応じて、印刷データを処理し、一印刷装置がサポートするフォーマットに従う処理済み印刷データを生成する段階と、処理済み印刷データをネットワークを介して一印刷装置に送信させる段階とを有する。【選択図】図１
2008186463.tif 000002
【特許請求の範囲】
【請求項１】
印刷データを処理する印刷ドライバの、コンピュータに実施させる方法であって、
前記印刷ドライバが、前記印刷データの処理に使用するユーザ指定の設定を示す設定データを受け取る段階と、
前記印刷ドライバが、ネットワーク上で、前記印刷データの処理に利用できる一組の印刷装置をディスカバリする段階であって、前記ディスカバリは前記一組の印刷装置のうちの各印刷装置の識別情報と物理的場所の決定を含む段階と、
前記印刷ドライバが、前記一組の印刷装置を識別するデータを含むグラフィカルユーザインターフェイスを生成し、ユーザに前記一組の印刷装置のうちの一印刷装置を選択させる段階と、
前記印刷ドライバが、前記一組の印刷装置のうちの一印刷装置のユーザ選択を検出する段階と、
前記一組の印刷装置のうちの前記一印刷装置の前記ユーザ選択の検出に応じて、前記印刷ドライバが、前記印刷データを処理し、前記一印刷装置がサポートするフォーマットに従う処理済み印刷データを生成する段階と、
前記印刷ドライバが、前記処理済み印刷データをネットワークを介して前記一印刷装置に送信させる段階とを有する方法。
【請求項２】
前記一組の印刷装置を識別する前記データは、前記一組の印刷装置のうちの各印刷装置の名前と物理的場所とのみを示す、請求項１に記載の方法。
【請求項３】
前記グラフィカルユーザインターフェイスにより、前記ユーザが前記一印刷装置をお気に入りリストに保存することを指定できる、請求項１に記載の方法。
【請求項４】
前記グラフィカルユーザインターフェイスにより、前記ユーザは、前記お気に入りリストから印刷装置を選択して、前記選択された印刷装置の最新状態を要求でき、
前記選択された印刷装置の前記最新状態に対する前記ユーザ要求の検出に応じて、前記ユニバーサル印刷ドライバが前記選択された印刷装置に最新状態を問い合わせ前記グラフィカルユーザインターフェイスを更新して前記選択された印刷装置の最新状態を反映させる、請求項３に記載の方法。
【請求項５】
前記グラフィカルユーザインターフェイスにより、前記ユーザは前記一印刷装置を識別するデータを入力でき、前記一組の印刷装置から選択しなくても前記一印刷装置が選択され得る、請求項１に記載の方法。
【請求項６】
前記一組の印刷装置は前記印刷ドライバが前記ディスカバリを実行する前に指定され、前記ディスカバリの実行は前記印刷ドライバが前記一組の印刷装置のうちの各印刷装置に問い合わせをすることを含む、請求項１に記載の方法。
【請求項７】
プロセッサにより処理された時、印刷ドライバに印刷データを処理させる命令を担うコンピュータ読み取り可能媒体であって、
前記印刷ドライバが、前記印刷データの処理に使用するユーザ指定の設定を示す設定データを受け取る段階と、
前記印刷ドライバが、ネットワーク上で、前記印刷データの処理に利用できる一組の印刷装置をディスカバリする段階であって、前記ディスカバリは前記一組の印刷装置のうちの各印刷装置の識別情報と物理的場所の決定を含む段階と、
前記印刷ドライバが、前記一組の印刷装置を識別するデータを含むグラフィカルユーザインターフェイスを生成し、ユーザに前記一組の印刷装置のうちの一印刷装置を選択させる段階と、
前記印刷ドライバが、前記一組の印刷装置のうちの一印刷装置のユーザ選択を検出する段階と、
前記一組の印刷装置のうちの前記一印刷装置の前記ユーザ選択の検出に応じて、前記印刷ドライバが前記印刷データを処理し、前記一印刷装置がサポートするフォーマットに従う処理済み印刷データを生成する段階と、
前記印刷ドライバが、前記処理済み印刷データをネットワークを介して前記一印刷装置に送信させる段階とを有するコンピュータ読み取り可能媒体。
【請求項８】
プログラムであって、
アプリケーションプログラムが生成した印刷データを処理し、その印刷データを処理しようとしている印刷装置がサポートしているフォーマットに従った変換印刷データを生成するレンダリングモジュールと、
前記プログラムが前記印刷データの処理に使用するユーザ指定の設定を示す設定データを受け取る段階と、
前記プログラムが、ネットワーク上で、前記印刷データの処理に利用できる一組の印刷装置をディスカバリする段階であって、前記ディスカバリは前記一組の印刷装置のうちの各印刷装置の識別情報と物理的場所の決定を含む段階と、
前記プログラムが、前記一組の印刷装置を識別するデータを含むグラフィカルユーザインターフェイスを生成し、ユーザに前記一組の印刷装置のうちの一印刷装置を選択させる段階と、
前記プログラムが、前記一組の印刷装置のうちの一印刷装置のユーザ選択を検出する段階と、
前記一組の印刷装置のうちの前記一印刷装置の前記ユーザ選択の検出に応じて、前記プログラムが前記印刷データを処理し、前記一印刷装置がサポートするフォーマットに従う処理済み印刷データを生成する段階と、
前記プログラムが、前記処理済み印刷データをネットワークを介して前記一印刷装置に送信させる段階とを実施するモジュールと有するプログラム。
【請求項９】
前記一組の印刷装置を識別する前記データは、前記一組の印刷装置のうちの各印刷装置の名前と物理的場所とのみを示す、請求項８に記載のプログラム。
【請求項１０】
前記グラフィカルユーザインターフェイスにより、前記ユーザが前記一印刷装置をお気に入りリストに保存することを指定できる、請求項８に記載のプログラム。
【請求項１１】
前記グラフィカルユーザインターフェイスにより、前記ユーザは、前記お気に入りリストから印刷装置を選択して、前記選択された印刷装置の最新状態を要求できる、
前記選択された印刷装置の前記最新状態に対する前記ユーザ要求の検出に応じて、前記ユニバーサルプログラムが前記選択された印刷装置に最新状態を問い合わせ前記グラフィカルユーザインターフェイスを更新して前記選択された印刷装置の最新状態を反映させる、請求項１０に記載のプログラム。
【請求項１２】
前記グラフィカルユーザインターフェイスにより、前記ユーザは前記一印刷装置を識別するデータを入力でき、前記一組の印刷装置から選択しなくても前記一印刷装置が選択され得る、請求項８に記載のプログラム。
【請求項１３】
前記一組の印刷装置は前記プログラムが前記ディスカバリを実行する前に指定され、前記ディスカバリの実行は前記プログラムが前記一組の印刷装置のうちの各印刷装置に問い合わせをすることを含む、請求項８に記載のプログラム。
【請求項１４】
アプリケーションプログラムが生成した印刷データを処理し、その印刷データを処理しようとしている印刷装置がサポートしているフォーマットに従った変換印刷データを生成する手段と、
前記印刷データの処理に使用するユーザ指定の設定を示す設定データを受け取る手段と、
ネットワーク上で、前記印刷データの処理に利用できる一組の印刷装置をディスカバリする、前記ディスカバリは前記一組の印刷装置のうちの各印刷装置の識別情報と物理的場所の決定を含む手段と、
前記一組の印刷装置を識別するデータを含むグラフィカルユーザインターフェイスを生成し、ユーザに前記一組の印刷装置のうちの一印刷装置を選択させる手段と、
前記一組の印刷装置のうちの一印刷装置のユーザ選択を検出する手段と、
前記一組の印刷装置のうちの前記一印刷装置の前記ユーザ選択の検出に応じて、前記プログラムが前記印刷データを処理し、前記一印刷装置がサポートするフォーマットに従う処理済み印刷データを生成する手段と、
前記処理済み印刷データをネットワークを介して前記一印刷装置に送信させる手段とを有する装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は印刷ドライバに関する。
【背景技術】
【０００２】
このセクションで説明するアプローチは、達成しようとすることができるものであるが、必ずしも以前に思いついたものや達成しようと試みたものではない。それゆえ、特に注意しない限り、このセクションに記載したアプローチは、本発明の請求項の先行技術ではなく、このセクションに含めたことにより先行技術であると認めたものでもない。
【０００３】
一般的に言って、印刷ドライバは、アプリケーションプログラムが生成した印刷データを処理するプロセスであって、その印刷データを処理しようとしている印刷装置がサポートしているフォーマットにその印刷データを変換するものである。例えば、ユーザはワードプロセッサアプリケーションを用いて電子文書を作成する。次に、ユーザはアプリケーションプログラムの印刷オプションを選択して、その電子文書を印刷装置で印刷する要求をする。アプリケーションプログラムは印刷データを作成して、ユーザのクライアント装置にインストールされている印刷ドライバにその印刷データを供給する。場合によっては、これにはスプーラ（spooler）と呼ばれ印刷データをローカルで保存する中間プロセスを使用する。印刷ドライバは印刷データを処理して、変換印刷データ（translated  print  data）を生成する。この変換印刷データはその印刷装置がサポートしているフォーマットである。例えば、印刷ドライバは印刷データを処理して、ポストスクリプトフォーマットに従った変換印刷データを生成する。次に、印刷ドライバは変換印刷データを印刷装置に送信する。印刷装置はその変換印刷データを処理して、電子文書の印刷バージョンを生成する。
【０００４】
従来の印刷ドライバは印刷装置に固有のものである。すなわち、各印刷ドライバは印刷データを、印刷装置がサポートするフォーマットに変換するように設計されている。印刷ドライバの装置への依存性（device-specific  nature）にはいくつかの問題がある。１つの問題は、ユーザが使用しようとする印刷装置ごとに、印刷ドライバがユーザのクライアント装置にインストールされていなければならないということである。印刷ドライバは、通常は印刷装置を購入した時に記憶媒体で提供され、またインターネット経由でダウンロードすることもできる。ユーザは、別の場所に行くと、利用できる印刷装置やその印刷装置の機能が分からないこともあり、多くの場合、正しい印刷ドライバを有しておらず、正しい印刷ドライバをダウンロードするためにインターネットにアクセスすることもできない。一般的に、ユーザは利用可能な印刷装置とその機能について問い合わせなければならず、必要な印刷ドライバを取得して、インストール及び設定をしなければならない。こうした問題は、ユーザインターフェイスが限定された小型のポータブルな装置を使用する場合には悪くなる。こうした限定的な装置では、印刷ドライバのダウンロード、インストール、設定が困難だからである。さらに、ユーザは印刷ドライバをインストールしてから、どのように印刷装置を設定するか知らなければならない。例えば、ユーザは一般的に印刷ドライバを設定するためには、印刷装置のＩＰアドレスとポートを知らなければならない。このように、ユーザは携帯装置を持って別の場所に行くと、その場所では印刷装置が使いにくいと感じることが多い。
【発明の開示】
【課題を解決するための手段】
【０００５】
ユニバーサル印刷ドライバにより、ユーザが従来の印刷構成に必要な設定をしなくても、アプリケーションプログラムはネットワーク上で利用可能なプリンタに印刷することができる。ユニバーサル印刷ドライバは、印刷装置ディスカバリ（discovery）を実行して印刷データの処理に利用可能な印刷装置を決定する機能を含んでいる。ディスカバリ機能には具体的な実施形態に応じて相異なるディスカバリのレベルがある。例えば、ディスカバリ機能は入手可能な情報の一部を発見（discover）する簡単ディスカバリメカニズム（simple  discovery  mechanism）を用いて実施することができ、入手可能な情報の全部（full  set）を発見するフルディスカバリメカニズム（full  discovery  mechanism）を用いて実施することができる。入手可能な情報とは、例えば印刷装置の識別情報、物理的場所、インストールされているオプションや設定、及びその時の状態（current  status）などである。ユニバーサル印刷ドライバにより、ユーザは印刷装置のオプション（options）と設定（settings）を管理することができる。例えば、ユニバーサル印刷ドライバは、ユーザが印刷装置の情報を保存したり見たり検索したりできるお気に入り送り先リスト（favorite  destinations  list）を提供する。また、ユニバーサル印刷ドライバは、「ベストフィット」マッチング機能を有し、ユーザが指定した特性に最もマッチ（match）する特性を有する利用可能な印刷装置を選択して印刷データを処理できる。ユニバーサル印刷ドライバはグラフィカルユーザインターフェイスを生成し、そのグラフィカルユーザインターフェイスにより、ユーザは印刷データの処理に使用できる印刷装置を見たり、印刷装置のオプションと設定を選択したりできる。
【０００６】
本発明の一実施形態では、印刷ドライバが印刷データを処理する、コンピュータにより実施される方法が提供される。前記方法は、前記印刷ドライバが前記印刷データの処理に使用するユーザ指定の設定を示す設定データを受け取る段階を含む。前記印刷ドライバは、ネットワーク上で、前記印刷データの処理に利用できる一組の印刷装置をディスカバリし、前記ディスカバリは前記一組の印刷装置のうちの各印刷装置の識別情報と物理的場所の決定を含む。前記印刷ドライバは、前記一組の印刷装置を識別するデータを含むグラフィカルユーザインターフェイスを生成し、ユーザに前記一組の印刷装置のうちの一印刷装置を選択させる。前記印刷ドライバは、前記一組の印刷装置のうちの前記一印刷装置の前記ユーザ選択を検出し、前記印刷データを処理し、前記一印刷装置がサポートするフォーマットに従う処理済み印刷データを生成する。また、前記印刷ドライバは、前記処理済み印刷データをネットワークを介して前記一印刷装置に送信させる。
【発明を実施するための最良の形態】
【０００７】
添付した図面において、同じ参照番号は同じ構成要素を指す。
【０００８】
以下の詳細な説明では、説明を目的として、本発明を完全に理解してもらうために、具体的な詳細事項を開示した実施形態例を記載する。しかし、言うまでもなく、本発明はこれらの詳細がなくても実施することができる。他の場合において、ブロック図として周知の構造やデバイスを示すが、これは本発明が不明瞭になることを避けるためである。本発明の様々な態様を以下次のセクションで説明する。
【０００９】
Ｉ．          概要
ＩＩ．        ユニバーサル印刷ドライバのアーキテクチャ
ＩＩＩ．      ユニバーサル印刷ドライバを用いた印刷装置へのアクセスと管理
ＩＶ．        印刷装置のディスカバリ
Ｖ．          「ベストフィット」ディスカバリ
ＶＩ．        動作シナリオの例
Ａ．簡単ディスカバリ
Ｂ．フルディスカバリ
Ｃ．「ベストフィット」ディスカバリ
ＶＩＩ．      実施メカニズム
Ｉ．  概要
ユニバーサル印刷ドライバにより、ユーザが従来の印刷構成に必要な設定をしなくても、アプリケーションプログラムはネットワーク上で利用可能なプリンタに印刷することができる。ユニバーサル印刷ドライバは、印刷装置ディスカバリ（discovery）を実行して印刷データの処理に利用可能な印刷装置を決定する機能を含んでいる。ディスカバリ機能には具体的な実施形態に応じて相異なるディスカバリのレベルがある。例えば、ディスカバリ機能は入手可能な情報の一部をディスカバリする（discover）簡単ディスカバリメカニズム（simple  discovery  mechanism）を用いて実施することができ、入手可能な情報の全部（full  set）をディスカバリするフルディスカバリメカニズム（full  discovery  mechanism）を用いて実施することができる。入手可能な情報とは、例えば印刷装置の識別情報、物理的場所、インストールされているオプションや設定、及びその時の状態（current  status）などである。ユニバーサル印刷ドライバにより、ユーザは印刷装置のオプション（options）と設定（settings）を管理することができる。例えば、ユニバーサル印刷ドライバは、ユーザが印刷装置の情報を保存したり見たり検索したりできるお気に入り送り先リスト（favorite  destinations  list）を提供する。また、ユニバーサル印刷ドライバは、「ベストフィット」マッチング機能を有し、ユーザが指定した特性に最もマッチ（match）する特性を有する利用可能な印刷装置を選択して印刷データを処理できる。ユニバーサル印刷ドライバはグラフィカルユーザインターフェイスを生成し、そのグラフィカルユーザインターフェイスにより、ユーザは印刷データの処理に使用できる印刷装置を見たり、印刷装置のオプションと設定を選択したりできる。
【００１０】
ＩＩ．  ユニバーサル印刷ドライバのアーキテクチャ
図１は、本発明の一実施形態によるユニバーサル印刷ドライバを実施する構成例１００を示すブロック図である。構成１００は、クライアント装置１０２、印刷装置１０４、１０６、１０８、１１０を含み、これらはネットワーク１１２を介して互いに通信可能に結合している。ネットワーク１１２は、図１に示した様々な要素間におけるデータ交換を提供する任意の媒体またはメカニズムにより実施できる。ネットワーク１１２の例としては、これに限定はされないが、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、イーサネット(登録商標)、インターネット等のネットワークや、地上波、衛星波、または無線リンク等が含まれる。ネットワーク１１２は図１に示した様々な要素間でセキュアな通信を提供することもできる。図１に示した様々な要素は、（１つ以上の）直接通信リンクを介して互いに通信してもよいが、説明を簡潔にするため図１には示していない。
【００１１】
クライアント装置１０２はいかなるタイプのクライアント装置であってもよく、本発明は特定のタイプのクライアント装置には限定されない。クライアント装置１０２には、これらに限定はされないが、デスクトップコンピュータ、ノートブックコンピュータ、パーソナルデジタルアシスタント（ＰＤＡ）、携帯装置、テレフォニー（telephony）装置等が含まれる。この実施例では、クライアント装置１０２はユーザインターフェイス１１４と、アプリケーションＡＰＰ１  １１６、ＡＰＰ２  １１８、ＡＰＰ３  １２０と、スプーラ（spooler）１２２と、ポートモニタ１２４とユニバーサル印刷ドライバ１２６と、記憶装置１２８とを含む。
【００１２】
印刷ドライバ１０４、１０６、１０８、１１０は、印刷データを処理してその印刷データに反映された電子文書の印刷バージョン（printed  version）を生成できるものであれば、いかなるタイプの印刷装置であってもよい。印刷装置１０４、１０６、１０８、１１０の例としては、これらに限定はされないが、プリンタ、ネットワーク対応コピー機、多機能機（multi-function  peripherals、ＭＦＰ）などがあり、ここに説明するアプローチは特定タイプの印刷装置には限定されない。本発明の実施形態を図１に示した４台の印刷装置の場合について説明するが、本アプローチは同じ場所や違う場所に印刷装置が何台配置されていても、適用可能である。クライアント装置１０２が印刷装置１０４、１０６、１０８、１１０に印刷データを供給するフォーマットや通信プロトコルは、具体的な実施形態に応じてどんなものでもよい。例えば、ＳＮＭＰを使用することができる。
【００１３】
ユーザインターフェイス１１４は、クライアント装置１０２とユーザとの間の情報交換を可能とするものであれば、いかなるメカニズム及び／またはプロセスで実施されてもよい。ユーザインターフェイス１１４の例には、ＣＲＴ（cathode  ray  tube）や液晶ディスプレイ等のディスプレイ、キーパッド、タッチパッド、タッチスクリーン、キーボード、マウス等の入力装置、またはこれらの任意の組合せを含むが、これらの限定はされない。
【００１４】
アプリケーションＡＰＰ１  １１６、ＡＰＰ２  １１８、ＡＰＰ３  １２０は印刷データを生成できるものであれば、いかなるタイプのアプリケーションであってもよい。アプリケーションＡＰＰ１  １１６、ＡＰＰ２  １１８、ＡＰＰ３  １２０の例としては、ワードプロセッサ、スプレッドシート、電子メール、その他のタイプのアプリケーションプログラムが含まれるが、これらに限定はされない。
【００１５】
ユニバーサル印刷ドライバ１２６はコンピュータソフトウェア、コンピュータハードウェア、またはコンピュータハードウェアとソフトウェアの何らかの組合せで実施することができる。例えば、ユニバーサル印刷ドライバ１２６はクライアント装置１０２上で実行される（１つ以上の）ソフトウェアプロセスとして実施できる。他の例として、ユニバーサル印刷ドライバ１２６はクライアント１０２にインストールされた実行可能コードとして実施することもできる。本発明の一実施形態では、ユニバーサル印刷ドライバ１２６には、印刷ドライバユーザインターフェイス（ＵＩ）モジュール１３０、ポート選択ユーザインターフェイス（ＵＩ）モジュール１３２、レンダリングモジュール１３４が含まれる。ユニバーサル印刷ドライバ１２６は、説明を簡潔にするため図１には示していない説明もしていないその他のモジュール、要素、機能等を含んでもよい。また、本発明は特定のモジュールや機能を組合せた印刷ドライバには限定されない。印刷ドライバＵＩモジュール１３０はユーザインターフェイス１１４上に印刷ドライバのグラフィカルユーザインターフェイス（ＧＵＩ）を実施する。ポート選択ＵＩモジュール１３２は、ユニバーサル印刷ドライバ１２６に特有のＧＵＩを実施し、以下に説明する機能を提供する。ポート選択ＵＩモジュール１３２は具体的な実施形態に応じて、相異なる多くの方法で実施することができる。例えば、ポート選択ＵＩモジュール１３２は、ウィンドウズ（登録商標）ビスタ（登録商標）オペレーティングシステムのＡＳｙｎｃｈＵＩモジュールとして実施することができる。レンダリングモジュール１３４は印刷データを処理し、その印刷データを処理する予定の印刷装置がサポートしているフォーマットに従った変換印刷データ（translated  print  data）を生成する。例えば、レンダリングモジュール１３４はワードプロセッサ（word  processing  application）、例えばＡＰＰ１  １１６が生成する印刷データ１３６を処理し、ポストスクリプトフォーマットの変換印刷データを生成する。これは、その印刷データ１３６を印刷装置１０４が処理する予定であり、印刷装置１０４がポストスクリプトをサポートしていることを前提としている。印刷ドライバＵＩモジュール１３０、ポート選択ＵＩモジュール１３２、及びレンダリングモジュール１３４は後でより詳しく説明する。
【００１６】
記憶装置１２８はいかなるタイプの記憶装置であってもよい。記憶装置１２８の例としては、例えば、ＲＡＭ（random  access  memory）等の揮発性メモリ、ディスクやフラッシュメモリ等の不揮発性メモリ等が含まれる。クライアント装置１０２は具体的な実施形態に応じて、図１には図示していないメカニズム、モジュール、プロセス等を含んでいてもよい。図１において、記憶装置１２８は印刷データ１３６を記憶するものと説明しているが、その他のタイプの様々なデータを記憶してもよい。
【００１７】
ＩＩＩ．  ユニバーサル印刷ドライバを用いた印刷装置へのアクセスと管理
本発明の一実施形態では、ユニバーサル印刷ドライバ１２６はグラフィカルユーザインターフェイスを生成するように構成されており、このグラフィカルユーザインターフェイスによりユーザは印刷データの処理に利用できる印刷装置にアクセスして管理することができる。図２は、ポート選択ＵＩモジュール１３２が生成するプリンタ送り先画面２００の例を示す図である。プリンタ送り先画面２００はユーザがユニバーサル印刷ドライバ１２６をインスタンス化または実行すると生成される。例えば、ユーザが、オペレーティングシステムの機能により印刷装置のプロパティの編集を選択したり、アプリケーションプログラムによりプリンタ装置のプロパティの編集を選択する（例えば、ファイル→印刷と進み、次にユニバーサル印刷ドライバ１２６の名前を選択する）と、ユニバーサル印刷ドライバ１２６が実行される。ユニバーサル印刷ドライバ１２６が実行され、ポート選択ＵＩモジュール１３２がプリンタ送り先画面２００を生成させ、ユーザインターフェイス１１４に表示させる。
【００１８】
図２に示したように、プリンタ送り先画面２００は、もし知っていれば、ユーザに印刷装置のＩＰアドレスや名前を手作業で指定させるフィールド２０２を含む。プルダウンメニューセレクタ２０４により、ユーザは、最近入力したＩＰアドレスと名前にアクセスできる。保存ボタン２０６により、ユーザは、フィールド２０２に入力した印刷装置のＩＰアドレスと名前をお気に入り送り先リスト（favorite  destinations  list）２０８に保存することができる。
【００１９】
図３は、ユーザが保存ボタン２０６を選択するとそれに応じてポート選択ユーザインターフェイスモジュール１３２がユーザインターフェイス１１４上に表示されるユーザインターフェイス画面３００の例を示す図である。ユーザインターフェイス画面３００により、ユーザは、お気に入り送り先リスト２０８に保存された印刷装置のニックネームや物理的場所を指定できる。これは、クライアント装置１０２がモバイル装置で、ユーザが複数の場所で印刷する必要がある場合に特に便利である。例えば、ユーザは、相異なる場所で使用する印刷装置をお気に入り送り先リスト２０８に保存することができる。お気に入り送り先リスト２０８にリストされた印刷装置を選択するには、マウス等のセレクタメカニズムを用いて印刷装置をハイライトして、確認ボタン２１０を選択する。ユーザはキャンセルボタン２１２を選択してプリンタ送り先画面２００を出ることもできる。お気に入り送り先リスト２０８にある印刷装置があっても、必ずしもその印刷装置がその時点で利用可能であるとは限らない。例えば、その印刷装置を最後に使った後、取り除かれたり、電源が切られたり、ネットワーク１１２と切り離されたり、クライアント装置１０２には利用・アクセスができなくなっていたりなどの理由で、その装置がもはや利用できなくなっていることもある。本発明の一実施形態では、プリンタ送り先画面２００にはクエリボタン（query  button）２１４があり、お気に入り送り先リスト２０８にある印刷装置の最新の状態を取得することができる。ユーザがクエリボタン２１４を選択すると、ユニバーサル印刷ドライバ１２６はお気に入り送り先リスト２０８に含まれる各印刷装置に問い合わせをする。印刷装置はユニバーサル印刷ドライバ１２６に、インストールされている機能やオプションとその時の状態とを示す情報を返し、ユニバーサル印刷ドライバ１２６はこの情報に基づきお気に入り送り先リスト２０８を更新する。選択できる問い合わせのオプションを利用可能とすることにより、印刷装置から情報を読み出す計算資源の量と時間とを少なくすることができる。問い合わせ（query）は、ネットワーク上の利用可能なすべての印刷装置に一度に行われるのではなく、印刷装置ごとに行われるからである。
【００２０】
プリンタ送り先画面２００にはアドバンストボタン（advanced  button）２１６もあり、ユーザは、これを選択して、お気に入り送り先リスト２０８にある印刷装置を管理することができる。アドバンストボタン２１６が選択されると、ユニバーサル印刷ドライバ１２６は図４に示したアドバンスト設定画面４００を表示させる。アドバンスト設定画面４００には、お気に入り送り先リスト２０８にリストされた印刷装置を管理するための一組のユーザインターフェイスコントロール４０２が含まれている。この一組のユーザインターフェイスコントロール４０２により、ユーザはお気に入り送り先リスト２０８の印刷装置を変更したり、削除したりできる。アドバンスト設定画面４００は一組のユーザインターフェイスコントロール４０４も含み、ユーザは印刷装置のディスカバリ（discovery）に使用できるパラメータを指定することができる。例えば、自動サーチ（automatic  search）を選択して、クライアント装置１０２と同じサブネット上の印刷装置をサーチする。あるいは、ユーザインターフェイスコントロール４０２により、ユーザは特定のＩＰアドレスの範囲でカスタムサーチ（custom  search）をすることができる。範囲設定により、サーチ範囲を狭いＩＰアドレス範囲に限定したり（例えば、クライアント装置１０２と同じサブネット上）、他のサブネットを含む広いＩＰアドレス範囲を含めたりできる。アドバンスト設定画面４００にはチェックボックス（checkbox）４０６がさらに含まれ、これを選択すると、ポート選択ＵＩモジュール１３２がプリンタ送り先画面２００を表示させた時に、ユニバーサル印刷ドライバ１２６はお気に入り送り先リスト２０８に含まれる印刷装置に自動的に問い合わせする。
【００２１】
ＩＶ．  印刷装置のディスカバリ
本発明の一実施形態では、ユニバーサル印刷ドライバ１２６は印刷データの処理に利用できる印刷装置をディスカバリする（discover）ように構成されている。ユニバーサル印刷ドライバ１２６はいかなるタイプのディスカバリメカニズム（discovery  mechanism）で印刷装置をディスカバリ（discover）してもよい。例えば、ユニバーサル印刷ドライバ１２６を、ネットワーク１１２上にマルチキャストメッセージを送信して印刷装置１０４、１０６、１０８、１１０をディスカバリするように構成してもよい。他の例として、ユニバーサル印刷ドライバ１２６は、印刷装置１０４、１０６、１０８、１１０をディスカバリするウェブサービスディスカバリメカニズムを実施してもよい。ユニバーサル印刷ドライバ１２６は、指定時刻に（例えば、定期的に）、またはユーザ要求に応答してディスカバリを実行するように構成できる。これは後でもっと詳細に説明する。
【００２２】
ユニバーサル印刷ドライバ１２６を、相異なるタイプのディスカバリを実行するように構成してもよい。本発明の一実施形態では、ユニバーサル印刷ドライバ１２６は簡単ディスカバリ（simple  discovery）を実行するように構成される。簡単ディスカバリは、ユニバーサル印刷ドライバ１２６が、印刷データの処理に利用できる印刷装置に関して入手可能な情報の一部（subset）をディスカバリするものである。例えば、簡単ディスカバリは、印刷データの処理に利用できる印刷装置の識別情報（identity）と物理的場所のみをディスカバリし（discover）、印刷装置のインストールされた機能とオプションはディスカバリしない。簡単ディスカバリは、ネットワーク上の利用可能な印刷装置の一部に関する情報をディスカバリすることもできる。例えば、簡単ディスカバリは、指定された印刷装置のリストに基づいてディスカバリを実行してもよい。
【００２３】
本発明の他の一実施形態では、ユニバーサル印刷ドライバ１２６はフルディスカバリ（full  discovery）を実行するように構成される。フルディスカバリでは、ユニバーサル印刷ドライバ１２６が印刷データの処理に利用できる印刷装置に関して、簡単ディスカバリより多くの情報をディスカバリする。例えば、フルディスカバリは印刷装置の識別情報、ネットワークアドレス、物理的場所、及びインストールされたオプションと設定をディスカバリすることを含む。インストールされたオプションと設定の例としては、これらに限定はされないが、片面印刷または両面印刷、白黒印刷またはカラー印刷、インストールされた用紙トレイとフィーダ（feeders）、ステープル、パンチ、折り曲げ、カット、及び製本等の機能がある。ユニバーサル印刷ドライバ１２６は印刷装置の最新状態をディスカバリするように構成してもよい。
【００２４】
図２に示したように、プリンタ送り先画面２００はサーチボタン２１８を含み、このボタンによりユーザは印刷装置のディスカバリを手作業で（manually）開始することができる。サーチボタン２１８を選択すると、ユニバーサル印刷ドライバ１２６はクライアント装置１０２がアクセスでき印刷データを処理できる印刷装置をディスカバリする。前述の通り、具体的な実施形態によって、使用するディスカバリメカニズムはいかなるタイプのものでもよい。ユニバーサル印刷ドライバ１２６は、ディスカバリの結果を示す情報をユーザインターフェイス１１４上に表示させる。図５は、ユニバーサル印刷ドライバ１２６が印刷データの処理に利用できる印刷装置を識別するディスカバリを実行した結果を示すサーチ結果リスト５００の例を示す図である。この例では、サーチ結果リスト５００はディスカバリされた印刷装置のニックネーム、ＩＰアドレス、物理的場所、機能等の特性（characteristics）を示している。本発明は具体的な特徴には限定されず、いかなるタイプの特徴をディスカバリまたはユーザに表示してもよい。サーチ結果リスト５００により、ユーザはディスカバリされた印刷装置を１つ選択して印刷データ１３６を処理できる。
【００２５】
Ｖ．  「ベストフィット」ディスカバリ
本発明の一実施形態では、ユニバーサル印刷ドライバ１２６は利用可能な印刷装置の「ベストフィット」ディスカバリ（“best  fit”  discovery）を実行するように構成される。ベストフィットディスカバリは、一組の利用可能な印刷装置の中から、一組の印刷装置基準を最もよく満たす印刷装置を決定するものである。印刷装置基準はいろいろな基準を含み得る。例えば、ユーザは、片面印刷または両面印刷、白黒印刷またはカラー印刷、インストールされた用紙トレイとフィーダ（feeders）、ステープル、パンチ、折り曲げ、カット、及び製本などのオプションと設定の所望の値を指定することができる。前述の通り、ユーザはユーザインターフェイスコントロール４０４を介してサーチパラメータの値を指定してもよい。印刷装置基準は、ユーザがグラフィカルユーザインターフェイスを介して入力してもよいし、その他の情報源（sources）から取得してもよい。ユニバーサル印刷ドライバ１２６はディスカバリを実行して利用可能な印刷装置を識別する。ユニバーサル印刷ドライバ１２６は、次に、利用可能な印刷装置のどれが印刷装置基準を最もよく満足するか決定する。ユニバーサル印刷ドライバ１２６は自動的に最もよい印刷装置を選択し、選択した印刷装置に印刷データを送る。あるいは、ユニバーサル印刷ドライバ１２６は、ユーザに利用可能な印刷装置を提示して、ユニバーサル印刷ドライバ１２６が「ベストフィット」の印刷装置として選択した印刷装置を示してもよい。「ベストフィット」ディスカバリアプローチのさらに詳細を以下に説明する。
【００２６】
ＶＩ．  動作シナリオの例
Ａ．簡単ディスカバリ
簡単ディスカバリは、ユニバーサル印刷ドライバ１２６が、印刷データの処理に利用できる印刷装置に関して入手可能な情報の一部（subset）を発見するものである。このアプローチは、後で説明するフルディスカバリアプローチと比較して、消費する計算資源と時間が比較的少ない「軽量（lightweight）」アプローチである。
【００２７】
図６は、本発明の一実施形態による、ユニバーサル印刷ドライバ１２６が簡単ディスカバリを実行するアプローチを示すフロー図６００である。ステップ６０２において、ユーザはアプリケーションプログラムから印刷データの処理の設定を指定する。例えば、ＡＰＰ１  １１６がワードプロセッサのプログラムであり、クライアント装置１０２のユーザが電子文書を作成し、それを印刷したがっているとする。ユーザがＡＰＰ１  １１６の印刷オプションを選択すると、印刷ドライバＵＩモジュール１３０が印刷グラフィカルユーザインターフェイス画面を表示させる。ユーザはその印刷グラフィカルユーザインターフェイス画面とインターラクト（interact）して、１つ以上の印刷設定値を選択する。例えば、ユーザは、電子文書を両面印刷で印刷し、パンチで穴をあけてステープラで綴じることを指定できる。ユーザが選択した設定値は、例えば記憶装置１２８に設定データとして記憶される。
【００２８】
ステップ６０４において、ユニバーサル印刷ドライバ１２６が起動される。例えば、ユーザが、オペレーティングシステムの機能により印刷装置のプロパティの編集を選択したり、アプリケーションプログラムＡＰＰ１  １１６によりプリンタ装置のプロパティの編集を選択する（例えば、ファイル→印刷と進み、次にユニバーサル印刷ドライバ１２６の名前を選択する）と、ユニバーサル印刷ドライバ１２６が起動される。ユニバーサル印刷ドライバ１２６が起動され、ポート選択ＵＩモジュール１３２がプリンタ送り先画面２００を生成させ、ユーザインターフェイス１１４に表示させる。
【００２９】
ステップ６０６において、印刷データ１３６を処理する印刷装置を特定する。簡単ディスカバリオプションでは、その印刷装置は２つの方法の１つで特定される。第１に、ユーザはフィールド２０２に印刷装置のＩＰアドレスまたはホスト名を入力し、確認ボタン２１０を選択する。あるいは、サーチボタン２１８を選択して、ユニバーサル印刷ドライバ１２６に簡単ディスカバリを実行させる。簡単ディスカバリでは、ユニバーサル印刷ドライバ１２６は、印刷データの処理に利用できる印刷装置を決定し、図５に示したサーチ結果リスト５００に表示する。これにはディスカバリメカニズムを使用してネットワーク１１２に接続され印刷データ処理に利用可能な印刷装置を特定することが含まれる。しかし、フルディスカバリと異なり、簡単ディスカバリが印刷装置から取得する情報は少ない。例えば、簡単ディスカバリでは、ユニバーサル印刷ドライバ１２６が印刷装置に名前と物理的な場所のみを問い合わせ、その他の情報（例えば、インストールされた機能やオプション等）は問い合わせない。本発明の一実施形態では、ユニバーサル印刷ドライバ１２６は、事前にインストールされ設定された一組の印刷装置にのみ簡単ディスカバリを実行するように構成されている。簡単ディスカバリの結果はサーチ結果リスト５００に表示される。ユーザは、次にサーチ結果リスト５００から印刷装置を選択し、確認ボタン５０２を選択する。ユーザは確認ボタン２１０を選択し、プリンタ送り先画面２００を離れ、アプリケーションプログラムＡＰＰ１  １１６の印刷画面に戻る。
【００３０】
ユーザは、ＩＰアドレスまたはホスト名を入力するか、簡単ディスカバリ後に印刷装置を選択して印刷装置を指定すると、ステップ６０８において、その印刷装置で使用する標準的な装置設定及び印刷オプションの値を任意的に指定できる。標準装置設定と印刷オプションは簡単ディスカバリを用いてディスカバリされたすべての印刷装置に対して同じであり、個々の印刷装置に特有のものではない。このように、標準装置設定と印刷オプションのどちらを印刷装置がサポートしているか分からない。
【００３１】
ステップ６１０において、ユーザは印刷データの処理を選択し、印刷データが処理され、選択された印刷装置に送られる。例えば、ユーザはアプリケーションプログラムＡＰＰ１  １１６が生成した印刷グラフィカルユーザインターフェイス画面から確認ボタンを選択する。確認ボタンが選択されると、レンダリングモジュール（rendering  module）１３４は印刷データ１３６を処理し、選択された印刷装置がサポートしているフォーマットに従った処理済み印刷データを生成する。ポートモニタ１２４は処理済み印刷データを選択された印刷装置に送信する。標準装置設定と印刷オプションの値を選択された印刷装置がサポートしていない場合、それらの値は無視される。例えば、ユーザが、標準装置設定から両面印刷を選択したが、選択された印刷装置（the  particular  printing  device）は両面印刷をサポートしていないとする。この場合、印刷装置は処理済み印刷データを片面印刷で処理する。
【００３２】
図７は、簡単ディスカバリにおける相異なる構成要素の実行を示すブロック図７００である。図７に示したように、アプリケーション（この場合、ＡＰＰ１  １１６）は印刷データをスプーラ（spooler）１２２に供給する。スプーラ１２２はその印刷データをレンダリングモジュール１３４に供給し、選択された印刷装置がサポートしているフォーマットに従った変換済み（処理済み）印刷データを生成させる。選択された印刷装置は印刷データに反映された電子文書の印刷バージョン（printed  version）を生成する。しかし、変換済み印刷データを生成するまえに、ポート選択ＵＩモジュール１３２は印刷データの処理に使用する印刷装置を決定する。この決定は、ユーザが印刷装置の名前またはＩＰアドレスを指定するか、簡単ディスカバリの後にユーザが印刷装置を選択することにより行う。レンダリングモジュール１３４は変換済み印刷データを生成し、それを選択された（決定された）印刷装置に供給する。
【００３３】
Ｂ．フルディスカバリ
フルディスカバリでは、ユニバーサル印刷ドライバ１２６が、印刷装置に関する情報を、簡単ディスカバリアプローチで得られるより多くディスカバリする。このアプローチは簡単ディスカバリアプローチより比較的多くの計算資源と時間とを必要とするが、利用可能な印刷装置に関する情報をユーザにより多く提供する。
【００３４】
図８は、本発明の一実施形態による、ユニバーサル印刷ドライバ１２６がフルディスカバリを実行するアプローチを示すフロー図８００である。ステップ８０２において、ユーザはアプリケーションプログラムから印刷データの処理の設定を指定する。例えば、ＡＰＰ１  １１６がワードプロセッサのプログラムであり、クライアント装置１０２のユーザが電子文書を作成し、それを印刷したがっているとする。ユーザがＡＰＰ１  １１６の印刷オプションを選択すると、印刷ドライバＵＩモジュール１３０が印刷グラフィカルユーザインターフェイス画面を表示させる。ユーザはその印刷グラフィカルユーザインターフェイス画面とインターラクト（interact）して、１つ以上の印刷設定値を選択する。例えば、ユーザは、電子文書を両面印刷で印刷し、パンチで穴をあけてステープラで綴じることを指定できる。ユーザが選択した設定値は、例えば記憶装置１２８に設定データとして記憶される。
【００３５】
ステップ８０４において、ユニバーサル印刷ドライバ１２６が起動される。例えば、ユーザが、オペレーティングシステムの機能により印刷装置のプロパティの編集を選択したり、アプリケーションプログラムＡＰＰ１  １１６によりプリンタ装置のプロパティの編集を選択する（例えば、ファイル→印刷と進み、次にユニバーサル印刷ドライバ１２６の名前を選択する）と、ユニバーサル印刷ドライバ１２６が起動される。ユニバーサル印刷ドライバ１２６が起動され、ポート選択ＵＩモジュール１３２がプリンタ送り先画面２００を生成させ、ユーザインターフェイス１１４に表示させる。
【００３６】
ステップ８０６において、印刷データ１３６を処理する印刷装置を特定する。簡単ディスカバリオプションでは、その印刷装置は２つの方法の１つで特定される。第１に、ユーザはフィールド２０２に印刷装置のＩＰアドレスまたはホスト名を入力し、確認ボタン２１０を選択する。あるいは、サーチボタン２１８を選択して、ユニバーサル印刷ドライバ１２６にフルディスカバリを実行させる。フルディスカバリでは、ユニバーサル印刷ドライバ１２６は、印刷データの処理に利用できる印刷装置を決定し、図５に示したサーチ結果リスト５００に表示する。この決定にはディスカバリメカニズムを使用してネットワーク１１２に接続され印刷データ処理に利用可能な印刷装置を特定することが含まれる。しかし、簡単ディスカバリと異なり、フルディスカバリが印刷装置から取得する情報は多い。例えば、フルディスカバリでは、ユニバーサル印刷ドライバ１２６が識別情報、ネットワークアドレス、物理的場所、及びインストールされた機能と設定を印刷装置に問い合わせる。フルディスカバリの結果はサーチ結果リスト５００に表示される。ユーザは、次にサーチ結果リスト５００から印刷装置を選択し、確認ボタン５０２を選択する。ユーザは確認ボタン２１０を選択し、プリンタ送り先画面２００を離れ、アプリケーションプログラムＡＰＰ１  １１６の印刷画面に戻る。
【００３７】
ユーザは、ＩＰアドレスまたはホスト名を入力するか、フルディスカバリ後に印刷装置を選択して印刷装置を指定すると、ステップ８０８において、その印刷装置で使用する標準的な装置設定及び印刷オプションの値を任意的に指定できる。
【００３８】
ステップ８１０において、ユーザは印刷データの処理を選択し、印刷データが処理され印刷装置に送られる。例えば、ユーザはアプリケーションプログラムＡＰＰ１  １１６が生成した印刷グラフィカルユーザインターフェイス画面から確認ボタンを選択する。確認ボタンが選択されると、レンダリングモジュール（rendering  module）１３４は印刷データ１３６を処理し、印刷装置がサポートしているフォーマットに従った処理済み印刷データを生成する。ポートモニタ１２４は処理済み印刷データを選択された印刷装置に送信する。
【００３９】
図９は、フルディスカバリにおける相異なる構成要素の実行を示すブロック図９００である。図９に示したように、アプリケーション（この場合、ＡＰＰ１  １１６）は印刷データをスプーラ（spooler）１２２に供給する。スプーラ１２２はポート選択ＵＩモジュール１３２を起動し、ポート選択ＵＩモジュール１３２は次に印刷ドライバＵＩモジュール１３０を起動して、使用する印刷装置に関する情報（例えば、印刷データの処理に使用する印刷オプション設定）を取得する。ポート選択ＵＩモジュール１３２は印刷データの処理に使用する印刷装置を決定する。この決定は、ユーザが印刷装置の名前またはＩＰアドレスを指定するか、簡単ディスカバリの後にユーザが印刷装置を選択することにより行う。レンダリングモジュール１３４は次に、印刷装置がサポートしているフォーマットに従った変換済み印刷データを生成し、その印刷装置が印刷データに反映された電子文書の印刷バージョンを生成する。レンダリングモジュール１３４は変換済み印刷データを生成し、それを選択された（決定された）印刷装置に供給する。
【００４０】
Ｃ．「ベストフィット」ディスカバリ
図１０は、本発明の一実施形態による「ベストフィット」適合オプションを示すフロー図１０００である。  ステップ１００２において、ユーザはアプリケーションプログラムから印刷データの処理の設定を指定する。例えば、ＡＰＰ１  １１６がワードプロセッサのプログラムであり、クライアント装置１０２のユーザが電子文書を作成し、それを印刷したがっているとする。ユーザがＡＰＰ１  １１６の印刷オプションを選択すると、印刷ドライバＵＩモジュール１３０が印刷グラフィカルユーザインターフェイス画面を表示させる。ユーザはその印刷グラフィカルユーザインターフェイス画面とインターラクト（interact）して、１つ以上の印刷設定値を選択する。例えば、ユーザは、電子文書を両面印刷で印刷し、パンチで穴をあけてステープラで綴じることを指定できる。ユーザが選択した設定値は、例えば記憶装置１２８に設定データとして記憶される。
【００４１】
ステップ１００４において、ユニバーサル印刷ドライバ１２６が起動される。例えば、ユーザが、オペレーティングシステムの機能により印刷装置のプロパティの編集を選択したり、アプリケーションプログラムＡＰＰ１  １１６によりプリンタ装置のプロパティの編集を選択する（例えば、ファイル→印刷と進み、次にユニバーサル印刷ドライバ１２６の名前を選択する）と、ユニバーサル印刷ドライバ１２６が起動される。ユニバーサル印刷ドライバ１２６が起動され、ポート選択ＵＩモジュール１３２がプリンタ送り先画面２００を生成させ、ユーザインターフェイス１１４に表示させる。
【００４２】
ステップ１００６において、ユーザは電子文書の印刷に利用できる印刷装置のフルディスカバリを開始する。例えば、ユーザはプリンタ送り先画面２００からサーチボタン２１８を選択する。
【００４３】
ステップ１００８において、サーチボタン２１８の選択に応答して、ユニバーサル印刷ドライバ１２６は自動ディスカバリを実行して、ユーザが選択し設定データに反映させた設定値に基づき印刷データ１３６を処理できる１つ以上の利用可能な印刷装置を決定する。前述の通り、ユニバーサル印刷ドライバ１２６は、いかなるタイプのディスカバリメカニズムやアプローチを用いて印刷データ１３６の処理に利用可能な印刷装置のディスカバリを行ってもよい。
【００４４】
ステップ１０１０において、ユニバーサル印刷ドライバ１２６は「ベストフィット」印刷装置を決定する。「ベストフィット（best  fit）」印刷装置は、利用可能な印刷装置のうちの、印刷データ１３６と、ユーザが指定して設定データに反映させた印刷設定値とに基づき電子文書を最もよく印刷できる印刷装置である。利用可能な印刷装置のうちのどれが「ベストフィット」の印刷装置であるかは、具体的な実施形態に応じて様々な方法を用いて決定することができる。例えば、「ベストフィット」印刷装置は、ユーザが指定して設定データに反映させたオプションと機能を最大数サポートする印刷装置である。他の例として、ユーザが指定して設定データに反映させた設定値に重み付けをして、重み付け値を用いて設定データを最もよく満たす印刷装置を決定してもよい。この決定では、ディスカバリで見つかった利用可能な各印刷装置のスコアを決定する。スコアは対応する印刷装置が設定データで指定されたオプションと設定をどれだけよくサポートするかを反映している。
【００４５】
ステップ１０１２において、ユニバーサル印刷ドライバ１２６は、「ベストフィット」マッチングの結果をユーザに表示させる。例えば、ユニバーサル印刷ドライバ１２６は、サーチ結果リスト５００と同様のリストに１つ以上の印刷装置を表示させてもよい。リスト中の印刷装置は印刷データ１３６を処理する相対的な能力に基づき順序付けられる。例えば、「ベストフィット」の印刷装置はリストの最初に表示され、その他の印刷装置は、ユーザが選択した設定値に基づく印刷データ１３６を処理する相対的な能力に基づき降順にリストされる。「ベストフィット」の印刷装置は、何らかのグラフィカルユーザインターフェイスを用いて目立たせるか、「ベストフィット」印刷装置であると識別してもよい。例えば、カラー、影付け、ハイライト（highlighting）、スタイリング（styling）、マーキング（marking）その他の特徴やグラフィカルユーザインターフェイスオブジェクト属性（graphical  user  interface  object  attribute）を選択して、「ベストフィット」の印刷装置であることを示す。グラフィカルユーザインターフェイスは、その印刷装置が印刷データを処理する相対的な能力を示してもよい。例えば、設定データに指定されたオプションと設定の高いサポート閾値レベルを少なくとも満たす印刷装置を、一属性として緑色で表示する。高い閾値レベルは満たさないが、中間のサポート閾値レベルは満たす印刷装置を一属性として黄色で表示する。低い閾値レベルを少なくとも満たさない印刷装置を一属性として赤色で表示する。設定データが示す設定は必要に応じてユーザが指定することができる。この場合、要求された設定をサポートしない印刷装置は自動的に最も下のカテゴリーの印刷装置に分類され、例えば赤色で表示される。このアプローチにより、ユーザは選択した設定値をどの印刷装置が最もよく満たすか容易に識別することができ、いろいろな場合に非常に便利である。例えば、ユーザは、２台の印刷装置がベストフィットの場合、どちらも同様によく印刷データを処理できることが容易に分かる。しかし、２台のうち１台の物理的な場所がユーザに近ければ、ユーザは近い方を選択するであろう。他の例として、電子文書を両面カラーで印刷しステープルで綴じることをユーザが指定したと仮定する。さらに、現在のところ利用可能な印刷装置はどれもこの３つのサービス（すなわち、カラーで両面印刷してステープルで綴じる）のすべては提供できず、１台は両面カラー印刷はできるが（その印刷装置にステープルのオプションが装備されていないか、エラーや針が無いためにステープルオプションが現在は利用できないため）ステープルで綴じることはできず、一方もう一台は両面印刷とステープル綴じ（stapling）はできるが、カラー印刷はできないとする。この場合、ユニバーサル印刷ドライバ１２６が生成するグラフィカルユーザインターフェイスは、各印刷装置がサポートしている機能を示し、どちらのオプションのプライオリティが高いかに応じて、「ベストフィット」の印刷装置として２台中の一台を表示する。例えば、カラー印刷の方がステープル綴じよりも重要であると考えられる場合、前者の印刷装置が「ベストフィット」印刷装置とされる。ユーザは自分にとって重要な機能や特徴に基づ��て、いずれかの印刷装置を選択できる。
【００４６】
さらに別の例として、印刷装置のリストに表示された機能の視覚的な属性が、それらの機能のユーザが選択した設定値との互換性を反映してもよい。例えば、ユーザがカラー印刷を選択し、ある印刷装置は白黒印刷のみをサポートしているとする。その印刷装置の白黒印刷の機能を異なる色で表示して、その印刷装置がカラー印刷をサポートしていないことにユーザの注意を引くことができる。
【００４７】
ステップ１０１４において、ユーザは、ユニバーサル印刷ドライバ１２６が生成した利用可能印刷装置のリストからある印刷装置を選択する。例えば、ユーザは、マウス等の選択装置を用いて、サーチ結果リスト５００からその印刷装置を選択して、確認ボタン５０２を選択する。選択が行われると、ユニバーサル印刷ドライバ１２６は、その印刷装置を示すデータを記憶させ、他のモジュールが利用できるようにする。例えば、ユニバーサル印刷ドライバ１２６は、その印刷装置のポート情報を例えば記憶装置１２８に記憶させ、ポートモニタ１２４が利用できるようにする。ユニバーサル印刷ドライバ１２６はプリンタ送り先画面を非表示にして、印刷ドライバＵＩモジュール１３０が印刷グラフィカルユーザインターフェイス画面をユーザインターフェイス１１４に表示させる。
【００４８】
ステップ１０１６において、ユーザは印刷データの処理を選択し、印刷データが処理され印刷装置に送られる。この時、レンダリングモジュール１３４が印刷データ１３６を処理し、処理済み印刷データを生成する。処理済み印刷データは印刷装置に送信される。例えば、ユーザはサーチ結果リスト５００から確認ボタン５０２を選択する。確認ボタン５０２が選択されると、レンダリングモジュール１３４は印刷データ１３６を処理し、処理済み印刷データを生成する。ポートモニタ１２４は処理済み印刷データを選択された印刷装置に送信する。
【００４９】
図１１は、「ベストフィット」ディスカバリにおける相異なる構成要素の実行を示すブロック図１１００である。図１１に示したように、アプリケーション（この場合、ＡＰＰ１  １１６）は印刷データをスプーラ（spooler）１２２に供給する。スプーラ１２２は印刷ドライバＵＩモジュール１３０を起動し、使用する印刷装置に関する情報（例えば、印刷データの処理に使用する印刷オプション設定）を取得する。次に、ポート選択ＵＩモジュール１３２が起動され、印刷データの処理に使用する印刷装置を決定する。これは、ユーザがその印刷装置の名前またはＩＰアドレスを指定して、ユニバーサル印刷ドライバ１２６が「ベストフィット」印刷装置を自動的に選択して、またはユニバーサル印刷ドライバ１２６が「ベストフィット」印刷装置とともに利用可能印刷装置のリストを提示して、ユーザがその印刷装置を選択することにより行われる。レンダリングモジュール１３４は次に、印刷装置がサポートしているフォーマットに従った変換済み印刷データを生成し、その印刷装置が印刷データに反映された電子文書の印刷バージョンを生成する。レンダリングモジュール１３４は変換済み印刷データを生成し、それを選択された（決定された）印刷装置に供給する。
【００５０】
ＶＩＩ．  実施メカニズム
図１２は、本発明の一実施形態を実施するコンピュータシステム１２００を示すブロック図である。コンピュータシステム１２００は、情報をやりとりするバス１２０２その他の通信メカニズムと、バス１２０２に結合した情報を処理するプロセッサ１２０４とを有する。コンピュータシステム１２００は、さらに、ランダムアクセスメモリ（ＲＡＭ）またはその他のダイナミック記憶デバイス等のメインメモリ１２０６を含む。このメインメモリは、バス１２０２に結合しており、情報と、プロセッサ１２０４により実行される命令とを格納する。メインメモリ１２０６は、プロセッサ１２０４による命令の実行中に、一時的変数やその他の中間情報を記憶するために使用することもできる。コンピュータシステム１２００は、さらに、読み出し専用メモリ（ＲＯＭ）１２０８その他の静的記憶デバイスを含む。この読出専用メモリは、バス１２０２に結合されており、静的な情報とプロセッサ１２０４の命令とを格納する。記憶装置１２１０（磁気ディスクや光ディスク等）が設けられ、バス１２０２に結合されており、情報と命令を格納する。
【００５１】
コンピュータシステム１２００は、バス１２０２を介して、ディスプレイ１２１２（ＣＲＴ等）に結合されており、コンピュータユーザに情報を表示する。入力装置１２１４は、英数字その他のキーを含み、バス１２０２に結合されており、情報とコマンド選択をプロセッサ１２０４に伝送する。他のタイプのユーザ入力装置はカーソル制御部１２１６であり、マウス、トラックボール、またはカーソル方向キー等である。これらは、プロセッサ１２０４に方向情報とコマンド選択を伝送し、ディスプレイ１２１２上のカーソルの動きを制御する。この入力装置は典型的には２つの軸、すなわち第１の軸（例えばｘ軸）と第２の軸（例えばｙ軸）で２自由度を有し、これによりデバイスが平面内の点を特定することができる。
【００５２】
本発明は、ここに説明した方法を実施するためのコンピュータシステム１２００の使用方法にも関する。本発明の一実施形態によると、これらの方法のコンピュータシステム１２００による実行は、メインメモリ１２０６に含まれる１つ以上の命令の１つ以上のシーケンスをプロセッサ１２０４が実行することにより行われる。かかる命令は、他の機械読み取り可能媒体（記憶装置１２１０等）からメインメモリ１２０６に読み込まれる。メインメモリ１２０６に含まれる命令シーケンスの実行により、プロセッサ１２０４はここに説明したプロセスステップを実行する。他の実施形態では、ソフトウェア命令に替えて、またはソフトウェア命令と組み合わせて、ハードワイヤー回路（hard-wired  circuitry）を使用して本発明を実施することもできる。このように、本発明の実施形態は、ハードウェア回路とソフトウェアの特定の組み合わせに限定はされない。
【００５３】
ここで、「機械読み取り可能媒体」との用語は、機械に特定のやり方で動作させるデータを提供するいかなる媒体も指す。コンピュータシステム１２００を用いて実施する一実施形態では、様々な機械読み取り可能媒体を使用して、例えば、プロセッサ１２０４が実行する命令を提供する。かかる媒体は、多数の形式をとることができ、例えば、不揮発性媒体、揮発性媒体、伝送媒体等を含むが、これらに限定はされない。不揮発媒体は、例えば光ディスクまたは磁気ディスクを含み、記憶装置１２１０等である。揮発性媒体は、ダイナミックメモリを含み、メインメモリ１２０６等である。伝送媒体は、同軸ケーブル、銅線、光ファイバを含み、バス１２０２を含むワイヤも含む。伝送媒体は、音波や光波であって、無線通信や赤外線データ通信で生成されるものの形態を取ることもできる。
【００５４】
機械読み取り可能媒体の一般的な形態には次のものが含まれる。例えば、フロッピー（登録商標）ディスク、フレキシブルディスク、ハードディスク、磁気テープ、その他の磁気媒体、ＣＤ−ＲＯＭその他の光媒体、パンチカード、紙テープ、その他の穴のパターンを有する物理媒体、ＲＡＭ、ＰＲＯＭ、ＥＰＲＯＭ、フラッシュＥＰＲＯＭ、その他のメモリチップまたはカートリッジ、以下に説明する搬送波、コンピュータが読み取れるその他のいかなる媒体。
【００５５】
機械読み取り可能媒体の様々な形態を使用して、１つ以上の命令の１つ以上のシーケンスをプロセッサ１２０４に搬送し、実行させる。例えば、命令は最初にリモートコンピュータの磁気ディスク上にあってもよい。リモートコンピュータは、その命令をそのダイナミックメモリにロードして、モデムを用いて電話回線を介してその命令を送信することができる。コンピュータシステム１２００にあるモデムが、電話回線上のデータを受信し、赤外トランスミッタを用いてそのデータを赤外信号に変換することができる。赤外検出器が赤外信号で搬送されたそのデータを受信して、適当な回路がそのデータをバス１２０２に載せることができる。バス１２０２はそのデータをメインメモリ１２０６に送り、プロセッサ１２０４はその命令を読み出して実行する。メインメモリ１２０６が受け取った命令は、任意的に記憶装置１２１０に記憶され、その前または後にプロセッサ１２０４により実行される。
【００５６】
コンピュータシステム１２００は、バス１２０２に結合した通信インターフェイス１２１８も含む。通信インターフェイス１２１８は、ネットワークリンク１２２０との双方向データ通信カップリングを提供する。ネットワークリンクはローカルネットワーク１２２２に接続されている。例えば、通信インターフェイス１２１８は、統合デジタルサービスネットワーク（ＩＳＤＮ）カードまたはモデムであって、対応するタイプの電話回線へのデータ通信接続を提供する。他の例として、通信インターフェイス１２１８は、ローカルエリアネットワーク（ＬＡＮ）カードであって、互換性のあるＬＡＮへのデータ通信接続を提供してもよい。無線リンクを実施してもよい。かかる実施では、通信インターフェイス１２１８は、いろいろなタイプの情報を表すデジタルデータストリームを搬送する電気的、電磁気的、または光学的信号を送受信する。
【００５７】
ネットワークリンク１２２０は、一般的には、１つ以上のネットワークを介して他のデータデバイスとのデータ通信を提供する。例えば、ネットワークリンク１２２０は、ローカルネットワーク１２２２により、ホストコンピュータ１２２４またはインターネットサービスプロバイダ（ＩＳＰ）１２２６により運営されているデータ機器への通信を提供する。ＩＳＰ１２２６は、これに対して、現在は一般的に「インターネット」１２２８と呼ばれている、世界規模のパケットデータ通信ネットワークを介してデータ通信サービスを提供する。ローカルネットワーク１２２２とインターネット１２２８は、両方とも、デジタルデータストリームを担う電気的、電磁気的、または光学的信号を使用する。様々なネットワーク中の信号やネットワークリンク１２２０と通信インターフェイス１２１８上の信号は、コンピュータシステム１２００との間でデジタルデータを担い、情報を伝送する搬送波の例である。
【００５８】
コンピュータシステム１２００は、ネットワーク、ネットワークリンク１２２０、及び通信インターフェイス１２１８により、メッセージを送信しプログラムコードを含むデータを受信することができる。インターネットの例では、サーバ１２３０は、インターネット１２２８、ＩＳＰ１２２６、ローカルネットワーク１２２２、及び通信インターフェイス１２１８を介して、要求されたアプリケーションプログラムのコードを送信してもよい。
【００５９】
受信するコードは、受信しつつプロセッサ１２０４により実行されてもよいし、後で実行するために記憶装置１２１０またはその他の不揮発性記憶装置に記憶されてもよい。このように、コンピュータシステム１２００は、搬送波の形態でアプリケーションコードを取得してもよい。
【００６０】
上記の通り明細書では、実施ごとに変わり得る多数の詳細を参照して本発明の実施形態を説明した。このように、本発明であり、出願人が本発明であると意図しているものを示すのは、願書に添付した特許請求の範囲であり、特許後の訂正も含め特許された請求項である。よって、請求項中に明示的に含まれていない限定、要素、特性、特徴、利益、または属性は、いかなる方法によっても、かかる請求項の範囲を限定するものではない。したがって、明細書と図面は例示であって限定ではないと考えるべきである。
【図面の簡単な説明】
【００６１】
【図１】本発明の一実施形態によるユニバーサル印刷ドライバを実施する構成例１００を示すブロック図である。
【図２】本発明によるポート選択ユーザインターフェイスモジュールが生成するプリンタ送り先画面の例を示す図である。
【図３】本発明の一実施形態による、ユーザが保存ボタンを選択するとそれに応じてポート選択ユーザインターフェイスモジュールがユーザインターフェイス上に表示されるユーザインターフェイス画面の例を示す図である。
【図４】本発明の一実施形態による、ユニバーサル印刷ドライバが生成する詳細設定画面を示す図である。
【図５】ユニバーサル印刷ドライバに印刷データの処理に利用できる印刷装置を識別するディスカバリを実行した結果を含むユーザインターフェイス画面の例を示す図である。
【図６】本発明の一実施形態による、ユニバーサル印刷ドライバが簡単ディスカバリを実施するアプローチを示すフロー図である。
【図７】簡単ディスカバリにおける相異なる構成要素の実行を示すブロック図である。
【図８】本発明の一実施形態による、ユニバーサル印刷ドライバがフルディスカバリを実行するアプローチを示すフロー図である。
【図９】簡単ディスカバリにおける相異なる構成要素の実行を示すブロック図である。
【図１０】本発明の一実施形態による「ベストフィット」適合オプションを示すフロー図である。
【図１１】「ベストフィット」ディスカバリにおける相異なる構成要素の実行を示すブロック図である。
【図１２】本発明の実施形態を実現するコンピュータシステムを示すブロック図である。
【符号の説明】
【００６２】
１０２  クライアント装置
１０４、１０６、１０８、１１０  印刷装置
１１２  ネットワーク
１１４  ユーザインターフェイス
１１６、１１８、１２０  アプリケーション
１２２  スプーラ
１２４  ポートモニタ
１２６  ユニバーサル印刷ドライバ
１２８  記憶装置
１３０  印刷ドライバユーザインターフェイスモジュール
１３２  ポート選択ユーザインターフェイスモジュール
１３４  レンダリングモジュール
１３６  印刷データ
１２０２  バス
１２０４  プロセッサ
１２０６  メインメモリ
１２０８  ＲＯＭ
１２１０  記憶装置
１２１２  ディスプレイ
１２１４  入力装置
１２１６  カーソル制御部
１２１８  通信インターフェイス
１２２０  ネットワークリンク
１２２２  ローカルネットワーク
１２２４  ホスト
１２２６  ＩＳＰ
１２２８  インターネット
１２３０  サーバ
【図１】
2008186463.tif 000003
【図２】
2008186463.tif 000004
【図３】
2008186463.tif 000005
【図４】
2008186463.tif 000006
【図５】
2008186463.tif 000007
【図６】
2008186463.tif 000008
【図７】
2008186463.tif 000009
【図８】
2008186463.tif 000010
【図９】
2008186463.tif 000011
【図１０】
2008186463.tif 000012
【図１１】
2008186463.tif 000013
【図１２】
2008186463.tif 000014