Hablando de SOA (I)

Llevaba tiempo queriendo hablar de SOA (Arquitectura Orientada a Servicios) y no sabía cómo enfocarlo. Desde un punto técnico es apasionante y es donde mejor puedo intentar explicar las cosas, pero entiendo que no es el lugar y la mejor forma de haceros partícipes. Por eso os hablaré del concepto de arquitectura SOA y os invito a que busquéis información. En la segunda parte de este artículo entraremos en si es posible implementar SOA en mi empresa.

¿Doctor, qué me pasa?

Imaginemos una empresa con sus distintas áreas de negocio y la cantidad de datos que maneja: Información contable, comercial, CRM, facturación… El flujo de información es constante y muy cambiante en función de los requisitos. Todas estas áreas de negocio tienen su propia forma de albergar y solicitar la información. Si el departamento de contabilidad necesita una adaptación en el software o un nuevo desarrollo, simplemente llama a la empresa de software, se presupuesta una modificación o una adquisición de un nuevo recurso, se paga y se usa. ¿Alguien se paró en la empresa a pensar si ese módulo de software nuevo es accesible para el resto de áreas de la empresa?

Conforme crece una empresa estamos alimentando una pequeña torre de babel, en el que cada departamento dispone de datos, pero estos o no están accesibles, o no se entienden con otras áreas o necesitan de complejas adaptaciones. En muchos casos entran en juego los conflictos entre departamentos y el concepto erróneo de que los datos son propiedad de quien los usa. Desafortunadamente, no resulta tan difícil imaginarse este escenario. Es el pan nuestro de cada día en la mayoría de las empresas. La consultora Gartner calcula que aproximadamente un 30% del presupuesto de TI de las empresas se invierte en proyectos fallidos, y cerca del 60% se emplea en el mantenimiento de las aplicaciones existentes.

Los sistemas de información tienden a proliferar de tres modos distintos. Estoy seguro de que con facilidad nos podremos situar en alguno de estos modos:

  1. Losas: Capas formadas por antiguos sistemas de información.
  2. Silos: Sistemas redundantes e inaccesibles entre sí.
  3. Espaguetis: Laberinto de integraciones.

Estos son algunos de los efectos derivados del problema de no seguir una arquitectura en nuestros sistemas de información:

  1. La introducción de cambios puede ser lenta y arriesgada.
  2. No hay nadie que conozca bien todos los sistemas.
  3. La lógica no está distribuida en capas claras.
  4. El coste de mantenimiento de los sistemas es elevado.
  5. Los distintos sistemas no siempre se pueden comunicar entre sí.

 

La solución: SOA

Tenemos descrito nuestro problema, pero ¿algo o alguien puede solucionar esto?, aquí entra SOA, Arquitectura Orientada a Servicios (en inglés Service Oriented Architecture). SOA es un concepto de arquitectura de software que define la utilización de servicios para dar soporte a los requisitos del negocio. La consultora Gartner describe la arquitectura orientada a servicios por primera vez en 1996, pero el interés en la misma se vio aumentado por la aparición de una importante tendencia del mercado: los servicios web.

En la arquitectura SOA no importa realmente como están creado los distintos módulos de nuestro sistema, lo que realmente importa es que sea capaz de suministrar la información que alberga, es decir que ofrezca un servicio. Si el departamento de contabilidad necesita saber si un cliente ha realizado algún pedido en los últimos 7 días, simplemente hace una petición de servicio al mediador de servicios y este módulo comercial, que le proporcionara el dato de forma flexible para ser utilizado.

SOA proveedor de servicios, mediación de servicios y consumo de servicios

Este concepto debería ser el que predomine en nuestro sistema, todos los módulos implantados que reconozcamos como básicos tienen que ofrecer la posibilidad de ser proveedores de servicio. SOA nos permite ser el plan director para el gobierno de todas nuestras implantaciones.

Espero haberos picado un poco en vuestra curiosidad y os ánimo a que busquéis información sobre SOA, de la que seguiré hablando con más profundidad en próximos artículos.

imagen: mikek

Sobre Jose Manuel Martínez

Jose Manuel Martinez es consultor informático muy experimentado en la implantación de software ERP para cualquier tipo de empresa en Clavei, además, es desarrollador de proyectos de Inteligencia de negocios con QlikView.

Se define como apasionado de los sistemas operativos, y de las nuevas técnologias. Con espirítu investigador, siempre se centra en el corazón de la cuestión. Todo un consultor Senior, pero con las ganas de un Junior. “No uso Facebook, no me busques allí”.