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