JP6639245B2 - サーバシステム、サーバシステムを制御する方法およびプログラム。 - Google Patents

サーバシステム、サーバシステムを制御する方法およびプログラム。 Download PDF

Info

Publication number
JP6639245B2
JP6639245B2 JP2016007428A JP2016007428A JP6639245B2 JP 6639245 B2 JP6639245 B2 JP 6639245B2 JP 2016007428 A JP2016007428 A JP 2016007428A JP 2016007428 A JP2016007428 A JP 2016007428A JP 6639245 B2 JP6639245 B2 JP 6639245B2
Authority
JP
Japan
Prior art keywords
health check
request
response
server
web application
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
JP2016007428A
Other languages
English (en)
Other versions
JP2017129935A (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.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2016007428A priority Critical patent/JP6639245B2/ja
Priority to US15/406,449 priority patent/US11005927B2/en
Publication of JP2017129935A publication Critical patent/JP2017129935A/ja
Application granted granted Critical
Publication of JP6639245B2 publication Critical patent/JP6639245B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/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
    • 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/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Description

本発明は、ロードバランサに接続され、仮想サーバを備えたサーバシステム、サーバシステムを制御する方法およびプログラムに関する。
クライアントとサーバから構成されるクライアント・サーバシステムにおいて、クライアントの数が増加するにつれサーバの負荷が増大しシステム全体の処理能力が低下する。このため、複数のサーバを連結し、クライアントに対してはあたかも1台の大規模なサーバであるかのようにみせるための技術である負荷分散技術が提供されている。負荷分散を実現するためにはサーバの稼働状況を監視し、クライアントからのリクエストが特定のサーバに偏らないようにリクエストを各サーバに均等に振り分ける負荷分散装置が必要である。負荷分散装置は、ロードバランサと呼称することもある。
従来のロードバランサにおいては、サーバのCPU利用率を取得して、CPU利用率の低いサーバに対してクライアントからのリクエストを転送することでシステム全体の負荷状況を均等にする技術がある(特許文献1参照)。また、ロードバランサは、サーバで稼働するアプリケーションプログラムを仮想的に動作させて、正常な応答が返ってくるかどうかを確認したうえでシステムの稼働状況を把握する技術がある(特許文献2参照)。システムの稼働状況を把握するために行う確認作業をヘルスチェックと呼ぶ。
特開2008−94718号公報 特開2012−185577号公報
特許文献1に記載の技術はサーバの稼働状況までしか判別できず、サーバ上で動作するアプリケーションが正常に動作するかどうかは判断できない。一方、特許文献2に記載の技術は、サーバ上で複数のアプリケーションが動作するような構成において、それぞれのアプリケーションがロードバランサからのヘルスチェックに対応する機能を実装する必要がある。
本発明では、サーバ上で複数のアプリケーションが動作する構成において、各アプリケーションにヘルスチェックに対応する機能を実装することなく、アプリケーションのヘルスチェックを行うことを目的の1つとする。
本発明の一実施形態に係るサーバシステムは、クライアントのリクエストを分散して送信するロードバランサと通信可能であり、複数の仮想サーバを備えたサーバシステムであって、前記リクエストの送信対象とすることが可能な仮想サーバであるか否かを確認するため、前記ロードバランサから各仮想サーバに対し送信されるヘルスチェックを受信する受信手段と、前記受信手段によりヘルスチェックを受信したことに応じて、前記ヘルスチェックを受信した仮想サーバ内に配備される複数のWebアプリケーションに対し、予め決められた任意のリクエストを送信する送信手段と、前記送信手段により送信された任意のリクエストに対するレスポンスを各Webアプリケーションから受信し、受信した全てのレスポンスが正常にWebアプリケーションが稼働していることを示すレスポンスであることを確認したことに応じて、前記ロードバランサにヘルスチェック成功の旨を送信する制御手段と、を有することを特徴とする。
本発明では、サーバ上で複数のアプリケーションが動作する構成において、各アプリケーションにヘルスチェックに対応する機能を実装することなく、アプリケーションのヘルスチェックを行うことが可能となる。
システム全体構成図 コンピュータハードウェア構成図 ロードバランサソフトウェア構成図 サーバソフトウェア構成図 Webサーバソフトウェア構成図 アプリケーションサーバソフトウェア構成図 ロードバランサがサーバのヘルスチェックを行う一連の処理を示したフローチャート Webサーバが実施するヘルスチェック処理を示したフローチャート アプリケーションサーバが実施するログ出力処理を示したフローチャート
[実施例1]
以下、本発明を実施するための形態について図面を用いて説明する。図1は、本発明に係るWebアプリケーションシステムの全体構成を示すブロック図である。ネットワーク100は、図1に示すブロック図の各構成要素のうちクライアント装置101、ロードバランサ102、物理サーバ103、仮想サーバ104、105を接続する通信経路である。ネットワーク100は、各構成要素間で通信を行うための基盤であって、イントラネット、インターネットもしくはその他のネットワークシステムであっても構わない。クライアント装置101は、図1に示すブロック図の各構成要素のうち、ネットワーク100を介してロードバランサ102、物理サーバ103、仮想サーバ104、105と相互に通信可能である。
本実施例においては、クライアント装置101はPC(パーソナルコンピュータ。以降、PCと呼称する。)を前提に説明を進めるが、ネットワーク100を介した通信機能を有する端末であれば種別は問わない。ロードバランサ102は、Webアプリケーションシステムを構成するサーバ1台あたりの負荷を抑える装置である。ロードバランサ102は、ネットワーク100を介して、クライアント装置101から送信されるWebアプリケーションシステムへのリクエストを、物理サーバ103上の仮想サーバ104、に振り分ける。
本実施例におけるWebアプリケーションシステムは物理サーバ103で稼働する複数台の仮想サーバ104、105によって構成されるものとして説明する。物理サーバ103は、ネットワーク100を介してクライアント装置101にWebアプリケーションの利用させる物理サーバである。
仮想サーバ104、105は、物理サーバ103上で稼働するアプリケーションソフトウェアによって実現される仮想サーバ装置である。物理サーバ103のハードウェアにて専用の仮想マシンソフトウェアを実行することによって複数の仮想的なサーバ装置を配備することが可能となる。Webアプリケーションシステムを構成するアプリケーションソフトウェアは仮想サーバ104、105に配備し、クライアント装置101からのリクエストは仮想サーバ104、105が実行する。仮想サーバ104、105の稼働状況は随時ロードバランサ102によって監視される。なお、図1では物理サーバ103のみを記載しているが、その台数を1台に限定するものではない。1台以上の複数台の物理サーバを用意し、夫々の物理サーバ内に複数の仮想サーバを稼働させ、夫々の仮想サーバがロードバランサ102により振り分けられるリクエストを処理する構成を想定している。無論、物理サーバ103が1台で、仮想サーバが1つのみ稼働している状況であっても良い。
図2は、本発明に係るクライアント装置101、ロードバランサ102、物理サーバ103のハードウェア構成図の一例を示すブロック図である。システムバス200は、各ハードウェアを相互に接続するバスである。本実施例においては特に断らない限り、システムバス200はCPU203からの制御命令を、システムバスに接続された各ハードウェアに伝播させるものとする。ユーザインタフェース201は、ディスプレイ、キーボード、マウスなどによる情報の入出力を行うハードウェアである。これらのハードウェアを備えないコンピュータは、リモート接続などにより、他のコンピュータからネットワーク100を介して接続および操作することも可能である。
ネットワークインターフェース202は、ネットワーク100などのネットワークに接続して、他のコンピュータやネットワーク機器との通信を行うハードウェアである。CPU203は、ROM204、RAM205、二次記憶装置206から読み込んだプログラムを実行し、各機能を実現する。システムバス200で接続される各構成要素を直接的、あるいは間接的に制御する。ROM204は、読み込み専用の記憶装置であり、BIOS等の組込済みプログラムおよびデータが記録されている。RAM205は、CPU203が動作するためのワーク領域として利用される一時メモリ領域である。二次記憶装置206は、基本ソフトウェアであるOSやその他ソフトウェアモジュールが記憶されているHDDに代表されるような外部記憶装置である。なお、仮想サーバ104、105においては、図2に示した各ハードウェア要素が仮想マシンソフトウェアによって仮想的に実現され、その挙動は物理サーバ103と同様の挙動をとるものとする。仮想サーバ104、105の夫々のハードウェア要素は、実際は物理サーバ103のハードウェアリソースの一部を利用し再現しているものである。仮想化の技術に関しては一般的な機能であるため詳細は割愛する。
図3は、本発明に係るロードバランサ102のソフトウェアモジュールの構成図を示すブロック図である。これらのソフトウェアモジュールはロードバランサ102の二次記憶装置206で管理され、CPU203により実行され、各機能が実現する。なお、本実施例と直接関係のない処理については記載を省略する。
制御部300は、ロードバランサ102の全体を制御し、ソフトウェアモジュールの各構成要素に対する指示および管理を行う。受信部301は、ネットワーク100を介して接続されるクライアント装置101から送信されるリクエストの受信処理を行う。受信部301がクライアント装置から受信するリクエストのデータ例をHTTPリクエストデータテーブルに示す。

HTTPリクエストカラムには、リクエストの送信先URL、リクエストのHTTPメソッド、リクエストの送信プロトコルの値が格納される。表1に示した例の場合、送信URLは「http://webapp.com/app1/method1」、HTTPメソッドは「GET」、送信プロトコルは「HTTP/1.1」となる。HTTPヘッダカラムには、リクエストに関連するHTTPヘッダ情報が格納される。ロードバランサ102における挙動とは関係のないため、説明を省略する。HTTPボディカラムには、リクエストに関連するHTTPボディ情報が格納される。ロードバランサ102における挙動とは関係のないため、説明を省略する。
送信部302は、ネットワーク100を介して、仮想サーバ104、105にクライアント装置101から受信したリクエストを送信する。また、送信部302は、仮想サーバ104から受信したレスポンスをクライアント装置101に送信する。サーバ情報管理部303は、ロードバランサ102がクライアント装置101からのリクエストの振り分け対象となる仮想サーバの情報を管理する。受信部301がクライアント装置101からリクエストを受信した場合には、送信部302はサーバ情報管理部303で管理する情報に基づきリクエストの振り分け先となる仮想サーバを決定する。サーバ情報管理部303で管理される振り分け先の仮想サーバのサーバ情報のデータ例をサーバ情報テーブルに示す。

管理IDカラムは、ロードバランサ102がリクエストの振り分けを行うサーバの情報を一意に管理するために付与されたIDを格納するカラムである。振り分け先サーバURLカラムは、リクエストの振り分け先として候補となる仮想サーバのURLを格納するカラムである。ロードバランサ102は、本カラムに登録されているURLにクライアント装置101からのリクエストを転送する。稼働状況カラムは、リクエストの振り分け先として候補となる仮想サーバの稼働状況情報を格納するカラムである。稼働状況情報は後述するヘルスチェック実行部305によって取得される。 前回確認日時カラムは、前回のヘルスチェックが完了した日時を格納するカラムである。
ロードバランサ102によるリクエストの振り分けの方法については、本実施例の対象ではないため説明を省略する。一般的には、サーバ情報テーブルに登録された振り分け先を順番に振り分けていく方法や、特許文献2に示したようにサーバの負荷状況の軽いサーバに優先的に振り分ける方法など様々な方法がある。ヘルスチェック設定管理部304は、ロードバランサ102がクライアント装置101からのリクエストを振り分ける仮想サーバに対するヘルスチェックの設定情報を管理する。ヘルスチェック設定管理部304で管理されるヘルスチェックの設定情報のデータ例をヘルスチェック設定情報テーブルに示す。

ヘルスチェックURLカラムは、ヘルスチェックリスエストの送信先URLを格納するカラムである。ヘルスチェックURLは相対パスで記載される。タイムアウトカラムは、ロードバランサ102がヘルスチェックリクエストを送信してから応答を受信するまでのタイムアウト時間を格納するカラムである。本カラムに格納された時間以上経過してもヘルスチェックの応答が返ってこなかった場合にはロードバランサ102はヘルスチェック結果が非正常と判断する。ロードバランサ102は、非正常となった仮想サーバをリクエストの振り分け対象から外すことで、リクエストの処理が行われない状況を回避する。
正常閾値カラムは、ロードバランサ102がヘルスチェックの結果を“正常”と判定するために、リクエストの正常応答を連続して受信する回数を格納するカラムである。ヘルスチェック実行部305は正常閾値カラムに格納された値の回数分だけ正常応答を受信すると、サーバ情報テーブル内のサーバの稼働状況カラムの値を“正常”に更新する。非正常閾値カラムは、ロードバランサ102がヘルスチェックの結果を“非正常”と判定するために、リクエストのエラー応答を連続して受信する回数を格納するカラムである。ヘルスチェック実行部305は非正常閾値カラムに格納された値の回数分だけエラー応答を受信すると、サーバ情報テーブルの該当するサーバの稼働状況カラムの値を“非正常”に更新する。
また、ロードバランサ102のヘルスチェック実行部305は、サーバ情報テーブルの該当するレコードの前回確認日時カラムの値に、ヘルスチェックの応答を受信した日時を格納する。ヘルスチェック実行部305は、サーバ情報テーブルに登録されたそれぞれの仮想サーバに対してヘルスチェックリクエストを送信する。ヘルスチェックリクエストの設定についてはヘルスチェック設定情報テーブルに従って送信される。また、ヘルスチェック実行部305は、ヘルスチェックリクエストの応答を解析し、ヘルスチェックの結果が正常であったか非正常であったかを確認する。ヘルスチェックの結果が正常である仮想サーバはクライアントから送信されたリクエストの送信対象となる仮想サーバと見做される。
図4は、本発明に係る仮想サーバ104、105のソフトウェア構成図を示すブロック図である。Webサーバ401は、クライアント装置101からリクエストを受信するWebサーバソフトウェアである。Webサーバ401は、クライアント装置101から受信した処理を実行し、その結果からレスポンスを生成し、クライアント装置101に返す。また、Webサーバ401は、クライアント装置101から受信したリクエストをアプリケーションサーバ402に転送して、アプリケーションサーバ402での処理の実行結果をレスポンスとして、クライアント装置101に返すこともある。クライアント装置101からのリクエストの内容によって適宜何れかの処理がWebサーバ401によって実行される。
アプリケーションサーバ402は、Webサーバ401から転送されたクライアント装置101のリクエストを処理するアプリケーションサーバソフトウェアである。アプリケーションサーバには1つ以上のアプリケーション403、404が配備されており、リクエストの内容に応じてアプリケーションサーバ403が実行するアプリケーションを決定する。即ち、1つの仮想サーバ内には複数のアプリケーションが配備されていることになる。アプリケーションサーバ402は、リクエストの実行結果をWebサーバ401に転送する。
本実施例においては、Webサーバ401およびアプリケーションサーバ402が同一の仮想サーバ104、105上にそれぞれ存在する前提で説明を行う。Webサーバ401およびアプリケーションサーバ402の詳細な説明については後述する。また、本実施例においてはアプリケーションサーバ402に配備されているアプリケーションの数を2つとしているが、その数を限定する意図で記載しているわけではない。アプリケーションサーバ402に配備されるアプリケーションの数は1つ以上であればその数を限定するものではない。本実施例において、アプリケーション403、404の処理内容、それぞれ受信するリクエストの例を表8に示す。

アプリケーションカラムは、仮想サーバ104、105で稼働するアプリケーションを識別する値を格納するカラムである。アプリケーションURLカラムは、アプリケーションへリクエストを送信する場合のURLの値を格納するカラムである。アプリケーション概要カラムは、アプリケーションが実現する具体的な内容を格納するカラムである。公開機能カラムは、アプリケーションがクライアント装置101に対して公開している機能名称を格納するカラムである。HTTPメソッドカラムは、公開機能カラムに示した機能をクライアント装置101が実行するためにリクエストを送信する際のHTTPメソッドを定義したカラムである。リクエストフォーマットカラムは、公開機能カラムに示した機能をクライアント装置101が実行するためにリクエストを送信する際のリクエストボディに格納するデータのフォーマットを定義したカラムである。この定義に反する値をリクエストボディに格納して、各アプリケーションにリクエストを送信した場合、アプリケーションは通常エラーを返す。例えば、アプリケーション403は製品情報を管理するアプリケーションであり、アプリケーション404はユーザ情報を管理するアプリケーションとする。
図5は、本発明に係るWebサーバ401のソフトウェアモジュールの構成図を示すブロック図である。これらのソフトウェアは仮想サーバ104、105の二次記憶装置206で管理され、仮想サーバ104、105のCPU203により実行され、仮想サーバ上にて各機能が実現する。なお、本実施例と直接関係のない処理部については記載を省略する。
制御部500は、Webサーバ401の全体を制御し、ソフトウェアモジュールの各構成要素に対する指示および管理を行う。受信部501は、ネットワーク100を介して接続されるクライアント装置101、ロードバランサ102から送信されるリクエストの受信処理を行う。クライアント装置101からのリクエストは主にアプリケーションサーバ402に配備されたアプリケーションへの実行要求である。ロードバランサ102からのリクエストはサーバ103のヘルスチェックリクエストである。送信部502はネットワーク100を介して、クライアント装置101、ロードバランサ102にレスポンスを送信する。また、送信部502は、ネットワーク100を介してアプリケーションサーバ402に、受信したリクエストを転送する。ヘルスチェックスクリプト実行部503は、受信部501が受信したリクエストがロードバランサ102からのヘルスチェックリクエストであった場合に、ヘルスチェック処理を実行する。受信部501が受信するリクエストのデータ例をヘルスチェックリクエストテーブルに示す。

HTTPメソッドカラムは、リクエストのHTTPメソッド名を格納するカラムである。ヘルスチェックリクエストの場合には「GET」の値が格納される。リクエスト送信元URLカラムは、リクエストを送信した端末のURLが格納される。ヘルスチェックリクエストの場合には、ロードバランサ102のURLが格納される。Webサーバ401はヘルスチェックリクエストの実行結果を、リクエスト送信元URLカラムに格納されたURLに返す。リクエスト送信先URLカラムは、リクエストの送信先URLが格納される。ヘルスチェックリクエストの場合は、Webサーバ401のヘルスチェックスクリプト管理部505に格納されたヘルスチェックスクリプトのURLが格納される。
ヘルスチェックスクリプト実行部503は、ヘルスチェックリクエストに従って、ヘルスチェックリクエスト管理部505からヘルスチェックスクリプト、ヘルスチェックルール管理部504からヘルスチェックルールを取得して、ヘルスチェック処理を事項する。ヘルスチェックルール管理部504は、ヘルスチェックスクリプト実行部503が実行するヘルスチェックスクリプトに代入する各パラメータ値をヘルスチェックルールとして、まとめて管理する。ヘルスチェックルール管理部504が管理するヘルスチェックルールのデータ例をヘルスチェックルールテーブルに示す。ヘルスチェックルールは、Webアプリケーション毎にルールが定義されており、各Webアプリケーションには、対応するヘルスチェックリクエストが送信されることになる。

ルール番号カラムは、ヘルスチェックスクリプト実行部503がアプリケーションサーバ402に送信するヘルスチェックリクエストのルールを一意に識別する番号を格納するカラムである。HTTPメソッドカラムは、ヘルスチェックスクリプト実行部503がアプリケーションサーバ402に送信するヘルスチェックリクエストのHTTPメソッドを格納する。HTTPメソッドカラムに格納するHTTPメソッドの値は、表8に示したアプリケーションに対応したHTTPメソッドの値が格納される。
ヘルスチェックリクエスト送信先URLカラムは、ヘルスチェックスクリプト実行部503がアプリケーションサーバ402に送信するヘルスチェックリクエストの送信先URLを格納する。本カラムに格納される値はアプリケーションサーバ402で稼働するアプリケーション403、404に対応する。具体的には表8に示したアプリケーションURLカラムの値が格納される。ヘルスチェックリクエストボディカラムは、ヘルスチェックスクリプト実行部503がアプリケーションサーバ402に送信するヘルスチェックリクエストのリクエストボディ情報を格納するカラムである。本カラムに格納される値は、ヘルスチェックリクエスト送信先URLカラムの値に応じて異なる。具体的には表8に示したアプリケーションに対応したリクエストフォーマットカラムに定義された情報が格納される。
例えば、ルール番号カラムの値が「1」のヘルスチェックルールの場合には、表5に示される定義に従い、アプリケーション403に対してHTTPメソッド「POST」で「ProductName」の値が「複合機TypeA」、「Name」の値が「MFPA001」のリクエストボディで、ヘルスチェックスクリプト実行部503がリクエストを送信することを意味している。
ヘルスチェック成功判定応答コードカラムは、ヘルスチェックスクリプト実行部503がヘルスチェックルールに基づき送信したリクエストに対し、アプリケーションサーバ402から受信したヘルスチェックリクエストの応答で、アプリケーション403、404が正常に稼働していると判断するHTTPレスポンスコードを格納する値である。本カラムに格納する値は、一般的に正常応答を意味するHTTPレスポンスコード「200」以外の値を格納しても構わない。
例えば、ルール番号カラムの値が「1」のヘルスチェックルールに基づいたリクエストをヘルスチェックスクリプト実行部503がアプリケーション403に送信した場合、リクエストボディカラムの「ProductName」の値に全角文字が含まれている。アプリケーション403は表8のリクエストフォーマットカラムの値が示すように、「ProductName」の値を「半角英数字」と定めているため、ヘルスチェックスクリプト実行部503が送信するリクエストはアプリケーション403にとっては、不正なリクエストと判断されることが予測される。そのためヘルスチェック成功判定応答コードカラムにはHTTPレスポンスコード「400」を格納することになる。
ヘルスチェックリクエストの目的はアプリケーションが稼働していることを確認することである。ルール番号カラムの値が「1」のヘルスチェックルールに基づいたリクエストはアプリケーション403によって不正なリクエストと判断される。しかし、そう判断されるということはアプリケーション403が正常に稼働し、不正なリクエスト値を正しく判断してエラー処理したことを意味している。
一方、アプリケーション403が正常に稼働していなければサーバはリクエストを正しく処理することができない。そのような場合、アプリケーションが稼働するアプリケーションサーバ402に異常が発生していることを示すHTTPレスポンスコードの500番の値がクライアント装置101に返される。そのためヘルスチェックルールテーブルには、ヘルスチェック成功判定応答コードカラムの値が500番台以外となるルールを登録することで、アプリケーションサーバ402の稼働状況をチェックすることができる。ヘルスチェックスクリプト管理部505は、ヘルスチェックスクリプト実行部503が実行するヘルスチェックスクリプトを管理する。チェックスクリプトが実行されることで各アプリケーションに対してヘルスチェックリクエストが送信される。
図6は、本発明に係るアプリケーションサーバ402のソフトウェアモジュールの構成図を示すブロック図である。これらのソフトウェアは仮想サーバ104、105の二次記憶装置206で管理され、仮想サーバ104、105のCPU203により実行され、各機能が実現する。なお、本実施例と直接関係のない処理部については記載を省略する。
制御部600は、アプリケーションサーバ402全体を制御し、ソフトウェアモジュールの各構成要素に対する指示および管理を行う。受信部601は、ネットワーク100を介して接続されるクライアント装置101、ロードバランサ102から送信されるリクエストの受信処理を行う。送信部602はネットワーク100を介して、アプリケーション実行部603の実行結果のレスポンスをWebサーバ401に返す。アプリケーション実行部603は、受信部601が受信したリクエストに対応したアプリケーション403、404で実行する。ヘルスチェックリクエストを受信したWebサーバ401により送信される、アプリケーションが正常に稼働しているか否かを確認するためのリクエスト、即ちヘルスチェックルールに従って送信されるリクエストもアプリケーション実行部603により実行される。そのようなリクエストはヘルスチェックを確認するためのリクエストではあるが、アプリケーション403、404にとってはヘルスチェックリクエストとは異なる通常のリクエストの内容と何ら変わりはない。上述した構成を仮想サーバで実現することで、各アプリケーションがヘルスチェックリクエストに対応する機能を搭載しておらずとも、アプリケーションのヘルスチェックが可能になるのが本発明のポイントの1つである。
図7は本発明に係る、ロードバランサ102がサーバ103およびサーバ103上で稼働する仮想サーバ104、105に対してヘルスチェックを行う一連の処理を示したフローチャートである。ステップS701において、ロードバランサ102のヘルスチェック実行部305は、サーバ情報管理部303で管理されるサーバ情報テーブルにレコードが登録されていることを確認する。そしてヘルスチェック実行部305は、前述したレコードの前回確認日時カラムの値と現在時刻を比較して、ヘルスチェックが未実施のサーバがあるか否かを確認する。具体的には、ロードバランサ102が管理する現在時刻が、前回確認日時カラムの時刻からヘルスチェック設定情報テーブルの間隔カラムの値以上時刻が経過しているかどうかを確認する。間隔カラムの値以上、前回ヘルスチェックを行ってから時刻が経過している仮想サーバが存在していた場合にはステップS702に進む。間隔カラムの値以上、前回ヘルスチェックを行ってから時刻が経過している仮想サーバが存在していない場合には、ロードバランサ102は一旦処理を終了し、一定時刻経過後再度ステップS701を行う。
ステップS702において、ヘルスチェック実行部305は、ヘルスチェックリクエストを作成する。具体的には、ヘルスチェック実行部305は、ヘルスチェックリクエストレコードのリクエスト送信元URLに自身が保持するURLを格納する。ヘルスチェック実行部305は、ヘルスチェックリクエストレコードのリクエスト送信先URLカラムにサーバ情報テーブルの振り分け先サーバURLカラムの値とヘルスチェック設定情報テーブルのヘルスチェックURLカラムの値を連結したURLを格納する。
ステップS703において、送信部302は、仮想サーバ104、105に対してヘルスチェックリクエストを送信する。ステップS704において、仮想サーバ104、105で稼働するWebサーバ401の受信部501はロードバランサ102からヘルスチェックリクエストを受信して、ヘルスチェック処理を実行する。ヘルスチェック処理の詳細なフローについては、図8で説明する。ステップS705において、ロードバランサ102の受信部301は仮想サーバ104、105からヘルスチェックレスポンスを受信する。受信部301が受信するヘルスチェックレスポンスのデータ例をヘルスチェックレスポンステーブルに示す。
HTTPステータスコードカラムは、ヘルスチェックリクエストに対する仮想サーバ104、105からのレスポンスの意味を表すHTTPステータスコードを格納するカラムである。本実施例においては、ヘルスチェックリクエストを実行して、仮想サーバの稼働確認に成功した場合には、HTTPステータスコードの値を200として返すものとする。また、仮想サーバの稼働確認に失敗した場合には、HTTPステータスコードの値を503として返すものとする。レスポンスボディカラムは、ヘルスチェックリクエストに対する仮想サーバ104、105からのレスポンスの詳細な内容の値を格納するカラムである。詳細は後述するが、仮想サーバ104、105は夫々に配備された全てのアプリケーションが正常に稼働していることを確認し、1つでも正常に稼働していないアプリケーションがあればその時点でヘルスチェックエラーレスポンスをロードバランサ102へ返す。即ち、1つでも正常に稼働していないアプリケーションがあれば仮想サーバとしては機能できないサーバであることをロードバランサ102へ伝えるのである。これにより、クライアントからのリクエストが、サーバの不正稼働によって処理できない状況を回避できる。
ステップS706において、ロードバランサ102のヘルスチェック実行部305は、ステップS705で受信したヘルスチェックレスポンスレコードの内容を確認する。HTTPステータスコードカラムの値が「200」であった場合にはヘルスチェックに成功したものと判断し、サーバ情報テーブルの前回確認日時カラムの値に現在時刻を格納する。加えてヘルスチェック設定情報テーブルの正常閾値カラムに格納された値の回数分連続してヘルスチェックに成功した場合、ヘルスチェック実行部305は、サーバ情報テーブルの稼働状況カラムの値を「正常」に変更する。また、HTTPステータスコードカラムの値が「200」以外であった場合には、ヘルスチェックに失敗したものと判断し、サーバ情報テーブルの前回確認日時カラムの値に現在時刻を格納する。ヘルスチェック設定情報テーブルの非正常閾値カラムに格納された値の回数分連続してヘルスチェックに失敗した場合には、ヘルスチェック実行部305は、サーバ情報テーブルの稼働状況カラムの値を「非正常」に変更する。
ステップS707において、ロードバランサ102の制御部300は、ステップS706の結果、サーバ情報テーブルの稼働状況カラムの値を「非正常」となった仮想サーバの有無を確認する。「非正常」となった仮想サーバが存在する場合にはステップS708に進む。「非正常」となった仮想サーバが存在しない場合にはステップS701に進む。
ステップS708において、ロードバランサ102の制御部300は、ステップS707で認識した仮想サーバをロードバランサ102の監視対象から外し、該当する仮想サーバを破棄する処理を行う。具体的には仮想サーバのデータを削除し、仮想サーバを構成するリソースを解放するとともにサーバ情報テーブルから該当のレコードを削除する。ステップS709において、ロードバランサ102の制御部300は、新たに仮想サーバを作成して監視対象に登録する。具体的には仮想サーバのデータを新規作成するとともにサーバ情報テーブルに該当のレコードを登録する。
図8は、ステップS704において、Webサーバ401が実施するヘルスチェック処理の詳細を示したフローチャートである。ステップS801において、Webサーバ401の受信部501は、ロードバランサ102の送信部302からリクエストを受信する。ステップS802において、受信部501は、受信したリクエストがヘルスチェックリクエストかどうかを確認する。具体的にはリクエストレコードのHTTPメソッドカラムの値が「GET」、リクエスト送信元URLカラムの値がロードバランサ102のURL、リクエスト送信先URLカラムの値がヘルスチェック設定情報のヘルスチェックURLカラムの値と一致していた場合、受信部501は、受信したリクエストがヘルスチェックリクエストと判断し、ステップS803へ進む。ヘルスチェックリクエストと異なる通常のリクエストの場合は、受信部501は、アプリケーション403,404への通常のリクエストと判断し、ステップS815に進む。ステップS803において、受信部501は、ヘルスチェックリクエスト実行部503にヘルスチェックリクエストを渡す。
ステップS804において、ヘルスチェックスクリプト実行部503は、ヘルスチェックルール管理部504が管理するヘルスチェックルールテーブルからヘルスチェックルールレコードを一件取得する。ステップS805において、ヘルスチェックスクリプト実行部503は、未実行のヘルスチェックレコードの取得に成功したかどうかを確認する。未実行のヘルスチェックレコードを取得に成功した場合にはステップS806に進む。ヘルスチェックルールテーブルにヘルスチェックレコードが存在していない場合、あるいは全てのヘルスチェックレコードを取得してヘルスチェック処理を全て実行した場合にはステップS814に進む。ステップS806において、ヘルスチェックスクリプト実行部503は、ヘルスチェックスクリプト管理部505からヘルスチェックスクリプトを取得する。ステップS807において、ヘルスチェックスクリプト実行部503は、ステップS804で取得したヘルスチェックルールレコードの各カラムの値に基づき、リクエストを作成して、送信部502を介してアプリケーションサーバ402に送信する。例えば本実施例においては、表5に基づきアプリケーション403のURL「/app1/Product」にHTTPメソッド「POST」のリクエストと、アプリケーション404のURL「/app2/User」にHTTPメソッド「PUT」のリクエストを送信する。
ステップS808において、アプリケーションサーバ402の受信部601は、Webサーバ401の送信部502からリクエストを受信する。ステップS809において、アプリケーション実行部603は、ステップS808において受信したリクエストのHTTPリクエストカラムの値を参照する。そして、アプリケーションサーバ402で稼働するアプリケーション403、404のうち該当するアプリケーションを選択する。そして、アプリケーション実行部603は該当するアプリケーションにHTTPリクエストを転送して、アプリケーションを実行する。例えば本実施例においては、アプリケーション403にはHTTPメソッド「POST」で「ProductName」の値が「複合機TypeA」、「Name」の値が「MFPA001」のリクエストボディのリクエストがアプリケーション実行部603から転送されてくる。表8のリクエストフォーマットカラムに定義されたデータフォーマットルールに従って、アプリケーション403はリクエストボディの値のフォーマットチェックをまず行う。「ProductName」の値に全角文字が含まれているため、アプリケーション403は受信したリクエストを不正なリクエストと判断し、HTTPレスポンスコード「400」を発行する。
また、本実施例においては、アプリケーション404にはHTTPメソッド「PUT」で「UserID」の値が「99999」、「Name」の値が「HealthCheckUser」のリクエストボディのリクエストがアプリケーション実行部603から転送されてくる。表8のリクエストフォーマットカラムに定義されたデータフォーマットルールに従って、アプリケーション404はリクエストボディの値のフォーマットチェックをまず行う。フォーマットチェック正常なリクエストとアプリケーション404が判断すると、アプリケーション404は「UserID」の値に該当するユーザ情報が存在するかどうかを確認する。この時、仮に「UserID」の値が「99999」のユーザ情報が存在しない場合には、データ未検出を意味するHTTPレスポンスコード「404」を発行する。
ステップS810において、アプリケーション実行部603はステップS810の実行結果からヘルスチェックレスポンスを作成して、送信部602を介してWebサーバ401の受信部501に送信する。ステップS811において、ヘルスチェックスクリプト実行部503は、ステップS810で受信したヘルスチェックレスポンスのHTTPステータスコードカラムの値を取得する。ステップS812において、ヘルスチェックスクリプト実行部503はステップS811で取得したHTTPステータスコードカラムの値とステップS805で取得したヘルスチェックレコードのヘルスチェック成功判定応答コードの値とを比較する。値が一致していた場合には、ステップS804に進み、再びヘルスチェックレコードに基づくヘルスチェック処理を継続する。
ヘルスチェックスクリプト実行部503において、繰り返し実行されるヘルスチェック処理の結果として、一回でもステップS811で取得したHTTPステータスコードカラムの値とステップS805で取得したヘルスチェックレコードのヘルスチェック成功判定応答コードの値が一致しなかった場合には、ステップS813に進む。例えば本実施例においては、ステップS809においてアプリケーション403とアプリケーション404からそれぞれHHTPステータスコード「400」と「404」のレスポンスを受信することになり、ヘルスチェックレコードのヘルスチェック成功判定応答コードの値が一致する。そのため、アプリケーションサーバ402は正常に稼働していると判断され、ステップS814に進む。仮に、いずれかのアプリケーションの実行時に、アプリケーションサーバが稼働していなかった場合、HTTPステータスコード「500」が返却されてヘルスチェックレコードのヘルスチェック成功判定応答コードの値が一致しなくなる。その結果、ステップS813に進むことになる。本実施例では、全てのアプリケーションからのHTTPステータスコードが返されずとも、1つでもアプリケーションが正常に稼働していないと判断した時点でロードバランサ102にヘルスチェックエラーの旨を送信することを想定している。しかし、全てのアプリケーションからのHTTPステータスコードが返された時点で、ヘルスチェックエラーの旨を送信する形態であっても良い。
ステップS813、818において、ヘルスチェックスクリプト実行部503は、ヘルスチェックの失敗を示すヘルスチェックエラーレスポンスを作成して、送信部502を介してロードバランサ102にレスポンスを送信する。ステップS814、818において、ヘルスチェックスクリプト実行部503は、ヘルスチェックルールテーブルに登録された全てのヘルスチェックルールに基づくヘルスチェック処理に成功したと判定する。そして、ヘルスチェック成功レスポンスを作成して、送信部502を介してロードバランサ102にレスポンスを送信する。ステップS815において、アプリケーションサーバ402の受信部601は、Webサーバ401の送信部502からリクエストを受信する。ステップS816、817、818において、アプリケーション実行部603は、ステップS801において受信したリクエストに応じたアプリケーションアプリケーションを実行して、その結果からレスポンスを作成し、ロードバランサ102に送信する。
以上、図7および図8に示したフローチャートによって、サーバ上で動作するアプリケーションの稼働状況を加味したうえでサーバの稼働状況を把握することができる。また、ヘルスチェックルールテーブルに登録するレコードに従ってアプリケーションの稼働状況を把握することで、アプリケーションに新たにヘルスチェック用の機能をつくることなく、既存の機能を流用してヘルスチェックを行うことが可能になる。
[実施例2]
実施例1の構成では、ヘルスチェックを達成することが目的であるとはいえ、ヘルスチェックスクリプトが意図的にエラーレスポンスを発生させるリクエストを定期的にアプリケーションに送信することになる。そのため、実際にユーザクライアントからのリクエストに対してエラーレスポンスをアプリケーションが送信した場合と、ヘルスチェック目的でエラーレスポンスをアプリケーションが送信した場合の判別が困難となってしまう。具体的にはアプリケーションが出力するログファイルに記録されるエラーログが大量になり、ユーザクライアントからのリクエストによって生じたエラーの原因究明が困難となることが考えられる。本実施例においては、ヘルスチェックスクリプトからのリクエストによって生じたエラーと、実際のユーザクライアントからのリクエストによって生じたエラーとが判別しやすいようにログの出力を抑制する方法を、図9を用いて示す。その他、本実施例で説明しない箇所については実施例1と同様である。
図9は、アプリケーションサーバ402の受信部601が受信したリクエストに基づき、対応するアプリケーションを実行する際のログ出力処理の詳細を示したフローチャートである。本フローチャートに示す処理は、実施例1に記載の図8におけるステップS808からステップS810、およびステップS815からステップS817に置き換わる処理となる。
ステップS901において、アプリケーションサーバ402の受信部601は、Webサーバ401の送信部502からリクエストを受信する。ステップS902において、受信部601はリクエストのHTTPリクエストカラムから送信元のURL情報を取得する。このとき、リクエストの送信元がWebサーバ401のヘルスチェックスクリプト実行部503である場合には、Webサーバ401とアプリケーションサーバ402は同一のサーバ上で稼働している。そのためHTTPリクエストカラムには「localhost」の値が格納されていることになる。また、リクエストの送信元が任意のクライアント装置101であった場合には、「localhost」以外の値が格納されていることになる。
ステップS903において、アプリケーション実行部603は、ステップS901で受信したリクエストに該当するアプリケーションにHTTPリクエストを転送して、アプリケーションを実行する。ステップS904において、アプリケーション実行部603は、受信したリクエストが自らのサーバ103から送信されたリクエストであるかどうかを確認する。具体的にはステップS902で取得したURLの値を確認し、「localhost」となっていた場合には、自らのサーバ103から送信されたヘルスチェックリクエストと判断し、ステップS906に進む。「localhost」以外の値であった場合にはクライアント装置101から送信されたリクエストと判断し、ステップS905に進む。
ステップS905において、アプリケーション実行部603は、アプリケーションの実行の際生じたログデータをサーバの二次記憶装置206に保存する。
ステップS906において、アプリケーション実行部603はステップS903の実行結果からレスポンスを作成する。ステップS907において、アプリケーション実行部603は送信部602を介してWebサーバ401の受信部501にレスポンスを送信する。以上、図9に示したフローチャートによって、ヘルスチェックリクエストにより生じたアプリケーションの実行ログ情報を除外し、クライアント装置101からのリクエストにより生じたアプリケーションの実行ログ情報のみを残すことが可能となる。
[その他の実施例]
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施例の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
100 ネットワーク
101 クライアント装置
102 ロードバランサ
103 物理サーバ
104、105 仮想サーバ

Claims (13)

  1. クライアントのリクエストを分散して送信するロードバランサと通信可能であり、複数の仮想サーバを備えたサーバシステムであって、
    前記リクエストの送信対象とすることが可能な仮想サーバであるか否かを確認するため、前記ロードバランサから各仮想サーバに対し送信されるヘルスチェックを受信する受信手段と、
    前記受信手段によりヘルスチェックを受信したことに応じて、前記ヘルスチェックを受信した仮想サーバ内に配備される複数のWebアプリケーションに対し、予め決められた任意のリクエストを送信する送信手段と、
    前記送信手段により送信された任意のリクエストに対するレスポンスを各Webアプリケーションから受信し、受信した全てのレスポンスが正常にWebアプリケーションが稼働していることを示すレスポンスであることを確認したことに応じて、前記ロードバランサにヘルスチェック成功の旨を送信する制御手段と、を有するサーバシステム。
  2. 前記制御手段は、受信するレスポンスの内の少なくとも1つのレスポンスが正常にWebアプリケーションが稼働していないことを示すレスポンスである場合は、前記ロードバランサにヘルスチェックエラーの旨を送信することを特徴とする請求項1に記載のサーバシステム。
  3. 前記制御手段は、前記複数のWebアプリケーションの内の1のWebアプリケーションから受信したレスポンスが正常にWebアプリケーションが稼働していないことを示すレスポンスであることを確認したことに応じて、残りのWebアプリケーションからのレスポンスの受信を待つことなく、前記ロードバランサにヘルスチェックエラーの旨を送信することを特徴とする請求項1または2に記載のサーバシステム。
  4. 正常にWebアプリケーションが稼働していることを示す前記レスポンスとは、正常応答を示すレスポンスコードおよび不正なリクエストに対する応答を示すレスポンスコードを含み、Webアプリケーションに異常が発生していることを示すレスポンスコードは含まないことを特徴とする請求項1乃至3の何れか1項に記載のサーバシステム。
  5. ヘルスチェックを受信した前記仮想サーバが複数のWebアプリケーションに対し送信する任意のリクエストを、前記仮想サーバ内のWebアプリケーション毎に定義したヘルスチェックルールを保存する保存手段を更に有し、
    前記送信手段は、前記保存手段により保存されたヘルスチェックルールを確認し、Webアプリケーションに対応した任意のリクエストを確認し、予め決められた任意のリクエストを送信することを特徴とする請求項1乃至4の何れか1項に記載のサーバシステム。
  6. 前記送信手段は、ヘルスチェックに関連する前記任意のリクエストの他に、前記ロードバランサから受信した前記クライアントのリクエストを送信することが可能であり、
    前記Webアプリケーションは、前記クライアントのリクエストを受信した場合には、前記クライアントのリクエストの処理に伴いログデータを出力し、ヘルスチェックに関連する前記任意のリクエストを受信した場合、前記任意のリクエストの処理を行いログデータを出力しないことを特徴とする請求項1乃至5の何れか1項に記載のサーバシステム。
  7. クライアントのリクエストを分散して送信するロードバランサと通信可能であり、複数の仮想サーバを備えたサーバシステムを制御する方法であって、
    受信手段は、前記リクエストの送信対象とすることが可能な仮想サーバであるか否かを確認するため、前記ロードバランサから各仮想サーバに対し送信されるヘルスチェックを受信し、
    送信手段は、前記受信手段によりヘルスチェックを受信したことに応じて、前記ヘルスチェックを受信した仮想サーバ内に配備される複数のWebアプリケーションに対し、予め決められた任意のリクエストを送信し、
    制御手段は、前記送信手段により送信された任意のリクエストに対するレスポンスを各Webアプリケーションから受信し、受信した全てのレスポンスが正常にWebアプリケーションが稼働していることを示すレスポンスであることを確認したことに応じて、前記ロードバランサにヘルスチェック成功の旨を送信することを特徴とする方法。
  8. 前記制御手段は、受信するレスポンスの内の少なくとも1つのレスポンスが正常にWebアプリケーションが稼働していないことを示すレスポンスである場合は、前記ロードバランサにヘルスチェックエラーの旨を送信することを特徴とする請求項7に記載の方法。
  9. 前記制御手段は、前記複数のWebアプリケーションの内の1のWebアプリケーションから受信したレスポンスが正常にWebアプリケーションが稼働していないことを示すレスポンスであることを確認したことに応じて、残りのWebアプリケーションからのレスポンスの受信を待つことなく、前記ロードバランサにヘルスチェックエラーの旨を送信することを特徴とする請求項7または8に記載の方法。
  10. 正常にWebアプリケーションが稼働していることを示す前記レスポンスとは、正常応答を示すレスポンスコードおよび不正なリクエストに対する応答を示すレスポンスコードを含み、Webアプリケーションに異常が発生していることを示すレスポンスコードは含まないことを特徴とする請求項7乃至9の何れか1項に記載の方法。
  11. 保存手段は、ヘルスチェックを受信した前記仮想サーバが複数のWebアプリケーションに対し送信する任意のリクエストを、前記仮想サーバ内のWebアプリケーション毎に定義したヘルスチェックルールを保存し、
    前記送信手段は、前記保存手段により保存されたヘルスチェックルールを確認し、Webアプリケーションに対応した任意のリクエストを確認し、予め決められた任意のリクエストを送信することを特徴とする請求項7乃至10の何れか1項に記載の方法。
  12. 前記送信手段は、ヘルスチェックに関連する前記任意のリクエストの他に、前記ロードバランサから受信した前記クライアントのリクエストを送信することが可能であり、
    前記Webアプリケーションは、前記クライアントのリクエストを受信した場合には、前記クライアントのリクエストの処理に伴いログデータを出力し、ヘルスチェックに関連する前記任意のリクエストを受信した場合、前記任意のリクエストの処理を行いログデータを出力しないことを特徴とする請求項7乃至11の何れか1項に記載の方法。
  13. クライアントのリクエストを分散して送信するロードバランサと通信可能であり、複数の仮想サーバを備えたサーバシステムを制御するプログラムであって、
    前記リクエストの送信対象とすることが可能な仮想サーバであるか否かを確認するため、前記ロードバランサから各仮想サーバに対し送信されるヘルスチェックを受信する受信ステップと、
    前記受信ステップにおいてヘルスチェックを受信したことに応じて、前記ヘルスチェックを受信した仮想サーバ内に配備される複数のWebアプリケーションに対し、予め決められた任意のリクエストを送信する送信ステップと、
    前記送信ステップにおいて送信された任意のリクエストに対するレスポンスを各Webアプリケーションから受信し、受信した全てのレスポンスが正常にWebアプリケーションが稼働していることを示すレスポンスであることを確認したことに応じて、前記ロードバランサにヘルスチェック成功の旨を送信する制御ステップと、を含むプログラム。
JP2016007428A 2016-01-18 2016-01-18 サーバシステム、サーバシステムを制御する方法およびプログラム。 Active JP6639245B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016007428A JP6639245B2 (ja) 2016-01-18 2016-01-18 サーバシステム、サーバシステムを制御する方法およびプログラム。
US15/406,449 US11005927B2 (en) 2016-01-18 2017-01-13 Server system, method for controlling server system, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016007428A JP6639245B2 (ja) 2016-01-18 2016-01-18 サーバシステム、サーバシステムを制御する方法およびプログラム。

Publications (2)

Publication Number Publication Date
JP2017129935A JP2017129935A (ja) 2017-07-27
JP6639245B2 true JP6639245B2 (ja) 2020-02-05

Family

ID=59315320

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016007428A Active JP6639245B2 (ja) 2016-01-18 2016-01-18 サーバシステム、サーバシステムを制御する方法およびプログラム。

Country Status (2)

Country Link
US (1) US11005927B2 (ja)
JP (1) JP6639245B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108200125A (zh) * 2017-12-15 2018-06-22 浪潮软件集团有限公司 一种云消息服务平台及其安装方法、装置、系统
US11032358B2 (en) * 2018-01-31 2021-06-08 Hewlett-Packard Development Company, L.P. Monitoring web applications including microservices
WO2019171704A1 (ja) * 2018-03-06 2019-09-12 日本電気株式会社 管理サーバ、クラスタシステム、クラスタシステムの制御方法、及びプログラムが格納された非一時的なコンピュータ可読媒体
JP7006408B2 (ja) * 2018-03-16 2022-01-24 富士通株式会社 利用料決定プログラム、利用料決定方法、及び情報処理装置
CN110427429B (zh) * 2019-08-06 2023-03-14 上海浦东发展银行股份有限公司信用卡中心 一种基于fabric-sdk-java的交易负载均衡实现方法
CN112311896B (zh) * 2020-11-16 2023-03-24 杭州迪普科技股份有限公司 健康检查方法、装置、设备及计算机可读存储介质
CN114938377A (zh) * 2022-04-20 2022-08-23 京东科技信息技术有限公司 后端服务器管理方法、装置、可读介质及电子设备

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7945909B2 (en) * 2003-05-09 2011-05-17 Sap Aktiengesellschaft Initiating recovery of an executing task using historical information and task information
US8776050B2 (en) * 2003-08-20 2014-07-08 Oracle International Corporation Distributed virtual machine monitor for managing multiple virtual resources across multiple physical nodes
US7720954B2 (en) * 2006-08-03 2010-05-18 Citrix Systems, Inc. Method and appliance for using a dynamic response time to determine responsiveness of network services
JP2008108163A (ja) * 2006-10-27 2008-05-08 Hitachi Ltd サーバ装置、リクエスト処理制御方法およびそのプログラム
JP2009157662A (ja) * 2007-12-26 2009-07-16 Nec Corp データベース管理装置、データベース管理方法、およびデータベース管理プログラム
KR100974621B1 (ko) * 2008-02-20 2010-08-06 부산대학교 산학협력단 Rfid 비즈니스 인식 프레임워크
JP2010066801A (ja) * 2008-09-08 2010-03-25 Nec Corp ログ記録システム、モジュール監視手段、トレースログ管理手段、記録方法、プログラム、及び記憶媒体
JP2011138202A (ja) * 2009-12-25 2011-07-14 Fujitsu Ltd サーバ装置、サーバ負荷分散装置、サーバ負荷分散方法、及びプログラム
US8635319B1 (en) * 2010-03-08 2014-01-21 Amazon Technologies, Inc. Operational status of network nodes
US8812586B1 (en) * 2011-02-15 2014-08-19 Google Inc. Correlating status information generated in a computer network
JP5380480B2 (ja) 2011-03-03 2014-01-08 東芝テック株式会社 アプリケーションサーバ及びその監視プログラム
US9733983B2 (en) * 2011-09-27 2017-08-15 Oracle International Corporation System and method for surge protection and rate acceleration in a traffic director environment
US9459898B2 (en) * 2011-10-06 2016-10-04 Hitachi, Ltd. Virtual server processing control method, system, and virtual server processing control management server
JP6099323B2 (ja) * 2012-06-13 2017-03-22 株式会社富士通マーケティング サーバ制御装置およびサーバ制御プログラム
US8762725B2 (en) * 2012-10-19 2014-06-24 Caterpillar Inc. Secure machine-to-machine communication protocol
US8539080B1 (en) * 2012-12-18 2013-09-17 Microsoft Corporation Application intelligent request management based on server health and client information
US20140324862A1 (en) * 2013-04-30 2014-10-30 Splunk Inc. Correlation for user-selected time ranges of values for performance metrics of components in an information-technology environment with log data from that information-technology environment
US9148440B2 (en) * 2013-11-25 2015-09-29 Imperva, Inc. Coordinated detection and differentiation of denial of service attacks
KR101706138B1 (ko) * 2014-02-05 2017-02-13 애플 인크. 제어기와 액세서리 사이의 통신을 위한 균일한 통신 프로토콜
JP5778815B1 (ja) * 2014-03-24 2015-09-16 株式会社野村総合研究所 基盤運用管理システムおよび基盤運用管理方法
KR101453372B1 (ko) * 2014-04-15 2014-10-22 주식회사 스마티랩 사물인터넷 환경에서 디바이스간 이질적 데이터 교환 방식의 중재 시스템
KR101555315B1 (ko) * 2014-06-24 2015-09-24 이화여자대학교 산학협력단 저전력 사물 인터넷 네트워크 관리를 위한 네트워크 관리 데이터 전파 방법 및 저전력 사물 인터넷 노드 장치
US10511694B2 (en) * 2014-07-23 2019-12-17 Citrix Systems, Inc. Systems and methods for application specific load balancing

Also Published As

Publication number Publication date
US11005927B2 (en) 2021-05-11
JP2017129935A (ja) 2017-07-27
US20170208122A1 (en) 2017-07-20

Similar Documents

Publication Publication Date Title
JP6639245B2 (ja) サーバシステム、サーバシステムを制御する方法およびプログラム。
CN114787781B (zh) 用于启用高可用性受管理故障转移服务的系统和方法
CN105357038B (zh) 监控虚拟机集群的方法和系统
JP5624655B2 (ja) 分散型サーバーシステムにおいてバックアップマネージャを転送するメッセージ
US8522231B2 (en) Updating a plurality of computers
CN108681777B (zh) 一种基于分布式系统的机器学习程序运行的方法和装置
JP2015511421A (ja) 遠隔ネットワーク管理システム及びその操作方法
JP2002532777A (ja) オブジェクト指向リアルタイム・プロセス制御システムのためのタイムアウト・オブジェクト、およびその操作の方法
US9935867B2 (en) Diagnostic service for devices that employ a device agent
JP6525761B2 (ja) ウェブサーバ、管理システム、およびその制御方法
US9317355B2 (en) Dynamically determining an external systems management application to report system errors
EP2942711B1 (en) Dynamic generation of proxy connections
US20160004584A1 (en) Method and computer system to allocate actual memory area from storage pool to virtual volume
WO2018031366A1 (en) Systems and methods for hosting web applications within remote management hardware and/or firmware
US9880855B2 (en) Start-up control program, device, and method
JP6394620B2 (ja) サーバ管理システム、サーバ、サーバ管理方法およびサービスプロセッサ
JP6812732B2 (ja) 情報処理システム、情報処理装置およびプログラム
JP6226769B2 (ja) 連携システム、管理サーバ、連携方法及び連携プログラム
JP6324304B2 (ja) クライアント装置及び通信システム及びデータ処理方法及びプログラム
JP4367141B2 (ja) 指示記述内容変更装置及び指示記述内容変更プログラム
JP5732755B2 (ja) 配信システム、配信装置、配信方法、及びプログラム
JP5262492B2 (ja) クラスタシステム及びコマンド競合制御方法
JP7005447B2 (ja) サーバ装置、方法及びプログラム
JP6383338B2 (ja) サーバ、データ一覧作成方法、および、データ一覧作成プログラム
JP6465926B2 (ja) 情報処理装置、管理システム、制御方法、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181220

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191015

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191224

R151 Written notification of patent or utility model registration

Ref document number: 6639245

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151