Faculdade de Ciências e Tecnologia

Distributed Systems

Code

8153

Academic unit

Faculdade de Ciências e Tecnologia

Department

Departamento de Informática

Credits

6.0

Teacher in charge

Nuno Manuel Ribeiro Preguiça

Weekly hours

4

Total hours

52

Teaching language

Português

Objectives

This is an optional consolidation course on distributed systems. It provides the basic knowledge on the models, methods and techniques for developing distributed systems. As prerequisites students should have previous acquaintance with algorithms, programming, and computer networks.

Knowledge 

  • Problems and challenges for the design of distributed systems;
  • Architectural models for building distributed systems;
  • Models and systems for direct and indirect communication;
  • Alternatives for naming, including name and directory services;
  • Essential solutions for ordering and tracking causality of events;
  • Basic consistency models and solutions for caching and replication.

Know-how

  • Design a distributed system for solving a non-trivial problem.
  • Leverage standard communication sub-systems for programming distributed systems;
  • Program non-trivial distributed systems.

Prerequisites

As prerequisites students should have previous acquaintance with algorithms, programming, and computer networks.

Good Java programming skills are essential.

Subject matter

1. Introduction

1.1 Examples, characteristics, challenges

 

2. Architectures and models

2.1 Architectures: client/server, p2p, proxy

2.2 Fault, interaction and security models

 

3. Direct communication

3.1 Point-to-point communication

3.2 Multicast

 

4. Remote invocation

4.1 Model

4.2 Interfaces and data representation

4.3 Protocols and semantics in the presence of faults

4.4 Binding and concurrency in the server

 

5. Remote invocation in the Internet

5.1 Web-services

5.2  REST

5.3 Asynchronous invocation (e.g. AJAX) and push models

 

6. Indirect communication

6.1 Group communication

6.2 Publish/subscribe

6.3 Message queues

 

7. Naming in distributed systems

7.1 Problems and concepts

7.2 Name services

7.3 Directory services

 

8. Time

8.1 Physical clocks

8.2 Logical clocks

8.3 Vector clocks

8.4 Version vectors

 

9. Introduction to replication and consistency

9.1 Caching

9.2 Primary/backup replication

Bibliography

Distributed Systems: Concepts and Design

George Coulouris, Jean Dollimore, Tim Kindberg, Gordon Blair

Publisher: Addison Wesley; 5th edition

ISBN-13: 978-0132143011

Teaching method

Lectures for presenting and discussing fundamental concepts and techniques/algorithms.

Labs are used for presenting basic distributed systems techniques (see program). Some sessions are used exclusively for discussing solutions and problems in the implementation of the course projects.

Evaluation method

Método de avaliação dos alunos

Componentes da avaliação

  • Dois mini-testes, com o peso na nota final de 35% cada um.
  • Dois trabalhos práticos, com peso na nota final de 15% cada um.

Notas a ter em atenção

  • A nota final é aproximada ao valor, as notas intermédias à décima de valor.
  • Os mini-testes são realizados sem consulta.
  • Ter êxito na frequência é condição necessária para aceder ao exame de recurso.

Avaliação da frequência

Têm frequência os alunos cuja nota de frequência seja igual ou superior a 8 valoes. A nota de frequência é calculada da seguinte forma:

  • Nota de frequência = 50% * trab 1 + 50% * trab 2

A nota do trabalho prático será obtido pela avaliação do trabalho efectuado, a qual pode incluir uma discussão sobre o mesmo.

Nota final

Para os alunos com frequência, a nota final será calculada da seguinte forma:

  • Nota final = 35% * teste 1 + 35% * teste 2 + 15% * trab 1 + 15% * trab 2

Para os alunos que vão a exame, a nota final será calculada da seguinte forma:

  • Nota final = 70% * exame + 15% * trab 1 + 15% * trab 2
Para os alunos que pretendem fazer melhoria, a nota final será calculada da seguinte forma:
  • Nota final = MAX( 35% * teste 1 + 35% * teste 2, 70% * exame) + 15% * trab 1 + 15% * trab 2

Condições de aprovação na cadeira

1. Trabalho prático válido;

2. Avaliação de frequência superior ou igual a 8,0 valores;

3. Nota final superior ou igual a 9,5 valores.

Courses