Patent ID: 7827136

Claim:
A software agent failure tolerant computer architecture for managing resources for transfer of data stored in a data storage environment including at least two data storage systems, and wherein data is replicated from one of the at least two data storage systems to at least one other data storage system of the at least two data storage systems, the architecture comprising: a data transfer server; one or more primary software agents hosted on said data storage system comprising independent storage devices, said primary software agent in communication with the data transfer server, the primary software agent configured to perform data transfer operations in response to commands from the data transfer server; one or more failover software agents, each failover software agent residing on a host that is different from each other failover software agent and each primary software agent, in communication over a network with the primary software agents, the data transfer server, and at least one of the two data storage systems, the failover software agents being remote from the primary software agent and wherein each of said failover software agents is configured to execute scripts residing on a host with one of the primary software agents or one of the failover software agents to control host applications, wherein said primary software agent further represents a failover software agent for another of said primary software agents in another one of said data storage systems; a failover protocol for determining an order in which said primary software agents and said failover software agents, within a communication path of a data transfer, are designated to take over the data transfer operation and the primary software agent or failover software agent designated to take over the data transfer executes scripts residing on a host with a failed primary software agent to control host applications residing on the host with the failed primary software agent to put the replication data in condition for the designated primary software agent or designated failover software agent to push and pull replication data during the replication in response to one or more data transfer commands when a failure of one or more of said primary software agents or said failover software agents is determined, said protocol being determined during a configuration of said computer architecture.