sábado, 13 de abril de 2013

SOA vs REST

SOA vs REST

Siempre en todo ámbito encontramos enfrentamiento y en la tecnología  no existe excepción en este post quiero hablarles de dos en especial REST es un patrón de arquitectura construido bajo verbos simples que se adaptan bastante fácil con HTTP. A diferencia, SOAP es un protocolo de mensajeríbasado en XML (mensajes SOAP con una estructura XML) que puede utilizarse por una variedad de protocolos de transporte, incluso el mismo HTTP.

Ambos fueron tocados durante mis clases en la universidad ambos sirvieron para alimentar mi proyecto y convivieron de manera eficiente.



Una clara comparativa de ambas tecnologias las revisamos a continuacion.

REST
1.- La arquitectura encaja de manera natural con HTTP.
2.- Necesario para clientes donde la capacidad es muy limitada (Escenarios JavaScript)
3.- No hay necesidad de Proxys (como en SOAP) para las conversiones y demás.
4.- Trata con acceso a recursos

REST – SOAP
5.- Operaciones remotas (una de las finalidades de los servicios web)
6.- Acceso a recursos remotos (más de lo anterior)
7.- Interoperable (otra de las finalidades de los servicios web)

SOAP
8.- El cifrado es a nivel de mensaje
9.- Dispone de ruteadores o intermediarios
10.- Reeegularmente (no creo que siempre) el envío de mensajes es confiable.
11.- Políticas de control (Diferentes perfiles)
12.- Basado en acciones

Como pequeño resumen podemos indicar lo siguiente:

Ventajas de REST

  • Está totalmente bajo especificaciones del protocolo HTTP, en donde todo actúa como un recurso, ni siquiera los servicios se escapan, se trata el mensaje igual como si fuera alguna imagen, uno o varios elementos HTML, etc. 
  • No es tan estricto como SOAP, los datos pueden mantenerse estrictamente o de forma desacoplada, mediante la URI.
  • Los recursos pueden consumirse fácilmente desde JavaScript (La mayoría de las aplicaciones que utilizan OpenId o el protocolo OAuth utilizan JavaScript para realizar llamadas con REST, por ejemplo twitter)
  • Los mensajes son bastante ligeros, el rendimiento y la escalabilidad no deberían ser problema y cuando uno está acostumbrado a trabajar en “Internet”, esto es de vida o muerte.
  • REST no se queja, puede utilizar XML o JSON para el formato de los datos.
Desventajas de REST

  • Si se trata de trabajar con objetos fuertemente tipados, tipo =P, en el código de servidor, es algo tedioso incluso difícil, pero esto también depende de otras situaciones.
  • No creo (no lo sé) que funcione bien con aplicaciones de alto rendimiento y basadas en tiempo real. Por ejemplo, algún sistema para ingeniería industrial que arroje constantemente datos y mas datos para generar estadísticas.
Ventajas de SOAP

  • Trabaja bien con datos, los mensajes y las comunicaciones están bien estructurados.
  • Dispone de proxys fuertemente tipados.
  • Funciona sobre diferentes protocolos, no solamente HTTP (como en REST) si no también sobre TCP, NamedPipes, MSMQ, etc. aunque el uso de estos no es tan bueno si se trata de estandarizar en Internet.
Desventajas de SOAP

  • Los mensajes generados por SOAP no se pueden cachear (¿o si?)
  • En JavaScript.. olvídate de SOAP.
Como conclusión no podemos decir que una es mejor que otra ya que ambos se aplican según la necesidad

fuente
http://thanksnetwork.com/2012/10/16/rest-vs-soap/

No hay comentarios.:

Publicar un comentario