(57)【要約】【課題】識別番号を有していない周辺機器を一意に識別できる装置およびプログラムを提供する。【解決手段】識別番号を有していない周辺機器の接続される周辺機器サーバまたはコンピュータが，当該周辺機器に対し常に一定で不変の識別番号を生成する。当該識別番号は，周辺機器サーバまたはコンピュータのＭＡＣアドレスと周辺機器の接続されるインタフェースの番号とを組み合わせることにより生成される。周辺機器を利用するアプリケーションは，この識別番号を使用して通信をする。【選択図】図２
2011014036.tif 000002
【特許請求の範囲】
【請求項１】
周辺機器が接続可能な周辺機器サーバとコンピュータとがネットワークで接続され，当該コンピュータから当該周辺機器を利用可能な周辺機器利用システムにおける当該周辺機器サーバであって，
周辺機器を接続する周辺機器インタフェースと，
前記周辺機器サーバを特定する情報を取得する周辺機器サーバ情報取得手段と，
周辺機器が接続された前記周辺機器インタフェースに関連付けられた情報を取得する周辺機器インタフェース情報取得手段と，
前記周辺機器サーバ情報取得手段と前記周辺機器インタフェース情報取得手段とによって取得されたそれぞれの情報を組み合わせることにより，接続された前記周辺機器に対して，前記周辺機器利用システム内においてユニークであり不変な識別番号を生成する識別番号生成手段と，を備える周辺機器サーバ。
【請求項２】
前記周辺機器サーバを特定する情報は，前記周辺機器サーバのＭＡＣアドレスであり，前記周辺機器インタフェースに関連付けられた情報は，前記周辺機器インタフェースのポート番号であることを特徴とする請求項１に記載の周辺機器サーバ。
【請求項３】
情報処理装置の周辺機器インタフェースに接続され，自身の識別番号を持たない周辺機器を識別するための周辺機器識別支援プログラムであって，前記情報処理装置に，
前記情報処理装置を特定する情報を取得する情報処理装置情報取得機能と，
前記情報処理装置が備え，周辺機器が接続された周辺機器インタフェースに関連付けられた情報を取得する周辺機器インタフェース情報取得機能と，
前記情報処理装置情報取得機能と前記周辺機器インタフェース情報取得機能とによって取得されたそれぞれの情報を組み合わせることにより，接続された前記周辺機器に対して，前記情報処理装置のシステム内においてユニークであり不変な識別番号を生成する識別番号生成機能と，を実現させるための周辺機器識別支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，コンピュータ周辺機器を管理する装置およびプログラムに関する。
【背景技術】
【０００２】
ＵＳＢ機器に代表される周辺機器をネットワークで共有するデバイスサーバという技術が知られている。デバイスサーバとは，ＰＣなどのコンピュータとＵＳＢ周辺機器が接続されたデバイスサーバとが，ネットワークを通じて接続されている環境において，ＰＣからネットワーク越しに当該ＵＳＢ周辺機器を利用させることのできるものである。
【０００３】
通常，デバイスサーバには複数のＵＳＢ周辺機器が接続可能であり，ＰＣはネットワークを通じてこれらＵＳＢ周辺機器を利用することができる。詳細は非特許文献１（サイレックス・テクノロジー株式会社ホームページ）を参照のこと。なお，以下では，周辺機器をＵＳＢの周辺機器(以下，ＵＳＢデバイスと記載)として説明する。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】http://www.silex.jp/products/usbdeviceserver/index.html?init
【０００５】
ところで，デバイスサーバを用いて複数のＵＳＢ機器を利用する場合，以下のような問題があった。
【０００６】
通常，ＵＳＢ機器は，製造時に自身に割り当てられたユニークな番号であるシリアル番号を，自身の備える不揮発性メモリに保存している。ＰＣ上で動作し，ＵＳＢ機器を利用するアプリケーションは，このシリアル番号を用いることで，通信する相手(ＵＳＢ機器)を特定し，通信することができる。
【０００７】
しかし，ＵＳＢ機器によっては，コスト等の事情から不揮発性メモリを搭載していない，即ち，シリアル番号を持たないものが少なからず存在する。そこで従来は，このようなＵＳＢ機器を識別する手段として，ＵＳＢ機器がデバイスサーバに接続された際，デバイスサーバによって，シリアル番号に相当する識別番号が生成され，アプリケーションとＵＳＢ機器間の通信は，生成されたこの識別番号に基づいて行われていた。
【０００８】
ところで，上記した識別番号は，ＵＳＢ機器が接続された際，これらの接続台数や接続順，および接続ポートなどの情報を元に生成されるものである。このため，ＵＳＢ機器の電源を入れる順序などによって，その都度，識別番号が変化してしまうことがあり，結果として，ＵＳＢ機器の判別ができなくなるという問題があった。
【０００９】
このような現象は，ＵＳＢ機器を区別して利用したいユーザにとっては，大きな問題となる。特に，同一機種のＵＳＢ機器を複数使用する場合，その区別をすることは事実上不可能であった。
【００１０】
例えば，シリアル番号を持たない複数の同じＵＳＢインクジェットプリンタが接続されている場合，インク残量を監視するアプリケーションが表示するインク残量の情報が何れのプリンタのものかは一見しただけではわからない。また，表示されている情報とプリンタの対応関係が判明したとしても，次回の起動時に同じ対応関係になるとも限らないという問題があった。
なお，この問題は，デバイスサーバだけではなく，ＵＳＢ機器をＰＣに直接接続した場合にも同様に発生する。
このような問題に対して，以下の技術が開示されている。
【００１１】
【非特許文献２】特開２００３−３１６７２０
【００１２】
非特許文献２は，デバイスサーバではなく，ローカルのＰＣに複数の同一機種が接続された場合の解決手段であるが，課題の本質は同じである。即ち，非特許文献２は，ＰＣに接続された複数の同一周辺機器のそれぞれが保有するモジュール（部品），例えば周辺機器が記録装置の場合，当該記録装置の記録ヘッド等のシリアル番号をＵＳＢ識別番号として利用することにより，複数の周辺機器を判別する技術について開示している。
【００１３】
しかし，この技術は，ＰＣに接続される周辺機器を構成する部品自体にシリアル番号が備えられている必要がある。さらに，部品のシリアル番号を自身の識別番号とするよう，全ての周辺機器にこの機能を搭載する必要もあることから，多くの種類の周辺機器において適用することが困難であった。
【発明の概要】
【発明が解決しようとする課題】
【００１４】
それゆえに本発明の目的は，シリアル番号を持たない複数の周辺機器が接続された場合，さらに，周辺機器を構成する部品に識別番号を有することが無い場合であっても，常に当該周辺機器を一意に識別できる装置およびプログラムを提供することである。
【課題を解決するための手段】
【００１５】
本発明の第１の形態にかかる周辺機器サーバは，周辺機器が接続可能な周辺機器サーバとコンピュータとがネットワークで接続され，当該コンピュータから当該周辺機器を利用可能な周辺機器利用システムにおける当該周辺機器サーバであって，周辺機器を接続する周辺機器インタフェースと，周辺機器サーバを特定する情報を取得する周辺機器サーバ情報取得手段と，周辺機器が接続された周辺機器インタフェースに関連付けられた情報を取得する周辺機器インタフェース情報取得手段と，周辺機器サーバ情報取得手段と周辺機器インタフェース情報取得手段とによって取得されたそれぞれの情報を組み合わせることにより，接続された周辺機器に対して，周辺機器利用システム内においてユニークであり不変な識別番号を生成する識別番号生成手段と，を備える。
【００１６】
さらに好ましくは，周辺機器サーバを特定する情報は，周辺機器サーバのＭＡＣアドレスであり，周辺機器インタフェースに関連付けられた情報は，周辺機器インタフェースのポート番号である。
【００１７】
本発明の第２の形態にかかる周辺機器識別支援プログラムは，情報処理装置の周辺機器インタフェースに接続され，自身の識別番号を持たない周辺機器を識別するための周辺機器識別支援プログラムであって，情報処理装置に，情報処理装置を特定する情報を取得する情報処理装置情報取得機能と，情報処理装置が備え，周辺機器が接続された周辺機器インタフェースに関連付けられた情報を取得する周辺機器インタフェース情報取得機能と，情報処理装置情報取得機能と周辺機器インタフェース情報取得機能とによって取得されたそれぞれの情報を組み合わせることにより，接続された周辺機器に対して，情報処理装置のシステム内においてユニークであり不変な識別番号を生成する識別番号生成機能とを実現させる。
【発明の効果】
【００１８】
本発明によると，シリアル番号を持たない周辺機器が接続された場合でも，周辺機器に対しシリアル番号として代用可能な識別番号，つまり常に一意で不変な識別番号が生成されるため，周辺機器を常に一意に識別することができる。また，これを実現するために周辺機器自体に特別な機構を持たせる必要もないため，既存の多くの周辺機器にも適用できる。
【発明を実施するための形態】
【００１９】
以下では図面を参照し，本発明に係る実施例を説明する。なお，各図面において共通する要素には同じ番号を付し，説明は繰り返さない。
＜実施例＞
[システム全体図]
【００２０】
図１は本実施例に係るシステム全体図である。ＰＣ１０１とデバイスサーバ１０３はネットワークを介して通信可能であり，デバイスサーバ１０３には，ＵＳＢデバイスＡ１０５およびＵＳＢデバイスＢ１０７が接続されている。
[ブロック図]
【００２１】
図２は本実施例に係るデバイスサーバ１０３のハードウェアおよびソフトウェア機能ブロック図である。
【００２２】
図２を参照して，デバイスサーバ１０３は，それぞれがバスで接続されたＣＰＵ２０１，ＲＯＭ２０３，ＲＡＭ２０５，ネットワークＩ／Ｆ（インタフェース）２０７，ＵＳＢホストコントローラ２０９およびこれに接続されるＵＳＢＩ／Ｆ２１１を備え，ＣＰＵ２０１は，ＲＯＭ２０３に格納されているプログラムをＲＡＭ２０５に展開して実行し，ネットワークＩ／Ｆ２０７は，ネットワーク越しにＰＣ１０１と通信し，ＵＳＢホストコントローラ２０９はＵＳＢＩ／Ｆ２１１を経由して接続されているＵＳＢデバイスと通信を行う。
なお，ＣＰＵ２０１は前述したプログラムを実行することにより，以下の各手段を実現する。
【００２３】
ＵＳＢポート番号取得手段２１３は，ＵＳＢデバイスが接続されたＵＳＢＩ／Ｆ（ポート）２１１に割り当ててられているポート番号を取得するものである。ＵＳＢポート番号とは，ＵＳＢの物理Ｉ／Ｆ毎に割り当てられる固定的な番号であり，デバイスサーバ１０３もしくはＵＳＢデバイス自体を再起動（電源ＯＦＦ−ＯＮ）しても割当が不変なものである（詳細は後述）。
ＭＡＣアドレス取得手段２１５は，デバイスサーバ１０３自身のＭＡＣアドレスを取得するものである。
【００２４】
シリアル番号生成手段２１７は，取得されたＵＳＢポート番号およびＭＡＣアドレスに基づいてユニークな番号であるシリアル番号を生成するものである。この詳細については後述する。
【００２５】
シリアル番号保存手段２１９は，生成されたシリアル番号をＲＡＭ２０５に保存するものである。
ＵＳＢデバイス走査手段２２１は，ＵＳＢＩ／Ｆ２１１に接続された全てのＵＳＢデバイスに対し，上記した手段を実行するため，対象ＵＳＢデバイスを順次選択するものである。
[システム全体フロー]
【００２６】
図３は本実施例に係るシステム全体のフローチャートである。
ステップ３０１にて，デバイスサーバ１０３に任意の数のＵＳＢデバイスが接続される。
ステップ３０３にて，デバイスサーバ１０３は，シリアル番号を持たないＵＳＢデバイスに対するシリアル番号を生成し割り当てる。この処理の詳細については後述する。
【００２７】
ステップ３０５にて，デバイスサーバ１０３は，接続された全てのＵＳＢデバイスについて，チェックが完了したかどうかを判定し，完了していないと判定した場合，処理がステップ３０３に戻る。
ステップ３０７にて，ＰＣ１０１よりＵＳＢデバイスへの接続要求がなされる。
【００２８】
ステップ３０９にて，デバイスサーバ１０３は，当該接続要求に対し，デバイス情報を応答する。このデバイス情報には，ステップ３０３で生成したシリアル番号が含まれる。
ステップ３１１にて，ＰＣ１０１は，受信したデバイス情報を元に，デバイスのインストールを行う。この処理は，一般にはプラグアンドプレイと呼ばれているものである。
【００２９】
ステップ３１３にて，ＰＣ１０１は，受信したデバイス情報に含まれるシリアル番号を指定することによりＵＳＢデバイスを特定して通信を開始する。
ステップ３１５にて，デバイスサーバ１０３は，受信したＰＣ１０１からの通信を，指定されたＵＳＢデバイスに転送する。
[シリアル番号割当フロー]
【００３０】
図４は，図３のステップ３０３にて行われる処理の詳細である。
ステップ４０１にて，選択対象のＵＳＢデバイスがシリアル番号を持っているかどうかが判定される。持っていると判定されれば，処理がステップ４１１に進み，そうでなければステップ４０３に進む。
【００３１】
ステップ４０３にて，前ステップでシリアル番号を持っていないと判定されたＵＳＢデバイスが接続されているＵＳＢＩ／Ｆ２１１のＵＳＢポート番号が取得される。
ステップ４０５にて，デバイスサーバ１０３自身のＭＡＣアドレスが取得される。
ステップ４０７にて，取得されたＵＳＢポート番号およびＭＡＣアドレスを元にシリアル番号が生成される（詳細は後述）。
ステップ４０９にて，生成されたシリアル番号がＲＡＭ２０５に保存される。
ステップ４１１にて，選択対象のＵＳＢデバイスが次に進められる。
[生成されるシリアル番号の詳細な例]
【００３２】
図５は，図４のステップ４０７での処理の詳細例である。
図を参照して，デバイスサーバ１０３によって生成されるシリアル番号は，デバイスサーバ１０３自身のＭＡＣアドレスにＵＳＢデバイスの接続されているインタフェースのＵＳＢポート番号が付加されたものである。
【００３３】
ＭＡＣアドレスは，通常，全てのネットワーク機器が持つユニークかつ不変な番号であり，一方，ＵＳＢポート番号は，既に述べた通り，ＵＳＢデバイスの接続トポロジにおいて，各ＵＳＢデバイスに対する，常に固定的でユニークな番号であるので，これらを組み合わせる番号も常に固定的でユニークな番号となる。
ここでＵＳＢポート番号について説明する。
【００３４】
図６はＵＳＢ接続トポロジの例である。このトポロジにおいて，ＲｏｏｔＨＵＢ６０１を含む各ＨＵＢ（６０３および６０９）は，それぞれのＵＳＢポート毎にポート番号を持っており，ＵＳＢデバイスが接続されると，そのデバイスに対して，Ｒｏｏｔから当該ＵＳＢデバイスが接続されているＨＵＢのポートまでの経路におけるポート番号を組み合わせた番号がＵＳＢポート番号として割り当てられる。例えば，ＵＳＢデバイス６０５のポート番号は１１であり，ＵＳＢデバイス６１１のポート番号は１３２となる。
【００３５】
つまり，ＭＡＣアドレスおよびＵＳＢポート番号を組み合わせることによって生成される本発明のシリアル番号は，ＵＳＢデバイスにて使用されるシリアル番号の機能を果たすには十分なものであり，ＰＣ１０１のアプリケーションなどは，この番号を指定することにより，任意のＵＳＢデバイスに対して通信をすることができる。
＜他の実施例＞
【００３６】
先の実施例では，デバイスサーバを用いたＵＳＢデバイス利用システムを示したが，本発明は，ローカルのＰＣに接続されたＵＳＢデバイスを識別するために用いることも可能である。
【００３７】
この場合，例えば，本発明に係る機能をプログラムとしてＵＳＢのバスドライバ等に組み込むことにより実現できる。この場合，ＵＳＢポート番号に組み合わせるユニークな情報として，ＰＣのＭＡＣアドレスだけでなくオペレーティングシステムのプロダクトＩＤなどを利用することができる。
これまで説明したとおり，本発明により生成されるシリアル番号は，ＭＡＣアドレスやプロダクトＩＤといったユニークな情報を使用する。
【００３８】
なお，ユニークな情報とは，ＵＳＢデバイスの使用される環境内（システム内）においてユニークな情報であればどのような情報を組み合わせることも可能であることを意味する。
例えば，デバイスサーバのシステムであれば，図１に示す環境のことである。この環境の場合，シリアル番号の要件としては，ＰＣ１０１にとって識別可能であれば足り，他のＰＣが追加された場合であっても，システム内に存在する全てのＰＣにとってユニークかつ不変な識別可能な番号であれば，ＭＡＣアドレスでなくとも，単純に「００１」などの番号を用いることが可能である。
【００３９】
つまり，ＵＳＢデバイスが使用される他のシステムにおいて同じユニークな情報が使用されても問題ない。これは，それぞれのシステム同士は独立したものであり，当該ユニークな情報は，それぞれの環境内で使用される限り，情報の独立性が損なわれないからである。
【図面の簡単な説明】
【００４０】
【図１】システム全体図
【図２】デバイスサーバのブロック図
【図３】システム全体のフロー
【図４】シリアル番号付与のフロー
【図５】シリアル番号生成の詳細例
【図６】ＵＳＢポート番号の例
【符号の説明】
【００４１】
１０３  デバイスサーバ
２１１  ＵＳＢＩ／Ｆ
２１３  ＵＳＢポート番号取得手段
２１５  ＭＡＣアドレス取得手段
２１７  シリアル番号生成手段
【図１】
2011014036.tif 000003
【図２】
2011014036.tif 000004
【図３】
2011014036.tif 000005
【図４】
2011014036.tif 000006
【図５】
2011014036.tif 000007
【図６】
2011014036.tif 000008