CS102: Distributed Applications

Copyright © 1999, Kenneth J. Goldman


In a distributed application we have:

Each application defines its own protocol, namely what kind of messages it sends around and what they mean. For example, if you were defining a "distributed whiteboard" application for a group of people at different locations to share and edit a drawing, you would have the application send around mesages like "CREATE_A_RECTANGLE x=10, y=20, w=50, h=75".
These messages could be simple data (like Strings) or entire objects with whatever instance you want to define

Types of Distributed Applications

There are many kinds of distributed applications:

To work, these applications sometimes need to run a computation that spans multiple machines. Algorithms for such computaions are called Distributed Algorithms. In a distributed algorithm, you have the same issues as in concurrent algorithms (synchronization, deadlock, etc.), plus you hvae the issue of latency: it takes time for a message to get from one place to another. In a distributed algorithm, it is usually the case that no single process knows the state of the entire system. By the time you recieve a message, the state of the sender might have changed. This challenge must be faced by distributed algorithms for: