sábado, 11 de agosto de 2012

SOAP O REST?

Una de las mayores interrogantes que se puede tener al desarrollar una aplicación web, es saber qué tipo de servicio elegir, y en qué casos se debe elegir uno o otro. Específicamente, para este caso se expondrá las diferencias entre SOAP y REST

¿Qué es un servicio SOAP y un servicio REST?

 - SOAP (Simple Object Access Protocol) es un protocolo estándar que define cómo dos objetos en diferentes procesos pueden comunicarse por medio de intercambio de datos XML
 - Las operaciones son definidas como puertos WSDL
 - Dirección única para todas las operaciones
 - Componentes fuertemente acoplados
 - Múltiples instancias del proceso comparten la misma operación



REST es un estilo de arquitectura de software que se centra en los estándares HTTP y XML
 - Paradigma creado en la tesis doctoral de Roy Fielding en 2000, quien es uno de los principales autores de la especificación de HTTP.
 - REST se refiere únicamente a una colección de principios para el diseño de arquitecturas en red que se centran en como los recursos son definidos y diseccionados.
 - El objetivo principal es transmitir un conjunto de datos de un domino sobre el protocolo HTTP sin la necesidad de contar con una capa adicional, como hace SOAP.
 - Las operaciones se definen como mensajes
 - Una dirección única para cada instancia del proceso
 - Componentes débilmente acoplados



¿Dónde es mejor utilizar SOAP?
 - Cuando se establece un contrato formal donde se describe todas las funciones de la interfaz.  El lenguaje WSDL(Web Services Description Language) nos permite definir cualquier detalle.
 - Cuando es necesario que la arquitectura aborde requerimientos complejos no funcionales.Por ejemplo en el uso de transacciones, seguridad o direccionamiento, casos donde es necesario mantener la información contextual y el estado.
 - En casos donde la arquitectura necesita manejar un procesado asíncrono debido al tiempo que necesita para realizar una parte del procesado de la petición.

¿Dónde es mejor utilizar REST?
 - Cuando el servicio web no necesita tener estado.
 - Cuando buscamos mejorar el rendimiento.
 - En momentos donde el productor como el consumidor conocen el contexto y contenido que van a intercambiar.
 -  REST es muy útil para el consumo como servicio web en dispositivos móviles donde tenemos escasos recursos.

Una de las mejores ventajas de los servicios REST sobre SOAP es que no existe necesidad de actualizar la referencia en el cliente si se modifica el servicio como se hace en SOAP. Esto es de vital importancia en entornos donde los servicios cambian mucho, o sea, en los servicios basados en SOAP siempre que se haga cambios en algún servicio es necesario actualizar todos los clientes que lo consuman.
Por otro lado, lo más destacable que tienen los servicios SOAP, son todos los estándares por los que está respaldado, en especial los que tienen que ver con seguridad (WS-*).

No hay comentarios:

Publicar un comentario