図1は、実施例に係る呼処理システムを示す構成図である。呼処理システムは、呼処理を行う呼処理サーバ(#1)(第1呼処理装置)1a及び呼処理サーバ(#2)(第2呼処理装置)1bと、呼処理サーバ1a,1bに呼信号Sを転送する呼信号振り分けサーバ(呼制御装置)3とを有する。
呼処理システムは、ネットワークNWを介して複数の端末装置5と接続され、複数組の端末装置5間で行われる複数のセッションの呼信号Sを中継する。各セッションは、例えばSIPに従って行われる。なお、本実施例では、呼処理システムとして、IP電話システムを挙げるが、以下の内容は、他種の通信システムに適用されてもよい。
端末装置5は、例えばスマートフォンや携帯電話機であり、呼処理システムを介して、他の端末装置5と呼信号Sを送受信することにより、SIPに従って他の端末装置5とセッションを確立し、通話処理を行う。呼信号Sは、例えば、セッションを識別するためのCALL−ID(識別番号)、宛先を示す宛先タグ(宛先番号)、SIPに規定された各種の制御メッセージ、及び音声データなどを含む。なお、制御メッセージとしては、例えば、通話の開始を指示する「INVITE」メッセージや、通話の終了を指示する「BYE」メッセージが挙げられる。
呼処理サーバ(#1,#2)1a,1bは、例えばSIPサーバであり、呼信号振り分けサーバ3から呼信号Sが転送されたとき、呼処理を行う。呼処理サーバ1a,1bは、例えば、呼信号Sの宛先タグをIPアドレスに対応付けることにより、端末装置5間において呼信号Sを中継する。
呼処理サーバ1a,1bは、それぞれ、動作状態を規定する動作モードとして、「ACT」(運用系モード)及び「SBY」(予備系モード)を有する。動作モードが「ACT」である場合、呼処理は行われるが、動作モードが「SBY」である場合、呼処理は行われない。呼処理サーバ1a,1bの動作モードは、それぞれ、「ACT」及び「SBY」である。このため、呼処理サーバ(#1)1aは、運用系として動作し、呼処理サーバ(#2)1bは、予備系として動作する。
呼処理サーバ1a,1bは、メモリ(第1及び第2記憶部)2a,2bをそれぞれ有する。運用系の呼処理サーバ(#1)1aは、呼信号振り分けサーバ3から転送された呼信号Sの複数のセッションに関する呼情報を、複数のセッションを管理するためのセッション管理テーブル20aとしてメモリ(第1記憶部)2aに記憶する。
呼処理サーバ(#1)1aは、セッション管理テーブル20aに基づいて呼処理を行う。セッション管理テーブル20aには、CALL−IDごとに当該セッションの状態(「登録中」、「呼出中」、「着信中」など)が登録されている。呼処理サーバ(#1)1aは、呼信号Sに含まれる制御メッセージに基づいて各セッションの状態を判定し、セッション管理テーブル20aに登録する。
呼処理サーバ(#1)1aは、メモリ2aに記憶されたセッション管理テーブル20aを、予備系の呼処理サーバ(#2)1bに設けられたメモリ2bにコピーする。これにより、メモリ2a内のセッション管理テーブル20aとメモリ2b内のセッション管理テーブル20bは、同一内容となる。
後述するように、予備系の呼処理サーバ(#2)1bは、運用系の呼処理サーバ(#1)1aにおいて呼処理の輻輳が発生したとき、動作モードを「ACT」に変更する。そして、予備系の呼処理サーバ(#2)1bは、メモリ2bにコピーされたセッション管理テーブル20aに登録された複数のセッションのうち、一部のセッションに関する呼処理を開始する。
呼処理サーバ1a,1b及び呼信号振り分けサーバ3は、例えばレイヤ2スイッチやバスなどを介して互いに接続されて通信する。呼信号振り分けサーバ3は、複数の端末装置5からネットワークNWを介して複数のセッションの呼信号Sを受信し、呼処理サーバ(#1)1aに転送する。また、呼信号振り分けサーバ3は、呼処理サーバ(#1)1aから受信した呼信号Sを、ネットワークNWを介して、宛先の端末装置5に転送する。
呼信号振り分けサーバ3は、振り分けルールテーブル40が記憶されたメモリ4を有する。呼信号振り分けサーバ3は、振り分けルールテーブル40に従って、呼信号Sを呼処理サーバ1a,1bに振り分ける。
振り分けルールテーブル40には、呼信号SのCALL−IDごとに、該呼信号Sの転送先の呼処理サーバ1a,1bのIPアドレスが登録されている。つまり、振り分けルールテーブル40には、CALL−ID及びIPアドレスが対応付けられて登録されている。なお、本実施例において、呼処理サーバ1a,1bのIPアドレスは、それぞれ、「192.168.1.1」及び「192.168.1.2」とする。
振り分けルールテーブル40には、全てのCALL−IDの転送先として、運用系の呼処理サーバ(#1)1aのIPアドレス「192.168.1.1」が登録されている。このため、呼信号振り分けサーバ3は、全ての呼信号Sを運用系の呼処理サーバ(#1)1aに転送する。
このように、運用系の呼処理サーバ(#1)1aは、呼信号振り分けサーバ3から転送された呼信号の複数のセッションに関する呼情報をメモリ2aに記憶し、記憶された呼情報に基づいて呼処理を行う。一方、予備系の呼処理サーバ(#2)1bは、運用系の呼処理サーバ(#1)1aからメモリ2bに呼情報がコピーされる。以下に、通常時、つまり運用系の呼処理サーバ(#1)1aで呼処理の輻輳が発生していない場合の呼処理システムの動作を述べる。
図2は、呼処理システムの通常時の動作を示すラダーチャートである。呼信号振り分けサーバ3は、振り分けルールテーブル40に従って、全てのCALL−IDの呼信号Sを呼処理サーバ(#1)1aに転送する(符号SQ1)。
次に、呼処理サーバ(#1)1aは、呼信号振り分けサーバ3から転送された呼信号Sのセッションに関する呼情報をメモリ2aに記憶する(符号SQ2)。このとき、呼信号SのCALL−IDが、セッション管理テーブル20aに登録済みである場合、当該セッション状態が更新され、呼信号SのCALL−IDが、セッション管理テーブル20aに未登録である場合、セッション状態が新たに登録される。次に、呼処理サーバ(#1)1aは、メモリ2aに記憶された呼情報に基づいて呼処理を行う(符号SQ3)。
次に、呼処理サーバ(#1)1aは、メモリコピー処理を行う(符号SQ4)。このとき、呼処理サーバ(#1)1aは、メモリ2aに記憶された全ての呼情報の複製を生成して、呼処理サーバ(#2)1bに送信する。呼処理サーバ(#2)1bは、呼処理サーバ(#1)1aから受信した呼情報の複製を、メモリ2bに記憶する(符号SQ5)。これにより、メモリ2a内のセッション管理テーブル20aとメモリ2b内のセッション管理テーブル20bは、同一内容となる(図1参照)。
このようにして、呼処理システムは、通常時の動作を行う。なお、メモリコピー処理SQ4は、呼信号Sが転送されるたびに行われてもよいし、一定の時間間隔をおいて周期的に行われてもよい。
図1及び図2を参照して述べたように、運用系の呼処理サーバ(#1)1aにおいて呼処理の輻輳が発生していない場合、呼信号振り分けサーバ3は、全てのCALL−IDの呼信号Sを呼処理サーバ(#1)1aに転送する。呼処理サーバ(#1)1aは、転送された呼信号Sの複数のセッションに関する呼情報をメモリ2aに記憶し、メモリ2aに記憶した呼情報に基づいて呼処理を行う。
一方、予備系の呼処理サーバ(#2)1bは、呼処理を行わず、呼処理サーバ(#1)1aから呼処理対象の複数のセッションに関する呼情報が、メモリ2bにコピーされる。呼処理サーバ(#2)1bは、以下に述べるように、呼処理サーバ(#1)1aにおいて呼処理の輻輳が発生した場合、コピーされた複数のセッションに関する呼情報のうち、一部のセッションの呼情報に基づいて呼処理を行う。すなわち、呼処理サーバ(#2)1bは、呼処理サーバ(#1)1aの呼処理の一部を引き継ぐことにより、呼処理サーバ(#1)1aの負荷を低減する。
図3は、輻輳発生時の呼処理システムを示す構成図である。運用系の呼処理サーバ(#1)1aは、呼処理を行うCPU(Central Processing Unit)の使用率を監視し、使用率が所定の閾値thを上回った場合、輻輳の発生を検出する。呼処理サーバ(#1)1aは、輻輳の発生を、予備系の呼処理サーバ(#2)1b及び呼信号振り分けサーバ3に通知する。
運用系の呼処理サーバ(#1)1aは、呼処理の輻輳が発生したとき、呼処理対象の複数のセッションのうち、第1グループ(所定のグループ)に属さないセッションをメモリ2aから消去する。つまり、呼処理サーバ1aは、セッション管理テーブル20bに登録されている複数のセッションのうち、第2グループに属するセッションに関する呼情報を消去する。ここで、第1及び第2グループは、呼処理対象の全セッションを、呼処理サーバ1a,1bの各々が担当する2グループに分けたものである。
各セッションが属するグループは、例えばCALL−IDに基づいて決定される。CALL−IDが奇数であるセッションは、第1グループに属し、CALL−IDが偶数であるセッションは、第2グループに属する。なお、上記のグループ分けとは逆に、第1グループには、CALL−IDが偶数であるセッションが属し、第2グループには、CALL−IDが奇数であるセッションが属してもよい。
このため、本例において、呼処理サーバ1aは、メモリコピー処理を停止した後、メモリ2aに記憶されたCALL−ID「8000001」〜「8000004」の呼情報(図1参照)のうち、CALL−ID「8000002」,「8000004」の呼情報を、メモリ2aから消去する。これにより、セッション管理テーブル20aは、奇数のCALL−ID「8000001」,「8000003」,・・・のセッションだけが登録された状態となる。なお、図3には、消去された呼情報がハイフン(「−」)で示されている。
さらに、呼処理サーバ1aは、第1グループに属するセッションの呼信号Sが呼処理サーバ(#2)1bに転送されるように、呼信号振り分けサーバ3を制御する。より具体的には、呼処理サーバ1aは、第1及び第2グループに基づく呼信号Sの振り分けルールを呼信号振り分けサーバ3に通知する。
これにより、呼信号振り分けサーバ3は、CALL−IDが奇数であるセッションの呼信号Sが呼処理サーバ(#1)1aに、CALL−IDが偶数であるセッションの呼信号Sが呼処理サーバ(#2)1bに振り分けられるように、振り分けルールテーブル40を更新する。つまり、振り分けルールテーブル40において、CALL−ID「8000001」,「8000003」,・・・はIPアドレス「192.168.1.1」に割り当てられ、CALL−ID「8000002」,「8000004」,・・・はIPアドレス「192.168.1.2」に割り当てられる。
また、予備系の呼処理サーバ(#2)1bは、運用系の呼処理サーバ(#1)1aから輻輳の発生が通知されたとき、セッション管理テーブル20bに登録されている複数のセッションのうち、第1グループに属するセッションに関する呼情報をメモリ2bから消去する。このため、セッション管理テーブル20bは、偶数のCALL−ID「8000002」,「8000004」,・・・のセッションだけが登録された状態となる。本実施例では、CALL−IDが奇数及び偶数の何れであるかに応じて、セッションのグループ分けを行うため、メモリ2a,2bから消去される呼情報の検出が容易である。
予備系の呼処理サーバ(#2)1bは、運用系の呼処理サーバ(#1)1aから輻輳の発生が通知されたとき、動作モードを「SBY」から「ACT」に切り替える。これにより、呼処理サーバ1bは、メモリ2bに記憶された呼情報に基づいて呼処理を開始する。
図4は、呼処理システムの輻輳発生時の動作を示すラダーチャートである。運用系の呼処理サーバ(#1)1aは、CPU使用率に基づいて呼処理の輻輳の発生を検出すると(符号SQ11)、輻輳の発生を、予備系の呼処理サーバ(#2)1b及び呼信号振り分けサーバ3に通知する(符号SQ12,SQ28)。
呼信号振り分けサーバ3は、呼信号Sの転送を停止し(符号SQ13)、転送処理の停止完了を呼処理サーバ(#1)1aに通知する(符号SQ14)。呼信号振り分けサーバ3は、転送処理の停止中、呼信号Sをメモリに一時的に格納する。
また、呼処理サーバ(#2)1bは、輻輳の発生が通知されると、動作モードを「SBY」から「ACT」に切り替えて(符号SQ15)、動作モードの切り替え完了を呼処理サーバ(#1)1aに通知する(符号SQ16)。
次に、呼処理サーバ(#1)1aは、メモリコピー処理を停止し(符号SQ17)、偶数のCALL−IDのセッションに関する呼情報を、メモリ2aから消去する(符号SQ18)。また、呼処理サーバ(#2)1bは、奇数のCALL−IDのセッションに関する呼情報を、メモリ2bから消去し(符号SQ19)、メモリ2bの更新完了を呼処理サーバ(#1)1aに通知する(符号SQ20)。
呼処理サーバ(#1)1aは、呼処理サーバ(#2)1bから更新完了通知を受けると、応答を返す(符号SQ21)。次に、呼処理サーバ(#1)1aは、呼信号振り分けサーバ3に呼信号Sの振り分けルールを通知する(符号SQ22)。呼処理サーバ(#1)1aは、振り分けルールとして、例えば振り分けルールテーブル40のデータを呼信号振り分けサーバ3に送信する。
呼信号振り分けサーバ3は、通知された振り分けルールをメモリ4に格納して(符号SQ23)、呼処理サーバ(#1)1aに応答を返す(符号SQ24)。つまり、呼信号振り分けサーバ3は、通知された振り分けルールに基づいて、メモリ4内の振り分けルールテーブル40を更新する。
次に、呼信号振り分けサーバ3は、振り分けルールテーブル40に基づき、呼信号Sの転送を再開する(符号SQ25)。つまり、呼信号振り分けサーバ3は、奇数のCALL−IDのセッションの呼信号Sを呼処理サーバ(#1)1aに転送し、偶数のCALL−IDのセッションの呼信号Sを呼処理サーバ(#2)1bに転送する。
また、呼信号振り分けサーバ3は、セッション管理テーブル20a,20bに登録されていない新規のセッションの呼信号Sも、同様の振り分けルールに基づいて転送する。このとき、呼信号振り分けサーバ3は、奇数のCALL−IDを呼処理サーバ(#1)1aのIPアドレス「192.168.1.1」に割り当て、偶数のCALL−IDを呼処理サーバ(#2)1bのIPアドレス「192.168.1.2」に割り当てて、振り分けルールテーブル40に登録する。
呼処理サーバ(#1)1aは、呼信号Sが転送されると、メモリ2aに記憶されたセッションに関する呼情報に基づいて呼処理を行う(符号SQ26)。このとき、メモリ2a内のセッション管理テーブル20aには、奇数のCALL−IDのセッションに関する呼情報のみが登録されているので、呼処理サーバ(#1)1aは、呼処理の負荷が低減される。
また、呼処理サーバ(#2)1bは、呼信号Sが転送されると、メモリ2bに記憶されたセッションに関する呼情報に基づいて呼処理を開始する(符号SQ27)。このとき、メモリ2b内のセッション管理テーブル20bには、偶数のCALL−IDのセッションに関する呼情報のみが登録されている。したがって、呼処理サーバ(#2)1bは、呼処理サーバ(#1)1aが呼処理対象としたセッションうち、偶数のCALL−IDのセッションの呼処理を引き継ぐ。
このように、運用系の呼処理サーバ(#1)1aにおいて、呼処理の輻輳が発生した場合、呼処理サーバ1aは、メモリ2aに記憶された複数のセッションのうち、偶数のCALL−IDのセッションの呼情報をメモリ2aから消去する。これにより、呼処理サーバ1aの呼処理の負荷が低減される。さらに、呼信号振り分けサーバ3は、呼処理サーバ1aの制御に応じて、奇数のCALL−IDのセッションの呼信号Sを呼処理サーバ1aに転送し、偶数のCALL−IDのセッションの呼信号Sを呼処理サーバ1bに転送する。
また、予備系の呼処理サーバ(#2)1bは、メモリ2bに記憶された複数のセッションのうち、奇数のCALL−IDのセッションの呼情報をメモリ2bから消去する。これにより、呼処理サーバ1bは、呼処理サーバ(#1)1aが呼処理対象としたセッションうち、偶数のCALL−IDのセッションの呼処理を引き継ぐ。
したがって、本実施例によると、呼処理サーバ(#2)1bは、上記の特許文献1とは異なり、ネットワークNWに信号を送信することなく、呼処理対象のセッションの一部に関する呼情報に基づいて、呼処理サーバ(#1)1aの呼処理を引き継ぐことができる。よって、本実施例によると、通信品質を劣化させることなく、効果的な負荷分散が可能である。
呼処理サーバ(#1)1aは、上述した呼処理方法によって輻輳が解消されると、以下に述べるように、呼処理サーバ(#2)1bが呼処理中の全てのセッションが終了したとき、呼処理サーバ(#2)1bの動作モードを「ACT」から「SBY」に変更する。
図5は、輻輳解消時の呼処理システムを示す構成図である。呼処理サーバ(#1)1aは、CPUの使用率が所定の閾値th以下になった場合、輻輳の解消を検出する。呼処理サーバ(#1)1aは、輻輳の解消を検出すると、呼信号振り分けサーバ3に、新たな振り分けルールを通知する。
新たな振り分けルールでは、輻輳の解消後に生成された新規のセッションの呼信号Sは、CALL−IDとは無関係に呼処理サーバ(#1)1aに転送される。つまり、輻輳の解消前から存在するセッションの呼信号は、輻輳の発生時と同様に、CALL−IDが奇数であるか偶数であるかに従って、呼処理サーバ1a,1bに振り分けられる。しかし、輻輳の解消後に生成された新規のセッションの呼信号Sは、CALL−IDが偶数である場合でも、呼処理サーバ1aに転送される。
図5の例では、呼処理サーバ(#1)1aのセッション管理テーブル20aには、既存のセッションとして、CALL−ID「8000001」のセッションが登録され、新規のセッションとして、CALL−ID「8000020」のセッションが登録されている。一方、呼処理サーバ(#2)1bのセッション管理テーブル20bには、既存のセッションとして、CALL−ID「8000002」のセッションが登録されている。
呼処理サーバ(#2)1bは、セッション管理テーブル20bに登録された全てのセッションの呼処理が完了すると、動作モードを「ACT」から「SBY」に変更し、呼処理を停止する。これにより、呼処理サーバ(#2)1bは、再び予備系として動作する。
図6は、呼処理システムの輻輳解消時の動作を示すラダーチャートである。呼処理サーバ(#2)1bは、呼処理サーバ(#1)1aに自己のCPUの使用率を通知する(符号SQ31)。呼処理サーバ(#1)1aは、呼処理サーバ(#2)1bのCPUの使用率通知を受けると、呼処理サーバ(#2)1bに応答を返す(符号SQ32)。
呼処理サーバ(#1)1aは、自己のCPUの使用率と呼処理サーバ(#2)1bのCPUの使用率の合計が所定の閾値th以下であれば、輻輳の解消を検出する(符号SQ33)。呼処理サーバ(#1)1aは、輻輳の解消を検出すると、呼信号振り分けサーバ3に、呼信号Sの新たな振り分けルールを通知する(符号SQ34)。
呼信号振り分けサーバ3は、通知された新たな振り分けルールをメモリ4に格納して(符号SQ35)、呼処理サーバ(#1)1aに応答を返す(符号SQ36)。つまり、呼信号振り分けサーバ3は、通知された新たな振り分けルールに基づいて、メモリ4内の振り分けルールテーブル40を更新する。
次に、呼信号振り分けサーバ3は、振り分けルールテーブル40に基づき、呼信号Sを転送する(符号SQ37)。つまり、呼信号振り分けサーバ3は、奇数のCALL−IDの既存のセッションの呼信号Sを呼処理サーバ(#1)1aに転送し、偶数のCALL−IDの既存のセッションの呼信号Sを呼処理サーバ(#2)1bに転送する。また、呼信号振り分けサーバ3は、新規のセッションの呼信号Sを、CALL−IDに関わらず、呼処理サーバ(#1)1aに転送する。
呼処理サーバ(#1)1aは、呼信号Sが転送されると、メモリ2aに記憶されたセッションに関する呼情報に基づいて呼処理を行う(符号SQ38)。また、呼処理サーバ(#2)1bは、呼信号Sが転送されると、メモリ2bに記憶されたセッションに関する呼情報に基づいて呼処理を行い、全てのセッションの呼処理を終了すると(符号SQ39)、呼処理サーバ1aに呼処理の完了を通知する(符号SQ40)。
呼処理サーバ(#1)1aは、呼処理の完了通知を受けると、呼処理サーバ(#2)1bに応答を返す(符号SQ41)。次に、呼処理サーバ(#2)1bは、動作モードを「ACT」から「SBY」に切り替えて(符号SQ42)、動作モードの切り替え完了を呼処理サーバ(#1)1aに通知する(符号SQ43)。これにより、呼処理サーバ(#2)1bは、再び予備系として動作する。
呼処理サーバ(#1)1aは、動作モードの切り替え完了の通知を受けると、呼処理サーバ(#2)1bに応答を返す(符号SQ44)。次に、呼処理サーバ(#1)1aは、メモリコピー処理を再開する(符号SQ45)。このとき、呼処理サーバ(#1)1aは、メモリ2aに記憶された全ての呼情報の複製を生成して、呼処理サーバ(#2)1bに送信する。
呼処理サーバ(#2)1bは、呼処理サーバ(#1)1aから受信した呼情報の複製を、メモリ2bに記憶する(符号SQ46)。これにより、メモリ2a内のセッション管理テーブル20aとメモリ2b内のセッション管理テーブル20bは、再び同一内容となる(図1参照)。
次に、呼処理サーバ1a,1b及び呼信号振り分けサーバ3の構成及び動作を説明する。
図7は、呼処理サーバ(#1)1aの機能構成を示す構成図である。呼処理サーバ(#1)1aは、CPU10a、メモリ2a、及び通信処理部11aを有する。
通信処理部11aは、他装置との通信手段であり、例えばNIC(Network Interface Card)である。メモリ2aは、上述したように、呼信号振り分けサーバ3から転送された呼信号Sの複数のセッションに関する呼情報を、セッション管理テーブル20aとして記憶する。
CPU10aは、プログラムに従って動作する演算処理手段である。CPU10aは、プログラムが実行されると、複数の機能が形成される。すなわち、CPU10aは、輻輳検出部101aと、呼処理部102aと、制御部103aと、コピー処理部(複製部)104aとを有する。なお、呼処理サーバ(#1)1aとしては、ソフトウェアにより動作するものに限定されず、CPU10a以外の特定用途向け集積回路などのハードウェアが用いられてもよい。
輻輳検出部101aは、CPU10aの使用率が所定の閾値thを上回った場合、輻輳の発生を検出する。輻輳検出部101aは、例えば、呼処理部102aの状態を収集することで、CPU10aの使用率を算出する。輻輳検出部101aは、輻輳の発生を、制御部103aに通知するとともに、通信書影部11aを介して予備系の呼処理サーバ(#2)1b及び呼信号振り分けサーバ3にも通知する。
また、輻輳検出部101aは、輻輳の発生時、呼処理サーバ(#2)1bから通信処理部11aを介して、呼処理サーバ(#2)1bのCPU10b(図9参照)の使用率を取得する。輻輳検出部101aは、呼処理サーバ1a,1bの各CPU10a,10bの使用率の合計が、所定の閾値th以下である場合、輻輳の解消を検出する。輻輳検出部101aは、輻輳の発生を制御部103aに通知する。
呼処理部102aは、メモリ2aに記憶された呼情報、つまりセッション管理テーブル20aに基づいて呼処理を行う。呼処理部102aは、呼信号振り分けサーバ3から転送された呼信号Sを受信し、呼信号Sの複数のセッションに関する呼情報をメモリ2aに記憶する。
コピー処理部104aは、メモリ2aに記憶された呼情報を呼処理サーバ2bにコピーする。より具体的には、コピー処理部104aは、メモリ2aからセッション管理テーブル20aを読み出し、通信処理部11aを介して呼処理サーバ2bに、コピーの指示とともに送信する。
制御部103aは、呼処理サーバ(#2)1b及び呼信号振り分けサーバ3と通知や応答を送受信し(図4及び図6参照)、図8(a)に示された状態パラメータに基づいて、呼処理サーバ(#1)1aの動作を制御する。状態パラメータは、動作モード(ACT/SBY)、呼処理状態(通常/輻輳)、及びメモリコピー状態(実行中/停止中)を含む。なお、状態パラメータの内容は、呼処理サーバ1a,1b間で共通である。
動作モードは、上述したように、呼処理サーバ1bの場合、呼処理サーバ1aとの通信に基づいて、「ACT」または「SBY」に切り替えられる。動作モードが「SBY」である場合、制御部103aは、呼処理を停止する。
メモリコピー状態は、呼処理サーバ1a,1b間の通信に基づいて、「実行中」または「停止中」に切り替えられる。メモリコピー状態が「停止中」である場合、コピー処理部104aは、メモリコピー処理を停止する。
呼処理状態は、輻輳検出部101aの検出結果に応じて、「通常」または「輻輳」に切り替えられる。制御部103aは、呼処理状態が「輻輳」である場合、セッション管理テーブル20aに登録された複数のセッションのうち、第1グループに属さないセッション(第2グループのセッション)に関する呼情報をメモリ2aから消去する。
つまり、制御部103aは、偶数のCALL−IDのセッションに関する呼情報をメモリ2aから消去する。言い換えると、メモリ2a内のアドレスのうち、偶数のCALL−IDのセッションに関する呼情報が書き込まれたアドレスが開放される。
このため、呼処理の輻輳が発生したとき、メモリ2aには、呼処理対象とした複数のセッションのうち、第1グループに属するセッションに関する呼情報のみが記憶されているので、呼処理部102aは、第1グループに属するセッションの呼処理のみを行う。これにより、呼処理部102aの負荷が低減される。
さらに、制御部103aは、呼処理状態が「輻輳」である場合、第1グループに属さないセッション(第2グループのセッション)の呼信号Sが呼処理サーバ(#2)1bに転送されるように呼信号振り分けサーバ3を制御する。つまり、制御部103aは、通信処理部11aを介して、呼信号Sの振り分けルールを呼信号振り分けサーバ3に通知する。これにより、第2グループのセッションの呼処理が、呼処理サーバ(#2)1bに引き継がれる。
また、図9は、呼処理サーバ(#2)1bの機能構成を示す構成図である。呼処理サーバ(#2)1bは、CPU10b、メモリ2b、及び通信処理部11bを有する。
通信処理部11bは、他装置との通信手段であり、例えばNICである。また、メモリ2bには、上述したように、呼処理サーバ(#1)1aから呼情報がコピーされる。すなわち、メモリ2bは、呼信号振り分けサーバ3から呼処理サーバ1aに転送された呼信号の複数のセッションに関する呼情報を、セッション管理テーブル20bとして記憶する。
CPU10bは、プログラムに従って動作する演算処理手段である。CPU10bは、プログラムが実行されると、複数の機能が形成される。すなわち、CPU10bは、輻輳検出部101bと、呼処理部102bと、制御部103bと、コピー処理部(記憶処理部)104bとを有する。なお、呼処理サーバ(#2)1bとしては、ソフトウェアにより動作するものに限定されず、CPU10b以外の特定用途向け集積回路などのハードウェアが用いられてもよい。
制御部103bは、呼処理サーバ(#1)1a及び呼信号振り分けサーバ3と通知や応答を送受信し(図4及び図6参照)、図8(a)に示された状態パラメータに基づいて、呼処理サーバ(#1)1aの動作を制御する。状態パラメータについては、上述した通りである。
輻輳検出部101bは、呼処理サーバ(#1)1aから通信処理部11aを介して、輻輳発生の通知を受信する。輻輳検出部101bは、輻輳の発生を制御部103bに通知する。制御部103bは、呼処理サーバ(#1)1aにおいて呼処理の輻輳が発生したとき、該呼処理対象の複数のセッションのうち、第1グループに属するセッションに関する呼情報をメモリ2bから消去する。
また、コピー処理部104bは、呼信号振り分けサーバ3から呼処理サーバ(#1)1aに転送された呼信号Sの複数のセッションに関する呼情報を、呼処理サーバ(#1)1aから受信してメモリ2aに記憶させる。つまり、コピー処理部104bは、呼処理サーバ(#1)1aから送信された呼情報を受信して、メモリ2bに書き込む。
制御部103bは、呼処理サーバ(#1)1aにおいて呼処理の輻輳が発生したとき、メモリコピー状態(図8(a)参照)を「実行中」から「停止中」に変更する。これにより、コピー処理部104bは、動作を停止する。
また、制御部103bは、呼処理サーバ(#1)1aにおいて呼処理の輻輳が発生したとき、動作モードを「SBY」から「ACT」に変更する。これにより、呼処理部102bは、呼信号振り分けサーバ3から第1グループに属さないセッション(第2グループに属するセッション)の呼信号Sが転送されて、メモリ2bに記憶された呼情報に基づいて呼処理を開始する。したがって、呼処理部102bは、呼処理サーバ(#1)1aから、偶数のCALL−IDのセッションの呼処理を引き継ぐことができる。
図10は、呼信号振り分けサーバ3の機能構成を示す構成図である。呼信号振り分けサーバ3は、CPU30、メモリ4、及び通信処理部31を有する。
通信処理部31は、他装置との通信手段であり、例えばNICである。メモリ4は、上述したように、振り分けルールテーブル40を記憶する。また、メモリ4には、呼信号振り分けサーバ3が呼信号Sの転送を停止した場合に呼信号Sを格納する呼信号格納領域41が形成されている。
CPU30は、プログラムに従って動作する演算処理手段である。CPU30は、プログラムが実行されると、複数の機能が形成される。すなわち、CPU30は、転送処理部301と、制御部302とを有する。なお、呼信号振り分けサーバ3としては、ソフトウェアにより動作するものに限定されず、CPU30以外の特定用途向け集積回路などのハードウェアが用いられてもよい。
転送処理部301は、呼処理サーバ1a,1bから通信処理部31を介して受信した呼信号Sを、ネットワークNWを介して端末装置5に転送する。また、転送処理部301は、端末装置5から通信処理部31を介して受信した呼信号Sを、振り分けルールテーブル40に基づいて、呼処理サーバ1a,1bに転送する。
制御部302は、呼処理サーバ1a,1bと通知や応答を送受信し(図4及び図6参照)、図8(b)に示された状態パラメータに基づいて転送処理部301を制御する。状態パラメータは、転送処理状態(実行中/停止中)を含む。
制御部302は、呼処理サーバ1aから輻輳の発生が通知された場合、転送処理状態を「実行中」から「停止中」に切り替える。これにより、転送処理部301は、呼信号Sの呼処理サーバ1aへの転送を停止する。転送処理部301は、転送処理の停止中、端末装置5から受信した呼信号Sを呼信号格納領域41に格納する。転送処理部301は、転送処理状態が「実行中」に切り替わったとき、呼信号格納領域41に格納した呼信号Sを読み出して、呼処理サーバ1a,1bに転送する。
また、制御部302は、呼処理サーバ(#1)1aから通知された振り分けルールに従って、振り分けルールテーブル40を更新する。呼処理サーバ(#1)1aにおいて呼処理の輻輳が発生していないとき、振り分けルールテーブル40には、全てのセッションのCALL−IDが、呼処理サーバ(#1)1aに対応付けられて登録されている。このため、転送処理部301は、呼処理サーバ(#1)1aに、全てのセッションの呼信号Sを転送する。
一方、呼処理サーバ1aにおいて呼処理の輻輳が発生したとき、振り分けルールテーブル40には、奇数のCALL−IDが、呼処理サーバ1aに対応付けられて登録され、偶数のCALL−IDが、呼処理サーバ1bに対応付けられて登録されている。このため、転送処理部301は、第1グループに属するセッションの呼信号Sを呼処理サーバ(#1)1aに転送し、第1グループに属さないセッション(第2グループに属するセッション)の呼信号Sを呼処理サーバ(#2)1bに転送する。これにより、呼信号Sの受信ごとに行われる呼処理の負荷が、呼処理サーバ1a,1bに分散される。
また、呼処理サーバ1aにおいて呼処理の輻輳が解消したとき、振り分けルールテーブル40には、奇数のCALL−ID、及び、輻輳解消後に生成された新規のセッションのCALL−IDが、呼処理サーバ(#1)1aに対応付けられて登録されている。また、偶数のCALL−IDは、呼処理サーバ(#2)1bに対応付けられて登録されている。
このため、転送処理部301は、奇数のCALL−IDの既存のセッション、及び新規の呼信号Sを呼処理サーバ(#1)1aに転送し、偶数のCALL−IDの既存のセッションの呼信号Sを呼処理サーバ(#2)1bに転送する。これにより、呼処理サーバ(#2)1bの処理対象とする既存のセッションが終了したとき、呼処理サーバ(#1)1aは、全てのセッションの呼処理を再び行う。
図11は、呼処理サーバ(#1)1aの輻輳発生時の動作を示すフローチャートである。まず、輻輳検出部101aは、CPU10aの使用率と所定の閾値thを比較する(ステップSt1)。輻輳検出部101aは、CPU10aの使用率が所定の閾値th以下である場合(ステップSt1のNo)、処理を終了する。
輻輳検出部101aは、CPU10aの使用率が所定の閾値thを上回った場合(ステップSt1のYes)、呼処理の輻輳の発生を検出し、呼処理サーバ(#2)1b及び呼信号振り分けサーバ3に輻輳発生を通知する(ステップSt2)。なお、輻輳検出部101aは、CPU10aの使用率に代えて、メモリ2aの使用率に基づいて輻輳の発生を検出してもよい。
次に、制御部103aは、呼処理振り分けサーバ3から、呼信号Sの転送処理の停止完了が通知されたか否かを判定する(ステップSt3)。停止完了通知がない場合(ステップSt3のNo)、再びステップSt3の判定処理が行われる。停止完了通知があった場合(ステップSt3のYes)、制御部103aは、呼処理サーバ1bから、動作モードの切り替え完了が通知されたか否かを判定する(ステップSt4)。
切り替え完了通知がない場合(ステップSt4のNo)、再びステップSt4の判定処理が行われる。切り替え完了通知があった場合(ステップSt4のYes)、コピー処理部104aは、メモリコピー処理を停止する。
次に、制御部103aは、偶数のCALL−IDの呼情報をメモリ2aから消去する(ステップSt6)。次に、制御部103aは、呼処理サーバ(#2)1bから、メモリ更新の完了が通知されたか否かを判定する(ステップSt7)。更新完了通知がない場合(ステップSt7のNo)、再びステップSt7の判定処理が行われる。
次に、制御部103aは、呼信号振り分けサーバ3に振り分けルールを通知する(ステップSt8)。通知される振り分けルールは、上述したように、図3の振り分けルールテーブル40に基づく。このようにして、呼処理サーバ(#1)は、輻輳発生時に動作する。
図12は、呼処理サーバ(#2)の輻輳発生時の動作を示すフローチャートである。制御部103bは、呼処理サーバ(#1)1aから輻輳発生が通知されたか否かを判定する(ステップSt11)。輻輳発生の通知がない場合(ステップSt11のNo)、制御部103bは、処理を終了する。
輻輳発生の通知があった場合(ステップSt11のYes)、制御部103bは、動作モードを「SBY」から「ACT」に切り替える(ステップSt12)。次に、制御部103bは、呼処理サーバ(#1)1aに動作モードの切り替え完了を通知する(ステップSt13)。
次に、コピー処理部104bは、メモリコピー処理を停止する(ステップSt14)。このとき、コピー処理部104bは、例えば、呼処理サーバ1aに、呼情報の送信要求を停止する。
次に、制御部103bは、奇数のCALL−IDの呼情報をメモリ2bから消去する(ステップSt15)。次に、制御部103bは、呼処理サーバ(#1)1aに、メモリ更新の完了を通知する(ステップSt16)。次に、呼処理部102bは、メモリ2bに記憶された呼情報に基づいて呼処理を開始する(ステップSt17)。このようにして、呼処理サーバ(#2)1bは、輻輳発生時に動作する。
図13は、呼信号振り分けサーバ3の輻輳発生時の動作を示すフローチャートである。まず、制御部302は、呼処理サーバ(#1)1aから、輻輳発生が通知されたか否かを判定する(ステップSt21)。輻輳発生の通知がない場合(ステップSt21のNo)、制御部302は、処理を終了する。
輻輳発生の通知があった場合(ステップSt21のYes)、転送処理部301は、呼信号Sの転送処理を停止する(ステップSt22)。転送処理の停止中、転送処理部301は、受信した呼信号Sを呼信号格納領41に格納する。次に、制御部302は、呼処理サーバ(#1)1aに、呼信号Sの転送処理の停止完了を通知する(ステップSt23)。
次に、制御部302は、呼処理サーバ(#1)1aから、振り分けルールが通知されたか否かを判定する(ステップSt24)。振り分けルールの通知がない場合(ステップSt24のNo)、再びステップSt24の判定処理が行われる。
振り分けルールの通知があった場合(ステップSt24のYes)、制御部302は、通知された振り分けルールに従って、振り分けルールテーブル40を更新する(ステップSt25)。このとき、振り分けルールテーブル40は、一例として、図1に示された内容から図3に示された内容に更新される。
次に、転送処理部301は、更新された振り分けルールテーブル40に従って、呼信号Sの転送処理を再開する(ステップSt26)。このとき、転送処理部301は、奇数のCALL−IDのセッションの呼信号Sを呼処理サーバ(#1)1aに転送し、偶数のCALL−IDの呼信号Sを呼処理サーバ(#2)1bに転送する。このようにして、呼信号振り分けサーバ3は、輻輳発生時に動作する。
図14は、呼処理サーバ(#1)1aの輻輳解消時の動作を示すフローチャートである。まず、輻輳検出部101aは、呼処理サーバ(#2)1bから、呼処理サーバ(#2)1bのCPU10bの使用率を受信する(ステップSt31)。
輻輳検出部101aは、呼処理サーバ(#1)1aのCPU10aの使用率及び呼処理サーバ(#2)1bのCPU10bの使用率の合計と、所定の閾値thとを比較する(ステップSt32)。CPU10a,10bの使用率の合計が所定の閾値th以上である場合(ステップSt32のNo)、輻輳検出部101aは、再びステップSt31の処理を行う。
CPU10a,10bの使用率の合計が所定の閾値thを下回る場合(ステップSt32のYes)、輻輳検出部101aは、輻輳の解消を検出し、制御部302は、呼信号振り分けサーバ3に振り分けルールを通知する(ステップSt33)。通知される振り分けルールでは、上述したように、奇数のCALL−IDの既存のセッションの呼信号S及び新規のセッションの呼信号Sは、呼処理サーバ1aに振り分けられ、偶数のCALL−IDの既存のセッションの呼信号Sは、呼処理サーバ1bに振り分けられる。なお、輻輳の解消は、CPU10a,10bの使用率に代えて、メモリ2a,2bの使用率に基づいて検出されてもよい。
次に、制御部103aは、呼処理サーバ(#2)1bから、呼処理の完了が通知されたか否かを判定する(ステップSt34)。呼処理の完了通知がない場合(ステップSt34のNo)、再びステップSt34の判定処理が行われる。
呼処理の完了通知があった場合(ステップSt34のYes)、制御部103aは、応答を返し、呼処理サーバ(#2)1bから、動作モードの切り替え完了が通知されたか否かを判定する(ステップSt35)。動作モードの切り替え完了通知がない場合(ステップSt35のNo)、再びステップSt35の判定処理が行われる。
動作モードの切り替え完了通知があった場合(ステップSt35のYes)、制御部103aは、応答を返し、メモリコピー処理を再開する(ステップSt36)。このようにして、呼処理サーバ(#1)1aは、輻輳解消時に動作する。
図15は、呼処理サーバ(#2)1bの輻輳解消時の動作を示すフローチャートである。まず、輻輳検出部101bは、呼処理部102bから収集した状態に基づいて、CPU10bの使用率を算出し、呼処理サーバ(#1)1aに通知する(ステップSt41)。CPU10bの使用率は、例えば、一定の時間間隔をおいて周期的に通知される。なお、呼処理サーバ(#1)1aが輻輳の解消の検出にメモリ2a,2bの使用率を用いる場合、輻輳検出部101bは、CPU10bの使用率に代えて、メモリ2bの使用率を通知する。
次に、制御部103bは、セッション管理テーブル20bを参照することにより、呼処理対象のセッションの有無を判定する(ステップSt42)。呼処理対象のセッションが有る場合(ステップSt42のYes)、つまりセッション管理テーブル20bに登録されたセッションが有る場合、再びステップSt42の判定処理が行われる。
呼処理対象のセッションがない場合(ステップSt42のNo)、つまりセッション管理テーブル20bに登録されたセッションがない場合、制御部103bは、呼処理サーバ(#1)1aに、呼処理の完了を通知する(ステップSt43)。次に、制御部103bは、呼処理サーバ(#1)1aからの応答の有無を判定する(ステップSt44)。
応答がない場合(ステップSt44のNo)、再びステップSt44の判定処理が行われる。応答があった場合(ステップSt44のYes)、制御部103bは、動作モードを「ACT」から「SBY」に切り替える(ステップSt45)。これにより、呼処理部102bは、呼処理を停止する。
次に、制御部103bは、呼処理サーバ(#1)1aに動作モードの切り替え完了を通知する(ステップSt46)。次に、コピー処理部104bは、メモリコピー処理を再開する(ステップSt47)。このとき、コピー処理部104bは、例えば、呼処理サーバ(#1)1aにメモリ2a内の呼情報の送信を要求する。このようにして、呼処理サーバ(#2)1bは、輻輳解消時に動作する。
図16は、呼信号振り分けサーバ3の輻輳解消時の動作を示すフローチャートである。まず、制御部302は、呼処理サーバ(#1)1aから振り分けルールが通知されたか否かを判定する(ステップSt51)。通知がない場合(ステップSt51のNo)、制御部302は、再びステップSt51の処理が行われる。
通知があった場合(ステップSt51のYes)、制御部302は、通知された振り分けルールに従って、振り分けルールテーブル40を更新する(ステップSt52)。次に、転送処理部301は、更新された振り分けルールテーブル40に従って、呼信号Sの転送処理を開始する(ステップSt53)。これにより、奇数のCALL−IDの既存のセッションの呼信号S及び新規のセッションの呼信号Sは、呼処理サーバ1aに転送され、偶数のCALL−IDの既存のセッションの呼信号Sは、呼処理サーバ1bに転送される。このようにして、呼信号振り分けサーバ3は、輻輳解消時に動作する。
上記の実施例では、セッション管理テーブル20a,20bに登録されたセッションを、CALL−IDに基づいて、第1グループ(奇数)及び第2グループ(偶数)に分けたが、セッションのグループ分けの手法は、これに限定されない。以下に、セッションのグループ分けの他例を挙げて説明する。
(例1)
図17(a)及び図17(b)は、例1におけるセッション管理テーブル20a,20b及び振り分けルールテーブル40をそれぞれ示す。本例において、セッション管理テーブル20a,20bに登録されたセッションは、呼信号Sの宛先タグ番号(宛先番号)に基づいて第1グループG1及び第2グループG2に分けられる。
より具体的には、奇数の宛先タグ番号「30001」,「30003」のセッションは、第1グループG1に属し、偶数の宛先タグ番号「30002」のセッションは、第2グループG2に属する。なお、上記のグループ分けとは逆に、第1グループには、偶数の宛先タグ番号のセッションが属し、第2グループには、奇数の宛先タグ番号のセッションが属してもよい。
このため、呼処理サーバ(#1)1aは、輻輳が発生したとき、偶数の宛先タグ番号「30002」のセッションに関する呼情報をメモリ2aから消去する。また、呼処理サーバ(#2)1bは、輻輳が発生したとき、奇数の宛先タグ番号「30001」,「30003」のセッションに関する呼情報をメモリ2bから消去する。本例では、宛先タグ番号が奇数及び偶数の何れであるかに応じて、セッションのグループ分けを行うため、メモリ2a,2bから消去される呼情報の検出が容易である。
呼信号振り分けサーバ3は、振り分けルールテーブル40に従い、奇数の宛先タグ番号「30001」,「30003」のセッションの呼信号Sを呼処理サーバ(#1)1aに転送し、偶数の宛先タグ番号「30002」のセッションの呼信号Sを呼処理サーバ(#2)1bに転送する。また、新規のセッションに関しては、呼信号振り分けサーバ3は、呼信号Sの宛先タグ番号を、宛先タグ番号に応じた転送先のIPアドレスに割り当てて、振り分けルールテーブル40に登録する。つまり、奇数の宛先タグ番号は、呼処理サーバ(#1)1aのIPアドレス「192.168.1.1」に割り当てられ、偶数の宛先タグ番号は、呼処理サーバ(#2)1bのIPアドレス「192.168.1.2」に割り当てられて登録される。
これにより、呼処理サーバ(#1)1aにおいて輻輳が発生したとき、呼処理サーバ(#1)1aは、奇数の宛先タグ番号のセッションの呼処理を行い、呼処理サーバ(#2)1bは、偶数の宛先タグ番号のセッションの呼処理を行う。したがって、本例でも、上記の実施例と同様に、呼処理の負荷が、呼処理サーバ1a,1bに分散される。
(例2)
図18(a)及び図18(b)は、例2におけるセッション管理テーブル20a,20b及び振り分けルールテーブル40をそれぞれ示す。本例において、セッション管理テーブル20a,20bに登録されたセッションは、セッション管理テーブル20a,20b内の登録位置、つまりメモリ2a内のアドレスに基づいて第1グループG3及び第2グループG4に分けられる。
本例において、セッション管理テーブル20a,20b内の上部のセッション(CALL−ID「8000001」,「8000002」)は、第1グループG3に属する。セッション管理テーブル20a,20b内の下部のセッション(CALL−ID「8000003」,「8000004」)は、第2グループG4に属する。なお、セッション管理テーブル20a,20b内の登録位置は、例えば、登録された順序に基づいて決定される。
このため、呼処理サーバ(#1)1aは、輻輳が発生したとき、CALL−ID「8000001」,「8000002」のセッションに関する呼情報をメモリ2aから消去する。また、呼処理サーバ(#2)1bは、輻輳が発生したとき、CALL−ID「8000003」,「8000004」のセッションに関する呼情報をメモリ2bから消去する。
呼信号振り分けサーバ3は、振り分けルールテーブル40に従い、CALL−ID「8000001」,「8000002」のセッションの呼信号Sを呼処理サーバ(#1)1aに転送し、CALL−ID「8000003」,「8000004」のセッションの呼信号Sを呼処理サーバ(#2)1bに転送する。また、呼信号振り分けサーバ3は、新規のセッションのCALL−IDを、ラウンドロビン方式に従い、呼処理サーバ1a,1bのIPアドレスに交互に割り当てて、振り分けルールテーブル40に登録する。
つまり、呼信号振り分けサーバ3は、呼処理サーバ1a,1bの呼処理対象のセッション数が均等になるように、CALL−IDを振り分けルールテーブル40に登録する。したがって、本例でも、上記の実施例と同様に、呼処理の負荷が、呼処理サーバ1a,1bに分散される。
(例3)
これまで述べた例では、呼処理サーバ1a,1bの呼処理対象のセッション数が均等になるように、第1グループ及び第2グループを決定したが、これに限定されない。例えば、呼処理サーバ1a,1b間で、メモリ2a,2bの容量が相違する場合、またはCPU10a,10bの処理能力が相違する場合、呼処理サーバ1a,1bの呼処理対象のセッション数が相違するように、第1グループ及び第2グループを決定してもよい。
図19(a)及び図19(b)は、例3におけるセッション管理テーブル及び振り分けルールテーブルを示す。本例では、呼処理サーバ1a,1b間のメモリ2a,2bの容量比またはCPU10a,10bの処理能力比を、一例として、3:2と仮定して、セッションを、CALL−IDに基づいて第1グループG5及び第2グループG6に分ける。より具体的には、CALL−IDの一の位(末尾の数字)が「0」〜「5」であるセッションは、第1グループG5に属し、CALL−IDの一の位が「6」〜「9」であるセッションは、第2グループG6に属する。
図19(a)の例では、CALL−ID「8000001」,「8000011」,「8000075」,「8000003」,「8000022」のセッションは、第1グループG5に属し、CALL−ID「8000008」,「8000026」,「8000017」のセッションは、第2グループG6に属する。
このため、呼処理サーバ(#1)1aは、輻輳が発生したとき、CALL−ID「8000001」,「8000011」,「8000075」,「8000003」,「8000022」のセッションに関する呼情報をメモリ2aから消去する。また、呼処理サーバ(#2)1bは、輻輳が発生したとき、CALL−ID「8000008」,「8000026」,「8000017」のセッションに関する呼情報をメモリ2bから消去する。
呼信号振り分けサーバ3は、振り分けルールテーブル40に従い、CALL−ID「8000001」,「8000011」,「8000075」,「8000003」,「8000022」のセッションの呼信号Sを呼処理サーバ(#1)1aに転送する。また、呼信号振り分けサーバ3は、CALL−ID「8000008」,「8000026」,「8000017」のセッションの呼信号Sを呼処理サーバ(#2)1bに転送する。
また、呼信号振り分けサーバ3は、新規のセッションのCALL−IDを、CALL−IDに基づいて、呼処理サーバ1a,1bのIPアドレスに対応付けて、振り分けルールテーブル40に登録する。CALL−IDの一の位が「0」〜「5」であるセッションは、呼処理サーバ(#1)1aのIPアドレス「192.168.1.1」に割り当てられて登録される。一方、CALL−IDの一の位が「6」〜「9」であるセッションは、呼処理サーバ(#2)1bのIPアドレス「192.168.1.2」に割り当てられて登録される。
つまり、呼信号振り分けサーバ3は、呼処理サーバ1a,1bの呼処理対象のセッション数が、およそ3:2となるように、CALL−IDを振り分けルールテーブル40に登録する。これにより、本例では、呼処理の負荷が、メモリ2a,2bの容量比またはCPU10a,10bの処理能力比を考慮して、呼処理サーバ1a,1bに分散される。
なお、本例において、セッションを、CALL−IDに基づいて第1グループG5及び第2グループG6に分けたが、宛先タグ番号に基づいて第1グループG5及び第2グループG6に分けてもよい。この場合、例えば、宛先タグ番号の一の位(末尾の数字)が「0」〜「5」であるセッションは、第1グループG5に属し、宛先タグ番号の一の位が「6」〜「9」であるセッションは、第2グループG6に属する。この場合も、上記の内容と同様の効果が得られる。
(例4)
また、上記の例3において、セッションを、CALL−IDに代えて、セッション管理テーブル20a,20b内の登録位置、つまりメモリ2a内のアドレスに基づいて第1グループG7及び第2グループG8に分けてもよい。
図20(a)及び図20(b)は、例4におけるセッション管理テーブル20a,20b及び振り分けルールテーブル40をそれぞれ示す。本例において、セッション管理テーブル20a,20b内の上部のセッション(CALL−ID「8000001」〜「8000005」)は、第1グループG7に属する。セッション管理テーブル20a,20b内の下部のセッション(CALL−ID「8000006」,「8000007」,・・・)は、第2グループG8に属する。ここで、第1グループG7に属するセッション数と第2グループG8に属するセッション数の比は、3:2である。
このため、呼処理サーバ(#1)1aは、輻輳が発生したとき、CALL−ID「8000006」,「8000007」,・・・のセッションに関する呼情報をメモリ2aから消去する。また、呼処理サーバ(#2)1bは、輻輳が発生したとき、CALL−ID「8000001」〜「8000005」のセッションに関する呼情報をメモリ2bから消去する。
呼信号振り分けサーバ3は、振り分けルールテーブル40に従い、CALL−ID「8000001」〜「8000005」のセッションの呼信号Sを呼処理サーバ(#1)1aに転送する。また、呼信号振り分けサーバ3は、CALL−ID「8000006」,「8000007」,・・・のセッションの呼信号Sを呼処理サーバ(#2)1bに転送する。
また、呼信号振り分けサーバ3は、新規のセッションのCALL−IDを、重み付けラウンドロビン方式に従い、呼処理サーバ1a,1bのIPアドレスに割り当てて、振り分けルールテーブル40に登録する。ここで、呼処理サーバ1a,1bの重みの比は、3:2である。
つまり、呼信号振り分けサーバ3は、呼処理サーバ1a,1bの呼処理対象のセッション数が、およそ3:2となるように、CALL−IDを振り分けルールテーブル40に登録する。これにより、本例では、例3と同様に、呼処理の負荷が、メモリ2a,2bの容量比またはCPU10a,10bの処理能力比を考慮して、呼処理サーバ1a,1bに分散される。
これまで述べたように、実施例に係る呼処理装置(呼処理サーバ(#1))1aは、他の呼処理装置(呼処理サーバ(#2))1bと、自装置1aまたは他の呼処理装置1bに呼信号Sを転送する呼制御装置(呼信号振り分けサーバ)3とに接続されている。呼処理装置1aは、記憶部(メモリ)2aと、呼処理部102aと、複製部(コピー処理部)104aと、制御部103aとを有する。
記憶部2aは、呼制御装置3から転送された呼信号Sの複数のセッションに関する呼情報(セッション管理テーブル20a)を記憶する。呼処理部102aは、記憶部2aに記憶された呼情報Sに基づいて呼処理を行う。複製部104aは、記憶部2aに記憶された呼情報を他の呼処理装置1bにコピーする。
制御部103aは、呼処理部102aにおいて呼処理の輻輳が発生したとき、複数のセッションのうち、所定のグループ(第1グループ)に属さないセッションに関する呼情報を記憶部2aから消去する。制御部103aは、該セッションの呼信号Sが他の呼処理装置1bに転送されるように呼制御装置3を制御する。
上記の構成によると、呼処理部102aは、記憶部2aに記憶された呼情報Sに基づいて呼処理を行い、制御部103aは、呼処理の輻輳が発生したとき、複数のセッションのうち、所定のグループに属さないセッションに関する呼情報を記憶部2aから消去する。このため、呼処理の輻輳が発生したとき、記憶部2aには、呼処理対象とした複数のセッションのうち、所定のグループに属するセッションに関する呼情報のみが記憶されているので、呼処理部102aは、所定のグループに属するセッションの呼処理のみを行う。したがって、呼処理装置1aは、呼処理の負荷が低減される。
また、複製部104aは、記憶部2aに記憶された呼情報を他の呼処理装置1bにコピーし、呼処理の輻輳が発生したとき、制御部103aは、所定のグループに属さないセッションの呼信号Sが他の呼処理装置1bに転送されるように呼制御装置3を制御する。このため、他の呼処理装置1bは、ネットワークNWに信号を送信することなく、所定のグループに属さないセッションの呼処理を、呼処理装置1aから引き継ぐことができる。
したがって、本実施例に係る呼処理装置1aによると、特許文献1とは異なり、通信品質を劣化させることなく、効果的な負荷分散が可能である。
また、他の実施例に係る呼処理装置(呼処理サーバ(#2))1bは、他の呼処理装置(呼処理サーバ(#1))1aと、自装置1bまたは他の呼処理装置1aに呼信号Sを転送する呼制御装置(呼信号振り分けサーバ)3とに接続されている。呼処理装置1bは、記憶部(メモリ)2bと、記憶処理部(コピー処理部)104bと、制御部103bと、呼処理部102bとを有する。
記憶処理部104bは、呼制御装置3から他の呼処理装置1aに転送された呼信号Sの複数のセッションに関する呼情報(セッション管理テーブル20a)を、他の呼処理装置1aから受信して記憶部2aに記憶させる。
制御部103bは、他の呼処理装置1aにおいて複数のセッションに関する呼情報に基づいて行われた呼処理の輻輳が発生したとき、複数のセッションのうち、所定のグループ(第1グループ)に属するセッションに関する呼情報を記憶部2bから消去する。呼処理部102bは、呼処理の輻輳が発生したとき、呼制御装置3から所定のグループに属さないセッション(第2グループに属するセッション)の呼信号Sが転送されて、記憶部2bに記憶された呼情報に基づいて呼処理を開始する。
上記の構成によると、他の呼処理装置1aにおいて呼処理の輻輳が発生したとき、記憶部2bには、他の呼処理装置1aの呼処理対象の複数のセッションのうち、所定のグループに属さないセッションに関する呼情報が記憶されている。呼処理部102bは、呼処理の輻輳が発生したとき、呼制御装置3から所定のグループに属さないセッションの呼信号Sが転送されて、記憶部2bに記憶された呼情報に基づいて呼処理を開始する。このため、呼処理装置1bは、ネットワークNWに信号を送信することなく、所定のグループに属さないセッションの呼処理を、他の呼処理装置1aから引き継ぐことができる。
したがって、本実施例に係る呼処理装置1bによると、特許文献1とは異なり、通信品質を劣化させることなく、効果的な負荷分散が可能である。
また、実施例に係る呼制御装置(呼信号振り分けサーバ)3は、呼処理を行う第1呼処理装置(呼処理サーバ(#1))1a及び第2呼処理装置(呼処理サーバ(#2))1bに接続されている。呼制御装置3は、第1呼処理装置1aに複数のセッションの呼信号Sを転送する転送処理部301を有する。
転送処理部301は、第1呼処理装置1aにおいて複数のセッションの呼信号Sにより呼処理の輻輳が発生したとき、第1呼処理装置1aの制御に応じて、複数のセッションのうち、所定のグループ(第1グループ)に属さないセッションの呼信号Sを第2呼処理装置1bに転送する。
上記の構成によると、転送処理部301は、第1呼処理装置1aにおいて呼処理の輻輳が発生したとき、第1呼処理装置1aの呼処理対象の複数のセッションのうち、所定のグループに属さないセッションの呼信号Sを第2呼処理装置1bに転送する。このため、第2呼処理装置1bは、ネットワークNWに信号を送信することなく、所定のグループに属さないセッションの呼処理を、第1呼処理装置1aから引き継ぐことができる。
したがって、本実施例に係る呼制御装置3によると、特許文献1とは異なり、通信品質を劣化させることなく、効果的な負荷分散が可能である。
また、実施例に係る呼処理システムは、呼処理を行う第1呼処理装置(呼処理サーバ(#1))1a及び第2呼処理装置(呼処理サーバ(#2))1bと、第1呼処理装置1aまたは第2呼処理装置1bに呼信号Sを転送する呼制御装置(呼信号振り分けサーバ)3とを有する。第1呼処理装置1aまたは第2呼処理装置1bは、第1記憶部(メモリ)2a及び第2記憶部(メモリ)2bをそれぞれ有する。
第1呼処理装置1aは、呼制御装置3から転送された呼信号Sの複数のセッションに関する呼情報(セッション管理テーブル20a)を第1記憶部2aに記憶する。第1呼処理装置1aは、第1記憶部2aに記憶された呼情報に基づいて呼処理を行い、第1記憶部2aに記憶された呼情報を第2記憶部2bにコピーする。
呼処理の輻輳が発生したとき、第1呼処理装置1aは、複数のセッションのうち、所定のグループ(第1グループ)に属さないセッションに関する呼情報を第1記憶部2aから消去し、該セッションの呼信号Sが第2呼処理装置1bに転送されるように呼制御装置3を制御する。第2呼処理装置1bは、複数のセッションのうち、所定のグループに属するセッションに関する呼情報を第2記憶部2bから消去し、第2記憶部2bに記憶された呼情報(セッション管理テーブル20b)に基づいて呼処理を開始する。
実施例に係る呼処理システムは、上記の呼処理装置1a,1b及び呼制御装置3の構成と同様の構成を含むので、上述した内容と同様の作用効果を奏する。
また、実施例に係る呼処理方法は、呼処理を行う第1呼処理装置(呼処理サーバ(#1))1a及び第2呼処理装置(呼処理サーバ(#2))1bと、第1呼処理装置1aまたは第2呼処理装置1bに呼信号Sを転送する呼制御装置(呼信号振り分けサーバ)3とを用いる。
第1呼処理装置1aは、呼制御装置3から転送された呼信号Sの複数のセッションに関する呼情報(セッション管理テーブル20a)を、第1呼処理装置1aに設けられた第1記憶部2aに記憶する。第1呼処理装置1aは、第1記憶部2aに記憶された呼情報に基づいて呼処理を行い、第1記憶部2aに記憶された呼情報を、第2呼処理装置1bに設けられた第2記憶部2bにコピーする。
呼処理の輻輳が発生したとき、第1呼処理装置1aは、複数のセッションのうち、所定のグループ(第1グループ)に属さないセッションに関する呼情報を第1記憶部2aから消去し、該セッションの呼信号Sが第2呼処理装置1bに転送されるように呼制御装置3を制御する。第2呼処理装置1bは、複数のセッションのうち、所定のグループに属するセッションに関する呼情報を第2記憶部2bから消去し、第2記憶部2bに記憶された呼情報(セッション管理テーブル20b)に基づいて呼処理を開始する。
実施例に係る呼処理方法は、上記の呼処理装置1a,1b及び呼制御装置3の構成と同様の構成を含むので、上述した内容と同様の作用効果を奏する。
上述した実施形態は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
なお、以上の説明に関して更に以下の付記を開示する。
(付記1) 他の呼処理装置と、自装置または前記他の呼処理装置に呼信号を転送する呼制御装置とに接続された呼処理装置において、
前記呼制御装置から転送された呼信号の複数のセッションに関する呼情報を記憶する記憶部と、
前記記憶部に記憶された呼情報に基づいて呼処理を行う呼処理部と、
前記記憶部に記憶された呼情報を前記他の呼処理装置にコピーする複製部と、
前記呼処理部において前記呼処理の輻輳が発生したとき、前記複数のセッションのうち、所定のグループに属さないセッションに関する呼情報を前記記憶部から消去し、該セッションの呼信号が前記他の呼処理装置に転送されるように前記呼制御装置を制御する制御部とを有することを特徴とする呼処理装置。
(付記2) 前記呼信号は、前記複数のセッションの各々を識別するための識別番号を含み、
前記所定のグループには、前記複数のセッションのうち、前記識別番号が奇数または偶数であるセッションが属することを特徴とする付記1に記載の呼処理装置。
(付記3) 前記呼信号は、宛先を示す宛先番号を含み、
前記所定のグループには、前記複数のセッションのうち、前記宛先番号が奇数または偶数であるセッションが属することを特徴とする付記1に記載の呼処理装置。
(付記4) 他の呼処理装置と、自装置または前記他の呼処理装置に呼信号を転送する呼制御装置とに接続された呼処理装置において、
記憶部と、
前記呼制御装置から前記他の呼処理装置に転送された呼信号の複数のセッションに関する呼情報を、前記他の呼処理装置から受信して前記記憶部に記憶させる記憶処理部と、
前記他の呼処理装置において前記複数のセッションに関する呼情報に基づいて行われた呼処理の輻輳が発生したとき、前記複数のセッションのうち、所定のグループに属するセッションに関する呼情報を前記記憶部から消去する制御部と、
前記呼処理の輻輳が発生したとき、前記呼制御装置から前記所定のグループに属さないセッションの呼信号が転送されて、前記記憶部に記憶された呼情報に基づいて呼処理を開始する呼処理部とを有することを特徴とする呼処理装置。
(付記5) 前記呼信号は、前記複数のセッションの各々を識別するための識別番号を含み、
前記所定のグループには、前記複数のセッションのうち、前記識別番号が奇数または偶数であるセッションが属することを特徴とする付記4に記載の呼処理装置。
(付記6) 前記呼信号は、宛先を示す宛先番号を含み、
前記所定のグループには、前記複数のセッションのうち、前記宛先番号が奇数または偶数であるセッションが属することを特徴とする付記4に記載の呼処理装置。
(付記7) 呼処理を行う第1呼処理装置及び第2呼処理装置に接続された呼制御装置において、
前記第1呼処理装置に複数のセッションの呼信号を転送し、前記第1呼処理装置において前記複数のセッションの呼信号により呼処理の輻輳が発生したとき、前記第1呼処理装置の制御に応じて、前記複数のセッションのうち、所定のグループに属さないセッションの呼信号を前記第2呼処理装置に転送する転送処理部を有することを特徴とする呼制御装置。
(付記8) 前記呼信号は、前記複数のセッションの各々を識別するための識別番号を含み、
前記所定のグループには、前記複数のセッションのうち、前記識別番号が奇数または偶数であるセッションが属することを特徴とする付記7に記載の呼制御装置。
(付記9) 前記呼信号は、宛先を示す宛先番号を含み、
前記所定のグループには、前記複数のセッションのうち、前記宛先番号が奇数または偶数であるセッションが属することを特徴とする付記7に記載の呼制御装置。
(付記10) 呼処理を行う第1呼処理装置及び第2呼処理装置と、前記第1呼処理装置または前記第2呼処理装置に呼信号を転送する呼制御装置とを有する呼処理システムにおいて、
前記第1呼処理装置または前記第2呼処理装置は、第1記憶部及び第2記憶部をそれぞれ有し、
前記第1呼処理装置は、前記呼制御装置から転送された呼信号の複数のセッションに関する呼情報を前記第1記憶部に記憶し、前記第1記憶部に記憶された呼情報に基づいて呼処理を行い、前記第1記憶部に記憶された呼情報を前記第2記憶部にコピーし、
前記呼処理の輻輳が発生したとき、
前記第1呼処理装置は、前記複数のセッションのうち、所定のグループに属さないセッションに関する呼情報を前記第1記憶部から消去し、該セッションの呼信号が前記第2呼処理装置に転送されるように前記呼制御装置を制御し、
前記第2呼処理装置は、前記複数のセッションのうち、前記所定のグループに属するセッションに関する呼情報を前記第2記憶部から消去し、前記第2記憶部に記憶された呼情報に基づいて呼処理を開始することを特徴とする呼処理システム。
(付記11) 前記呼信号は、前記複数のセッションの各々を識別するための識別番号を含み、
前記所定のグループには、前記複数のセッションのうち、前記識別番号が奇数または偶数であるセッションが属することを特徴とする付記10に記載の呼処理システム。
(付記12) 前記呼信号は、宛先を示す宛先番号を含み、
前記所定のグループには、前記複数のセッションのうち、前記宛先番号が奇数または偶数であるセッションが属することを特徴とする付記10に記載の呼処理システム。
(付記13) 呼処理を行う第1呼処理装置及び第2呼処理装置と、前記第1呼処理装置または前記第2呼処理装置に呼信号を転送する呼制御装置とを用いた呼処理方法において、
前記第1呼処理装置が、前記呼制御装置から転送された呼信号の複数のセッションに関する呼情報を、前記第1呼処理装置に設けられた第1記憶部に記憶し、前記第1記憶部に記憶された呼情報に基づいて呼処理を行い、前記第1記憶部に記憶された呼情報を、前記第2呼処理装置に設けられた第2記憶部にコピーし、
前記呼処理の輻輳が発生したとき、
前記第1呼処理装置が、前記複数のセッションのうち、所定のグループに属さないセッションに関する呼情報を前記第1記憶部から消去し、該セッションの呼信号が前記第2呼処理装置に転送されるように前記呼制御装置を制御し、
前記第2呼処理装置が、前記複数のセッションのうち、前記所定のグループに属するセッションに関する呼情報を前記第2記憶部から消去し、前記第2記憶部に記憶された呼情報に基づいて呼処理を開始することを特徴とする呼処理方法。
(付記14) 前記呼信号は、前記複数のセッションの各々を識別するための識別番号を含み、
前記所定のグループには、前記複数のセッションのうち、前記識別番号が奇数または偶数であるセッションが属することを特徴とする付記13に記載の呼処理方法。
(付記15) 前記呼信号は、宛先を示す宛先番号を含み、
前記所定のグループには、前記複数のセッションのうち、前記宛先番号が奇数または偶数であるセッションが属することを特徴とする付記13に記載の呼処理方法。