(57)【要約】【課題】従来のUSBデバイスサーバーを用いたシステムでは、USBデバイスサーバーにUSB接続されたスキャナーでのスキャンボタン押下をトリガとして端末が当該スキャナーとの接続を確立しスキャン終了時に解除していたが、これではスキャニングの都度接続とその解除とが繰り返され、また接続先の端末をあらかじめ確定できない。【解決手段】端末においてスキャニングアプリケーション実行し、それによってUSBデバイスサーバーのデバイスを探索し、使用可能なデバイスがあればそれに接続する。デバイスはあるが使用中であれば、その接続を強制的に解除してから接続し、そのデバイスを使用する。デバイスとの接続が解除されたら、強制的に解除された端末にデバイスを再度接続する。【選択図】図１３
2015191320.tif 000002
【特許請求の範囲】
【請求項１】
ローカルなインターフェースで接続されたデバイスの利用をネットワークに対して提供するデバイスサーバーとネットワークで接続され、前記デバイスに対する前記インターフェースを前記ネットワークでトンネリングする仮想インターフェースを有する情報処理装置であって、
前記仮想インターフェースを介して、前記デバイスサーバーに接続されたデバイスを探索する探索手段と、
前記探索手段により所望のデバイスを見つけた場合に、該デバイスが既に他の情報処理装置と接続されているか判定する判定手段と、
既に接続されている場合には、前記デバイスサーバーに対して前記接続の切断指示を送信する切断指示手段と、
前記探索手段により見つけた所望のデバイスとの接続を確立する接続手段と、
前記デバイスサーバーにより前記デバイスとの接続を切断された場合に、当該デバイスと他の情報処理装置との接続の解除を監視し、解除されたなら該デバイスとの接続を再度確立する再接続手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記デバイスサーバーにより前記デバイスとの接続を切断された場合に、前記デバイスサーバーから、強制切断を行った旨の通知を受信し、強制切断を行った旨のメッセージを出力する手段を更に有することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記デバイスサーバーにより前記デバイスとの接続を切断された場合に、当該デバイスと他の情報処理装置との接続の解除を監視し、解除されたなら解除された旨のメッセージを出力する手段を更に有することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記判定手段により前記デバイスが既に他の情報処理と接続されていると判定された場合には、前記デバイスが使用中であることを示すダイアログを表示し、該ダイアログに対して強制接続を行うか否かの指示を受け付ける表示手段を更に有し、
前記切断指示手段は、前記表示手段により強制接続を行う指示を受け付けると、前記接続の切断指示を送信することを特徴とする請求項１乃至３のいずれか一項に記載の情報処理装置。
【請求項５】
前記デバイスはスキャナーであり、前記インターフェースはユニバーサルシリアルバス（USB）であることを特徴とする請求項１乃至４のいずれか一項に記載の情報処理装置。
【請求項６】
前記切断指示手段に応じた接続の切断は、前記スキャナーによる読み取りが行われていないときに行われることを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記接続手段により接続が確立された後に、前記スキャナーによる画像の読み取りを行うことを特徴とする請求項５または６に記載の情報処理装置。
【請求項８】
請求項１乃至７のいずれか一項に記載の情報処理装置と、
前記情報処理装置とネットワークで接続された、ローカルなインターフェースで接続されたデバイスの利用を前記ネットワークに対して提供するデバイスサーバーと、
前記デバイスサーバーに前記インターフェースで接続されたデバイスと
を有することを特徴とするデバイス共有システム。
【請求項９】
請求項１乃至７のいずれか一項に記載の情報処理装置としてコンピューターを機能させるためのプログラム。
【請求項１０】
ローカルなインターフェースで接続されたデバイスの利用をネットワークに対して提供するデバイスサーバーとネットワークで接続され、前記デバイスに対する前記インターフェースを前記ネットワークでトンネリングする仮想インターフェースを有する情報処理装置におけるデバイス接続方法であって、
前記仮想インターフェースを介して、前記デバイスサーバーに接続されたデバイスを探索する探索工程と、
前記探索工程により所望のデバイスを見つけた場合に、該デバイスが既に他の情報処理装置と接続されているか判定する判定工程と、
既に接続されている場合には、前記デバイスサーバーに対して前記接続の切断指示を送信する切断指示工程と、
前記探索工程により見つけた所望のデバイスとの接続を確立する接続工程と、
前記デバイスサーバーにより前記デバイスとの接続を切断された場合に、当該デバイスと他の情報処理装置との接続の解除を監視し、解除されたなら該デバイスとの接続を再度確立する再接続工程と、
を有することを特徴とするデバイス接続方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、デバイス共有システムおよびデバイス接続方法に関し、特にスキャナーをネットワーク接続する際の自動接続プログラムに関する。
【背景技術】
【０００２】
USBデバイスをネットワーク環境下で共有するために、USBデバイスとは独立した装置であるUSBデバイスサーバーが用いられる。このUSBデバイスサーバーが用いられることにより、コンピューターに仮想USBポートドライバーをインストールしておけば、コンピューターとUSBデバイスサーバーとの間でカプセル化／カプセル化解除、すなわちトンネリングを行うことで、既存のUSBデバイスのドライバーで、USBデバイスをネットワーク環境下で共有することが可能となる(特許文献１)。
【０００３】
USBデバイスサーバーと同じネットワークに接続された各コンピューター（PC）では、このUSBデバイスサーバーに接続されたUSBデバイスを、自ら備えるローカルなUSBインターフェースに接続されているUSBデバイスと同様に利用できる。  特許文献１によれば、USBデバイスサーバーに接続されたUSBデバイスをユーザーがネットワーク上のPCから利用する場合、まず、USBデバイスサーバーに付属のアプリケーションをユーザーが操作して、USBデバイスサーバーとPC間の接続を確立する必要がある。より具体的には、前述したアプリケーションの画面に表示されたネットワーク上に存在するUSBデバイスサーバーとこれに接続されているUSBデバイスの一覧から所望の機器を手動で選択し、アプリケーションの画面上の接続ボタンを押下することにより接続を確立する。USBデバイスごとにこの接続のプロセスが必要になる。一方、USBデバイス使用後は切断作業が必要になり、この切断作業を行わない限り、当該USBデバイスは他PCから利用できない。
【０００４】
このような接続／切断操作を省くべく、USBデバイスサーバーにUSBスキャナーを接続した場合において、 ユーザーがスキャンを実行した際、自動的にUSBスキャナーとPCを接続し、スキャンが完了すると切断する、スキャナーに関する自動接続プログラムに関する提案がなされている（特許文献２）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−２８７４５３号公報
【特許文献２】特開２００８−１９３２１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献２の構成の場合、スキャンが終了した場合は自動で切断されてしまう。このため、たとえば、スキャナー本体のスタートボタンを監視して、スキャナー本体のスタートボタンが押されたらスキャナーを接続してスキャンを開始する自動接続プログラムを常駐させた場合、頻繁に接続と切断が繰り返されるようになり、PCの処理負荷が増える。また、複数のPCすべてに自動接続プログラムがインストールされていた場合には、スキャナー本体のスタートボタンが押された場合に、どのスキャナーがどのPCと接続され、データが送信されるかが分からない状況にあった。
【０００７】
このように、USBデバイスサーバー上のUSBデバイスとの接続／切断を特許文献１のように手動で行うと、USBデバイスを使用する都度接続および切断を行わねばならず、切断を怠ると他のPCから当該USBデバイスを利用できないという問題がある。
【０００８】
またその問題、特にUSBデバイスがスキャナーである場合の問題を解消すべく、特許文献２のようにスキャナーとの接続および切断を自動で行う構成としたとしても、切断及び接続による処理負荷の増大や、複数のPC（すなわち端末）での利用時に接続先を特定できないという問題があった。
【０００９】
本発明は、上記した課題に鑑みたものであり、複数の端末にてUSBデバイスサーバーに接続されたデバイスを共有する際のユーザーの利便性を向上するシステムを提供する。
【課題を解決するための手段】
【００１０】
上記課題を解決するために本発明は、以下に示す構成を有する。
【００１１】
ローカルなインターフェースで接続されたデバイスの利用をネットワークに対して提供するデバイスサーバーとネットワークで接続され、前記デバイスに対する前記インターフェースを前記ネットワークでトンネリングする仮想インターフェースを有する情報処理装置であって、
前記仮想インターフェースを介して、前記デバイスサーバーに接続されたデバイスを探索する探索手段と、
前記探索手段により所望のデバイスを見つけた場合に、該デバイスが既に他の情報処理装置と接続されているか判定する判定手段と、
既に接続されている場合には、前記デバイスサーバーに対して前記接続の切断指示を送信する切断指示手段と、
前記探索手段により見つけた所望のデバイスとの接続を確立する接続手段と、
前記デバイスサーバーにより前記デバイスとの接続を切断された場合に、当該デバイスと他の情報処理装置との接続の解除を監視し、解除されたなら該デバイスとの接続を再度確立する再接続手段とを有することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、複数の端末にてUSBデバイスサーバーに接続されたデバイスを使用する際のユーザーの利便性の向上やシステムの負荷の軽減、生産性の向上といった効果がある。
【図面の簡単な説明】
【００１３】
【図１】システム概略図
【図２】USBデバイスサーバーシステムを使用しない場合におけるPC内部の機能ブロック図
【図３】従来のUSBデバイスサーバーシステムにおけるＰＣ内部の機能ブロック図
【図４】本発明におけるＰＣ内部の機能ブロック図
【図５】第１の実施形態における接続手順を示したフローチャート
【図６】第１の実施形態における切断手順を示したフローチャート
【図７】選択ダイアログを示す図
【図８】第１の実施形態における接続手順を示したフローチャート
【図９】第１の実施形態における切断手順を示したフローチャート
【図１０】確認ダイアログを示す図
【図１１】第２の実施形態における処理を示したフローチャート
【図１２】確認ダイアログを示す図
【図１３】切断ダイアログを示す図
【図１４】第３の実施形態における処理を示したフローチャート
【図１５】第３の実施形態における処理を示したフローチャート
【図１６】要求ダイアログを示す図
【図１７】接続申請要求ダイアログを示す図
【発明を実施するための形態】
【００１４】
［実施形態１］
＜USBデバイスサーバーシステム＞
以下、本発明の実施形態について、説明する。まず、USB（ユニバーサルシリアルバス）デバイスサーバー103のシステム（以下、USBデバイスサーバーシステム或いはデバイス共有システムと呼ぶ）を、図１のシステム概略図を用いて説明する。かかるシステムは、PC(101a,101b,101c)と、USBデバイスサーバー103と、USBデバイスサーバー103に接続されたUSBデバイス104から構成される。PC(101a,101b,101c)とUSBデバイスサーバー103の間はLANなどのネットワーク102によって接続され、USBデバイスサーバー103とUSBデバイス104との間はUSBケーブルによって接続されている。なお、USBデバイスサーバー103に接続されてネットワークで共有されるUSBデバイスを本実施形態では共有USBデバイスと呼ぶことにする。
【００１５】
次に、USBデータの送受信のプロセスについて説明する。PC(101a,101b,101c)からUSBデバイス104へデータを送信する場合、PC(101a,101b,101c)は、アプリケーションから発行されるUSBデバイス104へのコマンドやデータをTCP/IP等のネットワークプロトコル内部にカプセル化し、USBデバイスサーバー103に向けて送信する。このカプセル化処理は、PCに予め組み込んである不図示の仮想USBポートドライバーにより行われる。USBデバイスサーバー103は、これを受信すると、カプセル化を解除し、コマンドやデータを抽出し、かかるコマンドやデータをUSBデバイス104へ与える。このようにしてUSBデバイスサーバーのシステムは、PC(101a,101b,101c)からネットワーク102を経由したUSBデバイス104のリモートコントロールを可能としている。逆にPC(101a,101b,101c)が、USBデバイス104からデータを受信する場合は、前述した送信プロセスとは逆の方向でカプセル化とカプセル化解除とが行われて動作している。
【００１６】
図2にUSBデバイスサーバーシステムを使用しない場合におけるPC101内部の機能ブロック図を示す。図2では、USBデバイス104としてUSBスキャナー105が接続されている。図2に限らず、本実施形態では、USBデバイスとしてUSBスキャナーを用いた例を説明する。図2において、スキャニングアプリケーションは、画像取り込みに使用するソフトウェアを示している。具体的にはイメージ処理を行うアプリケーションの場合が多い。スキャナードライバーには、一般的にISIS、TWAIN、WIA、ICA、SANE等が用いられ、各スキャナーベンダーからスキャナー毎に提供される。USBポートドライバーは、OSと共に提供され、スキャナードライバーから送られたコマンドをUSBインターフェースに送信する。スキャナードライバーは、USBインターフェースにて接続されている所望のスキャナーをUSBポートドライバーを介して特定し、USBポートドライバーにポート番号と共に指示をすることで、所望のスキャナーとの接続を確立している。たとえば、PCに複数のUSBポートが存在した場合であっても、ドライバーが所望するスキャナーを探索し、ポート番号を特定する。なお、所望するスキャナーが複数見つかった場合には、ユーザーにどのスキャナーでスキャンをするのかを図7に示すようなダイアログ等の選択手段にて指定してもらうことになる。
【００１７】
図3に、従来のUSBデバイスサーバーシステムにおけるPC内部の機能ブロック図を示す。図2と比較して、PC内に、仮想USBポートドライバーとネットワークインターフェース、さらに、設定アプリケーションが追加されている。ここで、本発明を用いない従来のUSBデバイスサーバーシステムの処理フローについて説明する。仮想USBポートドライバーは、背景技術で記載した通り、スキャナーに対するコマンドをカプセル化し、これをネットワークパケットとしてUSBデバイスサーバーに送信するコンポーネントである。ここでは、スキャナードライバーから得られたスキャナー操作に関するコマンドをネットワークパケットにカプセル化し、ネットワークインターフェースを通じてUSBデバイスサーバーに送信する。一方、USBデバイスサーバーから得られるカプセル化された応答データは、送信とは逆にカプセル化を解除して、スキャナードライバーに送る。また、仮想USBポートドライバーは、上記したカプセル化に関する処理だけでなく、設定アプリケーションからの接続の指示により、PCとUSBデバイスサーバーに接続されたスキャナーとの接続を実行し、このPCに対してスキャナーを仮想的に認識させるような処理も行う。設定アプリケーションは、ネットワーク上に存在するUSBデバイスサーバーおよびこれに接続されているUSBデバイス情報を検索・取得し、これらの全てまたは一部分の一覧を設定アプリケーション画面に表示する。ここでいう情報とは、具体的には、USBデバイスサーバーのIPアドレスを含むネットワーク情報およびUSBデバイスの名称等である。ユーザーは設定アプリケーションに表示されるUSBデバイスサーバーおよびUSBデバイスを手動で選択し、接続を実行することにより、PCからUSBデバイスを使用する。
【００１８】
＜USBデバイスサーバーシステム中のUSBデバイスの接続および切断＞
図4に、本実施形態におけるPCすなわち端末（情報処理装置）の内部の機能ブロック図を示す。図3のPCと比較して、設定アプリケーションが削除されている。ここで、スキャニングアプリケーション401からスキャナー105への接続手順について、図5、図6を用いて説明する。
【００１９】
図5は、スキャニングアプリケーションによる接続手順を示したフローチャートである。スキャニングアプリケーション401が起動されたら(S501)、スキャニングアプリケーション401は、あらかじめユーザーがスキャナードライバー402を選択しているかどうか判断する(S502)。あらかじめスキャナードライバー402を選択していれば、S504へ進む。選択していなければ、図7に示すような選択ダイアログを表示して、使用するスキャナードライバーをユーザーに選択してもらう。次に、スキャニングアプリケーション401は、選択されたスキャナードライバー402をロードする(S504)。ここでスキャナードライバー402は、スキャナードライバー402に割り当てられているスキャナーデバイスをUSBポートに探しに行く(S505)。図4では省略しているが、PC101は図2に示すように、USBポートドライバー及びUSBインターフェース（USBポートとも呼ぶ）を備えていてもよく、S505ではまずUSBポートのスキャナーデバイスを探索する。具体的には、USBポートドライバー403に接続されているスキャナーデバイスの名称を取得し、スキャナードライバー402の所望する名称かどうかを比較する。なおスキャナードライバー402が所望する名称とは、例えば機種ごとに付与された名称や数字等の記号であり、スキャナードライバー毎に予め決められているものとする。所望する名称であれば(S506-YES)、そのUSBポートに対して接続処理を行う(S507)。なお、USBポートに所望のスキャナーが接続されていないときは、名称が無いか、所望する名称と違う名称を取得できる。
【００２０】
一方、所望の名称を有するUSBスキャナーを発見できない場合には、スキャナードライバー402は、仮想USBポートドライバー403に対し、ネットワーク102上に存在するUSBデバイスサーバー103およびこれに接続されているUSBデバイス105のUSBデバイス情報を検索・取得するよう指示をし(S508)。取得したデバイス名称とスキャナードライバー402の所望する名称かどうかを比較する。所望する名称であれば、仮想USBポートに対して、所望のスキャナーデバイス名称で接続処理を行う(S509)。仮想USBポートは、仮想USBポートドライバー403によって提供されるポートであり、スキャナードライバー402に対してはUSBポートとしてふるまう。なお、このとき、ネットワーク102上に存在するUSBデバイスサーバー103およびこれに接続されているUSBデバイス104（具体的にはスキャナー105）が複数存在したときは、ユーザーにどのスキャナーでスキャンをするのかを、図7と同様なダイアログ等の選択手段にて指定してもらってもよい。
【００２１】
スキャナードライバー402は、USBポートあるいは仮想USBポートが、所望のスキャナーデバイスと接続完了となったら、接続されたスキャナーデバイスに対してコマンドを送信することができる。
【００２２】
図6は、切断手順を示したフローチャートである。次に、ユーザーによるスキャン操作が終了し、ユーザーによって、スキャニングアプリケーション401の終了の指示が入力されたとき(S601)、スキャニングアプリケーション401は、ロードしているスキャナードライバー402を解放する。ここで、スキャナードライバー402がUSBポートドライバーに対して接続を行っていた場合は、USBポートドライバーに対し、切断処理を行う(S603)。
【００２３】
一方スキャナードライバー402が仮想USBポートドライバー403に対して接続を行っていた場合は、仮想USBポートドライバー403に対し、切断処理を行う(S604)。この後、スキャニングアプリケーション401は終了する。
【００２４】
以上の手順により、スキャニングアプリケーション401の起動をトリガとしてPC101を、PC101とネットワークで接続されたUSBデバイスサーバー103にインストールされたUSBスキャナー105と接続し、スキャニングアプリケーション401の終了をトリガとして、その接続を切断することができる。
【００２５】
本実施形態によれば、端末におけるアプリケーションの開始をトリガとして共有USBスキャナーとの接続を確立するため、スキャナーにおけるスキャン操作の都度接続と切断とを行う必要がなく、処理負荷の軽減を実現できる。さらにスキャン実行の前にスキャナーと接続された端末が決定されているために、スキャン時に読み取った画像データの送信先を確定することができる。
【００２６】
［実施形態２］
次に、スキャンニングアプリケーション401が、PC101上に常駐しており、常にスキャナー本体のスキャンボタンを監視し、ユーザーがスキャナー本体のスキャンボタンを押下することでスキャンを開始するような構成におけるスキャナーへの接続手順について、図8、図9を用いて説明する。なおUSBデバイスサーバーシステムの構成は実施形態１と同様である。
【００２７】
図8は、接続手順を示したフローチャートである。スキャニングアプリケーション401が起動されたら(S801)、スキャニングアプリケーション401は、あらかじめユーザーがスキャナードライバー402を選択しているかどうか判断する(S802)。あらかじめスキャナードライバー402を選択していれば、S804へ進む。選択していなければ、図7に示すような選択ダイアログを表示して、使用するスキャナードライバー402をユーザーに選択してもらう。次に、スキャニングアプリケーション401は、選択されたスキャナードライバー402をロードする(S804)。ここでスキャナードライバー402は、スキャナードライバー402に割り当てられているスキャナーデバイスをUSBポートに探しに行く(S805)。具体的には、USBポートドライバーに接続されているスキャナーデバイスの名称を取得し、スキャナードライバーの所望する名称かどうかを比較し、所望する名称であれば(S806-Yes)、そのUSBポートに対して接続処理を行う(S807)。なお、USBポートに所望のスキャナーが接続されていないときは、名称が無いか、所望する名称と違う名称を取得できる。
【００２８】
次に、USBポートに接続したスキャナードライバー402は、接続確立した旨をスキャニングアプリケーション401に通知し、スキャンニングアプリケーション401は、一定間隔で、スキャナー405本体のスキャンボタンを監視する。このとき、ユーザーがスキャナー105本体のスキャンボタンを押下すれば、すぐにスキャンが開始できるよう、スキャニングアプリケーションは、常に実行中であり、PCのOS上に常駐している。なお、常駐あるいはスキャンをしているときのスキャニングアプリケーション401は、アプリケーションの画面を表示していても良いし、非表示状態でもよい。
【００２９】
なお、スキャニングアプリケーション401がスキャナー105本体のスキャンボタンを監視しているとき、PC上の他のアプリケーションが起動され（例えば、手動でスキャニングアプリケーション401を起動）、同一スキャナーを使用することになった場合は、本スキャニングアプリケーション401はそれがロードしたスキャニングドライバー402をアンロードし、他のアプリケーションの使用が終わるまで待って、スキャナードライバー402を再ロードする仕組みになっている。
【００３０】
一方、所望の名称を有するUSBスキャナーを発見できない場合には、スキャナードライバー402は、仮想USBポートドライバー403に対し、ネットワーク102上に存在するUSBデバイスサーバー103およびこれに接続されているUSBデバイス104のUSBデバイス情報を検索・取得するよう指示をする(S808)。そして取得したデバイス名称とスキャナードライバー402の所望する名称かどうかを比較し、所望する名称であれば、図10のような確認ダイアログをだし、ネットワーク102上に所望のスキャナーが見つかったことを明示し、接続するかどうかの判断をユーザーにゆだねる(S810)。S810では、ユーザーが接続するか否かを指定するためのユーザーインターフェースを表示し、ユーザーは接続するか否かをそのユーザーインターフェースで選択する。
【００３１】
ここで、ユーザーが接続を選択した場合は、仮想USBポートに対して、所望のスキャナーデバイス名称で接続処理を行う(S809)。なお、このとき、ネットワーク上に存在するUSBデバイスサーバー103およびこれに接続されているUSBスキャナー105が複数存在したときは、ユーザーにどのスキャナーでスキャンをするのかを図7と同様なダイアログ等の選択手段にて指定してもらってもよい。図8の手順のうち図５と相違するのは、図8ではS810が付加されている、という点である。
【００３２】
図9は、切断手順を示したフローチャートである。ユーザーによるスキャン操作が終了し、ユーザーによって、スキャニングアプリケーション401の終了の指示が入力されたときであっても(S901)、スキャニングアプリケーション401はOSに常駐しているため、完全には終了せず、スキャナー105に対してスキャナー本体ボタンの監視を続ける。よって、常駐のスキャニングアプリケーション401は、スキャンが終了し、スキャニングアプリケーション402の終了が指示されても、仮想USBポートドライバー403に対して切断処理を行わない（S902のNo）。スキャナードライバー402がUSBポートドライバーに対し接続を行っていた場合は、USBポートドライバーに対して切断処理を行う(S903)。この後でも、スキャニングアプリケーション401は終了せず、実行され続けてスキャナーのスキャンボタンを監視する。スキャニングアプリケーション401を終了させるためには、たとえば常駐スキャングアプリケーションの終了などといった特別な指示をスキャングアプリケーション402に与え、それによって終了させることができる。
【００３３】
また、本実施形態の常駐型スキャニングアプリケーションの場合には、自動でスキャナー105との切断処理を行わないが、ユーザーが手動で切断できるようなボタンあるいはメニューを設けておいても良い。そのボタンが押下されると、例えば指定された仮想USBポートに対して図6のS604を実行して、接続を終了させる。
【００３４】
また、仮想USBポートドライバーで接続するスキャナーの探索は、USBポートドライバーで接続できるスキャナーが発見できなかったときに行っても良い。さらに、USBポートドライバーで接続するスキャナーが発見でき、さらに仮想USBポートドライバーで接続するスキャナーも発見できたときは、どちらを接続するかユーザーに選択させても良い。
【００３５】
以上の構成により、端末におけるスキャニングアプリケーションを常駐させることで、実施形態１の効果に加えて、一層処理負荷の軽減を実現できる。
【００３６】
［実施形態3］
次に、第3の実施形態として、自動接続対象のスキャナーが他のPCによって利用中かどうかの状態を監視し、対象のスキャナーが利用可能になるとメッセージにて通知され得ることが可能な実施形態について説明する。
【００３７】
USBデバイスサーバーシステムにおいて、スキャナーは排他的に利用するものである。即ち接続を確立している1台のPCからしかスキャンが行えない。スキャナーを利用したい複数のPCが存在する場合に、既に確立されているPCとスキャナーとの接続が解除された後でなければ、他のPCが当該スキャナーとの間で接続を確立できない。
本実施形態では、スキャニングアプリケーション401から画像取得が指示された際、接続先スキャナーの接続状態を把握するため、仮想USBポートドライバー403が、USBデバイスサーバーに問い合わせを行うようにしている。この結果をもって、PCとスキャナーとの接続を実行するか否かを決定する。以下、図に示すフローチャートを用いて、第2の実施形態における処理の流れを説明する。
【００３８】
図11に示す処理フローチャートは、図8に示される第２の実施形態の接続シーケンスのうち、ステップS810で接続するとの指示が与えられた場合に実行される処理であり、図11の処理後にS809を行う。また図5のS508とS509との間に図11の手順を実行してもよい。即ち、スキャナードライバー402によりスキャナーが発見でき、発見したスキャナーに対して接続処理を行う際の仮想USBポートドライバー403の処理である。
【００３９】
先ず、USBデバイスサーバー103に対し、所望のスキャナーが利用可能かどうかを問い合わせる(S1102)。所望のスキャナーとは、S808あるいはS508で探索したスキャナーであり、複数の場合にはそのうちから選択されたスキャナーである。USBデバイスサーバー103から受信した応答が、利用可能ならば本処理は終了し、図5に示すステップS509あるいは図8に示すS809以降の処理を続ける。一方、他のPCが既に接続しているなど、利用可能でないならば、図12に示すような、利用中の旨を示すメッセージを表示する(S1103)。次に、ステップS1104で、S1103で表示した、接続先スキャナーの接続状態を監視するかどうかのメッセージに対して入力されたユーザーの指示によりこの後の処理を分岐させる。S1104で、入力された指示が監視しないならば本処理は終了し、スキャニングアプリケーションからの操作待ち状態、即ちユーザーからの操作を待つ状態になる。一方監視するなら、ステップS1105に示すように、該当スキャナーの接続状態を、利用可能になるまで繰り返し確認する(S1106)。この結果、利用可能になったことを検出すると、利用可能になった旨を表示させ、本処理は終了する（S1107）。この後は、利用可能となったスキャナーを対象としてステップS509あるいはS809で接続処理を行う。
【００４０】
本実施形態によれば、あるPCがスキャナーから画像取得を試みた際、他のPCが既にこのスキャナーを使用中の場合に、利用者にその旨を通知でき、その指示に従って処理を続行することができる。このためたとえば画像取得を試みたPCのスキャニングアプリケーション401がタイムアウト等の好ましくない処理を実行することを防ぐことができる。
【００４１】
また、他のPCによる利用中の状態を監視し、リソースが利用可能になるとこの旨がメッセージにて通知されるため、ユーザーは何度もタイムアウト等のエラー処理に遭遇したり、手動で接続状態を何度もチェックする必要がない。
【００４２】
本実施形態では、他のPCが既にこのスキャナーを使用中の場合、利用可能になるまで待っているが、その際、使用中のPCに対して、図16のような、他のPCからの接続要求を通知するメッセージを表示させ、切断を促しても良い。この処理は、たとえばUSBデバイスサーバー103が、あるスキャナーに対する接続要求があった際に、当該スキャナーが他のPCと既に接続済みであれば、そのPCのスキャニングアプリケーション401に対して他のPCによる接続要求があったことを通知する。そしてその通知を受けたスキャニングアプリケーション401は、図16のダイアログを表示し、ユーザーによる切断の拒否または受理の指示の入力を待機し、その指示に応じて接続を切断し、あるいはしないことになる。切断する場合には、図6の処理を実行してスキャニングアプリケーション401を終了させてもよい。
【００４３】
［実施形態4］
次に、第4の実施形態として、自動接続対象のスキャナーが他のPCによって利用中かどうかを判定し、対象のスキャナーが他のPCにより利用中であり、利用可能でないと、強制的に利用可能にする実施形態について説明する。実施形態3にて説明したように、USBデバイスサーバーシステムにおいて、スキャナー105は排他的に利用するものである。即ち接続を確立している1台のPCによってしかスキャナーを利用できない。スキャナーを利用したい複数のPCが存在する場合に、既に確立されているPCとスキャナーとの接続が解除された後でなければ、他のPCが当該スキャナーとの間で接続を確立できない。
【００４４】
本実施形態では、スキャニングアプリケーション401から画像取得が指示された際、接続先スキャナー105の接続状態を把握するため、仮想USBポートドライバー403が、USBデバイスサーバー103に接続状態を問い合わせを行うようにしている。この問い合わせに対する応答をもって、PCとスキャナーとの接続を実行するか否かを決定する。以下、図13、図15に示すフローチャートを用いて、本実施形態における処理の流れを説明する。
【００４５】
図13は、スキャナーを利用したいPC（例えば101a）の仮想USBポートドライバー403の処理を示すフローチャートである。本実施形態における接続の処理フローチャートは、図5に示される第1の実施形態の接続シーケンスとステップS509を除いて同じものである。図13に示す処理フローチャートは、図5の手順のうち、ステップS509に代えて実行される処理を示すものである。即ち、スキャナードライバー402が仮想USBポートドライバー403に対して、スキャナー105を発見し、接続処理を行う際の仮想USBポートドライバー403の処理である。
【００４６】
先ず、USBデバイスサーバー103に対し、所望のスキャナーが利用可能かどうかを問い合わせる(S1301)。受信した応答が利用可能を示すならば（S1302のYES）、S1306に進む。S1306では、S509と同様に、所望のスキャナーとの接続処理を行う。一方、他のPCが接続しているなど、利用可能でない場合（S1302のNO）、他のPCがスキャン実行中でなければ、USBデバイスサーバー103に対して、強制的に接続を切り替える旨を指示する（S1303）。スキャン実行中であれば、スキャンの終了をまってステップS1303を実行する。なお、スキャン実行中か否かは、たとえばUSBデバイスサーバー103が、スキャナーと接続済みのPCのスキャニングアプリケーション401に対して問い合わせ、当該他のPCのスキャニングアプリケーション401からの応答で判断することができる。強制的な接続の切り替えは、まず既存の接続を解除し、その後に新たな接続を確立することで行う。切断のためは、たとえば図13の手順を実行指定スキャニングアプリケーション401から、USBデバイスサーバー103に対して、当該スキャナーの現在の接続の強制切断を指示する。スキャンニング中であるか否かの判断は、この強制切断の指示を受けたUSBデバイスサーバー103が行ってもよい。そしてUSBデバイスサーバー103は指示に応じて接続を強制切断し、その旨を、強制切断された接続先のPC（特にスキャニングアプリケーション401）に対して通知する。
【００４７】
新たな接続の確立後、スキャンを実行し（S1304）、スキャン処理を終了すると自動で接続を切断する（S1305）。
【００４８】
図15は、スキャナーに対する接続要求があったときに当該スキャナーと既に接続を確立しているPC（例えば101b）の仮想USBポートドライバー403の処理を示すフローチャートである。先ず、スキャナーを利用中かどうか判定し(S1501)、利用中でないならば（S1501のNO）処理を終了する。一方、利用中ならば（S1501のYES）、USBデバイスサーバーから強制切断されたかどうか判定する（S1502）。なおステップS1501、S1502の処理ループは、強制切断があったタイミングで図15が開始されることを示すための説明上の便宜であって、例えば強制切断された旨の通知をUSBデバイスサーバー103から受信したことをきっかけとして、図15のS1503から処理を実行してもよい。強制切断された場合（S1502のYES）、図14に示すような切断された旨のメッセージを表示する(S1503)。
【００４９】
次に、該当スキャナーの接続状態が利用可能になるまで繰り返し、たとえば定期的に接続状態を確認する(S1504)。利用可能かどうか判定し（S1505）、利用可能になったことを検出すると（S1505のYES）、利用可能になった旨を表示させ(S1506)、本処理は終了する。利用可能な状態とは、強制切断されたスキャナーに他のPCが接続していない状態である。このため、図13のステップS1303における強制切断の直後であり、かつ他のPCによる接続前の間には、当該スキャナーは一時的に利用可能となる。このときにステップS1504、S1505で利用可能と判定してしまう可能性を排除するために、ステップS1303において発行する強制切断した旨のメッセージの通知を、ステップS1303の強制接続が完了した後に送信するように構成すればよい。
【００５０】
本実施形態によれば、あるPC（例えば101a）がスキャナー105による画像取得を試みた際、他のPC（例えば101b）が既にこのスキャナーを使用中の場合でも、その使用終了を待つことなく、直ちにスキャニング処理を実行することができる。たとえば、画像取得を試みたPCのスキャニングアプリケーションがタイムアウト等の好ましくない処理を実行することを防ぐことができる。また、他のPCによって強制的に切断されても、手動で接続の試みを何度も行う必要がなく、ユーザーの利便性を向上することができる。また、同じ理由からシステムの負荷が軽減される。また、強制接続を行うことで、生産性を向上させることができる。
【００５１】
例えば、通常はPCにスキャンした画像を保存しているが、一時的にモバイル端末に画像を保存したい場合がある。このような場合でも、モバイル端末を利用後に、手動でPCと再接続させる必要がない。
【００５２】
なお、図15のステップS1506ではメッセージの表示にとどまっているが、ここで再接続を行ってもよい。また、S1506で表示するダイアログに、再接続を行うか否かの指示の入力ボタンを設け、再接続指示に応じて再接続を行うよう構成してもよい。
【００５３】
なお、本実施形態では、強制的に切断されたPCはメッセージを表示したが、スキャナーを使用するアプリケーションが常駐アプリケーション等、実行中に接続が切れることを前提としたアプリケーションでは、メッセージを表示しなくても良い。また、図13、図15に示す仮想USBポートドライバーの処理は、USBデバイスサーバーが行う構成でもよい。また、強制的に切断し再接続するデバイスはモバイルデバイス、プリンタ、ハードディスク、DVDドライブ、スピーカー、ICカードリーダ、カメラ等、PCに限らない。
【００５４】
また、S1302で利用可能でないと判定された場合には、利用可能ではないことをユーザーに提示し、強制接続を行うかどうかの指示をユーザに入力させるためのダイアログを表示してもよい。その場合には、強制接続の指示があった場合にS1303を実行し、そうでなければ利用可能となるまで監視を繰り返すか、あるいは処理を終了してもよい。
【００５５】
また、スキャナーを使用する際に、ユーザーにモード（例えば、専用モード、通常モード等）を選択させ、許可しなければ他のPCにスキャナーを使用させない構成とすることも可能である。例えば、通常モードとは、上述したように、スキャン処理を終了すると自動で接続を切断するモードである。専用モードとは、スキャン処理を終了しても接続を切断せず、他のPCからの接続申請を許可しなければ、他のPCにスキャナーを使用させないためにするモードである。具体的には、あるPCが専用モードを選択してスキャナーを使用（接続）していた場合、他のPCからUSBデバイスサーバーに対し、所望のスキャナーが利用可能かどうかを問い合わせた際、他のPCに図17のようなメッセージを表示させ、接続申請を促す。そして、接続申請を要求したら、専用モードを選択しているPCには、図16のようなメッセージを表示させ、接続申請を許可するか否かを判断させる。モードを選択させることにより、よりユーザーの利便性が向上する。
【００５６】
またスキャナに限らず、USBインターフェースで接続されるデバイスに対して、本実施形態の発明を適用可能である。
【００５７】
［その他の実施例］
なお上記実施形態ではＵＳＢデバイスを例として説明したが、ＵＳＢ以外のローカルインターフェースで接続されたデバイスについても適用できる。この場合ＵＳＢデバイスサーバーに代えて、そのデバイスをネットワークで共有するためのデバイスサーバーを用いる。そのためにはたとえば、端末側に本実施形態と同様に、ローカルインターフェースのデータをトンネリングするための仕組み（仮想インターフェース）を設け、その仮想インターフェースを介してデバイスサーバーに接続されたデバイスと通信することになる。
【００５８】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2015191320.tif 000003
【図２】
2015191320.tif 000004
【図３】
2015191320.tif 000005
【図４】
2015191320.tif 000006
【図５】
2015191320.tif 000007
【図６】
2015191320.tif 000008
【図７】
2015191320.tif 000009
【図８】
2015191320.tif 000010
【図９】
2015191320.tif 000011
【図１０】
2015191320.tif 000012
【図１１】
2015191320.tif 000013
【図１２】
2015191320.tif 000014
【図１３】
2015191320.tif 000015
【図１４】
2015191320.tif 000016
【図１５】
2015191320.tif 000017
【図１６】
2015191320.tif 000018
【図１７】
2015191320.tif 000019