Distributed systems must often function in the presence of limited or varying network bandwidth and limited server resources. For example, bandwidths across an internetwork may vary widely--several orders of magnitude. Connectivity may change dynamically, and arbitrary delays may occur. In such environments, client applications that are running on remote machines may not receive information in a timely manner. This is a particular issue when client actions or decisions must be made within a given time frame; information has a time value that decreases over time, dropping to zero when critical milestones have passed.
We are investigating an approach to these problems, using dynamic replication of component objects onto the local client site. We assume that a local server exists on each client site which can receive and manage the replicated objects. This approach provides rapid response to the clients, and reduces the need to continue exchanging information over the network. This work, which builds on earlier work in the simulation area, seeks to support shared objects as a basis for collaboration. The work is relevant both to distributed object systems and to WWW servers/browsers, in that both involve distributed, connected networks of software "components".
A number of basic replication issues need to be addressed, including:
In addition, many replicas are likely to be long-lived, existing for an extended period of time. During this period, updates to replicated objects must be accommodated and reconciled, which introduces some additional issues.
In particular, because of the bandwidth and processing limitations, propagation of all updates to all replicas may not be necessary or appropriate. This decision, which we term "information logistics", may be made on the basis of the value of the information to the receiving application, and the availability and cost of communications.
For example, in some circumstances remote systems may be able to model (i.e., simulate) the changes expected to occur to a given object. In such cases, only unexpected changes need be transmitted. In other cases, the client application may specify that it requires only snapshot consistency, so that no further updates would be sent. Obviously, the expected cost of update propagation must be considered as part of the decision to replicate objects originally.
An additional issue concerns mediation of conflicts. Conflicting updates may occur to multiple replicas, and must be resolved on a consistent basis. A single object may be designated "master", with the right to mediate conflicts. Alternatively, decisions may be made on a more local basis. Each approach has advantages and disadvantages.
This approach is best suited to applications where: the rate of updates is low relative to the rates of information requests; decisions or actions must be made on the client side in a timely manner; and client applications can accept near-current information.
We have developed two initial implementations of the technology described, including a WWW server that caches remote web pages and notifies local clients of updates. We are focusing on applications in the areas of situation assessment and world modeling.