<第1の実施形態>
以下、図面を参照して本発明の第1の実施形態について説明する。図1は、本発明の第1の実施形態に係る通信システム100を示す図である。通信システム100は、複数のノード(図示せず)とデータ通信を行う装置である。ノードとは、通信システム100とデータ通信が可能な通信装置であり、例えば、ユーザが利用するスマートフォンやタブレット型端末、ラップトップPC等の携帯型の通信装置やデータサーバである。通信システム100は、サーバ制御装置10と、呼制御サーバ20と、ユーザープレーン(User-Plane)(以下、「U-Plane」とする。)処理サーバ301~30n(nは任意の整数)と、パケット振分サーバ40と、レイヤスイッチ50とを含む。サーバ制御装置10、呼制御サーバ20、U-Plane処理サーバ301~30nおよびパケット振分サーバ40は、それぞれネットワークを介してレイヤスイッチ50に接続される。レイヤスイッチ50は、通信システム100内の送信元から受信したパケットを送信先に転送する。
図2は、本発明の第1の実施形態に係るサーバ制御装置10の概略的な構成を示すブロック図である。サーバ制御装置10は、U-Plane処理サーバ301~30nの動作状態を制御する装置である。サーバ制御装置10は、演算装置であるCPU(Central Processing Unit)(図示せず)を備えており、ROM(Read Only Memory)(図示せず)に保存されたプログラムをRAM(Random Access Memory)(図示せず)に展開して、プログラムモジュールである必要サーバ数算出部11と、変化量算出部12と、予測サーバ数算出部13と、動作状態制御部14を呼び出し、後述する処理を実行する。
図3は、本発明の第1の実施形態に係るサーバ制御装置10の詳細な構成を示すブロック図である。サーバ制御装置10は、上述したプログラムモジュールに加えて、サーバ数評価部15と、必要サーバ数テーブル16と、サーバ数変化量度数分布テーブル17と、サーバ数変化量集計テーブル18と、サーバ管理テーブル19とを含む。
必要サーバ数算出部11は、通信システム100と複数のノードとの間の通信において発生するトラフィックに起因する情報(以下、「トラフィック情報」とする。)に基づき、所定の各時間帯において当該トラフィックを処理するために必要なU-Plane処理サーバの数(以下、「必要サーバ数」とする。)を算出する必要サーバ数算出処理を実行するプログラムモジュールである。必要サーバ数算出部11は、必要サーバ数の算出に先立ち、呼制御サーバ20およびパケット振分サーバ40にトラフィック情報の取得要求を周期的に送信する。当該取得要求の送信間隔は、例えば、数秒~数分間隔とすることができるが、トラフィック情報のリアルタイム性を高めるため、送信間隔は短い方が好ましい。
トラフィック情報は、トラフィックの少なくともデータ転送量に関する内容を示す情報であり、例えば、単位時間当たりのリソース制御信号の数やユーザ信号の数、通信システム100と通信中のノードの数(同時接続数)、U-Plane処理サーバ301~30nの単位時間当たりの実際のデータ転送量を示すスループット等である。ここで、リソース制御信号は、呼制御サーバ20がU-Plane処理サーバ301~30nに送信する制御信号であり、ノードとの通信においてU-Plane処理サーバ301~30nがユーザ信号を処理するために必要な情報を設定するための制御信号である。また、ユーザ信号とは、通信システム100とノードとの間で通信されるU-Plane信号である。
必要サーバ数算出部11は、呼制御サーバ20およびパケット振分サーバ40からトラフィック情報を受信すると、これらのトラフィック情報に基づいて必要サーバ数を算出する。具体的には、単位時間当たりのリソース制御信号およびユーザ信号の数から必要サーバ数を算出する場合、単位時間当たりのリソース制御信号およびユーザ信号の数を、各U-Plane処理サーバが単位時間当たりに処理可能なデータ量の和で除算することにより、必要サーバ数を算出することができる。通信システム100と通信中のノードの数から必要サーバ数を算出する場合、通信システム100と通信中のノードの数を、U-Plane処理サーバ301~30nで処理可能なノード数の和で除算することにより、必要サーバ数を算出することができる。
U-Plane処理サーバ301~30nの単位時間当たりの実際のデータ転送量を示すスループット(実測値)には、携帯型の通信装置から受信したユーザ信号の単位時間当たりの転送量が含まれる。当該スループットを、各U-Plane処理サーバの単位時間当たりに処理可能なデータ量の和で除算することにより、必要サーバ数を算出することができる。必要サーバ数算出部11は、このようにして算出した必要サーバ数を、必要サーバ数テーブル16に登録する。
図4は、或る月の必要サーバ数テーブル16の一例を示す。図4に示す必要サーバ数テーブル16には、リソース制御信号数、ノード数(同時接続数)、ユーザ信号数およびスループットそれぞれに基づく必要サーバ数が、日付、曜日および時間帯毎に登録される。必要サーバ数算出部11は、トラフィック情報の種類毎の必要サーバ数を登録すると、これらの必要サーバ数の最大値を最大必要サーバ数として登録する。ここで、必要サーバ数算出部11は、同一の時間帯について必要サーバ数を複数回算出するが、既に登録されている必要サーバ数を超える必要サーバ数を算出した場合にのみ、必要サーバ数テーブル16の各フィールドを更新する。なお、本実施形態では、所定の時間帯の間隔として1時間を採用するが、その他の間隔(例えば、15分や30分等)を採用してもよい。
変化量算出部12は、必要サーバ数テーブル16を参照し、所定の各時間帯の必要サーバ数に基づき、連続する2つの時間帯における必要サーバ数の変化量を算出する変化量算出処理を実行するプログラムモジュールである。変化量算出部12は、必要サーバ数テーブル16の所定の時間帯が終了したタイミングや1日の終わり、月の終わり等の任意のタイミングで変化量算出処理を実行することができる。
例えば、図4に示す必要サーバ数テーブル16に基づいて、「1日」の「00:00~00:59」から「01:00~01:59」に移行した場合の必要サーバ数の変化量を算出する場合について説明する。「1日」の「00:00~00:59」の最大必要サーバ数は「1.8」であり、「1日」の「01:00~01:59」の最大必要サーバ数は「1.6」である。この場合、変化量算出部12は、「01:00~01:59」の最大必要サーバ数「1.6」から「00:00~00:59」の最大必要サーバ数「1.8」を減算し、必要サーバ数の変化量として「-0.2(=1.6-1.8)」を算出する。変化量算出部12は、このようにして算出した必要サーバ数の変化量を、「01:00~01:59」の必要サーバ数の変化量としてサーバ数変化量度数分布テーブル17に登録する。
図5は、或る月のサーバ数変化量度数分布テーブル17の一例を示す。図5に示すサーバ数変化量度数分布テーブル17には、曜日、時間帯およびサーバ数の変化量区分毎に、当該変化量区分に該当する必要サーバ数の変化量の日数と、当該必要サーバ数の変化量の加算値である累積変化量が登録される。変化量算出部12は、サーバ数変化量度数分布テーブル17を参照し、必要サーバ数テーブル16に基づいて算出した必要サーバ数の変化量が該当する変化量区分を特定し、当該変化量区分に対応する「日数」のフィールドの値をインクリメントすると共に、「累積変化量」のフィールドに変化量の加算値を登録する。
また、変化量算出部12は、任意の期間(例えば、3ヶ月等)のサーバ数変化量度数分布テーブル17の必要サーバ数の変化量を集計して、予測対象の時間帯の必要サーバ数の変化量である予測変化量を算出し、図6に示すようなサーバ数変化量集計テーブル18に登録する。図6に示すサーバ数変化量集計テーブル18には、曜日および時間帯毎に、予測変化量が登録される。変化量算出部12は、サーバ数変化量度数分布テーブル17を参照し、必要サーバ数の変化量の日数および累積変化量から予測変化量を算出する。
ここで、予測変化量の算出方法の一例について説明する。例えば、図5に示すサーバ数変化量度数分布テーブル17から「平日」の「00:00~00:59」における予測変化量を算出する場合、変化量算出部12は、「平日」の「00:00~00:59」に関連する全ての変化量区分について、累積変化量を日数で除算して累積変化量の平均値を算出する。例えば、「±0.0~+0.5」の変化量区分について、累積変化量「+0.3」を日数「2」で除算することにより、累積変化量の平均値「+0.15」を算出することができる。
そして、変化量算出部12は、全ての変化量区分の累積変化量を加算し、その和を当該時間帯の全日数(20(=2+14+4))で除算することにより、予測変化量を算出することができる((0.3-5.8-2.6)÷20=-0.405)。変化量算出部12は、任意の期間(例えば、3か月等)のサーバ数変化量度数分布テーブル17から、それぞれ予測変化量を算出し、これらの予測変化量を加算し、その和を当該期間の月数(3ヶ月の場合は「3」)で除算することにより、当該期間における予測変化量を算出することができる。
上述した予測変化量の算出方法では、対象となる時間帯の全ての変化量区分に関連する日数および累積変化量を用いて予測変化量を算出するが、他の算出方法では、日数の値が最も大きい変化量区分の日数および累積変化量を用いて予測変化量を算出してもよい。この場合、変化量算出部12は、「平日」の「00:00~00:59」に関連する変化量区分のうち「-0.1~-0.5」の変化量区分について、累積変化量「-5.8」を日数「14」で除算することにより、予測変化量を算出することができる。
予測サーバ数算出部13は、現在の時間帯から後続の予測対象の時間帯に移行した場合の必要サーバ数の予測変化量と、現在の時間帯における最大必要サーバ数に基づき、予測対象の時間帯において必要とされるサーバ数(以下、「予測サーバ数」とする。)を算出する予測サーバ数算出処理を実行する。具体的には、予測サーバ数算出部13は、必要サーバ数テーブル16を参照して現在の時間帯における最大必要サーバ数を特定し、サーバ数変化量集計テーブル18を参照して予測対象の時間帯の予測変化量を特定し、当該最大必要サーバ数と当該予測変化量を加算することにより、予測サーバ数を算出することができる。
動作状態制御部14は、予測サーバ数に基づき、U-Plane処理サーバ301~30nの動作状態を制御する動作状態制御処理を実行する。U-Plane処理サーバの動作状態には、(1)通常の動作状態である通常動作モード、(2)ノードとの通信に伴うタスクの新たな割り当てが制限された状態の抑止モード、(3)省電力の休止状態である休止モード、および(4)電源がOFFの状態の停止モードがある。動作状態制御部14は、U-Plane処理サーバ301~30nの動作状態を、図7に示すようなサーバ管理テーブル19に登録する。サーバ管理テーブル19には、U-Plane処理サーバ301~30nの識別情報と、動作状態とが関連付けて登録される。
サーバ数評価部15は、トラフィックを処理する通常動作モードのU-Plane処理サーバの数の適正を評価するサーバ数評価処理を実行するプログラムモジュールである。サーバ数評価部15は、サーバ管理テーブル19を参照して通常動作モードのU-Plane処理サーバの数を計数する。そして、サーバ数評価部15は、この計数値から予測サーバ数を減算して得られた値(以下、「サーバ数評価値」とする。)に基づき、サーバ数の適正を判断する。具体的には、サーバ数評価部15は、サーバ数が不足するか、サーバ数が過剰であるか、サーバ数に余裕が有るか、サーバ数に余裕が無いか、またはサーバ数が適正であるかを判断する。
ここで、予測サーバ数とU-Plane処理サーバの動作状態の時系列変化を示す図23を参照して、サーバの数の適正の判断方法の具体例について説明する。本実施形態では、(1)サーバ数評価値が0未満の場合には、サーバ数が不足すると判断し、(2)サーバ数評価値が1以上の場合には、サーバ数は過剰であると判断する。また、(3)サーバ数評価値が0.7~1未満の場合には、サーバ数に余裕が有ると判断し、(4)サーバ数評価値が0~0.3以下の場合には、サーバ数に余裕が無いと判断する。なお、サーバ数評価値の判断に使用する閾値は、これらに限定されるものではなく、サーバ数の不適正な状態を識別し得る限り、任意の値を使用することができる。
例えば、図22に示す例において、現在の時間帯を「12:00~13:00」とし、予測対象の時間帯を「13:00~14:00」とすると、現在の通常動作モードのU-Plane処理サーバの数は「2」であり、予測対象の時間帯「13:00~14:00」における予測サーバ数は「2.2」である。したがって、サーバ数評価値は「-0.2(=2-2.2)」となり、サーバ数評価部15は、サーバ数が不足すると判断する。この場合、動作状態制御部14は、停止モードのU-Plane処理サーバを起動させる。この処理については、図11~14を参照して後述する。
また、図23に示す例において、現在の時間帯を「14:00~15:00」とし、予測対象の時間帯を「15:00~16:00」とすると、現在の通常動作モードのU-Plane処理サーバの数は「4」であり、予測対象の時間帯「15:00~16:00」における予測サーバ数は、「2.3」である。したがって、サーバ数評価値は「1.7(=4-2.3)」となり、サーバ数評価部15は、サーバ数が過剰であると判断する。この場合、動作状態制御部14は、通常動作モードのU-Plane処理サーバを抑止モードに移行させる。この処理については、図11および図15を参照して後述する。
次いで、サーバ数評価部15は、再度、現在の通常動作モードのU-Plane処理サーバの数を計数し、この計数値「3」から予測サーバ数「2.3」を減算して、新たなサーバ数評価値「0.7」を算出する。そして、サーバ数評価部15は、当該サーバ数評価値「0.7」に基づき、サーバ数に余裕が有ると判断する。この場合、動作状態制御部14は、休止モードのU-Plane処理サーバの数を停止モードに移行させる。この処理については、図17を参照して後述する。
さらに、図23に示す例において、現在の時間帯を「9:00~10:00」とし、予測対象の時間帯を「10:00~11:00」とすると、現在の通常動作モードのU-Plane処理サーバの数は「1」であり、予測対象の時間帯「10:00~11:00」における予測サーバ数は、「0.8」である。したがって、サーバ数評価値は「0.2(=1-0.8)」となり、サーバ数評価部15は、サーバ数に余裕が無いと判断する。この場合、動作状態制御部14は、停止モードのU-Plane処理サーバを起動させて休止モードに移行させる。この処理については、図11および図14を参照して後述する。
図8は、本発明の第1の実施形態に係る呼制御サーバ20の構成を示すブロック図である。呼制御サーバ20は、演算装置であるCPU(図示せず)を備えており、ROM(図示せず)に保存されたプログラムをRAM(図示せず)に展開して、プログラムモジュールであるトラフィック情報収集部21と、コントロールプレーン(Control-Plane)(以下、「C-Plane」とする。)処理部22と、制御部23を呼び出し、後述する処理を実行する。
呼制御サーバ20の記憶装置には、ノード管理テーブル24と、サーバ管理テーブル25が構築される。ノード管理テーブル24は、U-Plane処理サーバの識別情報とノードの識別情報とが関連付けられて登録されるデータテーブルである。U-Plane処理サーバの識別情報には、複数のノードの識別情報が関連付けて登録され得る。サーバ管理テーブル25は、サーバ管理テーブル19と同様に、U-Plane処理サーバの識別情報と、当該U-Plane処理サーバの動作状態とが関連付けられて登録されるデータテーブルである。
トラフィック情報収集部21は、トラフィック情報を収集し、サーバ制御装置10からのトラフィック情報の取得要求に応じて、現在のトラフィック情報を提供するプログラムモジュールである。トラフィック情報収集部21が収集するトラフィック情報には、リソース制御信号数と、ノード管理テーブル24に登録されている通信中のノードの数(同時接続数)が含まれる。C-Plane処理部22は、ノードが送信したC-Plane信号を終端し、通信システム100とノードとの間の通信に必要な制御情報を制御部23に提供するプログラムモジュールである。C-Plane信号は、ノードからパケット振分サーバ40に送信され、パケット振分サーバ40からC-Plane処理部22に送信される。
制御部23は、呼制御サーバ20の全体制御を行うプログラムモジュールである。制御部23は、パケット振分サーバ40からC-Plane処理部22を介して、新たなノードとの通信開始を示す制御情報を受信すると、当該新たなノードとの間の通信に関するパケットを処理すべきU-Plane処理サーバを決定する。この制御情報には、新たなノードが送信したC-Plane信号に付加された当該新たなノードの識別情報が含まれる。制御部23は、サーバ管理テーブル25を参照し、動作状態が通常動作モードのU-Plane処理サーバを、新たなノードとの通信に関するパケットを処理するU-Plane処理サーバとして選択する。そして、制御部23は、選択したU-Plane処理サーバの識別情報と、当該制御情報に含まれる当該新たなノードの識別情報とを、パケットの振分先を規定する振分先情報としてパケット振分サーバ40に送信する。なお、制御部23は、動作状態が抑止モードや休止モード、停止モードのU-Plane処理サーバを選択しない。制御部23が実行する他の処理については、後述する。
図9は、本発明の第1の実施形態に係るU-Plane処理サーバ301の構成を示すブロック図である。その他のU-Plane処理サーバ302~30nは、U-Plane処理サーバ301と同様の構成を有するため、説明を省略する。
U-Plane処理サーバ301は、複数のノードからパケット振分サーバ40を介して受信したユーザ信号に関するパケットを処理する装置である。U-Plane処理サーバ301は、演算装置であるCPU(図示せず)を備えており、ROM(図示せず)に保存されたプログラムをRAM(図示せず)に展開して、プログラムモジュールである電源制御部31と、ノード設定部32と、輻輳監視部34と、パケット処理部33を呼び出し、後述する処理を実行する。
U-Plane処理サーバ301の記憶装置には、ノード管理テーブル35が構築される。ノード管理テーブル35は、U-Plane処理サーバの識別情報とノードの識別情報とが関連付けられて登録されるデータテーブルである。U-Plane処理サーバの識別情報には、複数のノードの識別情報が関連付けて登録され得る。
電源制御部31は、サーバ制御装置10の要求に応じてU-Plane処理サーバ301の電源を制御し、U-Plane処理サーバ301の動作状態を制御するプログラムモジュールである。ノード設定部32は、呼制御サーバ20からのリソース制御信号に応じてノード管理テーブル35を処理するプログラムモジュールである。ノード設定部32は、呼制御サーバ20から受信した単位時間当たりのリソース制御信号数と、ノード管理テーブル35に登録されているノード数(同時接続数)を輻輳監視部34に提供する。
パケット処理部33は、パケット振分サーバ40から転送されたユーザ信号を処理するプログラムモジュールである。パケット処理部33は、パケット振分サーバ40からユーザ信号を受信すると、当該ユーザ信号に関連するトラフィック情報(例えば、単位時間当たりにノードから受信したユーザ信号の数、単位時間当たりの実際のデータ転送量を示すスループット等)を輻輳監視部34に提供する。
輻輳監視部34は、呼制御サーバ20から受信したリソース制御信号の数と、U-Plane処理サーバに設定されているノード数(同時接続数)と、ノードからパケット振分サーバ40を介して受信したユーザ信号の数と、ユーザ信号のスループットを常時監視し、U-Plane処理サーバ301の処理限界に近づくと、輻輳が発生したと判断し、その旨を通知するプログラムモジュールである。輻輳監視部34は、単位時間当たりのリソース制御信号の数またはユーザ信号の数が所定の閾値を超えた場合に、輻輳が発生したと判断し、当該リソース制御信号の数またはユーザ信号の数が当該所定の閾値未満になった場合に、輻輳が終了したと判断することができる。また、輻輳監視部34は、単位時間当たりの実際のデータ転送量を示すスループット(実測値)がU-Plane処理サーバの処理可能なデータ転送量の上限値に近い所定の閾値に達した場合に、輻輳が発生したと判断し、当該スループットが当該所定の閾値を下回った場合に、輻輳が終了したと判断することができる。また、輻輳監視部34は、設定されているノード数がU-Plane処理サーバの処理可能なノード数の上限値に近い所定の閾値に達した場合に、輻輳が発生したと判断し、当該ノード数が当該所定の閾値を下回った場合に、輻輳が終了したと判断することができる。
図10は、本発明の第1の実施形態に係るパケット振分サーバの構成を示すブロック図である。パケット振分サーバ40は、複数のノードから受信したパケットを呼制御サーバ20およびU-Plane処理サーバに振り分ける装置である。パケット振分サーバ40は、演算装置であるCPU(図示せず)を備えており、ROM(図示せず)に保存されたプログラムをRAM(図示せず)に展開して、プログラムモジュールであるトラフィック情報収集部41と、振分先情報設定部42と、パケット転送部43を呼び出し、後述する処理を実行する。パケット振分サーバ40の記憶装置には、振分先情報が登録される振分先情報テーブル44が構築される。
トラフィック情報収集部41は、ノードから受信したユーザ信号に関するトラフィック情報(例えば、ユーザ信号数、スループット等)を収集し、サーバ制御装置10からのトラフィック情報の取得要求に応じて、現在のトラフィック情報を提供するプログラムモジュールである。
振分先情報設定部42は、振分先情報テーブル44を用いて、振分先情報の登録、変更および削除を行うプログラムモジュールである。振分先情報設定部42は、呼制御サーバ20から振分先情報を受信すると、当該振分先情報を振分先情報テーブル44に登録する。具体的には、振分先情報であるノード識別情報と、当該ノード識別情報の示すノードが送信したユーザ信号に関するパケットを処理すべきU-Plane処理サーバの識別情報とを関連付けて振分先情報テーブル44に登録する。
パケット転送部43は、ノードから受信したパケットを呼制御サーバ20およびU-Plane処理サーバに振り分けるプログラムモジュールである。このパケットには、当該パケットを送信したノードの識別情報、C-Plane信号およびユーザ信号が含まれている。パケット転送部43は、C-Plane信号に関するパケットを呼制御サーバ20に転送し、ユーザ信号に関するパケットをU-Plane処理サーバに転送する。より詳細には、パケット転送部43は、ユーザ信号に関するパケットを受信した場合、振分先情報テーブル44を参照して、当該パケットの送信元のノードの識別情報に関連付けられているU-Plane処理サーバの識別情報を特定し、当該ユーザ信号に関するパケットを当該U-Plane処理サーバに転送する。
図11~18は、本発明の第1の実施形態に係るサーバ制御装置が実行する処理を示すフローチャートである。この処理は、所定のタイミング、例えば、予測対象の時間帯に移行する直前に実行される。図11に示す処理は、ステップS100から開始し、ステップS101では、サーバ制御装置10の予測サーバ数算出部13が、予測対象の時間帯における予測サーバ数を算出する。
ステップS102では、サーバ数評価部15が、サーバ管理テーブル19に登録されている通常動作モードのU-Plane処理サーバの数と、ステップS101で算出された予測サーバ数とを用いてサーバ数評価値を算出し、サーバ数の適正を判断する。サーバ数が不足する場合は、図12に示すステップS200に処理が進む。サーバ数が過剰である場合は、図15に示すステップS300に処理が進む。サーバ数に余裕が無い場合は、図14に示すステップS214に処理が進む。サーバ数に余裕が有る場合は、図17に示すステップS314に処理が進む。その他の場合、すなわち、サーバ数が適正な場合は、ステップS103で処理が終了する。
次に、図12~14を参照して、サーバ数が不足すると判断した場合に実行される処理について説明する。図12に示すステップS200では、動作状態制御部14が、サーバ管理テーブル19を参照し、休止中(すなわち、休止モード)のU-Plane処理サーバが有るか否か判断する。休止モードのU-Plane処理サーバが無い場合(NO)、図13に示すステップS206に処理が進む。一方、休止モードのU-Plane処理サーバが有る場合(YES)、ステップS201に進む。
ステップS201では、動作状態制御部14は、休止モードのU-Plane処理サーバに対し、休止解除要求を送信する。ステップS202では、動作状態制御部14は、当該休止モードのU-Plane処理サーバから、応答として休止解除完了通知を受信したか否か判断する。休止解除完了通知を受信していない場合(NO)、ステップS202が再び実行される。一方、休止解除完了通知を受信した場合(YES)、ステップS203に処理が進む。
ステップS203では、動作状態制御部14は、呼制御サーバ20に対し、当該U-Plane処理サーバの休止が解除された旨を通知する。ステップS204では、動作状態制御部14は、サーバ管理テーブル19の当該U-Plane処理サーバの動作状態を休止モードから通常動作モードに変更し、サーバ管理テーブル19を更新する。ステップS205では、サーバ数評価部15は、サーバ管理テーブル19に登録されている通常動作モードのU-Plane処理サーバの数と、ステップS101で算出された予測サーバ数とを用いてサーバ数評価値を算出し、サーバ数が不足するか否か判断する。サーバ数が不足すると判断した場合(YES)、ステップS200に処理が戻る。一方、サーバ数が不足しない判断した場合(NO)、図14に示すステップS212に処理が進む。
図13に示すステップS206では、動作状態制御部14は、サーバ管理テーブル19を参照し、停止中(すなわち、停止モード)のU-Plane処理サーバが有るか否か判断する。停止モードのU-Plane処理サーバが無い場合(NO)、ステップS212に処理が進む。一方、停止モードのU-Plane処理サーバが有る場合(YES)、ステップS207に進む。
ステップS207では、動作状態制御部14は、停止モードのU-Plane処理サーバに対して起動要求を送信する。ステップS208では、動作状態制御部14は、当該停止モードのU-Plane処理サーバから、応答として起動完了通知を受信したか否か判断する。起動完了通知を受信していない場合(NO)、ステップS208が再び実行される。一方、起動完了通知を受信した場合(YES)、ステップS209に処理が進む。
ステップS209では、動作状態制御部14は、呼制御サーバ20に対し、当該U-Plane処理サーバが起動した旨を通知する。ステップS210では、動作状態制御部14は、サーバ管理テーブル19の当該U-Plane処理サーバの動作状態を停止モードから通常動作モードに変更し、サーバ管理テーブル19を更新する。ステップS211では、サーバ数評価部15は、サーバ管理テーブル19に登録されている通常動作モードのU-Plane処理サーバの数と、ステップS101で算出された予測サーバ数とを用いてサーバ数評価値を算出し、サーバ数が不足するか否か判断する。サーバ数が不足すると判断した場合(YES)、ステップS206に処理が戻る。一方、サーバ数が不足しない判断した場合(NO)、図14に示すステップS212に処理が進む。
ステップS212では、サーバ数評価部15は、サーバ管理テーブル19に登録されている通常動作モードのU-Plane処理サーバの数と、ステップS101で算出された予測サーバ数とを用いてサーバ数評価値を算出し、サーバ数に余裕が無いか否か判断する。サーバ数に余裕が無い状態ではない場合(NO)、ステップS213で処理が終了する。一方、サーバ数に余裕が無いと判断した場合(YES)、ステップS214に処理が進む。ステップS214では、動作状態制御部14は、サーバ管理テーブル19を参照し、停止モードのU-Plane処理サーバが有るか否か判断する。停止モードのU-Plane処理サーバが無い場合(NO)、ステップS213で処理が終了する。一方、停止モードのU-Plane処理サーバが有る場合(YES)、ステップS215に進む。
ステップS215では、動作状態制御部14は、停止モードのU-Plane処理サーバに対して起動要求を送信する。ステップS216では、動作状態制御部14は、当該停止モードのU-Plane処理サーバから、応答として起動完了通知を受信したか否か判断する。起動完了通知を受信していない場合(NO)、ステップS216が再び実行される。起動完了通知を受信した場合(YES)、ステップS217に処理が進む。ステップS217では、動作状態制御部14は、当該起動したU-Plane処理サーバに対し、休止要求を送信する。ステップS218では、動作状態制御部14は、当該停止モードのU-Plane処理サーバから、応答として休止完了通知を受信したか否か判断する。休止完了通知を受信していない場合(NO)、ステップS218が再び実行される。休止完了通知を受信した場合(YES)、ステップS219に処理が進む。
ステップS219では、動作状態制御部14は、呼制御サーバ20に対し、当該U-Plane処理サーバが休止した旨、すなわち、休止モードである旨を通知する。ステップS210では、動作状態制御部14は、サーバ管理テーブル19の当該U-Plane処理サーバの動作状態を停止モードから休止モードに変更し、サーバ管理テーブル19を更新し、ステップS212に処理が戻る。
次に、図15~18を参照して、サーバ数が過剰であると判断した場合に実行される処理について説明する。図15に示すステップS300では、動作状態制御部14は、サーバ管理テーブル19を参照し、抑止中(すなわち、抑止モード)のU-Plane処理サーバが有るか否か判断する。抑止モードのU-Plane処理サーバが無い場合(NO)、図16に示すステップS308に処理が進む。一方、抑止モードのU-Plane処理サーバが有る場合(YES)、ステップS301に進む。
ステップS301では、動作状態制御部14は、呼制御サーバ20に対し、抑止モードのU-Plane処理サーバを指定した休止準備要求を送信する。ステップS302では、動作状態制御部14は、呼制御サーバ20から、応答として休止準備完了通知を受信したか否か判断する。休止準備完了通知を受信していない場合(NO)、ステップS302が再び実行される。一方、休止準備完了通知を受信した場合(YES)、ステップS303に処理が進む。ステップS303では、動作状態制御部14は、抑止モードのU-Plane処理サーバに対して休止要求を送信する。ステップS304では、動作状態制御部14は、当該抑止モードのU-Plane処理サーバから、応答として休止完了通知を受信したか否か判断する。休止完了通知を受信していない場合(NO)、ステップS304が再び実行される。一方、休止完了通知を受信した場合(YES)、ステップS305に処理が進む。
ステップS305では、動作状態制御部14は、呼制御サーバ20に対し、当該U-Plane処理サーバが休止した旨を通知する。ステップS306では、動作状態制御部14は、サーバ管理テーブル19の当該U-Plane処理サーバの動作状態を抑止モードから休止モードに変更し、サーバ管理テーブル19を更新する。ステップS307では、サーバ数評価部15は、サーバ管理テーブル19に登録されている通常動作モードのU-Plane処理サーバの数と、ステップS101で算出された予測サーバ数とを用いてサーバ数評価値を算出し、サーバ数が過剰であるか否か判断する。サーバ数が過剰であると判断した場合(YES)、ステップS300に処理が戻る。一方、サーバ数が過剰ではないと判断した場合(NO)、図17に示すステップS313に処理が進む。
図16に示すステップS308では、動作状態制御部14は、サーバ管理テーブル19を参照し、通常動作モードのU-Plane処理サーバが有るか否か判断する。通常動作モードのU-Plane処理サーバが無い場合(NO)、図17に示すステップS313に処理が進む。一方、通常動作モードのU-Plane処理サーバが有る場合(YES)、ステップS309に処理が進む。
ステップS309では、動作状態制御部14は、呼制御サーバ20に抑止要求を送信し、後述する抑止設定処理を実行させる。ステップS310では、動作状態制御部14は、呼制御サーバ20から、応答として抑止完了通知を受信したか否か判断する。抑止完了通知を受信していない場合(NO)、ステップS310が再び実行される。一方、抑止完了通知を受信した場合(YES)、ステップS311に処理が進む。抑止完了通知には、抑止モードに移行した抑止対象のU-Plane処理サーバの識別情報が含まれる。
ステップS311では、動作状態制御部14は、サーバ管理テーブル19を参照し、抑止完了通知に含まれる抑止対象のU-Plane処理サーバの動作状態を通常動作モードから抑止モードに変更し、サーバ管理テーブル19を更新する。ステップS312では、サーバ数評価部15は、サーバ管理テーブル19に登録されている通常動作モードのU-Plane処理サーバの数と、ステップS101で算出された予測サーバ数とを用いてサーバ数評価値を算出し、サーバ数が過剰であるか否か判断する。サーバ数が過剰であると判断した場合(YES)、ステップS308に処理が戻る。一方、サーバ数が過剰ではないと判断した場合(NO)、図17に示すステップS313に処理が進む。
ステップS313では、サーバ数評価部15は、サーバ管理テーブル19に登録されている通常動作モードのU-Plane処理サーバの数と、ステップS101で算出された予測サーバ数とを用いてサーバ数評価値を算出し、サーバ数に余裕が有るか否か判断する。サーバ数に余裕が無いと判断した場合(NO)、図18に示すステップS320に処理が進む。一方、サーバ数に余裕が有ると判断した場合(YES)、ステップS314に処理が進む。
ステップS314では、動作状態制御部14は、サーバ管理テーブル19を参照し、休止モードのU-Plane処理サーバが有るか否か判断する。休止モードのU-Plane処理サーバが無い場合(NO)、ステップS319で処理が終了する。一方、休止モードのU-Plane処理サーバが有る場合(YES)、ステップS315に進む。ステップS315では、動作状態制御部14は、休止モードのU-Plane処理サーバに対し、停止要求を送信する。ここで、複数のU-Plane処理サーバが休止モードの場合、本実施形態では、全ての休止モードのサーバに対して停止要求を送信する。
ステップS316では、動作状態制御部14は、当該休止モードのU-Plane処理サーバから、応答として停止完了通知を受信したか否か判断する。停止完了通知を受信していない場合(NO)、ステップS316が再び実行される。一方、停止完了通知を受信した場合(YES)、ステップS317に処理が進む。ステップS317では、動作状態制御部14は、呼制御サーバ20に対し、当該U-Plane処理サーバが停止モードである旨を通知する。ステップS318では、動作状態制御部14は、サーバ管理テーブル19の当該U-Plane処理サーバの動作状態を休止モードから停止モードに変更し、サーバ管理テーブル19を更新し、ステップS319で処理が終了する。
図18に示すステップS320では、動作状態制御部14は、サーバ管理テーブル19を参照し、停止モードのU-Plane処理サーバが有るか否か判断する。停止モードのU-Plane処理サーバが無い場合(NO)、ステップS327で処理が終了する。一方、停止モードのU-Plane処理サーバが有る場合(YES)、ステップS321に進む。
ステップS321では、動作状態制御部14は、停止モードのU-Plane処理サーバに起動要求を送信する。ここで、停止モードのU-Plane処理サーバが複数存在する場合、本実施形態では、動作状態制御部14は、停止モードのU-Plane処理サーバのうちいずれか1つに起動要求を送信する。
ステップS322では、動作状態制御部14は、当該停止モードのU-Plane処理サーバから、応答として起動完了通知を受信したか否か判断する。起動完了通知を受信していない場合(NO)、ステップS322が再び実行される。一方、起動完了通知を受信した場合(YES)、ステップS323に処理が進む。ステップS323では、動作状態制御部14は、当該起動したU-Plane処理サーバに休止要求を送信する。ステップS324では、動作状態制御部14は、当該停止モードのU-Plane処理サーバから、応答として休止完了通知を受信したか否か判断する。休止完了通知を受信していない場合(NO)、ステップS324が再び実行される。一方、休止完了通知を受信した場合(YES)、ステップS325に処理が進む。
ステップS325では、動作状態制御部14は、呼制御サーバ20に対し、当該U-Plane処理サーバが休止モードである旨を通知する。ステップS326では、動作状態制御部14は、サーバ管理テーブル19の当該U-Plane処理サーバの動作状態を停止モードから休止モードに変更してサーバ管理テーブル19を更新し、ステップS327で処理が終了する。
図19は、本発明の第1の実施形態に係る呼制御サーバ20が実行する休止準備処理の一実施形態を示すフローチャートである。休止準備処理は、抑止モードのU-Plane処理サーバを休止モードに移行させる前に実行される処理である。
図19に示す処理は、呼制御サーバ20がサーバ制御装置10から休止準備要求を受信することにより、ステップS400から開始する。休止準備要求には、休止準備要求である旨を示す要求コードと、抑止モードのU-Plane処理サーバの識別情報が含まれる。ステップS401では、呼制御サーバ20の制御部23が、ノード管理テーブル24を参照し、休止準備要求で指定された抑止モードのU-Plane処理サーバに対するノードの割り当てが有るか否か判断する。当該U-Plane処理サーバに対するノードの割り当てが無い場合(NO)、ステップS408に処理が進む。一方、当該U-Plane処理サーバに対するノードの割り当てが有る場合(YES)、ステップS402に処理が進む。
ステップS402では、制御部23は、サーバ管理テーブル25を参照して通常動作モードのU-Plane処理サーバを特定し、当該通常動作モードのU-Plane処理サーバにノード設定要求を送信する。ノード設定要求は、休止準備要求で指定された抑止モードのU-Plane処理サーバに割り当てられているノードを、当該通常動作モードのU-Plane処理サーバに設定するための要求である。
ステップS403では、制御部23は、当該通常動作モードのU-Plane処理サーバから、応答としてノード設定完了通知を受信したか否か判断する。ノード設定完了通知を受信していない場合(NO)、ステップS403が再び実行される。一方、ノード設定完了通知を受信した場合(YES)、ステップS404に処理が進む。
ステップS404では、制御部23は、パケット振分サーバ40に対し、パケットの振分先の変更を要求する振分先変更要求を送信する。ステップS405では、制御部23は、パケット振分サーバ40から、応答として振分先変更完了通知を受信したか否か判断する。振分先変更完了通知を受信していない場合(NO)、ステップS405が再び実行される。一方、振分先変更完了通知を受信した場合(YES)、ステップS406に処理が進む。
ステップS406では、制御部23は、抑止モードのU-Plane処理サーバに対し、当該U-Plane処理サーバに割り当てられているノードの削除を要求するノード削除要求を送信する。ステップS407では、制御部23は、当該抑止モードのU-Plane処理サーバからノード削除完了通知を受信したか否か判断する。ノード削除完了通知を受信していない場合(NO)、ステップS407が再び実行される。一方、ノード削除完了通知を受信した場合(YES)、ステップS408に処理が進む。ステップS408では、制御部23は、サーバ制御装置10に対し、休止準備処理が完了した旨を示す休止準備完了通知を送信し、ステップS409で処理が終了する。
図20は、図11に示すステップS102において予測対象の時間帯におけるサーバ数が不足すると判断した場合に、通信システム100において実行される一連の処理の一実施形態を示すシーケンス図である。なお、図20に示す例では、U-Plane処理サーバ301の動作状態は休止モードであり、U-Plane処理サーバ302、303の動作状態は停止モードであり、U-Plane処理サーバ304の動作状態は通常動作モードである。
サーバ制御装置10は、予測対象の時間帯におけるサーバ数が不足すると判断すると、休止モードのU-Plane処理サーバ301に対し、休止解除要求を送信する。U-Plane処理サーバ301は、休止解除要求を受信すると、休止解除処理を実行して通常動作モードに移行し、休止解除完了通知をサーバ制御装置10に送信する。サーバ制御装置10は、休止解除完了通知を受信すると、呼制御サーバ20に対し、U-Plane処理サーバ301の休止が解除された旨の休止解除通知を送信する。呼制御サーバ20は、休止解除通知を受信すると、サーバ管理テーブル25のU-Plane処理サーバ301の動作状態を休止モードから通常動作モードに変更する。
この時点で、予測対象の時間帯におけるサーバ数が未だ不足する場合、サーバ制御装置10は、停止モードのU-Plane処理サーバ302に対し、起動要求を送信する。U-Plane処理サーバ302は、起動要求を受信すると、起動処理を実行して通常動作モードに移行し、起動完了通知をサーバ制御装置10に送信する。サーバ制御装置10は、起動完了通知を受信すると、呼制御サーバ20に対し、U-Plane処理サーバ302が起動した旨の起動通知を送信する。呼制御サーバ20は、起動通知を受信すると、サーバ管理テーブル25のU-Plane処理サーバ302の動作状態を停止モードから通常動作モードに変更する。
この時点で、予測対象の時間帯におけるサーバ数に余裕が無い場合、サーバ制御装置10は、停止モードのU-Plane処理サーバ303に対し、起動要求を送信する。U-Plane処理サーバ303は、サーバ制御装置10から起動要求を受信すると、起動処理を実行して通常動作モードに移行し、起動完了通知をサーバ制御装置10に送信する。サーバ制御装置10は、U-Plane処理サーバ303から起動完了通知を受信すると、U-Plane処理サーバ303に休止要求を送信する。U-Plane処理サーバ303は、サーバ制御装置10から休止要求を受信すると、休止処理を実行して休止モードに移行し、休止完了通知をサーバ制御装置10に送信する。サーバ制御装置10は、U-Plane処理サーバ303から休止完了通知を受信すると、呼制御サーバ20に対し、U-Plane処理サーバ303が休止した旨の休止通知を送信する。呼制御サーバ20は、休止通知を受信すると、サーバ管理テーブル25のU-Plane処理サーバ303の動作状態を停止モードから休止モードに変更する。
図21および図22は、図11に示すステップS102において予測対象の時間帯におけるサーバ数が過剰であると判断した場合に、通信システム100において実行される一連の処理の一実施形態を示すシーケンス図である。なお、ここに示す例では、U-Plane処理サーバ301、302の当初の動作状態は通常動作モードであり、U-Plane処理サーバ303の当初の動作状態は抑止モードであり、U-Plane処理サーバ304の当初の動作状態は停止モードである。
サーバ制御装置10は、予測対象の時間帯におけるサーバ数が過剰であると判断すると、抑止モードのU-Plane処理サーバ303を休止モードに移行させるために、呼制御サーバ20に対し、U-Plane処理サーバ303の休止準備要求を送信する。呼制御サーバ20は、休止準備要求を受信すると、図19を参照して説明した休止準備処理を実行する。
具体的には、呼制御サーバ20は、サーバ管理テーブル25を参照して通常動作モードのU-Plane処理サーバ301を特定し、当該通常動作モードのU-Plane処理サーバ301にノード設定要求を送信する。ノード設定要求には、ノードを設定する旨の要求コードと、抑止モードのU-Plane処理サーバ303に割り当てられている全てのノードの識別情報が含まれる。U-Plane処理サーバ301は、ノード設定要求を受信すると、当該ノード設定要求で指定された全てのノードの識別情報をノード管理テーブル35に登録し、ノード設定完了通知を呼制御サーバ20に送信する。
呼制御サーバ20は、ノード設定完了通知を受信すると、振分先変更要求をパケット振分サーバ40に送信する。振分先変更要求は、抑止モードのU-Plane処理サーバ303に割り当てられているパケットの振分先を通常動作モードのU-Plane処理サーバ301に変更するための要求である。振分先変更要求には、パケットの振分先を変更する旨を示す要求コードと、抑止モードのU-Plane処理サーバ303の識別情報と、通常動作モードのU-Plane処理サーバ301の識別情報が含まれる。
パケット振分サーバ40は、振分先変更要求を受信すると、振分先情報テーブル44において抑止モードのU-Plane処理サーバ303の識別情報に関連付けられているノードの識別情報を削除すると共に、当該ノードの識別情報を、通常動作モードのU-Plane処理サーバ301の識別情報に関連付けて登録する。そして、パケット振分サーバ40は、振分先変更完了通知を呼制御サーバ20に送信する。
呼制御サーバ20は、振分先変更完了通知を受信すると、抑止モードのU-Plane処理サーバ303に対し、ノードの識別情報を削除する旨のノード削除要求を送信する。U-Plane処理サーバ303は、ノード削除要求を受信すると、ノード管理テーブル35に登録されている全てのノードの識別情報を削除し、ノード削除完了通知を呼制御サーバ20に送信する。呼制御サーバ20は、ノード削除完了通知を受信すると、休止準備完了通知をサーバ制御装置10に送信する。
サーバ制御装置10は、休止準備完了通知を受信すると、抑止モードのU-Plane処理サーバ303に対し、休止要求を送信する。U-Plane処理サーバ303は、休止要求を受信すると、休止処理を実行して休止モードに移行すると共に、休止完了通知をサーバ制御装置10に送信する。サーバ制御装置10は、休止完了通知を受信すると、呼制御サーバ20に対し、U-Plane処理サーバ303が休止した旨の休止通知を送信する。呼制御サーバ20は、休止通知を受信すると、サーバ管理テーブル25のU-Plane処理サーバ303の動作状態を抑止モードから休止モードに変更する。
この時点で、予測対象の時間帯におけるサーバ数が未だ過剰である場合、サーバ制御装置10は、呼制御サーバ20に抑止要求を送信する。呼制御サーバ20は、抑止要求を受信すると、通常動作モードのU-Plane処理サーバを抑止モードに移行させる抑止設定処理を実行する。抑止設定処理では、呼制御サーバ20の制御部23が、ノード管理テーブル24を参照し、ノードの識別情報が関連付けられている数が最も少ないU-Plane処理サーバ302、すなわち、割り当てられているノードの数が最も少ないU-Plane処理サーバ302の識別情報を特定する。次いで、制御部23は、サーバ管理テーブル25を参照し、割り当てられているノードの数が最も少ないU-Plane処理サーバの動作状態を抑止モードに変更し、サーバ制御装置10にU-Plane処理サーバ302を抑止モードにした旨の抑止完了通知を送信する。
この時点で、予測対象の時間帯におけるサーバ数に余裕が有る場合、図22に示すように、サーバ制御装置10は、休止モードのU-Plane処理サーバ303に停止要求を送信する。U-Plane処理サーバ303は、停止要求を受信すると、停止処理を実行して停止モードに移行し、停止完了通知をサーバ制御装置10に送信する。サーバ制御装置10は、停止完了通知を受信すると、呼制御サーバ20に対し、U-Plane処理サーバ303が停止した旨の停止通知を送信する。呼制御サーバ20は、停止通知を受信すると、サーバ管理テーブル25のU-Plane処理サーバ303の動作状態を休止モードから停止モードに変更する。
一方、予測対象の時間帯におけるサーバ数に余裕が無い場合、図22に示すように、サーバ制御装置10は、停止モードのU-Plane処理サーバ304に対し、起動要求を送信する。U-Plane処理サーバ304は、サーバ制御装置10から起動要求を受信すると、起動処理を実行して通常動作モードに移行し、起動完了通知をサーバ制御装置10に送信する。サーバ制御装置10は、U-Plane処理サーバ304から起動完了通知を受信すると、U-Plane処理サーバ304に休止要求を送信する。U-Plane処理サーバ304は、サーバ制御装置10から休止要求を受信すると、休止処理を実行して休止モードに移行し、休止完了通知をサーバ制御装置10に送信する。サーバ制御装置10は、U-Plane処理サーバ304から休止完了通知を受信すると、呼制御サーバ20に対し、U-Plane処理サーバ304が休止した旨の休止通知を送信する。呼制御サーバ20は、休止通知を受信すると、サーバ管理テーブル25のU-Plane処理サーバ304の動作状態を停止モードから休止モードに変更する。
図24および図25は、U-Plane処理サーバに輻輳が発生した場合に、サーバ制御装置10が実行する処理の一実施形態を示すフローチャートである。図24に示す処理は、サーバ制御装置10が輻輳の発生したU-Plane処理サーバから輻輳発生通知を受信することにより、ステップS500から開始する。輻輳発生通知には、輻輳が発生した旨を示すイベント情報と、当該U-Plane処理サーバの識別情報が含まれる。ステップS501では、サーバ制御装置10の動作状態制御部14が、サーバ管理テーブル19を参照し、当該U-Plane処理サーバの識別情報によって特定されるU-Plane処理サーバの動作状態を、通常動作モードから輻輳状態を示す情報に変更する。
ステップS502では、動作状態制御部14は、輻輳の発生したU-Plane処理サーバを指定して抑止要求を呼制御サーバ20に送信し、後述する抑止設定処理を実行させる。ステップS503では、動作状態制御部14は、呼制御サーバ20から抑止完了通知を受信したか否か判断する。抑止完了通知を受信していない場合(NO)、ステップS503が再び実行される。一方、抑止完了通知を受信した場合(YES)、ステップS504に処理が進む。
ステップS504では、予測サーバ数算出部13が、予測対象の時間帯における予測サーバ数を算出する。ステップS505では、サーバ数評価部15が、サーバ管理テーブル19に登録されている通常動作モードのU-Plane処理サーバの数と、ステップS504で算出した予測サーバ数とを用いてサーバ数評価値を算出し、サーバ数が不足するか否か判断する。
サーバ数が不足しない場合(NO)、ステップS506で処理が終了する。一方、サーバ数が不足する場合(YES)、ステップS507に処理が進む。ステップS507では、動作状態制御部14は、サーバ管理テーブル19を参照し、休止モードのU-Plane処理サーバが有るか否か判断する。休止モードのU-Plane処理サーバが無い場合(NO)、図25に示すステップS512に処理が進む。一方、休止モードのU-Plane処理サーバが有る場合(YES)、ステップS508に進む。
ステップS508では、動作状態制御部14は、休止モードのU-Plane処理サーバに休止解除要求を送信する。ステップS509では、動作状態制御部14は、当該休止モードのU-Plane処理サーバから、応答として休止解除完了通知を受信したか否か判断する。休止解除完了通知を受信していない場合(NO)、ステップS509が再び実行される。一方、休止解除完了通知を受信した場合(YES)、ステップS510に処理が進む。
ステップS510では、動作状態制御部14は、呼制御サーバ20に対し、当該U-Plane処理サーバの休止が解除された旨を通知する。ステップS511では、動作状態制御部14は、サーバ管理テーブル19の当該U-Plane処理サーバの動作状態を休止モードから通常動作モードに変更し、サーバ管理テーブル19を更新する。
図25に示すステップS512では、動作状態制御部14は、サーバ管理テーブル19を参照し、停止モードのU-Plane処理サーバが有るか否か判断する。停止モードのU-Plane処理サーバが無い場合(NO)、ステップS518で処理が終了する。一方、停止モードのU-Plane処理サーバが有る場合(YES)、ステップS513に進む。
ステップS513では、動作状態制御部14は、停止モードのU-Plane処理サーバに対し、起動要求を送信する。ステップS514では、動作状態制御部14は、当該停止モードのU-Plane処理サーバから、応答として起動完了通知を受信したか否か判断する。起動完了通知を受信していない場合(NO)、ステップS514が再び実行される。一方、起動完了通知を受信した場合(YES)、ステップS515に処理が進む。
ステップS515では、動作状態制御部14は、呼制御サーバ20に対し、当該U-Plane処理サーバが起動した旨を通知する。ステップS516では、動作状態制御部14は、サーバ管理テーブル19の当該U-Plane処理サーバの動作状態を停止モードから通常動作モードに変更し、サーバ管理テーブル19を更新する。ステップS517では、サーバ数評価部15は、サーバ管理テーブル19に登録されている通常動作モードのU-Plane処理サーバの数と、ステップS504で算出した予測サーバ数とを用いてサーバ評価値を算出し、サーバ数が不足するか否か判断する。サーバ数が不足すると判断した場合(YES)、ステップS512に処理が戻る。一方、サーバ数が不足しないと判断した場合(NO)、ステップS518で処理が終了する。
図26は、U-Plane処理サーバに輻輳が解消した場合に、サーバ制御装置10が実行する処理の一実施形態を示すフローチャートである。図26に示す処理は、サーバ制御装置10が、輻輳の解消したU-Plane処理サーバから輻輳終了通知を受信することにより、ステップS519から開始する。輻輳終了通知には、輻輳が解消した旨を示すイベント情報と、当該U-Plane処理サーバの識別情報が含まれる。ステップS520では、動作状態制御部14は、輻輳の解消したU-Plane処理サーバを指定して抑止解除要求を呼制御サーバ20に送信する。ステップS521では、動作状態制御部14は、当該呼制御サーバ20から、応答として抑止解除通知を受信したか否か判断する。抑止解除通知を受信していない場合(NO)、ステップS521が再び実行される。一方、抑止解除通知を受信した場合(YES)、ステップS522に処理が進む。ステップS522では、サーバ制御装置10の動作状態制御部14が、サーバ管理テーブル19を参照し、当該U-Plane処理サーバの識別情報によって特定されるU-Plane処理サーバの動作状態を、輻輳状態を示す情報から通常動作モードに変更し、ステップS523で処理が終了する。
図27は、輻輳が発生した場合に、通信システム100において実行される一連の処理の一実施形態を示すシーケンス図である。図27に示す例は、通常動作モードのU-Plane処理サーバ301に輻輳が発生した場合に、休止モードのU-Plane処理サーバ302および停止モードのU-Plane処理サーバ303を通常動作モードに移行させる処理を示す。
U-Plane処理サーバ301は、輻輳を検知すると、輻輳発生通知をサーバ制御装置10に送信する。サーバ制御装置10は、輻輳発生通知を受信すると、サーバ管理テーブル19を参照し、U-Plane処理サーバ301の動作状態を、通常動作モードから輻輳状態を示す情報に変更する。そして、サーバ制御装置10は、呼制御サーバ20に対し、当該U-Plane処理サーバ301を指定して抑止要求を送信する。呼制御サーバ20は、抑止要求を受信すると、抑止設定処理を実行する。抑止設定処理では、呼制御サーバ20の制御部23が、サーバ管理テーブル25を参照し、抑止要求で指定されたU-Plane処理サーバ301の動作状態を通常動作モードから抑止モードに変更し、サーバ制御装置10に抑止完了通知を送信する。
この時点で、予測対象の時間帯におけるサーバ数が不足する場合、サーバ制御装置10は、休止モードのU-Plane処理サーバ302に対し、休止解除要求を送信する。U-Plane処理サーバ302は、休止解除要求を受信すると、休止解除処理を実行して通常動作モードに移行し、休止解除完了通知をサーバ制御装置10に送信する。サーバ制御装置10は、休止解除完了通知を受信すると、呼制御サーバ20に対し、U-Plane処理サーバ302の休止が解除された旨の休止解除通知を送信する。呼制御サーバ20は、休止解除通知を受信すると、サーバ管理テーブル25のU-Plane処理サーバ302の動作状態を休止モードから通常動作モードに変更する。
この時点で、予測対象の時間帯におけるサーバ数が未だ不足する場合、サーバ制御装置10は、停止モードのU-Plane処理サーバ303に対し、起動要求を送信する。U-Plane処理サーバ303は、起動要求を受信すると、起動処理を実行して通常動作モードに移行し、起動完了通知をサーバ制御装置10に送信する。サーバ制御装置10は、起動完了通知を受信すると、呼制御サーバ20に対し、U-Plane処理サーバ303が起動した旨の起動通知を送信する。呼制御サーバ20は、起動通知を受信すると、サーバ管理テーブル25のU-Plane処理サーバ303の動作状態を停止モードから通常動作モードに変更する。
U-Plane処理サーバ301は、輻輳の終了を検知すると、輻輳終了通知をサーバ制御装置10に送信する。サーバ制御装置10は、輻輳終了通知を受信すると、U-Plane処理サーバ301の動作状態を、輻輳状態を示す情報から通常動作モードに変更する。そして、サーバ制御装置10は、呼制御サーバ20に対し、当該U-Plane処理サーバ301を指定して抑止解除要求を送信する。呼制御サーバ20は、抑止解除要求を受信すると、抑止解除処理を実行する。抑止解除処理では、呼制御サーバ20の制御部23が、サーバ管理テーブル25を参照し、抑止解除要求で指定されたU-Plane処理サーバ301の動作状態を、抑止モードから通常動作モードに変更し、サーバ制御装置10に抑止解除通知を送信する。
本発明の第1の実施形態は、以下の効果を奏する。第1の実施形態では、予測サーバ数算出部13が、現在の時間帯における最大必要サーバ数と、現在の時間帯に後続する予測対象の時間帯の予測変化量に基づいて予測サーバ数を算出する。その結果、現在のトラフィック情報を予測サーバ数に必ず反映させることができるため、サーバ数の予測精度を高めることができる。そして、この高精度の予測サーバ数に基づき、トラフィックを処理するU-Plane処理サーバの数を増減させるため、U-Plane処理サーバを過剰に稼働させることがなく、省電力効果を高めることができる。
また、第1の実施形態では、U-Plane処理サーバの動作状態として抑止モードを採用する。抑止モードでは、タスクの新たな割り当てが制限されるため、抑止モードのU-Plane処理サーバは、通常動作モードのU-Plane処理サーバに比べ、休止モードまたは停止モードに速やかに移行することができる。その結果、サーバ数が過剰であると判断した場合、抑止モードのU-Plane処理サーバが速やかに休止モードまたは停止モードに移行することができ、省電力効果をさらに高めることができる。
<第2の実施形態>
次に、図28を参照して、サーバ数が過剰であると判断した場合に実行される処理の第2の実施形態について説明する。第2の実施形態では、図11に示すステップS102においてサーバ数が過剰であると判断した場合に、サーバ数の過剰の度合に応じて、抑止モードのU-Plane処理サーバを休止モードまたは停止モードに移行させることを特徴とする。
図28に示すステップS600では、動作状態制御部14は、サーバ管理テーブル19を参照し、抑止モードのU-Plane処理サーバが有るか否か判断する。抑止モードのU-Plane処理サーバが無い場合(NO)、図16に示すステップS308に処理が進む。一方、抑止モードのU-Plane処理サーバが有る場合(YES)、ステップS601に進む。
ステップS601では、動作状態制御部14は、呼制御サーバ20に対し、休止準備要求を送信する。ステップS602では、動作状態制御部14は、呼制御サーバ20から、応答として休止準備完了通知を受信したか否か判断する。休止準備完了通知を受信していない場合(NO)、ステップS602が再び実行される。休止準備完了通知を受信した場合(YES)、ステップS603に処理が進む。
ステップS603では、動作状態制御部14は、サーバ数の過剰の度合に応じて、抑止モードのU-Plane処理サーバを休止モードまたは停止モードのいずれに移行させるべきか判断する。具体的には、サーバ評価値が1~2未満の場合には過剰の度合が小さく、2以上の場合には過剰の度合が大きいとする。すなわち、動作状態制御部14は、サーバ評価値が1~2未満の場合には休止モードに移行すべきと判断し、サーバ評価値が2以上の場合には停止モードに移行すべきと判断する。なお、サーバ数評価値の判断に使用する閾値は、これらに限定されるものではなく、サーバ数の過剰の度合を識別し得る限り、任意の値を使用することができる。
抑止モードのU-Plane処理サーバを休止モードに移行すべきと判断した場合、ステップS604に処理が進む。ステップS604では、動作状態制御部14は、抑止モードのU-Plane処理サーバに対し、休止要求を送信する。ステップS605では、動作状態制御部14は、当該抑止モードのU-Plane処理サーバから、応答として休止完了通知を受信したか否か判断する。休止完了通知を受信していない場合(NO)、ステップS605が再び実行される。一方、休止完了通知を受信した場合(YES)、ステップS606に処理が進む。
ステップS606では、動作状態制御部14は、呼制御サーバ20に対し、当該U-Plane処理サーバが休止した旨を通知する。ステップS607では、動作状態制御部14は、サーバ管理テーブル19の当該U-Plane処理サーバの動作状態を抑止モードから休止モードに変更し、サーバ管理テーブル19を更新する。
一方、ステップS603において抑止モードのU-Plane処理サーバを停止モードに移行すべきと判断した場合、ステップS608に処理が進む。ステップS608では、動作状態制御部14は、抑止モードのU-Plane処理サーバに対し、停止要求を送信する。ステップS609では、動作状態制御部14は、当該抑止モードのU-Plane処理サーバから、応答として停止完了通知を受信したか否か判断する。停止完了通知を受信していない場合(NO)、ステップS609が再び実行される。一方、停止完了通知を受信した場合(YES)、ステップS610に処理が進む。
ステップS610では、動作状態制御部14は、呼制御サーバ20に対し、当該U-Plane処理サーバが停止した旨を通知する。ステップS611では、動作状態制御部14は、サーバ管理テーブル19の当該U-Plane処理サーバの動作状態を抑止モードから停止モードに変更し、サーバ管理テーブル19を更新する。
ステップS612では、サーバ数評価部15は、サーバ管理テーブル19と予測サーバ数を参照し、サーバ数が過剰であるか否か判断する。サーバ数が過剰であると判断した場合(YES)、ステップS600に処理が戻る。一方、サーバ数が過剰ではないと判断した場合(NO)、図17に示すステップS313に処理が進む。
本発明の第2の実施形態は、第1の実施形態の効果に加えて、以下の効果を奏する。第2の実施形態では、動作状態制御部14は、サーバ数の過剰の度合に応じて、抑止モードのU-Plane処理サーバを休止モードまたは停止モードのいずれに移行させるべきか判断する。そして、サーバ数の過剰の度合が大きい場合、抑止モードのU-Plane処理サーバを、休止モードではなく停止モードに移行させる。このため、抑止モードのU-Plane処理サーバを速やかに停止させることができ、省電力効果をさらに高めることができる。
上述の例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに提供することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えば、フレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば、光磁気ディスク)、CD-ROM、CD-R、CD-R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM)を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに提供されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
<その他の実施形態>
本発明は、上述した実施形態に限られたものではなく、本発明の趣旨を逸脱しない範囲で適宜変更することができる。例えば、上述した実施形態では、呼制御サーバ20とパケット振分サーバ40を個別のサーバとして説明しているが、これらのサーバを1のサーバに統合してもよい。また、サーバ制御装置10、呼制御サーバ20およびパケット振分サーバ40を1のサーバに統合してもよい。さらに、サーバ制御装置10の機能を呼制御サーバ20またはパケット振分サーバ40に実装してもよい。さらに、上述した実施形態では、U-Plane処理サーバが、ノードの送信したパケットを処理するが、ノードの送信したパケットを処理するサーバは、U-Plane処理サーバに限定されるものではなく、他の様々なデータ処理サーバを使用することができる。