JP6903888B2 - 疑似サーバ制御装置、疑似サーバ制御方法、および疑似サーバ制御プログラム - Google Patents

疑似サーバ制御装置、疑似サーバ制御方法、および疑似サーバ制御プログラム Download PDF

Info

Publication number
JP6903888B2
JP6903888B2 JP2016184611A JP2016184611A JP6903888B2 JP 6903888 B2 JP6903888 B2 JP 6903888B2 JP 2016184611 A JP2016184611 A JP 2016184611A JP 2016184611 A JP2016184611 A JP 2016184611A JP 6903888 B2 JP6903888 B2 JP 6903888B2
Authority
JP
Japan
Prior art keywords
request
pseudo
server
production
network
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
JP2016184611A
Other languages
English (en)
Other versions
JP2018049471A (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.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2016184611A priority Critical patent/JP6903888B2/ja
Publication of JP2018049471A publication Critical patent/JP2018049471A/ja
Application granted granted Critical
Publication of JP6903888B2 publication Critical patent/JP6903888B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Test And Diagnosis Of Digital Computers (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、主に、ウェブサービスを提供するウェブサービスシステムに用いられる疑似サーバ制御装置、疑似サーバ制御方法、および疑似サーバ制御プログラムに関する。
ウェブサービスを提供する場合、サービス提供者にとって、特にサービス可用性(Availabilityとも呼ばれる/システムなどが使用できる状態を維持し続ける能力)の維持は重要なミッションである。可用性を維持するために、例えば、リクエストの集中アクセス等によってサーバが高負荷状態になってもダウンせずに正常に動作するシステム設計が求められる。通常、これらのシステム設計は、製品出荷前(例えば、設計段階)に十分検討されるので、多くの場合、問題は発生しない。
しかしながら、客先にて実際の運用が開始されてから、想定外の数のリクエストがサーバに集中することが判明する場合がある。サーバの負荷が所定のレベルを超えた場合、最悪、サーバがダウンする虞がある。
そこで、サービス提供者は、上記の如き状況にならないようにサービス可用性の観点から、実際の運用が開始された後でも予め状況把握や可用性管理に向けた計画を立ててそれを実施する必要がある。
例えば、実際にユーザにウェブサービスを提供するための環境である本番環境にて、本来の運用サービスを実行しながら並行して実際に運用される本番サーバ自身がその状況の把握および問題解消に向けた計画の立案等を実行する方法が考えられる。
また、例えば、ウェブサービスが実際にユーザに提供する本番環境とは別に、本番環境と同等のリクエスト状況が再現可能な疑似環境を作り出し、この疑似環境上で本番環境の性能チューニング(可用性を維持可能なシステム規模への変更)を行う手法が考えられる。
なお、特許文献1には、リクエストを一旦キューに格納し、システムで決定した待機時間だけ待機した後本番サーバに送信する技術が記載されている。
特許文献2には、パケット交換型ネットワークにおいて、ネットワーク負荷分散を行うことにより、通常だと破棄せざるを得なかったパケットを別経路で転送するなどして救済する技術についての記載がある。
特許文献3には、ウェブサーバからの処理要求(リクエスト)を、本番系サーバへ送信するとともに処理待ちキューに登録する処理要求転送装置についての記載がある。この処理要求転送装置により、リクエストを試験系サーバに転送することができ、且つそのリクエストの転送間隔も制御することが可能となる。
特開2004−348491号公報 特開2003−078555号公報 特開2015−102951号公報
しかしながら、近年、ウェブサービスシステム(特に、クライアントやウェブ利用回数の増加に伴う本番環境のサーバの数)の大規模化が顕著になっている。従って、本番環境上にて本来サービスと並行して状況把握や計画立案を実施する手法の場合、それら可用性対応処理の負荷自体が本番サーバ全体の負荷を高めることになり、結果として、本来サービスの処理能力が低下する虞もある。
一方、疑似環境上で本番環境の性能チューニングを行う構成の場合、本番環境を再現するとの宿命上、本番環境の大規模化につれて、どうしても、疑似環境のコストの増大化および装置構成の複雑化が懸念される。
特許文献1や特許文献2の技術は、いずれも本番サーバにおけるデータ(特にリクエスト)の取りこぼしを防ぐための技術であり、サービス可用性を維持するための状況把握や状況改善に向けた計画立案のための技術ではない。
また、特許文献3の処理要求転送装置は、ウェブサーバと実際に処理を行うアプリケーションサーバとの間に配置されている。従って、ウェブサーバだけで処理が完結する静的コンテンツのリクエストなどは対象とならない。すなわち、特許文献3の技術ではシステム全体を行き交うリクエストの全てを把握できないため、状況把握や状況改善に向けた計画立案を確実に実施することはできない。
本発明は、上記課題を解決するためになされたものであり、サービス可用性を維持するための状況把握や状況改善に向けた計画立案を確実且つ容易に実施することが可能な疑似サーバ制御装置、疑似サーバ制御方法、および疑似サーバ制御プログラムを提供することを目的とする。
本発明の疑似サーバ制御装置は、処理のリクエストを発生する機器から受け付けた前記リクエストを、本番サーバを少なくとも含む本番系ネットワークと、疑似サーバを少なくとも含む疑似系ネットワークとに転送するリクエスト転送モジュールと、前記疑似系ネットワークに転送された前記リクエストを一時的に蓄積し、前記疑似サーバの負荷状態に応じて、前記リクエストの前記疑似サーバへの送信タイミングを制御するリクエスト蓄積モジュールと、を備える。
本発明の疑似サーバ制御方法は、処理のリクエストを発生する機器から受け付けた前記リクエストを、本番サーバを少なくとも含む本番系ネットワークと、疑似サーバを少なくとも含む疑似系ネットワークとに転送し、前記疑似系ネットワークに転送された前記リクエストを一時的に蓄積し、前記疑似サーバの負荷状態に応じて、前記リクエストの前記疑似サーバへの送信タイミングを制御することを特徴とする。
本発明の疑似サーバ制御プログラムは、処理のリクエストを発生する機器から受け付けた前記リクエストを、本番サーバを少なくとも含む本番系ネットワークと、疑似サーバを少なくとも含む疑似系ネットワークとに転送するリクエスト転送処理と、前記疑似系ネットワークに転送された前記リクエストを一時的に蓄積し、前記疑似サーバの負荷状態に応じて、前記リクエストの前記疑似サーバへの送信タイミングを制御するリクエスト蓄積処理と、をコンピュータに実行させるためのプログラムである。
本発明によれば、サービス可用性を維持するための状況把握や状況改善に向けた計画立案を確実且つ容易に実施することが可能となる。
本発明の第1の実施形態の疑似サーバ制御装置の構成例を示すブロック図である。 図1に示す疑似サーバ制御装置の動作例を説明するためのフローチャートである。 本発明の第2の実施形態の疑似サーバ制御装置の構成例を示すブロック図である。 本発明の第3の実施形態の疑似サーバ制御装置を含むウェブサービスシステムの構成例を示すブロック図である。 図4に示すリクエスト転送モジュールとその周辺のモジュールを含むシステムの構成例を示すブロック図である。 図4に示すリクエスト蓄積モジュールを含む疑似系ネットワークのシステムの構成例を示すブロック図である。 リクエストデータベースに構築されるリクエスト管理テーブルの構成例を示すデータ構成図である。 リクエスト転送モジュールの動作例を説明するためのフローチャートである。 リクエスト蓄積モジュールの第1の動作例(リクエストをリクエストデータベースに格納するまでの動作)を説明するためのフローチャートである。 リクエスト蓄積モジュールの第2の動作例(リクエストをリクエストデータベースから読み出して疑似サーバに転送するまでの動作)を説明するためのフローチャートである。
[第1の実施形態]
(構成の説明)
図1は、本発明の第1の実施形態の疑似サーバ制御装置10の構成例を示すブロック図である。疑似サーバ制御装置10は、リクエスト転送モジュール12と、リクエスト蓄積モジュール14と、を備える。リクエスト転送モジュール12は、処理のリクエストを発生する機器(例えば、エンドユーザ機器)から受け付けたリクエストを、本番サーバを少なくとも含む本番系ネットワークと、疑似サーバを少なくとも含む疑似系ネットワークとに転送する。ここで、本番サーバとは、例えば、ウェブサービスが実際にユーザに提供する本番環境に用いられる実運用サーバのことである。リクエスト蓄積モジュール14は、疑似系ネットワークに転送されたリクエストを一時的に蓄積し、疑似サーバの負荷状態に応じて、リクエストの疑似サーバへの送信タイミングを制御する。
(動作の説明)
図2は、図1に示す疑似サーバ制御装置10の動作例を説明するためのフローチャートである。リクエスト転送モジュール12は、エンドユーザ機器から受け付けたリクエストを、本番サーバを少なくとも含む本番系ネットワークと、疑似サーバを少なくとも含む疑似系ネットワークとに転送する(ステップS1)。リクエスト蓄積モジュール14は、疑似系ネットワークに転送されたリクエストを一時的に蓄積し、疑似サーバの負荷状態に応じて、例えば、サーバが高負荷状態とならないように、リクエストの疑似サーバへの送信タイミングを制御する(ステップS2)。
(効果の説明)
以上説明した第1の実施形態において、エンドユーザ機器からのリクエストは、リクエスト転送モジュール12によって疑似系ネットワークに転送(ミラーリング)された後、リクエスト蓄積モジュール14に一時的に蓄積される。そして、蓄積されたリクエストは、リクエスト蓄積モジュール14によって、疑似サーバの負荷状態に応じて疑似サーバへ送信される。
第1の実施形態により、疑似系ネットワーク(特に、疑似サーバ)上で本番系ネットワーク(特に、本番サーバ)と同等のリクエスト状況を再現することが可能となる。従って、本番系ネットワークへの処理負荷に影響を与えることなく、しかも確実に、サービス可用性を維持するための状況把握や状況改善に向けた計画立案を実施することが可能となる。
さらに、第1の実施形態の場合、リクエストはリクエスト蓄積モジュール14に一時的に蓄積され、且つその送信タイミングは疑似サーバが高負荷状態とならないように調整することができる。すなわち、第1の実施形態によれば、疑似系ネットワークを、ロードバランサや多数の本番サーバから成る本番系ネットワークに比して簡素且つ低コストに構築することが可能となる。
以上を纏めると、第1の実施形態によれば、サービス可用性を維持するための状況把握や状況改善に向けた計画立案を確実且つ容易に実施することが可能となる。
[第2の実施形態]
図3は、本発明の第2の実施形態の疑似サーバ制御装置30の構成例を示すブロック図である。疑似サーバ制御装置30は、記憶部32と、制御部34と、を備える。記憶部32は、コンピュータ読み取り可能な記録媒体であり、疑似サーバ制御プログラム40を記憶する。疑似サーバ制御プログラム40は、図2に示される処理を制御部34に実行させるためのプログラムである。
以上説明した第2の実施形態によれば、第1の実施形態と同様に、サービス可用性を維持するための状況把握や状況改善に向けた計画立案を確実且つ容易に実施することが可能となる。
なお、制御部34の例としては、例えば、CPU(Central Processing Unit)とCPUが実行する命令を記憶するメモリを挙げることができる。また、コンピュータ読み取り可能な記録媒体は、例えば、非一時的な記憶装置である。非一時的な記憶装置の例としては、例えば、光磁気ディスク、ROM(Read Only Memory)、不揮発性半導体メモリ等の可搬媒体、コンピュータシステムに内蔵されるハードディスクを挙げることができる。また、コンピュータ読み取り可能な記録媒体は、一時的な記憶装置を含んでももよい。一時的な記憶装置の例としては、例えば、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線、あるいは、コンピュータシステム内部の揮発性メモリを挙げることができる。
[第3の実施形態]
(構成の説明)
図4は、本発明の第3の実施形態に係る疑似サーバ制御装置150を含むウェブサービスシステム100の構成例を示すブロック図である。
ウェブサービスシステム100は、1つ以上のエンドユーザ機器102−1〜102−n(nは自然数)と、ロードバランサパッケージ104と、1つ以上の本番サーバ106−1〜106−nと、リクエスト蓄積モジュール108と、疑似サーバ110と、を含む。
エンドユーザ機器102−1〜102−nは、所望のウェブサービスを受けるために、本番サーバ106−1〜106−nに対して、リクエスト(処理要求)を送信する。
本番サーバ106−1〜106−nは、エンドユーザ機器102−1〜102−nから受信したリクエストに対応したサービスを提供する。
エンドユーザ機器102−1〜102−nから送信されたリクエストは、一旦、ロードバランサパッケージ104に入力する。ロードバランサパッケージ104は、ロードバランサモジュール120と、リクエスト転送モジュール122とを含む。
リクエスト転送モジュール122は、エンドユーザ機器102−1〜102−nから受け付けたリクエストを、本番サーバ106−1〜106−nを少なくとも含む本番系ネットワークと、疑似サーバ110を少なくとも含む疑似系ネットワークとに転送する。具体的には、リクエスト転送モジュール122は、リクエストを、本番系ネットワークを構成する要素の1つであるロードバランサモジュール120に転送するとともに、疑似系ネットワークを構成するリクエスト蓄積モジュール108へ転送(この転送をミラーリングと呼ぶ場合がある)する。
ロードバランサモジュール120は、受信したリクエストを、本番サーバ106−1〜106−nの負荷が分散されるように考慮しながら送信する。
本実施形態の疑似サーバ制御装置150(図4において、一点鎖線で示す)は、リクエスト転送モジュール122と、リクエスト蓄積モジュール108と、を備える。疑似サーバ制御装置150は、第1の実施形態の疑似サーバ制御装置10の一例であり、また、第2の実施形態の疑似サーバ制御装置30のようなプロセッサを含むコンピュータによって構成されてもよい。
図5は、図4に示すリクエスト転送モジュール122とその周辺のモジュールを含むシステムの構成例を示すブロック図である。リクエスト転送モジュール122は、リクエスト受付部200(リクエスト受付手段の一例)と、リクエスト転送部202(リクエスト転送手段の一例)と、を備える。
リクエスト受付部200は、エンドユーザ機器102−1〜102−nからのリクエストを受け付け、受け付けたリクエストを、ロードバランサモジュール120(本番系ネットワークを構成する要素の一つ)へ転送する。さらに、リクエスト受付部200は、受け付けたリクエストをリクエスト転送部202(疑似系ネットワークを構成する要素の一つ)へミラーリングする。
リクエスト転送部202は、リクエスト受付部200によってミラーリングされたリクエストをリクエスト蓄積モジュール108へ転送する。
なお、リクエスト転送モジュール122は、ロードバランサモジュール120を少なくとも含むロードバランサパッケージ104内に配置されてもよい。
図6は、図4に示すリクエスト蓄積モジュール108を含む疑似系ネットワークのシステムの構成例を示すブロック図である。リクエスト蓄積モジュール108は、リクエストデータベース300と、リクエスト蓄積制御部302(リクエスト蓄積制御手段)と、リクエスト送信制御部304(リクエスト送信制御手段)と、を備える。
リクエストデータベース300は、リクエスト転送モジュール122から転送されたリクエストを一時的に保持する。そして、少なくとも、リクエスト転送モジュール122からリクエストを受信してそのリクエストが疑似サーバ110に転送されるまでの間、リクエストデータベース300には、リクエストの送信を管理するためのリクエスト管理テーブル330が作成される。
図7は、リクエストデータベース300に構築されるリクエスト管理テーブル330の構成例を示すデータ構成図である。リクエスト管理テーブル330は、リクエスト自体とこのリクエストの送信を管理するための少なくとも1つのフィールド情報とからなる、少なくとも1つのレコード情報を含む。
フィールド情報とは、図7において、列方向のデータ(例えば、Index、Method、Request等)のことである。レコード情報とは、図7において、行方向のデータ(例えば、Index=1についての各フィールド情報およびリクエスト(request)の集まり)である。
なお、図7において、Indexは、レコード情報を識別するために割り振られる数字であり、通常、そのレコード情報に含まれるリクエストの受信順に割り振られる(つまり、先に受信されたリクエストを含むレコード情報のIndexほど小さい値になる)。
Methodは、ウェブサイト(=ウェブサーバ、本実施形態の本番サーバ106−1〜106−nに相当)にデータを受け渡すときに用いる方法のことである。Methodには、例えば、GETメソッドとPOSTメソッドがある。一般的に、リクエストは、URL(Uniform Resource Locator)を含むヘッダ部とボディ部とで構成される。GETメソッドは、URLの後にフォーム入力などのユーザデータを付加するメソッドである。これに対して、POSTメソッドは、ボディ部にユーザデータを収容するメソッドである。
Requestは、本実施形態等で使用しているリクエストそのものである。Hostは、ウェブサーバ(例えば、本番サーバ106−1〜106−n)の名前である。Cookieは、ウェブブラウザ(例えば、エンドユーザ機器102−1〜102−n)でウェブサイト(例えば、本番サーバ106−1〜106−n)にアクセスした際に、そのサイトから送信されるファイル(情報)である。Cookieには、例えば、ウェブサイト(ウェブサーバ)側が指定したデータを保存しておくことができる。Content-Lengthは、データの長さ、例えば、レコード情報のデータの長さ、あるいはリクエストのデータの長さを示す。
リクエスト蓄積制御部302は、リクエストのリクエストデータベース300への蓄積、より詳細にはリクエスト管理テーブル330への書き込みを制御する。リクエスト蓄積制御部302は、リクエストをリクエスト管理テーブル330に書き込む際、リクエストの宛先情報を疑似サーバ110の宛先情報に書き換える。
リクエスト送信制御部304は、疑似サーバ110の負荷状態に応じてリクエストの疑似サーバ110への送信タイミングを制御する。本実施形態では、負荷状態に応じた制御の一例として、疑似サーバ110が高負荷状態とならないように制御する場合を例に挙げる。例えば、リクエスト送信制御部304は、所定のリクエストを送信する際、その所定のリクエストの前に送信された別のリクエストのTAT(Turn Around Time)の値が所定の閾値を下回っている場合、疑似サーバ110が高負荷状態ではないと判断し、所定のリクエストを疑似サーバ110へ送信する。
すなわち、リクエスト送信制御部304は、ただ単に、リクエスト管理テーブル330のリクエストを送信するのではなく、疑似サーバ110が高負荷にならないように疑似サーバ110への単位時間当たりのリクエスト送信数を制御し、必要があればリクエストの送信を遅延させる。
これによりリクエストの取りこぼしが回避される。すなわち、疑似サーバ110は、本番サーバ106−1〜106−nと同数のリクエストを受信することができる。このことは、疑似サーバ110上に本番サーバ106−1〜106−nと同一の環境が再現されたことを意味する。
(動作の説明)
以下、疑似サーバ制御装置150の動作について説明する。なお、図4における疑似サーバ制御装置150と直接関係の無い装置の動作(例えば、ロードバランサモジュール120や本番サーバ106−1〜106−n等の動作)についての説明は、省略する。
図8は、リクエスト転送モジュール122の動作例を説明するためのフローチャートである。リクエスト転送モジュール122のリクエスト受付部200は、エンドユーザ機器102−1〜102−nからのリクエストを受け付け、受け付けたリクエストを、ロードバランサモジュール120へ転送する(ステップS10)。さらに、リクエスト受付部200は、受け付けたリクエストをリクエスト転送部202へミラーリングする(ステップS11)。リクエスト転送モジュール122のリクエスト転送部202は、リクエスト受付部200によってミラーリングされたリクエストをリクエスト蓄積モジュール108へ転送する(ステップS12)。
図9は、リクエスト蓄積モジュール108の第1の動作例(リクエストをリクエストデータベース300に格納するまでの動作)を説明するためのフローチャートである。リクエスト蓄積モジュール108のリクエスト蓄積制御部302は、リクエスト転送モジュール122から転送されたリクエストの宛先情報を疑似サーバ110の宛先情報に書き換える(ステップS20)。宛先情報は、例えば、FQDN(Fully Qualified Domain Name)やホスト(例えば、本番サーバ106−1〜106−n)の名前である。リクエスト蓄積制御部302は、このリクエストをリクエスト管理テーブル330へ登録する(ステップS21)。
図10は、リクエスト蓄積モジュール108の第2の動作例(リクエストをリクエストデータベース300から読み出して疑似サーバ110に転送するまでの動作)を説明するためのフローチャートである。
リクエスト蓄積モジュール108のリクエスト送信制御部304は、リクエスト管理テーブル330に送信すべきリクエストが存在するか否か判定する(ステップS30)。送信すべきリクエストが存在しない場合(ステップS30においてNo)、リクエスト送信制御部304は、ステップS30の処理を再度実行する。
リクエスト管理テーブル330に送信すべきリクエストが存在する場合、リクエスト送信制御部304は、疑似サーバ110が高負荷状態にあるか否かを判定する(ステップS31)。ここで、高負荷状態とは、例えば、負荷を示すある物理量の値が所定の閾値を上回っている状態のことを指す。例えば、リクエスト送信制御部304は、送信しようとするリクエストの前に送信された別のリクエストのTAT(時間)に基づいて疑似サーバ110の負荷状態を判定することができる。
疑似サーバ110が高負荷状態にある場合(ステップS31においてYes)、リクエスト送信制御部304は、当該リクエストの送信を行わず、ステップS31の処理を再度実行する。すなわち、この場合、リクエストは、疑似サーバ110が低負荷状態になるまでウェイトされて送信されることはない。
疑似サーバ110が低負荷状態にある場合(ステップS31においてNo)、リクエスト送信制御部304は、リクエスト管理テーブル330からIndexが最も小さいレコード情報に含まれるリクエストを抽出する(ステップS32)。リクエスト送信制御部304は、抽出したリクエストを、疑似サーバ110へ送信する(ステップS33)。
(効果の説明)
以上説明した第3の実施形態において、エンドユーザ機器102−1〜102−nからのリクエストは、リクエスト転送モジュール122によってミラーリングされた後、リクエスト蓄積モジュール108に一時的に蓄積される。そして、蓄積されたリクエストは、リクエスト蓄積モジュール108によって、疑似サーバ110が高負荷状態とならないように疑似サーバ110へ送信される。
第3の実施形態により、疑似系ネットワーク(特に、疑似サーバ110)上で本番系ネットワーク(特に、本番サーバ106−1〜106−n)と同等のリクエスト状況を再現することが可能となる。従って、本番系ネットワークへの処理負荷に影響を与えることなく、しかも確実に、サービス可用性を維持するための状況把握や状況改善に向けた計画立案を実施することが可能となる。
さらに、第3の実施形態の場合、リクエストはリクエスト蓄積モジュール108に一時的に蓄積され且つその送信タイミングは疑似サーバ110が高負荷状態とならないように調整されている。すなわち、第3の実施形態によれば、疑似系ネットワークを、ロードバランサモジュール120や多数の本番サーバ106−1〜106−nから成る本番系ネットワークに比して簡素且つ低コストに構築することが可能となる。
以上を纏めると、第3の実施形態によれば、サービス可用性を維持するための状況把握や状況改善に向けた計画立案を確実且つ容易に実施することが可能となる。
(変形例の説明)
以上説明した第3の実施形態において、リクエスト管理テーブル330(図7参照)を複数(例えば、さらにもう一つ追加する)設けることができる。これにより、疑似サーバ110を複数作成することが可能となる。
そして、この追加されたリクエスト管理テーブル330にリクエストを登録する際、例えば、特定のリクエストのみを格納するとのルールが設けられてもよい。このことにより、通常の疑似サーバ110に加え、ある特定のリクエストのみを集中させた別の疑似サーバ110を追加することができる。このことは、現在の本番環境をスケールアウト(本番サーバ106−1〜106−nの追加)させる場合の調査分析等にとって極めて有用である。
また、以上説明した第3の実施形態において、疑似サーバ制御装置150と疑似サーバ110との間を専用線で結び、セキュアな通信を約束することが可能である。これにより、漏洩が許されない本番環境の情報を、サービス運用者側のクローズドな社内網に構築することが可能となる。
さらに、以上説明した第3の実施形態において、リクエスト蓄積制御部302は、リクエストのメソッドを解析し、GETリクエストおよびPOSTリクエストそれぞれに対してメソッドに応じた処理を追加することができる。例えば、「GETリクエストについては疑似サーバ110からのレスポンスは受け取らない」や「POSTリクエストについては応答を拾い、httpレスポンスに従った処理分岐を設ける」等の処理を追加することができる。これにより、疑似サーバ制御装置150は、疑似サーバ110の状態を任意に制御することが可能となる。
また、以上説明した第3の実施形態は、例えば、第2の実施形態のように、図8〜10に示す動作がプログラムとして記述されてコンピュータ読み取り可能な記録媒体に記憶され、そのプログラムがCPU等の演算装置により実行される構成とすることもできる。なお、図8〜図10の動作を一つのコンピュータで実行できない場合、複数のコンピュータが分担してこれらの動作を実行してもよい。
以上、各実施形態を用いて本発明を説明したが、本発明の技術的範囲は、上記各実施形態の記載に限定されない。上記各実施形態に多様な変更又は改良を加えることが可能であることは当業者にとって自明である。従って、そのような変更又は改良を加えた形態もまた本発明の技術的範囲に含まれることは説明するまでもない。また、以上説明した各実施形態において使用される、数値や各構成の名称等は例示的なものであり適宜変更可能である。
また、上述した各実施形態の一部又は全部は、以下の付記のようにも記載されうる。
(付記1)
処理のリクエストを発生する機器から受け付けた前記リクエストを、本番サーバを少なくとも含む本番系ネットワークと、疑似サーバを少なくとも含む疑似系ネットワークとに転送するリクエスト転送モジュールと、
前記疑似系ネットワークに転送された前記リクエストを一時的に蓄積し、前記疑似サーバの負荷状態に応じて、前記リクエストの前記疑似サーバへの送信タイミングを制御するリクエスト蓄積モジュールと、
を備えることを特徴とする疑似サーバ制御装置。
(付記2)
前記リクエスト蓄積モジュールは、
前記リクエスト転送モジュールから転送された前記リクエストを一時的に保持するリクエストデータベースと、
前記リクエストの前記リクエストデータベースへの蓄積を制御するリクエスト蓄積制御手段と、
前記リクエストの前記送信タイミングを制御するリクエスト送信制御手段と
を備えることを特徴とする付記1記載の疑似サーバ制御装置。
(付記3)
前記リクエスト送信制御手段は、所定の前記リクエストを送信する前に送信された別の前記リクエストのTAT(Turn Around Time)の値が所定の閾値を下回っている場合に、所定の前記リクエストを前記疑似サーバへ送信することを特徴とする付記2記載の疑似サーバ制御装置。
(付記4)
少なくとも、前記リクエスト転送モジュールから前記リクエストを受信してその前記リクエストが前記疑似サーバに転送されるまでの間、前記リクエストデータベースには、前記リクエストの送信を管理するためのテーブルであり、前記リクエスト自体とこの前記リクエストの送信を管理するための少なくとも1つのフィールド情報とからなる、少なくとも1つのリクエストレコード情報を備えるリクエスト管理テーブルが構築されることを特徴とする付記2または3記載の疑似サーバ制御装置。
(付記5)
前記リクエスト蓄積制御手段は、前記リクエストを前記リクエスト管理テーブルに蓄積する際、前記リクエストの宛先情報を前記疑似サーバの宛先情報に書き換えることを特徴とする付記4記載の疑似サーバ制御装置。
(付記6)
前記リクエスト転送モジュールは、
前記エンドユーザ機器からの前記リクエストを受け付け、受け付けた前記リクエストを、前記本番系ネットワークへ転送するとともに、前記疑似系ネットワークへミラーリングするリクエスト受付手段と、
前記リクエスト受付手段によってミラーリングされた前記リクエストを前記リクエスト蓄積モジュールへ転送するリクエスト転送手段と、
を含むことを特徴とする付記1−5のいずれか1項に記載の疑似サーバ制御装置。
(付記7)
前記リクエスト受付手段は、受け付けた前記リクエストを、前記本番サーバへの負荷分散を行うロードバランサモジュールへ転送することを特徴とする付記6記載の疑似サーバ制御装置。
(付記8)
前記リクエスト転送モジュールは、前記ロードバランサモジュールを少なくとも含むロードバランサパッケージ内に配置されることを特徴とする付記7記載の疑似サーバ制御装置。
(付記9)
処理のリクエストを発生する機器から受け付けた前記リクエストを、本番サーバを少なくとも含む本番系ネットワークと、疑似サーバを少なくとも含む疑似系ネットワークとに転送し、
前記疑似系ネットワークに転送された前記リクエストを一時的に蓄積し、前記疑似サーバの負荷状態に応じて、前記リクエストの前記疑似サーバへの送信タイミングを制御する
ことを特徴とする疑似サーバ制御方法。
(付記10)
前記疑似系ネットワークに転送された前記リクエストを、リクエストデータベースに一時的に保持し、
前記リクエストの前記リクエストデータベースへの蓄積を制御し、
前記リクエストの前記送信タイミングを制御する
ことを特徴とする付記9記載の疑似サーバ制御方法。
(付記11)
処理のリクエストを発生する機器から受け付けた前記リクエストを、本番サーバを少なくとも含む本番系ネットワークと、疑似サーバを少なくとも含む疑似系ネットワークとに転送するリクエスト転送処理と、
前記疑似系ネットワークに転送された前記リクエストを一時的に蓄積し、前記疑似サーバの負荷状態に応じて、前記リクエストの前記疑似サーバへの送信タイミングを制御するリクエスト蓄積処理と、
をコンピュータに実行させるための疑似サーバ制御プログラム。
(付記12)
前記リクエスト蓄積処理は、
前記疑似系ネットワークに転送された前記リクエストを、リクエストデータベースに一時的に保持する保持処理と、
前記リクエストの前記リクエストデータベースへの蓄積を制御するリクエスト蓄積制御処理と、
前記リクエストの前記送信タイミングを制御するリクエスト送信制御処理と
を含むことを特徴とする付記11記載の疑似サーバ制御プログラム。
10 疑似サーバ制御装置
12 リクエスト転送モジュール
14 リクエスト蓄積モジュール
30 疑似サーバ制御装置
32 記憶部
34 制御部
40 疑似サーバ制御プログラム
100 ウェブサービスシステム
102−1〜102−n エンドユーザ機器
104 ロードバランサパッケージ
106−1〜106−n 本番サーバ
108 リクエスト蓄積モジュール
110 疑似サーバ
120 ロードバランサモジュール
122 リクエスト転送モジュール
150 疑似サーバ制御装置
200 リクエスト受付部
202 リクエスト転送部
300 リクエストデータベース
302 リクエスト蓄積制御部
304 リクエスト送信制御部
330 リクエスト管理テーブル

Claims (9)

  1. 処理のリクエストを発生する機器から受け付けた前記リクエストを、本番サーバを少なくとも含む本番系ネットワークと、疑似サーバを少なくとも含む疑似系ネットワークとに転送するリクエスト転送モジュールと、
    前記疑似系ネットワークに転送された前記リクエストを一時的に蓄積し、前記疑似サーバの負荷状態に応じて、前記リクエストの前記疑似サーバへの送信タイミングを制御するリクエスト蓄積モジュールと、
    を備え
    前記リクエスト転送モジュールは、
    エンドユーザ機器からの前記リクエストを受け付け、受け付けた前記リクエストを、前記本番系ネットワークへ転送するとともに、前記疑似系ネットワークへミラーリングするリクエスト受付手段と、
    前記リクエスト受付手段によってミラーリングされた前記リクエストを前記リクエスト蓄積モジュールへ転送するリクエスト転送手段と、
    を含むことを特徴とする疑似サーバ制御装置。
  2. 前記リクエスト蓄積モジュールは、
    前記リクエスト転送モジュールから転送された前記リクエストを一時的に保持するリクエストデータベースと、
    前記リクエストの前記リクエストデータベースへの蓄積を制御するリクエスト蓄積制御手段と、
    前記リクエストの前記送信タイミングを制御するリクエスト送信制御手段と
    を備えることを特徴とする請求項1記載の疑似サーバ制御装置。
  3. 前記リクエスト送信制御手段は、所定の前記リクエストを送信する前に送信された別の前記リクエストのTAT(Turn Around Time)の値が所定の閾値を下回っている場合に、所定の前記リクエストを前記疑似サーバへ送信することを特徴とする請求項2記載の疑似サーバ制御装置。
  4. 少なくとも、前記リクエスト転送モジュールから前記リクエストを受信してその前記リクエストが前記疑似サーバに転送されるまでの間、前記リクエストデータベースには、前記リクエストの送信を管理するためのテーブルであり、前記リクエスト自体とこの前記リクエストの送信を管理するための少なくとも1つのフィールド情報とからなる、少なくとも1つのリクエストレコード情報を備えるリクエスト管理テーブルが構築されることを特徴とする請求項2または3記載の疑似サーバ制御装置。
  5. 前記リクエスト蓄積制御手段は、前記リクエストを前記リクエスト管理テーブルに蓄積する際、前記リクエストの宛先情報を前記疑似サーバの宛先情報に書き換えることを特徴とする請求項4記載の疑似サーバ制御装置。
  6. 前記リクエスト受付手段は、受け付けた前記リクエストを、前記本番サーバへの負荷分散を行うロードバランサモジュールへ転送することを特徴とする請求項1−5のいずれか1項に記載の疑似サーバ制御装置。
  7. 前記リクエスト転送モジュールは、前記ロードバランサモジュールを少なくとも含むロードバランサパッケージ内に配置されることを特徴とする請求項記載の疑似サーバ制御装置。
  8. リクエスト転送モジュールが、処理のリクエストを発生する機器から受け付けた前記リクエストを、本番サーバを少なくとも含む本番系ネットワークと、疑似サーバを少なくとも含む疑似系ネットワークとに転送し、
    リクエスト蓄積モジュールが、前記疑似系ネットワークに転送された前記リクエストを一時的に蓄積し、前記疑似サーバの負荷状態に応じて、前記リクエストの前記疑似サーバへの送信タイミングを制御する
    ことを特徴とする疑似サーバ制御方法であって、
    前記リクエスト転送モジュールは、
    エンドユーザ機器からの前記リクエストを受け付け、受け付けた前記リクエストを、前記本番系ネットワークへ転送するとともに、前記疑似系ネットワークへミラーリングし、
    ミラーリングされた前記リクエストを前記リクエスト蓄積モジュールへ転送する、
    ことを特徴とする疑似サーバ制御方法
  9. リクエスト転送モジュールにおいて、処理のリクエストを発生する機器から受け付けた前記リクエストを、本番サーバを少なくとも含む本番系ネットワークと、疑似サーバを少なくとも含む疑似系ネットワークとに転送するリクエスト転送処理と、
    リクエスト蓄積モジュールにおいて、前記疑似系ネットワークに転送された前記リクエストを一時的に蓄積し、前記疑似サーバの負荷状態に応じて、前記リクエストの前記疑似サーバへの送信タイミングを制御するリクエスト蓄積処理と、
    をコンピュータに実行させるための疑似サーバ制御プログラムであって、
    前記リクエスト転送モジュールにおいて、
    エンドユーザ機器からの前記リクエストを受け付け、受け付けた前記リクエストを、前記本番系ネットワークへ転送するとともに、前記疑似系ネットワークへミラーリングする処理と、
    ミラーリングされた前記リクエストを前記リクエスト蓄積モジュールへ転送する処理と、
    をコンピュータに実行させるための疑似サーバ制御プログラム
JP2016184611A 2016-09-21 2016-09-21 疑似サーバ制御装置、疑似サーバ制御方法、および疑似サーバ制御プログラム Active JP6903888B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016184611A JP6903888B2 (ja) 2016-09-21 2016-09-21 疑似サーバ制御装置、疑似サーバ制御方法、および疑似サーバ制御プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016184611A JP6903888B2 (ja) 2016-09-21 2016-09-21 疑似サーバ制御装置、疑似サーバ制御方法、および疑似サーバ制御プログラム

Publications (2)

Publication Number Publication Date
JP2018049471A JP2018049471A (ja) 2018-03-29
JP6903888B2 true JP6903888B2 (ja) 2021-07-14

Family

ID=61767675

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016184611A Active JP6903888B2 (ja) 2016-09-21 2016-09-21 疑似サーバ制御装置、疑似サーバ制御方法、および疑似サーバ制御プログラム

Country Status (1)

Country Link
JP (1) JP6903888B2 (ja)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007125942A1 (ja) * 2006-04-26 2007-11-08 Nippon Telegraph And Telephone Corporation 負荷制御装置およびその方法
JP6114683B2 (ja) * 2013-11-22 2017-04-12 株式会社日立製作所 処理要求読込転送装置、及び処理要求転送方法

Also Published As

Publication number Publication date
JP2018049471A (ja) 2018-03-29

Similar Documents

Publication Publication Date Title
US20190034442A1 (en) Method and apparatus for content synchronization
US9386117B2 (en) Server side data cache system
US8990357B2 (en) Method and apparatus for reducing loading time of web pages
US20180097814A1 (en) Method and Apparatus for Prioritization of Data Requests
CN108027805B (zh) 数据网络中的负载分发
US10148617B2 (en) Enhanced thread handling in security handshakingdomain name system bypass in user applications
EP2251800A2 (en) Client server systems and methods for accessing metadata information across a network using proxies
JP6272190B2 (ja) 計算機システム、計算機、負荷分散方法及びそのプログラム
JP2019526118A (ja) メッセージングシステムの多重速度メッセージチャネル
US20240176829A1 (en) Token-based authentication for a proxy web scraping service
CA2640696C (en) Storing and retrieving user context data
US20150127765A1 (en) Content node selection using network performance profiles
CN103248670A (zh) 计算机网络环境下的连接管理
US9172744B2 (en) Scalable storage with programmable networks
US10445136B1 (en) Randomized subrequest selection using request-specific nonce
JP6903888B2 (ja) 疑似サーバ制御装置、疑似サーバ制御方法、および疑似サーバ制御プログラム
JP2009289161A (ja) クラスタ型ストレージシステム、そのノード装置、データの読み出しおよび書き込み制御方法およびそのプログラム
EP4227829A1 (en) Web scraping through use of proxies, and applications thereof
CN109088913A (zh) 请求数据的方法和负载均衡服务器
JP6193078B2 (ja) メッセージ転送システム及びキューの管理方法
US11824947B2 (en) Connecting application instances to client devices
CN105959413B (zh) 网络代理方法和代理系统
WO2023280593A1 (en) Web scraping through use of proxies, and applications thereof
JP4640980B2 (ja) リクエスト処理方法およびリクエスト処理装置ならびにリクエスト処理プログラム
JP2015184947A (ja) ストレージシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190820

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200728

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201020

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201217

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210607

R150 Certificate of patent or registration of utility model

Ref document number: 6903888

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150