(57)【要約】      （修正有）【課題】方法と装置は、プリントデバイスにプリントするために提供される。【解決手段】クライアント・デバイスで実行されるプリントドライバ２１６は、プリントデバイスから、現在プリントデバイスでサポートされている複数の機能とオプションとを特定するプリントデバイス能力データを受信し、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメントの第１のバージョンから第２のバージョンを生成する。ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメントは、ＸＭＬで記述され、特定のプリント機能、およびオプションを示す。ユーザインターフェースは、この第２のバージョンに基づいて生成されてもよい。ユーザの選択の結果として、特定のプリント機能のオプションが選ばれたことを示すプリントチケットドキュメントが生成されてもよい。プリントチケットドキュメントに基づいて、プリントドライバは、プリントジョブ・チケットを生成する。【選択図】図５
2011034562.tif 000002
【特許請求の範囲】
【請求項１】
プリントデバイスにプリントするコンピュータ実行方法であって、
プリントドライバが、クライアント・デバイスにおいて実行され、プリントデバイスから、現在前記プリントデバイスでサポートされる複数の機能とオプションとを特定するプリントデバイス能力データを受信するステップと；
前記プリントデバイス能力データの受信に応答して、前記プリントドライバが、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメントの第１のバージョンとは異なる前記ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメントの第２のバージョンを生成するステップと；
を有し
前記ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメントの前記第１のバージョンは、以前に前記プリントデバイスでサポートされた第１の複数の機能を示し；
前記ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメントの前記第２のバージョンは、前記プリントデバイスで現在サポートされる第２の複数の機能を示し；
前記第１の複数の機能は、前記第２の複数の機能とは異なり；
前記ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメントの前記第１および第２のバージョンのデータは、ＸＭＬで示される、コンピュータ実行方法。
【請求項２】
前記ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメントの前記第２のバージョンに基づいてユーザインターフェースを生成するステップと；
一つ以上のユーザ選択に応答して、前記第２の複数の機能の、機能のセットの各々の機能に対してオプションが選ばれたことを示す特定のドキュメントを生成するステップと；
を更に有する請求項１記載のコンピュータ実行方法。
【請求項３】
プリントドライバが、少なくとも前記特定のドキュメントに基づいてプリントジョブ・チケットを生成し、かつプリントデータおよび前記プリントジョブ・チケットが前記プリントデバイスに送信されるようにするステップ；または
少なくとも前記特定のドキュメントに基づいて第２のユーザインターフェースを生成するステップ；
の一つ以上を有する請求項２記載のコンピュータ実行方法。
【請求項４】
前記ユーザインターフェースを生成するステップが：
前記プリントドライバが、前記ユーザインターフェースを生成するステップ；または
アプリケーションプログラムが、前記ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメントを前記プリントドライバにリクエストし、かつ前記プリントドライバから前記ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメントの前記第２のバージョンを受け取った後に、前記ユーザインターフェースを生成するステップ；
のうち少なくとも一つを含む、請求項２記載のコンピュータ実行方法。
【請求項５】
前記プリントデバイス能力データを受信するステップは：
前記プリントドライバが、前記プリントデバイスから、前記プリントデバイスに関する変更を示し、ウエブ・サービス・イベント・仕様に準拠する、イベント通知メッセージを受信するステップ；および
前記イベント通知メッセージを受信するステップに応答して、前記プリントドライバが、前記プリントデバイスに、プリントデバイスでサポートされた、一つ以上のプリント機能をリクエストするリクエストメッセージを送信するステップ；
に応答して起動される、請求項１記載のコンピュータ実行方法。
【請求項６】
前記クライアント・デバイスに前記プリントドライバをインストールするステップであって、前記プリントドライバをインストールするステップは、前記プリントドライバによって前記プリントデバイス能力データを受信することを生じさせるところのステップ；
を有する請求項１記載のコンピュータ実行方法。
【請求項７】
前記第２の複数の機能は、前記第１の複数の機能に含まれない第２の特定の機能を含む、  請求項１記載のコンピュータ実行方法。
【請求項８】
請求項１ないし７のいずれか一項に記載の方法を、コンピュータに実行させるプログラム。
【請求項９】
プリントデバイスにプリントする装置であって、
プリントドライバが、クライアント・デバイスにおいて実行され、かつプリントデバイスから、現在前記プリントデバイスでサポートされる複数の機能とオプションとを特定するプリントデバイス能力データを受信し；
前記プリントデバイス能力データの受信に応答して、前記プリントドライバが、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメントの第１のバージョンとは異なる前記ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメントの第２のバージョンを生成し；
前記ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメントの前記第１のバージョンは、以前に前記プリントデバイスでサポートされた第１の複数の機能を示し；
前記ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメントの前記第２のバージョンは、前記プリントデバイスで現在サポートされる第２の複数の機能を示し；
前記第１の複数の機能は、前記第２の複数の機能とは異なり；
前記ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメントの前記第１および第２のバージョンのデータは、ＸＭＬで示される、装置。
【請求項１０】
請求項９記載の装置であって、
前記ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメントの前記第２のバージョンに基づいてユーザインターフェースを生成し；
一つ以上のユーザ選択に応答して、前記第２の複数の機能の、機能のセットの各々の機能に対してオプションが選ばれたことを示す特定のドキュメントを生成する、装置。
【請求項１１】
請求項１０の装置であって、
プリントドライバが、少なくとも前記特定のドキュメントに基づいてプリントジョブ・チケットを生成し、かつプリントデータおよび前記プリントジョブ・チケットが前記プリントデバイスに送信されるようにし；または
少なくとも前記特定のドキュメントに基づいて第２のユーザインターフェースを生成する、装置。
【請求項１２】
請求項１０記載の装置であって、
前記ユーザインターフェースを生成する際に：
前記プリントドライバが、前記ユーザインターフェースを生成する処理；または
アプリケーションプログラムが、前記ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメントを前記プリントドライバにリクエストし、かつ前記プリントドライバから前記ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメントの前記第２のバージョンを受け取った後に、前記ユーザインターフェースを生成する処理；
のうち少なくとも一つの処理を行う、装置。
【請求項１３】
請求項９記載の装置であって、
前記プリントデバイス能力データを受信する処理は：
前記プリントドライバが、前記プリントデバイスから、前記プリントデバイスに関する変更を示し、ウエブ・サービス・イベント・仕様に準拠する、イベント通知メッセージを受信する処理；および
前記イベント通知メッセージを受信するステップに応答して、前記プリントドライバが、前記プリントデバイスに、プリントデバイスでサポートされた、一つ以上のプリント機能をリクエストするリクエストメッセージを送信する処理；
に応答して起動される、装置。
【請求項１４】
請求項９記載の装置であって、
前記クライアント・デバイスに前記プリントドライバをインストールする処理であって、前記プリントドライバをインストールする処理は、前記プリントドライバによって前記プリントデバイス能力データを受信することを生じさせるところの処理を行う、装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にプリントシステムに関する。より詳細には、ウェブ・サービス対応プリントデバイスへのプリントに関する。
【背景技術】
【０００２】
このセクションに記述されているアプローチは、実行することが可能なアプローチを示しているが、必ずしも以前に考案されたか、あるいは実行されたアプローチとは限らない。したがって、特に明記しない限り、このセクションに記述されているいずれのアプローチに関しても、単にこのセクションに記述されていることだけをもって、従来技術であるとみなしてはならない。
［ウェブ・サービス］
【０００３】
ワールドワイド・ウェブ・コンソーシアム（Ｗ３Ｃ）は、ワールドワイド・ウェブのための基準を開発する国際的コンソーシアムである。Ｗ３Ｃは、「ウェブ・サービス」を、ネットワークの上で、マシンとマシンとのインターオペラブルなインタラクションをサポートするように設計されたソフトウェアシステムとして定義する。この定義は、多くの異なるシステムを対象とするが、共通の用法を持っている。この規定は、ＳＯＡＰ（Ｓｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ）のフォーマットによるＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）エンベロープを使用するサービス、ＷＳＤＬ（Ｗｅｂ  Ｓｅｒｖｉｃｅｓ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）を使用して記述されたインターフェースを持つサービスに用いられている。ウェブ・サービスによって、デバイス、およびアプリケーションは、いかなる人間も介在することなく、一つ以上のネットワークにおいて、通信することができる。そして、同時に、人間は、同じ統合されたプロトコル（例えばＨＴＴＰ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｐｒｏｔｏｃｏｌ））を使用して、一つ以上のネットワークを通じてこの種のデバイス、およびアプリケーションと通信することができる。
【０００４】
ウェブ・サービスを定める仕様は意図的にモジュール形式となっている。そして、その結果、全てのウェブ・サービスを定める唯一のドキュメントがない。その代わりに、状況、および技術に応じて、これを補完するための幾つかのコア仕様が存在する。共通コア仕様としては、ＳＯＡＰ、ＷＳＤＬ、ＷＳ−Ｄｉｓｃｏｖｅｒｙ、ＷＳ−ＭｅｔａｄａｔａＥｘｃｈａｎｇｅ、ＷＳ−Ａｄｄｒｅｓｓｉｎｇ、およびＷＳ−Ｓｅｃｕｒｉｔｙがある。異なる仕様は、異なるタスクおよび機能を規定する。
【０００５】
ＳＯＡＰは、ＸＭＬベースの、拡張性のあるメッセージ・エンベロープ形式であり、重要なプロトコル（例えばＨＴＴＰ、およびＳＭＴＰ（Ｓｉｍｐｌｅ  Ｍａｉｌ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ））と親和性がある。ＸＭＬを使用して、ＳＯＡＰは、メッセージにおいてどのように書式が設定されなければならないかについて定めている。これによって、それらのメッセージの受け取り側（デバイス、およびアプリケーション）がそれらのメッセージを解釈することができるよう、それらのメッセージは書式の設定がなされる。ＳＯＡＰは、例えば、リモート・プロシージャ・コールを実行するために使用することができる。
【０００６】
ＷＳＤＬは、ウェブ・サービス・インターフェースを記述するＸＭＬフォーマットである。そして、これは、特定のプロトコルに結合するインターフェースの詳細を規定する。ＷＳＤＬは、通常はサーバ、およびクライアント・コードを生成するため、および構成（コンフィギュレーション）のために用いられる。
［ＷＳＤデバイス］
【０００７】
一つ以上のウェブ・サービスをホストするデバイスは、Ｄｅｖｉｃｅｓ  Ｐｒｏｆｉｌｅ  ｆｏｒ  Ｗｅｂ  Ｓｅｒｖｉｃｅｓ（ＤＰＷＳ）仕様もインプリメントする。この種のデバイスは、Ｗｅｂ  Ｓｅｒｖｉｃｅ  ｆｏｒ  Ｄｅｖｉｓｅｓ（ＷＳＤ）と呼ばれる。ＷＳＤデバイスの例としては、スキャナ、プリンタ、複写機、ファックス、アーカイブ処理デバイス、および多機能周辺装置（ＭＦＰ）が含まれるが、これに限られるものではない。多機能周辺装置（ＭＦＰ）は、複数のサービス（例えば、プリント、コピー、およびスキャンサービス）を提供する。
【０００８】
ＤＰＷＳは、デバイスにおける安全なウェブ・サービス・メッセージ送信、ディスカバリ、ディスクリプション、およびイベントを可能にするために、インプリメンテーション制約の最小のセットを定める。ＤＰＷＳ仕様は、デバイスが二種類のサービスを提供する以下のアーキテクチュアを定める：すなわち、ホスティングサービスおよびホステッド（ｈｏｓｔｅｄ）サービスである。ホスティングサービスは、デバイスに直接関連づけられ、かつデバイスディスカバリ処理において重要な役割を果たす。ホステッドサービスは、大部分は機能的で、そしてディスカバリのためのホスティングデバイスに依存する。
【０００９】
ＤＰＷＳは、以下のコア・ウェブ・サービス標準を基にしている：ＷＳＤＬ１．１、ＸＭＬ  Ｓｃｈｅｍａ、ＳＯＡＰ１．２、ＷＳ−Ａｄｄｒｅｓｓｉｎｇ、およびＷＳ−ＭｅｔａｄａｔａＥｘｃｈａｎｇｅ、ＷＳ−Ｔｒａｎｓｆｅｒ、ＷＳ−Ｐｏｌｉｃｙ、ＷＳ−Ｓｅｃｕｒｉｔｙ、ＷＳ−Ｄｉｓｃｏｖｅｒｙ、およびＷＳ−Ｅｖｅｎｔｉｎｇを更に有する。一つ以上のウェブ・サービス標準をインプリメントしたデバイスは、本願明細書において、ウェブ・サービス対応デバイスと称される。
［サービス仕様］
【００１０】
一部のウェブ・サービスは、特定のサービス仕様に合致する。サービス仕様（例えばＷＳＤ  Ｐｒｉｎｔ  Ｓｅｒｖｉｃｅ仕様）は、ウェブ・サービスがそのサービス仕様に準拠するためにインプリメントしなければならないＡＰＩの最小限のセットを記述する。例えば、ＷＳＤプリントサービス仕様は、以下のものを定める：
（ａ）プリントウェブ・サービスが処理可能であるオペレーションのセット（例えば、ＷＳＤＬファイルに記述される）、および
（ｂ）プリントウェブ・サービスが生成するイベント。
ＷＳＤスキャナサービス仕様は以下のものを定める：
（ａ）スキャン・ウェブ・サービスが処理可能であるオペレーションのセット、および
（ｂ）スキャン・ウェブ・サービスが生成するイベント。
【００１１】
サービス仕様は、Ｗ３Ｃまたは他のウェブ・サービス標準化機関（例えば、オアシス：Ｏｒｇａｎｉｚａｔｉｏｎ  ｆｏｒ  ｔｈｅ  Ａｄｖａｎｃｅｍｅｎｔ  ｏｆ  Ｓｔｒｕｃｔｕｒｅｄ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｓｔａｎｄａｒｄ）によって標準化され得る。
［プリントデバイスへのプリント］
【００１２】
ユーザが電子ドキュメントをプリントデバイスにプリントしたい場合、ユーザのクライアント・デバイスのプリントサブシステムは、アプリケーションプログラムによって生成されたアプリケーションデータを処理し、プリントデータを生成する。プリントデータは、プリントデバイスによって電子ドキュメントをプリントするのに必要な全ての情報を含む。例えば、ユーザは、ＰＣ上のワードプロセッシングアプリケーションを使用して、電子ドキュメントを作成する。ユーザは、それからワードプロセッシングアプリケーションのプリントオプションを選び、電子ドキュメントが特定のプリンタにプリントされるようリクエストする。ＰＣ上のプリントサブシステムは、特定のプリンタでサポートされるフォーマットのプリントデータを生成するために、ワードプロセッシングアプリケーションによって生成されたアプリケーションデータを処理することによって、このリクエストを処理する。プリントサブシステムは、それから特定のプリンタにプリントデータを送る。通常、プリントデータは、プリントデバイスによって認識されるプリントジョブの一部として、プリントデバイスに送信される。
【発明の概要】
【発明が解決しようとする課題】
【００１３】
従来、プリントデータを生成するためには、目的のプリントデバイスに特有なプリントドライバが使用されている。すなわち、各々のプリントドライバは、プリントデータを目的のプリントデバイスによってサポートされるフォーマットに変換する。したがって、クライアント・デバイスが、特定のプリントデバイスで正しくプリントするためには、そのクライアント・デバイスは、特定のプリントデバイスのためのプリントドライバをインストールしておく必要がある。このアプローチにおける課題の１つは、プリントドライバは目的のプリントデバイスのための最新のものでなければならないということである。プリントデバイスの構成が変更された場合、新たなプリントドライバが生成されなければならず、かつ多数のユーザに配信されなければならない。プリントデバイス製造業者はダウンロードのためのそれらのウェブサイトに利用できる最新のプリントドライバを提供することを試みる。しかしながら、多くのユーザは最新のドライバのための製造業者のウェブサイトをチェックすることを知らない。さらにまた、多くのプリントドライバはオペレーティングシステムを開発する会社によって、またはプリントデバイス製造業者によってデジタル的に認証されなければならない。そして、これは時間がかかり、かつ高価となり得る。プリントドライバに対するいかなる変更も、通常はデジタル的な再認証を必要とする。
［ＤＥＶＭＯＤＥ、およびプリントスキーマドキュメント］
【００１４】
ＤＥＶＭＯＤＥは、Ｗｉｎｄｏｗｓ(登録商標)スプール・システムがプリントデータを処理するのに使用する基本的なデータ構造体である。ＤＥＶＭＯＤＥは、プリントジョブの処理の一部として、（ユーザによって選ばれたおよび／またはデフォルト設定としてセットされた）デバイス設定を含む。Ｗｉｎｄｏｗｓアプリケーションからプリントジョブを作成するために、ユーザが特定のプリントデバイスで現在サポートされる多くの機能に係るさまざまなオプションを選ぶことができるよう、ユーザインターフェースがユーザに示される。アプリケーションは、ＤＥＶＭＯＤＥ構造体にユーザの選択を保存する。アプリケーションは、それから特定のプリントデバイスのプリントドライバに、ＤＥＶＭＯＤＥ構造体を送る。プリントドライバは、ＤＥＶＭＯＤＥ設定を解釈し、かつ特定のプリントデバイスによって受け入れられるフォーマットに、プリントデータをレンダリングする。
【００１５】
マイクロソフト社は、後に、ＤＥＶＭＯＤＥデータ構造体のいくつかの問題点に対処するために、ＤＥＶＭＯＤＥデータ構造体の使用の代わりに、プリントスキーマドキュメントを導入した。例えば、プリントスキーマドキュメントは、バイナリフォーマットではなく、読むことが可能なフォーマット（すなわちＸＭＬ）によって記述されている。このような方法で、アプリケーションプログラムは、プリントスキーマドキュメントのＸＭＬデータを読むことができ、かつユーザがプリントスキーマドキュメントで示されるさまざまなデバイス機能のオプションを選ぶことができるよう、ユーザインターフェースを生成することができる。しかしながら、従来のＤＥＶＭＯＤＥデータ構造体の様に、プリントスキーマドキュメントは、対応するプリントデバイスでサポートされるデバイス機能の変更から隔離された形で、保たれる。すなわち、利用できるデバイス機能のセットの変更が生じた場合（例えばデバイス機能の追加または削除）、その変更はプリントスキーマドキュメントに反映されない。
【課題を解決するための手段】
【００１６】
［概要］
本技術は、特にウェブ・サービス対応プリントデバイスにプリントするために提供される。なお、プリントデバイスからプリントデバイス能力データをクライアント・デバイスに提供できるのであれば、ウェブ・サービス対応プリントデバイスに限る必要はない。実施例において、クライアント・デバイスで実行されるプリントドライバは、ウェブ・サービス対応プリントデバイスから、ウェブ・サービス対応プリントデバイスでサポートされる複数の最新の機能とオプションとを特定するプリントデバイス能力データを受信する。プリントデバイス能力データの受信に応答して、プリントドライバは、第２のバージョンのＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓ（プリンタ能力とも言う）ドキュメントを生成する。これは、第１のバージョンのＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメントとは異なるものである。第１のバージョンは、ウェブ・サービス対応プリントデバイスで以前にサポートされた第１の複数の機能を示す。第２のバージョンは、ウェブ・サービス対応のプリントデバイスで最新にサポートされる第２の複数の機能を示す。第１の複数の機能は、第２の複数の機能とは異なる。第１および第２のバージョンのデータは、ＸＭＬで記述される。ユーザインターフェースは、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメントの第２のバージョンに基づいて生成される。一つ以上のユーザ選択に応答して、オプションが第２の複数の機能のセットの機能の各々の機能に対して選ばれたことを示す特定のドキュメントが生成される。
【００１７】
本発明は、例示として説明され、これは限定するものではない。添付の図面において、同じ参照番号は類似した要素に関連する。
【発明の効果】
【００１８】
このアプローチは、ウェブ・サービス対応プリントデバイスの最新の機能とオプションとを反映する動的に同期されたＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメントを提供する。デバイス機能のいかなるものも、それが変更されるときはいつでも、例えば新規なデバイス機能が付け加えられたり、あるいはデバイス機能が取り除かれたりした場合にイベントが生成された場合、プリントドライバはプリンタデバイス能力データの通知を受けることが可能である。したがって、ユーザは、常にウェブ・サービス対応プリントデバイスでサポートされる最新の機能に基づいて、プリントジョブを開始することができる。また、例えばプリントドライバまたはアプリケーションプログラムによって、グラフィカルユーザーインターフェース（ＧＵＩ）が、生成され得る。ＧＵＩは、ウェブ・サービス対応プリントデバイスの最新の機能とオプションとを含む。
【図面の簡単な説明】
【００１９】
【図１】本発明の一実施例におけるプリントデバイスにプリントするためのアプローチを示すフローチャートである。
【図２】本発明の一実施例におけるプリントの構成を例示するブロック図である。
【００２０】
【図３Ａ】本発明の一実施例において、プリントデバイス能力データ、プリンタ・ディスクリプション・データ、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメント、およびプリントチケットドキュメントの一部の例を示す図である。
【図３Ｂ】本発明の一実施例において、プリントデバイス能力データ、プリンタ・ディスクリプション・データ、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメント、およびプリントチケットドキュメントの一部の例を示す図である。
【００２１】
【図４】本発明の一実施例において、プリンタ・ディスクリプション・データ、およびＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメントの関係を示すブロック図である。
【００２２】
【図５】本発明の一実施例において、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメントが更新される方法を示すブロック図である。
【００２３】
【図６】本発明の一実施例において、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメントが生成されるかまたは更新される少なくとも２つのシナリオを示すフローチャートである。
【００２４】
【図７】本発明の一実施例において、新規なデバイス機能に基づいたユーザインターフェースを示すブロック図である。
【００２５】
【図８】本発明の一実施例において、新規なデバイス機能、および対応するオプションに基づいてＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメントを更新するための方法を示すシーケンス図である。
【００２６】
【図９】本発明の実施例がインプリメントされ得るコンピュータシステムを示すブロック図である。
【発明を実施するための形態】
【００２７】
［詳細な説明］
以下の記載では、説明のため、本発明の完全な解釈を提供するために、多くの具体的な詳細を示す。なお、本発明は、これらの具体的な詳細が無くても、実施し得ることは明らかである。他の例において、周知の構造、およびデバイスは、本発明を不必要に不明瞭にすることを避けるために、ブロック図形式で示される。
【００２８】
Ｉ．    概要
ＩＩ．  プリントシステムアーキテクチャ
ＩＩＩ．プリンタ・ディスクリプション・データの生成
ＩＶ．  ＰＲＩＮＴＣＡＰＡＢＩＬＩＴＩＥＳドキュメント
Ｖ．    ＰＲＩＮＴＣＡＰＡＢＩＬＩＴＩＥＳドキュメントの更新
ＶＩ．  インプリメンテーション・メカニズム
Ｉ．概要
【００２９】
ウェブ・サービス対応プリントデバイスにプリントするためのアプローチが提供される。プリントドライバは、例えば、ＷＳＤ通信プロトコルを使用して、ウェブ・サービス対応プリントデバイスから読み出されるプリントデバイス能力データで特定される機能の新規なセットに基づいてＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメントを生成（またはアップデート）する。ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメントは、マイクロソフトのプリントスキーマ技術によって定義されるドキュメントである。新機能とオプションとは、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメントに保存される。アプリケーションプログラムは、後に、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメントにアクセスし、そして、ユーザがどの機能とオプションとを選んだかを示すために、プリントチケットドキュメントを作成してもよい。プリントチケットドキュメントは、マイクロソフトのプリントスキーマ技術によって定義される他のドキュメントである。このプリントチケットドキュメントはプリントドライバに引き継がれ、そして、これは、少なくともプリントチケットドキュメントに基づいてプリントジョブ・チケットを生成する。プリントドライバによって、プリントジョブ・チケット、およびプリントデータが、ウェブ・サービス対応プリントデバイスに、処理のために送信される。実施例は、インストールされた機能とオプションとの変更が発生したときを知らせるイベント（ウェブ・サービス対応プリントデバイスによって生成される）を受信することを予約しているプリントドライバを含む。プリントドライバは、この種のイベントに応答して、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメントを更新するよう構成されている。
【００３０】
このアプローチは、ウェブ・サービス対応プリントデバイスの最新の機能とオプションとを反映する動的に同期されたＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメントを提供する。デバイス機能のいかなるものも、それが変更されるときはいつでも、例えば新規なデバイス機能が付け加えられたり、あるいはデバイス機能が取り除かれたりした場合にイベントが生成された場合、プリントドライバは通知を受けることが可能である。したがって、ユーザは、常にウェブ・サービス対応プリントデバイスでサポートされる最新の機能に基づいて、プリントジョブを開始することができる。また、例えばプリントドライバまたはアプリケーションプログラムによって、グラフィカルユーザーインターフェース（ＧＵＩ）が、生成され得る。ＧＵＩは、ウェブ・サービス対応プリントデバイスの最新の機能とオプションとを含む。
【実施例】
【００３１】
図１は、本発明の一実施例におけるプリントデバイスにプリントするためのアプローチを示すフローチャートである。ステップ１０２において、プリントドライバがクライアント・デバイスにおいて実行され、ウェブ・サービス対応プリントデバイスから、プリントデバイス能力データを受け取る。プリントデバイス能力データは、ウェブ・サービス対応プリントデバイスで現在サポートされる複数の機能とオプションとを特定する。
【００３２】
ステップ１０４において、プリントドライバは、ＸＭＬで、プリントデバイス能力データで示される特定のデバイス機能を示すＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメントを生成する。ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメントは、少なくともプリントデバイス能力データにまたはプリンタ・ディスクリプション・データに基づいて生成されてもよい（詳細は後述する）。プリントドライバは、少なくともプリントデバイス能力データに基づいて、プリンタ・ディスクリプション・データを生成する。
【００３３】
ステップ１０６において、ユーザインターフェースが、少なくともＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメントに基づいて生成される。ユーザインターフェースは、ウェブ・サービス対応プリントデバイスで現在サポートされる機能とオプションとを示す。例えば、プリントドライバあるいはアプリケーションプログラムは、ユーザインターフェースを生成する。
【００３４】
ステップ１０８において、アプリケーションプログラムあるいはプリントドライバによって、プリントチケットドキュメントが、生成される。プリントチケットドキュメントは、選択された機能とオプションとを示す。選択された機能とオプションとは、デフォルト選択および／またはユーザからの選択であってもよい。
【００３５】
ステップ１１０において、プリントドライバは、少なくともプリントチケットドキュメントに基づいて、プリントデータ、およびプリントジョブ・チケットを生成する。
【００３６】
ステップ１１２において、プリントドライバによって、プリントデータ、およびプリントジョブ・チケットが、ウェブ・サービス対応プリントデバイスに送信され、処理される。
ＩＩ．プリントシステムアーキテクチャ
【００３７】
図２は、プリント構成２００を例示するブロック図である。プリント構成２００は、クライアント・デバイス２０２、およびウェブ・サービス対応プリントデバイス２０４（以下、「プリントデバイス２０４」と言う）を含む。これらは、ネットワーク２０６で通信接続されている。ネットワーク２０６は、クライアント・デバイス２０２およびプリントデバイス２０４間のデータの交換を提供する媒体またはメカニズムのいかなるものによってインプリメントされてもよい。ネットワーク２０６の例としては、ローカル・エリア・ネットワーク（ＬＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、イーサネット(登録商標)またはインターネットのようなネットワーク、または一つ以上の地上、衛星、無線リンクが挙げられるが、これに限定されるものではない。
【００３８】
プリントデバイス２０４は、ウェブ・サービス対応プリントサービス２０８を含む。プリントデバイス２０４は他のウェブ・サービス（特定のインプリメンテーションに基づく）を含んでもよい。なお、単一のウェブ・サービスだけが図２において示されているが、これは本願明細書における説明のために記載されている。クライアント・デバイス２０２は、ユーザインターフェース２１０、アプリケーションプログラム２１２、プリントドライバ・インストーレイション・アプリケーション２１４、プリントドライバ２１６（ユーザインターフェース（ＵＩ）モジュール、およびレンダリングモジュール２２０を含む）、ポートモニタ、およびウェブ・サービス・デバイス（ＷＳＤ）アプリケーション・プログラム・インターフェース（ＡＰＩ）モジュール２２２、スプーラ２２４、および記憶装置２２６、を有する。ストレージ２２６は、プリントデバイス能力データ２２８（以下「ＰＤＣＡ２２８」と言う）、プリントデータ２３０、およびプリントジョブ・チケット２３２を保存する。記憶装置は、また、プリントドライバ記憶装置２３４、およびプリンタ・ディスクリプション・データ２３８とデフォルトプリントチケット２４０とを保存するレジストリ２３６を含む。これらの要素の各々は以下において簡単に説明し、その後に詳細に説明する。
【００３９】
ユーザインターフェース２１０は、情報をユーザに提示しかつユーザ入力を許容するメカニズムおよび／または媒体である。アプリケーションプログラム２１２は、データをプリントする任意のタイプのプログラムであってもよい。アプリケーションプログラム２１２の実例としては、ワードプロセッシングプログラム、スプレッドシートプログラム、電子メール・クライアントなどが挙げられるが、これに限定されるものではない。説明のために一つのアプリケーションプログラム２１２が図２に示されている。なお、クライアント・デバイス２０２はいかなる数のアプリケーションプログラムを有していてもよい。
【００４０】
プリント・ドライバ・インストーレーション・アプリケーション２１４は、プリントドライバ２１６のインストーレーションを実行する。これには、プリントドライバ２１６に必要な、データまたはファイルのいかなるものもインストールすることを含んでもよい。プリントドライバ２１６のインストールには、他のソースおよび場所からのデータおよび／またはファイルを含んでもよい。これは、インプリメンテーションに依存し、あるいはオペレーティングシステムによってリクエストされる構成の実行に依存する。
【００４１】
プリントデバイス２０４にプリントするためのプリントデータを生成するために、プリントドライバ２１６は、アプリケーションプログラム２１２と対話（ｉｎｔｅｒａｃｔ）する。ＵＩモジュール２１８は、グラフィカル・ユーザーインターフェース・データを生成する。これは、アプリケーションプログラム２１２によって処理したときに、ユーザインターフェース２１０によってグラフィカルユーザーインターフェースをユーザに提供する。これによって、ユーザは、特定の電子ドキュメントをプリントするときに、使用される機能とオプションとを選ぶ。レンダリングモジュール２２０は、アプリケーションプログラム２１２によって生成されるアプリケーションデータを処理し、プリントデータを生成する。これは、プリントデバイス２０４によって処理したときに、プリントデバイス２０４でプリントされるプリントデータを反映した電子ドキュメントのプリントされたバージョンである。プリントドライバ２１６は、以下に更に詳細に記載されているさまざまな他の機能を実行する。
【００４２】
ポートモニタおよびＷＳＤ  ＡＰＩモジュール２２２は、プリントドライバ２１６、およびプリントデバイス２０４間の通信を許可する。例えば、ＷＳＤ  ＡＰＩモジュール２２２はカスタムポートにインストールされてもよい。そして、プリントドライバ２１６はカスタムポートを経てＷＳＤ  ＡＰＩモジュール２２２と通信する。ポートモニタおよびＷＳＤ  ＡＰＩモジュール２２２は、プリントデバイス２０４と通信する。したがって、ポートモニタおよびＷＳＤ  ＡＰＩモジュール２２２は、クライアント側命令（例えばＢｉＤｉファンクションコール）をＳＯＡＰエンベロープの形でＳＯＡＰリクエストに変換することが可能であり、また、ＳＯＡＰエンベロープの形で、プリントデバイス２０４から受け取られるＳＯＡＰレスポンスからＸＭＬ情報を得て、そしてＢｉＤｉファンクションコールレスポンスを生成することが可能である。ポートモニタおよびＷＳＤ  ＡＰＩモジュール２２２は、ウェブ・サービス対応プリントサービス２０８に関連づけられたポートにＳＯＡＰリクエストを送る。
【００４３】
プリントデバイス能力データ２２８は、プリントデバイス２０４の最新の機能とオプションと（すなわち各々の機能のための許容値）を特定するデータである。プリントデバイス機能の実例としては、用紙トレイ、両面プリント、ステープル、綴じ孔あけ、などが挙げられるが、これに限定されるものではない。各々の機能は、一つ以上のオプション（すなわち値）を有する。一部の機能は、２つのオプションだけを含む場合もあり得る。例えば、両面プリントユニットは２つのオプションを有し、例えば「Ｉｎｓｔａｌｌｅｄ」または「ＮｏｔＩｎｓｔａｌｌｅｄ」がある。他の機能（例えば用紙サイズ）は、例えば「Ａ４」、「ｌｅｇａｌ」、「８１／２×１１」等多くのオプションがある。クライアント・デバイス２０２に保存されているプリントデバイス能力データ２２８は、いかなる数のウェブ・サービス対応プリントデバイスのためのプリントデバイス能力データを含んでもよい。下記に述べるように、プリントデバイス能力データ２２８はＸＭＬフォーマットで記述されてもよい。
【００４４】
プリントデータ２３０はプリントドライバ２１６によって生成されるデータである。そして、少なくとも、アプリケーションプログラム２１２によって生成されるアプリケーションデータに基づくものである。アプリケーションデータは、プリントデバイス２０４によって処理されると、プリントされるプリントデータ２３０で示される電子ドキュメントのプリントされたバージョンを生じさせる。プリントジョブ・チケット２３２は、プリントデータ２３０がどのようにプリントデバイス２０４で処理されるかを示す一つ以上のパラメータを特定する。プリントデータ２３０は複数のプリントジョブのためのデータを含んでもよい。そしてプリントジョブ・チケット２３２は複数のプリントジョブ・チケットを含んでもよい。
【００４５】
プリントドライバ記憶装置２３４は、プリントデバイスでプリントするために、クライアント・デバイスによって使用される一つ以上のプリントドライバを含む。レジストリ２３６は、プリンタ・ディスクリプション・データ２３８、デフォルトプリントチケット２４０、およびＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメント２４２を保存するための記憶装置２２６の領域である。レジストリ２３６は、クライアント・デバイス２０２上のオペレーティングシステムの管理下である記憶装置２２６の記憶保護域であってもよい。デフォルトプリントチケット２４０は、プリントデバイス２０４でサポートされる機能のためのデフォルトオプションを示すデータを含む。デフォルトプリントチケット２４０は説明のために一つのデフォルトプリントチケットが示されている、しかし、デフォルトプリントチケット２４０はいかなる数のプリントデバイスのデフォルトプリントチケットを含んでもよい。同様に、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメント２４２は、いかなる数のプリントデバイスのＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメントを含んでもよい。
【００４６】
プリントドライバ２１６は、少なくともプリントデバイス能力データ２２８、およびコア・マッピング・データ（これについては以下に更に詳細に説明する）に基づいてプリンタ・ディスクリプション・データ２３８を生成する。簡潔に説明すれば、コア・マッピング・データとは、プリンタ・ディスクリプション・データ２３８を生成するために使用される他のデータに対して、プリントデバイス能力データ２２８で発見される特定のデータをマッピングするものである。プリンタ・ディスクリプション・データ２３８は、現在プリントデバイス２０４でサポートされる一つ以上の機能とオプションとのための表示データを特定する。プリントドライバ２１６は、グラフィカルユーザーインターフェース・データを生成するため、および、プリントデータ２３０および／またはプリントジョブ・チケット２３２を生成するために、プリンタ・ディスクリプション・データ２３８を使用してもよい。
ＩＩＩ．プリンタ・ディスクリプション・データの生成
【００４７】
本願明細書において前述したように、プリントドライバ２１６は、プリンタ・ディスクリプション・データ２３８を生成し、かつ、レジストリ２３６に保存するように構成され、そして、ＷＳＤプリントデバイス２０４から受け取られるデフォルトプリントチケットを保存するように構成される。ＵＩモジュール２１８は、ＧＵＩデータを生成するために、プリンタ・ディスクリプション・データ２３８を使用する。ＧＵＩデータは、アプリケーションプログラム２１２によって処理されたときに、ユーザインターフェース２１０上に、ＧＵＩを生じさせる。ユーザインターフェース２１０は、ＷＳＤプリントデバイス２０４でサポートされる機能とオプションとを表示し、特定の電子ドキュメントをプリントするときに、ユーザに対して使用する機能とオプションとを選択させる。
【００４８】
一般にプリンタ・ディスクリプション・データ２３８を生成するための処理は、ＷＳＤプリントデバイス２０４のためのプリントデバイス能力データ２２８からの情報と、基本的なインストールされたプリントドライバの一部として提供されたコア・マッピング・データからのデータとを結合することを含む。付属資料Ａは、プリントデバイス能力データの実例を含む、付属資料Ｂは、コア・マッピング・データの実例を含む、付属資料Ｃは、プリンタ・ディスクリプション・データの実例を含む。
【００４９】
本発明の一実施例によれば、ＵＩモジュール２１８は、プリントデバイス能力データ２２８を調べて、そして、そこにおいて特定されるプリントデバイス機能を特定する。プリントデバイス能力データ２２８の各々の機能に対して、ＵＩモジュール２１８は、機能がコア・マッピング・データで定められているかどうか特定する。コア・マッピング・データは、ＰＤＬＫｅｙｗｏｒｄｓ、およびｒｃＮａｍｅＩＤｓを含み、これは、プリントデバイス機能とオプションとの標準セットのためのものである。プリントデバイス能力データ２２８の特定の機能がコア・マッピング・データにおいて定められている場合、ＵＩモジュール２１８は、コア・マッピングファイルから、特定の機能および各々の対応するオプションのためのＰＤＬｋｅｙＷｏｒｄ値、およびｒｃＮａｍｅＩＤ値を読み出し、かつプリンタ・ディスクリプション・データ２３８のＰＤＬｋｅｙＷｏｒｄ値およびｒｃＮａｍｅＩＤ値を保存する。ＰＤＬｋｅｙＷｏｒｄ値は、プリントドライバ２１６によって解釈される機能またはオプションの用語（ｔｅｒｍｉｎｏｌｏｇｙ）と、同じ機能またはオプションに対するＷＳＤプリントサービス２０８によって解釈される用語とのマッピングを提供する。ｒｃＮａｍｅＩＤ値は、機能またはオプションの文字列を含む文字変数（リソースＩＤ）の名前を示す。この文字列は、ＵＩモジュール２１８によって生成されたＧＵＩデータに含まれ、かつアプリケーションプログラム２１２に与えられる。以下の例について、検討する。プリントデバイス能力データ２２８が「ＩｎｐｕｔＴｒａｙ４」という名前の機能を含むと仮定する。下記の表１で示されるように、この機能がコア・マッピング・データにおいて定められると更に仮定する。
【００５０】
【表１】
2011034562.tif 000003
【００５１】
表１で指示したように、機能ＩｎｐｕｔＴｒａｙ４は、「Ｉｎｓｔａｌｌｅｄ」および「ＮｏｔＩｎｓｔａｌｌｅｄ」を含む２つのオプションを有する。この機能および各オプションは、特定のＰＤＬＫｅｙｗｏｒｄ値、および特定のｒｃＮａｍｅＩＤ値をいずれも有する。ＵＩモジュール２１８は、それを読み出し、かつプリンタ・ディスクリプション・データに保存する。
【００５２】
プリントデバイス能力データ２２８の特定の機能がコア・マッピングファイルにおいて定められていない場合、この特定の機能は通常は新機能である。この状態においては、ＵＩモジュール２１８は、プリンタ・ディスクリプション・データ２３８のためのＰＤＬｋｅｙＷｏｒｄ値を生成するために、プリントデバイス能力データ２２８から、特定の機能の機能名を使用する。加えて、ＵＩモジュール２１８は、プリンタ・ディスクリプション・データ２３８の特定の機能のためのＤｉｓｐｌａｙＮａｍｅ値を含む。複数言語のサポートを提供するために、複数のＤｉｓｐｌａｙＮａｍｅ値が、各々の機能および／またはオプションのためのプリンタ・ディスクリプション・データ２３８に含まれてもよい。表示名の値は、ＵＩモジュール２１８によって生成されたＧＵＩデータに含まれ、そしてアプリケーションプログラム２１２に与えられる。前の例を参照すると、「ＩｎｐｕｔＴｒａｙ４」という名前をつけられた機能がコア・マッピング・データにおいて定められていないと仮定する。下記の表２で示されるように、この機能がプリントデバイス能力データ２２８において定められると更に仮定する。
【００５３】
【表２】
2011034562.tif 000004
【００５４】
表２で指示したように、プリントデバイス能力データ２２８のＩｎｐｕｔＴｒａｙ４の機能の定義に含まれるＰＤＬＫｅｙｗｏｒｄ値またはｒｃＮａｍｅＩＤ値は、ここには存在しない。この例では、ＰＤＬＫｅｙｗｏｒｄ値として、機能名「ＩｎｐｕｔＴｒａｙ４」はプリンタ・ディスクリプション・データ２３８に保存される。また、ＵＩモジュール２１８は、機能、および各々のオプションのためのＤｉｓｐｌａｙＮａｍｅ値を読み出して、かつプリンタ・ディスクリプション・データ２３８にＤｉｓｐｌａｙＮａｍｅ値を保存する。
ＩＶ．ＰＲＩＮＴＣＡＰＡＢＩＬＩＴＩＥＳドキュメント
【００５５】
ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメント２４２は、単一のプリンタ・モデルに特有の機能とオプションとを含む。アプリケーションプログラム２１２が、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメント２４２のためのＡＰＩファンクションをコールする場合、プリンタ・ドライバ２１６が、その時に、プリンタ・ディスクリプション・データ２３８において定められるデバイス機能とオプションとの最新のセットに基づいて、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメント２４２を生成する。
【００５６】
実施例において、（ａ）および（ｂ）の両方のデータは、デバイス機能に関して動的でかつ拡張可能である。例えば、プリントデバイス２０４に付加されるいかなるデバイス機能も、また、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメント２４２に付加することができる。別の例として、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメント２４２において示されているデバイス機能が、その後プリントデバイス２０４に利用できなくなる場合、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメント２４２は、例えばＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメント２４２からそのデバイス機能を削除することによって、そのデバイス機能が利用できないことを示すために更新される。
【００５７】
実施例において、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメント２４２は、少なくともプリンタ・ディスクリプション・データ２３８、およびマッピング・データに基づいて生成される。例えば、ＰＳＰモジュール２１９は、デバイス機能を特定するために、プリンタ・ディスクリプション・データ２３８を調べる。それから、ＰＳＰモジュール２１９は、デバイス機能を適切な機能名（例えば、マイクロソフトでサポートされる）を有する一つ以上のタグのセットにマッピングするために、マッピング・データを使用する。デバイス機能がマッピング・データにおいて特定されない場合、ＰＳＰモジュール２１９は一つ以上のカスタム・タグを作成する。付属資料Ｄは、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメントの例を含む。プリントデバイス２０４に対するいかなる変更（例えば、オプション機能の付加または削除）の場合にも、プリントドライバ２１６が起動され、プリンタ・ディスクリプション・データ２３８を更新する。複数のアクション、例えばＵＩを更新ときやＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメント２４２を更新するときに、それらためのソースの単一のポイントとして、プリンタ・ディスクリプション・データ２３８に依存することは有益である。
【００５８】
プリンタ・ディスクリプション・データ２３８を使用する場合と、ＰｒｉｎｔＣａｂｉｌｉｔｉｅｓドキュメント２４２を使用する場合で、一つの相違点としては、プリンタ・ディスクリプション・データ２３８は、ユーザインターフェースを生成するためにＵＩモジュール２１８によって使用されるということである。プリンタ・ディスクリプション・データ２３８は、プリントドライバ２１６に内在しており、外部アプリケーション（例えばアプリケーションプログラム２１２）にエクスポートされない。ＵＩモジュール２１８は、プリンタ・ディスクリプション・データ２３８からＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメント２４２を作成し、かつＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメント２４２をアプリケーションプログラム２１２に送信してもよい。アプリケーションプログラム２１２は、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメント２４２を使用して、ユーザインターフェースを作成し、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメント２４２を使って一部の加工（例えばプリントチケットドキュメントの作成）を行う。アプリケーションプログラム２１２は、また、ドキュメント変換、プリントオートメーション、およびプリントジョブ最適化のために、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメント２４２を使用してもよい。
【００５９】
プリントオートメーションのために、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメントにクエリを発することは、メーカー、および販売業者によって広く使われている。一部の会社は、異なるプリント目的のために多種多様なプリンタを有する。例えば、ＷａｌＭａｒｔは、プリント・バーコード・ラベル、請求書、クーポン、などのための大きなプリント部門を有する。ＷａｌＭａｒｔは、全世界にわたって設置される多くの種類のプリンタをサポートする。各々の種類のプリンタは、異なるプリント属性のセットを持ち得る。例えば、バーコード・プリンタは、プリントオンラベルを有してもよく、カッターおよびリボンを使用し、かつ比較的高速度でプリントし得る。請求書プリンタは、多くの種類のインクを使用し、かつ特別な紙を必要としてもよい。クーポン・プリンタは、多種多様なプリント機能（例えばランダムな用紙サイズ、いかなるメディア・タイプ）を有してもよい。また、高解像度または低解像度であってもよく、カラープリントを必要とするかまたはカラープリントを必要としなくてもよい。
【００６０】
この種の業者は、プリントオートメーションのためのアプリケーションを開発する特別なミドルウェア開発者を保有する傾向がある。この種のアプリケーションは、各々のプリンタのＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメントおよびステータスにクエリを発し、自動的にデータをデータベースから取り出して、定期的にプリントジョブを作成する。プリントジョブに最も適しているプリンタを世界中に設置して、ジョブ・サイズ、プリント目的、色、解像度、用紙サイズ、メディア・タイプ、その他に従ってプリンタ、およびプリントジョブを調整する。
【００６１】
一部のプリント店は、異なる顧客目的のために種々のプリンタを保有する。例えば、一部のプリンタは広い寸法を有する。また一部のプリンタは入力ビンの変更を行わずに大量の紙をサポートするための、多数の入力ビン・サイズを有する。アプリケーションは、これらのプリンタ属性、および能力についてクエリを発することができ、かつプリントジョブに最も適しているプリンタに自動的にプリントジョブを割り当てることができる。
【００６２】
図３Ａおよび図３Ｂは、本発明の一実施例によるプリントデバイス能力データ３１０、プリンタ・ディスクリプション・データ３２０、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメント３３０、およびプリントチケットドキュメント３４０の一部の例を表す図である。図３Ａにおいてこの例では、プリントデバイス能力データ３１０は、プリントデバイスがプリントデータをプリント媒体（例えば紙）の片側のプリント、またはプリント媒体の一つの両面のプリントをサポートすること示すデバイス機能を表すデータを有する。図３Ａにおいてプリンタ・ディスクリプション・データ３２０は、プリントデバイス能力データ３１０から一部が生成され、かつこれに関連する。
【００６３】
図３Ｂにおいて、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメント３３０は、プリンタ・ディスクリプション・データ３２０から一部が生成され、かつこれに関連する。ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメント３３０の「ｐｓｆ」タグは、プリントスキーマフレームワーク（Ｐｒｉｎｔ  Ｓｃｈｅｍａ  Ｆｒａｍｅｗｏｒｋ）の頭字語である。プリントスキーマフレームワークは、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメントにおいて使用することができる要素を定める。ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメント３３０の「ｐｓｋ」タグは、プリントスキーマキーワード（Ｐｒｉｎｔ  Ｓｃｈｅｍａ  Ｋｅｙｗｏｒｄ）の頭字語である。個々のクライアントの間で情報および意向（ｉｎｔｅｎｔ）の携帯性を高めるために、プリントスキーマキーワードは、一般的に用いられる要素ハイアラーキまたはキーワードを定める。なお、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメントが特定のニーズに対応するために、プリントスキーマキーワードはまた、プライベートな拡張を許容する。プリンタ・ディスクリプション・データ３３０のデバイス機能がマッピング・データにおいて特定されない場合、例えば「ｐｓｆ」の代わりに「ｉｈｖ」をカスタム・タグとして使用して、デバイス機能を示す。
【００６４】
図３Ｂにおいて、プリントチケットドキュメント３４０は、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメント３３０から一部が生成され、かつこれに関連する。この例では、ユーザは、（２つの両面プリントオプションのうちの１つよりむしろ）片面プリントオプションを選んでいる。
【００６５】
図４は、本発明の一実施例において、プリンタ・ディスクリプション・データ２３８、およびプリントチケットドキュメント２４４の関係を表すブロック図である。ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメント２４２は、プリントデバイス２０４から、少なくともプリントデバイス能力データ２２８またはプリンタ・ディスクリプション・データ２３８に基づき、生成される。図４に示すように、プリンタ・ディスクリプション・データ２３８は、３１０または３２０の部分のいずれにも定められていない「ＨｏｌｅＰｕｎｃｈ」と称する新規なデバイス機能を有する。この新規なデバイス機能は、少なくとも３つのオプションを含む。すなわち、「ＯＦＦ」、「Ｌｅｆｔ２」および「Ｒｉｇｈｔ２」である。「Ｌｅｆｔ２」および「Ｒｉｇｈｔ２」オプションは、孔の数、および位置を示す。ユーザ選択（またはデフォルト選択）の後、修正されたＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメント２４２は、選択された新規なデバイス機能「孔あけ」（「ＨｏｌｅＰｕｎｃｈ」）の値は「ＯＦＦ」であることを示す。
【００６６】
図４は、プリントチケットドキュメント２４４を生成するための２つのアプローチのうちの１つを表す。第１のアプローチにおいて（上述したように）、ＵＩモジュール２１８は、プリンタ・ディスクリプション・データ２３８に基づいて、グラフィカルユーザーインターフェース・データを生成する。グラフィカルユーザーインターフェース・データは、アプリケーションプログラム２１２によって処理されたときに、電子ドキュメントをプリントする際に使用される機能とオプションとを選ぶためにユーザインターフェース２１０上のグラフィカルユーザーインターフェースをユーザに提供する。アプリケーションプログラム２１２は、ユーザの選択を（およびいかなるデフォルトをも）プリントチケットドキュメントとして保存する。
【００６７】
第２のアプローチにおいては（図４には図示せず）、アプリケーションプログラム２１２は、リクエストを行うユーザに示すユーザインターフェース２１０上のＧＵＩを生成するために、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメント２４２にアクセスする。アプリケーションプログラム２１２は、プリントドライバ２１６からＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメント２４２にリクエストすることによって、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメント２４２を直接または間接的に、アクセスしてもよい。アプリケーションプログラム２１２は、ユーザの（および／またはデフォルトの）選択をプリントチケットドキュメントに保存する。アプリケーションプログラム２１２は、更なる処理のために、プリントドライバ２１６に、プリントチケットを渡す。
【００６８】
更新されたＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメント２４２に基づいてＵＩを生成することは、更新されたＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメント２４２が使用され得る多くの考えられる場合のうちの１つである。例えば、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメント２４２が更新されることによって、アプリケーション２１２は、特定のアクションを実行してもよい。
Ｖ．ＰＲＩＮＴＣＡＰＡＢＩＬＩＴＩＥＳドキュメント更新
【００６９】
図５は、本発明の一実施例によって、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメントの更新を示すブロック図である。ステップ１において、プリントデバイス２０４は、プリント機能またはオプションの変更を示すイベントを生成する。これは、プリント機能またはオプションの削除、追加または変更を含み得る。ポートモニタおよびＷＳＤ  ＡＰＩモジュール２２２は、このイベントの受信を予約しており、かつこのイベントを受信する。例えば、ポートモニタおよびＷＳＤ  ＡＰＩモジュール２２２は、イベントを特定するＳＯＡＰメッセージの形でイベント通知を受信してもよい。
【００７０】
ステップ２において、ポートモニタおよびＷＳＤ  ＡＰＩモジュール２２２は、イベント通知を受信し、かつスプーラ２２４に通知する。ステップ３において、スプーラ２２４は、プリントドライバ２１６に通知する。ステップ４において、プリントドライバ２１６は、（ステップ５のスプーラ２２４を経て）、ポートモニタおよびＷＳＤ  ＡＰＩモジュール２２２に、プリントデバイス２０４のデバイス能力を求めるリクエストを送る。リクエストは、例えば、プリントデバイス２０４のデバイス能力データを求めるリクエストを含むＳｅｎｄＲｅｃｖＢｉＤｉＤａｔａファンクションへのコールによってインプリメントされてもよい。この状態では、ＳｅｎｄＲｅｃｖＢｉＤｉＤａｔａファンクションは、ポートモニタおよびＷＳＤ  ＡＰＩモジュール２２２をコールする。
【００７１】
ステップ６において、ポートモニタおよびＷＳＤ  ＡＰＩモジュール２２２は、ＳＯＡＰエンベロープの形で、少なくとも、プリントドライバ２１６から受け取られたリクエストに基づき、ＳＯＡＰリクエストを生成し、ＳＯＡＰリクエストをプリントデバイス２０４に転送する。
【００７２】
ステップ７において、プリントデバイス２０４は、プリントデバイス２０４のデバイス能力データを含むＳＯＡＰレスポンスを（ＳＯＡＰエンベロープの形で）生成し、かつポートモニタおよびＷＳＤ  ＡＰＩモジュール２２２に送る。プリントデバイス２０４のデバイス能力データは、現在プリントデバイス２０４でサポートされる機能とオプションとを特定する。特定のインプリメンテーションに依存して、ＳＯＡＰレスポンスのデバイス能力データは、プリントデバイス２０４に利用できるデバイス能力データの全て、またはいかなる部分を含むものでもよい。例えば、イベント通知に応答して読み出されるデバイス能力データは、プリントデバイス２０４に利用できるデバイス能力データの全てを含んでもよい。あるいは、機能またはオプションの変更に対応するデバイス能力データだけが、プリントデバイス２０４から読み出されてもよい。加えて、デバイス能力データは、いかなる数のＳＯＡＰリクエスト、およびレスポンスを使用して読み出されてもよい。ＳＯＡＰレスポンスは、また、プリントデバイス２０４のためのデフォルトオプションを特定するデフォルトプリントチケットを含んでもよい。
【００７３】
ステップ８において、ポートモニタおよびＷＳＤ  ＡＰＩモジュール２２２は、（ステップ９のスプーラ２２４を経て）プリントドライバ２１６に、プリントデバイス２０４のデバイス能力データを含むレスポンスを送る。この場合において、ポートモニタおよびＷＳＤ  ＡＰＩモジュール２２２が、ＳＯＡＰレスポンスからＸＭＬ情報を抽出して、抽出された情報を含むレスポンスを生成してもよい。リクエストがＳｅｎｄＲｅｃｖＢｉＤｉＤａｔａファンクションのコールを使用してインプリメントされた場合、ファンクションコールに対するレスポンスは、プリントデバイス２０４からのデバイス能力データを含む。
【００７４】
ステップ１０において、プリントスキーマ生成（ＰＳＰ：Ｐｒｉｎｔ  Ｓｃｈｅｍａ  Ｐｒｏｄｕｃｉｎｇ）モジュール２１９は、本願明細書において前述したようにＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメント２４２を生成する。ＰＳＰモジュール２１９は、また、本願明細書において前述したように、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメント２４２をレジストリ２３６に保存する。あるいは、ＰＳＰモジュール２１９は、プリントデバイス２０４でサポートされる機能および／またはオプションの変更を反映するように、既存のＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメント２４２の更新を行ってもよい。
【００７５】
ステップ１１において、アプリケーションプログラム２１２は、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメント２４２を求めるリクエストをプリントドライバ２１６に行う。ステップ１２において、プリントドライバ２１６は、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメント２４２をレジストリ２３６から取り出し、かつＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメント２４２をアプリケーションプログラム２１２に送信する。ユーザがプリントデバイス２０４でサポートされる機能とオプションとを見ることができるよう、アプリケーションプログラム２１２は、ユーザインターフェース２１０に、ＧＵＩを生成する。ステップ１３において、アプリケーションプログラム２１２は、ユーザの（および／またはいかなるデフォルトの）選択に基づいて、プリントチケットドキュメントを生成し、かつプリントドライバ２１６にプリントデータ、およびプリントチケットドキュメントを送る。プリントドライバ２１６は、プリントチケットドキュメントに基づいてプリントジョブ・チケットを生成する。
【００７６】
あるいは、ステップ１１−１３に関連して、アプリケーションプログラム２１２は、プリントドライバ２１６にＧＵＩを生成することをリクエストする。これに応答して、ＵＩモジュール２１８は、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメント２４２に基づいてＧＵＩを生成する。ユーザは、ＧＵＩに表示される一つ以上の機能オプションを選ぶ。ＵＩモジュール２１８は、ユーザの（およびいかなるデフォルトの）選択をもプリントチケットドキュメントに格納する。プリントドライバ２１６は、それからプリントチケットドキュメントに基づいてプリントジョブ・チケットを生成する。
【００７７】
図６は、本発明の一実施例に基づいて、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメント２４２が生成され、あるいは更新される少なくとも２つのシナリオを表すフローチャートである。ステップ６１０において、新機能が、プリントデバイス２０４にインストールされる（または付加される）。例えば、多数のオプションを含む新規な孔あけ機能がプリントデバイス２０４にインストールされる。このプロセスはステップ６２０かステップ６３０へ進む。これは、プリントドライバがプリントデバイス２０４のためのクライアント・デバイス２０２にインストールされているかどうかに依存する。
【００７８】
プリントドライバがクライアント・デバイス２０２にインストールされていない場合、ステップ６２０で、プリントドライバ２１６がクライアント・デバイス２０２にインストールされる。プリントドライバ（例えばプリントドライバ２１６）がクライアント・デバイス２０２にすでにインストールされているシナリオにおいては、プリントデバイス２０４は、ステップ６３０において、デバイス機能変更イベントを生成し、かつクライアント・デバイス２０２にイベントを送る。プロセスは、ステップ６２０または６３０のどちらからでもステップ６４０に進む。ステップ６４０において、プリントドライバ２１６は、プリントデバイス２０４からプリントデバイス能力データ２２８を取り出す。ステップ６５０において、プリントドライバ２１６（またはＰＳＰモジュール２１９）は、プリントデバイス能力データ２２８において示された機能とオプションとの少なくとも一部のセットに基づき、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメント２４２を生成するかまたは更新する。したがって、プリントドライバ２１６は、インストールされているプリントドライバに応答するか、デバイス機能変更イベントに応答してＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメント２４２の最新版を生成する。
【００７９】
図７は、本発明の一実施例によって、新規なデバイス機能に基づいたユーザインターフェース７００を表すブロック図である。各々のデバイス機能は通常は複数のオプションに関連づけられる。そして、その一つがプリントジョブの機能のために選ばれる。この例では、新規なデバイス機能は「ＨｏｌｅＰｕｎｃｈ」である。ＵＩ７００の中で「Ｐｕｎｃｈ」として描かれている。この新規なデバイス機能に関連づけられたさまざまなオプションは、「ＯＦＦ」、「Ｌｅｆｔ２」、「Ｔｏｐ２」、「Ｒｉｇｈｔ２」、「Ｌｅｆｔ３」、「Ｔｏｐ３」、「Ｒｉｇｈｔ３」および「Ｌｅｆｔ４」である。
【００８０】
図８は、本発明の一実施例による、新規なデバイス機能および対応するオプションに基づいてＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメント２４２を更新するための方法を表すシーケンス図である。ステップ１において、プリントデバイス２０４は、プリント機能またはオプションの変更を示すイベントを生成する。このことは、プリント機能またはオプションの削除、追加または変更を含んでもよい。ポートモニタおよびＷＳＤ  ＡＰＩモジュール２２２は、このイベントを受信することを予約しており、かつイベントを受信する。例えば、ポートモニタおよびＷＳＤ  ＡＰＩモジュール２２２は、イベントを特定するＳＯＡＰメッセージの形で、イベント通知を受信してもよい。
【００８１】
ステップ２において、ポートモニタおよびＷＳＤ  ＡＰＩモジュール２２２は、イベント通知を受信し、かつスプーラ２２４に通知する。ステップ３において、スプーラ２２４は、ＵＩモジュール２１８に通知する。ステップ４において、ＵＩモジュール２１８は、ポートモニタおよびＷＳＤ  ＡＰＩモジュール２２２に（ステップ５のスプーラ２２４を経て）、プリントデバイス２０４のデバイス能力を求めるリクエストを送る。リクエストは、例えば、プリントデバイス２０４のデバイス能力データを求めるリクエストを含む、ＳｅｎｄＲｅｃｖＢｉＤｉＤａｔａファンクションへのコールによってインプリメントされてもよい。この状態では、ＳｅｎｄＲｅｃｖＢｉＤｉＤａｔａファンクションは、ポートモニタおよびＷＳＤ  ＡＰＩモジュール２２２にコールを送る。
【００８２】
ステップ６において、ポートモニタおよびＷＳＤ  ＡＰＩモジュール２２２は、少なくとも、ＵＩモジュール２１８から受け取ったリクエストに基づき、ＳＯＡＰエンベロープの形で、ＳＯＡＰリクエストを生成し、ＳＯＡＰリクエストをプリントデバイス２０４に転送する。
【００８３】
ステップ７において、プリントデバイス２０４は、（ＳＯＡＰエンベロープの形で）プリントデバイス２０４のデバイス能力データを含むＳＯＡＰレスポンスを生成し、かつポートモニタおよびＷＳＤ  ＡＰＩモジュール２２２に送る。プリントデバイス２０４のデバイス能力データは、現在プリントデバイス２０４でサポートされる一つ以上の機能とオプションとを特定する。特定のインプリメンテーションに依存して、ＳＯＡＰレスポンスのデバイス能力データは、プリントデバイス２０４に利用できるデバイス能力データのいかなる部分、または全てを含んでもよい。例えば、イベント通知に応答して読み出されるデバイス能力データは、プリントデバイス２０４に利用できるデバイス能力データの全てを含んでもよい。あるいは、機能またはオプションの変更に対応するデバイス能力データだけが、プリントデバイス２０４から読み出されてもよい。加えて、デバイス能力データは、いかなる数のＳＯＡＰリクエスト、およびレスポンスを使用して読み出されてもよい。
【００８４】
ステップ８において、ポートモニタおよびＷＳＤ  ＡＰＩモジュール２２２は、ＵＩモジュール２１８に（ステップ９のスプーラ２２４を経て）、プリントデバイス２０４のデバイス能力データを含むレスポンスを送る。このことは、ポートモニタおよびＷＳＤ  ＡＰＩモジュール２２２が、ＳＯＡＰレスポンスからＸＭＬ情報を抽出し、かつ抽出された情報を含むレスポンスを生成することを含んでもよい。リクエストがＳｅｎｄＲｅｃｖＢｉＤｉＤａｔａファンクションコールを使用してインプリメントされた状況において、ファンクションコールに対するレスポンスは、プリントデバイス２０４からのデバイス能力データを含む。
【００８５】
ステップ１０において、本願明細書で既に述べたように、ＵＩモジュール２１８は、プリントデバイス２０４のプリンタ・ディスクリプション・データ２３８を生成して、レジストリ２３６にプリンタ・ディスクリプション・データ２３８を保存する。あるいは、ＵＩモジュール２１８は、プリントデバイス２０４になされた機能および／またはオプションの変更を反映するために、プリントデバイス２０４の既存のプリンタ・ディスクリプション・データを更新してもよい。
【００８６】
ステップ１１において、ＰＳＰモジュール２１９は、新しいＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメント２４２を生成する（あるいは、少なくとも新規の、削除された、または変更された機能に基づき、既存のＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメントを更新する）。
【００８７】
ステップ１２において、アプリケーションプログラム２１２は、プリントドライバ２１６からＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメント２４２をリクエストする。そして、新しい（または更新された）ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメント２４２に基づいてユーザインターフェースを生成する。
ＶＩ．インプリメンテーション・メカニズム
【００８８】
一実施例によれば、本願明細書において記述されている技術は、一つ以上の特殊目的コンピューティング装置によってインプリメントされる。特殊目的コンピューティング装置は、本技術を実行するハードワイヤードの装置、またはデジタル電子デバイス（例えば本技術を実行するように永続的にプログラムされた一つ以上の特定用途向け集積回路（ＡＳＩＣ）またはフィールドプログラマブルゲートアレイ（ＦＰＧＡｓ））を含んでもよい。またはファームウェア、メモリ、その他の記憶装置またはこれらの組合せに格納されたプログラム命令に従って本技術を実行するようにプログラムされた一つ以上の汎用ハードウェアプロセッサを含んでもよい。この種の特殊目的コンピューティング装置は、また、本技術を達成するために、カスタムプログラミングを含む、カスタムハードワイヤードロジック、ＡＳＩＣまたはＦＰＧＡｓと結合してもよい。この特殊目的コンピューティング装置は、本技術をインプリメントするためにハードワイヤードおよび／またはプログラムロジックを組み込んだデスクトップ計算機システム、ポータブル計算機システム、携帯デバイス、ネットワーク・デバイスまたは他のいかなるデバイスであってもよい。
【００８９】
例えば、図９は、本発明の実施例がインプリメントされ得るコンピュータシステム９００を例示するブロック図である。コンピュータシステム９００は、バス９０２または情報を通信するための他の通信メカニズム、およびバス９０２に接続された処理情報のためのハードウェアプロセッサ９０４を含む。ハードウェアプロセッサ９０４は、例えば、汎用マイクロプロセッサであってもよい。
【００９０】
コンピュータシステム９００は、また、メインメモリ９０６を含む。例えば、プロセッサ９０４によって実行される情報および命令を保存するためにバス９０２に接続されたランダムアクセスメモリ（ＲＡＭ）または他の動的記憶装置デバイスが挙げられる。メインメモリ９０６は、また、プロセッサ９０４によって実行される命令の実行中に、一時的数値変数または他の中間の情報を保存するために使用されてもよい。この種の命令がプロセッサ９０４によってアクセスできる記憶媒体に保存されると、コンピュータシステム９００は、命令によって特定されるオペレーションを実行するためのカスタマイズされた特殊目的のマシンとなる。
【００９１】
コンピュータシステム９００は、読取り専用メモリ（ＲＯＭ）９０８、または、バス９０２に接続された、プロセッサ９０４のために静的情報および命令を保存するための他の静的記憶装置デバイスを更に含む。記憶装置９１０（例えば磁気ディスクまたは光ディスク）が設置され、情報および命令を保存するためにバス９０２に接続される。
【００９２】
コンピュータシステム９００は、情報をコンピュータユーザに表示するための表示装置９１２（例えばブラウン管（ＣＲＴ））に、バス９０２を経て接続されてもよい。入力装置９１４は、英数字、および他のキーを含み、プロセッサ９０４に情報、および命令選択を通信するためにバス９０２に接続される。他の種類のユーザ入力デバイスとしては、カーソル制御９１６、例えばマウス、トラックボールまたはカーソル方向キーがある。これらは、プロセッサ９０４に方向情報、および命令選択を通信し、かつ表示装置９１２上のカーソル移動の制御のためのものである。この入力装置は、通常は、２つの軸において２つの自由度を有する。第１の軸（例えばｘ）、および第２の軸（例えばｙ）で、デバイスが平面の位置を特定することができる。
【００９３】
コンピュータシステム９００は、カスタマイズされたハードワイヤードロジック、一つ以上のＡＳＩＣまたはＦＰＧＡｓ、ファームウェアおよび／またはプログラムロジックを使用して、本願明細書において記述されている技術をインプリメントしてもよい。これらは、コンピュータシステムと結合して、コンピュータシステム９００は特殊目的マシンとしてプログラムされる。一実施例によれば、本願明細書における技術は、メインメモリ９０６に格納された一つ以上の命令の一つ以上のシーケンスを実行するプロセッサ９０４に応答して、コンピュータシステム９００によって実行される。この種の命令は、他の記憶媒体（例えば記憶装置９１０）から、メインメモリ９０６に読み込まれてもよい。メインメモリ９０６に保存された命令のシーケンスを実行することによって、プロセッサ９０４は、本願明細書に記載されているプロセスステップを実行する代わりの実施例では、ハードワイヤードの回路は、ソフトウェア命令の代わりとして、またはこれと結合して使用されてもよい。
【００９４】
本願明細書において使用する「記憶媒体」の用語は、装置に特定の操作を実行させるデータおよび／または命令を保存するいかなるメディアをも指す。この種の記憶媒体は、不揮発性のメディアおよび／または揮発性のメディアを有してもよい。不揮発性のメディアとしては、例えば、光あるいは磁気ディスク（例えば記憶装置９１０）が含まれる。揮発性のメディアは、ダイナミック・メモリ（例えばメインメモリ９０６）を含む。記憶媒体の通常の形式は、例えば、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、ソリッドステートドライブ、磁気テープ、その他のいかなる磁気データ記憶媒体、ＣＤ−ＲＯＭ、その他のいかなる光学データ記憶媒体、孔パターンを有するいかなる物理メディア、ＲＡＭ、ＰＲＯＭ、ＥＰＲＯＭ、ＦＬＡＳＨ−ＥＰＲＯＭ、ＮＶＲＡＭ、その他のいかなるメモリーチップまたはカートリッジも含まれる。
【００９５】
記憶媒体は伝送媒体と区別されるが、伝送媒体と連動して使用されてもよい。伝送媒体は、記憶媒体間の情報を転送することに寄与する。例えば、伝送媒体は同軸ケーブル、銅線、および光ファイバーを含む。そして、バス９０２を有する導線を含む。伝送媒体は、また、音響または光波の形をとることができる。例えば、電波と赤外線データ通信との間で生成された形式をとることができる。
【００９６】
メディアのさまざまな形式によって、一つ以上の命令の一つ以上のシーケンスをプロセッサ９０４に実行させることができる。例えば、命令は、リモートコンピュータの磁気ディスクまたは固体ドライブに最初に保存されてもよい。リモートコンピュータは、命令をそのダイナミック・メモリへロードすることができ、かつモデムを使用して電話線を介して命令を送ることができる。コンピュータシステム９００に近接したモデムは、電話線上のデータを受信することができ、かつそのデータを赤外線の信号に変換するために、赤外線送信器を使用することができる。赤外線検出器は赤外線の信号に乗ったデータを受信することができ、かつ適切な回路がデータをバス９０２に送出することができる。バス９０２はデータをメインメモリ９０６へ運び、そこから、プロセッサ９０４は命令を読み出し、かつ実行する。メインメモリ９０６によって受け取られた命令は、プロセッサ９０４による実行の前または後で記憶装置９１０に任意に保存されてもよい。
【００９７】
コンピュータシステム９００は、また、バス９０２に接続された通信インターフェース９１８を含む。通信インターフェース９１８は、ネットワーク・リンク９２０に接続して双方向データ通信を提供する。ネットワーク・リンク９２０は、ローカルネットワーク９２２へ接続されている。例えば、通信インターフェース９１８は、総合サービスデジタルネットワーク（ＩＳＤＮ）カード、ケーブルモデム、衛星モデム、または対応する電話線へのデータ通信接続を提供するモデムであってもよい。別の例として、通信インターフェース９１８は、互換性を持つＬＡＮへのデータ通信接続を提供するローカル・エリア・ネットワーク（ＬＡＮ）カードであってもよい。また、無線リンクがインプリメントされてもよい。いずれの種類のインプリメンテーションにおいても、通信インターフェース９１８は、電気的、電磁的、光学的信号の様々な形の情報を含むデジタルデータストリームを伝送する。
【００９８】
ネットワーク・リンク９２０は、通常は他のデータ装置に一つ以上のネットワークによるデータ通信を提供する。例えば、ネットワーク・リンク９２０はホストコンピュータ９２４にローカルネットワーク９２２による接続を提供してもよい。あるいは、インターネット・サービス・プロバイダー（ＩＳＰ）９２６によって動作しているデータ機器に接続を提供してもよい。ＩＳＰ９２６は、世界的なパケット・データ通信網を介してデータ通信サービスを提供する。これは、現在インターネット９２８と共通に呼ばれている。ローカルネットワーク９２２、およびインターネット９２８は、両者とも、電気的、電磁的、光学的信号を使用してデジタルデータストリームを伝送する。さまざまなネットワークによる信号、およびネットワーク・リンク９２０上の信号、および通信インターフェース９１８を介した信号は、デジタルデータをコンピュータシステム９００に送信し、またこれから受信するための、伝送媒体の具体例である。
【００９９】
コンピュータシステム９００は、ネットワーク、ネットワーク・リンク９２０、および通信インターフェース９１８を介して、メッセージを送信し、データを受信することができる。これには、プログラムコードが含まれる。インターネットの例においては、サーバ９３０は、インターネット９２８、ＩＳＰ９２６、ローカルネットワーク９２２、および通信インターフェース９１８を介して、アプリケーションプログラムのためのリクエストされたコードを送信することができる。
【０１００】
受信されたコードは、そのままに受け取られてプロセッサ９０４によって実行されてもよく、および／または後の実行のために、記憶装置９１０またはその他の不揮発性記憶装置に保存されてもよい。
【０１０１】
以上の明細書において、本発明の実施例ごとに異なり得る特定の詳細事項を参照して説明した。したがって、何が本発明であるかという唯一の指標、および出願人によって意図された本発明は、本出願から特許発行された請求項のセットに基づく。これは、その後の補正を包含する。請求項に含まれる用語の明示的ないかなる定義も、請求項に用いられているとおりにその意味を定める。それ故、明示的に明記されていない限定、要素、性質、機能、有利な効果、または属性は、いかなる形であれ、その請求項の技術的範囲を限定することになってはならない。明細書および図面は、したがって、例示的なものであり、拘束的なものと解釈されない。
【０１０２】
（外１）
2011034562.tif 000005
【０１０３】
（外２）
2011034562.tif 000006
【０１０４】
（外３）
2011034562.tif 000007
【０１０５】
（外４）
2011034562.tif 000008
【０１０６】
（外５）
2011034562.tif 000009
【０１０７】
（外６）
2011034562.tif 000010
【０１０８】
（外７）
2011034562.tif 000011
【０１０９】
（外８）
2011034562.tif 000012
【０１１０】
（外９）
2011034562.tif 000013
【０１１１】
（外１０）
2011034562.tif 000014
【０１１２】
（外１１）
2011034562.tif 000015
【０１１３】
（外１２）
2011034562.tif 000016
【０１１４】
（外１３）
2011034562.tif 000017
【符号の説明】
【０１１５】
９００  コンピュータシステム
９０２  バス
９０４  プロセッサ
９０６  メインメモリ
９０８  ＲＯＭ
９１０  記憶装置
９１２  表示装置
９１４  入力装置
９１６  カーソル制御
９１８  通信インターフェース
９２０  ネットワーク・リンク
９２２  ローカルネットワーク
９２４  ホストコンピュータ
９２８  インターネット
９３０  サーバ
【先行技術文献】
【特許文献】
【０１１６】
【特許文献１】米国特許出願番号第１２／３９９，８８４号（２００９年３月６日出願）
【図１】
2011034562.tif 000018
【図２】
2011034562.tif 000019
【図３Ａ】
2011034562.tif 000020
【図３Ｂ】
2011034562.tif 000021
【図４】
2011034562.tif 000022
【図５】
2011034562.tif 000023
【図６】
2011034562.tif 000024
【図７】
2011034562.tif 000025
【図８】
2011034562.tif 000026
【図９】
2011034562.tif 000027