(57)【特許請求の範囲】
【請求項１】
複数のユーザ端末と、各グループが少なくとも１つのアプリケーションサーバからなる複数のサーバグループと、前記ユーザ端末から受信するメッセージの転送先を前記複数のサーバグループのいずれかに決定して前記メッセージを振り分ける負荷分散処理装置と、を備える通信システムにおける前記負荷分散処理装置であって、
学習データを用いて事前に学習したメッセージに含まれる語彙及びその転送先の組み合わせルールを規定する条件付確率式から、入力したメッセージの振分け先の候補としての特徴量を示すスコアを前記サーバグループ別に算出し、スコア最上位のサーバグループを転送先として求めて転送先リストに登録すると共に、当該メッセージに含まれ前記スコアの算出に用いたパラメータである語彙及び前記候補の中から決定した振分け先をログ情報としてログ情報記憶手段に登録する転送先分類計算手段と、
前記転送先分類計算手段で振分けられたメッセージを前記転送先リストに記載された対応する転送先へ送信する送信手段と、
前記ログ情報記憶手段に記憶されたログ情報を定期的に振分け先別に集計し、振分け先の偏りが所定の第１閾値より大きい場合、最も多く振り分けられたサーバグループを振分け先とするメッセージのうち所定条件を満たすメッセージの振分け先を他のサーバグループに変更させると共に当該振分け先の変更を反映して前記学習データを再生成して更新するフィードバック手段と、
を備えることを特徴とする負荷分散処理装置。
【請求項２】
前記フィードバック手段は、
前記ログ情報を記憶したログ情報記憶手段から、最も多く振り分けられたサーバグループを振分け先とするメッセージに関するログ情報を抽出して、抽出したログ情報に含まれる前記語彙を用いて前記振分け先の候補としての特徴量を示すスコアを前記サーバグループ別に算出し、スコアが次点のサーバグループを求めて当該次点のスコアが所定の第２閾値よりも大きい場合に、当該次点のスコアに対応したサーバグループを当該メッセージの新たな振分け先にさせる処理をメッセージ毎に行うことで、前記メッセージの振分け先を変更させることを特徴とする請求項１に記載の負荷分散処理装置。
【請求項３】
前記入力したメッセージを前記転送先分類計算手段にて振り分けるための前処理として、当該メッセージから構文解析には不要な予め定められたパラメータを削除して構文解析の対象となるパラメータを前記スコアの算出に用いる語彙として抽出するフィルタリング手段をさらに備えることを特徴とする請求項１又は請求項２に記載の負荷分散処理装置。
【請求項４】
前記ユーザ端末から受信するメッセージの転送先が前記転送先リストに既登録であることを示すパス条件を満たすか否かを判別し、前記パス条件を満たさないと判別した新規メッセージを前記フィルタリング手段に送り、前記パス条件を満たすと判別した継続メッセージを前記送信手段に送るパス条件判別手段をさらに備えることを特徴とする請求項３に記載の負荷分散処理装置。
【請求項５】
複数のユーザ端末と、各グループが少なくとも１つのアプリケーションサーバからなる複数のサーバグループと、前記ユーザ端末から受信するメッセージの転送先を前記複数のサーバグループのいずれかに決定して前記メッセージを振り分ける負荷分散処理装置と、を備える通信システムにおける負荷分散処理方法であって、
前記負荷分散処理装置は、
学習データを用いて事前に学習したメッセージに含まれる語彙及びその転送先の組み合わせルールを規定する条件付確率式から、入力したメッセージの振分け先の候補としての特徴量を示すスコアを前記サーバグループ別に算出し、スコア最上位のサーバグループを転送先として求めて転送先リストに登録すると共に、当該メッセージに含まれ前記スコアの算出に用いたパラメータである語彙及び前記候補の中から決定した振分け先をログ情報としてログ情報記憶手段に登録する転送先分類計算ステップと、
前記転送先分類計算ステップで振分けられたメッセージを前記転送先リストに記載された対応する転送先へ送信する送信ステップと、
前記ログ情報記憶手段に記憶されたログ情報を定期的に振分け先別に集計し、振分け先の偏りが所定の第１閾値より大きい場合、最も多く振り分けられたサーバグループを振分け先とするメッセージのうち所定条件を満たすメッセージの振分け先を他のサーバグループに変更させると共に当該振分け先の変更を反映して前記学習データを再生成して更新するフィードバックステップと、
を実行することを特徴とする負荷分散処理方法。
【請求項６】
前記フィードバックステップは、
前記ログ情報記憶手段から、最も多く振り分けられたサーバグループを振分け先とするメッセージに関するログ情報を抽出して、抽出したログ情報に含まれる前記語彙を用いて前記振分け先の候補としての特徴量を示すスコアを前記サーバグループ別に算出し、スコアが次点のサーバグループを求めて当該次点のスコアが所定の第２閾値よりも大きい場合に、当該次点のスコアに対応したサーバグループを当該メッセージの新たな振分け先にさせる処理をメッセージ毎に行うことで、メッセージの振分け先を変更させることを特徴とする請求項５に記載の負荷分散処理方法。
【請求項７】
前記負荷分散処理装置は、
前記転送先分類計算ステップの前に、前記入力したメッセージから構文解析には不要な予め定められたパラメータを削除して所定の語彙を構文解析の対象となるパラメータとして抽出するフィルタリングステップを実行することを特徴とする請求項５又は請求項６に記載の負荷分散処理方法。
【請求項８】
前記負荷分散処理装置は、
前記フィルタリングステップの前に、前記ユーザ端末から受信するメッセージの転送先が前記転送先リストに既登録であることを示すパス条件を満たすか否かを判別するパス条件判別ステップを実行し、
前記パス条件を満たさない場合、前記フィルタリングステップを実行し、
前記パス条件を満たす場合、前記フィルタリングステップ及び前記転送先分類計算ステップをスキップして前記送信ステップを実行することを特徴とする請求項７に記載の負荷分散処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、負荷分散処理技術に関し、特に、ユーザのセッション管理を行うアプリケーションサーバを有する通信システムにおける負荷分散処理装置及び負荷分散処理方法に関する。
【背景技術】
【０００２】
ユーザのセッション管理を行うアプリケーションサーバを有する通信システムにおいて、負荷分散処理装置をさらに備えて、複数のアプリケーションサーバに負荷を分散させる場合がある。この場合、負荷分散処理装置は、特定のユーザ端末（クライアント）同士の通信を特定のアプリケーションサーバへ転送させる。その際には、負荷分散処理装置には、ユーザ端末からの信号メッセージを、セッションを受け持つアプリケーションサーバへ割り振るための機能が必要となっている。従来、負荷分散処理装置がユーザ端末から受信した信号メッセージを転送する転送先サーバを決定するための方法として、信号メッセージを予め定められたルールに基づいて解析する手法が用いられている。
【０００３】
従来の信号メッセージの解析手法（以下、第１手法という）として、例えばＳＩＰ（Session Initiation Protocol）アプリケーションにおいてＳＩＰヘッダのＭｅｔｈｏｄやＦｒｏｍ、Ｔｏなどそれぞれのパラメータに対して予め判定条件を定義しておき、判定結果に応じて異なるアクションを実行させる手法がある（非特許文献１参照）。この第１手法によれば、判定条件を柔軟に定義できることから様々な状況に対応させることが可能である。
【０００４】
また、別の信号メッセージの解析手法（以下、第２手法という）として、サポートベクターマシン（以下、ＳＶＭ）などの機械学習を利用してＳＩＰメッセージの判定を行う手法がある（非特許文献２参照）。この第２手法は、事前に学習データを与えておくことで、詳細な判定条件を設定することなくメッセージ内容を適切に判定することができるものである。第２手法では、例えば学習データとして正常なメッセージと不正なメッセージとを与えておき、不正な信号メッセージをフィルタリングするといった用途が提案されている。また、第２手法は、別の用途として、機械学習の手法や判定条件を変えることで、信号メッセージの転送先を決定するといった用途にも利用可能である。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Arup Acharya et al, “A Programmable Message Classification Engine for Session Initiation Protocol (SIP)”, Proceedings of the 3rd ACM/IEEE Symposium on Architecture for networking and communications systems - ANCS, 2007, P.185-194
【非特許文献２】Raihana Ferdous et al, “CLASSIFICATION OF SIP MESSAGES BY A SYNTAX FILTER AND SVMs ( Extended Version)”, USA, IEEE, [Globecom 2012]
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、第１手法では、ユーザ数の多いシステムに対しては、判定条件の定義が非常に複雑となってしまう問題がある。加えて、第１手法では、アプリケーションサーバの負荷分散において、トラフィックの変動により生じる分散の偏りに対する追従も困難となる。
【０００７】
一方、第２手法では、複雑な判定条件の定義は不要となる利点があるものの、事前にアクションが決まっていることから、やはりアプリケーションサーバの負荷分散において、トラフィックの変動により生じる分散の偏りに対する追従を行うことができない。
【０００８】
本発明は、以上のような問題点に鑑みてなされたものであり、複雑な判定条件を設定せずに転送先を決定する計算を行うことができ、且つ、トラフィック変動により生じる振り分け先の偏りに対して追従して偏りを低減することができる負荷分散処理装置及び負荷分散処理方法を提供することを課題とする。
【課題を解決するための手段】
【０００９】
前記した課題を解決するため、本発明に係る負荷分散処理装置は、複数のユーザ端末と、各グループが少なくとも１つのアプリケーションサーバからなる複数のサーバグループと、前記ユーザ端末から受信するメッセージの転送先を前記複数のサーバグループのいずれかに決定して前記メッセージを振り分ける負荷分散処理装置と、を備える通信システムにおける前記負荷分散処理装置であって、学習データを用いて事前に学習したメッセージに含まれる語彙及びその転送先の組み合わせルールを規定する条件付確率式から、入力したメッセージの振分け先の候補としての特徴量を示すスコアを前記サーバグループ別に算出し、スコア最上位のサーバグループを転送先として求めて転送先リストに登録すると共に、当該メッセージに含まれ前記スコアの算出に用いたパラメータである語彙及び前記候補の中から決定した振分け先をログ情報としてログ情報記憶手段に登録する転送先分類計算手段と、前記転送先分類計算手段で振分けられたメッセージを前記転送先リストに記載された対応する転送先へ送信する送信手段と、前記ログ情報記憶手段に記憶されたログ情報を定期的に振分け先別に集計し、振分け先の偏りが所定の第１閾値より大きい場合、最も多く振り分けられたサーバグループを振分け先とするメッセージのうち所定条件を満たすメッセージの振分け先を他のサーバグループに変更させると共に当該振分け先の変更を反映して前記学習データを再生成して更新するフィードバック手段と、を備えることを特徴とする。
【００１０】
かかる構成によれば、負荷分散処理装置は、事前に学習したメッセージに含まれる語彙及びその転送先の組み合わせルールを規定する条件付確率式を用いて、入力メッセージの振分け先を求める。したがって、メッセージのパラメータごとに条件を設定するような複雑な振分ルールを定義することなく、ユーザ端末からのメッセージを所定のアプリケーションサーバに振り分けるように宛先（転送先）解決を行い、セッションを維持させることができる。また、負荷分散処理装置は、メッセージを振り分ける計算に用いたパラメータ及び計算結果を示すログ情報に基づいて、振分け先の偏りが大きいことを検出した場合、偏って振り分けられたメッセージの振分け先を他のサーバグループに変更させると共に当該振分け先の変更を反映して学習データを再生成して更新する。これにより、トラフィック変動への追従により生じる負荷分散の偏りを平準化させ、トラフィックの分散を均一にすることができる。
【００１１】
また、本発明に係る電負荷分散処理装置は、前記フィードバック手段が、前記ログ情報を記憶したログ情報記憶手段から、最も多く振り分けられたサーバグループを振分け先とするメッセージに関するログ情報を抽出して、抽出したログ情報に含まれる前記語彙を用いて前記振分け先の候補としての特徴量を示すスコアを前記サーバグループ別に算出し、スコアが次点のサーバグループを求めて当該次点のスコアが所定の第２閾値よりも大きい場合に、当該次点のスコアに対応したサーバグループを当該メッセージの新たな振分け先にさせる処理をメッセージ毎に行うことで、前記メッセージの振分け先を変更させることが好ましい。
【００１２】
かかる構成によれば、負荷分散処理装置は、最も多く振り分けられたサーバグループを振分け先とするメッセージについて前記条件付確率式からスコアを再計算し、求めたスコアを基に、次点のサーバグループのスコアが基準を満たせば、振分けルールに則った現在の振分け先に最も類似した転送先であるものとして、振分け先を変更して負荷を分散させる。したがって、負荷分散処理装置は、振分け先候補が例えば３つ以上存在していても次点を振分け先の変更候補としており、次点のスコアが基準を満たす場合にその振分け先を変更するので、メッセージの宛先解決（転送先解決）を優先した上で負荷分散を行うことができる。
【００１３】
また、本発明に係る電負荷分散処理装置は、前記入力したメッセージを前記転送先分類計算手段にて振り分けるための前処理として、当該メッセージから構文解析には不要な予め定められたパラメータを削除して構文解析の対象となるパラメータを前記スコアの算出に用いる語彙として抽出するフィルタリング手段をさらに備えることが好ましい。
【００１４】
かかる構成によれば、負荷分散処理装置は、入力したメッセージから構文解析には不要な予め定められたパラメータを削除した上で、このフィルタリングされたメッセージに含まれる語彙を用いて前記条件付確率式からスコアを計算するので、この振分け先の演算処理を高速化することができる。
【００１５】
また、本発明に係る電負荷分散処理装置は、前記ユーザ端末から受信するメッセージの転送先が前記転送先リストに既登録であることを示すパス条件を満たすか否かを判別し、前記パス条件を満たさないと判別した新規メッセージを前記フィルタリング手段に送り、前記パス条件を満たすと判別した継続メッセージを前記送信手段に送るパス条件判別手段をさらに備えることが好ましい。
【００１６】
かかる構成によれば、負荷分散処理装置は、入力したメッセージの転送先が転送先リストに既登録である場合、振分け先を計算することなく転送先にメッセージを転送するので、入力メッセージを効率よく振り分けることができる。
【００１７】
また、前記した課題を解決するため、本発明に係る負荷分散処理方法は、複数のユーザ端末と、各グループが少なくとも１つのアプリケーションサーバからなる複数のサーバグループと、前記ユーザ端末から受信するメッセージの転送先を前記複数のサーバグループのいずれかに決定して前記メッセージを振り分ける負荷分散処理装置と、を備える通信システムにおける負荷分散処理方法であって、前記負荷分散処理装置が、学習データを用いて事前に学習したメッセージに含まれる語彙及びその転送先の組み合わせルールを規定する条件付確率式から、入力したメッセージの振分け先の候補としての特徴量を示すスコアを前記サーバグループ別に算出し、スコア最上位のサーバグループを転送先として求めて転送先リストに登録すると共に、当該メッセージに含まれ前記スコアの算出に用いたパラメータである語彙及び前記候補の中から決定した振分け先をログ情報としてログ情報記憶手段に登録する転送先分類計算ステップと、前記転送先分類計算ステップで振分けられたメッセージを前記転送先リストに記載された対応する転送先へ送信する送信ステップと、前記ログ情報記憶手段に記憶されたログ情報を定期的に振分け先別に集計し、振分け先の偏りが所定の第１閾値より大きい場合、最も多く振り分けられたサーバグループを振分け先とするメッセージのうち所定条件を満たすメッセージの振分け先を他のサーバグループに変更させると共に当該振分け先の変更を反映して前記学習データを再生成して更新するフィードバックステップと、を実行することを特徴とする。
【００１８】
かかる手順によれば、負荷分散処理方法は、転送先分類計算ステップにおいて、事前に学習したメッセージに含まれる語彙及びその転送先の組み合わせルールを規定する条件付確率式を用いて、入力メッセージの振分け先を求めることができる。また、フィードバックステップにおいて、メッセージを振り分ける計算に用いたパラメータ及び計算結果を示すログ情報に基づいて、振分け先の偏りが大きい場合、偏って振り分けられたメッセージの振分け先を他のサーバグループに変更させると共に当該振分け先の変更を反映して学習データを再生成して更新することができる。
【００１９】
本発明に係る負荷分散処理方法は、前記フィードバックステップが、前記ログ情報記憶手段から、最も多く振り分けられたサーバグループを振分け先とするメッセージに関するログ情報を抽出して、抽出したログ情報に含まれる前記語彙を用いて前記振分け先の候補としての特徴量を示すスコアを前記サーバグループ別に算出し、スコアが次点のサーバグループを求めて当該次点のスコアが所定の第２閾値よりも大きい場合に、当該次点のスコアに対応したサーバグループを当該メッセージの新たな振分け先にさせる処理をメッセージ毎に行うことで、メッセージの振分け先を変更させることが好ましい。
【００２０】
かかる手順によれば、負荷分散処理方法は、フィードバックステップにおいて、最も多く振り分けられたサーバグループを振分け先とするメッセージについて前記条件付確率式からスコアを再計算し、求めたスコアを基に、次点のサーバグループのスコアが基準を満たせば、振分けルールに則った現在の振分け先に最も類似した転送先であるものとして、振分け先を変更して負荷を分散させることができる。
【００２１】
本発明に係る負荷分散処理方法は、前記負荷分散処理装置が、前記転送先分類計算ステップの前に、前記入力したメッセージから構文解析には不要な予め定められたパラメータを削除して所定の語彙を構文解析の対象となるパラメータとして抽出するフィルタリングステップを実行することが好ましい。
【００２２】
かかる手順によれば、負荷分散処理方法は、メッセージの振分け先を計算する前に、フィルタリングステップにおいて、当該メッセージから構文解析には不要な予め定められたパラメータを削除するので、転送先分類計算ステップにおける演算処理を高速化することができる。
【００２３】
本発明に係る負荷分散処理方法は、前記負荷分散処理装置が、前記フィルタリングステップの前に、前記ユーザ端末から受信するメッセージの転送先が前記転送先リストに既登録であることを示すパス条件を満たすか否かを判別するパス条件判別ステップを実行し、前記パス条件を満たさない場合、前記フィルタリングステップを実行し、前記パス条件を満たす場合、前記フィルタリングステップ及び前記転送先分類計算ステップをスキップして前記送信ステップを実行することが好ましい。
【００２４】
かかる手順によれば、負荷分散処理方法は、パス条件判別ステップにおいて、入力したメッセージの転送先が転送先リストに既登録であると判別した場合、振分け先を計算することなく転送先にメッセージを転送するので、入力メッセージを効率よく振り分けることができる。
【発明の効果】
【００２５】
本発明によれば、複雑な判定条件を設定せずに転送先を決定する計算を行うことができ、且つ、トラフィック変動により生じる振り分け先の偏りに対して追従して偏りを低減することができる。
【図面の簡単な説明】
【００２６】
【図１】本発明の実施形態に係る負荷分散処理装置を含む通信システムの全体構成を示すブロック図である。
【図２】図２（ａ）及び図２（ｂ）は図１のフィルタリング手段による処理の前後のメッセージの一例を模式的に示す図である。
【図３】図１の転送先分類計算手段の内部構成例を模式的に示すブロック図である。
【図４】図１の転送先分類計算手段によるメッセージの振分けを模式的に示す説明図である。
【図５】学習データの具体例を示す図である。
【図６】図６（ａ）及び図６（ｂ）はログ情報の一例を示す模式図であり、図６（ｃ）はスコア算出結果の一例を示す模式図である。
【図７】図１の通信システムにおいて新規メッセージに対する処理の一例を示すシーケンス図である。
【図８】図１の通信システムにおいて継続メッセージに対する処理の一例を示すシーケンス図である。
【図９】図１のフィードバック手段の処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００２７】
以下、本発明の負荷分散処理装置及び負荷分散処理方法について図面を参照して詳細に説明する。
［通信システム］
図１に示す通信システム１００は、例えば、ＩＰ（Internet Protocol）電話サービスなどに適用される。通信システム１００は、複数のユーザ端末１０と、負荷分散処理装置２０と、複数のサーバグループ３０と、を備えている。
サーバグループ３０は、ユーザからのメッセージの振分け先のグループであって、少なくとも１つのアプリケーションサーバ４０からなるグループを示す。ここでは、一例として、各グループは１つのアプリケーションサーバ４０からなるものとする。
【００２８】
以下、ＳＩＰアプリケーションに関して説明する。アプリケーションサーバ４０は、セッション管理を行うものであり、ＳＩＰを用いて呼制御を行うことにより、通信ネットワークＮに接続されるユーザ端末１０間の通信サービスを提供する。なお、以下では、メッセージについて、その本文についてはメッセージのボディと呼び、そのヘッダについてはヘッダ情報又は単にメッセージと呼称する場合がある。
【００２９】
［負荷分散処理装置］
負荷分散処理装置２０は、セッション管理を行うものであり、ユーザ端末１０から送信された通信メッセージに対して宛先解決（転送先解決）の計算を行い、アプリケーションサーバ４０を決定する。負荷分散処理装置２０は、ユーザ端末１０から受信するメッセージの転送先を複数のサーバグループ３０のいずれかに決定してメッセージを振り分ける。負荷分散処理装置２０は、図１に示すように、パス条件判別手段２１と、フィルタリング手段２２と、転送先分類計算手段２３と、ログ情報記憶手段２５と、送信手段２６と、フィードバック手段２７と、を備えている。
【００３０】
＜パス条件判別手段＞
パス条件判別手段２１は、ＳＩＰメッセージが新規メッセージ（新規呼）であるのかそれとも継続メッセージ（既存呼）であるかを判定するものである。新規メッセージであれば新たに転送先を決定する必要があり、継続メッセージであればすでに転送先が決定しているため以降の宛先解決処理をスキップする。
【００３１】
パス条件判別手段２１は、ユーザ端末１０から受信するメッセージの転送先が転送先リストに既登録であることを示すパス条件を満たすか否かを判別し、パス条件を満たさないと判別した新規メッセージをフィルタリング手段２２に送り、パス条件を満たすと判別した継続メッセージを送信手段２６に送る。
【００３２】
本実施形態では、パス条件判別手段２１は、入力したＳＩＰメッセージについて、転送先リストにＣａｌｌ−ＩＤ（呼識別情報）が登録されているかどうかをチェックし、登録済みであれば転送先リストに記載された転送先に送信し、登録済みでなければフィルタリング手段２２に送ることとした。
【００３３】
＜フィルタリング手段＞
フィルタリング手段２２は、入力したメッセージを転送先分類計算手段２３にて振分けるための前処理として、当該新規メッセージから構文解析には不要な予め定められたパラメータを削除して構文解析の対象となるパラメータをスコアの算出に用いる語彙として抽出するものである。ＳＩＰメッセージ解析において不要なパラメータとは、例えば、ＩＮＶＩＴＥ信号中のＣａｌｌ−ＩＤ（呼識別情報）、シーケンスＩＤを表すＣＳｅｑ、メッセージ中のデータのタイプを指定するＣｏｎｔｅｎｔ−Ｔｙｐｅ、メッセージのボディのサイズを表すＣｏｎｔｅｎｔ−Ｌｅｎｇｔｈ等を挙げることができる。
【００３４】
また、メッセージ中の語彙のうち、ＦｒｏｍやＴｏに記載のアドレスについては、ある程度短縮しても振分け可能となる。そのため、解析を簡単にするために、本実施形態では、フィルタリング手段２２は、アドレスを短縮化することでメッセージを簡略化することとした。このようにフィルタリング手段２２がＳＩＰメッセージから解析に不要な情報を取り除き、解析対象となるパラメータを抽出し、簡略化することを、以下、フィルタリングを実施する、あるいは、フィルタリング処理を行うという。
【００３５】
図２（ａ）及び図２（ｂ）は、フィルタリング実施前後のＳＩＰヘッダ情報の具体例を示す図である。フィルタリング実施前において、図２（ａ）に示すＳＩＰヘッダ情報には、説明のため、１〜１０の行番号を付与している。フィルタリング実施後において、図２（ｂ）から明らかなように、行番号３，６，７，９，１０のパラメータが削除されている。また、行番号４，５に記載のアドレスが短縮化されている。
【００３６】
＜転送先分類計算手段＞
転送先分類計算手段２３は、事前に与えられた学習データに基づいて転送先のＳＩＰサーバを決定するための分類を行うものである。
転送先分類計算手段２３は、事前に学習したメッセージに含まれる語彙及びその転送先の組み合わせルールを規定する条件付確率式から、入力したメッセージの振分け先の候補としての特徴量を示すスコアをグループ別（アプリケーションサーバ別）に算出する。
転送先分類計算手段２３は、受信したＳＩＰメッセージがどのグループに分類されるべきかを計算し、このグループに対応した送信手段２６へメッセージを渡すことにより転送先を決定する。計算方法としては、与えられた入力がどのグループに分類されるかを算出するために例えばナイーブベイズ分類を用いる。また、計算結果について、ログ情報記憶手段２５及び転送先リストへの登録を行う。
【００３７】
≪転送先分類計算手段の構成例≫
図３は、図１の転送先分類計算手段の内部構成例を模式的に示すブロック図である。
転送先分類計算手段２３は、図３に示すように、学習データ記憶手段２３１と、ルール学習手段２３２と、ルール記憶手段２３３と、分類手段２３４と、ログ登録手段２３５と、転送先リスト登録手段２３６と、通信制御手段２３７と、を備える。
【００３８】
学習データ記憶手段２３１は、ＳＩＰメッセージに含まれる語彙と転送先の組み合わせデータである学習データを記憶するものであり、一般的なメモリやハードディスク等から構成される。なお、学習データは、後記するログ情報として記載している表形式のデータとは異なっている。
【００３９】
ルール学習手段２３２は、学習データによりＳＩＰメッセージ及び転送先の組み合わせルールを学習するものである。
ルール記憶手段２３３は、ルール学習手段２３２が学習したルールを規定する条件付確率式を記憶するものであり、一般的なメモリやハードディスク等から構成される。
【００４０】
分類手段２３４は、入力したメッセージに含まれる語彙を用いて条件付確率式からスコアを算出することで、受信したＳＩＰメッセージがどのグループに分類されるべきかを計算する。分類手段２３４は、ナイーブベイズ分類器であって、ラプラススムージングにより、ＳＩＰメッセージのデータの中に事前の学習データに含まれていない情報がある場合でも、内容が似ているグループに分類することができる。
【００４１】
ログ登録手段２３５は、入力したメッセージからフィルタリング手段２２で抽出されて構文解析の対象となった語彙と、分類手段２３４によって決定した振分け先とをログ情報としてログ情報記憶手段２５に登録するものである。
【００４２】
転送先リスト登録手段２３６は、分類手段２３４にて分類した新規メッセージの転送先をパス条件判別手段２１に渡すことで、転送先リストに登録するものである。転送先リスト登録手段２３６は、分類手段２３４によって求めたスコア最上位のグループ（アプリケーションサーバ４０）を転送先としてパス条件判別手段２１に渡す。
【００４３】
通信制御手段２３７は、分類手段２３４にて分類した新規メッセージの転送先を示すグループ（アプリケーションサーバ４０）に対応した送信手段２６へＳＩＰメッセージを渡すものである。本実施形態では、通信制御手段２３７は、フィードバック手段２７が、振分け先の変更を指示した場合、変更された転送先を示すグループ（アプリケーションサーバ４０）に対応した送信手段２６へＳＩＰメッセージを渡す。
【００４４】
図４は、転送先分類計算手段２３が、事前に学習データ４０１を用いて学習した振分けルールによってメッセージを振り分ける処理を表す概念図である。ここでは、ユーザａａａ、ユーザａａｂ、…からのメッセージをグループＡに振り分け、ユーザｂｂａ、ユーザｂｂｂ、…からのメッセージをグループＢに振り分け、ユーザｃｃｃ…からのメッセージをグループＣに振り分けるような振分けルールを学習したことを概念的に示している。なお、学習データは、実際には、図４に示すようなユーザと振分け先とをテーブル形式に表したものではなく、例えば図５に示すようなデータ構造を有している。
【００４５】
図５は、学習データを生成するためにＳＩＰヘッダ情報からなるサンプルデータを用いて学習させた結果のデータ例を示す図である。ここでは、ｈａｓｈ構造データをＪＳＯＮ形式にて表現したが、ＪＳＯＮ以外であってもよい。また、この例では、分類先は２つのグループＣ１，Ｃ２とした。
符号５１０で示す行は、学習データの元になる３０個のサンプルデータを用いたことを示し、符号５２０で示す行は、これらサンプルデータについての分類先ごとの内訳（個数）を示す。
符号５３０で示す行は、ナイーブベイズ分類に用いる条件付確率式の演算を高速化するために便宜的に計算に用いられるテンポラリデータを示す。
符号５４０で示す行は、ＳＩＰヘッダのパラメータを分解したものであってＳＩＰヘッダに含まれる全語彙を示す。
符号５５０で示す行は、全サンプルデータ中に、各語彙がそれぞれ何回出現するかを分類先毎にカウントしたカウント値を示している。これらのうち、符号５５１で示す行は、分類先がグループＣ１であるものに関し、符号５５２で示す行は、分類先がグループＣ２であるものに関する。
【００４６】
図１に戻って、負荷分散処理装置２０の構成の説明を続ける。
＜ログ情報記憶手段＞
ログ情報記憶手段２５は、ＳＩＰメッセージの内容及び決定された転送先を記録するものであり、一般的なメモリやハードディスク等から構成される。このログ情報記憶手段２５がメッセージ内容及びロードバランス先を蓄積することで、フィードバック手段２７を介して転送先分類計算手段２３へフィードバックを与えることができる。
【００４７】
ログ情報記憶手段２５に蓄積されるログ情報の一例を図６（ａ）に示す。図６（ａ）に示すように、ログ情報６０１は、表形式のデータであって、ここでは、テーブルの項目として、例えば、ＳＩＰヘッダ情報のうち解析に用いた語彙としてＦｒｏｍやＴｏに記載のアドレス等を格納している。また、テーブルの項目として、転送先分類計算手段２３で振分けられた振分け先を格納している。この例では、振分け先の情報をグループ（アプリケーションサーバ４０）の識別子とした。以下では、振分け先を、グループＡ、グループＣのように表記する。ログ情報は、呼毎（コネクション毎）に蓄積される。
【００４８】
図１に戻って、負荷分散処理装置２０の構成の説明を続ける。
転送先分類計算手段２３は、複数のユーザ端末１０からのメッセージを並列処理することが可能であり、図１ではその一例として３つの転送先分類計算手段２３を図示している。同様に、フィルタリング手段２２は、複数のユーザ端末１０からのメッセージを並列処理することが可能であり、図１ではその一例として３つのフィルタリング手段２２を図示している。
【００４９】
＜送信手段＞
送信手段２６は、転送先分類計算手段２３で振分けられたメッセージを転送先リストに記載された対応する転送先へ送信するものである。送信手段２６は、一般的な通信インタフェースで構成される。図１では、送信手段２６に複数のキューを示して、転送先分類計算手段２３にて振り分けたメッセージの転送先を示すグループ（アプリケーションサーバ４０）にそれぞれ対応した複数のキューから、ＳＩＰメッセージが送信されることを模式的に表している。
【００５０】
＜フィードバック手段＞
フィードバック手段２７は、トラフィックの変動により生じる振り分け先の偏りを平準化するために、定期的にログ情報によって偏りを計算し、振り分け先が均等になるよう学習データの再生成を行い、学習データを更新するものである。フィードバック手段２７は、学習データをフィードバックとして転送先分類計算手段２３へ与える。ここで、再生成とは、定期的に検出される偏りの大きさに応じて学習データを生成する処理を繰り返すことと、新たな学習データで旧学習データ全体を上書可能に更新させることとを意味する。
【００５１】
フィードバック手段２７は、ログ情報記憶手段２５に記憶されたログ情報を定期的に振分け先別に集計する。フィードバック手段２７は振分け先をカウントすることにより偏りを計算する。計算で求める偏り（値）は、例えば、平均、分散、偏差値等の所望の統計量を用いて定義することができる。例えば、最も多く振り分けられた第１位のグループと第２位のグループとのカウント数の差分値等で定義してもよい。また、メッセージを振り分けるグループの数や、メッセージの振分けルールに応じて定めてもよい。
【００５２】
フィードバック手段２７がログ情報を集計する間隔は、特に限定されず、また、等間隔でなくともよい。この集計間隔は、計算で求める偏り（値）の定義、振分けルール、目標とする負荷分散処理性能等に応じて所望の値を適宜設定することができる。
【００５３】
フィードバック手段２７は、振分け先の偏りが所定の第１閾値より大きい場合、最も多く振り分けられたサーバグループ３０を振分け先とするメッセージのうち所定条件を満たすメッセージの振分け先を他のサーバグループ３０に変更させる。ここで、第１閾値は、計算で求める偏り（値）の定義、振分けルール、目標とする負荷分散処理性能等に応じて所望の値を適宜設定することができる。また、所定条件とは、最も多く振り分けられた振分け先を転送先とする多数のメッセージのうち、振分け先を変更しないメッセージを残して、振分け先を変更させるメッセージを抽出する基準となる条件である。
【００５４】
フィードバック手段２７は、ログ情報記憶手段２５から、最も多く振り分けられたサーバグループ３０を振分け先とするメッセージに関するログ情報を抽出して、抽出したログ情報に含まれる語彙を用いて振分け先の候補としての特徴量を示すスコアをサーバグループ３０別に算出する。スコアの算出方法は、転送先分類計算手段２３と同様の方法を用いる。
【００５５】
本実施形態では、フィードバック手段２７は、前記振分け先を変更させるメッセージを抽出する基準となる所定条件として、算出したスコアが次点となるグループを求めて当該次点のスコアが所定の第２閾値よりも大きい場合に、当該次点のスコアに対応したグループ（アプリケーションサーバ４０）を当該メッセージの新たな振分け先にさせる処理をメッセージ毎に行うことで、メッセージの振分け先を変更させることとした。ここで、第２閾値は、スコア、振分けルール、目標とする負荷分散処理性能等に応じて所望の値を適宜設定することができる。フィードバック手段２７は、メッセージの振分け先を変更させたときに当該振分け先の変更を反映して学習データを再生成して更新する。
【００５６】
例えば、振分け先がグループＡに偏っている場合、フィードバック手段２７は、振分け先がグループＡとなっているメッセージ（コネクション）に関してグループ毎にスコアの再計算を行う。スコア第１位のグループは当然にグループＡである。そして、グループ毎のスコアの次点が例えばグループＢであってそのグループＢのスコアが第２閾値を上回る場合、フィードバック手段２７は、振分け先をグループＢへ変更させる。そして、新たな振分け先に振り分けられるように学習データを再生成し、転送先分類計算手段２３の学習データを更新することにより、グループＡへの振分けの偏りを解消する。
【００５７】
具体的には、図６（ｂ）に示すログ情報６０２では、Ｎｏ．１のコネクションの振分け先がグループＡとなっており、Ｎｏ．２のコネクションの振分け先もグループＡとなっているものとする。そして、図６（ｂ）に示すログ情報６０２から計算されたスコア情報６０３は、図６（ｃ）に示すように、ログ情報６０２のＮｏ.１のコネクションについて、グループＡを振分け先候補とする場合のスコアが９２、グループＢを振分け先候補とする場合のスコアが８７、グループＣを振分け先候補とする場合のスコアが４０、…のように算出されことを示している。また、図６（ｃ）に示すスコア情報６０３は、ログ情報６０２のＮｏ．２のコネクションについて、グループＡを振分け先候補とする場合のスコアが８８、グループＢを振分け先候補とする場合のスコアが１２、グループＣを振分け先候補とする場合のスコアが２２、…のように算出されことを示している。
【００５８】
そして、第２閾値を例えば６０とした場合、ログ情報６０２のＮｏ．１のコネクションについて、次点であるグループＢのスコア（＝８７）が第２閾値（＝６０）よりも大きいので、Ｎｏ．１のコネクションの振分け先は、グループＡからグループＢに変更されることとなる。また、このとき、ログ情報６０２のＮｏ．２のコネクションについては、次点であるグループＣのスコア（＝２２）が第２閾値（＝６０）以下なので、Ｎｏ．２のメッセージの振分け先は、グループＡから変更されることはない。
【００５９】
よって、フィードバック手段２７によれば、メッセージの宛先解決を優先した上で効率よく負荷分散を行うことができる。また、例えば学習データとして正常なメッセージと不正なメッセージとを与えておき、不正な信号メッセージをフィルタリングするといった用途として用いた場合、負荷分散を優先させてメッセージの宛先解決を疎かにするといった事態を回避することができる。
【００６０】
［負荷分散処理装置の動作］
＜基本動作＞
図１に示す通信システム１００の中における負荷分散処理装置２０の基本動作について図７及び図８を参照して説明する。図７はＳＩＰメッセージが新規メッセージであると判定された場合の動作を示すシーケンス図であり、図８はＳＩＰメッセージが継続メッセージであると判定された場合の動作を示すシーケンス図である。
【００６１】
負荷分散処理装置２０は、ユーザ端末１０から、転送先のサーバが未定のＳＩＰメッセージを受信すると（ステップＳ７０１）、パス条件判別手段２１が、転送先リストのＣａｌｌ−ＩＤによって新規メッセージであると判定する（ステップＳ７０２）。このような新規メッセージであれば新たに転送先を決定する必要がある。そして、ＳＩＰメッセージがフィルタリング手段２２へ渡される（ステップＳ７０３）。フィルタリング手段２２は、ＳＩＰメッセージのフィルタリング処理を行う（ステップＳ７０４）。そして、フィルタリングされたＳＩＰメッセージが転送先分類計算手段２３へ渡される（ステップＳ７０５）。
【００６２】
転送先分類計算手段２３は、事前に学習データとして与えられたＳＩＰメッセージ及び転送先の組み合わせルールに従って、受信したＳＩＰメッセージがどのグループに分類されるべきかを表す転送先（振分け先）を計算する（ステップＳ７０６）。そして、振分け先が決定されたＳＩＰメッセージが、このグループに対応した送信手段２６へ渡される（ステップＳ７０７）。送信手段２６は、該当のアプリケーションサーバ４０へＳＩＰメッセージを転送する（ステップＳ７０８）。
【００６３】
また、転送先分類計算手段２３は、ログ情報をパス条件判別手段２１に渡し（ステップＳ７０９）、パス条件判別手段２１が、転送先リストへの登録を行う（ステップＳ７１０）。さらに、転送先分類計算手段２３は、ログ情報をログ情報記憶手段２５に渡し（ステップＳ７１１）、ログ情報記憶手段２５がログ情報を登録する（ステップＳ７１２）。
【００６４】
一方、図８に示すように、負荷分散処理装置２０が、ユーザ端末１０から、転送先のサーバが既知のＳＩＰメッセージを受信すると（ステップＳ８０１）、パス条件判別手段２１が、転送先リストのＣａｌｌ−ＩＤによって継続メッセージであると判定する（ステップＳ８０２）。このような継続メッセージであれば既に転送先が決定しているため、宛先を解決するための処理をスキップする。そして、ＳＩＰメッセージが転送先リストに記載された対応する送信手段２６へ渡され（ステップＳ８０３）、送信手段２６は、該当のアプリケーションサーバ４０へＳＩＰメッセージを転送する（ステップＳ８０４）。
【００６５】
＜フィードバック手段の動作の概要＞
図３を参照してフィードバック手段２７の動作の概要について説明する。フィードバック手段２７の動作の前提として、まず、転送先分類計算手段２３は、入力パラメータ及び計算結果をログ情報記憶手段２５へ蓄積する（ステップＳ３０１：ログ蓄積）。ログ情報記憶手段２５は、メッセージに含まれる語彙（メッセージ内容）と振分け先（ロードバランス先）とを蓄積する。
【００６６】
そして、フィードバック手段２７は定期的にログ情報記憶手段２５からログ情報を取得し（ステップＳ３０２：ログ取得）、振分け先の偏りがないかどうかを計算し確認する。そして、偏りが大きい場合、フィードバック手段２７は、これを平準化させるようスコアを計算してロードバランス先を決定し、学習データを再生成し（ステップＳ３０３：学習データ再生成）、転送先分類計算手段２３に新たな学習データを付与する（ステップＳ３０４：フィードバック）。
【００６７】
＜フィードバック手段の動作の詳細＞
図９は、フィードバック手段２７における、ログ情報に基づくスコア計算、学習データの再生成及び転送先分類計算手段２３へのフィードバックに関するフローチャートである。
【００６８】
フィードバック手段２７は、定期的にログ情報記憶手段２５から振分け先別にログ情報を取得し（ステップＳ９０１）、振分け先の偏りを計算する（ステップＳ９０２）。そして、フィードバック手段２７は、偏り（値）が第１閾値を超えているか否かを判別する（ステップＳ９０３）。振分け先の偏り（値）が第１閾値を超えている場合（ステップＳ９０３：Ｙｅｓ）、フィードバック手段２７は、メッセージ毎にスコアを計算する（ステップＳ９０４）。
【００６９】
フィードバック手段２７は、次点の振分け先候補のスコアが第２閾値を超えているか否かを判別する（ステップＳ９０５）。スコアが第２閾値を超えている場合（ステップＳ９０５：Ｙｅｓ）、フィードバック手段２７は、振分け先を更新して（ステップＳ９０６）、ステップＳ９０７に進む。一方、前記ステップＳ９０５において、スコアが第２閾値以下である場合（ステップＳ９０５：Ｎｏ）、フィードバック手段２７は、振分け先を更新することなくステップＳ９０７に進む。
【００７０】
ステップＳ９０７において、フィードバック手段２７は、スコアの判定をすべきログ情報が残っているか否かを判別する。残っていれば（ステップＳ９０７：Ｙｅｓ）、ステップＳ９０４に戻り、残っていなければ（ステップＳ９０７：Ｎｏ）、振り分け先の更新があるか否かを判別する（ステップＳ９０８）。振り分け先の更新がある場合（ステップＳ９０８：Ｙｅｓ）、フィードバック手段２７は、学習データを新たに生成し（ステップＳ９０９）、転送先分類計算手段２３の学習データを更新させ（ステップＳ９１０）、処理を終了する。一方、前記ステップＳ９０８において、振り分け先の更新がない場合（ステップＳ９０８：Ｎｏ）、そのまま処理を終了する。なお、前記ステップＳ９０３において、振分け先の偏り（値）が第１閾値を超えていなければ（ステップＳ９０３：Ｎｏ）、ステップＳ９０８において、振り分け先の更新がないと判別され（ステップＳ９０８：Ｎｏ）、そのまま処理を終了する。
【００７１】
以上説明したように、本実施形態に係る負荷分散処理装置２０は、トラフィック変動への追従により生じる負荷分散の偏りを平準化させ、トラフィックの分散を均一にすることができる。また、負荷分散処理装置２０は、従来の前記第１手法の如くパラメータごとに条件を設定するような複雑な振分ルールを定義することなく、特定ユーザのリクエストを特定サーバに送信する（振り分ける）ように宛先解決を行い、セッションを維持させることができる。
【００７２】
以上、本発明の実施形態について説明したが、本発明はこれに限定されるものではなく、その趣旨を変えない範囲で実施することができる。例えば、本実施形態では、ＳＩＰアプリケーションに関して説明したが、通信プロトコルとして、ＳＩＰ以外のその他のプロトコルを利用する場合にも、本発明を同様に適用することができる。
【００７３】
また、機械学習による分類としてナイーブベイズ分類を用いるものとして説明したが、これに限らず例えばＳＶＭ等の機械学習を用いても本発明を同様に適用することができる。
【００７４】
また、転送先リスト記憶手段２４をパス条件判別手段２１の内部に備えることとしたが、これに限定されず、パス条件判別手段２１から書込み及び読出しが可能であれば転送先リスト記憶手段２４をパス条件判別手段２１の外部に設けてもよい。その場合、転送先リスト登録手段２３６が、メッセージの転送先を転送先リスト記憶手段２４に書き込むこととする。
【００７５】
また、学習データ記憶手段２３１を転送先分類計算手段２３の内部に備えることとしたが、これに限定されず、転送先分類計算手段２３から書込み及び読出しが可能であれば学習データ記憶手段２３１を転送先分類計算手段２３の外部に設けてもよい。なお、転送先分類計算手段２３が並列処理を行う場合、フィードバック手段２７は、学習データ更新の際にローリングアップデートを行うので、転送先分類計算手段２３の内部に学習データ記憶手段を備えることが好ましい。
【符号の説明】
【００７６】
１０    ユーザ端末
２０    負荷分散処理装置
２１    パス条件判別手段
２２    フィルタリング手段
２３    転送先分類計算手段
２４    転送先リスト記憶手段
２５    ログ情報記憶手段
２６    送信手段
２７    フィードバック手段
３０    サーバグループ
４０    アプリケーションサーバ
１００  通信システム
２３１  学習データ記憶手段
２３２  ルール学習手段
２３３  ルール記憶手段
２３４  分類手段
２３５  ログ登録手段
２３６  転送先リスト登録手段
２３７  通信制御手段
Ｎ      通信ネットワーク
【図１】
0006040183.tif 000002
【図２】
0006040183.tif 000003
【図３】
0006040183.tif 000004
【図４】
0006040183.tif 000005
【図５】
0006040183.tif 000006
【図６】
0006040183.tif 000007
【図７】
0006040183.tif 000008
【図８】
0006040183.tif 000009
【図９】
0006040183.tif 000010