Resumo:
A necessidade de sistemas de computadores para ambientes cada vez mais complexos e heterogêneos e que ainda sejam disponíveis 24 horas por dia fez surgir também à necessidade de fazer com que esses sistemas de computadores também pudessem ser auto-diagnosticáveis. Num ambiente distribuído, a complexidade de identificar uma falha em uma unidade do sistema é maior. Nesse contexto, com o objetivo de encontrar procedimentos eficientes para detectar falhas que comprometam o funcionamento destes sistemas surgiu também o desafio de implementar sistemas confiáveis e tolerantes a falha. Dessa forma, quando uma falha é identificada em uma unidade do sistema, as unidades que estão sem falhas devem assumir as responsabilidades que a unidade em falha realizava, assim, os prejuízos acarretados seriam mitigados. Para que esses requisitos sejam atendidos, os sistemas precisam ser tolerantes a falhas e transparentes aos usuários.