[go: up one dir, main page]

RU2510528C2 - Request processing system, request processing method and computer-readable medium having request processing instructions - Google Patents

Request processing system, request processing method and computer-readable medium having request processing instructions Download PDF

Info

Publication number
RU2510528C2
RU2510528C2 RU2012123494/08A RU2012123494A RU2510528C2 RU 2510528 C2 RU2510528 C2 RU 2510528C2 RU 2012123494/08 A RU2012123494/08 A RU 2012123494/08A RU 2012123494 A RU2012123494 A RU 2012123494A RU 2510528 C2 RU2510528 C2 RU 2510528C2
Authority
RU
Russia
Prior art keywords
processing
phase
request
queue
phases
Prior art date
Application number
RU2012123494/08A
Other languages
Russian (ru)
Other versions
RU2012123494A (en
Inventor
Борис Борисович Рудаков
Тимофей Юрьевич Антонов
Алексей Юрьевич Ленц
Алексей Анатольевич Пришвин
Original Assignee
Общество с ограниченной ответственностью "ДартИТ"
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 Общество с ограниченной ответственностью "ДартИТ" filed Critical Общество с ограниченной ответственностью "ДартИТ"
Priority to RU2012123494/08A priority Critical patent/RU2510528C2/en
Publication of RU2012123494A publication Critical patent/RU2012123494A/en
Application granted granted Critical
Publication of RU2510528C2 publication Critical patent/RU2510528C2/en

Links

Landscapes

  • Retry When Errors Occur (AREA)
  • Hardware Redundancy (AREA)

Abstract

FIELD: information technology.
SUBSTANCE: method involves receiving a request to be processed by executing a finite number of logically separate phases; placing the request in a processing queue; extracting phases from the processing queue for processing with any free phase processing means, capable of processing said request phase; processing the phase extracted from the processing queue and storing the processing results. If processing of said phase is successful, the next request phase is placed in the processing queue or, if the last phase has been processed, request processing is completed; if phase processing is unsuccessful, the phase is returned into the processing queue; in case of improper completion of request processing, processing of said request is resumed, starting with the phase following the last successfully executed phase.
EFFECT: high fault-tolerance of the request processing system, and providing a balanced load while increasing system resources.
9 cl, 1 dwg

Description

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕFIELD OF THE INVENTION

Настоящее изобретение относится к обработке запросов. Более конкретно, настоящее изобретение относится к способу обработки запросов и компьютерному программному продукту, содержащему инструкции, при выполнении которых реализуется способ обработки запросов, а также системе, реализующей способ обработки запросов.The present invention relates to query processing. More specifically, the present invention relates to a request processing method and a computer program product containing instructions for executing a request processing method, as well as a system that implements a request processing method.

УРОВЕНЬ ТЕХНИКИBACKGROUND

В настоящее время известен «прямолинейный» способ обработки запросов. Некоторое программно-аппаратное решение (далее - модуль обработки) в состоянии принять одновременно некоторое количество (N) запросов. Под это в модуле обработки резервируется пул рабочих нитей (thread working pool), каждая из которых может находиться в одном из двух состояний: либо состоянии обработки запроса («занята»), либо ожидания запроса, который она может исполнить («свободна»).Currently known "straightforward" way of processing requests. Some hardware and software solution (hereinafter referred to as the processing module) is able to accept at the same time a certain number of (N) requests. For this, a thread working pool is reserved in the processing module, each of which can be in one of two states: either the request processing state (“busy”) or the request that it can execute (“free”).

При передаче запроса модулю обработки первая же свободная рабочая нить этого пула получает его на исполнение. В худшем случае (при полной загрузке) все эти нити будут одновременно исполнять поступившие запросы, для чего им потребуется N соединений как с собственными ресурсами (например, с базой данных), так и с внешними, когда задача включает в себя подачу запроса к другой системе. Если соединения с используемыми ресурсами лимитированы, т.е. их меньше, чем N (число рабочих нитей пула), то рабочие нити пула выстраиваются в очередь за ресурсом. Обычно эта очередь реализуется с помощью стандартных средств синхронизации, например семафоров: рабочие нити приостанавливают свое исполнение, пока требуемый ресурс не освободится. Этот способ был принят в качестве ближайшего аналога (прототипа) настоящего изобретения.When a request is sent to the processing module, the first free working thread of this pool receives it for execution. In the worst case (at full load), all these threads will simultaneously execute incoming requests, for which they will need N connections both with their own resources (for example, a database) and external, when the task involves submitting a request to another system . If the connections to the resources used are limited, i.e. if there are less than N (the number of working threads in the pool), then the working threads of the pool are lined up for the resource. Usually this queue is implemented using standard synchronization tools, for example semaphores: working threads suspend their execution until the required resource is freed. This method was adopted as the closest analogue (prototype) of the present invention.

Известный способ обработки запросов имеет ряд недостатков.The known method of processing requests has several disadvantages.

Во-первых, в процессе его реализации рабочая нить, ожидающая ресурс, не работает, даже когда есть другие задачи, не требующие занятого ресурса. То есть значительные ресурсы могут быть заняты ожиданием, что приводит к задержкам обработки запросов. Во-вторых, при реализации известного способа в случае сбоя сервера все промежуточные результаты теряются, т.к. алгоритм запроса реализован как последовательно исполняющаяся функция. Задача сохранения промежуточных результатов и реализации алгоритма, который бы после сбоя возобновлял работу с последней сохраненной точки, ведет к значительному усложнению программного кода и его последующего сопровождения и развития. В-третьих, запрос, начавший исполняться одним модулем обработки, исполняется им до конца - он не может быть передан другому модулю обработки для балансировки нагрузки. В результате возможна несимметричная загрузка узлов системы.Firstly, in the process of its implementation, a working thread waiting for a resource does not work, even when there are other tasks that do not require a busy resource. That is, significant resources can be occupied by waiting, which leads to delays in processing requests. Secondly, when implementing the known method in the event of a server failure, all intermediate results are lost, because the request algorithm is implemented as a sequentially executed function. The task of saving intermediate results and implementing an algorithm that would resume work from the last saved point after a failure leads to a significant complication of the program code and its subsequent maintenance and development. Thirdly, a request that started to be executed by one processing module is executed by it to the end - it cannot be transferred to another processing module to balance the load. As a result, asymmetric loading of system nodes is possible.

РАСКРЫТИЕ ИЗОБРЕТЕНИЯSUMMARY OF THE INVENTION

Задача, стоявшая перед разработчиками настоящего изобретения, заключалась в создании способа обработки запросов, который бы не обладал вышеуказанными недостатками.The challenge facing the developers of the present invention was to create a method for processing requests that would not have the above disadvantages.

Для решения поставленной задачи разработчиками предпринято следующее. Обработка запросов логически разделена на части, типизированные и названные фазами таким образом, что для обработки каждой фазы определенного типа становится возможным применить обособленный логически связанный алгоритм, при этом логика разделения определяется контекстом обработки запросов, в том числе используемыми для обработки запроса ресурсами, и, в целом, может быть направлена на сокращение среднего времени обработки запросов. Модули обработки специализированы не на обработке запросов целиком, а выполнены с возможностью обработки фаз определенных типов (являются средствами обработки фаз определенных типов), при этом они могут быть обособленны как на программном, так и на аппаратном уровне, кроме того, локальный пул рабочих нитей средства обработки выделен для каждого типа фаз, для обработки которых оно предназначено. Каждая фаза полностью обрабатывается одним из предназначенных для обработки фаз такого типа средством обработки с сохранением результата обработки. В случае неудовлетворительного результата обработки запроса или сбоя в процессе обработки, проблемная фаза может быть обработана повторно без необходимости повторно обрабатывать уже обработанные фазы.To solve this problem, the developers have undertaken the following. Request processing is logically divided into parts typed and called phases in such a way that it becomes possible to use a separate, logically connected algorithm to process each phase of a certain type, while the separation logic is determined by the context of the request processing, including the resources used to process the request, and, in In general, it can be aimed at reducing the average query processing time. Processing modules do not specialize in processing requests in their entirety, but are configured to process certain types of phases (they are means for processing certain types of phases), and they can be isolated both at the software and hardware levels, in addition, a local pool of working threads of the tool processing is allocated for each type of phase for the processing of which it is intended. Each phase is completely processed by one of the phases of this type intended for processing by the processing means while maintaining the processing result. In the case of an unsatisfactory result of processing the request or a failure during processing, the problem phase can be reprocessed without the need to reprocess the already processed phases.

Технический результат настоящего изобретения заключается в сбалансированности нагрузки на модули выполнения, повышении отказоустойчивости системы обработки запросов, а также в обеспечении возможности практически неограниченного наращивания ресурсов системы.The technical result of the present invention is to balance the load on the execution modules, increase the fault tolerance of the request processing system, and also provide the possibility of almost unlimited increase in system resources.

Указанный технический результат достигается тем, что способ обработки запросов включает в себя прием 1 запроса, который может быть обработан посредством выполнения конечного числа логически обособленных фаз; помещение 2 запроса в очередь на обработку; отличающийся тем, что способ обработки также включает в себя извлечение 3 фазы из очереди для обработки любым свободным средством обработки фазы, способным обработать данную фазу запроса; обработка 4 извлеченной из очереди для обработки фазы; сохранение 5 результатов обработки; в случае успешной обработки данной фазы - помещение следующей фазы запроса в очередь на обработку или, если (проверка 7 того, была ли обработанная фаза последней фазой запроса) была обработана последняя фаза, завершение 8 обработки запроса; в случае (проверка 6 успешности обработки фазы) неуспешной обработки фазы - возврат 9 данной фазы в очередь на обработку; в случае нештатного завершения обработки запроса - возобновление обработки данного запроса, начиная с фазы, следующей за последней успешно выполненной фазой.The specified technical result is achieved in that the method for processing requests includes receiving 1 request, which can be processed by performing a finite number of logically isolated phases; placing 2 requests in the processing queue; characterized in that the processing method also includes extracting 3 phases from the queue for processing by any free phase processing means capable of processing this request phase; processing 4 extracted from the queue for processing phase; saving 5 processing results; in case of successful processing of this phase, placing the next phase of the request in the processing queue or, if (checking 7 whether the processed phase was the last phase of the request), the last phase was processed, completion 8 of the request processing; in the case (check 6 of the success of the phase processing) of the unsuccessful processing of the phase, return 9 of this phase to the processing queue; in case of abnormal completion of request processing - resuming processing of this request, starting from the phase following the last successfully completed phase.

Сбалансированность нагрузки на модули обработки при таком способе обработки запросов достигается тем, что к исполнению фазы привлекается любой свободный модуль обработки, способный обработать данную фазу, то есть фаза обрабатывается от начала до конца одним модулем обработки, но запрос исполняется тем модулем обработки, который «свободен». За счет этого запросы «мигрируют» с загруженных модулей обработки на простаивающие, тем самым обеспечивая балансировку нагрузки между модулями обработки.The load balancing on the processing modules with this method of processing requests is achieved by the fact that any free processing module capable of processing this phase is involved in the execution of the phase, that is, the phase is processed from beginning to end by one processing module, but the request is executed by the processing module that is “free ". Due to this, requests “migrate” from loaded processing modules to idle ones, thereby ensuring load balancing between processing modules.

Повышение отказоустойчивости системы при таком способе обработки запросов достигается тем, что в случае сбоя в ходе обработки запроса, ранее выполненные фазы запроса повторно обрабатывать не потребуется, и обработку запроса можно будет продолжить с фазы, на которой произошел сбой.An increase in system fault tolerance with this method of processing requests is achieved by the fact that in the event of a failure during the processing of the request, previously executed request phases will not need to be processed again, and request processing can be continued from the phase where the failure occurred.

Возможность практически неограниченного наращивания вычислительных мощностей системы при таком способе обработки запросов обеспечивается за счет того, что дополнительные модули обработки, как и модули хранения данных, могут включаться в систему, работающую по заявленному способу, в соответствии с потребностями задачи, в целях увеличения числа одновременно выполняющихся запросов.The possibility of an almost unlimited increase in the computing power of the system with this method of processing requests is ensured by the fact that additional processing modules, like data storage modules, can be included in a system operating according to the claimed method, in accordance with the needs of the task, in order to increase the number of simultaneously executed queries.

В дальнейшем заявленное изобретение будет детально описано со ссылками на прилагаемые чертежи.In the future, the claimed invention will be described in detail with reference to the accompanying drawings.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙBRIEF DESCRIPTION OF THE DRAWINGS

Фиг.1 показывает блок-схему обработки фазы запроса согласно настоящему изобретению.1 shows a flowchart of request phase processing according to the present invention.

ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯDETAILED DESCRIPTION OF THE INVENTION

В предпочтительном варианте осуществления настоящего изобретения настоящий способ обработки запросов может быть использован в веб-сервисах, например системах продаж и обслуживания, задачи которых определяют необходимость в многоэтапной обработке информации, с требованием к высокой устойчивости и производительности. Примером системы, использующей настоящее изобретение, может служить автоматизированная система приема платежей, предназначенная для приема платежей в счет оплаты приобретаемых товаров и услуг, где запросами являются команды на выполнение платежей, поступающие от клиентских платежных терминалов, а фазами - процессы формирования и отправка команд на списание денежных средств, на их зачисление на лицевые счета получателей, на передачу данных о выполненной оплате поставщикам услуг и т.п. Сервер базы данных содержит в себе базу данных, в которой содержится информация о клиентах, серверах приложений поставщиков, а также подлежащие обработке запросы. Сервер базы данных выполнен с возможностью приема запросов, их обработки и отправки на серверы приложений (модули обработки) поставщиков. Таким образом, система, работающая согласно настоящему изобретению, представляет собой конвейер обработки запросов.In a preferred embodiment of the present invention, the present request processing method can be used in web services, for example, sales and service systems, the tasks of which determine the need for multi-stage processing of information, with the requirement for high stability and performance. An example of a system using the present invention is an automated payment acceptance system designed to receive payments for payment of purchased goods and services, where the requests are commands for making payments received from client payment terminals, and the phases are the processes of forming and sending commands for debiting funds to be credited to the personal accounts of the recipients, to transfer data on the payment made to service providers, etc. The database server contains a database that contains information about customers, application servers of suppliers, as well as requests to be processed. The database server is configured to receive requests, process them and send them to the application servers (processing modules) of the suppliers. Thus, the system operating according to the present invention is a query processing pipeline.

После того как выполнен прием 1 запроса, который может быть обработан посредством выполнения конечного числа логически обособленных фаз, выполняется помещение 2 запроса в очередь на обработку очередной (в данном частном случае - первой) фазы.After receiving request 1, which can be processed by executing a finite number of logically isolated phases, 2 requests are placed in the queue for processing the next (in this particular case, the first) phase.

Дополнительно может быть выполнена проверка принятого запроса на соответствие установленным правилам. Такими правилами может быть, например, корректность заполнения запроса. При отрицательном результате проверки обработка запроса может не выполняться. Кроме того, запрос, не прошедший проверку, может также подвергнуться альтернативному варианту обработки, однако это выходит за рамки настоящего изобретения. При положительном результате проверки запроса на соответствие установленным правилам может выполниться проверка на предмет того, не является ли обрабатываемый запрос дубликатом одного из ранее принятых. При положительном результате этой проверки обработка запроса может не выполняться.Additionally, a verification of a received request for compliance with established rules can be performed. Such rules may be, for example, the correctness of filling out a request. If the verification result is negative, the request may not be processed. In addition, a failed request may also undergo an alternative processing option, however, this is beyond the scope of the present invention. With a positive result of checking the request for compliance with the established rules, a check can be performed to determine whether the processed request is a duplicate of one of the previously accepted ones. If the result of this check is positive, the request may not be processed.

Свободные рабочие нити средств обработки, предназначенные для обработки фаз такого типа, регулярно обращаются к очереди для извлечения фаз в целях обработки. Таким образом, в какой-то момент времени выполняется извлечение 3 фазы, помещенной в очередь, свободной нитью подходящего модуля обработки (приоритетов друг перед другом модули обработки не имеют). При этом рабочая нить резервируется (переходит из состояния «свободна» в состояние «занята»).Free working threads of processing means for processing phases of this type regularly turn to the queue to extract phases for processing purposes. Thus, at some point in time, the extraction of the 3 phases placed in the queue is performed by the free thread of a suitable processing module (the processing modules have no priorities over each other). In this case, the working thread is reserved (goes from the "free" state to the "busy" state).

Далее рабочей нитью модуля обработки выполняется обработка 4 фазы и сохранение 5 результата ее обработки в базе данных. Дальнейшие действия зависят от результата проверки 6 успешности обработки фазы.Next, the working thread of the processing module is processing 4 phases and saving 5 results of its processing in the database. Further actions depend on the result of verification 6 of the success of the phase processing.

Если фаза обработана успешно, то дальнейшие действия зависят от проверки 7 того, была ли обработанная фаза последней фазой запроса. Необходимо понимать, что данная проверка 7 может быть сведена к проверке наличия в очереди на обработку невыполненной " фазы запроса. То есть проверка 7 может быть организована за счет очередности выполнения фаз. Если проверка 7 дала положительный результат, то выполняется завершение обработки запроса. В противном случае выполняется извлечение следующей фазы запроса, помещенной в очередь на обработку. В случае успешной обработки фазы рабочая нить высвобождается (переходит в состояние «свободна»).If the phase is processed successfully, further actions depend on checking 7 whether the processed phase was the last phase of the request. It is necessary to understand that this check 7 can be reduced to checking that there is an unfulfilled “request phase” in the queue for processing. That is, check 7 can be organized by the sequence of phases. If check 7 gives a positive result, the request is completed. Otherwise In this case, the next phase of the request is queued for processing, and if the phase is successfully processed, the working thread is released (it goes into the “free” state).

Если по результатам проверки 6 фаза не была обработана успешно, в зависимости от условий, обработка фазы может быть выполнена повторно или работа над запросом может быть прекращена. Такие условия могут быть связаны с характером сбоя, с причинами неуспешности обработки фазы, а также со свойствами самой фазы.If, according to the results of check 6, the phase was not processed successfully, depending on the conditions, the phase processing may be repeated or work on the request may be terminated. Such conditions can be associated with the nature of the failure, with the reasons for the failure of the phase processing, as well as with the properties of the phase itself.

Если обработку неуспешно обработанной фазы необходимо повторить, выполняется помещение 9 этой фазы в очередь на обработку. При этом для этой фазы может быть задан тайм-аут, по истечении которого фаза может быть вновь извлечена из очереди на обработку. Определение величины тайм-аута для фазы может быть выполнено с учетом числа попыток выполнить эту фазу и/или других условий. В обоих случаях (отправлена ли фаза повторно в очередь на обработку или обработка запроса прекращена) рабочая нить высвобождается (переходит в состояние «свободна»).If the processing of the unsuccessfully processed phase needs to be repeated, 9 of this phase is placed in the processing queue. Moreover, for this phase, a timeout can be set, after which the phase can be retrieved from the processing queue again. The determination of the timeout value for a phase can be performed taking into account the number of attempts to complete this phase and / or other conditions. In both cases (whether the phase has been sent back to the queue for processing or if the processing of the request has stopped), the working thread is released (it goes into the “free” state).

При возникновении сбоев, приводящих к нештатному завершению обработки запроса, после восстановления работоспособности системы, обработка возобновляется с фазы, на которой произошел сбой.In the event of failures leading to an abnormal termination of the processing of the request, after restoration of the system, the processing resumes from the phase at which the failure occurred.

Система обработки запросов, согласно настоящему изобретению, может включать в себя по меньшей мере один модуль баз данных, выполненный с возможностью хранения и управления базой данных, содержащей данные о запросах и их фазах; необходимые средства приема-передачи данных, а также по меньшей мере один модуль обработки, являющийся средством обработки фаз по меньшей мере одного типа. Модуль обработки базы данных может быть выполнен в виде универсальной цифровой электронно-вычислительной машины (согласно ГОСТ 16325-88). Средства приема-передачи данных могут включать в себя любые известные средства, формирующие каналы передачи данных: как проводные, так и беспроводные.The request processing system according to the present invention may include at least one database module configured to store and manage a database containing data about the requests and their phases; the necessary means of receiving and transmitting data, as well as at least one processing module, which is a means of processing phases of at least one type. The database processing module can be made in the form of a universal digital electronic computer (according to GOST 16325-88). Means of receiving and transmitting data may include any known means that form the data transmission channels: both wired and wireless.

Система обработки запросов обычно включает в себя различные машиночитаемые носители. Машиночитаемый носитель может представлять собой любой пригодный носитель, к которому система может осуществить доступ, причем такой носитель может включать в себя как энергозависимый, так и энергонезависимый носитель, а также съемный и несъемный носитель. В качестве примера, но не ограничения, машиночитаемый носитель может содержать компьютерную запоминающую среду и среду связи. Компьютерная запоминающая среда включает в себя как энергозависимый, так и энергонезависимый, съемный и несъемный носитель, реализованный любым способом или по любой технологии, используемой для хранения такой информации, как машиночитаемые инструкции, структуры данных, программные модули или другие данные. Компьютерная запоминающая среда включает в себя, но не только, ОЗУ (RAM), ПЗУ (ROM), электрически стираемое программируемое ПЗУ (EEPROM), флэш-память либо другую технологию памяти, компакт-диск (CD-ROM), цифровой универсальный диск (DVD) либо другие оптические дисковые запоминающие устройства, магнитные кассеты, магнитную ленту, магнитное дисковое запоминающее устройство либо другие магнитные запоминающие устройства или любой другой носитель, который можно использовать для хранения требуемой информации и к которому система обработки запросов может осуществить доступ. Среда связи обычно воплощает машиночитаемые инструкции, структуры данных, программные модули или другие данные в модулированном сигнале данных, таком как сигнал несущей иди другой механизм транспортировки, и включает в себя любую среду для доставки информации. Термин «модулированный сигнал данных» означает сигнал, одна или несколько характеристик которого устанавливается или изменяется таким образом, чтобы закодировать информацию в этом сигнале. В качестве примера, но не исключения, среда связи включает в себя проводную среду, такую как проводная сеть или прямое проводное соединение, а также беспроводную среду, такую как акустическая, радиочастотная, инфракрасная и другая беспроводная среда. В состав машиночитаемых носителей следует также включить комбинации из любых вышеуказанных носителей (сред).A request processing system typically includes various computer-readable media. A computer-readable medium may be any suitable medium that the system can access, and such medium may include both volatile and non-volatile media, as well as removable and non-removable media. By way of example, but not limitation, a computer-readable medium may comprise a computer storage medium and a communication medium. A computer storage medium includes both volatile and non-volatile, removable and non-removable media implemented in any way or by any technology used to store information such as machine-readable instructions, data structures, program modules or other data. A computer storage medium includes, but is not limited to, RAM, ROM, electrically erasable programmable ROM (EEPROM), flash memory or other memory technology, a compact disc (CD-ROM), a digital universal disk ( DVD) or other optical disk storage devices, magnetic tapes, magnetic tape, magnetic disk storage device or other magnetic storage devices or any other medium that can be used to store the required information and to which the query processing system can exist access. A communication medium typically embodies machine-readable instructions, data structures, program modules or other data in a modulated data signal, such as a carrier signal or other transport mechanism, and includes any medium for delivering information. The term "modulated data signal" means a signal, one or more of whose characteristics is set or changed in such a way as to encode information in this signal. As an example, but not an exception, a communication medium includes a wired medium, such as a wired network or a direct wired connection, as well as a wireless medium, such as acoustic, radio frequency, infrared, and other wireless medium. Combinations of any of the above media (media) should also be included in computer-readable media.

Накопители и ассоциированные с ними носители компьютерной среды хранения, обсужденные выше, обеспечивают хранение машиночитаемых инструкций, структур данных, программных модулей и других данных для системы обработки запросов.The drives and associated media of the computer storage medium discussed above provide storage of machine-readable instructions, data structures, program modules and other data for the query processing system.

С точки зрения множества возможных вариантов, в которых могут быть использованы принципы данного изобретения, следует отметить, что описанный здесь вариант осуществления вместе с соответствующими чертежами является лишь иллюстрацией и его не следует рассматривать как ограничение объема изобретения. Например, элементы проиллюстрированного варианта осуществления конвейерной обработки запросов могут быть реализованы аппаратными средствами. Проиллюстрированный вариант осуществления может быть модифицирован с точки зрения компоновки и в отдельных деталях, не выходя за рамки сущности изобретения. Таким образом, описанное изобретение охватывает все варианты осуществления, которые могут входить в объем, определяемый нижеследующей формулой изобретения и ее эквивалентами.From the point of view of the many possible options in which the principles of the present invention can be used, it should be noted that the embodiment described here together with the corresponding drawings is only an illustration and should not be construed as limiting the scope of the invention. For example, elements of an illustrated embodiment of pipelined request processing may be implemented in hardware. The illustrated embodiment may be modified in terms of layout and in individual details without departing from the spirit of the invention. Thus, the described invention covers all embodiments that may fall within the scope defined by the following claims and their equivalents.

Claims (9)

1. Способ обработки запросов, включающий в себя
прием запроса, который может быть обработан посредством выполнения конечного числа логически обособленных фаз;
помещение запроса в очередь на обработку;
отличающийся тем, что способ обработки также включает в себя
извлечение фазы из очереди для обработки любым свободным средством обработки фазы, способным обработать данную фазу запроса;
обработка извлеченной из очереди для обработки фазы;
сохранение результатов обработки;
в случае успешной обработки данной фазы - извлечение следующей фазы запроса, помещенной в очередь на обработку, или, если была обработана последняя фаза, завершение обработки запроса;
в случае неуспешной обработки фазы - возврат данной фазы в очередь на обработку;
в случае нештатного завершения обработки запроса - возобновление обработки данного запроса, начиная с фазы, следующей за последней успешно выполненной фазой.
1. The method of processing requests, including
receiving a request that can be processed by performing a finite number of logically isolated phases;
queuing a request for processing;
characterized in that the processing method also includes
extracting the phase from the queue for processing by any free phase processing means capable of processing this phase of the request;
processing extracted from the queue for processing phase;
saving processing results;
in the case of successful processing of this phase, retrieving the next phase of the request placed in the queue for processing, or, if the last phase was processed, completing the processing of the request;
in case of unsuccessful phase processing, returning this phase to the processing queue;
in case of abnormal completion of request processing - resuming processing of this request, starting from the phase following the last successfully completed phase.
2. Способ по п.1, отличающийся тем, что при приеме запроса производится проверка запроса на соответствие установленным правилам.2. The method according to claim 1, characterized in that upon receipt of the request, the request is checked for compliance with the established rules. 3. Способ по п.1, отличающийся тем, что способ также включает в себя проверку принятого запроса на предмет того, не является ли запрос дубликатом одного из ранее поступивших запросов.3. The method according to claim 1, characterized in that the method also includes checking the received request for whether the request is a duplicate of one of the previously received requests. 4. Способ по п.1, отличающийся тем, что фазы помещаются обратно в очередь на обработку с тайм-аутом, по истечении которого фаза может быть вновь извлечена из очереди на обработку.4. The method according to claim 1, characterized in that the phases are placed back into the processing queue with a timeout, after which the phase can be retrieved from the processing queue again. 5. Способ по п.4, отличающийся тем, что определение величины тайм-аута выполняется с учетом числа попыток выполнить соответствующую фазу.5. The method according to claim 4, characterized in that the determination of the timeout value is performed taking into account the number of attempts to perform the corresponding phase. 6. Способ по п.1, отличающийся тем, что фазы имеют различный приоритет для обработки, при этом при наличии у средства обработки фазы возможности выполнения фаз двух и более типов и наличии в очереди для обработки фаз этих типов, в первую очередь обрабатываются фазы с более высоким приоритетом.6. The method according to claim 1, characterized in that the phases have a different priority for processing, while if the phase processing means has the ability to carry out phases of two or more types and there are queues for processing phases of these types in the queue, the phases with higher priority. 7. Способ по п.1, отличающийся тем, что очередь на обработку состоит из фаз запросов, которые содержатся в базе данных, которая содержит также информацию о результате обработки фазы.7. The method according to claim 1, characterized in that the processing queue consists of request phases that are contained in a database that also contains information about the result of the phase processing. 8. Машиночитаемый носитель, отличающийся тем, что носитель содержит сохраненные на нем машиноисполняемые инструкции, которые при их исполнении компьютером, входящим в систему обработки запросов, побуждают систему реализовывать способ, включающий в себя этапы:
прием запроса, который может быть обработан посредством выполнения конечного числа логически обособленных фаз;
помещение запроса в очередь на обработку;
при этом способ обработки также включает в себя
извлечение фазы из очереди для обработки любым свободным средством обработки фазы, способным обработать данную фазу запроса;
обработка извлеченной из очереди для обработки фазы;
сохранение результатов обработки,
в случае успешной обработки данной фазы - извлечение следующей фазы запроса, помещенной в очередь на обработку, или, если была обработана последняя фаза, завершение обработки запроса;
в случае неуспешной обработки фазы - возврат данной фазы в очередь на обработку;
в случае нештатного завершения обработки запроса возобновление обработки данного запроса, начиная с фазы, следующей за последней успешно выполненной фазой.
8. A machine-readable medium, characterized in that the medium contains computer-executable instructions stored thereon, which, when executed by a computer included in the request processing system, prompts the system to implement a method including the steps of:
receiving a request that can be processed by performing a finite number of logically isolated phases;
queuing a request for processing;
wherein the processing method also includes
extracting the phase from the queue for processing by any free phase processing means capable of processing this phase of the request;
processing extracted from the queue for processing phase;
saving processing results,
in the case of successful processing of this phase, retrieving the next phase of the request placed in the queue for processing, or, if the last phase was processed, completing the processing of the request;
in case of unsuccessful phase processing, returning this phase to the processing queue;
in case of abnormal completion of the request processing, resuming processing of this request, starting from the phase following the last successfully completed phase.
9. Система обработки запросов, включающая в себя
по меньшей мере один модуль баз данных, выполненный с возможностью хранения базы данных, содержащей данные о запросах и их фазах;
средства приема-передачи данных;
по меньшей мере один модуль обработки, являющийся средством обработки фазы по меньшей мере одного типа;
один или несколько машиночитаемых носителей,
отличающаяся тем, что один или несколько машиночитаемых носителей содержат сохраненные на них машиноисполняемые инструкции, которые при исполнении их системой побуждают ее реализовывать способ, который включает в себя следующие этапы:
прием запроса, который может быть обработан посредством выполнения конечного числа логически обособленных фаз;
помещение запроса в очередь на обработку,
при этом способ обработки также включает в себя
извлечение фазы из очереди для обработки любым свободным средством обработки фазы, способным обработать данную фазу запроса;
обработка извлеченной из очереди для обработки фазы;
сохранение результатов обработки,
в случае успешной обработки данной фазы - извлечение следующей фазы запроса, помещенной в очередь на обработку, или, если была обработана последняя фаза, завершение обработки запроса;
в случае неуспешной обработки фазы - возврат данной фазы в очередь на обработку;
в случае нештатного завершения обработки запроса - возобновление обработки данного запроса, начиная с фазы, следующей за последней успешно выполненной фазой.
9. The request processing system, including
at least one database module, configured to store a database containing data about the queries and their phases;
means of reception and transmission of data;
at least one processing module, which is a means of processing the phase of at least one type;
one or more computer readable media,
characterized in that one or more machine-readable media contain machine-executable instructions stored on them, which, when executed by their system, prompts it to implement a method that includes the following steps:
receiving a request that can be processed by performing a finite number of logically isolated phases;
queuing a request for processing,
wherein the processing method also includes
extracting the phase from the queue for processing by any free phase processing means capable of processing this phase of the request;
processing extracted from the queue for processing phase;
saving processing results,
in the case of successful processing of this phase, retrieving the next phase of the request placed in the queue for processing, or, if the last phase was processed, completing the processing of the request;
in case of unsuccessful phase processing, returning this phase to the processing queue;
in case of abnormal completion of request processing - resuming processing of this request, starting from the phase following the last successfully completed phase.
RU2012123494/08A 2012-06-06 2012-06-06 Request processing system, request processing method and computer-readable medium having request processing instructions RU2510528C2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2012123494/08A RU2510528C2 (en) 2012-06-06 2012-06-06 Request processing system, request processing method and computer-readable medium having request processing instructions

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2012123494/08A RU2510528C2 (en) 2012-06-06 2012-06-06 Request processing system, request processing method and computer-readable medium having request processing instructions

Publications (2)

Publication Number Publication Date
RU2012123494A RU2012123494A (en) 2013-12-20
RU2510528C2 true RU2510528C2 (en) 2014-03-27

Family

ID=49784374

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2012123494/08A RU2510528C2 (en) 2012-06-06 2012-06-06 Request processing system, request processing method and computer-readable medium having request processing instructions

Country Status (1)

Country Link
RU (1) RU2510528C2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018147827A1 (en) * 2017-02-07 2018-08-16 Hewlett-Packard Development Company, L.P. Determining cash drawer access

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SU922756A1 (en) * 1980-01-30 1982-04-23 Рижское Высшее Военно-Политическое Краснознаменное Училище Им. Маршала Советского Союза С.С.Бирюзова Device for simulating mass servicing systems
US6339802B1 (en) * 1999-02-19 2002-01-15 International Business Machines Corporation Computer program device and an apparatus for processing of data requests using a queued direct input-output device
US6725226B2 (en) * 1998-04-09 2004-04-20 Hewlett-Packard Development Company, L.P. Computer system using a queuing system and method for managing a queue and heterogeneous data structures
EP1129413B1 (en) * 1999-09-13 2009-01-14 Nxp B.V. Bus arbitration
RU2446439C2 (en) * 2007-05-16 2012-03-27 Сони Корпорейшн System and method for loading content, apparatus and method for providing content, apparatus and method for receiving content

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SU922756A1 (en) * 1980-01-30 1982-04-23 Рижское Высшее Военно-Политическое Краснознаменное Училище Им. Маршала Советского Союза С.С.Бирюзова Device for simulating mass servicing systems
US6725226B2 (en) * 1998-04-09 2004-04-20 Hewlett-Packard Development Company, L.P. Computer system using a queuing system and method for managing a queue and heterogeneous data structures
US6339802B1 (en) * 1999-02-19 2002-01-15 International Business Machines Corporation Computer program device and an apparatus for processing of data requests using a queued direct input-output device
EP1129413B1 (en) * 1999-09-13 2009-01-14 Nxp B.V. Bus arbitration
RU2446439C2 (en) * 2007-05-16 2012-03-27 Сони Корпорейшн System and method for loading content, apparatus and method for providing content, apparatus and method for receiving content

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Переверткин С.М. и др. Бортовая телеметрическая аппаратура летательных аппаратов. - М.: Машиностроение, 1977, с.148-149. *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018147827A1 (en) * 2017-02-07 2018-08-16 Hewlett-Packard Development Company, L.P. Determining cash drawer access

Also Published As

Publication number Publication date
RU2012123494A (en) 2013-12-20

Similar Documents

Publication Publication Date Title
KR101616967B1 (en) Improvements relating to handling and processing of massive numbers of processing instructions in real time
US9577961B2 (en) Input/output management in a distributed strict queue
US10200295B1 (en) Client selection in a distributed strict queue
US9584593B2 (en) Failure management in a distributed strict queue
CN110888893A (en) Order processing method based on micro-service e-commerce system
US9852220B1 (en) Distributed workflow management system
US9571414B2 (en) Multi-tiered processing using a distributed strict queue
CN109063027A (en) A kind of method and device for business processing
US11314545B2 (en) Predicting transaction outcome based on artifacts in a transaction processing environment
US9575820B2 (en) Client control in a distributed strict queue
CN104065636B (en) Data processing method and system
US11978025B2 (en) Method and device for processing virtual cards
CN104899093B (en) Data processing method, device and system
US20150381549A1 (en) Message batching in a distributed strict queue
US20080201712A1 (en) Method and System for Concurrent Message Processing
CN107612950A (en) A kind of method, apparatus, system, electronic equipment that service is provided
CN115439250A (en) Transaction request processing method and device, storage medium and electronic device
JP2019504415A (en) Data storage service processing method and apparatus
US9577878B2 (en) Geographic awareness in a distributed strict queue
RU2510528C2 (en) Request processing system, request processing method and computer-readable medium having request processing instructions
US7673302B1 (en) System and method for managing messages in a queuing system
WO2016001772A1 (en) Synchronizing operations between regions when a network connection fails
CN115756768B (en) Distributed transaction processing method, device, equipment and medium based on saga
US12261778B2 (en) Dynamic computing platform for real-time data container generation, authorization, and throttling management
CN110008010A (en) System call method, device, equipment and readable storage medium storing program for executing

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20150607

NF4A Reinstatement of patent

Effective date: 20171116

PD4A Correction of name of patent owner
PC43 Official registration of the transfer of the exclusive right without contract for inventions

Effective date: 20211116