Moreover, if a function on a server becomes temporarily unavailable, e.g., as the result of a hardware failure, clients continuing to call the function will receive errors or other unexpected replies from the server. [0007] Accordingly there is a need to provide an improved system for supplying distributed functionality across a network of servers and clients.