# Vor- und Nachteile von RMI



## Mondlichtung (27. Jan 2012)

Hallo 

ich wollte gerne ganz allgemein Fragen, was die Vor- und Nachteile von RMI gegenüber Socketprogrammierung sind ?

Und etwas konkreter:
Welche Variante wird in kleinen Java Programmen/Spielen typischerweise verwendet und warum?

Schöne Grüße


----------



## Michael... (27. Jan 2012)

Mondlichtung hat gesagt.:


> ich wollte gerne ganz allgemein Fragen, was die Vor- und Nachteile von RMI gegenüber Socketprogrammierung sind ?


Allgemein schwer zu beantworten, da das ja von dem Einsatz und Verwendungszweck abhängt.


Mondlichtung hat gesagt.:


> Und etwas konkreter:
> Welche Variante wird in kleinen Java Programmen/Spielen typischerweise verwendet und warum?


Bin kein Spieleentwickler würde aber sagen: beides und nichts von beiden.


----------



## nillehammer (27. Jan 2012)

> ich wollte gerne ganz allgemein Fragen, was die Vor- und Nachteile von RMI gegenüber Socketprogrammierung sind ?


RMI:
- Bequemeres Programmiermodell. Man ruft Methoden auf Instanzen auf, als wären sie inder selben JVM
- Potenziell etwas Overhead

Sockets:
- Unbequem zu programmieren, weil Du Dich um (De-)Serialisierung, Streams, (De-)Codierung selbst kümmern musst.
- Potenziell weniger Overhead


----------



## Mondlichtung (27. Jan 2012)

@Michael: Ich sehe ein, die Frage ist nicht pauschal beantwortbar.
@nillehammer: Danke für den groben Überblick, das hilft mir bereits weiter.

Was mich noch interessieren würde: Wie sieht es in der Praxis aus?
Was wird häufiger verwendet? Was ist etablierter?

Schöne Grüße


----------



## irgendjemand2 (27. Jan 2012)

ich glaube ein haupt-nachteil von "normalem" RMI ist das es nicht über das internet funktioniert ... zumindest nicht wenn du Callbacks und a-sync kommunikation brauchst ... da würde sich dann ein anderes framework besser machen ..

ansonsten : es gibt anwendungsgebiete wo sich RMI sicher sinnvoll einsetzen lässt ... aber ich denke das es gerade bei "spielen" viel low-level kram gibt da die entwickler ja auch eigene protokolle entwickeln und so ...

wie aber gesagt : es kommt darauf an was du machen willst und welche techniken du brauchst / verwenden willst


----------



## Kr0e (27. Jan 2012)

Bei Echtzeitspielen mit stetiger Übertragung wäre UDP sowieso besser. Und dann vlt RMI oder ein eigenes auf TCP basierendes Protokoll für wichtige Infos. Mach nicht den Fehler und verwende RMI/TCP für Sachen wie Positionsupdates die z.B. alle 33 ms eintrudeln.

Bei Rundenbasierenden Spielen reicht RMI natürlich aus...


----------

