Arquitectura
Arquitectura
El módulo se apoya en tres piezas separadas a propósito. Esta página explica qué hace cada una y, sobre todo, por qué está hecha así: casi todas las decisiones responden a un problema concreto que se paga caro cuando no se resuelve.
Los tres dominios#
| Dominio | Qué contiene | Quién lo usa |
|---|---|---|
| Operativo | Tu solución s360, con su lógica, sus relaciones y su trabajo diario | Las personas de tu empresa |
| Transformación | El servicio de sincronización: extrae, limpia y carga | Nadie: corre solo, en la ventana acordada |
| Analítico | La base de datos analítica, publicada por OData de solo lectura | Power BI y otras herramientas |
Dominio operativo Transformación Dominio analítico
───────────────── ────────────── ─────────────────
s360 ──────► servicio de ──────► base analítica
(trabajo diario) sincronización (solo lectura)
│
▼
Power BI · Excel
La separación es física y lógica: son bases y servidores distintos. Ninguna consulta de análisis toca la base donde trabaja tu gente, y ninguna herramienta de BI tiene forma de escribir en ella.
El servicio de sincronización, por dentro#
Es la pieza con más ingeniería, y la que hace que esto sea un servicio y no una copia de datos. Estos son sus siete mecanismos.
1. Descubrimiento, no lista a mano#
El servicio no lleva escrita la lista de tablas a copiar: recorre la solución de origen y toma los recursos publicados para integración.
Por qué importa
Una lista escrita a mano se queda vieja el día que s360 gana una entidad nueva, y nadie se entera hasta que falta un dato en un informe. Descubriendo, lo nuevo entra solo.
2. Filtros de exclusión: lo que no viaja#
No se replica todo. Se descartan tres cosas:
| Se descarta | Por qué |
|---|---|
| Campos calculados, sumarios, globales y contenedores | Los primeros hay que resolverlos uno a uno al leer —caros y frágiles—; los contenedores son ficheros e imágenes, que multiplican el volumen y no se analizan |
| Campos de control y de interfaz | Los que existen para buscar, filtrar, ordenar, guardar registros técnicos o pintar la pantalla. No miden nada |
| Recursos completos no analíticos | Imágenes de ficha, formatos de impresión, plantillas, configuración interna y documentación |
Esto es minimización, no recorte
Lo que no viaja no está en la base analítica, y por tanto no se puede exponer ni filtrar por error. Es la aplicación práctica del principio de minimizar los datos tratados, y de paso lo que hace que el modelo sea rápido.
3. Sonda previa: no romper el origen#
Antes de copiar una entidad, el servicio hace una comprobación previa para saber si tiene registros.
El problema real que evita
Pedir el contenido de una entidad vacía puede provocar un error del motor de origen y abortar la sincronización entera. Con la sonda, una tabla vacía se marca como «sin registros» y el proceso continúa. Es la diferencia entre un informe con una línea informativa y una madrugada sin datos.
4. Cola secuencial: nunca dos a la vez#
Todas las sincronizaciones —incluso las de clientes distintos— pasan por una cola que las ejecuta de una en una.
Por qué no se paraleliza
Dos extracciones simultáneas compiten por la memoria y la CPU de los mismos servidores. Paralelizar no acorta el total: lo alarga y pone en riesgo la operación. La cola convierte un pico impredecible en una carga previsible.
Si se pide una sincronización de una solución que ya está en marcha o en cola, el servicio la rechaza explícitamente y avisa por correo, en lugar de duplicar el trabajo en silencio.
5. Programador propio#
Un proceso interno revisa periódicamente la programación de cada solución y dispara lo que toque. Las frecuencias posibles son diaria, semanal —con sus días de la semana— y por minutos. Ver Actualizaciones.
6. Vaciado y carga controlados#
Antes de cargar una entidad, la correspondiente del destino se vacía. El resultado es una foto completa y coherente, sin restos de la ejecución anterior ni duplicados.
Si el vaciado no se puede completar en alguna entidad, se informa de ello explícitamente en el resumen, en lugar de dar la carga por buena.
7. Registro y aviso#
Cada ejecución deja constancia con su inicio, fin, duración, número de entidades, número de registros, estado y detalle por entidad, y se envía un correo con el resumen al equipo técnico y al cliente.
Es lo que convierte la confianza en evidencia
Cuando alguien pregunte «¿estos datos de cuándo son?», la respuesta no es una suposición: está la hora exacta de la última carga y cuántos registros trajo.
Cómo se activa#
El servicio lo activa y programa Esofitec desde su panel de administración, de forma desatendida:
- Se contrata el módulo y se acuerda la frecuencia.
- Esofitec crea la base analítica de tu solución y su credencial de acceso.
- Se programa la ventana de actualización.
- Recibes la dirección OData y las credenciales, y empiezas a construir.
No hay que instalar nada en tu equipo ni abrir puertos en tu red: el consumo es por HTTPS contra una dirección que te entregamos.
Qué pasa si algo falla#
| Situación | Qué ocurre |
|---|---|
| Una entidad da error al leerse | Se registra el error de esa entidad y el resto continúa |
| Una entidad está vacía | Se marca como «sin registros»; no es un fallo |
| El vaciado previo no se completa | Se avisa en el resumen, señalando esa entidad |
| Se pide una sincronización ya en curso | Se rechaza y se notifica |
| La ejecución entera falla | Queda registrada con su mensaje de error y llega el aviso |
En todos los casos la base analítica conserva la última carga buena: nunca te quedas sin datos, en el peor caso te quedas con los de ayer.
Qué viene después#
Modelo de datos explica qué entidades llegan al final de ese camino y cómo están construidas.