Service Oriented Architectures (SOA) proclaim the use of Web Services as the basic building blocks for IT systems. This shall facilitate better interoperability and significantly reduce development and maintenance costs. However, the provision of sophisticated SOA technologies remains a grand challenge. This book presents a scalable technique for Web Service discovery, one of the central operations in automated SOA environments. The approach supports problem-oriented and flexible Web Service usage: clients formulate their requests in terms of goals that abstract from technical details, and the system automatically detects and executes the necessary Web Services for solving this. The discovery task is performed by semantic matchmaking of ontology-based functional descriptions of goals and Web Services. This is extended with a caching mechanism that captures the results of design time discovery, and effectively utilizes this knowledge for enhancing the computational performance of the discovery at runtime. An exhaustive evaluation shows that significant improvements can be achieved in both the retrieval accuracy and the computational performance for several application scenarios.