Como la idea de crear un programa para replicar bases de datos Firebird ha tenido buena acogida podemos seguir avanzando con el proyecto. He creado una nueva categoría en el blog llamada “Proyecto de replicación” donde iré guardando todos los artículos que estén relacionados con ese tema.

Si te interesa colaborar puedes hacerlo de varias formas:

  1. Evaluando otros programas de replicación, sea para el motor SQL que sea (MySql, MsSql, Oracle, Firebird, Postgre, etc.), capturando todas las pantallas de esos programas (o sea, los screenshots) y enviándolas al grupo
  2. Buscando en Internet información teórica sobre como desarrollar un programa de replicación y enviando esa información al grupo
  3. Descargando de Internet el código fuente de otros programas de replicación (algunos son OpenSource) y enviándolos al grupo
  4. Aportando ideas sobre las características que te gustaría encontrar en un programa de replicación
  5. Analizando todo (o parte) del material de los puntos anteriores
  6. Escribiendo el código fuente del programa
  7. Comentando el progreso del desarrollo del proyecto, con los aspectos positivos y (principalmente) los negativos que vayas encontrando
  8. Alpha-testeando o Beta-testeando las primeras versiones del programa, buscándole errores

Como en todo proyecto tenemos que fijarnos plazos, mi idea preliminar es la siguiente (por supuesto que puede cambiarse, es sólo una idea):

  • Hasta el 31 de agosto dedicarnos a evaluar otros programas de replicación (punto 1 de la lista numerada de arriba), a buscar información teórica sobre el desarrollo de esta clase de programas (punto 2 de la lista), a descargar código fuente que encontremos en Internet (punto 3) y aportar ideas sobre todo lo que queremos que este programa tenga (punto 4)
  • Desde el 1 de Septiembre hasta el 30 de Septiembre dedicarnos a estudiar y a analizar todo lo recolectado en los días anteriores (punto 5)
  • Desde el 1 de Octubre hasta el 15 de Octubre escribir el código fuente del programa (punto 6)
  • El 16 de Octubre lanzar la versión Alpha para que pueda ser evaluada (punto 7) y corregida a medida que nos vayan informando de los errores encontrados (punto 6)
  • El 1 de Noviembre lanzar la versión Beta para que pueda ser evaluada (punto 8) y corregida (punto 6)
  • El 1 de Diciembre lanzar la Release Candidate
  • Entre el 1 de Diciembre y el 14 de Diciembre corregir los errores que nos vayan informando los evaluadores
  • El 15 de Diciembre lanzar la primera versión estable

Como dije antes, es solamente una sugerencia para tener plazos establecidos a los cuales ceñirnos, podríamos acortar o alargar etapas si las nombradas no nos parecen adecuadas.

CARACTERÍSTICAS DEL PROGRAMA

Estas son algunas de las características que estuve pensando sería bueno tener, seguramente a tí se te ocurrirán muchas más, compártelas para agregarlas a esta lista:

Tipos de replicación:

    1. Manual (la replicación empezará cuando el usuario haga clic sobre el botón “Replicar ahora”)
    2. Automática, (se puede configurar cuando empezará la replicación)
      • Permanente. Constantemente se está haciendo la replicación. Cuando se inserta, actualiza, borra un registro en la Base de Datos origen se realiza esa misma operación y en ese mismo instante en la Base de Datos destino
      • Cada x minutos. Por ejemplo, cada 10 minutos. Finaliza una replicación y a los 10 minutos empieza la siguiente, y así durante todo el día
      • Hora predeterminada. Por ejemplo, todos los días a las 18:00 empieza la replicación
      • Día y horas predeterminados. Por ejemplo,  todos los Viernes a las 18:30 empieza la replicación

Idioma:

Todas las pantallas y toda la documentación inicialmente estarán en castellano pero con la posibilidad de ser traducidas a otros idiomas (principalmente inglés, portugués y francés)

Ejecución asistida:

Tener un asistente (o wizard) para que los usuarios principiantes puedan replicar una Base de Datos sin esfuerzo. En cada pantalla el asistente pedirá unos cuantos datos (por ejemplo: en una pantalla pedirá el nombre de la Base de Datos origen, el nombre del usuario que hará la replicación, la contraseña de ese usuario, etc. y en otra pantalla pedirá el nombre de la Base de Datos destino, su usuario, su contraseña, etc.)

Indicadores de progreso

Para que el usuario pueda ver que la replicación se está efectuando y pueda saber cuanto tiempo (al menos aproximadamente) demorará en completarse

Minimización en la barra de tareas del Windows

Colocar el icono del programa en la barra de tareas del Windows (donde está el reloj) para que las pantallas del programa no estén en el escritorio molestando a los usuarios

Replicación distribuida

Para realizar replicación en serie. La Base de Datos “A” se replica en la “B” y en la “C”, la “C” se replica en la “D” y en la “E”, la “E” en la “F”, etc.

DECISIONES SOBRE LA DISTRIBUCIÓN DEL PROGRAMA

  • ¿Será Open Source?
  • ¿Será freeware?
  • ¿Será freeware en algunos casos y comercial en otros casos?

Si elegimos el último ¿cómo se distribuirá el dinero cobrado? ¿cómo lo hacemos para que nadie se enoje?

Hay varios otros puntos más que también deberemos tocar, como:

  • ¿En qué lenguaje programaremos? ¿C, C++, Delphi, Java, otro? La ventaja de programar en C++ es que Firebird está escrito en ese lenguaje y por lo tanto podríamos fácilmente usar su API que es de libre distribución y de esta manera conseguiríamos mayor velocidad y no depender de los drivers. La desventaja es que seguramente no todos conocen C++.
  • ¿Cómo castigamos a quién se comprometió a realizar una tarea y no la realizó?

Artículo relacionado:

El índice del blog Firebird21

 

Anuncios