Distributed Systems: Theory and Implementation


This course covers the basic concepts of distributed systems, with an emphasis on the theoretical principles of distributed computing and the practical techniques for implementing distributed systems. After an introduction to distributed systems (models), the course examines their basic theoretical principles (event ordering, global states, global predicate evaluation, mutual exclusion) and covers basic issues in distributed processing (fault tolerance and load balancing). Then, the course covers basic implementation issues (networking, multithreading, mobile agents) the basic concepts of peer to peer systems (structured and unstructured systems, routing) and their applications (content search and delivery, multicast) and, finally, some distributed services (distributed storage). The applied part of the class focuses on the facilities provided by Java for programming distributed systems and the implementation of distributed applications. The programming project of the course involves the implementation of an unstructured peer to peer system for file exchange.


Objectives

• Understanding of the nature of distributed systems • Introduction to the capabilities offered • Understanding of the basic implementation issues • Introduction to appropriate programming environments


Prerequisites

• Computer Networks • Programming in Java • Operating Systems


Syllabus

Introduction, non-centralized systems, distributed system goals and services, client-server model, peer to peer model. Event ordering, clocks, global states. Global predicates, deadlocks, distributed termination. Mutual exclusion. Fault tolerance, replication, recovery, distributed agreement. Communication mechanisms, remote procedure calls, networking in Java. Concurrency and threads, multithreading in Java. Resource organization, processor allocation, code migration. Distributed hash tables, Chord, Pastry and Scribe. Distributed storage systems, NFS and AFS, PAST and CFS. Distributed file exchange, BitTorrent.

COURSE DETAILS

Level:

Type:

Undergraduate

(A-)


Instructors: George Xylomenos
Department: Informatics
Institution: Athens University of Economics and Business
Subject: Computer Science, Information Technology, Telecommunications
Rights: CC - Attribution-NonCommercial-NoDerivatives

Visit Course Page

SHARE THIS COURSE
RELATED COURSES