Volver al blog Business apps

¿Funcionará sin conexión tu aplicación empresarial autoalojada? Lista práctica de evaluación

Aprende a comprobar si una aplicación empresarial autoalojada realmente permite trabajar sin conexión —y no solo mostrar páginas almacenadas en caché— y evalúa la sincronización, los conflictos, la autenticación, los archivos adjuntos y los riesgos para los dispositivos.

Equipo de operaciones prueba una aplicación empresarial sin conexión en un portátil y un teléfono

Empieza por definir qué significa «sin conexión» para tu equipo

Las necesidades de trabajo sin conexión varían. Una breve interrupción del wifi durante una visita a una obra no es lo mismo que trabajar un turno completo sin una conexión fiable; y ambas situaciones son distintas de trabajar durante días en un lugar donde no se espera tener conectividad.

Anota cuál es la desconexión más prolongada que cabe esperar, cuántas personas podrían trabajar sin conexión al mismo tiempo, qué datos necesitan y con qué rapidez deben llegar los cambios a sus compañeros. Incluye los dispositivos y navegadores que usan realmente: el comportamiento sin conexión puede variar según la aplicación y el navegador, y algunas funciones de sincronización en segundo plano del navegador no están disponibles en todas partes.

Define qué tiempo de recuperación es aceptable. Por ejemplo, decide si el personal debe poder completar una tarea inmediatamente sin conexión o si basta con guardar un borrador y terminarla al reconectarse. Son requisitos distintos y pueden apuntar a herramientas diferentes.

  • Interrupción ocasional: la aplicación debería conservar el trabajo en curso y recuperarse correctamente cuando vuelva la conexión.
  • Desconexión prolongada: puede que los usuarios necesiten consultar y editar un conjunto útil de registros y enviar acciones más adelante.
  • Sin internet fiable: considera si hace falta una aplicación preparada para funcionar sin conexión o una instalación local, en lugar de dar por hecho que un servicio alojado en la nube cubrirá la necesidad.
Empieza por definir qué significa «sin conexión» para tu equipo

Distingue entre acceder a contenido almacenado en caché y completar un flujo de trabajo

Que una página se abra sin conexión no demuestra que se pueda completar el trabajo. Una aplicación web puede almacenar en caché los recursos de una página o contenido consultado anteriormente, pero es la aplicación la que determina cómo se gestiona cada solicitud. Las páginas almacenadas en caché pueden estar desactualizadas, incompletas o ser de solo lectura.

Prueba la tarea completa, no solo la pantalla. ¿Puede una persona encontrar el registro correcto, editarlo, añadir una nota, enviar el cambio y recibir una confirmación clara mientras está desconectada? ¿La aplicación guarda un borrador local, pone una solicitud en cola o simplemente muestra un error? Pide al proveedor que explique exactamente qué ocurre con cada acción crítica.

Considera estas capacidades por separado: consultar contenido almacenado anteriormente, editarlo sin conexión, poner cambios en cola para enviarlos después y completar un flujo de trabajo de principio a fin sin conexión con el servidor. No des por sentado que una implica las demás.

  • Acceso sin conexión: ¿qué registros y páginas de referencia están disponibles y cuándo se actualizaron por última vez?
  • Edición sin conexión: ¿qué campos o acciones se pueden modificar sin conexión?
  • Envío en cola: ¿dónde se guarda el cambio pendiente y cómo sabe el usuario que todavía no ha llegado al servidor?
  • Finalización del flujo de trabajo: ¿qué pasos siguen requiriendo el servidor, como la aprobación, la validación o la generación de un resultado compartido?
Distingue entre acceder a contenido almacenado en caché y completar un flujo de trabajo

Enumera los registros, archivos adjuntos y materiales de referencia que necesitan los usuarios

Elabora un inventario breve basado en el trabajo real, en lugar de hacer una petición genérica de un «modo sin conexión». Especifica los tipos de registros, los campos que se modifican y la información de referencia que se consulta. Incluye archivos adjuntos, como fotos o documentos, y pruébalos por separado del texto corriente.

Pregunta cómo eligen los usuarios los datos que quieren tener disponibles antes de desconectarse. ¿Se descargan automáticamente o la persona debe abrirlos o seleccionarlos primero? Comprueba si los registros siguen disponibles durante todo el periodo previsto sin conexión y si la aplicación muestra la antigüedad de los datos locales.

El almacenamiento del navegador tiene límites y varía según el navegador y el dispositivo. Los datos guardados pueden eliminarse cuando hay presión sobre el almacenamiento. Comprueba que la aplicación indique claramente si faltan datos locales y determina si la empresa puede aceptar tener que volver a descargar registros o archivos adjuntos antes de empezar a trabajar.

  • Identifica los registros esenciales y los campos mínimos necesarios para actuar.
  • Enumera las fotos, los archivos, los formularios, los mapas, los procedimientos u otros materiales de referencia necesarios.
  • Calcula aproximadamente el volumen de datos que se necesita sin conexión y el espacio disponible en los dispositivos del personal.
  • Comprueba si la aplicación indica qué se ha descargado y cuándo se actualizó por última vez.
  • Decide qué debería hacer un usuario si falta contenido necesario para trabajar sin conexión.

Comprueba la sincronización, los reintentos y la gestión de conflictos

Que una acción esté en cola no significa necesariamente que se haya sincronizado de forma segura. Averigua qué inicia la sincronización: un proceso automático del navegador, abrir la aplicación, pulsar un botón de sincronización u otro paso. La sincronización en segundo plano no está disponible en todos los navegadores de uso extendido, así que prueba las combinaciones que utiliza realmente tu equipo.

Pregunta qué ocurre si la conexión se interrumpe durante una carga o si la aplicación no puede determinar si la solicitud llegó al servidor. Reintentar una acción que modifica datos puede producir efectos duplicados, a menos que la aplicación pueda identificar de forma segura que se trata de un reintento o determinar si la primera operación se completó. Comprueba si acciones como crear un registro, enviar un formulario o cargar un archivo adjunto producen duplicados.

Pueden surgir conflictos cuando alguien edita un mismo registro en línea mientras otra persona modifica una copia sin conexión. La aplicación necesita un procedimiento definido: podría mostrar las versiones en conflicto, combinar los cambios o pedir al usuario que los revise y vuelva a editarlos. Determina qué datos prevalecen, quién resuelve el conflicto y si los valores originales siguen disponibles para su revisión.

  • ¿Pueden los usuarios ver las acciones de sincronización pendientes, completadas y fallidas?
  • ¿Se vuelven a intentar las cargas fallidas y puede el usuario reintentarlas manualmente sin riesgo?
  • ¿Cómo evita la aplicación que se creen registros duplicados o se envíen varias veces los mismos datos?
  • ¿Qué ocurre si el mismo registro se modifica en dos dispositivos antes de que vuelvan a conectarse?
  • ¿Puede el usuario examinar y resolver los conflictos o la aplicación aplica una regla automáticamente?
  • ¿Qué ocurre si se cierra el navegador o el dispositivo antes de enviar el trabajo que está en cola?

Prueba la autenticación, los permisos y los dispositivos compartidos

Incluye casos de inicio de sesión y control de acceso en la evaluación. Averigua si un usuario puede abrir datos ya descargados después de que caduque su sesión de autenticación y qué puede hacer con la aplicación hasta que vuelva a conectarse. Un dispositivo sin conexión no puede consultar al servidor si han cambiado los permisos, así que confirma cómo gestiona la aplicación esa situación y con qué rapidez se aplican los cambios de acceso después de la reconexión.

Presta especial atención a los dispositivos compartidos o utilizados por turnos. Averigua si una persona puede ver los registros almacenados localmente o los cambios pendientes de otra, qué ocurre con los datos locales al cerrar sesión y cómo distinguen los usuarios el trabajo propio que aún no se ha enviado. No des por sentado que una pantalla de inicio de sesión protege la información que ya está guardada en el navegador.

El acceso sin conexión crea una copia local de la información empresarial. OWASP advierte que quienes tienen acceso a un equipo pueden acceder a los datos almacenados en el navegador y recomienda no guardar información sensible ni identificadores de sesión en el almacenamiento local. Pregunta al proveedor de la aplicación qué almacena en el dispositivo y evalúa si es adecuado para tus datos.

  • Prueba las sesiones caducadas tanto con conexión como sin ella.
  • Cambia un permiso, desactiva una cuenta y cierra la sesión de un usuario; después, vuelve a conectarte y comprueba el resultado.
  • Comprueba si un usuario del dispositivo puede acceder a los datos almacenados en caché o a las acciones en cola de otro usuario.
  • Documenta la sensibilidad de los registros almacenados localmente y quién puede acceder al dispositivo.

Incluye los archivos adjuntos y la pérdida del dispositivo en la evaluación de riesgos

La compatibilidad sin conexión también es una decisión de gobernanza de datos. Un dispositivo puede contener registros y archivos adjuntos que todavía no están en el servidor. Decide qué información se puede almacenar localmente, durante cuánto tiempo y qué usuarios y dispositivos pueden llevarla consigo.

Pregunta si los datos locales están cifrados y qué controles de dispositivos exige tu organización. Las directrices de NIST para dispositivos móviles recomiendan cifrar los datos almacenados y describen el borrado remoto como una medida aplicable cuando un dispositivo puede haberse perdido, haber sido robado o estar en manos de alguien no autorizado. Comprueba si el proceso de gestión de dispositivos de tu organización puede cumplir esos requisitos en los dispositivos que realmente utiliza el personal.

Documenta cómo responder ante la pérdida de un dispositivo. Incluye cómo comunicar la pérdida, desactivar el acceso cuando sea posible, gestionar los datos almacenados localmente y determinar si podría perderse trabajo aún no sincronizado. La función sin conexión de la aplicación no sustituye los procedimientos de acceso, conservación de datos y gestión de incidentes de tu organización.

  • Clasifica los datos y archivos adjuntos que podrían almacenarse en cada dispositivo.
  • Establece requisitos de cifrado del dispositivo, bloqueo de pantalla y administración adecuados para tu organización.
  • Confirma qué acciones remotas están disponibles y qué pueden o no pueden eliminar.
  • Define cómo debe informar el personal de la pérdida de un dispositivo y cómo recuperar o recrear el trabajo pendiente.

Realiza una prueba controlada sin conexión con tareas representativas

Utiliza una cuenta de prueba, registros representativos y los mismos modelos de navegador y dispositivo que el equipo piensa usar. Empieza con conexión, prepara los datos que deberían estar disponibles sin conexión y confirma qué indica la aplicación que está listo. Luego desconecta deliberadamente la red y realiza las tareas críticas acordadas.

Vuelve a conectarte y espera a que se active el proceso de sincronización documentado. Comprueba tanto la interfaz de usuario como el resultado en el servidor: confirma que se recibieron los cambios previstos, que el trabajo fallido se muestra, que los archivos adjuntos están completos y que no se duplicó ninguna acción. Repite la prueba con un conflicto y una carga interrumpida. Anota los pasos exactos y los resultados para que el equipo pueda repetir la prueba tras cambiar la configuración o la aplicación.

No pruebes únicamente una interrupción breve en condiciones ideales. Incluye el periodo máximo previsto sin conexión y situaciones como cerrar y volver a abrir el navegador, reiniciar el dispositivo o cambiar de usuario, cuando formen parte de las operaciones habituales.

  • Prepara una lista de comprobación con cada flujo de trabajo crítico y su resultado esperado.
  • Desconecta la red y trata de completar el flujo de trabajo de principio a fin.
  • Interrumpe al menos una carga o un envío y, después, restablece la conexión.
  • Comprueba si faltan cambios, hay efectos duplicados o conflictos sin resolver, y si los mensajes que recibe el usuario son claros.
  • Repite la prueba en todas las combinaciones de navegador y dispositivo en las que el equipo vaya a depender.
  • Anota las limitaciones y decide si son aceptables, requieren una solución alternativa o descartan la aplicación.

Elige el modelo de implementación que mejor se adapte al trabajo

El autoalojamiento describe quién opera el entorno de la aplicación; por sí solo, no proporciona datos disponibles sin conexión, edición sin conexión ni sincronización. Una aplicación alojada en un servidor sigue necesitando conexión si su flujo de trabajo depende de ese servidor. A la inversa, una aplicación diseñada cuidadosamente para funcionar sin conexión puede permitir determinadas tareas durante una desconexión, con las limitaciones propias de la aplicación.

Airbip gestiona la infraestructura en la nube para aplicaciones autoalojadas: las instancias de aplicaciones se ejecutan como cargas de trabajo de Docker en servidores en la nube de Airbip, con enrutamiento y certificados TLS automatizados mediante Traefik y Let’s Encrypt, además de comprobaciones de DNS, gestión del ciclo de vida del servicio y copias de seguridad diarias, semanales y mensuales configurables. Ese modelo de alojamiento no añade funciones para trabajar sin conexión a una aplicación. Evalúa por separado el comportamiento documentado de la aplicación y considera si las ubicaciones de los usuarios pueden acceder al servicio alojado cuando trabajan con conexión.

Si los usuarios deben completar tareas esenciales en lugares sin una conexión fiable, elige una aplicación y un modelo de implementación que demuestren ser compatibles con esos flujos de trabajo, o diseña un procedimiento explícito para trabajar sin conexión. Si solo importan las interrupciones ocasionales, puede bastar con un flujo de trabajo probado de cola y sincronización. Si el trabajo exige acciones compartidas inmediatas y validadas por el servidor, puede ser más seguro mantener un proceso que requiera conexión y contar con una alternativa clara, en lugar de afirmar que el flujo funciona sin conexión.

  • Elige software preparado para funcionar sin conexión cuando sea necesario completar tareas críticas sin conectarse al servidor.
  • Elige un flujo de trabajo probado de sincronización diferida solo si la gestión de conflictos y de acciones duplicadas es aceptable.
  • Elige un flujo de trabajo explícitamente dependiente de la conexión cuando las acciones requieran validación del servidor en tiempo real o datos compartidos y actualizados, y ofrece una alternativa práctica para las interrupciones.
  • Considera el alojamiento, las funciones de la aplicación, los controles locales del dispositivo y los procedimientos del personal como aspectos distintos de la decisión.

Preguntas frecuentes

¿El autoalojamiento permite usar una aplicación empresarial sin conexión?

No. El autoalojamiento se refiere a dónde y cómo se opera la aplicación; el acceso sin conexión y la sincronización dependen del diseño de la aplicación y de los datos disponibles en el dispositivo del usuario. Una aplicación autoalojada que necesita el servidor para realizar una tarea seguirá necesitando conexión para esa tarea.

¿Basta con que una página esté almacenada en caché para considerar que una aplicación funciona sin conexión?

No. Los recursos o las páginas almacenados en caché pueden permitir consultar parte del contenido, pero no demuestran que los usuarios puedan editar registros, enviar acciones, cargar archivos o completar un flujo de trabajo. Prueba cada tarea crítica sin conexión y verifica el resultado después de volver a conectarte.

¿Las acciones sin conexión que se ponen en cola pueden generar duplicados?

Sí, si se vuelve a intentar una acción tras un fallo cuyo resultado no está claro y la aplicación no puede determinar de forma segura si ya se completó. Prueba los envíos repetidos y las interrupciones de conexión, y pregunta cómo gestiona la aplicación los reintentos y evita duplicados.

¿Qué deberíamos probar si una edición sin conexión entra en conflicto con una edición en línea?

Modifica el mismo registro desde dos dispositivos o usuarios, y realiza una de las modificaciones sin conexión. Después de reconectarte, comprueba si la aplicación muestra ambas versiones, combina los cambios o solicita una revisión, y confirma que los usuarios puedan identificar y resolver el resultado.

¿Es suficientemente fiable el almacenamiento del navegador para guardar datos críticos sin conexión?

No lo des por hecho sin probarlo. Los límites y la eliminación automática de datos del almacenamiento del navegador varían, y los datos pueden borrarse cuando hay presión sobre el almacenamiento. Confirma cómo prepara y protege la aplicación los datos sin conexión y, después, prueba que estén disponibles durante el periodo y en los dispositivos que espera utilizar tu equipo.

¿Qué debería ocurrir si se pierde un dispositivo que contiene datos sin conexión?

Establece un procedimiento documentado que abarque la notificación de la pérdida, el control de acceso, la gestión del dispositivo y los datos almacenados localmente. Evalúa las opciones de cifrado del dispositivo y borrado remoto, y decide cómo gestionar el trabajo que todavía no se había sincronizado.

Fuentes y lecturas adicionales

  1. Offline and background operation — Progressive web apps — MDN Web Docs
  2. Background Synchronization API — MDN Web Docs
  3. Retrying requests when back online — Chrome for Developers
  4. Storage quotas and eviction criteria — MDN Web Docs
  5. HTML5 Security Cheat Sheet — OWASP
  6. RFC 9110: HTTP Semantics — Internet Engineering Task Force
  7. Replication and conflict model — Apache CouchDB
  8. Guidelines for Managing the Security of Mobile Devices in the Enterprise — National Institute of Standards and Technology
  9. Service Worker API — MDN Web Docs