Dynamic Routing and Load Balancing Packet Distribution with a Software Factory
First Claim
Patent Images
1. A computer-implemented method for dynamically routing and load balancing packet distribution within a software factory, the computer-implemented method comprising:
- receiving, at a software factory, a work packet in a software factory, wherein the software factory comprises;
a software factory governance section that evaluates the project proposal for acceptance by the software factory,a design center composed of a requirements analysis team and an architecture team, wherein the design center sections the project proposal into major functional areas that are to be handled by the requirements analysis team and the architecture team, and wherein the design center creates work packets, andan assembly line that receives and executes the work packets to create a deliverable software;
updating, by an assembly line worker on the assembly line, an availability status of the assembly line worker;
notifying a project manager of any change in availability status of the assembly line worker;
configuring, by the project manager, a plurality of routes in the software factory that a particular work packet can take to reach the assembly line;
describing the plurality of routes to a dynamic router;
sending, by the design center, the work packet to the dynamic router via a workflow message;
determining, by the dynamic router, a worker availability status of all workers on the assembly line according to an availability of each worker and a depth of a wait queue of work packets destined for said each worker;
determining, by the dynamic router, a consumption rate pattern for each queue used by workers having capabilities for similar work on the assembly line, wherein the determining of the consumption rate pattern evaluates workload characterization analysis collected from past traffic analysis, availability of workers on the assembly line, and time estimates for time required to complete work assignments already committed to each worker on the assembly line;
routing, by the dynamic router, the work packet to the assembly line according to worker capacity to accept new work; and
pulling the work packet off a work queue by an available worker selected by the dynamic router and the project manager.
1 Assignment
0 Petitions
Accused Products
Abstract
A system decision engine enables a software factory to effectively handle intelligent load balancing and distribution to workers on a software assembly line through the use of pre-configured rules. The pre-configured rules are based on a projected availability of workers based on past traffic analysis of work packets being sent to particular workers on the software assembly line.
-
Citations
20 Claims
-
1. A computer-implemented method for dynamically routing and load balancing packet distribution within a software factory, the computer-implemented method comprising:
-
receiving, at a software factory, a work packet in a software factory, wherein the software factory comprises; a software factory governance section that evaluates the project proposal for acceptance by the software factory, a design center composed of a requirements analysis team and an architecture team, wherein the design center sections the project proposal into major functional areas that are to be handled by the requirements analysis team and the architecture team, and wherein the design center creates work packets, and an assembly line that receives and executes the work packets to create a deliverable software; updating, by an assembly line worker on the assembly line, an availability status of the assembly line worker; notifying a project manager of any change in availability status of the assembly line worker; configuring, by the project manager, a plurality of routes in the software factory that a particular work packet can take to reach the assembly line; describing the plurality of routes to a dynamic router; sending, by the design center, the work packet to the dynamic router via a workflow message; determining, by the dynamic router, a worker availability status of all workers on the assembly line according to an availability of each worker and a depth of a wait queue of work packets destined for said each worker; determining, by the dynamic router, a consumption rate pattern for each queue used by workers having capabilities for similar work on the assembly line, wherein the determining of the consumption rate pattern evaluates workload characterization analysis collected from past traffic analysis, availability of workers on the assembly line, and time estimates for time required to complete work assignments already committed to each worker on the assembly line; routing, by the dynamic router, the work packet to the assembly line according to worker capacity to accept new work; and pulling the work packet off a work queue by an available worker selected by the dynamic router and the project manager. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A system comprising:
-
a processor; a data bus coupled to the processor; a memory coupled to the data bus; and a computer-usable medium embodying computer program code, the computer program code comprising instructions executable by the processor and configured for dynamically routing and load balancing packet distribution within a software factory by performing the steps of; receiving, at a software factory, a work packet in a software factory, wherein the software factory comprises; a software factory governance section that evaluates the project proposal for acceptance by the software factory, a design center composed of a requirements analysis team and an architecture team, wherein the design center sections the project proposal into major functional areas that are to be handled by the requirements analysis team and the architecture team, and wherein the design center creates work packets, and an assembly line that receives and executes the work packets to create a deliverable software; updating, by an assembly line worker on the assembly line, an availability status of the assembly line worker; notifying a project manager of any change in availability status of the assembly line worker; configuring, by the project manager, a plurality of routes in the software factory that a particular work packet can take to reach the assembly line; describing the plurality of routes to a dynamic router; sending, by the design center, the work packet to the dynamic router via a workflow message; determining, by the dynamic router, a worker availability status of all workers on the assembly line according to an availability of each worker and a depth of a wait queue of work packets destined for said each worker; determining, by the dynamic router, a consumption rate pattern for each queue used by workers having capabilities for similar work on the assembly line, wherein the determining of the consumption rate pattern evaluates workload characterization analysis collected from past traffic analysis, availability of workers on the assembly line, and time estimates for time required to complete work assignments already committed to each worker on the assembly line; routing, by the dynamic router, the work packet to the assembly line according to worker capacity to accept new work; and pulling the work packet off a work queue by an available worker selected by the dynamic router and the project manager. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A computer-readable medium encoded with a computer program, the computer program comprising computer executable instructions configured for:
-
receiving, at a software factory, a work packet in a software factory, wherein the software factory comprises; a software factory governance section that evaluates the project proposal for acceptance by the software factory, a design center composed of a requirements analysis team and an architecture team, wherein the design center sections the project proposal into major functional areas that are to be handled by the requirements analysis team and the architecture team, and wherein the design center creates work packets, and an assembly line that receives and executes the work packets to create a deliverable software; updating, by an assembly line worker on the assembly line, an availability status of the assembly line worker; notifying a project manager of any change in availability status of the assembly line worker; configuring, by the project manager, a plurality of routes in the software factory that a particular work packet can take to reach the assembly line; describing the plurality of routes to a dynamic router; sending, by the design center, the work packet to the dynamic router via a workflow message; determining, by the dynamic router, a worker availability status of all workers on the assembly line according to an availability of each worker and a depth of a wait queue of work packets destined for said each worker; determining, by the dynamic router, a consumption rate pattern for each queue used by workers having capabilities for similar work on the assembly line, wherein the determining of the consumption rate pattern evaluates workload characterization analysis collected from past traffic analysis, availability of workers on the assembly line, and time estimates for time required to complete work assignments already committed to each worker on the assembly line; routing, by the dynamic router, the work packet to the assembly line according to worker capacity to accept new work; and pulling the work packet off a work queue by an available worker selected by the dynamic router and the project manager. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20)
-
Specification