Mostrando entradas con la etiqueta websphere. Mostrar todas las entradas
Mostrando entradas con la etiqueta websphere. 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.

viernes, marzo 02, 2007

IBM se une a la moda mash-up

viernes, marzo 02, 2007 por Martín

Leo que IBM está trabajando junto a Google y ha contratado sus servicios para incluir Google Gadgets en su portal de WebSphere. La idea es integrar estos gadgets de forma que el usuario los pueda utilizar para crear portales personalizados, como por ejemplo ver en google maps los centro de soporte de atención al cliente.

Adicionalmente, parece que planean también integrar la suite de Google dentro de Lotus Notes, supongo que para hacer cosas parecidas.

Resulta interesante ver como dos gigantes se unen para trabajar juntos.

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.