Bsync: Sistema Extensible Para La Sincronizaci´Ony Copia De Seguridad De ficheros Para Su Uso En Organizaciones

Bsync: Sistema Extensible Para La Sincronizaci´Ony Copia De Seguridad De ficheros Para Su Uso En Organizaciones

Escuela Polit´ecnicaSuperior Departamento de Inform´atica Proyecto de Fin de Carrera bsync: Sistema extensible para la sincronizaci´ony copia de seguridad de ficheros para su uso en organizaciones Javier Torres Ni~no Tutores Juan Miguel G´omezBerb´ıs Alejandro Rodr´ıguezGonz´alez 28 de Julio de 2011 2 Resumen En la actualidad existen muchos sistemas de sincronizaci´ony copia de segu- ridad de ficheros, pero la mayor´ıade ellos no comercializan el producto, optando por comercializar los servicios ofrecidos por medio de estos. Esto impide el uso de estas herramientas a entidades que necesiten que sus datos no salgan de su entorno, por lo que el objetivo de este Proyecto de Fin de Carrera es el dise~no y desarrollo de un sistema similar a estos otros productos. Se analizan las caracter´ısticasde los competidores, y se dise~naun programa que incluye en el n´ucleolas caracter´ısticasb´asicasy sea capaz de incluir to- das las caracter´ısticasadicionales mediante el uso de extensiones o plugins. Es precisamente esta extensibilidad la que caracteriza el sistema, permitiendo que un mismo producto pueda adaptarse a las necesidades de multitud de clientes, que pueden precisar, por ejemplo, de distintos sistemas de autenticaci´on(para integrar el sistema en la arquitectura existente) o utilizar la infraestructura para sincronizar m´asque ficheros. Palabras clave: sincronizaci´on,copia de seguridad, extensibilidad, plugins, sistemas distribuidos 3 4 Agradecimientos Es impensable dejar este proyecto sin unas breves l´ıneas en las que agradecer a todas las personas que me han soportado durante estos ´ultimoscinco a~nos,y especialmente los ´ultimosmeses. En primer lugar tengo que mencionar a todos los compa~nerosde clases con los que tanta risas he compartido, especialmente a todos los integrantes de vastralis, que tan unidos hemos estado estos ´ultimosa~nos.Sin vosotros no habr´ıalogrado llegar hasta aqu´ı. Tambi´enquiero recordar a mis amigos de toda la vida, ya sab´eisqui´enes sois. >Que ser´ıade m´ısin esas largas noches sentados todos alrededor de una mesa, jugando y de ch´achara? No puedo olvidar mencionar a todo el equipo docente que ha hecho posible que pueda completar este proyecto, sin vuestras ense~nanzasno tendr´ıani la mitad de conocimientos que he utilizado durante su realizaci´on.Llegu´ea la universidad creyendo que sab´ıabastante de inform´atica,ahora me voy con la certeza de no saber casi nada. Tambi´ense merecen una menci´onespecial mis compa~nerosde laboratorio, cotutores oficiales y extraoficiales de este proyecto. Sin vuestros consejos y lo que me aprend´ıde vosotros sobre el campo investigador, este proyecto habr´ıa sido muy distinto. Y en ´ultimolugar, aunque no por ello menos importante, a mi familia por introducirme en el mundo de la inform´aticaa la tierna edad de los 6 a~nos,a la que me he agarrado desde entonces, primero como hobby y despu´escomo profesi´on. Menci´onespecial para mi hermano por aguantar mi escaqueo generalizado de las tareas del hogar mientras terminaba de escribir esta memoria. A todos, muchas gracias Javier 5 6 ´Indice general I Introducci´on 15 1. Introducci´on 17 1.1. Motivaci´on . 17 1.2. Objetivos . 18 1.3. Metodolog´ıa. 19 1.4. Organizaci´onde este documento . 20 II An´alisisdel problema 23 2. Estado del arte 25 2.1. Copias de seguridad . 25 2.2. Sincronizaci´onde ficheros . 26 2.2.1. Sistemas de ficheros en red . 26 2.2.2. Sincronizaci´onperi´odicao mirroring de directorios . 27 2.2.3. Sincronizaci´oncon copia local . 27 3. An´alisis 29 3.1. Objetivos principales . 29 3.2. Extensibilidad . 30 3.3. Arquitectura de red . 31 3.3.1. Peer to peer total . 31 3.3.2. Peer to peer con localizador . 31 3.3.3. Cliente-Servidor . 32 3.3.4. Evaluaci´on . 32 3.4. Sincronizaci´onentre m´ultiplesusuarios . 33 3.5. Comunicaciones . 34 3.5.1. Requisitos . 34 3.5.2. Transporte . 34 3.5.3. Aplicaci´on. 35 3.6. Consistencia . 36 3.6.1. Pol´ıticapor defecto . 37 3.7. Almacenamiento de los datos . 39 3.8. Plataforma de desarrollo . 40 3.8.1. Alternativas . 40 3.8.2. Comparaci´on . 41 3.8.3. Decisi´on. 42 7 ´INDICE GENERAL III Dise~nodel prototipo 45 4. Dise~nodel protocolo 47 4.1. Multiplexado . 47 4.1.1. Formato del paquete . 47 4.1.2. Gesti´onde canales . 48 4.2. Protocolo de control . 49 4.2.1. Representaci´onde los datos . 50 4.2.2. Comandos . 51 4.3. Implementaci´onde los protocolos . 57 4.3.1. SocketChannel . 58 4.3.2. MultiplexerSocket . 58 4.3.3. MultiplexerSocketServer . 59 5. Dise~nodel cliente 61 5.1. Dise~nomodular . 61 5.2. Representaci´ondel ´arbol local . 63 5.3. Gesti´ondel ´arbol local . 65 5.4. Base de datos de metadatos . 66 5.5. Comunicaci´oncon el servidor . 69 5.5.1. ClientConnection . 69 5.5.2. ClientConnectionShare . 70 5.6. Funciones globales . 71 5.6.1. Configuraci´on. 71 5.6.2. Carga de plugins . 74 5.6.3. Interfaz con el usuario . 74 5.6.4. Gesti´onde conexiones . 74 6. Dise~nodel servidor 75 6.1. Dise~nomodular . 75 6.2. Base de datos . 76 6.2.1. Usuarios, shares y permisos . 76 6.2.2. Objetos: ficheros y directorios . 77 6.2.3. Datos hist´oricos . 78 6.2.4. Capa de acceso a datos . 78 6.3. Comparticiones . 79 6.4. Conexiones . 81 6.4.1. Autenticaci´ony apertura de shares . 81 6.4.2. Transferencias y almacenamiento . 81 6.4.3. Mantenimiento de la conexi´on. 83 6.5. Funciones globales . 83 7. Plugins 85 7.1. Caracter´ısticascomunes . 85 7.2. Monitoreo del sistema de ficheros . 87 7.2.1. Interfaz . 88 7.2.2. Plugin para Linux: inotify . 88 7.2.3. Plugin para Windows: ReadDirectoryChangesW . 90 7.2.4. Plugin para Mac OS X: FSEvents . 91 7.3. Autenticaci´on. 92 8 ´INDICE GENERAL 7.3.1. Interfaz . 92 7.3.2. Implementaci´on:PgCryptoAuthenticator . 93 7.4. Interfaz de usuario . 93 7.4.1. Carga din´amicade librer´ıasgr´aficas . 94 7.4.2. Interfaz . 94 7.4.3. Implementaci´on:MiniGui . 96 7.5. Otros plugins . 97 7.5.1. Modificaci´onde metadatos . 98 7.5.2. Modificaci´onde datos . 98 7.5.3. Transferencia de ficheros . 99 7.5.4. Comunicaci´onarbitraria . 99 8. Interfaz web 101 8.1. Plataforma de desarrollo . 101 8.2. Dise~no . 102 8.2.1. Modelo . 102 8.2.2. Vista . 102 8.2.3. Plantillas . 104 9. Seguridad y rendimiento 107 9.1. Hash de los datos . 107 9.1.1. Algoritmo de hash . 108 9.1.2. Ataques y dominio de colisi´on. 110 9.1.3. Decisi´on. 111 9.2. Almacenamiento de contrase~nas. 112 9.2.1. Cliente . 112 9.2.2. Servidor . 113 9.3. Seguridad de las comunicaciones . 113 9.4. Paralelismo . 114 9.4.1. Cliente . 114 9.4.2. Servidor . 116 IV Conclusiones y Presupuesto 117 10.Conclusiones 119 10.1. Trabajo futuro . 119 10.1.1. Acceso a comparticiones en otros servidores . 119 10.1.2. Seguridad en los plugins . 120 10.1.3. Publicaci´ony comercializaci´on . 121 10.2. Conclusiones personales . 121 11.Presupuesto 123 11.1. Gastos directos . 123 11.1.1. Gastos de personal . 123 11.1.2. Otros gastos directos . 123 11.2. Gastos indirectos, riesgo y beneficio . 124 11.3. Tabla resumen y totales . 125 9 10 ´Indice de figuras 1.1. Esquema del ciclo de desarrollo utilizado . 20 3.1. Arquitecturas de red . 32 3.2. Tr´aficode red en los distintos modelos de resoluci´onde conflictos 37 3.3. Se~nalesy slots . 43 4.1. Pila de protocolos de red . 47 4.2. Protocolo de multiplexado . 48 4.3. Protocolo de control . 50 4.4. Diagrama de clases simplificado para el protocolo de multiplexado 60 5.1. Diagrama de clases simplificado para el cliente . 62 5.2. Ejemplo de configuraci´onen el registro de Windows . 71 6.1. Base de datos del servidor . ..

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    133 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us