A Constraint-Based Architecture for Flexible Support to Activity Scheduling