Patent ID: 8359493

Claim:
A method for providing assured recovery for a distributed application, the method comprising: replicating first data associated with a first master server at a first replica server, wherein the first master server is configured to host a first component of the distributed application; replicating second data associated with a second master server at a second replica server, wherein the second master server is configured to host a second component of the distributed application; in response to a request to initiate integrity testing, performing one or more operations at the first replica server to determine whether the first component of the distributed application is functioning the same on the first replica server as on the first master server using the first replicated data at the first replica server; performing the one or more operations at the second replica server to determine whether the second component of the distributed application is functioning the same on the second replica server as on the second master server using the second replicated data at the second replica server; coordinating the one or more operations performed at the first replica server and the second replica server by generating a first notification and a second notification, wherein the first notification is generated by the first replica server and the second notification is generated by the second replica server, and wherein the first notification and the second notification indicate completion of a first operation by the first replica server and the second replica server; performing a second operation by the first replica server and the second replica server, wherein the second operation is performed after the completion of the first operation, wherein the second operation comprises a first testing operation and a second testing operation, wherein the first testing operation performs testing functions associated with the first replica server or the second replica server, and the second testing operation performs testing functions associated with the first replica server and the second replica server; and determining whether the distributed application can be recovered based on the one or more operations performed at the first and second replica servers.