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 cursoBibliografia Sistemas Distribuídos - Princípios e Paradgmas Autor: Andrew Tanenbaum, Maarten Van Steen Editora: Prentice Hall Sistemas Distribuídos – Conceitos e Projetos (5a edição)George Coulouris, Jean Dollimore e Tim KindbergEditora Bookman Slides do curso: 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.
Programação dos Seminários17/06: - Software Engineering Meets Services and Cloud Computing (Lázaro Cá)
- Diverter: A New Approach to Networking Within Virtualized Infrastructures (Jefferson Rodrigo)
- Network Virtualization and Software Defined Networking for Cloud Computing: A Survey (Aeliton)
24/06 - A survey on context-aware systems (Rômulo Gadelha)
- Performance Evaluation of Container-based Virtualization for High Performance Computing Environments (Aeliton)
- A Novel Distributed Content Replication and Placement Scheme for Wireless Mesh Networks (Flávio Alves)
- Cloud Computing Applications for Smart Grid: A Survey (Pedro Ramires)
01/07- Managing Geo-replicated Data in Multi-datacenters (João Vianey)
- LOCCAM - loosely coupled context acquisition middleware (Rômulo Gadelha)
- OpenFlow: Enabling Innovation in Campus Networks (Jefferson Rodrigo)
- Cloud Computing Features, Issues and Challenges: A Big Picture (Marcos Borges)
08/07 - Harmony: Towards Automated Self-Adaptive Consistency in Cloud Storage (João Vianey)
- Security of the Internet of Things: perspectives and challenges (Robson Oliveira)
- Elasticidade em cloud computing: conceito, estado da arte e novos desafios (Lázaro Cá)
15/07: - Cloud Migration (Marcos Borges)
- Quiver: a Middleware for Distributed Gaming (Flávio Alves)
- On the features and challenges of security and privacy in distributed internet of things (Robson Oliveira)
- Key-Aggregate Cryptosystem for Scalable Data Sharing in Cloud Storage (Pedro Ramires)
Trabalho Prático FinalConstruir 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: - 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).
- Escolher a forma de comunicação entre os programas. Pode ser socket TCP, UDP, SOA, REST, RMI, etc
- 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.
- Criar topologias heterogeneas: Sugestão, consulte Topology Zoo
- 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): - Algoritmo de eleição: Valentão e Anel
- Algoritmo de exclusão Mútua: Centralizado, Descentralizado, Distribuído e Anel.
- Algoritmo de Consistência baseada em replica primária: Read-one Write-all, Copia primaria remota e local
- Algoritmo de Consistência baseada em escrita: Replicação ativa e Quorum
- Algoritmo busca P2P: Chord, CAN, Pastry, Tapestry
- Algoritmo Generais Bizantinos
Programação das apresentações05/08 - Erick Barros (Eleição)
- Jefferson Rodrigo Cavalcante (Generais Bizantinos)
12/08- Pedro Jorge de Abreu Figueredo (Eleição)
- Clovis Daniel (Eleição)
- Washington Praxedes (Eleição)
19/08- Ranniery Jesuino (Eleição)
- Lucas Vieira Alves (Eleição)
26/08: - Vinícius Rocha Maia (Eleição)
- Flávio Alves dos Santos (Chord)
- Aelinton (Tor/Chutney)
- Naira Santos (Eleição)
A definir:
- Lucas Freire (Eleição)
- Bruno Marques Monteiro (Eleição)
- Juan Garcia (Eleição)
- Marcelo Asfor (Exclusão Mútua)
|
|