Estrategia SOA, Ecosistemas de Información y Business Intelligence

por

Si habéis leído otros artículos de este blog, habréis visto que en bastantes ocasiones aparecen relacionados conceptos como los Ecosistemas de Información, Business Intelligence y la propia estrategia SOA.

 

En este artículo vamos a centrarnos en esa relación, y vamos a prestar especial atención al papel que juega el ESB en esa relación.

 

Porque a veces me he encuentro en mi vida profesional con situaciones en que alguien pregunta por qué tiene que pasar todo por el ESB. Un middleware suele verse como un estorbo, una pieza innecesaria en un mapa de sistemas donde, al fin y al cabo, ya hay integraciones funcionando.

 

Pongámonos en situación. Dos sistemas de información integrados con la clásica invocación a un servicio web publicado por uno de ellos, y que el otro invoca cuando necesita la información. Entonces llega el nuevo equipo de interoperabilidad, y de la mano de una directriz corporativa de gobernanza, orientan aquella solución a otra en la que el ESB tiene que estar en medio. Pero no solo eso, sino que además hay cambiar el patrón de comunicación síncrono por otro asíncrono.

¿Por qué tiene que pasar todo por el ESB?.

Antes o después, alguien lo pregunta.

 

Naturalmente en esos momentos no hay tiempo, ni es el lugar ni el momento adecuado, para desgranar todas las ventajas que tiene una estrategia de Orientación a Servicios. Desacoplamiento, estandarización, reutilización, reducción de costes, flexibilidad, escalabilidad, y un largo etcétera de efectos beneficiosos colaterales en el medio y largo plazo.

 

Pero aquí sí tengo tiempo y espacio para contaros, y vamos a ir un poco más allá.

 

Vamos a subir aún más las apuestas por los beneficios enormes que trae una estrategia SOA en una organización. A los beneficios ya mencionados, podemos añadir lo comentado también en entradas anteriores: la reducción del time to market, la recopilación y mejora continua en los procesos de negocio, la disponibilidad de la información en tiempo real, la integridad referencial en todo el mapa de sistemas, la interoperabilidad semántica, etc, etc.

 

¿Alguien da más?

 

Pues sí:

La estrategia SOA otorga al Ecosistema de Información una base de conocimiento potente y eficiente en costes para sus capacidades de Business Intelligence (BI).

 

Vamos a argumentar todo esto, y conociéndome seguramente echaré mano de alguna que otra analogía…

 

 

El cuerpo humano, una arquitectura de referencia.

Efectivamente me gusta tomar como referencia ejemplos muy cercanos, que todos podamos comprobar fácilmente. Partimos de la premisa de que nuestro cuerpo, como sistema de sistemas que es, es un Ecosistema de Información.

 

Todos nuestros sistemas, en cada una de sus variadas escalas, manejan una serie de eventos. Estos eventos desencadenan una serie de procesos que a su vez disparan nuevos eventos, y así sucesivamente. La comunicación de todos estos eventos se produce de forma proactiva, desacoplada, y mediante una misma semántica que permite que todos los sistemas implicados sepan interpretar correctamente los eventos que se intercambian. Lo explicábamos aquí, ¿recordáis?.

 

Entre todos nuestros sistemas, estaremos de acuerdo en destacar el Sistema Nervioso Central como el más importante. En él reside el «centro de control» de nuestro cuerpo.

 

A través de una red de comunicaciones nerviosas, concentradas en torno a una columna vertebral, nuestro Sistema Nervioso Central coordina y orquesta todos los sistemas principales, y las respuestas a determinados estímulos (eventos complejos). Para ello, usa una serie de reglas.

 

Algunas de estas reglas son básicas, estándar (comemos al sentir hambre, bebemos al tener sed, nos quejamos ante el dolor, etc, etc). Otras son reglas aprendidas, fruto del contexto social y cultural de cada uno de nosotros. Y otras son reglas que se van formando a lo largo de nuestra experiencia vital, usando experiencias pasadas, recuerdos, lecciones aprendidas, que nos permiten anticiparnos a situaciones deseadas, o a situaciones no deseadas, para buscarlas o evitarlas respectivamente. Las aprendemos a base de identificar determinados patrones de eventos que suelen repetirse, relaciones causa-efecto, etc.

 

El sistema nervioso es una analogia ideal para entender lo que la estrategia SOA aporta a un Ecosistema de Informacion

 

Fijaros ahora en un detalle curioso: algunas de las cosas que ocurren en nuestro cuerpo pasan desapercibidas a nuestro Sistema Nervioso Central. A veces nuestro cuerpo falla en algún determinado punto, y no nos damos cuenta hasta un cierto tiempo después. Algunos de esos fallos desencadenan una serie de efectos que nos alertan (fiebre, náuseas, malestar), pero otras veces esos fallos pasan desapercibidos, y salen a la luz cuando ya es tarde, provocando un fallo general del organismo.

 

En mi opinión, esto es un claro error de diseño. Nuestro Sistema Nervioso Central debería estar al tanto de todo lo que ocurre en nuestro cuerpo, para poder minimizar los daños siempre, o incluso para poder anticiparse a los riesgos para poder evitarlos.

 

Es curioso que un diseño tan evolucionado y complejo como nuestro cuerpo, pase por alto algunos eventos.

 

 

Los Ecosistemas de Información orientados a servicios.

La analogía presentada en el punto anterior es clara. Vamos a trasladarla a las organizaciones y empresas.

 

En una organización orientada a servicios los eventos son enviados de forma proactiva al ESB, que constituye la columna vertebral del Ecosistema de Información. En él se encuentra la lógica que permite orquestar los eventos entre los sistemas proveedores y los sistemas consumidores de dichos eventos.

 

Cada ingreso de un paciente en un hospital, cada reintegro de dinero en un cajero, cada reclamación presentada por un cliente, cada parte de seguro creado, cada impuesto generado, cada demanda judicial, cada recurso, cada lectura de un contador, cada cita médica, cada prueba,… todos los eventos que competen a ese ecosistema pasan por el ESB, que incorpora las reglas de negocio que corresponden.

 

Millones de eventos son recibidos cada mes. Cada evento incluye el correspondiente mensaje estándar, cargado de información sobre ese evento de negocio.

 

Pensad por un momento cuántos eventos recibimos a través de nuestros sentidos cada minuto. Demasiados ¿verdad?. Y cada hora?. ¿Y cada día? ¿Y cada mes?.

 

Ciertamente es impresionante la cantidad de información que maneja nuestro Sistema Nervioso Central. Eso sí que es un Big Data.

 

¿Y qué hace nuestro Sistema Nervioso Central? ¿Lo almacena y analiza todo? Seguro que no. Seguro que filtra bastante de esa información que recibe. Solo mantiene una parte de la información que recibe con todos esos eventos. Solo la parte que le interesa. ¿Y cómo sabe qué eventos le interesan?. Bueno, quizá ahí reside en parte la clave de la inteligencia.

 

Pero volvamos a nuestra empresa orientada a servicios.

 

Tenemos millones de eventos recibidos en su ESB, donde los servicios de negocio orquestan el intercambio de estos eventos, y por tanto el funcionamiento alineado con los procesos de negocio de la organización. Al fin y al cabo los eventos y servicios surgieron del análisis de los procesos de negocio.

 

La estrategia SOA potencia las capacidades de Business Intelligence en el Ecosistema de Informacion

 

 

Tenemos una organización que es capaz de funcionar de forma fluida mediante la orquestación de sus eventos de negocio, manejando por tanto información en tiempo real, y con una capacidad superior para reaccionar ante cualquier necesidad.

 

Estupendo.

 

Pero nuestra organización orientada a servicios, ¿puede aprender?. ¿Puede evolucionar?. ¿Cómo se adapta?.

 

La Estrategia SOA, los Ecosistemas de Información y Business Intelligence.

En ese torrente de eventos que recibe el ESB, hay una cantidad de información no evidente pero valiosísima, que es prácticamente imposible detectar de forma manual. Poder detectarla para poder usarla, sería un enorme salto cualitativo.

 

Por ejemplo: imaginemos que en un hospital el número de camas que se averían aumenta lentamente a lo largo del año hasta llegar a una situación realmente peligrosa para poder garantizar el servicio sanitario al ciudadano. ¿Cómo podría enterarse el hospital de esta circunstancia a tiempo?. Idealmente debería ser capaz de identificar la tendencia creciente de averías en las camas al poco de comenzar.

 

¿Cómo se detecta una tendencia en los eventos?.

 

Otro ejemplo: un importante cliente de un banco empieza a sacar de la entidad importantes sumas de dinero en poco tiempo. Estoy seguro de que ese banco querría detectar ese comportamiento a tiempo, para tratar de ofrecer mejores condiciones a un posible cliente a la fuga, para tratar de retenerlo.

 

¿Cómo se detecta un cambio de comportamiento en los eventos?.

 

Otro ejemplo más: las lecturas de consumo eléctrico en un hogar con cinco inquilinos desciende bruscamente, y se mantiene a niveles bajísimos sin aparente explicación. Seguramente el área de control de fraude de esa empresa energética querría enterarse de ese patrón anómalo de consumo para investigarlo.

 

¿Cómo se detecta una serie anómala de eventos?.

 

Imaginar situaciones similares en áreas como Hacienda (inspección de fraudes), Justicia (optimización de procesos judiciales con tiempos excesivos), Sanidad (mejoras en las prácticas profesionales, identificación de episodios relacionados con partes de seguros y por tanto exigibles al cobro), etc, etc, etc.

 

Bueno pues a todo esto viene a responder el Business Intelligence (BI). Conceptos como Big Data, Analytics, Modelos Predictivos, etc, están relacionados con la BI. Incluso CEP es perfecta para ayudar en la identificación de patrones y alertas justo en la entrada de todo el torrente de eventos de negocio que se transmiten, como veíamos en un reciente artículo.

 

¿Os dais cuenta del enorme terreno que hemos ganado en nuestra organización orientada a servicios precisamente porque todo pasa por el ESB?

 

Efectivamente, al mismo tiempo que mejorábamos el mapa de sistemas de la organización, y lo hacíamos mucho más flexible y escalable, y la organización reducía su time to market, y poníamos a todos los sistemas de información al servicio de los procesos de negocio, reduciendo drásticamente los costes en los proyectos TIC, y garantizando que la información estándar era perfectamente interoperable en todo el mapa de sistemas, además… estábamos construyendo un motor de conocimiento de enorme potencial para el BI de la organización.

 

Identificando patrones complejos a medir, estableciendo umbrales de alerta, y montando los cuadros de mando que permitan visualizar los indicadores de negocio que se consideren claves, nuestro ecosistema de información habrá adquirido nada más y nada menos que su propia «inteligencia de negocio».

 

Ahora podrá anticiparse a situaciones probables basándose en eventos del pasado que ha ido filtrando porque interesan a su negocio. Justo lo que hace nuestro Sistema Nervioso Central para aprender, reaccionar y anticiparse.

 

¿Por qué tiene que pasar todo por el ESB? Por nada en absoluto…

 

Te puede interesar

2 Comentarios

  1. Andrés Hevia

    Hola. Estoy muy de acuerdo en la importancia de contar con un ESB. Pero dado que has expuesto sus ventajas, permíteme añadir una desventaja: su coste.
    Las herramientas de desarrollo para los ESB dejan mucho que desear y no son muy productivas precisamente. Además, los conocimientos para hacerlo bien escasean.
    Además están la complejidad que añadimos al sistema, la instalación, el despliegue de aplicaciones, el mantenimiento… que nos harán depender seguramente de consultores del fabricante del ESB, que no hace falta decir que son caros.
    En definitiva, claramente hay que usar el ESB, pero siempre que compense los costes… y elegir la herramienta adecuada, tal vez no sea necesario un Middleware SOA completo, podemos tener una solución más modesta (pero que cumple con nuestras necesidades) con productos gratuitos como Apache Camel o Spring Integration.

    Responder
    • Manuel Jesús Morales

      Hola Andrés, gracias por tu aportación. Efectivamente la infraestructura tecnológica que suele ser necesaria tiene un coste elevado (aunque las licencias de SAP, por decir un caso de éxito en el mercado, son para pensarselo antes de «casarte»). Y si acudes al open source te encuentras con los problemas de siempre: la falta de soporte, aunque están madurando con rapidez (las soluciones de Apache, JBoss, Bonita, etc empiezan a ser muy interesantes). Pero en mi opinión, las ventajas y el retorno de todo tipo que trae esta inversión lo compensa con creces.
      En cuanto a la productividad de las herramientas de desarrollo, discrepamos :). Es más, habitualmente el «desarrollo» necesario para un ESB es bajo, la mayoría de las necesidades se cubren en entornos muy visuales, sin apenas escribir código, y mucho trabajo de configuración. En la mayoría de los casos, aproximadamente el 75% del tiempo necesario para montar un servicios de negocio se lo lleva el diseño y las pruebas.
      Tienes razón en que la correcta instalación de estas plataformas suele requerir de la participación activa de soporte especializado del fabricante, de lo contrario los problemas de rendimiento son abundantes y asoman las dudas sobre la inversión realizada. Para despejarlas es necesario asegurar una correcta configuración de la plataforma y de las comunicaciones. Pero para hacerse cargo de los desarrollos, habiendo siempre una curva de aprendizaje naturalmente, basta con unos sólidos conceptos en entornos Java, .Net, o similar, XML, saber publicar y consumir servicios web, y poco más.
      Y no olvidemos otra gran ventaja a sumar de cara a los desarrollos sobre el ESB: los beneficios de la reutilización aparecen enseguida, con lo que las necesidades de desarrollo describen una curva descendente que reduce aún más su posible impacto.

      Responder

Trackbacks/Pingbacks

  1. SOA aplicado a la Robótica | SOA, la estrategia más rentable - […] par de ellas en que usaba el cuerpo humano como un ejemplo de SOA y EDA en el mundo…
  2. SOA aplicado a la Robótica: o cómo simular el sistema nervioso central - […] usado el cuerpo humano como un ejemplo de SOA y EDA en el mundo real, y hemos  presentado cómo los…

Enviar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Sigueme en las redes

Share This