Programação Distribuída

Conhecimentos de Base Recomendados

Programação em linguagem Java e pilha protocolar TCP/IP.

Métodos de Ensino

Exposição de matéria teórica e demonstrações com discussão.
Aulas práticas baseadas na resolução de exercícios práticos.
Avaliação contínua baseada em provas práticas distribuídas ao longo do semestre.
Realização e apresentação de um trabalho prático.
Realização de uma prova teórica na época de exames.

Resultados de Aprendizagem

Esta unidade curricular tem por objetivo permitir a aquisição de competências no planeamento e desenvolvimento de aplicações distribuídas orientadas a objetos, ou seja, aplicações constituídas por múltiplos componentes (processos, clientes, servidores, “threads”, objetos, etc.), eventualmente localizados em máquinas distintas e que interagem uns com os outros. Neste âmbito, também fazem parte das competências a adquirir a capacidade de lidar com aspetos relacionados com concorrência, mecanismos de sincronização, comunicação remota e objetos remotos. De modo a desenvolver os conhecimentos, aptidões e competências pretendidos, são considerados os seguintes paradigmas de programação, aos quais correspondem distintos níveis de abstração: troca de mensagens (sockets em Java), invocação remota de objetos (Java RMI e Corba) e Web services.

Programa

Introdução aos sistemas distribuídos;
Introdução ao paradigma de passagem de mensagens;
Programação distribuída baseada em sockets Windows e Java;
Aplicações “multithreaded” e com multicast em Java;
Introdução às plataformas de “middleware” para sistemas distribuídos;
Programação distribuída com Sun RPC;
Paradigma de programação baseado em objectos distribuídos;
Programação distribuída com Java RMI;
Programação distribuída com CORBA (Java);
Introdução aos serviços Web (Java);
Introdução à tecnologia .Net Remoting.

Docente(s) responsável(eis)

Estágio(s)

NAO