(57)【要約】【課題】  ネットワークプリンタのインストレーション後に自動構成を行うためのシステム及びその方法を提供すること。【解決手段】  本発明では、ユーザ及びシステム管理者による手動による構成の負担を回避している。ネットワークプリンタが、プリンタ記述ファイルとドライバとスプーラとポートモニタとに関連づけられている。このシステムは、ドライバが双方向要求及び双方向応答を生成できるようにするための、スプーラに関連する双方向アプリケーションプログラムインターフェースを含んでおり、さらに双方向要求及び双方向応答を表し印刷機能に関連づけるための、プリンタ記述ファイル内のシンタクスを含んでおり、双方向値とプリンタ値を関連づけるための、ドライバに記憶される拡張ファイルと、構成変更の双方向通知をドライバ及び選択されたアプリケーションに提供するための、ポートモニタによって制御される通知インフラストラクチャとを含んでいる。【選択図】  図３
2005025755.tif 000002
【特許請求の範囲】
【請求項１】
プリンタ記述ファイルとドライバとスプーラとポートモニタとに関連づけられるネットワークプリンタのインストレーション後の自動構成のためのシステムであって、
前記ドライバが、双方向要求及び双方向応答を生成できるようにするための、前記スプーラに関連する双方向アプリケーションプログラムインターフェースと、
前記双方向要求及び前記双方向応答を表して印刷機能に関連づけるための、前記プリンタ記述ファイル内のシンタクスと、
双方向値とプリンタ値を関連づけるための、前記ドライバに記憶される拡張ファイルと、
構成変更の双方向通知を前記ドライバ及び選択されたアプリケーションに提供するための、前記ポートモニタによって制御される通知インフラストラクチャと
を備えていることを特徴とするシステム。
【請求項２】
前記通知インフラストラクチャは、前記ドライバに構成変更について通知するためのドライブプリンタイベントメカニズムを備えていることを特徴とする請求項１に記載のシステム。
【請求項３】
前記通知インフラストラクチャは、アプリケーションが構成変更を自動的に監視して受け取ることができるようにするための次プリンタ変更発見通知を含んでいることを特徴とする請求項１に記載のシステム。
【請求項４】
前記シンタクスは、双方向応答タイプとネットワークプリンタの機能間でマッピングを行うための応答データキーワードを指定するための応答タイプキーワードを有する複数のキーワードを備えていることを特徴とする請求項１に記載のシステム。
【請求項５】
前記シンタクスは、グローバルレベルとオプションレベルと機能レベルでの更新を提供するためのツールを提供することを特徴とする請求項１に記載のシステム。
【請求項６】
製造業者が提供する特定の機能を列挙するための独立系ハードウェアベンダ拡張機能を備えていることを特徴とする請求項１に記載のシステム。
【請求項７】
前記双方向アプリケーションプログラムインターフェースは、獲得動作と設定動作と列挙動作とをサポートするためのツールを提供することを特徴とする請求項１に記載のシステム。
【請求項８】
前記ポートモニタは、ネットワークプリンタデータベースからデータを検索し、前記拡張ファイルにアクセスして前記データを変換するためのメカニズムを備えていることを特徴とする請求項１に記載のシステム。
【請求項９】
前記双方向アプリケーションプログラムインターフェースは、前記ポートモニタが検索する前記データを戻すためのメカニズムを提供することを特徴とする請求項８に記載のシステム。
【請求項１０】
ネットワークデバイスのインストレーション後に双方向情報のクライアント検索を容易にするためのシステムであって、
プリンタ記述ファイル内の１組の双方向構成体と、
該双方向構成体を受け取り、該双方向構成体に従って前記ネットワ−クデバイスからデータを検索し、前記データを適切なフォーマットに変換し、チャネルを作成し、前記変換済みのデータを送るためのポートモニタと、
前記作成済みのチャネル上で前記ポートモニタからインストレーション通知を受け取り、前記インストレーション通知を選択されたアプリケーションに経路指定するためのメカニズムを有するスプーラと
を備えていることを特徴とするシステム。
【請求項１１】
前記スプーラは、ドライバに構成変更について通知するためのドライブプリンタイベントメカニズムを備えていることを特徴とする請求項１０に記載のシステム。
【請求項１２】
前記スプーラは、アプリケーションが構成変更を自動的に監視して受け取ることができるようにするための次プリンタ変更発見通知を含んでいることを特徴とする請求項１０に記載のシステム。
【請求項１３】
前記１組の双方向構成体は、双方向照会構成体及び双方向応答構成体を備えていることを特徴とする請求項１０に記載のシステム。
【請求項１４】
前記プリンタ記述ファイルは、双方向応答タイプを指定するための応答タイプキーワードと、前記ネットワークプリンタの機能相互間でマッピングを行うための応答データキーワードとを有する複数のキーワードを備えていることを特徴とする請求項１３に記載のシステム。
【請求項１５】
前記双方向構成体及び前記キーワードは、グローバルレベル、オプションレベル、及び機能レベルで自動更新を行うためのツールを提供するシンタクスを形成することを特徴とする請求項１４に記載のシステム。
【請求項１６】
製造業者が提供する特定の機能を列挙するための独立系ハードウェアベンダ拡張機能を備えていることを特徴とする請求項１０に記載のシステム。
【請求項１７】
前記スプーラ内に、双方向要求及び双方向応答の伝送を可能とするための双方向アプリケーションプログラムインターフェースを備えていることを特徴とする請求項１０に記載のシステム。
【請求項１８】
前記双方向アプリケーションプログラムインターフェースは、獲得動作と設定動作と列挙動作とをサポートするためのツールを提供することを特徴とする請求項１７に記載のシステム。
【請求項１９】
前記ポートモニタは、ネットワークプリンタデータベースからデータを検索し、ドライバ内の拡張ファイルにアクセスして前記検索済みのデータを変換するためのメカニズムを備えていることを特徴とする請求項１０に記載のシステム。
【請求項２０】
前記双方向アプリケーションプログラムインターフェースは、前記ポートモニタが検索する前記データを戻すためのメカニズムを提供することを特徴とする請求項１９に記載のシステム。
【請求項２１】
プリンタ記述ファイルとドライバとスプーラとポートモニタとを有するシステム内へのネットワークプリンタのインストレーション後に前記システムを自動的に構成するための方法であって、
前記プリンタ記述ファイルからインストール可能な機能のリスト及び対応する双方向要求を獲得するステップと、
前記スプーラから双方向アプリケーションプログラムインターフェースを呼び出して前記インストール可能な機能の最新の構成について照会するステップと、
双方向スキーマをプリンタ特有のプロトコルにマッピングするステップと、
双方向通知を生成し経路指定するステップと、
双方向応答を前記プリンタ記述ファイルからの機能にマッピングするステップと、
アプリケーションを最新の構成で更新するステップと
を有することを特徴とする方法。
【請求項２２】
前記双方向通知を経路指定するステップは、ドライブプリンタイベント通知を前記ドライバに経路指定して前記ドライバに構成変更のことを通知するステップを有することを特徴とする請求項２１に記載の方法。
【請求項２３】
前記双方向通知を経路指定するステップは、次プリンタ変更発見通知をアプリケーションに経路指定して前記アプリケーションが構成変更を自動的に監視して受け取ることができるようにするステップを有することを特徴とする請求項２１に記載の方法。
【請求項２４】
双方向応答タイプを指定するための応答タイプキーワードと、前記ネットワークプリンタの機能相互間でマッピングを行うための応答データキーワードとを備えた複数のキーワードを実装するステップを有することを特徴とする請求項２１に記載の方法。
【請求項２５】
グローバルレベルとオプションレベルと機能レベルとで自動的な構成の更新を提供するステップを有することを特徴とする請求項２１に記載の方法。
【請求項２６】
製造業者が提供する特定の機能を列挙するための独立系ハードウェアベンダ拡張機能を実装するステップを有することを特徴とする請求項２１に記載の方法。
【請求項２７】
獲得動作と設定動作と列挙動作とをサポートするためのツールを提供する前記双方向アプリケーションプログラムインターフェースを実装するステップを有することを特徴とする請求項２１に記載の方法。
【請求項２８】
ネットワークプリンタデータベースからデータを検索し、前記プリンタ記述ファイルからの拡張ファイルにアクセスして前記データを変換する前記ポートモニタを使用するステップを有することを特徴とする請求項２１に記載の方法。
【請求項２９】
前記ポートモニタが検索する前記データを戻すための前記双方向アプリケーションプログラムインターフェースを使用するステップを有することを特徴とする請求項２８に記載の方法。
【請求項３０】
請求項２１に記載の方法を実施するためのコンピュータ実行可能命令を有することを特徴とするコンピュータ読取可能な媒体。
【請求項３１】
既存の公共の双方向スキーマと既存のスキーマに対する拡張機能を使用してベンダに新しいマッピングを定義できるようにするためにポートモニタについての拡張性を提供する方法であって、
双方向値とデバイス特有のオブジェクトとの間のマッピングを記述することが可能な拡張ファイルの使用を可能とするステップと、
双方向要求に対するポートモニタ応答を容易にするために前記拡張ファイルの実装を可能にするステップと
を有することを特徴とする方法。
【請求項３２】
前記拡張ファイルは、ＸＭＬ拡張ファイルであることを特徴とする請求項３１に記載の方法。
【請求項３３】
前記拡張ファイルは、標準的な双方向スキーマの独立系ハードウェアベンダ拡張機能を備えていることを特徴とする請求項３１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自動構成のためのシステム及びその方法に関し、ネットワークデバイスのインストレーション後にシステムの構成を行う技術であって、より詳細には、ネットワークプリンタのインストレーション後の自動構成に関する自動構成のためのシステム及びその方法に関する。
【背景技術】
【０００２】
今日では、ネットワークプリンタのインストールは、時間のかかる困難なタスクである。ネットワークプリンタをインストールするこれら個々人には、一般に、静的ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌインターネットプロトコル）アドレスを取得し、キューを作成し、このキューを手動で構成し、このキューに対するデバイス構成を手動で設定し、テストページを印刷し、どのようにしてこの新しくインストールしたネットワークプリンタに接続すべきかについての指示を含むメールをユーザに送るという複数のステップを実施する必要がある。
【０００３】
ネットワークプリンタのインストレーションについての使用可能なプロセスは、小さな組織にとっても大規模な組織にとってもやっかいなものである。大規模な組織にとっては、ネットワークプリンタのインストレーションのプロセスは、特に異なる機能設定の数百台のデバイスに対して手動のデバイス構成が必要となるときには管理者にとって高くつく。小さな組織では一般に、インストレーションを実施する専門の管理者または専門技術を持っていないはずである。
【０００４】
特定の例としては、現在利用可能なインストレーション技術を用いると、両面機能をもつデバイスをインストールした後に、ユーザまたは管理者はＵＩ（ｕｓｅｒ  ｉｎｔｅｒｆａｃｅユーザインターフェース）を手動で訪れ、両面の印刷を実施するためにこの両面ユニットを「インストール済み」に設定する必要がある。さらに、インストレーションに続いて、管理者またはユーザは、エンベロプトレイ（ｅｎｖｅｌｏｐｅ  ｔｒａｙ）やメモリなどのインストール可能なオプションを追加、または除去するときに、ＵＩを手動で訪れてこの変更を示す必要がある。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
したがって、ネットワークプリンタのインストレーションのための改善された技術が必要になっている。より詳細には、手動構成をなくする技術が望まれている。自動構成により、多数のネットワークデバイスをインストールした後の正しい機能設定を得るのに伴う多大な努力を節約することができる。したがって、どのようなユーザまたは管理者の介入なしに自動的に、ユーザは、ネットワークデバイス上で使用可能な機能にアクセスすることができるはずである。
【０００６】
本発明は、このような問題に鑑みてなされたもので、その目的とするところは、ネットワークプリンタのインストレーション後の自動構成に関する自動構成のためのシステム及びその方法を提供することにある。
【課題を解決するための手段】
【０００７】
本発明は、ネットワークプリンタが、プリンタ記述ファイルとドライバとスプーラとポートモニタ（ｐｏｒｔ  ｍｏｎｉｔｏｒ）に関連づけられる、ネットワークプリンタのインストレーション後に自動構成するためのシステムを備えている。この自動構成のためのシステムは、ドライバが双方向要求及び双方向応答を生成できるようにするための、スプーラに関連する双方向アプリケーションプログラムインターフェースを備えている。また、この自動構成のためのシステムは、双方向要求及び双方向応答を表して印刷機能に関連づけるための、プリンタ記述ファイル内のシンタクスを備えている。また、この自動構成のためのシステムは、双方向値とプリンタ値を関連づけるための、ドライバに記憶される拡張ファイルと、構成変更の双方向通知をドライバ及び選択されたアプリケーションに提供するための、ポートモニタによって制御される通知インフラストラクチャを備えている。
【０００８】
他の実施態様では、本発明は、ネットワークデバイスのインストレーション後に双方向情報のクライアント検索を容易にするためのシステムを備えている。このシステムは、デバイス記述ファイル内の１組の双方向構成体と、この双方向構成体を受け取り、この双方向構成体に従ってネットワークデバイスからデータを検索し、このデータを適切なフォーマットに変換し、チャネルを作成し、変換済みのデータを送るポートモニタとを備えている。また、このシステムはさらに、このポートモニタから作成済みのチャネル上でインストレーション通知を受け取り、このインストレーション通知を選択されたアプリケーションに経路指定するメカニズムを有するスプーラを備えている。
【０００９】
さらに他の実施態様では、本発明は、ネットワークプリンタが、プリンタ記述ファイルとドライバとスプーラとポートモニタとに関連づけられる、ネットワークプリンタのインストレーション後に自動構成するための方法を備えている。この自動構成のための方法は、このプリンタ記述ファイルからインストール可能な機能のリスト及び対応する双方向要求を獲得するステップを有している。また、この自動構成のための方法は、スプーラから双方向アプリケーションプログラムインターフェースを呼び出してインストール可能な機能の最新の構成について照会するステップと、双方向スキーマをプリンタ特有のプロトコルにマッピングするステップとを有している。また、この自動構成のための方法は、双方向通知を生成して経路指定するステップと、双方向応答をプリンタ記述ファイルからの機能にマッピングするステップと、アプリケーションを最新の構成で更新するステップとを有している。
【発明を実施するための最良の形態】
【００１０】
以下、図面を参照して本発明の実施の態様について説明する。
図１は、本発明の自動構成のためのシステムを実現することができる環境を示すブロック図で、ネットワークプリンタを含むシステム環境のコンポーネントを示すブロック図である。複数のクライアントコンピュータ２００が、ネットワーク５００上でネットワークプリンタ３００と接続されている。このクライアントコンピュータ２００及びネットワーク５００は、後述する図２を参照して説明するものと同様とすることができる。プリントサーバ４００もまた、ネットワーク５００上でクライアントコンピュータ２００及びプリンタ３００と接続することができる。この図１に示す環境では、プリンタ３００は、ネットワーク５００上でクライアントコンピュータ２００に役立つように使用可能である。ネットワークスキャナなど追加のネットワークデバイスをネットワークプリンタ３００に追加して構成することができる。
【００１１】
図２は、本発明のクライアントコンピュータを実装するのに使用するための適切な計算機システム環境を示すブロック図で、本発明を実現することができる適切な計算機システム環境１００の一例を示す図である。特に、図１に示すクライアントコンピュータ２００を、この計算機システム環境１００中に実装することができる。この計算機システム環境１００は、適切な計算機環境の一例にすぎず、本発明の使用または機能の範囲に関してどのような限定を示唆するものでもない。また、計算機システム環境１００は、例示の動作環境１００に示すコンポーネントのどれか１つまたは組合せに関するどのような依存性または必要性を有すると解釈すべきではない。
【００１２】
本発明は、プログラムモジュールなど、コンピュータによって実行されるコンピュータ実行可能な命令の一般的なコンテキストで説明することができる。一般に、プログラムモジュールには、特定のタスクを実行し、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。さらに、本発明が、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースのまたはプログラム可能な大衆消費電子製品、ミニコンピュータ、メインフレームコンピュータなどを含めて他のコンピュータシステム構成を用いて実施することができる。また、本発明は、タスクが、通信ネットワークを介して結合されたリモート処理デバイスによって実施される分散計算機環境内でも実施することができる。分散計算機環境では、プログラムモジュールは、メモリ記憶デバイスを含むローカルコンピュータ記憶媒体にもリモートコンピュータ記憶媒体にも配置することができる。
【００１３】
図２を参照すると、本発明を実現するための例示の計算機システム環境１００は、処理装置１２０とシステムメモリ１３０とこのシステムメモリを処理装置１２０に結合するのを含めて様々なシステムコンポーネントを結合するシステムバス１２１を含むコンピュータ１１０の形態の汎用計算機デバイスを備えている。
【００１４】
一般に、コンピュータ１１０は、様々なコンピュータ読取可能な媒体を含んでいる。一例として、限定するものではないが、コンピュータ読取可能な媒体は、コンピュータ記憶媒体及び通信媒体を含むことができる。このシステムメモリ１３０は、ＲＯＭ（ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ読取り専用メモリ）１３１及びＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙランダムアクセスメモリ）１３２など揮発性メモリ及び／または不揮発性メモリの形態のコンピュータ記憶媒体を備えている。起動時などコンピュータ１１０内の要素間で情報を転送する助けをする基本ルーチンを含んでいるＢＩＯＳ（ｂａｓｉｃ  ｉｎｐｕｔ／ｏｕｔｐｕｔ  ｓｙｓｔｅｍ基本入出力システム）１３３は、一般にＲＯＭ１３１に記憶される。ＲＡＭ１３２は、一般に処理装置１２０から即時アクセス可能でかつ／または現在動作中であるデータモジュール及び／またはプログラムモジュールを備えている。例えば、図１は、オペレーティングシステム１３４とアプリケーションプログラム１３５と他のプログラムモジュール１３６とプログラムデータ１３７とを示している。
【００１５】
また、コンピュータ１１０は、他の着脱可能／着脱不能な揮発性／不揮発性のコンピュータ記憶媒体を備えることもできる。例えば、図１は、着脱不能な不揮発性磁気媒体と、磁気ディスクドライブ１５１から情報を読み取りまたはそれに書き込むハードディスクドライブ１４１と、着脱可能な不揮発性磁気ディスク１５２から情報を読み取りまたはそれに書き込む磁気ディスクドライブ１５１と、ＣＤ−ＲＯＭや他の光媒体など着脱可能な不揮発性光ディスク１５６から情報を読み取りまたはそれに書き込む光ディスクドライブ１５５を示している。例示の動作環境中で使用することができる他の着脱可能／着脱不能な揮発性／不揮発性のコンピュータ記憶媒体には、それだけには限定されないが、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭなどが含まれる。ハードディスクドライブ１４１は、一般にインターフェース１４０など不揮発性メモリインターフェースを介してシステムバス１２１に接続され、磁気ディスクドライブ１５１及び光ディスクドライブ１５５は、一般に、インターフェース１５０など着脱可能なメモリインターフェースによってシステムバス１２１に接続されている。
【００１６】
上述した図２に示すドライブ及びこれらに関連するコンピュータ記憶媒体は、コンピュータ１１０のためのコンピュータ読取り可能命令、データ構造、プログラムモジュール及び他のデータの記憶域を提供する。図２では、例えば、ハードディスクドライブ１４１は、オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、及びプログラムデータ１４７を記憶するものとして示されている。これらのコンポーネントは、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、及びプログラムデータ１３７と同じまたは異なったものとし得ることに留意されたい。オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、及びプログラムデータ１４７には、少なくともこれらが異なるコピーであることを示すためにここで異なる番号が付与されている。ユーザは、キーボード１６２や、マウス、トラックボール、タッチパッドなどと一般に呼ばれるポインティングデバイス１６１などの入力デバイスを介してコマンド及び情報をコンピュータ１１０に入力することができる。他の入力デバイス（図示せず）には、マイクロフォン、ジョイスティック、ゲームパッド、サテライトディッシュ（ｓａｔｅｌｌｉｔｅ  ｄｉｓｈ）、スキャナなどが含まれ得る。これら及び他の入力デバイスはしばしば、システムバスに結合されるユーザ入力インターフェース１６０を介して処理装置１２０に接続されるが、パラレルポート、ゲームポート、ＵＳＢ（ｕｎｉｖｅｒｓａｌ  ｓｅｒｉａｌ  ｂｕｓユニバーサルシリアルバス）など他のインターフェース及びバス構造によって接続することもできる。モニタ１９１または他のタイプの表示デバイスもまた、ビデオインターフェース１９０などのインターフェースを介してシステムバス１２１に接続される。モニタに加えて、コンピュータはまた、出力周辺インターフェース１９５を介して接続することができる、スピーカ１９７やプリンタ１９６など他の周辺出力デバイスを含むこともできる。
【００１７】
本発明におけるコンピュータ１１０は、ネットワーク環境中でリモートコンピュータ１８０などの１つまたは複数のリモートコンピュータへの論理接続を使用して動作することができる。リモートコンピュータ１８０は、パーソナルコンピュータであってもよく、一般にコンピュータ１１０に関連して以上で説明した多くのまたはすべての要素を含んでいるが、図２には、メモリ記憶デバイス１８１だけを示している。図２に示す論理接続は、ＬＡＮ（ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋローカルエリアネットワーク）１７１及びＷＡＮ（ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋワイドエリアネットワーク）１７３を含んでいるが、他のネットワークを含むこともできる。
【００１８】
ＬＡＮネットワーク環境中で使用するとき、コンピュータ１１０は、ネットワークインターフェースまたはアダプタ１７０を介してＬＡＮ１７１に接続される。ＷＡＮネットワーク環境中で使用するとき、コンピュータ１１０は、一般にインターネットなどＷＡＮ１７３上で通信を確立するためのモデム１７２または他の手段を含んでいる。内蔵でも外付けでもよいが、モデム１７２は、ユーザ入力インターフェース１６０または他の適切なメカニズムを介してシステムバス１２１に接続することができる。ネットワーク環境中では、コンピュータ１１０に関連して示されるプログラムモジュールまたはその一部分をリモートメモリ記憶デバイスに記憶することができる。例えば、図２は、メモリデバイス１８１上に存在するリモートアプリケーションプログラム１８５を示している。図２に示したネットワーク接続は例示であり、コンピュータ間で通信リンクを確立する他の手段も使用できる。
【００１９】
コンピュータ１１０の他の多くの内部コンポーネントについては示していないが、かかるコンポーネント及び相互接続はよく知られている。したがって、コンピュータ１１０の内部構成に関するさらなる詳細については本発明に関して開示する必要はない。
【００２０】
図３は、本発明の自動構成のためのシステムの一実施例を説明するためのコンポーネントを示すブロック図である。これらのコンポーネントは、図１及び図２を参照して前に説明した環境中に組み込むことができる。図３に示すこれらのコンポーネントは、ＵＩ２０と情報をやりとりするドライバ３０とアプリケーション１０とプリンタ記述ファイル４０とを備えている。これらのコンポーネントは、さらに図１を参照して前述したコンポーネントのうちの１つの内部に配置することができるＩＨＶ（Ｉｎｄｅｐｅｎｄｅｎｔ  Ｈａｒｄｗａｒｅ  Ｖｅｎｄｏｒ独立系ハードウェアベンダ）プラグイン５０と、印刷スプーラ６０と、ポートモニタ７０と、印刷デバイス３００とを備えている。プリンタ記述ファイル４０は、一般にドライバ３０の内部に存在することになる。ドライバ３０、ＵＩ２０、及びアプリケーション１０は、一般に図１に示すように、クライアントコンピュータ２００に関連づけられることになる。印刷要求を受け取ると、ドライバ３０は、プリンタ記述ファイル４０から機能（ｆｅａｔｕｒｅ）を検索することができる。印刷スプーラ６０は、これらを受け取り、ドライバ３０ともポートモニタ７０とも情報をやりとりする。ポートモニタ７０は、印刷デバイス３００と直接に情報をやりとりする。ＩＨＶプラグイン５０は、ドライバ３０と印刷スプーラ６０の間で動作することができる。前述のコンポーネント及び前述のコンポーネント間の情報のやりとりのすべてについて以下でさらに説明する。
【００２１】
図４は、本発明に係るドライバの一実施例を説明するためのブロック図で、ドライバ３０内に含まれるツールを示している。ドライバ３０は、一般にプリンタ記述ファイル４０及びドライバマッピング拡張ファイル３４を含んでいる。ドライバ３０は、ＵＩ２０を介して、使用可能な印刷機能についてのユーザに対する指示を提供する。ドライバマッピング拡張ファイル３４は、ドライバ３０とプリンタ３００の間のマッピングのメカニズムを提供し、これについては以下でさらに詳細に説明する。プリンタ記述ファイル４０は、使用可能な印刷オプションの記述を提供するＧＰＤ（ｇｅｎｅｒａｌ  ｐｒｏｇｒａｍ  ｄｅｓｃｒｉｐｔｉｏｎ汎用プログラム記述）及び／またはＧＤＬ（ｇｅｎｅｒａｌ  ｄｅｓｃｒｉｐｔｉｏｎ  ｌａｎｇｕａｇｅ汎用記述言語）ファイルを含んでいる。ＧＰＤは、デバイスの機能を記述するためのテキストベースのフォーマットであり、変更または更新することが容易である。ＧＤＬは、プリンタの機能を記述する助けをするキーワードを含む内部開発言語である。プリンタ記述ファイル４０は、印刷デバイス３００の機能に関してどのような情報をユーザに通知する必要があるかをドライバ３０に対して記述するためのツールを含んでいる。プリンタ記述ファイル４０は、両面オプション、入力ビン（ｂｉｎ）数、ペーパートレイ、カラー、メモリサイズ、ステープラ、可能な他のオプションなどのオプションを含むことができる。また、プリンタオプションは、購入後に変更することができ、したがって更新することが重要である。プリンタ３００の正しい構成の知識を持ち続けることが最適な性能を得るためには重要であり、ユーザがプリンタ３００のすべての機能を利用できるようにするために重要である。
【００２２】
一例として、クライアント２００は、ネットワークプリンタ３００に両面機構があることを知ってはいるがどのようにして両側のページに印刷すべきかを知らないこともある。両側のページに印刷するためには、クライアントは、通常、複数のレベルを移動させて両面機構を「非インストール」から「インストール済み」へと変更する必要があるはずである。ネットワーク環境では、管理者は、通常かかるタスクについて責任を負う。本発明の自動構成のためのシステムの機能では、このプロシージャが自動的に行われるようにすることが可能である。
【００２３】
開示した実施形態では、以下にさらに説明するように、ドライバ３０は、プリンタ３００などのネットワークデバイスをインストールすると最新の構成をシークすることになる。ドライバ３０は、構成を更新するために連続的にプリンタ３００を監視することができる。ドライバ３０は、クライアントがプリンタ３００を使用する最初に、またプリンタ３００がその後起動されるたびごとに更新を求めて調べることができる。したがって、プリンタ３００が追加の機能を獲得する場合には、システムが自動的に更新されることになる。
【００２４】
自動構成機能では、ドライバ３０には、オプションをクライアント２００の質問と自動的に結びつける機能が必要になる。クライアント２００が、両面機構が存在するかどうかを知りたいと思っていると想定する。ドライバ３０には、プリンタ３００からの応答を解釈する必要がある。したがって、プリンタ記述ファイル４０は、双方向の（ｂｉｄｉ）情報を記述するためのシンタクスを含んでいる。このシンタクスは、既存のＧＤＬファイルに対する拡張機能を備えている。この拡張機能によって、クライアント２００は、尋ねるべき質問及びどのように回答を解釈すべきかを定義することができるようになる。
【００２５】
このシンタクスは、少なくとも２つの新しい構成体を含んでいる。この新しい構成体は、（１）双方向照会、及び（２）双方向応答を含んでいる。両方とも使用可能な機能の知識を用いてあらかじめ決まっている。双方向照会は、照会情報をカプセル化し、双方向応答は、応答情報をカプセル化する。プリンタ記述ファイル４０内に含まれるシンタクスは、双方向応答と双方向照会をこのプリンタ記述ファイル４０中の機能に関連づける。
【００２６】
このシンタクスは、また、複数のキーワードを含んでいる。照会ストリングキーワードは、双方向照会構成体についてのキーワードであり、双方向スキーマストリングを照会ストリングとして指定する。応答タイプキーワードは双方向応答構成体についてのキーワードであり、照会に対する応答のタイプを指定する。
【００２７】
応答データキーワードは、また、双方向応答構成体についてのキーワードである。この応答データキーワードは、応答の機能を指定する。この応答データキーワードを使用して、この照会が開始された機能ではなくて他の機能にマッピングする応答をマッピングすることができる。応答データキーワードの使用の一例として「入力トレイ」機能における照会は、「用紙サイズ」機能に関する応答を与えることができる。応答データキーワードは、「入力トレイ」機能と「用紙サイズ」機能の間の関連付けの機能を果たす。
【００２８】
双方向値キーワードは、使用可能なオプションに関連する双方向応答構成体についてのキーワードである。この双方向値キーワードは、各オプションごとに期待される双方向応答を指定する。双方向値キーワードは、機能オプションのうちの１つに応答をマッピングする場合の期待される応答のストリング表現である。この双方向値キーワードを応答データキーワードに関連して使用して応答を１対の機能とオプションへと逆にマッピングすることができる。表１は、キーワードタイプの例を示している。
【００２９】
【表１】
2005025755.tif 000003
【００３０】
表１の説明では、プリンタの一機能は「入力ビン」である。「エンベロプフィーダ（ｅｎｖｅｌｏｐｅ  ｆｅｅｄｅｒ）」が、入力ビンに関連する１つのオプションを表す。別の機能が「用紙サイズ」である。「用紙サイズ」に関連するオプションは、「レター」及び「リーガル」を含んでいることがある。したがって、以上に明らかにしたプリンタ記述ファイル４０の構成体及びキーワードは、（１）グローバルレベル、（２）機能レベル、（３）オプションレベルを含めてＧＤＬの３つのレベルで使用することができる。
【００３１】
表２は、グローバルレベルでの構成体及びキーワードの使用の一例を提供している。
【００３２】
【表２】
2005025755.tif 000004
【００３３】
表２に示したこの照会と応答のシナリオを介して、クライアントコンピュータ２００は、ネットワーク印刷デバイスの製造業者を判定することが可能である。
【００３４】
表３は、機能レベルにおける構成体とキーワードの動作についての一例を提供している。
【００３５】
【表３】
2005025755.tif 000005
【００３６】
以上で示した例の構成体及びキーワードを使用することにより、クライアントコンピュータでは、両面ユニットを確実にインストールすることができる。
【００３７】
表４は、オプションレベルでの構成体及びキーワードの使用の一例を提供している。
【００３８】
【表４−１】
2005025755.tif 000006
【００３９】
【表４−２】
2005025755.tif 000007
【００４０】
以上に説明した構成体の使用により、クライアントコンピュータ２００では、エンベロプフィーダ機能の要求されたオプションを確実にインストールすることができる。
【００４１】
さらに、ＩＨＶプラグイン５０は、双方向照会構成体及び双方向応答構成体のインスタンスの拡張機能を含むことができる。例えば、＊ＢｉｄｉＱｕｅｒｙ：ＨＰＳｕｐｅｒＳｔａｐｌｉｎｇ、＊ＢｉｄｉＲｅｓｐｏｎｓｅ：ＨＰＳｕｐｅｒＳｔａｐｌｉｎｇである。前述の照会及び応答は、所与の製造業者が提供する機能に特有の機能を記述している。さらに、ＩＨＶプラグイン５０は、双方向照会構成体及び双方向応答構成体の属性を拡張することができる。例えば、*BidiQuery:SuperDuperFeature｛*QueryString:""*HPSuperQuery:""｝である。この例では、この照会ストリングは、所与の製造業者が提供するデバイス上で使用可能な特定の組の機能を求めての検索に関係している。
【００４２】
図５は、本発明に係るスプーラの一実施例を説明するためのブロック図で、図３に導入されたスプーラ６０のより詳細な図を示すものである。このスプーラは、１組の双方向ＡＰＩ（ａｐｐｌｉｃａｔｉｏｎ  ｐｒｏｇｒａｍ  ｉｎｔｅｒｆａｃｅアプリケーションプログラムインターフェース）６２及び通知ツール６４を含んでいる。この通知ツール６４は、ドライバプリンタイベントメカニズム（ｄｒｉｖｅｒ  ｐｒｉｎｔｅｒ  ｅｖｅｎｔ  ｍｅｃｈａｎｉｓｍ）６５及び次プリンタ変更発見通知（ｆｉｎｄ  ｎｅｘｔ  ｐｒｉｎｔｅｒ  ｃｈａｎｇｅ  ｎｏｔｉｆｉｃａｔｉｏｎ）６６を含んでいる。これらのコンポーネントについては、以下でさらに説明する。
【００４３】
前述の双方向照会及び双方向応答を処理するために、ドライバ３０は双方向ＡＰＩ６２を介してその照会ストリングを送り出す。プリンタ３００及びポートモニタ７０は、その後、真、偽、または他のストリングとなり得る、応答の情報を戻す。新しい各双方向ＡＰＩ６２は、双方向照会及びスキーマに基づくＸＭＬ（ｅｘｔｅｎｓｉｂｌｅ  ｍａｒｋｕｐ  ｌａｎｇｕａｇｅ拡張マークアップ言語）を実行するための１つのＡＰＩファンクションを定義する。
【００４４】
双方向ＡＰＩ６２がサポートする動作は、「獲得（Ｇｅｔ）」、「列挙（Ｅｎｕｍ）」及び「設定（Ｓｅｔ）」を含んでいる。この「獲得」動作には、プロパティまたは値を扱うスキーマストリングを含む引き数が必要である。この引き数がプロパティを扱う場合には、双方向ＡＰＩ６２は、このプロパティの下のすべての値を検索することになる。この「列挙」動作には、プロパティまたは値を扱うスキーマストリングを含む引き数が必要である。プロパティでは、この双方向ＡＰＩは、このプロパティの下にあるスキーマのリストを検索する。この「設定」動作には、ある値及び新しいデータ値を扱うスキーマストリングを含む２つの引き数が必要である。
【００４５】
双方向ＡＰＩ６２を介した要求は、以下に示すように表すことができる。この要求は、「設定」、「獲得」、「すべてを獲得（ＧｅｔＡｌｌ）」、「スキーマ列挙（ＥｎｕｍＳｃｈｅｍａ）」などの双方向動作、及び１つまたは複数のスキーマまたは照会ストリングを含んでいる。この要求は、処理すべき双方向スキーマのリストと一緒に動作を定義するＸＭＬストリングである。
【００４６】
【表５】
2005025755.tif 000008
【００４７】
表５の例では、クライアント２００は、両面ユニット及び入力ビン機能に関係する使用可能なオプションを要求する。
【００４８】
表６に示すＸＭＬストリングは、要求に対する応答を表すものである。この応答は、要求された動作の結果を含むＸＭＬストリングである。
【００４９】
【表６−１】
2005025755.tif 000009
【００５０】
【表６−２】
2005025755.tif 000010
【００５１】
図３に示すようなポートモニタ７０は、双方向スキーマからプリンタに特有のプロトコルへとマッピングすることによって、デバイス特有のプロトコルの抽象化を実現する。双方向要求に応答可能とするためには、ポートモニタ７０には（１）プリンタデータベースから必要なデータを検索する機能、（２）データを計算し、かつ／または変換する機能、（３）双方向ＡＰＩ６２を介してデータを戻す機能が必要になる。前述のマッピングは、ＳＰＭ（標準のＴＣＰ／ＩＰポートモニタ（Standard Transmission Control Protocol/Internet Protocol Port Monitor））に特有なものとすることができる。ＳＰＭは、プリンタのＭＩＢ（Ｍａｎａｇｅｍｅｎｔ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｂａｓｅ管理情報ベース）に記憶されたデータを検索するためにＳＮＭＰ（Ｓｉｍｐｌｅ  Ｎｅｔｗｏｒｋ  Ｍａｎａｇｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌシンプルネットワーク管理プロトコル）をこのプリンタに特有のプロトコルとして使用する。
【００５２】
標準的な双方向スキーマで定義されるデータ値の中には、プリンタのＭＩＢからのデータに直接に関係していないものがある。この場合には、ドライバ３０は、双方向値とＭＩＢ値の間のマッピングを記述する関連する拡張ファイル３４を使用する。以下の表７に示す拡張ファイルの例では、ＭＩＢと双方向値を関係づける。
【００５３】
【表７】
2005025755.tif 000011
【００５４】
さらに、拡張ファイル３４は、標準的な双方向スキーマの拡張機能を含むことができる。拡張ファイル３４を使用して記述されるデータ値はドライバ特有である。クライアントは、拡張ファイル３４からのＩＨＶ拡張機能を要求し、それらが変化するときに通知を受け取ることができる。以下の表８はこの概念を示している。
【００５５】
【表８】
2005025755.tif 000012
【００５６】
ポートモニタ７０は、スプーラ通知メカニズム６４を使用して非同期通知チャネルを作成する通知構造を含んでいる。ポートモニタ７０は、プリンタ３００からドライバ３０へとデータを送るメカニズムを提供する。ポートモニタ７０は、前述の双方向スキーマに従ってデータをＸＭＬファイルとして送る。このタイプの通知は双方向通知グローバル固有識別子（ＢＩＤＩ＿ＮＯＴＩＦＩＣＡＴＩＯＮ＿ＧＵＩＤ）として発行され、したがって、任意のアプリケーションがこの通知を聴取するように登録することができる。変更が行われると、ポートモニタ７０は、発行された双方向通知スキーマに従って通知メッセージを作成する。各通知メッセージは、１つまたは複数のポートに関係したセクションを含むことができ、各ポートセクションは、１つまたは複数のスキーマ変更を含むことができる。ポートセクションは、特定のポートについて双方向スキーマ変更を含む通知メッセージの一部である。ポートモニタ７０は、複数のポートに共通の１つの通知メッセージを作成することができる。各ポートセクションは、特定のポートをポート名でアドレス指定する。通知ルータは、ポートセクション情報を使用してスキーマ変更を適切なプリンタへと経路指定する。
【００５７】
スプーラ６０は、ＢＩＤＩ＿ＮＯＴＩＦＩＣＡＴＩＯＮ＿ＧＵＩＤチャネルの反対側に特別な聴取者オブジェクトを作成する。このオブジェクトは、ポートモニタ７０からのメッセージを受け取り、各スキーマ変更で指定されるフラグに従って適切な方向へとこれらを経路指定する。そのスキーマ変更が指定されたフラグ「ドライブプリンタイベント（ｄｒｉｖｅ  ｐｒｉｎｔｅｒ  ｅｖｅｎｔ）」を有する場合にのみ、ドライバプリンタイベントメカニズム６５を使用して通知をドライバ３０へと経路指定することになる。スプーラ６０は、このスキーマ変更のフラグに関係なく、次プリンタ変更発見通知メカニズム６６を使用してどの登録アプリケーションに対しても通知を経路指定することになる。
【００５８】
表９は、通知ツール６４が提供する通知のサンプルを提供している。
【００５９】
【表９】
2005025755.tif 000013
【００６０】
この通知は、低いトナーレベルが存在することを示すプリンタ警告メッセージをドライバ３０に提供している。
【００６１】
ポートモニタ７０が、変更数があまりにも大きすぎてその数だけの別々の通知が負担になるはずと推定する場合には、スキーマ変更をする代わりに共通の通知信号を送ることになる。共通の通知は、いくつかの双方向スキーマ値が変化したことを示す信号を提供する。通知メッセージの例を以下の表１０に提供する。
【００６２】
【表１０−１】
2005025755.tif 000014
【００６３】
【表１０−２】
2005025755.tif 000015
【００６４】
図６は、本発明の自動構成のための方法の一実施例を説明するためのフローチャートを示す図で、ネットワークプリンタのインストレーション後にまたはプリンタ機能の追加後にシステム構成を自動的に更新するための方法を示すフローチャートである。プリンタのインストレーション時またはプリンタ構成が変化するときに、ドライバ３０は、ドライバＡＰＩ（ｄｒｖｐｒｉｎｔｅｒｅｖｅｎｔ）を介してスプーラ／ポートモニタからの通知を獲得して、自動構成のための一連のステップを実施する。ステップＡで、ドライバ３０は、インストール可能な機能リスト及び対応する双方向要求をプリンタ記述ファイル３２から取得する動作を実装する。ステップＢで、ドライバ３０は、スプーラ６０から双方向ＡＰＩ６２を呼び出してこの機能の最新の構成を求めて照会する。ステップＣで、ポートモニタ７０は、双方向スキーマをプリンタ特有のプロトコルにマッピングする。ステップＤで、ポートモニタ７０は、これらのスキーマについての変化したという双方向通知を生成する。ステップＥで、ポートモニタ７０は、通知ツール６４を使用して、ドライバプリンタイベントメカニズム６５を使用して、双方向通知をドライバ３０へと経路指定する。ステップＦで、ポートモニタ７０は、プリンタ変更通知メカニズム６６を使用して双方向通知をアプリケーション１０に経路指定する。ステップＧで、ドライバ３０は、双方向応答構成体を使用して双方向応答をプリンタ記述ファイル４０内の機能にマッピングする。ドライバ３０は、応答データを調べてこの機能を見出し、マッピングするための対応するオプションがあるかどうかその双方向値を調べる。ステップＨで、ドライバ３０は、ＵＩ及びシステムに対する最新の構成での更新を実施する。
【００６５】
図７は、本発明の自動構成のためのプロセスの一実施例を説明するためのブロック図で、構成更新中の前述のコンポーネント間の相互作用を示すブロック図である。プリンタ３００は、プリンタ特有のプロトコルを使用してポートモニタ７０と情報をやりとりする。ポートモニタ７０は、双方向通知チャネルを作成し、スプーラ６０は通知ツール６４を使用して通知をアプリケーション１０及びドライバ３０に経路指定する。ポートモニタ７０は、プリンタ３００と接続されたＭＩＢデータベースに記憶されたＸＭＬファイルからデータを取得する。ポートモニタ７０は、双方向スキーマを使用してＭＩＢ値を期待値に変換し、応答を作成する。
【００６６】
要約すれば、ネットワークデバイス機能の自動更新を提供するように相互作用するものとして以下の機能を本明細書中に開示してきた。本発明は、（ｉ）プリンタ記述ファイル４０を介して双方向要求及び双方向応答を表しこれらを機能に関連づけるためのシンタクス、（ｉｉ）１組の双方向ＡＰＩ６２を介したデバイス特有のプロトコルの抽象化、（ｉｉｉ）拡張ファイル３４中の双方向ＡＰＩについてのスキーマ、及び（ｉｖ）通知インフラストラクチャ６４を含んでいる。
【００６７】
以上、印刷機能を十分に使用するためのシステムの自動構成に関連して説明しているが、本発明の特徴は、また追加の目的のためにも使用することができる。例えば、前述のコンポーネントを印刷妥当性検査のためにも使用することができる。ジョブチケット（ｊｏｂ  ｔｉｃｋｅｔ）とプリンタ構成の間に競合が存在する場合には、自動構成コンポーネントは、ユーザに通知し、または自動解決を実施してデバイスがエラー状態に入らないようにする。
【００６８】
前述のコンポーネントを使用して印刷妥当性検査が行われる。印刷妥当性検査の後、スプーラ６０は、１組のＡＰＩ６２から印刷妥当性検査ＡＰＩを呼び出す。ＩＨＶプラグイン５０が、印刷妥当性検査ＡＰＩの使用を妨げる場合には、ＩＨＶ５０は、最新の構成及び最新のジョブ設定の印刷妥当性検査を実施することができる。どちらの場合にも、スプーラ６０は、結果をドライバ３０に戻し、ドライバ３０は、正しいユーザインターフェース２０がユーザに対して表示されるようにする。ユーザインターフェース２０は、ジョブの進め方をユーザに教えるはずである。ユーザは、推奨された変更を行うことができ、またシステムに要求して自動構成を実施することができる。
【００６９】
さらに、前述のコンポーネントを使用してリソース管理を容易にすることができる。このリソース管理の解決方法は、フォント管理または書式管理のために使用可能なリソースを追跡する印刷時間照会を含んでいる。自動構成解決方法の前に、ドライバ３０は、一般にどのようなリソースが使用可能であるかについての推測を行う。推測が間違っているときには、プリンタ３００はメモリを使い果たし、出力エラーが発生する。
【００７０】
本明細書中で説明した自動構成のためのシステム及びその方法には多くの利点がある。本発明により、デバイスのインストール後に正しい機能設定を得るために手動で実施される構成ステップがなくなる。さらに、前述のコンポーネントによって、構成変更の自動的更新が可能になる。ＵＩ２０に対する変更も自動的に行われ、システムは自動的に応答して変更を反映する。したがって、管理者がインストール可能なオプションを追加しまたは除去する場合には、このＵＩは、自動的にこの変更のことを知るようになる。
【００７１】
本発明を、特定の実施形態に関して説明してきたが、これらの実施形態は、あらゆる点で限定的ではなく例示的であることを意図している。本発明がその技術的範囲を逸脱することなく関連する他の実施形態については、当業者には明らかであろう。
【００７２】
以上のことから、本発明は、自動構成のためのシステム及びその方法に明白な特有の他の利点と共に、以上に述べたすべての目的及び目標をうまく達成するようになっている。ある種の機能及び副次的組合せが有用であり、他の機能及び副次的組合せを参照することなく使用することができる。以上のことは、特許請求の範囲に基づいて勘案されるべきものである。
【図面の簡単な説明】
【００７３】
【図１】ネットワークプリンタを含むシステム環境のコンポーネントを示すブロック図である。
【図２】本発明のクライアントコンピュータを実装するのに使用するための適切な計算機システム環境を示すブロック図である。
【図３】本発明の自動構成のためのシステムの一実施例を説明するためのブロック図である。
【図４】本発明に係るドライバの一実施例を説明するためのブロック図である。
【図５】本発明に係るスプーラの一実施例を説明するためのブロック図である。
【図６】本発明の自動構成のための方法の一実施例を説明するためのフローチャートを示す図である。
【図７】本発明の自動構成のためのプロセスの一実施例を説明するためのブロック図である。
【符号の説明】
【００７４】
１２０  処理装置
１２１  システムバス
１３０  システムメモリ
１３４  オペレーティングシステム
１３５  アプリケーションプログラム
１３６  他のプログラムモジュール
１３７  プログラムデータ
１４０  着脱不能不揮発性メモリインターフェース
１４４  オペレーティングシステム
１４５  アプリケーションプログラム
１４６  他のプログラムモジュール
１４７  プログラムデータ
１５０  着脱可能不揮発性メモリインターフェース
１６０  ユーザ入力インターフェース
１６１  マウス
１６２  キーボード
１７０  ネットワークインターフェース
１７１  ローカルエリアネットワーク
１７２  モデム
１７３  ワイドエリアネットワーク
１８０  リモートコンピュータ
１８５  リモートアプリケーションプログラム
１９０  ビデオインターフェース
１９１  モニタ
１９５  出力周辺インターフェース
１９６  プリンタ
１９７  スピーカ
２００  クライアント
３００  プリンタ
４００  プリントサーバ
５００  ネットワーク
【図１】
2005025755.tif 000016
【図２】
2005025755.tif 000017
【図３】
2005025755.tif 000018
【図４】
2005025755.tif 000019
【図５】
2005025755.tif 000020
【図６】
2005025755.tif 000021
【図７】
2005025755.tif 000022