Distributed Systems

News Lecture Notes Labs Others


To be created...


A distributed system is a collection of entities, each of which is autonomous, programmable, asynchronous and failure-prone, and which communicate through an unreliable communication medium.

The course includes a paper for publication that falls 5-7 weeks of hard work, then a final presentation about the manuscript is going to be presented.


It is not that distributed systems are built just because people have the possibility of building it. Every distributed system has few goals which have to be achieved during its building process and few vital goals of a distributed system are as follows:

  • Heterogeneity – can the system handle a large variety of types of PCs and devices?

  • Robustness – is the system resilient to host crashes and failures, and to the network dropping messages?

  • Availability – are data+services always there for clients?

  • Transparency – can the system hide its internal workings from the users? (warning: term means the opposite of what the name implies!)

  • Concurrency – can the server handle multiple clients simultaneously?

  • Efficiency – is the service fast enough? Does it utilize 100% of all resources?

  • Scalability – can it handle 100 million nodes without degrading service? (nodes=clients and/or servers) How about 6 B? More?

  • Security – can the system withstand hacker attacks?

  • Openness – is the system extensible?

Course Assessment

Will be announced later..