Sistemas Distribuídos

Ficha Curricular de 2017/18

  • Objetivos

    Possibilitar aos alunos uma introdução aos problemas fundamentais no desenho e na implementação de sistemas distribuídos. Ao completarem esta unidade curricular, os alunos deverão ser capazes de:
    • explicar o que é um sistema distribuído e quais as vantagens e propriedades desejáveis de tais sistemas;
    • descrever os princípios subjacentes ao funcionamento de sistemas distribuídos, os problemas e desafios associados, e avaliar a eficácia e limitações das suas soluções;
    • construir sistemas funcionais utilizando mecanismos de comunicação como sockets, RMI e Serviços Web.
  • Programa

    • Introdução aos Sistemas Distribuídos.
    • Arquitecturas de Software e de Sistemas.
    • Processos, Threads e Máquinas Virtuais.
    • Modelos de Comunicação.
    • Espaços de Nomes e Resolução de Nomes.
    • Relógios e Sincronização.
    • Modelos de Consistência.
    • Replicação.
    Estes conceitos serão aplicados na prática através da implementação de dois trabalhos práticos ao longo do semestre.
  • Bibliografia

      1. Andrew S. Tanenbaum, Maarten van Steen; Distributed Systems: Principles and Paradigms, Prentice-Hall, 3rd ed., 2017
      2. G. Coulouris, J. Dollimore, T. Kindberg; Distributed Systems: Concepts and Design, Addison-Wesley 4ed., 2005
  • Avaliação

    Avaliação distribuída com exame final:
    Trabalhos Práticos:  40% (com nota mínima: 50%)
    Exame Final:  60% (com nota mínima: 50%)
    Nota final = (0.6 * exame + 0.4 * trabalhos) * 20

    Obtenção de Frequência

    Mínimo de 50% nos trabalhos práticos para terem frequência.