Constraint Satisfaction Problems: A Unifying Concept