Component
École Nationale Supérieure d'Électrotechnique d'Électronique d'Informatique d'Hydraulique et des Télécommunications
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.
Pre-requisites
Algorithmics, C / C ++ programming, local area networks, operating system principles, Unix.