Efficient service discovery in large-scale mobile agent systems: A self-adaptive infrastructure for robust communication in highly distributed software systems