Client Server Protokoll

Status
Nicht offen für weitere Antworten.
F

Frichts

Gast
Hallo,
wie dem Thema entnommen werden kann, bin ich dabei ein Client / Server Modell zu entwickeln.
Der Server ist soweit auch schon im Betrieb. Jetzt habe ich ein paar Fragen.

Alle Clients die sich mit dem Server Verbinden werden an ein Thread weitergereicht und dort findet dann der Datenaustausch statt. Jetzt zu meiner Frage, wie kann ich die Befehle und Daten vom Server zum Client weriterreichen, und ungekehrt? Ich habe daran gedacht, das ich mir eine Protokoll Klasse schreibe. Ich bin mir aber nicht sicher, ob dies der richtige weg ist. Wie wird dies in euren Anwenungen gehandhabt?

Ist es überhaupt sinnvoll jeden Client in einem Thread weiterzuverarbeiten? Letztendlich werden von dem Server auch pro Client Datenbank abfragen durchgeführt. Führt das evtl zu Problemen? Angenommen, die Datenbank ist für 20 gleichzeitige Verbindungen ausgelegt, und an meinem Server sind 30 Benutzer angemeldet, die Zeitgleich auf die Datenbank zugreifen möchten, so führt die zu Engpässen. ?!

Könnt ihr mir ein paar gute Tutorials empfehlen, die sich mit der Client Server Entwicklung beschäftigen?
 

meez

Top Contributor
Entwickle ein eigenes Protokoll, oder nimm halt eins, was schone existiert...(http, ftp)...

Beim Server würd ich nicht für jeden Client einen eigenen Thread öffnen, sondern alle Request in eine Queue stellen, und diese mit ein paar Worker-Threads abarbeiten...Diese Methode ist um einiges Skalierbarer.....
 

Bleiglanz

Gesperrter Benutzer
Frichts hat gesagt.:
Hallo,
wie dem Thema entnommen werden kann, bin ich dabei ein Client / Server Modell zu entwickeln.
Der Server ist soweit auch schon im Betrieb. Jetzt habe ich ein paar Fragen.
Welcher Server? Was ist das - ein Printserver? Oder hat das was mit CORBA COM+ RMI zu tun? Wenn die Schnittstelle für die Clients schon feststeht, dann erübrigt sich doch die weitere Debatte?
Alle Clients die sich mit dem Server Verbinden werden an ein Thread weitergereicht und dort findet dann der Datenaustausch statt.
Datenaustausch womit? einer DB? Wird bei jeder Anfrage ein neuer Thread erzeugt? Zustandslose Clients??
Jetzt zu meiner Frage, wie kann ich die Befehle und Daten vom Server zum Client weriterreichen, und ungekehrt? Ich habe daran gedacht, das ich mir eine Protokoll Klasse schreibe. Ich bin mir aber nicht sicher, ob dies der richtige weg ist. Wie wird dies in euren Anwenungen gehandhabt?
einfach: RMI, hat Java alles fest eingebaut und ist sehr stabil

schwierig: CORBA, kann dafür auch C++ Clients bedienen

neu: Webservices

gut, aber oft Overkill: nimm einen J2EE Applicationserver

dämlich: selbst Sockets verwalten und die Daten serialisieren (hangestricktes Marshalling)

noch dämlicher: auf http oder ähnliches aufsetzen und die Daten selbst serialisieren

Ist es überhaupt sinnvoll jeden Client in einem Thread weiterzuverarbeiten?
muss so sein, sonst kann ja immer nur ein Client "gleichzeitig" bedient werden, diese Idee kannste
in der Praxis abhaken

Letztendlich werden von dem Server auch pro Client Datenbank abfragen durchgeführt. Führt das evtl zu Problemen?
ja

Stichwort: Zustandsbehafteter Client, lang laufende Transaktionen, Offline-Concurrency

Angenommen, die Datenbank ist für 20 gleichzeitige Verbindungen ausgelegt, und an meinem Server sind 30 Benutzer angemeldet, die Zeitgleich auf die Datenbank zugreifen möchten, so führt die zu Engpässen. ?!
ja, der Server muss einen Connection-Pool verwenden - dann hat man wenigstens TimeOuts und schnellere Verbindungen (der Aufbau einer DB-Verbindung ist relativ aufwändig)

Könnt ihr mir ein paar gute Tutorials empfehlen, die sich mit der Client Server Entwicklung beschäftigen?
fällt mir so pauschal nichts ein, ist eben schwierig und hängt von den Anforderungen ab
 
F

Frichts

Gast
Hallo,
ich möchte noch einige Dinge dazu erwähnen. Meine Aufgabe ist es, ein Client Server Modell zu entwickeln.
Die Aufgabe die mir gestellt worden ist:

Ein System welches Kundendaten verwaltet, diese Kunden erhalten Rechnungen, können Leistungen buchen, stehen auf Wartelisten - ich habe mich vorher schon Informiert, für diesen Bereich gibt es keine wirklich ausgereifte Software.
Deshalb habe ich mich der Sache angenommen.

Ich habe mich für ein Client Server Modell entschieden, um die Daten, Zugriffe, ... Zentral zu Pflegen. Da auch automatisiert auf Ereignisse reagiert werden soll (Mails , SMS versenden).
Hinter dem Server arbeitet eine mySQL Datenbank - dort werden die Benutzer und Gruppen sowie die Profile hinterlegt.

Ihr habt ja schon einiges genannt - ich möchte gern wissen, ob ich auf dem richtigen Weg bin. Vielleicht kann man dieses Problem ja wesentlich leichter lösen - ich bin eben neu auf dem Gebiet.

Meine Vorstellung, an der ich z.Zt. arbeite ist Server mit folgenden Eigenschaften

- Verwaltung von Benutzer, Gruppen
- Verwaltung der max. Verbindungen
- Verwaltung der max. Verbindungen (DB)
- Log (Konsole, File, DB)

- autom. Prozesse (Mails generieren, PDF erstellen, etc)


Es werden sicher im laufe der Zeit noch einiges an Anforderungen mit hinzukommen.
Für mich stellt sich die Frage, wie ich einen Strukturierten austausch der Daten (die aus der DB) zum Client übertrage und umgekehrt. Es ist sicherlich ein eigenes Protokoll dafür notwendig.
Gibt einfachere und bewehrte Möglichkeiten solche Daten auszutauschen?
 

Bleiglanz

Gesperrter Benutzer
Für mich stellt sich die Frage, wie ich einen Strukturierten austausch der Daten (die aus der DB) zum Client übertrage und umgekehrt. Es ist sicherlich ein eigenes Protokoll dafür notwendig.
das ist dafür sicher NICHT notwendig!

a) verwende Java-RMI (wenn alle Clients Java-basiert sind), dann kannst du beim Client ganz normale Java-Methodenaufrufe verwenden

oder

b) implementiere die Schnittstellen als Webservices, das ist am flexibelsten - allerdings mit leichter Performance-Strafe

Ihr habt ja schon einiges genannt - ich möchte gern wissen, ob ich auf dem richtigen Weg bin. Vielleicht kann man dieses Problem ja wesentlich leichter lösen - ich bin eben neu auf dem Gebiet.
ich will dir ja nicht die gute Laune verderben, aber so wie du das beschreibst, bist du vielleicht besser dran, wenn du dich 2-3 Monate lang in J2EE und EJBs einarbeitest

du müsstest ja von Hand

- die Nebenläufigkeit steuern (gleichzeitiger Zugriff der Clients)

- deinen Connection Pool verwalten

- Transaktionssteuerung

- entfernte Zugriffe (Protokolle?)

- uvm.

implementieren, das ist sehr viel harte Arbeit, die dir von den Anbietern von J2EE Application-Servern schon abgenommen wurde (es gibt auch Open Source: Jonas, JBoss, ...)

Aber: wenn du keine Ahnung von J2EE hast UND dein Projekt hinreichend klein ist -> dann lass die Finger davon
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
hieuhp132 Server wird nicht auf zweiten Anfrage von Client geupdated Netzwerkprogrammierung 3
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
Yonnig Threads mit Client/Server und GUI (laufend bis button-click) Netzwerkprogrammierung 9
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
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
I Socket Das erste Server-Client Programm Netzwerkprogrammierung 16
M Socket Server antwortet dem Client nicht Netzwerkprogrammierung 6
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
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
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
F Server Client Anwendung mit UDP Netzwerkprogrammierung 2
A RMI Wo treten Exceptions bei RMI Aufrufen auf? Auf Client oder auf Server? Netzwerkprogrammierung 3
A ByteBuffer - Client/Server Netzwerkprogrammierung 9
K C# Server - Android Client Netzwerkprogrammierung 0
P MIME-TYPE Erklaerung, Kommunikation zwischen Client und Server Netzwerkprogrammierung 3
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
E Thematik Client server 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 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
U Socket Instant Messanger (Server Linux, Client Windows) Netzwerkprogrammierung 1
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
F Socket Java - Server/Client simple Netzwerkprogrammierung 1
R Zeitliche Syncronisation Server - Client Netzwerkprogrammierung 0
S Server-Client: Image senden Netzwerkprogrammierung 2
C Multithreading Client / Server erklärt Netzwerkprogrammierung 11
P server - client verbindung (anfänger) Netzwerkprogrammierung 8
J Client Server - Serialisierung Netzwerkprogrammierung 8
Luk10 Server / Client: Clients speichern! Netzwerkprogrammierung 6
M allgemeine Frage über Server-Client-Kommunikation Netzwerkprogrammierung 5
K Client => Server Netzwerkprogrammierung 2
A ? Home-Network, Server/Client-Einrichtung Netzwerkprogrammierung 4
S Socket Server: ConnectionError vom Client erkennen Netzwerkprogrammierung 31
A Java Server - IOS Client Applikation Netzwerkprogrammierung 20
L Ratschlag zur Umsetzung einer client-server-Kommunikation Netzwerkprogrammierung 6
M RMI RMI Probleme zwischen Client und Server Netzwerkprogrammierung 5
J Erster Server-Client läuft auf lokalem Rechner problemlos. Zwei Rechner über das Internet nicht Netzwerkprogrammierung 8
N Client-Server-Datenbank Netzwerkprogrammierung 13
Kjubert Synchronisieren von Objekten über Client/Server - bester Weg? Netzwerkprogrammierung 7
B Client/Server Connection Problem Netzwerkprogrammierung 2
S Server Client Daten hin und herschicken Netzwerkprogrammierung 2
R Server zu Client Kommunikation Netzwerkprogrammierung 11
D TCP Verbindung (Java Client und Visual Basic Server) Netzwerkprogrammierung 12
S Socket Applet Client bekommt keine GLOBALE Verbindung zum Server Netzwerkprogrammierung 25
T Server und Client verbinden nicht Netzwerkprogrammierung 6
D Server Client Verbindung - Unexpected End of File - Invalid HTTP Response Netzwerkprogrammierung 4
V Socket UDP Server/Client Kommunikation sehr langsam Netzwerkprogrammierung 2
das-mo Client/Server sendet nicht Netzwerkprogrammierung 7
Z Socket Server/Client vernünftiger Verbindungsabbruch Netzwerkprogrammierung 4
G Bild über Socket schicken - Client/Server Netzwerkprogrammierung 10
F TCP Server/Client Netzwerkprogrammierung 14
M Problem Client - Server Sockets: .ready() wird nie true! Netzwerkprogrammierung 6
Ollek Socket Sucher passende Server/Client Lösung für meine Anwendung Netzwerkprogrammierung 2
N eine klasse mit server & client Netzwerkprogrammierung 5
D RMI Gui auf client updaten basierend auf den Property Änderung des Models auf dem Server ohne polling Netzwerkprogrammierung 12
T Socket Client versucht zyklische Verbindung zum Server Netzwerkprogrammierung 4
S Socket Einfache Client/Server-Anwendung Netzwerkprogrammierung 11
F Socket Server/Client Kommunikation Netzwerkprogrammierung 4
X Problem mit Server-Client-Kommunikation Netzwerkprogrammierung 14
D Projektstruktur / Architektur (Client-Server) Netzwerkprogrammierung 9
P Socket IRC Client nicht kompatibel mit Server Netzwerkprogrammierung 30
F FTP Client mit Sockets - wann sagt der Server nichts mehr? Netzwerkprogrammierung 7
B RMI Server - Client - Aufteilung/Prinzip Netzwerkprogrammierung 11
N Server Client TCP IP Netzwerkprogrammierung 3

Ähnliche Java Themen

Neue Themen


Oben