Clases
Table of Contents

Tras el brainstorming de clases, llegamos a las siguientes:

Database (base de datos)

Descripción

Interfaz sobre las bases de datos para encapsular la funcionalidad que se requiera de las mismas.

Responsabilidades

Abstraer el comportamiento interno de las bases de datos al resto de la aplicación para no depender de ellas y ocultar la complejidad del SQL.


Journal

Descripción

Mantiene un listado de operaciones pendientes de realización a fin de poder recuperarnos de caídas del sistema y de no sobrecargar el sistema, permitiendo planificar.

Responsabilidades

  • Escribir en la base de datos lo que le ha pedido Watcher.
  • Borrar la tarea una vez terminada.

Colaboraciones


History (Historia)

Descripción

Guarda toda la información del sistema de snapshots.

Responsabilidades

  • Mantener la información de todas las versiones que guarda el usuario, tanto locales como en dispositivos externos.

Colaboraciones


XDelta3 Wrapper

Descripción

Ofrece a HD Lorean la funcionalidad presente en la aplicación xdelta que cubre necesidades del programa y traduce entre la misma y las facilidades que ofrece xdelta. Parte de una factoría gestionada por storage manager.

Colaboraciones


LVM Wrapper

Descripción

Ofrece a HD Lorean la funcionalidad presente en el sistema de archivos LVM que cubre las necesidades del programa y traduce entre las mismas y las facilidades que ofrece LVM. Parte de una factoría gestionada por storage manager.

Por ahora no desarrollada por estar fuera del alcance.


ZFS Wrapper

Descripción

Ofrece a HD Lorean la funcionalidad presente en el sistema de archivos ZFS que cubre las necesidades del programa y traduce entre las mismas y las facilidades que ofrece ZFS. Parte de una factoría gestionada por storage manager.

Por ahora no desarrollada por estar fuera del alcance.


Snapshot manager (Administrador de snapshots)

Descripción

Administra los snapshots.

Responsabilidades

  • Borrar un snapshot.
  • Crear un snapshot.
  • Recuperar determinada versión de un archivo en un instante dado.
  • Busca una versión entre todas las almacenadas en un instante dado.

Colaboraciones


Storage manager (Administrador de almacenamiento)

Descripción

Interfaz para los distintos sistemas de archivos que puede soportar la aplicación.

Responsabilidades

Abstraer el comportamiento interno del sistema de archivos al resto de la aplicación para no depender de él.

Colaboraciones


Snapshot viewer (Visor de diferencias entre los snapshots)

Descripción

Permite la comparación visual entre dos snapshots.
No desarrollado por el momento por estar fuera del acance


Scheduler

Descripción

Establece el orden en que se realizan las operaciones de copia de seguridad y cuándo deben suceder.

Responsabilidades

  • Atender al journal.
  • Planificar los snapshots mediante los monitores de carga del sistema.
  • Ordenar grabar y borrar los snapshots.
  • Avisar a Watcher de que se ha finalizado una operación.

Colaboraciones


Watcher

Descripción

Atiende a los cambios que se hayan realizado en el sistema (ya sea por eventos periódicos del planificador del propio sistema operativo, esto es cron, por cambios en archivos vigilados que se deban almacenar, usando inotify, o bien por orden del usuario). Asímismo ordena realizar backups.

Responsabilidades

  • Escribir en el journal cuando se reciba un evento.
  • Actualizar inotify.

Colaboraciones


Metadata Indexer (Indexador de metadatos)

Descripción

Indexa información útil para la posterior búsqueda de archivos en el sistema (tanto mediante su contenido como mediante metadatos).
Por ahora no desarrollada por estar fuera del alcance.


Help (ayuda)

Descripción

Muestra el manual de la aplicación.


Stats (Estadísticas)

Descripción

Recopila información útil sobre el uso de HD Lorean que permite elaborar estadísticas y predicciones (por ejemplo, sobre el uso del disco).
Por ahora no desarrollada por estar fuera del alcance.


Usuario

Descripción

Representa los datos del usuario y estadísticas sobre el mismo.
Por ahora no desarrollado por estar fuera del alcance.

Colaboraciones


Preferences (Diálogo de preferencias)

Descripción

Permite configurar la aplicación.

Responsabilidades

  • Permitir la configuración de todo tipo de opciones, como indexar y/o excluir nuevos contenidos (carpetas, archivos, patrones…), periodicidad, uso de disco, etc.

Colaboraciones


Config wizard (Asistente de configuración)

Descripción

Permite fijar de manera sencilla y rápida las opciones de configuración más comunes del programa.
Por ahora no desarrollada por estar fuera del alcance.

Responsabilidades

  • Obtener todos los datos de configuración necesarios.
  • Almacenar esos cambios.
  • Avisar al backend de que se han producido.

Colaboraciones


Config file manager (lector de archivo de configuración)

Descripción

Lee el archivo de configuración y lo traduce a parámetros de la aplicación.

Responsabilidades

  • Validación de los datos.
  • Escritura de opciones.
  • Crear lista de archivos monitoreados.

Colaboraciones

En función de la implementación, con regexp parser.


Regexp parser (Parser de expresiones regulares).

Descripción

Interpreta expresiones regulares y ofrece funcionalidad basada en las mismas.


Inotify handler

Descripción

Interpreta las señales que envía inotify y ofrece una API para su manejo.

Responsabilidades

  • Añadir o eliminar notificadores.
  • Notificar los eventos recibidos.

Cron handler (manejador cron)

Descripción

Ofrece una API para interactuar con el demonio cron de planificación de tareas del sistema operativo.


D-Bus Manager

Descripción

Permite la comunicación vía paso de mensajes entre el frontend (o GUI) y el backend de la aplicación.

Responsabilidades

  • Transformar los mensajes de D-Bus en órdenes internas del programa => enviar órdenes.

Colaboraciones


Battery monitor (control de la batería)

Descripción

Monitoriza el estado de la batería.
Parte de una factoría, aún no implementada en su conjunto.


HD Load monitor (Control de carga del disco duro)

Descripción

Monitoriza la carga del disco duro (nivel de operaciones de entrada/salida del sistema) a fin de proporcionar información al planificador sobre cuándo conviene efectuar las operaciones.

Por ahora no desarrollada por estar fuera del alcance.

Posiblemente parte de una factoría para unificar las interfaces.


CPU load monitor (control de carga de la CPU)

Descripción

Monitoriza el estado de carga de la CPU. Posiblemente parte de una factoría.

Por ahora no desarrollada por estar fuera del alcance.


Storage monitor (Monitor de almacenamiento)

Descripción

Supervisa el espacio de almacenamiento y proporciona información sobre el mismo. Posiblemente parte de una factoría.

Responsabilidades

  • Comprobar si hay espacio en disco para escribir.
  • Comprobar cuánto va a ocupar el backup que se almacene.

FUSE adapter (Adaptador FUSE)

Descripción

Clase que permite traducir la información almacenada en nuestro sistema de snapshots a una vista compatible con las operaciones de archivo estándar de linux.
Por ahora no desarrollada por estar fuera del alcance.


HAL manager (notificador de cambios en el hardware)

Descripción

También conocido como "HAL 9000", se encarga de notificar los cambios en las unidades conectadas al sistema que puedan afectar a los backups (por ejemplo si se extrae un disco sobre el que se está efectuando un backup).

Por ahora no desarrollada por estar fuera del alcance.


Device manager (administrador de dispositivos externos)

Descripción

Gestiona las copias de los snapshots de HD Lorean en medios de almacenamiento externos como discos ópticos o memorias externas.

Por ahora no desarrollada por estar fuera del alcance.


Optical Media manager (Administrador de la grabadora)

Descripción

Permite exportar snapshots a medios ópticos. Posiblemente parte de una factoría para unificar las interfaces.


External API (API pública del sistema)

Descripción

Exporta la funcionalidad de HD Lorean y permite su uso por parte de aplicaciones de terceros.

Por ahora no desarrollada por estar fuera del alcance.


UI (Interfaz de usuario)

Descripción

Implementa la interfaz de usuario.


Nautilus integration (Integración con Nautilus)

Descripción

Se encarga de la integración con Nautilus, a modo de adaptador entre la interfaz que ofrezca el API de Nautilus y la información que proporciona HD Lorean.

Por ahora no desarrollada por estar fuera del alcance.

Colaboraciones


Snapshot finder (Buscador de versiones)

Descripción

Busca entre las versiones almacenadas, posiblemente por contenido.

Por ahora no desarrollada por estar fuera del alcance.

Colaboraciones


Beagle integration (Integración con Beagle)

Descripción

Se encarga de la integración con Beagle para permitir al sistema de indexación de contenidos que indexe nuestros archivos y posiblemente integrarlos con sus resultados para realizar nuestras búsquedas.

Por ahora no desarrollada por estar fuera del alcance.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License