Servicios web: SOAP, WSDL y REST, fundamentos y diferencias

InformáticaActualizado el 4,36 KB

Resumen

El documento explica los fundamentos de los servicios web. Describe el protocolo SOAP, su estructura de mensajes (Envelope, Header y Body) y sus mecanismos de seguridad mediante WS-Security. Después presenta WSDL como contrato que describe un servicio y, por último, la arquitectura REST y su principio de comunicación sin estado.

Puntos clave

  • SOAP es un protocolo estándar que intercambia datos en formato XML, es independiente del lenguaje y puede usar transportes como HTTP o SMTP.
  • Un mensaje SOAP se compone de Envelope (elemento raíz), Header (opcional) y Body (obligatorio).
  • WS-Security proporciona autenticación, integridad y confidencialidad en los mensajes SOAP.
  • WSDL es un documento XML que actúa como contrato entre cliente y servidor y describe operaciones, tipos de datos y ubicación del servicio.
  • Los elementos principales de WSDL son Definitions, Types, Message, PortType, Binding y Service.
  • REST es un estilo de arquitectura, no un protocolo; usa los métodos HTTP y recursos identificados por URI, habitualmente con JSON.
  • Un servicio RESTful es stateless: cada petición debe contener toda la información necesaria para ser procesada.

Ponte a prueba

Protocolo SOAP (Simple Object Access Protocol)

SOAP es un protocolo estándar que determina cómo dos objetos en procesos diferentes se comunican mediante el intercambio de datos en formato XML. Una de sus principales características es que es independiente del lenguaje de programación y otorga una gran flexibilidad, ya que puede operar sobre diversos protocolos de transporte como HTTP, SMTP, entre otros. Esto facilita la comunicación entre aplicaciones que se ejecutan en diferentes entornos y plataformas.

Estructura de un Mensaje SOAP

Un mensaje SOAP es un documento XML que consta de las siguientes partes:

  • Envelope (Sobre): Es el elemento raíz que encapsula todo el mensaje y define el espacio de nombres XML utilizado.
  • Header (Encabezado): Es un elemento opcional que contiene información adicional sobre el mensaje, como datos de autenticación o enrutamiento.
  • Body (Cuerpo): Es un elemento obligatorio que contiene la información específica de la llamada o la respuesta del servicio.

Seguridad en SOAP

Para la seguridad, utiliza el estándar WS-Security, que proporciona mecanismos de autenticación, integridad y confidencialidad a los mensajes SOAP. Esto permite implementar funcionalidades avanzadas como firmas digitales, cifrado de datos y autenticación basada en tokens.

WSDL (Web Services Description Language)

WSDL es un estándar basado en XML que se utiliza para describir la funcionalidad que ofrece un servicio web. Funciona como un contrato entre el cliente y el servidor, especificando cómo interactuar con el servicio, qué operaciones están disponibles y qué formato de datos se espera.

Componentes Principales de un Documento WSDL

  • Definitions: Es el elemento raíz del documento. Define el espacio de nombres (namespace) y contiene todos los demás elementos.
  • Types: Define los tipos de datos (esquemas XML) que se utilizan en los mensajes del servicio.
  • Message: Describe los datos que se intercambian en las operaciones, definiendo las partes que componen un mensaje.
  • PortType: Define un conjunto de operaciones soportadas por el servicio. Cada operación se asocia a mensajes de entrada y salida.
  • Binding: Especifica los detalles técnicos de la comunicación para un PortType, incluyendo el protocolo de transporte (ej. SOAP sobre HTTP).
  • Service: Proporciona la información sobre la ubicación del servicio (endpoint) y agrupa las definiciones de los puertos.

Ventajas de WSDL

  • Permite la interoperabilidad entre diferentes lenguajes de programación y plataformas.
  • Facilita la integración automática de servicios y reduce los errores manuales.
  • Proporciona una descripción detallada y estructurada del servicio, lo que simplifica su comprensión y uso por parte de los desarrolladores.

Arquitectura REST (Representational State Transfer)

REST no es un protocolo, sino un estilo de arquitectura de software para sistemas distribuidos, como la World Wide Web. En la arquitectura REST, la comunicación se basa en un modelo cliente-servidor, donde el servidor envía una respuesta a cada petición del cliente. Las peticiones se realizan utilizando los métodos estándar de HTTP (GET, POST, PUT, DELETE, etc.) y los recursos se identifican de forma única mediante una URI (Uniform Resource Identifier).

Los datos intercambiados suelen estar en formatos ligeros y legibles como JSON (el más común), aunque también se puede utilizar XML, PDF, etc.

Principio Clave: Stateless (Sin Estado)

Un servicio RESTful es stateless, lo que significa que el servidor no mantiene el estado de la aplicación ni guarda información de la sesión del cliente entre peticiones. Cada solicitud del cliente debe ser independiente y contener toda la información necesaria para que el servidor pueda procesarla. Esta característica hace que los servicios REST sean más simples, escalables y fáciles de mantener.

Descargar

PDF Word HTML

Preguntas frecuentes

¿Qué es SOAP?

SOAP (Simple Object Access Protocol) es un protocolo estándar que determina cómo dos objetos en procesos diferentes se comunican mediante el intercambio de datos en formato XML. Es independiente del lenguaje de programación y puede operar sobre protocolos como HTTP o SMTP.

¿Qué partes tiene un mensaje SOAP?

Un mensaje SOAP es un documento XML formado por Envelope, que es el elemento raíz; Header, que es opcional y contiene información adicional como autenticación o enrutamiento; y Body, que es obligatorio y contiene la información de la llamada o respuesta.

¿Qué es WSDL?

WSDL (Web Services Description Language) es un estándar basado en XML que describe la funcionalidad de un servicio web. Funciona como un contrato entre cliente y servidor, especificando operaciones disponibles y formato de datos esperado.

¿Qué significa que un servicio REST sea stateless?

Significa que el servidor no mantiene el estado de la aplicación ni guarda información de sesión del cliente entre peticiones. Cada solicitud debe ser independiente y contener toda la información necesaria para procesarla.

Ponte a prueba

Tarjetas de repaso

Pulsa una tarjeta para ver la respuesta.

Test

1. ¿Qué tipo de formato de datos utiliza SOAP para intercambiar información?
2. ¿Cuál de las siguientes partes de un mensaje SOAP es obligatoria?
3. ¿Qué estándar se utiliza en SOAP para la seguridad?
4. ¿Qué elemento de WSDL define el espacio de nombres y contiene todos los demás elementos?
5. ¿Qué elemento de WSDL proporciona la ubicación del servicio (endpoint)?
6. ¿REST es un protocolo o un estilo de arquitectura?
7. ¿Qué formato de datos es el más común en REST?
8. ¿Qué significa que un servicio RESTful sea stateless?

Preguntas generadas con IA a partir del documento: comprueba las respuestas con el texto.