La Arquitectura Orientada a Servicios (SOA en inglés), es un concepto de arquitectura de software que define la utilización de servicios para dar soporte a ciertos requisitos del negocio. Esta arquitectura permite crear sistemas altamente escalables, que pueden ayudar a las organizaciones a impulsar el rendimiento y, al mismo tiempo, reducir costos de TI y mejorar la flexibilidad en los procesos del negocio.
SOA proporciona una metodología y un marco de trabajo para documentar las capacidades de negocio y da soporte a las actividades de integración y consolidación de los datos de cualquier organización.
SOA es un estilo arquitectónico para la construcción de aplicaciones de software en base a servicios disponibles. Entre sus principales características destacan:
SOA permite la reutilización de activos existentes para nuevos servicios que se pueden crear a partir de una infraestructura de TI que ya se había diseñado. De esta forma, permite a las empresas optimizar la inversión por medio de la reutilización que, además, conlleva otra ventaja: la interoperabilidad entre las aplicaciones y tecnologías heterogéneas.
La arquitectura orientada a servicios es fuente de ventaja competitiva ya que, por su configuración:
Aumenta la eficiencia en los procesos.
Amortiza la inversión realizada en sistemas.
Reduce costes de mantenimiento.
Fomenta la innovación orientada al desarrollo de servicios.
Simplifica el diseño, optimizando la capacidad de organización.
La arquitectura orientada a servicios es cambio en sí misma y precisamente éste es el motor que impulsa a las empresas a buscar beneficiarse de sus atributos persiguiendo:
Integración con los sistemas heredados.
Reordenamiento de responsabilidades a través de reorganizaciones empresariales.
Modernización de los sistemas obsoletos por razones económicas, funcionales o técnicas.
Adquisición o decomiso de productos de software.
Aunque también sucede, en muchos de los casos, que lo que se busca es la adaptación a los cambios del entorno de mercado, o se decide implementar SOA como reacción ante las acciones de la competencia, o como medida para optimizar la inversión en IT y minimizar costes asociados.
A pesar de que el enfoque tradicional a la hora de abordar el diseño de los sistemas distribuidos se basaba en comunicaciones de red, seguridad, gestión transaccional, glosario y ubicación, con la arquitectura orientada a servicios es distintos, las preocupaciones se centran en dos aspectos:
A la hora de evaluar la arquitectura construida hay que fijarse en:
Sin embargo, ninguna de estas cuestiones resulta tan crítica como la gobernabilidad, un aspecto que debe tomarse en consideración mucho antes que el propio diseño, de forma previa a la implementación. Al tratarse de una estrategia de arquitectura, SOA implica mucho más que la simple construcción de software.
La creación de una arquitectura basada en una cartera de servicios requiere de una metodología de desarrollo centralizado y única, de una buena documentación de servicios y de personal cualificado. También hace falta la motivación suficiente por parte de la organización y quienes se encargan de la toma de decisiones para que den vía libre a la interacción con los principales procesos de negocio de la compañía. La comprensión de los procesos y la disposición son las claves de la transformación de un negocio en base a SOA y derivan de atributos de su gobernabilidad de los que no se puede prescindir para tener éxito en un proyecto de estas características.