(57)【要約】      （修正有）【課題】重複情報要求をネットワークデバイスに送信することを抑制してネットワークトラフィックの増大を防ぎ、要求された情報をすばやく得る。【解決手段】デバイス情報取得要求時、テンプレートパース部４０９はテンプレート群４１０を検索し、解析し、プロパティ変換部４０２にその要求情報を通知し、デバイス情報を受信した処理を取得データ操作部４０６に通知する。プロパティ変換部４０２はキャッシュメモリ４１１にキャッシュされている場合にそのキャッシュされた情報を取得データ操作部４０６に通知。また、キャッシュされていない場合には、ネットワークデバイスに要求し、その結果、受信した情報を取得データ操作部４０６に通知する。取得データ操作部４０６は、テンプレートパース部４０９の指示で、ネットワークデバイスより受信したデバイス情報を、ローカライズ部４０７及びリソースデータ４０８で変換し、ＧＵＩ画面表示プロセスに返信する。【選択図】図１３
2005260494.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク上に接続されたネットワークデバイスに関する情報を取得する情報処理装置であって、
ネットワークデバイスのデバイス情報を取得するための手順が記述されたテンプレートを記憶するテンプレート記憶手段と、
所定のプロセスからの指示要求に応じて、前記テンプレート記憶手段で記憶されたテンプレートの記述を解析し、前記ネットワークデバイス用のデバイス情報取得要求情報を作成する要求情報作成手段と、
前記デバイス情報取得要求情報を前記ネットワークデバイスへ送信すると共に、前記ネットワークデバイスからのデバイス情報を受信する通信手段と、
該通信手段で前記ネットワークデバイスより得られたデバイス情報を一時的に記憶するキャッシュ手段と、
前記要求情報作成手段により作成されたデバイス情報取得要求情報を前記ネットワークデバイスに前記通信手段によって送信する以前に、当該デバイス情報取得要求情報に対応するデバイス情報が前記キャッシュ手段に記憶されているか否かを判断する判断手段と、
該判断手段で前記キャッシュ手段に記憶されていると判断した場合には、記憶されたデバイス情報を前記プロセスに返し、前記キャッシュ手段に未記憶であると判断した場合には、デバイス情報取得要求情報を前記通信手段を介して前記ネットワークデバイスに送信することで得たデバイス情報を前記プロセスに返す、通信制御手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記通信手段は、ＴＣＰ／ＩＰプロトコルの上位レイヤに実装される複数のプロトコルを有し、前記要求情報作成手段による解析結果に基づいていずれか１つのプロトコルを用いて通信を行うことを特徴とする情報処理装置。
【請求項３】
前記キャッシュ手段は、１つのテンプレートによる静的なデバイス情報について、ネットワークデバイスとのコネクション確立時に初期化されることを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項４】
前記キャッシュ手段は、１つのテンプレートによる動的なデバイス情報の取得が開始される時に初期化されることを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
ネットワーク上に接続されたネットワークデバイスに関する情報を取得する情報処理装置の制御方法であって、
所定のプロセスからの指示要求に応じて、ネットワークデバイスのデバイス情報を取得するための手順が記述されたテンプレートを記憶する所定のテンプレート記憶手段内の前記テンプレートを解析し、前記ネットワークデバイス用のデバイス情報取得要求情報を作成する要求情報作成工程と、
前記デバイス情報取得要求情報を前記ネットワークデバイスへ送信すると共に、前記ネットワークデバイスからのデバイス情報を受信する通信工程と、
該通信工程で前記ネットワークデバイスより得られたデバイス情報を一時的に記憶するキャッシュメモリに格納する格納工程と、
前記要求情報作成工程により作成されたデバイス情報取得要求情報を前記ネットワークデバイスに前記通信工程によって送信する以前に、当該デバイス情報取得要求情報に対応するデバイス情報が前記キャッシュメモリで記憶されているか否かを判断する判断工程と、
該判断工程で前記キャッシュメモリで記憶されていると判断した場合には、記憶されたデバイス情報を前記プロセスに返し、前記キャッシュメモリに格納されていないと判断した場合には、デバイス情報取得要求情報を前記通信工程で前記ネットワークデバイスに送信することで得たデバイス情報を前記プロセスに返す、通信制御工程と、
を備えることを特徴とする情報処理装置の制御方法。
【請求項６】
コンピュータが読み込み実行することで、ネットワーク上に接続されたネットワークデバイスに関する情報を取得する情報処理装置用のコンピュータプログラムであって、
ネットワークデバイスのデバイス情報を取得するための手順が記述されたテンプレートを記憶するテンプレート記憶手段と、
所定のプロセスからの指示要求に応じて、前記テンプレート記憶手段で記憶されたテンプレートの記述を解析し、前記ネットワークデバイス用のデバイス情報取得要求情報を作成する要求情報作成手段と、
前記デバイス情報取得要求情報を前記ネットワークデバイスへ送信すると共に、前記ネットワークデバイスからのデバイス情報を受信する通信手段と、
該通信手段で前記ネットワークデバイスより得られたデバイス情報を一時的に記憶するキャッシュ手段と、
前記要求情報作成手段により作成されたデバイス情報取得要求情報を前記ネットワークデバイスに前記通信手段によって送信する以前に、当該デバイス情報取得要求情報に対応するデバイス情報が前記キャッシュ手段に記憶されているか否かを判断する判断手段と、
該判断手段で前記キャッシュ手段に記憶されていると判断した場合には、記憶されたデバイス情報を前記プロセスに返し、前記キャッシュ手段に未記憶であると判断した場合には、デバイス情報取得要求情報を前記通信手段を介して前記ネットワークデバイスに送信することで得たデバイス情報を前記プロセスに返す、通信制御手段
として機能することを特徴とするコンピュータプログラム。
【請求項７】
請求項６に記載のコンピュータプログラムを格納することを特徴とするコンピュータ可読記憶媒体。
【請求項８】
ネットワーク上に接続されたネットワークデバイスに関する情報を取得する情報処理装置であって、
ネットワークデバイスのデバイス情報を取得するための手順が記述されたテンプレートを記憶するテンプレート記憶手段と、
所定のプロセスからの指示要求に応じて、前記テンプレート記憶手段で記憶されたテンプレートの記述を解析し、テンプレートの記述に従ったデバイス情報取得要求情報を第１のデバイス要求情報として抽出する第１の抽出手段と、
該第１の抽出手段で抽出したデバイス情報取得要求情報内で、重複する要求情報を除外した情報を第２のデバイス情報要求情報として抽出する第２の抽出手段と、
前記前記第２のデバイス情報要求情報を前記ネットワークデバイスへ送信すると共に、前記ネットワークデバイスからのデバイス情報を受信する通信手段と、
該通信手段でデバイス情報を受信した場合、受信したデバイス情報を、前記第１のデバイス情報要求情報に従って前記プロセスに返す、デバイス情報通信制御手段と
を備えることを特徴とする情報処理装置。
【請求項９】
ネットワーク上に接続されたネットワークデバイスに関する情報を取得する情報処理装置であって、
所定のプロセスからの指示要求に応じて、ネットワークデバイスのデバイス情報を取得するための手順が記述されたテンプレートを記憶する所定のテンプレート記憶手段内の前記テンプレートを解析し、前記テンプレートの記述に従ったデバイス情報取得要求情報を第１のデバイス要求情報として抽出する第１の抽出工程と、
該第１の抽出手段で抽出したデバイス情報取得要求情報内で、重複する要求情報を除外した情報を第２のデバイス情報要求情報として抽出する第２の抽出工程と、
前記前記第２のデバイス情報要求情報を前記ネットワークデバイスへ送信すると共に、前記ネットワークデバイスからのデバイス情報を受信する通信工程と、
該通信手段でデバイス情報を受信した場合、受信したデバイス情報を、前記第１のデバイス情報要求情報に従って前記プロセスに返す、デバイス情報通信制御工程と
を備えることを特徴とする情報処理装置の制御方法。
【請求項１０】
コンピュータが読み込み実行することで、ネットワーク上に接続されたネットワークデバイスに関する情報を取得する情報処理装置として機能するコンピュータプログラムであって、
ネットワークデバイスのデバイス情報を取得するための手順が記述されたテンプレートを記憶するテンプレート記憶手段と、
所定のプロセスからの指示要求に応じて、前記テンプレート記憶手段で記憶されたテンプレートの記述を解析し、テンプレートの記述に従ったデバイス情報取得要求情報を第１のデバイス要求情報として抽出する第１の抽出手段と、
該第１の抽出手段で抽出したデバイス情報取得要求情報内で、重複する要求情報を除外した情報を第２のデバイス情報要求情報として抽出する第２の抽出手段と、
前記前記第２のデバイス情報要求情報を前記ネットワークデバイスへ送信すると共に、前記ネットワークデバイスからのデバイス情報を受信する通信手段と、
該通信手段でデバイス情報を受信した場合、受信したデバイス情報を、前記第１のデバイス情報要求情報に従って前記プロセスに返す、デバイス情報通信制御手段
として機能することを特徴とするコンピュータプログラム。
【請求項１１】
請求項１０に記載のコンピュータプログラムを格納することを特徴とするコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークデバイスよりそのネットワークデバイスに関する情報を取得する技術に関するものである。
【背景技術】
【０００２】
ネットワークデバイスからそのデバイスの構成情報を取得する場合には、取得したい情報を示す属性を持つパケットをそのデバイスに送信し、その結果デバイスよりの返信されるパケットを受信する方法がある。このパケット送受信に使用するプロトコルは、標準プロトコルであるＳＮＭＰ（Simple Network Management Protocol）／ＭＩＢ（Management Information Base）等が知られている。
【０００３】
デバイスに送信するパケットを作成するために必要な属性はプログラムとしてハードコーディングされていることがあるが、汎用性を持たせるためテンプレートファイルとして管理されている場合がある。
【０００４】
例えば、ネットワーク管理サーバ内に格納されたＨＴＭＬファイルに、デバイス情報の取得させる命令を記述する技術が知られている（特許文献１）。
【０００５】
また、特にネットワークデバイスがプリンタである場合、ホストコンピュータ上で実行されるプリンタドライバの処理の一部に、そのネットワークプリンタの情報を取得し、それにしたがってＵＩ（ユーザインタフェース）に反映させる機能が知られている（特許文献２、特許文献３）。
【特許文献１】特開２０００−１３２４７７公報
【特許文献２】特開２０００−２９８５７０公報
【特許文献３】特開２００２−４４３４４公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところが、ネットワークデバイスから必要な情報を得るには、個々の属性を指定し、その都度要求することになるので、ネットワークのトラフィックが増大するという問題が発生する。特に、今後、ネットワークデバイスは、多機能方向に発展していくであろうから、各機能の情報を得るには、何回も要求することは避けられず、必然、ネットワークのトラフィックは増大していくのは明らかである。
【０００７】
本発明はかかる問題点に鑑みなされたものであり、テンプレートの記述に従ってネットワークデバイスから情報取得する際に、そのテンプレートの記述に従って逐次ネットワークデバイスに情報要求するのではなく、重複する情報要求をネットワークデバイスに送信することを抑制してネットワークトラフィックの増大を防ぎつつ、要求された情報をすばやく得ることを可能ならしめる技術を提供しようとするものである。
【課題を解決するための手段】
【０００８】
この課題を解決するため、例えば本発明の情報処理装置は以下の構成を備える。すなわち、
ネットワーク上に接続されたネットワークデバイスに関する情報を取得する情報処理装置であって、
ネットワークデバイスのデバイス情報を取得するための手順が記述されたテンプレートを記憶するテンプレート記憶手段と、
所定のプロセスからの指示要求に応じて、前記テンプレート記憶手段で記憶されたテンプレートの記述を解析し、前記ネットワークデバイス用のデバイス情報取得要求情報を作成する要求情報作成手段と、
前記デバイス情報取得要求情報を前記ネットワークデバイスへ送信すると共に、前記ネットワークデバイスからのデバイス情報を受信する通信手段と、
該通信手段で前記ネットワークデバイスより得られたデバイス情報を一時的に記憶するキャッシュ手段と、
前記要求情報作成手段により作成されたデバイス情報取得要求情報を前記ネットワークデバイスに前記通信手段によって送信する以前に、当該デバイス情報取得要求情報に対応するデバイス情報が前記キャッシュ手段に記憶されているか否かを判断する判断手段と、
該判断手段で前記キャッシュ手段に記憶されていると判断した場合には、記憶されたデバイス情報を前記プロセスに返し、前記キャッシュ手段に未記憶であると判断した場合には、デバイス情報取得要求情報を前記通信手段を介して前記ネットワークデバイスに送信することで得たデバイス情報を前記プロセスに返す、通信制御手段とを備える。
【発明の効果】
【０００９】
本発明によれば、テンプレートの記述に従ってネットワークデバイスから情報取得する際に、そのテンプレートの記述に従って逐次ネットワークデバイスに情報要求するのではなく、重複する情報要求をネットワークデバイスに送信することを抑制してネットワークトラフィックの増大を防ぎつつ、要求された情報をすばやく得ることが可能になる。
【発明を実施するための最良の形態】
【００１０】
以下、添付図面に従って本発明に係る実施形態を詳細に説明する。
【００１１】
図１は実施形態におけるネットワークシステムを示している。図示において、１０１はネットワークプリンタ、１０２は複合機（複写機能、プリンタ機能、スキャナ機能を有する）、２００乃至２０２はパーソナルコンピュータ等の汎用の情報処理装置（以下、ＰＣという）、３００はこれらの装置を接続するネットワークである。なお、周辺装置の一例として、レーザビームを用いて印刷処理を行うネットワークプリンタを開示したが、インクジェットプリンタ、ファクシミリ、デジタルカメラ等の画像形成装置及びこれらの複合機であってもよい。
【００１２】
また、図１はネットワーク構成例を示しているものであり、複数のネットワークをゲートウェイ等で接続した構成でも構わないし、ネットワーク上には複数のプリンタ、複合機、更にはネットワークイメージスキャナ等のデバイスが接続されていても構わない。また、所定の通信媒体として、ネットワーク以外にも、双方向通信可能なUSB(Universal Serial Bus),IEEE1284.4や、ローカルインタフェースであるセントロニクス（商標）インタフェースを用いて、周辺装置とPC200が印刷データの送受信や後述する機器情報の授受を行うシステムであってもよい。
【００１３】
図２はＰＣ２００のブロック構成図である。他のＰＣ２０１、２０２も同様である。
【００１４】
図示において、２０１は装置全体の制御を司るＣＰＵ、２０２はＢＩＯＳやブートプログラムを記憶するＲＯＭ、２０３はＣＰＵ２０１の主記憶装置として使用されるＲＡＭである。２０５はキーボードコントローラ（ＫＢＣ）であり、マウス（登録商標）等のポインティングデバイス２０９ａ、キーボード２０９ｂからの情報を入力に係る処理を行う。２０６は表示制御部（ＣＲＴＣ）であり、内部にビデオメモリを有し、ＣＰＵ２０１からの指示に従ってそのビデもメモリに描画すると共に、ビデオメモリに描画されたイメージデータをビデオ信号としてＣＲＴ表示装置２１０に出力する。なお、図示では表示装置としてＣＲＴを例示しているが、液晶表示装置等、その表示装置の種類は問わない。２０７はディスクコントローラ（ＤＫＣ）であり、ハードディスク２１１、フロッピー（登録商標）ディスク２１２へのアクセスを行う。２０８はネットワークインタフェースカード（ＮＩＣ）であって、ネットワーク３００に接続し、ネットワークを介しての情報通信を行うものである。
【００１５】
なお、ハードディスク２１１には、ＯＳ（実施形態では米国マイクロソフト社が提供するWindows（登録商標）2000を例にする）や本実施形態の特徴となるプリンタドライバプログラムをはじめ、文書編集やイメージ処理等の各種アプリケーションプログラム、更には編集したファイル等が格納される。
【００１６】
上記構成において、本装置の電源がＯＮになると、ＣＰＵ２０１はＲＯＭ２０２に格納されたブートプログラムに従って、ハードディスク２１１からＯＳをＲＡＭ２０３に読み込み、情報処理装置として機能するようになる。そして、ユーザが指示したアプリケーション上で印刷指示を行うと、ＨＤＤ２１１からプリンタドライバがＲＡＭロードされ、複合機１０１に対応した印刷データ（ＰＤＬデータ）を作成し、複合機１０１に向けて印刷データを送出するよう処理することになる。なお、実施形態では、印刷データの送出先として複合機１０１を例にするが、ネットワークプリンタ１００でも勿論かまわない。
【００１７】
ネットワーク３００上での通信プロトコルは、ＴＣＰ／ＩＰを利用するものとする。そして、ネットワークドライバには、予め、複合機１０１のＩＰアドレスの設定が行われているものとする。
【００１８】
そして、実施形態におけるネットワークドライバのＧＵＩウインドウ中の各種メッセージ等の文字列は、日本での使用の際（日本語ＯＳの場合）には日本語で、米国等での使用の際（英語ＯＳの場合）には英語の違いはあるものの、処理内容、すなわち、プリンタドライバの処理は同じである（自然言語の違いはあっても、ＯＳの種類は同じであるため）。
【００１９】
また、複合機１０１は、電気回路やプリンタエンジン、印刷処理に直接的に関るファームウェア等の基本構成は米国、日本向けにかかわらず同じであるものとする。異なるのは、複合機１０１が備える操作パネル上の各ボタンやスイッチに刻印された文字列、操作パネルの表示部に表示する文字列がそれぞれの国に応じたものとなる点が殆どである。なお、表示するメッセージ言語の切り換えは、複合機内部のディップスイッチや、操作パネル上での言語選択指示結果を不揮発性メモリに記憶する等で行うものとする。従って、複合機１０１を製造する際には、どの国向けでも殆ど同じであり、異なるのは、実質的に複合機１０１が有するボタンや各種スイッチ等、操作パネル上に刻印された文字列や機種名等である。
【００２０】
ここで、実施形態における複合機１０１のメーカでの識別情報は“ＭＦＰ１２３０”であり、日本向けの同装置の機種名（日本人が認識する機種名）は“ＭＦＰ１２３０ＪＰ”、米国向けの機種名は“ＭＦＰ１２３０ＵＳ”であるものとする。なお、ここでは機種の最後の文字列“ＪＰ”、“ＵＳ”のみを異なるものとしているが、これは本実施形態の特徴を理解し易いようにするためであって、国ごとに名称は全く異なっていても構わない。
【００２１】
また、複合機１０１は、上記基本構成は使用される国毎にかかわらず実質的に同じであるが、オプションパーツはそれぞれの国毎に同じになるとは限らない。例えば、日本での複合機１０１を使用する場合には、搭載可能な給紙カセットの種類は、それにセットする記録紙の種別（カットシート（普通紙）や封筒）、カットシートサイズであるＡ４、Ａ３、Ｂ５、Ｂ４等に応じたものとなる。米国でも同様で、記録紙の種別（封筒やカットシート）の違いは勿論、サイズとしてもＬｅｇａｌ、ｌｅｔｔｅｒ、ｌｅｄｇｅｒ（帳票サイズ）、Ａ４等があるので、日本と米国とでは給紙カセットの種類の違いが起こり得る。また、排紙装置（フィニッシャー）にも、製本機能を有するフィニッシャー（サドルフィニッシャー）、ステイプル機能を有するフィニッシャー（ステイプルフィニッシャー）、仕分けして排出する通常のフィニッシャー等の幾つかのバリエーションがあり、同じフィニッシャーであっても国別にその名称が異なることも有り得る。
【００２２】
本実施形態では、基本構成が同じネットワーク複合機（ネットワークプリンタを含む）用のプリンタドライバにおけるそのデバイス状態や状況の取得にかかる処理を、ユーザが利用しているＰＣの基本言語に非依存の共通なテンプレートを使用しながらも、それぞれの国（実施形態では、日本と米国を例にしている）にローカライズしたＧＵＩと印刷に係る条件を設定可能とするものである。
【００２３】
図３は、実施形態における日本向けのＭＦＰ１２３０用のプリンタドライバのプロパティＧＵＩウインドウと、デバイス取得プロセス、複合機の関係を示している。このウインドウ３０は、アプリケーション上で印刷指示した際に表示される印刷設定画面上で、印刷装置のプロパティの表示指示した際に表示されるものである。
【００２４】
図示のように、ウインドウ３０には、ＭＦＰ１２３０用のプリンタドライバに関する各種項目がタブウインドウ３０ａ形式で切り換え可能になっている。図示では、そのうちの項目「デバイス設定」の内容を表示している状態を示している。
【００２５】
図示の画面において、デバイス名欄３１、排紙オプション欄３２、増設メモリ欄３３、給紙部欄３４それぞれの欄には、複合機１０１が現在搭載している構成の内容が表示されている。
【００２６】
図３では、デバイス名欄３１には、日本向け機種名である「ＭＦＰ１２３０ＪＰ」が表示され、排紙オプションとして、“ＦＩＮＩＳＨＥＲ１００ＳＪＰ”が接続されており、なおかつ、増設メモリとして２５６ＭＢを搭載していること、給紙部としては、手指しトレイ、Ａ４カセット（Ａ４サイズの記録紙を収納可能な給紙カセット）が搭載されていることを示している。
【００２７】
また、複合機１０１の現在の構成に基づく外観イメージを表示する領域であり、複合機１０１の構成に依存したイメージが表示される。
【００２８】
上記複合機１０１の日本向け名称や、搭載されている構成要素に関する情報は、図示のボタン３５をポインティングデバイスでクリックする実行されるデバイス要求プロセス３７によって、複合機１０１から取得する。図３の各欄３１乃至３４及び画像３６は、デバイス情報取得結果である。
【００２９】
デバイス要求プロセス３７は図４に示す各処理部（プログラムモジュール及びデータ部）で構成されている。
【００３０】
図示において、４０１はデバイス要求プロセス３７の全体を制御するコントロール部であり、ウインドウ３０のＧＵＩプロセスとの通信（引数の受け渡し）処理も行う。４０２はデバイス（実施形態では複合機１０１）が解釈できる要求情報のパケットを生成すると共に、デバイスから受信した情報を取得データ操作部４０６が解釈できるデータに変換するプロパティ変換部である。４０３はデバイスのアクセス制御を行うデバイスアクセス制御部であり、プロパティ変換部４０２で生成されたパケットのデバイスへの送信、並びに、デバイスからの送信されてきたパケットの受信を行う。４０４、４０５はプロトコル処理部であって、図示の場合には２つのプロトコル（ＴＣＰ／ＩＰプロトコルの上位レイヤのプロトコル）が実装されていることを示しているが、この数に制限はない。先に説明したデバイス制御部４０３は、プロトコル処理部４０４、４０５のいずれかを使用して、ネットワーク３００にアクセスすることになる。なお、プロトコル処理部の一例としては、ＳＮＭＰやＩＰＰ等があるし、デバイスとの通信が行えれば如何なるものでも構わない。それ故、プロトコル処理部の実装数には制限を設けないようにした。
【００３１】
４０６は所得データ操作部であって、ネットワークデバイスから受信したデバイス情報に対して、各種操作を行うものである。取得データ操作部４０６の制御下で、取得した情報に基づいて、リソースデータ群４０８（詳細後述）中の参照すべきリソースデータを決定し、プリンタドライバＧＵＩプロセスが要求しているデータに変換するものである。４０９はテンプレートパース部であり、予め用意されたテンプレート（例えば、ＸＭＬで記述されたテキストファイル）群４１０の中から、参照すべきテンプレートを検索する処理を行う。
【００３２】
なお、複数のテンプレート、複数のリソースデータが存在する理由は、実施形態のプリンタドライバは複数の機種モデルに対処可能とするためである。
【００３３】
上記構成における処理を説明すると次の通りである。
【００３４】
図３の表示状態で、ボタン３５がクリックされると、ＧＵＩウインドウ３０のプロセスは、デバイス要求プロセス３７を起動させると共に、デバイスを特定する情報（プリンタドライバをインストールした際に決定される）と、デバイス名、排紙オプション、給紙部に関する情報取得要求を発行する。デバイス要求プロセス３７のコントロール部４０１がこの要求を受信すると、テンプレートパース部４０９に対し、デバイス特定情報を渡し、該当するデバイス用のテンプレートを検索させる。この結果、テンプレートパース部４０９は、検索結果のテンプレートを所得データ操作部４０６に渡すと共に、デバイス要求指示をプロパティ変換部４０２に通知する。
【００３５】
プロパティ変換部４０２は、受信したデバイス要求情報を、デバイスアクセス部４０３を介して、ネットワークデバイス（実施形態では複合機）に送信する。
【００３６】
また、取得データ操作部４０６は、テンプレートパース部４０９から渡されたＸＭＬ記述のテンプレートの１行ずつ解釈し、デバイス情報受信に備える。なお、このテンプレートには使用するプロトコルの記述が含まれるので、それが発見された場合には、コントロール部４０１に通知し、コントロール部４０１はデバイスアクセス部４０３に対して使用するプロトコルを指示する。
【００３７】
さて、プロパティ変換部４０２は、テンプレートパース部４０９よりデバイス情報取得要求コマンドを受けると、そのコマンドを含むパケットを生成し、そのパケットと送信要求をデバイスアクセス部４０３に発行する。デバイスアクセス部４０３は、コントロール部４０１より指示されたプロトコル処理部４０４、又は、４０５のいずれか一方を使用して、ネットワークデバイスに向けてパケットを送信する。
【００３８】
この結果、ネットワークデバイス（複合機１０１）からは要求した情報をパケット形式で送信されるので、デバイスアクセス部４０３はその時点でアクティブになっているプロトコル処理部を介して受信し、その結果を、プロパティ変換部４０２に通知する。
【００３９】
プロパティ変換部４０２は受信したデバイス情報を、取得データ操作部４０６に渡すことで、取得データ操作部４０６は、デバイス情報受信後の後（あと）処理を、ローカライズ部４０７を用いて、実行する。
【００４０】
ローカライズ部４０７は、取得データ操作部４０６より指示されたリソースデータ群４０８の１つのリソースデータを選択及び参照し、受信したパケットの内容と取得データ操作部４０６からの情報に従って、ローカライズ処理を行う。ローカライズ処理した結果は、コントロール部４０１に渡され、要求もとのプリンタドライバＧＵＩプロセスにその結果を返すことになる。
【００４１】
上記処理を具体例を挙げて更に詳しく説明する。
【００４２】
図５は実施形態の複合機１０１用に用意されたテンプレートを示している。なお、図示では行番号を付してあるが、これは理解を容易にするためのものであり、実際には行番号は存在しない。また、このテンプレートは実施形態における複合機１０１、すなわち、メーカ製品名“ＭＦＰ１２３０”用のテンプレートである。そして、図６（ａ）は、同機種の日本向けリソースデータを示している。実施形態における複合機１０１は、フィニッシャーには図示の３種類のうちの１つ、増設メモリカードは２５６ＭＢ、５１２ＭＢ容量のいずれかを増設できるものとする。以下、これらの図を用いて説明する。
【００４３】
テンプレートの１行目のタグ＜ｇｅｔｉｎｆｏ＞で情報取得を宣言し、３行目で使用するプロトコル名が記述されている。ここで指定されるプロトコル名によって、図４に示したプロトコル処理部４０４、４０５のいずれを使用するかが決定される。換言すれば、図４のプロトコル処理部４０４、４０５の２つであったが、その数に制約はなく、独自のプロトコルを用いたプロトコル処理部をアドオンしていれば、プロトコルタグ＜ｐｒｏｔｏｃｏｌ＞〜＜／ｐｒｏｔｏｃｏｌ＞でそのプロトコル名を記述することで、自由なプロトコルを用いてデバイス情報を取得することも可能となる。
【００４４】
４行目のタグは、リソースデータ群４０８を収容するファイルとして「ｒｅｓ．ｄｌｌ」を使用することを宣言するものである。
【００４５】
６行目はコメントタグである。ＸＭＬでは、＜！−−ｘｘｘｘｘｘ−−＞で「ｘｘｘｘｘ」の部分にコメントを記述することが許されている。このコメントタグは処理に影響を与えるものではない。
【００４６】
７行目〜１１行目は、ネットワークデバイス（複合機）から製品名の取得並びに取得後の処理の記述である。
【００４７】
先ず、７行目では、プリンタドライバＧＵＩウインドウ（図３のウインドウ３０）の表示プロセスからの機種名要求の引数名が記述されている。換言すれば、プリンタドライバＧＵＩウインドウ３０にて、デバイス情報取得ボタン３５がクリックされると、その引数の１つが“ＮＳＰＩＤ＿ＰＲＯＤＵＣＴＮＡＭＥ”であることを示している。この“ＮＳＰＩＤ＿ＰＲＯＤＵＣＴＮＡＭＥ”は、ＧＵＩウインドウ３０とデバイス情報取得プロセス３７間で使用されるものであり、ネットワークデバイスが解釈できるコマンドとは一致しない。そこで、８行めで、ネットワークデバイスが解釈可能なコマンドを記述する。これにより、ネットワークデバイスのメーカの違いを吸収することが可能となる。この８行目のコマンドは、取得データ操作部４０６からプロパティ変換部４０２に渡され、ここで最終的な機種名取得のパケットが生成され、ネットワークデバイスに向けて送信されることになる。
【００４８】
１０行〜１２行目の記述は、８行目の記述を実行した際に、ネットワークデバイスから返送されたパケットを受信した後の後（あと）処理が記述されている（そのために図示のようにＡｆｔｅｒＧｏｔタグを用意した）。８行目の処理を行うと、ネットワークデバイスからその機種名情報が返送されてくるが、実施形態の場合、ネットワークデバイスは複合機１０１でありネットワークデバイス内に格納されている機種名は“ＭＦＰ１２３０”であるので、レスポンスパケットには“ＭＦＰ１２３０”の文字列が返送されてくることになる。この文字列は、“ＩＤＳ＿ＰＲＯＤＵＣＴＮＡＭＥ”に対応する取得データ格納用の変数に保持され、リソースデータ群４０８中の該当するリソースデータを検索する際に使用される。
【００４９】
ここで、リソース識別子“ＩＤＳ＿ＰＲＯＤＵＣＴＮＡＭＥ”の「ＭＦＰ１２３０」に対応するリソースデータを検索した結果が、図６（ａ）のリソースデータであるとすると、出力名（ローカライズ後）の文字列“ＭＦＰ１２３０ＪＰ”が得られるので、この文字列をプリンタドライバＧＵＩウインドウ３０に返すことで、図３のデバイス名欄３２に日本向け機種名としての“ＭＦＰ１２３０ＪＰ”を表示させることに成功する。タグ＜ｒｅｐ＞〜＜／ｒｅｐ＞はこのように一致したローカライズデータを出力する命令に使用される。
【００５０】
図５の１３行乃至２２行の記述は、如何なるフィニッシャーが搭載されているかを取得するためのものである。ＧＵＩウインドウ３０からは、フィニッシャー名取得要求である“ＮＳＰＩＤ＿ＯＰＴＩＯＮＴＡＢＬＥ”が渡される。そして、１５行めで、複合機が解釈できるコマンドに変換し、送信させる。この１４、１５行の処理は、ちょうど７行、８行の処理に対応するものである。
【００５１】
ここで、ネットワークデバイスである複合機１０１が搭載しているオプションデバイスが、フィニッシャーの“ＦＩＮＩＳＨＥＲ１００ＳＪＰ”、２５６ＭＢのメモリが増設されている場合には、図７（ａ）に示すようなリストが返送されることになる。
【００５２】
図５の１７〜２１行におけるタグ＜ｒｅｆｌｉｓｔ＞、＜／ｒｅｆｌｉｓｔ＞では、その間に記述されたリソース識別子ＩＤＳ＿ＯＰＴＩＯＮ＿ＦＩＮＩＳＨＥＲ１〜３に、図６（ａ）の該当する文字列“Ｆ１００”、“Ｆ２００”、“Ｆ３００”を格納し、ネットワークより受信したリスト中に該当する文字列と一致するものの検索を行わせるタグである。図７に示すリストがネットワークデバイスから受信した場合、文字列“Ｆ１００”で一致をみるので、変数ＩＤＳ＿ＯＰＴＩＯＮ＿ＦＩＮＩＳＨＥＲ１に対応する日本向けフィニッシャー名“ＦＩＮＩＳＨＥＲ１００ＳＪＰ”を図６（ａ）のリソーステーブルより取得し、プリンタドライバＧＵＩに返すことになる。この結果、図３の排紙オプション欄には、日本向けのフィニッシャー名である“ＦＩＮＩＳＨＥＲ１００ＳＪＰ”を表示することに成功する。
【００５３】
図５の２４〜３２行は、複合機１０１に、増設メモリが搭載されているか、搭載されている場合にはどの程度のメモリ容量なのかを取得するための記述である。ＧＵＩウインドウ３０からは、増設メモリ容量取得要求である“ＮＳＰＩＤ＿ＭＥＭＯＲＹ”が渡される。
【００５４】
後（あと）処理の記述方法は、フィニッシャー情報取得と実質的に同じである。異なる点は、検索する文字列変数名が、“ＩＤＳ＿ＭＥＭＯＲＹ１”、“ＩＤＳ＿ＭＥＭＯＲＹ２”となっているだけであるので、文字列“Ｍ１”が見つかるので、文字列“２５６ＭＢ”をプリンタドライバＧＵＩに返すことになる。
【００５５】
図５の３４〜４６行は、如何なる給紙部を搭載しているかを取得するためのもの記述である。
【００５６】
ＧＵＩウインドウ３０からは、給紙部名取得要求である“ＮＳＰＩＤ＿ＩＮＰＵＴＴＡＢＬＥ”が渡される。そして、３６行目で、複合機が解釈できるコマンドに変換し、要求するテーブル（ｉｄ＿ａｔｔ＿ｉｎｐｕｔ＿ｔａｂｌｅ）を要求する。
【００５７】
この結果、ネットワークデバイスからは、例えば、図７（ｂ）のようなリスト情報が送信されてくる。
【００５８】
この後の処理は、排紙オプション取得時と殆ど同じである。すなわち、タグ＜ｒｅｆｌｉｓｔ＞、＜／ｒｅｆｌｉｓｔ＞で挟まれた間に変数名（複合機ＭＦＰ１２３０）“ＩＤＳ＿ＦＥＥＤＥＲ＿ＮＡＭＥ１〜６”に、図６（ａ）中の該当する文字列“Ｃ０００”、“Ｃ１００”、“Ｃ７００”を格納する。そして、ネットワークデバイスから受信した図７のリスト中に一致する文字列を探し出す。ここでは、文字列“Ｃ００”、“Ｃ１００”のみが一致するものとすると、一致した文字列を格納している変数“ＩＤＳ＿ＦＥＥＤＥＲ＿ＮＡＭＥ１”、“ＩＤＳ＿ＦＥＥＤＥＲ＿ＮＡＭＥ２”それぞれに対応する日本向け名称“手指しトレイ”、“Ａ４カセット”を得ることができるので、その結果をＧＵＩウインドウ３０の表示プロセスに返す。この結果、図３のウインドウ３０中の給紙部欄３４には“手指しトレイ”、“Ａ４カセット”を表示させることに成功する。
【００５９】
以上のように、テンプレートの記述順に従って、デバイス情報取得プロセス３７が処理するが、テンプレート中にタグ＜／ｇｅｔｉｎｆｏ＞を発見すると、一連の処理を終えることになる。
【００６０】
以上は、リソースデータとして図６（ａ）を用いた場合を説明したが、複合機１０１が米国内で使用される場合、例えばリソースデータは図６（ｂ）のようにする。
【００６１】
米国で使用する場合、通常はＢ版の記録紙を使用することはないので、複合機からのリストには文字列“Ｃ７００”は存在しない。代わりに、Ｌｅｇａｌサイズ等を示す文字列“Ｃ５００”が記述されることになるであろう。
【００６２】
ここで仮に、米国向けのリソースデータ（図６（ｂ））を用いた場合であって、ネットワークデバイスから受信したリストが図７（ａ）、（ｂ）の通りであるとすると、図３のデバイス名欄３１には“ＭＦＰ１２３０ＵＳ”、排紙オプション欄３２には“ＦＩＮＩＳＨＥＲ１００ＳＵＳ”、増設メモリ欄３３には“２５６ＭＢ”、給紙部欄３４には“Manual Insertion Tray”、“Letter Cassete”が表示され、米国にローカライズした情報を表示させることが可能となるし、アプリケーションでは取得したデータに従って印刷処理を行うことが可能になる。
【００６３】
なお、説明が前後するが、プリンタドライバＧＵＩウインドウ３０の表示プロセスでは、上記のようにしてデバイス情報取得プロセス３７より情報を受けてウインドウの各欄の文字列を更新することになるが、その際には画像表示領域３６における表示も更新する。例えば、フィニッシャーの種別が判明するから、ＨＤＤ等に記憶された複数のフィニッシャーに関するイメージの中から該当するイメージを読み込み、基本となるＭＦＰ１２３０のイメージと合成して、表示する処理を行う。
【００６４】
以上の説明から理解できるように、本実施形態によれば、国別のリソースデータを必要とするものの、基本構成は同じネットワークデバイス（メーカ側の機種名ば同じ）であれば、国別毎のテンプレートを用意する必要がなく、各国毎のローカライズした情報取得に成功することになる。
【００６５】
また、図５に示すように、ネットワークデバイスに対してデータを取得する際のコマンド（タグ＜ａｔｔｒｓ＞〜＜／ａｔｔｒｓ＞）は、デバイスメーカ毎に異なってもよいし、使用するプロトコルもメーカ毎に異なっても構わない。換言すれば、テンプレート、リソースデータを用意しておけば、メーカ間、ＰＤＬの違いをも吸収することができるので、極めて汎用性の高いネットワークデバイス取得プロセスを提供できるようになる。
【００６６】
次に、実施形態におけるネットワークデバイス取得プロセスの実際の処理手順例を説明する。
【００６７】
図８はデバイス取得プロセス３７のメイン処理を示すフローチャートである。
【００６８】
先ず、ステップＳ１−１においてコントロール部４０１において、プリンタドライバ３０１のＧＵＩ表示プロセスから情報取得リクエストを受信する。
【００６９】
次いで、ステップＳ１−２においてテンプレートパース部４０９へ情報取得リクエストを通知しテンプレート群４１０の中から、ＧＵＩ表示プロセスより指示されたテンプレートを検索し、検索して得たテンプレートを解析する。そして、ステップＳ１−３にて、解析して得たデバイス向けの取得情報コマンドをプロパティ変換部４０２に通知する。ここで、取得情報コマンドとはデバイス情報を取得するために使用するプロトコル並びに取得しようとする属性情報である。
【００７０】
ステップＳ１−４では、ステップＳ１−２で解析した結果であるデータ取得後に如何なる処理をすべきかを取得データ操作部４０６に通知し、実際のデータ取得に備える。
【００７１】
ステップＳ１−５では、プロパティ変換部４０２は、ネットワークを介してネットワークデバイス（実施形態では複合機１０１）に対して、プロトコル処理部４０４、４０５のいずれかを使用して、デバイス情報取得要求コマンドを送信し、その結果を受信する処理を行う。ステップＳ１０６において所定時間経過してもデバイス情報を受信できない場合には、ステップＳ１−８にて通信エラー情報を作成し、ステップＳ１２にてプリンタドライバのＧＵＩウインドウ表示プロセスに、作成されたエラー情報を所定の形式にして返信する。
【００７２】
また、ネットワークデバイスからデバイス情報を受信した場合には、ステップＳ１−７に進み、所得したデータを所得データ操作部４０６に通知する。デバイスデータ操作部４０６はこの通知を受け、取得したデバイス情報を操作するべきか否かを、テンプレートの記述にしたがって判断する。受信した情報に対して操作する記述がテンプレートに存在する場合（実施形態ではタグ＜ａｆｔｅｒｇｏｔ＞が存在する場合を意味する）、ステップＳ１−１０にて、ローカライズ部４０７、リソースデータ４０８を用いて仕向け地に応じたデータ変換を行い、ステップＳ１−１１にて要求元のＧＵＩ表示プロセスに返すデータを作成する。なお、ステップＳ１−９で操作不要と判断した場合には、受信したデータをそのまま活用する（ローカライズ処理は行わない）。そして、ステップＳ１−１２にて、作成したデータをＧＵＩ表示プロセスに返信する。
【００７３】
次に、実施形態における取得データ操作部４０６の処理内容を図９のフローチャートにしたがって説明する。
【００７４】
ステップＳ２−１において、テンプレートパース部４０９で解析して得た取得後データ操作情報を受信する。
【００７５】
次いで、ステップＳ２−２において、受信した＜ｒｃ＞タグで指定されているリソースデータをローカライズ部４０７にロードする。ステップＳ２−３では取得データ変換タグ＜ｒｅｐ＞があるか否かを判断する。タグ＜ｒｅｐ＞があると判断した場合には、ステップＳ２−４にて、タグ＜ｒｅｐ＞、＜／ｒｅｐ＞で挟まされた文字列に対応する変数を確保する。
【００７６】
図６のテンプレートの場合、タグ＜ｒｅｐ＞、＜／ｒｅｐ＞で挟まれた文字列は、“ＩＤＳ＿ＰＲＯＤＵＣＴＮＡＭＥ”であるので、これに対応する変数を確保する。
【００７７】
また、ステップＳ２−５では、リスト参照タグ＜ｒｅｆｌｉｓｔ＞があるか否かを判断する。タグ＜ｒｅｆｌｉｓｔ＞があると判断した場合には、ステップＳ２−６に進み、テンプレート中のタグ＜ｒｅｆｌｉｓｔ＞〜＜／ｒｅｆｌｉｓｔ＞で挟まれた各リソース変数名に、その時点で指定されたリソースデータのメーカ識別名を格納し、保持させる。
【００７８】
例えば、図５のテンプレートの場合であって、リソースデータが図６（ａ）の場合、リソース変数“ＩＤＳ＿ＯＰＴＩＯＮ＿ＦＩＮＩＳＨＥＲ１”を確保し、文字列“Ｆ１００”を格納する。また、変数“ＩＤＳ＿ＯＰＴＩＯＮ＿ＦＩＮＩＳＨＥＲ２”には“Ｆ２００”、変数“ＩＤＳ＿ＯＰＴＩＯＮ＿ＦＩＮＩＳＨＥＲ３”には“Ｆ３００”が格納される。
【００７９】
そして、ステップＳ２−７において、デバイス情報取得データ通知待ち状態に移行する。
【００８０】
ネットワークデバイスからプロパティ変換部４０２、デバイスアクセス部４０３を介してデバイス情報を取得した場合の取得データ操作部４０６の処理内容を図１０のフローチャートに従って説明する。
【００８１】
先ず、ステップＳ３−１において、プロパティ変換部４０２より、取得したデバイス情報データを受信する。次いで、ステップＳ３−２において、変換タグ＜ｒｅｐ＞の情報が保持されているかどうか判断する。
【００８２】
変換タグ＜ｒｅｐ＞による文字列変数が確保されている場合、ステップＳ３−３に進み変換処理を行う。この詳細を図１１のフローチャートに従って説明する。
【００８３】
ステップＳ４−１において、受信したデバイス情報より得られた文字列（実施形態では、製品名としているので文字列“ＭＦＰ１２３０”）を、保持されている文字列変数“ＩＤＳ＿ＰＲＯＤＵＣＴＮＡＭＥ”に格納する。そして、変数ＩＤＳ＿ＰＲＯＤＵＣＴＮＡＭＥで示される文字列“ＭＦＰ１２３０”をキーにして、リソースデータを検索し、ローカライズした文字列を取得する。リソースデータが図６（ａ）の場合には、取得する文字列は“ＭＦＰ１２３０ＪＰ”になるし、リソースデータが図６（ｂ）の場合には、文字列“ＭＦＰ１２３０ＵＳ”となる。
【００８４】
次いで、ステップＳ４−２に進んで、取得した文字列をプリンタドライバのＧＵＩプロセスに通知するため、一時的にＲＡＭに格納する。
【００８５】
図１０の説明に戻る。処理がステップＳ３−４に進むと、今度は、リスト参照タグ＜ｒｅｆｌｉｓｔ＞による文字列変数が確保されているか否かを判断する。確保されていると判断した場合には、ステップＳ３−５に進み、リスト参照タグ＜ｒｅｆｌｉｓｔ＞に応じた処理を行う。この詳細を図１２のフローチャートに従って説明する。
【００８６】
先ず、確保した変数を１つ選択する。図５の１７乃至２１行中の１８行の処理を行う場合であれば、変数名は“ＩＤＳ＿ＯＰＴＩＯＮ＿ＦＩＮＩＳＨＥＲ１”であり、その変数には文字列“Ｆ１００”が格納されていることになる。
【００８７】
次に、ステップＳ５−２に進み、受信したデバイス情報中の変数で示される文字列をキーにして検索する。そして、ステップＳ５−３で、一致する文字列があるか否かを判断する。一致する文字列があった場合には、その変数で示されるパーツデバイスが搭載されていることを意味するので、リソースデータから該当するローカライズ文字列を取得し、格納する。例えば、着目している変数名が“ＩＤＳ＿ＯＰＴＩＯＮ＿ＦＩＮＩＳＨＥＲ１”で、その変数に文字列“Ｆ１００”が格納されていて、受信したデバイス情報中にも“ＧＦ１００”が存在する場合、図６（ａ）からローカライズした文字列“ＦＩＮＩＳＨＥＲ１００ＳＪＰ”を一時的にＲＡＭに保存する。
【００８８】
そして、ステップＳ５−５で、全変数に対して処理が終了したか否かを判断し、否の場合には、次の変数、例えば、“ＩＤＳ＿ＯＰＴＩＯＮ＿ＦＩＮＩＳＨＥＲ２”について検索するため、ステップＳ５−１以降の処理を繰り返す。
【００８９】
なお、１つの複合機には１台のフィニッシャーしか接続されないので、ステップＳ５−３でＹｅｓとなるのは、複数の変数中の１つについてのみである。
【００９０】
図１０の説明に戻る。処理が、ステップＳ３−６に進むと、ステップＳ３−３、或いは、ステップＳ３−５のいずれかで、ＧＵＩウインドウプロセスに通知すべきデータがＲＡＭに格納されているので、その情報をＧＵＩウインドウプロセスに通知する。
【００９１】
以上説明したように本実施形態によれば、国別、言語別に異なるテンプレートを使用せず、共通なテンプレートを使用して、ローカライズしたデバイス情報を取得することが可能になる。また、リソースデータを除く、デバイス情報取得プロセスのプログラムは国別に共通なものとすることができ、しかも、ネットワークデバイスメーカを問わず、汎用性の高いものとすることができるようになり、ネットワークデバイスのドライバプログラムの開発をも格段に簡単なものとすることができる。
【００９２】
なお、上記実施形態では、説明を簡単なものとするため、複合機が搭載し得るオプションパーツとして、フィニッシャー、メモリ、給紙部として各記録紙サイズのカセットを例にしたが、これによって本願発明が限定されるものではない。例えば、オプションデバイスとしてプリンタの印刷速度を向上させるためのレンダリングエンジン（描画コントローラ）カードを増設する場合もあるし、封筒カセット、多量の記録紙をセットするサイド給紙部を搭載することもあり、これらを搭載可能なネットワークデバイスの場合には、それらの情報を取得し、ＧＵＩウインドウに反映させることになる。また、各オプションデバイスの有無だけでなく、正常に動作しているか否かは勿論のこと、用紙切れ、紙詰まり等のエラー情報取得する場合には、そのような情報を取得するための記述をテンプレートに記述し、なおかつ、リソースデータには各国向けに記述してあれば良い。要するに、表示する際にローカライズするところに本実施形態の特徴がある。
【００９３】
なお、デバイスが有する情報には共通な表現を用いる情報もある。例えば、先に説明した搭載メモリ容量の単位である「ＭＢ（マガバイト」をはじめとする「ＫＢ（キロバイト）」、「ＧＢ（ギガバイト）」等はローカライズするまでもない。このような言語間で共通な表現の情報については、リソースデータを参照しないで、そのまま上位の処理に渡すようにし、そのための記述をテンプレートに記述すればよい。
【００９４】
説明が前後するが、図３のデバイス情報取得ボタン３５がクリックされた際の、プリンタドライバのＧＵＩウインドウ表示プロセスは、図１８の処理を行えばよい。
【００９５】
先ず、ステップＳ９−１にてデバイス情報取得プロセス３７を起動する。このとき、表示すべき各欄を示す項目名（図５の７、１４、２５、３５行目の記述された文字列）を引数としてデバイス情報取得プロセス３７に渡す。ステップＳ９−２では、デバイス情報取得プロセス３７からのアクノリッジを待つ。デバイス情報取得プロセス３７から何らかのデータを受信した場合には、ステップＳ９−３にてエラー情報であるか否かを判定し、エラーである場合には、ステップＳ９−４にてその旨のエラーメッセージを表示し、本処理を終える。また、デバイス情報であると判断した場合には、ステップＳ９−５にて、デバイス情報取得プロセス３７より受信したデータに従って、各欄３２、３３、３４に反映させると共に、受信したデバイスパーツ情報に基づきパーツ画像（ＨＤＤ２１１に記憶されている）を組み合わせて、装置の外観画像を生成し、その作成した画像を表示領域３６に表示することで、ＧＵＩウインドウ３０を更新する。
【００９６】
＜第２の実施形態＞
上記実施形態（以下、第１の実施形態）によると、例えば、図５のテンプレートを使用するとき、排紙オプション情報を取得する際、及び、増設メモリの有無と容量を取得する際、ネットワークデバイス（複合機１０１）に対して２回同じ情報取得要求（図５でのｉｄ＿ａｔｔ＿ｏｐｔｉｏｎ＿ｔａｂｌｅ）を発行する。
【００９７】
これは、上位のＧＵＩウインドウでの要求を順に応えるためであるが、短時間内に、同一の情報要求を同じネットワークデバイスに発行するものであるから、当然、同じデータが送信されてくることになる。従って、効率面で改善の余地があるし、ネットワークのトラフィック混雑の一因となるので好ましくない。
【００９８】
そこで、本第２の実施形態では、この重複する情報取得を１つの情報所得で行う技術を提供する。
【００９９】
ネットワーク構成は図１と同じとし、本第２の実施形態でもＰＣ２００におけるデバイス情報取得プロセス３７について説明する。
【０１００】
図１４は本第２の実施形態におけるデバイス情報取得プロセス３７の構成を示している。図４と異なる点は、プロパティ変換部４０２がアクセスするキャッシュメモリ（ＲＡＭ２０３に確保する）４１１を設ける点にある。なお、キャッシュメモリを設けるのは、図３のＧＵＩウインドウの例えば「詳細設定」タブにてキャッシュ有効の指定が行われた場合である。キャッシュ無効の場合には、第１の実施形態と同じ動作になる。図１４は、キャッシュが有効として設定された場合の構成となる。
【０１０１】
第１の実施形態で説明したように、プロパティ変換部４０２はテンプレートパース部４０９から情報取得要求を受けて、ネットワークデバイスに向けて送信すべきパケットを生成する。本第２の実施形態におけるプロパティ変換部４０２は、そのパケットを生成する前に、テンプレートパース部４０９より要求された情報取得コマンドをキーにして、キャッシュメモリ４１１に既に同じ情報取得コマンドで得られたデバイス情報が格納されているか否かを判断し、もし、同じ情報取得コマンドを含むパケットを要求していると判断した場合には、キャッシュメモリ４１１から該当するデバイス情報を取得データ操作部４０６に通知する。また、キャッシュメモリ４１１に、デバイス情報が格納されていない場合には、ネットワークデバイスに対して情報取得要求のパケットを送信し、それに対してデバイス情報が返信された場合に、キャッシュメモリ４１１に登録すると共に、取得したデバイス情報を取得データ操作部４０６に通知する。
【０１０２】
図１５は第２の実施形態におけるキャッシュメモリ４１１の構造を示している。
【０１０３】
図示に示すように、キャッシュメモリ４１１の１レコードは、ネットワークデバイス（複合機１０１）のネットワーク上のＩＰアドレス、要求情報、及び、ネットワークデバイスより取得した取得情報で構成される。ＩＰアドレスを記憶するのは、図３のＧＵＩウインドウ３０上での「ポート」タブを選択して、印刷出力するネットワークデバイスとして複合機１０１からネットワークプリンタ１００に変更可能であるためである。
【０１０４】
上記の説明からわかるように、本第２の実施形態では、プロパティ変換部４０２の処理を除く他の処理部は第１の実施形態と同じで良い。ただし、キャッシュメモリ４１１は、本実施形態におけるデバイス情報取得プロセス３７が起動した際に、リセットされるものとする。換言すれば、１つのテンプレートによるデバイス情報取得プロセス内という、ごく限られた期間のみで有効にするものとした。キャッシュメモリの有効期間が長くなると、ネットワークデバイスの構成が変更されたという場合に不整合が発生するからである。キャッシュ有効期間を、１つのテンプレート内の処理のみに限定すれば、このような不整合について考慮しなくても構わない。
【０１０５】
以下、第２の実施形態におけるプロパティ変換部４０２の処理内容を図１５のフローチャートに従って説明することとする。
【０１０６】
ステップＳ６−１では、テンプレートパース部４０９からデバイス情報取得要求（ｉｄ＿ａｔｔ＿ｐｒｏｄｕｃｔｎａｍｅやｉｄ＿ａｔｔ＿ｏｐｔｉｏｎ＿ｔａｂｌｅ等）があるまで待つ。デバイス情報取得要求があった場合には、ステップＳ６−２に進んで、受信したデバイス情報要求と要求しようとするネットワークデバイスのＩＰアドレスの両方と一致するデータがキャッシュメモリ４１１に存在するか否かを判断する。もしキャッシュメモリ４１１に該当するデータが存在すると判断した場合には、ステップＳ６−３にて、キャッシュメモリ４１１より、過去に取得したデバイス情報（ただし、取得データ操作部４０６用の形式に変換してある）を取得データ操作部４０６に通知し、ステップＳ６−１に戻る。
【０１０７】
また、キャッシュメモリ４１１内に、テンプレートパース部４０９から要求された要求デバイス情報が存在しないと判断した場合には、ステップＳ６−４に進んで、ネットワークデバイス用のデバイス情報取得コマンドを含むパケットを生成し、ステップＳ６−５で、指示されたプロトコル処理部を使って、ネットワークデバイスに向けて送信する。そして、所定時間経過してもデバイス情報受信できなかった場合にはステップＳ６−７にてエラーデータを生成し、コントロール部４０１に通知する。この結果、コントロール部４０１は、各処理部の処理を中止するよう指示すると共に、プリンタドライバＧＵＩプロセスに取得不可メッセージを所定の形式で通知することになる。
【０１０８】
一方、正常にデバイス情報を受信できた場合には、ステップＳ６−９にて、受信したデバイス情報を、取得データ操作部４０６が解釈できる返信データを生成し、通知する。そして、ステップＳ６−１０にて、生成した返信データ、デバイス情報取得要求コマンド、並びに、ＩＰアドレスをキャッシュメモリ４１１に登録する。
【０１０９】
以上の結果、本第２の実施形態によれば、第１の実施形態の作用効果に加えて、ネットワークデバイス情報を高速に取得することが可能となるので、ユーザにしてみれば、プリンタドライバのＧＵＩ画面にてデバイス情報取得ボタン３５をクリックした際に高速なレスポンスでＧＵＩウインドウの更新が行われるようになる。
【０１１０】
なお、ネットワークデバイスに附加されるパーツや機能には大きく分けて、設置時からあまり変化しないもの（接続されたフィニッシャーや、メモリ、ＡＤＦ、アドオンした機能拡張したプログラム等）と、設置後に非同期に変化する動的な情報（記録紙無し、インクやトナー残量、記録紙のジャム等のエラー）がある。
【０１１１】
かかる点に鑑みると、デバイス情報は、静的なデバイス情報と、静的なデバイス情報の２種類に分けることができる。従って、テンプレートには動的なデバイス情報を記憶するようにし、静的デバイス情報についてのキャッシュの有効期間をデバイスとのコネクションを確保するようにしてもよい。
【０１１２】
＜第２の実施形態の変形例＞
上記第２の実施形態では、プロパティ変換部４０２の処理がメインであったが、ネットワークデバイスに対して要求しようとする情報が複数種類ある場合、必要な情報をまとめて要求した方が、情報取得にかかるオーバーヘッドが少なくて済む。そこで、本変形例では、この例について説明する。なお、装置構成は第１の実施形態と同じとし、以下では、この変形例におけるテンプレートパース部４０９、プロパティ変換部４０２の処理について説明する。
【０１１３】
先ず、テンプレートパース部４０９の処理を図１６のフローチャートに従って説明する。
【０１１４】
先ず、ステップＳ７−１において、プリンタドライバのＧＵＩウインドウプロセスより、ネットワークデバイス取得要求を受信すると、ステップＳ７−２で目的とするテンプレートを検索して決定する。次いで、ステップＳ７−３に進み、テンプレートを１行ずつ解析する。ステップＳ７−４にて、タグ＜ｐｉｄｓ＞が発見されると、その次の行にはネットワークデバイスへの要求タグ＜ａｔｔｒ＞〜＜／ａｔｔｒｓ＞が存在することになるから、このタグ＜ａｔｔｒ＞、＜／ａｔｔｒｓ＞で挟まれたコマンド文字列を情報ＡとしてＲＡＭ２０３の記憶保持する。ステップＳ７−６では、他のタグの処理を行い、ステップＳ７−７にて、テンプレートの最後を示す＜／ｇｅｔｉｎｆｏ＞が見つかるまで、ステップＳ７−３以降の処理を繰り返す。
【０１１５】
ステップＳ７−７の判断がＹｅｓとなった場合、情報Ａには、プリンタドライバのＧＵＩウインドウプロセスよりの要求に対応するネットワークデバイスへの全要求が格納されることになる。そこで、ステップＳ７−８では、情報Ａ中の重複しているデバイスへのリクエストを除いた情報Ｂを作成する。そして、ステップＳ７−９において、作成された情報Ａ，Ｂをプロパティ変換部４０２に通知する。
【０１１６】
次に、プロパティ変換部４０２の処理を、図１７のフローチャートに従って説明する。  
ステップＳ８−１にて、テンプレートパース部４０９から情報Ａ，Ｂを受けとる。そして、ステップＳ８−２において、情報Ｂのみで構成されるデバイス情報取得要求をまとめて、ネットワークデバイス（実施形態では複合機１０１）に向けた要求情報を作成し、送信する。
【０１１７】
ステップＳ８−３にて、所定時間経過しても、何等情報を受信できない場合には、ステップＳ８−５にてエラー情報を作成し、ステップＳ８−６にてコントロール部４０１に通知する。
【０１１８】
一方、ネットワークデバイスよりデバイス情報を受信した場合には、受信したデバイス情報に基づき、情報Ａを構成する個々の要求情報に応じた返信データを作成し、取得データ操作部４０６に通知する。
【０１１９】
以上説明したように本変形例によると、第２の実施形態とほぼ同様の作用効果を奏することが可能となると共に、ネットワークデバイスへの各属性のデバイス要求情報が一度の要求で行われることになり、その分だけオーバーヘッドを少なくでき、更に効率の良いデバイス情報取得が可能となる。
【０１２０】
以上本発明に係る実施形態を説明したが、本実施形態ではネットワークデバイスとして複合機を例にして説明したが、上記説明からわかるように、複合機に限定されるものではなく、ネットワークプリンタはもちろんのこと、ネットワークスキャナ等の各種ネットワークデバイスにも適用できるのは明らかである。
【０１２１】
また、本発明の主要な処理は、プリンタドライバ等のデバイスドライバの一構成要素のプログラムとして説明したが、デバイスドライバとは独立したプログラムでも構わない。また、上記実施形態で説明したように、その主要部分はコンピュータプログラムによるものであるので、当然、そのようなコンピュータプログラムも本発明の範疇に含まれる。また、通常、コンピュータプログラムはＣＤ−ＲＯＭ等のコンピュータ可読記憶媒体をコンピュータにセットして、システムにコピーもしくはインストールすることで実行可能となるので、当然に、そのようなコンピュータ可読記憶媒体も本発明の範疇に含まれることになる。
【図面の簡単な説明】
【０１２２】
【図１】実施形態におけるネットワーク構成例を示す図である。
【図２】図１における情報処理装置のブロック構成図である。
【図３】実施形態におけるプリンタドライバのＧＵＩウインドウ、ネットワークデバイスである複合機、並びに、デバイス情報取得プロセスの関係を示す図である。
【図４】第１の実施形態におけるデバイス情報取得プロセスの構成図である。
【図５】実施形態における複合機用のテンプレートの一例を示す図である。
【図６】実施形態における日本向けリソースデータと米国向けリソースデータの内容の一例を示す図である。
【図７】ネットワークデバイスより受信するデータの例を示す図である。
【図８】実施形態におけるデバイス情報取得プロセスの全体の処理手順を示すフローチャートである。
【図９】実施形態における取得データ操作部の処理手順を示すフローチャートである。
【図１０】実施形態における取得データ操作部の処理手順を示すフローチャートである。
【図１１】図１０のステップＳ３−３の処理を示すフローチャートである。
【図１２】図１０のステップＳ３−５の処理を示すフローチャートである。
【図１３】第２の実施形態におけるデバイス情報取得プロセスの構成図である。
【図１４】第２の実施形態におけるキャッシュメモリの内容の一例を示す図である。
【図１５】第２の実施形態におけるプロパティ変換部の処理内容を示すフローチャートである。
【図１６】第２の実施形態の変形例のテンプレートパース部の処理内容を示すフローチャートである。
【図１７】第２の実施形態の変形例のプロパティ変換部の処理内容を示すフローチャートである。
【図１８】実施形態におけるプリンタドライバのＧＵＩプロセスの処理手順を示すフローチャートである。
【図１】
2005260494.tif 000003
【図２】
2005260494.tif 000004
【図３】
2005260494.tif 000005
【図４】
2005260494.tif 000006
【図５】
2005260494.tif 000007
【図６】
2005260494.tif 000008
【図７】
2005260494.tif 000009
【図８】
2005260494.tif 000010
【図９】
2005260494.tif 000011
【図１０】
2005260494.tif 000012
【図１１】
2005260494.tif 000013
【図１２】
2005260494.tif 000014
【図１３】
2005260494.tif 000015
【図１４】
2005260494.tif 000016
【図１５】
2005260494.tif 000017
【図１６】
2005260494.tif 000018
【図１７】
2005260494.tif 000019
【図１８】
2005260494.tif 000020