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?
 
I

irgendjemand

Gast
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*
 

xerberuz

Bekanntes Mitglied
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.
 
I

irgendjemand

Gast
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 ...
 

Network

Top Contributor
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?
 

xerberuz

Bekanntes Mitglied
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?
 

dayaftereh

Top Contributor
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.
 

xerberuz

Bekanntes Mitglied
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.
 

Kr0e

Gesperrter Benutzer
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 ;)
 

xerberuz

Bekanntes Mitglied
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.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J ERM für kleine Verwaltungsdatenbank Netzwerkprogrammierung 2
C GWTEventService kleine Anwendung Netzwerkprogrammierung 1
I Kleine Dateien senden Netzwerkprogrammierung 3
staxx6 Mehr/ kleine oder Weniger/ große Pakete? Netzwerkprogrammierung 8
xDarkSunx Kleine Frage authentifizierung Netzwerkprogrammierung 13
E Java RMI - bitte ne kleine Einstiegshilfe Netzwerkprogrammierung 4
A Bei FTP Übertragung wird Datei nicht komplett übertragen Netzwerkprogrammierung 2
I Socket ObjectOutputStream-Socket: Objekt wird falsch übertragen Netzwerkprogrammierung 2
D Socket Gute Idee?: File als byte[] per ObjectIOStream übertragen Netzwerkprogrammierung 3
A RMI RMI - Thread Objekte übertragen und auf anderer Machine weiterlaufen lassen Netzwerkprogrammierung 0
T Anwendungseinstellungen ohne Datei übertragen? Netzwerkprogrammierung 8
A Socket Socket-Problem - Object wird nicht übertragen Netzwerkprogrammierung 3
TheJavaKid Bilder mit nem ObjectStream übertragen Netzwerkprogrammierung 8
S Socket Schlüssel übertragen Netzwerkprogrammierung 2
M Map über Webservice übertragen Netzwerkprogrammierung 3
M Java to php setAsciiStream übertragen Netzwerkprogrammierung 7
K Frame übertragen Netzwerkprogrammierung 8
J Nach Dateiversand werden keine Nachrichten mehr übertragen Netzwerkprogrammierung 11
S Socket Bilder übertragen Netzwerkprogrammierung 7
M Socket Bilder über das Netzwerk übertragen Netzwerkprogrammierung 4
H ArrayList via WebService übertragen Netzwerkprogrammierung 3
C Client zu Client Daten übertragen Netzwerkprogrammierung 13
S ActiveMQ, JMS und Datei übertragen Netzwerkprogrammierung 25
L Socket publicKey mittels DatagramPacket übertragen Netzwerkprogrammierung 8
J Datei übertragen ja String + datei übertragen nein Netzwerkprogrammierung 5
P Socket Datei von Client zum Server übertragen --> Weiterleitung an Clients Netzwerkprogrammierung 16
Q Problem bei Vergleichen von Strings übertragen über eine Socketverbindung Netzwerkprogrammierung 3
L Audiodateien per Socket übertragen? Netzwerkprogrammierung 2
N Per POST -Methode Daten an den Web-Server übertragen. Netzwerkprogrammierung 9
F Stream wird als Char übertragen. Char -> in String umwand Netzwerkprogrammierung 5
W Objekt über Socket übertragen Netzwerkprogrammierung 14
M Daten übers Netz verschlüsselt übertragen? Wie? Netzwerkprogrammierung 18
S über rmi datei übertragen? Netzwerkprogrammierung 2
G.I.Joe Datei per POST übertragen Netzwerkprogrammierung 2
M dateien übertragen, probleme mit versch. Strömen? Netzwerkprogrammierung 4
S zip-files über sockets übertragen Netzwerkprogrammierung 11
T Rechenserver: Double übertragen Netzwerkprogrammierung 2
S Unix Datei vom Server nach Windows übertragen Netzwerkprogrammierung 8
E Dynamisches übertragen von Stubs Netzwerkprogrammierung 2

Ähnliche Java Themen


Oben