JP5458688B2 - 一意性保証支援プログラム、サービス提供システム、及び一意性保証実現方法 - Google Patents

一意性保証支援プログラム、サービス提供システム、及び一意性保証実現方法 Download PDF

Info

Publication number
JP5458688B2
JP5458688B2 JP2009147191A JP2009147191A JP5458688B2 JP 5458688 B2 JP5458688 B2 JP 5458688B2 JP 2009147191 A JP2009147191 A JP 2009147191A JP 2009147191 A JP2009147191 A JP 2009147191A JP 5458688 B2 JP5458688 B2 JP 5458688B2
Authority
JP
Japan
Prior art keywords
message
server
transferred
uniqueness assurance
uniqueness
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
JP2009147191A
Other languages
English (en)
Other versions
JP2010244501A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2009147191A priority Critical patent/JP5458688B2/ja
Priority to US12/723,022 priority patent/US8386575B2/en
Publication of JP2010244501A publication Critical patent/JP2010244501A/ja
Application granted granted Critical
Publication of JP5458688B2 publication Critical patent/JP5458688B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1027Persistence of sessions during load balancing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/54Presence management, e.g. monitoring or registration for receipt of user log-on information, or the connection status of the users

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、複数の通信プロトコルでそれぞれサービスを提供可能な複数のサーバの中から、端末装置からの関連する要求を同じサーバに振り分ける一意性保証を実現させるための技術に関する。
複数のサーバに負荷を分散させる負荷分散には通常、サーバロードバランサ(SLB、Server Load Balancer、負荷分散装置)が利用される。SLBはクライアントである端末装置からの要求(メッセージ)をラウンドロビン方式等の自律振分アルゴリズムに従って複数のサーバのうちの一つに振り分ける。その振り分けによって、情報交換の単位であるセッションがサーバに生成される。 生成されたセッションには、一意に識別するための識別情報(例えばセッションID)が割り当てられ、その識別情報はSLB、及び端末装置に通知される。SLBは、識別情報とその識別情報のセッションを保持するサーバとの関係をテーブル等に登録する。端末装置は、識別情報を格納したパケットにより要求を行う。SLBは、ヘッダに格納された識別情報を用いてテーブルを参照することにより、その識別情報のセッションを保持するサーバにパケットを振り分ける。そのようにしてSLBは、セッションが継続する間、同じ端末装置からの要求は同じサーバに振り分ける機能を維持する。この機能は一意性保証機能(或いはセッション維持機能)と呼ばれる。
識別情報は、通信プロトコルによって異なる。セッションIDは、HTTP(HyperText Transfer Protocol)等の通信プロトコルで用いられる。HTTPメッセージでの格納場所は、HTTPヘッダのset−cookie或いはcookieフィールドである。SIP(Session Initiation Protocol)では、識別情報としてコールIDが用いられる。SIPメッセージでの格納場所は、SIPヘッダのcall−idフィールドである。このコールIDは、SIPメッセージ(パケット)を送信する端末装置によって割り当てられる。 セッションIDとサーバの組み合わせ、及びコールIDとサーバの組み合わせは共に、メッセージを振り分けるべきサーバに振り分ける一意性保証を実現させるための情報である。このことから以降「一意性保証情報」と総称する。
ところで、例えばNGN(Next Generation Network)におけるSDP(Service Discovery Protocol)の分野では、複数の通信プロトコルを組み合わせたサービスを要求可能なアプリケーション(以降「連携アプリケーション」と総称する)が提供されるようになっている。例えば、SIPの呼確立後にHTTP経由で呼情報を表示可能なアプリケーション(以下、アプリと略記する場合がある)や、Webページ経由でSIPの呼制御を行うアプリケーションなどが挙げられる。その連携アプリケーションの代表例としては、SIPとHTTPとを連携可能なCSBNA(Call Scheduleon Busy or No Answer)アプリケーションがある。連携アプリケーションでは普通、通信プロトコル間の連携を実現するために、或る通信プロトコル経由でセッションが生成されたサーバに、他の通信プロトコル経由でもメッセージを到達する必要がある。そのため、通信プロトコル間の連携にも、一意性保証を実現する必要がある。しかしSLBは、自律負荷分散(自動振分)機能により、通信プロトコル毎にメッセージを振り分けるサーバを選択する。このため、複数の通信プロトコルでの一意性保証をサポートしない。
複数の通信プロトコルの一意性保証は、サーバでのセッションの生成を契機に、連携アプリケーションがサポートする他の通信プロトコル用の一意性保証情報も生成し、各通信プロトコルの一意性保証情報をSLBに登録することにより実現させることが考えられる。しかし、連携アプリケーションでは、端末装置から任意の通信プロトコルのメッセージを任意のタイミングで送信する必要がある。それにより、端末装置から、或る通信プロトコルのメッセージの他に、別の通信プロトコルのメッセージがほぼ同時に送信されたようなケースにも対応できるようにする必要がある。その理由は、各通信プロトコル用の一意性保証情報をSLBに登録する前に、SLBに端末装置から別の通信プロトコルのメッセージが届いてしまい、そのメッセージを、SLBが自動振分機能により任意のサーバに振り分けてしまう可能性があるからである。このようなことから、複数の通信プロトコルの一意性保証、つまり複数の通信プロトコル間の連携に対応した一意性保証を確実に実現するためには、複数の通信プロトコルのメッセージが端末装置からほぼ同時に送信されるようなケースにも対応することが重要である。
特開2004−247916号公報 特開2007−219608号公報 特開2008−59060号公報
dynamicsoft Inc., "SIP ServletAPI Version 1.0",February 4, 2003.
本発明は、複数のサーバに負荷を分散させる場合に、複数の通信プロトコル間の連携に対応した一意性保証を確実に実現させるための技術を提供することを目的とする。
本発明を適用した1システムでは、複数の通信プロトコルでそれぞれサービスを提供可能な複数のサーバのなかの一つに端末装置から送信されたメッセージを負荷分散装置により転送させる場合に、以下のようにして、複数の通信プロトコル間の連携に対応した一意性保証を実現させる。
複数のサーバのなかで転送すべきサーバが未定の第1のメッセージを端末装置から負荷分散装置が受信した場合に、該第1のメッセージを転送すべきサーバを選択して転送する。そのようにして第1のメッセージを転送した後、第1のメッセージと同じサーバに転送すべき第2のメッセージを負荷分散装置が端末装置から受信した場合に、その第2のメッセージを保存する。第1のメッセージが転送されたサーバがセッションを生成した場合に、そのセッション(サーバ)とそのセッションに対応するメッセージの対応関係を示す一意性保証情報をそのセッション(アプリケーション・プログラム)が対応する複数の通信プロトコル分、生成する。第2のメッセージが保存されている場合に、生成された各一意性保証情報に従ってその第2のメッセージを転送する。
本発明を適用した場合には、複数のサーバに負荷を分散させる場合に、複数の通信プロトコル間の連携に対応した一意性保証を確実に実現させることができる。
本実施例1によるサービス提供システムを用いて構築されたネットワークシステムの構成を示す図である。 一次SLB13の機能構成を示す図である。 二次SLB14の機能構成を示す図である。 プレゼンスサーバ11の機能構成を示す図である。 一意性保証情報設定管理装置15の機能構成を示す図である。 クライアント2、プレゼンスサーバ11、各SLB13及び14、並びに一意性保証情報設定管理装置15の動作を示すシーケンス図である(その1)。 クライアント2、プレゼンスサーバ11、各SLB13及び14、並びに一意性保証情報設定管理装置15の動作を示すシーケンス図である(その2)。 第2のキュー監視プロセス45が行うメッセージの転送を説明する図である。 シーケンス番号を付加したメッセージのデータ構成を説明する図である(SOAPの場合)。 シーケンス番号を付加したメッセージのデータ構成を説明する図である(SIPの場合)。 プレゼンスサーバ11から送信されるセッション生成通知のデータ構成例を説明する図である。 一意性保証情報設定管理装置から送信されるセッション生成通知のデータ構成例を説明する図である。 第2のキュー監視プロセス45がメッセージ転送用に有する一意性保証情報を説明する図である。 キュー監視プロセス管理部43が管理する情報を説明する図である。 メッセージ受信処理のフローチャートである。 第1のキュー監視プロセス45が実行する処理を示すフローチャートである。 第2のキュー監視プロセス45が実行する処理を示すフローチャートである。 本実施例1を適用可能なコンピュータのハードウェア構成の一例を示す図である。 本実施例2の一次SLB13のプロトコル/メッセージ処理部23が実行する処理を示すフローチャートである。 本実施例2によるサービス提供システムの構成例を示す図である。 アプリ#1を使用する際のメッセージ形式を示す図である。(a)はSIPによるメッセージで、(b)はSOAPによるメッセージを示す。 アプリ#2を使用する際のメッセージ形式を示す図である。(a)はSIPによるメッセージで、(b)はSOAPによるメッセージを示す。 一意性保証情報識別ルール203の一例を示す図である。 振分先候補サーバIPの設定の一例を示す図である。 一意性保証テーブル202の一例を示す図である。(a)は一意性保証情報の登録がなされる前の例を示しており、(b)は一意性保証情報の登録がなされた後の例を示している。
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
図1は、本実施例1によるサービス提供システムを用いて構築されたネットワークシステムの構成を示す図である。そのネットワークシステムは、本実施例1によるサービス提供システムであるプレゼンスサーバシステム1と、端末装置であるクライアント2とを通信ネットワークで接続した形の構成となっている。プレゼンスサーバシステム(以降「サーバシステム」と略記)1は、クライアント2のユーザに、知りたい相手の状態を示すプレゼンス情報を提供するプレゼンス・サービスを行う。相手の状態とは、例えば在席か否か、電話中か否か、多忙か否か、といったものである。
サーバシステム1には、それぞれがプレゼンス・サービスを提供可能なプレゼンスサーバ11が複数、備えられている。各プレゼンスサーバ11は、クライアント2からプレゼンス状態(情報)を受信し、データベース(DB)サーバ12にプレゼンス情報を格納する。各プレゼンスサーバ11は、クライアント2に送信すべきプレゼンス情報をDBサーバ12に問い合わせて取得する。
複数の一次SLB13のうちの一つは、クライアント2から送信された要求(メッセージ)を受信する。受信した一次SLB13は、複数のプレゼンスサーバ11のうちの一つ、或いは二次SLB14に、要求を転送する。ここでは、理解を容易とするために、プレゼンスサーバ11に搭載されたサービス提供用のアプリケーションは、通信プロトコルとしてSIP及びSOAP(Simple Object Access Protocol)をサポートすると想定する。図1では、SIPに対して一次SLB13−1、SOAPに対して一次SLB13−2を想定する。
負荷分散が行われる複数のサーバそれぞれがサポートする通信プロトコルの組み合わせは、これに限定されるものではない。つまりSIPとSOAPの組み合わせ以外のものであっても良い。それにより、各サーバが提供可能なサービスの種類や組み合わせも限定されるものではない。
各プレゼンスサーバ11は、クライアント2からのメッセージの受信によりセッションを生成する。プレゼンスサーバ11は、セッションを生成後、そのセッションを識別するための識別情報であるセッション識別子を、そのセッションを生成したアプリケーションを識別するための識別情報であるアプリケーション識別子と共に、一意性保証情報設定管理装置に通知する。
一意性保証情報設定管理装置15に通知されるセッション識別子とアプリケーション識別子の組み合わせは、クライアント2からのメッセージを転送すべきプレゼンスサーバ11に転送するための転送ルールとなる一意性保証情報である。プレゼンスサーバ11から通知される一意性保証情報は、1通信プロトコル分である。このことから一意性保証情報設定管理装置15は、他の通信プロトコル用の一意性保証情報を生成し、2通信プロトコル分の一意性保証情報を各一次SLB13及び二次SLB14に通知して登録させる。
クライアント2は、セッション識別子を格納したメッセージを通信プロトコルによって特定される一次SLB13に送信する。そのようなメッセージを受信した一次SLB13は、そのメッセージと同じ通信プロトコル用に登録している一意性保証情報を参照し、メッセージの転送先を決定する。その参照により、メッセージ中のセッション識別子を有する一意性保証情報が無いことが判明した場合、そのメッセージを二次SLB14に転送する。そのセッション識別子を有する一意性保証情報が見つかった場合、一次SLB13はそのメッセージを一意性保証情報のアプリケーション識別子から特定されるプレゼンスサーバ11に転送する。このようにして、対応する一意性保証情報が登録されているメッセージは、一次SLB13によって一意性保証が実現される。対応する一意性保証情報が登録されていないメッセージは全て二次SLB14に転送される。
二次SLB14は、一次SLB13から転送されたメッセージをキューの最後尾に格納する。そのメッセージを自律負荷分散機能により振り分けるか否かは、そのメッセージと同じ通信プロトコル用に登録している一意性保証情報の他に、既にプレゼントサーバ11に自律負荷分散機能により振り分けたメッセージを考慮して決定される。自律負荷分散機能により振り分けたメッセージを考慮するのは、既にプレゼンスサーバ11に転送したメッセージと同じセッション識別子を格納したメッセージを異なるプレゼンスサーバ11に転送するのを回避するためである。それにより、同じセッション識別子を格納したメッセージが複数、一次SLB13から転送された場合、二次SLB14は最初に転送されたメッセージのみを自律負荷分散機能により決定したプレゼンスサーバ11に振り分ける。そのメッセージの後に転送されたメッセージは、対応する一意性保証情報を登録するのを待って、その一意性保証情報が示すプレゼンスサーバ11に転送される。
このようにして本実施例1では、二次SLB14は、対応する一意性保証情報が登録されていないメッセージ、つまり自律負荷分散機能により振り分けるべきメッセージ、及びそのメッセージの転送から一意性保証情報が登録されるまでの間にクライアント2から送信されたメッセージを処理する。このため、たとえ複数の通信プロトコルそれぞれで複数のメッセージがクライアント2から送信されたとしても、同じセッション識別子を格納したメッセージは、通信プロトコルに係わらず全て同じプレゼントサーバ11に転送される。この結果、複数の通信プロトコル間の連携に対応した一意性保証は確実に実現される。このようなことから、本実施例1による一意性保証支援装置は、二次SLB14に搭載する形で実現されている。
二次SLB14は、自律負荷分散機能により振り分けたメッセージに、識別用の情報であるシーケンス番号を付加してプレゼンスサーバ11に送信する。図9及び図10は、シーケンス番号を付加したメッセージのデータ構成を説明する図である。図9はメッセージの通信プロトコルがSOAPであるSOAPメッセージの場合であり、図10はその通信プロトコルがSIPであるSIPメッセージの場合である。本実施例1では、メッセージに付加したシーケンス番号は、識別用であると共に、自律負荷分散機能により送信していることをプレゼンスサーバ11に通知する情報として用いている。そのような情報としてシーケンス番号以外のものを採用しても良い。例えばハッシュ値を採用しても良い。
図10のSIPヘッダに表記の「allice@ps.com」は、メッセージを送信したクライアント2が相手先とするクライアント2のSIP−URI(Uniform ResourceIdentifier)である。その相手先SIP−URIは、SOAPメッセージではボディ(SOAPボディ)中の「presentity」パラメータとして格納されている。このパラメータは、このパラメータとして指定されたSIP−URIに対応するプレゼンス情報を取得するための情報である。本実施例1では、そのように異なる通信プロトコルのメッセージに格納する同一の情報をセッション識別子として用いるようにしている。
相手先SIP−URIは、クライアント2のユーザが任意の方法により事前に取得可能な情報である。このため、異なる通信プロトコルのメッセージをほぼ同時に送信する場合であっても、各メッセージに格納することができる。セッションを生成したプレゼンスサーバ11は、そのセッション用のデータとして相手先SIP−URIを保存する。このため、相手先SIP−URIはプレゼンスサーバ11側にとってセッションの識別力を有する情報となっている。相手先SIP−URIをセッション識別子として用いているのは、このような理由からである。この理由から、セッション識別子は、クライアント2側で事前に取得可能であり、プレゼンスサーバ11側でセッションの識別力を有する情報であれば良い。そのような情報としては他に、メッセージを送信したクライアント2の送信元SIP−URI、相手先、若しくは送信元のIPアドレス、等を挙げることができる。
図9或いは図10に示すようなメッセージを受信したプレゼンスサーバ11は、セッションを生成した後、その旨をセッション生成通知として一意性保証情報設定管理装置15に通知する。図11は、そのセッション生成通知のデータ構成例を説明する図である。その生成通知には、セッションを生成する契機となったメッセージ中の送信先SIP−URIをセッション識別子、及びセッションを生成したプレゼンスサーバ11が実行中のアプリケーションを示すアプリケーション識別子(図11中「Presence1」と表記)を含む一意性保証情報の他に、そのメッセージ中のシーケンス番号が格納されている。
このセッション生成通知に格納されている一意性保証情報は、1通信プロトコル分である。このため、一意性保証情報設定管理装置15は、そのセッション生成通知の受信を契機に、別の通信プロトコル分の一意性保証情報を生成し、生成した一意性保証情報をセッション生成通知に加えて二次SLB14及び各一次SLB13にそれぞれ送信する。図12は、そのようにして一意性保証情報設定管理装置15から送信されるセッション生成通知のデータ構成例を説明する図である。図12に示すように、この生成通知には、通信プロトコル別に一意性保証情報が格納されている。
一意性保証情報は、各一次SLB13及び二次SLB14にとって、メッセージを転送すべきプレゼンスサーバ11を識別するための識別ルールとなる。本実施例1では、識別ルール間の識別を可能とするために、二次SLB14は通信プロトコルによって特有の種別情報をアプリケーション識別子に付加している。図12中に「Presence1−」に続けて表記の「SIP」及び「SOAP」は共に、付加した種別情報に相当する。そのような情報を付加したアプリケーション識別子は以降「識別ルール識別子」と記載する。一意性保証情報は以降「識別ルール」或いは「転送ルール」とも呼ぶことにする。
二次SLB14は、セッション生成通知に格納されているシーケンス番号から、自律負荷分散機能により振り分けたメッセージを特定する。そのメッセージに格納されたセッション識別子を有するメッセージがキューに存在している場合、そのメッセージをキューから読み出し、一意性保証情報から特定されるプレゼンスサーバ11に転送する。それにより、二次SLB14に転送された同一のセッション識別子を格納しているメッセージは全て同じプレゼンスサーバ11に転送する。この結果、一意性保証情報が存在していない状況下でクライアント2から送信されたメッセージの一意性保証が確実に実現される。
次に、図2〜図5に示す各種説明図を参照して、一次SLB13、二次SLB14、プレゼンスサーバ11及び一意性保証情報設定管理装置15の各構成、並びに動作について具体的に説明する。
図2は、一次SLB13の機能構成を示す図である。始めに図2を参照して、一次SLB13の構成および動作について詳細に説明する。
一次SLB13は、図2に示すように、クライアント発メッセージ受信部21、メッセージ識別部22、通信プロトコル毎に用意されたプロトコル/メッセージ別処理部23、クライアント発メッセージ送信部24、サーバ発メッセージ受信部25、メッセージ識別部26、通信プロトコル別に用意されたプロトコル/メッセージ別処理部27、サーバ発メッセージ送信部28、一意性保証情報記録受付部29、一意性保証DB201や一意性保証情報識別ルール203を格納した記憶装置を備えた構成となっている。
クライアント2から送信されたメッセージは、クライアント発メッセージ受信部21によって受信され、メッセージ識別部22に渡され、メッセージの通信プロトコルの識別が行われる。メッセージ識別部22の後段には、通信プロトコル別に複数のプロトコル/メッセージ別プロトコル/メッセージ別処理部23が配置されている。メッセージ識別部22は、その識別結果に応じて、メッセージを対応するプロトコル/メッセージ別処理部23に渡す。
各プロトコル/メッセージ別処理部23は、一意性保証情報識別部23a、MSG振分部23b及び一意性保証情報記録部23cを備えている。各部23a〜23cはそれぞれ以下のように動作する。
一意性保証情報識別部23aは、対応する通信プロトコルのメッセージ中に存在する一意性保証情報の識別情報(ここではセッション識別子)を識別して抽出する。その識別は、一意性保証情報識別ルール203を参照して行う。その識別ルール203には、通信プロトコル別、メッセージ別に図9及び図10に示すように格納される一意性保証情報の識別情報(セッション識別子)の位置に関する情報が定義されている。
一意性保証DB201には、通信プロトコル別に、一意性保証情報を格納したプロトコル/メッセージ別一意性保証テーブル202が用意されている。一意性保証情報設定管理装置15から送信されたセッション生成通知に格納されている一意性保証情報はそれぞれ、対応するプロトコル/メッセージ別一意性保証テーブル202に格納(登録)される。MSG振分部23bは、一意性保証情報識別部23aが識別したセッション識別子を用いて、一意性保証DB201の対応するプロトコル/メッセージ別一意性保証テーブル202を参照し、メッセージの転送先を決定する。その転送先は、識別されたセッション識別子を有する一意性保証情報がその保証テーブル202に登録されていた場合、その一意性保証情報から特定されるプレゼンスサーバ11である。識別されたセッション識別子を有する一意性保証情報がその保証テーブル202に登録されていない場合、二次SLB14が転送先として決定される。決定した転送先へのメッセージの転送は、クライアント発メッセージ送信部24によって行われる。
一意性保証情報記録部23cは、メッセージの種類に応じて、セッションの識別情報を一意性保証DB201の対応するプロトコル/メッセージ別一意性保証テーブル202に格納する。この識別情報の格納は、一次SLB13がメッセージを振り分けるプレゼンスサーバ11を決定する自律負荷分散を行う状況時にのみ行う。つまり、二次SLB14へのメッセージの転送を行わない状況時にのみ行う。
プレゼンスサーバ11から一次SLB13宛に送信されたメッセージは、サーバ発メッセージ受信部25により受信され、メッセージ識別部26により通信プロトコルが識別される。それにより、通信プロトコル(メッセージ)別の複数のプロトコル/メッセージ別処理部27のうちの一つにメッセージが渡される。
各プロトコル/メッセージ別処理部27は、一意性保証情報識別部27a、及び一意性保証情報記録部27cを備えている。一意性保証情報識別部27aは、一意性保証情報識別ルール203を参照して、メッセージ中に存在する一意性保証情報の識別情報を識別(抽出)する。一意性保証情報記録部27bは、その識別情報を必要に応じて一意性保証DB202に格納する。プロトコル/メッセージ別処理部27により識別情報を格納するのは、プロトコル/メッセージ別処理部23と同様に、二次SLB14へのメッセージの転送を行わない状況時のみである。
一意性保証情報設定管理装置15から受信したセッション生成通知中に存在する通信プロトコル別の一意性保証情報はそれぞれ、対応するプロトコル/メッセージ別処理部23或いは27の一意性保証情報記録部23c或いは27bによって一意性保証DB201に格納される。ここでは便宜的に、その格納は一意性保証情報記録部27bが行うと想定する。
一意性保証情報設定管理装置15から送信されたセッション生成通知は、一意性保証情報記録受付部29によって受け付けられる。その一意性保証情報記録受付部29は、受け付けたセッション生成通知を各プロトコル/メッセージ別処理部27に渡す。それにより各プロトコル/メッセージ別処理部27の一意性保証情報記録部27bは、対応する一意性保証情報を一意性保証DB201の対応するプロトコル/メッセージ別一意性保証テーブル202に登録する。
一次SLB13は、上述したようにして、クライアント2から受信したメッセージの転送先を決定して転送し、一意性保証情報設定管理装置15から受信したセッション生成通知によって一意性保証DB201を更新する。それにより、複数の通信プロトコル間の連携を可能とする一意性保証を実現させる。
一次SLB13には、通信プロトコル別にプロトコル/メッセージ別処理部23及び27が用意されている。それにより、複数の通信プロトコルをサポートしている。このため、1つの一次SLB13を用いて負荷分散を行わせることにも対応できるようになっている。
図3は、二次SLB14の機能構成を示す図である。次に図3を参照して、二次SLB14の構成および動作について詳細に説明する。
二次SLB14は、図3に示すように、クライアント発メッセージ受信部31、メッセージ識別部32、通信プロトコル毎に用意されたプロトコル/メッセージ別処理部33、クライアント発メッセージ送信部34、サーバ発メッセージ受信部35、メッセージ識別部36、通信プロトコル別に用意されたプロトコル/メッセージ別処理部37、サーバ発メッセージ送信部38、一意性保証情報関連通知受付部39、一意性保証DB301や一意性保証情報識別ルール303、メッセージメッセージキューイング部41、キュー監視プロセス管理部42、キュー監視プロセス生成部43、メッセージ配送状態管理部44を備えた構成となっている。各プロトコル/メッセージ別処理部33は、一意性保証情報識別部33a、MSG振分部33b及び一意性保証情報記録部33cを備えている。各プロトコル/メッセージ別処理部37は、一意性保証情報識別部37a及び一意性保証情報記録部37bを備えている。
上記構成において、クライアント発メッセージ受信部31、メッセージ識別部32、通信プロトコル毎に用意されたプロトコル/メッセージ別処理部33、クライアント発メッセージ送信部34、サーバ発メッセージ受信部35、メッセージ識別部36、通信プロトコル別に用意されたプロトコル/メッセージ別処理部37、及びサーバ発メッセージ送信部38の動作は、一次SLB13と大部分は同じである。このことから、それらの動作については一次SLB13から異なる部分についてのみ説明する。一意性保証DB301は基本的に一次SLB13が管理する一意性保証DB201と内容を含めて同じ構成であり、通信プロトコル別にプロトコル/メッセージ別一意性保証テーブル302が用意されている。一意性保証情報識別ルール303も基本的に一次SLB13が管理する一意性保証情報識別ルールDB203と内容を含めて同じ構成である。
各プロトコル/メッセージ別処理部33のMSG振分部33bは、一意性保証情報識別部33aが識別したセッション識別子を用いて、一意性保証DB301の対応するプロトコル/メッセージ別一意性保証テーブル302を参照し、メッセージの転送先を決定する。その転送先は、識別されたセッション識別子を有する一意性保証情報が保証テーブル302に登録されていた場合、その一意性保証情報から特定されるプレゼンスサーバ11である。識別されたセッション識別子を有する一意性保証情報がその保証テーブル202に登録されていない場合には、キュー監視プロセス生成部43が生成するキュー監視プロセス45に処理させる。
メッセージ中のセッション識別子を有する一意性保証情報が登録されていないケースは、そのセッション識別子を格納したメッセージが初めて転送されるケースと、初めてのメッセージ(以降「初回メッセージ」)の後に同じセッション識別子を格納したメッセージが転送されるケースとに大別される。プロセス生成部43が生成するキュー監視プロセス45は2種類、存在する。一つは、上記自律負荷分散専用であり、もう一つは一意性保証情報に従ったメッセージの転送が可能なものである。以降、便宜的に前者を「第1のキュー監視プロセス」、後者を「第2のキュー監視プロセス」と呼ぶことにする。それら第1及び第2のキュー監視プロセス45によるメッセージの転送は、クライアント発メッセージ送信部34を介して行われる。
MSG振分部33bは、第1のキュー管理プロセス45による自律負荷分散が行われないメッセージをメッセージキューイング部41に格納する。そのメッセージには、状況により初回メッセージが含まれる。このメッセージキューイング部41は、キューイングのための記憶装置であり、このメッセージキューイング部41によりキューが実現されている。
第1のキュー監視プロセス45は、プレゼンスサーバ11のなかでセッションを生成させるプレゼンスサーバ11を選択し、メッセージを転送させる。メッセージに格納されているセッション識別子に関係なく、自律負荷分散を行う。このことから、図9及び図10に示すようなシーケンス番号が付加されたメッセージは、第1のキュー監視プロセス45によって送信される。メッセージの転送後、消去(消滅)される。
メッセージ配送状態管理部44は、メッセージキューイング部41に格納されたメッセージのなかで自律負荷分散が行われたメッセージを管理するために用いられる。具体的には、データの読み書きが可能な記憶装置であり、自律負荷分散によりプレゼンスサーバ11に転送したメッセージ(例えばセッション識別子)毎に、そのメッセージに付加されたシーケンス番号、及びそのメッセージに対応するセッション生成通知を受信したか否かを示す配送状態の各データ(以降「配送状態管理情報」と呼ぶ)が少なくとも格納される。このことから第1のキュー監視プロセス45は、例えばメッセージ配送状態管理部44を参照して、自律負荷分散により選択したプレゼンスサーバ11に転送するメッセージに付加すべきシーケンス番号を特定し、特定したシーケンス番号をメッセージ配送状態管理部44に登録する。配送状態としてはセッション生成通知の受信(通知)待ちを示すデータを登録する。
そのメッセージの転送後、一意性保証情報設定管理装置15からセッション生成通知が送信される。そのセッション生成通知は、一意性保証情報関連通知受付部39によって受信され、キュー監視プロセス生成部43に渡される。第2のキュー監視プロセス45は、そのセッション生成通知がキュー監視プロセス生成部43に渡されることを契機に生成され、その生成通知に格納された一意性保証情報に従ってメッセージをメッセージキューイング部41から読み出して転送する。メッセージキューイング部41に転送すべきメッセージが存在しないことが判明した時点で消去させる。
第1及び第2のキュー監視プロセス45は共に、例えばそれぞれ用意したソフトウェア(アプリケーション、或いはサブプログラム)を起動させることで生成される。第2のキュー監視プロセス45では、例えば対応するソフトウェアに割り当てるべき一意性保証情報を割り当てて起動させる。それにより、割り当てた一意性保証情報に従って転送すべきメッセージのみ転送させる。
図13は、第2のキュー監視プロセス45がメッセージ転送用に有する一意性保証情報を説明する図である。図13に示すように第2のキュー監視プロセス45は、識別用のルール番号を割り当てて各一意性保証情報を管理している。
図8は、第2のキュー監視プロセス45が行うメッセージの転送を説明する図である。図8に表記のA〜Cは何れも、メッセージキューイング部41に格納された、セッション識別子の異なるメッセージを表している。「Aにマッチするルールを持つ監視プロセス」は、メッセージAに格納されたセッション識別子を有する一意性保証情報が適用された第2のキュー監視プロセス45に相当する。メッセージAに対応することから、符号としては「45a」を付している。同様に、第2のキュー監視プロセス45bは、メッセージBに格納されたセッション識別子を有する一意性保証情報が適用された第2のキュー監視プロセス45に相当する。
本実施例1では、図8に示すように、各第2のキュー監視プロセス45はメッセージキューイング部41の先頭、つまり最も前に格納されたメッセージから参照し、対応するメッセージのみ転送する。それにより、例えば第2のキュー監視プロセス45aはメッセージAのみメッセージキューイング部41から読み出して転送し、メッセージA以外のメッセージB及びCを対象にした自律負荷分散は行わない。この結果、メッセージキューイング部41に格納されたメッセージは全て対応する一意性保証情報に従って転送される。
第2のキュー監視プロセス45は、自律負荷分散を行った結果、生成される。このことから第2のキュー監視プロセス45は、他の第2のキュー監視プロセス45が存在しない状況では、消滅の前に第1のキュー監視プロセス45を生成する。また、その状況では、メッセージキューイング部41に格納されている初回メッセージの自律負荷分散を行う。自律負荷分散を行った初回メッセージの後に同じセッション識別子を格納したメッセージの転送は行わない。
キュー監視プロセス生成部45は、第2のキュー監視プロセス45を生成した後、そのプロセス45に割り当てた識別用のプロセス番号を適用させた一意性保証情報と共にプロセス管理部42に通知する。それによりプロセス管理部42は、第2のキュー監視プロセス45とそのプロセス45に適用させた一意性保証情報の対応関係を管理する。実際のプロセス管理部42は、例えば上記メッセージ配送状態管理部44と同様に、データの読み書きが可能な記憶装置である。
図14は、プロセス管理部43が管理する情報を説明する図である。図14に示すように、識別ルール識別子とセッション識別子を有する一意性保証情報はプロセス番号を付加する形でプロセス管理部43に格納される。同一の第2のキュー監視プロセス45に適用された一意性保証情報には同一のプロセス番号が割り当てられている。
一意性保証情報関連通知受付部39は、一意性保証情報設定管理装置15からセッション生成通知を受信した場合、その生成通知をキュー監視プロセス生成部43に渡すと共に、例えば各プロトコル/メッセージ別処理部37にも渡す。それにより、通信プロトコル別に、セッション生成通知に格納された一意性保証情報を一意性保証DB302の対応するプロトコル/メッセージ別一意性保証テーブル302に登録させる。また、メッセージ配送状態管理部44からセッション生成通知に格納されたシーケンス番号を有する配送状態管理情報を特定し、その配送状態管理情報中の配送状態を受信待ちでない状態に変更する。
二次SLB14では、各部は上述したように動作する。このことから本実施例1による一意性保証支援装置は主に、クライアント発メッセージ受信部31、メッセージ識別部32、通信プロトコル毎に用意されたプロトコル/メッセージ別処理部33、クライアント発メッセージ送信部34、通信プロトコル別に用意されたプロトコル/メッセージ別処理部37、一意性保証情報関連一意性保証情報関連通知受付部39、一意性保証DB301や一意性保証情報識別ルール303、メッセージキューイング部41、キュー監視プロセス管理部42、キュー監視プロセス生成部43、及びメッセージ配送状態管理部44により実現される。
なお、本実施例1では、対応する一意性保証情報が登録されていないメッセージの処理は第1或いは第2のキュー監視プロセス45に行わせるようにしているが、その処理は1種類、或いは3種類以上のキュー監視プロセスに行わせるようにしても良い。その処理は、MSG振分部33b、或いは別の構成要素に行わせるようにしても良い。このようなことから二次SLB14を実現させるためのプログラム(一意性保証支援プログラム)は、第1及び第2のキュー監視プロセス45を生成可能なものである他に、第1及び第2のキュー監視プロセス45により実現される機能を搭載したものであっても良い。
図4は、プレゼンスサーバ11の機能構成を説明する図である。図4に示す様にプレゼンスサーバ11は、メッセージを送受信するためのメッセージ送受信部51と、通信プロトコル毎に用意された複数のプロトコル処理部52と、複数の通信プロトコルでサービスを提供可能とするアプリケーションにより実現される複数プロトコル連携部53と、複数プロトコル連携部53によるセッションの生成を監視するセッション情報監視部54と、セッション情報監視部54による監視結果に応じて、上記セッション生成通知等を送信するセッション情報通知部55と、を備えている。
各プレゼンスサーバ11は、一次SLB13、或いは二次SLB14から送信されたメッセージをメッセージ送受信部51により受信し、メッセージの通信プロトコルに対応するプロトコル処理部52に渡す。プロトコル処理部52の後段には複数プロトコル連携部53が位置している。その複数プロトコル連携部53は、複数の通信プロトコルを連携したサービス(ここではプレゼンス・サービス)を提供する。メッセージが渡されたプロトコル処理部52は、そのメッセージを解析して、渡すべき複数プロトコル連携部53にそのメッセージを渡す。
複数プロトコル連携部53は、プロトコル処理部52から渡されたメッセージにより、セッションを生成し、そのセッションに係わるセッションデータ501を生成・保存する。そのセッションデータ501は、セッションを一意に特定するセッション識別子、及びセッションに付随するデータを含むものである。DBサーバ12から取得したプレゼンス情報は、セッションデータ501の一部として管理され、プレゼンス・サービスの提供に用いられる。
複数プロトコルの連携を1プレゼンスサーバ11に行わせる一意性保証が実現されない場合、通信プロトコル別にメッセージが転送される各プレゼンスサーバ11に、DBサーバ12から取得されるデータ(キャッシュ)が重複して保存される。このため、その場合には、各プレゼンスサーバ11はデータ参照時にDBサーバ12の原本が更新されているか否かチェックする必要がある。原本が更新されていれば、各プレゼンスサーバ11はデータを新たにDBサーバ12から取得しなければならない。このようなことから、各プレゼンスサーバ11の負荷はより重くなり易く、資源はより浪費する形となる。
セッション情報監視部54は、複数プロトコル連携部53によるセッション生成を監視し、セッションが生成された際に、セッション関連情報、例えばシーケンス番号、セッション識別子、及びアプリケーション識別子をセッション情報通知部55に渡す。セッション情報通知部55は、それらの情報を格納したセッション生成通知を作成し、一意性保証情報設定管理装置15に送信する。
複数プロトコル連携部53は、予め定められた条件が満たされることにより、生成したセッションを削除する。例えば対応するメッセージをクライアント2が最後に送信してから一定時間が経過することでセッションを削除する。セッション情報監視部54は、セッションが削除された場合、セッション関連情報、例えばセッション識別子、及びアプリケーション識別子をセッション情報通知部55に渡す。セッション情報通知部55は、それらの情報を格納したセッション削除通知を作成し、一意性保証情報設定管理装置15に送信する。
図5は、一意性保証情報設定管理装置15の機能構成を説明する図である。図5に示す様に一意性保証情報設定管理装置15は、セッション情報等通知受付部61、一意性保証情報生成部62、エラー通知メッセージ生成部63、及び一意性保証情報関連通知送信部64を備えている。
一意性保証情報設定管理装置15は、プレゼンスサーバ11から送信された各種通知(メッセージ)をセッション情報等通知受付部61で受信する。受信された通知は、一意性保証情報生成部62及びエラー通知メッセージ生成部63にそれぞれ渡される。一意性保証情報生成部62は、渡された通知がセッション生成通知であった場合、セッション生成通知に格納された一意性保証情報中のアプリケーション識別子に対応する通信プロトコルを示す種別情報を付加する。また、そのアプリケーション識別子から、一意性保証情報を生成すべき通信プロトコルを特定し、特定した通信プロトコル用の一意性保証情報を生成する。生成した一意性保証情報はセッション生成通知に格納する。それにより、図12に示す様なセッション生成通知を生成し、システム構成情報601を参照して、生成したセッション生成通知の送信先を決定する。
システム構成情報601には、プレゼンスサーバ11の前段に位置する各一次SLB13、及び二次SLB14を一意に特定する識別情報、例えばそのアドレスが格納されている。一意性保証情報設定管理装置15は、そのシステム構成情報601を参照することにより、セッション生成通知の送信先として各一次SLB13及び二次SLB14を設定する。
一意性保証情報生成部62は、渡された通知がセッション削除通知であった場合、セッション削除通知に格納された一意性保証情報中のアプリケーション識別子に対応する通信プロトコルを示す種別情報を付加する。また、そのアプリケーション識別子から、一意性保証情報を生成すべき通信プロトコルを特定し、特定した通信プロトコル用の一意性保証情報を生成する。生成した一意性保証情報はセッション削除通知に格納する。それにより、図12に示す様なセッション生成通知からシーケンス番号を削除した構成のセッション削除通知を生成し、システム構成情報601を参照して、生成したセッション削除通知の送信先として各一次SLB13及び二次SLB14を設定する。
エラー通知メッセージ生成部63は、渡された通知がセッションを生成しなかった旨を示すセッション非生成通知であった場合、そのセッション非生成通知の送信先として二次SLB14を設定する。そのセッション非生成通知には、二次SLB14が対応するメッセージを特定できるように、例えばシーケンス番号が格納されている。
一意性保証情報関連通知送信部64は、一意性保証情報生成部62、或いはエラー通知メッセージ生成部63から送信すべき通知を受け取り送信する。その送信により、各一次SLB13及び二次SLB14における一意性保証情報の登録、或いは削除等が行われる。
なお、本実施例1では、プレゼンスサーバ11が送信するセッション生成通知に格納されていない通信プロトコル用の一意性保証情報を一意性保証情報設定管理装置15に生成・追加させているが、その生成・追加を不要とさせても良い。つまり、プレゼンスサーバ11がセッションの生成により図12に示す様なセッション生成通知を作成し、送信すべき送信先に送信するようにしても良い。このことから、一意性保証情報設定管理装置15は各プレゼンスサーバ11に搭載させても良い。複数のプレゼンスサーバ11のうちの一つに搭載させても良い。二次SLB14に搭載させても良い。メッセージを受信したプレゼンスサーバ11上でのセッション生成を認識できる二次SLB14では、追加すべき一意性保証情報の生成、生成した一意性保証情報を含む複数の一意性保証情報の各一次SLB13への送信、及び複数の一意性保証情報の一意性保証DB301への登録等を行えるようにすれば良い。一意性保証情報設定管理装置15を専用の装置として用意しているのは、各プレゼンスサーバ11の負荷、及び必要な資源の増大を回避するためである。
図6及び図7は、クライアント2、プレゼンスサーバ11、各SLB13及び14、並びに一意性保証情報設定管理装置15の動作を示すシーケンス図である。図1に示すネットワークシステムで送受信されるメッセージにより動作を示している。メッセージは、プレゼンス・サービスに係わるものは実線の矢印、一意性保証情報に係わるものは破線の矢印で表している。図6は、クライアント2が初回メッセージを送信してから一意性保証情報が各SLB13及び14に登録されるまでの間のシーケンス例を示している。図7は、一意性保証情報が登録された後のシーケンス例を示している。
プレゼンスサーバシステム1を構成する複数のプレゼンスサーバ11、DBサーバ12、複数の一次SLB13、二次SLB14、及び一意性保証情報設定管理装置15を接続するネットワーク構成は特に限定されるものではない。図6及び図7では便宜的に、プレゼンスサーバシステム1の各構成要素はクライアント2が接続可能な通信ネットワークと接続されていると想定している。その想定から、プレゼンスサーバ11は直接、クライアント2に返信となるメッセージを送信するものとしている。クライアント2から送信されるメッセージについては、通信プロトコルが異なっても同一のセッション識別子を格納していることを前提としている。
図6に示す様に、クライアント2は例えばSIPで初回メッセージを送信する(シーケンスS1a)。送信したメッセージが初回メッセージであるため、各SLB13及び14には対応する一意性保証情報(図6中「転送ルール」と表記)は登録されていない。このため、一次SLB13に受信された初回メッセージは二次SLB14に転送される(シーケンスS2a)。その後、クライアント2がSOAPでメッセージを送信すると(シーケンスS1b)、そのメッセージも一次SLB13から二次SLB14に転送される(シーケンスS2b)。このような一次SLB13から二次SLB14へのメッセージの転送は、一意性保証情報(転送ルール)が登録されるまでの間、クライアント2からメッセージが送信される度に行われる。
初回メッセージが転送された二次SLB14は、自律負荷分散により転送先のプレゼンスサーバ11を決定してその初回メッセージを転送する(シーケンスS3a)。初回メッセージが転送されたプレゼンスサーバ11は、セッションを生成し、セッション生成通知を一意性保証情報設定管理装置15に送信する(シーケンスS4)。一意性保証情報設定管理装置15は、受信したセッション生成通知から各SLB13及び14に送信すべきセッション生成通知を生成し、各SLB13及び14に送信する(シーケンスS5a〜S5c)。
セッションを生成したプレゼンスサーバ11は、初回メッセージを送信したクライアント2にメッセージを送信する(シーケンスS6)。一方、セッション生成通知を受信した二次SLB14は、メッセージキューイング部41に格納したメッセージを一意性保証情報から特定されるプレゼンスサーバ11に転送する(シーケンスS3b)。それにより、二次SLB14は転送されたメッセージの全てを同じプレゼンスサーバ11に転送する。
一意性保証情報の登録後は、図7に示す様に、各一次SLB13はクライアント2から対応するメッセージを受信すると(シーケンスS11a或いはS11b)、その一意性保証情報から特定されるプレゼンスサーバ11にそのメッセージを転送する(シーケンスS12a或いはS12b)。メッセージが転送されたプレゼンスサーバ11は、クライアント2に対しサービス提供のためのメッセージを送信する(シーケンスS13)。
二次SLB14は、プログラム(一意性保証支援プログラム)を実行することにより、上記のようなメッセージの転送を実現させる。次に図15〜図17に示す各フローチャートを参照して、このプログラムの実行により実現される処理について詳細に説明する。
図15は、メッセージ受信処理のフローチャートである。この受信処理は、一次SLB13或いは一意性保証情報設定管理装置15から送信されるメッセージの受信を契機に実行される。ここでは、MSG振分部33b、キュー監視プロセス生成部43及び第1のキュー監視プロセス45に着目して実行する処理を抽出し、その流れを示している。一意性保証情報設定管理装置15から送信されるメッセージとしては、セッション生成通知のみに着目している。始めに図15を参照して、この受信処理について詳細に説明する。
先ず、ステップS41では、メッセージを受信する。続くステップS42では、二次SLB14は受信したメッセージがセッション生成通知か否か判定する。そのメッセージが図12に示す様な構成のセッション生成通知であった場合、判定はYESとなってステップS43に移行する。そうでない場合には、判定はNOとなってステップS47に移行する。
ステップS43では、二次SLB14は受信したセッション生成通知に格納されている一意性保証情報を割り当てた第2のキュー監視プロセス45を生成し、メッセージキューイング部41に格納されているメッセージの監視を開始させる。続くステップS44では、二次SLB14は生成したキュー監視プロセス45を登録する。次のステップS45では、二次SLB14は受信したセッション生成通知に対応する配送状態管理情報の配送状態は通知待ちでない状態に変更する。その次に移行するステップS46では、二次SLB14はセッション生成通知に格納されている一意性保証情報を一意性保証SB301の対応するプロトコル/メッセージ別一意性保証テーブル(図14中「振り分けテーブル」と表記)302に格納する。その後、この受信処理を終了する。
上記ステップS43及びS44の処理を実行することにより、キュー監視プロセス生成部43が実現され、キュー監視プロセス管理部42に図14に示すようにプロセス番号、識別ルール識別子、及びセッション識別子の組み合わせが一つ以上、格納される。上記ステップS45の処理を実行することにより、一意性保証情報関連通知受付部39によるメッセージ配送状態管理部44に格納された内容の更新が実現される。上記ステップS46の処理は、対応するプロトコル/メッセージ別処理部37の一意性保証情報記録部37aによる一意性保証情報の一意性保証DB301への登録を実現させる。
ステップS47では、二次SLB14は受信したメッセージが通常メッセージ、つまり一次SLB13を介して転送されたクライアント2からのメッセージか否か判定する。通常メッセージを受信した場合、判定はYESとなってステップS49に移行する。通常メッセージでない場合、例えばセッション削除通知、或いはセッションが生成されなかった旨を示すセッション非生成通知であった場合、判定はNOとなってステップS48に移行する。そのステップS48で対応する処理を実行した後、この受信処理を終了する。
ステップS49では、二次SLB14は通常メッセージの通信プロトコルのプロトコル/メッセージ別一意性保証テーブル302にヒットするエントリが有るか否か判定する。そのプロトコル/メッセージ別一意性保証テーブル302に通常メッセージ中のセッション識別子を有する一意性保証情報が登録されていた場合、判定はYESとなってステップS50に移行し、二次SLB14はその一意性保証情報に従って通常メッセージを転送した後、この受信処理を終了する。通常メッセージ中のセッション識別子を有する一意性保証情報が対応するプロトコル/メッセージ別一意性保証テーブル302に登録されていない場合には、判定はNOとなってステップS51に移行する。
ステップS51では、二次SLB14は通常メッセージに対応するセッション生成通知を一意性保証情報設定管理装置(図15中「連携制御」と表記)15から受信するのを待っているか否か判定する。通常メッセージの受信前に、同一のセッション識別子を格納した通常メッセージ(初回メッセージ)を自律負荷分散していた場合、その初回メッセージの配送状態管理情報がメッセージ配送状態管理部44を実現させる記憶装置内に格納されている。その配送状態管理情報中の配送状態は、受信待ちとなっている。このことから、通常メッセージに対応する配送状態管理情報が記憶され、且つ配送状態が受信待ちとなっていた場合、判定はYESとなってステップS52に移行し、二次SLB14は通常メッセージをメッセージキューイング部41の最後に格納した後、この受信処理を終了する。そのような配送状態管理情報が記憶されていない、或いは配送状態が受信待ちでない場合、判定はNOとなってステップS53に移行する。
ステップS53では、二次SLB14は第2のキュー監視プロセス45が有るか否か判定する。第2のキュー監視プロセス45が存在していた場合、判定はYESとなってステップS52に移行し、二次SLB14は通常メッセージをメッセージキューイング部41に格納する。第2のキュー監視プロセス45が存在していない場合には、判定はNOとなってステップS54に移行する。
ステップS54への移行は、第2のキュー監視プロセス45が存在していない状況下で初回メッセージを二次SLB14が受信したことを意味する。上記したように本実施例1では、第2のキュー監視プロセス45が存在しない状況となる場合に、消滅する第2のキュー監視プロセス45に第1のキュー監視プロセス45を生成させるようにしている。このことから、ステップS54では、二次SLB14は第1のキュー監視プロセス45が有るか否か判定する。その第1のキュー監視プロセス45が存在しない場合、判定はNOとなってステップS48に移行し、二次SLB14は第1のキュー監視プロセス45が存在しないエラーに対応するための処理を実行する。その実行後、この受信処理を終了する。第1のキュー監視プロセス45が存在する場合には、判定はYESとなってステップS55に移行し、二次SLB14は第1のキュー監視プロセス45にCPU制御権を与えることにより、その監視プロセス45を実行させる。その後、この受信処理を終了する。
図16は、第1のキュー監視プロセス45が実行する処理を示すフローチャートである。ここで図16を参照して、その処理について詳細に説明する。
先ず、ステップS61では、第1のキュー監視プロセス45は自律負荷分散により通常メッセージの転送先を決定して転送する。続くステップS62では、この通常メッセージの配送状態管理情報をメッセージ配送状態管理部44に格納する。このとき、配送状態管理情報中の配送状態は受信(通知)待ちとする。その次に移行するステップS63では、第1のキュー監視プロセス45を自ら消滅させる。それにより、一連の処理を終了させる。
図15において、ステップS42、S49、S50、S52、S53及びS54の判定処理は、各プロトコル/メッセージ別処理部33のMSG振分部33bを実現させる処理に相当する。このMSG振分部33bにより、メッセージキューイング部41には第2のキュー監視プロセス45により転送すべきメッセージのみ格納される。
図17は、第2のキュー監視プロセス45が実行する処理を示すフローチャートである。次に図17を参照して、その処理について詳細に説明する。第2のキュー監視プロセス45に割り当てられた一意性保証情報は図17中「転送ルール」と表記している。
先ず、ステップS71では、第2のキュー監視プロセス45はメッセージキューイング部41の参照位置として先頭をセットする。次のステップS72では、参照位置に格納されたメッセージが転送ルールにマッチするか否か判定する。メッセージに転送ルールと同じセッション識別子が格納されていた場合、判定はYESとなってステップS73に移行する。同じセッション識別子が格納されていない場合には、判定はNOとなってステップS80に移行する。
ステップS73では、参照位置のメッセージを転送ルールに従って転送する。続くステップS74では、次のメッセージが有るか否か判定する。参照位置以降にメッセージが存在する場合、判定はYESとなってステップS75に移行し、参照位置を次のメッセージの位置にセットしてから、上記ステップS72に戻る。メッセージキューイング部41の全てのメッセージを参照した場合には、判定はNOとなってステップS76に移行する。
ステップS76では、第2のキュー監視プロセス45は一意性保証情報設定管理装置(連携制御)15からの通知待ちか否か判定する。メッセージ配送状態管理部44に、配送状態が受信待ちの配送状態管理情報が格納されている場合、判定はYESとなってステップS77に移行し、自ら消滅させる。それにより、一連の処理を終了させる。一方、配送状態が受信待ちの配送状態管理情報が格納されていない場合には、判定はNOとなってステップS78に移行する。
ステップS78では、他の第2のキュー監視プロセス45が有るか否か判定する。他の第2のキュー監視プロセス45が存在する場合、判定はYESとなってステップS77に移行する。それにより、自らを消滅させる。他の第2のキュー監視プロセス45が存在しない場合には、判定はNOとなってステップS79に移行し、第1のキュー監視プロセス45を生成させる。その後、ステップS77に移行する。
上記ステップS72の判定がNOとなって移行するステップS80では、一意性保証情報設定管理装置(連携制御)15からの通知待ちか否か判定する。メッセージ配送状態管理部44に、配送状態が受信待ちの配送状態管理情報が格納されている場合、判定はYESとなってステップS75に移行する。そのような配送状態管理情報が格納されていない場合、判定はNOとなってステップS81に移行する。
ステップS81では、他の第2のキュー監視プロセス45が有るか否か判定する。他の第2のキュー監視プロセス45が存在する場合、判定はYESとなってステップS75に移行する。他の第2のキュー監視プロセス45が存在しない場合には、判定はNOとなってステップS82に移行する。
ステップS82では、参照位置のメッセージを自律負荷分散により転送する。続くステップS83では、このメッセージの配送状態管理情報をメッセージ配送状態管理部44に格納する。このとき、配送状態管理情報中の配送状態は受信(通知)待ちとする。その後、ステップS75に移行する。
このようにして本実施例1では、第2のキュー監視プロセス45にも自律負荷分散を行わせるようにしている。このため、図15において、第2のキュー監視プロセス45が存在している状況下では自律負荷分散を行っていない通常メッセージ、つまりステップS53の判定がYESとなる通常メッセージをメッセージキューイング部41に格納している。それにより、第1のキュー監視プロセス45による自律負荷分散は、第2のキュー監視プロセス45により対応できないメッセージのみを対象にして行うようにしている。そのようにしている理由は、第2のキュー監視プロセス45は、自律負荷分散を行った結果、生成させるようにしているからである。つまり、第2のキュー監視プロセス45を生成させる契機を作る存在を必要としているからである。このことから、キュー監視プロセス生成部43は、二次SLB14の起動時等の予め定めたタイミングでのみ第1のキュー監視プロセス45を生成する。
図18は、本実施例1を適用可能なコンピュータのハードウェア構成の一例を示す図である。ここで図18を参照して、二次SLB14として使用可能なコンピュータ、言い換えれば上記一意性保証支援プログラムを実行させることで二次SLB14を実現可能なコンピュータの構成について具体的に説明する。
図18に示すコンピュータは、CPU71、メモリ72、入力装置73、出力装置74、外部記憶装置75、媒体駆動装置76、及びネットワーク接続装置77を有し、これらがバス78によって互いに接続された構成となっている。同図に示す構成は一例であり、これに限定されるものではない。
CPU71は、当該コンピュータ全体の制御を行う。
メモリ72は、プログラム実行、データ更新等の際に、外部記憶装置75(あるいは可搬型の記録媒体M)に記憶されているプログラムあるいはデータを一時的に格納するRAM等のメモリである。CPU71は、プログラムをメモリ72に読み出して実行することにより、全体の制御を行う。
入力装置73は、例えば、キーボード、マウス等の操作装置と接続されたインターフェースである。操作装置に対するユーザの操作を検出し、その検出結果をCPU71に通知する。
出力装置74は、例えば表示装置と接続された表示制御装置である。ネットワーク接続装置77は、例えば複数のプレゼンスサーバ11及び一次SLB13と通信ネットワークを介して通信を行うためのものである。外部記憶装置75は、例えばハードディスク装置である。主に各種データやプログラムの保存に用いられる。
媒体駆動装置76は、光ディスクや光磁気ディスク等の可搬型の記録媒体MDにアクセスするものである。
一意性保証支援プログラムは、外部記憶装置75、若しくは記録媒体Mに記録されているか、或いは通信ネットワークを介してネットワーク接続77により取得される。その管理プログラムをメモリ72に読み出してCPU71が実行することにより、二次SLB14が実現される。
図3に示す構成において、例えばクライアント発メッセージ受信部31、クライアント発メッセージ送信部34、サーバ発メッセージ受信部35、サーバ発メッセージ送信部38、及び一意性保証情報関連通知受付部39は、ネットワーク接続装置77、CPU71、メモリ72、外部記憶装置75及びバス78により実現される。メッセージキューイング部41、プロセス管理部42、及びメッセージ配送状態管理部44は例えばメモリ72である。例えば一意性保証DB301及び一意性保証情報識別ルール303は、外部補助記憶装置75、或いは記録媒体Mに格納され、必要に応じて全て、或いは一部がメモリ72に読み出される。例えばメッセージ識別部32及び36、各プロトコル/メッセージ別処理部33及び37、並びにキュー監視プロセス生成部43は、CPU71、メモリ72、外部記憶装置75及びバス78により実現される。
なお、本実施例1では、二次SLB14は一次SLB13とは別に用意しているが、これは一次SLB13を通信プロトコル別に設置しているからである。2つの一次SLB13の代わりに一つの二次SLB14を用いることもできる。このことから、本実施例1による一意性保証支援装置は、一次SLB13に搭載させても良い。
上述のように実施例1について説明したが、実施例1によれば一意性保証情報が一意性保証テーブルに登録されていない全メッセージが二次SLB14経由でサーバに転送されることになる。これにより、本来は二次SLB14を経由せずに一次SLB13で振分できるメッセージが二次SLB14を経由で処理されるため、二次SLB14の処理負荷が高くなってしまうという問題もある。
そこで本実施例2では、二次SLB14を経由せずに処理可能なメッセージについては一次SLB13で処理するシステムについて述べる。
実施例2の構成のほとんどは実施例1の構成と同一であるため、同一機能については同じ符号を用いてその説明を省略する。
実施例2において、一次SLB13は、自身で振分できるメッセージであるか、または二次SLB14にメッセージの振分先サーバを決めさせるかどうかの判断を次のように行う。
まず、基本的には実施例1のように二次SLB14にて振分先サーバを決定させる。一次SLB13で決定しない理由は、ある通信プロトコル用の一次SLB13に初回メッセージが届いてから各通信プロトコル用の一次SLB13に一意性保証情報が登録されるまでの間に、同じセッションの次のメッセージ(以降、「後続メッセージ」という)が別の一次SLB13に届いてしまうと、その一次SLB13はメッセージを初回の振分先サーバとは別のサーバに振り分けてしまい、一意性が保証できなくなってしまうからである。
しかし次の場合には一次SLB13にて振分先サーバを決定可能である。初回メッセージを受信したサーバが、セッションを生成するとともにセッション識別子を発行する場合、クライアントは初回メッセージに対する応答をサーバから受信し、その応答メッセージによりセッション識別子を知った後でないと後続メッセージを出しようがない。よって、クライアントが初回メッセージを送信してから一意性保証情報が各通信プロトコル用の一次SLB13に登録されるまでの間に、クライアントから後続メッセージが届くことはない。そのため、一次SLB13は、メッセージ中にセッション識別子がない場合、二次SLB14を使わず、一次SLB13にて振分先サーバを決定可能と判断できる。一次SLB13における判断に基づき、一次SLB13では自身で振分先サーバを決定可能な場合には自身で振分先サーバを決定し、二次SLB14には転送しない。これにより二次SLB14の処理負荷を低減することが可能である。
上述したような処理を一次SLB13で行うため、一次SLB13のプロトコル/メッセージ処理部23(図2)は図19に示すフローチャートのように動作する。
尚、ここでは一意性保証情報とは、実施例1と同様に、クライアントからのメッセージを転送すべきサーバに転送するための転送ルールのことで、例えばセッション識別子とそれに対応するメッセージ転送先との対を含んで構成されるものであるとする。そして、一意性保証情報は、一意性保証テーブルに登録されて管理される。
図19において、まずS191で、一意性保証情報識別ルール203を参照し、セッション識別子の位置に関する情報を取得する。そしてS192で、所得した位置の情報に基づき、メッセージ中のセッション識別子を抽出する。
次に、S193で、メッセージ中にセッション識別子があるか否かの判断を行う。セッション識別子がある場合(Y)S194に進み、セッション識別子がない場合(N)S195に進む。
S195では、メッセージの転送先サーバを例えばラウンドロビンなどの自律負荷分散アルゴリズムに従い決定し、S198に進む。S198では、セッション識別子と転送先サーバの対応(一意性保証情報)を一意性保証テーブル202に格納する。
S193の後、S194では、振分先アプリケーションの仮想IPとセッション識別子をキーとして、一意性保証テーブル202を検索する。検索にHitした場合(Y)、S197に進む。検索にHitしなかった場合(N)、S196に進む。
S197では、メッセージの転送先を、一意性保証テーブル202に登録されていると検索されたセッション識別子に対応するサーバに決定する。S196では、メッセージの転送先を二次SLB14に決定する。
尚、図19のフロー図の各ステップにおいて、S191、S192、S193は、一意性保証情報識別部23aが行う処理であり、S194、S195、S196、S197はMSG振分部23bが行う処理であり、S198は一意性保証情報記録部23cが行う処理である。
以下、具体的に、本実施例2を用いたサービス提供システムを用いて、システム動作等についてより詳しく説明する。
図20に、異なる複数の通信プロトコルでサービスを提供するサービス提供システムの構成例を示す。このシステムはオンライン会議システムとプレゼンスサーバシステムの二つのサービスとを含むもので、本実施例2により構成されている。
図20に示したサービス提供システムは、プレゼンスサーバシステム2000と、オンライン会議サーバシステム2001と、一次SLB2003、二次SLB2004とクライアント2002、一意性保証情報設定管理装置2005がネットワークで接続された構成である。
図20中の2種類のサーバシステムである、プレゼンスサーバシステム2000およびオンライン会議サーバシステム2001の位置づけは次の通りである。
プレゼンスサーバシステム2000は、実施例1と同様にクライアント2002のユーザに、知りたい相手の状態を示すプレゼンス情報を提供するサービスを行う。相手の状態とは、例えば在席か否か、電話中か否か、多忙か否か、といったものである。
プレゼンスサーバ2006に搭載されたサービス提供用のアプリケーション(以降「アプリ#1」と言う)は、通信プロトコルとしてSIPおよびSOAPをサポートするものとする。
プレゼンスサーバシステムのアプリケーション、すなわちアプリ#1を使用しようとするクライアント2002は、相手先をSIP−URIで指定する。そして、このSIP−URIは、相手先ユーザからの口頭通知などの任意の方法により、クライアント2002のユーザが事前に取得可能である。このため、クライアント2002は、ある通信プロトコル(たとえばSIP)で送信したメッセージの応答を待たずに、相手先SIP−URIを指定した次のメッセージをSIPまたはSOAPで送信することができる。
図21に、アプリ#1を使用する際のメッセージ形式を示す。セッション識別子は、メッセージを送信したクライアントが相手先とするクライアントのSIP−URIであり、図21(a)のSIPメッセージではヘッダ中の「To」フィールドに格納され、図21(b)のSOAPメッセージではボディ中の「presentity」パラメータとして格納される。初回メッセージを受信したサーバは、セッションを生成後、一意性保証情報設定管理装置2005経由で、各一次SLB2003a、2003bの備える一意性保証テーブルに一意性保証情報の登録を行う。
また、オンライン会議サーバシステム2001は、クライアント2002のユーザにオンライン会議サービスを提供する。
オンライン会議サーバ2009に搭載されたサービス提供用のアプリケーション(以降「アプリ#2」と言う)は、通信プロトコルとしてSIP及びSOAPをサポートするものする。
アプリ#1とは異なり、クライアント2002はある通信プロトコル(ここではSOAP)で会議セッション生成要求メッセージを送信し、その応答を受信して会議セッションを特定するためのセッション識別子(session-id)を受け取らないと、後続メッセージを送信することができない。具体的には、たとえば次のように動作する。まず、オンライン会議室を生成したクライアント2002は、オンライン会議サーバ2009に対して会議室名をパラメータとする会議セッション生成要求をSOAPで送信する。このとき、今から会議セッションを生成するため、メッセージ中のセッション識別子はnullである。次に、オンライン会議サーバ2009は、会議セッション生成要求メッセージ受信をトリガとして、会議セッション(実体はサーバ内の呼制御インスタンス)を生成し、セッション識別子を発行する。オンライン会議サーバ2009はさらに、一意性保証情報設定管理装置2005経由で、各一次SLB2003a、2003bに一意性保証情報の登録を行った後、クライアント2002に対して、このセッション識別子を格納したメッセージで応答する。その後、オンライン会議サーバ2009は、会議室名とセッション識別子の組を、会議セッション公開Webサーバ(以降、「Webサーバ」という)2008に通知し、Webサーバ2008はセッション識別子を発行した会議室名をWeb公開する。会議室に参加したいクライアント2002は、SOAPの応答メッセージからセッション識別子を入手するか、Webサーバ2008が公開する情報を参照して目的の会議室名に対応するセッション識別子を入手する。その後、入手したセッション識別子をSIPのメッセージ中に格納し(図22に後述)、会議室参加要求メッセージとしてオンライン会議サーバ2009に送信する。
図22に、アプリ#2を使用する際のメッセージ形式を示す。セッション識別子は会議セッションのsession-idであり、図22(a)のSIPメッセージではヘッダ中の「Join」フィールドに格納され、図22(b)のSOAPメッセージではボディ中の「session-id」パラメータとして格納される。
なお、上記2種類のサーバシステム(2006、2009)は、振分対象の各アプリケーションを複数のサーバに配備することで構成されている。また、一次SLB2003a、2003bは、複数サーバ上に配備されたアプリ#1、アプリ#2をクライアント2002に対し仮想化してみせるものとする。すなわち、たとえば、アプリ#1について、プロトコル別に仮想IP#1_sipと仮想IP#1_soapを割り当てる。アプリ#1にアクセスしたいクライアント2002は、これら仮想IP宛てにメッセージを送信する。またアプリ#2についても同様に仮想IP#2_sipと仮想IP#2_soapを割り当てる。アプリ#2にアクセスしたいクライアントは、これら仮想IP宛てにメッセージを送信する。一次SLB2003a、2003bはメッセージの宛先IPにより、宛先のアプリケーションがアプリ#1かアプリ#2のいずれであるかを判断する。
以下、図20に示したシステムの動作について説明するが、次のA)〜C)の3つに分けて順に説明することにする。
A)運用前の静的設定
B)運用中の振分動作(クライアントがアプリ#1宛に接続するとき)
C)運用中の振分動作(クライアントがアプリ#2宛に接続するとき)
A)運用前の静的設定
まず、一次SLB2003において、サーバシステム毎の仮想IPを設定する。図20に示したシステムでは、SIP−SLB2003aにおいて、アプリ#1の仮想IPを仮想IP#1_sip, アプリ#2の仮想IPを仮想IP#2_sipと設定し、SOAP−SLB2003bにおいて、アプリ#1の仮想IPを仮想IP#1_soap、アプリ#2の仮想IPを仮想IP#2_soapと設定することにする。
次に、一意性保証情報識別ルール203を設定する。図20に示したシステムにおける一意性保証情報識別ルール203の一例を図23に示す。プロトコルの種類、メッセージ分類(仮想IP)、セッション識別子の位置の情報がテーブルに登録されて管理される。この一意性保証情報識別ルール203により、振分先アプリケーションの仮想IPと、メッセージ中のセッション識別子の位置の関係を設定する。
更に、MSG振分部23b内部の自律負荷分散アルゴリズムが持つ振分先候補サーバIPを設定する。この設定の一例を、図24に示す。振分先アプリケーションの仮想IPと、振分先候補のサーバ毎IPアドレス・リストを設定する。
B)運用中の振り分け動作(アプリ#1宛時)
allice@ps.comをセッション識別子(session-id)とする一意性保証情報が一意性保証テーブル202に未登録の状態において、クライアント2002がallice@ps.comをセッション識別子(session-id)として格納したSIPおよびSOAPのメッセージを、それぞれ仮想IP#1_sip, 仮想IP#1_soap宛に、ほぼ同時に送信したとする。
クライアント2002から、セッション識別子を含んだメッセージを受信した一次SLB2003、すなわちSIP−SLB2003a、SOAP−SLB2003bのプロトコル/メッセージ別処理部23は、図19に示したフローに従い、次のように処理を行う。
一意性保証情報識別部23aは、一意性保証情報識別ルール203(図23)を参照し、上記仮想IP宛てメッセージに関するセッション識別子の位置を特定して、メッセージ中のセッション識別子を抽出する。図23に、仮想IP#1_sip宛てのメッセージでは、セッション識別子はToフィールドに存在し、仮想IP#1_soap宛てのメッセージでは、セッション識別子はpresentityフィールドに存在することが定義されている。このセッション識別子が存在する位置情報より、セッション識別子を抽出する。(ここまでで、図19のS191、S192)。
次に、図19のS193に示したように、セッション識別子が存在するか否かが判断される。この場合、セッション識別子allice@ps.comが格納されているため、S194の処理に進む。
S194では、MSB振分部23bが、仮想IPと抽出したセッション識別子をキーとして、一意性保証テーブル202を検索する。図25(a)に、この場合の一意性保証テーブル202の一例を示す。一意性保証テーブル202は、宛先アプリケーションの仮想IP及びセッション識別子、サーバのIPアドレスを含む一意性保証情報を管理するものである。図25(a)に示した一意性保証テーブル202には、セッション識別子allice@ps.comを含むデータがないため、未Hitとなり、図19のS194からS196に進み、メッセージの転送先を二次SLB2004に決定する。
以上のように一次SLB2003が動作するが、その後、二次SLB2004では、一次SLB2003から転送されたメッセージの振り分けを行う。二次SLB2004からメッセージを受信したプレゼンスサーバ2006は、セッション生成後、一意性保証情報設定管理装置2005経由で各一次SLB2003の一意性保証テーブル202に一意性保証情報の登録を行う。
以上の動作により、クライアント2002が異なる通信プロトコルのメッセージをほぼ同時に送信する場合であっても、二次SLB2004を用いて一意性を保証することが可能である。
C)運用中の振り分け動作(アプリ#2宛時)
クライアント2002はセッション識別子をnullとした初回メッセージを仮想IP#2_soap宛てにSOAPで送信したものとする。クライアント2002は、セッション識別子を含む応答を受け取らないと、後続メッセージを送信することができない。
クライアント2002から、セッション識別子を含まないメッセージを受信した一次SLB2003、すなわち、SOAP−SLB2003bのプロトコル/メッセージ別処理部23は、図19に示したフローに従い、次のように処理を行う。
まず、一意性保証情報識別部23aは、一意性保証情報識別ルール203(図23)を参照し、仮想IP#2_soap宛メッセージに関するセッション識別子の位置を特定して、メッセージ中のセッション識別子を抽出する。この場合、セッション識別子は格納されていないため、図19のS191,S192,S193を経て、S195に進む。
次に、MSG振分部23bが何らかの自律負荷分散アルゴリズムに従い、転送先サーバを決定する(図19のS195)。例えば、図24に示したテーブルの仮想IP#2_soapをキーとして参照し、振分先候補サーバIPを得た後に、ラウンドロビンアルゴリズムにより転送先サーバを1つ決定する。
その後、一意性保証情報記録部23cは、セッション識別子と転送先サーバの対応を、各一次SLB2003内の一意性保証DB201の一意性保証テーブル202に格納する(図19のS198)。
以上の処理を行った後に、一次SLB(SOAP−SLB2003b)は、振分先として決定したオンライン会議サーバ2009宛に、メッセージを転送する。
一次SLB(SOAP−SLB2003b)からメッセージを受信したオンライン会議サーバ2009は、セッションを生成し、一意性保証情報設定管理装置2005経由で各一次SLB2003の一意性保証テーブル202に、宛先アプリケーションの仮想IPと、生成したセッションのセッション識別子(0123@kaigi.comとする)と、サーバのIPアドレスと、を含む一意性保証情報の登録を行う。一意性保証情報の登録を行った場合の一意性保証テーブル202の一例を図25(b)に示す。(尚、図25(b)についてであるが、プロトコルやメッセージ種別によりテーブルを分けて構成してもよい。ここでは便宜上1つのテーブルにまとめて記載した。)そしてその後、セッション識別子として、0123@kaigi.comを含めた応答をクライアント2002に返し、更にWebサーバに会議室名とセッション識別子(session-id=0123@kaigi.com)の対を登録する。
この後、クライアント2002は、仮想IP#2_sip宛てにセッション識別子(session-id)0123@kaigi.comとしたSIPのINVITEメッセージを送信し、会議セッションに参加する。このとき、一次SLB2003、すなわち、SIP−SLB2003aのプロトコル/メッセージ別処理部23は、図19に示したフローに従い、次のように処理を行う。
まず、一意性保証情報識別部23aは、一意性保証情報識別ルール203(図23)を参照し、仮想IP#2_sip宛てメッセージに関するセッション識別子の位置を特定して、メッセージ中のセッション識別子を抽出する。この場合、セッション識別子0123@kaigi.comが抽出されるため、図19のS191,S192,S193を経て、S194に進む。
次に、MSG振分部23bが仮想IP#2_sipとセッション識別子0123@kaigi.comをキーとして一意性保証テーブル202を検索する(図19のS194)。今、一意性保証テーブル202は図25(b)に示したようになっているから、IPアドレスが、「IPアドレス#4」のサーバがHitし、該サーバをメッセージ転送先サーバに決定する(図19のS197)。
そして一次SLB(SIP−SLB2003a)は、メッセージを決定したオンライン会議サーバ2009に転送する。
以上のように、プロトコル毎の一次SLBにて振分先サーバを決定できるメッセージについて、二次SLBを用いずに一意性保証をすることが可能となる。その為、一意性保証テーブルにセッション識別子が未登録の全てのメッセージを二次SLBに転送する場合に比べて、二次SLBを対象とする通信路のトラフィック量を軽減可能となり、また二次SLBの処理負荷も軽減することが可能となる。
以上、本発明の実施例2について詳細に説明したが、本発明は上記実施例に記載したことに限定されないことは言うまでもない。上記実施例では、複数のプロトコルを用いて提供するサービスとして、オンライン会議システムおよびプレゼンスサーバシステムを含むシステム構成について説明をしたが、他のプロトコルでサービスを提供するシステムであっても構わない。このように、本発明の趣旨を逸脱しない範囲において様々な変更が可能である。
また、以上、実施例2について詳細に説明をしたが、本実施例2を適用可能なコンピュータのハードウェア構成は、実施例1で説明した図18と同様である。よって、詳細な説明は省略する。特に追加するとすれば、メモリ72および外部記憶装置75等に格納された、図19に示したフローのように動作するプログラムは、CPU71によって実行され、これにより実施例2が実現される、ということである。
以上の変形例を含む実施形態に関し、更に以下の付記を開示する。
(付記1)
複数の通信プロトコルに対応した複数のサーバのなかから、端末装置から受信したメッセージを転送すべきサーバを選択する負荷分散装置による一意性保証を実現させる支援を行う一意性保証支援装置として用いられるコンピュータに、
前記負荷分散装置が前記端末装置から受信したメッセージのなかで、前記複数のサーバのなかで転送すべきサーバが未定のメッセージを取得するメッセージ取得機能と、
記憶装置に格納されている、前記メッセージが転送されたサーバで生成されるセッションの識別情報、及び該サーバに転送すべきメッセージの対応関係を示す一意性保証情報を参照して、前記メッセージ取得機能により取得したメッセージのなかで該一意性保証情報により前記転送すべきサーバが特定されるメッセージを該転送すべきサーバに転送するメッセージ転送機能と、
前記メッセージ取得機能により取得したメッセージのなかで前記メッセージ転送機能によって転送されないメッセージを転送すべきサーバを前記複数のサーバのなかから選択して、選択された転送すべきサーバに転送する自律負荷分散機能と、
前記自律負荷分散機能によりメッセージが転送されたサーバにおいて、前記セッションの生成により得られる、前記複数の通信プロトコルそれぞれの一意性保証情報を前記記憶装置に格納する情報管理機能と、
を実現させるための一意性保証支援プログラム。
(付記2)
通信ネットワークを介してサービスを提供可能なサービス提供システムにおいて、
前記サービス提供システムは、複数の通信プロトコルを連携させた前記サービスを提供可能な複数のサーバ、前記サービスを利用するユーザが使用する端末装置から受信したメッセージを前記複数のサーバのうちの一つに転送する負荷分散装置、及び前記負荷分散装置による複数の通信プロトコルに対応した一意性保証の実現を支援する一意性保証支援装置、を備え、
前記負荷分散装置は、
第1の記憶装置に格納されている、前記メッセージが転送されたサーバで生成されるセッションの識別情報、及び該サーバに転送すべきメッセージの対応関係を示す一意性保証情報を参照して、前記端末装置から受信したメッセージのなかで該一意性保証情報により転送すべきサーバが特定されるメッセージを該転送すべきサーバに転送する第1の転送手段と、
前記第1の転送手段が転送しないメッセージを前記一意性保証支援装置に転送する第2の転送手段と、
前記メッセージが転送されたサーバでの前記セッションの生成により得られる、前記複数の通信プロトコルそれぞれの一意性保証情報を前記第1の記憶装置に格納する第1の情報管理手段と、を具備し、
前記一意性保証支援装置は、
前記負荷分散装置から転送されたメッセージを受信する受信手段と、
第2の記憶装置に格納されている、前記メッセージが転送されたサーバにおいて、生成されるセッションの識別情報、及び該サーバに転送すべきメッセージの対応関係を示す一意性保証情報を参照して、前記受信手段が受信したメッセージのなかで該一意性保証情報により前記転送すべきサーバが特定されるメッセージを該転送すべきサーバに転送するメッセージ転送手段と、
前記受信手段が受信したメッセージのなかで前記メッセージ転送手段によって転送されないメッセージを転送すべきサーバを前記複数のサーバのなかから選択して、選択された転送すべきサーバに転送する自律負荷分散手段と、
前記自律負荷分散手段がメッセージを転送したサーバにおいて、前記セッションの生成により得られる、前記複数の通信プロトコルそれぞれの一意性保証情報を前記第2の記憶装置に格納する情報管理手段と、を具備し、
前記端末装置から送信されたメッセージのなかで対応する一意性保証情報が前記負荷分散装置に格納されていない対象メッセージは、前記一意性保証支援装置に転送して、前記複数のサーバのなかから転送すべきサーバを選択させ、該転送すべきサーバに全て転送させる、
ことを特徴とするサービス提供システム。
(付記3)
前記サービス提供システムは、前記一意性保証支援装置がメッセージを転送したサーバにおいて、前記セッションの生成により得られる一意性保証情報を取得し、該一意性保証情報を前記負荷分散装置、及び前記一意性保証支援装置に送信する一意性保証情報設定管理装置、を更に備え、
前記一意性保証情報設定管理装置は、前記メッセージの転送により前記セッションを生成したサーバから該メッセージの通信プロトコル分の一意性保証情報を受信し、該通信プロトコルとは異なる他の通信プロトコル分の一意性保証情報を生成することにより、複数の通信プロトコル分の一意性保証情報を前記負荷分散装置、及び前記一意性保証支援装置に通知する、
ことを特徴とする付記2記載のサービス提供システム。
(付記4)
前記一意性保証支援装置からメッセージが転送されたサーバは、該メッセージに格納されているメッセージ間の識別が可能な識別情報を用いて、該メッセージの通信プロトコル分の一意性保証情報を生成し、
前記一意性保証情報設定管理装置は、前記サーバが生成した一意性保証情報中の識別情報を用いて、前記他の通信プロトコル分の一意性保証情報を生成する、
ことを特徴とする付記3記載のサービス提供システム。
(付記5)
複数の通信プロトコルでそれぞれサービスを提供可能な複数のサーバのなかの一つに端末装置から送信されたメッセージを負荷分散装置により転送させる場合に、複数の通信プロトコル間の連携に対応した一意性保証を実現させる方法であって、
前記複数のサーバのなかで転送すべきサーバが未定の第1のメッセージを前記端末装置から前記負荷分散装置が受信した場合に、該第1のメッセージを転送すべきサーバを選択して転送する第1の転送工程と、
前記第1の転送工程により前記第1のメッセージを転送した後、該第1のメッセージと同じサーバに転送すべき第2のメッセージを前記負荷分散装置が前記端末装置から受信した場合に、該第2のメッセージを保存する保存工程と、
前記第1の転送工程により前記第1のメッセージが転送されたサーバがセッションを生成した場合に、該セッションと該セッションに対応するメッセージの対応関係を示す一意性保証情報を該セッションが対応する複数の通信プロトコル分、生成する生成工程と、
前記保存工程で保存した前記第2のメッセージが存在する場合に、前記生成工程により生成された各一意性保証情報に従って該第2のメッセージを転送する第2の転送工程と、
を含むことを特徴とする一意性保証実現方法。
(付記6)
前記端末装置は、前記複数の通信プロトコル間の連携を必要とするメッセージに同一の識別情報を格納して送信し、
前記保存工程は、前記第1のメッセージと同一の識別情報を格納したメッセージを前記第2のメッセージと認識する、
ことを特徴とする付記5記載の一意性保証実現方法。
(付記7)
複数の通信プロトコルでサービスを提供するサーバ群の中から、端末装置から受信したメッセージを転送すべきサーバを決定する負荷分散装置を構成するコンピュータによって実行されるプログラムであって、
前記受信したメッセージ中にセッション識別子が有るか否かを判断するステップと、
前記メッセージ中にセッション識別子が無いと判断された場合には、メッセージ転送先サーバを自律分散アルゴリズムにより決定するステップと、
前記メッセージ中にセッション識別子が有ると判断された場合には、該メッセージに対応する一意性保証情報が一意性保証テーブルに登録されているか否かを判断し、登録されている場合には対応する一意性保証情報に基づいてメッセージ転送先サーバを決定し、登録されていない場合には第二の負荷分散装置にメッセージを転送することを決定するステップと、
を含むことを特徴とするプログラム。
(付記8)
前記第二の負荷分散装置は、前記負荷分散装置から転送されたメッセージの転送先サーバを決定し転送し、その後、該転送したメッセージと同じサーバに転送すべきメッセージを受信した場合には、前記一意性保証テーブルに対応する一意性保証情報が登録されるまで該メッセージをキューイングする機能を備えることを特徴とする付記7記載のプログラム。
(付記9)
複数の通信プロトコルでサービスを提供するサーバ群の中から、端末装置から受信したメッセージを転送すべきサーバを決定する負荷分散装置であって、
前記受信したメッセージ中にセッション識別子が有るか否かを判断する一意性保証情報識別部と、
前記一意性保証情報識別部にて前記受信したメッセージ中にセッション識別子が無いと判断された場合には、メッセージ転送先サーバを自律分散アルゴリズムにより決定し、該一意性保証情報識別部にて前記受信したメッセージ中にセッション識別子が有ると判断された場合には、セッション識別子と前記サーバ群のいずれのサーバにメッセージを転送すべきかの対応関係を規定した一意性保証テーブルを参照し、該一意性保証テーブルに該メッセージ中のセッション識別子が有る場合には該一意性保証テーブルに基づいてメッセージ転送先サーバを決定し、該一意性保証テーブルに該メッセージ中のセッション識別子が無い場合には、第二の負荷分散装置にメッセージを転送することを決定するMSG振分部と、
を含むことを特徴とする負荷分散装置。
(付記10)
更に、前記MSG振分部でメッセージ転送先サーバを自律分散アルゴリズムにより決定した場合に、転送先サーバが発行するセッション識別子と該転送先サーバとの対応を前記一意性保証テーブルに登録する一意性保証情報記録部を備えることを特徴とする付記9記載の負荷分散装置。
(付記11)
複数の通信プロトコルでサービスを提供するサーバ群の中から、端末装置から受信したメッセージを転送すべきサーバを決定する負荷分散装置におけるメッセージ転送先決定方法であって、
前記受信したメッセージ中にセッション識別子が有るか否かを判断し、
前記メッセージ中にセッション識別子が無いと判断された場合には、メッセージ転送先サーバを自律分散アルゴリズムにより決定し、
前記メッセージ中にセッション識別子が有ると判断された場合には、該メッセージに対応する一意性保証情報が一意性保証テーブルに登録されているか否かを判断し、登録されている場合には対応する一意性保証情報に基づいてメッセージ転送先サーバを決定し、登録されていない場合には第二の負荷分散装置にメッセージを転送することを決定する、
ことを特徴とするメッセージ転送先決定方法。
(付記12)
複数の通信プロトコルでサービスを提供するサーバ群と、該サーバ群が提供するサービスを利用するユーザが使用する端末装置と、該端末装置から受信したメッセージの転送先を決定する負荷分散装置と、該負荷分散装置から転送されるメッセージを転送処理する機能を備える第二の負荷分散装置を含むサービス提供システムにおいて、
前記負荷分散装置は、
前記受信したメッセージ中にセッション識別子が有るか否かを判断する一意性保証情報識別部と、
前記一意性保証情報識別部にて前記受信したメッセージ中にセッション識別子が無いと判断された場合には、メッセージ転送先サーバを自律分散アルゴリズムにより決定し、該一意性保証情報識別部にて前記受信したメッセージ中にセッション識別子が有ると判断された場合には、セッション識別子と前記サーバ群のいずれのサーバにメッセージを転送すべきかの対応関係を規定した一意性保証テーブルを参照し、該一意性保証テーブルに該メッセージ中のセッション識別子が有る場合には該一意性保証テーブルに基づいてメッセージ転送先サーバを決定し、該一意性保証テーブルに該メッセージ中のセッション識別子が無い場合には、第二の負荷分散装置にメッセージを転送することを決定するMSG振分部と、
を含むことを特徴とするサービス提供システム。
1 プレゼンスサーバシステム
2 クライアント(端末装置)
11 プレゼンスサーバ
12 DBサーバ
13 一次SLB
14 二次SLB
15 一意性保証情報設定管理装置
31 クライアント発メッセージ受信部
32、36 メッセージ識別部
33、37 プロトコル/メッセージ別処理部
34 クライアント発メッセージ送信部
35 サーバ発メッセージ受信部
38 サーバ発メッセージ送信部
39 一意性保証情報関連通知受付部
41 メッセージキューイング部
42 キュー監視プロセス管理部
43 キュー監視プロセス生成部
44 メッセージ配送状態管理部
301 一意性保証DB
302 プロトコル/メッセージ別一意性保証テーブル
303 一意性保証情報識別ルール

Claims (9)

  1. 複数の通信プロトコルに対応した複数のサーバのなかから、端末装置から受信したメッセージを転送すべきサーバを選択する負荷分散装置による一意性保証を実現させる支援を行う一意性保証支援装置として用いられるコンピュータに、
    前記負荷分散装置が前記端末装置から受信したメッセージのなかで、前記複数のサーバのなかで転送すべきサーバが未定のメッセージを取得するメッセージ取得機能と、
    前記一意性保証支援装置が備える記憶装置に格納されている、前記メッセージが転送されたサーバで生成されるセッションの識別情報、及び該サーバに転送すべきメッセージの対応関係を示す一意性保証情報を参照して、前記メッセージ取得機能により取得したメッセージのなかで該一意性保証情報により前記転送すべきサーバが特定されるメッセージを該転送すべきサーバに転送するメッセージ転送機能と、
    前記メッセージ取得機能により取得したメッセージのなかで前記メッセージ転送機能によって転送されないメッセージを、転送すべきサーバを前記複数のサーバのなかから選択して、選択された転送すべきサーバに転送する自律負荷分散機能と、
    前記自律負荷分散機能によりメッセージが転送されたサーバにおける、前記セッションの生成により得られる、前記複数の通信プロトコルそれぞれの一意性保証情報を前記記憶装置に格納する情報管理機能と、
    を実現させるための一意性保証支援プログラム。
  2. 通信ネットワークを介してサービスを提供可能なサービス提供システムにおいて、
    前記サービス提供システムは、複数の通信プロトコルを連携させた前記サービスを提供可能な複数のサーバ、前記サービスを利用するユーザが使用する端末装置から受信したメッセージを前記複数のサーバのうちの一つに転送する負荷分散装置、及び前記負荷分散装置による複数の通信プロトコルに対応した一意性保証の実現を支援する一意性保証支援装置、を備え、
    前記負荷分散装置は、
    第1の記憶装置に格納されている、前記メッセージが転送されたサーバで生成されるセッションの識別情報、及び該サーバに転送すべきメッセージの対応関係を示す一意性保証情報を参照して、前記端末装置から受信したメッセージのなかで該一意性保証情報により転送すべきサーバが特定されるメッセージを該転送すべきサーバに転送する第1の転送手段と、
    前記第1の転送手段が転送しないメッセージを前記一意性保証支援装置に転送する第2の転送手段と、
    前記メッセージが転送されたサーバにおいて、前記セッションの生成により得られる、前記複数の通信プロトコルそれぞれの一意性保証情報を前記第1の記憶装置に格納する第1の情報管理手段と、を具備し、
    前記一意性保証支援装置は、
    前記負荷分散装置から転送されたメッセージを受信する受信手段と、
    第2の記憶装置に格納されている、前記メッセージが転送されたサーバで生成されるセッションの識別情報、及び該サーバに転送すべきメッセージの対応関係を示す一意性保証情報を参照して、前記受信手段が受信したメッセージのなかで該一意性保証情報により前記転送すべきサーバが特定されるメッセージを、該転送すべきサーバに転送するメッセージ転送手段と、
    前記受信手段が受信したメッセージのなかで前記メッセージ転送手段により転送されないメッセージを転送すべきサーバを前記複数のサーバのなかから選択して、選択された転送すべきサーバに転送する自律負荷分散手段と、
    前記自律負荷分散手段がメッセージを転送したサーバにおいて、前記セッションの生成により得られる、前記複数の通信プロトコルそれぞれの一意性保証情報を前記第2の記憶装置に格納する情報管理手段と、を具備し、
    前記端末装置から送信されたメッセージのなかで対応する一意性保証情報が前記負荷分散装置に格納されていない対象メッセージは、前記一意性保証支援装置に転送して、前記複数のサーバのなかから転送すべきサーバを選択させ、選択された転送すべきサーバに全て転送させる、
    ことを特徴とするサービス提供システム。
  3. 前記サービス提供システムは、前記一意性保証支援装置がメッセージを転送したサーバにおいて前記セッションの生成により得られる一意性保証情報を取得し、該一意性保証情報を、前記負荷分散装置及び前記一意性保証支援装置に送信する一意性保証情報設定管理装置、を更に備え、
    前記一意性保証情報設定管理装置は、前記メッセージの転送により前記セッションを生成したサーバから該メッセージの通信プロトコル分の一意性保証情報を受信し、該通信プロトコルとは異なる他の通信プロトコル分の一意性保証情報を生成することにより、複数の通信プロトコル分の一意性保証情報を、前記負荷分散装置及び前記一意性保証支援装置に通知する、
    ことを特徴とする請求項2記載のサービス提供システム。
  4. 前記一意性保証支援装置からメッセージが転送されたサーバは、該メッセージに格納されているメッセージ間の識別が可能な識別情報を用いて、該メッセージの通信プロトコル分の一意性保証情報を生成し、
    前記一意性保証情報設定管理装置は、前記サーバが生成した一意性保証情報中の識別情報を用いて、前記他の通信プロトコル分の一意性保証情報を生成する、
    ことを特徴とする請求項3記載のサービス提供システム。
  5. 複数の通信プロトコルでそれぞれサービスを提供可能な複数のサーバのなかの一つに端末装置から送信されたメッセージを負荷分散装置により転送させる場合に、複数の通信プロトコル間の連携に対応した一意性保証を実現させる方法であって、
    前記複数のサーバのなかで転送すべきサーバが未定の第1のメッセージを前記端末装置から前記負荷分散装置が受信した場合に、該第1のメッセージを転送すべきサーバを選択して転送する第1の転送工程と、
    前記第1の転送工程により前記第1のメッセージを転送した後、該第1のメッセージと同じサーバに転送すべき第2のメッセージを前記負荷分散装置が前記端末装置から受信した場合に、該第2のメッセージを保存する保存工程と、
    前記第1の転送工程により前記第1のメッセージが転送されたサーバがセッションを生成した場合に、該セッションと該セッションに対応するメッセージの対応関係を示す一意性保証情報を該セッションが対応する複数の通信プロトコル分、生成する生成工程と、
    前記保存工程で保存した前記第2のメッセージが存在する場合に、前記生成工程により生成された各一意性保証情報に従って該第2のメッセージを転送する第2の転送工程と、
    を含むことを特徴とする一意性保証実現方法。
  6. 複数の通信プロトコルでサービスを提供するサーバ群の中から、端末装置から受信したメッセージを転送すべきサーバを決定する負荷分散装置を構成するコンピュータによって実行されるプログラムであって、
    前記受信したメッセージ中にセッション識別子が有るか否かを判断するステップと、
    前記メッセージ中にセッション識別子が無いと判断された場合には、メッセージ転送先サーバを自律負荷分散アルゴリズムにより決定し、前記メッセージ中にセッション識別子が有ると判断された場合には、該メッセージに対応する一意性保証情報が一意性保証テーブルに登録されているか否かを判断し、登録されている場合には対応する一意性保証情報に基づいてメッセージ転送先サーバを決定し、登録されていない場合には第二の負荷分散装置にメッセージを転送することを決定するステップと、
    を含むことを特徴とするプログラム。
  7. 複数の通信プロトコルでサービスを提供するサーバ群の中から、端末装置から受信したメッセージを転送すべきサーバを決定する負荷分散装置であって、
    前記受信したメッセージ中にセッション識別子が有るか否かを判断する一意性保証情報識別部と、
    前記一意性保証情報識別部にて前記受信したメッセージ中にセッション識別子が無いと判断された場合には、メッセージ転送先サーバを自律負荷分散アルゴリズムにより決定し、該一意性保証情報識別部にて前記受信したメッセージ中にセッション識別子が有ると判断された場合には、セッション識別子と前記サーバ群のいずれのサーバにメッセージを転送すべきかの対応関係を規定した一意性保証テーブルを参照し、該一意性保証テーブルに該メッセージ中のセッション識別子が有る場合には該一意性保証テーブルに基づいてメッセージ転送先サーバを決定し、該一意性保証テーブルに該メッセージ中のセッション識別子が無い場合には、第二の負荷分散装置にメッセージを転送することを決定するMSG振分部と、
    を含むことを特徴とする負荷分散装置。
  8. 複数の通信プロトコルでサービスを提供するサーバ群の中から、端末装置から受信したメッセージを転送すべきサーバを決定する負荷分散装置におけるメッセージ転送先決定方法であって、
    前記受信したメッセージ中にセッション識別子が有るか否かを判断し、
    前記メッセージ中にセッション識別子が無いと判断された場合には、メッセージ転送先サーバを自律負荷分散アルゴリズムにより決定し、前記メッセージ中にセッション識別子が有ると判断された場合には、該メッセージに対応する一意性保証情報が一意性保証テーブルに登録されているか否かを判断し、登録されている場合には対応する一意性保証情報に基づいてメッセージ転送先サーバを決定し、登録されていない場合には第二の負荷分散装置にメッセージを転送することを決定する、
    ことを特徴とするメッセージ転送先決定方法。
  9. 複数の通信プロトコルでサービスを提供するサーバ群と、該サーバ群が提供するサービスを利用するユーザが使用する端末装置と、該端末装置から受信したメッセージの転送先を決定する負荷分散装置と、該負荷分散装置から転送されるメッセージを転送処理する機能を備える第二の負荷分散装置を含むサービス提供システムにおいて、
    前記負荷分散装置は、
    前記受信したメッセージ中にセッション識別子が有るか否かを判断する一意性保証情報識別部と、
    前記一意性保証情報識別部にて前記受信したメッセージ中にセッション識別子が無いと判断された場合には、メッセージ転送先サーバを自律負荷分散アルゴリズムにより決定し、該一意性保証情報識別部にて前記受信したメッセージ中にセッション識別子が有ると判断された場合には、セッション識別子と前記サーバ群のいずれのサーバにメッセージを転送すべきかの対応関係を規定した一意性保証テーブルを参照し、該一意性保証テーブルに該メッセージ中のセッション識別子が有る場合には該一意性保証テーブルに基づいてメッセージ転送先サーバを決定し、該一意性保証テーブルに該メッセージ中のセッション識別子が無い場合には、第二の負荷分散装置にメッセージを転送することを決定するMSG振分部と、
    を含むことを特徴とするサービス提供システム。
JP2009147191A 2009-03-19 2009-06-22 一意性保証支援プログラム、サービス提供システム、及び一意性保証実現方法 Expired - Fee Related JP5458688B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009147191A JP5458688B2 (ja) 2009-03-19 2009-06-22 一意性保証支援プログラム、サービス提供システム、及び一意性保証実現方法
US12/723,022 US8386575B2 (en) 2009-03-19 2010-03-12 Method of realizing uniqueness assurance and method of determining message destination

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2009068959 2009-03-19
JP2009068959 2009-03-19
JP2009147191A JP5458688B2 (ja) 2009-03-19 2009-06-22 一意性保証支援プログラム、サービス提供システム、及び一意性保証実現方法

Publications (2)

Publication Number Publication Date
JP2010244501A JP2010244501A (ja) 2010-10-28
JP5458688B2 true JP5458688B2 (ja) 2014-04-02

Family

ID=42738568

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009147191A Expired - Fee Related JP5458688B2 (ja) 2009-03-19 2009-06-22 一意性保証支援プログラム、サービス提供システム、及び一意性保証実現方法

Country Status (2)

Country Link
US (1) US8386575B2 (ja)
JP (1) JP5458688B2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5458688B2 (ja) * 2009-03-19 2014-04-02 富士通株式会社 一意性保証支援プログラム、サービス提供システム、及び一意性保証実現方法
JP5533300B2 (ja) * 2010-06-10 2014-06-25 日本電気株式会社 ルーティング管理システム、その処理方法及びプログラム
EP2594051B1 (en) * 2010-07-13 2014-05-21 Telefonaktiebolaget LM Ericsson (publ) Systems and methods recovering from the failure of a server load balancer
WO2013119244A1 (en) * 2012-02-10 2013-08-15 Empire Technology Development Llc Providing session identifiers
US9325785B2 (en) * 2012-06-29 2016-04-26 Rodolfo Kohn Device, system, and method for client-governed session persistency between one or more clients and servers of a data center
CN105721334B (zh) * 2014-12-04 2020-02-18 中国移动通信集团公司 确定传输路径和更新acl的方法及设备
JP6529180B2 (ja) * 2016-03-29 2019-06-12 日本電信電話株式会社 信号振り分けシステム及び信号振り分け方法
CN106027381B (zh) * 2016-07-28 2019-04-30 北京北信源软件股份有限公司 即时通讯中消息分组管控的方法
KR20220152774A (ko) * 2021-05-10 2022-11-17 삼성전자주식회사 에지 컴퓨팅 시스템에서 서버 관리 방법
CN114884973B (zh) * 2022-03-25 2023-11-17 徐工汉云技术股份有限公司 一种车辆定位数据的批量注册方法、装置及存储介质

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7401114B1 (en) * 1998-04-20 2008-07-15 Sun Microsystems, Inc. Method and apparatus for making a computational service highly available
US6374300B2 (en) * 1999-07-15 2002-04-16 F5 Networks, Inc. Method and system for storing load balancing information with an HTTP cookie
WO2001044894A2 (en) * 1999-12-06 2001-06-21 Warp Solutions, Inc. System and method for dynamic content routing
US6658473B1 (en) * 2000-02-25 2003-12-02 Sun Microsystems, Inc. Method and apparatus for distributing load in a computer environment
EP1428142A2 (en) * 2000-03-22 2004-06-16 Sidestep, Inc. Method and apparatus for dynamic information connection engine
US6922724B1 (en) * 2000-05-08 2005-07-26 Citrix Systems, Inc. Method and apparatus for managing server load
JP2002091936A (ja) * 2000-09-11 2002-03-29 Hitachi Ltd 負荷分散装置及び負荷見積もり方法
US7089281B1 (en) * 2000-12-08 2006-08-08 Sun Microsystems, Inc. Load balancing in a dynamic session redirector
US20020116397A1 (en) * 2000-12-21 2002-08-22 Berg Mitchell T. Method and system for communicating an information packet through multiple router devices
JP3963690B2 (ja) * 2001-03-27 2007-08-22 富士通株式会社 パケット中継処理装置
US7155722B1 (en) * 2001-07-10 2006-12-26 Cisco Technology, Inc. System and method for process load balancing in a multi-processor environment
US6938031B1 (en) * 2001-10-19 2005-08-30 Data Return Llc System and method for accessing information in a replicated database
US7143169B1 (en) * 2002-04-04 2006-11-28 Cisco Technology, Inc. Methods and apparatus for directing messages to computer systems based on inserted data
JP2004247916A (ja) 2003-02-13 2004-09-02 Nippon Telegr & Teleph Corp <Ntt> Web連携対応SIPサービス制御システムおよび制御方法
US7606929B2 (en) * 2003-06-30 2009-10-20 Microsoft Corporation Network load balancing with connection manipulation
US8028334B2 (en) * 2004-12-14 2011-09-27 International Business Machines Corporation Automated generation of configuration elements of an information technology system
JP4241660B2 (ja) * 2005-04-25 2009-03-18 株式会社日立製作所 負荷分散装置
US7881325B2 (en) * 2005-04-27 2011-02-01 Cisco Technology, Inc. Load balancing technique implemented in a storage area network
WO2007019583A2 (en) * 2005-08-09 2007-02-15 Sipera Systems, Inc. System and method for providing network level and nodal level vulnerability protection in voip networks
US7702947B2 (en) * 2005-11-29 2010-04-20 Bea Systems, Inc. System and method for enabling site failover in an application server environment
JP2007219608A (ja) * 2006-02-14 2007-08-30 Fujitsu Ltd 負荷分散処理プログラム及び負荷分散装置
JP2008059060A (ja) 2006-08-29 2008-03-13 Nippon Telegr & Teleph Corp <Ntt> サービス連携サーバ及び負荷分散方法
US7836332B2 (en) * 2007-07-18 2010-11-16 Hitachi, Ltd. Method and apparatus for managing virtual ports on storage systems
US8065559B2 (en) * 2008-05-29 2011-11-22 Citrix Systems, Inc. Systems and methods for load balancing via a plurality of virtual servers upon failover using metrics from a backup virtual server
US8166100B2 (en) * 2008-08-28 2012-04-24 Avg Technologies Cz, S.R.O. Cross site, cross domain session sharing without database replication
JP5493479B2 (ja) * 2008-10-03 2014-05-14 富士通株式会社 サービス提供システム、方法、一意性保証情報設定管理プログラム、負荷分散プログラム、及び管理装置
JP5458688B2 (ja) * 2009-03-19 2014-04-02 富士通株式会社 一意性保証支援プログラム、サービス提供システム、及び一意性保証実現方法

Also Published As

Publication number Publication date
US20100241715A1 (en) 2010-09-23
US8386575B2 (en) 2013-02-26
JP2010244501A (ja) 2010-10-28

Similar Documents

Publication Publication Date Title
JP5458688B2 (ja) 一意性保証支援プログラム、サービス提供システム、及び一意性保証実現方法
US7805517B2 (en) System and method for load balancing a communications network
US7532628B2 (en) Composite controller for multimedia sessions
JP4616159B2 (ja) クラスタシステム、ロードバランサ、ノード振替方法およびノード振替プログラム
JP2006094488A (ja) 経路情報に関するストレージ要件の軽減
JP5104591B2 (ja) バスシステム
CN103098437B (zh) 基于sip的呼叫会话服务器和消息路由选择方法
KR19990036003A (ko) 메시지 전송 방법 및 네트워크
US10931723B2 (en) Solution for establishing a communication session
JP5941434B2 (ja) セッション・ボーダ・コントローラのクラスタシステム、アプリケーション・サーバのクラスタシステム、および、そのsipダイアログ生成方法
JP2007219637A (ja) 負荷分散システムおよびそのプログラム
EP1917580B1 (en) Peer-to-peer communication system
KR20110001863A (ko) Sip 서블릿 애플리케이션 공동 호스팅 방법, 서버 및 컴퓨터 판독 가능한 저장매체
US10938993B2 (en) Workload balancing technique for a telephone communication system
JP5093012B2 (ja) 通信制御装置、通信制御方法および通信制御プログラム
JP2005236670A (ja) セッション確立、セッション確立処理装置及びプログラム
JP6748614B2 (ja) 通信システムおよび通信方法
KR20090042542A (ko) 더미 메시지를 이용하여 웹 서비스의 품질 데이터를추출하는 방법
KR20210078115A (ko) 전화 교환 시스템의 메시지 전달 장치 및 방법
EP1562339A1 (en) Peer-to-peer-e-mail
CN103338192A (zh) 呼叫邀请
JP5227984B2 (ja) ゲートウェイシステム、通信方法、収容管理サーバ装置及びプログラム
JP3781020B2 (ja) 論理アドレスサービス起動方法及び論理アドレス管理装置及びアプリケーション実行装置及び論理アドレスサービス管理プログラム及び論理アドレスサービス起動プログラム及び論理アドレスサービス管理プログラムを格納した記憶媒体及び論理アドレスサービス起動プログラムを格納した記憶媒体
JP2012247971A (ja) 負荷情報無共有型負荷平滑化サーバ、該サーバを備えるシステムおよびその方法
KR20130066857A (ko) Sip 메시지의 분배 시스템 및 그 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120309

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130821

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130827

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131015

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: 20131217

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131230

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