AbstractLarge-scale distributed computing environments provide a vast amount of heterogeneous computing resources from different sources for resource sharing and distributed computing. Discovering appropriate resources in such environments is a challenge which involves several different subjects. In this paper, we provide an investigation on the current state of resource discovery protocols, mechanisms, and platforms for large-scale distributed environments, focusing on the design aspects. We classify all related aspects, general steps, and requirements to construct a novel resource discovery solution in three categories consisting of structures, methods, and issues. Accordingly, we review the literature, analyzing various aspects for each category.Highlights•We present a new taxonomy of resource discovery aspects for distributed systems.•We survey the literature from various viewpoints of resource discovery aspects.•We discuss a set of key performance indicators to evaluate discovery approaches.•An overall guideline to design novel discovery approaches for distributed systems.展开▼