soap que es y como funciona el protocolo de acceso a objetos simples

SOAP todo lo que necesitas saber sobre el protocolo de acceso a objetos simples

El acrónimo SOAP, que significa Protocolo de Acceso Simple a Objetos, es una norma que establece la manera en que dos objetos de distintos procedimientos pueden intercambiar datos a través del uso de XML. Fue desarrollado a partir del protocolo XML-RPC, creado en 1998 por Dave Winer. Este protocolo fue elaborado en colaboración por empresas como Microsoft e IBM, y en la actualidad es respaldado por la W3C. Es uno de los protocolos utilizados en los servicios en línea.

Historiaeditar

En la década de los 90, se despertó un gran interés por lograr que diferentes máquinas pudieran comunicarse entre sí en sistemas distribuidos. En las aplicaciones previas, era suficiente con que existiera una comunicación entre los programas en un mismo ordenador.

Fue en 1990 cuando se crearon dos modelos de comunicación: COM y CORBA. El primero, Component Object Model, fue desarrollado por Microsoft, mientras que el segundo, CORBA, fue creado por el Object Management Group. Sin embargo, ambos tenían una gran limitación: solo podían ser utilizados entre dos máquinas que soportaran COM o CORBA, respectivamente. Esto hacía que no fueran fácilmente interoperables.

Posteriormente, Microsoft y Sun lanzaron DCOM y RMI (Remote Method Invocation), respectivamente, con el objetivo de permitir la conexión entre ordenadores a través de la red. No obstante, seguían presentando el mismo problema de interoperabilidad.

Fue entonces cuando en 1998, Dave Winer, Don Box, Bob Atkinson y Mohsen Al-Ghosein de Microsoft diseñaron SOAP como un protocolo para acceder a objetos. Actualmente, la especificación de SOAP es mantenida por el XML Protocol Working Group del World Wide Web Consortium. Este protocolo ha sido una solución eficiente para lograr la comunicación entre distintas máquinas en sistemas distribuidos.

Desarrollo de un sistema SOAP en línea

Las bibliotecas usadas junto a frameworks específicos para el desarrollo de sistemas web facilitan la creación rápida y eficiente tanto de servicios web SOAP como de sus clientes. Estas herramientas incluyen soporte para implementar el protocolo SOAP y ofrecen una variedad de opciones para diferentes escenarios de uso, además de simplificar la programación a través de interfaces sencillas.

Es importante destacar que la utilización de estas bibliotecas y frameworks es especialmente beneficiosa si se genera un fichero WSDL que facilita la comunicación de las características del servicio web a sus clientes.

Procesamiento de mensajes

Una aplicación SOAP debe seguir un orden específico para procesar mensajes:

  1. Identificar y seleccionar las partes dirigidas a la aplicación SOAP.
  2. Procesar de manera adecuada las partes obligatorias identificadas en el paso 1. Si no son aceptadas, se descarta el mensaje.
  3. Si la aplicación SOAP no es el destino final, eliminar todas las partes identificadas en el paso 1 antes de reenviar el mensaje.

Es importante tener en cuenta que este protocolo es altamente adaptable y permite extensiones en su funcionamiento.

Qué es SOAP

La comunicación en Internet se basa en una serie de protocolos, como HTTP, HTTPS, FTP y TCP, siendo SOAP esencial para los servicios web. Estos servicios permiten a un dispositivo hacer uso de funciones de un servidor a través de una interfaz.

Servicios esenciales como buscadores, tiendas en línea y otros en Internet, funcionan a través de estas interfaces y SOAP es uno de los protocolos que lo hacen posible.

En sus inicios, SOAP era conocido como "Simple Object Access Protocol" por sus siglas en inglés. Sin embargo, en la actualidad se utiliza como nombre propio, ya que no cumple totalmente con su definición (no es simple ni accede a objetos).

Desde los años noventa, SOAP se ha utilizado para facilitar la comunicación entre un cliente, como un navegador de Internet, y los servicios de un servidor. Para ello, el cliente debe enviar una solicitud a la API y el framework de SOAP se encarga de definir su formato.

Una ventaja de SOAP es que permite incluir datos específicos de la aplicación en la solicitud, lo que permite diferentes aplicaciones a través de servicios web. Esto es posible, incluso si no tienen la misma sintaxis, gracias a SOAP.

Característicaseditar

SOAP es un paradigma de mensajería utilizado para formar protocolos más completos en aplicaciones. Se basa en mensajería sin estado y puede formar la base de una pila de protocolos en los web services. Este protocolo, basado en XML, está compuesto por tres partes principales:

Un ejemplo de uso del modelo SOAP sería enviar un mensaje a un sitio web para realizar una búsqueda de precio en una base de datos. El mensaje incluiría los parámetros necesarios para la consulta. El web service responderá con un documento XML que contendrá la información solicitada, como precios, ubicación o características. Con la respuesta en un formato estandarizado y analizable, es posible integrar directamente en un sitio web o aplicación externa.

La arquitectura de SOAP se compone de varias capas de especificaciones: MEP (Patrones de Intercambio de Mensajes) para el formato del mensaje, enlaces de protocolo de transporte, modelo de procesamiento de mensajes y capa de extensibilidad de protocolo. SOAP es el sucesor de XML-RPC, aunque incorpora el transporte y la neutralidad de la interacción de otros modelos (probablemente de WDDX).

Estructura del mensajeeditar

Un mensaje SOAP es un documento XML común que sigue una estructura establecida por la especificación del protocolo. Esta estructura está formada por las siguientes partes:

Modelo de procesadoeditar

El modelo de procesado de SOAP se basa en un sistema distribuido, en el cual intervienen varios nodos. En una situación básica, estos nodos pueden ser SOAP Sender y SOAP Receiver, encargándose de la comunicación entre ellos.

A pesar de esto, la especificación establece diferentes tipos de nodos, dependiendo del papel que desempeñan en la transmisión del mensaje. Cada uno de estos nodos puede actuar con uno o varios roles, identificados por una URI que se conoce como el nombre del rol. Estos roles se mantienen constantes durante el envío del mensaje, como se especifica en la sección de procesado individual de mensajes.

Además, es posible que una aplicación cree protocolos de comunicación más complejos, utilizando SOAP como capa base. En este caso, puede definir sus propios roles según sus necesidades específicas.

La especificación de SOAP establece una serie de normas sobre cómo deben ser procesados los mensajes, detallando una secuencia de pasos que las implementaciones del protocolo deben seguir. Estos pasos se pueden encontrar en la sección 2.6 de la especificación de W3C.

Ventajas y desventajaseditar

La comunicación mediante SOAP se realiza mayormente a través del patrón petición-respuesta, en el que se establece un remitente SOAP y un destinatario final SOAP. Esta forma de uso es común cuando los mensajes SOAP tienen un formato predefinido y el objetivo es enviar una solicitud y recibir una respuesta.


Sin embargo, en algunas ocasiones este patrón no es suficiente y se hace necesario llevar a cabo un intercambio de múltiples mensajes entre los nodos. Para ello, la W3C ha definido dos tipos de intercambios de mensajes SOAP que permiten establecer una conversación:


  • Intercambio asíncrono: En este tipo de comunicación, se envía una petición y se espera una respuesta en un momento diferente, sin bloquear el envío de mensajes adicionales. De esta forma, se permite una mayor flexibilidad en la secuencia y el tiempo de los mensajes, aunque puede generar una mayor complejidad en la implementación.
  • Intercambio sincrónico: Aquí, los mensajes SOAP se intercambian de forma secuencial, con una respuesta para cada petición realizada. Aunque esto puede generar una mayor simplicidad en la implementación, puede limitar la flexibilidad en la secuencia de mensajes.

Artículos relacionados