Geral:
Capacitar o aluno para o desenvolvimento de sistemas distribuídos, sabendo reconhecer os problemas e discernir sobre qual técnica ou paradigma que deve ser aplicado.
Específicos:
Saber reconhecer o que é um sistema distribuído e quais são os requisitos necessários para se construir tais sistemas.
Conhecer a conceituação e terminologia utilizada em sistemas distribuídos, os modelos de arquiteturas e aplicações.
Compreender quais os paradigmas e modelos usados no projeto e desenvolvimento de sistemas distribuídos
Aprender e por em prática quais tecnologias podem ser usadas para implementar tais sistemas
Saber analisar quais são as melhores técnicas dado um problema distribuído
Paradigmas e modelos usados para a construção de sistemas de software que apresentam distribuição de controle e/ou dados e os algoritmos distribuídos que os fundamentam.
1.Introdução
2.Requisitos de Software para Sistemas Distribuídos
3.Paradigmas dos Sistemas Distribuídos
4.Modelos de Organização de Sistemas Distribuídos
5.Processos
6.Comunicação
7.Sincronização e Coordenação
8.Tolerância a Falhas
9.Segurança
Aula Expositiva
Leitura Dirigida
Demonstração (prática realizada pelo professor)
Laboratório (prática realizada pelo aluno)
Trabalho de Pesquisa
NOTA 1a V.A.
100% Correção dos exercícios 1, 2, 3 e 4;
NOTA 2a V.A.
100% Correção dos exercícios 5, 6 e 7;
NOTA 3a V.A
· 100% Correção do Projeto Prático da disciplina;
FINAL
100% Prova Online;
O plano de ensino da disciplina pode ser obtido: AQUI
CONTEÚDOS ABORDADOS:
Primeiro Contato com a Disciplina
SUMÁRIO DA METODOLOGIA:
Aula síncrona: Apresentação do conteúdo (2h)
Leitura: Capítulo 1 “Caracterização de sistemas Distribuídos” do livro do Coulouris (2h)
PRÁTICAS AVALIATIVAS:
Exercício do conteúdo abordado
CONTEÚDOS ABORDADOS:
Introdução sobre sistemas distribuídos
SUMÁRIO DA METODOLOGIA:
Aula: Apresentação do conteúdo
Exercício
PRÁTICAS AVALIATIVAS:
Exercício do conteúdo abordado
CONTEÚDOS ABORDADOS:
Requisitos básicos de Sistemas Distribuídos
SUMÁRIO DA METODOLOGIA:
Aula síncrona: Apresentação do conteúdo
Leitura: Building a scalable distributed systems. Part 1 e Part2 (2h)
Exercício
PRÁTICAS AVALIATIVAS:
Exercício do conteúdo abordado
CONTEÚDOS ABORDADOS:
Modelos de Sistema Distribuído
SUMÁRIO DA METODOLOGIA:
Aula síncrona: Apresentação do conteúdo
Vídeo: Tipos de Arquitetura
Leitura: Capítulo 2 “Modelos de sistemas Distribuídos” do livro do Coulouris
Exercício
PRÁTICAS AVALIATIVAS:
Exercício do conteúdo abordado
CONTEÚDOS ABORDADOS:
Processos
SUMÁRIO DA METODOLOGIA:
Aula síncrona: Apresentação do conteúdo
Vídeo: Processos distribuídos
Leitura: Seção 2 do Capítulo 2 “Processos” do livro do Tanenmabum
Exercício Prático
PRÁTICAS AVALIATIVAS:
Exercício Prático
CONTEÚDOS ABORDADOS:
Nomes e Endereços
SUMÁRIO DA METODOLOGIA:
Aula síncrona: Apresentação do conteúdo
Vídeo: Sistemas de Nomeação
Vídeo: Abordagens de Nomeação
Leitura: Seção 13 do Capítulo 2 “Serviço de Nomes” do livro do Coulouris
Exercício
PRÁTICAS AVALIATIVAS:
Exercício do conteúdo abordado
CONTEÚDOS ABORDADOS:
Comunicação
SUMÁRIO DA METODOLOGIA:
Aula síncrona: Apresentação do conteúdo
Vídeo: Comunicação Distribuída
Sockets em Java part1
https://www.youtube.com/watch?v=Tg4D9UySDBA
RMI em Java
https://www.youtube.com/watch?v=5DRP_5NA4E8
Sockets em Python
https://www.youtube.com/watch?v=aV4p6f2MuJc
Leitura: Capítulo 4 e 5 do livro do Coulouris
Exercício Prático
PRÁTICAS AVALIATIVAS:
Exercício Prático
CONTEÚDOS ABORDADOS:
Tolerância a Falhas
SUMÁRIO DA METODOLOGIA:
Aula síncrona: Aula
Exercício
PRÁTICAS AVALIATIVAS:
Exercício do conteúdo abordado
CONTEÚDOS ABORDADOS:
Sincronização
SUMÁRIO DA METODOLOGIA:
Vídeo: Sincronização
Vídeo: Abordagens de Sincronização
Vídeo: Notify, NotifyAll e Wait
Leitura: Implementação Threads, Prof. Jacques Sauvé
Leitura: Sincronização de Threads, Prof. Jacques Sauvé
Leitura: Pools de threads, Prof. Jacques Sauvé
Leitura: Ciclo de Vida e Escalonamento, Prof. Jacques Sauvé
Exercício Prático
PRÁTICAS AVALIATIVAS:
Exercício Prático
Básica:
1. Tanenbaum, Andrew S. e STEEN, Martin Van. Sistemas Distribuídos: Princípios e Paradigmas. 2ªEd. Prentice Hall: 2007
2. Deitel, Harvey M.; Deitel, Paul J; Choffnes, D. R. Sistemas operacionais. São Paulo: Pearson, 2005.
3. Ribeiro, Uira. Sistemas Distribuídos. Axcel Books, 2005.
Complementar:
1. G. Coulouris, J. Dollimore e T. Kindberg, “Sistemas Distribuídos: Conceitos e Projetos”, 4a Edição.
2. Tanenbaum, Andrew S, Sistemas Operacionais Modernos. Pearson Brasil, 2003.
3. Tanenbaum, Andrew S, Redes de Computadores. Campus, 2003.
Notas Antigas (As notas de aulas usadas no PLE serão versões mais sintéticas das notas abaixo)
Aula 0 - Apresentação da Disciplina
Aula 1 - Introdução
Aula 2 - Requisitos de Software
Aula 4 - Modelos P2P
Aula 5 - Nomes
Aula 6 - Processos
Aula 7 - Comunicação entre Processos
Aula 8 - Tolerância a Falhas
Aula 9 - Sincronização e Ordenação
Aula 10 - Coordenação
-------
Implementar um crawler para fazer busca de listagem de artigos em bases científicas
O trabalho pode ser implementado de forma individual ou em duplas.
Cada equipe, deverá escolher uma (1) das bases de abaixo para implementar o seu crawler
Projeto similar: