Inicio > Metodología > Los estándares sí importan

Los estándares sí importan

Mis primeras andanzas en el mundo de las arquitecturas orientadas a servicios (SOA) se desarrollaron sobre un servidor WebLogic 9.2, por entonces, un desconocido para mí.

Para conseguir el objetivo fijado en aquel momento, se instaló el producto de diseño de procesos BPEL de Oracle sobre el servidor WebLogic. Para aquellos que no lo conozcan, BPEL (Business Process Execution Language) es, a grandes rasgos, un lenguaje estàndard que permite definir un proceso cómo un flujo de tareas –automáticas o humanas-, ofreciendo integración con web services de forma natural. Existen distintos productos en el mercado orientados a ofrecer las capacidades de diseño, implementación y ejecución de los procesos definidos mediante este lenguaje, uno de los cuales, es la SOA Suite de Oracle.

En el mismo servidor, desplegamos una aplicación en tecnología ADF –también de Oracle-, que interactuaba con los procesos de negocio, y que actuaba de interfaz de usuario para las distintas tareas humanas definidas en el proceso BPEL.

En la fase de pruebas empezamos a detectar comportamientos extraños. De vez en cuando, nuestra aplicación ADF perdía la sesión web. Tardamos un tiempo en darnos cuenta de que esto sólo pasaba cuando hacíamos logout de la consola de control de BPEL que estaba desplegada en el mismo servidor que nuestra aplicación y lo hacíamos desde el mismo navegador (que gran invento los navegadores con pestañas!!). Como estábamos comprobando a través de la consola el avance del proceso gestionado por las pantallas de nuestra aplicación ADF, esto nos estaba pasando muy a menudo.

El comportamiento entraba en clara contradicción con lo que sabíamos –y sabemos- de los servidores de aplicaciones J2EE:

1) La sesión web es gestionada por el contenedor J2EE a nivel de contexto o aplicación.

2) Nosotros teníamos dos aplicaciones distintas, con sus respectivos contextos en el mismo servidor de aplicaciones.

Repasamos la documentación del servidor WebLogic, y en el apartado de seguridad (Programming WebLogic Security) se explica que las aplicaciones que comparten el nombre de la cookie de sesión, funcionan como un Single Sign On. Es posible modificar el nombre de la cookie mediante el fichero de despliegue weblogic.xml, con los parámetros CookieName y CookiePath.

Con este nuevo conocimiento, creamos el fichero de despliegue con un nombre específico para la cookie de sesión de nuestra aplicación ADF. A partir de ese momento, el problema de invalidación de la sesión desapareció.

Una vez solventado el problema, no pude más que acceder a la especificación de los servlets –según la documentación, el WebLogic 9.2 daba soporte completo a la especificación 2.4 de los Servlets- para establecer cuál debía ser el comportamiento de un contenedor J2EE a la hora de gestionar las sesiones web. Con sorpresa, comprobé que la especificación, en su apartado 7. Sessions, establece que el nombre de la cookie de sesión debe ser JSESSIONID (apartado 7.1.1) y que el objeto de sesión debe limitar su ámbito al de aplicación o contexto de servlets (apartado 7.3).

Por lo tanto, WebLogic no estaba cumpliendo con las especificaciones estándar!!

La importancia de los estándares debe quedar clara a las grandes compañías que proveen de servicios, para garantizar el éxito de los proyectos que se desarrollan en sus plataformas. Oracle –actual propietario de WebLogic- se ha caracterizado por un apoyo claro a la definición y uso de estándares. Confiamos que en el futuro próximo, seguirán realizando la misma valiente apuesta por los estándares, que redunde en beneficio de tota la comunidad.

Categorías:Metodología
  1. Aún no hay comentarios.
  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: