On optimal service selection in Service Oriented Architectures