Servidores de Aplicaciones y Node.js
48 Questions
2 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

¿Cuál de las siguientes opciones describe mejor la función principal de un servidor de aplicaciones?

  • Facilitar la comunicación directa entre bases de datos.
  • Actuar como un sistema operativo para computadoras de escritorio.
  • Gestionar el hardware de un centro de datos.
  • Proporcionar un entorno para la creación y ejecución de aplicaciones web. (correct)

¿Qué ventaja principal ofrece la gestión de contenido sensible al tiempo en un entorno de servidor de aplicaciones?

  • Mayor seguridad contra ataques cibernéticos.
  • Facilidad de actualización y mantenimiento del contenido. (correct)
  • Aumento de la velocidad de procesamiento de datos.
  • Reducción del consumo de energía del servidor.

¿Cuál de las siguientes herramientas se utiliza comúnmente para automatizar la gestión de dependencias y la construcción de proyectos Java?

  • Express
  • Node.js
  • Maven (correct)
  • WAR

¿Qué tipo de archivo se utiliza comúnmente para empaquetar una aplicación Java web para su despliegue en un servidor de aplicaciones?

<p>WAR (C)</p> Signup and view all the answers

¿Cuál es la función principal de npm en el contexto de desarrollo de aplicaciones Node.js?

<p>Gestionar los paquetes y dependencias del proyecto. (D)</p> Signup and view all the answers

¿Cuál de las siguientes opciones representa la diferencia clave entre la distribución continua y la implementación continua?

<p>La distribución continua requiere aprobación manual para la implementación, mientras que la implementación continua es completamente automatizada. (D)</p> Signup and view all the answers

En un entorno de CI/CD, ¿qué actividad se realiza típicamente durante la fase de integración continua?

<p>Pruebas automatizadas y compilación del código. (A)</p> Signup and view all the answers

¿Cuál de las siguientes tecnologías se usa comúnmente para construir aplicaciones del lado del servidor con Node.js?

<p>Express (B)</p> Signup and view all the answers

¿Cuál de las siguientes opciones describe mejor el papel de un servidor de aplicaciones en una arquitectura orientada a servicios?

<p>Actuar como intermediario entre el servidor web y las bases de datos, proporcionando lógica de negocio y acceso a datos. (D)</p> Signup and view all the answers

¿Cuál es una razón principal para utilizar servidores de aplicaciones en lugar de depender únicamente de servidores web?

<p>Los servidores de aplicaciones pueden optimizar el tráfico de la red y mejorar la seguridad al centralizar la lógica de negocio. (C)</p> Signup and view all the answers

¿Cuál de los siguientes NO es una fase típica en el proceso de despliegue de aplicaciones web?

<p>Planificación y diseño de la arquitectura de la aplicación. (B)</p> Signup and view all the answers

En el contexto de las mejores prácticas de despliegue, ¿cuál es la principal ventaja de utilizar Git?

<p>Facilita el seguimiento de los cambios en el código y la colaboración entre desarrolladores. (C)</p> Signup and view all the answers

¿Por qué es recomendable trabajar en ramas (branches) al desarrollar software?

<p>Para aislar los cambios y evitar interrumpir el código principal hasta que estén completos y probados. (D)</p> Signup and view all the answers

¿Cuál es la principal razón para utilizar un entorno local como entorno de desarrollo antes de implementar cambios en un entorno real?

<p>Permite probar y depurar los cambios en un ambiente controlado sin afectar a los usuarios. (C)</p> Signup and view all the answers

Antes de desplegar cambios en el entorno real, ¿por qué es importante revisar las diferencias (diffs)?

<p>Para identificar posibles conflictos o errores que puedan afectar la aplicación en producción. (C)</p> Signup and view all the answers

¿Qué factor es crucial considerar al decidir el momento óptimo para desplegar cambios en un entorno de producción?

<p>El número de usuarios activos en el sistema durante ese momento. (B)</p> Signup and view all the answers

¿Cuál es la función principal de un servidor de aplicaciones en una arquitectura de servicios?

<p>Procesar las solicitudes dinámicas de las aplicaciones, aliviando la carga del servidor web y mejorando la seguridad. (C)</p> Signup and view all the answers

¿Por qué los servidores web no son adecuados para manejar directamente las solicitudes dinámicas de las aplicaciones?

<p>Los servidores web están diseñados principalmente para gestionar contenido estático y no tienen la capacidad de procesar la lógica de negocio compleja. (A)</p> Signup and view all the answers

¿De qué manera un servidor de aplicaciones mejora la seguridad de una aplicación?

<p>Añade una capa de seguridad entre el servidor web y la base de datos, dificultando los ataques de inyección SQL y protegiendo los datos. (C)</p> Signup and view all the answers

¿Qué ventaja ofrece el uso de un servidor proxy inverso junto con un servidor de aplicaciones?

<p>Anonimiza y encripta la comunicación, protegiendo los datos y la privacidad de los usuarios. (C)</p> Signup and view all the answers

En el contexto de la arquitectura de servicios, ¿cuál es la diferencia fundamental entre un servidor web y un servidor de aplicaciones?

<p>Un servidor web sirve contenido estático y gestiona la seguridad de la red, mientras que un servidor de aplicaciones procesa la lógica de negocio y las solicitudes dinámicas. (B)</p> Signup and view all the answers

¿Cuál de las siguientes opciones describe mejor cómo un servidor de aplicaciones optimiza el tráfico web?

<p>Gestionando las solicitudes de contenido dinámico y permitiendo que el servidor web se concentre en servir contenido estático de manera eficiente. (B)</p> Signup and view all the answers

Si una organización experimenta frecuentes ataques de inyección SQL, ¿qué medida podría tomar, además de las prácticas de codificación segura, para mitigar este riesgo utilizando un servidor de aplicaciones?

<p>Implementar un servidor de aplicaciones que valide y filtre las entradas del usuario antes de interactuar con la base de datos. (C)</p> Signup and view all the answers

En un escenario donde una aplicación web necesita escalar para manejar un aumento repentino en el número de usuarios, ¿cómo contribuye un servidor de aplicaciones a la escalabilidad?

<p>Permite la distribución de la carga de trabajo entre múltiples instancias del servidor de aplicaciones, mejorando la capacidad de respuesta y la disponibilidad. (B)</p> Signup and view all the answers

¿Por qué es importante mantener la calma antes de aplicar hotfixes o revertir cambios tras un despliegue?

<p>Para evitar que el pánico cause errores adicionales y empeore la situación. (D)</p> Signup and view all the answers

¿Qué factor no se debe considerar al decidir si realizar un rollback después de un despliegue problemático?

<p>La opinión de los usuarios sobre la nueva versión. (A)</p> Signup and view all the answers

Si un despliegue causa un problema en una función que ya existía antes de la nueva versión, ¿qué curso de acción no sería el más apropiado?

<p>Realizar un rollback inmediato a la versión anterior. (C)</p> Signup and view all the answers

¿Cuáles son las dos preguntas clave que se deben responder para determinar el mejor momento para desplegar cambios en un entorno de producción?

<p>¿Cuándo tiene la menor cantidad de usuarios activos y cuándo hay alguien preparado para supervisar y solucionar los problemas después del despliegue? (B)</p> Signup and view all the answers

¿Por qué es importante desplegar cambios cuando hay la menor cantidad de usuarios activos?

<p>Para evitar que la mayoría de los usuarios se vean afectados si algo sale mal. (C)</p> Signup and view all the answers

¿Qué herramienta se menciona como útil para identificar los momentos de menor actividad de los usuarios en un sitio web?

<p>Herramientas de análisis de datos como Google Analytics. (C)</p> Signup and view all the answers

¿Qué implica el concepto de 'contexto' en el desarrollo de aplicaciones web JavaEE?

<p>La aplicación web en su conjunto, incluyendo recursos, clases Java y su configuración. (A)</p> Signup and view all the answers

Además de la hora del día, ¿qué otro factor temporal se menciona como relevante al analizar la actividad de los usuarios?

<p>Los días de la semana. (B)</p> Signup and view all the answers

¿Cuál es la función principal de un archivo WAR en el contexto de JavaEE?

<p>Empaquetar y distribuir una aplicación web completa de forma estandarizada. (A)</p> Signup and view all the answers

¿Por qué es crucial tener a alguien disponible para supervisar y solucionar problemas inmediatamente después de un despliegue, incluso si se realiza en un momento de baja actividad?

<p>Para detectar y resolver rápidamente cualquier problema inesperado que pueda surgir. (A)</p> Signup and view all the answers

Si bien el formato WAR es estándar en JavaEE, ¿qué aspecto del manejo de archivos WAR varía entre los diferentes servidores de aplicaciones?

<p>El proceso de despliegue o instalación de la aplicación en el servidor. (B)</p> Signup and view all the answers

¿Cuál de las siguientes opciones describe mejor el propósito principal de Maven?

<p>Simplificar el proceso de compilación y generación de ejecutables a partir del código fuente (build). (C)</p> Signup and view all the answers

Antes de la adopción de Maven, ¿qué desafío común enfrentaban los desarrolladores al construir proyectos Java?

<p>La dificultad en la gestión de dependencias y la configuración del proceso de compilación. (C)</p> Signup and view all the answers

Con Maven, ¿qué comando se utiliza para compilar, probar y empaquetar un proyecto, independientemente de su complejidad?

<p><code>mvn install</code> (D)</p> Signup and view all the answers

¿Qué tipo de archivos pueden incluirse dentro de un archivo WAR?

<p>Páginas Web HTML o JSP, clases Java, servlets Java, archivos XML y librerías de etiquetas. (B)</p> Signup and view all the answers

¿Cuál es la principal ventaja de utilizar archivos WAR para la distribución de aplicaciones web JavaEE?

<p>Estandarización y portabilidad entre diferentes servidores de aplicaciones JavaEE. (D)</p> Signup and view all the answers

¿Cuál es la principal ventaja de usar un sistema de control de versiones como Git en un flujo de trabajo de despliegue?

<p>Facilita la colaboración y minimiza errores al permitir volver a versiones anteriores del código y mantener la consistencia. (B)</p> Signup and view all the answers

¿Por qué es recomendable que un equipo de desarrollo trabaje en ramas separadas en Git?

<p>Para permitir el desarrollo simultáneo de varias características y correcciones sin afectar la estabilidad del código principal. (C)</p> Signup and view all the answers

¿Cuál es una ventaja significativa de utilizar un entorno local como entorno de desarrollo?

<p>Permite una verificación y prueba más rápida del código sin necesidad de despliegues constantes. (D)</p> Signup and view all the answers

En un flujo de trabajo de despliegue, ¿qué problema puede surgir si no se utiliza un sistema de control de versiones?

<p>Dificultad para mantener la consistencia del código y mayor riesgo de errores al no poder rastrear y revertir cambios. (B)</p> Signup and view all the answers

¿Cómo contribuye el uso de ramas separadas al proceso de pruebas en un entorno de preproducción?

<p>Ofrece a los testers una visión clara de los cambios específicos que se han realizado y que necesitan ser probados. (B)</p> Signup and view all the answers

Si un desarrollador encuentra un error crítico en la versión de producción, ¿cuál es la práctica recomendada utilizando Git y ramas?

<p>Crear una nueva rama a partir del entorno de desarrollo para trabajar en la corrección del error sin interrumpir otras tareas en curso. (B)</p> Signup and view all the answers

¿Qué implicación tiene el hecho de no utilizar Git en el proceso de despliegue de software para un equipo de desarrollo?

<p>Mayor riesgo de inconsistencias en el código y dificultades para rastrear y revertir cambios, lo que puede resultar en errores. (A)</p> Signup and view all the answers

¿Cuál de las siguientes situaciones se minimiza al trabajar con un entorno de desarrollo local en lugar de directamente en el entorno de desarrollo?

<p>El tiempo de espera asociado con la confirmación, el envío y el despliegue de cambios para su verificación. (B)</p> Signup and view all the answers

Flashcards

¿Qué es un servidor de aplicaciones?

Software que proporciona servicios para aplicaciones, como seguridad y gestión de datos.

¿Qué hacen los servidores de aplicaciones?

Optimizar el tráfico de red y añadir medidas de seguridad.

¿Qué es el despliegue de aplicaciones web?

Fases de planificación, desarrollo, prueba y lanzamiento de una aplicación web.

¿Qué tipos de despliegue existen?

Metadatos (configuración) y contenidos (imágenes, texto).

Signup and view all the flashcards

¿Qué es Git?

Sistema de control de versiones para gestionar cambios en el código.

Signup and view all the flashcards

¿Qué es la ventaja de trabajar en ramas?

Aislar cambios en ramas separadas antes de integrarlos.

Signup and view all the flashcards

¿Qué tipos de entornos existen en el desarrollo de aplicaciones?

Entorno local, de desarrollo, de prueba y de producción.

Signup and view all the flashcards

¿Qué ventaja tiene el despliegue y entornos múltiples?

Reducir el riesgo de fallos en la versión final del sitio web.

Signup and view all the flashcards

Contenido sensible al tiempo

Agiliza el manejo de contenido que depende del tiempo.

Signup and view all the flashcards

Estructura de una aplicación Java

Estructura, componentes y dependencias de una aplicación.

Signup and view all the flashcards

Empaquetamiento

Formato de archivo para distribuir aplicaciones Java (archivos .war).

Signup and view all the flashcards

¿Qué es Maven?

Herramienta para gestión y automatización de proyectos Java.

Signup and view all the flashcards

¿Qué es Node.js?

Entorno de ejecución para JavaScript del lado del servidor.

Signup and view all the flashcards

¿Qué es Express?

Marco para Node.js que simplifica el desarrollo de aplicaciones web.

Signup and view all the flashcards

¿Qué es npm?

Administrador de paquetes para Node.js.

Signup and view all the flashcards

¿Qué hace un servidor de aplicaciones?

Maneja el procesamiento de solicitudes dinámicas de aplicaciones.

Signup and view all the flashcards

¿Por qué necesitamos servidores de aplicaciones?

Clientes web solicitan acceso a aplicaciones y esperan respuestas rápidas.

Signup and view all the flashcards

¿Qué hacen los servidores web?

Sirven peticiones HTTP de clientes web con respuestas HTTP.

Signup and view all the flashcards

¿Qué tipo de peticiones gestionan los servidores de aplicaciones?

Diseñados para manejar solicitudes de contenido web dinámico.

Signup and view all the flashcards

¿Qué beneficios adicionales ofrecen los servidores de aplicaciones?

Proporcionan redundancia de programas y una capa extra de seguridad.

Signup and view all the flashcards

¿Cómo mejoran la seguridad los servidores de aplicaciones?

Añade una capa de seguridad entre la web y la base de datos.

Signup and view all the flashcards

¿Qué tipo de ataques previenen los servidores de aplicaciones?

Dificulta los intentos de inyección SQL.

Signup and view all the flashcards

¿Qué hacen los servidores proxy y las VPN?

Anonimiza y encripta la comunicación para proteger usuarios y datos.

Signup and view all the flashcards

¿Por qué trabajar en ramas?

Permite trabajar en varias funcionalidades o correcciones simultáneamente sin afectar el código principal.

Signup and view all the flashcards

¿Qué es un entorno local?

Un entorno de desarrollo local permite pruebas rápidas y eficientes antes de desplegar cambios.

Signup and view all the flashcards

¿Qué es el flujo de trabajo basado en ramas?

Practica de crear ramas separadas para cada nueva característica o corrección de errores.

Signup and view all the flashcards

¿Cuál es el propósito de las ramas?

Permite verificar si el código funciona correctamente antes de integrarlo al código base principal.

Signup and view all the flashcards

¿Por qué es eficiente el entorno local?

Acelera la verificación de código al evitar el proceso de 'confirmar, empujar y desplegar' para cada cambio.

Signup and view all the flashcards

¿Por qué Git es inestimable?

Un sistema de control de versiones es fundamental para coordinar el trabajo en equipo y evitar conflictos.

Signup and view all the flashcards

¿Qué es un entorno de desarrollo local?

Un sitio web o software instalado directamente en la computadora del desarrollador.

Signup and view all the flashcards

Comprobar antes de revertir

¿Qué hacer antes de revertir cambios?

Signup and view all the flashcards

¿Fallo nuevo o existente?

Determinar si el fallo es en una característica existente o nueva.

Signup and view all the flashcards

Actuar con calma

Mantener la calma y analizar la situación antes de actuar.

Signup and view all the flashcards

¿Cuándo desplegar?

Identificar el momento con la menor cantidad de usuarios activos.

Signup and view all the flashcards

Analizar el tráfico

Consultar herramientas de análisis (ej. Google Analytics) para ver patrones de tráfico.

Signup and view all the flashcards

Día de la semana

Es importante considerar no solo la hora, sino también el día de la semana con menor actividad.

Signup and view all the flashcards

¿Quién vigila?

Asegurarse de que haya alguien disponible para supervisar y solucionar problemas.

Signup and view all the flashcards

Menos usuarios activos

Buscar el momento del día en que haya menos usuarios activos.

Signup and view all the flashcards

Contexto JavaEE

¿Qué es un contexto en JavaEE?

Signup and view all the flashcards

¿Qué es empaquetar una aplicación Web?

Empaquetar una aplicación web en un único archivo para su distribución.

Signup and view all the flashcards

¿Qué es un archivo WAR?

Un tipo especial de archivo JAR para distribuir aplicaciones Web en JavaEE.

Signup and view all the flashcards

¿Cómo se despliega un archivo WAR?

Depende del servidor, usualmente mediante consola o dejando el fichero en un directorio.

Signup and view all the flashcards

¿Qué es el 'build' de un proyecto?

Compilar y generar ejecutables a partir del código fuente.

Signup and view all the flashcards

¿Cómo se compila un proyecto Maven?

Con un simple comando: mvn install

Signup and view all the flashcards

¿Qué implicaba el 'build' antes de Maven?

Analizar código, librerías, dependencias y compilar.

Signup and view all the flashcards

Study Notes

  • Un servidor de aplicaciones es un marco de software que permite la creación y ejecución de aplicaciones web.
  • Los servidores de aplicaciones pueden ser pilas complejas de elementos computacionales que trabajan en conjunto.
  • Un servidor de aplicaciones actúa como intermediario entre un servidor web y un servidor de base de datos.
  • Un servidor de aplicaciones puede contener interfaces gráficas de usuario para su gestión y realizar tareas de procesamiento, mensajería y seguridad.
  • Los servidores de aplicaciones proporcionan recursos de aplicaciones a usuarios y clientes web.
  • Los servidores de aplicaciones se sitúan entre los servidores de bases de datos y los servidores web.
  • Los servidores de aplicaciones y el middleware afín son los sistemas operativos que soportan el desarrollo y la entrega de aplicaciones.

Terminología

  • Servidor Web: Almacena, procesa y entrega datos de páginas web.
  • Cliente Web: Punto final que intenta acceder a los recursos de la web o de una aplicación.
  • HTTPS: Protocolo de comunicación seguro para la comunicación entre servidor web y clientes web
  • JSON: Lenguaje para el intercambio de datos entre servidores web y de aplicaciones.
  • Lógica de negocio: Reglas para el almacenamiento de datos y la transferencia de recursos de la aplicación
  • Aplicación: Programa de software o sitio web unido a una base de datos.

Arquitectura de Servicios

  • El servidor de aplicaciones suele realizar el trabajo pesado en el backend al almacenar y procesar las solicitudes dinámicas de las aplicaciones.
  • Los clientes web hacen peticiones HTTP y reciben respuestas a través de servidores web.
  • Las peticiones dinámicas, a menudo en forma de aplicaciones, requieren asistencia adicional. Los servidores de aplicaciones compensan la gestión de peticiones HTTP de los clientes web y almacenamiento de recursos.
  • El paso adicional entre las comunicaciones web añade una capa de seguridad eliminando la inyeccion SQL porque un servidor de bases de datos.

Servidores de aplicación, funcionamiento

  • Servlets: Programa Java que se ejecuta en un servidor Web, construye o sirve páginas web dinámicas basadas en datos variables.
  • Los servidores de aplicaciones contienen características de seguridad, transacciones, servicios, clustering, diagnósticos y bases de datos.
  • El cliente abre un navegador y solicita acceso a un sitio web.
  • El servidor web gestiona las peticiones de datos estáticos y El servidor web recibe la petición HTTP y responde con la página web deseada.
  • Para datos dinámicos, el servidor web redirige la petición a un servidor de aplicaciones.
  • El servidor de aplicaciones recibe la petición HTTP y la convierte en una petición de servlet.
  • El servlet lleva el servidor a la base de datos; el servidor de aplicaciones traduce la respuesta del servlet al formato HTTP para el cliente.

Servidor de Aplicaciones frente Servidor Web

  • Los servidores de aplicaciones están diseñados para servir a los clientes. Peticiones HTTP y lógica de negocio
  • Los servidores Web solo sirven peticiones HTTP
  • Los servidores de aplicaciones almacenan y proporcionan lógica de negocio
  • Los Servidores web almacenan y proporcionan contenido estático
  • La utilización de los recursos es pesada para los servidores de aplicaciones
  • La utilización de los recursos es ligera con un servidor web
  • Los servidores de aplicaciones son compatibles con transacciones distribuidas y Enterprise JavaBeans (EJB).
  • Los servidores web son compatibles con Servlets, Java Server Pages (JSP) y JSON
  • El mercado de los servidores de aplicaciones se espera que crezca a una tasa compuesta anual del 13,2%.
  • Se espera de $17 mil millones de dólares en 2020 a $41 mil millones en 2026

El mejor amigo de un servidor web

  • Los servidores de aplicaciones son esenciales para las exigencias de interconexión y son el mejor amigo de un servidor web.
  • Los servidores de aplicaciones posibilitan la comunicación con contenido web dinámico.

¿Despliegue de aplicaciones Web qué es?

  • Despliegue significa mover cambios o actualizaciones de software de un entorno a otro.
  • Al configurar un sitio web, se tendrá el sitio web en vivo, llamado entorno de producción.
  • Los entornos adicionales para realizar cambios sin afectar el entorno de producción se llaman entornos de desarrollo o despliegue.
  • Los modelos de despliegue varían, pero es clásico el modelo de despliegue "de izquierda a derecha" con múltiples entornos.
  • Utilizar múltiples entornos, permite hacer cambios que no afecten su sitio web en vivo.

Fases de un despliegue

  • Los procesos cubren aspectos fundamentales divididos en 5 partes: Planificación, desarrollo, comprobación, implementación y supervisión.
  • Planificar un despliegue ayuda a que el proceso se desarrolle con fluidez constante.
  • El proceso de despliegue cubre aspectos fundamentales.
  • Se debe reducir el riesgo de conflictos entre cambios.
  • La planificación también otorga la oportunidad de hacer una versión previa y permitir a la comunidad probar para detectar errores.
  • En el desarrollo, es importante trabajar solo en entornos locales para garantizar que el desarrollo se realice simultáneamente.
  • Para garantiza que no haya errores, la prueba de los cambios es crucial.
  • Una vez probados, el proceso de pruebas debe repetirse en nuevos entornos.
  • Si se encuentran errores, los cambios se envían a la fase de desarrollo para su corrección.
  • Una vez realizadas las pruebas, se despliegan al entorno real, se pasa por la monitorización y se corrigen los errores.

Tipos de despliegue

  • El despliegue se divide en metadatos (código, plantillas, hojas de estilo, archivos, etc.) y contenido (texto, imágenes, vídeos).
  • Herramientas de despliegue ayudan a guiarte en caso de conflictos.
  • Las herramientas despliegue facilitan a los editores a enviar contenido nuevo a un entorno activo.

Prácticas recomendadas.

  • Git, un sistema control de versiones , es esencial para cualquier flujo de trabajo de implementación. Trabaja en Ramas.
  • Trabajar en ramas permite a los equipos trabajar en varias cosas a la vez sin que se afecten entre sí.
  • Al instalar software de forma local, será más eficiente para la implementación.
  • En vez de confirmar inmediatamente los cambios, pruebe localmente y luego en el entorno de preparación.
  • Hacer una revisión exhaustiva de los códigos y las validaciones antes de pulsar el botón.
  • Para equipos grandes, un desarrollador puede necesitar restricciones.

Mantenga la Calma

  • Compruebe si hacer un rollback es posible .
  • Descubra si es una característica existente o nueva en el entorno de producción.
  • Tener a personas listas para solucionar los problemas y planificar el lanzamiento en el camino.

Ventajas del despliegue y de los entornos múltiples

  • Existe menos riesgo de romper un sitio web en producción.
  • Los cambios se realizan en el orden que se prefiera, lo que significa optimizar el trabajo sin dañar el sitio web.
  • EL contenido sensible al tiempo es aún más fácil de gestionar.

Despliegue JAVA

  • Hay que conseguir que nuestro servidor HTTP sea capaz de ejecutar programas de aplicación que recojan los parámetros de peticiones del cliente.

Estructura Java.

  • Se debe tener una estructura de archivos y directorio determinada que los directorios coloquen las páginas HTML O JSP.
  • Colgando del directorio inicial de la aplicación, se tiene un directorio WEB-INF, que contiene la información Web relevante para la aplicación.
  • Podemos estructurar el resto como queramos.
  • Se puede copiar una estructura en JAVA si se hace convenientemente.
  • Cada aplicación web JavaEE es un contexto.

Empaquetamiento.

  • Distribuir la aplicación se hace al empaquetar la aplicación en un archivo WAR y distribuir dicho fichero.

Archivos WAR

  • Los archivos WAR son archivos JAR utilizados en distribuir paginas como WEB HTML o JSP, clases Java, archivos XML y librerías
  • Empaquetar en archivos WAR es estándar, la mayoría permite administración desde una consola.

Maven

  • Maven es una herramienta de código abierto que simplifica los procesos de compilación y generación de ejecutables a partir del código fuente.
  • En Maven se ejecuta el comando mvn install.
  • Tres ciclos de build del software con una serie de etapas diferenciadas:
    • Validar: Validad que es correcto
    • Compilar
    • Test: Comprobar el código.
    • Empaquetar y transformar
    • Verificar la calidad
    • Instalar como dependencia
    • Desplegar a un entorno

¿Node.js qué es?

  • Node JS es un entorno de ejecución de JavaScript rápido para construir aplicaciones del lado del servidor
  • No es ni lenguaje de programación ni un marco de trabajo.

Express qué es?

  • Framework de Node.js diseñado para construir aplicaciones web de API's y aplicaciones móviles multiplataforma de forma rápida.

¿npm qué es?

  • NPM responde a las siglas de Node Package Manager o manejador de paquetes de node, es la herramienta por defecto de JavaScript.
  • En donde hay un repositorio en donde comparte paquetes de software libre para los proyectos Node.js
  • Un archivo package.json, cuando se ejecuta npm init, para inicializar un proyecto JavaScript/Node.js.
  • El Metadato proporcionado por los desarrolladores es nombre, versión, descripción y licencia.
  • package.json también soporta la propiedad scripts que puede definirse para ejecutar herramientas de línea de comandos que se instalan en el contexto local del proyecto.

CI/CD

  • La CI/CD es un método para distribuir las aplicaciones a los clientes con frecuencia.
  • Se trata de una solución para los problemas que puede generar la modificación del código nuevo conocida como el infierno de la integración.

Integración, distribución y la implementación continuas, ¿cual es la diferencia?

  • La integración continua es un proceso automatizado para los desarrolladores.
  • La distribución o la implementación continuas, conceptos relacionados, automatizan las etapas posteriores del proceso.
  • Por lo general, la distribución continua se refiere a someter una aplicación a prueba de errores. La implementación continua hace referencia al lanzamiento automático para ponerlos a disposición de los clientes.

Integración Continua

  • La integración continua (CI) permite a los desarrolladores incorporar los cambios a un repositorio.
  • Una vez incorporados, se valida la compilación automática con pruebas automatizadas.
  • Esto garantiza que los cambios no hayan introducido una falla y facilita la resolución de errores relacionados al conflicto sobre el código nuevo.

Distribución Continua

  • La distribución continua automatiza el traslado del código a un repositorio.
  • Se necesita la incorporación al proceso de desarrollo y necesita tener en cuenta la automatización.

Implementación Continua

  • La implementación continúa automatiza el lanzamiento de una aplicación a la producción al igual que la distribución continua.
  • Se debe tener el diseño de la automatización de las pruebas bien hecha.

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

UD05 Teoría PDF

Description

Este cuestionario explora los servidores de aplicaciones, su función en la gestión de contenido y herramientas para automatizar proyectos Java. También aborda npm en Node.js, CI/CD, distribución e implementación continua, y tecnologías para aplicaciones del lado del servidor con Node.js.

More Like This

Use Quizgecko on...
Browser
Browser