JP2016045802A - Information processing apparatus, load sharing system, load sharing method, and program - Google Patents

Information processing apparatus, load sharing system, load sharing method, and program Download PDF

Info

Publication number
JP2016045802A
JP2016045802A JP2014170862A JP2014170862A JP2016045802A JP 2016045802 A JP2016045802 A JP 2016045802A JP 2014170862 A JP2014170862 A JP 2014170862A JP 2014170862 A JP2014170862 A JP 2014170862A JP 2016045802 A JP2016045802 A JP 2016045802A
Authority
JP
Japan
Prior art keywords
request
processing apparatus
information processing
information
distributed
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
JP2014170862A
Other languages
Japanese (ja)
Inventor
章太 鈴木
Shota Suzuki
章太 鈴木
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co 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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2014170862A priority Critical patent/JP2016045802A/en
Publication of JP2016045802A publication Critical patent/JP2016045802A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide an information processing apparatus which reduces the burden of a user and enables flexible and simple load sharing.SOLUTION: An information processing apparatus operates as follows: acquiring held distribution-destination identification information; transferring a request to a second information processing apparatus identified on the basis of the acquired distribution-destination identification information when it is determined that the request is to be distributed to other information processing apparatus connected over a network, on the basis of the amount of processing data included in the received request; controlling the processing data requested by the request and included in the request not to be executed when it is determined that the request is to be distributed to the other information processing apparatus; and controlling the processing data requested by the request and included in the request to be executed when it is determined that the request is not to be distributed to the other information processing apparatus.SELECTED DRAWING: Figure 1

Description

本発明は、情報処理装置、負荷分散システム、負荷分散方法、及び、プログラムに関する。   The present invention relates to an information processing apparatus, a load distribution system, a load distribution method, and a program.

近年、クライアントから要求された処理を所定のネットワークを介して接続された外部のサーバに実行させるシステムが知られている。このようなシステムにおいて、クライアントから、例えば画像データの生成等の処理負荷の高い要求がされると、要求されたサーバ側のリソースを多く消費することになる。   2. Description of the Related Art In recent years, a system that causes an external server connected via a predetermined network to execute processing requested from a client is known. In such a system, when a request with a high processing load such as generation of image data is made from a client, a large amount of requested server-side resources are consumed.

加えて、上記のような処理負荷の高い要求が、複数のクライアントから一斉にされた場合、サーバのリソースは有限であるため、サーバの処理能力が追いつかず、処理に時間がかかり、各クライアントへの応答が遅くなってしまう。   In addition, when a request with a high processing load as described above is made from multiple clients at the same time, the server resources are limited, so the server processing capacity cannot catch up and processing takes time. Will slow down the response.

そこで、近年、サーバを複数配置し、複数のサーバ間でクライアントからの要求を振り分けて負荷を分散する負荷分散システムが知られている。一般的な分散構成の例としては、フロントエンドのサーバがリクエストを受けて、ラウンドロビン方式で処理を振り分ける方法、各サーバの負荷状況を監視して、負荷の少ないサーバに処理を振り分ける方法などが知られている。   Therefore, in recent years, there is known a load distribution system in which a plurality of servers are arranged and a load is distributed by distributing requests from clients among the plurality of servers. Examples of general distributed configurations include a method in which front-end servers receive requests and distribute processing in a round-robin manner, and a method that monitors the load status of each server and distributes processing to servers with low load. Are known.

例えば、特許文献1には、複数のクライアントと複数のサーバとの間にいわゆるロードバランサーのような負荷分散装置を設ける技術が開示されている。当該負荷分散装置が、サービス要求パケットのヘッダー情報から当該サービス要求がサーバに与える負荷の大きさを見積り、その見積り値を、振り分けられたサーバ毎に管理することにより、サーバのリアルタイムな負荷状態に基づく負荷分散を実行している。   For example, Patent Document 1 discloses a technique in which a load distribution device such as a so-called load balancer is provided between a plurality of clients and a plurality of servers. The load balancer estimates the amount of load that the service request gives to the server from the header information of the service request packet, and manages the estimated value for each allocated server, so that the load state of the server is real-time. Based load balancing.

ところで、特許文献1に開示されたような負荷分散システムは、実際に処理を行うサーバとは別に負荷分散のため上述した負荷分散装置のような専用のサーバが必要となる。   By the way, the load distribution system as disclosed in Patent Document 1 requires a dedicated server such as the above-described load distribution apparatus for load distribution in addition to a server that actually performs processing.

しかし、後から負荷分散用のサーバを別体として設けるような場合、例えば、負荷分散用のサーバ自体の設定はもとより、これと接続される各サーバ側においても分散処理用の設定等を行う必要が出てくる。よって、このような場合、システムを停止して、大掛かりなシステム変更を要する等、導入に手間がかかってしまう。また、必要に応じて、負荷分散する、負荷分散しないといった切り替えを行うことは困難である。   However, when a separate server for load distribution is provided later, for example, it is necessary not only to set the load distribution server itself but also to perform settings for distributed processing on each server connected to it. Comes out. Therefore, in such a case, it takes time to introduce the system, for example, by stopping the system and requiring a major system change. Moreover, it is difficult to perform switching such as load distribution or no load distribution as necessary.

本発明は、このような実情に鑑みてなされたものであって、ユーザーの負担を軽減して、負荷分散を柔軟に且つ簡単に実現することを目的とする。   The present invention has been made in view of such circumstances, and an object thereof is to reduce the burden on the user and to realize load distribution flexibly and easily.

上記の課題を解決するため、本発明の第1の情報処理装置は、クライアントから送信されたリクエストを受け付けるリクエスト受付手段と、リクエスト受付手段により受け付けられたリクエストが要求した処理の実行を制御する制御手段と、リクエスト受付手段により受け付けられたリクエストを分散する分散先である第2の情報処理装置を識別する分散先識別情報であって、分散処理情報保持手段により保持された分散先識別情報を取得する分散処理情報取得手段と、リクエスト受付手段により受け付けられたリクエストに含まれる処理データのデータ量に基づき、ネットワークを介して接続された他の情報処理装置に対してリクエストを分散するか否かを判定する分散判定手段と、分散判定手段により他の情報処理装置に対してリクエストを分散すると判定された場合に、リクエストを、分散処理情報取得手段により取得された分散先識別情報に基づいて識別された第2の情報処理装置へ転送する転送手段と、を備え、制御手段は、分散判定手段により、他の情報処理装置に対してリクエストを分散すると判定された場合に、リクエストが要求した、リクエストに含まれる処理データに対する処理を実行しないように制御し、分散判定手段により、他の情報処理装置に対してリクエストを分散しないと判定された場合に、リクエストが要求した、リクエストに含まれる処理データに対する処理を実行するように制御することを特徴とする。   In order to solve the above-described problem, the first information processing apparatus of the present invention includes a request receiving unit that receives a request transmitted from a client, and a control that controls execution of a process requested by the request received by the request receiving unit. And distribution destination identification information for identifying a second information processing apparatus that is a distribution destination for distributing the request received by the request reception means, and acquiring the distribution destination identification information held by the distributed processing information holding means Whether to distribute the request to other information processing devices connected via the network based on the data amount of the processing data included in the request received by the distributed processing information acquisition unit and the request reception unit. A dispersion determination unit that determines the request to another information processing apparatus by the dispersion determination unit. And a transfer means for transferring the request to the second information processing apparatus identified based on the distribution destination identification information acquired by the distributed processing information acquisition means, When the distribution determination unit determines that the request is distributed to other information processing devices, control is performed so as not to execute the processing for the processing data included in the request requested by the request. When it is determined that the request is not distributed to other information processing apparatuses, control is performed so as to execute processing on the processing data included in the request requested by the request.

本発明によれば、ユーザーの負担を軽減して、負荷分散を柔軟に且つ簡単に実現することが可能となる。   According to the present invention, it is possible to reduce the burden on the user and realize load distribution flexibly and easily.

本発明の実施形態における情報処理装置を含む負荷分散システムの概略図である。It is the schematic of the load distribution system containing the information processing apparatus in embodiment of this invention. 本発明の実施形態における情報処理装置の機能ブロック図である。It is a functional block diagram of an information processor in an embodiment of the present invention. 本発明の第1実施形態における分散判定処理手順について説明するシーケンス図である。It is a sequence diagram explaining the dispersion | distribution determination processing procedure in 1st Embodiment of this invention. 本発明の第2実施形態における分散判定処理手順について説明するシーケンス図である。It is a sequence diagram explaining the dispersion | distribution determination processing procedure in 2nd Embodiment of this invention. 本発明の第3実施形態における分散判定処理手順について説明するシーケンス図である。It is a sequence diagram explaining the dispersion | distribution determination processing procedure in 3rd Embodiment of this invention. 本発明の第3実施形態における分散判定処理手順について説明するシーケンス図である。It is a sequence diagram explaining the dispersion | distribution determination processing procedure in 3rd Embodiment of this invention. 本発明の第4実施形態における分散判定処理手順について説明するシーケンス図である。It is a sequence diagram explaining the dispersion | distribution determination processing procedure in 4th Embodiment of this invention. 本発明の第5実施形態における情報処理装置の機能ブロック図である。It is a functional block diagram of the information processing apparatus in 5th Embodiment of this invention. 本発明の第5実施形態における分散判定処理手順について説明するシーケンス図である。It is a sequence diagram explaining the dispersion | distribution determination processing procedure in 5th Embodiment of this invention. 本発明の第6実施形態における分散判定処理手順について説明するシーケンス図である。It is a sequence diagram explaining the dispersion | distribution determination processing procedure in 6th Embodiment of this invention. 本発明の実施形態を適用させた具体例としてプリントサーバを用いたシステムの概略図である。1 is a schematic diagram of a system using a print server as a specific example to which an embodiment of the present invention is applied.

本発明の実施形態における情報処理装置に関し以下図面を用いて説明するが、本発明の趣旨を越えない限り、何ら本実施形態に限定されるものではない。なお、各図中、同一又は相当する部分には同一の符号を付しており、その重複説明は適宜に簡略化乃至省略する。   An information processing apparatus according to an embodiment of the present invention will be described below with reference to the drawings. However, the present invention is not limited to the present embodiment as long as the gist of the present invention is not exceeded. In addition, in each figure, the same code | symbol is attached | subjected to the part which is the same or it corresponds, The duplication description is simplified thru | or abbreviate | omitted suitably.

本発明の実施形態における情報処理装置を含む負荷分散システムの概略について図1を参照して説明する。本実施形態における負荷分散システムは、例えば、クライアント10と、サーバ20と、サーバ30と、ストレージ31を含み、構成されている。なお、本実施形態において、各サーバは、それぞれ、ユーザー端末からリクエストを受け付ける役割と、分散先である他のサーバに対してリクエストを分散する役割の両方の役割を持つものであってよい。つまり、サーバは、分散先である他のサーバに対してリクエストを分散する場合に、この分散元となるサーバをクライアントと呼んでも良い。また、本実施形態において、「リクエストを分散する」とは、受け付けたリクエストを他の装置に転送し、リクエストが要求した処理を他の装置に実行させることをいうものとする。   An outline of a load distribution system including an information processing apparatus according to an embodiment of the present invention will be described with reference to FIG. The load distribution system in the present embodiment includes, for example, a client 10, a server 20, a server 30, and a storage 31. In the present embodiment, each server may have both a role of receiving a request from a user terminal and a role of distributing a request to other servers as distribution destinations. That is, when a server distributes a request to another server that is a distribution destination, the server that is the distribution source may be called a client. Further, in the present embodiment, “distributing requests” refers to transferring an accepted request to another device and causing the other device to execute a process requested by the request.

クライアント10、サーバ20、サーバ30、ストレージ31は、ネットワーク51、ネットワーク52、ネットワーク53によって接続されている。なお、これらのネットワークは、例えばLAN(Local Area Network)やWAN(Wide Area Network)等で構築されるものであってよく、また、有線ネットワークに限らず無線ネットワークであってもよい。   The client 10, the server 20, the server 30, and the storage 31 are connected by a network 51, a network 52, and a network 53. These networks may be constructed by, for example, a LAN (Local Area Network) or a WAN (Wide Area Network), and may be a wireless network as well as a wired network.

クライアント10は、例えば、ユーザーがサーバ20に処理要求(以下「リクエスト」という。)を行うために使用するパーソナルコンピュータ(以下「PC」という。)等の情報端末である。よって、クライアント10は、PCに限定されず、情報処理機能を有するスマートフォン、携帯電話、あるいはPDA(Personal Digital Assistant)等の携帯情報端末であっても、情報処理機能を有するテレビジョン等の情報家電であってもよい。   The client 10 is, for example, an information terminal such as a personal computer (hereinafter referred to as “PC”) used by a user to make a processing request (hereinafter referred to as “request”) to the server 20. Therefore, the client 10 is not limited to a PC, and may be a smartphone, a mobile phone having an information processing function, or a portable information terminal such as a PDA (Personal Digital Assistant), or an information home appliance such as a television having an information processing function. It may be.

なお、本実施形態においては、クライアント10は1つとしているが、図示上の便宜のためであり、システム上、複数のクライアントからリクエストが送られることは言うまでもない。   In the present embodiment, the number of clients 10 is one. However, for convenience of illustration, it goes without saying that requests are sent from a plurality of clients on the system.

サーバ20は、ネットワーク51を介したhttp通信などの手段により、クライアント10からリクエストを受け付けるPC等の情報処理装置であり、例えばクライアント10等のコンピュータに対し、自身の持つ機能やサービス、データを提供するハードウェアである。   The server 20 is an information processing apparatus such as a PC that accepts a request from the client 10 by means such as http communication via the network 51. For example, the server 20 provides its own functions, services, and data to a computer such as the client 10. Hardware.

サーバ30は、サーバ20と略同一構成のPC等であるため説明を省略するが、本実施形態においては、サーバ20を分散元、サーバ30を分散先として以下に説明する。なお、本発明において、サーバ20を第1の情報処理装置、サーバ30を第2の情報処理装置とするが、説明の便宜のために形式的に定義したものである。つまり、いずれの装置も略同一構成であるため、区別のために定義したものである。すなわち、本実施形態における情報処理装置としての例えばサーバ20やサーバ30は、いずれも分散判定のための構成を必要十分に備えているものであってよい。   Since the server 30 is a PC or the like having substantially the same configuration as the server 20, description thereof will be omitted. In the present embodiment, the server 20 will be described below as a distribution source and the server 30 as a distribution destination. In the present invention, the server 20 is the first information processing apparatus and the server 30 is the second information processing apparatus, but these are defined formally for convenience of explanation. That is, since all apparatuses have substantially the same configuration, they are defined for distinction. That is, for example, the server 20 or the server 30 as the information processing apparatus in the present embodiment may have a necessary and sufficient configuration for determining the distribution.

また、本実施形態においては、サーバ20とサーバ30の2台が設けられているが、本発明の負荷分散システムとして、情報処理装置としてのサーバが2台に限定されるものではなく、3台以上であっても成立することは言うまでもない。また、本発明を負荷分散システムとして表現する場合は、例えば、分散元のサーバを「第1の情報処理装置」とし、分散先のサーバを「第2の情報処理装置」とし、以降、分散先のサーバの数に応じて「第3の情報処理装置」、・・・、「第nの情報処理装置」と形式的に定義することとする。   In the present embodiment, two servers 20 and 30 are provided. However, the load distribution system according to the present invention is not limited to two servers as information processing apparatuses. Needless to say, the above is also true. Further, when expressing the present invention as a load distribution system, for example, the distribution source server is referred to as a “first information processing apparatus”, the distribution destination server is referred to as a “second information processing apparatus”, and thereafter the distribution destination , And “nth information processing device” are formally defined according to the number of servers.

なお、例えば、本実施形態においては、サーバ20においてサーバ30への処理分散が判定されると、クライアント10からサーバ20に送られたリクエストは、サーバ30へアクセスするためのアクセスデータやクロック等を除き、ネットワーク52を介し、そのままサーバ30へ転送される。   For example, in the present embodiment, when the server 20 determines that processing is distributed to the server 30, the request sent from the client 10 to the server 20 includes access data, a clock, and the like for accessing the server 30. Except for this, it is transferred to the server 30 via the network 52 as it is.

ストレージ31は、例えば、サーバ30において、クライアント10からサーバ20を介して送られてきたリクエストに含まれる処理データや書誌情報等を記憶する、例えばハードディスク等の記憶装置である。なお、処理データや書誌情報等を所定のデータベースに直接記憶することとしてもよい。   The storage 31 is a storage device such as a hard disk that stores processing data, bibliographic information, and the like included in a request sent from the client 10 via the server 20 in the server 30. Processing data, bibliographic information, and the like may be directly stored in a predetermined database.

本実施形態においては、ストレージ31とサーバ30とがネットワーク53を介して接続されているが、ストレージ31にサーバ30のみがアクセス可能であることに限定されるものでなく、サーバ20からもアクセス可能であってもよいことは言うまでもない。なお、本実施形態においては、ストレージ31は、サーバ20やサーバ30とは独立した構成となっているが、例えばサーバ30にストレージ31が内蔵されている構成であってもよい。   In the present embodiment, the storage 31 and the server 30 are connected via the network 53, but the storage 31 is not limited to being accessible only by the server 30 and can be accessed from the server 20. Needless to say, it may be. In the present embodiment, the storage 31 has a configuration independent of the server 20 and the server 30, but may be a configuration in which the storage 31 is built in the server 30, for example.

次に、本実施形態における情報処理装置としての、例えばサーバ20の機能ブロックについて図2を参照して説明する。なお、サーバ30についても、サーバ20と略同一構成であるため、本図は、サーバ30についても適用されるものである。   Next, for example, functional blocks of the server 20 as the information processing apparatus in the present embodiment will be described with reference to FIG. Since the server 30 has substantially the same configuration as that of the server 20, this figure is also applied to the server 30.

本実施形態におけるサーバ20は、管理部21と、分散判定部22と、転送部23と、分散処理情報保持部24と、リクエスト解析部25と、レスポンス解析部26と、リクエスト処理部27と、制御部28を備える。   The server 20 in the present embodiment includes a management unit 21, a distribution determination unit 22, a transfer unit 23, a distributed processing information holding unit 24, a request analysis unit 25, a response analysis unit 26, a request processing unit 27, A control unit 28 is provided.

管理部21は、リクエスト受付部211と、分散処理情報取得部212、レスポンス受付部213と、応答部214を備える。リクエスト受付部211はクライアント10から送信されたリクエストを受け付けるリクエスト受付手段である。分散処理情報取得部212は、リクエスト受付部211により受け付けられたリクエストを分散する分散先であるサーバ30を識別する分散先識別情報であって、分散処理情報保持部24により保持された分散先識別情報を取得する分散処理情報取得手段である。レスポンス受付部213は、転送部23によりサーバ30に転送されたリクエストに応じて、当該第2の情報処理装置から応答されたレスポンスを受け付けるレスポンス受付手段である。応答部214は、レスポンス受付部213により受け付けられたレスポンスに基づき、リクエストを送信したクライアント10にリクエストを応答する応答手段である。   The management unit 21 includes a request reception unit 211, a distributed processing information acquisition unit 212, a response reception unit 213, and a response unit 214. The request reception unit 211 is a request reception unit that receives a request transmitted from the client 10. The distributed processing information acquisition unit 212 is distribution destination identification information for identifying the server 30 that is a distribution destination for distributing the request received by the request reception unit 211, and the distribution destination identification held by the distributed processing information holding unit 24 It is a distributed processing information acquisition means for acquiring information. The response receiving unit 213 is a response receiving unit that receives a response returned from the second information processing apparatus in response to the request transferred to the server 30 by the transfer unit 23. The response unit 214 is a response unit that responds to the request to the client 10 that has transmitted the request based on the response received by the response reception unit 213.

分散判定部22は、リクエスト受付部211により受け付けられたリクエストに含まれる処理データのデータ量に基づき、ネットワークを介して接続された他の情報処理装置に対して当該リクエストを分散するか否かを判定する分散判定手段である。また、データ量に代えて、例えば、CPU使用率やメモリ使用率を用いて分散判定を行ってもよい。つまり、上記のCPU使用率を含むCPU使用状況や、メモリ使用率を含むメモリ使用状況や、ネットワーク使用量を含むネットワーク使用状況等のリソースの使用状況等、装置負荷を定量的に測定可能なものを利用して分散判定を行ってよい。本実施形態では、ネットワーク使用量を、例えば、サーバと、ストレージ又はデータベース間のネットワークを伝送される単位時間あたりのデータ量で示している。   The distribution determination unit 22 determines whether to distribute the request to other information processing devices connected via the network based on the data amount of the processing data included in the request received by the request reception unit 211. It is a dispersion | distribution determination means to determine. Further, instead of the data amount, for example, the distribution determination may be performed using a CPU usage rate or a memory usage rate. In other words, equipment load can be measured quantitatively, such as CPU usage including the above CPU usage, memory usage including memory usage, and network usage including network usage. The determination of variance may be performed using. In the present embodiment, the network usage is indicated by the amount of data per unit time transmitted through the network between the server and the storage or database, for example.

そして、例えば、分散判定部22は、リソースの使用状況が予め設定された閾値以上であるとき、他の情報処理装置にリクエストを分散すると判定してもよい。本実施形態においては、分散判定部22は、所定の閾値として下記の表に示すテーブルデータを内部に備え、分散判定に際し、このテーブルデータを参照するものであってよい。   For example, the distribution determination unit 22 may determine that the request is distributed to other information processing apparatuses when the resource usage state is equal to or greater than a preset threshold. In the present embodiment, the variance determination unit 22 may internally include table data shown in the following table as a predetermined threshold value, and may refer to this table data when determining the variance.

Figure 2016045802
Figure 2016045802

表1を参照して説明すると、例えば、分散判定部22は、CPU使用状況としての「CPU使用率」を分散判定のキーとして用いる場合、表1のテーブルデータにおける閾値に基づき、CPU使用率が90%以上であるとき、分散処理を行うと判定する。また、同様に、メモリ使用状況としての「メモリ使用率」を分散判定のキーとして用いる場合、表1のテーブルデータにおける閾値に基づき、メモリ使用率が90%以上であるとき、分散処理を行うと判定する。   To explain with reference to Table 1, for example, when the “CPU usage rate” as the CPU usage status is used as a key for the distribution determination, the distribution determination unit 22 determines the CPU usage rate based on the threshold value in the table data of Table 1. When it is 90% or more, it is determined that distributed processing is performed. Similarly, when the “memory usage rate” as the memory usage status is used as a key for the distribution determination, when the memory usage rate is 90% or more based on the threshold value in the table data of Table 1, the distributed processing is performed. judge.

さらに、同様に、ネットワーク使用状況としての「ネットワーク使用量」を分散判定のキーとして用いる場合、表1のテーブルデータにおける閾値に基づき、ネットワーク使用量が10MBps以上であるとき、分散処理を行うと判定する。つまり、本実施形態においては、分散判定部22は、リソースの使用状況が予め設定された閾値以上であるとき、サーバ20が高負荷であると判断し、サーバ30へ負荷を分散する。   Further, similarly, when “network usage” as the network usage status is used as a key for distribution determination, it is determined that distributed processing is performed when the network usage is 10 MBps or more based on the threshold value in the table data of Table 1. To do. That is, in the present embodiment, the distribution determination unit 22 determines that the server 20 has a high load and distributes the load to the server 30 when the resource usage state is equal to or greater than a preset threshold.

また、分散判定部22は、リクエストに含まれる処理データのデータ量が所定のデータ量閾値以上であるとき、サーバ30にリクエストを分散すると判定してもよい。「リクエストに含まれる処理データのデータ量」とは、例えば、リクエストに含まれるヘッダー情報内のデータ量情報等である。本実施形態においては、分散判定部22は、分散判定に際し、上述のリソース使用状況とともに、又は、リソース使用状況に代えて、データ量閾値として下記の表に示すテーブルデータを参照してもよい。   Further, the distribution determination unit 22 may determine that the request is distributed to the servers 30 when the data amount of the processing data included in the request is equal to or greater than a predetermined data amount threshold. The “data amount of processing data included in the request” is, for example, data amount information in header information included in the request. In the present embodiment, the distribution determination unit 22 may refer to the table data shown in the following table as a data amount threshold value together with the resource usage status described above or instead of the resource usage status when determining the distribution.

Figure 2016045802
Figure 2016045802

表2を参照して説明すると、例えば、分散判定部22は、データ量としての「ヘッダー内データ量情報」を分散判定のキーとして用いる場合、表2のテーブルデータにおけるデータ量閾値に基づき、ヘッダー内データ量情報が5MBytes以上であるとき、分散処理を行うと判定する。   Describing with reference to Table 2, for example, when using the “data amount information in the header” as the key for the distribution determination, the distribution determination unit 22 uses the header based on the data amount threshold in the table data of Table 2. When the internal data amount information is 5 Mbytes or more, it is determined that the distributed processing is performed.

なお、仮に、分散先の情報処理装置全てにおいて、同一のデータ量閾値を設定しておけば、データ量閾値以上のデータ量情報を持つリクエストが全ての分散先を通過して永久に処理されない事象が発生する。この事象を避けるため、本実施形態では、例えば、分散毎に、分散先において保持されるデータ量閾値において1MBytes加算することとしてもよい。   If the same data amount threshold value is set in all information processing apparatuses at the distribution destination, a request having data amount information equal to or greater than the data amount threshold value is not processed permanently through all the distribution destinations. Occurs. In order to avoid this phenomenon, in the present embodiment, for example, 1 MBytes may be added at the data amount threshold held at the distribution destination for each distribution.

転送部23は、分散判定部22により他の情報処理装置に対してリクエストを分散すると判定された場合に、リクエストを分散処理情報取得部212により取得された分散先識別情報に基づいて識別されたサーバ30へ転送する転送手段である。リクエストを受け付けたサーバ30においても、サーバ20同様の分散判定が行われ、リソース状況等に基づいて分散を行うか否かを判定し、負荷が軽ければ、サーバ30自身でリクエスト処理を実行すればよい。一方、負荷が重ければ、さらに例えばサーバ30に代わる分散先へリクエストを転送すればよい。   When the distribution determination unit 22 determines that the request is distributed to other information processing apparatuses, the transfer unit 23 is identified based on the distribution destination identification information acquired by the distributed processing information acquisition unit 212. Transfer means for transferring to the server 30. Even in the server 30 that has received the request, the same distribution determination as that of the server 20 is performed. It is determined whether or not the distribution is performed based on the resource status and the like. Good. On the other hand, if the load is heavy, for example, the request may be transferred to a distribution destination instead of the server 30.

分散処理情報保持部24は、分散先識別情報としてのサーバのIPアドレス等を保持・記憶する分散処理情報保持手段である。   The distributed processing information holding unit 24 is a distributed processing information holding unit that holds and stores a server IP address or the like as distributed destination identification information.

リクエスト解析部25は、受け付けたリクエスト内容を解析し、例えばヘッダー情報に分散先のサーバ30のIPアドレス等を付加して、サーバ20からサーバ30へのリクエストとして再構成を行う。   The request analysis unit 25 analyzes the content of the received request, adds the IP address of the distribution destination server 30 to the header information, for example, and performs reconfiguration as a request from the server 20 to the server 30.

レスポンス解析部26は、サーバ30から送られたレスポンス内容を解析し、例えばヘッダー情報を編集してクライアント10に対するサーバ20自身のレスポンスとして再構成を行う。リクエスト処理部27は、受け付けたリクエストが要求した処理を行い、レスポンスを生成する。   The response analysis unit 26 analyzes the response content sent from the server 30, edits header information, for example, and reconfigures it as a response of the server 20 itself to the client 10. The request processing unit 27 performs a process requested by the received request and generates a response.

制御部28は、分散判定部22により、他の情報処理装置に対してリクエストを分散すると判定された場合に、当該リクエストが要求した、当該リクエストに含まれる処理データに対する処理を実行しないように制御する制御手段である。また、制御部28は、分散判定部22により、他の情報処理装置に対してリクエストを分散しないと判定された場合に、当該リクエストが要求した、当該リクエストに含まれる処理データに対する処理を実行するように制御する。   When the distribution determination unit 22 determines that the request is distributed to other information processing apparatuses, the control unit 28 performs control so that processing for the processing data included in the request requested by the request is not executed. Control means. In addition, when the distribution determination unit 22 determines that the request is not distributed to other information processing apparatuses, the control unit 28 performs processing on the processing data included in the request requested by the request. To control.

以上を踏まえ、本実施形態におけるサーバ20の動作概略について説明する。管理部21は、クライアント又はサーバからのリクエスト依頼を受けて、分散判定部22に対し分散判定依頼を行う。分散処理を行う場合は、リクエスト解析部25に対してリクエスト内容と分散先情報を送信し、新たに作成されたリクエストを受け取る。   Based on the above, an outline of the operation of the server 20 in the present embodiment will be described. The management unit 21 receives a request request from the client or the server and makes a distribution determination request to the distribution determination unit 22. When performing distributed processing, the request contents and distribution destination information are transmitted to the request analysis unit 25 and a newly created request is received.

管理部21は、そのリクエストを、分散処理情報保持部24から得た分散先のサーバ30に生存確認をした後、生存を確認したらサーバ30に送る。管理部21は、生存を確認できない場合は、リクエスト処理部27に対して、処理を依頼する。管理部21は、受け取ったレスポンスをレスポンス解析部26に送り、新たに作成したレスポンスを受け取り、クライアント又はサーバに送信する。   The management unit 21 confirms the existence of the request with the distribution destination server 30 obtained from the distributed processing information holding unit 24, and then sends the request to the server 30 when the existence is confirmed. When the management unit 21 cannot confirm the survival, the management unit 21 requests the request processing unit 27 to perform processing. The management unit 21 sends the received response to the response analysis unit 26, receives the newly created response, and sends it to the client or server.

なお、サーバ30が「生存」しているか否かは、サーバ30の稼動状態に基づいて確認する。例えば、稼動状態として、サーバ30の電源が入っており、リクエストの分散を受けることが可能な程度に動作している場合、管理部21は、サーバ30が「生存」していると判断すればよい。例えば、サーバ20からサーバ30に対してテスト用のリクエストを送信し、応答されたレスポンスに基づいてサーバ30の生存を判断することとしてもよい。また、サーバ30の生存確認につき、Pingコマンドを利用してもよい。また、「生存」していると判断するため、サーバ20とサーバ30とがネットワークにより接続されていること、分散処理プログラムが正常に動作していることを条件としてもよい。   Whether or not the server 30 is “alive” is confirmed based on the operating state of the server 30. For example, if the server 30 is powered on and is operating to a level where requests can be distributed, the management unit 21 determines that the server 30 is “alive”. Good. For example, a test request may be transmitted from the server 20 to the server 30, and the existence of the server 30 may be determined based on the response that has been returned. In addition, a Ping command may be used for confirming the existence of the server 30. In order to determine that the server is “alive”, the server 20 and the server 30 may be connected via a network, and the distributed processing program may be operating normally.

他方、サーバ30の電源が切断されている場合、サーバ30が故障している場合、又は、本発明における分散処理プログラムがそもそもインストールされていないような場合等においては、管理部21は、サーバ30が「生存していない」と判断する。そして、例えば、サーバ30が生存していないと管理部21が判断した場合、管理部21は分散判定を行わないこととしてもよい。なお、上述の例に対応して、例えば、サーバ30からレスポンス応答が無い場合、Pingが返ってこない場合に、サーバ30が生存していないと判断してもよい。さらに、サーバ20とサーバ30とがネットワークにより接続されていないこと、分散処理プログラムが正常に動作していないことを「生存していない」ことの判断条件としてもよい。   On the other hand, when the server 30 is powered off, when the server 30 is out of order, or when the distributed processing program according to the present invention is not installed in the first place, the management unit 21 controls the server 30. Determines that it is not alive. For example, when the management unit 21 determines that the server 30 is not alive, the management unit 21 may not perform the distribution determination. In correspondence with the above-described example, for example, when there is no response response from the server 30, or when no Ping is returned, it may be determined that the server 30 is not alive. Furthermore, it may be determined that the server 20 and the server 30 are not connected via a network and that the distributed processing program is not operating normally is “not alive”.

[第1実施形態]
次に、本発明の第1実施形態における分散判定処理手順について図3を参照して説明する。まず、クライアント10は、管理部21に対してHttpなどのプロトコルを用いて、リクエストを送り、管理部21からレスポンスを受け取る[1]。
[First Embodiment]
Next, the dispersion determination processing procedure in the first embodiment of the present invention will be described with reference to FIG. First, the client 10 sends a request to the management unit 21 using a protocol such as http, and receives a response from the management unit 21 [1].

次に、管理部21は、分散判定部22に対し分散判定を依頼する[1.1]。そして、分散判定部22は、リクエストに含まれる処理データのデータ量に基づいて他の情報処理装置に対して当該リクエストの分散処理を行うか否かの判定を行う[1.1.1]。   Next, the management unit 21 requests the distribution determination unit 22 to perform distribution determination [1.1]. Then, the distribution determination unit 22 determines whether or not to distribute the request to another information processing apparatus based on the data amount of the processing data included in the request [1.1.1].

分散判定部22により分散処理を行わないと判定されたとき、管理部21はリクエスト処理部27に対して、リクエスト処理を依頼する[1.2]。   When the distribution determining unit 22 determines not to perform distributed processing, the management unit 21 requests the request processing unit 27 to perform request processing [1.2].

一方、分散判定部22により分散処理を行うと判定されたとき、管理部21は分散処理情報保持部24に対して、分散先のサーバ30の情報の取得を依頼する。分散先のサーバ30の情報は、例えば、下記の表に示すような、IPアドレスを用いるものであってよい。   On the other hand, when the distribution determining unit 22 determines that the distributed processing is to be performed, the management unit 21 requests the distributed processing information holding unit 24 to acquire information of the distribution destination server 30. The information of the distribution destination server 30 may use IP addresses as shown in the following table, for example.

Figure 2016045802
Figure 2016045802

管理部21は、取得したIPアドレスに基づいてサーバ30にアクセスし、サーバ30が生存しているか否か確認する[1.4]。生存が確認されたときは、分散処理を継続する。   The management unit 21 accesses the server 30 based on the acquired IP address and checks whether the server 30 is alive [1.4]. When survival is confirmed, distributed processing is continued.

次に、管理部21は、リクエスト解析部25に対して、クライアント10からのリクエスト内容と、分散処理情報保持部24により取得した分散先のサーバ30の情報を送り、リクエスト作成を依頼する[1.5]。リクエスト解析部25は、リクエストを解析し[1.5.1]、サーバ20におけるリクエストとして作成し[1.5.2]、管理部21に返却する。   Next, the management unit 21 sends the request content from the client 10 and the information of the distribution destination server 30 acquired by the distributed processing information holding unit 24 to the request analysis unit 25, and requests the request creation [1. .5]. The request analysis unit 25 analyzes the request [1.5.1], creates a request in the server 20 [1.5.2], and returns it to the management unit 21.

管理部21は、返却されたリクエスト内容に基づいて、分散先のサーバ30に対してリクエストを実行する[1.6]。   The management unit 21 executes a request to the distribution destination server 30 based on the returned request content [1.6].

その後、管理部21は、サーバ30からレスポンスを受信すると、レスポンス解析部26に対してレスポンスの作成を依頼する[1.7]。レスポンス解析部26は、サーバ30からのレスポンスを解析し[1.7.1]、サーバ20のレスポンスとして再構成する[1.7.2]。   Thereafter, when receiving a response from the server 30, the management unit 21 requests the response analysis unit 26 to create a response [1.7]. The response analysis unit 26 analyzes the response from the server 30 [1.7.1] and reconfigures it as the response of the server 20 [1.7.2].

以上のように、第1実施形態によれば、分散処理を要する場合に、例えば、分散先であるサーバ20と略同一構成のサーバ30をサーバ20の分散先として設定するだけでよいため、ユーザーの負担を軽減して、負荷分散を柔軟に且つ簡単に実現することが可能となる。なお、略同一構成といっても、本実施形態における分散処理を実行するソフトウェアが各サーバ上で動作するものであれば足り、その他のソフトウェア構成やハードウェア構成が異なることを妨げるものではない。一方、便宜上、装置のハードウェア構成やソフトウェア構成が同一であってもよい。   As described above, according to the first embodiment, when distributed processing is required, for example, a server 30 having substantially the same configuration as that of the server 20 that is the distribution destination need only be set as the distribution destination of the server 20. It is possible to realize load distribution flexibly and easily. Note that the substantially identical configuration is sufficient as long as the software that executes the distributed processing in this embodiment operates on each server, and does not prevent other software configurations and hardware configurations from being different. On the other hand, for convenience, the hardware configuration and software configuration of the apparatus may be the same.

[第2実施形態]
次に、本発明の第2実施形態における分散判定処理手順について図4を参照して説明する。なお、第1実施形態と同様の手順については説明を省略する。第2実施形態においては、リソース状況とともに、又は、別個に、表2で示したリクエストに含まれる属性情報としてのヘッダー内データ量情報を参照して、分散判定を行う。なお、属性情報としては、例えば、時刻情報や、処理指定情報等もあるが、ここでは説明を省略する。
[Second Embodiment]
Next, the dispersion determination processing procedure in the second embodiment of the present invention will be described with reference to FIG. Note that description of procedures similar to those of the first embodiment is omitted. In the second embodiment, the distribution determination is performed with reference to the in-header data amount information as the attribute information included in the request shown in Table 2 together with or separately from the resource status. The attribute information includes, for example, time information, processing designation information, and the like, but description thereof is omitted here.

分散判定部22は、管理部21から分散判定の依頼を受けたとき[1.1]、分散判定処理を開始する[1.1.1]。分散判定部22は、リソースの使用状況に加えて、例えば5MBytes等のデータ量閾値を分散処理情報保持部24から取得する[1.1.1.1]。その後、分散判定部22は、リクエストに含まれるヘッダー内データ量情報をリクエスト解析部25から取得する[1.1.1.2]。そして、分散判定部22は、ヘッダー内情報におけるデータ量とデータ量閾値とを比較し、ヘッダー内情報におけるデータ量がデータ量閾値以上であるとき、分散を行うと判定する[1.1.1.3]。   When receiving a distribution determination request from the management unit 21 [1.1], the distribution determination unit 22 starts the distribution determination process [1.1.1]. The distribution determination unit 22 acquires a data amount threshold such as 5 MBytes from the distributed processing information holding unit 24 in addition to the resource usage status [1.1.1.1]. Thereafter, the distribution determining unit 22 acquires the data amount information in the header included in the request from the request analyzing unit 25 [1.1.1.2]. Then, the distribution determination unit 22 compares the data amount in the header information with the data amount threshold, and determines that the distribution is performed when the data amount in the header information is equal to or greater than the data amount threshold [1.1.1. .3].

なお、リソース状況と、ヘッダー内情報におけるデータ量とを組み合わせて分散判定を行ってもよい。例えば、CPU使用率の10%がデータ量の1MBに相当するような対応関係を予め設定しておく。そして、不図示の換算手段が、リソースの使用状況とデータ量を組み合わせて判定する際に、まず、CPU使用率を上記対応関係に基づいてデータ量に換算する。続いて、換算結果である換算データ量を、実際のデータ量に加算し、加算後のデータ量がデータ量閾値以上か否かにより分散判定を行う。例えば、リソース状況が50%以上であるとき、これだけで判定を行う場合は、分散判定は行われない。一方、ヘッダー内情報におけるデータ量を組み合わせることにより、データ量が閾値以上であるときは、処理を行うサーバで処理し切れないことが未然に確認できるため、より効率的に負荷を分散することが可能となる。他方、例えば1MBのデータ量をCPU使用率1MB等に換算して、実際のCPU使用率に加算し、加算後のCPU使用率が表1に示した閾値以上か否かにより分散判定を行ってもよい。   The distribution determination may be performed by combining the resource status and the amount of data in the header information. For example, a correspondence relationship in which 10% of the CPU usage rate corresponds to 1 MB of the data amount is set in advance. When a conversion unit (not shown) determines the resource usage and the data amount in combination, first, the CPU usage rate is converted into the data amount based on the correspondence. Subsequently, the converted data amount that is the conversion result is added to the actual data amount, and the dispersion determination is performed based on whether or not the data amount after the addition is equal to or greater than the data amount threshold value. For example, when the resource status is 50% or more and the determination is performed only with this, the distribution determination is not performed. On the other hand, by combining the data amount in the header information, when the data amount is greater than or equal to the threshold value, it can be confirmed in advance that processing cannot be performed by the server that performs processing, so the load can be distributed more efficiently. It becomes possible. On the other hand, for example, the amount of data of 1 MB is converted into a CPU usage rate of 1 MB, etc., and added to the actual CPU usage rate, and a dispersion determination is performed based on whether the CPU usage rate after the addition is equal to or greater than the threshold shown in Table 1. Also good.

[第3実施形態]
次に、本発明の第3実施形態における分散判定処理手順について図5を参照して説明する。なお、第1実施形態及び第2実施形態と同様の手順については説明を省略する。
[Third Embodiment]
Next, the dispersion determination processing procedure in the third embodiment of the present invention will be described with reference to FIG. In addition, description is abbreviate | omitted about the procedure similar to 1st Embodiment and 2nd Embodiment.

第3実施形態においては、分散判定部22は、リクエストに含まれる属性情報に基づいてデータ量を取得する。つまり、第2実施形態において説明した属性情報としてのヘッダー内データ量情報(以下「コンテンツlength」という。)によりデータ量を取得する。取得したコンテンツlengthから分散すると判定された場合、リクエストからそのコンテンツlengthに係る処理データ(以下「コンテンツデータ」という。)を削除し、転送部23が、例えば図1で示したストレージ31に送信する。そして、転送部23は、ストレージ31から記憶された処理データを読み込むアクセス情報をサーバ30に送信する。アクセス情報とは、例えば、ストレージ31における処理データの格納場所を示すURL(以下「コンテンツURL」という。)等をいう。   In the third embodiment, the distribution determination unit 22 acquires the data amount based on the attribute information included in the request. That is, the data amount is acquired from the data amount information in the header (hereinafter referred to as “content length”) as the attribute information described in the second embodiment. If it is determined that the acquired content length is distributed, the processing data related to the content length (hereinafter referred to as “content data”) is deleted from the request, and the transfer unit 23 transmits the processing data to, for example, the storage 31 illustrated in FIG. . Then, the transfer unit 23 transmits access information for reading processing data stored from the storage 31 to the server 30. The access information refers to, for example, a URL (hereinafter referred to as “content URL”) indicating a storage location of processing data in the storage 31.

分散判定部22は、管理部21から分散判定の依頼を受け付けたとき[1.1]、判定処理を行う[1.1.1]。その際、分散判定部22は、リクエストに含まれるコンテンツlengthをリクエスト解析部25を通じて取得する[1.1.1.1]。分散判定部22は、コンテンツlengthに基づいて分散判定を行うと判断した場合、リクエスト解析部25を通じてリクエストからコンテンツデータを取得し、リクエストからコンテンツデータを削除する[1.1.1.2]。なお、図5においては、図示上の便宜のため、コンテンツlengthを「c−length」と、コンテンツデータを「c−データ」と略記する。   When the distribution determination unit 22 receives a distribution determination request from the management unit 21 [1.1], the distribution determination unit 22 performs determination processing [1.1.1]. At that time, the distribution determination unit 22 acquires the content length included in the request through the request analysis unit 25 [1.1.1.1]. If the distribution determination unit 22 determines to perform distribution determination based on the content length, the distribution determination unit 22 acquires content data from the request through the request analysis unit 25 and deletes the content data from the request [1.1.1.2]. In FIG. 5, for convenience in illustration, the content length is abbreviated as “c-length” and the content data is abbreviated as “c-data”.

コンテンツデータをリクエストから削除することで、コンテンツlengthが減少するため、分散先においては、変更後のコンテンツlengthに基づいてさらに分散を行うか否かが判断される。   Since the content length is decreased by deleting the content data from the request, the distribution destination determines whether or not to further distribute based on the changed content length.

分散判定部22により、分散判定を行うと判断された場合、管理部21は、転送部23を介してストレージ31にコンテンツデータを送信するとともに、ストレージ31からコンテンツURLを取得する[2.2]。なお、図5においては、図示上の便宜のため、コンテンツURLを「c−URL」と略記する。   When the distribution determination unit 22 determines to perform distribution determination, the management unit 21 transmits content data to the storage 31 via the transfer unit 23 and acquires a content URL from the storage 31 [2.2]. . In FIG. 5, the content URL is abbreviated as “c-URL” for convenience of illustration.

管理部21は、リクエスト解析部25にリクエスト作成を依頼する[2.3]。リクエスト解析部25は、管理部21が取得したコンテンツURLを分散用リクエストヘッダーのコンテンツURLとして設定する[2.3.2]。管理部21は、転送部23を介して、第1実施形態と同様にサーバ30にリクエストを転送する際、コンテンツURLを送信する[1.6]。一方、分散判定部22により分散を行わないと判定された場合、管理部21は、リクエスト処理部27に対しリクエスト処理を依頼する[2.1]。   The management unit 21 requests the request analysis unit 25 to create a request [2.3]. The request analysis unit 25 sets the content URL acquired by the management unit 21 as the content URL of the distribution request header [2.3.2]. The management unit 21 transmits a content URL when transferring a request to the server 30 via the transfer unit 23 as in the first embodiment [1.6]. On the other hand, when the distribution determination unit 22 determines not to perform distribution, the management unit 21 requests the request processing unit 27 to perform request processing [2.1].

以上は、分散サーバがプライマリ機である場合の処理について説明したものであるが、分散サーバがプライマリ機でなく、分散元がコンテンツデータをストレージ又はデータベースに保存した場合の処理について図6を参照して説明する。   The above describes the process when the distributed server is the primary machine. The process when the distributed server is not the primary machine and the distribution source stores the content data in the storage or database is described with reference to FIG. I will explain.

分散サーバは、自身の分散判定部22により分散判定を行わないと判定した場合、コンテンツデータに対する処理を自身で行うことになる。そのため、コンテンツデータを取得するためのアクセス情報をリクエストヘッダーのコンテンツURLから取得する[1.1.1.2]。一方、分散判定部22により分散すると判定した場合、コンテンツデータは既にストレージ等に保存され、リクエストに含まれていないため、取得する必要がない。また、コンテンツデータは、分散しないで処理を行うサーバが取得することになる。そして、分散サーバの管理部21は取得したコンテンツURLから、ストレージ31にコンテンツデータが保存されていると判定することができる。このため、取得したコンテンツURLを用いてストレージ31からコンテンツデータを取得し[2.1]、自身のリクエスト処理部27において処理を行う[2.2]。   When the distribution server determines that the distribution determination unit 22 does not perform the distribution determination, the distribution server performs the processing for the content data by itself. Therefore, access information for acquiring content data is acquired from the content URL of the request header [1.1.1.2]. On the other hand, when it is determined by the distribution determining unit 22 that the content data is distributed, the content data is already stored in the storage or the like and is not included in the request, and thus does not need to be acquired. In addition, the content data is acquired by a server that performs processing without being distributed. Then, the management unit 21 of the distributed server can determine that the content data is stored in the storage 31 from the acquired content URL. For this reason, content data is acquired from the storage 31 using the acquired content URL [2.1] and processed in its own request processing unit 27 [2.2].

以上、第3実施形態によれば、データ容量が大きく処理が重い、つまり装置負荷が大きいデータをストレージ31等の外部記憶装置に保存し、分散先のサーバへはコンテンツデータを除き、コンテンツURLをリクエストヘッダーにセットしてリクエストを実行する。これにより、例えば、分散先のサーバにおいても高負荷であるため、さらにその先へ分散される等、何度も分散処理が行われるたびに、装置負荷の大きいデータまで分散先へ分散されることを回避することが可能となる。   As described above, according to the third embodiment, data with a large data capacity and heavy processing, that is, data with a large apparatus load is stored in an external storage device such as the storage 31, and the content URL is excluded from the distribution destination server except for the content data. Set the request header and execute the request. As a result, for example, because the load is high even at the server of the distribution destination, every time distributed processing is performed, such as further distribution to the destination, data with a large device load is distributed to the distribution destination. Can be avoided.

[第4実施形態]
次に、本発明の第4実施形態における分散判定処理手順について図7を参照して説明する。なお、上述した各実施形態と同様の手順については説明を省略する。本実施形態においては、分散処理情報保持部24が、分散システムにおいてトータルで分散可能な回数、つまり、リクエストが転送される回数の上限である分散上限値を保持する。分散上限値としては、例えば下記の表に示すものを用いるものであればよい。
[Fourth Embodiment]
Next, the dispersion determination processing procedure in the fourth embodiment of the present invention will be described with reference to FIG. In addition, description is abbreviate | omitted about the procedure similar to each embodiment mentioned above. In the present embodiment, the distributed processing information holding unit 24 holds the distribution upper limit value, which is the upper limit of the number of times that the request can be transferred in total in the distributed system. As the dispersion upper limit value, for example, those shown in the following table may be used.

Figure 2016045802
Figure 2016045802

そして、分散判定部22は、サーバ30にリクエストを分散する判定を行う際、リクエストに含まれる分散回数に対して例えば「1」を加算し、加算された分散回数が分散上限値と一致するとき、サーバ30にリクエストを分散しないと判定する。   When the distribution determination unit 22 determines to distribute the request to the server 30, for example, “1” is added to the number of distributions included in the request, and the added distribution number matches the distribution upper limit value. It is determined that the request is not distributed to the server 30.

分散判定部22は、管理部21から分散判定依頼を受け付けると[1.1]、分散処理情報保持部24から分散上限値、例えば表2における「5」を取得する[1.1.2]。   When the distribution determination unit 22 receives a distribution determination request from the management unit 21 [1.1], the distribution determination unit 22 acquires a distribution upper limit value, for example, “5” in Table 2 from the distributed processing information holding unit 24 [1.1.2]. .

分散判定部22は、分散先のサーバにリクエストする際に、ヘッダーに含まれる分散回数に分散数を付加して、取得した分散上限値と比較する[1.1.5]。このとき、分散判定部22は、分散回数が分散上限値と一致するのであれば分散を行わないと判定し、リクエスト処理部27がリクエストを自装置において処理する。他方、分散判定部22は、分散回数が分散上限値以下であれば、分散処理を行うと判定する。   When making a request to the distribution destination server, the distribution determination unit 22 adds the number of distributions to the number of distributions included in the header and compares it with the obtained distribution upper limit [1.1.5]. At this time, the distribution determination unit 22 determines that the distribution is not performed if the number of distributions matches the distribution upper limit value, and the request processing unit 27 processes the request in its own device. On the other hand, if the number of times of dispersion is equal to or less than the upper limit of dispersion, the dispersion determination unit 22 determines to perform dispersion processing.

第4実施形態によれば、ヘッダーを確認することで自装置がクライアントからリクエストを受け付けているのか、分散処理先としてリクエストを受け付けているのかを判定することが可能となる。例えば、分散回数が0の場合は、クライアントからリクエストを受け付けていると判定してもよい。また、クライアントからリクエストを受け付けるプライマリ機として機能する場合、全てのサーバにその機能を持たせて、プライマリ機であるか否かの判定をさせるようにしてもよい。例えば、リクエストが、リクエストに含まれるサイズの大きいデータをストレージに保存する処理を要求する場合に、サイズの大きいデータを含むリクエストを分散すれば、却ってネットワークに負荷を増加する可能性があるため、このような処理はプライマリ機で行うこととすればよい。より具体的には、例えばリクエストが、リクエストに含まれるサイズがデータ量閾値以上のデータをストレージに保存する処理を要求する場合に、リクエストを分散せずに、プライマリ機で実行することとすればよい。   According to the fourth embodiment, it is possible to determine whether the device itself accepts a request from a client or a request as a distributed processing destination by checking the header. For example, when the number of distributions is 0, it may be determined that a request is received from a client. When functioning as a primary machine that receives a request from a client, all servers may have the function to determine whether or not the machine is a primary machine. For example, if a request requires processing to store large data included in the request in the storage, distributing requests containing large data may increase the load on the network. Such processing may be performed by the primary machine. More specifically, for example, when a request requests a process for storing data whose size is greater than or equal to the data amount threshold in the storage, the request is executed on the primary machine without distributing the request. Good.

[第5実施形態]
次に、本発明の第5実施形態における分散判定処理手順について図8、9を参照して説明する。なお、上述した各実施形態と同様の構成及び同様の手順については説明を省略する。本実施形態においては、図2に示したブロック図に加え、タイムアウトチェック部32を設けている。タイムアウトチェック部32は、管理部21がリクエストを受け付けてから起算される計測時間が所定時間を経過したか否かを判定するタイムアウトチェック手段である。所定時間とは、タイムアウト判定を行うための閾値時間であり、例えば10秒等のタイムアウト値を設定するものであってもよい。
[Fifth Embodiment]
Next, a dispersion determination processing procedure according to the fifth embodiment of the present invention will be described with reference to FIGS. In addition, description is abbreviate | omitted about the structure similar to each embodiment mentioned above, and the same procedure. In this embodiment, a timeout check unit 32 is provided in addition to the block diagram shown in FIG. The timeout check unit 32 is a timeout check unit that determines whether or not a measurement time calculated after the management unit 21 receives a request has passed a predetermined time. The predetermined time is a threshold time for performing timeout determination, and may be a time-out value such as 10 seconds, for example.

そして、タイムアウトチェック部32により計測時間が所定時間を経過したと判定されたとき、管理部21は、分散処理を中止する。つまり、分散先に転送したリクエストの応答を待っている状態を中止する。   When the time-out check unit 32 determines that the measurement time has passed the predetermined time, the management unit 21 stops the distributed processing. That is, the state waiting for the response of the request transferred to the distribution destination is canceled.

まず、管理部21は、クライアント10からのリクエスト内容から、リクエスト投入時間を抽出し、例えば不図示のタイマーによってリクエスト投入からの計測時間を計測する。そして、管理部21は、タイムアウトチェック部32に対してタイムアウトチェックを依頼する[1.8]。タイムアウトチェック部32は、装置内等に保持されたタイムアウト値をチェックし、計測時間がタイムアウト値を超過しているか否かを判定する[1.8.1]。   First, the management unit 21 extracts the request input time from the request content from the client 10, and measures the measurement time from the request input by a timer (not shown), for example. Then, the management unit 21 requests the timeout check unit 32 to perform a timeout check [1.8]. The timeout check unit 32 checks the timeout value held in the apparatus or the like, and determines whether or not the measurement time exceeds the timeout value [1.8.1].

そして、管理部21は、タイムアウトチェック部32により、タイムアウト値を超過しているとの判定を受け取った場合、分散処理を中止し、応答待ち状態を中止する[1.9]。そして、管理部21は、リクエスト処理部27にリクエスト処理を依頼する[1.10]。   When the timeout check unit 32 receives a determination that the timeout value has been exceeded, the management unit 21 stops the distributed processing and stops waiting for a response [1.9]. Then, the management unit 21 requests the request processing unit 27 for request processing [1.10].

第5実施形態によれば、分散先において処理を行う際に、例えば、何らかのエラーが発生し、処理が終わらない、又は分散元に応答できない場合に、一定時間を経過すると、分散元が、応答待ち状態を中止し処理を行うことにより、応答性を改善することができる。つまり、第5実施形態によれば、このような場合でも、タイムアウト値を参照して、分散処理における計測時間がタイムアウト値を超えたら、その時点で分散を行わず、いずれかのサーバにおいて処理を実行するものとしてよい。   According to the fifth embodiment, when processing is performed at the distribution destination, for example, when an error occurs and the processing does not end or cannot respond to the distribution source, the distribution source returns a response after a certain period of time. Responsiveness can be improved by canceling the wait state and performing processing. That is, according to the fifth embodiment, even in such a case, referring to the timeout value, if the measurement time in the distributed processing exceeds the timeout value, the distribution is not performed at that time, and the processing is performed in any server. It may be executed.

[変形例]
次に、本発明の第5実施形態の変形例について図10を参照して説明する。なお、上述した各実施形態と同様の手順については説明を省略する。本変形例において、第5実施形態と異なり、タイムアウト判定の際、管理部21がクライアント10にエラーを通知するものとしてもよい。
[Modification]
Next, a modification of the fifth embodiment of the present invention will be described with reference to FIG. In addition, description is abbreviate | omitted about the procedure similar to each embodiment mentioned above. In the present modification, unlike the fifth embodiment, the management unit 21 may notify the client 10 of an error when making a timeout determination.

つまり、管理部21は、計測時間がタイムアウト値を超過していると判定されたとき、エラー通知をクライアント10に返却する[1.11]。これにより、ユーザーはサーバによる分散処理ができない状態であることを認識することが可能となる。   That is, when it is determined that the measurement time exceeds the timeout value, the management unit 21 returns an error notification to the client 10 [1.11]. As a result, the user can recognize that the server cannot perform distributed processing.

なお、上述する各実施の形態は、本発明の好適な実施の形態であり、本発明の要旨を逸脱しない範囲内において種々変更実施が可能である。例えば、上述した本実施形態の情報処理装置における各処理を、ハードウェア、又は、ソフトウェア、あるいは、両者の複合構成を用いて実行することも可能である。   Each of the above-described embodiments is a preferred embodiment of the present invention, and various modifications can be made without departing from the scope of the present invention. For example, each process in the information processing apparatus of the present embodiment described above can be executed using hardware, software, or a combined configuration of both.

なお、ソフトウェアを用いて処理を実行する場合には、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれているコンピュータ内のメモリにインストールして実行させることが可能である。あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。   In the case of executing processing using software, it is possible to install and execute a program in which a processing sequence is recorded in a memory in a computer incorporated in dedicated hardware. Alternatively, the program can be installed and executed on a general-purpose computer capable of executing various processes.

また、上述した各実施形態においては、分散処理情報保持部24において、分散先のサーバのIPアドレス等を保持し、分散処理を行う場合等に分散処理情報保持部24を参照することとしていたが、IPアドレス等の分散先情報を、別途、分散先のサーバと異なる外部サーバに記憶させておくものとしてもよい。これにより、例えばIPアドレス等の分散先の情報を一元管理することが可能となる。   In each of the embodiments described above, the distributed processing information holding unit 24 holds the IP address of the distribution destination server and refers to the distributed processing information holding unit 24 when performing distributed processing. The distribution destination information such as the IP address may be separately stored in an external server different from the distribution destination server. As a result, for example, information on the distribution destination such as an IP address can be centrally managed.

また、分散先のサーバが複数設定されているような場合は、例えばそれら全てのサーバのIPアドレス等を外部サーバで一括管理し、分散処理を行う場合で、外部サーバを参照する際に、例えばラウンドロビン方式を用いて分散先のサーバ情報としてIPアドレスを取得することとしてもよい。   Also, when a plurality of distribution destination servers are set, for example, when managing the IP addresses of all of the servers collectively with an external server and performing distributed processing, when referring to the external server, for example, An IP address may be acquired as server information of a distribution destination using a round robin method.

また、各サーバのリソース状況を外部サーバにて一元管理し、分散判定の際、外部サーバに格納されたリソース状況を参照して、分散先のサーバを判定することとしてもよい。   Alternatively, the resource status of each server may be centrally managed by an external server, and the distribution destination server may be determined by referring to the resource status stored in the external server when determining the distribution.

さらに、上述してきた本実施形態は、分散先のサーバとして、例えば図11に示すようなプリントサーバを用いたプルプリントシステム等に適用することが好ましい。本システムは、クライアント100と、プリントサーバ200と、プリントサーバ300と、ストレージ310と、ストレージ320とが、それぞれ、ネットワーク510、ネットワーク520、ネットワーク530、ネットワーク540により接続されて構成されている。   Further, the present embodiment described above is preferably applied to a pull print system using a print server as shown in FIG. In this system, a client 100, a print server 200, a print server 300, a storage 310, and a storage 320 are connected by a network 510, a network 520, a network 530, and a network 540, respectively.

本例の場合、クライアント100からのリクエストとしては、例えば、「印刷ジョブの保存」、「印刷ジョブリストの取得」、「印刷設定の変更」、「プレビュー画像の生成」、「印刷ジョブの取得」などがある。   In this example, as a request from the client 100, for example, “save print job”, “get print job list”, “change print settings”, “generate preview image”, “get print job” and so on.

また、プリントサーバで実行される内部処理としては、例えば「印刷ジョブ、印刷ジョブ属性の保存」、「印刷ジョブのパース、又は編集」、「印刷ジョブのパースと画像データの生成」、「印刷ジョブリストの取得」、「印刷ジョブの取得」などがある。そして、例えば、印刷ジョブの属性情報等の書誌情報をストレージ310に保存し、印刷ジョブやプレビュー画像データをストレージ320に保存しておく。プリントサーバは、これらの情報を必要なときに取得して処理を実行する。   The internal processing executed by the print server includes, for example, “print job, print job attribute storage”, “print job parsing or editing”, “print job parsing and image data generation”, “print job “List acquisition”, “Print job acquisition”, and the like. For example, bibliographic information such as print job attribute information is stored in the storage 310, and a print job and preview image data are stored in the storage 320. The print server acquires these pieces of information when necessary and executes processing.

このような場合、各プリントサーバが処理をスムーズに行えるクライアントの上限数を決める際に、サーバ内部でのCPU負荷の高い処理となる印刷ジョブのパース、編集と画像データの生成を、どれだけ並行に行えるかという点が重要である。   In such a case, when deciding the upper limit number of clients that each print server can process smoothly, how much parallel print job parsing, editing, and image data generation in the server is a CPU-intensive process It is important to be able to do it.

例えば、上記のような処理を100処理分、並行で処理させた場合に、プリントサーバのCPU使用率が常に100パーセントになると、レスポンスが遅くなることが懸念される。そこで、このことが誘因となる例えば処理の停止等を回避し、クライアント数を増やす対策を講じる必要がある。   For example, when processing such as the above is performed in parallel for 100 processes, if the CPU usage rate of the print server is always 100%, the response may be delayed. Therefore, it is necessary to take measures to increase the number of clients by avoiding, for example, the suspension of processing, which is an incentive for this.

例えば、キューに処理をためて、一定数以上は並行処理ができないようにする等の対策もあるが、この場合ユーザーの待ち時間が長くなる。他方、本実施形態を適用すれば、プリントサーバ内部でのCPUへの負荷を分散でき、クライアントの上限数を簡単に増やすことが可能となる。   For example, there is a measure such that processing is performed in a queue so that parallel processing cannot be performed for a certain number or more, but in this case, the waiting time of the user becomes long. On the other hand, if this embodiment is applied, the load on the CPU in the print server can be distributed, and the upper limit number of clients can be easily increased.

例えば、クライアント100からのリクエストとしての印刷ジョブがrawデータ形式でプリントサーバ200へ投入されると、プリントサーバ200は本実施形態を適用した分散判定を行う。   For example, when a print job as a request from the client 100 is input to the print server 200 in the raw data format, the print server 200 performs distribution determination to which the present embodiment is applied.

プリントサーバ200は、分散判定により印刷ジョブに対する処理の分散を行うと判定すると、次にプリントサーバ300の生存を確認する。プリントサーバ200は、プリントサーバ300の生存を確認すると、プリントサーバ300へ印刷ジョブを投入する。   If the print server 200 determines that the process for the print job is to be distributed according to the distribution determination, the print server 200 confirms the existence of the print server 300 next. When the print server 200 confirms the existence of the print server 300, the print server 200 inputs a print job to the print server 300.

プリントサーバ300も、本実施形態を適用した分散判定処理を行い、分散を行わないと判定すると、印刷ジョブからプレビュー画像を生成し、プレビュー画像と印刷ジョブをストレージ320に保存する処理を実行する。また、プリントサーバ300は、ジョブの書誌情報をクライアントが印刷ジョブ投入時に呼び出したAPI(Application Programming Interface)のパラメータや印刷ジョブから抽出しストレージ310に保存する処理を実行する。そして、処理結果をプリントサーバ200を介してクライアント100に応答する。   When the print server 300 also performs the distribution determination process to which the present embodiment is applied and determines that the distribution is not performed, the print server 300 generates a preview image from the print job and executes a process of storing the preview image and the print job in the storage 320. Further, the print server 300 executes processing for extracting bibliographic information of a job from API (Application Programming Interface) parameters and print jobs that the client calls when the print job is input and storing them in the storage 310. Then, the processing result is returned to the client 100 via the print server 200.

一方、プリントサーバ200は、実行される内部処理によって、分散判定により印刷ジョブに対する処理の分散を行わないと判定することとしてもよい。ここで、ジョブデータは一般的に、印刷ジョブを制御するプリンタジョブランゲージ(以下、「PJL」という。)コマンド等のジョブ制御言語コマンドの部分と、ポストスクリプトやプリンター制御言語などのページ記述言語形式の印刷データ本体とを含む。   On the other hand, the print server 200 may determine not to distribute the processing for the print job by the distribution determination based on the internal processing to be executed. Here, the job data is generally a job control language command portion such as a printer job language (hereinafter referred to as “PJL”) command for controlling a print job, and a page description language format such as a postscript or a printer control language. Print data main body.

例えば、印刷ジョブの部数、カラー、両面などの属性を編集する内部処理が実行される際に、ジョブデータのPJL部分に対して編集を行う一方、印刷データ本体に対する編集は行わないようにしてもよい。   For example, when internal processing for editing attributes such as the number of copies, color, and both sides of a print job is executed, the PJL portion of job data is edited while the print data body is not edited. Good.

また、ジョブデータのPJL部分は、ジョブデータ本体に比べて、データ量が著しく少ないのが一般的である。ジョブデータのPJL部分に対する処理は、ジョブデータ本体に対する処理に比べて、リソースの消費量が少なく、短時間で処理できるため、プリントサーバに大きな負荷がかからない。   The PJL portion of job data generally has a significantly smaller data amount than the job data body. The processing for the PJL portion of the job data consumes less resources than the processing for the job data main body and can be processed in a short time, so that a large load is not applied to the print server.

さらに、ジョブデータ本体のデータ量が大きい場合に、リクエストと共にジョブデータ本体が分散先に送信されるため、リクエストの送信による分散元に対する負荷、リクエストの受信による分散先に対する負荷、又はデータ転送によるネットワークに対する負荷が大きくなる可能性がある。従って、印刷ジョブの属性を編集する内部処理が実行される際に、分散判定により分散処理を行わずに、自装置で処理を実行するのが望ましい。   Furthermore, when the amount of data in the job data body is large, the job data body is sent to the distribution destination along with the request, so the load on the distribution source due to the request transmission, the load on the distribution destination due to the reception of the request, or the network due to data transfer There is a possibility that the load on Therefore, when internal processing for editing the attributes of a print job is executed, it is desirable to execute the processing by the own apparatus without performing the distributed processing by the distribution determination.

10、100 クライアント
20、30 サーバ
21 管理部
22 分散判定部
23 通信部
24 分散処理情報保持部
25 リクエスト解析部
26 レスポンス解析部
27 リクエスト処理部
31、310、320 ストレージ
32 タイムアウトチェック部
51、52、53、510、520、530、540 ネットワーク
200、300 プリントサーバ
10, 100 Client 20, 30 Server 21 Management unit 22 Distribution determination unit 23 Communication unit 24 Distributed processing information holding unit 25 Request analysis unit 26 Response analysis unit 27 Request processing unit 31, 310, 320 Storage 32 Timeout check unit 51, 52, 53, 510, 520, 530, 540 Network 200, 300 Print server

特開2002−91936号公報JP 2002-91936 A

Claims (13)

クライアントから送信されたリクエストを受け付けるリクエスト受付手段と、
前記リクエスト受付手段により受け付けられた前記リクエストが要求した処理の実行を制御する制御手段と、
前記リクエスト受付手段により受け付けられた前記リクエストを分散する分散先である第2の情報処理装置を識別する分散先識別情報であって、分散処理情報保持手段により保持された前記分散先識別情報を取得する分散処理情報取得手段と、
前記リクエスト受付手段により受け付けられた前記リクエストに含まれる処理データのデータ量に基づき、ネットワークを介して接続された他の情報処理装置に対して当該リクエストを分散するか否かを判定する分散判定手段と、
前記分散判定手段により前記他の情報処理装置に対して前記リクエストを分散すると判定された場合に、当該リクエストを、前記分散処理情報取得手段により取得された前記分散先識別情報に基づいて識別された前記第2の情報処理装置へ転送する転送手段と、を備え、
前記制御手段は、
前記分散判定手段により、前記他の情報処理装置に対して前記リクエストを分散すると判定された場合に、当該リクエストが要求した、当該リクエストに含まれる前記処理データに対する処理を実行しないように制御し、前記分散判定手段により、前記他の情報処理装置に対して前記リクエストを分散しないと判定された場合に、当該リクエストが要求した、当該リクエストに含まれる前記処理データに対する処理を実行するように制御する
ことを特徴とする第1の情報処理装置。
A request receiving means for receiving a request sent from a client;
Control means for controlling execution of processing requested by the request received by the request receiving means;
The distribution destination identification information for identifying the second information processing apparatus that is the distribution destination that distributes the request received by the request reception means, and acquires the distribution destination identification information held by the distributed processing information holding means Distributed processing information acquisition means for
A distribution determination unit that determines whether to distribute the request to other information processing devices connected via a network based on the data amount of the processing data included in the request received by the request reception unit. When,
When it is determined by the distribution determination unit that the request is distributed to the other information processing apparatus, the request is identified based on the distribution destination identification information acquired by the distributed processing information acquisition unit. Transfer means for transferring to the second information processing apparatus,
The control means includes
When it is determined by the distribution determination unit that the request is distributed to the other information processing apparatus, control is performed so as not to execute the processing for the processing data included in the request requested by the request, When it is determined by the distribution determination unit that the request is not distributed to the other information processing apparatus, control is performed so as to execute processing for the processing data included in the request requested by the request. A first information processing apparatus.
前記分散判定手段は、
前記データ量が予め設定されたデータ量閾値以上である場合に、前記他の情報処理装置に対して前記リクエストを分散すると判定することを特徴とする請求項1記載の第1の情報処理装置。
The dispersion determining means includes
2. The first information processing apparatus according to claim 1, wherein when the data amount is equal to or greater than a preset data amount threshold, it is determined that the request is distributed to the other information processing apparatus.
前記分散判定手段は、前記リクエストに含まれる属性情報に基づいて前記データ量を取得し、
取得した前記データ量に基づき、前記他の情報処理装置に対して当該リクエストを分散するか否かを判定し、
前記転送手段は、
前記分散判定手段により前記他の情報処理装置に対して当該リクエストを分散すると判定された場合に、当該リクエストに含まれる前記処理データを、前記第1の情報処理装置と、前記分散処理情報取得手段により取得された前記分散先識別情報に基づいて識別された前記第2の情報処理装置とがアクセス可能な記憶手段に送信し、
送信した当該処理データの取得に用いるアクセス情報を当該第2の情報処理装置に送信することを特徴とする請求項1又は2記載の第1の情報処理装置。
The distribution determination unit acquires the data amount based on attribute information included in the request,
Based on the acquired amount of data, determine whether to distribute the request to the other information processing apparatus,
The transfer means includes
When it is determined by the distribution determination unit that the request is distributed to the other information processing device, the processing data included in the request is transmitted to the first information processing device and the distributed processing information acquisition unit. Transmitted to the storage means accessible by the second information processing apparatus identified based on the distribution destination identification information acquired by
The first information processing apparatus according to claim 1, wherein access information used to acquire the transmitted processing data is transmitted to the second information processing apparatus.
リソースの使用状況を前記データ量に換算する換算手段とを備え、
前記分散判定手段は、
前記リクエスト受付手段により受け付けられた前記リクエストに含まれる処理データのデータ量と、前記換算手段により前記リソースの使用状況が換算されたデータ量である換算データ量とに基づき、前記他の情報処理装置に対して当該リクエストを分散するか否かを判定することを特徴とする請求項1から3の何れか1項に記載の第1の情報処理装置。
Conversion means for converting resource usage into the data amount;
The dispersion determining means includes
The other information processing apparatus based on the data amount of the processing data included in the request received by the request receiving unit and the converted data amount that is the data amount converted from the resource usage state by the converting unit 4. The first information processing apparatus according to claim 1, wherein the first information processing apparatus determines whether to distribute the request to the first information processing apparatus.
前記分散処理情報取得手段は、
分散処理情報保持手段により保持された前記他の情報処理装置に対して前記リクエストを分散する回数の上限である分散上限値を前記分散処理情報保持手段から取得し、
前記分散判定手段は、
前記他の情報処理装置に対して前記リクエストを分散するか否かを判定する際、当該リクエストに含まれる当該リクエストが分散された回数を示す分散回数情報と、前記分散処理情報取得手段により取得された前記分散上限値とに基づいて判定することを特徴とする請求項1から4の何れか1項に記載の第1の情報処理装置。
The distributed processing information acquisition means includes
Obtaining from the distributed processing information holding means a distribution upper limit value that is an upper limit of the number of times the request is distributed to the other information processing apparatus held by the distributed processing information holding means;
The dispersion determining means includes
When determining whether to distribute the request to the other information processing apparatus, the distribution count information indicating the number of times the request included in the request is distributed, and the distributed processing information acquisition unit 5. The first information processing apparatus according to claim 1, wherein the determination is made based on the dispersion upper limit value.
前記分散判定手段は、
前記分散回数情報が前記分散上限値に達した場合に、前記他の情報処理装置に対して前記リクエストを分散しないと判定することを特徴とする請求項5に記載の第1の情報処理装置。
The dispersion determining means includes
6. The first information processing apparatus according to claim 5, wherein when the distribution count information reaches the distribution upper limit value, it is determined that the request is not distributed to the other information processing apparatus.
前記転送手段により前記第2の情報処理装置に転送された前記リクエストに応じて、当該第2の情報処理装置から応答されたレスポンスを受け付けるレスポンス受付手段と、
前記レスポンス受付手段により受け付けられた前記レスポンスに基づき、前記リクエストを送信した前記クライアントに当該リクエストを応答する応答手段と、
前記リクエスト受付手段が前記リクエストを受け付けてから起算される計測時間が予め設定された時間を超過したか否かを判定するタイムアウトチェック手段と、を備え、
前記制御手段は、
前記分散判定手段により、前記タイムアウトチェック手段により前記計測時間が予め設定された時間を超過したと判定された場合に、前記リクエストの分散を中止するように制御し、当該リクエストが要求した、当該リクエストに含まれる前記処理データに対する処理を実行するように制御し、
前記応答手段は、
実行するように制御された当該処理の実行結果に基づき、当該リクエストを送信した前記クライアントに当該リクエストを応答することを特徴とする請求項1から6の何れか1項に記載の第1の情報処理装置。
Response accepting means for accepting a response returned from the second information processing apparatus in response to the request transferred to the second information processing apparatus by the transfer means;
Based on the response received by the response receiving means, response means for responding the request to the client that sent the request;
Timeout check means for determining whether or not the measurement time calculated after the request reception means has received the request exceeds a preset time,
The control means includes
When the distribution determination unit determines that the measurement time has exceeded a preset time by the timeout check unit, the distribution request is controlled to stop the distribution of the request, and the request requested by the request Control to execute processing on the processing data included in
The response means includes
7. The first information according to claim 1, wherein the request is returned to the client that has transmitted the request based on an execution result of the process controlled to be executed. Processing equipment.
前記リクエスト受付手段は、
前記タイムアウトチェック手段により前記計測時間が予め設定された時間を超過したと判定された場合に、前記クライアントへエラーを通知することを特徴とする請求項7記載の第1の情報処理装置。
The request receiving means
8. The first information processing apparatus according to claim 7, wherein an error is notified to the client when the time-out check means determines that the measurement time has exceeded a preset time.
前記リクエスト受付手段により受け付けられた前記リクエストが要求した処理は、当該リクエストに含まれる印刷ジョブデータに対する処理であって、
前記分散判定手段は、
当該処理が、前記印刷ジョブデータのページ記述言語に対する処理でない場合に、前記他の情報処理装置に対して当該リクエストを分散しないと判定する請求項1から8の何れかに記載の第1の情報処理装置。
The process requested by the request received by the request receiving unit is a process for print job data included in the request,
The dispersion determining means includes
9. The first information according to claim 1, wherein when the process is not a process for a page description language of the print job data, it is determined that the request is not distributed to the other information processing apparatus. Processing equipment.
前記分散判定手段は、
当該処理が、前記印刷ジョブデータのプリンタジョブランゲージに対する処理であった場合に、前記他の情報処理装置に対して当該リクエストを分散しないと判定する請求項9に記載の第1の情報処理装置。
The dispersion determining means includes
The first information processing apparatus according to claim 9, wherein when the process is a process for a printer job language of the print job data, it is determined that the request is not distributed to the other information processing apparatus.
2以上の情報処理装置がネットワークにより接続された負荷分散システムであって、
第1の情報処理装置は、
クライアントから送信されたリクエストを受け付ける第1のリクエスト受付手段と、
前記第1のリクエスト受付手段により受け付けられた前記リクエストが要求した処理の実行を制御する第1の制御手段と、
前記第1のリクエスト受付手段により受け付けられた前記リクエストを分散する分散先である第2の情報処理装置を識別する分散先識別情報であって、第1の分散処理情報保持手段により保持された前記分散先識別情報を取得する第1の分散処理情報取得手段と、
前記第1のリクエスト受付手段により受け付けられた前記リクエストに含まれる処理データのデータ量に基づき、ネットワークを介して接続された他の情報処理装置に対して当該リクエストを分散するか否かを判定する第1の分散判定手段と、
前記第1の分散判定手段により前記他の情報処理装置に対して前記リクエストを分散すると判定された場合に、当該リクエストを、前記第1の分散処理情報取得手段により取得された前記分散先識別情報に基づいて識別された前記第2の情報処理装置へ転送する第1の転送手段と、を備え、
前記第1の制御手段は、
前記第1の分散判定手段により、前記他の情報処理装置に対して前記リクエストを分散すると判定された場合に、当該リクエストが要求した、当該リクエストに含まれる前記処理データに対する処理を実行しないように制御し、前記第1の分散判定手段により、前記他の情報処理装置に対して前記リクエストを分散しないと判定された場合に、当該リクエストが要求した、当該リクエストに含まれる前記処理データに対する処理を実行するように制御し、
前記第2の情報処理装置は、
前記第1の情報処理装置から転送されたリクエストを受け付ける第2のリクエスト受付手段と、
前記第2のリクエスト受付手段により受け付けられた前記リクエストが要求した処理の実行を制御する第2の制御手段と、
前記第2のリクエスト受付手段により受け付けられた前記リクエストを分散する分散先である第3の情報処理装置を識別する分散先識別情報であって、第2の分散処理情報保持手段により保持された前記分散先識別情報を取得する第2の分散処理情報取得手段と、
前記第2のリクエスト受付手段により受け付けられた前記リクエストに含まれる処理データのデータ量に基づき、ネットワークを介して接続された他の情報処理装置に対して当該リクエストを分散するか否かを判定する第2の分散判定手段と、
前記第2の分散判定手段により前記他の情報処理装置に対して前記リクエストを分散すると判定された場合に、当該リクエストを、前記第2の分散処理情報取得手段により取得された前記分散先識別情報に基づいて識別された前記第3の情報処理装置へ転送する第2の転送手段と、を備え、
前記第2の制御手段は、
前記第2の分散判定手段により、前記他の情報処理装置に対して前記リクエストを分散すると判定された場合に、当該リクエストが要求した、当該リクエストに含まれる前記処理データに対する処理を実行しないように制御し、前記第2の分散判定手段により、前記他の情報処理装置に対して前記リクエストを分散しないと判定された場合に、当該リクエストが要求した、当該リクエストに含まれる前記処理データに対する処理を実行するように制御する
ことを特徴とする負荷分散システム。
A load balancing system in which two or more information processing devices are connected by a network,
The first information processing apparatus
First request accepting means for accepting a request transmitted from a client;
First control means for controlling execution of processing requested by the request received by the first request receiving means;
Distributing destination identification information for identifying a second information processing apparatus that is a distribution destination for distributing the request received by the first request receiving means, and held by the first distributed processing information holding means First distributed processing information acquisition means for acquiring distribution destination identification information;
Based on the amount of processing data included in the request received by the first request receiving means, it is determined whether to distribute the request to other information processing apparatuses connected via a network. First dispersion determination means;
The distribution destination identification information acquired by the first distributed processing information acquisition unit when the first distribution determination unit determines to distribute the request to the other information processing apparatus. And a first transfer means for transferring to the second information processing apparatus identified based on
The first control means includes
When the first distribution determination unit determines that the request is distributed to the other information processing apparatus, the processing for the processing data included in the request requested by the request is not performed. And when the first distribution determination unit determines that the request is not distributed to the other information processing apparatus, the request for the processing data included in the request requested by the request is performed. Control to run,
The second information processing apparatus
Second request receiving means for receiving a request transferred from the first information processing apparatus;
Second control means for controlling execution of processing requested by the request accepted by the second request acceptance means;
Distributing destination identification information for identifying a third information processing apparatus that is a distribution destination for distributing the request received by the second request receiving means, and held by the second distributed processing information holding means Second distributed processing information acquisition means for acquiring distribution destination identification information;
Based on the amount of processing data included in the request received by the second request receiving means, it is determined whether to distribute the request to other information processing apparatuses connected via the network. A second dispersion determination unit;
The distribution destination identification information acquired by the second distributed processing information acquisition unit when the second distribution determination unit determines to distribute the request to the other information processing apparatus. And a second transfer means for transferring to the third information processing apparatus identified based on
The second control means includes
When the second distribution determining unit determines that the request is distributed to the other information processing apparatus, the processing for the processing data included in the request requested by the request is not performed. And when the second distribution determination unit determines that the request is not distributed to the other information processing apparatus, the processing for the processing data included in the request requested by the request is performed. A load balancing system that is controlled to execute.
2以上の情報処理装置がネットワークにより接続されたシステムの負荷分散方法であって、
第1の情報処理装置は、
クライアントから送信されたリクエストを受け付けて第1の記憶部に記憶するステップと、
前記第1の記憶部に記憶された前記リクエストが要求した処理の実行を制御するステップと、
前記第1の記憶部に記憶された前記リクエストを分散する分散先である第2の情報処理装置を識別する分散先識別情報であって、第1の分散処理情報保持部に保持された前記分散先識別情報を取得して前記第1の記憶部に記憶するステップと、
前記第1の記憶部に記憶された前記リクエストに含まれる処理データのデータ量に基づき、ネットワークを介して接続された他の情報処理装置に対して当該リクエストを分散するか否かを判定するステップと、
前記他の情報処理装置に対して前記リクエストを分散すると判定された場合に、当該リクエストを、前記第1の記憶部に記憶された前記分散先識別情報に基づいて識別された前記第2の情報処理装置へ転送するステップと、
前記他の情報処理装置に対して前記リクエストを分散すると判定された場合に、当該リクエストが要求した、当該リクエストに含まれる前記処理データに対する処理を実行しないように制御するステップと、
前記他の情報処理装置に対して前記リクエストを分散しないと判定された場合に、当該リクエストが要求した、当該リクエストに含まれる前記処理データに対する処理を実行するように制御するステップと、を備え、
前記第2の情報処理装置は、
前記第1の情報処理装置から転送されたリクエストを受け付けて第2の記憶部に記憶するステップと、
前記第2の記憶部に記憶された前記リクエストが要求した処理の実行を制御するステップと、
前記第2の記憶部に記憶された前記リクエストを分散する分散先である第3の情報処理装置を識別する分散先識別情報であって、第2の分散処理情報保持部に保持された前記分散先識別情報を取得して前記第2の記憶部に記憶するステップと、
前記第2の記憶部に記憶された前記リクエストに含まれる処理データのデータ量に基づき、ネットワークを介して接続された他の情報処理装置に対して当該リクエストを分散するか否かを判定するステップと、
前記他の情報処理装置に対して前記リクエストを分散すると判定された場合に、当該リクエストを、前記第2の記憶部に記憶された前記分散先識別情報に基づいて識別された前記第3の情報処理装置へ転送するステップと、
前記他の情報処理装置に対して前記リクエストを分散すると判定された場合に、当該リクエストが要求した、当該リクエストに含まれる前記処理データに対する処理を実行しないように制御するステップと、
前記他の情報処理装置に対して前記リクエストを分散しないと判定された場合に、当該リクエストが要求した、当該リクエストに含まれる前記処理データに対する処理を実行するように制御するステップと、
を備えることを特徴とする負荷分散方法。
A load balancing method for a system in which two or more information processing devices are connected by a network,
The first information processing apparatus
Receiving a request sent from the client and storing it in the first storage unit;
Controlling execution of processing requested by the request stored in the first storage unit;
The distribution destination identification information for identifying a second information processing apparatus that is a distribution destination for distributing the request stored in the first storage unit, the distribution being held in the first distributed processing information holding unit Obtaining pre-identification information and storing it in the first storage unit;
Determining whether to distribute the request to other information processing devices connected via a network based on the amount of processing data included in the request stored in the first storage unit When,
When it is determined that the request is distributed to the other information processing apparatus, the request is identified based on the distribution destination identification information stored in the first storage unit. Transferring to the processing device;
When it is determined that the request is distributed to the other information processing apparatus, control is performed so as not to execute processing for the processing data included in the request requested by the request;
When it is determined that the request is not distributed to the other information processing apparatus, the request is made to control the processing data included in the request to be executed.
The second information processing apparatus
Receiving a request transferred from the first information processing apparatus and storing it in a second storage unit;
Controlling execution of processing requested by the request stored in the second storage unit;
The distribution destination identification information for identifying a third information processing apparatus that is a distribution destination for distributing the request stored in the second storage unit, the distribution being held in the second distributed processing information holding unit Obtaining pre-identification information and storing it in the second storage unit;
Determining whether to distribute the request to other information processing apparatuses connected via a network based on the amount of processing data included in the request stored in the second storage unit When,
When it is determined that the request is distributed to the other information processing apparatus, the request is identified based on the distribution destination identification information stored in the second storage unit. Transferring to the processing device;
When it is determined that the request is distributed to the other information processing apparatus, control is performed so as not to execute processing for the processing data included in the request requested by the request;
When it is determined that the request is not distributed to the other information processing apparatus, the control requesting the request to perform processing on the processing data included in the request;
A load balancing method comprising:
第1の情報処理装置のプログラムであって、
クライアントから送信されたリクエストを受け付けて記憶部に記憶する処理と、
前記記憶部に記憶された前記リクエストが要求した処理の実行を制御する処理と、
前記記憶部に記憶された前記リクエストを分散する分散先である第2の情報処理装置を識別する分散先識別情報であって、分散処理情報保持部により保持された前記分散先識別情報を取得して前記記憶部に記憶する処理と、
前記記憶部に記憶された前記リクエストに含まれる処理データのデータ量に基づき、ネットワークを介して接続された他の情報処理装置に対して当該リクエストを分散するか否かを判定する処理と、
前記他の情報処理装置に対して前記リクエストを分散すると判定された場合に、当該リクエストを前記記憶部に記憶された前記分散先識別情報に基づいて識別された前記第2の情報処理装置へ転送する処理と、
前記他の情報処理装置に対して前記リクエストを分散すると判定された場合に、当該リクエストが要求した、当該リクエストに含まれる前記処理データに対する処理を実行しないように制御する処理と、
前記他の情報処理装置に対して前記リクエストを分散しないと判定された場合に、当該リクエストが要求した、当該リクエストに含まれる前記処理データに対する処理を実行するように制御する処理と、
をコンピュータに実行させることを特徴とするプログラム。
A program for a first information processing apparatus,
A process of receiving a request transmitted from a client and storing it in a storage unit;
A process for controlling execution of the process requested by the request stored in the storage unit;
The distribution destination identification information for identifying a second information processing apparatus that is a distribution destination that distributes the request stored in the storage unit, and acquires the distribution destination identification information held by the distributed processing information holding unit Processing to be stored in the storage unit,
A process of determining whether to distribute the request to other information processing apparatuses connected via a network based on the amount of processing data included in the request stored in the storage unit;
When it is determined that the request is distributed to the other information processing apparatus, the request is transferred to the second information processing apparatus identified based on the distribution destination identification information stored in the storage unit Processing to
When it is determined that the request is distributed to the other information processing apparatus, a process for controlling the processing data included in the request that is requested by the request not to be executed;
When it is determined that the request is not distributed to the other information processing apparatus, a process for controlling the process data included in the request that is requested by the request to be executed;
A program that causes a computer to execute.
JP2014170862A 2014-08-25 2014-08-25 Information processing apparatus, load sharing system, load sharing method, and program Pending JP2016045802A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014170862A JP2016045802A (en) 2014-08-25 2014-08-25 Information processing apparatus, load sharing system, load sharing method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014170862A JP2016045802A (en) 2014-08-25 2014-08-25 Information processing apparatus, load sharing system, load sharing method, and program

Publications (1)

Publication Number Publication Date
JP2016045802A true JP2016045802A (en) 2016-04-04

Family

ID=55636287

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014170862A Pending JP2016045802A (en) 2014-08-25 2014-08-25 Information processing apparatus, load sharing system, load sharing method, and program

Country Status (1)

Country Link
JP (1) JP2016045802A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017200037A1 (en) * 2016-05-20 2017-11-23 株式会社日立製作所 Processing system and program thereof
US11528321B2 (en) 2021-02-19 2022-12-13 Ricoh Company, Ltd. Load balancing system, load balancing method, and non-transitory recording medium

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017200037A1 (en) * 2016-05-20 2017-11-23 株式会社日立製作所 Processing system and program thereof
US11340969B2 (en) 2016-05-20 2022-05-24 Hitachi, Ltd. Processing system for data distribution and program thereof
US11528321B2 (en) 2021-02-19 2022-12-13 Ricoh Company, Ltd. Load balancing system, load balancing method, and non-transitory recording medium

Similar Documents

Publication Publication Date Title
US20210311781A1 (en) Method and system for scalable job processing
JP5022030B2 (en) Computer system, server constituting the same, job execution control method thereof, and program
US8321530B2 (en) Cloud computing system, server computer, device connection method, and storage medium
JP4677813B2 (en) Server performance measurement method, server performance measurement system, and computer program used therefor
JP6289092B2 (en) Information processing apparatus, control method thereof, and computer program
KR20110083084A (en) Apparatus and method for operating server by using virtualization technology
US20160274946A1 (en) System and method for controlling workflow execution, and recording medium
US20190065254A1 (en) Task deployment method, task deployment apparatus and storage medium
CN112104679B (en) Method, apparatus, device and medium for processing hypertext transfer protocol request
JP2016045802A (en) Information processing apparatus, load sharing system, load sharing method, and program
US20160261526A1 (en) Communication apparatus and processor allocation method for the same
JP5984552B2 (en) Load balancing system, load balancing system control method, and computer program
JP5678556B2 (en) Job execution system, job execution device, and program
JP5972094B2 (en) Information processing apparatus, information processing method, and program
US20160006635A1 (en) Monitoring method and monitoring system
US20130148159A1 (en) Job control system and job control method
US8300244B2 (en) Automatic discovery of networked raster image processing engines
JP2015094976A (en) Information processing apparatus, information processing method, and program
JP5884595B2 (en) Message communication method, message communication program, and computer
CN101924782A (en) Network resource service system and method
WO2013065151A1 (en) Computer system, data transmission method, and data transmission program
US11695700B2 (en) Information processing apparatus, computer-readable recording medium storing overload control program, and overload control method
WO2018150481A1 (en) Data control method for distributed processing system, and distributed processing system
JP6702762B2 (en) Information processing apparatus, information processing apparatus control method, and program
US9128774B2 (en) Information processing system for data transfer