Design of extensible component-based groupware