Protocol Discovery from Imperfect Service Execution Logs