Autor(es) original(es) | James Duncan Davidson |
---|---|
Desarrollador(es) | La Fundación del Software Apache |
Lanzamiento inicial | 1999 ( 1999 ) |
Versión estable | 11.0.1 [1] / 10 de noviembre de 2024 |
Repositorio | Repositorio de Tomcat |
Escrito en | Java |
Tipo | Contenedor de servlets Servidor web HTTP |
Licencia | Apache-2.0 |
Sitio web | tomcat.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.
Tomcat 4.x fue lanzado con Catalina (un contenedor de servlets), Coyote (un conector HTTP) y Jasper (un motor JSP ).
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 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 ]
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:
javac
.Se agregaron tres nuevos componentes con el lanzamiento de Tomcat 7:
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.
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]
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]
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]
Serie [10] | Declarado estable | Descripción | Último lanzamiento | Última fecha de lanzamiento | Fin de la vida [11] |
---|---|---|---|---|---|
Versión antigua, ya no se mantiene:2.0 | 1998 | Tomcat 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.0 | 1999 | Versió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.2 | 09-03-2004 | ? |
Versión antigua, ya no se mantiene:4.1 | 6 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.40 | 25 de junio de 2009 | ? |
Versión antigua, ya no se mantiene:5.0 | 3 de diciembre de 2003 | Admite las especificaciones Servlet 2.4, JSP 2.0 y EL 1.1 [14] . | 5.0.30 | 30 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.36 | 10 de octubre de 2012 | 30 de septiembre de 2012 [17] |
Versión antigua, ya no se mantiene:6.0 | 28 de febrero de 2007 [18] | Admite las especificaciones Servlet 2.5, JSP 2.1, [14] y EL 2.1. | 6.0.53 | 07-04-2017 | 31 de diciembre de 2016 [19] |
Versión antigua, ya no se mantiene:7.0 | 14 de enero de 2011 [20] | Admite las especificaciones Servlet 3.0, JSP 2.2, EL 2.2 y WebSocket [14] . | 7.0.109 | 26 de abril de 2021 [21] | 31-03-2021 [22] |
Versión antigua, ya no se mantiene:8.0 | 25 de junio de 2014 [23] | Admite las especificaciones Servlet 3.1, JSP 2.3 y EL 3.0 [14] . | 8.0.53 | 5 de julio de 2018 | 30 de junio de 2018 [24] |
Versión antigua, ya no se mantiene:8.5 | 13 de junio de 2016 | Agrega 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.100 | 25 de marzo de 2024 [25] | 31-03-2024 [26] |
Versión antigua, pero aún mantenida:9.0 | 18 de enero de 2018 | Admite las especificaciones Servlet 4.0 [14] . | 9.0.97 | 09-11-2024 [27] | Por confirmar |
Versión antigua, ya no se mantiene:10.0 | 02-02-2021 | Admite las especificaciones Servlet 5.0, JSP 3.0, EL 4.0, WebSocket 2.0 y Authentication 2.0 [14] . | 10.0.27 | 10 de octubre de 2022 [28] | 31 de octubre de 2022 [29] |
Versión antigua, pero aún mantenida:10.1 | 26 de septiembre de 2022 | Admite las especificaciones Jakarta Servlet 6.0, JSP 3.1, EL 5.0, WebSocket 2.1 y JASPIC 3.0 [14] . | 10.1.33 | 11 de noviembre de 2024 [30] | Por confirmar |
Versión estable actual: 11.0 | 09-10-2024 | Admite las especificaciones Jakarta Servlet 6.1, JSP 4.0, EL 6.0, WebSocket 2.2 y JASPIC 3.1 [14] . | 11.0.1 | 10 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 (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]
Software relacionado que ahora está obsoleto o en desuso: