2010-03-11 41 views
8

¿Cuál es la diferencia entre XML y SOAP? He estado leyendo algunos artículos introductorios sobre SOAP, pero estoy muy confundido. Esta es la primera vez que leo sobre SOAP, así que quizás sea natural.Diferencia entre XML y SOAP

¿Podría alguien explicarme qué es SOAP y para qué se utiliza? Tal vez dame algunos ejemplos de su uso?

+20

Una vez me encontré con un programador que también necesitaba hacer la pregunta "¿Podría alguien explicarme por favor qué es SOAP y para qué se utiliza?", Pero sin las mayúsculas. –

+0

en serio, todavía me estoy riendo @ este comentario ... –

+1

Los programadores y la buena higiene no siempre van de la mano. –

Respuesta

9

Wikipedia tiene una maravillosa article, incluyendo una buena example.

SOAP, originalmente definido como Simple Object Access Protocol, es una especificación de protocolo para el intercambio de información estructurada en la implementación de servicios web en redes informáticas.

Un muy buen ejemplo práctico:

Como ejemplo de un laico de cómo se pueden utilizar los procedimientos de SOAP, un mensaje SOAP podría ser enviado a un sitio web de servicios web habilitados (por ejemplo, una base de datos de precios de la vivienda) con los parámetros necesarios para una búsqueda. El sitio luego devolvería un documento con formato XML con los datos resultantes (precios, ubicación, características, etc.). Como los datos se devuelven en un formato estandarizado máquina-parseable, podría integrarse directamente en un sitio de terceros.

2

SOAP es un protocolo de mensajería utilizado en redes para invocar web-services.
Los formatos de mensaje usan XML, y están descritos por WSDL 's - wizdil pronunciado.

WSDL también son documentos XML.

XML es un formato de documento que usa etiquetas para identificar el contenido del archivo, su uso es más amplio que SOAP y WSDL, que son tipos específicos de XML.
Ver las w3schools tutorial para XML en http://www.w3schools.com/xml/default.asp

17

Después de leer todas las otras buenas respuestas, pensé que podría ser útil para proporcionar una versión "súper laymans". Espero que ayude.


SOAP es como la versión para computadora que utiliza el servicio postal. Un mensaje (como una carta) se coloca en un sobre y se envía a la persona para la que está destinado.

Principalmente, SOAP es un vocabulario de XML. Define un lenguaje, utilizando la especificación XML, sobre cómo abordar y enviar mensajes de envío.

En concreto, se estandariza lo que nos referimos como:

  • "un sobre" (en realidad se llama un sobre SOAP)
  • "la letra" (llamado "cuerpo")
  • varias anotaciones (llamado "cabeceras" - pensar en estos sellos, como petición de firma, la información del remitente, etc -, que la oficina de correos utiliza para encaminar el mensaje)

Además, SOAP define un type-system, m uch como las definiciones de tipos que se encuentran en .Net, Java o XSD.No daré más detalles sobre esto, ya que hay mucha documentación disponible como se menciona en respuestas anteriores.

El objetivo principal del diseño de este lenguaje/vocabulario era permitir la interoperabilidad entre plataformas. Entonces, Java llama a COM, llama a .Net, llama a J2EE y al resto mientras permanece extensible en el futuro previsible. En lugar de construir otro puente entre un objeto COM y una clase Java, simplemente podemos usar SOAP para exponer la funcionalidad de nuestro objeto para que otras plataformas puedan usarlos sin la necesidad de puentes. O, para decirlo de otra manera, SOAP fue un último puente, diseñado para reemplazar todos los puentes anteriores.

Por ahora, todos los kits de herramientas de desarrollo principales tienen alguna forma de soporte SOAP. Esto ha hecho que la interoperabilidad esté cada vez más disponible, pero en la mayoría de los entornos, sigue siendo necesario un cierto nivel de configuración para que la comunicación sea realmente perfecta.

Debo señalar también que SOAP ya no representa su intención original. En algún momento, creo que alguna persona importante lo (re) nombrará: Service Oriented Access Protocol.

Espero que esto ayude!

+0

Gran explicación ... aunque no estoy seguro exactamente qué significa 'super-laico '. Pero si con eso no quiere decir nada en términos de "lego" es un título apropiado;) –

+0

Muchas gracias por sus explicaciones – d3vpasha