Tradi tional distributed computing is dominated by a client–server model. File systems, databases, and hypertext systems are all designed with the assumption that a few powerful and reliable servers support a large and dynamic set of clients. Servers are complex and expensive, while clients are lightweight, cheap, and simple. Servers are responsible for persistence, security, and coherence, whi...