Código |
14352
|
Ano |
3
|
Semestre |
S2
|
Créditos ECTS |
6
|
Carga Horária |
PL(30H)/T(30H)
|
Área Científica |
Informática
|
Objectivos de Aprendizagem |
Esta unidade Curricular tem como objectivos estudar o que é um sistema distribuído e as suas características, estudar quais os diferentes modelos de implementação de um sistema distribuído e estudar tecnologias que suportam a implementação de um sistema distribuído. No final o aluno deverá ser capaz de saber caracterizar sistemas distribuídos existentes, avaliar a viabilidade de implementação de um sistema distribuído e ser capaz de projectar e implementar sistemas distribuídos de vários tipos.
|
Conteúdos programáticos |
1. Introdução a processos, concorrência e sistemas distribuídos (características, desafios). 2. Modelos de programação distribuída (memória partilhada versus memória distribuída). 3. Concorrência em memória partilhada (prática com Threads em Java). 4. Sistemas de comunicação por mensagens (prática com Sockets TCP e UDP em Java) 5. Modelos Arquiteturais. 6. Modelos de Falhas, Interação e Segurança. 7. Tempo e relógios. 8. O modelo de RPCs e invocação remota de objectos (prática em java RMI). 9. Invocação remota na Internet (web services em JavaEE).
|
Metodologias de Ensino e Critérios de Avaliação |
Aulas teóricas: exposição dos conceitos com recurso a diapositivos, análise de casos práticos com discussão com os alunos. Aulas práticas: realização de fichas de trabalho orientadas, métodos de trabalho interactivo e aprendizagem por pares. Auto-aprendizagem: estudo individual e trabalhos de grupo com aprendizagem por pares.
|
Bibliografia principal |
[Coulouris 2011] “Distributed Systems:Concepts and Design”, 5th edition, George Coulouris, Jean Dollimore and Tim Kindgerg, Addison-Wesley, 2011.
[Tanenbaum 2007] “Distributed Systems Principles and Paradigms”, Andrew S. Tanenbaum, Maarten Van Steen, Pearson International Edition, 2007.
|
Língua |
Português
|