(57)【要約】  【課題】  本発明は、ＳＩＰ構文解析性能を改善する方法及び装置を開示する。  【解決手段】  前記方法は、ＳＩＰサーバに送信すべきテキスト・ベースＳＩＰメッセージを受信するステップと、ＳＩＰメッセージ・フィルタ・テーブルに従って、前記テキスト・ベースＳＩＰメッセージをトークン・ベース・メッセージに変換する必要があるかどうかを判定するステップと、前記テキスト・ベースＳＩＰメッセージをトークン・ベース・メッセージに変換する必要がある場合には、前記変換を実行し、変換された前記トークン・ベース・メッセージを前記ＳＩＰサーバに送信し、前記変換の必要がない場合には、前記テキスト・ベースＳＩＰメッセージを前記ＳＩＰサーバに直接送信するステップと、を含む。本発明によれば、ＳＩＰサーバのＳＩＰメッセージ・スループットを高めることができ、フロント・エンド・デバイスのリソース利用率を改善することができる。  【選択図】  図２
2010507951.tif 000002
【特許請求の範囲】
【請求項１】
ＳＩＰ構文解析性能を改善する方法であって、
ＳＩＰサーバに送信すべきテキスト・ベースＳＩＰメッセージを受信するステップと、
ＳＩＰメッセージ・フィルタ・テーブルに従って、前記テキスト・ベースＳＩＰメッセージをトークン・ベース・メッセージに変換する必要があるかどうかを判定するステップと、
前記テキスト・ベースＳＩＰメッセージをトークン・ベース・メッセージに変換する必要がある場合には、前記変換を実行し、変換された前記トークン・ベース・メッセージを前記ＳＩＰサーバに送信し、前記変換の必要がない場合には、前記テキスト・ベースＳＩＰメッセージを前記ＳＩＰサーバに直接送信するステップと、
を含む方法。
【請求項２】
前記テキスト・ベースＳＩＰメッセージは、ヘッダを含み、前記方法は、
ＳＩＰヘッダ・フィルタ・テーブルに従って、前記テキスト・ベースＳＩＰメッセージのヘッダをトークン・ベース・フォーマットに変換する必要があるかどうかを判定するステップと、
前記テキスト・ベースＳＩＰメッセージの前記ヘッダを前記トークン・ベース・フォーマットに変換する必要がある場合には、前記ヘッダの前記変換を実行し、変換された前記ヘッダを前記ＳＩＰサーバに送信し、前記変換の必要がない場合には、前記ヘッダを変換することなく前記ＳＩＰサーバに送信するステップと、
を更に含む、請求項１に記載の方法。
【請求項３】
前記ＳＩＰメッセージ・フィルタ・テーブル及び前記ＳＩＰヘッダ・フィルタ・テーブルは、前記ＳＩＰサーバからの制御メッセージに従って更新される、請求項２に記載の方法。
【請求項４】
前記ＳＩＰサーバのＳＩＰスタック又は上位レイヤＳＩＰアプリケーションあるいはその両方を監視して前記ＳＩＰサーバの負荷情報を取得するステップと、
いくつかの事前定義されたルールに従って、テキスト・ベースＳＩＰメッセージをトークン・ベース・メッセージに変換するフロント・エンド・デバイスへのオフロードが必要かどうかを判定するステップと、
前記フロント・エンド・デバイスへのオフロードが必要である場合は、前記フロント・エンド・デバイスに制御メッセージを送信するステップと、
を含む、請求項２又は３に記載の方法。
【請求項５】
前記制御メッセージは、前記フロント・エンド・デバイスの前記ＳＩＰメッセージ・フィルタ・テーブルを更新するのに使用される、請求項４に記載の方法。
【請求項６】
前記テキスト・ベースＳＩＰメッセージは、ヘッダを含み、前記制御メッセージは更に、前記フロント・エンド・デバイスの前記ＳＩＰヘッダ・フィルタ・テーブルを更新するのに使用される、請求項５に記載の方法。
【請求項７】
前記トークン・ベース・メッセージを受信し、前記トークン・ベース・メッセージをＳＩＰスタックで使用されるトークンに構文解析するステップと、
前記テキスト・ベースＳＩＰメッセージを受信し、前記テキスト・ベースＳＩＰメッセージをＳＩＰスタックで使用されるトークンに構文解析するステップと、
を更に含む、請求項４、５、又は６に記載の方法。
【請求項８】
ＳＩＰ構文解析性能を改善する装置であって、
前記装置に入力されたＳＩＰサーバに送信すべきテキスト・ベースＳＩＰメッセージをトークン・ベース・メッセージに変換する必要があるかどうかに関するルールを含むＳＩＰメッセージ・フィルタ・テーブルと、
前記ＳＩＰメッセージ・フィルタ・テーブルに従って、前記テキスト・ベースＳＩＰメッセージをトークン・ベース・メッセージに変換する必要があるかどうかを判定し、前記テキスト・ベースＳＩＰメッセージをトークン・ベース・メッセージに変換する必要がある場合には、前記変換を実行し、変換された前記トークン・ベース・メッセージを前記ＳＩＰサーバに送信し、前記変換の必要がない場合には、前記テキスト・ベースＳＩＰメッセージを前記ＳＩＰサーバに直接送信する変換モジュールと、
を備える装置。
【請求項９】
前記テキスト・ベースＳＩＰメッセージは、ヘッダを含み、前記装置は、ＳＩＰヘッダ・フィルタ・テーブルを更に備え、前記変換モジュールは、前記ＳＩＰヘッダ・フィルタ・テーブルに従って、前記テキスト・ベースＳＩＰメッセージのヘッダをトークン・ベース・フォーマットに変換する必要があるかどうかを判定し、前記テキスト・ベースＳＩＰメッセージの前記ヘッダを前記トークン・ベース・フォーマットに変換する必要がある場合には、前記ヘッダの前記変換を実行し、変換された前記ヘッダを前記ＳＩＰサーバに送信し、前記変換の必要がない場合には、前記ヘッダを変換することなく前記ＳＩＰサーバに直接送信する、請求項８に記載の装置。
【請求項１０】
前記ＳＩＰメッセージ・フィルタ・テーブル及び前記ＳＩＰヘッダ・フィルタ・テーブルは、前記ＳＩＰサーバからの制御メッセージに従って更新される、請求項９に記載の装置。
【請求項１１】
前記ＳＩＰサーバのＳＩＰスタック又は上位レイヤＳＩＰアプリケーションあるいはその両方を監視して前記ＳＩＰサーバの負荷情報を取得し、いくつかの事前定義されたルールに従って、テキスト・ベースＳＩＰメッセージをトークン・ベース・メッセージに変換するフロント・エンド・デバイスへのオフロードが必要かどうかを判定し、前記フロント・エンド・デバイスへのオフロードが必要である場合は、前記フロント・エンド・デバイスに制御メッセージを送信する負荷モニタと、
前記トークン・ベース・メッセージを受信し、前記トークン・ベース・メッセージをＳＩＰスタックで使用されるトークンに構文解析する第１の構文解析モジュールと、
前記テキスト・ベースＳＩＰメッセージを受信し、前記テキスト・ベースＳＩＰメッセージをＳＩＰスタックで使用されるトークンに構文解析する第２の構文解析モジュールと、
を備える、請求項９又は１０に記載の装置。
【請求項１２】
前記制御メッセージは、前記フロント・エンド・デバイスの前記ＳＩＰメッセージ・フィルタ・テーブルを更新するのに使用される、請求項１１に記載の装置。
【請求項１３】
前記テキスト・ベースＳＩＰメッセージは、ヘッダを含み、前記制御メッセージは更に、前記フロント・エンド・デバイスの前記ＳＩＰヘッダ・フィルタ・テーブルを更新するのに使用される、請求項１２に記載の装置。
【請求項１４】
ＳＩＰ構文解析性能を改善する方法であって、
ＳＩＰサーバのＳＩＰスタック又は上位レイヤＳＩＰアプリケーションあるいはその両方を監視して前記ＳＩＰサーバの負荷情報を取得するステップと、
いくつかの事前定義されたルールに従って、テキスト・ベースＳＩＰメッセージをトークン・ベース・メッセージに変換するフロント・エンド・デバイスへのオフロードが必要かどうかを判定するステップと、
前記フロント・エンド・デバイスへのオフロードが必要である場合は、前記フロント・エンド・デバイスに制御メッセージを送信するステップと、
を含む方法。
【請求項１５】
前記制御メッセージは、前記フロント・エンド・デバイスのＳＩＰメッセージ・フィルタ・テーブルを更新するのに使用され、前記フロント・エンド・デバイスは、前記ＳＩＰメッセージ・フィルタ・テーブルに従って、前記テキスト・ベースＳＩＰメッセージをトークン・ベース・メッセージに変換する必要があるかどうかを判定する、請求項１４に記載の方法。
【請求項１６】
前記テキスト・ベースＳＩＰメッセージは、ヘッダを含み、前記制御メッセージは更に、前記フロント・エンド・デバイスのＳＩＰヘッダ・フィルタ・テーブルを更新するのに使用され、前記フロント・エンド・デバイスは、前記ＳＩＰヘッダ・フィルタ・テーブルに従って、前記テキスト・ベースＳＩＰメッセージのヘッダをトークン・ベース・フォーマットに変換する必要があるかどうかを判定する、請求項１５に記載の方法。
【請求項１７】
前記トークン・ベース・メッセージを受信し、前記トークン・ベース・メッセージをＳＩＰスタックで使用されるトークンに構文解析するステップと、
前記テキスト・ベースＳＩＰメッセージを受信し、前記テキスト・ベースＳＩＰメッセージをＳＩＰスタックで使用されるトークンに構文解析するステップと、
を更に含む、請求項１４、１５、又は１６に記載の方法。
【請求項１８】
ＳＩＰ構文解析性能を改善する装置であって、
ＳＩＰサーバのＳＩＰスタック又は上位レイヤＳＩＰアプリケーションあるいはその両方を監視して前記ＳＩＰサーバの負荷情報を取得し、いくつかの事前定義されたルールに従って、テキスト・ベースＳＩＰメッセージをトークン・ベース・メッセージに変換するフロント・エンド・デバイスへのオフロードが必要かどうかを判定し、前記フロント・エンド・デバイスへのオフロードが必要である場合は、前記フロント・エンド・デバイスに制御メッセージを送信する負荷モニタと、
前記トークン・ベース・メッセージを受信し、前記トークン・ベース・メッセージをＳＩＰスタックで使用されるトークンに構文解析する第１の構文解析モジュールと、
前記テキスト・ベースＳＩＰメッセージを受信し、前記テキスト・ベースＳＩＰメッセージをＳＩＰスタックで使用されるトークンに構文解析する第２の構文解析モジュールと、
を備える装置。
【請求項１９】
前記制御メッセージは、前記フロント・エンド・デバイスのＳＩＰメッセージ・フィルタ・テーブルを更新するのに使用され、前記フロント・エンド・デバイスは、前記ＳＩＰメッセージ・フィルタ・テーブルに従って、前記テキスト・ベースＳＩＰメッセージをトークン・ベース・メッセージに変換する必要があるかどうかを判定する、請求項１８に記載の装置。
【請求項２０】
前記テキスト・ベースＳＩＰメッセージは、ヘッダを含み、前記制御メッセージは更に、前記フロント・エンド・デバイスのＳＩＰヘッダ・フィルタ・テーブルを更新するのに使用され、前記フロント・エンド・デバイスは、前記ＳＩＰヘッダ・フィルタ・テーブルに従って、前記テキスト・ベースＳＩＰメッセージのヘッダをトークン・ベース・フォーマットに変換する必要があるかどうかを判定する、請求項１９に記載の装置。
【請求項２１】
それ自体がコンピュータ上で実行されたときに、請求項１乃至７又は１４乃至１７のいずれか一項に記載の方法をコンピュータに実施させるように動作可能なプログラム・コード手段を備えるコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に通信分野に関するものであり、より詳細には、ＳＩＰ構文解析（ＳＩＰ  ｐａｒｓｅ）性能を改善する方法及び装置に関するものである。
【背景技術】
【０００２】
セッション開始プロトコル（ＳＩＰ）は、１９９９年にインターネット技術特別調査委員会（ＩＥＴＦ）によって提案されたシグナリング・プロトコルである。ＳＩＰの詳細情報については、ＩＥＴＦのコメント要求３２６１（ＲＦＣ  ３２６１）を参照されたい。
【０００３】
基礎的なセッション制御プロトコルとして、ＳＩＰは、電気通信分野の次世代ネットワーク（ＮＧＮ）及びＩＴ協調ソリューションで益々人気が高まっている。
【０００４】
ＳＩＰは、テキスト・ベース・メッセージ・プロトコルである。ＳＩＰ構文解析は、例えばＣＰＵサイクル等のリソースを大量に消費する。特に、トークン化及びストリング・マッチングは、リソース消費量（例えば、ＣＰＵサイクル）が多い２つの動作である。ＳＩＰの普及に伴い、ＳＩＰ構文解析は、ＳＩＰプロキシ・サーバ、ＳＩＰリダイレクト・サーバ、及び様々なＳＩＰ対応アプリケーション・サーバを含むＳＩＰベース・サーバの潜在的なボトルネックの１つとなる。
【０００５】
ＳＩＰ構文解析の最適化に関して、現行の仕組みは、ＩＢＭ  ＷｅｂＳｐｈｅｒｅ  ＳＩＰ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｅｒのようなソフトウェア・ベースの構文解析の最適化に焦点を当てている。拡張マークアップ言語（ＸＭＬ）のような他のテキスト・ベース・プロトコルの構文解析の最適化では、ハードウェア・オフロードが利用される。しかし、これらの仕組みは、構文検証及びセキュリティ処理以外の構文解析処理には焦点を当てていない。（「ＩＢＭ」及び「ＷｅｂＳｐｈｅｒｅ」は、インターナショナル・ビジネス・マシーンズ・コーポレーションの米国及び他の国、又はその両方における商標である。）
【発明の概要】
【発明が解決しようとする課題】
【０００６】
より高いＳＩＰメッセージ・スループット及びより良好なリソース利用率を達成するために、ＳＩＰ構文解析性能を改善する方法及び装置が提供されることが好ましい。
【課題を解決するための手段】
【０００７】
本発明の第１の態様によれば、ＳＩＰ構文解析性能を改善する方法であって、ＳＩＰサーバに送信すべきテキスト・ベースＳＩＰメッセージを受信するステップと、ＳＩＰメッセージ・フィルタ・テーブルに従って、前記テキスト・ベースＳＩＰメッセージをトークン・ベース・メッセージに変換する必要があるかどうかを判定するステップと、前記テキスト・ベースＳＩＰメッセージをトークン・ベース・メッセージに変換する必要がある場合には、前記変換を実行し、変換された前記トークン・ベース・メッセージを前記ＳＩＰサーバに送信し、前記変換の必要がない場合には、前記テキスト・ベースＳＩＰメッセージを前記ＳＩＰサーバに直接送信するステップと、を含む方法が提案される。
【０００８】
本発明の第２の態様によれば、ＳＩＰ構文解析性能を改善する装置であって、前記装置に入力されたＳＩＰサーバに送信すべきテキスト・ベースＳＩＰメッセージをトークン・ベース・メッセージに変換する必要があるかどうかに関するルールを含むＳＩＰメッセージ・フィルタ・テーブルと、前記ＳＩＰメッセージ・フィルタ・テーブルに従って、前記テキスト・ベースＳＩＰメッセージをトークン・ベース・メッセージに変換する必要があるかどうかを判定し、前記テキスト・ベースＳＩＰメッセージをトークン・ベース・メッセージに変換する必要がある場合には、前記変換を実行し、変換された前記トークン・ベース・メッセージを前記ＳＩＰサーバに送信し、前記変換の必要がない場合には、前記テキスト・ベースＳＩＰメッセージを前記ＳＩＰサーバに直接送信する変換モジュールと、を備える装置が提案される。
【０００９】
本発明の第３の態様によれば、ＳＩＰ構文解析性能を改善する方法であって、ＳＩＰサーバのＳＩＰスタック又は上位レイヤＳＩＰアプリケーションあるいはその両方を監視して前記ＳＩＰサーバの負荷情報を取得するステップと、いくつかの事前定義されたルールに従って、テキスト・ベースＳＩＰメッセージをトークン・ベース・メッセージに変換するフロント・エンド・デバイスへのオフロードが必要かどうかを判定するステップと、前記フロント・エンド・デバイスへのオフロードが必要である場合は、前記フロント・エンド・デバイスに制御メッセージを送信するステップと、を含む方法が提案される。
【００１０】
本発明の第４の態様によれば、ＳＩＰ構文解析性能を改善する装置であって、ＳＩＰサーバのＳＩＰスタック又は上位レイヤＳＩＰアプリケーションあるいはその両方を監視して前記ＳＩＰサーバの負荷情報を取得し、いくつかの事前定義されたルールに従って、テキスト・ベースＳＩＰメッセージをトークン・ベース・メッセージに変換するフロント・エンド・デバイスへのオフロードが必要かどうかを判定し、前記フロント・エンド・デバイスへのオフロードが必要である場合は、前記フロント・エンド・デバイスに制御メッセージを送信する負荷モニタ（ｌｏａｄ  ｍｏｎｉｔｏｒ）と、前記トークン・ベース・メッセージを受信し、前記トークン・ベース・メッセージをＳＩＰスタックで使用されるトークンに構文解析する第１の構文解析モジュールと、前記テキスト・ベースＳＩＰメッセージを受信し、前記テキスト・ベースＳＩＰメッセージをＳＩＰスタックで使用されるトークンに構文解析する第２の構文解析モジュールと、を備える装置が提案される。
【００１１】
本発明は、コンピュータ・ソフトウェアの形で実施することができる。
【発明の効果】
【００１２】
本発明の上記の各態様によれば、本願は好適には以下の効果を奏する。
【００１３】
好適には、フロント・エンド・デバイス（例えば、スイッチ、ルータ、又は他のネットワーク機器）は、テキスト・ベースＳＩＰメッセージをトークン・ベース・メッセージ（ＳＯＥメッセージと呼ばれる）に変換し、ＳＩＰサーバは、単純なＳＯＥメッセージの構文解析を行うだけで済み、したがって、ＳＩＰサーバの構文解析負荷が大幅に軽減される。
【００１４】
好適には、ＳＩＰサーバは、ＳＩＰスタック又は上位レイヤＳＩＰアプリケーションあるいはその両方を監視し、フロント・エンド・デバイスへのオフロードは、動的に調整され、フロント・エンド・デバイスのリソース利用率の改善が達成される。
【００１５】
したがって、本発明は、好適には、ＳＩＰサーバのＳＩＰメッセージ・スループットを高めることができ、フロント・エンド・デバイスのリソース利用率を改善することができる。
【００１６】
以下では単なる例示として、本発明の好ましい諸実施形態について添付図面を参照しながら説明する。
【図面の簡単な説明】
【００１７】
【図１】好ましい一実施形態に従って本発明を実施することが可能なシステムを示す図である。
【図２】本発明の一実施形態に係るＳＩＰサーバ及びフロント・エンド・デバイスと、それらの関係とを示すブロック図である。
【図３】ＳＩＰメッセージ・フィルタ・テーブルの一例を示す図である。
【図４】ＳＩＰヘッダ・フィルタ・テーブルの一例を示す図である。
【図５】本発明の一実施形態に係るフロント・エンド・デバイスによって実行される各ステップを示す図である。
【図６】本発明の一実施形態に係るＳＩＰサーバの負荷モニタによって実行される各ステップを示す図である。
【発明を実施するための形態】
【００１８】
添付図面の全体をとおして、同様の参照番号は同一の又は類似の又は対応する特徴又は機能を示す。
【００１９】
以下では、本発明の好ましい諸実施形態について詳細に説明する。
【００２０】
図１は、好ましい一実施形態に従って本発明を実施することが可能なシステム１００を示している。図１に示されるように、システム１００は、ユーザ・エージェント１１０ａ及び１１０ｂと、ネットワーク１２０と、ＳＩＰサーバ１３０ａ及び１３０ｂとを備える。
【００２１】
ここで、ユーザ・エージェント１１０ａは、ＳＩＰユーザ・エージェント・クライアント（ＵＡＣ）であり、ユーザ・エージェント１１０ｂは、ＳＩＰユーザ・エージェント・サーバ（ＵＡＳ）であり、ＵＡＣは、要求を開始するのに使用され、ＵＡＳは、要求に応答するのに使用される。ユーザ・エージェント１１０ａ及び１１０ｂはどちらもＳＩＰ音声端末やＳＩＰビデオ端末等のエンティティ上に実装することができる。
【００２２】
ＳＩＰサーバ１３０ａ及び１３０ｂは、ＳＩＰエージェント・サーバ、ＳＩＰリダイレクト・サーバ、及び様々なＳＩＰ対応アプリケーション・サーバとすることができる。
【００２３】
ネットワーク１２０は、無線ネットワーク、有線ネットワーク、あるいはその組合せとすることができる。また、ネットワーク１２０は、ローカル・エリア・ネットワーク、メトロポリタン・エリア・ネットワーク、ワイド・エリア・ネットワーク、あるいはそれらの組合せとすることができる。ネットワーク１２０は、スイッチやルータ等（図示せず）多くのネットワーク機器を含むことができる。
【００２４】
ユーザ・エージェント１１０ａ及び１１０ｂは、リンク１１２を介してネットワーク１２０に接続される。ＳＩＰサーバ１３０ａ及び１３０ｂは、リンク１１４を介してネットワーク１２０に接続される。リンク１１２及び１１４は、同軸ケーブル、光ファイバ、衛星リンク等の有線リンクあるいは無線リンクとすることができる。
【００２５】
ＳＩＰサーバ１３０ａ及び１３０ｂはネットワーク１２０上のネットワーク機器の背後に設置され、即ち、ＳＩＰサーバ１３０ａ及び１３０ｂに送信されるメッセージはネットワーク１２０上のネットワーク機器を通過することになるため、各ネットワーク機器は、フロント・エンド・デバイスと呼ばれる。更に、これらのフロント・エンド・デバイスは一般に、利用可能な多数のリソース（例えば、ＣＰＵサイクル）を有する。換言すると、それらのフロント・エンド・デバイスのリソースは、ほとんどの時間アイドル状態にある。
【００２６】
言うまでもなく、ユーザ・エージェント及びＳＩＰサーバの数は例示的なものであり、限定的なものではないことが当業者には理解されるはずである。
【００２７】
好適には、本明細書に開示の解決策は、ＳＩＰサーバの機能の一部をフロント・エンド・デバイスに流用する。即ち、フロント・エンド・デバイスは、特定の条件下でリソース消費量が多い処理（テキスト・ベースＳＩＰメッセージからトークン・ベース・メッセージ（ＳＯＥメッセージと呼ばれる）への変換、即ち、フロント・エンド・デバイスによるトークン化処理）を実行する。それ故、ＳＩＰサーバは、単純なＳＯＥメッセージの構文解析を行うだけで済む。したがって、ＳＩＰサーバの構文解析負荷が大幅に軽減され、ＳＩＰサーバのＳＩＰメッセージ・スループットを高めることができ、フロント・エンド・デバイスのリソース利用率を改善することができる。
【００２８】
ＳＩＰサーバは、それ自体のＳＩＰスタック及び上位レイヤ（ｕｐ‐ｌａｙｅｒ）ＳＩＰアプリケーションを監視して、フロント・エンド・デバイスへのオフロードを実行する（即ち、フロント・エンド・デバイスがトークン化を実行する）必要があるかどうかを判定する。
【００２９】
図２は、本発明の一実施形態に係るＳＩＰサーバ２２０及びフロント・エンド・デバイス２１０と、それらの関係とを示すブロック図である。ＳＩＰサーバ２２０は、例えば図１のＳＩＰサーバ１３０ａあるいはＳＩＰサーバ１３０ｂであってよい。
【００３０】
図２に示されるように、ＳＩＰサーバ２２０は、トークン・ベース・メッセージを受信し、当該トークン・ベース・メッセージをＳＩＰスタックで使用されるトークンに構文解析するＳＯＥ構文解析モジュール（第１の構文解析モジュール）２２１と、テキスト・ベースＳＩＰメッセージを受信し、当該テキスト・ベースＳＩＰメッセージをＳＩＰスタックで使用されるトークンに構文解析するＳＩＰ構文解析モジュール（第２の構文解析モジュール）と、ＳＩＰサーバ２２０を監視する負荷モニタ２２３とを備える。例えば、負荷モニタ２２３は、ＳＩＰサーバ２２０のＳＩＰスタック又は上位レイヤＳＩＰアプリケーションあるいはその両方を監視してＳＩＰサーバ２２０の負荷情報を取得する。更に、負荷モニタ２２３は、いくつかの事前定義されたルール（例えば、負荷閾値）に従ってフロント・エンド・デバイスへのオフロードが必要かどうかを判定し、そうである場合は、後で詳述するように、当該フロント・エンド・デバイスに対してそれ自体のＳＩＰメッセージ・フィルタ・テーブル及びＳＩＰヘッダ・フィルタ・テーブルを更新することを示す制御メッセージを送信する。事前定義されたルールは動的に調整可能であることに留意していただきたい。
【００３１】
フロント・エンド・デバイス２１０は、フロント・エンド・デバイス２１０に入力されたＳＩＰサーバ２２０に送信すべきテキスト・ベースＳＩＰメッセージをトークン・ベース・メッセージに変換する必要があるかどうかを判定するルール（粗粒度）を含むＳＩＰメッセージ・フィルタ・テーブル２１２と、ＳＩＰメッセージ・フィルタ・テーブル２１２に従って、テキスト・ベースＳＩＰメッセージをトークン・ベース・メッセージに変換する必要があるかどうかを判定し、テキスト・ベースＳＩＰメッセージをトークン・ベース・メッセージに変換する必要がある場合には、その変換を実行し、変換されたトークン・ベース・メッセージをＳＩＰサーバ２２０に送信し、変換の必要がない場合には、テキスト・ベースＳＩＰメッセージをＳＩＰサーバ２２０に直接送信するＳＯＥ変換モジュール２１１とを備える。
【００３２】
テキスト・ベースＳＩＰメッセージは、ヘッダを含み、フロント・エンド・デバイス２１０は、ＳＩＰヘッダ・フィルタ・テーブル２１３を更に備え、ＳＯＥ変換モジュール２１１は、ＳＩＰヘッダ・フィルタ・テーブル２１３に従って、ＳＩＰメッセージ・フィルタ・テーブル２１２に従って変換すべきことが判定されたテキスト・ベースＳＩＰメッセージのヘッダをトークン・ベース・フォーマットに変換する必要があるかどうかを判定し、ヘッダをトークン・ベース・フォーマットに変換する必要がある場合には、テキスト・ベースＳＩＰメッセージのヘッダの変換を実行し、変換されたヘッダをＳＩＰサーバ２２０に送信し、変換の必要がない場合には、ヘッダを変換することなくＳＩＰサーバ２２０に送信する。
【００３３】
図３は、ＳＩＰメッセージ・フィルタ・テーブル２１２の一例を示している。
【００３４】
図３に示されるように、このテーブルでは、各ＳＩＰサーバ（ＳＩＰサーバを一意に識別する識別子（例えば、ＳＩＰサーバ・アドレス）で表される）は、ＳＯＥ変換を実行すべきかどうかを示す標識を有する。例えば、「ＳＩＰサーバ１」は「Ｙｅｓ」を示す標識を、「ＳＩＰサーバ２」は「Ｎｏ」を示す標識を、「ＳＩＰサーバ３」は「Ｙｅｓ」を示す標識を有し、以下もまた同様である。換言すると、ＳＩＰサーバ１に送信すべきテキスト・ベースＳＩＰメッセージは、フロント・エンド・デバイス２１０でＳＯＥ変換する必要があり、ＳＩＰサーバ２に送信すべきテキスト・ベースＳＩＰメッセージは、フロント・エンド・デバイス２１０でＳＯＥ変換する必要がなく、ＳＩＰサーバ３に送信すべきテキスト・ベースＳＩＰメッセージは、フロント・エンド・デバイス２１０でＳＯＥ変換する必要がある。これは、フロント・エンド・デバイス２１０に入力されるテキスト・ベースＳＩＰメッセージをトークン・ベース・メッセージに変換すべきか否かについてＳＯＥ変換モジュール２１１を制御する粗粒度ルール（ｃｏａｒｓｅ‐ｇｒａｎｕｌａｒｉｔｙ  ｒｕｌｅ）である。
【００３５】
フロント・エンド・デバイス２１０に入力されるテキスト・ベースＳＩＰメッセージをトークン・ベース・メッセージに変換すべきか否かについてＳＯＥ変換モジュール２１１を良好な粒度で制御するために、また、ＳＩＰメッセージが「Ｖｉａ」ヘッダ、「Ｔｏ」ヘッダ、「Ｆｒｏｍ」ヘッダのような様々なヘッダを含むことを考慮して、本発明の本実施形態は更にＳＩＰヘッダ・フィルタ・テーブル２１３も含む。
【００３６】
図４は、ＳＩＰヘッダ・フィルタ・テーブル２１３の一例を示している。
【００３７】
図４に示されるように、ＳＩＰサーバ１の「Ｖｉａ」タイプ・ヘッダの優先度は１、ＳＩＰサーバ１の「Ｔｏ」タイプ・ヘッダの優先度は２、ＳＩＰサーバ１の「Ｆｒｏｍ」タイプ・ヘッダの優先度は３であり、以下もまた同様である。本発明の本実施形態では、２以上の優先度を有するヘッダをフロント・エンド・デバイス２１０で変換する必要があるものと仮定する。換言すると、ＳＩＰサーバ１に送信すべき「Ｖｉａ」ヘッダのテキスト・ベースＳＩＰメッセージは、フロント・エンド・デバイス２１０で変換する必要がなく、ＳＩＰサーバ１に送信すべき「Ｔｏ」ヘッダのテキスト・ベースＳＩＰメッセージは、フロント・エンド・デバイス２１０で変換する必要があり、ＳＩＰサーバ１に送信すべき「Ｆｒｏｍ」ヘッダのテキスト・ベースＳＩＰメッセージも、フロント・エンド・デバイス２１０で変換する必要がある。
【００３８】
ここで、ＳＩＰヘッダ・フィルタ・テーブル２１３は、ＳＯＥ変換を実行することを示す標識を有するすべてのＳＩＰサーバ（ＳＩＰサーバ１、ＳＩＰサーバ３）に関するヘッダの優先度を含む。言うまでもなく、ＳＩＰヘッダ・フィルタ・テーブルは、ＳＯＥ変換を実行することを示す標識を有するＳＩＰサーバ毎に記憶することができることが当業者には理解されるだろう。
【００３９】
上述のとおり、ＳＩＰサーバの負荷モニタは、フロント・エンド・デバイスへのオフロードが必要であることを判定した場合は、例えばそれ自体のＳＩＰメッセージ・フィルタ・テーブル及びＳＩＰヘッダ・フィルタ・テーブルを更新し、ＳＯＥ変換を実行すべきか否かを示す標識を「Ｎｏ」から「Ｙｅｓ」に変更し、当該ＳＩＰサーバの様々なヘッダの優先度をＳＩＰヘッダ・フィルタ・テーブルに追加することを示す制御メッセージを当該フロント・エンド・デバイスに送信する。
【００４０】
言うまでもなく、負荷モニタは、単にＳＩＰヘッダ・フィルタ・テーブルを更新するのに使用される制御メッセージをフロント・エンド・デバイスに送信するだけであってもよいことが当業者には理解されるだろう。
【００４１】
以下のコードは、「SIP INVITE」メッセージの一例を示す。
【数１】
2010507951.tif 000003
【００４２】
表１は、ＳＯＥ変換モジュール２１１が上記の「SIP INVITE」メッセージを処理した結果を示す。表１から分かるように、テキスト・ベースＳＩＰメッセージは、バイナリ・メッセージであるＳＯＥメッセージに変換される。
【００４３】
【表１】
2010507951.tif 000004
【００４４】
以下のコードは、「SIP REGISTER」メッセージの一例を示す。
【数２】
2010507951.tif 000005
【００４５】
表２は、ＳＯＥ変換モジュール２１１が上記の「SIP REGISTER」メッセージを処理した結果を示す。表２から分かるように、テキスト・ベースＳＩＰメッセージは、バイナリ・メッセージであるＳＯＥメッセージに変換される。
【００４６】
【表２】
2010507951.tif 000006
【００４７】
図５は、本発明の一実施形態に係るフロント・エンド・デバイス２１０によって実行される各ステップを示している。
【００４８】
まず、フロント・エンド・デバイス２１０のＳＯＥ変換モジュール２１１は、ネットワーク１２０からテキスト・ベースＳＩＰメッセージを取得する（ステップ３０１）。
【００４９】
次に、ＳＯＥ変換モジュール２１１は、フロント・エンド・デバイス２１０のＳＩＰメッセージ・フィルタ・テーブル２１２にアクセスしてテキスト・ベースＳＩＰメッセージを変換する必要があるかどうかを判定する（判定３０２）。テーブル２１２において、各ＳＩＰサーバ（ＳＩＰサーバを一意に識別する識別子（例えば、ＳＩＰサーバ・アドレス）で表される）は、ＳＯＥ変換を実行すべきか否かを示す標識を有する（図３参照）。例えば、ＳＯＥ変換モジュール２１１は、ＳＩＰメッセージ・フィルタ・テーブル２１２に従って、ＳＩＰサーバ１に送信すべきテキスト・ベースＳＩＰメッセージについてはフロント・エンド・デバイス２１０でＳＯＥ変換する必要があり、ＳＩＰサーバ２に送信すべきテキスト・ベースＳＩＰメッセージについてはフロント・エンド・デバイス２１０でＳＯＥ変換する必要がなく、ＳＩＰサーバ３に送信すべきテキスト・ベースＳＩＰメッセージについてはフロント・エンド・デバイス２１０でＳＯＥ変換する必要があることを判定することができる。
【００５０】
変換の必要がない場合には（判定３０２の「Ｎｏ」分岐）、ＳＯＥ変換モジュール２１１は、テキスト・ベースＳＩＰメッセージをＳＩＰサーバ２２０のＳＩＰ構文解析モジュール２２２に直接送信し（ステップ３０８）、当該テキスト・ベースＳＩＰメッセージは、ＳＩＰ構文解析モジュール２２２によって構文解析され、当該ＳＩＰメッセージのトークンがＳＩＰスタックに配信される。その後フローは終了する。
【００５１】
変換の必要がある場合には（判定３０２の「Ｙｅｓ」分岐）、ＳＯＥ変換モジュール２１１は、ＳＩＰメッセージのヘッダが取得されているかどうかを判定する（判定３０３）。
【００５２】
ＳＩＰメッセージのヘッダが取得されている場合には（判定３０３の「Ｙｅｓ」分岐）、ＳＯＥ変換モジュール２１１は、ＳＩＰヘッダ・フィルタ・テーブル２１３にアクセスしてヘッダの優先度を判定する（ステップ３０４）。ＳＩＰヘッダ・フィルタ・テーブル２１３は、ＳＯＥ変換を実行することを示す標識を有する各ＳＩＰサーバに関する様々なタイプのヘッダの優先度を含む（図４参照）。
【００５３】
例えば、ＳＩＰサーバ１の「Ｖｉａ」タイプ・ヘッダの優先度は１、ＳＩＰサーバ１の「Ｔｏ」タイプ・ヘッダの優先度は２、ＳＩＰサーバ１の「Ｆｒｏｍ」タイプ・ヘッダの優先度は３であり、以下もまた同様である。対応する優先度は、前記ＳＩＰメッセージのヘッダのタイプに従って取得される。次に、ＳＯＥ変換モジュール２１１は、ヘッダをトークン・ベース・フォーマットに変換する必要があるかどうかを判定し（判定３０５）、ヘッダをトークン・ベース・フォーマットに変換する必要がある場合には（判定３０５の「Ｙｅｓ」分岐）、当該ヘッダの変換を実行する（ステップ３０７）。次に、判定３０３に戻って次のヘッダが取得されているかどうかが判定される。ヘッダをトークン・ベース・フォーマットに変換する必要がない場合には（判定３０５の「Ｎｏ」分岐）、ＳＯＥ変換モジュール２１１は、当該ヘッダの変換を実行せず、その後判定３０３に戻って次のヘッダが取得されているかどうかが判定される。本発明の本実施形態では、例えば２以上の優先度を有するヘッダをフロント・エンド・デバイス２１０で変換する必要があるものと仮定する。つまり、ヘッダの優先度が２以上である場合には、ＳＯＥ変換モジュール２１１によるヘッダの変換が行われ、ヘッダの優先度が２未満である場合には、ＳＯＥ変換モジュール２１１によるヘッダの変換は行われず、ヘッダはテキスト・ベース・フォーマットのままとなる。
【００５４】
ＳＩＰメッセージのヘッダが取得されていない場合には（判定３０３の「Ｎｏ」分岐）、ＳＯＥ変換モジュール２１１は、ＳＯＥ構文解析モジュール２２１に送信される変換済みヘッダ（単数又は複数）と、ＳＩＰ構文解析モジュール２２２に送信される未変換ヘッダ（単数又は複数）とを含み得るメッセージをＳＩＰサーバ２２０に送信する（ステップ３０６）。その後フローは終了する。
【００５５】
図６は、本発明の一実施形態に係るＳＩＰサーバ２２０の負荷モニタ２２３によって実行される各ステップを示している。
【００５６】
図６に示されるように、ステップ６０１で、負荷モニタ２２３は、先述の場合と同様にＳＩＰサーバ２２０のＳＩＰスタック又は上位レイヤＳＩＰアプリケーションあるいはその両方を監視してＳＩＰサーバ２２０の負荷情報を取得する。
【００５７】
次に、負荷モニタ２２３は、いくつかの事前定義されたルール（例えば、負荷閾値）に従ってフロント・エンド・デバイス２１０へのオフロードが必要かどうかを判定する。
【００５８】
フロント・エンド・デバイス２１０へのオフロードが必要である場合には（判定６０２の「Ｙｅｓ」分岐）、負荷モニタ２２３は、フロント・エンド・デバイス２１０に対してそれ自体のＳＩＰメッセージ・フィルタ・テーブル２１２及びＳＩＰヘッダ・フィルタ・テーブル２１３を更新することを示す制御メッセージを送信する（ステップ６０３）。
【００５９】
フロント・エンド・デバイス２１０へのオフロードが必要ない場合には（判定６０２の「Ｎｏ」分岐）、負荷モニタ２２３は、ステップ６０１に戻ってＳＩＰサーバ２２０のＳＩＰスタック又は上位レイヤＳＩＰアプリケーションあるいはその両方を監視してＳＩＰサーバ２２０の負荷情報を取得する。
【００６０】
上記の説明では本発明の理解を容易にするために、当業者に周知の技術的詳細については、それらが本発明の実施に不可欠であっても詳しい説明を省略していることに留意していただきたい。
【００６１】
本発明の上記の記載は例示及び説明のために提示されるものであり、本発明を余すところのないものとし、又は開示の形態に限定することは、本出願人の意図するところではない。当業者には多くの修正形態及び変更形態が明らかとなるであろう。
【００６２】
例えば、ＳＩＰメッセージ・フィルタ・テーブル２１２及びＳＩＰヘッダ・フィルタ・テーブル２１３は、ＳＯＥ変換モジュール２１１内に収容することもできる。
【００６３】
したがって、上記実施形態は、本発明の諸原理及び実際の応用例を最良の形で説明するために、また、本発明の趣旨から逸脱しない範囲で施されるすべての修正及び変更が添付の特許請求範囲で定義される本発明の保護範囲に含まれることを他の当業者が理解することができるように選択され説明されている。
【図１】
2010507951.tif 000007
【図２】
2010507951.tif 000008
【図３】
2010507951.tif 000009
【図４】
2010507951.tif 000010
【図５】
2010507951.tif 000011
【図６】
2010507951.tif 000012
【国際調査報告】
2010507951.tif 000013
2010507951.tif 000014
2010507951.tif 000015
2010507951.tif 000016
2010507951.tif 000017