Entradas etiquetadas con web profile

Servidores J2EE 7 Certificados (Junio 2015)

Hace ya un tiempo razonable desde la salida de la especificación 7 de J2EE. ¿Serán muchos los servidores que se hayan certificado? La verdad es que no. Me ha sorprendido que sean tan pocos. También me ha sorprendido la distribución. Pensaba que todos serian proyectos desarrollados por la comunidad, por aquello de que su ciclo de desarrollo suele ser mas rápido. En cambio, solo la mitad son open source. No me entretengo mas, veamos cuantos y cuales son:

GlassFish Server Open Source Edition 4.0

Logo de GlassFish

El servidor del pescado (a estas alturas ya sabreis que no es santo de mi devoción) fue el primero en conseguir la certificación. Cosa lógica, ya que se trata del demostrador tecnológico de Oracle. Así cualquiera. Ha sido probado en Solaris Sparc10 y 11, Windos XP y 2008, MacOS12.10, Ubuntu12.10, OracleLinux 6.3, Fedora 18 y openSUSE 10.2 con JDK 7 Update 21. Cumple con la especificación full profile y la web profile.

Wildfly 8

Logo oficial de WildFly

Logo oficial de WildFly

Wildfly fue concebido para ser J2EE 7 certificado desde el principio, así que no es una sorpresa encontrarlo en la lista. Este ha sido probado en Red Hat Enterprise Linux 6 (lógico también) con JDK 7 Update 45. También cumple con la especificación full profile y la web profile.

TMAX JEUS 8

Hace un par de años ya hablamos de este servidor de aplicaciones coreano. Yo nunca lo he usado (quizás porque no soy coreano) pero parece que en su país es muy popular. No cabe duda que se lo toman en serio si lo han certificado ya. Ha sido probado en Red Hat Linux Fedora 17 con JDK 7 Update 9. Esta certificado full profile.

Cosminexus 10

cosmi

De este también hablamos en el post que comentaba antes. Este servidor de aplicaciones es el otro comercial de la lista, propiedad de Hitachi. No te puedo decir mucho mas: la información que he encontrado (casi todo en su página) hace casi siempre referencia a versiones antiguas. Probado en Windows 7, 8, 8.1, 2008, 2008 R2, 2012, 2012 R2, Red Hat Enterprise Linux Server 5 y 6 y AIX 6.1 y 7.1.

¿Cambiara esto pronto? Pues yo espero que para final de año se hayan añadido bastantes servidores a la lista: WebSphere, JBoss y TomEE no creo que tarden mucho. Otros ya veremos. Hagan sus apuestas. Por mi parte, intentare acordarme cuando llegue el final de año y repasare la lista.

Los 5 servidores Java que se actualizaron el mes pasado

Este mes pasado han ido saliendo numerosas versiones nuevas, de mantenimiento o Release Candidates que por una cosa o por otra no he podido publicar. Os dejo un resumen.

Apache Tomcat 7.0.62
Apache Tomcat 6.0.44

Logo de Apache Tomcat

Logo de Apache Tomcat

Actualizaciones de mantenimiento de ramas antiguas de Tomcat. Deberías ir pensando en pasarte a la 8, que ya esta maduro, e ir dejando estas. Cuando menos te lo esperes dejaran de publicar parches y entonces tendrás un problema.

Relacionado con todo esto, el equipo de seguridad de Tomcat ha publicado el siguiente aviso de seguridad: “CVE-2014-7810: Apache Tomcat Security Manager Bypass”. Afecta a los siguentes productos: Apache Tomcat 8.0.0-RC1 a 8.0.15, Apache Tomcat 7.0.0 a 7.0.57 y Apache Tomcat 6.0.0 a 6.0.43. Tambien puede afectar a JBoss. Para explotarla hace falta que tengamos instalada una aplicación maliciosa en nuestro servidor. Esto no suele ser lo habitual, pero actualizar el servidor de aplicaciones es fácil y rápido. Al menos una vez que te han autorizado a ello.

Páginas de descarga:

https://tomcat.apache.org/download-70.cgi
https://tomcat.apache.org/download-60.cgi

Apache TomEE 1.7.2

Por fin una versión nueva de este ligero servidor J2EE web profile. Me sorprende que pase tanto tiempo entre versiones, aunque sea para actualizar el Tomcat sobre el que se basan. Aunque en la nota de lanzamiento dicen que utilizan Tomcat 7.0.61, si miras las releases notes (o si descargas el paquete y lo miras, como hice yo) veras que se trata de la 7.0.62, que es la ultima disponible de la rama 7. Ademas del Tomcat, han subido a xbean 4.1, OpenJPA 2.4.0, xbean 4.2, cxf 2.6.16, myfaces 2.1.16… En fin, últimas versiones de esos jars que hacen felices a los programadores.

Página de descargas:

http://tomee.apache.org/downloads.html

Jetty 9.2.11.v20150529
Jetty 7.6.17.v20150415
Jetty 8.1.17.v20150415

Logo del proyecto Jetty

Logo del proyecto Jetty

Versiones de mantenimiento de Jetty. No he visto nada que me llamara la atención, pero eso no quiere decir que no actualices. No hace daño y a la larga ahorra sustos.

Página de descargas:

http://download.eclipse.org/jetty/

WildFly 9.0.0.CR1

Logo oficial de WildFly

Logo oficial de WildFly

WildFly 9 implementa los perfiles Java EE7 full y web profile. Ahora soporta HTTP/2 y SPDY, puede funcionar como frontal para hacer balanceo de carga (esto te puede resultar útil si por lo que sea no puedes usar un Apache), nuevos modos de suspensión y apagado (otra cosa que se suele hacer con el Apache del frontal), consola de gestión por linea de comandos y muchas cosas mas. Estoy deseando que tengamos la versión definitiva. En las releases notes tienes mas detalles.

Página de descargas:

http://wildfly.org/downloads/

JBoss EAP 6.4

No suelo avisar de la salida de servidores “de pago” ya que si estas pagando el soporte estos avisos te llevan directamente, pero como este mes han salido tantas cosas, lo añado. El único cambio reseñable es que ahora se soporta el JDK 8 y se asegura su funcionamiento en nuevas versiones de los SGBD habituales.

Como has visto, ha sido un mes movido. Si ha salido algún otro y se me ha pasado, no dudes en ponerlo en los comentarios.

Oracle no dará soporte comercial para Glassfish 4

Logo de GlassFishEn este blog se ha hablado bastante acerca de la idoneidad de utilizar Glassfish en entornos de produccion. Durante este ultimo año, Oracle no ha hecho sino promover su utilización en cuanto evento de Java (suyo o ajeno) haya asistido. Se han publicado vídeos sobre casos de éxito, documentación a mansalva… de todo. Muchos, entre los cuales me incluyo, siempre hemos dudado de elegir Glassfish fuera una buena elección. Los que llevamos algún tiempo en esto recordamos que Glassfish era un demostrador tecnológico, una implementación de referencia de SUN. Un servidor de aplicaciones “de juguete”, si se me permite la expresión. Todos nuestros temores se han confirmado.

Coincidiendo con la actualización del roadmap de Java y Glassfish, Oracle ha hecho publico que a partir de Glassfish 4, no ofrecerá soporte comercial para la plataforma. Aquellas organizaciones que tengan contratado soporte para versiones anteriores no tienen de que preocuparse (de momento) pues seguirán disponiendo de él hasta que llegue la EOL del producto.  Podéis ver aquí el anuncio: Java EE and GlassFish Server Roadmap Update. El articulo es relativamente largo (no te pierdas los comentarios), pero de entre todo lo que se puede reseñar me quedo con esto:

Commercial Java EE 7 support will be provided from WebLogic Server

Efectivamente: si quieres un servidor de aplicaciones con soporte, usa WebLogic. Inmediatamente después del anuncio, el mundo java se incendió. javaHispano, un sitio que te recomiendo aunque no seas desarrollador, también se hizo eco de la noticia. Ante la avalancha de criticas, Oracle respondió en uno de sus blogs con otro articulo: 6 Facts About GlassFish Announcement. Básicamente nos dice que somos unos exagerados, que hay otros servidores que tampoco tienen soporte y se siguen usando, que si usabas Glassfish te puedes pasar fácilmente a WebLogic, que WebLogic no es tan caro… Creo que no han entendido cual es el problema: que la gente se siente engañada.

Cuatro servidores de aplicaciones que seguramente no conozcas

Desde que empece con este blog han ido apareciendo entradas sobre los servidores de aplicaciones mas utilizados, al menos en esta parte del mundo. Pero eso no quiere decir que no haya otros, ni que no sean buenos. Simplemente son menos conocidos. Veamos algunos.

TmaxSoft JEUS

JEUS es un servidor de aplicaciones coreano, lugar donde tiene una elevada cuota de mercado. Ha sido el primer el primero en conseguir la certificación JEE7, al margen de la implementación de referencia (GlassFish). Se trata de un software propietario, pero si quieres probarlo hay disponible en su web un instalador por si quieres probarlo. Si alguien lo hace, por favor que deje un comentario contando su experiencia.

OW2 JOnAS

JOnAS es un servidor de aplicaciones de código abierto JEE6 certificado. Esta desarrollado por el OW2 Consortium, un consorcio opensource europeo. Encontrar información sobre JOnAS es mucho mas fácil que sobre JEUS, supongo que por la cercanía geográfica. JOnAS esta construido sobre una plataforma OSGi y a su vez puede desplegar módulos OSGi, de lo cual hablamos hace unos dias.

Caucho Resin

Resin, fabricado por la empresa californiana Caucho, también es JEE6 certificado. En su país de origen le auguran un brillante futuro, pero por Europa sigue siendo poco conocido. Hay dos versiones: una de pago que es Web Profile certificado y el contenedor de servlets (un subconjunto del anterior) que es GPL.

Hitachi Cosminexus

cosmi

Cosminexus es el servidor de aplicaciones de la multinacional Hitachi. Como en el caso de JEUS, encontrar información es complicado:  para los que no hablamos japones, su pagina de la wikipedia no nos resulta muy informativa.  Este también es JEE6 certificado y me arriesgaría a suponer que esta pensado para funcionar preferentemente sobre Windows, partiendo de la configuración utilizada para pasar los tests de certificación.

Ya conoces cuatro servidores de aplicaciones mas. Si mas adelante el nombre de alguno de ellos sale a relucir en una reunión, seras de los pocos que no ponga cara de extrañeza.

Comparativa de rendimiento entre Tomcat y TomEE

Introducción

Hace algún tiempo presente TomEE en un par de entradas. Por si no lo recuerdas, TomEE es un servidor J2EE Web Profile certificado construido encima de Tomcat. Básicamente se trata de un Tomcat con librerías añadidas.

Pues a raíz de esto me preguntaron si todo lo añadido a TomEE le penalizaba a la hora de ejecutar aplicaciones con respecto a Tomcat. ¿La aplicación practica de esto? Por ejemplo, si tengo en una maquina un Tomcat y un TomEE, es importante saber si lo que gano consolidando todas las aplicaciones en el TomEE se pierde por el overhead de este. En general esto es algo que yo no haría: prefiero tener las aplicaciones separadas en varios servidores de aplicaciones en lugar de en uno enorme. Sin embargo, puede haber casos en que resulte útil una consolidación como esta.

Así que me dispuse a comprobarlo. Utilizando una aplicación de prueba, la ejecute en TomEE 1.5.1 y en su Tomcat equivalente 7.0.34. Ambos los configure con el mismo JDK (jdk1.6.0_43) y con la configuración por defecto de memoria. El único cambio ha sido la utilización de JMX para la motorización. Para las pruebas utilice JMeter, un proyecto de la fundación Apache para pruebas de carga.

Resultados

Como en otras ocasiones, los resultados de las pruebas per se e incluso la prueba no tienen valor alguno: lo importante es la comparación entre ambos servidores.

Primero veamos el comportamiento de cada servidor durante la prueba. Primero Tomcat:

Comportamiento de Tomcat durante la prueba

Comportamiento de Tomcat durante la prueba (pulsa para agrandar)

Ahora TomEE:

Comportamiento de TomEE durante la prueba

Comportamiento de TomEE durante la prueba (pulsa para agrandar)

Veamos esto en una tabla comparativa:

Tomcat Tomee
Espacio en disco: 14 M 35 M
Tiempo de arranque: 6069 ms 16408 ms
Heap utilizado 50 – 115 M 50 – 100 M
Non-Heap utilizado 60 M 60 M
CPU utilizado 20 – 60 % 20 – 60 %
Clases cargadas 8079 9683
Hilos lanzados 39 44
Ficheros servidos por segundo 90,58 92,04
Kb servidos por segundo 1641,64 1668,93

Conclusión

Como puede verse, a pesar de que TomEE carga un mayor numero de clases y utiliza mas hilos en su ejecucion, el consumo de CPU y memoria es prácticamente idéntico, así como el comportamiento de la aplicación. Es decir, podemos instalar en TomEE aplicaciones que tradicionalmente irían en un Tomcat sin miedo a la perdida de recursos o rendimiento, con poco de penalización de espacio en disco/backups.

Ir arriba