Our experience with Internet-based scientific collaboratories indicates that they need to be user-extensible, allow users to add tools and objects dynamically to shared workspaces, permit users to move work dynamically between private and shared workspaces, and be easily accessible over a network. We present the software architecture of an environment, called CBE, for building collaboratories to meet such needs. CBE provides user-extensibility by allowing a collaboratory to be constructed as a coordinated collection of group-aware applets. To support dynamic reconfiguration of shared workspaces and to allow access over the Internet, CBE uses the metaphor of rooms as the high-level grouping mechanism for applets and users. Rooms may contain applets, users, and arbitrary data objects. Rooms can be used for both asynchronous and synchronous collaboration because their state persists across synchronous sessions. Room participants may have different roles in a room (such as administrator, ...