Apache Tomcat (abreviado como "Tomcat") es una implementación gratuita y de código abierto de las tecnologías Jakarta EE Servlet , Pages , Expression Language , WebSocket , Annotations y Authentication . Proporciona un entorno de servidor web HTTP "puramente Java" 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 Jakarta EE completo.
Tomcat es desarrollado y mantenido por una comunidad abierta de desarrolladores bajo los auspicios de la Apache Software Foundation, y se distribuye 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
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 integrar Catalina en entornos donde ya se crea y mantiene dicha información de autenticación, y luego usar esa información para implementar la seguridad administrada por el contenedor, tal 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 Java Servlet 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 de Tomcat para procesarla y enviar una respuesta al cliente solicitante. Otro conector de Coyote, Coyote JK, escucha de manera similar, pero en lugar de eso, reenvía sus solicitudes a otro servidor web, como Apache, utilizando el protocolo JK . [ 4 ] Esto generalmente ofrece un mejor rendimiento.
Jaspe
Jasper es el motor JSP de Tomcat. Jasper analiza los archivos JSP para compilarlos en código Java como servlets (que pueden ser gestionados por Catalina). En tiempo de ejecución, Jasper detecta los cambios en los archivos JSP y los recompila.
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 la biblioteca de etiquetas JSP: cada marca de etiqueta en un archivo JSP es gestionada 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 recompila 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 finaliza la recompilación del nuevo servlet JSP.
- Recompilar JSP cuando se modifican las páginas incluidas: las páginas se pueden insertar e incluir en un JSP en tiempo de ejecución. El JSP se recompilará no solo con los cambios en el archivo JSP, sino también con los cambios en las páginas incluidas.
- Compilador JDT de Java: Jasper 2 puede usar el compilador JDT (Java Development Tools) de Eclipse en lugar de Ant y
javac.
Con el lanzamiento de Tomcat 7 se añadieron tres nuevos componentes:
Grupo
Este componente se ha añadido para gestionar aplicaciones de gran tamaño. Se utiliza para el balanceo de carga , que se puede lograr mediante diversas técnicas. Actualmente, la compatibilidad con clústeres 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 al entorno en producción. Esto se logra redirigiendo las solicitudes de tráfico en tiempo real a un servidor temporal en un puerto diferente mientras se actualiza el servidor principal en el puerto principal. Resulta muy útil para gestionar las solicitudes de los usuarios en aplicaciones web con mucho 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 se inició en noviembre de 1998 [ 7 ] como una implementación de referencia de servlet por James Duncan Davidson, arquitecto de software en Sun Microsystems. Posteriormente, contribuyó a que el proyecto se convirtiera en código abierto y desempeñó un papel clave en su donación por parte de Sun Microsystems a la Apache Software Foundation. La herramienta de automatización de compilación de software Apache Ant se desarrolló como consecuencia de la creación de Tomcat como proyecto de código abierto.
Davidson inicialmente esperaba que el proyecto se convirtiera en 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, quiso nombrar el proyecto con el nombre de un animal. Se le ocurrió Tom cat porque razonó que el animal representaba algo que podía valerse por sí mismo. Aunque el nombre Tomcat ya se usaba para 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 ]
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. [ 10 ] En octubre de 2011, el proyecto obtuvo la certificación de Oracle Corporation como una implementación compatible del perfil web Java EE 6. [ 11 ] [ 12 ]
Véase también
- WildFly , anteriormente conocido como JBoss Application Server
- Jetty (servidor web)
- GlassFish , la implementación de referencia de Jakarta EE (y Java EE antes de eso), compatible con EJB , JPA , JSF , JMS , Java RMI , JSP, servlets, etc.
- Comparación de software de servidor web
Software relacionado que ahora está obsoleto o fuera de servicio:
- MuleSoft , productor de Tcat, un servidor Tomcat empresarial.
- Apache Geronimo , un servidor de aplicaciones que puede usar Tomcat como su contenedor web.
- Resin (software) , un servidor de aplicaciones de Caucho Technology.
- JOnAS, un servidor de aplicaciones que puede usar Tomcat como su contenedor web.
- Apache OpenEJB se puede agregar a Tomcat para convertirlo en un servidor JavaEE.
Referencias
- ↑ «Tomcat 11.0.23 (mercado)» . 22 de junio de 2026 . Consultado el 24 de junio de 2026 .
- ↑ "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 .
- 1 2 3 "Versiones de Apache Tomcat" . Consultado el 27 de octubre de 2024 .
- ↑ "La historia del origen de Tomcat" . TechNotif. 24 de abril de 2015. Archivado del original el 30 de junio de 2018. Consultado el 23 de julio de 2017 .
- ↑ Sinan Si Alhir (1998), UML en pocas palabras , O'Reilly Books, 296 págs. , ISBN 978-1-56592-448-2
- ↑ Brittain, Jason; Darwin, Ian F. (28 de noviembre de 2007), Tomcat: La guía definitiva (1.ª ed.), O'Reilly Media , pág. 320 , ISBN 978-0596003180, consultado el 1 de marzo de 2018
- ↑ «Apache TomEE» . Apache OpenEJB .
- ↑ "La Fundación de Software Apache anuncia que Apache TomEE ha sido certificado como compatible con el perfil web Java EE 6" . MarketWatch . 4 de octubre de 2011.
- ↑ "La pila web Apache TomEE obtiene aprobación" . InfoWorld . 7 de octubre de 2011.
Bibliografía
- Brittain, Jason; Darwin, Ian F. (28 de noviembre de 2007), Tomcat: La guía definitiva (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: La guía definitiva (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-2Archivado del 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
Enlaces externos
- Proyectos de la Apache Software Foundation
- Plataforma empresarial Java
- Software libre programado en Java.
- Software gratuito para servidores web
- Software libre multiplataforma
- Software que utiliza la licencia Apache.
- Software de servidor web programado en Java.