(57)【要約】【課題】様々な製造業者が、製品の価格や形だけでなく中身の技術的特徴によっても市場で競争できるようにすること。【解決手段】本方法は、コンピュータ周辺装置の機能を求めるリクエストをコンピュータ周辺装置に送信し、コンピュータ周辺装置から第１の機能を説明するデータを受信し、それに基づいて１つ以上のグラフィカルユーザインターフェース(GUI)要素を作成し、GUI要素の表示を引き起こし、GUIの１つ以上の選択肢を指すユーザ入力を受信し、ユーザ入力で表現されている選択されたGUI要素に基づいて、コンピュータ周辺装置が実行するジョブを記述するジョブチケットデータを生成し、それをコンピュータ周辺装置へ送信する。第１の機能説明は、リクエストの時点におけるデバイスの１つ以上の能力、特徴又は機能を記述する。ジョブチケットデータは、コンピュータ周辺装置が装置のコマンドに変換可能な１つ以上のデバイス設定を記述する。【選択図】図１
2009059364.tif 000002
【特許請求の範囲】
【請求項１】
デバイス機能プロデューサロジック及びジョブチケットコンシューマロジックを有するコンピュータ周辺装置と、
デバイス機能コンシューマロジック及びジョブチケットプロデューサロジックを有するデバイス機能検出アプリケーションとを有し、
前記デバイス機能プロデューサロジックは、１つ以上のコンピュータ読取可能な記憶媒体に実行に備えてエンコードされ、起動されると、
前記コンピュータ周辺装置の機能を求めるリクエストを前記デバイス機能検出アプリケーションから受信すること、
前記リクエストを受信した時点における前記コンピュータペリフェラル装置の１つ以上の機能を確認すること、及び
前記コンピュータ周辺装置から前記デバイス機能検出アプリケーションへ機能に関する第１の機能説明を送ることを実行し、
前記デバイス機能コンシューマロジックは、１つ以上のコンピュータ読取可能な記憶媒体に実行に備えてエンコードされ、起動されると、
前記コンピュータ周辺装置から前記第１の機能説明を受信すること、
前記第１の機能説明に基づいて１つ以上のグラフィカルユーザインターフェース(GUI)要素を作成し、該GUI要素の表示を引き起こすこと、及び
前記GUI要素の１つ以上の選択肢を指すユーザ入力を受信することを実行し、
前記ジョブチケットプロデューサロジックは、１つ以上のコンピュータ読取可能な記憶媒体に実行に備えてエンコードされ、起動されると、
前記ユーザ入力で示されている選択されたGUI要素に基づいて、前記コンピュータ周辺装置の実行するジョブを説明するジョブチケットデータを生成すること、及び
前記ジョブチケットデータを前記コンピュータ周辺装置に送ることを実行し、
前記ジョブチケットコンシューマロジックは、１つ以上のコンピュータ読取可能な記憶媒体に実行に備えてエンコードされ、起動されると、
前記コンピュータ周辺装置用の１つ以上のデバイス固有の処理コマンドに、前記ジョブチケットデータを変換すること、及び
前記コンピュータ周辺装置が
前記処理コマンドを実行するのを引き起こすことを実行する
ようにしたデータ処理システム。
【請求項２】
前記コンピュータ周辺装置が、プリンタ、複合機、スキャナ、仕上げ装置、ディジタルカメラ又はモニタの何れかを有する請求項１記載のデータ処理システム。
【請求項３】
前記デバイス機能検出アプリケーションが、デバイスドライバを有する請求項１記載のデータ処理システム。
【請求項４】
前記デバイス機能検出アプリケーションがデータ通信ロジックを更に有し、該データ通信ロジックは、起動されると、前記デバイス機能検出アプリケーションから前記コンピュータ周辺装置へ、装置に依存しないジョブデータを送信することを引き起こすようにした請求項１記載のデータ処理システム。
【請求項５】
前記デバイス機能プロデューサロジックが或るロジックを更に有し、該ロジックは、起動されると、
前記コンピュータ周辺装置の機能を求める第２のリクエストを前記デバイス機能検出アプリケーションから受信すること、
前記第２のリクエストを受信した時点における前記コンピュータペリフェラル装置の１つ以上の第２の機能を確認すること、及び
前記コンピュータ周辺装置から前記デバイス機能検出アプリケーションへ第２の機能説明を送ることを実行し、
前記第２の機能は前記コンピュータ周辺装置の変更された機能を含むようにした請求項１記載のデータ処理システム。
【請求項６】
前記ジョブチケットデータは、前記第１の機能の説明の一部を含む請求項１記載のデータ処理システム。
【請求項７】
前記第１の機能の説明は、前記コンピュータ周辺装置の特徴、前記特徴のプロパティに関する属性名、プロパティの値及びプロパティのオプションのリストを、ジョブ記述フォーマット(JDF)又はプリントスキーマ仕様の何れかの表現形式で含むようにした請求項１記載のデータ処理システム。
【請求項８】
前記第１の機能説明は、前記コンピュータ周辺装置の特徴及び１つ以上の制約特徴のリストを含み、前記１つ以上の制約特徴は、(a)前記機能の利用可能性に関する制限又は(b)別の機能を利用することにより又は別の機能の別の設定により要求される機能に関する設定を含むようにした請求項１記載のデータ処理システム。
【請求項９】
前記デバイス機能コンシューマロジックは或るロジックを更に有し、該ロジックは起動されると、利用可能な複数の周辺装置のリストを生成及び表示し、該利用可能な周辺装置の１つを選択していることを表す第２のユーザ入力を受信し、前記第２のユーザ入力で表現されている利用可能な周辺装置の内選択されたものにリクエストを送ることを引き起こすようにした請求項１記載のデータ処理システム。
【請求項１０】
１つ以上の命令シーケンスと共にエンコードされたコンピュータ読取可能な記憶媒体であって、該命令シーケンスは、起動されると、或る手順を１つ以上のプロセッサに実行させ、該手順は、
コンピュータ周辺装置の機能を求めるリクエストをコンピュータ周辺装置に送信すること、
前記コンピュータ周辺装置から第１の機能説明を受信すること、
前記第１の機能説明に基づいて１つ以上のグラフィカルユーザインターフェース(GUI)要素を作成し、該GUI要素の表示を引き起こすこと、
前記GUIの１つ以上の選択肢を指すユーザ入力を受信すること、
前記ユーザ入力で表現されている選択されたGUI要素に基づいて、前記コンピュータ周辺装置が実行するジョブを記述するジョブチケットデータを生成すること、
前記ジョブチケットデータを前記コンピュータ周辺装置へ送信すること  
を有し、前記第１の機能説明は、前記リクエストの時点におけるデバイスの１つ以上の能力、特徴又は機能を記述し、
前記ジョブチケットデータは、前記コンピュータ周辺装置が装置のコマンドに変換可能な１つ以上のデバイス設定を記述しているようにしたコンピュータ読取可能な記憶媒体。
【請求項１１】
前記コンピュータ周辺装置が、プリンタ、複合機、スキャナ、仕上げ装置、ディジタルカメラ又はモニタの何れかを有する請求項１０記載のコンピュータ読取可能な記憶媒体。
【請求項１２】
デバイスドライバを有する請求項１０記載のコンピュータ読取可能な記憶媒体。
【請求項１３】
データ通信ロジックを更に有し、該データ通信ロジックは、起動されると、前記コンピュータ周辺装置へ、装置に依存しないジョブデータを送信することを引き起こすようにした請求項１０記載のコンピュータ読取可能な記憶媒体。
【請求項１４】
前記ジョブチケットデータは、前記第１の機能の説明の一部を含む請求項１０記載のコンピュータ読取可能な記憶媒体。
【請求項１５】
前記第１の機能の説明は、前記コンピュータ周辺装置の特徴、前記特徴のプロパティに関する属性名、プロパティの値及びプロパティのオプションのリストを、ジョブ記述フォーマット(JDF)又はプリントスキーマ仕様の何れかの表現形式で含むようにした請求項１０記載のコンピュータ読取可能な記憶媒体。
【請求項１６】
前記第１の機能説明は、前記コンピュータ周辺装置の特徴及び１つ以上の制約特徴のリストを含み、前記１つ以上の制約特徴は、(a)前記機能の利用可能性に関する制限又は(b)別の機能を利用することにより又は別の機能の別の設定により要求される機能に関する設定を含むようにした請求項１０記載のコンピュータ読取可能な記憶媒体。
【請求項１７】
コンピュータで使用される方法であって、
コンピュータ周辺装置の機能を求めるリクエストをコンピュータ周辺装置に送信するステップと、
前記コンピュータ周辺装置から第１の機能説明を受信するステップと、
前記第１の機能説明に基づいて１つ以上のグラフィカルユーザインターフェース(GUI)要素を作成し、該GUI要素の表示を引き起こすステップと、
前記GUIの１つ以上の選択肢を指すユーザ入力を受信するステップと、
前記ユーザ入力で表現されている選択されたGUI要素に基づいて、前記コンピュータ周辺装置が実行するジョブを記述するジョブチケットデータを生成するステップと、
前記ジョブチケットデータを前記コンピュータ周辺装置へ送信するステップと、  
を有し、前記第１の機能説明は、前記リクエストの時点におけるデバイスの１つ以上の能力、特徴又は機能を記述し、
前記ジョブチケットデータは、前記コンピュータ周辺装置が装置のコマンドに変換可能な１つ以上のデバイス設定を記述しているようにしたコンピュータで使用される方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータデバイスドライバに関連する。
【背景技術】
【０００２】
周辺装置はコンピュータに結合可能である。コンピュータ上で動作するアプリケーションプログラムは、通常、デバイスドライバを介して周辺装置を制御し、様々な種類の周辺装置の各々について、様々な特定のデバイスドライバが使用される。デバイスドライバは、一般的には、デバイスタイプ、プロセッサ及びそのデバイスドライバが動作しているオペレーティングシステム(プラットフォーム)に対して特有であり、しばしば、プラットフォームが生成するデータのタイプに対してさえ特有である。
【０００３】
各デバイスドライバは、オペレーティングシステムやアプリケーションプログラムに関するインターフェースとして機能し、周辺装置と通信を行う。デバイスドライバは一般的には周辺装置のハードウエアに依存しており、各デバイスドライバは特定のタイプの周辺装置のハードウエア(例えば、プリンタ、スキャナ、ビデオアダプタ、ネットワークインターフェースカード、サウンドカード、ディジタルカメラ等)について設計される。
【０００４】
プリンタ装置の場合、デバイスドライバはプリンタドライバと呼ばれ、図形オブジェクトを生成するアプリケーションプログラムとやりとりを行い、その図形オブジェクトは紙等に印刷可能なデータである。プリンタドライバは、出力用紙トレイ及び用紙サイズのようなプリンタ装置のハードウエア特性及び設定も制御する。プリンタドライバは、アプリケーションプログラムから発せられたリクエストを、ポストスクリプト,PCL,PJL等のようなプリンタ固有の制御言語(PDL:  Page  Description  Language)に変換する。プリンタドライバ及びプリンタ装置のハードウエア間で通信されるデータは、PDLデータストリーム内で一緒に混ざっているハードウエア制御コマンド及び印刷可能なデータの双方を含む。  
あるハイエンド向けのプリンタ装置(特に、商用に使用されるもの又は大規模な製造印刷環境で使用されるもの)は、ジョブ定義フォーマット(JDF:  Job  Definition  Format)で表現されるコマンドを使用するチケットベースのプリンタ制御(機能)をサポートする。JDFは、あるデータストリームでプリンタ向けのジョブチケットベースプリンタ制御コマンド、及び別の時点でプリンタに送信される第２データストリーム中の印刷可能なデータをプリンタドライバがプリンタへ送ることを可能にする。このようにJDFを用いる場合、制御コマンド及び印刷可能なデータが混ざってしまう。
【０００５】
典型的なアプローチの場合、ある特定の周辺装置に関する特定のジョブに備えてジョブ関連設定値を設定する際、あるアプリケーションがデバイスドライバを起動し、一定のユーザインターフェースを表示し、そのインターフェースを介してユーザは様々なハードウェア特性の設定値等に関するパラメータ値又は他のジョブ設定値を選択できる。ドライバは選択内容を解釈し、その選択内容を一群のジョブ設定データに変換する。ドライバはジョブ設定データを装置に送り、その際、実際のジョブデータと共に束ねて送ってもよいし、或いは「ジョブチケット(job  ticket)」と呼ばれるメッセージ又はデータ構造を用いて別個に送ってもよい。
【０００６】
従来のデバイスドライバの開発は複雑である。周辺装置の製造業者は、通常、多様な幅広いドライバを開発するためにかなりの資源を投入し、その製造業者及び目的のコンピュータプラットフォームによりなされる総てに配慮する必要がある。更に、デバイスドライバで用意されるユーザインターフェースは、通常は一定の固定されたものであり、装置が新たな特徴と共にアップグレードされた場合、製造業者はそのドライバをアップグレードし、アップグレードされたユーザインターフェースでその新たな特徴を提示するようにする必要がある。従って従来のデバイスドライバは、通常、周辺装置の各々のタイプについて別個のドライバを有する。
【０００７】
この種の技術に付随する問題は、ドライバが、ベンダの拡張性をサポートしない場合があることである。ユニバーサルシリアルバス(USB)フラッシュメモリストレージ装置は周辺装置の一例であり、従来のデバイスドライバに伴う制約の影響を受ける。現在のマイクロソフト社が提供するウインドウズの環境の場合、一般的なUSBストレージ装置又は「メモリスティック」は、その装置に対して読み書きするのに新たなソフトウエアをユーザがインストールすることを要しない。なぜなら、マイクロソフト社が提供するウインドウズXP及びマイクロソフト社が提供するウインドウズビスタが標準的なUSBストレージデバイスドライバを持っているからである。これは便利ではあるが、競合するUSBストレージ装置の製造業者は、ウインドウズのデバイスドライバでサポートされている標準仕様に従わなければならない。このような場合、製造業者に固有の特徴を持つことはできず、様々な製造業者は、価格や形に基づいて市場で競争することしかできず、中身の技術的な特徴で競争することはできない。
【０００８】
マイクロソフト社は、XMLペーパ仕様(XPS:  XML  Paper  Specification)と呼ばれる書類フォーマットを導入しており、それはプリンタ装置のハードウエアを制御することに備えて、プリントスキーマ(Print  Schema)と呼ばれるジョブチケットを含む。
【０００９】
スキャナドライバと呼ばれるスキャナ装置用のデバイスドライバは、走査された画像を取り出すためのアプリケーションプログラムとやりとりを行う。スキャナドライバ及びスキャナ装置間で通信されるデータは、スキャンされた画像データ及びスキャナ装置固有の制御コマンドを含む。画像データ及びスキャナ制御コマンドは、TWAINのようなフォーマットの中で一緒に混在してもよい。
【００１０】
このセクションで説明されるアプローチは追跡可能なアプローチであるが、考察又は追跡が過去になされているアプローチであるとは限らない。従って、特に断りのない限り、このセクションで説明されるどのアプローチも、このセクションに含まれているという理由だけで従来技術と考えるよう仮定されるべきではない。
【発明の開示】
【発明が解決しようとする課題】
【００１１】
様々な製造業者が、製品の価格や形だけでなく、中身の技術的特徴によっても市場で競争できるようにするのに相応しい装置及び方法を提供することである。
【課題を解決するための手段】
【００１２】
一実施例ではデータ処理システムが使用され、該データ処理システムは、デバイス機能プロデューサロジック及びジョブチケットコンシューマロジックを有するコンピュータ周辺装置と、デバイス機能コンシューマロジック及びジョブチケットプロデューサロジックを有するデバイス機能検出アプリケーションとを有し、前記デバイス機能プロデューサロジックは、１つ以上のコンピュータ読取可能な記憶媒体に実行に備えてエンコードされ、起動されると、前記コンピュータ周辺装置の機能を求めるリクエストを前記デバイス機能検出アプリケーションから受信すること、前記リクエストを受信した時点における前記コンピュータペリフェラル装置の１つ以上の機能を確認すること、及び前記コンピュータ周辺装置から前記デバイス機能検出アプリケーションへ機能に関する第１の機能説明を送ることを実行し、前記デバイス機能コンシューマロジックは、１つ以上のコンピュータ読取可能な記憶媒体に実行に備えてエンコードされ、起動されると、前記コンピュータ周辺装置から前記第１の機能説明を受信すること、前記第１の機能説明に基づいて１つ以上のグラフィカルユーザインターフェース(GUI)要素を作成し、該GUI要素の表示を引き起こすこと、及び前記GUI要素の１つ以上の選択肢を指すユーザ入力を受信することを実行し、  前記ジョブチケットプロデューサロジックは、１つ以上のコンピュータ読取可能な記憶媒体に実行に備えてエンコードされ、起動されると、前記ユーザ入力で示されている選択されたGUI要素に基づいて、前記コンピュータ周辺装置の実行するジョブを説明するジョブチケットデータを生成すること、及び前記ジョブチケットデータを前記コンピュータ周辺装置に送ることを実行し、前記ジョブチケットコンシューマロジックは、１つ以上のコンピュータ読取可能な記憶媒体に実行に備えてエンコードされ、起動されると、前記コンピュータ周辺装置用の１つ以上のデバイス固有の処理コマンドに、前記ジョブチケットデータを変換すること、及び前記コンピュータ周辺装置が前記処理コマンドを実行するのを引き起こすことを実行するようにしたデータ処理システムである。
【００１３】
一実施例では、前記コンピュータ周辺装置が、プリンタ、複合機、スキャナ、仕上げ装置、ディジタルカメラ又はモニタの何れかを有する。一実施例では、前記デバイス機能検出アプリケーションが、デバイスドライバを有する。
【００１４】
一実施例では、前記デバイス機能検出アプリケーションがデータ通信ロジックを更に有し、該データ通信ロジックは、起動されると、前記デバイス機能検出アプリケーションから前記コンピュータ周辺装置へ、装置に依存しないジョブデータを送信することを引き起こす。
【００１５】
一実施例では、前記デバイス機能プロデューサロジックが或るロジックを更に有し、該ロジックは、起動されると、前記コンピュータ周辺装置の機能を求める第２のリクエストを前記デバイス機能検出アプリケーションから受信すること、前記第２のリクエストを受信した時点における前記コンピュータペリフェラル装置の１つ以上の第２の機能を確認すること、及び前記コンピュータ周辺装置から前記デバイス機能検出アプリケーションへ第２の機能説明を送ることを実行し、前記第２の機能は前記コンピュータ周辺装置の変更された機能を含む。第２のリクエストは様々な方法でトリガを受けててもよい。一実施例では、周辺装置が変更された場合(例えば、新たな、更新された或いは変更された能力、特徴又はオプションを含むような場合)、デバイス機能コンシューマロジックは、変更された機能に基づいて、周辺装置のその時点での機能を取得してGUIを作り直す別のプロセスを始めることができる。一実施例では、このアプローチは、プリンタ又は他の周辺装置で新たな機能を反映している新たなドライバを再構築可能にする。
【００１６】
一実施例では、前記ジョブチケットデータは、前記第１の機能の説明の一部を含む。一実施例では、前記第１の機能の説明は、前記コンピュータ周辺装置の特徴、前記特徴のプロパティに関する属性名、プロパティの値及びプロパティのオプションのリストを、ジョブ記述フォーマット(JDF)又はプリントスキーマ仕様の何れかの表現形式で含む。
【００１７】
一実施例では、前記第１の機能説明は、前記コンピュータ周辺装置の特徴及び１つ以上の制約特徴のリストを含み、前記１つ以上の制約特徴は、(a)前記機能の利用可能性に関する制限又は(b)別の機能を利用することにより又は別の機能の別の設定により要求される機能に関する設定を含む。
【００１８】
一実施例では、前記デバイス機能コンシューマロジックは或るロジックを更に有し、該ロジックは起動されると、利用可能な複数の周辺装置のリストを生成及び表示し、該利用可能な周辺装置の１つを選択していることを表す第２のユーザ入力を受信し、前記第２のユーザ入力で表現されている利用可能な周辺装置の内選択されたものにリクエストを送ることを引き起こす。
【００１９】
一実施例では、１つ以上の命令シーケンスと共にエンコードされたコンピュータ読取可能な記憶媒体が使用され、該命令シーケンスは、起動されると、或る手順を１つ以上のプロセッサに実行させ、該手順は、コンピュータ周辺装置の機能を求めるリクエストをコンピュータ周辺装置に送信すること、前記コンピュータ周辺装置から第１の機能説明を受信すること、前記第１の機能説明に基づいて１つ以上のグラフィカルユーザインターフェース(GUI)要素を作成し、該GUI要素の表示を引き起こすこと、前記GUIの１つ以上の選択肢を指すユーザ入力を受信すること、前記ユーザ入力で表現されている選択されたGUI要素に基づいて、前記コンピュータ周辺装置が実行するジョブを記述するジョブチケットデータを生成すること、前記ジョブチケットデータを前記コンピュータ周辺装置へ送信することを有し、前記第１の機能説明は、前記リクエストの時点におけるデバイスの１つ以上の能力、特徴又は機能を記述し、前記ジョブチケットデータは、前記コンピュータ周辺装置が装置のコマンドに変換可能な１つ以上のデバイス設定を記述している。
【００２０】
一実施例では、コンピュータで使用される方法が使用され、当該方法は、コンピュータ周辺装置の機能を求めるリクエストをコンピュータ周辺装置に送信するステップと、前記コンピュータ周辺装置から第１の機能説明を受信するステップと、前記第１の機能説明に基づいて１つ以上のグラフィカルユーザインターフェース(GUI)要素を作成し、該GUI要素の表示を引き起こすステップと、前記GUIの１つ以上の選択肢を指すユーザ入力を受信するステップと、前記ユーザ入力で表現されている選択されたGUI要素に基づいて、前記コンピュータ周辺装置が実行するジョブを記述するジョブチケットデータを生成するステップと、前記ジョブチケットデータを前記コンピュータ周辺装置へ送信するステップとを有し、前記第１の機能説明は、前記リクエストの時点におけるデバイスの１つ以上の能力、特徴又は機能を記述し、前記ジョブチケットデータは、前記コンピュータ周辺装置が装置のコマンドに変換可能な１つ以上のデバイス設定を記述している。
【００２１】
他の実施例はコンピュータで使用される方法及び上記のステップに従って構築される装置を含む。
【発明を実施するための最良の形態】
【００２２】
説明を目的とする以下の詳細な説明では、本発明の十分な理解を図るため、様々な具体的な詳細が述べられる。しかしながら、本発明はそのような具体的詳細なしに実施されてもよいことは明白であろう。また、本発明を不必要に曖昧にするかもしれないことを避けるため、周知の構造及び装置はブロック図形式で示される。
【実施例１】
【００２３】
１．０  構造及び機能の概要
概して、以下に説明される技法は、デバイス機能及びジョブチケットをやりとりすることで、開発及び配備されるソフトウエアが、新たな周辺装置及び周辺装置の新たな機能をサポートすることを可能にする。本技法の場合、新たなデバイスドライバをリリースせずに及びユーザがソフトウエアをアップデートすることを強制せずに、周辺装置の製造業者は新たな製品及び新たな機能を導入できる。
【００２４】
一実施例では、デバイスドライバが本技法を使用する際、アプリケーションプログラムは、従来のデバイスドライバと通信するアプリケーションプログラムと同じ方法でデバイスドライバと通信する。本技法を実現するデバイスドライバを利用する際、アプリケーションプログラムは一切変更されなくてよい。
【００２５】
一実施例では、１つのドライバが或る総てのデバイスと共に動作可能であり、それらのデバイスは、各自自身の機能及び特徴をそのドライバが理解できる方法で説明できる。従って１つのドライバが複数の周辺装置と共に機能することができ、周辺装置及びコンピュータプラットフォームの総ての組み合わせについて多数のドライバを書き込む必要はない。
【００２６】
一実施例では、ジョブデータはジョブ設定データ及びデバイス機能データとは別個である。ドライバはジョブチケットを周辺装置に送るが、ドライバは、そのジョブチケットと同じ時点でジョブデータをデバイスに送る必要はない。
【００２７】
実施例は、ジョブデータがジョブ設定値と別個に定義される様々な環境で使用可能である。例えば、印刷システムの場合、アプリケーションプログラム、デバイスドライバ及びプリンタドライバは、ジョブ設定データとは独立にジョブデータを生成及び使用できる。一実施例では、ウェブサービス印刷法が使用される。アプリケーションプログラム及びドライバは、印刷チケットメッセージ又はジョブチケットメッセージをジョブデータパッケージとは別にプリンタに送り、プリンタドライバは、２つの部分を別個に処理し、ジョブデータから印刷出力を生成する際、プリントチケットの設定を適用する。
【００２８】
２．０  実施例
図１は、デバイス機能検出アプリケーション(device  capability  aware  application)及び自身の機能を自覚する周辺装置(capability  aware  peripheral  device)が使用されるコンピュータシステム例を示す。一実施例では、ユーザ102はホストコンピュータ104と利用する。ホストコンピュータは、パーソナルコンピュータ、ワークステーション、サーバ、無線通信装置又は他の如何なる形式のホストコンピュータで形成されてもよい。ホストコンピュータはオペレーティングシステム106を有する。このオペレーティングシステムは、デバイス機能検出アプリケーションプログラム110に対するを制御する。ホストコンピュータはインターフェース108を更に有し、インターフェースは、1つ以上のネットワーク116を介して、１つ以上の自身が有する機能を自覚する周辺装置112,114に直接的に又は間接的に結合される。
【００２９】
オペレーティングシステム106の具体例は、リナックス(LINUX)、ユニックス(UNIX(登録商標))、アップル社のMAC−OS及びマイクロソフトウインドウズ(MICROSOFT  WINDOWS(登録商標))を含む。デバイス機能検出アプリケーションプログラム110は、周辺装置112,114に関連する処理を有効に実行できる如何なるコンピュータプログラムを含んでいてもよい。アプリケーションプログラム110の具体例は、デバイスドライバ、ワードプロセッサ、スプレッドシート、電子メールクライアント及びデータベースクライアントを含む。
【００３０】
インターフェース108は、ホストコンピュータ104、周辺装置112,114及びネットワーク116の間でデータを通信できるハードウエア、ファームウエア、ソフトウエア又はそれらの組み合わせの如何なるものを含んでもよい。インターフェース108の具体例はネットワークインターフェースカード(NIC)を含み、イーサーネットインターフェース、ユニバーサルシリアルバス(USB)インターフェース、シリアルインターフェース、IEEE1394(FIREWIRE)インターフェース及びパラレルポートを含む。機密データ通信インターフェースが使用されてもよく、本実施例は標準仕様のインターフェースを必須としない。
【００３１】
本実施例は如何なる種類のコンピュータ周辺装置と共に使用されてもよい。本実施例が共に使用されてもよい周辺装置112,114の具体例は、プリンタ、スキャナ、複合機、仕上げ装置（例えば、製本機、糊付け機やソーター等を含みうる）、カメラ、ストレージシステム等を含む。図１は簡明化の観点から２つの周辺装置112,114を単に示しているが、本実施例は同一の又は異なるいくつの周辺装置と共に機能してもよい。
【００３２】
デバイス機能検出アプリケーション110は、本願で説明される機能を実現する１つ以上の記憶された命令シーケンスその他のソフトウエア要素を含んでよい。一般に、デバイス機能検出アプリケーション110は、オペレーティングシステム106又はアプリケーション110からの機能呼び出しを受け、どの周辺装置112,114ともやりとりでき、アプリケーションプログラムが始めるジョブを周辺装置が実行することを引き起こす。デバイス機能検出アプリケーション110は、デバイスドライバを含んでもよい。デバイス機能検出アプリケーション110は、以下更に説明される特徴又は機能の説明を用意できる如何なる周辺装置112,114と共に処理を行える。デバイス機能検出アプリケーション110は、オペレーティングシステム106、アプリケーションプログラム110、ホストコンピュータ104の他のソフトウエア要素若しくはファームウエア要素と統合されてもよく、本実施例では、デバイス機能検出アプリケーションをスタンドアローンソフトウエア要素として実現することは必須でない。
【００３３】
図２は、図１のデバイス機能検出アプリケーション及び自身の機能を自覚する周辺装置（以下、機能自覚周辺装置）間でデータが通信される様子を示す。一実施例では、デバイス機能検出アプリケーション110は、デバイス機能コンシューマロジック202及びジョブチケットプロデューサロジック204を有する。機能自覚周辺装置112は、デバイス機能プロデューサロジック212及びジョブチケットコンシューマロジック214を有する。
【００３４】
デバイス機能コンシューマロジック202は、デバイス機能データ206を受信及び理解する。ジョブチケットプロデューサロジック204は、ジョブチケットデータ208を生成し、それをジョブチケットコンシューマロジック214に送信する。デバイス機能プロデューサロジック212は、デバイス機能データ206を生成し、それをデバイス機能検出アプリケーション110に送信する。ジョブチケットコンシューマロジック214は、ジョブチケットを受信及び理解し、それを機能自覚周辺装置112に関するコマンドとして実行する。
【００３５】
デバイス機能データ206は、機能自覚周辺装置112の１つ以上の能力、特徴又は機能を記述するデータを有する。機能自覚周辺装置112は、デバイス機能データ206を生成し、それをデバイス機能検出アプリケーション110に提供する。デバイス機能データ206はアプリケーション110からのリクエストの時点で生成され、従ってデバイス機能データ206は機能自覚周辺装置112のそのリクエストの時点での能力、特徴及び機能の説明を含むことができる。デバイス機能データ206は、その機能自覚周辺装置112がサポートする言語を示し、本願の技法を用いて生成された結果のユーザインターフェースが様々な言語に適合するようにする。
【００３６】
デバイス能力データ206は様々なフォーマット、方法及び手段で使用されてもよい。様々な実施例で使用されるデバイス機能データ206の具体例は、XML、XMLベースの表現物、HTML等を含む。本実施例はXMLに限定されず、デバイスの機能を記述する他の如何なる具体的な方法又は手段が使用されてもよい。但し、デバイス機能データ206で表現されるデバイス機能の表現は、デバイスに依存しないデバイス非依存データ210から分離される。
【００３７】
ジョブチケット208は、設定の記述を有し、アプリケーション110から機能自覚周辺装置112へ送信し、デバイス非依存データ210の全部又は一部に関連する特定のジョブをどのように処理するかをデバイスに指示する。一実施例では、デバイス機能検出アプリケーション110は、１つ以上のジョブチケット208を機能自覚周辺装置112に通知する。一般に、ジョブチケット208は或る選択内容を機能自覚周辺装置112に通知するデータを有し、その選択内容は、デバイス機能データ206で表現されるような機能自覚周辺装置１１２の利用可能な機能の中から、ユーザ、アプリケーション又はシステムが選択したものである。例えば、ジョブチケット208は、用紙サイズ、白黒・カラー、用紙トレイ、仕上げオプション（ステープラーやパンチの有無）又は他のジョブ設定を特定してもよい。様々な実施例の中で、ジョブチケット208はXMLで表現されてもよいし、ウェブサービスチケットのフォーマットで表現されてもよいし、一群の名前の値の対で表現されてもよいし、或いは他の記述的なテキスト又はデータで表現されてもよい。
【００３８】
デバイス非依存データ210は、機能自覚周辺装置112に使用可能なデータを含むが、何らかのハードウエア固有（つまり、機能自覚周辺装置１１２に固有）のコマンドを含んでいない。スキャナ、ディジタルカメラ又はモニタのような静止画を処理する装置の場合、デバイス非依存データ210はJPEG、TIFF又はGIF画像データで構成されてもよい。プリンタの場合、デバイス非依存データ210はPDFファイル、EPS、ポストスクリプトファイル等を含み、ハードウエア制御コマンドを含まないようにしてもよい。或いは、ハードウエア制御コマンドを一切含まない又は最小限のセットしか含まない何らかのPDL及びPCLデータが、デバイス非依存データ210として使用可能である。
【００３９】
一実施例では、デバイス機能検出アプリケーション110及び機能自覚周辺装置112は、何らかの形式の基本的なアプリケーションレイヤ通信プロトコルを使ってデータを通信し、そのプロトコルは、デバイス機能検出アプリケーション110及び機能自覚周辺装置112がサポートできるものである。図２は説明の簡明化のため１つの機能自覚周辺装置112を示しているが、デバイス機能検出アプリケーション110と、それと共に動作する如何なる機能自覚周辺装置112との間で図２の通信がなされてもよい。
【００４０】
一実施例では、プロトコルはウェブサービスを含み、デバイス機能検出アプリケーション110及び機能自覚周辺装置112の各々がウェブサービス機能を実現する。例えば、デバイス機能検出アプリケーション110及び機能自覚周辺装置112の各々は、ウェブサービスロジックを有し、ウェブサービスロジックは、ワールドワイドウェブコンソーシアム(w3c)のウェブサービス規格に従ってアプリケーションレイヤメッセージを生成可能であり、且つそのようなメッセージを解釈及び処理できる。
【００４１】
図３は、コンピュータの周辺装置の機能ベース制御のプロセス例を示す。
【００４２】
一実施例では、デバイス機能検出装置は、デバイス機能データ206を生成し、そのデータをデバイス機能検出アプリケーションに送る。例えば、図２のように、機能自覚周辺装置112は、その周辺装置１１２の能力、特徴及び機能を記述するデバイス機能データ206を生成し、そのデータ２０６をデバイス機能検出アプリケーション110に送る。デバイス機能データ206の生成は、例えば、デバイス機能検出アプリケーション110からのリクエストを機能自覚周辺装置112が受信したことに応じてなされてもよい。機能自覚周辺装置112とやりとりを行う（例えば、書類を印刷したり、書類をスキャンしたりするために）ことに備えて、他のアプリケーションからのリクエストを受けたことに応じて、デバイス機能検出アプリケーション110が、そのようなリクエストを発行してもよい。
【００４３】
ステップ302では、デバイス機能データ206を受信したことに応じて、デバイス機能検出アプリケーション110は、デバイス機能データ206をユーザインタフェースデータに変換し、ブロック304に図示されるように、ユーザインターフェースが表示されることを引き起こす。例えば、デバイス機能検出アプリケーション110はデバイス機能データ206をツリー形式に変換し、当該ツリー形式の情報を利用して、ホストコンピュータ104のディスプレイに、ユーザインタフェースに変換して、その表示が現れるようにする。
【００４４】
ステップ306では、１つ以上の選択肢を選択しているユーザ入力が受け取られる。例えば、デバイス機能検出アプリケーション110は、ツリー形式のオプションに関するユーザ選択内容を表現するユーザ入力を受け取る。
【００４５】
これに応答して、ステップ308では、ジョブチケットデータが、その選択に基づいて生成される。例えば、アプリケーション110は、そのデバイス機能データ206に基づいて、受信したユーザからの入力をジョブチケット208に変換する。一実施例におけるその変換は、ユーザ入力を受信しているXMLスタイルシート変換(XSLT)に従って、デバイス機能データ206の１つ以上のXML要素を変換することによって、XML書類におけるジョブチケット208を作成することを含んでもよい。
【００４６】
このアプローチの成果の1つは、機能自覚周辺装置112に最近に追加された機能でさえ、デバイス機能データ206に反映又はリストされることである。更に、デバイス機能検出アプリケーション110は、そのような最近に追加された機能や新しい機能について知る必要はなく、或いは最近に追加された機能や新しい機能を起動するためにどんなデバイス制御コマンドが必要であるかを知る必要はない。その代わり、機能自覚周辺装置112は、デバイス機能検出アプリケーション110に対してコマンド条件及び自身の特徴（所謂、周辺装置自身が備える機能）を通知する。デバイス機能検出アプリケーション110は所望のジョブ設定に関するユーザからの入力を取得し、その特徴及びコマンド条件に基づいてそのような設定をデバイス機能データ206に反映するジョブチケット208を生成する。更に、ここで説明されるステップは機能自覚周辺装置１１２からの更新されたデバイス機能データ206を捕捉し、更新された又は変更された周辺装置１１２の機能を反映するように反復されてもよい。この反復は、様々な方法で実行されるようにしてもよい。一実施例では、機能自覚周辺装置１１２が変更された場合(例えば、新たな、更新された或いは変更された機能、能力、特徴又はオプションを含むような場合)、デバイス機能コンシューマロジックは、変更された機能に基づいて、機能自覚周辺装置１１２の、その時点での機能を取得してGUIを作り直す別のプロセスを始めることができる。一実施例では、このアプローチは、プリンタ又は他の周辺装置で新たな機能を反映している新たなドライバを再構築可能にする。
【００４７】
一実施例では、デバイス機能データ206及びジョブチケット208は、マイクロソフト社のXMLペーパー仕様(XPS)の一部であるプリントスキーマ標準仕様及びジョブ定義フォーマット(JDF)のようないくつかものジョブチケットフォーマットのどれで表現されてもよい。他のジョブチケットフォーマットが使用されてもよく、本実施例はJDFやXPSを利用することに限定されない。
【００４８】
一般に、デバイス機能データ206は、周辺装置の特徴（機能）のリストを有する。一実施例では、各特徴は名前、ユーザインタフェースディスプレイ名、選択タイプ等を用いて決められる。選択タイプの具体例は、選択リスト又は一覧表、番号及び文字列等を含んでよい。デバイス機能定義は制約特性を含んでもよく、制約特性は、周辺装置の或る機能を利用する際の制限や、その機能に可能な設定値であり、その周辺装置の他の機能の利用可能性や設定値に依存する。
【００４９】
表１はプリントスキーマフォーマットで表現されたデバイス機能データ206の具体例を示す：
表１−デバイス機能データ例
【表１】
2009059364.tif 000003
【００５０】
図４は、ロングエッジオプション(LongEdge  option)が選択されている周辺装置のグラフィカルユーザインターフェース例を示す。図４の例は、表１のデバイス機能データ２０６の例に対応する。
【００５１】
図４の例の場合、アプリケーションプログラムで生成された表示画面402はユーザインタフェースパネル404を含み、ユーザインタフェースパネルは、周辺装置の機能、能力、特徴又は機能と共にユーザがやりとりできるように構成されている。例えば、周辺装置がプリンタであり、１つの特徴は両面印刷が可能なことであったとする。両面(duplex)オプションは、オフ、ロングエッジ(長辺綴じ)又はショートエッジ(短辺綴じ)の値を有し、両面化がどのように編集されるかをユーザが指定できるようにする。図４ではロングエッジオプションが選択されている。ロングエッジオプションの選択は、図３のステップ306で受け取られるユーザ入力を用意することの一例である。
【００５２】
表２−ジョブチケット例
【表２】
2009059364.tif 000004
【００５３】
一実施例では、表２のフォーマットを有するジョブチケット208は、ジョブチケットコンシューマロジック214を用いて機能自覚周辺装置112で実行されてもよい。このアプローチの場合、デバイス機能データ206及びジョブチケット208の組み合わせはアプリケーション110に対して十分な或る情報を運び、その情報は、デバイスの機能を表現するユーザインターフェースをユーザに提供すること、及び特定のジョブ適切なタイプ又はオプションのユーザ選択内容を受信することに十分な情報である。しかしながら、デバイス機能検出アプリケーション110も或いはそのアプリケーションと相互作用する如何なる他のソフトウエアも、能力、特徴及び機能の実質的な意味の理解と共にコード化されることを要しない。
【００５４】
かくて、デバイス製造業者は、デバイス及びプラットフォームの組み合わせ各々について特化したユーザインターフェースと共にカスタムデバイスドライバを作成することを要しない。更に、新たなデバイスドライバをリリースせずに、及びエンドユーザが彼らのコンピュータを新しいデバイスドライバと共にアップグレードすることを要求せずに、製造業者は新たな製品及び新たな機能を既存の製品に導入できる。
【００５５】
図５は、デバイス機能プロデューサロジック及びデバイス機能コンシューマロジックの機能例を示す。
【００５６】
一実施例では、デバイス機能プロデューサロジック212は、ある装置のホストに受け入れられ、以下の機能を実行する。ステップ502は、デバイス機能検出アプリケーションからのリクエストを受信し、周辺装置の機能を取得することを含む。例えば、機能自覚周辺装置112のデバイス機能プロデューサロジック212は、デバイス機能検出アプリケーション110からリクエストを受信し、その周辺装置の機能を提示する。
【００５７】
それに応じてステップ504では、現時点での周辺装置の機能が確認される。ステップ504は、レジストリ、コンフィギュレーションファイル、管理情報ベース(MIB:  Management  Information  Base)その他のレポジトリ情報(装置のその時点での機能を記述している情報)を読み取ることを含む。
【００５８】
ステップ506では、機能自覚周辺装置112からデバイス機能検出アプリケーション110へ機能の説明が送られる。ステップ506は、プリントスキーマのようなXMLスキーマに従ってデバイス機能データ206を形成すること、及びその時点での能力、特徴及び機能をデータの中にエンコードすることを含む。デバイス機能データ206はデバイス機能検出アプリケーション110に送られ、これはステップ506からステップ508に続く矢印で示されている。
【００５９】
ステップ508では、デバイス機能コンシューマロジック202が、機能説明をデバイスから受信する。これに応じてステップ510では、その機能説明に基づいてロジック202が1つ以上のGUIエレメントを作成し、ステップ512にてロジックはそのGUIエレメントが表示されるようにする。例えば、図４のGUIが作成され、ディスプレイに提示される又は表示に備えてオペレーティングシステム106に与えられる。
【００６０】
ステップ514は、１つ以上のGUIエレメントの選択肢を表現するユーザ入力を受けること、及びそのユーザ入力をジョブチケットプロデューサロジックに与えることを含む。例えば、マウスのクリック、キーボーボードのキー押下又はユーザ入力を表現するデータの形式で、オペレーティングシステム106から又はそのデバイスドライバから、デバイス機能コンシューマロジック202はユーザ入力を受信する。デバイス機能コンシューマロジック202は、必要に応じて選択肢を変換し、デバイス機能検出アプリケーション110のジョブチケットプロデューサロジック204にユーザ選択内容を与える。
【００６１】
図６は、ジョブチケットプロデューサロジック及びジョブチケットコンシューマロジックの機能例を示す。
【００６２】
ステップ602では、ジョブチケットプロデューサロジック204(図５のステップ514によりユーザ選択内容を受信している)が、選択されたGUIレメントに基づいて、その周辺装置112のジョブを記述するジョブチケットを作成する。デバイス機能データ206がジョブチケットデータを決めるのに使用される。例えば、ステップ514のユーザ選択内容に基づいて又はそれに従って、ジョブチケット208はデバイス機能データ206の変換物を持っていてもよい。ステップ604では、ジョブチケットプロデューサロジックは、そのジョブチケットを周辺装置112に送信する。
【００６３】
ステップ606ではそれに応じて、ジョブチケットコンシューマロジック214が、ジョブチケットデータを周辺装置用の１つ以上のデバイス固有の処理コマンド（つまり、周辺装置が理解できる処理コマンドに変換することを意図する）に変換する。プリントスキーマ表現によるジョブチケット208を、１つ以上のファンクションコール、コマンドライン命令、方法の起動又は装置に対する他の命令に返還することをステップ606は含む。一実施例では、マイクロソフト社によるXMLパーサ(parser)を利用して、プリントスキーマ表現が変換される。ステップ608では、ジョブチケットコンシューマロジックはデバイスがその処理コマンドを実行することを引き起こす。
【００６４】
図７は、デバイス機能検出アプリケーションの機能例を示す。
【００６５】
ステップ702では、デバイス機能検出アプリケーション110が、利用可能な周辺装置のリストを作成及び表示する。例えば、デバイス機能検出アプリケーション110は、書類を印刷するための、ワードプロセッサのような他のアプリケーションプログラムからのリクエストを受信する。これに応じて、デバイス機能検出アプリケーション110は、どのデバイスが既知であるか又は利用可能であるかを確認し、そのような装置のリストの表示を引き起こす。ネットワーク上又は直接的に接続された周辺装置は通常のディスカバリプロトコルを用いて発見できる。リストは、コンボボックス(combo  box)のようなウィジェット(widget)を用いてグラフィカルユーザインターフェースに表示可能である。このリストはデバイスカテゴリで又はデバイス製造業者で組織化されてもよい。例えばリストは、プリンタだけ、スキャナだけ又は他のカテゴリのデバイスだけを示してもよい。他の具体例として、リストはリコー株式会社が製造又は販売しているデバイスだけを示してもよい。
【００６６】
ステップ704では、デバイス機能検出アプリケーション110は、利用可能な周辺装置の選択を表すユーザ入力を受ける。例えば、コンボボックス中の或るオプションの選択を表すユーザ入力が受信される。
【００６７】
ステップ706は、選択された利用可能な機能自覚周辺装置112へリクエストを送り、その周辺装置の機能を得ることを含む。例えば、デバイス機能検出アプリケーション110は、周辺装置112のその時点での機能を得るためのリクエストを周辺装置112へ送り、その機能をユーザに表示すること及び書類を印刷するためのジョブ設定用のユーザ入力を受信することに備える。ステップ706を実行することは、図５のステップ502を行うトリガ(契機)を与える。
【００６８】
図５及び図６の成果の１つは、あるアプリケーションが、周辺装置が備える現在の機能を確認でき、その機能を表すユーザインターフェースを生成でき、特定のジョブ設定に関するユーザ入力を受信でき、デバイスがそのジョブ設定の実行を引き起こす方法で、そのジョブ設定をその周辺装置に提供できることである。つまり、ユーザが利用した時点での周辺装置の機能を確認し、ユーザは、その現時点での周辺装置の機能を利用することができる。このアプリケーションは、そのアプリケーションを理解することを必要とせず、或いはそのユーザインターフェースを生成できる特別なコードを持つことを要しない。アプリケーションは一般的な(ユニバーサルな)デバイスドライバでよい。
【００６９】
本方法は、新たな機能群を有するデバイスの新たなモデル全体について新たなデバイスドライバをリリースする必要性を排除する。
【００７０】
更に、周辺装置へのリクエストの時点でデバイス機能データ２０６が動的に生成され、その時点でのデバイス機能データ２０６に基づいて周辺装置とやりとりを行う。本アプローチ及びデバイス機能検出アプリケーションは、次のような如何なる周辺装置とでも共に機能でき、その周辺装置は、デバイス機能検出アプリケーション110からのリクエストに応じて自身の機能を説明でき、且つジョブチケットで表現されたコマンドを分析及び実行できるものである。アプリケーションプログラム又はアプリケーションプログラムとユーザがやりとりする方法について、如何なる変更も必須でない。オペレーティングシステムを変更することも必須でない。
【００７１】
一実施例では、ユニバーサルデバイスドライバとして機能するデバイス機能検出アプリケーション110の形式で、ユーザアプリケーションがデバイスドライバを同時に使用し続ける場合、ユーザの行う処理は変わらない。しかしながら、ユーザがやりとりを行うユーザインターフェースは、周辺装置が更新されるにつれて刻々と変わってもよいが、ホストコンピュータにおけるデバイス機能検出アプリケーション110の更新は必須でない。
【００７２】
つまり、周辺装置から受け取ったデバイス機能データ２０６に応じて、ユーザインターフェースが変化するものである。
【００７３】
３．０  ハードウエア概要
図８は本発明の実施例で使用されるコンピュータシステム８００のブロック図を示す。コンピュータシステム８００は、情報を通信するためのバス８０２又は他の通信手段と、バス８０２に結合された情報を処理するプロセッサ８０４とを有する。コンピュータシステム８００は、ランダムアクセスメモリ(RAM)又は他のダイナミックストレージデバイスのようなバス８０２に結合されたメインメモリ８０６を有し、メインメモリはプロセッサ８０４で実行される命令や情報を格納する。メインメモリ８０６は、プロセッサ８０４で実行される命令の実行中に、一時的な変数又は他の中間的な情報を格納するのに使用されてもよい。コンピュータシステム８００は、プロセッサ８０４のための命令や静的な情報を格納する、バス８０２に結合されたリードオンリメモリ(ROM)又は他のスタティックストレージデバイスを更に含む。磁気ディスク又は他の光ディスクのようなストレージデバイス８１０は、情報及び命令を格納するために用意されてバス８０２に結合される。
【００７４】
コンピュータシステム８００は、ユーザに情報を表示するために、陰極線管(CRT)のようなディスプレイ８１２にバス８０２を介して結合されてもよい。英数字その他のキーを含む入力装置８１４は、情報及び命令選択内容をプロセッサ８０４に通知するためにバス８０２に結合される。他の種類のユーザ入力装置は、カーソル制御装置８１６（例えば、マウス、トラックボール、スタイラス又はカーソル方向キー）であり、指示情報及び命令選択をプロセッサ８０４に通知し且つディスプレイ８１２でのカーソルの動きを制御する。この入力装置は典型的には第１軸（例えば、ｘ）及び第２軸（例えば、ｙ）の２軸による２つの自由度を有し、装置が平面上の位置を指定できるようにする。
【００７５】
本発明は無線通信アーキテクチャのコンピュータシステム８００を利用することに関連する。本発明の一実施例によれば、メインメモリ８０６に含まれる１以上の命令の１以上のシーケンスを実行するプロセッサ８０４に応じて、無線通信がコンピュータシステム８００によって提供される。そのような命令は、ストレージデバイス８１０のような他のコンピュータ読取可能な媒体からメインメモリ８０６に読み込まれてもよい。メインメモリ８０６に含まれている命令シーケンスの実行は、本願で説明されるプロセスステップをプロセッサ８０４が実行することを引き起こす。マルチプロセッシング構成の１以上のプロセッサが、メインメモリ８０６に含まれている命令シーケンスを実行するのに使用されてもよい。代替実施例では、本発明を実施するために、ハードワイヤード回路が、代替的に使用されてもよいし或いはソフトウエア命令との組み合わせで使用されてもよい。すなわち本発明の実施例はハードウエア回路及びソフトウエアの特定の如何なる組み合わせにも限定されない。
【００７６】
ここで使用されているように「マシン読取可能な媒体」なる用語は、命令をプロセッサ８０４の実行に備えて提供することに関与する如何なる媒体にも関連する。コンピュータシステム８００を利用して実現される例の場合、様々なマシン読取可能な媒体が含まれ、例えば、実行に備えて命令をプロセッサ８０４に提供する際に使用される。そのような媒体は多くの形態をとってよく、限定ではないが、記憶媒体及び伝送媒体を含む。ストレージ媒体は、不揮発性媒体及び揮発性媒体の双方を含む。不揮発性媒体は、例えば、ストレージデバイス８１０のような光又は磁気ディスクを含む。揮発性媒体は、メインメモリ８０６のようなダイナミックメモリを含む。伝送媒体は、同軸ケーブル、銅線及び光ファイバを含み、バス８０２を構成するワイヤを含む。伝送媒体は、無線電波及び赤外線データ通信の際に生成されるもののような、音波又は光波の形式をとってもよい。そのような媒体は、その媒体で運ばれる命令が、マシンの中に命令を読み込む物理的手段により検出されることを可能にするように実現可能でなければならない。
【００７７】
マシン読取可能な媒体の一般的な形態は、フロッピディスク、フレキシブルディスク、ハードディスク、磁気テープその他の如何なる磁気媒体、CD-ROMその他の如何なる光媒体、パンチカード、紙テープ又は穴のパターンを有する他の如何なる物理的媒体、RAM、PROM、EPROM、フラッシュEPROMその他のメモリチップ、カートリッジ、上記のような搬送波又はコンピュータが読み取ることの可能な他の如何なる媒体でも含む。
【００７８】
マシン読取可能な様々な形態は、１以上の命令の１以上のシーケンスをプロセッサ８０４に実行に備えて搬送する際にも適用可能である。例えば命令は初期には遠く離れたリモートコンピュータの磁気ディスクで搬送されてもよい。リモートコンピュータは自身のダイナミックメモリからその命令をロードし、モデムを用いて電話回線を介して命令を送信してもよい。コンピュータシステム８００付近のモデムは電話回線でそのデータを受信し、赤外線送信機を用いてそのデータを赤外線信号に変換する。バス８０２に結合された赤外線検出器は、赤外線信号で搬送されたデータを受信し、そのデータをバス８０２に置く。バス８０２はデータをメインメモリ８０６に運び、プロセッサ８０４はメインメモリから命令を抽出して実行する。メインメモリ８０６で受信された命令は、プロセッサ８０４で実行される前又はその後にストレージデバイス８１０に選択的に格納されてもよい。
【００７９】
コンピュータシステム８００はバス８０２に結合された通信インターフェース８１８も含む。通信インターフェース８１８は、ローカルネットワーク８２２に接続されるネットワークリンク８２０に結合する双方向データ通信をもたらす。例えば、通信インターフェース８１８は、データ通信接続を対応するタイプの電話回線に与える統合サービスディジタルネットワーク(ISDN)カード又はモデムでもよい。別の例では、通信インターフェース８１８は、データ通信接続をコンパチブルなLANに与えるLANカードでもよい。無線リンクが使用されてもよい。どの実現手段でも、通信インターフェース８１８は、電気的な、電磁的な又は光学的な信号を送信及び受信し、様々なタイプの情報を表現するディジタルデータストリームを運ぶ。
【００８０】
ネットワークリンク８２０は典型的には１以上のネットワークを介して他のデータ装置とのデータ通信をもたらす。例えば、ネットワークリンク８２０はローカルネットワーク８２２を介してホストコンピュータとのコネクションを提供する、或いはインターネットサービスプロバイダ(ISP)８２６により運営されるデータ機器とのコネクションを提供する。そしてISP８２６はデータ通信サービスをワールドワイドパケットデータ通信ネットワーク(今日、インターネット８２８として一般に言及されている)を介して提供する。ローカルネットワーク８２２及びインターネット８２８の双方は、ディジタルデータストリームを搬送する、電気的な、電磁的な又は光学的な信号を使用する。様々なネットワークを介する信号や、ネットワークリンク８２０における通信インターフェース８１８を介する信号は、コンピュータシステムに及びそこからディジタルデータを搬送し、例えば情報を伝送する搬送波の形式をとってもよい。
【００８１】
コンピュータシステム８００は、ネットワーク、ネットワークリンク８２０及び通信インターフェースを介して、メッセージを送信し及びプログラムコードを含むデータを受信する。インターネットの例では、サーバ８３０はインターネット８２８、ISP８２６、ローカルネットワーク８２２及び通信インターフェース８１８を介して、アプリケーションプログラムに関する要求されたコードを送信するかもしれない。
【００８２】
プロセッサ８０４は受信したコードを受信したときに実行してもよいし、後の実行に備えてストレージデバイス８１０又は他の不揮発性ストレージに格納していたかのように実行してもよい。このようにコンピュータシステム８００は搬送波の形式でアプリケーションコードを取得してもよい。
【００８３】
４．０  拡張性及び代替例
以上の説明により、本発明の実施例が多くの具体的詳細を参照しながら説明され、その具体的詳細は実現手段毎に異なってよい。本発明に関する独占排他権のインジケータであって、出願人が本発明であると主張するものは、特定の態様で本願により許可される特許請求の範囲であり、その特定の形態の特許請求の範囲は以後の如何なる補正をも含む。特許請求の範囲に登場している用語についての明示的に言及されたどの定義も、特許請求の範囲で使用されるそのような用語の意味を規定する。それ故に、どのような方法によっても、特許請求の範囲で明示的には引用されていない要素、特性、特徴、利点又は属性の何れも特許請求の範囲を限定するよう解釈されるべきでない。従って明細書及び図面は限定的な意味ではなく例示的に解釈されるべきである。
【図面の簡単な説明】
【００８４】
【図１】デバイス機能検出アプリケーション及び機能自覚周辺装置が使用されるコンピュータシステム例を示す図である。
【図２】図１のデバイス機能検出アプリケーション及び機能自覚周辺装置間で通信されるデータを示す図である。
【図３】コンピュータ周辺装置の機能ベースの制御プロセス例を示す図である。
【図４】ロングエッジオプションが選択された周辺装置のグラフィカルユーザインターフェース例を示す図である。
【図５】デバイス機能プロデューサロジック及びデバイス機能コンシューマロジックの機能例を示す図である。
【図６】ジョブチケットプロデューサロジック及びジョブチケットコンシューマロジックの機能例を示す図である。
【図７】デバイス機能検出アプリケーションの機能例を示す図である。
【図８】本発明の実施例が使用されるコンピュータシステムを示すブロック図である。
【符号の説明】
【００８５】
１０２  ユーザ
１０４  ホストコンピュータ
１０６  オペレーティングシステム
１０８  インターフェース
１１０  デバイス機能検出アプリケーション
１１２，１１４  機能自覚周辺装置
１１６  ネットワーク
２０２  デバイス機能コンシューマロジック
２０４  ジョブチケットプロデューサロジック
２０６  デバイス機能データ
２０８  ジョブチケット
２１０  デバイス非依存性データ
２１２  デバイス機能プロデューサロジック
２１４  ジョブチケットコンシューマロジック
４０２  表示画面
４０４  ユーザインタフェースパネル
８００  コンピュータシステム
８０２  バス
８０４  プロセッサ
８０６  メインメモリ
８０８  リードオンリメモリ
８１０  ストレージデバイス
８１２  ディスプレイ
８１４  入力装置
８１６  カーソル制御部
８１８  通信インターフェース
８２０  ネットワークリンク
８２２  ローカルネットワーク
８２４  ホスト
８２６  インターネットサービスプロバイダ
８２８  インターネット
８３０  サーバ
【図１】
2009059364.tif 000005
【図２】
2009059364.tif 000006
【図３】
2009059364.tif 000007
【図４】
2009059364.tif 000008
【図５】
2009059364.tif 000009
【図６】
2009059364.tif 000010
【図７】
2009059364.tif 000011
【図８】
2009059364.tif 000012