Processing information using a hive of computing engines including request handlers and process handlers
Abstract
A hive of computing engines, typically including clients, request handlers, process handlers, and task handlers, is used to process of a processing job in order to determine a processing result. A client assigns a processing job to a request handler, which assigns the processing job to a processing handler, which typically assigns one or more tasks of the processing job to one or more task handlers. One implementation uses one or more volunteer operations to identify the request handler, the process handler, and/or one or more task handlers. One implementation updates the request handler and/or the process handler with state information related to the partial processing of the processing job such that the completion of the processing job can be assigned to other process and/or task handlers, such as, but not limited to, in response to a detected error condition.
Claims
exact text as granted — not AI-modified1 . A system for processing information, the system comprising: a client configured to cause the processing of a processing job in order to determine a processing result; a plurality of request handlers; a plurality of process handlers; and a plurality of task handlers;
wherein the client is configured to perform operations comprising: (a) sending to each of the plurality of request handlers a client service request message for the processing job; (b) receiving a plurality of responses to said sent client service request message; (c) selecting a particular request handler of the plurality of request handlers based on said received responses to said sent client service request message; and (d) receiving the processing result from the particular request handler; wherein each of the plurality of request handlers is configured to perform operations comprising: (a) sending a client service response message to a received said client service request message for the processing job; and (b) if selected by the client to be the particular request handler to handle the processing job: (1) querying the plurality of process handlers to determine a particular process handler of the plurality of process handlers to service the processing job based on a received plurality of responses from different process handlers, including the particular process handler, of the plurality of process handlers; (3) receiving the processing result from the particular process handler; and (4) forwarding said processing result to the client; wherein each of the plurality of process handlers is configured to perform operations comprising: (a) responding to said query from the particular request handler; and (b) if identified as the particular process handler by the particular request handler: (1) assigning one or more tasks of the processing job to a particular task handler of the plurality of task handlers; (2) receiving one or more task results from the particular task handler; and (3) communicating the processing result identified based on said one or more task results to the particular request handler; and wherein the particular task handler is configured to perform operations comprising: processing one or more tasks identified in the processing job in order to determine said one or more task results; and communicating said one or more task results to the particular process handler.
2 . The system of claim 1 , wherein the particular process handler is configured to perform operations including: sending a task request to each of the plurality of task handlers; receiving one or more responses to said task requests including receiving a response from the particular task handler; and selecting the particular task handler based on said on said one or more response to said task requests; and wherein each of the plurality of task handlers are configured to perform operations including responding to the task request received from the particular process handler.
3 . The system of claim 2 , wherein less than all of the plurality of task handlers is permitted to process the processing job; wherein said task handlers not permitted to process the processing job are configured to not to send a task response message in response to said task request messages corresponding to the processing job received from the particular process handler.
4 . The system of claim 1 , wherein the particular task handler is configured to perform operations including updating the particular process handler with state information pertaining to partial processing of the processing job;
wherein the particular process handler is configured to perform operations including: receiving said state information pertaining to the partial processing of the processing job; updating a data structure with said state information; updating the particular request handler with state information pertaining to partial processing of the processing job; and in response to a detected error condition, assigning the processing of the processing job to identify the processing result starting from a partial processing state identified from said state information to one of the plurality of task handlers different from the particular task handler. wherein the particular request handler is configured to perform operations including: receiving said state information pertaining to the partial processing of the processing job; updating a data structure with said state information; and in response to a detected error condition, assigning the processing of the processing job to identify the processing result starting from a partial processing state identified from said state information to one of the plurality of process handlers different from the particular process handler.
5 . The system of claim 1 , where the processing job includes a reference or identification of a process flow, the process flow identifies a plurality of processing sets, each of the plurality of processing sets identifying a beginning state, a task, and one or more ending states.
6 . The system of claim 5 , wherein the particular process handler is configured to perform operations including updating the particular request handler with state information pertaining to partial processing of the processing job at the completion of each of one or more of the plurality of processing sets; and
wherein the particular request handler is configured to perform operations including: receiving said state information pertaining to the partial processing of the processing job; updating a data structure with said state information; and in response to a detected error condition, assigning the processing of the processing job to identify the processing result starting from a partial processing state identified from said state information to one of the plurality of process handlers different from the particular process handler.
7 . The system of claim 1 , where the processing job includes a reference or identification of a process flow;
wherein the particular process handler is configured to perform operations including updating the particular request handler with state information pertaining to partial processing of the processing job at one or more points identified by the process flow; and wherein the particular request handler is configured to perform operations including: receiving said state information pertaining to the partial processing of the processing job; updating a data structure with said state information; and in response to a detected error condition, assigning the processing of the processing job to identify the processing result starting from a partial processing state identified from said state information to one of the plurality of process handlers different from the particular process handler.
8 . The system of claim 1 , wherein the particular process handler is configured to perform operations including updating the particular request handler with state information pertaining to partial processing of the processing job at a plurality of different intermediate processing points; and
wherein the particular request handler is configured to perform operations including: receiving said state information pertaining to the partial processing of the processing job; updating a data structure with said state information; and in response to a detected error condition, assigning the processing of the processing job to identify the processing result starting from a partial processing state identified from said state information to one of the plurality of process handlers different from the particular process handler.
9 . The system of claim 1 , including a plurality of computing devices, wherein each of the plurality of computing devices includes a different one of said plurality of process handlers, and each of said plurality of request handlers is included in a different one of the plurality of computing devices.
10 . A networked system for processing information, the system comprising:
a client computer including a client; and a plurality of computers, including a plurality of request handlers, a plurality of process handlers and a plurality of task handlers such that each of the plurality of computers includes one or more handlers from a group consisting of: a request handler of the plurality of request handlers, a process handler of the plurality of process handlers, and a task handler of the plurality of task handlers; wherein each of the plurality of request handlers is configured to: send a response to a client service request received from the client if it determines it is available to handle a processing job corresponding to said client service request received from the client for the processing job, and if identified by the client as the selected request handler to handle the processing job: to send one or more query messages to the plurality of process handlers, to receive responses from said process handlers; to select among said received responses to identify and assign a particular process handler to service the processing job, to receive a processing result from the particular process handler, and to send a result corresponding to the processing result to the client; wherein each of the plurality of process handlers is configured to: respond to said one or more query messages if it is available to handle the processing job; and if identified as the particular process handler by the particular request handler: to assign one or more tasks of the processing job to one or more particular task handlers of the plurality of task handlers; to identify the processing result based on processing results of said one or more tasks of the processing job by said one or more particular task handlers; and to communicate the processing result to the particular request handler; wherein each of said one or more particular task handlers is configured to process one or more of said one or more tasks assigned to it to determine one or more task results; and to communicate said one or more task results to the particular process handler; and wherein the client is configured to: receive a plurality of said responses to the client service request; to select the selected request handler based on said received responses to the client service request; and to receive the processing result from the selected request handler.
11 . The networked system of claim 10 , wherein at least one of said one or more particular task handlers is selected by the particular process handler based on a limited number of tasks on one or more of the plurality of computers.
12 . The networked system of claim 10 , wherein the particular process handler requests a volunteer task handler from the plurality of task handlers, receives a plurality of responses from a plurality of the plurality of task handlers; and selects said one or more particular task handlers based on the plurality of responses; and wherein each of the plurality of task handlers are configured to volunteer to the particular process handler in response to said volunteer task handler request if the task handler is available to process the processing job.
13 . The networked system of claim 12 , wherein at least one of said one or more particular task handlers is selected by the particular process handler based on a limited number of tasks on one or more of the plurality of computers.
14 . The networked system of claim 12 , wherein each of said one or more particular task handlers is configured to respond to said volunteer task handler request only if it is available based on a number of other processing jobs being performed on the computer of the plurality of computers on which it resides.
15 . The networked system of claim 12 , wherein said volunteer task handler request relates to accessing a particular resource with a restricted access; and wherein each of said one or more particular task handlers is configured to respond to said volunteer task handler request only if it is available to access the particular resource in light of the restricted access to the particular resource.
16 . A method for processing information in a networked hive of computing engines, the method comprising:
each of a plurality of request handlers receiving a client service request message for a particular job from a client; a plurality of the plurality of request handlers responding to the client request message by sending a response message to the client; a selected request handler of said request handlers said responding to client request message receiving instructions from the client to process the job, wherein the client is external to the computing engine on which the selected request handler resides; the selected request handler sending a processing request message for the particular job to a plurality of process handlers; a plurality of the plurality of process handlers responding to the processing request message by sending a response message to the selected request handler; the selected request handler selecting a selected process handler from said process handlers said responding to the processing request message and assigning the particular job to the selected process handler; the selected process handler, in response to said assignment by the selected request handler, assigning the processing job to a particular task handler of a plurality of task handlers; the particular task handler performing one or more tasks of the particular the job to generate a processing result, and sending the processing result to the selected process handler; the selected process handler, in response to receiving the processing result, sending the processing result to the selected request handler; and the selected request handler, in response to receiving the processing result, sending the processing result to the client; and wherein the selected request handler and the selected process handler are on different computing engines.
17 . The method of claim 16 , wherein the particular task handler is on the same computing engine as the selected process handler.
18 . The method of claim 16 , wherein the particular task handler is on a different computing engine than the selected process handler.
19 . The method of claim 16 , wherein the particular task handler is on a different computing engine than the selected process handler and on a different computing engine than the selected request handler.
20 . The method of claim 16 , comprising: the selected process handler performing a volunteer operation to select the particular task handler based on received responses from a plurality of the plurality of task handlers including the particular task handler.
21 . A system for processing information, the system comprising:
a request region including a plurality of request handlers, each of said request handlers being a separate process; and a plurality of processing regions, each of the plurality of processing regions including a plurality of process handlers, each of the process handlers being a separate process; wherein each of the plurality of request handlers is configured to send a response if it determines it is available to handle a processing job identified in a client service request received from a client for the processing job, and if identified by the client to handle the processing job: to send one or more query messages to one or more of the processing regions, to receive responses from said processing regions; and to select among said received responses to identify and assign a particular process handler to service the processing job, and to receive a processing result from the particular process handler; wherein each of the process handlers within said one or more of the processing regions is configured to respond to one of said one or more query messages if it is available to handle the processing job, and if identified as the particular process handler by the particular process handler to assign the processing job to one or more task handlers to determine the processing result and to receive the processing result, and to communicate the processing result to said identified request handler; wherein the client is configured to receive a plurality of said responses from the client service request, and to receive the processing result from the particular process handler; and wherein said operation of being identified by the client to handle the processing job includes the client selecting the particular process handler based on said received responses to the client service request.
22 . The system of claim 21 , wherein the plurality of process handlers are different processes than the plurality of request handlers.
23 . A system for processing information, the system comprising:
a plurality of request handlers, each of said request handlers being a separate process; and a plurality of process handlers, each of the process handlers being a separate process; wherein each of the plurality of request handlers is configured to send a response to a client service request received from a client if it determines it is available to handle a processing job identified in said client service request received from the client for the processing job, and if identified by the client to handle the processing job: to send one or more query messages to the plurality of process handlers, to receive responses from said process handlers; and to select among said received responses to identify and assign a particular process handler to service the processing job, to receive a processing result from the particular process handler, and to send the processing result to the client; wherein each of the process handlers is configured to respond to said one or more query messages if it is available to handle the processing job, and if identified as the particular process handler by the particular process handler: to assign the processing job to one or more task handlers to determine the processing result and to receive the processing result, and to communicate the processing result to said identified request handler; and wherein the client is configured to receive a plurality of said responses from the client service request, to select the particular process handler based on said received responses from the client service request, and to receive the processing result from said the particular process handler assigned to service the processing job.
24 . The system of claim 23 , wherein the plurality of process handlers are different processes than the plurality of request handlers.
25 . A method for processing information in a networked hive of computing engines, the method comprising:
a request handler of a plurality of request handlers receiving instructions from a client to process the particular job, wherein the client is external to the computing engine on which the request handler resides; the request handler sending a processing request message for the particular job to a plurality of process handlers; a plurality of the plurality of process handlers responding to the processing request message by sending a response message to the request handler; the request handler selecting a selected process handler from said process handlers said responding to the processing request message and assigning the particular job to the selected process handler; the selected process handler, in response to said assignment by the request handler, assigning the processing job to a particular task handler of a plurality of task handlers; the particular task handler performing one or more tasks of the particular the job to generate a processing result, and sending the processing result to the selected process handler; the selected process handler, in response to receiving the processing result, sending the processing result to the request handler; and the request handler, in response to receiving the processing result, sending the processing result to the client; wherein the request handler and the selected process handler are on different computing engines.
26 . The method of claim 25 , wherein the particular task handler is on the same computing engine as the selected process handler.
27 . The method of claim 25 , wherein the particular task handler is on a different computing engine than the selected process handler.
28 . The method of claim 25 , wherein the particular task handler is on a different computing engine than the selected process handler and on a different computing engine than the request handler.
29 . The method of claim 25 , comprising: the selected process handler performing a volunteer operation to select the particular task handler based on received responses from a plurality of the plurality of task handlers including the particular task handler.
30 . A system for processing information, the system comprising: a client configured to cause the processing of a processing job in order to determine a processing result; a plurality of request handlers; a plurality of process handlers; and a plurality of task handlers;
wherein the client is configured to perform operations comprising: sending a message assigning the processing job to a particular request handler of the plurality of request handlers; and receiving the processing result from the particular request handler; wherein each of the plurality of request handlers is configured to perform operations comprising: in response to receiving the processing assignment, sending a message assigning the processing job to a particular process handler of the plurality of process handlers; receiving the processing result from one of the plurality of process handlers; and forwarding said processing result to the client; wherein each of the plurality of process handlers is configured to perform operations comprising: in response to receiving a processing assignment of the processing job, assigning one or more tasks of the processing job to one or more task handlers of the plurality of task handlers; receiving state information pertaining to the partial processing of said one or more tasks of the processing job and one or more task results for the completion of the processing of said one or more tasks from said one or more of the plurality of task handlers; updating the particular request handler with said received state information pertaining to partial processing of the processing job; and communicating the processing result identified based on said one or more task results to the particular request handler; wherein each of the plurality of task handlers is configured to perform one or more tasks assigned to it by an identifiable process handler of the plurality of process handlers and to communicate to the identifiable process handler state information pertaining to the partial processing of said one or more tasks of the processing job or one or more task results for the completion of the processing of said one or more tasks, or both said state information and said task results; and wherein the particular process handler is configured to perform operations including: receiving said state information; and in response to a detected error condition, assigning the processing of the processing job to identify the processing result starting from a partial processing state identified from said received state information to one of the plurality of process handlers different from the particular process handler.
31 . The system of claim 30 , wherein the particular process handler is configured to perform operations including: updating the particular request handler with said received state information pertaining to partial processing of the processing job; and
wherein the particular request handler is configured to perform operations including: receiving said state information pertaining to the partial processing of the processing job; and in response to a detected error condition, assigning the processing of the processing job to identify the processing result starting from a partial processing state identified from said received state information to one of the plurality of process handlers different from the particular process handler.
32 . A system for processing information, the system comprising: a client configured to initiate the processing of a processing job in order to determine a processing result; a plurality of request handlers; a plurality of process handlers; and a plurality of task handlers; where the processing job includes a reference or identification of a process flow, the process flow identifies a plurality of processing sets, each of the plurality of processing sets identifying a beginning state, a task, and one or more ending states;
wherein the client is configured to perform operations comprising: sending a message assigning the processing job to a particular request handler of the plurality of request handlers; and receiving the processing result from the particular request handler; wherein each of the plurality of request handlers is configured to perform operations comprising: in response to receiving the processing assignment, sending a message assigning the processing job to a particular process handler of the plurality of process handlers; receiving the processing result from one of the plurality of process handlers; and forwarding said processing result to the client; wherein each of the plurality of process handlers is configured to perform operations comprising: in response to receiving a processing assignment of the processing job, assigning one or more tasks of the processing job to one or more task handlers of the plurality of task handlers; receiving state information pertaining to the partial processing of said one or more tasks of the processing job and one or more task results for the completion of the processing of said one or more tasks from said one or more of the plurality of task handlers; updating the particular request handler with said received state information pertaining to partial processing of the processing job; and communicating the processing result identified based on said one or more task results to the particular request handler; wherein each of the plurality of task handlers is configured to perform one or more tasks assigned to it by an identifiable process handler of the plurality of process handlers and to communicate, at the completion of each of one or more of the plurality of processing sets, to the identifiable process handler state information pertaining to the partial processing of said one or more tasks of the processing job or one or more task results for the completion of the processing of said one or more tasks, or both said state information and said task results; and wherein the particular process handler is configured to perform operations including: receiving said state information; and in response to a detected error condition, assigning the processing of the processing job to identify the processing result starting from a partial processing state identified from said received state information to one of the plurality of process handlers different from the particular process handler.
33 . The system of claim 32 , wherein the particular process handler is configured to perform operations including: updating the particular request handler with said received state information pertaining to partial processing of the processing job; and
wherein the particular request handler is configured to perform operations including: receiving said state information pertaining to the partial processing of the processing job; and in response to a detected error condition, assigning the processing of the processing job to identify the processing result starting from a partial processing state identified from said received state information to one of the plurality of process handlers different from the particular process handler.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.