JP6062034B2 - 処理制御システム、処理制御方法、および処理制御プログラム - Google Patents

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

Info

Publication number
JP6062034B2
JP6062034B2 JP2015506685A JP2015506685A JP6062034B2 JP 6062034 B2 JP6062034 B2 JP 6062034B2 JP 2015506685 A JP2015506685 A JP 2015506685A JP 2015506685 A JP2015506685 A JP 2015506685A JP 6062034 B2 JP6062034 B2 JP 6062034B2
Authority
JP
Japan
Prior art keywords
processing
information
analysis
time
distribution
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
JP2015506685A
Other languages
English (en)
Other versions
JPWO2014148247A1 (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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Application granted granted Critical
Publication of JP6062034B2 publication Critical patent/JP6062034B2/ja
Publication of JPWO2014148247A1 publication Critical patent/JPWO2014148247A1/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/183Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components
    • G06F11/184Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components where the redundant components implement processing functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3433Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/503Resource availability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/508Monitor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Hardware Redundancy (AREA)

Description

参照による取り込み
本出願は、2013年3月19日に出願された日本特許出願第2013−056844号の優先権を主張し、その内容を、参照により本出願に取り込む。
本発明は、処理を複数の計算機に分散させる技術に関する。
昨今、様々な機器やセンサから送出されるログやセンサ情報等に代表される多量のデータ(ビッグデータと呼ばれる)を解析(分析)し、ビジネスに役立つ知見(情報)を得る取り組みがある。このような解析において、データベース等に蓄えられる多量のデータを、特定のタイミングでバッチ処理により解析する技術が知られている。
また、金融機関のアルゴリズム取引のように、リアルタイムで解析し、その結果をリアルタイムに取得するという、複合イベント処理(CEP:Complex Event Processing)技術が知られている。バッチ処理は、処理対象のデータ範囲が広い(数日〜数年単位)。一方、CEP技術では直近(数分単位)のデータ範囲を対象としている。このような性質の違いから、バッチ処理は傾向分析等に向いており、CEP技術はアクセスログ等を元にした不正値検出やリアルタイム課金制御等に向いている。
CEP技術のシステムにおいて解析サーバが大量のデータを解析する場合、解析サーバの処理性能に限界があるため、全てをリアルタイムに処理できない恐れがある。CEP技術で処理するデータが特に多いと、CEP技術でのデータ解析処理の遅延によって性能劣化が発生する恐れがある。
このような問題に対し、解析サーバを複数設け、解析サーバでCEPとして実行されるイベントの関連度に応じて、イベント処理を分散させることにより、性能劣化を防止する技術が知られている(例えば特許文献1、段落0039、0041)。
特許文献1に示されている仕組みは、性能劣化を防止するために、処理の負荷が低い解析サーバを選択して処理を実行させる仕組みである。
同様に、複数の計算機間で負荷を分散させる技術が考えられている(特許文献2)。この技術では、複数の計算機が、それぞれの負荷をキューの使用率で表し、その使用率が最も低い計算機へクライアントの要求を転送することにより、負荷の偏りを防止しようとする。
一般に、システムの性能限界がサーバの処理性能に達することによる防止策として、ハードウエアの性能向上を図る手法と、上記特許文献のように処理を分散させる手法とが挙げられる。前者の手法はハードウエア更新時のサービス停止を伴う等の問題がある。従って、データセンタ運用業者等は、サービスを停止させず、通信量の増加に対応できる後者の手法(スケールアウト)による能力増強を図ることが多い。スケールアウトによって能力増強を図る場合、複数のサーバに対して如何に処理を分散させるかが問題となる。
スケールアウトを行う場合、通常、システム全体の処理性能不足がトリガーとなる。サーバまたは計算機のハードウエア処理性能は日々向上している。そのため、システム構築時に導入したサーバとスケールアウト時に導入するサーバのハードウエア処理性能が同じになるようにサーバを導入することは、現実的には困難である。処理性能の異なる複数のサーバで構築されたシステムにおいて、例えば処理要求を順番に割り振るラウンドロビン方法を利用した場合、スペックが異なるが故にサーバ間の負荷バランスに差が生じ、要求の処理に時間差が生じることになるなどの問題がある。
一方、1以上の複数のサーバやそれらを接続する1以上のネットワークを構成する機器などの、様々な構成要素から成るシステムでは、それらの構成要素の障害や故障などにより、システムが停止したり、正しい結果が得られなかったりすることにより、信頼性が低下するというリスクがある。
これに対し、信頼性を高める、すなわち、フォールトトレランス性(耐障害性)を持たせる仕組みの1つとして、冗長化がある。冗長化では、同じシステムを複数用意して、それら全てに同じ処理を並列に実行させ、あるシステムに障害が発生しても、他のシステムが動作し続けることによって信頼性を確保する。ここで、障害の度合い(例えばCPUの内部障害による計算間違い発生)によっては、複数のシステムで同じ処理をしても結果が同一に至らない場合もあり、そのような場合、多数決により、正しいと考えられる結果を得る仕組みが知られている。
例えば特許文献3には、処理要求を受け、その要求を計算機により処理した結果を伝送するシステムにおいて、同一の処理要求を複数の計算機の全てに送信し、複数の計算機からその処理結果を受信して、複数の受信結果を比較して正しい処理結果を出力する構成が示されている。
このような仕組みを用いることによって、計算機における障害や故障、ソフトウエアバージョン違いによる異なる結果出力、といったことを防止でき、信頼性を向上させたシステムとして動作させることが可能である。
米国特許出願公開第2012/084788号明細書 米国特許出願公開第2006/212873号明細書 特開平7−306794号明細書
特許文献1に示されるイベント処理を分散させる技術は、負荷に基づき関連度の高いイベントを特定の解析サーバへ集約するため、解析対象のデータが特に多い場合、解析サーバの負荷が処理性能の限界に達し、所定の時間内に解析を完了させることが難しくなる。
また、特許文献2に示される複数の計算機間で要求を転送する技術は、効率よく負荷分散を行うことが難しい。また、前述のようなスペックの異なる複数の計算機間で処理要求を処理した場合、複数の計算機間で負荷バランスの差が生じるため、要求処理の時間差が発生することになる。
さらに、特許文献1、2の仕組みは、処理の負荷が低いサーバまたは計算機を一つ選択するに過ぎず、障害発生を考慮していないから、フォールトトレランスを備えていない。
また、特許文献3に示される技術では、処理を複数の計算機全てで並列実行する。このような仕組みでは、1つの計算機の処理性能の上限が、システム全体の性能を決めてしまう。そのため、特許文献3に示される技術を、例えばビッグデータのような大量の情報を分析や解析するシステムへ適用すると、処理量の増大に伴ってシステムのスループットが低下してしまうという問題がある。
従って、高い信頼性を備えつつ、処理量が増大してもスループットが低下しない、安定して要求を処理できる負荷分散技術が求められている。
上記課題を解決するために、本明細書では、n個(nは3以上)の計算機(たとえば解析サーバ)に掛かっている負荷と、要求された処理に対する能力と、を考慮して、m個(1<m<n)の計算機(たとえば解析サーバ)を選択し、選択した計算機(たとえば解析サーバ)による複数の処理結果を、所定の方法で処理して、もっとも確からしい結果を得る技術が提供される。
開示する技術に基づけば、要求された処理を複数の計算機に処理させることが可能になり、結果的に処理時間の短縮、システムに掛かる負荷の削減、が可能になる。
また、全ての計算機ではなく、一部の複数の計算機(たとえば解析サーバ)を選択することにより、システム全体で必要な電力などの資源も抑えることが可能になる。
より具体的な一態様である処理システムは、以下の構成を備える。
n個(nは3以上)の処理装置に接続された負荷分散装置と、前記n個の処理装置に接続された処理結果判定装置と、前記負荷分散装置及び前記処理結果判定装置に接続された管理装置と、を備える。前記管理装置は、前記n個の処理装置の夫々について、過去の処理において要した時間情報を取得し、前記n個の処理装置の夫々が処理対象情報の処理に掛かる所要時間を、前記時間情報に基づいて推定して推定時間とし、前記推定時間及び処理装置の関係を示す推定時間情報を前記負荷分散装置へ送信する。
前記負荷分散装置は、前記推定時間情報に基づいて、前記処理対象情報を処理させる、m個(1<m<n)の処理装置を決定し、前記処理対象情報を、前記決定したm個の指定処理装置へ送信する。前記m個の指定処理装置の夫々は、前記処理対象情報を処理することにより処理結果を算出し、前記処理結果を前記処理結果判定装置へ送信する。前記処理結果判定装置は、前記m個の指定処理装置からm個の処理結果を夫々受信し、所定の方法により前記m個の処理結果から真の値を推定して推定値とし、前記推定値を処理する後段の処理装置へ前記推定値を送信する。
また、別の一態様である、n個(nは3以上)の処理装置に接続された負荷分散装置のコンピュータのための負荷分散プログラムは、前記負荷分散装置に接続された管理装置が、前記n個の処理装置の夫々について、過去の処理において要した時間情報を取得し、前記n個の処理装置の夫々が処理対象情報の処理に掛かる所要時間を、前記時間情報に基づいて推定して推定時間とし、前記推定時間及び処理装置の関係を示す推定時間情報を前記負荷分散装置へ送信した場合、前記推定時間情報に基づいて、前記処理対象情報を処理させるm個(1<m<n)の処理装置を決定することを前記コンピュータに実行させ、前記処理対象情報を、前記決定したm個の指定処理装置へ送信することを前記コンピュータに実行させる。前記m個の指定処理装置の夫々は、前記処理対象情報を処理することにより処理結果を算出し、前記処理結果を前記処理結果判定装置へ送信する。前記処理結果判定装置は、前記m個の指定処理装置からm個の処理結果を夫々受信し、所定の方法により前記m個の処理結果から真の値を推定して推定値とし、前記推定値を処理する後段の処理装置へ前記推定値を送信する。
また、別の一態様である、n個(nは3以上)の処理装置に接続された処理結果判定装置のコンピュータのための処理結果判定プログラムは、前記処理結果判定装置に接続された管理装置が、前記n個の処理装置の夫々について、過去の処理において要した時間情報を取得し、前記n個の処理装置の夫々が処理対象情報の処理に掛かる所要時間を、前記時間情報に基づいて推定して推定時間とし、前記推定時間及び処理装置の関係を示す推定時間情報を、前記管理装置、前記n個の処理装置、及び前記処理結果判定装置に接続された前記負荷分散装置へ送信し、前記負荷分散装置が、前記推定時間情報に基づいて、前記処理対象情報を処理させる、m個(1<m<n)の処理装置を決定し、前記処理対象情報を、前記決定したm個の指定処理装置へ送信し、前記m個の指定処理装置の夫々が、前記処理対象情報を処理することにより処理結果を算出し、前記処理結果を前記処理結果判定装置へ送信した場合、前記m個の指定処理装置からm個の処理結果を夫々受信することを前記コンピュータに実行させ、所定の方法により前記m個の処理結果から真の値を推定して推定値とすることを前記コンピュータに実行させ、前記推定値を処理する後段の処理装置へ前記推定値を送信することを前記コンピュータに実行させる。
上記態様によれば、低信頼のサーバや、低信頼のソフトウエアを導入したシステム構成であっても、要求時間内に処理結果を出力するように、処理を分散させることができる。
また、本発明の一態様によれば、サーバの信頼性低下または、ハードウエア停止、交換、ソフトウエアの停止、交換による影響を受けることなく、多数決に則った、確からしい結果を得ることができる。
また、本発明の一態様によれば、複数のサーバにおける処理結果について、真の結果と捉えるための仕組みとして、あるサーバの処理の結果について管理者の重みづけを行って、それを踏まえた多数決による真の結果を得ることもできる。
また、本発明の一態様によれば、複数のサーバにおける処理結果について、真の結果と捉えるための仕組みとして、複数のサーバの処理の結果を判定する際に、あるサーバの処理の結果を無効として、それを踏まえた多数決による真の結果を得ることもできる。
また、本発明の一態様によれば、複数のサーバにおける処理結果について、真の結果を推定するための仕組みとして、結果が多値で出力される場合の、確率分布や平均値を利用して推定値を得る仕組みや、判定のための結果数が偶数個であったとしても判定する仕組みを備えることによる、確からしい推定値を得ることもできる。
開示によれば、高い信頼性を備えつつ、安定した処理が可能な負荷分散技術を提供可能になる。
各実施例で用いるコンピュータシステムの構成を示す。 分散装置10の構成を示す。 管理サーバ9の構成を示す。 解析サーバ11の構成を示す。 ログ出力サーバ8の構成を示す。 判定装置12の構成を示す。 分散装置10における分散管理テーブル121を示す。 分散装置10におけるイベント型識別テーブル122を示す。 分散装置10における通信管理テーブル123を示す。 管理サーバ9における要求時間テーブル920を示す。 管理サーバ9における解析ロジック管理テーブル921を示す。 管理サーバ9における接続先管理テーブル922を示す。 管理サーバ9における時間管理テーブル923を示す。 管理サーバ9における統計時間管理テーブル924を示す。 解析サーバ11におけるロジック管理テーブル1120を示す。 解析サーバ11におけるキュー管理テーブル1121を示す。 解析サーバ11における接続先管理テーブル1123を示す。 ログ出力サーバ8における簡易分散ルール820を示す。 ログ出力サーバ8における簡易分散先テーブル821を示す。 判定装置12における解析結果管理テーブル720を示す。 管理サーバ9及び判定装置12における分散数管理テーブル721を示す。 判定装置12における通信用管理テーブル722を示す。 管理サーバ9による分散数情報送信処理を示す。 管理サーバ9によるキュー統計情報送信処理を示す。 分散装置10による分散順位更新処理を示す。 ログ出力サーバ8によるイベント送信処理を示す。 分散装置10による分散処理を示す。 管理サーバ9による分散先応答処理を示す。 管理サーバ9による分散先登録処理を示す。 解析サーバ11による解析処理を示す。 判定装置12による分散数情報更新処理を示す。 判定装置12による解析結果判定処理を示す。 管理サーバ9による解析結果登録処理を示す。 実施例2の管理サーバ9の構成を示す。 実施例2の管理サーバ9における解析サーバ状態管理テーブル925を示す。 実施例3の分散装置10の構成を示す。 実施例3の分散装置10におけるセッション管理テーブル124を示す。 実施例3の分散装置10による分散処理を示す。
以下、本発明の実施例について図面を参照しつつ説明する。
本発明の一態様の表現における用語について説明する。n個の処理装置の夫々は、解析装置や解析サーバ11などに対応する。処理は、解析などに対応する。負荷分散装置は、分散装置10などに対応する。処理結果判定装置は、解析結果判定装置や判定装置12などに対応する。管理装置は、管理サーバ9などに対応する。後段の処理装置は、推定値を処理する処理装置やAPサーバ13などに対応する。処理対象情報は、解析対象情報やイベントなどに対応する。m個の指定処理装置の夫々は、特定解析装置や分散先の解析サーバ11などに対応する。時間情報は、時間管理テーブル923や見積時間などに対応する。推定時間は、統計時間管理テーブル924や見積時間や平均見積時間などに対応する。推定時間情報は、キュー統計情報や分散先応答などに対応する。負荷分散プログラムは、分散装置10のプログラムなどに対応する。処理結果判定プログラムは、判定装置12のプログラム等に対応する。通信装置は、ログ出力サーバ8などに対応する。処理制御プログラムは、管理サーバ9のプログラムなどに対応する。上限は、要求時間などに対応する。
以下、本発明の実施例のコンピュータシステムの構成について説明する。
図1は、本発明の実施例のコンピュータシステムの構成を示す。
本実施例のコンピュータシステムは、複数のクライアント7と、複数のログ出力サーバ8と、管理サーバ9と、複数の分散装置10と、複数の解析サーバ11と、複数の判定装置12と、複数のAP(Application)サーバ13とを有する。なお、ログ出力サーバ8の数は一つであっても良いし、分散装置10の数は一つであっても良いし、判定装置12の数は一つであっても良いし、APサーバ13の数は一つであっても良い。また、クライアント7は省かれても良い。
クライアント7は、ネットワーク15を介してログ出力サーバ8に接続される。ログ出力サーバ8はネットワーク16を介して複数の分散装置10に接続される。分散装置10はネットワーク17を介して複数の解析サーバ11に接続される。解析サーバ11はネットワーク18を介して複数の判定装置12に接続される。判定装置12はネットワーク19を介して複数のAPサーバ13に接続される。また、管理サーバ9はネットワーク5を介して複数の分散装置10に接続される。管理サーバ9はネットワーク6を介して複数の解析サーバ11に接続される。管理サーバ9はネットワーク14を介して複数の判定装置12に接続される。なお、管理サーバ9は複数の解析サーバ11に接続されていなくても良い。
本実施例では、分散装置10と判定装置12を別々のハードウエアとして設けられている形態を示しているが、分散装置10と判定装置12が同一のハードウエア内に設けられていても構わない。また、分散装置10と解析サーバ11と判定装置12が同一のハードウエア内に設けられていても構わない。本実施例では、管理サーバ9が、分散装置10、解析サーバ11、判定装置12とは別のハードウエアとして設けられている形態を示しているが、管理サーバ9が、分散装置10、解析サーバ11、判定装置12の何れかの中に設けられていても構わない。また、本実施例では管理サーバ9が1台のコンピュータとして設けられているが、複数の管理サーバ9を有するコンピュータシステムとして設けられていても構わない。ただし、その場合、複数の管理サーバ9間で情報の共有又は同期を行う必要がある。
クライアント7は、ログ出力サーバ8との通信を行う。ログ出力サーバ8は、クライアント7との通信の内容を示すログを生成し、ログ内のイベントの内容に応じて複数の分散装置10の中から送信先を選択し、選択された分散装置10へイベントを出力する。イベントを受信した分散装置10は、イベントの内容に応じて複数の解析サーバ11の中から送信先を選択し、選択された解析サーバ11へイベントを送信する。イベントを受信した解析サーバ11は、イベントを解析し、その解析から得られる解析値を含む解析結果情報を判定装置12へ送信する。複数の解析値を受信した判定装置12は、複数の解析値の真の値を推定して推定値とし、その推定値を最終的な解析結果として、解析結果を要求するAPサーバ13へ送信する。推定値を受信したAPサーバ13は、推定値を用いるAPを実行する。このようなコンピュータシステムの構成により、解析の処理を複数の解析サーバ11に分散させることができる。
このコンピュータシステムが移動体通信システムに適用される場合について説明する。この場合、クライアント7は、ユーザにより使用される携帯電話機やスマートフォン等の通信端末装置に対応する。ログ出力サーバ8は、基地局やGW(Gateway)等に対応し、通信端末装置の通信のログをイベントとして出力する。解析サーバ11は、イベントに基づいて、ユーザ毎の通信量や有料コンテンツの利用量等を解析する。APサーバ13におけるAPは、通信端末装置毎の通信量や有料コンテンツの利用に応じてユーザへの課金を処理する課金処理や、通信端末装置の通信量に応じてその通信端末装置の帯域を制御する帯域制御等を行う。
ログ出力サーバ8は、カメラやセンサ等であっても良い。この場合のログ出力サーバ8は、検出した情報をイベントとして分散装置10へ送信する。この場合のコンピュータシステムは、クライアント7を有していなくても良い。
このようなコンピュータシステムは他に、WWW(World Wide Web)やメールシステム、データセンタ等、サーバとクライアントの間でデータを通信するネットワークシステムにも適用されることができる。
以下の説明において、管理サーバ9と、分散装置10と、判定装置12とを有するシステムを解析制御システムと呼ぶことがある。また、解析制御システムと、複数の解析サーバ11とを有するシステムを解析システムと呼ぶことがある。
図2は、分散装置10の構成を示す。
分散装置10は、1つ以上のCPU(Central Processing Unit)101と、1つ以上のネットワークインタフェース(NW I/F)102〜104と、入出力装置105と、メモリ107と有するコンピュータにより実現される。分散装置10の各部は、内部バス106等の通信路を介して相互に接続される。NW I/F102は、ネットワーク16を介してログ出力サーバ8と接続される。NW I/F103は、ネットワーク17を介して解析サーバ11と接続される。NW I/F104は、ネットワーク6を介して管理サーバ9と接続される。メモリ107には、分散機能111、ロジック負荷取得機能112の各プログラムと、分散管理テーブル121、イベント型識別テーブル122、通信管理テーブル123とが格納される。
分散装置10の各プログラムは、予め分散装置10のメモリ107に格納されていても良いし、分散装置10により利用可能な記録媒体に記録され、必要な時に、メモリ107に導入されてもよい。記録媒体とは、例えば分散装置10における図示しない外部デバイスインタフェースに着脱可能な記憶媒体を指す。
分散機能111は、分散管理テーブル121を基に、ログ出力サーバ8から受信したイベントの分散先となる解析サーバ11を決定し、そのイベントを分散先へ転送する。
図3は、管理サーバ9の構成を示す。
管理サーバ9は、1つ以上のCPU901と、1つ以上のネットワークインタフェース(NW I/F)902〜904と、入出力装置905と、メモリ907とを有するコンピュータにより実現される。管理サーバ9の各部は、内部バス906等の通信路を介して相互に接続される。NW I/F902は、ネットワーク5を介して分散装置10と接続される。NW I/F903は、ネットワーク14を介して判定装置12と接続される。NW I/F904は、ネットワーク6を介して解析サーバ11と接続される。メモリ907には、管理機能910、ロジック管理機能911の各プログラムと、要求時間テーブル920、解析ロジック管理テーブル921、分散数管理テーブル721、接続先管理テーブル922、時間管理テーブル923、統計時間管理テーブル924とが格納される。
分散装置10と同様に、管理サーバ9の各プログラムは、予め管理サーバ9のメモリ907に格納されていても良いし、管理サーバ9により利用可能な記録媒体に記録され、必要な時に、メモリ907に導入されてもよい。
ロジック管理機能911は、分散装置10と判定装置12から分散に関する情報を取得して、その情報に基づいて解析サーバ11のキュー状態を解析する。そして、管理機能910は、ロジック管理機能911が解析した結果を基にして、APの要求時間に応じた分散先を決定する。また、管理機能910は、コンピュータシステムの管理者からの指示を受け付ける。
図4は、解析サーバ11の構成を示す。
解析サーバ11は、1つ以上のCPU1101と、1つ以上のネットワークインタフェース(NW I/F)1102〜1104と、入出力装置1105と、メモリ1107とを有するコンピュータにより実現される。解析サーバの各部は、内部バス1106等の通信路を介して相互に接続される。NW I/F1102は、ネットワーク17を介して分散装置10と接続される。NW I/F1103は、ネットワーク18を介して判定装置12と接続される。NW I/F1104は、ネットワーク6を介して管理サーバ9と接続される。メモリ1107には、解析機能1110、キュー管理機能1111の各プログラムと、ロジック管理テーブル1120、キュー管理テーブル1121、イベント型識別テーブル122、接続先管理テーブル1123とが格納される。
分散装置10と同様に、解析サーバ11の各プログラムは、予め解析サーバ11のメモリ1107に格納されていても良いし、解析サーバ11により利用可能な記録媒体に記録され、必要な時に、メモリ1107に導入されてもよい。
解析機能1110は、イベント型識別テーブル122及びロジック管理テーブル1120に基づいて、分散装置10より受信したイベントを解析する解析ロジックを選択し、その解析ロジックに従って解析処理を実行する。キュー管理機能1111は、分散装置10より受信したイベントを一度キュー管理テーブル1121に格納し、解析機能1110の必要に応じてキュー管理テーブル1121からイベントを取り出す。以下の説明及び図面において、解析サーバ11内のキュー管理テーブル1121を単にキューと呼ぶことがある。
図5は、ログ出力サーバ8の構成を示す。
ログ出力サーバ8は、1つ以上のCPU801と、1つ以上のネットワークインタフェース(NW I/F)802〜803と、入出力装置804と、メモリ806とを有するコンピュータにより実現される。ログ出力サーバ8の各部は、内部バス805等の通信路を介して相互に接続される。NW I/F802は、ネットワーク15を介してクライアント7と接続される。NW I/F803は、ネットワーク16を介して分散装置10と相互に接続される。メモリ806には、ノード機能810、簡易分散機能811の各プログラムと、簡易分散ルール820、簡易分散先テーブル821、イベント型識別テーブル122とが格納される。
分散装置10と同様に、ログ出力サーバ8の各プログラムは、予めログ出力サーバ8のメモリ806に格納されていても良いし、ログ出力サーバ8により利用可能な記録媒体に記録され、必要な時に、メモリ806に導入されてもよい。
ノード機能810は、クライアント7から受信した要求に対する処理を実行する。簡易分散機能811は、クライアント7の要求がノード機能810により処理された過程で出力されるアクセスログを分散装置10へ転送するために、簡易分散先テーブル821に登録される分散装置10の中から、簡易分散ルール820に則り分散装置10を選択して、分散する。
図6は、判定装置12の構成を示す。
判定装置12は、1つ以上のCPU1201と、1つ以上のネットワークインタフェース(NW I/F)1202〜1203と、入出力装置1204と、メモリ1206とを有するコンピュータにより実現される。判定装置12の内部バス1205等の通信路を介して相互に接続される。NW I/F1202は、ネットワーク18を介して解析サーバ11と接続される。NW I/F1203は、ネットワーク19を介してAPサーバ13と接続される。メモリ1206には、判定機能1210のプログラムと、解析結果管理テーブル720、分散数管理テーブル721、要求時間テーブル920、通信用管理テーブル722とが格納される。
分散装置10と同様に、各プログラムは、予め判定装置12のメモリ1206に格納されていても良いし、判定装置12が利用可能な記録媒体に記録され、必要な時に、メモリ1206に導入されてもよい。
判定機能1210は、複数の解析サーバ11から受信した解析結果情報を解析結果管理テーブル720へ格納し、複数の解析結果情報に示された解析値に基づいて、確率が最も高い解析値を推定値として決定し、推定値をAPサーバ13へ送信する。
図7は、分散装置10における分散管理テーブル121を示す。
分散管理テーブル121は、分散装置10がログ出力サーバ8から受信したイベントを分散させるための情報であり、イベントの分類に応じた分散の指示を示す。分散管理テーブル121は、イベント型毎のレコードを有する。イベント型は、要求時間の分類を示す。要求時間は、解析に用いることができる処理時間(所要時間)の上限であり、APにより要求される。本実施例におけるイベント型は、一定時間型とリアルタイム型である。リアルタイム型の要求時間は、一定時間型の要求時間より短い。分散管理テーブル121の各レコードは、イベント種別欄1211と、分散順位欄1212と、更新時刻欄1213と、分散数欄1214とを有する。
イベント型欄1211には、イベント型が登録される。ここに登録される内容は、後述のイベント型識別テーブル122のイベント型欄1221の内容である。分散順位欄1212には、当該イベント型のイベントの分散先の候補である複数の解析サーバ11の優先順位が登録される。更新時刻欄1213には、当該レコードの更新時刻が登録される。分散数欄1214には、当該イベント型のイベントの分散先となる解析サーバ11の数である分散数が登録される。
この図の例では、イベント型が「一定時間型」の場合、分散装置10は、分散数である「5」個の解析サーバ11へ分散させることを示している。分散装置10は、分散順位欄1212に登録される上位から順に分散数だけの解析サーバ11を分散先として選択する。なお、分散数は、分散順位欄1212に登録された解析サーバ11の数より少なくても良い。
図8は、分散装置10におけるイベント型識別テーブル122を示す。
イベント型識別テーブル122には、ログ出力サーバ8から受信したイベントを識別するための情報である。イベント型識別テーブル122は、イベント型毎のレコードを有する。各レコードは、イベント型欄1221と、プロトコル欄1222と、ヘッダ欄1223とを有する。
イベント型欄1221には、当該コンピュータシステム内で判別されるイベント型が登録される。プロトコル欄1222には、ログ出力サーバ8から受信したイベントのプロトコル名が登録される。ヘッダ欄1223には、イベント型を識別するために参照される特定のヘッダの名称が登録される。分散装置10は、イベントのプロトコルと特定のヘッダを参照することにより、対応するイベント型を識別する。
図9は、分散装置10における通信管理テーブル123を示す。
通信管理テーブル123には、分散装置10が接続先と通信するために必要なIPアドレスやネットマスクが登録される。接続先は、解析サーバ11や管理サーバ9等である。通信管理テーブル123は、接続先毎のレコードを有する。各レコードは、区別欄1231と、アドレス欄1232と、マスク値欄1233とを有する。
区別欄1231には、接続先を識別するための接続先の名称が登録される。アドレス欄1232とマスク値欄1233には、当該接続先のIPアドレスとネットマスク値が夫々登録される。
図10は、管理サーバ9における要求時間テーブル920を示す。
要求時間テーブル920には、APにより要求される解析の時間である要求時間が登録される。要求時間テーブル920は、イベント型毎のレコードを有する。各レコードは、イベント型欄9201と、要求時間欄9202とを有する。
イベント型欄9201には、イベント型が登録される。要求時間欄9202には、当該イベント型に対する要求時間が登録される。
この図の例では、イベント型が「リアルタイム型」である場合に、APサーバ13の要求は、イベントの発生から要求時間「500ms」以下でAPサーバ13へ個々の推定値を転送してほしいことを示す。なお、3個以上の要求時間に夫々対応して3個以上のイベント型が、要求時間テーブル920に登録されても良い。
図11は、管理サーバ9における解析ロジック管理テーブル921を示す。
解析ロジック管理テーブル921は、各解析サーバ11で実行される解析ロジックに関する情報である。管理サーバ9は、この情報を基にして解析サーバ11で一つのイベントの解析処理にどれ程の時間かかるのかを算出する。解析ロジック管理テーブル921は、イベント型と解析サーバと解析ロジックとの組み合わせ毎のレコードを有する。各レコードは、イベント型欄9211と、解析サーバ欄9212には、解析サーバ11と、解析ロジック欄9213とを有する。
イベント型欄9211には、イベント形が登録される。解析サーバ欄9212には、解析サーバ11の識別のための名称が登録される。解析ロジック欄9213には、当該解析サーバ11の当該イベント型に対する解析ロジックが登録される。解析時間欄9214には、当該解析サーバ11で当該解析ロジックを実行した時の解析処理に要する時間である解析時間が登録される。
この図の例では、「解析サーバa」の解析サーバ11がリアルタイム型のイベントを解析ロジック「R1」により処理することに要する解析時間が「123ms」であることを示している。本実施例において管理サーバ9は、解析サーバ11のキューが空の状態で、分散装置1によるイベントの分散を示す情報を分散装置10から受信した時刻と、判定装置12による当該イベントの解析の結果の受信を示す情報を判定装置12から受信した時刻との差を解析時間として算出する。他に、分散装置10や管理サーバ9等が擬似的なイベントを解析サーバ11へ送信して解析結果を取得することにより、要した時間を解析時間として算出しても良い。
なお、図1のシステムにおいて、スケールアウトなどによりシステム構成を変更した場合、前述の通り、複数の解析サーバ11それぞれの性能が異なることも考えられる。
このような状況では、例えば同じイベントを各解析サーバ11において処理させた場合、イベントの解析処理にかかる時間は異なるものとなる。すなわち、イベントの解析処理にかかる時間は、解析サーバ11の性能情報を含むことになる。
したがって、後述する分散を行う場合、イベントの解析処理にかかる時間を性能情報として利用することによって、解析サーバの性能を考慮した、より適切な分散が可能になる。
図12は、管理サーバ9における接続先管理テーブル922を示す。
接続先管理テーブル922には、管理サーバ9が接続先と通信するために必要なIPアドレスやネットマスクの情報である。接続先は、分散装置10、判定装置12、解析サーバ11等である。接続先管理テーブル922は、接続先毎のレコードを有する。各レコードは、区別欄9221と、アドレス欄9222と、マスク値欄9223とを有する。
区別欄9221には、接続先の名称が登録される。アドレス欄9222とマスク値欄9223には、当該接続先のIPアドレスとネットマスク値が夫々登録される。
図13は、管理サーバ9における時間管理テーブル923を示す。
時間管理テーブル923は、解析サーバ11のキューに、どんなイベントがどれだけ登録されているかを把握するための情報である。また、時間管理テーブル923は、リアルタイム型の分散先を決定するために用いられる見積時間を示す。管理サーバ9は、解析サーバ11の前後に当る分散装置10と判定装置12から、どの解析サーバ11へイベントを分散したかを示す情報と、どの解析サーバ11から解析結果情報を得たかを示す情報とを夫々受信し、時間管理テーブル923に逐次登録する。管理サーバ9は、時間管理テーブル923を参照することによって、各解析サーバ11のキューの状況を推測することができる。時間管理テーブル923は、管理サーバ9により分散装置10又は判定装置12から受信された情報毎のレコードを有する。各レコードは、解析サーバ欄9231と、受信元欄9232と、イベント型欄9233と、イベント種別欄9234と、見積時間欄9235と、更新時刻欄9235とを有する。なお、推定時間は、見積時間等に対応する。
解析サーバ欄9231には、分散装置10から受信された情報に示された解析サーバ11の識別情報、又は判定装置12から受信された情報に示された解析サーバ11の識別情報が登録される。受信元欄9232には、当該レコードの情報を分散装置10及び判定装置12の何れから受信したかを示す情報が登録される。イベント型欄9233には、分散装置10から受信された情報に示されたイベントのイベント型、又は分散装置10から受信された情報に示されたイベントのイベント型が登録される。イベント種別欄9234には、当該イベントのイベント種別が登録される。イベント種別は、クライアント7の識別情報や、クライアント7のユーザの識別情報等である。見積時間欄9235には、解析ロジック管理テーブル921で当該レコードのイベント型に対応する解析ロジックで処理を実行した場合にイベントをキューへ投入してからその解析を終了するまでの見積時間が登録される。見積時間欄9235には、判定装置12より受信した見積時間は登録されない。更新時刻欄9235には、当該レコードが更新された時刻が登録される。管理サーバ9は、後述の解析結果登録処理により、時間管理テーブル923を更新する。
例えば、移動体通信システムにおいて、イベント種別は、通信端末装置の識別情報である。解析サーバ11がイベント種別に応じて通信量等の解析を行うことにより、特定の通信端末装置への課金や帯域制御を決定することができる。
この図において二番目のレコードは、分散装置10が「リアルタイム型」で識別子「B」のイベントを「解析サーバb」へ送信してから、判定装置12が「解析サーバb」から解析結果情報を受信するまでの見積時間が「0.123sec」であることを示している。また四番目のレコード0は、判定装置12が二番目のレコードに示されたイベントの解析結果情報を「解析サーバb」から受信したことを示している。二番目のレコードによれば、「解析サーバb」のキューに分散装置10からの一つのイベントが積まれたことが分かる。そして、四番目のレコードによれば、キュー内の一つのイベントがデキューされて解析が行われ、判定装置12がその解析結果情報を受信したことが分かる。このように、管理サーバ9は、時間管理テーブル923を走査することによって、各解析サーバ11の状態を推定することができる。
図14は、管理サーバ9における統計時間管理テーブル924を示す。
統計時間管理テーブル924は、一定時間型の分散先を決定するために用いられる平均見積時間を示す。統計時間管理テーブル924は、解析サーバ11と解析ロジックの組み合わせ毎のレコードを有する。各レコードは、解析サーバ欄9241と、平均見積時間欄9242と、更新時刻欄9243と、総時間欄9244と、カウンタ欄9245と、解析ロジック9246とを有する。
解析サーバ欄9241には、解析サーバ11の識別情報が登録される。平均見積時間欄9242には、現在の当該解析サーバ11へ新たに当該解析ロジックのイベントを投入してから解析結果情報が出力されるまでの平均見積時間が、総時間欄9244とカウンタ欄9245との情報に基づいて算出され登録される。なお、平均見積時間は、新たに投入されるイベントの解析時間を含まなくても良い。更新時刻欄9243には、当該レコードが更新された時刻が登録される。総時間欄9244は、当該解析サーバ11の当該解析ロジックにイベントが投入されてからその解析が完了するまでの時間の累積値である総時間が登録される。カウンタ欄9245は、当該解析サーバ11の当該解析ロジックへ投入されたイベントのカウンタ値が登録される。総時間及びカウンタ値は、当該解析サーバ11の動作開始からの累積値であっても良いし、定期的にリセットされても良い。解析ロジック9246には、解析ロジックの識別情報が登録される。解析ロジックの代わりに対応するイベント型の識別情報が登録されても良い。
管理サーバ9は、後述の解析結果登録処理により、統計時間管理テーブル924を更新する。平均見積時間欄9242に登録される平均見積時間は、総時間欄9244の総時間を、カウンタ欄9245のカウンタ値で割った商である。即ち、平均見積時間は、当該解析サーバ11の当該解析ロジックのイベントを投入してから解析結果情報が出力されるまでの時間の平均値である。このように、統計時間管理テーブル924には、各解析サーバ11でイベントが処理されている際の統計的な平均見積時間が登録される。統計時間管理テーブル924を利用することで、管理サーバ9は、解析サーバ11のキュー状況をイベント単位で把握しなくても要求時間を満たす分散を行うことができる。なお、統計時間管理テーブル924は、解析サーバ11毎のレコードを有していても良い。
図15は、解析サーバ11におけるロジック管理テーブル1120を示す。
ロジック管理テーブル1120は、解析サーバ11が分散装置10より受信したイベント毎の解析ロジックを示す。ロジック管理テーブル1120は、イベント型毎のレコードを有する。各レコードは、イベント型欄11201と、解析ロジック欄11203とを有する。
イベント型欄11201には、イベント型が登録される。解析ロジック欄11203には、当該イベント型のイベントを解析する解析ロジックが登録される。
図16は、解析サーバ11におけるキュー管理テーブル1121を示す。
解析サーバ11は、分散装置10から受信したイベントをキュー管理テーブル1121へ逐次登録する。また、解析サーバ11は、キュー管理テーブル1121の先頭から順に逐次イベントを実行していく。キュー管理テーブル1121は、イベント毎のレコードを有する。各レコードは、番号(No.)欄11211と、解析ロジック欄11212と、イベント内容欄11213と、受信時刻欄11214とを有する。
番号欄11211には、当該イベントの通し番号が登録される。解析ロジック欄11212には、当該イベントの解析ロジックが登録される。イベント内容欄11213には、分散装置10から受信したイベント内容が登録される。ここでイベント内容とは、受信したイベントのデータの全てである。例えば、イベント内容は、受信されたバイナリデータである。受信時刻欄11214には、当該レコードが登録された時刻が登録される。
図17は、解析サーバ11における接続先管理テーブル1123を示す。
接続先管理テーブル1123は、解析サーバ11が接続先と通信するために必要なIPアドレスやネットマスクの情報である。接続先は、分散装置10、判定装置12、管理サーバ9等である。接続先管理テーブル1123は、接続先毎のレコードを有する。各レコードは、区別欄11231と、アドレス欄11232と、マスク値欄11233とを有する。
区別欄11231には、接続先の名称が登録される。アドレス欄11232とマスク値欄11233には、当該接続先のIPアドレスとネットマスク値が夫々登録される。
図18は、ログ出力サーバ8における簡易分散ルール820を示す。
ログ出力サーバ8は、簡易分散ルール820に則り、複数の分散装置10の中からイベントの送信先を選択する。簡易分散ルール820は、ルール欄8201を有する。ルール欄8201には、イベントの送信先を選択するための分散ロジックが登録される。
図19は、ログ出力サーバ8における簡易分散先テーブル821を示す。
簡易分散先テーブル821には、ログ出力サーバ8がイベントを分散装置10へ送信するために必要なIPアドレスやネットマスクの情報が登録される。簡易分散先テーブル821は、分散装置10毎のレコードを有する。各レコードは、区別欄8211と、アドレス欄8212と、マスク値欄8213とを有する。
区別欄8211には、送信先の分散装置10の名称が登録される。アドレス欄8212とマスク値欄8213には、当該レコードの登録先名称のIPアドレスとネットマスク値が登録される。
図20は、判定装置12における解析結果管理テーブル720を示す。
判定装置12は、解析サーバ11から受信した解析結果情報を解析結果管理テーブル720へ登録し、解析結果管理テーブル720に基づいて多数決判定等の判定を行うことにより、推定値を決定し、推定値をAPサーバ13へ送信する。解析結果管理テーブル720は、解析結果情報毎のレコードを有する。各レコードは、番号(No.)欄12201と、イベント型欄12202と、解析サーバ欄12203と、イベント種別欄12204と、解析値欄12205と、受信時刻欄12206とを有する。
番号欄12201には、当該解析結果情報の通し番号が登録される。イベント型欄12202には、当該解析結果情報の対象のイベントのイベント型が登録される。解析サーバ欄12203には、当該解析結果情報を出力した(当該解析結果情報の送信元の)解析サーバ11の識別情報が登録される。イベント種別欄12204には、当該イベントのイベント種別が登録される。解析値欄12205には、当該解析結果情報に示された解析の結果であり、当該解析サーバ11による解析により出力された解析値が登録される。受信時刻欄12206には、当該解析結果情報を受信した時刻が登録される。判定装置12は、解析サーバ欄12203とイベント種別欄12204の2つの情報を用いて各イベントを識別し、識別されたイベントを用いて判定を行う。
図21は、管理サーバ9及び判定装置12における分散数管理テーブル721を示す。
分散数管理テーブル721は、イベント型毎の分散数を示す。判定装置12は、分散数管理テーブル721と解析結果情報の数を基にして、解析結果情報の多数決判定を行うタイミングを決定する。分散数管理テーブル721は、イベント型毎のレコードを有する。各レコードは、イベント型欄12211と、分散数欄12212とを有する。
イベント型欄12211には、イベント型が登録される。分散数欄12212には、当該イベント型のイベントの分散先となる解析サーバ11の数である分散数が登録される。
図22は、判定装置12における通信用管理テーブル722を示す。
通信用管理テーブル722は、判定装置12が、接続先と通信するために必要なIPアドレスやネットマスクの情報である。接続先は、管理サーバ9やAPサーバ13等である。通信用管理テーブル722は、接続先毎のレコードを有する。各レコードは、区別欄12231と、アドレス欄12232と、マスク値欄12233とを有する。
区別欄12231には、接続先の名称が登録される。アドレス欄12232とマスク値欄12233には、当該接続先のIPアドレスとネットマスク値が夫々登録される。
以下、本実施例のコンピュータシステムの動作について説明する。
図23は、管理サーバ9による分散数情報送信処理を示す。
管理サーバ9の管理機能910は、管理者からの入力に従って、分散数管理テーブル721の内容を登録する。管理機能910は、分散数管理テーブル721の内容を分散装置10と判定装置12へ送信する分散数情報送信処理を行う。
管理機能910は、分散数管理テーブル721の内容を取得する(ステップS341)。次に、管理機能910は、ステップS341で取得した情報を分散数情報として分散装置10と判定装置12へ送信する(ステップS342)。分散数情報は、イベント型毎の分散数を示す。以上が分散数情報送信処理である。
図24は、管理サーバ9によるキュー統計情報送信処理を示す。
管理サーバ9の管理機能910は、統計時間管理テーブル924に基づいて解析サーバ11のキューの状況を示すキュー統計情報を定期的に分散装置10へ送信するキュー統計情報送信処理を行う。
管理機能910は、統計時間管理テーブル924のレコードが登録済であるか否かを確認する(ステップS261)。管理機能910は、ステップS261でレコードが登録済であると判定された場合、処理をステップS262へ移し、レコードが登録されていないと判定された場合、処理をステップS263へ移す。ステップS261でレコードが登録済であると判定された場合、管理機能910は、分散装置10が一定時間型のイベントの分散先を決定するための情報として、キュー統計情報を分散装置10へ送信する(ステップS262)。キュー統計情報は、統計時間管理テーブル924の解析サーバ欄9241及び平均見積時間欄9242の情報を含む。次に、管理機能910は、一定時間スリープ(待機)する(ステップS263)。そして、管理者からのアボート指示の入力の有無を確認し、アボート指示がある場合はキュー統計情報送信処理を終了し、アボート指示がない場合、処理をステップS261へ戻す(ステップS264)。なお、管理機能910は、平均見積時間に基づいて各解析サーバ11が要求時間を満たせるか否かを判定し、要求時間を満たせないと判定された解析サーバ11をキュー統計情報から除いても良い。以上がキュー統計情報送信処理である。
図25は、分散装置10による分散順位更新処理を示す。
前述のキュー統計情報送信処理により管理サーバ9からキュー統計情報を受信した分散装置10の分散機能111は、キュー統計情報に基づいて分散管理テーブル121を更新する分散順位更新処理を行う。
分散機能111は、管理サーバ9からキュー統計情報を受信する(ステップS271)。次に、分散機能111は、キュー統計情報に基づき、分散管理テーブル121を更新する(ステップS272)。ここで分散機能111は、キュー統計情報に示された解析サーバ11毎の平均見積時間に基づいて、一定時間型のイベントの分散先となる解析サーバ11の優先順位を決定し、分散管理テーブル121において一定時間型に対応する分散順位欄1212へ登録する。更に分散機能111は、そのレコードを更新した時刻を更新時刻欄1213に登録する。以上が分散順位更新処理である。また、前述の分散数情報送信処理により管理サーバ9から分散数情報を受信した分散装置10の分散機能111は、分散数情報に示された分散数を分散数管理テーブル721へ登録する。
図26は、ログ出力サーバ8によるイベント送信処理を示す。
クライアント7から要求を受信したログ出力サーバ8のノード機能810は、その要求に対応する処理を行った後、その処理を示すアクセスログをイベントとして分散装置10へ送信するイベント送信処理を行う。
ノード機能810は、クライアント7から要求を受信する(ステップS291)。次に、ノード機能810は、ステップS291で受信した要求を処理し、そのアクセスログを生成する(ステップS292)。簡易分散機能811は、分散先テーブル821に登録された分散装置10の中から、簡易分散ルール820に沿ってイベント送信先の分散装置10を選択する(ステップS293)。そして、ノード機能810は、生成されたアクセスログからイベントを生成し、そのイベントをイベント送信先へ送信する(ステップS294)。ここで生成されるイベントは、イベント型識別テーブル122の内容に沿っており、イベント型に応じたプロトコル及びヘッダを有する。以上がイベント送信処理である。
図27は、分散装置10による分散処理を示す。
ログ出力サーバ8からイベントを受信した分散装置10の分散機能111は、分散先の解析サーバ11を決定して、イベントを送信する分散処理を行う。
分散機能111は、ログ出力サーバ8からイベントを受信する(ステップS281)。次に、分散機能111は、イベント型識別テーブル122に基づいて、受信されたイベントのイベント型を識別し、リアルタイム型であれば処理をステップS283へ移し、リアルタイム型以外であれば処理をステップS287へ移す(ステップS282)。ここで分散機能111は、分散機能111は、イベント型識別テーブル122のプロトコル欄1222とヘッダ欄1223の情報を基に、受信したイベントのプロトコル及びヘッダを判定し、それらに対応するイベント型欄1221のイベント型を取得する。その情報を基に、ステップS282で判定を行う。
ステップS282でイベント型がリアルタイム型と判定されなかった(一定時間型と判定された)場合(ステップS282:N)、分散機能111は、分散管理テーブル121を参照し、イベント型欄1211に合致する分散先を取得し(ステップS287)、処理をステップS285へ移す。ここで分散機能111は、分散順位欄1212の分散順位に示されている複数の解析サーバ11の中から、上位から分散数欄1214の分散数だけの解析サーバ11を分散先として選択する。
ステップS282でイベント型がリアルタイム型と判定された場合(ステップS282:Y)、分散機能111は、管理サーバ9から分散先を取得する(ステップS283)。ここで分散機能111は、分散先問合せを管理サーバ9へ送信し、その分散先問合せに対する分散先応答を管理サーバ9から受信し、その分散先応答に含まれた分散先を取得する。
分散機能111は、ステップS281で受信したイベントを、ステップS284又はステップS287で取得した解析サーバ11の分散先へ転送する(ステップS285)。そして、分散機能111は、その分散先を示す分散先情報を管理サーバ9へ送信する(ステップS286)。分散先情報は、分散装置10により送信されたイベントのイベント型及びイベント種別、分散先の解析サーバ11の識別情報等を含む。以上が分散処理である。
分散先として或るイベント送信された複数の解析サーバ11の夫々は、そのイベントを同一の解析ロジックで解析する。
なお、分散機能111は、リアルタイム型のイベントを分散させるにあたって、予め定められた選択数まで、キューに登録されたイベントの数が少ない解析サーバ11を選択しても良い。
なお、ステップS282以降において、分散装置10は、受信したイベントがリアルタイム型である場合に、ステップS287と同様、分散管理テーブル121から分散先を取得し、受信したイベントがリアルタイム型でない場合に、ステップS283及びS284と同様、分散先問合せにより管理サーバ9から分散先を取得しても良い。
この処理によれば、分散装置10は、一定時間型のイベントの解析に適した分散先を選択することができる。また、分散装置10は、リアルタイム型のイベントの解析に適した分散先を管理サーバ9から取得することができる。
図28は、管理サーバ9による分散先応答処理を示す。
前述の分散処理により分散装置10から分散先問合せを受信した管理サーバ9の管理機能910は、その分散装置10へ分散先を示す分散先応答を送信する分散先応答処理を行う。
管理機能910は、分散装置10から分散先問合せを受信する(ステップS251)。次に、管理機能910は、時間管理テーブル923内の見積時間が短い順に、対象のイベント型の分散数の解析サーバ11を選択する(ステップS253)。ここで管理機能910は、分散数管理テーブル721を参照することにより対象のイベント型の分散数を取得する。本実施例において対象のイベント型は、リアルタイム型である。更に管理機能910は、時間管理テーブル923において各解析サーバ11におけるキューの状況を示す見積時間(待ち時間)を参照し、見積時間が短い順に分散数だけの解析サーバ11を分散先として選択する。次に、管理機能910は、分散先問合せの応答として、分散先を示す分散先応答を、分散先問合せの送信元の分散装置10へ送信する(ステップS257)。なお、管理機能910は、見積時間に基づいて各解析サーバ11が要求時間を満たせるか否かを判定し、要求時間を満たせないと判定された解析サーバ11を分散先応答から除いても良い。以上が分散先応答処理である。
ここで、管理機能910は、個々の分散先問合せに対してその都度ステップS252の処理を繰り返してもよいが、効率を考えて、分散先応答処理の途中経過を複数の分散先問合せの間で共有してもかまわない。
この処理によれば、管理サーバ9は、リアルタイム型のイベントの解析に適した分散先を選択し、分散装置10へ伝えることができる。
図29は、管理サーバ9による分散先登録処理を示す。
前述の分散処理により分散装置10から分散先情報を受信した管理サーバ9の管理機能910は、分散装置10から受信した分散先情報を時間管理テーブル923へ登録する分散先登録処理を行う。分散先情報は、分散装置10による分散先を示し、分散管理テーブル121の分散順位欄1212に示された解析サーバ11の上位から分散数だけの解析サーバ11の識別情報等を含む。
管理機能910は、分散装置10から分散先情報を受信する(ステップS231)。次に、管理機能910は、ステップS231で取得した分散装置10がイベントを分散した先の解析サーバ11の識別情報及びイベント種別等の情報を時間管理テーブル923へ登録する(ステップS232)。以上が分散先登録処理である。
図30は、解析サーバ11による解析処理を示す。
前述の分散処理により分散装置10からイベントを受信した解析サーバ11の解析機能1110は、そのイベントを解析する解析処理を行う。
解析サーバ11の解析機能1110は、分散装置10からイベントを受信する(ステップS301)。次に、解析機能1110は、イベント型識別テーブル122を参照し、受信されたイベント型を識別する(ステップS302)。ここでの識別方法は、分散先更新処理のステップS282と同様の方法である。
解析機能1110は、ロジック管理テーブル1120を参照し、識別されたイベント型に対応する解析ロジックを決定する(ステップS303)。次に、解析機能1110は、キュー管理機能1111を利用して、キュー管理テーブル1121へステップS301で受信したイベントを登録する。その後、解析機能1110は、キュー管理テーブル1121の上位のイベントから順に解析を行い、その結果を示す解析結果情報を生成する(ステップS304)。解析結果情報は、解析の対象となったイベントのイベント型及びイベント種別や、その解析の結果である解析値を含む。そして、解析機能1110は、その解析結果情報を判定装置12へ送信する(ステップS305)。ここで複数の判定装置12が存在する場合、解析機能1110は、例えばキュー管理テーブル1121のイベント内容欄11213のイベント内容のハッシュ値による収容分散を行うことにより、複数の判定装置12の中から解析結果情報の送信先の判定装置12を選択する。
図31は、判定装置12による分散数情報更新処理を示す。
前述の分散数情報送信処理により管理サーバ9から分散数情報を受信した判定装置12の判定機能1210は、分散数情報更新処理を行う。
判定機能1210は、管理サーバ9から分散数情報を受信する(ステップS311)。次に、判定機能1210は、受信された分散数情報を基に、イベント型毎の分散数を分散数管理テーブル721へ登録する(ステップS312)。以上が分散数情報更新処理である。
図32は、判定装置12による解析結果判定処理を示す。
前述の解析処理により解析サーバ11から解析結果情報を受信した判定装置12の判定機能1210は、多数決判定を行う解析結果判定処理を行う。
判定機能1210は、解析サーバ11から解析結果情報を受信する(ステップS321)。次に、判定機能1210は、受信された解析結果情報を解析結果管理テーブル720へ登録する(ステップS322)。次に判定機能1210は、解析結果情報の受信を示す解析結果受信情報を管理サーバ9へ送信する(ステップS323)。解析結果受信情報は、解析結果情報に示されたイベント型、イベント種別、解析値を含む。次に判定機能1210は、当該解析結果情報のイベント型に対応する分散数を分散数管理テーブル721から取得し、解析結果管理テーブル720から同一のイベント型及び同一のイベント種別を有する解析結果情報に示された解析値の中で、同一の解析値の数をカウントする。次に判定機能1210は、特定の解析値の数が対象の分散数の過半数に達した(対象の分散数の半数を超えた)か否かを判定する(ステップS324)。ここで判定機能1210は、カウントされた解析結果情報の数が分散数の過半数に達した場合、処理をステップS325へ移し、分散数の過半数に達しなかった場合、処理をステップS321へ移す。
ステップS324で解析結果情報の数が分散数の過半数に達したと判定された場合、判定機能1210は、ステップS324で抽出された解析結果情報の中から、解析値毎の解析結果情報の数をカウントする。その後、判定機能1210は、解析値毎の解析結果情報の数を比較することにより、多数決判定を行う(ステップS325)。
そして、判定機能1210は、抽出された解析結果情報の解析値の中から、多数決判定により最も多いと判定された解析値を推定値として選択し、推定値をAPサーバ13へ送信する(ステップS326)。以上が解析結果判定処理である。
この処理によれば、最も確率の高い解析値を推定値として選択することができ、推定値の信頼性を高めることができる。また、判定機能1210は、全ての解析結果情報を待たずに推定値を決定することができ、推定値の決定までの時間を短縮することができる。
解析値がYES/NOといった白黒が付く結果(2値)であれば、判定機能1210は、それぞれの解析値の総数をカウントし、総数が多い方の解析値を正しいと判定する。一方、解析値が数値(多値)で表されるような結果である場合、例えば判定機能1210は、全ての解析値の平均値を推定値としても良いし、解析値の確率分布を算出し、その確率分布から期待値を算出して推定値としても良い。
2値の解析値の多数決判定を行うにあたっては、分散数が奇数であることが望ましい。本実施例においては、分散数(解析サーバ11の数)は奇数としている。ただし、対象となる解析結果情報の総数が多い場合、多数決判定を行う際に、2値が同数に近くなる可能性は確率的に低くなる。このような場合、偶数であってもさほど問題とはならない。ただし、2値が同数に至る可能性も排除できないため、判定機能1210は、その場合の対応手段も有する。
判定機能1210は、解析値の複数の値が同数に至った場合、予め定められた指定値を推定値として選択しても良い。この場合、管理サーバ9は、管理者から入力された指定値を判定装置12へ送信しても良い。また、判定機能1210は、複数の値の総数に予め定められた重み付けを与え、重み付けされた総数に基づいて複数の値の一つを推定値として選択しても良い。この場合、管理サーバ9は、管理者から入力された重み付けを判定装置12へ送信しても良い。
また、特に分散数(解析サーバ11の数)が多い場合、判定機能1210は、多数決判定を行うために或る解析値の数が分散数の過半数に達する数まで待つ必要がなく、予め定められた判定数に達した解析値を推定値として選択し、APサーバ13へ送信しても良い。これにより、分散数が多くても推定値を得るまでの時間を抑えることができる。この場合、管理サーバ9は、管理者から入力された判定数を判定装置12へ送信しても良い。
図33は、管理サーバ9による解析結果登録処理を示す。
前述の解析結果判定処理により判定装置12から解析結果受信情報を受信した管理サーバ9の管理機能910は、その解析結果受信情報を時間管理テーブル923及び統計時間管理テーブル924へ登録する解析結果受信状況登録処理を行う。解析結果受信情報は、判定装置12による解析結果情報の受信の状況を示し、例えば、解析結果管理テーブル720の解析サーバ欄12203や、イベント種別12204等を含む。
管理機能910は、判定装置12から解析結果受信情報を受信する(ステップS241)。次に、管理機能910は、ステップS241で取得した解析結果受信情報に基づく情報を時間管理テーブル923及び統計時間管理テーブル924へ登録する。(ステップS242)。
ここで管理機能910は、時間管理テーブル923のレコードを作成し、解析結果受信情報に示された解析サーバ11の識別情報、イベント型、イベント種別を、当該レコードの解析サーバ欄9231、イベント型欄9233、イベント種別欄9234へそれぞれ登録する。更に管理機能910は、これらの情報を判定装置12から受信したことを受信元欄9232へ登録する。更に管理機能910は、当該レコードを更新した時刻を当該レコードの更新時刻欄9235へ登録する。
更に管理機能910は、分散先情報に基づいて時間管理テーブル923に登録されたレコードの更新時刻(分散先登録処理のステップS232)と、対応する解析結果受信情報に基づいて時間管理テーブル923に登録されたレコードの更新時刻(解析結果登録処理のステップS242)との差を見積時間として算出し、当該レコードの見積時間欄9235へ登録する。
更に管理機能910は、統計時間管理テーブル924において、当該レコードの解析サーバ11及びイベント型の解析ロジックに対応するレコードの総時間に、算出された見積時間を加えることにより新たな総時間を算出し、当該レコードの総時間欄9244を更新する。更に管理機能910は、当該レコードのカウンタ値に1を加えることにより新たなカウンタ値を算出し、当該レコードのカウンタ欄9245を更新する。更に管理機能910は、当該レコードの総時間をカウンタ値で除することにより平均見積時間を算出し、当該レコードの平均見積時間欄9242を更新する。以上が解析結果登録処理である。
この処理によれば、管理サーバ9は、解析サーバ11との通信を行うことなく、分散装置10及び判定装置12との通信から、イベントが解析サーバ11に投入されてから、そのイベントの解析が完了するまでの所要時間を推定することができる。この時間は、見積時間として、リアルタイム型の分散先の選択に用いられる。また、管理サーバ9は、見積時間の平均値を算出して分散装置10へ送信することにより、イベント毎のキューの状態を分散装置10へ送信する必要がなく、ネットワークの負荷を抑えることができる。この平均値は、平均見積時間として、一定時間型の分散先の選択に用いられる。
本実施例によれば、クライアントのアクセス等によって発生したログを対象として解析を行って、その結果をアプリケーションが利用するシステムにおいて、APによる要求時間に応じて、分散先の決定方法を選択することにより、CEPの負荷分散の効率を向上させ、解析システムの効率を向上させることができる。
APサーバ13には、短い要求時間内に解析結果を得ることを要求するAPや、それより長い要求時間内に解析結果を得られれば良いAP等が混在する場合がある。以上の実施例によれば、APにより定められた要求時間に対応するイベント型を判定し、イベント型に応じて、解析を行う解析サーバを選択し、解析の負荷を分散させることにより、複数のアプリケーションのそれぞれの要求を満たすように解析を実行することが可能である。従来の解析サーバへの負荷分散においては、APにより定められた要求時間に応じた分散が考慮されていない。そのため、要求時間を満たしつつ、イベントの種類に応じて効率良く分散させることは出来ない。
また、従来のスケールアウトによって解析システムの処理性能を向上させる場合、解析サーバの増加によるコストの増加が問題になる。本実施例では、複数の解析サーバで同じ解析を分散させ、解析を並列実行させ、複数の解析値から推定値を算出することにより、解析サーバ11の信頼性が低い場合であっても、推定値の信頼性を高めることができる。これにより、解析サーバ11は、汎用PC(Personal Computer)のハードウエアや、OSS(Open Source Software)の解析ロジックを用いることができる。
従って、以上の実施例は、高性能で高価な解析サーバを必要とせず、解析を担うソフトウエア費用を削減でき、解析システムのコストダウンを図ることが可能となる。
また、本実施例によれば、解析システムによる解析を止めることなく、複数の解析サーバ11の一部のハードウエア又はソフトウエアの交換を行うことができる。この交換により、複数の解析サーバ11の一部の信頼性が低下した場合でも、複数の解析値から推定値を算出することにより、推定値の信頼性を維持することができる。これにより、解析サーバ11のバージョンアップ等を容易に行うことができる。
従来、或る解析サーバにより実行されているCEPを特定の解析サーバへ移動させる技術は、移動中にCEPの解析を停止させる必要がある。一方、本実施例によれば、一つのイベントの解析を複数の解析サーバ11へ分散させるため、解析を行う解析サーバ11を変更する場合でも、他の解析サーバ11が解析を継続し、複数の解析値から推定値を算出することにより、解析システムの停止を防ぐことができる。
実施例1では、管理サーバ9は、分散装置10から分散先情報を受信した時刻と、判定装置12から解析結果受信情報を受信した時刻とから、解析サーバ11のキューの状態、要するに、解析サーバ11の負荷を推測する方法を説明した。
実施例2では、管理サーバ9は、解析サーバ11からキューの状態を示す情報を受信することにより、解析サーバ11のキューの状態を把握する方法、要するに、解析サーバ11から負荷を示す情報を取得し、その負荷を把握する方法を説明する。
以下、実施例1との相違点を中心に説明する。
図34は、実施例2の管理サーバ9の構成を示す。
実施例1の管理サーバ9のメモリ907と比較すると、本実施例の管理サーバ9のメモリ907は、新たに解析サーバ状態管理テーブル925を格納する。なお、本実施例においては、時間管理テーブル923が省かれても良い。
管理サーバ9の管理機能910は、解析サーバ11へキュー情報の問合せを送信する。その問合せを受信した解析サーバ11は、自身のキューの状態を示すキュー情報を管理サーバ9へ送信する。キュー情報を受信した管理機能910は、キュー情報に基づく情報を解析サーバ状態管理テーブル925へ登録する。キュー情報は例えば、当該解析サーバ11のキュー長(キューに溜まっている処理待ちイベント数)を含む。
図35は、実施例2の管理サーバ9における解析サーバ状態管理テーブル925を示す。
解析サーバ状態管理テーブル925は、解析サーバ11毎のレコードを有する。各レコードは、解析サーバ欄9251と、キュー長欄9252と、見積時間欄9253と、更新時刻欄9254欄とを有する。
解析サーバ欄9251には、解析サーバ11の識別情報が登録される。キュー長欄9252には、当該解析サーバ11のキュー長が登録される。見積時間欄9253には、新たに当該解析サーバ11のキューへ積んだイベントの解析が完了するまでの見積時間(待ち時間)が登録される。言い換えれば、この見積時間は、現在のキューに登録されているイベントの解析時間の総和である。更新時刻欄9254欄には、当該レコードが更新された時刻が登録される。
キュー情報を受信した管理機能910は、送信元の解析サーバ11の識別情報と、キュー情報に含まれたキュー長と、キュー情報を受信した時刻とを、解析サーバ状態管理テーブル925へ登録する。更に管理機能910は、解析ロジック管理テーブル921内の解析時間に、解析サーバ11から受信したキュー情報内のキュー長を乗じることにより、見積時間を算出し、解析サーバ状態管理テーブル925へ登録する。
実施例1において、管理サーバ9は、解析サーバ11の前後に配される分散装置10及び判定装置12から、分散先情報及び解析結果受信情報をそれぞれ取得し、これらを取得した時刻を基にして、各解析サーバ11のキューの状況、要するに、負荷を推測し、推測した結果を時間管理テーブル923の見積時間として格納する。
一方、実施例2において、管理サーバ9は、解析サーバ11へ問合せを行ってキューの状況、要するに、負荷情報を取得し、取得した結果を解析サーバ状態管理テーブル925の見積時間として格納する。実施例1の時間管理テーブル923の見積時間の代わりに、解析サーバ状態管理テーブル925の見積時間を用いることにより、実施例1と同様の制御を行うことができると共に、その制御の精度を向上させることができる。
なお、分散装置10は、解析サーバ11のキュー長を管理サーバ9経由で取得し、取得されたキュー長を分散管理テーブル121へ記憶することで、解析サーバ11のキューの状況を把握、要するに、負荷情報を取得しても良い。更に、分散装置10が、新たにイベントのキューを有し、例えば一定時間型イベントの分散を行う際に、解析サーバ11のキュー長の情報を基にして、解析サーバ11のキューが一定量を超えないよう、イベントを分散装置10のキューへ格納すると共に分散先を決めて、要するに、取得した負荷情報に基づき、各解析サーバ11に係る負荷が所定量を超えないように、イベント転送を制御しても良い。
実施例3では、或るログ出力サーバ8における一連のイベントが同一の解析サーバ11により解析される。
以下、実施例1との相違点を中心に説明する。
図36は、実施例3の分散装置10の構成を示す。
実施例1の分散装置10と比較すると、本実施例の分散装置10のメモリ107は、更にセッション管理テーブル124を格納する。
図37は、実施例3の分散装置10におけるセッション管理テーブル124を示す。
セッション管理テーブル124は、クライアント7とログ出力サーバ8の間に張られたセッションと、解析サーバ11との対応付けを示す。セッション管理テーブル124は、セッション毎のレコードを有する。各レコードは、セッションID欄1241と、分散先欄1242と、イベント型欄1243と、イベント種別欄1244とを有する。
セッションID欄1241には、クライアント7とログ出力サーバ8の間に張られたセッションの識別情報が登録される。分散先欄1242には、当該セッション内のイベントが転送された分散先の解析サーバ11の識別情報が登録される。イベント型欄1243には、転送されたイベントのイベント型が登録される。イベント種別欄1244には、転送されたイベントのイベント種別が登録される。
セッションとは、アクセス単位の1つであり、クライアント7とログ出力サーバ8の間で通信を行うための、論理的な接続関係である。
図38は、実施例3の分散装置10による分散処理を示す。
実施例1の分散処理と比較すると、本実施例の分散処理は、ステップS283の代わりに、ステップS351〜S356を有する。
ステップS281の後、分散装置10の分散機能111は、受信されたイベントが新たなセッションの開始であるか否かを判定する(ステップS351)。ここで、セッションの開始時のイベントは、セッションの開始を示す情報を含んでいても良い。この場合、分散機能111は、受信されたイベントが新たなセッションの開始を示す情報を含むか否かを判定しても良い。また、分散機能111は、セッション管理テーブル124内に、受信されたイベントのイベント型及びイベント種別に対応するセッションのレコードがあるか否かを判定しても良い。
受信されたイベントが新たなセッションの開始であると判定された場合(ステップS351:Y)、分散機能111は、実施例1と同様のステップS282により、当該イベントのイベント型がリアルタイム型であるか否かを判定する。イベント型がリアルタイム型であると判定された場合、分散機能111は、実施例1と同様のステップS283により、管理サーバ9から分散先を取得し、処理をステップS353へ移す。イベント型がリアルタイム型でない(一定時間型である)と判定された場合、実施例1と同様のステップS287により、分散管理テーブル121に基づいて分散先を決定し、処理をステップS353へ移す。その後、分散機能111は、セッション管理テーブル124において、開始されたセッションのレコードを作成し(ステップS353)、処理を実施例1と同様のステップS285へ移す。
受信されたイベントが新たなセッションの開始でないと判定された場合(ステップS351:N)、分散機能111は、セッション管理テーブル124において、受信されたイベントに対応するセッションのレコードを選択し、そのレコードに示された分散先の解析サーバ11を分散先として選択する(ステップS354)。ここで、分散機能111は、セッション管理テーブル124において、イベント型欄1243及びイベント種別欄1244に夫々示されたイベント型及びイベント種別が、受信されたイベントと一致するレコードを選択する。その後、分散機能111は、セッション管理テーブル124において、選択されたレコードの分散先欄1242に示された分散先の解析サーバ11を選択する。
その後、分散機能111は、受信されたイベントがセッションの終了であるか否かを判定する(S355)。ここで、セッションの終了時のイベントは、セッションの終了を示す情報を含んでいても良い。この場合、分散機能111は、受信されたイベントが新たなセッションの終了を示す情報を含むか否かを判定しても良い。
受信されたイベントがセッションの終了でないと判定された場合(ステップS355:N)、分散機能111は、処理をステップS285へ移す。
受信されたイベントがセッションの終了であると判定された場合(ステップS355:Y)、分散機能111は、セッション管理テーブル124において、選択されたセッションのレコードを削除し、処理を実施例1と同様のステップS285へ移す。以後の処理は実施例1と同様である。以上が、本実施例の分散処理である。
なお、分散機能111は、セッションの代わりに、トランザクション等、他の一連の操作内のイベントを同一の分散先へ送信しても良い。
本実施例によれば、解析サーバ11は、一連のイベントの解析を行うことができる。例えば、ログ出力サーバ8において、或るイベントと、それに続くイベントが関連している場合に、分散装置10は、それらのイベントを同一の解析サーバ11へ転送することにより、その解析サーバ11は、それらのイベントを用いて解析を行うことができる。これにより、複数のイベントにより夫々示される値の変化を解析する場合や、或るクライアント7による一連の操作を解析する場合等であっても、適切な負荷分散を行うことができる。例えば、或る株価の変動を解析する場合や、クライアント7における一連の操作を解析する場合に本実施例を適用することができる。
本発明は、以上の実施例に限定されるものでなく、その趣旨から逸脱しない範囲で、他の様々な形に変更することができる。
5、6、14、15、16、17、18、19:ネットワーク、 7:クライアント、 8:ログ出力サーバ、 9:管理サーバ、 10:分散装置、 11:解析サーバ、 12:判定装置、 13:APサーバ

Claims (18)

  1. n個(nは3以上)の処理装置に接続された分散装置と、
    前記分散装置に接続された管理装置と、を備える処理制御システムであって、
    前記管理装置は、
    前記n個の処理装置の夫々について、処理対象情報の処理において要した時間を示す時間情報を取得し、
    前記n個の処理装置の夫々が前記処理対象情報の処理に掛かる所要時間を、前記時間情報に基づいて推定して推定時間とし、
    前記推定時間及び前記処理装置の関係を示す推定時間情報を前記分散装置へ送信し、
    前記分散装置は、
    セッションの開始を示す処理対象情報と前記推定時間情報に基づいて、前記処理装置のm個(1<m<n)を、前記セッションに属する一連の処理対象情報を処理させる指定処理装置と決定し、
    前記一連の処理対象情報を、前記m個の指定処理装置へ送信する
    ことを特徴とする処理制御システム。
  2. 請求項に記載の処理制御システムであって、
    前記管理装置は、
    前記時間情報に基づいて過去の所要時間に関する所要時間情報を記憶し、
    前記所要時間情報に基づいて前記過去の所要時間の平均値を算出して前記推定時間とし、
    当該推定時間を、前記m個の指定処理装置の決定に用いる
    ことを特徴とする処理制御システム。
  3. 請求項に記載の処理制御システムであって、
    前記管理装置は、前記n個の処理装置の夫々の前記推定時間を示す前記推定時間情報と、前記指定処理装置の数を示すmとを前記分散装置へ送信し、
    前記セッションの開始を示す処理対象情報が所定の第1分類に属する場合、前記分散装置は、前記n個の処理装置の中から前記推定時間が短い順に前記m個の指定処理装置を選択する
    ことを特徴とする処理制御システム。
  4. 請求項1からのいずれか一に記載の処理制御システムであって、
    前記セッションの開始を示す処理対象情報が所定の第2分類に属する場合、前記分散装置は、前記推定時間情報の問合せを前記管理装置へ送信し、
    前記管理装置は、前記問合せを受信した場合、
    前記n個の処理装置の中から前記推定時間が短い順に前記m個の指定処理装置を選択し、
    前記m個の指定処理装置を示す前記推定時間情報を前記分散装置へ送信する
    ことを特徴とする処理制御システム。
  5. 請求項1からのいずれか一に記載の処理制御システムであって、
    前記管理装置は、
    前記n個の処理装置の夫々のキューの状態を示すキュー情報を、前記n個の処理装置から受信し、
    前記キュー情報に基づいて前記情報算出する
    ことを特徴とする処理制御システム。
  6. 請求項1に記載の処理制御システムであって、
    前記n個の処理装置に接続された処理結果判定装置を備え、
    前記m個の指定処理装置の夫々は、
    前記処理対象情報を処理することにより処理結果を算出し、
    前記処理結果を前記処理結果判定装置へ送信し、
    前記処理結果判定装置は、
    前記m個の指定処理装置からm個の処理結果を夫々受信し、
    所定の方法により前記m個の処理結果から真の値を推定して推定値とし、
    他の処理装置へ前記推定値を送信する
    ことを特徴とする処理制御システム。
  7. 請求項6に記載の処理制御システムであって、
    前記処理対象情報に対して、前記推定時間の上限が予め定められており、
    前記管理装置は、前記推定時間情報を前記分散装置へ送信し、
    前記分散装置は、前記推定時間情報に基づいて、前記上限を満たす処理装置の中から前記m個の指定処理装置を決定する
    ことを特徴とする処理制御システム。
  8. 請求項またはに記載の処理制御システムであって、
    前記処理結果判定装置は、
    処理結果毎に受信された数をカウントし、
    前記m個の処理結果の中で、最も多く受信された処理結果を前記推定値として選択する
    ことを特徴とする処理制御システム。
  9. 請求項に記載の処理制御システムであって、
    前記管理装置は、前記指定処理装置の数を示すmを前記処理結果判定装置へ送信し、
    前記処理結果判定装置は、
    前記最も多く受信された処理結果の数が、前記mの半数を超えた場合、前記最も多く受信された処理結果を前記推定値として選択し、
    前記推定値を前記処理装置へ送信する
    ことを特徴とする処理制御システム。
  10. n個(nは3以上)の処理装置を備えるシステムにおける情報の処理方法であって、
    前記n個の処理装置の夫々について、処理対象情報の処理において要した時間を示す時間情報を取得し、
    前記n個の処理装置の夫々が前記処理対象情報の処理に掛かる所要時間を、前記時間情報に基づいて推定して推定時間とし、
    セッションの開始を示す処理対象情報と、前記推定時間及び前記処理装置の関係を示す推定時間情報とに基づいて、前記処理装置のm個(1<m<n)を、前記セッションに属する一連の処理対象情報を処理させる指定処理装置と決定し、
    前記一連の処理対象情報を、前記m個の指定処理装置に処理させる
    ことを特徴とする情報の処理方法。
  11. 請求項10に記載の情報の処理方法であって、
    前記時間情報に基づいて過去の所要時間に関する所要時間情報を記憶し、
    前記所要時間情報に基づいて前記過去の所要時間の平均値を算出して前記推定時間とし、
    当該推定時間を、前記m個の指定処理装置の決定に用いる
    ことを特徴とする情報の処理方法。
  12. 請求項11に記載の情報の処理方法であって、
    分散装置が前記n個の処理装置に接続され、管理装置が前記分散装置に接続され、
    前記管理装置が、前記n個の処理装置の夫々の前記推定時間を示す前記推定時間情報と、前記m個の指定処理装置の数を示すmとを前記分散装置へ送信し、
    前記セッションの開始を示す処理対象情報が所定の第1分類に属する場合、前記分散装置が、前記n個の処理装置の中から前記推定時間が短い順に前記m個の指定処理装置を選択する
    ことを特徴とする情報の処理方法。
  13. 請求項10から12のいずれか一に記載の情報の処理方法であって、
    分散装置が前記n個の処理装置に接続され、管理装置が前記分散装置に接続され、
    前記セッションの開始を示す処理対象情報が所定の第2分類に属する場合、前記分散装置が、前記推定時間情報の問合せを前記管理装置へ送信し、
    前記管理装置が、前記問合せを受信した場合、
    前記n個の処理装置の中から前記推定時間が短い順に前記m個の指定処理装置を選択し、
    前記m個の指定処理装置を示す前記推定時間情報を前記分散装置へ送信する
    ことを特徴とする情報の処理方法。
  14. 請求項10から13のいずれか一に記載の情報の処理方法であって、
    前記n個の処理装置の夫々のキューの状態を示すキュー情報を、前記n個の処理装置から受信し、
    前記キュー情報に基づいて前記情報算出する
    ことを特徴とする情報の処理方法。
  15. 請求項10に記載の情報の処理方法であって、
    前記m個の指定処理装置の夫々が、
    前記処理対象情報を処理することにより算出したm個の処理結果から、所定の方法により、真の値を推定して推定値とする
    ことを特徴とする情報の処理方法。
  16. 請求項15に記載の情報の処理方法であって、
    前記処理対象情報に対して、前記推定時間の上限を予め定め、
    前記推定時間情報に基づいて、前記上限を満たす処理装置の中から前記m個の指定処理装置を決定する
    ことを特徴とする情報の処理方法。
  17. 請求項15または16に記載の情報の処理方法であって、
    前記m個の処理結果の中で、最多の処理結果を前記推定値として選択する
    ことを特徴とする情報の処理方法。
  18. 請求項17に記載の情報の処理方法であって、
    前記最多の処理結果の数が、前記指定処理装置の数mの半数を超えた場合、前記最多の処理結果を前記推定値として選択する
    ことを特徴とする情報の処理方法。
JP2015506685A 2013-03-19 2014-03-04 処理制御システム、処理制御方法、および処理制御プログラム Expired - Fee Related JP6062034B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2013056844 2013-03-19
JP2013056844 2013-03-19
PCT/JP2014/055475 WO2014148247A1 (ja) 2013-03-19 2014-03-04 処理制御システム、処理制御方法、および処理制御プログラム

Publications (2)

Publication Number Publication Date
JP6062034B2 true JP6062034B2 (ja) 2017-01-18
JPWO2014148247A1 JPWO2014148247A1 (ja) 2017-02-16

Family

ID=51579936

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015506685A Expired - Fee Related JP6062034B2 (ja) 2013-03-19 2014-03-04 処理制御システム、処理制御方法、および処理制御プログラム

Country Status (3)

Country Link
US (1) US9501326B2 (ja)
JP (1) JP6062034B2 (ja)
WO (1) WO2014148247A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6610100B2 (ja) * 2015-09-07 2019-11-27 富士通株式会社 ログ分析方法、プログラム及び情報処理装置
JP2018036830A (ja) * 2016-08-31 2018-03-08 日本電信電話株式会社 処理システム、処理方法、処理サーバ、処理プログラム、評価サーバおよび評価プログラム
JP6866092B2 (ja) * 2016-09-14 2021-04-28 株式会社東芝 中継装置、中継システム、中継プログラム、及び中継方法
JP6399127B2 (ja) * 2017-03-08 2018-10-03 日本電気株式会社 システム管理装置、システム管理方法、プログラム、情報処理システム
DE102017124354A1 (de) * 2017-10-18 2019-04-18 Infineon Technologies Ag Verfahren und vorrichtung zum verarbeiten von daten
US11734131B2 (en) * 2020-04-09 2023-08-22 Micron Technology, Inc. Memory device having redundant media management capabilities
CN111858043B (zh) * 2020-07-10 2024-03-22 海尔优家智能科技(北京)有限公司 服务请求的处理方法及装置、存储介质、电子装置
CN113407322B (zh) * 2021-06-21 2022-05-06 平安国际智慧城市科技股份有限公司 多终端的任务分配方法、装置、电子设备及可读存储介质
EP4148581B1 (en) * 2021-09-10 2023-08-30 Axis AB Verification of updated analytical procedures in monitoring systems

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008152618A (ja) * 2006-12-19 2008-07-03 Fujitsu Ltd ジョブ割当プログラム、方法及び装置
JP2009230581A (ja) * 2008-03-24 2009-10-08 Nippon Telegr & Teleph Corp <Ntt> バッチジョブ制御システム、管理ノード、およびバッチジョブ制御方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07306794A (ja) 1994-05-12 1995-11-21 Mitsubishi Electric Corp 分散システム及び分散システムの高信頼化方法
JP2003029989A (ja) * 2001-07-16 2003-01-31 Matsushita Electric Ind Co Ltd 分散処理システムおよびジョブ分散処理方法
US7500133B2 (en) * 2004-12-28 2009-03-03 Sap Ag Connection manager for handling message oriented protocol-based requests
JP2006259812A (ja) 2005-03-15 2006-09-28 Hitachi Ltd 動的キュー負荷分散方法、システム及びプログラム
JP2007249491A (ja) * 2006-03-15 2007-09-27 Fujitsu Ltd マルチサーバ環境においてバッチジョブを分散させるプログラム、装置、および方法
US8434085B2 (en) * 2008-05-09 2013-04-30 International Business Machines Corporation Scalable scheduling of tasks in heterogeneous systems
US8321870B2 (en) * 2009-08-14 2012-11-27 General Electric Company Method and system for distributed computation having sub-task processing and sub-solution redistribution
JP5664098B2 (ja) 2010-10-05 2015-02-04 富士通株式会社 複合イベント分散装置、複合イベント分散方法および複合イベント分散プログラム
US9110724B2 (en) * 2011-02-08 2015-08-18 Microsoft Technology Licensing, Llc Selecting computing nodes in cloud service using replication topologies

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008152618A (ja) * 2006-12-19 2008-07-03 Fujitsu Ltd ジョブ割当プログラム、方法及び装置
JP2009230581A (ja) * 2008-03-24 2009-10-08 Nippon Telegr & Teleph Corp <Ntt> バッチジョブ制御システム、管理ノード、およびバッチジョブ制御方法

Also Published As

Publication number Publication date
WO2014148247A1 (ja) 2014-09-25
US9501326B2 (en) 2016-11-22
JPWO2014148247A1 (ja) 2017-02-16
US20160011909A1 (en) 2016-01-14

Similar Documents

Publication Publication Date Title
JP6062034B2 (ja) 処理制御システム、処理制御方法、および処理制御プログラム
US11171969B2 (en) Systems and methods for real-time configurable load determination
CN109218355B (zh) 负载均衡引擎,客户端,分布式计算***以及负载均衡方法
US20200314168A1 (en) Distributed code execution involving a serverless computing infrastructure
CN102918813B (zh) 用于数据负载均衡的设备和方法
CN102281190B (zh) 负载均衡装置组网方法以及服务器、客户端接入方法
US9628556B2 (en) Decentralized request routing
CN109951576A (zh) 由计算设备提供的服务的健康状况监视
CN102859961B (zh) 具有自适应的文件处理的分布式视频转码***
US20150106787A1 (en) Elastic application framework for deploying software
JP6272190B2 (ja) 計算機システム、計算機、負荷分散方法及びそのプログラム
US20140115183A1 (en) Information processing method, recording medium, and information processing apparatus
CN109510878A (zh) 一种长连接会话保持方法和装置
CN114338695B (zh) 基于多副本的领导者选举方法、装置、设备及存储介质
JP2012022555A (ja) サーバ構成管理システム
CN103825963B (zh) 虚拟服务迁移方法
CN108063814A (zh) 一种负载均衡方法及装置
US11838193B1 (en) Real-time load limit measurement for a plurality of nodes
CN116723154A (zh) 一种基于负载均衡的路由分发方法及***
JP2017174038A (ja) 情報処理システム、情報処理方法およびプログラム
US11558263B2 (en) Network device association with network management system
CN111447282B (zh) 用于确定传输路径的方法和装置
US11695700B2 (en) Information processing apparatus, computer-readable recording medium storing overload control program, and overload control method
US9128774B2 (en) Information processing system for data transfer
CN112738193B (zh) 云计算的负载均衡方法及装置

Legal Events

Date Code Title Description
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: 20161206

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161213

R150 Certificate of patent or registration of utility model

Ref document number: 6062034

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees