2010-03-11 11 views
8

Was ist der Unterschied zwischen XML und SOAP? Ich habe ein paar einführende Artikel über SOAP gelesen, aber ich bin sehr verwirrt. Dies ist das erste Mal, dass ich über SOAP lese, also ist das natürlich.Unterschied zwischen XML und SOAP

Könnte mir bitte jemand erklären, was SOAP ist und wofür es verwendet wird? Vielleicht gib mir ein paar Beispiele für seine Verwendung?

+20

Ich bin einmal auf einen Programmierer gestoßen, der auch die Frage stellen musste: "Könnte mir bitte jemand erklären, was SOAP ist und wofür es gebraucht wird?", Aber ohne die Großschreibung. –

+0

ernsthaft, ich lache immer noch @ diesen Kommentar ... –

+1

Programmierer und gute Hygiene nicht immer Hand in Hand gehen. –

Antwort

9

Wikipedia hat eine wunderbare article, einschließlich einer guten example.

SOAP, ursprünglich als Simple Object Access Protocol definiert, ist eine Protokollspezifikation für den Austausch strukturierter Informationen bei der Implementierung von Web Services in Computernetzwerken.

Ein wirklich gutes praktisches Beispiel:

Als ein Laien Beispiel dafür, wie SOAP-Verfahren verwendet werden kann, könnte eine SOAP-Nachricht an eine Web-Service-fähige Website (zum Beispiel gesendet werden, ein Hauspreisdatenbank) mit den für eine Suche benötigten Parametern. Die Website würde dann ein XML-formatiertes Dokument mit den resultierenden Daten (Preise, Standort, Funktionen usw.) zurückgeben. Da die Daten in einem standardisierten maschinenlesbaren Format zurückgegeben werden, könnte sie dann direkt in eine Website eines Drittanbieters integriert werden.

2

SOAP ist ein Nachrichtenprotokoll, das über Netzwerke verwendet wird, um web-services aufzurufen.
Die Nachrichtenformate verwenden XML und werden von WSDL 's - ausgesprochen Wizdil beschrieben.

WSDLs sind auch XML-Dokumente.

XML ist ein Dokumentformat, das Tags verwendet, um den Inhalt der Datei zu identifizieren. Seine Verwendung ist breiter als SOAP und WSDL, bei denen es sich um bestimmte XML-Typen handelt.
anzeigen w3schools auf XML Tutorial http://www.w3schools.com/xml/default.asp

17

Nachdem alle anderen guten Antworten zu lesen, dachte ich, es könnte hilfreich sein, eine „Super laymans“ -Version zur Verfügung zu stellen. Ich hoffe, es hilft.


SOAP ist wie die Computerversion, die den Postdienst verwendet. Eine Nachricht (wie ein Brief) wird in einen Umschlag gelegt und an die Person versandt, für die sie bestimmt ist.

In erster Linie ist SOAP ein XML-Vokabular. Es definiert eine Sprache, die die XML-Spezifikation verwendet, um zu adressieren und Sende-Nachrichten zu senden.

Insbesondere standardisiert es, was wir als:

  • "einen Umschlag"
  • "der Buchstabe" (genannt "der Körper")
  • verschiedene Anmerkungen (eigentlich ein SOAP-Umschlag genannt) („Header“ genannt - man denke an diesen wie briefmarken, Signaturanforderung, Absenderinformationen, usw. -, die die Post zu routen verwendet die Nachricht)

Außerdem definiert SOAP eine type-system, m uch wie die Typdefinitionen, die Sie in .Net, Java oder XSD finden.Ich werde darauf nicht näher eingehen - da es dort viele Dokumente gibt, die in früheren Antworten erwähnt wurden.

Der primäre Designschwerpunkt dieser Sprache/dieses Vokabulars war es, die Interoperabilität plattformübergreifend zu ermöglichen. Also, Java ruft COM an, ruft .Net, ruft J2EE und den Rest an und bleibt in absehbarer Zeit erweiterbar. Anstatt eine weitere Brücke zwischen einem COM-Objekt und einer Java-Klasse zu erstellen, können wir SOAP einfach verwenden, um die Funktionalität unseres Objekts zu offenbaren, so dass andere Plattformen sie ohne die Notwendigkeit von Brücken verwenden können. Oder, um es anders auszudrücken - SOAP war eine letzte Brücke, die alle bisherigen Brücken ersetzen sollte.

Inzwischen haben alle wichtigen Entwicklungs-Toolkits eine Form der SOAP-Unterstützung. Dies hat die Interoperabilität mehr und mehr verfügbar gemacht - aber in den meisten Umgebungen ist immer noch ein gewisses Konfigurationsniveau erforderlich, um die Kommunikation wirklich nahtlos zu gestalten.

Ich sollte auch beachten, dass SOAP nicht mehr für das steht, was seine ursprüngliche Absicht war. Irgendwann denke ich, dass eine wichtige Person es (wieder) benennen wird: Service Oriented Access Protocol.

Ich hoffe, das hilft!

+0

Tolle Erklärung ... obwohl ich nicht sicher bin, was genau "Superlaien" bedeutet. Aber wenn du damit überhaupt nicht "laienhaft" meinst, ist das ein passender Titel;) –

+0

Vielen Dank für deine Erklärungen – d3vpasha