wiki:Version2/Desarrollo/Communications

Version 1 (modified by edulix, 9 years ago) (diff)

--

Introducción

Las comunicaciones entre clientes y servidor se realizan mediante tareas (jobs). Dichas tareas permiten ejecutar comandos del sistema o comandos de opengnsys en los clientes y recibir información acerca de esa ejecución en el servidor.

Características principales

El sistema de tareas se caracteriza principalmente por:

  • Toda comunicación se establece mediante peticiones GET/POST mediante HTTPS.
  • El socket de comunicación está autenticado siempre entre ambas partes mediante un certificado SSL.
  • Existen tests unitarios de todo el sistema de comunicaciones.

Elementos comunicantes

Existen tres elementos que se comunican entre sí, estos son:

  • La consola web, que es un servicio web que se ejecuta en el servidor y que a instancias del usuario es la que crea una nueva tarea, que se guarda en la BD de la consola y solicita al cliente (o clientes) la ejecución de dicha tarea.
  • El job executer, que es un servicio web que se ejecuta en el cliente donde deben ejecutarse las tareas. Se encarga de recibir las peticiones, ejecutar los comandos asociados a dichas peticiones, y mantener al servidor Opengnsys informado del estado de la tarea.
  • El job receiver, que es un servicio web que se ejecuta en el servidor Opengnsys y es el encargado de recibir las actualizaciones de los clientes, guardarlas en la BD del servidor para que la consola web tenga noticia de las mismas, y procesar las actualizaciones, puesto que cada tarea puede tener asociada una función a tal efecto.

La consola web y el job receiver son sendos servidores web que se ejecutan en el servidor Opengnsys y comparten la misma BD. La razón por la cual fue necesaria la creación de un segundo servicio web (job receiver) es porque mientras que la consola web no autentica mediante SSL al cliente HTTP, el job receiver necesita hacerlo.

Vida de una tarea

La vida de una tarea suele ser la siguiente: