JP2007156569A - クラスタシステム、ロードバランサ、ノード振替方法およびノード振替プログラム - Google Patents

クラスタシステム、ロードバランサ、ノード振替方法およびノード振替プログラム Download PDF

Info

Publication number
JP2007156569A
JP2007156569A JP2005347071A JP2005347071A JP2007156569A JP 2007156569 A JP2007156569 A JP 2007156569A JP 2005347071 A JP2005347071 A JP 2005347071A JP 2005347071 A JP2005347071 A JP 2005347071A JP 2007156569 A JP2007156569 A JP 2007156569A
Authority
JP
Japan
Prior art keywords
node
session
server
node server
message
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.)
Granted
Application number
JP2005347071A
Other languages
English (en)
Other versions
JP4616159B2 (ja
Inventor
Akinori Iwakawa
明則 岩川
Satoshi Okuyama
敏 奥山
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 JP2005347071A priority Critical patent/JP4616159B2/ja
Priority to US11/391,368 priority patent/US20070121490A1/en
Publication of JP2007156569A publication Critical patent/JP2007156569A/ja
Application granted granted Critical
Publication of JP4616159B2 publication Critical patent/JP4616159B2/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
    • 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/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • 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/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/1004Server selection for load balancing
    • H04L67/1019Random or heuristic server selection
    • 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/1034Reaction to server failures by a load balancer

Abstract

【課題】ノードサーバが正常に動作しなくなった場合にも効率よく複数のロードバランサからのメッセージを処理することがクラスタシステムを提供する。
【解決手段】ロードバランサ5a、5bに接続されたクラスタシステム1が有するノードサーバ2a、2b、2cのそれぞれは、セッションIDと担当ノードサーバとを対応付けるセッション担当ノード情報と、ノード生死情報とを記憶する記憶部3aと、いずれか1つのロードバランサから送信されたメッセージを受け取った場合、メッセージのセッションを担当するノードサーバの機能が正常に動作しているか否かを判断するノード確認部と、前記セッションの担当ノードサーバを代替ノードサーバに変更するようにセッション担当ノード情報を更新し、メッセージを送信したロードバランサ以外のロードバランサに、代替ノードサーバを示すデータを送信するノード振替部とを備える。
【選択図】図1

Description

本発明は、ロードバランサによって分散されたユーザ端末からの要求を処理する複数のノードサーバを有するクラスタシステムに関し、特に、通信プロトコルが異なる複数のロードバランサに接続されたクラスタシステム、ロードバランサ、クラスタシステムで用いられるノード振替方法およびノード振替プログラムに関する。
経済、社会の基盤を構成するIT(Information Technology)システムには、安定性、堅ろう性および経済性が求められる。ITシステムにおいて高い安定性を保つための方法として、複数セットのシステムを用意しておき、複数セットのシステムのうち、いずれか1つにトラブルが発生した時やメンテナンスを行う時に、それらをすばやく切り替える方法がある。その方法の1つがクラスタリングである。
図14は、クラスタリングを利用したWWWシステムの構成の概略を示す図である。図14に示すWWWシステム90は、互いに接続されたノードサーバ91a、91b、91cを備える。ノードサーバ91a、91b、91cは、それぞれ、記憶部92a、92b、92cを有する。ノードサーバ91a、91b、91cには、それぞれHTTPアプリケーションが実装されている。WWWシステム90は、ロードバランサ93に接続されている。ロードバランサ93は、ユーザ端末94a、94bからのHTTPメッセージを受け付けて、WWWシステム90の各ノードサーバに振り分ける。
例えば、ロードバランサ93が、ユーザ端末94aからのHTTPメッセージを、ノードサーバ91aに割り当てると、ユーザ端末94aが備えるブラウザとノードサーバ91aが備えるHTTPアプリケーションとの間でHTTPデータ通信が行われる。
HTTPデータ通信において、ユーザ端末94aにおいてユーザが1つのWebサイト内で行う操作による一連のデータ通信はセッションという処理単位で扱われる。例えば、電子商取引サイトでは、ログインからログアウトまでを1セッションとして、ユーザ端末94aのブラウザおよびノードサーバ91aのHTTPアプリケーションで処理が行われる。セッションの固有の情報は、セッションデータとしてノードサーバ91aの記憶部92aに記憶される。
ここで、ノードサーバ91aとユーザ端末94aとのデータ通信におけるセッションデータは、ノードサーバ91b、91cの記憶部92b、92cにも複製される。ノードサーバ91aの記憶部92aのセッションデータが更新されると、自動的にノードサーバ91b、91cの記憶部92b、92cのセッションデータも更新される仕組みになっている。
これにより、1つのセッションが終了しないうちに、ノードサーバ91aが、障害により機能しなくなり、そのセッションが中断されても、ノードサーバ91bまたはノードサーバ91cが、記憶部92b、92cのセッションデータを用いて、そのセッションを引き継ぐことができる。このようなセッションデータ複製処理およびロードバランサによる負荷分散処理との組合せによってクラスタリングが実現される。
近年、複数のプロトコルによる通信を連携するサービスを提供するシステムが出現している。例えば、SIPサーバとWWWサーバを連携する機能を持つSIP/HTTPアプリケーションサーバがある。これは、例えば、HTTPプロトコルでユーザ端末から送られてきたメッセージで指定される切断・保留・転送などを実現するSIPプロトコルメッセージを作成して電話機能を持つ端末へ送信する機能を持っている。これにより、ユーザは、例えば、Webページから電話への発呼、Webページから通話の保留、転送、切断操作等を行うことが可能になる。
図15は、SIPサーバとWWWサーバを連携する機能を持つSIP/HTTP連携システム99におけるクラスタリング構成の概略を示す図である。図15に示す構成では、2つのロードバランサ93、97が設けられている。ロードバランサ93は、HTTPプロトコルによる通信を行い、ロードバランサ97は、SIPプロトコルによる通信を行う。ノードサーバ95a、95b、95cには、SIPプロトコルメッセージとHTTPプロトコルメッセージを連携する機能を持つSIP/HTTPアプリケーションが実装されている。
図15に示すSIP/HTTP連携システム99では、例えば、ロードバランサ93が、ユーザ端末94aからHTTPプロトコルに従ったメッセージを受け取り、ノードサーバ95a、95b、95cのいずれかに割り当てる。例えば、HTTPプロトコルメッセージが、ノードサーバ95aに割り当てられると、ノードサーバ95aのSIP/HTTPアプリケーションは、受信したHTTPメッセージに対応する呼処理を実行するSIPメッセージを作成し、ロードバランサ97に転送する。ロードバランサ97は、SIPメッセージを、例えば、送信先のユーザ端末98aに転送する。このようにして、ユーザ端末94aとユーザ端末98aとの間でのデータ通信が行われる。
各ユーザ間のセッションにおける固有の情報は、各セッションデータとしてノードサーバ95a、95b、95cの記憶部96a、96b、96cに複製して記憶される。これにより、ノードサーバ95a、95b、95cのうちいずれかが、セッション処理終了前に停止しても、そのセッションを他のノードサーバで引き継ぐことができる。
図15に示すように、ロードバランサが複数存在する場合は、セッション複製に伴うオーバーヘッドを最小にするため、同一セッションは、同一のノードサーバで処理されることが好ましい。すなわち、効率的な処理を行うために、複数のロードバランサからの同一のセッションに関するメッセージは、同一のノードサーバに割り当てられることが好ましい。さらに、ノードサーバ95a、95b、95cいずれかに障害が起きた場合でも、複数のロードバランサが、同一のノードサーバで、同一セッションが処理されるように動作する必要がある。
複数のロードバランサ間で情報をやり取りする例は、いくつか提案されている(例えば、特許文献1および特許文献2参照)。
特開2004−199678号公報 特開2003−174473号公報
しかしながら、上記特許文献1および2の例では、複数のロードバランサが、関連する複数のセッションに属するメッセージを同一のクラスタノードに分配可能とするための方法は開示されていない。
本発明は、複数のロードバランサを介するデータ通信において、ノードサーバが正常に動作しなくなった場合にも複数のロードバランサが、同一のセッションまたは関連する複数のセッションに属するメッセージを同一のクラスタノードに分配することを可能とし、効率よく複数のロードバランサからのメッセージを処理することができるクラスタシステム、ロードバランサ、ノード振替方法、ノード振替プログラムを提供することを目的とする。
本発明におけるクラスタシステムは、複数のロードバランサに接続され、前記複数のロードバランサそれぞれにアクセスする複数のユーザ端末からのメッセージを処理することにより、前記複数のユーザ端末間のデータ通信を可能にするノードサーバを複数有するクラスタシステムであって、前記複数のノードサーバのそれぞれは、同一ユーザ端末の一連のデータ通信であるセッションを識別するセッションIDと前記セッションIDで示されるセッションに属するメッセージの処理を行う担当ノードサーバとを対応付けるセッション担当ノード情報と、前記複数のノードサーバそれぞれの機能が正常に動作しているか否かを示すノード生死情報とを記憶する記憶部にアクセス可能であり、前記複数のロードバランサのうちいずれか1つのロードバランサからセッションIDを含むメッセージを受け取った場合、前記セッション担当ノード情報および前記ノード生死情報を用いて、前記メッセージに含まれる前記セッションIDのセッションを担当するノードサーバの機能が正常に動作しているか否かを判断するノード確認部と、前記ノード確認部が、前記セッションを担当するノードサーバの機能が正常に動作していないと判断した場合、前記セッションの担当ノードサーバを代替ノードサーバに変更するように前記セッション担当ノード情報を更新し、前記複数のロードバランサに、前記セッションを示すデータと、前記代替ノードサーバを示すデータとを送信するノード振替部とを備える。
本発明におけるノード振替方法は、複数のロードバランサに接続され、前記複数のロードバランサそれぞれにアクセスする複数のユーザ端末からメッセージを処理することにより、前記複数のユーザ端末間のデータ通信を可能にするノードサーバを複数有するクラスタシステムにおいて、前記ノードサーバによって行われるノード振替方法であって、前記複数のノードサーバのそれぞれが、同一ユーザ端末間の一連のデータ通信であるセッションを識別するセッションIDと、前記セッションIDで示されるセッションに関する処理を行う担当ノードサーバとを対応付けるセッション担当ノード情報と、前記複数のノードサーバそれぞれの機能が正常に動作しているか否かを示すノード生死情報とを記憶する工程と、前記複数のノードサーバのいずれか1つのノードサーバが、前記複数のロードバランサのうちいずれか1つのロードバランサから送信されたメッセージを受け取った場合、前記セッション担当ノード情報および前記ノード生死情報を用いて、前記メッセージの前記セッションを担当するノードサーバの機能が正常に動作しているか否かを判断するノード確認工程と、前記ノードサーバが、前記ノード確認工程で、前記セッションを担当するノードサーバの機能が正常に動作していないと判断された場合、前記セッションの担当ノードサーバを代替ノードサーバに変更するように前記セッション担当ノード情報を更新し、前記複数のロードバランサに、前記セッションのセッションIDと、前記代替ノードサーバを示すデータを送信するノード振替工程とを有する。
本発明におけるノード振替プログラムは、複数のロードバランサに接続され、前記複数のロードバランサそれぞれにアクセスする複数のユーザ端末からメッセージを処理することにより、前記複数のユーザ端末間のデータ通信を可能にするノードサーバを複数有するクラスタシステムにおいて、前記ノードサーバに処理を実行させるノード振替プログラムであって、前記ノードサーバの記憶部に、同一ユーザ端末間の一連のデータ通信であるセッションを識別するセッションIDと、前記セッションIDで示されるセッションに関する処理を行う担当ノードサーバとを対応付けるセッション担当ノード情報と、前記複数のノードサーバそれぞれの機能が正常に動作しているか否かを示すノード生死情報とを記憶する処理と、前記ノードサーバが、前記複数のロードバランサのうちいずれか1つのロードバランサから送信されたメッセージを受け取った場合、前記セッション担当ノード情報および前記ノード生死情報を用いて、前記メッセージの前記セッションを担当するノードサーバの機能が正常に動作しているか否かを判断するノード確認処理と、前記ノード確認処理で、前記セッションを担当するノードサーバの機能が正常に動作していないと判断された場合、前記セッションの担当ノードサーバを代替ノードサーバに変更するように前記セッション担当ノード情報を更新し、前記複数のロードバランサに、前記セッションのセッションIDと、前記代替ノードサーバを示すデータとを送信するノード振替処理と前記ノードサーバに実行させる。
本発明によれば、複数のロードバランサを介するデータ通信において、ノードサーバが正常に動作しなくなった場合にも複数のロードバランサが、同一のセッションまたは関連する複数のセッションに属するメッセージを同一のクラスタノードに分配することを可能とし、効率よくメッセージを処理することができるクラスタシステム、ロードバランサ、ノード振替方法、ノード振替プログラムを提供することができる。
本発明におけるクラスタシステムは、複数のロードバランサに接続され、前記複数のロードバランサそれぞれにアクセスする複数のユーザ端末からのメッセージを処理することにより、前記複数のユーザ端末のデータ通信を可能にするノードサーバを複数有するクラスタシステムであって、前記複数のノードサーバのそれぞれは、同一ユーザ端末間の一連のデータ通信であるセッションを識別するセッションIDと前記セッションIDで示されるセッションに属するメッセージの処理を行う担当ノードサーバとを対応付けるセッション担当ノード情報と、前記複数のノードサーバそれぞれの機能が正常に動作しているか否かを示すノード生死情報とを記憶する記憶部にアクセス可能であり、前記複数のロードバランサのうちいずれか1つのロードバランサからセッションIDを含むメッセージを受け取った場合、前記セッション担当ノード情報および前記ノード生死情報を用いて、前記メッセージに含まれる前記セッションIDのセッションを担当するノードサーバの機能が正常に動作しているか否かを判断するノード確認部と、前記ノード確認部が、前記セッションを担当するノードサーバの機能が正常に動作していないと判断した場合、前記セッションの担当ノードサーバを代替ノードサーバに変更するように前記セッション担当ノード情報を更新し、前記複数のロードバランサに、前記セッションを示すデータと、前記代替ノードサーバを示すデータとを送信するノード振替部とを備える。
ロードバランサは、ユーザ端末からのメッセージを一元的に管理し、複数のノードサーバにメッセージを転送する負荷分散サーバである。
セッションは、複数のロードバランサそれぞれにアクセスする複数のユーザ端末間でのデータ通信において、同一ユーザ端末の一連のデータ通信における処理の集合である。
前記記憶部には、各セッションを識別するためのセッションIDと、各セッションを担当する担当ノードサーバとを対応付けるセッション担当ノード情報が記憶されている。そのため、前記ノード確認部は、ロードバランサから受け取ったメッセージのセッションの担当ノードサーバを、前記セッション担当ノード情報により特定することができる。さらに、前記ノード確認部は、メッセージのセッションの担当ノードサーバが正常に動作しているか否かを、セッション担当ノード情報に基づいて、判断することができる。その結果、例えば、障害の発生等により、担当ノードサーバが正常に動作していない場合、前記ノード確認部によって、担当ノードサーバの異常が検出される。すなわち、前記セッションを担当するノードサーバを振り替える必要があることが検出される。
ノード振替部は、正常に動作していない担当ノードサーバの替わりに機能する代替ノードサーバと、代替ノードサーバが担当するセッションを示すデータを前記複数のロードバランサに送信するので、前記データを受信したロードバランサは、セッションを担当するノードサーバが変更された旨の情報を得ることができる。すなわち、複数のロードバランサへノードサーバの振替が通知される。そのため、複数のノードサーバのうち1つが正常に動作しなくなって、その機能が代替ノードサーバに切り替えられた場合であっても、複数のロードバランサは切り替え後の代替ノードサーバにアクセスできる。その結果、複数のロードバランサを介するデータ通信において、複数のノードサーバの一部が正常に動作しなくなった場合にも、複数のロードバランサが、同一のセッションまたは関連する複数のセッションに属するメッセージを、同一のノードサーバに分配することが可能となる。すなわち、複数のノードサーバの一部が正常に動作しなくなった場合にも効率よく複数のロードバランサからメッセージを処理することができるクラスタシステムが得られる。 本発明におけるクラスタシステムにおいて、前記ノード振替部は、前記メッセージを送信したロードバランサ以外のロードバランサから前記ノードサーバに対して前記セッションに関するアクセスがあった後に、前記アクセスがあったロードバランサに前記セッションのセッションIDと、前記代替ノードサーバを示すデータとを送信することが好ましい。
前記ノードサーバに前記セッションに関するアクセスを行うロードバランサは、そのセッションを扱うロードバランサである。したがって、前記ノード振替部は、そのセッションを扱うロードバランサに、そのアクセスのタイミングに合わせて、前記セッションのセッションIDと、前記代替ノードサーバを示すデータとを送信することができる。その結果、前記セッションを扱うロードバランサに対して効率よく前記セッションIDと前記データとを送信することができる。
本発明におけるクラスタシステムは、異なる通信プロトコルでデータ通信を行う複数のロードバランサに接続され、前記複数のロードバランサそれぞれにアクセスする、通信プロトコルの異なる複数のユーザ端末からのメッセージの処理することにより、通信プロトコルの異なる前記複数のユーザ端末間のデータ通信を可能にするノードサーバを複数有するクラスタシステムであって、前記複数のノードサーバのそれぞれは、通信プロトコルの異なるユーザ端末同士の一連のデータ通信であるセッションを識別するセッションIDと前記セッションIDで示されるセッションに関する処理を行う担当ノードサーバとを対応付けるセッション担当ノード情報と、前記複数のノードサーバそれぞれの機能が正常に動作しているか否かを示すノード生死情報とを記憶する記憶部にアクセス可能であり、前記複数のロードバランサのうちいずれか1つのロードバランサから送信されたセッションIDを含むメッセージを受け取った場合、前記セッション担当ノード情報および前記ノード生死情報を用いて、前記メッセージに含まれる前記セッションIDのセッションを担当するノードサーバの機能が正常に動作しているか否かを判断するノード確認部と、前記ノード確認部が、前記セッションを担当するノードサーバの機能が正常に動作していないと判断した場合、前記セッションの担当ノードサーバを代替ノードサーバに変更するように前記セッション担当ノード情報を更新し、前記メッセージを送信したロードバランサとは通信プロトコルが異なる他のロードバランサに、前記セッションのセッションIDと、前記代替ノードサーバを示すデータとを送信するノード振替部とを備える。
ノード振替部は、前記代替ノードサーバと、代替ノードサーバが担当するセッションのセッションIDとを示すデータを、前記メッセージを送信したロードバランサとは通信プロトコルが異なる他のロードバランサに送信するので、セッションを担当するノードサーバが代替ノードサーバに振り替えられた場合、異なるプロトコルのロードバランサへ代替ノードサーバを通知することができる。その結果、通信プロトコルの異なる複数のロードバランサを介するデータ通信において、複数のノードサーバの一部が正常に動作しなくなった場合にも、効率よく通信プロトコルの異なる複数のロードバランサからのメッセージを処理することができるクラスタシステムが得られる。
本発明におけるクラスタシステムにおいて、前記複数のロードバランサは、HTTPプロトコルでデータ通信を行うロードバランサと、SIPプロトコルでデータ通信を行うロードバランサとを含む態様とすることができる。
本発明におけるロードバランサは、本発明におけるクラスタシステムに接続された前記ロードバランサであって、セッションIDと、当該セッションIDで示されるセッションに関する処理を行う担当ノードサーバとを対応付けるセッション担当ノード情報を記憶する記憶部と、前記複数のユーザ端末からのメッセージを受信して、前記メッセージからセッションIDを取得し、前記セッションIDおよび前記セッション担当ノード情報に基づいて決定されるノードサーバへ前記メッセージを割り当てる負荷分散部と、前記ノードサーバが備える前記ノード振替部から前記セッションのセッションIDと、前記代替ノードサーバを示すデータが送信された場合に、前記送信されたデータに基づいて、前記記憶部に記憶された担当セッションノード情報を更新する更新部とを備える。
前記負荷分散部は、前記セッション担当ノード情報に基づいてメッセージを割り当てるノードサーバを決定するので、同一のセッションのメッセージは、同一のノードサーバに割り当てられる。また、前記記憶部の前記セッション担当ノード情報は、前記ノードサーバが備える前記ノード振替部からの情報に基づいて前記更新部によって更新されるので、セッションを担当する担当ノードサーバが正常に動作しなくなった場合でも、前記クラスタシステムの前記セッションを担当する前記サーバノードを担当する代替ノードサーバを示す情報で前記セッション担当ノード情報が更新される。そのため、前記ロードバランサは、前記クラスタシステムの何れかのノードサーバが正常に動作しなくなった場合でも、代替ノードサーバにアクセスすることができ、同一のセッションを同一のノードサーバに割り当てることができる。
本発明におけるノード振替方法は、複数のロードバランサに接続され、前記複数のロードバランサそれぞれにアクセスする複数のユーザ端末からメッセージを処理することにより、前記複数のユーザ端末間のデータ通信を可能にするノードサーバを複数有するクラスタシステムにおいて、前記ノードサーバによって行われるノード振替方法であって、前記複数のノードサーバのそれぞれが、同一ユーザ端末間の一連のデータ通信であるセッションを識別するセッションIDと、前記セッションIDで示されるセッションに関する処理を行う担当ノードサーバとを対応付けるセッション担当ノード情報と、前記複数のノードサーバそれぞれの機能が正常に動作しているか否かを示すノード生死情報とを記憶する工程と、前記複数のノードサーバのいずれか1つのノードサーバが、前記複数のロードバランサのうちいずれか1つのロードバランサから送信されたメッセージを受け取った場合、前記セッション担当ノード情報および前記ノード生死情報を用いて、前記メッセージの前記セッションを担当するノードサーバの機能が正常に動作しているか否かを判断するノード確認工程と、前記ノードサーバが、前記ノード確認工程で、前記セッションを担当するノードサーバの機能が正常に動作していないと判断された場合、前記セッションの担当ノードサーバを代替ノードサーバに変更するように前記セッション担当ノード情報を更新し、前記複数のロードバランサに、前記セッションのセッションIDと、前記代替ノードサーバを示すデータを送信するノード振替工程とを有する。
本発明におけるノード振替プログラムは、複数のロードバランサに接続され、前記複数のロードバランサそれぞれにアクセスする複数のユーザ端末からメッセージを処理することにより、前記複数のユーザ端末間のデータ通信を可能にするノードサーバを複数有するクラスタシステムにおいて、前記ノードサーバに処理を実行させるノード振替プログラムであって、前記ノードサーバの記憶部に、同一ユーザ端末間の一連のデータ通信であるセッションを識別するセッションIDと、前記セッションIDで示されるセッションに関する処理を行う担当ノードサーバとを対応付けるセッション担当ノード情報と、前記複数のノードサーバそれぞれの機能が正常に動作しているか否かを示すノード生死情報とを記憶する処理と、前記ノードサーバが、前記複数のロードバランサのうちいずれか1つのロードバランサから送信されたメッセージを受け取った場合、前記セッション担当ノード情報および前記ノード生死情報を用いて、前記メッセージの前記セッションを担当するノードサーバの機能が正常に動作しているか否かを判断するノード確認処理と、前記ノード確認処理で、前記セッションを担当するノードサーバの機能が正常に動作していないと判断された場合、前記セッションの担当ノードサーバを代替ノードサーバに変更するように前記セッション担当ノード情報を更新し、前記複数のロードバランサに、前記セッションのセッションIDと、前記代替ノードサーバを示すデータとを送信するノード振替処理と前記ノードサーバに実行させる。
以下、図面を参照して、本発明の実施の一形態を詳細に説明する。
(実施の形態1)
図1は、本実施形態におけるクラスタシステムの構成を示す機能ブロック図である。図1に示すクラスタシステム1は、SIPサーバとWWWサーバを連携する機能を持つSIP/HTTP連携システムをクラスタリングした構成の例である。
この構成では異なるロードバランサとしてHTTPロードバランサ、SIPロードバランサそれぞれ1台づつによる構成としたが、それぞれ複数のロードバランサから構成される構成としてもよいし、またHTTPのみ、SIPのみのロードバランサから構成される構成としてもよいし、HTTP、SIP以外のプロトコルを扱うロードバランサであってもよい。
図1に示すクラスタシステム1は、互いに接続されたノードサーバ2a、2b、2cを備える。ノードサーバ2a、2b、2cは、それぞれ、記憶部3a、3b、3cを有する。記憶部3a、3b、3cには、セッションデータおよびクラスタ管理情報が記憶されている。
図2は、ノードサーバ2aの構成の例を示す機能ブロック図である。なお、ノードサーバ2b、2cも図2と同様の構成とすることができる。図2に示すように、ノードサーバ2aは、SIP/HTTPアプリケーション実行部11およびクラスタ管理部10を備える。クラスタ管理部10には、データ送受信部13、ノード監視部15、ノード確認部17、ノード振替部19が含まれている。ノードサーバ2aは、記憶部3aにアクセス可能となっている。記憶部3aに記憶されたクラスタ管理情報には、セッション担当ノード情報、ノード生死情報が含まれている。
再び図1を参照して、クラスタシステム1は、HTTPロードバランサ5aおよびSIPロードバランサ5bに接続されている。HTTPロードバランサ5aは、ネットワークを介して、複数のユーザ端末7a、7bに接続されている。ユーザ端末7a、7bは、例えば、HTTP通信を行うためのWebブラウザが実装されたコンピュータ等である。SIPロードバランサ5bは、ネットワークを介して、複数のユーザ端末8a、8bに接続されている。ユーザ端末8a、8bは、例えば、SIP通信を行うための電話機等である。
図3は、HTTPロードバランサ5aの構成の例を示す機能ブロック図である。図3に示すようにHTTPロードバランサ5aは、負荷分散部51および更新部52を備える。HTTPロードバランサ5aは、記録部6aにアクセス可能となっている。記憶部6aには、セッション担当ノード情報が記憶されている。なお、SIPロードバランサ5bも図3に示す構成と同様である。
ノードサーバ2a、2b、2c、HTTPロードバランサ5a、SIPロードバランサ5bは、例えば、パーソナルコンピュータ、サーバ等のコンピュータにより構成される。ノードサーバ2a、2b、2c、HTTPロードバランサ5aのSIP/HTTPアプリケーション実行部11、クラスタ管理部10、負荷分散部51、更新部52の機能は、コンピュータのCPUまたはMPUが所定のプログラムを実行することで実現することができる。また、記録部3a、3b、3c、6a、6bには、コンピュータが備えるハードディスク、半導体メモリ、フレキシブルディスク、DVD等を用いることができる。
HTTPロードバランサ5aの負荷分散部51は、ユーザ端末7a、7bからのHTTPプロトコルに基づくメッセージ(以下、HTTPメッセージと称する。)を受け付けて、クラスタシステム1の各ノードサーバ2a、2b、2cに振り分ける。HTTPロードバランサ5aからHTTPメッセージを受信した各ノードサーバ2a、2b、2cのSIP/HTTPアプリケーション実行部11は、例えば、受信したHTTPメッセージに対応する呼処理を実行するSIPメッセージを作成し、SIPロードバランサ5bを介して、ユーザ端末8aまたは8bに送信する。
SIPロードバランサ5bの負荷分散部は、ユーザ端末8a、8bからのSIPプロトコルに基づくメッセージ(以下、SIPメッセージと称する)を受け付けて、クラスタシステム1の各ノードサーバ2a、2b、2cに振り分ける。SIPロードバランサ5bからHTTPメッセージを受信した各ノードサーバ2a、2b、2cのSIP/HTTPアプリケーション実行部11は、例えば、受信したSIPメッセージに対応するHTTPセッションに保存した呼状態情報を更新する。なおHTTPプロトコルの特性上、SIPメッセージを受信した時点で、更新された前記呼状態情報はユーザ端末7a側へ送信されず、次回HTTPメッセージに対するレスポンスとして送信される。
これにより、例えば、異なる通信プロトコルのユーザ端末7aとユーザ端末8bとの間でデータ通信が可能になる。ここでは、例えば、ユーザ端末7aとユーザ端末8bとの間の一連のデータ通信はセッションという処理単位で扱われる。セッションは、同一ユーザ端末間の一連のデータ通信処理を表す概念である。以下、本実施形態におけるセッションについて説明する。
(セッションについての説明)
1つのセッションには、例えば、SIP/HTTPアプリケーション実行部11で処理されているユーザ端末間のデータ通信において、それらのユーザ端末からされるアクセスの全ての処理が含まれる。例えば、ユーザ端末7aのWebブラウザからユーザ端末8bへ発呼がされた場合、発呼の時にセッションが始まり、その通話が切断されるとセッションが終了する。この場合、発呼の時から通話が切断されるまでの、ユーザ端末7aおよびユーザ端末8bからのアクセスは、すべて1つのセッションに含まれる。このセッションを統合セッションと呼称する。
また、統合セッションには、HTTPセッションおよびSIPセッションを含んでいる。HTTPセッションは、ユーザ端末7aまたは7bと各ノードサーバ2a、2bまたは2cとの間の同一ユーザによる一連のデータ通信、つまりHTTPプロトコルにおける同一ユーザによる一連のデータ通信であり、SIPセッションは、ユーザ端末8aまたは8bと各ノードサーバ2a、2bまたは2cとの間の同一ユーザによる一連のデータ通信、つまりSIPプロトコルにおける同一ユーザによる一連のデータ通信である。
HTTPセッションIDは、例えば、ユーザ端末7aで、Webサイトへの初回アクセス処理が行われた時に生成され、初回アクセス時にノードサーバ2aへ送信されるHTTPメッセージに含まれる。例えば、そのHTTPメッセージをノードサーバ2aが受信した場合、ノードサーバ2aは、HTTPセッションIDと統合セッションIDを対にして生成し、その対応関係をテーブルに記録する。 さらに、ノードサーバ2aが、例えば、受信したHTTPメッセージに対応する呼処理を実行するSIPメッセージを作成し、SIPロードバランサ5bを介して、ユーザ端末8aに送信する場合、SIPセッションIDを生成して、統合セッションIDと対応づけて記録し、更にそのSIPセッションIDをSIPメッセージに含めて送信する。
以降、ノードサーバ2aとユーザ端末8aとの一連のデータ通信において、SIPロードバランサ5bを介してやりとりするSIPメッセージには、SIPセッションIDが含まれる。また、ノードサーバ2aとユーザ端末7aとの一連のデータ通信において、HTTPロードバランサ5aを介してやりとりするHTTPメッセージには、HTTPセッションIDが含まれる。
このようにして、ノードサーバ2aで生成された統合セッションIDは、SIPセッションIDおよびHTTPセッションIDとを関連付ける役割を果たす。ユーザ端末7aとユーザ端末8aとの一連のデータ通信が終了するまで、統合セッションIDはノードサーバ2aで保持される。
ノードサーバ2a、2b、2cで生成された統合セッションIDは、例えば、セッションで使用されるセッション情報とともにセッションデータとして、各ノードサーバ2a、2b、2cの記憶部3aに記憶される。
図4は、セッションデータの構成の例を表す図である。図4に示す例では、統合セッションIDに、HTTPセッションIDおよびSIPセッションIDが対応付けられている。HTTPセッションIDには、HTTPセッションのセッション情報が、SIPセッションIDには、SIPセッションのセッション情報がそれぞれ対応づけられている。HTTPセッションに設定されるセッション情報には、例えば、ユーザ端末7a、7bで入力された住所、氏名等があり、SIPセッションのセッション情報には、例えば、通話元電話番号、通話先電話番号等がある。
セッションデータは、例えば、ノードサーバ2a、2b、2cのうちいずれか1つが、ユーザ端末からの一連のデータ通信の開始を要求するメッセージを受け取った時にSIP/HTTPアプリケーション実行部によって生成される。セッションデータは、複製されて、ノードサーバ2a、2b、2cそれぞれの記憶部3a、3b、3cに記憶される。記憶部3a、3b、3cに記憶されたセッションデータのうち、いずれか1つのセッションデータが更新されると、他のセッションデータも更新される。これにより、記憶部3a、3b、3cに記憶されたセッションデータは、常に同じ内容を保たれる。
そのため、ノードサーバ2a、2b、2cのうちいずれか1つが、あるセッションの処理中にセッション終了前に障害等により停止しても、セッションデータが他のノードサーバの記憶部に残されているので、他のノードサーバがそのセッションを引き継ぐことができる。
以上、セッションについて説明した。図1に示すクラスタシステム1においては、同一の統合セッションは、同一のノードサーバで処理される。すなわち、HTTPロードバランサ5aおよびSIPロードバランサ5bは、同一の統合セッションに属するHTTPセッションおよびSIPセッションを、同一のノードサーバに割り当てる。そのため、例えば、HTTPロードバランサ5aおよびSIPロードバランサ5bは、HTTP/SIPセッションIDと、そのHTTP/SIPセッションIDで示される統合セッションを担当するノードサーバを表すノードIDとが対応付けられたセッション担当ノード情報を記憶部6aおよび6bにそれぞれ記憶する。
HTTPロードバランサ5aおよびSIPロードバランサ5bに記憶されているセッション担当ノード情報は、どのセッションをどのノードサーバに割り当てるかを示すデータである。図5(a)は、HTTPロードバランサ5aの記憶部6aに記憶されているセッション担当ノード情報の例を示す図である。
図5(a)に示す例では、HTTPセッションIDと、ノードIDが対応付けられて記憶されている。HTTPロードバランサ5aの負荷分散部51は、例えば、ユーザ端末から受け取ったHTTPメッセージに含まれるHTTPセッションIDと一致するHTTPセッションIDを、記憶部6aのセッション担当ノード情報から見つけ出し、そのHTTPセッションIDに対応するノードIDを取得する。負荷分散部51は、取得したノードIDが示すノードサーバへHTTPメッセージを送信する。
図5(b)は、SIPロードバランサ5bの記憶部6bに記憶されているセッション担当ノード情報の例を示す図である。図5(b)に示す例では、SIPセッションIDと、ノードIDが対応付けられて記憶されている。SIPロードバランサ5bの負荷分散部は、ユーザ端末から受け取ったSIPメッセージに含まれるSIPセッションIDと一致するSIPセッションIDを、記憶部6bのセッション担当ノード情報から見つけ出し、そのSIPセッションIDに対応するノードIDを取得する。SIPロードバランサ5bの負荷分散部は、取得したノードIDが示すノードサーバへSIPメッセージを送信する。
次に、図2に示すクラスタ管理部10について説明する。データ送受信部13は、各ノードサーバ2a、2b、2cの記憶部3a、3b、3cに記憶されたセッションデータおよびクラスタ管理情報のミラーリングを随時実行する。これにより、各ノードサーバ2a、2b、2cの記憶部3a、3b、3cに記憶されたデータの内容の同期を取る。すなわち、各ノードサーバ2a、2b、2cは常に同じ内容のセッションデータおよびクラスタ管理情報を共有することができる。
なお、各ノードサーバ2a、2b、2cが常に同じ内容のセッションデータおよびクラスタ管理情報を共有するための構成は、上記のデータ内容の同期を取る方法に限られない。例えば、各ノードサーバ2a、2b、2cが共有する記憶部を別途設ける方法もある。
ノード監視部15は、他のノードサーバ2b、2cと、ノードサーバの機能が正常に動作しているか否かを互いに監視し合う。例えば、ハートビート(HeartBeat)信号と呼ばれる信号を、各ノードサーバ2a、2b、2c間で交換することによって、互いにノードサーバ機能の生存を確認し合うことができる。ノード監視部15は、他のノードサーバの機能が正常に動作していないこと、すなわち、他のノードサーバの障害を検出すると、ノード生死情報を更新して、障害が起きたノードサーバの機能が正常に動作していないことを記憶部3aへ記録する。
図6は、ノード生死情報のデータ構造の例を示す図である。図6に示す例では、ノードIDごとに生死フラグが記録されている。例えば、ノードID=“node01”のノードサーバの機能が正常に動作していないことを検出したノードサーバは、ノードID=“node01”の生死フラグを“false”に更新することで、ノードID=“node01”のノードサーバの機能が停止していることを記録することができる。
ノード確認部17は、記憶部3aのセッション担当ノード情報およびノード生死情報を参照して、所定のセッションの処理を担当するノードサーバが正常に動作しているか否かを判断する。
例えば、ノードサーバ2a、2b、2cのうち、ノードサーバ2bが障害により停止した場合、HTTPロードバランサ5aは、ノードサーバ2bに、ノードサーバ2bが担当するセッションのHTTPメッセージを送信してもエラーの処理結果が返ってくるので、他のノードサーバ(例えば、ノードサーバ2a)に送信することになる。このように、ノードサーバ2aが、自ノードサーバ2aが担当するセッションでないセッションに関するHTTPメッセージを受け取る場合がある。例えば、ノードサーバ2aが、ノードサーバ2bが担当するセッションのメッセージを受信した場合、ノードサーバ2aのノード確認部17は、ノードサーバ2bの機能が正常に動作しているか否かを判断する。
図7は、記憶部3aに記憶されているセッション担当ノード情報の例を示す図である。図7に示す例では、セション担当ノード情報は、統合セッションIDと、SIPセッションIDと、HTTPセッションIDとが対応付けられたセッションテーブル(図7(a))と、統合セッションIDとノードIDとが対応付けられた担当ノードテーブル(図7(b))から構成されている。これらの情報は、例えば、ノードサーバ2aが、ユーザ端末からデータ通信を開始する旨のHTTPメッセージまたはSIPメッセージを受信したときに生成され、記憶される。
ノード確認部17は、例えば、受信したHTTPメッセージに含まれるHTTPセッションIDと一致するHTTPセッションIDを図7(a)に示すセッション担当ノード情報のセッションテーブルから見つけ出し、そのHTTPセッションIDに対応する統合セションIDを取得する。ノード確認部17は、取得した統合セションIDと一致する統合セションIDを図7(b)に示すセション担当ノード情報の担当ノードテーブルから見つけ出し、その統合セションIDに対応するノードIDを取得する。さらに、ノード確認部17は、取得したノードIDと一致するノードIDをノード生死情報(図6)から見つけ出し、そのノードIDに対応する生死フラグを参照することにより、受け取ったHTTPメッセージのセッションを担当するノードサーバの生死を判断することができる。
ノード振替部19は、記憶部3aのセッション担当ノード情報の更新およびHTTPロードバランサ5aまたはSIPロードバランサ5bへの更新したセッション担当ノード情報の送信を行う。HTTPロードバランサ5aまたはSIPロードバランサ5bの更新部は、送られてきたセッション担当ノード情報を基に、それぞれの記憶部6a、6bに記憶されているセッション担当ノード情報を更新する。
ノード振替部19は、例えば、記憶部3aのセッション担当ノード情報において、所定のノードIDを、代替ノードサーバのノードIDに変更することで、セッション担当ノード情報を更新する。その場合、ノード振替部19は、変更したノードIDと、それに対応するSIPセッションまたはHTTPセッションIDとをセッション担当ノード情報としてSIPロードバランサ5bまたはHTTPロードバランサ5bへ送信する。
ノード振替部19によって変更されたノードIDと、それに対応するHTTPセッションIDとを受信したHTTPロードバランサ5aの更新部52は、受信したノードIDとHTTPセッションIDに基づいて、記憶部6aに記憶されているセッション担当ノード情報を更新する。例えば、更新部52は、そのHTTPセッションIDに対応するノードIDを、受信したノードIDに変更する。
ノード振替部19によって変更されたノードIDと、それに対応するSIPセッションIDとを受信したSIPロードバランサ5bの更新部も同様に、受信したノードIDとSIPセッションIDとに基づいて、記憶部6bに記憶されているセッション担当ノード情報を更新する。例えば、前記更新部は、受信したSIPセッションIDに対応するノードIDを、受信したノードIDに変更する。
なお、図1に示すクラスタシステムが有するノードサーバは3台であるが、ノードサーバの台数はこれに限られない。また、図1に示すユーザ端末の数は、説明のため、実際よにも少なく描かれている。
(ノードサーバ2aの動作の例)
次に、ノードサーバ2aの動作について説明する。図8は、ノードサーバ2aの動作の例を示すフローチャートである。なお、ノードサーバ2b、2cの動作も図8と同様である。
図8に示すように、ノードサーバ2aが起動する(ステップS1)と、データ送受信部13が、ノード情報通信チャネルをオープンする(ステップS2)。ノード情報通信チャネルは、例えば、ノードサーバ2a、2b、2cの記憶部3a、3b、3cに記憶されたデータの同期を取るためのチャネルである。ノードサーバ2a、2b、2cのデータ送受信部13は、ノード情報通信チャネルを用いて、ノードサーバ2a、2b、2c間でデータを送受信する。
データ送受信部13は、他のノードサーバ2b、2cとノード生死情報の送受信を行い、記憶部3aのノード生死情報を更新する(ステップS3)。また、データ送受信部13は、他のノードサーバ2b、2cとセッション複製チャネル情報の送受信を行う(ステップS4)。なお、セッション複製チャネル情報は、定期的に送受信されることが好ましい。
SIP/HTTPアプリケーション実行部11は、HTTPロードバランサ5aまたはSIPロードバランサ5b(図8では、LBと記載している。)からのメッセージを受信するまで待機する(ステップS5)。メッセージを受信すると、SIP/HTTPアプリケーション実行部11は、受信したメッセージからSIPセッションIDまたはHTTPセッションIDを抽出し、セッション担当ノードのセッションテーブル(図7(a))を参照してセッションIDを取得する。(ステップS6)。データ送受信部13は、他のノードサーバ2b、2cとセッション担当ノード情報の送受信を行い、記憶部3aのセッション担当ノード情報を最新の情報に更新する(ステップS7)。
SIP/HTTPアプリケーション実行部11は、受信したメッセージがセッションの初回のメッセージか否かを判断し(ステップS8)、初回である場合は、受信したメッセージのセッションの担当を自ノードサーバ2aにするように記憶部3aのセッション担当ノード情報を更新し、更新したセッション担当ノード情報を、他のノードサーバ2b、2cに送信する(ステップS10)。その後、SIP/HTTPアプリケーション実行部11は、受信したメッセージに従ってアプリケーション処理を開始する(ステップS14)。
アプリケーション処理の一例として、Webページからの発呼機能を実現するための処理がある。例えば、HTTPメッセージを受信した場合の転送・保留の実行、SIPメッセージを受信した場合の呼状態情報の更新等がアプリケーション処理として行われる。
受信したメッセージがセッションの初回のメッセージでない場合(ステップS8でNoの場合)、SIP/HTTPアプリケーション実行部11は、受信したメッセージのセッションが、自ノードサーバ2aの担当のセッションか否かを、記憶部3aのセッション担当ノード情報を参照して判断する(ステップS9)。
受信したメッセージのセッションが自ノードサーバ2aの担当である場合は、SIP/HTTPアプリケーション実行部11がアプリケーション処理を開始する(ステップS14)。受信したメッセージのセッションが自ノードサーバ2aの担当でないと判断されるのは、例えば、以下のような場合である。
HTTPロードバランサ5aは、通常、HTTPメッセージが属する統合セッションを担当するノードサーバにHTTPメッセージを送信するので、ノードサーバが受信するHTTPメッセージは、自ノードサーバ2aが担当する統合セッションのHTTPメッセージである。しかし、例えば、HTTPロードバランサ5aがHTTPメッセージを送信した先のノードサーバが障害により停止していた場合、HTTPロードバランサ5aは、別のノードサーバに再度、HTTPメッセージを送信する。このHTTPメッセージを受信したノードサーバは、自ノードサーバの担当でない統合セッションのHTTPメッセージを受信することになる。このような場合に、ステップS9において、受信したメッセージの統合セッションが自ノードサーバ2aの担当でないと判断されることになる。
受信したHTTPメッセージの統合セッションが自ノードサーバ2aの担当でない場合(ステップS9でNoの場合)は、ノード確認部17が、前記セッションの担当ノードサーバの機能が正常に動作しているか否かを判断する(ステップS11)。これにより、統合セッションの担当ノードサーバが停止したために、自ノードサーバ2aの担当でない統合セッションのHTTPメッセージが送られてきたか否かが判断される。
担当ノードサーバが正常に動作していない場合は、ノード振替部19が、ノード振替処理を行う(ステップS12)。すなわち、担当ノードサーバが障害等により、停止していると判断されるので、前記統合セッションの担当ノードサーバを代替のノードサーバに切り替える処理が行われる。ノード振替処理の詳細については、後述する。
担当ノードサーバが正常に動作している場合は、ノード振替部19は、レスポンスにエラーを設定する(ステップS13)。SIP/HTTPアプリケーション実行部11が、エラーが設定されたレスポンスを、HTTPメッセージ送信元のHTTPロードバランサ5aに返送する。このレスポンスを受信したHTTPロードバランサ5aは、HTTPメッセージの送信先が、誤っていたと判断することができる。
アプリケーション処理が開始(ステップS14)された後、SIP/HTTPアプリケーション実行部11が、統合セッションで使われる情報、すなわち、セッション属性を変更すると、(ステップS15でYes)、記憶部3aのセッションデータが更新される。データ送受信部13は、更新されたセッションデータを他のノードサーバ2b、2cへ送信する(ステップS16)。これにより、ノードサーバ2b、2cの記憶部3b、3cのセッションデータも記憶部3aのセッションデータと同様に更新される。
アプリケーション処理が終了すると(ステップS17でYes)、SIP/HTTPアプリケーション実行部11は、正常終了のレスポンスをメッセージ送信元のHTTPロードバランサ5aへ返送する(ステップS18)。以上の処理が、ノードサーバ2aでメッセージが受信される度に繰り返される。
なお、ノードサーバ2aの処理は、図8に示すフローチャートに限られない。例えば、ノード生死情報テーブルの更新(ステップS3)、セッションチャネル情報の送受信(ステップS4)は、図8に示すタイミングで実行される必要はなく、随時行われてもよい。
(ノード振替処理の例)
ここで、ノード振替処理の例を説明する。図9は、ノード振替処理(図8のステップS12)の詳細な処理を示すフローチャートである。図9に示すノード振替処理は、一例として、ノードサーバ2aが、HTTPロードバランサ5aからHTTPメッセージを受信した際に、実行されるノード振替処理である。ここで示すノード振替処理は、障害により停止したノードサーバが処理していた統合セッションを、ノードサーバ2aに振り替える処理である。
まず、ノードサーバ2aのノード振替部19は、記憶部3aの統合セッション担当ノード情報を更新することによって、受信したHTTPメッセージの統合セッションを、例えば、自ノードサーバ2aの担当とする(ステップS121)。すなわち、自ノードサーバ2aを代替ノードサーバとする。
ノード振替部19は、例えば、受信したHTTPメッセージに含まれるHTTPセッションIDと一致するHTTPセッションIDを記憶部3aのセッション担当ノード情報のセッションテーブル(図7(a))から見つけ出し、そのHTTPセッションIDに対応する統合セッションIDを取得する。そして、担当ノードテーブル(図7(b))に記述される前記統合セッションIDの担当ノードIDを、自ノードサーバ2aのノードIDに更新する。なお、ここでは、代替ノードサーバを自ノードサーバ2aとする例を説明しているが、自ノードサーバ2aである必要はなく、他の正常に動作しているノードサーバを代替ノードサーバに用いることもできる。
データ送受信部13は、更新したノードIDおよび更新対象の統合セッションを示す統合セッションIDを、他のノードサーバ2b、2cに通知する(ステップS122)。これにより、他のノードサーバ2b、2cの記憶部3b、3cのうち正常に機能している記憶部に記憶されたセッション担当ノード情報は、統合セッションIDのセッションの担当ノードサーバがノードサーバ2aであることを示すように更新される。
ノード振替部19は、SIPロードバランサ5bへ、更新したノードIDおよび前記SIPセッションIDを送信する(ステップS123)。すなわち、ノード振替部19は、ノードサーバ2aが受信したHTTPメッセージの送信元であるHTTPロードバランサ5aとは異なるプロトコルでデータ通信を行うSIPロードバランサ5bに、代替ノードサーバを示すノードIDおよびSIPセッションIDを送信する。
一方、HTTPロードバランサ5aには、例えば、レスポンスの返送時(図8のステップS18)に、代替ノードサーバを示すノードIDと、前記HTTPセッションIDが送信される。したがって、HTTPロードバランサ5aと、SIPロードバランサ5bの双方に、前記ノードIDと前記HTTPセッションIDまたはSIPセッションIDが送信される。送信された前記ノードIDと前記HTTPセッションIDまたはSIPセッションIDは、それぞれの記憶部6a、6bに記憶される。その結果、HTTPロードバランサ5aの記憶部6aに記憶されているセッション担当ノード情報と、SIPロードバランサ5bの記憶部6bに記憶されているセッション担当ノード情報の内容が一致する。
すなわち、同一の統合セッションIDに対応するHTTPセッションIDとSIPセッションIDは、同一の担当ノードIDに対応付けられる。その結果、同一の統合セッションに対応するHTTPセッションおよびSIPセッションに属するメッセージは、同一のノードサーバに転送される。
これにより、HTTPロードバランサ5aおよびSIPロードバランサ5bは、前記統合セッションIDで示されるセッションに属するメッセージは、全て前記ノードIDのノードサーバ2aで処理されるように、HTTPメッセージまたはSIPメッセージを割り当てることができる。
なお、ここでは、ノード振替部19は、ロードバランサへ通知するセッション振り替え情報をSIP/HTTPセッションIDとノードIDをペアにして送信したが、統合セッションIDとノードIDをペアにして送信してもよい。この構成は、SIP/HTTPのセッションIDの一部に統合セッションIDをそのまま記入するなどの方法により、ロードバランサ5a、5bに統合セッションIDをSIP/HTTPプロトコルメッセージから取り出す仕組みを作成しておくことにより可能となる。またこの構成とした場合、ノードサーバで受信したメッセージが属する統合セッションIDを図7(a)で示したセッションテーブルを参照することなく、直接取得することができる。
(ユーザ端末からのメッセージ受信時におけるHTTPロードバランサ5aの動作の例)
次に、HTTPロードバランサ5aがユーザ端末7aからHTTPメッセージを受信した場合の動作の例について説明する。図10は、HTTPロードバランサ5aがユーザ端末7aからHTTPメッセージを受信して、HTTPメッセージをクラスタシステム1へ送信する処理の例を示すフローチャートである。
HTTPロードバランサ5aの負荷分散部51は、ユーザ端末7aからのHTTPメッセージを受信すると(ステップS21)、HTTPメッセージに含まれるHTTPセッションIDを抽出する(ステップS22)。
負荷分散部51は、抽出したHTTPセッションIDを含むエントリが、例えば、記憶部6aのセッション担当ノード情報に存在するか否かを判断し(ステップS23)、存在する場合は、そのエントリのノードIDが示すノードサーバにHTTPメッセージを送信する(ステップS26)。このとき、負荷分散部51は、HTTPセッションIDに対応する統合セッションIDを記憶部6aのセッション担当ノード情報中から取得してHTTPメッセージに付加してもよい。
セッション担当ノード情報にステップS22で抽出したHTTPセッションIDを含むエントリが存在しない場合(ステップS23でNoの場合)、負荷分散部51は、送信先のノードサーバを例えば、ランダムに決定する(ステップS24)。負荷分散部51は、決定したノードサーバのノードIDを、HTTPセッションIDと対応付けて記憶部6aのセッション担当ノード情報に登録する(ステップS25)。負荷分散部51は、ステップS24で決定したノードサーバにHTTPメッセージを送信する(ステップS26)。
負荷分散部51は、HTTPメッセージを送信したノードサーバからのレスポンスを待ち、正常終了を示すレスポンスを受信したら、ユーザ端末7aへ処理結果を通知し(ステップS31)、再びユーザ端末7aまたは7bからのHTTPメッセージの到着を待つ。
例えば、HTTPメッセージを送信したノードサーバが障害により停止していた場合、負荷分散部51は、エラーを示すレスポンスを受信する(ステップS27でNo)。この場合、負荷分散部51は、送信先のノードサーバを変更して、別のノードサーバへHTTPメッセージを送信する(ステップS28)。負荷分散部51は、正常終了のレスポンスを受信するまで、送信先のノードサーバを変更してHTTPメッセージを送信する処理(ステップS28)を繰り返す。負荷分散部51は、正常終了のレスポンスを受信した場合(ステップS29でYesの場合)、HTTPメッセージを送信したノードサーバのノードIDを、HTTPセッションIDと対応付けて記憶部6aのセッション担当ノード情報に登録する(ステップS30)。
なお、図示しないが、負荷分散部51は、所定回数ステップS28の処理を繰り返してもエラーレスポンスしか受信できない場合は、ステップS28の繰り返しを終了し、エラーを示す処理結果をユーザ端末に通知してもよい。また、負荷分散部51は、ノードサーバが正常に動作しているか否かを示す情報を記憶部6aに記憶しておき、正常に動作しているノードサーバにのみHTTPメッセージを送信するようにしてもよい。
また、SIPロードバランサ5bのユーザ端末からのメッセージ受信時における動作も図10に示した処理と同様とすることができる。
(ノードサーバ2aからのメッセージ受信時におけるHTTPロードバランサ5aの動作の例)
次に、HTTPロードバランサ5aがノードサーバからメッセージを受信した場合の動作の例について説明する。図11は、HTTPロードバランサ5aがノードサーバからHTTPメッセージを受信する処理の例を示すフローチャートである。HTTPロードバランサ5aがノードサーバからメッセージを受信する場合として、例えば、ノードサーバのノード振替部19が、代替ノードサーバのノードIDおよび代替ノードサーバが担当するセッションのHTTPセッションIDをHTTPロードバランサ5aへ送信する場合がある(図9のステップS123)。
HTTPロードバランサ5aは、ノードサーバからメッセージを受信すると(ステップS41)、メッセージからHTTPセッションIDおよびノードIDを抽出する(ステップS42)。また、更新部52は、抽出したHTTPセッションIDおよびノードIDに基づいて、記憶部6aのセッション担当ノード情報を更新する(ステップS43)。例えば、更新部52は、ステップS42で抽出されたHTTPセッションIDに対応するノードIDを、ステップS42で抽出されたノードIDに変更する。
セッション担当ノード情報に、ステップS42で抽出されたHTTPセッションIDが存在しなければ、ステップS43で抽出されたHTTPセッションIDおよびノードIDが新たに登録される。
HTTPロードバランサ5aは、受信したメッセージが、ノードサーバのノード振替部19からのノード振替通知でない場合(ステップS44でNoの場合)、通常リクエストをクライアントへ送信する。
なお、SIPロードバランサ5bが、ノードサーバからメッセージを受信した場合も、図11に示す処理と同様の処理を行うことができる。
(実施の形態2)
実施の形態1では、ノード振替部19は、ノード振替処理(図8のステップS12)の時に、メッセージの送信元ロードバランサではないロードバランサへ代替ノードサーバのノードIDとHTTP/SIPセッションIDを通知していた(図9のステップS123)。これに対し、本実施形態では、ノード振替部19は、ノード振替処理の時ではなく、ノード振替処理の後、メッセージの送信元ロードバランサではないロードバランサからアクセスがあった時点で、そのアクセスに対するリダイレクト命令として前記通知を行う。
図12は、本実施形態におけるノードサーバ2aの動作の例を示すフローチャートである。図12に示す処理が、図8に示す処理と異なる点は、ステップS51とステップS52である。
ステップS11において、ノード確認部17が、セッションの担当ノードサーバの機能が正常に動作しているか否かを判断する。その結果、担当ノードサーバの機能が正常に動作していない場合(ステップS11でNoの場合)は、ノード振替部19は、受信したメッセージのセッションを担当するノードサーバが自ノードサーバ2aになるように、記憶部3aのセッション担当ノード情報を更新する。また、データ送受信部13は、更新されたセッション担当ノード情報を、他のノードサーバ2b、2cに通知する。すなわち、図9に示すステップS121およびステップS122の処理が実行される。
すなわち、障害等により、担当ノードサーバの機能が停止している場合には、セッション担当ノードサーバを代替ノードサーバに変更する更新が、セッション担当ノード情報に対してなされる。
担当ノードサーバの機能が正常に動作している場合(ステップS11でYesの場合)は、SIP/HTTPアプリケーション実行部11は、その担当ノードサーバのノードIDと前記セッションのHTTP/SIPセッションIDとをペアにしたリダイレクト応答を生成し、レスポンスに設定する(ステップS52)。リダイレクト応答が設定されたレスポンスは、メッセージ送信元のロードバランサへ送信される。
図13は、本実施形態におけるSIPロードバランサ5bがユーザ端末8aからSIPメッセージを受信して、SIPメッセージをクラスタシステム1へ送信する処理の例を示すフローチャートである。図13に示す処理が、図10に示す処理と異なるステップは、ステップS53である。
ノードサーバへ送信したSIPメッセージのレスポンスにリダイレクト命令が含まれている場合、ステップS27でNoとなる。SIPロードバランサ5bは、リダイレクト応答に含まれるノードIDのノードサーバに再度SIPメッセージを送信する(ステップS53)。リダイレクト応答には、正常に機能しているノードサーバのノードIDが含まれているので、再度のSIPメッセージ送信のレスポンスは、正常終了する可能性が高い。
これにより、例えば、ノードサーバ2aが、HTTPロードバランサ5aからHTTPメッセージを受信した際に、図12のステップS51で統合セッションを担当するノードサーバが代替ノードサーバに変更されるとする。この時点で、SIPロードバランサ5bは、そのセッションの担当ノードサーバが、代替ノードサーバに変更されたことを示す情報を得ていない。その状態で、ノードサーバ2aが、SIPロードバランサ5bからSIPメッセージを受信すると、その代替ノードサーバのノードIDをリダイレクト応答に含めてレスポンスとして、SIPロードバランサ5bへ返信されることになる(図12のステップS52)。その結果、ノードサーバ2aは、SIPロードバランサ5bからのメッセージ受信時に、代替ノードサーバへのリダイレクト指示をSIPロードバランサ5bへ送信することができる。その結果、効率的なセッション操作が行われる。
本発明は、複数のノードサーバのうち、一部のノードサーバが障害等により停止しても、複数のロードバランサからのメッセージを効率よく処理することができるクラスタリングシステムとして利用可能である。
本実施形態におけるクラスタシステムの構成を示す機能ブロック図である。 ノードサーバ2aの構成の例を示す機能ブロック図である。 HTTPロードバランサ5aの構成の例を示す機能ブロック図である。 セッションデータの構成の例を表す図である。 (a)は、HTTPロードバランサ5aの記憶部6aに記憶されているセッション担当ノード情報の例を示す図である。(b)は、SIPロードバランサ5bの記憶部6bに記憶されているセッション担当ノード情報の例を示す図である。 ノード生死情報のデータ構造の例を示す図である。 (a)は、記憶部3aのセッション担当ノード情報におけるセッションテーブルの例を示す図である。(b)は、記憶部3aのセッション担当ノード情報における担当ノードテーブルの例を示す図である。 ノードサーバ2aの動作の例を示すフローチャートである。 ノード振替処理の詳細な処理を示すフローチャートである。 HTTPロードバランサ5aがユーザ端末7aからHTTPメッセージを受信して、HTTPメッセージをクラスタシステム1へ送信する処理の例を示すフローチャートである。 HTTPロードバランサ5aがノードサーバからHTTPメッセージを受信する処理の例を示すフローチャートである。 本実施形態におけるノードサーバ2aの動作の例を示すフローチャートである。 本実施形態におけるSIPロードバランサ5bがユーザ端末8aからSIPメッセージを受信して、SIPメッセージをクラスタシステム1へ送信する処理の例を示すフローチャートである。 クラスタリングを利用したWWWシステムの構成の概略を示す図である。 SIPサーバとWWWサーバを連携する機能を持つSIP/HTTP連携システムにおけるクラスタリング構成の概略を示す図である。
符号の説明
1 クラスタシステム
2a ノードサーバ
3a、3b、6a、6b 記憶部
5a、5b ロードバランサ
7a、7b、8a、8b ユーザ端末
10 クラスタ管理部
11 アプリケーション
13 データ送受信部
15 ノード監視部
17 ノード確認部
19 ノード振替部
51 負荷分散部
52 更新部
90 システム
91a、91b、91c ノードサーバ
92a、92b、92c 記憶部
93 ロードバランサ
94a、94b、98a、98b ユーザ端末
95a、95b、95c ノードサーバ
96a、96b、96c 記憶部
97 ロードバランサ
99 連携システム

Claims (7)

  1. 複数のロードバランサに接続され、前記複数のロードバランサそれぞれにアクセスする複数のユーザ端末からのメッセージを処理することにより、前記複数のユーザ端末のデータ通信を可能にするノードサーバを複数有するクラスタシステムであって、
    前記複数のノードサーバのそれぞれは、
    同一ユーザ端末の一連のデータ通信であるセッションを識別するセッションIDと前記セッションIDで示されるセッションに属するメッセージの処理を行う担当ノードサーバとを対応付けるセッション担当ノード情報と、前記複数のノードサーバそれぞれの機能が正常に動作しているか否かを示すノード生死情報とを記憶する記憶部にアクセス可能であり、
    前記複数のロードバランサのうちいずれか1つのロードバランサからセッションIDを含むメッセージを受け取った場合、前記セッション担当ノード情報および前記ノード生死情報を用いて、前記メッセージに含まれる前記セッションIDのセッションを担当するノードサーバの機能が正常に動作しているか否かを判断するノード確認部と、
    前記ノード確認部が、前記セッションを担当するノードサーバの機能が正常に動作していないと判断した場合、前記セッションの担当ノードサーバを代替ノードサーバに変更するように前記セッション担当ノード情報を更新し、前記複数のロードバランサに、前記セッションを示すデータと、前記代替ノードサーバを示すデータとを送信するノード振替部とを備えるクラスタシステム。
  2. 前記ノード振替部は、前記メッセージを送信したロードバランサ以外のロードバランサから前記ノードサーバに対して前記セッションに関するアクセスがあった後に、前記アクセスがあったロードバランサに前記セッションのセッションIDと、前記代替ノードサーバを示すデータとを送信する請求項1に記載のクラスタシステム。
  3. 異なる通信プロトコルでデータ通信を行う複数のロードバランサに接続され、前記複数のロードバランサそれぞれにアクセスする、通信プロトコルの異なる複数のユーザ端末からのメッセージの処理することにより、通信プロトコルの異なる前記複数のユーザ端末間のデータ通信を可能にするノードサーバを複数有するクラスタシステムであって、
    前記複数のノードサーバのそれぞれは、
    通信プロトコルの異なるユーザ端末同士の一連のデータ通信であるセッションを識別するセッションIDと前記セッションIDで示されるセッションに関する処理を行う担当ノードサーバとを対応付けるセッション担当ノード情報と、前記複数のノードサーバそれぞれの機能が正常に動作しているか否かを示すノード生死情報とを記憶する記憶部にアクセス可能であり、
    前記複数のロードバランサのうちいずれか1つのロードバランサから送信されたメッセージを受け取った場合、前記セッション担当ノード情報および前記ノード生死情報を用いて、前記メッセージが属するセッションを担当するノードサーバの機能が正常に動作しているか否かを判断するノード確認部と、
    前記ノード確認部が、前記セッションを担当するノードサーバの機能が正常に動作していないと判断した場合、前記セッションの担当ノードサーバを代替ノードサーバに変更するように前記セッション担当ノード情報を更新し、前記メッセージを送信したロードバランサとは通信プロトコルが異なる他のロードバランサに、前記セッションを示すデータと、前記代替ノードサーバを示すデータとを送信するノード振替部とを備えるクラスタシステム。
  4. 前記複数のロードバランサは、HTTPプロトコルでデータ通信を行うロードバランサと、SIPプロトコルでデータ通信を行うロードバランサとを含む請求項3に記載のクラスタシステム。
  5. 請求項1に記載のクラスタシステムに接続された前記ロードバランサであって、
    セッションIDと、当該セッションIDで示されるセッションに関する処理を行う担当ノードサーバとを対応付けるセッション担当ノード情報を記憶する記憶部と、
    前記複数のユーザ端末からのメッセージを受信して、前記メッセージからセッションIDを取得し、前記セッションIDおよび前記セッション担当ノード情報に基づいて決定されるノードサーバへ前記メッセージを割り当てる負荷分散部と、
    前記ノードサーバが備える前記ノード振替部から前記セッションを示すデータと、前記代替ノードサーバを示すデータが送信された場合に、前記送信されたデータに基づいて、前記記憶部に記憶された担当セッションノード情報を更新する更新部とを備えるロードバランサ。
  6. 複数のロードバランサに接続され、前記複数のロードバランサそれぞれにアクセスする複数のユーザ端末からメッセージを処理することにより、前記複数のユーザ端末のデータ通信を可能にするノードサーバを複数有するクラスタシステムにおいて、前記ノードサーバによって行われるノード振替方法であって、
    前記複数のノードサーバのそれぞれが、同一ユーザ端末の一連のデータ通信であるセッションを識別するセッションIDと、前記セッションIDで示されるセッションに関する処理を行う担当ノードサーバとを対応付けるセッション担当ノード情報と、前記複数のノードサーバそれぞれの機能が正常に動作しているか否かを示すノード生死情報とを記憶する工程と、
    前記複数のノードサーバのいずれか1つのノードサーバが、前記複数のロードバランサのうちいずれか1つのロードバランサから送信されたメッセージを受け取った場合、前記セッション担当ノード情報および前記ノード生死情報を用いて、前記メッセージが属する記セッションを担当するノードサーバの機能が正常に動作しているか否かを判断するノード確認工程と、
    前記ノードサーバが、前記ノード確認工程で、前記セッションを担当するノードサーバの機能が正常に動作していないと判断された場合、前記セッションの担当ノードサーバを代替ノードサーバに変更するように前記セッション担当ノード情報を更新し、前記複数のロードバランサに、前記セッションを示すデータと、前記代替ノードサーバを示すデータを送信するノード振替工程とを有するノード振替方法。
  7. 複数のロードバランサに接続され、前記複数のロードバランサそれぞれにアクセスする複数のユーザ端末からメッセージを処理することにより、前記複数のユーザ端末のデータ通信を可能にするノードサーバを複数有するクラスタシステムにおいて、前記ノードサーバに処理を実行させるノード振替プログラムであって、
    前記ノードサーバの記憶部に、同一ユーザ端末間の一連のデータ通信であるセッションを識別するセッションIDと、前記セッションIDで示されるセッションに関する処理を行う担当ノードサーバとを対応付けるセッション担当ノード情報と、前記複数のノードサーバそれぞれの機能が正常に動作しているか否かを示すノード生死情報とを記憶する処理と、
    前記ノードサーバが、前記複数のロードバランサのうちいずれか1つのロードバランサから送信されたメッセージを受け取った場合、前記セッション担当ノード情報および前記ノード生死情報を用いて、前記メッセージが属するセッションを担当するノードサーバの機能が正常に動作しているか否かを判断するノード確認処理と、
    前記ノード確認処理で、前記セッションを担当するノードサーバの機能が正常に動作していないと判断された場合、前記セッションの担当ノードサーバを代替ノードサーバに変更するように前記セッション担当ノード情報を更新し、前記複数のロードバランサに、前記セッションを示す情報と、前記代替ノードサーバを示すデータとを送信するノード振替処理と前記ノードサーバに実行させるノード振替プログラム。
JP2005347071A 2005-11-30 2005-11-30 クラスタシステム、ロードバランサ、ノード振替方法およびノード振替プログラム Expired - Fee Related JP4616159B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005347071A JP4616159B2 (ja) 2005-11-30 2005-11-30 クラスタシステム、ロードバランサ、ノード振替方法およびノード振替プログラム
US11/391,368 US20070121490A1 (en) 2005-11-30 2006-03-29 Cluster system, load balancer, node reassigning method and recording medium storing node reassigning program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005347071A JP4616159B2 (ja) 2005-11-30 2005-11-30 クラスタシステム、ロードバランサ、ノード振替方法およびノード振替プログラム

Publications (2)

Publication Number Publication Date
JP2007156569A true JP2007156569A (ja) 2007-06-21
JP4616159B2 JP4616159B2 (ja) 2011-01-19

Family

ID=38087330

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005347071A Expired - Fee Related JP4616159B2 (ja) 2005-11-30 2005-11-30 クラスタシステム、ロードバランサ、ノード振替方法およびノード振替プログラム

Country Status (2)

Country Link
US (1) US20070121490A1 (ja)
JP (1) JP4616159B2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012060276A1 (ja) * 2010-11-01 2012-05-10 かもめエンジニアリング株式会社 アクセス制御方法、アクセス制御装置およびアクセス制御プログラム
JP2013206083A (ja) * 2012-03-28 2013-10-07 Nippon Telegraph & Telephone East Corp 運用サイト切り替えシステム、運用サイト切り替え装置、運用サイト切り替え方法及び運用サイト切り替えプログラム
JP2013206082A (ja) * 2012-03-28 2013-10-07 Nippon Telegraph & Telephone East Corp 運用システム切り替え装置、運用システム切り替え方法及び運用システム切り替えプログラム
WO2013168465A1 (ja) * 2012-05-08 2013-11-14 ソニー株式会社 情報処理装置、情報処理方法およびプログラム
US9521586B2 (en) 2012-03-02 2016-12-13 Ntt Docomo, Inc. Mobile communication system, communication system, node, flow-control network, and communication-control method
JP2017183888A (ja) * 2016-03-29 2017-10-05 日本電信電話株式会社 信号振り分けシステム及び信号振り分け方法

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100514940C (zh) * 2006-10-23 2009-07-15 华为技术有限公司 对网络通信端口重定向的方法和网络通信系统
US8929360B2 (en) * 2006-12-07 2015-01-06 Cisco Technology, Inc. Systems, methods, media, and means for hiding network topology
US8775641B2 (en) * 2007-01-31 2014-07-08 Oracle International Corporation Self invitation to initiate sessions, start processes, or generate outbound messages
US7969991B2 (en) * 2007-04-23 2011-06-28 Mcafee, Inc. Session announcement system and method
CN101127766B (zh) * 2007-09-24 2010-06-09 中兴通讯股份有限公司 基于sip协议的消息处理方法、装置及ip通信系统
CN101562784B (zh) * 2008-04-14 2012-06-06 华为技术有限公司 报文分发方法、设备及系统
WO2012070155A1 (ja) * 2010-11-26 2012-05-31 富士通株式会社 管理システム、管理装置、管理方法および管理プログラム
CN103262046A (zh) * 2010-12-10 2013-08-21 日本电气株式会社 服务器管理装置、服务器管理方法和程序
US9065831B2 (en) * 2011-03-01 2015-06-23 Cisco Technology, Inc. Active load distribution for control plane traffic using a messaging and presence protocol
US9235447B2 (en) 2011-03-03 2016-01-12 Cisco Technology, Inc. Extensible attribute summarization
US8775628B2 (en) 2011-08-31 2014-07-08 Metaswitch Networks Ltd. Load balancing for SIP services
KR101609812B1 (ko) 2012-04-09 2016-04-20 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 프로세싱 로드 분배
US9167041B2 (en) * 2012-06-01 2015-10-20 International Business Machines Corporation Maintaining session initiation protocol application session affinity in SIP container cluster environments
US9197546B2 (en) * 2013-08-06 2015-11-24 Oracle International Corporation System and method for providing a messaging cluster with hybrid partitions
US9444735B2 (en) 2014-02-27 2016-09-13 Cisco Technology, Inc. Contextual summarization tag and type match using network subnetting
US9680818B2 (en) * 2014-10-15 2017-06-13 Barracuda Network, Inc. Method and apparatus for bulk authentication and load balancing of networked appliances
US11165868B2 (en) * 2017-03-30 2021-11-02 Microsoft Technology Licensing, Llc Systems and methods for achieving session stickiness for stateful cloud services with non-sticky load balancers
CN111491007B (zh) * 2020-03-04 2023-08-18 北京中盾安全技术开发公司 Sip中心信令控制服务负载均衡方法及其负载均衡器

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05346868A (ja) * 1992-04-07 1993-12-27 Nec Corp オンライン業務切り換え方式
JPH1027146A (ja) * 1996-07-11 1998-01-27 Kyushu Nippon Denki Software Kk 通信処理装置及び通信処理方法
JP2003174473A (ja) * 2001-12-06 2003-06-20 Fujitsu Ltd サーバ負荷分散システム
JP2004030204A (ja) * 2002-06-25 2004-01-29 Jmnet Inc 負荷分散装置及びそれに接続するノードコンピュータ
JP2005135125A (ja) * 2003-10-30 2005-05-26 Hitachi Ltd フェイルオーバ処理方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5329578A (en) * 1992-05-26 1994-07-12 Northern Telecom Limited Personal communication service with mobility manager
US5742905A (en) * 1994-09-19 1998-04-21 Bell Communications Research, Inc. Personal communications internetworking
US6167261A (en) * 1997-02-27 2000-12-26 At&T Wireless Svcs. Inc. Wireless communication service management
US5978568A (en) * 1997-03-11 1999-11-02 Sequel Technology Corporation Method and apparatus for resolving network users to network computers
US6310889B1 (en) * 1998-03-12 2001-10-30 Nortel Networks Limited Method of servicing data access requests from users
AU8440998A (en) * 1998-06-29 2000-01-17 Nokia Networks Oy Method and system of providing a service to a subscriber
US6470378B1 (en) * 1999-03-31 2002-10-22 Intel Corporation Dynamic content customization in a clientserver environment
US6775267B1 (en) * 1999-12-30 2004-08-10 At&T Corp Method for billing IP broadband subscribers
US7047301B2 (en) * 2000-01-31 2006-05-16 F5 Networks, Inc. Method and system for enabling persistent access to virtual servers by an LDNS server
US7031951B2 (en) * 2000-07-19 2006-04-18 Convergys Information Management Group, Inc. Expert system adapted dedicated internet access guidance engine
US20020103873A1 (en) * 2001-02-01 2002-08-01 Kumaresan Ramanathan Automating communication and information exchange
US7243351B2 (en) * 2002-12-17 2007-07-10 International Business Machines Corporation System and method for task scheduling based upon the classification value and probability
US20050086306A1 (en) * 2003-03-14 2005-04-21 Lemke Ralph E. Providing background delivery of messages over a network
JP4190455B2 (ja) * 2004-05-11 2008-12-03 富士通株式会社 負荷分散装置及びプログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05346868A (ja) * 1992-04-07 1993-12-27 Nec Corp オンライン業務切り換え方式
JPH1027146A (ja) * 1996-07-11 1998-01-27 Kyushu Nippon Denki Software Kk 通信処理装置及び通信処理方法
JP2003174473A (ja) * 2001-12-06 2003-06-20 Fujitsu Ltd サーバ負荷分散システム
JP2004030204A (ja) * 2002-06-25 2004-01-29 Jmnet Inc 負荷分散装置及びそれに接続するノードコンピュータ
JP2005135125A (ja) * 2003-10-30 2005-05-26 Hitachi Ltd フェイルオーバ処理方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012060276A1 (ja) * 2010-11-01 2012-05-10 かもめエンジニアリング株式会社 アクセス制御方法、アクセス制御装置およびアクセス制御プログラム
JPWO2012060276A1 (ja) * 2010-11-01 2014-05-12 かもめエンジニアリング株式会社 アクセス制御方法、アクセス制御装置およびアクセス制御プログラム
JP5538560B2 (ja) * 2010-11-01 2014-07-02 かもめエンジニアリング株式会社 アクセス制御方法、アクセス制御装置およびアクセス制御プログラム
US8850047B2 (en) 2010-11-01 2014-09-30 Kamome Engineering, Inc. Access control method, access control apparatus, and access control program
US9521586B2 (en) 2012-03-02 2016-12-13 Ntt Docomo, Inc. Mobile communication system, communication system, node, flow-control network, and communication-control method
JP2013206083A (ja) * 2012-03-28 2013-10-07 Nippon Telegraph & Telephone East Corp 運用サイト切り替えシステム、運用サイト切り替え装置、運用サイト切り替え方法及び運用サイト切り替えプログラム
JP2013206082A (ja) * 2012-03-28 2013-10-07 Nippon Telegraph & Telephone East Corp 運用システム切り替え装置、運用システム切り替え方法及び運用システム切り替えプログラム
WO2013168465A1 (ja) * 2012-05-08 2013-11-14 ソニー株式会社 情報処理装置、情報処理方法およびプログラム
JP2017183888A (ja) * 2016-03-29 2017-10-05 日本電信電話株式会社 信号振り分けシステム及び信号振り分け方法

Also Published As

Publication number Publication date
US20070121490A1 (en) 2007-05-31
JP4616159B2 (ja) 2011-01-19

Similar Documents

Publication Publication Date Title
JP4616159B2 (ja) クラスタシステム、ロードバランサ、ノード振替方法およびノード振替プログラム
US10673938B2 (en) Method and system for load balancing over a cluster of authentication, authorization and accounting (AAA) servers
US7844851B2 (en) System and method for protecting against failure through geo-redundancy in a SIP server
US7225356B2 (en) System for managing operational failure occurrences in processing devices
US7739391B2 (en) Gateway for wireless mobile clients
CN110311983B (zh) 服务请求的处理方法、装置、系统、电子设备及存储介质
JP5863942B2 (ja) ウィットネスサービスの提供
US9058213B2 (en) Cloud-based mainframe integration system and method
EP1987657B1 (en) Scalable wireless messaging system
US20070150602A1 (en) Distributed and Replicated Sessions on Computing Grids
US20060212532A1 (en) Method and Apparatus for Proxying Initial Client Requests to Support Asynchronous Resource Initialization
CN108369608A (zh) 幂等服务器群集
CN112671554A (zh) 一种节点故障处理方法及相关装置
KR100788631B1 (ko) 인터넷 프로토콜-기반 통신 시스템에서 리소스 풀링
JP6036380B2 (ja) 通信システム
JPWO2009034994A1 (ja) 負荷分散システム、サービス処理サーバ、負荷分散方法及び負荷分散プログラム
JP2007249659A (ja) システム切替方法、その計算機システム及びプログラム
KR101382177B1 (ko) 동적 메시지 라우팅 시스템 및 방법
JP5658621B2 (ja) 信号振分複製先決定システム、信号振分複製先決定方法およびプログラム
JP4123440B2 (ja) オブジェクト指向のネットワーク分散型コンピューティングシステム、その負荷分散装置及びサーバ
WO2024023962A1 (ja) プロトコル中継装置、プロトコル中継システム、プロトコル中継方法、及びプロトコル中継プログラム
JP4038406B2 (ja) イベント共有システム、ホスト、イベント共有方法及びイベント共有プログラム
JP6631300B2 (ja) 通信制御システム、通信制御方法、通信制御プログラム、および、通信制御装置
JP2004248228A (ja) サービス切替え装置、サービス提供ノード、通信システム、プログラムおよび該プログラムを格納した記録媒体
CN117857610A (zh) 数据通信方法和装置、计算机可读存储介质、电子设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080411

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100203

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100803

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101001

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20131029

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees