Fault-Tolerant Techniques for Ambient Intelligent Distributed Systems