説明

サーバ装置、サービス方法、ならびに、プログラム

【課題】端末からのサービスの要求に適切な優先度で応答するサーバ装置等を提供する。
【解決手段】サーバ装置101の振分機501は、端末からのサービスの要求を受け付け、統計機502は、過去に受け付けたサービスの要求と、当該サービスの要求をした要求元端末と、の統計を蓄積し、当該端末からの最近の所定の期間のサービスの要求の量を取得し、複数の処理機503のそれぞれは、振分機501により転送されたサービスの要求を受け付けて、当該端末に、当該サービスを提供して応答し、振分機501は、当該端末からの最近の所定の期間のサービスの要求の量が所定の帯域制限値よりも大きい場合、当該端末に、サービスを提供することができない旨を通知し、そうでない場合、複数の処理機503のいずれかに、当該要求を転送する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、端末からのサービスの要求に適切な優先度で応答するサーバ装置、サービス方法、ならびに、これらをコンピュータにて実現するプログラムに関する。
【背景技術】
【0002】
従来から、インターネットを用いて、各端末からサーバ装置に種々のリクエストを行い、各種のサービスを受ける方式が広く行われている。サービスの種類としては、ウェブページによる情報の提供、各種ゲームの提供、物品、情報、チケット等の購入、これらのサービスを受けるためのユーザ登録など、種々のものが採用されている。
【0003】
このような技術については、たとえば以下の文献に開示されている。
【特許文献1】特願2000−202145号公報
【0004】
このような環境下においては、各端末がダイヤルアップ接続によってインターネットに接続されていたり、代理(proxy)サーバや各種のルータ、ファイアウォールを中継している場合には、異なる端末からのサービス要求であっても、サーバには、サービスを要求するIPアドレスが同一であるように、見える。
【0005】
一方で、あるユーザが頻繁に同じサーバ装置にサービスを要求することによって、サービスの提供を妨害するなどのいたずらも発生している。
【発明の開示】
【発明が解決しようとする課題】
【0006】
このようなサーバ装置によるサービスの提供の際には、頻繁にサービスを要求してサービスの提供を妨害するいたずらをできるだけ防止する技術が強く求められている。この場合、そのようないたずらをしている悪意のユーザと同じIPアドレスを利用している善意のユーザに対して、サービスを一切提供しないことは望ましくないため、悪意のユーザが利用するIPアドレスを一切利用できないこととはしない技術が望ましい。
本発明は、上記のような課題を解決するためになされたもので、端末からのサービスの要求に適切な優先度で応答するサーバ装置、サービス方法、ならびに、これらをコンピュータにて実現するプログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【0008】
本発明の第1の観点に係るサーバ装置は、振分部、統計部、複数の処理部を備え、以下のように構成する。
【0009】
すなわち、振分部は、端末からのサービスの要求を受け付ける。
【0010】
一方、統計部は、過去に受け付けたサービスの要求と、当該サービスの要求をした要求元端末と、の統計を蓄積し、当該端末からの最近の所定の期間のサービスの要求の量を取得する。
【0011】
さらに、複数の処理部のそれぞれは、振分部により転送されたサービスの要求を受け付けて、当該端末に、当該サービスを提供して応答する。
【0012】
そして、振分部は、取得された当該端末からの最近の所定の期間のサービスの要求の量が、
(a)所定の帯域制限値よりも大きい場合、当該端末に、サービスを提供することができない旨を通知し、
(b)所定の帯域制限値以下である場合、複数の処理部からいずれかの処理部を選択して、当該要求を転送する。
【0013】
また、本発明のサーバ装置において、統計部は、振分部が、当該端末に当該サービスを提供することができない旨を通知した後、もしくは、複数の処理部のいずれかに当該要求を転送した後に、当該サービスの要求をした要求元端末の統計を蓄積し、次に取得されるべき当該端末からの最近の所定の期間のサービスの要求の量をあらかじめ計算するように構成することができる。
【0014】
本発明のその他の観点に係るサービス方法は、振分部、統計部、複数の処理部を備えるサーバ装置にて実行され、振分工程、統計工程、処理工程を備え、以下のように構成する。
【0015】
すなわち、振分工程では、振分部が、端末からのサービスの要求を受け付けて、当該サービスの要求を振り分ける。
【0016】
一方、統計工程では、統計部が、過去に受け付けたサービスの要求と、当該サービスの要求をした要求元端末と、の統計を蓄積し、当該端末からの最近の所定の期間のサービスの要求の量を取得する。
【0017】
さらに、処理工程では、複数の処理部のそれぞれが、振分部により転送されたサービスの要求を受け付けて、当該端末に、当該サービスを提供して応答する。
【0018】
そして、振分工程では、取得された当該端末からの最近の所定の期間のサービスの要求の量が、
(a)所定の帯域制限値よりも大きい場合、当該端末に、サービスを提供することができない旨を通知し、
(b)所定の帯域制限値以下である場合、複数の処理部からいずれかの処理部を選択して、当該要求を転送する。
【0019】
本発明のその他の観点に係るサーバ装置は、受付部と、統計部と、計算部と、応答部と、を備え、以下のように構成する。
【0020】
すなわち、受付部は、端末からのサービスの要求を受け付ける。典型的には、端末と受付部とは、インターネット等のコンピュータ通信網を介して接続され、端末からの各種のサービスの要求があってから、実際のサービスが提供されることとなる。
【0021】
一方、応答部は、当該端末に、当該要求されたサービスを提供して応答する。端末と受付部とがコンピュータ通信網を介して接続されている場合、端末と応答部もまたコンピュータ通信網を介して接続されるのが一般的である。端末から要求されたサービスの種類に応じて適宜サービスを提供する。本発明では、提供されるサービスの種類は問わない。
【0022】
さらに、統計部は、過去に受け付けたサービスの要求と、当該サービスの要求をした要求元端末と、の統計を蓄積する。蓄積される統計としては、たとえば、要求元の端末のIPアドレスや当該ユーザ名等の端末を識別する情報、要求されたサービスの種類、当該要求がされた日時等が考えられる。
【0023】
そして、計算部は、当該端末からの最近の所定の期間もしくは所定の回数のサービスの要求の統計と、統計部に蓄積された当該端末を要求元端末とするサービスの要求の統計と、を比較して類似度を計算し、当該類似度にあらかじめ対応付けられた優先度を得る。統計には、要求元の端末を識別する情報が蓄積されているので、当該端末について、最近のサービス要求の様子(最近の所定の期間もしくは所定の回数のサービスの要求の統計)が通常のサービス要求の様子(統計部に蓄積された当該端末を要求元端末とするサービスの統計)とどの程度異なるかを調べることができる。なお、類似度が低くなる(サービス要求の様子が異常である)と、優先度が下がるように設定することが望ましい。
【0024】
一方、サーバ装置は、当該端末へ、得られた優先度で、当該要求されたサービスを提供する。すなわち、サーバ装置は、得られた優先度によって受付部や応答部を制御することにより、当該端末へのサービスの提供の優先度を変更する。本発明により、いたずらが発生している場合など、サービス要求の様子が異常な変化を示した場合にも、適切な優先度でサービスを提供することができるようになる。
【0025】
また、本発明のサーバ装置において、得られる優先度は、当該要求されたサービスを提供する確率であり、応答部は、乱数を生成して当該要求されたサービスを提供するか否かを決定するように構成することができる。すなわち、優先度が高い場合には、応答部がサービスを提供する確率を高くし、優先度が低い場合には、サービスを提供する確率を低くする。本発明は、上記発明の好適実施形態の一つであり、応答部側でサービスを提供するか否かを決めることによって、各端末に適切にサービスを提供することができるようになる。
【0026】
また、本発明のサーバ装置において、受付部は、得られた優先度で、当該端末からのサービスの要求を受け付けるように構成することができる。すなわち、優先度が高い場合には、受付部が要求を受け付ける確率を高くし、優先度が低い場合には、受付部が要求を受け付ける確率を低くする。本発明は、上記発明の好適実施形態の一つであり、受付部側でサービス要求を受け付けるか否かを決めることによって、各端末に適切にサービスを提供することができるようになる。
【0027】
また、本発明のサーバ装置において、受付部は、端末との間の通信路の帯域制限を行って、当該端末からサービスの要求を受け付ける優先度を変更するように構成することができる。すなわち、優先度が高い場合には、帯域制限を緩くし、優先度が低い場合には、帯域制限を厳しくする。本発明によれば、各端末との通信の帯域制限を調節することによって、サービスを提供する優先度を調整することができるようになる。
【0028】
また、本発明のサーバ装置において、統計部は、「当該サービスの要求をした要求元端末の統計」にかえて、「当該サービスの要求をした要求元端末を含む要求元端末群の統計」を蓄積し、計算部は、「当該端末からの最近の所定の期間もしくは所定の回数のサービスの要求の統計と、統計部に蓄積された当該端末を要求元端末とするサービスの要求の統計と」を比較するのにかえて、「当該端末を含む端末群からの最近の所定の期間もしくは所定の回数のサービスの要求の統計と、統計部に蓄積された当該端末を要求元端末群に含むサービスの要求の統計と」を比較して類似度を計算するように構成することができる。
【0029】
特に、統計部および計算部は、同じグローバルIP(Internet Protocol)アドレスを利用してサービスの要求をする端末の群を、要求元端末群とするように構成することができる。
端末がダイアルアップ接続を利用している場合は、複数の端末(ユーザ)が、あるプロバイダが提供する同じグローバルIPアドレスを利用する。そこで、IPアドレス単位で統計を蓄積した場合には、端末単位に統計が蓄積されるのではなく、当該プロバイダを利用している端末群について統計が蓄積されることになる。したがって、このような端末群に対してサービス提供の優先度が割り当てられる。
【0030】
また、統計部および計算部は、同じ代理サーバを経由してサービスの要求をする端末の群を要求元端末群とするように構成することができる。
端末が代理サーバを利用している場合は、複数の端末が、当該代理サーバのグローバルIPアドレスを利用する。そこで、IPアドレス単位で統計を蓄積した場合には、端末単位に統計が蓄積されるのではなく、当該代理サーバを利用している端末群について統計が蓄積されることになる。したがって、このような端末群に対してサービス提供の優先度が割り当てられる。
【0031】
これらの発明によれば、最終的にユーザが使用している端末の同定ができない場合であっても、当該端末が利用するプロバイダや代理サーバを単位として統計を蓄積することによって、当該端末が含まれる端末群を単位としてサービス提供の優先度を割り当てることができるようになる。
【0032】
本発明の他の観点に係るサービス方法は、受付工程と、統計工程と、計算工程と、応答工程と、を備え、以下のように構成する。
すなわち、受付工程では、端末からのサービスの要求を受け付ける。
一方、応答工程では、当該端末に、当該要求されたサービスを提供して応答する。
さらに、統計工程では、過去に受け付けたサービスの要求と、当該サービスの要求をした要求元端末と、の統計を蓄積する。
【0033】
そして、計算工程では、当該端末からの最近の所定の期間もしくは所定の回数のサービスの要求の統計と、統計工程により蓄積された当該端末を要求元端末とするサービスの要求の統計と、を比較して類似度を計算し、当該類似度にあらかじめ対応付けられた優先度を得る。
一方、当該サービス方法は、当該端末に対して、得られた優先度で、当該要求されたサービスを提供する。
【0034】
本発明のその他の観点に係るプログラムは、コンピュータを上記サーバ装置として機能させ、または、コンピュータに上記サービス方法を実行させるように構成する。
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
【発明の効果】
【0035】
本発明によれば、端末からのサービスの要求に適切な優先度で応答するサーバ装置、サービス方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【発明を実施するための最良の形態】
【0036】
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、インターネット内のサーバ装置に本発明が適用される実施形態を説明するが、各種のコンピュータ、PDA(Personal Data Assistants)、携帯電話などの情報処理装置においても同様に本発明を適用することができる。すなわち、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【実施例1】
【0037】
(サービス提供システムの構成)
図1は、本発明の実施形態の1つに係るサーバ装置が含まれるサービス提供システムの概要構成を示す説明図である。以下、本図を参照して説明する。
サービス提供システム10は、サーバ装置101と、複数の端末151と、を備え、これらはインターネット171を介して通信可能に接続される。インターネット171と各端末151との接続は、ダイヤルアップ接続を用いた場合、各端末151には、一時的なグローバルIPアドレスが割り当てられるのが一般的である。この場合、当該グローバルIPアドレスは、ダイヤルアップ接続サービスを提供するプロバイダを利用するユーザの端末で共有されることになる。
【0038】
また、常時接続環境では、各端末151には固有のグローバルIPアドレスが割り当てられるのが一般的であるが、たとえば家庭内LANを構築する場合には、家庭内LANに含まれる端末151からのアクセスは、すべてこのグローバルIPアドレスを介して行われるように構成されることが多い。このように、インターネットと家庭内LANとを、ルータやファイアウォールで接続する場合には、家庭内LANに含まれる端末151は、ルータ等に割り当てられるグローバルIPを共有することになる。
【0039】
また、インターネット内の代理サーバを用いて、ウェブサーバ装置へのアクセスを高速化したりする手法も広く用いられている。代理サーバは、上記の家庭内LANの態様におけるルータやファイアウォールと同じような機能を果たす。
【0040】
図2は、本発明のサーバ装置が実現される典型的な情報処理装置の概要構成を示す説明図である。以下、本図を参照して説明する。
【0041】
情報処理装置201は、CPU(Central Processing Unit)202と、ROM(Read Only Memory)203と、RAM(Random Access Memory)204と、キーボードやマウスからなる入力装置205と、モニタなどの表示装置206と、ハードディスクなどの外部記憶装置207と、CD−ROMドライブなどの媒体読取装置208と、NIC(Network Interface Card)209と、を備える。
【0042】
サーバ装置として機能するための各種のプログラムを、媒体読取装置208に装着されたCD−ROMなどから外部記憶装置207にインストールし、当該サーバ用プログラムを実行させることによって、情報処理装置201は、本発明のサーバ装置101として機能する。特に、情報処理装置201の電源を投入した後の処理すべき手順を記述した初期化ファイルを適切に外部記憶装置207に用意しておくことにより、情報処理装置201の電源を投入すると、必要なサーバ用プログラムが実行され、本発明のサーバ装置101として機能するようになる。
【0043】
CPU 202は、情報処理装置201の全体の動作を制御し、各構成要素と接続され、これらを制御する制御信号を与えたり、これらとの情報のやりとりを行うためにデータの送受を行う。
ROM 203には、電源投入直後に実行されるIPL(Initial Program Loader)が記録され、これが実行されることにより、外部記憶装置207や媒体読取装置208に装着されたCD−ROM等に記録されたプログラムをRAM 204に読み出してCPU 202による実行が開始される。
【0044】
RAM 204は、データやプログラムを一時的に記憶するためのもので、外部記憶装置207や媒体読取装置208に装着されたCD−ROM等に記録されたプログラムやデータを保持し、また、これがサーバ装置として機能する場合には、各種のサービスを提供するために必要な情報を一時的に記憶したり、サービスの提供の過程を記録するために用いられる。
【0045】
入力装置205は、当該情報処理装置201を直接使用したりこれを管理したりする際に、サーバ装置の管理者が、各種の指示を与えるためのものであり、表示装置206は、当該指示の結果等、各種の報告を管理者に提示するためのものである。
【0046】
典型的には、これらは、当該情報処理装置201に直接接続されるキーボードやマウスならびにモニタが相当するが、NIC 209、シリアル通信線、パラレル通信線などを介して接続される他の情報処理装置を入力装置205として機能させることとして、情報処理装置201自身には、キーボードやマウス、モニタなどを備えない態様も広く用いられている。
【0047】
外部記憶装置207は、上述したように、情報処理装置201がサーバ装置として機能するための各種のプログラムや設定ファイル、提供するサービスに関する各種のデータ、端末からのアクセス統計等を不揮発的かつ読み書き可能に記録するのに用いられる。
【0048】
媒体読取装置208は、当該情報処理装置201に対して種々のソフトウェアをインストールしたり、外部記憶装置207の記憶容量の空きを広くするため情報処理装置201が利用するデータを記憶させるのに利用される。利用可能な媒体は、典型的にはCD−ROMやDVD−ROMである。尚、このような媒体読取装置208を利用しなくとも、NIC 209を介したネットワークインストールの技術を利用して、他の情報処理装置からインターネットやLANを介して提供される各種のソフトウェアをインストールすることが可能である。
【0049】
NIC 209は、情報処理装置201をインターネット等のコンピュータ通信網(図示せず)に接続するためのものであり、LAN(Local Area Network)を構成する際に用いられる10BASE−T/100BASE−T規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ISDN(Integrated Services Digital Network)モデム、ADSL(Asymmetric Digital Subscriber Line)モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとCPU 202との仲立ちを行う内部インターフェース(図示せず)により構成される。
【0050】
図3は、本発明の実施形態の1つに係るサーバ装置の概要構成を示す説明図である。図4は、当該サーバ装置にて実行されるサービス方法の処理の流れを示す説明図である。以下、本図を参照して説明する。
サーバ装置101は、受付部102と、統計部103と、計算部104と、応答部105と、を備える。ここで、当該サーバ装置101が、上記の情報処理装置201上に実現される場合、NIC 209はCPU 202と共働して受付部102ならびに応答部105として機能し、外部記憶装置207はCPU 202と共働して統計部103として機能し、CPU 202は計算部104として機能する。以下、詳細に説明する。
【0051】
ここで、統計部103は、これまでに受け付けたサービスの要求と、当該サービスの要求をした要求元端末と、の統計を蓄積しており、これらの情報は、適宜更新される。
【0052】
まず、受付部102は、端末151からのサービスの要求を受け付ける(ステップS401)。本実施形態では、端末151と受付部102とは、インターネット171を介して接続され、端末151からの各種のサービスの要求があってから、実際のサービスが提供される。サーバ装置101がウェブサーバとして機能する場合には、受付部102は、HTTPプロトコルに基づく要求パケットを受信することとなる。
【0053】
そこで、統計部103は、ステップS401において受け付けたサービスの要求と、当該サービスの要求をした端末151との統計を追加して、蓄積する(ステップS402)。ここで、本実施形態では、統計として蓄積される情報として、
(1)要求元の端末151のIPアドレス
(2)要求がされた日時
を採用するものとする。なお、蓄積する統計の情報量には制限を設け、追加によって当該制限を超えそうになった場合には、古い統計情報から順次消去していくこととするのが望ましい。
【0054】
ついで、計算部104は、当該端末151からの最近の所定の期間もしくは所定の回数のサービスの要求の統計と、統計部103に蓄積された当該端末151を要求元端末151とするサービスの要求の統計と、を比較して類似度を計算する(ステップS403)。類似度の計算には、種々の技術が適用できる。以下では時間帯によるアクセス数をベクトルとして考え、その内積を用いて類似度を求める手法について説明する。
【0055】
たとえば、サービスの要求がされた時刻が21時(午後9時)45分であったものとする。この場合、以下のような24個の統計を取得する。
同日のi時〜i+1時のアクセス数ai(0≦i<21)
前日のi時〜i+1時のアクセス数ai(21≦i<24)
24個の数値からなるai(0≦i<24)は、最近のサービス要求の様子を示す統計である。
【0056】
一方、これまでの統計情報をすべて時間帯ごとに集積して、
i時〜i+1時の総アクセス数ti(0≦i<24)
という統計も取得する。
24個の数値からなるti(0≦i<24)は、これまでのサービス要求の(平均的な)様子に対応する統計である。
【0057】
そこで、ai,tiを、それぞれ、24次元のベクトルa,tと考え、それぞれのベクトルの長さ|a|,|t|および、ベクトルの内積a・tから、これらがなす角θを計算する。具体的には、
|a| = (Σi=023ai2)1/2
|t| = (Σi=023ti2)1/2
a・t = Σi=023ai ti
という計算により、ベクトルの長さおよび内積が求められる。
【0058】
そこで、これらがなす角θは、
θ = arccos(a・t/(|a||t|))
のように得ることができる。
【0059】
さて、ベクトルa,tのなす角が小さい、ということは、これらの方向がほとんど同じである、ということであり、各時間帯におけるアクセスの割合が類似している、ということに対応する。θは0度〜180度の範囲の値をとり、θの数値が小さければ類似するのであるから、θは「非類似度」に対応する。
【0060】
「類似度」とするためには、180度からθを減じた値を採用すれば良いが、このような減算演算を行わなくとも、θが小さければ優先度が上がり、θが大きければ優先度が下がるように、あらかじめθと優先度とを対応付けておけば、「類似度に対応付けた優先度を得る」機能が実現できる。
尚、この他の蓄積される統計情報の種類や類似度の計算手法については、後述する。
【0061】
そして、計算部104は、類似度(もしくは非類似度)を計算によって求めた後に、当該類似度(もしくは非類似度)にあらかじめ対応付けられた優先度を得る(ステップS404)。
本実施形態では、優先度として、当該端末151にサービスを提供する確率を採用する。すなわち、優先度が高ければ、サービスを提供する確率も高くなり、優先度が低ければ、サービスを提供する確率も低くなる。
当該確率の値としては、たとえば、(180°-θ)/180°などのような値を採用することができる。
【0062】
さて、優先度として、サービスを提供する確率が得られたら、CPU 202は、0〜1の範囲の一様乱数を発生させる(ステップS405)。乱数の発生技術については、M系列や線形合同法などを利用するもののほか、現在時刻から直接乱数を発生させる技術などを採用することができる。
【0063】
そして、発生された一様乱数と、当該確率の値とを比較し、前者が後者以下であるか否かを判定する(ステップS406)。一様乱数が確率の値以下である場合(ステップS406;Yes)、当該サーバ装置101は、当該端末151に対して要求されたサービスを提供することとなる。
【0064】
そこで、CPU 202は、受付部102によって受け付けられたサービスの要求の内容を検討し、当該要求に対して、当該サービスを提供する応答のパケットを生成し(ステップS407)応答部105に対して、当該応答のパケットを当該端末151へ送信させて、応答する(ステップS408)。そして、ステップS401に戻る。
【0065】
一方、一様乱数が確率の値以下である場合(ステップS406;No)、CPU 202は、受付部102によって受け付けられたサービスの要求に対して、サーバ装置101に対するアクセスが多いため混雑が生じておりサービスを提供できない旨を報告する報告パケットを生成し(ステップS409)、NIC 209を介して、これを当該端末151に送信して(ステップS410)、ステップS401に戻る。
【0066】
このように、本実施形態では、サービスの要求をしてきた端末のIPアドレスによって統計を分類し、当該IPアドレスからサービスの要求がされた時間帯の統計を蓄積し、従来のサービス要求の時間帯変化と、最近のサービス要求の時間帯変化とを比較して、これが類似する程度に応じた確率で、サービスを提供することとしている。
【0067】
悪意のユーザが当該IPアドレスを利用して大量のサービス要求のパケットを当該サーバ装置101に送信した場合には、従来のサービス要求の時間帯変化と、最近のサービス要求の時間帯変化とが大きく異なる様相を呈することが一般的である。このような場合には、上記の非類似度θは大きくなり、類似度180°-θは小さくなるので、これに応じた確率を採用することにより、いたずらをしているユーザに対するサービス提供を減らすことができる。
【0068】
一方、当該確率は殆どの場合は0とはならないので、同じIPアドレスを利用している他の善意のユーザがいる場合であっても、当該善意のユーザには、サーバ装置101が混みあっていてサービスが提供できない旨の通知がされるので、当該サーバ装置101に対してサービスを要求したいという欲求を減退させずに済む。また、確率が低いとはいえ、多くの場合は0とはならないのであるから、何回か繰り返してサービス要求を行うような熱意のある善意のユーザに対しては、いつかは当該サービスが提供されることとなる。
【実施例2】
【0069】
上記実施例1では、受信部102が要求パケットを受信した後に、当該端末151に対してサービスを提供するか否かをアクセスの類似度と乱数により決めていた。すなわち、サーバ装置101の出口側で、端末151に対するサービス提供の優先度を調整していた。
本実施形態は、サーバ装置101の入口側、すなわち、受付部102においてサービス提供の優先度を調整するものである。
【0070】
サーバ装置101に対するアクセス頻度が高いことが予想される場合には、複数の情報処理装置201を用意する手法が広く用いられている。この手法では、一台(以下「振分機」という。)をサービス要求のパケットを受信する専用の機械とし、残り(以下「処理機」という。)をサービス要求に応答するパケットを生成してこれを端末に送信する機械とする。
【0071】
そして、振分機は、複数の処理機のいずれか1台を、ランダムにもしくはあらかじめ定めた順序で選択して、選択された処理機に転送し、当該処理機にサービスを提供させる。
【0072】
本実施形態では、上記のような振分機、処理機のほか、統計機という情報処理装置を設ける。図5は、本実施形態のサーバ装置の概要構成を示す模式図である。
【0073】
サーバ装置101は、振分機501、統計機502、複数の処理機503を備える。振分機501は、受付部102に相当し、処理機503は、応答部105に相当し、統計機502は、統計部103および計算部104に相当する。
【0074】
振分機501は、サービス要求のパケットを受信すると、これに指定されている端末151のIPアドレスを統計機502に通知して、統計機502から当該IPアドレスに対する優先度(当該IPアドレスからのパケットを単位時間に受け付ける量。以下「帯域制限値」という。)を取得する。
【0075】
そして、当該IPアドレスからのパケットを最近の単位時間でどれだけの量を受け付けたかを調べ、これが帯域制限値より大きい場合には、当該端末151に対して、サービスを提供することができない旨の通知を直ちに行う。
【0076】
一方、帯域制限値以下である(帯域制限にかからない)場合は、公知の技術通り、いずれかの処理機503を選択して、当該パケットを転送し、当該処理機503にサービスの提供をさせる。
【0077】
したがって、振分機501としては、上記のようなIPアドレスごとの帯域制限ができるような専用の機器(ルータやファイアウォール、ゲートウェイ専用機)を採用しても良い。
【0078】
一方、統計機502は、振分機501から端末151のIPアドレスが通知されるたびに、現在時刻と、当該IPアドレスと、を、上記実施形態と同様に、統計として蓄積する。また、振分機501に直ちに優先度を通知できるようにするため、上記の情報を蓄積した後に、次に通知する優先度をあらかじめ計算しておく。
すなわち、統計機502は、端末151のIPアドレスが振分機501から通知されると、当該IPアドレスに対してあらかじめ計算された優先度を振分機501に通知してから、統計の蓄積を行い、次の優先度を求めるのである。
本実施形態は、複数の情報処理装置201によってサーバ装置101を実現する場合に特に好適であり、アクセス集中の際に混雑のためサービスが提供できない旨を通知するようなウェブサーバ装置に適用することができる。
【実施例3】
【0079】
上記の実施形態では、統計情報として端末151のIPアドレス、および、サービス要求がされた時間帯を蓄積することとしていた。このため、実際にサービスを要求している端末151が、ダイヤルアップ接続・代理サーバ・ルータ・ファイアウォール・ゲートウェイ等を利用している場合には、当該統計情報は、端末151単体の統計情報ではなく、当該IPアドレスを利用する端末群の統計情報となる。
【0080】
しかしながら、このような場合であっても、これ以外の情報を統計情報として利用することによって、端末151の同定をさらに詳しく行うことができる。たとえば、以下のような情報をさらに利用することが可能である。
・利用しているWWWブラウザの種類。HTTPプロトコルを利用している場合には、HTTP_USER_AGENTパラメータを参照することによって、この情報を知ることができる。
・要求パケットのブロックサイズ等のパラメータ。これらのパラメータとしては、MRU値、MTU値、RWIN値などが考えられる。これらのパラメータは、インターネット接続の最適化を行うツールなどを利用した場合に設定が変わるほか、OSの種類やアプリケーションの種類によって既定値が異なることがあるため、端末が異なるとパラメータが異なることがある。
・要求するサービスの種類。いたずらを行うユーザは、同じサービスを頻繁に要求することによってサーバ装置101の動作を妨害することが多いためである。
【0081】
このように、種々の統計情報を蓄積して、これらが同一であるものごとに分類を行うと、分類される端末群に含まれる端末の数は少なくなっていくことが期待される。いたずらを行うユーザは、同じ端末から同じいたずら用のアプリケーションを用いてサービス要求を行うことが多いため、これらの種々の統計情報が一致する。そして、いたずらを開始すると、特定の端末群のアクセス数のみが異常に多くなる傾向がある。
【0082】
上記実施形態では、「最近の所定の期間の時間帯ごとのアクセス数」のベクトルと、「これまでに蓄積されている時間帯ごとの総アクセス数」のベクトルと、から、類似度を求めていた。
【0083】
本実施形態では、たとえば、「最近の所定の期間のMRU値、MTU値、RWIN値ごとのアクセス数」の3次元ベクトルと、「これまでに蓄積されているMRU値、MTU値、RWIN値ごとの総アクセス数」の3次元ベクトルと、から、類似度を求めることができる。
【0084】
また、これらの区分の分け方(ベクトルの次元数)は、上記のように蓄積する統計情報の種類によって、適宜変更することが可能である。
【0085】
本実施形態によれば、いたずらをしていると予想される端末をより精細に分別することができ、当該端末に対するアクセス制限を適切に行うことができると期待される。
【実施例4】
【0086】
上記実施形態では、端末や端末群を弁別するために、IPアドレスを利用していたが、いわゆるクッキーの技術が利用できる場合には、これによって端末を同定して、端末ごとの統計をとることとしても良い。
【0087】
すなわち、サーバ装置は、ブラウザを用いた端末からサービスの要求を受け付けると、当該端末のブラウザに対してクッキーという識別情報を送信する。端末のブラウザは、受信したクッキーを端末のハードディスク等の記憶装置に記憶する。
【0088】
当該端末からの次回のサービス要求の際には、クッキーに保存された識別情報がサーバ装置に送信される。これによって、サーバ装置は、いずれの端末からのサービス要求か、を弁別することができる。
【0089】
本実施形態では、クッキーによって、ユーザ単位で端末の弁別ができるため、同じIPアドレスを利用する悪意のユーザと善意のユーザがいる場合であっても、悪意のユーザを排除し、善意のユーザに対しては、通常通りサービス提供がされるようにすることができる。
【0090】
本技術を適用する際は、クッキーが利用できるようにブラウザを設定しないと、サーバ装置からのサービスの提供が受けられないように、サービス提供の構成設定をすることが望ましい。
【実施例5】
【0091】
上記実施形態では、類似度をベクトルのなす角から求めていた。すなわち、ベクトルのなす角θが小さければ小さいほど、すなわち、cosθが大きければ大きいほど、類似する、としていた。
【0092】
この場合、ベクトルのなす角が小さい、ということは、これらのベクトルが略相似関係にある、ということを意味する。上記実施形態では時間帯あたりのアクセス数分布からベクトルとしていたが、ベクトルのなす角が小さい、ということは、各時間帯あたりのアクセス数分布の「1日のアクセス総数に対するそれぞれの割合」が同じ傾向を示している、ということを意味する。
【0093】
しかし、各時間帯あたりのアクセス数分布の「1日のアクセス総数に対するそれぞれの割合」が同じ傾向であっても、「1日のアクセス総数」が増減することはありうる。この場合、「1日のアクセス総数」に応じて、これが多ければ(可能であれば)帯域制限を緩め、少なければ帯域制限をそのままにする、などの制御を行うことができる。
【0094】
すなわち、統計として蓄積されたベクトルtiと、最近のアクセスの様子を表すベクトルaiと、の間で、まず非類似度θ(類似度180°-θ)を求め、これに応じて確率の閾値や帯域制限の値を求める。
【0095】
次に、|ai|/|ti|から、どれだけベクトルの大きさが変化しているか、を調べる。そして、|ai|/|ti|が1より大きい場合は、確率の閾値や帯域制限の値を修正する。
【0096】
すなわち、|ai|/|ti|が1より大きい場合は、アクセス数が全体として増加しているものと考えられるので、サーバ装置に対する現在のアクセス頻度やサービス提供の頻度とサーバ装置における負荷・回線の負荷とを対比する。そして、サーバ装置にさらにサービスを提供する余裕がある場合には、|ai|/|ti|が1より大きくなればなるほど、サービスを提供する確率が高くなるように、もしくは、帯域制限を緩くするように、これらの値を修正するのである。
【0097】
サービスを提供する確率の上限は1であり、帯域制限の上限は当該サーバ装置に可能な情報提供速度や回線の性能によって決まるから、まず、類似度から求めた確率の閾値や帯域制限の値と、この上限との差を調べる。
【0098】
一方、arctanは単調増加する関数で、その上限はπ/2であるから、arctan(|ai|/|ti|-1)を求め、得られた差にこの値を乗じてからπ/2で割れば、修正量を求めることができる。そして、この修正量を加算して、確率の閾値や帯域制限の値を修正する。
【0099】
この場合、arctan以外にも、上限が定まっており、単調増加するような関数を別途用意して、これを用いて上記のような修正量の計算をすることも可能である。また、|ai|/|ti|を段階的に分類し、各段階について修正量をあらかじめ定めておき、修正量を加算した結果が上限を超えていたら修正後の値を当該上限にする、としても良い。
【0100】
これによって、異常ではないと予想されるアクセスの総数が増加している場合には、サーバ負荷と帯域制限とを考慮して、サービスの提供がされる機会ができるだけ増えるようにすることができる。また、上記実施形態における善意のユーザに対するサービス提供の機会ができるだけ増えるようにすることができる。
【産業上の利用可能性】
【0101】
以上説明したように、本発明によれば、端末からのサービスの要求に適切な優先度で応答するサーバ装置、サービス方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができ、ウェブサーバを用いた各種のサービス要求やユーザ登録などにおいて、繰返し要求を行ってこれを妨害するいたずらを防止したい場合などに適用することができる。
【図面の簡単な説明】
【0102】
【図1】本発明の実施形態の1つに係るサーバ装置が含まれるサービス提供システムの概要構成を示す説明図である。
【図2】本発明の実施形態の1つに係るサーバ装置が実現される典型的な情報処理装置の概要構成を示す説明図である。
【図3】実施形態の1つのサーバ装置の概要構成を示す模式図である。
【図4】実施形態の1つのサーバ装置にて実行されるサービス方法の制御の流れを示すフローチャートである。
【図5】他の実施形態のサーバ装置の概要構成を示す模式図である。
【符号の説明】
【0103】
101 サーバ装置
102 受付部
103 統計部
104 計算部
105 応答部
151 端末
171 インターネット
201 情報処理装置
202 CPU
203 ROM
204 RAM
205 入力装置
206 表示装置
207 外部記憶装置
208 媒体読取装置
209 NIC
501 振分機
502 統計機
503 処理機

【特許請求の範囲】
【請求項1】
端末からのサービスの要求を受け付ける振分部、
過去に受け付けたサービスの要求と、当該サービスの要求をした要求元端末と、の統計を蓄積し、当該端末からの最近の所定の期間のサービスの要求の量を取得する統計部、
複数の処理部であって、そのそれぞれは、前記振分部により転送されたサービスの要求を受け付けて、当該端末に、当該サービスを提供して応答する複数の処理部
を備え、
前記振分部は、前記取得された当該端末からの最近の所定の期間のサービスの要求の量が、
(a)所定の帯域制限値よりも大きい場合、当該端末に、サービスを提供することができない旨を通知し、
(b)所定の帯域制限値以下である場合、前記複数の処理部からいずれかの処理部を選択して、当該要求を転送する
ことを特徴とするサーバ装置。
【請求項2】
請求項1に記載のサーバ装置であって、
前記統計部は、前記振分部が、当該端末に当該サービスを提供することができない旨を通知した後、もしくは、前記複数の処理部のいずれかに当該要求を転送した後に、当該サービスの要求をした要求元端末の統計を蓄積し、次に取得されるべき当該端末からの最近の所定の期間のサービスの要求の量をあらかじめ計算する
ことを特徴とするサーバ装置。
【請求項3】
振分部、統計部、複数の処理部を備えるサーバ装置にて実行されるサービス方法であって、
前記振分部が、端末からのサービスの要求を受け付けて、当該サービスの要求を振り分ける振分工程、
前記統計部が、過去に受け付けたサービスの要求と、当該サービスの要求をした要求元端末と、の統計を蓄積し、当該端末からの最近の所定の期間のサービスの要求の量を取得する統計工程、
前記複数の処理部のそれぞれが、前記振分部により転送されたサービスの要求を受け付けて、当該端末に、当該サービスを提供して応答する処理工程、
を備え、
前記振分工程では、前記取得された当該端末からの最近の所定の期間のサービスの要求の量が、
(a)所定の帯域制限値よりも大きい場合、当該端末に、サービスを提供することができない旨を通知し、
(b)所定の帯域制限値以下である場合、前記複数の処理部からいずれかの処理部を選択して、当該要求を転送する
ことにより、当該サービスの要求を振り分ける
ことを特徴とするサービス方法。
【請求項4】
コンピュータを、
端末からのサービスの要求を受け付ける振分部、
過去に受け付けたサービスの要求と、当該サービスの要求をした要求元端末と、の統計を蓄積し、当該端末からの最近の所定の期間のサービスの要求の量を取得する統計部、
複数の処理部であって、そのそれぞれは、前記振分部により転送されたサービスの要求を受け付けて、当該端末に、当該サービスを提供して応答する複数の処理部
として機能させ、
前記振分部は、前記取得された当該端末からの最近の所定の期間のサービスの要求の量が、
(a)所定の帯域制限値よりも大きい場合、当該端末に、サービスを提供することができない旨を通知し、
(b)所定の帯域制限値以下である場合、前記複数の処理部からいずれかの処理部を選択して、当該要求を転送する
ように機能させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2007−58872(P2007−58872A)
【公開日】平成19年3月8日(2007.3.8)
【国際特許分類】
【出願番号】特願2006−276114(P2006−276114)
【出願日】平成18年10月10日(2006.10.10)
【分割の表示】特願2003−297331(P2003−297331)の分割
【原出願日】平成15年8月21日(2003.8.21)
【出願人】(506113602)株式会社コナミデジタルエンタテインメント (1,441)
【Fターム(参考)】