JP4753316B2 - プレゼンス情報の負荷を分散管理する負荷分散サーバ及びプログラム - Google Patents

プレゼンス情報の負荷を分散管理する負荷分散サーバ及びプログラム Download PDF

Info

Publication number
JP4753316B2
JP4753316B2 JP2007174983A JP2007174983A JP4753316B2 JP 4753316 B2 JP4753316 B2 JP 4753316B2 JP 2007174983 A JP2007174983 A JP 2007174983A JP 2007174983 A JP2007174983 A JP 2007174983A JP 4753316 B2 JP4753316 B2 JP 4753316B2
Authority
JP
Japan
Prior art keywords
message
server
subscribe
presence server
presence information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007174983A
Other languages
English (en)
Other versions
JP2009015485A (ja
Inventor
学 磯村
尚樹 今井
和之 田坂
彰 井戸上
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
KDDI R&D Laboratories Inc
Original Assignee
KDDI R&D Laboratories Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by KDDI R&D Laboratories Inc filed Critical KDDI R&D Laboratories Inc
Priority to JP2007174983A priority Critical patent/JP4753316B2/ja
Priority to US12/142,219 priority patent/US7885191B2/en
Publication of JP2009015485A publication Critical patent/JP2009015485A/ja
Application granted granted Critical
Publication of JP4753316B2 publication Critical patent/JP4753316B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W60/00Affiliation to network, e.g. registration; Terminating affiliation with the network, e.g. de-registration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/26Network addressing or numbering for mobility support
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/02Hierarchically pre-organised networks, e.g. paging networks, cellular networks, WLAN [Wireless Local Area Network] or WLL [Wireless Local Loop]
    • H04W84/04Large scale networks; Deep hierarchical networks

Description

本発明は、SIP(Session Initiation Protocol)/SIMPLE(SIP for Instant Messaging and Presence Leveraging Extensions)を用いたプレゼンスシステムに関する。特に、プレゼンス情報の負荷を分散管理する負荷分散サーバ及びプログラムに関する。
SIMPLEは、インスタントメッセージ及びプレゼンスサービスを実現するために、SIPを拡張した技術である(例えば非特許文献1、2及び3参照)。プレゼンスサービスとは、ユーザ(端末)の状態(「オンライン」「オフライン」「ビジー」「不在」等)を、他のユーザ(端末)へ向けて、プッシュ的に通知するものである。現在では、ユーザの状態だけでなく、端末の能力や位置など様々な情報(プレゼンス情報)を扱うことができる。尚、3GPP(3rd Generation Partnership Project)では、SIP/SIMPLEを用いたIMS(IP Multimedia Domain)におけるプレゼンスシステムを標準化している(例えば非特許文献4参照)。
図1は、従来技術におけるプレゼンスシステムの構成図である。
図1によれば、複数のユーザ端末は、1台のプレゼンスサーバ2と通信をすることができる。ここで、複数のユーザ端末は、プレゼンティティ(Presentity)機能及び/又はウォッチャ(Watcher)機能を有する。プレゼンティティとは、Presence+Entityの造語であって、プレゼンス情報の所有者を表す。ウォッチャとは、SUBSCRIBER(購読者)を意味し、プレゼンティティに対応する用語である。
(S101)プレゼンス情報を生成するプレゼンティティ3は、プレゼンスサーバ2へ、プレゼンス情報を登録するためのPUBLISHメッセージを送信する。これに対し、プレゼンスサーバ2は、プレゼンティティ3へ200OKメッセージを返信する。プレゼンス情報の登録はソフトステートで管理される。従って、プレゼンスサーバ2は、有効期間内に、再登録(REFRESH)のPUBLISHメッセージが受信されない限り、そのプレゼンス情報の登録を破棄する。
(S102)ウォッチャ4を操作するユーザは、他のユーザの所持するプレゼンティティ3のプレゼンス情報を購読したいとする。そのとき、ウォッチャ4は、プレゼンスサーバ2へ、そのプレゼンティティ3のプレゼンス情報の購読を要求するSUBSCRIBEメッセージを送信する。これに対し、プレゼンスサーバ2は、ウォッチャ4へ200OKメッセージを返信する。
プレゼンス情報は、PRS-URI(PReSence - Uniform Resource Identifier、プレゼンティティのプレゼンス情報に対する識別子)及びEvent(イベント名、イベントパッケージ)の組み合わせによって識別される。プレゼンス情報の購読も、ソフトステートで管理される。従って、プレゼンスサーバ2は、有効期間内に、再購読(SUBSCRIBE)メッセージが受信されない限り、そのプレゼンス情報の購読を破棄する。再購読の場合、初回の購読と同じダイアログを含むSUBSCRIBEメッセージを送信する必要がある。即ち、To tag、From tag、Call-ID及びEventヘッダフィールドのidパラメータが、一致する必要がある。
(S103)SUBSCRIBEメッセージを受信したプレゼンスサーバ2は、そのプレゼンス情報を含むNOTIFYメッセージを、ウォッチャ4へ返信する。これに対し、ウォッチャ4は、プレゼンスサーバ2へ200OKメッセージを返信する。
また、プレゼンティティ3が、プレゼンス情報の内容変更(MODIFY)のPUBLISHメッセージをプレゼンスサーバ2へ送信した場合、そのプレゼンス情報を購読している全てのウォッチャ4へ、更新されたプレゼンス情報を含むNOTIFYメッセージが送信される。
前述したプレゼンスシステムによれば、プレゼンス情報が増加することによって、プレゼンスサーバ及びネットワークの負荷も増加する。具体的には、プレゼンス情報を含むPUBLISHメッセージの送信回数が多いほど、NOTIFYメッセージの送信回数も増加する。特に、1つのプレゼンス情報に対するSUBSCRIBEメッセージの送信回数が多いほど、1つのPUBLISHメッセージに対してNOTIFYメッセージの送信回数も増加する。
NOTIFYメッセージ数=SUBSCRIBEメッセージ数×PUBLISHメッセージ数
将来的にユーザ端末数が増加した場合、このような問題は、プレゼンスシステムにおける拡張性の制約となる。
従来、SIPメッセージの内容を参照する経路制御によって、負荷分散を実現するレイヤ7スイッチがある。これをプレゼンスシステムに適用する場合、例えばPRS-URI及びEvent毎に、そのプレゼンス情報を含むPUBLISHメッセージを経路制御し、プレゼンスサーバへ送信することも考えられる。
しかしながら、ウォッチャは、SUBSCRIBEメッセージを、PUBLISHメッセージによってプレゼンス情報が登録されたプレゼンスサーバへ送信する必要がある。なぜなら、それ以外のプレゼンスサーバは、そのプレゼンス情報を保持していないからである。従って、ある特定のプレゼンス情報を保持したプレゼンスサーバに、多数のSUBSCRIBEメッセージが集中して送信され、負荷が集中するという問題がある。
従って、本発明は、複数のプレゼンスサーバを備えた場合に、プレゼンス情報の負荷を分散管理することができる負荷分散サーバ及びプログラムを提供することを目的とする。
本発明によれば、SIP(Session Initiation Protocol)/SIMPLE(SIP for Instant Messaging and Presence Leveraging Extensions)を用いたプレゼンスシステムに備えられたサーバであって、
プレゼンス情報を登録するためのPUBLISHメッセージを送信する第1の通信装置と、
プレゼンス情報を購読するためのSUBSCRIBEメッセージを送信する第2の通信装置と、
受信したPUBLISHメッセージに含まれるプレゼンス情報を登録し、受信したSUBSCRIBEメッセージの送信元装置へプレゼンス情報を含むNOTIFYメッセージを送信する複数のプレゼンスサーバと
の間で通信可能な負荷分散サーバにおいて、
プレゼンス情報毎のエントリに、当該プレゼンス情報を登録したプレゼンスサーバの識別子のリストを記録したパブリッシュ用データベースと、
プレゼンスサーバ毎に、購読(SUBSCRIBE)メッセージ受信率を記録したサブスクライブ用データベースと、
SUBSCRIBEメッセージ又はPUBLISHメッセージを受信した際に、当該プレゼンス情報に基づくエントリに含まれたリストの中のプレゼンスサーバについて、購読メッセージ受信率が最も低いプレゼンスサーバを選択するエントリ検索手段と、
選択されたプレゼンスサーバに基づく購読メッセージ受信率が所定閾値Tsよりも高い場合、購読メッセージ受信率が所定閾値Ts以下となるいずれか1つの追加プレゼンスサーバを選択するプレゼンスサーバ選択手段と、
選択されたプレゼンスサーバへ、PUBLISHメッセージを送信するメッセージ送受信制御手段と
を有することを特徴とする。
本発明の負荷分散サーバにおける他の実施形態によれば、プレゼンスサーバ選択手段は、
プレゼンス情報の一部を引数とするハッシュ関数によって、複数のプレゼンスサーバの中からいずれか1つのプレゼンスサーバを選択し、
選択された当該プレゼンスサーバに対する購読メッセージ受信率が所定閾値Ts以下か否かを判定し、
その判定を真とするプレゼンスサーバが検出されるまで、プレゼンスサーバの選択を繰り返す
ことも好ましい。
本発明の負荷分散サーバにおける他の実施形態によれば、
メッセージ送受信制御手段は、第2の通信装置から受信したSUBSCRIBEメッセージをプレゼンスサーバへ送信するために、
プレゼンスサーバのアドレスを含むリダイレクト要求を、第2の通信装置へ返信するか、DSR(Direct Server Return)方式によってプレゼンスサーバへSUBSCRIBEメッセージを送信するか、又は、NAT(Network Address Translation)方式によってプレゼンスサーバへSUBSCRIBEメッセージを送信する
ことも好ましい。
本発明の負荷分散サーバにおける他の実施形態によれば、
SUBSCRIBEメッセージを受信した際に、追加プレゼンスサーバへPUBLISHメッセージを送信する場合、
メッセージ送受信制御手段は、当該プレゼンス情報に基づくエントリに含まれるリストの中のいずれか1つのプレゼンスサーバへPUBLISHメッセージを送信し、該プレゼンスサーバからNOTIFYメッセージによってプレゼンス情報を受信し、該プレゼンス情報を含むPUBLISHメッセージを、追加プレゼンスサーバへ送信する
ことも好ましい。
本発明の負荷分散サーバにおける他の実施形態によれば、
PUBLISHメッセージを受信した際に、追加プレゼンスサーバへPUBLISHメッセージを送信する場合、
メッセージ送受信制御手段は、当該プレゼンス情報に基づくエントリに含まれるリストの中の全てのプレゼンスサーバへPUBLISHメッセージを送信すると共に、追加プレゼンスサーバへPUBLISHメッセージを送信する
ことも好ましい。
本発明の負荷分散サーバにおける他の実施形態によれば、
サブスクライブ用データベースは、プレゼンス情報毎に、更に有効期間を含んでおり、
エントリ検索手段は、サブスクライブ用データベースに記憶されたSUBSCRIBEメッセージの有効期間が、現在時刻を過ぎたプレゼンスサーバについて、エントリリストから削除することも好ましい。
本発明によれば、SIP/SIMPLEを用いたプレゼンスシステムに備えられたサーバであって、
プレゼンス情報を登録するためのPUBLISHメッセージを送信する第1の通信装置と、
プレゼンス情報を購読するためのSUBSCRIBEメッセージを送信する第2の通信装置と、
受信したPUBLISHメッセージに含まれるプレゼンス情報を登録し、受信したSUBSCRIBEメッセージの送信元装置へプレゼンス情報を含むNOTIFYメッセージを送信する複数のプレゼンスサーバと
の間で通信可能なサーバに搭載されたコンピュータを機能させる負荷分散プログラムであって、
プレゼンス情報毎のエントリに、当該プレゼンス情報を登録したプレゼンスサーバの識別子のリストを記録したパブリッシュ用データベースと、
プレゼンスサーバ毎に、購読(SUBSCRIBE)メッセージ受信率を記録したサブスクライブ用データベースと、
SUBSCRIBEメッセージ又はPUBLISHメッセージを受信した際に、当該プレゼンス情報に基づくエントリに含まれたリストの中のプレゼンスサーバについて、購読メッセージ受信率が最も低いプレゼンスサーバを選択するエントリ検索手段と、
選択されたプレゼンスサーバに基づくSUBSCRIBEメッセージ受信率が所定閾値Tsよりも高い場合、購読メッセージ受信率が所定閾値Ts以下となるいずれか1つの追加プレゼンスサーバを選択するプレゼンスサーバ選択手段と、
選択されたプレゼンスサーバへ、PUBLISHメッセージを送信するメッセージ送受信制御手段と
してコンピュータを機能させることを特徴とする負荷分散プログラム。
従って、本発明の負荷分散サーバ及びプログラムによれば、ある特定のプレゼンス情報に対して多くのSUBSCRIBEメッセージが集中して送信される場合であっても、そのプレゼンス情報を登録するプレゼンスサーバの数を増加させることにより、プレゼンス情報の負荷を分散管理することができる。
以下では、図面を用いて、本発明を実施するための最良の形態について詳細に説明する。
図2は、本発明におけるシステム構成図である。
本発明の重要な構成要素は、SIP/SIMPLEを用いたプレゼンスシステムに搭載された負荷分散サーバ1である。図2によれば、プレゼンティティ又はウォッチャとして機能する複数のユーザ端末は、負荷分散サーバ1と通信する。負荷分散サーバ1は、ネットワークを介して複数のプレゼンスサーバ2と接続されている。負荷分散サーバ1は、プレゼンス情報を複数のプレゼンスサーバに登録することにより、プレゼンスシステムにおけるSUBSCRIBEメッセージの分散処理を可能とする。
本発明における負荷分散サーバ1は、プレゼンティティ3から、プレゼンス情報を含むPUBLISHメッセージを受信した際に、プレゼンスサーバに対するメッセージの集中の程度から負荷分散の必要性を判定する。負荷分散が必要と判定した際に、負荷分散サーバ1は、複数のプレゼンスサーバ2へPUBLISHメッセージを送信する。これにより、そのプレゼンス情報が、複数のプレゼンスサーバ2によって登録される。
また、負荷分散サーバ1は、ウォッチャ4からSUBSCRIBEメッセージを受信した際に、特定のプレゼンスサーバ2に負荷が集中しないように、負荷の軽いプレゼンスサーバへ、そのSUBSCRIBEメッセージを経路制御する。
プレゼンスサーバ2は、受信したSUBSCRIBEメッセージを経路制御してプレゼンスサーバ2へ送信する。例えば、プレゼンスサーバのアドレスを含むリダイレクト要求をウォッチャ4へ返信するか、DSR方式又はNAT方式によってプレゼンスサーバへSUBSCRIBEメッセージを送信する。これによって、プレゼンスサーバ2は、そのプレゼンス情報を含むNOTIFYメッセージを、ウォッチャ4へ転送することができる。ウォッチャ4は、負荷分散サーバ1を介しているにもかかわらず、既存のプレゼンスサーバ2と直接的にSUBSCRIBEメッセージを送受信している場合と、何ら違いがない。
負荷分散サーバ1は、全てのプレゼンスサーバ2の識別子(プレゼンスサーバURIであって、例えばSIP-URI)のリストを保持する。本発明によれば、特定のプレゼンス情報に対してSUBSCRIBEメッセージが多数発生した場合、そのプレゼンス情報を登録するプレゼンスサーバ2を増加させていくことによって、特定のプレゼンスサーバ2に集中する負荷を分散させることができる。
図3は、本発明における負荷分散サーバの機能構成図である。
負荷分散サーバ1は、データ蓄積のために、プレゼンスサーバリスト蓄積部101と、パブリッシュ用データベース102と、サブスクライブ用データベース103とを有する。
プレゼンスサーバリスト蓄積部101は、利用可能な全てのプレゼンスサーバにおけるプレゼンスサーバURI(SIP-URI)と、それに対応するハッシュ値とを蓄積する。ハッシュ値は、SIP-URIを引数としてハッシュ関数から得た値である。
パブリッシュ用データベース102は、プレゼンス情報毎のエントリに、当該プレゼンス情報を登録したプレゼンスサーバのSIP-URIのリスト(エントリリスト)を記録する。パブリッシュ用データベース102は、プレゼンティティにおけるプレゼンス情報の識別子(PRS-URI)及びイベント名(Event)毎に、以下のようなデータを蓄積する。
Figure 0004753316
表1によれば、PRS-URI及びEvent(例えばpresence)毎に、「有効期間」と、「代表エンティティタグ」と、「プレゼンスサーバURI及びエンティティタグのリスト」とを有する。
「有効期間」は、そのプレゼンス情報の登録がプレゼンスサーバによって保持される時間を表す。「代表エンティティタグ」は、プレゼンティティへ返信した200OKメッセージにおけるExpiresヘッダフィールドの値である。「エントリリスト」は、そのプレゼンス情報を登録しているプレゼンスサーバのSIP-URI及びエンティティタグのリストである。
サブスクライブ用データベース103は、プレゼンスサーバ毎に、SUBSCRIBE受信率を記録する。サブスクライブ用データベース103は、302 Moved Temporarily方式と、DSR/NAT方式とで、蓄積するデータ構造が異なる。
302 Moved Temporarily方式とは、Webサーバからの応答であるHTTPリダイレクト(Hyper Text Transfer Protocol redirect)用のコードを、SIPの応答メッセージに適用したものであり、本来は、ページが一時的に別の場所に用意されていることを意味する。HTTPでは、ユーザ端末のWebブラウザは、自動的にこのコードを認識し、リダイレクト先のURLを読みに行く。これをSIPに適用した場合、ウォッチャ4−プレゼンスサーバ2間のSUBSCRIBEメッセージ及びNOTIFYメッセージは直接的に送受信され、負荷分散サーバ1を全く経由しない。また、DSR方式は、直接サーバ返答方式であり、NAT方式とは、アドレス書き換え方式である。
サブスクライブ用データベース103は、302 Moved Temporarily方式の場合、以下のようなデータを蓄積する。
Figure 0004753316
データ構造1によれば、PRS-URI及びEvent毎に、「プレゼンスサーバURI、有効期間」のリストを有する。ここで、有効期間とは、各プレゼンスサーバにおいて、そのプレゼンス情報に対するSUBSCRIBEメッセージの有効期間の中で、最長の有効期間のもの示す。
また、データ構造2によれば、プレゼンスサーバURI毎に、SUBSCRIBE受信率を蓄積する。SUBSCRIBE受信率とは、単位時間当たりのSUBSCRIBE数を意味し、これによって、発生したSUBSCRIBEの数が多いか少ないかを判定することができる。
更に、サブスクライブ用データベース103は、DSR/NAT方式の場合、以下のようなデータを蓄積する。
Figure 0004753316
データ構造1によれば、プレゼンスサーバへ送信したSUBSCRIBEメッセージにおけるプレゼンス情報のEvent、ダイアログ(Toタグ、Fromタグ、Call-ID)、有効期間、プレゼンスサーバの識別子の組み合わせを記録する。
また、データ構造2によれば、プレゼンスサーバ毎に、総サブスクライブ数を記録する。DSR/NAT方式では、SUBSCRIBE受信率の代わりに、有効なダイアログの数をカウントした総サブスクライブ数を用いる。
負荷分散サーバ1は、更に、プレゼンスサーバ選択部104と、エントリ検索部105と、SUBSCRIBE受信率判定部106と、メッセージ送受信制御部107と、エントリ更新部108と、通信インタフェース部109とを有する。これら機能構成部は、サーバに搭載されたコンピュータを機能させるプログラムを実行することによって実現される。
プレゼンスサーバ選択部104は、プレゼンスサーバに基づくSUBSCRIBE受信率が所定閾値Tsよりも高い場合、SUBSCRIBE受信率が所定閾値Ts以下となるいずれか1つの追加プレゼンスサーバを選択する。
エントリ検索部105は、当該プレゼンス情報に基づくエントリに含まれたリストの中のプレゼンスサーバについて、SUBSCRIBE受信率が最も低いプレゼンスサーバを選択する。
SUBSCRIBE受信率判定部106は、プレゼンスサーバにおけるSUBSCRIBE受信率が所定閾値Ts以下か否かを判定する。
メッセージ送受信制御部107は、プレゼンスサーバ2と、プレゼンティティ3と、ウォッチャ4との間でメッセージを交換する。
尚、各機能構成部の詳細な動作は、後述する図8及び図9に記載されたフローチャートに、番号を付して明確にしている。
図4は、本発明における第1のシーケンス図である。
(S401)最初に、プレゼンティティ3は、プレゼンス情報を登録するためにPUBLISH(INITIAL)メッセージを負荷分散サーバ1へ送信する。PUBLISH(INITIAL)メッセージを受信した負荷分散サーバ1は、そのプレゼンス情報を登録すべきプレゼンスサーバPを選択する。このとき、SUBCRIBE受信率が所定閾値Ts以下となるプレゼンスサーバPが選択される。そして、そのPUBLISH(INITIAL)メッセージは、そのプレゼンスサーバ2へ送信される。これにより、プレゼンスサーバ2は、プレゼンティティ3のプレゼンス情報を登録する。
以下は、この場合のPUBLISHメッセージのフォーマット例である。
PUBLISH sip:presentity@example.com SIP/2.0 [PRS-URI]
Via SIP/2.0/UDP
Event: [イベント名]
To:<sip:presentity@example.com> [PRS-URI]
From:<sip:presentity@example.com> [PRS-URI]
Expires: [登録の有効期間]
Call-ID:
CSeq: 1 PUBLISH
(S402)これに対し、プレゼンスサーバ2は、200OKメッセージを負荷分散サーバ1へ返信する。200OKメッセージを受信した負荷分散サーバ1は、その200OKメッセージを、プレゼンティティ3へ返信する。これにより、プレゼンティティ3は、プレゼンスサーバ2へのプレゼンス情報の登録を完了する。
(S403)次に、ウォッチャ4が、プレゼンティティ3のプレゼンス情報を購読したいとする。このとき、ウォッチャ4は、SUBSCRIBE(INITIAL)メッセージを負荷分散サーバ1へ送信する。
以下は、この場合のSUBSCRIBEメッセージのフォーマット例である。
SUBSCRIBE sip:presentity@example.com SIP/2.0 [PRS-URI]
Via SIP/2.0/UDP
Event: [イベント名]
To:<sip:presentity@example.com> [PRS-URI]
From:<sip:watcher@example.com> [ウォッチャのSIP URI]
Expires: [購読の有効期間]
Call-ID:
CSeq: 1 SUBSCRIBE
(S404)これに対し、負荷分散サーバ1は、SIPのリダイレクトの応答である302 Moved Temporarilyをウォッチャ4へ返信する。302 Moved Temporarilyは、そのプレゼンス情報を登録しているプレゼンスサーバ2のSIP-URIを含む。
(S405)ウォッチャ4は、リダイレクトによって、302 Moved Temporarilyに含まれるプレゼンスサーバ2のSIP-URIへ向けて、SUBSCRIBE(INITIAL)メッセージを送信する。
(S406)プレゼンスサーバ2は、ウォッチャ4からSUBSCRIBEメッセージを受信すると、既存のプレゼンスサーバと同様に、200OKメッセージをウォッチャ4へ返信する。プレゼンスサーバ2は、既に、負荷分散サーバ1からPUBLISH(INITIAL)メッセージを受信しており、そのプレゼンス情報を登録している。
(S407)次に、プレゼンスサーバ2は、NOTIFYメッセージを、ウォッチャ4へ送信する。NOTIFYメッセージは、プレゼンティティ3のプレゼンス情報を含む。
以下は、この場合のNOTIFYメッセージのフォーマット例である。
NOTIFY sip:watcher@example.com SIP/2.0 [ウォッチャのSIP URI]
Via SIP/2.0/UDP
Event: [イベント名]
To:<sip:watcher@example.com> [ウォッチャのSIP URI]
From:<sip:presentity@example.com> [PRS-URI]
Call-ID:
CSeq: 1 NOTIFY
Subscription-Status: active; expires= [購読の状態、有効期間]
<中略>
<プレゼンス情報>
(S408)NOTIFYメッセージを受信したウォッチャ4は、そのプレゼンス情報を取得する。そして、200OKメッセージを、プレゼンスサーバ2へ返信する。
(S409)その後、そのプレゼンス情報の購読を要求するSUBSCRIBEメッセージが、複数のウォッチャ4から多数送信されたとする。プレゼンスサーバ2に対するSUBSCRIBE受信率は、負荷分散サーバ1によって監視されている。このとき、プレゼンスサーバ2に対する負荷が集中しているために、以下では、そのプレゼンス情報を、他のプレゼンスサーバ2へ登録するように動作する。
(S410)ウォッチャ4が、プレゼンティティ3のプレゼンス情報に対するSUBSCRIBEメッセージを、負荷分散サーバ1へ送信したとする。負荷分散サーバ1は、新たにプレゼンティティ3のプレゼンス情報を持つプレゼンスサーバを追加する。まず、プレゼンティティ3のプレゼンス情報を取得するため、負荷分散サーバ1は、Expires(有効期間)ヘッダを0に設定したプレゼンティティ3のプレゼンス情報に対するSUBSCRIBEメッセージを、プレゼンスサーバ2へ送信する。これは、有効期間の更新を意味しない。
以下は、この場合のSUBSCRIBEメッセージのフォーマット例である。
SUBSCRIBE sip:presentity@example.com SIP/2.0 [PRS-URI]
Via SIP/2.0/UDP
Event: [イベント名]
To:<sip:presentity@example.com> [PRS-URI]
From:<sip:load-balance@example.com> [負荷分散サーバのSIP URI]
Expires: 0 [購読の有効期間=0]
Call-ID:
CSeq: 1 SUBSCRIBE
(S411)これに対し、プレゼンスサーバ2は、200OKメッセージを負荷分散サーバ1へ返信する。
(S412)次に、プレゼンスサーバ2は、NOTIFYメッセージを、負荷分散サーバ1へ送信する。NOTIFYメッセージは、プレゼンティティ3のプレゼンス情報を含む。
以下は、この場合のNOTIFYメッセージのフォーマット例である。
NOTIFY sip:load-balance@example.com SIP/2.0 [負荷分散サーバのSIP URI]
Via SIP/2.0/UDP
Event: [イベント名]
To:<sip:load-balance@example.com> [負荷分散サーバのSIP URI]
From:<sip:presentity@example.com> [PRS-URI]
Call-ID:
CSeq: 1 NOTIFY
Subscription-Status: terminated; expires=timeout[購読の状態、有効期間]
<中略>
<プレゼンス情報>
(S413)NOTIFYメッセージを受信した負荷分散サーバ1は、そのプレゼンス情報を取得することができる。そして、200OKメッセージを、プレゼンスサーバ2へ返信する。
(S414)ここで、負荷分散サーバ1は、そのプレゼンス情報を登録すべき別のプレゼンスサーバPを選択する。このプレゼンスサーバPは、そのSUBSCRIBE受信率が所定閾値Ts以下であることを要する。そして、負荷分散サーバ1は、そのプレゼンス情報を含むPUBLISH(INITIAL)メッセージを、選択されたプレゼンスサーバPへ送信する。これにより、処理負荷の小さいプレゼンスサーバPに対して、そのプレゼンス情報を登録することができる。尚、登録の有効期間は、パブリッシュ用データベースから、該当するプレゼンス情報を持つ他のプレゼンスサーバと同じ有効期間を設定する。
以下は、この場合のPUBLISHメッセージのフォーマット例である。
PUBLISH sip:presentity@example.com SIP/2.0 [PRS-URI]
Via SIP/2.0/UDP
Event: [イベント名]
To:<sip:presentity@example.com> [PRS-URI]
From:<sip:presentity@example.com> [PRS-URI]
Expires: [登録の有効期間]
Call-ID:
CSeq: 1 PUBLISH
(S415)これに対し、プレゼンスサーバPは、200OKメッセージを負荷分散サーバ1へ返信する。
(S416)次に、負荷分散サーバ1は、プレゼンスサーバPから200OKメッセージを受信すると、SIPの302 Moved Temporarilyをウォッチャ4へ返信する。302 Moved
Temporarilyは、新たにプレゼンス情報を登録したプレゼンスサーバPのSIP-URIを含む。
(S417)302 Moved Temporarilyを受信したウォッチャ4は、リダイレクトによって、302 Moved Temporarilyに含まれるプレゼンスサーバPのSIP-URIへ向けて、SUBSCRIBEメッセージを送信する。即ち、SUBSCRIBEメッセージは、負荷分散サーバ1を介することなく、直接的にプレゼンスサーバへ送信される。
(S418)プレゼンスサーバPは、ウォッチャ4からSUBSCRIBEメッセージを受信すると、既存のプレゼンスサーバと同様に、200OKメッセージをウォッチャ4へ返信する。プレゼンスサーバPは、既に、負荷分散サーバ1からPUBLISH(INITIAL)メッセージを受信しており、そのプレゼンス情報を登録している。
(S419)次に、プレゼンスサーバPは、NOTIFYメッセージを、ウォッチャ4へ送信する。NOTIFYメッセージは、プレゼンティティ3のプレゼンス情報を含む。
(S420)NOTIFYメッセージを受信したウォッチャ4は、そのプレゼンス情報を取得する。そして、200OKメッセージを、プレゼンスサーバ2へ返信する。
図4によれば、ある特定のプレゼンス情報に対して多くのSUBSCRIBEメッセージが集中して送信される場合であっても、そのプレゼンス情報を登録するプレゼンスサーバの数を増加させることにより、プレゼンス情報の負荷を分散管理することができる。
図5は、本発明における第2のシーケンス図である。
PUBLISHメッセージは、新規登録のためのINITIALと、プレゼンス情報の登録における有効期限の更新のためのREFRESHと、プレゼンス情報の内容変更のためのMODIFYとに分類される。PUBLISH(REFRESH/MODIFY)メッセージには、SIP-If-Matchヘッダが付加されており、PUBLISH(INITIAL)メッセージには、SIP-If-Matchヘッダが付加されていない。PUBLISH(REFRESH/MODIFY)メッセージは、そのSIP-If-Matchヘッダに、INITIAL(初回)登録時に対する200OKメッセージのSIP-ETagヘッダフィールドのエンティティタグを格納する。これによって、プレゼンスサーバ2及び負荷分散サーバ1は、登録済みのプレゼンス情報に対するPUBLISHメッセージであると認識することができる。
「SIP-If-Match」ヘッダは、以前に発行したイベントステートに関するPUBLISHレスポンス(200OK)で指定されたSIP-ETagヘッダ値を指定する。これは、以前に発行されたイベントステートを更新する場合に、PUBLISHメッセージによって更新、修正又は削除させる特定のイベントステートを識別するものである。
「SIP-ETag」ヘッダは、PUBLISHメッセージを受信した場合に、ESC(Event State Compositor)が生成したエンティティタグ(リクエスト識別子)である。
図5によれば、PUBLISH(REFRESH/MODIFY)メッセージを受信した場合のシーケンスについて表している。
(S501)プレゼンティティ3は、既に登録したプレゼンス情報の再登録及び内容変更について、PUBLISH(REFRESH/MODIFY)メッセージを負荷分散サーバ1へ送信する。負荷分散サーバ1は、そのプレゼンス情報を既に登録しているプレゼンスサーバPを検索し、そのプレゼンスサーバPへそのPUBLISH(REFRESH/MODIFY)メッセージを送信する。
(S502)これに対し、プレゼンスサーバPは、プレゼンティティ3のプレゼンス情報の再登録及び内容変更をする。そして、プレゼンスサーバPは、200OKメッセージを負荷分散サーバ1へ返信する。
(S503)このとき、負荷分散サーバ1は、そのプレゼンス情報を既に登録しているプレゼンスサーバPにおけるSUBSCRIBE受信率を検索する。SUBSCRIBE受信率が、所定閾値Ts以下でない場合、即ち、そのプレゼンスサーバPの処理負荷が高い場合には、他のプレゼンスサーバ2へ、そのプレゼンス情報を登録する。
ここで、プレゼンスサーバPのSUBSCRIBE受信率が、所定閾値Ts以下でないとする。このとき、負荷分散サーバ1は、そのプレゼンス情報を登録すべき別のプレゼンスサーバPnewを選択する。このプレゼンスサーバPnewは、そのSUBSCRIBE受信率が所定閾値Ts以下であることを要する。そして、負荷分散サーバ1は、そのプレゼンス情報を含むPUBLISH(INITIAL)メッセージを、選択されたプレゼンスサーバPnewへ送信する。この際、SIP-If-Matchヘッダは含めないことに注意されたい。これにより、処理負荷の小さいプレゼンスサーバPnewに対して、そのプレゼンス情報を登録することができる。
(S504)プレゼンスサーバPnewは、200OKメッセージを負荷分散サーバ1へ返信する。また、負荷分散サーバ1は、その200OKメッセージのSIP-ETagヘッダフィールドのエンティティタグを、サブスクライブ用データベースに格納する。そして、200OKメッセージは、プレゼンティティ3へ返信される。このプレゼンティティ3は、代表エンティティタグをSIP-If-Matchヘッダに付与したPUBLISH(REFRESH/MODIFY)メッセージの送信元である。代表エンティティタグは、あるプレゼンス情報に対して最初にPUBLISHメッセージを受信したプレゼンスサーバからの200OKメッセージに含まれるSIP-ETagヘッダフィールドのエンティティタグを用いてもよい。例えば、この場合は、プレゼンスサーバPの200OKメッセージが該当する。また、負荷分散サーバ1が独自に生成してもよい。
(S505)その後、プレゼンスサーバ2に対して、そのプレゼンス情報の購読を要求するSUBSCRIBEメッセージの数が減少してきたとする。そのプレゼンスサーバ2に対する購読の有効時間の最大値は、負荷分散サーバ1によって監視されている。
SUBSCRIBEメッセージの数が減少することによって、サブスクライブ用データベース103に記憶されたSUBSCRIBEの有効期間が、現在時刻を過ぎる場合がある。これは、プレゼンスサーバ2においてそのプレゼンス情報に対する有効な購読がないことを意味する。このとき、負荷分散サーバ1は、SUBSCRIBEの有効期間が現在時刻を過ぎたプレゼンスサーバ2について、エントリリストから削除する。これにより、負荷分散サーバ1は、その後、プレゼンティティ3からのPUBLISH(REFRESH/MODIFY)メッセージ及びウォッチャ4からのSUBSCRIBEメッセージを受信しても、エントリリストから削除されたプレゼンスサーバ2へ、メッセージを送信することはない。但し、負荷分散サーバ1は、各プレゼンス情報について、最低1つはそれを登録するプレゼンスサーバを残すものとする。
(S506)プレゼンティティ3は、既に登録したプレゼンス情報の再登録及び内容変更について、PUBLISH(REFRESH/MODIFY)メッセージを負荷分散サーバ1へ送信する。負荷分散サーバ1は、そのプレゼンス情報を既に登録しているプレゼンスサーバPを検索し、そのプレゼンスサーバPへそのPUBLISH(REFRESH/MODIFY)メッセージを送信する。
(S507)これに対し、プレゼンスサーバPは、そのプレゼンス情報を登録する。そして、プレゼンスサーバPは、200OKメッセージを負荷分散サーバ1へ返信する。また、負荷分散サーバ1は、その200OKメッセージを、PUBLISH(REFRESH/MODIFY)メッセージを送信したプレゼンティティ3へ返信する。
ここで、PUBLISHメッセージ及び200OKメッセージの送受信方法について説明する。ここで、MAC(Media Access Control)アドレス変換によるDSRを用いる場合と、IPアドレス変換NATを用いる場合とがある。
[MACアドレス変換によるDSRを用いる場合]
負荷分散サーバ1及びプレゼンスサーバ2は、同一リンク上に接続される。
(1)負荷分散サーバ1が、プレゼンスサーバ2へ送信するPUBLISHメッセージ
PUBLISHメッセージの送信先MACアドレス:プレゼンスサーバ2のMACアドレス
送信先IPアドレス:負荷分散サーバ1のIPアドレス
プレゼンスサーバ2のループバックインタフェースには、負荷分散サーバ1と同じIPアドレスが付与されている。従って、プレゼンスサーバ2は、このPUBLISHメッセージを受信することができる。
(2)プレゼンスサーバ2が、プレゼンティティ3へ送信する200OKメッセージ
200OKメッセージの送信元MACアドレス:プレゼンスサーバPのMACアドレス
送信元IPアドレス:負荷分散サーバ1のIPアドレス
送信先IPアドレスは、プレゼンティティ(又はそのプロキシサーバ)とするために、200OKメッセージは、プレゼンティティ3へ直接到達する。
[IPアドレス変換によるNATを用いる場合]
(1)負荷分散サーバ1が、プレゼンスサーバ2へ送信するPUBLISHメッセージ
ウォッチャから送信されるSUBSCRIBEメッセージの送信先IPアドレス:
プレゼンスサーバ2のIPアドレス
(2)プレゼンスサーバ2が、プレゼンティティ3へ送信する200OKメッセージ
負荷分散サーバ1は、プレゼンスサーバ2のデフォルト経路、又はプレゼンスサーバ2におけるPUBLISHメッセージに対する200OKメッセージのSIPプロキシとして動作する。
負荷分散サーバ1は、プレゼンスサーバから受信した200OKメッセージを、プレゼンティティへ送信する場合、200OKメッセージの送信元IPアドレスを、負荷分散サーバのIPアドレスに変換する。
次に、SUBSCRIBEメッセージ及びNOTIFYメッセージの送受信方法について説明する。
[MACアドレス変換によるDSRを用いる場合]
(1)SUBSCRIBEのダイアログが生成されていない場合、302 Moved Temporarilyの場合と同様の方法で、SUBSCRIBEメッセージを送信するプレゼンスサーバ2を決定する。
(2)SUBSCRIBEのダイアログが生成されている場合、ダイアログに対応するプレゼンスサーバ2をサブスクライブ用データベース103(表4参照)から検索する。
(3)負荷分散サーバ1が、プレゼンスサーバ2へ送信するSUBSCRIBEメッセージ
SUBSCRIBEメッセージの送信先MACアドレス:プレゼンスサーバPのMACアドレス
送信先IPアドレス:負荷分散サーバ1のIPアドレス
プレゼンスサーバ2のループバックインタフェースには、負荷分散サーバと同じIPアドレスが付与される。そのために、負荷分散サーバは、SUBSCRIBEメッセージを受信することができる。
(4)負荷分散サーバ1は、プレゼンスサーバ2へSUBSCRIBEメッセージを送信した後、ダイアログの情報をサブスクライブ用データベース103に記録する。
(5)プレゼンスサーバPが、ウォッチャへ送信する200OKメッセージ
200OKメッセージの送信元MACアドレス:プレゼンスサーバ2のMACアドレス
送信元IPアドレス:負荷分散サーバ1のIPアドレス
送信先IPアドレスは、ウォッチャ(又はそのプロキシサーバ)とするため、200OKメッセージは、ウォッチャへ直接到達する。
[IPアドレス変換NATを用いる場合]
(1)SUBSCRIBEのダイアログが生成されていない場合、302 Moved Temporarilyの場合と同様の方法で、SUBSCRIBEメッセージを送信するプレゼンスサーバ2を決定する。
(2)SUBSCRIBEのダイアログが生成されている場合、ダイアログに対応するプレゼンスサーバ2をサブスクライブ用データベース103(表4参照)から検索する。
(3)負荷分散サーバ1が、プレゼンスサーバPへ送信するSUBSCRIBEメッセージ
SUBSCRIBEメッセージの送信先IPアドレス:
ダイアログに対応したプレゼンスサーバPのIPアドレス
(4)プレゼンスサーバPが、ウォッチャへ送信する200OKメッセージ
負荷分散サーバ1は、プレゼンスサーバPのデフォルト経路として動作し、200OKメッセージを受信した際に、送信元IPアドレスを負荷分散サーバ1のものに変換してウォッチャへ送信する。
図6は、本発明におけるプレゼンスサーバ選択部のフローチャートである。
プレゼンスサーバ選択部には、PRS-URI及びEventを入力する。
(S601)最初に、Numフラグを0に設定する。
(S602)ハッシュ値Hash(PRS)を導出する。ハッシュ関数への引数は、例えば以下のようなものである。
Hash(PRS)=Hash(PRS-URI/Event/Num)
”/”は区切り文字
ここで、プレゼンスサーバリスト蓄積部101を検索する。プレゼンスサーバURI(SIP-URI)に対応付けて、そのSIP-URIを引数とするハッシュ値Hash(SIP-URI)が記録されている。
(S603)次に、Hash(PRS)に最も近いHash(SIP-URI)を有するプレゼンスサーバを検索する。検索されたプレゼンスサーバを、プレゼンスサーバPと設定する。
(S604)次に、負荷分散サーバ1は、サブスクライブ用データベース103に記録されたプレゼンスサーバPにおける、SUBSCRIBE受信率(単位時間当たりの総SUBSCRIBE数)が所定閾値Ts以下か否かを判定する。ここで、所定閾値Tsよりも高い場合は、そのプレゼンスサーバPに対してSUBSCRIBEメッセージが集中しているために、他のプレゼンスサーバを選択する必要があると考える。
(S605)SUBSCRIBE受信率が所定閾値Tsより高い場合、Numを1増分する。これによって、次に算出されるハッシュ値Hash(PRS)が異なる値となり、他のプレゼンスサーバPが選択されることとなる。このように、SUBSCRIBE受信率が所定閾値Ts以下であるプレゼンスサーバPが検出されるまで、Numを1増分しつつ繰り返す。
最終的に、SUBSCRIBE受信率が所定閾値Ts以下となるプレゼンスサーバPが選択さることとなる。
図7は、本発明におけるエントリ検索部のフローチャートである。
エントリ検索部には、PRS-URI、Event及びSIP-If-Matchヘッダフィールドのエンティティタグを入力する。
(S701)最初に、パブリッシュ用データベース102から、PRS-URI、Event及びエンティティタグに一致するエントリを検索する。このとき、現在時刻が、そのエントリに含まれる有効期間内であることも要する。尚、SIP-If-Matchヘッダフィールドのエンティティタグは、エントリの代表エンティティタグと一致していることを要する。
(S702)パブリッシュ用データベース102から、対象となるエントリが検索されなかった場合、402 Conditional Request Failedをプレゼンティティ3へ返信する。
(S703)パブリッシュ用データベース102によって、対象となるエントリが検索された場合、そのエントリのエントリリストに含まれるプレゼンスサーバの中で、最もSUBSCRIBE受信率が少ないプレゼンスサーバPを、サブスクライブ用データベース103を用いて検索する。
図8は、PUBLISHメッセージを受信した場合における負荷分散サーバのフローチャートである。
(S801)受信したPUBLISHメッセージが、INITIALであるか、又はREFRESH/MODIFYであるかを判定する。SIP-If-Matchヘッダが無いPUBLISHメッセージは、INITIALと判定される。
(S802)PUBLISH(INITIAL)メッセージである場合、そのプレゼンス情報は未登録であるので、プレゼンスサーバ選択処理(図6参照)によって、プレゼンスサーバPを選択する。プレゼンスサーバPによれば、SUBSCRIBE受信率は所定閾値Ts以下である。
(S803)そのプレゼンスサーバPへ、PUBLISH(INITIAL)メッセージを送信する。
(S804)そして、負荷分散サーバ1は、プレゼンスサーバPからの200OKメッセージの受信を待つ。
(S805)プレゼンスサーバPから200OKメッセージを受信すると、負荷分散サーバ1は、プレゼンティティ3へ200OKメッセージを返信する。
(S806)これによって、負荷分散サーバ1は、プレゼンスサーバPに、プレゼンティティのプレゼンス情報が登録されたと認識する。このとき、負荷分散サーバ1のパブリッシュ用データベース102において、そのPRS-URI及びEventのエントリを検索する。そして、そのエントリのエントリリストの中に、そのプレゼンスサーバPのSIP-URIと、200OKメッセージのSIP-ETagヘッダフィールドに含まれるエンティティタグとを記録する。
また、現在時刻に、200OKメッセージのExpiresヘッダフィールドの値を加えた値が、有効期間(=初期値0)よりも大きい場合、その値を有効期間に入力する。また、代表エンティティタグには、プレゼンティティへ送信した200OKメッセージのExpiresヘッダフィールドの値を入力する。
(S812)PUBLISH(REFRESH/MODIFY)メッセージである場合、エントリ検索処理(図7参照)によって、プレゼンスサーバPを選択する。
(S813)次に、サブスクライブ用データベース103に記録されたプレゼンスサーバPにおける、SUBSCRIBE受信率が所定閾値Ts以下か否かを判定する。
(S814)プレゼンスサーバPのSUBSCRIBE受信率が所定閾値Ts以下でない場合、即ち、プレゼンスサーバPにSUBSCRIBEメッセージが集中して受信されている場合、プレゼンスサーバ選択処理(図6参照)をする。これによって、追加プレゼンスサーバPnewが選択される。
(S815)パブリッシュ用データベース102及びサブスクライブ用データベース103について、当該プレゼンス情報に基づくエントリのエントリリストに、追加プレゼンスサーバPnewの識別子(SIP-URI)を追加する。このとき、エンティティタグは空である。
(S816)追加プレゼンスサーバPnewへ、PUBLISH(INITIAL)メッセージを送信する。そのPUBLISHメッセージのSIP-If-Matchヘッダは、削除する。
(S817)S813によってプレゼンスサーバPにおけるSUBSCRIBE受信率が所定閾値Ts以下である場合、又は、追加プレゼンスサーバPnewが選択された場合、パブリッシュ用データベース102を用いて、当該プレゼンス情報に基づくエントリのエントリリスト内に記録された全てのSIP-URIへ、即ち、全てのプレゼンスサーバへ、PUBLISHメッセージを送信する。但し、パブリッシュ用データベース102から、プレゼンスサーバ毎に対応したエンティティタグを検索し、そのエンティティタグを、そのPUBLISHメッセージのSIP-If-Matchヘッダフィールドに格納する。
(S818)いずれか1つのプレゼンスサーバからの200OKメッセージの受信を待つ。
(S819)いずれか1つのプレゼンスサーバから、200OKメッセージを受信した場合、その200OKメッセージを、プレゼンティティ3へ返信する。このとき、200OKメッセージのSIP-ETagヘッダフィールドには、代表エンティティタグを格納する。
(S820)最後に、パブリッシュ用データベース102及びサブスクライブ用データベース103に対して、PRS-URI及びEventに基づいて、プレゼンスサーバURIに該当する有効期間を更新する。これは、現在時刻に、200OKメッセージのExpiresヘッダフィールドの値を加えたものである。また、追加プレゼンスサーバPnewのエンティティタグには、追加プレゼンスサーバPnewから受信した200OKメッセージに含まれるSIP-ETagヘッダフィールドのエンティティタグを格納する。
図9は、SUBSCRIBEメッセージを受信した場合における負荷分散サーバのフローチャートである。
負荷分散サーバ1は、ウォッチャ4から、プレゼンス情報を購読するためのSUBSCRIBEメッセージを受信する。
(S901)SUBSCRIBEメッセージに含まれるPRS-URI及びEventに基づいて、エントリ検索処理(図7参照)によって、プレゼンスサーバPを検索する。
(S902)検索されたプレゼンスサーバPについて、SUBSCRIBE受信率が所定閾値Ts以下であるか否かを判定する。
(S903)検索されたプレゼンスサーバPについて、SUBSCRIBE受信率が所定閾値Tsよりも高い場合、そのプレゼンス情報を保持するプレゼンスサーバを追加し、そのプレゼンス情報に対する負荷を分散させるように動作する。即ち、プレゼンスサーバPに対してSUBSCRIBEメッセージが集中して受信されている場合、追加プレゼンスサーバを選択する。ここでは、プレゼンスサーバ選択処理(図6参照)がなされる。これによって、追加プレゼンスサーバPnewが選択される。
(S904)追加プレゼンスサーバPnewへ、当該プレゼンス情報を含むPUBLISH(INITIAL)メッセージを送信する。このとき、図4のS410〜S414のように、プレゼンスPへSUBSCRIBEメッセージ(Expires=0)を送信することも好ましい。これによって、ウォッチャ4からのPUBLISH(REFRESH/MODIFY)を受信すること待たずに、受信されるNOTIFYメッセージのボディ部に含まれるプレゼンス情報を取得することができる。
また、負荷分散サーバ1が、各代表エンティティタグに対応するプレゼンス情報について、ウォッチャ4から最後に受信したPUBLISHメッセージを保持しておくものであってもよい。このとき、そのPUBLISHメッセージから、SIP-If-Matchヘッダを削除し、INITIALとする。また、Expiresヘッダフィールドの値には、パブリッシュ用データベース102における有効期間から、現在の時間を差し引いた値を格納する。
(S905)追加プレゼンスサーバPnewからの200OKメッセージの受信を待つ。
(S906)追加プレゼンスサーバPnewから200OKメッセージを受信すると、パブリッシュ用データベース112及びサブスクライブ用データベース103に対して、PRS-URI及びEventに基づくエントリのエントリリストに、追加プレゼンスサーバPnewのSIP-URIを追加する。また、200OKメッセージのSIP-ETagヘッダフィールドのエンティティタグも追加する。
(S907)検索されたプレゼンスサーバPについて、SUBSCRIBE受信率が所定閾値Ts以下である場合、又は、追加プレゼンスサーバPnewを追加した場合、ウォッチャ4へ、プレゼンスサーバP又はPnewに対する302 Moved Temporarilyを送信する。これによって、ウォッチャ4に対して、プレゼンスサーバP又はPnewへのリダイレクトを促す。
(S908)サブスクライブ用データベース103に対して、SUBSCRIBE受信率を更新する。また、プレゼンスサーバP又はPnewにおける有効期間も更新する。現在時刻に、SUBSCRIBEメッセージのExpiresヘッダフィールドの値を加えた時刻が、有効期間(=初期値0)よりも大きい場合、その時刻を有効期間として入力する。
以上、詳細に説明したように、本発明の負荷分散サーバ及びプログラムによれば、ある特定のプレゼンス情報に対して多くのSUBSCRIBEメッセージが集中して送信される場合であっても、そのプレゼンス情報を登録するプレゼンスサーバの数を増加させることにより、プレゼンス情報の負荷を分散管理することができる。
前述した本発明の種々の実施形態において、本発明の技術思想及び見地の範囲の種々の変更、修正及び省略は、当業者によれば容易に行うことができる。前述の説明はあくまで例であって、何ら制約しようとするものではない。本発明は、特許請求の範囲及びその均等物として限定するものにのみ制約される。
従来技術におけるプレゼンスシステムの構成図である。 本発明におけるシステム構成図である。 本発明における負荷分散サーバの機能構成図である。 本発明における第1のシーケンス図である。 本発明における第2のシーケンス図である。 本発明におけるプレゼンスサーバ選択部のフローチャートである。 本発明におけるエントリ検索部のフローチャートである。 PUBLISHメッセージを受信した場合における負荷分散サーバのフローチャートである。 SUBSCRIBEメッセージを受信した場合における負荷分散サーバのフローチャートである。
符号の説明
1 負荷分散サーバ
101 プレゼンスサーバリスト蓄積部
102 パブリッシュ用データベース
103 サブスクライブ用データベース
104 プレゼンスサーバ選択部
105 エントリ検索部
106 SUBSCRIBE受信率判定部
107 メッセージ送受信制御部
108 エントリ更新部
109 通信インタフェース部
2 プレゼンスサーバ
3 プレゼンティティ
4 ウォッチャ

Claims (7)

  1. SIP(Session Initiation Protocol)/SIMPLE(SIP for Instant Messaging and Presence Leveraging Extensions)を用いたプレゼンスシステムに備えられたサーバであって、
    プレゼンス情報を登録するためのPUBLISHメッセージを送信する第1の通信装置と、
    前記プレゼンス情報を購読するためのSUBSCRIBEメッセージを送信する第2の通信装置と、
    受信した前記PUBLISHメッセージに含まれる前記プレゼンス情報を登録し、受信した前記SUBSCRIBEメッセージの送信元装置へ前記プレゼンス情報を含むNOTIFYメッセージを送信する複数のプレゼンスサーバと
    の間で通信可能な負荷分散サーバにおいて、
    前記プレゼンス情報毎のエントリに、当該プレゼンス情報を登録したプレゼンスサーバの識別子のリストを記録したパブリッシュ用データベースと、
    前記プレゼンスサーバ毎に、購読(SUBSCRIBE)メッセージ受信率を記録したサブスクライブ用データベースと、
    前記SUBSCRIBEメッセージ又は前記PUBLISHメッセージを受信した際に、当該プレゼンス情報に基づくエントリに含まれた前記リストの中のプレゼンスサーバについて、前記購読メッセージ受信率が最も低いプレゼンスサーバを選択するエントリ検索手段と、
    選択された前記プレゼンスサーバに基づく前記購読メッセージ受信率が所定閾値Tsよりも高い場合、前記購読メッセージ受信率が所定閾値Ts以下となるいずれか1つの追加プレゼンスサーバを選択するプレゼンスサーバ選択手段と、
    選択された前記プレゼンスサーバへ、前記PUBLISHメッセージを送信するメッセージ送受信制御手段と
    を有することを特徴とする負荷分散サーバ。
  2. 前記プレゼンスサーバ選択手段は、
    前記プレゼンス情報の一部を引数とするハッシュ関数によって、前記複数のプレゼンスサーバの中からいずれか1つのプレゼンスサーバを選択し、
    選択された当該プレゼンスサーバに対する購読メッセージ受信率が所定閾値Ts以下か否かを判定し、
    その判定を真とする前記プレゼンスサーバが検出されるまで、プレゼンスサーバの選択を繰り返す
    ことを特徴とする請求項1に記載の負荷分散サーバ。
  3. 前記メッセージ送受信制御手段は、第2の通信装置から受信した前記SUBSCRIBEメッセージを前記プレゼンスサーバへ送信するために、
    前記プレゼンスサーバのアドレスを含むリダイレクト要求を、第2の通信装置へ返信するか、DSR(Direct Server Return)方式によって前記プレゼンスサーバへ前記SUBSCRIBEメッセージを送信するか、又は、NAT(Network Address Translation)方式によって前記プレゼンスサーバへ前記SUBSCRIBEメッセージを送信する
    ことを特徴とする請求項1又は2に記載の負荷分散サーバ。
  4. 前記SUBSCRIBEメッセージを受信した際に、前記追加プレゼンスサーバへ前記PUBLISHメッセージを送信する場合、
    前記メッセージ送受信制御手段は、当該プレゼンス情報に基づくエントリに含まれる前記リストの中のいずれか1つのプレゼンスサーバへ前記PUBLISHメッセージを送信し、該プレゼンスサーバから前記NOTIFYメッセージによってプレゼンス情報を受信し、該プレゼンス情報を含むPUBLISHメッセージを、前記追加プレゼンスサーバへ送信する
    ことを特徴とする請求項1からのいずれか1項に記載の負荷分散サーバ。
  5. 前記PUBLISHメッセージを受信した際に、前記追加プレゼンスサーバへ前記PUBLISHメッセージを送信する場合、
    前記メッセージ送受信制御手段は、当該プレゼンス情報に基づくエントリに含まれる前記リストの中の全てのプレゼンスサーバへ前記PUBLISHメッセージを送信すると共に、前記追加プレゼンスサーバへ前記PUBLISHメッセージを送信する
    ことを特徴とする請求項1からのいずれか1項に記載の負荷分散サーバ。
  6. 前記サブスクライブ用データベースは、前記プレゼンス情報毎に、更に有効期間を含んでおり、
    前記エントリ検索手段は、前記サブスクライブ用データベースに記憶されたSUBSCRIBEメッセージの有効期間が、現在時刻を過ぎたプレゼンスサーバについて、エントリリストから削除することを特徴とする請求項1からのいずれか1項に記載の負荷分散サーバ。
  7. SIP/SIMPLEを用いたプレゼンスシステムに備えられたサーバであって、
    プレゼンス情報を登録するためのPUBLISHメッセージを送信する第1の通信装置と、
    前記プレゼンス情報を購読するためのSUBSCRIBEメッセージを送信する第2の通信装置と、
    受信した前記公開メッセージに含まれる前記プレゼンス情報を登録し、受信した前記購読メッセージの送信元装置へ前記プレゼンス情報を含むNOTIFYメッセージを送信する複数のプレゼンスサーバと
    の間で通信可能なサーバに搭載されたコンピュータを機能させる負荷分散プログラムであって、
    前記プレゼンス情報毎のエントリに、当該プレゼンス情報を登録したプレゼンスサーバの識別子のリストを記録したパブリッシュ用データベースと、
    前記プレゼンスサーバ毎に、購読(SUBSCRIBE)メッセージ受信率を記録したサブスクライブ用データベースと、
    前記SUBSCRIBEメッセージ又は前記PUBLISHメッセージを受信した際に、当該プレゼンス情報に基づくエントリに含まれた前記リストの中のプレゼンスサーバについて、前記購読メッセージ受信率が最も低いプレゼンスサーバを選択するエントリ検索手段と、
    選択された前記プレゼンスサーバに基づく前記SUBSCRIBEメッセージ受信率が所定閾値Tsよりも高い場合、前記購読メッセージ受信率が所定閾値Ts以下となるいずれか1つの追加プレゼンスサーバを選択するプレゼンスサーバ選択手段と、
    選択された前記プレゼンスサーバへ、前記公開メッセージを送信するメッセージ送受信制御手段と
    してコンピュータを機能させることを特徴とする負荷分散プログラム。
JP2007174983A 2007-07-03 2007-07-03 プレゼンス情報の負荷を分散管理する負荷分散サーバ及びプログラム Expired - Fee Related JP4753316B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007174983A JP4753316B2 (ja) 2007-07-03 2007-07-03 プレゼンス情報の負荷を分散管理する負荷分散サーバ及びプログラム
US12/142,219 US7885191B2 (en) 2007-07-03 2008-06-19 Load balance server and method for balancing load of presence information

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007174983A JP4753316B2 (ja) 2007-07-03 2007-07-03 プレゼンス情報の負荷を分散管理する負荷分散サーバ及びプログラム

Publications (2)

Publication Number Publication Date
JP2009015485A JP2009015485A (ja) 2009-01-22
JP4753316B2 true JP4753316B2 (ja) 2011-08-24

Family

ID=40221334

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007174983A Expired - Fee Related JP4753316B2 (ja) 2007-07-03 2007-07-03 プレゼンス情報の負荷を分散管理する負荷分散サーバ及びプログラム

Country Status (2)

Country Link
US (1) US7885191B2 (ja)
JP (1) JP4753316B2 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4925130B2 (ja) * 2007-12-14 2012-04-25 Kddi株式会社 通信制御方法およびシステム
WO2010040893A1 (en) * 2008-10-10 2010-04-15 Nokia Corporation System and method for re-publication of information in a network-based communication system
EP2222106A1 (en) * 2009-02-24 2010-08-25 Research In Motion Limited Method and system for registering a presence user with a presence service
EP2222056A1 (en) * 2009-02-24 2010-08-25 Research In Motion Limited Method and system for updating a virtual business card
US8606233B2 (en) * 2009-02-24 2013-12-10 Blackberry Limited Content-based publication-subscription system for presence information
US8060572B2 (en) * 2009-02-24 2011-11-15 Research In Motion Limited Subscription management for a content-based presence service
JP5633457B2 (ja) * 2011-03-30 2014-12-03 富士通株式会社 基地局、通信システム、及び通信方法
US10104131B2 (en) * 2011-05-06 2018-10-16 International Business Machines Corporation Managing session initiation protocol subscription dialog state loss
US8661108B2 (en) 2011-05-26 2014-02-25 International Business Machines Corporation Status determination in computer network-based communications system
US9253278B2 (en) * 2012-01-30 2016-02-02 International Business Machines Corporation Using entity tags (ETags) in a hierarchical HTTP proxy cache to reduce network traffic
US9043415B2 (en) 2012-05-09 2015-05-26 International Business Machines Corporation Managing a subscription hierarchy in presence systems
JP5928148B2 (ja) * 2012-05-18 2016-06-01 株式会社リコー 伝送管理システム、伝送システム、及び伝送管理システム用プログラム
US9055118B2 (en) * 2012-07-13 2015-06-09 International Business Machines Corporation Edge caching using HTTP headers
US9299111B2 (en) * 2012-09-04 2016-03-29 Futurewei Technologies, Inc. Efficient presence distribution mechanism for a large enterprise
US10454802B2 (en) * 2015-06-30 2019-10-22 T-Mobile Usa, Inc. Backend polling based on nonzero SIP subscribe expiration
CN107948088B (zh) * 2018-01-05 2021-10-01 宝牧科技(天津)有限公司 一种网络应用层负载均衡的方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3502009B2 (ja) * 2000-04-14 2004-03-02 日本電信電話株式会社 負荷分散制御装置および方法ならびに記録媒体
JP2002163241A (ja) * 2000-11-29 2002-06-07 Ntt Data Corp クライアントサーバシステム
US20040024861A1 (en) * 2002-06-28 2004-02-05 Coughlin Chesley B. Network load balancing
US20040059781A1 (en) * 2002-09-19 2004-03-25 Nortel Networks Limited Dynamic presence indicators
US7421454B2 (en) * 2004-02-27 2008-09-02 Yahoo! Inc. Method and system for managing digital content including streaming media
US8089972B2 (en) * 2004-05-03 2012-01-03 Level 3 Communications, Llc Registration redirect server
US7676577B2 (en) * 2004-12-21 2010-03-09 Alcatel Lucent Scalable presence distribution system and method
JP4460512B2 (ja) * 2005-05-06 2010-05-12 株式会社日立製作所 計算機システムおよび計算機制御方法
JP2006352662A (ja) * 2005-06-17 2006-12-28 Matsushita Electric Ind Co Ltd サーバ装置、参照端末装置、および通信方法
JP2007004361A (ja) * 2005-06-22 2007-01-11 Mitsubishi Electric Corp 負荷分散装置
JP4241760B2 (ja) * 2006-05-18 2009-03-18 株式会社日立製作所 負荷分散システム

Also Published As

Publication number Publication date
US7885191B2 (en) 2011-02-08
US20090010163A1 (en) 2009-01-08
JP2009015485A (ja) 2009-01-22

Similar Documents

Publication Publication Date Title
JP4753316B2 (ja) プレゼンス情報の負荷を分散管理する負荷分散サーバ及びプログラム
JP4856179B2 (ja) Imsにおけるアプリケーションサーバの割当方法および装置
EP1759513B1 (en) Method, system and computer program to enable querying of resources in a certain context by defining a sip event package
US8254288B2 (en) Method and an arrangement for handling a service request in a multimedia network
US20060123116A1 (en) Service discovery using session initiating protocol (SIP)
CN101326493B (zh) 用于多处理器服务器中的负载分配的方法和装置
JP4749469B2 (ja) Xdmサービス情報管理システム及び方法
EP2173115A1 (en) Method for obtaining device information of a user terminal and communication service function entity thereof
US20040128344A1 (en) Content and service registration, query and subscription, and notification in networks
EP2741541B1 (en) Capability inquiry method, communication terminal and application server
EP1634427A1 (en) Service registration, subscription and notification across local service discovery domains
CN101388837A (zh) 路由选择方法、业务网络、网络设备及终端
KR20090087790A (ko) 통합 메시징 서비스의 인터워킹 방법
KR101375983B1 (ko) 멀티미디어 서브시스템, 시그널링 메시지 전송 방법, 질의 기능 엘리먼트 및 연합 기능 엘리먼트
EP1925140B1 (en) Method and apparatus for keeping information up to date at an ims client
WO2009015587A1 (fr) Procédé, système et appareil de routage soap
EP2068524A1 (en) A method and a system for acquiring the transmission path of the sip message
KR20090087791A (ko) 비통합메시징 서비스와 인터워킹하기 위한 통합메시징서비스 제공 시스템 및 방법
EP2845359B1 (en) Call routing for ip multimedia subsystem users
US20110289195A1 (en) Method and server for accessing and providing presence information in a communications network
CN101889426A (zh) 减小存在消息的大小的方法
EP2210400B1 (en) A method for event packet handling
CN101102266B (zh) 基于分组网络的路由方法及系统
EP2242242B1 (en) Call control device, call control system, call control method, and call control program
KR20120094809A (ko) 리스트 조회를 이용한 프레즌스 관리 시스템 및 관리 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100121

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110407

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110414

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110425

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110519

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110519

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140603

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees