Skip to main content

ISMAT 7348

Computação Distribuída

Engenharia Informática (ISMAT)
  • ApresentaçãoPresentation
    A disciplina de Computação Distribuída foca-se nas infraestruturas que suportam aplicações distribuídas modernas, combinando bases teóricas com uma forte componente prática. São abordados conceitos como escalabilidade, disponibilidade, tolerância a falhas, resiliência, segurança e gestão de serviços distribuídos. A unidade curricular destaca a contentorização com Docker e a orquestração com Kubernetes, incluindo deployment, balanceamento de carga, escalabilidade horizontal, configuração de serviços, persistência e recuperação. Na componente prática, os estudantes trabalham na preparação, automatização e administração de ambientes distribuídos. O curso culmina num projeto final, no qual aplicam os conhecimentos adquiridos na implementação e gestão de uma infraestrutura distribuída completa.
  • ProgramaProgramme
    Modelos de comunicação: troca de mensagens, invocação remota de funções. Comunicação multicast. Segurança na comunicação. Ameaças e ataques. Canais de Comunicação seguros.  Processamento em sistemas distribuídos. Serviços com manutenção de estado. Implementações concorrentes baseadas em eventos vs. "threads". Tolerância a falhas. Algoritmos de eleição. Protocolo "two-phase commit".  Protocolo primário-apoio ("primary-backup"). Técnicas básicas  para aumentar a escalabilicade. Estudo de caso: Domain Name System (DNS).
  • ObjectivosObjectives
    Esta unidade curricular visa o desenvolvimento de competências na compreensão, implementação e gestão de infraestruturas de computação distribuída. São abordadas arquiteturas fundamentais, modelos de suporte a serviços distribuídos, contentorização, orquestração e mecanismos de resiliência. No final da unidade, os mestrandos deverão ser capazes de: O1 compreender o conceito de infraestrutura distribuída, as suas características, vantagens e desafios; O2 conhecer modelos de virtualização, contentorização e deployment de serviços; O3 configurar e administrar ambientes distribuídos com Docker e Kubernetes, assegurando comunicação entre serviços, escalabilidade, disponibilidade e persistência; O4 compreender mecanismos de sincronização, tolerância a falhas, monitorização e recuperação em infraestruturas distribuídas.
  • BibliografiaBibliography
    Communication models: message passing, remote function invocation, and multicast communication. Communication security. Threats and attacks. Secure communication channels. Processing in distributed systems. Stateful services. Concurrent implementations based on events vs. threads.Fault tolerance. Election algorithms. Two-phase commit protocol. Primary-backup protocol. Basic techniques for improving scalability. Case study: Domain Name System (DNS). George Coulouris, Jean Dollimore, Tim Kindberg, Gordon Blair Distributed Systems, Concepts and Design, 5th Edition, ISBN 978-0-273-76059-7, Pearson, 2012. Cloud Computing: Theory and Practice (2nd Edition), Dan C. Marinescu, Ed. Morgan Kaufmann/Elsevier, 2018
  • MetodologiaMethodology
    As aulas teóricas são de exposição. Sempre que necessário, exemplos que ajudem à compreensão dos tópicos serão apresentados. A matéria exposta segue de perto a bibliografia principal recomendada. Para complementar, em tópicos muito pontuais, serão fornecidos apontamentos ou artigos. Ao longo do semestre serão propostos problemas para a consolidação dos conceitos apresentados nas aulas teóricas. Estes problemas serão discutidos nas aulas teórico-práticas, mas espera-se que os estudantes os resolvam fora das aulas. Os estudantes deverão ainda realizar 2 pequenos projetos, onde deverão aplicar os conceitos apresentados nas aulas teóricas
  • LínguaLanguage
    Português
  • TipoType
    Semestral
  • ECTS
    6
  • NaturezaNature
    Obrigatório
  • EstágioInternship
    Não