Self-Maintaining Overlay Data Structures for Autonomic Distributed Computing