# US 2014/0156722 A1 · System and Method for Processing Information Via Networked Computers Including Request Handlers, Process Handlers, and Task Handlers

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2014/0156722 A1
- Document ID: US20140156722A1
- Status: Published application
- Kind: A1
- Application number: 14/176,378
- Filed: 2014-02-10
- Published: 2014-06-05
- Earliest claimed: 2002-09-07
- Assignees: Appistry, Inc.
- Applicants: Appistry, Inc.
- Inventors: Aaron Louis Hinni; Guerry Anderson Semones; Michael Scott Groner; Roberto Raul Lozano
- Web page: https://patentgrep.com/patent/US20140156722A1

## CPC

- H04L 69/163: In-band adaptation of TCP data exchange; In-band control procedures
- H04L 41/046: comprising network management agents or mobile agents therefor
- H04L 67/10: in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46)
- H04L 67/51: Discovery or management thereof, e.g. service location protocol [SLP] or web services
- H04L 69/16: Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## 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.

## Claims

### Claim 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, the processing jobs having a plurality of associated process flows, the process flows including (1) a plurality of processing tasks and (2) logic configured to define a relationship between the processing tasks of the same process flow;
the request handler configured to (1) receive a plurality of service requests for the processing jobs, (2) store state information for the processing jobs, and (3) communicate data relating to the processing jobs to a plurality of the process handlers;
the process handlers to which the data relating to the processing jobs were communicated being configured to (1) analyze the state information for the processing jobs to determine whether any processing tasks in the process flows remain to be performed based on the logic for the process flows, (2) in response to the state information analysis indicating that a processing task remains for the process flow of a processing job, identify a processing task to be performed for the process flow having the remaining processing task, and (3) in response to the state information analysis indicating that no processing tasks remain for the process flow of a processing job, determine that the processing job corresponding to the process flow with no remaining processing tasks has been completed; and
the task handlers configured to perform the identified processing tasks to generate a plurality of task results; and
wherein the request handler is further configured to store updated state information for the processing jobs, the updated stored state information being based on the task results.

### Claim 2 (depends on 1)

The system of claim 1 wherein the process handlers are further configured to volunteer for servicing the processing jobs based on their availabilities for servicing the processing jobs.

### Claim 3 (depends on 2)

The system of claim 2 wherein the request handler is further configured to (1) select the process handlers for servicing the processing jobs from among the process handlers that volunteered for same, and (2) communicate the data relating the processing jobs to the selected process handlers.

### Claim 4 (depends on 3)

The system of claim 3 wherein the selected process handlers are further configured to communicate a plurality of task requests for the identified processing tasks to a plurality of the task handlers;
wherein the tasks handlers to which the task requests were communicated are further configured to volunteer for performing the identified tasks corresponding to the task requests based on their being able to perform the identified tasks corresponding to the task requests; and
wherein the selected process handlers are further configured to select the task handlers for performing the identified tasks corresponding to the task requests from among the task handlers that volunteered for same.

### Claim 5 (depends on 3)

The system of claim 3 wherein the task handlers are further configured to communicate updated state information for the processing jobs following completion of their identified processing tasks to the selected process handlers.

### Claim 6 (depends on 5)

The system of claim 5 wherein the selected process handlers are further configured to communicate updated state information for the processing jobs to the request handler.

### Claim 7 (depends on 2)

The system of claim 2 wherein the request handler is further configured to communicate a plurality of processing requests for the processing jobs to a plurality of the process handlers;
wherein the process handlers to which the processing requests were communicated are further configured to volunteer for servicing the processing jobs corresponding to the processing requests based on their availabilities for servicing the processing jobs corresponding to the processing requests; and
wherein the request handler is further configured to (1) select the process handlers for servicing the processing jobs corresponding to the processing requests from among the process handlers that volunteered for same, and (2) communicate the data relating to the processing jobs to the selected process handlers.

### Claim 8 (depends on 1)

The system of claim 1 wherein the task handlers are further configured to volunteer for performing the identified tasks based on their being able to perform the identified tasks.

### Claim 9 (depends on 8)

The system of claim 8 wherein a plurality of the networked computers on which a plurality of the task handlers reside have different resources; and
wherein a plurality of the task handlers are further configured to volunteer for performing the identified tasks as a function of the resources of the networked computers on which the plurality of task handers are resident.

### Claim 10 (depends on 9)

The system of claim 9 wherein the different resources comprise different specialized hardware.

### Claim 11 (depends on 8)

The system of claim 8 wherein a plurality of the networked computers on which a plurality of the task handlers are resident are grouped into a plurality of territories, and wherein the system is configured to assign at least one of the identified tasks to a task handler based at least in part on territory considerations.

### Claim 12 (depends on 11)

The system of claim 11 wherein a plurality of the networked computers have an associated physical location, and wherein the plurality of the networked computers having an associated physical location are grouped into the territories based on their associated physical locations such that each territory comprises a plurality of networked computers having an associated physical location within that territory.

### Claim 13 (depends on 1)

The system of claim 1 wherein a plurality of the networked computers on which a plurality of the task handlers reside have different resources; and
wherein the system is configured to assign a plurality of the identified tasks to a plurality of the task handlers based at least in part on the resources of the networked computers on which the plurality of task handers are resident.

### Claim 14 (depends on 13)

The system of claim 13 wherein the system is further configured to assign at least one of the identified tasks to a task handler to a task handler in order to limit a number of accesses to a database engine that will be needed to perform the at least one assigned task.

### Claim 15 (depends on 13)

The system of claim 13 wherein the system is further configured to assign at least one of the identified tasks to a task handler in order to limit a rate of access to a database engine that will be needed to perform the at least one assigned task.

### Claim 16 (depends on 13)

The system of claim 13 wherein the system is further configured to assign at least one of the identified tasks to a task handler in order to limit a number of accesses to a storage device that will be needed to perform the at least one assigned task.

### Claim 17 (depends on 13)

The system of claim 13 wherein the system is further configured to assign at least one of the identified tasks to a task handler in order to limit a rate of access to a storage device that will be needed to perform the at least one assigned task.

### Claim 18 (depends on 13)

The system of claim 13 wherein the different resources comprise different specialized hardware.

### Claim 19 (depends on 13)

The system of claim 13 wherein the assigned tasks comprise limited tasks.

### Claim 20 (depends on 13)

The system of claim 13 wherein at least one of the networked computers is further configured to select a task handler to which an identified task will be assigned from among a plurality of the task handlers based at least in part on the resources of the networked computers on which the a plurality of the task handers are resident.

### Claim 21 (depends on 20)

The system of claim 20 wherein the at least one networked computer comprises a process handler to which data relating to a processing job was communicated.

### Claim 22 (depends on 21)

The system of claim 21 wherein the at least one of the networked computers has a process handler and a task handler resident therein.

### Claim 23 (depends on 13)

The system of claim 13 wherein at least one of the networked computers is further configured to select a task handler to which an identified task will be assigned from among a plurality of the task handlers based at least in part on load balancing considerations.

### Claim 24 (depends on 1)

The system of claim 1 wherein a plurality of the networked computers on which a plurality of the task handlers are resident are grouped into a plurality of territories, and wherein the system is configured to assign at least one of the identified tasks to a task handler based at least in part on territory considerations.

### Claim 25 (depends on 24)

The system of claim 24 wherein a plurality of the networked computers have an associated physical location, and wherein the plurality of the networked computers having an associated physical location are grouped into the territories based on their associated physical locations such that each territory comprises a plurality of networked computers having an associated physical location within that territory.

### Claim 26 (depends on 1)

The system of claim 1 wherein the request handler is further configured to (1) receive at least one of the service requests from a client computer, and (2) communicate a processing result for the processing job corresponding to the at least one service request to the client computer.

### Claim 27 (depends on 26)

The system of claim 26 further comprising the client computer, the client computer in communication via a network with the networked computer on which the request handler is resident.

### Claim 28 (depends on 1)

The system of claim 1 wherein the request handler is resident on a first of the networked computers, wherein at least one of the process handlers is resident on a second of the networked computers, and wherein at least one of the task handlers is resident on a third of the networked computers.

### Claim 29 (depends on 1)

The system of claim 1 wherein the request handler and at least one of the process handlers are resident on the same one of the networked computers.

### Claim 30 (depends on 1)

The system of claim 1 wherein the request handler is resident on a different one of the networked computers than the networked computers on which the process handlers and task handlers are resident.

### Claim 31 (depends on 30)

The system of claim 30 wherein the process handlers are resident on different ones of the networked computers than the networked computers on which the task handlers are resident.

### Claim 32 (depends on 1)

The system of claim 1 wherein at least one of the process handlers and at least one of the task handlers are resident on the same one of the networked computers, the at least one task handler being on a different thread of the networked computer than the at least one process handler.

### Claim 33 (depends on 1)

The system of claim 1 wherein the logic for a process flow comprises (1) a plurality of state variables before and after each processing task of that process flow, the state variables configured to store the state information, and (2) a plurality of transitions from state to state based on results for the processing tasks of that process flow.

### Claim 34 (depends on 33)

The system of claim 33 wherein the networked computers are configured to process the processing jobs according to a plurality of process definition files corresponding to the processing jobs, each process definition file being configured to define the process flow for a processing job.

### Claim 35 (depends on 1)

The system of claim 1 wherein at least one of the process flows further includes a recovery procedure for the processing tasks of the at least one process flow.

### Claim 36 (depends on 1)

The system of claim 1 wherein the task results include updated state information for the processing jobs; and
wherein the request handler is further configured to store the updated state information based on the updated state information included in the task results.

### Claim 37

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 processing tasks and (2) logic configured to define a relationship between the processing tasks of the process flow; 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;
the request handler communicating data for the processing job to a process handler;
the process handler to which the data for the processing job was communicated (1) analyzing the state information for the processing job to determine whether any processing task in the process flow remains to be performed based on the logic for the process flow, (2) in response to the state information analysis indicating that a processing task remains for the process flow, identifying a processing task to be performed, and (3) in response to the state information analysis indicating that no processing task remains for the process flow, determining that the processing job has been completed;
the task handlers performing the identified processing tasks to generate a plurality of task results; and
updating the stored state information based on the task results.

### Claim 38 (depends on 37)

The method of claim 37 wherein the executing step further comprises:
the task handlers volunteering to perform the identified tasks based on their being able to perform the identified tasks.

### Claim 39 (depends on 38)

The method of claim 38 wherein the executing step further comprises:
the process handler to which the data for the processing job was communicated selecting the task handlers for performing the identified tasks in response to the volunteering.

### Claim 40 (depends on 37)

The method of claim 37 wherein the receiving step comprises receiving a plurality of service requests for a plurality of the processing jobs;
wherein the executing step further comprises the networked computers executing the processing jobs in a distributed manner in accordance with the received service requests; and
wherein the executing step further comprises the process handlers volunteering for servicing the processing jobs based on their availabilities for servicing the processing jobs.

### Claim 41

A method for processing information, the method comprising:
receiving a plurality of service requests for a plurality of processing jobs, the processing jobs having a plurality of associated process flows, the process flows including (1) a plurality of processing tasks and (2) logic configured to define a relationship between the processing tasks of the same process flow; and
executing the processing jobs in a distributed manner by a plurality of networked computers and in accordance with the received service requests, 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 jobs;
the request handler communicating data relating to the processing jobs to a plurality of the process handlers;
the process handlers to which the data relating to the processing jobs were communicated (1) analyzing the state information for the processing jobs to determine whether any processing tasks in the process flows remain to be performed based on the logic for the process flows, (2) in response to the state information analysis indicating that a processing task remains for the process flow of a processing job, identifying a processing task to be performed for the process flow having the remaining processing task, and (3) in response to the state information analysis indicating that no processing tasks remain for the process flow of a processing job, determining that the processing job corresponding to the process flow with no remaining processing tasks has been completed;
the task handlers performing the identified processing tasks to generate a plurality of task results; and
updating the stored state information based on the task results.

### Claim 42 (depends on 41)

The method of claim 41 wherein the executing step further comprises:
the process handlers volunteering for servicing the processing jobs based on their availabilities for servicing the processing jobs.

### Claim 43 (depends on 42)

The method of claim 42 wherein the executing step further comprises:
the request handler (1) selecting the process handlers for servicing the processing jobs from among the process handlers that volunteered for same, and (2) communicating the data relating the processing jobs to the selected process handlers.

### Claim 44 (depends on 43)

The method of claim 43 wherein the executing step further comprises:
the selected process handlers communicating a plurality of task requests for the identified processing tasks to a plurality of the task handlers;
the tasks handlers to which the task requests were communicated volunteering for performing the identified tasks corresponding to the task requests based on their being able to perform the identified tasks corresponding to the task requests; and
the selected process handlers selecting the task handlers for performing the identified tasks corresponding to the task requests from among the task handlers that volunteered for same.

### Claim 45 (depends on 43)

The method of claim 43 wherein the executing step further comprises:
the task handlers communicating updated state information for the processing jobs following completion of their identified processing tasks to the selected process handlers.

### Claim 46 (depends on 45)

The method of claim 45 wherein the executing step further comprises:
the selected process handlers communicating updated state information for the processing jobs to the request handler.

### Claim 47 (depends on 42)

The method of claim 42 wherein the executing step further comprises:
the request handler communicating a plurality of processing requests for the processing jobs to a plurality of the process handlers;
the process handlers to which the processing requests were communicated volunteering for servicing the processing jobs corresponding to the processing requests based on their availabilities for servicing the processing jobs corresponding to the processing requests; and
the request handler (1) selecting the process handlers for servicing the processing jobs corresponding to the processing requests from among the process handlers that volunteered for same, and (2) communicating the data relating to the processing jobs to the selected process handlers.

### Claim 48 (depends on 41)

The method of claim 41 wherein the executing step further comprises:
the task handlers volunteering for performing the identified tasks based on their being able to perform the identified tasks.

### Claim 49 (depends on 48)

The method of claim 48 wherein a plurality of the networked computers on which a plurality of the task handlers reside have different resources; and wherein the executing step further comprises:
a plurality of the task handlers volunteering for performing the identified tasks as a function of the resources of the networked computers on which the plurality of task handers are resident.

### Claim 50 (depends on 49)

The method of claim 49 wherein the different resources comprise different specialized hardware.

### Claim 51 (depends on 48)

The method of claim 48 wherein a plurality of the networked computers on which a plurality of the task handlers are resident are grouped into a plurality of territories, and wherein the executing step further comprises:
assigning at least one of the identified tasks to a task handler based at least in part on territory considerations.

### Claim 52 (depends on 51)

The method of claim 51 wherein a plurality of the networked computers have an associated physical location, and wherein the plurality of the networked computers having an associated physical location are grouped into the territories based on their associated physical locations such that each territory comprises a plurality of networked computers having an associated physical location within that territory.

### Claim 53 (depends on 41)

The method of claim 41 wherein a plurality of the networked computers on which a plurality of the task handlers reside have different resources, and wherein the executing step further comprises:
assigning a plurality of the identified tasks to a plurality of the task handlers based at least in part on the resources of the networked computers on which the plurality of task handers are resident.

### Claim 54 (depends on 53)

The method of claim 53 wherein the assigning step further comprises:
assigning at least one of the identified tasks to a task handler in order to limit a number of accesses to a database engine that will be needed to perform the at least one assigned task.

### Claim 55 (depends on 53)

The method of claim 53 wherein the assigning step further comprises:
assigning at least one of the assigned tasks to a task handler in order to limit a rate of access to a database engine that will be needed to perform the at least one assigned task.

### Claim 56 (depends on 53)

The method of claim 53 wherein the assigning step further comprises:
assigning at least one of the assigned tasks to a task handler in order to limit a number of accesses to a storage device that will be needed to perform the at least one assigned task.

### Claim 57 (depends on 53)

The method of claim 53 wherein the assigning step further comprises:
assigning at least one of the assigned tasks to a task handler in order to limit a rate of access to a storage device that will be needed to perform the at least one assigned task.

### Claim 58 (depends on 53)

The method of claim 53 wherein the different resources comprise different specialized hardware.

### Claim 59 (depends on 53)

The method of claim 53 wherein the assigned tasks comprise limited tasks.

### Claim 60 (depends on 53)

The method of claim 53 wherein the executing step further comprises:
selecting a task handler to which an identified task will be assigned from among a plurality of the task handlers based at least in part on the resources of the networked computers on which the a plurality of the task handers are resident.

### Claim 61 (depends on 60)

The method of claim 60 wherein the task handler selecting step comprises a process handler to which data relating to a processing job was communicated selecting the task handler to which an identified task will be assigned from among a plurality of the task handlers based at least in part on the resources of the networked computers on which the a plurality of the task handers are resident.

### Claim 62 (depends on 61)

The method of claim 61 wherein the at least one of the networked computers has a process handler and a task handler resident therein.

### Claim 63 (depends on 53)

The method of claim 53 wherein the executing step further comprises:
selecting a task handler to which an identified task will be assigned from among a plurality of the task handlers based at least in part on load balancing considerations.

### Claim 64 (depends on 41)

The method of claim 41 wherein a plurality of the networked computers on which a plurality of the task handlers are resident are grouped into a plurality of territories, and wherein the executing step further comprises:
assigning at least one of the identified tasks to a task handler based at least in part on territory considerations.

### Claim 65 (depends on 64)

The method of claim 64 wherein a plurality of the networked computers have an associated physical location, and wherein the plurality of the networked computers having an associated physical location are grouped into the territories based on their associated physical locations such that each territory comprises a plurality of networked computers having an associated physical location within that territory.

### Claim 66 (depends on 41)

The method of claim 41 wherein the executing step further comprises:
the request handler (1) receiving at least one of the service requests from a client computer, and (2) communicating a processing result for the processing job corresponding to the at least one service request to the client computer.

### Claim 67 (depends on 66)

The method of claim 66 further comprising the client computer communicating via a network with the networked computer on which the request handler is resident.

### Claim 68 (depends on 41)

The method of claim 41 wherein the request handler is resident on a first of the networked computers, wherein at least one of the process handlers is resident on a second of the networked computers, and wherein at least one of the task handlers is resident on a third of the networked computers.

### Claim 69 (depends on 41)

The method of claim 41 wherein the request handler and at least one of the process handlers are resident on the same one of the networked computers.

### Claim 70 (depends on 41)

The method of claim 41 wherein the request handler is resident on a different one of the networked computers than the networked computers on which the process handlers and task handlers are resident.

### Claim 71 (depends on 70)

The method of claim 70 wherein the process handlers are resident on different ones of the networked computers than the networked computers on which the task handlers are resident.

### Claim 72 (depends on 41)

The method of claim 41 wherein at least one of the process handlers and at least one of the task handlers are resident on the same one of the networked computers, the at least one task handler being on a different thread of the networked computer than the at least one process handler.

### Claim 73 (depends on 41)

The method of claim 41 wherein the logic for a process flow comprises (1) a plurality of state variables before and after each processing task of that process flow, the state variables configured to store the state information, and (2) a plurality of transitions from state to state based on results for the processing tasks of that process flow.

### Claim 74 (depends on 73)

The method of claim 73 wherein the executing step further comprises:
the networked computers processing the processing jobs according to a plurality of process definition files corresponding to the processing jobs, each process definition file defining the process flow for a processing job.

### Claim 75 (depends on 41)

The method of claim 41 wherein at least one of the process flows further includes a recovery procedure for the processing tasks of the at least one process flow.

### Claim 76 (depends on 41)

The method of claim 41 wherein the task results include updated state information for the processing jobs; and
wherein the updating step comprises the request handler storing the updated state information based on the updated state information included in the task results.

### Claim 77

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, the processing jobs having a plurality of associated process flows, the process flows including (1) a plurality of processing tasks and (2) logic configured to define a relationship between the processing tasks of the same process flow;
wherein the request handler is configured to (1) receive a plurality of service requests for the processing jobs, and (2) store state information for the processing jobs;
wherein the process handlers are configured to volunteer for servicing the processing jobs based on their availabilities;
wherein the request handler is further configured to communicate data relating to the processing jobs to a plurality of the process handlers that volunteered;
wherein the process handlers to which the data relating to the processing jobs were communicated are configured to (1) analyze the state information for the processing jobs to determine whether any processing tasks in the process flows remain to be performed based on the logic for the process flows, (2) in response to the state information analysis indicating that a processing task remains for the process flow of a processing job, identify a processing task to be performed for the process flow having the remaining processing task, and (3) in response to the state information analysis indicating that no processing tasks remain for the process flow of a processing job, determine that the processing job corresponding to the process flow with no remaining processing tasks has been completed;
wherein the task handlers are configured to volunteer for performing tasks based on their availabilities;
wherein a plurality of the task handlers that volunteered are configured to perform the identified processing tasks to generate a plurality of task results; and
wherein the request handler is further configured to store updated state information for the processing jobs, the updated stored state information being based on the task results.

### Claim 78 (depends on 77)

The system of claim 77 wherein the request handler is further configured to communicate a plurality of processing requests for the processing jobs to a plurality of the process handlers;
wherein the process handlers to which the processing requests were communicated are configured to volunteer for servicing the processing jobs based on their availabilities in response to the processing requests;
wherein a plurality of the process handlers are further configured to communicate a plurality of task requests for the identified tasks to a plurality of the task handlers; and
wherein the task handlers to which the task requests were communicated are configured to volunteer for performing the identified tasks based on their availabilities.

### Claim 79 (depends on 78)

The system of claim 78 wherein the request handler is further configured to select the process handlers for servicing the processing jobs from among the volunteering process handlers; and wherein the process handlers are further configured to select the task handlers for performing the identified tasks from among the volunteering task handlers.
