Vor kurzem habe ich mich entschlossen, etwas über Java-Webdienste zu lernen. Als ich anfing, ein Tutorial für Java-Webdienste in Google zu durchsuchen, stellte ich fest, dass es viele Arten von XML-basierten, SOAP-basierten und auch RESTful-Webservices gibt.
Außerdem habe ich festgestellt, dass es eine JAX-WS-Spezifikation für XML-basierte Webdienste und eine JAX-RS-Spezifikation für die Erstellung von RESTful-Webservices gibt.
Q1) Ich war verwirrt. Es wäre großartig, wenn mir jemand helfen könnte, den Unterschied zwischen diesen verschiedenen Arten von Webservices zu verstehen, damit ich entscheiden kann, welche ich zuerst lernen möchte.
F2) Außerdem möchte ich ausführlich über das Erstellen verschiedener Arten von Webdiensten in Java lernen. Gibt es ein Tutorial oder Ressourcen, die einen Einblick in jede Art von Webservice und einen Vergleich zwischen ihnen geben können?
F3) basierend auf welchen Szenarien und Bedingungen sollte ich entscheiden, dass ich einen XML-basierten Webdienst anstelle eines SOAP-Dienstes erstellen möchte, oder ich sollte mich für den RESTful-Dienst entscheiden.
quelle
Antworten:
In Frage 3 heißt es in diesem Artikel , dass RESTful Services in diesen Szenarien geeignet sind:
Während SOAP der richtige Weg ist, wenn:
quelle
Q1) Hier sind einige Dinge zu lesen oder mehr zu googeln:
Hauptunterschiede zwischen SOAP- und RESTful-Webdiensten in Java http://www.ajaxonomy.com/2008/xml/web-services-part-1-soap-vs-rest
Es liegt an Ihnen, was Sie zuerst lernen möchten. Ich würde empfehlen, dass Sie sich das CXF- Framework ansehen . Sie können beide Ruhe- / Seifendienste erstellen.
F2) Hier sind einige gute Tutorials für Seife (ich habe sie mit einem Lesezeichen versehen):
http://united-coders.com/phillip-steffensen/developing-a-simple-soap-webservice-using-spring-301-and-apache-cxf-226
http://www.benmccann.com/blog/web-services-tutorial-with-apache-cxf/
http://www.mastertheboss.com/web-interfaces/337-apache-cxf-interceptors.html
Der beste Weg zu lernen ist nicht nur das Lesen von Tutorials. Aber Sie würden zuerst Tutorials durchgehen, um eine grundlegende Idee zu erhalten, damit Sie sehen können, dass Sie in der Lage sind, etwas zu produzieren (oder nicht), und das würde Sie motivieren.
SO ist eine großartige Möglichkeit, bestimmte Technologien (oder mehr) zu erlernen, Menschen stellen viele seltsame Fragen und es gibt immer seltsamere Antworten. Insgesamt erfahren Sie jedoch, wie Sie Probleme auf andere Weise lösen können. Vielleicht wusstest du das nicht, vielleicht kannst du es dir nicht selbst vorstellen.
Abonnieren Sie einige Tags, die für Sie interessant und hartnäckig sind, stellen Sie gute Fragen und versuchen Sie, gute Antworten zu geben. Ich garantiere Ihnen, dass Sie dies im Laufe der Zeit lernen werden (wenn Sie hartnäckig sind).
F3) Sie müssen diese Frage selbst beantworten. Zuerst müssen Sie sich überlegen, was Sie bauen möchten. Schließlich müssen Sie sich ein Mini-Projekt oder etwas anderes überlegen und es von dort übernehmen.
Wenn Sie CXF als Framework für die Erstellung von REST / SOAP-Diensten verwenden möchten, empfehlen wir Ihnen, dieses Buch nachzuschlagen
Apache CXF Web Service Development
. Es ist fantastisch, nicht schwer zu lesen und auch nicht zu groß (Win Win).quelle
Der SOAP WS unterstützt sowohl Integrationsstile für Remoteprozeduraufrufe (dh RPC) als auch für Nachrichtenorientierte Middleware (MOM). Der Restful Web Service unterstützt nur den RPC-Integrationsstil.
Der SOAP WS ist transportprotokollneutral. Unterstützt mehrere Protokolle wie HTTP (S), Messaging, TCP, UDP SMTP usw. Der REST ist transportprotokollspezifisch. Unterstützt nur HTTP- oder HTTPS-Protokolle.
Der SOAP WS erlaubt nur das XML-Datenformat. Sie definieren Operationen, die über den POST tunneln. Der Schwerpunkt liegt auf dem Zugriff auf die genannten Operationen und der Bereitstellung der Anwendungslogik als Dienst. Der REST erlaubt mehrere Datenformate wie XML, JSON-Daten, Text, HTML usw. Jeder Browser kann verwendet werden, da der REST-Ansatz die Standard-Weboperationen GET, PUT, POST und DELETE verwendet. Der Schwerpunkt liegt auf dem Zugriff auf die genannten Ressourcen und der Bereitstellung der Daten als Dienst. REST unterstützt AJAX. Es kann das XMLHttpRequest-Objekt verwenden. Gut für zustandslose CRUD-Vorgänge (Erstellen, Lesen, Aktualisieren und Löschen). GET - repräsent () POST - acceptRepresention () PUT - storeRepresention () DELETE - removeRepresention ()
SOAP-basierte Lesevorgänge können nicht zwischengespeichert werden. REST-basierte Lesevorgänge können zwischengespeichert werden. Leistung und Skalierung besser. SOAP WS unterstützt sowohl SSL-Sicherheit als auch WS-Sicherheit, wodurch einige Sicherheitsfunktionen für Unternehmen hinzugefügt werden, z. B. die Aufrechterhaltung der Sicherheit bis zu dem Punkt, an dem sie benötigt wird, die Aufrechterhaltung von Identitäten über Vermittler und nicht nur die Punkt-zu-Punkt-SSL-Sicherheit, mit der verschiedene Teile der Nachricht gesichert werden verschiedene Sicherheitsalgorithmen usw. Der REST unterstützt nur Punkt-zu-Punkt-SSL-Sicherheit. Das SSL verschlüsselt die gesamte Nachricht, unabhängig davon, ob sie vertraulich ist oder nicht. Der SOAP bietet umfassende Unterstützung sowohl für das ACID-basierte Transaktionsmanagement für kurzlebige Transaktionen als auch für das kompensationsbasierte Transaktionsmanagement für langfristige Transaktionen. Es unterstützt auch das zweiphasige Festschreiben über verteilte Ressourcen hinweg. Das REST unterstützt Transaktionen,
Der SOAP verfügt über eine integrierte Erfolgs- oder Wiederholungslogik und bietet End-to-End-Zuverlässigkeit auch über SOAP-Vermittler. REST verfügt nicht über ein Standardnachrichtensystem und erwartet, dass Clients, die den Dienst aufrufen, Kommunikationsfehler durch erneutes Versuchen beheben.
Quelle http://java-success.blogspot.in/2012/02/java-web-services-interview-questions.html
quelle
Wenn Ihre Anwendung häufig das http-Protokoll verwendet, ist REST aufgrund seines geringen Gewichts am besten geeignet. Wenn Sie wissen, dass Ihre Anwendung nur das http-Protokoll verwendet und SOAP auswählt, ist dies nicht so gut, da es schwer ist. Besser ist es, eine Entscheidung über die Auswahl des Webdienstes auf der Grundlage der von uns verwendeten Protokolle zu treffen in unseren Anwendungen.
quelle