Saltar para:
Logótipo
Você está em: Início > CC435
Mapa das Instalações
FC6 - Departamento de Ciência de Computadores FC5 - Edifício Central FC4 - Departamento de Biologia FC3 - Departamento de Física e Astronomia e Departamento GAOT FC2 - Departamento de Química e Bioquímica FC1 - Departamento de Matemática

Sistemas Distribuídos e Móveis

Código: CC435     Sigla: CC435

Áreas Científicas
Classificação Área Científica
OFICIAL Ciência de Computadores

Ocorrência: 2011/2012 - 1S

Ativa? Sim
Página Web: http://www.dcc.fc.up.pt/~lblopes/aulas/sdm/index.html
Unidade Responsável: Departamento de Ciência de Computadores
Curso/CE Responsável: Mestrado Integrado em Engenharia de Redes e Sistemas Informáticos

Ciclos de Estudo/Cursos

Sigla Nº de Estudantes Plano de Estudos Anos Curriculares Créditos UCN Créditos ECTS Horas de Contacto Horas Totais
M:CC 5 PE do Mestrado em Ciência de Computadores 1 - 7,5 67 202,5
2
MI:ERS 5 Plano de Estudos a partir de 2007 4 - 7,5 67 202,5

Língua de trabalho

Português

Objetivos

Possibilitar aos alunos um conhecimento aprofundado sobre sistemas
distribuídos, com ênfase nos fundamentos, técnicas e prática relevante
no desenho e implementação destes sistemas. Ao
completarem esta unidade curricular, os alunos deverão ser capazes de:
(a) explicar o que é um sistema distribuído e quais as vantagens e propriedades
desejáveis de tais sistemas; (b) descrever os princípios subjacentes
ao funcionamento de sistemas distribuídos, os problemas e desafios
associados, e avaliar a eficácia e limitações das suas soluções; (c)
construir sistemas funcionais utilizando mecanismos de comunicação
como sockets, RPC, RMI e middleware existente.

Programa

Introdução aos sistemas distribuídos e móveis. Conceitos fundamentais
de sistemas distribuídos: modelos arquitecturais; comunicação entre
processos; algoritmos distribuídos; mobilidade de recursos e
computações. Processos e comunicação: descriptores e streams;
processos e threads; virtualização; clientes; servidores; migração de
código; invocação remota de procedimentos, comunicação por mensagens,
comunicação por streams, comunicação multicast. Aplicações
cliente-servidor: Java sockets TCP ou UDP/IP, streams, servidores
multithreaded, conexões cifradas. Coordenação e sincronização: tempo e
estados globais; relógios e noção de tempo; ordenação de eventos;
sincronização: modelos de exclusão mútua - centralizado,
descentralizado, distribuído, e troca de "tokens" em anel; algoritmos
de eleição de líder (consensos). Middleware: remote procedure call;
object request brokers (ORBs); invocação remota de métodos; modelos
distribuídos de objectos; CORBA; Java RMI. Sistemas de nomes: nomes,
identificadores e endereços; abordagens baseadas em "home",
"distributed hash tables" e hierárquicas; espaços de nomes, resolução
de nomes e implementação de um espaço de nomes; o DNS e
LDAP. Consistência e replicação: modelos de consistência centrados nos
dados; modelos de consistência centrados no cliente; gestão de
réplicas; protocolos de consistência. Tolerância a falhas: modelos de
falha, falhas bizantinas, redundância para obviar a falha,
resiliência de processos, comunicação cliente-servidor fiável;
comunicação de grupos fiável; "commit" distribuído;
recuperação. Mobilidade de recursos e de computações; paradigma dos
agentes móveis.

Bibliografia Obrigatória

Andrew S. Tanenbaum, Maarten van Steen; Distributed Systems: Principles and Paradigms, Prentice-Hall, 2nd ed., 2007
G. Coulouris, J. Dollimore, T. Kindberg; Distributed Systems: Concepts and Design, Addison-Wesley 4ed., 2005
Elliotte Rusty Harold; ava Network Programming, O'Reilly & Associates.
G. Brose, A. Vogel, K. Duddy; Java Programming with CORBA, Wiley, 3rd ed., 2001
William Grosso; Java RMI, O'Reilly & Associates
G. Vigna; Mobile Code Technologies, Paradigms, and Applications, PhD Thesis Politecnico di Milano, Italy, 1998 ((only some chapters))
G. Vigna; Mobile Agents: Ten Reasons For Failure, Proceedings of MDM 2004, pp. 298-299., 2004
A. Fuggetta, G.P. Picco, and G. Vigna.; Understanding Code Mobility, IEEE Transactions on Software Engineering 24(5), pp. 342-361., 1998

Métodos de ensino e atividades de aprendizagem

Aulas Teóricas: exposição e discussão dos conceitos sobre sistemas distribuídos e móveis.

Aulas Teórico-Práticas: para apoio aos alunos no desenho e implementação de sistemas e aplicações distribuídos.

Tipo de avaliação

Avaliação distribuída com exame final

Obtenção de frequência

Perdem frequência os alunos que não obtenham uma classificação superior ou igual à nota mínima exigida na componente prática.

Fórmula de cálculo da classificação final

Ficam aprovados os alunos que satisfaçam simultaneamente as duas condições seguintes:

1. Nota mínima na componente prática: 50% de (P1+P2)

2. Nota final superior ou igual a 9.5 valores em que

NotaFinal = T1 + T2 + P1 + P2

ou

NotaFinal = T + P1 + P2

Provas e trabalhos especiais

A avaliação tem em conta duas componentes:

1. PRÁTICA com 2 elementos de avaliação:

P1: Trabalho prático envolvendo programação: 4 valores

P2: Trabalho prático envolvendo programação: 4 valores

2. TEÓRICA com dois elementos de avaliação:

T1. Teste a meio do semestre: 6 valores

T2. Teste no final do semestre: 6 valores

ou

T. exame final: 12 valores

Os alunos que tendo passado à disciplina por testes quiserem ainda assim ir a exame, ficarão com a nota do exame na componente teórica, e não a melhor das duas.

Melhoria de classificação

Os alunos que pretendam melhorar a sua classificação no ano lectivo seguinte podem optar por melhorar as duas componentes, voltando a realizá-las, ou então melhorar apenas a componente teórica.
Recomendar Página Voltar ao Topo
Copyright 1996-2024 © Faculdade de Ciências da Universidade do Porto  I Termos e Condições  I Acessibilidade  I Índice A-Z  I Livro de Visitas
Página gerada em: 2024-09-22 às 15:52:40 | Política de Utilização Aceitável | Política de Proteção de Dados Pessoais | Denúncias