Sistema P2P com Timestamping para Sincronização de Diretórios



Documentos relacionados
Revisão: Introdução. - Integração com o AutoManager; 1 Atualização de versão do banco de dados PostgreSQL

GUIA INTEGRA SERVICES E STATUS MONITOR

SIMULADOR DE ROTEAMENTO DE PACOTES (V. 3 20/05/2010)

Satélite. Manual de instalação e configuração. CENPECT Informática cenpect@cenpect.com.br

Definição do Trabalho da Disciplina. Este documento é muito importante: LEIAM ATÉ O FINAL!

GERENCIAL SEPLAG CARTILHA AGENDA. Sumário

TUTORIAL PRÁTICO SOBRE Git. Versão 1.1

Ferramenta de apoio a gerência de configuração de software. Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl

Procedimentos para Instalação do SISLOC

Salvando modificações localmente (commit) Enviando modificações para o servidor (push) Sinalizando versão estável (tag)

Aula 3. Sistemas Operacionais. Prof: Carlos Eduardo de Carvalho Dantas

Manual de Instalação e Configuração. Módulo Remote. (G2KA) para NFSE. v1.0

Controle de Versão de Software. Luiz Jácome Júnior

TOTVS Série 1 Varejo (Simples) - Módulo e-commerce

Índice. Manual Backup Online. 03 Capítulo 1: Visão Geral

Softwares Aplicativos Banco de Dados

SISTEMAS DISTRIBUÍDOS

Procedimentos para Instalação do Sisloc

PROCEDIMENTO OPERACIONAL PADRÃO - POP. Data Emissão NOV/2005

ROTEIRO NOTA FISCAL ELETRONICA A partir de Agosto/2012

MANUAL BACKUP XDENTAL 2012

Instruções de Acesso. Portal de Cliente. Próximo

Procedimentos para Reinstalação do Sisloc

Figura 01 Kernel de um Sistema Operacional

Projeto de Software Orientado a Objeto

Instalação: permite baixar o pacote de instalação do agente de coleta do sistema.

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

PLATAFORMA DE DESENVOLVIMENTO PINHÃO PARANÁ MANUAL DE UTILIZAÇÃO DO CVS NO ECLIPSE

Gravação da quantidade de expostos por grupo homogêneo

Sistemas Distribuídos

SGBD. Funções Básicas de um SGBD

TOTVS Colaboração NF-e/CT-e Logix. Integração TOTVS Colaboração NF-e/CT-e Logix

GUIA PARA HABILITAÇÃO DAS BIOMETRIAS LINEAR (SÉRIE LN) NO SOFTWARE HCS 2010 V9.0 (BETA 3) 11/06/2014

Controle de Versão. Prof. Msc. Bruno Urbano Rodrigues.

PLATIN INFORMÁTICA. SIAD SNGPC Sistema Integrado de Automação de Drogarias Módulo Gestão de Medicamentos Controlado e Antimicrobianos

Configuração manual.ost Microsoft Office 365

Redmine. Simplificando a gestão de projetos

Portal do Senac: Área Exclusiva para Alunos Manual de Navegação e Operação

Versão /10. Xerox ColorQube 9301/9302/9303 Serviços de Internet

CURSO Microsoft Project Server. Instalando, Configurando e Administrando o Microsoft Project Server

GUIA RÁPIDO SISTEMA ANTIFURTO THEFT DETERRENT

Config. do módulo MSA com dispositivos REP.

Integração com o Ambiente Virtual de Aprendizagem Moodle

Manual de Instalação Corporate

Fundamentos de Banco de Dados

Sistemas Cliente-Servidor

Backup. Tutorial TGC Backup

Banco de Dados. Uma coleção de dados relacionados [ELMASRI/NAVATHE]

Índice. 1 Requisitos para Funcionamento do Módulo Cedente Instalação do Java Acesso ao Sicoobnet... 09

Boletim Técnico. Esta melhoria depende de execução do update de base UPDWF002, conforme Procedimentos para Implementação.

Release Notes Série 1 Varejo. Release P5 Atualização de Patch. Módulo / Produto: TOTVS Série 1 Varejo (Matriz, Filial ) Data: 28/05/2014

Noções de. Microsoft SQL Server. Microsoft SQL Server

Manual de Atualização Versão

Programação Distribuída

JobScheduler Empresa: Assunto: Responsável: Dados de Contato: Suporte: Comercial: Financeiro:

CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS

IBM SPSS Modeler - Princípios Básicos do R: Instruções de Instalação

1 REQUISITOS BÁSICOS PARA INSTALAR O SMS PC REMOTO

Integração TOTVS Colaboração 2.0 Recepção NFS-e - Datasul

2.0.0.X. Storage Client. TecnoSpeed. Tecnologia da Informação. Manual do Storage Client

Manual de Instalação do Agente Citsmart

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, MODELAGEM DE DADOS. Aula 1. Prof. Rafael Dias Ribeiro. M.Sc.

BACKUP ONLINE PASSOS PARA CONFIGURAÇÃO INICIAL DO PRODUTO

Manual de Instalação PIMSConnector em Windows

Lista de Erros Discador Dial-Up

Fault Tolerance Middleware for Cloud Computing

Controle de Versão com GIT

Manual Comunica S_Line

Redmine. Simplificando a gestão de projetos

MicroDNS. Armando Adami Zaro Pablo Augusto Lerina Rodrigues. 3 de outubro de 2007

Passos para migração para o Protheus 11.5 HelpDesk Framework Protheus - Janeiro/2013

Manual do Visualizador NF e KEY BEST

Maestro. Arthur Kazuo Tojo Costa Universidade Federal de São Carlos Campus Sorocaba Bacharelado em Ciência da Computação

Principais Novidades Abril/2013 a Junho/2013

OSMobile Força de Vendas

NOTA FISCAL ELETRÔNICA v3.10

SAIBA MAIS SOBRE O LINUX E DESCUBRA QUAL DISTRIBUIÇÃO É MELHOR PARA VOCÊ! CURSO

Padrões de Atendimento de Serviços da empresa Trilegal Bah! Serviços de Infraestrutura de TI

LINX POSTOS AUTOSYSTEM

MODELO CLIENTE SERVIDOR

MANUAL Credenciados SGMC Sistema de Gestão de Modalidades de Credenciamento

OCOMON PRIMEIROS PASSOS

MicrovixPOS Requisitos, Instalação e Execução

FTIN Formação Técnica em Informática Módulo Sistema Proprietário Windows AULA 04. Prof. André Lucio

ÍNDICE. 1. Introdução O que é o Sistema Mo Porã Como acessar o Site Mo Porã Cadastro do Sistema Mo Porã...

Manual Vivo Sync. Manual do Usuário. Versão Copyright Vivo com.br

E&L Protocolo, Documentos Eletrônicos e Processos Perguntas Frequentes

Manual do Assinador de Documentos

Processos (Threads,Virtualização e Migração de Código)

Documento de Análise e Projeto VideoSystem

Manual de Instalação e Operação RECIP

MAN001 Atualização Protocolo e Ação Social Versão 2 Cliente: Duralex Sistemas

Manual de Administração

1. Configuração do Portal. 1) No totvsappserver.ini deverá ser feito as seguintes modificações: Incluir os seguintes itens:

Sumário. Sobre este livro 1. Direto ao assunto 7

SISTEMAS OPERACIONAIS

Transcrição:

Sistema P2P com Timestamping para Sincronização de Diretórios Jaime, Alison, Nuno e Pedro Disciplina: Gerenciamento de Dados Distribuído Prof. Eduardo Cunha de Almeida Junho / 2010 Programa disponível no repositório http://code.google.com/p/syncp2p/ via subversion (svn)

SyncPatry: Objetivos Sincronizar diretórios em várias máquinas Sincronização automática Backup de arquivos sobrescritos Tratar escritas concorrentes Manter a consistência dos diretórios

SyncPatry: Projeto Ideias Principais Catálogo: descreve o estado dos diretórios em um arquivo xml e em um hash em memória principal Sistema distribuído de geração de timestamping - permite que os arquivos recebam um número sequencial de versão Propagação dos Catálogos via leafsets Backups: arquivos sobrescritos ou removidos remotamente são copiados para o diretório de backup

Funcionamento Thread 1 - Principal Entra na rede Executa laço: Atualiza o catálogo local Se encontra um arquivo novo ou modificado Solicita um novo timestamp para o arquivo Envia o catálogo para os peers no seu leafset Thread 2 - Aguarda mensagens e responde

Funcionamento - mensagens São 4 os tipos de mensagens trocadas entre os peers: 1.GET_TIMESTAMP - solicitação de timestamp 2.RSP_TIMESTAMP - resposta de timestamp 3.SEND_CATALOG - envio de catálogo 4.GET_FILE - solicita arquivo Além do envio e recebimento de arquivos.

Tratamento de Mensagens 1. GET_TIMESTAMP (filename) enviada ao peer responsável pelo ID=hash(filename) incrementa contador associado ao filename responde RSP_TIMESTAMP com o timestamp 2. RSP_TIMESTAMP atualiza o catálogo 3. SEND_CATALOG Remove localmente arquivos removidos remotamente Solicita arquivos novos ou modificados remotamente enviando GET_FILE

Tratamento de Mensagens 4. GET_FILE envia o arquivo solicitado No recebimento do arquivo salva o backup, se necessário salva o novo arquivo atualiza o catálogo com a data de modificação do arquivo

Organização das Classes Principais 4 pacotes Java: default, catalogo, kts e p2p Package Default: SyncPastry.java - método main() FileSync.java - entrada na rede e laço principal (thread 1) Package Catalogo Catalogo.java - manipula o catálogo em arquivo xml e em memória principal, compara catálogo com lista de arquivos locais e compara dois catálogos.

Organização das Classes Principais Package kts gerencia o contador local de timestamps Package p2p tratamento de mensagens recebimento e envio de arquivos

Exemplo de Catálogo

Exemplo de Catálogo No catálogo, o arquivo pode ter os seguintes status: STATUS_OK - timestamp atualizado STATUS_REQUEST - aguardando novo timestamp STATUS_DELETED - arquivo removida STATUS_REQUEST_FILE - arquivo alterado remotamente foi solicitado

SyncPatry: Conclusões Programa P2P para sincronização de diretórios Gerador distribuído de timestamping Backup de versões antigas dos arquivos Projeto modular e facilmente extensível Código bem organizado e comentado Possíveis melhorias: Otimizar transmissão de arquivos via diff Versão interativa que sincroniza somente quando o usuário solicita

Exemplo: um log de execução Senário: diretório A: /tmp/synca contendo arquivos arquivo1.txt arquivo2.txt diretório B: /tmp/syncb inicialmente vazio Ações: 1. Criar novo.txt em A 2. Remover arquivo1.txt em A 3. Criar novo2.txt em B 4. Modificar arquivo2.txt em B

Log do Peer A - Inicialização 1. GDD - Iniciando o programa 2. Iniciando a rede p2p 3. Finished creating new node PastryNode em //192.168.1.1:9001 4. [difffiles-add]arquivo:arquivo2.txt nao existe no catalogo. 5. [difffiles-add]arquivo:arquivo1.txt nao existe no catalogo. 6. Solicitando um novo timestamp para arquivo2.txt

Log do Peer A Obtendo timestamps 1. Mensagem recebida por /tmp/synca -> GET_TIMESTAMP 2. Solicitando um novo timestamp para arquivo1.txt 3. Enviando timestamp 0 para o arquivo arquivo2.txt 4. Mensagem recebida por /tmp/synca -> RSP_TIMESTAMP 5. Timestamp 0 recebido para arquivo2.txt 6. Mensagem recebida por /tmp/synca -> GET_TIMESTAMP 7. Enviando timestamp 0 para o arquivo arquivo1.txt 8. Mensagem recebida por /tmp/synca -> RSP_TIMESTAMP 9. Timestamp 0 recebido para arquivo1.txt

Log do Peer A Enviando Arquivos 1. Enviando o catalogo. 2. Mensagem recebida por /tmp/synca -> GET_FILE 3. Enviando arquivo /tmp/synca/arquivo2.txt 4. Mensagem recebida por /tmp/synca -> GET_FILE 5. Enviando arquivo /tmp/synca/arquivo1.txt 6. Catalogo recebido. 7. Enviando o catalogo.

Log do Peer A Novo arquivo 1. Arquivo: novo.txt nao existe no catalogo. 2. Solicitando um novo timestamp para novo.txt 3. Mensagem recebida por /tmp/synca -> GET_TIMESTAMP 4. Enviando timestamp 0 para o arquivo novo.txt 5. Mensagem recebida por /tmp/synca -> RSP_TIMESTAMP 6. Timestamp 0 recebido para novo.txt 7. Enviando o catalogo. 8. Mensagem recebida por /tmp/synca -> GET_FILE 9. Enviando arquivo /tmp/synca/novo.txt

Log do Peer A Remoção de Arquivo Local 1.Catalogo recebido. 2.Arquivo:arquivo1.txt deixou de existir no diretorio local. 3.Catalogo recebido.

Log do Peer A Novo arquivo Remoto 1. Catalogo recebido. 2. Arquivo: novo2.txt nao existe no catalogo local 3. Arquivo solicitado: novo2.txt 4. Arquivo Recebido: novo2.txt

Log do Peer A Respondendo a Solicitação de Timestamp 1. Enviando o catalogo. 2. Catalogo recebido. 3. Mensagem recebida por /tmp/synca -> GET_TIMESTAMP 4. Enviando timestamp 1 para o arquivo arquivo2.txt 5. Catalogo recebido.

Log do Peer A Arquivo Remoto Modificado 1. Catalogo recebido. 2. Arquivo arquivo2.txt tem um timestamp maior 3. Arquivo solicitado: arquivo2.txt 4. Arquivo Recebido: arquivo2.txt 5. Criando diretorio de backup em /tmp/synca/.backup 6. Backup do arquivo arquivo2.txt feito. 7. Enviando o catalogo. 8. Catalogo recebido.