(57)【要約】【課題】ユーザの利便性を向上させるデバイスサーバシステム、クライアント装置、情報転送制御方法およびプログラムを提供する。【解決手段】デバイスサーバシステムは、インタラプト転送するキーボード１３と、デバイスサーバ１１と、クライアント装置１２と、を備える。クライアント装置１２は、キーボード１３が転送したインタラプト応答情報に応じた処理を実行する処理部１２１１と、キーボード１３へインタラプト応答情報の転送を要求するインタラプト要求情報を生成するＵＳＢドライバ１２１２と、クライアント装置１２とデバイスサーバ１１との間での通信状態を監視し、通信が遮断された状態で基準時間経過したと判定すると、ダミーのインタラプト応答情報をＵＳＢドライバ１２１２へ出力する通信制御部１２１３と、を有する。【選択図】図３
2018142281.tif 000002
【特許請求の範囲】
【請求項１】
処理情報を転送するＵＳＢデバイスと、
前記ＵＳＢデバイスが接続されるデバイスサーバと、
前記デバイスサーバとネットワークを介して接続され、前記ＵＳＢデバイスから転送される前記処理情報を、前記デバイスサーバを介して受信するクライアント装置と、を備え、
前記クライアント装置は、
前記ＵＳＢデバイスが転送した前記処理情報に応じた処理を実行する処理部と、
前記ＵＳＢデバイスへ前記処理情報の転送を要求する転送要求情報を生成するとともに、前記処理情報を取得すると前記処理情報を前記処理部へ出力するＵＳＢドライバと、
前記クライアント装置と前記デバイスサーバとの間での通信状態を監視し、前記クライアント装置と前記デバイスサーバとの間での通信が遮断された状態で基準時間経過したと判定すると、ダミーの処理情報を前記ＵＳＢドライバへ出力する通信制御部と、を有する、
デバイスサーバシステム。
【請求項２】
前記通信制御部は、
前記ダミーの処理情報を前記ＵＳＢドライバへ出力した後に前記クライアント装置と前記デバイスサーバとの間での通信が復帰した場合、前記ＵＳＢデバイスから前記デバイスサーバを介して取得される、前記ダミーの処理情報に対応する処理情報の内容に応じて、前記処理情報を破棄する、
請求項１に記載のデバイスサーバシステム。
【請求項３】
前記通信制御部は、
前記ダミーの処理情報を前記ＵＳＢドライバへ出力した後に前記クライアント装置と前記デバイスサーバとの間での通信が復帰した場合、前記ＵＳＢドライバから入力される、前記ダミーの処理情報に対応する前記転送要求情報を破棄する、
請求項１に記載のデバイスサーバシステム。
【請求項４】
処理情報を転送するＵＳＢデバイスが接続されるデバイスサーバとネットワークを介して接続され、前記ＵＳＢデバイスから転送される前記処理情報を、前記デバイスサーバを介して受信するクライアント装置であって、
前記ＵＳＢデバイスが転送した前記処理情報に応じた処理を実行する処理部と、
前記ＵＳＢデバイスへ前記処理情報の転送を要求する転送要求情報を生成するとともに、前記処理情報を取得すると前記処理情報を前記処理部へ出力するＵＳＢドライバと、
自装置と前記デバイスサーバとの間での通信状態を監視し、前記自装置と前記デバイスサーバとの間での通信が遮断された状態で基準時間経過したと判定すると、ダミーの処理情報を前記ＵＳＢドライバへ出力する通信制御部と、を備える、
クライアント装置。
【請求項５】
処理情報を転送するＵＳＢデバイスが接続されるデバイスサーバとネットワークを介して接続され、前記ＵＳＢデバイスから転送される前記処理情報を、前記デバイスサーバを介して受信するクライアント装置が実行する情報転送制御方法であって、
処理部が、前記ＵＳＢデバイスから転送された前記処理情報に応じた処理を実行するステップと、
ＵＳＢドライバが、前記ＵＳＢデバイスへ前記処理情報の転送を要求する転送要求情報を生成するステップと、
前記ＵＳＢドライバが、前記処理情報を取得すると前記処理情報を前記処理部へ出力するステップと、
通信制御部が、前記クライアント装置と前記デバイスサーバとの間での通信状態を監視し、前記クライアント装置と前記デバイスサーバとの間での通信が遮断された状態で基準時間経過したと判定すると、ダミーの処理情報を前記ＵＳＢドライバへ出力するステップと、を含む、
情報転送制御方法。
【請求項６】
コンピュータを、
処理情報を転送するＵＳＢデバイスが転送した前記処理情報に応じた処理を実行する処理部、
前記ＵＳＢデバイスへ前記処理情報の転送を要求する転送要求情報を生成するとともに、前記処理情報を取得すると前記処理情報を前記処理部へ出力するＵＳＢドライバ、
クライアント装置と前記ＵＳＢデバイスが接続されるデバイスサーバとの間でのネットワークを介した通信の通信状態を監視し、前記デバイスサーバとの間での通信が遮断された状態で基準時間経過したと判定すると、ダミーの処理情報を前記ＵＳＢドライバへ出力する通信制御部、として機能させる、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デバイスサーバシステム、クライアント装置、情報転送制御方法およびプログラムに関する。
【背景技術】
【０００２】
有線ＬＡＮ（Local Area Network）または無線ＬＡＮ等のネットワークに接続されたデバイスサーバと、当該ネットワークに接続されたクライアント装置と、を備えるデバイスサーバシステムが提案されている（例えば非特許文献１参照）。このデバイスサーバシステムでは、クライアント装置からデバイスサーバに接続されたＵＳＢ（Universal Serial Bus）デバイスを利用できる。この種のデバイスサーバシステムとして、ＵＳＢデバイスとしてＵＳＢ規格に基づく情報転送を実行する、キーボードやタッチパネル等のＨＩＤ（Human Interface Device）を採用したものも提供されている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】サイレックス・テクノロジー株式会社ホームページ＜http://www.silex.jp/products/usbdeviceserver/ds520an.html＞
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、ＵＳＢデバイスとしてＨＩＤを採用した場合、ユーザがＨＩＤを操作している途中でクライアント装置とデバイスサーバとの通信が遮断された場合、ＨＩＤでクライアント装置を制御できなくなりユーザの意図に反した処理が継続してしまう虞がある。例えばＨＩＤがＵＳＢキーボードの場合、ユーザがキーの長押し操作を行っている途中でクライアント装置とデバイスサーバとの通信が遮断されると、通信が復帰するまでキー入力に応じた処理が継続されてしまう。また、ＨＩＤがＵＳＢに対応したタッチパネルの場合、ユーザがドラッグ操作を行っている途中でクライアント装置とデバイスサーバとの通信が遮断されると、通信が復帰するまでドラッグ操作を行えなくなってしまう。このように、クライアント装置がデバイスサーバとの通信の遮断に起因してユーザの意図に反する処理が実行されると、ユーザが不便に感じる虞がある。
【０００５】
本発明は、上記事由に鑑みてなされたものであり、ユーザの利便性を向上させるデバイスサーバシステム、クライアント装置、情報転送制御方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明に係るデバイスサーバシステムは、
処理情報を転送するＵＳＢデバイスと、
前記ＵＳＢデバイスが接続されるデバイスサーバと、
前記デバイスサーバとネットワークを介して接続され、前記ＵＳＢデバイスから転送される前記処理情報を、前記デバイスサーバを介して受信するクライアント装置と、を備え、
前記クライアント装置は、
前記ＵＳＢデバイスが転送した前記処理情報に応じた処理を実行する処理部と、
前記ＵＳＢデバイスへ前記処理情報の転送を要求する転送要求情報を生成するとともに、前記処理情報を取得すると前記処理情報を前記処理部へ出力するＵＳＢドライバと、
前記クライアント装置と前記デバイスサーバとの間での通信状態を監視し、前記クライアント装置と前記デバイスサーバとの間での通信が遮断された状態で基準時間経過したと判定すると、ダミーの処理情報を前記ＵＳＢドライバへ出力する通信制御部と、を有する。
【０００７】
他の観点から見た本発明に係るクライアント装置は、
処理情報を転送するＵＳＢデバイスが接続されるデバイスサーバとネットワークを介して接続され、前記ＵＳＢデバイスから転送される前記処理情報を、前記デバイスサーバを介して受信するクライアント装置であって、
前記ＵＳＢデバイスが転送した前記処理情報に応じた処理を実行する処理部と、
前記ＵＳＢデバイスへ前記処理情報の転送を要求する転送要求情報を生成するとともに、前記処理情報を取得すると前記処理情報を前記処理部へ出力するＵＳＢドライバと、
自装置と前記デバイスサーバとの間での通信状態を監視し、前記自装置と前記デバイスサーバとの間での通信が遮断された状態で基準時間経過したと判定すると、ダミーの処理情報を前記ＵＳＢドライバへ出力する通信制御部と、を備える。
【０００８】
他の観点から見た本発明に係る情報転送制御方法は、
処理情報を転送するＵＳＢデバイスが接続されるデバイスサーバとネットワークを介して接続され、前記ＵＳＢデバイスから転送される前記処理情報を、前記デバイスサーバを介して受信するクライアント装置が実行する情報転送制御方法であって、
処理部が、前記ＵＳＢデバイスから転送された前記処理情報に応じた処理を実行するステップと、
ＵＳＢドライバが、前記ＵＳＢデバイスへ前記処理情報の転送を要求する転送要求情報を生成するステップと、
前記ＵＳＢドライバが、前記処理情報を取得すると前記処理情報を前記処理部へ出力するステップと、
通信制御部が、前記クライアント装置と前記デバイスサーバとの間での通信状態を監視し、前記クライアント装置と前記デバイスサーバとの間での通信が遮断された状態で基準時間経過したと判定すると、ダミーの処理情報を前記ＵＳＢドライバへ出力するステップと、を含む。
【０００９】
他の観点から見た本発明に係るプログラムは、
コンピュータを、
処理情報を転送するＵＳＢデバイスが転送した前記処理情報に応じた処理を実行する処理部、
前記ＵＳＢデバイスへ前記処理情報の転送を要求する転送要求情報を生成するとともに、前記処理情報を取得すると前記処理情報を前記処理部へ出力するＵＳＢドライバ、
クライアント装置と前記ＵＳＢデバイスが接続されるデバイスサーバとの間でのネットワークを介した通信の通信状態を監視し、前記デバイスサーバとの間での通信が遮断された状態で基準時間経過したと判定すると、ダミーの処理情報を前記ＵＳＢドライバへ出力する通信制御部、として機能させる。
【発明の効果】
【００１０】
本発明によれば、通信制御部が、クライアント装置とデバイスサーバとの間での通信状態を監視し、クライアント装置とデバイスサーバとの間での通信が遮断された状態で基準時間経過したと判定すると、ダミーの処理情報をＵＳＢドライバへ出力する。これにより、クライアント装置とデバイスサーバとの間での通信が遮断されている間、処理部が処理情報に応じた処理を実行できない状態が継続してしまうことが防止される。ここで、例えばＵＳＢデバイスから２つの処理情報がクライアント装置へ転送されて処理部での処理が完了するとする。この場合、２つの処理情報のうちの一方がクライアント装置へ転送された直後に通信が遮断されたときでも、通信が遮断されている間、処理部での処理が完了せずに放置されることが無い。それ故、クライアント装置を使用するユーザの利便性が向上する。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施の形態１に係るデバイスサーバシステムの構成を示す図である。
【図２】実施の形態１に係るデバイスサーバシステムのハードウェア構成を示す図である。
【図３】実施の形態１に係るデバイスサーバシステムの機能構成を示す図である。
【図４】実施の形態１に係るデバイスサーバシステムの動作を示すシーケンス図である。
【図５】実施の形態１に係るインタラプト応答情報の内容を示し、（Ａ）は第１キーが押下されている場合、（Ｂ）はキーが押下されていない場合、（Ｃ）は第２キーが押下されている場合を示す図である。
【図６】実施の形態１に係るデバイスサーバシステムの動作を示すシーケンス図である。
【図７】実施の形態１に係る通信制御部が実行する通信制御処理の流れの一例を示すフローチャートである。
【図８】実施の形態１に係る通信制御部が実行する通信制御処理の流れの一例を示すフローチャートである。
【図９】実施の形態１に係る通信制御部が実行する通信制御処理の流れの一例を示すフローチャートである。
【図１０】本発明の実施の形態２に係るデバイスサーバシステムの構成を示す図である。
【図１１】実施の形態２に係るデバイスサーバシステムの機能構成を示す図である。
【図１２】実施の形態２に係るデバイスサーバシステムの動作を示すシーケンス図である。
【図１３】実施の形態２に係るインタラプト応答情報の内容を示し、（Ａ）はタッチパネルがタッチされている場合、（Ｂ）はタッチパネルがタッチされていない（解放された）場合を示す図である。
【図１４】実施の形態２に係るデバイスサーバシステムの動作を示すシーケンス図である。
【図１５】実施の形態２に係る通信制御部が実行する通信制御処理の流れの一例を示すフローチャートである。
【図１６】実施の形態２に係る通信制御部が実行する通信制御処理の流れの一例を示すフローチャートである。
【図１７】（Ａ）は比較例に係るデバイスサーバシステムの動作を説明するための図であり、（Ｂ）は実施の形態２に係るデバイスサーバシステムの動作を説明するための図である。
【発明を実施するための形態】
【００１２】
（実施の形態１）
以下、本発明の一実施の形態に係るデバイスサーバシステムについて、図面を参照しながら説明する。
【００１３】
本実施の形態に係るデバイスサーバシステムは、クライアント装置と、ＵＳＢキーボードのようなＨＩＤ（Human Interface Device）クラスのＵＳＢデバイスが接続され且つクライアント装置と無線通信可能なデバイスサーバと、を備える。ユーザが、デバイスサーバに接続されたキーボートを操作すると、クライアント装置が、キーボードの操作に応じた処理を実行する。
【００１４】
図１に示すように、本実施の形態に係るデバイスサーバシステム１は、デバイスサーバ１１と、クライアント装置１２と、キーボード１３と、ディスプレイ１４と、を備える。キーボード１３は、データ転送方式として、インタラプト（インタラプトイン）転送を利用するものである。キーボード１３は、ＨＩＤクラスのＵＳＢデバイスであり、クライアント装置１２で実行される処理に関連する処理情報（例えばキーボード１３のキーが押下されたことを通知する情報）を転送する。キーボード１３は、デバイスサーバ１１を介してクライアント装置１２に接続されると、インタラプト応答パケットの構造およびインタラプト要求情報を出力する周期に関する情報を含むＵＳＢコンフィギュレーション情報およびディスクリプタ情報を、デバイスサーバ１１を介してクライアント装置１２へ送信する。
【００１５】
デバイスサーバ１１は、図２に示すように、ＣＰＵ（Central Processing Unit）１１１と主記憶部１１２と補助記憶部１１３と無線モジュール１１５とＵＳＢインターフェース（以下、「Ｉ／Ｆ」と称する。）１１６とこれらを互いに接続するバス１１７とを有する。主記憶部１１２は、揮発性メモリから構成され、ＣＰＵ１１１の作業領域として使用される。補助記憶部１１３は、不揮発性のメモリから構成される。無線モジュール１１５は、無線ＬＡＮコントローラを含んで構成されている。無線モジュール１１５は、クライアント装置１２との間で通信リンクを確立し、無線通信を行う。無線モジュール１１５は、無線信号を生成する信号生成回路とアンテナとを有する。無線モジュール１１５は、例えばＩＥＥＥ８０２．１１ａ，ｂ，ｇ，ｎ等の無線ＬＡＮ規格に適合する通信方式で通信する。ＵＳＢＩ／Ｆ１１６は、キーボード１３に接続され、キーボード１３との間で情報を送受信する。
【００１６】
デバイスサーバ１１では、ＣＰＵ１１１が、補助記憶部１１３が記憶するプログラムを主記憶部１１２に読み込んで実行することにより、図３に示すように、キーボード１３とクライアント装置１２との間の通信を制御する変換部１１１１として機能する。変換部１１１１は、クライアント装置１２から受信したインタラプト要求パケットまたはキーボード１３から受信したインタラプト応答情報のプロトコル変換を実行する。変換部１１１１は、クライアント装置１２から受信したインタラプト要求パケットからそれに含まれるインタラプト要求情報を抽出してキーボード１３へ送信する。また、変換部１１１１は、キーボード１３から受信したインタラプト応答情報をカプセル化することによりインタラプタ応答パケットを生成してクライアント装置１２へ送信する。
【００１７】
図２に戻って、クライアント装置１２は、ＣＰＵ１２１と主記憶部１２２と補助記憶部１２３と無線モジュール１２５と映像Ｉ／Ｆ１２６とこれらを互いに接続するバス１２７とを有する。主記憶部１２２は、揮発性メモリから構成され、ＣＰＵ１２１の作業領域として使用される。補助記憶部１２３は、不揮発性のメモリから構成される。無線モジュール１２５は、無線ＬＡＮコントローラを含んで構成されている。無線モジュール１２５は、デバイスサーバ１１との間で通信リンクを確立し、無線通信を行う。無線モジュール１２５は、無線モジュール１１５と同様に、信号生成回路とアンテナとを有する。無線モジュール１２５も、例えばＩＥＥＥ８０２．１１ａ，ｂ，ｇ，ｎ等の無線ＬＡＮ規格に適合する通信方式で通信する。映像Ｉ／Ｆ１２６は、ディスプレイ１４に接続され、ディスプレイ１４へ映像信号を送信する。
【００１８】
クライアント装置１２では、ＣＰＵ１２１が、補助記憶部１２３が記憶するプログラムを主記憶部１２２に読み込んで実行することにより、図３に示すように、処理部１２１１とＵＳＢドライバ１２１２と通信制御部１２１３と計時部１２１４として機能する。また、主記憶部１２２は、通信制御部１２１３がキー押下を示すダミーのインタラプト応答情報に対応するインタラプト要求情報を記憶する要求記憶部１２２１を有する。補助記憶部１２３は、キーボード１３から受信するインタラプト応答パケットの構造およびキーボード１３に対応するインタラプト要求情報の送信周期に関する情報を記憶する。
【００１９】
処理部１２１１は、ＵＳＢドライバ１２１２から入力されるキー入力情報に応じた処理を実行する。処理部１２１１は、ＵＳＢドライバ１２１２から入力されるキー入力情報に応じた処理を実行することにより生成される映像情報をディスプレイ１４へ出力する。処理部１２１１は、キーボード１３からキー押下を示すインタラプタ応答情報が転送された後、キー解放を示すインタラプト応答情報が転送されるまで、キーが押下され続けていると認識してキー押下に応じた処理を継続する。
【００２０】
ＵＳＢドライバ１２１２は、通信制御部１２１３からキーが押下されたことを示すインタラプト応答情報が入力されると、キーが押下されたことを通知するキー押下通知情報を生成して処理部１２１１へ出力する。また、ＵＳＢドライバ１２１２は、キーボード１３向けのインタラプト要求情報を生成して通信制御部１２１３へ送信する。
【００２１】
通信制御部１２１３は、ＵＳＢドライバ１２１２から入力されるインタラプト要求情報を含むインタラプト要求パケットを生成してデバイスサーバ１１へ送信する。また、通信制御部１２１３は、デバイスサーバ１１から受信したインタラプト応答パケットに含まれるキーステータス情報を抽出してＵＳＢドライバ１２１２へ出力する。また、通信制御部１２１３は、キーボード１３から転送されたＵＳＢコンフィギュレーション情報およびディスクリプタ情報を受信すると、それらに含まれるインタラプト応答パケットの構造およびインタラプト要求情報を出力する周期に関する情報を取得する。そして、通信制御部１２１３は、取得したインタラプト応答パケットの構造およびインタラプト要求情報を出力する周期に関する情報を仕様情報記憶部１２３１に記憶させる。
【００２２】
計時部１２１４は、例えばソフトウェアタイマから構成され、通信制御部１２１３とデバイスサーバ１１の変換部１１１１との間の通信が遮断された後の経過時間を計時する。
【００２３】
次に、本実施の形態に係るデバイスサーバシステム１の動作を図４乃至図６を参照しながら説明する。なお、図４および図６では、ＵＳＢドライバ１２１２からキーボード向けへ送信されるハンドシェイクパケットの授受については図示を省略している。また、通信制御部１２１３は、キーボード１３から受信するインタラプト応答パケットの構造およびキーボード１３に対応するインタラプト要求情報の送信周期に関する情報を既に取得しているものとする。図４において、まずインタラプト要求情報が、クライアント装置１２のＵＳＢドライバ１２１２から通信制御部１２１３へ出力されると（ステップＳ２）、通信制御部１２１３は、インタラプト要求情報を含むインタラプト要求パケットを生成する。続いて、生成されたインタラプト要求パケットが、通信制御部１２１３からデバイスサーバ１１へ送信されると（ステップＳ３）、デバイスサーバ１１は、インタラプト要求パケットを受信し、そこに含まれるインタラプト要求情報を抽出する。その後、インタラプト要求情報が、デバイスサーバ１１からキーボード１３へ転送される（ステップＳ４）。
【００２４】
次に、インタラプト要求情報を受信した状態でキーボード１３が第１キーの押下を受け付けると（ステップＳ４）、第１キーが押下された状態を示すインタラプト応答情報が、キーボード１３からデバイスサーバ１１へ転送される（ステップＳ５）。このインタラプト応答情報は、例えば図５（Ａ）に示すように、複数のキーステータス情報の中の第１キーに対応するキーステータス情報が「１Ｅ」に設定され、他のキーに対応するキーステータス情報が、「００」に設定されている。このインタラプト応答情報は、第１キーのみが押下され他のキーは押下されていないことを示している。
【００２５】
図４に戻って、一方、デバイスサーバ１１は、インタラプト応答情報をカプセル化することによりインタラプト応答パケットを生成する。生成されたインタラプト応答パケットは、デバイスサーバ１１から通信制御部１２１３へ送信される（ステップＳ６）。続いて、通信制御部１２１３は、インタラプト応答パケットを受信すると、そこに含まれるインタラプト応答情報を抽出し、抽出されたインタラプト応答情報が、通信制御部１２１３からＵＳＢドライバ１２１２へ出力される（ステップＳ７）。その後、ＵＳＢドライバ１２１２は、例えば前述図５（Ａ）に示すようなインタラプト応答情報に含まれるキーステータス情報に基づいて、第１キーが押下されていることを通知する第１キー押下通知情報を生成する。生成された第１キー押下通知情報は、ＵＳＢドライバ１２１２から処理部１２１１へ出力される（ステップＳ８）。そして、処理部１２１１は、第１キー押下通知が入力されると、第１キーの押下に応じた動作を開始する（ステップＳ９）。
【００２６】
次に、インタラプト応答情報を取得したことを契機として、或いは、ステップＳ２でインタラプト要求情報を送信した後、予め設定された周期に達すると、再び、インタラプト要求が、ＵＳＢドライバ１２１２から通信制御部１２１３へ出力される（ステップＳ１０）。続いて、インタラプト要求情報を含むインタラプト要求パケットが、通信制御部１２１３からデバイスサーバ１１へ送信される（ステップＳ１１）。その後、インタラプト要求パケットに含まれるインタラプト要求情報が、デバイスサーバ１１からキーボード１３へ転送される（ステップＳ１２）。
【００２７】
また、通信制御部１２１３は、デバイスサーバ１１へキープアライブ要求パケットを予め設定された周期で繰り返し生成して送信する（ステップＳ１３）。一方、デバイスサーバ１１は、キープアライブ要求パケットを受信すると、キープアライブ応答パケットを生成して通信制御部１２１３へ送信する（ステップＳ１４）。通信制御部１２１３は、デバイスサーバ１１からキープアライブ応答パケットを受信する限り、デバイスサーバ１１との間での通信が可能と判定する。
【００２８】
次に、通信制御部１２１３が、キープアライブ要求パケットを送信後（ステップＳ１５）、デバイスサーバ１１からキープアライブ応答パケットを受信せず、デバイスサーバ１１との通信が遮断されたと判定したとする（ステップＳ１６）。その後、予め設定された基準時間△Ｔ１の間、デバイスサーバ１１との間での通信が復帰しなかったとする。この場合、第１キーが解放されたことを示すダミーのインタラプト応答情報が、通信制御部１２１３からＵＳＢドライバ１２１２へ送信される（ステップＳ１７）。このときのダミーのインタラプト応答情報は、例えば図５（Ｂ）に示すように、複数のキーステータス情報の全てが、「００」に設定されている。このインタラプト応答情報は、キーボード１３の全てのキーが押下されていないことを示している。
【００２９】
図４に戻って、ＵＳＢドライバ１２１２へ第１キーが解放された状態を示すダミーのインタラプト応答情報が入力されると、それに応じて、インタラプト要求情報が、ＵＳＢドライバ１２１２から通信制御部１２１３へ出力される（ステップＳ１８）。そして、通信制御部１２１３は、ＵＳＢドライバ１２１２から入力されたインタラプト要求情報を要求記憶部１２２１に記憶させる（ステップＳ１９）。
【００３０】
また、ＵＳＢドライバ１２１２は、例えば前述図５（Ｂ）に示すようなインタラプト応答情報に含まれるキーステータス情報に基づいて、第１キーが解放されていることを通知する第１キー解放通知情報を生成する。そして、生成された第１キー解放通知情報が、ＵＳＢドライバ１２１２から処理部１２１１へ出力される（ステップＳ２０）。そして、処理部１２１１は、第１キー解放通知が入力されると、第１キーの解放に応じた動作が実行される（ステップＳ２１）。
【００３１】
その後、図６に示すように、通信制御部１２１３が、デバイスサーバ１１へキープアライブ要求パケットを送信した後（ステップＳ２２）、デバイスサーバ１１からキープアライブ応答パケットを受信したとする（ステップＳ２３）。この場合、通信制御部１２１３は、デバイスサーバ１１との間での通信が復帰したと判定する（ステップＳ２４）。この後、要求記憶部１２２１が記憶するインタラプト要求情報を含むインタラプト要求パケットが、通信制御部１２１３からデバイスサーバ１１へ送信される（ステップＳ２５）。そして、デバイスサーバ１１は、インタラプト要求パケットを受信すると、そこに含まれるインタラプト要求情報を抽出する。その後、インタラプト要求情報が、デバイスサーバ１１からキーボード１３へ転送される（ステップＳ２６）。
【００３２】
ここで、キーボード１３が、ユーザによる第１キーの解放操作を受け付けたとする（ステップＳ２７）。この場合、先にキーボード１３へ転送されたインタラプト要求情報（ステップＳ１２）に応じて、第１キーが解放された状態を示すインタラプト応答情報が、ステップＳ５およびＳ６と同様にして、キーボード１３から通信制御部１２１３へ転送される（ステップＳ２８、Ｓ２９）。そして、通信制御部１２１３は、インタラプト応答情報が第１キーが解放された状態を示すものであると判定したとする（ステップＳ３０）。この場合、通信制御部１２１３は、インタラプト応答情報を破棄する（ステップＳ３１）。つまり、通信制御部１２１３は、キーボード１３からデバイスサーバ１１を介して取得される、ダミーのインタラプト応答情報に対応するインタラプト応答情報の内容に応じて、当該インタラプト応答情報を破棄する。
【００３３】
その後、キーボード１３が、ユーザによる第２キーの押下操作を受け付けたとする（ステップＳ３２）。この場合、先にキーボード１３へ転送されたインタラプト要求情報（ステップＳ２６）に応じて、第２キーが押下された状態を示すインタラプト応答情報が、ステップＳ５乃至Ｓ７と同様にして、キーボード１３からＵＳＢドライバ１２１２へ転送される（ステップＳ３３乃至Ｓ３５）。このときのインタラプト応答情報は、例えば図５（Ｃ）に示すように、複数のキーステータス情報の中の第２キーに対応するキーステータス情報が「１Ｅ」に設定され、他のキーに対応するキーステータス情報が、「００」に設定されている。このインタラプト応答情報は、第２キーのみが押下され他のキーは押下されていないことを示している。
【００３４】
図６に戻って、続いて、ＵＳＢドライバ１２１２は、例えば前述図５（Ｃ）に示すようなインタラプト応答情報に含まれるキーステータス情報に基づいて、第２キーが押下されていることを通知する第２キー押下通知情報を生成する。生成された第２キー押下通知情報は、ＵＳＢドライバ１２１２から処理部１２１１へ出力される（ステップＳ３６）。そして、処理部１２１１は、第２キー押下通知が入力されると、第２キーの押下に応じた動作を開始する（ステップＳ３７）。
【００３５】
次に、本実施の形態に係るクライアント装置１２の通信制御部１２１３が実行する通信制御処理について図７乃至図９を参照しながら説明する。この通信制御処理は、クライアント装置１２およびデバイスサーバ１１へ電源が投入された状態で、キーボード１３がデバイスサーバ１１を介してクライアント装置１２へ接続されたことを契機として開始される。ここにおいて、通信制御部１２１３は、キーボード１３からデバイスサーバ１１およびネットワークを経由してＵＳＢコンフィギュレーション情報およびディスクリプタ情報を取得することにより、インタラプト応答パケットの構造およびインタラプト要求情報を出力する周期に関する情報を取得して仕様情報記憶部１２３１に記憶させているものとする。
【００３６】
まず、通信制御部１２１３は、図７に示すように、ＵＳＢドライバ１２１２からＵＳＢ要求情報が入力されると、ＵＳＢ要求情報を含むＵＳＢ要求パケットを生成してデバイスサーバ１１へ送信する（ステップＳ１０１）。ＵＳＢ要求情報には、コントロール転送、バルク転送、インタラプト転送およびアイソクロナス転送それぞれにおける要求情報が含まれる。
【００３７】
次に、通信制御部１２１３は、ＵＳＢ要求パケットに対応するＵＳＢ応答パケットを受信する（ステップＳ１０２）。ＵＳＢ応答情報には、コントロール転送、バルク転送、インタラプト転送およびアイソクロナス転送それぞれにおける応答情報が含まれる。続いて、通信制御部１２１３は、ＵＳＢ応答パケットに含まれるＵＳＢ応答情報がインタラプト応答情報であり且つ転送元のＵＳＢデバイスがＨＩＤであるか否かを判定する（ステップＳ１０３）。通信制御部１２１３は、ＵＳＢ応答情報がインタラプト応答情報でない、或いは転送元のＵＳＢデバイスがＨＩＤでないと判定すると（ステップＳ１０３：Ｎｏ）、ＵＳＢ応答情報をＵＳＢドライバ１２１２へ出力する（ステップＳ１０４）。その後、通信制御部１２１３は、再びステップＳ１０１の処理を実行する。
【００３８】
一方、通信制御部１２１３は、ＵＳＢ応答情報がインタラプト応答情報であり且つ転送元のＵＳＢデバイスがＨＩＤであると判定すると（ステップＳ１０３：Ｙｅｓ）、ＵＳＢ応答情報、即ち、インタラプト応答情報がキー押下を示しているか否かを判定する（ステップＳ１０５）。通信制御部１２１３は、インタラプト応答情報がキー押下を示していないと判定すると（ステップＳ１０５：Ｎｏ）、インタラプト応答情報をＵＳＢドライバ１２１２へ出力してから（ステップＳ１０６）、インタラプト要求パケットを生成して送信する（ステップＳ１０７）。その後、通信制御部１２１３は、再び前述のステップＳ１０２の処理を実行する。一方、通信制御部１２１３は、インタラプト応答情報がキー押下を示していると判定すると（ステップＳ１０５：Ｙｅｓ）、キーが押下されたことを通知するキー押下通知情報を処理部１２１１へ出力し（ステップＳ１０８）、インタラプト応答情報をＵＳＢドライバ１２１２へ出力する（ステップＳ１０９）。次に、通信制御部１２１３は、ＵＳＢドライバ１２１２から出力されたインタラプト要求情報を含むインタラプト要求パケットを生成してデバイスサーバ１１へ送信する（ステップＳ１１０）。その後、通信制御部１２１３は、図８に示すように、デバイスサーバ１１の変換部１１１１との通信状態を判定する通信状態判定処理を実行する（ステップＳ１１１）。通信状態判定処理では、通信制御部１２１３がキープアライブ要求パケットを変換部１１１１へ送信する。そして、通信制御部１２１３は、予め設定された判定期間内に変換部１１１１からキープアライブ応答パケットを受信すると、変換部１１１１との通信が可能であると判定する。一方、通信制御部１２１３は、判定期間内に変換部１１１１からキープアライブ応答パケットを受信しない場合、再度キープアライブ要求パケットを変換部１１１１へ送信する。そして、通信制御部１２１３は、キープアライブ要求パケットを予め設定された回数だけ繰り返し送信しても変換部１１１１からキープアライブ応答パケットを受信しない場合、変換部１１１１との通信が遮断されたと判定する。
【００３９】
続いて、通信制御部１２１３は、通信状態判定処理（ステップＳ１１１）の結果に基づき、変換部１１１１との通信が遮断されたか否かを判定する（ステップＳ１１２）。通信制御部１２１３は、変換部１１１１との通信が可能であると判定すると（ステップＳ１１２：Ｎｏ）、デバイスサーバ１１からインタラプト応答パケットが受信されたかを判定する（ステップＳ１１３）。通信制御部１２１３は、インタラプト要求パケットを受信していないと判定すると（ステップＳ１１３：Ｎｏ）、再度通信状態判定処理を実行する（ステップＳ１１１）。一方、通信制御部１２１３は、インタラプト要求パケットを受信したと判定すると（ステップＳ１１３：Ｙｅｓ）、前述のステップＳ１０５の処理を実行する。
【００４０】
また、通信制御部１２１３は、変換部１１１１との通信が遮断されたと判定すると（ステップＳ１１２：Ｙｅｓ）、計時部１２１４のタイマをスタートさせ、通信遮断状態が予め設定された基準時間△Ｔ１だけ経過したか否かを判定する（ステップＳ１１４）。ここで、タイマは通信遮断状態が続く限りカウント動作を続ける。そして、通信制御部１２１３は、通信遮断状態が予め設定された基準時間△Ｔ１だけ経過していないと判定すると（ステップＳ１１４：Ｎｏ）、再びステップＳ１１１の処理を実行する。基準時間△Ｔ１は、例えば５ｓｅｃ程度に設定される。
【００４１】
一方、通信制御部１２１３が、計時部１２１４のタイマのカウント値に基づいて、通信遮断状態で予め設定された基準時間△Ｔ１だけ経過したと判定すると（ステップＳ１１４：Ｙｅｓ）、通信制御部１２１３は、キー解放状態を示すダミーのインタラプト応答情報をＵＳＢドライバ１２１２へ出力する（ステップＳ１１５）。次に、通信制御部１２１３は、ダミーのインタラプト応答情報に対応するインタラプト要求情報を要求記憶部１２２１に記憶させる（ステップＳ１１６）。続いて、通信制御部１２１３は、変換部１１１１との通信状態を判定する通信状態判定処理を実行する（ステップＳ１１７）。その後、通信制御部１２１３は、通信状態判定処理（ステップＳ１１７）の結果に基づき、変換部１１１１との通信が復帰したか否かを判定する（ステップＳ１１８）。通信制御部１２１３は、変換部１１１１との通信が復帰していないと判定すると（ステップＳ１１８：Ｎｏ）、再びステップＳ１１７の処理を実行する。
【００４２】
一方、通信制御部１２１３は、変換部１１１１との通信が復帰したと判定すると（ステップＳ１１８：Ｙｅｓ）、要求記憶部１２２１に記憶したインタラプト要求情報を基に、インタラプト要求パケットを生成して変換部１１１１へ送信する（ステップＳ１１９）。次に、通信制御部１２１３は、インタラプト応答パケットを受信する（ステップＳ１２０）。なお、ステップＳ１１９の処理とステップＳ１２０の処理とは順序が逆になってもよい。
【００４３】
その後、通信制御部１２１３は、図９に示すように、インタラプト応答情報がキー解放状態を示しているか否かを判定する（ステップＳ１２１）。通信制御部１２１３は、インタラプト応答情報がキー解放状態を示していないと判定すると（ステップＳ１２１：Ｎｏ）、抽出したインタラプト応答情報をＵＳＢドライバ１２１２へ出力する（ステップＳ１２２）。その後、通信制御部１２１３は、ＵＳＢドライバ１２１２からインタラプト要求情報が入力されたか否かを判定する（ステップＳ１２３）。通信制御部１２１３は、ＵＳＢドライバ１２１２からインタラプト要求情報が入力されていないと判定すると（ステップＳ１２３：Ｎｏ）、前述のステップＳ１０２の処理を実行する。一方、通信制御部１２１３は、ＵＳＢドライバ１２１２からインタラプト要求情報が入力されたと判定すると（ステップＳ１２３：Ｙｅｓ）、を破棄してから（ステップＳ１２４）、前述のステップＳ１０２の処理を実行する。このインタラプト要求情報の破棄は、ステップＳ１１５におけるダミーのインタラプト応答情報の送信を行ったことと関係して、インタラプト応答情報とインタラプト要求情報とを一対一で対応させるための処理である。一方、通信制御部１２１３は、ステップＳ１２１において、インタラプト応答情報がキー解放状態を示していると判定すると（ステップＳ１２１：Ｙｅｓ）、キー解放状態を示すインタラプト応答情報をＵＳＢドライバ１２１２に出力せず破棄する（ステップＳ１２５）。つまり、通信制御部１２１３は、キーボード１３からデバイスサーバ１１を介して取得される、ダミーのインタラプト応答情報に対応するインタラプト応答情報の内容に応じて、当該インタラプト応答情報を破棄する。その後、通信制御部１２１３は、前述のステップＳ１０２の処理を実行する。なお、通信制御部１２１３は、通信制御処理の実行途中で、例えばユーザがクライアント装置２０１２のユーザＩ／Ｆ（図示せず）を介して通信制御処理を終了するよう指示する割り込み命令を発行させると、その時点で通信制御処理を終了する。
【００４４】
以上説明したように、本実施の形態に係るデバイスサーバシステム１によれば、通信制御部１２１３が、クライアント装置１２とデバイスサーバ１１との間での通信状態を監視する。そして、ユーザによるキーボード１３のキーが押下された後、通信制御部１２１３は、クライアント装置１２とデバイスサーバ１１との間での通信が遮断された状態で基準時間経過したと判定すると、キーが解放されたことを示すダミーのインタラプト応答情報をＵＳＢドライバ１２１２へ出力する。これにより、クライアント装置１２とデバイスサーバ１１との間での通信が遮断されている間、処理部１２１１がキー押下通知情報に応じた処理を実行できない状態が継続してしまうことが防止される。ここで、キーボード１３からキー押下、キー解放の２つのインタラプト応答情報がクライアント装置１２へ転送されて処理部１２１１での処理が完了するとする。この場合、キーボード１３からキー押下を示すインタラプト応答情報がクライアント装置１２へ転送された直後に通信が遮断されたときでも、通信が遮断されている間、処理部１２１１での処理が完了せずに放置されることが無い。それ故、クライアント装置１２を使用するユーザの利便性が向上する。
【００４５】
ところで、従来技術では、クライアント装置１２は、キーボード１３からキー押下を示すインタラプタ応答情報を受信した後、キー解放を示すインタラプト応答情報を受信するまで、キーが押下され続けている、即ちキー入力が継続していると認識する。従って、クライアント装置１２とデバイスサーバ１１との間で無線通信の遮断や遅延等により例えばキーボード１３に対応するインタラプト要求情報出力周期よりも長い時間、キー解放を示すインタラプト応答情報を受信できない場合、クライアント装置１２は、キー入力が継続していると認識してしまう。これに対して、本実施の形態に係るデバイスサーバシステムでは、通信制御部１２１３が、キーボード１３からキー押下を示すインタラプタ応答情報を受信した後、キー解放を示すインタラプト応答情報を受信しない状態で基準時間△Ｔ１だけ経過すると、キー解放を示すダミーのインタラプト応答情報をＵＳＢドライバ１２１２へ出力する。これにより、ユーザの意図に反してクライアント装置１２がキー入力の継続に応じた処理を実行し続けてしまうことを防止できる。
【００４６】
また、本実施の形態に係る通信制御部１２１３がダミーのインタラプト応答情報をＵＳＢドライバ１２１２へ出力した後にクライアント装置１２とデバイスサーバ１１との間での通信が復帰したとする。この場合、通信制御部１２１３は、キーボード１３からデバイスサーバ１１を介して取得される、ダミーのインタラプト応答情報に対応するインタラプト応答情報の内容に応じて、当該インタラプト応答情報を破棄する。これにより、クライアント装置１２からキーボード１３へ転送されるインタラプト要求情報と、キーボード１３からクライアント装置１２へ転送されるインタラプト応答情報と、を一対一で対応させることができる。従って、インタラプト要求情報とインタラプト応答情報との不整合に起因して、クライアント装置１２とキーボード１３との間でのインタラプト転送の不具合の発生を抑制できる。
【００４７】
（実施の形態２）
本実施の形態に係るデバイスサーバシステムは、ＨＩＤとして、キーボードの代わりにタッチパネルを備える点が実施の形態１に係るデバイスサーバシステム１と相違する。図１０に示すように、本実施の形態に係るデバイスサーバシステム２は、デバイスサーバ１１と、クライアント装置２０１２と、タッチパネル２０１３と、ディスプレイ１４と、を備える。なお、図１０において、実施の形態１と同様の構成については図１と同一の符号を付している。クライアント装置２０１２のハードウェア構成は、実施の形態１に係るクライアント装置１２と同様である。
【００４８】
クライアント装置２０１２では、ＣＰＵ１２１が、補助記憶部１２３が記憶するプログラムを主記憶部１２２に読み込んで実行することにより、図１１に示すように、処理部２２１１とＵＳＢドライバ１２１２と通信制御部２２１３と計時部１２１４として機能する。なお、図１１において実施の形態１と同様の構成については図３と同一の符号を付している。
【００４９】
処理部２２１１は、ＵＳＢドライバ１２１２から入力されるタッチ状態通知情報またはタッチ解放情報に応じた処理を実行することにより映像情報を生成してディスプレイ１４へ出力する。処理部２２１１は、タッチパネル２０１３からタッチ状態を示すインタラプタ応答情報が転送された後、タッチ解放を示すインタラプト応答情報が転送されない状態で予め設定された基準時間が経過するとタッチ状態の解放に応じた処理を実行する。
【００５０】
通信制御部２２１３は、ＵＳＢドライバ１２１２から入力されるインタラプト要求情報を含むインタラプト要求パケットを生成してデバイスサーバ１１へ送信する。また、通信制御部２２１３は、デバイスサーバ１１から受信したインタラプト応答パケットに含まれるインタラプト応答情報を抽出してＵＳＢドライバ１２１２へ出力する。
【００５１】
次に、本実施の形態に係るデバイスサーバシステム２の動作を図１２乃至図１４を参照しながら説明する。なお、図１２および図１４では、ＵＳＢドライバ１２１２からタッチパネル２０１３向けへ送信されるハンドシェイクパケットの授受については図示を省略している。また、通信制御部２２１３は、タッチパネル２０１３から受信するインタラプト応答パケットの構造およびタッチパネル２０１３に対応するインタラプト要求情報の送信周期に関する情報を既に取得しているものとする。図１２において、まず、タッチパネル２０１３が、ユーザによりタッチされたことを受け付けたとする（ステップＳ５１）。次に、インタラプト要求情報が、クライアント装置２０１２のＵＳＢドライバ１２１２から通信制御部２２１３へ出力される（ステップＳ５２）。そうすると、インタラプト要求情報を含むインタラプト要求パケットが、通信制御部２２１３からデバイスサーバ１１へ送信される（ステップＳ５３）。そして、インタラプト要求パケットに含まれるインタラプト要求情報が、デバイスサーバ１１からタッチパネル２０１３へ転送される（ステップＳ５４）。
【００５２】
次に、タッチパネル２０１３がユーザにタッチされた状態（タッチ状態）でインタラプト要求情報を受信すると、タッチ状態を示すインタラプト応答情報が、タッチパネル２０１３からデバイスサーバ１１へ転送される（ステップＳ５５）。このインタラプト応答情報は、例えば図１３（Ａ）に示すように、タッチ有無を示すステータス情報が「０ｘ０１」に設定され、タッチパネル２０１３上におけるユーザにタッチされている部分のＸ座標、Ｙ座標を示す情報が設定されている。このインタラプト応答情報は、タッチパネル２０１３上における座標（６４，−６４）に対応する部分がタッチされていることを示している。
【００５３】
図１２に戻って、一方、デバイスサーバ１１は、インタラプト応答情報をカプセル化することによりインタラプト応答パケットを生成する。生成されたインタラプト応答パケットは、デバイスサーバ１１から通信制御部２２１３へ送信される（ステップＳ５６）。続いて、インタラプト応答パケットに含まれるインタラプト応答情報が、通信制御部２２１３からＵＳＢドライバ１２１２へ出力される（ステップＳ５７）。その後、タッチ状態を示すインタラプト応答情報に基づいて、タッチ状態を通知する示すタッチ状態通知情報が、ＵＳＢドライバ１２１２から処理部２２１１へ出力される（ステップＳ５８）。そして、処理部２２１１は、タッチ状態通知情報が入力されると、タッチ状態に応じた動作を開始する（ステップＳ５９）。
【００５４】
次に、インタラプト応答情報を取得したことを契機として、或いは、ステップＳ５２でインタラプト要求情報を送信した後、予め設定された周期に達すると、再び、インタラプト要求が、ＵＳＢドライバ１２１２から通信制御部２２１３へ出力される（ステップＳ６０）。続いて、インタラプト要求情報を含むインタラプト要求パケットが、通信制御部２２１３からデバイスサーバ１１へ送信される（ステップＳ６１）。その後、インタラプト要求パケットに含まれるインタラプト要求情報が、デバイスサーバ１１からタッチパネル２０１３へ転送される（ステップＳ６２）。以後、通信制御部２２１３とデバイスサーバ１１との間での通信が可能である限り、インタラプト要求情報のＵＳＢドライバ１２１２からタッチパネル２０１３への転送、インタラプト応答情報のタッチパネル２０１３からＵＳＢドライバ１２１２への転送が予め設定された周期で繰り返し実行される。
【００５５】
また、通信制御部２２１３とデバイスサーバ１１の変換部１１１１との間では、前述のインタラプト要求パケット、インタラプト応答パケットの送受信と同時に、通信状態判定処理が実行される。この通信状態判定処理では、キープアライブ要求パケットが、通信制御部２２１３からデバイスサーバ１１へ予め設定された周期で繰り返し送信される（ステップＳ６３）。一方、デバイスサーバ１１は、キープアライブ要求パケットを受信すると、キープアライブ応答パケットを生成してクライアント装置２０１２へ送信する（ステップＳ６４）。通信制御部２２１３は、デバイスサーバ１１からキープアライブ応答パケットを受信する限り、デバイスサーバ１１との間での通信が可能と判定する。
【００５６】
次に、通信制御部２２１３が、キープアライブ要求パケットを送信後（ステップＳ６５）、デバイスサーバ１１からキープアライブ応答パケットを受信せず、デバイスサーバ１１との通信が遮断されたと判定したとする（ステップＳ６６）。その後、予め設定された基準時間△Ｔ２の間、デバイスサーバ１１との間での通信が復帰しなかったとする。この場合、継続してタッチ状態であることを示すダミーのインタラプト応答情報が、通信制御部２２１３からＵＳＢドライバ１２１２へ送信される（ステップＳ６７）。ＵＳＢドライバ１２１２へタッチ状態であることを示すダミーのインタラプト応答情報が入力されると、それに応じて、インタラプト要求情報が、ＵＳＢドライバ１２１２から通信制御部２２１３へ出力される（ステップＳ６８）。そして、通信制御部２２１３は、ＵＳＢドライバ１２１２から入力されたインタラプト要求情報を要求記憶部２２２１に記憶させる（ステップＳ６９）。なお、基準時間△Ｔ２は、タッチパネル２０１３に対応するインタラプタ要求情報の出力周期と略同じ長さに設定され、例えば数ｍｓｅｃ程度に設定される。
【００５７】
また、ＵＳＢドライバ１２１２は、例えば前述図１３（Ａ）に示すようなインタラプト応答情報に基づいて、タッチ状態を示すタッチ状態通知情報を生成する。そして、生成されたタッチ状態通知情報が、ＵＳＢドライバ１２１２から処理部２２１１へ出力される（ステップＳ７０）。そして、処理部２２１１は、タッチ状態通知情報が入力されると、タッチ状態に応じた動作を実行される（ステップＳ７１）。
【００５８】
その後、図１４に示すように、通信制御部２２１３が、デバイスサーバ１１へキープアライブ要求パケットを送信した後（ステップＳ７２）、デバイスサーバ１１からキープアライブ応答パケットを受信したとする（ステップＳ７３）。この場合、通信制御部２２１３は、デバイスサーバ１１との間での通信が復帰したと判定する（ステップＳ７４）。この場合、先にタッチパネル２０１３へ転送されたインタラプト要求情報（ステップＳ６２）に応じて、タッチ状態を示すインタラプト応答情報が、ステップＳ５５およびＳ５６と同様にして、タッチパネル２０１３から通信制御部２２１３へ転送される（ステップＳ７５、Ｓ７６）。そして、通信制御部２２１３へ転送されたインタラプト応答情報が、通信制御部２２１３からＵＳＢドライバ１２１２へ出力される（ステップＳ７７）。
【００５９】
また、通信制御部２２１３とデバイスサーバ１１との間での通信が復帰すると、要求記憶部２２２１が記憶するインタラプト要求情報を含むインタラプト要求パケットが、通信制御部２２１３からデバイスサーバ１１へ送信される（ステップＳ７８）。そして、インタラプト要求パケットに含まれるインタラプト要求情報が、デバイスサーバ１１からタッチパネル２０１３へ転送される（ステップＳ７９）。また、インタラプト要求情報がタッチパネル２０１３へ転送されると、それに応じて、インタラプト応答情報が、ステップＳ５５乃至Ｓ５７と同様にして、タッチパネル２０１３からＵＳＢドライバ１２１２へ転送される（ステップＳ８０乃至Ｓ８２）。
【００６０】
ここにおいて、ダミーのインタラプト応答情報が通信制御部２２１３からＵＳＢドライバ１２１２へ既に出力されているので（ステップＳ６７）、インタラプト応答情報とインタラプト要求情報とを一対一で対応させるための処理が行われる。具体的には、インタラプト要求情報がＵＳＢドライバ１２１２から通信制御部２２１３へ出力されると（ステップＳ８３）、通信制御部２２１３が、入力されたインタラプト要求情報を破棄する（ステップＳ８４）。ここで、通信制御部２２１３により破棄されるインタラプト要求情報の数は、ダミーのインタラプト応答情報を出力した回数に相当する。このように、通信制御部２２１３が、ダミーのインタラプト応答情報をＵＳＢドライバ１２１２へ出力した後にクライアント装置２０１２とデバイスサーバ１１との間での通信が復帰した場合、ＵＳＢドライバ１２１２から入力される、ダミーのインタラプト応答情報に対応するインタラプト要求情報を破棄する。
【００６１】
その後、インタラプト要求情報が、ステップＳ５２乃至Ｓ５４と同様にして、ＵＳＢドライバ１２１２から通信制御部２２１３およびデバイスサーバ１１を介してタッチパネル２０１３へ転送される（ステップＳ８５乃至Ｓ８７）。そして、タッチパネル２０１３が、ユーザによるタッチ解放操作を受け付けたとする（ステップＳ８８）。そうすると、タッチ解放を示すインタラプト応答情報が、ステップＳ５５乃至Ｓ５７と同様にして、タッチパネル２０１３からＵＳＢドライバ１２１２へ転送される（ステップＳ８９乃至Ｓ９１）。このときのインタラプト応答情報は、例えば図１３（Ｂ）に示すように、タッチ有無を示すステータス情報が「０ｘ００」に設定されている。
【００６２】
図１４に戻って、続いて、ＵＳＢドライバ１２１２は、例えば前述図１３（Ｂ）に示すようなインタラプト応答情報に基づいて、タッチ解放を通知するタッチ解放通知情報を生成する。生成されたタッチ解放通知情報は、ＵＳＢドライバ１２１２から処理部２２１１へ出力される（ステップＳ９２）。そして、処理部２２１１は、タッチ解放通知情報が入力されると、タッチ解放通知情報に応じた処理を実行する（ステップＳ９３）。
【００６３】
次に、本実施の形態に係るクライアント装置２０１２の通信制御部２２１３が実行する通信制御処理について図１５および図１６を参照しながら説明する。この通信制御処理は、クライアント装置２０１２およびデバイスサーバ１１へ電源が投入された状態で、タッチパネル２０１３がデバイスサーバ１１を介してクライアント装置２０１２へ接続されたことを契機として開始される。ここにおいて、通信制御部２２１３は、タッチパネル２０１３からデバイスサーバ１１およびネットワークを経由してＵＳＢコンフィギュレーション情報およびディスクリプタ情報を取得することにより、インタラプト応答パケットの構造およびインタラプト要求情報を出力する周期に関する情報を取得して仕様情報記憶部２２３１に記憶させているものとする。
【００６４】
まず、通信制御部２２１３は、図１５に示すように、ステップＳ２０１乃至Ｓ２０４の処理を実行する。ステップＳ２０１乃至Ｓ２０４の処理の内容は、実施の形態１で説明したステップＳ１０１乃至Ｓ１０４の処理の内容と同様である。そして、通信制御部１２１３は、ステップＳ２０３の処理において、ＵＳＢ応答情報がインタラプト応答情報であり且つ転送元のＵＳＢデバイスがＨＩＤであると判定すると（ステップＳ２０３：Ｙｅｓ）、ＵＳＢ応答情報、即ち、インタラプト応答情報がタッチ状態を示すか否かを判定する（ステップＳ２０５）。通信制御部２２１３は、タッチ状態でないと判定すると（ステップＳ２０５：Ｎｏ）、インタラプト応答情報をＵＳＢドライバ１２１２へ出力してから（ステップＳ２０６）、インタラプト要求パケットを生成して送信する（ステップＳ２０７）。その後、通信制御部１２１３は、再び前述のステップＳ２０２の処理を実行する。一方、通信制御部２２１３は、タッチ状態であると判定すると（ステップＳ２０５：Ｙｅｓ）、タッチパネル２０１３がタッチされていることを通知するタッチ状態通知情報を処理部２２１１へ出力し（ステップＳ２０８）、インタラプト応答情報をＵＳＢドライバ１２１２へ出力する（ステップＳ２０９）。次に、通信制御部１２１３は、ＵＳＢドライバ１２１２から出力されたインタラプト要求情報を含むインタラプト要求パケットを生成してデバイスサーバ１１へ送信する（ステップＳ２１０）。その後、通信制御部２２１３は、図１６に示すように、デバイスサーバ１１の変換部１１１１との間の通信状態判定処理を実行する（ステップＳ２１１）。通信状態判定処理は、実施の形態１で説明した通信状態判定処理と同様である。
【００６５】
次に、通信制御部２２１３は、通信状態判定処理において、変換部１１１１との通信が遮断されたか否かを判定する（ステップＳ２１２）。通信制御部２２１３は、変換部１１１１との通信が可能であると判定すると（ステップＳ２１２：Ｎｏ）、デバイスサーバ１１からインタラプト応答パケットが受信されたか否かを判定する（ステップＳ２１３）。通信制御部２２１３は、インタラプト要求パケットを受信していないと判定すると（ステップＳ２１３：Ｎｏ）、再度通信状態判定処理を実行する（ステップＳ２１１）。一方、通信制御部２２１３は、インタラプト要求パケットを受信したと判定すると（ステップＳ２１３：Ｙｅｓ）、前述のステップＳ２０５の処理を実行する。
【００６６】
また、通信制御部２２１３が、変換部１１１１との通信が遮断されたと判定すると（ステップＳ２１２：Ｙｅｓ）、計時部１２１４のタイマをスタートさせ、通信遮断状態が予め設定された基準時間△Ｔ２だけ経過したか否かを判定する（ステップＳ２１４）。この基準時間は、前述のとおりタッチパネル２０１３に対応するインタラプタ要求情報の出力周期と略同じ長さに設定され、例えば数ｍｓｅｃ程度に設定される。ここで、タイマは通信遮断状態が続く限りカウント動作を続ける。そして、通信制御部２２１３は、通信遮断状態が予め設定された基準時間△Ｔ２だけ経過していないと判定すると（ステップＳ２１４：Ｎｏ）、再びステップＳ２１１の処理を実行する。
【００６７】
一方、通信制御部２２１３が、計時部１２１４のタイマのカウント値に基づいて、通信遮断状態で予め設定された基準時間△Ｔ２だけ経過したと判定すると（ステップＳ２１４：Ｙｅｓ）、通信制御部２２１３は、タッチ状態を示すダミーのインタラプト応答情報をＵＳＢドライバ１２１２へ出力する（ステップＳ２１５）。次に、通信制御部２２１３は、インタラプト要求情報を既に要求記憶部２２２１に記憶させているか否かを判定する（ステップＳ２１６）。通信制御部２２１３は、インタラプト要求情報を既に要求記憶部２２１に記憶させていると判定すると（ステップＳ２１６：Ｙｅｓ）、インタラプト要求情報を破棄してから（ステップＳ２１８）、後述のステップＳ２１９の処理を実行する。一方、通信制御部２２１３は、インタラプト要求情報を未だ要求記憶部２２２１に記憶させていないと判定すると（ステップＳ２１６：Ｎｏ）、ダミーのインタラプト応答情報に対応するインタラプト要求情報を要求記憶部２２２１に記憶させる（ステップＳ２１７）。続いて、通信制御部２２１３は、変換部１１１１との通信状態を判定する通信状態判定処理を実行する（ステップＳ２１９）。その後、通信制御部２２１３は、通信状態判定処理（ステップＳ２１９）の結果に基づき、変換部１１１１との通信が復帰したか否かを判定する（ステップＳ２２０）。
【００６８】
通信制御部２２１３は、変換部１１１１との通信が復帰したと判定すると（ステップＳ２２０：Ｙｅｓ）、インタラプト応答パケットを受信し（ステップＳ２２１）、インタラプト応答パケットからインタラプト応答情報を抽出してＵＳＢドライバ１２１２へ出力する（ステップＳ２２２）。次に、通信制御部２２１３は、インタラプト要求パケットを生成して変換部１１１１へ送信する（ステップＳ２２３）。なお、ステップＳ２２１およびＳ２２２の処理とステップＳ２２３の処理とは順序が逆になってもよい。
【００６９】
続いて、通信制御部２２１３は、ＵＳＢドライバ１２１２からインタラプト要求情報が入力されたか否かを判定する（ステップＳ２２４）。通信制御部２２１３は、ＵＳＢドライバ１２１２からインタラプト要求情報が入力されていないと判定すると（ステップＳ２２４：Ｎｏ）、前述のステップＳ２０２の処理を実行する。一方、通信制御部２２１３は、ＵＳＢドライバ１２１２からインタラプト要求情報が入力されたと判定すると（ステップＳ２２４：Ｙｅｓ）、インタラプト要求情報を破棄する（ステップＳ２２５）。つまり、通信制御部２２１３が、ダミーのインタラプト応答情報をＵＳＢドライバ１２１２へ出力した後にクライアント装置２０１２とデバイスサーバ１１との間での通信が復帰した場合、ＵＳＢドライバ１２１２から入力される、ダミーのインタラプト応答情報に対応するインタラプト要求情報を破棄する。インタラプト応答情報とインタラプト要求情報とを一対一で対応させるための処理である。その後、通信制御部２２１３は、前述のステップＳ２０２の処理を実行する。
【００７０】
また、通信制御部２２１３は、ステップＳ２２０の処理において、変換部１１１１との通信が復帰していないと判定すると（ステップＳ２２０：Ｎｏ）、通信が遮断した状態で予め設定された基準時間△Ｔ３だけ経過したか否かを判定する（ステップＳ２２６）。ここで、基準時間△Ｔ３は、例えば５ｓｅｃに設定される。通信制御部２２１３は、通信遮断状態で予め設定された基準時間△Ｔ３だけ経過したと判定すると（ステップＳ２２６：Ｙｅｓ）、タッチ解放を示すダミーのインタラプト応答情報をＵＳＢドライバ１２１２へ出力する（ステップＳ２２７）。その後、通信制御部２２１３は、変換部１１１１との通信状態を判定する通信状態判定処理を実行する（ステップＳ２２８）。次に、通信制御部２２１３は、通信状態判定処理（ステップＳ２２８）の結果に基づき、変換部１１１１との通信が復帰したか否かを判定する（ステップＳ２２９）。
【００７１】
通信制御部２２１３は、変換部１１１１との通信が復帰したと判定すると（ステップＳ２２９：Ｙｅｓ）、前述のステップＳ２２１の処理を実行する。一方、通信制御部２２１３は、変換部１１１１との通信が復帰しないと判定すると（ステップＳ２２９：Ｎｏ）、再びステップＳ２２８の処理を実行する。また、通信制御部２２１３は、ステップＳ２２６の処理において、通信遮断状態が未だ基準時間△Ｔ３だけ経過していないと判定すると（ステップＳ２２６：Ｎｏ）、通信が遮断した状態で予め設定された基準時間△Ｔ２だけ経過したか否かを判定する（ステップＳ２３０）。通信制御部２２１３は、通信遮断状態で予め設定された基準時間△Ｔ２だけ経過したと判定すると（ステップＳ２３０：Ｙｅｓ）、前述のステップＳ２１５の処理を実行する。一方、通信制御部２２１３は、通信遮断状態で予め設定された基準時間△Ｔ２だけ経過していないと判定すると（ステップＳ２３０：Ｎｏ）、前述のステップＳ２１９の処理を実行する。 なお、通信制御部２２１３は、通信制御処理の実行途中で、例えばユーザがクライアント装置２０１２のユーザＩ／Ｆ（図示せず）を介して通信制御処理を終了するよう指示する割り込み命令を発行させると、その時点で通信制御処理を終了する。
【００７２】
ここで、本実施の形態に係るデバイスサーバシステム２の動作について比較例に係るデバイスサーバシステムの動作と比較しながら説明する。比較例に係るデバイスサーバシステムは、ハードウェア構成はデバイスサーバシステム２と同様である。但し、クライアント装置２０１２のＵＳＢドライバへのダミーのインタラプト応答情報の入力が実行されない点が相違する。例えば図１７（Ａ）の矢印ＡＲ１に示すように、ユーザが、ディスプレイ１４の画面１４１を見ながら、ファイルＦ１をフォルダＦ２上にドラッグする操作を行っているとする。この場合、比較例に係るデバイスサーバシステムでは、ファイルＦ１を移動させている途中でクライアント装置２０１２とデバイスサーバ１１との間での通信が遮断されると、フォルダＦ２に至る途中でファイルＦ１の指定が解除されてしまう。そうすると、図１７（Ａ）に示すように、フォルダＦ２に至る途中でファイルＦ１が放置され、ユーザはファイルＦ１をフォルダＦ２に移動させる操作を行うことができなくなる。
【００７３】
これに対して、本実施の形態に係るデバイスサーバシステム２では、比較例の場合、ファイルＦ１を移動させている途中でクライアント装置２０１２とデバイスサーバ１１との間での通信が遮断されると、通信制御部２２１３が、ＵＳＢドライバ１２１２へタッチ状態を示すダミーのインタラプト応答情報を出力する。これにより、クライアント装置２０１２とデバイスサーバ１１との間での通信が遮断されている間もファイルＦ１の指定が維持されるので、図１７（Ｂ）に示すように、ユーザはファイルＦ１をフォルダＦ２に移動させる操作を行うことができる。
【００７４】
以上説明したように、本実施の形態に係るデバイスサーバシステム２によれば、通信制御部２２１３が、ダミーのインタラプト応答情報をＵＳＢドライバ１２１２へ出力した後にクライアント装置２０１２とデバイスサーバ１１との間での通信が復帰した場合、ＵＳＢドライバ１２１２から入力される、ダミーのインタラプト応答情報に対応するインタラプト要求情報を破棄する。これにより、クライアント装置２０１２からタッチパネル２０１３へ転送されるインタラプト要求情報と、タッチパネル２０１３からクライアント装置２０１２へ転送されるインタラプト応答情報と、を一対一で対応させることができる。従って、インタラプト要求情報とインタラプト応答情報との不整合に起因して、クライアント装置２０１２とタッチパネル２０１３との間でのインタラプト転送の不具合の発生を抑制できる。
【００７５】
（変形例）
以上、本発明の各実施の形態について説明したが、本発明は各実施の形態の構成に限定されるものではない。例えばユーザがクライアント装置のユーザＩ／Ｆまたはキーボード１３、タッチパネル２０１３のユーザＩ／Ｆを介して、ダミーのインタラプト応答情報をＵＳＢドライバ１２１２へ出力しないように設定できるようにしてもよい。
【００７６】
各実施の形態では、クライアント装置とキーボード１３またはタッチパネル２０１３との間でインタラプト転送を行う場合について説明したが、デバイスサーバ１１に接続されるＨＩＤは、インタラプト転送を行うものに限定されない。例えば、アイソクロナス入力転送、バルク入力転送を実行するＨＩＤであってもよい。
【００７７】
なお、本発明に係るクライアント装置の各種機能は、専用のシステムによらず、コンピュータシステムを用いて実現可能である。例えば、ネットワークに接続されているコンピュータに、上記動作を実行するためのプログラムを、コンピュータシステムが読み取り可能な非一時的な記録媒体（ＣＤ−ＲＯＭ等）に格納して配布し、当該プログラムをコンピュータシステムにインストールすることにより、前述の通信制御処理を実行するクライアント装置を構成してもよい。また、コンピュータにプログラムを提供する方法は任意である。例えば、プログラムは、通信回線のサーバにアップロードされ、通信回線を介してコンピュータに配信されてもよい。
【００７８】
以上、本発明の実施の形態および変形例（なお書きに記載したものを含む。以下、同様。）について説明したが、本発明はこれらに限定されるものではない。本発明は、実施の形態および変形例が適宜組み合わされたもの、それに適宜変更が加えられたものを含む。
【産業上の利用可能性】
【００７９】
本発明は、例えば管理工数削減を目的としたシンクライアント環境のネットワークシステム或いはタッチパネルを利用したインフォメーションディスプレイを含むネットワークシステムとして好適である。
【符号の説明】
【００８０】
１，２：デバイスサーバシステム、１１：デバイスサーバ、１２，２０１２：クライアント装置、１３：キーボード、１４：ディスプレイ、１１１，１２１：ＣＰＵ、１１２，１２２：主記憶部、１１３，１２３：補助記憶部、１１４，１２４：無線通信Ｉ／Ｆ、１１５，１２５：無線モジュール、１１６：ＵＳＢＩ／Ｆ、１１７，１２７：バス、１２６：映像Ｉ／Ｆ、１４１：画面、１１１１：変換部、１２１１，２２１１：処理部、１２１２：ＵＳＢドライバ、１２１３，２２１３：通信制御部、１２１４：計時部、１２２１，２２２１：要求記憶部、１２３１，２２３１：仕様情報記憶部、２０１３：タッチパネル
【図１】
2018142281.tif 000003
【図２】
2018142281.tif 000004
【図３】
2018142281.tif 000005
【図４】
2018142281.tif 000006
【図５】
2018142281.tif 000007
【図６】
2018142281.tif 000008
【図７】
2018142281.tif 000009
【図８】
2018142281.tif 000010
【図９】
2018142281.tif 000011
【図１０】
2018142281.tif 000012
【図１１】
2018142281.tif 000013
【図１２】
2018142281.tif 000014
【図１３】
2018142281.tif 000015
【図１４】
2018142281.tif 000016
【図１５】
2018142281.tif 000017
【図１６】
2018142281.tif 000018
【図１７】
2018142281.tif 000019