Sistemas Distribuídos

Objectivos

Esta é uma UC de consolidação, opcional, em sistemas distribuídos. Esta UC introduz  os modelos, métodos e técnicas básicas para o desenvolvimento de sistemas distribuídos. Como pré-requisito, os estudantes devem possuir conhecimentos de algoritmos, programação e redes de computadores.

 Conhecimentos

  • Problemas e desafios para o desenho de sistemas distribuídos;
  • Modelos arquitecturais para a construção de sistemas distribuídos;
  • Modelos e sistemas de comunicação directa e indirecta;
  • Alternativas para a nomeação, incluindo serviços de nomes e directório;
  • Soluções fundamentais de ordenação e registo de causalidade de eventos;
  • Modelos de consistência básicos e soluções de caching e replicação.

Aptidões e competências

  • Desenhar um sistema distribuídos para um problema não trivial;
  • Utilização de subsistemas de comunicação standard para a programação de sistemas distribuídos;
  • Implementação de sistemas distribuídos não triviais.

Caracterização geral

Código

8153

Créditos

6.0

Professor responsável

Nuno Manuel Ribeiro Preguiça

Horas

Semanais - 5

Totais - 52

Idioma de ensino

Português

Pré-requisitos

A disponibilizar brevemente

Bibliografia

Distributed Systems: Concepts and Design

George Coulouris, Jean Dollimore, Tim Kindberg, Gordon Blair

Publisher: Addison Wesley; 5th edition

ISBN-13: 978-0132143011

Método de ensino

A disponibilizar brevemente

Método de avaliação

A disponibilizar brevemente

Conteúdo

1. Introduction

1.1 Examples, characteristics, challenges 

2. Direct communication

2.1 Point-to-point communication

2.2 Multicast

3. Remote invocation

3.1 Model

3.2 Interfaces and data representation

3.3 Protocols and semantics in the presence of faults

3.4 Binding and concurrency in the server

4. Remote invocation in the Internet

4.1 Web-services

4.2  REST

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

5. Indirect communication

5.1 Group communication

5.2 Publish/subscribe

5.3 Message queues

6. Architectures and models

6.1 Architectures: client/server variants, p2p, proxy

6.2 Fault, interaction and security models

7 Security

7.1 Models

7.2 Cryptography

7.3 Case studies: TLS, OAuth

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

10. Naming in distributed systems

10.1 Problems and concepts

10.2 Name services

10.3 Directory services

Cursos

Cursos onde a unidade curricular é leccionada: