JP2011170751A - Bus system - Google Patents
Bus system Download PDFInfo
- Publication number
- JP2011170751A JP2011170751A JP2010035933A JP2010035933A JP2011170751A JP 2011170751 A JP2011170751 A JP 2011170751A JP 2010035933 A JP2010035933 A JP 2010035933A JP 2010035933 A JP2010035933 A JP 2010035933A JP 2011170751 A JP2011170751 A JP 2011170751A
- Authority
- JP
- Japan
- Prior art keywords
- server
- load
- request
- service
- client
- 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.)
- Granted
Links
- 238000012545 processing Methods 0.000 claims abstract description 26
- 238000000034 method Methods 0.000 claims description 13
- 230000004044 response Effects 0.000 claims description 11
- 230000005540 biological transmission Effects 0.000 claims description 7
- 239000003795 chemical substances by application Substances 0.000 description 16
- 238000010586 diagram Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000013256 coordination polymer Substances 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000344 soap Substances 0.000 description 1
Images
Abstract
Description
本発明は、ESB(Enterprise Service Bus)などのバスシステムに関する。 The present invention relates to a bus system such as an ESB (Enterprise Service Bus).
SOA(Service-Oriented Architecture)における既存システムのサービス化を行うために利用される技術として、ESBと呼ばれるバスシステムを利用する方法が存在する。このESB概念は、サービス(アプリケーションやコンポーネント)へのアクセスを行い、複数のサービスを協調・連携動作するSOAシステムを、論理的なソフトウェアバスに基づいて構成するというソフトウェア設計上の考え方である。 As a technique used to service an existing system in SOA (Service-Oriented Architecture), there is a method of using a bus system called ESB. The ESB concept is a concept in software design in which an SOA system that accesses services (applications and components) and cooperates and cooperates with a plurality of services is configured based on a logical software bus.
図9は従来の負荷分散システム50の構成例を示す図である。
各サーバ10a、10bに実装されたアプリケーションなどのサービスA、Bと、各クライアント20a〜20cに実装されたクライアントプログラムCP1〜CP3とは、ESBシステム30を介して接続される。各サービスA、Bと各プログラムCP1〜CP3との間の通信は、全てESBシステム30を介して行われる。なお、各サービスA、BとESBシステム30の間は、汎用的なHTTP、SOAP、JMS等により通信が行われる。
FIG. 9 is a diagram illustrating a configuration example of a conventional
Services A and B such as applications installed in the
ここで、ESBシステム30は、クライアントアプリケーションCPからのリクエストに応じて所望のサービス(例えばサービスA)へアクセスを行うが、リクエストを受けたサービスAを実装したサーバ(例えばサーバ10a)の処理能力が低下している場合には、該サービスAはリクエストを処理しきれないことがある。
Here, the
かかる問題を解消するために、負荷分散を実現するロードバランサをESBシステムに実装することで、単一のサーバに負荷が集中することを防ぐことが昨今では一般的となっている(例えば特許文献1参照)。 In order to solve such a problem, it is now common to prevent a load from being concentrated on a single server by mounting a load balancer that realizes load balancing in the ESB system (for example, Patent Documents). 1).
図10および図11は、ロードバランサ31を搭載したESBシステム30の問題点を説明するための図である。
図10に示すように、クライアントプログラムCP1がサービスAを利用している最中に、クライアントプログラムCP2がサービスBに対してメッセージサイズM1のリクエストを行ったとする。この場合、ESBシステム30のロードバランサ31は、クライアントプログラムCP1によってサーバ10aのサービスAが利用されていることから、すでにリソースが使用されているサーバ10aのサービスBではなく、リソースが使用されていないサーバ10bのサービスBへ該リクエストを送る。この結果、サーバ10aにおいては、サービス10aが利用されることでリソースの50%が使用され、サーバ10bにおいては、サービス10bが利用されることでリソースの40%が使用される(図10参照)。
10 and 11 are diagrams for explaining problems of the
As shown in FIG. 10, it is assumed that the client program CP2 makes a request for the message size M1 to the service B while the client program CP1 is using the service A. In this case, since the load balancer 31 of the
その後、図11に示すように、クライアントプログラムCP3がサービスBに対して、リソースの60%の使用が要求される大きなメッセージサイズM2(>M1)のリクエストを行ったとする。サーバ10bにおいては、すでにサービスBが利用されていることから、ロードバランサ31は、サーバ10aのサービスBへのリクエストを試みる。しかしながら、サーバ10aにおいては、サービスAの利用によりリソースの50%が使用されているため、クライアントプログラムCP3からのリクエストに応えることができない、という問題が生じ得る。
Thereafter, as shown in FIG. 11, it is assumed that the client program CP3 makes a request to the service B with a large message size M2 (> M1) that requires use of 60% of the resource. Since the service B is already used in the
本発明は以上説明した事情を鑑みてなされたものであり、各サーバに要求される負荷を効率よく分散させることが可能なバスシステムを提供することを目的とする。 The present invention has been made in view of the circumstances described above, and an object thereof is to provide a bus system capable of efficiently distributing the load required for each server.
本発明に係るバスシステムは、クライアントからのリクエストに応じてサービスを提供する複数のサーバの負荷状況を収集し、収集結果に基づき負荷分散を実現するバスシステムであって、前記各サーバの負荷状況を収集する収集手段と、前記各サーバが提供したサービスの過去の処理特性に基づき、前記リクエストに応じたサービスの提供に係るサーバの負荷量を予測する予測手段と、収集された前記各サーバの負荷状況と、予測された前記サーバの負荷量に基づいて、リクエスト先となるサーバを選択する選択手段と、選択されたサーバに前記クライアントからのリクエストを送信する送信手段とを備え、前記選択手段は、前記リクエストに応じたサービスを提供することができ、かつ、前記各サーバの負荷状況に応じて設定される優先度の最も高いサーバを、前記リクエスト先となるサーバとして選択することを特徴とする。 A bus system according to the present invention is a bus system that collects load statuses of a plurality of servers that provide services in response to a request from a client, and realizes load distribution based on the collected results, and the load statuses of the servers. Collecting means for collecting the server, prediction means for predicting the load amount of the server related to the provision of the service according to the request based on the past processing characteristics of the service provided by the server, and the collected server A selection unit that selects a server that is a request destination based on the load status and the predicted load amount of the server; and a transmission unit that transmits a request from the client to the selected server. Can provide a service according to the request and is set according to the load status of each server. The highest server, and selects a server to which the request destination.
かかる構成によれば、サーバの負荷状況(別言すればリソースの使用状況)に応じて適切なサーバにリクエストを振り分けるため、効率よくサーバを利用することが可能となる。 According to such a configuration, since the requests are distributed to an appropriate server according to the load status of the server (in other words, the resource usage status), the server can be used efficiently.
以上説明したように、本発明によれば、各サーバに要求される負荷を効率よく分散させることが可能となる。 As described above, according to the present invention, it is possible to efficiently distribute the load required for each server.
以下、本発明の実施の形態について図面を参照しつつ詳細に説明する。 Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
A.本実施形態
(1)実施形態の構成
図1は、本実施形態に係る負荷分散システム500の構成例を示す図である。
複数のサービスを提供するサーバ100と、各サービスを利用するクライアントプログラムCP1が搭載されたクライアント200と、クライアントプログラムCPからのリクエストを適切なサーバ100のサービスに割り振り等を行うESBシステム300とを備えて構成される。なお、図1では説明の便宜上、サーバを2台、クライアントを1台のみ図示しているが、本来は多数のサーバ、クライアントが存在する。また、各サーバ100が提供するサービスの種類(本実施形態ではサービスA、B、Cを想定)や数等も図1に示したものに限定する趣旨でないのはもちろんである。
A. Embodiment (1) Configuration of Embodiment FIG. 1 is a diagram illustrating a configuration example of a load distribution system 500 according to the present embodiment.
A server 100 that provides a plurality of services, a
各サーバ100は、クライアントプログラムCPからのリクエストに応じて、サービスを提供する。サーバ100に実装された各サービスは、サーバ100のハードウェア資源(CPUやROM、RAMなど)と協働することにより、リスナ手段111、アプリケーション実行手段112、リソースモニタ手段113、エージェント手段114を実現する。
Each server 100 provides a service in response to a request from the client program CP. Each service implemented in the server 100 implements a
リスナ手段111は、クライアントプログラムCPからESBシステム300を介してリクエストを受信する一方、アプリケーション実行手段112は、リスナ手段111が受信したリクエストに応じて該サービスの処理を実行する。これらリスナ手段111やアプリケーション実行手段112は、周知のWebサーバソフトウェア(Apache HTTP Serverなど)とHTMLファイルなどによって実現される。
The
リソースモニタ手段113は、サーバ100が提供するサービスごとに、ハードウェアリソース(CPUやメモリなど)の使用状況などをあらわす情報(以下、リソース情報という)を所定タイミングで集計し、エージェント手段114に送信する。各サービス100のエージェント手段114は、ESBシステム300のリスナ手段311bへ送る。
For each service provided by the server 100, the
図2は、サーバ100aの各サービスA、BからESシステム300へ提供されるリソース情報を例示した図である。
図2に示すように、各サービスA、Bが提供するリソース情報には、当該サービスを利用するクライアント200を識別するクライアントIDと、当該クライアント200から送信されるメッセージのサイズ(リクエストメッセージサイズ)と、ハードウェアリソースの詳細な使用状況をあらわす情報(リソース詳細情報)とが含まれている。一例を挙げて説明すると、サービスAの利用に関し、クライアントαから送信されるリクエストメッセージサイズ「2MB」のリクエストに応じて、CPU使用率「20%」、メモリ使用量「40KB」、NIC使用量「10%」のハードウェアリソースが使用される一方、クライアントβから送信されるリクエストメッセージサイズ「1MB」のリクエストに応じて、CPU使用率「10%」、メモリ使用量「20KB」、NIC使用量「10%」のハードウェアリソースが使用される・・・等の情報がサービスAのリソース情報に含まれている。
FIG. 2 is a diagram illustrating resource information provided from the services A and B of the
As shown in FIG. 2, the resource information provided by the services A and B includes a client ID for identifying the
同様に、サービスBの利用に関し、クライアントβから送信されるリクエストメッセージサイズ「2MB」のリクエストに応じて、CPU使用率「20%」、メモリ使用量「20KB」、NIC使用量「10%」のハードウェアリソースが使用される一方、クライアントγから送信されるリクエストメッセージサイズ「3MB」のリクエストに応じて、CPU使用率「30%」、メモリ使用量「40KB」、NIC使用量「15%」のハードウェアリソースが使用される・・・等の情報がサービスSV2のリソース情報に含まれている。 Similarly, regarding the use of the service B, the CPU usage rate “20%”, the memory usage amount “20 KB”, and the NIC usage amount “10%” according to the request message size “2 MB” request transmitted from the client β. While the hardware resource is used, the CPU usage rate is “30%”, the memory usage is “40 KB”, and the NIC usage is “15%” according to the request message size “3 MB” transmitted from the client γ. Information such as hardware resources used is included in the resource information of the service SV2.
なお、上記説明では、サーバ100aに実装された各サービスA、BからESBシステム300へ提供される各リソース情報を例示したが、他のサーバ100に実装された各サービスも同様にしてリソース情報を提供する。
In the above description, the resource information provided to the
ESBシステム300は、ESBシステム300に実装されたソフトウェアがハードウェア資源と協働することにより、リスナ手段311a、311b、エージェント集計手段312、ロードバランサ313、レジストリ更新手段314を実現する。
The ESB
リスナ手段311aは、クライアント200(クライアントプログラムCP)から特定サービス(例えばサービスA)のリクエストなどを受信し、これをロードバランサ313に送信する。リスナ手段311bは、各サービスから送信されるリソース情報を受信し、これをエージェント集計手段312に渡す。
The
エージェント集計手段(収集手段)312は、各サービスから受信するリソース情報(サーバの負荷状況)をまとめることにより、ステータステーブルTA1を作成する。
図3は、ステータステーブルTA1の登録内容を例示した図である。
ステータステーブルTA1には、サービスの種類と、サービスを提供するサーバ100の名前と、当該サーバのリソース詳細情報とが対応づけて登録されている。例えば、サービスAは、サーバ100aとサーバ100bによって提供されており、サーバ100aは、サービスAの利用によりCPU使用率が「60%」、メモリ使用量が「1GB」、NIC使用量が「40%」のハードウェアリソースが使用され、サーバ100bは、サービスSBの利用によりCPU使用率が「20%」、メモリ使用量が「0.5GB」、NIC使用量が「20%」のハードウェアリソースが使用される。
The agent aggregation means (collection means) 312 creates a status table TA1 by collecting resource information (server load status) received from each service.
FIG. 3 is a diagram illustrating registered contents of the status table TA1.
In the status table TA1, the service type, the name of the server 100 that provides the service, and the resource detailed information of the server are registered in association with each other. For example, the service A is provided by the
レジストリ更新手段(予測手段)314は、各サービスから受信するリソース情報(別言すれば、サービスの過去の処理特性)に基づき、リクエスト毎の予測処理性能テーブルTA2を作成・更新し、これをサービスレジストリ314aに格納する。
図4は、予測処理性能テーブルTA2を例示した図である。
予測処理性能テーブルTA2には、リクエスト詳細情報と、予測リソース情報とが対応づけて登録されている。ここで、リクエスト詳細情報とは、サービス名とリクエストメッセージサイズ(以下、単にメッセージサイズと略称)とを含む情報であり、予測リソース情報とは、予測されるサーバ100のハードウェア資源の使用状況(すなわち、予測されるサーバの負荷量)をあらわす情報である。例えば、クライアント200からサービスAに対してメッセージサイズ2MBのリクエストメッセージが送信された場合には、CPU使用率(予測値)が「20%」、メモリ使用量(予測値)が「40KB」、NIC使用量(予測値)が「20%」使用されると予測される。同様に、クライアント200からサービスAに対してメッセージサイズ1MBのリクエスメッセージが送信された場合には、CPU使用率(予測値)が「10%」、メモリ使用量(予測値)が「20KB」、NIC使用量(予測値)が「10%」使用されると予測される。
The registry update unit (prediction unit) 314 creates / updates a prediction processing performance table TA2 for each request based on the resource information received from each service (in other words, the past processing characteristics of the service). Store in the
FIG. 4 is a diagram illustrating an example of the prediction processing performance table TA2.
In the prediction processing performance table TA2, detailed request information and prediction resource information are registered in association with each other. Here, the detailed request information is information including a service name and a request message size (hereinafter simply abbreviated as message size), and the predicted resource information is the predicted hardware resource usage status of the server 100 ( In other words, the server load information is predicted information). For example, when a request message having a message size of 2 MB is transmitted from the
ロードバランサ313は、各サービスから受信するリソース情報に基づき、ロードバランステーブルTA3を作成・更新し、これをロードバランスレジストリ313aに格納する。さらに、ロードバランサ(選択手段、送信手段)313は、ロードバランステーブルTA3等を参照することで、クライアント200からのリクエストの送信先となるサーバを選択し、選択したサーバ100のサービス(例えばサーバ100aのサービスA)に対してリクエストを転送する。
The
図5は、ロードバランステーブルTA3を例示した図である。
ロードバランステーブルTA3には、サーバ100の名前と、該サーバ100が提供するサービスの種類と、該サーバ100の利用に関する優先度(以下、単に優先度という)と、ステータス(active, nonactiveなど)とが対応づけて登録されている。
FIG. 5 is a diagram illustrating the load balance table TA3.
In the load balance table TA3, the name of the server 100, the type of service provided by the server 100, the priority related to the use of the server 100 (hereinafter simply referred to as priority), the status (active, nonactive, etc.) Are registered in association with each other.
ここで、優先度は、数値が高いほどクライアントからのリクエストを割り当てる確率が高いことを意味する。従って、図5に示す例ではサーバ100aに設定された優先度が最も高い(具体的には優先度「10」)であることから、サーバ100aは次にクライアントからのリクエストが割り当てられる確率が高いと予測される。
Here, the priority means that the higher the numerical value, the higher the probability of assigning a request from the client. Therefore, in the example shown in FIG. 5, since the priority set to the
(2)実施形態の動作
2−1.テーブル更新処理
図6は、ESBシステム300において実行されるテーブル更新処理を示すシーケンス図である。なお、以下の説明ではサーバ100aのサービスAからESBシステム300にリソース情報が送信される場合を想定する。
サービスAのエージェント手段114は、リソースモニタ手段113に対して定期的にリソース情報(リクエスト毎または全体のリソース情報)の転送要求を行う(ステップA1)。なお、転送要求は、不定期であっても良い。
(2) Operation of the embodiment 2-1. Table Update Processing FIG. 6 is a sequence diagram showing table update processing executed in the
The agent means 114 of the service A periodically requests the resource monitor means 113 to transfer resource information (for each request or overall resource information) (step A1). The transfer request may be irregular.
リソースモニタ手段113は、サービスAが稼動するサーバ100aのリソース情報を取得し、これをエージェント手段114に返す(ステップA2)。リソースモニタ手段113が取得するリソース情報には、例えば図2の上段に示すような当該サービスAを利用するクライアント200を識別するクライアントIDと、当該クライアント200から送信されるメッセージのサイズ(リクエストメッセージサイズ)と、ハードウェアリソースの詳細な使用状況をあらわす情報(リソース詳細情報)が含まれる。なお、リソース詳細情報には、CPU使用率、メモリ使用量、NIC使用量のほか、例えば通信接続数やネットワーク帯域使用率など、様々な情報を含んで良いのはもちろんである。
The
エージェント手段114は、リソース情報を取得すると、これをESBシステム300のリスナ311bに送信する(ステップA3)。なお、通信プロトコルは特に限定されない。リスナ手段311bは、サーバ100aのサービスAからリソース情報を受信すると、これをエージェント集計手段312に送る(ステップA4)。エージェント集計手段312は、各サーバ100の各サービスから送信される様々なリソース情報を集め、図3に示すようなステータステーブルTA1を作成するとともに、該リソース情報に基づいて図4に示すような予測処理性能テーブルTA2を作成・更新する(ステップA5)。
Upon obtaining the resource information, the agent means 114 transmits it to the
そして、エージェント集計手段312は、ロードバランサレジストリ313aにアクセスし、ロードバランサテーブルTA3を読みこむ(ステップA6)。図5に示すように、ロードバランステーブルTA3には、サーバ100の名前と、該サーバ100が提供するサービスの種類と、優先度というと、ステータス(active, nonactiveなど)とが対応づけて登録されている。エージェント集計手段312は、例えば図3に示すステータステーブルTA1と図5に示すロードバランサテーブルTA3に基づいて、ロードバランサテーブルTA3の各サービスに対応づけて登録されている優先度(重み付け)を変更し、ロードバランサテーブルTA3の更新を行う(ステップA7→ステップA8)。この優先度は、当該時点での負荷(すなわちリソースの使用率等)が大きいものほど高く設定される。
Then, the
以上の処理が終了すると、エージェント集計手段312は、レジストリ更新手段314に対してサービスレジストリ314aに登録されている予測処理性能テーブルTA2の更新を依頼する(ステップA9)。レジストリ更新手段314は、エージェント集計手段312からの更新依頼を受け、リクエストごとにメッセージサイズと紐付け、メッセージサイズごとの予測リソース情報を更新し(ステップA10)、処理を終了する。なお、優先度の変更ポリシーや優先度の設定ルールなどは、負荷分散システム500の設計などに応じて適宜設定・変更可能である。
When the above processing is completed, the
2−2.リクエスト処理
図7は、クライアントからサービスのリクエストがあったときにESBシステム300において実行されるリクエスト処理を示すシーケンス図である。
クライアント(クライアントプログラムCP)200は、特定サービス(例えばサービスA)を利用するべく、所定のメッセージサイズ(例えば2MB)のリクエストをESBシステム300に送る(ステップB1)。ESBシステム300のロードバランサ313は、リスナ手段311aからリクエストを受信すると、リクエスト先のサービス(例えばサービスA)のプロトコルにあわせてプロトコル変換を行うとともに、ロードバランサテーブルTA3からロードバランサテーブルTA3を取得する(ステップB2)。さらに、ロードバランサ313は、サービスレジストリ314aに登録されている予測処理性能テーブルTA2を取得し (ステップB3)、クライアント200から送信されるリクエストのメッセージサイズ、リクエスト先のサービスをキーとして、レジストリ更新テーブルTAを検索することにより、当該リクエストに応じたサービスを提供する際に必要となるサーバの予測リソース情報(CPUの使用率、メモリ使用量、NIC使用量など)を把握する。
2-2. Request Processing FIG. 7 is a sequence diagram showing request processing executed in the
The client (client program CP) 200 sends a request of a predetermined message size (for example, 2 MB) to the
そして、ロードバランサ313は、ロードバランサテーブルTA3を参照することでリクエスト先のサービスがデプロイされているサーバ(例えばサーバ100a)を把握するとともに、該サーバが複数ある場合には(例えばサーバ100a、100b)、各サーバに対応づけて登録されている優先度を参照し、最も優先度の高いサーバ(例えばサーバ100a)を選択する(ステップB3)。ここで、優先度はリソースの使用量が高いものほど、高く設定されている。よって、サーバの選択に際しては、当該リクエストを処理できるサーバ100であって、もっとも余剰リソースの少ないサーバ100が選択されることとなる。ロードバランサ313は、このようにして選択したサーバ100のサービス(例えばサーバ100aのサービスA)に対してリクエストを転送し(ステップB4)、処理を終了する。
Then, the
以上説明したように、本実施形態によれば、サーバのリソースの使用状況に応じて適切なサーバにリクエストを振り分けるため、効率よくサーバを利用することができる。
また、各サーバの活性もチェックしているため(ロードバランサテーブルTA3参照)、システムダウンしているサーバにアクセスしてしまう等の動作も未然に防止することが可能となる。さらに、リソース枯渇を抑制することができるため、リクエストを送信してからのTAT(Turn Around Time)を平坦化等することが可能となる。
加えて、活性チェックを行っているため、意図的にサーバを停止させてリソースを動的に変更することも可能となる。
As described above, according to the present embodiment, since the request is distributed to an appropriate server according to the usage status of the server resource, the server can be used efficiently.
Further, since the activity of each server is also checked (see the load balancer table TA3), it is possible to prevent an operation such as accessing a server that is down. Furthermore, since resource depletion can be suppressed, TAT (Turn Around Time) after sending a request can be flattened.
In addition, since the activity check is performed, it is possible to dynamically change the resource by intentionally stopping the server.
B.変形例
上述した本実施形態では、ロードバランサテーブルTA3が格納されるロードバランサレジストリ313aをESBシステム300の中に設けた態様を例示したが、ESBシステム300の外部にロードバランサテーブルTA3が格納されるデータベースDBを設けても良い。
B. Modified Example In the above-described embodiment, an example in which the load balancer registry 313a in which the load balancer table TA3 is stored is provided in the
図8は、変形例に係る負荷分散システム500’の構成を示す図であり、図1に対応している。なお、図1に対応する部分には同一符号を付し、詳細な説明は割愛する。
負荷分散システム500’は、複数のESBシステム300a、300bを備えており、ESBシステム300a、300bの外部にはロードバランサテーブルTA3が格納されるデータベースDBが設けられている。
FIG. 8 is a diagram illustrating a configuration of a load distribution system 500 ′ according to a modification, and corresponds to FIG. Note that portions corresponding to those in FIG. 1 are denoted by the same reference numerals, and detailed description thereof is omitted.
The load distribution system 500 ′ includes a plurality of
ESBシステム300a、300bの外部にデータベースDBを設けた場合には、各ESBシステム300a、300bがロードバランサテーブルTA3に登録された情報を取得等する際、ネットワーク通信が必要となるが、各ESBシステム300a、300bが情報を共有できるメリットがある。さらに、信頼性の高いデータベースDBを利用することで、データベースDBに登録されたデータの紛失や問題発生時のロールバック等を行うことも可能となる。
When the database DB is provided outside the
なお、本実施形態等において示した各処理のステップは処理内容に矛盾を生じない範囲で任意に順番を変更して又は並列に実行することができる。さらに本明細書等において、手段とは、単に物理的手段を意味するものではなく、その手段が有する機能をソフトウェアによって実現する場合も含む。さらにまた、1つの手段が有する機能が2つ以上の物理的手段により実現されても、2つ以上の手段の機能が1つの物理的手段により実現されてもよい。また、本発明に係るソフトウェアの開発支援プログラムは、CD−ROMやDVD−ROM等の光学ディスク、磁気ディスク、半導体メモリなどの各種の記録媒体を通じて、又は通信ネットワークなどを介してダウンロードすることにより、コンピュータにインストール又はロードすることができる。 It should be noted that the steps of each process shown in this embodiment and the like can be executed in any order or in parallel as long as the process contents do not contradict each other. Further, in this specification and the like, the term “means” does not simply mean a physical means, but also includes a case where the functions of the means are realized by software. Furthermore, the function of one means may be realized by two or more physical means, or the functions of two or more means may be realized by one physical means. In addition, the software development support program according to the present invention is downloaded through various recording media such as an optical disk such as a CD-ROM and a DVD-ROM, a magnetic disk, and a semiconductor memory, or via a communication network. Can be installed or loaded on a computer.
また、本実施形態や変形例で示した態様の一部又は全部は、付記のように記載することもできるが、これに限定されるものではない。 In addition, a part or all of the aspects shown in the present embodiment and the modified examples can be described as an appendix, but are not limited thereto.
(付記1)クライアントからのリクエストに応じてサービスを提供する複数のサーバの負荷状況を収集し、収集結果に基づき負荷分散を実現するバスシステムであって、前記各サーバの負荷状況を収集する収集手段と、前記各サーバが提供したサービスの過去の処理特性に基づき、前記リクエストに応じたサービスの提供に係るサーバの負荷量を予測する予測手段と、収集された前記各サーバの負荷状況と、予測された前記サーバの負荷量に基づいて、リクエスト先となるサーバを選択する選択手段と、選択されたサーバに前記クライアントからのリクエストを送信する送信手段とを備え、前記選択手段は、前記リクエストに応じたサービスを提供することができ、かつ、前記各サーバの負荷状況に応じて設定される優先度の最も高いサーバを、前記リクエスト先となるサーバとして選択する、ことを特徴とするバスシステム。 (Supplementary note 1) A bus system that collects the load status of a plurality of servers that provide services in response to a request from a client and implements load distribution based on the collection result, and collects the load status of each server Means, predicting means for predicting the load amount of the server related to the provision of the service according to the request, based on the past processing characteristics of the service provided by each server, and the collected load status of each server, A selection unit that selects a server that is a request destination based on the predicted load amount of the server; and a transmission unit that transmits a request from the client to the selected server. A server with the highest priority set according to the load status of each server. , Bus system, characterized in that, to select a server to which the request destination.
(付記2)前記収集手段は、前記各サーバが提供する各サービスから、当該サーバのリソースの使用状況をあらわす情報を収集する、ことを特徴とする付記1に記載のバスシステム。 (Supplementary note 2) The bus system according to supplementary note 1, wherein the collection unit collects information representing a usage status of a resource of the server from each service provided by the server.
(付記3)前記サービスの過去の処理特性には、当該サービスの種類、当該サービスのリクエストメッセージサイズ、当該サービスの提供のために要したサーバの負荷量が含まれる、ことを特徴とする付記1または2に記載のバスシステム。 (Appendix 3) The past processing characteristics of the service include the type of the service, the request message size of the service, and the load amount of the server required for providing the service. Or the bus system of 2.
(付記4)前記優先度は、前記選択手段により当該時点での負荷が大きなものほど高く設定される、ことを特徴とする付記1〜3のいずれか1の付記に記載のバスシステム。 (Supplementary note 4) The bus system according to any one of supplementary notes 1 to 3, wherein the priority is set higher as the load at the time is larger by the selection unit.
(付記5)前記予測手段は、前記収集手段によって収集された各サーバの負荷状況に基づいて、予測する前記リクエストに応じたサービスの提供に係るサーバの負荷量を更新する、付記1〜4のいずれか1の付記に記載のバスシステム。 (Additional remark 5) The said prediction means updates the load amount of the server which concerns on provision of the service according to the said request to estimate based on the load condition of each server collected by the said collection means, Additional remark 1-4 The bus system according to any one of the supplementary notes.
(付記6)クライアントと、前記クライアントからのリクエストに応じてサービスを提供する複数のサーバと、前記各サーバの負荷状況を収集し、収集結果に基づき負荷分散を実現するバスシステムと、を備えた負荷分散システムであって、前記バスシステムは、前記各サーバの負荷状況を収集する収集手段と、前記各サーバが提供したサービスの過去の処理特性に基づき、前記リクエストに応じたサービスの提供に係るサーバの負荷量を予測する予測手段と、収集された前記各サーバの負荷状況と、予測された前記サーバの負荷量に基づいて、リクエスト先となるサーバを選択する選択手段と、選択されたサーバに前記クライアントからのリクエストを送信する送信手段とを備え、前記選択手段は、前記リクエストに応じたサービスを提供することができ、かつ、前記各サーバの負荷状況に応じて設定される優先度の最も高いサーバを、前記リクエスト先となるサーバとして選択する、ことを特徴とする負荷分散システム。 (Supplementary Note 6) A client, a plurality of servers that provide services in response to requests from the client, and a bus system that collects load status of each server and realizes load distribution based on the collection result A load distribution system, wherein the bus system relates to provision of a service according to the request based on a collection unit that collects a load status of each server and a past processing characteristic of the service provided by each server. Prediction means for predicting the load amount of the server, selection means for selecting the server that is the request destination based on the collected load status of each server, and the predicted load amount of the server, and the selected server Transmitting means for transmitting a request from the client, and the selecting means provides a service corresponding to the request Rukoto can, and the load balancing system the highest server priority which is set according to the load status of each server, selects a server to which the request destination, characterized in that.
(付記7)クライアントからのリクエストに応じてサービスを提供する複数のサーバの負荷状況を収集し、収集結果に基づき負荷分散を実現する方法であって、前記各サーバの負荷状況を収集する収集ステップと、前記各サーバが提供したサービスの過去の処理特性に基づき、前記リクエストに応じたサービスの提供に係るサーバの負荷量を予測する予測ステップと、収集された前記各サーバの負荷状況と、予測された前記サーバの負荷量に基づいて、リクエスト先となるサーバを選択する選択ステップと、選択されたサーバに前記クライアントからのリクエストを送信する送信ステップとを含み、前記選択ステップにおいては、前記リクエストに応じたサービスを提供することができ、かつ、前記各サーバの負荷状況に応じて設定される優先度の最も高いサーバを、前記リクエスト先となるサーバとして選択する、ことを特徴とする負荷分散方法。 (Supplementary note 7) A method for collecting load statuses of a plurality of servers that provide services in response to requests from clients and realizing load distribution based on the collection results, the collecting step collecting the load statuses of the respective servers A prediction step of predicting the load amount of the server related to the provision of the service according to the request based on the past processing characteristics of the service provided by each server, the collected load status of each server, and the prediction A selection step of selecting a server that is a request destination based on the load amount of the server, and a transmission step of transmitting a request from the client to the selected server. In the selection step, the request Can be provided according to the service, and is set according to the load status of each server. The highest server degrees, is selected as the server to be the request destination, the load distribution wherein the.
500,500’…負荷分散システム、100…サーバ、111,311a,311b…リスナ手段、112…アプリケーション実行手段、113…リソースモニタ手段、114…エージェント手段、200…クライアント、300…ESBシステム、312…エージェント集計手段、313…ロードバランサ、313a…ロードバランサレジストリ、314…レジストリ更新手段、314a…サービスレジストリ、DB…データベース、TA1…ステータステーブル、TA2…予測処理性能テーブル、TA3…ロードバランサテーブル。
500, 500 '... load distribution system, 100 ... server, 111, 311a, 311b ... listener means, 112 ... application execution means, 113 ... resource monitoring means, 114 ... agent means, 200 ... client, 300 ... ESB system, 312 ... Agent aggregation means, 313 ... load balancer, 313a ... load balancer registry, 314 ... registry update means, 314a ... service registry, DB ... database, TA1 ... status table, TA2 ... prediction processing performance table, TA3 ... load balancer table.
Claims (7)
前記各サーバの負荷状況を収集する収集手段と、
前記各サーバが提供したサービスの過去の処理特性に基づき、前記リクエストに応じたサービスの提供に係るサーバの負荷量を予測する予測手段と、
収集された前記各サーバの負荷状況と、予測された前記サーバの負荷量に基づいて、リクエスト先となるサーバを選択する選択手段と、
選択されたサーバに前記クライアントからのリクエストを送信する送信手段とを備え、
前記選択手段は、前記リクエストに応じたサービスを提供することができ、かつ、前記各サーバの負荷状況に応じて設定される優先度の最も高いサーバを、前記リクエスト先となるサーバとして選択する、ことを特徴とするバスシステム。 A bus system that collects the load status of multiple servers that provide services in response to requests from clients and implements load distribution based on the collected results.
Collection means for collecting the load status of each server;
Prediction means for predicting the load amount of the server related to the provision of the service according to the request based on the past processing characteristics of the service provided by each of the servers,
Selection means for selecting a server as a request destination based on the collected load status of each server and the predicted load amount of the server;
Transmission means for transmitting a request from the client to a selected server,
The selection means can select a server that can provide a service according to the request and has the highest priority set according to the load status of each server as the server that is the request destination. A bus system characterized by this.
前記各サーバが提供する各サービスから、当該サーバのリソースの使用状況をあらわす情報を収集する、ことを特徴とする請求項1に記載のバスシステム。 The collecting means includes
The bus system according to claim 1, wherein information representing a usage status of a resource of the server is collected from each service provided by the server.
前記クライアントからのリクエストに応じてサービスを提供する複数のサーバと、
前記各サーバの負荷状況を収集し、収集結果に基づき負荷分散を実現するバスシステムと、を備えた負荷分散システムであって、
前記バスシステムは、
前記各サーバの負荷状況を収集する収集手段と、
前記各サーバが提供したサービスの過去の処理特性に基づき、前記リクエストに応じたサービスの提供に係るサーバの負荷量を予測する予測手段と、
収集された前記各サーバの負荷状況と、予測された前記サーバの負荷量に基づいて、リクエスト先となるサーバを選択する選択手段と、
選択されたサーバに前記クライアントからのリクエストを送信する送信手段とを備え、
前記選択手段は、前記リクエストに応じたサービスを提供することができ、かつ、前記各サーバの負荷状況に応じて設定される優先度の最も高いサーバを、前記リクエスト先となるサーバとして選択する、ことを特徴とする負荷分散システム。 With the client,
A plurality of servers that provide services in response to requests from the clients;
A load distribution system comprising: a bus system that collects a load situation of each server and realizes load distribution based on a collection result;
The bus system is
Collection means for collecting the load status of each server;
Prediction means for predicting the load amount of the server related to the provision of the service according to the request based on the past processing characteristics of the service provided by each of the servers,
Selection means for selecting a server as a request destination based on the collected load status of each server and the predicted load amount of the server;
Transmission means for transmitting a request from the client to a selected server,
The selection means can select a server that can provide a service according to the request and has the highest priority set according to the load status of each server as the server that is the request destination. A load balancing system characterized by that.
前記各サーバの負荷状況を収集する収集ステップと、
前記各サーバが提供したサービスの過去の処理特性に基づき、前記リクエストに応じたサービスの提供に係るサーバの負荷量を予測する予測ステップと、
収集された前記各サーバの負荷状況と、予測された前記サーバの負荷量に基づいて、リクエスト先となるサーバを選択する選択ステップと、
選択されたサーバに前記クライアントからのリクエストを送信する送信ステップとを含み、
前記選択ステップにおいては、前記リクエストに応じたサービスを提供することができ、かつ、前記各サーバの負荷状況に応じて設定される優先度の最も高いサーバを、前記リクエスト先となるサーバとして選択する、ことを特徴とする負荷分散方法。 A method for collecting load statuses of a plurality of servers that provide services in response to a request from a client and realizing load distribution based on the collected results,
A collecting step of collecting a load status of each of the servers;
A predicting step of predicting a load amount of a server related to provision of a service according to the request based on a past processing characteristic of a service provided by each of the servers;
A selection step of selecting a server as a request destination based on the collected load status of each server and the predicted load amount of the server;
Sending a request from the client to a selected server,
In the selecting step, a server that can provide a service according to the request and has the highest priority set according to the load status of each server is selected as the server that is the request destination. A load balancing method characterized by that.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010035933A JP5556227B2 (en) | 2010-02-22 | 2010-02-22 | Bus system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010035933A JP5556227B2 (en) | 2010-02-22 | 2010-02-22 | Bus system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011170751A true JP2011170751A (en) | 2011-09-01 |
JP5556227B2 JP5556227B2 (en) | 2014-07-23 |
Family
ID=44684785
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010035933A Expired - Fee Related JP5556227B2 (en) | 2010-02-22 | 2010-02-22 | Bus system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5556227B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017118575A (en) * | 2012-09-25 | 2017-06-29 | エイ10 ネットワークス インコーポレイテッドA10 Networks, Inc. | Load distribution in data networks |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001216282A (en) * | 2000-02-04 | 2001-08-10 | Nec Corp | Server, client, client-server system, load distribution method, and recording medium |
JP2004126968A (en) * | 2002-10-03 | 2004-04-22 | Fujitsu Ltd | Job scheduling system for parallel computer |
JP2007179246A (en) * | 2005-12-27 | 2007-07-12 | Hitachi Ltd | Method, program and server for computer management |
JP2007249491A (en) * | 2006-03-15 | 2007-09-27 | Fujitsu Ltd | Program, device and method for distributing batch job in multi-server environment |
JP2007249445A (en) * | 2006-03-15 | 2007-09-27 | Hitachi Ltd | Load distribution control method and its device for cluster system |
WO2008102230A2 (en) * | 2007-02-20 | 2008-08-28 | Amadeus S.A.S. | System and method for balancing information loads |
JP2009259206A (en) * | 2008-03-27 | 2009-11-05 | Nippon Telegraph & Telephone West Corp | Access distribution system, server device, common management device, access distribution device, access distribution method, and computer program |
-
2010
- 2010-02-22 JP JP2010035933A patent/JP5556227B2/en not_active Expired - Fee Related
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001216282A (en) * | 2000-02-04 | 2001-08-10 | Nec Corp | Server, client, client-server system, load distribution method, and recording medium |
JP2004126968A (en) * | 2002-10-03 | 2004-04-22 | Fujitsu Ltd | Job scheduling system for parallel computer |
JP2007179246A (en) * | 2005-12-27 | 2007-07-12 | Hitachi Ltd | Method, program and server for computer management |
JP2007249491A (en) * | 2006-03-15 | 2007-09-27 | Fujitsu Ltd | Program, device and method for distributing batch job in multi-server environment |
JP2007249445A (en) * | 2006-03-15 | 2007-09-27 | Hitachi Ltd | Load distribution control method and its device for cluster system |
WO2008102230A2 (en) * | 2007-02-20 | 2008-08-28 | Amadeus S.A.S. | System and method for balancing information loads |
JP2010519633A (en) * | 2007-02-20 | 2010-06-03 | アマデウス エス.エー.エス. | System and method for distributing information load |
JP2009259206A (en) * | 2008-03-27 | 2009-11-05 | Nippon Telegraph & Telephone West Corp | Access distribution system, server device, common management device, access distribution device, access distribution method, and computer program |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017118575A (en) * | 2012-09-25 | 2017-06-29 | エイ10 ネットワークス インコーポレイテッドA10 Networks, Inc. | Load distribution in data networks |
Also Published As
Publication number | Publication date |
---|---|
JP5556227B2 (en) | 2014-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109218355B (en) | Load balancing engine, client, distributed computing system and load balancing method | |
US7287179B2 (en) | Autonomic failover of grid-based services | |
US8140677B2 (en) | Autonomic web services hosting service | |
TWI225990B (en) | Autonomic provisioning of network-accessible service behaviors within a federated grid infrastructure | |
US8938510B2 (en) | On-demand mailbox synchronization and migration system | |
US8903968B2 (en) | Distributed computing environment | |
US8799399B2 (en) | Near-real time distributed usage aggregation system | |
JP4507620B2 (en) | System for routing a service request to a service instance of a service providing infrastructure that provides resources for hosting the execution of a distributed service, and method and computer program thereof | |
US20090327079A1 (en) | System and method for a delivery network architecture | |
US20080183876A1 (en) | Method and system for load balancing | |
WO2014024863A1 (en) | Load distribution method taking into account each node in multi-level hierarchy | |
US9804889B2 (en) | Methods and apparatus for state objects in cluster computing | |
JP2008527514A (en) | Method, system, and computer program for facilitating comprehensive grid environment management by monitoring and distributing grid activity | |
JP6272190B2 (en) | Computer system, computer, load balancing method and program thereof | |
CN103891202A (en) | System and method for cloud-based implementation of control of focused overload of service element (cofo-se) via explicit (or virtualized) machine-to-machine (m2m) gateway element | |
CN113630310A (en) | Distributed high-availability gateway system | |
JP2013182509A (en) | Virtualization system, load distribution device, load distribution method and load distribution program | |
US9021109B1 (en) | Controlling requests through message headers | |
US20230283695A1 (en) | Communication Protocol for Knative Eventing's Kafka components | |
JP5556227B2 (en) | Bus system | |
EP3539278B1 (en) | Method and system for affinity load balancing | |
US20080059553A1 (en) | Application structure for supporting partial functionality in a distributed computing infrastructure | |
Byun et al. | DynaGrid: A dynamic service deployment and resource migration framework for WSRF-compliant applications | |
KR20040110647A (en) | Sysem and its method for load distribution between servers | |
Riasol et al. | Juxta-cat: a jxta-based platform for distributed computing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130111 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20131118 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20131121 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140108 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140203 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140327 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20140507 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140520 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5556227 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |