SOAP vs REST
¿SOA o REST?¿Que conviene?, antes de ver las diferencias aclaremos algunos conceptos. Un error muy común que puede hacer que distorsione por completo tu entendimiento con respecto a los Web Services y es que SOA no es igual que SOAP y tener Web Services no significa que tenemos SOA. Los terminos que tenemos que tener en claro son:
- SOA (Service-Oriented Architecture) es un tipo de Arquitectura de Software y no una
tecnología o producto. SOA es una arquitectura que se base en la integración de aplicaciones
- REST (Representational State Transfer) o Transferencia de Estado Representacional es una arquitectura para proporcionar estándares entre los sistemas informáticos en la web, lo que facilita la comunicación entre los sistemas. Los sistemas que cumplen con REST, a menudo llamados sistemas RESTful, se caracterizan por la forma en que son apátridas y separan las preocupaciones del cliente y el servidor. Veremos qué significan estos términos y por qué son características beneficiosas para los servicios en la Web.
- SOAP (Simple Object Access Protocol) mejor conocimos simplemente como Web Services, son servicios que basan su comunicación bajo el protocolo SOAP el cual este definido por Wikipedia como “protocolo estándar que define cómo dos objetos en diferentes procesos pueden comunicarse por medio de intercambio de datos XML”. Por lo tanto, queda claro que la comunicación se realiza mediante XML, lo cual nos debe de quedar muy claro, pues es en este aspecto donde radican las principales diferencias contra REST. Los servicios SOAP funcionan por lo general por el protocolo HTTP que es lo más común cuando invocamos un Web Services, sin embargo, SOAP no está limitado a este protocolo, si no que puede ser enviado por FTP, POP3, TCP, Colas de mensajería (JMS, MQ, etc). Pero como comentaba, HTTP es el protocolo principal.
SOAP solo soporta formato XML, por lo que cuando lo que necesitamos es flexibilidad y un performance superior, podemos optar por REST. Tengo otro artículo donde hablo de XML vs JSON por si quieres profundizar en el tema.
tanto SOAP como REST siguen siendo muy útiles en condiciones diferentes, incluso existen aplicaciones que ya exponente todas sus API’s en SOAP y REST para asegurar que la integración con ellas sea lo más natural posible sin importar la aplicación con la que se estén integrado.
Cabe mencionar que REST ha estado tomando fuerza a una velocidad impresionante y más con la llegada de NodeJS y las bases de datos NoSQL como MongoDB. Sin embargo, el hecho de que REST tome fuerza, no significa que le esté quitando protagonismo a SOAP, pues recordemos que con la llegada del Internet de las cosas (IOT) cada vez se conectan más dispositivos a internet que necesitan ser integrados (una gran oportunidad para REST) y es donde REST está tomando la delantera.
La verdad es que el futuro no se ve claro, pero lo que, si es que a pesar de que REST siga tomando fuerza, SOAP sigue siendo una tecnología muy robusta y extremadamente utilizada por lo que una cosa si es segura, a SOAP todavía le queda un largo camino.
A pesar de todo este análisis, lo importante es tu qué opinas, ¿cuál crees que sea el futuro?, ¿crees que REST poco a poco matara a SOAP? O ¿simplemente SOAP seguirá funcionando a la par con REST?.
En informática un Bus de Servicio Empresarial (ESB por sus siglas en inglés) es un modelo de arquitectura de software que gestiona la comunicación entre servicios web. Es un componente fundamental de la Arquitectura Orientada a Servicios.
Un ESB generalmente proporciona una capa de abstracción construida sobre una implementación de un sistema de mensajes de empresa que permita a los expertos en integración explotar el valor del envío de mensajes sin tener que escribir código.
Referencias:
https://www.youtube.com/watch?time_continue=1&v=7s_S5Hkm7z0
https://www.oscarblancarteblog.com/2017/03/06/soap-vs-rest-2/
https://www.youtube.com/watch?v=L1tM0tMJdzY
http://www.epidataconsulting.com/tikiwiki/tiki-read_article.php?articleId=44&highlight=SOA
Comentarios