(57)【要約】【課題】  UPnPのPrintBasic:1 Service Template Version 1.01で標準化されているようなＸＭＬのスキーマで定義された文字列のデータを、プリンタドライバを介してハンドリングしてプリンタを制御して印刷する場合、印刷設定情報として、用紙サイズ、用紙の種類等における選択肢が増えるほど膨大なテーブルのリソースが必要になったり変換処理が複雑になる。【解決手段】  ＵＰｎＰのサービスとして定義されているスキーマ上に、印刷設定情報の各設定を数値で取り扱えるような新しい仕組み（要素）を設け（Ｓ２６０３）、この新しい仕組み（要素）で指定された数値をハンドリングして印刷ジョブを生成し、この作成された印刷制御コマンドをプリンタドライバを介してプリンタに送信して印刷させる。【選択図】  図２６
2005148953.tif 000002
【特許請求の範囲】
【請求項１】
クライアントと周辺装置と、前記周辺装置を制御するサーバとを備える周辺装置制御システムであって、
前記サーバは、前記周辺装置を制御するのに使用可能であって、文字列と当該文字列に対応する数値で表される設定情報を前記クライアントに通知する通知手段と、
前記クライアントから送信された設定情報に含まれる数値に従って前記周辺装置の制御情報を構築して前記周辺装置を制御する制御手段とを有し、
前記クライアントは、
前記周辺装置を使用した処理が指示されると、前記周辺装置を制御するのに使用可能な設定情報を数値で表わして前記サーバに送信する送信手段を有することを特徴とする周辺装置制御システム。
【請求項２】
情報処理装置と周辺装置とをネットワークを介して接続した周辺装置制御システムであって、
前記情報処理装置は、
前記周辺装置を制御する周辺装置制御手段と、
文字列で定義された文字列要素と対応する数値とを含む設定情報を前記周辺装置制御手段に適用して前記周辺装置を制御することを特徴とする周辺装置制御システム。
【請求項３】
前記情報処理装置は、前記設定情報を設定するためのユーザインターフェースを有し、前記ユーザインターフェースは前記文字列要素を表示することを特徴とする請求項１又は２記載の周辺装置制御システム。
【請求項４】
前記ユーザインターフェースを表示するＷｅｂブラウザを更に有することを特徴とする請求項３に記載の周辺装置制御システム。
【請求項５】
前記周辺装置はプリンタであり、前記文字列要素と前記数値は、用紙サイズ、用紙の種類、印刷品位の少なくともいずれかを表すことを特徴とする請求項１乃至４のいずれか１項に記載の周辺装置制御システム。
【請求項６】
前記文字列要素は、前記プリンタのメーカ名、機種に関する情報を含むことを特徴とする請求項５に記載の周辺装置制御システム。
【請求項７】
前記設定情報は、前記文字列要素に含まれる所定の文字列に特有の数値を用いて設定されていることを特徴とする請求項１に記載の周辺装置制御システム。
【請求項８】
前記設定情報は、前記文字列要素に含まれるメーカ名に特有の数値を用いて設定されていることを特徴とする請求項６に記載の周辺装置制御システム。
【請求項９】
ネットワークを介して接続された情報処理装置からの制御情報を入力して、接続されている周辺装置の動作を制御する周辺装置制御手段と、
文字列で定義された文字列要素と対応する数値を含み、前記周辺装置に設定可能な設定情報を前記ネットワークを介して接続された情報処理装置に通知する手段とを有し、
前記設定情報に応じて前記情報処理装置から送信される制御情報に基づいて前記周辺装置を制御することを特徴とする情報処理装置。
【請求項１０】
前記周辺装置はプリンタであり、前記文字列要素と前記数値は、用紙サイズ、用紙の種類、印刷品位の少なくともいずれかを表すことを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
前記文字列要素は、前記プリンタのメーカ名、機種及び製造番号に関する情報を含むことを特徴とする請求項１０に記載の情報処理装置。
【請求項１２】
クライアントと周辺装置と、前記周辺装置を制御するサーバとを備える周辺装置制御システムに適用される周辺装置制御方法であって、
前記サーバから文字列と対応する数値で表される設定情報を前記クライアントに通知する工程と、
前記周辺装置を使用した処理が指示されると、前記設定情報を用いて前記周辺装置の制御情報を作成して前記サーバに送信する工程と、
前記設定情報を含む前記周辺装置の制御情報を前記クライアントから受信すると、前記制御情報に従って前記周辺装置を制御する工程と、
を有することを特徴とする周辺装置制御方法。
【請求項１３】
情報処理装置で構成されるクライアントと、情報処理装置で構成されるサーバと、周辺装置とから成る周辺装置制御システムに適用される周辺装置制御方法であって、
前記周辺装置を制御する周辺装置制御工程と、
文字列で定義された文字列要素と数値要素を含むサービスを利用して、前記数値要素を前記周辺装置制御工程に適用して前記周辺装置を制御する工程と、
を有することを特徴とする周辺装置制御方法。
【請求項１４】
クライアントと周辺装置と、前記周辺装置を制御するサーバとを備える周辺装置制御システムに適用される周辺装置制御方法をコンピュータに実行させるためのプログラムであって、
前記サーバから文字列と対応する数値で表される設定情報を前記クライアントに通知する工程と、
前記周辺装置を使用した処理が指示されると、前記設定情報を用いて前記周辺装置の制御情報を作成して前記サーバに送信する工程と、
前記設定情報を含む前記周辺装置の制御情報を前記クライアントから受信すると、前記制御情報に従って前記周辺装置を制御する工程と、
を有することを特徴とするプログラム。
【請求項１５】
情報処理装置で構成されるクライアントと、情報処理装置で構成されるサーバと、周辺装置とから成る周辺装置制御システムに適用される周辺装置制御方法コンピュータに実行させるためのプログラムであって、
前記周辺装置を制御する周辺装置制御工程と、
文字列で定義された文字列要素と数値で定義された数値要素を含むサービスを利用して、前記数値要素を前記周辺装置制御工程に適用して前記周辺装置を制御する工程と、
を有することを特徴とするプログラム。
【請求項１６】
情報処理装置に適用される周辺装置制御方法を、コンピュータに実行させるためのプログラムであって、
前記情報処理装置は周辺装置を制御する周辺装置制御部を備え、前記情報処理装置は、文字列で定義された文字列要素と数値で定義された数値要素を含むサービスを利用して、前記数値要素を前記周辺装置制御部に適用して前記周辺装置を制御するステップを備えることを特徴とするプログラム。
【請求項１７】
前記制御する工程では、前記数値要素を数値に変換した値を前記周辺装置制御工程に適用することを特徴とする請求項１３記載の周辺装置制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置と周辺装置とを含む周辺装置制御、所定のプロトコルを用いて周辺装置の探索処理を行う情報処理装置、周辺装置制御システム及び情報処理装置に適用される周辺装置制御方法、並びに該周辺装置制御方法をコンピュータに実行させるためのプログラムに関する。
【背景技術】
【０００２】
近年、ネットワークの基盤が整備されるに従い、ネットワーク対応型のプリンタ、複写機、ファクシミリ、スキャナ、デジタルカメラ、及びこれらの複合機能を備える画像処理装置等の周辺装置が急速に普及しつつある。
【０００３】
また一方、これらネットワーク対応型の周辺装置の普及に伴い、ネットワーク上で各種サービスを提供する周辺装置を、ネットワークを介して探索し、その周辺装置を情報処理装置（クライアントＰＣ）から制御するようにする技術が開発されつつある。例えば、このような技術には、マイクロソフト社の提唱するUniversal Plug and Play（以降、ＵＰｎＰと略すことがある）が存在し、現在、UPnP Forum（http://www.upnp.org/）にて標準化されている。
【０００４】
通常、このＵＰｎＰの環境では、周辺装置がＵＰｎＰの機能を備えている必要があるが、周辺装置がプリンタの場合を考えると、最近は、情報処理装置で構成される代理サーバに接続されているＵＰｎＰの機能を備えていないローカルプリンタを、その代理サーバを介することによりＵＰｎＰの機能を備えるネットワークプリンタとして、ネットワーク環境下で共有して使用できるようなシステムも提案されている。
【０００５】
このようにネットワーク上で情報処理装置と周辺装置との間で各種サービスを提供する場合、例えば、ＵＰｎＰのPrintBasic:1 Service Template Version 1.01で標準化されているようなＸＭＬのスキーマで定義されている、情報処理装置から周辺装置へ送られる文字列のデータを、周辺装置用のドライバを介してハンドリングしてその周辺装置を制御することができる。
【０００６】
例えば、図２８には、Service Template Version 1.01に記述されている規格の一部が記載されている。図２８において、２８０１はプリンタやプリントサービスがサポート可能な用紙サイズを示し、２８０２はプリンタやプリントサービスがサポート可能なメディアタイプ（用紙種類）が記載されている。問合せを受けたプリントサービスは、図２８に記載されたフォーマットに従って、例えばサポートしているメディアタイプ（用紙の種類）、用紙サイズ等を返信する。
【非特許文献１】PrintBasic:1 Service Template Version 1.01（http://www.upnp.org/download/Service_print_v1_020808.pdf）2002年8月8日公開）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上述の背景技術では、各種サービスを提供する場合、ＸＭＬのスキーマで定義されている、情報処理装置から周辺装置へ送られる文字列のデータを、ドライバを介してハンドリングして周辺装置を制御している。その際、周辺装置を制御するプログラムでは、文字列のままでは無く数値に変換して処理するケースがほとんどである。このようなケースでは、該当する設定に対して、文字列・数値変換テーブルを使って文字列から数値に変換するか、或はこのような文字列・数値変換テーブルを使わずに、ドライバ（プログラム）内で文字列を一つ一つ比較しながらその文字列に該当する数値を特定して処理する場合が考えられる。しかしながら、周辺装置としてプリンタを考えた場合、これらの処理方法では、設定情報として、用紙サイズ、用紙の種類等における選択肢が増えれば増えるほど、膨大なテーブルのリソースが必要になったり、変換処理が複雑になるというような問題点がある。
【０００８】
本発明は上記問題点に鑑みてなされたもので、膨大なテーブルのリソースを必要とするような処理を実装する必要がなくシンプルな処理で実装することができ、しかも最適な設定で周辺装置を制御することができる周辺装置制御システム及びその制御方法とそのプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明に係る周辺装置制御システムは以下のような構成を備える。即ち、
クライアントと周辺装置と、前記周辺装置を制御するサーバとを備える周辺装置制御システムであって、
前記サーバは、前記周辺装置を制御するのに使用可能であって、文字列と当該文字列に対応する数値で表される設定情報を前記クライアントに通知する通知手段と、
前記クライアントから送信された設定情報に含まれる数値に従って前記周辺装置の制御情報を構築して前記周辺装置を制御する制御手段とを有し、
前記クライアントは、前記周辺装置を使用した処理が指示されると、前記周辺装置を制御するのに使用可能な設定情報を数値で表わして前記サーバに送信する送信手段を有することを特徴とする。
【００１０】
本発明に係る周辺装置制御システムは以下のような構成を備える。即ち、
情報処理装置と周辺装置とをネットワークを介して接続した周辺装置制御システムであって、
前記情報処理装置は、
前記周辺装置を制御する周辺装置制御手段と、
文字列で定義された文字列要素と対応する数値とを含む設定情報を前記周辺装置制御手段に適用して前記周辺装置を制御することを特徴とする。
【００１１】
本発明に係る周辺装置制御システムに適用される周辺装置制御方法は以下のような構成を備える。即ち、
クライアントと周辺装置と、前記周辺装置を制御するサーバとを備える周辺装置制御システムに適用される周辺装置制御方法であって、
前記サーバから文字列と対応する数値で表される設定情報を前記クライアントに通知する工程と、
前記周辺装置を使用した処理が指示されると、前記設定情報を用いて前記周辺装置の制御情報を作成して前記サーバに送信する工程と、
前記設定情報を含む前記周辺装置の制御情報を前記クライアントから受信すると、前記制御情報に従って前記周辺装置を制御する工程とを有することを特徴とする。
【００１２】
本発明に係る周辺装置制御システムに適用される周辺装置制御方法は以下のような構成を備える。即ち、
情報処理装置で構成されるクライアントと、情報処理装置で構成されるサーバと、周辺装置とから成る周辺装置制御システムに適用される周辺装置制御方法であって、
前記周辺装置を制御する周辺装置制御工程と、
文字列で定義された文字列要素と数値で定義された数値要素を含むサービスを利用して、前記数値要素を前記周辺装置制御工程に適用して前記周辺装置を制御する工程と、
を有することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、次のような効果が得られる。
（１）複雑でしかも膨大なテーブルのリソースを必要とするような処理を実装する必要がなく、シンプルな処理で実装することができる。
（２）ソフトウェアリソースを大幅に削減することができる。
（３）バグの発生を防ぐことができる。
（４）誤動作を防止しつつ最適な制御条件を設定して周辺装置を制御できる。
【発明を実施するための最良の形態】
【００１４】
以下、添付図面を参照して本発明の好適な実施の形態を詳しく説明する。
【００１５】
図１は、本発明の実施の形態に係る周辺装置制御システムの第１の構成部分を説明する機能ブロック図である。尚、この周辺装置制御システムは第１〜第３の構成部分を有しており、第２の構成部分については図３を参照して、第３の構成部分については図４を参照して詳しく後述する。
【００１６】
この第１の構成部分における情報処理装置は、クライアントＰＣ（Personal Computer）８５１，８５７を含み、周辺装置はプリンタ８５５を含んでいる。クライアントＰＣ８５１，８５７とプリンタ８５５とは、Ethernet（登録商標、以下略）で構成されるネットワーク８５６を介して接続され、互いに通信可能である。尚、周辺装置として図１ではプリンタ８５５を示したが本発明はこれに限定されるものでなく、例えばプリンタ、複写機、ファクシミリ、スキャナ、デジタルカメラ、又はこれらの複合機などの画像形成装置であってもよい。
【００１７】
尚、本実施の形態では、クライアントＰＣ８５１，８５７で実行されるアプリケーション（ソフトウェア）とプリンタ８５５に実装されるアプリケーション（ソフトウェア）とで実現され、これらアプリケーションは各機能モジュールより構成されている。図１におけるクライアントＰＣ８５１及びプリンタ８５５の各ブロック内には、これら各機能モジュールが示されている。
【００１８】
図２は、図１に示すクライアントＰＣ８５１，８５７及びＷｅｂサーバ８５８のハードウェア構成を説明するブロック図で、この構成については詳しく後述する。
【００１９】
これらクライアント及びサーバには、ＯＳ（Operating System）として米国マイクロソフト社のWindows XP（登録商標、以下略）がインストールされ、ＷｅｂブラウザとしてMicrosoft Internet Explorer（登録商標、以下略）Version 6.0（以下「IE6」という）がインストールされる。
【００２０】
図１において、１はドライバ自動インストールアプリケーション部であり、クライアントＰＣ８５１のＯＳ上で動作するソフトウェアである。このドライバ自動インストールアプリケーション部１は、ドライバ自動ダウンロード・設定モジュール部１００、ＳＯＡＰ（Simple Object Access Protocol）リクエスト発行処理部４、ＳＯＡＰレスポンス解析処理部５、コンフィギュレータモジュール部７、メモリコントローラ部８、ＧＵＩモジュール部（ＧＵＩ）６を備える。
【００２１】
また、クライアントＰＣ８５１は、通信機能としてのＴＣＰ／ＵＤＰ／ＩＰプロトコルスタック部２と、このＴＣＰ／ＵＤＰ／ＩＰプロトコルスタック部２とドライバ自動インストールアプリケーション部１との間に設けられる、ＨＴＴＰ１．１に準ずるＨＴＴＰ（Hyper Text Transfer Protocol）部３とを備える。
【００２２】
ＧＵＩモジュール部６は、ユーザとの間でインタラクティブに要求の受付処理を行い、その処理結果の表示処理を実行する。コンフィギュレータモジュール部７は、ネットワーク８５６を介してプリンタ８５５より取得したドライバを、プリンタ８５５より取得したネットワーク情報とともに、クライアントＰＣ８５１が保持する記憶装置（図２のＨＤＤ１２０２）にイントールする処理を実行するとともに、このインストールしたドライバ情報をＯＳに対して登録する。尚、このイントールの実行の際には、メモリコントローラ部８を介して、ＨＤＤ１２０２におけるメモリスペースの有無の調査、及びイントール先の管理制御を実行する。
【００２３】
プリンタ８５５は、ＵＰｎＰ（Universal Plug and Play）に対応したネットワーク対応型プリンタであり、このプリンタ８５５を制御するＯＳとしてＬｉｎｕｘＯＳが搭載される。このプリンタ８５５は、通信機能としてＴＣＰ／ＵＤＰ／ＩＰプロトコルスタック部９を備え、このＴＣＰ／ＵＤＰ／ＩＰプロトコルスタック部９には、ＨＴＴＰ１．１に準ずるＨＴＴＰ（Hyper Text Transfer Protocol）部１０と、ＳＯＡＰ（Simple Object Access Protocol）リクエスト解析処理部１１と、レスポンスの発行を実行するためのＳＯＡＰレスポンス発行処理部１２とが設けられる。
【００２４】
また、ＴＣＰ／ＵＤＰ／ＩＰプロトコルスタック部９には、プリントプロトコルモジュール部１３が実装され、このプリントプロトコルモジュール部１３は、クライアントＰＣ８５１から発行されるプリンタ要求を解析し、プリントコントローラ部１４に対して、その要求を送出する機能を備えている。メモリコントローラ部１５は、ドライバを格納する場所を示すディレクトリ情報の管理や、データサイズ情報の管理の機能を備えるとともに、クライアントＰＣへのドライバ送信時には、プリンタ８５５の記憶部から読み出したドライバをＨＴＴＰ部１０に対して送出する処理を実行する機能を備える。
【００２５】
ＵＰｎＰ（Universal Plug and Play）デバイス制御部６０は、ＳＯＡＰリクエスト解析処理部１１とＳＯＡＰレスポンス発行処理部１２とを含んでいる。このＵＰｎＰデバイス制御部６０については詳しく後述する。
【００２６】
８５７はクライアントＰＣで、クライアントＰＣ８５１と同様に、図２を参照して後述するようなハードウェアで構成されるが、クライアントＰＣ８５７には、ＯＳとして米国アップルコンピュータ社のＭａｃＯＳ（登録商標）がインストールされ、ＷｅｂブラウザとしてInternet Explorer5 Macintosh Edition（以下「IE5」という）がインストールされている。Ｗｅｂサーバ８５８は、ホームページ（後述するプレゼンテーションページ、印刷設定ＵＩのプレゼンテーションページ、ステータスモニタＵＩのプレゼンテーションページ等）を公開提供する機能を備える。
【００２７】
図２は、クライアントＰＣ８５１，８５７及びＷｅｂサーバ８５８のハードウェア構成例を示すブロック図である。ここではクライアントＰＣ８５１を例にして説明する。
【００２８】
クライアントＰＣ８５１は、ランダムアクセスメモリ部（ＲＡＭ１２０１）、記憶部であるハードディスクドライブ部（ＨＤＤ１２０２）、入力部であるキーボードやポインティングデバイス（ＫＢＤ１２０３）、制御部であるＣＰＵ１２０４、表示部の一例である表示用ディスプレイ（ＬＣＤ１２０５）、通信制御部の一例であるネットワークボード（ＮＢ１２０７）、そしてこれらを互いに接続するバス１２０６を備えている。尚、記憶部としては、可搬性ＣＤ−ＲＯＭ又は内部据付のＲＯＭ等を含んでいても良い。
【００２９】
ここで、図１に示すクライアントＰＣ８５１の各モジュール（１〜８）は、ＨＤＤ１２０２に記憶されており、必要に応じてＲＡＭ１２０１に読み出されてＣＰＵ１２０４の制御の下に実行される。これによりＣＰＵ１２０４が、図１に示す各モジュールの機能を実現する。
【００３０】
尚、図１に示すプリンタ８５５も、印刷処理を行うプリントコントローラ部１４を除いて、図２に示すハードウェア構成と同じ構成を採用しても良い。その場合、図１に示すプリンタ８５５の各モジュール（９〜１３及び１５）はＨＤＤ１２０２に記憶され、必要に応じてＲＡＭ１２０１に読み出されてＣＰＵ１２０４により実行される。この場合、前述したプリンタ８５５の記憶部は、ＨＤＤ１２０２に相当していることになる。
【００３１】
尚、クライアントＰＣ８５１のメモリコントローラ部８及びプリンタ８５５のメモリコントローラ部１５は、基本的には独立なハードウェアで構成されることが多い。
【００３２】
図３は、本発明の実施の形態に係る周辺装置制御システムの第２の構成部分を示すブロック図である。
【００３３】
この第２の構成部分においては、クライアントＰＣ８５１，８５７、ネットワーク対応プリンタ８５２、代理サーバ（Proxy Sever）８５３が、ネットワーク８５６を介して通信可能に接続される。これらクライアントＰＣ８５１，８５７、ネットワーク８５６は、図１を参照して前述したクライアントＰＣ８５１，８５７、ネットワーク８５６と同一のものである。
【００３４】
代理サーバ８５３は代理応答装置であり、この代理サーバ８５３も、図２に示すハードウェア構成と同じ構成を採り、このハードウェア構成によって、ＳＯＡＰレスポンス発行処理部８１５、ＳＯＡＰリクエスト解析処理部８１６、ＳＮＭＰ（Simple Network Management Protocol）処理部８１７、ＨＴＴＰ（Hyper Text Transfer Protocol）部８１４、ＴＣＰ／ＵＤＰ／ＩＰプロトコルスタック部８１３、ＵＳＢプロトコルスタック部８１９の各モジュールの機能が実現される。ＵＳＢプロトコルスタック部８１９は、ＵＳＢホストコントローラ等から構成され、ＵＳＢ（双方向通信が可能なインターフェース）を制御する。
【００３５】
またプリンタ８５２も、図２に示すハードウェア構成と同じ構成を採り、ＴＣＰ／ＵＤＰ／ＩＰプロトコルスタック部８０９、ＳＮＭＰ（Simple Network Management Protocol）処理部８１０、プリントプロトコルモジュール部８１１、プリントコントローラ部８１２の各モジュールが、実行時にＨＤＤ１２０２からＲＡＭ１２０１に読み出されてＣＰＵ１２０４により実行される。尚、プリントコントローラ部８１２は、プリンタ８５２とは別のＣＰＵによって実行されるようにしてもよい。
【００３６】
ここでプリンタ８５２は、図１に示すプリンタ８５５とは異なり、プリンタ８５５のＵＰｎＰデバイス制御部６０のような機能を備えていない。
【００３７】
代理サーバ８５３において、８１８はＵＰｎＰデバイス制御部である。このＵＰｎＰデバイス制御部８１８は、プリンタ８５５のＵＰｎＰデバイス制御部６０（図１）と同様な機能を備えている。そして更に、ＵＰｎＰ未対応であるサポート対象プリンタ（プリンタ８５２）をネットワーク８５６上に発見した場合に、このプリンタ８５２を、見かけ上ＵＰｎＰ対応プリンタとして扱うことができるプロキシサーバ機能も備えている。このＵＰｎＰデバイス制御部８１８については後で詳述する。また、プリンタ８５２におけるＵＰｎＰ対応についても、後に詳述する。また、プリンタドライバ５０については、図１４を参照して詳しく後述する。８２４は印刷ジョブ制御部であり、クライアントＰＣ８５１，８５７から送られてくる印刷設定情報と印刷対象ファイルを、ＵＰｎＰデバイス制御部８１８を介して受け取り、これらを基に印刷ジョブを生成する。詳細は図１２及び図２４を参照して後述する。
【００３８】
図４は、本実施の形態に係る周辺装置制御システムにおける第３の構成部分を示すブロック図である。
【００３９】
この第３の構成部分においては、クライアントＰＣ８５１，８５７、代理サーバ８５３、ＵＳＢを利用したローカル接続のプリンタ８５４が、ネットワーク８５６を介して通信可能に接続される。クライアントＰＣ８５１，８５７、ネットワーク８５６は、図１を参照して前述したクライアントＰＣ８５１，８５７、ネットワーク８５６と同一のものであり、代理サーバ８５３は、図３を参照して前述した代理サーバ８５３と同一のものである。尚、図４では、ＵＳＢプロトコルスタック部８１９のみを図示し、図３に示す他の構成部分の図示を省略している。
【００４０】
また図４においても、プリンタ８５４は図２に示すハードウェア構成と同じ構成を採り、ＵＳＢを制御するＵＳＢプロトコルスタック部８２０、ＳＮＭＰ（Simple Network Management Protocol）処理部８２３、プリントプロトコルモジュール部８２１、プリントコントローラ部８２２の各モジュールは、実行時にＨＤＤ１２０２からＲＡＭ１２０１に読み出され、ＣＰＵ１２０４の制御の下に実行される。尚、プリントコントローラ部８２２は、プリンタ８５４とは別のＣＰＵによって実行されるようにしてもよい。
【００４１】
このプリンタ８５４は、図１に示すプリンタ８５５と異なり、プリンタ８５５のＵＰｎＰデバイス制御部６０のような機能を備えていない。しかし、代理サーバ８５３のＵＰｎＰデバイス制御部８１８（図３）のプロキシサーバ機能により、代理サーバ８５３がＵＰｎＰ未対応であるサポート対象プリンタ（プリンタ８５４）をローカルポート（ＵＳＢポート）上に発見した場合、このプリンタ８５４を、見かけ上ＵＰｎＰ対応プリンタとして扱うことができる。尚、このプリンタ８５４におけるＵＰｎＰ対応については後に詳述する。
【００４２】
ここで以下の説明においては、代理サーバ８５３のコンピュータ名を「PC＿ABE」とする。また、プリンタ８５４については、製造者名を「ABC」、機種名を「PrintMdl-M」、製造番号を「000888」として説明する。そして、プリンタ８５４が代理サーバ８５３にＵＳＢで接続されていて、代理サーバ８５３にプリンタ８５４用のドライバがインストールされていて、代理サーバ８５３を介してプリンタ８５４で正常に印刷できるものとする。更にプリンタ８５４は、代理サーバ８５３を介してネットワーク８５６上の共有プリンタとしてクライアントＰＣ８５１，８５７から参照可能な環境が整っているものとする。この代理サーバ８５３においてドライバがインストールされているプリンタ８５４のプリンタ（表示）名と、共有プリンタとして参照されるプリンタ８５４のプリンタ（表示）名とは同一であり、その名称は「ABC PrintMd1-M」であるとする。
【００４３】
図５は、本実施の形態において、Windows XPをＯＳとして搭載したクライアントＰＣ８５１において実行されるＵＰｎＰ対応デバイス検出処理の手順を示すフローチャートである。このフローチャートには、クライアントＰＣ８５１からの要求に対する各プリンタによる応答処理も含まれる。尚、この処理を実行するプログラムはＨＤＤ１２０２に記憶されており、実行時にＲＡＭ１２０１にロードされ、ＣＰＵ１２０４の制御の下に実行される。
【００４４】
図５において、ステップＳ５０１でクライアントＰＣ８５１が起動されるとステップＳ５０２に進み、ＵＰｎＰサービスが開始される。そしてステップＳ５０３で、ＵＰｎＰルートデバイスを検索する要求であるＳＳＤＰ（Simple Service Discovery Protocol）リクエスト（ＨＴＴＰリクエストの一形態）がネットワーク８５６を介してクライアントＰＣ８５１から周辺装置（プリンタ）に発行される。
【００４５】
ステップＳ５０４では、ステップＳ５０３で発行したＳＳＤＰリクエストに対してデバイス（周辺装置）からＳＳＤＰレスポンスが有るかどうかを調べ、レスポンスがあればステップＳ５０５に進み、そのＳＳＤＰレスポンスのあったデバイスを検出し、そのデバイスのアイコンをMy Network Placesフォルダ上に表示する。そしてステップＳ５０８で、所定時間（例えば１分）待機した後、ステップＳ５０３の処理に戻る。
【００４６】
一方、ステップＳ５０４で、ステップＳ５０３のＳＳＤＰリクエストに対してデバイスからＳＳＤＰレスポンスが無いと判別されるとステップＳ５０６に進み、My Network Placesフォルダ上に、レスポンスの無いデバイスのアイコンが表示されているか否かを判別する。ここでレスポンスの無いデバイスのアイコンが表示されている場合はステップＳ５０７で、その表示されているアイコンを削除してステップＳ５０８へ進む。また、ステップＳ５０６で、レスポンスの無いデバイスのアイコンが表示されていないと判別された場合はステップＳ５０８へ進む。
【００４７】
次に、図１に示すプリンタ８５５、図３に示すプリンタ８５２及び代理サーバ８５３、並びに図４に示すプリンタ８５４及び代理サーバ８５３が、それぞれ起動している状態で（Ｓ５０９）の処理について説明する。
【００４８】
ステップＳ５１０で、前述のクライアントＰＣ８５１がステップＳ５０３で発行したＳＳＤＰリクエストを受信するとステップＳ５１１に進み、プリンタ８５５、代理サーバ８５３はそれぞれ、そのＳＳＤＰリクエストが、自分がサポートしているリクエスト（ＵＰｎＰルートデバイスを検索するＳＳＤＰリクエスト）と一致するか否かを判断する。その結果、一致すると判断するとステップＳ５１２に進み、ＳＳＤＰレスポンスをクライアントＰＣ８５１へ発行し、再びステップＳ５１０のＳＳＤＰリクエストの受信待ち状態に戻る。一方、ステップＳ５１１で、ＳＳＤＰリクエストが自分がサポートしているリクエストと一致しないと判断するとステップＳ５１０へ戻る。
【００４９】
これにより、ＵＰｎＰ対応デバイスがこのネットワーク８５６（印刷システム）に存在する場合には、クライアントＰＣ８５１のMy Network Placesフォルダ上に、そのデバイスのアイコンが表示され、これによって、そのデバイスをクライアントＰＣ８５１から制御できるようになる。
【００５０】
図６は、クライアントＰＣ８５１の表示部１２０５に表示されたMy Network Placesフォルダの一例を示す図である。
【００５１】
図６は、図５のステップＳ５０５で、代理サーバ８５３を介してプリンタ８５４（図４）が認識された場合に、そのアイコン６００が表示されている状態を示している。図中、「ABC PrintMdl-K 000888」６０１は、そのアイコン６００に対応するデバイス（プリンタ８５４）の名称であり、その名称６０１を有するプリンタ８５４が使用可能な状態でスタンバイ中であることを示している。この名称６０１において、前述したように「ABC」は製造者名、「PrintMdl-K」は機種名、「000888」は、このプリンタ８５４に固有の製造番号を示している。
【００５２】
このように、そのプリンタ８５４の製造者名、機種名、製造番号を利用してデバイス表示名６０１を表示することにより、例えば、同一ネットワーク上に製造番号だけが異なる同一機種の周辺装置が複数存在するような場合においても、その表示されたデバイス名からそれぞれのデバイスを特定できる。これにより、ユーザが意図していないデバイスに誤ってアクセスしてしまうといった誤操作を防止することができる。
【００５３】
図７は、図５のステップＳ５０３において、クライアントＰＣ８５１からネットワーク８５６に発行されるＨＴＴＰリクエストの一例を示す図で、ＵＰｎＰルートデバイスを検索するためのＳＳＤＰリクエストの一例を示している。同図の左端の番号は行番号を表している。このＳＳＤＰリクエストの内容に関しては、UPnP Forumによって標準化されているUniversal Plug and Play Device Architecture V 1.0の規格に記載されているので、ここでは本発明に関連する部分のみ説明し、それ以外の部分に関する説明は省略する。
【００５４】
図において、３行目はＳＴ（Search Target）であり、ＵＰｎＰルートデバイスを表す「upnp:rootdevice」が指定されている。４行目はＭＡＮとして「ssdp:discover」が指定されている。この例では、Universal Plug and Play Architecture V 1.0にて規定されるSimple Service Discovery Protocol（ＳＳＤＰ）を使用する。
【００５５】
図７に示す例によれば、クライアントＰＣ８５１は、マルチキャストアドレス「２３９．２５５．２５５．２５０」、ポート番号「１９００」に対して、図７に示すフォーマットのＨＴＴＰパケットを発行する。尚、ＨＴＴＰリクエストによる探索要求は、ＵＰｎＰの探索要求に限るものではない。
【００５６】
図８は、図５のステップＳ５１２で代理サーバ８５３からクライアントＰＣ８５１に返信されるＨＴＴＰレスポンス（ＳＳＤＰレスポンス）の一例を示す図である。同図の左端の番号は行番号を表す。このＳＳＤＰレスポンスの内容に関しては、UPnP Forumで標準化されているUniversal Plug and Play Device Architecture V 1.0の規格に記載されているので、ここでは本発明に関連する部分のみ説明し、それ以外の部分に関する説明は省略する。
【００５７】
図８において、４行目で、代理サーバ８５３がサポートしているＵＰｎＰデバイスのXML Device Descriptionが存在するＵＲＬが指定されている。このXML Device Descriptionについては、図９を参照して後述する。
【００５８】
６行目はＮＴ（Notification Type）を示し、この例では、デバイスのDeviceTypeがUPnP Forumで標準化されている「Printer:1」であることを表している。
【００５９】
７行目はＮＴＳ（Notification Sub Type）を示し、この例では、デバイスが使用可能な状態であることを表す「ssdp:alive」が指定されている。
【００６０】
９行目はＵＳＮ（Unique Service Name）を示し、この例では、デバイスのUniversally Unique Identifier（ＵＵＩＤ）が記されている。
【００６１】
図８に示す例によれば、Universal Plug and Play Architecture V 1.0にて規定されるSimple Service Discovery Protocol（ＳＳＤＰ）を使用しているので、プリンタ８５５、代理サーバ８５３はマルチキャストアドレス「２３９．２５５．２５５．２５０」、ポート番号「１９００」に対して、図８に示すフォーマットのＨＴＴＰパケットを発行する。尚、ＨＴＴＰレスポンスによる応答はＵＰｎＰの応答に限るものではない。
【００６２】
図９は、代理サーバ８５３がサポートしているＵＰｎＰデバイスのXML Device Descriptionの記述内容の基本的な一例を示す図である。同図の左端の番号は行番号を表す。この記述内容に関しては、UPnP Forumで標準化されているUniversal Plug and Play Device Architecture V 1.0の規格に記載されているので、ここでは本発明に関連する部分のみ説明し、それ以外の部分に関する説明は省略する。
【００６３】
図９において、２行〜３０行はroot要素を表し、代理サーバ８５３がUPnP Forumで標準化されているデバイスに準拠していることが記述されている。
【００６４】
７行〜２９行はdevice要素を表す。
【００６５】
８行目はdeviceType要素を示し、代理サーバ８５３がUPnP Forumで標準化されているPrinter Device V 1.0のデバイスであることが記述されている。
【００６６】
９行目はfriendlyName要素を示し、この内容が、図６に示すMy Network Placesフォルダに表示されるＵＰｎＰ対応デバイスのアイコンにおけるデバイス名として使用される。この要素を、後述する製造者名（ABC）、機種名（PrintMdl-K）、製造番号（000888）から構成することで、例えば、同一ネットワーク上に製造番号だけが異なる同一機種の周辺装置が複数存在するような場合においても、表示名からそれぞれのデバイスを特定でき、ユーザが意図していないデバイスに誤ってアクセスしてしまうような誤操作を防止することができる。
【００６７】
１０行目はmanufacturer要素を示し、製造業者名（ここでは「ABC」）が記述される。
【００６８】
１１行目はmanufacturerURL要素を示し、製造業者のＷｅｂサイトのホームページのＵＲＬ（ここでは「http://abc.jp」）が記述される。
【００６９】
１２行目はmodelDescription要素を示し、エンドユーザ用の識別名（ここでは「ABC PrinrMd1-K」）が記述される。
【００７０】
１３行目はmodelName要素を示し、機種名（ここでは「PrintMd1-K」）が記述される。
【００７１】
１４行目はserialNumber要素を示し、製造番号（ここでは「000888」）が記述される。
【００７２】
１５行目はＵＤＮ要素であり、Unique Device Name（ここでは「PrintMd1-K000888」）が記述される。
【００７３】
１６行〜２６行はserviceList要素を表す。
【００７４】
１７行〜２５行はservice要素を示し、このデバイス、即ち、代理サーバ８５３がサポートしているＵＰｎＰのサービスが記述される。
【００７５】
１８行目はserviceType要素を示し、代理サーバ８５３がUPnP Forumで標準化されているPrinter Basic Service V 1.0のサービスをサポートしていることが記述されている。
【００７６】
１９行目はserviceId要素を示し、このサービスのＩＤが記述される。
【００７７】
２０行目はＳＣＰＤＵＲＬ要素を示し、Service DescriptionのためのＵＲＬ、即ち、Service Control Protocol Definition URLが記述される。
【００７８】
２１行〜２２行はcontrolURL要素を示し、デバイスを制御するためのＵＲＬが記述される。
【００７９】
２３行〜２４行はeventSubURL要素を示し、イベントのためのＵＲＬが記述される。
【００８０】
２７行〜２８行はpresentationURL要素を示し、デバイスを公開するためのプレゼンテーションページのＵＲＬが記述される。
【００８１】
図１０は、代理サーバ８５３が公開しているプレゼンテーションページをクライアントＰＣ８５１上で表示した場合の画面表示例を示す図である。
【００８２】
クライアントＰＣ８５１において、図６に示す、ＵＰｎＰ対応デバイスである代理サーバ８５３のアイコン６００「ABC PrintMdl-K 000888」をダブルクリックして起動すると、図９の２７行〜２８行のpresentationURL要素で指定されているＵＲＬを引数としてＷｅｂブラウザ（IE6）が起動して、図１０に示すようなプレゼンテーションページが表示される。このプレゼンテーションページは、Active Server Pages（以下「ＡＳＰ」という）で構成されており、動的に作成されたＨＴＭＬ（Hypertext Makeup Language）を見せることができるので、代理サーバ８５３を介してプリンタ８５４の状態等をリアルタイムに反映して表示することが可能である。また、Java（登録商標、以下略）Scriptを用いて、一定時間（例えば５秒間）毎にページの内容が自動的に更新されるようになっているので、前記ＡＳＰの機能と合わせて、約５秒のインターバルでリアルタイムに表示内容が更新される。
【００８３】
図１０において、２１６はアドレス表示部で、このプレゼンテーションページのＵＲＬが表示される。２００はプリンタ名表示部（Printer:）であり、代理サーバ８５３を介したプリンタ８５４の図６で示すようなＵＰｎＰ対応デバイス名であるプリンタ名（ここでは「ABC PrintMd1-K000888」）が表示される。２０１は機種名表示部（Model:）であり、代理サーバ８５３を介したプリンタ８５４の機種名（ここでは「PrintMd1-K」）が表示される。２０２はＩＰアドレス表示部（IP Address:）であり、代理サーバ８５３のＩＰアドレス（ここでは「192.168.0.100」）が表示される。２０３はプリンタの状態表示部であり、プリンタの動作状態が表示される。図１０の例ではオンラインを示す「ON LINE」を表している。
【００８４】
２０４は、ファイル名表示部２０５及び参照ボタン（Browse...）２０６から構成されるファイル選択部（Print File:）であり、参照ボタン２０６をクリックすることによって印刷対象のファイルを選択すると、そのファイル名がファイル名表示部２０５に表示される。
【００８５】
２０７は部数指定部（Copies:）であり、印刷部数を１〜１００部の範囲で指定できる。
【００８６】
２０８は用紙の種類選択部（Media Type:）であり、用紙の種類を「Plain Paper（普通紙）」、「Photo Paper（写真専用紙）」、「OHP Sheet（ＯＨＰシート」の中から選択することができる。
【００８７】
２０９は用紙サイズ選択部（Paper Size:）であり、用紙サイズをＡ４，Letter（レターサイズ）、ABC_CUSTOM1（ABC社専用紙１）、ABC_CUSTOM2（ABC社専用紙２）の中から選択することができる。
【００８８】
２１０は印刷レイアウト選択部（Layout:）であり、印刷レイアウトを1-up（一枚の用紙に一画像印刷），2-up（一枚の用紙に二画像印刷），4-up（一枚の用紙に四画像印刷）の中から選択することができる。
【００８９】
２１１は印刷品位選択部（Print Quality:）であり、印刷品位を「High（高品位）」、「Standard（標準）」、「Draft（下書き）」の中から選択することができる。
【００９０】
２１２は印刷の向き選択部（Orientation:）であり、印刷の向きを「Portrait（縦）」、「Landscape（横）」から選択することができる。
【００９１】
２１３は印刷ボタン（Print）であり、このボタンをクリックすると、プリンタ８５４による印刷が開始される。
【００９２】
２１４はインク残量表示部であり、プリンタ８５４に装着されているインクカートリッジのインク残量が表示される。
【００９３】
２１５は操作ガイド部であり、ユーザ操作の補助として、操作ガイドが表示される。
【００９４】
図１１は、図１０に示すプレゼンテーションページを用いて印刷を行う時にクライアントＰＣ８５１又はクライアントＰＣ８５７で実行される印刷処理の手順を示すフローチャートである。但し、以下の説明では、図１０に示すプレゼンテーションページを用いてクライアントＰＣ８５１で実行される印刷処理の手順を例にして説明する。
【００９５】
この処理は、図１０に示す印刷ボタン２１３がクリックされることにより開始され（Ｓ１１０１）、まずステップＳ１１０２で、図１０に示す印刷設定部２０７〜２１２のそれぞれに設定された印刷設定情報を代理サーバ８５３へ送信する。その後ステップＳ１１０３で、代理サーバ８５３からクライアントＰＣ８５１に返されるJobIDとDataSinkを受信する。次にステップＳ１１０４で、ファイル選択部２０４で選択された印刷対象ファイルを、ステップＳ１１０３で受信したDataSinkで指定されたＵＲＩ（Uniform Resource Identifiers）に対して送信すべく代理サーバ８５３に送信する。これによって、クライアントＰＣ８５１における印刷処理が完了する（Ｓ１１０５）。
【００９６】
ステップＳ１１０２で代理サーバ８５３へ送信された印刷設定情報は、クライアントＰＣ８５１の情報とともに、互いに関連付けられて代理サーバ８５３内に保存される。この保存されたクライアントＰＣ８５１の情報と印刷設定情報は、次回、再びクライアントＰＣ８５１からこのプレゼンテーションページにアクセスされた時の初期設定値として利用される。これにより、次回アクセス時に、ユーザがよく使用するお気に入りの印刷設定が初期設定値としてプレゼンテーションページに最初に表示されることになる。これにより、ユーザにとって操作性が向上する。尚、クライアントＰＣ８５１と代理サーバ８５３との間で実際に送受信されるデータの詳細に関しては、図１７及び図１８を参照して詳しく後述する。
【００９７】
図１２は、一般的な代理サーバ８５３の印刷ジョブ制御部８２４の機能構成を表すブロック図である。
【００９８】
図において、７０はＵＰｎＰ制御部で、図１１のステップＳ１１０２でクライアントＰＣ８５１から送られてきた印刷設定情報と、ステップＳ１１０４で、クライアントＰＣ８５１から送られてきた印刷対象ファイルをＵＰｎＰデバイス制御部８１８（図３）から受け取る。７１はＤＥＶＭＯＤＥ制御部で、Windows XP OSにおける印刷設定を保持するＤＥＶＭＯＤＥ構造体のメンバーの値を参照したり、ＤＥＶＭＯＤＥ構造体のメンバーへ値をセットしたりというような制御を行う。ＤＥＶＭＯＤＥ構造体は、印刷設定の各設定を保持するメンバー等から構成され、このメンバーにセットする値のほとんどは数値（整数）で表される定数で定義されている。７２は文字列・数値変換テーブルで、ＤＥＶＭＯＤＥ制御部７１が、その印刷設定情報に含まれている各印刷設定の文字列を、それぞれが該当するＤＥＶＭＯＤＥ構造体の各メンバーへの設定値である数値に変換してＤＥＶＭＯＤＥ構造体の各メンバーへセットする際に、ＤＥＶＭＯＤＥ制御部７１から参照される。７３は印刷ジョブ生成部であり、印刷設定情報を基にＤＥＶＭＯＤＥ制御部７１によりセットされたＤＥＶＭＯＤＥ構造体と印刷対象ファイルとからプリンタ８５４用の印刷ジョブを生成する。この印刷ジョブは、プリンタドライバ５０（図３）を介してプリンタ８５４で印刷される。尚ここで、文字列・数値変換テーブル７２を用意せず、ＤＥＶＭＯＤＥ制御部７１内で文字列を一つ一つ比較しながらその文字列に該当する数値を特定して処理していくことも可能である。しかしながら、文字列・数値変換テーブル７２を用意する場合と比べて処理が複雑になりバグの原因にもなるため、このような文字列・数値変換テーブル７２を用意する実装方法が一般的である。
【００９９】
図１３は、図１０に示すプレゼンテーションページを用いてクライアントＰＣ８５１で印刷が指示された場合に、代理サーバ８５３で実行されるプリンタ８５４の状態検出処理の手順と、クライアントＰＣ８５１又はクライアントＰＣ８５７で実行される代理サーバ８５３を介したプリンタ８５４の状態表示処理の手順とを示すフローチャートである。但し、以下の説明では、図１０に示すプレゼンテーションページを用いてクライアントＰＣ８５１で実行される代理サーバ８５３を介したプリンタ８５４の状態表示処理の手順を例にして説明する。尚、代理サーバ８５３を介したプリンタ８５４の状態表示は、図１０に示すプレゼンテーションページおけるプリンタ名表示部２００、機種名表示部２０１、ＩＰアドレス表示部２０２、プリンタの状態表示部２０３、インク残量表示部２１４における状態表示を指す。
【０１００】
図１３において、まずステップＳ１３０１で、代理サーバ８５３におけるプリンタ８５４の状態検出処理が起動すると、ステップＳ１３０２で、代理サーバ８５３は、プリンタ８５４の動作状況を表すステータスを確認し、ステップＳ１３０３で、前回の確認結果と比較してステータスに変化が有る否かを判断する。その結果、ステータスに変化があればステップＳ１３０４に進んで最新のステータスを保存し、代理サーバ８５３に用意されているプレゼンテーションページのＡＳＰの情報を更新する（ステップＳ１３０５）。そしてステップＳ１３０６で、所定時間（例えば５秒間）待機した後ステップＳ１３０２へ戻る。一方、ステップＳ１３０３でステータスに変化が無いと判断した場合はステップＳ１３０６へ進む。
【０１０１】
次に、この代理サーバ８５３に処理に対応するクライアントＰＣ８５１における処理について説明する。
【０１０２】
ステップＳ１３０６で、図１０に示すプレゼンテーションページに関する処理が開始されると、ステップＳ１３０８で、JavaScriptで記述されている所定時間（例えば５秒間）が経過したかどうかを判断し、所定時間が経過するとステップＳ１３０９に進み、代理サーバ８５３からのＡＳＰの更新情報を受信し、クライアントＰＣ８５１のＷｅｂブラウザ上における図１０のプレゼンテーションページの表示内容を同様に更新してステップＳ１３０８へ戻る。
【０１０３】
このようにして、簡単な構成のプレゼンテーションページを１つ用意するだけで、代理サーバ８５３を介してプリンタ８５４の状態を、クライアントＰＣ８５１又はクライアントＰＣ８５７の表示部に表示するプレゼンテーションページ（図１０）にリアルタイムで反映することができる。これによって、プレゼンテーションページの開発工数を削減でき、しかも、ユーザにとって操作性が向上する。
【０１０４】
図１４は、代理サーバ８５３におけるプリンタドライバ５０の構成を主に示すブロック図である。
【０１０５】
図において、プリンタドライバ５０は、代理サーバ８５３にインストールされているドライバであり、３２〜３９で示す複数のモジュールを備えている。アプリケーション３０は印刷指令可能なアプリケーションソフトウェアであり、例えば、Windows XP OS に標準で同梱されているテキストエディタであるNotepad（Notepad.exe）等に相当する。３１はＧＤＩ（Graphics Device Interface）であり、Windows XP OSの一部である。
【０１０６】
次にプリンタドライバ５０の構成を説明する。
【０１０７】
３２はプリンタキューで、Windows XP OSのSpoolerの一部であり、印刷ジョブをキューイングする。３３はプリントプロセッサであり、印刷レイアウトの変更や印刷画像の特殊処理を行う。３４はグラフィックスドライバで、プリンタドライバ５０の画像処理のコアとして動作し、ＧＤＩ３１から送られて来る描画命令に基づき印刷用の画像処理を行い、印刷制御コマンドを作成する。３５はＵＩモジュールで、プリンタドライバ５０のユーザインターフェースの提供及び制御を行う。３６はランゲージモニタで、データの通信Ｉ／Ｆとしてデータの送受信を制御する。３７はポートモニタであり、ランゲージモニタ３６から送られてくるデータを適切なポートに対して送信したり、プリンタ８５４から送られてくるデータを、クラスドライバ３８を介して受信したりする。クラスドライバ３８は、最もポートに近いローレベルのモジュールであり、ポートを制御する。図１４に示す例では、ＵＳＢ用のクラスドライバに相当し、代理サーバ８５３のＵＳＢポートを制御して、プリンタ８５４との間でのＵＳＢ通信を制御する。３９はステータスモニタで、プリンタ８５４の状態をモニタして表示する。
【０１０８】
図１４では、プリンタドライバ５０を搭載した代理サーバ８５３の場合で説明したが、同じWindows XP OSを搭載したクライアントＰＣ８５１においてプリンタドライバを利用した印刷処理においても同様な構成となる。また、図１４では、代理サーバ８５３にプリンタ８５４がＵＳＢで接続されているローカル印刷の例を説明したが、例えば、クライアントＰＣ８５１から代理サーバ８５３を介して共有されているプリンタ８５４で印刷するようなネットワーク印刷においても同様な構成となる。
【０１０９】
図１５は、印刷ジョブ生成部８２４の文字列・数値変換テーブル７２の内容例を表す図である。
【０１１０】
図において、文字列欄１５００には、UPnP Forumで標準化されているPrintBasic:1 Service Template Version 1.01で定義されているMediaSizeで取り扱われる文字列がセットされている。数値欄１５０１には、ＤＥＶＭＯＤＥ構造体の用紙サイズメンバーにセットする数値が格納されている。名称／サイズ欄１５０２には、用紙サイズの名称と、そのサイズが格納されている。数値欄１５０１の数値には、一般的な値として定義されているものに関しては「１」〜「２５５」の値で定義され、各製造業者（ベンダー）に固有の値として定義されているものは、「２５６」以上の数値を用いて定義される。実際の処理では文字列欄１５００と数値欄１５０１の値が使用され、名称／サイズ欄１５０２は実際の処理には使用されずに、参考情報として取り扱われるケースが一般的である。尚、PrintBasic:1に関する詳細な説明はここでは省略する。
【０１１１】
図１６は、図５のステップＳ５１２（ＳＳＤＰレスポンス発行）後に、ＵＰｎＰプロトコル上で代理サーバ８５３からクライアントＰＣ８５１に送られるＳＣＰＤ（Service Control Protocol Definition）の一部を表すＸＭＬのデータ例を示す図である。同図の左端の番号は行番号を表す。尚、このデータは、前述したPrintBasic:1 Service Template Version 1.01に準拠している。
【０１１２】
同図の１４行〜２４行に示す通り、プリンタ８５４で使用できる用紙サイズの情報が代理サーバ８５３からクライアントＰＣ８５１に送られる。但し、図１０で説明した通り、代理サーバ８５３が公開しているプレゼンテーションページ上の用紙サイズ選択部２０９では、ユーザが選択しやすいように表示上簡略化して、A4（１６００），Letter（１６０１），ABC_CUSTOM1（１６０２），ABC_CUSTOM2（１６０３）というように表示されるようにプレゼンテーションページを設計している。ここで、例えばＳＣＰＤで送られてくる文字列をそのまま使って、用紙サイズ選択部（PaperSize）２０９に「iso_a4_210x297mm」と表示してもよい。更に、他の製造業者（ベンダー）の用紙等であって、代理サーバ８５３を介したプリンタ８５４ではサポートされていないような用紙サイズ（例えば、XYZ_CUSTOM_8）の文字列がＳＣＰＤで送られてきた場合は、この文字列をそのまま使用して用紙サイズ選択部２０９に表示するのが一般的である。このように、図１６のＳＣＰＤのデータ内の各設定を表す文字列は、プレゼンテーションページ表示（図１０）における印刷設定の選択等に反映される。尚、図１６の８行〜１３行に示す通り、IEEE1288-2000で標準化されているDeviceIDが、代理サーバ８５３からクライアントＰＣ８５１に送られていることがわかる。
【０１１３】
図１７及び図１８は、図１１のステップＳ１１０２で、クライアントＰＣ８５１或は８５７から代理サーバ８５３に送られる印刷設定情報の内容例を表す図である。これらの図の左端の番号は行番号を表す。この印刷設定情報はＳＣＰＤで定義されているＸＭＬのデータであり、このデータは前述したPrintBasic:1 Service Template Version 1.01に準拠しているので、ここでは詳細説明は省略する。
【０１１４】
図１１のステップＳ１１０２で、このCreateJobのactionとして印刷設定情報がクライアントＰＣ８５１から代理サーバ８５３へ送信されると、ステップＳ１１０３で次に示すようなJobIDとDataSinkの情報がＣＳＶ（Comma Separated Value Lists）フォーマットのデータとして、クライアントＰＣ８５１から代理サーバ８５３へ返される。
【０１１５】
JobId,1,DataSink,http://192.168.0.100:3682/DataSink
その後、このDataSinkで指定されたＵＲＩ
http://192.168.0.100:3682/DataSink
に対して、図１０のファイル選択部２０４で選択された印刷対象ファイル（ここでは、test1.txt）がクライアントＰＣ８５１から代理サーバ８５３へＨＴＴＰ：ＰＯＳＴオペレーションにて送られる。
【０１１６】
図１９は、代理サーバ８５３の印刷ジョブ制御部８２４における印刷ジョブ生成処理を表すフローチャートである。
【０１１７】
図において、この処理は印刷ジョブ生成処理が起動されることにより開始され、ステップＳ１９０２で、図１１のステップＳ１１０２で、クライアントＰＣ８５１から送信された印刷設定情報を代理サーバ８５３のＵＰｎＰデータ制御部７０が受信するとステップＳ１９０３に進み、ＤＥＶＭＯＤＥ制御部７１は、文字列・数値変換テーブル７２を参照して各設定（ここでは用紙サイズ）の文字列を数値に変換する。次にステップＳ１９０４で、ＤＥＶＭＯＤＥ制御部７１は、その印刷設定情報内の各設定（文字列）から、ステップＳ１９０３の変換処理で得られた各設定の数値をＤＥＶＭＯＤＥ構造体の該当する設定を表すメンバーにセットする。そしてステップＳ１９０５に進み、図１１のステップＳ１１０４でクライアントＰＣ８５１から送られてきた、ファイル選択部２０４で選択された印刷対象ファイルを代理サーバ８５３のＵＰｎＰデータ制御部７０で受信する。これによりステップＳ１９０６で、印刷ジョブ生成部７３は、その印刷設定情報内の各設定が反映されたＤＥＶＭＯＤＥ構造体と印刷対象ファイルとから、プリンタ８５４用の印刷ジョブを生成する。こうして印刷ジョブ生成処理を終了する。
【０１１８】
こうして印刷ジョブ生成処理で生成された印刷ジョブは、プリンタドライバ５０を介してプリンタ８５４用の印刷制御コマンドに変換されてプリンタ８５４に送られる。これによりプリンタ８５４は、この印刷制御コマンドに従って印刷を行う。尚、この印刷ジョブがプリンタドライバ５０を介してプリンタ８５４に送られて印刷されるという一連の処理は一般的な公知の印刷処理フローであるので、ここではその詳細説明を省略する。
【０１１９】
ここで図１２に示す文字列・数値変換テーブル７２のようなテーブルを用意して、ステップＳ１９０３に示すような文字列から数値に変換する変換処理を行う場合には、印刷設定情報として、用紙サイズ、用紙の種類等における選択肢が増えれば増えるほど、膨大なテーブルのリソースが必要になったり、変換処理が複雑になったりする。
【０１２０】
これに対して本実施の形態では、以下に説明するように、ＵＰｎＰのサービスとして定義されているスキーマ上に、印刷設定情報の内の各設定を数値で取り扱えるような新しい仕組み（要素）を設けることで、この問題点を解決する。
【実施例】
【０１２１】
以下、本発明の実施例を詳しく説明する。尚、この実施例におけるシステム構成及びクライアント、サーバ、プリンタのハードウェア構成は、図１２に示す文字列・数値変換テーブル７２を除いている以外は前述の説明と略同様であるため、その説明を省略する。
【０１２２】
図２０は、本発明の実施例に係る代理サーバ８５３がサポートしているＵＰｎＰデバイスのXML Device Descriptionの記述内容の一例を示す図である。同図の左端の番号は行番号を表す。この記述内容に関しては、UPnP Forumで標準化されているUniversal Plug and Play Device Architecture V 1.0の規格に記載されているので、ここでは本発明に関連する部分のみ説明し、それ以外の部分に関する説明は省略する。
【０１２３】
図２０において、２行〜３０行はroot要素を表し、代理サーバ８５３がUPnP Forumで標準化されているデバイスに準拠していることが記述されている。
【０１２４】
７行〜２９行はdevice要素を表す。
【０１２５】
８行目はdeviceType要素を示し、代理サーバ８５３がUPnP Forumで標準化されているPrinter Device V 1.0のデバイスであることが記述されている。
【０１２６】
９行目はfriendlyName要素を示し、この内容が、図６に示すMy Network Placesフォルダに表示されるＵＰｎＰ対応デバイスのアイコ６００ンにおけるデバイス名６０１として使用される。この要素を、前述したように製造者名（ABC）、機種名（PrintMdl-K）、製造番号（000888）から構成することで、例えば、同一ネットワーク上に製造番号だけが異なる同一機種の周辺装置が複数存在するような場合においても、表示名からそれぞれのデバイスを特定でき、ユーザが意図していないデバイスに誤ってアクセスしてしまうような誤操作を防止することができる。
【０１２７】
１０行目はmanufacturer要素を示し、製造業者名（ここでは「ABC」）が記述される。
【０１２８】
１１行目はmanufacturerURL要素を示し、製造業者のＷｅｂサイトのホームページのＵＲＬ（ここでは「http://abc.jp」）が記述される。
【０１２９】
１２行目はmodelDescription要素を示し、エンドユーザ用の識別名（ここでは「ABC PrintMd1-K」）が記述される。
【０１３０】
１３行目はmodelName要素を示し、機種名（ここでは「PrintMd1-K」）が記述される。
【０１３１】
１４行目はserialNumber要素を示し、製造番号（ここでは「000888」）が記述される。
【０１３２】
１５行目はＵＤＮ要素であり、Unique Device Name（ここでは「PrintMd1-K000888」）が記述される。
【０１３３】
１６行〜２６行はserviceList要素を表す。
【０１３４】
１７行〜２５行はservice要素を示し、このデバイス、即ち、代理サーバ８５３がサポートしているＵＰｎＰのサービスが記述される。
【０１３５】
１８行目はserviceType要素を示し、代理サーバ８５３がUPnP Forumで標準化されているPrinter Basic Service V 1.0をベースに製造者（ここでは「ABC」）が独自に拡張したサービス（ここでは「urn:schemas-abc-jp.service:PrinterBasic3」）をサポートしていることが記述されている。後述するこの拡張部分が本実施の形態の特徴の１つである。
【０１３６】
１９行目はserviceId要素を示し、このサービスのＩＤ（ここでは「urn:schemas-abc-jp.serviceId3」）が記述される。
【０１３７】
２０行目はSCPDURL要素を示し、Service DescriptionのためのＵＲＬ、即ち、Service Control Protocol Definition URL（ここでは「http://192.168.0.100:3678/SCPD/BasicPrint_Printer3.PrintMd1-K000888.xml」）が記述される。
【０１３８】
２１行〜２２行はcontrolURL要素を示し、デバイスを制御するためのＵＲＬ（ここでは「http://192.168.0.100:1228/control.asp?uuid=Printer3:PrintMd1-K000888;serviceType=PrintBasic;serviceID=3」）が記述される。
【０１３９】
２３行〜２４行はeventSubURL要素を示し、イベントのためのＵＲＬ（ここでは「http://192.168.0.100:3680/subscribe.asp?uuid=Printer3:PrintMd1-K000888;serviceType=PrintBasic;serviceID=3」）が記述される。
【０１４０】
２７行〜２８行はpresentationURL要素を示し、デバイスを公開するためのプレゼンテーションページのＵＲＬ（ここでは「http://192.168.0.100/PrinterPresentation.asp?uuid=Printer:PrintMd1-K000888」）が記述される。尚、このプレゼンテーションページのＵＲＬに関しては図９のそれと同一である。
【０１４１】
従って、クライアントＰＣ８５１において、図６に示す、ＵＰｎＰ対応デバイスである代理サーバ８５３のアイコン６００「ABC PrintMdl-K 000888」をダブルクリックして起動すると、図２０の２７行〜２８行に記述されたpresentationURL要素で指定されているＵＲＬを引数としてＷｅｂブラウザ（IE6）が起動して、図１０に示すようなプレゼンテーションページが表示される。
【０１４２】
図２１は、本実施例に係る代理サーバ８５３に、本実施例に係る新規な機能を搭載した場合、図５のステップＳ５１２の後にＵＰｎＰプロトコル上で代理サーバ８５３からクライアントＰＣ８５１に送られるＳＣＰＤの一部を表すＸＭＬデータの一例を示す図である。同図の左端の番号は行番号を表す。
【０１４３】
このデータは前述したUPnP Forumで標準化されているPrinter Basic Service V 1.0をベースに製造者（ここでは「ABC」）が独自に拡張したサービスに準拠している。
【０１４４】
図２１の８行〜１３行の内容は前述の図１６と同一であり、IEEE1288-2000で標準化されているDeviceIDが代理サーバ８５３からクライアントＰＣ８５１に送られていることが分かる。図２１において、１４行〜３６行には、代理サーバ８５３を介してプリンタ８５４で使用可能な用紙サイズ（MediaSize）の情報が記述されている。１９行〜２２行は、Ａ４の用紙サイズの情報を表しており、Ａ４の用紙サイズが文字列「iso_a4_210x297mm」と数値「９」で定義されていることがわかる。
【０１４５】
２３行〜２６行はLetterの用紙サイズの情報を表しており、Letterの用紙サイズが文字列「na_letter_8.5x11in」と、数値「１」で定義されていることがわかる。
【０１４６】
よって、図２０の１８行目に記載されているサービスであるPrinterBasic3（UPnP Forumで標準化されているPrinter Basic Service V 1.0をベースに、製造者（ここでは「ABC」）が独自に拡張仕様（ここでは「urn:schemas-abc-jp.service:PrinterBasic3」））にて、各用紙サイズ毎に予め定義する。そして、代理サーバ８５３からクライアントＰＣ８５１に、プリンタ８５４がサポートしている用紙サイズとして、前記PrinterBasic3のスキーマで定義された用紙サイズを示す数値が図２１の１８行〜３５行のallowedValueListで返される。尚、数値がどの意味を表すかは、拡張仕様として予め製造者側で認識されており、ホストやプリンタは、その認識されている数値に応じて予め定められた仕様に基づき動作する。例えば、数値「９」をプリンタ又はホストが認識した場合、その数値は「ISOで定められたＡ４の横２１０×縦２９７ｍｍの用紙」であることを前提に動作するようにホスト又はプリンタが実装される。
【０１４７】
２７行〜３０行は、ABC_CUSTOM1の用紙サイズの情報を表しており、ABC_CUSTOM1の用紙サイズが文字列「ABC_custom1_100x200mm」と、数値「２５６」で定義されていることがわかる。
【０１４８】
３１行〜３４目はABC_CUSTOM2の用紙サイズの情報を表しており、ABC_CUSTOM2の用紙サイズが文字列「ABC_custom2_200x300mm」と、数値「２５７」で定義されていることがわかる。
【０１４９】
このように本実施例では、新たな機能として各用紙サイズ（MediaSize）毎に「id」という新しい要素（２１，２５，２９，３３行）をＳＣＰＤ内に追加し、この要素にその用紙サイズを表す数値をセットしておくという特徴を持たせている。
【０１５０】
図２２及び図２３は、本実施例に係る代理サーバ８５３において、図１１のステップＳ１１０２でクライアントから送らてくる印刷設定情報の内容を表す図である。これらの図の左端の番号は行番号を表す。この印刷設定情報はＳＣＰＤで定義されているＸＭＬのデータである。このデータは前述したUPnP Forumで標準化されているPrinter Basic Service V 1.0をベースに製造者（ＡＢＣ）が独自に拡張したサービスに準拠している。尚、図２２は、前述の図１７と同一の内容であるので、ここではその説明を省略する。
【０１５１】
図２３において、４６行〜５１行は、印刷時に指定された用紙サイズの情報を表す。図１８の４６行〜５０行と比較すると、図２３では５０行目の定義が追加されていることがわかる。このように本実施例では、新機能として各用紙サイズ毎に既定されている「relatedStateVariableId」という新規な要素をCreateJob内に追加し、この要素にその用紙サイズを表す数値をセットしている。それ以外の部分は図１８と同一なので、ここでは、その説明を省略する。
【０１５２】
この実施例において、図１０に示すプレゼンテーションページを用いて印刷を行う場合、クライアントＰＣ８５１又はクライアントＰＣ８５７で実行される印刷処理の手順を前述の図１１のフローチャートに従って説明する。
【０１５３】
ステップＳ１１０２で、このCreateJobのactionとして印刷設定情報がクライアントＰＣ８５１から代理サーバ８５３へ送信されると、ステップＳ１１０３で次に示すようなJobIDとDataSinkの情報がＣＳＶ（Comma Separated Value Lists）フォーマットのデータとして、クライアントＰＣ８５１から代理サーバ８５３へ返される。
【０１５４】
JobId,1,DataSink,http://192.168.0.100:3682/DataSink
その後、このDataSinkで指定されたＵＲＩ
http://192.168.0.100:3682/DataSink
に対して、図１０のファイル選択部２０４で選択された印刷対象ファイル（ここでは、test1.txt）がクライアントＰＣ８５１から代理サーバ８５３へＨＴＴＰ：ＰＯＳＴオペレーションにて送られる。
【０１５５】
図２４は、本実施例に係る代理サーバ８５３における印刷ジョブ制御部８２４の構成を示すブロック図である。同図の各ブロックはそれぞれ図１２の各ブロックと同一であるので、各ブロックの詳細説明は省略する。
【０１５６】
図において、斜線で表されている文字列・数値変換テーブル７２は、本実施例では不要となるので、膨大なテーブルのリソース分のソフトウェアリソースを削減することができる。
【０１５７】
図２５は、本実施例に係る代理サーバ８５３における印刷ジョブ制御部８２４における印刷ジョブ生成の処理を表すフローチャートである。
【０１５８】
この処理はクライアントＰＣから印刷要求を受信することにより開始され（ステップＳ２５０１）、印刷ジョブ生成処理を起動するとステップＳ２５０２で、図１１のステップＳ１１０２でクライアントＰＣ８５１から送信された印刷設定情報を代理サーバ８５３のＵＰｎＰデータ制御部７０が受信する。次にステップＳ２５０３で、ＤＥＶＭＯＤＥ制御部７１は、その印刷設定情報内の各設定が反映されるようにＤＥＶＭＯＤＥを更新する。そしてステップＳ２５０４に進み、図１１のステップＳ１１０４でクライアントＰＣ８５１から送信された、ファイル選択部２０４で選択された印刷対象ファイルを代理サーバ８５３のＵＰｎＰデータ制御部７０で受信する。次にステップＳ２５０５で、印刷ジョブ生成部７３は、その印刷設定情報の各設定が反映されたＤＥＶＭＯＤＥ構造体と印刷対象ファイルからプリンタ８５４用の印刷ジョブを生成し、ステップＳ２５０６で、この印刷ジョブ生成処理を終了する。
【０１５９】
こうして生成された印刷ジョブは、プリンタドライバ５０を介してプリンタ８５４用の印刷制御コマンドに変換されてプリンタ８５４に送信される。これにより、この印刷制御コマンドに従ってプリンタ８５４が印刷を行う。この印刷ジョブがプリンタドライバ５０を介してプリンタ８５４にて印刷されるという一連の処理は一般的な公知の印刷処理フローであるので、ここではその詳細説明を省略する。
【０１６０】
図２６は、図２５のステップＳ２５０３におけるＤＥＶＭＯＤＥの更新の処理を表すフローチャートである。
【０１６１】
図において、ＤＥＶＭＯＤＥの更新処理が開始されるとステップＳ２６０２に進み、図２３の５０行目に記されているような用紙サイズ（MediaSize）の「relatedStateVariableId」を取得する。次にステップＳ２６０３で、ＡＮＳＩの「標準関数_ttoi()」を使ってrelatedStateVariableIdを数値に変換して整数ｉに代入する。ステップＳ２６０４では、ｉ≧２５６かどうかを判定する。即ち、ここでは、各製造業者（ベンダー）に固有の値として定義されている値かどうかをみる。各製造業者（ベンダー）に固有の値であればステップＳ２６０５に進み、図２３の４９行目に記されているような「MediaSize」の「relatedStateVariableName」を取得する。図２３の例では「is_a4_210x297mm」が取得される。次にステップＳ２６０６に進み、製造業者名を表す文字列「ABC」を含んでいるかどうかを判定し、含んでいればステップＳ２６０７に進んで、ＤＥＶＭＯＤＥ構造体の該当する設定（用紙サイズ）を表すメンバーにｉをセットし、リターンする（Ｓ２６０９）。
【０１６２】
一方、ステップＳ２６０６で、製造業者名を表す文字列「ABC」を含まない場合は、「ABC」社以外の仕様によるものであるためステップＳ２６０８に進み、用紙サイズの初期値である「Ａ４」判を表す数値「９」をｉに代入してステップＳ２６０７に進む。またステップＳ３１０４において、ｉ＜２５６の場合もステップＳ３１０７へ進む。
【０１６３】
このように本実施の形態によれば、図１９のステップＳ１９０３，Ｓ１９０４で行っていたような複雑でしかも膨大なテーブルのリソースを必要とするような処理を実装する必要がなく、図２６で示すようなシンプルな処理により実現できるので、ソフトウェアリソースを大幅に削減でき、しかも、バグの発生を防ぐことができる。
【０１６４】
尚、ステップＳ２６０４でｉ≧２５６の場合は、Privateで定義されている用紙サイズを表すが、この場合、「ABC」社以外の製造業者が定義した用紙サイズとも考えられる。また、relatedStateVariableIdで指定された値が仮に同じ値であっても、その値を各製造業者毎に別の用紙サイズとして定義しているようなケースも考えられる。このようなケースを想定して、ステップＳ２６０５，Ｓ２６０６のように、ＳＣＰＤの文字列「relatedStateVariableName」を取得して、「ABC」社以外の製造業者が定義した用紙サイズであるか否かを確認し、他の製造業者が定義した用紙サイズの場合は、ステップＳ２６０８で用紙サイズの初期値である「Ａ４」を表す数値「９」をｉに代入し、それ以外の場合は自社（「ABC」社）で定義した用紙サイズとしてｉをそのまま取り扱い、ステップＳ３１０７でＤＥＶＭＯＤＥ構造体の該当する設定（用紙サイズ）を表すメンバーにｉをセットしている。これにより誤動作を防止しつつ、最適な用紙サイズをセットすることができる。
【０１６５】
尚、本実施例では、ｉ≧２５６の場合に、用紙サイズが自社で定義したものであるか否かを判別する方法として、ＳＣＰＤの文字列「relatedStateVariableName」を使用したが本発明はこれに限定されるものでなく、例えば、図２１の１１行及び１２行で記されているようなDeviceIDに含まれている「MFG:ABC」,「MDL:PrintMd1-K」や、図２０の１０行目に記されているような製造業者名「ABC」、１３行目に記されているような機種名「PrintMd1-K」等を使用してもよい。
【０１６６】
以下、図２７に示すメモリマップを参照して、本発明に係る情報処理装置及び周辺装置からなる周辺装置制御システムで読み出し可能なデータ処理プログラムの構成について説明する。
【０１６７】
図２７は、本発明に係る周辺装置制御システムで読み出し可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを示す図である。なお、特に図示しないが、記憶媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報，作成者等もこの記憶媒体に記憶され、かつ、プログラム読み出し側のＯＳ等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【０１６８】
図中６４は記憶媒体であり、ここではハードディスクで構成されているものとする。
【０１６９】
６５はディレクトリ情報管理部であり、各種プログラムに従属するデータがこのディレクトリ情報管理部６５で管理されている。
【０１７０】
６６はプログラム格納部であり、各種プログラムを情報処理装置にインストールするためのプログラムや、インストールするプログラムが圧縮されている場合に解凍するためのプログラム等も記憶される場合がある。
【０１７１】
本実施形態における図５、図１１、図１３、図１９、図２５、図２６にそれぞれ示す各フローチャートの実行によって実現できる各機能が、外部からインストールされるプログラムによって、情報処理装置によって実現されるようにしてもよい。そして、その場合、ＣＤ−ＲＯＭやフラッシュメモリやフレキシブルディスク等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群が情報処理装置や周辺装置に供給される場合でも、本発明は適用されるものである。
【０１７２】
以上のように、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（又はＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【０１７３】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１７４】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＥＥＰＲＯＭ等を用いることができる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１７５】
以上、本発明の実施の形態について説明したが、この実施の形態によれば、ＵＰｎＰのサービスとして定義されているスキーマ上に、印刷設定情報における各設定を数値で取り扱えるような新しい仕組み（要素）を設ける。この新しい仕組み（要素）で指定された数値をハンドリングして印刷ジョブを生成し、プリンタドライバを介して作成された印刷制御コマンドをプリンタに送信して印刷させることにより、複雑でしかも膨大なテーブルのリソースを必要とするような処理を実装することなく、シンプルな処理で実装することができ、かつ最適な設定で周辺装置を制御することができる周辺装置制御システムを実現することができる。具体的な構成は次の通りである。
【０１７６】
情報処理装置で構成されるクライアント（クライアントＰＣ８５１）と、情報処理装置で構成されるサーバ（代理サーバ８５３）と、周辺装置（プリンタ８５４）とを備える周辺装置制御システム（図４）であって、サーバは周辺装置を制御する周辺装置制御部（印刷ジョブ制御部８２４、プリンタドライバ５０）を備え、かつ、このサーバは、クライアントとサーバ間で共有され、文字列で定義された文字列要素（MediaSizeのrelatedStateVariableName）と数値で定義された数値要素（MediaSizeのrelatedStateVariableId）とを含むサービス（UPnP Forumで標準化されているPrinter Basic Service V 1.0をベースに製造者が独自に拡張したサービス）を利用して、文字列要素を周辺装置制御部に適用して周辺装置を制御することができる。
【０１７７】
また情報処理装置（代理サーバ８５３）と周辺装置（プリンタ８５４）とから成る周辺装置制御システム（図４）であって、情報処理装置は周辺装置を制御する周辺装置制御部（印刷ジョブ制御部８２４、プリンタドライバ５０）を備え、情報処理装置は、文字列で定義された文字列要素（MediaSizeのrelatedStateVariableName）と、数値で定義された数値要素（MediaSizeのrelatedStateVariableId）とを含むサービス（UPnP Forumで標準化されているPrinter Basic Service V 1.0をベースに製造者が独自に拡張したサービス）を利用して、文字列要素を周辺装置制御部に適用して周辺装置を制御することができる。
【０１７８】
尚、本実施の形態においては、第１の情報処理装置（クライアントＰＣ８５１等）が周辺装置（プリンタ８５５，８５２，８５４）を制御するための設定情報や周辺装置の状態を表す状態情報（図１０のプレゼンテーションページ）を、周辺装置（プリンタ８５５，８５２，８５４）又は第２の情報処理装置（代理サーバ８５３）の内部に用意して実現しているが、これに代わって、設定情報や状態情報を図１のＷｅｂサーバ８５８の内部に用意して実現するようにしてもよい。
【０１７９】
このように構成することで、設定情報や状態情報のＵＩのデザイン変更等が必要になった場合に、Ｗｅｂサーバ８５８の内部に用意してある設定情報や状態情報を差し替えるだけでよいので、メンテナンスが容易である。
【０１８０】
また、第１の情報処理装置（クライアントＰＣ８５１等）が周辺装置（プリンタ８５５，８５２，８５４）を制御するために設定された設定情報（図１０のプレゼンテーションページ）を、周辺装置（プリンタ８５５，８５２，８５４）や第２の情報処理装置（代理サーバ８５３）内で指定されたＵＲＬに対応する設定情報の格納場所に、第１の情報処理装置の情報と関連付けて保存し、第１の情報処理装置が設定情報を利用する時、この設定情報格納場所に保存されている設定情報を初期値として利用するようにする。
【０１８１】
これにより、ユーザがよく使用するお気に入りの設定情報が初期設定値として最初に第１の情報処理装置上に表示されるので、ユーザによる操作性を向上することができる。
また、情報処理装置（クライアントＰＣ８５１等）は、Ｗｅｂブラウザ（IE6等）を備え、周辺装置（プリンタ８５５，８５２，８５４）を、Ｗｅｂブラウザを介して制御するようにする。これにより、任意の情報処理装置において周辺装置を制御することが、容易に実現される。
【０１８２】
また、周辺装置の状態を表す状態情報（図１０のプレゼンテーションページ）を情報処理装置（クライアントＰＣ８５１等）に公開する機能は、状態情報を自動的に更新する（JavaScriptを用いて、所定時間毎にページの内容を自動的に更新する）機能を含むようにする。これにより、周辺装置（プリンタ８５５，８５２，８５４）の最新の状態を状態情報にリアルタイムに反映して情報処理装置上に表示することができる、操作性に優れた周辺装置制御システムを提供することが可能となる。
【０１８３】
また、情報処理装置（クライアントＰＣ８５１）は、周辺装置（プリンタ８５４）の製造者名、機種名、製造番号等を利用して、周辺装置を表示（図６に示す「ABC PrintMdl-K000888」）する機能を備えるようにする。これにより、同一ネットワーク（ネットワーク８５６）上に、製造番号だけが異なる同一機種の周辺装置が複数存在するような場合においても、情報処理装置上に表示される周辺装置の表示名から周辺装置を特定でき、ユーザが意図していない周辺装置に誤ってアクセスしてしまうような誤操作を防止することができる。
【０１８４】
尚、本実施の形態においては、こうした機能を、ＵＰｎＰを利用して実現しているが、これに限られることなく、同様な機能を備えるプロトコル等を利用して、実現することができる。また、実現するにあたっては、標準化された規格を利用することで、より汎用的なシステムを容易に実現することができる。
【０１８５】
また本実施の形態では、周辺装置としてプリンタを例示しているが、周辺装置として他に、複写機、ファクシミリ、スキャナ、デジタルカメラ、又はこれらの複合機能を備える装置などのいずれかが、本発明の適用対象となり得る。
【０１８６】
また、上記の実施の形態においては、周辺装置の検索時においてＳＳＤＰで策定されたプロトコルを採用しているが、同様なシステムを実現可能な任意のプロトコルを採用して、実施するようにしてもよい。
【０１８７】
また、上記の実施の形態では、ＨＴＴＰエンティティの表記方法はＳＯＡＰを使用しているが、独自スキーマによる記述によっても実現してもよい。
【０１８８】
また本実施の形態においては、ＯＳに例としてWindows XP、Mac OS、Linux OSを使用したが、これらのＯＳに限られることなく、任意のＯＳを使用することができる。
【０１８９】
また本実施の形態においては、ネットワーク８５６の構成例としてEthernetを用いたが、この例に限られることなく、他の任意のネットワーク構成であってもよい。
【０１９０】
更にまた本実施の形態においては、代理サーバ８５３とプリンタ８５４との間のインターフェースとして、ＵＳＢインターフェースを用いたが、このインターフェースに限られることなく、他の任意のインターフェースを用いるようしてもよい。
【０１９１】
また本実施の形態では、印刷設定の一つとして用紙サイズを例に説明したが、この例に限られることなく、例えば、用紙の種類、印刷品位等、同様なデータハンドリングが可能な任意の印刷設定に対しても有効であり、同様な構成にて容易に実現可能である。
【０１９２】
更に本実施の形態では、図４に示すような代理サーバ８５３内の印刷ジョブ制御部８２４における処理に関して説明したが、同様な処理を図１に示すようなプリンタ８５５内のファームウェアに実装しても有効であり、同様な構成にて容易に実現可能である。
【０１９３】
また本実施の形態では、図４に示すようなクライアントＰＣ８５１、代理サーバ８５３、プリンタ８５４で構成されるシステムの例で説明したが、本発明はこの例に限られることなく、例えば、図４においてクライアントＰＣ８５１が存在せず、代理サーバ８５３とプリンタ８５４だけから構成されるようなシステムでも、代理サーバ８５３が代理サーバとしての機能を提供しつつ、自らがクライアントＰＣとなるようなケースにおいても本発明が有効であり、同様な構成にて容易に実現可能である。
【０１９４】
［他の実施の形態］
本発明は、上述した実施の形態の機能を実現するソフトウェアのプログラムをコンピュータ又はＣＰＵに供給し、そのコンピュータ又はＣＰＵが該供給されたプログラムを読出して実行することによって、その目的を達成することができる。この場合、上記プログラムは、該プログラムを記録した記憶媒体から直接に供給されるか、又はインターネット、商用ネットワーク、若しくはローカルエリアネットワーク等に接続される不図示の他のコンピュータやデータベース等からダウンロードすることにより供給される。
【０１９５】
上記プログラムの形態は、オブジェクトコード、インタプリタにより実行されるプログラムコード、ＯＳ（オペレーティングシステム）に供給されるスクリプトデータ等の形態から成ってもよい。
【０１９６】
また、本発明は、上述した実施の形態の機能を実現するソフトウェアのプログラムを記憶した記憶媒体をコンピュータ又はＣＰＵに供給し、そのコンピュータ又はＣＰＵが記憶媒体に記憶されたプログラムを読出して実行することによっても、達成することができる。
【０１９７】
この場合、格納媒体から読出されたプログラムコード自体が上述した各実施の形態の機能を実現すると共に、そのプログラムコードを記憶した記憶媒体は本発明を構成する。
【０１９８】
プログラムコードを記憶する記憶媒体としては、例えば、ＲＯＭ、ＲＡＭ、ＮＶ−ＲＡＭ、フロッピー（登録商標）ディスク、ハードディスク、光ディスク（登録商標）、光磁気ディスク、ＣＤ−ＲＯＭ、ＭＯ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ、磁気テープ、不揮発性のメモリカード等がある。
【０１９９】
上述した実施の形態の機能は、コンピュータから読出されたプログラムコードを実行することによるばかりでなく、コンピュータ上で稼動するＯＳ等がプログラムコードの指示に基づいて実際の処理の一部又は全部を行うことによっても実現することができる。
【図面の簡単な説明】
【０２００】
【図１】本発明の実施の形態に係る周辺装置制御システムの第１の構成部分を説明する機能ブロック図である。
【図２】本実施の形態に係るクライアントＰＣ、サーバ及びプリンタのハードウェア構成の一例を示すブロック図である。
【図３】本発明の実施の形態に係る周辺装置制御システムの第２の構成部分を示すブロック図である。
【図４】本実施の形態に係る周辺装置制御システムにおける第３の構成部分を示すブロック図である。
【図５】本実施の形態において、Windows XPをＯＳとして搭載したクライアントＰＣにおいて実行されるＵＰｎＰ対応デバイス検出処理の手順を示すフローチャートである。
【図６】クライアントＰＣの表示部に表示されたMy Network Placesフォルダの一例を示す図である。
【図７】クライアントＰＣから代理サーバ発行されるＨＴＴＰリクエストの一例を示す図である。
【図８】図５のステップＳ５１２で代理サーバからクライアントＰＣに返信されるＨＴＴＰレスポンス（ＳＳＤＰレスポンス）の一例を示す図である。
【図９】代理サーバがサポートしているＵＰｎＰデバイスのXML Device Descriptionの記述内容の基本的な一例を示す図である。
【図１０】代理サーバが公開しているプレゼンテーションページをクライアントＰＣの表示部に表示した場合の画面表示例を示す図である。
【図１１】図１０に示すプレゼンテーションページを用いて印刷を行う時にクライアントＰＣで実行される印刷処理の手順を示すフローチャートである。
【図１２】一般的な代理サーバの印刷ジョブ制御部の機能構成を表す機能ブロック図である。
【図１３】図１０に示すプレゼンテーションページを用いて印刷が行われたときの代理サーバで行われる状態検出処理の手順と、クライアントＰＣで実行される代理サーバを介したプリンタの状態表示処理の手順とを示すフローチャートである。
【図１４】一般的な代理サーバにおけるプリンタドライバの構成を示すブロック図である。
【図１５】文字列・数値変換テーブルの内容例を表す図である。
【図１６】図５のステップＳ５１２の後にＵＰｎＰプロトコル上で代理サーバからクライアントＰＣに送られるＳＣＰＤの一部を表すＸＭＬのデータ例を示す図である。
【図１７】図１１のステップＳ１１０２で送られる印刷設定情報の内容例を表す図である。
【図１８】図１１のステップＳ１１０２で送られる印刷設定情報の内容例を表す図である。
【図１９】代理サーバの印刷ジョブ制御部における印刷ジョブ生成処理を説明するフローチャートである。
【図２０】本発明の実施の形態に係る代理サーバがサポートしているＵＰｎＰデバイスのXML Device Descriptionの記述内容の一例を示す図である。
【図２１】本発明の実施の形態に係る代理サーバにおいて、図５のステップＳ５１２の後にＵＰｎＰプロトコル上で代理サーバからクライアントＰＣに送られるＳＣＰＤの一部の具体例を表すＸＭＬのデータである。
【図２２】本発明の実施の形態に係る代理サーバにおいて、図１１のステップＳ１１０２で送信される印刷設定情報の内容例を表す図である。
【図２３】本発明の実施の形態に係る代理サーバにおいて、図１１のステップＳ１１０２で送信される印刷設定情報の内容例を表す図である。
【図２４】本発明の実施の形態に係る代理サーバにおける印刷ジョブ制御部の機能構成を説明する機能ブロック図である。
【図２５】本発明の実施の形態に係る代理サーバの印刷ジョブ制御部における印刷ジョブ生成処理を表すフローチャートである。
【図２６】図２５のステップＳ２５０３におけるＤＥＶＭＯＤＥの更新の処理を表すフローチャートである。
【図２７】本実施の形態に係る周辺装置制御システムで読み出し可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを示す図である。
【図２８】Service Template Version 1.01に記述されている規格の一部を説明する図である。
【図１】
2005148953.tif 000003
【図２】
2005148953.tif 000004
【図３】
2005148953.tif 000005
【図４】
2005148953.tif 000006
【図５】
2005148953.tif 000007
【図６】
2005148953.tif 000008
【図７】
2005148953.tif 000009
【図８】
2005148953.tif 000010
【図９】
2005148953.tif 000011
【図１０】
2005148953.tif 000012
【図１１】
2005148953.tif 000013
【図１２】
2005148953.tif 000014
【図１３】
2005148953.tif 000015
【図１４】
2005148953.tif 000016
【図１５】
2005148953.tif 000017
【図１６】
2005148953.tif 000018
【図１７】
2005148953.tif 000019
【図１８】
2005148953.tif 000020
【図１９】
2005148953.tif 000021
【図２０】
2005148953.tif 000022
【図２１】
2005148953.tif 000023
【図２２】
2005148953.tif 000024
【図２３】
2005148953.tif 000025
【図２４】
2005148953.tif 000026
【図２５】
2005148953.tif 000027
【図２６】
2005148953.tif 000028
【図２７】
2005148953.tif 000029
【図２８】
2005148953.tif 000030