Increasingly, Internet-level distributed systems are oriented as much toward information access as they are toward computation. From computer-supported collaborative work to peer-to-peer computing, e-commerce, and multi-player games—even web caching and Internet chat—applications devote a significant fraction of their code to maintaining shared state: information that has dynamic content but relatively static structure, and that is needed at multiple sites. We argue that tools to automatically manage shared state have the potential to dramatically simplify the construction of distributed applications and, in important cases, to improve their performance as well. We discuss the characteristics that such tools must possess, placing them in the context of past work on distributed file systems, distributed object systems, and software distributed shared memory. We present the InterWeave system as a prototype implementation, and discuss its strengths and limitations.
Michael L. Scott, DeQing Chen, Sandhya Dwarkadas,