Service discovery is a critical aspect in the Service Oriented Computing approach. A model, a methodology and a tool environment based on ontologies are proposed in this paper. The requester and provider perspectives are discussed, both to support the service publication phase and the search phase. The proposed service ontology is based on functional aspects and it is organized on three layers, to support traditional search based on classification such as proposed in UDDI as well as search based acting service characteristics. In addition, non functional features such as requester and provider contexts and quality of service are considered to refine the search results according to the requester requirements.