Distributed computer systems
Objectives
Introduction to distributed programming based on a basic knowledge on local area networks and of TCP-UPD / IP protocols. Presentation of the client-server model. Introduction to causality, consensus and reliable broadcast.
Description
The course has two main parts:
- Introduction to the basic concepts of distributed programming, the client-server model, different server realization schemes (sequential, multiple inputs / polling, on-demand, multithreaded)
- Introduction to distributed algorithms, notion of logical clocks, notion of causal order, of total order, principle and solution of distributed consensus and atomic broadcast.
The practical classes enable the students to put into practice these concepts and development techniques, using BSD sockets on Linux. An messaging system (a chat) is first implemented with a client-server approach, a second solution is based on a peer-to-peer approach and implementated using a reliable broadcast protocol.
Targeted skills
- Mastering of the client-server model (CS)
- Implementation of the CS model with BSD sockets on Linux
- Solution to the consensus problem
- Reliable broadcast protocols
Bibliography
Handouts , slides presented by M. Fabre;
Handouts , slides presented by M. Roy;
"Distributed Algorithms", Nancy A. Lynch, Morgan Kaufmann Publishers Inc. San Francisco, California, USA © 1996, ISBN: 9780080504704
Pre-requisites
Algorithmics, C / C ++ programming, local area networks, operating system principles, Unix.
Contact(s)
Places
- Toulouse