RMI: Wieviele Clients können sich gleichzeitig anmelden?

Status
Nicht offen für weitere Antworten.

Angel4585

Bekanntes Mitglied
Hallo,

ich möchte eine RMI Anwendung entwickeln, würde aber gerne wissen wieviele Clients zur gleichen zeit drauf zugreifen können ohne das sich die Serveranwendung verabschiedet oder sonst was in der Art.
 

stevieboy

Aktives Mitglied
Ich habe bisher noch nichts von einer Begrenzung gelesen.

Ich denke eher, dass die Updategeschwindigkeit der Clients ab einer bestimmten Zahl einfach in die Knie gehen wird - das musst Du, wie trazzag schon sagte, einfach ausprobieren.

Was willst Du denn aufsetzen? Vielleicht wäre bei einer hohen Anzahl von Clients eine Socket-Verbindung eher angebracht?!
 

Angel4585

Bekanntes Mitglied
Es soll ein kleines Onlinegame werden, ein Fussballmanager.
Ich weis nochnicht wieviele Clients ich überhaupt pro Server/Welt zulasse, aber wenn es ein paar Tausend wären, wäre das schonmal gut.
 

stevieboy

Aktives Mitglied
Ich glaube,dann würde ich es nicht mit RMI sondern mit Sockets realisieren. (Fühlt sich richtiger an. Sorry, eine bessere Begründung habe ich nicht.)
 

trazzag

Bekanntes Mitglied
Bei einem derartigen Online-Game, würde es sich da vllt. nicht anbieten, daß ganze einfach als Browsergame zu konzipieren? Dann würdest du auch um RMI herum kommen...
 

Angel4585

Bekanntes Mitglied
Browsergames gibt es schon sooo viele, ich möcht einfach ein Clientgame machen :D
Ausserdem stell ich mir ein 2D-Spiel wo sich evtl die Spieler als Punkte übers Feld bewegen in php schwierig vor :D

Wenn ich das Ganze mit Sockets mach, muss ich mir wieder ein Protokoll ausdenken, RMI arbeitet im Hintergrund ja auch nur mit Sockets, kann ich das doch direkt nehmen.
 
T

tuxedo

Gast
Bei RMI gibt es AFAIK keine Clientbegrenzung. Windows begrenzt aber von Haus aus die ANzahl der offenen Verbindungen. D.h. wenn du den RMI-Server/RMI-Registry auf einer Windows-Maschine laufen lässt, solltest du mit XP AntiSpy über's Menü die Anzahl der gleichzeitigen Verbindungen hochsetzen.

Und noch was:

Wenn du in RMI eine Callback-Funktion (Server ruft Methoden auf dem Client auf) drin hast, dann kriegst du Probleme wenn sich deine Clients hinter einem Router befinden. Besser wäre es für diesen Fall die Clients ein polling ausführen zu lassen: AM Server immer mal wieder anfragen, statt dass der Server sich selbstständig bei den Clients meldet.

Da mir das mächtig auf den Zeiger geht, hab ich mich schon drangesetzt ein eigenes RMI zu basteln, das dieses Problem nicht hat. Bin aber noch lange nicht fertig ;-(

- Alex
 
T

tuxedo

Gast
Soll ich dir jetzt Webstart erklären? Denke da hast du schneller gegoogelt und gelesen als ich getippt.

- Alex
 

Angel4585

Bekanntes Mitglied
Also wirklich verstanden hab ich das gegoogelte nicht, nur das immer die aktuellste Version vom Server geladen wird, was schonmal sehr gut klingt.

Aber wie kommuniziert diese Anwendung jetzt mit dem Server?
Wie ich das verstanden habe ist das imemrnoch ne ganz normale Client/Server Anwendung, was heisst das es an meinem ursprünglichen problem nichts ändert.
 
T

tuxedo

Gast
Na und wo ist jetzt das Problem wenn du alles verstanden hast?

Webstart hilt nur "bei der beschaffung der Anwendung" und achtet halt auf neue Versionen etc.

Mit "Netzwerk" und RMI hat das ja sogesehen nix zu tun. Und mit der von Windows begrenzten Anzahl von gleichzeitigen Netzwerkverbindungen hat das auch nix zu tun. Und mit deiner Frage, die ja schon beantwortet wurde, hat das auch nix zu tun.

Also entweder steh ich jetzt ganz gewaltig auf dem Schlauch oder du... ;-)
 

Angel4585

Bekanntes Mitglied
Ne ich hab irgenwo was gelesen vonwegen Anwendungen direkt auf Server ausführen usw. aber ich glaub da war was anderes gemeint
 
T

tuxedo

Gast
Ja, das Wörtchen "Server" hat vielerlei Bedeutung ;-)

Mit welchem Betriebssystem soll denn dein RMI-Server laufen? Windows oder Linux oder was anderes?

- Alex
 

Angel4585

Bekanntes Mitglied
Windows und Linux sollten gehen, momentan entwickle ich auf Windows, aber es soll später mal auf Linux laufen
 
T

tuxedo

Gast
Bei Windows halt einfach die Sache mit der limitierten Verbindungsanzahl und XP AntiSPy im Hinterkopf behalten.
 

Angel4585

Bekanntes Mitglied
Aber wie ist das jetzt genau mit dem Routern wenn ich vom Server was auf dem Client mache?

Ich mein ich geh ja schon über den DSL-Router ins INet, meinst du das? Weil das wär bissl blöd..
 
T

tuxedo

Gast
Wenn du dem Server bei einem Methodenaufruf ein Callback-Objekt gibst, mit dem der Server Methoden der Callback-Klasse auf dem Client ausführen kann, DANN gibts "Probleme" mit Clients die sich hinter einem Router (NAT) befinden.

Du kannst das Problem umgehen, indem du kein Callback nutzt, und den Client stattdessen den Server immer wieder fragen lässt: "Gibt's was neues was mich interessieren könnte?". Also ruft beispielsweise der Client immer wieder eine Methode "getEvents()" auf, welche dann eine Liste mit noch nicht abgeholten Events enthält. Wie die Events aussehen ist deine Sache ;-)

- Alex
 
T

tuxedo

Gast
Jepp. Aber SocketChannel _muss_ nicht unbedingt sein. Normale Sockets tuns auch (RMI nutzt auch nur normale Sockets). Oder du bastelst dir dein eigenes RMI ... Hab wie gesagt schon angefangen mit Proxyklassen etc. "Normale RMI" Funktion hab ich shcon hinbekommen. Fehlt nur noch das mit den Callbacks über ein und dieselbe Socket-Verbindung. Ist etwas knifflig, aber durchaus machbar. Werde mich nach meiner Diplomarbeit da nochmal dransetzen ...

Bei RMI hat man nämlich das Problem, dass zum Teil mehrere Verbindungen aufgebaut werden. Unter anderem auch eine für den Callback. Und da baut der Server zum client eine Verbindung auf. Das lässt den Client dann quasi auch zum Server werden. Und am Router des Clients bleibt dieser Verbindungsaufbau dann hängen.
 

Angel4585

Bekanntes Mitglied
Ich versteh schon das und warum es mit dem Callback nich funzt.

SocketChannel war doch von Vorteil dacht ich, weil nicht pro Client ein Thread erzeugt wird.

Nur wie schicke ich Objekte? Ich kann da doch nur Strings verschicken..
 
T

tuxedo

Gast
Schonmal was von ObjectOutputStream gehört? Oder von DataOutputStream? Oder von "serialisieren"?

Basieren tut alles auf "einfachen" InputStream und OutputStreams. Beide "transportieren" Bytes. Darauf aufbauend kannst du Streams drüberlegen die gleich ganze Objekte oder Variablen verarbeiten.

Vielleicht wär's für dich einfacher doch bei RMI, nur halt ohne aktives Callback, zu bleiben....

- Alex
 

Angel4585

Bekanntes Mitglied
Ich bin einfach noch Java Anfänger, aber ich lerne dazu, also werd ich mir die Teile mal anschaun ;)

Das Problem für mich ist nur: Java besitzt soviel zeug, das kann man nich gleich alles auf Anhieb kennen.
 
T

tuxedo

Gast
Ne, aber man kann logisch kombinieren ;-) Was wäre Java für eine Sprache wenn man nur Strings übers Netz schicken könnte ;-)
 

Angel4585

Bekanntes Mitglied
Vorallem wenn man soo mit Internet usw prahlt :D
Naja aber ich programmiere jetzt seit 2 Jahren jeden Tag im Betrieb, bisher halt nur Delphi, da ist Java schon ne ordentliche Umstellung
 
T

tuxedo

Gast
Auch in Delphi wird es Streams geben. Und auch in Delphi wird man nicht nur Strings senden ;-)
 

Angel4585

Bekanntes Mitglied
dort habe ich aber auch noch nix mit sockets etc gemacht, da hab ich db-anwenudngen gemacht usw, aber keine client server geschichten
 
T

tuxedo

Gast
Wenn du aber von einer "Umstellung" redest, geht man eigtl. davon aus, dass du "die eine Seite" (in diesem Fall Delphi) schon kennst ;-)

Aber da du ja in Delphi auch noch nix mit Sockets gemacht hast, ist es ja keine Umstellung ;-) Okay, genug mit dem "kleinkarierten" ...

- Alex
 

Angel4585

Bekanntes Mitglied
Ich zieh mir jetz einfach mal den ObjectOutputStream und den ObjectInputStream rein.

Stimmt das, dass ich das über

ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream());
oos.writeObject(new MyObject());

usw realisiere? Also stimmt mein Anfang schonmal?
 
T

tuxedo

Gast
Wobei der HTTP Tunnel doch sehr langsam sein dürfte ... Zumal das einrichten mit dem CGI-Teil glaub nicht ganz trivial ist. "Nach meinem Geschmack" ist das jedenfalls nicht so der Bringer.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
E Socket DatagramSocket, wieviele Packete sind in der Receive Queue? Netzwerkprogrammierung 5
M Socket Leistungsfähigkeit eines xSocketservers, wieviele Verbindungen max? Netzwerkprogrammierung 4
M Socket Senden an alle verbundenen Clients Netzwerkprogrammierung 3
M Socket Netzwerk Übertragung zwischen 4 Clients Netzwerkprogrammierung 2
G Gui von 2 Clients Synchronisieren Netzwerkprogrammierung 2
F Schulprojekt erweitern - Online Quiz mit mehreren Clients - Was benötige ich ? Netzwerkprogrammierung 0
P Socket Viele Clients bedienen mit Vert.x Netzwerkprogrammierung 9
Aruetiise Socket Mehrere Clients Netzwerkprogrammierung 4
J Framework mehrere Clients/ Server-Broadcast/oracle XE/ XML Netzwerkprogrammierung 1
V Server / mehrere Clients / MySQL / Konzept Netzwerkprogrammierung 2
M MultiClient Server - Senden an alle Clients Netzwerkprogrammierung 8
G Multiple Clients and one Server --> java.lang.NullPointerException Netzwerkprogrammierung 1
M Teilnehmerliste vom Server auch an alle Clients senden Netzwerkprogrammierung 0
Luk10 Server / Client: Clients speichern! Netzwerkprogrammierung 6
Z Socket [Chatprogramm] Mehrere Clients an einen Server Netzwerkprogrammierung 10
C Socket Identifikation des clients nach der accept() Methode Netzwerkprogrammierung 2
D Mehrere Clients über Java-Sockets Netzwerkprogrammierung 13
cedi Socket Mehrere Clients an einem Server Netzwerkprogrammierung 4
A Socket Server: Message an verschiedene Clients senden Netzwerkprogrammierung 4
B Socket Liste von clients - multicast Netzwerkprogrammierung 4
M Anzahl Clients aus Start- und Endadr. berechnen Netzwerkprogrammierung 54
R Viele Clients ein Server Netzwerkprogrammierung 8
borobudur Synchronisation von Clients Netzwerkprogrammierung 10
S Socket nach anderen clients im netzwerk suchen Netzwerkprogrammierung 3
L Socket Chat Server für mehrere Clients Netzwerkprogrammierung 7
L RMI Informationen über die Clients herausfinden Netzwerkprogrammierung 5
H Neues NIO problem nachricht an alle clients Netzwerkprogrammierung 3
D Probleme bei mehreren Clients uns Senden von Messages Netzwerkprogrammierung 16
P Socket Datei von Client zum Server übertragen --> Weiterleitung an Clients Netzwerkprogrammierung 16
F Erhalten und Senden von Nachrichten anhand des Indexes des Clients Netzwerkprogrammierung 19
H Hilfe bei multiplen Clients Netzwerkprogrammierung 7
cowabunga1984 Transferierte Datenmenge eines SOAP Clients (JAX-WS) anzeigen Netzwerkprogrammierung 2
T Administration von Software auf Clients im Netzwerk Netzwerkprogrammierung 6
D Netzwerkprobleme bei mehreren Clients Netzwerkprogrammierung 4
F Peer to Peer Verbindung zwischen mehreren Clients? Netzwerkprogrammierung 8
D Clients sollen mehrere Sessions starten Netzwerkprogrammierung 11
A Server mit mehreren Clients Netzwerkprogrammierung 2
G Nachricht an mehrere Clients schicken Netzwerkprogrammierung 10
5 Webservice max. mit 5 Clients möglich Netzwerkprogrammierung 10
M clients untereinander kommunizieren Netzwerkprogrammierung 2
B Rmi Kommunikation Server zu mehreren Clients? Netzwerkprogrammierung 3
T Am RMI-Server: IP des Clients ermitteln? Netzwerkprogrammierung 2
J SecurityManager - Server-Zugriff nur von bestimmten Clients? Netzwerkprogrammierung 2
T RMI - Probleme beim Starten des Clients Netzwerkprogrammierung 4
T Chat mit mehreren Clients Netzwerkprogrammierung 3
G Anzahl verbundener Clients zu einem FTP-Server ermitteln? Netzwerkprogrammierung 4
G Server an mehrere Clients Netzwerkprogrammierung 15
D Netzwerk Betrachtung mit vielen Clients Netzwerkprogrammierung 2
G Nachricht von server an alle clients senden Netzwerkprogrammierung 6
I IP Adresse des Clients einer Socket Verbindung Netzwerkprogrammierung 2
S Server mit mehreren Clients Nachrichten austauschen Netzwerkprogrammierung 6
X Daten können nicht sofort empfangen werden Netzwerkprogrammierung 1

Ähnliche Java Themen

Neue Themen


Oben