Replicación 2. Una captura de pantalla

4 comentarios

Esta es una de las ideas que tengo para el programa de replicación, aunque esta captura de pantalla no está relacionada con el tema sirve para ilustrar los conceptos.

REPLICA2_1

Captura 1. Si haces clic en la imagen la verás más grande

En el panel de la izquierda se muestran todas las opciones del programa, con la información que resulte pertinente (1).

Cuando una de esas opciones se está ejecutando mostrarla resaltada para que el usuario pueda saber fácilmente cual opción se está ejecutando (2).

En el panel de la derecha pedirle que ingrese los datos que el programa necesita conocer antes de empezar la replicación o mostrarle el progreso de la replicación, por supuesto con los correspondientes mensajes explicativos (3).

Creo que este tipo de pantallas le facilita al usuario entender lo que está haciendo el programa y son útiles al menos para los usuarios principiantes. Para los usuarios avanzados podríamos tener otro tipo de pantallas.

¿Qué te parece la idea? ¿te gusta o no? ¿Algunos puntos negativos que puedas comentar?

Artículo relacionado:

El índice del blog Firebird21

Anuncios

Replicación 1. Pasos iniciales

1 comentario

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

 

Proyecto de replicación

27 comentarios

¿Estás interesado en ayudarme a desarrollar un programa para replicar bases de datos Firebird?

Estuve evaluando varios de los programas que encontré en Internet y todos tienen alguna falla o algún aspecto que (según mi criterio, claro) puede ser bastante mejorado.

La idea es distribuirlo como freeware, mi intención no es ganar dinero con este programa sino que sería un aporte más para la comunidad Firebird. Si te parece que sería mucho esfuerzo para trabajar gratis estuve pensando que podríamos tener dos versiones: evaluación y comercial. La versión de evaluación permitiría replicar solamente dos bases de datos y la versión comercial permitiría la replicación distribuida (o sea una base de datos que se replica con otra la cual replica a otra la cual replica a otra, etc.). La replicación distribuida típicamente necesitan las empresas grandes así que podrían invertir unos cuantos dólares para tener un programa completo, fácil de usar, confiable y con toda la documentación en castellano.

Creo que un buen programa de replicación y en idioma castellano es algo que nos está haciendo mucha falta. Si te interesa colaborar conmigo en este proyecto, házmelo saber.

Walter.

Artículo relacionado:

El índice del blog Firebird21