(57)【要約】【課題】ユーザがスキャンを実行した際、自動的にＵＳＢスキャナとＰＣを接続し、スキャンが完了すると切断する、スキャナに関する自動接続プログラムを提供する。【解決手段】クライアント端末とスキャナがローカル接続されたＵＳＢデバイスサーバとがネットワークで接続されたシステムにおいて、クライアント端末内で、スキャニングアプリケーションからスキャニングコマンドが発行された際に、ＤＳＭからコマンドを取得する機能と、コマンドの対象が自動接続のスキャナであった場合に、スキャナを管理するＵＳＢデバイスサーバのネットワーク情報およびスキャナを特定可能な情報を設定保持部から読み込む機能と、仮想ＵＳＢポートドライバに対して、ＵＳＢデバイスサーバの情報およびスキャナ情報と共にコマンドを送信する機能と、ＤＳを介して画像取得要求および画像データ取得を行う機能をクライアント端末のコンピュータに実現させる。【選択図】図４
2008193217.tif 000002
【特許請求の範囲】
【請求項１】
１または複数のクライアントＰＣと、スキャナが接続されたＵＳＢデバイスサーバとがネットワークで接続されたシステムにおいて、
自動接続に指定されたスキャナ選択情報を設定保持部に設定保存する機能と、
データソースマネージャ（ＤＳＭ）からスキャン開始コマンドを受け取る機能と、
前記スキャン開始コマンドの処理対象が自動接続に指定されているスキャナであった場合に、前記スキャナが接続されたＵＳＢデバイスサーバのネットワーク情報と前記スキャナを特定可能な情報とを前記設定保持部から読み込む機能と、
読み込んだ前記ＵＳＢデバイスサーバの前記ネットワーク情報および前記スキャナに関する情報を、仮想ＵＳＢポートドライバに対して送信する機能と、
データソース（ＤＳ）より画像取得コマンドを受け取り、これを透過的に前記仮想ＵＳＢポートドライバへ送信する機能と、
を前記クライアントＰＣに実現させることを特徴とするスキャナ自動接続プログラム。
【請求項２】
請求項１記載のスキャナ自動接続プログラムにおいて、
前記ＤＳＭよりクローズコマンドを受け取ると、前記仮想ＵＳＢポートドライバに対し、前記クライアントＰＣと前記スキャナとの切断を指示する要求を送信する機能、
をさらに前記クライアントＰＣに実現させることを特徴とするスキャナ自動接続プログラム。
【請求項３】
請求項１又は２に記載のスキャナ自動接続プログラムにおいて、さらに、
前記自動接続に指定されているスキャナが他のクライアントＰＣによって使用されているか否かを監視する機能と、
当該スキャナが他のクライアントＰＣによって使用中と判断する、または、当該スキャナが他のクライアントＰＣによる使用から解放されたと判断する場合に、メッセージを画面に表示する機能とを、
前記クライアントＰＣに実現させることを特徴とするスキャナ自動接続プログラム。
【請求項４】
請求項１乃至３のいずれか１項に記載のスキャナ自動接続プログラムにおいて、
タイマ機能を備え、
前記ＤＳＭから自動接続に指定されているスキャナに対するスキャン開始コマンドを受け取った際、前記タイマ機能により設定されている所定の時間が経過するまでその後の処理を中断する機能を、
さらに前記クライアントＰＣに実現させることを特徴とするスキャナ自動接続プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スキャナの標準的なインタフェースであるＴＷＡＩＮ(Tool Without An Interesting Name)を利用したリモート・スキャナの自動接続プログラムに関するものである。
【背景技術】
【０００２】
昨今、インターネットの普及に伴い、小規模であってもコンピュータ同士をネットワークで接続し、データの共有やプリンタ等コンピュータ周辺機器の共用が一般的である。また、ＵＳＢ(Universal Serial Bus)規格の実用化に伴い、ＵＳＢケーブルでコンピュータに接続できる手軽さから、数多くのコンピュータ周辺機器(以下、ＵＳＢデバイスと称する)にＵＳＢ端子が実装されている。
【０００３】
しかしながら、本来ＵＳＢデバイスはコンピュータと１対１で接続することを前提に設計されており、ネットワークで共有しようとしてもその具体的手段が見当たらなかった。かかる問題を解決するため、ＵＳＢデバイスとは独立した装置である周辺機器サーバ装置が用いられる。この周辺機器サーバ装置が用いられることにより、場合によっては、あらかじめ接続するＵＳＢデバイスのドライバをコンピュータ（ＰＣ）にインストールしておくことで、多くの種類のＵＳＢデバイスをネットワーク環境下で共有することが可能となる。プリンタだけでなくスキャナやストレージなど様々な種類のＵＳＢデバイスをネットワーク環境下で共有し得る周辺機器サーバ装置として、ＵＳＢデバイスサーバが知られている(非特許文献１)。
【０００４】
特に、スキャナに関しては、専有面積が比較的大きく、常時利用されることが多くないといった理由から、ネットワーク化が強く要望されていた。このような要望に対し、上記したＵＳＢデバイスサーバを用いることで、スキャナをネットワーク越しに利用することが可能となり、この結果、スキャナの利便性を大きく向上させることができる。
【０００５】
このようにＵＳＢデバイスサーバは、従来１台のＰＣからしか接続使用できなかったＵＳＢデバイスを、ネットワーク上の任意のＰＣからネットワークを介して共用できるようにするものである。
【０００６】
各ＰＣでは、このＵＳＢデバイスサーバに接続されたＵＳＢデバイスを、自ら備えるローカルインタフェースに接続されているＵＳＢデバイスと同様に利用できる。すなわち、ＵＳＢデバイスサーバに接続されたＵＳＢデバイスのステータスを画面上でモニタしたり、データファイルを送受信したりすることができる。より具体的には、ＵＳＢデバイスサーバに接続されたＵＳＢデバイスであるプリンタやスキャナを、ネットワーク上のＰＣから選択してプリンタ出力やスキャニングデータの取込みを行えることができる。
【０００７】
ここで、ＵＳＢデバイスサーバのシステム(以下、ＵＳＢデバイスサーバシステム)を、図１のシステム概略図を用いて説明する。かかるシステムは、ＰＣ（１０１ａ、１０１ｂ、１０１ｃ）と、ＵＳＢデバイスサーバ１０３と、ＵＳＢデバイスサーバ１０３に接続されたＵＳＢデバイス１０４から構成される。ＰＣ（１０１ａ，１０１ｂ，１０１ｃ）とＵＳＢデバイスサーバ１０３との間はＬＡＮ（ローカルエリアネットワーク）などのネットワーク１０２によって接続され、ＵＳＢデバイスサーバ１０３とＵＳＢデバイス１０４との間はＵＳＢケーブルによって接続されている。
ＵＳＢデバイスサーバ１０３の有するＵＳＢポートの数以上のＵＳＢデバイス１０３を利用する場合、ＵＳＢハブを介してＵＳＢデバイス１０４をＵＳＢデバイスサーバ１０３に接続すればよい。また、複数のＵＳＢデバイスサーバ１０３がネットワーク１０２上に存在し、それぞれにＵＳＢデバイスを接続するようにしても良い。
【０００８】
次に、ＵＳＢデータの送受信のプロセスについて説明する。
ＰＣ（１０１ａ，１０１ｂ，１０１ｃ）からＵＳＢデバイス１０４へデータを送信する場合、ＰＣ（１０１ａ，１０１ｂ，１０１ｃ）は、アプリケーションから発行されるＵＳＢデバイス１０４へのコマンドやデータをＴＣＰ／ＩＰ等のネットワークプロトコル内部にカプセル化し、ＵＳＢデバイスサーバ１０３に向けて送信する。
このカプセル化処理は、ＰＣに予め組み込んである仮想ＵＳＢポートドライバ(図示せず)により行われる。ＵＳＢデバイスサーバ１０３は、これを受信すると、カプセル化を解除し、コマンドやデータを抽出し、かかるコマンドやデータをＵＳＢデバイス１０４へ与える。このようにしてＵＳＢデバイスサーバのシステムは、ＰＣ（１０１ａ，１０１ｂ，１０１ｃ）からネットワーク１０２を経由したＵＳＢデバイス１０４のリモートコントロールを可能としている。逆にＰＣ(１０１ａ，１０１ｂ，１０１ｃ)が、ＵＳＢデバイス１０４からデータを受信する場合は、前述した送信プロセスとは逆の方法で動作している。
【０００９】
次に実際の使用方法について説明する。
ＵＳＢデバイスサーバ１０３に接続されたＵＳＢデバイス１０４をユーザがＰＣから利用する場合、まず、ＵＳＢデバイスサーバ１０３に付属のアプリケーションをユーザが操作して、ＵＳＢデバイスサーバ１０３とＰＣ間の接続を確立する必要がある。
より具体的には、前述したアプリケーションの画面にはネットワーク上に存在するＵＳＢデバイスサーバ１０３とこれに接続されているＵＳＢデバイス１０４の一覧が表示されており、ユーザがこの一覧から所望の機器を手動で選択し、アプリケーション上の接続ボタンを押下することにより接続する。即ち、ＵＳＢデバイス１０４を利用する前に、必ず上記した接続のプロセスが必要になる。
一方、ＵＳＢデバイス１０４使用後は、逆に切断作業が必要になり、この作業を行わない限り、当該ＵＳＢデバイス１０４は他ＰＣから利用できないことになる。
【００１０】
このような操作は、頻繁にＵＳＢデバイス１０４を利用する場合、面倒な作業となり、特に使用頻度の多いプリンタでは利便性を欠いていた。また、このような作業は、コンピュータに不慣れなユーザにとっては敷居の高い作業となっていた。
上述した問題を解決するため、印刷のスプール領域を監視するプログラムをＰＣに組み込んでおき、印刷データがスプールされると、予め指定しておいたＵＳＢデバイス１０４と自動的に接続し、スプール領域が空になると切断する、自動接続・切断技術が公開されている(特許文献１)。
【００１１】
【特許文献１】国際公開公報第２００６０８２７８２号
【非特許文献１】サイレックス・テクノロジー社のＨＰ「ＵＳＢデバイスサーバ」(ＵＲＬアドレス：http://www.silex.jp/japan/products/network/what/index3.html）
【発明の開示】
【発明が解決しようとする課題】
【００１２】
上述した自動接続・切断技術は、ＰＣにおける印刷スプール領域を監視するものであり、プリンタ以外のスキャナなどその他ＵＳＢデバイスには利用できない。また、上述したように、スキャナはネットワーク化が強く要望されている。ＵＳＢデバイスサーバシステムを利用することにより、ネットワーク上での利用が可能になるものの、依然としてＵＳＢデバイスサーバシステム特有の接続・切断作業が必要となる。このような作業は面倒であり、また、コンピュータに不慣れなユーザにとっては敷居の高い作業である。
【００１３】
本発明は、上記した課題に鑑みたものであり、ＵＳＢデバイスサーバシステムにおいて、 ユーザがスキャンを実行した際、自動的にＵＳＢスキャナとＰＣを接続し、スキャンが完了すると切断する、スキャナに関する自動接続プログラムを提供することである。
【課題を解決するための手段】
【００１４】
上記目的を達成するため、本発明のスキャナ自動接続プログラムは、１または複数のクライアントＰＣと、スキャナが接続されたＵＳＢデバイスサーバとがネットワークで接続されたシステムにおいて、
自動接続に指定されたスキャナ選択情報を設定保持部に設定保存する機能と、データソースマネージャ（ＤＳＭ）からスキャン開始コマンドを受け取る機能と、スキャン開始コマンドの処理対象が自動接続に指定されているスキャナであった場合に、スキャナが接続されたＵＳＢデバイスサーバのネットワーク情報とスキャナを特定可能な情報とを設定保持部から読み込む機能と、読み込んだＵＳＢデバイスサーバのネットワーク情報およびスキャナに関する情報を、仮想ＵＳＢポートドライバに対して送信する機能と、データソース（ＤＳ）より画像取得コマンドを受け取り、これを透過的に仮想ＵＳＢポートドライバへ送信する機能と、をクライアントＰＣに実現させるためのものである。
【００１５】
上記した本発明のスキャナ自動接続プログラムにより、ユーザがスキャンを実行した際、自動的にＵＳＢスキャナとクライアントＰＣを接続することが可能となる。
本発明のスキャナ自動接続プログラムは、実質的には後述する仮想データソース（仮想ＤＳ）のことである。
なお、データソース（ＤＳ）より画像取得コマンドを受け取り、これを透過的に仮想ＵＳＢポートドライバへ送信するとは、ＤＳより受け取った画像取得コマンドに対し、特に加工を加えずに、仮想ＵＳＢポートドライバへ送信するという意味である。
【００１６】
また、本発明のスキャナ自動接続プログラムは、上記のプログラムにおいて、好適には、ＤＳＭよりクローズコマンドを受け取ると、仮想ＵＳＢポートドライバに対し、クライアントＰＣとスキャナとの切断を指示する要求を送信する機能をさらにクライアントＰＣに実現させるためのものである。
【００１７】
上記した本発明のスキャナ自動接続プログラムにより、ユーザがスキャンを実行した際、自動的にＵＳＢスキャナとクライアントＰＣを接続し、スキャンが完了すると切断することが可能となる。
【００１８】
また、本発明のスキャナ自動接続プログラムは、上記のプログラムにおいて、好適には、自動接続に指定されているスキャナが他のクライアントＰＣによって使用されているか否かを監視する機能と、スキャナが他のクライアントＰＣによって使用中と判断する、または、当該スキャナが他のクライアントＰＣによる使用から解放されたと判断する場合に、メッセージを画面に表示する機能と、をさらにクライアントＰＣに実現させるためのものである。
【００１９】
自動接続に指定されているスキャナが他のクライアントＰＣによって使用されているか否かを監視する機能と、スキャナが他のクライアントＰＣによって使用中と判断する、または、当該スキャナが他のクライアントＰＣによる使用から解放されたと判断する場合に、メッセージを画面に表示する機能により、ユーザがスキャナ操作のリトライを行う手間を省くことができ、利便性が向上する。
【００２０】
また、本発明のスキャナ自動接続プログラムは、上記のプログラムにおいて、好適には、タイマ機能を備え、ＤＳＭから自動接続に指定されているスキャナに対するスキャン開始コマンドを受け取った際、タイマ機能により設定されている所定の時間が経過するまでその後の処理を中断する機能をさらにクライアントＰＣに実現させるためのものである。
【００２１】
設定されている所定の時間が経過するまでその後の処理を中断するタイマ機能により、ユーザがクライアントＰＣの場所からスキャナの場所まで移動する時間を考慮してスキャニング処理の開始を遅らせることが可能となる。
【発明の効果】
【００２２】
本発明のスキャナ自動接続プログラムによれば、ユーザがスキャンを実行した際、自動的にＵＳＢスキャナとＰＣを接続し、スキャンが完了すると自動的に切断するといったユーザにフレンドリーなスキャナ使用環境を提供できるといった効果がある。
【発明を実施するための最良の形態】
【００２３】
以下、本発明の実施形態について、特にスキャナの標準的なインタフェースであるＴＷＡＩＮ(Tool Without An Interesting Name)を利用したものを例に挙げ、図面を参照しながら詳細に説明していく。以下、ＵＳＢデバイスサーバシステムにおけるスキャナ自動接続プログラムの一実施形態を説明する。
【００２４】
本発明は、スキャナの標準的なインタフェースであるＴＷＡＩＮ(Tool Without An Interesting Name)を利用したプログラムである。先ず、図２にＵＳＢデバイスサーバシステムを使用しない場合におけるＰＣ内部の機能ブロック図を示す。
図２においてスキャニングアプリケーションは、画像取り込みに使用するソフトウェアを示している。具体的にはイメージ処理を行うアプリケーションの場合が多い。また、ＤＳＭ(データソースマネージャ)は、通常ＯＳ(オペレーティングシステム)に予め組み込まれており、スキャニングアプリケーションと後述するＤＳ(データソース)との間に位置し、ＰＣに組み込まれているＤＳの一覧を持つなど、ＤＳを管理するものである。
【００２５】
なお、スキャニングアプリケーションとＤＳＭおよびＤＳＭとＤＳとのインタフェースは、ＴＷＡＩＮを用いている。
ＤＳは、通常各スキャナベンダから提供されるものであり、ＤＳＭを介して得られたＴＷＡＩＮコマンドを各スキャナ独自のコマンドに置き換える。置き換えられたコマンドはＵＳＢインタフェースを介してスキャナに送られる。
【００２６】
図３に、本発明を用いない従来のＵＳＢデバイスサーバシステムにおけるＰＣ内部の機能ブロック図を示す。図２と比較して、ＰＣ内に、ＤＳとネットワークインタフェースの間に位置する仮想ＵＳＢポートドライバおよび設定アプリケーションが追加されている。
【００２７】
また、図１５に本発明を用いない従来のＵＳＢデバイスサーバシステムの処理フローチャートを示す。仮想ＵＳＢポートドライバは、背景技術で記載した通り、スキャナに対するコマンドをカプセル化し、これをネットワークパケットとしてＵＳＢデバイスサーバに送信するコンポーネントである。ここでは、ＤＳから得られたスキャナ操作に関するコマンドをネットワークパケットにカプセル化し、ネットワークインタフェースを通じてＵＳＢデバイスサーバに送信する。
【００２８】
一方、ＵＳＢデバイスサーバから得られるカプセル化された応答データは、送信とは逆にカプセル化を解除して、ＤＳに送る。また、仮想ＵＳＢポートドライバは、上記したカプセル化に関する処理だけでなく、後述する設定アプリケーションからの接続の指示により、ＰＣとＵＳＢデバイスサーバに接続されたスキャナとの接続を実行し、このＰＣに対してスキャナを仮想的に認識させるようプラグアンドプレイ（ＰｎＰ）通知処理も行う。設定アプリケーションは、ネットワーク上に存在するＵＳＢデバイスサーバおよびこれに接続されているＵＳＢデバイス情報を検索・取得し、これらの全てまたは一部分の一覧を設定アプリケーション画面に表示する。ここでいう情報とは、具体的には、ＵＳＢデバイスサーバのＩＰアドレスを含むネットワーク情報およびＵＳＢデバイスの名称等である。ユーザは設定アプリケーションに表示されるＵＳＢデバイスサーバおよびＵＳＢデバイスを手動で選択し、接続を実行することにより、ＰＣからＵＳＢデバイスを使用する。ここでは図示していないが、後述するように、設定アプリケーションが取得したこれらの情報を記憶領域に保存しても良い。なお、同図に示す他のコンポーネントであるＤＳＭやＤＳの動作については後述する実施例にて説明する。
【００２９】
図４に、本発明におけるＰＣ内部の機能ブロック図を示す。図３のＰＣ側と比較して、ＤＳＭと仮想ＵＳＢポートドライバとの間に位置する仮想ＤＳ(データソース)、設定保持部およびコマンドバッファ部が追加されている。ＤＳＭからみた場合、仮想ＤＳは通常のＤＳと同様に認識される。即ち、ＤＳＭにとって仮想ＤＳとＤＳは等価のものであり、ＤＳＭは、これらの差異を意識する必要がない。
【００３０】
設定保持部は、通常ＰＣに備え付けられているハードディスク(ＨＤＤ)等の記憶装置であり、上述したように、設定アプリケーションが取得したデータを保存する領域である。なお、保存されるデータは上述した情報に加え、どのスキャナに対し自動接続するかを示す選択情報が付加されている。コマンドバッファ部については後述する。
【００３１】
設定保持部が持つ情報テーブルの一例を図１２に示す。「ＩＰアドレス」は、ネットワーク上に存在するＵＳＢデバイスサーバのＩＰアドレスである。「ホスト」はＵＳＢデバイスサーバのホスト名である。「デバイス」はＵＳＢデバイスサーバに接続されているＵＳＢデバイスの名称であり、これはＵＳＢデバイスサーバ上において、ＵＳＢデバイスが接続されている物理ポートなどの情報を含むロケーション情報（図示せず）に関連づけられている。「ＤＳ」は、デバイスであるスキャナに対応するＤＳ名である。「自動接続」は、自動接続する際、どのスキャナに接続するかを示す選択情報である。
【００３２】
即ち、図１２の場合、ホスト名Ｓｅｒｖｅｒ２のＵＳＢデバイスサーバに接続されている、Ｓｃａｎｎｅｒ２が自動接続の対象である。この自動接続の選択情報は、通常、設定アプリケーションからユーザ操作により与えられる。また、設定保持部を設けることで、設定アプリケーションを介さずとも、仮想ＤＳが、直接、接続先スキャナ情報を読み込み、取得することができる。コマンドバッファ部は、ＤＳＭから得られるＴＷＡＩＮコマンドを必要に応じて一時保存する領域である。これは、通常ＰＣに備えるＲＡＭ(図示せず)等により実現される。
以下の実施例では、本発明の仮想ＤＳの一実施形態について説明する。
【実施例１】
【００３３】
先ず、本発明である第１の実施形態について説明する。図５は、第１の実施形態における仮想ＤＳの機能ブロック図を示している。
図５において、ＴＷＡＩＮインタフェースはＤＳＭと通信するインタフェースであり、このＤＳＭを通じてスキャニングアプリケーションからのスキャナに対するＴＷＡＩＮコマンドを受け取る。また、コマンド処理部は、ＤＳＭからのＴＷＡＩＮコマンドを監視し予め指定されたコマンドを検出すると、後述する所定の処理を実行する。また、ＤＳインタフェースは、ＴＷＡＩＮインタフェースを介して受け取ったＴＷＡＩＮコマンドをＤＳとやりとりするインタフェースである。そして、仮想ＵＳＢポートドライバ制御部は、仮想ＵＳＢポートドライバと仮想ＤＳとの間のやりとりを制御する。
【００３４】
図６は、ＰＣからスキャナに対し自動接続し、画像取得を行う際のシーケンスを示している。以下、図６に示すシーケンスを用いて、第１の実施形態における処理の流れを説明する。
【００３５】
（１）先ず、ユーザが設定アプリケーションを用いて、自動接続したいスキャナに対応するＤＳを選択する（Ｓ６０１）。
このときの選択画面の一例を図１３に示す。この選択画面では、仮想ＤＳを「ＳＸ  Ｖｉｒｔｕａｌ  ＴＷＡＩＮ」と言う名称で表示しており、仮想ＤＳであるＳＸ  Ｖｉｒｔｕａｌ  ＴＷＡＩＮと自動接続したいスキャナに対応するＤＳであるＴＷＡＩＮ２とが関連づけられている。これにより、図１２に示す設定保持部が持つデータである自動接続カラムの対象スキャナが選択され、仮想ＤＳと選択したＤＳとが関連づけられる。
【００３６】
（２）ユーザがスキャニングアプリケーションのＤＳ選択画面を開くと（Ｓ６０２）、スキャニングアプリケーションからＤＳＭに対し、ＰＣに組み込まれているＤＳのリストが要求される（Ｓ６０３）。ＤＳＭはＤＳリストの要求に対し、管理しているＤＳのリストをスキャニングアプリケーションに応答する（Ｓ６０４）。
【００３７】
（３）ＤＳＭよりＤＳリストを受け取ったスキャニングアプリケーションは、スキャニングアプリケーション上にＤＳのリストを表示する（Ｓ６０５）。このとき、正規のＤＳと共に仮想ＤＳ（ＳＸ  Ｖｉｒｔｕａｌ  ＴＷＡＩＮ）も表示される。図１４にＤＳ選択画面例を示す。ここでは、ユーザは自動接続機能を利用するため、仮想ＤＳである「ＳＸ  Ｖｉｒｔｕａｌ  ＴＷＡＩＮ」を選択する。
【００３８】
（４）ユーザがＤＳのリストから仮想ＤＳを選択し（Ｓ６０６）、スキャニングアプリケーションからスキャンの指示を出すことで（Ｓ６０７）、ＤＳＭに対しＯＰＥＮコマンドが送信される（Ｓ６０８）。Ｓ６０６に示すように、スキャニングアプリケーションから仮想ＤＳをＤＳとして選択することで、スキャニングアプリケーションからのコマンドは全て仮想ＤＳに対して送られることとなる。
ここでＯＰＥＮコマンドとは、ＤＳＭを使用する際、最初に必要となる複数のＴＷＡＩＮコマンド群の総称である。これら一連のコマンド群の処理が完了した後、実際のスキャンデータの通信が可能になる。また、Ｓ６０６に示す仮想ＤＳを選択する処理は、必ずしも毎回必須ではなく、既に選択されている場合は不要としても良い。
【００３９】
（５）アプリケーションからＯＰＥＮコマンドを受け取ったＤＳＭは、このＯＰＥＮコマンドを仮想ＤＳに送る（Ｓ６０９）。仮想ＤＳではコマンド制御部がＤＳＭからのＴＷＡＩＮコマンドを監視しており、特定のコマンドを検出すると、これに従った処理を実行する。ここで、ＤＳＭから受けとったＯＰＥＮコマンドは特定の処理に関連づけられている。
【００４０】
（６）コマンド処理部はこのＯＰＥＮコマンドを受け取ったことに反応し、次の処理を実行する。先ずは、このＯＰＥＮコマンドをコマンドバッファ部に保存（Ｓ６１０）する。（７）次に、設定保持部から自動接続の選択がなされているスキャナに対応するＵＳＢデバイスサーバのＩＰアドレスおよびスキャナ名等、接続に必要な情報を読み込む（Ｓ６１１）。さらに、読み込んだ情報に従って、仮想ＵＳＢポートドライバ制御部を介して、仮想ＵＳＢポートドライバに対し、ＰＣとスキャナとの接続を指示する（Ｓ６１２）。
【００４１】
（８）仮想ＵＳＢポートドライバは、Ｓ６１２により受け取った接続要求指示に応答して、ＵＳＢデバイスサーバに対し接続されているスキャナのディスクリプタ情報を要求する（Ｓ６１３）。
（９）次に、ＵＳＢデバイスサーバよりこれに対する応答を受信すると（Ｓ６１４）、ＯＳに対しスキャナのプラグアンドプレイ（ＰｎＰ）を通知すると同時に、ＰＣとスキャナとの間の接続を確立する（Ｓ６１５）。
【００４２】
（１０）この後、接続が完了した旨を仮想ＤＳの仮想ＵＳＢポートドライバ制御部に対して通知する（Ｓ６１６）。この処理が完了した時点で、ＵＳＢデバイスサーバに接続されたスキャナとＰＣは、ネットワーク越しに接続される事となる。
（１１）接続完了通知を受け取った仮想ＤＳは、これに反応してＳ６１０で保持しておいたＯＰＥＮコマンドをＤＳに対して送信し（Ｓ６４０）、ＤＳよりこれに対する完了応答（Ｓ６４１）を受け取る。次いで、仮想ＤＳは、この完了応答をＤＳＭに返し（Ｓ６１７）、同時にコマンドバッファ部に保存しておいたＯＰＥＮコマンドを消去する（図示せず）。
【００４３】
（１２）ＯＰＥＮコマンドに対する完了応答を受け取ったＤＳＭは、この旨をスキャニングアプリケーションに応答する（Ｓ６１８）。
（１３）スキャニングアプリケーションはＳ６１８を受け取ることにより、ＤＳＭに対するＯＰＥＮ処理が完了したことを認識する。即ち、画像取得コマンドが発行可能な状態になる。
【００４４】
（１４）スキャニングアプリケーションは、画像取得コマンドをＤＳＭに対して発行する（Ｓ６１９）。
（１５）ＤＳＭはこのコマンドを仮想ＤＳに対し送り（Ｓ６２０）、仮想ＤＳではこのコマンドを透過的に（Ｓ６２１）ＤＳに送る（Ｓ６２２）。ここで透過的とは、ＤＳＭより受け取った画像取得コマンドに対し、一切の処理を加えないというのではなく、コマンドの要旨を変えない範囲での処理は含む。
例えば、各ベンダ若しくはスキャナごとに異なるＤＳの動作に合わせ、コマンドの送るタイミング等を変化させるなどである。即ちこの場合、タイミングは変更しても、コマンド自身に加工は加えない。
【００４５】
（１６）ＤＳはステップＳ６２２により画像取得コマンドを受け取ると、これを仮想ＵＳＢポートドライバに送る（Ｓ６２３）。
（１７）仮想ＵＳＢポートドライバは、ステップＳ６２３による画像取得コマンドを、ネットワーク越しに接続されているスキャナに対して送信し（Ｓ６２４）、これに対する応答であるスキャナからの画像データを受信する（Ｓ６２５）。
【００４６】
（１８）仮想ＵＳＢポートドライバは、この画像データをそのままＤＳに対して送り（Ｓ６２６）、ＤＳは受け取った画像データを仮想ＤＳに送る（Ｓ６２７）。
（１９）仮想ＤＳでは、この画像データを透過的（Ｓ６２８）にＤＳＭに送る（Ｓ６２９）。ＤＳＭはこの画像データをスキャニングアプリケーションに送る（Ｓ６３０）。
（２０）画像データを受信したスキャニングアプリケーションは、これを画面上にスキャンデータとして表示する（Ｓ６３１）。
【００４７】
以上が一連の画像取得の流れであるが、実際には、スキャニングアプリケーションが画像取得コマンドを発行してから（Ｓ６１９）、画像データを受け取る（Ｓ６３０）までのシーケンスが繰り返し実行されることで、スキャニングアプリケーションが画像データを得る。
【００４８】
次に、第１の実施形態におけるＰＣからスキャナに対する自動切断シーケンスについて説明する。図７は自動切断処理のシーケンスを示している。
（１）先ず、スキャニングアプリケーションから画像取得指示を出すと、ＴＷＡＩＮ画面が起動するが、自動切断処理では、このＴＷＡＩＮ画面が閉じられることをトリガとして処理が開始する。ＴＷＡＩＮ画面が閉じられたことにより（Ｓ７０１）、スキャニングアプリケーションからはＣＬＯＳＥコマンドがＤＳＭに送られる（Ｓ７０２）。
ここでＣＬＯＳＥコマンドとは、ＯＰＥＮコマンドと同様、クローズ処理に必要な一連のＴＷＡＩＮコマンド群の総称である。
【００４９】
（２）ＤＳＭはこのコマンドを仮想ＤＳに送り（Ｓ７０３）、仮想ＤＳはＤＳＭにＣＬＯＳＥコマンドに対する完了応答をする（Ｓ７０４）。
（３）ＤＳＭはこの完了応答をスキャニングアプリケーションに返し（Ｓ７０５）、この処理を以て、ＣＬＯＳＥコマンドに対する、全てのクローズ処理が完了する。
（４）一方、仮想ＤＳは、Ｓ７０４にてＣＬＯＳＥコマンドに対する応答を返した後、仮想ＵＳＢポートドライバに対し、スキャナとＰＣとの接続を切断するよう要求する（Ｓ７０６）。
（５）この要求を受け取った仮想ＵＳＢポートドライバは、ＯＳに対し該当スキャナが取り外されたことを示すＰｎＰを発行する（Ｓ７０７）。
（６）次いで、ＰＣとスキャナとの接続を切断する（Ｓ７０８）。
（７）この後、切断が完了した旨を仮想ＤＳの仮想ＵＳＢポートドライバ制御部に対して通知する（Ｓ７０９）。
この処理を以て、自動切断処理は完了する。
【００５０】
なお、スキャナとの切断を要求するＳ７０６の処理は、ＤＳＭからのＣＬＯＳＥコマンドの全てに応答した後でなければならないわけでなくこの処理と同時に進めても良い。即ち、ステップＳ７０３とＳ７０４の間に実行しても良い。さらに、この自動切断処理は必ずしも実行される必要はなく、設定アプリケーション等の手段によって、この実行のＯＮ／ＯＦＦを切り換えるようにしても良い。
【００５１】
第１の実施形態によれば、ＵＳＢデバイスサーバシステムにおいて、ユーザがスキャナを利用する際、予めＰＣとスキャナを手動で接続する必要がなくなる。このため、第１の実施形態にかかる発明は、面倒な作業が不要になるだけでなく、ローカルに接続されたスキャナと同様の手順で利用できることから、ネットワークを意識する必要が無くコンピュータに不慣れなユーザにとっても利用しやすいものである。
また、スキャナの使用が終わると自動的にＰＣとスキャナとの接続を切断するので、切断をし忘れた事によるスキャナの占有が発生せず、リソースを有効に共有できる。
【実施例２】
【００５２】
次に、第２の実施形態として、自動接続対象のスキャナが他のＰＣによって利用中かどうかの状態を監視し、対象のスキャナが利用可能になるとメッセージにて通知され得ることが可能な実施形態について説明する。図８は、第２の実施形態における仮想ＤＳの機能ブロック図を示している。
第２の実施形態では、図８に示すように第１の実施形態と比較し、仮想ＤＳにリソース確認部およびメッセージ表示部が追加されている。リソース確認部は、任意のＰＣとスキャナとの接続が確立されているか否かを確認するものである。
【００５３】
ＵＳＢデバイスサーバシステムにおいて、スキャナは排他的に利用するものである。即ち接続を確立している１台のＰＣからしかスキャンが行えない。スキャナを利用したい複数のＰＣが存在する場合に、既に確立されているＰＣとスキャナとの接続が解除された後でなければ、他のＰＣが当該スキャナとの間で接続を確立できない。
第２の実施形態では、スキャニングアプリケーションから画像取得が指示された際、接続先スキャナの接続状態を把握するため、リソース確認部がＵＳＢデバイスサーバに問い合わせを行うようにしている。この結果を以て、ＰＣとスキャナとの接続を実行するか否かを決定する。以下、図９に示すフローチャートを用いて、第２の実施形態における仮想ＤＳの処理の流れを説明する。
【００５４】
図９に示す第２の実施形態における仮想ＤＳの処理フローチャートは、図６に示される第１の実施形態の自動接続シーケンス図のうち、ステップＳ６１１以降における仮想ＤＳの処理を示すものである。即ち、コマンド処理部がＤＭＳからのＯＰＥＮコマンドを受信したことに反応して、設定保持部から接続先情報を読み込んだ後の処理である。
【００５５】
第２の実施形態における仮想ＤＳの処理フローについて以下に説明する。
（１）先ず、リソース確認部が接続先情報を下に、該当のＵＳＢデバイスサーバに対し所望のスキャナが利用可能かどうかを問い合わせる（Ｓ９０１）。
（２）受信した応答の結果（Ｓ９０２）、利用可能ならば本処理は終了し、図６に示すステップＳ６１２以降の処理を続ける。一方、他のＰＣが接続しているなど、利用可能でないならば、リソース確認部はメッセージ表示部に対し、利用中の旨を示すメッセージを表示させる（Ｓ９０３）。
（３）次に、コマンド処理部は、図６に示すステップＳ６１０で保存したＯＰＥＮコマンドに対する応答を返す（Ｓ９０４）。なお、この応答はＯＰＥＮに失敗した旨を含むものである。
（４）メッセージ表示部は、ステップＳ９０５で接続先スキャナの接続状態を監視するかどうかのメッセージを表示し、得られたユーザの判断によりこの後の処理を分岐させる（Ｓ９０５）。監視しないならば、本処理は終了し、スキャニングアプリケーションからの操作待ち状態、即ちユーザからの操作を待つ状態になる。監視するなら、リソース確認部は、ステップＳ９０６，Ｓ９０７に示すように、該当スキャナの接続状態が利用可能になるまで繰り返し確認する。
（５）この結果、利用可能になったことを検出すると、メッセージ表示部に対し利用可能になった旨を表示させ（Ｓ９０８）、本処理は終了する。
【００５６】
第２の実施形態によれば、あるＰＣから画像取得を実行した際、他のＰＣが既にこのスキャナを使用中の場合でも、画像取得を実行したＰＣのスキャニングアプリケーションがタイムアウト等の好ましくない処理を実行することを防ぐことができる。
また、他のＰＣによる利用中の状態を監視し、リソースが利用可能になるとこの旨がメッセージにて通知されるため、ユーザは何度もタイムアウト等のエラー処理に遭遇したり、手動で接続状態を何度もチェックする必要がない。
【実施例３】
【００５７】
次に、第３の実施形態として、スキャン指示が出されてから実際にスキャンが開始されるまでにタイムラグを設けることが可能な実施形態について説明する。図１０は、第３の実施形態における仮想ＤＳの機能ブロック図を示している。
図１０に示すように第３の実施形態では、第１の実施形態と比較し、仮想ＤＳにタイマ部を追加する。以下、図１１に示すフローチャートを用いて、第３の実施形態における仮想ＤＳの処理の流れを説明する。
【００５８】
図１１に示す第３の実施形態における仮想ＤＳの処理フローチャートは、図６に示される第１の実施形態の自動接続シーケンス図におけるステップＳ６２１に相当する部分である。即ち、第３の実施形態における自動接続シーケンス図は、図６のシーケンス図において、ステップＳ６２１の部分が図１１に示されるフローに替わり、その他の部分は図６と同じである。
【００５９】
第３の実施形態における仮想ＤＳの処理フローについて以下に説明する。
（１）先ず、仮想ＤＳはＤＳＭより画像取得コマンドを受信すると、コマンド処理部がこの画像取得コマンドを検出する（Ｓ１１０１）。
（２）画像取得コマンドを検出すると、このコマンドをコマンドバッファ部に保存し（Ｓ１１０２）、さらにタイマ部を起動（Ｓ１１０３）する。
（３）タイマ部では所定の時間を保持しており、この時間に達するまでの判定を繰り返し実行する（Ｓ１１０４）。
（４）所定の時間に達した場合、コマンド処理部はステップＳ１１０２で保存しておいた画像取得コマンドを読み込み、ＤＳに対してこのコマンドを送る（Ｓ１１０５）。
（５）次に、コマンド処理部はタイマ部のタイマを初期値“０”にリセットする（Ｓ１１０６）。なお、タイマ部に設定されている所定の時間は、設定アプリケーションなどの手段により任意の値を設定することができる。
【００６０】
以上の処理（１）〜（５）から明らかなように、第３の実施形態のタイマ部は、第１の実施形態だけでなく、第２の実施形態に付加することも可能である。
【００６１】
第３の実施形態によれば、スキャン指示を出してから実際にスキャンが開始されるまでのタイムラグを、ユーザが任意に設定できる。ＵＳＢデバイスサーバは、ネットワークで利用されるものであり、これに接続されているスキャナはＰＣから離れた位置にある場合が多い。
スキャナの場合、まずスキャナ本体にスキャン対象（紙など）をセットする必要があるが、予めユーザがこれをセットし、ＰＣに戻りスキャンを実行し、さらにスキャン完了後、再びスキャナ本体に赴き、スキャン対象を回収する。この場合、ユーザはＰＣとスキャナ本体との間を２往復しなくてはならない。本実施形態では、予め設定された時間だけ画像取得コマンドを保持するので、実際のスキャン動作はユーザがスキャンの実行を指示してから、所定のタイムラグの後、開始されることになる。
即ち、ユーザは、ＰＣにてスキャンを指示し、スキャナ本体に赴きスキャナ対象をセットした後、実際のスキャンが開始され、これが終わるとスキャン対象を取り出しＰＣに戻ればよいだけである。
なお、コマンドを保持する時間はユーザが任意に設定できるので、例えばスキャニングアプリケーション毎に異なるタイムアウトの時間に対し、柔軟に対応できる。
【産業上の利用可能性】
【００６２】
本発明のスキャナ自動接続プログラムは、スキャナをネットワーク上で共用するシステムに利用できる。
【図面の簡単な説明】
【００６３】
【図１】ＵＳＢデバイスサーバのシステム概略図
【図２】ＵＳＢデバイスサーバシステムを使用しない場合におけるＰＣ内部の機能ブロック図
【図３】本発明の仮想ＤＳを用いないＵＳＢデバイスサーバシステムにおけるＰＣ内部の機能ブロック図
【図４】本発明の仮想ＤＳを組み込んだＰＣ内部の機能ブロック図
【図５】第１の実施形態の仮想ＤＳの機能ブロック図
【図６】第１の実施形態における自動接続シーケンス図
【図７】第１の実施形態における自動切断シーケンス図
【図８】第２の実施形態の仮想ＤＳの機能ブロック図
【図９】第２の実施形態における仮想ＤＳの処理フローチャート
【図１０】第３の実施形態の仮想ＤＳの機能ブロック図
【図１１】第３の実施形態における仮想ＤＳの処理フローチャート
【図１２】設定保持部が持つ情報テーブルの一例
【図１３】ユーザが自動接続したいスキャナに対応するＤＳを選択する画面の一例
【図１４】ＤＳ選択画面の一例
【図１５】本発明を用いないＵＳＢデバイスサーバシステムの処理フローチャート
【符号の説明】
【００６４】
１０１ａ，１０１ｂ，１０１ｃ    ＰＣ
１０２    ネットワーク
１０３    ＵＳＢデバイスサーバ
１０４    ＵＳＢデバイス
【図９】
2008193217.tif 000003
【図１】
2008193217.tif 000004
【図２】
2008193217.tif 000005
【図３】
2008193217.tif 000006
【図４】
2008193217.tif 000007
【図５】
2008193217.tif 000008
【図６】
2008193217.tif 000009
【図７】
2008193217.tif 000010
【図８】
2008193217.tif 000011
【図１０】
2008193217.tif 000012
【図１１】
2008193217.tif 000013
【図１２】
2008193217.tif 000014
【図１３】
2008193217.tif 000015
【図１４】
2008193217.tif 000016
【図１５】
2008193217.tif 000017
【手続補正書】
【提出日】平成19年2月5日(2007.2.5)
【手続補正１】
【補正対象書類名】図面
【補正対象項目名】図１４
【補正方法】変更
【補正の内容】
【図１４】
2008193217.tif 000018
【手続補正２】
【補正対象書類名】図面
【補正対象項目名】図１５
【補正方法】変更
【補正の内容】
【図１５】
2008193217.tif 000019
【手続補正書】
【提出日】平成19年2月14日(2007.2.14)
【手続補正１】
【補正対象書類名】図面
【補正対象項目名】図１４
【補正方法】変更
【補正の内容】
【図１４】
2008193217.tif 000020
【手続補正２】
【補正対象書類名】図面
【補正対象項目名】図１５
【補正方法】変更
【補正の内容】
【図１５】
2008193217.tif 000021