Como resultado de la investigación se obtuvo un módulo que permite la configuración del servidor web Nginx desde la plataforma Nova ARST. Diseñar un módulo para la administración remota del servidor web Nginx en la plataforma Nova ARST.
Fundamentación teórica sobre el proceso de administración del servidor web Nginx
Conceptos fundamentales
7 manejo de información, en cualquier forma, ya sea voz, video, datos o una combinación de estos (Gonzáles L. , 2019), como correo electrónico, DNS, DHCP, proxy, mensajería instantánea y servidor web.
Servidor web
El servidor web Nginx presenta una arquitectura sin bloqueo o basada en eventos. En el siguiente apartado se realiza una aproximación a las características, arquitectura y configuración del servidor en cuestión.
Caracterización del servidor web Nginx
- Arquitectura del servidor web Nginx
- Características de Nginx
- Configuración de Nginx
- Comandos para manejar el servicio
La siguiente sección describe la configuración del servidor web Nginx y sus principales directivas de configuración. Valor predeterminado: Definido en tiempo de compilación Esta es la ruta al archivo donde se almacenará el PID para Nginx.
Descripción de la plataforma Nova ARST
- Arquitectura de diseño de la plataforma Nova ARST
REST API es una interfaz entre servidores y clientes para intercambiar representaciones de datos en la Web en diferentes formatos, especialmente JSON y XML (de la Fuente, s.f.). Para el desarrollo de la plataforma se utilizó Django y ReactBootstrap.js como framework de desarrollo. Para integrar un módulo en Nova ARST, es necesario que el módulo en cuestión presente una arquitectura como la que presenta la plataforma y además haya sido desarrollado utilizando las mismas tecnologías y lenguajes.
La plataforma Nova ARST está diseñada en base a una arquitectura de n capas que se comunican entre sí a través de interfaces. Capa de presentación: esta capa es la encargada de brindar la información al usuario y a su vez también es la capa con la que el usuario interactúa directamente ingresando los parámetros necesarios para configurar cada uno de los servicios presentes en la plataforma. Es la capa encargada de ejecutar todos los procesos que no son visibles para los usuarios y que solicitan a través de la capa de presentación.
También tiene la función de servir de enlace entre la capa de presentación y la capa de persistencia de datos, ya que también es responsable de transmitir los datos ingresados por el usuario a esta última. Capa de acceso y persistencia de datos: esta capa es responsable de recuperar y almacenar datos en una base de datos y también consultarlos cuando sea necesario.
Herramientas que administran Nginx
- NginxTray
- Módulo de Nginx en Webmin
- Nginx con cPanel
De acuerdo con (Molina, 2017), el módulo Nginx en la herramienta Webmin tiene las funcionalidades que se describen a continuación, ver Figura 1. Capacidad para deshabilitar y habilitar hosts virtuales: la columna Estado muestra si el host virtual está habilitado o deshabilitado. Mostrar nombre de archivo: la columna del nombre del servidor muestra el nombre del archivo que contiene el host virtual; al hacer clic en él, se abrirá el host virtual para editarlo.
Mostrar raíz del archivo: la columna Raíz del documento muestra el directorio raíz del host virtual. CPNginx: es un plugin de cPanel y WHM de pago que además permite implementar Nginx como servidor web en cPanel, aprovechando las ventajas que brinda Nginx y además incluye un módulo para WHMCS. NginxTray en cuanto a su interfaz cumple con los requisitos, pero es una herramienta de pago, por lo que sería más caro usarla que diseñar otra, y además es propietaria.
En cuanto al módulo Nginx para Webmin, aunque es gratuito, no es tan fácil de usar ya que la curva de aprendizaje para usarlo es muy larga. Finalmente, CPNginx, a pesar de tener una interfaz más amigable y ser más eficiente, es un software pago y aún no admite un servidor web o un proxy inverso y, al igual que NginxTray, es propietario.
Metodología de desarrollo de software
- Metodología de desarrollo de software AUP-UCI
Porque ninguna de las herramientas analizadas se puede integrar a la plataforma Nova ARST y porque no se pudo obtener suficiente información sobre la arquitectura en la que se basa su desarrollo o las tecnologías que se utilizaron en ella, y considerando que estas son consideraciones para integrar un módulo en Nova ARST, es necesario implementar el módulo Nginx para esta plataforma. 22 La metodología AUP-UCI, por ser una metodología adaptada al ciclo de vida de los proyectos productivos de la Universidad de las Ciencias Informáticas, es ampliamente utilizada en este campo y es extremadamente flexible al proceso de desarrollo de software. AUP-UCI es una variante de AUP (Agile Unified Process, por sus siglas en inglés) que surge con el objetivo de ser una metodología que se adapte al ciclo de vida determinado por la actividad productiva en la universidad.
En esta fase se realiza un estudio inicial de la organización del cliente, que permite obtener información básica sobre el alcance del proyecto, estimar tiempos, esfuerzos y costos, y decidir si implementar o no el proyecto. Implementación: En esta fase se realizan las actividades necesarias para el desarrollo del software, incluyendo la adaptación de los planes del proyecto según los requerimientos y la arquitectura. Conclusión: en esta fase se analizan tanto los resultados del proyecto como su implementación y se realizan las actividades formales de cierre del proyecto.
En base a los escenarios descritos anteriormente, se elige el escenario número cuatro para el modelado del sistema de solución a desarrollar. Además, se puede concluir que este método se adapta a cualquier proyecto productivo en UCI.
Tecnologías para el desarrollo de la propuesta de solución
- Lenguaje para el modelado de la solución
- Herramienta para el modelado de la solución
- Lenguaje de Marcado de Hipertextos
- Lenguaje de Hojas de Estilos
- Lenguaje de programación
- Marcos de trabajo
- Entorno de Desarrollo Integrado
Un lenguaje de hojas de estilo en cascada (CSS) es una tecnología que le permite crear páginas web de una manera más precisa. Un lenguaje de programación es un lenguaje que se puede utilizar para controlar el comportamiento de una máquina, especialmente una computadora. Python es un lenguaje de programación de alto nivel utilizado para desarrollar aplicaciones de todo tipo.
A diferencia de otros lenguajes como Java o .NET, es un lenguaje interpretado, lo que significa que las aplicaciones escritas en Python no necesitan compilarse para ejecutarse, sino que son ejecutadas directamente por la computadora mediante un programa llamado intérprete, por lo que no es necesario. Aunque es más conocido como lenguaje de secuencias de comandos (scripting) para páginas web, se usa en muchos entornos que no son de navegador (MDN Online Documents, 2022). Django es un marco web Python de alto nivel que fomenta un desarrollo rápido y un diseño limpio y pragmático.
React es un marco de desarrollo que lo ayuda a crear fácilmente interfaces de usuario interactivas. Un IDE (Entorno de desarrollo integrado) es un entorno de programación que se empaqueta como un programa de aplicación, es decir, consta de un editor de código, un compilador, un depurador y un generador de GUI.
Conclusiones parciales
Análisis y diseño del módulo Nginx en la plataforma Nova ARST
- Propuesta de solución
- Levantamiento de requisitos
- Técnicas empleadas en la obtención de requisitos
- Requisitos funcionales
- Requisitos no funcionales
- Historias de Usuario
- Arquitectura del módulo
- Diagrama de paquetes para representar la arquitectura
- Diagrama de clases con estereotipos web
- Patrones de diseños
- Patrones GRASP
- Patrones GOF
- Conclusiones Parciales
La siguiente subsección define las técnicas utilizadas para obtener los requisitos. RF10 Deshabilitar host virtual Le permite deshabilitar el host virtual en el servidor web Nginx si está habilitado. RF11 Mostrar tabla de hosts virtuales Muestra una tabla que enumera todos los hosts virtuales que se han agregado al servidor.
Descripción: el sistema debe permitir al usuario agregar un host virtual al servidor Nginx. Puede tener varios valores: si la dirección IP es un (*), se supone que se puede acceder a un host virtual desde cualquier dirección IP con un puerto determinado. El puerto puede ser un (*) en caso de que esté definido para acceder a un host virtual a través de una dirección especificada por cualquier puerto.
Número: HU – 8 Nombre del requisito: Eliminar host virtual del servidor web Nginx Desarrollador: Leovaldo Pérez Rojas Iteración asignada: 1. Descripción: El sistema debe permitir que el usuario elimine los hosts virtuales que desea eliminar. En el módulo desarrollado se evidencia este patrón en la clase Nginx, ya que en ella se crean instancias de la clase ConectionSSH para ejecutar los comandos necesarios en el servidor y copiar archivos entre el servidor y el cliente.
Una clase donde el uso de este patrón en el módulo es evidente es Nginx, que es donde se implementan todas las funcionalidades que manipulan el servidor web Nginx.
Implementación y validación del módulo para la administración remota del servidor web
- Implementación del sistema
- Diagrama de componentes
- Estándares de codificación
- Diagrama de despliegue
- Evaluación de la propuesta de solución
- Pruebas de integración
- Pruebas funcionales
- Pruebas de Aceptación
- Conclusiones Parciales
Los comentarios se utilizan si es necesario para explicar la utilidad de la clase. Desde SSH puede realizar copias seguras de los archivos que se transmiten a través de la dirección elegida, en caso de que los necesite. Entre sus funcionalidades se encuentran la configuración fácil e intuitiva a través de la herramienta nova-manager, destinada a la administración de servicios telemáticos y la compatibilidad con hardware obsoleto en el entorno empresarial.
Por ello, es necesario llevar a cabo una fase de validación, en la que se comprueba el cumplimiento de las especificaciones de diseño y especificación utilizando diferentes tipos y métodos de pruebas de software (estrategia de prueba). Mediante el uso de la estrategia de prueba diseñada se lograron resultados satisfactorios, comprobando el correcto funcionamiento de todas las funcionalidades implementadas. Se realizaron pruebas internas definidas como disciplina de la metodología AUP-UCI que orientan esta investigación.
El estudio de conceptos relacionados con la investigación, el análisis de diversas aplicaciones existentes que configuran el servidor web Nginx, el estudio de la plataforma Nova ARST y la elección de herramientas tecnológicas y lenguajes de programación utilizados en el desarrollo del módulo permitió determinar los umbrales con los que trabaja la aplicación. La identificación de los requisitos funcionales y no funcionales descritos por las historias de usuario y la creación de artefactos propuestos por la metodología de desarrollo de software aplicada permitieron facilitar significativamente la codificación de la solución. La implementación de la herramienta de administración del servidor web Nginx sobre la plataforma Nova ARST nos permitió dar respuesta a los requerimientos definidos y así solucionar el problema de investigación.
Desarrollo de una plataforma web para la gestión de ofertas laborales en beneficio de los profesionales de la Universidad Técnica de Extensión La Maná de Cotopaxi.
Entrevista realizada al Ing. Lexys Manuel Díaz para determinar las características de la plataforma Nova
Descripción: El sistema debe permitir que el usuario pueda modificar los parámetros de un host virtual que se agregó previamente al sistema. Cuando la directiva de escucha aparece solo con el valor del puerto, la dirección IP del servidor se asume de manera predeterminada.