This paper is on the construction of a server subsystem in a client/server system in an application context where the number of potential clients can be arbitrarily large. The implementation of the server is based on the well-known Triple Modular Redundancy (TMR) technique. The three server processes must process the client inputs in the same order to keep the server state consistent. While a client can fail by crashing and at least two server processes behave correctly, the third server process can behave in an arbitrary way. Moreover, the communication between clients and server processes is assumed reliable and the network can deliver the same client input to any two server processes within a known bounded time (D). There is also a known bound on the communication delay between every pair of correct server processes (d). In order to cope with client crash and server process failure, it is assumed that if a client input is deposited in the local memory of a server process at time t,...
Paul D. Ezhilchelvan, Jean-Michel Hélary, M