(57)【要約】【課題】デバイスサーバシステムにおいてＰＣとデバイスサーバ間の通信の状態にかかわらず，安定してＰＣからＵＳＢデバイスを利用することができるデバイスサーバシステムを提供する。【解決手段】ＰＣとデバイスサーバ間の通信パイプが不安定になった場合であっても，従来のように仮想ＵＳＢデバイス接続を破棄しない。さらに，仮想ＵＳＢデバイス接続が複数のＴＣＰセッション（通信パイプ）を用いることにより，１つの通信パイプが不安定になったとしても，他の通信パイプを使用することで，仮想ＵＳＢデバイス接続を用いた通信を中断することなく継続することができる。結果として，信頼性が高くかつ高速処理が可能なデバイスサーバシステムが得られる。【選択図】図６
2013254284.tif 000002
【特許請求の範囲】
【請求項１】
複数の所定の下位層通信と当該所定の下位層通信のうち１つ以上を利用する所定の上位層通信により構成されるネットワーク端末間の通信システムであって，
前記上位層通信が利用している所定の下位層通信の通信異常を検出する通信異常検出手段と，
前記上位層通信を破棄する上位層通信破棄手段と，
前記通信異常検出手段が異常を検出した場合，前記上位層通信破棄手段を所定期間のあいだ実行不能にする実行避止手段と，
を備える通信システム。
【請求項２】
前記所定期間は，前記通信異常検出手段が検出した通信異常が発生している前記所定の下位層通信が正常な通信に復帰するまでの期間である，
請求項１に記載の通信システム。
【請求項３】
前記通信システムは，さらに，
前記通信異常検出手段が異常を検出した場合，前記上位層通信が利用する所定の下位層通信を，異常の発生していない他の下位層通信に切り替える通信切替手段と，を備え，
前記所定期間は前記通信切替手段による通信の切り替えが完了するまでの期間である，
請求項１に記載の通信システム。
【請求項４】
周辺機器が接続された周辺機器サーバおよび当該周辺機器サーバのクライアントがネットワークに接続されている周辺機器サーバシステムであって，
前記クライアントと前記周辺機器との間の仮想的な接続である仮想周辺機器接続と，
前記クライアントと前記周辺機器サーバとの間における通信の異常を検出する通信異常検出手段と，
前記仮想周辺機器接続を破棄する仮想周辺機器接続破棄手段と，
前記通信異常検出手段が異常を検出した場合，前記仮想周辺機器接続破棄手段を所定期間のあいだ実行不能にする実行避止手段と，
を備える周辺機器サーバシステム。
【請求項５】
前記周辺機器サーバシステムは，さらに，
前記周辺機器の内部状態を初期化する周辺機器初期化手段，を備え，
前記実行避止手段が実行を避止する対象は，前記仮想周辺機器接続破棄手段に加え，前記周辺機器初期化手段を含む，
請求項４に記載の周辺機器サーバシステム。
【請求項６】
周辺機器が接続された周辺機器サーバおよび当該周辺機器サーバのクライアントがネットワークに接続されている周辺機器サーバシステムであって，
前記クライアントと前記周辺機器サーバとの間の通信であって，異なるアドレスを用いた通信を行う複数の通信パイプと，
前記複数の通信パイプのうちいずれか１つを利用した，前記クライアントと前記周辺機器との間の仮想的な接続である仮想周辺機器接続と，
前記クライアントと前記周辺機器サーバとの間における通信の異常を検出する通信異常検出手段と，
前記仮想周辺機器接続を破棄する仮想周辺機器接続破棄手段と，
前記通信異常検出手段が異常を検出した場合，前記仮想周辺機器接続破棄手段を実行不能にする実行避止手段と，
前記通信異常検出手段が異常を検出した場合，前記仮想周辺機器接続の利用する通信パイプを，現在利用している通信パイプよりも通信品質の良い他の通信パイプに切り替える通信パイプ切替手段と，
を備える周辺機器サーバシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願発明はデバイスサーバシステムに関し，特に，クライアントとデバイスサーバとの間の接続を維持する技術に関する。
【背景技術】
【０００２】
ＵＳＢ機器（以下ＵＳＢデバイス）に代表される周辺機器をネットワークで共有する周辺機器利用システム（以下デバイスサーバシステム）という技術が知られ
ている（非特許文献１）。デバイスサーバシステムとは，図１に示すようなシステムであり，ＵＳＢデバイス１０３（図１ではプリンタを例示）が接続されたデバイスサーバ１０２と，デバイスサーバシステムにおけるクライアントであるＰＣ１０１などのコンピュータとがネットワーク接続されている環境において，ＰＣ１０１からネットワーク越しに当該ＵＳＢデバイス１０３を利用させることのできるシステムである。
【先行技術文献】
【特許文献】
【０００３】
【非特許文献１】サイレックス・テクノロジー株式会社  ホームページ＜http://www.silex.jp/products/usbdeviceserver/index.html?init＞
【０００４】
デバイスサーバシステムでは，ＰＣ１０１は，ＵＳＢデバイス１０３が自らに直接接続されたかのように，ＵＳＢデバイス１０３を利用することができる。もちろん，実際にＰＣ１０１に対して直接ＵＳＢデバイス１０３が接続されているわけではないので，ネットワークを介した仮想的な接続（後述）に基づいてＵＳＢデバイス１０３を利用する。
［デバイスサーバシステムにおける機能ブロック］
【０００５】
図２はデバイスサーバシステムにおけるＰＣ１０１とデバイスサーバ１０２の機能ブロックを示したものである。
【０００６】
まずはＰＣ１０１について説明する。デバイスドライバ２０１は，ＵＳＢデバイス１０３を制御するソフトウェアである。具体的には，ＵＳＢデバイス１０３に対する入出力要求（IO Request Packet）を生成・発行するものである。図中には記載していないが，ワープロソフトなどのアプリケーションはこのデバイスドライバ２０１を介してＵＳＢデバイス１０３を利用することができる。
【０００７】
第１のカプセル処理手段２０２は，デバイサーバシステムを支える重要技術である。本手段は，デバイスドライバ２０１の発行するＵＳＢデバイス１０３への入出力要求をネットワーク上に送信することができるよう，当該入出力要求をネットワークパケットにカプセル化するものである。その一方，入出力要求に対する応答が含まれるネットワークパケットを受信すると，当該ネットワークパケットからこの応答を取り出し（デカプセルして）デバイスドライバ２０１に与える。
【０００８】
第１のＴＣＰ通信手段２０３は，いわゆるＴＣＰスタックの事であり，任意のネットワーク機器とＴＣＰ通信を行うための手段である。
【０００９】
第１のネットワークインタフェース２０４は，物理的なネットワークインタフェースであり，有線ＬＡＮや無線ＬＡＮのインタフェースの事である。図では有線ＬＡＮの場合を示している。
【００１０】
仮想ＵＳＢデバイス接続管理手段２０５は，ＰＣ１０１のデバイスドライバ２０１とデバイスサーバ１０２のＵＳＢホストコントローラ２１２との間の仮想的な接続（以下，仮想ＵＳＢデバイス接続と呼ぶ）を管理する手段である。本手段からの指示により，仮想ＵＳＢデバイス接続の確立および破棄を行うことができる。なお，この仮想ＵＳＢデバイス接続の詳細は後述する。
【００１１】
「仮想ＵＳＢデバイス接続を確立する」とは，仮想ＵＳＢデバイス接続管理手段２０５が，ＵＳＢデバイス１０３のデバイス情報を取得し，これをＰＣ１０１のＯＳ（図示せず）に与えることでデバイスドライバ２０１をＰＣ１０１のドライバスタックに組み込む，つまり，仮想ＵＳＢデバイス接続管理手段２０５が，デバイスドライバ２０１を第１のカプセル処理手段２０２と通信可能な状態にすることを意味する。逆に「仮想ＵＳＢデバイス接続を破棄する」とは，デバイスドライバ１０１をＰＣ１０１のドライバスタックから切り離すことを意味する。
【００１２】
次いでデバイスサーバ１０２について説明する。ＵＳＢインタフェース２１１はＵＳＢデバイス１０３と接続するインタフェースである。
【００１３】
ＵＳＢホストコントローラ２１２はＵＳＢのホスト側デバイスが備える装置であり，デバイスドライバ２０１からの入出力要求に基づいて，ＵＳＢデバイス１０３を制御するものである。
【００１４】
第２のカプセル処理手段２１３は，前述した第１のカプセル処理手段２０２と同じ機能を持った手段であり，デバイスサーバ１０２側に存在することから，名称を第２としている。これら２つのカプセル処理手段の働きにより，ＰＣ１０１のデバイスドライバ１０１とデバイスサーバ１０２のＵＳＢホストコントローラ２１２との間で，ＵＳＢの入出力要求を相互に送受信することができる。
【００１５】
第２のＴＣＰ通信手段２１４も，前述した第１のＴＣＰ通信手段２０３と同じ機能を持った手段であり，デバイスサーバ１０２側に存在することから，名称を第２としている。上述の２つのカプセル処理手段による通信は，第１のＴＣＰ通信手段２０３と第２のＴＣＰ通信手段２１４との間のＴＣＰセッション（通信パイプ）上で行われる。
【００１６】
第２のネットワークインタフェース２１５も，前述した第１のネットワークインタフェース２０４と同じ機能を持った手段であり，デバイスサーバ１０２側に存在することから，名称を第２としている。
［デバイスサーバシステムにおける通信経路］
【００１７】
図３は，ＰＣ１０１がデバイスサーバ１０２を経由して実際にＵＳＢデバイス１０３を制御する際の通信経路について示したものである。
【００１８】
図の矢印で示すとおり，両者の間には２つの通信経路が存在する。１つは第１のＴＣＰ通信手段２０３と第２のＴＣＰ通信手段２１４の間におけるものであり，前述したＴＣＰセッションの事である。もう１つはデバイスドライバ２０１とＵＳＢホストコントローラ２１２との間におけるものであり，前述した仮想ＵＳＢデバイス接続の事である。
【００１９】
通常，ＰＣ１０１にＵＳＢデバイス１０３を直接接続して使用する場合は，デバイスドライバ２０１はＰＣ１０１が元来備えるＵＳＢホストコントローラ（図示しない）に対して接続することとなる。これに対しデバイスサーバシステムでは，ＴＣＰセッションを利用し，ネットワーク越しにこの接続を確立する。これが前述した仮想ＵＳＢデバイス接続である。この接続により，デバイスドライバ２０１に対しては，ネットワーク越しではあるが，あたかもＵＳＢデバイス１０３がＰＣ１０１に直接接続したかのように見せかけることができる。なお，すでに述べたように，この仮想ＵＳＢデバイス接続は，ＰＣ１０１の仮想ＵＳＢデバイス接続管理手段２０５からの指示によって確立・破棄することができる。
【００２０】
仮想ＵＳＢデバイス接続管理手段２０５からの指示により，仮想ＵＳＢデバイス接続が確立されると，ＰＣ１０１上にてＵＳＢデバイス１０３を認識することができる。この結果，ＰＣ１０１のデバイスドライバ２０１から発行された入出力要求をデバイスサーバ１０２のホストコントローラ２１２に届けることができ，最終的にＵＳＢデバイス１０３を制御することができる。もちろん，ＵＳＢデバイス１０３からの応答データも仮想ＵＳＢデバイス接続を経由してデバイスドライバ２０１に届けられる。
【００２１】
ところで，言うまでもなくデバイスサーバシステムは，ネットワーク環境において利用するものである。当然ネットワーク環境が常に良好な状態に保たれているわけではなく，トラフィックの状況などにより通信品質は変化する。特に無線ＬＡＮの場合，電波干渉等の事情によりさらにその現象が顕著となる。
【００２２】
ＰＣ１０１にて通信の異常を検出した場合，ＰＣ１０１内のエラー処理によって，ＴＣＰセッションは破棄される。そうなると，付随的に当該ＴＣＰセッションを利用していた仮想ＵＳＢデバイス接続も破棄されることとなる。結果，ＰＣ１０１からＵＳＢデバイス１０３を制御することができなくなる。
【００２３】
他方，デバイスサーバ１０２側においても通信状態を監視しており，通信の異常を検出すると，ＴＣＰセッションが破棄される。これに加えデバイスサーバ１０２側ではＵＳＢデバイス１０３に対する初期化処理も行う。
【００２４】
ＴＣＰセッションの破棄に伴い仮想ＵＳＢデバイス接続も付随的に破棄されることは，非特許文献１に開示のある従来のデバイスサーバシステムでは一般的に行われている。その理由は，ＵＳＢデバイス１０３からの応答が得られないことによって発生する，デバイスドライバ２０１に起因したトラブルを回避するためである。もともとデバイスドライバ２０１はＰＣ１０１自身にＵＳＢデバイス１０３が直接接続されることを想定したものであり，ローカル接続と比較し長時間にわたって通信不能になる状況を想定した構造となっていないものがあるためである。
【００２５】
このようにＴＣＰセッションの破棄に伴い仮想ＵＳＢデバイス接続も付随的に破棄することで，デバイスドライバ２０１に起因して発生する問題を回避することが可能になる。しかしその一方，通信効率の面では悪化するという問題があった。すなわち，破棄されたＴＣＰセッションおよび仮想ＵＳＢデバイス接続が復帰した後に行われる通信は，これらが破棄する前に行っていた通信の継続ではなく，当該通信における最初からのやりなおしとなるわけである。たとえば大量の印刷データが送受信されている状況において仮想ＵＳＢデバイス接続が破棄されると，破棄する以前の通信の進捗にかかわらず，当該印刷データの先頭から再度送受信し直す必要があるわけである。
【発明の概要】
【発明が解決しようとする課題】
【００２６】
本願発明はかかる課題を解決するものである。すなわち，デバイスサーバシステムにおいてＰＣとデバイスサーバ間の通信の状態にかかわらず，安定かつ効率的にＰＣからＵＳＢデバイスを利用することができるデバイスサーバシステムを提供することである。
【課題を解決するための手段】
【００２７】
本願発明にかかる第１の形態は，複数の所定の下位層通信と当該所定の下位層通信のうち１つ以上を利用する所定の上位層通信により構成されるネットワーク端末間の通信システムであって，上位層通信が利用している所定の下位層通信の通信異常を検出する通信異常検出手段と，上位層通信を破棄する上位層通信破棄手段と，通信異常検出手段が異常を検出した場合，上位層通信破棄手段を所定期間のあいだ実行不能にする実行避止手段と，を備える。
【００２８】
より好ましくは，所定期間は，通信異常検出手段が検出した通信異常が発生している所定の下位層通信が正常な通信に復帰するまでの期間である。
【００２９】
これにより通信異常の発生した通信が即座に復帰した場合に，通信を途中から再開させることができる。
【００３０】
より好ましくは，通信システムは，さらに，通信異常検出手段が異常を検出した場合，上位層通信が利用する所定の下位層通信を，異常の発生していない他の下位層通信に切り替える通信切替手段と，を備え，所定期間は通信切替手段による通信の切り替えが完了するまでの期間である。
【００３１】
これにより，通信異常が長期間にわたる場合であっても，即座に通信を途中から再開させることができる。
【００３２】
本願発明にかかる第２の形態は，周辺機器が接続された周辺機器サーバおよび当該周辺機器サーバのクライアントがネットワークに接続されている周辺機器サーバシステムであって，クライアントと周辺機器との間の仮想的な接続である仮想周辺機器接続と，クライアントと周辺機器サーバとの間における通信の異常を検出する通信異常検出手段と，仮想周辺機器接続を破棄する仮想周辺機器接続破棄手段と，通信異常検出手段が異常を検出した場合，仮想周辺機器接続破棄手段を所定期間のあいだ実行不能にする実行避止手段と，を備える。
【００３３】
より好ましくは，周辺機器サーバシステムは，さらに，周辺機器の内部状態を初期化する周辺機器初期化手段，を備え，実行避止手段が実行を避止する対象は，仮想周辺機器接続破棄手段に加え，周辺機器初期化手段を含む。
【００３４】
本願発明にかかる第３の形態は，周辺機器が接続された周辺機器サーバおよび当該周辺機器サーバのクライアントがネットワークに接続されている周辺機器サーバシステムであって，クライアントと周辺機器サーバとの間の通信であって，異なるアドレスを用いた通信を行う複数の通信パイプと，複数の通信パイプのうちいずれか１つを利用した，クライアントと周辺機器との間の仮想的な接続である仮想周辺機器接続と，クライアントと周辺機器サーバとの間における通信の異常を検出する通信異常検出手段と，仮想周辺機器接続を破棄する仮想周辺機器接続破棄手段と，通信異常検出手段が異常を検出した場合，仮想周辺機器接続破棄手段を実行不能にする実行避止手段と，通信異常検出手段が異常を検出した場合，仮想周辺機器接続の利用する通信パイプを，現在利用している通信パイプよりも通信品質の良い他の通信パイプに切り替える通信パイプ切替手段と，を備える。
【発明の効果】
【００３５】
本願発明にかかるデバイスサーバシステムは，ＰＣとデバイスサーバ間の通信が不安定になった場合であっても，従来のように仮想ＵＳＢデバイス接続を破棄しない。さらに，本願発明にかかるデバイスサーバシステムは，仮想ＵＳＢデバイス接続に複数のＴＣＰセッション（通信パイプ）を用いることにより，１つの通信パイプが不安定になったとしても，代わりに他の通信パイプを使用することで，仮想ＵＳＢデバイス接続を用いた通信を中断することなく継続することができる。結果として，信頼性が高くかつ高速処理が可能なデバイスサーバシステムが得られる。
【発明を実施するための形態】
【００３６】
以下では図面を参照し本願発明に係る実施例を説明する。
［実施例１］
［システム全体図］
【００３７】
本実施例におけるシステム全体図は，図１で既に説明したものと同じであるため説明を省略する。
［ＰＣの機能ブロック］
【００３８】
次いで図４を参照してＰＣ１０１の機能ブロックを説明する。
【００３９】
図２において説明したものに加え，第１の通信異常検出手段４０１，第１の実行避止手段４０２，および通信パイプ切替手段４０３が追加されている。
【００４０】
なお，第１のＴＣＰ通信手段２０３は，デバイスサーバ１０２の第２のＴＣＰ通信手段２１４との間においてＴＣＰセッションを確立する手段であるが，本実施例におけるデバイスサーバ１０２は，後述する通り２つのネットワークインタフェースを有するため，デバイスサーバ１０２との間に２つのＴＣＰセッションを確立する。
【００４１】
第１の通信異常検出手段４０１は，ＰＣ１０１とデバイスサーバ１０２との間の通信を監視し異常を検出する手段である。通信の異常とは，スループットの低下やリンク断などに加え，仮想ＵＳＢデバイス接続上の通信異常も含まれる。通信の異常を検出すると後述する第１の実行避止手段４０２および通信パイプ切替手段４０３にその旨通知する。
【００４２】
第１の実行避止手段４０２は第１の通信異常検出手段４０１からの通知があると，後述する仮想ＵＳＢデバイス接続管理手段２０５に対し，所定期間のあいだ実行を避止させるよう指示する。当該所定期間は，通信の異常が正常の通信に復帰するまでの期間であり，具体的には後述する通信パイプ切替手段４０３による通信パイプの切り替えが完了するまでである。
【００４３】
仮想ＵＳＢデバイス接続管理手段２０５が第１の実行避止手段４０２からの実行避止の指示を受信すると，ＰＣ１０１とＵＳＢデバイス１０３との間の仮想ＵＳＢデバイス接続を破棄しないようにする。
【００４４】
通信パイプ切替手段４０３は，第１の通信異常検出手段４０１からの通知を受信すると，仮想ＵＳＢデバイス接続にて利用するＴＣＰセッションとして，異常の発生していない他の通信パイプに切り替える。上述したように，本実施例では２つの通信パイプが存在するため，このような切り替えを行うことができる。切り替えが完了すると，この旨を第１の実行避止手段４０２に通知する。
［デバイスサーバの機能ブロック］
【００４５】
次いで図５を参照してデバイスサーバ１０２の機能ブロックを説明する。
【００４６】
図２において説明したものに加え，第３のネットワークインタフェース５０１，第２の通信異常検出手段５０２，第２の実行避止手段５０３，およびＵＳＢデバイス初期化手段５０４が追加されている。
【００４７】
第３のネットワークインタフェース５０１は，機能的には第２のネットワークインタフェース２１５と同じものである。異なる点はＴＣＰセッションにおいて使用するＩＰアドレスである。すなわち，デバイスサーバ１０２は複数のネットワークインタフェースを備え，複数のＩＰアドレスを同時運用可能な装置である。これにより，先に述べたように，ＰＣ１０１とデバイスサーバ１０２との間において２つのＴＣＰセッションが利用可能となる。
【００４８】
第２の通信異常検出手段５０２は，機能的にはＰＣ１０１の機能ブロックで説明した第１の通信異常検出手段４０１と同じである。異なる点は，検出する対象が複数のネットワークインタフェースとなる点である。通信の異常を検出すると後述する第２の実行避止手段５０３にその旨通知する。
【００４９】
第２の実行避止手段５０３は第２の通信異常検出手段５０２からの通知があると，後述するＵＳＢデバイス初期化手段５０４に対し，所定期間のあいだ実行を避止させるよう指示する。当該所定期間は，ＰＣ１０１との間の通信パイプの切り替えが完了するまでである。
【００５０】
ＵＳＢデバイス初期化手段５０４は，ＵＳＢインタフェース２１１を介してＵＳＢデバイス１０３の内部状態を初期化する手段である。ＵＳＢデバイス１０３が何らかの処理途中であった場合であっても，初期化を実行することにより，いったん当該処理を破棄し，再度リクエストを受付可能な状態に戻すことができる。第２の実行避止手段５０３からの実行避止の指示を受信すると，この初期化処理を行わないようにする。
［動作フロー］
【００５１】
次いで，これまで説明したＰＣ１０１およびデバイスサーバ１０２について，図６を用いてそれぞれの動作フロー示す。
【００５２】
まずはＰＣ１０１の動作フローについて説明する。
【００５３】
ステップ６０１にて，仮想ＵＳＢデバイス接続を確立するかどうかを判断する。具体的には，ＰＣ１０１のユーザからの指示があるかどうかを判断する。あれば次のステップに進み，なければ当該判断を繰り返す。
【００５４】
ステップ６０２にて，指示のあった仮想ＵＳＢデバイス接続で利用する通信パイプを確立する。本実施例では２つの通信パイプを確立する。なお，この時点ではまだ仮想ＵＳＢデバイス接続は確立されていない。
【００５５】
ステップ６０３にて，仮想ＵＳＢデバイス接続を確立する。この接続はステップ６０２にて確立した２つの通信パイプのうち１つを利用する。
【００５６】
ステップ６０４にて，通信の異常を検出したかどうかを判断する。異常があれば次のステップに進み，そうでなければ当該判断を繰り返す。
【００５７】
ステップ６０５にて，仮想ＵＳＢデバイス接続管理手段２０５に対し，通信パイプの切り替えが完了するまでのあいだ仮想ＵＳＢデバイス接続の破棄を避止するよう指示する。
【００５８】
ステップ６０６にて，仮想ＵＳＢデバイス接続にて利用する通信パイプを，異常の発生していない他の通信パイプに切り替える。
【００５９】
ステップ６０７にて，第１の実行避止手段４０２による実行避止を解除する。これにより，仮想ＵＳＢデバイス接続管理手段２０５による仮想ＵＳＢデバイス接続の破棄は実行可能となる。本ステップが完了するとステップ６０４に戻る。
【００６０】
次いでデバイスサーバ１０３の動作フローについて説明する。
【００６１】
ステップ６１１にて，通信の異常を検出したかどうかを判断する。異常があれば次のステップに進み，そうでなければ当該判断を繰り返す。
【００６２】
ステップ６１２にて，ＵＳＢデバイス初期化手段５０４に対し，通信パイプの切り替えが完了するまでのあいだＵＳＢデバイス１０３の初期化の実行を避止するよう指示する。
【００６３】
ステップ６１３にて，通信パイプの切り替えが完了したかどうかを判断する。これは，ＰＣ１０１側のステップ６０６にて行われる処理が完了したかどうかの事である。切り替えが完了していれば次のステップに進み，そうでなければ当該判断を繰り返す。
【００６４】
ステップ６１４にて，ＵＳＢデバイス初期化手段５０４の実行避止を解除して，ステップ６１１に戻る。
【００６５】
本実施例では，通信パイプの異常が発生した場合に，仮想ＵＳＢデバイス接続の破棄，およびＵＳＢデバイス１０３の初期化を実行しないようにし，同時に他の通信パイプを用いて処理を継続するようにした。こうすることで，ネットワークの環境によらず安定してデバイスサーバシステムを利用することができる。また，通信パイプの切り替え処理は，上述したように必ずしもＰＣ１０１がトリガとなる必要はなく，デバイスサーバ１０２側がトリガとなってもよい。
［他の実施例］
【００６６】
実施例１では，複数の通信パイプを用意しておき，仮想ＵＳＢデバイス接続の利用する通信パイプを随時切り替えることにより処理を継続させた。
【００６７】
また，通信パイプの数は必ずしも２つだけでなく，３つ以上用意しておき，通信異常が検出された場合は，残りの通信パイプのうち通信品質の良いいずれか１つを選択し切り替えるようにしてもよい。
【００６８】
複数の通信パイプを効果的に利用する他の方法として，通信を多重化する方法がある。すなわち，１つの仮想ＵＳＢデバイス接続の利用する通信パイプを最初から２つ以上にする方法である。同一の通信内容を複数の通信パイプを通じて送受信し，先に到着した通信のみを処理し，後に受信した同一の内容の通信を破棄するようにすることで，ネットワークの環境に依らず安定してデバイスサーバシステムを利用することができる。
【００６９】
また，本実施例に記載した様な複数の通信パイプを備えることなく，通信の異常を検出した後直ちに仮想ＵＳＢデバイス接続を切断せず，所定期間（例えば５００ミリ秒間）を経たのちに切断するというより簡便な方法も考えられる。瞬間的な通信の異常が発生してもこの所定期間内に復帰することもあり得るからである。
【００７０】
本願発明で利用する通信パイプは，有線ネットワークだけでなく無線ネットワークあるいは両者が混在するネットワークにおいても当然に適用可能である。
【００７１】
本願発明はこれまで説明したデバイスサーバシステムだけでなく，所定の下位層通信と，当該所定の下位層通信を利用する所定の上位層通信によって構成される，所定のネットワーク端末間の通信システムにも適用可能である。すなわち，複数の下位層通信を用意しておき，いずれかが不安定になった場合であっても，上位層通信を破棄せず，適宜，下位層通信だけを入れ替えることで，ネットワークの環境に依らず効率的で安定したネットワーク端末間の通信が可能である。特に上位層通信と下位層通信との結合度が高く，下位層通信が異常となった場合に，付随的に上位層通信が破棄されるような通信システムに効果的である。
［まとめ］
【００７２】
本願発明にかかるデバイスサーバシステムは，ＰＣとデバイスサーバ間の通信が不安定になった場合であっても，従来のように仮想ＵＳＢデバイス接続を破棄しない。さらに，本願発明にかかるデバイスサーバシステムは，仮想ＵＳＢデバイス接続に複数のＴＣＰセッション（通信パイプ）を用いることにより，１つの通信パイプが不安定になったとしても，代わりに他の通信パイプを使用することで，仮想ＵＳＢデバイス接続を用いた通信を中断することなく継続することができる。結果として，信頼性が高くかつ高速処理が可能なデバイスサーバシステムが得られる。
【図面の簡単な説明】
【００７３】
【図１】従来のデバイスサーバシステム
【図２】従来のデバイスサーバシステムにおける機能ブロック
【図３】デバイスサーバシステムにおける通信パイプ
【図４】ＰＣの機能ブロック
【図５】デバイスサーバの機能ブロック
【図６】動作フロー
【符号の説明】
【００７４】
２０５  仮想ＵＳＢデバイス接続管理手段
４０１  第１の通信異常検出手段
４０２  第１の実行避止手段
４０３  通信パイプ切替手段
５０２  第２の通信異常検出手段
５０３  第２の実行避止手段
５０４  ＵＳＢデバイス初期化手段
【図１】
2013254284.tif 000003
【図２】
2013254284.tif 000004
【図３】
2013254284.tif 000005
【図４】
2013254284.tif 000006
【図５】
2013254284.tif 000007
【図６】
2013254284.tif 000008