In this paper, we present our approach of facilitator that allows automatic service composition in distributed systems. We propose a facilitator based on ontologies and knowledge representation that allows clients to discover a service and to get the result of the service execution without direct interactions with their providers. We extend the functionality of the facilitator to be a composition engine and we show how it composes services to satisfy the client's requests.