---- = '''***ATENCIÓN.- Esta documentación para desarrolladores del proyecto pertenece a la nueva versión de opengnsys y no es aplicable a la actual***''' = ---- == INTRODUCCIÓN == Un sistema opengnsys completo está formado por un '''''"servidor de administración"''''', una o varias aulas de ordenadores a los que llamaremos '''''"clientes"''''' y uno o varios servidores opengnsys, también llamados '''''"repositorios"''''', que son los encargados de asignar direcciones ipes a dichos clientes además de enviarles, vía PXE, una pequeña distribución linux con la que arrancarán. [[Image(escenario.png)]] En este contexto tiene lugar continuamente una '''comunicación bidireccional''' entre los distintos elementos del sistema. Esta comunicación se implementa mediante mensajes que son envíados por estas máquinas a través de la red. Los encargados de enviar y recibir estos mensajes son unos '''programas residentes''' que se ejecutan a modo de '''servicios o clientes'''. * '''ogAdmServer''': Es un servicio que se ejecuta en el "servidor de administración". * '''ogAdmRepo''': Es un servicio que se ejecuta en el "servidor opengnsys". * '''ogAdmClient''': Es un cliente que se ejecuta en el "cliente opengnsys". La comunicación se establece a través de socket entre cada uno de estos programas con el resto: [[Image(triomsg.png)]] == Tipos de mensajes == * '''Comados''': ''Son mensajes enviados desde el servidor y que tienen como destinatarios tanto los clientes como los repositorios''. Con ellos se llevan a cabo todo tipo de acciones como: Restaurar imágenes, crear y formatear particiones, Recuperar inventarios de hardware y de software, etc.[[BR]] * '''Respuestas''': ''Son mensajes enviados desde los clientes o repositorios hacía el servidor de administración'' como respuesta a la ejecución de algún comando previo. En este tipo de mensaje además del resultado de la ejecución, puede enviarse información anexa relacionada con la acción realizada: nueva estructura de particiones, software instalado, inventario hardware, etc. Toda esta información proveniente de los clientes y de los repositorios es registrada en la base de datos o los logs del sistema. == Estructura de los mensajes == Los mensajes emitidos tanto por el servidor como por los clientes o repositorios son enviados por la red y viajan encapsulados en un paquete de red o datagrama. La estructura puede variar según se trate de un mensaje tipo "comando" o un mensaje tipo "respuesta", pero en ambos casos están descritos en código XML. '''''1. Estructura de un mensaje tipo comando''''' {{{ ... }}} '''''2. Estructura de un mensaje tipo respuesta''''' {{{ ... }}} == Tabla de atributos de los mensajes tipo comandos == ||''Nodo''||''Atributo''||''Valor''||''Descripción''|| ||COMANDO||codigo||cadena||Código del comando (Identificador del comando en la Tabla "Comandos" de la BD)|| ||COMANDO||nombre||cadena||Nombre de la función que procesa el comando (Dentro del ejecutable "cliente opengnsys")|| ||COMANDO||accion||cadena||Código de la acción (Identificador de la acción en la tabla acciones de la BD)|| ||PARAM ||nombre||cadena||Nombre del párametro|| ||PARAM ||valor||cadena o número||Valor del párametro|| == Tabla de atributos de los mensajes tipo respuestas == ||''Nodo''||''Atributo''||''Valor''||''Descripción''|| ||RESPUESTA ||codigo||cadena||Código del comando (Identificador del comando en la Tabla "Comandos" de la BD)|| ||RESPUESTA ||respuesta||cadena||Nombre de la función que procesa el comando (Dentro del ejecutable "servidor de administración")|| ||RESPUESTA ||accion||cadena||Código de la acción (Identificador de la acción en la tabla acciones de la BD)|| ||RESPUESTA ||resultado||número||Resultado de la ejecución: 0 fracaso, 1=éxito|| ||RESPUESTA ||ipaddr||cadena||Dirección IP del cliente que responde|| ||PARAM ||nombre||cadena||Nombre del párametro|| ||PARAM ||valor||cadena o número||Valor del párametro||