Service Data Objects, respuesta a los desafíos de JAVA en ambientes SOA

22 Sep 2005 en Software

El nuevo WebSphere Process Server es la herramienta más avanzada de IBM en cuanto a posibilitar una arquitectura con orientación a servicios (SOA). Uno de sus elementos clave de este y otros productos WebSphere que han sido actualizados recientemente, es la tecnología que crea una capa de abstracción adicional. IBM la ha bautizado como SDO (Service Data Objects) y llega a donde Java no lo hace en los proyectos más modernos de programación.
Chandra Venkatapathy (en adelante Chandra), gerente de Process Servers en el proyecto WebSphere de IBM, señala que SDO facilita el manejo de datos en las aplicaciones ya que provee la abstracción requerida para entornos de computación distribuidos tales como SOA. La principal novedad aquí es la de tener un acceso unificado a fuentes de datos heterogéneas. “No siempre se trabaja con bases de datos relacionales, puede ser un Web service, un archivo plano o un objeto de negocio de otro software,” comenta Chandra a Datamation.
Hace tiempo que IBM, Sun Microsystems, BEA y Oracle apuestan a Java, plataforma que ofrece un surtido de modelos de programación de datos y APIs (Application Programming Interfaces, conjunto de rutinas y protocolos que facilitan la escritura de software donde el programador dispone de todos los elementos y sólo tiene que organizarlos según su aplicación). Pero Java no siempre funciona con otros tipos de entornos herramentales y las APIs tales como JDBC (Java Database Connectivity) sólo tratan con datos relacionales. SDO apunta a crear una capa uniforme de acceso a datos solucionando el problema de fuentes de datos heterogéneas.
Chandra nos dice que SDO soporta APIs del tipo estático y dinámico, varias herramientas y frameworks, modelos de programación inconexos y capas para el acceso customizado a datos. También puede desacoplar el código de aplicación del que realiza el acceso a los datos, abriendo paso así a la reusabilidad que caracteriza a las arquitecturas SOA.
Dicho desacople es crucial en procesos como órdenes de compra vía Web, donde la información de un cliente puede venir de una fuente y la de su cuenta de otra, etc.
“Si estamos en orientación a servicios y se quiere cambiar a una de las aplicaciones, el proceso puede no cambiar, pero la aplicación sí. El correcto desacople de los objetos es un factor clave que determina el éxito porque maneja el impacto que se produce en los apoyos de datos. Así, si un sistema no funciona bien, SDO puede realizar el mapeado para cambiar lo que falte,” explica Chandra. SDO permite transformaciones sobre la marcha, tal como debería ser con el uso de Web services dentro de SOA.
“La belleza de SDO está en que es una capa de abstracción que se usa sin que casi nadie lo perciba,” dice Chandra para luego agregar que SDO ya forma parte de WebSphere Application Server. Por el momento, SDO no es algo visible y sexy en la libido de la gente de IT, pero a medida que SOA evolucione, su importancia será tenida en cuenta.
Robert LeBlanc, gerente general de WebSphere Software, se refirió a SDO la semana pasada en ocasión de presentar el ESB (Enterprise Service Bus) de IBM y a Process Server. En esa conferencia se le preguntó acerca de la forma en que los nuevos productos incorporan a estándares como JBI (Java Business Integration).
LeBlanc respondió: “Para IBM la integración va más allá de Java y por eso incorporamos un conjunto de capacidad y tecnología en Process Server y con el tiempo iremos llevándolos a la comunidad abierta. Antes de ese avance, queremos estar seguros de que la tecnología es sólida y resuelve problemas de los clientes.”
Para Forrester Research, IBM está estandarizando una interfaz tipo container con una definición más general y menos Java-específica que JBI. Este eventual estándar tendría el mismo objetivo básico: posibilitar containers de diferentes proveedores para que se federen entre sí mediante Web services como ESBs, soportando aplicaciones compuestas. Hoy, eso es difícil porque cada container tiene diferencias de interfaz para implantar servicios, procesarlos, monitorearlos y administrarlos.