Autonomic Computing: Principles, Design and Implementation (Undergraduate Topics in Computer Science)