JP5291504B2 - Load balancing processing system - Google Patents

Load balancing processing system Download PDF

Info

Publication number
JP5291504B2
JP5291504B2 JP2009069330A JP2009069330A JP5291504B2 JP 5291504 B2 JP5291504 B2 JP 5291504B2 JP 2009069330 A JP2009069330 A JP 2009069330A JP 2009069330 A JP2009069330 A JP 2009069330A JP 5291504 B2 JP5291504 B2 JP 5291504B2
Authority
JP
Japan
Prior art keywords
processing
service
requests
processing request
service providing
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.)
Expired - Fee Related
Application number
JP2009069330A
Other languages
Japanese (ja)
Other versions
JP2010224709A (en
Inventor
如健 矢津
大助 加藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nomura Research Institute Ltd
Original Assignee
Nomura Research Institute 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 Nomura Research Institute Ltd filed Critical Nomura Research Institute Ltd
Priority to JP2009069330A priority Critical patent/JP5291504B2/en
Publication of JP2010224709A publication Critical patent/JP2010224709A/en
Application granted granted Critical
Publication of JP5291504B2 publication Critical patent/JP5291504B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To distribute processing requests according to a load state on a service provider. <P>SOLUTION: The service user API84 is provided for each service user process 81, and the service provider API87 is provided for each service provider process 82. The service user API84 refers to a processing request queue information storage region 86 and transmits the processing request to the service provider process 82 having the least number of uncompleted processing requests. The service provider API87 records the number of processing request receptions and the number of processed result transmissions in a service provider queue information storage region 88 for each service user process 81, and periodically transmits the number of processing request receptions and the number of processed result transmissions of each service user process 81 to a management daemon 83. The management daemon 83 periodically transmits client queue information to each service user process 81. The client queue information includes the number of uncompleted processing requests in each service provider process 82. <P>COPYRIGHT: (C)2011,JPO&amp;INPIT

Description

この発明は負荷分散処理システムに係り、特に、サービス利用側の複数のプロセスからの処理要求をサービス提供側の複数のプロセスが受け付けて並列処理し、その処理結果がサービス利用側プロセスに返される形態の情報処理システムにおいて、サービス提供側プロセスに掛かる負荷を分散させることにより、システム全体の処理能力の向上を図る技術に関する。   The present invention relates to a load distribution processing system, and in particular, a mode in which a plurality of processes on a service providing side accept processing requests from a plurality of processes on a service using side, perform parallel processing, and return the processing results to the service using process. In this information processing system, the load on the service providing side process is distributed to improve the processing capacity of the entire system.

クライアントサーバ型の情報処理システムにおいては、情報処理量の増加に対してサーバ機を追加し、処理の並列度を向上させることにより、システム全体の処理能力を拡張する手法が採られている。このように、処理を並列化させてシステム性能を向上させる場合には、処理を行う複数のサービス提供側プロセス間に適切に処理要求を振り分ける負荷分散機能が必要となる。このため、これまでも様々な負荷分散処理方式が考案されている。   In a client-server type information processing system, a method is adopted in which the processing capacity of the entire system is expanded by adding server machines to increase the amount of information processing and improving the parallelism of processing. As described above, in order to improve system performance by parallelizing processing, a load distribution function for appropriately distributing processing requests among a plurality of service providing processes that perform processing is necessary. For this reason, various load distribution processing methods have been devised so far.

例えば、ラウンドロビンと称する負荷分散処理方式の場合、並列しているサービス提供側プロセスに対して、順番に処理要求を振り分けるものであり、単純な実装で実現できる利点があるが、個々のサービス提供側プロセスの負荷が一切考慮されないため、重い処理を実行中のサービス提供側プロセスに対しても機械的に次の処理要求が割り振られてしまい、適切な負荷分散が行えない状況に陥る可能性があった。   For example, in the case of the load distribution processing method called round robin, processing requests are distributed in order to the service providing side processes in parallel, and there is an advantage that can be realized by simple implementation. Because the load on the side process is not considered at all, the next processing request is also mechanically allocated to the service provider process that is executing heavy processing, which may lead to a situation where appropriate load balancing cannot be performed. there were.

これに対し、各サービス提供側プロセスからCPU負荷情報を取得し、最もCPU負荷の低いサービス提供側プロセスに対して処理要求を送信する方式の場合、一見、各サービス提供側プロセスの実際の負荷に対応した分散処理が実現できそうであるが、DISK IOがボトルネックとなっている処理では、CPU負荷が低いにもかかわらず処理が停滞している状況も生じるため、やはり適切な負荷分散が行えない状況が生じ得る。   On the other hand, in the method of acquiring CPU load information from each service provider side process and sending a processing request to the service provider process with the lowest CPU load, at first glance, the actual load of each service provider process Appropriate distributed processing is likely to be realized, but in processing where DISK IO is a bottleneck, processing may be stagnant even though the CPU load is low, so appropriate load distribution can also be performed There can be no situations.

また、各サービス提供側プロセスに対して同報通信により一斉に処理要求を発し、最も早い処理が可能な者が残りのサービス提供側プロセスに対して処理宣言を行い、この名乗りを上げたサービス提供側プロセスのみが処理を実行する負荷分散処理方式もあるが、この場合にはサービス提供側プロセス間で処理宣言が複雑に交錯するため、誤って複数のサービス提供側プロセスにおいて同一処理が実行されてしまう事故の発生や、処理宣言の電文が頻発されることによりネットワーク負荷が増大するという問題がある。   In addition, a service request is issued to the service provider processes all at once by broadcast communication, and the person who can perform the earliest processing makes a process declaration to the remaining service provider processes, and this service provider has given this name. There is also a load balancing method in which only the process on the side executes the process, but in this case, the process declarations are complicatedly mixed among the service provider processes, so the same process is mistakenly executed in multiple service provider processes. Network load increases due to the occurrence of accidents and frequent occurrences of processing declaration messages.

また、特許文献1においては、クライアントとサーバとの間に負荷分散処理装置を介在させておき、この負荷分散処理装置がクライアントからのリクエストを最も負荷が少なくて優先度の高いサーバに振り分ける技術が開示されている。このために、負荷分散処理装置は、各サーバの優先順位情報と各サーバの最大処理量及び実行処理量を格納しておく記憶手段を備えている。
特開2007−52542
Patent Document 1 discloses a technique in which a load distribution processing device is interposed between a client and a server, and the load distribution processing device distributes requests from the client to the server with the lowest load and the highest priority. It is disclosed. For this purpose, the load distribution processing device includes storage means for storing the priority order information of each server, the maximum processing amount and the execution processing amount of each server.
JP2007-52542A

この特許文献1の負荷分散処理システムの場合には、全てのリクエスト及び処理結果データが負荷分散処理装置を通過するため、負荷分散処理装置は各サーバの負荷状況を正確に認識することが可能となる。
しかしながら、リクエスト及び処理結果データがクライアントとサーバ間で直接やり取りされる場合に比べ、負荷分散処理装置を経由することによる伝送遅れが不可避的に生じる。また、高負荷時には負荷分散処理装置に負荷が集中することとなり、システム全体の性能低下が生じるおそれがあった。
In the case of the load distribution processing system of Patent Document 1, since all requests and processing result data pass through the load distribution processing apparatus, the load distribution processing apparatus can accurately recognize the load status of each server. Become.
However, as compared with the case where the request and the processing result data are directly exchanged between the client and the server, a transmission delay due to passing through the load distribution processing device inevitably occurs. In addition, when the load is high, the load is concentrated on the load distribution processing apparatus, and there is a possibility that the performance of the entire system is deteriorated.

この発明は、このような従来の課題を解決するために案出されたものであり、各サービス提供側プロセス側の負荷状況に応じて処理要求を分散することができ、しかも処理要求と処理結果をサービス利用側プロセスと提供側プロセスとの間で直接的にやり取り可能な負荷分散処理技術の提供を目的としている。   The present invention has been devised to solve such a conventional problem, and can distribute processing requests according to the load situation of each service providing side process, and further, processing requests and processing results. The purpose is to provide a load distribution processing technology that can directly communicate between a service using process and a providing process.

上記の目的を達成するため、請求項1に記載した負荷分散処理システムは、処理要求を生成する複数のサービス利用側プロセスと、上記処理要求に対して必要な処理を実行し、処理結果を出力する複数のサービス提供側プロセスと、上記サービス利用側プロセス毎に設けられた処理要求振分部と、上記サービス提供側プロセス毎に設けられた負荷情報管理部と、負荷情報配信部とを備えた負荷分散処理システムであって、上記処理要求振分部は、サービス提供側プロセス毎に、当該サービス提供側プロセスが応対している全サービス利用側プロセスに係る未完了の処理要求件数を格納しておく第1の記憶領域と、自己が担当するサービス利用側プロセスから処理要求が渡された際に、上記第1の記憶領域を参照し、未完了の処理要求件数が最も少ないサービス提供側プロセスを特定する機能と、当該サービス提供側プロセスに係る負荷情報管理部に処理要求を送信する機能と、当該サービス提供側プロセスによる処理結果を上記負荷情報管理部から受信し、上記サービス利用側プロセスに渡す機能と、上記負荷情報配信部からサービス提供側プロセス毎の全サービス利用側プロセスに係る未完了の処理要求件数が送信された場合に、これにより上記第1の記憶領域に格納されたサービス提供側プロセス毎の未完了の処理要求件数を更新する機能を備え、上記負荷情報管理部は、サービス利用側プロセスの処理要求を対応の処理要求振分部から受け取り、自己が担当するサービス提供側プロセスに渡す機能と、当該サービス提供側プロセスから渡された処理結果を、上記サービス利用側プロセスの処理要求振分部に返信する機能と、サービス利用側プロセス毎に、処理要求受信件数及び処理結果返信件数を格納する第2の記憶領域と、処理要求を上記処理要求振分部から受信する度に、上記処理要求受信件数に1を加算する機能と、処理結果を上記処理要求振分部に返信する度に、上記処理結果返信件数に1を加算する機能と、所定のタイミングで、各サービス利用側プロセスに係る処理要求受信件数及び処理結果返信件数を、上記負荷情報配信部に送信する機能を備え、上記負荷情報配信部は、各負荷情報管理部から送信された各サービス利用側プロセスに係る処理要求受信件数及び処理結果返信件数を格納しておく第3の記憶領域と、所定のタイミングで、サービス提供側プロセス毎に、各サービス利用側プロセスに係る処理要求受信件数から処理結果返信件数を減算して未完了の処理要求件数を求め、これを全サービス利用側プロセス分積算する機能と、このサービス提供側プロセス毎の全サービス利用側プロセスに係る未完了の処理要求件数を、各処理要求振分部に送信する機能を備えたことを特徴としている。   In order to achieve the above object, the load distribution processing system according to claim 1 executes a plurality of service using processes that generate processing requests, executes necessary processing for the processing requests, and outputs processing results. A plurality of service providing side processes, a processing request allocating unit provided for each service using side process, a load information managing unit provided for each service providing side process, and a load information distributing unit In the load distribution processing system, the processing request distribution unit stores, for each service providing side process, the number of incomplete processing requests related to all service using side processes handled by the service providing side process. When the processing request is passed from the first storage area to be stored and the service user side process in charge, the first storage area is referred to, and the number of incomplete processing requests is the highest. A function for identifying a few service providing side processes, a function for transmitting a processing request to the load information managing unit related to the service providing side process, and a processing result by the service providing side process are received from the load information managing unit, When the function passed to the service use side process and the number of incomplete processing requests related to all service use side processes for each service providing side process are transmitted from the load information distribution unit, this is stored in the first storage area. It has a function to update the number of incomplete processing requests for each stored service providing process, and the load information management unit receives the processing request of the service using side process from the corresponding processing request distribution unit and is responsible for it The function to be passed to the service provider process and the processing result passed from the service provider process A function for returning to the processing request distribution unit of the process, a second storage area for storing the number of processing request receptions and the number of processing result replies for each service-use process, and receiving the processing request from the processing request distribution unit A function of adding 1 to the number of received processing requests each time, a function of adding 1 to the number of processing result replies each time a processing result is returned to the processing request distribution unit, and a predetermined timing, The load information distribution unit has a function of transmitting the number of received processing requests and the number of processing result replies related to each service using side process to the load information distributing unit. A third storage area for storing the number of processing request receptions and the number of processing result replies related to the process, and each service using side process for each service providing side process at a predetermined timing Subtract the number of processing result replies from the number of processing request receptions to obtain the number of incomplete processing requests, add this to all service using processes, and the unrelated to all service using processes for each service providing process A feature is that it has a function of transmitting the number of completed processing requests to each processing request distribution unit.

また、請求項2に記載した負荷分散処理システムは、請求項1のシステムを前提とし、さらに上記負荷情報管理部が、上記処理結果をサービス利用側プロセスの処理要求振分部に返信するに際し、各サービス利用側プロセスに係る処理要求受信件数の集計値と、各サービス利用側プロセスに係る処理結果返信件数の集計値を算出し、処理結果と共に処理要求振分部に送信する機能を備えており、上記処理要求振分部が、この処理要求受信件数の集計値から処理結果返信件数の集計値を減算して、当該サービス提供側プロセスの全サービス利用側プロセスに係る未完了の処理要求件数を求める機能と、この未完了の処理要求件数によって、上記第1の記憶領域における該当のサービス提供側プロセスに係る未完了の処理要求件数を更新する機能を備えたことを特徴としている。   Further, the load distribution processing system according to claim 2 is based on the system of claim 1, and when the load information management unit returns the processing result to the processing request distribution unit of the service user side process, It has a function to calculate the total value of the number of processing request receptions related to each service user side process and the total value of the number of processing result replies related to each service user side process, and send it to the processing request distribution part together with the processing result Then, the processing request distribution unit subtracts the total value of the processing result reply number from the total value of the processing request reception number, and calculates the number of incomplete processing request numbers related to all the service using side processes of the service providing side process. A function to update the number of incomplete processing requests related to the service providing side process in the first storage area according to the function to be obtained and the number of incomplete processing requests. It is characterized by comprising.

請求項3に記載した負荷分散処理システムは、処理要求を生成する複数のサービス利用側プロセスと、上記処理要求に対して必要な処理を実行し、処理結果を出力する複数のサービス提供側プロセスと、上記サービス利用側プロセス毎に設けられた処理要求振分部と、上記サービス提供側プロセス毎に設けられた負荷情報管理部と、負荷情報配信部とを備えた負荷分散処理システムであって、上記処理要求振分部は、サービス提供側プロセス毎に、自らが当該サービス提供側プロセスに対して送信中の未完了の処理要求件数である自要求件数と、他のサービス利用側プロセスが当該サービス提供側プロセスに対して送信中の未完了の処理要求件数の合計である他要求件数を格納しておく第1の記憶領域と、自己が担当するサービス利用側プロセスから処理要求が渡された際に、上記第1の記憶領域を参照し、自要求件数と他要求件数の和である未完了の処理要求件数が最も少ないサービス提供側プロセスを特定する機能と、当該サービス提供側プロセスに係る負荷情報管理部に処理要求を送信する機能と、当該サービス提供側プロセスに係る自要求件数に1を加算する機能と、上記負荷情報管理部から処理結果を受信した際に、当該サービス提供側プロセスに係る自要求件数から1を減算する機能と、この処理結果を上記サービス利用側プロセスに渡す機能と、上記負荷情報配信部からサービス提供側プロセス毎の他のサービス利用側プロセスに係る未完了の処理要求件数の合計が送信された場合に、これにより上記第1の記憶領域に格納された他要求件数を更新する機能を備え、上記負荷情報管理部は、サービス利用側プロセスの処理要求を対応の処理要求振分部から受け取り、自己が担当するサービス提供側プロセスに渡す機能と、当該サービス提供側プロセスから渡された処理結果を、上記サービス利用側プロセスの処理要求振分部に返信する機能と、サービス利用側プロセス毎に、処理要求受信件数及び処理結果返信件数を格納する第2の記憶領域と、処理要求を上記処理要求振分部から受信する度に、上記処理要求受信件数に1を加算する機能と、処理結果を上記処理要求振分部に返信する度に、上記処理結果返信件数に1を加算する機能と、所定のタイミングで、各サービス利用側プロセスに係る処理要求受信件数及び処理結果返信件数を、上記負荷情報配信部に送信する機能を備え、上記負荷情報配信部は、各負荷情報管理部から送信された各サービス利用側プロセスに係る処理要求受信件数及び処理結果返信件数を格納しておく第3の記憶領域と、所定のタイミングで、サービス提供側プロセス毎に、各サービス利用側プロセスに係る処理要求受信件数から処理結果返信件数を減算して未完了の処理要求件数を求め、これを全サービス利用側プロセス分積算する機能と、このサービス提供側プロセス毎の全サービス利用側プロセスに係る未完了の処理要求件数から、各サービス利用側プロセスに係る未完了の処理要求件数を減算し、各サービス利用側プロセス毎の他要求件数を算出する機能と、この他要求件数を、対応のサービス利用側プロセスに係る処理要求振分部に送信する機能を備えたことを特徴としている。   The load distribution processing system according to claim 3, a plurality of service using processes that generate processing requests, a plurality of service providing processes that execute processing necessary for the processing requests and output processing results, A load distribution processing system comprising a processing request distribution unit provided for each service using side process, a load information management unit provided for each service providing side process, and a load information distribution unit, For each service providing side process, the above processing request distribution unit determines the number of self requesting requests that are the number of incomplete processing requests that are being transmitted to the service providing side process, and other service using side processes The first storage area for storing the number of other requests that are the total number of incomplete processing requests being sent to the providing process, and the service using side A function that identifies the service providing side process with the smallest number of unfinished processing requests, which is the sum of the number of self-requests and the number of other requests, by referring to the first storage area when a processing request is passed from the service The function of transmitting a processing request to the load information management unit related to the service providing side process, the function of adding 1 to the number of self requests related to the service providing side process, and the processing result received from the load information management unit In this case, a function of subtracting 1 from the number of self-requests related to the service providing side process, a function of passing the processing result to the service using side process, and another service for each service providing side process from the load information distribution unit When the total number of incomplete processing requests related to the process on the user side is transmitted, it has a function of updating the number of other requests stored in the first storage area by this, The load information management unit receives the processing request of the service using side process from the corresponding processing request allocating unit and passes the processing result passed from the service providing side process to the service providing side process that it is responsible for , A function for returning to the processing request distribution unit of the service using side process, a second storage area for storing the number of received processing requests and the number of processing result returning for each service using side process, and the processing request to the processing request A function of adding 1 to the number of received processing requests each time receiving from the allocating unit; a function of adding 1 to the number of response of processing results each time a processing result is returned to the processing request allocating unit; At a predetermined timing, it has a function of transmitting the processing request reception number and processing result reply number related to each service using side process to the load information distribution unit, the load information distribution unit, A third storage area for storing the number of received processing requests and the number of processing result replies related to each service using side process transmitted from each load information management unit, and for each service providing side process at a predetermined timing, A function that subtracts the number of processing result replies from the number of processing request receptions related to the service using process to obtain the number of incomplete processing requests, and adds this to all service using processes, and all services for each service providing process A function for subtracting the number of incomplete processing requests for each service user side process from the number of incomplete processing requests for the user side process and calculating the number of other requests for each service user side process, and the number of other requests Is provided to the processing request distribution unit related to the corresponding service using side process.

請求項4に記載した負荷分散処理システムは、請求項3のシステムを前提とし、さらに上記負荷情報管理部が、上記処理結果をサービス利用側プロセスの処理要求振分部に返信するに際し、各サービス利用側プロセスに係る処理要求受信件数の集計値と、各サービス利用側プロセスに係る処理結果返信件数の集計値を算出し、処理結果と共に処理要求振分部に送信する機能を備えており、上記処理要求振分部が、この処理要求受信件数の集計値から処理結果返信件数の集計値を減算し、その差から自要求件数を減算した他要求件数を算出する機能と、この他要求件数によって、上記第1の記憶領域における該当のサービス提供側プロセスに係る他要求件数を更新する機能を備えたことを特徴としている。   The load distribution processing system according to claim 4 is based on the system of claim 3, and further, when the load information management unit returns the processing result to the processing request distribution unit of the service use side process, It has the function to calculate the aggregate value of the number of processing request receptions related to the user side process and the total value of the processing result reply counts related to each service usage side process, and send it to the processing request distribution unit together with the processing result. The processing request distribution unit subtracts the total value of the processing result response number from the total value of the processing request received number, and calculates the number of other requests by subtracting the number of own requests from the difference. , And a function of updating the number of other requests related to the corresponding service providing process in the first storage area.

請求項5に記載した負荷分散処理システムは、請求項1〜4のシステムを前提とし、さらに上記処理要求振分部が、上記処理要求をサービス提供側プロセスの負荷情報管理部に送信するに際し、当該サービス提供側プロセスに係る未完了の処理要求件数が予め設定された閾値を超えているか否かを判定する機能と、上記閾値を超えている場合に、当該処理要求を一旦待機用の第4の記憶領域に格納する機能と、上記第1の記憶領域の格納情報が更新される度に、上記第4の記憶領域に格納された各処理要求について、上記第1の記憶領域を参照して未完了の処理要求件数が最も少ないサービス提供側プロセスを特定する機能と、当該サービス提供側プロセスの未完了の処理要求件数が予め設定された閾値以下か否かを判定し、上記閾値以下の場合に当該処理要求を対応のサービス提供側プロセスの負荷情報管理部に送信する機能を備えたことを特徴としている。   The load distribution processing system according to claim 5 is based on the system according to claims 1 to 4, and further, when the processing request distribution unit transmits the processing request to the load information management unit of the service providing side process, A function for determining whether or not the number of incomplete processing requests related to the service providing side process exceeds a preset threshold, and if the number exceeds the threshold, the processing request is For each processing request stored in the fourth storage area, refer to the first storage area each time the storage information in the storage area is updated and the storage information in the first storage area is updated. A function that identifies the service providing side process with the smallest number of incomplete processing requests and whether or not the number of incomplete processing requests of the service providing process is equal to or less than a preset threshold. The processing request is characterized by having a function of transmitting the load information management unit of the corresponding serving process if.

請求項6に記載した負荷分散処理システムは、請求項1〜5のシステムを前提とし、さらに上記サービス利用側プロセスが、予め設定されたタイミングで、予め設定されたルールに従って価格を算出し、この価格による、自己に割り当てられた数量分の新規注文情報を生成する処理を実行する、証券取引自動執行システムの複数の発注プロセスよりなり、上記サービス提供側プロセスが、上記発注プロセスとゲートウェイプロセスとの間に介在し、発注プロセスによって生成された注文情報を受け付けて上記ゲートウェイプロセスに送信すると共に、ゲートウェイプロセスから送信された証券取引所のコンピュータからの注文確認情報を上記発注プロセスに送信する処理を実行する複数の受付プロセスよりなり、上記処理要求振分部が、上記発注プロセスによって生成された注文情報を上記処理要求として上記受付プロセスの負荷情報管理部に送信すると共に、当該受付プロセスの負荷情報管理部から送信された上記注文確認情報を上記処理結果として上記発注プロセスに渡し、上記負荷情報管理部が、上記発注プロセスの処理要求振分部から上記処理要求としての注文情報を受信し、上記受付プロセスに渡すと共に、当該受付プロセスから渡された上記処理結果としての注文確認情報を、上記発注プロセスの処理要求振分部に送信することを特徴としている。   The load distribution processing system according to claim 6 is based on the system according to claims 1 to 5, and the service using process calculates a price according to a preset rule at a preset timing, It consists of multiple ordering processes of the securities transaction auto-execution system that executes the process of generating new order information for the quantity allocated to itself based on the price, and the service provider process connects the ordering process and the gateway process. Intervening, accepting the order information generated by the ordering process and sending it to the gateway process, and executing the process of sending the order confirmation information from the stock exchange computer sent from the gateway process to the ordering process And the processing request distribution unit is configured as described above. The order information generated by the ordering process is transmitted as the processing request to the load information management unit of the reception process, and the order confirmation information transmitted from the load information management unit of the reception process is used as the processing result as the ordering process. The load information management unit receives the order information as the processing request from the processing request distribution unit of the ordering process, passes the order information to the receiving process, and as the processing result passed from the receiving process. The order confirmation information is transmitted to the processing request distribution unit of the ordering process.

請求項7に記載した負荷分散処理システムは、請求項6のシステムを前提とし、さらに上記サービス利用側プロセスが、上記受付プロセスよりなり、上記サービス提供側プロセスが、上記ゲートウェイプロセスよりなり、上記処理要求振分部が、上記受付プロセスから渡された注文情報を上記処理要求として上記ゲートウェイプロセスの負荷情報管理部に送信すると共に、当該ゲートウェイプロセスの負荷情報管理部から送信された上記注文確認情報を上記処理結果として上記受付プロセスに渡し、上記負荷情報管理部が、上記受付プロセスの処理要求振分部から上記処理要求としての注文情報を受信し、上記ゲートウェイプロセスに渡すと共に、ゲートウェイプロセスから渡された上記処理結果としての注文確認情報を、上記受付プロセスの処理要求振分部に送信することを特徴としている。   The load distribution processing system according to claim 7 is based on the system of claim 6, wherein the service using side process is composed of the reception process, and the service providing side process is composed of the gateway process. The request distribution unit transmits the order information passed from the reception process to the load information management unit of the gateway process as the processing request, and the order confirmation information transmitted from the load information management unit of the gateway process. The load information management unit receives the order information as the processing request from the processing request distribution unit of the receiving process, passes it to the gateway process, and is passed from the gateway process as the processing result. Order confirmation information as a result of the above processing It is characterized by transmitting to the processing request distribution unit.

請求項1に記載した負荷分散処理システムの場合、サービス提供側プロセス毎に設けられた負荷情報管理部によってサービス提供側プロセスの負荷情報(サービス利用側プロセス毎の処理要求受信件数及び処理結果返信件数)が管理され、この負荷情報が定期的に負荷情報配信部に送信される。また、サービス利用側プロセス毎に設けられた処理要求振分部に対しては、負荷情報配信部から定期的にサービス利用側プロセス毎の負荷情報(未完了の処理要求件数)が配信される。この結果、各サービス利用側プロセスの処理要求振分部は、サービス利用側プロセスで生成された処理要求を送信する際に、上記の負荷情報を参照することにより、最も負荷の小さいサービス提供側プロセスに対して処理要求を送信することが可能となる。この負荷情報は、CPU負荷情報ではなく、未完了の処理要求件数からなるため、各サービス提供側プロセスの実際の負荷状況を正確に表しているといえる。
しかも、処理要求及び処理結果は、サービス利用側プロセスの処理要求振分部とサービス提供側プロセスの負荷情報管理部間で直接やり取りされるため、特許文献1のように負荷分散処理装置を経由する場合に比べ、電文の送受信が効率化される。また、負荷分散処理装置に負荷が集中することによるシステム全体の性能低下が生じるおそれもない。
負荷情報の収集・配信もリアルタイムで行われるのではなく、所定の時間間隔でまとめて実行される仕組みであるため、負荷情報の頻発によってネットワーク負荷を徒に増大させることもない。
In the case of the load distribution processing system according to claim 1, the load information management unit provided for each service providing side process loads information on the service providing side process (the number of received processing requests and the number of processing result replies for each service using side process). ) And the load information is periodically transmitted to the load information distribution unit. Further, load information (number of uncompleted processing requests) for each service using side process is periodically distributed from the load information distributing unit to the processing request distributing unit provided for each service using side process. As a result, the processing request allocating unit of each service using side process refers to the above load information when transmitting the processing request generated by the service using side process, so that the service providing side process with the smallest load is provided. It is possible to send a processing request to. Since this load information is not CPU load information but consists of the number of incomplete processing requests, it can be said that it accurately represents the actual load status of each service providing process.
In addition, since the processing request and the processing result are directly exchanged between the processing request distribution unit of the service using process and the load information management unit of the service providing process, the processing request and the processing result pass through the load distribution processing device as in Patent Document 1. Compared to the case, transmission / reception of electronic messages is made more efficient. Further, there is no possibility that the performance of the entire system is deteriorated due to the concentration of the load on the load distribution processing apparatus.
Collection and distribution of load information is not performed in real time, but is a system that is executed collectively at predetermined time intervals, so that network load is not increased due to frequent occurrence of load information.

請求項3に記載した負荷分散処理システムの場合、上記請求項1の効果に加え、処理要求振分部が保持する負荷情報が自己が担当するサービス利用側プロセスによって発せられた「自要求件数」と他の全てのサービス利用側プロセスによって発せられた「他要求件数」とに分かれており、自要求件数の増減については処理要求振分部自身が管理する仕組みを備えているため、少なくとも自己が担当するサービス利用側プロセスに係る各サービス提供側プロセスの負荷情報については、負荷情報配信部からの配信を待つことなく、リアルタイムで最新の状態に維持することが可能となる。   In the case of the load distribution processing system according to claim 3, in addition to the effect of claim 1, “the number of self-requests” issued by the service use side process in charge of the load information held by the processing request distribution unit. And the number of other requests issued by all other service-using processes, and the processing request distribution unit itself has a mechanism to manage the increase / decrease in the number of requests, so at least the self The load information of each service providing side process related to the service using side process in charge can be maintained in the latest state in real time without waiting for the delivery from the load information delivery unit.

請求項2及び4に記載した負荷分散処理システムの場合、負荷情報管理部がサービス提供側プロセスによる処理結果をサービス提供側プロセスの処理要求振分部に返信する際に、自己が担当するサービス提供側プロセスの現時点における負荷情報が一緒に返信され、処理要求振分部はこの最新の負荷情報に基づいて自己が管理する負荷情報を更新する仕組みを備えているため、処理結果を受け取る度に、少なくとも当該サービス提供側プロセスに係る負荷情報を最新の状態にすることができる。   In the case of the load distribution processing system according to claim 2 and 4, when the load information management unit returns the processing result by the service providing side process to the processing request distribution unit of the service providing side process, the service provided by itself The load information at the current time of the side process is returned together, and the processing request distribution unit has a mechanism to update the load information managed by itself based on this latest load information, so every time a processing result is received, At least the load information related to the service providing process can be updated.

請求項5に記載した負荷分散処理システムにあっては、最も負荷の小さいサービス提供側プロセスの未完了の処理要求件数が所定の閾値を超えている場合には、サービス提供側プロセス全体が高負荷状態にあると判断して当該処理要求を一旦待機用の第4の記憶領域に格納させ、高負荷状態が解消した後に処理要求を送信する仕組みを備えているため、何らかの理由によって高負荷状態に陥っているサービス提供側プロセスに対して機械的に処理要求が送信され続けて、システムダウン等の障害が発生する危険性を有効に回避することができる。   In the load distribution processing system according to claim 5, when the number of incomplete processing requests of the service providing side process having the smallest load exceeds a predetermined threshold, the entire service providing side process has a high load. Since it is determined that the processing request is stored, the processing request is temporarily stored in the fourth storage area for standby, and the processing request is transmitted after the high load state is resolved. It is possible to effectively avoid a risk that a failure such as a system failure occurs due to a continuous transmission of a processing request to the service providing side process that has fallen.

図1は、この発明に係る負荷分散処理システム80の全体構成を示す模式図であり、複数のサービス利用側プロセス81と、複数のサービス提供側プロセス82と、管理デーモン83とを備えている。この管理デーモン83は、「負荷情報配信部」に該当する。   FIG. 1 is a schematic diagram showing the overall configuration of a load distribution processing system 80 according to the present invention, which includes a plurality of service using side processes 81, a plurality of service providing side processes 82, and a management daemon 83. The management daemon 83 corresponds to a “load information distribution unit”.

また、サービス利用側プロセス81は、負荷分散処理用のAPI(Application Program Interface)を備えている。このサービス利用側API84は、「処理要求振分部」に該当し、振分待ちの処理要求データを一時的に格納する振分待ち要求記憶領域(「第4の記憶領域」に該当)85と、処理要求キュー情報を格納する処理要求キュー情報記憶領域(「第1の記憶領域」に該当)86を備えている。   In addition, the service using process 81 includes an API (Application Program Interface) for load distribution processing. This service-use-side API 84 corresponds to a “processing request distribution unit”, and a distribution waiting request storage area (corresponding to a “fourth storage area”) 85 that temporarily stores processing request data waiting for distribution. The processing request queue information storage area (corresponding to the “first storage area”) 86 for storing the processing request queue information is provided.

上記サービス提供側プロセス82は、負荷分散処理用のAPIを備えている。このサービス提供側API87は、「負荷情報管理部」に該当し、サービス提供側キュー情報を格納するサービス提供側キュー情報記憶領域(「第2の記憶領域」に該当)88を備えている。   The service providing side process 82 includes an API for load distribution processing. The service providing side API 87 corresponds to a “load information management unit” and includes a service providing side queue information storage area (corresponding to a “second storage area”) 88 for storing service providing side queue information.

上記サービス利用側API84及びサービス提供側API87は、それぞれ共通のミドルウェアによって提供される関数により構成される。
また、上記管理デーモン83は、このミドルウェアの常駐プログラムであり、管理デーモンキュー情報を格納する管理デーモンキュー情報記憶領域89を備えている。
各サービス利用側API84と各サービス提供側API87との間、各サービス利用側API84と管理デーモン83との間、及び各サービス提供側API87と管理デーモン83との間は、TCP/IP(Transmission Control Protocol/Internet Protocol)によって通信可能に接続されている。
The service using side API 84 and the service providing side API 87 are configured by functions provided by common middleware.
The management daemon 83 is a middleware resident program, and includes a management daemon queue information storage area 89 for storing management daemon queue information.
Between each service using side API 84 and each service providing side API 87, between each service using side API 84 and the management daemon 83, and between each service providing side API 87 and the management daemon 83, TCP / IP (Transmission Control Protocol) / Internet Protocol).

この負荷分散処理システム80においては、処理要求データ及び処理結果データはあくまでもサービス利用側API84及びサービス提供側API87間で直接的に送受信され、管理デーモン83がこれを中継することはない。
また、各サービス提供側プロセスから管理デーモン83に対して、一定の間隔をおいて定期的に自らの負荷状況を示す情報が送信されると共に、管理デーモン83から各サービス利用側プロセスに対して、一定の間隔をおいて定期的に各サービス提供側プロセスの負荷状況を示す情報が送信される。
各サービス利用側プロセスは、管理デーモン83から送られてきた情報を参照し、最も負荷の少ないサービス提供側プロセスを自ら選択し、処理要求を送信する。
以下、図2及び図3のフローチャートに従い、この負荷分散処理システムの動作を説明する。
In the load distribution processing system 80, the processing request data and the processing result data are transmitted and received directly between the service using side API 84 and the service providing side API 87, and the management daemon 83 does not relay them.
In addition, information indicating its own load status is periodically transmitted from the service providing process to the management daemon 83 at regular intervals, and from the management daemon 83 to each service using process, Information indicating the load status of each service providing process is periodically transmitted at regular intervals.
Each service using process refers to the information sent from the management daemon 83, selects the service providing process with the least load, and transmits a processing request.
The operation of this load distribution processing system will be described below with reference to the flowcharts of FIGS.

まず、サービス利用側プロセスにおいて何らかの処理要求が発生すると、サービス利用側API84が当該サービス利用側プロセス81によって起動される(図2のS60)。このサービス利用側API84は、サービス利用側プロセス81から処理要求を受け取ると(S61)、処理要求キュー情報を参照し、最も負荷の小さいサービス提供側プロセス82を特定する(S12)。   First, when any processing request occurs in the service using side process, the service using side API 84 is activated by the service using side process 81 (S60 in FIG. 2). When the service using side API 84 receives a processing request from the service using side process 81 (S61), it refers to the processing request queue information and identifies the service providing side process 82 with the smallest load (S12).

すなわち、処理要求キュー情報記憶領域86には、図4に示すように、サービス提供側ID(IPアドレス+プロセスIDより構成される)、自要求件数、他要求件数のデータ項目を備えたレコードが、サービス提供側プロセス毎に格納されている。
ここで「自要求件数」とは、当該サービス利用側プロセス自身が当該サービス提供側プロセスに対して発した未完了の処理要求件数を意味しており、サービス利用側API84によって随時更新される情報である。
これに対し「他要求件数」とは、当該サービス利用側プロセス以外のサービス利用側プロセスが当該サービス提供側プロセスに対して発した未完了の処理要求件数を意味しており、管理デーモン83から定期的に送信されるクライアントキュー情報に基づいてサービス利用側API84が更新する情報である。
そこでサービス利用側API84は、自要求件数と他要求件数の合計値が最小となるサービス提供側プロセス82を最も負荷の小さいサービス提供側プロセスと認定する。
That is, in the processing request queue information storage area 86, as shown in FIG. 4, a record having data items of a service providing side ID (configured of IP address + process ID), the number of own requests, and the number of other requests. Stored for each service providing process.
Here, the “number of self-requests” means the number of incomplete processing requests issued by the service using process itself to the service providing process, and is information that is updated from time to time by the service using API 84. is there.
On the other hand, “the number of other requests” means the number of incomplete processing requests issued to the service providing side process by a service using side process other than the service using side process. This is information that is updated by the service using API 84 based on the client queue information that is transmitted automatically.
Therefore, the service use side API 84 recognizes the service providing side process 82 having the smallest sum of the number of self requests and the number of other requests as the service providing side process with the smallest load.

つぎにサービス利用側API84は、この現状で最も負荷の小さいサービス提供側プロセスに係る「自要求件数+他要求件数」の値が、予め設定された閾値よりも大きいか否かを判定する(S63)。
ここでYESの判定結果となった場合には、当該サービス提供側プロセスが高負荷状態にあることを意味するため、サービス利用側API84は直ちに処理要求を発することを控える。具体的には、当該処理要求データを振分待ち要求記憶領域85に一旦格納する(S84)。
Next, the service using side API 84 determines whether or not the value of “the number of own requests + the number of other requests” related to the service providing side process with the smallest load is larger than a preset threshold value (S63). ).
If the determination result is YES, this means that the service providing side process is in a high load state, and the service using side API 84 refrains from issuing a processing request immediately. Specifically, the processing request data is temporarily stored in the distribution wait request storage area 85 (S84).

これに対し、S63においてNOの判定結果が出た場合には、サービス利用側API84は当該サービス提供側プロセス82のレコードの「自要求件数」の値に「1」を加算した後(S65)、当該サービス提供側プロセス82に対して処理要求を送信する(S66)。
なお、自要求件数と他要求件数の合計値が最小となるサービス提供側プロセス82が複数存在した場合、サービス利用側API84は所定のルール(例えばラウンドロビン方式)に従って一のサービス提供側プロセス82を選択し、処理要求を送信する。
On the other hand, when a NO determination result is obtained in S63, the service using side API 84 adds “1” to the value of “the number of self requests” of the record of the service providing side process 82 (S65), A processing request is transmitted to the service providing side process 82 (S66).
When there are a plurality of service providing side processes 82 in which the total value of the number of self-requests and the number of other requests is minimized, the service using side API 84 sets one service providing side process 82 according to a predetermined rule (for example, round robin method). Select and send processing request.

これを受けたサービス提供側API87は、サービス提供側キュー情報記憶領域88を検索し、当該サービス利用側プロセス81のレコードを抽出する(S67)。
すなわち、サービス提供側キュー情報記憶領域88には、図5に示すように、サービス利用側ID(IPアドレス+プロセスIDより構成される)、処理要求受信件数、処理要求返信件数のデータ項目を備えたレコードが、サービス利用側プロセス81毎に格納されている。
このためサービス提供側API87は、サービス利用側プロセス81から送信された処理要求に含まれるIPアドレス及びプロセスIDにより、当該サービス利用側プロセス81のレコードを特定することができる。
Receiving this, the service providing side API 87 searches the service providing side queue information storage area 88 and extracts the record of the service using side process 81 (S67).
That is, as shown in FIG. 5, the service providing side queue information storage area 88 includes data items such as a service using side ID (consisting of IP address + process ID), the number of received processing requests, and the number of processing request replies. A record is stored for each service using process 81.
For this reason, the service providing side API 87 can specify the record of the service using side process 81 by the IP address and the process ID included in the processing request transmitted from the service using side process 81.

因みに、「処理要求受信件数」は当該サービス利用側プロセス81から受信した処理要求の累積件数を記録しておくデータ項目であり、「処理要求返信件数」は当該サービス利用側プロセス81に対して送信した処理結果の累積件数を記録しておくデータ項目であり、何れもサービス提供側API87によって随時更新される。
この処理要求受信件数から処理要求返信件数を減ずることにより、現在処理中の未完了の処理要求件数を割り出すことが可能となる。
Incidentally, the “number of processing request received” is a data item for recording the cumulative number of processing requests received from the service using process 81, and the “processing request reply count” is sent to the service using process 81. This is a data item for recording the cumulative number of processing results, and is updated as needed by the service providing side API 87.
By subtracting the number of processing request replies from the number of received processing requests, the number of incomplete processing requests currently being processed can be determined.

つぎにサービス提供側API87は、抽出したサービス利用側プロセス81のレコードの処理要求受信件数に「1」を加算し(S68)、当該処理要求とレコードを関連付けた後(S69)、サービス提供側プロセス82に対して当該処理要求を渡す(S70)。   Next, the service providing side API 87 adds “1” to the number of received processing requests of the record of the extracted service using side process 81 (S68), associates the processing request with the record (S69), and then provides the service providing side process. The processing request is passed to 82 (S70).

これを受け取ったサービス提供側プロセス82は、必要な処理を実行する。
そして、サービス提供側API87がサービス提供側プロセス82から処理結果を受け取ると(S71)、当該サービス利用側プロセス81のレコードの処理要求返信件数に「1」を加算する(S72)。
Receiving this, the service providing side process 82 executes necessary processing.
When the service providing side API 87 receives the processing result from the service providing side process 82 (S71), "1" is added to the number of processing request replies in the record of the service using side process 81 (S72).

つぎに、サービス提供側API87は、サービス提供側キュー情報のサマリ情報を生成する(S73)。
このサービス提供側キュー情報のサマリ情報は、図6に示すように、処理要求受信件数及び処理要求返信件数のデータ項目を備えており、「処理要求受信件数」には当該サービス提供側プロセス82が応対した全サービス利用側プロセス81に係る処理要求件数の総計値が、また「処理要求返信件数」には当該サービス提供側プロセス82が応対した全サービス利用側プロセス81に係る処理要求件数の総計値が格納される。
このためにサービス提供側API87は、サービス提供側キュー情報の全レコードに係る処理要求受信件数を加算してサマリ情報の処理要求受信件数を算出し、同じくサービス提供側キュー情報の全レコードに係る処理要求返信件数を加算してサマリ情報の処理要求返信件数を算出する。
Next, the service providing side API 87 generates summary information of the service providing side queue information (S73).
As shown in FIG. 6, the summary information of the service providing side queue information includes data items of the number of processing request receptions and the number of processing request replies. The total value of the number of processing requests related to all the service using side processes 81 handled, and the “number of processing request replies” is the total number of processing request numbers related to all the service using side processes 81 handled by the service providing side process 82 Is stored.
To this end, the service providing side API 87 adds the number of processing request receptions related to all the records of the service providing side queue information to calculate the number of processing request receptions of summary information, and similarly, processes related to all the records of the service providing side queue information The number of request replies is added to calculate the number of processing request replies for summary information.

つぎにサービス提供側API87は、処理結果及びサマリ情報をサービス利用側API84に返信する(S74)。
これを受けたサービス利用側API84は、サービス提供側プロセス82の「IPアドレス+プロセスID」をキーにして、処理要求キュー情報記憶領域86を検索し、当該サービス提供側プロセス82のレコードを抽出する(S75)。
つぎにサービス利用側API84は、当該レコードの「自要求件数」から「1」を減算した後(S76)、サービス利用側プロセス81に処理結果を渡す(S77)。
Next, the service providing side API 87 returns the processing result and summary information to the service using side API 84 (S74).
Receiving this, the service using side API 84 searches the processing request queue information storage area 86 using “IP address + process ID” of the service providing side process 82 as a key, and extracts the record of the service providing side process 82. (S75).
Next, the service use side API 84 subtracts “1” from the “number of requests” of the record (S76), and then passes the processing result to the service use side process 81 (S77).

つぎにサービス利用側API84は、サービス提供側API87から送信されたサマリ情報に基づいて、当該サービス提供側プロセス82のレコードにおける「他要求件数」を更新する(S78)。
具体的には、サマリ情報の処理要求受信件数から処理要求返信件数を減算し、その算出結果からさらに自要求件数を減算することにより、最新の「他要求件数」が得られるため、この値によって上記レコードの「他要求件数」を上書きする。
Next, the service using side API 84 updates the “number of other requests” in the record of the service providing side process 82 based on the summary information transmitted from the service providing side API 87 (S78).
Specifically, the latest "number of other requests" is obtained by subtracting the number of processing request replies from the number of received processing requests in the summary information and further subtracting the number of self-requests from the calculation result. Overwrite "Number of other requests" in the above record.

一方、サービス提供側API87は、予め設定されたタイミングが到来する都度(S79)、各サービス利用側プロセス81に係るサービス提供側キュー情報の全レコードを、管理デーモン83に対して送信する(S80)。   On the other hand, each time the preset timing arrives (S79), the service providing side API 87 transmits all records of the service providing side queue information related to each service using side process 81 to the management daemon 83 (S80). .

これを受けた管理デーモン83は、管理デーモンキュー情報記憶領域89を検索し、当該サービス提供側プロセス82に係る各サービス利用側プロセス81のレコードを抽出する(S81)。
すなわち、管理デーモンキュー情報記憶領域89には、図7に示すように、サービス提供側ID(IPアドレス+プロセスID)、サービス利用側ID(IPアドレス+プロセスID)、処理要求受信件数、処理要求返信件数のデータ項目を備えたレコードが、サービス提供側プロセス×サービス利用側プロセス毎に格納されている。
このため管理デーモン83は、サービス提供側プロセス82から送信されたIPアドレス及びプロセスIDにより、当該サービス提供側プロセス82に係る全レコードを抽出した後、各サービス提供側キュー情報のサービス利用側IDに基づいて対応のレコードを特定することができる。
Receiving this, the management daemon 83 searches the management daemon queue information storage area 89 and extracts a record of each service using side process 81 related to the service providing side process 82 (S81).
That is, in the management daemon queue information storage area 89, as shown in FIG. 7, the service providing side ID (IP address + process ID), the service using side ID (IP address + process ID), the number of received processing requests, the processing request A record having data items for the number of replies is stored for each service providing process × service using process.
For this reason, the management daemon 83 extracts all records related to the service providing side process 82 based on the IP address and process ID transmitted from the service providing side process 82, and then sets the service using side ID of each service providing side queue information as the service using side ID. Corresponding records can be identified based on this.

つぎに管理デーモン83は、当該サービス提供側プロセス82から送信されたサービス提供側キュー情報によって管理デーモンキュー情報の処理要求受信件数及び処理要求返信件数を上書き更新する(S82)。
上記のサービス提供側キュー情報は、各サービス提供側プロセス82から非同期で定期的に送信され、これを受けた管理デーモン83は、その都度、管理デーモンキュー情報の当該サービス提供側プロセス82に係るレコードを更新する。
Next, the management daemon 83 overwrites and updates the processing request reception number and the processing request reply number of the management daemon queue information with the service providing side queue information transmitted from the service providing side process 82 (S82).
The service provider side queue information is periodically and asynchronously transmitted from each service provider side process 82, and the management daemon 83 receiving this information records each time the management daemon queue information relates to the service provider side process 82. Update.

また管理デーモン83は、予め設定されたタイミングが到来する都度(S83)、管理デーモンキュー情報に基づいてクライアントキュー情報を生成する(S84)。
このクライアントキュー情報は、図8に示すように、サービス提供側ID(IPアドレス+プロセスID)及び他要求件数のデータ項目を備えており、サービス利用側プロセス81毎に各サービス提供側プロセス82における「他要求件数(当該サービス利用側プロセス以外のサービス利用側プロセスに係る未完了の処理要求件数の合計値)」が算出され、クライアントキュー情報となされる。
The management daemon 83 generates client queue information based on the management daemon queue information every time a preset timing arrives (S83).
As shown in FIG. 8, this client queue information includes data items of a service providing side ID (IP address + process ID) and the number of other requests, and each service providing side process 81 has a data item in each service providing side process 82. The “number of other requests (total value of the number of incomplete processing requests related to service using side processes other than the service using side process)” is calculated and used as client queue information.

例えば、図9に示すように、サービス提供側プロセスXの処理中(未完了)の件数が10件あり、その中、サービス利用側プロセスAの分が2件、サービス利用側プロセスBの分が5件、サービス利用側プロセスCの分が3件であった場合、処理中の全件数−各サービス利用側プロセス分の件数により、サービス提供側プロセスXの各サービス利用側プロセス向けの「他要求件数」が、A用=8件、B用=5件、C用=7件のように算出される。   For example, as shown in FIG. 9, there are 10 service providing processes X being processed (incomplete), of which 2 are for service using process A and 2 are for service using process B. If there are 5 cases for the service use side process C, the “other requests for each service use side process of the service providing side process X according to the total number of cases being processed—the number of cases for each service use side process” “Number of cases” is calculated as follows: A = 8, B = 5, C = 7.

また、サービス提供側プロセスYの処理中の件数が15件あり、その中、サービス利用側プロセスAの分が7件、サービス利用側プロセスBの分が2件、サービス利用側プロセスCの分が6件であった場合、処理中の全件数−各サービス利用側プロセス分の件数により、サービス提供側プロセスYの各サービス利用側プロセス向けの「他要求件数」が、A用=8件、B用=13件、C用=9件のように算出される。   In addition, there are 15 cases where the service providing process Y is being processed, of which 7 are for the service using process A, 2 are for the service using process B, and 2 are for the service using process C. If there are six cases, the “number of other requests” for each service user side process of the service provider side process Y is 8 for A, B It is calculated as follows: use = 13 cases, C use = 9 cases.

同様に、サービス提供側プロセスZの処理中の件数が20件あり、その中、サービス利用側プロセスAの分が8件、サービス利用側プロセスBの分が6件、サービス利用側プロセスCの分が6件であった場合、処理中の全件数−各サービス利用側プロセス分の件数により、サービス提供側プロセスZの各サービス利用側プロセス向けの「他要求件数」が、A用=12件、B用=14件、C用=14件のように算出される。   Similarly, there are 20 cases where the service providing process Z is being processed, of which 8 are for the service using process A, 6 are for the service using process B, and 6 are for the service using process C. The number of “other requests” for each service using side process of the service providing side process Z is 12 for A according to the total number of processes being processed—the number of processes for each service using side process. For B = 14 cases, C = 14 cases are calculated.

最後に、サービス利用側プロセス81毎に各サービス提供側プロセス82における他要求件数を集約することにより、各サービス利用側プロセス81向けのクライアントキュー情報ができあがる。
つぎに管理デーモン83は、各サービス利用側プロセス向けのクライアントキュー情報を、対応のサービス利用側API84に送信する(S85)。
Finally, the client queue information for each service using process 81 is completed by aggregating the number of other requests in each service providing process 82 for each service using process 81.
Next, the management daemon 83 transmits client queue information for each service using side process to the corresponding service using side API 84 (S85).

これを受けた各サービス利用側API84は、処理要求キュー情報中の各サービス提供側プロセス82に係る他要求件数を上書きする(S86)。
上記のS78においては、処理結果と共にサービス提供側API87から送信されたサマリ情報に基づいて、当該サービス提供側プロセス82に係る他要求件数のみが更新されたのに対し、このS86においては、全サービス提供側プロセス82に係る他要求件数が一斉に更新される点で、両処理は内容を異にしている。
Receiving this, each service using side API 84 overwrites the number of other requests related to each service providing side process 82 in the processing request queue information (S86).
In S78 described above, only the number of other requests related to the service provider process 82 is updated based on the summary information transmitted from the service provider API 87 together with the processing result, whereas in S86 all services are updated. The contents of the two processes are different in that the number of other requests related to the providing process 82 is updated all at once.

ところで、上記のS68において、最も負荷の小さいサービス提供側プロセス82に係る「自要求件数+他要求件数」の値が所定の閾値よりも大きい場合には、S64において当該処理要求データを振分待ち要求記憶領域85に格納する旨を記載したが、図10のフローチャートに従い、この振分待ち要求の取扱いについて説明する。   By the way, in S68, when the value of “the number of self requests + the number of other requests” related to the service providing side process 82 with the smallest load is larger than a predetermined threshold value, the process request data is waited for distribution in S64. Although it has been described that it is stored in the request storage area 85, the handling of this distribution waiting request will be described with reference to the flowchart of FIG.

まず、上記のS76やS78、S86のように処理要求キュー情報の更新がある都度(S90)、サービス利用側API84は処理要求キュー情報を参照して最も負荷の小さいサービス提供側プロセス82を特定し(S91)、このサービス提供側プロセス82に係る「自要求件数+他要求件数」の値が、予め設定された閾値以下か否かを判定する(S92)。
そして、当該サービス提供側プロセス82に係る「自要求件数+他要求件数」が所定の閾値以下となった場合、サービス利用側API84は当該サービス提供側プロセス82のレコードの「自要求件数」の値に「1」を加算した後(S93)、当該サービス提供側プロセス82に対して処理要求を送信する(S94)。
First, whenever the processing request queue information is updated as in S76, S78, and S86 (S90), the service using side API 84 refers to the processing request queue information and identifies the service providing side process 82 with the smallest load. (S91), it is determined whether or not the value of “the number of own requests + the number of other requests” related to the service providing side process 82 is equal to or less than a preset threshold value (S92).
Then, when “the number of self-requests + the number of other requests” related to the service providing side process 82 is equal to or less than a predetermined threshold, the service using side API 84 sets the value of “the number of self-requesting” in the record of the service providing side process 82. After adding “1” to (S93), a processing request is transmitted to the service providing side process 82 (S94).

サービス提供側プロセス82から処理結果が返信されると(S96)、サービス利用側API84は、サービス提供側プロセス82の「IPアドレス+プロセスID」をキーにして処理要求キュー情報記憶領域86を検索し、当該サービス提供側プロセス82のレコードを抽出する(S97)。
つぎにサービス利用側API84は、当該レコードの「自要求件数」から「1」を減算した後(S98)、サービス利用側プロセス81に処理結果を渡す(S99)。
When the processing result is returned from the service providing side process 82 (S96), the service using side API 84 searches the processing request queue information storage area 86 using the “IP address + process ID” of the service providing side process 82 as a key. Then, a record of the service providing side process 82 is extracted (S97).
Next, the service use side API 84 subtracts “1” from the “number of requests” of the record (S98), and then passes the processing result to the service use side process 81 (S99).

上記においては、この負荷分散処理システム10が、ミドルウェアのAPI(サービス利用側API84及びサービス提供側API87)及び管理デーモン83によって実現される例を示したが、この発明はこの実施形態に限定されるものではなく、サービス利用側API84、サービス提供側API87及び管理デーモン83と同様の機能を備えた独立のプログラムによって構成することもできる。   In the above description, the load distribution processing system 10 is exemplified by the middleware API (the service use side API 84 and the service providing side API 87) and the management daemon 83. However, the present invention is limited to this embodiment. Instead, it may be configured by an independent program having the same functions as those of the service use side API 84, the service providing side API 87, and the management daemon 83.

上記のように、この負荷分散処理システム10の場合、処理要求と処理結果をサービス利用側プロセス81とサービス提供者プロセス82の間で直接的にやり取りする方式であり、特許文献1のように負荷分散処理装置によって中継される仕組みではないため、伝送遅れが生じることはない。
また、各サービス提供側プロセス82の現在の負荷状況を示す処理要求キュー情報は、サービス提供側プロセス82から処理結果が返信される都度、または管理デーモン83からクライアントキュー情報が送信される都度、最新のものに更新される仕組みを備えているため、各サービス提供側プロセス82の実際の負荷を反映させた処理要求の振分が可能となる。
As described above, this load distribution processing system 10 is a method in which processing requests and processing results are directly exchanged between the service using process 81 and the service provider process 82. Since it is not a mechanism relayed by the distributed processing apparatus, there is no transmission delay.
In addition, the processing request queue information indicating the current load status of each service providing side process 82 is updated every time the processing result is returned from the service providing side process 82 or the client queue information is transmitted from the management daemon 83. Therefore, it is possible to distribute processing requests reflecting the actual load of each service providing process 82.

このように、この負荷分散処理システム10の場合には、サービス提供側プロセス82の実際の負荷を反映させた分散処理が可能であり、しかも処理要求と処理結果が高速で伝達されるという特性を備えているため、瞬時に大量の注文情報を捌くことが求められる株式の自動執行システムなどに好適である。
以下、図11〜図29に基づいて証券取引自動執行システムについて説明した後、図30及び図31に基づき、この発明を証券取引自動執行システムに適用した例を説明する。
Thus, in the case of this load distribution processing system 10, the distributed processing that reflects the actual load of the service providing side process 82 is possible, and the processing request and the processing result are transmitted at high speed. Since it is provided, it is suitable for a stock automatic execution system that requires a large amount of order information to be obtained instantly.
Hereinafter, after describing the securities transaction automatic execution system based on FIGS. 11 to 29, an example in which the present invention is applied to the securities transaction automatic execution system will be described based on FIGS. 30 and 31.

図11は、証券取引自動執行システム10の全体構成を示すブロック図であり、設定登録部12と、アルゴリズムDB14と、執行制御部16と、注文分割部18と、複数の発注部20と、ボリュームカーブ選択部21と、ボリュームカーブ変更部22とを備えている。
設定登録部12、執行制御部16、注文分割部18、各発注部20、ボリュームカーブ選択部21及びボリュームカーブ変更部22は、コンピュータのCPUがOS及び専用のアプリケーションプログラムに従って必要な処理を実行することにより実現される。また、アルゴリズムDB14は、同コンピュータのハードディスク内に設けられている。
FIG. 11 is a block diagram showing the overall configuration of the securities transaction automatic execution system 10, which includes a setting registration unit 12, an algorithm DB 14, an execution control unit 16, an order division unit 18, a plurality of ordering units 20, and a volume. A curve selection unit 21 and a volume curve change unit 22 are provided.
The setting registration unit 12, the execution control unit 16, the order division unit 18, each ordering unit 20, the volume curve selection unit 21, and the volume curve change unit 22 execute necessary processes according to the OS and a dedicated application program by the computer CPU. Is realized. The algorithm DB 14 is provided in the hard disk of the computer.

設定登録部12及び執行制御部16には、通信ネットワークを介してトレーダの操作するクライアント端末23が接続されている。
また、執行制御部16は、通信ネットワークを介して証券取引所のコンピュータ24と接続されている。証券取引所のコンピュータ24から執行制御部16に対しては、市況データ(銘柄コード毎の現在値データ、気配値データ、出来高データ等)及び約定データ(注文ID、約定数量、約定価格、約定日時等)が断続的に送信される。
A client terminal 23 operated by a trader is connected to the setting registration unit 12 and the execution control unit 16 via a communication network.
The execution control unit 16 is connected to a stock exchange computer 24 via a communication network. From the computer 24 of the stock exchange to the execution control unit 16, market data (current value data, quote data, volume data, etc. for each stock code) and contract data (order ID, contract amount, contract price, contract date) Etc.) are transmitted intermittently.

このシステム10を利用するに当たり、トレーダは事前に複数の自動執行用アルゴリズムを設定し、アルゴリズムDB14内に登録しておく必要がある。
このためにトレーダは、クライアント端末23上に専用のアプリケーションプログラムを立ち上げて設定登録部12にアクセスし、アルゴリズム設定画面をディスプレイに表示させる。
図12は、クライアント端末23のディスプレイに表示されたアルゴリズム設定画面30の一例を示すものであり、左側ペイン31にはアルゴリズム32、ボリュームカーブ選択部品33、ボリュームカーブ変更部品34、注文分割部品35、発注部品36の各設定項目がツリー状に配置されている。
In using this system 10, the trader needs to set a plurality of algorithms for automatic execution in advance and register them in the algorithm DB.
For this purpose, the trader starts a dedicated application program on the client terminal 23, accesses the setting registration unit 12, and displays the algorithm setting screen on the display.
FIG. 12 shows an example of the algorithm setting screen 30 displayed on the display of the client terminal 23. The left pane 31 has an algorithm 32, a volume curve selection part 33, a volume curve change part 34, an order division part 35, Each setting item of the order part 36 is arranged in a tree shape.

ここでトレーダは、アルゴリズム32の枝を選択した状態で右クリックを行い、展開される右クリックメニュー中から「アルゴリズムの追加」を選択し、アルゴリズム名をタイプ入力する。この結果、アルゴリズム32の配下に新しいアルゴリズム名が追加される。ここでは、「VWAP戦略」が新たに追加されたものとする。   Here, the trader right-clicks with the branch of the algorithm 32 selected, selects “add algorithm” from the expanded right-click menu, and inputs the algorithm name. As a result, a new algorithm name is added under the algorithm 32. Here, “VWAP strategy” is newly added.

つぎにトレーダは、追加した「VWAP戦略」を選択した状態で、右側ペイン37に表示されたボリュームカーブ選択部品指定欄38、ボリュームカーブ変更部品指定欄39、注文分割部品指定欄40に対し、具体的なボリュームカーブ選択部品名、ボリュームカーブ変更部品名、注文分割部品名を選択入力する。またトレーダは、発注部品指定欄41において、表示された発注部品のニモニック(ここでは「$LimitOrder」が表示されている)と関連付けられるべき発注部品を選択入力する。   Next, with the added “VWAP Strategy” selected, the trader selects the volume curve selection part specification field 38, volume curve change part specification field 39, and order split part specification field 40 displayed in the right pane 37. Select and input a typical volume curve selection part name, volume curve change part name, and order split part name. Further, the trader selects and inputs an order part to be associated with the displayed order part mnemonic (here, “$ LimitOrder” is displayed) in the order part designation field 41.

ここで「ボリュームカーブ」とは、注文総数に対する執行率の推移と時間の経過との対応関係を示した曲線を意味し、執行のペースを規定する発注スケジュール定義データと同義である。図13はボリュームカーブの一例を示すものであり、銘柄ごとに証券取引所における一日の取引時間と出来高の対応関係を複数日間で平均化した曲線が描かれている。これは、例えばVWAPといわれる、取引所における対象銘柄の出来高加重平均を約定価格のターゲットとするアルゴリズムにおいて採用される。これ以外にも、例えばArrivalPriceといわれるアルゴリズムでは、過去の銘柄の統計値にしたがって理論的にマーケットインパクトを最小化するような曲線を演算によってもとめたものが、ボリュームカーブとして用いられる。   Here, the “volume curve” means a curve showing a correspondence relationship between the transition of the execution rate with respect to the total number of orders and the passage of time, and is synonymous with ordering schedule definition data that regulates the pace of execution. FIG. 13 shows an example of a volume curve, and for each brand, a curve is drawn in which the correspondence between the trading time of a day on the stock exchange and the trading volume is averaged over a plurality of days. This is adopted, for example, in an algorithm called VWAP, which targets the contract price with the volume-weighted average of the subject stock on the exchange. In addition to this, for example, an algorithm called ArrivalPrice uses a curve that theoretically minimizes the market impact according to the statistical value of the past stocks as a volume curve.

「ボリュームカーブ選択部品」とは、当該アルゴリズムの起動時に予め設定された条件の判定を行い、適用されるべきボリュームカーブを決定する機能を発揮するプログラム部品を意味している。このボリュームカーブ選択部品をインスタンス化することにより、上記のボリュームカーブ選択部21が生成される。
図においては、「サンプルVWAP1」という名前のボリュームカーブ選択部品が指定されている。
なお、具体的なボリュームカーブのデータは、アルゴリズムDB14に格納されている。
“Volume curve selection component” means a program component that performs a function of determining a volume curve to be applied by determining a preset condition when the algorithm is activated. By instantiating the volume curve selection component, the volume curve selection unit 21 is generated.
In the figure, a volume curve selection part named “sample VWAP1” is designated.
Note that specific volume curve data is stored in the algorithm DB 14.

「ボリュームカーブ変更部品」とは、当該アルゴリズムの実行中に、予め設定されたタイミングで変更条件の判定を行い、ボリュームカーブに必要な変更を加える機能を発揮するプログラム部品を意味している。このボリュームカーブ変更部品をインスタンス化することにより、上記のボリュームカーブ変更部22が生成される。
図においては、「サンプル5分先行」という名前のボリュームカーブ変更部品が指定されている。
“Volume curve changing component” means a program component that performs a function of determining a change condition at a preset timing and executing a necessary change to the volume curve during execution of the algorithm. The volume curve changing unit 22 is generated by instantiating the volume curve changing part.
In the figure, a volume curve changing part named “5 minutes ahead of sample” is designated.

「注文分割部品」とは、与えられた注文総数を所定のルールに従って複数の個別注文に分割すると共に、個別注文毎に当該注文処理を担当する発注部品をインスタンス化し、算出した個別注文数量を割り当てる機能を発揮するプログラム部品を意味している。この注文分割部品をインスタンス化することにより、上記の注文分割部18が生成される。
図においては、「5分スライス」という注文分割部品が選択されている。
“Order division parts” is a method of dividing a given total number of orders into a plurality of individual orders according to a predetermined rule, instantiating an order part responsible for the order processing for each individual order, and assigning the calculated individual order quantity. It means program parts that perform their functions. By instantiating the order division part, the order division unit 18 is generated.
In the figure, the order division part “5 minutes slice” is selected.

「発注部品」とは、注文分割部18によって割り当てられた数量の個別注文情報を執行制御部16を介して証券取引所のコンピュータ24に送信すると共に、所定のロジックに従って価格を操作することにより、できるだけ有利な価格での約定の成立を追求する機能を発揮するプログラム部品を意味している。この発注部品をインスタンス化することにより、上記の発注部20が生成される。
図においては、「$LimitOrder」という発注部品のニモニック(略称)に対して「5分後譲歩」という発注部品が関連付けられている。詳細は後述するが、この発注部品のニモニックは、注文分割部品指定欄40において選択された注文分割部品の設定時に、トレーダによって命名されたものである。
"Order parts" means that the individual order information of the quantity allocated by the order splitting unit 18 is transmitted to the stock exchange computer 24 via the execution control unit 16, and the price is manipulated according to a predetermined logic, It means a program component that demonstrates the function of pursuing the execution of a contract at an advantageous price as much as possible. The ordering unit 20 is generated by instantiating the ordering part.
In the figure, the ordering part “concession after 5 minutes” is associated with the mnemonic (abbreviation) of the ordering part “$ LimitOrder”. Although details will be described later, the mnemonic of the ordered part is the name assigned by the trader when setting the ordered divided part selected in the ordered divided part designation column 40.

図14は、アルゴリズムの設定項目をまとめたものである。これらボリュームカーブ選択部品の指定、ボリュームカーブ変更部品の指定、注文分割部品の指定、発注部品のニモニックと発注部品との関連付けを完了したトレーダは、メニューバーの「ファイル(F)→保存(S)」を順にクリックすることにより、設定の登録を求める。これを受けた設定登録部12は、「ボリュームカーブ選択部品:サンプルVWAP1、ボリュームカーブ変更部品:サンプル5分先行、注文分割部品:5分スライス、発注部品のニモニック($LimitOrder)=:5分後譲歩」の組合せ情報を、「VWAP戦略」のアルゴリズム名に関連付けてアルゴリズムDB14に格納する。   FIG. 14 summarizes the setting items of the algorithm. For the traders who have completed the specification of these volume curve selection parts, the specification of volume curve change parts, the specification of order split parts, and the association of the order part mnemonics with the order parts, select (File (F) → Save (S) ”In order to request registration of settings. Upon receipt of this, the setting registration unit 12 “Volume curve selection part: sample VWAP1, volume curve change part: sample 5 minutes ahead, order split part: slice 5 minutes, order part mnemonic ($ LimitOrder) =: 5 minutes later The combination information of “concess” is stored in the algorithm DB 14 in association with the algorithm name “VWAP strategy”.

図12のアルゴリズム設定画面30においては、「VWAP戦略」以外にも「パーティシペーション」、「オポチュニティ」、「PEG最良気配」といったアルゴリズム名が列記されているが、各アルゴリズムについても上記したボリュームカーブ選択部品の指定、ボリュームカーブ変更部品の指定、注文分割部品の指定、発注部品のニモニックと発注部品との関連付けが原則としてなされている。ただし、アルゴリズムによっては注文分割部18が個別注文数量を算出する際にボリュームカーブを参照する必要のないものもあり、この場合にはボリュームカーブ選択部品の指定及びボリュームカーブ変更部品の指定は省略される。また、最初に選択したボリュームカーブを途中で変更する必要がない場合には、ボリュームカーブ選択部品の指定のみがなされ、ボリュームカーブ変更部品の指定は省略される。   In the algorithm setting screen 30 of FIG. 12, in addition to “VWAP strategy”, algorithm names such as “participation”, “opportunity”, and “PEG best quotation” are listed. In principle, the selected part is specified, the volume curve changing part is specified, the order split part is specified, and the mnemonic of the ordered part is associated with the ordered part. However, depending on the algorithm, the order division unit 18 does not need to refer to the volume curve when calculating the individual order quantity. In this case, the specification of the volume curve selection part and the specification of the volume curve change part are omitted. The When there is no need to change the volume curve selected first, only the volume curve selection part is specified, and the specification of the volume curve change part is omitted.

トレーダは、独自のアルゴリズムを設定するために、事前に自分専用のボリュームカーブ選択部品、ボリュームカーブ変更部品、注文分割部品、発注部品を設定しておく。   In order to set a unique algorithm, the trader sets in advance his own volume curve selection part, volume curve change part, order division part and order part.

まずボリュームカーブ選択部品の設定について説明すると、図15に示すように、アルゴリズム設定画面30の左側ペイン31においてボリュームカーブ選択部品33の枝を選択した状態で右クリックを行い、展開される右クリックメニュー中から「ボリュームカーブ選択部品の追加」を選択し、ボリュームカーブ選択部品名をタイプ入力する。この結果、ボリュームカーブ選択部品33の配下に新しいボリュームカーブ選択部品名が追加される。ここでは、「サンプルVWAP1」が新たに追加されたものとする。   First, the setting of the volume curve selection part will be described. As shown in FIG. 15, the right click menu is expanded by right-clicking with the branch of the volume curve selection part 33 selected in the left pane 31 of the algorithm setting screen 30. Select “Add Volume Curve Selection Part” from the list and type in the volume curve selection part name. As a result, a new volume curve selection part name is added under the volume curve selection part 33. Here, it is assumed that “sample VWAP1” is newly added.

ボリュームカーブ選択部品に関しては、アルゴリズム起動時の状況に応じてボリュームカーブを切り替え可能とするために、複数の動作モードを設定しておくことができる。具体的には、アルゴリズム設定画面30の左側ペイン31において「サンプルVWAP1」の枝を選択した状態で右クリックを行い、展開される右クリックメニュー中から「動作モードの追加」を選択し、動作モード名をタイプ入力する。この結果、「サンプルVWAP1」の配下に新しい動作モードが追加される。図においては、「通常日」及び「SQ日」の2つの動作モードが設けられている。ここで「SQ日」とは、先物・オプション取引の清算日を意味している。   With respect to the volume curve selection part, a plurality of operation modes can be set in order to switch the volume curve according to the situation at the time of starting the algorithm. Specifically, right-click the “Sample VWAP1” branch in the left pane 31 of the algorithm setting screen 30 and select “Add Operation Mode” from the expanded right-click menu. Type in a name. As a result, a new operation mode is added under “sample VWAP1”. In the figure, two operation modes of “normal day” and “SQ day” are provided. Here, “SQ date” means the settlement date for futures and options.

つぎにトレーダは、追加した動作モードを選択した状態で、右側ペイン37に表示されたボリュームカーブ選択入力欄42に対し、特定のボリュームカーブを選択入力する。また、適用条件入力欄43に対して、具体的な設定値を打鍵入力する。
図においては、「SQ日」の動作モードが選択されており、そのボリュームカーブとして「VWAP」が、また適用条件として「SQ日」が設定されている。これは、アルゴリズムの起動時がSQ日に該当する場合には、ボリュームカーブとして「VWAP」が参照されるべきことがルール化されていることを意味している。
Next, the trader selects and inputs a specific volume curve to the volume curve selection input field 42 displayed in the right pane 37 with the added operation mode selected. In addition, a specific set value is input to the application condition input field 43.
In the figure, the operation mode of “SQ day” is selected, “VWAP” is set as the volume curve, and “SQ day” is set as the application condition. This means that it is ruled that “VWAP” should be referred to as a volume curve when the algorithm activation time falls on the SQ day.

図16は、ボリュームカーブ選択部品に係る設定項目をまとめたものである。これら動作モードの生成、各動作モードにおけるボリュームカーブの指定及び適用条件の指定を完了したトレーダは、メニューバーの「ファイル(F)→保存(S)」を順にクリックすることにより、設定の登録を求める。これを受けた設定登録部12は、ボリュームカーブ選択部品の共通機能について記述された雛形のプログラムコードに対して、トレーダが選択入力した設定事項に対応したコードを付加して固有のボリュームカーブ選択部品を自動生成し、「サンプルVWAP1」のプログラム部品名に関連付けてアルゴリズムDB14に格納する。   FIG. 16 summarizes the setting items related to the volume curve selection component. The trader who has completed the generation of these operation modes, the specification of the volume curve in each operation mode, and the specification of the application conditions, click `` File (F) → Save (S) '' in the menu bar in order to register the settings. Ask. In response to this, the setting registration unit 12 adds a code corresponding to the setting item selected and input by the trader to the program code of the template describing the common functions of the volume curve selection component, and then creates a unique volume curve selection component. Is automatically generated and stored in the algorithm DB 14 in association with the program part name of “sample VWAP1”.

つぎにトレーダは、ボリュームカーブ変更部品の設定に移る。すなわち、図17に示すように、アルゴリズム設定画面30の左側ペイン31においてボリュームカーブ変更部品34の枝を選択した状態で右クリックを行い、展開される右クリックメニュー中から「ボリュームカーブ変更部品の追加」を選択し、ボリュームカーブ変更部品名をタイプ入力する。この結果、ボリュームカーブ変更部品34の配下に新しいボリュームカーブ変更部品名が追加される。ここでは、「サンプル5分先行」が新たに追加されたものとする。   Next, the trader moves to the setting of the volume curve changing part. That is, as shown in FIG. 17, right click with the branch of the volume curve changing component 34 selected in the left pane 31 of the algorithm setting screen 30, and select “Add Volume Curve Changing Component” from the expanded right click menu. ”And type in the volume curve change part name. As a result, a new volume curve change part name is added under the volume curve change part 34. Here, “sample 5 minutes ahead” is newly added.

ボリュームカーブ変更部品に関しては、アルゴリズム実行中の状況変化に応じてボリュームカーブの柔軟な調整を可能とするために、複数の動作モードを設定しておくことができる。具体的には、アルゴリズム設定画面30の左側ペイン31において「サンプル5分先行」の枝を選択した状態で右クリックを行い、展開される右クリックメニュー中から「動作モードの追加」を選択し、動作モード名をタイプ入力する。この結果、「サンプル5分先行」の配下に新しい動作モードが追加される。図においては、「受注時」の動作モードのみが設けられているが、複数の動作モードを生成することも可能である   With respect to the volume curve changing component, a plurality of operation modes can be set in order to enable flexible adjustment of the volume curve in accordance with a change in the situation during execution of the algorithm. Specifically, in the left pane 31 of the algorithm setting screen 30, right-click with the “sample 5 minutes ahead” branch selected, and select “Add Operation Mode” from the expanded right-click menu. Type in the operating mode name. As a result, a new operation mode is added under “sample 5 minutes ahead”. In the figure, only the “On Order” operation mode is provided, but multiple operation modes can be generated.

つぎにトレーダは、追加した動作モードを選択した状態で、右側ペイン37に表示されたタイミング選択入力欄44、変更条件入力欄45、アクション入力欄46に対し、具体的な設定値を入力する。
図においては、タイミングとして「新規案件」が選択入力されている。また、アクションとして「ボリュームカーブ調整(分, 5.0)」が入力されている。これは、トレーダからの新規案件の発注がなされた場合には、現在のボリュームカーブを5分間進めることがルール化されていることを意味している。
ここでは変更条件入力欄45がブランクであるため、新規案件のタイミングに合致する場合には常にボリュームカーブが5分間進められることとなるが、変更条件入力欄45に条件式を予め入力しておくことにより、より細かい制御を行うこともできる。例えば、条件式として「新規案件の注文数量が注文総数の3%超えること」を所定の文法で記述しておくことが該当する。
Next, the trader inputs specific setting values to the timing selection input field 44, the change condition input field 45, and the action input field 46 displayed in the right pane 37 while the added operation mode is selected.
In the figure, “new case” is selected and input as the timing. Also, “Volume curve adjustment (min, 5.0)” is entered as an action. This means that it is a rule to advance the current volume curve for 5 minutes when a new item is ordered from a trader.
Here, since the change condition input field 45 is blank, the volume curve is always advanced for 5 minutes when it matches the timing of a new case. However, a conditional expression is input in the change condition input field 45 in advance. Therefore, finer control can be performed. For example, it is applicable to describe in a predetermined grammar that “the order quantity of a new case exceeds 3% of the total number of orders” as a conditional expression.

図18は、ボリュームカーブ変更部品に係る設定項目をまとめたものである。これら動作モードの生成、各動作モードにおけるタイミングの指定、変更条件の設定、アクションの設定を完了したトレーダは、メニューバーの「ファイル(F)→保存(S)」を順にクリックすることにより、設定の登録を求める。これを受けた設定登録部12は、ボリュームカーブ変更部品の共通機能について記述された雛形のプログラムコードに対して、トレーダが選択入力した設定事項に対応したコードを付加して固有のボリュームカーブ変更部品を自動生成し、「サンプル5分先行」のプログラム部品名に関連付けてアルゴリズムDB14に格納する。   FIG. 18 summarizes the setting items related to the volume curve changing component. For the traders who have created these operation modes, specified the timing in each operation mode, set the change conditions, and set the actions, click `` File (F) → Save (S) '' in the menu bar in order. Ask for registration. In response to this, the setting registration unit 12 adds a code corresponding to the setting item selected and input by the trader to the program code of the template describing the common functions of the volume curve changing parts. Is automatically generated and stored in the algorithm DB 14 in association with the program part name “5 minutes ahead of sample”.

つぎにトレーダは、注文分割部品の設定に移る。すなわち、図19に示すように、アルゴリズム設定画面30の左側ペイン31において注文分割部品35の枝を選択した状態で右クリックを行い、展開される右クリックメニュー中から「注文分割部品の追加」を選択し、注文分割部品名をタイプ入力する。この結果、注文分割部品35の配下に新しい注文分割部品名が追加される。ここでは、「5分スライス」が新たに追加されたものとする。   Next, the trader moves to the setting of order division parts. That is, as shown in FIG. 19, right click with the branch of the order split part 35 selected in the left pane 31 of the algorithm setting screen 30, and select “Add Order Split Part” from the expanded right click menu. Select and type in the order split part name. As a result, a new order split part name is added under the order split part 35. Here, it is assumed that “5-minute slice” is newly added.

注文分割部品に関しても、予め1または複数の動作モードを設定しておく。具体的には、アルゴリズム設定画面30の左側ペイン31において「5分スライス」の枝を選択した状態で右クリックを行い、展開される右クリックメニュー中から「動作モードの追加」を選択し、動作モード名をタイプ入力する。この結果、「5分スライス」の配下に新しい動作モードが追加される。図においては、「スライス」の動作モードのみが設けられている。   One or more operation modes are set in advance for the order divided parts. Specifically, in the left pane 31 of the algorithm setting screen 30, right-click with the “5-minute slice” branch selected, and select “Add Operation Mode” from the expanded right-click menu. Type in the mode name. As a result, a new operation mode is added under “5-minute slice”. In the figure, only the “slice” operation mode is provided.

つぎにトレーダは、追加した「スライス」の動作モードを選択した状態で、右側ペイン37に表示されたタイミング選択入力欄48、条件入力欄49及び内容入力欄50に対し、具体的な設定値を選択入力する。   Next, the trader selects specific operation values for the timing selection input field 48, the condition input field 49, and the content input field 50 displayed in the right pane 37 while the operation mode of the added “slice” is selected. Select and input.

ここでタイミング選択入力欄48は、発注部品をインスタンス化して発注部20を生成し、新たな注文を発するか否かを判定する際の時間的条件を規定する項目であり、図においては「5分間隔」で判定を行うべき旨が規定されている。   Here, the timing selection input field 48 is an item that defines the time condition when the ordering part 20 is instantiated to generate the ordering unit 20 and whether or not to issue a new order is determined. It is specified that the determination should be made at “minute interval”.

また条件入力欄49は、発注部品をインスタンス化して新規注文を発するか否かの判定ルール(基準)を規定する項目であり、図においては「ボリュームカーブ比率を参照し、現時点までの約定数量が予定よりも遅れている場合には新規注文を発すべき」ことを指定する条件式が独自の文法で記述されている。   In addition, the condition input field 49 is an item that defines a determination rule (standard) for whether or not to place a new order by instantiating a part to be ordered. In the figure, referring to the volume curve ratio, A conditional expression that specifies that a new order should be issued if it is behind schedule is described in a unique grammar.

内容入力欄50は、発注部品のニモニック入力欄50(a)、割当数量入力欄50(b)、丸め方法選択欄50(c)から成り立っている。トレーダは、発注部品のニモニック入力欄50(a)に発注処理を担うべき発注部品の任意のニモニックを入力する。つぎにトレーダは、割当数量入力欄50(b)に数量算出のルールを入力する。具体的には、「式設定」のボタンをクリックして入力ウィンドウを開き、例えば「ボリュームカーブを参照して現時点における予定数量を算出し、この予定数量から現時点までの約定数量を減じた差を割当数量とする」ことを規定する計算式を、独自の文法で記述する。最後にトレーダは、丸め方法選択欄50(c)に割当数量に端数が生じた場合の丸め方法(四捨五入や切り捨て等)を選択入力する。   The content input column 50 includes a mnemonic input column 50 (a) for ordering parts, an assigned quantity input column 50 (b), and a rounding method selection column 50 (c). The trader inputs an arbitrary mnemonic of the ordered part to be responsible for the ordering process in the mnemonic input field 50 (a) of the ordered part. Next, the trader inputs a quantity calculation rule in the assigned quantity input field 50 (b). Specifically, click the “Formula setting” button to open the input window. For example, refer to “Volume curve to calculate the current planned quantity and subtract the constant amount from the planned quantity to the current time. Write a calculation formula that prescribes “to be assigned quantity” in its own grammar. Finally, the trader selects and inputs a rounding method (rounding off, rounding down, etc.) in the rounding method selection field 50 (c) when a fraction occurs in the allocated quantity.

図20は、注文分割部品に係る設定項目をまとめたものである。これら動作モードの生成、各動作モードにおけるタイミングの指定、条件の設定、内容の設定(発注部品のニモニックの入力、割当数量の計算式の入力、丸め方法の選択)を完了したトレーダは、メニューバーの「ファイル(F)→保存(S)」を順にクリックすることにより、設定の登録を求める。これを受けた設定登録部12は、注文分割部品の共通機能について記述された雛形のプログラムコードに対して、トレーダが選択入力した設定事項に対応したコードを付加して固有の注文分割部品を自動生成し、「5分スライス」のプログラム部品名に関連付けてアルゴリズムDB14に格納する。   FIG. 20 summarizes the setting items related to the order split parts. For the traders who have completed the generation of these operation modes, specification of timing in each operation mode, setting of conditions, setting of contents (input of mnemonic for ordering parts, input of calculation formula of assigned quantity, selection of rounding method) Click “File (F) → Save (S)” in order to register settings. In response to this, the setting registration unit 12 automatically adds a code corresponding to the setting item selected and input by the trader to the program code of the template describing the common functions of the order split parts, and automatically assigns the specific order split parts. It is generated and stored in the algorithm DB 14 in association with the program part name of “5-minute slice”.

つぎにトレーダは、発注部品の定義に移る。すなわち、図21に示すように、アルゴリズム設定画面30の左側ペイン31において発注部品36の枝を選択した状態で右クリックを行い、展開される右クリックメニュー中から「発注部品の追加」を選択し、発注部品名をタイプ入力する。この結果、発注部品36の配下に新しい発注部品名が追加される。ここでは、「5分後譲歩」が新たに追加されたものとする。   Next, the trader moves to the definition of the ordered part. That is, as shown in FIG. 21, right-clicking is performed with the branch of the ordering part 36 selected in the left pane 31 of the algorithm setting screen 30, and “Add ordering part” is selected from the expanded right-click menu. , Type in the order part name. As a result, a new order part name is added under the order part 36. Here, “concession after 5 minutes” is newly added.

この発注部品に関しても、トレーダの価格戦略をより柔軟に具現化するために、1または複数の動作モードを設定しておくことができる。具体的には、アルゴリズム設定画面30の左側ペイン31において「5分後譲歩」の枝を選択した状態で右クリックを行い、展開される右クリックメニュー中から「動作モードの追加」を選択し、動作モード名をタイプ入力する。この結果、「5分後譲歩」の配下に新しい動作モードが追加される。図においては、「新規発注」、「PEG動作」、「5分後に譲歩」の3つの動作モードが設けられている。
この動作モードの数に制限はないが、少なくとも「新規発注」に相当する動作モードは設けられる必要がある。
With respect to the ordered parts, one or a plurality of operation modes can be set in order to more flexibly implement the price strategy of the trader. Specifically, in the left pane 31 of the algorithm setting screen 30, right-click with the branch of “Concession after 5 minutes” selected, select “Add operation mode” from the expanded right-click menu, Type in the operating mode name. As a result, a new operation mode is added under “Concession after 5 minutes”. In the figure, three operation modes of “new order”, “PEG operation”, and “concession after 5 minutes” are provided.
The number of operation modes is not limited, but at least an operation mode corresponding to “new order” needs to be provided.

つぎにトレーダは、追加した動作モードを選択した状態で、右側ペイン37に表示されたタイミング選択入力欄52、条件入力欄53、アクション入力欄54に対し、具体的な設定値を選択入力する。
図においては、「PEG動作」が選択されており、そのタイミングとして「時価情報」が選択入力されている。この「タイミング」とは、当該動作モードが発動されるべき時間的条件を意味しており、「時価情報」の値は「時価が変動した場合」を意味している。
Next, with the selected operation mode selected, the trader selects and inputs specific set values to the timing selection input field 52, the condition input field 53, and the action input field 54 displayed in the right pane 37.
In the figure, “PEG operation” is selected, and “market price information” is selected and input as the timing. This “timing” means a time condition for the operation mode to be activated, and the value of “market price information” means “when the market price changes”.

また、条件入力欄53は価格を変更するか否かの判定ルールを規定する項目であり、図においては「現在の最良気配と自己の指値を比較し、両者に乖離が生じていた場合には訂正注文を発すべき」旨の条件式が独自の文法で記述されている。
アクション入力欄54は、注文の種別(新規注文/訂正注文)及びその価格を算出するためのルールを規定する項目であり、図においては「自己の注文価格を市場の最良気配価格(ただし執行制限値段内)に訂正する」旨が設定されている。
In addition, the condition input field 53 is an item that prescribes a rule for determining whether or not to change the price. In the figure, “If the current best price is compared with your limit and there is a difference between the two, The conditional expression that “a correction order should be issued” is described in a unique grammar.
The action input field 54 is an item that defines the type of order (new order / correction order) and the rules for calculating the price. In the figure, “Your own order price is the best quote price in the market (however, execution restrictions) "Correction within price)" is set.

トレーダは、「新規発注」、「PEG動作」、「5分後に譲歩」のそれぞれの動作モードについて、上記の「タイミング」、「条件」、「アクション」を設定する。
図22は、「5分後譲歩」の発注部品に係る設定内容を模式的に示すものであり、 「新規発注」については、タイミングとして「生成直後」が、アクションとして「新規発注/最良気配価格」が設定されている。新規発注の場合には、単純に新規注文情報を取引所のコンピュータに送信するだけで済むため、条件についてはブランクとなされている。
The trader sets the above “timing”, “condition”, and “action” for each operation mode of “new order”, “PEG operation”, and “concession after 5 minutes”.
FIG. 22 schematically shows the setting contents related to the ordered part of “5 minutes concession”. For “new order”, “immediately after generation” is used as the timing, and “new order / best quotation price” is used as the action. "Is set. In the case of a new order, since it is sufficient to simply send new order information to the computer of the exchange, the condition is blank.

また、「5分後に譲歩」については、タイミングとして「生成後5分経過時」が、アクションとして「価格訂正/逆最良気配価格」が設定されている。「5分後に譲歩」の場合にも、時間的条件(タイミング)だけで発注が決まり、その要否を判定する必要がないため、条件についてはブランクとなされている。   For “concession after 5 minutes”, “when 5 minutes have passed after generation” is set as the timing, and “price correction / reverse best quotation price” is set as the action. Even in the case of “concession after 5 minutes”, the order is determined only by the time condition (timing), and it is not necessary to determine whether or not it is necessary, so the condition is blank.

図23は、発注部品に係る設定項目をまとめたものである。これら動作モードの生成、各動作モードにおけるタイミングの指定、条件の設定、アクションの設定を完了したトレーダは、メニューバーの「ファイル(F)→保存(S)」を順にクリックすることにより、設定の登録を求める。これを受けた設定登録部12は、発注部品の共通機能について記述された雛形のプログラムコードに対して、トレーダが選択入力した設定事項に対応したコードを付加して固有の発注部品を自動生成し、「5分後譲歩」のプログラム部品名に関連付けてアルゴリズムDB14に格納する。   FIG. 23 summarizes the setting items related to the ordered parts. For the traders who have created these operation modes, specified the timings in each operation mode, set the conditions, and set the actions, click `` File (F) → Save (S) '' in the menu bar in order to set the settings. Ask for registration. In response to this, the setting registration unit 12 automatically generates a unique ordering part by adding a code corresponding to the setting item selected and input by the trader to the program code of the template describing the common functions of the ordering part. , Stored in the algorithm DB 14 in association with the program part name “concession after 5 minutes”.

図24は、このシステム10におけるアルゴリズムの構成を示すものであり、各アルゴリズムはボリュームカーブ選択部品と、ボリュームカーブ変更部品と、注文分割部品を備えており、注文分割部品は動作モードに応じた複数の発注部品を備えている。ただし、注文分割部品について、ボリュームカーブを参照することなく個別の発注数量を算出するルールが規定されている場合には、ボリュームカーブ選択部品及びボリュームカーブ変更部品の指定は不要となる。また、注文分割部品が単一の動作モードのみを備えている場合には、発注部品は一つとなる。したがって、アルゴリズムの最小構成としては、一つの注文分割部品と一つの発注部品の組合せということになる。   FIG. 24 shows a configuration of an algorithm in the system 10. Each algorithm includes a volume curve selection part, a volume curve change part, and an order division part. The order division part includes a plurality of order division parts according to the operation mode. With ordering parts. However, when the rule for calculating the individual order quantity without referring to the volume curve is specified for the order split parts, it is not necessary to specify the volume curve selection part and the volume curve change part. Further, when the order division part has only a single operation mode, there is one ordering part. Therefore, the minimum configuration of the algorithm is a combination of one order division part and one order part.

先に図12に基づいて説明したように、トレーダはアルゴリズム構成の設定画面において、ボリュームカーブ選択部品、ボリュームカーブ変更部品、注文分割部品を選択入力すると共に、発注部品のニモニックと発注部品名との関連付けを行う。   As described above with reference to FIG. 12, the trader selects and inputs the volume curve selection part, the volume curve change part, and the order division part on the algorithm configuration setting screen, and also the mnemonic of the order part and the order part name. Make an association.

つぎに、この自動執行システム10の利用方法について説明する。
まずトレーダは、クライアント端末23から執行制御部16にアクセスし、図25に示すように、ディスプレイに自動執行リクエスト画面60を表示させた後、自動執行の細目を設定する。
すなわち、売買種別選択欄61に「買い/売り」の種別を選択入力すると共に、銘柄コード入力欄62に銘柄コードを入力し、市場選択欄63において任意の証券取引所を選択入力し、数量入力欄64に注文総数を入力し、約定価格に上限または下限がある場合には執行制限値段入力欄65に具体的な価格を入力する。つぎに、アルゴリズム選択欄66において▼ボタンをクリックすると、当該トレーダが設定したアルゴリズム名が列挙されたプルダウンメニューが表示されるため、利用を希望するアルゴリズム名を選択する。
Next, a method for using the automatic execution system 10 will be described.
First, the trader accesses the execution control unit 16 from the client terminal 23, displays the automatic execution request screen 60 on the display as shown in FIG. 25, and then sets details of automatic execution.
In other words, the type of “buy / sell” is selected and entered in the trade type selection field 61, the stock code is entered in the stock code entry field 62, and an arbitrary stock exchange is selected and entered in the market selection field 63, and the quantity is entered. The total number of orders is entered in the column 64, and if there is an upper limit or lower limit in the contract price, a specific price is entered in the execution limit price input column 65. Next, when the ▼ button is clicked in the algorithm selection field 66, a pull-down menu listing the algorithm names set by the trader is displayed, and the algorithm name desired to be used is selected.

ここで、ユーザが選択したアルゴリズムの構成中に、パラメータの補充が必要なルールが含まれている場合、パラメータ入力欄67に項目名及び型が表示されるため、トレーダは値入力欄67aに具体的なパラメータを入力する。
例えば、注文分割部品の設定に際し、割当数量入力欄50bに「市場出来高のX%分の数量を注文数量とする」という算出ルールが設定されていた場合、パラメータ入力欄67において、項目名に「関与率」が、型に「小数」が表示される。これに対しトレーダは、値として「0.3」等の具体的な数値を入力する。
Here, if a rule that requires parameter replenishment is included in the configuration of the algorithm selected by the user, the item name and type are displayed in the parameter input field 67. Enter typical parameters.
For example, when the order split part is set, when the calculation rule of “the quantity corresponding to X% of the market volume is set as the order quantity” is set in the allocated quantity input field 50b, the item name “ “Participation rate” is displayed as “Decimal” in the type. On the other hand, the trader inputs a specific numerical value such as “0.3” as a value.

以上の設定を終了したユーザは、実行ボタン68をクリックし、自動執行システム10の執行制御部16に対して自動執行を指令する。   The user who has completed the above settings clicks the execute button 68 and instructs the execution control unit 16 of the automatic execution system 10 to execute automatic execution.

つぎに、図26のフローチャートに従い、執行制御部16の動作について説明する。まず、クライアント端末23から売買種別、銘柄コード、市場、数量、アルゴリズム等の指定を伴う自動執行リクエストを受信した執行制御部16は(S10)、アルゴリズムDB14を参照し、指定されたアルゴリズム(VWAP戦略)に係るボリュームカーブ選択部品、ボリュームカーブ変更部品、注文分割部品、発注部品を特定する(S12)。   Next, the operation of the execution control unit 16 will be described with reference to the flowchart of FIG. First, the execution control unit 16 that has received an automatic execution request with designation of a trade type, a brand code, a market, a quantity, an algorithm, etc. from the client terminal 23 (S10) refers to the algorithm DB 14 and designates the designated algorithm (VWAP strategy). The volume curve selection part, the volume curve change part, the order division part, and the order part according to () are specified (S12).

つぎに執行制御部16は、対応のボリュームカーブ選択部品、ボリュームカーブ変更部品及び注文分割部品をインスタンス化し、ボリュームカーブ選択部21、ボリュームカーブ変更部22及び注文分割部18を生成する(S14)。
つぎに執行制御部16は、注文分割部18に対して銘柄コード、売買種別、数量、発注部品名を渡す(S16)。
Next, the execution control unit 16 instantiates the corresponding volume curve selection part, volume curve change part, and order division part, and generates the volume curve selection part 21, volume curve change part 22, and order division part 18 (S14).
Next, the execution control unit 16 passes the brand code, trade type, quantity, and order part name to the order splitting unit 18 (S16).

ボリュームカーブ選択部21は、現在時刻と所定の領域に格納されたカレンダー情報及びSQ日情報とを比較し、本日がSQ日か通常日かを判断し、この結果に基づいて適用すべきボリュームカーブ名を特定し、当該ボリュームカーブ名を執行制御部16に渡す。
執行制御部16は、注文分割部18から現時点におけるボリュームカーブ比率(予定執行率)について問合わせがある度に、アルゴリズムDB14内に格納された対応のボリュームカーブデータを参照して現時点におけるボリュームカーブ比率を算出し、注文分割部18に返す。
The volume curve selection unit 21 compares the current time with the calendar information and SQ day information stored in a predetermined area, determines whether the current day is an SQ day or a normal day, and a volume curve to be applied based on the result. The name is specified, and the volume curve name is passed to the execution control unit 16.
The execution control unit 16 refers to the corresponding volume curve data stored in the algorithm DB 14 whenever there is an inquiry from the order splitting unit 18 about the current volume curve ratio (scheduled execution rate). Is calculated and returned to the order splitting unit 18.

執行制御部16はこの後も、注文分割部18や発注部20、ボリュームカーブ変更部22に対し、取引所のコンピュータ24から送信された市況データや約定データ、トレーダによる注文情報を随時提供する。   Thereafter, the execution control unit 16 provides the order division unit 18, the ordering unit 20, and the volume curve changing unit 22 with market data and contract data transmitted from the computer 24 of the exchange as well as order information by the trader as needed.

ボリュームカーブ変更部22は、執行制御部16から提供される市況データやトレーダによる注文情報を常時監視し、所定の変更条件に合致した場合には、予め設定されたボリュームカーブに対する必要な変更指令(例えば、ボリュームカーブを5分間早めるべきこと)を執行制御部16に渡す。
これ以降、執行制御部16は注文分割部18からボリュームカーブ比率についての問合わせがある場合には、上記の変更を加えたボリュームカーブ比率(例えば、現時点から5分後におけるボリュームカーブ比率)を注文分割部18に提供する。
The volume curve changing unit 22 constantly monitors the market data provided from the execution control unit 16 and the order information by the trader, and when a predetermined change condition is met, a necessary change command for a preset volume curve ( For example, the volume control curve should be advanced by 5 minutes).
Thereafter, when there is an inquiry about the volume curve ratio from the order splitting section 18, the execution control section 16 orders the volume curve ratio with the above change (for example, the volume curve ratio after 5 minutes from the current time). Provided to the division unit 18.

つぎに、図27のフローチャートに従い、注文分割部18の動作について説明する。ここでは、「5分スライス」の注文分割部品に基づいて注文分割部18が生成されたものとする。まず注文分割部18は、取引開始時刻が到来すると同時に、執行制御部16によって指定された発注部品、すなわち「5分後譲歩」をインスタンス化し、最初の発注部20を生成する(S20)。   Next, the operation of the order division unit 18 will be described with reference to the flowchart of FIG. Here, it is assumed that the order division unit 18 is generated based on the order division part of “5-minute slice”. First, the order dividing unit 18 instantiates the ordering part designated by the execution control unit 16, that is, “concession after 5 minutes” at the same time when the transaction start time arrives, and generates the first ordering unit 20 (S20).

この際、注文分割部18は執行制御部16に対して現時点におけるボリュームカーブ比率を問い合わせ、執行制御部16から渡されたボリュームカーブ比率に注文総数を乗ずることにより、最初の発注部20に渡す注文数量を算出する(S22)。
つぎに注文分割部18は、銘柄コード、売買種別及び今回の注文数量を発注部20に渡す(S24)。この後、発注部20から執行制御部16経由で証券取引所のコンピュータ24に対して対応の注文情報が送信されることとなるが、詳細は後述する。
At this time, the order division unit 18 inquires the execution control unit 16 about the current volume curve ratio, and by multiplying the volume curve ratio passed from the execution control unit 16 by the total number of orders, the order passed to the first ordering unit 20 The quantity is calculated (S22).
Next, the order division unit 18 passes the brand code, the trade type, and the current order quantity to the ordering unit 20 (S24). Thereafter, corresponding order information is transmitted from the ordering unit 20 to the computer 24 of the stock exchange via the execution control unit 16, which will be described in detail later.

最初の発注部20を生成してから5分経過後(S26)、注文分割部18は執行制御部16に対して現時点におけるボリュームカーブ比率を再度問い合わせ、執行制御部16から渡されたボリュームカーブ比率に注文総数を乗ずることにより、予定執行数量を算出する(S28)。
つぎに注文分割部18は、現時点までの執行完了数量(約定数量の累積値)と、上記の予定執行数量とを比較し、執行完了数量が予定執行数量を下回っている場合には(S30)、「5分後譲歩」の発注部品をインスタンス化し、つぎの発注部20を生成する(S32)。
そして、この発注部20に対し、銘柄コード、売買種別及び予定執行数量と執行完了数量との差分に該当する注文数量を渡す(S34)。
After 5 minutes have passed since the creation of the first ordering unit 20 (S26), the order splitting unit 18 inquires the execution control unit 16 again about the current volume curve ratio, and the volume curve ratio passed from the execution control unit 16 Is multiplied by the total number of orders to calculate the planned execution quantity (S28).
Next, the order division unit 18 compares the execution completion quantity (cumulative value of the approximate constant quantity) up to the present time with the above-mentioned planned execution quantity, and if the execution completion quantity is below the planned execution quantity (S30) Then, the ordering part of “concession after 5 minutes” is instantiated to generate the next ordering unit 20 (S32).
Then, the order quantity corresponding to the difference between the brand code, the trade type and the planned execution quantity and the execution completion quantity is passed to the ordering section 20 (S34).

これに対し、S30において執行完了数量が予定執行数量以上であると判定された場合、注文分割部18は新たな発注部20の生成を今回は見送り、つぎのタイミングが到来するまで待機する。
この自動執行システム10においては、株式売買の自動執行を執行制御部16に指令した後も、トレーダは注文総数の範囲内で自らの判断に基づき個別の注文情報を執行制御部16に送信することができ、この注文情報は執行制御部16から取引所のコンピュータ24に送信される。また、このトレーダの判断に基づく個別注文に対して約定が成立した場合には、取引所のコンピュータ24から執行制御部16に対して約定報告データが送信される。このため、執行完了数量が予定執行数量を上回る事態が生じ得る。
On the other hand, if it is determined in S30 that the execution completion quantity is greater than or equal to the scheduled execution quantity, the order division unit 18 defers generation of a new ordering unit 20 this time and waits until the next timing comes.
In this automatic execution system 10, even after directing the execution control of stock trading to the execution control unit 16, the trader shall send individual order information to the execution control unit 16 based on its own judgment within the range of the total number of orders. The order information is transmitted from the execution control unit 16 to the computer 24 of the exchange. In addition, when a contract is established for an individual order based on the judgment of the trader, execution report data is transmitted from the computer 24 of the exchange to the execution control unit 16. For this reason, a situation may occur where the execution completion quantity exceeds the scheduled execution quantity.

注文分割部18は、設定された取引終了時刻が到来するまで、上記S28〜S34の処理を5分毎に繰り返し(S26、S36)、複数の発注部20を生成し続ける。ただし、取引終了時刻到来前に累積発注数が注文総数に達した場合には、その時点で処理を停止することとなる。   The order dividing unit 18 repeats the processes of S28 to S34 every 5 minutes until the set transaction end time arrives (S26, S36), and continues to generate a plurality of ordering units 20. However, if the cumulative number of orders reaches the total number of orders before the transaction end time arrives, the processing is stopped at that point.

つぎに、図28のフローチャートに従い、発注部20の動作について説明する。ここでは、「5分後譲歩」の発注部品に基づいて発注部20が生成されたものとする。
まず、生成直後の発注部20は、「新規発注」モードの設定に従い、以下の内容を備えた注文情報を生成し、執行制御部16経由でトレーダが指定した取引所のコンピュータ24に送信する(S40)。
銘柄コード:4307
売買種別:買い
数量:全割り当て数量
価格:現時点での最良気配価格(指値)
現時点での最良気配価格は、執行制御部16から送信された市況データに基づいて算出する。
Next, the operation of the ordering unit 20 will be described with reference to the flowchart of FIG. Here, it is assumed that the ordering unit 20 is generated based on the ordering part of “concession after 5 minutes”.
First, the ordering unit 20 immediately after generation generates order information having the following contents according to the setting of the “new ordering” mode, and transmits the order information to the computer 24 of the exchange designated by the trader via the execution control unit 16 ( S40).
Stock Code: 4307
Type of Sale: Buy Quantity: All Allocated Quantity Price: Current Best Price (Limit)
The current best price is calculated based on the market data transmitted from the execution control unit 16.

新規に注文情報を発した後、発注部20は「PEG動作」モードに移行する。すなわち、発注部20は執行制御部16から送信される市況データを常時監視し、市場における時価に変動が生じると(S44)、現時点における最良気配価格と自己の指値との乖離を判定する(S46)。ここで、最良気配価格と自己の指値との間に乖離が存在する場合、発注部20は指値を現在の最良気配価格に訂正するための訂正注文情報を生成し、執行制御部16経由で取引所のコンピュータ24に送信する(S48)。
発注部20は、この最良気配価格に追従するための処理を、自己の注文の全数量について約定が成立するまで(S42)、あるいは新規注文情報を送信してから5分を経過するまで継続する。
After newly issuing the order information, the ordering unit 20 shifts to the “PEG operation” mode. That is, the ordering unit 20 constantly monitors the market data transmitted from the execution control unit 16, and when the market price fluctuates (S44), it determines the divergence between the current best price and its limit (S46). ). Here, if there is a divergence between the best quote price and its own limit price, the ordering unit 20 generates corrected order information for correcting the limit price to the current best quote price, and the transaction is made via the execution control unit 16. The data is transmitted to the computer 24 (S48).
The ordering unit 20 continues the process for following the best quotation price until a contract is established for the total quantity of its own order (S42), or until 5 minutes have passed since the new order information was transmitted. .

約定が成立しないまま5分間が経過すると(S50)、発注部20は「5分後に譲歩」モードに移行し、注文価格を「逆最良気配価格」に変更する価格訂正注文情報を生成し、執行制御部16経由で取引所のコンピュータ24に送信する(S52)。
「逆最良気配価格」とは、買い注文を発している場合には売り側の最良気配価格を、売り注文を発している場合には買い側の最良気配価格を意味し、指値をこの価格に変更することにより、高い確度で約定を成立させることが可能となる。この逆最良気配価格は、執行制御部16から送信される市況データに基づいて算出される。
When 5 minutes have passed without fulfilling the contract (S50), the ordering unit 20 shifts to the “concession after 5 minutes” mode, and generates and executes price correction order information for changing the order price to “reverse best price”. The data is transmitted to the exchange computer 24 via the control unit 16 (S52).
“Reverse best quote price” means the best quote price on the selling side when placing a buy order, and the best quote price on the buying side if placing a sell order. By changing, it becomes possible to establish a contract with high accuracy. This reverse best price is calculated based on the market data transmitted from the execution control unit 16.

この「5分後譲歩」の発注部品に基づいて生成された発注部20の場合、上記のように、発注後5分までは市場における最良気配価格を追従することにより、比較的強気な注文を維持するものの、5分経過後は逆最良気配価格に譲歩することにより、より確実な約定成立を目指す機能を発揮する。   In the case of the ordering part 20 generated based on the ordered part of “concession after 5 minutes”, as described above, a relatively bullish order can be placed by following the best quotation price in the market until 5 minutes after the ordering. Although maintained, after 5 minutes, by concession to the reverse best quotation price, the function that aims for more reliable execution of the contract will be demonstrated.

上記のように、この証券取引自動執行システム10にあっては、証券取引の自動執行処理が、注文総数を複数の個別注文数量に分割する注文分割部18と、分割された各注文数量分の注文情報を証券取引所のコンピュータ24に送信する複数の発注部20との協動によって達成され、注文分割部と各発注部はトレーダが予め独自に設定しておいた注文分割部品及び発注部品をインスタンス化することによって実現される仕組みを備えている。
このためトレーダは、予め定義しておいた注文分割部品と発注部品を適宜組み合わせることにより、複雑な動作を行うアルゴリズムを極めて容易に設定することが可能となる。また、アルゴリズムの動作パターンを変更する場合にも、注文分割部品と発注部品の組合せを変更することで簡単に実現できる。
As described above, in the securities transaction automatic execution system 10, the automatic transaction processing of the securities transaction includes an order dividing unit 18 that divides the total number of orders into a plurality of individual order quantities, and an amount for each divided order quantity. This is achieved through cooperation with multiple ordering units 20 that transmit order information to the stock exchange computer 24. The order splitting unit and each ordering unit use order division parts and ordering parts that have been set in advance by the trader. It has a mechanism realized by instantiation.
For this reason, the trader can set an algorithm for performing a complicated operation very easily by appropriately combining the order division parts and the order parts that are defined in advance. Also, when changing the operation pattern of the algorithm, it can be easily realized by changing the combination of the order split parts and the order parts.

また第三者にとっても、アルゴリズムが注文分割部品と発注部品との組合せから構成されているため、注文分割部品と発注部品の設定内容を段階的に辿っていくことでアルゴリズム全体の動作を把握しやすくなり、その再利用性や保守性を向上させることが可能となる。   For third parties, the algorithm consists of a combination of order split parts and order parts, so the operation of the entire algorithm can be understood by stepping through the settings of the order split parts and order parts. It becomes easy, and it becomes possible to improve the reusability and maintainability.

上記したアルゴリズムの設定は一例であり、トレーダは異なる設定パターンを備えた注文分割部品や発注部品、ボリュームカーブ選択部品、ボリュームカーブ変更部品をアルゴリズムDB14内に予め多数登録しておくと共に、これらを自由に組み合わせた自動執行用アルゴリズムをアルゴリズムDB14内に予め多数登録しておくことにより、銘柄の特性や市場の情勢に最適なアルゴリズムを即座に利用可能となる。   The algorithm setting described above is an example, and the trader registers a large number of order division parts, order parts, volume curve selection parts, and volume curve change parts with different setting patterns in the algorithm DB 14 in advance, and these can be freely set. By registering a large number of algorithms for automatic execution combined with the above in the algorithm DB 14 in advance, it becomes possible to immediately use an algorithm optimal for the characteristics of the brand and the market situation.

上記においては、アルゴリズムDB14に全ての設定情報が格納される例を示したが、各設定情報を複数の記憶手段に格納し、必要なデータ項目同士を関連付けておくように構成してもよい。   In the above, an example in which all the setting information is stored in the algorithm DB 14 is shown, but each setting information may be stored in a plurality of storage units, and necessary data items may be associated with each other.

上記のように、取引時間の進行に従って複数の発注部20が生成され、執行制御部16を介して証券取引所のコンピュータ24との間で注文情報や約定情報など大量のデータが高速でやり取りされることとなる。
図29は、執行制御部16の内部構造を示す概念図であり、複数の受付部74と、複数のGW(ゲートウェイ)部76を備えている。
As described above, a plurality of ordering units 20 are generated as the transaction time progresses, and a large amount of data such as order information and execution information is exchanged at high speed with the stock exchange computer 24 via the execution control unit 16. The Rukoto.
FIG. 29 is a conceptual diagram showing the internal structure of the execution control unit 16, and includes a plurality of reception units 74 and a plurality of GW (gateway) units 76.

各受付部74は独立したプロセスよりなり、発注部20から送信された注文情報を受け付けてGW部76に渡す機能や、証券取引所のコンピュータ24から返された注文受付情報をGW部76から受け取り、発注部20に渡す機能等を備えている。
また、各GW部76も独立したプロセスよりなり、受付部74から渡された注文情報をフォーマット変換して証券取引所のコンピュータ24に送信する機能や、同コンピュータ24から返された注文確認情報をフォーマット変換して受付部74に渡す等を備えている。
Each receiving unit 74 is an independent process, and receives from the GW unit 76 the function of receiving the order information transmitted from the ordering unit 20 and passing it to the GW unit 76, and the order receiving information returned from the computer 24 of the stock exchange. And a function of passing to the ordering unit 20.
Each GW unit 76 is also an independent process. The order information received from the receiving unit 74 is converted in format and sent to the stock exchange computer 24. The order confirmation information returned from the computer 24 For example, the format is converted and passed to the reception unit 74.

このように、執行制御部16内には多数の受付部74やGW部76が起動しており、各プロセス相互間及び複数の発注部20との間で各種データが高速でやり取りされているため、この発明に係る負荷分散処理システム80を各部に適用することで効率化を図ることができる。   As described above, a large number of receiving units 74 and GW units 76 are activated in the execution control unit 16, and various data are exchanged at high speed between processes and with a plurality of ordering units 20. The efficiency can be improved by applying the load distribution processing system 80 according to the present invention to each section.

図30は、発注部20と受付部74との間に負荷分散処理システム80を適用した例を示す模式図であり、各発注部20(発注プロセス=サービス利用側プロセス)にはサービス利用側API84がぞれぞれ設けられており、各受付部74(受付プロセス=サービス提供側プロセス)にはサービス提供側API87がそれぞれ設けられている。
サービス利用側API84及びサービス提供側API87は、それぞれミドルウェアによって提供される機能である。また、このミドルウェアの常駐プログラムである管理デーモン83が起動されている。
FIG. 30 is a schematic diagram showing an example in which the load distribution processing system 80 is applied between the ordering unit 20 and the receiving unit 74. Each ordering unit 20 (ordering process = service use side process) has a service use side API 84. Each receiving unit 74 (receiving process = service providing side process) is provided with a service providing side API 87.
The service using side API 84 and the service providing side API 87 are functions provided by middleware. In addition, a management daemon 83 that is a resident program of the middleware is activated.

図示は省略したが、サービス利用側API84は、上記と同様の振分待ち要求記憶領域85と、処理要求キュー情報記憶領域86を備えている。また、同じく図示は省略したが、サービス提供側API87はサービス提供側キュー情報記憶領域88を、管理デーモン83は管理デーモンキュー情報記憶領域89をそれぞれ備えている。   Although not shown in the figure, the service use side API 84 includes a distribution wait request storage area 85 and a processing request queue information storage area 86 similar to those described above. Although not shown, the service providing side API 87 includes a service providing side queue information storage area 88, and the management daemon 83 includes a management daemon queue information storage area 89.

そして、発注部20によって生成された注文情報(処理要求)は、サービス利用側API84に渡される。
これを受けたサービス利用側API84は、処理要求キュー情報を参照して、最も負荷(自要求件数+他要求件数)の小さい受付部74を特定し、この受付部74に係る「自要求件数+他要求件数」の値が所定の閾値以下の場合には、当該受付部74のレコードの「自要求件数」に「1」を加算した後、当該受付部74のサービス提供側API87に対して注文情報を送信する。
この最も負荷の小さい受付部74の「自要求件数+他要求件数」が閾値を超えている場合、注文情報は振分待ち要求記憶領域85に一旦格納され、「自要求件数+他要求件数」が閾値以下となった時点で当該受付部74のサービス提供側API87に送信される。
Then, the order information (processing request) generated by the ordering unit 20 is passed to the service use side API 84.
Receiving this, the service use side API 84 refers to the processing request queue information, identifies the reception unit 74 with the smallest load (number of own requests + number of other requests), and determines the “number of own requests + If the value of “number of other requests” is equal to or less than a predetermined threshold, after adding “1” to “number of requests” of the record of the receiving unit 74, an order is made to the service providing side API 87 of the receiving unit 74 Send information.
When “the number of own requests + the number of other requests” of the receiving unit 74 having the smallest load exceeds the threshold value, the order information is temporarily stored in the allocation waiting request storage area 85, and “the number of own requests + the number of other requests”. Is transmitted to the service providing side API 87 of the receiving unit 74 at the time when becomes below the threshold.

この注文情報を受けたサービス提供側API87は、サービス提供側キュー情報記憶領域88を検索し、当該発注部20のレコードを抽出する。つぎにサービス提供側API87は、抽出した発注部20のレコードの処理要求受信件数に「1」を加算し、当該注文情報とレコードを関連付けた後、受付部74に当該注文情報を渡す。
この注文情報は、受付部74からGW部76に渡され、GW部76を介して証券取引所のコンピュータ24に送信される。
Upon receiving this order information, the service providing side API 87 searches the service providing side queue information storage area 88 and extracts the record of the ordering unit 20. Next, the service providing side API 87 adds “1” to the processing request reception number of records of the extracted ordering unit 20, associates the order information with the record, and passes the order information to the receiving unit 74.
This order information is transferred from the receiving unit 74 to the GW unit 76 and transmitted to the computer 24 of the stock exchange via the GW unit 76.

証券取引所のコンピュータ24から、注文を受け付けたことを示す注文確認情報が送信されると、GW部76経由でこの注文確認情報が受付部74に到達し、受付部74はこの注文確認情報(処理結果)をサービス提供側API87に渡す。
これを受け取ったサービス提供側API87は、当該発注部20のレコードの処理要求返信件数に「1」を加算した後、サービス提供側キュー情報のサマリ情報を生成し、注文確認情報と共にサービス利用側API84に送信する。
When order confirmation information indicating that an order has been received is transmitted from the computer 24 of the stock exchange, the order confirmation information reaches the reception unit 74 via the GW unit 76, and the reception unit 74 receives the order confirmation information ( Process result) to the service providing side API 87.
Upon receiving this, the service providing side API 87 adds “1” to the number of processing request replies for the record of the ordering unit 20, generates summary information of the service providing side queue information, and together with the order confirmation information, the service using side API 84. Send to.

これを受けたサービス利用側API84は、受付部74の「IPアドレス+プロセスID」をキーにして、処理要求キュー情報記憶領域86を検索し、当該受付部74のレコードを抽出し、その自要求件数から「1」を減算した後、発注部20に注文確認情報を渡す。
つぎにサービス利用側API84は、サービス提供側API87から送信されたサマリ情報に基づいて、当該受付部74のレコードにおける「他要求件数」を更新する。
Receiving this, the service use side API 84 searches the processing request queue information storage area 86 using the “IP address + process ID” of the reception unit 74 as a key, extracts the record of the reception unit 74, and requests its own request. After subtracting “1” from the number of cases, the order confirmation information is passed to the ordering unit 20.
Next, the service using side API 84 updates the “number of other requests” in the record of the receiving unit 74 based on the summary information transmitted from the service providing side API 87.

予め設定されたタイミングが到来すると、サービス提供側API87は、各発注部20に係るサービス提供側キュー情報を、管理デーモン83に対して送信する。   When the preset timing arrives, the service providing side API 87 transmits the service providing side queue information related to each ordering unit 20 to the management daemon 83.

これを受けた管理デーモン83は、管理デーモンキュー情報記憶領域89を検索し、当該受付部74に係る各発注部20のレコードを抽出する。
つぎに管理デーモン83は、当該受付部74から送信されたサービス提供側キュー情報によって管理デーモンキュー情報の処理要求受信件数及び処理要求返信件数を上書き更新する。
Receiving this, the management daemon 83 searches the management daemon queue information storage area 89 and extracts the record of each ordering unit 20 related to the receiving unit 74.
Next, the management daemon 83 overwrites and updates the processing request reception number and the processing request reply number of the management daemon queue information with the service providing side queue information transmitted from the reception unit 74.

また、管理デーモン83は、予め設定されたタイミングが到来すると、管理デーモンキュー情報に基づいてクライアントキュー情報(受付部74のID+他要求件数)を発注部20毎に生成し、発注部20に対して送信する。
これを受けた各発注部20のサービス利用側API84は、処理要求キュー情報中の各受付部74に係る他要求件数を上書き更新する。
Also, when the preset timing arrives, the management daemon 83 generates client queue information (ID of the receiving unit 74 + the number of other requests) for each ordering unit 20 based on the management daemon queue information, To send.
Receiving this, the service use side API 84 of each ordering unit 20 overwrites and updates the number of other requests related to each receiving unit 74 in the processing request queue information.

以上の結果、各発注部20は、現時点で最も負荷の小さい受付部74に対して、注文情報を送信することが可能となる。   As a result, each ordering unit 20 can transmit order information to the receiving unit 74 with the smallest load at the present time.

図31は、受付部74とGW部76との間に負荷分散処理システム80を適用した例を示す模式図であり、各受付部74(受付プロセス=サービス利用側プロセス)にはサービス利用側API84がぞれぞれ設けられており、各GW部76(ゲートウェイプロセス=サービス提供側プロセス)にはサービス提供側API87がそれぞれ設けられている。すなわち、上記においてサービス提供側プロセスとして機能した受付部74が、この場面ではサービス利用側プロセスとして機能することとなる。
サービス利用側API84及びサービス提供側API87は、それぞれミドルウェアによって提供される機能である。また、このミドルウェアの常駐プログラムである管理デーモン83が起動されている。
FIG. 31 is a schematic diagram showing an example in which the load distribution processing system 80 is applied between the reception unit 74 and the GW unit 76. Each reception unit 74 (reception process = service use side process) has a service use side API 84. Each GW unit 76 (gateway process = service providing side process) is provided with a service providing side API 87. That is, the accepting unit 74 that functions as a service providing process in the above functions as a service using process in this situation.
The service using side API 84 and the service providing side API 87 are functions provided by middleware. In addition, a management daemon 83 that is a resident program of the middleware is activated.

図示は省略したが、サービス利用側API84は、上記と同様の振分待ち要求記憶領域85と、処理要求キュー情報記憶領域86を備えている。また、同じく図示は省略したが、サービス提供側API87はサービス提供側キュー情報記憶領域88を、管理デーモン83は管理デーモンキュー情報記憶領域89をそれぞれ備えている。   Although not shown in the figure, the service use side API 84 includes a distribution wait request storage area 85 and a processing request queue information storage area 86 similar to those described above. Although not shown, the service providing side API 87 includes a service providing side queue information storage area 88, and the management daemon 83 includes a management daemon queue information storage area 89.

そして、受付部74が発注部20から受け取った注文情報(処理要求)は、サービス利用側API84に渡される。
これを受けたサービス利用側API84は、処理要求キュー情報を参照して、最も負荷(自要求件数+他要求件数)の小さいGW部76を特定し、このGW部76に係る「自要求件数+他要求件数」の値が所定の閾値以下の場合には、当該GW部76のレコードの「自要求件数」に「1」を加算した後、当該GW部76のサービス提供側API87に対して注文情報を送信する。
この最も負荷の小さいGW部76の「自要求件数+他要求件数」が閾値を超えている場合、注文情報は振分待ち要求記憶領域85に一旦格納され、「自要求件数+他要求件数」が閾値以下となった時点で当該GW部76のサービス提供側API87に送信される。
Then, the order information (processing request) received by the receiving unit 74 from the ordering unit 20 is passed to the service use side API 84.
Receiving this, the service user side API 84 refers to the processing request queue information, identifies the GW unit 76 with the smallest load (number of self-requests + number of other requests), and determines the “number of self-requests + If the value of “number of other requests” is equal to or less than a predetermined threshold, “1” is added to “number of requests” of the record of the GW unit 76, and then an order is made to the service providing side API 87 of the GW unit 76 Send information.
If “the number of own requests + the number of other requests” of the GW unit 76 having the smallest load exceeds the threshold, the order information is temporarily stored in the allocation waiting request storage area 85, and “the number of own requests + the number of other requests”. Is transmitted to the service providing side API 87 of the GW unit 76 at the time when becomes below the threshold.

この注文情報を受けたサービス提供側API87は、サービス提供側キュー情報記憶領域88を検索し、当該受付部74のレコードを抽出する。つぎにサービス提供側API87は、抽出した受付部74のレコードの処理要求受信件数に「1」を加算し、当該注文情報とレコードを関連付けた後、GW部76に当該注文情報を渡す。
GW部76は、この注文情報を所定のフォーマットに変換した上で証券取引所のコンピュータ24に送信する。
Receiving this order information, the service providing side API 87 searches the service providing side queue information storage area 88 and extracts the record of the receiving unit 74. Next, the service providing side API 87 adds “1” to the number of processing request receptions of the record of the extracted receiving unit 74, associates the order information with the record, and passes the order information to the GW unit 76.
The GW unit 76 converts this order information into a predetermined format and transmits it to the stock exchange computer 24.

証券取引所のコンピュータ24から注文を受け付けたことを示す注文確認情報が送信されると、GW部76はこれを所定のフォーマットに変換した後、サービス提供側API87に渡す。
この注文確認情報(処理結果)を受け取ったサービス提供側API87は、受付部74のレコードの処理要求返信件数に「1」を加算した後、サービス提供側キュー情報のサマリ情報を生成し、注文確認情報と共にサービス利用側API84に送信する。
When order confirmation information indicating that an order has been received is transmitted from the computer 24 of the stock exchange, the GW unit 76 converts it into a predetermined format and then passes it to the service providing side API 87.
Upon receiving this order confirmation information (processing result), the service providing side API 87 adds “1” to the number of processing request replies in the record of the receiving unit 74, generates summary information of the service providing side queue information, and confirms the order. The information is transmitted to the service use side API 84 together with the information.

これを受けたサービス利用側API84は、GW部76の「IPアドレス+プロセスID」をキーにして処理要求キュー情報記憶領域86を検索し、当該GW部76のレコードを抽出し、当該レコードの「自要求件数」から「1」を減算した後、受付部74に注文確認情報を渡す。
つぎにサービス利用側API84は、サービス提供側API87から送信されたサマリ情報に基づいて、当該GW部76のレコードにおける「他要求件数」を更新する。
Receiving this, the service-use API 84 searches the processing request queue information storage area 86 using “IP address + process ID” of the GW unit 76 as a key, extracts the record of the GW unit 76, and extracts “ After subtracting “1” from the “number of self-requests”, the order confirmation information is passed to the reception unit 74.
Next, the service using side API 84 updates the “number of other requests” in the record of the GW unit 76 based on the summary information transmitted from the service providing side API 87.

予め設定されたタイミングが到来すると、サービス提供側API87は各受付部74に係るサービス提供側キュー情報の全レコードを、管理デーモン83に対して送信する。   When the preset timing arrives, the service providing side API 87 transmits all the records of the service providing side queue information related to each receiving unit 74 to the management daemon 83.

これを受けた管理デーモン83は、管理デーモンキュー情報記憶領域89を検索し、当該GW部76に係る各受付部74のレコードを抽出する。
つぎに管理デーモン83は、当該GW部76から送信されたサービス提供側キュー情報によって管理デーモンキュー情報の処理要求受信件数及び処理要求返信件数を上書き更新する。
Receiving this, the management daemon 83 searches the management daemon queue information storage area 89 and extracts the records of the receiving units 74 related to the GW unit 76.
Next, the management daemon 83 overwrites and updates the processing request reception number and the processing request reply number of the management daemon queue information with the service providing side queue information transmitted from the GW unit 76.

また、管理デーモン83は、予め設定されたタイミングが到来すると、管理デーモンキュー情報に基づいてクライアントキュー情報(GW部76のID+他要求件数)を受付部74毎に生成し、受付部74に対して送信する。
これを受けた各受付部74のサービス利用側API84は、処理要求キュー情報中の各GW部76に係る他要求件数を上書き更新する。
Also, when the preset timing arrives, the management daemon 83 generates client queue information (ID of the GW unit 76 + the number of other requests) for each reception unit 74 based on the management daemon queue information. To send.
Receiving this, the service utilization side API 84 of each receiving unit 74 overwrites and updates the number of other requests related to each GW unit 76 in the processing request queue information.

以上の結果、各受付部74は、現時点で最も負荷の小さいGW部76に対して、注文情報を送信することが可能となる。   As a result, each reception unit 74 can transmit order information to the GW unit 76 having the smallest load at the present time.

上記のように、各発注部20と各受付部74との間に負荷分散処理システム80を適用すると共に、各受付部74と各GW部76との間にも負荷分散処理システム80を多段階的に適用することにより、結果的に発注部20−GW部76間における注文情報及び注文確認情報のやり取りが効率化される。   As described above, the load distribution processing system 80 is applied between each ordering unit 20 and each reception unit 74, and the load distribution processing system 80 is also multistaged between each reception unit 74 and each GW unit 76. As a result, the exchange of order information and order confirmation information between the ordering unit 20 and the GW unit 76 is improved.

この発明に係る負荷分散処理システムの全体構成を示すブロック図である。1 is a block diagram showing an overall configuration of a load distribution processing system according to the present invention. 負荷分散処理システムの動作を示すフローチャートである。It is a flowchart which shows operation | movement of a load distribution processing system. 負荷分散処理システムの動作を示すフローチャートである。It is a flowchart which shows operation | movement of a load distribution processing system. 処理要求キュー情報の構成を示す説明図である。It is explanatory drawing which shows the structure of process request queue information. サービス提供側キュー情報の構成を示す説明図である。It is explanatory drawing which shows the structure of service provision side queue information. サマリ情報の構成を示す説明図である。It is explanatory drawing which shows the structure of summary information. 管理デーモンキュー情報の構成を示す説明図である。It is explanatory drawing which shows the structure of management daemon queue information. クライアントキュー情報の構成を示す説明図である。It is explanatory drawing which shows the structure of client queue information. クライアントキュー情報の生成過程を示す説明図である。It is explanatory drawing which shows the production | generation process of client queue information. 振分待ち要求に関する処理手順を示すフローチャートである。It is a flowchart which shows the process sequence regarding a distribution waiting request. この発明の応用例である証券取引自動執行システムの全体構成を示すブロック図である。It is a block diagram which shows the whole structure of the securities transaction automatic execution system which is an application example of this invention. アルゴリズム設定画面においてアルゴリズムの全体構成を設定する場面を示す説明図である。It is explanatory drawing which shows the scene which sets the whole structure of an algorithm in an algorithm setting screen. ボリュームカーブの具体例を示す説明図である。It is explanatory drawing which shows the specific example of a volume curve. アルゴリズムの設定項目を示す図である。It is a figure which shows the setting item of an algorithm. アルゴリズム設定画面においてボリュームカーブ選択部品を設定する場面を示す説明図である。It is explanatory drawing which shows the scene which sets a volume curve selection component in an algorithm setting screen. ボリュームカーブ選択部品の設定項目を示す図である。It is a figure which shows the setting item of volume curve selection components. アルゴリズム設定画面においてボリュームカーブ変更部品を設定する場面を示す説明図である。It is explanatory drawing which shows the scene which sets a volume curve change component in an algorithm setting screen. ボリュームカーブ変更部品の設定項目を示す図である。It is a figure which shows the setting item of a volume curve change component. アルゴリズム設定画面において注文分割部品を設定する場面を示す説明図である。It is explanatory drawing which shows the scene which sets an order division | segmentation part in an algorithm setting screen. 注文分割部品の設定項目を示す図である。It is a figure which shows the setting item of order division | segmentation parts. アルゴリズム設定画面において発注部品を設定する場面を示す説明図である。It is explanatory drawing which shows the scene which sets ordering parts in an algorithm setting screen. 発注部品の設定例を示す説明図である。It is explanatory drawing which shows the example of a setting of order parts. 発注部品の設定項目を示す図である。It is a figure which shows the setting item of order parts. アルゴリズムの構成例を示す図である。It is a figure which shows the structural example of an algorithm. 自動執行リクエスト画面を示す説明図である。It is explanatory drawing which shows an automatic execution request screen. 執行制御部の動作を示すフローチャートである。It is a flowchart which shows operation | movement of an execution control part. 注文分割部の動作を示すフローチャートである。It is a flowchart which shows operation | movement of an order division | segmentation part. 発注部の動作を示すフローチャートである。It is a flowchart which shows operation | movement of an ordering part. 執行制御部の内部構造を示すブロック図である。It is a block diagram which shows the internal structure of an execution control part. 発注部と受付部との間に負荷分散処理システムを適用した例を示すブロック図である。It is a block diagram which shows the example which applied the load distribution processing system between the ordering part and the reception part. 受付部とGW部との間に負荷分散処理システムを適用した例を示すブロック図である。It is a block diagram which shows the example which applied the load distribution processing system between the reception part and GW part.

10 証券取引自動執行システム
12 設定登録部
16 執行制御部
18 注文分割部
20 発注部
21 ボリュームカーブ選択部
22 ボリュームカーブ変更部
23 クライアント端末
24 証券取引のコンピュータ
30 アルゴリズム設定画面
31 左側ペイン
32 アルゴリズム
33 ボリュームカーブ選択部品
34 ボリュームカーブ変更部品
35 注文分割部品
36 発注部品
37 右側ペイン
38 ボリュームカーブ選択部品指定欄
39 ボリュームカーブ変更部品指定欄
40 注文分割部品指定欄
41 発注部品指定欄
42 ボリュームカーブ選択入力欄
43 適用条件入力欄
44 タイミング選択入力欄
45 変更条件入力欄
46 アクション入力欄
48 タイミング選択入力欄
49 条件入力欄
50 内容入力欄
50a ニモニック入力欄
50b 割当数量入力欄
50c 丸め方法選択欄
52 タイミング選択入力欄
53 条件入力欄
54 アクション入力欄
60 自動執行リクエスト画面
61 売買種別選択欄
62 銘柄コード入力欄
63 市場選択欄
64 数量入力欄
65 執行制限値段入力欄
67 パラメータ入力欄
67a 値入力欄
68 実行ボタン
72 アルゴリズム選択欄
74 受付部
76 GW部
80 負荷分散処理システム
81 サービス利用側プロセス
82 サービス提供側プロセス
83 管理デーモン
84 サービス利用側API
85 振分待ち要求記憶領域
86 処理要求キュー情報記憶領域
87 サービス提供側API
88 サービス提供側キュー情報記憶領域
89 管理デーモンキュー情報記憶領域
10 Securities transaction execution system
12 Setting registration section
16 Executive Control Department
18 Order division
20 Order Department
21 Volume curve selector
22 Volume curve change section
23 Client terminal
24 Stock trading computer
30 Algorithm setting screen
31 Left pane
32 algorithm
33 Volume curve selection parts
34 Volume curve change parts
35 Order split parts
36 Parts ordered
37 Right pane
38 Volume curve selection part specification field
39 Volume curve change part specification field
40 Order split parts designation field
41 Ordered part specification field
42 Volume curve selection input field
43 Application condition input field
44 Timing selection input field
45 Change condition input field
46 Action input field
48 Timing selection input field
49 Condition input field
50 Content input field
50a Mnemonic input field
50b Allocation quantity input field
50c Rounding method selection field
52 Timing selection input field
53 Condition input field
54 Action input field
60 Automatic execution request screen
61 Transaction type selection field
62 Stock code input field
63 Market selection field
64 Quantity input field
65 Execution limit price input field
67 Parameter input field
67a Value input field
68 Submit button
72 Algorithm selection field
74 Reception
76 GW Department
80 Load balancing system
81 Service consumer process
82 Service provider process
83 Management Daemon
84 Service-use API
85 Waiting request storage area
86 Processing request queue information storage area
87 Service Provider API
88 Service provider queue information storage area
89 Management daemon queue information storage area

Claims (7)

処理要求を生成する複数のサービス利用側プロセスと、上記処理要求に対して必要な処理を実行し、処理結果を出力する複数のサービス提供側プロセスと、上記サービス利用側プロセス毎に設けられた処理要求振分部と、上記サービス提供側プロセス毎に設けられた負荷情報管理部と、負荷情報配信部とを備えた負荷分散処理システムであって、
上記処理要求振分部は、サービス提供側プロセス毎に、当該サービス提供側プロセスが応対している全サービス利用側プロセスに係る未完了の処理要求件数を格納しておく第1の記憶領域と、
自己が担当するサービス利用側プロセスから処理要求が渡された際に、上記第1の記憶領域を参照し、未完了の処理要求件数が最も少ないサービス提供側プロセスを特定する機能と、
当該サービス提供側プロセスに係る負荷情報管理部に処理要求を送信する機能と、
当該サービス提供側プロセスによる処理結果を上記負荷情報管理部から受信し、上記サービス利用側プロセスに渡す機能と、
上記負荷情報配信部からサービス提供側プロセス毎の全サービス利用側プロセスに係る未完了の処理要求件数が送信された場合に、これにより上記第1の記憶領域に格納されたサービス提供側プロセス毎の未完了の処理要求件数を更新する機能を備え、
上記負荷情報管理部は、サービス利用側プロセスの処理要求を対応の処理要求振分部から受け取り、自己が担当するサービス提供側プロセスに渡す機能と、
当該サービス提供側プロセスから渡された処理結果を、上記サービス利用側プロセスの処理要求振分部に返信する機能と、
サービス利用側プロセス毎に、処理要求受信件数及び処理結果返信件数を格納する第2の記憶領域と、
処理要求を上記処理要求振分部から受信する度に、上記処理要求受信件数に1を加算する機能と、
処理結果を上記処理要求振分部に返信する度に、上記処理結果返信件数に1を加算する機能と、
所定のタイミングで、各サービス利用側プロセスに係る処理要求受信件数及び処理結果返信件数を、上記負荷情報配信部に送信する機能を備え、
上記負荷情報配信部は、各負荷情報管理部から送信された各サービス利用側プロセスに係る処理要求受信件数及び処理結果返信件数を格納しておく第3の記憶領域と、
所定のタイミングで、サービス提供側プロセス毎に、各サービス利用側プロセスに係る処理要求受信件数から処理結果返信件数を減算して未完了の処理要求件数を求め、これを全サービス利用側プロセス分積算する機能と、
このサービス提供側プロセス毎の全サービス利用側プロセスに係る未完了の処理要求件数を、各処理要求振分部に送信する機能を備えたことを特徴とする負荷分散処理システム。
A plurality of service using processes that generate processing requests, a plurality of service providing processes that execute processing necessary for the processing requests and outputting processing results, and a process provided for each service using process A load distribution processing system comprising a request distribution unit, a load information management unit provided for each service providing side process, and a load information distribution unit,
The processing request distribution unit stores, for each service providing process, a first storage area for storing the number of incomplete processing requests related to all service using processes handled by the service providing process;
A function for identifying the service providing side process having the smallest number of unfinished processing requests with reference to the first storage area when a processing request is passed from the service using side process in charge of itself;
A function of transmitting a processing request to the load information management unit related to the service providing side process;
A function of receiving a processing result by the service providing side process from the load information management unit and passing it to the service using side process;
When the number of incomplete processing requests related to all service using processes for each service providing process is transmitted from the load information distribution unit, each service providing process stored in the first storage area thereby A function to update the number of incomplete processing requests,
The load information management unit receives a processing request of a service using side process from a corresponding processing request distributing unit, and passes it to a service providing side process in charge of itself,
A function of returning the processing result passed from the service providing side process to the processing request distributing unit of the service using side process;
A second storage area for storing the number of received processing requests and the number of processing result replies for each service using process;
A function of adding 1 to the number of received processing requests each time a processing request is received from the processing request distribution unit;
A function of adding 1 to the number of processing result replies each time a processing result is returned to the processing request distribution unit;
Provided with a function of transmitting the processing request reception number and processing result reply number related to each service using process to the load information distribution unit at a predetermined timing,
The load information distribution unit includes a third storage area for storing the number of processing request receptions and the number of processing result replies related to each service user side process transmitted from each load information management unit,
At a given timing, for each service providing side process, subtract the number of processing result replies from the number of processing request received for each service using side process to obtain the number of incomplete processing requests, and add this to all service using side processes Function to
A load distribution processing system comprising a function of transmitting the number of incomplete processing requests related to all service using side processes for each service providing side process to each processing request distribution unit.
上記負荷情報管理部は、上記処理結果をサービス利用側プロセスの処理要求振分部に返信するに際し、各サービス利用側プロセスに係る処理要求受信件数の集計値と、各サービス利用側プロセスに係る処理結果返信件数の集計値を算出し、処理結果と共に処理要求振分部に送信する機能を備えており、
上記処理要求振分部は、この処理要求受信件数の集計値から処理結果返信件数の集計値を減算して、当該サービス提供側プロセスの全サービス利用側プロセスに係る未完了の処理要求件数を求める機能と、
この未完了の処理要求件数によって、上記第1の記憶領域における該当のサービス提供側プロセスに係る未完了の処理要求件数を更新する機能を備えたことを特徴とする請求項1に記載の負荷分散処理システム。
When the load information management unit returns the processing result to the processing request distribution unit of the service using side process, the load information management unit collects the processing request reception number related to each service using side process and the processing related to each service using side process. It has a function to calculate the total value of the number of result replies and send it to the processing request distribution part together with the processing result,
The processing request distribution unit subtracts the total value of the processing result response number from the total value of the processing request reception number to obtain the number of incomplete processing request numbers related to all the service using side processes of the service providing side process. Function and
2. The load distribution according to claim 1, further comprising a function of updating the number of incomplete processing requests related to the service providing side process in the first storage area based on the number of incomplete processing requests. Processing system.
処理要求を生成する複数のサービス利用側プロセスと、上記処理要求に対して必要な処理を実行し、処理結果を出力する複数のサービス提供側プロセスと、上記サービス利用側プロセス毎に設けられた処理要求振分部と、上記サービス提供側プロセス毎に設けられた負荷情報管理部と、負荷情報配信部とを備えた負荷分散処理システムであって、
上記処理要求振分部は、サービス提供側プロセス毎に、自らが当該サービス提供側プロセスに対して送信中の未完了の処理要求件数である自要求件数と、他のサービス利用側プロセスが当該サービス提供側プロセスに対して送信中の未完了の処理要求件数の合計である他要求件数を格納しておく第1の記憶領域と、
自己が担当するサービス利用側プロセスから処理要求が渡された際に、上記第1の記憶領域を参照し、自要求件数と他要求件数の和である未完了の処理要求件数が最も少ないサービス提供側プロセスを特定する機能と、
当該サービス提供側プロセスに係る負荷情報管理部に処理要求を送信する機能と、
当該サービス提供側プロセスに係る自要求件数に1を加算する機能と、
上記負荷情報管理部から処理結果を受信した際に、当該サービス提供側プロセスに係る自要求件数から1を減算する機能と、
この処理結果を上記サービス利用側プロセスに渡す機能と、
上記負荷情報配信部からサービス提供側プロセス毎の他のサービス利用側プロセスに係る未完了の処理要求件数の合計が送信された場合に、これにより上記第1の記憶領域に格納された他要求件数を更新する機能を備え、
上記負荷情報管理部は、サービス利用側プロセスの処理要求を対応の処理要求振分部から受け取り、自己が担当するサービス提供側プロセスに渡す機能と、
当該サービス提供側プロセスから渡された処理結果を、上記サービス利用側プロセスの処理要求振分部に返信する機能と、
サービス利用側プロセス毎に、処理要求受信件数及び処理結果返信件数を格納する第2の記憶領域と、
処理要求を上記処理要求振分部から受信する度に、上記処理要求受信件数に1を加算する機能と、
処理結果を上記処理要求振分部に返信する度に、上記処理結果返信件数に1を加算する機能と、
所定のタイミングで、各サービス利用側プロセスに係る処理要求受信件数及び処理結果返信件数を、上記負荷情報配信部に送信する機能を備え、
上記負荷情報配信部は、各負荷情報管理部から送信された各サービス利用側プロセスに係る処理要求受信件数及び処理結果返信件数を格納しておく第3の記憶領域と、
所定のタイミングで、サービス提供側プロセス毎に、各サービス利用側プロセスに係る処理要求受信件数から処理結果返信件数を減算して未完了の処理要求件数を求め、これを全サービス利用側プロセス分積算する機能と、
このサービス提供側プロセス毎の全サービス利用側プロセスに係る未完了の処理要求件数から、各サービス利用側プロセスに係る未完了の処理要求件数を減算し、各サービス利用側プロセス毎の他要求件数を算出する機能と、
この他要求件数を、対応のサービス利用側プロセスに係る処理要求振分部に送信する機能を備えたことを特徴とする負荷分散処理システム。
A plurality of service using processes that generate processing requests, a plurality of service providing processes that execute processing necessary for the processing requests and outputting processing results, and a process provided for each service using process A load distribution processing system comprising a request distribution unit, a load information management unit provided for each service providing side process, and a load information distribution unit,
For each service providing side process, the above processing request distribution unit determines the number of self requesting requests that are the number of incomplete processing requests that are being transmitted to the service providing side process, and other service using side processes A first storage area for storing the number of other requests that are the total number of incomplete processing requests being transmitted to the providing process;
Provide a service with the smallest number of unfinished processing requests, which is the sum of the number of self-requests and the number of other requests, by referring to the first storage area when a processing request is passed from the service user side process in charge The ability to identify the side process,
A function of transmitting a processing request to the load information management unit related to the service providing side process;
A function of adding 1 to the number of requests related to the service provider process;
When receiving the processing result from the load information management unit, a function of subtracting 1 from the number of self-requests related to the service providing side process;
A function for passing the processing result to the service consuming process;
The number of other requests stored in the first storage area when the total number of incomplete processing requests related to other service using processes for each service providing process is transmitted from the load information distribution unit With the ability to update
The load information management unit receives a processing request of a service using side process from a corresponding processing request distributing unit, and passes it to a service providing side process in charge of itself,
A function of returning the processing result passed from the service providing side process to the processing request distributing unit of the service using side process;
A second storage area for storing the number of received processing requests and the number of processing result replies for each service using process;
A function of adding 1 to the number of received processing requests each time a processing request is received from the processing request distribution unit;
A function of adding 1 to the number of processing result replies each time a processing result is returned to the processing request distribution unit;
Provided with a function of transmitting the processing request reception number and processing result reply number related to each service using process to the load information distribution unit at a predetermined timing,
The load information distribution unit includes a third storage area for storing the number of processing request receptions and the number of processing result replies related to each service user side process transmitted from each load information management unit,
At a given timing, for each service providing side process, subtract the number of processing result replies from the number of processing request received for each service using side process to obtain the number of incomplete processing requests, and add this to all service using side processes Function to
Subtract the number of incomplete processing requests for each service using side process from the number of incomplete processing requests for all service using side processes for each service providing side process to obtain the number of other requests for each service using side process. A function to calculate,
A load distribution processing system comprising a function of transmitting the number of other requests to a processing request distribution unit related to a corresponding service using side process.
上記負荷情報管理部は、上記処理結果をサービス利用側プロセスの処理要求振分部に返信するに際し、各サービス利用側プロセスに係る処理要求受信件数の集計値と、各サービス利用側プロセスに係る処理結果返信件数の集計値を算出し、処理結果と共に処理要求振分部に送信する機能を備えており、
上記処理要求振分部は、この処理要求受信件数の集計値から処理結果返信件数の集計値を減算し、その差から自要求件数を減算した他要求件数を算出する機能と、
この他要求件数によって、上記第1の記憶領域における該当のサービス提供側プロセスに係る他要求件数を更新する機能を備えたことを特徴とする請求項3に記載の負荷分散処理システム。
When the load information management unit returns the processing result to the processing request distribution unit of the service using side process, the load information management unit collects the processing request reception number related to each service using side process and the processing related to each service using side process. It has a function to calculate the total value of the number of result replies and send it to the processing request distribution part together with the processing result,
The processing request distribution unit subtracts the total value of the processing result reply number from the total value of the processing request reception number, and calculates the number of other requests by subtracting the number of own requests from the difference,
4. The load distribution processing system according to claim 3, further comprising a function of updating the number of other requests related to the service providing side process in the first storage area based on the number of other requests.
上記処理要求振分部は、上記処理要求をサービス提供側プロセスの負荷情報管理部に送信するに際し、当該サービス提供側プロセスに係る未完了の処理要求件数が予め設定された閾値を超えているか否かを判定する機能と、
上記閾値を超えている場合に、当該処理要求を一旦待機用の第4の記憶領域に格納する機能と、
上記第1の記憶領域の格納情報が更新される度に、上記第4の記憶領域に格納された各処理要求について、上記第1の記憶領域を参照して未完了の処理要求件数が最も少ないサービス提供側プロセスを特定する機能と、
当該サービス提供側プロセスの未完了の処理要求件数が予め設定された閾値以下か否かを判定し、上記閾値以下の場合に当該処理要求を対応のサービス提供側プロセスの負荷情報管理部に送信する機能を備えたことを特徴とする請求項1〜4の何れかに記載の負荷分散処理システム。
When the processing request distribution unit transmits the processing request to the load information management unit of the service providing side process, whether or not the number of incomplete processing requests related to the service providing side process exceeds a preset threshold value A function to determine whether
A function of temporarily storing the processing request in the fourth storage area for standby when the threshold value is exceeded;
Each time the storage information of the first storage area is updated, the number of unprocessed processing requests with respect to each processing request stored in the fourth storage area is smallest with reference to the first storage area. The ability to identify the service provider process;
It is determined whether or not the number of incomplete processing requests of the service providing side process is less than or equal to a preset threshold, and if the number is less than or equal to the threshold, the processing request is transmitted to the load information management unit of the corresponding service providing side process The load distribution processing system according to claim 1, further comprising a function.
上記サービス利用側プロセスが、予め設定されたタイミングで、予め設定されたルールに従って価格を算出し、この価格による、自己に割り当てられた数量分の新規注文情報を生成する処理を実行する、証券取引自動執行システムの複数の発注プロセスよりなり、
上記サービス提供側プロセスが、上記発注プロセスとゲートウェイプロセスとの間に介在し、発注プロセスによって生成された注文情報を受け付けて上記ゲートウェイプロセスに送信すると共に、ゲートウェイプロセスから送信された証券取引所のコンピュータからの注文確認情報を上記発注プロセスに送信する処理を実行する複数の受付プロセスよりなり、
上記処理要求振分部が、上記発注プロセスによって生成された注文情報を上記処理要求として上記受付プロセスの負荷情報管理部に送信すると共に、当該受付プロセスの負荷情報管理部から送信された上記注文確認情報を上記処理結果として上記発注プロセスに渡し、
上記負荷情報管理部が、上記発注プロセスの処理要求振分部から上記処理要求としての注文情報を受信し、上記受付プロセスに渡すと共に、当該受付プロセスから渡された上記処理結果としての注文確認情報を、上記発注プロセスの処理要求振分部に送信することを特徴とする請求項1〜5の何れかに記載の負荷分散処理システム。
A securities transaction in which the service-use-side process calculates a price according to a preset rule at a preset timing and generates a new order information corresponding to the quantity allocated to itself based on the price. It consists of multiple ordering processes of the automated execution system,
The service providing process is interposed between the ordering process and the gateway process, receives the order information generated by the ordering process, transmits the order information to the gateway process, and the computer of the stock exchange transmitted from the gateway process. It consists of multiple acceptance processes that execute processing to send order confirmation information from the above ordering process,
The processing request distribution unit transmits the order information generated by the ordering process as the processing request to the load information management unit of the reception process, and the order confirmation transmitted from the load information management unit of the reception process. Pass information to the ordering process as a result of the processing,
The load information management unit receives the order information as the processing request from the processing request distribution unit of the ordering process, passes the order information to the receiving process, and the order confirmation information as the processing result passed from the receiving process Is transmitted to the processing request distribution part of the ordering process. 6. The load distribution processing system according to claim 1, wherein
上記サービス利用側プロセスが、上記受付プロセスよりなり、
上記サービス提供側プロセスが、上記ゲートウェイプロセスよりなり、
上記処理要求振分部が、上記受付プロセスから渡された注文情報を上記処理要求として上記ゲートウェイプロセスの負荷情報管理部に送信すると共に、当該ゲートウェイプロセスの負荷情報管理部から送信された上記注文確認情報を上記処理結果として上記受付プロセスに渡し、
上記負荷情報管理部が、上記受付プロセスの処理要求振分部から上記処理要求としての注文情報を受信し、上記ゲートウェイプロセスに渡すと共に、ゲートウェイプロセスから渡された上記処理結果としての注文確認情報を、上記受付プロセスの処理要求振分部に送信することを特徴とする請求項6に記載の負荷分散処理システム。
The service usage process consists of the reception process,
The service provider side process consists of the gateway process,
The processing request distribution unit transmits the order information passed from the reception process as the processing request to the load information management unit of the gateway process, and the order confirmation transmitted from the load information management unit of the gateway process. Pass the information to the reception process as the processing result,
The load information management unit receives the order information as the processing request from the processing request distribution unit of the reception process, passes the order information to the gateway process, and receives the order confirmation information as the processing result passed from the gateway process. The load distribution processing system according to claim 6, wherein the load distribution processing system is transmitted to a processing request distribution unit of the reception process.
JP2009069330A 2009-03-23 2009-03-23 Load balancing processing system Expired - Fee Related JP5291504B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009069330A JP5291504B2 (en) 2009-03-23 2009-03-23 Load balancing processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009069330A JP5291504B2 (en) 2009-03-23 2009-03-23 Load balancing processing system

Publications (2)

Publication Number Publication Date
JP2010224709A JP2010224709A (en) 2010-10-07
JP5291504B2 true JP5291504B2 (en) 2013-09-18

Family

ID=43041851

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009069330A Expired - Fee Related JP5291504B2 (en) 2009-03-23 2009-03-23 Load balancing processing system

Country Status (1)

Country Link
JP (1) JP5291504B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2967516A4 (en) * 2013-03-15 2016-11-16 Prabhat K Ahluwalia Content inflation and delivery system
JP6655606B2 (en) * 2014-08-22 2020-02-26 アイイーエックス グループ,インコーポレーテッド Dynamic peg order in electronic trading system

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3966598B2 (en) * 1998-03-04 2007-08-29 富士通株式会社 Server selection system
JP2000268012A (en) * 1999-03-12 2000-09-29 Nec Corp Method and device for distributing load in client server system
JP4515354B2 (en) * 2005-08-16 2010-07-28 株式会社野村総合研究所 Load balancing processing system and apparatus
JP4394710B2 (en) * 2007-07-27 2010-01-06 日本電信電話株式会社 Load control apparatus, method, and program

Also Published As

Publication number Publication date
JP2010224709A (en) 2010-10-07

Similar Documents

Publication Publication Date Title
CN102859938B (en) Calculate resource by networking and data are carried out the device of synchronization process, system and method
JP6682514B2 (en) System and method for semi-open market
US8799138B2 (en) Routing control for orders eligible for multiple markets
US7398244B1 (en) Automated order book with crowd price improvement
US7848994B1 (en) System and method for linking and managing linked orders in an electronic trading environment
JP5039309B2 (en) Trading system
US20020091617A1 (en) Trading program for interacting with market programs on a platform
JP2016197451A (en) Method and system of trading security in foreign currency
US20010051909A1 (en) Market program for interacting with trading programs on a platform
US20030101128A1 (en) State tracking system for a basket trading system
JP2008515118A (en) System and method for basket trading and transaction allocation
US20230237576A1 (en) System and method for automated mobile alert-based trading mobile trade replication and detachment
US10999217B2 (en) Electrical computer system processing architecture for equitable assignment of improvements
JP7171091B2 (en) Financial instrument transaction management device, financial instrument transaction management system, financial instrument transaction management method in financial instrument transaction management system, and program
Chen et al. Design of an aggregated marketplace under congestion effects: Asymptotic analysis and equilibrium characterization
US20150058194A1 (en) System and Method for Multi-Market Risk Control in a Distributed Electronic Trading Environment
JP5291504B2 (en) Load balancing processing system
US7386358B2 (en) Available to promise allocation optimization tool
US7792733B1 (en) Automated synchronization of orders represented in multiple markets
JP7392725B2 (en) Negotiation systems, negotiation methods and negotiation programs
JP5361456B2 (en) Securities transaction automatic execution system
US20110246389A1 (en) Electronic trading spooler
JP5868692B2 (en) Algorithmic trading matching system and algorithmic trading integrated matching system provided with the same
US7774246B1 (en) Automated price setting for paired orders
KR20040010036A (en) Position Manager and Managing Method for Position Simulation and Multi-Order in Futures and Options Trading System

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111213

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130514

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130528

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130607

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees