Sistemas Distribuídos

Engenharia Informática
6 ECTS; 3º Ano, 1º Semestre, 28,0 T + 42,0 PL + 5,0 OT + 5,0 O

Docente(s)
- António Manuel Rodrigues Manso
- Pedro Miguel Aparício Dias

Pré-requisitos
Conhecimentos básicos de programação, estruturas de dados e de redes.

Objetivos
Dotar os alunos de conhecimentos teóricos e práticos sobre programação paralela e concorrente
Dotar os alunos de conhecimentos teóricos e práticos sobre sistemas distribuídos.
Dominar as técnicas gerais de concepção, concretização e exploração de sistemas distribuídos.

Programa
1 - Introdução aos sistemas distribuídos
2 - Programação paralela e concorrente
- Métodos de paralelização de algoritmos
- Programação com Threads
- Acesso concorrente a recursos
- Balanceamento de carga
3 - Programação de sistemas distribuídos
- Programação com Sockets
- Programação com objectos remotos
- Segurança de sistemas distribuídos
4 - Programação Web Distribuída
- protocolos web
- Arquitectura web
- Web Serviçes
- Programação de dispositivos móveis.

Metodologia de avaliação
Trabalho prático sobre programação concorrente ? 20%
Trabalho prático sobre programação distribuída ? 20 %
Trabalho prático sobre programação Web distribuída ? 20 % ( mínimo de 10.0 valores)
Exame Teórico ? 40% (mínimo de 7.0 valores)

Bibliografia
- Cardoso, J. (2010). Programação de Sistemas Distribuídos em Java. Lisboa: FCA
- Alves Marques, J. e Guedes, P. (1998). Tecnologia de Sistemas Distribuídos. (Vol. 1). Lisboa: FCA
- Coulouris, G. e Dollimore, J. (2011). Distributed Systems: Concepts and Design. (Vol. 1). USA: Addison Wesley
- Guedes, P. e Marques, J. (1998). Tecnologia de Sistemas Distribuídos. Lisboa: FCA - Editora de Informática

Método de interação
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 projectos de Sistemas Distribuidos

Software utilizado nas aulas
- Java Development Kit
- Netbeans
- Node Js