El valor de la gestión de datos

¿Qué es SOA y cuál es su diferencia con los Microservicios?

Posted on Sat, Aug 5, 2017

Cuando oyes por primera vez hablar de MSA o arquitecturas de microservicios, lo primero que intentas averiguar es si es muy diferente a lo que es SOA. El paradigma SOA deja bastante espacio a la interpretación y, por lo tanto, algunas de las diferentes definiciones de lo que es SOA podrían ser interpretadas de forma similar a los microservicios.


que_es_soa.jpg

Créditos fotográficos: kentoh

Los microservicios son uno de los métodos de desarrollo de software que más ha crecido en los últimos tiempos. Esencialmente, una arquitectura de microservicios es un método para desarrollar aplicaciones de software como un conjunto de servicios modulares desplegables de forma independiente, en los que cada servicio ejecuta un proceso único y se comunica a través de un mecanismo claro y bien definido para servir a un objetivo del negocio.

 

Descárgate aquí la guía

 

Algunas personas dicen que MSA no es más que SOA bien hecho. Incluso otras personas indican que los microservicios no son más que un subconjunto de SOA. Lo cierto es que a primera vista hay bastantes similitudes entre MSA y la definición de qué es SOA.

 

¿Qué es SOA?: similitudes y puntos de divergencia con Microservicios

La forma más sencilla de entender qué es SOA es imaginando un patrón de arquitectura de software, cuyos componentes de aplicación proporcionan servicios a otros componentes, a través de un protocolo de comunicaciones que emplea una red. Estas comunicaciones pueden variar en complejidad e ir, desde la simple transferencia de datos a la coordinación de varios servicios para establecer su conexión.

Por su parte, los microservicios son también un patrón de arquitectura de software, aunque, en este caso, está construido en base a aplicaciones complejas y los pequeños procesos independientes que las componen, comunicándose entre sí mediante APIs agnósticas del lenguaje.

Y hasta aquí llegan las similitudes entre ambos. Quienes conocen qué es SOA, saben que existen varias diferencias con MSA, entre las que cabe destacar las siguientes:

  1. Compartición de componentes: si MSA minimiza el uso compartido de componentes a través de un contexto limitado, SOA le saca todo el partido, algo que, por otra parte, aumenta las latencias, haciendo que los sistemas basados en este tipo de arquitectura sean más lentos.
  2. Granularidad de servicio: SOA ofrece servicios más versátiles en cuanto a su funcionalidad empresarial, mientras que Microservices se compone de servicios de propósito único y muy especializados.
  3. Coordinación: los Microservicios generalmente carecen de coordinación entre sí, o si la presentan es mínima. Por el contrario, en SOA, es necesario coordinar con varios grupos para atender a las solicitudes de negocio.
  4. Middleware: esta opción de mensajería es la empleada por SOA, que ofrece en base a ella una serie de capacidades adicionales que no se encuentran en MSA, incluyendo mediación y enrutamiento, mejora de mensajes, mensajes y transformación de protocolos. Por su parte, los microservicios trabajan con una capa de API creada entre los servicios y los consumidores de servicios.
  5. Interoperabilidad heterogénea: SOA promueve la propagación de múltiples protocolos heterogéneos a través de su componente middleware de mensajería, por eso, esta opción debe tenerse en cuenta en los casos en que el objetivo sea lograr la integración de varios sistemas utilizando diferentes protocolos en un entorno heterogéneo. Sin embargo, será preferible recurrir a Microservices cuando todos los servicios puedan quedar expuestos y se deba usar el mismo protocolo de acceso remoto, ya que MSA intenta simplificar el patrón de arquitectura al reducir el número de opciones de integración.

 

New Call-to-action

Topics: SOA