Llegamos a ustedes gracias a:



Columnas de opinión

Guía para SOA 2009 - Parte I: Partiendo de lo básico

Por: Federico Amprimo, gerente del Cono Sur para IDC

  "¿Para que quieres mis bloques Lego papá?. Luego una intensa pero amena negociación con su hijo, Jorge, CIO de una empresa del área financiera, logró finalmente tener en sus manos el ejemplo que buscaba para la reunión que tenía con el directorio de la empresa a primera hora del día siguiente. Había estado toda la tarde pensado en cómo explicarle el concepto de SOA a alguien no técnico, cuando su hijo Sebastián de 5 años pasó a su lado jugando despreocupado con sus bloques de colores. ¡Nunca se sabe de dónde va a llegar la ayuda!

[25/05/2009] Pero? ¿en qué estaba pensando Jorge? ¿Cuál es la relación entre SOA y los bloques de colores? Bueno, empecemos por lo básico: La arquitectura orientada a servicios, o SOA por sus siglas en inglés, es un enfoque de arquitectura de TI pensado en construir e integrar todo los elementos del negocio basándose, como su nombre lo indica, en servicios. Estos servicios, a su vez, pueden ser tareas o actividades de negocio repetibles, tales como revisar el crédito de un cliente, abrir una nueva cuenta o crear una factura, diseñados de manera tal que combinados entre sí, formen complejos sistemas o aplicaciones de negocios. En este esquema, una aplicación o un sistema, compuesto por funciones y/o procesos de negocios, puede ser creado a partir de un conjunto de servicios, que pueden ser posteriormente reutilizados en otras aplicaciones, funciones o procesos de negocios. De esta manera, vía esta descomposición y reutilización, SOA promete aumentar la flexibilidad de la organización de TI para responder rápidamente a los cambios en el negocio.

En el ejemplo de Jorge, cada bloque de colores representaría a un servicio, y las estructuras elaboradas con estos bloques, sean aviones o trenes, representarían a una aplicación o sistema. De esta manera, tanto los servicios como los bloques de colores puedan ser combinados entre sí para armar rápidamente cosas más complejas, llámense sistemas de evaluación de riesgo financiero, naves espaciales o autos de carrera. Ahora, para que un servicio pueda conversar con otros debe contar, al igual que los bloques de colores, con medios de conexión simples y, sobretodo, estándares. Para ello, cada servicio dentro de SOA debe ser capaz de auto-describirse de manera tal que otros elementos de sistema puedan identificarlo correctamente y saber cómo interactuar con él. Por otro lado, tanto los bloques de colores como los servicios pueden ser fácilmente reutilizables pudiendo, por ejemplo, ser parte hoy de un carro de bomberos y de un sistema de gestión de inventarios usando RFID, y mañana de un barco de guerra y de una aplicación de prevención de fraudes respectivamente.

La analogía de Jorge parece perfecta, aunque igual tiene sus limitaciones. Pruebe combinar bloques de colores de marcas distintas y verá a lo que me refiero. La interoperabilidad o integración entre proveedores es prácticamente nula. Sin embargo, a diferencia de otras estrategias de integración, SOA promete estar basado en estándares abiertos, lo cual facilita la comunicación entre distintas aplicaciones y proveedores, fomentando así la reutilización de los servicios y, por lo tanto, aumentando la flexibilidad de la empresa para hacer cambios a los sistemas y aplicaciones en corto tiempo.

Jorge sabía que la confusión no era solamente del área de negocios. Dentro del la propia área de TI también se había encontrado con bastante desorientación y escepticismo. Consideraba que muchos confundían erróneamente a SOA con Web Services, y que otros incluso tomaban a SOA como una nueva versión del diseño orientado a Objetos. Estaba seguro que la tarea de educación era bien alta en todos los frentes.

Jorge estaba en lo correcto. SOA no es Web Services y, efectivamente, hay un alto nivel de confusión entre las personas de TI al respecto. De hecho, en encuestas realizadas por IDC a nivel mundial, cuando se le pregunta a las personas relacionadas al mundo de TI en qué piensa cuando escuchan el término SOA, uno de cada tres respondió Web Services, y una gran mayoría de las restantes respuestas fueron para Software como Servicios. Solo 1 de cada 5 encuestados relacionó SOA con temas más cercanos al concepto como Integración, Arquitectura de TI o Procesos de Negocios. Web Services es una mejor práctica pero no una condición para SOA.

Sin embargo, es cierto también que muchos de los conceptos y beneficios asociados a SOA no son nuevos. Por ejemplo, la reutilización es un beneficio muy asociado al diseño orientado a objetos (OOD). La principal diferencia con OOD está en que operan en un nivel distinto: mientras OOD está enfocado en resolver problemas de abstracción asociados al diseño y desarrollo de aplicaciones, SOA está enfocado al negocio. De hecho SOA no es un proyecto exclusivo del área de TI, debiendo ser liderado e impulsado por toda la empresa. En un proyecto típico de SOA, la definición de servicios, por ejemplo, es realizada por un equipo interdisciplinario compuesto por representantes de las diferentes áreas de la empresa.

Revisando la presentación a realizar al directorio, Jorge se sentía cada vez más convencido que los beneficios que estaba resaltando: menores costos, mayor eficiencia y flexibilidad para responder rápidamente al negocio, valían la pena el esfuerzo. La empresa estaba enrumbada en una estrategia de abrir nuevos canales de comunicación con sus clientes y proveedores, así como en hacer más eficientes los procesos internos, y el contar con SOA como arquitectura de base, le serviría para optimizar los desarrollos futuros de aplicaciones y ser más flexible. Los primeros proyectos a la vista: dar a los clientes del banco acceso a sus cuentas vía el celular, y el usar herramientas de Business Process Management (BPM) para la aprobación de nuevos créditos hipotecarios, parecían ser los proyectos ideales para buscar el apoyo necesario para la implementación de SOA.

IDC estima que hacia finales del 2008 más del 40% de las empresas en Estados Unidos habían adoptado SOA en sus empresas, motivadas principalmente por los beneficios de costos, eficiencia y agilidad. Jorge hacía muy bien en destacar en su presentación estos mismos beneficios, de entre otros tantos que promete SOA, al ser precisamente los que tienen el mayor impacto en el negocio. ¿Por qué se dan estos beneficios? Exploremos algunos de los principales aportes de SOA al negocio:

  1. Reducir costos. Al poder reutilizar los servicios entre distintos procesos de negocios y aplicaciones, los tiempos de desarrollo de nuevas aplicaciones disminuyen drásticamente, reduciendo, por lo tanto, los costos de desarrollo y mantenimiento. Cuando se suman herramientas de BPM, los usuarios pueden crear directamente nuevos procesos de negocios basándose en los servicios existentes, evitando así tiempos largos de desarrollo, y por lo tanto reduciendo aun más los costos.
  2. Proveer flexibilidad y agilidad para atender los cambiantes requerimientos del negocio. La reutilización de servicios permite que los nuevos requerimientos de negocios sean rápidamente implementados, logrando que las empresas gane tiempo al mercado en el lanzamiento de nuevas iniciativas, así como flexibilidad para impulsar nuevos modelos de negocios. Lanzamientos de nuevos productos, que antes hubieran tardado varios meses, se logran hacer en semanas.
  3. Facilitar la integración: Al basarse en servicios reutilizables, SOA es por definición una plataforma pensada en la integración. Dado que, vía estándares, los distintos sabores de SOA pueden conversar entre sí, las aplicaciones SOA debieran poder ser integradas sin mayor esfuerzo. Más aún, SOA facilita la integración con los sistemas de legado al permitir encapsular funcionalidad de los sistemas de legado dentro de algunos servicios que pueden luego ser reutilizados por otras aplicaciones.

Jorge había elegido muy bien sus primeros proyectos sobre los cuales empezaría a utilizar SOA en su empresa. Ambas iniciativas implican integración y reutilización. Por un lado, el usar herramientas de BPM para la aprobación de nuevos créditos hipotecarios, supone que estas herramientas deban ser capaces de interactuar con muchos otros sistemas, teniendo que acceder a datos e información generada y administrada por distintas aplicaciones. Previamente, esto hubiera implicado crear mucho código a la medida. Al usarse SOA, solo se requiere que estas aplicaciones llamen o consuman los servicios relacionados y creados previamente. Por otro lado, el dar a los clientes del banco acceso a sus cuentas por dispositivos móviles no se diferencia mucho de las iniciativas de home banking llevadas a cabo anteriormente. ¿Por qué no reutilizar lo ya desarrollado? Lo que está cambiando es básicamente el dispositivo. Este proyecto puede ser utilizado para ordenar la casa, y dejar sentadas las bases para nuevos canales de comunicación con los clientes.

En los diversos estudios realizados por IDC en la región, hemos visto como las empresas latinoamericanas necesitan reducir la complejidad y por lo tanto los costos de integrar y administrar distintos sistemas alojados en ambientes distribuidos. De hecho, el uso integrado de datos existentes en la organización, ha venido siendo uno de los dos principales impulsores de los gastos relacionados a TI de las empresas medianas y grandes de la región en los últimos años. El optar por una arquitectura SOA puede ser una solución para estas empresas.  

Todo parecía bien enrumbado para la reunión que tendría lugar dentro de unas pocas horas. Jorge, sin embargo, no estaba conciente de la montaña rusa mental por la que habría de pasar en la próxima hora, luego de revisar varios blogs en Internet y relacionar esas notas con algunas conversaciones tenidas recientemente con otros CIO de la industria. ¿Debiera creer a los escépticos con los que venía conversando últimamente?
COMENTARIOS
Martín   jue, 04-jun-09

Muy didactico en la forma como lo explicas..... Felicitaciones por el artículo me agrado leerlo.


Leer más comentarios | Realizar un comentario