JP2019040344A - Transmission control program, transmission control apparatus and transmission control method - Google Patents

Transmission control program, transmission control apparatus and transmission control method Download PDF

Info

Publication number
JP2019040344A
JP2019040344A JP2017161227A JP2017161227A JP2019040344A JP 2019040344 A JP2019040344 A JP 2019040344A JP 2017161227 A JP2017161227 A JP 2017161227A JP 2017161227 A JP2017161227 A JP 2017161227A JP 2019040344 A JP2019040344 A JP 2019040344A
Authority
JP
Japan
Prior art keywords
request
priority
requests
transmission
transmission control
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
Application number
JP2017161227A
Other languages
Japanese (ja)
Inventor
望 小澤
Nozomi Ozawa
望 小澤
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2017161227A priority Critical patent/JP2019040344A/en
Publication of JP2019040344A publication Critical patent/JP2019040344A/en
Pending legal-status Critical Current

Links

Images

Abstract

To allow requests to be sent in a proper order.SOLUTION: A storage unit 1a stores information related to association between a plurality of requests and a priority related to transmission of the requests in association with the requests. When a processing unit 1b receives a first request for execution of processes, the processing unit 1b refers to the storage unit 1a to identify a second request related to the first request and a first priority corresponding to the second request. The processing unit 1b transmits the second request with a second priority higher than the first priority to an information processing apparatus 2 that executes a process according to the first request.SELECTED DRAWING: Figure 1

Description

本発明は送信制御プログラム、送信制御装置および送信制御方法に関する。   The present invention relates to a transmission control program, a transmission control apparatus, and a transmission control method.

現在、複数の情報処理装置がネットワークを介して通信する情報処理システムが利用されている。例えば、クライアントサーバシステムでは、サービスを提供する装置(サーバと呼ばれる)と、サービスを利用する装置(クライアントと呼ばれる)とがネットワークを介して通信する。クライアントは、サーバに対するリクエストを送信する。サーバは、リクエストを受信し、リクエストに応じたレスポンスをクライアントに送信する。   Currently, an information processing system in which a plurality of information processing apparatuses communicate via a network is used. For example, in a client-server system, a device that provides a service (called a server) and a device that uses the service (called a client) communicate with each other via a network. The client sends a request to the server. The server receives the request and sends a response according to the request to the client.

ここで、クライアントとサーバとの間に、クライアントのリクエストを受信してサーバへのアクセスを代行する制御装置を設け、制御装置の機能によりサーバに送信するリクエストの数を制限することがある。   Here, a control device that receives a client request and performs access to the server may be provided between the client and the server, and the number of requests transmitted to the server may be limited by the function of the control device.

例えば、クライアントからリクエストを受信し、受信したリクエストを蓄積してサーバに送信する負荷制御装置の提案がある。負荷制御装置は、サーバからの応答待ちリクエスト数が閾値に達しているならば、受信したリクエストをバッファに一時蓄積し、応答待ちリクエスト数が閾値を下回るまでバッファからのリクエストの送信を待ち合わせることで、応答待ちリクエスト数を制限する。この提案では、バッファ中のリクエストの実行順序に関し、リクエストの重要度や要求品質に応じて優先制御を行うことも考えられている。具体的には、負荷制御装置は、クラス別にリクエストをキューに格納し、各キュー間のリクエスト取り出し順序を、所定のスケジューリングアルゴリズム(Priority Queuing、Waited Fair QueuingまたはWaited Round Robin)を利用して決める。   For example, there is a proposal for a load control device that receives requests from a client, accumulates the received requests, and transmits the requests to a server. If the number of requests waiting for a response from the server has reached the threshold, the load control device temporarily stores the received requests in the buffer and waits for requests from the buffer until the number of requests waiting for a response falls below the threshold. Limit the number of requests waiting for a response. In this proposal, regarding the execution order of requests in the buffer, priority control may be performed in accordance with the importance of the request and the required quality. Specifically, the load control apparatus stores requests in queues for each class, and determines a request extraction order between the queues using a predetermined scheduling algorithm (Priority Queuing, Waited Fair Queuing, or Waited Round Robin).

なお、モバイルデバイス上にローカルプロキシを設けて、モバイルネットワークトラフィックを調整するシステムの提案もある。ローカルプロキシは、第1のアプリケーションによって開始された第1のデータ転送要求の転送を、第2のアプリケーションによって開始された第2のデータ転送要求がモバイルデバイス上で検出されるまで、遅延させる。そして、ローカルプロキシは、第1,第2の転送要求を単一の転送作動で転送する。   There is also a proposal for a system that adjusts mobile network traffic by providing a local proxy on a mobile device. The local proxy delays the transfer of the first data transfer request initiated by the first application until a second data transfer request initiated by the second application is detected on the mobile device. Then, the local proxy transfers the first and second transfer requests with a single transfer operation.

また、複数のサービス提供部を備えるサーバ装置に、外部装置と複数のサービス提供部との間の通信を仲介する仲介機能部の機能を付加する提案もある。この提案では、仲介機能部により、外部装置とサーバ装置との間で、複数のサービス提供部の動作に係るSOAP(Simple Object Access Protocol)リクエストおよびSOAPレスポンスを複数一括して送受信する。   There is also a proposal for adding a function of an intermediary function unit that mediates communication between an external device and a plurality of service providing units to a server device including a plurality of service providing units. In this proposal, a plurality of SOAP (Simple Object Access Protocol) requests and SOAP responses related to the operation of a plurality of service providing units are collectively transmitted and received between an external device and a server device by an intermediary function unit.

国際公開第2007/125942号International Publication No. 2007/1295942 特表2013−541238号公報Special table 2013-541238 特開2005−322222号公報JP 2005-322222 A

上記のように、クライアントとサーバとの間に設けられた制御装置により、サーバに送信するリクエストの数を制限することがある。このとき、制御装置により、リクエストに関して予め定められた優先度を基に、蓄積した複数のリクエストをサーバへ送信する順序を決定することが考えられる。しかし、予め定められた優先度が常に適切とは限らない。   As described above, the number of requests transmitted to the server may be limited by a control device provided between the client and the server. At this time, it is conceivable that the control device determines the order in which the plurality of accumulated requests are transmitted to the server on the basis of a predetermined priority regarding the requests. However, a predetermined priority is not always appropriate.

例えば、第1のリクエストに対するサーバのレスポンスの内容が、第2のリクエストに応じたサーバの処理結果の影響を受けることもある。この場合、第2のリクエストの優先度が比較的低いと、制御装置が第1,第2のリクエストを含む複数のリクエストを同時に受信したときに、第2のリクエストのサーバへの送信が遅延することがある。第2のリクエストのサーバへの送信が遅延すると、サーバは、第1のリクエストに対する応答に、第2のリクエストによる処理結果を反映できない可能性がある。したがって、クライアントは、第1のリクエストに対して、第2のリクエストによる処理結果が反映された最新の状態の応答を得られないことがあるという問題がある。   For example, the content of the server response to the first request may be affected by the processing result of the server corresponding to the second request. In this case, if the priority of the second request is relatively low, transmission of the second request to the server is delayed when the control device receives a plurality of requests including the first and second requests at the same time. Sometimes. If transmission of the second request to the server is delayed, the server may not be able to reflect the processing result of the second request in the response to the first request. Therefore, there is a problem that the client may not obtain a response in the latest state reflecting the processing result of the second request with respect to the first request.

1つの側面では、本発明は、リクエストを適切な順序で送信可能にすることを目的とする。   In one aspect, the present invention is directed to enabling requests to be sent in the proper order.

1つの態様では、送信制御プログラムが提供される。送信制御プログラムは、処理の実行に関する第1のリクエストを受信すると、複数のリクエスト間の関連性に関する情報およびリクエストの送信に関する優先度を該リクエストに対応付けて記憶する記憶部を参照して、第1のリクエストに関連する第2のリクエストと、第2のリクエストに対応する第1の優先度とを特定し、受信したリクエストに応じた処理を実行する情報処理装置に、第1の優先度よりも高い第2の優先度で第2のリクエストを送信する、処理をコンピュータに実行させる。   In one aspect, a transmission control program is provided. When the transmission control program receives the first request related to the execution of the process, the transmission control program refers to the storage unit that stores the information related to the relationship between the plurality of requests and the priority related to the transmission of the request in association with the request. The information processing apparatus that identifies the second request related to the first request and the first priority corresponding to the second request and executes the process according to the received request The second request is transmitted with the second priority that is higher, and the processing is executed by the computer.

また、1つの態様では、送信に関する優先度が対応付けられたリクエストを情報処理装置に送信する送信制御プログラムが提供される。送信制御プログラムは、処理の実行に関する特定のリクエストを受信すると、複数のリクエスト間の関連性に関する情報を記憶する記憶部を参照して、受信したリクエストに関連する他のリクエストを特定し、特定した他のリクエストを情報処理装置に送信する優先度を、他のリクエストに対応付けられた優先度よりも高める制御を実行する、処理をコンピュータに実行させる。   Moreover, in one aspect, a transmission control program is provided that transmits a request associated with a transmission priority to an information processing apparatus. When the transmission control program receives a specific request related to the execution of the process, the transmission control program identifies and identifies other requests related to the received request by referring to a storage unit that stores information regarding the relationship between a plurality of requests. A computer is caused to execute a process of executing a control for increasing the priority of transmitting another request to the information processing device higher than the priority associated with the other request.

1つの側面では、リクエストを適切な順序で送信できる。   In one aspect, requests can be sent in the proper order.

第1の実施の形態の送信制御装置を示す図である。It is a figure which shows the transmission control apparatus of 1st Embodiment. 第2の実施の形態の情報処理システムを示す図である。It is a figure which shows the information processing system of 2nd Embodiment. リバースプロキシサーバのハードウェア例を示す図である。It is a figure which shows the hardware example of a reverse proxy server. リバースプロキシサーバの機能例を示す図である。It is a figure which shows the example of a function of a reverse proxy server. リクエスト関連テーブルの例を示す図である。It is a figure which shows the example of a request related table. 優先度テーブルの例を示す図である。It is a figure which shows the example of a priority table. リバースプロキシサーバの処理例を示すフローチャートである。It is a flowchart which shows the process example of a reverse proxy server. 優先度制御の例を示すフローチャートである。It is a flowchart which shows the example of priority control. リクエストの優先度の変更例を示す図である。It is a figure which shows the example of a change of the priority of a request. リクエストの送信例(その1)を示す図である。It is a figure which shows the example of transmission of a request (the 1). リクエストの送信例(その2)を示す図である。It is a figure which shows the example of transmission of a request (the 2). リクエスト送信の比較例を示す図である。It is a figure which shows the comparative example of request transmission. 第3の実施の形態のマルチパートのリクエストの例を示す図である。It is a figure which shows the example of the request of the multipart of 3rd Embodiment. リクエスト送信元管理テーブルの例を示す図である。It is a figure which shows the example of a request transmission source management table. リバースプロキシサーバの処理例を示すフローチャートである。It is a flowchart which shows the process example of a reverse proxy server. 通信例(その1)を示す図である。It is a figure which shows the example of communication (the 1). 通信例(その2)を示す図である。It is a figure which shows the example of communication (the 2).

以下、本実施の形態について図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態の送信制御装置を示す図である。送信制御装置1は、ネットワーク(図示を省略している)に接続されており、ネットワークを介して、情報処理装置2および端末装置3,4と通信する。送信制御装置1は、端末装置3,4により送信されたリクエストを受信する。送信制御装置1は、受信したリクエストを一時的に記憶し、情報処理装置2に送信する。送信制御装置1は、リクエストに対するレスポンスを情報処理装置2から受信し、リクエストの送信元の端末装置3,4に送信する。
Hereinafter, the present embodiment will be described with reference to the drawings.
[First Embodiment]
FIG. 1 is a diagram illustrating a transmission control apparatus according to the first embodiment. The transmission control device 1 is connected to a network (not shown), and communicates with the information processing device 2 and the terminal devices 3 and 4 via the network. The transmission control device 1 receives the requests transmitted by the terminal devices 3 and 4. The transmission control device 1 temporarily stores the received request and transmits it to the information processing device 2. The transmission control device 1 receives a response to the request from the information processing device 2 and transmits it to the terminal devices 3 and 4 that are the transmission source of the request.

ここで、端末装置3,4は、あるユーザにより利用されている。送信制御装置1は、情報処理装置2に対する同時接続数の上限値N(Nは1以上の整数)をユーザ毎に管理する。同時接続数は、応答待ちリクエストの数に相当する。応答待ちリクエストは、情報処理装置2に送信したリクエストのうち、情報処理装置2からのレスポンスを未受信であるリクエストである。   Here, the terminal devices 3 and 4 are used by a certain user. The transmission control device 1 manages the upper limit N (N is an integer equal to or greater than 1) of the number of simultaneous connections to the information processing device 2 for each user. The number of simultaneous connections corresponds to the number of response waiting requests. The response waiting request is a request that has not received a response from the information processing device 2 among requests transmitted to the information processing device 2.

送信制御装置1は、端末装置3,4による情報処理装置2に対する同時接続数M(Mは0以上の整数)が上限値Nに達していない場合、端末装置3,4からリクエストを受信すると、当該リクエストを情報処理装置2に直ちに送信する。一方、送信制御装置1は、同時接続数Mが上限値Nに達した場合、端末装置3,4からリクエストを受信すると、同時接続数Mが上限値Nを下回るまで当該リクエストを一時的に記憶する。そして、送信制御装置1は、同時接続数Mが上限値Nを下回ると、一時的に記憶した複数のリクエストを、各リクエストに対する優先度に応じた順番で、情報処理装置2に送信する。   When the number M of simultaneous connections to the information processing device 2 by the terminal devices 3 and 4 (M is an integer equal to or larger than 0) has not reached the upper limit N, the transmission control device 1 receives a request from the terminal devices 3 and 4. The request is immediately transmitted to the information processing apparatus 2. On the other hand, when the number M of simultaneous connections reaches the upper limit value N, the transmission control device 1 temporarily stores the request until the number M of simultaneous connections falls below the upper limit value N when receiving a request from the terminal devices 3 and 4. To do. Then, when the number M of simultaneous connections falls below the upper limit value N, the transmission control device 1 transmits a plurality of temporarily stored requests to the information processing device 2 in the order corresponding to the priority for each request.

送信制御装置1は、各リクエストに対する優先度を制御する機能を提供する。送信制御装置1は、記憶部1aおよび処理部1bを有する。
記憶部1aは、RAM(Random Access Memory)などの揮発性記憶装置でもよいし、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性記憶装置でもよい。処理部1bは、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)などを含み得る。処理部1bはプログラムを実行するプロセッサでもよい。「プロセッサ」は、複数のプロセッサの集合(マルチプロセッサ)も含み得る。
The transmission control device 1 provides a function of controlling the priority for each request. The transmission control device 1 includes a storage unit 1a and a processing unit 1b.
The storage unit 1a may be a volatile storage device such as a RAM (Random Access Memory) or a non-volatile storage device such as an HDD (Hard Disk Drive) or a flash memory. The processing unit 1b may include a CPU (Central Processing Unit), a DSP (Digital Signal Processor), an ASIC (Application Specific Integrated Circuit), an FPGA (Field Programmable Gate Array), and the like. The processing unit 1b may be a processor that executes a program. The “processor” may also include a set of multiple processors (multiprocessor).

記憶部1aは、リクエストのバッファとして用いられる。また、記憶部1aは、リクエスト関連情報5および優先度情報6を記憶する。
リクエスト関連情報5は、複数のリクエスト間の関連性に関する情報である。2つのリクエストの関連性は、一方のリクエストに対する情報処理装置2の処理結果が、他方のリクエストに対する情報処理装置2の応答に影響を及ぼすという関係を示す。
The storage unit 1a is used as a request buffer. The storage unit 1a stores request related information 5 and priority information 6.
The request related information 5 is information related to the relationship between a plurality of requests. The relationship between the two requests indicates a relationship in which the processing result of the information processing apparatus 2 with respect to one request affects the response of the information processing apparatus 2 with respect to the other request.

例えば、リクエスト関連情報5には、関連のある2つのリクエストの種別の組を示す情報が登録される。より具体的には、リクエスト関連情報5には、種別“type1”および種別“type2”というレコードが登録されている。このレコードは、リクエストの種別が“type1”および“type2”である2つのリクエストは、関連があることを示す。このうち、前者の種別“type1”は、下記の優先度制御の契機となる予め特定された種別である。   For example, in the request related information 5, information indicating a pair of two types of related requests is registered. More specifically, in the request related information 5, records of type “type1” and type “type2” are registered. This record indicates that two requests whose request types are “type1” and “type2” are related. Among these, the former type “type1” is a type specified in advance that triggers the following priority control.

リクエストの種別とは、例えば、リクエストに応じた処理の内容や当該処理で扱われるデータの種類などに応じて分類される。一例では、リクエストは、HTTP(HyperText Transfer Protocol)によるリクエスト(HTTPリクエスト)である。この場合、種別は、例えば、HTTPリクエストメッセージのヘッダにおけるリクエスト行のパス名によって分類されてもよい。あるいは、種別は、当該ヘッダにおけるHost名あるいはHost名とパス名との組合せによって分類されてもよい。   The request type is classified according to, for example, the content of processing according to the request, the type of data handled in the processing, and the like. In one example, the request is a request (HTTP request) by HTTP (HyperText Transfer Protocol). In this case, the type may be classified by the path name of the request line in the header of the HTTP request message, for example. Alternatively, the type may be classified according to the host name or the combination of the host name and the path name in the header.

優先度情報6は、優先度をリクエストに対応付けて記録した情報である。例えば、優先度情報6には、リクエストの種別に対して、優先度が登録される。より具体的には、種別“type3”のリクエストの優先度は“1”である。種別“type1”の優先度は“2”である。種別“type4”の優先度は“3”である。種別“type2”の優先度は“4”である。本例では、優先度の数値が小さいほど、優先される度合が高く、優先度の数値が大きいほど、優先される度合が低いものとする。すなわち、優先度情報6の例によれば、種別“type3”のリクエストの優先度が最も高い。2番目に、種別“type1”のリクエストの優先度が高い。3番目に、種別“type4”のリクエストの優先度が高い。そして、種別“type2”のリクエストの優先度が最も低い。   The priority information 6 is information in which the priority is recorded in association with the request. For example, in the priority information 6, the priority is registered for the request type. More specifically, the priority of the request of type “type3” is “1”. The priority of the type “type1” is “2”. The priority of the type “type4” is “3”. The priority of the type “type2” is “4”. In this example, the smaller the priority value, the higher the priority, and the higher the priority value, the lower the priority. That is, according to the example of the priority information 6, the priority of the request of the type “type 3” is the highest. Second, the priority of the request of type “type1” is high. Third, the priority of the request of type “type4” is high. The priority of the request of type “type 2” is the lowest.

ここで、予め優先度が定められた、関連性のある2つのリクエストとしては、種々の例が考えられる。例えば、優先度が高い方のリクエストが端末装置3を利用するユーザによるログの取得要求を示す種別であり、優先度が低い方のリクエストが端末装置3から情報処理装置2へのログの定期的な自動送信を示す種別である場合が考えられる。あるいは、優先度が高い方のリクエストが端末装置3を利用するユーザによるジョブの実行完了の確認要求を示す種別であり、優先度が低い方のリクエストが端末装置3から情報処理装置2へのジョブの実行完了報告を示す種別である場合が考えられる。ただし、関連性のある2つのリクエストの例はこれらに限られるものではない。   Here, various examples can be considered as two related requests, the priorities of which are determined in advance. For example, a request with a higher priority is a type indicating a log acquisition request by a user who uses the terminal device 3, and a request with a lower priority is a periodic log from the terminal device 3 to the information processing device 2. The type may indicate a type of automatic transmission. Alternatively, a request with a higher priority is a type indicating a confirmation request for job execution completion by a user using the terminal device 3, and a request with a lower priority is a job from the terminal device 3 to the information processing device 2. It may be a type indicating an execution completion report. However, examples of two related requests are not limited to these.

処理部1bは、情報処理装置2における処理の実行に関する第1のリクエストを受信すると、記憶部1aを参照して、第1のリクエストに関連する第2のリクエストを特定する。例えば、処理部1bは、情報処理装置2に対する同時接続数が上限値Nに達している状態で、リクエストR1,R2を端末装置3から受信し、リクエストR3,R4を端末装置4から受信する。処理部1bは、リクエストR1,R2,R3,R4を記憶部1aに格納する(バッファリング)。   When the processing unit 1b receives the first request related to the execution of the process in the information processing device 2, the processing unit 1b refers to the storage unit 1a and identifies the second request related to the first request. For example, the processing unit 1b receives the requests R1 and R2 from the terminal device 3 and the requests R3 and R4 from the terminal device 4 in a state where the number of simultaneous connections to the information processing device 2 has reached the upper limit value N. The processing unit 1b stores the requests R1, R2, R3, and R4 in the storage unit 1a (buffering).

ここで、リクエストR1の種別は“type1”である。したがって、リクエストR1(第1のリクエスト)は、特定の種別に対応する特定のリクエストである。リクエストR2の種別は“type2”である。リクエストR3の種別は“type3”である。リクエストR4の種別は“type4”である。   Here, the type of the request R1 is “type1”. Therefore, the request R1 (first request) is a specific request corresponding to a specific type. The type of the request R2 is “type2”. The type of the request R3 is “type3”. The type of the request R4 is “type4”.

例えば、処理部1bは、記憶部1aに記憶されたリクエスト関連情報5を参照して、リクエストR1(第1のリクエスト)に関連するリクエストR2(第2のリクエスト)を特定する。   For example, the processing unit 1b refers to the request related information 5 stored in the storage unit 1a, and specifies the request R2 (second request) related to the request R1 (first request).

処理部1bは、記憶部1aに記憶された優先度情報6を参照して、第2のリクエストに対応する第1の優先度を特定する。例えば、処理部1bは、優先度情報6を参照して、種別“type2”であるリクエストR2(第2のリクエスト)に対応する第1の優先度“4”を特定する。   The processing unit 1b refers to the priority information 6 stored in the storage unit 1a and specifies the first priority corresponding to the second request. For example, the processing unit 1b refers to the priority information 6 and identifies the first priority “4” corresponding to the request R2 (second request) of the type “type2”.

そして、処理部1bは、第1の優先度よりも高い第2の優先度で第2のリクエストを情報処理装置2に送信する。例えば、処理部1bは、第1の優先度“4”よりも高い第2の優先度でリクエストR2を情報処理装置2に送信する。これにより、優先度情報6に設定された優先度で送信するよりも早く、リクエストR2が情報処理装置2に送信される可能性を高められる。なお、処理部1bにより変更された優先度は、優先度情報6に反映されるものではなく、今回限りの一時的なものである。   Then, the processing unit 1b transmits the second request to the information processing device 2 with the second priority higher than the first priority. For example, the processing unit 1b transmits the request R2 to the information processing apparatus 2 with the second priority higher than the first priority “4”. Thereby, it is possible to increase the possibility that the request R2 is transmitted to the information processing apparatus 2 earlier than when the request R2 is transmitted with the priority set in the priority information 6. Note that the priority changed by the processing unit 1b is not reflected in the priority information 6, but is only temporary this time.

処理部1bは、リクエストR1の優先度“2”よりも高い優先度“1”を、第2の優先度としてもよい。このとき、例えば、端末装置3,4による同時接続数の上限値N=2とすると、処理部1bは、リクエストR1,R2,R3,R4を次の順番で情報処理装置2に送信する。   The processing unit 1b may set the priority “1” higher than the priority “2” of the request R1 as the second priority. At this time, for example, if the upper limit N = 2 of the number of simultaneous connections by the terminal devices 3 and 4, the processing unit 1b transmits the requests R1, R2, R3, and R4 to the information processing device 2 in the following order.

まず、処理部1bは、優先度が“1”であるリクエストR3と変更後の優先度が“1”であるリクエストR2とを、順次、情報処理装置2に送信する(ステップS1)。
次に、処理部1bは、優先度が“2”であるリクエストR1と優先度が“3”であるリクエストR4とを、順次、情報処理装置2に送信する(ステップS2)。すなわち、処理部1bは、記憶部1aに記憶されたリクエストR1に対応する優先度でリクエストR1を送信する。こうして、処理部1bは、リクエストR1よりも早くリクエストR2を情報処理装置2に送信することができる。
First, the processing unit 1b sequentially transmits a request R3 having a priority “1” and a request R2 having a changed priority “1” to the information processing apparatus 2 (step S1).
Next, the processing unit 1b sequentially transmits a request R1 having a priority “2” and a request R4 having a priority “3” to the information processing apparatus 2 (step S2). That is, the processing unit 1b transmits the request R1 with a priority corresponding to the request R1 stored in the storage unit 1a. In this way, the processing unit 1b can transmit the request R2 to the information processing device 2 earlier than the request R1.

このように、処理部1bは、処理の実行に関する特定のリクエストを受信すると、記憶部1aを参照して、受信したリクエストに関連する他のリクエストを特定する。そして、処理部1bは、特定した他のリクエストを情報処理装置2に送信する優先度を、他のリクエストに対応付けられた優先度よりも高める制御を実行する。   As described above, when the processing unit 1b receives a specific request related to the execution of the processing, the processing unit 1b refers to the storage unit 1a and specifies another request related to the received request. And the process part 1b performs control which raises the priority which transmits the specified other request | requirement to the information processing apparatus 2 rather than the priority matched with the other request.

ここで、リクエストR1に対する情報処理装置2の応答が、リクエストR2の処理結果の影響を受けることがある。この場合、処理部1bは、リクエストR1,R2を受信してバッファリングしているときに、優先度情報6に登録された優先度に従い、リクエストR1,R2の順番で、情報処理装置2に送信することも考えられる。しかし、リクエストR1の方がリクエストR2よりも先に情報処理装置2に送信されると、リクエストR1に対する情報処理装置2の応答に、送信制御装置1に到着済のリクエストR2に対する情報処理装置2の処理結果が反映されないことになる。すなわち、情報処理装置2からの端末装置3に対する応答は最新の情報ではないことになる。この場合、端末装置3は、最新の情報を得るために、情報処理装置2に対するリクエストを再送することになる。   Here, the response of the information processing apparatus 2 to the request R1 may be affected by the processing result of the request R2. In this case, when the processing unit 1b receives and buffers the requests R1 and R2, the processing unit 1b transmits the requests to the information processing device 2 in the order of the requests R1 and R2 according to the priority registered in the priority information 6. It is also possible to do. However, when the request R1 is transmitted to the information processing apparatus 2 before the request R2, the information processing apparatus 2 responds to the request R2 that has arrived at the transmission control apparatus 1 in response to the request R1. The processing result is not reflected. That is, the response from the information processing device 2 to the terminal device 3 is not the latest information. In this case, the terminal device 3 retransmits the request to the information processing device 2 in order to obtain the latest information.

そこで、送信制御装置1は、リクエストR1,R2を受信してバッファリングしている場合に、リクエストR2を特定し、リクエストR2の優先度を優先度情報6に設定された優先度よりも高める制御を行う。これにより、予め設定された優先度に従うよりも、リクエストR2が情報処理装置2に送信されるタイミングを早められる。   Therefore, when the transmission control device 1 receives and buffers the requests R1 and R2, the transmission control device 1 specifies the request R2 and controls the priority of the request R2 to be higher than the priority set in the priority information 6 I do. Thereby, the timing at which the request R2 is transmitted to the information processing apparatus 2 can be advanced as compared with the case where the priority set in advance is followed.

前述のように、処理部1bは、リクエストR2の優先度をリクエストR1の優先度より高めてもよい。このようにすると、リクエストR2が情報処理装置2に送信されるタイミングを一層早めることができる。特に、リクエストR2がリクエストR1よりも先に情報処理装置2に送信される可能性を高められる。   As described above, the processing unit 1b may make the priority of the request R2 higher than the priority of the request R1. In this way, the timing at which the request R2 is transmitted to the information processing apparatus 2 can be further advanced. In particular, the possibility that the request R2 is transmitted to the information processing apparatus 2 before the request R1 can be increased.

リクエストR2が情報処理装置2に送信されるタイミングを早めることで、リクエストR1に対する情報処理装置2の応答に、リクエストR2に対する情報処理装置2の処理結果が反映される可能性も高まる。したがって、端末装置3がリクエストR1に対して最新の状態の応答を得られる可能性が高まる。   By advancing the timing at which the request R2 is transmitted to the information processing apparatus 2, the possibility that the processing result of the information processing apparatus 2 for the request R2 is reflected in the response of the information processing apparatus 2 to the request R1 is also increased. Therefore, the possibility that the terminal device 3 can obtain the latest response to the request R1 is increased.

こうして、送信制御装置1は、適切な順番でリクエストを情報処理装置2に送信することで、端末装置3に対して期待される応答(例えば、最新の情報)を提供することができる。また、端末装置3により余計なリクエストが再送されることを抑え、ネットワークの負荷を抑えられる。   In this way, the transmission control device 1 can provide the expected response (for example, the latest information) to the terminal device 3 by transmitting the requests to the information processing device 2 in an appropriate order. In addition, it is possible to suppress an extra request from being retransmitted by the terminal device 3 and to reduce the load on the network.

以下では、より具体的な情報処理システムを例示して、送信制御装置1の機能を更に詳細に説明する。
[第2の実施の形態]
図2は、第2の実施の形態の情報処理システムを示す図である。第2の実施の形態の情報処理システムは、リバースプロキシサーバ100、Webサーバ200およびクライアント300,400を有する。リバースプロキシサーバ100、Webサーバ200およびクライアント300,400は、ネットワーク10に接続されている。ネットワーク10は、LAN(Local Area Network)やインターネットを含んでもよい。
Hereinafter, a more specific information processing system will be exemplified to describe the function of the transmission control device 1 in more detail.
[Second Embodiment]
FIG. 2 illustrates an information processing system according to the second embodiment. The information processing system according to the second embodiment includes a reverse proxy server 100, a Web server 200, and clients 300 and 400. The reverse proxy server 100, the Web server 200, and the clients 300 and 400 are connected to the network 10. The network 10 may include a LAN (Local Area Network) and the Internet.

リバースプロキシサーバ100は、リバースプロキシ機能を提供するサーバコンピュータである。リバースプロキシサーバ100は、クライアント300,400からWebサーバ200へのリクエストの送信を仲介する。また、リバースプロキシサーバ100は、Webサーバ200からクライアント300,400へのレスポンスの送信を仲介する。   The reverse proxy server 100 is a server computer that provides a reverse proxy function. The reverse proxy server 100 mediates transmission of requests from the clients 300 and 400 to the Web server 200. The reverse proxy server 100 mediates transmission of responses from the Web server 200 to the clients 300 and 400.

ここで、リクエストおよびレスポンスは、HTTPのメッセージである。リバースプロキシサーバ100は、クライアント300,400からリクエストを受信し、Webサーバ200に対する同時接続数の上限に達しないように、Webサーバ200へのリクエストの送信を制御する。同時接続数の制限により、リバースプロキシサーバ100は、Webサーバ200の負荷を削減し得る。   Here, the request and the response are HTTP messages. The reverse proxy server 100 receives requests from the clients 300 and 400 and controls transmission of requests to the Web server 200 so that the upper limit of the number of simultaneous connections to the Web server 200 is not reached. Due to the restriction on the number of simultaneous connections, the reverse proxy server 100 can reduce the load on the Web server 200.

なお、リバースプロキシサーバ100は、第1の実施の形態の送信制御装置1の一例である。また、リバースプロキシサーバ100は、SSL(Secure Sockets Layer)アクセラレータなどのアプライアンスに組み込まれてもよい。   The reverse proxy server 100 is an example of the transmission control device 1 according to the first embodiment. The reverse proxy server 100 may be incorporated in an appliance such as an SSL (Secure Sockets Layer) accelerator.

Webサーバ200は、Webサーバ機能を提供するサーバコンピュータである。Webサーバ200は、リバースプロキシサーバ100からリクエストを受信し、リクエストに応じた処理を実行する。Webサーバ200は、実行結果を示すレスポンスをリバースプロキシサーバ100に送信する。Webサーバ200は、第1の実施の形態の情報処理装置2の一例である。   The web server 200 is a server computer that provides a web server function. The Web server 200 receives a request from the reverse proxy server 100 and executes processing according to the request. The Web server 200 transmits a response indicating the execution result to the reverse proxy server 100. The Web server 200 is an example of the information processing apparatus 2 according to the first embodiment.

クライアント300,400は、ユーザによって利用されるクライアントコンピュータである。クライアント300,400は、Webブラウザとして機能し、リバースプロキシサーバ100にリクエストを送信する。リクエストは、リバースプロキシサーバ100によるAPI(Application Programming Interface)の実行要求であり、「API実行リクエスト」と呼ばれてもよい。また、クライアント300,400は、リバースプロキシサーバ100から、リクエストに応じたレスポンスを受信する。クライアント300,400は、第1の実施の形態の端末装置3,4の一例である。   Clients 300 and 400 are client computers used by users. The clients 300 and 400 function as Web browsers and transmit requests to the reverse proxy server 100. The request is an API (Application Programming Interface) execution request by the reverse proxy server 100 and may be referred to as an “API execution request”. Further, the clients 300 and 400 receive a response corresponding to the request from the reverse proxy server 100. The clients 300 and 400 are an example of the terminal devices 3 and 4 according to the first embodiment.

ここで、クライアント300,400により送信されるリクエストには、ユーザ操作リクエストおよび自動実行リクエストの2種類が含まれる。ユーザ操作リクエストは、クライアント300,400に対するユーザの操作に応じて送信されるリクエストである。例えば、ユーザ操作リクエストには、ユーザの操作入力に応じたログの取得要求や、ジョブの実行完了の確認要求などがある。   Here, the requests transmitted by the clients 300 and 400 include two types of user operation requests and automatic execution requests. The user operation request is a request transmitted in response to a user operation on the clients 300 and 400. For example, the user operation request includes a log acquisition request according to a user operation input, a job execution completion confirmation request, and the like.

自動実行リクエストは、クライアント300,400により実行される所定のソフトウェアによって自動的に(すなわち、ユーザの操作に依らずに)送信されるリクエストである。例えば、自動実行リクエストには、Webサーバ200との疎通確認やセッション維持を行うためのリクエストが考えられる。また、自動実行リクエストには、クライアント300,400のログをWebサーバ200に提供するためのリクエストやクライアント300,400によるジョブの実行完了を通知するためのリクエストなどが考えられる。   The automatic execution request is a request that is automatically transmitted by predetermined software executed by the clients 300 and 400 (that is, regardless of a user operation). For example, the automatic execution request may be a request for confirming communication with the Web server 200 or maintaining a session. The automatic execution request may be a request for providing a log of the client 300 or 400 to the Web server 200, a request for notifying completion of job execution by the client 300 or 400, or the like.

クライアント300,400を利用するユーザには、Webサーバ200に対する同時接続数の上限が予め定められている。例えば、同時接続数の上限は、リバースプロキシサーバ100およびWebサーバ200を提供する事業者と、クライアント300,400を利用するユーザ(テナント)との間の契約によって定められてもよい。または、リバースプロキシサーバ100およびWebサーバ200を提供する組織と、クライアント300,400を利用するユーザが属する組織とが同一であれば、当該組織のポリシーによって、ユーザ(例えば、部門)毎の同時接続数の上限が定められてもよい。   For users who use the clients 300 and 400, an upper limit of the number of simultaneous connections to the Web server 200 is predetermined. For example, the upper limit of the number of simultaneous connections may be determined by a contract between a provider that provides the reverse proxy server 100 and the Web server 200 and a user (tenant) that uses the clients 300 and 400. Alternatively, if the organization that provides the reverse proxy server 100 and the Web server 200 is the same as the organization to which the user using the clients 300 and 400 belongs, simultaneous connection for each user (for example, department) according to the policy of the organization. An upper limit on the number may be defined.

図3は、リバースプロキシサーバのハードウェア例を示す図である。リバースプロキシサーバ100は、プロセッサ101、RAM102、HDD103、画像信号処理部104、入力信号処理部105、媒体リーダ106およびNIC(Network Interface Card)107を有する。各ハードウェアはリバースプロキシサーバ100のバスに接続されている。Webサーバ200やクライアント300,400もリバースプロキシサーバ100と同様のハードウェアを用いて実現できる。   FIG. 3 is a diagram illustrating a hardware example of the reverse proxy server. The reverse proxy server 100 includes a processor 101, a RAM 102, an HDD 103, an image signal processing unit 104, an input signal processing unit 105, a medium reader 106, and a NIC (Network Interface Card) 107. Each piece of hardware is connected to the reverse proxy server 100 bus. The Web server 200 and the clients 300 and 400 can also be realized using the same hardware as the reverse proxy server 100.

プロセッサ101は、リバースプロキシサーバ100の情報処理を制御するハードウェアである。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU、DSP、ASICまたはFPGAなどである。プロセッサ101は、CPU、DSP、ASIC、FPGAなどのうちの2以上の要素の組み合わせであってもよい。   The processor 101 is hardware that controls information processing of the reverse proxy server 100. The processor 101 may be a multiprocessor. The processor 101 is, for example, a CPU, DSP, ASIC, or FPGA. The processor 101 may be a combination of two or more elements of CPU, DSP, ASIC, FPGA, and the like.

RAM102は、リバースプロキシサーバ100の主記憶装置である。RAM102は、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、RAM102は、プロセッサ101による処理に用いる各種データを記憶する。   The RAM 102 is a main storage device of the reverse proxy server 100. The RAM 102 temporarily stores at least part of an OS (Operating System) program and application programs to be executed by the processor 101. The RAM 102 stores various data used for processing by the processor 101.

HDD103は、リバースプロキシサーバ100の補助記憶装置である。HDD103は、内蔵した磁気ディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD103は、OSのプログラム、アプリケーションプログラム、および各種データを記憶する。リバースプロキシサーバ100は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の補助記憶装置を備えてもよく、複数の補助記憶装置を備えてもよい。   The HDD 103 is an auxiliary storage device of the reverse proxy server 100. The HDD 103 magnetically writes and reads data to and from the built-in magnetic disk. The HDD 103 stores an OS program, application programs, and various data. The reverse proxy server 100 may include other types of auxiliary storage devices such as a flash memory and an SSD (Solid State Drive), or may include a plurality of auxiliary storage devices.

画像信号処理部104は、プロセッサ101からの命令に従って、リバースプロキシサーバ100に接続されたディスプレイ11に画像を出力する。ディスプレイ11として、CRT(Cathode Ray Tube)ディスプレイや液晶ディスプレイなどを用いることができる。   The image signal processing unit 104 outputs an image to the display 11 connected to the reverse proxy server 100 in accordance with an instruction from the processor 101. As the display 11, a CRT (Cathode Ray Tube) display, a liquid crystal display, or the like can be used.

入力信号処理部105は、リバースプロキシサーバ100に接続された入力デバイス12から入力信号を取得し、プロセッサ101に出力する。入力デバイス12として、例えば、マウスやタッチパネルなどのポインティングデバイス、キーボードなどを用いることができる。   The input signal processing unit 105 acquires an input signal from the input device 12 connected to the reverse proxy server 100 and outputs the input signal to the processor 101. As the input device 12, for example, a pointing device such as a mouse or a touch panel, a keyboard, or the like can be used.

媒体リーダ106は、記録媒体13に記録されたプログラムやデータを読み取る装置である。記録媒体13として、例えば、フレキシブルディスク(FD:Flexible Disk)やHDDなどの磁気ディスク、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光ディスク、光磁気ディスク(MO:Magneto-Optical disk)を使用できる。また、記録媒体13として、例えば、フラッシュメモリカードなどの不揮発性の半導体メモリを使用することもできる。媒体リーダ106は、例えば、プロセッサ101からの命令に従って、記録媒体13から読み取ったプログラムやデータをRAM102またはHDD103に格納する。   The medium reader 106 is a device that reads programs and data recorded on the recording medium 13. As the recording medium 13, for example, a magnetic disk such as a flexible disk (FD) or an HDD, an optical disk such as a CD (Compact Disc) or a DVD (Digital Versatile Disc), or a magneto-optical disk (MO) is used. Can be used. Further, as the recording medium 13, for example, a non-volatile semiconductor memory such as a flash memory card can be used. For example, the medium reader 106 stores the program and data read from the recording medium 13 in the RAM 102 or the HDD 103 in accordance with an instruction from the processor 101.

NIC107は、ネットワーク10を介して他の装置と通信を行う。NIC107は、有線通信インタフェースでもよいし、無線通信インタフェースでもよい。
図4は、リバースプロキシサーバの機能例を示す図である。リバースプロキシサーバ100は、記憶部110、通信処理部120および優先度制御部130を有する。記憶部110は、RAM102や記憶部110の記憶領域により実現される。通信処理部120および優先度制御部130は、プロセッサ101により実現される。例えば、プロセッサ101は、RAM102に記憶されたプログラムを実行することで、通信処理部120および優先度制御部130の機能を発揮する。ただし、通信処理部120および優先度制御部130は、FPGAやASICなどのハードワイヤードロジックにより実現されてもよい。
The NIC 107 communicates with other devices via the network 10. The NIC 107 may be a wired communication interface or a wireless communication interface.
FIG. 4 is a diagram illustrating a function example of the reverse proxy server. The reverse proxy server 100 includes a storage unit 110, a communication processing unit 120, and a priority control unit 130. The storage unit 110 is realized by the storage area of the RAM 102 or the storage unit 110. The communication processing unit 120 and the priority control unit 130 are realized by the processor 101. For example, the processor 101 exhibits the functions of the communication processing unit 120 and the priority control unit 130 by executing a program stored in the RAM 102. However, the communication processing unit 120 and the priority control unit 130 may be realized by hard wired logic such as FPGA or ASIC.

記憶部110は、クライアント300,400から受信したリクエストのキャッシュとして用いられる。記憶部110は、リクエスト関連テーブルを記憶する。リクエスト関連テーブルは、複数のリクエストの間の関連を示す情報である。また、記憶部110は、優先度テーブルを記憶する。優先度テーブルは、リクエスト毎の優先度を示す情報である。   The storage unit 110 is used as a cache for requests received from the clients 300 and 400. The storage unit 110 stores a request related table. The request relation table is information indicating a relation between a plurality of requests. The storage unit 110 stores a priority table. The priority table is information indicating the priority for each request.

通信処理部120は、クライアント300,400により送信されたリクエストを受信し、受信したリクエストをWebサーバ200に転送する。また、通信処理部120は、リクエストに応じてWebサーバ200により送信されたレスポンスを受信し、受信したレスポンスをクライアント300,400に転送する。   The communication processing unit 120 receives a request transmitted by the clients 300 and 400 and transfers the received request to the Web server 200. In addition, the communication processing unit 120 receives a response transmitted by the Web server 200 in response to the request, and transfers the received response to the clients 300 and 400.

通信処理部120は、クライアント300,400に対して定められた同時接続数の上限に達しないように、Webサーバ200に対して送信するリクエストの数を制限する。同時接続数は、例えば、Webサーバ200に送信したリクエストのうち、Webサーバ200からのレスポンスを未受信であるリクエストの数である。通信処理部120は、同時接続数の上限を超えた数のリクエストを受信すると、受信したリクエストを記憶部110に格納する(バッファリング)。   The communication processing unit 120 limits the number of requests transmitted to the Web server 200 so as not to reach the upper limit of the number of simultaneous connections determined for the clients 300 and 400. The number of simultaneous connections is, for example, the number of requests that have not received a response from the Web server 200 among requests transmitted to the Web server 200. When the communication processing unit 120 receives a number of requests exceeding the upper limit of the number of simultaneous connections, the communication processing unit 120 stores the received requests in the storage unit 110 (buffering).

通信処理部120は、優先度テーブルおよび優先度制御部130により決定された優先度に応じた順序で、バッファリングされたリクエストをWebサーバ200に送信する。
優先度制御部130は、記憶部110に格納されたリクエストに対する優先度の制御を行う。優先度制御部130は、記憶部110に格納された複数のリクエストの中から、リクエスト関連テーブルに基づいて関連性のあるリクエストを特定し、特定したリクエストの優先度を変更する。優先度制御部130は、変更後の優先度を通信処理部120に通知する。なお、優先度制御部130による優先度の変更は、今回限りの一時的な設定変更であり、記憶部110に記憶された優先度テーブルの設定内容が変更されるわけではない。
The communication processing unit 120 transmits the buffered requests to the Web server 200 in the order according to the priority determined by the priority table and the priority control unit 130.
The priority control unit 130 controls priority for the requests stored in the storage unit 110. The priority control unit 130 specifies a related request from a plurality of requests stored in the storage unit 110 based on the request related table, and changes the priority of the specified request. The priority control unit 130 notifies the communication processing unit 120 of the changed priority. Note that the priority change by the priority control unit 130 is a temporary setting change only for this time, and the setting contents of the priority table stored in the storage unit 110 are not changed.

図5は、リクエスト関連テーブルの例を示す図である。リクエスト関連テーブル111は、記憶部110に予め格納されている。リクエスト関連テーブル111は、ユーザ操作リクエストおよび自動実行リクエストの項目を含む。   FIG. 5 is a diagram illustrating an example of a request relation table. The request related table 111 is stored in the storage unit 110 in advance. The request relation table 111 includes items of a user operation request and an automatic execution request.

ユーザ操作リクエストの項目には、ユーザ操作リクエストの種別を示すURL(Uniform Resource Locator)が登録される。ユーザ操作リクエストは、優先度制御部130による優先度制御の契機となる特定のリクエストとして、リクエスト関連テーブル111に設定される。URLは、ホスト名とパス名との組合せを含む。自動実行リクエストの項目には、自動実行リクエストの種別を示すURLが登録される。   In the user operation request item, a URL (Uniform Resource Locator) indicating the type of the user operation request is registered. The user operation request is set in the request relation table 111 as a specific request that triggers priority control by the priority control unit 130. The URL includes a combination of a host name and a path name. In the item of automatic execution request, a URL indicating the type of automatic execution request is registered.

ここで、URLは、Webサーバ200により提供されるサービスあるいはコンテンツに対応する識別情報であり、クライアント300,400により指定されるURLである。ただし、クライアント300,400によって指定されるURLは、リバースプロキシサーバ100へリクエストを送信するためのURLとなっている。リバースプロキシサーバ100は、クライアント300,400から受信したリクエストに含まれるURLを、Webサーバ200における該当のサービスまたはコンテンツに対応するURLに変換して、当該リクエストをWebサーバ200に転送する。   Here, the URL is identification information corresponding to a service or content provided by the Web server 200 and is a URL specified by the clients 300 and 400. However, the URL specified by the clients 300 and 400 is a URL for transmitting a request to the reverse proxy server 100. The reverse proxy server 100 converts the URL included in the request received from the client 300 or 400 into a URL corresponding to the corresponding service or content in the Web server 200 and transfers the request to the Web server 200.

例えば、リクエスト関連テーブル111には、ユーザ操作リクエストが“https://xxx”、自動実行リクエストが“https://aaa”というレコードが登録されている。このレコードは、ユーザ操作リクエスト“https://xxx”と自動実行リクエスト“https://aaa”とが関連していることを示す。   For example, in the request relation table 111, a record that the user operation request is “https: // xxx” and the automatic execution request is “https: /// aaa” is registered. This record indicates that the user operation request “https: // xxx” and the automatic execution request “https: /// aaa” are related to each other.

ここで、自動実行リクエスト“https://aaa”は、例えば、Webサーバ200にログなどの所定の情報を提供するためのリクエストである。また、ユーザ操作リクエストは、例えば、Webサーバ200に提供された当該ログなどの所定の情報を取得するためのリクエストである。   Here, the automatic execution request “https: /// aaa” is a request for providing predetermined information such as a log to the Web server 200, for example. The user operation request is a request for obtaining predetermined information such as the log provided to the Web server 200, for example.

図6は、優先度テーブルの例を示す図である。優先度テーブル112は、記憶部110に予め格納されている。優先度テーブル112は、優先度およびリクエストの項目を含む。   FIG. 6 is a diagram illustrating an example of a priority table. The priority table 112 is stored in the storage unit 110 in advance. The priority table 112 includes items of priority and request.

優先度の項目には、優先度を示す数値が登録される。優先度を示す数値が小さいほど、優先される度合が高いものとする。リクエストの項目には、リクエストの種別を示すURLが登録される。   In the priority item, a numerical value indicating the priority is registered. It is assumed that the smaller the numerical value indicating the priority is, the higher the priority is. In the request item, a URL indicating the type of request is registered.

例えば、優先度テーブル112には、優先度が“1”、リクエストが“https://111”という情報が登録されている。これは、リクエスト“https://111”の優先度が“1”であることを示す。   For example, information indicating that the priority is “1” and the request is “https: // 111” is registered in the priority table 112. This indicates that the priority of the request “https: // 111” is “1”.

ここで、優先度“1”は、最高の優先度である。優先度“1”に対応付けられるリクエストは、主に、Webサーバ200に対して重要性の高いメッセージ(例えば、クライアントにおける障害発生時のエラーなど)を通知するための自動実行リクエストである。   Here, the priority “1” is the highest priority. The request associated with the priority “1” is mainly an automatic execution request for notifying the Web server 200 of a highly important message (for example, an error when a failure occurs in the client).

優先度“2”は、中間の優先度である。優先度“2”に対応付けられるリクエストは、主に、ユーザ操作リクエストである。
優先度“3”は、最低の優先度である。優先度“3”に対応付けられるリクエストは、主に、Webサーバ200に対して重要性の低いメッセージ(例えば、クライアントにおいて取得されたログなど)を通知するための自動実行リクエストである。
The priority “2” is an intermediate priority. Requests associated with the priority “2” are mainly user operation requests.
The priority “3” is the lowest priority. The request associated with the priority “3” is mainly an automatic execution request for notifying the Web server 200 of a low-importance message (for example, a log acquired by the client).

次に、リバースプロキシサーバ100による処理手順を説明する。
図7は、リバースプロキシサーバの処理例を示すフローチャートである。以下、図7に示す処理をステップ番号に沿って説明する。例えば、リバースプロキシサーバ100は、下記の手順を所定の周期(例えば、100ミリ秒や1秒など)で実行する。
Next, a processing procedure by the reverse proxy server 100 will be described.
FIG. 7 is a flowchart illustrating a processing example of the reverse proxy server. In the following, the process illustrated in FIG. 7 will be described along with step numbers. For example, the reverse proxy server 100 executes the following procedure at a predetermined cycle (for example, 100 milliseconds or 1 second).

(S11)通信処理部120は、クライアント300,400から受信したリクエストを記憶部110に蓄積し、蓄積したリクエストの数が、同時接続数の上限値Nよりも大きいか否かを判定する。蓄積したリクエストの数が上限値Nよりも大きい場合、通信処理部120は、ステップS13に処理を進める。蓄積したリクエストの数が上限値N以下の場合、通信処理部120は、ステップS12に処理を進める。   (S11) The communication processing unit 120 accumulates the requests received from the clients 300 and 400 in the storage unit 110, and determines whether or not the accumulated number of requests is larger than the upper limit N of the number of simultaneous connections. If the accumulated number of requests is greater than the upper limit value N, the communication processing unit 120 advances the processing to step S13. If the number of accumulated requests is equal to or less than the upper limit value N, the communication processing unit 120 advances the processing to step S12.

(S12)通信処理部120は、全てのリクエストをWebサーバ200に送信する。そして、通信処理部120は、処理を終了する。
(S13)通信処理部120は、記憶部110に蓄積されたリクエストのうち、ユーザ操作リクエストの数が同時接続数の上限値N以下であるか否かを判定する。ユーザ操作リクエストの数が上限値N以下である場合、通信処理部120は、ステップS15に処理を進める。ユーザ操作リクエストの数が上限値Nよりも大きい場合、通信処理部120は、ステップS14に処理を進める。ここで、通信処理部120は、記憶部110に蓄積されたリクエストのヘッダに含まれるパス名などから、ユーザ操作リクエストや自動実行リクエストを分類することができる。
(S12) The communication processing unit 120 transmits all requests to the Web server 200. Then, the communication processing unit 120 ends the process.
(S13) The communication processing unit 120 determines whether or not the number of user operation requests among the requests accumulated in the storage unit 110 is equal to or less than the upper limit N of the number of simultaneous connections. If the number of user operation requests is equal to or less than the upper limit value N, the communication processing unit 120 advances the processing to step S15. If the number of user operation requests is larger than the upper limit value N, the communication processing unit 120 advances the processing to step S14. Here, the communication processing unit 120 can classify the user operation request and the automatic execution request based on the path name included in the header of the request accumulated in the storage unit 110.

(S14)通信処理部120は、上限値Nを超過した分のユーザ操作リクエストの受け付けを拒否する(蓄積されるユーザ操作リクエストの数の上限も上限値Nとなる)。例えば、通信処理部120は、上限値Nを超過してユーザ操作リクエストが送信されたことを、当該ユーザ操作リクエストの送信元のクライアント300またはクライアント400に通知し、超過した分のユーザ操作リクエストを破棄する。そして、通信処理部120は、ステップS15に処理を進める。   (S14) The communication processing unit 120 rejects acceptance of user operation requests that exceed the upper limit N (the upper limit of the number of accumulated user operation requests is also the upper limit N). For example, the communication processing unit 120 notifies the client 300 or the client 400 that has transmitted the user operation request that the user operation request has been transmitted exceeding the upper limit value N, and the user operation request for the excess is transmitted. Discard. And the communication process part 120 advances a process to step S15.

(S15)優先度制御部130は、蓄積したリクエストに対する優先度制御を行う。優先度制御の処理の詳細は後述される。
(S16)通信処理部120は、記憶部110に記憶された優先度テーブル112および優先度制御部130により変更された優先度に応じた順序で、記憶部110に蓄積されたリクエストをWebサーバ200に送信する。そして、通信処理部120は、処理を終了する。
(S15) The priority control unit 130 performs priority control on the accumulated requests. Details of the priority control process will be described later.
(S16) The communication processing unit 120 sends the requests accumulated in the storage unit 110 to the Web server 200 in the order according to the priority changed by the priority table 112 and the priority control unit 130 stored in the storage unit 110. Send to. Then, the communication processing unit 120 ends the process.

このように、通信処理部120は、ユーザ操作リクエスト(第1のリクエスト)を受信すると、Webサーバからの応答待ちリクエスト数が上限値を超過するか否かを判定する。当該リクエスト数が上限数を超過する場合に、通信処理部120は、ユーザ操作リクエストを記憶部110に保存する。そして、通信処理部120は、記憶部110に保存されたリクエストから、ユーザ操作リクエストに関連する自動実行リクエスト(第2のリクエスト)を特定し、優先度に応じてユーザ操作リクエストおよび自動実行リクエストの送信順序を決定する。   As described above, when receiving the user operation request (first request), the communication processing unit 120 determines whether or not the number of requests waiting for a response from the Web server exceeds the upper limit value. When the request number exceeds the upper limit number, the communication processing unit 120 stores the user operation request in the storage unit 110. Then, the communication processing unit 120 specifies an automatic execution request (second request) related to the user operation request from the requests stored in the storage unit 110, and determines the user operation request and the automatic execution request according to the priority. Determine the transmission order.

なお、ステップS13,S14のように、ユーザ操作リクエスト数が同時接続数の上限値Nを超過しない限り、ユーザ操作リクエストの受け付けを許容することで、自動実行リクエストによりユーザ操作リクエストの送信が妨げられることを防げる。すなわち、ユーザ操作によるAPI実行リクエスト数だけに着目すると同時接続数の制限値を超過していない状況では、ユーザ操作に関係なく自動送信されるAPI実行リクエスト数が多くても、ユーザ操作によるAPI実行リクエストの送信を妨げずに済む。   Note that, as in steps S13 and S14, as long as the number of user operation requests does not exceed the upper limit N of the number of simultaneous connections, the acceptance of the user operation request is permitted, thereby preventing the transmission of the user operation request by the automatic execution request. I can prevent that. In other words, if only the number of API execution requests by the user operation is considered, in a situation where the limit value of the number of simultaneous connections is not exceeded, even if the number of API execution requests automatically transmitted regardless of the user operation, the API execution by the user operation is large. There is no need to prevent the request from being sent.

図8は、優先度制御の例を示すフローチャートである。以下、図8に示す処理をステップ番号に沿って説明する。以下に示す手順は、図7のステップS15に相当する。
(S21)優先度制御部130は、記憶部110に記憶されたリクエスト関連テーブル111を参照する。
FIG. 8 is a flowchart illustrating an example of priority control. In the following, the process illustrated in FIG. 8 will be described in order of step number. The procedure shown below corresponds to step S15 in FIG.
(S21) The priority control unit 130 refers to the request relation table 111 stored in the storage unit 110.

(S22)優先度制御部130は、記憶部110に蓄積されたリクエストを参照して、リクエスト関連テーブル111に登録されているユーザ操作リクエストを受信したか否かを判定する。リクエスト関連テーブル111に登録されているユーザ操作リクエストを受信した場合、優先度制御部130は、ステップS23に処理を進める。リクエスト関連テーブル111に登録されているユーザ操作リクエストを受信していない場合、優先度制御部130は、処理を終了する。   (S22) The priority control unit 130 refers to the requests accumulated in the storage unit 110 and determines whether or not a user operation request registered in the request relation table 111 has been received. When the user operation request registered in the request relation table 111 is received, the priority control unit 130 advances the process to step S23. When the user operation request registered in the request relation table 111 has not been received, the priority control unit 130 ends the process.

(S23)優先度制御部130は、ユーザ操作リクエストと該当のユーザ操作リクエストに関連する自動実行リクエストとを同一クライアントから受信した否かを判定する。両方のリクエストを同一クライアントから受信した場合、優先度制御部130は、ステップS24に処理を進める。ユーザ操作リクエストと当該ユーザ操作リクエストに関連する自動実行リクエストとを異なるクライアントから受信した場合、優先度制御部130は、処理を終了する。   (S23) The priority control unit 130 determines whether a user operation request and an automatic execution request related to the user operation request have been received from the same client. When both requests are received from the same client, the priority control unit 130 proceeds to step S24. When the user operation request and the automatic execution request related to the user operation request are received from different clients, the priority control unit 130 ends the process.

(S24)優先度制御部130は、該当の自動実行リクエストの優先度をユーザ操作リクエストよりも高くする。
こうして、リバースプロキシサーバ100は、ユーザ操作リクエストに関連する自動実行リクエストの優先度を当該ユーザ操作リクエストの優先度よりも高くする。これにより、リバースプロキシサーバ100は、自動実行リクエストを、当該自動実行リクエストに関連するユーザ操作リクエストよりも早くWebサーバ200に送信することができる。
(S24) The priority control unit 130 makes the priority of the corresponding automatic execution request higher than that of the user operation request.
In this way, the reverse proxy server 100 makes the priority of the automatic execution request related to the user operation request higher than the priority of the user operation request. Accordingly, the reverse proxy server 100 can transmit the automatic execution request to the Web server 200 earlier than the user operation request related to the automatic execution request.

なお、ステップS23のように、優先度制御部130は、自動実行リクエストの送信元が関連するユーザ操作リクエストの送信元と同じであるか否かを判定する。そして、優先度制御部130は、両送信元が同じである場合に、当該自動実行リクエストの優先度を既定の優先度よりも高い優先度に変更する。これにより、適切なリクエストに絞って、優先度の変更を行える。   Note that, as in step S23, the priority control unit 130 determines whether or not the transmission source of the automatic execution request is the same as the transmission source of the related user operation request. Then, when both transmission sources are the same, the priority control unit 130 changes the priority of the automatic execution request to a priority higher than a predetermined priority. As a result, priority can be changed by focusing on an appropriate request.

図9は、リクエストの優先度の変更例を示す図である。リバースプロキシサーバ100がクライアント300,400からリクエスト群113を受信し、記憶部110に蓄積している場合を考える。ここで、図中、“clientA”は、クライアント300の識別情報である。“clientB”は、クライアント400の識別情報である。   FIG. 9 is a diagram illustrating an example of changing the priority of a request. Consider a case where the reverse proxy server 100 receives the request group 113 from the clients 300 and 400 and stores it in the storage unit 110. Here, “clientA” in the figure is identification information of the client 300. “ClientB” is identification information of the client 400.

例えば、リクエスト群113は、クライアント300により送信されたリクエスト“https://aaa”を含む。優先度テーブル112に登録されているリクエスト“https://aaa”の優先度は“3”である。   For example, the request group 113 includes a request “https: // aaa” transmitted by the client 300. The priority of the request “https: // aaa” registered in the priority table 112 is “3”.

また、リクエスト群113は、クライアント300により送信されたリクエスト“https://xxx”を含む。優先度テーブル112に登録されているリクエスト“https://xxx”の優先度は“2”である。   The request group 113 includes a request “https: // xxx” transmitted by the client 300. The priority of the request “https: // xxx” registered in the priority table 112 is “2”.

また、リクエスト群113は、クライアント400により送信されたリクエスト“https://bbb”を含む。優先度テーブル112に登録されているリクエスト“https://bbb”の優先度は“3”である。   The request group 113 includes a request “https: // bbb” transmitted by the client 400. The priority of the request “https: // bbb” registered in the priority table 112 is “3”.

更に、リクエスト群113は、クライアント400により送信されたリクエスト“https://111”を含む。優先度テーブル112に登録されているリクエスト“https://111”の優先度は“1”である。   Further, the request group 113 includes a request “https: // 111” transmitted by the client 400. The priority of the request “https: // 111” registered in the priority table 112 is “1”.

優先度制御部130は、リクエスト関連テーブル111を参照して、リクエスト群113の中から相互に関連するリクエストの組を特定する。リクエスト関連テーブル111の例では、ユーザ操作リクエスト“https://xxx”と、自動実行リクエスト“https://aaa”との組が登録されている。また、ユーザ操作リクエスト“https://xxx”および自動実行リクエスト“https://aaa”は、同一のクライアント(クライアント300)により送信されたリクエストである。このため、優先度制御部130は、リクエスト群113において、自動実行リクエスト“https://aaa”の優先度を、ユーザ操作リクエスト“https://xxx”の優先度“2”よりも高くする。具体的には、優先度制御部130は、リクエスト群113における自動実行リクエスト“https”://aaa”の優先度を“1”に変更する。リクエスト群114は、自動実行リクエスト“https://aaa”の優先度を“1”に変更した結果を示している。通信処理部120は、変更後の優先度に応じた順序で、リクエスト群114に属する各リクエストをWebサーバ200に送信する。   The priority control unit 130 refers to the request relation table 111 and identifies a pair of requests that are mutually related from the request group 113. In the example of the request relation table 111, a set of a user operation request “https: // xxx” and an automatic execution request “https: /// aaa” is registered. The user operation request “https: // xxx” and the automatic execution request “https: // aaaa” are requests transmitted by the same client (client 300). Therefore, the priority control unit 130 sets the priority of the automatic execution request “https: // aaa” in the request group 113 higher than the priority “2” of the user operation request “https: // xxx”. . Specifically, the priority control unit 130 changes the priority of the automatic execution request “https”: // aaa ”in the request group 113 to“ 1. ”The request group 114 includes the automatic execution request“ https: // The result of changing the priority of “/ aaa” to “1.” The communication processing unit 120 transmits the requests belonging to the request group 114 to the Web server 200 in the order according to the changed priority. .

図10は、リクエストの送信例(その1)を示す図である。クライアント300,400の両方による同時接続数の上限値Nが“2”である場合を考える。なお、図中、クライアント300,400からリバースプロキシサーバ100へのリクエストと、リバースプロキシサーバ100からWebサーバ200へのリクエストとの対応が分かり易いように、便宜的に、両リクエストを共通の表記(“https://aaa”など)としている(他の図でも同様に表記することがある)。ただし、前述のように、リバースプロキシサーバ100は、クライアント300,400から受信したリクエストのURLのドメインを、バックエンドのWebサーバ200のドメインまたはIP(Internet Protocol)アドレスに変換して転送する。   FIG. 10 is a diagram illustrating a transmission example (part 1) of a request. Consider a case where the upper limit N of the number of simultaneous connections by both the clients 300 and 400 is “2”. In the figure, for the sake of convenience, both requests are represented in common notation (in order to make it easy to understand the correspondence between the requests from the clients 300, 400 to the reverse proxy server 100 and the requests from the reverse proxy server 100 to the Web server 200. ("Https: // aaa" etc.) (may be described similarly in other figures). However, as described above, the reverse proxy server 100 converts the URL domain of the request received from the clients 300 and 400 into the domain or IP (Internet Protocol) address of the back-end Web server 200 and transfers it.

あるタイミングで、リバースプロキシサーバ100は、クライアント300からリクエスト“https://aaa”、“https://xxx”を受信し、クライアント400からリクエスト“https://bbb”、“https://111”を受信する(ステップST11)。ステップST11の段階では、クライアント300,400の両方による同時接続数が上限値Nに達しているとする。また、ステップST11で受信したユーザ操作リクエストの数は“2”であり、同時接続数の上限値N以下である。   At a certain timing, the reverse proxy server 100 receives the requests “https: /// aaa” and “https: // xxx” from the client 300, and receives the requests “https: // bbb” and “https: //” from the client 400. 111 ″ is received (step ST11). In step ST11, it is assumed that the number of simultaneous connections by both clients 300 and 400 has reached the upper limit N. The number of user operation requests received in step ST11 is “2”, which is equal to or less than the upper limit N of the number of simultaneous connections.

この場合、リバースプロキシサーバ100は、リクエスト“https://aaa”、“https://xxx”、“https://bbb”、“https://111”を記憶部110に格納する。そして、図9で例示したように、リバースプロキシサーバ100は、クライアント300から送信されたリクエスト“https://aaa”、“https://xxx”の関連を検出する。このため、リバースプロキシサーバ100は、リクエスト“https://aaa”の優先度をリクエスト“https://xxx”の優先度よりも上げる。   In this case, the reverse proxy server 100 stores the requests “https: /// aaa”, “https: // xxx”, “https: // bbb”, and “https: // 111” in the storage unit 110. Then, as illustrated in FIG. 9, the reverse proxy server 100 detects the association between the requests “https: /// aaa” and “https: // xxx” transmitted from the client 300. For this reason, the reverse proxy server 100 increases the priority of the request “https: /// aaa” over the priority of the request “https: /// xxx”.

その後、リバースプロキシサーバ100は、クライアント300,400による同時接続数に空きができたことを検出する。すると、リバースプロキシサーバ100は、記憶部110に格納した各リクエストの送信順序を決定する。このとき、リバースプロキシサーバ100は、リクエスト“https://xxx”、“https://bbb”、“https://111”については優先度テーブル112の優先度を用い、“https://aaa”については変更後の優先度を用いる。   Thereafter, the reverse proxy server 100 detects that the number of simultaneous connections by the clients 300 and 400 has become free. Then, the reverse proxy server 100 determines the transmission order of each request stored in the storage unit 110. At this time, the reverse proxy server 100 uses the priorities in the priority table 112 for the requests “https: // xxx”, “https: // bbb”, and “https: // 111”, and “https: /// For aaa ″, the changed priority is used.

具体的には、リクエスト“https://xxx”の優先度は“2”である。リクエスト“https://bbb”の優先度は“3”である。リクエスト“https://111”の優先度は“1”である。リクエスト“https://aaa”の変更後の優先度は“1”である。このため、リバースプロキシサーバ100は、まずは、リクエスト“https://aaa”、“https://111”を、順番に、Webサーバ200に送信する(ステップST12)。その後、リバースプロキシサーバ100は、リクエスト“https://xxx”、“https://bbb”を、順番に、Webサーバ200に送信する(ステップST13)。   Specifically, the priority of the request “https: // xxx” is “2”. The priority of the request “https: // bbb” is “3”. The priority of the request “https: // 111” is “1”. The priority after changing the request “https: // aaa” is “1”. For this reason, the reverse proxy server 100 first transmits the requests “https: /// aaa” and “https: /// 111” to the Web server 200 in order (step ST12). Thereafter, the reverse proxy server 100 transmits the requests “https: /// xxx” and “https: // bbb” to the Web server 200 in order (step ST13).

こうして、リバースプロキシサーバ100は、あるタイミングにおいて、互いに関連性のあるユーザ操作リクエストと自動実行リクエストとを受信した場合に、自動実行リクエストの優先度をユーザ操作リクエストの優先度よりも上げる。これにより、リバースプロキシサーバ100は、ユーザ操作リクエストよりも先に、自動実行リクエストをWebサーバ200に送信することができる。   In this way, when the reverse proxy server 100 receives a user operation request and an automatic execution request that are related to each other at a certain timing, the reverse proxy server 100 raises the priority of the automatic execution request over the priority of the user operation request. Thereby, the reverse proxy server 100 can transmit the automatic execution request to the Web server 200 prior to the user operation request.

図11は、リクエストの送信例(その2)を示す図である。図11でも、クライアント300,400の両方による同時接続数の上限値Nが“2”である場合を考える。図11では、図10におけるリクエストを更に具体的に示している。   FIG. 11 is a diagram illustrating a transmission example (part 2) of a request. Also in FIG. 11, consider the case where the upper limit N of the number of simultaneous connections by both clients 300 and 400 is “2”. FIG. 11 shows the request in FIG. 10 more specifically.

ログ更新要求は、リクエスト“https://aaa”に対応する自動実行リクエストである。ログ更新要求は、Webサーバ200に対して、クライアント300のログを提供するためのリクエストである。例えば、Webサーバ200は、クライアント300により提供されたログを保持し、ログ取得要求に応じて、保持したログをクライアントに提供する。ログ更新要求に対して予め設定された優先度は“3”である。   The log update request is an automatic execution request corresponding to the request “https: /// aaa”. The log update request is a request for providing the log of the client 300 to the Web server 200. For example, the Web server 200 holds a log provided by the client 300 and provides the held log to the client in response to a log acquisition request. The priority set in advance for the log update request is “3”.

ログ取得要求は、リクエスト“https://xxx”に対応するユーザ操作リクエストである。ログ取得要求は、Webサーバ200に対してクライアント300に関するログの提供を要求するためのリクエストである。ログ取得要求に対して予め設定された優先度は“2”である。   The log acquisition request is a user operation request corresponding to the request “https: // xxx”. The log acquisition request is a request for requesting the Web server 200 to provide a log related to the client 300. The priority set in advance for the log acquisition request is “2”.

所定処理要求は、リクエスト“https://111”に対応する自動実行リクエストである。所定処理要求は、Webサーバ200に対して所定の処理の実行を要求するためのリクエストである。所定処理要求に対して予め設定された優先度は“1”である。   The predetermined processing request is an automatic execution request corresponding to the request “https: // 111”. The predetermined process request is a request for requesting the Web server 200 to execute a predetermined process. The priority set in advance for the predetermined processing request is “1”.

あるタイミングにおいて、リバースプロキシサーバ100は、ログ更新要求およびログ取得要求をクライアント300から受信し、所定処理要求をクライアント400から受信する(ステップST21)。なお、ステップST21の段階では、クライアント300,400の両方による同時接続数が上限値Nに達しているとする。また、ステップST21で受信したユーザ操作リクエストの数は“2”であり、同時接続数の上限値N以下である。   At a certain timing, the reverse proxy server 100 receives a log update request and a log acquisition request from the client 300, and receives a predetermined processing request from the client 400 (step ST21). It is assumed that the number of simultaneous connections by both clients 300 and 400 has reached the upper limit value N at the stage of step ST21. Further, the number of user operation requests received in step ST21 is “2”, which is equal to or less than the upper limit value N of the number of simultaneous connections.

この場合、リバースプロキシサーバ100は、ログ更新要求、ログ取得要求および所定処理要求を記憶部110に格納する。そして、図9で例示したように、リクエスト関連テーブル111に基づいて、ログ更新要求およびログ取得要求の関連を検出し、ログ更新要求の優先度をログ取得要求の優先度よりも上げる。   In this case, the reverse proxy server 100 stores the log update request, the log acquisition request, and the predetermined processing request in the storage unit 110. Then, as illustrated in FIG. 9, the relation between the log update request and the log acquisition request is detected based on the request relation table 111, and the priority of the log update request is raised higher than the priority of the log acquisition request.

その後、リバースプロキシサーバ100は、クライアント300,400による同時接続数に空きができたことを検出する。すると、リバースプロキシサーバ100は、ログ取得要求および所定処理要求については、優先度テーブル112に設定された優先度に従い、ログ更新要求については、変更後の優先度に従って、ログ更新要求、ログ取得要求および所定処理要求の送信順序を決定する。具体的には、ログ取得要求の優先度は“2”である。所定処理要求の優先度は“1”である。ログ更新要求の変更後の優先度は“1”である。このため、リバースプロキシサーバ100は、まずは、所定処理要求およびログ更新要求を、順番に、Webサーバ200に送信する(ステップST22)。その後、リバースプロキシサーバ100は、ログ取得要求をWebサーバ200に送信する(ステップST23)。   Thereafter, the reverse proxy server 100 detects that the number of simultaneous connections by the clients 300 and 400 has become free. Then, the reverse proxy server 100 follows the priority set in the priority table 112 for the log acquisition request and the predetermined processing request, and the log update request and the log acquisition request for the log update request according to the changed priority. The transmission order of the predetermined processing request is determined. Specifically, the priority of the log acquisition request is “2”. The priority of the predetermined processing request is “1”. The priority after changing the log update request is “1”. For this reason, the reverse proxy server 100 first transmits a predetermined processing request and a log update request to the Web server 200 in order (step ST22). Thereafter, the reverse proxy server 100 transmits a log acquisition request to the Web server 200 (step ST23).

こうして、リバースプロキシサーバ100は、ログ取得要求よりも前に、ログ更新要求をWebサーバ200に送信することができる。
図12は、リクエスト送信の比較例を示す図である。図12では、図11の例において、優先度テーブル112の優先度を変更せずに、リクエストの送信順序を決定する例を示す。ここで、図12の説明では、リバースプロキシサーバ100に代えて、リバースプロキシサーバ900を用いる。また、以下に示すログ更新要求に対して予め設定された優先度は“3”である。ログ取得要求に対して予め設定された優先度は“2”である。所定処理要求に対して予め設定された優先度は“1”である。
In this way, the reverse proxy server 100 can transmit a log update request to the Web server 200 before the log acquisition request.
FIG. 12 is a diagram illustrating a comparative example of request transmission. FIG. 12 illustrates an example in which the transmission order of requests is determined without changing the priority of the priority table 112 in the example of FIG. Here, in the description of FIG. 12, a reverse proxy server 900 is used instead of the reverse proxy server 100. The priority set in advance for the log update request shown below is “3”. The priority set in advance for the log acquisition request is “2”. The priority set in advance for the predetermined processing request is “1”.

あるタイミングにおいて、リバースプロキシサーバ900は、ログ更新要求およびログ取得要求をクライアント300から受信し、所定処理要求をクライアント400から受信する(ステップST31)。なお、ステップST31の段階では、クライアント300,400の両方による同時接続数が上限値Nに達しているとする。また、ステップST31で受信したユーザ操作リクエストの数は“2”であり、同時接続数の上限値N以下である。   At a certain timing, the reverse proxy server 900 receives a log update request and a log acquisition request from the client 300, and receives a predetermined processing request from the client 400 (step ST31). It is assumed that the number of simultaneous connections by both clients 300 and 400 has reached the upper limit value N at the stage of step ST31. The number of user operation requests received in step ST31 is “2”, which is equal to or less than the upper limit N of the number of simultaneous connections.

その後、リバースプロキシサーバ900は、クライアント300,400による同時接続数に空きができたことを検出する。すると、リバースプロキシサーバ900は、ログ更新要求、ログ取得要求および所定処理要求に対して予め定められた優先度に従って、ログ更新要求、ログ取得要求および所定処理要求の送信順序を決定する。具体的には、ログ更新要求の優先度は“3”である。ログ取得要求の優先度は“2”である。所定処理要求の優先度は“1”である。このため、リバースプロキシサーバ900は、まずは、所定処理要求およびログ取得要求を、順番に、Webサーバ200に送信する(ステップST32)。その後、リバースプロキシサーバ900は、ログ更新要求をWebサーバ200に送信する(ステップST33)。   Thereafter, the reverse proxy server 900 detects that the number of simultaneous connections by the clients 300 and 400 has become free. Then, the reverse proxy server 900 determines the transmission order of the log update request, the log acquisition request, and the predetermined processing request according to the priority determined in advance for the log update request, the log acquisition request, and the predetermined processing request. Specifically, the priority of the log update request is “3”. The priority of the log acquisition request is “2”. The priority of the predetermined processing request is “1”. For this reason, the reverse proxy server 900 first transmits a predetermined processing request and a log acquisition request to the Web server 200 in order (step ST32). Thereafter, the reverse proxy server 900 transmits a log update request to the Web server 200 (step ST33).

この場合、ログ更新要求は、ログ取得要求より後に、Webサーバ200に送信されることになる。すると、Webサーバ200によるログ取得要求に対するレスポンス(Webサーバ200により保持されるクライアント300のログを含む)には、ステップST33のログ更新要求によるログ更新の結果が反映されないことになる。すなわち、ログ取得要求に対して、最新のログを取得することが期待されるが、クライアント300は最新のログを取得できないことになり、期待される動作になっていない。しかも、クライアント300は、最新のログを取得しようとすると、Webサーバ200にログ取得要求を再送することになる。   In this case, the log update request is transmitted to the Web server 200 after the log acquisition request. Then, the response to the log acquisition request by the Web server 200 (including the log of the client 300 held by the Web server 200) does not reflect the result of the log update by the log update request in Step ST33. That is, it is expected that the latest log is acquired in response to the log acquisition request, but the client 300 cannot acquire the latest log, and is not in an expected operation. Moreover, when the client 300 tries to acquire the latest log, the client 300 retransmits the log acquisition request to the Web server 200.

そこで、リバースプロキシサーバ100は、図11で例示したように、リクエストの優先度を変更することで、ログ取得要求よりも先に、ログ更新要求をWebサーバ200に送信する。これにより、リバースプロキシサーバ100は、ログ取得要求およびログ更新要求を適切な順序で送信することができる。すなわち、Webサーバ200によるログ取得要求へのレスポンスに、ログ更新要求によるログ更新の結果が反映される。このため、クライアント300は、ログ取得要求に対して、最新のログを取得可能になる。   Therefore, as illustrated in FIG. 11, the reverse proxy server 100 changes the priority of the request to transmit a log update request to the Web server 200 before the log acquisition request. Thereby, the reverse proxy server 100 can transmit the log acquisition request and the log update request in an appropriate order. That is, the result of the log update by the log update request is reflected in the response to the log acquisition request by the Web server 200. Therefore, the client 300 can acquire the latest log in response to the log acquisition request.

こうして、Webサーバ200に対して期待される動作を実現できる可能性が高まる。すなわち、通常時は優先度の低いAPI実行リクエストでも、あるユーザ操作が行われたときは当該API実行リクエストを先に実行しないと期待する結果が返ってこない場合は、当該API実行リクエストの優先度を上げることで、期待しない結果が返ることを防げる。   In this way, the possibility of realizing the expected operation for the Web server 200 increases. In other words, even if an API execution request has a low priority at normal times, when a user operation is performed, if an expected result that the API execution request is not executed first is not returned, the priority of the API execution request is not returned. By raising, you can prevent unexpected results from being returned.

また、クライアント300により、Webサーバ200へログ取得要求を再送せずに済む。クライアント300によるリクエストの再送を抑えることで、リバースプロキシサーバ100、Webサーバ200およびクライアント300やネットワークの負荷を軽減できる利点もある。   Further, it is not necessary for the client 300 to retransmit the log acquisition request to the Web server 200. By suppressing the retransmission of the request by the client 300, there is an advantage that the load on the reverse proxy server 100, the Web server 200, the client 300, and the network can be reduced.

[第3の実施の形態]
次に、第3の実施の形態を説明する。前述の第2の実施の形態と相違する事項を主に説明し、共通する事項の説明を省略する。
[Third Embodiment]
Next, a third embodiment will be described. Items that differ from the second embodiment described above will be mainly described, and descriptions of common items will be omitted.

リバースプロキシサーバ100は、クライアント300,400から受信した複数のリクエストを1つのリクエストにまとめて、Webサーバ200に送信してもよい。このようにすると、Webサーバ200に対する同時接続数を減らすことができる。   The reverse proxy server 100 may combine a plurality of requests received from the clients 300 and 400 into one request and transmit the requests to the Web server 200. In this way, the number of simultaneous connections to the Web server 200 can be reduced.

図13は、第3の実施の形態のマルチパートのリクエストの例を示す図である。例えば、リバースプロキシサーバ100は、リクエストReq1,Req2を、マルチパートのリクエスト500にまとめる。ここで、一例として、リクエストReq1は、リクエスト“https://aaa”に相当する自動実行リクエストである。また、リクエストReq2は、リクエスト“https://111”に相当する自動実行リクエストである。   FIG. 13 is a diagram illustrating an example of a multipart request according to the third embodiment. For example, the reverse proxy server 100 collects the requests Req1 and Req2 into a multipart request 500. Here, as an example, the request Req1 is an automatic execution request corresponding to the request “https: /// aaa”. The request Req2 is an automatic execution request corresponding to the request “https: // 111”.

1つの方法として、例えば、リクエスト500のヘッダ部501に、複数のリクエストをひとまとめにしたことを示す識別情報を設定し、リクエスト500のボディ部502に、リクエストReq1,Req2の内容を挿入することが考えられる。識別情報としては、例えば、ヘッダ部501のContent−Typeヘッダにおける“multipart”が考えられる。このように、リバースプロキシサーバ100は、複数のリクエストからマルチパートの1つのリクエストを作成して、Webサーバ200に送信する。マルチパートのリクエストの作成方法には、特開2005−322222号公報も参考にすることができる。   As one method, for example, identification information indicating that a plurality of requests are grouped together is set in the header portion 501 of the request 500, and the contents of the requests Req1 and Req2 are inserted into the body portion 502 of the request 500. Conceivable. As the identification information, for example, “multipart” in the Content-Type header of the header section 501 can be considered. As described above, the reverse proxy server 100 creates one multipart request from a plurality of requests and transmits the request to the Web server 200. Japanese Patent Laid-Open No. 2005-322222 can also be referred to for a method for creating a multi-part request.

Webサーバ200は、マルチパートのリクエスト500を検出すると、ボディ部502におけるリクエストReq1,Req2を分離して処理する。そして、Webサーバ200は、リクエストReq1,Req2に対する処理結果をひとまとめにしたマルチパートのレスポンスを生成し、リバースプロキシサーバ100に送信する。   When detecting the multipart request 500, the Web server 200 separates and processes the requests Req1 and Req2 in the body portion 502. Then, the Web server 200 generates a multipart response in which the processing results for the requests Req1 and Req2 are collected, and transmits the response to the reverse proxy server 100.

リバースプロキシサーバ100は、Webサーバ200から受信したマルチパートのレスポンスからリクエストReq1,Req2に対応する2つのレスポンスを抽出し、クライアント300,400に送信する。リバースプロキシサーバ100は、抽出したレスポンスを、リクエスト送信元のクライアントに適切に送信可能にするため、リクエスト送信元管理テーブルを保持する。   The reverse proxy server 100 extracts two responses corresponding to the requests Req1 and Req2 from the multipart response received from the Web server 200, and transmits them to the clients 300 and 400. The reverse proxy server 100 holds a request transmission source management table so that the extracted response can be appropriately transmitted to the request transmission source client.

図14は、リクエスト送信元管理テーブルの例を示す図である。リクエスト送信元管理テーブル115は、記憶部110に格納される。リクエスト送信元管理テーブル115は、まとめられたリクエストの組毎に、通信処理部120により作成される。リクエスト送信元管理テーブル115は、リクエストおよび送信元の項目を含む。   FIG. 14 is a diagram illustrating an example of a request transmission source management table. The request transmission source management table 115 is stored in the storage unit 110. The request transmission source management table 115 is created by the communication processing unit 120 for each grouped request. The request transmission source management table 115 includes items of requests and transmission sources.

リクエストの項目には、リクエストの種別を示すURLが登録される。送信元の項目には、クライアントの識別情報が登録される。クライアントの識別情報は、IPアドレスなどのアドレス情報でもよい。   In the request item, a URL indicating the type of request is registered. Client identification information is registered in the transmission source item. The client identification information may be address information such as an IP address.

例えば、リクエスト送信元管理テーブル115には、リクエストが“https://aaa”、送信元が“clientA”というレコードが登録される。このレコードは、マルチパートのリクエスト要素のうち、URL“https://aaa”のリクエストの送信元が“clientA”で示されるクライアント300であることを示す。   For example, in the request transmission source management table 115, a record that the request is “https: // aaa” and the transmission source is “clientA” is registered. This record indicates that, among the multi-part request elements, the transmission source of the request of URL “https: // aaa” is the client 300 indicated by “clientA”.

次に、第3の実施の形態におけるリバースプロキシサーバ100の処理手順を説明する。
図15は、リバースプロキシサーバの処理例を示すフローチャートである。以下、図15に示す処理をステップ番号に沿って説明する。
Next, the processing procedure of the reverse proxy server 100 in the third embodiment will be described.
FIG. 15 is a flowchart illustrating a processing example of the reverse proxy server. In the following, the process illustrated in FIG. 15 will be described in order of step number.

(S31)通信処理部120は、クライアント300,400から受信したリクエストを記憶部110に蓄積し、蓄積したリクエストの数が、同時接続数の上限値Nよりも大きいか否かを判定する。蓄積したリクエストの数が上限値Nよりも大きい場合、通信処理部120は、ステップS33に処理を進める。蓄積したリクエストの数が上限値N以下の場合、通信処理部120は、ステップS32に処理を進める。   (S31) The communication processing unit 120 accumulates the requests received from the clients 300 and 400 in the storage unit 110, and determines whether or not the accumulated number of requests is larger than the upper limit N of the number of simultaneous connections. If the number of accumulated requests is greater than the upper limit value N, the communication processing unit 120 proceeds to step S33. When the number of accumulated requests is equal to or less than the upper limit value N, the communication processing unit 120 advances the processing to step S32.

(S32)通信処理部120は、全てのリクエストをWebサーバ200に送信する。そして、通信処理部120は、処理を終了する。
(S33)通信処理部120は、記憶部110に蓄積されたリクエストのうち、ユーザ操作リクエストの数が同時接続数の上限値N以下であるか否かを判定する。ユーザ操作リクエストの数が上限値N以下である場合、通信処理部120は、ステップS35に処理を進める。ユーザ操作リクエストの数が上限値Nよりも大きい場合、通信処理部120は、ステップS34に処理を進める。
(S32) The communication processing unit 120 transmits all requests to the Web server 200. Then, the communication processing unit 120 ends the process.
(S33) The communication processing unit 120 determines whether or not the number of user operation requests among the requests accumulated in the storage unit 110 is equal to or less than the upper limit N of the number of simultaneous connections. If the number of user operation requests is equal to or less than the upper limit value N, the communication processing unit 120 proceeds to step S35. When the number of user operation requests is larger than the upper limit value N, the communication processing unit 120 advances the processing to step S34.

(S34)通信処理部120は、上限値Nを超過した分のユーザ操作リクエストの受け付けを拒否する(蓄積されるユーザ操作リクエストの数の上限も上限値Nとなる)。例えば、通信処理部120は、上限値Nを超過してユーザ操作リクエストが送信されたことを、当該ユーザ操作リクエストの送信元のクライアント300またはクライアント400に通知し、超過した分のユーザ操作リクエストを破棄する。そして、通信処理部120は、ステップS35に処理を進める。   (S34) The communication processing unit 120 rejects acceptance of user operation requests that exceed the upper limit value N (the upper limit of the number of accumulated user operation requests is also the upper limit value N). For example, the communication processing unit 120 notifies the client 300 or the client 400 that has transmitted the user operation request that the user operation request has been transmitted exceeding the upper limit value N, and the user operation request for the excess is transmitted. Discard. And the communication process part 120 advances a process to step S35.

(S35)優先度制御部130は、蓄積したリクエストに対する優先度制御を行う。優先度制御の処理手順は、図8で例示した手順と同様である。
(S36)通信処理部120は、ユーザ操作リクエストよりも高優先度の自動実行リクエストが複数あるか否かを判定する。ユーザ操作リクエストよりも高優先度の自動実行リクエストが複数ある場合、通信処理部120は、ステップS37に処理を進める。ユーザ操作リクエストよりも高優先度の自動実行リクエストが複数ない(すなわち、1つの)場合、通信処理部120は、ステップS39に処理を進める。
(S35) The priority control unit 130 performs priority control on the accumulated requests. The processing procedure of priority control is the same as the procedure illustrated in FIG.
(S36) The communication processing unit 120 determines whether there are a plurality of automatic execution requests having higher priority than the user operation request. If there are a plurality of automatic execution requests with higher priority than the user operation request, the communication processing unit 120 advances the processing to step S37. If there are not a plurality of automatic execution requests with higher priority than the user operation request (that is, one), the communication processing unit 120 advances the processing to step S39.

(S37)通信処理部120は、ユーザ操作リクエストよりも高優先度の複数の自動実行リクエストを含む1つのリクエスト(マルチパートのリクエスト)を生成する。このとき、通信処理部120は、まとめたリクエストの組に対して、リクエスト送信元管理テーブル115を生成し、記憶部110に格納する。   (S37) The communication processing unit 120 generates one request (multipart request) including a plurality of automatic execution requests with higher priority than the user operation request. At this time, the communication processing unit 120 generates a request transmission source management table 115 for the grouped requests, and stores the request transmission source management table 115 in the storage unit 110.

(S38)通信処理部120は、生成したリクエストをWebサーバ200に送信する。そして、通信処理部120は、ステップS40に処理を進める。
(S39)通信処理部120は、ユーザ操作リクエストよりも高優先度の自動実行リクエストをWebサーバ200に送信する。そして、通信処理部120は、ステップS40に処理を進める。
(S38) The communication processing unit 120 transmits the generated request to the Web server 200. And the communication process part 120 advances a process to step S40.
(S39) The communication processing unit 120 transmits an automatic execution request having a higher priority than the user operation request to the Web server 200. And the communication process part 120 advances a process to step S40.

(S40)通信処理部120は、ユーザ操作リクエストをWebサーバ200に送信する。
(S41)通信処理部120は、ユーザ操作リクエストよりも低優先度の自動実行リクエストをWebサーバ200に送信する。
(S40) The communication processing unit 120 transmits a user operation request to the Web server 200.
(S41) The communication processing unit 120 transmits an automatic execution request having a lower priority than the user operation request to the Web server 200.

このように、通信処理部120は、ユーザ操作リクエストの優先度(第3の優先度)よりも高い優先度である自動実行リクエスト(第3のリクエスト)と当該ユーザ操作リクエストに関連する自動実行リクエスト(第2のリクエスト)とを含むマルチパートのリクエスト(第4のリクエスト)を生成する。そして、通信処理部120は、ユーザ操作リクエストの優先度(第3の優先度)よりも高い優先度で、生成したマルチパートのリクエストをWebサーバ200に送信する。   As described above, the communication processing unit 120 includes an automatic execution request (third request) having a higher priority than the priority (third priority) of the user operation request and an automatic execution request related to the user operation request. A multipart request (fourth request) including (second request) is generated. Then, the communication processing unit 120 transmits the generated multipart request to the Web server 200 with a higher priority than the priority (third priority) of the user operation request.

図16は、通信例(その1)を示す図である。図16(A)は、リバースプロキシサーバ100によるWebサーバ200へのリクエストの送信例を示す。クライアント300,400の両方による同時接続数の上限値Nが“2”である場合を考える。   FIG. 16 is a diagram illustrating a communication example (part 1). FIG. 16A shows an example of transmission of a request to the Web server 200 by the reverse proxy server 100. Consider a case where the upper limit N of the number of simultaneous connections by both the clients 300 and 400 is “2”.

あるタイミングでリバースプロキシサーバ100は、クライアント300からリクエスト“https://aaa”、“https://xxx”を受信し、クライアント400からリクエスト“https://bbb”、“https://111”を受信する(ステップST41)。ステップST41の段階では、クライアント300,400の両方による同時接続数が上限値Nに達しているとする。また、ステップST41で受信したユーザ操作リクエストの数は“2”であり、同時接続数の上限値N以下である。   At a certain timing, the reverse proxy server 100 receives requests “https: /// aaa” and “https: // xxx” from the client 300, and requests “https: // bbb” and “https: /// 111” from the client 400. "Is received (step ST41). In step ST41, it is assumed that the number of simultaneous connections by both clients 300 and 400 has reached the upper limit N. The number of user operation requests received in step ST41 is “2”, which is equal to or less than the upper limit N of the number of simultaneous connections.

この場合、リバースプロキシサーバ100は、受信した4つのリクエストを記憶部110に格納する。そして、図9で例示したように、リクエスト“https://aaa”、“https://xxx”の関連を検出し、リクエスト“https://aaa”の優先度をリクエスト“https://xxx”の優先度よりも上げる。   In this case, the reverse proxy server 100 stores the received four requests in the storage unit 110. Then, as illustrated in FIG. 9, the association of the requests “https: /// aaa” and “https: // xxx” is detected, and the priority of the request “https: /// aaa” is set to the request “https: // xxx ″ higher than the priority.

すると、ユーザ操作リクエスト“https://xxx”よりも優先度の高い2つの自動実行リクエスト“https://aaa”、“https://111”が存在することになる。このため、リバースプロキシサーバ100は、これら2つの自動実行リクエスト“https://aaa”、“https://111”を1つにまとめたマルチパートのリクエストを生成する。そして、クライアント300,400による同時接続数に空きができると、生成したマルチパートのリクエスト、および、ユーザ操作リクエスト“https://xxx”を、順番に、Webサーバ200に送信する(ステップST42)。このとき、リバースプロキシサーバ100は、ひとまとめにしたリクエスト“https://aaa”、“https://111”の組に対して、リクエスト送信元管理テーブル115を生成し、記憶部110に格納する。その後、リバースプロキシサーバ100は、自動実行リクエスト“https://bbb”を、Webサーバ200に送信する(ステップST43)。   Then, two automatic execution requests “https: // aaaa” and “https: // 111” having higher priority than the user operation request “https: // xxx” exist. For this reason, the reverse proxy server 100 generates a multipart request in which these two automatic execution requests “https: /// aaa” and “https: // 111” are combined into one. When the number of simultaneous connections by the clients 300 and 400 becomes available, the generated multipart request and the user operation request “https: // xxx” are sequentially transmitted to the Web server 200 (step ST42). . At this time, the reverse proxy server 100 generates a request transmission source management table 115 for the group of requests “https: /// aaa” and “https: // 111” collectively and stores them in the storage unit 110. . Thereafter, the reverse proxy server 100 transmits an automatic execution request “https: // bbb” to the Web server 200 (step ST43).

図16(B)は、リバースプロキシサーバ100によるレスポンスの送信例(特に、マルチパートのリクエストに対するレスポンスの送信例)を示す。リバースプロキシサーバ100は、マルチパートのリクエストに対するマルチパートのレスポンスをWebサーバ200から受信する(ステップST44)。すると、リバースプロキシサーバ100は、当該レスポンスからリクエスト“https://aaa”および“https://111”それぞれに対応する2つのレスポンスを抽出する。そして、リバースプロキシサーバ100は、記憶部110に記憶されたリクエスト送信元管理テーブル115を参照して、抽出したレスポンスに対するリクエスト送信元を特定する。リバースプロキシサーバ100は、特定したリクエスト送信元のクライアントに当該レスポンスを、送信する(ステップST45)。具体的には、リバースプロキシサーバ100は、“https://aaa”に対応するレスポンスをクライアント300に送信する。また、リバースプロキシサーバ100は、“https://111”に対応するレスポンスをクライアント400に送信する。   FIG. 16B shows a transmission example of a response by the reverse proxy server 100 (particularly, a transmission example of a response to a multipart request). The reverse proxy server 100 receives a multipart response to the multipart request from the Web server 200 (step ST44). Then, the reverse proxy server 100 extracts two responses corresponding to each of the requests “https: /// aaa” and “https: /// 111” from the response. Then, the reverse proxy server 100 refers to the request transmission source management table 115 stored in the storage unit 110 and identifies the request transmission source for the extracted response. The reverse proxy server 100 transmits the response to the identified request transmission source client (step ST45). Specifically, the reverse proxy server 100 transmits a response corresponding to “https: /// aaa” to the client 300. Further, the reverse proxy server 100 transmits a response corresponding to “https: // 111” to the client 400.

このように、リバースプロキシサーバ100は、ユーザ操作リクエストよりも優先度の高い2つの自動実行リクエストをまとめることで、ユーザ操作リクエストの送信タイミングを早めることもできる。   Thus, the reverse proxy server 100 can also advance the transmission timing of the user operation request by collecting two automatic execution requests having a higher priority than the user operation request.

図17は、通信例(その2)を示す図である。第3の実施の形態では、リクエスト送信元管理テーブル115によりひとまとめにしたリクエストの送信元を管理する例を示したが、リバースプロキシサーバ100は、他の方法によりリクエストの送信元を管理してもよい。例えば、リバースプロキシサーバ100は、ひとまとめにしたリクエストに対して、クライアント300,400それぞれの識別情報を付加してもよい。この場合、Webサーバ200は、レスポンス内に、同識別情報を付加し、クライアント300向けのレスポンス部分であるか、クライアント400向けのレスポンス部分であるかを識別可能にする。   FIG. 17 is a diagram illustrating a communication example (2). In the third embodiment, an example is shown in which the request transmission sources managed together by the request transmission source management table 115 are managed. However, the reverse proxy server 100 may manage the request transmission sources by other methods. Good. For example, the reverse proxy server 100 may add identification information of each of the clients 300 and 400 to the combined request. In this case, the Web server 200 adds the identification information in the response so that it can be identified whether the response part is for the client 300 or the response part for the client 400.

すなわち、あるタイミングでリバースプロキシサーバ100は、クライアント300からリクエスト“https://aaa”、“https://xxx”を受信し、クライアント400からリクエスト“https://bbb”、“https://111”を受信する(ステップST51)。ステップST51の段階では、クライアント300,400の両方による同時接続数が上限値Nに達しているとする。また、ステップST51で受信したユーザ操作リクエストの数は“2”であり、同時接続数の上限値N以下である。   That is, at a certain timing, the reverse proxy server 100 receives the requests “https: /// aaa” and “https: // xxx” from the client 300 and receives the requests “https: // bbb” and “https: //” from the client 400. / 111 "is received (step ST51). In step ST51, it is assumed that the number of simultaneous connections by both clients 300 and 400 has reached the upper limit N. The number of user operation requests received in step ST51 is “2”, which is equal to or less than the upper limit N of the number of simultaneous connections.

この場合、リバースプロキシサーバ100は、受信した4つのリクエストを記憶部110に格納する。そして、図9で例示したように、リクエスト“https://aaa”、“https://xxx”の関連を検出し、リクエスト“https://aaa”の優先度をリクエスト“https://xxx”の優先度よりも上げる。   In this case, the reverse proxy server 100 stores the received four requests in the storage unit 110. Then, as illustrated in FIG. 9, the association of the requests “https: /// aaa” and “https: // xxx” is detected, and the priority of the request “https: /// aaa” is set to the request “https: // xxx ″ higher than the priority.

すると、ユーザ操作リクエスト“https://xxx”よりも優先度の高い2つの自動実行リクエスト“https://aaa”、“https://111”が存在することになる。このため、リバースプロキシサーバ100は、これら2つの自動実行リクエスト“https://aaa”、“https://111”を1つにまとめたマルチパートのリクエストを生成する。このとき、リバースプロキシサーバ100は、マルチパートのリクエストのうち、リクエスト“https://aaa”の部分にクライアント300の識別情報“clientA”を付加する。また、リバースプロキシサーバ100は、マルチパートのリクエストのうち、リクエスト“https://111”の部分にクライアント400の識別情報“clientB”を付加する。そして、クライアント300,400による同時接続数に空きができると、生成したリクエスト、および、ユーザ操作リクエスト“https://xxx”を、順番に、Webサーバ200に送信する(ステップST52)。その後、リバースプロキシサーバ100は、自動実行リクエスト“https://bbb”を、Webサーバ200に送信する(ステップST53)。   Then, two automatic execution requests “https: // aaaa” and “https: // 111” having higher priority than the user operation request “https: // xxx” exist. For this reason, the reverse proxy server 100 generates a multipart request in which these two automatic execution requests “https: /// aaa” and “https: // 111” are combined into one. At this time, the reverse proxy server 100 adds the identification information “clientA” of the client 300 to the request “https: /// aaa” portion of the multipart request. Further, the reverse proxy server 100 adds the identification information “clientB” of the client 400 to the request “https: // 111” portion of the multipart request. When the number of simultaneous connections by the clients 300 and 400 becomes available, the generated request and the user operation request “https: // xxx” are sequentially transmitted to the Web server 200 (step ST52). Thereafter, the reverse proxy server 100 transmits an automatic execution request “https: // bbb” to the Web server 200 (step ST53).

図17(B)は、リバースプロキシサーバ100によるレスポンスの送信例(特に、マルチパートのリクエストに対するレスポンスの送信例)を示す。リバースプロキシサーバ100は、マルチパートのリクエストに対するマルチパートのレスポンスをWebサーバ200から受信する(ステップST54)。すると、リバースプロキシサーバ100は、当該レスポンスからリクエスト“https://aaa”および“https://111”それぞれに対応する2つのレスポンスを抽出する。このとき、リバースプロキシサーバ100は、各レスポンス部分に付加されたクライアントの識別情報を参照して、各レスポンスの送信先を特定し、特定した送信先にレスポンスを送信する(ステップST55)。具体的には、リバースプロキシサーバ100は、“https://aaa”に対応するレスポンスをクライアント300に送信する。また、リバースプロキシサーバ100は、“https://111”に対応するレスポンスをクライアント400に送信する。   FIG. 17B shows a transmission example of a response by the reverse proxy server 100 (particularly, a transmission example of a response to a multipart request). The reverse proxy server 100 receives a multipart response to the multipart request from the Web server 200 (step ST54). Then, the reverse proxy server 100 extracts two responses corresponding to each of the requests “https: /// aaa” and “https: /// 111” from the response. At this time, the reverse proxy server 100 refers to the client identification information added to each response part, identifies the transmission destination of each response, and transmits the response to the identified transmission destination (step ST55). Specifically, the reverse proxy server 100 transmits a response corresponding to “https: /// aaa” to the client 300. Further, the reverse proxy server 100 transmits a response corresponding to “https: // 111” to the client 400.

このように、リバースプロキシサーバ100は、図17で例示した方法によって、ユーザ操作リクエストよりも優先度の高い2つの自動実行リクエストをまとめてもよい。この場合も、図16と同様に、ユーザ操作リクエストの送信タイミングを早めることができる。ここで、第3の実施の形態の例では、2つの自動実行リクエストを1つのリクエストにまとめる例を示したが、リバースプロキシサーバ100は、3以上の自動実行リクエストを1つのリクエストにまとめてもよい。   As described above, the reverse proxy server 100 may collect two automatic execution requests having a higher priority than the user operation request by the method illustrated in FIG. Also in this case, the transmission timing of the user operation request can be advanced as in FIG. Here, in the example of the third embodiment, an example in which two automatic execution requests are combined into one request is shown. However, the reverse proxy server 100 may combine three or more automatic execution requests into one request. Good.

なお、第1の実施の形態の情報処理は、処理部1bにプログラムを実行させることで実現できる。また、第2の実施の形態の情報処理は、プロセッサ101にプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体13に記録できる。   The information processing according to the first embodiment can be realized by causing the processing unit 1b to execute a program. The information processing according to the second embodiment can be realized by causing the processor 101 to execute a program. The program can be recorded on a computer-readable recording medium 13.

例えば、プログラムを記録した記録媒体13を配布することで、プログラムを流通させることができる。また、プログラムを他のコンピュータに格納しておき、ネットワーク経由でプログラムを配布してもよい。コンピュータは、例えば、記録媒体13に記録されたプログラムまたは他のコンピュータから受信したプログラムを、RAM102やHDD103などの記憶装置に格納し(インストールし)、当該記憶装置からプログラムを読み込んで実行してもよい。   For example, the program can be distributed by distributing the recording medium 13 on which the program is recorded. Alternatively, the program may be stored in another computer and distributed via a network. For example, the computer stores (installs) a program recorded in the recording medium 13 or a program received from another computer in a storage device such as the RAM 102 or the HDD 103, and reads and executes the program from the storage device. Good.

1 送信制御装置
1a 記憶部
1b 処理部
2 情報処理装置
3,4 端末装置
5 リクエスト関連情報
6 優先度情報
DESCRIPTION OF SYMBOLS 1 Transmission control apparatus 1a Memory | storage part 1b Processing part 2 Information processing apparatus 3, 4 Terminal apparatus 5 Request related information 6 Priority information

Claims (13)

処理の実行に関する第1のリクエストを受信すると、複数のリクエスト間の関連性に関する情報およびリクエストの送信に関する優先度を該リクエストに対応付けて記憶する記憶部を参照して、前記第1のリクエストに関連する第2のリクエストと、前記第2のリクエストに対応する第1の優先度とを特定し、
受信したリクエストに応じた処理を実行する情報処理装置に、前記第1の優先度よりも高い第2の優先度で前記第2のリクエストを送信する、
処理をコンピュータに実行させることを特徴とする送信制御プログラム。
When the first request related to the execution of the process is received, the storage unit that stores the information related to the relationship between the plurality of requests and the priority related to the transmission of the request in association with the request is referred to the first request. Identifying an associated second request and a first priority corresponding to the second request;
Transmitting the second request with a second priority higher than the first priority to an information processing apparatus that executes processing according to the received request;
A transmission control program for causing a computer to execute processing.
前記第1の優先度は、前記第1のリクエストに対応する第3の優先度よりも低い優先度であり、
前記第2の優先度は、前記第3の優先度よりも高い優先度である、
ことを特徴とする請求項1記載の送信制御プログラム。
The first priority is a lower priority than a third priority corresponding to the first request;
The second priority is higher than the third priority.
The transmission control program according to claim 1.
前記第3の優先度よりも高い優先度である第3のリクエストと前記第2のリクエストとを含む第4のリクエストを生成し、前記第3の優先度よりも高い優先度で前記第4のリクエストを前記情報処理装置に送信する、ことを特徴とする請求項2記載の送信制御プログラム。   Generating a fourth request including a third request having a higher priority than the third priority and the second request, and generating the fourth request with a priority higher than the third priority. The transmission control program according to claim 2, wherein the request is transmitted to the information processing apparatus. 前記第1のリクエストを受信すると、前記情報処理装置に対する応答待ちリクエスト数が上限値を超過するか否かを判定し、超過する場合に、前記第1のリクエストを前記記憶部に保存し、前記第1のリクエストに関連する前記第2のリクエストを特定し、優先度に応じて前記第1のリクエストおよび前記第2のリクエストの送信順序を決定する、ことを特徴とする請求項1乃至3の何れか1項に記載の送信制御プログラム。   When receiving the first request, it is determined whether or not the number of requests waiting for a response to the information processing device exceeds an upper limit, and if it exceeds, the first request is stored in the storage unit, The second request related to the first request is specified, and the transmission order of the first request and the second request is determined according to the priority. The transmission control program according to any one of claims. 前記第2のリクエストの送信元が前記第1のリクエストの送信元と同じであるか否かを判定し、同じである場合に、前記第2のリクエストの優先度を前記第1の優先度から前記第2の優先度に変更する、ことを特徴とする請求項2乃至4の何れか1項に記載の送信制御プログラム。   It is determined whether or not the transmission source of the second request is the same as the transmission source of the first request. If the transmission source is the same, the priority of the second request is changed from the first priority. The transmission control program according to any one of claims 2 to 4, wherein the transmission priority is changed to the second priority. 前記第2のリクエストは、前記情報処理装置に所定の情報を提供するためのリクエストであり、
前記第1のリクエストは、前記情報処理装置に提供された前記所定の情報を取得するためのリクエストである、
ことを特徴とする請求項1乃至5の何れか1項に記載の送信制御プログラム。
The second request is a request for providing predetermined information to the information processing apparatus,
The first request is a request for acquiring the predetermined information provided to the information processing apparatus.
The transmission control program according to any one of claims 1 to 5.
前記第1のリクエストは、前記第1のリクエストの送信元の装置に対するユーザの操作に応じて送信されたリクエストであり、
前記第2のリクエストは、前記送信元の装置によりユーザの操作に依らずに送信されたリクエストである、
ことを特徴とする請求項1乃至6の何れか1項に記載の送信制御プログラム。
The first request is a request transmitted in response to a user operation on a device that is a transmission source of the first request,
The second request is a request transmitted by the transmission source device without depending on a user operation.
The transmission control program according to any one of claims 1 to 6.
前記記憶部に記憶された前記第1のリクエストに対応する優先度で、前記第1のリクエストを送信する、ことを特徴とする請求項1乃至7の何れか1項に記載の送信制御プログラム。   The transmission control program according to any one of claims 1 to 7, wherein the first request is transmitted with a priority corresponding to the first request stored in the storage unit. 複数のリクエスト間の関連性に関する情報およびリクエストの送信に関する優先度を該リクエストに対応付けて記憶する記憶部と、
処理の実行に関する第1のリクエストを受信すると、前記記憶部を参照して、前記第1のリクエストに関連する第2のリクエストと、前記第2のリクエストに対応する第1の優先度とを特定し、受信したリクエストに応じた処理を実行する情報処理装置に、前記第1の優先度よりも高い第2の優先度で前記第2のリクエストを送信する処理部と、
を有することを特徴とする送信制御装置。
A storage unit that stores information relating to the relationship between a plurality of requests and priority related to transmission of the request in association with the request;
When the first request related to the execution of the process is received, the second request related to the first request and the first priority corresponding to the second request are identified with reference to the storage unit And a processing unit that transmits the second request with a second priority higher than the first priority to an information processing apparatus that executes processing according to the received request;
A transmission control apparatus comprising:
コンピュータが、
処理の実行に関する第1のリクエストを受信すると、複数のリクエスト間の関連性に関する情報およびリクエストの送信に関する優先度を該リクエストに対応付けて記憶する記憶部を参照して、前記第1のリクエストに関連する第2のリクエストと、前記第2のリクエストに対応する第1の優先度とを特定し、
受信したリクエストに応じた処理を実行する情報処理装置に、前記第1の優先度よりも高い第2の優先度で前記第2のリクエストを送信する、
ことを特徴とする送信制御方法。
Computer
When the first request related to the execution of the process is received, the storage unit that stores the information related to the relationship between the plurality of requests and the priority related to the transmission of the request in association with the request is referred to the first request. Identifying an associated second request and a first priority corresponding to the second request;
Transmitting the second request with a second priority higher than the first priority to an information processing apparatus that executes processing according to the received request;
The transmission control method characterized by the above-mentioned.
送信に関する優先度が対応付けられたリクエストを情報処理装置に送信する送信制御プログラムにおいて、
処理の実行に関する特定のリクエストを受信すると、複数のリクエスト間の関連性に関する情報を記憶する記憶部を参照して、受信した前記リクエストに関連する他のリクエストを特定し、
特定した前記他のリクエストを前記情報処理装置に送信する優先度を、前記他のリクエストに対応付けられた優先度よりも高める制御を実行する、
処理をコンピュータに実行させることを特徴とする送信制御プログラム。
In a transmission control program for transmitting a request associated with a transmission priority to an information processing device,
Upon receipt of a specific request related to the execution of the process, referring to a storage unit that stores information related to the relationship between a plurality of requests, identify other requests related to the received request,
Executing a control for raising the priority of transmitting the specified other request to the information processing device, higher than the priority associated with the other request;
A transmission control program for causing a computer to execute processing.
送信に関する優先度が対応付けられたリクエストを情報処理装置に送信する送信制御装置において、
複数のリクエスト間の関連性に関する情報を記憶する記憶部と、
処理の実行に関する特定のリクエストを受信すると、前記記憶部を参照して、受信した前記リクエストに関連する他のリクエストを特定し、特定した前記他のリクエストを前記情報処理装置に送信する優先度を、前記他のリクエストに対応付けられた優先度よりも高める制御を実行する処理部と、
を有することを特徴とする送信制御装置。
In a transmission control device that transmits a request associated with a transmission priority to an information processing device,
A storage unit for storing information related to the relationship between a plurality of requests;
When receiving a specific request related to the execution of the process, the storage unit is referred to, the other request related to the received request is specified, and the priority for transmitting the specified other request to the information processing device is set. A processing unit that executes control higher than the priority associated with the other request;
A transmission control apparatus comprising:
送信に関する優先度が対応付けられたリクエストを情報処理装置に送信する送信制御方法において、コンピュータが、
処理の実行に関する特定のリクエストを受信すると、複数のリクエスト間の関連性に関する情報を記憶する記憶部を参照して、受信した前記リクエストに関連する他のリクエストを特定し、
特定した前記他のリクエストを前記情報処理装置に送信する優先度を、前記他のリクエストに対応付けられた優先度よりも高める制御を実行する、
ことを特徴とする送信制御方法。
In a transmission control method for transmitting a request associated with a priority related to transmission to an information processing apparatus,
Upon receipt of a specific request related to the execution of the process, referring to a storage unit that stores information related to the relationship between a plurality of requests, identify other requests related to the received request,
Executing a control for raising the priority of transmitting the specified other request to the information processing device, higher than the priority associated with the other request;
The transmission control method characterized by the above-mentioned.
JP2017161227A 2017-08-24 2017-08-24 Transmission control program, transmission control apparatus and transmission control method Pending JP2019040344A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017161227A JP2019040344A (en) 2017-08-24 2017-08-24 Transmission control program, transmission control apparatus and transmission control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017161227A JP2019040344A (en) 2017-08-24 2017-08-24 Transmission control program, transmission control apparatus and transmission control method

Publications (1)

Publication Number Publication Date
JP2019040344A true JP2019040344A (en) 2019-03-14

Family

ID=65727369

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017161227A Pending JP2019040344A (en) 2017-08-24 2017-08-24 Transmission control program, transmission control apparatus and transmission control method

Country Status (1)

Country Link
JP (1) JP2019040344A (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003283556A (en) * 2002-03-26 2003-10-03 Hitachi Ltd Data communication repeater and system
JP2004295731A (en) * 2003-03-28 2004-10-21 Japan Research Institute Ltd System and program for managing batch job
WO2007125942A1 (en) * 2006-04-26 2007-11-08 Nippon Telegraph And Telephone Corporation Load control device and its method
JP2011243120A (en) * 2010-05-20 2011-12-01 Nec Corp Job management device, job management method and job management program
JP2012511204A (en) * 2008-12-08 2012-05-17 ケーピーアイティ クミンズ インフォシステムズ リミテッド How to reorganize tasks to optimize resources
JP2017016494A (en) * 2015-07-03 2017-01-19 富士ゼロックス株式会社 Information processor and information processing program

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003283556A (en) * 2002-03-26 2003-10-03 Hitachi Ltd Data communication repeater and system
JP2004295731A (en) * 2003-03-28 2004-10-21 Japan Research Institute Ltd System and program for managing batch job
WO2007125942A1 (en) * 2006-04-26 2007-11-08 Nippon Telegraph And Telephone Corporation Load control device and its method
JP2012511204A (en) * 2008-12-08 2012-05-17 ケーピーアイティ クミンズ インフォシステムズ リミテッド How to reorganize tasks to optimize resources
JP2011243120A (en) * 2010-05-20 2011-12-01 Nec Corp Job management device, job management method and job management program
JP2017016494A (en) * 2015-07-03 2017-01-19 富士ゼロックス株式会社 Information processor and information processing program

Similar Documents

Publication Publication Date Title
US11240332B2 (en) Subscription based event notifications
US8898336B2 (en) Content conversion system and content conversion server
CN101370035B (en) Method and system for dynamic client/server network management using proxy servers
US9659075B2 (en) Providing high availability in an active/active appliance cluster
US7065588B2 (en) Method and system for data transformation in a heterogeneous computer system
US8514750B2 (en) Multiplexed communication for duplex applications
JP4512192B2 (en) Congestion control device and network congestion control method
CN108718347B (en) Domain name resolution method, system, device and storage medium
US20100011091A1 (en) Network Storage
TWI486873B (en) Method, computer-readable medium, and apparatus for reconciliation and remediation with communication archives
CN105939335A (en) Method and system for managing channel ownership in a publish-subscribe data processing environment
JP6539341B2 (en) Providing router information according to the programmatic interface
US20150149524A1 (en) Network system, constant connection method, electronic device, server, and program
WO2013163648A2 (en) Methods for optimizing service of content requests and devices thereof
JP4410608B2 (en) Web service providing method
JP2005521945A (en) Optimal server in common work queue environment
JP5951888B2 (en) COMMUNICATION DEVICE, COMMUNICATION METHOD, AND COMMUNICATION PROGRAM
US20140281019A1 (en) Network Transmission Adjustment Based On Application-Provided Transmission Metadata
JP2014010703A (en) System that supports cooperation of information processing systems, device, and cooperation method
JP5538310B2 (en) Virtualization system and virtualization method
JP2019040344A (en) Transmission control program, transmission control apparatus and transmission control method
JP5478554B2 (en) Gateway apparatus and communication method
WO2014203728A1 (en) Message control system, message control device, message control method, and program
JP2012074825A (en) Qos guaranteed network system, centralized controller, and control method of centralized controller
JP4305364B2 (en) Web service request relay system, Web service request relay method, relay server, and program thereof

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200514

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20200529

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20200529

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210528

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210629

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210826

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220111

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220309

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20220712