====== Distributed Systems ======
----
===== News =====
* **6 April 2019**: the lectures of 10 of April will not take place. The lecture of 11 of April will be about RMI labs. Although this is an additional lecture which is not part of the final exams please try to come to the lecture thanks Leonardo
----
===== General Info =====
**Teacher**:
* [[http://docenti.unicam.it/pdett.aspx?ids=N&tv=d&UteId=749&ru=PA|Leonardo Mostarda]]
**ESSE3 Link**
* [[https://didattica.unicam.it/Guide/PaginaADErogata.do?ad_er_id=2018*N0*N0*S2*14677*8511&ANNO_ACCADEMICO=2018&mostra_percorsi=S|Distributed Systems - AY 2018/2019]]
**Lessons schedule**:
* Wednesday, 16:00 - 18:00 (Room AB1)
* Thursday, 9am - 11am (Room AB1)
**Students Office hours**:
* Please send an email to me and we can arrange a meeting
----
===== Course Objectives =====
D1 – KNOWLEDGE AND UNDERSTANDING
At the completion of the module the students should be able to understand:
1 the basic definitions and various types of distributed systems
2 various architectural styles, different architecture and middleware
3 processes and threads
4 different types of communications: RPC, message oriented, stream oriented and multicast
5 basic concepts of naming
6 the problems of synchronisation of processes and possible solutions
7 basic concepts related to consistency and replication
8 basic concepts related to fault tolerance and security in distributed systems
9 various types of distributed systems such as web based and coordination based.
D2 – APPLYING KNOWLEDGE AND UNDERSTANDING
At the completion of the module the students should be able to:
1 design the architecture of a distributed system
2 implement and use thread and processes
3 apply processes and threads
4 apply various types of communications
5 use various types of naming systems
6 apply various solutions for process synchronisation
7 apply basic concepts for implementing fault tolerance and security in distributed systems
D3 MAKING JUDGEMENTS
At the completion of the module the students should be able to:
1 critically evaluate the architecture of a distributed system
2 critically appraise the use of thread and processes
3 estimate the impact of using a type of communication
4 criticise various types of naming systems
5 criticise possible solutions for process synchronisation
6 critically evaluate all various fault tolerance and security mechanisms that can be applied in distributed systems
D4 - COMMUNICATION SKILLS
Risultati attesi:
At the completion of the module the students should be able to:
1 communicate ideas, problems and solutions for building distributed systems;
2 interact with other people and undertake workgroup activities
D5 - LEARNING SKILLS
Risultati attesi:
At the completion of the module the students should be able to:
1 read and understand new technologies available for building distributed systems
----
===== Course Contents =====
Contents
Title: INTRODUCTION
Content: (i) Basic definitions; (ii) Goals when implementing a distributed system: Sharing, Transparency, Openness and Scalability; (iii) Scalability techniques.
Title: TYPES OF DISTRIBUTED SYSTEMS
Content: (i) Types of distributed systems; (ii) Distributed computing systems; (iii) Distributed information systems; (iv) Distributed pervasive systems
Title:ARCHITECTURES
Content: (i) Architectural styles; (ii) System architectures; (iii) Peer-to-peer; (iv) Hybrid architectures
Title:ARCHITECTURES
Content: (i) Peer-to-peer; (ii) Hybrid architectures
Title: Processes
Content: (i) Processes; (ii) Threads; (iii) Multithreaded clients; (iv) Multithreaded servers; (v) Virtualisation
Title: Client/Server anatomy
Content: (i) Client anatomy; (ii) Server Anatomy; (iii) Server cluster organisation; (iv) Distributed server and IPv6
Title: Communication
Content: (i) OSI model; (ii) Middleware definition; (iii) Types of Communication; (iv) Remote Procedure Calls
Title: Communication
Content: (i) Berkeley Sockets; (ii) Message-Passing Interface; (iii) Message-queuing systems; (iv) Message brokers; (v) IBM’s WebSphere Message-Queuing System
Title: Security – Encryption
Content: (i) Security: some basic definitions; (ii) Conventional Encryption; (iii) Public key encryption
Title: Digital Signatures and Authentication Protocols
Content: (i) Message Authentication Codes; (ii) Hash functions; (iii) Authentication Protocols; (iv) Symmetric Encryption Authentication; (v) X.509 Authentication Service
Title: Naming
Content: (i) Flat naming; (ii) Name Spaces; (iii) Domain Name Server
Title: SYNCHRONISATION
Content: (i) Physical Clocks; (ii) Clock Synchronization Algorithms; (iii) Logical clocks.
Title: SYNCHRONISATION
Content: (i) Mutual Exclusion; (ii) Leader Election
Title: CONSISTENCY AND REPLICATION
Content: (i) Basic definitions about Consistency and replication; (ii) Data-centric consistency models; (iii) Client-centric consistency models
Title: FAULT TOLERANCE
Content: (i) Introduction to fault tolerance; (ii) Process Resilience; (iii) Reliable client-server communication; reliable group communication; (iv) distributed commit
Title: Distributed object-based systems
Content: (i) architecture; (ii) processes; (iii) Communication; (iv) Naming; (v) Synchronisation; (vi) Consistency and replication; (v) Fault tolerance; (vi) security
Title: Distributed file systems
Content: (i) architecture; (ii) processes; (iii) Communication; (iv) naming; (v) Synchronisation; (vi) Consistency and replication; (v) Fault tolerance; (vi) security
Title: Distributed web based systems
Content: (i) architecture; (ii) processes; (iii) Communication; (iv) naming; (v) Synchronisation; (vi) Consistency and replication; (v) Fault tolerance; (vi) security
Title: distributed-coordination based systems
Content: student will read the chapter of Andrew S. Tanenbaum and give the lecture
----
===== Study material =====
The material can be found at the following link:
http://www.leonardomostarda.net/distributedSystems.html
----
===== Exams =====
Written exam is compulsory. Oral exam is not compulsory.
Exam marks must be registered during the exams dates. These are available
on esse3.