Escrito por Beservices

Publicado: (diciembre 2021)   |   Última modificación: (octubre 2022).

¿Qué es SOA? 

La Arquitectura Orientada a Servicios, conocida también como SOA por sus siglas en inglés (Service-Oriented Architectures), es un tipo de arquitectura de software que permite reutilizar sus elementos gracias a las interfaces de servicios que se comunican a través de una red con un lenguaje común. Define la utilización de servicios (programas concretos o tareas con una función específica) para dar soporte a los requisitos de negocio.  

En conclusión, una arquitectura SOA permite integrar los elementos del software que se implementan y se mantienen por separado, permitiendo que se comuniquen entre sí y trabajen de forma conjunta para formar aplicaciones de software en distintos sistemas.  

¿Qué características identifican una arquitectura SOA? 

  • Los servicios son autónomos. Cada servicio SOA se mantiene y desarrolla de forma independiente.  

  • Los servicios son distribuibles. Se pueden ubicar en cualquier parte sobre la red siempre que este soporte los protocolos de comunicación requeridos.  

  • Los servicios se pueden descomponer. Cada servicio SOA es independiente de los otros y puede ser remplazado o actualizado sin romper con las aplicaciones que conecta.  

  • Los servicios no comparten clases. En una arquitectura SOA, los servicios comparten y contratos y esquemas cuando se comunican, no clases internas.  

  • Los servicios son compatibles con políticas. Entiendo políticas como la definición de características como el transporte, protocolo o seguridad.  

¿En qué sé diferencian SOA y los Microservicios? 

  1. Compartición de componentes:  Mientras que los Microservicios minimizan el uso compartido de componentes a través de la red, SOA le saca todo el partido que puede. Algo que impacta en la latencia del entorno, haciendo que los sistemas basados en SOA sean más lentos.

  2. Granularidad del servicio: En una arquitectura SOA, los servicios son más versátiles en cuanto a su funcionalidad empresarial, mientras que los Microservicios se componen de servicios muy especializados y con un propósito único. 

  3. Coordinación: En una arquitectura SOA, es necesario coordinar con varios grupos para atender a las solicitudes de negocio, mientras que los Microservicios generalmente no presentan coordinación entre sí. 

  4. Middleware:  Los microservicios trabajan con una capa de API creada entre los servicios y consumidores de servicios, mientras que en una arquitectura SOA utiliza el Middleware para su comunicación, hecho que le agrega capacidades adicionales como la mediación y enrutamiento, mejora de mensajes, mensajes y transformación de protocolos, etc. 

  5. Interoperabilidad heterogénea:  Si nuestro objetivo es lograr la integración de varios sistemas utilizando diferentes protocolos en un entorno heterogéneo, la mejor opción es un enfoque SOA. Sin embargo, será preferible recurrir a un enfoque de microservicios si todos los servicios pueden quedar expuestos y se deba usar el mismo protocolo de acceso remoto, ya que con Microservicios intentamos simplificar el patrón de arquitectura al reducir el número de opciones de integración.  

¿Cuáles son los beneficios de implementar una arquitectura SOA en una empresa? 

  1. Incrementa la alineación entre negocio y tecnología.  La perspectiva SOA promueve el trabajo cooperativo entre los equipos de negocio y TI, a diferencia de modelos más tradicionales para la gestión de proyectos, que se basan en unidades de negocio que expresan sus necesidades a las áreas de TI para su implementación.  

  2. Incrementa el ROI de las iniciativas TI.  Un enfoque SOA permite crear soluciones en menor tiempo y con menos coste, ya que, por ejemplo, un enfoque SOA plantea que las funcionalidades comunes al negocio deben ser reutilizables: la funcionalidad se desarrolla una vez y es reutilizada para lo que se necesite.  

  3. Incrementa la agilidad organizacional.  La cooperación entre los equipos de TI y de negocio, permite aprovechar y crear oportunidades de mercado de una forma más ágil.  

  4. Reducimos la carga operativa de TI: Disminuimos el coste de mantenimiento, la administración y el esfuerzo de desarrollo con la estandarización y normalización de los servicios.  

  5. Incrementamos la interoperabilidad. Promovemos una comunicación transparente y sin intermediarios, lo que permite reducir los esfuerzos de integración en los diferentes sistemas del entorno de TI.  

  6. Incrementa la asociación: Mejora la capacidad de distribuir y organizar la empresa en unidades lógicas que puedan funcionar de manera independiente, siempre y cuando, cumplan con las mismas políticas y lineamientos de gobierno, permitiendo así que la compañía y sus departamentos evolucionen ágilmente. 

Si en vuestra empresa estáis valorando implementar un proyecto para la adopción de una arquitectura SOA o cualquier otro que implique vuestra infraestructura TIC, en beServices os podemos ayudar en su implementación y puesta en marcha. Contacta con nosotros y nuestros asesores se pondrán en contacto lo antes posible.