RMI Polling oder lange Verbindungen

S

SlaterB

Gast
hallo,

ich habe einen RMI-Server und Clients,
die Clients starten am Server langfristige Aktionen und überwachen deren Status

nun habe ich die Möglichkeit, alle 10 sec am Server den aktuellen Status kurz nachzufragen, dazwischen keine Kommunikation,

oder Anfragen zu stellen, die solange beim Server blockieren, bis das Ergebnis feststeht,
gegegebenfalls wieder nach maximal 10 sec Rückmeldung, wenn z.B. ein informativer Zwischenstand (% verarbeitet) zurückzugeben werden kann,

letzteres gefällt mir besser, da ich eher das Ende eines Prozesses erfahre, wenn dieses nach 2 sec in einem 10 sec-Intervall stattfindet,
ich frage mich aber, ob es da Nachteile zu bedenken gibt, stören die lange offen gehaltenen Verbindungen?
gibt es ein Maximum an Wartezeit/ gleichzeitig offenen Verbindungen? sonst etwas RMI-spezifisches interessant?
dass am Server zusätzliche Threads laufen bzw. warten scheint mir akzeptabel
 
T

tuxedo

Gast
Wie wär's mit Callbacks?

Der Server kann sich ja beim Client melden wenn er fertig ist.

Dazu musst du auf Clientseite un Remote-Objekt erstellen (so wie du's auf Serverseite getan hast) und dem Server über einen Methodenaufruf mitgeben. Der Server kann dann, wenn er fertig ist, Methoden in dem Callbackobjekt aufrufen und somit die fertigstellung der Aufgabe dem Client mitteilen.

Ein Code-Snippet hab ich leider nur für SIMON. Aber mit RMI sollte es ähnlich sein:

SIMON - Sample helloworld - root1.de - Software Engineering

Oder etwas flexibler via Annotations:

SIMON - Sample helloworld110 - root1.de - Software Engineering


- Alex
 
Zuletzt bearbeitet von einem Moderator:
S

SlaterB

Gast
Callback mag ich nicht weil dann meinem Verständnis nach der Client zum Server wird, was vielleicht durch Firewall oder ähnliches verhindert wird,
ich weiß nicht genug davon um mir sicher zu sein, möchte aber unnötige zusätzliche Komplexität vermeiden

ich sehe das gerne ähnlich zum Web mit http-Anfragen, wo sich ein Callback auch eher nie durchsetzt


hier übrigens ein Beispiel für RMI der Vollständigkeit halber
Threads and Callbacks in RMI
 
Zuletzt bearbeitet von einem Moderator:
T

tuxedo

Gast
Callback mag ich nicht weil dann meinem Verständnis nach der Client zum Server wird, was vielleicht durch Firewall oder ähnliches verhindert wird,
ich weiß nicht genug davon um mir sicher zu sein, möchte aber unnötige zusätzliche Komplexität vermeiden

Tja, für den Fall von RMI ist das in der Tat wahr :) Ich nehme an du hast andere Abhängigkeiten zu RMI die dich vom Wechsel zu SIMON abhalten (root1.de - Software Engineering)


ich sehe das gerne ähnlich zum Web mit http-Anfragen, wo sich ein Callback auch eher nie durchsetzt

Das kommt auf die implementierung an. Wenn die Verbindung zum Webserver dauerhaft offen wäre könnte der Server auch durch Firewalls und Router hindurch Callbacks ausführen. Denn die Verbindung wurde vom Client initiiert.


Gruß
Alex
 
Zuletzt bearbeitet von einem Moderator:
T

tuxedo

Gast
Ach ja. Zum Thema Polling oder lange Verbindung:

Wie lange die Verbindung offen bleibt kannst du afaik nicht beeinflussen. RMI handhabt das "irgendwie" intern. Mit einem blockierenden Methodenaufruf, der erst zurückkehrt wenn die Aufgabe erledigt ist, hälst du dir halt auf Serverseite einen Thread offen. Wenn du nicht gerade hunderte/tausende Clients hast wäre das, abgesehen von Callbacks, die wohl beste Lösung die am wenigsten "Stress" auf Serverseite verursacht. Wenn du mit vielen Cliebts ständig pollst, dann hat der Server da mehr zu tun.

Wenn RMI Callbacks also nicht gewünscht sind und ein Wechsel zu SIMON nicht möglich ist, dann würde ich den blockierenden Methodenaufruf wählen.

- Alex
 
T

tuxedo

Gast
[offtopic] Wer hat was von kaufen gesagt?! Ach so... du magst kein GPL?! :D [/offtopic]
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D RMI Gui auf client updaten basierend auf den Property Änderung des Models auf dem Server ohne polling Netzwerkprogrammierung 12
B Nachrichten-Polling? Netzwerkprogrammierung 5
S JApplet dauert lange Netzwerkprogrammierung 14
X Versenden von Objekten braucht zu lange Netzwerkprogrammierung 5
A Lange wartezeit bei Netzwerkzugriff... Netzwerkprogrammierung 5
S BufferedReader blockiert zu lange Netzwerkprogrammierung 4
D Lange Zeilen in Emails werden umgebrochen Netzwerkprogrammierung 2
B lange Strings in http-Request? Netzwerkprogrammierung 3
M lange Strings senden Netzwerkprogrammierung 16
izoards Mehrere TCP Verbindungen auf einen Server [alles Local] Netzwerkprogrammierung 2
J Grundsätzliches zu SSL verschlüsselten Verbindungen Netzwerkprogrammierung 2
D Socket-Verbindungen übers Internet Netzwerkprogrammierung 4
I Offene Verbindungen lesen(Ressourcenmonitor lesen) Netzwerkprogrammierung 2
7 Mehrere Verbindungen gleichzeitig in einem Thread mit ApacheHTTP Netzwerkprogrammierung 7
G FTP FTP-Client funktioniert nicht bei Modem-Verbindungen Netzwerkprogrammierung 8
N Java NIO eingehende und ausgehende Verbindungen mit einem Selector Netzwerkprogrammierung 12
F Socket Verbindungen über mehrere Server Netzwerkprogrammierung 4
M Socket Leistungsfähigkeit eines xSocketservers, wieviele Verbindungen max? Netzwerkprogrammierung 4
D Aktuelle Anzahl der verfügbaren TCP/IP Verbindungen Netzwerkprogrammierung 6
E TCP-Server soll viele offene Verbindungen verwalten Netzwerkprogrammierung 12
D Was für Verbindungen mit Socket möglich? Netzwerkprogrammierung 2
J Nacheinander Verbindungen eingehen Netzwerkprogrammierung 2
A persistente, multi-threaded Verbindungen Netzwerkprogrammierung 12
S Verbindungen der Browser ermitteln? Netzwerkprogrammierung 9
G Windows-Verbindungen Netzwerkprogrammierung 4
G Proxy und mehrere Verbindungen Netzwerkprogrammierung 4
G Mehrere SSL Verbindungen Netzwerkprogrammierung 2
TRunKX Ein Port mehrere Verbindungen? Netzwerkprogrammierung 7
R Zuviele TCP-Verbindungen Netzwerkprogrammierung 4
U Einen HandlerThread, der mehrere Verbindungen verwaltet? Netzwerkprogrammierung 2
F konfigurierte Netzwerkverbindunge/DFÜ-Verbindungen ermitteln Netzwerkprogrammierung 4
M Socket Verbindungen für einen Chat Netzwerkprogrammierung 10
D .jpg, .wav per ServerClient Verbindungen verschicken Netzwerkprogrammierung 8

Ähnliche Java Themen

Neue Themen


Oben