Sincronismo Mobile

Entorno del problema: Para que se pueda utilizar el aplicativo en mobile, aun estando sin conexión a internet, se tomó la decisión de diseño de contratar un aplicativo que se encargue de manejar el sincronismo entre la BBDD del Móvil y la BBDD del servidor. El aplicativo seleccionado fue Zumero que tiene un costo anual.

Problema: Durante el desarrollo detectamos varias fallas operativas en Zumero, alguna de las cuales fueron arregladas por el proveedor, pero otras no, por ejemplo:

  • ante ciertos errores de sincronismo solo se puedo optar por ignorar o rechazar todo el sincronismo.
  • no loguea los errores de sincronismo, solo avisa que fallo
  • al sincronizar más de una base (horas, rrhh, etc) no podemos recibir el resultado de todas las sincronizaciones.
  • tiene un error 19 que en la documentación de Zumero dice que suele darse muy ocasionalmente y que no tiene un origen detectado.

Enfoque de Solución: Encargarnos nosotros del sincronismo, poniendo solo algo de lógica para detectar los cambios realizados y disparar los servicios Web como sincronismo, para esto tenemos el siguiente primer borrador de tareas:

  • Crear base e invocar un primer Sincronismo (4hs)
  • El Aplicativo actual deberá loguear cada acción realizada con la clave del registro (1hs)
  • Ante invocación Manual o por periodicidad, disparar el sincronismo (1hs)
  • El sincronismo deberá:
    • Tratar cada log que no tengan la marca de procesado
    • Determinar una acción por clave en base al log (1hs)
      • Alta + Modif + Baja = no manda nada
      • Alta + modif + modif = Alta con los datos actuales
      • Alta = Alta
      • Modif + modif + baja = baja
      • Modif + Modif = Modif con los datos actuales
      • Modif = Modif
      • Baja = Baja
    • por cada id deberá:
      • Llamar al servicio backend con la acción (2hs)
      • Loggear el resultado obtenido (1hs)
      • Marcar como procesados a todos los registros de log del id tratado.
    • una vez procesados todos los registros del log, deberá pisar la BBDD del móvil con los datos del servidor aplicando los filtros definidos (6,5hs)

Estimación:

Codificación 16,5 hs
Testing (prueba y corrección de errores) 10 hs
Depuración Zumero 5 hs
Ambientes 2 hs
Implementación 2hs
Gestión 3 hs
TOTAL de 36,5 hs a 45 hs (38,5)

Detalle de la estimación: Cambios sincronizacion mobile