(57)【要約】【課題】ＳＩＰプロトコルのパーシステンスを維持しながらＳＩＰメッセージ処理の負荷分散を実現することを課題とする。【解決手段】ＳＩＰメッセージ振分装置１０は、ＳＩＰメッセージから当該ＳＩＰメッセージが属するセッションに関する情報であるセッション情報を抽出する。そして、ＳＩＰメッセージ振分装置１０は、抽出されたセッション情報を用いて、ハッシュ演算を行ってハッシュ値を算出する。続いて、ＳＩＰメッセージ振分装置１０は、算出されたハッシュ値に応じて、ＳＩＰメッセージの振り分け先を決定する。【選択図】        図１
2010003273.tif 000002
【特許請求の範囲】
【請求項１】
ＳＩＰメッセージの振り分け先を決定し、当該振り分け先にＳＩＰメッセージを転送するＳＩＰメッセージ振分方法であって、
ＳＩＰメッセージから当該ＳＩＰメッセージが属するセッションに関する情報であるセッション情報を抽出するセッション情報抽出工程と、
前記セッション情報抽出工程によって抽出された前記セッション情報を用いて、ハッシュ演算を行ってハッシュ値を算出するハッシュ演算工程と、
前記ハッシュ演算工程によって算出された前記ハッシュ値に応じて、ＳＩＰメッセージの振り分け先を決定する振り分け先決定工程と、
を含んだことを特徴とするＳＩＰメッセージ振分方法。
【請求項２】
前記セッション情報抽出工程は、前記セッション情報として、ＳＩＰメッセージの送信元を示す送信元情報、ＳＩＰメッセージの送信先を示す送信先情報、呼を一意に識別する呼識別子のいずれか一つまたは複数を前記ＳＩＰメッセージから抽出することを特徴とする請求項１に記載のＳＩＰメッセージ振分方法。
【請求項３】
前記ハッシュ演算工程は、複数のハッシュ関数を用いてハッシュ演算を行い、それぞれのハッシュ値を算出し、
前記ハッシュ演算工程によって算出された各ハッシュ値のヒット数をカウントして、前記複数のハッシュ関数をそれぞれ評価するハッシュ関数評価工程と、
前記ハッシュ関数評価工程によって評価された前記複数のハッシュ関数のうち、最もバランスの良いハッシュ関数を採用するハッシュ関数採用工程と、
をさらに含んだことを特徴とする請求項１または２に記載のＳＩＰメッセージ振分方法。
【請求項４】
前記振り分け先決定工程は、前記ＳＩＰメッセージの振り分け先として、複数のＳＩＰサーバのうち、いずれか一つのＳＩＰサーバを決定することを特徴とする請求項１〜３のいずれか一つに記載のＳＩＰメッセージ振分方法。
【請求項５】
前記振り分け先決定工程は、前記ＳＩＰメッセージの振り分け先として、複数の呼処理プロセスのうち、いずれか一つの呼処理プロセスを決定することを特徴とする請求項１〜３のいずれか一つに記載のＳＩＰメッセージ振分方法。
【請求項６】
ＳＩＰメッセージの振り分け先を決定し、当該振り分け先にＳＩＰメッセージを転送するＳＩＰメッセージ振分装置であって、
ＳＩＰメッセージから当該ＳＩＰメッセージが属するセッションに関する情報であるセッション情報を抽出するセッション情報抽出手段と、
前記セッション情報抽出手段によって抽出された前記セッション情報を用いて、ハッシュ演算を行ってハッシュ値を算出するハッシュ演算手段と、
前記ハッシュ演算手段によって算出された前記ハッシュ値に応じて、ＳＩＰメッセージの振り分け先を決定する振り分け先決定手段と、
を備えたことを特徴とするＳＩＰメッセージ振分装置。
【請求項７】
前記セッション情報抽出手段は、前記セッション情報として、ＳＩＰメッセージの送信元を示す送信元情報、ＳＩＰメッセージの送信先を示す送信先情報、呼を一意に識別する呼識別子のいずれか一つまたは複数を前記ＳＩＰメッセージから抽出することを特徴とする請求項６に記載のＳＩＰメッセージ振分装置。
【請求項８】
前記ハッシュ演算手段は、複数のハッシュ関数を用いてハッシュ演算を行い、それぞれのハッシュ値を算出し、
前記ハッシュ演算手段によって算出された各ハッシュ値のヒット数をカウントして、前記複数のハッシュ関数をそれぞれ評価するハッシュ関数評価手段と、
前記ハッシュ関数評価手段によって評価された前記複数のハッシュ関数のうち、最もバランスの良いハッシュ関数を採用するハッシュ関数採用手段と、
をさらに備えたことを特徴とする請求項６または７に記載のＳＩＰメッセージ振分装置。
【請求項９】
前記振り分け先決定手段は、前記ＳＩＰメッセージの振り分け先として、複数のＳＩＰサーバのうち、いずれか一つのＳＩＰサーバを決定することを特徴とする請求項６〜８のいずれか一つに記載のＳＩＰメッセージ振分装置。
【請求項１０】
前記振り分け先決定手段は、前記ＳＩＰメッセージの振り分け先として、複数の呼処理プロセスのうち、いずれか一つの呼処理プロセスを決定することを特徴とする請求項６〜８のいずれか一つに記載のＳＩＰメッセージ振分装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ＳＩＰメッセージの振り分け先を決定し、当該振り分け先にＳＩＰメッセージを転送するＳＩＰメッセージ振分方法およびＳＩＰメッセージ振分装置に関する。
【背景技術】
【０００２】
近年、ＩＰ電話の呼制御を実現するプロトコルであるＳＩＰ（Session  Initiation  Protocol）が普及している。このようなＩＰ電話の普及にともないサーバ側にＳＩＰメッセージ処理の負荷分散も必要になってきた。ただし、ＳＩＰ仕様では、「パーシステンス」と呼ばれる要求条件がある。
【０００３】
つまり、同一のＳＩＰセッションのメッセージは必ず同一の割当先で処理しなければならないことであり、これを実現するための仕組みが求められる。そこで、同じセッションに属するパケットを常に同じ割当先で処理させながら、処理の負荷分散を行う従来の方式として、ＩＰパケットのレイヤ３またはレイヤ４のヘッダ情報（送信元ＩＰアドレス、宛先ＩＰアドレス、送信元ポート、宛先ポートなど）に基づいて、割当先を決める技術が知られている（例えば、非特許文献１参照）。
【０００４】
【非特許文献１】ＣＩＳＣＯ  ＤｏｃｕｍｅｎｔＩＤ：１２０２３、”Understanding  EtherChannel  Load  Balancing  and  Redundancy  on  Catalyst  Switches”、［online］、［平成２０年６月９日検索］、インターネット＜http://www.cisco.com/warp/public/473/4.pdf＞
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、従来の技術では、ＩＰパケットのレイヤ２からレイヤ４までの情報からロードバランシングのポリシーを策定し、同じセッションに属するパケットを常に同じ装置あるいはプロセッサで処理させる。これは、従来のクライアント・サーバモデルと呼ばれる構成を前提とし、同じセッションに属するクライアントは一つしかないと想定されるため有効である。
【０００６】
しかしながら、ＳＩＰの場合には、同一のセッションに属するクライアントは通常送信側と受信側の２台があるため、レイヤ３とレイヤ４だけの情報では、この２台のクライアントがセッション中に必ず同一サーバプロセスに割当てる保証ができない。その結果、ＳＩＰプロトコルの要求条件であるパーシステンスを実現するには不十分という問題点がある。
【０００７】
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、ＳＩＰプロトコルのパーシステンスを維持しながらＳＩＰメッセージ処理の負荷分散を実現することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するため、請求項１に係る発明は、ＳＩＰメッセージの振り分け先を決定し、当該振り分け先にＳＩＰメッセージを転送するＳＩＰメッセージ振分方法であって、ＳＩＰメッセージから当該ＳＩＰメッセージが属するセッションに関する情報であるセッション情報を抽出するセッション情報抽出工程と、前記セッション情報抽出工程によって抽出された前記セッション情報を用いて、ハッシュ演算を行ってハッシュ値を算出するハッシュ演算工程と、前記ハッシュ演算工程によって算出された前記ハッシュ値に応じて、ＳＩＰメッセージの振り分け先を決定する振り分け先決定工程と、を含んだことを特徴とする。
【０００９】
また、請求項２に係る発明は、上記の発明において、前記セッション情報抽出工程は、前記セッション情報として、ＳＩＰメッセージの送信元を示す送信元情報、ＳＩＰメッセージの送信先を示す送信先情報、呼を一意に識別する呼識別子のいずれか一つまたは複数を前記ＳＩＰメッセージから抽出することを特徴とする。
【００１０】
また、請求項３に係る発明は、上記の発明において、前記ハッシュ演算工程は、複数のハッシュ関数を用いてハッシュ演算を行い、それぞれのハッシュ値を算出し、前記ハッシュ演算工程によって算出された各ハッシュ値のヒット数をカウントして、複数のハッシュ関数をそれぞれ評価するハッシュ関数評価工程と、前記ハッシュ関数評価工程によって評価された複数のハッシュ関数のうち、最もバランスの良いハッシュ関数を採用するハッシュ関数採用工程と、をさらに含んだことを特徴とする。
【００１１】
また、請求項４に係る発明は、上記の発明において、前記振り分け先決定工程は、前記ＳＩＰメッセージの振り分け先として、複数のＳＩＰサーバのうち、いずれか一つのＳＩＰサーバを決定することを特徴とする。
【００１２】
また、請求項５に係る発明は、上記の発明において、前記振り分け先決定工程は、前記ＳＩＰメッセージの振り分け先として、複数の呼処理プロセスのうち、いずれか一つの呼処理プロセスを決定することを特徴とする。
【００１３】
また、請求項６に係る発明は、ＳＩＰメッセージの振り分け先を決定し、当該振り分け先にＳＩＰメッセージを転送するＳＩＰメッセージ振分装置であって、ＳＩＰメッセージから当該ＳＩＰメッセージが属するセッションに関する情報であるセッション情報を抽出するセッション情報抽出手段と、前記セッション情報抽出手段によって抽出された前記セッション情報を用いて、ハッシュ演算を行ってハッシュ値を算出するハッシュ演算手段と、前記ハッシュ演算手段によって算出された前記ハッシュ値に応じて、ＳＩＰメッセージの振り分け先を決定する振り分け先決定手段と、を備えたことを特徴とする。
【００１４】
また、請求項７に係る発明は、上記の発明において、前記セッション情報抽出手段は、前記セッション情報として、ＳＩＰメッセージの送信元を示す送信元情報、ＳＩＰメッセージの送信先を示す送信先情報、呼を一意に識別する呼識別子のいずれか一つまたは複数を前記ＳＩＰメッセージから抽出することを特徴とする。
【００１５】
また、請求項８に係る発明は、上記の発明において、前記ハッシュ演算手段は、複数のハッシュ関数を用いてハッシュ演算を行い、それぞれのハッシュ値を算出し、前記ハッシュ演算手段によって算出された各ハッシュ値のヒット数をカウントして、複数のハッシュ関数をそれぞれ評価するハッシュ関数評価手段と、前記ハッシュ関数評価手段によって評価された複数のハッシュ関数のうち、最もバランスの良いハッシュ関数を採用するハッシュ関数採用手段と、をさらに備えたことを特徴とする。
【００１６】
また、請求項９に係る発明は、上記の発明において、前記振り分け先決定手段は、前記ＳＩＰメッセージの振り分け先として、複数のＳＩＰサーバのうち、いずれか一つのＳＩＰサーバを決定することを特徴とする。
【００１７】
また、請求項１０に係る発明は、上記の発明において、前記振り分け先決定手段は、前記ＳＩＰメッセージの振り分け先として、複数の呼処理プロセスのうち、いずれか一つの呼処理プロセスを決定することを特徴とする。
【発明の効果】
【００１８】
請求項１または６の発明によれば、ＳＩＰメッセージから当該ＳＩＰメッセージが属するセッションに関する情報であるセッション情報を抽出し、抽出されたセッション情報を用いて、ハッシュ演算を行ってハッシュ値を算出し、算出されたハッシュ値に応じて、ＳＩＰメッセージの振り分け先を決定するので、同じセッションに属するＳＩＰメッセージを必ず同じ割当て先で処理させる結果、ＳＩＰプロトコルのパーシステンスを維持しながらＳＩＰメッセージ処理の負荷分散を実現することが可能である。
【００１９】
また、請求項２または７の発明によれば、セッション情報として、ＳＩＰメッセージの送信元を示す送信元情報、ＳＩＰメッセージの送信先を示す送信先情報、呼を一意に識別する呼識別子のいずれか一つまたは複数をＳＩＰメッセージから抽出するので、例えば、Ｔｏ−ＵＲＩ、Ｆｒｏｍ−ＵＲＩ、Ｃａｌｌ−ＩＤ等のユニーク性の高い値からハッシュ演算を行うことが可能である。
【００２０】
また、請求項３または８の発明によれば、複数のハッシュ関数を用いてハッシュ演算を行い、それぞれのハッシュ値を算出し、算出された各ハッシュ値のヒット数をカウントして、複数のハッシュ関数をそれぞれ評価し、評価された複数のハッシュ関数のうち、最もバランスの良いハッシュ関数を採用するので、各割り当て先の負荷を監視せずに、負荷分散のバランスを維持することが可能である。
【００２１】
また、請求項４または９の発明によれば、ＳＩＰメッセージの振り分け先として、複数のＳＩＰサーバのうち、いずれか一つのＳＩＰサーバを決定するので、複数のＳＩＰ間の負荷を分散することが可能である。
【００２２】
また、請求項５または１０の発明によれば、ＳＩＰメッセージの振り分け先として、複数の呼処理プロセスのうち、いずれか一つの呼処理プロセスを決定するので、複数の呼処理プロセス間の負荷を分散することが可能である。
【発明を実施するための最良の形態】
【００２３】
以下の実施例では、実施例１に係るＳＩＰメッセージ振分装置の概要および特徴、ＳＩＰメッセージ振分装置の構成および処理の流れを順に説明し、最後に実施例１による効果を説明する。
【実施例１】
【００２４】
以下の実施例では、実施例１に係るＳＩＰメッセージ振分装置の構成および処理の流れを順に説明し、最後に実施例１による効果を説明する。
【００２５】
［実施例１に係るＳＩＰメッセージ振分装置の概要および特徴］
まず最初に、図１を用いて、実施例１に係るＳＩＰメッセージ振分装置の概要および特徴を説明する。図１は、実施例１に係るＳＩＰメッセージ振分装置の概要および特徴を説明するための図である。
【００２６】
図１に示すように、ＳＩＰメッセージ振分装置を含むシステム（以下、ＳＩＰネットワークシステム）では、ＳＩＰを用いて通信を行う複数のＳＩＰサーバ１〜ｎと複数のＳＩＰクライアントとがネットワークを介して相互に通信可能に接続されて構成され、また、ＳＩＰサーバとネットワークとの間にはＳＩＰメッセージ振分装置１０が接続されて構成される。なお、データベース（図１では、ＤＢ）は、各ＳＩＰサーバに接続され、ＳＩＰサーバ間で共有されるユーザ情報を管理する。
【００２７】
このような構成において、実施例１のＳＩＰメッセージ振分装置１０では、上記したように、ＳＩＰメッセージの振り分け先であるＳＩＰサーバを決定し、決定されたＳＩＰサーバにＳＩＰメッセージを転送することを概要とする。そして、このＳＩＰメッセージ振分装置１０では、ＳＩＰプロトコルのパーシステンスを維持しながらＳＩＰメッセージ処理の負荷分散を実現する点に主たる特徴がある。
【００２８】
この主たる特徴について具体的に説明すると、ＳＩＰメッセージ振分装置１０は、ＳＩＰメッセージから当該ＳＩＰメッセージが属するセッションに関する情報であるセッション情報を抽出する（図１の（１）参照）。具体的には、ＳＩＰメッセージ振分装置１０は、ＳＩＰクライアント装置からＳＩＰメッセージを受信すると、ＳＩＰメッセージの送信先を示す「Ｔｏ−ＵＲＩ」、ＳＩＰメッセージの送信元を示す「Ｆｒｏｍ−ＵＲＩ」および呼を一意に識別する「Ｃａｌｌ−ＩＤ」をＳＩＰメッセージから抽出する。
【００２９】
そして、ＳＩＰメッセージ振分装置１０は、抽出されたセッション情報を用いて、ハッシュ演算を行ってハッシュ値を算出する（図１の（２）参照）。具体的には、ＳＩＰメッセージ振分装置１０は、抽出された「Ｔｏ−ＵＲＩ」、「Ｆｒｏｍ−ＵＲＩ」および「Ｃａｌｌ−ＩＤ」の値と、予め決められたハッシュ関数とでハッシュ演算を行ってハッシュ値を得る。
【００３０】
続いて、ＳＩＰメッセージ振分装置１０は、算出されたハッシュ値に応じて、ＳＩＰメッセージの振り分け先を決定する（図１の（３）参照）。具体的には、ＳＩＰメッセージ振分装置１０は、算出されたハッシュ値に対応する割当先ＩＤを割当先テーブル（後に図３を用いて詳述）から検索し、検索された割当先ＩＤのＳＩＰサーバをＳＩＰメッセージの割り当て先に決定する。その後、ＳＩＰメッセージ振分装置１０は、割り当て先に決定されたＳＩＰサーバにＳＩＰメッセージを転送する。
【００３１】
［ＳＩＰメッセージ振分装置の構成］
次に、図２〜図５を用いて、実施例１に係るＳＩＰメッセージ振分装置の構成を説明する。図２は、ＳＩＰメッセージ振分装置の構成を示すブロック図である。図３は、振分先テーブルの一例を説明するための図である。図４は、ハッシュ演算処理について説明するための図である。図５は、ＳＩＰメッセージ振分処理を説明するための図である。
【００３２】
図２に示すように、このＳＩＰメッセージ振分装置１０は、通信制御Ｉ／Ｆ部１１、制御部１２、記憶部１３を備え、ネットワークを介してＳＩＰクライアントおよびＳＩＰサーバと接続される。以下にこれらの各部の処理を説明する。
【００３３】
通信制御Ｉ／Ｆ部１１は、接続されるＳＩＰクライアントおよびＳＩＰサーバとの間でやり取りする各種情報に関する通信を制御する。具体的には、通信制御Ｉ／Ｆ部１１は、ＳＩＰクライアントからＳＩＰメッセージを受信し、また、ＳＩＰサーバへＳＩＰメッセージを送信する。
【００３４】
記憶部１３は、制御部１２による各種処理に必要なデータおよびプログラムを格納するが、特に本発明に密接に関連するものとしては、割当先テーブル１３ａを備える。この割当先テーブル１３ａは、図３に例示するように、ハッシュ値と割当て先ＩＤとを対応付けて記憶する。図３の例では、ＳＩＰメッセージの割当先として４つのＳＩＰサーバがある場合であり、各ＳＩＰサーバにａ〜ｄいずれかの割当て先ＩＤが付与されている。
【００３５】
制御部１２は、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有し、これらによって種々の処理を実行するが、特に、セッション情報抽出部１２ａ、ハッシュ演算部１２ｂ、振り分け先決定部１２ｃ、ＳＩＰメッセージ転送部１２ｄを備える。
【００３６】
セッション情報抽出部１２ａは、ＳＩＰメッセージから当該ＳＩＰメッセージが属するセッションに関する情報であるセッション情報を抽出する。具体的には、セッション情報抽出部１２ａは、ＳＩＰクライアント装置からＳＩＰメッセージを受信すると、ＳＩＰメッセージの送信先を示す「Ｔｏ−ＵＲＩ」、ＳＩＰメッセージの送信元を示す「Ｆｒｏｍ−ＵＲＩ」および呼を一意に識別する「Ｃａｌｌ−ＩＤ」の値をＳＩＰメッセージから抽出し、ハッシュ演算部１２ｂに通知する。
【００３７】
ハッシュ演算部１２ｂは、抽出されたセッション情報を用いて、ハッシュ演算を行ってハッシュ値を算出する。具体的には、ハッシュ演算部１２ｂは、抽出された「Ｔｏ−ＵＲＩ」、「Ｆｒｏｍ−ＵＲＩ」および「Ｃａｌｌ−ＩＤ」の値をセッション情報抽出部１２ａから受信すると、予め決められたハッシュ関数でハッシュ演算を行ってハッシュ値を算出する。そして、ハッシュ演算部１２ｂは、算出されたハッシュ値を振り分け先決定部１２ｃに通知する。
【００３８】
ここで、図４の具体的な例を用いて、セッション情報抽出部１２ａおよびハッシュ演算部１２ｂの処理について説明する。同図に示すように、セッション情報抽出部１２ａは、ＳＩＰクライアント装置からＳＩＰメッセージを受信すると、「Ｔｏ−ＵＲＩ」、「Ｆｒｏｍ−ＵＲＩ」および「Ｃａｌｌ−ＩＤ」の値を抽出する。
【００３９】
ここで、セッション情報抽出部１２ａは、「Ｔｏ−ＵＲＩ」、「Ｆｒｏｍ−ＵＲＩ」および「Ｃａｌｌ−ＩＤ」の値をそれぞれ「Ｔｏ−ＵＲＩ＝ｔ０，ｔ１，ｔ２，ｔ３，・・・，ｔｎ−１」、「Ｆｒｏｍ−ＵＲＩ＝ｆ０，ｆ１，ｆ２，ｆ３，・・・，ｆｎ−１」、「Ｃａｌｌ−ＩＤ＝ｃ０，ｃ１，ｃ２，ｃ３，・・・，ｃｎ−１」と表記する。
【００４０】
例えば、図４の例を用いて説明すると、Ｆｒｏｍ−ＵＲＩが「ｂｏｂ」である場合には、セッション情報抽出部１２ａは、ｆ０＝ｂ十進数ＡＳＣＩＩコード＝９８、ｆ１＝ｂ十進数ＡＳＣＩＩコード＝１１１、ｆ２＝ｂ十進数ＡＳＣＩＩコード＝９８となり、「Ｆｒｏｍ−ＵＲＩ＝９８，１１１，９８」をＴｏ−ＵＲＩの値として抽出する。
【００４１】
続いて、ハッシュ演算部１２ｂは、ハッシュ関数の一例として、「Ｈａｓｈ（Ｔｏ−ＵＲＩ、Ｆｒｏｍ−ＵＲＩ、Ｃａｌｌ−ＩＤ」）＝（ｔ０＋ｔ１＋ｔ２＋ｔ３＋・・・＋ｔｎ−１＋ｆ０＋ｆ１＋ｆ２＋ｆ３＋・・・＋ｆｎ−１＋ｃ０＋ｃ１＋ｃ２＋ｃ３＋・・・＋ｃｎ−１）ｍｏｄ割当て先の数」でハッシュ演算を行ってハッシュ値を算出する。
【００４２】
つまり、図３の例で説明すると、Ｔｏ−ＵＲＩが「ａｌｉｃｅ」、Ｆｒｏｍ−ＵＲＩが「ｂｏｂ」、Ｃａｌｌ−ＩＤが「ａｂｃ１２３」、ＳＩＰサーバが４つである場合には、ハッシュ演算部１２ｂは、「Ｔｏ−ＵＲＩ＝９７，１０８，１０５，９９，１０１」、「Ｆｒｏｍ−ＵＲＩ＝９８，１１１，９８」、「Ｃａｌｌ−ＩＤ＝９７，９８，９９，４９，５０，５１」を抽出する。
【００４３】
そして、ハッシュ演算部１２ｂは、ハッシュ演算「Ｈａｓｈ＝（９７＋１０８＋１０５＋９９＋１０１＋９８＋１１１＋９８＋９７＋９８＋９９＋４９＋５０＋５１）ｍｏｄ４＝１」を算出し、ハッシュ値「１」を得る。
【００４４】
振り分け先決定部１２ｃは、算出されたハッシュ値に応じて、ＳＩＰメッセージの振り分け先を決定する。具体的には、振り分け先決定部１２ｃは、算出されたハッシュ値をハッシュ演算部１２ｂから受信すると、そのハッシュ値に対応する割当先ＩＤを割当先テーブル１３ａから検索し、検索された割当先ＩＤのＳＩＰサーバをＳＩＰメッセージの割り当て先に決定して、ＳＩＰメッセージ転送部１２ｄに通知する。
【００４５】
図３の例を挙げて説明すると、振り分け先決定部１２ｃは、算出されたハッシュ値が「１」である場合には、ハッシュ値「１」に対応する割当先ＩＤ「ｂ」を割当先テーブル１３ａから検索し、検索された割当先ＩＤ「ｂ」のＳＩＰサーバを割り当て先に決定する。
【００４６】
ＳＩＰメッセージ転送部１２ｄは、割り当て先に決定されたＳＩＰサーバにＳＩＰメッセージを転送する。具体的には、ＳＩＰメッセージ転送部１２ｄは、割り当て先に決定されたＳＩＰサーバを振り分け先決定部１２ｃから受信すると、割り当て先に決定されたＳＩＰサーバにＳＩＰメッセージを転送する。
【００４７】
ここで、図５を用いて、ＳＩＰパーシステンスの維持について説明する。同図に示すように、ＳＩＰメッセージ振分装置１０は、ＳＩＰクライアント２からＳＩＰクライアント１に発信するため、まずＳＩＰサーバ宛にＩＮＶＩＴＥリクエストを送信する。ＳＩＰメッセージ振分装置１０は、ＩＮＶＩＴＥリクエストのＦｒｏｍ、Ｔｏ、Ｃａｌｌ−ＩＤから関数演算によりＳＩＰサーバを選ぶ。図５の例では、割当て先がＳＩＰサーバ１になる。ＳＩＰサーバ１は、ＳＩＰクライアント２に１００Ｔｒｙｉｎｇを返事する。
【００４８】
そして、ＳＩＰメッセージ振分装置１０は、ＳＩＰクライアント１から受信した１８０Ｒｉｎｇｉｎｇおよび２００ＯＫリプライも、同様のハッシュ演算により同じＳＩＰサーバ１に割当てられるので、同一のＳＩＰセッションに関するＳＩＰメッセージは必ず同一の割当て先で処理しなければならないとするＳＩＰパーシステンスを維持できる。その後、ＳＩＰサーバ１のセッション管理により、１８０Ｒｉｎｇｉｎｇおよび２００ＯＫリプライもＳＩＰクライアント２に転送される。
【００４９】
［ＳＩＰメッセージ振分装置による処理］
次に、図６を用いて、実施例１に係るＳＩＰメッセージ振分装置１０による処理を説明する。図６は、実施例１に係るＳＩＰメッセージ振分装置の処理動作を示すフローチャートである。
【００５０】
同図に示すように、ＳＩＰメッセージ振分装置１０は、ＳＩＰクライアント装置からＳＩＰメッセージを受信すると（ステップＳ１０１）、ＳＩＰメッセージの送信先を示す「Ｔｏ−ＵＲＩ」、ＳＩＰメッセージの送信元を示す「Ｆｒｏｍ−ＵＲＩ」および呼を一意に識別する「Ｃａｌｌ−ＩＤ」をＳＩＰメッセージから抽出する（ステップＳ１０２）。
【００５１】
そして、ＳＩＰメッセージ振分装置１０は、抽出された「Ｔｏ−ＵＲＩ」、「Ｆｒｏｍ−ＵＲＩ」および「Ｃａｌｌ−ＩＤ」の値と、予め決められたハッシュ関数とでハッシュ演算を行ってハッシュ値を得る（ステップＳ１０３）。
【００５２】
その後、ＳＩＰメッセージ振分装置１０は、算出されたハッシュ値に対応する割当先ＩＤを割当先テーブル１３ａから検索し、検索された割当先ＩＤのＳＩＰサーバをＳＩＰメッセージの割り当て先に決定する（ステップＳ１０４）。
【００５３】
[実施例１の効果]
上述してきたように、ＳＩＰメッセージ振分装置１０は、ＳＩＰメッセージから当該ＳＩＰメッセージが属するセッションに関する情報であるセッション情報を抽出し、抽出されたセッション情報を用いて、ハッシュ演算を行ってハッシュ値を算出し、算出されたハッシュ値に応じて、ＳＩＰメッセージの振り分け先を決定するので、同じセッションに属するＳＩＰメッセージを必ず同じ割当て先で処理させる結果、ＳＩＰプロトコルのパーシステンスを維持しながらＳＩＰメッセージ処理の負荷分散を実現することが可能である。
【００５４】
また、実施例１によれば、セッション情報として、ＳＩＰメッセージの送信先を示すＴｏ−ＵＲＩ、ＳＩＰメッセージの送信元を示すＦｒｏｍ−ＵＲＩ、呼を一意に識別するＣａｌｌ−ＩＤのいずれか一つまたは複数をＳＩＰメッセージから抽出するので、ユニーク性の高い値からハッシュ演算を行うことが可能である。
【００５５】
また、実施例１によれば、ＳＩＰメッセージの振り分け先として、複数のＳＩＰサーバのうち、いずれか一つのＳＩＰサーバを決定するので、複数のＳＩＰ間の負荷を分散することが可能である。
【実施例２】
【００５６】
ところで、上記の実施例１では、予め決められた一のハッシュ関数でハッシュ演算を行う場合を説明したが、本発明はこれに限定されるものではなく、複数のハッシュ関数から最適なハッシュ関数を採用し、採用されたハッシュ関数でハッシュ演算を行うようにしてもよい。
【００５７】
そこで、以下の実施例２では、複数のハッシュ関数をそれぞれ評価し、一番バランスの良いハッシュ関数を採用して、ハッシュ演算を行う場合として、図７を用いて、実施例２におけるＳＩＰメッセージ振分装置１０ａの処理について説明する。図７は、実施例２に係るＳＩＰメッセージ振分装置のハッシュ関数を評価し、一番バランスが良いハッシュ関数を採用する処理を説明するための図である。
【００５８】
同図に示すように、ＳＩＰメッセージ振分装置１０ａでは、予め複数のハッシュ関数（図７の例では、ハッシュ関数１〜３）が用意され、ＳＩＰメッセージを受信するたびに、各関数で求めたハッシュ値のヒット数をカウントし、全体のバランスを評価する。
【００５９】
そして、ＳＩＰメッセージ振分装置１０ａは、評価されたハッシュ関数の中から、一番バランスの良いハッシュ関数を採用する。ここで、バランスの評価の例として、下記（１）式を用いて各ハッシュ関数のヒット数の標準偏差を求め、標準偏差が最低のハッシュ関数を一番バランスの良いハッシュ関数としてもよい。
【００６０】
【数１】
2010003273.tif 000003
【００６１】
例えば、図７の例を挙げて説明すると、ハッシュ関数１〜３の標準偏差の値は、下記式（２）〜（４）に示すように、ハッシュ関数１の標準偏差「８１６４．９７」、ハッシュ関数２の標準偏差「０」、ハッシュ関数３の標準偏差「１４１４２．１４」となる。この評価から、ハッシュ関数２が最も標準偏差が低く、ハッシュ関数２を使うと一番バランスの良い負荷分散ができることが分かる。なお、この評価は、導入前あるいは運用中に定期的に実施することができる。
【００６２】
【数２】
2010003273.tif 000004
【００６３】
【数３】
2010003273.tif 000005
【００６４】
【数４】
2010003273.tif 000006
【００６５】
このように、ＳＩＰメッセージ振分装置１０ａは、複数のハッシュ関数を用いてハッシュ演算を行い、それぞれのハッシュ値を算出し、算出された各ハッシュ値のヒット数をカウントして、複数のハッシュ関数をそれぞれ評価し、評価された複数のハッシュ関数のうち、最もバランスの良いハッシュ関数を採用するので、各割り当て先の負荷を監視せずに、負荷分散のバランスを維持することが可能である。
【実施例３】
【００６６】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では実施例３として本発明に含まれる他の実施例を説明する。
【００６７】
（１）呼処理プロセス
上記の実施例１では、ＳＩＰメッセージの割当て先が各ＳＩＰサーバである場合を説明したが、本発明はこれに限定されるものではなく、同一装置内でマルチプロセスを実現する場合に、各マルチプロセスをＳＩＰメッセージの割当て先として本発明を実現するようにしてもよい。
【００６８】
具体的には、図８に示すように、本発明のＳＩＰメッセージ振分プログラムをマルチプロセッサまたはマルチプロセッサの装置に適用し、ＳＩＰメッセージの振分先である複数の呼処理プロセス（またはスレッド）にＳＩＰメッセージを振り分けて、負荷を分散するようにしてもよい。
【００６９】
このように、ＳＩＰメッセージの振り分け先として、複数の呼処理プロセスのうち、いずれか一つの呼処理プロセスを決定するので、複数の呼処理プロセス間の負荷を分散することが可能である。
【００７０】
（２）システム構成等
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報（例えば、図３や図４など）については、特記する場合を除いて任意に変更することができる。
【００７１】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合（例えば、振り分け先決定部１２ｃとＳＩＰメッセージ転送部１２ｄとを統合するなど）して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００７２】
（３）プログラム
なお、本実施例で説明したＳＩＰメッセージ振分方法は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
【産業上の利用可能性】
【００７３】
以上のように、本発明に係るＳＩＰメッセージ振分方法およびＳＩＰメッセージ振分装置は、ＳＩＰメッセージの振り分け先を決定し、当該振り分け先にＳＩＰメッセージを転送する場合に有用であり、特に、ＳＩＰプロトコルのパーシステンスを維持しながらＳＩＰメッセージ処理の負荷分散を実現することに適する。
【図面の簡単な説明】
【００７４】
【図１】実施例１に係るＳＩＰメッセージ振分装置の概要および特徴を説明するための図である。
【図２】ＳＩＰメッセージ振分装置の構成を示すブロック図である。
【図３】振分先テーブルの一例を説明するための図である。
【図４】ハッシュ演算処理について説明するための図である。
【図５】ＳＩＰメッセージ振分処理を説明するための図である。
【図６】実施例１に係るＳＩＰメッセージ振分装置の処理動作を示すフローチャートである。
【図７】実施例２に係るＳＩＰメッセージ振分装置のハッシュ関数を評価し、一番バランスが良いハッシュ関数を採用する処理を説明するための図である。
【図８】ＳＩＰメッセージ振分プログラムをマルチプロセッサまたはマルチプロセッサの装置に適用した場合の例を説明するための図である。
【符号の説明】
【００７５】
１０  ＳＩＰメッセージ振分装置
１１  通信制御Ｉ／Ｆ部
１２  制御部
１２ａ  セッション情報抽出部
１２ｂ  ハッシュ演算部
１２ｃ  振り分け先決定部
１２ｄ  ＳＩＰメッセージ転送部
１３  記憶部
１３ａ  割当先テーブル
【図１】
2010003273.tif 000007
【図２】
2010003273.tif 000008
【図３】
2010003273.tif 000009
【図４】
2010003273.tif 000010
【図５】
2010003273.tif 000011
【図６】
2010003273.tif 000012
【図７】
2010003273.tif 000013
【図８】
2010003273.tif 000014