"ACM Computing Surveys" 35(3) 268–308.