Collaborative systems enable people to work together. They can be categorized along one dimension as either synchronous or asynchronous, and along another dimen-
sion as either colocated or distributed, as shown in Figure 1.1. Synchronous systems demand higher performance than asynchronous systems because they imply a high degree of interaction by participants. That is, participants must respond to actions by other participants within a short (e.g., sub-second) time-frame. It is more difficult to meet performance demands in distributed systems than in colocated systems, be- cause distribution implies networks spanning larger distances, which means greater latencies and lower bandwidths than are typical for colocated systems. Synchronous distributed systems therefore have the highest performance demands and the most difficult environment for meeting those demands. If performance demands can be met in this quadrant of Figure 1.1, they can be met in all the quadrants.
Centralized, replicated, and hybrid architectures have been used to build syn- chronous distributed collaborative systems. Centralized systems suffer from long latencies because all model operations must go through the physical center of the system. They also scale poorly because they place more demands on the central com- puter and the network than do replicated systems. Replicated systems solve these performance problems by using distributed model replicas at each participant site. Unfortunately, these replicas are difficult to keep synchronized. Worse, replicated architectures necessarily allow the replicated models to diverge independently. Con- sequently, users either become aware that there are multiple divergent model replicas (complicating the user’s mental model of the application), or they are presented with divergent versions of a world that is ostensibly the same, without the participants being aware that this is happening. This latter case can lead to inconsistent under- standings of and actions on the virtual world by different participants. In either case, collaborative work is confounded by the replicated architecture.
Hybrid architectures attempt to apply centralized and replicated sub-architectures selectively to a single system in order to ameliorate these problems. Unfortunately,
this further complicates the programmers’ and users’ mental models because they have to make distinctions in their mental models between centralized and replicated aspects of the system. More recent research has focused on dynamically modify- ing the architecture of the system to meet the changing demands of a collaborative session over time. While this can improve performance and scalability, the implica- tions for the user’s mental model of the application are even worse than for a static hybrid system, since the user’s mental model must adapt over time to the changing architecture. Dynamic architecture adaptation also typically requires mechanisms for migrating processes or objects. Process and object migration systems have extensive container requirements for distributed computers, and process and object migrations are slow as compared to user interaction times.
In this dissertation, I have taken a finer-grained approach to migration. Instead of migrating processes or even object-oriented objects, I have identified smaller and simpler entities that do not need to conform to full process or object semantics and that therefore have reduced container requirements. For example, an entity may be a simple data element represented in an open, standard format (e.g., string). As such, it does not require it’s own execution environment (thread) or data hiding facilities. I have defined and classified entities based on their migration characteristics. In so doing, I have identified a number of important entity types with low container requirements that can be migrated extremely quickly and easily.
The central thesis of this dissertation is that:
A taxonomy of application entities (objects with less than process and object-oriented object semantic requirements) based on their migration characteristics facilitates the construction of collaborative applications and supporting infrastructures that retain the simplified user mental model and implementation characteristics of centralized systems while achieving the enhanced latency and scalability characteristics of replicated systems.
This is achieved through the fast migration of lightweight entities in a multi- centered centralized system. I define amulti-centeredsystem (Figure 1.22) as having a single physical center and many logical, per-entity centers that migrate independently and dynamically in response to user interactions. The speed of such lightweight entity migration opens up the possibility of triggering migrations based on telegraphed user intentions (user actions that hint at imminent succeeding actions), which are likely to be more accurate predictors of future interactions than are longer-term interac- tion histories. For example, in Figure 1.23, the user is telegraphing his intention to move the two of clubs by moving his cursor into an invisible “halo” around that card (made visible in the figure as a light-colored box). Relatively slow user interaction times can be overlapped with object migration, so that the objects being manipulated will have been migrated before they are manipulated (or, at worst, the migration will have begun). Identifying sub-object, easily-migratable entity classifications also mini- mizes container requirements, facilitating widespread entity distribution. I anticipate that this will help us to achieve the critical mass required for the acceptance of any communications system.
This dissertation also asserts and demonstrates that an entity classification based on migration characteristics serves well to identify and independently assign the en- tities users may wish to diverge upon in a collaborative session. That is, the entities one might wish to migrate for performance reasons are typically the very entities that one might want to diverge upon. This presents fine-grained, user-understandable, and application-unaware divergence possibilities along the full spectrum from WYSI- WIS4 collaboration to independent work, and supports dynamic transitions along
this spectrum. This capability is important because the desired degree of coupling in 4What You See is What I See. That is, everyone sees exactly the same thing.
Figure 1.23: Telegraphed User Intentions
collaborative work has been shown both to vary depending on the task at hand, and to fluctuate during particular collaborative sessions.