Ir al contenido

Arquitectura

Zoan está formado por tres componentes que trabajan juntos. Entender cómo se comunican te ayuda a instalar, asegurar y diagnosticar la plataforma.

flowchart TB
  subgraph nube["NEXUS · nube — tu-empresa.nexus.zoansoftware.com"]
    portal["Portal web · API REST · Gateway WebSocket de agentes"]
  end
  designer["DESIGNER · tu PC<br/>diseña y prueba"]
  agent["AGENT · PC o servidor<br/>ejecuta los bots"]
  designer -->|"publica paquetes (HTTPS)"| nube
  agent -->|"WebSocket saliente (wss/443)<br/>heartbeat · órdenes · logs"| nube

El backend central y el cerebro de la plataforma. Vive en la nube, bajo el subdominio de tu organización. Se encarga de:

  • Gestionar tenants, entornos, agentes, procesos, ejecuciones, triggers y credenciales.
  • Exponer una API REST para administración e integración.
  • Servir el portal web donde administras y monitoreas todo.
  • Mantener un gateway WebSocket al que se conectan los agentes para recibir órdenes y reportar estado.

Aplicación Windows que se instala en la máquina donde se ejecutarán las automatizaciones. Se conecta a Nexus con una Machine Key y queda a la espera de órdenes. Puede funcionar en dos modos:

  • Atendido: dentro de una sesión de usuario de Windows abierta (la persona lanza el bot en su equipo).
  • Desatendido: como servicio de Windows en segundo plano, en un servidor sin nadie presente. Para automatizar la interfaz (escritorio o navegador con ventana) en este modo, el agente usa una sesión de robot —una cuenta de Windows— para abrir un escritorio donde el bot pueda trabajar.

Ver Qué es un agente, Sesiones de robot e Instalación en Windows.

El editor visual de automatizaciones (app de escritorio). Construyes playbooks arrastrando actividades, configurando parámetros y definiendo variables; los pruebas localmente; y luego los publicas a Nexus, donde se asignan a procesos. Ver Vista general del Designer.

La pieza clave es la conexión Agent → Nexus:

  • El Agent siempre inicia la conexión hacia Nexus mediante un WebSocket seguro (wss://, sobre el puerto 443). Nexus nunca abre conexiones hacia el agente.
  • Sobre ese canal, el Agent envía un heartbeat periódico (señal de “sigo vivo y disponible”). Si Nexus deja de recibirlo, marca al agente como offline.
  • Por el mismo canal, Nexus despacha órdenes de ejecución y cancelación, y el Agent devuelve logs y resultados en tiempo real.
  1. Al lanzar la ejecución (manual o por trigger) se eligen el proceso, el agente y la sesión de robot con la que se ejecutará.
  2. Nexus envía la orden al agente seleccionado por el WebSocket (no la reparte ni elige el agente por ti).
  3. El agente descarga el paquete en la versión del proceso y lo ejecuta localmente con el Runner.
  4. Durante la ejecución, los logs y el estado fluyen de vuelta a Nexus en tiempo real.
  5. Al terminar, el resultado (completed / failed) queda registrado en el historial de ejecuciones.

Ver Estados y ciclo de vida.

No hay una única forma correcta; depende de si automatizas tareas atendidas o procesos desatendidos:

EscenarioDónde va el AgentModo
Asistente personal para un usuarioEl PC de esa personaAtendido (sesión de usuario)
Proceso nocturno de alto volumenUn servidor o VM dedicadaDesatendido (servicio de Windows)
Varias automatizaciones en paraleloVarias máquinas/VM, una por agenteMezcla, según cada caso

Nexus es multi-tenant: aloja a múltiples organizaciones en una misma instancia, pero completamente aisladas entre sí. Cada tenant tiene sus propios entornos, agentes, procesos, usuarios y credenciales. La resolución del tenant se hace por subdominio:

acme.nexus.zoansoftware.com → tenant "acme"
otra.nexus.zoansoftware.com → tenant "otra"

Los datos de un tenant nunca son visibles para otro. Ver Tenant.

  • Autenticación de agentes mediante Machine Key única por máquina.
  • Conexiones cifradas (HTTPS/WSS) y solo salientes desde el agente.
  • Aislamiento por tenant a nivel de datos y de subdominio.
  • Credenciales guardadas de forma segura y resueltas en tiempo de ejecución, sin exponerse en playbooks ni logs. Ver Gestión de credenciales.