|
UNIVERSIDADE FEDERAL DE UBERLÂNDIA Av. João Naves de Ávila, 2121, Bloco 3N - Bairro Santa Mônica, Uberlândia-MG, CEP 38400-902 |
|
Plano de Ensino
IDENTIFICAÇÃO
Componente Curricular: |
|||||||||
Unidade Ofertante: |
|||||||||
Código: |
Período/Série: |
Turma: |
|||||||
Carga Horária: |
Natureza: |
||||||||
Teórica: |
Prática: |
Total: |
Obrigatória: |
Optativa: |
|||||
Professor(A): |
Ano/Semestre: |
||||||||
Observações: |
EMENTA
Introdução aos Sistemas Distribuídos; Modelos de Sistemas Distribuídos; Comunicação entre Processos Distribuídos; Consistência Global; Memória Compartilhada Distribuída; Sistemas de Arquivos Distribuídos; Serviço de Nomes/Diretório; Transações Distribuídas.
JUSTIFICATIVA
A disciplina de Sistemas Distribuídos apresenta uma justificativa robusta ao oferecer uma abordagem abrangente e prática sobre a construção e operação de sistemas que se estendem por múltiplos dispositivos e locais geográficos. Com o crescente avanço da tecnologia e a onipresença da conectividade, a compreensão dos sistemas distribuídos torna-se crucial para profissionais de tecnologia das áreas de computação. O objetivo geral da disciplina é capacitar os discentes a identificar as principais propriedades e modelos desses sistemas, compreender os componentes essenciais para sua construção e abordar os desafios inerentes.
OBJETIVO
Objetivo Geral: |
Capacitar o discente a identificar as principais propriedades e modelos de sistemas distribuídos, compreender os componentes essenciais para a construção de sistemas distribuídos e entender os principais problemas e soluções inerentes aos sistemas distribuídos. |
Objetivos Específicos: |
- Compreensão dos Fundamentos Teóricos: Desenvolver a capacidade dos discentes para compreender os princípios teóricos que norteiam os sistemas distribuídos, incluindo conceitos como comunicação entre processos, consistência, concorrência e tolerância a falhas. - Identificação e Análise de Modelos de Sistemas Distribuídos: Capacitar os alunos a identificar e analisar diferentes modelos de sistemas distribuídos, como arquiteturas cliente-servidor, sistemas peer-to-peer e sistemas de computação em grade, compreendendo suas características distintas e aplicações. - Construção de Sistemas Distribuídos: Desenvolver habilidades práticas na construção de sistemas distribuídos, incluindo a implementação de comunicação entre processos, coordenação e sincronização de recursos distribuídos, utilizando tecnologias e frameworks relevantes. - Resolução de Problemas em Ambientes Distribuídos: Capacitar os discentes a identificar e abordar os desafios inerentes aos sistemas distribuídos, como a garantia de consistência de dados, resiliência a falhas e escalabilidade, promovendo a aplicação de estratégias eficazes na resolução de problemas práticos. - Estudo de Casos e Análise Crítica: Estimular a análise crítica por meio do estudo de casos reais de implementação de sistemas distribuídos, permitindo aos alunos compreenderem as decisões arquiteturais, os desafios enfrentados e as soluções adotadas em contextos específicos. |
PROGRAMA
Data DDS Eventos
09-Jan-2024 TER Sistemas Distribuídos: apresentação e motivação
16-Jan-2024 TER Tempo e relógios, causalidade, modelos de redes
23-Jan-2024 TER Ordens parciais, ordens totais, relógios de Lamport, relógios de vetor
30-Jan-2024 TER Entregas FIFO/causal/totalmente-ordenada
06-Feb-2024 TER Algoritmo de Chandy-Lamport
13-Feb-2024 TER Feriado: Carnaval
20-Feb-2024 TER Segurança e vivacidade, modelos de falhas, o problema dos Dois Generais
27-Feb-2024 TER Formas de tolerância a falhas, entrega confiável, difusão confiável
02-Mar-2024 SAB Atividades acadêmicas extras (6ha): Tutorial de programação com Sockets
05-Mar-2024 TER Replicação do backup primário, replicação em cadeia, latência e taxa de transferência
12-Mar-2024 TER Não haverá aula neste dia (reposição em 23-mar)
19-Mar-2024 TER Determinismo, modelos de consistência, introdução ao consenso
23-Mar-2024 SAB Reposição 12-mar (3ha): Mais sobre consenso, resultado FLP, protocolo Paxos
26-Mar-2024 TER Replicação passiva e ativa
02-Apr-2024 TER Consistência eventual, disponibilidade, resolução de conflitos
09-Apr-2024 TER Árvores de Merkle, consistência de quórum, latência de cauda
16-Apr-2024 TER Introdução a sharding, hashing consistente
20-Apr-2024 SAB Atividades acadêmicas extras (3ha): Tutorial de MapReduce
23-Apr-2024 TER Recuperação: Entrega de todos os projetos atrasados
30-Apr-2024 TER Período destinado a outras atividades acadêmicas (10 dias) para os campi de Uberlândia, Patos de Minas e Monte Carmelo
07-May-2024 TER Período destinado a outras atividades acadêmicas (10 dias) para os campi de Uberlândia, Patos de Minas e Monte Carmelo
METODOLOGIA
Parte teórica: Aulas expositivas dialogadas com demonstrações práticas, diagramas e codificação-exemplo, acompanhadas de indicação para materiais de apoio.
Parte prática: Desenvolvimento de projetos e apoio de sítios informativos de internet com discussão sobre dúvidas, exposição de exemplos e orientação em projetos.
Observação: Os materiais de referência e de apoio, assim como links relevantes, avaliações e repositório de materiais complementares, serão disponibilizados com o suporte do Moodle da UFU (https://moodle.ufu.br/course/view.php?id=12165).
AVALIAÇÃO
Parte teórica
- Avaliação continuada: atividades avaliativas do tipo questionário no Moodle quase toda semana + tutoriais em atividades acadêmicas extras. Total máximo possível: 60% da nota final.
Parte prática
- Projeto(s) individual ou em grupo. Total máximo possível: 40% da nota final.
ATIVIDADE DE RECUPERAÇÃO (REC)
- Aceite da entrega de trabalhos atrasados com 10% de desconto na nota dos trabalhos entregues até o final do semestre letivo.
BIBLIOGRAFIA
Básica
BIRMAN, Kenneth P. Reliable distributed systems: technologies, web services, and applications. New York: Springer, c2010.
COULOURIS, George. Sistemas distribuídos: conceitos e projetos. Porto Alegre: Bookman, 2013.
TANENBAUM, A. S.; STEEN, M. V. Sistemas distribuídos: princípios e paradigmas. [S.I]: Prentice Hall, 2007.
Complementar
ANDERSON, Ross. Security engineering: a guide to building dependable distributed systems. 2nd ed. Indianápolis: J. Wiley, c2008.
ANDREWS, Gregory R. Foundations of multithreaded, parallel, and distributed programming. Reading, Mass.: Addison-Wesley, c2000.
BEN-ARI, M. Principles of concurrent and distributed programming. 2nd ed. Harlow; New York: Addison-Wesley, 2006.
FOKKINK, Wan. Distributed algorithms: an intuitive approach. Cambridge: The Mit Press, 2013.
MUNIR, Arslan; GORDON-ROSS, Ann; RANKA, Sanjay. Modeling and optimization of parallel and distributed embedded systems. Wiley, 2016.
TEL, Gerard. Introduction to distributed algorithms. 2nd ed. Cambridge: Cambridge University Press, 2000.
APROVAÇÃO
Aprovado em reunião do Colegiado realizada em: ____/____/______
Coordenação do Curso de Graduação: _________________________
Documento assinado eletronicamente por Igor Santos Peretta, Professor(a) do Magistério Superior, em 23/01/2024, às 09:04, conforme horário oficial de Brasília, com fundamento no art. 6º, § 1º, do Decreto nº 8.539, de 8 de outubro de 2015. |
A autenticidade deste documento pode ser conferida no site https://www.sei.ufu.br/sei/controlador_externo.php?acao=documento_conferir&id_orgao_acesso_externo=0, informando o código verificador 5120047 e o código CRC AF01DD94. |
Referência: Processo nº 23117.002005/2024-41 | SEI nº 5120047 |