Patent ID: 8756455

Claim:
At a computer system including one or more processors and system memory, the computer system interoperating with one or more other computer systems in a distributed system, a data service running at the computer system, a plurality of instances of an active-passive application running within the distributed system, the data service storing data to control synchronization among plurality of instances of the active-passive application, the stored data including an active instance value and a last touch value, the active instance value identifying the currently active application instance for the active-passive application, the last touch value indicating a time when the currently active application instance last refreshed status, the data service exposing a status function to application instances for refreshing status for application instances, a method for refreshing the status for instances of an application, the method comprising: an act of receiving a call at the status function, the call originating from an instance of the active-passive application, the call including an identifier value identifying calling application instance; an act of the status function refreshing the status of the calling application instance in response to the call, including: an act of determining if the identifier value corresponds to the active instance value; when the identifier value corresponds to the active instance value: an act of changing the last touch value to a current time; and an act of returning a status of active to the calling application instance; when the identifier value does not correspond to the active instance value: an act of determining if an idle timeout has been exceeded based on the last touch value; when the idle time has been exceeded: an act of storing the identifier value as the active instance value to make the calling application instance the currently active application instance; an act of changing the last touch value to the current time; and an act of returning a status of active to the calling application instance; and when the idle time has not been exceeded: an act of retuning a status of passive to the calling application instance.