Quality-of-Service (QoS) aware service selection problems are a crucial issue in both Grids and distributed, service-oriented systems. When several implementations per service exist, one has to be selected for each workflow step. Several heuristics have been proposed, including blackboard and genetic algorithms. Their applicability and performance has already been assessed for static systems. In order to cover real world scenarios, the approaches are required to deal with dynamics of distributed systems. In this paper, we propose a representation of these dynamic aspects and enhance our algorithms to efficiently capture them. The algorithms are evaluated in terms of scalability and runtime performance, taking into account their adaptability to system changes. By combining both algorithms, we envision a global approach to QoS aware service selection applicable to static and dynamic systems. We prove our hypothesis by deploying the algorithms in a Cloud environment (Google App Engine) that allows to simulate and evaluate different system configurations.