Managing Dependability in Distributed Applications