Method and system for load-balanced data exchange in distributed network-based resource allocation
First Claim
1. In a computer network, a distributed resource allocation system operating across a plurality of domains within the computer network that balances the assignment of resources, comprising:
- a resource allocator in a domain that receives a resource request from an application program;
a resource database including data regarding resources in the domain of the resource allocator;
a load balancing mechanism that examines the resource database to locate a resource in the domain of the resource allocator matching the resource request, and if more than one resource matches the resource request, forms a resource list by sorting the more than one resource according to greatest remaining capacity and selects a resource in the resource list based on a predetermined rule;
another resource allocator in another domain that communicates with the load balancing mechanism; and
another resource database containing data regarding resources in the another domain, wherein if the load balancing mechanism does not locate a resource in the resource database that matches the resource request, then the load balancing mechanism examines the another resource database to locate a resource matching the resource request, and if more than one resource matches the resource request, forms a resource list by sorting the more than one resource according to greatest remaining capacity and selects a first resource in the resource list.
8 Assignments
0 Petitions
Accused Products
Abstract
A method and system for allocating distributed resources connected to a computer network to application programs running on computers attached to the communications network. The distributed resource allocator system comprises a number of identical processes running on one or more computers attached to the communications network. Application programs request allocation of resources from a local distributed resource allocator system process running using a resource allocator applications programming interface. Application programs request allocation of resource from a remote distributed resource allocator system process via a resource allocator access protocol. The distributed resource allocator system is fault-tolerant and provides contention control and load balancing. The resource allocator system also manages information about the capacities and capabilities of resources connected to the communications network. Application programs can thus be easily written to make use of distributed resources connected to a communications network without having to manage global network information and without needing complex contention control and load balancing subroutines.
-
Citations
20 Claims
-
1. In a computer network, a distributed resource allocation system operating across a plurality of domains within the computer network that balances the assignment of resources, comprising:
-
a resource allocator in a domain that receives a resource request from an application program;
a resource database including data regarding resources in the domain of the resource allocator;
a load balancing mechanism that examines the resource database to locate a resource in the domain of the resource allocator matching the resource request, and if more than one resource matches the resource request, forms a resource list by sorting the more than one resource according to greatest remaining capacity and selects a resource in the resource list based on a predetermined rule;
another resource allocator in another domain that communicates with the load balancing mechanism; and
another resource database containing data regarding resources in the another domain, wherein if the load balancing mechanism does not locate a resource in the resource database that matches the resource request, then the load balancing mechanism examines the another resource database to locate a resource matching the resource request, and if more than one resource matches the resource request, forms a resource list by sorting the more than one resource according to greatest remaining capacity and selects a first resource in the resource list. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. In a computer network, a distributed resource allocation system operating across a plurality of domains within the computer network that balances the assignment of resources, comprising:
-
a resource allocator in a domain that receives a resource request from an application program;
a resource database including data regarding resources in the domain of the resource allocator;
a load balancing mechanism that examines the resource database to locate a resource in the domain of the resource allocator matching the resource request, and if more than one resource matches the resource request, forms a resource list by sorting the more than one resource according to greatest remaining capacity and selects a resource in the resource list based on a predetermined rule;
another resource allocator in another domain that communicates with the load balancing mechanism using a remote access system protocol for transferring data from one resource allocator to another resource allocator; and
another resource database containing data regarding resources in the another domain, wherein if the load balancing mechanism does not locate a resource in the resource database that matches the resource request, then the load balancing mechanism examines the another resource database using the remote access system protocol to locate a resource matching the resource request.
-
-
15. In a computer network that interconnects computer resources, a flow control and data transmission interact both between application programs and a distributed resource allocator handling system that coordinates use of the computer resources by the application programs and between components of the distributed resource allocator handling system, wherein the components of the distributed resource allocator handling system include resource allocator systems that execute functions called by the application programs, resource allocator user agents that transfer function calls from application programs running on one computer over the computer network to a second computer, and resource allocator system agents that transfer function calls received over the computer network from a resource allocator user agent to a resource allocator system for execution, the flow control and data transmission interface comprising:
-
an application programming interface that provides the functions that are called by the application programs and executed by a resource allocator system, including functions that allocate, deallocate, and make use of the computer resources;
a remote access agent protocol used by a resource allocator user agent running on a local computer to encapsulate the application programming interface function calls made by an application program running on the local computer and transport the encapsulated function calls over the computer network to a resource allocator system agent running on a remote computer, and used by the resource allocator system agent to encapsulate data returned by a resource allocator system running on the remote computer in response to the function calls and transport the encapsulated data over the computer network to the resource allocator user agent; and
a remote access system protocol used by the resource allocator systems of the distributed resource allocator handling system to transfer data from one resource allocator system to another. - View Dependent Claims (16, 17)
-
-
18. In a computer network that interconnects computer resources, a method for exchanging function calls and data between application programs and a distributed resource allocator handling system that coordinates use of the computer resources by the application programs and for exchanging data between components of the distributed resource allocator handling system, wherein the components of the distributed resource allocator handling system include a resource allocator system that execute functions called by the application programs, a resource allocator user agent that transfer function calls from application programs running on one computer over the computer network to a second computer, and a resource allocator system agent that transfer function calls received over the computer network from the resource allocator user agent to the resource allocator system for execution, the method comprising:
-
calling a function within an application program that is provided by an application programming interface and executed by the resource allocator system;
when the resource allocator system is running on a different computer than on which the application programs is running, passing the function call from the application program to the resource allocator user agent running on the same computer as that on which the application programs is running, packaging the function call by the resource allocator user agent into a remote access agent protocol message and sending the remote access agent protocol message over the computer network to the resource allocator system agent running on the same computer as than on which the resource allocator system is running, and unpackaging the function call from the received remote access agent protocol by the resource allocator system agent and passing the function call directly from the resource allocator system agent to the resource allocator system;
when the resource allocator system is running on the same computer as that on which the application programs is running, passing the function call directly from the application program to the resource allocator system;
executing the function by the resource allocator system and returning to the application program data provided by the resource allocator system as a result of execution of the function call; and
when execution of the function by the resource allocator system causes the resource allocator system to change data stored in a global network information database to describe a current state for the distributed resource allocator handling system and when more than one resource allocator system is running on the computer network, sending a resource allocator system protocol message from the resource allocator system that executed the function call to all remaining resource allocator systems running on the computer network so that all resource allocator systems can accordingly update their respective global network information databases. - View Dependent Claims (19, 20)
-
Specification