Servicios Web
Servicios Web
Los Servicios Web se pueden implementar mediante dos tecnologías: SOAP (Simple Object Access Protocol) y REST (REpresentational State Transfer).
SOAP
SOAP es un protocolo de acceso a servicios web que define un protocolo de comunicación basado en una especificación de intercambio de mensajes XML. WSDL (Web Services Description Language) permite definir un servicio web basado en SOAP.
SOAP se ha utilizado ampliamente como el estándar de facto para construir servicios web, pero su complejidad ha llevado a emplear REST en su lugar.
REST
REST describe un conjunto de principios de arquitectura por los que los datos se pueden transmitir sobre Internet. Hoy en día es una arquitectura muy popular para crear APIs.
Comparación SOAP y REST
SOAP | REST | |
---|---|---|
Concepto | Ofrece los datos como servicios (verbos + nombres). | Ofrece los datos como recursos (nombres). |
Por ejemplo, getUser . |
Por ejemplo, user . |
|
Ventajas | Sigue un enfoque empresarial formal. | Sigue la filosofía de la Web abierta. |
Funciona sobre cualquier protocolo de comunicación, incluso de forma asíncrona. | Es relativamente fácil de implementar y mantener. | |
La información sobre los objetos se comunica a los clientes. | La comunicación no está controlada por una sola entidad. | |
Tanto seguridad como autorización son parte del protocolo. | Separa claramente las implementaciones del cliente y del servidor. | |
Se puede describir completamente usando WSDL. | La información se puede almacenar por el cliente para evitar múltiples llamadas. | |
Se pueden devolver datos en múltiples formatos (JSON, XML, etc.) | ||
Inconve- nientes | Gasta mucho ancho de banda con la comunicación de metadatos. | Solo funciona encima del protocolo HTTP. |
Difícil de implementar e impopular entre desarrolladores Web y móvil. | Difícil de hace cumplir la autorización y la seguridad. | |
Cuándo usarlo | Cuando los clientes necesitan acceder a objetos disponibles en los servidores. | Cuando clientes y servidores operan en un entorno Web. |
Cuando hay que cumplir un contrato formal entre cliente y servidor. | Cuando no es necesario comunicar información sobre los objetos al cliente. | |
Cuándo no usarlo | Cuando se quiera que la mayoría de desarrolladores puedan usar la API de forma sencilla. | Cuando haya que cumplir un contrato estricto entre cliente y servidor. |
Cuando el ancho de banda sea limitado. | Al realizar transacciones que impliquen múltiples llamadas. | |
Casos de uso | Servicios financieros. | Servicios de redes sociales. |
Pasarelas de pago. | Redes sociales. | |
Servicios de telecomunicaciones. | Servicios Web. | |
Servicios móviles. | ||
Conclusión | Usar SOAP para gestionar operaciones transaccionales siempre que todos los posibles clientes están de acuerdo con esta tecnología. | Usar REST para adoptar APIs a gran escala o si la API tiene como objetivo aplicaciones móviles. |
Referencias
- Dzone
- Da14
- JavaScript in Plain English
SOA Governance in Action. REST and Web Service architectures
(2012). Jos Dirksen. ManningApplied SOA. Service-Oriented Architecture and Design Strategies
(2008).
Mike Rosen, Boris Lublinsky, Kevin T. Smith, Marc J. Balcer. Wiley
Publishing, Inc.Pro RESTful APIs
(2017). Sanjay Patni. Apress