Trade-Offs Between Real-Time and Fault Tolerance for Middleware Applications