Integrating Discovery and Automated Composition: from Semantic Requirements to Executable Code