Workspace Model/Cxx
From EQUIS Lab Wiki
Introduction
A substantial goal of research in software engineering is the development of techniques that make complex software systems simpler to produce. The modern proliferation of interconnected computing devices has placed fresh emphasis on the problem of software systems distributed across multiple locations and platforms. These systems are particularly complex due to the requirements of security, performance and availability in an uncontrollable environment.
I am interested in the specific problem of simplifying the production of synchronous groupware, systems that allow physically separated users to interact and share data in real time, through abstraction and modeling. Common commercial groupware systems include electronic meeting systems (such as WebEx), multi-user text and voice messaging systems (such as MSN Messenger) and multi-user video games (such as Ultima Online).
Producing groupware systems presents a substantial software engineering challenge: not only are all the difficulties of general distributed systems maintained, but multi-user interfaces prakash99group and heterogeneous devices play a significant role. Some of these difficulties are traditional (greenberg99groupware), while others have been emphasized by modern trends in ubiquitous computing. Ensuring support for lightweight and mobile devices requires consideration for problems including limitations in power, connectivity and memory (bharghavan97framework) that are far less relevant in a desktop-centric environment.
A simple scenario involving a synchronous groupware application could be a document being interactively edited by members of research labs in Germany and Canada. During the morning in Germany, members of the lab arrive and begin revising the document. Later the Canadians start their modifications. During the overlap, there is a temporary problem in the network connectivity between the two sites. One of the Canadians then loads an image, which is propagated through the group. As the afternoon wears on the Germans, then the Canadians shut down their computers and go home for the evening.
A standalone implementation of the editor in this scenario would be required to manage a tremendous number of possibilities beyond the non-trivial task of maintaining predictable synchronization between the document instances. To reduce this complexity a structured approach is required that introduces more abstraction.