Ubiquitous computing environments offer a wide range of devices in many different shapes and sizes, creating new possibilities for interaction. In the context of meetings and teamwork situations, it is desirable--yet still challenging--to take advantage of their different properties for synchronous collaboration. Besides providing an adapted user interface, this requires the software to be designed for synchronous access to shared information using heterogeneous devices with different interaction characteristics. The handling of these requirements poses challenges on software developers. This book provides guidance and support for developers of synchronous groupware applications for ubiquitous computing environments. The readers are enabled to build applications more efficiently and with the required flexibility and extensibility. This books helps developers when creating models of the applications to be developed, when choosing an appropriate architecture, and when creating the design.