Kleine Datenobjekte übertragen

xerberuz

Bekanntes Mitglied
Ich suche gerade nach einer Möglichkeit kleine Datenobjekte übers Netzwerk zu übertragen. Wichtig ist, dass nicht nur der Client dem Server Daten schicken kann, sondern der umgekehrte Weg auch möglich ist.

Getestet habe ich bisher RMI und JMS uns bin mit beiden Lösungen recht zufrieden. Wobei ich mit RMI noch meine bedenken habe was die Firewall Einstellungen angehen.

Ich würde mit trotzdem gern noch weiter Frameworks anschauen bevor ich mich für eine entscheide. Kennt ihr ähnliche Frameworks um schnell kleine Datenobjekte zu übertragen?
 
wo ist das problem mit normalen Sockets und ObjectInputStream / ObjectOutputStream zu arbeiten ?
Sockets und deren streams sind übrigens bi-direktional *nicht das du dann mit der frage kommst wie der server dem client daten schicken kann .. hatten wir in letzter zeit zu oft*
 
Ich hab mir schon überlegt mit der lowlevel API zu arbeiten. Keine Sorge mir ist durchaus klar wie Sockets funktionieren.

Ich bin aber der Meinung mit der low-level API sollte man nur arbeiten wenn man unbedingt muss. Die aktuell produktive implementierung ist serverseitig mit der JAVA NIO API realisiert und Clientseitig in C geschrieben. Das will ich durch eine Lösung komplett in Java ablösen und würde ein high-level Framework bevorzugen.
 
hmm .. dann würde mir noch JSON einfallen ...
aber RMI wird wohl so nichts ... vor allem wenn auch vom server asynchron daten zum client geschickt werden müssen ...
 
Auf keinen Fall versuchen mit RMI zu arbeiten wenn es über das Internet funktionieren soll... glaub mir, ich habe es versucht.
Wie wäre es stattdessen einfach mit EJB?
 
Auf keinen Fall versuchen mit RMI zu arbeiten wenn es über das Internet funktionieren soll... glaub mir, ich habe es versucht.
Wie wäre es stattdessen einfach mit EJB?

Habs jetzt auch ein wenig selber getestet. RMI mit callback geht garnicht wenn ne Firewall dazwischen ist.
Das der Server jederzeit etwas zu seinen Clients schicken kann ist das wichtigste Feature für mich. Kann ich das auch mit EJB realisieren?
 
Also um NIO und nicht low-level API zu nutzen würde ich mir mal Mina von Apache anschauen: Apache MINA - Welcome to Apache MINA Project! , finde ich ziemlich gut. Hat eine hohe Performanz und wurde in Lineage 2 und SIMON genutzt. Was wie Mina funktioniert ist Netty und bring auch eine hohe Performanz mit, plus eine gute Dokumentation. Bei beiden kannst du deine Objekt De/Serialisieren und dann als Bytes Verschicken, so wie es bei SIMON realisiert wurde.
 
Also um NIO und nicht low-level API zu nutzen würde ich mir mal Mina von Apache anschauen: Apache MINA - Welcome to Apache MINA Project! , finde ich ziemlich gut. Hat eine hohe Performanz und wurde in Lineage 2 und SIMON genutzt. Was wie Mina funktioniert ist Netty und bring auch eine hohe Performanz mit, plus eine gute Dokumentation. Bei beiden kannst du deine Objekt De/Serialisieren und dann als Bytes Verschicken, so wie es bei SIMON realisiert wurde.

Hab MINA jetzt mal ausprobiert. Das Framework ist auch nicht schlecht. Wobei es natürlich etwas mehr Implementierungsaufwand als bei JMS mitbringt. Aber definitv eine interessante Alternative.

Werd wohl mit JMS und Mina noch etwas rumspielen.
 
Wenn du bei RMI bleiben willst und dich nur das Firewallproblem stört, dann könntest du dir auf low-level-Ebene selbst was basteln, ist nicht die Welt. Oder nimm sowas hier : SIMON

Ich verstehe allerdings deine Abneigung gegenüber lowlevel nicht. Wenn du Mina/Netty nimmst, ist es nicht soooo lowlevelig wie bei deinem C Client vermutlcih 😉 Man kann mit solchen Frameworks sehr schnell effizienteren Code schreiben als JMS Monster 😉
 
Wenn du bei RMI bleiben willst und dich nur das Firewallproblem stört, dann könntest du dir auf low-level-Ebene selbst was basteln, ist nicht die Welt. Oder nimm sowas hier : SIMON

Ich verstehe allerdings deine Abneigung gegenüber lowlevel nicht. Wenn du Mina/Netty nimmst, ist es nicht soooo lowlevelig wie bei deinem C Client vermutlcih 😉 Man kann mit solchen Frameworks sehr schnell effizienteren Code schreiben als JMS Monster 😉

Wie ich bereits sagte ist Mina für mich eine brauchbare alternative. SIMON geht leider aufgrund der GPL Lizenz nicht.
 

Neue Themen


Zurück
Oben