JP2019003245A - サービス提供システム、サービス提供サーバ、サービス提供方法およびサービス提供プログラム - Google Patents
サービス提供システム、サービス提供サーバ、サービス提供方法およびサービス提供プログラム Download PDFInfo
- Publication number
- JP2019003245A JP2019003245A JP2017114974A JP2017114974A JP2019003245A JP 2019003245 A JP2019003245 A JP 2019003245A JP 2017114974 A JP2017114974 A JP 2017114974A JP 2017114974 A JP2017114974 A JP 2017114974A JP 2019003245 A JP2019003245 A JP 2019003245A
- Authority
- JP
- Japan
- Prior art keywords
- request
- providing server
- processing
- service providing
- component
- 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.)
- Pending
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
【課題】処理の滞留可能性を抑制する。
【解決手段】サービス提供サーバ5は、複数の部品提供サーバ7のそれぞれにリクエストを処理させるリクエスト処理手段22と、アプリケーション実行装置3に、リクエストの処理結果を応答する応答手段24を備える。リクエスト処理手段22は、部品提供サーバでの処理を待機するリクエストを特定する処理待機データ11を参照して、待機中のリクエスト数が上限数に達する場合、待機中の各リクエストの後続の処理で用いる他の部品提供サーバの状態に基づいて、廃棄リクエストを特定し、廃棄リクエスト以外のリクエストを、部品提供サーバ7に処理させる。
【選択図】 図3
【解決手段】サービス提供サーバ5は、複数の部品提供サーバ7のそれぞれにリクエストを処理させるリクエスト処理手段22と、アプリケーション実行装置3に、リクエストの処理結果を応答する応答手段24を備える。リクエスト処理手段22は、部品提供サーバでの処理を待機するリクエストを特定する処理待機データ11を参照して、待機中のリクエスト数が上限数に達する場合、待機中の各リクエストの後続の処理で用いる他の部品提供サーバの状態に基づいて、廃棄リクエストを特定し、廃棄リクエスト以外のリクエストを、部品提供サーバ7に処理させる。
【選択図】 図3
Description
本発明は、アプリケーション実行装置から、アプリケーションの実行に用いられる複数の部品を特定する複数のリクエストを受信して、複数の部品提供サーバが、複数の部品が特定されたリクエストを処理するサービス提供システム、サービス提供サーバ、サービス提供方法およびサービス提供プログラムに関する。
近年、API(Application Programming Interface)を介して、アプリケーションで用いられる部品をリクエストし、各部品を提供するイネーブラにリクエストを処理させて、アプリケーションを実行するシステムが普及している。このようなシステムにおいて、アプリケーションとイネーブラに接続し、WebAPIのAPIリクエストの処理や、輻輳制御を担うサーバが導入されている。このようなサーバは、各アプリケーションから部品のリクエストを受信してイネーブラに処理させ、アプリケーションに処理結果を送信する。
WebAPIのAPIリクエストは、HTTP(Hypertext Transfer Protocol)リクエストベースのベストエフォートで処理されるため、イネーブラが輻輳している場合、APIリクエストの処理の完了は保証されない。一つのリクエストで複数のイネーブラを用いる場合、一つのイネーブラが輻輳状態であることによってリクエストが廃棄されるので、アプリケーションは所望の結果を得るために、リクエストを再送する場合がある。この結果、一つのイネーブラの輻輳に起因して再送が繰り返されるため、輻輳していない他のイネーブラのリソースも逼迫し、輻輳が拡大する場合がある。
そこでイネーブラごとに、APIリクエストを格納するバッファを用意する方法が提案されている(非特許文献1参照)。非特許文献1は、イネーブラの輻輳によりAPIリクエストを処理できない場合、APIリクエストをバッファに格納し、イネーブラのリソースの空きに従って、バッファに格納されたAPIリクエストを処理する。また非特許文献1は、バッファに格納しきれないAPIリクエストを受け付けた場合、既に処理したイネーブラ数が少ないリクエストを廃棄することを提案する。具体的には、非特許文献1は、既にバッファに格納されたAPIリクエストと新たに受け付けたAPIリクエストのそれぞれについて、既に処理したイネーブラ数を比較し、既に処理したイネーブラ数が最も小さく、かつ最も新しいAPIリクエストを廃棄する。
白井他, イネーブラのAPI処理リソース量を効率化する方法の提案, 電子情報通信学会ソサイエティ大会, 2016年9月, B-14-3
非特許文献1に記載の方法は、既に処理したイネーブラ数に基づいて廃棄するAPIリクエストを決定するので、廃棄されなかったリクエストで後続の処理に用いるイネーブラで輻輳が発生している場合、処理が滞留する可能性がある。
従って本発明の目的は、処理の滞留可能性を抑制可能なサービス提供システム、サービス提供サーバ、サービス提供方法およびサービス提供プログラムを提供することである。
上記課題を解決するために、本発明の第1の特徴は、アプリケーション実行装置から、アプリケーションの実行に用いられる複数の部品を特定する複数のリクエストを受信するサービス提供サーバと、サービス提供サーバに接続し、少なくとも一つの部品を提供する複数の部品提供サーバを備えるサービス提供システムに関する。本発明の第1の特徴に係るサービス提供システムに用いられるサービス提供サーバは、複数の部品提供サーバのそれぞれにリクエストを処理させるリクエスト処理手段と、アプリケーション実行装置に、リクエストの処理結果を応答する応答手段を備える。リクエスト処理手段は、部品提供サーバでの処理を待機するリクエストを特定する処理待機データを参照して、待機中のリクエスト数が上限数に達する場合、待機中の各リクエストの後続の処理で用いる他の部品提供サーバの状態に基づいて、廃棄リクエストを特定し、廃棄リクエスト以外のリクエストを、部品提供サーバに処理させる。
ここで、他の部品提供サーバの状態は、輻輳中であるか否かであって、リクエスト処理手段は、後続の処理で用いる部品提供サーバであって、輻輳中の部品提供サーバが多いリクエストを、廃棄リクエストと特定しても良い。
また応答手段は、廃棄リクエストについて、アプリケーション実行装置にリクエストが廃棄された旨を応答しても良い。
本発明の第2の特徴は、アプリケーション実行装置から、アプリケーションの実行に用いられる複数の部品を特定する複数のリクエストを受信するサービス提供サーバと、サービス提供サーバに接続し、少なくとも一つの部品を提供する複数の部品提供サーバを備えるサービス提供システムに用いられるサービス提供サーバに関する。本発明の第2の特徴に係るサービス提供サーバは、複数の部品提供サーバのそれぞれにリクエストを処理させるリクエスト処理手段と、アプリケーション実行装置に、リクエストの処理結果を応答する応答手段を備える。リクエスト処理手段は、部品提供サーバでの処理を待機するリクエストを特定する処理待機データを参照して、待機中のリクエスト数が上限数に達する場合、待機中の各リクエストの後続の処理で用いる他の部品提供サーバの状態に基づいて、廃棄リクエストを特定し、廃棄リクエスト以外のリクエストを、部品提供サーバに処理させる。
応答手段は、廃棄リクエストについて、アプリケーション実行装置にリクエストが廃棄された旨を応答しても良い。
本発明の第3の特徴は、アプリケーション実行装置から、アプリケーションの実行に用いられる複数の部品を特定する複数のリクエストを受信するサービス提供サーバと、サービス提供サーバに接続し、少なくとも一つの部品を提供する複数の部品提供サーバを備えるサービス提供システムに用いられるサービス提供方法に関する。本発明の第3の特徴に係るサービス提供方法は、複数の部品提供サーバのそれぞれにリクエストを処理させるステップと、アプリケーション実行装置に、リクエストの処理結果を応答するステップと、部品提供サーバでの処理を待機するリクエストを特定する処理待機データを参照して、待機中のリクエスト数が上限数に達する場合、待機中の各リクエストの後続の処理で用いる他の部品提供サーバの状態に基づいて、廃棄リクエストを特定し、廃棄リクエスト以外のリクエストを、部品提供サーバに処理させるステップを備える。
廃棄リクエストについて、アプリケーション実行装置にリクエストが廃棄された旨を応答するステップをさらに備えても良い。
本発明の第4の特徴は、コンピュータに、本発明の第2の特徴に記載のサービス提供サーバとして機能させるためのサービス提供プログラムに関する。
本発明によれば、処理の滞留可能性を抑制可能なサービス提供システム、サービス提供サーバ、サービス提供方法およびサービス提供プログラムを提供することができる。
次に、図面を参照して、本発明の実施の形態を説明する。以下の図面の記載において、同一または類似の部分には同一または類似の符号を付している。
(アプリケーション提供システム)
図1に示すアプリケーション提供システム1は、サービス提供システム2、第1のアプリケーション実行装置3aおよび第2のアプリケーション実行装置3bを備える。サービス提供システム2は、第1のアプリケーション実行装置3aおよび第2のアプリケーション実行装置3bのそれぞれと、通信ネットワーク4を介して相互に通信可能に接続される。本発明の実施の形態において、第1のアプリケーション実行装置3aおよび第2のアプリケーション実行装置3bを特に区別しない場合、単にアプリケーション実行装置3と記載する場合がある。
図1に示すアプリケーション提供システム1は、サービス提供システム2、第1のアプリケーション実行装置3aおよび第2のアプリケーション実行装置3bを備える。サービス提供システム2は、第1のアプリケーション実行装置3aおよび第2のアプリケーション実行装置3bのそれぞれと、通信ネットワーク4を介して相互に通信可能に接続される。本発明の実施の形態において、第1のアプリケーション実行装置3aおよび第2のアプリケーション実行装置3bを特に区別しない場合、単にアプリケーション実行装置3と記載する場合がある。
図1に示すアプリケーション提供システム1は、2台のアプリケーション実行装置3を備えるが、これは一例であって、1台であっても良いし、3台以上であっても良い。またアプリケーション実行装置3は、さらに、エンドユーザに対してサービスを提供してもよく、アプリケーション提供システム1は、いわゆるBtoBtoXモデルのシステムであっても良い。
(サービス提供システム)
サービス提供システム2は、サービス提供サーバ5および部品提供サーバ群6を備える。サービス提供サーバ5は、第1のアプリケーション実行装置3aおよび第2のアプリケーション実行装置3bのそれぞれと、通信ネットワーク4を介して相互に通信可能に接続するとともに、部品提供サーバ群6と、通信ネットワーク8を介して相互に通信可能に接続する。
サービス提供システム2は、サービス提供サーバ5および部品提供サーバ群6を備える。サービス提供サーバ5は、第1のアプリケーション実行装置3aおよび第2のアプリケーション実行装置3bのそれぞれと、通信ネットワーク4を介して相互に通信可能に接続するとともに、部品提供サーバ群6と、通信ネットワーク8を介して相互に通信可能に接続する。
部品提供サーバ群6は、A部品提供サーバ7a、B部品提供サーバ7b・・・と複数の部品提供サーバを備える。本発明の実施の形態において、A部品提供サーバ7a、B部品提供サーバ7b・・・の各部品提供サーバを特に区別しない場合、単に部品提供サーバ7と記載する場合がある。図1に示す部品提供サーバ群6は、2台の部品提供サーバ7を備えるが、これは一例であって、3台以上であっても良い。本発明の実施の形態において部品提供サーバ群6は、6台の部品提供サーバを備え、図示しないC部品提供サーバ7c、D部品提供サーバ7d、E部品提供サーバ7eおよびF部品提供サーバ7fを備える。
アプリケーション実行装置3は、アプリケーションを実行する際に、サービス提供システム2に対して、APIを介してアプリケーションの部品の実行をサービス提供システム2にリクエストする。ここで、部品は、アプリケーションにおける一連の処理の単位である。アプリケーション実行装置3は、部品の実行をリクエストする際に、パラメータなどもあわせてサービス提供システム2に送信しても良い。
部品提供サーバ7は、アプリケーション実行装置3が実行するアプリケーションにおける部品を、アプリケーション実行装置3に代わって実行する。部品提供サーバ7は、アプリケーション実行装置3からパラメータが入力されると、入力されたパラメータを用いて部品を実行する。複数の部品提供サーバ7は、それぞれ、少なくとも一つの部品を提供する。複数の部品提供サーバ7が、複数の部品が特定されたリクエストを処理する。
サービス提供サーバ5は、アプリケーション実行装置3から、アプリケーションの実行に用いられる部品を特定する複数のリクエストを受信して、リクエストで特定された部品を提供する部品提供サーバ7に、リクエストを処理させる。またサービス提供サーバ5は、部品提供サーバ7において輻輳が発生している際、その部品提供サーバ7が処理すべきリクエストの待ち行列を管理し、部品提供サーバ7のリソースに空きができると、待ち行列に格納されたリクエストを部品提供サーバ7に入力する。
さらにサービス提供サーバ5は、各部品提供サーバ7が保有する待ち行列に、所定数以上のリクエストが格納されると、所定ロジックで選択されたリクエストを待ち行列から削除して、待機リクエスト数が一定数以下になるように制御する。
本発明の実施の形態において、アプリケーション実行装置3は、複数のリクエストをサービス提供システム2に送信する。また各リクエストには複数の部品が特定されており、一つのリクエストを処理するために、複数の部品提供サーバ7が携わる。さらに、サービス提供システム2に属する複数の部品提供サーバ7のうち、少なくとも一つの部品提供サーバ7で処理リソースが足りず、輻輳が発生している場合を説明する。
なお、図1に示す各サーバまたは装置は、それぞれ、物理サーバであっても良いし、仮想サーバであっても良い。
(処理の概要)
図2を参照して、本発明の実施の形態に係るアプリケーション提供システム1の処理の概要を説明する。図2のシーケンス図は、いずれの部品提供サーバ7においても輻輳が発生していない場合と、部品提供サーバ7(B部品提供サーバ7b)で輻輳が発生している場合を示す。
図2を参照して、本発明の実施の形態に係るアプリケーション提供システム1の処理の概要を説明する。図2のシーケンス図は、いずれの部品提供サーバ7においても輻輳が発生していない場合と、部品提供サーバ7(B部品提供サーバ7b)で輻輳が発生している場合を示す。
なお、本発明の実施の形態において、「A部品提供サーバ7a」を単に「A」と表記し、「B部品提供サーバ7b」を単に「B」と表記するなど、省略して記載する場合がある。例えば、A部品提供サーバ7a、B部品提供サーバ7b、C部品提供サーバ7cおよびE部品提供サーバ7eの順でリクエストを処理する場合、「A→B→C→E」と表記する。
まず、いずれの部品提供サーバ7も輻輳していない場合を説明する。
ステップS1においてアプリケーション実行装置3は、サービス提供サーバ5に、A→B→C→Eの順序で処理させるリクエストR1を送信する。サービス提供サーバ5は、このリクエストR1を処理するために、リクエストR1を、A→B→C→Eの順に入力するよう試みる。
まずステップS2においてサービス提供サーバ5は、A部品提供サーバ7aが輻輳しているか否かを判定する。輻輳していないので、ステップS3において、A部品提供サーバ7aに処理させるリクエストR1を入力するとともに、その処理結果を受信する。
次にステップS4においてサービス提供サーバ5は、B部品提供サーバ7bが輻輳しているか否かを判定する。輻輳していないので、ステップS4において、B部品提供サーバ7bに処理させるリクエストR1を入力するとともに、その処理結果を受信する。
サービス提供サーバ5は、ステップS6ないしステップS9において、C部品提供サーバ7cおよびE部品提供サーバ7eについても同様の処理を繰り返す。ステップS1でアプリケーション実行装置3が送信したリクエストR1に対する処理結果が得られると、サービス提供サーバ5は、ステップS10において処理結果をアプリケーション実行装置3に返信する。
このような処理に並行してサービス提供サーバ5は、部品提供サーバ群6の各部品提供サーバについて、輻輳状態を取得する。ステップS21においてサービス提供サーバ5は、B部品提供サーバ7b、D部品提供サーバ7dおよびE部品提供サーバ7eが輻輳中であることを把握するとする。このような状況で、ステップS1と同様の部品提供サーバ7に処理させるリクエストR2が入力された場合を説明する。
ステップS1と同様に、ステップS31においてアプリケーション実行装置3は、サービス提供サーバ5に、A→B→C→Eの順序で処理させるリクエストR2を送信する。サービス提供サーバ5は、このリクエストR2を処理するために、リクエストR2を、A→B→C→Eの順に入力するよう試みる。
まずステップS32においてサービス提供サーバ5は、A部品提供サーバ7aが輻輳しているか否かを判定する。輻輳していないので、ステップS33において、A部品提供サーバ7aに処理させるリクエストR2を入力するとともに、その処理結果を受信する。
次にステップS34においてサービス提供サーバ5は、B部品提供サーバ7bが輻輳しているか否かを判定する。輻輳しているので、B部品提供サーバ7bが処理すべきリクエストの待ち行列にリクエストR2が設定された後、リクエストR2がB部品提供サーバ7bによって処理されるまでの間に、リクエストR2は、廃棄される可能性がある。
具体的には、リクエストR2が待ち行列に設定された際、或いは他のリクエストがこの待ち行列に設定された際、この待ち行列の待機リクエスト数が一定数以上になる可能性がある。待ち行列の待機リクエスト数が一定数以上になると、サービス提供サーバ5は、B部品提供サーバ7bの待ち行列に格納されたリクエストから、所定のルールに従って廃棄するリクエストを特定する。
ここで、ステップS35において、リクエストR2がB部品提供サーバ7bによって処理される前に、廃棄するリクエストに特定されると、サービス提供サーバ5は、リクエストR2について、B部品提供サーバ7b以降の処理を断念する。ステップS36においてサービス提供サーバ5は、リクエストR2について処理を完了できなかった旨を、アプリケーション実行装置3に返信する。
(サービス提供サーバ)
図3を参照して、本発明の実施の形態に係るサービス提供サーバ5を説明する。サービス提供サーバ5は、記憶装置10、処理装置20および通信制御装置30を備える一般的なコンピュータである。一般的なコンピュータがサービス提供プログラムを実行することにより、図3に示す機能を実現する。
図3を参照して、本発明の実施の形態に係るサービス提供サーバ5を説明する。サービス提供サーバ5は、記憶装置10、処理装置20および通信制御装置30を備える一般的なコンピュータである。一般的なコンピュータがサービス提供プログラムを実行することにより、図3に示す機能を実現する。
記憶装置10は、ROM(Read Only Memory)、RAM(Random access memory)、ハードディスク等であって、処理装置20が処理を実行するための入力データ、出力データおよび中間データを記憶する。処理装置20は、CPU(Central Processing Unit)であって、サービス提供サーバ5における処理を実行する。通信制御装置30は、サービス提供サーバ5が、アプリケーション実行装置3および部品提供サーバ7に通信可能に接続するためのインタフェースである。
記憶装置10は、サービス提供プログラム(図示せず)を記憶するとともに、処理待機データ11および輻輳状態データ12を記憶する。
処理待機データ11は、部品提供サーバ7で処理を待機するリクエストを特定する。処理待機データ11は、各部品提供サーバ7に待機中のリクエストの識別子を含み、いわゆる待ち行列のデータである。処理待機データ11は、待機中のリクエストについて、部品提供サーバ7の識別子および処理順を含み、そのほか、各部品提供サーバ7に入力するパラメータを含んでも良い。
処理待機データ11は、例えば、図4に示すように、A部品提供サーバ7aの処理を待機するA処理待機データ11a、B部品提供サーバ7bの処理を待機するB処理待機データ11b、…を備える。処理待機データ11で設定される「処理順」は、所定のアルゴリズムにより適宜設定される。
処理待機データ11は、部品提供サーバ7が輻輳した際に作成され、輻輳中でない部品提供サーバ7については作成されない。輻輳中でない場合、部品提供サーバ7によってリクエストがすぐに処理されるので、処理を待機する必要がないからである。
図4に示す様に、A部品提供サーバ7aおよびB部品提供サーバ7bの両方が輻輳しており、A→Bの順で処理されるリクエストR101およびR102があり、リクエストR101がA部品提供サーバ7aによって処理されると、図5に示す処理待機データ11’に更新される。
図5に示すA部品提供サーバ7aのA処理待機データ11a’において、リクエストR101が削除され、リクエストR102のみが残る。また、B部品提供サーバ7bのB処理待機データ11b’において、リクエストR101が新たに挿入される。このように、処理待機データ11は、各部品提供サーバ7の処理の進捗に従って、適宜更新される。
輻輳状態データ12は、各部品提供サーバ7が輻輳しているか否かを特定するデータである。輻輳状態データ12は、例えば、図6に示すように、各部品提供サーバ7の識別子と、各部品提供サーバの輻輳状態とを対応づけて記憶する。
処理装置20は、受付手段21、リクエスト処理手段22、応答手段24および輻輳管理手段25を備える。
受付手段21は、アプリケーション実行装置3から、アプリケーションの実行に用いられる複数の部品を特定する複数のリクエストを受信する。ここで入力されるリクエストは、複数の部品提供サーバ7にわたって処理される部品の識別子と、その処理順序を含み、各部品提供サーバ7に入力するパラメータを含んでも良い。
リクエスト処理手段22は、複数の部品提供サーバ7のそれぞれにリクエストを処理させる。リクエスト処理手段22は、入力されたリクエストで特定される部品とその処理順序に従って、各部品提供サーバ7にリクエストを入力させる。
ここでリクエスト処理手段22は、部品提供サーバ7が輻輳していない場合、より具体的には、部品提供サーバ7にリクエストを処理するリソースがある場合、リクエストを待機させることなく、入力されたリクエストを、部品提供サーバ7に入力し、処理させる。
またリクエスト処理手段22は、部品提供サーバ7が輻輳している場合、この部品提供サーバ7に対応する処理待機データ11の待ち行列に、入力されたリクエストを格納する。またリクエスト処理手段22は、部品提供サーバ7のリソースが空くと、この部品提供サーバ7に対応する処理待機データ11を参照して、待機中のリクエストを部品提供サーバ7に入力する。部品提供サーバ7に入力されたリクエストは、処理待機データ11から削除される。
さらにリクエスト処理手段22は、部品提供サーバ7によって処理されるとその結果を保持する。リクエストにおいて未処理の部品が特定されている場合、その部品を提供する部品提供サーバ7に、リクエストを処理させる。一方、アプリケーション実行装置3から受信したリクエストで特定される全ての部品が処理されると、リクエスト処理手段22は、応答手段24に通知する。
応答手段24は、アプリケーション実行装置3に、リクエストの処理結果を応答する。アプリケーション実行装置3から受信したリクエストで特定される全ての部品が処理されたとリクエスト処理手段22から通知されると、応答手段24は、その処理結果を、リクエストの送信元のアプリケーション実行装置3に返信する。
輻輳管理手段25は、部品提供サーバ群6の各部品提供サーバ7の輻輳状態を監視し、輻輳状態データ12を逐次更新する。
ここで、リクエスト処理手段22は、廃棄手段23を備える。廃棄手段23は、所定の部品提供サーバ7の処理待機データ11において、既に多くの待機中のリクエストが格納されており、所定の上限数に達する場合、所定のロジックで選択されたリクエストを廃棄する。
廃棄手段23は、部品提供サーバ7での処理を待機するリクエストを特定する処理待機データ11を参照して、待機中のリクエスト数が上限数に達するか否かを確認する。上限数は、予め定められており、部品提供サーバ7毎に異なる数が設定されても良い。待機中のリクエスト数が上限数に達する場合、廃棄手段23は、待機中の各リクエストの後続の処理で用いる部品提供サーバ7の状態に基づいて、廃棄リクエストを特定し、廃棄リクエスト以外のリクエストを、この所定の部品提供サーバ7に処理させる。
ここで、部品提供サーバ7の「状態」は、部品提供サーバ7のリソースの混雑状態であって、より具体的には、輻輳中であるか否かの状態である。廃棄手段23は、後続の処理で用いる部品提供サーバ7であって、輻輳中の部品提供サーバ7が多いリクエストを、廃棄リクエストと特定する。
例えば、B処理待機データ11bにおいて、図7に示すように、リクエストR201、R202・・・R211の11個のリクエストが格納されているとする。B処理待機データ11bの上限数が「10」の場合、現在の格納数は上限数を上回っているので、いずれかのリクエストを廃棄する必要がある。
そこで本発明の実施の形態に係る廃棄手段23は、B処理待機データ11bに格納された各リクエストについて、今後用いる予定の各部品提供サーバ7のうち輻輳中の部品提供サーバ7の数を特定する。
例えば、リクエストR201は、「A→B→C→D」の順で処理され、A部品提供サーバ7aでの処理は完了している。図6に示すように、B部品提供サーバ7b、D部品提供サーバ7dおよびE部品提供サーバ7eが輻輳状態の場合、リクエストR201の今後用いる予定の輻輳中の部品提供サーバ7の数は、B部品提供サーバ7bおよびD部品提供サーバ7dの2つである。
同様にリクエストR202は、「A→B→D→E」の順で処理され、A部品提供サーバ7aでの処理は完了している。従って、リクエストR202の今後用いる予定の輻輳中の部品提供サーバ7の数は、B部品提供サーバ7b、D部品提供サーバ7dおよびE部品提供サーバ7eの3つである。リクエストR211は、「B→F」の順で処理され、A部品提供サーバ7aでの処理は完了している。従って、リクエストR211の今後用いる予定の輻輳中の部品提供サーバ7の数は、B部品提供サーバ7bのみの1つである。また、図7に示す例において、処理順3ないし10の各リクエストについて、今後用いる予定の輻輳中の部品提供サーバ7の数は、0ないし2のいずれかであるとする。
従って図7に示す例の場合、B部品提供サーバ7bにおいて今後用いる予定の輻輳中の部品提供サーバ7の数が最も多いのは、リクエストR202である。リクエストR202は、B部品提供サーバ7bに処理をさせたとしても、後続の処理でも待機時間が発生したり廃棄されたりする可能性が高いので、廃棄手段23は、リクエストR202を廃棄リクエストとして特定する。
廃棄手段23は、廃棄リクエストを、B処理待機データ11bからリクエストR202を削除して、廃棄リクエスト以外のリクエストを、適宜処理順を更新する。また廃棄手段23は、B処理待機データ11bからリクエストR202を削除した旨を、応答手段24に通知する。
応答手段24、廃棄リクエストについて、アプリケーション実行装置にリクエストが廃棄された旨を応答する。図7の例では応答手段24は、リクエストR202が削除された旨を、リクエストR202の送信元のアプリケーション実行装置3に通知する。
図8を参照して、リクエスト処理手段22の処理を説明する。図8は、処理待ちリクエストのある所定の部品提供サーバ7についてのリクエスト処理手段22の処理を示す。
まずリクエスト処理手段22は、事象の発生を待機する。部品提供サーバ7へのリクエストが新たに発生した場合、ステップS111に進む。ステップS111においてリクエスト処理手段22は、処理待機データ11に、新たに発生したリクエストに関する情報を設定する。ステップS112においてリクエスト処理手段22が、処理待機データ11において、この所定の部品提供サーバ7の処理を待機中のリクエスト数が、上限値を超えないと判定する場合、ステップS101に戻り、新たな事象の発生を待機する。
ステップS112においてリクエスト処理手段22が、所定の部品提供サーバ7の処理を待機中のリクエスト数が、上限値を超えると判定する場合、ステップS113に進む。ステップS113においてリクエスト処理手段22は、処理待機データ11において、この所定の部品提供サーバ7の処理を待機する各リクエストについて、後続の処理で用いる輻輳中の部品提供サーバ7の数を特定する。ステップS114において、ステップS113の結果に基づいて、後続の処理で用いる輻輳中の部品提供サーバ7の数が最も多いリクエストを廃棄リクエストと特定する。
ステップS115においてリクエスト処理手段22は、ステップS114で特定された廃棄リクエストを、処理待機データ11から削除して、その旨を、応答手段24に通知する。その後、リクエスト処理手段22は、ステップS101に戻り、新たな事象の発生を待機する。
一方、部品提供サーバ7が、リソースが空くなどにより、新たなリクエストを処理可能になった場合、ステップS121に進む。ステップS121においてリクエスト処理手段22は、処理待機データ11を参照して、最も処理順位の高いリクエストを、部品提供サーバ7に処理させる。ステップS122において部品提供サーバ7は、ステップS121で部品提供サーバ7に入力したリクエストを処理待機データ11から削除する。
ステップS123においてリクエスト処理手段22は、部品提供サーバ7から処理結果を取得すると、ステップS124において、後続の処理がある場合、後続の処理を担う部品提供サーバ7に、リクエストが発生することを通知し、後続の処理がなくリクエストで指定された全ての部品提供サーバ7による処理が完了した場合、応答手段24にその旨を通知する。その後リクエスト処理手段22は、ステップS101に戻り、新たな事象の発生を待機する。
このような本発明の実施の形態に係るサービス提供システム2は、所定数を超える数のリクエストが、部品提供サーバ7の処理を待機している場合、後続の処理で滞留する可能性の高いリクエストを廃棄する。これにより、サービス提供システム2において、待機中のリクエスト数を制限するとともに、滞留しない可能性の高いリクエストを優先的に処理することにより、アプリケーション実行装置3によるリクエストの再送数を抑制し、処理の滞留可能性を抑制することができる。
(その他の実施の形態)
上記のように、本発明の実施の形態によって記載したが、この開示の一部をなす論述および図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例および運用技術が明らかとなる。
上記のように、本発明の実施の形態によって記載したが、この開示の一部をなす論述および図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例および運用技術が明らかとなる。
例えば、本発明の実施の形態に記載したサービス提供サーバは、図3に示すように一つのハードウエア上に構成されても良いし、その機能や処理数に応じて複数のハードウエア上に構成されても良い。また、既存の情報処理システム上に実現されても良い。
本発明はここでは記載していない様々な実施の形態等を含むことは勿論である。従って、本発明の技術的範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
1 アプリケーション提供システム
2 サービス提供システム
3 アプリケーション実行装置
4、8 通信ネットワーク
5 サービス提供サーバ
6 部品提供サーバ群
7 部品提供サーバ
10 記憶装置
11 処理待機データ
12 輻輳状態データ
20 処理装置
21 受付手段
22 リクエスト処理手段
23 廃棄手段
24 応答手段
25 輻輳管理手段
2 サービス提供システム
3 アプリケーション実行装置
4、8 通信ネットワーク
5 サービス提供サーバ
6 部品提供サーバ群
7 部品提供サーバ
10 記憶装置
11 処理待機データ
12 輻輳状態データ
20 処理装置
21 受付手段
22 リクエスト処理手段
23 廃棄手段
24 応答手段
25 輻輳管理手段
Claims (8)
- アプリケーション実行装置から、アプリケーションの実行に用いられる複数の部品を特定する複数のリクエストを受信するサービス提供サーバと、前記サービス提供サーバに接続し、少なくとも一つの部品を提供する複数の部品提供サーバを備えるサービス提供システムであって、
前記サービス提供サーバは、
前記複数の部品提供サーバのそれぞれにリクエストを処理させるリクエスト処理手段と、
前記アプリケーション実行装置に、リクエストの処理結果を応答する応答手段を備え、
前記リクエスト処理手段は、
部品提供サーバでの処理を待機するリクエストを特定する処理待機データを参照して、待機中のリクエスト数が上限数に達する場合、
待機中の各リクエストの後続の処理で用いる他の部品提供サーバの状態に基づいて、廃棄リクエストを特定し、前記廃棄リクエスト以外のリクエストを、部品提供サーバに処理させる
ことを特徴とするサービス提供システム。 - 前記他の部品提供サーバの状態は、輻輳中であるか否かであって、
前記リクエスト処理手段は、後続の処理で用いる部品提供サーバであって、輻輳中の部品提供サーバが多いリクエストを、前記廃棄リクエストと特定する
ことを特徴とする請求項1に記載のサービス提供システム。 - 前記応答手段は、前記廃棄リクエストについて、前記アプリケーション実行装置にリクエストが廃棄された旨を応答する
ことを特徴とする請求項1または2に記載のサービス提供システム。 - アプリケーション実行装置から、アプリケーションの実行に用いられる複数の部品を特定する複数のリクエストを受信するサービス提供サーバと、前記サービス提供サーバに接続し、少なくとも一つの部品を提供する複数の部品提供サーバを備えるサービス提供システムに用いられる前記サービス提供サーバであって、
前記複数の部品提供サーバのそれぞれにリクエストを処理させるリクエスト処理手段と、
前記アプリケーション実行装置に、リクエストの処理結果を応答する応答手段を備え、
前記リクエスト処理手段は、
部品提供サーバでの処理を待機するリクエストを特定する処理待機データを参照して、待機中のリクエスト数が上限数に達する場合、
待機中の各リクエストの後続の処理で用いる他の部品提供サーバの状態に基づいて、廃棄リクエストを特定し、前記廃棄リクエスト以外のリクエストを、部品提供サーバに処理させる
ことを特徴とするサービス提供サーバ。 - 前記応答手段は、前記廃棄リクエストについて、前記アプリケーション実行装置にリクエストが廃棄された旨を応答する
ことを特徴とする請求項4に記載のサービス提供サーバ。 - アプリケーション実行装置から、アプリケーションの実行に用いられる複数の部品を特定する複数のリクエストを受信するサービス提供サーバと、前記サービス提供サーバに接続し、少なくとも一つの部品を提供する複数の部品提供サーバを備えるサービス提供システムに用いられるサービス提供方法であって、
前記複数の部品提供サーバのそれぞれにリクエストを処理させるステップと、
前記アプリケーション実行装置に、リクエストの処理結果を応答するステップと、
部品提供サーバでの処理を待機するリクエストを特定する処理待機データを参照して、待機中のリクエスト数が上限数に達する場合、
待機中の各リクエストの後続の処理で用いる他の部品提供サーバの状態に基づいて、廃棄リクエストを特定し、前記廃棄リクエスト以外のリクエストを、部品提供サーバに処理させるステップ
を備えることを特徴とするサービス提供方法。 - 前記廃棄リクエストについて、前記アプリケーション実行装置にリクエストが廃棄された旨を応答するステップ
をさらに備えることを特徴とする請求項6に記載のサービス提供方法。 - コンピュータに、請求項4または5に記載のサービス提供サーバとして機能させるためのサービス提供プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017114974A JP2019003245A (ja) | 2017-06-12 | 2017-06-12 | サービス提供システム、サービス提供サーバ、サービス提供方法およびサービス提供プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017114974A JP2019003245A (ja) | 2017-06-12 | 2017-06-12 | サービス提供システム、サービス提供サーバ、サービス提供方法およびサービス提供プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2019003245A true JP2019003245A (ja) | 2019-01-10 |
Family
ID=65007923
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017114974A Pending JP2019003245A (ja) | 2017-06-12 | 2017-06-12 | サービス提供システム、サービス提供サーバ、サービス提供方法およびサービス提供プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2019003245A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021210094A1 (ja) * | 2020-04-15 | 2021-10-21 | 日本電信電話株式会社 | マイクロサービス管理装置、マイクロサービス管理方法、及びプログラム |
-
2017
- 2017-06-12 JP JP2017114974A patent/JP2019003245A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021210094A1 (ja) * | 2020-04-15 | 2021-10-21 | 日本電信電話株式会社 | マイクロサービス管理装置、マイクロサービス管理方法、及びプログラム |
JPWO2021210094A1 (ja) * | 2020-04-15 | 2021-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108124003B (zh) | 网络管理设备连接处理方法、装置及系统 | |
US11080090B2 (en) | Method and system for scalable job processing | |
US9853906B2 (en) | Network prioritization based on node-level attributes | |
US9577940B2 (en) | Identity-aware load balancing | |
US11689646B2 (en) | Network packet processing method and apparatus and network server | |
US10944683B1 (en) | Hybrid queue system for request throttling | |
CN110058937B (zh) | 用于调度专用处理资源的方法、设备和介质 | |
US20170220383A1 (en) | Workload control in a workload scheduling system | |
EP3091706A1 (en) | Data packet processing method and apparatus based on parallel protocol stack instances | |
US20160226777A1 (en) | Generating And/Or Receiving At Least One Packet To Facilitate, At Least In Part, Network Path Establishment | |
WO2018072551A1 (zh) | 一种业务处理方法和装置 | |
CN112104679B (zh) | 处理超文本传输协议请求的方法、装置、设备和介质 | |
CN107786448B (zh) | 建立业务流的转发路径的方法和装置 | |
US10146584B2 (en) | Weight adjusted dynamic task propagation | |
JP2019003245A (ja) | サービス提供システム、サービス提供サーバ、サービス提供方法およびサービス提供プログラム | |
US10154116B1 (en) | Efficient synchronization of locally-available content | |
US20180063015A1 (en) | Method for prioritizing network packets at high bandwidth speeds | |
US10728291B1 (en) | Persistent duplex connections and communication protocol for content distribution | |
JP4646931B2 (ja) | サーバ装置およびリクエスト整理方法 | |
KR102526770B1 (ko) | 추가의 네트워크 주소 변환 테이블을 참조하여 빠른 패킷 포워딩을 제공하는 전자 장치 | |
JP2018041190A (ja) | 情報処理装置、制御方法およびプログラム | |
JP2017033234A (ja) | リクエスト受付システム、リクエスト受付方法、及び、プログラム | |
JP6595419B2 (ja) | Api提供装置及びapiリクエスト制御方法 | |
JP6263452B2 (ja) | 帯域制御システム、帯域制御方法、及びプログラム | |
JP2015165349A (ja) | 一次応答装置、制御方法及びコンピュータプログラム |