wiki:EspecDesarrollo
Last modified 7 years ago Last modified on 02/15/10 22:59:32


*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.

Topología del sistema

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:

trio de comnicaciones

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.

  • 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

<COMANDO codigo="código_de_comando" nombre="nombre_del_comando" accion="identificador_de_la_acción_en_la_BD">
  <PARAM nombre="nombre_del_parámetro" valor="valor_del_parámetro"/>
  <PARAM nombre="nombre_del_parámetro" valor="valor_del_parámetro"/>
  <PARAM nombre="nombre_del_parámetro" valor="valor_del_parámetro"/>
  <PARAM nombre="nombre_del_parámetro" valor="valor_del_parámetro"/>
 ...
</COMANDO>

2. Estructura de un mensaje tipo respuesta

<RESPUESTA  codigo="código_de_comando" respuesta="nombre_de_la_respuesta" accion="identificador_de_la_acción_en_la_BD" resultado="resultado_de_la_ejecución" ipaddr="dirección_IP_del_cliente">
  <PARAM nombre="nombre_del_parámetro" valor="valor_del_parámetro"/>
  <PARAM nombre="nombre_del_parámetro" valor="valor_del_parámetro"/>
  <PARAM nombre="nombre_del_parámetro" valor="valor_del_parámetro"/>
  <PARAM nombre="nombre_del_parámetro" valor="valor_del_parámetro"/>
 ...
</RESPUESTA >

Tabla de atributos de los mensajes tipo comandos

NodoAtributoValorDescripción
COMANDOcodigocadenaCódigo del comando (Identificador del comando en la Tabla "Comandos" de la BD)
COMANDOnombrecadenaNombre de la función que procesa el comando (Dentro del ejecutable "cliente opengnsys")
COMANDOaccioncadenaCódigo de la acción (Identificador de la acción en la tabla acciones de la BD)
PARAM nombrecadenaNombre del párametro
PARAM valorcadena o númeroValor del párametro

Tabla de atributos de los mensajes tipo respuestas

NodoAtributoValorDescripción
RESPUESTA codigocadenaCódigo del comando (Identificador del comando en la Tabla "Comandos" de la BD)
RESPUESTA respuestacadenaNombre de la función que procesa el comando (Dentro del ejecutable "servidor de administración")
RESPUESTA accioncadenaCódigo de la acción (Identificador de la acción en la tabla acciones de la BD)
RESPUESTA resultadonúmeroResultado de la ejecución: 0=fracaso, 1=éxito
RESPUESTA ipaddrcadenaDirección IP del cliente que responde
PARAM nombrecadenaNombre del párametro
PARAM valorcadena o númeroValor del párametro

Attachments