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 that 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 wherein the function call requires the use of a resource and the resource allocator system resolves contending requests for the resource;
- 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;
- and
- when execution of the function by the resource allocator system contends with another function, then resolving the contention by comparing a first characteristic of the function and the another function.