Lantorrent Solución para el intercambio de archivos vía red local.
-
Upload
victor-adrian-quintero-guzman -
Category
Documents
-
view
220 -
download
1
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.