(57)【要約】【課題】本発明は、データ処理装置およびリモート装置の間の通信状態が悪化した場合であっても、システムの継続運用を可能にする通信制御方法、プログラムおよび装置を提供する。【解決手段】本発明の一実施形態に係る通信制御装置１００、２００は、データ処理装置、およびネットワークを介してデータ処理装置と通信するリモート装置の間の通信状態を判定する通信監視部１０３、２０３と、データ処理装置およびリモート装置のうち一方から他方へデータが送信される際に、通信状態が所定の基準を満たさない場合に、データの送信元に対して、データに対する応答を行う応答部１０２、２０２と、を備える。【選択図】図３
2018206105.tif 000002
【特許請求の範囲】
【請求項１】
データ処理装置、およびネットワークを介して前記データ処理装置と通信するリモート装置の間の通信状態を判定するステップと、
前記データ処理装置および前記リモート装置のうち一方から他方へデータが送信される際に、前記通信状態が所定の基準を満たさない場合に、前記データの送信元に対応する通信制御装置から前記送信元に対して、前記データに対する応答を行うステップと、
を備える通信制御方法。
【請求項２】
前記応答を行うステップにおいて、前記通信制御装置は、前記送信元に対して前記応答を行うとともに、前記データの送信先への前記データの送信を遮断することを特徴とする、請求項１に記載の通信制御方法。
【請求項３】
前記応答を行うステップにおいて、前記通信制御装置は、前記通信状態が前記所定の基準を満たさなくなった時間を含む所定の時間範囲に送信される前記データに基づいて前記応答を行うことを特徴とする、請求項１又は２に記載の通信制御方法。
【請求項４】
前記応答を行うステップにおいて、前記通信制御装置は、前記データおよび前記応答を関連付けるルールに従って前記応答を行うことを特徴とする、請求項１〜３のいずれか一項に記載の通信制御方法。
【請求項５】
前記ルールは、前記データに加えて、前記データ処理装置および前記リモート装置を含むシステムの構成情報、該システムの稼動情報、および前記データの特性のうち少なくとも１つを、前記応答に関連付けることを特徴とする、請求項４に記載の通信制御方法。
【請求項６】
前記通信状態が前記所定の基準を満たす場合の前記データ処理装置および前記リモート装置の間の通信から前記ルールを学習するステップをさらに備えることを特徴とする、請求項４又は５に記載の通信制御方法。
【請求項７】
前記応答を行うステップは、前記データ処理装置および前記リモート装置の間の通信の応答時間、速度およびエラー率の少なくとも１つが前記所定の基準を満たさない場合に、前記応答を行うことを特徴とする、請求項１〜６のいずれか一項に記載の通信制御方法。
【請求項８】
前記リモート装置には、前記データ処理装置によって前記ネットワークを介して制御される入出力デバイスが接続され、
前記データは、前記データ処理装置のプロセッサと前記入出力デバイスとの間で送受信されることを特徴とする、請求項１〜７のいずれか一項に記載の通信制御方法。
【請求項９】
前記通信制御装置は、前記データ処理装置および前記リモート装置の少なくとも一方に設けられることを特徴とする、請求項１〜８のいずれか一項に記載の通信制御方法。
【請求項１０】
前記通信制御装置は、前記データ処理装置および前記リモート装置の間の前記ネットワークに設けられることを特徴とする、請求項１〜８のいずれか一項に記載の通信制御方法。
【請求項１１】
コンピュータに、
データ処理装置、およびネットワークを介して前記データ処理装置と通信するリモート装置の間の通信状態を判定するステップと、
前記データ処理装置および前記リモート装置のうち一方から他方へデータが送信される際に、前記通信状態が所定の基準を満たさない場合に、前記データの送信元に対応する通信制御装置から前記送信元に対して、前記データに対する応答を行うステップと、
を実行させる通信制御プログラム。
【請求項１２】
データ処理装置、およびネットワークを介して前記データ処理装置と通信するリモート装置の間の通信状態を判定する通信監視部と、
前記データ処理装置および前記リモート装置のうち一方から他方へデータが送信される際に、前記通信状態が所定の基準を満たさない場合に、前記データの送信元に対して、前記データに対する応答を行う応答部と、
を備える通信制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信制御方法、プログラムおよび装置に関し、特にデータ処理装置と入出力デバイスが接続されるリモート装置との間の通信を制御する通信制御方法、プログラムおよび装置に関する。
【背景技術】
【０００２】
コンピュータには、内部のシステムバスを介して、ハードディスクドライブ、グラフィックボード等、様々な入出力デバイスが接続される。コンピュータに接続可能なデバイスの数は、該コンピュータの筐体サイズや電源容量によって物理的に制限される。
【０００３】
このようなデバイス接続の制限を解消するため、近年、コンピュータ内部のシステムバスをコンピュータの外部に延長する装置が開発された。このような技術として、特許文献１には、データ処理装置と、デバイスに接続されたリモート装置とを備えるシステムであって、該データ処理装置から該リモート装置へ該デバイスに対する命令をカプセル化してネットワークを介して送信するシステムが開示されている。このようなシステムにおいては、リモート装置に接続されたデバイスはデータ処理装置の内部のシステムバスに接続されたデバイスのように制御可能であるため、データ処理装置へのコンピュータ資源の拡張を柔軟かつ容易に行うことができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第２０１５／１４５９８３号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載の技術において、ネットワーク上でデータ処理装置とリモート装置との間の通信状態が悪化することにより、想定しない通信断や再接続が発生してデータ処理装置を含むシステムが異常な状態となる場合がある。例えばデータ処理装置のシステムバスに接続されているデバイスが意図せず切断された場合には、システムは正常な運用が行えなくなるか、運用を行うとしても復帰処理が必要になるという問題があった。復帰処理を行うには利用者が手動でシステムをリセットする必要があるため、システムの継続運用が困難となる。
【０００６】
本発明は、上述の問題に鑑みて行われたものであって、データ処理装置およびリモート装置の間の通信状態が悪化した場合であっても、システムの継続運用を可能にする通信制御方法、プログラムおよび装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の第１の態様は、通信制御方法であって、データ処理装置、およびネットワークを介して前記データ処理装置と通信するリモート装置の間の通信状態を判定するステップと、前記データ処理装置および前記リモート装置のうち一方から他方へデータが送信される際に、前記通信状態が所定の基準を満たさない場合に、前記データの送信元に対応する通信制御装置から前記送信元に対して、前記データに対する応答を行うステップと、を備える。
【０００８】
本発明の第２の態様は、通信制御プログラムであって、コンピュータに、データ処理装置、およびネットワークを介して前記データ処理装置と通信するリモート装置の間の通信状態を判定するステップと、前記データ処理装置および前記リモート装置のうち一方から他方へデータが送信される際に、前記通信状態が所定の基準を満たさない場合に、前記データの送信元に対応する通信制御装置から前記送信元に対して、前記データに対する応答を行うステップと、を実行させる。
【０００９】
本発明の第３の態様は、通信制御装置であって、データ処理装置、およびネットワークを介して前記データ処理装置と通信するリモート装置の間の通信状態を判定する通信監視部と、前記データ処理装置および前記リモート装置のうち一方から他方へデータが送信される際に、前記通信状態が所定の基準を満たさない場合に、前記データの送信元に対して、前記データに対する応答を行う応答部と、を備える。
【発明の効果】
【００１０】
本発明によれば、データ処理装置およびリモート装置の間の通信状態が悪化した場合であっても、通信制御装置からデータの送信元に対して該データに対する応答を行うため、システムの継続運用が可能である。
【図面の簡単な説明】
【００１１】
【図１】第１の実施形態に係る通信システムの模式図である。
【図２】第１の実施形態に係るデータ処理装置およびリモート装置の概略構成図である。
【図３】第１の実施形態に係るプロセッサ側通信制御装置およびデバイス側通信制御装置のブロック図である。
【図４】第１の実施形態に係るプロセッサ側通信制御装置およびデバイス側通信制御装置によって実行される通信制御方法のフローチャートを示す図である。
【図５】第１の実施形態に係る応答学習装置の概略構成図である。
【図６】第１の実施形態に係る応答学習装置によって実行される応答学習方法のフローチャートを示す図である。
【図７】第２の実施形態に係るデータ処理装置およびリモート装置の概略構成図である。
【図８】第３の実施形態に係るデータ処理装置およびリモート装置の概略構成図である。
【図９】各実施形態に係る通信制御装置の概略構成図である。
【発明を実施するための形態】
【００１２】
以下、図面を参照して、本発明の実施形態を説明するが、本発明は本実施形態に限定されるものではない。なお、以下で説明する図面で、同機能を有するものは同一符号を付け、その繰り返しの説明は省略することもある。
【００１３】
（第１の実施形態）
図１は、本実施形態に係る通信システム１の模式図である。通信システム１は、データ処理装置１０、リモート装置２０、および応答学習装置４０を備える。データ処理装置１０、リモート装置２０、および応答学習装置４０は、インターネット等のネットワーク７０を介して、有線接続又は無線接続によって接続される。図１の構成においてデータ処理装置１０およびリモート装置２０はそれぞれ１つずつ設けられているが、それぞれ複数設けられてもよい。通信システム１は、その他のサーバ、端末、記憶装置等の任意の機器を含んでもよい。
【００１４】
データ処理装置１０は、利用者による指示を受け付け、該指示に従ってプロセッサによって所定の処理を行い、該処理に応じた出力を行う装置（コンピュータ）である。
【００１５】
リモート装置２０は、Ｉ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）接続装置とも呼ばれ、データ処理装置１０にネットワーク７０を介して接続される装置である。リモート装置２０には、データ処理装置１０によって利用されるデバイス３０（入出力デバイス、Ｉ／Ｏデバイスともいう）が接続される。デバイス３０は、記憶装置（例えばハードディスクドライブ）、画像処理装置（例えばグラフィックボード）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）機器等、情報の処理又は入出力を行う任意の装置である。
【００１６】
データ処理装置１０とリモート装置２０との間はシステムバスの延長として接続されている。そのため、データ処理装置１０は、リモート装置２０に接続されるデバイス３０を、データ処理装置１０内部のシステムバスに直接接続されているように扱うことができる。
【００１７】
応答学習装置４０は、データ処理装置１０およびリモート装置２０の間の通信を学習し、後述の応答ルールを生成する装置である。
【００１８】
構成情報記憶装置５０は、通信システム１の機器構成を示す構成情報を記録する記憶装置である。構成情報は、例えばリモート装置２０に接続されているデバイス３０の種類（記憶装置、画像処理装置等）を示す情報である。構成情報記憶装置５０には、現在の構成情報が随時記録される。稼動情報記憶装置６０は、通信システム１がどのように稼動しているかを示す稼動情報を記録する記憶装置である。稼動情報は、例えば通信システム１を含む製造システムにおいて製造が行われている製品を示す情報である。稼動情報記憶装置６０には、現在の稼動情報が随時記録される。本実施形態では構成情報記憶装置５０および稼動情報記憶装置６０はネットワーク７０に接続されているが、データ処理装置１０、リモート装置２０および応答学習装置４０のいずれかに内蔵されてもよい。
【００１９】
図２は、本実施形態に係るデータ処理装置１０およびリモート装置２０の概略構成図である。データ処理装置１０は、コンピュータであり、ＣＰＵ１１（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）と、メモリ１３と、記憶装置１４と、インタフェース１５と、プロセッサ側通信制御装置１００とを備える。ＣＰＵ１１、メモリ１３、記憶装置１４、インタフェース１５およびプロセッサ側通信制御装置１００は、システムバス１２によって接続される。プロセッサ側通信制御装置１００は、データ処理装置１０に固定されて設けられてもよく、あるいはデータ処理装置１０から着脱可能に設けられてもよい。データ処理装置１０は独立した装置でよく、あるいは他の装置と一体に構成されてよい。
【００２０】
システムバス１２（データバス、バスともいう）は、コンピュータ内部でデータを転送する経路である。システムバス１２として、ＩＳＡ、ＰＣＩ、ＰＣＩＥｘｐｒｅｓｓ等の任意の規格が用いられる。
【００２１】
インタフェース１５は、外部機器に接続するための接続部である。インタフェース１５は、接続に必要な電気回路、接続端子等を含む。インタフェース１５は、ＣＰＵ１１からの信号に従って、接続された外部機器等との間でデータの授受を行う。
【００２２】
記憶装置１４は、データ処理装置１０が実行するプログラムや、プログラムによる処理結果のデータ等を記録する。記憶装置１４は、読み取り専用のＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）や、読み書き可能のハードディスクドライブ又はフラッシュメモリ等を含む。また、記憶装置１４は、ＣＤ−ＲＯＭ等のコンピュータ読取可能な可搬記憶媒体を含んでもよい。メモリ１３は、ＣＰＵ１１が処理中のデータや記憶装置１４から読み出されたプログラムおよびデータを一時的に記録するＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等を含む。
【００２３】
ＣＰＵ１１は、処理に用いる一時的なデータをメモリ１３に一時的に記録し、記憶装置１４に記録されたプログラムを読み出し、該プログラムに従って該一時的なデータに対して種々の演算、制御、判別などの処理動作を実行するプロセッサである。また、ＣＰＵ１１は、記憶装置１４に処理結果のデータを記録し、またインタフェース１５を介して処理結果のデータを外部に送信する。
【００２４】
リモート装置２０は、インタフェース２５と、デバイス側通信制御装置２００とを備える。インタフェース２５およびデバイス側通信制御装置２００は、システムバス２２によって接続される。デバイス側通信制御装置２００は、リモート装置２０に固定されて設けられてもよく、あるいはリモート装置２０から着脱可能に設けられてもよい。リモート装置２０は独立した装置でよく、あるいは他の装置と一体に構成されてよい。
【００２５】
システムバス２２およびインタフェース２５の構成は、システムバス１２およびインタフェース１５と同様である。インタフェース２５は、データ処理装置１０によって利用されるデバイス３０に接続される。インタフェース２５に接続されるデバイス３０は、リモート装置２０の筐体の外部および内部のどちらに配置されてもよい。
【００２６】
プロセッサ側通信制御装置１００およびデバイス側通信制御装置２００には、それぞれ同一ネットワーク７０で他のプロセッサ側通信制御装置１００およびデバイス側通信制御装置２００と重ならない固有の識別子を有する。同一の識別子を有するプロセッサ側通信制御装置１００およびデバイス側通信制御装置２００の組は、ネットワーク７０を介して仮想的なシステムバススイッチを構成し、データ処理装置１０のシステムバス１２およびリモート装置２０のシステムバス２２を接続する。このような構成により、データ処理装置１０のＣＰＵ１１は、リモート装置２０に接続されているデバイス３０に対して、さもデータ処理装置１０のシステムバス１２に直接接続されているようにデータの送受信を行うことができる。プロセッサ側通信制御装置１００およびデバイス側通信制御装置２００の具体的な構成については図３を用いて後述する。
【００２７】
データ処理装置１０およびリモート装置２０は、図２に示す具体的な構成に限定されない。データ処理装置１０およびリモート装置２０は、それぞれ１つの装置に限られず、２つ以上の物理的に分離した装置が有線又は無線で接続されることにより構成されていてもよい。データ処理装置１０およびリモート装置２０に含まれる各部は、それぞれ電気回路構成により実現されていてもよい。ここで、電気回路構成とは、単一のデバイス、複数のデバイス、チップセット又はクラウドを概念的に含む文言である。
【００２８】
また、データ処理装置１０およびリモート装置２０の少なくとも一部がＳａａＳ（Ｓｏｆｔｗａｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）形式で提供されてよい。すなわち、データ処理装置１０およびリモート装置２０を実現するための機能の少なくとも一部が、ネットワーク経由で実行されるソフトウェアによって実行されてよい。
【００２９】
図３は、本実施形態に係るプロセッサ側通信制御装置１００およびデバイス側通信制御装置２００のブロック図である。図３において、ブロックを結ぶ線は主なデータの流れを示しており、図３に示したもの以外のデータの流れがあってよい。図３において、各ブロックはハードウェア（装置）単位の構成ではなく、機能単位の構成を示している。そのため、図３に示すブロックは単一の装置内に実装されてよく、あるいは複数の装置内に別れて実装されてよい。
【００３０】
プロセッサ側通信制御装置１００は、システムバス側インタフェース１０１と、ダミー応答部１０２と、通信監視部１０３と、プロセッサ側ブリッジ部１０４と、ネットワーク側インタフェース１０５と、送信データ記憶装置１０６と、応答ルール記憶装置１０７とを備える。システムバス側インタフェース１０１は、データ処理装置１０のシステムバス１２に接続するための接続部であり、システムバス１２の種類に合わせた接続端子（例えばＰＣＩＥｘｐｒｅｓｓ端子）を有する。ネットワーク側インタフェース１０５は、ネットワーク７０に接続するための接続部であり、ネットワーク７０の種類に合わせた接続機構（有線接続端子又は無線接続アンテナ）を有する。
【００３１】
プロセッサ側ブリッジ部１０４は、デバイス側ブリッジ部２０４と協働して仮想的なシステムバススイッチを構成する。具体的には、プロセッサ側ブリッジ部１０４は、データ処理装置１０（ＣＰＵ１１）からリモート装置２０に接続されたデバイス３０に向けて送信されるデータ（パケット）をカプセル化してからネットワーク７０に送出する。カプセル化されたデータは、デバイス側ブリッジ部２０４によってデカプセル化（カプセル化を解除）されてデバイス３０に到達する。また、プロセッサ側ブリッジ部１０４は、デバイス側ブリッジ部２０４によってカプセル化されたデータを受信すると、該データをデカプセル化（カプセル化を解除）してからデータ処理装置１０（ＣＰＵ１１）へ渡す。このような構成により、データ処理装置１０のＣＰＵ１１は、送信されるデータに特別な処理（プロトコル変換や符号化）を行うことなく、リモート装置２０に接続されたデバイス３０との間でデータの授受を行うことができる。
【００３２】
通信監視部１０３は、データ処理装置１０の通信相手であるリモート装置２０との通信状態を監視し、通信状態が所定の基準を満たすか否かを判定する。具体的には、通信監視部１０３は、所定の時間間隔でデータ処理装置１０およびリモート装置２０の間の通信状態を示す指標を算出し、算出された指標が所定の基準を満たさない場合に通信状態が悪いと判定し、ダミー応答部１０２へダミー応答を開始する指示を行う。一方、通信監視部１０３は、算出された指標が所定の基準を満たす場合に通信状態が良いと判定し、ダミー応答部１０２へダミー応答を終了する指示を行う。所定の基準の定義によって、該基準を満たす場合および満たさない場合の処理は逆に設定されてもよい。
【００３３】
通信状態を示す指標として、例えばリモート装置２０からの応答時間、リモート装置２０との通信の速度、リモート装置２０からのパケットの破棄率（エラー率）、リモート装置２０によるキープアライブパケットへの応答有無等を用いることができる。すなわち、応答時間が所定の値未満（又は以下）である場合に通信状態が良いと判定され、所定の値より大きい（又は以上）場合に通信状態が悪いと判定される。あるいは、通信の速度が所定の値より大きい（又は以上）場合に通信状態が良いと判定され、所定の値未満（又は以下）である場合に通信状態が悪いと判定される。あるいは、パケットの破棄率（エラー率）が所定の値未満（又は以下）である場合に通信状態が良いと判定され、所定の値より大きい（又は以上）場合に通信状態が悪いと判定される。あるいは、キープアライブパケットへの応答がある場合に通信状態が良いと判定され、応答がない場合に通信状態が悪いと判定される。通信状態の基準として、利用者によって入力された値を用いてもよく、あるいはプロセッサ側通信制御装置１００によって決定された値を用いてもよい。通信状態の判定のために、ここに示したものに限られず、通信状態を示す任意の値および基準を用いることができる。
【００３４】
通常の通信状態（すなわち良い通信状態）においては、データ処理装置１０からリモート装置２０（デバイス３０）へデータが送信された後に、リモート装置２０からデータ処理装置１０へ所定の応答（例えば指示の受諾を示す応答や、取得したデータを示す応答）が返ってくる。一方、異常な通信状態（すなわち悪い通信状態）においては、データ処理装置１０からリモート装置２０（デバイス３０）へデータが送信された後に、所定の応答が返ってこない場合がある。このとき、データ処理装置１０が応答を待ち続けて次の処理を行うことができない場合や、データ処理装置１０が応答のないデバイス３０との接続を切断してしまい正常な運用を継続できない場合がある。
【００３５】
データ処理装置１０がこのような異常な状態になることを防ぐために、ダミー応答部１０２は、通信状態が所定の基準を満たさない場合（すなわち通信監視部１０３からダミー応答開始指示を受けた場合）に、ダミー応答を開始する。また、ダミー応答部１０２は、ダミー応答開始後に通信状態が所定の基準を満たすようになった場合（すなわち通信監視部１０３からダミー応答終了指示を受けた場合）に、ダミー応答を終了する。具体的なダミー応答処理の内容を以下に説明する。
【００３６】
ダミー応答部１０２は、通信状態の良し悪しに関わらず、データ処理装置１０（ＣＰＵ１１）から送信されるデータ（パケット）を取得し、送信データ記憶装置１０６に記録する。送信データ記憶装置１０６には、ダミー応答の決定に利用される所定の時間のデータが記録され、該時間を超過したデータは削除される。
【００３７】
通信状態が所定の基準を満たす場合には、ダミー応答部１０２は、送信されるデータを透過させる。その後、送信されるデータは、プロセッサ側ブリッジ部１０４およびデバイス側ブリッジ部２０４を介してリモート装置２０に接続されたデバイス３０に到達する。
【００３８】
通信状態が所定の基準を満たさない場合に、ダミー応答部１０２は、送信されるデータを遮断する。次にダミー応答部１０２は、応答ルール記憶装置１０７に予め記録されている応答ルールを取得する。応答ルールは、送信されるデータ（パケット）のパターンと、該パターンに対応する応答（ダミー応答）とを関連付ける規則である。すなわち、ダミー応答は、正常時においてデータ処理装置１０（ＣＰＵ１１）からリモート装置２０（デバイス３０）に送信されるデータに対して返されるべき応答を模擬したものである。応答ルールに記録するデータのパターンの長さは、任意に設定される。応答ルールは、後述の応答学習方法によって正常時の通信から学習されるか、あるいは利用者によって設定され、応答ルール記憶装置１０７に予め記録される。
【００３９】
ダミー応答部１０２は、送信されるデータに応答ルールのいずれかのパターンが含まれる場合に、該パターンに関連付けられたダミー応答を、送信されるデータに対応するダミー応答として決定する。送信されるデータに対応するダミー応答を応答ルールから決定する方法はこれに限られず、任意の方法を用いることができる。例えば送信されるデータと応答ルールのパターンとの類似度を算出し、該類似度が所定の閾値以上又は所定の閾値より高い場合に、該パターンに関連付けられたダミー応答を決定してもよい。
【００４０】
さらにダミー応答部１０２は、送信データ記憶装置１０６に記録されたデータ（すなわち既に送信されたデータ）およびこれから送信されるデータに基づいて、応答ルールからダミー応答を決定してもよい。具体的には、ダミー応答部１０２は、既に送信されたデータとこれから送信されるデータとを結合したデータ列に応答ルールのパターンが含まれる場合に、該パターンに関連付けられたダミー応答を、送信されるデータに対応するダミー応答として決定する。換言すると、ダミー応答部１０２は、通信状態が所定の基準を満たさなくなった時間（すなわちダミー応答を開始した時間）を含む所定の時間範囲に送信されるデータに基づいて、ダミー応答を決定する。これから送信されるデータに加えて既に送信されたデータを用いることによって、データ送信の途中で通信状態が悪化してダミー応答が始まった場合であっても、ダミー応答開始前から引き続いて送信されるデータに基づいて応答ルールのパターンを検出することが可能になる。
【００４１】
さらにダミー応答部１０２は、送信されるデータに加えて、送信されるデータの特性に基づいて、応答ルールからダミー応答を決定してもよい。送信されるデータの特性は、送信されるデータに付随する情報であり、例えば送信元および送信先のアドレスを示す情報、あるいはＰＣＩＥｘｐｒｅｓｓパケット（ＴＬＰ：Ｔｒａｎｓａｃｔｉｏｎ  Ｌａｙｅｒ  Ｐａｃｋｅｔ）に準拠した情報（ＴＬＰ種別、コマンド、メモリアクセスアドレス、Ｉ／Ｏアクセスアドレス、ＴＡＧ、コンフィグレーションレジスタ、メッセージ、ペイロード等）である。応答ルールは、送信されるデータのパターンと、データの特性と、ダミー応答とを関連付けて記録する。ダミー応答部１０２は、送信されるデータに応答ルールのいずれかのパターンが含まれる場合であって、かつ送信されるデータの特性および応答ルールのデータの特性が同一又は類似の場合に、該パターンおよび該データの特性に関連付けられたダミー応答を、送信されるデータに対応するダミー応答として決定する。
【００４２】
さらにダミー応答部１０２は、送信されるデータに加えて、通信システム１の構成情報および稼動情報の少なくとも一方に基づいて、応答ルールからダミー応答を決定してもよい。現在（すなわちデータの送信時）の構成情報は、構成情報記憶装置５０から取得される。現在（すなわちデータの送信時）の稼動情報は、稼動情報記憶装置６０から取得される。応答ルールは、送信されるデータのパターンと、構成情報および稼動情報の少なくとも一方と、ダミー応答とを関連付けて記録する。ダミー応答部１０２は、送信されるデータに応答ルールのいずれかのパターンが含まれる場合であって、かつ現在の構成情報および稼動情報の少なくとも一方および応答ルールの構成情報および稼動情報の少なくとも一方が同一又は類似の場合に、該パターンおよび該構成情報および稼動情報の少なくとも一方に関連付けられたダミー応答を、送信されるデータに対応するダミー応答として決定する。
【００４３】
そしてダミー応答部１０２は、応答ルールから決定されたダミー応答を、データ処理装置１０（ＣＰＵ１１）に送信する。このような構成によって、データ処理装置１０は、通信状態が悪いためリモート装置２０に接続されたデバイス３０からの本来の応答が受信できない場合であっても、プロセッサ側通信制御装置１００から該応答を模擬したダミー応答を受信するため、運用を継続することができる。
【００４４】
ここで、データ処理装置１０（ＣＰＵ１１）からデータを送信した後、リモート装置２０（デバイス３０）から応答が到着する前に通信状態が悪くなった場合の処理について説明する。ダミー応答部１０２は送信されたデータ（パケット）の情報とともに、該送信されたデータに対してリモート装置２０（デバイス３０）から応答が到着したか否かの状況を送信データ記憶装置１０６に記録する。ダミー応答が開始された場合には、ダミー応答部１０２は、送信されたデータに対する応答の到着状況を送信データ記憶装置１０６から取得し、応答が到着していない送信されたデータからダミー応答を開始する。既にダミー応答が行われた送信されたデータに対して、リモート装置２０（デバイス３０）から本物の応答が到着した場合には、ダミー応答部１０２は該本物の応答を廃棄する。これにより、データ処理装置１０（ＣＰＵ１１）がダミー応答および本物の応答を二重に受け取って異常が発生することを抑制することができる。
【００４５】
デバイス側通信制御装置２００は、プロセッサ側通信制御装置１００と同様の構成を有するが、リモート装置２０に接続されたデバイス３０からデータ処理装置１０のＣＰＵ１１へ送信されるデータを対象とする点で異なる。デバイス側通信制御装置２００は、システムバス側インタフェース２０１と、ダミー応答部２０２と、通信監視部２０３と、デバイス側ブリッジ部２０４と、ネットワーク側インタフェース２０５と、送信データ記憶装置２０６と、応答ルール記憶装置２０７とを備える。システムバス側インタフェース２０１は、リモート装置２０のシステムバス２２に接続するための接続部であり、システムバス２２の種類に合わせた接続端子（例えばＰＣＩＥｘｐｒｅｓｓ端子）を有する。ネットワーク側インタフェース２０５は、ネットワーク７０に接続するための接続部であり、ネットワーク７０の種類に合わせた接続機構（有線接続端子又は無線接続アンテナ）を有する。
【００４６】
デバイス側ブリッジ部２０４は、プロセッサ側ブリッジ部１０４と協働して仮想的なシステムバススイッチを構成する。具体的には、デバイス側ブリッジ部２０４は、リモート装置２０に接続されたデバイス３０からデータ処理装置１０のＣＰＵ１１に向けて送信されるデータ（パケット）をカプセル化してからネットワーク７０に送出する。カプセル化されたデータは、プロセッサ側ブリッジ部１０４によってデカプセル化（カプセル化を解除）されてＣＰＵ１１に到達する。また、デバイス側ブリッジ部２０４は、プロセッサ側ブリッジ部１０４によってカプセル化されたデータを受信すると、該データをデカプセル化（カプセル化を解除）してからリモート装置２０（デバイス３０）へ渡す。このような構成により、リモート装置２０に接続されたデバイス３０は、送信されるデータに特別な処理（プロトコル変換や符号化）を行うことなく、データ処理装置１０のＣＰＵ１１との間でデータの授受を行うことができる。
【００４７】
通信監視部２０３は、リモート装置２０の通信相手であるデータ処理装置１０との通信状態を監視し、通信状態が所定の基準を満たすか否かを判定する。具体的には、通信監視部２０３は、所定の時間間隔でデータ処理装置１０およびリモート装置２０の間の通信状態を示す指標を算出し、算出された指標が所定の基準を満たさない場合に通信状態が悪いと判定し、ダミー応答部２０２へダミー応答を開始する指示を行う。一方、通信監視部２０３は、算出された指標が所定の基準を満たす場合に通信状態が良いと判定し、ダミー応答部２０２へダミー応答を終了する指示を行う。所定の基準の定義によって、該基準を満たす場合および満たさない場合の処理は逆に設定されてもよい。
【００４８】
通信状態を示す指標として、例えばデータ処理装置１０からの応答時間、データ処理装置１０との通信の速度、データ処理装置１０からのパケットの破棄率（エラー率）、データ処理装置１０によるキープアライブパケットへの応答有無等を用いることができる。すなわち、応答時間が所定の値未満（又は以下）である場合に通信状態が良いと判定され、所定の値より大きい（又は以上）場合に通信状態が悪いと判定される。あるいは、通信の速度が所定の値より大きい（又は以上）場合に通信状態が良いと判定され、所定の値未満（又は以下）である場合に通信状態が悪いと判定される。あるいは、パケットの破棄率（エラー率）が所定の値未満（又は以下）である場合に通信状態が良いと判定され、所定の値より大きい（又は以上）場合に通信状態が悪いと判定される。あるいは、キープアライブパケットへの応答がある場合に通信状態が良いと判定され、応答がない場合に通信状態が悪いと判定される。通信状態の基準として、利用者によって入力された値を用いてもよく、あるいはデバイス側通信制御装置２００によって決定された値を用いてもよい。通信状態の判定のために、ここに示したものに限られず、通信状態を示す任意の値および基準を用いることができる。
【００４９】
通常の通信状態（すなわち良い通信状態）においては、リモート装置２０（デバイス３０）からデータ処理装置１０へデータが送信された後に、データ処理装置１０からリモート装置２０へ所定の応答（例えば指示の受諾を示す応答や、取得したデータを示す応答）が返ってくる。一方、異常な通信状態（すなわち悪い通信状態）においては、リモート装置２０（デバイス３０）からデータ処理装置１０へデータが送信された後に、所定の応答が返ってこない場合がある。このとき、デバイス３０が応答を待ち続けて次の処理を行うことができない場合や、デバイス３０が応答のないデータ処理装置１０との接続を切断してしまい正常な運用を継続できない場合がある。
【００５０】
リモート装置２０（デバイス３０）がこのような異常な状態になることを防ぐために、ダミー応答部２０２は、通信状態が所定の基準を満たさない場合に、ダミー応答を開始する。また、ダミー応答部２０２は、ダミー応答開始後に通信状態が所定の基準を満たすようになった場合に、ダミー応答を終了する。具体的なダミー応答処理の内容を以下に説明する。
【００５１】
ダミー応答部２０２は、通信状態の良し悪しに関わらず、リモート装置２０（デバイス３０）から送信されるデータ（パケット）を取得し、送信データ記憶装置２０６に記録する。送信データ記憶装置２０６には、ダミー応答の決定に利用される所定の時間のデータが記録され、該時間を超過したデータは削除される。
【００５２】
通信状態が所定の基準を満たす場合には、ダミー応答部２０２は、送信されるデータを透過させる。その後、送信されるデータは、デバイス側ブリッジ部２０４およびプロセッサ側ブリッジ部１０４を介してデータ処理装置１０のＣＰＵ１１に到達する。
【００５３】
通信状態が所定の基準を満たさない場合に、ダミー応答部２０２は、送信されるデータを遮断する。次にダミー応答部２０２は、応答ルール記憶装置２０７に予め記録されている応答ルールを取得する。応答ルールは、送信されるデータのパターンと、該パターンに対応する応答（ダミー応答）とを関連付ける規則である。すなわち、ダミー応答は、正常時においてリモート装置２０（デバイス３０）からデータ処理装置１０（ＣＰＵ１１）に送信されるデータに対して返されるべき応答を模擬したものである。応答ルールは、後述の応答学習方法によって正常時の通信から学習されるか、あるいは利用者によって設定され、応答ルール記憶装置２０７に予め記録される。
【００５４】
ダミー応答部２０２は、送信されるデータに応答ルールのいずれかのパターンが含まれる場合に、該パターンに関連付けられたダミー応答を、送信されるデータに対応するダミー応答として決定する。応答ルールから送信されるデータに対応するダミー応答の決定する方法はこれに限られず、任意の方法を用いることができる。例えば送信されるデータと応答ルールのパターンとの類似度を算出し、該類似度が所定の閾値以上又は所定の閾値より高い場合に、該パターンに関連付けられたダミー応答を決定してもよい。
【００５５】
さらにダミー応答部２０２は、送信データ記憶装置２０６に記録されたデータ（すなわち既に送信されたデータ）およびこれから送信されるデータに基づいて、応答ルールからダミー応答を決定してもよい。具体的には、ダミー応答部２０２は、既に送信されたデータとこれから送信されるデータとを結合したデータ列に応答ルールのパターンが含まれる場合に、該パターンに関連付けられたダミー応答を、送信されるデータに対応するダミー応答として決定する。換言すると、ダミー応答部２０２は、通信状態が所定の基準を満たさなくなった時間（すなわちダミー応答を開始した時間）を含む所定の時間範囲に送信されるデータに基づいて、ダミー応答を決定する。これから送信されるデータに加えて既に送信されたデータを用いることによって、送信されるデータの途中でダミー応答が始まった場合であっても、応答ルールのパターンの検出が可能になる。
【００５６】
さらにダミー応答部２０２は、送信されるデータに加えて、送信されるデータの特性に基づいて、応答ルールからダミー応答を決定してもよい。送信されるデータの特性は、送信されるデータに付随する情報であり、例えば送信元および送信先のアドレスを示す情報、あるいはＰＣＩＥｘｐｒｅｓｓパケット（ＴＬＰ）に準拠した情報（ＴＬＰ種別、コマンド、メモリアクセスアドレス、Ｉ／Ｏアクセスアドレス、ＴＡＧ、コンフィグレーションレジスタ、メッセージ、ペイロード等）である。応答ルールは、送信されるデータのパターンと、データの特性と、ダミー応答とを関連付けて記録する。ダミー応答部２０２は、送信されるデータに応答ルールのいずれかのパターンが含まれる場合であって、かつ送信されるデータの特性および応答ルールのデータの特性が同一又は類似の場合に、該パターンおよび該データの特性に関連付けられたダミー応答を、送信されるデータに対応するダミー応答として決定する。
【００５７】
さらにダミー応答部２０２は、送信されるデータに加えて、通信システム１の構成情報および稼動情報の少なくとも一方に基づいて、応答ルールからダミー応答を決定してもよい。現在（すなわちデータの送信時）の構成情報は、構成情報記憶装置５０から取得される。現在（すなわちデータの送信時）の稼動情報は、稼動情報記憶装置６０から取得される。応答ルールは、送信されるデータのパターンと、構成情報および稼動情報の少なくとも一方と、ダミー応答とを関連付けて記録する。ダミー応答部２０２は、送信されるデータに応答ルールのいずれかのパターンが含まれる場合であって、かつ現在の構成情報および稼動情報の少なくとも一方および応答ルールの構成情報および稼動情報の少なくとも一方が同一又は類似の場合に、該パターンおよび該構成情報および稼動情報の少なくとも一方に関連付けられたダミー応答を、送信されるデータに対応するダミー応答として決定する。
【００５８】
そしてダミー応答部２０２は、応答ルールから決定されたダミー応答を、リモート装置２０（デバイス３０）に送信する。このような構成によって、リモート装置２０に接続されたデバイス３０は、通信状態が悪いためデータ処理装置１０のＣＰＵ１１からの本来の応答が受信できない場合であっても、デバイス側通信制御装置２００から該応答を模擬したダミー応答を受信するため、運用を継続することができる。
【００５９】
ここで、リモート装置２０（デバイス３０）からデータを送信した後、データ処理装置１０（ＣＰＵ１１）から応答が到着する前に通信状態が悪くなった場合について説明する。ダミー応答部２０２は送信されたデータ（パケット）の情報とともに、該送信されたデータに対してデータ処理装置１０（ＣＰＵ１１）から応答が到着したか否かの状況を送信データ記憶装置２０６に記録する。ダミー応答が開始された場合には、ダミー応答部２０２は、送信されたデータに対する応答の到着状況を送信データ記憶装置２０６から取得し、応答が到着していない送信されたデータからダミー応答を開始する。既にダミー応答が行われた送信されたデータに対して、データ処理装置１０（ＣＰＵ１１）から本物の応答が到着した場合には、ダミー応答部２０２は該本物の応答を廃棄する。これにより、リモート装置２０（デバイス３０）がダミー応答および本物の応答を二重に受け取ってエラーが発生することを抑制することができる。
【００６０】
プロセッサ側通信制御装置１００およびデバイス側通信制御装置２００は、図３に示す具体的な構成に限定されない。プロセッサ側通信制御装置１００およびデバイス側通信制御装置２００は、それぞれ１つの装置に限られず、２つ以上の物理的に分離した装置が有線又は無線で接続されることにより構成されていてもよい。プロセッサ側通信制御装置１００およびデバイス側通信制御装置２００に含まれる各部は、それぞれプログラムを実行するプロセッサによって実現されてもよく、あるいは電気回路構成により実現されていてもよい。ここで、電気回路構成とは、単一のデバイス、複数のデバイス、チップセット又はクラウドを概念的に含む文言である。
【００６１】
また、プロセッサ側通信制御装置１００およびデバイス側通信制御装置２００の少なくとも一部がＳａａＳ形式で提供されてよい。すなわち、プロセッサ側通信制御装置１００およびデバイス側通信制御装置２００を実現するための機能の少なくとも一部が、ネットワーク経由で実行されるソフトウェアによって実行されてよい。
【００６２】
図４は、本実施形態に係るプロセッサ側通信制御装置１００およびデバイス側通信制御装置２００によって実行される通信制御方法（ダミー応答方法）のフローチャートを示す図である。図４のフローチャートは、データ処理装置１０およびリモート装置２０の一方から他方への通信が開始されたことに応じて開始される。
【００６３】
データ処理装置１０からリモート装置２０へデータが送信される際には、送信元であるデータ処理装置１０に設けられているプロセッサ側通信制御装置１００によって図４の通信制御方法が実行される。また、リモート装置２０からデータ処理装置１０へデータが送信される際には、送信元であるリモート装置２０に設けられているデバイス側通信制御装置２００によって図４の通信制御方法が実行される。また、プロセッサ側通信制御装置１００およびデバイス側通信制御装置２００によって並行して図４の通信制御方法が実行されてもよい。
【００６４】
まず、通信監視部１０３、２０３は、データ処理装置１０およびリモート装置２０の間の通信状態を判定する（ステップＳ１０１）。通信状態が所定の基準を満たす場合には（ステップＳ１０２のＹＥＳ）、通信監視部１０３、２０３は通信状態が良いと判定し、ステップＳ１０１を繰り返す。データの送信は継続され、送信されるデータは送信データ記憶装置１０６、２０６に記録される。
【００６５】
通信状態が所定の基準を満たさない場合には（ステップＳ１０２のＮＯ）、通信監視部１０３、２０３は、通信状態が悪いと判定し、ダミー応答部１０２、２０２へダミー応答を開始する指示を行う（ステップＳ１０３）。
【００６６】
次にダミー応答部１０２、２０２は、データの送信元（データ処理装置１０又はリモート装置２０）から送信されるデータを取得するとともに、応答ルール記憶装置１０７、２０７から応答ルールを取得する（ステップＳ１０４）。このとき、ダミー応答部１０２、２０２は、データの送信を遮断する。また、ダミー応答の決定に既に送信されたデータを用いる場合には、ダミー応答部１０２、２０２は、送信データ記憶装置１０６、２０６から既に送信されたデータを取得する。また、ダミー応答の決定に送信されるデータの特性を用いる場合には、ダミー応答部１０２、２０２は、送信されるデータからその特性を取得する。また、ダミー応答の決定に構成情報および稼動情報を用いる場合には、ダミー応答部１０２、２０２は、現在（データ送信時）の構成情報および稼動情報を構成情報記憶装置５０および稼動情報記憶装置６０から取得する。
【００６７】
次にダミー応答部１０２、２０２は、ステップＳ１０４で取得された応答ルールから送信されるデータに対応するダミー応答の内容を決定し、データの送信元（データ処理装置１０又はリモート装置２０）に送信する（ステップＳ１０５）。ダミー応答の決定に既に送信されたデータ、送信されるデータの特性、構成情報および稼動情報を用いる場合には、ダミー応答部１０２、２０２は、送信されるデータおよび応答ルールに加えてこれらの情報に基づいてダミー応答の内容を決定する。
【００６８】
通信監視部１０３、２０３は、データ処理装置１０およびリモート装置２０の間の通信状態を再び判定する（ステップＳ１０６）。図４のフローチャートではステップＳ１０６の通信状態の判定はステップＳ１０４〜Ｓ１０５のダミー応答の後に行われているが、ステップＳ１０４〜Ｓ１０５およびステップＳ１０６は並列で行われてもよい。通信状態が所定の基準を満たさない場合には（ステップＳ１０７のＮＯ）、通信監視部１０３、２０３は通信状態が悪いと判定し、ステップＳ１０４に戻ってダミー応答が継続される。
【００６９】
通信状態が所定の基準を満たす場合には（ステップＳ１０７のＹＥＳ）、通信監視部１０３、２０３は、通信状態が良い（回復した）と判定し、ダミー応答部１０２、２０２へダミー応答を終了する指示を行う（ステップＳ１０８）。
【００７０】
データ処理装置１０およびリモート装置２０の一方から他方への通信が終了していない場合には（ステップＳ１０９のＮＯ）、ステップＳ１０１に戻って処理が繰り返される。データ処理装置１０およびリモート装置２０の一方から他方への通信が終了した場合には（ステップＳ１０９のＹＥＳ）、処理が終了される。図４のフローチャートではステップＳ１０９の通信終了の判定はステップＳ１０８の後に行われているが、ステップＳ１０１〜Ｓ１０８のうち任意のタイミングで行われてもよい。
【００７１】
以下では、本実施形態で用いられる応答ルールを学習するための応答学習装置４０および応答学習方法を説明する。図５は、本実施形態に係る応答学習装置４０の概略構成図である。応答学習装置４０の概略構成図は、コンピュータであり、ＣＰＵ４１と、メモリ４３と、記憶装置４４と、インタフェース４５とを備える。ＣＰＵ４１、メモリ４３、記憶装置４４およびインタフェース４５は、システムバス４２によって接続される。応答学習装置４０は独立した装置でよく、あるいは他の装置と一体に構成されてよい。
【００７２】
ＣＰＵ４１、システムバス４２、メモリ４３、記憶装置４４およびインタフェース４５の構成は、図２のＣＰＵ１１、システムバス１２、メモリ１３、記憶装置１４およびインタフェース１５と同様である。インタフェース４５は、ネットワーク７０に接続される。
【００７３】
図６は本実施形態に係る応答学習装置４０によって実行される応答学習方法のフローチャートを示す図である。応答学習装置４０のＣＰＵ４１は、記憶装置４４に記録されたプログラムを実行することによって、図６のフローチャートに示す応答学習方法を実行する。図６のフローチャートは、例えば利用者によって開始の指示が行われた場合に開始される。あるいは図６のフローチャートは、データ処理装置１０およびリモート装置２０の間の通信が開始した場合に自動的に開始されてもよい。
【００７４】
まず、ＣＰＵ４１は、データの送信元（データ処理装置１０およびリモート装置２０の一方）から送信されるデータを取得するとともに、該データの送信先（データ処理装置１０およびリモート装置２０の他方）からの該データに対する応答を取得する（ステップＳ２０１）。また、応答ルールの生成に送信されるデータの特性を用いる場合には、ＣＰＵ４１は、送信されるデータからその特性を取得する。また、応答ルールの生成に構成情報および稼動情報を用いる場合には、ＣＰＵ４１は、現在（データ送信時）の構成情報および稼動情報を構成情報記憶装置５０および稼動情報記憶装置６０から取得する。
【００７５】
次にＣＰＵ４１は、ステップＳ２０１で取得された送信されるデータおよびその応答から学習を行う（ステップＳ２０２）。具体的には、ＣＰＵ４１はステップＳ２０１で取得された送信されるデータから、送信されるデータのパターンを生成する。例えば送信されるデータのパターンは、同一の応答に対応する複数の送信されるデータの共通する部分を抽出する（すなわち時間、送信元アドレス、送信先アドレス等の変化しやすい部分を除外する）ことによって生成される。そしてＣＰＵ４１は、生成された送信されるデータのパターンと該送信されるデータに対応する応答とを関連付けることによって応答ルールを生成し、プロセッサ側通信制御装置１００およびデバイス側通信制御装置２００に送信する（ステップＳ２０３）。また、応答ルールの生成に送信されるデータの特性を用いる場合には、ＣＰＵ４１は、生成された送信されるデータのパターンと、該送信されるデータの特性と、該送信されるデータに対応する応答とを関連付けることによって応答ルールを生成する。また、応答ルールの生成に構成情報および稼動情報を用いる場合には、ＣＰＵ４１は、生成された送信されるデータのパターンと、システムの構成情報および稼動情報と、該送信されるデータに対応する応答とを関連付けることによって応答ルールを生成する。
【００７６】
プロセッサ側通信制御装置１００およびデバイス側通信制御装置２００は、ステップＳ２０３でそれぞれ受信した応答ルールを応答ルール記憶装置１０７、２０７に記録する。具体的な応答の学習方法として、ここに示したものに限られず、実際の送信データおよび応答を学習してダミー応答を生成可能な任意の方法を用いることができる。
【００７７】
データ処理装置１０およびリモート装置２０の間の通信が終了していない場合には（ステップＳ２０４のＮＯ）、ステップＳ２０１に戻って処理が繰り返される。データ処理装置１０およびリモート装置２０の間の通信が終了した場合には（ステップＳ２０４のＹＥＳ）、処理が終了される。
【００７８】
このように、データ処理装置１０およびリモート装置２０の間の正常時の通信を学習して応答ルールを自動的に生成することによって、利用者が応答ルールを定義する手間を削減することができる。
【００７９】
本実施形態に係る通信システム１は、データが送信される際にデータ処理装置１０およびリモート装置２０の間の通信状態が悪い場合に、プロセッサ側通信制御装置１００又はデバイス側通信制御装置２００から該データの送信元であるデータ処理装置１０又はリモート装置２０へ該データに対応するダミー応答を行う。そのため、データ処理装置１０およびリモート装置２０の間の通信状態が悪化した場合であっても、通信システム１が異常な状態になることを抑制し、通信システム１の運用を継続することができる。
【００８０】
（第２の実施形態）
第１の実施形態では通信制御装置１００、２００はデータ処理装置１０およびリモート装置２０の内部に設けられるが、本実施形態ではデータ処理装置１０およびリモート装置２０の外部に設けられる。それ以外の構成および処理は第１の実施形態と同様である。
【００８１】
図７は、本実施形態に係るデータ処理装置１０およびリモート装置２０の概略構成図である。図２の構成とは異なり、プロセッサ側通信制御装置１００はインタフェース１５を介してデータ処理装置１０の外部に接続されており、第１の実施形態において説明した所定の条件が満たされる場合にデータ処理装置１０へダミー応答を送信する。デバイス側通信制御装置２００はインタフェース２５を介してリモート装置２０の外部に接続されており、第１の実施形態において説明した所定の条件が満たされる場合にリモート装置２０へダミー応答を送信する。プロセッサ側通信制御装置１００およびデバイス側通信制御装置２００は、ネットワーク７０を介して接続される。
【００８２】
本実施形態に係る通信システム１は、第１の実施形態と同様の効果を奏することができる。また、インタフェース１５およびプロセッサ側通信制御装置１００の間、あるいはインタフェース２５およびデバイス側通信制御装置２００の間で障害が発生した場合にはダミー応答を行うことができないものの、プロセッサ側通信制御装置１００およびデバイス側通信制御装置２００をデータ処理装置１０およびリモート装置２０に容易に追加することができる。
【００８３】
（第３の実施形態）
第１の実施形態では通信制御装置１００、２００は応答学習装置４０とは異なる装置であるが、本実施形態では応答学習装置４０が通信制御装置１００、２００として機能する。それ以外の構成および処理は第１の実施形態と同様である。
【００８４】
図８は、本実施形態に係るデータ処理装置１０およびリモート装置２０の概略構成図である。図２の構成とは異なり、プロセッサ側通信制御装置１００およびデバイス側通信制御装置２００が省略されている。本実施形態に係る応答学習装置４０は、図５〜６を用いて説明した応答学習方法を実行する構成を備えるとともに、図３〜４を用いて説明した通信制御方法（ダミー応答方法）を実行する構成を備える。すなわち、本実施形態に係る応答学習装置４０は、プロセッサ側通信制御装置１００およびデバイス側通信制御装置２００の機能を実行可能である。
【００８５】
データ処理装置１０およびリモート装置２０の間の通信状態が悪い場合に、応答学習装置４０はデータ処理装置１０にダミー応答を行うとともに、リモート装置２０にダミー応答を行う。すなわち、データ処理装置１０がデータの送信元である場合、およびリモート装置２０がデータの送信元である場合の両方において、応答学習装置４０は送信元に対応する通信制御装置１００、２００として機能する。ダミー応答を行う条件およびダミー応答を生成するための応答ルールは第１の実施形態と同様である。
【００８６】
応答学習装置４０は、ＣＰＵ４１がプログラムを実行することによって図３に示すプロセッサ側通信制御装置１００およびデバイス側通信制御装置２００の各部の機能を実装してもよく、あるいは図３に示すプロセッサ側通信制御装置１００およびデバイス側通信制御装置２００の各部の機能を実装する電気回路構成を備えてもよい。このような構成により、応答学習装置４０は、第１の実施形態における応答学習方法および通信制御方法の両方を実行することができる。
【００８７】
本実施形態に係る通信システム１は、第１の実施形態と同様の効果を奏することができる。また、インタフェース１５および応答学習装置４０の間、あるいはインタフェース２５および応答学習装置４０の間で障害が発生した場合にはダミー応答を行うことができないものの、応答学習装置４０のみによって応答学習方法および通信制御方法の両方を実行できるため、低コストかつ容易に導入することができる。
【００８８】
（その他の実施形態）
図９は、上述の各実施形態に係る通信制御装置１００、２００の概略構成図である。図９には、通信制御装置１００、２００が、通信状態が悪化した場合であってもシステムの継続運用を可能にする装置として機能するための構成例が示されている。通信制御装置１００、２００は、データ処理装置、およびネットワークを介して前記データ処理装置と通信するリモート装置の間の通信状態を判定する通信監視部１０３、２０３と、前記データ処理装置および前記リモート装置のうち一方から他方へデータが送信される際に、前記通信状態が所定の基準を満たさない場合に、前記データの送信元に対して、前記データに対する応答を行うダミー応答部１０２、２０２（応答部）と、を備える。
【００８９】
本発明は、上述の実施形態に限定されることなく、本発明の趣旨を逸脱しない範囲において適宜変更可能である。
【００９０】
上述の実施形態の機能を実現するように該実施形態の構成を動作させるプログラム（より具体的には、図４、６に示す処理をコンピュータに実行させる通信制御プログラム、応答学習プログラム）を記録媒体に記録させ、該記録媒体に記録されたプログラムをコードとして読み出し、コンピュータにおいて実行する処理方法も各実施形態の範疇に含まれる。すなわち、コンピュータ読取可能な記録媒体も各実施形態の範囲に含まれる。また、上述のプログラムが記録された記録媒体はもちろん、そのプログラム自体も各実施形態に含まれる。
【００９１】
該記録媒体としては例えばフロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、磁気テープ、不揮発性メモリカード、ＲＯＭを用いることができる。また該記録媒体に記録されたプログラム単体で処理を実行しているものに限らず、他のソフトウェア、拡張ボードの機能と共同して、ＯＳ上で動作して処理を実行するものも各実施形態の範疇に含まれる。
【００９２】
上述の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【００９３】
（付記１）
データ処理装置、およびネットワークを介して前記データ処理装置と通信するリモート装置の間の通信状態を判定するステップと、
前記データ処理装置および前記リモート装置のうち一方から他方へデータが送信される際に、前記通信状態が所定の基準を満たさない場合に、前記データの送信元に対応する通信制御装置から前記送信元に対して、前記データに対する応答を行うステップと、
を備える通信制御方法。
【００９４】
（付記２）
前記応答を行うステップにおいて、前記通信制御装置は、前記送信元に対して前記応答を行うとともに、前記データの送信先への前記データの送信を遮断することを特徴とする、付記１に記載の通信制御方法。
【００９５】
（付記３）
前記応答を行うステップにおいて、前記通信制御装置は、前記通信状態が前記所定の基準を満たさなくなった時間を含む所定の時間範囲に送信される前記データに基づいて前記応答を行うことを特徴とする、付記１又は２に記載の通信制御方法。
【００９６】
（付記４）
前記応答を行うステップにおいて、前記通信制御装置は、前記データおよび前記応答を関連付けるルールに従って前記応答を行うことを特徴とする、付記１〜３のいずれか一項に記載の通信制御方法。
【００９７】
（付記５）
前記ルールは、前記データに加えて、前記データ処理装置および前記リモート装置を含むシステムの構成情報、該システムの稼動情報、および前記データの特性のうち少なくとも１つを、前記応答に関連付けることを特徴とする、付記４に記載の通信制御方法。
【００９８】
（付記６）
前記通信状態が前記所定の基準を満たす場合の前記データ処理装置および前記リモート装置の間の通信から前記ルールを学習するステップをさらに備えることを特徴とする、付記４又は５に記載の通信制御方法。
【００９９】
（付記７）
前記応答を行うステップは、前記データ処理装置および前記リモート装置の間の通信の応答時間、速度およびエラー率の少なくとも１つが前記所定の基準を満たさない場合に、前記応答を行うことを特徴とする、付記１〜６のいずれか一項に記載の通信制御方法。
【０１００】
（付記８）
前記リモート装置には、前記データ処理装置によって前記ネットワークを介して制御される入出力デバイスが接続され、
前記データは、前記データ処理装置のプロセッサと前記入出力デバイスとの間で送受信されることを特徴とする、付記１〜７のいずれか一項に記載の通信制御方法。
【０１０１】
（付記９）
前記通信制御装置は、前記データ処理装置および前記リモート装置の少なくとも一方に設けられることを特徴とする、付記１〜８のいずれか一項に記載の通信制御方法。
【０１０２】
（付記１０）
前記通信制御装置は、前記データ処理装置および前記リモート装置の間の前記ネットワークに設けられることを特徴とする、付記１〜８のいずれか一項に記載の通信制御方法。
【０１０３】
（付記１１）
コンピュータに、
データ処理装置、およびネットワークを介して前記データ処理装置と通信するリモート装置の間の通信状態を判定するステップと、
前記データ処理装置および前記リモート装置のうち一方から他方へデータが送信される際に、前記通信状態が所定の基準を満たさない場合に、前記データの送信元に対応する通信制御装置から前記送信元に対して、前記データに対する応答を行うステップと、
を実行させる通信制御プログラム。
【０１０４】
（付記１２）
データ処理装置、およびネットワークを介して前記データ処理装置と通信するリモート装置の間の通信状態を判定する通信監視部と、
前記データ処理装置および前記リモート装置のうち一方から他方へデータが送信される際に、前記通信状態が所定の基準を満たさない場合に、前記データの送信元に対して、前記データに対する応答を行う応答部と、
を備える通信制御装置。
【０１０５】
１０  データ処理装置
２０  リモート装置
１００、２００  通信制御装置
１０２、２０２  ダミー応答部
１０３、２０３  通信監視部
【図１】
2018206105.tif 000003
【図２】
2018206105.tif 000004
【図３】
2018206105.tif 000005
【図４】
2018206105.tif 000006
【図５】
2018206105.tif 000007
【図６】
2018206105.tif 000008
【図７】
2018206105.tif 000009
【図８】
2018206105.tif 000010
【図９】
2018206105.tif 000011