(57)【特許請求の範囲】
【請求項１】
ネットワークに結合する機能をもつネットワーク・インターフェースと、
ネットワーク中に存在するかもしれない一つまたは複数の互換印刷装置にそれぞれデータを差し向けることのできる一つまたは複数のプリンタ・ドライバと、
印刷サーバー論理とを有するデータ処理装置であって、該印刷サーバー論理は、一つまたは複数のプロセッサによって実行されたときに、
前記プリンタ・ドライバの一つまたは複数を欠くクライアント・コンピュータから、印刷データを含んでおり、該印刷データにおいて表されている一つまたは複数の文書を印刷する要求を受信し、
前記クライアントから、前記一つまたは複数の文書を印刷するための一つまたは複数のパラメータを受信し、
該複数パラメータに基づいて、前記一つまたは複数の印刷装置のうちからある特定の印刷装置を決定し、
該決定に基づいてその特定の印刷装置と互換な前記プリンタ・ドライバの一つを使って前記印刷データを変換し、該変換された印刷データを前記特定の印刷装置に送る、
機械実装されたステップを実行するよう動作可能であり、
前記印刷サーバー論理はクライアント・ハンドラおよびサービス発見プロトコル・ハンドラを有しており、該サービス発見プロトコル・ハンドラは、実行されたときに、サービス発見プロトコル中の要求を使って、ネットワーク中の前記一つまたは複数の印刷装置を発見することを実行するよう動作可能であり、
前記クライアント・ハンドラは、実行されたときに、前記クライアントに前記特定の印刷装置において前記印刷データの印刷に成功したことを知らせる確認データを、前記クライアントに送ることを実行するよう動作可能であり、該確認データは前記特定の印刷装置の名称および位置を含む、
データ処理装置。
【請求項２】
前記印刷サーバー論理はさらに、実行されたときに、前記パラメータを最もよく満たす前記特定の印刷装置を決定するよう動作可能な論理を含む、請求項１記載のデータ処理装置。
【請求項３】
前記印刷サーバー論理はさらに、実行されたときに：前記クライアントからの要求中の、前記パラメータのそれぞれに関連付けられた重み値を受領し、該重み値のそれぞれは関連付けられたパラメータの重要性を示し；前記重み値に従って前記パラメータに重み付けしたときに前記パラメータを最もよく満たす前記特定の印刷装置を決定することを実行するよう動作可能な論理を含む、請求項１記載のデータ処理装置。
【請求項４】
前記印刷サーバー論理はさらに、実行されたときに、前記印刷装置の一つからその印刷装置がサービス要求に対して利用可能であることを示す広告メッセージを受信することを実行するよう動作可能な論理を含む、請求項１記載のデータ処理装置。
【請求項５】
前記印刷サーバー論理はさらに、実行されたときに、前記特定の印刷装置のためのドライバの一つをインストールすることを実行するよう動作可能な論理を含む、請求項１記載のデータ処理装置。
【請求項６】
前記印刷サーバー論理はさらに、実行されたときに、前記ドライバの一つから、前記特定の印刷装置の一つまたは複数の機能を特定する印刷機能データを取得することを実行するよう動作可能な論理を含む、請求項１記載のデータ処理装置。
【請求項７】
前記印刷サーバー論理はさらに、実行されたときに、前記特定の印刷装置から、前記特定の印刷装置の印刷機能を示す印刷機能データを取得することを実行するよう動作可能な論理を含む、請求項１記載のデータ処理装置。
【請求項８】
前記パラメータは、前記印刷装置の一つの、前記クライアントに対する位置か、前記印刷装置の一つの、一つまたは複数のセキュリティ特徴かのうちの少なくとも一方を含む、請求項１記載のデータ処理装置。
【請求項９】
ネットワークに結合する機能をもつネットワーク・インターフェースと、
ネットワーク中に存在するかもしれない一つまたは複数の互換印刷装置にそれぞれデータを差し向けることのできる一つまたは複数のプリンタ・ドライバと、
印刷サーバー論理とを有するデータ処理装置であって、該印刷サーバー論理は、一つまたは複数のプロセッサによって実行されたときに、
前記プリンタ・ドライバの一つまたは複数を欠くクライアント・コンピュータから、印刷データを含んでおり、該印刷データにおいて表されている一つまたは複数の文書を印刷する要求を受信し、
前記クライアントから、前記一つまたは複数の文書を印刷するための一つまたは複数のパラメータを受信し、
該複数パラメータに基づいて、前記一つまたは複数の印刷装置のうちからある特定の印刷装置を決定し、
該決定に基づいてその特定の印刷装置と互換な前記プリンタ・ドライバの一つを使って前記印刷データを変換し、該変換された印刷データを前記特定の印刷装置に送る、
機械実装されたステップを実行するよう動作可能であり、
前記印刷サーバー論理はさらに、実行されたときに、利用可能でありかつ前記パラメータを満たす前記印刷装置を特定する情報を含む利用可能性待ち行列を生成および保存し、ある印刷ジョブが前記特定の印刷装置での印刷に失敗したことを示すエラー・メッセージを前記特定の印刷装置から受信するのに応答して前記特定の印刷装置を特定する情報を除去することを実行するよう動作可能な論理を含む、
データ処理装置。
【請求項１０】
前記印刷サーバー論理はさらに、実行されたときに、前記エラー・メッセージを受信するのに応答して前記利用可能性待ち行列から第二の印刷装置を選択し、前記第二の印刷装置と互換な前記プリンタ・ドライバの一つを使って前記印刷データを変換し、該変換された印刷データを前記第二の印刷装置に送る、ことを実行するよう動作可能な論理を含む、請求項９記載のデータ処理装置。
【請求項１１】
ネットワークに結合する機能をもつネットワーク・インターフェースと、
ネットワーク中に存在するかもしれない一つまたは複数の互換印刷装置にそれぞれデータを差し向けることのできる一つまたは複数のプリンタ・ドライバと、
前記プリンタ・ドライバの一つまたは複数を欠くクライアント・コンピュータから、印刷データを含んでおり、該印刷データにおいて表されている一つまたは複数の文書を印刷する要求を受信する手段と、
前記クライアントから、前記一つまたは複数の文書を印刷するための一つまたは複数のパラメータを受信する手段と、
該複数パラメータに基づいて、前記一つまたは複数の印刷装置のうちからある特定の印刷装置を決定する手段と、
該決定に基づいてその特定の印刷装置と互換な前記プリンタ・ドライバの一つを使って前記印刷データを変換し、該変換された印刷データを前記特定の印刷装置に送る手段とを有するデータ処理データ処理装置であって、
前記印刷サーバー論理はクライアント・ハンドラおよびサービス発見プロトコル・ハンドラを有しており、該サービス発見プロトコル・ハンドラは、実行されたときに、サービス発見プロトコル中の要求を使って、ネットワーク中の前記一つまたは複数の印刷装置を発見することを実行するよう動作可能であり、
前記クライアント・ハンドラは、実行されたときに、前記クライアントに前記特定の印刷装置において前記印刷データの印刷に成功したことを知らせる確認データを、前記クライアントに送ることを実行するよう動作可能であり、該確認データは前記特定の印刷装置の名称および位置を含む、
データ処理装置。
【請求項１２】
前記パラメータを最もよく満たす前記特定の印刷装置を決定する手段をさらに有する、請求項１１記載のデータ処理装置。
【請求項１３】
前記クライアントからの要求中の、前記パラメータのそれぞれに関連付けられた重み値を受領し、ここで該重み値のそれぞれは関連付けられたパラメータの重要性を示す、手段と、前記重み値に従って前記パラメータに重み付けしたときに前記パラメータを最もよく満たす前記特定の印刷装置を決定する手段とをさらに有する、請求項１１記載のデータ処理装置。
【請求項１４】
ネットワークに結合する機能をもつネットワーク・インターフェースと、
ネットワーク中に存在するかもしれない一つまたは複数の互換印刷装置にそれぞれデータを差し向けることのできる一つまたは複数のプリンタ・ドライバと、
前記プリンタ・ドライバの一つまたは複数を欠くクライアント・コンピュータから、印刷データを含んでおり、該印刷データにおいて表されている一つまたは複数の文書を印刷する要求を受信する手段と、
前記クライアントから、前記一つまたは複数の文書を印刷するための一つまたは複数のパラメータを受信する手段と、
該複数パラメータに基づいて、前記一つまたは複数の印刷装置のうちからある特定の印刷装置を決定する手段と、
該決定に基づいてその特定の印刷装置と互換な前記プリンタ・ドライバの一つを使って前記印刷データを変換し、該変換された印刷データを前記特定の印刷装置に送る手段とを有するデータ処理データ処理装置であって、
利用可能でありかつ前記パラメータを満たす前記印刷装置を特定する情報を含む利用可能性待ち行列を生成および保存する手段と、ある印刷ジョブが前記特定の印刷装置での印刷に失敗したことを示すエラー・メッセージを前記特定の印刷装置から受信するのに応答して前記特定の印刷装置を特定する情報を除去する手段とをさらに有する、
データ処理装置。
【請求項１５】
前記エラー・メッセージを受信するのに応答して前記利用可能性待ち行列から第二の印刷装置を選択する手段と、前記第二の印刷装置と互換な前記プリンタ・ドライバの一つを使って前記印刷データを変換する手段と、該変換された印刷データを前記第二の印刷装置に送る手段とをさらに有する、請求項１４記載のデータ処理装置。
【請求項１６】
一つまたは複数の命令シーケンスがエンコードされているコンピュータ読み取り可能な記録媒体であって、該命令は、一つまたは複数のプロセッサによって実行されたときに、前記一つまたは複数のプロセッサに、
ネットワーク中に存在するかもしれない一つまたは複数の互換印刷装置にそれぞれデータを差し向けることのできる一つまたは複数のプリンタ・ドライバを欠くクライアント・コンピュータから、印刷データを含んでおり、該印刷データにおいて表されている一つまたは複数の文書を印刷する要求を受信し、
前記クライアントから、前記一つまたは複数の文書を印刷する一つまたは複数のパラメータを受信し、
該複数パラメータに基づいて、前記一つまたは複数の印刷装置のうちからある特定の印刷装置を決定し、
該決定に基づいてその特定の印刷装置と互換な前記プリンタ・ドライバの一つを使って前記印刷データを変換し、該変換された印刷データを前記特定の印刷装置に送る、
ことを実行させるものであり、
前記命令はさらに、一つまたは複数のプロセッサによって実行されたときに、前記一つまたは複数のプロセッサに、サービス発見プロトコル中の要求を使って、ネットワーク中の前記一つまたは複数の印刷装置を発見することを実行させ、
前記クライアントに前記特定の印刷装置において前記印刷データの印刷に成功したことを知らせる確認データを、前記クライアントに送ることを実行させ、該確認データは前記特定の印刷装置の名称および位置を含む、
コンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は電子文書の印刷に関する。
【背景技術】
【０００２】
このセクションに記載されるアプローチは、追求できるアプローチであるが、必ずしも以前に着想または追求されたことのあるアプローチではない。したがって、特に断りのない限り、このセクションに記載されるアプローチのいずれかが、このセクションに含められているというだけのことをもって従来技術になると想定するべきではない。
【０００３】
企業は同じフロアにまたは同じ概略的な領域に位置する異なる機能をもった多くの印刷装置を有することがある。ユーザーによっては、ある種の要件を満たす印刷装置を使うことを所望することがある。印刷装置の要件の例は、あるレベルのセキュリティの保証、カラー印刷サポート、ある印刷スピードまたはページ・スループットの提供、ビルのあるフロアに位置していることなどを含む。すべての要件を満たす印刷装置に文書を印刷するためには、ユーザーはどのプリンタが要件を満たすかを知る必要がある。この知識は、利用可能な印刷装置になじみのないユーザーには欠けていることがある。大企業環境では、なじみのあるユーザーにとってもそうである。場合によっては、ユーザーは、所望のプリンタのためのプリンタ・ドライバをユーザーのコンピュータにインストールすることを求められる。
【発明の開示】
【課題を解決するための手段】
【０００４】
さまざまな実施形態において、データを印刷するクライアント要求に自動的にサービスする方法、機械可読媒体および装置が提供される。ある実施形態では、印刷サーバー（print  server）はクライアントから、該要求に含まれる印刷データに反映されている一つまたは複数の文書を印刷する要求を受け取る。印刷サーバーはクライアントから複数のパラメータを受領することがある。パラメータは、前記一つまたは複数の文書を印刷するために印刷装置が有するべきおよび／または有する必要がある種々の機能を指定しうる。印刷サーバーは、そうしたパラメータに基づいて、複数の印刷装置のうちから特定の印刷装置を決定する。この決定に基づいて、印刷サーバーは印刷データをその特定の印刷装置に送る。結果として、ユーザーは、ユーザーの要件を満たす特定の印刷装置についての詳細な情報を知ることは要求されない。ある実施形態では、ユーザーは、その特定の印刷装置のためのプリンタ・ドライバをユーザーのコンピュータにインストールすることを要求されない。
【０００５】
本発明は、限定としてではなく例として、付属の図面の図に例示されている。図面において、同様の参照符号は同様の要素を指す。
【発明を実施するための最良の形態】
【０００６】
以下の記述では、説明の目的のため、本発明の十全なる理解を与えるために数多くの個別的な詳細が述べられる。しかしながら、本発明がそうした個別的な詳細なしでも実施されうることは明白であろう。他方、よく知られた構造および装置は、本発明を無用に埋没させるのを避けるためにブロック図の形で示されている。
【０００７】
（概要）
ある実施形態では、データ処理装置が、ネットワークに結合する機能をもつネットワーク・インターフェースと；ネットワーク中に存在するかもしれない一つまたは複数の互換印刷装置にそれぞれデータを差し向けることのできる一つまたは複数のプリンタ・ドライバと；印刷サーバー論理とを有する。該印刷サーバー論理は、一つまたは複数のプロセッサによって実行されたときに：前記プリンタ・ドライバの一つまたは複数を欠くクライアント・コンピュータから、その要求に含まれる印刷データに表されている一つまたは複数の文書を印刷する要求を受信し；前記クライアントから、前記一つまたは複数の文書を印刷するための一つまたは複数のパラメータを受信し；該複数パラメータに基づいて、前記一つまたは複数の印刷装置のうちからある特定の印刷装置を決定し；該決定に基づいてその特定の印刷装置と互換な前記プリンタ・ドライバの一つを使って前記印刷データを変換し、該変換された印刷データを前記特定の印刷装置に送る、機械実装されたステップを実行するよう動作可能である。
【０００８】
ある実施形態では、前記印刷サーバー論理はクライアント・ハンドラおよびサービス発見プロトコル・ハンドラを有しており、該サービス発見プロトコル・ハンドラは、実行されたときに、サービス発見プロトコル中の要求を使って、ネットワーク中の前記一つまたは複数の印刷装置を発見することを実行するよう動作可能である。ある実施形態では、前記クライアント・ハンドラは、実行されたときに、前記クライアントに前記特定の印刷装置において前記印刷データの印刷に成功したことを知らせる確認データを、前記クライアントに送ることを実行するよう動作可能であり、該確認データは前記特定の印刷装置の名称および位置を含む。
【０００９】
ある実施形態では、前記印刷サーバー論理はさらに、実行されたときに、前記パラメータを最もよく満たす前記特定の印刷装置を決定するよう動作可能な論理を含む。
【００１０】
ある実施形態では、前記印刷サーバー論理はさらに、実行されたときに：前記クライアントからの要求中の、前記パラメータのそれぞれに関連付けられた重み値を受領し、該重み値のそれぞれは関連付けられたパラメータの重要性を示し；前記重み値に従って前記パラメータに重み付けしたときに前記パラメータを最もよく満たす前記特定の印刷装置を決定することを実行するよう動作可能な論理を含む。
【００１１】
ある実施形態では、前記印刷サーバー論理はさらに、実行されたときに、前記印刷装置の一つからその印刷装置がサービス要求に対して利用可能であることを示す広告メッセージを受信することを実行するよう動作可能な論理を含む。ある実施形態では、前記印刷サーバー論理はさらに、実行されたときに、前記特定の印刷装置のためのドライバの一つをインストールすることを実行するよう動作可能な論理を含む。
【００１２】
ある実施形態では、前記印刷サーバー論理はさらに、実行されたときに、前記ドライバの一つから、前記特定の印刷装置の一つまたは複数の機能を同定する印刷機能データを取得することを実行するよう動作可能な論理を含む。ある実施形態では、前記印刷サーバー論理はさらに、実行されたときに、前記特定の印刷装置から、前記特定の印刷装置の印刷機能を示す印刷機能データを取得することを実行するよう動作可能な論理を含む。
【００１３】
ある実施形態では、前記パラメータは、前記印刷装置の一つの、前記クライアントに対する位置か、前記印刷装置の一つの、一つまたは複数のセキュリティ特徴かのうちの少なくとも一方を含む。
【００１４】
ある実施形態では、前記印刷サーバー論理はさらに、実行されたときに、利用可能であり、前記パラメータを満たす前記印刷装置を同定する情報を含む利用可能性待ち行列（availability  queue）を生成および保存し、ある印刷ジョブが前記特定の印刷装置での印刷に失敗したことを示すエラー・メッセージを前記特定の印刷装置から受信するのに応答して前記特定の印刷装置を同定する情報を除去することを実行するよう動作可能な論理を含む。ある実施形態では、前記利用可能性待ち行列は、該待ち行列中の項目が、前記利用可能な印刷装置がどのくらいよく前記パラメータまたはクライアント要求を満たすかによって順序付けられた印刷装置を表すよう、整列されてもよい。
【００１５】
ある実施形態では、前記印刷サーバー論理はさらに、実行されたときに、前記エラー・メッセージを受信するのに応答して前記利用可能性待ち行列から第二の印刷装置を選択し、前記第二の印刷装置と互換な前記プリンタ・ドライバの一つを使って前記印刷データを変換し、該変換された印刷データを前記第二の印刷装置に送る、ことを実行するよう動作可能な論理を含む。
【００１６】
（例示的なネットワーク・アーキテクチャ）
図１は、例示的なネットワーク・アーキテクチャおよび印刷サーバーの構成要素を示すブロック図である。例示的なネットワーク・アーキテクチャ１００では、クライアント１０２は通信上、印刷サーバー１０４にネットワーク１０５を介して結合されている。印刷装置１１２Ａ、１１２Ｂ、１１２Ｃも通信上、印刷サーバー１０４にネットワーク１０５を介して結合されている。
【００１７】
ネットワーク１０５は、クライアント１０２と印刷サーバー１０４との間および印刷サーバーと印刷装置１１２Ａ〜Ｃとの間でのデータの交換を提供する任意の媒体または機構によって実装されうる。ネットワーク１０５の例は、限定なしに、構内ネットワーク（LAN）、広域ネットワーク（WAN）、イーサネット（登録商標）またはインターネットといったネットワーク、あるいは一つまたは複数の地上波、衛星またはワイヤレスのリンクを含む。
【００１８】
クライアント１０２は、印刷データを印刷サーバー１０４に送ることのできる任意のコンピュータ、電子装置、システム、ソフトウェアまたはプロセスでありうる。クライアント１０２だけが示されているが、印刷サーバー１０４は多くのクライアント（図示せず）にサービスしてもよい。
【００１９】
印刷装置１１２Ａ〜Ｃは、印刷データを受領して、その印刷データに反映されている一つまたは複数の文書を印刷する装置である。三つの印刷装置１１２Ａ〜Ｃだけが示されているが、ネットワーク１０５に接続された印刷装置１１２Ａ〜Ｃはいくつあってもよい。印刷装置１１２Ａ〜Ｃのそれぞれは、印刷サービス以外のサービスも提供する多機能周辺機器（MFP:  multi-functional  peripheral）であってもよい。たとえば、印刷装置１１２Ａはスキャン・サービス、ファクス・サービスおよびアーカイブ・サービスを提供してもよい。印刷装置１１２Ａ〜Ｃはレーザー・プリンタ、インクジェット・プリンタまたは他の任意の形のデータ印刷装置を含んでいてもよい。ある実施形態では、印刷装置１１２Ａ〜Ｃの一つまたは複数はHTTPサーバーおよびウェブ・サービス（Web  Services）論理モジュールをホストしている。この実施形態では、印刷装置はHTTPのGET要求を印刷サーバー１０４から受信でき、HTTPのPOST応答をもって応答できる。あるいはまた、XMLおよび／またはSOAPを使ってウェブ・サービス・メッセージが交換されることができる。
【００２０】
（印刷サーバー）
ある実施形態では、印刷サーバー１０４はクライアント・ハンドラ１０６、コア１０８およびサービス発見プロトコル（SDP:  service  discovery  protocol）・ハンドラ１１０を有している。印刷サーバー１０４は追加的な構成要素を有していてもよいし、より少ない構成要素を有していてもよい。後者の場合、クライアント・ハンドラ１０６、コア１０８およびSDPハンドラ１１０の機能性は、一つまたは複数の構成要素に組み合わされてもよい。
【００２１】
（クライアント・ハンドラ）
ある実施形態では、クライアント・ハンドラ１０６は概括的にはクライアント１０２と通信することを受け持つ。クライアント・ハンドラ１０６は一つまたは複数のポート上で、はいってくるクライアント印刷要求がないかどうか監視する。クライアント・ハンドラ１０６はクライアント１０２にデータを送りもする。そのデータは、クライアント・ハンドラ１０６がコア１０８から受信したデータを含んでいてもよい。ある実施形態では、クライアント１０２に送られるデータは、印刷サーバー１０４が接続されている各印刷装置の印刷機能を示す機能データであってもよい。クライアント１０２に送られるデータは、クライアント１０２からの印刷要求に含まれていた印刷データがある特定の印刷装置で印刷に成功したことをクライアント１０２に知らせる確認データであってもよい。クライアント・ハンドラ１０６は一つまたは複数のモジュールを含んでいてもよい。
【００２２】
（サービス発見プロトコル・ハンドラ）
ある実施形態では、サービス発見プロトコル（SDP）・ハンドラ１１０は、一つまたは複数のネットワーク・ベースのサービス発見プロトコルを使って、ネットワーク中の印刷装置１１２Ａ〜Ｃを発見する。例示的なサービス発見プロトコルは、WS-DiscoveryおよびSimple  Service  Discovery  Protocol（SSDP）である。WS-DiscoveryはJ.  Beatty  et  al.,  “Web  Services  Dynamic  Discovery（WS-Discovery）”,  April  2005に記載されている。SSDPは、Y.  Goland  et  al.,  “Simple  Service  Discovery  Protocol  /1.0  Operating  without  an  Arbiter  (SSDP)”,  IETF  Internet-Draft,  October  28,  1999に記載されている。SDPハンドラ１１０はいかなる型の発見プロトコルをいくつサポートしていてもよい。SDPハンドラ１１０は一つのモジュールを有していても、複数のモジュールを有していてもよい。
【００２３】
ある実施形態では、SDPハンドラ１１０は、印刷データを印刷サーバー１０４から印刷装置１１２Ａ〜Ｃに通信するのにそれぞれ必要とされる任意の要求されるプリンタ・ドライバ１１４Ａ〜Ｃを受信し、インストールする。プリンタ・ドライバ１１４Ａ〜Ｃのそれぞれは、印刷データを印刷装置に固有の形に変換する機構を含んでいる。さまざまな実施形態において、プリンタ・ドライバはソフトウェア、ファームウェア、ハードウェアまたは組み合わせで実装されうる。ある実施形態では、プリンタ・ドライバは、アプリケーションが、各印刷装置モデルの技術的詳細を意識することなく印刷を開始することを許容する。ある実施形態では、印刷サーバー１０４は、それぞれの印刷装置１１２Ａ〜Ｃに対応するドライバ１１４Ａ〜Ｃを受信し、インストールする。ある実施形態では、クライアント１０２は印刷装置１１２Ａ〜Ｃのためのドライバをインストールせず、ドライバは印刷サーバー１０４上にのみインストールされる。プリンタ・ドライバは、ネットワーク上のノードから自動的に取得されてもよいし、あるいはシステム管理者のようなユーザーによってインストールされてもよい。
【００２４】
このアプローチの一つの恩恵は、クライアント１０２が、ネットワークに新しいプリンタが導入されるたびに追加的なドライバを受信する必要がないということである。こうして、図１において、クライアント１０２は、印刷装置１１２Ａ〜Ｃのためのプリンタ・ドライバなしに示されている。結果として、クライアント１０２の管理（administration）は単純化され、単純化のインパクトはネットワークが何百または何千のクライアントを含むときに重要となる可能性がある。このアプローチのもう一つの恩恵は、クライアント１０２が、どのプリンタが特定の印刷ジョブの要件を満たすかを判別する必要がなく、クライアントは印刷サーバー１０４が適切な印刷装置１１２Ａ〜Ｃを決定することを許すということである。
【００２５】
プリンタ・ドライバをもたないクライアントのためのネットワーク印刷は2006年1月31日に出願された“Network  Printing  With  Driverless  Clients”という名称の米国特許出願第11/345,503号に記載されている。この全内容は、あたかもここに完全に開示されているかのように、あらゆる目的のためにここに参照によって組み込まれる。
【００２６】
プリンタ・ドライバから、SDPハンドラ１１０は、印刷装置１１２Ａ〜Ｃの機能を取得しうる。たとえば、SDPハンドラ１１０はさまざまな要求メッセージをプリンタ・ドライバに送り、関連付けられたプリンタの用紙トレイの数および型、そのプリンタの状態、カラー機能、特殊用紙扱い機能、セキュリティ機能などについての応答情報を受け取ることができる。SDPハンドラ１１０はまた、印刷装置１１２Ａ〜Ｃの機能を、印刷装置１１２Ａ〜Ｃに直接要求してもよい。ある実施形態では、SDPハンドラ１１０および印刷装置１１２Ａ〜Ｃは、ウェブ・サービスを実装し、HTTPサーバーおよびウェブ・サービス論理を含み；SDPハンドラ１１０は機能についての一つまたは複数のウェブ・サービス要求を印刷装置に送り、印刷装置は機能情報を含むウェブ・サービス応答をもって応答する。
【００２７】
ウェブ・サービス・プロトコルは、ワールド・ワイド・ウェブ・コンソーシアム（「W3C」）によって定義される。W3Cは、会員機関、フルタイムの職員および公衆が協働してワールド・ワイド・ウェブおよびインターネットの標準を開発する国際コンソーシアムである。W3Cは「ウェブ・サービス（web  service）」を、ネットワークを通じた、相互運用可能な機械対機械の対話をサポートするために設計されたソフトウェア・システムと定義している。この定義は多くの異なるシステムを包含するが、一般的な用法では、この用語はSOAPフォーマットされた拡張可能なマークアップ言語（Extensible  Markup  Language）（「XML」）のエンベロープを使い、インターフェースがウェブ・サービス記述言語（Web  Services  Description  Language）（「WSDL」）によって記述されるサービスを指す。ウェブ・サービスは、デバイスおよびアプリケーションが、人間が一つまたは複数のネットワークを通じてそのようなデバイスおよびアプリケーションと通信するために使うのと同じプロトコル（たとえばハイパーテキスト転送プロトコル（「HTTP」））のスイートを使いながら、一切の人間の介在なしに、一つまたは複数のネットワークを通じて互いと通信することを許容する。ウェブ・サービスを定義する規格は意図的にモジュール式になっており、結果として、すべてのウェブ・サービスを定義する一つの文書はない。その代わり、若干のコアとなる規格があって、それが状況および技術の選択の要請に応じた他の規格によって補完される。最も一般的なコア規格はSOAP、WSDL、WS-SecurityおよびWS-ReliableExchangeである。異なる規格は異なるタスクおよび機能に対処する。
【００２８】
SOAPはXMLベースの拡張可能なメッセージ・エンベロープ・フォーマットで、根底にあるプロトコル（たとえばHTTPおよび単純なメール転送プロトコル（「SMTP」））へのバインド（bindings）をもつ。SOAPはどのようにメッセージがフォーマットされるべきかをXMLを使って定義する。それにより、そうしたメッセージは、それらのメッセージの受領者（デバイスおよびアプリケーション）がそれらのメッセージを理解できるような仕方でフォーマットされる。SOAPは、たとえばリモートのプロシージャ・コールを実行するために使用できる。WSDLは、ウェブ・サービス・インターフェースを、それらのインターフェースの特定のプロトコルへのバインドとともに記述できるようにする、XMLフォーマットである。WSDLは典型的にはサーバーおよびクライアント・コードを生成するために、および構成設定（configuration）のために使われる。WS-Securityは、メッセージ交換をセキュリティ保護するためにSOAPにおいてXML暗号化およびXML署名をどのように使うかを定義する。WS-ReliableExchangeは、二つのウェブ・サービス間の信頼できるメッセージングのためのプロトコルである。
【００２９】
任意的に、印刷装置１１２Ａ〜Ｃのそれぞれは電波識別（RFID:  radio  frequency  identification）タグを有し、印刷サーバー１０４はRFIDタグ読み取り器を含む。この実施形態では、印刷サーバーは、印刷装置上のタグを読み取ることによって印刷装置１１２Ａ〜Ｃの物理的な位置を決定できる。位置情報は、クライアント要求に応答して、あるいは印刷ジョブが無事完了したことを確認する一環として、クライアント１０２に報告されることができる。
【００３０】
（印刷装置の機能）
印刷装置の機能は、その印刷装置によってサポートされる任意の特徴を含みうる。そのような特徴は、これに限られないが次のものを含みうる：カラー印刷；写真印刷；両面印刷；ロック印刷（lock  printing）；セキュリティ保護された出力トレイへの送達といったセキュリティ特徴；用紙トレイ数、用紙トレイの大きさ、特殊用紙扱い機能、解像度、コントラストおよび関係する設定を含むスキャン機能；二面印刷または片面印刷のような文書スタイル；ホチキス留め、製本およびパンチのような仕上げ特徴；イメージ配向；ソース用紙種別；出力トレイ位置；グラフィック・モード；余白シフト；タンデム印刷；トナー節約モード；タブまたはオーバーレイに印刷するまたは印刷しない機能；トランスペアレンシー挿入；ジョブ・ハンドリング特徴；透かし印刷；および他の特徴。
【００３１】
各印刷装置１１２Ａ〜Ｃの機能は、印刷サーバー１０４のローカル記憶装置に記憶されていてもよいし、あるいは印刷サーバー１０４によってアクセス可能なリモート記憶装置上に記憶されていてもよい。クライアント１０２のユーザーが印刷を望むとき、クライアント１０２は印刷サーバー１０４に機能要求を送る。該要求はクライアント・ハンドラ１０６によって扱われうる。要求はコア１０８に回送され、コア１０８は最新の機能を記憶装置から取得する。
【００３２】
（コア）
コア１０８は、印刷サーバー１０４のコア論理を含む。たとえば、コア１０８は、印刷サーバー１０４上にインストールされている任意のプリンタ・ドライバから機能を取得する。ある実施形態では、新しい印刷装置が発見され、その装置のプリンタ・ドライバがインストールされるとき、コア１０８は機能のリストを更新する。コア１０８は一つのモジュールを含んでいても、複数のモジュールを含んでいてもよい。
【００３３】
コア１０８はまた、クライアント要求において指定されているパラメータに基づいて、該パラメータに最もよく一致する機能をもつ印刷装置を検索する。最良一致を決定することは、いくつかの仕方で実行されうる。ある実施形態では、コア１０８は、ある具体的な印刷装置が利用可能であるかどうかを決定する。印刷装置が利用可能であるかどうかを決定するには数多くの方法がある。一つの方法は、コア１０８が、ピング・パケットを印刷装置に送ることである。ポジティブな応答が印刷装置が利用可能であることを示す。ネガティブな応答（または応答なし）は、印刷装置が利用不能であることを示す。印刷装置が利用可能でない場合、クライアント指定のパラメータと印刷装置の機能との間の比較は必要でない。印刷装置が利用可能であるかどうかを判定するもう一つの方法は、印刷装置のウェブ・サービス・モジュール内に維持されているプリンタ・デバイス・プロファイル（Printer  Device  Profile）が印刷装置の利用可能性通知を、印刷装置から該通知を申し込んでいるクライアントに、提供することである。
【００３４】
ある実施形態では、コア１０８はクライアント指定のパラメータを、利用可能な印刷装置の機能と比較する。クライアント指定のパラメータとは、クライアントからの印刷要求において指定されている要求される機能である。利用可能な印刷装置の機能がクライアント指定のパラメータに一致する場合、利用可能な印刷装置は印刷ジョブを実行する候補となる。クライアント要求は、一つまたは複数のあるパラメータについて、それほどで重要でないパラメータよりも優先する重要性レベルを指定してもよい。
【００３５】
ある実施形態では、すべての可能な候補印刷装置が識別されたのち、コア１０８は、ユーザー指定のパラメータに最もよく一致する機能をもつ一つの候補印刷装置を選択する。任意的に、コア１０８は、要求者（たとえばクライアント１０２）にとって物理的に最も近い候補印刷装置を選択するか、より大きな重みをそのような選択に与えるかする。
【００３６】
（パラメータ）
ユーザーは、たとえば重要度または選好度に基づいて、いくつかの方法でパラメータを指定しうる。たとえば、カラー印刷のようないくつかのパラメータは必須である場合がある。他のパラメータはきわめて望ましいが必須ではないこともありうる。こうして、クライアントの要求におけるパラメータは、印刷ジョブを完了するために常に必須、不可欠または必要なわけではない。たとえば、各パラメータは、「３」が必須を示し、「２」がきわめて望ましいを示し、「１」がほとんど重要でないことを示す３ポイントのスケールで、選好または優先度の値に関連付けられてもよい。二つの印刷装置があって、第一の印刷装置がクライアントが「１」に関連付けた機能を含み、第二の印刷装置がその機能を含まないことを除いて両者が同一である場合、第一の印刷装置が第二の装置よりもよりよい一致として選択される。
【００３７】
クライアントは、種々の手段を使ってパラメータを指定できる。たとえば、クライアントは、GET  HTTP要求を印刷サーバー１０４に送ってもよい。印刷サーバー１０４は、グラフィカル・ユーザー・インターフェース（GUI）においてウェブ・ベースのフォームを含むHTML文書をクライアントに返す。GUIウェブ・フォームは、ユーザーがさまざまなパラメータを指定できるようにする多くのフィールドおよび／またはドロップダウン・メニューを含んでいてもよい。「提出」ボタンを選択すると、クライアントは、埋められたウェブ・フォームを印刷サーバー１０４に送る。その埋められたウェブ・フォームから、印刷サーバー１０４は、利用可能な印刷装置の機能が満たすべきパラメータを決定する。
【００３８】
代替的に、印刷サーバー１０４は、一つまたは複数のクライアントのためにデフォルトのパラメータのセットを関連付けてもよい。たとえば、いくつかのクライアントは、同じパラメータを繰り返し指定する必要なしに、印刷ジョブが、特定のセットの機能をもつ印刷装置によって処理されることを要求することがある。こうして、各ユーザーおよび／またはクライアントについてパラメータのセットが保存されてもよく、クライアント要求は保存されたパラメータ・セットのインデックス値または名前を指定できる。そのインデックス値または名前を印刷サーバーが取得し、印刷ジョブを処理するのに使うのである。
【００３９】
印刷装置１１２Ａ〜Ｃのどれの機能もすべてのパラメータは満たさない場合、コア１０８は、クライアント１０２に一致する印刷装置がないことを知らせてもよい。コア１０８はどのパラメータを除去または変更して利用可能な印刷装置の少なくとも一つが要求を満たすようにできるかを示してもよい。さまざまな実施形態において、コア１０８は、すべてのパラメータを同定してもよいし、除去されるべきパラメータを同定してもよいし、あるいは最も近い一致する印刷装置とその印刷装置が欠いている機能とを同定してもよい。他の応答動作が実行されてもよい。
【００４０】
ある実施形態では、クライアント要求に最もよく一致する印刷装置を決定する際、コア１０８は、利用可能な印刷装置のクライアント１０２に対する位置を考慮に入れてもよい。全地球測位システム（GPS）または電波識別（RFID）がクライアント１０２および印刷装置１１２Ａ〜Ｃについての位置情報を提供するために使用されてもよい。ある機械のための位置情報はさらに、その機械がどのフロアに位置しているかを示してもよい。
【００４１】
したがって、ある実施形態では、コア１０８は、以下のパラメータのうち任意のものを考慮に入れることによって、印刷装置のクライアントの要件への最良一致を検索する。パラメータは、クライアント要求において指定されるユーザーの選好に基づいて重み付けられてもよい。
１．その印刷装置が利用可能である。
２．その印刷装置の機能がユーザーの要件に一致するか、最も近い一致である。
３．その印刷装置がユーザーに最も近い。
４．その印刷装置がユーザーが指定したセキュリティ要件を満たす。
【００４２】
（例示的な印刷・サーバー・プロセス）
図２は、クライアント印刷要求にサービスすることを例示するフローチャートである。明確な例を例示する目的のため、図２はここでは図１に示された構造を参照して記述されるが、図２に示される広いアプローチは、図１のコンテキストに限定されるものではなく、図２のアプローチは他のネットワーク構成および他の物理的もしくは論理的構造とともに使用されてもよい。
【００４３】
ステップ２０２では、クライアント・ハンドラ１０６がクライアント１０２から機能要求を受信する。応答して、クライアント・ハンドラはどの機能がクライアント・ハンドラに知られているまたはクライアント・ハンドラに登録されている印刷装置に関連付けられているかを決定する。クライアント・ハンドラは、そのような印刷装置の機能を記述する、前記機能要求への応答を形成する。ステップ２０４において、クライアント・ハンドラ１０６は、一つまたは複数の印刷装置１１２Ａ〜Ｃの機能をもった応答をクライアント１０２に送る。
【００４４】
ステップ２０６において、クライアント・ハンドラ１０６は、クライアント１０２から印刷データおよびパラメータを受信する。印刷データは、ユーザー指定のパラメータを示すウェブ・フォームへの添付物でもよい。印刷データおよびパラメータは、関連付けられたパラメータまたは機能の重要性を示す一つまたは複数の重み値を含んでいてもよい。それにより該重み値に従ってパラメータが重み付けされたときに該パラメータを最もよく満たす特定の印刷装置が決定できる。重み値はまた、ステップ２０２の機能要求内で受領されてもよく、ステップ２０２の要求およびステップ２０６の文書および印刷要件は同時に同じ要求中で受領されてもよい。
【００４５】
クライアント・ハンドラ１０６は印刷データおよびパラメータをコア１０８に渡す。ステップ２０８〜２１４は、同定された各印刷装置について実行される。
【００４６】
ステップ２０８では、コア１０８は第一の印刷装置を同定する。ステップ２１０では、コア１０８は、第一の印刷装置が利用可能であり（たとえばオンライン）かつ前記パラメータを満たすかどうかを決定する。第一の印刷装置が利用不能であれば、プロセスはステップ２１０に進んで、コア１０８は次の同定された印刷装置を解析する。第一の印刷装置が利用可能で前記パラメータを満たす場合、プロセスはステップ２１２に進む。
【００４７】
ステップ２１２では、コア１０８は、前記パラメータを（少なくともほとんど）満たす機能をもつ利用可能な印刷装置を同定する利用可能性待ち行列に、ステップ２１０で同定された印刷装置への参照を加える。
【００４８】
ステップ２１４では、コア１０８は、解析すべき印刷装置がまだあるかどうかを判別する。解析すべき印刷装置がまだある場合、プロセスはステップ２１０に進む。そうでない場合、プロセスはステップ２１６に進む。
【００４９】
ステップ２１６では、利用可能性待ち行列において同定されている複数の印刷装置がある場合、コア１０８は最良一致に基づいて利用可能性待ち行列を配列する。利用可能性待ち行列を配列することは、クライアント要求中で受領されたパラメータ値、重み値またはその他の因子に基づくソート動作または他の再配列を含みうる。
【００５０】
ステップ２１８では、コア１０８は、クライアント要求に最もよく一致する印刷装置を選択する。たとえば、二つの印刷装置１１２Ａ〜Ｃが機能性において同一であるが、第一の印刷装置が第二の印刷装置よりユーザーに物理的により近い場合、第一の印刷装置が最良一致として選択される。
【００５１】
関連する実施形態では、コア１０８がすべてのパラメータを満たす機能をもつ最初の利用可能な印刷装置を識別するとすぐに、コア１０８は、利用可能性待ち行列を構築することなく、印刷ジョブをその印刷装置に送る。こうして、この実施形態では、プロセスはステップ２０８から直接ステップ２２０へと進む。ステップ２２０では、コア１０８は印刷ジョブを最良一致印刷装置に送る。印刷ジョブは、クライアント１０２が送った印刷データを含んでいてもよい。ただし、印刷データは、選択された印刷装置のためのプリンタ・ドライバを使って選択された印刷装置によって認識可能な変換された形である。
【００５２】
ステップ２２２では、コア１０８が、印刷ジョブが成功したかどうかを判定する。たとえば、紙づまり、用紙切れ、インクまたはトナー切れから印刷ジョブが不成功に終わったことがありうるし、あるいは選択された印刷装置が印刷ジョブの完了前にオフラインになったこともありうる。
【００５３】
コア１０８は、印刷ジョブが不成功だったことを、数多くの方法で判定できる。たとえば、最良一致印刷装置が印刷サーバー１０４に、印刷ジョブが完了されなかったことを通知してもよい。もう一つの例としては、コア１０８は、選択された印刷装置からのいかなる通信も受信することなく、印刷ジョブが完了されなかったことを、時間切れに基づいて判定する。印刷ジョブが成功したかどうかを判定するもう一つの方法は、印刷装置のウェブ・サービス・モジュール内に維持されているプリンタ・デバイス・プロファイルがジョブ終了状態通知を、印刷装置から該通知を申し込んでいるクライアントに、提供することである。
【００５４】
印刷ジョブが不成功だった場合、プロセスはステップ２２４に進む。ステップ２２４では、コア１０８は選択された印刷装置を、利用可能性待ち行列から除去し、プロセスはステップ２２６に進む。印刷ジョブが成功だった場合、プロセスはステップ２３０に進む。
【００５５】
ステップ２２６では、コア１０８は、利用可能性待ち行列が空かどうかを判定する。空でなければ、プロセスはステップ２１８に進む。利用可能性待ち行列が空であれば、プロセスはステップ２２８に進む。
【００５６】
ステップ２２８では、クライアント・ハンドラ１０６は、印刷ジョブが不成功だったことをクライアント１０２に知らせるエラー状態メッセージをクライアント１０２に送る。任意的に、クライアント・ハンドラ１０６は、パラメータに基づいてどの印刷装置が考慮から排除されたか、および／またはそのような印刷装置が考慮されるためにはどのパラメータが「緩和」または除去されるべきかを示すデータを送ってもよい。このようにして、クライアント１０２のユーザーは、印刷ジョブを、クライアントの元の選好を完全には満たさない異なる印刷装置に提出することを決定しうる。より満足度の低い印刷装置の例は、クライアント要求に依存して、これに限られないが、よりセキュリティの低い印刷装置または異なるフロアに位置する印刷装置を含む。
【００５７】
ステップ２３０では、クライアント・ハンドラ１０６は、印刷ジョブの状態および印刷ジョブを完了した印刷装置の位置を提供するメッセージをクライアント１０２に送る。結果として、クライアントに関連付けられているユーザーは、一つまたは複数の印刷文書をどこで取得するかを判別できる。
【００５８】
図３は、クライアント印刷要求にサービスする印刷サーバーを示すシーケンス図である。明確な例を例示する目的のため、図３はここでは図１に示された構造を参照して記述されるが、図３に表される広いアプローチは、図１のコンテキストに限定されるものではなく、図３のアプローチは他のネットワーク構成および他の物理的もしくは論理的構造とともに使用されてもよい。
【００５９】
ステップ１および２では、印刷装置１１２Ａ〜Ｂはそれぞれ印刷サーバー１０４に広告メッセージを送る。広告メッセージは、同じネットワーク上のすべての装置に送られるマルチキャストまたはブロードキャスト・メッセージを含んでいてもよい。広告は、送り側装置が、該装置のそれぞれのサービスに対する要求を処理するために利用可能であることを示す「ハロー」メッセージでもよい。たとえば、印刷装置１１２Ａは、初めてそのネットワークに接続された新しい装置であってもよい。もう一つの例として、印刷装置１１２Ｂは、そのネットワークに以前接続されたが、修理またはメンテナンスのためにオフラインにされた装置であってもよい。「ハロー」メッセージは、ウェブ・サービス・フォー・デバイセズ（Web  Services  for  Devices）のための仕様において定義されているメッセージに基づいていてもよい。
【００６０】
広告は、サービス発見プロトコルのような発見プロトコルに準拠していてもよい。ステップ１および２への代替として、印刷サーバー１０４は、発見プロトコルのもとに一つまたは複数のメッセージを発して、印刷装置からの、その印刷装置を同定し、その印刷装置の機能を提供する応答を待つ。
【００６１】
さらにもう一つの代替では、印刷サーバー１０４のサービス発見プロトコル・ハンドラ１１０は、印刷装置１１２Ａ〜Ｃのためのプリンタ・ドライバ１１４Ａ〜Ｃをインストールするか、あるいはシステム管理者に該ドライバのインストールを促すかする。サービス発見プロトコル・ハンドラ１１０は次いでプリンタ機能情報をプリンタ・ドライバから直接、または印刷装置１１２Ａ〜Ｃから直接得る。
【００６２】
ステップ３では、印刷サーバー１０４は「プリンタ機能取得」メッセージを印刷装置１１２Ａに送る。そのようなメッセージは印刷装置１１２Ｂには送られなかったので、印刷サーバー１０４はすでに印刷装置１１２Ｂのためのプリンタ・ドライバをインストールしているのかもしれない。インストールされたドライバから、印刷サーバー１０４は印刷装置１１２Ｂの機能を「知る」。印刷装置１１２Ａは、印刷装置１１２Ａの機能を記述する応答メッセージを提供することによって、「プリンタ機能取得」メッセージに応答する。ウェブ・サービス・メッセージが使われてもよいし、あるいはHTTP  GET-POSTシーケンスが使われてもよい。
【００６３】
結果として、ステップ１ないし３を通じて、印刷サーバー１０４は、ネットワーク中で発見されるか、広告メッセージを通じて位置特定されるすべてのプリンタについての機能のリストを構築する。新しいプリンタが見出され、そのドライバがインストールされるとき、新しいプリンタの機能がリストに更新される。こうして、ステップ１ないし３は任意の時点で実行されてもよく、図３および図２の他のステップに関して非同期的に実行されてもよい。しかしながら、新しいプリンタが追加されるときに、新しいプリンタ・ドライバでクライアント１０２を継続的に更新する必要はない。
【００６４】
ステップ４では、クライアント１０２は印刷サーバー１０４に「機能リスト取得」メッセージを送る。そのようなメッセージは、印刷サーバー１０４が通信できる各印刷装置の機能を要求する。ステップ５では、印刷サーバー１０４が印刷装置１１２Ａおよび１１２
Ｂの機能をクライアント１０２に送る。ステップ６では、クライアント１０２が電子文書を印刷サーバー１０４に、印刷チケットとともに送る。ウェブ・サービスを使うある実施形態では、印刷チケットは、特定の印刷ジョブの特性を記述する電子文書である。印刷チケットは、印刷チケット・エレメントを定義するスキーマに準拠するXML文書を含んでいてもよい。
【００６５】
ステップ７では、印刷サーバー１０４は、印刷装置１１２Ａの機能が印刷要求において示されたパラメータに最もよく一致することを判定する。したがって、印刷サーバー１０４は、電子文書の変換されたバージョンを、印刷装置１１２Ａに送る。電子文書の変換されたバージョンは、印刷装置１１２Ａのために印刷サーバー１０４中にインストールされているプリンタ・ドライバを使って用意される。ステップ８では、印刷ジョブが失敗した場合、印刷装置１１２Ａは印刷失敗メッセージを印刷サーバー１０４に送る。
【００６６】
ステップ９では、印刷サーバー１０４は、電子文書を印刷する次善の一致として、印刷装置１１２Ｂを選択する。したがって、印刷サーバー１０４は、印刷装置１１２Ｂに関連付けられたプリンタ・ドライバを使って、電子文書の変換されたバージョンを用意し、印刷装置１１２Ｂに送る。ステップ１０では、印刷装置１１２Ｂは、電子文書の印刷が成功したことを印刷サーバー１０４に通知する。この通知に応答して、ステップ１１において、印刷サーバー１０４はクライアント１０２に、印刷装置１１２Ｂが電子文書の印刷に成功したことを通知する。ステップ１１の通知は、印刷装置１１２Ｂの名前および／または印刷装置１１２Ｂが物理的にどこに位置しているかを示す位置特定用情報を含んでいてもよい。
【００６７】
本発明のいくつかの実施形態を通じて数多くの恩恵が実現されうる。たとえば、ユーザーまたはクライアント・コンピュータは、新たに追加された印刷装置を追跡したり、各印刷装置がどんな機能を有するかを知ったり、および／または何らかのプリンタ・ドライバをインストールしたりすることを要求されなくてもよい。ユーザーまたはクライアントが知る必要があるのは、どのように印刷サーバーにアクセスするかだけである。その後、印刷サーバーは、実際の印刷以外のたいていの印刷活動を完遂し、結果をユーザーまたはクライアントに通知する。
【００６８】
（実装機構――ハードウェアの概観）
ここに記載されたアプローチは、いかなる型のコンピューティング・プラットフォームまたはアーキテクチャで実装されてもよい。図４は、本発明のある実施形態が実装されうるコンピュータ・システム４００を示すブロック図である。コンピュータ・システム４００はバス４０２または情報を通信するための他の通信機構と、情報を処理するための、バス４０２に結合されたプロセッサ４０４とを含む。コンピュータ・システム４００はまた、ランダム・アクセス・メモリ（RAM）または他の動的記憶装置のような、バス４０２に結合された、情報およびプロセッサ４０４によって実行されるべき命令を記憶するためのメイン・メモリ４０６をも含む。メイン・メモリ４０６はまた、プロセッサ４０４によって実行されるべき命令の実行の間に一時変数または他の中間情報を記憶するためにも使用されてもよい。コンピュータ・システム４００はさらに、バス４０２に結合された、プロセッサ４０４のための静的な情報および命令を記憶するための読み出し専用メモリ（ROM）４０８または他の静的記憶装置を含む。磁気ディスクまたは光ディスクのような記憶装置４１０が、情報および命令を記憶するために提供され、バス４０２に結合される。
【００６９】
コンピュータ・システム４００は、コンピュータ・ユーザーに対して情報を表示するために、バス４０２を介して、陰極線管（CRT）のようなディスプレイ４１２に結合されていてもよい。プロセッサ４０４に情報およびコマンド選択を通信するために、英数字およびその他のキーを含む入力装置４１４がバス４０２に結合されている。もう一つの型のユーザー入力装置は、プロセッサ４０４に方向情報およびコマンド選択を通信するための、およびディスプレイ４１２上でのカーソルの動きを制御するための、マウス、トラックボールまたはカーソル方向キーのようなカーソル・コントロール４１６である。この入力装置は典型的には、当該装置が平面内での位置を指定することを許容する、二つの軸、第一の軸（たとえばx）および第二の軸（たとえばy）における二つの自由度を有する。
【００７０】
本発明は、ここに記載される諸技法を実装するためのコンピュータ・システム４００の使用に関係する。本発明のある実施形態によれば、それらの技法は、プロセッサ４０４がメイン・メモリ４０６に含まれる一つまたは複数の命令の一つまたは複数のシーケンスを実行するのに応答して、コンピュータ・システム４００によって実行される。そのような命令は、記憶装置４１０のような別の機械可読媒体からメイン・メモリ４０６に読み込まれてもよい。メイン・メモリ４０６に含まれる命令のシーケンスの実行は、プロセッサ４０４に、ここに記載されるプロセス・ステップを実行させる。代替的な諸実施形態では、本発明を実装するために、ソフトウェア命令の代わりに、あるいはソフトウェア命令と組み合わせて、結線された回路が使われてもよい。よって、本発明の実施形態は、ハードウェア回路およびソフトウェアのいかなる特定の組み合わせにも限定されない。
【００７１】
ここで使われている用語「機械可読媒体」は、機械に特定の仕方で動作させるデータを提供することに参加する任意の媒体を指す。コンピュータ・システム４００を使って実装されるある実施形態では、たとえばプロセッサ４０４に実行のための命令を提供することに、さまざまな機械可読媒体が関わる。そのような媒体は、これに限られないが、不揮発性媒体、揮発性媒体および伝送媒体を含む多くの形を取ることができる。不揮発性媒体はたとえば、記憶装置４１０のような光ディスクまたは磁気ディスクを含む。揮発性媒体は、メイン・メモリ４０６のような動的メモリを含む。伝送媒体は、同軸ケーブル、銅線および光ファイバーを含み、バス４０２をなすワイヤを含む。伝送媒体は、電波および赤外データ通信の際に発生されるような、音響波または光波の形を取ることもできる。
【００７２】
機械可読媒体の一般的な形はたとえば、フロッピー(登録商標)・ディスク、フレキシブル・ディスク、ハードディスク、磁気テープもしくは他の任意の磁気媒体、CD-ROM、他の任意の光学式媒体、パンチカード、紙テープ、穿孔パターンをもつ他の任意の物理媒体、RAM、PROMおよびEPROM、フラッシュEPROM、他の任意のメモリ・チップもしくはカートリッジ、のちに述べる搬送波、あるいはコンピュータが読むことのできる他の任意の媒体を含む。
【００７３】
機械可読媒体のさまざまな形は、実行のための一つまたは複数の命令の一つまたは複数のシーケンスをプロセッサ４０４に搬送することに関わってもよい。たとえば、命令は初期にはリモート・コンピュータの磁気ディスク上で担持されていてもよい。リモート・コンピュータは該命令を、該リモート・コンピュータの動的メモリにロードし、該命令をモデムを使って電話線を通じて送信できる。コンピュータ・システム４００にローカルなモデムは電話線上でデータを受信し、赤外線送信器を使って該データを赤外信号に変換できる。赤外線信号で搬送されたデータを赤外線検出器が検出でき、適切な回路が該データをバス４０２に載せることができる。バス４０２は該データをメイン・メモリ４０６に伝え、メイン・メモリ４０６からプロセッサ４０４が前記命令を取得し、実行する。メイン・メモリ４０６が受領した命令は任意的に、プロセッサ４０４による実行の前でも後でも、記憶装置４１０に記憶されてもよい。
【００７４】
コンピュータ・システム４００はまた、バス４０２に結合された通信インターフェース４１８をも含んでいる。通信インターフェース４１８は、ローカル・ネットワーク４２２に接続されているネットワーク・リンク４２０に結合する双方向データ通信を提供する。たとえば、通信インターフェース４１８は、対応する型の電話線へのデータ通信接続を提供するための統合サービス・デジタル・ネットワーク（ISDN）カードまたはモデムであってもよい。もう一つの例として、通信インターフェース４１８は互換LANへのデータ通信接続を提供するための構内ネットワーク（LAN）カードであってもよい。無線リンクが実装されてもよい。そのようないかなる実装においても、通信インターフェース４１８は、さまざまな種類の情報を表すデジタル・データ・ストリームを搬送する電気的、電磁的または光学的信号を送信および受信する。
【００７５】
ネットワーク・リンク４２０は典型的には、一つまたは複数のネットワークを通じた他のデータ装置へのデータ通信を提供する。たとえば、ネットワーク・リンク４２０は、ローカル・ネットワーク４２２から、ホスト・コンピュータ４２４への、あるいはインターネット・サービス・プロバイダー（ISP）４２６によって運用されるデータ装置への接続を提供してもよい。ISP４２６のほうは、現在一般に「インターネット」４２８と称される世界規模のパケット・データ通信ネットワークを通じてデータ通信サービスを提供する。ローカル・ネットワーク４２２およびインターネット４２８はいずれも、デジタル・データ・ストリームを搬送する電気的、電磁的または光学的信号を使う。コンピュータ・システム４００との間でデジタル・データを搬送する、さまざまなネットワークを通じた信号およびネットワーク・リンク上のおよび通信インターフェース４１８を通じた信号は、情報を運ぶ搬送波の例示的な形である。
【００７６】
コンピュータ・システム４００は、ネットワーク（単数または複数）、ネットワーク・リンク４２０および通信インターフェース４１８を通じてメッセージを送信し、プログラム・コードを含むデータを受信することができる。インターネットの例では、サーバー４３０はインターネット４２８、ISP４２６、ローカル・ネットワーク４２２および通信インターフェース４１８を通じてアプリケーション・プログラムのための要求されたコードを送信できる。
【００７７】
プロセッサ４０４は受信したコードを、受信する際に実行してもよいし、および／またはのちの実行のために記憶装置４１０もしくは他の不揮発性記憶装置に記憶してもよい。このようにして、コンピュータ・システム４００は搬送波の形でアプリケーション・コードを取得できる。
【００７８】
以上の明細書では、本発明の実施形態について数多くの個別的詳細を参照して記載してきたが、そうした個別的詳細は実装によって変わりうるものである。よって、何が本発明であり、何が本発明であると出願人によって意図されているかについての唯一にして排他的な指示物は、本願から生じる特許請求の範囲のセットである。請求項に含まれる用語について本稿で明示的に述べられている定義があればそれは請求項で使われるそのような用語の意味を支配する。よって、請求項において明示的に記載されていないいかなる限定、要素、属性、特徴、利点または性質も、特許請求の範囲をいかなる仕方であれ限定すべきではない。このように、明細書および図面は、制限する意味ではなく例示的な意味に解されるべきものである。
【図面の簡単な説明】
【００７９】
【図１】印刷サーバーの例示的なネットワーク・アーキテクチャおよびコンポーネントを示す図である。
【図２】印刷サーバーがクライアント印刷要求にサービスするフローチャートである。
【図３】印刷サーバーがクライアント印刷要求にサービスするシーケンス図である。
【図４】例示的な印刷サーバー・コンピュータ・システムを示す図である。
【符号の説明】
【００８０】
１００  ネットワーク・アーキテクチャ
１０２  クライアント
１０４  印刷サーバー
１０５  ネットワーク
１０６  クライアント・ハンドラ
１０８  コア
１１０  サービス発見プロトコル・ハンドラ
１１２  印刷装置
１１４  プリンタ・ドライバ
２０２  クライアントからGETPRINT機能要求を受信
２０４  印刷機能をクライアントに送る
２０６  クライアントから文書および印刷要件を受信
２０８  プリンタ要求に基づいて、既知の各プリンタについて
２１０  そのプリンタが利用可能で、かつ要件を満たすか？
２１２  利用可能性待ち行列に追加
２１４  もっと既知のプリンタがあるか？
２１６  最良一致に従って利用可能性待ち行列をソート
２１８  利用可能性待ち行列から最良一致したものを選択
２２０  最良一致したものに印刷ジョブを送る
２２２  印刷ジョブ成功？
２２４  そのプリンタを待ち行列から除去
２２６  利用可能性待ち行列が空か？
２２８  エラー状態をクライアントに送る
２３０  プリンタの状態および位置をクライアントに送る
４００  コンピュータ・システム
４０２  バス
４０４  プロセッサ
４０６  メイン・メモリ
４０８  ROM
４１０  記憶装置
４１２  ディスプレイ
４１４  入力装置
４１６  カーソル・コントロール
４１８  通信インターフェース
４２０  ネットワーク・リンク
４２２  ローカル・ネットワーク
４２４  ホスト
４２６  ISP
４２８  インターネット
４３０  サーバー
【図１】
0005114318.tif 000002
【図２】
0005114318.tif 000003
【図３】
0005114318.tif 000004
【図４】
0005114318.tif 000005