Concurrent and Reactive Constraint Programming