SOAP messaging und JMS

Hi,

bei SOAP gibt es doch zwei Modelle. Ich kann SOAP-RPC verwenden, was ja ähnlich XML-RPC ist oder ich kann SOAP messaging verwenden.
Zu SOAP-RPC habe ich Beispiele für Java gefunden, jedoch nicht zu SOAP messaging. Die Frage ist, wann und wie (evtl. Codebeispiel) ich SOAP messaging verwenden soll. Welche Vorteile hat diese Methode ?
Was ist der Unterschied zu JMS (Java Messaging Service) ?

Vielen Dank.

Bye,

Tristan.

Hallo Tristan,

bei SOAP gibt es doch zwei Modelle. Ich kann SOAP-RPC
verwenden, was ja ähnlich XML-RPC ist oder ich kann SOAP
messaging verwenden.
Zu SOAP-RPC habe ich Beispiele für Java gefunden, jedoch nicht
zu SOAP messaging. Die Frage ist, wann und wie (evtl.
Codebeispiel) ich SOAP messaging verwenden soll. Welche
Vorteile hat diese Methode ?

Bei RPC arbeitet üblicherweise synchron, wie der Name schon sagt so ähnlich wie in lokaler Funktionsaufruf nur remote. Du rufst etwas auf, wartest bis die Gegenstelle mit der Verarbeitung fertig ist und kriegst dann ein Ergebnis.

Messaging dagegen ist asynchron, d. h. der Sender schickt die Message raus und ihm ist eigentlich egal was dann passiert, er arbeitet sofort weiter.

Bei synchroner Kommunikation entsteht dadurch eine stärkere Kopplung der beteiligten Systeme als bei asynchroner.

Beides hat Vor- und Nachteile. Nachteil bei asynchron ist bei den meisten Implementierungen, dass der Sender eigentlich keine Kontrolle hat ob die Daten ankommen und korrekt verarbeitet werden. Ein Vorteil von asynchron ist, dass die beiden Kommunikationspartner nicht aufeinander angewiesen sind, der Sender kann was rausschicken, auch wenn der Empfänger nicht verfügbar ist oder gerade beschäftigt ist, die Kommunikationsschicht stellt das dann einfach zu wenn der Empfänger wieder bereit ist.

Was ist der Unterschied zu JMS (Java Messaging Service) ?

Ich kenne das SOAP RPC/Messaging leider nicht wirklich, aber soweit ich weiss ist es ein Protokoll, es schreibt genau vor wie die Kommunikation übers Netz aussieht. Zwei unterschiedliche Messaging-Produkte die das Protokoll implementieren können dann miteinander sprechen.

JMS dagegen ist ein API-Vorschrift (Application Programming Interface), es gibt einen Standard für den Zugriff auf Messaging-Produkte aus Java-Anwendungen vor. JMS beschreibt aber kein Protokoll, wie die JMS-Implementierungen miteinander kommunizieren ist frei. Eine Anwendung die mit JMS auf das Messaging zugreift kann relativ einfach auf ein anderes Messaging-Produkt portiert werden.

Ich hoffe das hilft dir mal weiter, wenn nicht frag einfach nochmal. :smile:

Grüße, Robert

Hallo Robert,

erstmal danke für Deine Antwort.
Wann benutze ich dann JMS und welche Vorteile/Nachteile hat JMS ?
Ich meine der große Vorteil bei SOAP ist doch, dass SOAP auch hinter einer Firewall funktioniert, da Port 80 eigentlich nie gesperrt ist, oder ?

Grüße,

Tristan.

Hallo Tristan,

Ich versuche es einfach auszudrücken (Entschuldigt bitte wenn etwas nicht 100% stimmt :wink:

JMS wird verwendet, wenn Du in einem System Messaging verwenden willst. (Und das ist in der Regel asynchron)
Welches Protokoll Du dazu verwendest ist dann egal. (Könnte auch SOAP sein!)

SOAP ist ein Protokoll und wird in der Regel für WebServices verwendet und läuft über HTTP.

JMS und SOAP aus meiner Sicht kann NICHT verglichen werden.

Hier noch einige Links zu JMS. Zu SOAP kann ich leider noch nichts anbieten, da ich selber Anfänger bin:

JMS Tutorial

MOM (message oriented middleware), allgemein

JMS

Transactions

Security

Publish/Subscribe Model

Point to Point Model

MDB – Message Driven Beans

Unified Messaging

Viele Grüsse
Simon

1 „Gefällt mir“

Hallo Tristan,

Wann benutze ich dann JMS und welche Vorteile/Nachteile hat
JMS ?

Wie Simon schon geschrieben hat, eigentlich sind die beiden nicht wirklich vergleichbar.

JMS kannst du verwenden wenn du von einer Java-Applikation auf ein Messaging-System zugreifen willst. Einschränkung dabei ist, dass zum einen das Messaging-System JMS unterstützen muss, zum andren kanns oft sein, dass das Messaging-System mehr Funktionalität als JMS bietet, die zu nutzen geht dann wieder nur über ein proprietäres API.

Ich meine der große Vorteil bei SOAP ist doch, dass SOAP auch
hinter einer Firewall funktioniert, da Port 80 eigentlich nie
gesperrt ist, oder ?

Ich würde das eigentlich nicht als allzugrossen Vorteil bezeichnen, das ist einfach nur eine Frage wie man die Infrastruktur aufsetzt.

Die meisten Messaging-Systeme bieten Möglichkeiten Messages durch Firewalls zu tunneln, ausserdem hat jemand der sowas in einem Unternehmen einsetzt meistens auch die Möglichkeit den Firewall entsprechend anzupassen.

Schöne Grüße, Robert