A Distributed System can be defined as one in which hardware and software components at networked computers communicate and coordinate their activity by sharing resources such as information, data, compute cycles, bandwidth and storage. Examples include the World Wide Web, Clusters, Mobile Computing, Grid Computing, and many others.
Historically, workstations and personal computing systems used to work individually solving smaller problems while supercomputers were used for complex problems. With the increase in the network speeds and storage density, coupled with the availability of high-end computers and communication equipments at reasonable prices, this trend has changed during the last few decades. It is now agreed upon that we are living in an exponential world with transistor count doubling every 18 months (Moore’s Law), storage density doubling every 12 months, and fiber optics speeds doubling every 9 months (see the figure below).
This shows that Network speeds will grow at double the rate of processor speed, thus the case for distributed computing becomes even stronger.