Apache Tomcat

Entorno de servidor web HTTP basado en Java
Apache Tomcat
Autor(es) original(es)James Duncan Davidson
Desarrollador(es)La Fundación del Software Apache
Lanzamiento inicial1999 ; hace 25 años ( 1999 )
Versión estable
11.0.1 [1]  / 10 de noviembre de 2024
RepositorioRepositorio de Tomcat
Escrito enJava
TipoContenedor de servlets Servidor web
HTTP
LicenciaApache-2.0
Sitio webtomcat.apache.org 

Apache Tomcat (abreviado como "Tomcat") es una implementación libre y de código abierto de las tecnologías Jakarta Servlet, Jakarta Expression Language y WebSocket. Proporciona un entorno de servidor web HTTP "Java puro" en el que también se puede ejecutar código Java. Por lo tanto, es un servidor de aplicaciones web Java, aunque no un servidor de aplicaciones JEE completo.

Tomcat es desarrollado y mantenido por una comunidad abierta de desarrolladores bajo los auspicios de la Apache Software Foundation y publicado bajo la licencia Apache License 2.0.

Componentes

Tomcat 4.x fue lanzado con Catalina (un contenedor de servlets), Coyote (un conector HTTP) y Jasper (un motor JSP ).

Catalina

Catalina es el contenedor de servlets de Tomcat . Catalina implementa las especificaciones de Sun Microsystems para servlets y JavaServer Pages (JSP). En Tomcat, un elemento Realm representa una "base de datos" de nombres de usuario, contraseñas y roles (similares a los grupos de Unix ) asignados a esos usuarios. Diferentes implementaciones de Realm permiten que Catalina se integre en entornos donde ya se crea y mantiene dicha información de autenticación, y luego se utiliza esa información para implementar la seguridad administrada por contenedores como se describe en la especificación de servlets. [2]

Coyote

Coyote es un componente de conector para Tomcat que admite el protocolo HTTP 1.1 y 2 como servidor web. Esto permite que Catalina, nominalmente un contenedor de servlets de Java o JSP, también actúe como un servidor web simple que sirve archivos locales como documentos HTTP. [3] Coyote escucha las conexiones entrantes al servidor en un puerto TCP específico y reenvía la solicitud al motor Tomcat para procesar la solicitud y enviar una respuesta al cliente solicitante. Otro conector Coyote, Coyote JK, escucha de manera similar pero en su lugar reenvía sus solicitudes a otro servidor web, como Apache, utilizando el protocolo JK . [4] Esto generalmente ofrece un mejor rendimiento. [ cita requerida ]

Jaspe

Jasper es el motor JSP de Tomcat. Jasper analiza archivos JSP para compilarlos en código Java como servlets (que pueden ser manejados por Catalina). En tiempo de ejecución, Jasper detecta cambios en los archivos JSP y los vuelve a compilar.

A partir de la versión 5, Tomcat utiliza Jasper 2, que es una implementación de la especificación JSP 2.0 de Sun Microsystems. De Jasper a Jasper 2, se añadieron características importantes:

  • Agrupación de bibliotecas de etiquetas JSP: cada etiqueta de un archivo JSP es manejada por una clase de controlador de etiquetas. Los objetos de la clase de controlador de etiquetas se pueden agrupar y reutilizar en todo el servlet JSP.
  • Compilación de JSP en segundo plano: mientras se vuelve a compilar el código Java de JSP modificado, la versión anterior sigue estando disponible para las solicitudes del servidor. El servlet JSP anterior se elimina una vez que se termina de recompilar el nuevo servlet JSP.
  • Recompilar JSP cuando se incluyan cambios en las páginas: las páginas se pueden insertar e incluir en un JSP en tiempo de ejecución. El JSP no solo se volverá a compilar con los cambios en el archivo JSP, sino también con los cambios en las páginas incluidas.
  • Compilador Java JDT: Jasper 2 puede utilizar el compilador Java Eclipse JDT (Java Development Tools) en lugar de Ant y javac.

Se agregaron tres nuevos componentes con el lanzamiento de Tomcat 7:

Grupo

Este componente se ha añadido para gestionar aplicaciones de gran tamaño. Se utiliza para equilibrar la carga , lo que se puede lograr mediante diversas técnicas. La compatibilidad con clústeres actualmente requiere la versión 1.5 o superior del JDK.

Alta disponibilidad

Se ha añadido una función de alta disponibilidad para facilitar la programación de actualizaciones del sistema (por ejemplo, nuevas versiones, solicitudes de cambio) sin afectar el entorno en vivo. Esto se hace enviando solicitudes de tráfico en vivo a un servidor temporal en un puerto diferente mientras el servidor principal se actualiza en el puerto principal. Es muy útil para gestionar solicitudes de usuarios en aplicaciones web de alto tráfico. [5]

Características

Tomcat 9.x implementa las especificaciones Servlet 4.0 y JSP 2.3. [6]

Tomcat 10.1.x implementa las especificaciones Servlet 6.0 y JSP 3.1. [6]

Tomcat 11.x implementa las especificaciones Servlet 6.1 y JSP 4.0. [6]

Historia

Tomcat comenzó como una implementación de referencia de servlet por parte de James Duncan Davidson , un arquitecto de software de Sun Microsystems. Más tarde ayudó a que el proyecto fuera de código abierto y jugó un papel clave en su donación por parte de Sun Microsystems a la Apache Software Foundation. [7] La ​​herramienta de automatización de compilación de software Apache Ant fue desarrollada como un efecto secundario de la creación de Tomcat como un proyecto de código abierto.

Davidson inicialmente había esperado que el proyecto se convirtiera en un proyecto de código abierto y, dado que muchos proyectos de código abierto tenían libros de O'Reilly asociados con ellos que presentaban un animal en la portada, quería nombrar el proyecto en honor a un animal. Se le ocurrió el nombre de gato Tom , ya que razonó que el animal representaba algo que podía valerse por sí mismo. Aunque el gato ya se había utilizado en otro título de O'Reilly, [8] su deseo de ver una portada con un animal finalmente se hizo realidad cuando O'Reilly publicó su libro Tomcat con un leopardo de las nieves en la portada en 2003. [9]

Lanzamientos

Serie [10]Declarado estableDescripciónÚltimo lanzamientoÚltima fecha de lanzamientoFin de la vida [11]
Versión antigua, ya no se mantiene:2.01998Tomcat comenzó en noviembre de 1998 [12] como una implementación de referencia de servlet de James Duncan Davidson , un arquitecto de software de Sun Microsystems.???
Versión antigua, ya no se mantiene:3.01999Versión inicial. Fusión del código donado de Sun Java Web Server y ASF, e implementa las especificaciones Servlet 2.2 y JSP 1.1.3.3.209-03-2004?
Versión antigua, ya no se mantiene:4.16 de septiembre de 2002 [13]Primera versión de Apache Tomcat que admite las especificaciones Servlet 2.3 y JSP 1.2 [14] .4.1.4025 de junio de 2009?
Versión antigua, ya no se mantiene:5.03 de diciembre de 2003Admite las especificaciones Servlet 2.4, JSP 2.0 y EL 1.1 [14] .5.0.3030 de agosto de 2004?
Versión antigua, ya no se mantiene:5.5 [15]10 de noviembre de 2004 [16]Diseñado para J2SE 5.0. La inclusión de Eclipse JDT permite ejecutar Tomcat sin necesidad de instalar un kit de desarrollo de Java completo.5.5.3610 de octubre de 201230 de septiembre de 2012 [17]
Versión antigua, ya no se mantiene:6.028 de febrero de 2007 [18]Admite las especificaciones Servlet 2.5, JSP 2.1, [14] y EL 2.1.6.0.5307-04-201731 de diciembre de 2016 [19]
Versión antigua, ya no se mantiene:7.014 de enero de 2011 [20]Admite las especificaciones Servlet 3.0, JSP 2.2, EL 2.2 y WebSocket [14] .7.0.10926 de abril de 2021 [21]31-03-2021 [22]
Versión antigua, ya no se mantiene:8.025 de junio de 2014 [23]Admite las especificaciones Servlet 3.1, JSP 2.3 y EL 3.0 [14] .8.0.535 de julio de 201830 de junio de 2018 [24]
Versión antigua, ya no se mantiene:8.513 de junio de 2016Agrega compatibilidad con HTTP/2 , OpenSSL para JSSE, alojamiento virtual TLS y JASPIC 1.1. Creado a partir de Tomcat 9, luego de demoras en Java EE 8.8.5.10025 de marzo de 2024 [25]31-03-2024 [26]
Versión antigua, pero aún mantenida:9.018 de enero de 2018Admite las especificaciones Servlet 4.0 [14] .9.0.9709-11-2024 [27]Por confirmar
Versión antigua, ya no se mantiene:10.002-02-2021Admite las especificaciones Servlet 5.0, JSP 3.0, EL 4.0, WebSocket 2.0 y Authentication 2.0 [14] .10.0.2710 de octubre de 2022 [28]31 de octubre de 2022 [29]
Versión antigua, pero aún mantenida:10.126 de septiembre de 2022Admite las especificaciones Jakarta Servlet 6.0, JSP 3.1, EL 5.0, WebSocket 2.1 y JASPIC 3.0 [14] .10.1.3311 de noviembre de 2024 [30]Por confirmar
Versión estable actual: 11.009-10-2024Admite las especificaciones Jakarta Servlet 6.1, JSP 4.0, EL 6.0, WebSocket 2.2 y JASPIC 3.1 [14] .11.0.110 de noviembre de 2024 [31]Por confirmar
Leyenda:
Versión antigua, sin mantenimiento
Versión antigua, aún mantenida
Última versión
Última versión preliminar
Lanzamiento futuro

Apache TomEE

Apache TomEE (pronunciado "Tommy") es la edición empresarial de Apache Tomcat (Tomcat + Java/Jakarta EE = TomEE) que combina varios proyectos empresariales de Java, incluidos Apache OpenEJB , Apache OpenWebBeans , Apache OpenJPA , Apache MyFaces y otros. [32] En octubre de 2011, el proyecto obtuvo la certificación de Oracle Corporation como una implementación compatible del perfil web de Java EE 6. [33] [34]

Véase también

Software relacionado que ahora está obsoleto o en desuso:

Referencias

  1. ^ "Tomcat 11.0.1 (mercado)". 10 de noviembre de 2024 . Consultado el 13 de noviembre de 2024 .
  2. ^ "Referencia de configuración de Apache Tomcat: el componente Realm". Tomcat.apache.org . Consultado el 1 de noviembre de 2013 .
  3. ^ El conector HTTP/1.1 de Coyote, Apache
  4. ^ "Referencia de configuración del servidor: el conector Coyote JK". tomcat.apache.org . Consultado el 24 de agosto de 2018 .
  5. ^ King, Graham (20 de diciembre de 2004). "Tomcat de alta disponibilidad". JavaWorld . Consultado el 21 de julio de 2020 .
  6. ^ abc "Versiones de Apache Tomcat" . Consultado el 27 de octubre de 2024 .
  7. ^ Davidson, James Duncan (14 de noviembre de 2014). "¿Cuál era la historia de Tomcat dentro de Sun antes de que se volviera de código abierto?". Quora . Consultado el 25 de julio de 2018 .
  8. ^ Sinan Si Alhir (1998), UML en pocas palabras, O'Reilly Books, págs. 296, ISBN 978-1-56592-448-2
  9. ^ Brittain, Jason; Darwin, Ian F. (28 de noviembre de 2007), Tomcat: The Definitive Guide (1.ª ed.), O'Reilly Media , pág. 320, ISBN 978-0596003180, consultado el 1 de marzo de 2018
  10. ^ Versiones de Apache Tomcat
  11. ^ "Versiones de Tomcat - Apache Tomcat". cwiki.apache.org . The Apache Software Foundation . Consultado el 20 de julio de 2020 .
  12. ^ "La historia del origen de Tomcat". TechNotif. 24 de abril de 2015. Archivado desde el original el 30 de junio de 2018. Consultado el 23 de julio de 2017 .
  13. ^ "[ANUNCIO] Tomcat 4.1.10 estable" . Consultado el 21 de septiembre de 2015 .
  14. ^ abcdefghi Saegesser, Marc A. "Apache Tomcat: ¿Qué versión quiero?". tomcat.apache.org . Consultado el 24 de agosto de 2018 .
  15. ^ Proyecto Apache Tomcat. «Apache Tomcat» . Consultado el 21 de septiembre de 2015 .
  16. ^ "El sitio de Jakarta - Noticias y estado" . Consultado el 21 de septiembre de 2015 .
  17. ^ Proyecto Apache Tomcat. «Apache Tomcat» . Consultado el 28 de marzo de 2022 .
  18. ^ "[ANN] Apache Tomcat 6.0.10 lanzado" . Consultado el 21 de septiembre de 2015 .
  19. ^ "Apache Tomcat: fin de la vida útil de Apache Tomcat 6.0.x". tomcat.apache.org . Consultado el 20 de julio de 2020 .
  20. ^ Proyecto Apache Tomcat. «Apache Tomcat» . Consultado el 21 de septiembre de 2015 .
  21. ^ "Apache Tomcat 7 (7.0.109) - Registro de cambios". tomcat.apache.org . Consultado el 17 de junio de 2021 .
  22. ^ "Apache Tomcat: fin de la vida útil de Apache Tomcat 7.0.x". tomcat.apache.org . Consultado el 20 de julio de 2020 .
  23. ^ Proyecto Apache Tomcat. «Apache Tomcat» . Consultado el 5 de octubre de 2015 .
  24. ^ "Apache Tomcat: fin de la vida útil de Apache Tomcat 8.0.x". tomcat.apache.org . Consultado el 20 de julio de 2020 .
  25. ^ Proyecto Apache Tomcat. «Registro de cambios de Apache Tomcat 8.5» . Consultado el 7 de abril de 2024 .
  26. ^ "Apache Tomcat: fin de la vida útil de Apache Tomcat 8.5.x". tomcat.apache.org . Consultado el 16 de octubre de 2023 .
  27. ^ Proyecto Apache Tomcat. «Registro de cambios de Apache Tomcat 9.0» . Consultado el 15 de noviembre de 2024 .
  28. ^ Proyecto Apache Tomcat. «Registro de cambios de Apache Tomcat 10.0» . Consultado el 9 de mayo de 2023 .
  29. ^ "Apache Tomcat: fin de la vida útil de Apache Tomcat 10.0.x". tomcat.apache.org . Consultado el 17 de noviembre de 2022 .
  30. ^ Proyecto Apache Tomcat. «Registro de cambios de Apache Tomcat 10.1» . Consultado el 15 de noviembre de 2024 .
  31. ^ Proyecto Apache Tomcat. «Registro de cambios de Apache Tomcat 11.0» . Consultado el 15 de noviembre de 2024 .
  32. ^ "Apache TomEE". Apache OpenEJB .
  33. ^ "Apache Software Foundation anuncia que Apache TomEE ha sido certificado como compatible con el perfil web de Java EE 6". MarketWatch . 4 de octubre de 2011.
  34. ^ "La pila web Apache TomEE obtiene la aprobación". InfoWorld . 7 de octubre de 2011.

Bibliografía

  • Brittain, Jason; Darwin, Ian F. (28 de noviembre de 2007), Tomcat: The Definitive Guide (1.ª ed.), O'Reilly Media, pág. 320, ISBN 978-0596003180, consultado el 1 de marzo de 2018
  • Brittain, Jason; Darwin, Ian F. (28 de noviembre de 2007), Tomcat: The Definitive Guide (2.ª ed.), O'Reilly Media, pág. 496, ISBN 978-0596101060, consultado el 1 de marzo de 2018
  • Chopra, Vivek; Li, Sing; Genender, Jeff (13 de agosto de 2007), Professional Apache Tomcat 6 (1.ª ed.), Wrox , pág. 629, ISBN 978-0-471-75361-2, archivado desde el original el 14 de mayo de 2009 , consultado el 8 de octubre de 2009
  • Moodie, Mateo; Mittal (Ed.), Kunal (22 de marzo de 2007), Pro Apache Tomcat 6 (1.ª ed.), Apress , p. 325, ISBN 978-1-59059-785-9, consultado el 8 de octubre de 2009
  • Sitio web oficial
Obtenido de "https://es.wikipedia.org/w/index.php?title=Apache_Tomcat&oldid=1257639290"