(57)【要約】【課題】通信制御システムにおいて、イベント種別ごとなどでのイベント処理時間のバラツキを小さくすることを課題とする。【解決手段】通信制御システム１の処理部１４は、イベントを処理する複数のイベント処理プロセス１４２と、処理すべきイベントが複数ある場合に、当該複数のイベントそれぞれについて、記憶部１２のイベント処理管理テーブル１２２を参照し、該当するイベント種別の平均待機時間に対するそのイベントの待機時間の割合、または、そのイベントの待機時間から当該平均待機時間を減算した時間の長さが大きいほど高い優先度を設定し、当該優先度の高いイベントから順に複数のイベント処理プロセス１４２のいずれかに割り当てるイベントループプロセス１４１と、を有する。【選択図】図１
2016115193.tif 000002
【特許請求の範囲】
【請求項１】
ユーザ端末からの要求に応じて通信サービスを提供する通信制御システムであって、
前記ユーザ端末からの要求を受信したときに処理するイベントに関して、イベント種別ごとに、前記ユーザ端末からの要求の受信時から処理開始時までの平均待機時間を記憶する記憶部と、
前記イベントを処理する処理部と、を備え、
前記処理部は、
前記イベントを処理する複数のイベント処理プロセスと、
処理すべきイベントが複数ある場合に、当該複数のイベントそれぞれについて、前記記憶部を参照し、該当するイベント種別の平均待機時間に対するそのイベントの待機時間の割合、または、そのイベントの待機時間から当該平均待機時間を減算した時間の長さが大きいほど高い優先度を設定し、当該優先度の高いイベントから順に前記複数のイベント処理プロセスのいずれかに割り当てるイベントループプロセスと、
を有することを特徴とする通信制御システム。
【請求項２】
前記記憶部は、
前記ユーザ端末からの要求を受信したときに処理するイベントに関して、イベント種別とユーザ種別の組み合わせごとに、前記ユーザ端末からの要求の受信時から処理開始時までの平均待機時間を記憶しており、
前記イベントループプロセスは、
処理すべきイベントが複数ある場合に、当該複数のイベントそれぞれについて、前記記憶部を参照し、該当するイベント種別とユーザ種別の組み合わせの平均待機時間に対するそのイベントの待機時間の割合、または、そのイベントの待機時間から当該平均待機時間を減算した時間の長さが大きいほど高い優先度を設定し、当該優先度の高いイベントから順に前記複数のイベント処理プロセスのいずれかに割り当てる
ことを特徴とする請求項１に記載の通信制御システム。
【請求項３】
前記記憶部は、
前記ユーザ端末からの要求を受信したときに処理するイベントに関して、イベント種別とサービス種別の組み合わせごとに、前記ユーザ端末からの要求の受信時から処理開始時までの平均待機時間を記憶しており、
前記イベントループプロセスは、
処理すべきイベントが複数ある場合に、当該複数のイベントそれぞれについて、前記記憶部を参照し、該当するイベント種別とサービス種別の組み合わせの平均待機時間に対するそのイベントの待機時間の割合、または、そのイベントの待機時間から当該平均待機時間を減算した時間の長さが大きいほど高い優先度を設定し、当該優先度の高いイベントから順に前記複数のイベント処理プロセスのいずれかに割り当てる
ことを特徴とする請求項１に記載の通信制御システム。
【請求項４】
前記記憶部は、
前記ユーザ端末からの要求を受信したときに処理するイベントに関して、イベント種別とユーザ種別とサービス種別の組み合わせごとに、前記ユーザ端末からの要求の受信時から処理開始時までの平均待機時間を記憶しており、
前記イベントループプロセスは、
処理すべきイベントが複数ある場合に、当該複数のイベントそれぞれについて、前記記憶部を参照し、該当するイベント種別とユーザ種別とサービス種別の組み合わせの平均待機時間に対するそのイベントの待機時間の割合、または、そのイベントの待機時間から当該平均待機時間を減算した時間の長さが大きいほど高い優先度を設定し、当該優先度の高いイベントから順に前記複数のイベント処理プロセスのいずれかに割り当てる
ことを特徴とする請求項１に記載の通信制御システム。
【請求項５】
ユーザ端末からの要求に応じて通信サービスを提供する通信制御システムにおける通信制御方法であって、
前記通信制御システムは、
前記ユーザ端末からの要求を受信したときに処理するイベントに関して、イベント種別ごとに、前記ユーザ端末からの要求の受信時から処理開始時までの平均待機時間を記憶する記憶部と、
前記イベントを処理する処理部と、を備えており、
前記処理部は、
前記イベントを処理する複数のイベント処理プロセスと、イベントループプロセスと、を有しており、
前記イベントループプロセスは
処理すべきイベントが複数ある場合に、当該複数のイベントそれぞれについて、前記記憶部を参照し、該当するイベント種別の平均待機時間に対するそのイベントの待機時間の割合、または、そのイベントの待機時間から当該平均待機時間を減算した時間の長さが大きいほど高い優先度を設定し、当該優先度の高いイベントから順に前記複数のイベント処理プロセスのいずれかに割り当てる
ことを特徴とする通信制御方法。
【請求項６】
前記記憶部は、
前記ユーザ端末からの要求を受信したときに処理するイベントに関して、イベント種別とユーザ種別の組み合わせごとに、前記ユーザ端末からの要求の受信時から処理開始時までの平均待機時間を記憶しており、
前記イベントループプロセスは、
処理すべきイベントが複数ある場合に、当該複数のイベントそれぞれについて、前記記憶部を参照し、該当するイベント種別とユーザ種別の組み合わせの平均待機時間に対するそのイベントの待機時間の割合、または、そのイベントの待機時間から当該平均待機時間を減算した時間の長さが大きいほど高い優先度を設定し、当該優先度の高いイベントから順に前記複数のイベント処理プロセスのいずれかに割り当てる
ことを特徴とする請求項５に記載の通信制御方法。
【請求項７】
前記記憶部は、
前記ユーザ端末からの要求を受信したときに処理するイベントに関して、イベント種別とサービス種別の組み合わせごとに、前記ユーザ端末からの要求の受信時から処理開始時までの平均待機時間を記憶しており、
前記イベントループプロセスは、
処理すべきイベントが複数ある場合に、当該複数のイベントそれぞれについて、前記記憶部を参照し、該当するイベント種別とサービス種別の組み合わせの平均待機時間に対するそのイベントの待機時間の割合、または、そのイベントの待機時間から当該平均待機時間を減算した時間の長さが大きいほど高い優先度を設定し、当該優先度の高いイベントから順に前記複数のイベント処理プロセスのいずれかに割り当てる
ことを特徴とする請求項５に記載の通信制御方法。
【請求項８】
前記記憶部は、
前記ユーザ端末からの要求を受信したときに処理するイベントに関して、イベント種別とユーザ種別とサービス種別の組み合わせごとに、前記ユーザ端末からの要求の受信時から処理開始時までの平均待機時間を記憶しており、
前記イベントループプロセスは、
処理すべきイベントが複数ある場合に、当該複数のイベントそれぞれについて、前記記憶部を参照し、該当するイベント種別とユーザ種別とサービス種別の組み合わせの平均待機時間に対するそのイベントの待機時間の割合、または、そのイベントの待機時間から当該平均待機時間を減算した時間の長さが大きいほど高い優先度を設定し、当該優先度の高いイベントから順に前記複数のイベント処理プロセスのいずれかに割り当てる
ことを特徴とする請求項５に記載の通信制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザ端末からの要求（以下、「サービス要求」ともいう。）に応じて通信サービスを提供する通信制御システムの技術に関する。
【背景技術】
【０００２】
通信制御システムにおいては、ユーザ端末からの要求を受信したときのイベント処理時にプロセス切り替えオーバヘッドを発生させないために、イベント到着を待つイベントループプロセスと、到着したイベントに応じた処理を行うイベント処理プロセスそれぞれにＣＰＵ（Central Processing Unit）コアを割り当てている。
【０００３】
例えば、イベント処理プロセス間のプロセス切り替えオーバヘッドのみを削減するために、ＣＰＵコア数個、イベント処理プロセスとイベントループプロセスを割り当てる方式がある。また、イベントループプロセスとイベント処理プロセスとの間のプロセス切り替えオーバヘッドも含めて削減するために、ＣＰＵコア数−１個、イベント処理プロセスを割り当て、残りの１つＣＰＵコアにイベントループプロセスを割り当てる方式もある。
【０００４】
いずれの方式の場合も、イベント処理プロセスの動作中に待ち状態にならないよう、待ち状態になる可能性のあるオペレーティングシステム呼び出し（通信やディスクＩ／Ｏ等）を発行した時点でイベント処理プロセスは処理を完了し、イベントループプロセスに対して処理完了を通知する。
【０００５】
また、非特許文献１，２には、同種の技術として、Ｗｅｂサーバにおいて、ノンブロック処理を行うことによりＣＰＵリソースを有効利用する技術が開示されている。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】寺田  佳央、“Grizzlyの概要:C10K問題に対応するGlassFish(Grizzly)”、[online]、２００８年５月１５日、[２０１４年１２月８日検索]、インターネット＜ＵＲＬ：https://blogs.oracle.com/yosshi/entry/grizzly%E3%81%AE%E6%A6%82%E8%A6%81_c10k%E5%95%8F%E9%A1%8C%E3%81%AB%E5%AF%BE%E5%BF%9C%E3%81%99%E3%82%8Bglassfish_grizzly＞
【非特許文献２】“Project Grizzly”、[online]、２０１４年６月２０日、[２０１４年１２月８日検索]、インターネット＜ＵＲＬ：https://grizzly.java.net/＞
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記した従来技術では、オペレーティングシステムからのイベント到着順にイベントを処理する。しかし、イベントの処理時間（待機時間も含む。）の平均は、イベント種別ごとなどによって異なる。そのため、イベント到着順でイベントを処理すると、イベント種別ごとなどでのイベント処理時間のバラツキが大きくなり、ユーザ端末への通信サービスの点で好ましくない。
【０００８】
そこで、本発明は、通信制御システムにおいて、イベント種別ごとなどでのイベント処理時間のバラツキを小さくすることを課題とする。
【課題を解決するための手段】
【０００９】
前記課題を解決するために、本発明は、ユーザ端末からの要求に応じて通信サービスを提供する通信制御システムであって、前記ユーザ端末からの要求を受信したときに処理するイベントに関して、イベント種別ごとに、前記ユーザ端末からの要求の受信時から処理開始時までの平均待機時間を記憶する記憶部と、前記イベントを処理する処理部と、を備え、前記処理部は、前記イベントを処理する複数のイベント処理プロセスと、処理すべきイベントが複数ある場合に、当該複数のイベントそれぞれについて、前記記憶部を参照し、該当するイベント種別の平均待機時間に対するそのイベントの待機時間の割合、または、そのイベントの待機時間から当該平均待機時間を減算した時間の長さが大きいほど高い優先度を設定し、当該優先度の高いイベントから順に前記複数のイベント処理プロセスのいずれかに割り当てるイベントループプロセスと、を有することを特徴とする。
【００１０】
これにより、処理すべきイベントが複数ある場合に、該当するイベント種別の平均待機時間に対するそのイベントの待機時間の割合、または、そのイベントの待機時間から当該平均待機時間を減算した時間の長さが大きいイベントから順に処理するので、イベント種別ごとでのイベント処理時間のバラツキを小さくすることができる。
【００１１】
また、本発明は、前記記憶部が、前記ユーザ端末からの要求を受信したときに処理するイベントに関して、イベント種別とユーザ種別の組み合わせごとに、前記ユーザ端末からの要求の受信時から処理開始時までの平均待機時間を記憶しており、前記イベントループプロセスは、処理すべきイベントが複数ある場合に、当該複数のイベントそれぞれについて、前記記憶部を参照し、該当するイベント種別とユーザ種別の組み合わせの平均待機時間に対するそのイベントの待機時間の割合、または、そのイベントの待機時間から当該平均待機時間を減算した時間の長さが大きいほど高い優先度を設定し、当該優先度の高いイベントから順に前記複数のイベント処理プロセスのいずれかに割り当てることを特徴とする。
【００１２】
これにより、イベント種別とユーザ種別の組み合わせごとに、イベント処理時間のバラツキを小さくすることができる。
【００１３】
また、本発明は、前記記憶部が、前記ユーザ端末からの要求を受信したときに処理するイベントに関して、イベント種別とサービス種別の組み合わせごとに、前記ユーザ端末からの要求の受信時から処理開始時までの平均待機時間を記憶しており、前記イベントループプロセスは、処理すべきイベントが複数ある場合に、当該複数のイベントそれぞれについて、前記記憶部を参照し、該当するイベント種別とサービス種別の組み合わせの平均待機時間に対するそのイベントの待機時間の割合、または、そのイベントの待機時間から当該平均待機時間を減算した時間の長さが大きいほど高い優先度を設定し、当該優先度の高いイベントから順に前記複数のイベント処理プロセスのいずれかに割り当てることを特徴とする。
【００１４】
これにより、イベント種別とサービス種別の組み合わせごとに、イベント処理時間のバラツキを小さくすることができる。
【００１５】
また、本発明は、前記記憶部が、前記ユーザ端末からの要求を受信したときに処理するイベントに関して、イベント種別とユーザ種別とサービス種別の組み合わせごとに、前記ユーザ端末からの要求の受信時から処理開始時までの平均待機時間を記憶しており、前記イベントループプロセスは、処理すべきイベントが複数ある場合に、当該複数のイベントそれぞれについて、前記記憶部を参照し、該当するイベント種別とユーザ種別とサービス種別の組み合わせの平均待機時間に対するそのイベントの待機時間の割合、または、そのイベントの待機時間から当該平均待機時間を減算した時間の長さが大きいほど高い優先度を設定し、当該優先度の高いイベントから順に前記複数のイベント処理プロセスのいずれかに割り当てることを特徴とする。
【００１６】
これにより、イベント種別とユーザ種別とサービス種別の組み合わせごとに、イベント処理時間のバラツキを小さくすることができる。
【発明の効果】
【００１７】
本発明によれば、通信制御システムにおいて、イベント種別ごとなどでのイベント処理時間のバラツキを小さくすることができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の実施形態の通信制御システムを含む全体構成図である。
【図２】本発明の実施形態のイベント管理テーブルのデータ構造図である。
【図３】本発明の実施形態のイベント処理管理テーブルのデータ構造図である。
【図４】本発明の実施形態のイベント監視部の処理を示すフローチャートである。
【図５】本発明の実施形態のイベント割り当て機能部の処理を示すフローチャートである。
【図６】本発明の実施形態の各構成要素の動作を示すシーケンス図である。
【発明を実施するための形態】
【００１９】
以下、本発明を実施するための形態（実施形態）について、図面を参照して説明する。なお、本実施形態では、ＳＩＰ（Session Initiation Protocol）を用いた通信を想定する。その場合、通信制御システムがユーザ端末からの要求を受信したときに処理するイベントの種別としては、例えば、ＲＥＧＩＳＴＥＲ（ユーザのＵＲＩ（Uniform Resource Identifier）の登録）、ＩＮＶＩＴＥ（セッション参加リクエスト）、ＯＰＴＩＯＮＳ（オプション機能等についての問い合わせ）などがある。
【００２０】
図１に示すように、本実施形態では、ネットワーク２を経由したユーザ端末３からの要求に応じて通信サービスを提供する通信制御システム１は、主に、通信部１１と、記憶部１２と、入出力部１３と、処理部１４と、を備えるコンピュータ装置である。
【００２１】
通信部１１は、外部装置との通信インタフェースである。
記憶部１２は、ＨＤＤ（Hard Disk Drive）や半導体メモリ等の記憶装置によって構成され、イベント管理テーブル１２１（図２で後記）、イベント処理管理テーブル１２２（図３で後記）のほか、各種データ、各種プログラムを記憶する。
【００２２】
入出力部１３は、入出力手段であり、例えば、キーボード、マウス、表示装置などである。
【００２３】
処理部１４は、通信制御システム１全体の制御を司り、イベントループプロセス１４１、複数のイベント処理プロセス１４２（イベント処理プロセス（＃１）１４２、・・・、イベント処理プロセス（＃Ｎ）１４２）、オペレーティングシステム１４３を備える。これらを含む処理部１４の機能は、通信制御システム１が備える不図示のＣＰＵが、記憶部１２に記憶されている所定のプログラムを不図示のメインメモリにロードして実行することによって具現化される。また、プロセス切り替えオーバヘッドを削減するために、イベントループプロセス１４１と複数のイベント処理プロセス１４２それぞれとにＣＰＵコアを１対１対応で割り当てるのが望ましいが、これに限定されない。
【００２４】
イベントループプロセス１４１は、処理すべきイベントが複数ある場合に、当該複数のイベントそれぞれについて、記憶部１２のイベント処理管理テーブル１２２を参照し、該当するイベント種別とユーザ種別とサービス種別の組み合わせの平均待機時間に対するそのイベントの待機時間の割合が大きいほど高い優先度を設定し、当該優先度の高いイベントから順に複数のイベント処理プロセス１４２のいずれかに割り当てる機能を有し、イベント監視部１４１１と、イベントキュー１４１２と、イベント割り当て機能部１４１３とを備える。
【００２５】
イベント監視部１４１１は、オペレーティングシステム１４３からイベント通知を受けると、そのイベントをイベントキュー１４１２に登録する。
イベントキュー１４１２は、イベントを先入れ先出し方式で格納する。
【００２６】
イベント割り当て機能部１４１３は、イベントキュー１４１２にイベントが複数ある場合で、すべてのイベント処理プロセス１４２が空いていない場合に、当該複数のイベントそれぞれについて、記憶部１２のイベント処理管理テーブル１２２を参照し、該当するイベント種別とユーザ種別とサービス種別の組み合わせの平均待機時間に対するそのイベントの待機時間の割合が大きいほど高い優先度を設定し、当該優先度の高いイベントから順に複数のイベント処理プロセス１４２のうち空いたものに割り当てる。
【００２７】
複数のイベント処理プロセス１４２は、それぞれが、イベントの処理を行い、処理が完了すると、イベントループプロセス１４１に対して処理の完了を通知し、次に処理すべきイベントを受け取る。
【００２８】
オペレーティングシステム１４３は、いわゆる基本ソフトであり、通信部１１を介してユーザ端末３からの要求を受け取ると、そのときに処理するイベントをイベントループプロセス１４１のイベント監視部１４１１に通知する。
【００２９】
次に、図２に示すように、イベント管理テーブル１２１は、イベントについて、イベント識別子、セッション識別子、イベント種別、ユーザ種別、サービス種別、受信時刻の各データを格納する。具体的には、イベント監視部１４１１は、オペレーティングシステム１４３からイベントを受け取ると、イベントキュー１４１２にイベントを登録するとともに、イベントに受信時刻を追加してイベント管理テーブル１２１に各データを格納する。
【００３０】
イベント識別子は、イベントの識別用情報である。
セッション識別子は、セッションの識別用情報である。
【００３１】
イベント種別は、前記したように、ＳＩＰを前提とした場合、例えば、ＲＥＧＩＳＴＥＲ、ＩＮＶＩＴＥ、ＯＰＴＩＯＮＳなどである。
ユーザ種別は、例えば、重要加入者（警察・消防等）と一般加入者である。
サービス種別は、例えば、通信サービスの種類で、具体例としては、フリーダイヤルやナビダイヤルなどの別の通信装置との通信が必要となるサービスである。
受信時刻は、通信制御システム１がユーザ端末３からの要求を受信した時刻である。
【００３２】
次に、図３に示すように、イベント処理管理テーブル１２２は、ユーザ端末３からの要求を受信したときに処理するイベントに関して、イベント種別（Ｉａ、Ｉｂ、・・・）とユーザ種別（Ｕａ、Ｕｂ、・・・）とサービス種別（Ｓａ、Ｓｂ、・・・）の組み合わせごとに、累積待機時間、累積実行回数、平均待機時間の各データを格納する。具体的には、イベント割り当て機能部１４１３は、複数のイベント処理プロセス１４２のいずれかからイベント処理の完了通知を受信すると、その処理が完了したイベントに基づいてイベント処理管理テーブル１２２を更新する。
【００３３】
つまり、イベント処理管理テーブル１２２に該当する（イベント種別とユーザ種別とサービス種別の組み合わせが同じである）エントリ（行データ）がある場合は、そのエントリの累積待機時間にそのイベントの待機時間（ユーザ端末３からの要求の受信時から処理開始時までの時間）を加算し、累計実行回数をインクリメント（１加算）し、最新の累積待機時間を最新の累計実行回数で除算して平均待機時間をその除算値に更新する。
また、イベント処理管理テーブル１２２に該当するエントリがない場合は、新たなエントリを登録する。その際、累積待機時間にはそのイベントの待機時間を登録し、累計実行回数は１回とし、また、平均待機時間には累積待機時間と同じ時間を登録する。
【００３４】
次に、イベント監視部１４１１の処理について説明する。図４に示すように、ステップＳ１において、イベント監視部１４１１は、オペレーティングシステム１４３からイベント通知があるか否かを判定し、Ｙｅｓの場合はステップＳ２に進み、Ｎｏの場合はステップＳ１に戻る。
【００３５】
ステップＳ２において、イベント監視部１４１１は、オペレーティングシステム１４３から受け取ったイベントをイベントキュー１４１２に登録し、ステップＳ３に進む。
ステップＳ３において、イベント監視部１４１１は、イベント管理テーブル１２１を更新する。つまり、イベント管理テーブル１２１（図２）にそのイベントのデータを追加する。
ステップＳ３の後、ステップＳ１に戻る。
【００３６】
次に、イベント割り当て機能部１４１３の処理について説明する。図５に示すように、ステップＳ１１において、イベント割り当て機能部１４１３は、処理すべきイベントがイベントキュー１４１２にあるか否かを判定し、Ｙｅｓの場合はステップＳ１２に進み、Ｎｏの場合はステップＳ１１に戻る。
【００３７】
ステップＳ１２において、イベント割り当て機能部１４１３は、空いているイベント処理プロセス１４２があるか否かを判定し、Ｙｅｓの場合はステップＳ１３に進み、Ｎｏの場合はステップＳ１４に進む。
【００３８】
ステップＳ１３において、イベント割り当て機能部１４１３は、空いているイベント処理プロセス１４２に、イベントキュー１４１２の先頭のイベントを割り当てる。イベントを割り当てられたイベント処理プロセス１４２は、そのイベントを処理する。ステップＳ１３の後、ステップＳ１１に戻る。
【００３９】
ステップＳ１４において、イベント割り当て機能部１４１３は、イベント処理プロセス１４２から完了通知があるか否かを判定し、Ｙｅｓの場合はステップＳ１５に進み、Ｎｏの場合はステップＳ１４に戻る。
【００４０】
ステップＳ１５において、イベント割り当て機能部１４１３は、完了通知を送ってきたイベント処理プロセス１４２を、イベントを処理するイベント処理プロセス１４２として決定し、ステップＳ１６に進む。
【００４１】
ステップＳ１６において、イベント割り当て機能部１４１３は、完了通知を受け取った対象のイベントに基づいて、イベント処理管理テーブル１２２を更新し、ステップＳ１７に進む。
【００４２】
ステップＳ１７において、イベント割り当て機能部１４１３は、イベント処理管理テーブル１２２を参照して、イベントキュー１４１２内の全イベントの優先度を設定し、ステップＳ１８に進む。
【００４３】
イベントの優先度は、例えば、次のようにして設定すればよい。ここで、イベントのユーザ端末３からの要求の受信時から処理開始時までの待機時間をＴとし、イベント処理管理テーブル１２２（図３）の該当する（イベント種別とユーザ種別とサービス種別の組み合わせが同じである）エントリの平均待機時間をＴａｖｅとし、優先度をＰとする。Ｔ／Ｔａｖｅは、平均待機時間に対するそのイベントの待機時間の割合である。
【００４４】
（Ｔ／Ｔａｖｅ）≦１のとき、Ｐ＝０
１＜（Ｔ／Ｔａｖｅ）≦１．２のとき、Ｐ＝１
１．２＜（Ｔ／Ｔａｖｅ）１．４≦のとき、Ｐ＝２
１．４＜（Ｔ／Ｔａｖｅ）のとき、Ｐ＝３
【００４５】
なお、イベント処理管理テーブル１２２に該当する（イベント種別とユーザ種別とサービス種別の組み合わせが同じである）エントリがない場合、Ｐ＝０とする。
また、処理すべきイベントが１つの場合は、優先度を設定する必要はない。
【００４６】
ステップＳ１８において、イベント割り当て機能部１４１３は、ステップＳ１７で設定した優先度が最大のイベントを、ステップＳ１５で決定したイベント処理プロセス１４２に割り当てる。なお、優先度が最大のイベントが複数あった場合は、イベントキュー１４１２の先頭に一番近いイベントを選択すればよい。イベントを割り当てられたイベント処理プロセス１４２は、そのイベントを処理する。ステップＳ１８の後、ステップＳ１１に戻る。なお、イベント処理プロセス１４２は、ユーザ端末３からの要求に対する最終処理を行った場合には、イベント管理テーブル１２１からその要求に関するイベントのエントリを削除する。
【００４７】
次に、図６を参照して、通信制御システム１における各構成要素の動作の流れについて説明する。
ユーザ端末３は通信制御システム１にサービス要求を送る（ステップＳ１０１）。
オペレーティングシステム１４３は、イベントループプロセス１４１のイベント監視部１４１１にイベントを通知する（ステップＳ１０２）。
【００４８】
イベントループプロセス１４１のイベント割り当て機能部１４１３は、処理すべきイベントを複数のイベント処理プロセス１４２のいずれか（ここではイベント処理プロセス（＃１）１４２）に割り当てる（ステップＳ１０３）。その際、イベント割り当て機能部１４１３は、処理すべきイベントが複数あって、かつ、すべてのイベント処理プロセス１４２が空いていない場合には、すべてのイベントの優先度を設定し、当該優先度の高いイベントから順に複数のイベント処理プロセス１４２のうち空いたものに割り当てる。
【００４９】
イベント処理プロセス（＃１）１４２は、イベントを処理し、オペレーティングシステム１４３に回答送信を依頼する（ステップＳ１２１）。
また、イベント処理プロセス（＃１）１４２は、イベントループプロセス１４１のイベント割り当て機能部１４１３にイベントの処理完了を通知する（ステップＳ１２２）。これを受けて、イベント割り当て機能部１４１３は、イベント処理管理テーブル１２２（図３）を更新する。
【００５０】
ステップＳ１２１の後、オペレーティングシステム１４３は、サービス要求を送ってきたユーザ端末３にサービス応答する（ステップＳ１２３）。
【００５１】
なお、ステップＳ１１１〜Ｓ１１３，Ｓ１４１〜Ｓ１４３、および、ステップＳ１３１〜Ｓ１３３，Ｓ１５１〜Ｓ１５３は、ステップＳ１０１〜Ｓ１０３，Ｓ１２１〜Ｓ１２３と同様であるので、説明を省略する。
【００５２】
このように、本実施形態の通信制御システム１によれば、処理すべきイベントが複数あって、空いているイベント処理プロセス１４２がない場合は、オペレーティングシステム１４３からイベントループプロセス１４１へのイベントの到着順ではなく、前記したように優先度の高いものからイベントを処理するため、イベント種別とユーザ種別とサービス種別の組み合わせごとでのイベント処理時間のバラツキを小さくすることができ、複数のユーザ端末３からの要求に対して公平なタイミングで処理を実施することが可能となる。つまり、複数サービスを公平に処理することができる。
【００５３】
（変形例）
前記した実施形態では、イベント処理管理テーブル１２２にイベント種別とユーザ種別とサービス種別の組み合わせごとに平均待機時間等を格納し、イベント割り当て機能部１４１３は、空いているイベント処理プロセス１４２がない場合に、イベント処理管理テーブル１２２を参照し、該当するイベント種別とユーザ種別とサービス種別の組み合わせの平均待機時間に対するそのイベントの待機時間の割合が大きいほど高い優先度を設定するものとした。しかし、これに限定されず、「イベント種別とユーザ種別とサービス種別の組み合わせ」の代わりに、「イベント種別とユーザ種別の組み合わせ」、「イベント種別とサービス種別の組み合わせ」、「イベント種別のみ」のいずれかを採用してもよい。そうすれば、それぞれ、「イベント種別とユーザ種別の組み合わせ」ごと、「イベント種別とサービス種別の組み合わせ」ごと、「イベント種別のみ」ごとに、イベント処理時間のバラツキを小さくすることができ、複数サービスを公平に処理することができる。その４通りのいずれを採用するかは、イベント種別、ユーザ種別、サービス種別の内容や特徴による。
【００５４】
以上で本実施形態の説明を終えるが、本発明の態様はこれらに限定されるものではない。例えば、適用対象の通信プロトコルは、ＳＩＰでなくても、Ｈ．３２３などの他の通信プロトコルでもよい。
また、平均待機時間に対するそのイベントの待機時間の割合（Ｔ／Ｔａｖｅ）ではなく、そのイベントの待機時間から平均待機時間を減算した時間の長さ（Ｔ−Ｔａｖｅ）が大きいほど高い優先度を設定するようにしてもよい。
【００５５】
また、例えば、前記した「イベント種別とユーザ種別の組み合わせ」に基づいて優先度を設定するようにすれば、その組み合わせごとにイベント処理時間のバラツキを小さくすることができるが、合わせて、特定のユーザ種別やサービス種別で優先度を高めるなどとしてもよい。具体例としては、例えば、ユーザ種別が「重要加入者（警察・消防等）」と「一般加入者」の２種類の場合、「重要加入者（警察・消防等）」のイベントを優先的に処理させるように優先度を高く設定してもよい。
その他、具体的な構成について、本発明の主旨を逸脱しない範囲で適宜変更が可能である。
【符号の説明】
【００５６】
１      通信制御システム
２      ネットワーク
３      ユーザ端末
１１    通信部
１２    記憶部
１３    入出力部
１４    処理部
１２１  イベント管理テーブル
１２２  イベント処理管理テーブル
１４１  イベントループプロセス
１４２  イベント処理プロセス
１４３  オペレーティングシステム
１４１１  イベント監視部
１４１２  イベントキュー
１４１３  イベント割り当て機能部
【図１】
2016115193.tif 000003
【図２】
2016115193.tif 000004
【図３】
2016115193.tif 000005
【図４】
2016115193.tif 000006
【図５】
2016115193.tif 000007
【図６】
2016115193.tif 000008