El programa Servidor se encarga de la gestión de equipos en la red y el acceso al registro de legajos y contraseñas.
En la red existirá un programa Servidor (único) y todos los programas Login se conectará a él. Así, un programa como Servidor concentrará la responsabilidad de consultar el Registro de Legajos y registrar eventos.
No será necesario asistir al programa para que realice su trabajo, la toma de decisiones se realizará de manera automática, evaluando los parámetros de configuración y el estado del Registro de Legajos y contraseñas. Por ese motivo el programa no es interactivo, y en principio, se limitará a emitir informes en su archivo de eventos (log).
Si bien el programa Servidor no es interactivo, existe la posibilidad de administrar el trabajo operativo del Servidor mediante el programa Programa Administrador.
El Módulo comienza cargando sus parámetros de configuración, ya sea desde un archivo o utilizando los argumentos enviados por el interprete de ordenes. El parámetro de configuración mas importante es el puerto de servicio asociado al programa.
Puede conocer los parámetros de configuración ejecutando "servidor --help", o bien, analizando el archivo "servidor.conf".
Luego de cargar su configuración el programa atiende el servicio / puerto de escucha solicitado. El puerto debe estar disponible para que el programa pueda continuar, si no es así se abortará inmediatamente la ejecución.
Una vez iniciado el puerto de escucha, el programa esperará hasta que se produzca un pedido por parte de otros equipos. Este esquema de funcionamiento se conoce como "dirigido a eventos", y ha sido adoptado para implementar el funcionamiento de todos los componentes del sistema.
El programa servidor se dedicará a resolver los pedidos que se producen pero nunca generará eventos por si mismo (excepto si se cancela su ejecución).
Ante la llegada de un evento el programa identificará si responde a:
- una nueva conexión (ya sea Administrador o Login)
- un pedido por parte de un Login o Administrador registrado.
El programa servidor utiliza 3 estructuras de datos para registrar a los programas conectados:
- la estructura interna de la biblioteca gnet (Set) que contiene a todos los descriptores de red (sockets) que se deben evaluar en el bucle principal de programa (g_main); esta estructura también incluye al socket servidor.
- una lista de usuarios, donde se almacenan: el socket asociado al equipo, el identificador del mismo y, en caso operar una sesión, cierta información referente al usuario: legajo, nombre, inicio de sesión, etc.
- un socket para comunicarse directamente con el administrador de sistema (único), solo si este se encuentra conectado a la Red.
Si se recibe un evento asociado a los descriptores de algún programa registrado en el sistema, el servidor evalúa si el emisor del evento se trata del programa Administrador o Login. Solo puede existir un programa Administrador en la red, pero el número de clientes no está acotado, pueden existir varios programas Login en la red, aunque bajo diferentes identificadores.
Para analizar en profundidad el funcionamiento de los pedidos se recomienda analizar la descripción de mensajes (Protocolo) asociadas a cada programas del sistema.
Los pedidos mas frecuentes al programa servidor son:
- Pedido de ingreso al sistema: un programa Login emite un mensaje de código MSG_LOGIN junto con un número de legajo y contraseña al programa servidor, este último recibe todos los datos y controla su validez consultando la base de datos ...
- Pedido de actualización: un programa Login solicita una renovación de su sesión, el Servidor evalúa el mensaje y genera una respuesta de pedido en base a la información obtenida del usuario (cantidad de sesiones utilizadas, registros anteriores, etc.) y a la configuración del Servidor.
Existe otro tipo de eventos, originados por el programa Programa Administrador, que a diferencia de los anteriores puede no requerir una respuesta de afirmación. Por ejemplo, el programa Administrador puede emitir el mensaje MSG_APAGAR junto con el identificador de un equipo para apagarlo, el programa Servidor solo "selecciona y reenvía" este pedido al equipo correspondiente sin evaluar una respuesta al remitente.
Generado con Doxygen,
versión 1.4.2