Sistemas Distribuídos

Denominação Estratégia ECTS
Sistemas Distribuídos Teórica/prática e Prática 8
Área científica: Ciências da Especialidade/Aplicadas
Objectivos de aprendizagem:

Neste curso pretende-se que os alunos adquiram conhecimentos sólidos sobre as arquitecturas, modelos e protocolos de organização e gestão de sistemas distribuídos. Os alunos deverão conseguir definir e caracterizar diferentes tipos de sistemas distribuídos, nomeadamente os seus objectivos, serviços de middleware envolvidos e variantes arquitecturais ao modelo base Cliente-Servidor. Deverão ainda conseguir caracterizar as técnicas e os modelos de comunicação mais utilizados em sistemas distribuídos, e.g., invocação remota de métodos, comunicação assíncrona (mensagens) e comunicação síncrona (streaming). Pretende-se também introduzir algumas ferramentas usadas no desenvolvimento de aplicações distribuídas (cf. RMI/EJB, CORBA/CCM, DCOM/.NET, Web Services). Os alunos deverão ficar capazes de aplicar os conceitos e mecanismos de implementação de sistemas distribuídos recorrendo a tecnologias existentes (e.g., invocação de métodos em objectos remotos (RMI) e Web Services).

Síntese programática:
Introdução aos Sistemas Distribuídos.
Comunicação em Sistemas Distribuídos.
Processamento, Localização e Sincronização de Recursos.
Replicação de Recursos e Tolerância a Falhas.
Ferramentas e Serviços Remotos.
 
Competências específicas adquiridas:

Ser capaz de:

– Conhecer as arquitecturas, os modelos e os protocolos de gestão de sistemas distribuídos mais utilizados.

– Identificar as ferramentas actualmente utilizadas para o desenvolvimento de aplicações distribuídas, tais como RMI/EJB, CORBA/CCM, COM+/DCOM/.NET

– Definir e caracterizar os sistemas distribuídos, nomeadamente os seus objectivos, os conceitos de hardware, software e middleware envolvidos e o modelo base de arquitectura mais utilizado (Cliente-Servidor).

– Caracterizar as técnicas e os modelos de comunicação mais utilizados em sistemas distribuídos, tais como a invocação remota de procedimentos, invocação de métodos em objectos remotos, comunicação assíncrona (baseada em mensagens) e comunicação síncrona (multimédia).

– Compreender os modelos mais importantes na identificação, localização e gestão de recursos em sistemas distribuídos.

– Caracterizar os algoritmos de sincronização e controlo de concorrência mais utilizados em sistemas distribuídos.

– Compreender e aplicar os modelos e protocolos mais utilizados na replicação de recursos e na gestão da consistência como forma de aumentar a tolerância a falhas.

– Caracterizar e utilizar os algoritmos mais utilizados no controlo de transacções distribuídas.

– Identificar os problemas e usar as soluções actualmente utilizadas na protecção de recursos.

– Identificar e caracterizar as aplicações mais relevantes de sistemas distribuídos tais como sistemas de ficheiros distribuídos, sistemas de documentos distribuídos, sistemas de coordenação e multimédia distribuídos.

– Identificar, caracterizar e comparar os modelos de objectos e componentes existentes no mercado de middleware. incluindo os modelos CORBA/CCM, RMI/EJB, COM+/DCOM/.NET.

– Aplicar os conceitos e mecanismos de implementação de sistemas distribuídos recorrendo à tecnologia de rede disponível na linguagem Java – invocação de métodos em objectos remotos Remote Method Invocation (RMI) e Java networking. 

Referências bibliográficas:

[1] Coulouris G., Dollimore J., Kindberg T., Blair, G. S., Distributed Systems Concepts and Design, 5th Ed., Addison-Wesley 2011.

[2] Tanenbaum, A., Steen, M., Distributed Systems, Principles and Paradigms, Prentice Hall 2002.

[3] Sun Developers Services, URL: http://developer.java.sun.com/developer/ (2009).

[4] Jian, Chen, Java RMI vs .Net Remoting, White Paper, 2003, http://students.cs.tamu.edu/jchen/cpsc689-608/comparison/l0c0607-framework_comp_lichen.pdf (2007).
 

Visualizar projetos: ISUS