Experiences, strategies and challenges in building fault-tolerant CORBA systems