desarrollo de aplicaciones
Raquel Pérez Bartolomé Team Manager

Gestión offline de la información en entornos industriales

En entradas anteriores hemos comentado algunas de las ventajas de trabajar con aplicaciones móviles en entornos industriales que, gracias a su ubicuidad, principalmente, nos permiten continuar trabajando desde cualquier lugar donde nos encontremos y actualizar datos de nuestros sistemas o acceder a otros.

Por otro lado, el hecho de poder trabajar de forma remota en cualquier lugar implica que en algunos puntos carezcamos de conectividad a Internet. Es importante tener en cuenta que la experiencia nos dice que en entornos industriales son numerosas las zonas en las que la cobertura es limitada o nula.

Las apps móviles garantizan que el usuario continúe con su trabajo independientemente de las condiciones, conectividad disponible o no. La app es responsable de sincronizar la información cuando sea posible, siempre de forma transparente para el usuario. ¿Cómo lo hacemos?

Planificación desarrollo apps móviles

Antes de iniciar un proyecto hablamos con nuestros clientes y definimos los objetivos generales del mismo, así como los usuarios finales de nuestro sistema y en qué condiciones los usaran (definimos a las personas). En la mayoría de los proyectos relacionados con la Industria 4.0 contamos con limitaciones de conectividad y definimos una política de gestión de la información offline desde el inicio.

Con la política offline buscamos garantizar:

  • La sincronización con el servidor de toda la información generada, a pesar de no contar con conexión constante, la máxima es no perder información para ello, la app de forma automática enviará los datos cuando sea posible.
  • El trabajo de nuestros usuarios; la app móvil está preparada para un flujo de trabajo asíncrono, sin necesidad de tener la información constantemente actualizada con el servidor, cuenta con cierta lógica de negocio que independiza a la app del servidor para las situaciones de falta de acceso a la red.
  • El usuario conoce en todo momento si la app está actualizada o no y cuenta con mecanismos para actualizar la app de forma manual si así lo necesitara.

Ejemplo de política offline

En los desarrollos en los que la sincronización será previsiblemente offline incluimos los siguientes estados en los datos con los que trabajamos:

  • Sincronizado
  • Pendiente de sincronización, se sincronizará cuando se pueda
  • No sincronizar todavía, este estado lo usamos cuando queremos persistir datos en la app, pero sin sincronizarlos con el servidor hasta que no terminemos incluir toda la información

Buscamos que la aplicación cuente con un listado actualizado de qué datos están pendientes de sincronización. Estos datos serán sincronizados con el servidor en la siguiente ventana de sincronización.

El cuándo será la siguiente ventana de sincronización dependerá de la estrategia que definamos. Para definir la estrategia analizaremos la casuística de nuestra app, entre otras características tendremos en cuenta el uso de batería. En muchos casos nos encontramos que el uso del móvil es casi constante y no contamos con puntos de recarga en el terreno por lo que debemos definir una estrategia que balancee la sincronización y el uso de la batería.

¿Qué estrategias podemos definir?:

  • Reintento automático, en la siguiente acción que realice el usuario y necesite sincronización la app intentará enviar los datos.
  • Sincronización manual, delegamos la sincronización al usuario con una opción dedicada: sincronizar datos y que sea él quien elija el momento.
  • Automatizado en función de eventos, definimos trabajos en nuestra app que realicen acciones en función de eventos, en este caso, cuando haya conexión. En Android lo podremos implementar gracias a programar tareas con WorkManager. En iOS podremos conocer cuando el dispositivo vuelve a tener conexión gracias a SCNetwork y definir las tareas que se deben realizar.

Conclusiones

Desde Izertis, el objetivo principal de nuestros desarrollos de software siempre es adaptarnos a las necesidades y objetivos tanto de negocio como de los usuarios finales. Con este fin aunamos la escucha activa de los requisitos de negocio junto con nuestro conocimiento y experiencia desarrollando sistemas. Formamos equipo con nuestros clientes para traducir un plan en un sistema digital que explote las posibilidades que la tecnología nos ofrece.

Cuando desarrollamos herramientas de productividad entre las decisiones iniciales que debatimos está la necesidad de incorporar una aplicación móvil al sistema o no. Si bien, no siempre es necesario y, en algunos casos, con una interfaz web es suficiente para cumplir los objetivos concretos del proyecto; en otras ocasiones una aplicación móvil es recomendable y necesaria. Por ejemplo, cuando nuestros usuarios trabajan en entornos con conectividad limitada; en este caso la aplicación móvil, como hemos profundizado en esta entrada, asegura el correcto funcionamiento evitando que la ausencia de conexión a internet genere bloqueos en el flujo de trabajo o pérdida de información.

En posteriores entradas profundizaremos en más retos de la Industria 4.0 tales como la integración de sensores en nuestros sistemas.