Viabilidad
- La base de la aplicación es perfectamente viable a base de guardar copias de los archivos en carpetas ocultas cada vez que se detecten cambios. Es necesario también un índice de datos para búsquedas eficientes, implementable mediante una base de datos como p.e. sqlite.
- Métodos más eficaces de almacenamiento dependerían de la plataforma (p.e. un sistema de archivos que almacene solamente cambios como ZFS, o diffs binarios entre archivos).
- Sin Tracker instalado en los equipos cliente se complicará bastante la implementación de clasificación de archivos y su búsqueda. Es factible, no obstante, ampliar el source de Tracker para adaptarlo a nuestras necesidades.
- La comparación de versiones es trivial para archivos de texto, y para archivos binarios con formato conocido se pueden reutilizar los extractores del citado Tracker. Queda simplemente conseguir una interfaz de usuario sencilla y eficaz.
- El mecanismo inotify del kernel de linux, presente en los equipos cliente, permite indexar un archivo en el momento que es creado y evitar largas búsquedas de cambios.
- La pausa y reanudación de los backups requerirá de un sistema de transacciones similar al de una base de datos o un sistema de ficheros con journal; es necesaria investigación para detectar si es posible reutilizar funcionalidad presente en el sistema.
- Sincronizar archivos entre dos sistemas, ya sean interno y disco duro externo o dos ordenadores con red requiere todavía investigación pero podría hacer uso de rsync, o de mecanismos similares al control de versiones distribuido en caso de que se vayan a integrar las historias de cada archivo.
- Servidor externo de almacenamiento es viable si se nos proporcionase la infraestructura necesaria, pero hasta el final del desarrollo del proyecto será dificil integrarlo.
- GTK es una tecnología nueva para el equipo, así como python, lo que dificultará el desarrollo. Confiamos en que sea lo bastante sencillo de usar como para que sea mínimo el aprendizaje, a la vista de su gran implantación en el software libre. Se usará para ello pygtk.
- El equipo tampoco conoce el uso de dbus para comunicación IPC entre backend y frontend, y en general entre los diferentes procesos que pueda tener la aplicación.
- La integración y transparencia vendría por un lado del software como demonio, y por otra parte de integrarlo con el entorno de escritorio (concretamente con nautilus); es necesaria investigación también al respecto para determinar las posibilidades, pero en última instancia podría ser modificado el código fuente.
page revision: 5, last edited: 28 Oct 2007 23:10