An application-aware multi-layer service provisioning algorithm based on auxiliary graphs