Cursos‎ > ‎

Sistemas Distribuídos 2016.1

Introdução


Essa disciplina tem como objetivo apresentar os conceitos de Sistemas Distribuídos visando oferecer um conhecimento básico para um profissional da área de Ciência da Computação. 

Apresentação do Curso

O curso apresenta dois momentos:

No primeiro o professor irá apresentar os conceitos básicos de Gerenciamento de Redes de forma expositiva porém estimulando a participação dos alunos.

No segundo momento os alunos do mestrado irão apresentar uma série de artigos apresentando o estado da arte na pesquisa de gerenciamento quando haverá oportunidade de discussões sobre essas propostas.

Após essas duas etapas haverá a apresentação do trabalho prático desenvolvido pelos alunos, como parte da avaliação da disciplina. 

Material do curso

Bibliografia

Livros Sistemas Distribuídos - Princípios e Paradgmas - Andrew Tanenbaum (8576051427)

Sistemas Distribuídos - Princípios e Paradgmas
Autor: Andrew Tanenbaum, Maarten Van Steen 
Editora: Prentice Hall

Livro - Sistemas Distribuidos: Conceitos E Projetos
Sistemas Distribuídos – Conceitos e Projetos (5a edição)
George Coulouris, Jean Dollimore e Tim Kindberg
Editora Bookman

Slides do curso: 

Slides da disciplina Sistemas Distribuídos.

Avaliação

Não serão aplicadas provas.

A avaliação para os alunos do mestrado será a apresentação dos seminários e a apresentação e a entrega do relatório do trabalho prático final. A nota final será a média da nota da apresentação do seminário e do trabalho final. 

A avaliação para os alunos da graduação será a apresentação e a entrega do relatório do trabalho prático final.

Seminários

Cada aluno do mestrado deverá escolher dois artigo para ler, estudar e fazer uma apresentação de 30 min. Após a apresentação haverá discussão sobre o artigo. Aceito sugestões de outros artigos. Cada aluno deverá mandar um e-mail para o professor indicando o artigo escolhido.

A programação é apresentada abaixo.

Alguns artigos são links para IEEE ou ACM e são acessíveis apenas pelo portal Periódicos da CAPES, sendo assim, são acessíveis apenas de dentro da UECE ou usando o sistema Cafe.

A relação de artigos disponíveis para os seminários de Sistemas Distribuídos.

Programação dos Seminários

17/06:
  1. Software Engineering Meets Services and Cloud Computing (Lázaro Cá)
  2. Diverter: A New Approach to Networking Within Virtualized Infrastructures (Jefferson Rodrigo)
  3. Network Virtualization and Software Defined Networking for Cloud Computing: A Survey (Aeliton)
24/06
  1. A survey on context-aware systems (Rômulo Gadelha)
  2. Performance Evaluation of Container-based Virtualization for High Performance Computing Environments (Aeliton)
  3. A Novel Distributed Content Replication and Placement Scheme for Wireless Mesh Networks (Flávio Alves)
  4. Cloud Computing Applications for Smart Grid: A Survey (Pedro Ramires)
01/07
  1. Managing Geo-replicated Data in Multi-datacenters (João Vianey)
  2. LOCCAM - loosely coupled context acquisition middleware (Rômulo Gadelha)
  3. OpenFlow: Enabling Innovation in Campus Networks (Jefferson Rodrigo)
  4. Cloud Computing Features, Issues and Challenges: A Big Picture (Marcos Borges)
08/07
  1. Harmony: Towards Automated Self-Adaptive Consistency in Cloud Storage (João Vianey)
  2. Security of the Internet of Things: perspectives and challenges (Robson Oliveira)
  3. Elasticidade em cloud computing: conceito, estado da arte e novos desafios (Lázaro Cá)
15/07:
  1. Cloud Migration (Marcos Borges)
  2. Quiver: a Middleware for Distributed Gaming (Flávio Alves)
  3. On the features and challenges of security and privacy in distributed internet of things (Robson Oliveira)
  4. Key-Aggregate Cryptosystem for Scalable Data Sharing in Cloud Storage (Pedro Ramires)

Trabalho Prático Final

Construir um protótipo de um sistema distribuído, sugerido abaixo, utilizando o emulador Mininet.

Escolher um tema, escrever um código que implemente o algoritmo indicado, desenvolver um script que automatize a criação dos cenários e realize os testes.

Criar um teste funcional ou performance e exibir os dados (em um gráfico ou tabela, por exemplo). Como sugestão consulte OpenSourceTesting

Fazer uma apresentação de no máximo 20 min sobre o trabalho em sala, conforme programação abaixo. A apresentação deve mostrar o algoritmo escolhido, detalhes da implementação (bibliotecas, programas, etc), resultados e comentários sobre a experiência,

Preparar um relatório escrito descrevendo o algoritmo escolhido, detalhes da implementação (bibliotecas, programas, etc), resultados e comentários sobre a experiência. Enviar o relatório e o código fonte por e-mail.

Algumas diretrizes:
  1. Escrever o código do cliente/servidor ou peer em Java ou Python (não é proibido usar outra linguagem ,as acho que essas duas tem mais bibliotecas disponíveis, facilitando o desenvolvimento).
  2. Escolher a forma de comunicação entre os programas. Pode ser socket TCP, UDP, SOA, REST, RMI, etc
  3. O script de criação do cenário e teste deve ser em Python, linguagem do Mininet. Ver exemplos de uso da API do Mininet no site.
  4. Criar topologias heterogeneas: Sugestão, consulte Topology Zoo
  5. Emular no Mininet problemas de rede que o programa deve tratar: (1) Taxa de descarte até 30% e (2) Delay de enlace até 10 seg.
Sugestões de temas (os temas serão discutidos em aula):
  1. Algoritmo de eleição: Valentão e Anel
  2. Algoritmo de exclusão Mútua: Centralizado, Descentralizado, Distribuído e Anel.
  3. Algoritmo de Consistência baseada em replica primária: Read-one Write-all, Copia primaria remota e local
  4. Algoritmo de Consistência baseada em escrita: Replicação ativa e Quorum 
  5. Algoritmo busca P2P: Chord, CAN, Pastry, Tapestry
  6. Algoritmo Generais Bizantinos

Programação das apresentações

05/08
  1. Erick Barros (Eleição)
  2. Jefferson Rodrigo Cavalcante (Generais Bizantinos)
12/08
  1. Pedro Jorge de Abreu Figueredo (Eleição)
  2. Clovis Daniel (Eleição)
  3. Washington Praxedes (Eleição)
19/08
  1. Ranniery Jesuino (Eleição)
  2. Lucas Vieira Alves (Eleição)
26/08:
  1. Vinícius Rocha Maia (Eleição)
  2. Flávio Alves dos Santos (Chord)
  3. Aelinton (Tor/Chutney)
  4. Naira Santos (Eleição)
A definir:

  1. Lucas Freire (Eleição)
  2. Bruno Marques Monteiro (Eleição)
  3. Juan Garcia (Eleição)
  4. Marcelo Asfor (Exclusão Mútua)


Comments