Transparências
1. Apresentação - Apresentacao
2. Introdução - Introducao
3. Notações Formais - Notações Formais
4. Características Gerais - CaracteristicasGerais.odp
5. Noções de Processos em Sistemas Distribuídos - Processos
- exemplos introdutórios de Threads em java: exemplosThreads.zip
6. Comunicação de Processos - Comunicacao.odp
- exemplos introdutórios usando RMI em java: rmiExemplos.zip
- exemplos introdutórios usando Sockets: exemplosSockets.zip
7. Sistemas P2P - P2P
8. Distributed Hash Table - DHT
9. BitTorrent - BitTorrent
10. Deep Web - Deep Web
Leitura fortemente recomendada: Distributed Snapshots: Determining Global States of Distributed Systems
PROJETO
GRADE COMPUTACIONAL: EXECUÇÃO REMOTA E DISTRIBUÍDA DE PROGRAMAS
Um problema recorrente é a necessidade de se dividir um problema em partes menores que podem ser executadas isoladamente.
Por exemplo, imagine que se queira contar a quantidade de ocorrências de uma determinada string em um arquivo muito grande.
Pode-se dividir o arquivo em partes menores e distribuí-lo em diferentes máquinas. Assim, pode-se executar o mesmo programa remotamente e depois somar os resultados obtidos.
O SISTEMA
O sistema disponibilizará um módulo de cliente (broker) que permite o usuário selecionar diferentes arquivos compactados que serão distribuídos para execução remota. Imagine que haverão um total de N arquivos, cada um será enviado para um servidor diferente.
Os servidores receberão, cada um deles, um arquivo para processar. O processamento consiste em descompactar o arquivo, e ali dentro eme encontra um programa para executar e um arquivo de entrada.
O servidor executa o programa, passando o arquivo como entrada. O resultado deve ser guardado em outro arquivo, o arquivo de saída.
Ao final do seu processamento, o servidor deve enviar o arquivo de saída de volta para que o cliente possa fazer a contabilização final.
Apesar de o sistema ser flexível, podendo executar qualquer programa, com qualquer arquivo de entrada, podemos ilustrar com um exemplo.
Suponha um arquivo de 10TB de dados de texto, e p objetivo é contar quantas vezes uma determinada sequência ocorre.
O usuário pode "quebrar" o arquivo original em 100 arquivos de 10GB cada. Cria, para cada um deles, um arquivo compactado contendo o programa que executará a contagem de ocorrências e o arquivo correspondente à partição considerada.
Coordena, via broker, a execução remota de todos os 100 arquivos compactados. Cada servidor vai fazer sua parte, devolvendo um arquivo com a contagem que ele alcançou na sua partição.
Depois de receber o último arquivo de saída do último servidor, o broker encerra sua execução.
E o usuário pode facilmente somar os resultados tendo, assim, a soma total de ocorrências em todo o arquivo original.
O TRABALHO
Desenvolver o broker e o servidor, para executarem o processamento distribuído usando um arquivo compactado contendo um programa e um arquivo de entrada.
EQUIPES
Equipes de, no mínimo, 1 e no máximo 4 pessoas.
As equipes devem ser formadas enviando para o email degas@uesc.br os nomes dos componentes ATÉ A MEIA NOITE DO DIA 11/11/2022,
Estas serão as equipes ESPONTÂNEAS.
Se seu nome não estiver em alguma equipe espontânea até ATÉ A MEIA NOITE DO DIA 11/11/2022 você será colocado compulsoriamente em alguma equipe.