Mostrando entradas con la etiqueta weblogic. Mostrar todas las entradas
Mostrando entradas con la etiqueta weblogic. Mostrar todas las entradas

lunes, octubre 13, 2008

WebSphere: Para tiempos de crisis, informes afines.

lunes, octubre 13, 2008 por Martín

Yo ya no me sorprendo demasiado con este tipo de informes:



WebSphere v7 parece realmente potente. Tampoco me extrañaría que estuviese realmente en el primer lugar, a fin de cuentas es un buen software, aunque nunca haya conocido a nadie que hable bien de él salvo administradores de sistemas que estén ya acostumbrados al mismo y hayan hecho sus cursos y por lo tanto sean totalmente contrarios a un cambio.

Pero... ¿Geronimo en segundo lugar? No conozco a nadie ni he visto ningún proyecto en Internet que lo utilice. ¿Alguien lo usa realmente? ¿ColdFusion encima de JBoss, Glassfish, WebLogic? ¿WebLogic es el séptimo?....

Como han cambiado las cosas :-)

Visto en TheServerSide. A Rich Sharples de JBoss no le ha parecido bien. A mi me ha parecido gracioso. Pero bueno, ya se sabe que a nadie lo despiden por elegir IBM...

jueves, julio 31, 2008

Portabilidad: Siguiendo la especificación

jueves, julio 31, 2008 por Martín

En Coding the Architecture abrieron un debate muy interesante hace unos días. Es ese tipo de debate en el que miras hacia atrás y ves inevitablemente como tu opinión ha ido cambiado con el tiempo, ya se hacia un lado o hacia el otro. Y es que al final, cada uno contará la historia como le haya ido en la feria.

Hace ocho años, era todo acerca de la portabilidad. Acerca de la especificación. La portabilidad era la gran baza de JEE, y cualquiera que se mantuviese dentro de los límites de la especificación estaba a salvo. ¡Qué gran consuelo cuando tecnologías como EJB 1.1 te garantizaban un camino amargo y tortuoso! Con el tiempo, el debate sobre portabilidad se ha aligerado mucho, y el no seguir la especificación es como el hombre del saco, que te asusta las primeras veces pero que cuando ves que funciona y no pasa nada, pues pierde toda su importancia.

En mi caso, como el de Simon Brown, mi opinión también ha ido cambiando con el tiempo. Pero un poco al contrario. Hace años yo era partidario de no seguir la especificación si llegabas a un punto en el que te estaba restringiendo demasiado. Todavía recuerdo discusiones airadas sobre este tema con amigos y compañeros de trabajo que opinaban justamente lo contrario. El tiempo me ha enseñado que no hay una verdad única respecto a este tema, y que como casi todo, realmente dependerá en el problema que tengas que solucionar, pero que si realmente decides apartarte de la especificación, este debe ser un factor como otro cualquiera que deberás balancear y sobre el que deberás ponderar riesgos y ventajas.

Por ejemplo, hace tiempo, trabajando en un proyecto me encontré con varias partes de una gran aplicación que utilizaban threads directamente para realizar ciertas operaciones. Estas operaciones incluían escrituras en base de datos o envio de mensajes entre otras cosas. ¡Herejía! ¡Uso de threads en managed-systems! El desarrollo había continuado adelante porque era rápido y porque nunca había pasado nada. Sin embargo, a medida que la carga del sistema aumentaba, se pudo observar que se empezaban a perder mensajes, que había transacciones que no se completaban o se hacía rollback de repente, y otro número de efectos insospechados.

El problema era que se habían apartado demasiado de la especificación, y los efectos eran inesperados. Es así de fácil. No estás en la especificación, no tienes garantía de nada. ¡Si es que a veces no la tienes ni cuando sigues la especificación! La solución en este caso fue aprovechar que el servidor implementaba la specificación commonj y devolver esos Threads al contexto que le pertenecían, el contenedor. Eso solucionó todos los problemas.

Ser consciente de que te pueden pasar estas cosas es algo importante a la hora de hacer la decisión de restringirte o no a la especificación. Otro factor muy importante que he podido ver con el tiempo es el negocio al que se dedique la compañía, y como se va a vender la aplicación que se está creando. Muchas compañías que facturan productos ofrecen soluciones basadas en plataformas comunes como Oracle, WebSphere, WebLogic, a la vez que ofrecen otras soluciones de bajo coste basadas en MySQL, PostgreSQL o JBoss. En este caso, es importante mantenerse lo más cerca posible de la especificación, ya que cualquier opción especial que utilizemos la tendremos que reimplementar tanto para la plataforma premium como para la Open Source.

Otro caso con el que me encontrado es con productos que están bajo un servidor de aplicaciones en contreto y necesitan ser migradas a otro para entrar en determinado sector. Un ejemplo típico sería el entrar en la banca donde en algunos sitios te exigirán IBM WebSphere como plataforma de despliegue.

En fin, que al final, como mencionan en los comentarios, es un balance entre los planes de futuro que haya en la aplicación en cuanto a portabilidad y los problemas que nos encontremos al desarrollar. Si existe la posibilidad de despligue en múltiples plataformas, entonces es mejor ir con cuidado; en caso contrario, siempre se puede quebrantar un poco más las normas, pero siempre siendo conscientes de las posibles consecuencias en cuanto a efectos inesperados.

jueves, enero 03, 2008

Utilizando HermesJMS con WebLogic

jueves, enero 03, 2008 por Martín

Alex me preguntaba en el post que escribí hace tiempo cómo utilizar HermesJMS con WebLogic Server.

Casualmente James Bayer publicó ayer una entrada en su blog donde explica como configurar HermesJMS para poder descubrir las colas y tópicos JMS en WebLogic Server. Una nota: si os da problemas lo de añadir weblogic.jar a un grupo de librerías (creo que con el don't scan debería estar todo bien) probad a simplemente añadir el weblogic.jar al classpath de HermesJMS.

Por cierto, para los que os dediquéis al software financiero, parece que HermesJMS tiene algunas funcionalidades para procesar mensajes FIX.

viernes, septiembre 14, 2007

WebLogic se prepara para JEE 6

viernes, septiembre 14, 2007 por Martín

Si hay algo que no se le puede negar a BEA es que suelen estar por delante de los demás. Fueron de los primeros (¿el primero?)* en soportar JEE 5, en dar soporte oficial de Spring, en permitir la ejecución de su plataforma sobre un hypervisor, etc. A fin de cuentas, es la ventaja de dedicarse casi exclusivamente a su servidor de aplicaciones.

El caso es que según se puede leer hoy en The Register BEA ha anunciado en su conferencia BEA World que WebLogic 10.3 estrenará un nuevo sistema de módulos que permiten escoger que partes quieres instalar en tu servidor de aplicaciones. De este modo puedes prescindir del contenedor web, o de los módulos de Struts, o del registro UDDI, o cualquier otra cosa que no necesites.

Parece que el instalador para esta versión sólo ocupará 150Mb respecto a los 600Mb actuales. La visión de BEA es que se puedan descargar actualizaciones de los módulos de manera independiente y a través de Internet.

Toda la magia de esto radica en la arquitectura mSA (microService architecture) de BEA que se basa en OSGi y que les ha permitido aislar de manera individual 230 componentes diferentes del servidor de aplicaciones. En la EclipseCon 2007 hubo una presentación (estas son las transparencias) en la que se explicaba más a fondo esta arquitectura de micro-servicios y que ya resumió en su momento Alex Blewitt.

Esto es un primer paso como preparación para JEE 6 aunque por ahora parece que habrá que esperar hasta Marzo del 2008, fecha de lanzamiento de WebLogic Server 10.3.

* Nota: Carlos aclara muy acertadamente en uno de los comentarios que hubo varios servidores de aplicaciones que tenían certificación JEE 5 antes de WebLogic 10.

martes, junio 19, 2007

WebLogic y virtualización

martes, junio 19, 2007 por Martín

Virtualización es, sin duda alguna, una de las palabras que más sonará en los próximos años.

Una de las compañías que está apostando más abierta y claramente por este concepto es BEA que no se oculta en afirmar que la virtualización será una de las bases de su futuro negocio.

En la pasada JavaONE ya coprotagonizaron con Intel una de las keynotes en las que presentaron una demo de su WebLogic Virtual Server Edition. El video está aquí y en el se puede ver como arrancan máquinas virtuales directamente sobre Vmware ESX, como asocian servicios a esas máquinas virtuales o como las máquinas virtuales se rearrancan y rearrancan WebLogic en caso de que se produzca algún error.

La idea desde luego es muy prometedora. La principal ventaja de todo esto, a mayores de todas las asociadas a la administración de sistemas, es que este servidor de aplicaciones virtual es capaz de traducir el bytecode en instrucciones de virtualización. En sistemas de virtualización de última generación que no requieren un sistema operativo para funcionar esto significa que tu aplicación se evita las capas de máquina virtual y de sistema operativo, lo que en teoría debería multiplicar el rendimiento de la misma. Todo esto está explicado en este white paper.

Este pasado Miércoles BEA ha realizado dos webminars que pueden resultar también interesantes para mantenerse actualizado respecto a su stack de virtualización:

Webinar: Virtualisation and BEA Liquid VM: Performance and Flexibility
Webinar: BEA Redefines Virtualized Software Appliances for Java with WebLogic Server Virtual Edition

Esos webinars se pueden ver en diferido (bueno realmente yo sólo he podido ver la presentación porque su sistema de video-streaming no me funcionaba) aunque el contenido del segundo webinar todavía no está disponible para ver, pero se supone que pronto lo estará.

A virtualizarse tocan...

martes, mayo 29, 2007

Java en tiempo real

martes, mayo 29, 2007 por Martín

Java Real-Time System 2.0 fue presentado por Sun Microsystems en la pasada JavaOne. Durante la última semana han aparecido unos cuantos enlaces sobre este sistema donde se explica a qué escenarios y sectores está orientado.
  • The case for Real-Time in the Enterprise : Entrevista a Greg Bollella y Dave Hofert, distinguished engineer y manager de Sun Real-Time Java Marketing respectivamente, en la Java One.
  • Real-Time Garbage Collection : Una nueva entrevista a Bollella y Hofert, sobre como funciona la recolección de basura en estos sistemas.
  • El podcast de Javaposse donde la segunda parte está también dedicada a Java Real-Time System 2.0 y donde también participan Bollella y Hofert.

Los tres enlaces anteriores son podcasts.

Por otra parte BEA Systems no se queda atrás y anuncia WebLogic Event Server una versión ligera de su servidor de aplicaciones, y WebLogic Real Time 2.0, que aseguran ofrece pausas de tan sólo 10 milisegundos.

En este artículo de BEA es donde se pueden leer las notas más interesantes. Como que según ellos, Java RTS pone realmente en apuros a las aplicaciones nativas escritas en C/C++ en cuanto a escalabilidad y rendimiento, o como uno de sus clientes dentro de los servicios financieros perdía 200.000 dólares al día hasta que comenzó a utilizar WebLogic RTS. Según promocionan en WebLogic, WebLogic Event Server es capaz de soportar la evaluación de 10.000 reglas y la ejecución de 50.000 transacciones complejas por segundo (no hay datos sobre el hardware utilizado para el test).

lunes, mayo 14, 2007

HermesJMS, monitorización Open Source de sistemas de mensajería

lunes, mayo 14, 2007 por Martín

Hoy he estado jugando con HermesJMS y la verdad es que me parece que ofrece un buen valor (0 euros, es código abierto) para lo que ofrece. Es un producto bastante conocido si no me equivoco pero nunca había tenido la suerte de probarlo.

Lo he estado probando con ActiveMQ y con el proveedor JMS de WebLogic y funciona con ambos, aunque con este último es necesario hacer algún pequeño truquillo para esquivar el mamut que es "weblogic.jar". La herramienta te permite monitorizar todas tus colas, tópicos, ver su contenido en tiempo real, ver en detalle los mensajes que se van transmitiendo o monitorizar la longitud de las colas entre otras cosas.



Una de las formas más sencillas de tirar abajo un servidor de aplicaciones es el no configurar correctamente los sistemas de mensajería. Un pequeño error puede hacer que los mensajes se vayan acumulando en las colas, con lo que en cuestión de minutos, horas o días el servidor se caerá abajo con un espléndido OutOfMemory. Con una herramienta de este estilo puedes monitorizar la salud de tu sistema sin demasiadas complicaciones y sin recurrir a productos caros y más complejos.

miércoles, abril 04, 2007

BEA lanza WebLogic 10

miércoles, abril 04, 2007 por Martín

Hace un par de días se anunció la disponibilidad general de WebLogic 10. Ninguna sorpresa grande leyendo la la hoja de características. Entre lo más notable: Soporte de Java EE 5/EJB 3.0, soporte oficial de Spring, nueva JPA, Workshop 10 basado en Eclipse y que se puede instalar como plug-in sobre una instalación de Eclipse existente. Todo lo esperado.

Entre lo no esperado, es decir la funcionalidad menos conocida, filtering classloaders (viva!), auto-record en la consola de administración para crear comandos WLST (viva!, me entenderéis en unos días), mejoras en JMS (ojalá!), aplicación de escritorio para monitorizar los servidores (interesante), no hay soporte para plataformas Linux de 64 bits (mmmm??) y no hay soporte para plataformas Solaris (mmmm???).

Esperemos que los dos últimos puntos los arreglen pronto.

jueves, febrero 08, 2007

Tres cosas que echo en falta en WebLogic respecto a WebSphere

jueves, febrero 08, 2007 por Martín

A veces, por mucho que un producto vaya muy rápido, la letra pequeña siempre te hace echar de menos cosas de la competencia. Llevo ya un rato desarrollando en WebLogic y por ahora echo en falta al menos tres cosas que se me hacen muy importantes:

* Un registro de URLs a nivel de cluster. Imposible en weblogic. No hay. Puedes asociar URLs pero sólo a nivel de aplicación EAR. ¿Utilidad? Permitir que el cliente cambie una URL sin tener que modificar y redesplegar la aplicación.

* Librerías compartidas a nivel de servidor. En WebLogic existe el concepto de librería, pero tan sólo altera el empaquetado de las aplicaciones. Es decir, que cuando se instancia un EAR se copian las librerías al contexto del EAR y se cargan dentro de su classloader. En WebSphere tu puedes escoger si quieres una librería compartida a nivel de aplicación o a nivel de servidor. ¿Utilidad? Utilizar una librería a nivel de servidor te permite compartir clases entre aplicaciones, disminuye el tamaño de la memoria dedicada a clases (importante cuando hablamos de cientos de megas), y elimina costes de serialización cuando varias aplicaciones se comunican en el mismo servidor.

* Posibilidad de extender los classloaders del servidor de aplicaciones. Ok, valga que en WebSphere tampoco es trivial, pero al menos se puede. ¿Utilidad? Monitorización, introspección, weaving,...

En fin, si me equivoco que alguien me lo diga.