Übersicht client/server implementationen und Frameworks (mithilfe gesucht!)

mabuhay

Bekanntes Mitglied
Hallo zusammen

Ich bin schon länger auf der Suche nach einem Client/Server Framework. Ich habe dann mal angefangen, ein eigenes Framework zu bauen welches aber nach einem ähnlichen Schema wie Netty herausgekommen ist (was mir, nach einiger Einarbeitungszeit und nach einigen Änderungen des Framework-Aufbaus, aufgefallen ist). Nun versuche ich mir einen Überblick zu verschaffen, was es alles so gibt, und ob es sich lohnt mein Framework weiter zu entwickeln. Dabei bin ich auf eure Hilfe angewiesen, auch da ich eher neu im Client/Server Bereich bin und nicht alle wichtigen Vor-/Nachteile kenne. Bitte listet die Frameworks auf die Ihr kennt, mit einer Kurzen Beschreibung mit Vorteilen, Nachteilen, Erfahrung, Link zu guten Beispielen etc. Ich fange mal an mit den Frameworks die ich kenne oder bis jetzt gefunden habe. Natürlich ist dabei nicht alles komplett, evtl. gibt es für euch noch weitere Vor-/Nachteile dazu oder Korrekturen zu meinen Angaben.

Mein Framework:
Event-Basiert: Dem Server/Client werden Handler-Objekte übergeben, welche die in den Handler-Interfaces definierten Methoden beinhalten (conntected, disconnected, receivedData, lostConnection, ...)
Erweiterbar: Eingehende und Ausgehende Daten laufen über einen Incoming-/OutgoingProcessor. Also ein Objekt, welches read/write auf/vom Stream implementiert. Eine Factory-Klasse eines solchen Processors kann dem Client/Server übergeben werden, mit der Implementation eines eigenen Protokolles.
Vorteil: Einfache Implementierung neuer Protokolle
Nachteil: Funktioniert, aber noch am Anfang der Entwicklung (ich hätte noch viele Ideen...)

Netty: (Netty - the Java NIO Client Server Socket Framework - JBoss Community)
Asynchron, Event-Basiert, NIO, Blocking/Non-Blocking, single or multiple Thread (SEDA), SSL/TLS, dependencies: JDK >1.5
Vorfahre von Apache MINA
Vorteil: Wenig (keine, ausser JDK 1.5) Abhängigkeiten, gute Dokumentation mit Beispielen
Nachteil: ?

XNIO: (XNIO - JBoss Community)
Low-Level I/O layer, blocking/non-blocking, Basis für High-Level Implementationen
Vorteil: ?
Nachteil: ?

Apache MINA: (Apache MINA - Welcome to Apache MINA Project!)
Event-Basiert, Asynchron, TCP/IP, UDP/IP, RS232 via RXTX, eigene Protokoll-Implementationen können verwendet werden, low-level (ByteBufffer) und high-level (eigene codecs), single Thread/multiple Thread (SEDA), SSL/TLS/startTLS
Weiterentwicklung von Netty (so wie ich das hier verstehe)
Vorteil: ?
Nachteil: ?

Net4j: (Net4j - Eclipsepedia)
Asynchron, non-blocking, TCP/HTTP/in-memory, eigene Protokolle können verwendet werden, basiert auf OSGi
Vorteil: ?
Nachteil: Praktisch keine Dokumentation

QuickServer: (.:: QuickServer ::. Java library for creating robust, multi-threaded, multi-client TCP servers)
Multi-Client, TCP/IP, SSL/TLS, blocking/non-blocking
Vorteil: ?
Nachteil: nicht mehr weiterentwickelt? (letzte Aktualisierung März 2006)



das wars dann mal bis jetzt von meiner Seite, bin gespannt was noch kommt.

mfg
 
Zuletzt bearbeitet:

Kr0e

Gesperrter Benutzer
Grizzly, xSockets .... Das sind auch noch gute Ansätze

Zu Grizzly kann ich nichts sagen, aber zu xSockets:

Vorteile: Geniales Multiplex-Pipeline System, wodurch quasi virtuelle Verbindungen über eine physikalische emuliert werden.
Nachteile: Hier und da etwas buggy^^ Von der Geschwindigkeit her recht flott aber nicht vergleichbar mit Netty3/Mina, da die Threading-Modell-Einstellungen nicht so gut sind.
 
Zuletzt bearbeitet:

Kr0e

Gesperrter Benutzer
Merkwürdig, Mina ist kein Nachfolger von Netty, eher umgekehrt, wobei man auch dabei streiten könnte. Mina1 & Netty3 wurden beide vom selben Entwickler erstellt. Aber ist ja eigentlcih nicht so wichtig...


Über Netty3 kann ich nur sagen, dass es ein verdammt gutes Framework ist und trotz der etwas mageren "Austattung" dennoch empfehlenswert ist, gerade was Leistung angeht.
 

mabuhay

Bekanntes Mitglied
Netty hat mir soweit auch sehr gut gefallen, vor allem die Doku. was ist dann deiner Meinung nach mager daran? hast du schon mal was vermisst?
 

Kr0e

Gesperrter Benutzer
Mit mager mein ich, dass relativ wenig ChannelHandler von Haus aus dabei sind... Mina z.B. hat IoFilter wie RequestResponseFilter. Das ist praktisches Tool, klar man kanns selber machen ... Aber es gibt noch weitere Sachen... Netty hat aber auch echt tolle Sachen, wie z.B. den ChunkedWriteHandler. Ich finde einfach, dass hier und da ein paar Standard-Handler noch fehlen. Z.b. ein TransferThrottlingHandler oder ein IP-Blacklist-Handler... Solche Sachen eben..
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Performanteste Kommunikationsmethode zwischen Client u. Server Netzwerkprogrammierung 4
L Socket Automatische Zuweisung von Server und Client Rolle Netzwerkprogrammierung 12
ExceptionOfExpectation Server/Client-Kommunikation Netzwerkprogrammierung 34
M Server-Client-System für Browsergame Netzwerkprogrammierung 5
B Axis2 Webservice mit Client Zertifikat Authentifizierung Netzwerkprogrammierung 3
Yonnig Threads mit Client/Server und GUI (laufend bis button-click) Netzwerkprogrammierung 9
T Jetty mit Client-Zertifikat nur bei spezifischer URL Netzwerkprogrammierung 1
J Einlesen von Servernachrichten von TCP-Client Netzwerkprogrammierung 17
J Client-Server und SOAP Netzwerkprogrammierung 23
L30nS RMI Aufruf einer Client-Methode von einem RMI-Server Netzwerkprogrammierung 3
T String von Client zu Server kommt nicht an Netzwerkprogrammierung 92
D WebSocket Server mit HTML Client und Java Server Netzwerkprogrammierung 5
D Server - Client Informationsaustausch, Möglichkeiten Netzwerkprogrammierung 3
H Socket Chat entwickeln mit Java Server Client Netzwerkprogrammierung 4
X Kann ich einen Client/Server verbindung hinkriegen die mir alle paar Sekunden die aktuellen Daten per Realtime zuschickt ? Netzwerkprogrammierung 9
T Client zu Client Kommunikation Netzwerkprogrammierung 2
D Slf4j - Logging - Client-Server Architektur Netzwerkprogrammierung 3
J client server mit nur einem PC Netzwerkprogrammierung 33
M Socket Nachricht von TCP-Client an Server schicken Netzwerkprogrammierung 12
M Socket Verbindung Matlab(Server) Java(Client) Netzwerkprogrammierung 1
R Socket FATAL EXCEPTION MAIN bei Socket based client/server app Netzwerkprogrammierung 2
G Server-Client IO Problem Netzwerkprogrammierung 6
ruutaiokwu ständig "sender address rejected: improper use of smtp" bei smtp-client Netzwerkprogrammierung 4
J HTTP [Java 9] Neuer HTTP Client - Tutorial Netzwerkprogrammierung 3
A Chatserver/-client - Code stoppt bei readUTF() Netzwerkprogrammierung 7
I Socket Das erste Server-Client Programm Netzwerkprogrammierung 16
L Zugriffprobleme Client - Webservice AspenTechnology Netzwerkprogrammierung 0
A Client Client Übertragung Netzwerkprogrammierung 12
M Socket Server antwortet dem Client nicht Netzwerkprogrammierung 6
K Socket Netty Client wirft Fehler! Netzwerkprogrammierung 3
I Client/Server Kommunikation bei einem Spiel Netzwerkprogrammierung 4
E Objekte versenden, Client-Server Netzwerkprogrammierung 25
C Mini Client-Server-Anwendung funktioniert nicht Netzwerkprogrammierung 8
U Client Soap Verbindung wieder schließen Netzwerkprogrammierung 0
U Socket Client mit hash authentifizieren Netzwerkprogrammierung 3
F HTTP HTTP Rest Client mit TLS1.2 und selbst signiertem Zertifikat Netzwerkprogrammierung 2
P Server als Client nutzen Netzwerkprogrammierung 8
D Socket Run Args Client/Server Socket Netzwerkprogrammierung 1
Cromewell Socket Multithreaded Server und Client Netzwerkprogrammierung 1
Y Client/Server/DB communication Netzwerkprogrammierung 3
JavaWolf165 Socket mit .writeUtf etwas vom Client zum Server schicken Netzwerkprogrammierung 13
J Client - Serversocket Netzwerkprogrammierung 1
P RMI Client Server Programm über Internet Netzwerkprogrammierung 2
brainless Client Server Kommunikation verschlüsseln Netzwerkprogrammierung 13
gamebreiti Socket Server / Client Anwendung Manipulation von Objekten durch Server Netzwerkprogrammierung 9
T Socket Server/Client Kommunikation Netzwerkprogrammierung 8
N Fragen zu Sockets Client Netzwerkprogrammierung 3
F Extasys TCp Client extends Funktion Netzwerkprogrammierung 0
F Server Client Anwendung mit UDP Netzwerkprogrammierung 2
O Client zwischen XML und JSON auswählen lassen Netzwerkprogrammierung 2
A RMI Wo treten Exceptions bei RMI Aufrufen auf? Auf Client oder auf Server? Netzwerkprogrammierung 3
A ByteBuffer - Client/Server Netzwerkprogrammierung 9
A Socket Wie ein einfacher Multithreads Service mit Telnet als Client mit Observable/Observer gelöst.... Netzwerkprogrammierung 0
K C# Server - Android Client Netzwerkprogrammierung 0
T Application Client NullPointerExc Netzwerkprogrammierung 7
V TCP Client funktioniert auf Emulator aber nicht auf Smartphone Netzwerkprogrammierung 5
H Machbarkeitsfrage: TCP/IP Client (z.B. Netty) für Java Web Applcation Netzwerkprogrammierung 1
P MIME-TYPE Erklaerung, Kommunikation zwischen Client und Server Netzwerkprogrammierung 3
H HTTP REST Jersey - PUT-Beispiel von Client senden Netzwerkprogrammierung 0
J Sichere Kommunikation bei Server Client Netzwerkprogrammierung 3
T Frage zu Client-Server Applikation Netzwerkprogrammierung 2
H Socket Client/Server Socket Programmieren Netzwerkprogrammierung 1
M Theoretische Frage zu Server - Client Netzwerkprogrammierung 2
P HTTP Server / Client Netzwerkprogrammierung 1
N FTP FTP Client invalid IPv6 address (Apache Commons Net API) Netzwerkprogrammierung 6
F TCP Client, verbindung aufrecht halten Netzwerkprogrammierung 0
X RMI: Woher kennt der Client das Schnittstellen-Interface? Netzwerkprogrammierung 2
E Thematik Client server Netzwerkprogrammierung 2
D UDP Client empfängt nichts Netzwerkprogrammierung 2
D Client/Server per Crossover Lan Kabel Netzwerkprogrammierung 1
S Client Server Connection Netzwerkprogrammierung 4
V erste Client - Server Anwendung, paar Fragen wie Socketverbindung checken usw. Netzwerkprogrammierung 4
S Client Anwendung mit zentraler SQL-Datenbank Netzwerkprogrammierung 3
N Client Identifikation eines Servers Netzwerkprogrammierung 1
S Sichere Server/Client Architektur Netzwerkprogrammierung 1
D Chat Server/mehre Client Netzwerkprogrammierung 9
I Server+Client Netzwerkprogrammierung 3
N Client am Server abmelden Netzwerkprogrammierung 0
F Server/Client Probleme Netzwerkprogrammierung 3
D SSH Client Netzwerkprogrammierung 7
U Socket Instant Messanger (Server Linux, Client Windows) Netzwerkprogrammierung 1
B TCP Client Android Netzwerkprogrammierung 3
Athena Grundsatzfragen zu Client-Server-Architektur / Matchmaking Netzwerkprogrammierung 1
A Problem beim Senden von Client zu Server Netzwerkprogrammierung 10
F Client Server DB Netzwerkprogrammierung 0
A Verständnisfrage Multi-Threaded Client/Server Netzwerkprogrammierung 5
F Tipps zum Thema Server/Client vie SOAP Netzwerkprogrammierung 0
OnDemand Ist Client noch angemeldet? Netzwerkprogrammierung 7
F Socket Java - Server/Client simple Netzwerkprogrammierung 1
D Socket UDP Client reagiert nicht auf spontane Meldungen Netzwerkprogrammierung 5
R Zeitliche Syncronisation Server - Client Netzwerkprogrammierung 0
S Server-Client: Image senden Netzwerkprogrammierung 2
C Multithreading Client / Server erklärt Netzwerkprogrammierung 11
M Client sendet nur, wenn das Socket geschlossen wird Netzwerkprogrammierung 53
P server - client verbindung (anfänger) Netzwerkprogrammierung 8
S Socket (client) verbindet nicht Netzwerkprogrammierung 6
V Templates für Java Client rabbitmq Netzwerkprogrammierung 4
J Client Server - Serialisierung Netzwerkprogrammierung 8
C Client connection per Portforwarding auf einen lokalen Serverport Netzwerkprogrammierung 3
Luk10 Server / Client: Clients speichern! Netzwerkprogrammierung 6

Ähnliche Java Themen

Neue Themen


Oben