Apache Tomcat (llamado "Tomcat" para abreviar) es una implementación gratuita y de código abierto de las tecnologías Java Servlet , JavaServer Pages , Java Expression Language y WebSocket . [3] Tomcat proporciona un entorno de servidor web HTTP "Java puro" en el que se puede ejecutar código Java .
Autor (es) original (es) | James Duncan Davidson |
---|---|
Desarrollador (es) | Fundación de software Apache |
Versión inicial | 1999 |
Lanzamiento estable | 10.0.8 (2 de julio de 2021 [1] ) [±] |
Versión de vista previa | 10.1.0-M2 (alfa) (2 de julio de 2021 [2] ) [±] |
Repositorio | Repositorio de Tomcat |
Escrito en | Java |
Tipo | Servidor web HTTP de contenedor de servlet |
Licencia | Licencia Apache 2.0 |
Sitio web | tomcat |
Tomcat es desarrollado y mantenido por una comunidad abierta de desarrolladores bajo los auspicios de Apache Software Foundation , publicada bajo la licencia Apache License 2.0.
Componentes
Tomcat 4.x se lanzó con Catalina (un contenedor de servlets), Coyote (un conector HTTP) y Jasper (un motor JSP ).
Catalina James
Catalina es el contenedor de servlets de Tomcat . Catalina implementa las especificaciones de Sun Microsystems para servlet 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 Unix ) asignados a esos usuarios. Las diferentes implementaciones de Realm permiten que Catalina se integre en entornos donde dicha información de autenticación ya se está creando y manteniendo, y luego usar esa información para implementar Container Managed Security como se describe en la Especificación de Servlet. [4]
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 Java Servlet o JSP, también actúe como un servidor web simple que sirve archivos locales como documentos HTTP. [5] 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 Coyote Connector, Coyote JK, escucha de manera similar, pero en cambio reenvía sus solicitudes a otro servidor web, como Apache, utilizando el Protocolo JK . [6] Esto suele ofrecer un mejor rendimiento. [ cita requerida ]
Jaspe
Jasper es el motor JSP de Tomcat. Jasper analiza los 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 usa Jasper 2, que es una implementación de la especificación JSP 2.0 de Sun Microsystems. De Jasper a Jasper 2, se agregaron características importantes:
- Agrupación de bibliotecas de etiquetas JSP: cada marca de etiqueta en el archivo JSP es manejada por una clase de controlador de etiqueta. Los objetos de la clase del 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 JSP Java modificado, la versión anterior todavía está disponible para las solicitudes del servidor. El servlet JSP más antiguo se elimina una vez que el nuevo servlet JSP ha terminado de recompilarse.
- Vuelva a compilar JSP cuando se incluyan cambios de página: las páginas se pueden insertar e incluir en una JSP en tiempo de ejecución. El JSP no solo se volverá a compilar con los cambios del archivo JSP, sino también con los cambios de página incluidos.
- Compilador Java JDT: Jasper 2 puede usar el compilador Java Eclipse JDT (Herramientas de desarrollo Java) en lugar de Ant y
javac
.
Se agregaron tres nuevos componentes con el lanzamiento de Tomcat 7:
Grupo
Este componente se ha agregado para administrar aplicaciones grandes. Se utiliza para equilibrar la carga que se puede lograr mediante muchas técnicas. El soporte de agrupación actualmente requiere la versión 1.5 o superior de JDK.
Alta disponibilidad
Se ha agregado 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 manejar las solicitudes de los usuarios en aplicaciones web de alto tráfico. [7]
Aplicación web
También ha agregado mejoras en las aplicaciones web basadas en el usuario y en el sistema para agregar soporte para la implementación en una variedad de entornos. También intenta administrar sesiones y aplicaciones a través de la red.
Tomcat está construyendo componentes adicionales. Se pueden utilizar varios componentes adicionales con Apache Tomcat. Estos componentes pueden ser construidos por los usuarios en caso de que los necesiten o pueden descargarse desde uno de los espejos. [8]
Características
Tomcat 8.x implementa las especificaciones de Servlet 3.1 y JSP 2.3. [9] Apache Tomcat 8.5.x está destinado a reemplazar 8.0.xy incluye nuevas características extraídas de Tomcat 9.0.x. La versión mínima de Java y las versiones de especificación implementadas permanecen sin cambios. [10]
Tomcat 9.x implementa las especificaciones de Servlet 4.0 y JSP 2.3. [11]
Tomcat 10.x implementa las especificaciones de Servlet 5.0 y JSP 3.0. [11]
Historia
Tomcat comenzó como una implementación de referencia de servlet por James Duncan Davidson , arquitecto de software de Sun Microsystems. Más tarde ayudó a que el proyecto fuera de código abierto y desempeñó un papel clave en la donación de Sun Microsystems a la Apache Software Foundation. [12] La herramienta de automatización de compilación de software Apache Ant se desarrolló 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 de código abierto y, dado que muchos proyectos de código abierto tenían libros de O'Reilly asociados con un animal en la portada, quería nombrar el proyecto como un animal. Se le ocurrió a Tom cat porque pensó que el animal representaba algo que podía valerse por sí mismo. Aunque el gato ya estaba en uso para otro título de O'Reilly, [13] su deseo de ver una portada de animales finalmente se hizo realidad cuando O'Reilly publicó su libro de Tomcat con un leopardo de las nieves en la portada en 2003. [14]
Lanzamientos
Serie | Declarado estable | Descripción | Último lanzamiento | Última fecha de lanzamiento | Fin de vida [15] |
---|---|---|---|---|---|
2.0 | 1998 | Tomcat comenzó en noviembre de 1998 [16] como una implementación de referencia de servlet por James Duncan Davidson , arquitecto de software de Sun Microsystems. | |||
3,0 | 1999 | Versión inicial. Fusión del código de Sun Java Web Server y ASF e implementa las especificaciones de Servlet 2.2 y JSP 1.1. | 3.3.2 | 2004-03-09 | |
4.1 | 2002-09-06 [17] | Primera versión de Apache Tomcat compatible con las especificaciones de Servlet 2.3 y JSP 1.2 [18] . | 4.1.40 | 2009-06-25 | |
5,0 | 2003-12-03 | Primera versión de Apache Tomcat compatible con las especificaciones de Servlet 2.4, JSP 2.0 y EL 1.1 [18] . | 5.0.30 | 2004-08-30 | |
5.5 [19] | 2004-11-10 [20] | Diseñado para J2SE 5.0. La inclusión de Eclipse JDT permite que Tomcat se ejecute sin tener que instalar un Java Development Kit completo. | 5.5.36 | 2012-10-10 | |
6.0 | 2007-02-28 [21] | Primera versión de Apache Tomcat que admite las especificaciones Servlet 2.5, JSP 2.1, [18] y EL 2.1. | 6.0.53 | 2017-04-07 | 2016-12-31 [22] |
7.0 | 2011-01-14 [23] | Primera versión de Apache Tomcat compatible con las especificaciones de Servlet 3.0, JSP 2.2, EL 2.2 y WebSocket [18] . | 7.0.109 | 26 de abril de 2021 [24] | 31/03/2021 [25] |
8.0 | 2014-06-25 [26] | Primera versión de Apache Tomcat compatible con las especificaciones Servlet 3.1, JSP 2.3 y EL 3.0 [18] . | 8.0.53 | 2018-07-05 | 2018-06-30 [27] |
8.5 | 2016-06-13 | Agrega soporte para HTTP / 2 , OpenSSL para JSSE, alojamiento virtual TLS y JASPIC 1.1. Creado a partir de Tomcat 9, tras retrasos en Java EE 8. | 8.5.68 | 2021-06-15 | |
9.0 | 2018-01-18 | Primera versión de Apache Tomcat que admite las especificaciones de Servlet 4.0 [18] . | 9.0.50 | 2021-07-02 | |
10.0 | 02/02/2021 | Primera versión de Apache Tomcat compatible con las especificaciones Servlet 5.0, JSP 3.0, EL 4.0, WebSocket 2.0 y Authentication 2.0 [18] . | 10.0.8 | 2021-07-02 | |
Versión antigua Versión anterior, aún mantenida Ultima versión Última versión de vista previa |
Apache TomEE
Apache TomEE (pronunciado "Tommy") es la edición empresarial Java de Apache Tomcat (Tomcat + Java EE = TomEE) que combina varios proyectos empresariales Java, incluidos Apache OpenEJB , Apache OpenWebBeans, Apache OpenJPA , Apache MyFaces y otros. [28] En octubre de 2011, el proyecto obtuvo la certificación de Oracle Corporation como una implementación compatible de Java EE 6 Web Profile. [29] [30]
Ver también
- MuleSoft , productor de Tcat, un servidor Tomcat empresarial
- Apache Geronimo , un servidor de aplicaciones que puede utilizar Tomcat como contenedor web
- Resin (software) - servidor de aplicaciones de Caucho Technology
- WildFly , anteriormente conocido como JBoss Application Server
- Jetty (servidor web)
- JOnAS , servidor de aplicaciones que puede utilizar Tomcat como contenedor web
- Apache OpenEJB , se puede agregar a Tomcat para convertirlo en un servidor JavaEE
- GlassFish , la implementación de referencia de Java EE, compatible con EJB , JPA , JSF , JMS , Java RMI , JSP, servlets, etc.
- Comparación de software de servidor web
Referencias
- ^ "Apache Tomcat - ¡Bienvenido!" . Apache Tomcat . La Fundación de Software Apache. 2021-07-02 . Consultado el 5 de julio de 2021 .
- ^ "Apache Tomcat - ¡Bienvenido!" . Apache Tomcat . La Fundación de Software Apache. 2021-07-02 . Consultado el 5 de julio de 2021 .
- ^ "Cómo instalar Apache Tomcat en Ubuntu Server 16.04" . Consultado el 4 de octubre de 2019 .
- ^ "Referencia de configuración de Apache Tomcat: el componente Realm" . Tomcat.apache.org . Consultado el 1 de noviembre de 2013 .
- ^ El conector Coyote HTTP / 1.1 , Apache
- ^ "Referencia de configuración del servidor - El conector Coyote JK" . tomcat.apache.org . Consultado el 24 de agosto de 2018 .
- ^ King, Graham (20 de diciembre de 2004). "Tomcat de alta disponibilidad" . JavaWorld . Consultado el 21 de julio de 2020 .
- ^ Remy Maucherat (18 de octubre de 2013). "Apache Tomcat 7 (7.0.47) - Componentes adicionales" . Tomcat.apache.org . Consultado el 1 de noviembre de 2013 .
- ^ "Apache Tomcat® - Descargas de software Apache Tomcat 8" . tomcat.apache.org . Consultado el 24 de agosto de 2018 .
- ^ McClanahan, Craig R. "Apache Tomcat 8 (8.5.33) - Índice de documentación" . tomcat.apache.org . Consultado el 24 de agosto de 2018 .
- ^ a b "Versiones de Apache Tomcat" . Consultado el 12 de noviembre de 2011 .
- ^ Davidson, James Duncan (14 de noviembre de 2014). "¿Cuál era la historia de Tomcat dentro de Sun antes de que fuera de código abierto?" . Quora . Consultado el 25 de julio de 2018 .
- ^ Sinan Si Alhir (1998), UML en pocas palabras , O'Reilly Books, págs.296 , ISBN 978-1-56592-448-2
- ^ Brittain, Jason; Darwin, Ian F., Tomcat: The Definitive Guide (1ª ed.), O'Reilly Media , p. 320 , ISBN 978-0596003180, consultado el 1 de marzo de 2018
- ^ "Versiones de Tomcat - Apache Tomcat - Apache Software Foundation" . cwiki.apache.org . Consultado el 20 de julio de 2020 .
- ^ "La historia del origen de Tomcat" . TechNotif. Archivado desde el original el 30 de junio de 2018 . Consultado el 23 de julio de 2017 .
- ^ "[ANUNCIO] Tomcat 4.1.10 Estable" . Consultado el 21 de septiembre de 2015 .
- ^ a b c d e f g Saegesser, Marc A. "Apache Tomcat® - ¿Qué versión quiero?" . tomcat.apache.org . Consultado el 24 de agosto de 2018 .
- ^ Proyecto Apache Tomcat. "Apache Tomcat" . Consultado el 21 de septiembre de 2015 .
- ^ "El sitio de Yakarta - Noticias y estado" . Consultado el 21 de septiembre de 2015 .
- ^ "[ANN] Apache Tomcat 6.0.10 lanzado" . Consultado el 21 de septiembre de 2015 .
- ^ "Apache Tomcat® - Fin de vida de Apache Tomcat 6.0.x" . tomcat.apache.org . Consultado el 20 de julio de 2020 .
- ^ Proyecto Apache Tomcat. "Apache Tomcat" . Consultado el 21 de septiembre de 2015 .
- ^ "Apache Tomcat 7 (7.0.109) - Registro de cambios" . tomcat.apache.org . Consultado el 17 de junio de 2021 .
- ^ "Apache Tomcat® - Fin de vida de Apache Tomcat 7.0.x" . tomcat.apache.org . Consultado el 20 de julio de 2020 .
- ^ Proyecto Apache Tomcat. "Apache Tomcat" . Consultado el 5 de octubre de 2015 .
- ^ "Apache Tomcat® - Fin de vida de Apache Tomcat 8.0.x" . tomcat.apache.org . Consultado el 20 de julio de 2020 .
- ^ "Apache TomEE" . Apache OpenEJB .
- ^ "La Apache Software Foundation anuncia la certificación Apache TomEE como compatible con el perfil web de Java EE 6" . MarketWatch . 4 de octubre de 2011.
- ^ "Apache TomEE Web stack gana 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. 320 , ISBN 978-0596003180, consultado el 1 de marzo de 2018
- Brittain, Jason; Darwin, Ian F., Tomcat: La guía definitiva (2ª ed.), O'Reilly Media, p. 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. 629, ISBN 978-0-471-75361-2, consultado el 8 de octubre de 2009
- Moodie, Matthew; 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 2009CS1 maint: texto adicional: lista de autores ( enlace )
enlaces externos
- Página web oficial