JP2009146005A - 情報処理装置および情報処理方法 - Google Patents

情報処理装置および情報処理方法 Download PDF

Info

Publication number
JP2009146005A
JP2009146005A JP2007320142A JP2007320142A JP2009146005A JP 2009146005 A JP2009146005 A JP 2009146005A JP 2007320142 A JP2007320142 A JP 2007320142A JP 2007320142 A JP2007320142 A JP 2007320142A JP 2009146005 A JP2009146005 A JP 2009146005A
Authority
JP
Japan
Prior art keywords
request
received
error response
server
reject
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2007320142A
Other languages
English (en)
Other versions
JP5173388B2 (ja
Inventor
Makiya Tamura
牧也 田村
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 JP2007320142A priority Critical patent/JP5173388B2/ja
Priority to US12/329,249 priority patent/US8176171B2/en
Publication of JP2009146005A publication Critical patent/JP2009146005A/ja
Application granted granted Critical
Publication of JP5173388B2 publication Critical patent/JP5173388B2/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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/62Establishing a time schedule for servicing the requests

Landscapes

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

Abstract

【課題】クライアント側での特別な処理を必要とせずに、一部のクライアントからのアクセスの集中を減らすことによってサーバが過負荷になることを防止し、全てのクライアント(ユーザ)に一定のサービスレベルでサービス提供可能な情報処理装置および情報処理方法を提供すること。
【解決手段】サーバはクライアントから送信されるリクエストを監視し、リクエストの受信間隔が閾値を超えない場合、エラーとしてビジネスロジックを実行しない。また、エラーレスポンスをクライアントに返信する際に返信タイミングを制御することによって、次回クライアントからリクエストが再送信されるタイミングを制御する。
【選択図】図10

Description

本発明は、情報処理装置および情報処理方法に関するものである。より詳細には、クライアント/サーバシステムのようにクライアントがサーバの資源を利用する方法において、上記サーバへのアクセスの集中を改善する処理を行う情報処理装置および情報処理方法に関するものである。
近年のインターネットの普及により、インターネット上で様々なASP(アプリケーション・サービス・プロバイダ)サービスが提供されている。ASPサービスとはインターネットを通じてアプリケーションを顧客に提供するサービスである。ASPサービス提供者は、ASPサービスを提供するシステムをエンドユーザに共用してもらう形式でサービスを提供している。このことによって、ASPサービスは、エンドユーザが比較的安価にサービスを利用することができる、エンドユーザ側でのサーバ管理作業が不要であるといったメリットを有する。
ASPサービスは、インターネット上で提供されるサービスであるので、様々なユーザに利用されている。例えば、ある企業の従業員が業務を行うために利用している場合もあれば、コンシューマが個人の趣味のために利用している場合もある。このように様々な種類のユーザが利用しているということは、「ASPサービスを利用するそれぞれのユーザがサービスを利用する時間も目的も様々である」、ということが言える。
「ASPサービスを利用するそれぞれのユーザがサービスを利用する時間も目的も様々である」ということは、ASPサービスが停止してしまうと、場合によってはユーザの業務が停止してしまい多くのユーザに迷惑をかけてしまう。
また、ある企業Aでは多くの人が同時にアクセスしてサービスを利用したい時に、他の企業Bでは一人の人が重要な業務のためにサービスを利用したいといった場合もある。このような場合に、企業Aのユーザからのアクセスに対する処理負荷が増加することにより、企業Bのユーザからのアクセスに対する処理ができないといった状況が発生してしまうと、企業Bのユーザに迷惑をかけてしまう。
上述のような状況を発生させないために、 “サービスとして停止しないこと”と同時に“ある特定のユーザに偏ることなくサービスを提供する”ということがASPサービスでは重要視される。
しかしながら、ASPサービスにおいてアクセスの集中や急増といった現象が発生する可能性は常にある。例えば、特定の時間にサーバに対するアクセスが集中する(例えば、月曜の朝一にアクセスが集中する)、といった場合が考えられる。また、何らかの事情により想定を超えてアクセスが急増する(例えば、台風など異常気象時に気象情報や交通情報サイトへのアクセスの急増する)、といった場合も考えられる。これらのアクセスの集中や急増によって、サーバに対する負荷が増大し最悪サーバが停止してしまう可能性もある。
また、近年、Webサービスなどの技術が発達し、インターネット上のサービスのインターフェース(API)を、任意のクライアントアプリケーションに公開することが行われている。インターフェースを公開するということは、インターネット上のサービスを提供するサーバに対して任意のクライアントアプリケーションが様々な形でアクセス可能になるということである。つまり、一旦、インターネット上のサービスのインターフェースを公開すると、ASP事業者が関知しないところで任意の誰かがクライアントアプリケーションを開発してサーバにアクセスすることが可能となる、ということになる。開発したクライアントアプリケーションからのアクセスはWebブラウザのようにユーザの思考時間がなく、連続的にアクセスされる場合も想定される。そのため、サーバ側にとって、意図的な攻撃ではなく、想定を超えたアクセスが急増する機会が増えつつあるとも考えられる。
このような状況に対して、それぞれのASPサービス提供者は、サーバに対するアクセスの急増による負荷への対策を行っている。ここで、アクセスの急増とは、クライアントからサーバへ送信されるリクエストが急増することを意味する。サーバへのリクエストが増えると(集中すると)、サーバの処理負荷が高くなる状態を引き起こす。これに対して、ASPサービスで行っているサーバへのアクセスの急増による負荷への対策は「処理するリクエストを如何に絞り込むか」という観点で行われているものが多い。ASPサービスで行っているアクセスの急増に対する負荷への一般的な対策として次の3つが挙げられる。
対策1) ユーザ認証などでアクセス可能なユーザ数を絞り込む。
対策2) 図13のようにサーバの台数を増やし、一台一台のサーバが処理するリクエストを分散させる。
対策3) 一台一台のサーバにおいてセッション数に制限を設け、一度に処理するセッション数を絞り込む。
ASPサービスでは前述の3つの対策全てを行っている場合が多い。すなわち、対策1でアクセス可能なユーザ数自体を絞り込み、サーバへ送信することが可能なリクエストの絶対量を制限する。次に対策2でサーバの処理能力をある程度確保する。更に、対策3で、対策2で用意したサーバ資源を超えた処理能力が必要な数のリクエストがクライアントから送信されてきた場合の対策としてリクエスト数を更に絞り込む、といった対策を行っている。
図14と図15は対策3を説明するための図である。
図14のように、複数のサーバを用意し、クライアントから送信されるリクエストを一台一台のサーバに振り分けて負荷分散を行う場合を考える。図14は図13の負荷分散を行っている状態から更にリクエストが増加した場合を示している。このような場合、負荷分散を行っているにもかかわらず、一台一台のサーバが処理するリクエスト数が結果的に増加してしまい、サーバの処理負荷が増大してしまう。
図15は個々のサーバの内部処理を示している。図15では、リクエスト受信手段1300がクライアントからのリクエストを受信するが、予め設定されているセッション数を超えたリクエストに関しては、リクエスト受信手段1300はクライアントにエラーを返す。つまり、サービス提供手段1301に対してセッション数を越えたリクエストは送信されず、内部的な処理(サービス提供手段での処理)は実行されない。このようにセッション数に制限を設けることにより、サーバ全体としての処理負荷が減少することになる。
以上のようにして、ASPサービスを提供するサーバはアクセスの急増による負荷に対する対策を行っている。
また、特許文献1には、クライアント/サーバシステムにおいて、サーバへのアクセスの集中を改善する処理技術が提案されている。特許文献1に記載の発明は、クライアントからのサービス開始リクエストをサーバが受信した際に、サーバは整理券を発行しクライアントに返信する。整理券には次回リクエストを送信する際の送信期間が指定されており、クライアントは整理券に指定された期間中に再度リクエストを再送する、といったものである。
特許文献1では、サーバからクライアントにアクセス可能な時間を指定し、クライアントは指定された時間にリクエストを送信する。つまり、サーバがある時間中に処理するリクエスト数を制御することによって、サーバ側へのリクエストの集中を回避する、といったものである。
特開2002−189650号公報
しかしながら、上述した対策1〜3を行う従来の技術では、セッションを開始したクライアントからのリクエストについてはサーバ(のサービス提供手段)で処理するように構成している。しかしながら、セッションを開始した1つのクライアントが、その同じセッション中に連続して集中的にリクエストを送信してくると、結果的に、一台一台のサーバにリクエストが集中してサーバの処理負荷が急増してしまう、といった問題は発生してしまう。
上述した対策1〜3を行う従来の技術において、一台一台のサーバにリクエストが集中してサーバの処理負荷が急増してしまう、といった状況が発生する様子を図16と図17を用いて説明する。上述した対策1〜3を行ったシステムにおいて、あるクライアントAから送信されたリクエストがサーバ側で受け付けられたとする。一度、サーバ側でリクエストが受け付けられるとセッションが開始され、セッション終了までクライアントAから送信されるリクエストは受け付けられ、サーバ側で処理される。したがって、図16のように一度セッションが開始された複数のクライアントから連続的に集中してリクエストが送信されると、図17のように一台一台のサーバでは全てのリクエストを処理することになる。
このような場合、対策3のセッション数制限により、サーバはセッションを新たに開始しようとしている他のクライアントアプリケーションからのリクエストに応答することができない、といった状況が発生する場合がある。つまり、インターネット上で広くユーザにサービスを提供しているにも関わらず、全てのユーザに一定のサービスレベルでサービスを提供することができなくなってしまう。例えば、一部のユーザはサービスを全く利用することができなくなってしまうこともありうる。
また、特許文献1に開示された技術を利用してサーバへのリクエスト集中を回避するためには、クライアント側が、配布された整理券を理解するといった特別な機能が必要となる。しかしながら、汎用的なWebブラウザやWebサービスを利用するようなクライアントアプリケーションが必ずしも整理券を理解するといった機能を実装するとは限らない。
したがって、ASPサービスを実現するシステムは次のような課題の対策が望まれている。
課題1) 一度セッションが開始されたクライアントからのリクエストに偏ってしまい、全てのクライアント(ユーザ)に一定のサービスレベルでサービスを提供することができなくなってしまう状況に対処できるようにする。
課題2) 汎用的なWebブラウザやWebサービスを利用するクライアント側で特別な処理(例えば特許文献1のような機能)が実装されていなくても対処できるようにする。
本発明は、このような問題を鑑みてなされたものである。その目的とするところは、クライアント側での特別な処理を必要とせずに、サーバが過負荷になることを低減可能な情報処理装置および情報処理方法を提供することにある。
本発明は、このような目的を達成するために、情報処理装置であって、リクエストを受信するリクエスト受信手段と、前記リクエスト受信手段にて受信されたリクエストに関する情報であって、該受信したリクエストを拒否するか否かの判定に用いる情報を、リクエスト記録データベースに格納するリクエスト監視手段と、受信したリクエストを拒否する判定を行う基準値を管理するリクエスト監視設定値管理データベースと、前記リクエスト監視設定値管理データベースと前記リクエスト記録データベースとを参照して、前記リクエスト受信手段にて受信したリクエストを拒否するか否かを判定するリクエスト処理判定手段と、前記リクエスト処理判定手段が前記受信したリクエストを拒否すると判定した場合に、該拒否の判定から一定時間経過した後に、前記リクエストを送信したクライアントに対してエラーレスポンスを返信するエラーレスポンス送信手段とを備えることを特徴とする情報処理装置。
また、本発明は、情報処理方法であって、リクエストを受信するリクエスト受信工程と、前記リクエスト受信手段にて受信されたリクエストに関する情報であって、該受信したリクエストを拒否するか否かの判定に用いる情報を、リクエスト記録データベースに格納するリクエスト監視工程と、受信したリクエストを拒否する判定を行う基準値を管理するリクエスト監視設定値管理データベースと前記リクエスト記録データベースとを参照して、前記リクエスト受信工程にて受信したリクエストを拒否するか否かを判定するリクエスト処理判定工程と、前記リクエスト処理判定工程にて前記受信したリクエストを拒否すると判定した場合に、該拒否の判定から一定時間経過した後に、前記リクエストを送信したクライアントに対してエラーレスポンスを返信するエラーレスポンス送信工程とを有することを特徴とする。
本発明によれば、あるクライアントアプリケーションを利用するユーザだけがサーバの資源を占有してしまう、といった状況を回避しサーバへのアクセスの集中を改善することが可能である。同時に、レスポンスを返信するタイミングをサーバ側で制御することで、クライアントアプリケーションが次にリクエストを送信するまでの時間を制御することができる。このことによって、クライアント側での特別な処理を必要とせずにクライアントアプリケーションの連続的なアクセスを回避することが可能である。
以下、図面を参照して本発明の実施形態を詳細に説明する。なお、以下で説明する図面で、同一機能を有するものは同一符号を付け、その繰り返しの説明は省略する。
(第1の実施形態)
図1は、本実施形態を適用できる、インターネットなどネットワーク経由でサービスを提供するシステムの具体的なシステム構成例を示す図である。図1に示すように、サービスを提供するシステム100、および複数のPCなどのクライアント端末102(1)、102(2)、…、102(M)がネットワーク103を介して接続されている。サービスを提供するシステム100は、複数のサーバ101(1)、101(2)、…、102(N)を含んでいる。ネットワーク103はインターネット、イントラネットなどのネットワークを想定しているが、他のネットワークシステムであってもかまわない。
ここで、説明を簡略化するために、複数のサーバ101(1)、101(2)、…、101(N)の中で任意の1つのサーバを示す場合にはサーバ101(X)と記述する。また、複数のクライアント端末102(1)、102(2)、…、102(M)の中で任意の1つのクライアント端末を示す場合にはクライアント端末102(Y)と記述する。
図2は、本実施形態に係る、インターネットなどネットワーク経由でサービスを提供するシステムのサーバの具体的なシステム構成例を示す図である。つまり、図1におけるサービスを提供するシステム100のシステム構成図である。
サーバ101(1)、101(2)、…、101(N)はサービスを提供するための処理を実行するサーバ群であって、任意のサーバ101(X)は他の任意のサーバ(X')とLANなどのネットワークで接続されている。
符号200はファイアウォールであって、インターネットなどのネットワーク103との接続口に設置され、後述のロードバランサ201とLANなどのネットワークで接続されている。ファイアウォール200はネットワーク103とロードバランサ201間でやり取りされる通信データを補足し、サービスを提供するシステム100におけるポリシーにしたがって通信データの通過を許可する、禁止するといった制御を行う。このことによって、ネットワーク103からサーバ101(X)に対する不正なアクセスを防ぎ、必要なサービスだけをユーザに提供する一方でセキュリティを確保する。
符号201はロードバランサであって、ファイアウォール200と任意のサーバ101(X)とLANなどのネットワークで接続されている。ファイアウォール200とロードバランサ201とを含むネットワークと、ロードバランサ201とサーバ101(1)、101(2)、…、101(M)とを含むネットワークとは論理的に別なネットワークとして構成される。
クライアント端末102(Y)がサービスに対するリクエストを送信しレスポンスを受信するまでのステップは次のようなものである。
Step1) クライアント端末102(Y)は、サービスを提供するシステム100に対してネットワーク103を介してリクエストを送信する。
Step2) クライアント端末102(Y)からリクエストを受信したファイアウォール200は、リクエスト通過の可否を判断し、通過可の場合はロードバランサ201へリクエストを転送する。
Step3) ファイアウォール200からリクエストを受信したロードバランサ201は、負荷分散アルゴリズムにしたがって処理を依頼するサーバ101(X)を特定し、サーバ101(X)へリクエストを転送する。
Step4) ロードバランサ201からリクエストを受信したサーバ101(X)は、リクエストに対する処理を実行し実行結果をレスポンスとして、ロードバランサ201へ返信する。
Step5) ロードバランサ201は、サーバ101(X)から受信したレスポンスをファイアウォール200へ転送する。
Step6) ファイアウォール200は、ネットワーク103を介してロードバランサ201から転送されたレスポンスをクラアント端末102(Y)へ転送する。
図3は、サーバ101(X)の具体的な構成例を示す図である。なお、クライアント端末102(Y)の具体的な装置構成も図3と同様の構成で実現可能であるので、ここでは説明を省略する。
同図において、符号301は、サーバ101(X)といった情報処理装置の演算・制御を司る中央演算装置(以下、CPUと記述する)である。
符号302は、ランダムアクセスメモリ(以下、RAMと記述する)であり、CPU301の主メモリとして、実行プログラムの実行エリアならびにデータエリアとして機能する。
符号303は、後述する図8、11等に示す、CPU301の動作処理手順等(制御プログラム)を記憶しているリードオンリーメモリ(以下、ROMと記述する)である。ROM303には情報処理装置の機器制御を行うシステムプログラムである基本ソフト(オペレーション・システム(OS))を記録したプログラムROMと、システムを稼動するために必要な情報等が記録されているデータROMがある。機器によっては、ROM303の代わりに後述のHDD309を使用する場合もある。
符号304は、ネットワークインターフェース(以下、NETIFと記述する)であり、ネットワークを介して情報処理装置間でデータ転送を行うための制御や接続状況の診断を行う。
符号305は、ビデオRAM(以下、VRAMを記述する)であり、後述する情報処理装置の稼動状態を示すCRT306の画面に表示させるための画像を展開し、その表示の制御を行う。
符号306は、ディスプレイ等の表示装置(以下、CRTと記述する)である。
符号307は、外部入力装置308からの入力信号を制御するためのコントローラ(以下、KBCと記述する)である。
符号308は、ユーザが行う操作を受け付けるための外部入力装置(以下、KBと記述する)であり、例えばキーボードやマウス等のポインティングデバイスが用いられる。
符号309は、ハードディスクドライブ(以下、HDDと記述する)であり、アプリケーションプログラムや各種データ保存用に用いられる。本実施形態におけるアプリケーションプログラムとは、本実施形態における各種処理手段を実行するソフトウェアプログラム等である。
符号310は、外部入出力装置(以下、FDDと記述する)であり、上述したアプリケーションプログラムの媒体からの読み出し等に用いられる。例えばフロッピー(登録商標)ディスクドライブ、CD−ROMドライブ等のリムーバブルディスクを入出力するものである。
符号313は、FDD310によって読み出しされる磁気記録媒体、光記録媒体、光磁気記録媒体、半導体記録媒体等の取り外し可能なデータ記録装置(リムーバブル・メディア)である(以下、FDと記述する)。磁気記録媒体としては、例えばフロッピー(登録商標)ディスク(登録商標)や外付けハードディスクが挙げられる。光記録媒体としては、例えばCD−ROMが挙げられ、光磁気記録媒体としては、例えばMOが挙げられ、半導体記録媒体としては、例えばメモリカード等が挙げられる。尚、HDD309に格納するアプリケーションプログラムやデータをFD313に格納して使用することも可能である。
符号311は、後述するPRT312への出力信号を制御するためのコントローラ(以下、PRTCと記述する)である。
符号312は、印刷装置(以下、PRTと記述する)であり、例えばレーザープリンタ等が用いられる。
符号300は、上述した各ユニット間を接続するための伝送バス(アドレスバス、データバス、入出力バス、および制御バス)である。
図4は本実施形態におけるサーバ101(X)の機能群および情報を格納するための格納手段を説明するための図(機能ブロック図)である。
符号400は、リクエスト受信手段であって、クライアント端末102(Y)から送信されるリクエストを受信し、該受信したリクエストを後述のリクエスト監視手段410に渡す。
符号401は、サービス提供手段であって、リクエスト受信手段400で受信したリクエストに対する処理を実行し、処理結果をレスポンスとしてクライアント端末102(Y)へ返信する。つまり、サービス提供手段401はエンドユーザにサービスを提供するための処理を実行するための手段である。
符号410は、リクエスト監視手段であって、リクエスト受信手段400が受信したリクエストの受信時刻情報やクライアント端末102(Y)との接続情報(リクエストIDやセッションID)を後述のリクエスト記録データベース411に格納する。更にリクエスト監視手段は、リクエスト処理判定手段412に上記リクエストを渡す。
符号411は、リクエスト記録データベースであって、リクエスト監視手段410によって受信したリクエストの受信時刻情報と接続情報(リクエストIDやセッションID)とを関連付けて格納するものである。以下、リクエスト記録データベース411をリクエスト記録DB411と記述する。
符号412は、リクエスト処理判定手段であって、受信したリクエストに対して要求されたサービスを実行するか否か判定(上記リクエストを拒否するか否かの判定)を行う。サービスを実行すると判定した場合、リクエスト処理判定手段412はリクエストをサービス提供手段401に渡す。サービスを実行しないと判定した場合、リクエスト処理判定手段412はリクエストを後述のエラーレスポンス送信手段415に渡す。これと共に、リクエスト処理判定手段412は、レスポンスの返信予定時刻であるレスポンス予定時刻をエラーレスポンス送信待ちデータベース414に渡す。
符号413は、リクエスト監視設定値管理データベースであって、受信したリクエストに対して要求されたサービスを実行しレスポンスを返すか否かを判定する際の判定基準値を管理する。以下、リクエスト監視設定値管理データベース413をリクエスト監視設定値管理DB413と記述する。
このように、リクエスト記録411には、リクエストの受信時刻情報といったリクエスト監視手段が受信したリクエストに関する情報が格納されている。また、リクエスト監視設定値管理DB413には、上記判定基準値といった、受信したリクエストを拒否する判定を行う基準値が格納されている。よって、上記リクエスト処理判定手段412は、リクエスト記録DB411とリクエスト監視設定値管理DB413とを参照して、リクエスト監視手段410から受信したリクエストを拒否するか否かを判定することができる。
符号414は、エラーレスポンス送信待ちデータベースであって、リクエスト処理判定手段412でサービスを実行しないと判断されたリクエストに対するエラーレスポンスの返信時刻(レスポンス予定時刻)を管理する。すなわち、エラーレスポンス送信待ちデータベース414は、上記エラーレスポンスの返信時刻、実行を拒否されたリクエストに関する、リクエストIDおよびセッションIDといった、エラーレスポンスに関する情報を管理する。以下、エラーレスポンス返信待ちデータベース414はエラーレスポンス返信待ちDB414と記述する。
符号415は、エラーレスポンス返信手段であって、エラーレスポンス返信待ちDB414を参照し、指定された時刻(エラー判定し、一定時間経過した後)にクライアント端末102(Y)に対してエラーレスポンスを返信する。
符号416は、リクエスト管理設定値管理手段であって、管理者用のクライアント端末102(Y)からのリクエストに応じてリクエスト監視設定値管理DB413に対して設定値の所定の処理を行う。この所定の処理は、設定値の、設定、更新、削除の少なくとも1つとすることができ、上記管理者用のクライアント端末102(Y)からのリクエストに基づいて設定されるものである。
図5はサーバ101(X)におけるリクエスト記録DB411の具体的なデータ構造例を示す図である。
符号500は、リクエストIDであって、クライアント端末102(Y)から受信したリクエストを識別するための識別子である。
符号501は、セッションIDであって、複数のリクエストとレスポンスの組を一連のシーケンスとして識別するための識別子である。
符号502は、受信時刻であって、サーバ101(X)がリクエストを受信した時刻を示すものである。
図6はサーバ101(X)におけるリクエスト監視設定値管理DB413の具体的なデータ構造例を示す図である。
符号600は、設定項目であって、リクエスト処理判定手段412によって参照される。本実施形態では、リクエスト処理判定手段412における判定基準としてリクエスト間隔閾値を採用するが、ある期間内に送信されたリクエスト数などを判定基準としてもよい。設定項目600には判定基準となるリクエスト間隔閾値や、期間内に送信されたリクエスト数を判断するためのリクエストカウント期間、期間内リクエスト数上限などが設定される。また、設定項目600には、サービスを提供しない場合のエラーレスポンス返信時刻を決定するためのレスポンス送信待ち時間も設定される。
符号601は、設定項目に対する設定値である。 図7はサーバ101(X)におけるエラーレスポンス送信待ちDB414の具体的なデータ構造例を示す図である。
符号700は、リクエストIDであって、リクエスト記録DB411におけるリクエストID500と対応付けられるものである。
符号701は、セッションIDであって、リクエスト記録DB411におけるセッションID501と対応付けられるものである。
符号702は、レスポンス予定時刻であって、クライアント端末102(Y)にリクエストID700に対応するレスポンスをエラーレスポンスとして返信する予定時刻である。
図8は、本実施形態における、サーバ101(X)が実行する処理例のフローチャートを示す図である。図8を用いて、サーバ101(X)における全体的な処理の流れを説明する。サーバ101(X)における全体的な処理は次のステップS800からS808で実行される。なお、本実施形態ではリクエスト間隔閾値を10秒、エラーレスポンス待ち時間を12秒と設定されているものと仮定する。
S800) 処理開始
S801) リクエスト受信
リクエスト受信手段400は、クライアント端末102(Y)からリクエストを受信する。そして、リクエスト監視手段410は、受信したリクエストに対してリクエストIDを発行する。受信したリクエスト内にセッションIDが情報として存在しなければセッションIDも発行する。発行したセッションIDはHTTP通信におけるCookieなどの技術を利用して、クライアント端末102(Y)が次回送信するリクエストにセットされるようにする。
次にリクエスト監視手段410は、リクエストID、セッションID、リクエストを受信した受信時刻(現在時刻)をリクエスト記録DB411のリクエストID500、セッションID501、受信時刻502にそれぞれ格納する。そして、リクエスト監視手段410は当該リクエストをリクエスト処理判定手段412に渡す。
S802) 前回受信したリクエスト取得
リクエスト処理判定手段412は、リクエスト記録DB411から、受信したリクエストと同一セッションIDを持つリクエストの中で最新の2つのリクエスト(今回受信したリクエストと前回受信したリクエスト)の受信した時刻を取得する。すなわち、同一セッションにおける、前回リクエスト受信時刻と今回リクエスト受信時刻とを取得する。
S803) リクエスト処理判定
更に、リクエスト処理判定手段412は、リクエスト監視設定値管理DB413から、受信したリクエストに対して要求されたサービスを実行するか否か判定を行うための判定基準であるリクエスト間隔閾値(10秒)を取得する。
S802で取得した今回受信リクエストと前回受信リクエストの受信時刻の差分が上記リクエスト間隔閾値(10秒)を超えているかどうか確認する。
受信リクエストと前回受信リクエストの受信時刻の差分が前記リクエスト間隔閾値(10秒)を超えている場合、S804へ進む。
受信リクエストと前回受信リクエストの受信時刻の差分が前記リクエスト間隔閾値(10秒)を超えていない場合、S805へ進む。
すなわち、上記受信時刻の差分が予め設定された閾値であるリクエスト間隔閾値(10秒)を超えるか否かを基準として、S801にて受信したリクエストを拒否するか否かを判定する。
尚、本実施形態では判定基準としてリクエスト間隔閾値を採用するが、前述のように期間内に送信されたリクエスト数などを判定基準としてもよい。すなわち、同一セッションにおける一定期間内に受信したリクエスト数が予め設定された閾値である期間内リクエスト数上限を超えるか否かを基準として、S801にて受信したリクエストを拒否するか否かを判定するようにしても良い。すなわち期間内リクエスト数の上限を超える場合はステップS805へ進む。
S804) サービス提供
サービス提供手段401は、S801にて受信したリクエストによって要求されたサービスに対する処理を実行し、処理結果をクライアント端末102(Y)にレスポンスとして返信する。
S805) エラーレスポンス待ち時間判定
リクエスト処理判定手段412は、エラーレスポンス待ち時間の設定が0より大きく設定されているか否かを判定する。例えば、リクエスト監視設定値管理DB413から、エラーレスポンスを送信するまでの時刻を決定するためのエラーレスポンス待ち時間(12秒)を取得する。
上記エラーレスポンス待ち時間が0秒であった場合、S807へ進む。前記エラーレスポンス待ち時間が0秒より大きい場合、次のような処理を行う。現在時刻に上記エラーレスポンス待ち時間を加算した時刻をレスポンス予定時刻702として、リクエストID700、セッションIDとともにエラーレスポンス送信待ちDB414へ格納し、S806へ進む。
本実施形態ではエラーレスポンス待ち時間が12秒であるため、レスポンス予定時刻702を現在時刻に12秒加算した時刻とする。
S806) レスポンス送信待ち
エラーレスポンス送信手段415は、エラーレスポンス送信待ちDB414を参照し、S801にて受信したリクエストとリクエストID700、セッションID701が同一のレスポンス予定時刻702を取得する。
上記取得したレスポンス予定時刻702まで待機する。待機後、S807へ進む。
S807) エラーレスポンス送信
エラーレスポンス送信手段415は、レスポンス予定時刻に達したエラーレスポンスをクライアント端末102(Y)へ送信する。
S808) 処理終了
図9は本実施形態におけるサーバ101(X)とクライアント端末102(Y)間での処理シーケンス例を示す図である。図9を用いて、サーバ101(X)が図8で説明した処理を行った際のサーバ101(X)とクライアント端末102(Y)とのリクエストとレスポンスのシーケンスを説明する。
最初に、クライアント端末102(Y)からサービスに対するリクエストR900がサーバ101(X)に送信される。リクエストR900はクライアント端末102(Y)から送信された最初のリクエストと仮定する。リクエストR900を受信したサーバ101(X)はセッションIDを発行し、セッションを開始する。サーバ101(X)はリクエストR900に対する処理を実行し、上記セッションIDをレスポンスR901に埋め込んでレスポンスR901を返信する。
次に、クライアント端末102(Y)はリクエストR900の次のリクエストR902をサーバ101(X)に送信する。クライアント端末102(Y)はリクエストR902送信時、レスポンスR901に埋め込まれている上記セッションIDをそのままリクエストR902に埋め込んで送信する。なお、クライアント端末102(Y)がリクエストR902をサーバ101(X)に送信するタイミングは、ユーザ操作もしくはクライアントアプリケーションに依存する。
リクエストR902を受信したサーバ101(X)はリクエストR900を受信してからリクエストR902を受信するまでの時間を算出する。算出結果がリクエスト監視設定値管理DB413から取得されるリクエスト間隔閾値を超えていれば、サーバ101(X)はリクエストR902に対する処理を実行し、レスポンスR903を返信する。
ここで、上記リクエスト間隔閾値を超えない程度の時間間隔でクライアント端末102(Y)がサービスに対するリクエストR904を送信したと仮定する。このとき、リクエストR904を受信したサーバ101(X)はリクエストR902を受信してからリクエストR904を受信するまでの時間を算出する。算出結果がリクエスト監視設定値管理DB413から取得されるリクエスト間隔閾値を超えないため、サーバ101(X)はリクエストR904に対する処理結果として、エラーレスポンスR905を返信する。エラーレスポンスR905を返信する際、サーバ101(X)はすぐに返信せず、リクエスト監視設定値管理DB413から取得されるエラーレスポンス送信待ち時間経過後にエラーレスポンスを送信する。
通常、インターネットなどネットワーク経由でサービスを提供するシステムではサーバ101(X)とクライアント端末102(Y)間での通信はHTTP(HyperText Transfer Protocol)を利用する場合が多い。このような場合、クライアント端末102(Y)はリクエスト送信後、サーバ101(X)からのレスポンスが返信されてくるまで処理待ちの状態になることが多い。したがって、上記エラーレスポンス送信待ち時間によってエラーレスポンスの送信タイミングを変えることによって、クライアント端末102(Y)のリトライ処理を実行するタイミングをある程度制御することが可能となる。その結果、クライアント端末102(Y)からの連続的なリクエストの送信も減少させることができる。
すなわち、クライアント端末102(Y)からサーバ101(X)へのリクエストR901とR902との間の時間がリクエスト間隔閾値以上であれば、サーバ101(X)への過負担はほとんど無い。よって、この場合は、サーバ10(X)1は、クライアント102(Y)からのリクエストを処理した後、その処理結果のレスポンスR901を送信することができる。一方、リクエストR902とR904との間のように、上記時間がリクエスト間隔閾値未満となると、ある処理が終了する前に次の処理のリクエストが来たり、特定のクライアントからのリクエストばかりを処理してしまったりする状況になる可能性がある。よって、サーバ101(X)のパフォーマンスが低下する恐れがあり、サーバ101(X)が過負担状態に陥る可能性がある。特定のクライアントからのリクエストばかりが処理されてしまい、他のクライアントからのリクエストがなかなか処理されなくなってしまう可能性もある。
これに対して本実施形態では、上記サーバ101(X)が過負担状態となる可能性がある、上記時間がリクエスト間隔閾値未満の場合(エラーと判定した場合)に、エラーレスポンスR905の送信を一定時間経過した後に行うようにしている。更に、エラーレスポンスをすぐに送信すると、クライアントからすぐにリクエストが再送されてきてしまう可能性があるため、一定時間経過後にエラーレスポンスを送るようにしている。従って、この一定時間の間にはサーバ101(X)からクライアント端末102(Y)へのレスポンスの送信は存在しないので、クライアント端末102(Y)からサーバ101(X)へのリクエストの送信を一旦停止することができる。よって、サーバ101(X)が過負担状態に陥るようなリクエストの連続送信を抑制することができる。
図10は本実施形態におけるサーバ101(X)で実行する処理の中で各機能が行う処理例を説明するための図である。
前提として、システム管理者がリクエスト監視設定値管理DB413に設定項目を設定しているものとする。ここで設定項目とは上記リクエスト間隔閾値および上記エラーレスポンス送信待ち時間である。上記リクエスト間隔閾値の代わりに「ある期間中のリクエスト数をカウントするためのリクエストカウント期間、期間内リクエスト数上限」であってもかまわない。
システム管理者によるリクエスト監視設定値管理DB413に設定項目を設定するまでの処理は次のようなものである。
Step1) 管理者用クライアント端末を操作することによってリクエスト監視設定値管理手段416に設定のためのリクエストを送信する(S1000)。
ここで、管理者用クライアント端末はサーバ101(X)と同じシステム内のネットワークに接続されていてもよいし、クライアント端末102(Y)のようにシステム外のネットワークに接続されていてもよい。
Step2) 上記設定のためのリクエストを受信したリクエスト監視設定値管理手段416は、リクエスト監視設定値管理DB413に上記設定のためのリクエストに含まれる設定項目に対する値を設定する(S1001)。
次に、クライアント端末102(Y)がリクエストを送信してからレスポンスを受信するまでのサーバ101(X)において各機能が行う処理を説明する。
最初にクライアント端末102(Y)は、サーバ101(X)にリクエストを送信する。サーバ(X)ではリクエスト受信手段400がリクエストを受信し、該受信したリクエストをリクエスト監視手段410に渡す(S1002)。
リクエスト監視手段410は、上記受信したリクエストに対するリクエストIDを発行し、該リクエストに含まれるセッションIDを取得する。セッションIDがリクエストに含まれない場合、リクエスト監視手段410はセッションIDを発行する。次にリクエスト監視手段410は、発行したリクエストIDと、取得もしくは発行したセッションIDと、リクエストを受信した時刻(受信時刻)とをリクエスト記録DB411に格納する(S1003)。
すなわち、リクエスト監視手段410は、リクエスト受信手段400にて受信されたリクエストに基づいて、受信したリクエストに関する情報であって、該受信したリクエストを拒否するか否かの判定に用いる情報である受信時刻を取得している。本実施形態では、該受信時刻を、各リクエストと関連付けてリクエスト記録DB411に記憶し管理できるようにしているので、リクエスト監視手段410とリクエスト処理判定手段412は、リクエストの受信間隔を監視していることになる。
そして、リクエスト監視手段410は、上記受信したリクエストをリクエスト処理判定手段412に渡す(S1004)。
リクエスト処理判定手段412は、リクエスト記録DB411からリクエストと同じセッションIDをもつリクエストで、かつ、最新のリクエスト2つを取得する(S1005)。つまり、同じセッションIDを持つ前回受信したリクエストと、今回処理をしようとしているリクエストを取得する。
次に、リクエスト処理判定手段412は、リクエスト監視設定値管理DB413からリクエスト間隔閾値(10秒)とエラーレスポンス送信待ち時間(12秒)を取得する(S1006)。次に、リクエスト処理判定手段412は、上記取得した2リクエストの受信時刻の差分を算出する。次に、リクエスト処理判定手段412は、上記2リクエストの受信時刻の差分と上記リクエスト間隔閾値(10秒)を比較し、リクエストに対する処理を実行するか否か(受信したリクエストを拒否するか否か)を判定する。
上記2リクエストの受信時刻の差分が前記リクエスト間隔閾値(10秒)を超えていれば、リクエスト処理判定手段412はサービス提供手段401にリクエストを渡す(S1007)。すなわち、この場合は、同一セッションにおいて、前回のリクエストと今回のリクエストとを受信した時間が、サーバ101(X)を過負担状態にするほどではないと判断し、受信したリクエストに基づいた処理を行うのである。
上記2リクエストの受信時刻の差分がリクエスト間隔閾値を超えていなければ、リクエスト処理判定手段412は、上記エラーレスポンス送信待ち時間(12秒)を現在時刻に加算することでエラーレスポンス送信予定時刻(レスポンス予定時刻)を算出する。すなわち、上記差分がリクエスト間隔閾値未満である場合は、同一セッションにおいて、サーバ101(X)が過負担状態に陥る可能性がある状態の時に次のリクエストを受信したことを意味している。よって、エラーレスポンス送信待ち時間だけ送信を遅らせるようにエラーレスポンス送信予定時刻を設定することにより、クライアント端末(Y)からの次のリクエストの送信を遅らせることができ、サーバ101(X)への負担を減少することができる。
なお、ここでエラーレスポンス送信予定時刻を算出する際に、サーバ101(X)の処理状況を参照し、処理状況に応じてエラーレスポンス送信予定時刻を算出してもよい。例えば、サーバ101(X)のCPU使用率(単位:%)を参照し、次式のようにCPU使用率(単位:%)に応じてエラーレスポンス予定時刻を動的に算出してもよい。
Figure 2009146005
上記式によれば、CPU使用率80%のとき、12秒×1.8=21.6秒を現在時刻に加算した時刻がエラーレスポンス送信予定時刻となる。このようにエラーレスポンス送信予定時刻は固定値によって算出するのではなく、状況に応じて算出してもよい。
リクエスト処理判定手段412は、エラーレスポンス送信待ちDB414にリクエストID700、セッションID701、レスポンス予定時刻702を格納し(S1009)、エラーレスポンス送信待ち手段415にリクエストを渡す(S1010)。
ここでリクエスト監視設定値管理DB413に前記リクエスト間隔閾値の変わりに上記リクエストカウント期間、上記期間内リクエスト数上限が設定された場合、リクエスト処理判定手段412は次のように処理判定する。
上記リクエストカウント期間に送信されたリクエストをリクエスト記録DB411から取得し、そのリクエスト数を算出する。該算出したリクエスト数が上記期間内リクエスト数上限に達していなければ、サービス提供手段401にリクエストを渡す。一方、上記算出したリクエスト数が上記期間内リクエスト数上限を超えていれば、エラーレスポンス送信手段415にリクエストを渡す。
サービス提供手段401は、リクエストに含まれる要求に応じた処理を実行し、処理結果をクライアント端末102(Y)に返信する(S1008)。
エラーレスポンス送信手段415は、エラーレスポンス送信待ちDB414を参照し、リクエストに対するリクエストID700、セッションID701からレスポンス予定時刻702を取得する。エラーレスポンス送信手段415は、上記レスポンス予定時刻702になるまで待ち、レスポンス予定時刻702になったらエラーレスポンスをクライアント端末102(Y)に返信する(S1013)。
以上説明したように、本実施形態によって、サーバ101(X)においてセッション毎のリクエストの受信間隔を監視し、実際の処理を実行するか否か判断することができる。このことによって、連続的に送信されるリクエストに対する処理数を少なくすることができ、サーバ101(X)の処理負荷を軽減することができる。加えて、本実施形態によって、処理実行しないと判断したリクエストに対するレスポンスを返信するタイミングを制御することができる。このことによって、クライアントがレスポンスを待っている間、クライアントから連続的にリクエストを送信するといったことを減少させることができる。
本実施形態では、サーバ101(X)においてリクエストの受信間隔を監視する単位をセッション単位としていたが、ユーザ認証後のリクエストを利用してリクエストを送信したユーザ単位でリクエストの受信間隔を監視してもよい。その場合、セッションIDとして管理していた項目がユーザIDで管理されることになる。すなわち、同一ユーザIDに対して、上述した本実施形態に係る処理を行う。
(第2の実施形態)
第1の実施形態では、サーバ101(X)が前回受信したリクエストの受信時刻と今回受信したリクエストの受信時刻の差分が閾値を越えないリクエスト全てに対してエラーレスポンスを返信する形態について説明した。
通常、クライアント端末102(Y)は前回リクエストに対するサーバ101(X)からのレスポンスが返信されない限り、次のリクエストをサーバ101(X)へ送信しない。しかしながら、必ずしもクライアント端末102(Y)がレスポンスを受信してから次のリクエストを送信するとは限らない。
例えば、Webサービスなどを利用する場合、任意の開発者がクライアントアプリケーションを開発可能である。クライアント端末102(Y)がレスポンスを受信してから次のリクエストを送信するという動作はクライアントアプリケーションの作りに依存する部分もある。そのため、クライアントアプリケーションの作りによってはエラーレスポンス送信待ちの間にクライアント端末102(Y)からリクエストが送信するといった場合も考えられる。
サーバ101(X)における処理負荷を軽減するといった観点からも、エラーレスポンス送信待ち中に同一クライアントからリクエストを受信した場合、そのリクエストを破棄することが有効であると考えられる。
図11は本実施形態におけるサーバ101(X)が実行する処理例のフローチャートを示す図である。図11を用いて、サーバ101(X)における全体的な処理の流れを説明する。サーバ101(X)における全体的な処理は次のステップS1100からS1110で実行される。なお、本実施形態ではリクエスト間隔閾値を10秒、エラーレスポンス待ち時間を12秒と設定されているものと仮定する。
S1100) 処理開始
S1101) リクエスト受信
クライアント端末102(Y)からリクエストを受信する。受信したリクエストに対してリクエストIDを発行する。リクエスト内にセッションIDが情報として存在しなければセッションIDも発行する。
次にリクエストID、セッションID、リクエストを受信した受信時刻(現在時刻)をリクエスト記録DB411のリクエストID700、セッションID701、受信時刻702にそれぞれ格納する。
S1102) 送信待ちエラーレスポンス存在判定
エラーレスポンス送信待ちDB414を参照し、セッションID701が、ステップS1101にて受信した現在のリクエストと同じセッションIDを持つレコードが存在するか否か確認する。
レコードが存在する場合、S1103へ進む。レコードが存在しない場合、S1104へ進む。
ここでは、後述する、受信したリクエストを拒否するか否かを判定する前に、今回受信したリクエストと同一のクライアント端末102(Y)から送信されたリクエストについてすでにエラーレスポンス送信待ちのものがあるか否かを判定する。すなわち、エラーレスポンス送信待ちDB414を参照して、上記受信したリクエストを送信したクライアント端末102(Y)から以前に送信されたリクエストの中でエラーレスポンス送信待ちのリクエストの有無を確認する。該確認によって、該当するリクエストがある場合は、今回受信したリクエストを破棄する処理(S1103)に進むのである。
S1103) リクエスト破棄
S1101にて今回受信したリクエストを破棄する。
S1104) 前回受信したリクエスト取得
リクエスト記録DB411から受信したリクエストと同一セッションIDを持つリクエストの中で最新の2つのリクエスト(受信リクエストと前回受信リクエスト)の受信した時刻を取得する。
S1105) リクエスト処理判定
リクエスト監視設定値管理DB413から、受信したリクエストに対して要求されたサービスを実行するか否か判定を行うための判定基準であるリクエスト間隔閾値(10秒)を取得する。
S1104で取得した受信リクエストと前回受信リクエストの受信時刻の差分が上記リクエスト間隔閾値(10秒)を超えているかどうか確認する。
受信リクエストと前回受信リクエストの受信時刻の差分が上記リクエスト間隔閾値(10秒)を超えている場合、S1106へ進む。
受信リクエストと前回受信リクエストの受信時刻の差分が上記リクエスト間隔閾値(10秒)を超えていない場合、S1107へ進む。
尚、本実施形態では判定基準としてリクエスト間隔閾値を採用するが、前述のように期間内に送信されたリクエスト数などを判定基準としてもよい。
S1106) サービス提供
受信したリクエストによって要求されたサービスに対する処理を実行し、処理結果をクライアント端末102(Y)にレスポンスとして返信する。
S1107) レスポンス待ち時間判定
リクエスト監視設定値管理DB413から、エラーレスポンスを送信するまでの時刻を決定するためのエラーレスポンス待ち時間(12秒)を取得する。
上記エラーレスポンス待ち時間が0秒であった場合、S1109へ進む。上記エラーレスポンス待ち時間が0秒より大きい場合、次のような処理を行う。現在時刻に上記エラーレスポンス待ち時間(12秒)を加算した時刻をレスポンス予定時刻702として、リクエストID700、セッションID701とともにエラーレスポンス送信待ちDB414へ格納し、S1108へ進む。
S1108) レスポンス送信待ち
エラーレスポンス送信待ちDB414を参照し、受信したリクエストとリクエストID700、セッションID701が同一のレスポンス予定時刻702を取得する。
次に、上記取得したレスポンス予定時刻702まで待機する。待機後、S1109へ進む。
S1109) エラーレスポンス送信
エラーレスポンスをクライアント端末102(Y)へ送信する。
S1119) 処理終了
図12は本実施形態におけるサーバ101(X)とクライアント端末102(Y)間での処理シーケンス例を示す図である。図12を用いて、サーバ101(X)が図11で説明した処理を行った際のサーバ101(X)とクライアント端末102(Y)とのリクエストとレスポンスのシーケンスを説明する。
図12におけるリクエストR900、R902、R904とレスポンスR901、R903、R905は図9で説明した第1の実施形態のリクエスト、レスポンスと同様のものである。
ここで、リクエストR904に対するエラーレスポンスR905を送信待ちの状態のときに、クライアント端末102(Y)からリクエストR1200がサーバ101(X)に送信された場合を考える。
リクエストR1200を受信したサーバ101(X)はリクエストR1200を破棄する。
本実施形態におけるサーバ101(X)で実行する処理の中で各機能が行う処理は基本的には第1の実施形態と同じである。第1の実施形態との違いはリクエスト処理判定手段412における処理とエラーレスポンス送信手段415における処理が異なる点にある。
第1の実施形態では、リクエスト処理判定手段412は、前回受信したリクエストと今回受信したリクエストの受信時刻の比較処理を行っていたが、本実施形態におけるリクエスト処理判定手段412はその前に次のような処理を行う。
リクエスト処理判定手段412は、エラーレスポンス送信待ちDB414を参照し、セッションID701がリクエストと同じセッションIDを持つレコードが存在するか否か確認する。レコードが存在する場合はリクエストを破棄し、処理しないようにする。レコードが存在する場合は第1の実施形態と同様に前回受信したリクエストと今回受信したリクエストの受信時刻の比較処理を行い、処理を進めていく。
また、第1の実施形態では、エラーレスポンス送信手段415はエラーレスポンス送信後、エラーレスポンス送信待ちDB414に存在するレコードを明示的に削除していなかった。本実施形態におけるエラーレスポンス送信手段415は、エラーレスポンス送信後、エラーレスポンス送信待ちDB414に存在するレコードでリクエストIDとセッションIDが一致するレコードを明示的に削除する。
以上説明したように、本実施形態によって、第1の実施形態においてエラーレスポンス送信待ち状態のときに同一クライアント端末102(Y)からリクエストを受信しても、レスポンスを破棄することができる。このことによって、同一クライアント端末102(Y)からのリクエストによってサーバ101(X)が占有される可能性を低くすることができる。
(その他の実施形態)
本発明は、複数の機器(例えばコンピュータ、インターフェース機器、リーダ、プリンタなど)から構成されるシステムに適用することも、1つの機器からなる装置(複合機、プリンタ、ファクシミリ装置など)に適用することも可能である。
前述した実施形態の機能を実現するように前述した実施形態の構成を動作させるプログラムを記憶媒体に記憶させ、該記憶媒体に記憶されたプログラムをコードとして読み出し、コンピュータにおいて実行する処理方法も上述の実施形態の範疇に含まれる。即ちコンピュータ読み取り可能な記憶媒体も実施例の範囲に含まれる。また、前述のコンピュータプログラムが記憶された記憶媒体はもちろんそのコンピュータプログラム自体も上述の実施形態に含まれる。
かかる記憶媒体としてはたとえばフロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、CD―ROM、磁気テープ、不揮発性メモリカード、ROMを用いることができる。
また前述の記憶媒体に記憶されたプログラム単体で処理を実行しているものに限らず、他のソフトウエア、拡張ボードの機能と共同して、OS上で動作し前述の実施形態の動作を実行するものも前述した実施形態の範疇に含まれる。
本発明の一実施形態に係る、インターネットなどネットワーク経由でサービスを提供するシステムの具体的なシステム構成例を示す図である。 本発明の一実施形態に係る、インターネットなどネットワーク経由でサービスを提供するシステムのサーバの具体的なシステム構成例を示す図である。 本発明の一実施形態に係る、サーバ101(X)およびクライアント端末102(Y)の具体的な構成例を示す図である。 本発明の一実施形態に係るサーバの機能ブロック図である。 本発明の一実施形態に係る、サーバ101(X)におけるリクエスト記録DB411の具体的なデータ構造例を示す図である。 本発明の一実施形態に係る、サーバ101(X)におけるリクエスト監視設定値管理DB413の具体的なデータ構造例を示す図である。 本発明の一実施形態に係る、サーバ101(X)におけるエラーレスポンス送信待ちDB414の具体的なデータ構造例を示す図である。 本発明の一実施形態におけるサーバ101(X)が実行する処理例のフローチャートを示す図である。 本発明の一実施形態におけるサーバ101(X)とクライアント端末102(Y)間での処理シーケンス例を示す図である。 本発明の一実施形態におけるサーバ101(X)で実行する処理の中で各機能が行う処理例を説明するための図である。 本発明の一実施形態におけるサーバ101(X)が実行する処理例のフローチャートを示す図である。 本発明の一実施形態におけるサーバ101(X)とクライアント端末102(Y)間での処理シーケンス例を示す図である。 従来のサーバ・端末(クライアント)間におけるリクエスト集中時の負荷分散を説明するための図である。 従来のサーバ・端末(クライアント)間におけるリクエスト集中時のセッション数でのリクエストの絞り込みを説明するための図である。 従来のサーバ・端末(クライアント)間におけるリクエスト集中時のサーバ内での処理(セッション数でのリクエストの絞り込み)を説明するためのシーケンス図である。 従来のサーバ・端末(クライアント)間において、ある1つのクライアントが集中的にリクエストを送信した場合の状況を説明するための図である。 従来のサーバ・端末(クライアント)間において、ある1つのクライアントが集中的にリクエストを送信した場合のサーバ内の処理状況を説明するための図である。
符号の説明
100 サービスを提供するシステム
101(1) サーバ(1)
101(2) サーバ(2)
101(N) サーバ(N)
102(1) クライアント端末(1)
102(2) クライアント端末(2)
102(M) クライアント端末(M)
103 ネットワーク
200 ファイアウォール
201 ロードバランサ
400 リクエスト受信手段
401 サービス提供手段
410 リクエスト監視手段
411 リクエスト記録データベース(リクエスト記録DB)
412 リクエスト処理判定手段
413 リクエスト監視設定値管理データベース(リクエスト監視設定値管理DB)
414 エラーレスポンス送信待ちデータベース(エラーレスポンス送信待ちDB)
415 エラーレスポンス送信手段
416 リクエスト管理設定値管理手段

Claims (12)

  1. リクエストを受信するリクエスト受信手段と、
    前記リクエスト受信手段にて受信されたリクエストに関する情報であって、該受信したリクエストを拒否するか否かの判定に用いる情報を、リクエスト記録データベースに格納するリクエスト監視手段と、
    受信したリクエストを拒否する判定を行う基準値を管理するリクエスト監視設定値管理データベースと、
    前記リクエスト監視設定値管理データベースと前記リクエスト記録データベースとを参照して、前記リクエスト受信手段にて受信したリクエストを拒否するか否かを判定するリクエスト処理判定手段と、
    前記リクエスト処理判定手段が前記受信したリクエストを拒否すると判定した場合に、該拒否の判定から一定時間経過した後に、前記リクエストを送信したクライアントに対してエラーレスポンスを返信するエラーレスポンス送信手段と
    を備えることを特徴とする情報処理装置。
  2. 前記エラーレスポンスに関する情報を管理するエラーレスポンス送信待ちデータベースをさらに備え、
    前記エラーレスポンス送信手段は、前記エラーレスポンス送信待ちデータベースで管理されている前記エラーレスポンスに関する情報に基づいて、前記一定時間経過した後に前記エラーレスポンスを返信することを特徴とする請求項1に記載の情報処理装置。
  3. 前記リクエスト処理判定手段は、前記受信したリクエストを拒否するか否かを判定する前に前記エラーレスポンス送信待ちデータベースを参照し、前記リクエストを送信したクライアントから以前に送信されたリクエストに対応するエラーレスポンスが前記エラーレスポンス送信待ちデータベースで管理されていると判断した場合は、当該受信したリクエストを破棄することを特徴とする請求項2に記載の情報処理装置。
  4. 前記リクエスト処理判定手段は、同一セッションにおける前回リクエスト受信時刻と当該リクエスト受信時刻の差分が予め設定された閾値を超えるか否かを基準として、前記受信したリクエストを拒否するか否かを判定することを特徴とする請求項1乃至3のいずれかに記載の情報処理装置。
  5. 前記リクエスト処理判定手段は、同一セッションにおける一定期間内に受信したリクエスト数が予め設定された閾値を超えるか否かを基準として、前記受信したリクエストを拒否するか否かを判定することを特徴とする請求項1乃至3のいずれかに記載の情報処理装置。
  6. 前記リクエスト処理判定手段は、同一ユーザIDによって送信されたリクエストの中で前回リクエスト受信時刻と当該リクエスト受信時刻の差分が予め設定された閾値を超えるか否かを基準として、前記受信したリクエストを拒否するか否かを判定することを特徴とする請求項1乃至3のいずれかに記載の情報処理装置。
  7. 前記リクエスト処理判定手段は、同一ユーザIDによって送信されたリクエストの中で一定期間内に受信したリクエスト数が予め設定された閾値を超えるか否かを基準として、前記受信したリクエストを拒否するか否かを判定することを特徴とする請求項1乃至3のいずれかに記載の情報処理装置。
  8. 前記リクエスト監視設定値管理データベースにおいて管理される設定値に対して所定の処理を行うリクエスト監視設定値管理手段をさらに備えることを特徴とする請求項1乃至7のいずれかに記載の情報処理装置。
  9. 前記リクエスト処理判定手段が前記受信したリクエストを拒否しないと判定した場合に、当該リクエストに対応する処理を実行するサービス提供手段を、更に備えることを特徴とする請求項1乃至8のいずれかに記載の情報処理装置。
  10. リクエストを受信するリクエスト受信工程と、
    前記リクエスト受信手段にて受信されたリクエストに関する情報であって、該受信したリクエストを拒否するか否かの判定に用いる情報を、リクエスト記録データベースに格納するリクエスト監視工程と、
    受信したリクエストを拒否する判定を行う基準値を管理するリクエスト監視設定値管理データベースと前記リクエスト記録データベースとを参照して、前記リクエスト受信工程にて受信したリクエストを拒否するか否かを判定するリクエスト処理判定工程と、
    前記リクエスト処理判定工程にて前記受信したリクエストを拒否すると判定した場合に、該拒否の判定から一定時間経過した後に、前記リクエストを送信したクライアントに対してエラーレスポンスを返信するエラーレスポンス送信工程と
    を有することを特徴とする情報処理方法。
  11. コンピュータを、
    受信したリクエストに関する情報であって、該受信したリクエストを拒否するか否かの判定に用いる情報を、リクエスト記録データベースに格納するリクエスト監視手段、
    受信したリクエストを拒否する判定を行う基準値を管理するリクエスト監視設定値管理データベースと前記リクエスト記録データベースとを参照して、前記受信したリクエストを拒否するか否かを判定するリクエスト処理判定手段、
    前記リクエスト処理判定手段が前記受信したリクエストを拒否すると判定した場合に、該拒否の判定から一定時間経過した後に、前記リクエストを送信したクライアントに対してエラーレスポンスを返信するエラーレスポンス送信手段
    として機能させるための、コンピュータプログラム。
  12. 請求項11に記載のコンピュータプログラムを格納した、コンピュータ読み取り可能な記憶媒体。
JP2007320142A 2007-12-11 2007-12-11 情報処理装置および情報処理方法 Active JP5173388B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007320142A JP5173388B2 (ja) 2007-12-11 2007-12-11 情報処理装置および情報処理方法
US12/329,249 US8176171B2 (en) 2007-12-11 2008-12-05 Information processing device and information processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007320142A JP5173388B2 (ja) 2007-12-11 2007-12-11 情報処理装置および情報処理方法

Publications (2)

Publication Number Publication Date
JP2009146005A true JP2009146005A (ja) 2009-07-02
JP5173388B2 JP5173388B2 (ja) 2013-04-03

Family

ID=40722809

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007320142A Active JP5173388B2 (ja) 2007-12-11 2007-12-11 情報処理装置および情報処理方法

Country Status (2)

Country Link
US (1) US8176171B2 (ja)
JP (1) JP5173388B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012015971A (ja) * 2010-07-05 2012-01-19 Kddi Corp リクエスト受付装置、リクエスト受付方法、およびプログラム
JP2013502017A (ja) * 2009-08-13 2013-01-17 グーグル・インコーポレーテッド ホストとなるコンピュータ環境における仮想オブジェクト間接化
JP2013168106A (ja) * 2012-02-17 2013-08-29 Nec Corp 要求管理装置、要求管理方法、及び要求管理プログラム
WO2014080994A1 (ja) * 2012-11-22 2014-05-30 日本電気株式会社 輻輳制御システム、制御装置、輻輳制御方法およびプログラム
JP2016219054A (ja) * 2016-08-26 2016-12-22 カブドットコム証券株式会社 リクエスト受付サーバ及びリクエストの受付方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100241760A1 (en) * 2009-03-18 2010-09-23 Microsoft Corporation Web Front-End Throttling
US20110208854A1 (en) * 2010-02-19 2011-08-25 Microsoft Corporation Dynamic traffic control using feedback loop
US8892632B2 (en) * 2010-06-04 2014-11-18 Microsoft Corporation Client-server interaction frequency control
KR101368500B1 (ko) * 2012-04-26 2014-02-28 주식회사 엘지씨엔에스 데이터베이스 히스토리 관리 방법 및 그를 위한 데이터베이스 히스토리 관리 시스템
US11223604B2 (en) * 2018-05-18 2022-01-11 T-Mobile Usa, Inc. Detecting aggressive or attacking behaviors in IMS SIP signaling
CN115408242B (zh) * 2022-11-01 2023-03-24 云和恩墨(北京)信息技术有限公司 数据库监控方法、系统及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09146857A (ja) * 1995-11-17 1997-06-06 Toppan Printing Co Ltd 情報供給方法
JP2003173300A (ja) * 2001-09-27 2003-06-20 Toshiba Corp サーバー計算機保護装置、サーバー計算機保護方法、サーバー計算機保護プログラム及びサーバー計算機
JP2004127172A (ja) * 2002-10-07 2004-04-22 Matsushita Electric Ind Co Ltd コンテンツ閲覧制限装置、コンテンツ閲覧制限方法およびコンテンツ閲覧制限プログラム
JP2004334455A (ja) * 2003-05-07 2004-11-25 Fujitsu Ltd サーバ装置
JP2005293244A (ja) * 2004-03-31 2005-10-20 Toshiba Solutions Corp サーバ計算機保護装置及びサーバ計算機保護プログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002189650A (ja) 2000-12-20 2002-07-05 Hitachi Ltd 計算機制御方法及び装置並びにその処理プログラムを格納した記録媒体
US7464410B1 (en) * 2001-08-30 2008-12-09 At&T Corp. Protection against flooding of a server
JP2007122396A (ja) * 2005-10-27 2007-05-17 Hitachi Ltd ディスクアレイ装置及びその障害対応検証方法
EP2215763B1 (en) * 2007-11-02 2012-08-01 Telefonaktiebolaget LM Ericsson (publ) Methods and apparatus for processing error control messages in a wireless communication system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09146857A (ja) * 1995-11-17 1997-06-06 Toppan Printing Co Ltd 情報供給方法
JP2003173300A (ja) * 2001-09-27 2003-06-20 Toshiba Corp サーバー計算機保護装置、サーバー計算機保護方法、サーバー計算機保護プログラム及びサーバー計算機
JP2004127172A (ja) * 2002-10-07 2004-04-22 Matsushita Electric Ind Co Ltd コンテンツ閲覧制限装置、コンテンツ閲覧制限方法およびコンテンツ閲覧制限プログラム
JP2004334455A (ja) * 2003-05-07 2004-11-25 Fujitsu Ltd サーバ装置
JP2005293244A (ja) * 2004-03-31 2005-10-20 Toshiba Solutions Corp サーバ計算機保護装置及びサーバ計算機保護プログラム

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013502017A (ja) * 2009-08-13 2013-01-17 グーグル・インコーポレーテッド ホストとなるコンピュータ環境における仮想オブジェクト間接化
US8826304B2 (en) 2009-08-13 2014-09-02 Google Inc. Virtual object indirection in a hosted computer environment
KR101557322B1 (ko) 2009-08-13 2015-10-06 구글 인코포레이티드 호스트형 컴퓨터 환경에서 가상 오브젝트 우회
JP2012015971A (ja) * 2010-07-05 2012-01-19 Kddi Corp リクエスト受付装置、リクエスト受付方法、およびプログラム
JP2013168106A (ja) * 2012-02-17 2013-08-29 Nec Corp 要求管理装置、要求管理方法、及び要求管理プログラム
WO2014080994A1 (ja) * 2012-11-22 2014-05-30 日本電気株式会社 輻輳制御システム、制御装置、輻輳制御方法およびプログラム
JP2016219054A (ja) * 2016-08-26 2016-12-22 カブドットコム証券株式会社 リクエスト受付サーバ及びリクエストの受付方法

Also Published As

Publication number Publication date
JP5173388B2 (ja) 2013-04-03
US8176171B2 (en) 2012-05-08
US20090150544A1 (en) 2009-06-11

Similar Documents

Publication Publication Date Title
JP5173388B2 (ja) 情報処理装置および情報処理方法
JP4452185B2 (ja) 管理ポリシーに基づいた要求トラフィックのリソース認識管理
JP4550704B2 (ja) 通信システム及び通信管理方法
RU2316045C2 (ru) Управление ресурсами сервера, анализ и предотвращение вторжения к ресурсам сервера
US8255532B2 (en) Metric-based monitoring and control of a limited resource
US7441046B2 (en) System enabling server progressive workload reduction to support server maintenance
CN102684988B (zh) 负荷控制装置及其方法
US8224963B2 (en) Managing requests for connection to a server
US8078483B1 (en) Systems and methods for queuing access to network resources
US8095641B2 (en) Method and system for virtualized health monitoring of resources
CN111459750A (zh) 基于非扁平网络的私有云监控方法、装置、计算机设备及存储介质
US20110173319A1 (en) Apparatus and method for operating server using virtualization technique
WO2008074668A1 (en) Method, system and program product for monitoring resources servicing a business transaction
KR102047088B1 (ko) 네트워크 시스템에서의 리소스 할당 방법 및 이를 구현하는 네트워크 시스템
GB2437103A (en) A mobile wireless device with priority resolution for communication sessions with management and application servers
JP2018129027A (ja) ウェブページのアンチウィルススキャンを実行するためのシステム及び方法
JP2010152818A (ja) サーバシステム
JP2007249829A (ja) 内部ネットワーク間通信システム及び情報処理装置及び中継情報処理装置及び通信制御プログラム及び内部ネットワーク間における通信制御方法及び遠隔障害管理システム及び被管理装置及び管理装置
JP2004206634A (ja) 監視方法、稼動監視装置、監視システム及びコンピュータプログラム
JP2005501335A (ja) コンピュータ・リソースの負荷をコンピュータの間で分散する方法及びシステム
CN107819754B (zh) 一种防劫持方法、监控服务器、终端及系统
JP5268785B2 (ja) Webサーバシステムへのログイン制限方法
US20110219440A1 (en) Application-level denial-of-service attack protection
US11240172B2 (en) Methods and apparatuses for responding to requests for network resources implemented in a cloud computing infrastructure
JP4463588B2 (ja) アラート通知装置

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20101106

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101119

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121227

R151 Written notification of patent or utility model registration

Ref document number: 5173388

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

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

Free format text: PAYMENT UNTIL: 20160111

Year of fee payment: 3