| With the development of internet and distributed system, Computer-Supported Cooperative Work (CSCW) is now a very active research area of Computer Science, and collaborative systems are becoming one of the promising trends of new application software in the new millennium. So it is very necessary to develop a flexible and convenient collaborative work environment.We first investigate the requirements and key techniques for developing collaborative work environment. Our focus is primarily on the characteristics of such systems, which are different from those of common distributed systems and interactive software. We also investigate several representative collaboration editing systems explored by other researchers and institutes.We carefully investigate the design techniques of this Real-time distributed cooperative work environment, primarily focusing on collaborative systems architecture, concurrency controlling, collaborative awareness, session management, role controlling, storage of shared file and fault-tolerance of system. Where, we discuss the concurrency controlling strategy based on relative position in this system in detail.Based on the research on its design technology, we introduce the implementation techniques of this collaborative work environment, which includes communication threads, distributed architecture, module of session management, implement of optimistic locking based on relative position, storage of shared file, multi-level cooperative awareness, object model of white-board and so on.Applying these techniques mentioned above, we have developed Redce, a collaborative work environment. The functions and implementation issues of Redce, as well as the application of these techniques in developing it, are described in the end of this thesis. |