Sistemas Distribuídos

Métodos de Ensino

Nesta unidade curricular são utilizadas as seguintes metodologias de ensino:

1. Método expositivo: método explicativo onde factos, conceitos, princípios e generalizações são definidos e apresentados pelo professor e discutidos com a turma, seguido de exemplos demonstrativos;

2. Método experimental: método activo onde o aluno desenvolve o conhecimento através de diversas fichas práticas individuais e o desenvolvimento do projecto fina de grupo.

Resultados de Aprendizagem

Espera-se que no final da unidade curricular o aluno esteja habilitado a:

1. Caracterizar sistemas distribuídos e descrever os seus principais conceitos, arquitecturas, problemas e desafios.

2. Implementar sistemas distribuídos pela utilização de primitivas básicas de comunicação, de mecanismos de inovação remota de objectos e de serviços web.

Programa

1. Introdução aso Sistemas Distribuídos (Caracterização de Sistemas Distribuídos; Objectivos: conectividade, transparência, escalabilidade; Conceitos de hardware distribuídos; Exemplos de sistemas distribuídos; Middeware; Arquitecturas de sistemas distribuídos).

2. Comunicação (Camadas de protocolos, Remote Procedure Call (RPC); acesso remoto a objectos; Comunicação orientada a mensagens; Persistência e sinconismo; Comunicação orientada a streams)

3. Problemas em Sistemas Distribuídos (sincronização de relógios, Consistência e replicação; Tolerância a falhas)

4. Sockts (Protocolos TCP e UDP; Programação com stockets em JAVA; Multicast e Broadcast)

5. Java RMI (Arquitectura do Java RMI; Serviços; API; Segurança)

6. REST Web Services (O Protocolo HTTP; Arquitectura REST; Implementação com JAX-RS)

Docente(s) responsável(eis)

Estágio(s)

NAO

Bibliografia

orge Cardoso,” Programação de Sistemas Distribuídos em Java”, FCA, 2008, ISBN: 978-972-722-601-6.

Bill Burke, “RESTFUL Java with JAX-RS 2.0”, 2nd ed., O´Reilly, 2013, ISBN: 978-1-449-36134-1. Jean Dollimore, Tim Kindberg, George Coulouris, “Distributed Systems: Concepts and Design”, 4th Edition, Addison Wesley, 2005, ISBN: 978-032-126-354-4.

David Reilly e Michael Reilly, “Java Network Programming and Distributed Computing”, Addison-Wesley, 2002, ISBN: 978-020-171-037-3.