Con SOA (Arquitectura Orientada al Servicio), las empresas pueden hoy integrar aplicaciones de manera más sencilla y desplegar nuevos servicios con mayor rapidez, gracias a la reutilización del software y a la independencia de las aplicaciones respecto de la infraestructura y la plataforma tecnológica. Se trata de un enfoque que, ayudado por los estándares y los servicios Web, se perfila como una de las tendencias en TI más importantes para el presente y el futuro cercano.
Probablemente no haya hoy otro concepto más nombrado en el ámbito de las Tecnologías de la Información (TI) empresarial que el acrónimo SOA (Service Oriented Architecture) o "Arquitectura Orientada al Servicio". Se trata de una noción que ha alcanzado por estos días un fuerte impulso y notoriedad debido a que promete resolver una de las principales demandas que enfrentan las empresas en la actualidad: la flexibilidad.
La competitividad y los ciclos de los negocios actuales exigen flexibilidad. Y ella, llevada a la infraestructura de TI, no sólo significa resolver muchos obstáculos en el despliegue e integración de las aplicaciones, sino también se convierte en sinónimo de buenos procesos de negocios y, mejor todavía, en el inicio de la generación de ventajas y de agregar más valor al negocio.
Considerada por Gartner como uno de los componentes clave de la "Arquitectura de Nueva Generación", SOA es, con seguridad, un concepto que seguirá dando qué hablar en los próximos diez años, puesto que aún no ha iniciado su fase de consolidación o madurez plena. Sin embargo, la consultora estima que ya este año la mayor parte de las organizaciones, especialmente de mayor tamaño, estará iniciando o desplegando aplicaciones basadas en SOA. Gartner destaca, asimismo, que la arquitectura orientada al servicio tiene un potencial no menor: transformar los negocios. Y esa es, precisamente, una de las cualidades que prometen convertir a SOA en algo más que una moda.
¿Qué es SOA?
Para comprender cabalmente el significado de SOA, hay que partir señalando que no se trata de una tecnología, sino más bien de un enfoque, como dicen algunos, o una "filosofía", como dicen otros. Este enfoque provee una metodología y un marco de trabajo para diseñar una arquitectura de software basada en servicios, los cuales pueden ser expuestos interna o externamente a través de un conjunto de tecnologías estándares para su uso por otras aplicaciones, propias o de terceros.
Sin embargo, una arquitectura orientada al servicio no es algo 100% nuevo. De hecho, las organizaciones de TI han estado construyendo y desplegando exitosamente aplicaciones SOA desde hace años, antes incluso de que existiera el estándar XML (eXtensible Markup Language) o los servicios Web. Sólo que entonces se hacía referencia a ella a través de términos como "modularidad", "programación orientada a objetos", "componentes reutilizables" o "interfaces de programación de aplicaciones". Y, aunque ninguno de dichos conceptos es idéntico a SOA, sí involucran algunos aspectos de ella.
SOA es un método para diseñar, desarrollar, desplegar y administrar partes de lógica computacional (servicios) al interior de una red. Se trata de una manera de estructurar las aplicaciones, de organizar la infraestructura de TI y de estandarizar las funcionalidades de negocios. Aunque suele asociarse a SOA con XML y los servicios Web (utilizando SOAP - Simple Object Access Protocol y WSDL - Web Services Description Language), se trata en ambos casos de referencias a las implementaciones más recientes y reconocidas.
A juicio de Gartner, SOA podría comprenderse también como una"arquitectura orientada a interfaces", ya que provee una relación entre servicios y consumidores de servicios, los dos lo suficientemente amplios como para representar una función de negocios completa.
Interoperabilidad y Servicios Web
Al contrario de las arquitecturas orientadas a objetos, SOA está formada por servicios de aplicación con acoplamiento débil y altamente interoperable. También se diferencia de una arquitectura cliente/servidor tradicional en que está orientada a procesos y enfocada al cambio. De esta forma, gracias a una arquitectura SOA las empresas pueden reconfigurar rápidamente sus recursos de TI sin necesidad de realizar una integración profunda, lo cual les permite liberar recursos para abrir espacio a la innovación.
Si bien, como está dicho, SOA no es un concepto nuevo, hoy, gracias a los servicios Web -los cuales se basan en estándares incluidos en las plataformas y aplicaciones de la mayor parte de los proveedores-, se ha revitalizado su despliegue, facilitando el alineamiento entre las áreas de TI y de negocios.
Un elemento importante, especialmente si se considera a SOA como estrategia de integración y modelado de procesos, es ESB (Enterprise Service Bus). Éste corresponde a un conjunto de productos independientes de la infraestructura que facilitan el enrutamiento de datos y la orquestación de procesos. La orquestación es un concepto que hace referencia a procesos que van secuencializando la ejecución de servicios según una lógica de negocio predefinida.
Virtudes y Desafíos de SOA
Si hubiese que reducir a dos las virtudes de SOA en el ámbito de las TI, la primera de ellas sería, sin duda, la capacidad de reutilización a gran escala del software, lo cual tiene consecuentes ventajas en calidad, costos y facilidad de despliegue de aplicaciones. Por otro lado, un segundo factor está dado por los múltiples beneficios asociados a la independencia que permite SOA entre las aplicaciones, la infraestructura y plataforma tecnológica.
Por el lado del negocio, los beneficios de SOA se traducen en convertir los procesos en servicios compartidos con un menor costo de mantenimiento, mientras se incrementa la adaptabilidad general de la organización. Con esta arquitectura, además, las empresas pueden mejorar su capacidad de respuesta ya que pueden responder a las demandas variables de sus clientes, socios y empleados desplegando rápidamente nuevos servicios.
Pero no todo es sencillo con SOA, ya que se trata de una evolución y, como tal, involucra cambios en la gestión tecnológica y empresarial para concretar sus ventajas. Como sucede siempre con los cambios se generan "ruidos", por eso no es extraño que muchas organizaciones no puedan alcanzar fácilmente los objetivos trazados con su estrategia SOA. De hecho, Gartner considera que un 70% de las organizaciones de TI no alcanzarán el éxito en sus primeros intentos de trabajo con una arquitectura orientada al servicio.
Entre otros problemas, la consultora señala que se dan fallas entre la sincronización de las necesidades del negocio y las capacidades tecnológicas, además de otras, como las que se generan por la carencia de una implementación piloto que demuestre claramente las ventajas de la inversión a la dirección de las empresas. Al mismo tiempo, se pueden enfrentar otros obstáculos similares si no se dispone de un plan diseñado en fases para la implementación de esta arquitectura, existiendo también otros desafíos de corte más técnico, como los asociados al hecho de tener que reemplazar aplicaciones empresariales monolíticas por servicios acoplados de una forma flexible.
Sin embargo, si se considera, como sostiene META Group, que actualmente las grandes empresas destinan, en promedio, más del 40% de sus presupuestos de TI y alrededor de un 50% de sus recursos del área al desarrollo y mantenimiento de aplicaciones, SOA asoma a todas luces como un concepto insoslayable para los negocios actuales.
Esto concuerda con un estudio realizado entre diciembre del 2005 y enero de este año por IDG Research, entre más de mil usuarios de tecnologías en Estados Unidos. Un 52% de ellos afirmó que SOA es una prioridad "crítica" o "alta" en sus planes para los próximos doce meses. Incluso el sondeo detectó que en los últimos nueve meses, la cantidad de despliegues de alcance corporativo de SOA se han duplicado, pasando de un 8% a un 16%, mientras que las compañías que afirman haber creado un grupo de "arquitectura corporativa" pasaron de un 68% a un 83%.