A web-based approach to engineering adaptive collaborative applications