filmeu

Disciplina Computação Distribuída

  • Apresentação

    Apresentação

    A disciplina de Computação Distribuída foca-se no estudo e desenvolvimento de aplicações distribuídas modernas, combinando fundamentos teóricos com uma forte componente prática. São analisadas as principais características destes sistemas, como escalabilidade, consistência, tolerância a falhas, resiliência e segurança, bem como os desafios arquiteturais e de implementação. Na prática, os estudantes utilizam Java e Spring Boot para criar microsserviços que comunicam através de APIs REST e Apache Kafka, com persistência em bases de dados relacionais (PostgreSQL) e documentais (MongoDB). São explorados conceitos de containerização e deployment com Docker, testes em sistemas distribuídos e padrões avançados de coordenação como SAGAs e consistência eventual. O curso culmina num projeto final agregador de conteúdos, onde os alunos desenvolvem um sistema completo, aplicando os conhecimentos adquiridos e sistematizando as competências técnicas e transversais essenciais para o mercado.
  • Conteúdos Programáticos

    Conteúdos Programáticos

    1. Introdução. Caracterização, requisitos, arquitectura e funcionalidades 2. Arquitecturas e Modelos de Comunicação Distribuída. Arquitecturas de sistemas, níveis de software 3. Comunicação entre Processos Distribuídos (IPC). Características da comunicação entre processos, Invocação, parâmetros e heterogeneidade de dados 4. Invocação Remota e Objectos Distribuídos. RPC: Modelo de execução. Linguagem de definição de interfaces (IDL). Plataformas de execução: Sun RPC, Java RMI 5. Nomeação e Serviços de Directório. Tipos de Nomes. Espaços de nomeação. Serviços de Directório (Web, X.500, LDAP) 6. Web Services (WS). Modelo de Execução Web Services (WS). O protocolo SOAP. Linguagens de definição de Serviços (WSDL) 7. Segurança. Modelo de segurança. Autenticação. Controlo de acesso 8. Sistemas de Ficheiros Distribuídos. Arquitecturas de SGF distribuídos. Implementações: NFS e AFS 9. Transações. Modelo transaccional. Propriedades ACID das transacções. Transacções distribuídas. Protocolo 2-phase-commit
  • Objetivos

    Objetivos

    No final da unidade curricular, os estudantes deverão conhecer os conceitos fundamentais e os principais desafios da computação distribuída, com foco em desempenho, fiabilidade, resiliência e segurança. Serão capazes de aplicar técnicas de design e boas práticas para modelar soluções distribuídas adequadas a diferentes contextos, desenvolver microsserviços com comunicação síncrona e assíncrona, integrar persistência de dados e mecanismos de coordenação entre serviços. Além disso, terão oportunidade de experimentar metodologias e ferramentas que suportam o ciclo de vida de sistemas distribuídos, incluindo containerização, monitorização e estratégias de teste. Pretende-se ainda que os estudantes demonstrem competências transversais de trabalho em equipa, comunicação técnica e resolução de problemas em ambientes complexos, consolidando uma preparação sólida para desafios reais de desenvolvimento e arquitetura de software distribuído.
  • Metodologias de ensino

    Metodologias de ensino

    A unidade curricular combina metodologias teóricas e práticas de forma integrada. Na vertente teórica, são realizados mini-testes periódicos para garantir o acompanhamento contínuo e um teste final de consolidação de conhecimentos. Na vertente prática, adota-se uma abordagem learning-by-doing, com desenvolvimento progressivo de microsserviços, checkpoints semanais, revisões de código e feedback contínuo, promovendo uma aprendizagem ativa e iterativa. São ainda introduzidas metodologias inovadoras como peer review entre grupos, resolução colaborativa de problemas e utilização de ferramentas de desenvolvimento profissional (GitHub, Docker, CI/CD), aproximando os estudantes das práticas reais da indústria e potenciando competências técnicas e transversais.
  • Bibliografia principal

    Bibliografia principal

    Coulouris, Dollimore & Kindberg, Distributed Systems: Concepts and Design, 5th Edition, Addison-Wiley, 2011, ISBN 0132143011.  
  • Avaliação

    Avaliação

    A avaliação da unidade curricular integra componentes teórica e prática, ambas de caráter obrigatório:

    • Componente Teórica (50%)
      • Mini-testes individuais: 20% da nota final.
      • Frequência ou exame individual: 30% da nota final.
    • Componente Prática (50%)
      • Trabalho prático em grupo: 50% da nota final, consistindo no desenvolvimento de um sistema distribuído completo, com entrega progressiva e defesa final.

    A classificação final resulta da soma ponderada destas componentes, sendo exigido um desempenho mínimo >=9,5 em cada componente para aprovação

INSCRIÇÃO AVULSO
Lisboa 2020 Portugal 2020 Small financiado eu 2024 prr 2024 republica portuguesa 2024 Logo UE Financed Provedor do Estudante Livro de reclamaões Elogios entidade signataria