Unterschied zwischen REST und SOAP

Einführung

Dieser Artikel behandelt zwei Web Service-Zugriffsprotokolle, SOAP ("Simple Object Access Protocol") und REST ("Representational State Transfer").

Web Services

Web Services sind so definiert, dass sie aktiv Daten von einer definierten Quelle abrufen, lesen oder übertragen, um ein bestimmtes Ergebnis zu erzielen - ein Ergebnis.

Das folgende rudimentäre Beispiel zeigt eine grundlegende Verwendung von Webdiensten, bevor Sie verstehen, wie die Daten mit SOAP oder REST zum und vom Webdienst übertragen werden.

Wenn ein Entwickler eine Anwendung schreibt, die eine Datenberechnung an einer Stelle benötigt, schreibt er die Berechnungsmethode in den Code an dieser Stelle. Wenn die Datenberechnung jedoch in anderen Teilen der Anwendung benötigt wird, wäre es ineffizient und unpraktisch, wenn der Entwickler die Berechnungsmethode in jedem Bereich, in dem er benötigt wird, platziert.

Wenn Sie eine Änderung an dieser Methode vornehmen möchten, müssen Sie jede Instanz finden, um sie zu bearbeiten (und erneut zu testen). Dieses Szenario würde von der Verwendung eines Webdienstes profitieren, um optimal zu funktionieren und die geschäftliche Agilität zu verbessern.

Durch die Erstellung eines Webdienstes mit zugreifbaren Methoden zum Hinzufügen, Subtrahieren, Teilen und Multiplizieren wird die Anwendung mit diesem Webdienst verbunden, wenn Datenberechnung erforderlich ist. Er ruft den Webdienst auf, um die Berechnung durchzuführen und das Ergebnis zu erzeugen. Es gibt also nur einen Platz für den Entwickler, um die Datenberechnungsmethode zu verwalten.

Die Art und Weise, wie Daten in Web-Services behandelt werden, hängt davon ab, ob SOAP oder REST implementiert ist.

SOA und BPMN

Eine Anwendung, die auf ausführbaren Prozessen basiert, basiert auf einer Service Oriented Architecture ("SOA"). Es ist ein Ansatz zur Verwendung von Diensten, die Daten übertragen, produzieren, validieren oder berechnen.

SOA wird immer günstiger, um die Entwicklungsqualität und -zeit zu verbessern und die Anwendungsleistung und Skalierbarkeit zu verbessern.

Business Process Modeling Notation ("BPMN") modelliert einen Service oder Geschäftsprozess, der von nichttechnischen Personen durchgeführt werden kann. e. der Business Analyst. Mit BPMN können Geschäftsmodelle (für Services) leicht von Entwicklern interpretiert werden, die das Modell als ausführbaren Prozess implementieren, und diese Prozesse können eine menschliche Interaktion erfordern oder nicht.

Simple Object Access Protocol (SOAP)

SOAP ist eine Methode zur Übertragung von Daten über das Internet.

Ursprünglich von Microsoft aufgrund des Internets entwickelt, ersetzte SOAP die alten DCOM und CORBA Technologien, und es gibt es schon viel länger als REST.

SOAP gilt als schwerer als REST i.e. Es ist mehr Gepäck erforderlich, um Daten zu übertragen, was bedeutet, dass mehr Bandbreite pro Nachrichtenanforderung benötigt wird und die Datenquelle und Ziele mehr Arbeit beim Verpacken und Empfangen der Daten zu erledigen haben.

SOAP verwendet nur XML für Messaging-Dienste über das Internet, und XML-Nachrichtenanforderungen können sehr komplex sein. Wenn sie manuell entwickelt werden, ist eine sorgfältige Überwachung erforderlich, da SOAP unflexibel ist.

Es ist möglich, SOAP-Nachrichtenanfragen mit zu automatisieren. NET-Sprachen (als Beispiel), wo Entwickler nicht mit dem XML arbeiten müssen, da es automatisch im Hintergrund generiert wird.

Wenn bei der Nachrichtenanforderung Probleme auftreten, werden detaillierte Fehlerinformationen in der Nachrichtenantwort zurückgegeben. Dieser Prozess kann auch automatisiert werden, indem auf die Standardfehlercodes in der Nachrichtenantwort verwiesen wird.

Daher ist die verwendete Programmiersprache ein entscheidender Faktor dafür, wie schwierig es ist, SOAP zu implementieren.

Eines der Gepäckstücke, das einer SOAP-Nachricht beiliegt, ist die Web Services Description Language ("WSDL"), um zu erklären, wie der Web-Service funktioniert. Wenn eine Anwendung auf den Webdienst verweist, liest und versteht sie, was mit dem Webdienst geschehen soll.

SOAP ist nicht verpflichtet, ausschließlich HTTP (HyperText Transfer Protocol) zu verwenden; Es kann über SMTP und andere Transportprotokolle verwendet werden.

Da SOAP standardisiert war, ist es starrer als REST, obwohl beide von etablierten Regeln abhängen.

REST

REST ist der neuere und elegantere Coin von SOAP und wird schnell zur ersten Wahl für die meisten Web- und mobilen Anwendungen.

Mehr als ein Jahrzehnt nach seiner Einführung ist REST eine leichtere, wartungsfreundlichere und skalierbarere Art der Interaktion mit Webdiensten.

Im Gegensatz zu SOAP verwendet REST nicht ausschließlich XML ; einfacher Text , CSV und RSS können verwendet werden, sowie JSON für AJAX-Aufrufe; solange sowohl die Quelle als auch die Ziele die verwendeten Formate verstehen können.

REST ist weniger komplex und hat eine geringere Lernkurve als SOAP. Die meisten modernen Programmiersprachen verfügen über Bibliotheken und Frameworks, um REST (RESTful) -Dienste wie C #, Python, Java und Perl zu ermöglichen.

REST ist aufgrund der minimalen Verarbeitung und der effizienteren Verwendung verschiedener Nachrichtenformate schneller.

Es gibt Vor- und Nachteile für beide. Wenn Sie also überlegen, welches Zugriffsprotokoll verwendet werden soll, berücksichtigen Sie die Programmiersprachen, die in der Organisation, der Anwendungsumgebung und den Anwendungsanforderungen verwendet werden.