microfonos En el número de Mayo de la revista Computer World en Ecuador, me hicieron una entrevista sobre “Pensando en SOA”. Fue un intercambio muy cordial de preguntas/respuestas que reproduzco a continuación. Espero que os sea interesante:

¿Cuáles son las aplicaciones de SOA en una organización y qué infraestructura necesitan?

Las aplicaciones de SOA son muy variadas ya que en realidad trata de una nueva forma de diseñar el software. Una nueva forma de pensar que se enfoca en el desacoplamiento de los servicios (los pequeños programas que hacen algo con sentido para el negocio). Mediante este desacoplamiento, es decir, al no depender unos de otros, podemos cambiar uno por otro y combinarlos con facilidad para crear nuevos servicios de valor añadido para el negocio.

En realidad SOA no es una tecnología que se pueda comprar, es un estilo de diseño como lo son el paradigma de la programación estructurada o de la orientación a objetos. Sin embargo, para llevarla la realidad, es necesario disponer de un Middleware o un conjunto de herramientas software. Lo más habitual es tener un bus empresarial o enterprise service bus, que hace de intermediario entre consumidores y proveedores de servicios.

A esto habría que añadir al menos un registro que sirva de listado de los servicios disponibles en la empresa, para poder reutilizarlos en tiempo de diseño y también para localizarlos en tiempo de ejecución (un consumidor no debe conocer la localización física de la máquina donde se ejecuta el servicio)

¿Están las empresas en la region Andina trabajando con este tipo de arquitectura, cómo ve el escenario en Ecuador?

Mi impresión es que todavía no se ha adoptado SOA todavía en ninguna empresa, al menos de manera general. Sí que hay algunas de ellas, las más punteras, que ya están desarrollando el proyecto de adopción de SOA. Es un proceso lento, porque implica deshacer los verdaderos “espaguetis” en los que sean convertido sus aplicaciones core de negocio.

Sin embargo, sí que he apreciado un verdadero interés en todo lo relacionado con SOA. Se ve en esta forma de diseñar software la solución a los problemas actuales de falta de flexibilidad y evolución en las soluciones software de la empresa: la búsqueda sobre todo de la multicanalidad y la reutilización de activos software, también el ahorro de costes y de tiempo en poner una solución de negocio en el mercado.

¿Qué tipo de organizaciones son las que mayormente podrían necesitar una implementación de este tipo?

No hay un tipo especial de organización al que se dirija SOA especialmente. Sin embargo, por supuesto, se obtendrá un mayor beneficio cuanto más heterogéneo y más acoplado sea el conjunto de aplicaciones que tenga la empresa. En una compañia mediana o grande conviven decenas de aplicaciones de muy diferente tecnología y año de de construcción.

A lo largo del tiempo vamos aplicando parches para integrar estas aplicaciones que no fueron diseñadas para actuar en conjunto si no como islas o silos independientes. Esto produce una verdadera asfixia a la organización, ya que no puede evolucionar y responder a los retos del mercado porque su informática ya no da más de sí. Está tan enmarañada que no es posible ya crear nada nuevo sin romper algo de lo ya existente.

También es común que la misma lógica de negocio, esté repetida 3 o 4 veces. Hemos pagado más de una vez por hacer lo mismo y seguimos gastando varias veces también su mantenimiento. Esto no es sostenible, tenemos que dedicar el prosupuesto a crear nuevos productos para la empresa y darle más valor. Ahí es también donde SOA nos puede ayudar, mediante el principio de la reutilizacion: haremos un servicio una vez (y sólo una) y lo reutilizaremos donde se necesite. Es en este escenario donde de verdad SOA nos muestra todo su potencial.

¿Cuáles son los beneficios para una organización?

Son muchos, pero por resumir, podemos decir que gracias a la reutilización de servicios tendremos un ahorro de costos en el desarrollo y mantenimiento del software de la empresa. Además, debido a la capacidad de crear nuevos servicios combinando los ya existentes podremos reducir el tiempo en que podemos poner la solución de negocio en el mercado. Con esto además, conseguimos ser más flexibles en la construcción del software para responder a las necesidades de negocio.

Además, podemos convertir las lógicas de las aplicaciones antiguas (legacy) en servicios que pueden ser reutilizados por la organización, extrayendo más valor de lo que ya teníamos.

¿Cuánto tiempo puede llevarle a una organización una implementación de este tipo?

Esto varía mucho dependiendo de la organización y de la extensión que queremos dar a la adopción de SOA. Hay que tener en cuenta que SOA conlleva un cambio en la mentalidad y la forma de actuar dentro de la organización, es posible además que conlleve cambios organizacionales. Además, suele coincidir en el mismo momento de la adopción de SOA, que haya que acometer en la empresa un cambio en la metodología de desarrollo, en los productos Middleware que tengamos instalados, en las herramientas de desarrollo, etc. ya que normalmente es necesario usar una tecnología que no usábamos antes en la empresa. Todo ello, además, suele ser acompañado con la reestructuración o refactorización de las aplicaciones core de la compañía, en su adaptación para convertir en servicios lo que antes eran únicamente lógicas de negocio no reutilizables. Por todo ello, la adopción de SOA suele ser a medio o largo plazo, desde unos cuantos meses hasta dos o tres años en una gran organización como puede ser un banco.

¿A cuánto puede ascender la inversion de una arquitectura como esta?

Dependiendo del tiempo y de los productos Middleware que se adquieran, puede ser una inversión considerable. En el caso de los productos, es posible adoptar algunos de ellos de manera gratuita (open source). Sin embargo, en el caso de grandes empresas como pueda ser un banco, casi siempre se decantan por los productos de grandes fabricantes como IBM o Oracle. Si tenemos esto en cuenta, para este último caso y teniendo en cuenta que el proyecto puede durar un par de años, el coste se puede elevar a varios millones de dólares.

Este tipo de arquitectura tiene alguna relación con BPM, explique.

En un entorno para el negocio enormemente cambiante debido a la cada vez más fuerte competencia en un mundo globalizado, clientes cada vez más exigentes, cambios normativos y legales, etc., la velocidad para poner una aplicación en el mercado llega a ser crítica (el llamado time to market). Por otra parte, en ocasiones, las empresas no tienen sus procesos de negocio correctamente definidos, por lo que no pueden ser gestionados ni optimizados correctamente. No se tienen métricas del negocio en tiempo real que proporcione información a los analistas de negocio para poder tomar decisiones casi inmediatamente. Si a ello unimos que las aplicaciones tradicionales son poco flexibles y casi siempre limitadas al ámbito de un área concreta de la organización, tenemos la foto completa de una situación a la que se puede poner remedio con la combinación de dos conceptos muy complementarios: BPM y SOA.

BPM es una metodología empresarial para la gestión de procesos mediante su automatización (mediante herramientas informáticas). Su objetivo es modelar, integrar, monitorizar y optimizar los procesos de negocio de la organización. De tal manera que obliga a las empresas a pensar en el proceso como elemento central.

Por otra parte, SOA permite la implementación de nuevos procesos de negocio y la modificación de los actuales en menos tiempo y con menos coste, ayudando a rentabilizar la inversión ya hecha en software al integrar aplicaciones cerradas, antiguas y otros servicios de otras áreas de negocio (u otras organizaciones). Al hacer corresponder un servicio SOA con un concepto de negocio, minimiza la “brecha” entre las áreas de negocio y T.I., pudiendo de esta manera hablar un lenguaje común.

Está claro que BPM y SOA se complementan y no se debería acometer una sin la otra (al menos no BPM sin SOA). Con la aplicación de los dos, la organización puede adaptarse rápidamente al mercado obteniendo una ventaja competitiva.

En resumen:

  • BPM y SOA, son binomio ganador y van mejor juntos
  • SOA es la infraestructura que necesita BPM
  • SOA sin BPM sólo permite diseñar y construir un conjunto de servicios
  • BPM sin SOA requeriría un desarrollo de código ad-hoc para cada integración con otros sistemas
  • Juntos “orquestan a las personas y los servicios en un proceso de negocio”
Anuncios