Dynamic Pointers and Threads

The notion of location is central to virtually all manipulation. For a single-user system there is typically one key point of reference, often rei ed in the shape of an insertion point or mouse pointer, but even then there may be subsidiary locations, such as marked blocks or hyper-text links. For group working the issue becomes more problematic, with di erent users having di erent views of shared objects, and operating at di erent locations. This paper concerns dynamic pointers { a mechanism for the description and implementation of various forms of location information, and threads { light-weight versions expressing the divergence due to the distributed nature of much group working. For the purpose of this paper, threads will be seen as the subsidiary concept, although one could discuss threads in their own right. The domain which will be addressed is group editing/update, but drawn widely to encompasses virtually all manipulation of shared information. The remainder of this section will give a brief introduction to dynamic pointers and threads. Then in the next two sections we shall consider dynamic pointers in more detail. First a rationale as to why pointers are not just one small detail in system design, but, instead, one of the key issues. After that we will consider a model for dynamic pointers { an semi-formal description of a formal model described in more detail elsewhere [2]. Thus far, the material will be largely a review of previous work on dynamic pointers targeted at single-user interaction. Sections 4{6 will discuss the application of dynamic pointers to various forms of group editing. First of all we will consider synchronous editing, how dynamic pointers can describe the appropriate behaviour of multiple insertion points, and has also been used to analyse the various options for group undo support. Then Section 5 will show how Ellis and Gibbs' algorithm for distributed synchronous group editing can be seen as a special case of dynamic pointers. In the course of this discussion, we will also introduce the concept of threads. Finally in Section 6, we will see how dynamic pointers and threads apply to more widely distributed asynchronous editing. During the discussion we will see that dynamic pointers are pervasive in existing systems, but largely implicitly. In the last part of this chapter (Section 7), we will see that dynamic pointers are not only a way of talking about implementations, but are an e ective implementation device.

[1]  Clarence A. Ellis,et al.  Concurrency control in groupware systems , 1989, SIGMOD '89.

[2]  Russell Beale,et al.  Information Requirements of Distributed Workers , 1996 .

[3]  Alan J. Dix,et al.  Formal methods for interactive systems , 1991, Computers and people series.

[4]  Gregory D. Abowd,et al.  Giving Undo Attention , 1992, Interact. Comput..