Lantorrent Solución para el intercambio de archivos vía red local.

Post on 25-Jan-2016

221 views 1 download

Transcript of Lantorrent Solución para el intercambio de archivos vía red local.

Lantorrent

Solución para el intercambio de archivos vía red local

Presentación del equipo Frederic Cartallier

Product Owner. Desarrollo del sistema de encriptación y estructuras de

datos.

Bruno Jiménez Scrum Master. Desarrollo de la interfaz de la solución.

Javier Paredes Equipo. Desarrollo de la base de datos y tester.

Rodrigo Toro Equipo. Desarrollo del protocolo de comunicación.

Problema

¿Por qué es útil Lantorrent?

Problema Si te juntas con amigos a jugar online, pero

uno sólo de ellos tiene el juego (2GB) ¿Qué haces?

En una sucursal de una empresa, tienes un archivo, o programa importante para la comunidad ¿cómo lo traspasas?

¿Pendrive?, ¿Correo?, ¿2 GB por correo?!

Paciencia… muchas paciencia

Problema Y un ¿BitTorrent?... Esto es un poco más

interesante… Problemas:

Seguridad (BitTorrent es corrupto) Privacidad Velocidad (anchos de banda determinados) Borrado de programas cada 48 horas sin

descargas

Lantorrent

Contexto Red Local.

Objetivo Compartir archivos.

Problema Saturación de la red.

Solución Hacer a todos partícipes.

Arquitectura

Arquitectura

Arquitectura

Problemáticas

Transmitir un solo archivo desde varias fuentes.

Obtener información de fuentes inseguras.

Relajar la carga sobre el servidor.

Transmitir diversos mensajes entre los computadores.

Descargando un archivo

Descargas en Lantorrent

Descargar un archivo Conceptos:

Hash Taghash Treehash Torrent

Subir un archivo: Calcular taghash archivo Verificar que el archivo no existe en el servidor Agregar archivo y su lista de torrent

Servidor

Cliente 1 (C1) Cliente 2 (C2)

Cliente 3

Buscararchivo

Taghasharchivo

Servidor

Cliente 1 (C1) Cliente 2 (C2)

Cliente 3

ObtenerTorrentarchivo

Torrent archivoC1 parte 1C1 parte 2C2 parte 1C2 parte 2C2 parte 3

Servidor

Cliente 1 (C1) Cliente 2 (C2)

Cliente 3

Obtener hash

Null

Servidor

Cliente 1 (C1) Cliente 2 (C2)

Cliente 3

Obtener hash

HashesParte 1: ####Parte 2: &&&Parte 3: ****

Comparando

taghash con hash

tree

Servidor

Cliente 1 (C1) Cliente 2 (C2)

Cliente 3

Obtenerparte 1

Obtenerparte 2

Servidor

Cliente 1 (C1) Cliente 2 (C2)

Cliente 3Parte 1

Parte 2

Verificando integridad de parte 1

y 2 con hashes

Servidor

Cliente 1 (C1) Cliente 2 (C2)

Cliente 3

Agregar TorrentC3 parte 1C3 parte 2

Servidor

Cliente 1 (C1) Cliente 2 (C2)

Cliente 3

Obtenerparte 3

Servidor

Cliente 1 (C1) Cliente 2 (C2)

Cliente 3 Parte 3

Verificando integridad de parte 3 con hashes

Servidor

Cliente 1 (C1) Cliente 2 (C2)

Cliente 3

Agregar TorrentC3 parte 3

Servidor

Cliente 3

¿El archivo

está completo

?

Exportararchivo

Esperar 60 segundosy repetir el procesodescargando las partes restantes

NoSí

Patrones de diseño Fachada: Acceso a base de datos por medio

de repositorios genéricos Singleton: Administrador repositorio Memento: Guardar estado de interfaz gráfica Repositorio: Acceso a las distintas entidades

de la base de datos por medio de repositorios genéricos

Observador: Notificación de que se ha descargado una parte de un archivo

Demo de la aplicación.

Experiencia ganada

Estructuras de datos avanzadas.

Diseño Multi-Thread.

Patrones de Diseño.

Metodología de trabajo SCRUM.