System and method for processing information via networked computers including request handlers, process handlers, and task handlers
First Claim
Patent Images
1. A system for processing information, the system comprising:
- a plurality of networked computers for processing a plurality of processing jobs in a distributed manner, the plurality of networked computers comprising a request handler, a plurality of process handlers, and a plurality of task handlers, the process handlers being resident on a plurality of different networked computers, the task handlers being resident on a plurality of different networked computers;
wherein the request handler is configured to (1) receive a service request for a processing job, the processing job having an associated process flow, the process flow including (i) a plurality of tasks and (ii) logic configured to define a relationship between the tasks, and (2) store state information for the processing job;
wherein at least one process handler among the plurality of process handlers is configured to volunteer for servicing the processing job based on its availability for servicing the processing job, the at least one process handler thus being a volunteer process handler;
wherein the volunteer process handler is configured to (1) analyze the state information for the processing job to determine whether any tasks in the process flow remain to be performed based on the logic for the process flow, (2) in response to the state information analysis indicating that a task remains for the process flow, identify a task from the process flow to be performed, and (3) in response to the state information analysis indicating that no tasks remain for the process flow, determine that the processing job has been completed;
wherein, for each of a plurality of the identified tasks, at least one task handler among the plurality of task handlers is configured to volunteer for performing that identified task based on it being able to perform that identified task, the at least one task handler thus being a volunteer task handler;
wherein each volunteer task handler is configured to perform an identified task to generate a task result;
wherein the request handler is further configured to store updated state information for the processing job, the updated stored state information being based on the task results; and
wherein the request handler, the process handlers, and the task handlers are configured to repeat their operations with respect to a plurality of service requests for a plurality of processing jobs to provide distributed processing of the processing jobs such that a plurality of the process handlers serve as volunteer process handlers for the processing jobs and a plurality of the task handlers serve as volunteer task handlers for the processing jobs.
3 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods for processing information via networked computers leverage request handlers, process handlers, and task handlers to provide efficient distributed processing of processing jobs. A request handler can receive service requests for processing jobs, process handlers can identify tasks to be performed in connection with the processing jobs, and task handlers can perform the identified tasks, where the request handler, the process handlers, and the task handlers can be distributed across a plurality of networked computers.
-
Citations
100 Claims
-
1. A system for processing information, the system comprising:
-
a plurality of networked computers for processing a plurality of processing jobs in a distributed manner, the plurality of networked computers comprising a request handler, a plurality of process handlers, and a plurality of task handlers, the process handlers being resident on a plurality of different networked computers, the task handlers being resident on a plurality of different networked computers; wherein the request handler is configured to (1) receive a service request for a processing job, the processing job having an associated process flow, the process flow including (i) a plurality of tasks and (ii) logic configured to define a relationship between the tasks, and (2) store state information for the processing job; wherein at least one process handler among the plurality of process handlers is configured to volunteer for servicing the processing job based on its availability for servicing the processing job, the at least one process handler thus being a volunteer process handler; wherein the volunteer process handler is configured to (1) analyze the state information for the processing job to determine whether any tasks in the process flow remain to be performed based on the logic for the process flow, (2) in response to the state information analysis indicating that a task remains for the process flow, identify a task from the process flow to be performed, and (3) in response to the state information analysis indicating that no tasks remain for the process flow, determine that the processing job has been completed; wherein, for each of a plurality of the identified tasks, at least one task handler among the plurality of task handlers is configured to volunteer for performing that identified task based on it being able to perform that identified task, the at least one task handler thus being a volunteer task handler; wherein each volunteer task handler is configured to perform an identified task to generate a task result; wherein the request handler is further configured to store updated state information for the processing job, the updated stored state information being based on the task results; and wherein the request handler, the process handlers, and the task handlers are configured to repeat their operations with respect to a plurality of service requests for a plurality of processing jobs to provide distributed processing of the processing jobs such that a plurality of the process handlers serve as volunteer process handlers for the processing jobs and a plurality of the task handlers serve as volunteer task handlers for the processing jobs. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49)
-
-
50. A method for processing information, the method comprising:
-
receiving a service request for a processing job, the processing job having an associated process flow, the process flow including (1) a plurality of tasks and (2) logic configured to define a relationship between the tasks; and executing the processing job in a distributed manner by a plurality of networked computers and in accordance with the received service request, the plurality of networked computers comprising a request handler, a plurality of process handlers, and a plurality of task handlers, the process handlers being resident on a plurality of different networked computers, the task handlers being resident on a plurality of different networked computers, wherein the executing step comprises; the request handler storing state information for the processing job; at least one process handler among the plurality of process handlers volunteering for servicing the processing job based on its availability for servicing the processing job, the at least one process handler thus being a volunteer process handler; the volunteer process handler (1) analyzing the state information for the processing job to determine whether any tasks in the process flow remain to be performed based on the logic for the process flow, (2) in response to the state information analysis indicating that a task remains for the process flow, identifying a task from the process flow to be performed, and (3) in response to the state information analysis indicating that no tasks remain for the process flow, determining that the processing job has been completed; for each of a plurality of the identified tasks, at least one task handler among the plurality of task handlers volunteering for performing that identified task based on it being able to perform that identified task, the at least one task handler thus being a volunteer task handler; each volunteer task handler performing an identified task to generate a task result; and the request handler storing updated state information for the processing job, the updated stored state information being based on the task results. - View Dependent Claims (51, 52, 53, 54, 55, 56, 57, 58, 59, 60)
-
-
61. A system for processing information, the system comprising:
-
a network comprising a plurality of computing machines, each computing machine comprising a processor, a memory, and a communications interface; wherein the network is configured to provide computing power for processing a plurality of processing jobs in accordance with a plurality of process flows that are associated with those processing jobs, wherein each of a plurality of the process flows comprises (1) a plurality of tasks for that process flow without a specification as to which of the computing machines are to perform the tasks, and (2) logic configured to define a relationship between that process flow'"'"'s tasks; wherein each of a plurality of the computing machines comprises a task handler, wherein each of a plurality of the task handlers is configured to perform any of a plurality of the tasks; wherein at least one of the computing machines comprises a request handler, wherein the request handler is configured to (1) receive a service request corresponding to a processing job having an associated process flow, and (2) store state information for the corresponding processing job; wherein each of a plurality of the computing machines comprises a process handler for servicing a processing job, wherein each of a plurality of the process handlers is configured to (1) analyze the state information for a processing job and the logic for the process flow associated with that processing job to determine whether any tasks remain to be performed for that processing job, (2) in response to the analysis indicating that a task remains for that processing job, identify a task to be performed, and (3) in response to the analysis indicating that no tasks remain for that processing job, determine that that processing job has been completed; and wherein the network is further configured to provide the computing power for processing the processing jobs in a distributed manner via an allocation of the computing machines to the processing jobs on a volunteer basis such that (1) each of a plurality of the process handlers is further configured to volunteer for servicing a processing job based on it being available to service that processing job, and (2) each of a plurality of the task handlers is further configured to volunteer for performing an identified task based on it being able to perform that identified task. - View Dependent Claims (62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90)
-
-
91. A system for processing information, the system comprising:
-
a network comprising a plurality of computing machines, each computing machine comprising a processor, a memory, and a communications interface; wherein the computing machines are arranged to provide a plurality of processing tiers such that the network is configured to provide computing power for processing a plurality of processing jobs via the processing tiers, wherein the processing tiers comprise a first processing tier, a second processing tier, and a third processing tier, wherein each of a plurality of the processing jobs is associated with a process flow, each of a plurality of the process flows comprising (1) a specification of a plurality of tasks for that process flow without a specification as to which of the computing machines are to perform those tasks, and (2) logic that defines a relationship between the tasks of that process flow; wherein the first processing tier comprises a plurality of the computing machines that are configured to (1) receive a plurality of service requests for the processing jobs from a client computer, (2) maintain state information for the processing jobs, and (3) manage interactions with the client computer regarding the processing jobs including communication to the client computer of a plurality of results for the processing jobs; wherein the second processing tier comprises a plurality of the computing machines that are configured to (1) analyze a progress of performance for the processing jobs, and (2) decide which of the tasks for the processing jobs are to be performed based on the analyzed progress and the logic from the process flows for the processing jobs; wherein the third processing tier comprises a plurality of the computing machines that are configured to perform the decided tasks; and wherein the network is further configured to provide the computing power for processing the processing jobs in a distributed manner via an allocation of the computing machines to the processing jobs on a volunteer basis such that (1) a plurality of the second processing tier computing machines are further configured to volunteer for performing their operations for processing jobs based on their being available for those processing jobs, and (2) a plurality of the third processing tier computing machines are further configured to volunteer for performing the decided tasks based on their being able to perform those tasks. - View Dependent Claims (92, 93, 94, 95, 96, 97, 98, 99, 100)
-
Specification