One aspect of the present invention provides a system for failover
comprising at least one client selectively connectable to one of at least
two interconnected servers via a network connection. In a normal state,
one of the servers is designated a primary server when connected to the
client and a remainder of the servers are designated as backup servers
when not connected to the client. The at least one client is configured
to send messages to the primary server. The servers are configured to
process the messages using at least one service that is identical in each
of the servers. The services are unaware of whether a server respective
to the service is operating as the primary server or the backup server.
The servers are further configured to maintain a library, or the like,
that indicates whether a server is the primary server or a server is the
backup server. The services within each server are to make external calls
via its respective library. The library in the primary server is
configured to complete the external calls and return results of the
external calls to the service in the primary server and to forward
results of the external calls to the service in the backup server. The
library in the secondary server does not make external calls but simply
forwards the results of the external calls, as received from the primary
server, to the service in the secondary server when requested to do so by
the service in the secondary server.