"周辺機器が接続可能な周辺機器サーバとコンピュータとがネットワークで接続され,当該コンピュータから当該周辺機器を利用可能な周辺機器利用システムにおける当該周辺機器サーバであって,1周辺機器を接続する周辺機器インタフェースと,2前記周辺機器サーバを常にユニークに特定することができる情報を取得する周辺機器サーバ情報取得手段と,3前記周辺機器インタフェースに固定的に関連付けられた情報を取得する周辺機器インタフェース情報取得手段と,4前記周辺機器の機器情報を取得する機器情報取得手段と,5周辺機器インタフェースに接続された周辺機器が自身の識別情報周辺機器識別情報を備えているかどうかを判断する,周辺機器識別情報存否判断手段と,前記周辺機器識別情報存否判断手段が,周辺機器識別情報を備えていないと判断した場合動作する手段であって,6-a前記周辺機器サーバ情報取得手段と前記周辺機器インタフェース情報取得手段とによって取得されたそれぞれの情報に基づき前記周辺機器利用システム内において常にユニークであり不変な第1の仮想識別情報を生成する第1の仮想識別情報生成手段,6-b前記周辺機器から取得した前記機器情報に基づき第2の仮想識別情報を生成する第2の仮想識別情報生成手段,および6-c生成した第1の仮想識別情報と生成した第2の仮想識別情報とに基づいて,前記周辺機器の仮想の識別情報周辺機器仮想識別情報を生成する,周辺機器仮想識別情報生成手段を備え,さらに,前記周辺機器サーバは,7前記コンピュータから送信された前記周辺機器の識別情報の問い合わせに対し,生成した前記仮想周辺機器識別情報を応答する周辺機器識別情報応答手段,を備え,前記周辺機器仮想識別情報は,前記コンピュータにおいて,前記周辺機器に対する,常に固定の論理通信経路を生成するために用いられる,ことを特徴とする。前記機器情報は前記周辺機器のデバイスディスクリプタであり,前記第2の仮想識別情報生成手段は,前記ディスクリプタのiManufacturer情報とiProduct情報を取得し,当該取得した情報に基づいて不変の値を特定し,当該不変の値を第2の仮想識別情報として生成する,ことを特徴とする請求項1に記載の周辺機器サーバ。周辺機器が接続可能な周辺機器サーバとコンピュータとがネットワークで接続され,当該コンピュータから当該周辺機器を利用可能な周辺機器利用システムにおける当該周辺機器サーバを,1前記周辺機器サーバを常にユニークに特定することができる情報を取得する周辺機器サーバ情報取得手段と,2前記周辺機器サーバの備える周辺機器インタフェースに固定的に関連付けられた情報を取得する周辺機器インタフェース情報取得手段と,3前記周辺機器の機器情報を取得する機器情報取得手段と,4前記周辺機器インタフェースに接続された周辺機器が自身の識別情報周辺機器識別情報を備えているかどうかを判断する,周辺機器識別情報存否判断手段と,前記周辺機器識別情報存否判断手段が,周辺機器識別情報を備えていないと判断した場合動作する,5-a前記周辺機器サーバ情報取得手段と前記周辺機器インタフェース情報取得手段とによって取得されたそれぞれの情報に基づき前記周辺機器利用システム内において常にユニークであり不変な第1の仮想識別情報を生成する第1の仮想識別情報生成手段,5-b前記周辺機器から取得した前記機器情報に基づき第2の仮想識別情報を生成する第2の仮想識別情報生成手段,および5-c生成した第1の仮想識別情報と生成した第2の仮想識別情報とに基づいて,前記周辺機器の仮想の識別情報周辺機器仮想識別情報を生成する,周辺機器仮想識別情報生成手段を備え,さらに,前記周辺機器サーバは,7前記コンピュータから送信された前記周辺機器の識別情報の問い合わせに対し,生成した前記仮想周辺機器識別情報を応答する周辺機器識別情報応答手段と,して機能させるプログラムであって,前記周辺機器仮想識別情報は,前記コンピュータにおいて,前記周辺機器に対する,常に固定の論理通信経路を生成するために用いられる,ことを特徴とする。前記機器情報は前記周辺機器のデバイスディスクリプタであり,前記第2の仮想識別情報生成手段は,前記ディスクリプタのiManufacturer情報とiProduct情報を取得し,当該取得した情報に基づいて不変の値を特定し,当該不変の値を第2の仮想識別情報として生成する,ことを特徴とする請求項3に記載のプログラム。周辺機器が接続可能な周辺機器サーバとコンピュータとがネットワークで接続され,当該コンピュータから当該周辺機器を利用可能な周辺機器利用システムであって,前記周辺機器サーバは,1周辺機器を接続する周辺機器インタフェースと,2前記周辺機器サーバを常にユニークに特定することができる情報を取得する周辺機器サーバ情報取得手段と,3前記周辺機器インタフェースに固定的に関連付けられた情報を取得する周辺機器インタフェース情報取得手段と,4前記周辺機器の機器情報を取得する機器情報取得手段と,5周辺機器インタフェースに接続された周辺機器が自身の識別情報周辺機器識別情報を備えているかどうかを判断する,周辺機器識別情報存否判断手段と,前記周辺機器識別情報存否判断手段が,周辺機器識別情報を備えていないと判断した場合動作する手段であって,6-a前記周辺機器サーバ情報取得手段と前記周辺機器インタフェース情報取得手段とによって取得されたそれぞれの情報に基づき前記周辺機器利用システム内において常にユニークであり不変な第1の仮想識別情報を生成する第1の仮想識別情報生成手段,6-b前記周辺機器から取得した前記機器情報に基づき第2の仮想識別情報を生成する第2の仮想識別情報生成手段,および6-c生成した第1の仮想識別情報と生成した第2の仮想識別情報とに基づいて,前記周辺機器の仮想の識別情報周辺機器仮想識別情報を生成する,周辺機器仮想識別情報生成手段,を備えるとともに,7前記コンピュータから送信された前記周辺機器の識別情報の問い合わせに対し,生成した前記仮想周辺機器識別情報を応答する周辺機器識別情報応答手段,を備え,前記コンピュータは,8前記周辺機器サーバに向けて,周辺機器識別情報の問い合わせを送信する手段と,9前記問合せに対する応答として,前記周辺機器サーバから送信された周辺機器識別情報を受信する手段と,10受信した周辺機器識別情報に基づいて,前記周辺機器に対する,常に固定の論理通信経路を生成する手段と,を備えることを特徴とする。前記機器情報は前記周辺機器のデバイスディスクリプタであり,前記第2の仮想識別情報生成手段は,前記ディスクリプタのiManufacturer情報とiProduct情報を取得し,当該取得した情報に基づいて不変の値を特定し,当該不変の値を第2の仮想識別情報として生成する,ことを特徴とする請求項5に記載の周辺機器利用システム。本願発明の目的は,上述した問題を解決するためのものである。すなわち,シリアル番号を持たない複数の周辺機器が接続された場合であっても,常に当該周辺機器を一意に識別できる装置,プログラムおよびシステムを提供することである。本願発明にかかる第1の形態は,周辺機器が接続可能な周辺機器サーバとコンピュータとがネットワークで接続され,当該コンピュータから当該周辺機器を利用可能な周辺機器利用システムにおける当該周辺機器サーバであって,周辺機器を接続する周辺機器インタフェースと,周辺機器サーバを常にユニークに特定することができる情報を取得する周辺機器サーバ情報取得手段と,周辺機器インタフェースに固定的に関連付けられた情報を取得する周辺機器インタフェース情報取得手段と,周辺機器の機器情報を取得する機器情報取得手段と,周辺機器インタフェースに接続された周辺機器が自身の識別情報周辺機器識別情報を備えているかどうかを判断する,周辺機器識別情報存否判断手段と,周辺機器識別情報存否判断手段が,周辺機器識別情報を備えていないと判断した場合動作する手段であって,周辺機器サーバ情報取得手段と周辺機器インタフェース情報取得手段とによって取得されたそれぞれの情報に基づき周辺機器利用システム内において常にユニークであり不変な第1の仮想識別情報を生成する第1の仮想識別情報生成手段,周辺機器から取得した機器情報に基づき第2の仮想識別情報を生成する第2の仮想識別情報生成手段,および生成した第1の仮想識別情報と生成した第2の仮想識別情報とに基づいて,周辺機器の仮想の識別情報周辺機器仮想識別情報を生成する,周辺機器仮想識別情報生成手段を備え,さらに,周辺機器サーバは,コンピュータから送信された周辺機器の識別情報の問い合わせに対し,生成した仮想周辺機器識別情報を応答する周辺機器識別情報応答手段,を備え,周辺機器仮想識別情報は,コンピュータにおいて,周辺機器に対する,常に固定の論理通信経路を生成するために用いられる,ことを特徴とする。さらに好ましくは,機器情報は周辺機器のデバイスディスクリプタであり,第2の仮想識別情報生成手段は,ディスクリプタのiManufacturer情報とiProduct情報を取得し,当該取得した情報に基づいて不変の値を特定し,当該不変の値を第2の仮想識別情報として生成する,ことを特徴とする。本願発明にかかる第2の形態は,周辺機器が接続可能な周辺機器サーバとコンピュータとがネットワークで接続され,当該コンピュータから当該周辺機器を利用可能な周辺機器利用システムにおける当該周辺機器サーバを,周辺機器サーバを常にユニークに特定することができる情報を取得する周辺機器サーバ情報取得手段と,周辺機器サーバの備える周辺機器インタフェースに固定的に関連付けられた情報を取得する周辺機器インタフェース情報取得手段と,周辺機器の機器情報を取得する機器情報取得手段と,周辺機器インタフェースに接続された周辺機器が自身の識別情報周辺機器識別情報を備えているかどうかを判断する,周辺機器識別情報存否判断手段と,周辺機器識別情報存否判断手段が,周辺機器識別情報を備えていないと判断した場合動作する,周辺機器サーバ情報取得手段と周辺機器インタフェース情報取得手段とによって取得されたそれぞれの情報に基づき周辺機器利用システム内において常にユニークであり不変な第1の仮想識別情報を生成する第1の仮想識別情報生成手段,周辺機器から取得した機器情報に基づき第2の仮想識別情報を生成する第2の仮想識別情報生成手段,および生成した第1の仮想識別情報と生成した第2の仮想識別情報とに基づいて,周辺機器の仮想の識別情報周辺機器仮想識別情報を生成する,周辺機器仮想識別情報生成手段を備え,さらに,周辺機器サーバは,コンピュータから送信された周辺機器の識別情報の問い合わせに対し,生成した仮想周辺機器識別情報を応答する周辺機器識別情報応答手段と,して機能させるプログラムであって,周辺機器仮想識別情報は,コンピュータにおいて,周辺機器に対する,常に固定の論理通信経路を生成するために用いられる,ことを特徴とする。さらに好ましくは,機器情報は周辺機器のデバイスディスクリプタであり,第2の仮想識別情報生成手段は,ディスクリプタのiManufacturer情報とiProduct情報を取得し,当該取得した情報に基づいて不変の値を特定し,当該不変の値を第2の仮想識別情報として生成する,ことを特徴とする。本願発明にかかる第3の形態は,周辺機器が接続可能な周辺機器サーバとコンピュータとがネットワークで接続され,当該コンピュータから当該周辺機器を利用可能な周辺機器利用システムであって,周辺機器サーバは,周辺機器を接続する周辺機器インタフェースと,周辺機器サーバを常にユニークに特定することができる情報を取得する周辺機器サーバ情報取得手段と,周辺機器インタフェースに固定的に関連付けられた情報を取得する周辺機器インタフェース情報取得手段と,周辺機器の機器情報を取得する機器情報取得手段と,周辺機器インタフェースに接続された周辺機器が自身の識別情報周辺機器識別情報を備えているかどうかを判断する,周辺機器識別情報存否判断手段と,周辺機器識別情報存否判断手段が,周辺機器識別情報を備えていないと判断した場合動作する手段であって,周辺機器サーバ情報取得手段と周辺機器インタフェース情報取得手段とによって取得されたそれぞれの情報に基づき周辺機器利用システム内において常にユニークであり不変な第1の仮想識別情報を生成する第1の仮想識別情報生成手段,周辺機器から取得した機器情報に基づき第2の仮想識別情報を生成する第2の仮想識別情報生成手段,および生成した第1の仮想識別情報と生成した第2の仮想識別情報とに基づいて,周辺機器の仮想の識別情報周辺機器仮想識別情報を生成する,周辺機器仮想識別情報生成手段,を備えるとともに,コンピュータから送信された周辺機器の識別情報の問い合わせに対し,生成した仮想周辺機器識別情報を応答する周辺機器識別情報応答手段,を備え,コンピュータは,周辺機器サーバに向けて,周辺機器識別情報の問い合わせを送信する手段と,問合せに対する応答として,周辺機器サーバから送信された周辺機器識別情報を受信する手段と,受信した周辺機器識別情報に基づいて,周辺機器に対する,常に固定の論理通信経路を生成する手段と,を備えることを特徴とする。さらに好ましくは,機器情報は周辺機器のデバイスディスクリプタであり,第2の仮想識別情報生成手段は,ディスクリプタのiManufacturer情報とiProduct情報を取得し,当該取得した情報に基づいて不変の値を特定し,当該不変の値を第2の仮想識別情報として生成する,ことを特徴とする。本願発明によれば,デバイスサーバシステムにおいて,ドライバがUSBデバイスを指定する際に用いる論理通信経路の生成に,デバイスサーバのMACアドレスおよびUSBの物理ポート番号に基づいた第1の仮想シリアル番号とUSBデバイスの機器情報に基づいた第2の仮想シリアル番号の両方を用いる。これにより,ドライバからUSBデバイスへの通信経路である論理通信経路を常に固定的にすることができる。この結果,シリアル番号を持たないUSBデバイスを複数接続したとしても,ドライバからは,常に希望するUSBデバイスに対して通信を行うことができる。以下では図面を参照し本願発明に係る実施例を説明する。[実施例1][システム全体図]図1は本願発明にかかるシステム全体図の一例である。詳細説明は背景技術においてすでになされているため割愛する。なお,プリンタA103とプリンタB104は,同一機種である場合を想定する。[シーケンス図1]図4は,本願発明にかかるデバイスサーバシステムのシーケンス図である。デバイスサーバ102にUSBデバイス本実施例では同一機種プリンタを想定が接続ステップ401され,デバイスサーバ102のステップ402およびステップ403において,それぞれのデバイス識別情報を生成する。その後,PC101からUSBデバイスへの接続要求ステップ404があれば,これに対してデバイスサーバ102は,生成したデバイス識別情報を応答ステップ405する。これを受信したPC101では,USBデバイスのドライバインストールステップ406が行われ,PC101からデバイスへの通信が可能になる。この時,USBデバイスへの論理通信経路が生成される。そして,PC101,具体的にはPC101のドライバはUSBデバイスを指定して通信を行うステップ407。この通信は,デバイスサーバ102を経由してUSBデバイスに到達するステップ408。なお,本願発明は,上述したデバイス識別情報の生成ステップ402の処理に特徴を有するものであり,以下では,この部分を中心に説明する。[機能ブロック図]図5はデバイスサーバ102の機能ブロック図である。デバイス識別情報存否判断手段505は,周辺機器インタフェース501を介してUSBデバイスの識別情報が存在するかどうかを判断する。このデバイス識別情報が上述した論理通信経路を生成する際に必要な情報であり,これが存在しない場合は,後述する第1の仮想シリアル番号生成手段504,および第2の仮想シリアル番号生成手段507に生成を指示する。第1の仮想シリアル番号生成手段504は,上記指示に基づき,デバイスサーバ情報取得手段503が取得したデバイスサーバ情報と周辺機器インタフェース情報取得手段502が取得した周辺機器インタフェース501のインタフェース情報をもとに第1の仮想シリアル番号を生成する。この第1の仮想シリアル番号は,背景技術において説明したとおりのものであり,デバイスサーバ102自身のMACアドレスと物理USBポート番号に基づいて生成されるものである。つまり,デバイスサーバ情報取得手段503が取得する情報は,デバイスサーバ102のMACアドレスであり,周辺機器インタフェース情報取得手段502が取得する情報は,当該USBデバイスが接続されている周辺機器インタフェース501の物理ポート番号である。第2の仮想シリアル番号生成手段507は,上記指示に基づき,機器情報取得手段506を経由して取得したデバイスの機器情報をもとに第2の仮想シリアル番号を生成する。ここでいう機器情報とは具体的には図8に示すものであり,一般的にはデバイスディスクリプタと呼ばれている。機器情報内にあるiManufacture,iProductおよびiSerialNumberは,本願発明において重要な情報であり,利用の仕方については後述する。デバイス識別情報生成手段508は,生成された第1の仮想シリアル番号と第2の仮想シリアル番号とを用いて,デバイス識別情報を生成する。デバイス識別情報問合受信手段510は,ネットワークインタフェース509を通じて,PC101からのデバイス識別情報問合せを受信し,デバイス識別情報応答手段511は,これに対する応答として,デバイス識別情報生成手段508が生成したデバイス識別情報を応答する。[シーケンス図2]図6は,本願発明にかかるデバイスサーバシステムのシーケンス図である。図4との違いは,デバイス識別情報,およびその元となる第1の仮想シリアル番号と第2の仮想シリアル番号の使われ方を中心に記載している点である。なお,図示するように,ドライバと仮想ドライバは,いずれもPC101内部のものである。なお,仮想ドライバについては背景技術にて説明済みのため説明を省略する。ステップ601にて,USBデバイスがデバイスサーバ102に接続される。ステップ602にて,デバイスサーバ102は,接続されたUSBデバイスがデバイス識別情報を備えているかどうかを判断し,備えていなければ,ステップ603に進む。ステップ603にて,デバイスサーバ102は,USBデバイスのデバイス識別情報を生成する。具体的には,すでに説明した第1の仮想シリアル番号,および第2の仮想シリアル番号を生成し,これらをもとにデバイス識別情報を生成する。ステップ604にて,PC101の仮想ドライバからデバイスサーバ102に向けて送信された,USBデバイスへの接続要求を受信する。ステップ605にて,受信した接続要求に対し,デバイスサーバ102は生成したデバイス識別情報を応答する。ステップ606にて,仮想ドライバは受信したデバイス識別情報をドライバに渡す。ステップ607にて,ドライバは渡されたデバイス識別情報をもとにUSBデバイスへの論理通信経路を生成する。ステップ608にて,ドライバは生成した論理通信経路を指定してUSBデバイスへの通信を開始する。ステップ609にて,仮想ドライバは,ドライバが指定した論理通信経路をもとにUSBデバイスへの通信経路を特定する。具体的には,USBデバイスに対するインタフェースおよびエンドポイントを特定する。ステップ610にて,仮想ドライバは特定した通信経路をネットワークパケットに変換する。ステップ611にて,このネットワークパケットをデバイスサーバ102に送信する。ステップ612にて,ネットワークパケットを受信したデバイスサーバ102は,中身のインタフェースおよびエンドポイントを参照し,該当するUSBデバイスに対して通信を行う。[デバイス識別情報生成の動作フロー]図7はデバイスサーバ102がデバイス識別情報を生成する際の動作フローである。この処理は図6におけるステップ607の具体的動作である。すでに述べたように,本願発明では,USBデバイスがデバイス識別情報を備えていない場合,デバイスサーバ102がこれを生成する。そして,このデバイス識別情報は,第1の仮想シリアル番号と第2の仮想シリアル番号をもとに生成されるものである。したがって,デバイス識別情報を生成するフローとしては,ステップ701~ステップ703に示す通りとなる。第1の仮想シリアル番号を生成するため,ステップ711において,デバイスサーバ102のMACアドレスを取得する。ステップ712において,USBデバイスが接続されているUSBポートの物理ポート番号を取得する。ステップ713において,これらの情報をもとに第1の仮想シリアル番号を生成する。この生成の過程は図2で示したとおりである。第2の仮想シリアル番号を生成するため,ステップ721にて,USBデバイスの機器情報を取得する。この機器情報は図8に示した通りでる。ステップ722にて,取得した機器情報のiManufacturer情報を参照する。ステップ723にて,取得した機器情報のiProduct情報を参照する。ステップ724にて,参照したiManufacturer情報およびiProduct情報をもとに第2の仮想シリアル番号を生成する。[第2の仮想シリアル番号生成の規則]すでに述べたように,本願発明の特徴は,デバイス識別情報の生成にある。このデバイス識別情報の生成には第1の仮想シリアル番号と第2の仮想シリアル番号が用いられる。従来技術においては,第1の仮想シリアル番号だけを用いており,それだけでは不十分であると述べた。そこで本願発明では,第2の仮想シリアル番号も用いるが,以下で,その生成の詳細について説明する。第2の仮想シリアル番号の生成には,USBデバイスの機器情報デバイスディスクリプタが用いられてり,中でもiManufacturer情報とiProduct情報を用いる。これらの情報はUSBデバイスの製造者が任意に設定できる値である。図9は,第2の仮想シリアル番号生成の規則について図示したものである。図9において第2の仮想シリアル番号に相当するのは,iSerialNumberである。これは1バイトの値で表されるものであり,iManufacturer情報とiProduct情報をもとに生成される。iManufacturer情報とiProduct情報も通常は1バイトの値である。図示するように,iManufacturer情報が1であり,iProduct情報が2である場合には,iSerialNumberは3を割り当てる。別の例として,iManufacturer情報が2であり,iProduct情報が0である場合には,iSerialNumberは1を割り当てる。このようにiSerialNumberを生成するには所定の規則がある。つまり,iManufacturer情報とiProduct情報を除いた値で1に最も近い値が,iSerialNumberになるわけである。このような規則を設けることにより,iManufacturer情報とiProduct情報との重複を避けつつ,常に固定のiSerialNumberを生成することができる。ひいては,これをもとに生成されるデバイス識別情報や,さらには論理通信経路を常に固定のものとすることができるわけである。なお,iSerialNumberは,iManufacturer情報とiProduct情報と重複せず,常に不変固定的なものであればどのような値でもよい。上述したように,最も1に近い値とするのは,こうした条件を満たす方法のうちの1つである。ところで,USBデバイスが同じ機種の場合には,iManufacturer情報とiProduct情報とが同じ値になることもある。このような場合,上記の規則に従ってiSerialNumberを生成すると,当然同じ値のiSerialNumberが得られることとなる。USBデバイスの識別は,上述の第1の仮想シリアル番号で可能であるため,同じ値のiSerialNumberが生成されることは特に問題ではない。本願発明にとって重要なのは,任意のUSBデバイスに対して生成されるiSerialNumberが常に同じ値であることであり,それが他のUSBデバイスのiSerialNumberと同じであるかどうかは問わないわけである。さらに別の場合として,iManufacturer情報とiProduct情報を持たないUSBデバイスもある。ただ,どのようなUSBデバイスであってもデバイスディスクリプタは備えていることから,iManufacturer情報とiProduct情報には,単に0ゼロの値が入っているだけである。このような場合も,上述するように同じ値のiSerialNumberが生成されることとなる。[まとめ]本願発明によれば,デバイスサーバシステムにおいて,ドライバがUSBデバイスを指定する際に用いる論理通信経路の生成に,デバイスサーバのMACアドレスおよびUSBの物理ポート番号に基づいた第1の仮想シリアル番号とUSBデバイスの機器情報に基づいた第2の仮想シリアル番号の両方を用いる。これにより,ドライバからUSBデバイスへの通信経路である論理通信経路を常に固定的にすることができる。この結果,シリアル番号を持たないUSBデバイスを複数接続したとしても,ドライバからは,常に希望するUSBデバイスに対して通信を行うことができる。"