Message-Protokoll: Verbesserungsmoeglichkeiten im Ansatz?

Status
Nicht offen für weitere Antworten.
T

tuxedo

Gast
Hi ihr,
ich habe mir einen kleine Client/Server Anwendung geshrieben die mittels Socket nachrichten austauscht. Beispielsweise meldet sich der Client eim Server mit seinem Namen und Passwort an oder er sendet eine Versionsinfo damit der Server pruefen kann ob die Client-Version noch up2date ist..

Hierfuer wollte ich kein RMI oder so nehmen, reine Socketverbindung mit serialisierung.
Dazu habe ich mit eine Message-Klasse geschrieben die einfach nur 2 Variablen kennt und keine Methoden:

Message-ID vom Typ String
Message-Object vom Typ Objekt

Message-Objekt enthaelt ein Objekt das von unterschiedlichen Typen sein. Zum Beispiel LoginMessage. LoginMessage kennt dann den Benutzernamen und das Passwort. In der Message-ID steht ein String der das Messae-Object identifiziert. Beispielsweise "LoginMessage".

Die Message wird serialisiert und durch die Leitung geschickt.
Der Empfaenger weiss dass NUR Message-Objecte kommen und kann das dann passend in eine Message casten. Dan liest er die Message-ID aus. Anhand dieser ID weiss er in welchen Typ er das Message-Object casten muss um die Nachricht zu verarbeiten.

Der Ansatz mag naiv sein, aber fuer den Anfang nicht schlecht. Da die Klasse Message immer gleich bleibt und mit erweiterung des "Protokolls" nur neue Klassen wie VersionsKontrolle etc. hinzukommen ist es einfach erweiterbar.

Was haltet ihr von diesem Ansatz und wo seht ihr moeglichkeiten diesen zu verbessern ohne auf RMI oder sowas umzusteigen.

gruss
Alex

P.S. ich hoffe ich konnt es einigermassen verstaendlich erklaeren...
 
T

tuxedo

Gast
Hat das hier überhaupt jmd gelesen ?


Gruss aus Indien
- Alex
 

Bleiglanz

Gesperrter Benutzer
quark

am Server musst du ja eine Kaskade von if("LoginMessage".equals(ID)) machen um "passend zu casten"

aber dann kannst du das genausogut und effektiver mit instanceof lösen

=> dann wär die ID völlig überflüssig und es würden nur noch die Objekte verschickt, wordurch das Protokoll sehr vereinfacht würde
 
T

tuxedo

Gast
Stimmt, das is ne coole Idee..Dann spare ich mir auch das konsitent halten der IDs beim client und server.
Aber um ein Abfragen auf ale vorkommenden Instace-Arten komm ich nicht...

- Alex
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Broadcast-message über spez. Netzwerk-Schnittstelle Netzwerkprogrammierung 1
D Socket Message an einen Server senden? Netzwerkprogrammierung 8
I SocketClient Manipulierte Message Netzwerkprogrammierung 5
C Socket Datagram-Sockets mit integrierter Message Queue? Netzwerkprogrammierung 2
A Socket Server: Message an verschiedene Clients senden Netzwerkprogrammierung 4
F Message Queue 4.4 Netzwerkprogrammierung 2
T E-Mail über javax.mail.Message Netzwerkprogrammierung 2
D SOAP Message deserialisieren Netzwerkprogrammierung 2
D SOAP Message abfangen und auslesen Netzwerkprogrammierung 3
D SOAP-Message von ebay abfangen (Notification) Netzwerkprogrammierung 2
G JavaMail und Session/Message Problem Netzwerkprogrammierung 2
J Netty umsetzung für ein Protokoll Netzwerkprogrammierung 1
P PPTP Protokoll für JAVA Netzwerkprogrammierung 14
F Protokoll gesucht Netzwerkprogrammierung 21
reibi Socket Socketverbindung nutzt welches Protokoll? Netzwerkprogrammierung 5
T Protokoll Netzwerkprogrammierung 13
T Eigenes Protokoll?Sry ka Netzwerkprogrammierung 4
F Protokoll file:/// Netzwerkprogrammierung 2
G Protokoll definieren - Bücher etc. gesucht Netzwerkprogrammierung 7
P Welches Protokoll für RMI verwenden? Netzwerkprogrammierung 10
C x.400 P7 Protokoll Umsetzung in JAVA Netzwerkprogrammierung 3
K Eigenes Protokoll: Wie? Netzwerkprogrammierung 2
A protokoll unter soap Netzwerkprogrammierung 3
Z Protokoll für Schiffeversenken Netzwerkprogrammierung 5
R PPTP Protokoll für JAVA Netzwerkprogrammierung 3
B Eigenes Protokoll über Sockets verschicken Netzwerkprogrammierung 4
F Client Server Protokoll Netzwerkprogrammierung 4

Ähnliche Java Themen

Neue Themen


Oben