Publicação em Diário da República: Despacho n.º 8644/2020 - 08/09/2020
5 ECTS; 3º Ano, 1º Semestre, 28,0 PL + 28,0 TP , Cód. 911943.
Docente(s)
            - António Manuel Rodrigues Manso (1)(2)
(1) Docente Responsável
(2) Docente que lecciona
Pré-requisitos
          Não Aplicável
Objetivos
          1 - Compreender os conceitos essenciais de computação distribuída e a sua aplicação em diferentes arquiteturas
2 - Entender e aplicar princípios de segurança em sistemas distribuídos.
3 - Desenvolver competências para projetar e desenvolver sistemas distribuídos robustos, eficientes e seguros
Programa
          1 - Sistemas distribuídos
     a. Introdução aos sistemas distribuídos
     b. Arquiteturas de sistemas distribuídos
     c. Tecnologia Blockchain: Definição, estruturas de dados e protocolos de consenso. 
2 - Segurança da informação
     a. Sistemas confiáveis e ameaças à segurança
     b. Objetivos da segurança: Confidencialidade, Integridade e Disponibilidade
     c. Projeto e implementação de sistemas seguros
3 - Computação multitarefa
     a. Modelos e arquitetura de sistemas de execução paralela 
     b. Paralelização de algoritmos
     c. Programação com Threads
     d. Acesso concorrente a recursos
     e. Balanceamento de carga
4 - Computação distribuída
     a. Modelos e arquitetura de sistemas distribuídos
     b. Programação com Sockets
     c. Execução remota de procedimentos
     d. Programação com serviços
Metodologia de avaliação
          Trabalhos práticos 60% - Mínimo de 10,0 valores em 20. 
Exame Teórico: 40% - mínimo de 7,0 valores em 20
Aos alunos que não obtenham mínimos nos trabalhos práticos será facultado um exame prático em substituição dos mesmos.
Bibliografia
          -  Cardoso, J. (2010). Programação de Sistemas Distribuídos em Java. Lisboa:  FCA
-  Coulouris, G.  e Dollimore, J. (2011). Distributed Systems: Concepts and Design. (Vol. 1). USA:  Addison Wesley
- González, J. (2017). Java 9 Concurrency Cookbook. Oracle:  PAckt
- Singhal , B. (2018). Beginning Blockchain: A Beginner's Guide to Building Blockchain Solutions . Paperback :  Apress
Método de Ensino
          Aulas teóricas expositivas para apresentação dos conteúdos programáticos. 
Aulas práticas laboratoriais para resolução de problemas e consolidação de conhecimentos Acompanhamento e orientação no desenvolvimento de projetos de Sistemas Distribuídos
Software utilizado nas aulas
          - Java Development Kit
- Bouncy Castle  Open-source cryptographic API
- Netbeans
Aprovado em Conselho Técnico Cientifico: Aprovada na Ata nº 42/2025 de 21/05
Download da Ficha da Unidade Curricular (FUC)

















