Recently, enterprise interoperability has been improved by the Web Service technology, making available an ever-growing number of services. Service discovery is considered a crucial issue; in particular, flexibility of the discovery process, that is, the ability of recognizing not only exact matches between the requests and offers, but also partial ones, should be enhanced. We propose a composite approach to flexible service matchmaking focused on different matching models that are able to evaluate similarity and difference between offers and requests. The approach is based on an ontological framework adding semantics to service descriptions. Optimization and ranking techniques are provided.