JP6008964B2 - 情報処理システム、方法およびプログラム - Google Patents

情報処理システム、方法およびプログラム Download PDF

Info

Publication number
JP6008964B2
JP6008964B2 JP2014520823A JP2014520823A JP6008964B2 JP 6008964 B2 JP6008964 B2 JP 6008964B2 JP 2014520823 A JP2014520823 A JP 2014520823A JP 2014520823 A JP2014520823 A JP 2014520823A JP 6008964 B2 JP6008964 B2 JP 6008964B2
Authority
JP
Japan
Prior art keywords
server
communication
servers
identification information
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014520823A
Other languages
English (en)
Other versions
JPWO2013186837A1 (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.)
Murakumo Corp
Original Assignee
Murakumo Corp
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 Murakumo Corp filed Critical Murakumo Corp
Publication of JPWO2013186837A1 publication Critical patent/JPWO2013186837A1/ja
Application granted granted Critical
Publication of JP6008964B2 publication Critical patent/JP6008964B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • 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
    • 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/1029Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
    • 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

Landscapes

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

Description

本発明に係る技術は、ロードバランサを有する情報処理に関する。
従来、ロードバランサにおける負荷分散処理によって選択されたアプリケーションサーバが、レスポンスパケットにセッションデータを付加してロードバランサへ返送し、ロードバランサが、レスポンスパケットに付加されているセッションデータを記憶し、レスポンスパケットからセッションデータを削除してクライアント端末へ転送するセッションデータ共有方法がある(特許文献1を参照)。
特開2010−79523号公報
従来、クライアントとサーバとの間の通信を識別するために、セッションID等の通信識別情報が用いられている。また、複数のサーバを用いてクライアントに対してサービスを提供する場合に、通信を維持する目的で、通信識別情報を複数のサーバ間で複製することが行われている。
しかし、全てのサーバに対して通信識別情報を複製する方法では通信の量や複製回数等の面から負荷が大きく、一方、一部のサーバに対して通信識別情報を複製する方法では、通信識別情報を保持していないサーバに通信が割り当てられてしまう可能性がある。
本発明では、上記した課題に鑑み、複数のサーバを用いてクライアントに対してサービスを提供する場合に、より少ない負荷で通信の維持を図ることを課題とする。
本発明に係る情報処理システムの一側面は、複数のサーバの何れかにクライアントとの通信を割り当てることで該クライアントに対してサービスを提供し、前記通信の割り当て先を決定するロードバランサを有する情報処理システムであって、前記複数のサーバのうち、前記ロードバランサによって前記通信が割り当てられた第一のサーバを特定するサーバ特定手段と、前記複数のサーバのうちの1または複数のサーバを、前記通信を識別するための通信識別情報の複製先である第二のサーバとして決定する複製先サーバ決定手段と、前記通信識別情報を、前記第二のサーバにおいて複製して保持させる複製手段と、前記第一のサーバを特定可能な情報を、前記第二のサーバに通知する通知手段と、を備える情報処理システムである。
また、前記複製先サーバ決定手段は、前記通信識別情報の一部または全部を、入力に対して再現性を有する所定のアルゴリズムに基づいて処理することで、前記第二のサーバを決定してもよい。
また、本発明に係る情報処理システムは、前記ロードバランサが前記第一のサーバ以外のサーバに通信を割り当てた場合に、前記通信の内容から抽出された前記通信識別情報を前記所定のアルゴリズムに基づいて処理することで前記第二のサーバを索出するサーバ索出手段を更に備えてもよい。
また、本発明に係る情報処理システムは、前記ロードバランサによって前記通信が前記第一のサーバに割り当てられた際に、前記第一のサーバにおいて前記通信識別情報を生成する通信識別情報生成手段を更に備えてもよい。
また、前記複製先サーバ決定手段は、1の前記第二のサーバが前記第一のサーバと同一であった場合、更に1以上のサーバを前記第二のサーバとして決定してもよい。
また、前記サーバは、夫々不揮発性の記憶装置を有し、前記複製先サーバ決定手段によって、複数のサーバが前記複製先のサーバとして決定された場合、少なくとも1のサーバは、前記通信識別情報を前記不揮発性の記憶装置に記録しなくてもよい。
また、前記複製先サーバ決定手段は、前記第一のサーバが前記通信識別情報の複製先として決定したサーバを、前記第二のサーバとして決定してもよい。
また、本発明は、情報処理装置、1または複数の情報処理装置を有する情報処理システム、コンピュータによって実行される方法、またはコンピュータに実行させるプログラムとしても把握することが可能である。また、本発明は、そのようなプログラムをコンピュータその他の装置、機械等が読み取り可能な記録媒体に記録したものでもよい。ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることが出来る記録媒体をいう。
本発明に係る情報処理によれば、複数のサーバを用いてクライアントに対してサービスを提供する場合に、より少ない負荷で通信の維持を図ることが可能となる。
実施形態に係るシステムのハードウェア構成の概略を示す図である。 実施形態に係るシステムの機能構成の概略を示す図である。 実施形態において用いられるConsistent Hashingによる複製先サーバの選択手法の概要を示す図である。 実施形態に係る、セッション情報管理処理の流れを示すフローチャート(1)である。 実施形態に係る、セッション情報管理処理の流れを示すフローチャート(2)である。 実施形態に係る、セッション情報管理処理の流れを示すフローチャート(3)である。
以下、本発明の実施の形態について、図面に基づいて説明する。なお、以下に説明する実施の形態は例示であって、本発明を以下に説明する具体的構成に限定するものではない。実施にあたっては、実施の形態毎に具体的構成が適宜採用されてよい。
<システムの構成>
図1は、本実施形態に係るシステムのハードウェア構成の概略を示す図である。本実施形態に係るシステムは、インターネット等のネットワークを介して互いに通信可能に接続された、複数のサーバ1およびロードバランサ2を備える。また本実施形態に係るシステムには、ネットワークを介して、クライアント端末9が接続される。なお、サーバ1およびロードバランサ2は、夫々、単一の筐体によって構成されてもよいし、ネットワーク等を介して接続された複数の筐体によって構成されてもよい。
サーバ1は、CPU(Central Processing Unit)11、RAM(Random Access Memory)12およびROM(Read Only Memory)13等からなる制御部10と、不揮発性の補助記憶装置14と、入力装置15と、出力装置16と、ネットワークインターフェース17と、を備える情報処理装置である。但し、本発明の実施にあたって、本発明に係る情報処理装置は、上記した構成と同一の構成である必要はない。情報処理装置の具体的なハードウェア構成に関しては、実施の形態に応じて適宜構成要素の省略や置換、追加が可能である。
ロードバランサ2は、サーバ1と同様、CPU、RAMおよびROM等からなる制御部と、補助記憶装置と、入力装置と、出力装置と、ネットワークインターフェースと、を備える情報処理装置である(図示は省略する)。また、クライアント端末9は、サーバ1と同様、CPU、RAMおよびROM等からなる制御部と、補助記憶装置と、入力装置と、出力装置と、ネットワークインターフェースと、を備える情報処理装置である(図示は省略する)。
図2は、本実施形態に係るシステムの機能構成の概略を示す図である。本実施形態に係るサーバ1は、CPU11が、RAM12に展開された各種プログラムを解釈および実行して、サーバ1に備えられた各種ハードウェアを制御することで、サーバ特定部21、通信識別情報生成部(セッション情報生成部)22、複製先サーバ決定部23、複製部24、通知部25およびサーバ索出部26、を備える情報処理装置として機能する。また、本実施形態では、これらの機能がいずれも汎用のCPU11によって実行される例について説明するが、これらの機能は、その一部または全部が、1または複数の専用のプロセッサによって実現されてもよい。
本実施形態において、複数のサーバ1は、Webサイトを管理し、HTTPによるコンテンツ取得要求に応じてHTMLコンテンツを送信する機能を有するサーバである。サーバ1は、クライアント端末9からの要求に応じて、Webサイト中のコンテンツを配信する。但し、本実施形態では、サーバ1によって提供されるサービスの例としてWebサービスを挙げて説明しているが、本発明の実施にあたって、サーバ1はWebサービスを提供するためのサーバに限定されない。本発明は、その他のサービスを提供するためのサーバ群にも適用可能である。
本実施形態において、クライアント端末9からのWebサイトへの通信は、はじめにロードバランサ2によって受信される。ロードバランサ2は、クライアント端末9からの通信を受信すると、当該通信を複数のサーバ1の何れかに割り当てることで、Webサイトへの負荷を複数のサーバ1に分散する負荷分散装置である。本実施形態において用いられるロードバランサ2は、負荷分散先としてクライアント端末9からの通信を割り当てる先のサーバ1を、何らかの負荷分散アルゴリズムに従って決定する。基本的に、ロードバランサ2は、クライアント端末9とサーバ1との間のセッションを維持するために、同一のクライアント端末9からの通信を同一のサーバ1に割り当てる。但し、サーバ側の事情やロードバランサ側の事情により、同一のクライアント端末9からの通信がそれまでとは異なるサーバ1に割り当てられる可能性がある。ここで、サーバ側の事情としては、例えばサーバ1が落ちている場合等が挙げられる。ロードバランサ側の事情としては、ロードバランサが処理速度を向上させる目的等で割当先サーバを変更した場合や、ロードバランサの性能に問題がある場合等が挙げられる。
ロードバランサ2によってクライアント端末9からの通信を割り当てられたサーバ1は、少なくともクライアント端末9またはユーザを一意に特定可能なセッションIDを、クライアント端末9に対して発行する。以降、サーバ1は、セッションIDを用いて、クライアント端末9とサーバ1との間での通信を識別し、このセッションIDによって識別されるセッション情報を用いて、クライアント端末9とサーバ1との間での通信を管理する。このため、セッションIDの発行後は、サーバ1とクライアント端末9との間で送受信されるパケットには、セッションIDが含まれる。なお、セッションIDは、ユーザ端末やユーザとの通信を識別して、ユーザ端末やユーザ毎にサービスを提供するための識別子であり、本発明の通信識別子に相当する。
クライアント端末9は、URL(Uniform Resource Locator)に指定されたWebサイトに対してパケットを送信する機能、および、ロードバランサによって当該パケットの割当を受けたサーバ1から返信されたコンテンツを受信する機能を備える。また、クライアント端末9は、Webサーバから受信した、接続先のサーバ1との間の通信を管理するためのセッションIDを保持する。
本実施形態では、何れかのサーバ1によって発行されたセッションIDを含むセッション情報は、1または複数のサーバ1に対して複製される。ここで、セッション情報の複製先として決定されたサーバ1を、「複製先サーバ」と称する。セッション情報の複製先サーバの決定には、全てのサーバ間で共通するアルゴリズムが使用される。また、この際に用いられるアルゴリズムは、入力(本実施形態では、セッションID)に応じて選択されるサーバ1に再現性のあるアルゴリズムであればよい。このようなアルゴリズムを用いてサーバ1が複製先サーバとして決定されるため、セッションIDを用いて複製先サーバが決定された後、同アルゴリズムを、複製先サーバの索出に用いることが出来る。そして、本実施形態では、このようなアルゴリズムを利用した複製先サーバの選択手法として、Consistent Hashingによる複製先サーバの選択手法が用いられる。
図3は、本実施形態において用いられるConsistent Hashingによる複製先サーバの選択手法の概要を示す図である。Consistent Hasingでは、0から所定の数値n(例えば、2^32−1)までの連続した整数が円周上の同一方向回り(図では時計回り)に等間隔に定められた円(continuum)が用いられる。このため、continuum上を同一方向回り(時計回り)に辿っていくと、continuum上の数値は、円周上を進むに従って0から1ずつ増加し、continuumを一周することでnに到達すると、その次で0に戻る。本実施形態に係るWebサイトで用いられる複数のサーバ1には、この0からnまでの整数のうちの何れかが、サーバ識別子として割り当てられている。換言すれば、本システムにおいて用いられるサーバ1は、continuum上にマッピングされる。
サーバ1は、全てのサーバ間で共通するハッシュ演算アルゴリズムを用いることで、セッション情報の複製先サーバを決定する際や、セッション情報の複製先サーバを索出する際に、同一のセッションIDに対して一意のハッシュ値を得る。ここで、ハッシュ値は、セッションIDの一部または全部を入力値とするハッシュ演算を行うことで得られてもよいし、セッションIDとして0からnの範囲内のハッシュ値が用いられているような場合には、セッションIDがそのままcontinuum上の点を特定するためのハッシュ値として参照されてもよい。
まず、複製先サーバ決定部23またはサーバ索出部26は、求められたハッシュ値に対応するcontinuum上の点を開始地点として同一方向回り(図では時計回り)に探索を開始し、最初に発見されたサーバ1を、セッション情報の複製先として決定(または取得元として索出)する。複製先サーバを1つとする場合や、ここで索出されたサーバ1からセッション情報が取得出来た場合等には、ここで探索は終了する。しかし、複製先サーバを2つ以上とする場合や、ここで索出されたサーバ1からセッション情報が取得出来なかった場合等には、continuumの同一方向回り(図では時計回り)に探索が継続され、次に発見されたサーバ1が、更にセッション情報の複製先として決定(または取得元として索出)される。なお、探索中に、continuumの探索位置の値が限界値n(例えば2^32−1)を超えた場合、探索位置はcontinuumの開始地点(即ち、0)に戻り、探索が継続される。
<処理の流れ>
次に、図4から図6を用いて、本実施形態に係る処理の詳細を説明する。なお、本実施形態において説明される処理の具体的な内容および順序等は、実施する上での一例である。具体的な処理内容および順序等は、実施の形態に応じて適宜選択されてよい。
図4から図6は、本実施形態に係る、セッション情報管理処理の流れを示すフローチャートである。本フローチャートに示された処理は、クライアント端末9によって送信されたパケットが、ロードバランサ2に割当られたサーバ1によって受信されたことを契機として開始される。
ステップS101では、クライアント端末9からの通信が受信される。クライアント端末9によって送信されたパケットは、サーバ1によって受信される前に、ロードバランサ2によって受信される。ロードバランサ2は、クライアント端末9によって送信されたパケットを受信すると、複数のサーバ1の中から、所定の負荷分散アルゴリズムに従ってパケットの割当先となるサーバ1を決定し、決定されたサーバ1に対してパケットを転送する。このようにして、パケットは複数のサーバ1のうちの何れかのサーバ1にたどり着き、ロードバランサ2による通信の割当を受けたサーバ1は、クライアント端末9から送信されたパケットを受信する。以下、パケットを受信したサーバ1を「受信サーバ」と称する。その後、処理はステップS102へ進む。
ステップS102では、受信パケットにセッションIDが設定されているか否かが判定される。受信サーバは、ステップS101で受信されたパケットを参照して、当該パケットに、サーバ1とクライアント端末9との間の通信を識別するためのセッションIDが含まれているか否かを判定する。パケットにセッションIDが含まれている場合、換言すれば、既に何れかのサーバ1からクライアント端末9に対してセッションIDが発行済である場合、処理はステップS110へ進む。一方、セッションIDが含まれていない場合、換言すれば、送信元のクライアント端末9に対してセッションIDが未発行である場合、処理はステップS103へ進む。
ステップS103からステップS108の処理は、送信元のクライアント端末9に対してセッションIDが未発行である場合に、セッションIDを発行し、またこのセッションIDに係るセッション情報を他のサーバ1に複製するための処理である。
ステップS103では、オーナーが特定される。受信サーバのサーバ特定部21は、自身(受信サーバ)を、オーナーとして特定する。本実施形態において、オーナーとは、複数のサーバ1のうち、セッション情報の複製処理においてセッション情報の「オーナー」として扱われるサーバ1であり、本発明の「第一のサーバ」に相当する。本実施形態では、オーナーとして、ロードバランサによって通信が割り当てられたサーバ1であり、セッション情報の生成者である受信サーバが選定されるが、オーナーには、セッション情報を所有するサーバ1が指定されればよく、セッション情報の生成を行うサーバ1や受信サーバに限定されない。その後、処理はステップS104へ進む。
ステップS104およびステップS105では、セッション情報の生成および通知が行われる。受信サーバの通信識別情報生成部22は、パケットの送信元のクライアント端末9とサーバ1との間の通信を識別するための情報として、セッションIDを含むセッション情報を生成する(ステップS104)。そして、受信サーバは、生成されたセッション情報を、パケットの送信元クライアント端末9に通知する(ステップS105)。その後、処理はステップS106へ進む。
ステップS106では、セッションIDに基づいて複製先サーバが決定される。受信サーバの複製先サーバ決定部23は、上述したConsistent Hashingを用いて、複製先サーバを決定する。より具体的には、受信サーバは、セッションIDの一部または全部を入力値とするハッシュ演算を行い、ハッシュ値を得る。ここで用いられるハッシュ演算は、入力に対して再現性を有する。そして、サーバ1は、求められたハッシュ値に対応するcontinuum上の点を開始地点として探索を行い、発見された順に、所定の数のサーバ1を、複製先サーバとして決定する。複製先サーバは、本発明の「第二のサーバ」に相当する。その後、処理はステップS107へ進む。
なお、ステップS106では、オーナーと複製先サーバの重複の有無が判定されてもよい。受信サーバは、ステップS103で決定されたオーナーのサーバ識別子と、ステップS106で発見された1又は複数の複製先サーバのサーバ識別子と、を比較することで、オーナーと複製先サーバが重複しているか否かを判定する。オーナーと複製先サーバとが重複している(1の複製先サーバがオーナーと同一である)と判定された場合、複製先サーバ決定部23は、複製先サーバを再選定する。ここで、複製先サーバ決定部23は、求められたハッシュ値に対応するcontinuum上の点を開始地点として探索を行い、発見された順に、オーナーと重複しない所定の数のサーバ1を、複製先サーバとして決定する。即ち、本フローチャートに示された処理では、オーナーと重複しない所定の数の複製先サーバが選定されるまで、複製先サーバの決定処理が繰り返される。所定の数の複製先サーバの決定が完了した場合、処理はステップS107へ進む。
ステップS107およびステップS108では、セッション情報が複製先サーバに複製され、更にオーナーの識別子が複製先サーバに通知される。受信サーバの複製部24は、ステップS104で生成されたセッション情報を、ステップS106において決定された複製先サーバに対して送信することによって、セッション情報を複製先サーバに複製し、複製先サーバに保持させる(ステップS107)。
なお、複製先サーバが複数決定され、複数の複製先サーバに対してセッション情報が複製される場合、セッション情報を不揮発性の補助記憶装置14に保持する複製先サーバは、複数の複製先サーバのうちの一部(例えば、1台)であってよい。セッション情報を一部の複製先サーバにおいてのみ不揮発性の補助記憶装置14に保持させる場合、この一部の複製先サーバを除く他の複製先サーバは、セッション情報をRAM12に保持する。このようにすることで、セッション情報の複製のために用いる補助記憶装置14の領域を節約することが出来る。
そして、オーナーである受信サーバの通知部25は、continuumにおいて用いられる自身のサーバ識別子を、オーナーを特定可能な情報として、ステップS106において決定された複製先サーバに対して通知する(ステップS108)。オーナーのサーバ識別子が複製先サーバに通知されるため、複製先サーバは、セッション情報のオーナーであるサーバ1(セッション情報を生成したサーバ1)を知ることが出来る。なお、ステップS107におけるセッション情報の複製と、ステップS108におけるオーナー識別子の通知とは、別々のパケットによって行われてもよいし、同一のパケットによって行われてもよい。また、ステップS107とステップS108との処理順序は逆であってもよい。その後、本フローチャートに示された処理は終了する。
ステップS110では、受信サーバがセッション情報を保持しているか否かが判定される。受信パケットにセッションIDが設定されている場合、受信サーバは、自身が、受信したパケットに設定されているセッションIDに対応するセッション情報を保持しているか否かを判定する。ここで、受信サーバがセッション情報を保持していると判定された場合、受信サーバは、このセッション情報を用いてクライアント端末9との間で行われる通信内容を管理する。そして、処理はステップS117へ進む。一方、受信サーバがセッション情報を保持していない場合、処理はステップS111へ進む。
ステップS111からステップS115の処理は、受信されたパケットにセッションIDが設定されている(ステップS102:YES)が、受信サーバがセッション情報を有していない場合(ステップS110:NO)に、他のサーバ1からセッション情報を取得するための処理である。本実施形態に係るシステムによれば、セッションIDを有さないサーバ1にロードバランサが通信を割り当ててしまった場合であっても、後述するステップS111からステップS115の処理によって、通信の割当を受けたサーバ1が、セッションIDから複製先サーバを索出し、セッション情報を取得することが出来る。
ステップS111では、セッションIDに基づいてサーバ1が索出される。受信サーバのサーバ索出部26は、上述したConsistent Hashingを用いて、サーバ1を索出する。より具体的には、受信サーバは、セッションIDを入力値とするハッシュ演算を行い、ハッシュ値を得る。そして、サーバ1は、求められたハッシュ値に対応するcontinuum上の点を開始地点として探索を行い、最初に発見されたサーバ1を索出する。ステップS111で索出に用いられるアルゴリズムは、ステップS106において複製先サーバを決定する際に用いたアルゴリズムと同一(本実施形態では、同一のcontinuumを用いるConsistent Hashing)である。このため、ステップS111では、ステップS106において決定され、セッション情報の複製がなされた複製先サーバが優先的に索出される。その後、処理はステップS112へ進む。
ステップS112では、索出されたサーバ1からのセッション情報の取得が試みられる。受信サーバは、ステップS111で索出されたサーバ1に対して、受信パケットに設定されていたセッションIDに対応するセッション情報を要求する。ここで、要求先のサーバ1がセッション情報を有していた場合、セッション情報の取得は成功する。しかし、要求先のサーバ1が複製先サーバでなかった場合や、要求先のサーバ1に障害が発生している場合等、何らかの事情でセッション情報の取得が出来ない可能性がある。
ステップS113からステップS115では、セッション情報が取得できるまで、セッションIDに基づくサーバ1の索出とセッション情報の要求が繰り返される。このため、受信サーバは、ステップS112においてセッション情報を取得できたか否かを判定する(ステップS113)。セッション情報が取得できたと判定された場合、受信サーバは、取得されたセッション情報を用いてクライアント端末9との間で行われる通信内容を管理する。そして、処理はセッション情報の更新のため、ステップS117へ進む。
一方、セッション情報が取得できなかったと判定された場合、受信サーバのサーバ索出部26は、セッションIDに基づいて次のサーバ1を索出し(ステップS115)、索出されたサーバ1に対してセッション情報を要求する(ステップS112)。ここで索出される「次のサーバ」とは、図3を用いて説明したConsistent Hashingにおける探索を継続することによって、直前のステップS112において発見されたサーバ1の次に発見されるサーバ1である。次のサーバ1の索出とセッション情報の要求とは、セッション情報が取得できるまで(ステップS113:YES)繰り返し実行される。但し、本実施形態では、複製先サーバは、上記ステップS103からステップS108で説明した通り所定数(1または複数)選択されているものの、複製先サーバの数には限りがある。このため、探索がcontinuumを一周し、全てのサーバ1に対して問い合わせ済みとなったがセッション情報の取得が出来なかった場合には(ステップS114:YES)、セッション情報の取得は失敗し、本フローチャートに示された処理は終了する。
なお、ステップS113からステップS115では、索出されたサーバ1が複製先サーバであるか否かに拘らず、セッション情報が取得できるまで、セッションIDに基づくサーバ1の索出とセッション情報の要求が繰り返されるが、これは、Consistent Hashing手法を用いたセッション情報複製処理の信頼性を高めるための補助的な処理であり、省略されてもよい。
ステップS117からステップS127では、オーナーおよび複製先サーバに保持されているセッション情報の更新が行われる。
ステップS117では、セッション情報の更新が必要となるか否かが判定される。受信サーバは、クライアント端末9との通信に応じて、当該クライアント端末9と受信サーバとの間で用いられるセッション情報の更新の要否を判定する。セッション情報は、クライアント端末9と受信サーバとの間での通信が進行し、通信において管理すべき内容の変更、追加および削除等があった場合に変更される。セッション情報の更新が不要であると判定された場合、本フローチャートに示された処理は終了する。一方、セッション情報の更新が必要であると判定された場合、処理はステップS118へ進む。
ステップS118およびステップS119では、セッション情報が更新され、更新されたセッション情報がクライアントに通知される。受信サーバは、セッション情報を更新し(ステップS118)、クライアントへの返信パケットに含めて送信することで、更新されたセッション情報をクライアントに通知する(ステップS119)。セッション情報の更新および通知は従来のサーバ/クライアント間通信において行われている処理であるため、詳細な説明は省略する。その後、処理はステップS120へ進む。
ステップS120からステップS122では、受信サーバがオーナーである場合に、複製先サーバのセッション情報が更新される。受信サーバは、自身が受信パケットに設定されたセッションIDに係るセッション情報のオーナーであるか否かを判定する(ステップS120)。ここで、受信サーバがセッション情報のオーナーでないと判定された場合、処理はステップS123へ進む。一方、受信サーバがセッション情報のオーナーであると判定された場合、受信サーバのサーバ索出部26は、セッションIDに基づいて複製先サーバを索出し(ステップS121)、複製先サーバが保持するセッション情報を更新する(ステップS122)。オーナーが保持するセッション情報は、ステップS118において更新済みである。ステップS121の処理の詳細については、ステップS111において説明した処理と概略同様であるため、説明を省略する。ステップS122において、受信サーバは、ステップS118で更新されたセッション情報を、ステップS121において索出された複製先サーバに対して送信することによって、複製先サーバによって保持されているセッション情報を更新する(ステップS122)。受信サーバがオーナーであった場合、ステップS118からステップS122に示された処理によって、オーナーおよび複製先サーバによって保持されているセッション情報が更新される。その後、本フローチャートに示された処理は終了する。
ステップS123およびステップS124では、受信サーバがオーナーの識別子を保持している場合に、オーナーのセッション情報が更新される。受信サーバは、自身がセッション情報のオーナーでない場合(ステップS120:NO)、自身がオーナーの識別子を保持しているか否かを判定する(ステップS123)。例えば、受信サーバが複製先サーバのうちの1つであった場合、受信サーバは、ステップS108の処理によって通知されたオーナーのサーバ識別子を保持している。受信サーバがオーナーのサーバ識別子を保持していないと判定された場合、処理はステップS125へ進む。一方、受信サーバがオーナーのサーバ識別子を保持していると判定された場合、受信サーバは、ステップS118で更新されたセッション情報を、オーナーのサーバ識別子に示されたサーバ1に対して送信することによって、オーナーによって保持されているセッション情報を更新する(ステップS124)。その後、処理はステップS121へ進む。
その後、受信サーバのサーバ索出部26は、セッションIDに基づいて他の複製先サーバを索出し(ステップS121)、他の複製先サーバが保持するセッション情報を更新する(ステップS122)。その後、本フローチャートに示された処理は終了する。
ステップS125からステップS127では、セッションIDに基づいて複製先サーバが索出され、次に索出された複製先サーバが有するオーナーのサーバ識別子からオーナーが特定される。受信サーバがオーナーでなくオーナーの識別子も保持していない場合(ステップS120:NO、ステップS123:NO)、受信サーバのサーバ索出部26は、セッションIDに基づいて複製先サーバを索出し(ステップS125)、索出された複製先サーバにオーナー情報を要求することで、オーナーのサーバ識別子を取得する(ステップS126)。受信サーバは、ステップS118で更新されたセッション情報を、オーナーのサーバ識別子に示されたサーバ1に対して送信することによって、オーナーによって保持されているセッション情報を更新する(ステップS127)。
その後、受信サーバは、ステップS118で更新されたセッション情報を、ステップS126において索出された複製先サーバに対して送信することによって、複製先サーバが保持するセッション情報を更新する(ステップS122)。その後、本フローチャートに示された処理は終了する。
1 サーバ
2 ロードバランサ
9 クライアント端末

Claims (9)

  1. 複数のサーバの何れかにクライアントとの通信を割り当てることで該クライアントに対してサービスを提供し、前記通信の割り当て先を決定するロードバランサを有する情報処理システムであって、
    前記複数のサーバのうち、前記ロードバランサによって前記通信が割り当てられた第一のサーバを特定するサーバ特定手段と、
    前記複数のサーバのうちの1または複数のサーバを、前記通信を識別するための通信識別情報の複製先である第二のサーバとして決定する複製先サーバ決定手段と、
    前記通信識別情報を、前記第二のサーバにおいて複製して保持させる複製手段と、
    前記第一のサーバを特定可能な情報を、前記第二のサーバに通知して保持させることで、該第一のサーバに保持されている前記通信識別情報の、前記第二のサーバによる更新を可能とする通知手段と、
    を備える情報処理システム。
  2. 前記複製先サーバ決定手段は、前記通信識別情報の一部または全部を、入力に対して再現性を有する所定のアルゴリズムに基づいて処理することで、前記第二のサーバを決定する、
    請求項1に記載の情報処理システム。
  3. 前記ロードバランサが前記第一のサーバ以外のサーバに通信を割り当てた場合に、前記通信の内容から抽出された前記通信識別情報を前記所定のアルゴリズムに基づいて処理することで前記第二のサーバを索出するサーバ索出手段を更に備える、
    請求項2に記載の情報処理システム。
  4. 前記ロードバランサによって前記通信が前記第一のサーバに割り当てられた際に、前記第一のサーバにおいて前記通信識別情報を生成する通信識別情報生成手段を更に備える、
    請求項1から3の何れか一項に記載の情報処理システム。
  5. 前記複製先サーバ決定手段は、1の前記第二のサーバが前記第一のサーバと同一であった場合、更に1以上のサーバを前記第二のサーバとして決定する、
    請求項1から4の何れか一項に記載の情報処理システム。
  6. 前記サーバは、夫々不揮発性の記憶装置を有し、
    前記複製先サーバ決定手段によって、複数のサーバが前記複製先のサーバとして決定された場合、少なくとも1のサーバは、前記通信識別情報を前記不揮発性の記憶装置に記録しない、
    請求項1から5の何れか一項に記載の情報処理システム。
  7. 前記複製先サーバ決定手段は、前記第一のサーバが前記通信識別情報の複製先として決定したサーバを、前記第二のサーバとして決定する、
    請求項1から6の何れか一項に記載の情報処理システム。
  8. 複数のサーバの何れかにクライアントとの通信を割り当てることで該クライアントに対してサービスを提供し、前記通信の割り当て先を決定するロードバランサを有する情報処理システムが、
    前記複数のサーバのうち、前記ロードバランサによって前記通信が割り当てられた第一のサーバを特定するサーバ特定ステップと、
    前記複数のサーバのうちの1または複数のサーバを、前記通信を識別するための通信識別情報の複製先である第二のサーバとして決定する複製先サーバ決定ステップと、
    前記通信識別情報を、前記第二のサーバにおいて複製して保持させる保持ステップと、
    前記第一のサーバを特定可能な情報を、前記第二のサーバに通知して保持させることで、該第一のサーバに保持されている前記通信識別情報の、前記第二のサーバによる更新を可能とする通知ステップと、
    を実行する情報処理方法。
  9. 複数のサーバの何れかにクライアントとの通信を割り当てることで該クライアントに対してサービスを提供し、前記通信の割り当て先を決定するロードバランサを有する情報処理システムを、
    前記複数のサーバのうち、前記ロードバランサによって前記通信が割り当てられた第一のサーバを特定するサーバ特定手段と、
    前記複数のサーバのうちの1または複数のサーバを、前記通信を識別するための通信識別情報の複製先である第二のサーバとして決定する複製先サーバ決定手段と、
    前記通信識別情報を、前記第二のサーバにおいて複製して保持させる複製手段と、
    前記第一のサーバを特定可能な情報を、前記第二のサーバに通知して保持させることで、該第一のサーバに保持されている前記通信識別情報の、前記第二のサーバによる更新を可能とする通知手段と、
    として機能させるためのプログラム。
JP2014520823A 2012-06-11 2012-06-11 情報処理システム、方法およびプログラム Active JP6008964B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/064934 WO2013186837A1 (ja) 2012-06-11 2012-06-11 情報処理システム、方法およびプログラム

Publications (2)

Publication Number Publication Date
JPWO2013186837A1 JPWO2013186837A1 (ja) 2016-02-01
JP6008964B2 true JP6008964B2 (ja) 2016-10-19

Family

ID=49757701

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014520823A Active JP6008964B2 (ja) 2012-06-11 2012-06-11 情報処理システム、方法およびプログラム

Country Status (4)

Country Link
US (1) US20150095496A1 (ja)
EP (1) EP2860637B1 (ja)
JP (1) JP6008964B2 (ja)
WO (1) WO2013186837A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6361254B2 (ja) * 2014-04-15 2018-07-25 日本電気株式会社 オブジェクト配置装置、オブジェクト配置方法、及び、プログラム
US10419307B2 (en) 2015-04-30 2019-09-17 The Nielsen Company (Us), Llc Methods and apparatus to coordinate receipt of monitoring information
US10999361B2 (en) 2018-09-07 2021-05-04 Red Hat, Inc. Consistent hash-based load balancer
CN113395342B (zh) * 2021-06-09 2022-07-22 南方电网数字电网研究院有限公司 一种基于负载均衡分配的电网监控系统前置服务调度方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7133891B1 (en) * 2000-05-31 2006-11-07 International Business Machines Corporation Method, system and program products for automatically connecting a client to a server of a replicated group of servers
US7702791B2 (en) * 2001-07-16 2010-04-20 Bea Systems, Inc. Hardware load-balancing apparatus for session replication
JP5109901B2 (ja) 2008-09-25 2012-12-26 沖電気工業株式会社 セッションデータ共有方法
CN101668046B (zh) * 2009-10-13 2012-12-19 成都市华为赛门铁克科技有限公司 资源缓存方法及其装置、系统
JP5514041B2 (ja) * 2010-08-25 2014-06-04 日本電信電話株式会社 識別子割当て方法及びプログラム
JP2012103879A (ja) * 2010-11-10 2012-05-31 Hitachi Ltd セッション管理方法、セッション管理システム及びプログラム
US9344494B2 (en) * 2011-08-30 2016-05-17 Oracle International Corporation Failover data replication with colocation of session state data

Also Published As

Publication number Publication date
EP2860637B1 (en) 2017-04-26
EP2860637A1 (en) 2015-04-15
WO2013186837A1 (ja) 2013-12-19
US20150095496A1 (en) 2015-04-02
EP2860637A4 (en) 2016-03-02
JPWO2013186837A1 (ja) 2016-02-01

Similar Documents

Publication Publication Date Title
US11194719B2 (en) Cache optimization
CN107690800B (zh) 管理动态ip地址分配
JP6984097B2 (ja) エッジプロキシを持つコンテンツデリバリネットワークアーキテクチャ
CN107231402B (zh) Http请求处理方法、装置及系统
CN108173774B (zh) 一种客户端的升级方法及系统
US8352615B2 (en) Content management
US8321503B2 (en) Context-specific network resource addressing model for distributed services
JP5805934B2 (ja) Urlを利用した分散コントロール方法及び装置
KR20130137897A (ko) 비대칭형 클러스터 파일 시스템의 데이터 관리 방법
JP2006252085A (ja) ユーザ識別情報を変換するファイルサーバ
US7237235B2 (en) Application distribution system, and distribution server and distribution method thereof
CN106453460B (zh) 一种文件分发方法、装置和系统
JP6008964B2 (ja) 情報処理システム、方法およびプログラム
JP6092874B2 (ja) 負荷分散装置、情報処理システム、方法およびプログラム
CN111352716B (zh) 一种基于大数据的任务请求方法、装置、系统及存储介质
JP2007108905A (ja) ファイルサーバ、ファイル提供方法及びプログラム
JP2017220112A (ja) データ管理システム、制御方法、およびプログラム
KR101600717B1 (ko) P2p 방식의 가상머신 운영체제 이미지 다운로드 방법 및 장치
JP2014164554A (ja) 負荷分散判定システム
JP5544521B2 (ja) 状態管理方法、処理装置、および状態管理プログラム
JP2007299019A (ja) データ通信システム、サーバ装置及びそれに用いるデータ通信方法並びにそのプログラム
JP4828315B2 (ja) リソース検索システム
JP2004302564A (ja) ネームサービス提供方法及びその実施装置並びにその処理プログラム
JP2010287172A (ja) 計算機ノード、計算機システム、プロセス生成方法およびプロセス生成プログラム
US20210064411A1 (en) Management apparatus, management system, management method and management program

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160531

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160706

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160913

R150 Certificate of patent or registration of utility model

Ref document number: 6008964

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250