Frage

In einem anderen Frage Ich war besorgt, einen Webdienst zu nutzen, der fünf Minuten dauert. Ich habe darüber nachgedacht, RMI anstelle von Webdiensten für diesen Anwendungsfall zu verwenden.

Aber am Ende des Tages verwenden sowohl einen Webdienst als auch RMI einen TCP -Socket für die zugrunde liegende Verbindung? Gibt es einen Grund, warum ein Web -Service -Anruf 5 Minuten weniger stabil ist als eine RMI -Anfrage, die zur gleichen Zeit dauert?

Beachten Sie, dass wir in unserem Fall über interne Apps sprechen.


Aktualisieren: Diese Frage erfolgt von mir, weil ich mir Sorgen macht, dass wir auf fallengelassene Verbindungen oder andere Probleme mit Webdiensten begegnen, deren Abschluss 3-5 Minuten dauert. Die Sorge ist vielleicht völlig irrational - Responder auf meinen anderen Frage angegeben, es sollte Ihnen gut gehen, wenn Sie sowohl den Client als auch den Server steuern. Ich wollte jedoch nur ausführlicher verstehen, warum eine abgebrochene Verbindung für einen 5 -minütigen Anruf nicht mehr eine Webdienst -Implementierung verwendet als eine RMI -Implementierung. Wenn beide auf Socket -Verbindungen angewiesen sind, könnte dies erklären, warum es keinen Unterschied gibt ...

War es hilfreich?

Lösung

Wenn ein einzelner Remote -Anruf 5 Minuten dauert, liegt dies wahrscheinlich daran, dass der Betrieb, der diesen Anruf implementiert, langsam ist, nicht weil die Webdienstebene selbst langsam ist. Wenn Sie die Operation mit RMI neu schreiben, wird dies wahrscheinlich genauso langsam sein.

Der Leistungsvorteil von RMI gegenüber Seife wird nur dann erkennbar, wenn eine große Anzahl von Operationen aufgerufen wird, anstatt für die Geschwindigkeit eines Operationen, einfach weil RMI effizienter als Seife ist. Aber es wird eine langsame Operation nicht schneller machen.

Was Ihre Frage zu Sockets betrifft, ja, ja, RMI und Seife verwenden beide Protokolle auf Sockelebene, wenn Sie weit genug untergehen (IIOP oder JRMP im Fall von RMI, HTTP im Fall von SOAP). Das ist jedoch nicht wirklich relevant für Ihr Problem.

Andere Tipps

RMI wird größtenteils über JRMP (im reinen Java-Kontext) oder IIOP (im Nicht-JVM-Kontext) verwendet, während SOAP-Nachrichten normalerweise (aber nicht ausschließlich) über HTTP gesendet werden. Alle diese drei Drahtprotokolle verwenden TCP/IP. In dieser Hinsicht gibt es also keinen Vorteil, RMI gegenüber einem Webdienst auszuwählen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top