(57)【特許請求の範囲】
【請求項１】
通信先となる通信先装置に対して処理を要求するためにアプリケーション実行装置から送信された複数の通信イベントの通信イベントごとに、通信イベントの送信を要求する要求時刻に対して、通信イベントの種別毎に設定された時間であり、通信イベントに対する応答データを前記アプリケーション実行装置に返すまでの時間である制限時間を加算し、通信イベントの種別毎に設定され、同じ通信先装置に送信された同じ種別の以前の通信イベントの送信時刻から、以前の通信イベントに応答して前記通信先装置から返信された応答データの受信時刻までの時間である応答時間のばらつきを吸収する予備時間を減算し、さらに、前記応答時間を減算することにより、通信イベントを前記通信先装置に送信すべき時刻を示す送信期限時刻を計算すると共に、複数の通信イベントの通信イベントごとに、送信期限時刻が対応付けられた通信イベント管理情報を有するスケジュール部と、
通信部と、
前記通信部を用いて、送信期限時刻の早い順に通信イベントを前記通信先装置に送信する管理部と、
同じ通信先装置に送信された同じ種別の２つの通信イベントの応答時間の差分を示す応答時間変化量を監視し、応答時間変化量の値に基づいて予備時間の長さを大きくし、大きくした予備時間を用いて、通信イベント管理情報の通信イベントごとの送信期限時刻を再計算する予備時間調整部を備える通信イベント処理装置。
【請求項２】
通信先となる通信先装置に対して処理を要求するためにアプリケーション実行装置から送信された複数の通信イベントの通信イベントごとに、通信イベントの送信を要求する要求時刻に対して、通信イベントの種別毎に設定された時間であり、通信イベントに対する応答データを前記アプリケーション実行装置に返すまでの時間である制限時間を加算し、
通信イベントの種別毎に設定され、同じ通信先装置に送信された同じ種別の以前の通信イベントの送信時刻から、以前の通信イベントに応答して前記通信先装置から返信された応答データの受信時刻までの時間である応答時間のばらつきを吸収する予備時間を減算し、さらに、前記応答時間を減算することにより、通信イベントを前記通信先装置に送信すべき時刻を示す送信期限時刻を計算するスケジュール部と、
通信部と、
前記通信部を用いて、送信期限時刻の早い順に通信イベントを前記通信先装置に送信する管理部と
を備えると共に、
前記スケジュール部は、
同じ通信先装置に送信された同じ種別の以前の通信イベントとして、前回に送信された通信イベントを用いる通信イベント処理装置。
【請求項３】
前記予備時間調整部は、
同じ通信先装置に送信された同じ種別の複数の通信イベントの各通信イベントの応答データの受信時刻を監視し、各通信イベントの応答データの受信時刻が、要求時刻に制限時間を加算した時刻である応答制限時刻よりも連続して後になり、かつ、連続して後になる回数が閾値を超える場合に、予備時間の長さを大きくし、大きくした予備時間を用いて、通信イベント管理情報の通信イベントごとの送信期限時刻を再計算する請求項１に記載の通信イベント処理装置。
【請求項４】
前記複数の通信イベントの各通信イベントは、
通信先装置に要求する処理の優先順位を示す優先度が同じである請求項１から請求項３のいずれか一項に記載の通信イベント処理装置。
【請求項５】
通信装置を有するコンピュータに、
通信先となる通信先装置に対して処理を要求するためにアプリケーション実行装置から送信された複数の通信イベントの通信イベントごとに、通信イベントの送信を要求する要求時刻に対して、通信イベントの種別毎に設定された時間であり、通信イベントに対する応答データを前記アプリケーション実行装置に返すまでの時間である制限時間を加算し、通信イベントの種別毎に設定され、同じ通信先装置に送信された同じ種別の以前の通信イベントの送信時刻から、以前の通信イベントに応答して前記通信先装置から返信された応答データの受信時刻までの時間である応答時間のばらつきを吸収する予備時間を減算し、さらに、前記応答時間を減算することにより、通信イベントを前記通信先装置に送信すべき時刻を示す送信期限時刻を計算する処理と、
前記通信装置を用いて、送信期限時刻の早い順に通信イベントを前記通信先装置に送信する処理と
を実行させると共に、
さらに、
同じ通信先装置に送信された同じ種別の２つの通信イベントの応答時間の差分を示す応答時間変化量を監視し、応答時間変化量の値に基づいて予備時間の長さを大きくし、大きくした予備時間を用いて、複数の通信イベントの通信イベントごとに、送信期限時刻が対応付けられた通信イベント管理情報の通信イベントごとの送信期限時刻を再計算する処理、
を実行させるための通信イベント処理プログラム。
【請求項６】
通信装置を有するコンピュータに、
通信先となる通信先装置に対して処理を要求するためにアプリケーション実行装置から送信された複数の通信イベントの通信イベントごとに、通信イベントの送信を要求する要求時刻に対して、通信イベントの種別毎に設定された時間であり、通信イベントに対する応答データを前記アプリケーション実行装置に返すまでの時間である制限時間を加算し、通信イベントの種別毎に設定され、同じ通信先装置に送信された同じ種別の以前の通信イベントの送信時刻から、以前の通信イベントに応答して前記通信先装置から返信された応答データの受信時刻までの時間である応答時間のばらつきを吸収する予備時間を減算し、さらに、前記応答時間を減算することにより、通信イベントを前記通信先装置に送信すべき時刻を示す送信期限時刻を計算する処理と、
前記通信装置を用いて、送信期限時刻の早い順に通信イベントを前記通信先装置に送信する処理と、
を実行させると共に、
前記送信期限時刻を計算する処理では、
同じ通信先装置に送信された同じ種別の以前の通信イベントとして、前回に送信された通信イベントを用いる通信イベントプログラム。
【請求項７】
通信装置を有するコンピュータが、
通信先となる通信先装置に対して処理を要求するためにアプリケーション実行装置から送信された複数の通信イベントの通信イベントごとに、通信イベントの送信を要求する要求時刻に対して、通信イベントの種別毎に設定された時間であり、通信イベントに対する応答データを前記アプリケーション実行装置に返すまでの時間である制限時間を加算し、通信イベントの種別毎に設定され、同じ通信先装置に送信された同じ種別の以前の通信イベントの送信時刻から、以前の通信イベントに応答して前記通信先装置から返信された応答データの受信時刻までの時間である応答時間のばらつきを吸収する予備時間を減算し、さらに、前記応答時間を減算することにより、通信イベントを前記通信先装置に送信すべき時刻を示す送信期限時刻を計算する処理と、
前記通信装置を用いて、送信期限時刻の早い順に通信イベントを前記通信先装置に送信すると処理と、
を実行し、
さらに、
同じ通信先装置に送信された同じ種別の２つの通信イベントの応答時間の差分を示す応答時間変化量を監視し、応答時間変化量の値に基づいて予備時間の長さを大きくし、大きくした予備時間を用いて、複数の通信イベントの通信イベントごとに、送信期限時刻が対応付けられた通信イベント管理情報の通信イベントごとの送信期限時刻を再計算する処理、
を実行する通信イベント処理方法。
【請求項８】
通信装置を有するコンピュータが、
通信先となる通信先装置に対して処理を要求するためにアプリケーション実行装置から送信された複数の通信イベントの通信イベントごとに、通信イベントの送信を要求する要求時刻に対して、通信イベントの種別毎に設定された時間であり、通信イベントに対する応答データを前記アプリケーション実行装置に返すまでの時間である制限時間を加算し、通信イベントの種別毎に設定され、同じ通信先装置に送信された同じ種別の以前の通信イベントの送信時刻から、以前の通信イベントに応答して前記通信先装置から返信された応答データの受信時刻までの時間である応答時間のばらつきを吸収する予備時間を減算し、さらに、前記応答時間を減算することにより、通信イベントを前記通信先装置に送信すべき時刻を示す送信期限時刻を計算する処理と、
前記通信装置を用いて、送信期限時刻の早い順に通信イベントを前記通信先装置に送信すると処理とを実行すると共に、
前記送信期限時刻を計算する処理では、
同じ通信先装置に送信された同じ種別の以前の通信イベントとして、前回に送信された通信イベントを用いる通信イベント処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、通信イベント処理装置、通信イベント処理プログラム及び通信イベント処理方法に関する。
【背景技術】
【０００２】
複数の通信先とそれらを監視する監視センタがインターネットなどのネットワークを介して接続しているシステムの通信機能に関する。
【０００３】
このシステムの概要を簡単に説明する。通信機能は、監視センタ内が提供するアプリケーションからの要求に応じて、通信先に機器制御や情報収集などの処理を要求する通信イベントを送信する。通信先は通信イベントを受信すると、要求された処理を実施し、その結果を応答データとして監視センタに返す。監視センタの通信機能は、通信先から受信した応答データ毎の処理を実施する。通信先や提供するサービスの追加に伴い、監視センタが処理する通信イベントが増加すると、通信イベントの送信処理が追い付かなくなるため、監視センタは、送信待ちの通信イベントを一時的に貯め、優先度の高い通信イベントから順に制御を行う。本発明は、さらに優先度が同一の通信イベントに対する優先制御方法を対象とする。
【０００４】
優先度が同一の通信イベントの優先制御の従来方法として、通信イベントの登録順に実施する方法が提案されている（特許文献１）。この方法は、パケットやプロセスの処理など、一つ一つの処理にかかる時間が同程度かつ小さい場合に有効な手法である。
しかし、通信先毎に、監視センタとの物理的な距離や、管理する機器・情報の数が異なるため、同じ優先度の通信イベントでも、監視センタから通信イベントを送信後、通信先で処理を行い、監視センタに戻ってくるまでの時間（以降、応答時間と呼ぶ）も異なる。そのため、一つ一つの処理にかかる時間を考慮せず順番に処理する従来手法では、処理時間が長い通信先への通信イベントの送信が、通信イベント毎に要求される制限時間に間に合わないことがある。
【０００５】
そこで、送信完了時刻までに最も時間的な余裕がないデータを優先的に処理する方法が提案されている（特許文献２）。この方法は、通信イベントの要求発生時刻から、ユーザやデータ毎に予め設定された許容遅延時間を加算することにより、データの送信完了時刻を計算し、現在時刻から最も近い（猶予時間が短い）データにリソースを優先的に割り当てる方法である。これにより、処理時間が長い通信先への通信イベントも、予め設定した許容遅延時間の範囲で、通信イベント毎に要求される制限時間に間に合うよう処理が可能となる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平２−２８７３０号公報
【特許文献２】国際公開第２００５−０３２０７５号パンフレット
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、特許文献２では、許容遅延時間に予め設定された固定値を利用するため、ネットワークの遅延や通信先の処理時間など、通信先の環境の変化に対応できない。例えば、応答時間が許容遅延時間より大きくなると制限時間に間に合わなくなり、応答時間が許容遅延時間より小さくなると実際は他に優先制御すべき通信イベントよりも先に処理してしまい、結果、他の通信イベントが間に合わなくなるといった問題が発生しうる。
【０００８】
そこで、本発明は、通信先の環境の変化に対応可能な、通信イベントの優先制御方式の提供を目的とする。
【課題を解決するための手段】
【０００９】
この発明の通信イベント処理装置は、
通信先となる通信先装置に対して処理を要求する複数の通信イベントの通信イベントごとに、通信イベントの送信を要求する要求時刻に対して、通信イベントの種別毎に設定された制限時間を加算し、通信イベントの種別毎に設定された予備時間を減算し、同じ通信先装置に送信された同じ種別の以前の通信イベントの送信時刻から、以前の通信イベントに応答して前記通信先装置から返信された応答データの受信時刻までの時間である応答時間を減算することにより、通信イベントを前記通信先装置に送信すべき時刻を示す送信期限時刻を計算するスケジュール部と、
通信部と、
前記通信部を用いて、送信期限時刻の早い順に通信イベントを前記通信先装置に送信する管理部と
を備える。
【発明の効果】
【００１０】
本発明の通信イベント処理装置は、送信期限時刻を計算するスケジュール部と、送信期限時刻の早い順に通信イベントを通信先装置に送信する管理部とを備えた。よって、本発明によれば、通信先の環境の変化に対応可能な通信イベントの優先制御方式を提供できる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１の図で、通信イベント処理装置１００−１の構成図。
【図２】実施の形態１の図で、通信イベント処理装置１００−１のハードウェア構成図。
【図３】実施の形態１の図で、図１の機能部と図２のハードウェア構成との対応を示す図。
【図４】実施の形態１の図で、スケジュール部４が管理する通信イベント管理テーブル４−１を示す図。
【図５】実施の形態１の図で、送信期限時刻Ｔ（２）を表す図。
【図６】実施の形態１の図で、応答時間調整部８が管理する応答時間管理テーブル４−２を示す図。
【図７】実施の形態１の図で、通信イベント受付部１のフローチャート。
【図８】実施の形態１の図で、通信イベント分離部２のフローチャート。
【図９】実施の形態１の図で、通信イベント蓄積部３−１等のフローチャート。
【図１０】実施の形態１の図で、スケジュール部４のフローチャート。
【図１１】実施の形態１の図で、通信イベント管理部５のフローチャート。
【図１２】実施の形態１の図で、通信イベント送信部６のフローチャート。
【図１３】実施の形態１の図で、応答データ受信部７のフローチャート。
【図１４】実施の形態１の図で、応答時間調整部８のフローチャート。
【図１５】実施の形態１の図で、通信イベント処理装置１００−１のハードウェア構成を示す図。
【図１６】実施の形態１の図で、通信イベント４００が応答制限時刻Ｔ（３）に間に合わない状態を示す図。
【図１７】実施の形態２の図で、通信イベント処理装置１００−２の構成図。
【図１８】実施の形態２の図で、応答データ受信部７ａのフローチャート。
【図１９】実施の形態２の図で、監視部９−１のフローチャート。
【図２０】実施の形態３の図で、通信イベント処理装置１００−３の構成図。
【図２１】実施の形態３の図で、遅延回数テーブル４−３を示す図。
【図２２】実施の形態３の図で、監視部９−２のメインフローのフローチャート。
【図２３】実施の形態３の図で、ステップＳ２７の詳細フローチャート。
【図２４】実施の形態３の図で、ステップＳ３３の詳細フローチャート。
【図２５】実施の形態３の図で、ステップＳ３９の詳細フローチャート。
【図２６】実施の形態３の図で、図２２〜図２３をまとめたフローチャート。
【図２７】実施の形態４の図で、通信イベント処理装置１００−４の構成図。
【図２８】実施の形態４の図で、予測部９−３のフローチャート。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態について、図を用いて説明する。なお、各図中、同一または相当する部分には、同一符号を付している。実施の形態の説明において、同一または相当する部分については、説明を適宜省略または簡略化する。
【００１３】
以下の実施の形態では、下記の（１）〜（６）のような、要求時刻Ｔ（１）、制限時間ｔ１等の時刻、時間が登場する。本明細書では、「時刻」とは時間の流れの中のある一点を意味し、「時間」とは時刻と時刻との間の幅を持つ時を意味する。
（１）要求時刻Ｔ（１）、
（２）送信期限時刻Ｔ（２）
（３）応答制限時刻Ｔ（３）
（４）制限時間ｔ１、
（５）予備時間ｔ２、
（６）前回応答時間ｔ３、
【００１４】
実施の形態１．
図１は、実施の形態１の通信イベント処理装置１００−１の機能構成図である。通信イベント処理装置１００−１は、上位アプリケーション実行装置２００、通信先装置３００に接続している。上位アプリケーション実行装置２００は、上位アプリケーションを実行するコンピュータである。上位アプリケーション実行装置２００は、以下、上位アプリ２００と記す。通信先装置３００は、上位アプリ２００から送信された通信イベントを処理し、通信イベントに対する応答データを返信する装置である。通信先装置３００は、以下、通信先３００と記す。
【００１５】
通信イベント処理装置１００−１は、通信イベント受付部１、通信イベント分離部２、通信イベント蓄積部３−１、３−２、３−３、・・・、スケジュール部４、通信イベント管理部５、通信イベント送信部６、応答データ受信部７、応答時間調整部８を備えている。通信イベント蓄積部３は通信イベント４００の優先度毎に形成される。
「優先度」とは、通信先装置に要求する処理の優先順位を示す情報である。
【００１６】
（１）通信イベント受付部１は、上位アプリ２００から通信イベント４００を受け付ける。「通信イベント４００」とは、通信先３００に対して何らかの処理を要求するリクエストである。通信イベント４００には、
（ａ）通信先３００を示す通信先４０１、
（ｂ）優先度４０２、
（ｃ）その通信イベントの種別４０３、
が含まれる。
（ｄ）また通信イベント４００には、要求時刻４０４が含まれる。
（２）通信イベント分離部２は、通信イベント４００に設定された優先度４０２に応じて、通信イベント４００を通信イベント蓄積部３−１、３−２、３−３、・・・に振り分ける。
（３）通信イベント蓄積部３−１、３−２、３−３、・・・は、通信イベント分離部２から受信した通信イベント４００を通信イベント管理部５から要求されるまで保持する。
（４）スケジュール部４は、同じ優先度４０２の通信イベント４００について、通信イベント４００に設定されている制限時間に処理を完了させるために、最も猶予時間の少ない通信イベント４００の順に並び替えた通信イベント４００のリストを作成し、通信イベント管理部５に通知する。
（５）通信イベント管理部５は、スケジュール部４から得た通信イベント４００のリストの順番に通信イベント蓄積部３−１、３−２、３−３、・・・から通信イベント４００を取得し、順番に通信イベント送信部６に渡す。
（６）通信イベント送信部６は、通信イベント管理部５から受け取った通信イベント４００を順番に通信先３００に送信する。
（７）応答データ受信部７は、送信した通信イベント４００に対して通信先３００から返信された応答データ５００を受信し、上位アプリ２００に送信すると共に、応答時間調整部８に通知する。
（８）応答時間調整部８は、通信イベント４００の送信から応答データ５００の受信までの応答時間ｔ３を、スケジュール部４の管理する後述の応答時間管理テーブル４−２に反映する。
【００１７】
図２は、通信イベント処理装置１００−１のハードウェア構成図である。通信イベント処理装置１００−１は、コンピュータである。通信イベント処理装置１００−１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１２、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１３、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｃ  Ｄｒｉｖｅ）１４を接続したＨＤＤコントローラ１５、通信手段であるネットワークコントローラ１６、入力手段として利用するマウス１８、キーボード１９、及び、ディスプレイ２０が接続された入出力コントローラ１７が、内部のバス２１に接続して構成される。上位アプリ２００や通信先３００も図２と同様の構成である。ネットワークコントローラ１６は、通信装置である。
【００１８】
図３は、図１の機能部と図２のハードウェア構成の対応を示す図である。図３ではネットワークコントローラ１６は、ＮＷ／ＣＮＴ１６と記載している。通信イベント受付部１、通信イベント送信部６、応答データ受信部７は、ＮＷ／ＣＮＴ１６で実現される。通信イベント蓄積部３−１、３−２、・・・はＣＰＵ１１とＲＡＭ１３で実現される。通信イベント分離部２、通信イベント管理部５、応答時間調整部８はＣＰＵ１１で実現される。またスケジュール部４はＣＰＵ１１とＲＡＭ１３で実現されるが、具体的には、スケジュール部４の通信イベント管理テーブル４−１、応答時間管理テーブル４−２がＲＡＭ１３で実現される。
【００１９】
ＣＰＵ１１によって実現される通信イベント処理装置１００−１の機能を、通信イベント処理装置１００−１の「部」の機能という。具体的には、「部」の機能は、図３に示すように、通信イベント蓄積部３−１，３−２等、通信イベント分離部２、スケジュール部４、通信イベント管理部５、応答時間調整部８の機能である。通信イベント処理装置１００−１の「部」の機能は、ソフトウェアで実現される。図２にはＲＯＭ１２、ＲＡＭ１３、ＨＤＤ１４を示すが、これらを総称して「記憶装置」という。ＨＤＤ１４は補助記憶装置と呼ばれる場合もある。
【００２０】
ＨＤＤ１４には、通信イベント処理装置１００−１の「部」の機能を実現するプログラムが記憶されている。このプログラムは、ＲＡＭ１３にロードされ、ＣＰＵ１１に読み込まれ、ＣＰＵ１１によって実行される。ＨＤＤ１４には、ＯＳ（Ｏｐｅｒａｔｉｎｇ・Ｓｙｓｔｅｍ）も記憶されている。ＯＳの少なくとも一部がＲＡＭ１３にロードされ、ＣＰＵ１１はＯＳを実行しながら、通信イベント処理装置１００−１の「部」の機能を実現するプログラムを実行する。
【００２１】
（通信イベント管理テーブル４−１）
図４は、スケジュール部４が通信イベント４００のリストを作成するために管理する通信イベント管理テーブル４−１を示す。スケジュール部４は、通信イベント４００の優先度毎に、通信イベント管理テーブル４−１を持つ。図４の（ａ）（ｂ）（ｃ）は、通信イベント管理テーブル４−１の時間的な経緯の状態を示す。
また図４の（ｄ）は、スケジュール部４の使用する予備時間及び制限時間の情報である。予備時間及び制限時間の情報はテーブル形式であり、ＨＤＤ１４に格納されている。予備時間及び制限時間のレコードは、「通信先及び通信イベント種別」の組ごとに登録されている。通信イベント管理テーブル４−１の一つのレコードが、一つの通信イベント４００である。図４の通信イベント管理テーブル４−１では、レコードの「通信先」及び「要求時刻」から通信イベント４００を識別できる。また、例えば「通信先」の列の左に、通信イベント４００を識別する「通信イベント」の列を設けて識別子を登録して、通信イベント４００を識別してもよい。
通信イベント管理テーブル４−１は、
（１）通信先、
（２）要求時刻Ｔ（１）、
（３）制限時間ｔ１、
（４）予備時間ｔ２、
（５）前回応答時間ｔ３、
（６）送信期限時刻Ｔ（２）
を管理する。送信期限時刻Ｔ（２）の「１０：００：０５」は「時：分：秒」を示す。
【００２２】
通信イベント分離部２が、通信イベント管理テーブル４−１のレコードを登録する。
通信イベント分離部２は、通信イベント受付部１から通信イベントを受け取った際（後述のＳ０３）に、通信イベント管理テーブル４−１にデータと登録する。
「通信先」には、通信先３００を識別する識別子が登録される。
「要求時刻Ｔ（１）」には、通信イベント要求部１が通信イベント４００を受け付けた時刻が登録される。
「制限時間ｔ１」と「予備時間ｔ２」とは、通信イベント毎に予め設定されている値を登録する。「制限時間ｔ１」とは、通信イベント４００に対する応答データ５００を上位アプリ２００に返すまでの時間である。「予備時間ｔ２」とは、通信先３００の状況により発生する応答時間ｔ３のバラツキを吸収するための時間として設定された時間である。
「前回応答時間ｔ３」とは、同じ種別の通信イベントを前回送信した際の応答時間５００を登録である。「前回応答時間ｔ３」は、通信イベント分離部２が、後述する応答時間管理テーブル４−２から取得する。
「送信期限時刻Ｔ（２）」は、制限時間ｔ１、予備時間ｔ２、前回応答時間ｔ３を考慮した、通信イベント送信の期限となる時刻を表す。送信期限時刻Ｔ（２）は、通信イベントの要求時刻Ｔ（１）に制限時間ｔ１を加算し、予備時間ｔ２、前回応答時間ｔ３を減算した結果である。
つまり、
送信期限時刻Ｔ（２）＝
要求時刻Ｔ（１）＋制限時間ｔ１−予備時間ｔ２−前回応答時間ｔ３
である。
図５は、送信期限時刻Ｔ（２）を表す図である。送信期限時刻Ｔ（２）が現在時刻に近いほど、通信イベント４００に設定された制限時間ｔ１内に処理を完了させるための余裕時間が少ないと言える。
【００２３】
図６は、応答時間調整部８が管理する、応答時間管理テーブル４−２である。応答時間管理テーブル４−２では、「通信先」、「通信イベント種別」、「応答時間」が管理される。応答時間管理テーブル４−２のレコードは、応答データ受信部７から応答データ５００を受信するたびに更新される。
「通信先、通信イベント種別」の組が初めての応答データを受信する場合は、応答時間調整部８は、その応答データのレコードを追加する。
（ａ）通信イベント管理テーブル４−１と同様に、「通信先」には、通信先３００を識別する識別子を登録する。
（ｂ）「通信イベント種別」には、受信した応答データ５００に対応する通信イベント４００の種別を登録する。
（ｃ）「応答時間」には、受信した応答データ５００に対応する通信イベント４００の送信時刻から、その応答データ５００の受信までにかかった時間を登録する。つまり「応答時間」とは、通信イベント４００を通信先３００に送信した時刻から、通信イベントに対応する通信先３００からの応答データ５００が受信された時刻までの時間である。スケジュール部４が「通信先」と「通信イベント種別」とを通信イベント管理テーブル４−１に入力すると、応答時間管理テーブル４−２において対応する「応答時間」をスケジュール部４へ返す。
【００２４】
また、図４では、
「１０：００：００」になる直前の状態（上段）、
「１０：００：００」に「通信先１」に対する通信イベントが登録された状態（中段）、
「１０：００：１０」に「通信先２」に対する通信イベントが登録された状態（下段）の通信イベント管理テーブル４−１の内容を表している。
「１０：００：００」直前は通信先Ａ、通信先Ｂに向けた通信イベント４００の他、分かりにくくなるため図４には記載していないが、通信先Ａの前、通信先Ａと通信先Ｂの間、通信先Ｂの後には多数の通信イベント４００が登録されている状態とする。
ここで、「１０：００：００」に「通信先１」向けの通信イベント４００が登録されたとする。
【００２５】
その際、
（１）通信イベント管理テーブル４−１の「通信先」は、通信イベント４００に付与されている通信先４０１を利用する。
（２）「要求時刻Ｔ（１）」は、現在時刻である「１０：００：００」を利用する。
（３）「制限時間ｔ１、予備時間ｔ２」は、予め通信イベントの種別毎に決定している値（図４の（ｄ））を利用する。
図４では、
通信イベントの種別＝Ｔ０１、
制限時間ｔ１＝６０ｓｅｃ、
予備時間ｔ２＝１０ｓｅｃを
利用している。
（４）「前回応答時間ｔ３」は、図６の応答時間管理テーブル４−２から「通信先」と「通信イベント種別」に対応する応答時間ｔ３を取得して利用する。
（５）「送信期限時刻Ｔ（２）」は、
上記のように、
送信期限時刻Ｔ（２）＝
要求時刻Ｔ（１）＋制限時間ｔ１−予備時間ｔ２−前回応答時間ｔ３
が登録される。その結果、「通信先１」向けの通信イベント４００の送信期限時刻Ｔ（２）は、「１０：００：３０」となり、通信先Ａや通信先Ｂよりも送信までの余裕があることから、送信順位はＡ、Ｂ、１の順となる。
【００２６】
ここで、さらに、「１０：００：１０」に「通信先２」に対する通信イベント４００が登録されたとする。この時点で、「通信先Ａ」に向けた通信イベント４００は送信されているものとする。この時、「通信先２」の「前回応答時間ｔ３」を図６の応答時間管理テーブル４−２から取得する。「通信先」の「前回応答時間ｔ３」は４０ｓｅｃであるので、「送信期限時刻Ｔ（２）」は「１０：００：２０」となり、スケジュール部４のソートにより、送信順位は、Ｂ、２、１の順となる。
【００２７】
このように、実施の形態１では、同一の優先度の通信イベント４００を、送信期限時刻Ｔ（２）が現在時刻に近いものから順に処理することで、応答時間の変化に対応可能な優先制御を実現する。
【００２８】
＊＊＊動作の説明＊＊＊
次に、図７〜１２を用いて、実施の形態１の動作について説明する。
【００２９】
（通信イベント受付部１）
図７は、通信イベント受付部１のフローチャートである。上位アプリ２００が通信先３００に対して通信イベント４００を送信する度に、通信イベント受付部１は下記動作を実行する。
ステップＳ０１において、通信イベント受付部１は、上位アプリ２００から、通信イベント４００を受け付ける。
ステップＳ０２において、通信イベント受付部１は、通信イベント４００を通信イベント分離部２に送付する
【００３０】
（通信イベント分離部２）
図８は、通信イベント分離部２のフローチャートである。通信イベント受付部１から通信イベントを受信する度に、通信イベント分離部２は下記動作を実行する。
ステップＳ０３において、通信イベント分離部２は、通信イベント４００に付与されている、通信先４０１、優先度４０２、通信イベント種別４０３、要求時刻４０４の情報を、スケジュール部４に通知する。
ステップＳ０４において、通信イベント分離部２は、通信イベント４００に付与された優先度に対応する通信イベント蓄積部３に、通信イベント４００を登録する。
【００３１】
（通信イベント蓄積部）
図９は、通信イベント蓄積部３−１、３−２、３−３、・・のフローチャートである。通信イベント分離部２から通信イベント４００を登録された後、通信イベント蓄積部３−１等は、通信イベント管理部５から通信イベント要求の取得要求がある度に、下記動作を実行する。
ステップＳ０５において、通信イベント蓄積部３−１、３−２、３−３、・・は、通信イベント管理部５から要求された通信イベント４００を、通信イベント管理部５に送信する。
【００３２】
（スケジュール部４）
スケジュール部４は、通信先装置に対して処理を要求する複数の通信イベント４００の通信イベントごとに、通信イベント４００の送信を要求する要求時刻Ｔ（１）に対して、通信イベントの種別毎に設定された制限時間ｔ１を加算し、通信イベントの種別毎に設定された予備時間ｔ２を減算し、同じ通信先装置に送信された同じ種別の以前の通信イベント４００の送信時刻から、以前の通信イベント４００に応答して通信先装置から返信された応答データ５００の受信時刻までの時間である応答時間ｔ３を減算することにより、通信イベントを通信先装置に送信すべき時刻を示す送信期限時刻Ｔ（２）を計算する。スケジュール部４が計算した送信期限時刻Ｔ（２）は、管理部である通信イベント管理部５が、通信部である通信イベント送信部６を用いて、送信期限時刻Ｔ（２）の早い順に通信イベント４００を通信先３００に送信することに使用される。
【００３３】
図１０は、スケジュール部４のフローチャートである。通信イベント分離部２から通信イベントの情報である通信先４０１、優先度４０２、通信イベント種別４０３、要求時刻４０４を取得する度に、以下動作を実行する。
ステップＳ０６において、スケジュール部４は、通信イベント分離部２から取得した通信先４０１、通信イベント種別４０３の情報を利用し、応答時間管理テーブル４−２から、対応する応答時間ｔ３を取得する。さらに、ＨＤＤ１４に格納されている、「通信先、通信イベント種別」の組毎に設定されている「制限時間ｔ１、予備時間ｔ２」を利用して、通信イベント４００が「要求時刻Ｔ（１）＋制限時間ｔ１」に間に合うための送信期限時刻Ｔ（２）を以下の式で算出する。ここで、要求時刻Ｔ（１）は、通信イベントの受付時刻とする。通信イベント受付部１が通信イベント４００にタイムスタンプとして受付時刻を付与する。
送信期限時刻Ｔ（２）＝要求時刻Ｔ（１）＋制限時間ｔ１−予備時間ｔ２−前回応答時間ｔ３
ステップＳ０７において、スケジュール部４は、通信イベント４００の優先度に応じた通信イベント管理テーブル４−１に、通信イベント４００のレコードを登録する。
ステップＳ０８において、スケジュール部４は、通信イベント管理テーブル４−１を送信期限時刻Ｔ（２）の早い順に並び替え、この並び替えたリストを生成する。この並び替えは、通信イベント４００に設定された制限時間ｔ１内に処理を完了させるための余裕時間の少ない順に並び替えることを意味する。このリストは、図４の通信イベント管理テーブル４−１が相当する。
ステップＳ０９において、スケジュール部４は、通信イベント４００のリストを、通信イベント管理部５に通知する。
【００３４】
（通信イベント管理部５）
図１１は、通信イベント管理部５のフローチャートである。スケジュール部４から通信イベントのリストを取得する度に、以下動作を実行する。
ステップＳ１０において、通信イベント管理部５は、スケジュール部４から取得した通信イベントのリストの順（送信期限時刻Ｔ（２）の早い順）に、通信イベント４００の優先度に対応する通信イベント蓄積部３−１、３−２、３−３、・・から通信イベント４００を取得し、通信イベント送信部６に送信する。
【００３５】
（通信イベント送信部６）
図１２は、通信イベント送信部６のフローチャートである。通信イベント管理部５から通信イベント４００を受信する度に、以下の動作を実行する。
ステップＳ１１において、通信イベント送信部６は、通信イベント管理部５から通信イベント４００を受信した順に、通信先３００へ送信する。
【００３６】
（応答データ受信部７）
図１３は、応答データ受信部７のフローチャートである。通信先３００から応答データ５００を受信する度に、以下動作を実行する。
ステップＳ１２において、応答データ受信部７は、通信先３００から応答データ５００受信する。
ステップＳ１３において、応答データ受信部７は、応答データ５００を上位アプリ２００に送信する。
ステップＳ１４において、応答データ受信部７は、応答時間調整部８に応答データ５００の受信時刻を通知する。
【００３７】
（応答時間調整部８）
図１４は、応答時間調整部８のフローチャートである。応答データ受信部７から応答データの受信時刻を取得する度に、以下動作を実行する。
【００３８】
ステップＳ１５において、応答時間調整部８は、応答データ受信部７から得た応答データ５００の受信時刻から通信イベント４００の送信時刻を減算し、応答時間を算出する。
ステップＳ１６において、応答時間調整部８は、ステップＳ１５で算出した応答時間を用いて、応答時間管理テーブル４−２で該当するレコード（「通信先」及び「通信イベント種別」が同じ）の応答時間ｔ３を、算出した応答時間に書き換える。あるいはレコードが新規登録のため応答時間ｔ３が未登録であれば登録する。
【００３９】
＊＊＊実施の形態１の効果＊＊＊
実施の形態１の通信イベント処理装置１００−１によれば、予備時間ｔ２と、ネットワーク遅延や通信先装置の処理時間の増加などにより変更する応答時間とを利用して、優先度の同じ通信イベント４００の送信順番を決定する。これにより、制限時間ｔ１に間に合わない通信イベント４００を減らすことができるので、システムの信頼性を向上できる。
【００４０】
なお、実施の形態１では前回の応答時間を使用しているが、前々回（２回前）、３回前等の応答時間を用いてもよい。ただし、前回の応答時間を用いることが好ましい。つまり、実施の形態１で説明したように、スケジュール部４は、同じ通信先装置に送信された同じ種別の以前の通信イベントとして、前回に送信された通信イベントを用いることが好ましい。
【００４１】
＊＊＊他の構成＊＊＊
図１５は、通信イベント処理装置１００−１のハードウェア構成を示す図である。
【００４２】
図１５は、処理回路９９を示す図である。本実施の形態では通信イベント処理装置１００−１の「部」の機能はソフトウェアで実現されるが、変形例として、通信イベント処理装置１００−１の「部」の機能がハードウェアで実現されてもよい。つまり、処理回路９９によって、前述したＣＰＵ１１として示す通信イベント処理装置１００−１の「部」の機能、及びＲＯＭ１２、ＲＡＭ１３、ＨＤＤ１４を含む「記憶装置」の機能を実現する。処理回路９９は信号線９９ａに接続している。処理回路９９は、通信イベント処理装置１００−１の「部」の機能及び「記憶装置」の機能を実現する専用の電子回路である。処理回路９９は、具体的には、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックＩＣ、ＧＡ（Ｇａｔｅ・Ａｒｒａｙ）、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ・Ｓｐｅｃｉｆｉｃ・Ｉｎｔｅｇｒａｔｅｄ・Ｃｉｒｃｕｉｔ）、又は、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ・Ｇａｔｅ・Ａｒｒａｙ）である。
【００４３】
通信イベント処理装置１００−１は、処理回路９９を代替する複数の処理回路を備えていてもよい。これら複数の処理回路により、全体として、通信イベント処理装置１００−１の「部」の機能が実現される。それぞれの処理回路は、処理回路９９と同じように、専用の電子回路である。
【００４４】
別の変形例として、通信イベント処理装置１００−１の機能がソフトウェアとハードウェアとの組合せで実現されてもよい。すなわち、通信イベント処理装置１００−１の一部の機能が専用のハードウェアで実現され、残りの機能がソフトウェアで実現されてもよい。
【００４５】
ＣＰＵ１１、「ＲＯＭ１２、ＲＡＭ１３、ＨＤＤ１４等の記憶装置」及び処理回路９９を、総称して「プロセッシングサーキットリ」という。つまり、通信イベント処理装置１００−１の「部」の機能及び記憶装置は、プロセッシングサーキットリにより実現される。
【００４６】
「部」を「工程」又は「手順」又は「処理」に読み替えてもよい。また、「部」の機能をファームウェアで実現してもよい。つまり、通信イベント処理装置１００−１の動作は通信イベント処理プログラム、通信イベント処理方法として把握できる。また、「部」の機能は、通信イベント処理プログラムを格納する記録媒体して実現することもできる。
【００４７】
実施の形態２．
実施の形態１よれば、通信先３００の応答時間の変化に応じた通信イベント４００の優先制御ができる。しかし、応答時間の変化量△ｔが予備時間ｔ２を超えてしまうと、通信イベント４００が、以下に示す応答制限時刻Ｔ（３）に間に合わなくなる。そこで、実施の形態２では，応答時間の変化量△ｔに応じて、次回の予備時間ｔ２を調整する機能を追加する。
【００４８】
図１６は、応答時間の変化量△ｔが予備時間ｔ２を超えて、通信イベント４００が、
要求時刻Ｔ（１）＋制限時間ｔ１＝応答制限時刻Ｔ（３）
の式で得られる、応答制限時刻Ｔ（３）に間に合わなくなる状態を示す。
【００４９】
図１７は実施の形態２の通信イベント処理装置１００−２の機能構成図である。実施の形態１の通信イベント処理装置１００−１の応答データ受信部７を、予備時間調整部９への処理を追加した応答データ受信部７ａに変更し、予備時間調整部９を追加した。応答データ受信部７ａは、通信先３００へ送信された通信イベント４００に対して、通信先３００から返信された応答データ５００の通知を、応答時間調整部８に加え、予備時間調整部９−１にも通知する。予備時間調整部９は、応答時間変化量監視部９−１（以下、監視部９−１と記す）を備えており、応答時間の変化量△ｔが、予め設定した予備時間ｔ２の最小値（以下、予備ｍｉｎと記す）よりも大きい場合、応答時間の変化量△ｔを次回の予備時間ｔ２として、スケジュール部４に反映する。
【００５０】
つまり、スケジュール部４の有する通信イベント管理テーブル４−１は、複数の通信イベント４００の通信イベントごとに、送信期限時刻Ｔ（２）が対応付けられた通信イベント管理情報である。予備時間調整部９は、同じ通信先装置に送信された同じ種別の２つの通信イベントの応答時間の差分を示す応答時間の変化量△ｔを監視し、応答時間の変化量△ｔの値に基づいて、次回の予備時間ｔ２を算出する。そして、予備時間調整部９は、次回の予備時間ｔ２を用いて、通信イベント管理テーブル４−１の通信イベントごとに、次回の送信期限時刻Ｔ（２）を算出し、通信イベント管理テーブル４−１を更新する。
【００５１】
ハードウェア構成については、実施の形態１と同じである。
【００５２】
次に、図１８〜図１９を用いて、通信イベント処理装置１００−２について説明する。実施の形態１と同じ機能については、同じ動作をするため説明を省き、追加・変更した応答データ受信部７ａと監視部９−１の動作のみ説明する。
【００５３】
図１８は、応答データ受信部７ａのフローチャートである。通信先３００から応答データ５００を受信する度に動作する。ステップＳ１２〜ステップＳ１４は、実施の形態１と同じであるため説明を省く。
【００５４】
ステップＳ１７において、応答データ受信部７ａは、予備時間調整部９に応答データの受信時刻を通知し、処理を終了する。
【００５５】
図１９は、監視部９−１のフローチャートである。予備時間調整部９が、応答データ受信部７ａから応答データの受信時刻を取得する度に、以下の動作を実行する。
【００５６】
ステップＳ１８において、監視部９−１は、応答データ受信部７ａから得た応答データ５００の受信時刻から通信イベント４００の送信時刻を減算し、応答時間を算出する。
ステップＳ１９において、監視部９−１は、ステップＳ１８で算出した応答時間と応答時間管理テーブル４−２に登録されている前回応答時間ｔ３との差から、応答時間の変化量△ｔを算出する
ステップＳ２０において、監視部９−１は、ステップＳ１９で算出した応答時間の変化量△ｔと、通信先３００と通信イベント種別毎に決められている予備ｍｉｎを比較する。
つまり、図１６の変化量△ｔと、「予備ｍｉｎ」とを比較する。応答時間の変化量△ｔが「予備ｍｉｎ」より大きければ、処理はステップＳ２１へ、そうでなければ、ステップＳ２２に遷移する。
ステップＳ２１において、監視部９−１は、実績値である応答時間の変化量△ｔが想定する予備時間よりも大きいことから、次回の予備時間ｔ２を応答時間の変化量△ｔとして、通信イベント管理テーブル４−１の通信イベントごとに、次回の送信期限時刻Ｔ（２）を再計算し、通信イベント管理テーブル４−１の予備時間ｔ２および送信期限時刻Ｔ（２）を更新する。また、通信イベント管理テーブル４−１に新たにレコードを追加する場合、スケジュール部４は、この新たな予備時間ｔ２、つまり変化量△ｔを使用する。
【００５７】
ステップＳ２２において、監視部９−１は、応答時間の変化量△ｔが想定する予備時間ｔ２ｍｉｎの範囲であることから、次回の予備時間ｔ２を予備ｍｉｎとして次回の送信期限時刻Ｔ（２）を再計算する。そして、通信イベント管理テーブル４−１の予備時間ｔ２および送信期限時刻Ｔ（２）を更新する。また通信イベント管理テーブル４−１に新たにレコードを追加する場合、スケジュール部４は、この新たな予備時間ｔ２、つまり予備ｍｉｎを使用する。
【００５８】
＊＊＊実施の形態２の効果＊＊＊
実施の形態２の通信イベント処理装置１００−２によれば、応答時間の変化量△ｔが、予め通信先３００との通信で想定する冗長時間である、予備時間ｔ２より大きくなった場合でも、図１６に示すように、次回の予備時間ｔ２を応答時間の変化量△ｔに合わせることができる。それにより、実施の形態１よりも、制限時間ｔ１に間に合わない通信イベントが減り、システムの信頼性を向上させることができる。
【００５９】
実施の形態３．
実施の形態２により、通信先３００の応答時間や、応答時間の変化量△ｔに応じた通信イベント４００の優先制御ができるようになる。しかし、応答時間の変化量△ｔが前回の応答時間の変化量△ｔよりも大きくなり続けると、予備時間ｔ２の調整が追い付かず、通信イベント４００が連続して遅延してしまう。そこで、連続して通信イベントが遅延する場合を応答時間の変化量の増加が続いている状態と判断し、予備時間ｔ２を大幅に増加する機能を追加する。
【００６０】
「遅延」とは、通信イベント４００に対応する応答データ５００の受信が間に合わないことを意味する。具体的には、図１６に示すように、通信イベント４００について、その通信イベント４００の応答データ５００の受信時刻が、その通信イベント４００の応答制限時刻Ｔ（３）（要求時刻Ｔ（１）＋制限時間ｔ１）の後になることをいう。
図２０は、実施の形態３の通信イベント処理装置１００−３の機能構成図である。実施の形態２の通信イベント処理装置１００−２のスケジュール部４に応答データ連続遅延回数管理テーブル４−３（以下、遅延回数テーブル４−３と以記す）を追加し、予備時間調整部９の中身を応答データ連続遅延回数監視部９−２（以下、監視部９−２と記す）に変更したものである。
【００６１】
予備時間調整部９の監視部９−２は、同じ通信先装置に送信された同じ種別の複数の通信イベントの各通信イベントの応答データの受信時刻を監視し、各通信イベントの応答データの受信時刻が、送信要求時刻Ｔ（１）に制限時間ｔ１を加算した時刻である応答制限時刻Ｔ（３）よりも連続して後になり、かつ、連続して後になる回数が閾値を超えるか判定する。監視部９−２は、閾値を超える場合に、予備時間を変更し、変更した予備時間を用いて、通信イベント管理テーブル４−１の通信イベントごとの送信期限時刻Ｔ（２）を再計算する。以下に詳細を説明する。
【００６２】
図２１は、遅延回数テーブル４−３を表している。遅延回数テーブル４−３は、「通信先、通信イベント」の組ごとに、応答データ連続遅延回数（Ｄ）（以下、連続遅延回数（Ｄ）と記す）と、変化量連続安定回数（Ｓ）（以下、連続安定回（Ｓ）と記す）を管理する。連続遅延回数（Ｄ）は、「通信先、通信イベント種別」毎の応答データが連続で遅延した回数を指し、遅延しなかった場合は０に設定される。連続で遅延した場合は、応答時間の変化量△ｔが常に大きくなっており、実施の形態２のように前回の応答時間の変化量△ｔを利用するのでは対応できないほど、通信先３００の環境が悪化し続けていることを表する。連続遅延回数（Ｄ）の値が閾値Ｄｌｉｍｉｔを超えると、監視部９−２は次回の予備時間ｔ２を大きくとる遅延モードに遷移する。連続安定回数（Ｓ）は、遅延モード中に応答時間の変化量△が予備ｍｉｎを連続で下回った回数を指す。この値が大きくなることは、通信先の環境が安定してきたことを表し、Ｓ値が閾値Ｓｌｉｍｉｔを超えると、通信先の環境が安定したと判断し、監視部９−２は遅延モードを解除する。また、監視部９−２は、遅延モードの開始／解除のチェック、遅延モード／非遅延モード時の予備時間を調整する機能を持ち、その結果を通信イベント管理テーブル４−１に反映する。
【００６３】
ハードウェア構成については、実施の形態１および２と同じである。
【００６４】
次に、図２２〜２１を用いて、実施の形態３の通信イベント処理装置１００−３の動作について説明する。実施の形態１や２と同じ機能については、同じ動作をするため説明を省き、追加・変更した監視部９−２のみ説明する。
【００６５】
図２２は、監視部９−２のメインフローのフローチャートである。応答データ受信部７ａから応答データの受信時刻を取得する度に、図２２の動作を実行する。
図２３は、図２２のステップＳ２７の内容を示すフローチャートである。
図２４は、図２２のステップＳ３３の内容を示すフローチャートである。
図２５は、図２３のステップＳ３９のフローチャートである。
図２６は、図２２のＳ２７，Ｓ３３、Ｓ３９に図２３〜図２５を反映した図である。図２６を参照して説明する。
【００６６】
ステップＳ２３において、監視部９−２は、ステップＳ１８と同様に応答時間を算出し、さらに、算出した応答時間からステップＳ１９と同様に応答時間の変化量△ｔを算出する。
ステップＳ２４において、監視部９−２は、現在のモードが遅延モードであるかどうかを確認する。遅延モードであれば、ステップＳ２７の「遅延モード解除チェックフロー」に進み、遅延モード解除できかを確認する。遅延モードでなければ（Ｓ２４：ＮＯ）、処理はステップＳ３３の「遅延モードチェックフロー」に進み、監視部９−２は遅延モードを開始できるかを確認する。ステップＳ２７，ステップＳ３３の実施後は、処理はステップＳ２５へ遷移する。ステップＳ２７、ステップＳ３３については後述する。
【００６７】
ステップＳ２５において、監視部９−２は、ステップＳ２７およびステップＳ３３のフローを実施した結果、遅延モードであれば（Ｓ２５：ＹＥＳ）、ステップＳ３９に進む。Ｓ３９では、遅延モード時の予備時間調整フローで予備時間ｔ２を調整する。遅延モードでなければ（Ｓ２５：ＮＯ）、監視部９−２は、ステップＳ２６で次回の予備時間ｔ２を調整する。ステップＳ３９，ステップＳ２６が終了すると、処理を終了する。
【００６８】
ステップＳ２６では、監視部９−２は、実施の形態２のステップＳ２１と同様に、予備時間ｔ２を応答時間の変化量△ｔとして送信期限時刻Ｔ（２）を算出する。そして、監視部９−２は、通信イベント管理テーブル４−２の予備時間ｔ２および送信期限時刻Ｔ（２）を更新する。またスケジュール部４は、新たに通信イベント管理テーブル４−１にレコードを登録する場合は、ステップＳ２６で決定された予備時間ｔ２を用いて送信期限時刻Ｔ（２）を計算する。
【００６９】
図２３を参照して、ステップＳ２７の内容を説明する。
【００７０】
ステップＳ２８において、監視部９−２は、応答時間の変化量△ｔと、予め設定されている予備ｍｉｎを比較する。応答時間の変化量△ｔが予備ｍｉｎより小さい場合はステップＳ２９に、そうでない場合はステップＳ３２に遷移する。
ステップＳ２９では、監視部９−２は、連続安定回数（Ｓ）を１増やす。ステップＳ２９に進む場合は、
応答時間の変化量△ｔ＜予備ｍｉｎ
であるが、ステップＳ２８で判定された変化量△ｔが、予備時間ｔ２の設定時に想定した応答時間の変化量△ｔの範囲内であることを意味し、通信先の環境が安定に向かっていることを意味する。そのため、ステップＳ２９では、
応答時間の変化量△ｔ＜予備ｍｉｎ
の場合には、遅延回数テーブル４−３の連続安定回数（Ｓ）を１増やす。そして、Ｓｌｉｍｉｔ回よりも多く遅延が連続した場合に安定したと判断する。
【００７１】
ステップＳ３０において、監視部９−２は、通信先３００の環境が安定したか判断するため、連続安定回数（Ｓ）と、安定を判定する閾値（Ｓｌｉｍｉｔ）とを比較する。
連続安定回数Ｓ＞閾値（Ｓｌｉｍｉｔ）
の場合はステップＳ３１に遷移し、
連続安定回数Ｓ≦閾値（Ｓｌｉｍｉｔ）
の場合は、遅延モードは解除せずに遅延モード解除チェックを終了する。
【００７２】
ステップＳ３１において、監視部９−２は、遅延モードを解除し、遅延モード解除チェックを終了する。
ステップＳ３２において、監視部９−２は、連続安定回数（Ｓ）を０に戻し、遅延モードを解除せずに遅延モード解除チェックを終了する。
これは、
応答時間の変化量△ｔ＞予備ｍｉｎ
の場合、予備時間ｔ２の設定時に想定した応答時間の変化量の範囲外であることから、通信先３００の環境が安定していない可能性が大きいためである。
【００７３】
図２４を参照して、ステップＳ３３の内容を説明する。
【００７４】
ステップＳ３４において、監視部９−２は、通信イベントの応答データの受信時刻から、今回の通信イベントが遅延したかどうかを判断する。つまり図１６で示したように、監視部９−２は、その通信イベント４００の応答データ５００の受信時刻が、その通信イベント４００の応答制限時刻Ｔ（３）の後か判定する。遅延の場合はステップＳ３５に、遅延でない場合はステップＳ３８に遷移する。
【００７５】
ステップＳ３５において、監視部９−２は、回数管理テーブル４−３の連続遅延回数（Ｄ）の値を１増やし、ステップＳ３６に遷移する。
ステップＳ３６において、監視部９−２は、連続遅延回数Ｄと、遅延モードに遷移するための閾値Ｄｌｉｍｉｔを比較する。
連続遅延回数Ｄ＞閾値Ｄｌｉｍｉｔ
の場合はステップＳ３７に遷移して、遅延モードが開始しフローを終了する。
連続遅延回数Ｄ≦閾値Ｄｌｉｍｉｔ
の場合はフローを終了する。
【００７６】
ステップＳ３８において、監視部９−２は、遅延が発生しなかったので、遅延回数テーブル４−３の連続遅延回数（Ｄ）の値を０に戻し、フローを終了する。
【００７７】
図２５を参照して、ステップＳ３９の内容を説明する。
【００７８】
ステップＳ４０において、監視部９−２は、遅延回数テーブル４−３の連続遅延回数（Ｄ）の値を取得し、１より大きいか（連続して発生しているか）を確認する。大きい場合はステップＳ４１に、そうでない場合はステップＳ４４に遷移する。
【００７９】
ステップＳ４４において、監視部９−２は、遅延が発生しなくても予備時間ｔ２を遅延モード時の最大値に設定する。これは遅延モード時の開始時は通信先３００が不安定であり、安定するまでは応答時間が激しく変動する可能性があるためである。
【００８０】
ステップＳ４１において、監視部９−２は、以下の式で予備時間ｔ２を算出する。ここでＤの値は、連続遅延回数でない、任意の値を利用してもよい。
予備時間ｔ２＝応答時間の変化量×Ｄ
【００８１】
ステップＳ４２において、監視部９−２は、Ｓ４１で求めた予備時間と、補助記憶装置に「通信先オ及び通信イベント種別」に対応付けて格納している予備時間の最大値（以下、予備ｍａｘと記す）とを比較する。
Ｓ４１で求めた予備時間＞予備ｍａｘ
の場合はステップＳ４３に進む。
Ｓ４１で求めた予備時間≦予備ｍａｘ
の場合はフローを終了する。
【００８２】
ステップＳ４３において、監視部９−２は、予備ｍａｘを予備時間ｔ２に更新する。そして、予備ｍａｘを用いて通信イベント管理テーブル４−１の送信期限時刻Ｔ（２）を再計算し、更新した予備時間ｔ２、再計算した送信期限時刻Ｔ（２）で、通信イベント管理テーブル４−１のレコードを更新する。また、スケジュール部４は、通信イベント管理テーブル４−１に新規に登録されるレコードには、更新された予備時間ｔ２を用いる。
【００８３】
＊＊＊実施の形態３の効果＊＊＊
実施の形態３の通信イベント処理装置１００−３によれば、応答時間の変化量が毎回増加し続けるような場合においても、予備時間ｔ２を大きく設定することで、通信イベントが間に合う可能性を上げることができる。それにより、実施の形態２よりも、制限時間ｔ１に間に合わない通信イベントが減り、システムの信頼性を向上させることができる。
【００８４】
実施の形態４．
実施の形態２や実施の形態３により、応答時間の変化量に応じた通信イベントの優先制御ができるようになる。しかし、応答時間の変化量に対応するまでに、通信イベントが遅延してしまうという課題がある。実施の形態４は、この課題の対策として、遅延していない状態での応答時間の変化量から、次回の予備時間ｔ２を調整する機能を追加する。
【００８５】
図２７は、実施の形態４の通信イベント処理装置１００−４の機能構成図である。通信イベント処理装置１００−４は、通信イベント処理装置１００−２の予備時間調整部９の中身を通信先環境予測部９−３（以下、予測部９−３と記す）に変更したものである。予測部９−３は、応答時間の変化量が、予め設定した予備ｍｉｎに近づいたことを検出すると、次回の予備時間ｔ２を増加させて、急な応答時）の増加に対しても対応する。
【００８６】
ハードウェア構成については、これまでの実施の形態と同じである。
【００８７】
次に、図２８を用いて通信イベント処理装置１００−４の動作を説明する。これまでと同様に、同じ動作をする機能については説明を省き、追加した予測部９−３の動作のみ説明する。
図２８は、予測部９−３のフローチャートである。応答データ受信部７ａから応答データ５００の受信時刻を取得する度に、予測部９−３は以下の動作を実行する。
【００８８】
ステップＳ２３において、予測部９−３は、ステップＳ２３と同様に、通信イベント４００の応答時間と、応答時間の変化量を算出する
ステップＳ４５において、予測部９−３は、ステップＳ２３で算出した通信イベントの応答時間の変化量△ｔと、予め設定した予備ｍｉｎに、０より大きく１以下の値を取る変数αを掛けた値である予備ｍｉｎ×αとを比較する。例えばα＝０．５とした場合、応答時間の変化量△ｔが予備ｍｉｎの半分より大きいかどうかをチェックすることになる。大きければステップＳ４６に、そうでない場合はステップＳ４７に遷移する。
【００８９】
ステップＳ４６において、次回の予備時間ｔ２を今回の予備時間ｔ２のβ倍に設定する。
変化量△ｔ＞予備ｍｉｎ×α
の場合は、このまま通信先３００の環境が悪化する場合、遅延が発生すると考えられるためである。ここで、βは任意の値を設定可能である。そして、予測部９−３は次回の予備時間ｔ２を用いて送信期限時刻Ｔ（２）を算出し、通信イベント管理テーブル４−１の予備時間ｔ２および送信期限時刻Ｔ（２）を更新する。
またスケジュール部４は、通信イベント管理テーブル４−１に新規に登録されるレコードには、更新された予備時間ｔ２を用いる。
【００９０】
ステップＳ４７において、予測部９−３は、次回の予備時間ｔ２を予備ｍｉｎに設定する。これは、
応答時間の変化量△ｔ≦「予備ｍｉｎ×α」（α：０より大きく１以下）
の場合、通信先３００の環境が安定していると考えられるからである
【００９１】
＊＊＊実施の形態４の効果＊＊＊＊
通信イベント処理装置１００−４によれば、予備ｍｉｎの一定割合を超えるという前兆を検出し、予備時間ｔ２を大きくすることで、応答時間が急に大きくなった場合でも遅延する通信イベントを減らすことができ、システムの信頼性を向上させることができる。
【００９２】
以上、本発明の実施の形態について説明したが、これらの実施の形態のうち、２つ以上を組み合わせて実施しても構わない。あるいは、これらの実施の形態のうち、１つを部分的に実施しても構わない。あるいは、これらの実施の形態のうち、２つ以上を部分的に組み合わせて実施しても構わない。なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
【符号の説明】
【００９３】
Ｄ  連続遅延回数、Ｓ  連続安定回数、１００−１，１００−２，１００−３，１００−４  通信イベント処理装置、２００  上位アプリ、３００  通信先、１  通信イベント受付部、２  通信イベント分離部、３−１，３−２，３−３  通信イベント蓄積部、４  スケジュール部、４−１  通信イベント管理テーブル、４−２  応答時間管理テーブル、４−３  遅延回数テーブル、５  通信イベント管理部、６  通信イベント送信部、７  応答データ受信部、８  応答時間調整部、９  予備時間調整部、９−１，９−２  監視部、９−３  予測部、１１  ＣＰＵ、１２  ＲＯＭ、１３  ＲＡＭ、１４  ＨＤＤ、１５  ＨＤＤコントローラ、１６  ネットワークコントローラ、１７  入出力コントローラ、１８
マウス、１９  キーボード、２０  ディスプレイ。
【図１】
0006559094.tif 000002
【図２】
0006559094.tif 000003
【図３】
0006559094.tif 000004
【図４】
0006559094.tif 000005
【図５】
0006559094.tif 000006
【図６】
0006559094.tif 000007
【図７】
0006559094.tif 000008
【図８】
0006559094.tif 000009
【図９】
0006559094.tif 000010
【図１０】
0006559094.tif 000011
【図１１】
0006559094.tif 000012
【図１２】
0006559094.tif 000013
【図１３】
0006559094.tif 000014
【図１４】
0006559094.tif 000015
【図１５】
0006559094.tif 000016
【図１６】
0006559094.tif 000017
【図１７】
0006559094.tif 000018
【図１８】
0006559094.tif 000019
【図１９】
0006559094.tif 000020
【図２０】
0006559094.tif 000021
【図２１】
0006559094.tif 000022
【図２２】
0006559094.tif 000023
【図２３】
0006559094.tif 000024
【図２４】
0006559094.tif 000025
【図２５】
0006559094.tif 000026
【図２６】
0006559094.tif 000027
【図２７】
0006559094.tif 000028
【図２８】
0006559094.tif 000029