¿Cuál es la diferencia entre Tomcat, JBoss y Glassfish?
Estoy empezando a investigar Enterprise Java y el libro que estoy siguiendo menciona que utilizará JBoss. Netbeans se envía con Glassfish. He usado Tomcat en el pasado.
¿Cuáles son las diferencias entre estos tres programas?
Tomcat es sólo un contenedor de servlets, es decir, implementa sólo los servlets y la especificación JSP. Glassfish y JBoss son servidores Java EE completos (incluidos elementos como EJB, JMS, ...), siendo Glassfish la implementación de referencia de la última pila Java EE 6, pero JBoss en 2010 aún no lo admitía completamente.
Tomcat es simplemente un servidor HTTP y un contenedor de servlets Java. JBoss y GlassFish son servidores de aplicaciones Java EE completos, incluido un contenedor EJB y todas las demás características de esa pila. Por otro lado, Tomcat ocupa menos memoria (~60-70 MB), mientras que los servidores Java EE pesan cientos de megas. Tomcat es muy popular para aplicaciones web simples o aplicaciones que utilizan marcos como Spring que no requieren un servidor Java EE completo. Podría decirse que la administración de un servidor Tomcat es más fácil, ya que hay menos partes móviles.
Sin embargo, para las aplicaciones que requieren una pila Java EE completa (o al menos más piezas que podrían incorporarse fácilmente a Tomcat)... JBoss y GlassFish son dos de las ofertas de código abierto más populares (la tercera es Apache Geronimo , sobre el que se basa la versión gratuita de IBM WebSphere). JBoss tiene una comunidad de usuarios más grande y profunda, y una base de código más madura. Sin embargo, JBoss va muy por detrás de GlassFish en la implementación de las especificaciones actuales de Java EE. Además, para aquellos que prefieren un sistema de administración basado en GUI... la consola de administración de GlassFish es extremadamente ingeniosa, mientras que la mayor parte de la administración en JBoss se realiza con una línea de comandos y un editor de texto. GlassFish viene directamente de Sun/Oracle, con todas las ventajas que puede ofrecer. JBoss NO está bajo el control de Sun/Oracle, con todas las ventajas que ESO puede ofrecer.
Debe utilizar GlassFish para aplicaciones empresariales Java EE . Algunas cosas a considerar:
Un servidor web significa: Manejar solicitudes HTTP (generalmente desde navegadores).
Un contenedor de servlets (por ejemplo, Tomcat ) significa: Puede manejar servlets y JSP.
Un servidor de aplicaciones (por ejemplo, GlassFish ) significa: *Puede gestionar aplicaciones Java EE (normalmente tanto servlet/JSP como EJB).
Tomcat : está administrado por la comunidad Apache, es de código abierto y tiene dos versiones:
- Tomcat: perfil web : liviano, que es solo un contenedor de servlets y no admite funciones de Java EE como EJB, JMS, etc.
- Tomcat EE : este es un contenedor Java EE certificado que admite todas las tecnologías Java EE.
No hay soporte comercial disponible (solo soporte comunitario)
JBoss : ejecutado por RedHat. Este es un soporte completo para JavaEE y es un contenedor Java EE certificado. Esto incluye Tomcat como contenedor web internamente. Este también tiene dos sabores:
- Versión comunitaria llamada Servidor de aplicaciones (AS) : solo tendrá soporte comunitario.
- Servidor de aplicaciones empresariales (EAP) : para esto, puede tener una licencia basada en suscripción (se basa en la cantidad de núcleos que tiene en sus servidores).
Glassfish : ejecutado por Oracle. Este también es un contenedor Java EE certificado de pila completa. Tiene su propio contenedor web (no Tomcat). Esto proviene del propio Oracle, por lo que todas las especificaciones nuevas se probarán e implementarán primero con Glassfish. Por lo tanto, siempre sería compatible con las últimas especificaciones. No conozco sus modelos de soporte.